pax_global_header00006660000000000000000000000064152416014720014514gustar00rootroot0000000000000052 comment=3e60f6fcfed52bf257e79c46deae616cb6135d59 par2cmdline-turbo-1.5.0/000077500000000000000000000000001524160147200150505ustar00rootroot00000000000000par2cmdline-turbo-1.5.0/.clangd000066400000000000000000000003661524160147200163060ustar00rootroot00000000000000# yaml-language-server: $schema=https://json.schemastore.org/clangd.json CompileFlags: Add: - "--include-directory=." - "--include-directory=.." - "--include=config.h" Diagnostics: MissingIncludes: Strict UnusedIncludes: Strict par2cmdline-turbo-1.5.0/.editorconfig000066400000000000000000000001721524160147200175250ustar00rootroot00000000000000root=true [*] end_of_line = lf indent_style = space indent_size = 2 [Makefile{,.am}] indent_style = tab indent_size = 4 par2cmdline-turbo-1.5.0/.editorconfig-checker.json000066400000000000000000000006011524160147200220740ustar00rootroot00000000000000{ "Verbose": false, "Debug": false, "IgnoreDefaults": false, "SpacesAfterTabs": false, "NoColor": false, "Exclude": ["\\.par2$"], "AllowedContentTypes": [], "PassedFiles": [], "Disable": { "EndOfLine": false, "Indentation": false, "IndentSize": false, "InsertFinalNewline": false, "TrimTrailingWhitespace": false, "MaxLineLength": false } } par2cmdline-turbo-1.5.0/.gitattributes000066400000000000000000000020071524160147200177420ustar00rootroot00000000000000# Auto detect text files and perform LF normalization # see http://stackoverflow.com/questions/170961/whats-the-best-crlf-carriage-return-line-feed-handling-strategy-with-git * text=auto *.cpp text *.h text *.txt text *.s text *.csproj text merge=union *.sln text=unset merge=union *.vcproj text=unset merge=union *.vcxproj* text=unset merge=union # The VC++ files were already in the repo with DOS line endings # This setting would make git store them internally with LF #*.sln text merge=union eol=crlf # instead, use text=unset to tell git to not do any conversions on # those files # This will only work well in a repo where all the files have Unix line # endings. Having this file in a repo with DOS text files in the tree will # make git see those files as changed (to Unix line endings, regardless of # what they are in your working copy). # Conversely, this will make all new commits of text files commit with Unix # line endings, regardless of what they are in your working copy. par2cmdline-turbo-1.5.0/.github/000077500000000000000000000000001524160147200164105ustar00rootroot00000000000000par2cmdline-turbo-1.5.0/.github/workflows/000077500000000000000000000000001524160147200204455ustar00rootroot00000000000000par2cmdline-turbo-1.5.0/.github/workflows/build-check-freebsd.yml000066400000000000000000000010221524160147200247450ustar00rootroot00000000000000name: par2cmdline CI FreeBSD on: workflow_call: workflow_dispatch: jobs: build-check-freebsd: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - name: Build and test uses: cross-platform-actions/action@v1.4.0 with: operating_system: freebsd version: '15.0' shell: bash run: | sudo pkg install -y autoconf automake libtool ./automake.sh ./configure make -j"$(nproc)" make check make distcheckpar2cmdline-turbo-1.5.0/.github/workflows/build-check-linux.yml000066400000000000000000000005001524160147200244720ustar00rootroot00000000000000name: par2cmdline CI Linux on: workflow_call: workflow_dispatch: jobs: build-check-linux: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - name: Build and test run: | ./automake.sh ./configure make -j"$(nproc)" make check make distcheck par2cmdline-turbo-1.5.0/.github/workflows/build-check-macos.yml000066400000000000000000000006011524160147200244370ustar00rootroot00000000000000name: par2cmdline CI MacOS on: workflow_call: workflow_dispatch: jobs: build-check-macos: runs-on: macos-latest steps: - uses: actions/checkout@v7 - name: prepare run: brew install automake - name: Build and test run: | ./automake.sh ./configure make -j"$(sysctl -n hw.ncpu)" make check make distcheck par2cmdline-turbo-1.5.0/.github/workflows/build-check-mingw.yml000066400000000000000000000011241524160147200244570ustar00rootroot00000000000000name: par2cmdline CI MinGW on: workflow_call: workflow_dispatch: jobs: build-check-mingw: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - name: Install MinGW run: sudo apt-get update && sudo apt-get install -y mingw-w64 autoconf automake libtool - name: Build and test run: | export CC=x86_64-w64-mingw32-gcc export CXX=x86_64-w64-mingw32-g++ export AR=x86_64-w64-mingw32-ar export RANLIB=x86_64-w64-mingw32-ranlib ./automake.sh ./configure --host=x86_64-w64-mingw32 make -j"$(nproc)" par2cmdline-turbo-1.5.0/.github/workflows/build-check-windows.yml000066400000000000000000000012001524160147200250230ustar00rootroot00000000000000name: par2cmdline CI windows on: workflow_call: workflow_dispatch: jobs: build-check-windows: runs-on: windows-latest steps: - uses: actions/checkout@v7 - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@v3 - name: Build run: msbuild -property:PlatformToolset=ClangCL -property:Configuration=Release -property:Platform=x64 par2cmdline.sln - name: Build Unit Tests run: msbuild -property:Configuration=UnitTests-Release -property:Platform=x64 par2cmdline.sln - name: Run Tests shell: pwsh run: | .\tests\run_tests.ps1 -Par2Binary ".\x64\Release\par2.exe"par2cmdline-turbo-1.5.0/.github/workflows/build-push.yml000066400000000000000000000007421524160147200232470ustar00rootroot00000000000000name: par2cmdline push build on: push: branches: - '**' - '!master' - '!turbo' jobs: build-check-linux: uses: ./.github/workflows/build-check-linux.yml build-check-mingw: uses: ./.github/workflows/build-check-mingw.yml build-check-windows: uses: ./.github/workflows/build-check-windows.yml build-check-macos: uses: ./.github/workflows/build-check-macos.yml build-check-freebsd: uses: ./.github/workflows/build-check-freebsd.yml par2cmdline-turbo-1.5.0/.github/workflows/build-release.yml000066400000000000000000000137101524160147200237070ustar00rootroot00000000000000name: par2cmdline release build on: push: branches: - 'turbo' jobs: build-check-linux: uses: ./.github/workflows/build-check-linux.yml build-check-mingw: uses: ./.github/workflows/build-check-mingw.yml build-check-windows: uses: ./.github/workflows/build-check-windows.yml build-check-macos: uses: ./.github/workflows/build-check-macos.yml build-check-freebsd: uses: ./.github/workflows/build-check-freebsd.yml build-linux: needs: - build-check-linux name: build-linux (${{ matrix.arch }}) strategy: matrix: include: - arch: amd64 configure_host: xcc: - arch: arm64 configure_host: --host=aarch64-linux-gnu xcc: aarch64-linux-gnu- - arch: armhf configure_host: --host=armv7l-linux-gnueabihf xcc: arm-linux-gnueabihf- runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - name: Install cross toolchains if: matrix.arch != 'amd64' run: | sudo apt-get update case "${{ matrix.arch }}" in arm64) sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu libc6-dev-arm64-cross ;; armhf) sudo apt-get install -y gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf libc6-dev-armhf-cross ;; esac - name: Build env: CC: ${{ matrix.xcc }}gcc CXX: ${{ matrix.xcc }}g++ LDFLAGS: -static -s run: | ./automake.sh ./configure ${{ matrix.configure_host }} make -j"$(nproc)" - name: Upload binary artifact uses: actions/upload-artifact@v7 with: name: par2cmdline-turbo-linux-${{ matrix.arch }} path: | par2 retention-days: 5 build-windows: needs: - build-check-windows name: build-windows (${{ matrix.name }}) strategy: matrix: include: - platform: x64 name: x64 - platform: ARM64 name: arm64 runs-on: windows-latest steps: - uses: actions/checkout@v7 - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@v3 - name: Build run: msbuild -property:PlatformToolset=ClangCL -property:Configuration=Release -property:Platform=${{ matrix.platform }} par2cmdline.sln - name: Upload binary artifact uses: actions/upload-artifact@v7 with: name: par2cmdline-turbo-win-${{ matrix.name }} path: | ${{ matrix.platform }}/Release/par2.exe retention-days: 5 build-macos: needs: - build-check-macos name: build-macos (${{ matrix.arch }}) strategy: matrix: include: - arch: amd64 xcxxflags: -arch x86_64 -mmacosx-version-min=10.13 - arch: arm64 xcxxflags: -arch arm64 -mmacosx-version-min=11.0 runs-on: macos-latest steps: - uses: actions/checkout@v7 - name: prepare run: brew install automake # NOTE: setting CFLAGS/CXXFLAGS suppresses autoconf's default "-g -O2", # so -O2 must be passed explicitly or the build ends up unoptimised. - name: Build env: CFLAGS: -O3 ${{ matrix.xcxxflags }} CXXFLAGS: -O3 ${{ matrix.xcxxflags }} run: | ./automake.sh ./configure make -j"$(sysctl -n hw.ncpu)" strip par2 - name: Upload binary artifact uses: actions/upload-artifact@v7 with: name: par2cmdline-turbo-macos-${{ matrix.arch }} path: | par2 retention-days: 5 build-macos-universal: needs: - build-macos runs-on: macos-latest steps: - name: Download slices uses: actions/download-artifact@v8 with: pattern: par2cmdline-turbo-macos-* - name: Create universal binary run: | lipo -create \ par2cmdline-turbo-macos-amd64/par2 \ par2cmdline-turbo-macos-arm64/par2 \ -output par2 lipo -info par2 - name: Upload binary artifact uses: actions/upload-artifact@v7 with: name: par2cmdline-turbo-macos-universal path: | par2 retention-days: 5 build-freebsd: needs: - build-check-freebsd name: build-freebsd (${{ matrix.arch }}) strategy: matrix: include: - arch: amd64 sysroot_path: amd64 triple: x86_64-unknown-freebsd15 - arch: arm64 sysroot_path: arm64/aarch64 triple: aarch64-unknown-freebsd15 runs-on: ubuntu-latest env: FREEBSD_VERSION: "15.0" steps: - uses: actions/checkout@v7 - name: Install cross toolchain run: | sudo apt-get update sudo apt-get install -y clang lld - name: Cache FreeBSD sysroot id: sysroot-cache uses: actions/cache@v6 with: path: sysroot key: freebsd-sysroot-${{ matrix.sysroot_path }}-${{ env.FREEBSD_VERSION }} - name: Fetch FreeBSD sysroot if: steps.sysroot-cache.outputs.cache-hit != 'true' run: | mkdir -p sysroot curl -fsSL "https://download.freebsd.org/releases/${{ matrix.sysroot_path }}/${FREEBSD_VERSION}-RELEASE/base.txz" \ | tar -xJ -C sysroot ./usr/include ./usr/lib ./lib - name: Build env: LDFLAGS: -static -s run: | SYSROOT="$PWD/sysroot" ./automake.sh ./configure --host=${{ matrix.triple }} \ CC="clang --target=${{ matrix.triple }} --sysroot=$SYSROOT -fuse-ld=lld" \ CXX="clang++ --target=${{ matrix.triple }} --sysroot=$SYSROOT -stdlib=libc++ -fuse-ld=lld" make -j"$(nproc)" - name: Verify the binary targets FreeBSD run: | file par2 file par2 | grep -q "FreeBSD" || { echo "not a FreeBSD binary"; exit 1; } - name: Upload binary artifact uses: actions/upload-artifact@v7 with: name: par2cmdline-turbo-freebsd-${{ matrix.arch }} path: | par2 retention-days: 5 par2cmdline-turbo-1.5.0/.github/workflows/release-tar.yml000066400000000000000000000017311524160147200233760ustar00rootroot00000000000000name: Build release tarball on: release: types: [published] jobs: build-tarball: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Get release id: get_release uses: bruceadams/get-release@v1.3.2 env: GITHUB_TOKEN: ${{ github.token }} - run: | ./automake.sh ./configure make dist version=$(ls -1 par2cmdline*.tar.gz | tail -n1 | sed -e 's/par2cmdline-turbo-\([0-9\.]\+\)\.tar\.gz/\1/') zcat par2cmdline-turbo-$version.tar.gz | xz -9 > par2cmdline.tar.xz echo "BINVER=$version" >> $GITHUB_ENV - uses: sekwah41/upload-release-assets@v1 env: GITHUB_TOKEN: ${{ github.token }} with: upload_url: ${{ steps.get_release.outputs.upload_url }} asset_path: ./par2cmdline.tar.xz asset_name: par2cmdline-turbo-${{ env.BINVER }}.tar.xz asset_content_type: application/octet-stream par2cmdline-turbo-1.5.0/.gitignore000066400000000000000000000013461524160147200170440ustar00rootroot00000000000000# when developing and you really want to clean everything up # run git clean -fdx # thx @spider-mario # compilation output par2 libpar2.a libparpar*.a *.o .deps/ par2.exe tests/*.exe # test output *.trs *.log tests/runtest* # unit test binaries tests/*_test tests/.dirstamp # autotools output aclocal.m4 autom4te.cache/ compile test-driver Makefile.in Makefile config.h config.status configure stamp-h stamp-h1 src/.dirstamp parpar/*/.dirstamp install-sh missing ar-lib # windows Release/ Debug/ *.old *.vcxproj.user *.suo .vs/ test.* # Linux perf record output perf.* # gcc -fprofile-use *.gcda # eclipse stuff you get when you point it at a Makefile project .cproject .project .settings # emacs files *~ .#* \#*# .~lock.*# .vscode par2cmdline-turbo-1.5.0/AUTHORS000066400000000000000000000003131524160147200161150ustar00rootroot00000000000000Peter Brian Clements Marcel Partap Ike Devolder Jussi Kansanen Michael Nahas par2cmdline-turbo-1.5.0/COPYING000066400000000000000000000431001524160147200161010ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 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 licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) 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 this service 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 make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. 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. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), 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 distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the 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 a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE 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. 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 convey 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 2 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 is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision 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, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Moe Ghoul, President of Vice This 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. par2cmdline-turbo-1.5.0/ChangeLog000066400000000000000000000567361524160147200166430ustar00rootroot0000000000000015 August 2026 Ike Devolder * release: 1.3.0 Release: * #295: Version 1.3.0 (PR #297 version 1.3.0) Issues: * #292: Missing include src/utf8.h (via PR #296 which also makes mingw build work) PRs: * #290: Bump actions/checkout from 6 to 7 * #291: Bump cross-platform-actions/action from 1.2.0 to 1.3.0 * #293: Fix macOS unoptimised builds (more general building improvements for the github workflows) * #294: Printing performance tweaks 10 June 2026 Ike Devolder * release: 1.2.0 Security: * GHSA-3c2j-rccw-j2vj: Heap out-of-bounds write in PAR2 repair from unchecked source block count wrap * GHSA-j5pc-g362-c5xp: Repair can follow dangling symlinks and write outside the repair base path Release: * #277: Version 1.2.0 (PR #288 version 1.2.0) Issues: * #268: Is there any explanation for par2 exit codes? | 有没有 par2 退出�的说明? * #273: Request @filelist.txt (original PR #274, finished in #279) * #270: Remove empty/obsolete files in top-level directory (via PR #278) * #275: par2cmdline defaults to 128MiB of RAM (via PR #286) PRs: * #271: Bump actions/upload-artifact from 6 to 7 * #272: Bump microsoft/setup-msbuild from 2 to 3 * #276: Bump cross-platform-actions/action from 0.32.0 to 1.0.0 * #280: Take input files from stdin (standard input) * #284: Bump cross-platform-actions/action from 1.0.0 to 1.2.0 * #285: fix: input file count over 2000 failing with defaults + edge case * #287: Improve and sync man+commandline Skipped: * #222: Add SPM support * #234: par2 repair and stream to stdout 06 February 2026 Ike Devolder * release: 1.1.1 Release: * #264: Version 1.1.1 (PR #267 version 1.1.1) Issues: * #248: When repairing a file, if there is not enough disk space, the final error message displays garbled characters. (PR #263 fix garbled errormessage on windows) * #253: Why does running par2 in the command line environment forcibly switch the code page to CP65001? PRs: * #261: Cleanup/std namespace search replace oops (https://github.com/Parchive/par2cmdline/pull/242#pullrequestreview-3731414581) * #262: Migrate Windows unit tests to Visual C++ projects (https://github.com/Parchive/par2cmdline/pull/256#issuecomment-3827352914) * #265: add .clangd file for additional editor lsp support * #266: Integer definitions consistency 27 Januari 2026 Ike Devolder * release: 1.1.0 Release: * #215: Version 1.1.0 (PR #260 Version 1.1.0) Issues: * #216: [1.0.0] amd64 binary tests/utf8_test included in release tarball * #225: restore support for older macOS * #220: BUG: : should be an illegal character only on HFS filesystems * #181: Lack of thread guards in DiskFile (PR #237 Add thread guards in diskfile) * #228: How can I know the default values without looking at the source code, or is --dry-run command available? (PR #238 show defaults in help output and man) * #230: Consider adding manual page symlinks for par2create, par2repair and par2verify (PR #239 create symlinks for the long form manpages as well) * #187: global-buffer-overflow by default in unit test (diskfile_test) (PR #240 calculate size in diskfile unittest to avoid bufferoverflow) * #184: rename only repair mode (quickly skip non matching files) (PR #185 POC for a rename only mode and #243 Issue 184) * #139: test failure because testdata archives preserve ownership info (PR #249 repack test tarballs with tar --owner=0 --group=0) * #231: par2 create cannot handle non-ASCII directory names (e.g. ę) (PR #250 Windows unicode issues) * #233: windows - rename using long path notation (PR #250 Windows unicode issues) * #167: Can not create file in root path on Windows. (PR #251 diskfile CreateParentDirectory, take rootpath behaviour into account) * #244: Regression in V1.0.0 for symbolic links to files. (PR #254 Fix symbolic links as primary file.) PRs: * #213: Strip MacOS binary * #214: Add armhf Linux build * #217: fix manpage typ0 * #218: tests/utf8_test is generated before running tests, not needed in dist * #221: Replace deprecated sprintf with snprintf * #223: Remove unused code * #224: Fix README not found * #226: Reduce the minimum supported macOS version and add a universal macOS binary * #229: Update COPYING with the latest GPL v2 license * #236: Fix memory leak. * #241: Build warnings * #245: Cleanup unused * #246: remove define of stat or _stat * #247: add freebsd ci check * #252: remove obsolete autoconf macro AC_HEADER_STDC * #255: use native ubuntu cross building instead of gha-ubuntu-cross * #257: add dependabot check for github actions updates * #256: Windows integration testing * #258: Bump actions/upload-artifact from 4 to 6 * #259: Bump actions/checkout from 4 to 6 Skipped: * #101: properly detect openmp on *BSD * #108: Trying to cross-compile with openmp support * #122: How to detect wrong data files against par2 files? * #115: Crashes with "std::bad_alloc" when running more than one instance * #154: Par2cmdline allocation failure. 30 April 2025 Ike Devolder * release: 1.0.0 * release artifacts are all built with github actions * linux static x86_64 and arm64 * windows x86_64 and arm64 * macos x86_64 and arm64 (experimental, could not test) * Special thanks to everyone for waiting over 5 years for a new release Support: * #146: build fails in Cygwin * #140: A potential Data Race * #151: Understanding par2cmdline performance * #129: Understanding The Par2 Spec and par2cmdline * #163: performance with hundreds of small files * #166: A better error correcting code * #157: Recover impossible without a .par2 "main" file? * #172: Thread count option not shown on Arm based Mac version * #178: Increase block count limit 32768 * #112: Behaviour with insufficient read permissions * #79: Help to create a compatible implementation! * #171: Flag for automatic Blocksize in commandline * #121: Repair-Files created amount to size twice as high as expected from redundancy * #175: New release? Issues: * #141: syntax error in tests (fixed with PR #142) * #143: test failure in unit_tests on s390x, powerpc (fixed with PR #144) * #145: Core dump on single letter file name (duplicate: #192, #165) (fixed with PR #149) * #41: prepare code and header files for libpar2 (e4e449f97ff0758029d73af58da66b0f33619741) * #169: Windows version always recurse into subdirectories (duplicate: #173, #111) (fixed with PR #182) * #193: config.guess timestamp = 2015-03-04 ... time for a newer version? (83bb2495c906660fad3a4f85a72f8ce0de05445b) * #190: Cannot recover one-bit flip (duplicate #156?) (fixed with PR #179) * #120: exit codes from par2 executable not documented? (improved with PR #199) * #126: Problem with PACKED little-endian structs (4a4179f1e42bc11bbcc9d24554690d3bc5c31b38) * #150: Recurse option (-R) does not include files in current directory (more documenation) * #128: Problem with empty (0 Bytes) files. (workaround via PR #200) * #152: Fail earlier during creation if the .par2 file already exists (basic check in PR #203) * #113: Hang with -n=256 (limited in PR #204) * #205: Could not create "./Disk 1 (a-m)/.PAR2 (Recovery Disk 1)/disk1.vol34529+00000.par2": File already exists. (6c2fa05a16bd604e54b46a5546c3acb64eb9fed4) * #189: Properly handle UTF8 and long-paths on Windows (implemented by dnzbk for nzbget, rebased in PR #202) * #186: It would be nice if permissions were checked eariler when creating parchive. (basic check in PR #210) * #164: need option to disable following symlinks on "-R" (fixed in PR #211) * #208: Version 1.0.0 PRs: * #148: fix: enforce -qq silent * #153: Install relative symlinks instead of absolute ones * #161: Allow Creating Files With Over 100% Redundancy (new PR from #158) * #162: Minor cleanup * #168: fix win32 directory recursion * #179: Avoid copying back memory in FileChecksummer when data is valid * #177: CRC32/MD5 optimisations * #182: enable Recurse flag on Windows OS * #198: enable Recurse flag on Windows OS * #199: add exitcodes to manfile * #201: Issue 150 recursive no files from rootpath * #197: Updates from turbo * #200: Issue 128 * #203: Quick bail if the base par2 file already exists * #204: Issue 113 * #206: github workflows * #207: When number of recovery files is set, you get "File already exists" * #202: Issue 189 windows utf8 * #209: Workflow release * #210: Add simple "permissions" check while creating * #211: diskfile, replace stat use with lstat Skipped: * #7: command line flags can not be chained * #91: make use of appveyor for windows * #191: Update diskfile.cpp * #155: Travis-ci: added support for ppc64le * #194: Avoid copying back memory in FileChecksummer when data is valid (superseeded by #202) * #176: Added support for GPU acceleration (CUDA) on recovery file creation. 09 February 2020 Ike Devolder * release: 0.8.1 * Serious rework of internals by Michael Nahas * Added unittests by Michael Nahas * Added support for static libpar2 11 December 2017 Ike Devolder * release: 0.8.0 * improved parallelisation on input files 08 September 2017 Ike Devolder * release: 0.7.4 * performance improvement when not using quiet mode 25 June 2017 Ike Devolder * release: 0.7.3 * fixed critical issue on windows where created parfiles were corrupt 03 June 2017 Ike Devolder * release: 0.7.2 * fixed tests on NetBSD, #102 * fixed failing tests when dir contains whitespace, #103 * added automake.sh to the files, #104 * changed some flags related to windows build, #94 * cleaned up compiler warnings for mingw build 19 May 2017 Ike Devolder * release: 0.7.1 * fixed basepath issues #93 * made distcheck behaviour consistent with different --srcdir #96 * properly package distribution package #98 * cross compile for windows to get redistributable exe #94 * change distribution format to tar.gz and tar.bz2 for unix and keep zip for windows #97 17 April 2017 Ike Devolder * release: 0.7.0 * Merged OpenMP version and so enabled multithreading * added -t flag to set the number of threads (all possible threads used by default) * Added -B flag to set the basepath for difficult to guess situations * bugfixes 27 February 2014 Ike Devolder * release: 0.6.5 * fix blocksize calculation 25 February 2014 JCF Ploemen * lintian warning spelling fix 7 February 2014 Ike Devolder * add manfile for par2 29 January 2014 Jan van Haarst * README in Markdown 21 January 2014 Ike Devolder * add spelling fixes to cmdline output 18 January 2014 Jan van Haarst * fixed some spelling 6 January 2014 Ike Devolder * simplify FindFiles 4 January 2014 Ike Devolder * release: 0.6.4 * when directory is removed, recreate * add test to verify directory behaviour * add test with valgrind 16 December 2013 Ike Devolder * allow verification of files even with duplicates in parfiles 15 December 2013 Ike Devolder * avoid adding of duplicates 14 December 2013 Ike Devolder * release: 0.6.3 * rework original tests so parallelisation is no issue * add test8 which makes sure the paths stored are relative * add test9 rename wrongly named file, passed to par2 result is correctly named files after repair 13 Decebmer 2013 Ike Devolder * move tests in separate folder, tests will be extended and otherwise eventually clutter the source too much 9 December 2013 Ike Devolder * rework parfilename handling + it fixes passing par filename without extension for repair 7 December 2013 Ike Devolder * release: 0.6.2 * basepath was not set correctly in restoring of 'old' way 5 December 2013 Ike Devolder * release: 0.6.1 * show usage / version / copyright on request * restore 'old' way of creating make -a optional 30 November 2013 Ike Devolder * release: 0.6.0 * test8: windows generated recovery files with subdir * windows recurses in . and .. which leads to deadlock so don't recurse in folders starting with . on windows * when recursion happens make sure windows can recover with unix created par2 files * fixed fc -> fd typo in windows part of diskfile * FTBFS fix on GNU/kFreeBSD (by Cyril Brulebois) * fixed non quiet output when creating par2 * Applied fix preventing a stack overflow (by Robert Schneider) 14 October 2013 Ike Devolder * Implemented recursion * NOTE: only for unix like systems * Windows can be done i guess but i have no access to windows machines 16 June 2013 Ike Devolder * Implemented initial subdir handling * added subdir tests 13 June 2013 Ike Devolder * Fixed failing testsuite 9 December 2012 Ike Devolder * rework purging of par(2) files because of possible segfaults and other inconsistencies 4 December 2012 Ike Devolder * fix purge option so it removes the par files when there is no repair needed * add purge option to verify so when there is no repair needed the par2 files are removed when the purge option is given 30 November 2012 Ike Devolder * add purge option remove backup files (mostly .1) and par files on request **USE AT YOUR OWN RISK * purge option available in par1 and par2 repair * fix memory leak when using par1 repair 30 January 2012 Ike Devolder * add inlining performance improvement of Gerard Putter * release: 0.5.4 19 January 2012 Ike Devolder * fix wrongly created par2 files in quiet mode this was related to the -q -qq fix * release: 0.5.3 17 January 2012 Ike Devolder * fix deadlock condition when repairing and filepath is longer than _MAX_PATH * increase _MAX_PATH, 255 is no longer of these days * release: 0.5.2 16 January 2012 Ike Devolder * fixup 0.5 version display * "par2 create" dumps core with -q or -qq, but non-quiet mode works fine FIXED * removed automake files * updated copyrights * release: 0.5.1 12 December 2011 Marcel Partap * Reanimate par2cmdline development on new github repository * Merge available distro patches since 2004 0.4 release back upstream * Release: Version 0.5 ;) 3 January 2005 Peter B Clements * par2creatorsourcefile.cpp: "offset" must be updated when computing file and block hashes even if progress is not being displayed. 23 June 2004 Peter B Clements * diskfile.cpp: Changed DiskFile::GetFileSize for WIN32 so that it uses _stati64() to get the size of a file. * par2creatorsourcefile.cpp: In UpdateHashes() the test that adjusts the length of the last block of a file when before updating the file hash was incorrect. 17 June 2004 Peter B Clements * par1repairer.cpp, par2repairer.cpp: Report empty files when scanning for data. 22 April 2004 Peter B Clements * README: Updated to include new commandline options. * par2cmdline.vcproj: Update VS .NET project file with new version number. * Released: Version 0.4. 15 April 2004 Peter B Clements * par2cmdline.sln, par2cmdline.vcproj: Updated. * commandline.cpp, commandline.h, par1repairer.cpp, par1repairer.h, par2cmdline.cpp, par2cmdline.h, par2creator.cpp, par2creator.h, par2creatorsourcefile.cpp, par2creatorsourcefile.h, par2repairer.cpp, par2repairer.h, reedsolomon.h, par2cmdline.h: Handle -v and -q options from the command line to change the amount of messages displayed. 14 April 2004 Peter B Clements * commandline.h, commandline.cpp: Add -c option to allow the number of recovery blocks to be directly specified rather than indirectly via the -r option. Add -l option to allow the recovery file size to be limited so that the largest will have just enough recovery data to reconstruct the largest source file. * par2creator.h, par2creator.cpp: Use the recovery block count specified via the command line instead of the redundancy % if given. Allocate the sizes of recovery files so the are limited if requested. 12 April 2004 Peter B Clements * config.h.in, configure, configure.ac: Detect what defines are required to enable 64 bit file system support and whether or not fseeko() is available. * diskfile.cpp: Use fseeko and 64 bit file operations if they are available. * par2cmdline.h: Change order of include files. * par2repairer.cpp: When verifying files with long filenames, display a shorter version of the filename. * datablock.h: Change DataBlock::GetDiskFile so that in returns a non const DiskFile. * par2repairer.cpp, par2creator.cpp: Only keep source files open when they are actually needed. This should allow par2 creation and repair to work with large file sets on OS's with a limit on the number of files that can be open simultaneously. * Makefile.in, aclocal.m4, config.guess, config.sub, configure, depcomp, install-sh, missing, mkinstalldirs: Updated Automake to version 1.8.3 and Autoconf to version 2.59. * configure.ac, config.h.in, configure: Check for getopt() and getopt_long(). 19 August 2003 Peter B Clements * Updated par2creator.cpp: When creating par2 files the wrong number of bytes would be reported as written to disk. 13 August 2003 Peter B Clements * Updated par2cmdline.h: Recorrected spelling of STDC_HEADERS! * Updated par1repairersourcefile.cpp, par2repairersourcefile.cpp: Don't treat ':' as a path separator on non Windows platforms. 2 August 2003 Peter B Clements * Updated par1fileformat.h, par2fileformat.h: Use memcmp when comparing MAGIC strings and PACKETTYPE strings. * Updated par2repairer.cpp: When a good packet is found after bad data, use memcpy to copy the packet header. Don't attempt to get the block count directly from the verification packet (which might be missing). * Updated par2repairersourcefile.cpp: Add function to set the block count when the verification packet is missing. 1 August 2003 Peter B Clements * Updated par2cmdline.h: Included . 31 July 2003 Peter B Clements * Updated reedsolomon.h: Added debugging code. 29 July 2003 Peter B Clements * Updated galois.h: Use typename when refering to a typedef in another class. * Updated par1repairer.cpp: Cast size of fileentry in memcpy. * Updated par2repairersourcefile.h: Add function to set the block count for a file when the verification packet is missing. 25 July 2003 Peter B Clements * Updated par2cmdline.h: Correct spelling of STDC_HEADERS. 16 July 2003 Peter B Clements * Release: Version 0.3. 15 July 2003 Peter B Clements * Added config.guess, config.sub: Autoconf files. * Updated configure, Makefile.in: Updated by Autoconf. * Updated configure.ac: Changed par2cmdline version number. Added call to AC_CANONICAL_HOST. * Updated par2cmdline.vcproj: Updated version number. 3 July 2003 Peter B Clements * Updated aclocal.m4, depcomp, INSTALL, install-sh, mkinstalldirs: Upgrade Autoconf to version 1.75 from 1.6.3. * Updated Makefile.am: Changed CXXFLAGS to AM_CXXFLAGS. 24 June 2003 Peter B Clements * Updated commandline.cpp, commandline.h: Added "redundancyseet" member to record whether or not the value of "redundancy" has been specified so that 0% redundancy is permissible. * Updated par2creator.cpp: Detect situation where no recovery blocks are being created and skip related code sections. 14 June 2003 Peter B Clements * Updated galois.h: Corrected bug in the initialisation of log[0] in GaloisTable. 11 June 2003 Peter B Clements * Updated par1repair.cpp, par1repairer.h: Detect buggy version of smartpar which creates PAR1 files with invalid 16k hash values, Change alignment of temporary buffer used for PAR1FILEENTRYs to 8 bytes. 7 June 2003 Peter B Clements * Update par2cmdline.h: Added header include. 3 June 2003 Peter B Clements * Updated verificationhashtable.h: Fixed bug where blocks of data that have the same crc and hash would not be correctly recognised. 26 May 2003 Peter B Clements * Release: Version 0.2. * Added config.h.in, configure, configure.ac, depcomp, missing, mkinstalldirs, stamp-h.in: Autoconf configuration files. * Added NEWS * Added par1fileformat.h, par1fileformat.cpp: Specifies the layout of PAR 1.0 files. * Added par1repairer.h, par1repairer.cpp: Encapsulates the details of repairing using PAR 1.0 files. * Added par1repairersourcefile.h, par1repairersourcefile.cpp: Stores details of a source file. * Added test1, test2, test3, test4, test5, test6, testdata.tar.gz: Test files for "make check". * Changed commandline.cpp, commandline.h: Add "version" member and set it according to whether the recovery file is a .PAR file or a .PAR2 file. Rename "par2filename" member to "parfilename". * Changed creatorpacket.cpp: Made "string creator" a local variable in CreatorPacket::Create instead of a global. Commented out code that does nothing. * Changed criticalpacket.h: Corrected bug in CriticalPacketEntry::operator= which failed to return *this. * Changed descriptionpacket.cpp: Commented out code which does nothing. * Changed diskfile.cpp: Updated wildcard matching code to permit multiple "?" in wildcard. Adjusted the list of characters that are accepted in filenames to include all with bit 7 set and also spaces. Removed restrictions on many other permitted characters. * Changed diskfile.h: Removed cygwin and linux ifdefs which are now handled by autoconf. * Changed galois.cpp: Move the constructors for GaloisTable and GaloisLongMultiplyTable to galois.h. * Changed galois.h: Changed GaloisTable, Galois, and GaloisLongMultipleTable into templates. Corrected bug in Galois::pow and Galois::operator^ which incorrectly returned 0 for x^0 when it should always return 1. Added Galois8 and Galois16 typedefs for PAR1 and PAR2. * Changed letype.h: Added leu16 type for use in PAR1 processing. * Changed mainpacket.cpp: Commented out code which does nothing. * Changed md5.cpp: Adjusted ROL macro to include masking to correct for bug on Alpha CPUs. Added operator<<() and print() to MD5Hash. * Changed md5.h: Added copy and assignment operators for MD5Hash. * Changed par2cmdline.cpp: Made "string version" a local variable instead of global. Use Par1Repairer or Par2Repaire as appropriate when verifying or repairing PAR1 and PAR2 files. * Changed par2cmdline.h: Adjusted to conditionally include headers and to define various types based on the autoconf configuration. * Changed par2cmdline.sln, par2cmdline.vcproj: Updated. * Changed par2creator.cpp: Called Commandline::GetParFilename instead of CommandLine::GetPar2Filename. * Changed par2creator.h: Redifine rs as ReedSolomon. * Changed par2creatorsourcefile.cpp: Comment out code which does nothing. Added typecasts between 32bit and 64bit values. * Changed par2fileformat.cpp: Adjusted initialisation code. * Changed par2fileformat.h: Use packed attribute for gnu compilers. * Changed par2repairer.cpp: Get filename using CommandLine::GetParFilename. * Changed par2repairer.h: Redefine rs as ReedSolomon. * Changed par2repairersourcefile: Add typecast from 32bit to 64bit. * Changed README: Update details of how to compile the source code using the configure script. * Changed recoverypacket.cpp: Commented out code which does nothing. * Changed ReedSolomon.cpp: Move ReedSolomon constructor to ReedSolomon.h. Created template specialisations for Galois8 and Galois16 for SetInput, SetOutput, and Process. * Changed ReedSolomon.h: Converted ReedSolomon to a template. * Changed verificationhashtable.cpp: Removed unused code. * Changed verificationpacket.cpp: Commented out code that does nothing. 7 May 2003 Peter B Clements * Version 0.1: Initial release. par2cmdline-turbo-1.5.0/INSTALL000066400000000000000000000377771524160147200161260ustar00rootroot00000000000000Installation Instructions ************************* Basic Installation ================== The following shell commands: test -f configure || ./bootstrap ./configure make make install should configure, build, and install this package. The first line, which bootstraps, is intended for developers; when building from distribution tarballs it does nothing and can be skipped. The following more-detailed instructions are generic; see the ‘README.md’ file for instructions specific to this package. Some packages provide this ‘INSTALL’ file but do not implement all of the features documented below. The lack of an optional feature in a given package is not necessarily a bug. More recommendations for GNU packages can be found in the GNU Coding Standards. Many packages have scripts meant for developers instead of ordinary builders, as they may use developer tools that are less commonly installed, or they may access the network, which has privacy implications. If the ‘bootstrap’ shell script exists, it attempts to build the ‘configure’ shell script and related files, possibly using developer tools or the network. Because the output of ‘bootstrap’ is system-independent, it is normally run by a package developer so that its output can be put into the distribution tarball and ordinary builders and users need not run ‘bootstrap’. Some packages have commands like ‘./autopull.sh’ and ‘./autogen.sh’ that you can run instead of ‘./bootstrap’, for more fine-grained control over bootstrapping. The ‘configure’ shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a ‘Makefile’ in each directory of the package. It may also create one or more ‘.h’ files containing system-dependent definitions. Finally, it creates a shell script ‘config.status’ that you can run in the future to recreate the current configuration, and a file ‘config.log’ containing output useful for debugging ‘configure’. It can also use an optional file (typically called ‘config.cache’ and enabled with ‘--cache-file=config.cache’ or simply ‘-C’) that saves the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale cache files. If you need to do unusual things to compile the package, please try to figure out how ‘configure’ could check whether to do them, and mail diffs or instructions to the address given in the ‘README.md’ so they can be considered for the next release. If you are using the cache, and at some point ‘config.cache’ contains results you don’t want to keep, you may remove or edit it. The ‘autoconf’ program generates ‘configure’ from the file ‘configure.ac’. Normally you should edit ‘configure.ac’ instead of editing ‘configure’ directly. The simplest way to compile this package is: 1. ‘cd’ to the directory containing the package’s source code. 2. If this is a developer checkout and file ‘configure’ does not yet exist, type ‘./bootstrap’ to create it. You may need special developer tools and network access to bootstrap, and the network access may have privacy implications. 3. Type ‘./configure’ to configure the package for your system. This might take a while. While running, ‘configure’ prints messages telling which features it is checking for. 4. Type ‘make’ to compile the package. 5. Optionally, type ‘make check’ to run any self-tests that come with the package, generally using the just-built uninstalled binaries. 6. Type ‘make install’ to install the programs and any data files and documentation. When installing into a prefix owned by root, it is recommended that the package be configured and built as a regular user, and only the ‘make install’ phase executed with root privileges. 7. Optionally, type ‘make installcheck’ to repeat any self-tests, but this time using the binaries in their final installed location. This target does not install anything. Running this target as a regular user, particularly if the prior ‘make install’ required root privileges, verifies that the installation completed correctly. 8. You can remove the program binaries and object files from the source code directory by typing ‘make clean’. To also remove the files that ‘configure’ created (so you can compile the package for a different kind of computer), type ‘make distclean’. There is also a ‘make maintainer-clean’ target, but that is intended mainly for the package’s developers. If you use it, you may have to bootstrap again. 9. If the package follows the GNU Coding Standards, you can type ‘make uninstall’ to remove the installed files. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the ‘configure’ script does not know about. Run ‘./configure --help’ for details on some of the pertinent environment variables. You can give ‘configure’ initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=gcc CFLAGS=-g LIBS=-lposix See “Defining Variables� for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each system in their own directory. To do this, you can use GNU ‘make’. ‘cd’ to the directory where you want the object files and executables to go and run the ‘configure’ script. ‘configure’ automatically checks for the source code in the directory that ‘configure’ is in and in ‘..’. This is known as a “VPATH� build. With a non-GNU ‘make’, it is safer to compile the package for one system at a time in the source code directory. After you have installed the package for one system, use ‘make distclean’ before reconfiguring for another system. Some platforms, notably macOS, support “fat� or “universal� binaries, where a single binary can execute on different architectures. On these platforms you can configure and compile just once, with options specific to that platform. Installation Names ================== By default, ‘make install’ installs the package’s commands under ‘/usr/local/bin’, include files under ‘/usr/local/include’, etc. You can specify an installation prefix other than ‘/usr/local’ by giving ‘configure’ the option ‘--prefix=PREFIX’, where PREFIX must be an absolute file name. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option ‘--exec-prefix=PREFIX’ to ‘configure’, the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like ‘--bindir=DIR’ to specify different values for particular kinds of files. Run ‘configure --help’ for a list of the directories you can set and what kinds of files go in them. In general, the default for these options is expressed in terms of ‘${prefix}’, so that specifying just ‘--prefix’ will affect all of the other directory specifications that were not explicitly provided. The most portable way to affect installation locations is to pass the correct locations to ‘configure’; however, many packages provide one or both of the following shortcuts of passing variable assignments to the ‘make install’ command line to change installation locations without having to reconfigure or recompile. The first method involves providing an override variable for each affected directory. For example, ‘make install prefix=/alternate/directory’ will choose an alternate location for all directory configuration variables that were expressed in terms of ‘${prefix}’. Any directories that were specified during ‘configure’, but not in terms of ‘${prefix}’, must each be overridden at install time for the entire installation to be relocated. The approach of makefile variable overrides for each directory variable is required by the GNU Coding Standards, and ideally causes no recompilation. However, some platforms have known limitations with the semantics of shared libraries that end up requiring recompilation when using this method, particularly noticeable in packages that use GNU Libtool. The second method involves providing the ‘DESTDIR’ variable. For example, ‘make install DESTDIR=/alternate/directory’ will prepend ‘/alternate/directory’ before all installation names. The approach of ‘DESTDIR’ overrides is not required by the GNU Coding Standards, and does not work on platforms that have drive letters. On the other hand, it does better at avoiding recompilation issues, and works well even when some directory options were not specified in terms of ‘${prefix}’ at ‘configure’ time. Optional Features ================= If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving ‘configure’ the option ‘--program-prefix=PREFIX’ or ‘--program-suffix=SUFFIX’. Some packages pay attention to ‘--enable-FEATURE’ and ‘--disable-FEATURE’ options to ‘configure’, where FEATURE indicates an optional part of the package. They may also pay attention to ‘--with-PACKAGE’ and ‘--without-PACKAGE’ options, where PACKAGE is something like ‘gnu-ld’. ‘./configure --help’ should mention the ‘--enable-...’ and ‘--with-...’ options that the package recognizes. Some packages offer the ability to configure how verbose the execution of ‘make’ will be. For these packages, running ‘./configure --enable-silent-rules’ sets the default to minimal output, which can be overridden with ‘make V=1’; while running ‘./configure --disable-silent-rules’ sets the default to verbose, which can be overridden with ‘make V=0’. Specifying a System Type ======================== By default ‘configure’ builds for the current system. To create binaries that can run on a different system type, specify a ‘--host=TYPE’ option along with compiler variables that specify how to generate object code for TYPE. For example, to create binaries intended to run on a 64-bit ARM processor: ./configure --host=aarch64-linux-gnu \ CC=aarch64-linux-gnu-gcc \ CXX=aarch64-linux-gnu-g++ If done on a machine that can execute these binaries (e.g., via ‘qemu-aarch64’, ‘$QEMU_LD_PREFIX’, and Linux’s ‘binfmt_misc’ capability), the build behaves like a native build. Otherwise it is a cross-build: ‘configure’ will make cross-compilation guesses instead of running test programs, and ‘make check’ will not work. A system type can either be a short name like ‘mingw64’, or a canonical name like ‘x86_64-pc-linux-gnu’. Canonical names have the form CPU-COMPANY-SYSTEM where SYSTEM is either OS or KERNEL-OS. To canonicalize and validate a system type, you can run the command ‘config.sub’, which is often squirreled away in a subdirectory like ‘build-aux’. For example: $ build-aux/config.sub arm64-linux aarch64-unknown-linux-gnu $ build-aux/config.sub riscv-lnx Invalid configuration 'riscv-lnx': OS 'lnx' not recognized You can look at the ‘config.sub’ file to see which types are recognized. If the file is absent, this package does not need the system type. If ‘configure’ fails with the diagnostic “cannot guess build type�. ‘config.sub’ did not recognize your system’s type. In this case, first fetch the newest versions of these files from the GNU config package (https://savannah.gnu.org/projects/config). If that fixes things, please report it to the maintainers of the package containing ‘configure’. Otherwise, you can try the configure option ‘--build=TYPE’ where TYPE comes close to your system type; also, please report the problem to . For more details about configuring system types, see the Autoconf documentation. Sharing Defaults ================ If you want to set default values for ‘configure’ scripts to share, you can create a site shell script called ‘config.site’ that gives default values for variables like ‘CC’, ‘cache_file’, and ‘prefix’. ‘configure’ looks for ‘PREFIX/share/config.site’ if it exists, then ‘PREFIX/etc/config.site’ if it exists. Or, you can set the ‘CONFIG_SITE’ environment variable to the location of the site script. A warning: not all ‘configure’ scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to ‘configure’. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the ‘configure’ command line, using ‘VAR=value’. For example: ./configure CC=/usr/local2/bin/gcc causes the specified ‘gcc’ to be used as the C compiler (unless it is overridden in the site shell script). Unfortunately, this technique does not work for ‘CONFIG_SHELL’ due to an Autoconf limitation. Until the limitation is lifted, you can use this workaround: CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash ‘configure’ Invocation ====================== ‘configure’ recognizes the following options to control how it operates. ‘--help’ ‘-h’ Print a summary of all of the options to ‘configure’, and exit. ‘--help=short’ ‘--help=recursive’ Print a summary of the options unique to this package’s ‘configure’, and exit. The ‘short’ variant lists options used only in the top level, while the ‘recursive’ variant lists options also present in any nested packages. ‘--version’ ‘-V’ Print the version of Autoconf used to generate the ‘configure’ script, and exit. ‘--cache-file=FILE’ Enable the cache: use and save the results of the tests in FILE, traditionally ‘config.cache’. FILE defaults to ‘/dev/null’ to disable caching. ‘--config-cache’ ‘-C’ Alias for ‘--cache-file=config.cache’. ‘--srcdir=DIR’ Look for the package’s source code in directory DIR. Usually ‘configure’ can determine that directory automatically. ‘--prefix=DIR’ Use DIR as the installation prefix. See “Installation Names� for more details, including other options available for fine-tuning the installation locations. ‘--host=TYPE’ Build binaries for system TYPE. See “Specifying a System Type�. ‘--enable-FEATURE’ ‘--disable-FEATURE’ Enable or disable the optional FEATURE. See “Optional Features�. ‘--with-PACKAGE’ ‘--without-PACKAGE’ Use or omit PACKAGE when building. See “Optional Features�. ‘--quiet’ ‘--silent’ ‘-q’ Do not print messages saying which checks are being made. To suppress all normal output, redirect it to ‘/dev/null’ (any error messages will still be shown). ‘--no-create’ ‘-n’ Run the configure checks, but stop before creating any output files. ‘configure’ also recognizes several environment variables, and accepts some other, less widely useful, options. Run ‘configure --help’ for more details. Copyright notice ================ Copyright © 1994–1996, 1999–2002, 2004–2017, 2020–2024 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without warranty of any kind. par2cmdline-turbo-1.5.0/Makefile.am000066400000000000000000000457251524160147200171210ustar00rootroot00000000000000## This file is part of par2cmdline (a PAR 2.0 compatible file verification and ## repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. ## ## Copyright (c) 2003 Peter Brian Clements ## Copyright (c) 2019 Michael D. Nahas ## ## par2cmdline 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 2 of the License, or ## (at your option) any later version. ## ## par2cmdline 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, write to the Free Software ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA AUTOMAKE_OPTIONS = subdir-objects .DELETE_ON_ERROR: noinst_LIBRARIES = libpar2.a \ libparpar_gf16.a libparpar_gf16_sse2.a libparpar_gf16_ssse3.a libparpar_gf16_avx.a libparpar_gf16_avx2.a libparpar_gf16_avx512.a libparpar_gf16_vbmi.a libparpar_gf16_gfni.a libparpar_gf16_gfni_avx2.a libparpar_gf16_gfni_avx512.a libparpar_gf16_bmm.a libparpar_gf16_clmul.a libparpar_gf16_avx2_clmul.a libparpar_gf16_vpclmul.a libparpar_gf16_vpclgfni.a libparpar_gf16_neon.a libparpar_gf16_neonsha3.a libparpar_gf16_sve.a libparpar_gf16_sve2.a libparpar_gf16_rvv.a libparpar_gf16_rvv_zvbc.a \ libparpar_hasher.a libparpar_hasher_sse2.a libparpar_hasher_clmul.a libparpar_hasher_xop.a libparpar_hasher_bmi1.a libparpar_hasher_avx2.a libparpar_hasher_avx512.a libparpar_hasher_avx512vl.a libparpar_hasher_armcrc.a libparpar_hasher_neon.a libparpar_hasher_neoncrc.a libparpar_hasher_sve2.a libparpar_hasher_zbkc.a libpar2_a_SOURCES = src/crc.cpp src/crc.h \ src/creatorpacket.cpp src/creatorpacket.h \ src/criticalpacket.cpp src/criticalpacket.h \ src/datablock.cpp src/datablock.h \ src/descriptionpacket.cpp src/descriptionpacket.h \ src/diskfile.cpp src/diskfile.h \ src/filechecksummer.cpp src/filechecksummer.h \ src/galois.cpp src/galois.h \ src/letype.h \ src/mainpacket.cpp src/mainpacket.h \ src/md5.cpp src/md5.h \ src/par1fileformat.cpp src/par1fileformat.h \ src/par1repairer.cpp src/par1repairer.h \ src/par1repairersourcefile.cpp src/par1repairersourcefile.h \ src/par2creator.cpp src/par2creator.h \ src/par2creatorsourcefile.cpp src/par2creatorsourcefile.h \ src/par2fileformat.cpp src/par2fileformat.h \ src/par2repairer.cpp src/par2repairer.h \ src/par2repairersourcefile.cpp src/par2repairersourcefile.h \ src/progressmeter.h \ src/recoverypacket.cpp src/recoverypacket.h \ src/reedsolomon.cpp src/reedsolomon.h \ src/verificationhashtable.cpp src/verificationhashtable.h \ src/verificationpacket.cpp src/verificationpacket.h \ src/libpar2.cpp src/libpar2.h src/libpar2internal.h \ src/foreach_parallel.h src/hasher.h \ src/utf8.cpp src/utf8.h libpar2_a_DEPENDENCIES = \ libparpar_gf16.a libparpar_gf16_sse2.a libparpar_gf16_ssse3.a libparpar_gf16_avx.a libparpar_gf16_avx2.a libparpar_gf16_avx512.a libparpar_gf16_vbmi.a libparpar_gf16_gfni.a libparpar_gf16_gfni_avx2.a libparpar_gf16_gfni_avx512.a libparpar_gf16_bmm.a libparpar_gf16_clmul.a libparpar_gf16_avx2_clmul.a libparpar_gf16_vpclmul.a libparpar_gf16_vpclgfni.a libparpar_gf16_neon.a libparpar_gf16_neonsha3.a libparpar_gf16_sve.a libparpar_gf16_sve2.a libparpar_gf16_rvv.a libparpar_gf16_rvv_zvbc.a \ libparpar_hasher.a libparpar_hasher_sse2.a libparpar_hasher_clmul.a libparpar_hasher_xop.a libparpar_hasher_bmi1.a libparpar_hasher_avx2.a libparpar_hasher_avx512.a libparpar_hasher_avx512vl.a libparpar_hasher_armcrc.a libparpar_hasher_neon.a libparpar_hasher_neoncrc.a libparpar_hasher_sve2.a libparpar_hasher_zbkc.a libpar2_a_LIBADD = parpar/gf16/libparpar_gf16*.o parpar/hasher/libparpar_hasher*.o libparpar_gf16_a_SOURCES = \ parpar/gf16/controller.cpp \ parpar/gf16/controller_cpu.cpp \ parpar/gf16/gfmat_coeff.c \ parpar/gf16/gfmat_inv.cpp \ parpar/gf16/gf16pmul.cpp \ parpar/gf16/gf16mul.cpp \ parpar/gf16/gf16_lookup.c \ parpar/gf16/gf_add_generic.c \ parpar/gf16/gf16_cksum_generic.c \ parpar/gf16/controller.h \ parpar/gf16/controller_cpu.h \ parpar/gf16/controller_ocl.h \ parpar/gf16/gf_add.h \ parpar/gf16/gf_add_common.h \ parpar/gf16/gf16_affine.h \ parpar/gf16/gf16_checksum_generic.h \ parpar/gf16/gf16_cksum.h \ parpar/gf16/gf16_cksum_base.h \ parpar/gf16/gf16_clmul.h \ parpar/gf16/gf16_global.h \ parpar/gf16/gf16_lookup.h \ parpar/gf16/gf16_muladd_multi.h \ parpar/gf16/gf16_shuffle.h \ parpar/gf16/gf16_xor.h \ parpar/gf16/gf16_xor_common.h \ parpar/gf16/gf16_xor_common_funcs.h \ parpar/gf16/gf16mul.h \ parpar/gf16/gf16pmul.h \ parpar/gf16/gfmat_coeff.h \ parpar/gf16/gfmat_inv.h \ parpar/gf16/threadqueue.h \ parpar/src/cpuid.h \ parpar/src/hedley.h \ parpar/src/platform.h \ parpar/src/stdint.h libparpar_gf16_a_CFLAGS = $(CFLAGS_POSIX_SOURCE) -D_DARWIN_C_SOURCE -D_GNU_SOURCE -D_DEFAULT_SOURCE libparpar_gf16_a_CPPFLAGS = -Iparpar/gf16 -Iparpar/gf16/opencl-include $(AM_CPPFLAGS) libparpar_gf16_a_CXXFLAGS = libparpar_gf16_sse2_a_SOURCES = \ parpar/gf16/gf16_xor_sse2.c \ parpar/gf16/gf16_lookup_sse2.c \ parpar/gf16/gf_add_sse2.c \ parpar/gf16/gf16_cksum_sse2.c \ parpar/gf16/gf_add_x86.h \ parpar/gf16/gf16_bitdep_init_sse2.h \ parpar/gf16/gf16_checksum_x86.h \ parpar/gf16/gf16_cksum_x86.h \ parpar/gf16/x86_jit.h libparpar_gf16_sse2_a_CFLAGS = $(CFLAGS_SSE2) $(libparpar_gf16_a_CFLAGS) libparpar_gf16_ssse3_a_SOURCES = \ parpar/gf16/gf16_shuffle_ssse3.c \ parpar/gf16/gf16_shuffle_x86.h \ parpar/gf16/gf16_shuffle_x86_common.h \ parpar/gf16/gf16_shuffle_x86_prepare.h libparpar_gf16_ssse3_a_CFLAGS = $(CFLAGS_SSSE3) $(libparpar_gf16_a_CFLAGS) libparpar_gf16_avx_a_SOURCES = \ parpar/gf16/gf16_shuffle_avx.c libparpar_gf16_avx_a_CFLAGS = $(CFLAGS_AVX) $(libparpar_gf16_a_CFLAGS) libparpar_gf16_avx2_a_SOURCES = \ parpar/gf16/gf16_xor_avx2.c \ parpar/gf16/gf16_shuffle_avx2.c \ parpar/gf16/gf_add_avx2.c \ parpar/gf16/gf16_cksum_avx2.c \ parpar/gf16/gf16_bitdep_init_avx2.h \ parpar/gf16/gf16_shuffle2x_x86.h libparpar_gf16_avx2_a_CFLAGS = $(CFLAGS_AVX2) $(libparpar_gf16_a_CFLAGS) libparpar_gf16_avx512_a_SOURCES = \ parpar/gf16/gf16_xor_avx512.c \ parpar/gf16/gf16_shuffle_avx512.c \ parpar/gf16/gf_add_avx512.c \ parpar/gf16/gf16_cksum_avx512.c libparpar_gf16_avx512_a_CFLAGS = $(CFLAGS_AVX512) $(libparpar_gf16_a_CFLAGS) libparpar_gf16_vbmi_a_SOURCES = \ parpar/gf16/gf16_shuffle_vbmi.c libparpar_gf16_vbmi_a_CFLAGS = $(CFLAGS_VBMI) $(libparpar_gf16_a_CFLAGS) libparpar_gf16_gfni_a_SOURCES = \ parpar/gf16/gf16_affine_gfni.c \ parpar/gf16/gf16_affine2x_x86.h libparpar_gf16_gfni_a_CFLAGS = $(CFLAGS_GFNI) $(libparpar_gf16_a_CFLAGS) libparpar_gf16_gfni_avx2_a_SOURCES = \ parpar/gf16/gf16_affine_avx2.c \ parpar/src/platform_warnings.c libparpar_gf16_gfni_avx2_a_CFLAGS = $(CFLAGS_GFNI) $(CFLAGS_AVX2) $(libparpar_gf16_a_CFLAGS) libparpar_gf16_gfni_avx512_a_SOURCES = \ parpar/gf16/gf16_affine_avx512.c \ parpar/gf16/gf16_affine_avx10.h libparpar_gf16_gfni_avx512_a_CFLAGS = $(CFLAGS_GFNI) $(CFLAGS_AVX512) $(libparpar_gf16_a_CFLAGS) libparpar_gf16_bmm_a_SOURCES = \ parpar/gf16/gf16_affine_bmm.c libparpar_gf16_bmm_a_CFLAGS = $(CFLAGS_BMM) $(libparpar_gf16_a_CFLAGS) libparpar_gf16_clmul_a_SOURCES = \ parpar/gf16/gf16pmul_sse.c \ parpar/gf16/gf16pmul_x86.h libparpar_gf16_clmul_a_CFLAGS = $(CFLAGS_PCLMUL) $(libparpar_gf16_a_CFLAGS) libparpar_gf16_avx2_clmul_a_SOURCES = parpar/gf16/gf16pmul_avx2.c libparpar_gf16_avx2_clmul_a_CFLAGS = $(CFLAGS_PCLMUL) $(CFLAGS_AVX2) $(libparpar_gf16_a_CFLAGS) libparpar_gf16_vpclmul_a_SOURCES = parpar/gf16/gf16pmul_vpclmul.c libparpar_gf16_vpclmul_a_CFLAGS = $(CFLAGS_VPCLMUL) $(libparpar_gf16_a_CFLAGS) libparpar_gf16_vpclgfni_a_SOURCES = parpar/gf16/gf16pmul_vpclgfni.c libparpar_gf16_vpclgfni_a_CFLAGS = $(CFLAGS_VPCLMUL) $(CFLAGS_GFNI) $(libparpar_gf16_a_CFLAGS) libparpar_gf16_neon_a_SOURCES = \ parpar/gf16/gf16_shuffle_neon.c \ parpar/gf16/gf16_clmul_neon.c \ parpar/gf16/gf_add_neon.c \ parpar/gf16/gf16_cksum_neon.c \ parpar/gf16/gf16pmul_neon.c \ parpar/gf16/gf16_checksum_arm.h \ parpar/gf16/gf16_clmul_neon.h \ parpar/gf16/gf16_clmul_neon_base.h \ parpar/gf16/gf16_neon_common.h libparpar_gf16_neon_a_CFLAGS = $(CFLAGS_NEON) $(libparpar_gf16_a_CFLAGS) libparpar_gf16_neonsha3_a_SOURCES = \ parpar/gf16/gf16_clmul_sha3.c libparpar_gf16_neonsha3_a_CFLAGS = $(CFLAGS_NEONSHA3) $(libparpar_gf16_a_CFLAGS) libparpar_gf16_sve_a_SOURCES = \ parpar/gf16/gf16_shuffle128_sve.c \ parpar/gf16/gf_add_sve.c \ parpar/gf16/gf16_cksum_sve.c \ parpar/gf16/gf16_checksum_sve.h \ parpar/gf16/gf16_shuffle128_sve_common.h \ parpar/gf16/gf16_sve_common.h libparpar_gf16_sve_a_CFLAGS = $(CFLAGS_SVE) $(libparpar_gf16_a_CFLAGS) libparpar_gf16_sve2_a_SOURCES = \ parpar/gf16/gf16_shuffle128_sve2.c \ parpar/gf16/gf16_shuffle2x128_sve2.c \ parpar/gf16/gf16_shuffle512_sve2.c \ parpar/gf16/gf16_clmul_sve2.c \ parpar/gf16/gf_add_sve2.c \ parpar/gf16/gf16pmul_sve2.c \ parpar/gf16/gf16_clmul_sve2.h libparpar_gf16_sve2_a_CFLAGS = $(CFLAGS_SVE2) $(libparpar_gf16_a_CFLAGS) libparpar_gf16_rvv_a_SOURCES = \ parpar/gf16/gf16_cksum_rvv.c \ parpar/gf16/gf16_shuffle128_rvv.c \ parpar/gf16/gf_add_rvv.c \ parpar/gf16/gf16_checksum_rvv.h \ parpar/gf16/gf16_rvv_common.h libparpar_gf16_rvv_a_CFLAGS = $(CFLAGS_RV64V) $(CFLAGS_RV32V) $(libparpar_gf16_a_CFLAGS) libparpar_gf16_rvv_zvbc_a_SOURCES = \ parpar/gf16/gf16_clmul_rvv.c \ parpar/gf16/gf16pmul_rvv.c \ parpar/gf16/gf16_clmul_rvv.h libparpar_gf16_rvv_zvbc_a_CFLAGS = $(CFLAGS_RV64ZVBC) $(CFLAGS_RV32ZVBC) $(libparpar_gf16_a_CFLAGS) libparpar_hasher_a_SOURCES = \ parpar/hasher/crc_zeropad.c \ parpar/hasher/hasher.cpp \ parpar/hasher/hasher_scalar.cpp \ parpar/hasher/hasher_input.cpp \ parpar/hasher/hasher_md5crc.cpp \ parpar/hasher/tables.cpp \ parpar/hasher/md5-final.c \ parpar/hasher/crc_arm.h \ parpar/hasher/crc_slice4.h \ parpar/hasher/crc_zeropad.h \ parpar/hasher/hasher.h \ parpar/hasher/hasher_input.h \ parpar/hasher/hasher_input_base.h \ parpar/hasher/hasher_input_impl.h \ parpar/hasher/hasher_input_stub.h \ parpar/hasher/hasher_md5crc.h \ parpar/hasher/hasher_md5crc_base.h \ parpar/hasher/hasher_md5crc_impl.h \ parpar/hasher/hasher_md5crc_stub.h \ parpar/hasher/hasher_md5mb.h \ parpar/hasher/hasher_md5mb_base.h \ parpar/hasher/hasher_md5mb_impl.h \ parpar/hasher/hasher_md5mb_stub.h \ parpar/hasher/md5-arm-asm.h \ parpar/hasher/md5-arm64-asm.h \ parpar/hasher/md5-base.h \ parpar/hasher/md5-final.h \ parpar/hasher/md5-scalar.h \ parpar/hasher/md5-scalar-base.h \ parpar/hasher/md5-x86-asm.h \ parpar/hasher/md5x2-arm-asm.h \ parpar/hasher/md5mb-base.h \ parpar/hasher/md5mb-scalar.h \ parpar/hasher/md5x2-base.h \ parpar/hasher/md5x2-scalar.h \ parpar/hasher/md5x2-x86-asm.h \ parpar/src/cpuid.h \ parpar/src/hedley.h \ parpar/src/platform.h \ parpar/src/stdint.h # these two lines are needed for the right object files to be generated (for some reason) libparpar_hasher_a_CFLAGS = $(CFLAGS_POSIX_SOURCE) libparpar_hasher_a_CXXFLAGS = libparpar_hasher_sse2_a_SOURCES = \ parpar/hasher/hasher_sse.cpp \ parpar/hasher/md5mb-sse.h \ parpar/hasher/md5x2-sse.h \ parpar/hasher/md5x2-sse-asm.h libparpar_hasher_sse2_a_CXXFLAGS = $(CFLAGS_SSE2) $(libparpar_hasher_a_CXXFLAGS) libparpar_hasher_clmul_a_SOURCES = \ parpar/hasher/hasher_clmul.cpp \ parpar/hasher/crc_clmul.h libparpar_hasher_clmul_a_CXXFLAGS = $(CFLAGS_PCLMUL) $(libparpar_hasher_a_CXXFLAGS) libparpar_hasher_xop_a_SOURCES = parpar/hasher/hasher_xop.cpp libparpar_hasher_xop_a_CXXFLAGS = $(CFLAGS_XOP) $(libparpar_hasher_a_CXXFLAGS) libparpar_hasher_bmi1_a_SOURCES = parpar/hasher/hasher_bmi1.cpp libparpar_hasher_bmi1_a_CXXFLAGS = $(CFLAGS_BMI1) $(libparpar_hasher_a_CXXFLAGS) libparpar_hasher_avx2_a_SOURCES = parpar/hasher/hasher_avx2.cpp libparpar_hasher_avx2_a_CXXFLAGS = $(CFLAGS_AVX2) $(libparpar_hasher_a_CXXFLAGS) libparpar_hasher_avx512_a_SOURCES = \ parpar/hasher/hasher_avx512.cpp \ parpar/hasher/md5-avx512.h \ parpar/hasher/md5-avx512-asm.h libparpar_hasher_avx512_a_CXXFLAGS = $(CFLAGS_AVX512F) $(libparpar_hasher_a_CXXFLAGS) libparpar_hasher_avx512vl_a_SOURCES = parpar/hasher/hasher_avx512vl.cpp libparpar_hasher_avx512vl_a_CXXFLAGS = $(CFLAGS_AVX512_HASHER) $(libparpar_hasher_a_CXXFLAGS) libparpar_hasher_armcrc_a_SOURCES = parpar/hasher/hasher_armcrc.cpp libparpar_hasher_armcrc_a_CXXFLAGS = $(CFLAGS_ARMCRC) $(CFLAGS_ARMCRC_FP) $(libparpar_hasher_a_CXXFLAGS) libparpar_hasher_neon_a_SOURCES = \ parpar/hasher/hasher_neon.cpp \ parpar/hasher/md5mb-neon.h \ parpar/hasher/md5x2-neon.h \ parpar/hasher/md5x2-neon-asm.h libparpar_hasher_neon_a_CXXFLAGS = $(CFLAGS_NEON) $(libparpar_hasher_a_CXXFLAGS) libparpar_hasher_neoncrc_a_SOURCES = parpar/hasher/hasher_neoncrc.cpp libparpar_hasher_neoncrc_a_CXXFLAGS = $(CFLAGS_NEON) $(CFLAGS_ARMCRC) $(libparpar_hasher_a_CXXFLAGS) libparpar_hasher_sve2_a_SOURCES = \ parpar/hasher/hasher_sve2.cpp \ parpar/hasher/md5mb-sve2.h libparpar_hasher_sve2_a_CXXFLAGS = $(CFLAGS_SVE2) $(libparpar_hasher_a_CXXFLAGS) libparpar_hasher_zbkc_a_SOURCES = \ parpar/hasher/hasher_rvzbc.cpp \ parpar/hasher/crc_rvzbc.h libparpar_hasher_zbkc_a_CXXFLAGS = $(CFLAGS_RV64ZBKC) $(CFLAGS_RV32ZBKC) $(libparpar_hasher_a_CXXFLAGS) bin_PROGRAMS = par2 man_MANS = man/par2.1 par2_SOURCES = src/par2cmdline.cpp \ src/commandline.cpp src/commandline.h par2_LDADD = libpar2.a -lstdc++ $(PTHREAD_LIBS) $(LDFLAGS_LIBATOMIC) LDADD = -lstdc++ $(PTHREAD_LIBS) $(LDFLAGS_LIBATOMIC) AM_CPPFLAGS = -Wall -DNDEBUG -DPARPAR_ENABLE_HASHER_MD5CRC -DPARPAR_INVERT_SUPPORT -DPARPAR_SLIM_GF16 AM_CXXFLAGS = -std=c++14 $(PTHREAD_CFLAGS) if MINGW par2_LDFLAGS = -municode endif EXTRA_DIST = \ man/par2.1 \ automake.sh \ tests/flatdata.tar.gz \ tests/flatdata-par1files.tar.gz \ tests/flatdata-par2files.tar.gz \ tests/subdirdata.tar.gz \ tests/subdirdata-par2files-unix.tar.gz \ tests/subdirdata-par2files-win.tar.gz \ tests/smallsubdirdata.tar.gz \ tests/smallsubdirdata-par2files.tar.gz \ tests/100blocks.tar.gz \ tests/readbeyondeof.tar.gz \ tests/par2-0.6.8-crash.tar.gz \ tests/bug44.tar.gz \ tests/bug128-parfiles.tar.gz \ tests/bug190.tar.gz \ tests/block-count-wrap.tar.gz \ tests/generate-block-count-wrap-fixture.py \ tests/flatdata-filelist.txt \ tests/subdirdata-filelist.txt \ tests/subdirdata-partial-filelist.txt \ tests/subdirdata-folder-filelist.txt \ tests/testfuncs.ps1 \ tests/build_unit_tests.ps1 \ tests/run_tests.ps1 \ tests/test1 \ tests/test1.ps1 \ tests/test2 \ tests/test2.ps1 \ tests/test3 \ tests/test3.ps1 \ tests/test4 \ tests/test4.ps1 \ tests/test5 \ tests/test5.ps1 \ tests/test5rk \ tests/test5rk.ps1 \ tests/test6 \ tests/test6.ps1 \ tests/test7 \ tests/test7.ps1 \ tests/test8 \ tests/test8.ps1 \ tests/test9 \ tests/test9.ps1 \ tests/test10 \ tests/test10.ps1 \ tests/test11 \ tests/test11.ps1 \ tests/test12 \ tests/test12.ps1 \ tests/test13 \ tests/test13.ps1 \ tests/test14 \ tests/test14.ps1 \ tests/test15 \ tests/test15.ps1 \ tests/test16 \ tests/test16.ps1 \ tests/test17 \ tests/test17.ps1 \ tests/test18 \ tests/test18.ps1 \ tests/test19 \ tests/test19.ps1 \ tests/test20 \ tests/test20.ps1 \ tests/test21 \ tests/test21.ps1 \ tests/test22 \ tests/test22.ps1 \ tests/test23 \ tests/test23.ps1 \ tests/test24 \ tests/test24.ps1 \ tests/test25 \ tests/test25.ps1 \ tests/test26 \ tests/test26.ps1 \ tests/test27 \ tests/test27.ps1 \ tests/test28 \ tests/test28.ps1 \ tests/test29 \ tests/test29.ps1 \ tests/test30 \ tests/test30.ps1 \ tests/test31 \ tests/test31.ps1 \ tests/test32 \ tests/test32.ps1 \ tests/test33 \ tests/test33.ps1 \ tests/test34 \ tests/test34.ps1 \ tests/test35 \ tests/test35.ps1 \ tests/test36 \ tests/test36.ps1 \ tests/test37 \ tests/test37.ps1 \ tests/test38 \ tests/test38.ps1 \ tests/test39 \ tests/test39.ps1 \ tests/test40 \ tests/test40.ps1 \ tests/test41 \ tests/test41.ps1 \ tests/test42 \ tests/test42.ps1 \ tests/test43 \ tests/test44 \ tests/unit_tests \ tests/unit_tests.ps1 # Programs that need to be compiled for the test suite. # These are the unit tests. check_PROGRAMS = tests/letype_test tests/crc_test tests/md5_test tests/diskfile_test tests/libpar2_test tests/commandline_test tests/descriptionpacket_test tests/criticalpacket_test tests/reedsolomon_test tests/galois_test tests/utf8_test tests_letype_test_SOURCES = src/letype_test.cpp src/letype.h tests_crc_test_SOURCES = src/crc_test.cpp src/crc.cpp src/crc.h tests_crc_test_LDADD = libpar2.a $(LDADD) tests_md5_test_SOURCES = src/md5_test.cpp src/md5.cpp src/md5.h tests_md5_test_LDADD = libpar2.a $(LDADD) tests_diskfile_test_SOURCES = src/diskfile_test.cpp src/diskfile.cpp src/diskfile.h tests_diskfile_test_LDADD = libpar2.a $(LDADD) tests_libpar2_test_SOURCES = src/libpar2_test.cpp src/libpar2.h tests_libpar2_test_LDADD = libpar2.a $(LDADD) tests_commandline_test_SOURCES = src/commandline_test.cpp src/commandline.cpp src/commandline.h tests_commandline_test_LDADD = libpar2.a $(LDADD) tests_descriptionpacket_test_SOURCES = src/descriptionpacket_test.cpp src/descriptionpacket.cpp src/descriptionpacket.h tests_descriptionpacket_test_LDADD = libpar2.a $(LDADD) tests_criticalpacket_test_SOURCES = src/criticalpacket_test.cpp src/criticalpacket.cpp src/criticalpacket.h tests_criticalpacket_test_LDADD = libpar2.a $(LDADD) tests_reedsolomon_test_SOURCES = src/reedsolomon_test.cpp src/reedsolomon.cpp src/reedsolomon.h tests_galois_test_SOURCES = src/galois_test.cpp src/galois.cpp src/galois.h tests_utf8_test_SOURCES = src/utf8_test.cpp src/utf8.cpp src/utf8.h # List of all tests. # tests/test* are integration tests that use the binary. # $(check_PROGRAMS) is the list of compiled unit tests. TESTS = \ tests/test1 \ tests/test2 \ tests/test3 \ tests/test4 \ tests/test5 \ tests/test5rk \ tests/test6 \ tests/test7 \ tests/test8 \ tests/test9 \ tests/test10 \ tests/test11 \ tests/test12 \ tests/test13 \ tests/test14 \ tests/test15 \ tests/test16 \ tests/test17 \ tests/test18 \ tests/test19 \ tests/test20 \ tests/test21 \ tests/test22 \ tests/test23 \ tests/test24 \ tests/test25 \ tests/test26 \ tests/test27 \ tests/test28 \ tests/test29 \ tests/test30 \ tests/test31 \ tests/test32 \ tests/test33 \ tests/test34 \ tests/test35 \ tests/test36 \ tests/test37 \ tests/test38 \ tests/test39 \ tests/test40 \ tests/test41 \ tests/test42 \ tests/test43 \ tests/test44 \ tests/utf8_test \ tests/unit_tests install-exec-hook : cd $(DESTDIR)$(bindir)/ && \ ln -sf par2$(EXEEXT) par2create$(EXEEXT) && \ ln -sf par2$(EXEEXT) par2verify$(EXEEXT) && \ ln -sf par2$(EXEEXT) par2repair$(EXEEXT) install-data-hook : cd $(DESTDIR)$(man1dir)/ && \ ln -sf par2.1 par2create.1 && \ ln -sf par2.1 par2verify.1 && \ ln -sf par2.1 par2repair.1 uninstall-hook : rm -f $(DESTDIR)$(bindir)/par2create$(EXEEXT) rm -f $(DESTDIR)$(bindir)/par2verify$(EXEEXT) rm -f $(DESTDIR)$(bindir)/par2repair$(EXEEXT) rm -f $(DESTDIR)$(man1dir)/par2create.1 rm -f $(DESTDIR)$(man1dir)/par2verify.1 rm -f $(DESTDIR)$(man1dir)/par2repair.1 par2cmdline-turbo-1.5.0/README.md000066400000000000000000000142641524160147200163360ustar00rootroot00000000000000This is a *simple* fork of [par2cmdline](https://github.com/Parchive/par2cmdline) which replaces core computation routines with [ParPar’s](https://github.com/animetosho/ParPar) processing backend, improving par2cmdline’s performance on x86/ARM platforms. The original par2cmdline README [can be found here](https://github.com/Parchive/par2cmdline/blob/master/README.md), which covers more info including build and usage instructions. # Differences with par2cmdline par2cmdline-turbo aims to keep close with its upstream and only differs in the following areas related to performance. As such, the scope of this project covers: * GF16, MD5 and CRC32 computation, using ParPar’s implementation * Use ParPar’s internal checksumming to detect RAM errors during GF16 computation * Adopts ParPar’s stitched hashing approach Note that this fork isn’t intended to change too much of par2cmdline itself and hence, is *not* aimed at fixing bugs or functionality improvements. Bug reports and feature requests should be directed at the [upstream project](https://github.com/Parchive/par2cmdline) where relevant. The minimalistic nature of this project also means that there’s some degree of performance left on the table, and there’s no focus on improving PAR1 performance. Note that par2cmdline-turbo may use slightly more memory than par2cmdline, due to increased buffering in ParPar’s backend. ## Threading & OpenMP par2cmdline-turbo removes par2cmdline's [OpenMP dependency](https://github.com/jkansanen/par2cmdline-mt), replacing it with C++11's threads. This change enables fully static builds, as a number of environments can only dynamically link to the OpenMP runtime. This does have a flow on effect that the `-t`/`-T` flags and libpar2’s *threads* related parameters will be present and work, regardless of OpenMP presence (in par2cmdline, these would differ depending on whether OpenMP support was compiled in). ## Compared to other par2cmdline forks I know of two other forks to par2cmdline: [par2cmdline-tbb](https://web.archive.org/web/20150526072258/http://www.chuchusoft.com/par2_tbb) and [phpar2](http://www.paulhoule.com/phpar2/index.php), both of which focus on performance (like this fork). Key changes of those forks, over the original upstream par2cmdline, from what I can gather: **par2cmdline-tbb** * adds multi-threading via TBB * adds MMX optimized routines for GF16 computation (from phpar2) * adds support for concurrency during creation/verification/repair * adds experimental CUDA (GPU) support * async I/O * only available on x86 platforms, due to use of [Intel TBB](https://www.intel.com/content/www/us/en/developer/articles/guide/get-started-with-tbb.html) and x86 assembly **phpar2** * adds multi-threading * adds MMX optimized routines for GF16 computation * assembly optimized MD5 routine * only available on x86 Windows platforms, due to use of x86 assembly and Windows API reliance **par2cmdline-turbo** differences: * the above forks were based off the original par2cmdline (0.4?), whereas this fork is based off (at time of writing) the latest ‘mainline’ fork (0.8.1 with unreleased changes) * faster GF16 techniques, taking advantage of modern SIMD extensions, are used instead of MMX * faster CRC32 implementations * uses stitched MD5+CRC32 hashing * accelerates matrix inversion * does not add support for async I/O, though it might get some due to the async nature of ParPar’s GF16 backend * does not add GPU computation (but ParPar has elementary OpenCL support, so might arrive in the future) * optimizations for ARM and RISC-V CPUs * cross-platform support ## Benchmarks Some speed comparisons posted by others: * [PAR2 create](https://github.com/animetosho/ParPar/blob/master/benchmarks/info.md) * [PAR2 create](https://github.com/animetosho/par2cmdline-turbo/issues/4#issue-1640569835) (v0.9.0) * [PAR2 verification/repair](https://gist.github.com/thezoggy/3c243b712f0cc960fa4dd78ff1ab56e7) (multiple machines/OSes) * [PAR2 create/verification/repair](https://github.com/pmarreck/par2z#benchmarks) (Apple M-series CPU) ## See Also nzbget.com maintains a [par2cmdline-turbo fork](https://github.com/nzbgetcom/par2cmdline-turbo) which incorporates a few Windows fixes to par2cmdline. # Relation with ParPar [ParPar](https://github.com/animetosho/ParPar) is a from-scratch PAR2 implementation, different from par2cmdline, but only focuses on PAR2 creation. Key reasons to use par2cmdline-turbo over ParPar: * drop-in par2cmdline replacement * par2cmdline supports verification and repair, where ParPar does not Key reasons to use ParPar over par2cmdline-turbo: * par2cmdline-turbo doesn’t implement all performance optimisations in ParPar, such as async I/O, streaming hash computation etc * features unique to ParPar, such as auto-slice size scaling * currently ParPar is more actively maintained than par2cmdline; changes common to these two projects will first be made in ParPar before being ported to par2cmdline-turbo # Installation Pre-built binaries for common systems are available on the [releases page](https://github.com/animetosho/par2cmdline-turbo/releases). ## Packages * Arch Linux: [AUR](https://aur.archlinux.org/packages/par2cmdline-turbo) ([git](https://aur.archlinux.org/packages/par2cmdline-turbo-git)) * Fedora Linux: [COPR](https://copr.fedorainfracloud.org/coprs/errornointernet/par2cmdline-turbo) * Python: [pip](https://pypi.org/project/par2cmdline-turbo/) ## Building * Relatively recent compilers are recommended to take advantage of recent SIMD support (e.g. MSVC >=2019, GCC >=10) * ParPar backend requires C++11 support See [original README](https://github.com/Parchive/par2cmdline/blob/master/README.md#compiling-par2cmdline) for build instructions. # Issues, Bugs & PRs If you have an issue, please test with the original par2cmdline. If the issue is present there, please report it to the par2cmdline repository. Only report issues specific to par2cmdline-turbo here. Similarly, questions and pull requests should also be directed to the par2cmdline repository, unless it *specifically* relates to par2cmdline-turbo. # Other Resources * [MultiPar](https://github.com/Yutaka-Sawada/MultiPar) * [Parchive](https://parchive.github.io/) * [Wikipedia](https://en.wikipedia.org/wiki/Parchive)par2cmdline-turbo-1.5.0/ROADMAP000066400000000000000000000207771524160147200160730ustar00rootroot00000000000000I'm using this file for notes to developers. ----------------------------------- Programs to help you test your code ----------------------------------- Cppcheck Cppcheck is a program that will run a static analysis of the code report likely errors. I used the command: cppcheck --enable=all src/*.cpp > cppcheck_output.txt 2>&1 Valgrind Valgrind is an program that tracks memory usage. So, if you forget to free memory or use memory after it has been freed, it will print out a warning. To run Par2 with Valgrind, you the command is: valgrind --leak-check=yes par2 create foo.par2 input1.txt input2.txt The tests will run with Valgrind if you set the environment variable "VALGRINDOPTS". That environment variable is put on the commandline after "valgrind". So, I use: export PARVALGRINDOPTS="--leak-check=yes" MinGW/WINE If you are on a UNIX box and want to check the Windows code, you can compile using MinGW and run using WINE. MinGW is a package for compiling with GCC against Windows libraries. WINE is a Windows simulator. To compile with MinGW, I use the commands: make clean ./configure --host=x86_64-w64-mingw32 make To run Par2 with WINE, you need to tell it where MinGW's copy of the DLLs are. Start by trying to run WINE by putting "wine" in front of your par.exe command: wine ./par2.exe create foo.par2 input1.txt input2.txt If you get a warning about "libgomp.dll" or any other DLL, use this command: x86_64-w64-mingw32-g++ --print-file-name=libgomp.dll which will tell you where to find MinGW's libgomp.dll. You then convert that Linux path to WINE's Windows path by running the command: winepath On my machine, it just adds "z:" in front of the Linux path. You tell WINE about all the DLL directories by putting those paths into the environment variable WINEPATH, separated by semi-colons. I use: export WINEPATH="z:/usr/lib/gcc/x86_64-w64-mingw32/7.3-win32/;z:/usr/x86_64-w64-mingw32/lib/" Then, you should be able to run "wine par2.exe --help" to test that it works. If WINE is working, you can run tests in WINE with the command: make check WARNING: If the tests see that par2 or the unit tests have an ".exe" extension, they will be automatically run with WINE. When switching from MinGW to normal GCC, you need to run "make clean" or the tests may run the wrong version (or run both versions). ----------------------------------------- Below are some older notes about the code ----------------------------------------- commandline.h / commandline.cpp class CommandLine; This class is used to process the command line arguments passed to par2cmdline. Basic verification is done to ensure that invalid combinations of options are not used and that files exist. crc.h / crc.cpp u32 CRCUpdateChar(u32 crc, u8 ch); u32 CRCUpdateBlock(u32 crc, size_t length, const void *buffer); u32 CRCUpdateBlock(u32 crc, size_t length); void GenerateWindowTable(u64 window, u32 (&windowtable)[256]); u32 ComputeWindowMask(u64 window); u32 CRCSlideChar(u32 crc, u8 chNew, u8 chOld, const u32 (&windowtable)[256]); These functions are used to calculate and verify the CCITT CRC32 values for blocks of data in data files. The latter three functions allow the rapid computation of the crc for data in a sliding window. creatorpacket.h / creatorpacket.cpp class CreatorPacket; This class is used to read and write "Creator Packets" to a recovery file. criticalpacket.h / criticalpacket.cpp class CriticalPacket; class CriticalPacketEntry; CriticalPacket is the base class for DesriptionPacket, VerificationPacket, MainPacket, and CreatorPacket. CriticalPacket encapsulates memory allocation for the packet, computation of the packet hash and writing the packet to disk. CriticalPacketEntry is used to record that a copy of a specific critical packet will be written to a particular file at a specific offset. datablock.h / datablock.cpp class DataBlock; Objects of this type are used to track blocks of data that belong to different files. When data is read from or written to a datablock, it calculates the correct file offset and length to use. descriptionpacket.h / descriptionpacket.cpp class DescriptionPacket; This class is used to read and write "File Description Packets" to a recovery file. The class can compute the file id for the file when creating recovery files and will verify that the packet is ok when it is loaded from a recovery file. diskfile.h / diskfile.cpp class DiskFile; class DiskFileMap; The DiskFile class encapsulates all file access. Each object of this type represents on file that par2cmdline is using, and references to it are used in any other object that needs to refer to a file. The DiskFileMap class is used to track which files have been processed. filechecksummer.h / filechecksummer.cpp class FileCheckSummer; The FileCheckSummer is used to compute the CRC and HASH of a sliding window onto a data file. The CRC is updated continuously as the window is slid allong the file, and the HASH is only calculated when it is needed. galois.h / galois.cpp class Galois; class GaloisTable; class GaloisLongMultiplyTable; The Galois object is used for galois arithmetic. GaloisTable encapsulates the log and antilog tables used for fast multiplation and division, and GaloisLongMultiplyTable is used by the ReedSolomon object to allow rapid multiplication of a block of data by the same value. mainpacket.h / mainpacket.cpp class MainPacket; The MainPacket is used to read and write a "Main Packet" to and from a recovery file. md5.h / md5.cpp class MD5Hash; class MD5Context; MD5Context objects are used to calculate the hash of a block of data. The resulting hash value is then stored in an MD5Hash object. par2cmdline.h / par2cmdline.cpp int main(int argc, char *argv[]); par2cmdline.cpp defines the main() function which is responsible for creating a CommandLine object to parse the command line parameters, and then to create either a Par2Creator or a Par2Repairer to either create recovery files or use them to verify and repair data files. par2cmdline.h contains #include lines for all required header files, as well as a number of type definitions. par2creator.h / par2creator.cpp class Par2Creator; This class encapsulates all of the procedures required to create recovery files from a set of data files. par2creatorsourcefile.h / par2creatorsourcefile.cpp class Par2CreatorSourceFile; Each object of this type represent one of the data files for which recovery files are to be created. It handles creation of a DescriptionPacket and a VerificationPacket, computation of the full file hash and 16k hash values and the calculation and recording of the crc and hash values for each data block withint the file. par2fileformat.h / par2fileformat.cpp struct PACKET_HEADER; struct FILEVERIFICATIONPACKET; struct FILEDESCRIPTIONPACKET; struct MAINPACKET; struct CREATORPACKET; struct RECOVERYBLOCKPACKET; These structures define the exact format used to store the various packets in a recovery file. par2repairer.h / par2repairer.cpp class Par2Repairer; This class encapsulates all of the procedures required to use a set of recovery files to verify and repair the data files for which they were created. par2repairersourcefile.h / par2repairersourcefile.cpp class Par2RepairerSourceFile; Each object of this class represents one of the data files that is being verified and repaired. It has a copy of the description packet and verification packet from the recovery files, and keeps track of exactly which disk files contain data blocks that belong to it. recoverypacket.h / recoverypacket.cpp class RecoveryPacket; This class is used to read and write the header of a Recovery Packet. If contains a DataBlock object which is used to read and write data to or from the rest of the recovery packet. verificationhashtable.h / verificationhashtable.cpp class VerificationHashTable; class VerificationHashEntry; The VerificationHashTable is to store details obtained from all of the verification packets. It is used to check whether or not the crc and hash values calculated by the FileCheckSummer match any of the data blocks from the data files. verificationpacket.h / verificationpacket.cpp class VerificationPacket; This class is used to read a write Verification Packets to and from recovery files. letype.h class leu32; class leu64; These two types are used by fileformat.h and are used to handle the type conversion between little endian and big endian numerical formats. par2cmdline-turbo-1.5.0/automake.sh000077500000000000000000000001311524160147200172100ustar00rootroot00000000000000#!/bin/sh set -e aclocal automake --warnings=all --add-missing autoconf --warnings=all par2cmdline-turbo-1.5.0/build/000077500000000000000000000000001524160147200161475ustar00rootroot00000000000000par2cmdline-turbo-1.5.0/build/build-debug.sh000077500000000000000000000002031524160147200206640ustar00rootroot00000000000000#!/usr/bin/env bash export CFLAGS="-g -O0" export CXXFLAGS="-g -O0" # automake ./automake.sh # configure ./configure # make make par2cmdline-turbo-1.5.0/build/build-static.sh000077500000000000000000000003271524160147200210740ustar00rootroot00000000000000#!/usr/bin/env bash export CFLAGS="-O3 -pipe -fstack-protector-strong" export CXXFLAGS="-O3 -pipe -fstack-protector-strong" export LDFLAGS="-static -s" # automake ./automake.sh # configure ./configure # make make par2cmdline-turbo-1.5.0/build/build.sh000077500000000000000000000002731524160147200176070ustar00rootroot00000000000000#!/usr/bin/env bash export CFLAGS="-O3 -pipe -fstack-protector-strong" export CXXFLAGS="-O3 -pipe -fstack-protector-strong" # automake ./automake.sh # configure ./configure # make make par2cmdline-turbo-1.5.0/build/release.sh000077500000000000000000000007121524160147200201260ustar00rootroot00000000000000#!/usr/bin/env bash set -e git clean -xfd build/build.sh make check make distcheck version=$(ls -1 par2cmdline*.tar.gz | tail -n1 | sed -e 's/par2cmdline-\([0-9\.]\+\)\.tar\.gz/\1/') [[ -d ../par2release ]] && rm -r ../par2release mkdir -p ../par2release mv par2cmdline-$version.tar.gz ../par2release ( cd ../par2release zcat par2cmdline-$version.tar.gz | bzip2 > par2cmdline-$version.tar.bz2 ) # build/release-win.sh git tag -a --sign v$version par2cmdline-turbo-1.5.0/build/sign-release.sh000077500000000000000000000006101524160147200210610ustar00rootroot00000000000000#!/usr/bin/env bash set -x gpg_default_key="" local_gpgkey="$(grep 'signingkey' .git/config | sed -e 's/.*=\s\+//')" if [[ -n "$local_gpgkey" ]]; then echo "$local_gpgkey" gpg_default_key="--default-key $local_gpgkey" fi ( cd ../par2release sha512sum *.tar* *.zip > checksums.sha512 for file in *.tar* *.zip; do gpg $gpg_default_key --detach-sign $file done ) par2cmdline-turbo-1.5.0/config.guess000077500000000000000000001430461524160147200174000ustar00rootroot00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright 1992-2024 Free Software Foundation, Inc. # shellcheck disable=SC2006,SC2268 # see below for rationale timestamp='2024-01-01' # This file 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 . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: # https://git.savannah.gnu.org/cgit/config.git/plain/config.guess # # Please send patches to . # The "shellcheck disable" line above the timestamp inhibits complaints # about features and limitations of the classic Bourne shell that were # superseded or lifted in POSIX. However, this script identifies a wide # variety of pre-POSIX systems that do not have POSIX shells at all, and # even some reasonably current systems (Solaris 10 as case-in-point) still # have a pre-POSIX /bin/sh. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system '$me' is run on. Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright 1992-2024 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try '$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi # Just in case it came from the environment. GUESS= # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, 'CC_FOR_BUILD' used to be named 'HOST_CC'. We still # use 'HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. tmp= # shellcheck disable=SC2172 trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 set_cc_for_build() { # prevent multiple calls if $tmp is already set test "$tmp" && return 0 : "${TMPDIR=/tmp}" # shellcheck disable=SC2039,SC3028 { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } dummy=$tmp/dummy case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in ,,) echo "int x;" > "$dummy.c" for driver in cc gcc c89 c99 ; do if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then CC_FOR_BUILD=$driver break fi done if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac } # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if test -f /.attbin/uname ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown case $UNAME_SYSTEM in Linux|GNU|GNU/*) LIBC=unknown set_cc_for_build cat <<-EOF > "$dummy.c" #if defined(__ANDROID__) LIBC=android #else #include #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc #elif defined(__GLIBC__) LIBC=gnu #elif defined(__LLVM_LIBC__) LIBC=llvm #else #include /* First heuristic to detect musl libc. */ #ifdef __DEFINED_va_list LIBC=musl #endif #endif #endif EOF cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` eval "$cc_set_libc" # Second heuristic to detect musl libc. if [ "$LIBC" = unknown ] && command -v ldd >/dev/null && ldd --version 2>&1 | grep -q ^musl; then LIBC=musl fi # If the system lacks a compiler, then just pick glibc. # We could probably try harder. if [ "$LIBC" = unknown ]; then LIBC=gnu fi ;; esac # Note: order is significant - the case branches are not exclusive. case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ echo unknown)` case $UNAME_MACHINE_ARCH in aarch64eb) machine=aarch64_be-unknown ;; armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; earmv*) arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` machine=${arch}${endian}-unknown ;; *) machine=$UNAME_MACHINE_ARCH-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently (or will in the future) and ABI. case $UNAME_MACHINE_ARCH in earm*) os=netbsdelf ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # Determine ABI tags. case $UNAME_MACHINE_ARCH in earm*) expr='s/^earmv[0-9]/-eabi/;s/eb$//' abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case $UNAME_VERSION in Debian*) release='-gnu' ;; *) release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. GUESS=$machine-${os}${release}${abi-} ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE ;; *:SecBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'` GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE ;; *:LibertyBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE ;; *:MidnightBSD:*:*) GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE ;; *:ekkoBSD:*:*) GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE ;; *:SolidBSD:*:*) GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE ;; *:OS108:*:*) GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE ;; macppc:MirBSD:*:*) GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE ;; *:MirBSD:*:*) GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE ;; *:Sortix:*:*) GUESS=$UNAME_MACHINE-unknown-sortix ;; *:Twizzler:*:*) GUESS=$UNAME_MACHINE-unknown-twizzler ;; *:Redox:*:*) GUESS=$UNAME_MACHINE-unknown-redox ;; mips:OSF1:*.*) GUESS=mips-dec-osf1 ;; alpha:OSF1:*:*) # Reset EXIT trap before exiting to avoid spurious non-zero exit code. trap '' 0 case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case $ALPHA_CPU_TYPE in "EV4 (21064)") UNAME_MACHINE=alpha ;; "EV4.5 (21064)") UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") UNAME_MACHINE=alpha ;; "EV5 (21164)") UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") UNAME_MACHINE=alphaev79 ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` GUESS=$UNAME_MACHINE-dec-osf$OSF_REL ;; Amiga*:UNIX_System_V:4.0:*) GUESS=m68k-unknown-sysv4 ;; *:[Aa]miga[Oo][Ss]:*:*) GUESS=$UNAME_MACHINE-unknown-amigaos ;; *:[Mm]orph[Oo][Ss]:*:*) GUESS=$UNAME_MACHINE-unknown-morphos ;; *:OS/390:*:*) GUESS=i370-ibm-openedition ;; *:z/VM:*:*) GUESS=s390-ibm-zvmoe ;; *:OS400:*:*) GUESS=powerpc-ibm-os400 ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) GUESS=arm-acorn-riscix$UNAME_RELEASE ;; arm*:riscos:*:*|arm*:RISCOS:*:*) GUESS=arm-unknown-riscos ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) GUESS=hppa1.1-hitachi-hiuxmpp ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. case `(/bin/universe) 2>/dev/null` in att) GUESS=pyramid-pyramid-sysv3 ;; *) GUESS=pyramid-pyramid-bsd ;; esac ;; NILE*:*:*:dcosx) GUESS=pyramid-pyramid-svr4 ;; DRS?6000:unix:4.0:6*) GUESS=sparc-icl-nx6 ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) GUESS=sparc-icl-nx7 ;; esac ;; s390x:SunOS:*:*) SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL ;; sun4H:SunOS:5.*:*) SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=sparc-hal-solaris2$SUN_REL ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=sparc-sun-solaris2$SUN_REL ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) GUESS=i386-pc-auroraux$UNAME_RELEASE ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) set_cc_for_build SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if test "$CC_FOR_BUILD" != no_compiler_found; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH=x86_64 fi fi SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=$SUN_ARCH-pc-solaris2$SUN_REL ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=sparc-sun-solaris3$SUN_REL ;; sun4*:SunOS:*:*) case `/usr/bin/arch -k` in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like '4.1.3-JL'. SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'` GUESS=sparc-sun-sunos$SUN_REL ;; sun3*:SunOS:*:*) GUESS=m68k-sun-sunos$UNAME_RELEASE ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 case `/bin/arch` in sun3) GUESS=m68k-sun-sunos$UNAME_RELEASE ;; sun4) GUESS=sparc-sun-sunos$UNAME_RELEASE ;; esac ;; aushp:SunOS:*:*) GUESS=sparc-auspex-sunos$UNAME_RELEASE ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) GUESS=m68k-atari-mint$UNAME_RELEASE ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) GUESS=m68k-atari-mint$UNAME_RELEASE ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) GUESS=m68k-atari-mint$UNAME_RELEASE ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) GUESS=m68k-milan-mint$UNAME_RELEASE ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) GUESS=m68k-hades-mint$UNAME_RELEASE ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) GUESS=m68k-unknown-mint$UNAME_RELEASE ;; m68k:machten:*:*) GUESS=m68k-apple-machten$UNAME_RELEASE ;; powerpc:machten:*:*) GUESS=powerpc-apple-machten$UNAME_RELEASE ;; RISC*:Mach:*:*) GUESS=mips-dec-mach_bsd4.3 ;; RISC*:ULTRIX:*:*) GUESS=mips-dec-ultrix$UNAME_RELEASE ;; VAX*:ULTRIX*:*:*) GUESS=vax-dec-ultrix$UNAME_RELEASE ;; 2020:CLIX:*:* | 2430:CLIX:*:*) GUESS=clipper-intergraph-clix$UNAME_RELEASE ;; mips:*:*:UMIPS | mips:*:*:RISCos) set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o "$dummy" "$dummy.c" && dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`"$dummy" "$dummyarg"` && { echo "$SYSTEM_NAME"; exit; } GUESS=mips-mips-riscos$UNAME_RELEASE ;; Motorola:PowerMAX_OS:*:*) GUESS=powerpc-motorola-powermax ;; Motorola:*:4.3:PL8-*) GUESS=powerpc-harris-powermax ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) GUESS=powerpc-harris-powermax ;; Night_Hawk:Power_UNIX:*:*) GUESS=powerpc-harris-powerunix ;; m88k:CX/UX:7*:*) GUESS=m88k-harris-cxux7 ;; m88k:*:4*:R4*) GUESS=m88k-motorola-sysv4 ;; m88k:*:3*:R3*) GUESS=m88k-motorola-sysv3 ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 then if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ test "$TARGET_BINARY_INTERFACE"x = x then GUESS=m88k-dg-dgux$UNAME_RELEASE else GUESS=m88k-dg-dguxbcs$UNAME_RELEASE fi else GUESS=i586-dg-dgux$UNAME_RELEASE fi ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) GUESS=m88k-dolphin-sysv3 ;; M88*:*:R3*:*) # Delta 88k system running SVR3 GUESS=m88k-motorola-sysv3 ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) GUESS=m88k-tektronix-sysv3 ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) GUESS=m68k-tektronix-bsd ;; *:IRIX*:*:*) IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'` GUESS=mips-sgi-irix$IRIX_REL ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) GUESS=i386-ibm-aix ;; ia64:AIX:*:*) if test -x /usr/bin/oslevel ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=$UNAME_VERSION.$UNAME_RELEASE fi GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` then GUESS=$SYSTEM_NAME else GUESS=rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then GUESS=rs6000-ibm-aix3.2.4 else GUESS=rs6000-ibm-aix3.2 fi ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if test -x /usr/bin/lslpp ; then IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \ awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else IBM_REV=$UNAME_VERSION.$UNAME_RELEASE fi GUESS=$IBM_ARCH-ibm-aix$IBM_REV ;; *:AIX:*:*) GUESS=rs6000-ibm-aix ;; ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) GUESS=romp-ibm-bsd4.4 ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) GUESS=rs6000-bull-bosx ;; DPX/2?00:B.O.S.:*:*) GUESS=m68k-bull-sysv3 ;; 9000/[34]??:4.3bsd:1.*:*) GUESS=m68k-hp-bsd ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) GUESS=m68k-hp-bsd4.4 ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` case $UNAME_MACHINE in 9000/31?) HP_ARCH=m68000 ;; 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if test -x /usr/bin/getconf; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case $sc_cpu_version in 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case $sc_kernel_bits in 32) HP_ARCH=hppa2.0n ;; 64) HP_ARCH=hppa2.0w ;; '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi if test "$HP_ARCH" = ""; then set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if test "$HP_ARCH" = hppa2.0w then set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH=hppa2.0w else HP_ARCH=hppa64 fi fi GUESS=$HP_ARCH-hp-hpux$HPUX_REV ;; ia64:HP-UX:*:*) HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` GUESS=ia64-hp-hpux$HPUX_REV ;; 3050*:HI-UX:*:*) set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } GUESS=unknown-hitachi-hiuxwe2 ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) GUESS=hppa1.1-hp-bsd ;; 9000/8??:4.3bsd:*:*) GUESS=hppa1.0-hp-bsd ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) GUESS=hppa1.0-hp-mpeix ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) GUESS=hppa1.1-hp-osf ;; hp8??:OSF1:*:*) GUESS=hppa1.0-hp-osf ;; i*86:OSF1:*:*) if test -x /usr/sbin/sysversion ; then GUESS=$UNAME_MACHINE-unknown-osf1mk else GUESS=$UNAME_MACHINE-unknown-osf1 fi ;; parisc*:Lites*:*:*) GUESS=hppa1.1-hp-lites ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) GUESS=c1-convex-bsd ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) GUESS=c34-convex-bsd ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) GUESS=c38-convex-bsd ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) GUESS=c4-convex-bsd ;; CRAY*Y-MP:*:*:*) CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` GUESS=ymp-cray-unicos$CRAY_REL ;; CRAY*[A-Z]90:*:*:*) echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` GUESS=t90-cray-unicos$CRAY_REL ;; CRAY*T3E:*:*:*) CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` GUESS=alphaev5-cray-unicosmk$CRAY_REL ;; CRAY*SV1:*:*:*) CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` GUESS=sv1-cray-unicos$CRAY_REL ;; *:UNICOS/mp:*:*) CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` GUESS=craynv-cray-unicosmp$CRAY_REL ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE ;; sparc*:BSD/OS:*:*) GUESS=sparc-unknown-bsdi$UNAME_RELEASE ;; *:BSD/OS:*:*) GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE ;; arm:FreeBSD:*:*) UNAME_PROCESSOR=`uname -p` set_cc_for_build if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi else FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf fi ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`uname -p` case $UNAME_PROCESSOR in amd64) UNAME_PROCESSOR=x86_64 ;; i386) UNAME_PROCESSOR=i586 ;; esac FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL ;; i*:CYGWIN*:*) GUESS=$UNAME_MACHINE-pc-cygwin ;; *:MINGW64*:*) GUESS=$UNAME_MACHINE-pc-mingw64 ;; *:MINGW*:*) GUESS=$UNAME_MACHINE-pc-mingw32 ;; *:MSYS*:*) GUESS=$UNAME_MACHINE-pc-msys ;; i*:PW*:*) GUESS=$UNAME_MACHINE-pc-pw32 ;; *:SerenityOS:*:*) GUESS=$UNAME_MACHINE-pc-serenity ;; *:Interix*:*) case $UNAME_MACHINE in x86) GUESS=i586-pc-interix$UNAME_RELEASE ;; authenticamd | genuineintel | EM64T) GUESS=x86_64-unknown-interix$UNAME_RELEASE ;; IA64) GUESS=ia64-unknown-interix$UNAME_RELEASE ;; esac ;; i*:UWIN*:*) GUESS=$UNAME_MACHINE-pc-uwin ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) GUESS=x86_64-pc-cygwin ;; prep*:SunOS:5.*:*) SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=powerpcle-unknown-solaris2$SUN_REL ;; *:GNU:*:*) # the GNU system GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'` GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'` GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL ;; *:GNU/*:*:*) # other systems with GNU libc and userland GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"` GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC ;; x86_64:[Mm]anagarm:*:*|i?86:[Mm]anagarm:*:*) GUESS="$UNAME_MACHINE-pc-managarm-mlibc" ;; *:[Mm]anagarm:*:*) GUESS="$UNAME_MACHINE-unknown-managarm-mlibc" ;; *:Minix:*:*) GUESS=$UNAME_MACHINE-unknown-minix ;; aarch64:Linux:*:*) set_cc_for_build CPU=$UNAME_MACHINE LIBCABI=$LIBC if test "$CC_FOR_BUILD" != no_compiler_found; then ABI=64 sed 's/^ //' << EOF > "$dummy.c" #ifdef __ARM_EABI__ #ifdef __ARM_PCS_VFP ABI=eabihf #else ABI=eabi #endif #endif EOF cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'` eval "$cc_set_abi" case $ABI in eabi | eabihf) CPU=armv8l; LIBCABI=$LIBC$ABI ;; esac fi GUESS=$CPU-unknown-linux-$LIBCABI ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC=gnulibc1 ; fi GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; arm*:Linux:*:*) set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then GUESS=$UNAME_MACHINE-unknown-linux-$LIBC else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi else GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf fi fi ;; avr32*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; cris:Linux:*:*) GUESS=$UNAME_MACHINE-axis-linux-$LIBC ;; crisv32:Linux:*:*) GUESS=$UNAME_MACHINE-axis-linux-$LIBC ;; e2k:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; frv:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; hexagon:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; i*86:Linux:*:*) GUESS=$UNAME_MACHINE-pc-linux-$LIBC ;; ia64:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; k1om:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; kvx:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; kvx:cos:*:*) GUESS=$UNAME_MACHINE-unknown-cos ;; kvx:mbr:*:*) GUESS=$UNAME_MACHINE-unknown-mbr ;; loongarch32:Linux:*:* | loongarch64:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; m32r*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; m68*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; mips:Linux:*:* | mips64:Linux:*:*) set_cc_for_build IS_GLIBC=0 test x"${LIBC}" = xgnu && IS_GLIBC=1 sed 's/^ //' << EOF > "$dummy.c" #undef CPU #undef mips #undef mipsel #undef mips64 #undef mips64el #if ${IS_GLIBC} && defined(_ABI64) LIBCABI=gnuabi64 #else #if ${IS_GLIBC} && defined(_ABIN32) LIBCABI=gnuabin32 #else LIBCABI=${LIBC} #endif #endif #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 CPU=mipsisa64r6 #else #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 CPU=mipsisa32r6 #else #if defined(__mips64) CPU=mips64 #else CPU=mips #endif #endif #endif #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) MIPS_ENDIAN=el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) MIPS_ENDIAN= #else MIPS_ENDIAN= #endif #endif EOF cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'` eval "$cc_set_vars" test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } ;; mips64el:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; openrisc*:Linux:*:*) GUESS=or1k-unknown-linux-$LIBC ;; or32:Linux:*:* | or1k*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; padre:Linux:*:*) GUESS=sparc-unknown-linux-$LIBC ;; parisc64:Linux:*:* | hppa64:Linux:*:*) GUESS=hppa64-unknown-linux-$LIBC ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;; PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;; *) GUESS=hppa-unknown-linux-$LIBC ;; esac ;; ppc64:Linux:*:*) GUESS=powerpc64-unknown-linux-$LIBC ;; ppc:Linux:*:*) GUESS=powerpc-unknown-linux-$LIBC ;; ppc64le:Linux:*:*) GUESS=powerpc64le-unknown-linux-$LIBC ;; ppcle:Linux:*:*) GUESS=powerpcle-unknown-linux-$LIBC ;; riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; s390:Linux:*:* | s390x:Linux:*:*) GUESS=$UNAME_MACHINE-ibm-linux-$LIBC ;; sh64*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; sh*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; sparc:Linux:*:* | sparc64:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; tile*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; vax:Linux:*:*) GUESS=$UNAME_MACHINE-dec-linux-$LIBC ;; x86_64:Linux:*:*) set_cc_for_build CPU=$UNAME_MACHINE LIBCABI=$LIBC if test "$CC_FOR_BUILD" != no_compiler_found; then ABI=64 sed 's/^ //' << EOF > "$dummy.c" #ifdef __i386__ ABI=x86 #else #ifdef __ILP32__ ABI=x32 #endif #endif EOF cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'` eval "$cc_set_abi" case $ABI in x86) CPU=i686 ;; x32) LIBCABI=${LIBC}x32 ;; esac fi GUESS=$CPU-pc-linux-$LIBCABI ;; xtensa*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. GUESS=i386-sequent-sysv4 ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION ;; i*86:OS/2:*:*) # If we were able to find 'uname', then EMX Unix compatibility # is probably installed. GUESS=$UNAME_MACHINE-pc-os2-emx ;; i*86:XTS-300:*:STOP) GUESS=$UNAME_MACHINE-unknown-stop ;; i*86:atheos:*:*) GUESS=$UNAME_MACHINE-unknown-atheos ;; i*86:syllable:*:*) GUESS=$UNAME_MACHINE-pc-syllable ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) GUESS=i386-unknown-lynxos$UNAME_RELEASE ;; i*86:*DOS:*:*) GUESS=$UNAME_MACHINE-pc-msdosdjgpp ;; i*86:*:4.*:*) UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL else GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL fi ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL else GUESS=$UNAME_MACHINE-pc-sysv32 fi ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. GUESS=i586-pc-msdosdjgpp ;; Intel:Mach:3*:*) GUESS=i386-pc-mach3 ;; paragon:*:*:*) GUESS=i860-intel-osf1 ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4 fi ;; mini*:CTIX:SYS*5:*) # "miniframe" GUESS=m68010-convergent-sysv ;; mc68k:UNIX:SYSTEM5:3.51m) GUESS=m68k-convergent-sysv ;; M680?0:D-NIX:5.3:*) GUESS=m68k-diab-dnix ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) GUESS=m68k-unknown-lynxos$UNAME_RELEASE ;; mc68030:UNIX_System_V:4.*:*) GUESS=m68k-atari-sysv4 ;; TSUNAMI:LynxOS:2.*:*) GUESS=sparc-unknown-lynxos$UNAME_RELEASE ;; rs6000:LynxOS:2.*:*) GUESS=rs6000-unknown-lynxos$UNAME_RELEASE ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) GUESS=powerpc-unknown-lynxos$UNAME_RELEASE ;; SM[BE]S:UNIX_SV:*:*) GUESS=mips-dde-sysv$UNAME_RELEASE ;; RM*:ReliantUNIX-*:*:*) GUESS=mips-sni-sysv4 ;; RM*:SINIX-*:*:*) GUESS=mips-sni-sysv4 ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` GUESS=$UNAME_MACHINE-sni-sysv4 else GUESS=ns32k-sni-sysv fi ;; PENTIUM:*:4.0*:*) # Unisys 'ClearPath HMP IX 4000' SVR4/MP effort # says GUESS=i586-unisys-sysv4 ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm GUESS=hppa1.1-stratus-sysv4 ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. GUESS=i860-stratus-sysv4 ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. GUESS=$UNAME_MACHINE-stratus-vos ;; *:VOS:*:*) # From Paul.Green@stratus.com. GUESS=hppa1.1-stratus-vos ;; mc68*:A/UX:*:*) GUESS=m68k-apple-aux$UNAME_RELEASE ;; news*:NEWS-OS:6*:*) GUESS=mips-sony-newsos6 ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if test -d /usr/nec; then GUESS=mips-nec-sysv$UNAME_RELEASE else GUESS=mips-unknown-sysv$UNAME_RELEASE fi ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. GUESS=powerpc-be-beos ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. GUESS=powerpc-apple-beos ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. GUESS=i586-pc-beos ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. GUESS=i586-pc-haiku ;; ppc:Haiku:*:*) # Haiku running on Apple PowerPC GUESS=powerpc-apple-haiku ;; *:Haiku:*:*) # Haiku modern gcc (not bound by BeOS compat) GUESS=$UNAME_MACHINE-unknown-haiku ;; SX-4:SUPER-UX:*:*) GUESS=sx4-nec-superux$UNAME_RELEASE ;; SX-5:SUPER-UX:*:*) GUESS=sx5-nec-superux$UNAME_RELEASE ;; SX-6:SUPER-UX:*:*) GUESS=sx6-nec-superux$UNAME_RELEASE ;; SX-7:SUPER-UX:*:*) GUESS=sx7-nec-superux$UNAME_RELEASE ;; SX-8:SUPER-UX:*:*) GUESS=sx8-nec-superux$UNAME_RELEASE ;; SX-8R:SUPER-UX:*:*) GUESS=sx8r-nec-superux$UNAME_RELEASE ;; SX-ACE:SUPER-UX:*:*) GUESS=sxace-nec-superux$UNAME_RELEASE ;; Power*:Rhapsody:*:*) GUESS=powerpc-apple-rhapsody$UNAME_RELEASE ;; *:Rhapsody:*:*) GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE ;; arm64:Darwin:*:*) GUESS=aarch64-apple-darwin$UNAME_RELEASE ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac if command -v xcode-select > /dev/null 2> /dev/null && \ ! xcode-select --print-path > /dev/null 2> /dev/null ; then # Avoid executing cc if there is no toolchain installed as # cc will be a stub that puts up a graphical alert # prompting the user to install developer tools. CC_FOR_BUILD=no_compiler_found else set_cc_for_build fi if test "$CC_FOR_BUILD" != no_compiler_found; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in i386) UNAME_PROCESSOR=x86_64 ;; powerpc) UNAME_PROCESSOR=powerpc64 ;; esac fi # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_PPC >/dev/null then UNAME_PROCESSOR=powerpc fi elif test "$UNAME_PROCESSOR" = i386 ; then # uname -m returns i386 or x86_64 UNAME_PROCESSOR=$UNAME_MACHINE fi GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE ;; *:QNX:*:4*) GUESS=i386-pc-qnx ;; NEO-*:NONSTOP_KERNEL:*:*) GUESS=neo-tandem-nsk$UNAME_RELEASE ;; NSE-*:NONSTOP_KERNEL:*:*) GUESS=nse-tandem-nsk$UNAME_RELEASE ;; NSR-*:NONSTOP_KERNEL:*:*) GUESS=nsr-tandem-nsk$UNAME_RELEASE ;; NSV-*:NONSTOP_KERNEL:*:*) GUESS=nsv-tandem-nsk$UNAME_RELEASE ;; NSX-*:NONSTOP_KERNEL:*:*) GUESS=nsx-tandem-nsk$UNAME_RELEASE ;; *:NonStop-UX:*:*) GUESS=mips-compaq-nonstopux ;; BS2000:POSIX*:*:*) GUESS=bs2000-siemens-sysv ;; DS/*:UNIX_System_V:*:*) GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "${cputype-}" = 386; then UNAME_MACHINE=i386 elif test "x${cputype-}" != x; then UNAME_MACHINE=$cputype fi GUESS=$UNAME_MACHINE-unknown-plan9 ;; *:TOPS-10:*:*) GUESS=pdp10-unknown-tops10 ;; *:TENEX:*:*) GUESS=pdp10-unknown-tenex ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) GUESS=pdp10-dec-tops20 ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) GUESS=pdp10-xkl-tops20 ;; *:TOPS-20:*:*) GUESS=pdp10-unknown-tops20 ;; *:ITS:*:*) GUESS=pdp10-unknown-its ;; SEI:*:*:SEIUX) GUESS=mips-sei-seiux$UNAME_RELEASE ;; *:DragonFly:*:*) DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case $UNAME_MACHINE in A*) GUESS=alpha-dec-vms ;; I*) GUESS=ia64-dec-vms ;; V*) GUESS=vax-dec-vms ;; esac ;; *:XENIX:*:SysV) GUESS=i386-pc-xenix ;; i*86:skyos:*:*) SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'` GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL ;; i*86:rdos:*:*) GUESS=$UNAME_MACHINE-pc-rdos ;; i*86:Fiwix:*:*) GUESS=$UNAME_MACHINE-pc-fiwix ;; *:AROS:*:*) GUESS=$UNAME_MACHINE-unknown-aros ;; x86_64:VMkernel:*:*) GUESS=$UNAME_MACHINE-unknown-esx ;; amd64:Isilon\ OneFS:*:*) GUESS=x86_64-unknown-onefs ;; *:Unleashed:*:*) GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE ;; *:Ironclad:*:*) GUESS=$UNAME_MACHINE-unknown-ironclad ;; esac # Do we have a guess based on uname results? if test "x$GUESS" != x; then echo "$GUESS" exit fi # No uname command or uname output not recognized. set_cc_for_build cat > "$dummy.c" < #include #endif #if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) #if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) #include #if defined(_SIZE_T_) || defined(SIGLOST) #include #endif #endif #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) #if !defined (ultrix) #include #if defined (BSD) #if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); #else #if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); #else printf ("vax-dec-bsd\n"); exit (0); #endif #endif #else printf ("vax-dec-bsd\n"); exit (0); #endif #else #if defined(_SIZE_T_) || defined(SIGLOST) struct utsname un; uname (&un); printf ("vax-dec-ultrix%s\n", un.release); exit (0); #else printf ("vax-dec-ultrix\n"); exit (0); #endif #endif #endif #if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) #if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) #if defined(_SIZE_T_) || defined(SIGLOST) struct utsname *un; uname (&un); printf ("mips-dec-ultrix%s\n", un.release); exit (0); #else printf ("mips-dec-ultrix\n"); exit (0); #endif #endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } echo "$0: unable to guess system type" >&2 case $UNAME_MACHINE:$UNAME_SYSTEM in mips:Linux | mips64:Linux) # If we got here on MIPS GNU/Linux, output extra information. cat >&2 <&2 <&2 </dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = "$UNAME_MACHINE" UNAME_RELEASE = "$UNAME_RELEASE" UNAME_SYSTEM = "$UNAME_SYSTEM" UNAME_VERSION = "$UNAME_VERSION" EOF fi exit 1 # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: par2cmdline-turbo-1.5.0/config.h.in000066400000000000000000000110611524160147200170720ustar00rootroot00000000000000/* config.h.in. Generated from configure.ac by autoheader. */ /* Define if building universal (internal helper macro) */ #undef AC_APPLE_UNIVERSAL_BUILD /* define if the compiler supports basic C++14 syntax */ #undef HAVE_CXX14 /* Define to 1 if you have the declaration of `posix_memalign', and to 0 if you don't. */ #undef HAVE_DECL_POSIX_MEMALIGN /* Define to 1 if you have the header file, and it defines 'DIR'. */ #undef HAVE_DIRENT_H /* Define to 1 if you have the header file. */ #undef HAVE_ENDIAN_H /* Define to 1 if fseeko (and ftello) are declared in stdio.h. */ #undef HAVE_FSEEKO /* Define to 1 if you have the 'getopt' function. */ #undef HAVE_GETOPT /* Define to 1 if you have the header file. */ #undef HAVE_GETOPT_H /* Define to 1 if you have the 'getopt_long' function. */ #undef HAVE_GETOPT_LONG /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_LIMITS_H /* Define to 1 if you have the 'memcpy' function. */ #undef HAVE_MEMCPY /* Define to 1 if you have the header file, and it defines 'DIR'. */ #undef HAVE_NDIR_H /* Define if you have POSIX threads libraries and header files. */ #undef HAVE_PTHREAD /* Define to 1 if stdbool.h conforms to C99. */ #undef HAVE_STDBOOL_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDIO_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the 'strcasecmp' function. */ #undef HAVE_STRCASECMP /* Define to 1 if you have the 'strchr' function. */ #undef HAVE_STRCHR /* Define to 1 if you have the 'stricmp' function. */ #undef HAVE_STRICMP /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file, and it defines 'DIR'. */ #undef HAVE_SYS_DIR_H /* Define to 1 if you have the header file, and it defines 'DIR'. */ #undef HAVE_SYS_NDIR_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if the system has the type '_Bool'. */ #undef HAVE__BOOL /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to the necessary symbol if this constant uses a non-standard name on your system. */ #undef PTHREAD_CREATE_JOINABLE /* Define to 1 if all of the C89 standard headers exist (not just the ones required in a freestanding environment). This macro is provided for backward compatibility; new code need not use it. */ #undef STDC_HEADERS /* Version number of package */ #undef VERSION /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel). */ #if defined AC_APPLE_UNIVERSAL_BUILD # if defined __BIG_ENDIAN__ # define WORDS_BIGENDIAN 1 # endif #else # ifndef WORDS_BIGENDIAN # undef WORDS_BIGENDIAN # endif #endif /* Upstream package name */ #undef BASE_PACKAGE /* Upstream package version */ #undef BASE_VERSION /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS /* Define to 1 if necessary to make fseeko visible. */ #undef _LARGEFILE_SOURCE /* Define to 1 on platforms where this makes off_t a 64-bit type. */ #undef _LARGE_FILES /* Number of bits in time_t, on hosts where this is settable. */ #undef _TIME_BITS /* Define to 1 on platforms where this makes time_t a 64-bit type. */ #undef __MINGW_USE_VC2005_COMPAT /* Define to empty if 'const' does not conform to ANSI C. */ #undef const /* Define to '__inline__' or '__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus #undef inline #endif /* Define as 'unsigned int' if doesn't define. */ #undef size_t par2cmdline-turbo-1.5.0/config.sub000077500000000000000000001077561524160147200170530ustar00rootroot00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright 1992-2024 Free Software Foundation, Inc. # shellcheck disable=SC2006,SC2268 # see below for rationale timestamp='2024-01-01' # This file 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 . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # Please send patches to . # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # https://git.savannah.gnu.org/cgit/config.git/plain/config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. # The "shellcheck disable" line above the timestamp inhibits complaints # about features and limitations of the classic Bourne shell that were # superseded or lifted in POSIX. However, this script identifies a wide # variety of pre-POSIX systems that do not have POSIX shells at all, and # even some reasonably current systems (Solaris 10 as case-in-point) still # have a pre-POSIX /bin/sh. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright 1992-2024 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try '$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; *local*) # First pass through any local machine types. echo "$1" exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Split fields of configuration type # shellcheck disable=SC2162 saved_IFS=$IFS IFS="-" read field1 field2 field3 field4 <&2 exit 1 ;; *-*-*-*) basic_machine=$field1-$field2 basic_os=$field3-$field4 ;; *-*-*) # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two # parts maybe_os=$field2-$field3 case $maybe_os in nto-qnx* | linux-* | uclinux-uclibc* \ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ | storm-chaos* | os2-emx* | rtmk-nova* | managarm-* \ | windows-* ) basic_machine=$field1 basic_os=$maybe_os ;; android-linux) basic_machine=$field1-unknown basic_os=linux-android ;; *) basic_machine=$field1-$field2 basic_os=$field3 ;; esac ;; *-*) # A lone config we happen to match not fitting any pattern case $field1-$field2 in decstation-3100) basic_machine=mips-dec basic_os= ;; *-*) # Second component is usually, but not always the OS case $field2 in # Prevent following clause from handling this valid os sun*os*) basic_machine=$field1 basic_os=$field2 ;; zephyr*) basic_machine=$field1-unknown basic_os=$field2 ;; # Manufacturers dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ | unicom* | ibm* | next | hp | isi* | apollo | altos* \ | convergent* | ncr* | news | 32* | 3600* | 3100* \ | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ | ultra | tti* | harris | dolphin | highlevel | gould \ | cbm | ns | masscomp | apple | axis | knuth | cray \ | microblaze* | sim | cisco \ | oki | wec | wrs | winbond) basic_machine=$field1-$field2 basic_os= ;; *) basic_machine=$field1 basic_os=$field2 ;; esac ;; esac ;; *) # Convert single-component short-hands not valid as part of # multi-component configurations. case $field1 in 386bsd) basic_machine=i386-pc basic_os=bsd ;; a29khif) basic_machine=a29k-amd basic_os=udi ;; adobe68k) basic_machine=m68010-adobe basic_os=scout ;; alliant) basic_machine=fx80-alliant basic_os= ;; altos | altos3068) basic_machine=m68k-altos basic_os= ;; am29k) basic_machine=a29k-none basic_os=bsd ;; amdahl) basic_machine=580-amdahl basic_os=sysv ;; amiga) basic_machine=m68k-unknown basic_os= ;; amigaos | amigados) basic_machine=m68k-unknown basic_os=amigaos ;; amigaunix | amix) basic_machine=m68k-unknown basic_os=sysv4 ;; apollo68) basic_machine=m68k-apollo basic_os=sysv ;; apollo68bsd) basic_machine=m68k-apollo basic_os=bsd ;; aros) basic_machine=i386-pc basic_os=aros ;; aux) basic_machine=m68k-apple basic_os=aux ;; balance) basic_machine=ns32k-sequent basic_os=dynix ;; blackfin) basic_machine=bfin-unknown basic_os=linux ;; cegcc) basic_machine=arm-unknown basic_os=cegcc ;; convex-c1) basic_machine=c1-convex basic_os=bsd ;; convex-c2) basic_machine=c2-convex basic_os=bsd ;; convex-c32) basic_machine=c32-convex basic_os=bsd ;; convex-c34) basic_machine=c34-convex basic_os=bsd ;; convex-c38) basic_machine=c38-convex basic_os=bsd ;; cray) basic_machine=j90-cray basic_os=unicos ;; crds | unos) basic_machine=m68k-crds basic_os= ;; da30) basic_machine=m68k-da30 basic_os= ;; decstation | pmax | pmin | dec3100 | decstatn) basic_machine=mips-dec basic_os= ;; delta88) basic_machine=m88k-motorola basic_os=sysv3 ;; dicos) basic_machine=i686-pc basic_os=dicos ;; djgpp) basic_machine=i586-pc basic_os=msdosdjgpp ;; ebmon29k) basic_machine=a29k-amd basic_os=ebmon ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson basic_os=ose ;; gmicro) basic_machine=tron-gmicro basic_os=sysv ;; go32) basic_machine=i386-pc basic_os=go32 ;; h8300hms) basic_machine=h8300-hitachi basic_os=hms ;; h8300xray) basic_machine=h8300-hitachi basic_os=xray ;; h8500hms) basic_machine=h8500-hitachi basic_os=hms ;; harris) basic_machine=m88k-harris basic_os=sysv3 ;; hp300 | hp300hpux) basic_machine=m68k-hp basic_os=hpux ;; hp300bsd) basic_machine=m68k-hp basic_os=bsd ;; hppaosf) basic_machine=hppa1.1-hp basic_os=osf ;; hppro) basic_machine=hppa1.1-hp basic_os=proelf ;; i386mach) basic_machine=i386-mach basic_os=mach ;; isi68 | isi) basic_machine=m68k-isi basic_os=sysv ;; m68knommu) basic_machine=m68k-unknown basic_os=linux ;; magnum | m3230) basic_machine=mips-mips basic_os=sysv ;; merlin) basic_machine=ns32k-utek basic_os=sysv ;; mingw64) basic_machine=x86_64-pc basic_os=mingw64 ;; mingw32) basic_machine=i686-pc basic_os=mingw32 ;; mingw32ce) basic_machine=arm-unknown basic_os=mingw32ce ;; monitor) basic_machine=m68k-rom68k basic_os=coff ;; morphos) basic_machine=powerpc-unknown basic_os=morphos ;; moxiebox) basic_machine=moxie-unknown basic_os=moxiebox ;; msdos) basic_machine=i386-pc basic_os=msdos ;; msys) basic_machine=i686-pc basic_os=msys ;; mvs) basic_machine=i370-ibm basic_os=mvs ;; nacl) basic_machine=le32-unknown basic_os=nacl ;; ncr3000) basic_machine=i486-ncr basic_os=sysv4 ;; netbsd386) basic_machine=i386-pc basic_os=netbsd ;; netwinder) basic_machine=armv4l-rebel basic_os=linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony basic_os=newsos ;; news1000) basic_machine=m68030-sony basic_os=newsos ;; necv70) basic_machine=v70-nec basic_os=sysv ;; nh3000) basic_machine=m68k-harris basic_os=cxux ;; nh[45]000) basic_machine=m88k-harris basic_os=cxux ;; nindy960) basic_machine=i960-intel basic_os=nindy ;; mon960) basic_machine=i960-intel basic_os=mon960 ;; nonstopux) basic_machine=mips-compaq basic_os=nonstopux ;; os400) basic_machine=powerpc-ibm basic_os=os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson basic_os=ose ;; os68k) basic_machine=m68k-none basic_os=os68k ;; paragon) basic_machine=i860-intel basic_os=osf ;; parisc) basic_machine=hppa-unknown basic_os=linux ;; psp) basic_machine=mipsallegrexel-sony basic_os=psp ;; pw32) basic_machine=i586-unknown basic_os=pw32 ;; rdos | rdos64) basic_machine=x86_64-pc basic_os=rdos ;; rdos32) basic_machine=i386-pc basic_os=rdos ;; rom68k) basic_machine=m68k-rom68k basic_os=coff ;; sa29200) basic_machine=a29k-amd basic_os=udi ;; sei) basic_machine=mips-sei basic_os=seiux ;; sequent) basic_machine=i386-sequent basic_os= ;; sps7) basic_machine=m68k-bull basic_os=sysv2 ;; st2000) basic_machine=m68k-tandem basic_os= ;; stratus) basic_machine=i860-stratus basic_os=sysv4 ;; sun2) basic_machine=m68000-sun basic_os= ;; sun2os3) basic_machine=m68000-sun basic_os=sunos3 ;; sun2os4) basic_machine=m68000-sun basic_os=sunos4 ;; sun3) basic_machine=m68k-sun basic_os= ;; sun3os3) basic_machine=m68k-sun basic_os=sunos3 ;; sun3os4) basic_machine=m68k-sun basic_os=sunos4 ;; sun4) basic_machine=sparc-sun basic_os= ;; sun4os3) basic_machine=sparc-sun basic_os=sunos3 ;; sun4os4) basic_machine=sparc-sun basic_os=sunos4 ;; sun4sol2) basic_machine=sparc-sun basic_os=solaris2 ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun basic_os= ;; sv1) basic_machine=sv1-cray basic_os=unicos ;; symmetry) basic_machine=i386-sequent basic_os=dynix ;; t3e) basic_machine=alphaev5-cray basic_os=unicos ;; t90) basic_machine=t90-cray basic_os=unicos ;; toad1) basic_machine=pdp10-xkl basic_os=tops20 ;; tpf) basic_machine=s390x-ibm basic_os=tpf ;; udi29k) basic_machine=a29k-amd basic_os=udi ;; ultra3) basic_machine=a29k-nyu basic_os=sym1 ;; v810 | necv810) basic_machine=v810-nec basic_os=none ;; vaxv) basic_machine=vax-dec basic_os=sysv ;; vms) basic_machine=vax-dec basic_os=vms ;; vsta) basic_machine=i386-pc basic_os=vsta ;; vxworks960) basic_machine=i960-wrs basic_os=vxworks ;; vxworks68) basic_machine=m68k-wrs basic_os=vxworks ;; vxworks29k) basic_machine=a29k-wrs basic_os=vxworks ;; xbox) basic_machine=i686-pc basic_os=mingw32 ;; ymp) basic_machine=ymp-cray basic_os=unicos ;; *) basic_machine=$1 basic_os= ;; esac ;; esac # Decode 1-component or ad-hoc basic machines case $basic_machine in # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) cpu=hppa1.1 vendor=winbond ;; op50n) cpu=hppa1.1 vendor=oki ;; op60c) cpu=hppa1.1 vendor=oki ;; ibm*) cpu=i370 vendor=ibm ;; orion105) cpu=clipper vendor=highlevel ;; mac | mpw | mac-mpw) cpu=m68k vendor=apple ;; pmac | pmac-mpw) cpu=powerpc vendor=apple ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) cpu=m68000 vendor=att ;; 3b*) cpu=we32k vendor=att ;; bluegene*) cpu=powerpc vendor=ibm basic_os=cnk ;; decsystem10* | dec10*) cpu=pdp10 vendor=dec basic_os=tops10 ;; decsystem20* | dec20*) cpu=pdp10 vendor=dec basic_os=tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) cpu=m68k vendor=motorola ;; dpx2*) cpu=m68k vendor=bull basic_os=sysv3 ;; encore | umax | mmax) cpu=ns32k vendor=encore ;; elxsi) cpu=elxsi vendor=elxsi basic_os=${basic_os:-bsd} ;; fx2800) cpu=i860 vendor=alliant ;; genix) cpu=ns32k vendor=ns ;; h3050r* | hiux*) cpu=hppa1.1 vendor=hitachi basic_os=hiuxwe2 ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) cpu=hppa1.0 vendor=hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) cpu=m68000 vendor=hp ;; hp9k3[2-9][0-9]) cpu=m68k vendor=hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) cpu=hppa1.0 vendor=hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) cpu=hppa1.1 vendor=hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp cpu=hppa1.1 vendor=hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp cpu=hppa1.1 vendor=hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) cpu=hppa1.1 vendor=hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) cpu=hppa1.0 vendor=hp ;; i*86v32) cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc basic_os=sysv32 ;; i*86v4*) cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc basic_os=sysv4 ;; i*86v) cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc basic_os=sysv ;; i*86sol2) cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc basic_os=solaris2 ;; j90 | j90-cray) cpu=j90 vendor=cray basic_os=${basic_os:-unicos} ;; iris | iris4d) cpu=mips vendor=sgi case $basic_os in irix*) ;; *) basic_os=irix4 ;; esac ;; miniframe) cpu=m68000 vendor=convergent ;; *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) cpu=m68k vendor=atari basic_os=mint ;; news-3600 | risc-news) cpu=mips vendor=sony basic_os=newsos ;; next | m*-next) cpu=m68k vendor=next case $basic_os in openstep*) ;; nextstep*) ;; ns2*) basic_os=nextstep2 ;; *) basic_os=nextstep3 ;; esac ;; np1) cpu=np1 vendor=gould ;; op50n-* | op60c-*) cpu=hppa1.1 vendor=oki basic_os=proelf ;; pa-hitachi) cpu=hppa1.1 vendor=hitachi basic_os=hiuxwe2 ;; pbd) cpu=sparc vendor=tti ;; pbb) cpu=m68k vendor=tti ;; pc532) cpu=ns32k vendor=pc532 ;; pn) cpu=pn vendor=gould ;; power) cpu=power vendor=ibm ;; ps2) cpu=i386 vendor=ibm ;; rm[46]00) cpu=mips vendor=siemens ;; rtpc | rtpc-*) cpu=romp vendor=ibm ;; sde) cpu=mipsisa32 vendor=sde basic_os=${basic_os:-elf} ;; simso-wrs) cpu=sparclite vendor=wrs basic_os=vxworks ;; tower | tower-32) cpu=m68k vendor=ncr ;; vpp*|vx|vx-*) cpu=f301 vendor=fujitsu ;; w65) cpu=w65 vendor=wdc ;; w89k-*) cpu=hppa1.1 vendor=winbond basic_os=proelf ;; none) cpu=none vendor=none ;; leon|leon[3-9]) cpu=sparc vendor=$basic_machine ;; leon-*|leon[3-9]-*) cpu=sparc vendor=`echo "$basic_machine" | sed 's/-.*//'` ;; *-*) # shellcheck disable=SC2162 saved_IFS=$IFS IFS="-" read cpu vendor <&2 exit 1 ;; esac ;; esac # Here we canonicalize certain aliases for manufacturers. case $vendor in digital*) vendor=dec ;; commodore*) vendor=cbm ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if test x"$basic_os" != x then # First recognize some ad-hoc cases, or perhaps split kernel-os, or else just # set os. obj= case $basic_os in gnu/linux*) kernel=linux os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` ;; os2-emx) kernel=os2 os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` ;; nto-qnx*) kernel=nto os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` ;; *-*) # shellcheck disable=SC2162 saved_IFS=$IFS IFS="-" read kernel os <&2 fi ;; *) echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2 exit 1 ;; esac case $obj in aout* | coff* | elf* | pe*) ;; '') # empty is fine ;; *) echo "Invalid configuration '$1': Machine code format '$obj' not recognized" 1>&2 exit 1 ;; esac # Here we handle the constraint that a (synthetic) cpu and os are # valid only in combination with each other and nowhere else. case $cpu-$os in # The "javascript-unknown-ghcjs" triple is used by GHC; we # accept it here in order to tolerate that, but reject any # variations. javascript-ghcjs) ;; javascript-* | *-ghcjs) echo "Invalid configuration '$1': cpu '$cpu' is not valid with os '$os$obj'" 1>&2 exit 1 ;; esac # As a final step for OS-related things, validate the OS-kernel combination # (given a valid OS), if there is a kernel. case $kernel-$os-$obj in linux-gnu*- | linux-android*- | linux-dietlibc*- | linux-llvm*- \ | linux-mlibc*- | linux-musl*- | linux-newlib*- \ | linux-relibc*- | linux-uclibc*- ) ;; uclinux-uclibc*- ) ;; managarm-mlibc*- | managarm-kernel*- ) ;; windows*-msvc*-) ;; -dietlibc*- | -llvm*- | -mlibc*- | -musl*- | -newlib*- | -relibc*- \ | -uclibc*- ) # These are just libc implementations, not actual OSes, and thus # require a kernel. echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2 exit 1 ;; -kernel*- ) echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2 exit 1 ;; *-kernel*- ) echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2 exit 1 ;; *-msvc*- ) echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2 exit 1 ;; kfreebsd*-gnu*- | kopensolaris*-gnu*-) ;; vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-) ;; nto-qnx*-) ;; os2-emx-) ;; *-eabi*- | *-gnueabi*-) ;; none--*) # None (no kernel, i.e. freestanding / bare metal), # can be paired with an machine code file format ;; -*-) # Blank kernel with real OS is always fine. ;; --*) # Blank kernel and OS with real machine code file format is always fine. ;; *-*-*) echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2 exit 1 ;; esac # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. case $vendor in unknown) case $cpu-$os in *-riscix*) vendor=acorn ;; *-sunos*) vendor=sun ;; *-cnk* | *-aix*) vendor=ibm ;; *-beos*) vendor=be ;; *-hpux*) vendor=hp ;; *-mpeix*) vendor=hp ;; *-hiux*) vendor=hitachi ;; *-unos*) vendor=crds ;; *-dgux*) vendor=dg ;; *-luna*) vendor=omron ;; *-genix*) vendor=ns ;; *-clix*) vendor=intergraph ;; *-mvs* | *-opened*) vendor=ibm ;; *-os400*) vendor=ibm ;; s390-* | s390x-*) vendor=ibm ;; *-ptx*) vendor=sequent ;; *-tpf*) vendor=ibm ;; *-vxsim* | *-vxworks* | *-windiss*) vendor=wrs ;; *-aux*) vendor=apple ;; *-hms*) vendor=hitachi ;; *-mpw* | *-macos*) vendor=apple ;; *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) vendor=atari ;; *-vos*) vendor=stratus ;; esac ;; esac echo "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}" exit # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: par2cmdline-turbo-1.5.0/configure.ac000077500000000000000000000205701524160147200173450ustar00rootroot00000000000000dnl This file is part of par2cmdline (a PAR 2.0 compatible file verification and dnl repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. dnl dnl Copyright (c) 2003-2015 Peter Brian Clements dnl Copyright (c) 2011-2012 Marcel Partap dnl Copyright (c) 2012-2026 Ike Devolder dnl Copyright (c) 2019 Michael D. Nahas dnl dnl par2cmdline is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by dnl the Free Software Foundation; either version 2 of the License, or dnl (at your option) any later version. dnl dnl par2cmdline is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the dnl GNU General Public License for more details. dnl dnl You should have received a copy of the GNU General Public License dnl along with this program; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl -*- Autoconf -*- dnl Process this file with autoconf to produce a configure script. AC_PREREQ(2.62) AC_INIT([par2cmdline-turbo], [1.5.0]) AC_DEFINE([BASE_PACKAGE], ["par2cmdline"], [Upstream package name]) AC_DEFINE([BASE_VERSION], ["1.3.0"], [Upstream package version]) AC_CONFIG_SRCDIR([src/par2cmdline.cpp]) AC_CANONICAL_HOST AC_CONFIG_HEADERS([config.h]) AM_INIT_AUTOMAKE([foreign]) dnl Checks for programs. AC_PROG_CXX AC_PROG_INSTALL dnl Need to define RANLIB used in making static library. AC_PROG_RANLIB dnl gnu.org says the following may be needed for Microsoft libraries. AM_PROG_AR dnl Set language to C++ AC_LANG(C++) dnl Checks for header files. AC_HEADER_DIRENT AC_HEADER_STDBOOL AC_CHECK_HEADERS([stdio.h] [endian.h]) AC_CHECK_HEADERS([getopt.h] [limits.h]) dnl Checks for typedefs, structures, and compiler characteristics. AC_TYPE_SIZE_T AC_C_BIGENDIAN AC_C_CONST AC_C_INLINE AC_SYS_LARGEFILE AC_FUNC_FSEEKO dnl Check for pthreads m4_include([m4/acx_pthread.m4]) ACX_PTHREAD dnl Checks for library functions. AC_FUNC_MEMCMP AC_CHECK_FUNCS([stricmp] [strcasecmp]) AC_CHECK_FUNCS([strchr] [memcpy]) AC_CHECK_FUNCS([getopt] [getopt_long]) dnl Alternative windows build console application case "$host_os" in *mingw* | *msys* | *cygwin*) MINGW_BUILD=yes ;; *) MINGW_BUILD=no ;; esac AM_CONDITIONAL([MINGW], [test "x$MINGW_BUILD" = "xyes"]) dnl C++14 check m4_include([m4/ax_cxx_compile_stdcxx.m4]) AX_CXX_COMPILE_STDCXX(14, noext, mandatory) dnl Enforce C99 CFLAGS="$CFLAGS -std=c99" AC_SUBST(CFLAGS) dnl ParPar backend is mostly compiled as C, so perform compiler checks appropriately AC_LANG_PUSH(C) dnl Platform detection / flags supported by compiler m4_include([m4/ax_check_compile_flag.m4]) AX_CHECK_COMPILE_FLAG([-msse2], , , [-Werror]) AM_CONDITIONAL([HAS_SSE2], [test x$ax_cv_check_cflags__Werror__msse2 = xyes]) AM_COND_IF([HAS_SSE2], [AC_SUBST(CFLAGS_SSE2, "-msse2")]) AX_CHECK_COMPILE_FLAG([-mssse3], , , [-Werror]) AM_CONDITIONAL([HAS_SSSE3], [test x$ax_cv_check_cflags__Werror__mssse3 = xyes]) AM_COND_IF([HAS_SSSE3], [AC_SUBST(CFLAGS_SSSE3, "-mssse3")]) AX_CHECK_COMPILE_FLAG([-mpclmul], , , [-Werror]) AM_CONDITIONAL([HAS_PCLMUL], [test x$ax_cv_check_cflags__Werror__mpclmul = xyes]) AM_COND_IF([HAS_PCLMUL], [AC_SUBST(CFLAGS_PCLMUL, "-mpclmul -msse4.1")]) AX_CHECK_COMPILE_FLAG([-mavx], , , [-Werror]) AM_CONDITIONAL([HAS_AVX], [test x$ax_cv_check_cflags__Werror__mavx = xyes]) AM_COND_IF([HAS_AVX], [AC_SUBST(CFLAGS_AVX, "-mavx")]) AX_CHECK_COMPILE_FLAG([-mxop], , , [-Werror]) AM_CONDITIONAL([HAS_XOP], [test x$ax_cv_check_cflags__Werror__mxop = xyes]) AM_COND_IF([HAS_XOP], [AC_SUBST(CFLAGS_XOP, "-mavx -mxop")]) AX_CHECK_COMPILE_FLAG([-mbmi], , , [-Werror]) AM_CONDITIONAL([HAS_BMI1], [test x$ax_cv_check_cflags__Werror__mbmi = xyes]) AM_COND_IF([HAS_BMI1], [AC_SUBST(CFLAGS_BMI1, "-mavx -mbmi -mpclmul")]) AX_CHECK_COMPILE_FLAG([-mavx2], , , [-Werror]) AM_CONDITIONAL([HAS_AVX2], [test x$ax_cv_check_cflags__Werror__mavx2 = xyes]) AM_COND_IF([HAS_AVX2], [AC_SUBST(CFLAGS_AVX2, "-mavx2")]) AX_CHECK_COMPILE_FLAG([-mavx512vl -mavx512bw], , , [-Werror]) AM_CONDITIONAL([HAS_AVX512], [test x$ax_cv_check_cflags__Werror__mavx512vl__mavx512bw = xyes]) AM_COND_IF([HAS_AVX512], [AC_SUBST(CFLAGS_AVX512, "-mavx512vl -mavx512bw")]) AM_COND_IF([HAS_AVX512], [AC_SUBST(CFLAGS_AVX512F, "-mavx512f")]) AM_COND_IF([HAS_AVX512], [AC_SUBST(CFLAGS_AVX512_HASHER, "-mavx512vl -mavx512bw -mbmi2 -mpclmul")]) AX_CHECK_COMPILE_FLAG([-mavx512vbmi], , , [-Werror]) AM_CONDITIONAL([HAS_VBMI], [test x$ax_cv_check_cflags__Werror__mavx512vbmi = xyes]) AM_COND_IF([HAS_VBMI], [AC_SUBST(CFLAGS_VBMI, "-mavx512vl -mavx512vbmi")]) AX_CHECK_COMPILE_FLAG([-mgfni], , , [-Werror]) AM_CONDITIONAL([HAS_GFNI], [test x$ax_cv_check_cflags__Werror__mgfni = xyes]) AM_COND_IF([HAS_GFNI], [AC_SUBST(CFLAGS_GFNI, "-mgfni -mssse3")]) AX_CHECK_COMPILE_FLAG([-mvpclmulqdq], , , [-Werror]) AM_CONDITIONAL([HAS_VPCLMUL], [test x$ax_cv_check_cflags__Werror__mvpclmulqdq = xyes]) AM_COND_IF([HAS_VPCLMUL], [AC_SUBST(CFLAGS_VPCLMUL, "-mvpclmulqdq -mavx2")]) AX_CHECK_COMPILE_FLAG([-mavx512bmm], , , [-Werror]) AM_CONDITIONAL([HAS_BMM], [test x$ax_cv_check_cflags__Werror__mavx512bmm = xyes]) AM_COND_IF([HAS_BMM], [AC_SUBST(CFLAGS_BMM, "-mavx512vl -mavx512bmm")]) AX_CHECK_COMPILE_FLAG([-mfpu=neon -march=armv7-a], , , [-Werror]) AM_CONDITIONAL([HAS_NEON], [test x$ax_cv_check_cflags__Werror__mfpu_neon__march_armv7_a = xyes]) AM_COND_IF([HAS_NEON], [AC_SUBST(CFLAGS_NEON, "-mfpu=neon -fno-lto -march=armv7-a")]) AX_CHECK_COMPILE_FLAG([-mfpu=fp-armv8], , , [-Werror]) AM_CONDITIONAL([HAS_FPARMv8], [test x$ax_cv_check_cflags__Werror__mfpu_fp_armv8 = xyes]) AM_COND_IF([HAS_FPARMv8], [AC_SUBST(CFLAGS_ARMCRC_FP, "-mfpu=fp-armv8")]) AX_CHECK_COMPILE_FLAG([-march=armv8-a+sve], , , [-Werror]) AM_CONDITIONAL([HAS_SVE], [test x$ax_cv_check_cflags__Werror__march_armv8_apsve = xyes]) AM_COND_IF([HAS_SVE], [AC_SUBST(CFLAGS_SVE, "-march=armv8-a+sve")]) AX_CHECK_COMPILE_FLAG([-march=armv8-a+sve2], , , [-Werror]) AM_CONDITIONAL([HAS_SVE2], [test x$ax_cv_check_cflags__Werror__march_armv8_apsve2 = xyes]) AM_COND_IF([HAS_SVE2], [AC_SUBST(CFLAGS_SVE2, "-march=armv8-a+sve2")]) AX_CHECK_COMPILE_FLAG([-march=armv8-a+crc], , , [-Werror]) AM_CONDITIONAL([HAS_ARMCRC], [test x$ax_cv_check_cflags__Werror__march_armv8_apcrc = xyes]) AM_COND_IF([HAS_ARMCRC], [AC_SUBST(CFLAGS_ARMCRC, "-march=armv8-a+crc")]) AX_CHECK_COMPILE_FLAG([-march=armv8.2-a+sha3], , , [-Werror]) AM_CONDITIONAL([HAS_NEONSHA3], [test x$ax_cv_check_cflags__Werror__march_armv8_2_apsha3 = xyes]) AM_COND_IF([HAS_NEONSHA3], [AC_SUBST(CFLAGS_NEONSHA3, "-march=armv8.2-a+sha3")]) AX_CHECK_COMPILE_FLAG([-march=rv64gcv], , , [-Werror]) AM_CONDITIONAL([HAS_RV64V], [test x$ax_cv_check_cflags__Werror__march_rv64gcv = xyes]) AM_COND_IF([HAS_RV64V], [AC_SUBST(CFLAGS_RV64V, "-march=rv64gcv")]) AX_CHECK_COMPILE_FLAG([-march=rv32gcv], , , [-Werror]) AM_CONDITIONAL([HAS_RV32V], [test x$ax_cv_check_cflags__Werror__march_rv32gcv = xyes]) AM_COND_IF([HAS_RV32V], [AC_SUBST(CFLAGS_RV32V, "-march=rv32gcv")]) AX_CHECK_COMPILE_FLAG([-march=rv64gc_zbkc], , , [-Werror]) AM_CONDITIONAL([HAS_RV64ZBKC], [test x$ax_cv_check_cflags__Werror__march_rv64gc_zbkc = xyes]) AM_COND_IF([HAS_RV64ZBKC], [AC_SUBST(CFLAGS_RV64ZBKC, "-march=rv64gc_zbkc")]) AX_CHECK_COMPILE_FLAG([-march=rv32gc_zbkc], , , [-Werror]) AM_CONDITIONAL([HAS_RV32ZBKC], [test x$ax_cv_check_cflags__Werror__march_rv32gc_zbkc = xyes]) AM_COND_IF([HAS_RV32ZBKC], [AC_SUBST(CFLAGS_RV32ZBKC, "-march=rv32gc_zbkc")]) AX_CHECK_COMPILE_FLAG([-march=rv64gcv_zvbc], , , [-Werror]) AM_CONDITIONAL([HAS_RV64ZVBC], [test x$ax_cv_check_cflags__Werror__march_rv64gcv_zvbc = xyes]) AM_COND_IF([HAS_RV64ZVBC], [AC_SUBST(CFLAGS_RV64ZVBC, "-march=rv64gcv_zvbc")]) AX_CHECK_COMPILE_FLAG([-march=rv32gcv_zvbc], , , [-Werror]) AM_CONDITIONAL([HAS_RV32VBC], [test x$ax_cv_check_cflags__Werror__march_rv32gcv_zvbc = xyes]) AM_COND_IF([HAS_RV32VBC], [AC_SUBST(CFLAGS_RV32ZVBC, "-march=rv32gcv_zvbc")]) AC_CHECK_DECLS([posix_memalign], [], [AC_SUBST(CFLAGS_POSIX_SOURCE, "-D_POSIX_C_SOURCE=200112L")], [[#include ]]) dnl Revert back to C++ compiler AC_LANG_POP m4_include([m4/ax_check_link_flag.m4]) AX_CHECK_LINK_FLAG([-latomic]) AM_CONDITIONAL([HAS_LIBATOMIC], [test x$ax_cv_check_ldflags___latomic = xyes]) AM_COND_IF([HAS_LIBATOMIC], [AC_SUBST(LDFLAGS_LIBATOMIC, "-latomic")]) AC_CONFIG_FILES([Makefile]) AC_OUTPUT par2cmdline-turbo-1.5.0/depcomp000077500000000000000000000562171524160147200164400ustar00rootroot00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2024-06-19.01; # UTC # Copyright (C) 1999-2024 Free Software Foundation, Inc. # 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 2, 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 . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by 'PROGRAMS ARGS'. object Object file output by 'PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . GNU Automake home page: . General help using GNU software: . EOF exit $? ;; -v | --v*) echo "depcomp (GNU Automake) $scriptversion" exit $? ;; esac # Get the directory component of the given path, and save it in the # global variables '$dir'. Note that this directory component will # be either empty or ending with a '/' character. This is deliberate. set_dir_from () { case $1 in */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; *) dir=;; esac } # Get the suffix-stripped basename of the given path, and save it the # global variable '$base'. set_base_from () { base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` } # If no dependency file was actually created by the compiler invocation, # we still have to create a dummy depfile, to avoid errors with the # Makefile "include basename.Plo" scheme. make_dummy_depfile () { echo "#dummy" > "$depfile" } # Factor out some common post-processing of the generated depfile. # Requires the auxiliary global variable '$tmpdepfile' to be set. aix_post_process_depfile () { # If the compiler actually managed to produce a dependency file, # post-process it. if test -f "$tmpdepfile"; then # Each line is of the form 'foo.o: dependency.h'. # Do two passes, one to just change these to # $object: dependency.h # and one to simply output # dependency.h: # which is needed to avoid the deleted-header problem. { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" } > "$depfile" rm -f "$tmpdepfile" else make_dummy_depfile fi } # A tabulation character. tab=' ' # A newline character. nl=' ' # Character ranges might be problematic outside the C locale. # These definitions help. upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ lower=abcdefghijklmnopqrstuvwxyz alpha=${upper}${lower} if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Avoid interference from the environment. gccflag= dashmflag= # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvisualcpp fi if test "$depmode" = msvc7msys; then # This is just like msvc7 but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvc7 fi if test "$depmode" = xlc; then # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. gccflag=-qmakedep=gcc,-MF depmode=gcc fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## Note that this doesn't just cater to obsolete pre-3.x GCC compilers. ## but also to in-use compilers like IBM xlc/xlC and the HP C compiler. ## (see the conditional assignment to $gccflag above). ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). Also, it might not be ## supported by the other compilers which use the 'gcc' depmode. ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The second -e expression handles DOS-style file names with drive # letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the "deleted header file" problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. ## Some versions of gcc put a space before the ':'. On the theory ## that the space means something, we add a space to the output as ## well. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like '#:fec' to the end of the # dependency line. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ | tr "$nl" ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" ;; xlc) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts '$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done aix_post_process_depfile ;; tcc) # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 # FIXME: That version still under development at the moment of writing. # Make that this statement remains true also for stable, released # versions. # It will wrap lines (doesn't matter whether long or short) with a # trailing '\', as in: # # foo.o : \ # foo.c \ # foo.h \ # # It will put a trailing '\' even on the last line, and will use leading # spaces rather than leading tabs (at least since its commit 0394caf7 # "Emit spaces for -MD"). "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. # We have to change lines of the first kind to '$object: \'. sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" # And for each line of the second kind, we have to emit a 'dep.h:' # dummy dependency, to avoid the deleted-header problem. sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; ## The order of this option in the case statement is important, since the ## shell code in configure will try each of these formats in the order ## listed in this file. A plain '-MD' option would be understood by many ## compilers, so we must ensure this comes after the gcc and icc options. pgcc) # Portland's C compiler understands '-MD'. # Will always output deps to 'file.d' where file is the root name of the # source file under compilation, even if file resides in a subdirectory. # The object file name does not affect the name of the '.d' file. # pgcc 10.2 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using '\' : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... set_dir_from "$object" # Use the source, not the object, to determine the base name, since # that's sadly what pgcc will do too. set_base_from "$source" tmpdepfile=$base.d # For projects that build the same source file twice into different object # files, the pgcc approach of using the *source* file root name can cause # problems in parallel builds. Use a locking strategy to avoid stomping on # the same $tmpdepfile. lockdir=$base.d-lock trap " echo '$0: caught signal, cleaning up...' >&2 rmdir '$lockdir' exit 1 " 1 2 13 15 numtries=100 i=$numtries while test $i -gt 0; do # mkdir is a portable test-and-set. if mkdir "$lockdir" 2>/dev/null; then # This process acquired the lock. "$@" -MD stat=$? # Release the lock. rmdir "$lockdir" break else # If the lock is being held by a different process, wait # until the winning process is done or we timeout. while test -d "$lockdir" && test $i -gt 0; do sleep 1 i=`expr $i - 1` done fi i=`expr $i - 1` done trap - 1 2 13 15 if test $i -le 0; then echo "$0: failed to acquire lock after $numtries attempts" >&2 echo "$0: check lockdir '$lockdir'" >&2 exit 1 fi if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" # Add 'dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in 'foo.d' instead, so we check for that too. # Subdirectories are respected. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then # Libtool generates 2 separate objects for the 2 libraries. These # two compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir$base.o.d # libtool 1.5 tmpdepfile2=$dir.libs/$base.o.d # Likewise. tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d "$@" -MD fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done # Same post-processing that is required for AIX mode. aix_post_process_depfile ;; msvc7) if test "$libtool" = yes; then showIncludes=-Wc,-showIncludes else showIncludes=-showIncludes fi "$@" $showIncludes > "$tmpdepfile" stat=$? grep -v '^Note: including file: ' "$tmpdepfile" if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The first sed program below extracts the file names and escapes # backslashes for cygpath. The second sed program outputs the file # name when reading, but also accumulates all include files in the # hold buffer in order to output them again at the end. This only # works with sed implementations that can handle large buffers. sed < "$tmpdepfile" -n ' /^Note: including file: *\(.*\)/ { s//\1/ s/\\/\\\\/g p }' | $cygpath_u | sort -u | sed -n ' s/ /\\ /g s/\(.*\)/'"$tab"'\1 \\/p s/.\(.*\) \\/\1:/ H $ { s/.*/'"$tab"'/ G p }' >> "$depfile" echo >> "$depfile" # make sure the fragment doesn't end with a backslash rm -f "$tmpdepfile" ;; msvc7msys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for ':' # in the target name. This is to cope with DOS-style filenames: # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. "$@" $dashmflag | sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this sed invocation # correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process the last invocation # correctly. Breaking it into two sed invocations is a workaround. sed '1,2d' "$tmpdepfile" \ | tr ' ' "$nl" \ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E \ | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" echo "$tab" >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: par2cmdline-turbo-1.5.0/libpar2.vcxproj000066400000000000000000000122361524160147200200240ustar00rootroot00000000000000 Debug ARM64 Debug Win32 Debug x64 Release ARM64 Release Win32 Release x64 {D0A94F83-495E-4FB2-AC33-9A3EC2CC263B} Win32Proj 10.0 StaticLibrary Unicode v145 <_ProjectFileVersion>10.0.30319.1 libpar2 src\libpar2internal.h {2a658dc2-a6ea-41d1-ad78-2d02675fab14} {c4657dcb-7b83-4608-a1d5-df38d37c6fcf} par2cmdline-turbo-1.5.0/libpar2.vcxproj.filters000066400000000000000000000141751524160147200214770ustar00rootroot00000000000000 {4151047e-39a1-4271-9add-689f1f9eb2ea} cpp;c;cxx;def;odl;idl;hpj;bat;asm {aff7f018-f91f-42f6-a641-e503c124476a} h;hpp;hxx;hm;inl;inc {b8f98794-7ba8-4299-afee-d005206d8845} rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files par2cmdline-turbo-1.5.0/m4/000077500000000000000000000000001524160147200153705ustar00rootroot00000000000000par2cmdline-turbo-1.5.0/m4/acx_pthread.m4000066400000000000000000000220771524160147200201240ustar00rootroot00000000000000dnl PGSGL: When updating, comment out port-specific part below; dnl see the comment below with the word "PostgreSQL". dnl dnl Available from the GNU Autoconf Macro Archive at: dnl http://www.gnu.org/software/ac-archive/htmldoc/acx_pthread.html dnl AC_DEFUN([ACX_PTHREAD], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_LANG_PUSH(C) acx_pthread_ok=no # We used to check for pthread.h first, but this fails if pthread.h # requires special compiler flags (e.g. on True64 or Sequent). # It gets checked for in the link test anyway. # First of all, check if the user has set any of the PTHREAD_LIBS, # etcetera environment variables, and if threads linking works using # them: if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS]) AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes) AC_MSG_RESULT($acx_pthread_ok) if test x"$acx_pthread_ok" = xno; then PTHREAD_LIBS="" PTHREAD_CFLAGS="" fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" fi # We must check for the threads library under a number of different # names; the ordering is very important because some systems # (e.g. DEC) have both -lpthread and -lpthreads, where one of the # libraries is broken (non-POSIX). # Create a list of thread flags to try. Items starting with a "-" are # C compiler flags, and other items are library names, except for "none" # which indicates that we try without any flags at all, and "pthread-config" # which is a program returning the flags for the Pth emulation library. acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config pthreadGC2" # The ordering *is* (sometimes) important. Some notes on the # individual items follow: # pthreads: AIX (must check this before -lpthread) # none: in case threads are in libc; should be tried before -Kthread and # other compiler flags to prevent continual compiler warnings # -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) # -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) # -pthreads: Solaris/gcc # -mthreads: Mingw32/gcc, Lynx/gcc # -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it # doesn't hurt to check since this sometimes defines pthreads too; # also defines -D_REENTRANT) # pthread: Linux, etcetera # --thread-safe: KAI C++ # pthread-config: use pthread-config program (for GNU Pth library) case "${host_cpu}-${host_os}" in *solaris*) # On Solaris (at least, for some versions), libc contains stubbed # (non-functional) versions of the pthreads routines, so link-based # tests will erroneously succeed. (We need to link with -pthread or # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather # a function called by this macro, so we could check for that, but # who knows whether they'll stub that too in a future libc.) So, # we'll just look for -pthreads and -lpthread first: acx_pthread_flags="-pthread -pthreads pthread -mt $acx_pthread_flags" ;; esac if test x"$acx_pthread_ok" = xno; then for flag in $acx_pthread_flags; do tryPTHREAD_CFLAGS="" tryPTHREAD_LIBS="" case $flag in none) AC_MSG_CHECKING([whether pthreads work without any flags]) ;; -*) AC_MSG_CHECKING([whether pthreads work with $flag]) tryPTHREAD_CFLAGS="$flag" ;; pthread-config) # skip this if we already have flags defined, for PostgreSQL if test x"$PTHREAD_CFLAGS" != x -o x"$PTHREAD_LIBS" != x; then continue; fi AC_CHECK_PROG(acx_pthread_config, pthread-config, yes, no) if test x"$acx_pthread_config" = xno; then continue; fi tryPTHREAD_CFLAGS="`pthread-config --cflags`" tryPTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" ;; *) AC_MSG_CHECKING([for the pthreads library -l$flag]) tryPTHREAD_LIBS="-l$flag" ;; esac save_LIBS="$LIBS" save_CFLAGS="$CFLAGS" LIBS="$tryPTHREAD_LIBS $PTHREAD_LIBS $LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS $tryPTHREAD_CFLAGS" # Check for various functions. We must include pthread.h, # since some functions may be macros. (On the Sequent, we # need a special flag -Kthread to make this header compile.) # We check for pthread_join because it is in -lpthread on IRIX # while pthread_create is in libc. We check for pthread_attr_init # due to DEC craziness with -lpthreads. We check for # pthread_cleanup_push because it is one of the few pthread # functions on Solaris that doesn't have a non-functional libc stub. # We try pthread_create on general principles. AC_LINK_IFELSE([ AC_LANG_PROGRAM([[#include ]], [[pthread_t th; pthread_join(th, 0); pthread_attr_init(0); pthread_cleanup_push(0, 0); pthread_create(0,0,0,0); pthread_cleanup_pop(0); ]] )], [acx_pthread_ok=yes], [acx_pthread_ok=no]) if test "x$acx_pthread_ok" = xyes; then # Don't use options that are ignored by the compiler. # We find them by checking stderror. cat >conftest.$ac_ext <<_ACEOF int main (int argc, char **argv) { (void) argc; (void) argv; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if test "`(eval $ac_link 2>&1 1>&5)`" = ""; then # we continue with more flags because Linux needs -lpthread # for libpq builds on PostgreSQL. The test above only # tests for building binaries, not shared libraries. PTHREAD_LIBS=" $tryPTHREAD_LIBS $PTHREAD_LIBS" PTHREAD_CFLAGS="$PTHREAD_CFLAGS $tryPTHREAD_CFLAGS" else acx_pthread_ok=no fi fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" AC_MSG_RESULT($acx_pthread_ok) done fi # Various other checks: if test "x$acx_pthread_ok" = xyes; then save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # Detect AIX lossage: threads are created detached by default # and the JOINABLE attribute has a nonstandard name (UNDETACHED). AC_MSG_CHECKING([for joinable pthread attribute]) AC_LINK_IFELSE([ AC_LANG_PROGRAM([[#include ]], [[int attr=PTHREAD_CREATE_JOINABLE;]] )], ok=PTHREAD_CREATE_JOINABLE, ok=unknown) if test x"$ok" = xunknown; then AC_LINK_IFELSE([ AC_LANG_PROGRAM([[#include ]], [[int attr=PTHREAD_CREATE_UNDETACHED;]] )], ok=PTHREAD_CREATE_UNDETACHED, ok=unknown) fi if test x"$ok" != xPTHREAD_CREATE_JOINABLE; then AC_DEFINE(PTHREAD_CREATE_JOINABLE, $ok, [Define to the necessary symbol if this constant uses a non-standard name on your system.]) fi AC_MSG_RESULT(${ok}) if test x"$ok" = xunknown; then AC_MSG_WARN([we do not know how to create joinable pthreads]) fi AC_MSG_CHECKING([if more special flags are required for pthreads]) flag=no # We always add these in PostgreSQL # case "${host_cpu}-${host_os}" in # *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; # *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; # esac AC_MSG_RESULT(${flag}) if test "x$flag" != xno; then PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" # Supporting cc_r would require a special CC in all places that # use libpq, and that is ugly, so we don't do it. Users can still # define their compiler as cc_r to do thread builds of everything. # More AIX lossage: must compile with cc_r AC_CHECK_PROG(PTHREAD_CC, cc_r, cc_r, ${CC}) else PTHREAD_CC="$CC" fi AC_SUBST(PTHREAD_LIBS) AC_SUBST(PTHREAD_CFLAGS) AC_SUBST(PTHREAD_CC) # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: if test x"$acx_pthread_ok" = xyes; then ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1]) : else acx_pthread_ok=no $2 fi AC_LANG_POP ])dnl ACX_PTHREAD par2cmdline-turbo-1.5.0/m4/ax_check_compile_flag.m4000066400000000000000000000040701524160147200221010ustar00rootroot00000000000000# =========================================================================== # https://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html # =========================================================================== # # SYNOPSIS # # AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT]) # # DESCRIPTION # # Check whether the given FLAG works with the current language's compiler # or gives an error. (Warnings, however, are ignored) # # ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on # success/failure. # # If EXTRA-FLAGS is defined, it is added to the current language's default # flags (e.g. CFLAGS) when the check is done. The check is thus made with # the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to # force the compiler to issue an error when a bad flag is given. # # INPUT gives an alternative input source to AC_COMPILE_IFELSE. # # NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this # macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG. # # LICENSE # # Copyright (c) 2008 Guido U. Draheim # Copyright (c) 2011 Maarten Bosmans # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. #serial 6 AC_DEFUN([AX_CHECK_COMPILE_FLAG], [AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [ ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1" AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])], [AS_VAR_SET(CACHEVAR,[yes])], [AS_VAR_SET(CACHEVAR,[no])]) _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags]) AS_VAR_IF(CACHEVAR,yes, [m4_default([$2], :)], [m4_default([$3], :)]) AS_VAR_POPDEF([CACHEVAR])dnl ])dnl AX_CHECK_COMPILE_FLAGS par2cmdline-turbo-1.5.0/m4/ax_check_link_flag.m4000066400000000000000000000036441524160147200214140ustar00rootroot00000000000000# =========================================================================== # https://www.gnu.org/software/autoconf-archive/ax_check_link_flag.html # =========================================================================== # # SYNOPSIS # # AX_CHECK_LINK_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT]) # # DESCRIPTION # # Check whether the given FLAG works with the linker or gives an error. # (Warnings, however, are ignored) # # ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on # success/failure. # # If EXTRA-FLAGS is defined, it is added to the linker's default flags # when the check is done. The check is thus made with the flags: "LDFLAGS # EXTRA-FLAGS FLAG". This can for example be used to force the linker to # issue an error when a bad flag is given. # # INPUT gives an alternative input source to AC_LINK_IFELSE. # # NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this # macro in sync with AX_CHECK_{PREPROC,COMPILE}_FLAG. # # LICENSE # # Copyright (c) 2008 Guido U. Draheim # Copyright (c) 2011 Maarten Bosmans # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. #serial 6 AC_DEFUN([AX_CHECK_LINK_FLAG], [AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_ldflags_$4_$1])dnl AC_CACHE_CHECK([whether the linker accepts $1], CACHEVAR, [ ax_check_save_flags=$LDFLAGS LDFLAGS="$LDFLAGS $4 $1" AC_LINK_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])], [AS_VAR_SET(CACHEVAR,[yes])], [AS_VAR_SET(CACHEVAR,[no])]) LDFLAGS=$ax_check_save_flags]) AS_VAR_IF(CACHEVAR,yes, [m4_default([$2], :)], [m4_default([$3], :)]) AS_VAR_POPDEF([CACHEVAR])dnl ])dnl AX_CHECK_LINK_FLAGS par2cmdline-turbo-1.5.0/m4/ax_cxx_compile_stdcxx.m4000066400000000000000000000520731524160147200222400ustar00rootroot00000000000000# =========================================================================== # https://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html # =========================================================================== # # SYNOPSIS # # AX_CXX_COMPILE_STDCXX(VERSION, [ext|noext], [mandatory|optional]) # # DESCRIPTION # # Check for baseline language coverage in the compiler for the specified # version of the C++ standard. If necessary, add switches to CXX and # CXXCPP to enable support. VERSION may be '11', '14', '17', or '20' for # the respective C++ standard version. # # The second argument, if specified, indicates whether you insist on an # extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g. # -std=c++11). If neither is specified, you get whatever works, with # preference for no added switch, and then for an extended mode. # # The third argument, if specified 'mandatory' or if left unspecified, # indicates that baseline support for the specified C++ standard is # required and that the macro should error out if no mode with that # support is found. If specified 'optional', then configuration proceeds # regardless, after defining HAVE_CXX${VERSION} if and only if a # supporting mode is found. # # LICENSE # # Copyright (c) 2008 Benjamin Kosnik # Copyright (c) 2012 Zack Weinberg # Copyright (c) 2013 Roy Stogner # Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov # Copyright (c) 2015 Paul Norman # Copyright (c) 2015 Moritz Klammler # Copyright (c) 2016, 2018 Krzesimir Nowak # Copyright (c) 2019 Enji Cooper # Copyright (c) 2020 Jason Merrill # Copyright (c) 2021 Jörn Heusipp # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. #serial 18 dnl This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro dnl (serial version number 13). AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl m4_if([$1], [11], [ax_cxx_compile_alternatives="11 0x"], [$1], [14], [ax_cxx_compile_alternatives="14 1y"], [$1], [17], [ax_cxx_compile_alternatives="17 1z"], [$1], [20], [ax_cxx_compile_alternatives="20"], [m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl m4_if([$2], [], [], [$2], [ext], [], [$2], [noext], [], [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX])])dnl m4_if([$3], [], [ax_cxx_compile_cxx$1_required=true], [$3], [mandatory], [ax_cxx_compile_cxx$1_required=true], [$3], [optional], [ax_cxx_compile_cxx$1_required=false], [m4_fatal([invalid third argument `$3' to AX_CXX_COMPILE_STDCXX])]) AC_LANG_PUSH([C++])dnl ac_success=no m4_if([$2], [], [dnl AC_CACHE_CHECK(whether $CXX supports C++$1 features by default, ax_cv_cxx_compile_cxx$1, [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], [ax_cv_cxx_compile_cxx$1=yes], [ax_cv_cxx_compile_cxx$1=no])]) if test x$ax_cv_cxx_compile_cxx$1 = xyes; then ac_success=yes fi]) m4_if([$2], [noext], [], [dnl if test x$ac_success = xno; then for alternative in ${ax_cxx_compile_alternatives}; do switch="-std=gnu++${alternative}" cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch]) AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch, $cachevar, [ac_save_CXX="$CXX" CXX="$CXX $switch" AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], [eval $cachevar=yes], [eval $cachevar=no]) CXX="$ac_save_CXX"]) if eval test x\$$cachevar = xyes; then CXX="$CXX $switch" if test -n "$CXXCPP" ; then CXXCPP="$CXXCPP $switch" fi ac_success=yes break fi done fi]) m4_if([$2], [ext], [], [dnl if test x$ac_success = xno; then dnl HP's aCC needs +std=c++11 according to: dnl http://h21007.www2.hp.com/portal/download/files/unprot/aCxx/PDF_Release_Notes/769149-001.pdf dnl Cray's crayCC needs "-h std=c++11" dnl MSVC needs -std:c++NN for C++17 and later (default is C++14) for alternative in ${ax_cxx_compile_alternatives}; do for switch in -std=c++${alternative} +std=c++${alternative} "-h std=c++${alternative}" MSVC; do if test x"$switch" = xMSVC; then dnl AS_TR_SH maps both `:` and `=` to `_` so -std:c++17 would collide dnl with -std=c++17. We suffix the cache variable name with _MSVC to dnl avoid this. switch=-std:c++${alternative} cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_${switch}_MSVC]) else cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch]) fi AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch, $cachevar, [ac_save_CXX="$CXX" CXX="$CXX $switch" AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], [eval $cachevar=yes], [eval $cachevar=no]) CXX="$ac_save_CXX"]) if eval test x\$$cachevar = xyes; then CXX="$CXX $switch" if test -n "$CXXCPP" ; then CXXCPP="$CXXCPP $switch" fi ac_success=yes break fi done if test x$ac_success = xyes; then break fi done fi]) AC_LANG_POP([C++]) if test x$ax_cxx_compile_cxx$1_required = xtrue; then if test x$ac_success = xno; then AC_MSG_ERROR([*** A compiler with support for C++$1 language features is required.]) fi fi if test x$ac_success = xno; then HAVE_CXX$1=0 AC_MSG_NOTICE([No compiler with C++$1 support was found]) else HAVE_CXX$1=1 AC_DEFINE(HAVE_CXX$1,1, [define if the compiler supports basic C++$1 syntax]) fi AC_SUBST(HAVE_CXX$1) ]) dnl Test body for checking C++11 support m4_define([_AX_CXX_COMPILE_STDCXX_testbody_11], _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 ) dnl Test body for checking C++14 support m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14], _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 _AX_CXX_COMPILE_STDCXX_testbody_new_in_14 ) dnl Test body for checking C++17 support m4_define([_AX_CXX_COMPILE_STDCXX_testbody_17], _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 _AX_CXX_COMPILE_STDCXX_testbody_new_in_14 _AX_CXX_COMPILE_STDCXX_testbody_new_in_17 ) dnl Test body for checking C++20 support m4_define([_AX_CXX_COMPILE_STDCXX_testbody_20], _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 _AX_CXX_COMPILE_STDCXX_testbody_new_in_14 _AX_CXX_COMPILE_STDCXX_testbody_new_in_17 _AX_CXX_COMPILE_STDCXX_testbody_new_in_20 ) dnl Tests for new features in C++11 m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[ // If the compiler admits that it is not ready for C++11, why torture it? // Hopefully, this will speed up the test. #ifndef __cplusplus #error "This is not a C++ compiler" // MSVC always sets __cplusplus to 199711L in older versions; newer versions // only set it correctly if /Zc:__cplusplus is specified as well as a // /std:c++NN switch: // https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/ #elif __cplusplus < 201103L && !defined _MSC_VER #error "This is not a C++11 compiler" #else namespace cxx11 { namespace test_static_assert { template struct check { static_assert(sizeof(int) <= sizeof(T), "not big enough"); }; } namespace test_final_override { struct Base { virtual ~Base() {} virtual void f() {} }; struct Derived : public Base { virtual ~Derived() override {} virtual void f() override {} }; } namespace test_double_right_angle_brackets { template < typename T > struct check {}; typedef check single_type; typedef check> double_type; typedef check>> triple_type; typedef check>>> quadruple_type; } namespace test_decltype { int f() { int a = 1; decltype(a) b = 2; return a + b; } } namespace test_type_deduction { template < typename T1, typename T2 > struct is_same { static const bool value = false; }; template < typename T > struct is_same { static const bool value = true; }; template < typename T1, typename T2 > auto add(T1 a1, T2 a2) -> decltype(a1 + a2) { return a1 + a2; } int test(const int c, volatile int v) { static_assert(is_same::value == true, ""); static_assert(is_same::value == false, ""); static_assert(is_same::value == false, ""); auto ac = c; auto av = v; auto sumi = ac + av + 'x'; auto sumf = ac + av + 1.0; static_assert(is_same::value == true, ""); static_assert(is_same::value == true, ""); static_assert(is_same::value == true, ""); static_assert(is_same::value == false, ""); static_assert(is_same::value == true, ""); return (sumf > 0.0) ? sumi : add(c, v); } } namespace test_noexcept { int f() { return 0; } int g() noexcept { return 0; } static_assert(noexcept(f()) == false, ""); static_assert(noexcept(g()) == true, ""); } namespace test_constexpr { template < typename CharT > unsigned long constexpr strlen_c_r(const CharT *const s, const unsigned long acc) noexcept { return *s ? strlen_c_r(s + 1, acc + 1) : acc; } template < typename CharT > unsigned long constexpr strlen_c(const CharT *const s) noexcept { return strlen_c_r(s, 0UL); } static_assert(strlen_c("") == 0UL, ""); static_assert(strlen_c("1") == 1UL, ""); static_assert(strlen_c("example") == 7UL, ""); static_assert(strlen_c("another\0example") == 7UL, ""); } namespace test_rvalue_references { template < int N > struct answer { static constexpr int value = N; }; answer<1> f(int&) { return answer<1>(); } answer<2> f(const int&) { return answer<2>(); } answer<3> f(int&&) { return answer<3>(); } void test() { int i = 0; const int c = 0; static_assert(decltype(f(i))::value == 1, ""); static_assert(decltype(f(c))::value == 2, ""); static_assert(decltype(f(0))::value == 3, ""); } } namespace test_uniform_initialization { struct test { static const int zero {}; static const int one {1}; }; static_assert(test::zero == 0, ""); static_assert(test::one == 1, ""); } namespace test_lambdas { void test1() { auto lambda1 = [](){}; auto lambda2 = lambda1; lambda1(); lambda2(); } int test2() { auto a = [](int i, int j){ return i + j; }(1, 2); auto b = []() -> int { return '0'; }(); auto c = [=](){ return a + b; }(); auto d = [&](){ return c; }(); auto e = [a, &b](int x) mutable { const auto identity = [](int y){ return y; }; for (auto i = 0; i < a; ++i) a += b--; return x + identity(a + b); }(0); return a + b + c + d + e; } int test3() { const auto nullary = [](){ return 0; }; const auto unary = [](int x){ return x; }; using nullary_t = decltype(nullary); using unary_t = decltype(unary); const auto higher1st = [](nullary_t f){ return f(); }; const auto higher2nd = [unary](nullary_t f1){ return [unary, f1](unary_t f2){ return f2(unary(f1())); }; }; return higher1st(nullary) + higher2nd(nullary)(unary); } } namespace test_variadic_templates { template struct sum; template struct sum { static constexpr auto value = N0 + sum::value; }; template <> struct sum<> { static constexpr auto value = 0; }; static_assert(sum<>::value == 0, ""); static_assert(sum<1>::value == 1, ""); static_assert(sum<23>::value == 23, ""); static_assert(sum<1, 2>::value == 3, ""); static_assert(sum<5, 5, 11>::value == 21, ""); static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, ""); } // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function // because of this. namespace test_template_alias_sfinae { struct foo {}; template using member = typename T::member_type; template void func(...) {} template void func(member*) {} void test(); void test() { func(0); } } } // namespace cxx11 #endif // __cplusplus >= 201103L ]]) dnl Tests for new features in C++14 m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_14], [[ // If the compiler admits that it is not ready for C++14, why torture it? // Hopefully, this will speed up the test. #ifndef __cplusplus #error "This is not a C++ compiler" #elif __cplusplus < 201402L && !defined _MSC_VER #error "This is not a C++14 compiler" #else namespace cxx14 { namespace test_polymorphic_lambdas { int test() { const auto lambda = [](auto&&... args){ const auto istiny = [](auto x){ return (sizeof(x) == 1UL) ? 1 : 0; }; const int aretiny[] = { istiny(args)... }; return aretiny[0]; }; return lambda(1, 1L, 1.0f, '1'); } } namespace test_binary_literals { constexpr auto ivii = 0b0000000000101010; static_assert(ivii == 42, "wrong value"); } namespace test_generalized_constexpr { template < typename CharT > constexpr unsigned long strlen_c(const CharT *const s) noexcept { auto length = 0UL; for (auto p = s; *p; ++p) ++length; return length; } static_assert(strlen_c("") == 0UL, ""); static_assert(strlen_c("x") == 1UL, ""); static_assert(strlen_c("test") == 4UL, ""); static_assert(strlen_c("another\0test") == 7UL, ""); } namespace test_lambda_init_capture { int test() { auto x = 0; const auto lambda1 = [a = x](int b){ return a + b; }; const auto lambda2 = [a = lambda1(x)](){ return a; }; return lambda2(); } } namespace test_digit_separators { constexpr auto ten_million = 100'000'000; static_assert(ten_million == 100000000, ""); } namespace test_return_type_deduction { auto f(int& x) { return x; } decltype(auto) g(int& x) { return x; } template < typename T1, typename T2 > struct is_same { static constexpr auto value = false; }; template < typename T > struct is_same { static constexpr auto value = true; }; int test() { auto x = 0; static_assert(is_same::value, ""); static_assert(is_same::value, ""); return x; } } } // namespace cxx14 #endif // __cplusplus >= 201402L ]]) dnl Tests for new features in C++17 m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_17], [[ // If the compiler admits that it is not ready for C++17, why torture it? // Hopefully, this will speed up the test. #ifndef __cplusplus #error "This is not a C++ compiler" #elif __cplusplus < 201703L && !defined _MSC_VER #error "This is not a C++17 compiler" #else #include #include #include namespace cxx17 { namespace test_constexpr_lambdas { constexpr int foo = [](){return 42;}(); } namespace test::nested_namespace::definitions { } namespace test_fold_expression { template int multiply(Args... args) { return (args * ... * 1); } template bool all(Args... args) { return (args && ...); } } namespace test_extended_static_assert { static_assert (true); } namespace test_auto_brace_init_list { auto foo = {5}; auto bar {5}; static_assert(std::is_same, decltype(foo)>::value); static_assert(std::is_same::value); } namespace test_typename_in_template_template_parameter { template typename X> struct D; } namespace test_fallthrough_nodiscard_maybe_unused_attributes { int f1() { return 42; } [[nodiscard]] int f2() { [[maybe_unused]] auto unused = f1(); switch (f1()) { case 17: f1(); [[fallthrough]]; case 42: f1(); } return f1(); } } namespace test_extended_aggregate_initialization { struct base1 { int b1, b2 = 42; }; struct base2 { base2() { b3 = 42; } int b3; }; struct derived : base1, base2 { int d; }; derived d1 {{1, 2}, {}, 4}; // full initialization derived d2 {{}, {}, 4}; // value-initialized bases } namespace test_general_range_based_for_loop { struct iter { int i; int& operator* () { return i; } const int& operator* () const { return i; } iter& operator++() { ++i; return *this; } }; struct sentinel { int i; }; bool operator== (const iter& i, const sentinel& s) { return i.i == s.i; } bool operator!= (const iter& i, const sentinel& s) { return !(i == s); } struct range { iter begin() const { return {0}; } sentinel end() const { return {5}; } }; void f() { range r {}; for (auto i : r) { [[maybe_unused]] auto v = i; } } } namespace test_lambda_capture_asterisk_this_by_value { struct t { int i; int foo() { return [*this]() { return i; }(); } }; } namespace test_enum_class_construction { enum class byte : unsigned char {}; byte foo {42}; } namespace test_constexpr_if { template int f () { if constexpr(cond) { return 13; } else { return 42; } } } namespace test_selection_statement_with_initializer { int f() { return 13; } int f2() { if (auto i = f(); i > 0) { return 3; } switch (auto i = f(); i + 4) { case 17: return 2; default: return 1; } } } namespace test_template_argument_deduction_for_class_templates { template struct pair { pair (T1 p1, T2 p2) : m1 {p1}, m2 {p2} {} T1 m1; T2 m2; }; void f() { [[maybe_unused]] auto p = pair{13, 42u}; } } namespace test_non_type_auto_template_parameters { template struct B {}; B<5> b1; B<'a'> b2; } namespace test_structured_bindings { int arr[2] = { 1, 2 }; std::pair pr = { 1, 2 }; auto f1() -> int(&)[2] { return arr; } auto f2() -> std::pair& { return pr; } struct S { int x1 : 2; volatile double y1; }; S f3() { return {}; } auto [ x1, y1 ] = f1(); auto& [ xr1, yr1 ] = f1(); auto [ x2, y2 ] = f2(); auto& [ xr2, yr2 ] = f2(); const auto [ x3, y3 ] = f3(); } namespace test_exception_spec_type_system { struct Good {}; struct Bad {}; void g1() noexcept; void g2(); template Bad f(T*, T*); template Good f(T1*, T2*); static_assert (std::is_same_v); } namespace test_inline_variables { template void f(T) {} template inline T g(T) { return T{}; } template<> inline void f<>(int) {} template<> int g<>(int) { return 5; } } } // namespace cxx17 #endif // __cplusplus < 201703L && !defined _MSC_VER ]]) dnl Tests for new features in C++20 m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_20], [[ #ifndef __cplusplus #error "This is not a C++ compiler" #elif __cplusplus < 202002L && !defined _MSC_VER #error "This is not a C++20 compiler" #else #include namespace cxx20 { // As C++20 supports feature test macros in the standard, there is no // immediate need to actually test for feature availability on the // Autoconf side. } // namespace cxx20 #endif // __cplusplus < 202002L && !defined _MSC_VER ]]) par2cmdline-turbo-1.5.0/man/000077500000000000000000000000001524160147200156235ustar00rootroot00000000000000par2cmdline-turbo-1.5.0/man/par2.1000066400000000000000000000326571524160147200165660ustar00rootroot00000000000000.\" Manpage for par2 .\" Contact ike.devolder@gmail.com for mistakes. .TH par2 1 "august 2026" "1.3.0" "Parity archive utils" .SH NAME par2 \- PAR 2.0 compatible file verification and repair tool. .SH SYNOPSIS .B par2 c|v|r .RI "[options] <" "PAR2 file" "> [" "files" "]" .br .B par2 c(reate) .RI "[options] <" "PAR2 file" "> [" "files" "]" .br .B par2 v(erify) .RI "[options] <" "PAR2 file" "> [" "files" "]" .br .B par2 r(epair) .RI "[options] <" "PAR2 file" "> [" "files" "]" .br Also: .br .B par2create .RI "[options] <" "PAR2 file" "> [" "files" "]" .br .B par2verify .RI "[options] <" "PAR2 file" "> [" "files" "]" .br .B par2repair .RI "[options] <" "PAR2 file" "> [" "files" "]" .br .SH DESCRIPTION par2cmdline is a program for creating and using PAR2 files to detect damage in data files and repair them if necessary. It can be used with any kind of file. .SH OPTIONS global .TP .B \-h Show this help .TP .B \-V Show version .TP .B \-VV Show version and copyright .SH OPTIONS all uses .TP .BI "\-a <" "file" ">" Set the main PAR2 archive name; required on create, optional for verify and repair .TP .B \-B <" "path" ">" Set the basepath to use as reference for the datafiles .TP .B \-v [\-v] Be more verbose .TP .B \-q [\-q] .RB "Be more quiet (" "\-q \-q" " gives silence)" .TP .B \-m Memory (in MB) to use (default is half of total physical memory) .TP .B \-t .RB "Number of threads used for main processing (default auto-detected)" .TP .B \-T .RB "Number of files hashed in parallel (default 2)" .TP .B \-\- Treat all following arguments as filenames .SH OPTIONS verify or repair .TP .B \-p Purge backup files and par files on successful recovery or when no recovery is needed .TP .B \-O Rename-only mode (skip files that are not perfect matches, useful for quickly fixing renamed files) .TP .B \-N data skipping (find badly mispositioned data blocks) .TP .B \-S Skip leaway (distance +/\- from expected block position, default 64) .SH OPTIONS create .TP .B \-b Set the Block\(hyCount (default 2000 when neither \-b nor \-s is specified) .TP .B \-s .RB "Set the Block\(hySize (don't use both " "\-b" " and " "\-s" ")" .TP .B \-r Level of redundancy (percentage, default 5%) .TP .B \-r Redundancy target size, =g(iga),m(ega),k(ilo) bytes .TP .B \-c .RB "Recovery block count (don't use both " "\-r" " and " "\-c" ")" .TP .B \-f First Recovery\(hyBlock\(hyNumber (default 0) .TP .B \-u Uniform recovery file sizes (default is variable sizes) .TP .B \-l .RB "Limit size of recovery files (don't use both " "\-u" " and " "\-l" ")" .TP .B \-n .RB "Number of recovery files (max 31) (don't use both " "\-n" " and " "\-l" ")" .TP .B \-R Recurse into subdirectories (only useful on create) .TP .B @ Process a listing of files specified in text (file) input .SH EXITCODES .TP .B 0 The process completed successfully .TP .B 1 Repair is possible, there are sufficient recovery blocks .TP .B 2 Repair is *NOT* possible, there are insufficient recovery blocks .TP .B 3 The given combination of commandline flags is invalid .TP .B 4 Insufficient critical data, probably your par files are corrupted .TP .B 5 Repair was completed, but datafiles are still corrupted .TP .B 6 Some file IO error while accessing it .TP .B 7 An internal logic error occurred .TP .B 8 Out of memory or other memory error .SH EXAMPLES With PAR 2.0 you can create PAR2 recovery files for as few as 1 or as many as 32768 files. If you wanted to create PAR1 recovery files for a single file you are forced to split the file into multiple parts and RAR is frequently used for this purpose. You do NOT need to split files with PAR 2.0. To create PAR 2 recovery files for a single data file (e.g. one called test.mpg), you can use the following command: par2 create test.mpg If test.mpg is an 800 MB file, then this will create a total of 8 PAR2 files with the following filenames (taking roughly 6 minutes on a PC with a 1500MHz CPU): test.mpg.par2 - This is an index file for verification only test.mpg.vol00+01.par2 - Recovery file with 1 recovery block test.mpg.vol01+02.par2 - Recovery file with 2 recovery blocks test.mpg.vol03+04.par2 - Recovery file with 4 recovery blocks test.mpg.vol07+08.par2 - Recovery file with 8 recovery blocks test.mpg.vol15+16.par2 - Recovery file with 16 recovery blocks test.mpg.vol31+32.par2 - Recovery file with 32 recovery blocks test.mpg.vol63+37.par2 - Recovery file with 37 recovery blocks The test.mpg.par2 file is 39 KB in size and the other files vary in size from 443 KB to 15 MB. These par2 files will enable the recovery of up to 100 errors totalling 40 MB of lost or damaged data from the original test.mpg file when it and the par2 files are posted on UseNet. When posting on UseNet it is recommended that you use the "-s" option to set a blocksize that is equal to the Article size that you will use to post the data file. If you wanted to post the test.mpg file using an article size of 300 KB then the command you would type is: par2 create -s307200 test.mpg This will create 9 PAR2 files instead of 8, and they will be capable of correcting up to 134 errors totalling 40 MB. It will take roughly 8 minutes to create the recovery files this time. In both of these two examples, the total quantity of recovery data created was 40 MB (which is 5% of 800 MB). If you wish to create a greater or lesser quantity of recovery data, you can use the "-r" option. To create 10% recovery data instead of the default of 5% and also to use a block size of 300 KB, you would use the following command: par2 create -s307200 -r10 test.mpg This would also create 9 PAR2 files, but they would be able to correct up to 269 errors totalling 80 MB. Since twice as much recovery data is created, it will take about 16 minutes to do so with a 1500MHz CPU. The "-u" and "-n" options can be used to control exactly how many recovery files are created and how the recovery blocks are distributed amongst them. They do not affect the total quantity of recovery data created. The "-f" option is used when you create additional recovery data. e.g. If you have already created 10% and want another 5% then you might use the following command: par2 create -s307200 -r5 -f300 test.mpg This specifies the same block size (which is a requirement for additional recovery files), 5% recovery data, and a first block number of 300. The "-m" option controls how much memory par2 uses. It defaults to half of total physical memory unless you override it. CREATING PAR2 FILES FOR MULTIPLE DATA FILES When creating PAR2 recovery files form multiple data files, you must specify the base filename to use for the par2 files and the names of all of the data files. If test.mpg had been split into multiple RAR files, then you could use: par2 create test.mpg.rar.par2 test.mpg.part*.rar The files filename "test.mpg.rar.par2" says what you want the par2 files to be called and "test.mpg.part*.rar" should select all of the RAR files. With "-R" you can also create recovery files for a multi layered tree structure. . ├── aaaa-test.data ├── subdir1 │   └── test-0.data ├── subdir2 │   ├── test-1.data │   ├── test-2.data │   ├── test-3.data │   ├── test-4.data │   ├── test-5.data │   ├── test-6.data │   ├── test-7.data │   ├── test-8.data │   └── test-9.data └── test-a.data par2 create -R recovery.par2 * Will result in: . ├── aaaa-test.data ├── recovery.par2 ├── recovery.vol000+01.par2 ├── recovery.vol001+02.par2 ├── recovery.vol003+04.par2 ├── recovery.vol007+08.par2 ├── recovery.vol015+16.par2 ├── recovery.vol031+32.par2 ├── recovery.vol063+37.par2 ├── subdir1 │   └── test-0.data ├── subdir2 │   ├── test-1.data │   ├── test-2.data │   ├── test-3.data │   ├── test-4.data │   ├── test-5.data │   ├── test-6.data │   ├── test-7.data │   ├── test-8.data │   └── test-9.data └── test-a.data WARNING: Be wary of wildcard shell expansion. Once you pass in more than one unnamed argument the first one will be used as the par2 files name and not be covered by those. VERIFYING AND REPAIRING When using par2 recovery files to verify or repair the data files from which they were created, you only need to specify the filename of one of the par2 files to par2. For example: par2 verify test.mpg.par2 This tells par2 to use the information in test.mpg.par2 to verify the data files. Par2 will automatically search for the other par2 files that were created and use the information they contain to determine the filenames of the original data files and then to verify them. If all of the data files are ok, then par2 will report that repair will not be required. If any of the data files are missing or damaged, par2 will report the details of what it has found. If the recovery files contain enough recovery blocks to repair the damage, you will be told that repair is possible. Otherwise you will be told exactly how many recovery blocks will be required in order to repair. To carry out a repair use the following command: par2 repair test.mpg.par2 This tells par2 to verify and if possible repair any damaged or missing files. If a repair is carried out, then each file which is repaired will be re-verified to confirm that the repair was successful. MISSNAMED AND INCOMPLETE DATA FILES If any of the recovery files or data files have the wrong filename, then par2 will not automatically find and scan them. To have par2 scan such files, you must include them on the command line when attempting to verify or repair; e.g.: par2 r test.mpg.par2 other.mpg This tells par2 to scan the file called other.mpg to see if it contains any data belonging to the original data files. If one of the extra files specified in this way is an exact match for a data file, then the repair process will rename the file so that it has the correct filename. Because par2 is designed to be able to find good data within a damaged file, it can do the same with incomplete files downloaded from UseNet. If some of the articles for a file are missing, you should still download the file and save it to disk for par2 to scan. If you do this then you may find that you can carry out a repair in a situation where you would not otherwise have sufficient recovery data. You can have par2 scan all files that are in the current directory using a command such as: par2 r test.mpg.par2 * RENAME-ONLY MODE If you have accidentally renamed many files that are protected by PAR2 files, you can use the rename-only mode to quickly identify and fix them. In rename-only mode, par2 will skip files that are not perfect matches (i.e., files that are damaged or have mismatched blocks), which provides a massive speedup when dealing with many renamed files. For example, if you have files that were accidentally renamed: mv file1.dat renamed_a.dat mv file2.dat renamed_b.dat mv file3.dat renamed_c.dat You can quickly fix them with: par2 r -O recovery.par2 renamed_*.dat Par2 will scan only the first block of each file to determine if it's a perfect match. If it is, the file will be renamed back to its original name. If it's not a perfect match (e.g., the file is damaged), it will be skipped immediately without scanning the entire file. This is particularly useful when you have hundreds of gigabytes of renamed files protected by multiple PAR2 sets, as it avoids the slow block-by-block scanning that would otherwise be required. WHAT TO DO WHEN YOU ARE TOLD YOU NEED MORE RECOVERY BLOCKS If par2 determines that any of the data files are damaged or missing and finds that there is insufficient recovery data to effect a repair, you will be told that you need a certain number of recovery blocks. You can obtain these by downloading additional recovery files. In order to make things easy, par2 files have filenames that tell you exactly how many recovery blocks each one contains. Assuming that the following command was used to create recovery data: par2 c -b1000 -r5 test.mpg Then the recovery files that are created would be called: test.mpg.par2 test.mpg.vol00+01.par2 test.mpg.vol01+02.par2 test.mpg.vol03+04.par2 test.mpg.vol07+08.par2 test.mpg.vol15+16.par2 test.mpg.vol31+19.par2 The first file in this list does not contain any recovery data, it only contains information sufficient to verify the data files. Each of the other files contains a different number of recovery blocks. The number after the '+' sign is the number of recovery blocks and the number preceding the '+' sign is the block number of the first recovery block in that file. If par2 told you that you needed 10 recovery blocks, then you would need "test.mpg.vol01+02.par2" and "test.mpg.vol07+08.par". You might of course choose to fetch "test.mpg.vol15+16.par2" instead (in which case you would have an extra 6 recovery blocks which would not be used for the repair). HASHING Hashing portion (file verification and creation stages) of the code can't be parallelized without processing multiple files simultaneously. The 2 file/thread default is a good choice for HDDs, using more threads can result in worse performance. Four or more threads can be used for better performance with SSDs. .SH AUTHORS Peter Brian Clements .br Marcel Partap .br Ike Devolder .br Jussi Kansanen .br par2cmdline-turbo-1.5.0/mkinstalldirs000077500000000000000000000071141524160147200176610ustar00rootroot00000000000000#! /bin/sh # mkinstalldirs --- make directory hierarchy scriptversion=2024-06-19.01; # UTC # Original author: Noah Friedman # Created: 1993-05-16 # Public domain. # # This file is maintained in Automake, please report # bugs to or send patches to # . nl=' ' IFS=" "" $nl" errstatus=0 dirmode= usage="\ Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... Create each directory DIR (with mode MODE, if specified), including all leading file name components. Report bugs to . GNU Automake home page: . General help using GNU software: ." # process command line arguments while test $# -gt 0 ; do case $1 in -h | --help | --h*) # -h for help echo "$usage" exit $? ;; -m) # -m PERM arg shift test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } dirmode=$1 shift ;; --version) echo "$0 (GNU Automake) $scriptversion" exit $? ;; --) # stop option processing shift break ;; -*) # unknown option echo "$usage" 1>&2 exit 1 ;; *) # first non-opt arg break ;; esac done for file do if test -d "$file"; then shift else break fi done case $# in 0) exit 0 ;; esac # Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and # mkdir -p a/c at the same time, both will detect that a is missing, # one will create a, then the other will try to create a and die with # a "File exists" error. This is a problem when calling mkinstalldirs # from a parallel make. We use --version in the probe to restrict # ourselves to GNU mkdir, which is thread-safe. case $dirmode in '') if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then echo "mkdir -p -- $*" exec mkdir -p -- "$@" else # On NextStep and OpenStep, the 'mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because '.' already # exists. test -d ./-p && rmdir ./-p test -d ./--version && rmdir ./--version fi ;; *) if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 && test ! -d ./--version; then echo "umask 22" umask 22 echo "mkdir -m $dirmode -p -- $*" exec mkdir -m "$dirmode" -p -- "$@" else # Clean up after NextStep and OpenStep mkdir. for d in ./-m ./-p ./--version "./$dirmode"; do test -d $d && rmdir $d done fi ;; esac echo "umask 22" umask 22 for file do case $file in /*) pathcomp=/ ;; *) pathcomp= ;; esac oIFS=$IFS IFS=/ set fnord $file shift IFS=$oIFS for d do test "x$d" = x && continue pathcomp=$pathcomp$d case $pathcomp in -*) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr fi fi pathcomp=$pathcomp/ done if test ! -z "$dirmode"; then echo "chmod $dirmode $file" chmod "$dirmode" "$file" || errstatus=$? fi done exit $errstatus # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: par2cmdline-turbo-1.5.0/par2cmdline.props000066400000000000000000000047211524160147200203410ustar00rootroot00000000000000 $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\$(ProjectName)\ true false Disabled WIN32;_DEBUG;_CONSOLE;BASE_PACKAGE="par2cmdline";BASE_VERSION="1.3.0";PACKAGE="par2cmdline-turbo";VERSION="1.5.0";PARPAR_ENABLE_HASHER_MD5CRC;%(PreprocessorDefinitions) false EnableFastChecks MultiThreadedDebug Level3 ProgramDatabase true false MaxSpeed AnySuitable Speed true WIN32;NDEBUG;_CONSOLE;BASE_PACKAGE="par2cmdline";BASE_VERSION="1.3.0";PACKAGE="par2cmdline-turbo";VERSION="1.5.0";PARPAR_ENABLE_HASHER_MD5CRC;%(PreprocessorDefinitions) true MultiThreaded true Level3 ProgramDatabase true true true par2cmdline-turbo-1.5.0/par2cmdline.sln000066400000000000000000000676601524160147200200050ustar00rootroot00000000000000Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.13.35931.197 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpar2", "libpar2.vcxproj", "{D0A94F83-495E-4FB2-AC33-9A3EC2CC263B}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "par2cmdline", "par2cmdline.vcxproj", "{54348158-1A8A-41AF-A76A-0AAAD0E43909}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{09795456-9DA5-4253-AE04-DD2AB464238A}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "letype_test", "tests\letype_test.vcxproj", "{73CFCB2E-19E6-4ADF-B825-D2FA87458F3C}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "crc_test", "tests\crc_test.vcxproj", "{48AECF41-79C7-4739-A80E-B4CD22CCE099}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "md5_test", "tests\md5_test.vcxproj", "{3C50AA0B-8B10-4BAD-85F8-953861327D0A}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "galois_test", "tests\galois_test.vcxproj", "{263DECCF-470B-4BD0-B21A-D349B563CF6C}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "reedsolomon_test", "tests\reedsolomon_test.vcxproj", "{4F6ACCCE-6D7F-4C47-B57B-8B017AB383E1}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "utf8_test", "tests\utf8_test.vcxproj", "{757A04A3-9F41-42E2-813C-0774D3835AFB}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "diskfile_test", "tests\diskfile_test.vcxproj", "{6612248A-AB2C-400B-A879-89CA63DBFCD1}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpar2_test", "tests\libpar2_test.vcxproj", "{BF86226A-49BA-401C-B6E1-DC52A7D7965D}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "commandline_test", "tests\commandline_test.vcxproj", "{E2E11769-76C3-40BD-BF1C-A9198481BD6E}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "descriptionpacket_test", "tests\descriptionpacket_test.vcxproj", "{4E77EA22-B1FA-4FC0-8E13-74953DE245D7}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "criticalpacket_test", "tests\criticalpacket_test.vcxproj", "{862B6ABA-D1C6-4DB8-A893-747CC8B5D0F2}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gf16", "parpar\gf16.vcxproj", "{2A658DC2-A6EA-41D1-AD78-2D02675FAB14}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hasher", "parpar\hasher.vcxproj", "{C4657DCB-7B83-4608-A1D5-DF38D37C6FCF}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|ARM64 = Debug|ARM64 Debug|Win32 = Debug|Win32 Debug|x64 = Debug|x64 Release|ARM64 = Release|ARM64 Release|Win32 = Release|Win32 Release|x64 = Release|x64 UnitTests-Debug|ARM64 = UnitTests-Debug|ARM64 UnitTests-Debug|Win32 = UnitTests-Debug|Win32 UnitTests-Debug|x64 = UnitTests-Debug|x64 UnitTests-Release|ARM64 = UnitTests-Release|ARM64 UnitTests-Release|Win32 = UnitTests-Release|Win32 UnitTests-Release|x64 = UnitTests-Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {D0A94F83-495E-4FB2-AC33-9A3EC2CC263B}.Debug|ARM64.ActiveCfg = Debug|ARM64 {D0A94F83-495E-4FB2-AC33-9A3EC2CC263B}.Debug|ARM64.Build.0 = Debug|ARM64 {D0A94F83-495E-4FB2-AC33-9A3EC2CC263B}.Debug|Win32.ActiveCfg = Debug|Win32 {D0A94F83-495E-4FB2-AC33-9A3EC2CC263B}.Debug|Win32.Build.0 = Debug|Win32 {D0A94F83-495E-4FB2-AC33-9A3EC2CC263B}.Debug|x64.ActiveCfg = Debug|x64 {D0A94F83-495E-4FB2-AC33-9A3EC2CC263B}.Debug|x64.Build.0 = Debug|x64 {D0A94F83-495E-4FB2-AC33-9A3EC2CC263B}.Release|ARM64.ActiveCfg = Release|ARM64 {D0A94F83-495E-4FB2-AC33-9A3EC2CC263B}.Release|ARM64.Build.0 = Release|ARM64 {D0A94F83-495E-4FB2-AC33-9A3EC2CC263B}.Release|Win32.ActiveCfg = Release|Win32 {D0A94F83-495E-4FB2-AC33-9A3EC2CC263B}.Release|Win32.Build.0 = Release|Win32 {D0A94F83-495E-4FB2-AC33-9A3EC2CC263B}.Release|x64.ActiveCfg = Release|x64 {D0A94F83-495E-4FB2-AC33-9A3EC2CC263B}.Release|x64.Build.0 = Release|x64 {D0A94F83-495E-4FB2-AC33-9A3EC2CC263B}.UnitTests-Debug|ARM64.ActiveCfg = Debug|ARM64 {D0A94F83-495E-4FB2-AC33-9A3EC2CC263B}.UnitTests-Debug|ARM64.Build.0 = Debug|ARM64 {D0A94F83-495E-4FB2-AC33-9A3EC2CC263B}.UnitTests-Debug|Win32.ActiveCfg = Debug|Win32 {D0A94F83-495E-4FB2-AC33-9A3EC2CC263B}.UnitTests-Debug|Win32.Build.0 = Debug|Win32 {D0A94F83-495E-4FB2-AC33-9A3EC2CC263B}.UnitTests-Debug|x64.ActiveCfg = Debug|x64 {D0A94F83-495E-4FB2-AC33-9A3EC2CC263B}.UnitTests-Debug|x64.Build.0 = Debug|x64 {D0A94F83-495E-4FB2-AC33-9A3EC2CC263B}.UnitTests-Release|ARM64.ActiveCfg = Release|ARM64 {D0A94F83-495E-4FB2-AC33-9A3EC2CC263B}.UnitTests-Release|ARM64.Build.0 = Release|ARM64 {D0A94F83-495E-4FB2-AC33-9A3EC2CC263B}.UnitTests-Release|Win32.ActiveCfg = Release|Win32 {D0A94F83-495E-4FB2-AC33-9A3EC2CC263B}.UnitTests-Release|Win32.Build.0 = Release|Win32 {D0A94F83-495E-4FB2-AC33-9A3EC2CC263B}.UnitTests-Release|x64.ActiveCfg = Release|x64 {D0A94F83-495E-4FB2-AC33-9A3EC2CC263B}.UnitTests-Release|x64.Build.0 = Release|x64 {2A658DC2-A6EA-41D1-AD78-2D02675FAB14}.Debug|ARM64.ActiveCfg = Debug|ARM64 {2A658DC2-A6EA-41D1-AD78-2D02675FAB14}.Debug|ARM64.Build.0 = Debug|ARM64 {2A658DC2-A6EA-41D1-AD78-2D02675FAB14}.Debug|Win32.ActiveCfg = Debug|Win32 {2A658DC2-A6EA-41D1-AD78-2D02675FAB14}.Debug|Win32.Build.0 = Debug|Win32 {2A658DC2-A6EA-41D1-AD78-2D02675FAB14}.Debug|x64.ActiveCfg = Debug|x64 {2A658DC2-A6EA-41D1-AD78-2D02675FAB14}.Debug|x64.Build.0 = Debug|x64 {2A658DC2-A6EA-41D1-AD78-2D02675FAB14}.Release|ARM64.ActiveCfg = Release|ARM64 {2A658DC2-A6EA-41D1-AD78-2D02675FAB14}.Release|ARM64.Build.0 = Release|ARM64 {2A658DC2-A6EA-41D1-AD78-2D02675FAB14}.Release|Win32.ActiveCfg = Release|Win32 {2A658DC2-A6EA-41D1-AD78-2D02675FAB14}.Release|Win32.Build.0 = Release|Win32 {2A658DC2-A6EA-41D1-AD78-2D02675FAB14}.Release|x64.ActiveCfg = Release|x64 {2A658DC2-A6EA-41D1-AD78-2D02675FAB14}.Release|x64.Build.0 = Release|x64 {2A658DC2-A6EA-41D1-AD78-2D02675FAB14}.UnitTests-Debug|ARM64.ActiveCfg = Debug|ARM64 {2A658DC2-A6EA-41D1-AD78-2D02675FAB14}.UnitTests-Debug|ARM64.Build.0 = Debug|ARM64 {2A658DC2-A6EA-41D1-AD78-2D02675FAB14}.UnitTests-Debug|Win32.ActiveCfg = Debug|Win32 {2A658DC2-A6EA-41D1-AD78-2D02675FAB14}.UnitTests-Debug|Win32.Build.0 = Debug|Win32 {2A658DC2-A6EA-41D1-AD78-2D02675FAB14}.UnitTests-Debug|x64.ActiveCfg = Debug|x64 {2A658DC2-A6EA-41D1-AD78-2D02675FAB14}.UnitTests-Debug|x64.Build.0 = Debug|x64 {2A658DC2-A6EA-41D1-AD78-2D02675FAB14}.UnitTests-Release|ARM64.ActiveCfg = Release|ARM64 {2A658DC2-A6EA-41D1-AD78-2D02675FAB14}.UnitTests-Release|ARM64.Build.0 = Release|ARM64 {2A658DC2-A6EA-41D1-AD78-2D02675FAB14}.UnitTests-Release|Win32.ActiveCfg = Release|Win32 {2A658DC2-A6EA-41D1-AD78-2D02675FAB14}.UnitTests-Release|Win32.Build.0 = Release|Win32 {2A658DC2-A6EA-41D1-AD78-2D02675FAB14}.UnitTests-Release|x64.ActiveCfg = Release|x64 {2A658DC2-A6EA-41D1-AD78-2D02675FAB14}.UnitTests-Release|x64.Build.0 = Release|x64 {C4657DCB-7B83-4608-A1D5-DF38D37C6FCF}.Debug|ARM64.ActiveCfg = Debug|ARM64 {C4657DCB-7B83-4608-A1D5-DF38D37C6FCF}.Debug|ARM64.Build.0 = Debug|ARM64 {C4657DCB-7B83-4608-A1D5-DF38D37C6FCF}.Debug|Win32.ActiveCfg = Debug|Win32 {C4657DCB-7B83-4608-A1D5-DF38D37C6FCF}.Debug|Win32.Build.0 = Debug|Win32 {C4657DCB-7B83-4608-A1D5-DF38D37C6FCF}.Debug|x64.ActiveCfg = Debug|x64 {C4657DCB-7B83-4608-A1D5-DF38D37C6FCF}.Debug|x64.Build.0 = Debug|x64 {C4657DCB-7B83-4608-A1D5-DF38D37C6FCF}.Release|ARM64.ActiveCfg = Release|ARM64 {C4657DCB-7B83-4608-A1D5-DF38D37C6FCF}.Release|ARM64.Build.0 = Release|ARM64 {C4657DCB-7B83-4608-A1D5-DF38D37C6FCF}.Release|Win32.ActiveCfg = Release|Win32 {C4657DCB-7B83-4608-A1D5-DF38D37C6FCF}.Release|Win32.Build.0 = Release|Win32 {C4657DCB-7B83-4608-A1D5-DF38D37C6FCF}.Release|x64.ActiveCfg = Release|x64 {C4657DCB-7B83-4608-A1D5-DF38D37C6FCF}.Release|x64.Build.0 = Release|x64 {C4657DCB-7B83-4608-A1D5-DF38D37C6FCF}.UnitTests-Debug|ARM64.ActiveCfg = Debug|ARM64 {C4657DCB-7B83-4608-A1D5-DF38D37C6FCF}.UnitTests-Debug|ARM64.Build.0 = Debug|ARM64 {C4657DCB-7B83-4608-A1D5-DF38D37C6FCF}.UnitTests-Debug|Win32.ActiveCfg = Debug|Win32 {C4657DCB-7B83-4608-A1D5-DF38D37C6FCF}.UnitTests-Debug|Win32.Build.0 = Debug|Win32 {C4657DCB-7B83-4608-A1D5-DF38D37C6FCF}.UnitTests-Debug|x64.ActiveCfg = Debug|x64 {C4657DCB-7B83-4608-A1D5-DF38D37C6FCF}.UnitTests-Debug|x64.Build.0 = Debug|x64 {C4657DCB-7B83-4608-A1D5-DF38D37C6FCF}.UnitTests-Release|ARM64.ActiveCfg = Release|ARM64 {C4657DCB-7B83-4608-A1D5-DF38D37C6FCF}.UnitTests-Release|ARM64.Build.0 = Release|ARM64 {C4657DCB-7B83-4608-A1D5-DF38D37C6FCF}.UnitTests-Release|Win32.ActiveCfg = Release|Win32 {C4657DCB-7B83-4608-A1D5-DF38D37C6FCF}.UnitTests-Release|Win32.Build.0 = Release|Win32 {C4657DCB-7B83-4608-A1D5-DF38D37C6FCF}.UnitTests-Release|x64.ActiveCfg = Release|x64 {C4657DCB-7B83-4608-A1D5-DF38D37C6FCF}.UnitTests-Release|x64.Build.0 = Release|x64 {54348158-1A8A-41AF-A76A-0AAAD0E43909}.Debug|ARM64.ActiveCfg = Debug|ARM64 {54348158-1A8A-41AF-A76A-0AAAD0E43909}.Debug|ARM64.Build.0 = Debug|ARM64 {54348158-1A8A-41AF-A76A-0AAAD0E43909}.Debug|Win32.ActiveCfg = Debug|Win32 {54348158-1A8A-41AF-A76A-0AAAD0E43909}.Debug|Win32.Build.0 = Debug|Win32 {54348158-1A8A-41AF-A76A-0AAAD0E43909}.Debug|x64.ActiveCfg = Debug|x64 {54348158-1A8A-41AF-A76A-0AAAD0E43909}.Debug|x64.Build.0 = Debug|x64 {54348158-1A8A-41AF-A76A-0AAAD0E43909}.Release|ARM64.ActiveCfg = Release|ARM64 {54348158-1A8A-41AF-A76A-0AAAD0E43909}.Release|ARM64.Build.0 = Release|ARM64 {54348158-1A8A-41AF-A76A-0AAAD0E43909}.Release|Win32.ActiveCfg = Release|Win32 {54348158-1A8A-41AF-A76A-0AAAD0E43909}.Release|Win32.Build.0 = Release|Win32 {54348158-1A8A-41AF-A76A-0AAAD0E43909}.Release|x64.ActiveCfg = Release|x64 {54348158-1A8A-41AF-A76A-0AAAD0E43909}.Release|x64.Build.0 = Release|x64 {54348158-1A8A-41AF-A76A-0AAAD0E43909}.UnitTests-Debug|ARM64.ActiveCfg = Debug|ARM64 {54348158-1A8A-41AF-A76A-0AAAD0E43909}.UnitTests-Debug|Win32.ActiveCfg = Debug|Win32 {54348158-1A8A-41AF-A76A-0AAAD0E43909}.UnitTests-Debug|x64.ActiveCfg = Debug|x64 {54348158-1A8A-41AF-A76A-0AAAD0E43909}.UnitTests-Release|ARM64.ActiveCfg = Release|ARM64 {54348158-1A8A-41AF-A76A-0AAAD0E43909}.UnitTests-Release|Win32.ActiveCfg = Release|Win32 {54348158-1A8A-41AF-A76A-0AAAD0E43909}.UnitTests-Release|x64.ActiveCfg = Release|x64 {73CFCB2E-19E6-4ADF-B825-D2FA87458F3C}.Debug|ARM64.ActiveCfg = Debug|ARM64 {73CFCB2E-19E6-4ADF-B825-D2FA87458F3C}.Debug|Win32.ActiveCfg = Debug|Win32 {73CFCB2E-19E6-4ADF-B825-D2FA87458F3C}.Debug|x64.ActiveCfg = Debug|x64 {73CFCB2E-19E6-4ADF-B825-D2FA87458F3C}.Release|ARM64.ActiveCfg = Release|ARM64 {73CFCB2E-19E6-4ADF-B825-D2FA87458F3C}.Release|Win32.ActiveCfg = Release|Win32 {73CFCB2E-19E6-4ADF-B825-D2FA87458F3C}.Release|x64.ActiveCfg = Release|x64 {73CFCB2E-19E6-4ADF-B825-D2FA87458F3C}.UnitTests-Debug|ARM64.ActiveCfg = Debug|ARM64 {73CFCB2E-19E6-4ADF-B825-D2FA87458F3C}.UnitTests-Debug|ARM64.Build.0 = Debug|ARM64 {73CFCB2E-19E6-4ADF-B825-D2FA87458F3C}.UnitTests-Debug|Win32.ActiveCfg = Debug|Win32 {73CFCB2E-19E6-4ADF-B825-D2FA87458F3C}.UnitTests-Debug|Win32.Build.0 = Debug|Win32 {73CFCB2E-19E6-4ADF-B825-D2FA87458F3C}.UnitTests-Debug|x64.ActiveCfg = Debug|x64 {73CFCB2E-19E6-4ADF-B825-D2FA87458F3C}.UnitTests-Debug|x64.Build.0 = Debug|x64 {73CFCB2E-19E6-4ADF-B825-D2FA87458F3C}.UnitTests-Release|ARM64.ActiveCfg = Release|ARM64 {73CFCB2E-19E6-4ADF-B825-D2FA87458F3C}.UnitTests-Release|ARM64.Build.0 = Release|ARM64 {73CFCB2E-19E6-4ADF-B825-D2FA87458F3C}.UnitTests-Release|Win32.ActiveCfg = Release|Win32 {73CFCB2E-19E6-4ADF-B825-D2FA87458F3C}.UnitTests-Release|Win32.Build.0 = Release|Win32 {73CFCB2E-19E6-4ADF-B825-D2FA87458F3C}.UnitTests-Release|x64.ActiveCfg = Release|x64 {73CFCB2E-19E6-4ADF-B825-D2FA87458F3C}.UnitTests-Release|x64.Build.0 = Release|x64 {48AECF41-79C7-4739-A80E-B4CD22CCE099}.Debug|ARM64.ActiveCfg = Debug|ARM64 {48AECF41-79C7-4739-A80E-B4CD22CCE099}.Debug|Win32.ActiveCfg = Debug|Win32 {48AECF41-79C7-4739-A80E-B4CD22CCE099}.Debug|x64.ActiveCfg = Debug|x64 {48AECF41-79C7-4739-A80E-B4CD22CCE099}.Release|ARM64.ActiveCfg = Release|ARM64 {48AECF41-79C7-4739-A80E-B4CD22CCE099}.Release|Win32.ActiveCfg = Release|Win32 {48AECF41-79C7-4739-A80E-B4CD22CCE099}.Release|x64.ActiveCfg = Release|x64 {48AECF41-79C7-4739-A80E-B4CD22CCE099}.UnitTests-Debug|ARM64.ActiveCfg = Debug|ARM64 {48AECF41-79C7-4739-A80E-B4CD22CCE099}.UnitTests-Debug|ARM64.Build.0 = Debug|ARM64 {48AECF41-79C7-4739-A80E-B4CD22CCE099}.UnitTests-Debug|Win32.ActiveCfg = Debug|Win32 {48AECF41-79C7-4739-A80E-B4CD22CCE099}.UnitTests-Debug|Win32.Build.0 = Debug|Win32 {48AECF41-79C7-4739-A80E-B4CD22CCE099}.UnitTests-Debug|x64.ActiveCfg = Debug|x64 {48AECF41-79C7-4739-A80E-B4CD22CCE099}.UnitTests-Debug|x64.Build.0 = Debug|x64 {48AECF41-79C7-4739-A80E-B4CD22CCE099}.UnitTests-Release|ARM64.ActiveCfg = Release|ARM64 {48AECF41-79C7-4739-A80E-B4CD22CCE099}.UnitTests-Release|ARM64.Build.0 = Release|ARM64 {48AECF41-79C7-4739-A80E-B4CD22CCE099}.UnitTests-Release|Win32.ActiveCfg = Release|Win32 {48AECF41-79C7-4739-A80E-B4CD22CCE099}.UnitTests-Release|Win32.Build.0 = Release|Win32 {48AECF41-79C7-4739-A80E-B4CD22CCE099}.UnitTests-Release|x64.ActiveCfg = Release|x64 {48AECF41-79C7-4739-A80E-B4CD22CCE099}.UnitTests-Release|x64.Build.0 = Release|x64 {3C50AA0B-8B10-4BAD-85F8-953861327D0A}.Debug|ARM64.ActiveCfg = Debug|ARM64 {3C50AA0B-8B10-4BAD-85F8-953861327D0A}.Debug|Win32.ActiveCfg = Debug|Win32 {3C50AA0B-8B10-4BAD-85F8-953861327D0A}.Debug|x64.ActiveCfg = Debug|x64 {3C50AA0B-8B10-4BAD-85F8-953861327D0A}.Release|ARM64.ActiveCfg = Release|ARM64 {3C50AA0B-8B10-4BAD-85F8-953861327D0A}.Release|Win32.ActiveCfg = Release|Win32 {3C50AA0B-8B10-4BAD-85F8-953861327D0A}.Release|x64.ActiveCfg = Release|x64 {3C50AA0B-8B10-4BAD-85F8-953861327D0A}.UnitTests-Debug|ARM64.ActiveCfg = Debug|ARM64 {3C50AA0B-8B10-4BAD-85F8-953861327D0A}.UnitTests-Debug|ARM64.Build.0 = Debug|ARM64 {3C50AA0B-8B10-4BAD-85F8-953861327D0A}.UnitTests-Debug|Win32.ActiveCfg = Debug|Win32 {3C50AA0B-8B10-4BAD-85F8-953861327D0A}.UnitTests-Debug|Win32.Build.0 = Debug|Win32 {3C50AA0B-8B10-4BAD-85F8-953861327D0A}.UnitTests-Debug|x64.ActiveCfg = Debug|x64 {3C50AA0B-8B10-4BAD-85F8-953861327D0A}.UnitTests-Debug|x64.Build.0 = Debug|x64 {3C50AA0B-8B10-4BAD-85F8-953861327D0A}.UnitTests-Release|ARM64.ActiveCfg = Release|ARM64 {3C50AA0B-8B10-4BAD-85F8-953861327D0A}.UnitTests-Release|ARM64.Build.0 = Release|ARM64 {3C50AA0B-8B10-4BAD-85F8-953861327D0A}.UnitTests-Release|Win32.ActiveCfg = Release|Win32 {3C50AA0B-8B10-4BAD-85F8-953861327D0A}.UnitTests-Release|Win32.Build.0 = Release|Win32 {3C50AA0B-8B10-4BAD-85F8-953861327D0A}.UnitTests-Release|x64.ActiveCfg = Release|x64 {3C50AA0B-8B10-4BAD-85F8-953861327D0A}.UnitTests-Release|x64.Build.0 = Release|x64 {263DECCF-470B-4BD0-B21A-D349B563CF6C}.Debug|ARM64.ActiveCfg = Debug|ARM64 {263DECCF-470B-4BD0-B21A-D349B563CF6C}.Debug|Win32.ActiveCfg = Debug|Win32 {263DECCF-470B-4BD0-B21A-D349B563CF6C}.Debug|x64.ActiveCfg = Debug|x64 {263DECCF-470B-4BD0-B21A-D349B563CF6C}.Release|ARM64.ActiveCfg = Release|ARM64 {263DECCF-470B-4BD0-B21A-D349B563CF6C}.Release|Win32.ActiveCfg = Release|Win32 {263DECCF-470B-4BD0-B21A-D349B563CF6C}.Release|x64.ActiveCfg = Release|x64 {263DECCF-470B-4BD0-B21A-D349B563CF6C}.UnitTests-Debug|ARM64.ActiveCfg = Debug|ARM64 {263DECCF-470B-4BD0-B21A-D349B563CF6C}.UnitTests-Debug|ARM64.Build.0 = Debug|ARM64 {263DECCF-470B-4BD0-B21A-D349B563CF6C}.UnitTests-Debug|Win32.ActiveCfg = Debug|Win32 {263DECCF-470B-4BD0-B21A-D349B563CF6C}.UnitTests-Debug|Win32.Build.0 = Debug|Win32 {263DECCF-470B-4BD0-B21A-D349B563CF6C}.UnitTests-Debug|x64.ActiveCfg = Debug|x64 {263DECCF-470B-4BD0-B21A-D349B563CF6C}.UnitTests-Debug|x64.Build.0 = Debug|x64 {263DECCF-470B-4BD0-B21A-D349B563CF6C}.UnitTests-Release|ARM64.ActiveCfg = Release|ARM64 {263DECCF-470B-4BD0-B21A-D349B563CF6C}.UnitTests-Release|ARM64.Build.0 = Release|ARM64 {263DECCF-470B-4BD0-B21A-D349B563CF6C}.UnitTests-Release|Win32.ActiveCfg = Release|Win32 {263DECCF-470B-4BD0-B21A-D349B563CF6C}.UnitTests-Release|Win32.Build.0 = Release|Win32 {263DECCF-470B-4BD0-B21A-D349B563CF6C}.UnitTests-Release|x64.ActiveCfg = Release|x64 {263DECCF-470B-4BD0-B21A-D349B563CF6C}.UnitTests-Release|x64.Build.0 = Release|x64 {4F6ACCCE-6D7F-4C47-B57B-8B017AB383E1}.Debug|ARM64.ActiveCfg = Debug|ARM64 {4F6ACCCE-6D7F-4C47-B57B-8B017AB383E1}.Debug|Win32.ActiveCfg = Debug|Win32 {4F6ACCCE-6D7F-4C47-B57B-8B017AB383E1}.Debug|x64.ActiveCfg = Debug|x64 {4F6ACCCE-6D7F-4C47-B57B-8B017AB383E1}.Release|ARM64.ActiveCfg = Release|ARM64 {4F6ACCCE-6D7F-4C47-B57B-8B017AB383E1}.Release|Win32.ActiveCfg = Release|Win32 {4F6ACCCE-6D7F-4C47-B57B-8B017AB383E1}.Release|x64.ActiveCfg = Release|x64 {4F6ACCCE-6D7F-4C47-B57B-8B017AB383E1}.UnitTests-Debug|ARM64.ActiveCfg = Debug|ARM64 {4F6ACCCE-6D7F-4C47-B57B-8B017AB383E1}.UnitTests-Debug|ARM64.Build.0 = Debug|ARM64 {4F6ACCCE-6D7F-4C47-B57B-8B017AB383E1}.UnitTests-Debug|Win32.ActiveCfg = Debug|Win32 {4F6ACCCE-6D7F-4C47-B57B-8B017AB383E1}.UnitTests-Debug|Win32.Build.0 = Debug|Win32 {4F6ACCCE-6D7F-4C47-B57B-8B017AB383E1}.UnitTests-Debug|x64.ActiveCfg = Debug|x64 {4F6ACCCE-6D7F-4C47-B57B-8B017AB383E1}.UnitTests-Debug|x64.Build.0 = Debug|x64 {4F6ACCCE-6D7F-4C47-B57B-8B017AB383E1}.UnitTests-Release|ARM64.ActiveCfg = Release|ARM64 {4F6ACCCE-6D7F-4C47-B57B-8B017AB383E1}.UnitTests-Release|ARM64.Build.0 = Release|ARM64 {4F6ACCCE-6D7F-4C47-B57B-8B017AB383E1}.UnitTests-Release|Win32.ActiveCfg = Release|Win32 {4F6ACCCE-6D7F-4C47-B57B-8B017AB383E1}.UnitTests-Release|Win32.Build.0 = Release|Win32 {4F6ACCCE-6D7F-4C47-B57B-8B017AB383E1}.UnitTests-Release|x64.ActiveCfg = Release|x64 {4F6ACCCE-6D7F-4C47-B57B-8B017AB383E1}.UnitTests-Release|x64.Build.0 = Release|x64 {757A04A3-9F41-42E2-813C-0774D3835AFB}.Debug|ARM64.ActiveCfg = Debug|ARM64 {757A04A3-9F41-42E2-813C-0774D3835AFB}.Debug|Win32.ActiveCfg = Debug|Win32 {757A04A3-9F41-42E2-813C-0774D3835AFB}.Debug|x64.ActiveCfg = Debug|x64 {757A04A3-9F41-42E2-813C-0774D3835AFB}.Release|ARM64.ActiveCfg = Release|ARM64 {757A04A3-9F41-42E2-813C-0774D3835AFB}.Release|Win32.ActiveCfg = Release|Win32 {757A04A3-9F41-42E2-813C-0774D3835AFB}.Release|x64.ActiveCfg = Release|x64 {757A04A3-9F41-42E2-813C-0774D3835AFB}.UnitTests-Debug|ARM64.ActiveCfg = Debug|ARM64 {757A04A3-9F41-42E2-813C-0774D3835AFB}.UnitTests-Debug|ARM64.Build.0 = Debug|ARM64 {757A04A3-9F41-42E2-813C-0774D3835AFB}.UnitTests-Debug|Win32.ActiveCfg = Debug|Win32 {757A04A3-9F41-42E2-813C-0774D3835AFB}.UnitTests-Debug|Win32.Build.0 = Debug|Win32 {757A04A3-9F41-42E2-813C-0774D3835AFB}.UnitTests-Debug|x64.ActiveCfg = Debug|x64 {757A04A3-9F41-42E2-813C-0774D3835AFB}.UnitTests-Debug|x64.Build.0 = Debug|x64 {757A04A3-9F41-42E2-813C-0774D3835AFB}.UnitTests-Release|ARM64.ActiveCfg = Release|ARM64 {757A04A3-9F41-42E2-813C-0774D3835AFB}.UnitTests-Release|ARM64.Build.0 = Release|ARM64 {757A04A3-9F41-42E2-813C-0774D3835AFB}.UnitTests-Release|Win32.ActiveCfg = Release|Win32 {757A04A3-9F41-42E2-813C-0774D3835AFB}.UnitTests-Release|Win32.Build.0 = Release|Win32 {757A04A3-9F41-42E2-813C-0774D3835AFB}.UnitTests-Release|x64.ActiveCfg = Release|x64 {757A04A3-9F41-42E2-813C-0774D3835AFB}.UnitTests-Release|x64.Build.0 = Release|x64 {6612248A-AB2C-400B-A879-89CA63DBFCD1}.Debug|ARM64.ActiveCfg = Debug|ARM64 {6612248A-AB2C-400B-A879-89CA63DBFCD1}.Debug|Win32.ActiveCfg = Debug|Win32 {6612248A-AB2C-400B-A879-89CA63DBFCD1}.Debug|x64.ActiveCfg = Debug|x64 {6612248A-AB2C-400B-A879-89CA63DBFCD1}.Release|ARM64.ActiveCfg = Release|ARM64 {6612248A-AB2C-400B-A879-89CA63DBFCD1}.Release|Win32.ActiveCfg = Release|Win32 {6612248A-AB2C-400B-A879-89CA63DBFCD1}.Release|x64.ActiveCfg = Release|x64 {6612248A-AB2C-400B-A879-89CA63DBFCD1}.UnitTests-Debug|ARM64.ActiveCfg = Debug|ARM64 {6612248A-AB2C-400B-A879-89CA63DBFCD1}.UnitTests-Debug|ARM64.Build.0 = Debug|ARM64 {6612248A-AB2C-400B-A879-89CA63DBFCD1}.UnitTests-Debug|Win32.ActiveCfg = Debug|Win32 {6612248A-AB2C-400B-A879-89CA63DBFCD1}.UnitTests-Debug|Win32.Build.0 = Debug|Win32 {6612248A-AB2C-400B-A879-89CA63DBFCD1}.UnitTests-Debug|x64.ActiveCfg = Debug|x64 {6612248A-AB2C-400B-A879-89CA63DBFCD1}.UnitTests-Debug|x64.Build.0 = Debug|x64 {6612248A-AB2C-400B-A879-89CA63DBFCD1}.UnitTests-Release|ARM64.ActiveCfg = Release|ARM64 {6612248A-AB2C-400B-A879-89CA63DBFCD1}.UnitTests-Release|ARM64.Build.0 = Release|ARM64 {6612248A-AB2C-400B-A879-89CA63DBFCD1}.UnitTests-Release|Win32.ActiveCfg = Release|Win32 {6612248A-AB2C-400B-A879-89CA63DBFCD1}.UnitTests-Release|Win32.Build.0 = Release|Win32 {6612248A-AB2C-400B-A879-89CA63DBFCD1}.UnitTests-Release|x64.ActiveCfg = Release|x64 {6612248A-AB2C-400B-A879-89CA63DBFCD1}.UnitTests-Release|x64.Build.0 = Release|x64 {BF86226A-49BA-401C-B6E1-DC52A7D7965D}.Debug|ARM64.ActiveCfg = Debug|ARM64 {BF86226A-49BA-401C-B6E1-DC52A7D7965D}.Debug|Win32.ActiveCfg = Debug|Win32 {BF86226A-49BA-401C-B6E1-DC52A7D7965D}.Debug|x64.ActiveCfg = Debug|x64 {BF86226A-49BA-401C-B6E1-DC52A7D7965D}.Release|ARM64.ActiveCfg = Release|ARM64 {BF86226A-49BA-401C-B6E1-DC52A7D7965D}.Release|Win32.ActiveCfg = Release|Win32 {BF86226A-49BA-401C-B6E1-DC52A7D7965D}.Release|x64.ActiveCfg = Release|x64 {BF86226A-49BA-401C-B6E1-DC52A7D7965D}.UnitTests-Debug|ARM64.ActiveCfg = Debug|ARM64 {BF86226A-49BA-401C-B6E1-DC52A7D7965D}.UnitTests-Debug|ARM64.Build.0 = Debug|ARM64 {BF86226A-49BA-401C-B6E1-DC52A7D7965D}.UnitTests-Debug|Win32.ActiveCfg = Debug|Win32 {BF86226A-49BA-401C-B6E1-DC52A7D7965D}.UnitTests-Debug|Win32.Build.0 = Debug|Win32 {BF86226A-49BA-401C-B6E1-DC52A7D7965D}.UnitTests-Debug|x64.ActiveCfg = Debug|x64 {BF86226A-49BA-401C-B6E1-DC52A7D7965D}.UnitTests-Debug|x64.Build.0 = Debug|x64 {BF86226A-49BA-401C-B6E1-DC52A7D7965D}.UnitTests-Release|ARM64.ActiveCfg = Release|ARM64 {BF86226A-49BA-401C-B6E1-DC52A7D7965D}.UnitTests-Release|ARM64.Build.0 = Release|ARM64 {BF86226A-49BA-401C-B6E1-DC52A7D7965D}.UnitTests-Release|Win32.ActiveCfg = Release|Win32 {BF86226A-49BA-401C-B6E1-DC52A7D7965D}.UnitTests-Release|Win32.Build.0 = Release|Win32 {BF86226A-49BA-401C-B6E1-DC52A7D7965D}.UnitTests-Release|x64.ActiveCfg = Release|x64 {BF86226A-49BA-401C-B6E1-DC52A7D7965D}.UnitTests-Release|x64.Build.0 = Release|x64 {E2E11769-76C3-40BD-BF1C-A9198481BD6E}.Debug|ARM64.ActiveCfg = Debug|ARM64 {E2E11769-76C3-40BD-BF1C-A9198481BD6E}.Debug|Win32.ActiveCfg = Debug|Win32 {E2E11769-76C3-40BD-BF1C-A9198481BD6E}.Debug|x64.ActiveCfg = Debug|x64 {E2E11769-76C3-40BD-BF1C-A9198481BD6E}.Release|ARM64.ActiveCfg = Release|ARM64 {E2E11769-76C3-40BD-BF1C-A9198481BD6E}.Release|Win32.ActiveCfg = Release|Win32 {E2E11769-76C3-40BD-BF1C-A9198481BD6E}.Release|x64.ActiveCfg = Release|x64 {E2E11769-76C3-40BD-BF1C-A9198481BD6E}.UnitTests-Debug|ARM64.ActiveCfg = Debug|ARM64 {E2E11769-76C3-40BD-BF1C-A9198481BD6E}.UnitTests-Debug|ARM64.Build.0 = Debug|ARM64 {E2E11769-76C3-40BD-BF1C-A9198481BD6E}.UnitTests-Debug|Win32.ActiveCfg = Debug|Win32 {E2E11769-76C3-40BD-BF1C-A9198481BD6E}.UnitTests-Debug|Win32.Build.0 = Debug|Win32 {E2E11769-76C3-40BD-BF1C-A9198481BD6E}.UnitTests-Debug|x64.ActiveCfg = Debug|x64 {E2E11769-76C3-40BD-BF1C-A9198481BD6E}.UnitTests-Debug|x64.Build.0 = Debug|x64 {E2E11769-76C3-40BD-BF1C-A9198481BD6E}.UnitTests-Release|ARM64.ActiveCfg = Release|ARM64 {E2E11769-76C3-40BD-BF1C-A9198481BD6E}.UnitTests-Release|ARM64.Build.0 = Release|ARM64 {E2E11769-76C3-40BD-BF1C-A9198481BD6E}.UnitTests-Release|Win32.ActiveCfg = Release|Win32 {E2E11769-76C3-40BD-BF1C-A9198481BD6E}.UnitTests-Release|Win32.Build.0 = Release|Win32 {E2E11769-76C3-40BD-BF1C-A9198481BD6E}.UnitTests-Release|x64.ActiveCfg = Release|x64 {E2E11769-76C3-40BD-BF1C-A9198481BD6E}.UnitTests-Release|x64.Build.0 = Release|x64 {4E77EA22-B1FA-4FC0-8E13-74953DE245D7}.Debug|ARM64.ActiveCfg = Debug|ARM64 {4E77EA22-B1FA-4FC0-8E13-74953DE245D7}.Debug|Win32.ActiveCfg = Debug|Win32 {4E77EA22-B1FA-4FC0-8E13-74953DE245D7}.Debug|x64.ActiveCfg = Debug|x64 {4E77EA22-B1FA-4FC0-8E13-74953DE245D7}.Release|ARM64.ActiveCfg = Release|ARM64 {4E77EA22-B1FA-4FC0-8E13-74953DE245D7}.Release|Win32.ActiveCfg = Release|Win32 {4E77EA22-B1FA-4FC0-8E13-74953DE245D7}.Release|x64.ActiveCfg = Release|x64 {4E77EA22-B1FA-4FC0-8E13-74953DE245D7}.UnitTests-Debug|ARM64.ActiveCfg = Debug|ARM64 {4E77EA22-B1FA-4FC0-8E13-74953DE245D7}.UnitTests-Debug|ARM64.Build.0 = Debug|ARM64 {4E77EA22-B1FA-4FC0-8E13-74953DE245D7}.UnitTests-Debug|Win32.ActiveCfg = Debug|Win32 {4E77EA22-B1FA-4FC0-8E13-74953DE245D7}.UnitTests-Debug|Win32.Build.0 = Debug|Win32 {4E77EA22-B1FA-4FC0-8E13-74953DE245D7}.UnitTests-Debug|x64.ActiveCfg = Debug|x64 {4E77EA22-B1FA-4FC0-8E13-74953DE245D7}.UnitTests-Debug|x64.Build.0 = Debug|x64 {4E77EA22-B1FA-4FC0-8E13-74953DE245D7}.UnitTests-Release|ARM64.ActiveCfg = Release|ARM64 {4E77EA22-B1FA-4FC0-8E13-74953DE245D7}.UnitTests-Release|ARM64.Build.0 = Release|ARM64 {4E77EA22-B1FA-4FC0-8E13-74953DE245D7}.UnitTests-Release|Win32.ActiveCfg = Release|Win32 {4E77EA22-B1FA-4FC0-8E13-74953DE245D7}.UnitTests-Release|Win32.Build.0 = Release|Win32 {4E77EA22-B1FA-4FC0-8E13-74953DE245D7}.UnitTests-Release|x64.ActiveCfg = Release|x64 {4E77EA22-B1FA-4FC0-8E13-74953DE245D7}.UnitTests-Release|x64.Build.0 = Release|x64 {862B6ABA-D1C6-4DB8-A893-747CC8B5D0F2}.Debug|ARM64.ActiveCfg = Debug|ARM64 {862B6ABA-D1C6-4DB8-A893-747CC8B5D0F2}.Debug|Win32.ActiveCfg = Debug|Win32 {862B6ABA-D1C6-4DB8-A893-747CC8B5D0F2}.Debug|x64.ActiveCfg = Debug|x64 {862B6ABA-D1C6-4DB8-A893-747CC8B5D0F2}.Release|ARM64.ActiveCfg = Release|ARM64 {862B6ABA-D1C6-4DB8-A893-747CC8B5D0F2}.Release|Win32.ActiveCfg = Release|Win32 {862B6ABA-D1C6-4DB8-A893-747CC8B5D0F2}.Release|x64.ActiveCfg = Release|x64 {862B6ABA-D1C6-4DB8-A893-747CC8B5D0F2}.UnitTests-Debug|ARM64.ActiveCfg = Debug|ARM64 {862B6ABA-D1C6-4DB8-A893-747CC8B5D0F2}.UnitTests-Debug|ARM64.Build.0 = Debug|ARM64 {862B6ABA-D1C6-4DB8-A893-747CC8B5D0F2}.UnitTests-Debug|Win32.ActiveCfg = Debug|Win32 {862B6ABA-D1C6-4DB8-A893-747CC8B5D0F2}.UnitTests-Debug|Win32.Build.0 = Debug|Win32 {862B6ABA-D1C6-4DB8-A893-747CC8B5D0F2}.UnitTests-Debug|x64.ActiveCfg = Debug|x64 {862B6ABA-D1C6-4DB8-A893-747CC8B5D0F2}.UnitTests-Debug|x64.Build.0 = Debug|x64 {862B6ABA-D1C6-4DB8-A893-747CC8B5D0F2}.UnitTests-Release|ARM64.ActiveCfg = Release|ARM64 {862B6ABA-D1C6-4DB8-A893-747CC8B5D0F2}.UnitTests-Release|ARM64.Build.0 = Release|ARM64 {862B6ABA-D1C6-4DB8-A893-747CC8B5D0F2}.UnitTests-Release|Win32.ActiveCfg = Release|Win32 {862B6ABA-D1C6-4DB8-A893-747CC8B5D0F2}.UnitTests-Release|Win32.Build.0 = Release|Win32 {862B6ABA-D1C6-4DB8-A893-747CC8B5D0F2}.UnitTests-Release|x64.ActiveCfg = Release|x64 {862B6ABA-D1C6-4DB8-A893-747CC8B5D0F2}.UnitTests-Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution {73CFCB2E-19E6-4ADF-B825-D2FA87458F3C} = {09795456-9DA5-4253-AE04-DD2AB464238A} {48AECF41-79C7-4739-A80E-B4CD22CCE099} = {09795456-9DA5-4253-AE04-DD2AB464238A} {3C50AA0B-8B10-4BAD-85F8-953861327D0A} = {09795456-9DA5-4253-AE04-DD2AB464238A} {263DECCF-470B-4BD0-B21A-D349B563CF6C} = {09795456-9DA5-4253-AE04-DD2AB464238A} {4F6ACCCE-6D7F-4C47-B57B-8B017AB383E1} = {09795456-9DA5-4253-AE04-DD2AB464238A} {757A04A3-9F41-42E2-813C-0774D3835AFB} = {09795456-9DA5-4253-AE04-DD2AB464238A} {6612248A-AB2C-400B-A879-89CA63DBFCD1} = {09795456-9DA5-4253-AE04-DD2AB464238A} {BF86226A-49BA-401C-B6E1-DC52A7D7965D} = {09795456-9DA5-4253-AE04-DD2AB464238A} {E2E11769-76C3-40BD-BF1C-A9198481BD6E} = {09795456-9DA5-4253-AE04-DD2AB464238A} {4E77EA22-B1FA-4FC0-8E13-74953DE245D7} = {09795456-9DA5-4253-AE04-DD2AB464238A} {862B6ABA-D1C6-4DB8-A893-747CC8B5D0F2} = {09795456-9DA5-4253-AE04-DD2AB464238A} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {06E89BF8-F199-48B1-94CB-D7BB1B23DDD9} EndGlobalSection EndGlobal par2cmdline-turbo-1.5.0/par2cmdline.vcxproj000066400000000000000000000063151524160147200206720ustar00rootroot00000000000000 Debug ARM64 Debug Win32 Debug x64 Release ARM64 Release Win32 Release x64 {54348158-1a8a-41af-a76a-0aaad0e43909} Win32Proj 10.0 Application Unicode v145 <_ProjectFileVersion>10.0.30319.1 par2 $(OutDir)par2.exe $(OutDir)par2cmdline.pdb Console {d0a94f83-495e-4fb2-ac33-9a3ec2cc263b} par2cmdline-turbo-1.5.0/par2cmdline.vcxproj.filters000066400000000000000000000032751524160147200223430ustar00rootroot00000000000000 {4FC737F1-C7A5-4376-A066-2A32D752A2FF} cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx {93995380-89BD-4b04-88EB-625FBE52EBFB} h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms Source Files Source Files Header Files par2cmdline-turbo-1.5.0/parpar/000077500000000000000000000000001524160147200163355ustar00rootroot00000000000000par2cmdline-turbo-1.5.0/parpar/gf16.vcxproj000066400000000000000000000532151524160147200205230ustar00rootroot00000000000000 Debug ARM Debug ARM64 Debug Win32 Release ARM Release ARM64 Release Win32 Debug x64 Release x64 {2A658DC2-A6EA-41D1-AD78-2D02675FAB14} parpar_gf16 10.0 StaticLibrary true v143 Unicode StaticLibrary false v143 true Unicode true gf16\opencl-include;$(IncludePath) false gf16\opencl-include;$(IncludePath) Level3 true _DEBUG;_CONSOLE;PARPAR_INVERT_SUPPORT;PARPAR_SLIM_GF16;%(PreprocessorDefinitions) MultiThreadedDebug true true 4267;%(DisableSpecificWarnings) Console true Level3 true true false NDEBUG;_CONSOLE;PARPAR_INVERT_SUPPORT;PARPAR_SLIM_GF16;%(PreprocessorDefinitions) MultiThreaded true false 4267;%(DisableSpecificWarnings) Console true true true AdvancedVectorExtensions512 AdvancedVectorExtensions512 -mavx512bw -mavx512vl -mgfni %(AdditionalOptions) -mavx512bw -mavx512vl -mgfni %(AdditionalOptions) AdvancedVectorExtensions2 AdvancedVectorExtensions2 -mavx2 -mgfni %(AdditionalOptions) -mavx2 -mgfni %(AdditionalOptions) StreamingSIMDExtensions2 -mssse3 -mgfni %(AdditionalOptions) -mssse3 -mgfni %(AdditionalOptions) AdvancedVectorExtensions512 AdvancedVectorExtensions512 -mavx512vl -mavx512bmm %(AdditionalOptions) -mavx512vl -mavx512bmm %(AdditionalOptions) StreamingSIMDExtensions2 AdvancedVectorExtensions AdvancedVectorExtensions AdvancedVectorExtensions2 AdvancedVectorExtensions2 AdvancedVectorExtensions512 AdvancedVectorExtensions512 -mavx512bw -mavx512vl %(AdditionalOptions) -mavx512bw -mavx512vl %(AdditionalOptions) AdvancedVectorExtensions512 AdvancedVectorExtensions512 -mavx512bw -mavx512vl -mavx512vbmi %(AdditionalOptions) -mavx512bw -mavx512vl -mavx512vbmi %(AdditionalOptions) -mfpu=neon %(AdditionalOptions) -march=armv8-a+sve %(AdditionalOptions) -march=armv8-a+sve2 %(AdditionalOptions) -march=armv8-a+sve2 %(AdditionalOptions) -march=armv8-a+sve2 %(AdditionalOptions) -mfpu=neon %(AdditionalOptions) -march=armv8.2-a+sha3 %(AdditionalOptions) -march=armv8-a+sve2 %(AdditionalOptions) StreamingSIMDExtensions2 -mssse3 %(AdditionalOptions) -mssse3 %(AdditionalOptions) AdvancedVectorExtensions2 AdvancedVectorExtensions2 AdvancedVectorExtensions512 AdvancedVectorExtensions512 -mavx512bw -mavx512vl %(AdditionalOptions) -mavx512bw -mavx512vl %(AdditionalOptions) StreamingSIMDExtensions2 StreamingSIMDExtensions2 AdvancedVectorExtensions2 AdvancedVectorExtensions2 AdvancedVectorExtensions512 AdvancedVectorExtensions512 -mavx512bw -mavx512vl %(AdditionalOptions) -mavx512bw -mavx512vl %(AdditionalOptions) -mfpu=neon %(AdditionalOptions) -march=armv8-a+sve %(AdditionalOptions) -march=armv8-a+sve2 %(AdditionalOptions) StreamingSIMDExtensions2 AdvancedVectorExtensions2 AdvancedVectorExtensions2 AdvancedVectorExtensions512 AdvancedVectorExtensions512 -mavx512bw -mavx512vl %(AdditionalOptions) -mavx512bw -mavx512vl %(AdditionalOptions) -mfpu=neon %(AdditionalOptions) -march=armv8-a+sve %(AdditionalOptions) StreamingSIMDExtensions2 -mpclmul %(AdditionalOptions) -mpclmul %(AdditionalOptions) AdvancedVectorExtensions2 AdvancedVectorExtensions2 -mavx2 -mpclmul %(AdditionalOptions) -mavx2 -mpclmul %(AdditionalOptions) AdvancedVectorExtensions2 AdvancedVectorExtensions2 -mavx2 -mvpclmulqdq %(AdditionalOptions) -mavx2 -mvpclmulqdq %(AdditionalOptions) AdvancedVectorExtensions2 AdvancedVectorExtensions2 -mavx2 -mvpclmulqdq -mgfni %(AdditionalOptions) -mavx2 -mvpclmulqdq -mgfni %(AdditionalOptions) -mfpu=neon %(AdditionalOptions) -march=armv8-a+sve2 %(AdditionalOptions) -mavx2 -mgfni %(AdditionalOptions) Document true true par2cmdline-turbo-1.5.0/parpar/gf16/000077500000000000000000000000001524160147200171005ustar00rootroot00000000000000par2cmdline-turbo-1.5.0/parpar/gf16/controller.cpp000066400000000000000000000355311524160147200217760ustar00rootroot00000000000000#include "controller.h" #include "../src/platform.h" #include "gfmat_coeff.h" #include #include PAR2Proc::PAR2Proc() IF_LIBUV(: endSignalled(false)) { gfmat_init(); } bool PAR2Proc::init(size_t sliceSize, const std::vector& _backends IF_LIBUV(, const PAR2ProcCompleteCb& _progressCb)) { #ifdef USE_LIBUV progressCb = _progressCb; finishCb = nullptr; #endif hasAdded = false; currentSliceSize = sliceSize; // TODO: better distribution backends.resize(_backends.size()); for(unsigned i=0; i<_backends.size(); i++) { size_t size = _backends[i].size; auto& backend = backends[i]; backend.currentSliceSize = size; backend.allocSliceSize = size; backend.currentOffset = _backends[i].offset; backend.be = _backends[i].be; backend.be->setSliceSize(size); #ifdef USE_LIBUV backend.be->setProgressCb([this](int numInputs) { this->onBackendProcess(numInputs); }); #endif } return checkBackendAllocation(); } bool PAR2Proc::checkBackendAllocation() { // check ranges of backends (could maybe make this more optimal with a heap, but I expect few devices, so good enough for now) // determine if we're covering the full slice, and whether there are overlaps (overlap = dynamic scheduling) size_t start = backends[0].currentOffset, end = backends[0].currentOffset+backends[0].currentSliceSize; bool hasOverlap = false; std::vector beChecked(backends.size()); int beUnchecked = backends.size()-1; beChecked[0] = true; while(beUnchecked) { bool beFound = false; for(unsigned i=1; i= start) { if(currentEnd > start) hasOverlap = true; start = backend.currentOffset; if(currentEnd > end) end = currentEnd; } else if(currentEnd >= end && backend.currentOffset <= end) { if(backend.currentOffset < end) hasOverlap = true; end = currentEnd; if(backend.currentOffset < start) start = backend.currentOffset; // this shouldn't be possible I think } else if(backend.currentOffset > start && currentEnd < end) { hasOverlap = true; } else continue; // found a connecting backend beChecked[i] = true; beUnchecked--; beFound = true; // ensure alignment to 16-bit words if(backend.currentOffset & 1) return false; if((backend.currentSliceSize & 1) && backend.currentOffset+backend.currentSliceSize != currentSliceSize) return false; } if(!beFound) return false; } if(hasOverlap) return false; // TODO: eventually support overlapping return (start == 0 && end == currentSliceSize); // fail if backends don't cover the entire slice } // this just reduces the size without resizing backends; TODO: this should be removed bool PAR2Proc::setCurrentSliceSize(size_t newSliceSize) { if(backends.size() == 1) { // one backend only - don't need to worry about distributing the slice currentSliceSize = newSliceSize; backends[0].currentSliceSize = currentSliceSize; backends[0].allocSliceSize = (std::max)(currentSliceSize, backends[0].allocSliceSize); assert(backends[0].currentOffset == 0); return backends[0].be->setCurrentSliceSize(currentSliceSize); } if(newSliceSize > currentSliceSize) { // check if requested amount exceeds initial allocation size_t totalAlloc = 0; for(const auto& backend : backends) totalAlloc += backend.allocSliceSize; if(newSliceSize > totalAlloc) return false; // backends support upsizing, but we don't know how to reallocate the split, so don't allow it for now } currentSliceSize = newSliceSize; bool success = true; size_t pos = 0; for(auto& backend : backends) { backend.currentSliceSize = (std::min)(currentSliceSize-pos, backend.allocSliceSize); backend.currentOffset = pos; success = success && backend.be->setCurrentSliceSize(backend.currentSliceSize); pos += backend.currentSliceSize; } return success; } bool PAR2Proc::setCurrentSliceSize(size_t newSliceSize, const std::vector>& sizeAlloc) { if(backends.size() != sizeAlloc.size()) return false; currentSliceSize = newSliceSize; bool success = true; const auto* alloc = sizeAlloc.data(); for(auto& backend : backends) { backend.currentSliceSize = alloc->second; backend.currentOffset = alloc->first; success = success && backend.be->setCurrentSliceSize(backend.currentSliceSize); alloc++; } return checkBackendAllocation(); } bool PAR2Proc::setRecoverySlices(unsigned numSlices, const uint16_t* exponents) { // TODO: consider throwing if numSlices > previously set, or some mechanism to resize buffer // TODO: may eventually consider splitting by recovery, but for now, just pass through // - though we may still need a way to allocate different recovery to different backends (don't want to split slices to finely) bool success = true; for(auto& backend : backends) success = success && backend.be->setRecoverySlices(numSlices, exponents); return success; } PAR2ProcBackendAddResult PAR2Proc::canAdd() const { bool hasEmpty = false, hasBusy = false, hasFull = false; for(const auto& backend : backends) { auto state = backend.be->canAdd(); if(state == PROC_ADD_OK) hasEmpty = true; if(state == PROC_ADD_OK_BUSY) hasBusy = true; if(state == PROC_ADD_FULL) hasFull = true; } if(!hasEmpty && !hasBusy && hasFull) return PROC_ADD_ALL_FULL; if(hasEmpty && !hasBusy && !hasFull) return PROC_ADD_OK; if(hasFull) return PROC_ADD_FULL; return PROC_ADD_OK_BUSY; } #ifndef USE_LIBUV void PAR2Proc::waitForAdd() { for(auto& backend : backends) backend.be->waitForAdd(); } #endif #ifdef USE_LIBUV template bool PAR2Proc::_addInput(const void* buffer, size_t size, uint16_t inputRef, T inputNumOrCoeffs, bool flush, const PAR2ProcPlainCb& cb) { IF_LIBUV(assert(!endSignalled)); auto cbRef = addCbRefs.find(inputRef); if(cbRef != addCbRefs.end()) { cbRef->second.cb = cb; } else { cbRef = addCbRefs.emplace(std::make_pair(inputRef, PAR2ProcAddCbRef{ (int)backends.size(), cb, [this, inputRef]() { auto itRef = addCbRefs.find(inputRef); auto& ref = itRef->second; if(--ref.backendsActive == 0) { auto cb = ref.cb; addCbRefs.erase(itRef); if(cb) cb(); } } })).first; for(auto& backend : backends) { size_t amount = (std::min)(size-backend.currentOffset, backend.currentSliceSize); if(backend.currentOffset >= size || amount == 0) cbRef->second.backendsActive--; } } // if the last add was unsuccessful, we assume that failed add is now being resent // TODO: consider some better system - e.g. it may be worthwhile allowing accepting backends to continue to get new buffers? or perhaps use this as an opportunity to size up the size? bool success = true; for(auto& backend : backends) { if(backend.currentOffset >= size) continue; size_t amount = (std::min)(size-backend.currentOffset, backend.currentSliceSize); if(amount == 0) continue; if(backend.added.find(inputRef) == backend.added.end()) { bool canAdd = backend.be->canAdd() != PROC_ADD_FULL; if(canAdd) backend.be->addInput(static_cast(buffer) + backend.currentOffset, amount, inputNumOrCoeffs, flush, cbRef->second.backendCb); success = success && canAdd; if(canAdd) backend.added.insert(inputRef); } } if(success) { hasAdded = true; for(auto& backend : backends) backend.added.erase(inputRef); // have seen the above line segfault in qemu-user RV64, but not if changed to `backend.added.erase(backend.added.find(inputRef))` - don't understand why, maybe dodgy C++ runtime? } return success; } bool PAR2Proc::addInput(const void* buffer, size_t size, uint16_t inputNum, bool flush, const PAR2ProcPlainCb& cb) { return _addInput(buffer, size, inputNum, inputNum, flush, cb); } bool PAR2Proc::addInput(const void* buffer, size_t size, const uint16_t* coeffs, bool flush, const PAR2ProcPlainCb& cb) { // use first coefficient as reference return _addInput(buffer, size, coeffs[0], coeffs, flush, cb); } #else static std::future combine_futures(std::vector>&& futures) { return std::async(std::launch::async, [](std::vector>&& futures) { for(auto& f : futures) f.get(); }, std::move(futures)); } static std::future combine_futures_and(std::vector>&& futures) { return std::async(std::launch::async, [](std::vector>&& futures) -> bool { bool result = true; for(auto& f : futures) result = result && f.get(); return result; }, std::move(futures)); } template std::future PAR2Proc::_addInput(const void* buffer, size_t size, T inputNumOfCoeffs, bool flush) { std::vector> addFutures; addFutures.reserve(backends.size()); for(auto& backend : backends) { if(backend.currentOffset >= size) continue; size_t amount = (std::min)(size-backend.currentOffset, backend.currentSliceSize); if(amount == 0) continue; addFutures.push_back(backend.be->addInput(static_cast(buffer) + backend.currentOffset, amount, inputNumOfCoeffs, flush)); } hasAdded = true; return combine_futures(std::move(addFutures)); } FUTURE_RETURN_T PAR2Proc::addInput(const void* buffer, size_t size, uint16_t inputNum, bool flush) { return _addInput(buffer, size, inputNum, flush); } FUTURE_RETURN_T PAR2Proc::addInput(const void* buffer, size_t size, const uint16_t* coeffs, bool flush) { return _addInput(buffer, size, coeffs, flush); } #endif bool PAR2Proc::dummyInput(size_t size, uint16_t inputNum, bool flush) { IF_LIBUV(assert(!endSignalled)); bool success = true; for(auto& backend : backends) { if(backend.currentOffset >= size || backend.currentSliceSize == 0) continue; if(backend.added.find(inputNum) == backend.added.end()) { bool canAdd = backend.be->canAdd() != PROC_ADD_FULL; if(canAdd) backend.be->dummyInput(inputNum, flush); success = success && canAdd; if(canAdd) backend.added.insert(inputNum); } } if(success) { hasAdded = true; for(auto& backend : backends) backend.added.erase(inputNum); } return success; } bool PAR2Proc::fillInput(const void* buffer, size_t size) { IF_LIBUV(assert(!endSignalled)); bool finished = true; for(auto& backend : backends) { if(backend.currentOffset >= size || backend.currentSliceSize == 0) continue; if(backend.added.find(-1) == backend.added.end()) { bool fillSuccessful = backend.be->fillInput(static_cast(buffer) + backend.currentOffset); finished = finished && fillSuccessful; if(fillSuccessful) backend.added.insert(-1); } } return finished; } void PAR2Proc::flush() { for(auto& backend : backends) if(backend.currentSliceSize > 0) backend.be->flush(); } FUTURE_RETURN_T PAR2Proc::endInput(IF_LIBUV(const PAR2ProcPlainCb& _finishCb)) { #ifdef USE_LIBUV assert(!endSignalled); flush(); finishCb = _finishCb; bool allIsEmpty = true; for(auto& backend : backends) { if(backend.currentSliceSize == 0) continue; backend.be->endInput(); allIsEmpty = allIsEmpty && backend.be->isEmpty(); } endSignalled = true; if(allIsEmpty) processing_finished(); #else flush(); std::vector> futures; for(auto& backend : backends) { if(backend.currentSliceSize == 0) continue; futures.push_back(backend.be->endInput()); // this will also call processing_finished when appropriate } return combine_futures(std::move(futures)); #endif } FUTURE_RETURN_BOOL_T PAR2Proc::getOutput(unsigned index, void* output IF_LIBUV(, const PAR2ProcOutputCb& cb)) const { #ifdef USE_LIBUV if(!hasAdded) { // no recovery was computed -> zero fill result memset(output, 0, currentSliceSize); cb(true); return; } auto* cbRef = new int(backends.size()); for(const auto& backend : backends) { if(backend.currentSliceSize == 0) (*cbRef)--; } auto* allValid = new bool(true); for(auto& backend : backends) { if(backend.currentSliceSize == 0) continue; auto outputPtr = static_cast(output) + backend.currentOffset; if(!backend.be->_hasAdded()) { // no computation done on backend -> zero fill part memset(outputPtr, 0, backend.currentSliceSize); if(--(*cbRef) == 0) { delete cbRef; cb(*allValid); delete allValid; } } else { // TODO: for overlapping regions, need to do a xor-merge pass backend.be->getOutput(index, outputPtr, [cbRef, allValid, cb](bool valid) { *allValid = *allValid && valid; if(--(*cbRef) == 0) { delete cbRef; cb(*allValid); delete allValid; } }); } } #else if(!hasAdded) { // no recovery was computed -> zero fill result memset(output, 0, currentSliceSize); std::promise prom; prom.set_value(true); return prom.get_future(); } std::vector> outFutures; outFutures.reserve(backends.size()); for(auto& backend : backends) { if(backend.currentSliceSize == 0) continue; auto outputPtr = static_cast(output) + backend.currentOffset; if(!backend.be->_hasAdded()) { // no computation done on backend -> zero fill part memset(outputPtr, 0, backend.currentSliceSize); } else { outFutures.push_back(backend.be->getOutput(index, outputPtr)); } } return combine_futures_and(std::move(outFutures)); #endif } #ifdef USE_LIBUV void PAR2Proc::onBackendProcess(int numInputs) { // since we need to invoke the callback for each backend which completes (for adds to continue), this means this isn't exactly 'progress' any more // TODO: consider renaming if(progressCb) progressCb(numInputs); if(endSignalled) { bool allIsEmpty = true; for(auto& backend : backends) if(!backend.be->isEmpty()) { allIsEmpty = false; break; } if(allIsEmpty) processing_finished(); } } void PAR2Proc::processing_finished() { endSignalled = false; for(auto& backend : backends) if(backend.currentSliceSize > 0) backend.be->processing_finished(); if(finishCb) finishCb(); finishCb = nullptr; } void PAR2Proc::deinit(PAR2ProcPlainCb cb) { auto* cnt = new int(backends.size()); for(auto& backend : backends) backend.be->deinit([cnt, cb]() { if(--(*cnt) == 0) { delete cnt; cb(); } }); } struct PAR2ProcBackendCloseData { PAR2ProcPlainCb cb; int refCount; }; void IPAR2ProcBackend::deinit(PAR2ProcPlainCb cb) { if(pendingOutCallbacks) { deinitCallback = cb; return; } if(!loop) return; loop = nullptr; _deinit(); auto* freeData = new struct PAR2ProcBackendCloseData; freeData->cb = cb; freeData->refCount = 3; auto closeCb = [](void* data) { auto* freeData = static_cast(data); if(--(freeData->refCount) == 0) { freeData->cb(); delete freeData; } }; _queueSent.close(freeData, closeCb); _queueProc.close(freeData, closeCb); _queueRecv.close(freeData, closeCb); } void IPAR2ProcBackend::deinit() { assert(pendingOutCallbacks == 0); if(!loop) return; loop = nullptr; _deinit(); _queueSent.close(); _queueRecv.close(); _queueProc.close(); } #endif par2cmdline-turbo-1.5.0/parpar/gf16/controller.h000066400000000000000000000234261524160147200214430ustar00rootroot00000000000000#ifndef __GF16_CONTROLLER #define __GF16_CONTROLLER #include "../src/stdint.h" #include #include #include #include #include #include "threadqueue.h" #ifdef USE_LIBUV // callback types typedef std::function PAR2ProcPlainCb; typedef std::function PAR2ProcOutputCb; typedef std::function PAR2ProcCompleteCb; #define FUTURE_RETURN_T void #define FUTURE_RETURN_BOOL_T void #define IF_LIBUV(...) __VA_ARGS__ #define IF_NOT_LIBUV(...) #define NOTIFY_DONE(obj, q, prom, ...) obj->parent->q.notify(obj) #define NOTIFY_DECL(cb, prom) PAR2ProcPlainCb cb #define NOTIFY_BOOL_DECL(cb, prom) PAR2ProcOutputCb cb #else #include #define FUTURE_RETURN_T std::future #define FUTURE_RETURN_BOOL_T std::future #define IF_LIBUV(...) #define IF_NOT_LIBUV(...) __VA_ARGS__ #define NOTIFY_DONE(obj, q, prom, ...) (prom).set_value(__VA_ARGS__); #define NOTIFY_DECL(cb, prom) std::promise prom #define NOTIFY_BOOL_DECL(cb, prom) std::promise prom #endif // backend interface enum PAR2ProcBackendAddResult { PROC_ADD_OK, PROC_ADD_OK_BUSY, PROC_ADD_FULL, PROC_ADD_ALL_FULL // controller only }; class IPAR2ProcStaging { #ifdef USE_LIBUV bool isActive; #else std::promise prom; #endif public: #ifdef USE_LIBUV inline bool getIsActive() const { return isActive; } inline void setIsActive(bool v) { isActive = v; } #else std::shared_future promFuture; inline bool getIsActive() const { return promFuture.wait_for(std::chrono::seconds::zero()) == std::future_status::timeout; } inline void setIsActive(bool v) { if(v) { promFuture.get(); // ensure isActive is false to avoid race with discarding old promise prom = std::promise(); promFuture = prom.get_future(); } else if(getIsActive()) prom.set_value(); } #endif std::vector procCoeffs; IPAR2ProcStaging() { IF_NOT_LIBUV(promFuture = prom.get_future()); } }; class IPAR2ProcBackend { protected: #ifdef USE_LIBUV uv_loop_t* loop; // is NULL when closed #endif std::vector outputExponents; // recovery exponents bool processingAdd; virtual void run_kernel(unsigned stagingArea, unsigned numInputs) = 0; unsigned currentStagingArea, currentStagingInputs; unsigned inputBatchSize, minInBatchSize; unsigned statBatchesStarted; #ifdef USE_LIBUV unsigned stagingActiveCount, pendingInCallbacks, pendingOutCallbacks; bool endSignalled; PAR2ProcCompleteCb progressCb; PAR2ProcPlainCb deinitCallback; ThreadNotifyQueue _queueSent; ThreadNotifyQueue _queueRecv; virtual void _notifySent(void* _req) = 0; virtual void _notifyRecv(void* _req) = 0; virtual void _notifyProc(void* _req) = 0; inline void stagingActiveCount_inc() { stagingActiveCount++; } public: ThreadNotifyQueue _queueProc; inline void stagingActiveCount_dec() { stagingActiveCount--; } protected: inline unsigned stagingActiveCount_get() const { return stagingActiveCount; } #else std::atomic stagingActiveCount; static inline void _waitForAdd(IPAR2ProcStaging& area) { area.promFuture.get(); } template inline std::future _endInput(const std::vector& staging) { std::vector> futures; futures.reserve(staging.size()); for(const auto& area : staging) { futures.push_back(area.promFuture); } return std::async(std::launch::async, [this](std::vector>&& futures) { for(const auto& f : futures) f.get(); processing_finished(); }, std::move(futures)); } inline void stagingActiveCount_inc() { stagingActiveCount.fetch_add(1, std::memory_order_relaxed); } public: inline void stagingActiveCount_dec() { stagingActiveCount.fetch_sub(1, std::memory_order_relaxed); } protected: inline unsigned stagingActiveCount_get() const { return stagingActiveCount.load(std::memory_order_relaxed); } #endif virtual void _deinit() = 0; public: #ifdef USE_LIBUV IPAR2ProcBackend(uv_loop_t* _loop) : loop(_loop), stagingActiveCount(0), pendingInCallbacks(0), pendingOutCallbacks(0), endSignalled(false), progressCb(nullptr), deinitCallback(nullptr) , _queueSent(_loop, this, &IPAR2ProcBackend::_notifySent) , _queueRecv(_loop, this, &IPAR2ProcBackend::_notifyRecv) , _queueProc(_loop, this, &IPAR2ProcBackend::_notifyProc) #else IPAR2ProcBackend() : stagingActiveCount(0) #endif {} int getNumRecoverySlices() const { return outputExponents.size(); } virtual void setSliceSize(size_t size) = 0; #ifdef USE_LIBUV void setProgressCb(const PAR2ProcCompleteCb& _progressCb) { progressCb = _progressCb; } #endif virtual bool setCurrentSliceSize(size_t size) = 0; virtual bool setRecoverySlices(unsigned numSlices, const uint16_t* exponents = nullptr) = 0; virtual PAR2ProcBackendAddResult canAdd() const = 0; virtual FUTURE_RETURN_T addInput(const void* buffer, size_t size, uint16_t inputNum, bool flush IF_LIBUV(, const PAR2ProcPlainCb& cb)) = 0; virtual FUTURE_RETURN_T addInput(const void* buffer, size_t size, const uint16_t* coeffs, bool flush IF_LIBUV(, const PAR2ProcPlainCb& cb)) = 0; virtual void dummyInput(uint16_t inputNum, bool flush = false) = 0; virtual bool fillInput(const void* buffer) = 0; virtual void flush() = 0; #ifdef USE_LIBUV FUTURE_RETURN_T endInput() { endSignalled = true; } #else virtual FUTURE_RETURN_T endInput() = 0; #endif // NOTE: for !defined(USE_LIBUV), this may return empty before completion, as the isActive variable is used for synchronisation (not stagingActiveCount) bool isEmpty() const { return stagingActiveCount_get()==0 IF_LIBUV(&& pendingInCallbacks==0); } virtual FUTURE_RETURN_BOOL_T getOutput(unsigned index, void* output IF_LIBUV(, const PAR2ProcOutputCb& cb)) = 0; inline void discardOutput() { processingAdd = false; } inline bool _hasAdded() const { return processingAdd; } virtual void processing_finished() {}; #ifndef USE_LIBUV virtual void waitForAdd() = 0; #endif #ifdef USE_LIBUV void deinit(PAR2ProcPlainCb cb); void deinit(); #else inline void deinit() { _deinit(); } #endif virtual void freeProcessingMem() = 0; inline unsigned getInputBatchSize() const { return inputBatchSize; } inline unsigned getBatchesStarted() const { return statBatchesStarted; } inline void setMinInputBatchSize(unsigned size) { minInBatchSize = size ? size : inputBatchSize; } virtual ~IPAR2ProcBackend() {} }; template struct PAR2ProcBackendBaseComputeReq { uint16_t numInputs; unsigned procIdx; PClass* parent; }; struct Backend { IPAR2ProcBackend* be; size_t currentOffset; size_t currentSliceSize; size_t allocSliceSize; std::unordered_set added; }; #ifdef USE_LIBUV struct PAR2ProcAddCbRef { int backendsActive; PAR2ProcPlainCb cb; PAR2ProcPlainCb backendCb; }; #endif struct PAR2ProcBackendAlloc { IPAR2ProcBackend* be; size_t offset, size; }; class PAR2Proc { private: bool hasAdded; #ifdef USE_LIBUV std::unordered_map addCbRefs; template bool _addInput(const void* buffer, size_t size, uint16_t inputRef, T inputNumOfCoeffs, bool flush, const PAR2ProcPlainCb& cb); #else template std::future _addInput(const void* buffer, size_t size, T inputNumOfCoeffs, bool flush); #endif std::vector backends; bool checkBackendAllocation(); size_t currentSliceSize; // current slice chunk size (<=sliceSize) #ifdef USE_LIBUV bool endSignalled; void processing_finished(); PAR2ProcPlainCb finishCb; PAR2ProcCompleteCb progressCb; void onBackendProcess(int numInputs); #endif // disable copy constructor PAR2Proc(const PAR2Proc&); PAR2Proc& operator=(const PAR2Proc&); public: explicit PAR2Proc(); bool init(size_t sliceSize, const std::vector& _backends IF_LIBUV(, const PAR2ProcCompleteCb& _progressCb = nullptr)); bool setCurrentSliceSize(size_t newSliceSize); bool setCurrentSliceSize(size_t newSliceSize, const std::vector>& sizeAlloc); inline size_t getCurrentSliceSize() const { return currentSliceSize; } bool setRecoverySlices(unsigned numSlices, const uint16_t* exponents = nullptr); inline bool setRecoverySlices(const std::vector& exponents) { return setRecoverySlices(exponents.size(), exponents.data()); } inline int getNumRecoverySlices() const { // TODO: need proper number if splitting recovery blocks; for now, just use the first backend as all are the same return backends[0].be->getNumRecoverySlices(); } PAR2ProcBackendAddResult canAdd() const; #ifndef USE_LIBUV void waitForAdd(); FUTURE_RETURN_T addInput(const void* buffer, size_t size, uint16_t inputNum, bool flush = false); FUTURE_RETURN_T addInput(const void* buffer, size_t size, const uint16_t* coeffs, bool flush = false); #else bool addInput(const void* buffer, size_t size, uint16_t inputNum, bool flush, const PAR2ProcPlainCb& cb); bool addInput(const void* buffer, size_t size, const uint16_t* coeffs, bool flush, const PAR2ProcPlainCb& cb); #endif // dummyInput/fillInput is only used for benchmarking; pretends to add an input without transferring anything to the backend bool dummyInput(size_t size, uint16_t inputNum, bool flush = false); bool fillInput(const void* buffer, size_t size); void flush(); FUTURE_RETURN_T endInput(IF_LIBUV(const PAR2ProcPlainCb& _finishCb)); FUTURE_RETURN_BOOL_T getOutput(unsigned index, void* output IF_LIBUV(, const PAR2ProcOutputCb& cb)) const; inline void discardOutput() { hasAdded = false; for(auto& backend : backends) backend.be->discardOutput(); } inline void deinit() { for(auto& backend : backends) backend.be->deinit(); } #ifdef USE_LIBUV void deinit(PAR2ProcPlainCb cb); #endif inline void freeProcessingMem() { for(auto& backend : backends) backend.be->freeProcessingMem(); } }; #endif // defined(__GF16_CONTROLLER) par2cmdline-turbo-1.5.0/parpar/gf16/controller_cpu.cpp000066400000000000000000000544021524160147200226430ustar00rootroot00000000000000#include "controller_cpu.h" #include "../src/platform.h" #include "gfmat_coeff.h" #include #ifndef MIN # define MIN(a, b) ((a)<(b) ? (a) : (b)) #endif #define CEIL_DIV(a, b) (((a) + (b)-1) / (b)) #define ROUND_DIV(a, b) (((a) + ((b)>>1)) / (b)) PAR2ProcCPUStaging::~PAR2ProcCPUStaging() { if(src) ALIGN_FREE(src); } /** initialization **/ PAR2ProcCPU::PAR2ProcCPU(IF_LIBUV(uv_loop_t* _loop,) int stagingAreas) : IPAR2ProcBackend(IF_LIBUV(_loop)), sliceSize(0), numThreads(0), gf(NULL), staging(stagingAreas), memProcessing(NULL), transferThread(PAR2ProcCPU::transfer_slice) { // default number of threads = number of CPUs available setNumThreads(-1); transferThread.name = "gf_transfer"; #ifdef DEBUG_STAT_THREAD_EMPTY endSignalled = false; statWorkerIdleEvents = 0; #endif } void PAR2ProcCPU::setSliceSize(size_t _sliceSize) { sliceSize = _sliceSize; } void PAR2ProcCPU::freeGf() { for(auto& area : staging) { if(area.src) ALIGN_FREE(area.src); area.src = nullptr; area.procCoeffs.clear(); } freeProcessingMem(); if(!gfScratch.empty()) { for(unsigned i=0; imutScratch_free(gfScratch[i]); gfScratch.clear(); } delete gf; gf = NULL; } void PAR2ProcCPU::setNumThreads(int threads) { if(threads < 0) { threads = hardware_concurrency(); } numThreads = threads; if(!gf) return; int oldThreads = gfScratch.size(); if(threads == oldThreads) return; for(int i=oldThreads-1; i>=threads; i--) { if(gfScratch[i]) gf->mutScratch_free(gfScratch[i]); thWorkers[i].end(); } gfScratch.resize(threads); thWorkers.resize(threads); for(int i=oldThreads; imutScratch_alloc(); thWorkers[i].lowPrio = true; thWorkers[i].name = "gf_worker"; thWorkers[i].setCallback(PAR2ProcCPU::compute_worker); } if(alignedCurrentSliceSize) calcChunkSize(); } bool PAR2ProcCPU::init(Galois16Methods method, unsigned _inputGrouping, size_t _chunkLen) { freeGf(); bool ret = true; // TODO: accept & pass on hint info gf = new Galois16Mul(method); const Galois16MethodInfo& info = gf->info(); chunkLen = _chunkLen ? _chunkLen : info.idealChunkSize; alignment = info.alignment; stride = info.stride; inputBatchSize = _inputGrouping; if(!inputBatchSize) { // round 12 to nearest idealInputMultiple inputBatchSize = (12 + info.idealInputMultiple/2); inputBatchSize -= inputBatchSize % info.idealInputMultiple; if(inputBatchSize < info.idealInputMultiple) inputBatchSize = info.idealInputMultiple; } minInBatchSize = inputBatchSize; alignedSliceSize = gf->alignToStride(sliceSize) + stride; // add extra stride, because checksum requires an extra block alignedCurrentSliceSize = 0; for(auto& area : staging) { // setup indicators to know if buffers are being used area.setIsActive(false); } if(!reallocMemInput()) // allocate input staging area ret = false; processingAdd = false; setNumThreads(numThreads); // init scratch/workers setCurrentSliceSize(sliceSize); // default slice chunk size = declared slice size currentStagingArea = currentStagingInputs = 0; statBatchesStarted = 0; return ret; } bool PAR2ProcCPU::reallocMemInput() { bool ret = true; for(auto& area : staging) { if(area.src) ALIGN_FREE(area.src); ALIGN_ALLOC(area.src, inputBatchSize * alignedSliceSize, alignment); if(!area.src) ret = false; } return ret; } void PAR2ProcCPU::calcChunkSize() { // split the slice evenly across threads size_t targetThreadChunk = CEIL_DIV(alignedCurrentSliceSize, numThreads); // if the per-thread size is much smaller than our target, scale it up and split by output as well if(targetThreadChunk <= chunkLen/2) { numChunks = ROUND_DIV(alignedCurrentSliceSize, chunkLen); if(numChunks < 1) numChunks = 1; } else { numChunks = ROUND_DIV(targetThreadChunk, chunkLen); if(numChunks < 1) numChunks = 1; numChunks *= numThreads; } chunkLen = gf->alignToStride(CEIL_DIV(alignedCurrentSliceSize, numChunks)); // we'll assume that input chunks are memory aligned here // fix up numChunks with actual number (since it may have changed from aligning/rounding) numChunks = CEIL_DIV(alignedCurrentSliceSize, chunkLen); } bool PAR2ProcCPU::setCurrentSliceSize(size_t newSliceSize) { currentSliceSize = newSliceSize; alignedCurrentSliceSize = gf->alignToStride(currentSliceSize) + stride; // add extra stride, because checksum requires an extra block bool ret = true; if(currentSliceSize > sliceSize) { // should never happen, but we'll support this case anyway // need to upsize allocation sliceSize = currentSliceSize; alignedSliceSize = alignedCurrentSliceSize; ret = reallocMemInput(); if(memProcessing) { freeProcessingMem(); if(!outputExponents.empty()) { ALIGN_ALLOC(memProcessing, outputExponents.size() * alignedSliceSize, alignment); if(!memProcessing) ret = false; } } } calcChunkSize(); return ret; } bool PAR2ProcCPU::setRecoverySlices(unsigned numSlices, const uint16_t* exponents) { // TODO: consider throwing if numSlices > previously set, or some mechanism to resize buffer outputExponents.clear(); if(!numSlices) return true; outputExponents.resize(numSlices, 1); // default to 1 to bypass output==0 add shortcut (if we're going with custom coeffs) if(exponents) memcpy(outputExponents.data(), exponents, numSlices * sizeof(uint16_t)); for(auto& area : staging) area.procCoeffs.resize(numSlices * inputBatchSize); if(!memProcessing) { // allocate processing area // TODO: see if we can get an aligned calloc and set processingAdd = true // (investigate mmap or just use calloc and align ourself) // (will need to be careful with discard_output) ALIGN_ALLOC(memProcessing, numSlices * alignedSliceSize, alignment); } return memProcessing != nullptr; } void PAR2ProcCPU::freeProcessingMem() { if(memProcessing) { ALIGN_FREE(memProcessing); memProcessing = NULL; } } void PAR2ProcCPU::_deinit() { for(auto& worker : thWorkers) worker.end(); // TODO: join threads? freeGf(); } PAR2ProcCPU::~PAR2ProcCPU() { deinit(); } /** prepare **/ // TODO: future idea: multiple prepare threads? Not sure if there's a case where it's particularly beneficial... struct transfer_data { bool finish; // false = prepare, true = finish PAR2ProcCPU* parent; void* dst; const void* src; size_t size; unsigned index; size_t chunkLen; Galois16Mul* gf; unsigned numBufs; // prepare specific size_t dstLen; unsigned submitInBufs; unsigned inBufId; NOTIFY_DECL(cbPrep, promPrep); // finish specific NOTIFY_BOOL_DECL(cbOut, promOut); int cksumSuccess; }; // prepare thread process function void PAR2ProcCPU::transfer_slice(ThreadMessageQueue& q) { struct transfer_data* data; while((data = static_cast(q.pop())) != NULL) { if(data->finish) { data->cksumSuccess = data->gf->finish_packed_cksum(data->dst, data->src, data->size, data->numBufs, data->index, data->chunkLen); NOTIFY_DONE(data, _queueRecv, data->promOut, data->cksumSuccess); } else { if(data->src) data->gf->prepare_packed_cksum(data->dst, data->src, data->size, data->dstLen, data->numBufs, data->index, data->chunkLen); if(data->submitInBufs) { // queue async compute data->parent->run_kernel(data->inBufId, data->submitInBufs); } // signal main thread that prepare has completed NOTIFY_DONE(data, _queueSent, data->promPrep); } IF_NOT_LIBUV(delete data); } } #ifdef USE_LIBUV void PAR2ProcCPU::_notifySent(void* _req) { auto data = static_cast(_req); pendingInCallbacks--; if(data->cbPrep && data->src) data->cbPrep(); delete data; // handle possibility of _notifySent being called after the last _notifyProc if(endSignalled && isEmpty() && progressCb) progressCb(0); } #endif PAR2ProcBackendAddResult PAR2ProcCPU::canAdd() const { // NOTE: if add fails due to being full, client resubmitting may be vulnerable to race conditions if it adds an event listener after completion event gets fired if(staging[currentStagingArea].getIsActive()) return PROC_ADD_FULL; return staging[(currentStagingArea == 0 ? staging.size() : currentStagingArea)-1].getIsActive() ? PROC_ADD_OK_BUSY : PROC_ADD_OK; } #ifndef USE_LIBUV void PAR2ProcCPU::waitForAdd() { IPAR2ProcBackend::_waitForAdd(staging[currentStagingArea]); } #endif FUTURE_RETURN_T PAR2ProcCPU::addInput(const void* buffer, size_t size, uint16_t inputNum, bool flush IF_LIBUV(, const PAR2ProcPlainCb& cb)) { IF_NOT_LIBUV(return) _addInput(buffer, size, inputNum, flush IF_LIBUV(, cb)); } FUTURE_RETURN_T PAR2ProcCPU::addInput(const void* buffer, size_t size, const uint16_t* coeffs, bool flush IF_LIBUV(, const PAR2ProcPlainCb& cb)) { IF_NOT_LIBUV(return) _addInput(buffer, size, coeffs, flush IF_LIBUV(, cb)); } template FUTURE_RETURN_T PAR2ProcCPU::_addInput(const void* buffer, size_t size, T inputNumOrCoeffs, bool flush IF_LIBUV(, const PAR2ProcPlainCb& cb)) { IF_LIBUV(assert(!endSignalled)); auto& area = staging[currentStagingArea]; assert(!area.getIsActive()); if(!staging[0].src) reallocMemInput(); set_coeffs(area, currentStagingInputs, inputNumOrCoeffs); struct transfer_data* data = new struct transfer_data; data->finish = false; data->src = buffer; data->size = size; data->parent = this; data->dst = area.src; data->dstLen = alignedCurrentSliceSize - stride; data->numBufs = inputBatchSize; data->index = currentStagingInputs++; data->chunkLen = chunkLen; data->gf = gf; IF_LIBUV(data->cbPrep = cb); data->submitInBufs = (flush || currentStagingInputs == inputBatchSize || ( // allow submitting early if there's no active processing stagingActiveCount_get() == 0 && staging.size() > 1 && currentStagingInputs >= minInBatchSize )) ? currentStagingInputs : 0; data->inBufId = currentStagingArea; if(data->submitInBufs) { stagingActiveCount_inc(); area.setIsActive(true); // lock this buffer until processing is complete statBatchesStarted++; currentStagingInputs = 0; if(++currentStagingArea == staging.size()) currentStagingArea = 0; } IF_LIBUV(pendingInCallbacks++); IF_NOT_LIBUV(auto future = data->promPrep.get_future()); transferThread.send(data); IF_NOT_LIBUV(return future); } void PAR2ProcCPU::dummyInput(uint16_t inputNum, bool flush) { IF_LIBUV(assert(!endSignalled)); auto& area = staging[currentStagingArea]; assert(!area.getIsActive()); if(!staging[0].src) reallocMemInput(); set_coeffs(area, currentStagingInputs, inputNum); currentStagingInputs++; if(flush || currentStagingInputs == inputBatchSize || ( stagingActiveCount_get() == 0 && staging.size() > 1 && currentStagingInputs >= minInBatchSize )) { stagingActiveCount_inc(); area.setIsActive(true); // lock this buffer until processing is complete statBatchesStarted++; run_kernel(currentStagingArea, currentStagingInputs); currentStagingInputs = 0; if(++currentStagingArea == staging.size()) currentStagingArea = 0; } } bool PAR2ProcCPU::fillInput(const void* buffer) { IF_LIBUV(assert(!endSignalled)); if(!staging[0].src) reallocMemInput(); gf->prepare_packed_cksum(staging[currentStagingArea].src, buffer, currentSliceSize, alignedCurrentSliceSize - stride, inputBatchSize, currentStagingInputs, chunkLen); if(++currentStagingInputs == inputBatchSize) { currentStagingInputs = 0; if(++currentStagingArea == staging.size()) { currentStagingArea = 0; return true; // all filled } } return false; } void PAR2ProcCPU::set_coeffs(PAR2ProcCPUStaging& area, unsigned idx, uint16_t inputNum) { // TODO: check if exponents have been set? uint16_t inputLog = gfmat_input_log(inputNum); auto& coeffs = area.procCoeffs; for(unsigned out=0; outfinish = false; data->src = NULL; data->parent = this; data->submitInBufs = currentStagingInputs; data->inBufId = currentStagingArea; data->gf = gf; stagingActiveCount_inc(); staging[currentStagingArea].setIsActive(true); // lock this buffer until processing is complete statBatchesStarted++; currentStagingInputs = 0; if(++currentStagingArea == staging.size()) currentStagingArea = 0; IF_LIBUV(pendingInCallbacks++); transferThread.send(data); } /** finish **/ #ifdef USE_LIBUV void PAR2ProcCPU::_notifyRecv(void* _req) { auto data = static_cast(_req); pendingOutCallbacks--; // signal output ready data->cbOut(data->cksumSuccess); delete data; if(pendingOutCallbacks < 1 && deinitCallback) deinit(deinitCallback); } #endif FUTURE_RETURN_BOOL_T PAR2ProcCPU::getOutput(unsigned index, void* output IF_LIBUV(, const PAR2ProcOutputCb& cb)) { struct transfer_data* data = new struct transfer_data; data->finish = true; data->parent = this; data->src = memProcessing; data->size = currentSliceSize; data->gf = gf; data->dst = output; data->numBufs = outputExponents.size(); data->index = index; data->chunkLen = chunkLen; #ifdef USE_LIBUV data->cbOut = cb; pendingOutCallbacks++; #else auto future = data->promOut.get_future(); #endif transferThread.send(data); IF_NOT_LIBUV(return future); } /** main processing **/ typedef struct __compute_req : PAR2ProcBackendBaseComputeReq { unsigned inputGrouping; uint16_t numOutputs; const uint16_t *outNonZero; const uint16_t* coeffs; size_t len, chunkSize, numChunks; const void* input; void* output; bool add; void* mutScratch; const Galois16Mul* gf; std::atomic* procRefs; } compute_req; void PAR2ProcCPU::compute_worker(ThreadMessageQueue& q) { compute_req* req; while((req = static_cast(q.pop())) != NULL) { const Galois16MethodInfo& gfInfo = req->gf->info(); // compute how many inputs regions get prefetched in a muladd_multi call // TODO: should this be done across all threads? unsigned inputsPrefetchedPerInvok = (req->numInputs / gfInfo.idealInputMultiple); unsigned inputPrefetchOutOffset = req->numOutputs-1; const unsigned MAX_PF_FACTOR = 3; { const unsigned pfFactor = gfInfo.prefetchDownscale; if(inputsPrefetchedPerInvok > (1U<numInputs << MAX_PF_FACTOR, inputsPrefetchedPerInvok); assert(inputPrefetchOutOffset > 0); // at least one pass needed if(req->numOutputs >= inputPrefetchOutOffset) inputPrefetchOutOffset = req->numOutputs - inputPrefetchOutOffset; else inputPrefetchOutOffset = 0; } } for(size_t round = 0; round < req->numChunks; round++) { size_t procSize = MIN(req->len-round*req->chunkSize, req->chunkSize); const char* srcPtr = static_cast(req->input) + round*req->chunkSize*req->inputGrouping; for(unsigned out = 0; out < req->numOutputs; out++) { const uint16_t* vals = req->coeffs + out*req->inputGrouping; char* dstPtr = static_cast(req->output) + out*procSize + round*req->numOutputs*req->chunkSize; if(!req->add) memset(dstPtr, 0, procSize); if(round == req->numChunks-1) { if(out+1 < req->numOutputs) { if(req->outNonZero[out]) req->gf->mul_add_multi_packpf(req->inputGrouping, req->numInputs, dstPtr, srcPtr, procSize, vals, req->mutScratch, NULL, dstPtr+procSize); else req->gf->add_multi_packpf(req->inputGrouping, req->numInputs, dstPtr, srcPtr, procSize, NULL, dstPtr+procSize); } else // TODO: this could also be a 0 output, so consider add_multi optimisation? req->gf->mul_add_multi_packed(req->inputGrouping, req->numInputs, dstPtr, srcPtr, procSize, vals, req->mutScratch); } else { const char* pfInput = out >= inputPrefetchOutOffset ? static_cast(req->input) + (round+1)*req->chunkSize*req->inputGrouping + ((inputsPrefetchedPerInvok*(out-inputPrefetchOutOffset)*procSize)>>MAX_PF_FACTOR) : NULL; // procSize input prefetch may be wrong for final round, but it's the closest we've got; TODO: perhaps consider skipping out of prefetching, if the final round has a different region size if(req->outNonZero[out]) req->gf->mul_add_multi_packpf(req->inputGrouping, req->numInputs, dstPtr, srcPtr, procSize, vals, req->mutScratch, pfInput, dstPtr+procSize); else req->gf->add_multi_packpf(req->inputGrouping, req->numInputs, dstPtr, srcPtr, procSize, pfInput, dstPtr+procSize); } } } // TODO: allow worker to peek into next queue entry for prefetching? #ifdef DEBUG_STAT_THREAD_EMPTY if(q.empty() && !(req->parent->endSignalled IF_NOT_LIBUV(.load(std::memory_order_relaxed)))) req->parent->statWorkerIdleEvents.fetch_add(1, std::memory_order_relaxed); #endif // mark that we've done processing this request if(req->procRefs->fetch_sub(1, std::memory_order_acq_rel) <= 1) { // ensure all prior memory operations to be complete at this point; even though a cross-thread signal requires stricter ordering, it's only guaranteed on the sending thread // signal this input group is done with #ifdef USE_LIBUV req->parent->_queueProc.notify(req); #else req->parent->stagingActiveCount_dec(); req->parent->_setAreaActive(req->procIdx, false); delete req; #endif } else delete req; } } void PAR2ProcCPU::run_kernel(unsigned inBuf, unsigned numInputs) { if(outputExponents.empty()) return; auto& area = staging[inBuf]; // currently do static distribution; TODO: consider dynamic scheduling? bool oldProcessingAdd = processingAdd; processingAdd = true; auto makeReq = [&, this](unsigned thread, size_t sliceOffset) -> compute_req* { compute_req* req = new compute_req; req->numInputs = numInputs; req->inputGrouping = inputBatchSize; req->chunkSize = chunkLen; req->input = static_cast(area.src) + sliceOffset*inputBatchSize; req->add = oldProcessingAdd; req->mutScratch = gfScratch[thread]; // TODO: should this be assigned to the thread instead? req->gf = gf; req->parent = this; req->procRefs = &(area.procRefs); req->procIdx = inBuf; return req; }; // distribute chunks evenly across threads. For remaining chunks, try to distribute the outputs evenly across threads, but don't allow a thread to handle more than one remaining chunk size_t fullChunksPerThread = numChunks / numThreads; unsigned leftoverChunks = numChunks % numThreads; size_t chunk = 0; // start off with remaining chunks if(leftoverChunks) { // send each chunk to this many threads unsigned threadsPerChunk = MIN(numThreads / leftoverChunks, outputExponents.size()); assert(threadsPerChunk >= 1); // number of outputs to send to a thread (this will be rounded appropriately as it's processed) float outputsPerThread = (float)outputExponents.size() / threadsPerChunk; assert(outputsPerThread >= 1); // number of threads that we'll send remaining chunks to unsigned usedThreads = threadsPerChunk * leftoverChunks; assert((int)usedThreads <= numThreads); area.procRefs.store((fullChunksPerThread ? numThreads : 0) + usedThreads, std::memory_order_relaxed); unsigned thread = 0; for(; chunk < leftoverChunks; chunk++) { size_t sliceOffset = chunk*chunkLen; size_t reqLen = MIN(alignedCurrentSliceSize-sliceOffset, chunkLen); char* outputBase = static_cast(memProcessing) + sliceOffset*outputExponents.size(); // split this chunk across threads unsigned outputIdx = 0; for(unsigned tc = 0; tc < threadsPerChunk; tc++) { assert(thread < usedThreads); auto req = makeReq(thread, sliceOffset); req->numOutputs = (unsigned)(outputsPerThread*(tc+1) + 0.5) - outputIdx; assert(req->numOutputs >= 1); req->outNonZero = outputExponents.data() + outputIdx; req->coeffs = area.procCoeffs.data() + outputIdx * inputBatchSize; req->len = reqLen; req->numChunks = 1; req->output = outputBase + outputIdx*req->len; outputIdx += req->numOutputs; if(tc == threadsPerChunk-1) assert(outputIdx == outputExponents.size()); thWorkers[thread].send(req); thread++; } } } else area.procRefs.store(numThreads, std::memory_order_relaxed); // distribute chunks evenly across threads if(fullChunksPerThread) { for(int thread=0; threadnumOutputs = outputExponents.size(); req->outNonZero = outputExponents.data(); req->coeffs = area.procCoeffs.data(); req->len = MIN(alignedCurrentSliceSize-sliceOffset, chunkLen*fullChunksPerThread); req->numChunks = fullChunksPerThread; req->output = static_cast(memProcessing) + sliceOffset*outputExponents.size(); thWorkers[thread].send(req); chunk += fullChunksPerThread; } } assert(chunk == numChunks); } #ifdef USE_LIBUV void PAR2ProcCPU::_notifyProc(void* _req) { auto req = static_cast(_req); stagingActiveCount_dec(); staging[req->procIdx].setIsActive(false); // if add was blocked, allow adds to continue - calling application will need to listen to this event to know to continue if(progressCb) progressCb(req->numInputs); /* // TODO: implement for non-libuv if we go ahead with this // this is currently pointless while minInBatchSize == inputBatchSize if(currentStagingInputs && stagingActiveCount_get() == 0 && staging.size() > 1 && currentStagingInputs >= minInBatchSize) { // TODO: consider firing off next batch of inputs } */ // TODO: also consider idea of dynamically scaling areas - this removes the notion of a 'full' state, and allows caller to manage maximum outstanding regions delete req; } #endif void PAR2ProcCPU::processing_finished() { #if defined(USE_LIBUV) || defined(DEBUG_STAT_THREAD_EMPTY) endSignalled = false; #endif // free memInput so that output fetching can use some of it for(auto& area : staging) { if(area.src) ALIGN_FREE(area.src); area.src = nullptr; } } par2cmdline-turbo-1.5.0/parpar/gf16/controller_cpu.h000066400000000000000000000106161524160147200223070ustar00rootroot00000000000000#ifndef __GF16_CONTROLLER_CPU #define __GF16_CONTROLLER_CPU #include "controller.h" #include #include "threadqueue.h" #include "gf16mul.h" class PAR2ProcCPUStaging : public IPAR2ProcStaging { public: void* src; std::atomic procRefs; PAR2ProcCPUStaging() : IPAR2ProcStaging(), src(nullptr) {} ~PAR2ProcCPUStaging(); }; class PAR2ProcCPU : public IPAR2ProcBackend { private: size_t sliceSize; // actual whole slice size size_t alignedSliceSize; // allocated memory for slice (>=sliceSize) size_t currentSliceSize; // current slice chunk size (<=sliceSize) size_t alignedCurrentSliceSize; // memory used for current slice chunk (<=alignedSliceSize) int numThreads; std::vector thWorkers; // main processing worker threads std::vector gfScratch; // scratch memory for each thread Galois16Mul* gf; size_t chunkLen; // loop tiling size size_t numChunks; unsigned alignment; unsigned stride; void freeGf(); // staging area from which processing is performed std::vector staging; bool reallocMemInput(); void* memProcessing; // TODO: break this into chunks, to avoid massive single allocation void calcChunkSize(); MessageThread transferThread; void set_coeffs(PAR2ProcCPUStaging& area, unsigned idx, uint16_t inputNum); void set_coeffs(PAR2ProcCPUStaging& area, unsigned idx, const uint16_t* inputCoeffs); void run_kernel(unsigned inBuf, unsigned numInputs) override; template FUTURE_RETURN_T _addInput(const void* buffer, size_t size, T inputNumOrCoeffs, bool flush IF_LIBUV(, const PAR2ProcPlainCb& cb)); #ifdef USE_LIBUV void _notifySent(void* _req) override; void _notifyRecv(void* _req) override; void _notifyProc(void* _req) override; #endif static void transfer_slice(ThreadMessageQueue& q); static void compute_worker(ThreadMessageQueue& q); #ifdef DEBUG_STAT_THREAD_EMPTY std::atomic endSignalled; std::atomic statWorkerIdleEvents; #endif // disable copy constructor PAR2ProcCPU(const PAR2ProcCPU&); PAR2ProcCPU& operator=(const PAR2ProcCPU&); public: explicit PAR2ProcCPU(IF_LIBUV(uv_loop_t* _loop,) int stagingAreas=2); void setSliceSize(size_t _sliceSize) override; void _deinit() override; ~PAR2ProcCPU(); bool init(Galois16Methods method = GF16_AUTO, unsigned inputGrouping = 0, size_t chunkLen = 0); bool setCurrentSliceSize(size_t newSliceSize) override; bool setRecoverySlices(unsigned numSlices, const uint16_t* exponents = NULL) override; void freeProcessingMem() override; inline void _setAreaActive(int area, bool active) { staging[area].setIsActive(active); } void setNumThreads(int threads); inline int getNumThreads() const { return numThreads; } inline const char* getMethodName() const { return gf->info().name; } inline size_t getChunkLen() const { return chunkLen; } inline unsigned getStagingAreas() const { return staging.size(); } inline unsigned getAlignment() const { return alignment; } inline unsigned getStride() const { return stride; } inline size_t getAllocSliceSize() const { return alignedSliceSize; } PAR2ProcBackendAddResult canAdd() const override; FUTURE_RETURN_T addInput(const void* buffer, size_t size, uint16_t inputNum, bool flush IF_LIBUV(, const PAR2ProcPlainCb& cb)) override; FUTURE_RETURN_T addInput(const void* buffer, size_t size, const uint16_t* coeffs, bool flush IF_LIBUV(, const PAR2ProcPlainCb& cb)) override; void dummyInput(uint16_t inputNum, bool flush = false) override; bool fillInput(const void* buffer) override; void flush() override; FUTURE_RETURN_BOOL_T getOutput(unsigned index, void* output IF_LIBUV(, const PAR2ProcOutputCb& cb)) override; void processing_finished() override; #ifndef USE_LIBUV void waitForAdd() override; FUTURE_RETURN_T endInput() override { # ifdef DEBUG_STAT_THREAD_EMPTY endSignalled = true; # endif return IPAR2ProcBackend::_endInput(staging); } #endif static inline Galois16Methods default_method() { return Galois16Mul::default_method(); } static inline Galois16MethodInfo info(Galois16Methods method) { return Galois16Mul::info(method); } static inline std::vector availableMethods() { return Galois16Mul::availableMethods(true); } #ifdef DEBUG_STAT_THREAD_EMPTY inline unsigned getWorkerIdleCount() const { return statWorkerIdleEvents.load(std::memory_order_relaxed); } #endif }; #endif // defined(__GF16_CONTROLLER_CPU) par2cmdline-turbo-1.5.0/parpar/gf16/controller_ocl.cpp000066400000000000000000000630401524160147200226270ustar00rootroot00000000000000#include #include "../src/stdint.h" #include // free / calloc #include #include "controller_ocl.h" std::vector PAR2ProcOCL::platforms; int PAR2ProcOCL::load_runtime() { if(load_opencl()) { return 1; } try { cl::Platform::get(&platforms); if(platforms.size() == 0) return 2; } catch(cl::Error const&) { return 2; } return 0; } void PAR2ProcOCL::printError(const char* where, cl::Error const& err) { #ifndef GF16OCL_NO_OUTPUT std::cerr << "OpenCL " << where << ": "; switch(err.err()) { #define _PRINT_ERR(x) case x: std::cerr << #x; break _PRINT_ERR(CL_DEVICE_NOT_FOUND); _PRINT_ERR(CL_DEVICE_NOT_AVAILABLE); _PRINT_ERR(CL_COMPILER_NOT_AVAILABLE); _PRINT_ERR(CL_MEM_OBJECT_ALLOCATION_FAILURE); _PRINT_ERR(CL_OUT_OF_RESOURCES); _PRINT_ERR(CL_OUT_OF_HOST_MEMORY); _PRINT_ERR(CL_PROFILING_INFO_NOT_AVAILABLE); _PRINT_ERR(CL_MEM_COPY_OVERLAP); _PRINT_ERR(CL_IMAGE_FORMAT_MISMATCH); _PRINT_ERR(CL_IMAGE_FORMAT_NOT_SUPPORTED); _PRINT_ERR(CL_BUILD_PROGRAM_FAILURE); _PRINT_ERR(CL_MAP_FAILURE); #ifdef CL_VERSION_1_1 _PRINT_ERR(CL_MISALIGNED_SUB_BUFFER_OFFSET); _PRINT_ERR(CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST); #endif #ifdef CL_VERSION_1_2 _PRINT_ERR(CL_COMPILE_PROGRAM_FAILURE); _PRINT_ERR(CL_LINKER_NOT_AVAILABLE); _PRINT_ERR(CL_LINK_PROGRAM_FAILURE); _PRINT_ERR(CL_DEVICE_PARTITION_FAILED); _PRINT_ERR(CL_KERNEL_ARG_INFO_NOT_AVAILABLE); #endif _PRINT_ERR(CL_INVALID_VALUE); _PRINT_ERR(CL_INVALID_DEVICE_TYPE); _PRINT_ERR(CL_INVALID_PLATFORM); _PRINT_ERR(CL_INVALID_DEVICE); _PRINT_ERR(CL_INVALID_CONTEXT); _PRINT_ERR(CL_INVALID_QUEUE_PROPERTIES); _PRINT_ERR(CL_INVALID_COMMAND_QUEUE); _PRINT_ERR(CL_INVALID_HOST_PTR); _PRINT_ERR(CL_INVALID_MEM_OBJECT); _PRINT_ERR(CL_INVALID_IMAGE_FORMAT_DESCRIPTOR); _PRINT_ERR(CL_INVALID_IMAGE_SIZE); _PRINT_ERR(CL_INVALID_SAMPLER); _PRINT_ERR(CL_INVALID_BINARY); _PRINT_ERR(CL_INVALID_BUILD_OPTIONS); _PRINT_ERR(CL_INVALID_PROGRAM); _PRINT_ERR(CL_INVALID_PROGRAM_EXECUTABLE); _PRINT_ERR(CL_INVALID_KERNEL_NAME); _PRINT_ERR(CL_INVALID_KERNEL_DEFINITION); _PRINT_ERR(CL_INVALID_KERNEL); _PRINT_ERR(CL_INVALID_ARG_INDEX); _PRINT_ERR(CL_INVALID_ARG_VALUE); _PRINT_ERR(CL_INVALID_ARG_SIZE); _PRINT_ERR(CL_INVALID_KERNEL_ARGS); _PRINT_ERR(CL_INVALID_WORK_DIMENSION); _PRINT_ERR(CL_INVALID_WORK_GROUP_SIZE); _PRINT_ERR(CL_INVALID_WORK_ITEM_SIZE); _PRINT_ERR(CL_INVALID_GLOBAL_OFFSET); _PRINT_ERR(CL_INVALID_EVENT_WAIT_LIST); _PRINT_ERR(CL_INVALID_EVENT); _PRINT_ERR(CL_INVALID_OPERATION); _PRINT_ERR(CL_INVALID_GL_OBJECT); _PRINT_ERR(CL_INVALID_BUFFER_SIZE); _PRINT_ERR(CL_INVALID_MIP_LEVEL); _PRINT_ERR(CL_INVALID_GLOBAL_WORK_SIZE); #ifdef CL_VERSION_1_1 _PRINT_ERR(CL_INVALID_PROPERTY); #endif #ifdef CL_VERSION_1_2 _PRINT_ERR(CL_INVALID_IMAGE_DESCRIPTOR); _PRINT_ERR(CL_INVALID_COMPILER_OPTIONS); _PRINT_ERR(CL_INVALID_LINKER_OPTIONS); _PRINT_ERR(CL_INVALID_DEVICE_PARTITION_COUNT); #endif #undef _PRINT_ERR default: std::cerr << err.err(); } std::cerr << std::endl; #endif } static int parse_ocl_version(const std::string& ver) { // OpenCL gives the string "OpenCL x.y [extra]" const char* p = ver.c_str() + 7; int major = 0, minor = 0; int* majmin = &major; while(1) { if(*p == '.') majmin = &minor; else if(*p >= '0' && *p <= '9') { *majmin *= 10; *majmin += *p - '0'; } else break; p++; } // note that we assume 1.20 is newer than 1.2, i.e. not interpreted as a floating point value return major * 1000 + minor; } PAR2ProcOCL::PAR2ProcOCL(IF_LIBUV(uv_loop_t* _loop,) int platformId, int deviceId, int stagingAreas) : IPAR2ProcBackend(IF_LIBUV(_loop)), staging(stagingAreas), allocatedSliceSize(0), transferThread(PAR2ProcOCL::transfer_slice) { _initSuccess = false; transferThread.name = "ocl_transfer"; #ifdef USE_LIBUV #define ERROR_EXIT { loop = nullptr; return; } #else #define ERROR_EXIT return; #endif if(!getDevice(device, platformId, deviceId)) ERROR_EXIT context = cl::Context(device); // we only support little-endian hosts and devices #if !defined(_MSC_VER) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ ERROR_EXIT #endif if(device.getInfo() != CL_TRUE) ERROR_EXIT try { queue = cl::CommandQueue(context, device, 0); _initSuccess = true; } catch(cl::Error const& err) { printError("Create Queue Error", err); } #undef ERROR_EXIT queueEvents.reserve(2); _deviceId = deviceId; oclDevVersion = parse_ocl_version(device.getInfo()); cl::Platform platform; getPlatform(platform, platformId); oclPlatVersion = parse_ocl_version(platform.getInfo()); } PAR2ProcOCL::~PAR2ProcOCL() { deinit(); } // _sliceSize must be divisible by 2 void PAR2ProcOCL::setSliceSize(size_t _sliceSize) { sliceSize = _sliceSize; if(gf) sliceSizeCksum = _sliceSize + gf->info().cksumSize; } bool PAR2ProcOCL::init(Galois16OCLMethods method, unsigned targetInputBatch, unsigned targetIters, unsigned targetGrouping, Galois16Methods cksumMethod) { if(!_initSuccess) return false; outputExponents.clear(); if(method == GF16OCL_AUTO) method = default_method(); _setupMethod = method; _setupTargetInputBatch = targetInputBatch; _setupTargetIters = targetIters; _setupTargetGrouping = targetGrouping; reset_state(); coeffType = GF16OCL_COEFF_NORMAL; statBatchesStarted = 0; if(!gf || gfMethod != cksumMethod) gf.reset(new Galois16Mul(cksumMethod)); gfMethod = cksumMethod; sliceSizeCksum = sliceSize + gf->info().cksumSize; outputsInterleaved = 1; return true; } bool PAR2ProcOCL::setRecoverySlices(unsigned _numOutputs, const uint16_t* outputExp) { if(_numOutputs == 0) { outputExponents.clear(); return true; } // check if coeffs are sequential bool coeffIsSeq = false; if(coeffType != GF16OCL_COEFF_LOG && outputExp) { coeffIsSeq = true; uint16_t coeffBase = outputExp[0]; // we don't support _numOutputs < 1 for(unsigned i=1; i<_numOutputs; i++) { if(outputExp[i] != coeffBase+i) { coeffIsSeq = false; break; } } } if(_numOutputs != outputExponents.size() || (coeffType == GF16OCL_COEFF_LOG_SEQ && !coeffIsSeq)) { // need to re-init as the code assumes a fixed number of outputs outputExponents = std::vector(_numOutputs); if(!setup_kernels(_setupMethod, _setupTargetInputBatch, _setupTargetIters, _setupTargetGrouping, coeffIsSeq)) return false; } assert(outputExp || coeffType == GF16OCL_COEFF_NORMAL); // TODO: if outputs not specified, and a Log method is specified, need to re-init away from that method if(outputExp) memcpy(outputExponents.data(), outputExp, outputExponents.size()*sizeof(uint16_t)); if(coeffType == GF16OCL_COEFF_LOG) { cl::Event writeEvent; queue.enqueueWriteBuffer(buffer_outExp, CL_FALSE, 0, outputExponents.size()*sizeof(uint16_t), outputExponents.data(), &queueEvents, &writeEvent); queueEvents.clear(); queueEvents.reserve(2); queueEvents.push_back(writeEvent); } else if(coeffType == GF16OCL_COEFF_LOG_SEQ) { kernelMul.setArg(3, outputExponents[0]); kernelMulAdd.setArg(3, outputExponents[0]); kernelMulLast.setArg(4, outputExponents[0]); kernelMulAddLast.setArg(4, outputExponents[0]); } return true; } void PAR2ProcOCL::reset_state() { currentStagingInputs = 0; currentStagingArea = 0; stagingActiveCount = 0; for(auto& area : staging) { area.event = cl::Event(); // clear any existing event area.setIsActive(false); } processingAdd = false; } void PAR2ProcOCL::_deinit() { queue.finish(); queueEvents.clear(); } void PAR2ProcOCL::processing_finished() { IF_LIBUV(endSignalled = false); } std::vector PAR2ProcOCL::availableMethods(int platformId, int deviceId) { std::vector ret; if(platformId == -1 || deviceId == -1) { // we assume all methods are available ret.push_back(GF16OCL_LOOKUP); ret.push_back(GF16OCL_LOOKUP_HALF); ret.push_back(GF16OCL_LOOKUP_NOCACHE); ret.push_back(GF16OCL_LOOKUP_HALF_NOCACHE); ret.push_back(GF16OCL_LOOKUP_GRP2); ret.push_back(GF16OCL_LOOKUP_GRP2_NOCACHE); /* log methods are known to fail on some platforms, so disable for now TODO: debug these and enable ret.push_back(GF16OCL_LOG); ret.push_back(GF16OCL_LOG_SMALL); ret.push_back(GF16OCL_LOG_SMALL2); ret.push_back(GF16OCL_LOG_TINY); ret.push_back(GF16OCL_LOG_SMALL_LMEM); ret.push_back(GF16OCL_LOG_TINY_LMEM); */ //ret.push_back(GF16OCL_SHUFFLE); ret.push_back(GF16OCL_BY2); } else { if(platformId >= (int)platforms.size()) return ret; std::vector devices; platforms[platformId].getDevices(CL_DEVICE_TYPE_ALL, &devices); if(deviceId >= (int)devices.size()) return ret; cl::Context context(devices[deviceId]); // TODO: actually check capabilities ret.push_back(GF16OCL_LOOKUP); ret.push_back(GF16OCL_LOOKUP_HALF); ret.push_back(GF16OCL_LOOKUP_NOCACHE); ret.push_back(GF16OCL_LOOKUP_HALF_NOCACHE); ret.push_back(GF16OCL_LOOKUP_GRP2); // TODO: consider restricting to platforms with 32b word size (currently it just forces 32b word size) ret.push_back(GF16OCL_LOOKUP_GRP2_NOCACHE); /* log methods are known to fail on some platforms, so disable for now ret.push_back(GF16OCL_LOG); ret.push_back(GF16OCL_LOG_SMALL); ret.push_back(GF16OCL_LOG_SMALL2); ret.push_back(GF16OCL_LOG_TINY); ret.push_back(GF16OCL_LOG_SMALL_LMEM); ret.push_back(GF16OCL_LOG_TINY_LMEM); */ ret.push_back(GF16OCL_BY2); } return ret; } Galois16OCLMethods PAR2ProcOCL::default_method() const { // TODO: determine best method return GF16OCL_LOOKUP; } // reduce slice size bool PAR2ProcOCL::setCurrentSliceSize(size_t newSliceSize) { setSliceSize(newSliceSize); if(sliceSizeCksum > allocatedSliceSize) { // need to re-init everything auto outExp = outputExponents; if(!init(_setupMethod, _setupTargetInputBatch, _setupTargetIters, _setupTargetGrouping)) return false; if(!outExp.empty()) { if(!setRecoverySlices(outExp.size(), outExp.data())) return false; } return true; } size_t sliceGroups = (sliceSizeCksum+bytesPerGroup -1) / bytesPerGroup; processRange = cl::NDRange(sliceGroups * wgSize, processRange[1]); sliceSizeAligned = sliceGroups*bytesPerGroup; return true; } struct transfer_data_ocl { bool finish; // false = prepare, true = finish PAR2ProcOCL* parent; void* local; cl::Buffer* remote; size_t remoteOffset; size_t sliceLen, totalLen; Galois16Mul* gf; // prepare specific size_t srcLen; unsigned submitInBufs; unsigned inBufId; int oclPlatVersion; NOTIFY_DECL(cbPrep, promPrep); // finish specific NOTIFY_BOOL_DECL(cbOut, promOut); int cksumSuccess; unsigned grpSize; unsigned region; }; #ifdef USE_LIBUV void PAR2ProcOCL::_notifySent(void* _req) { auto req = static_cast(_req); pendingInCallbacks--; if(req->cbPrep && req->local) req->cbPrep(); delete req; // handle possibility of _notifySent being called after the last _notifyProc if(endSignalled && isEmpty() && progressCb) progressCb(0); // we got this callback after processing has finished -> need to flag to front-end that we're now done } #endif PAR2ProcBackendAddResult PAR2ProcOCL::canAdd() const { if(staging[currentStagingArea].getIsActive()) return PROC_ADD_FULL; return stagingActiveCount_get() < staging.size()-1 ? PROC_ADD_OK : PROC_ADD_OK_BUSY; } #ifndef USE_LIBUV void PAR2ProcOCL::waitForAdd() { IPAR2ProcBackend::_waitForAdd(staging[currentStagingArea]); } #endif void PAR2ProcOCL::transfer_slice(ThreadMessageQueue& q) { struct transfer_data_ocl* data; while((data = static_cast(q.pop())) != NULL) { // TODO: consider doing a single mapping for the entire slice (if not, consider async mapping) if(data->finish) { void* remote = data->parent->queue.enqueueMapBuffer(*(data->remote), CL_TRUE, CL_MAP_READ, data->remoteOffset, data->totalLen*data->grpSize); if(data->grpSize == 2) { // TODO: look at a way to avoid unnecessary map/unmap calls data->cksumSuccess = data->gf->finish_grp2_cksum(data->local, remote, data->sliceLen, data->region & (data->grpSize-1)); } else { data->cksumSuccess = data->gf->copy_cksum_check(data->local, remote, data->sliceLen); } data->parent->queue.enqueueUnmapMemObject(*(data->remote), remote); NOTIFY_DONE(data, _queueRecv, data->promOut, data->cksumSuccess); } else { if(data->local) { void* remote = data->parent->queue.enqueueMapBuffer(*(data->remote), CL_TRUE, data->oclPlatVersion>=1002 ? CL_MAP_WRITE_INVALIDATE_REGION : CL_MAP_WRITE, data->remoteOffset, data->totalLen); data->gf->copy_cksum(remote, data->local, data->srcLen, data->sliceLen); data->parent->queue.enqueueUnmapMemObject(*(data->remote), remote); } if(data->submitInBufs) { // queue async compute data->parent->run_kernel(data->inBufId, data->submitInBufs); } // signal main thread that prepare has completed NOTIFY_DONE(data, _queueSent, data->promPrep); } IF_NOT_LIBUV(delete data); } } FUTURE_RETURN_T PAR2ProcOCL::addInput(const void* buffer, size_t size, uint16_t inputNum, bool flush IF_LIBUV(, const PAR2ProcPlainCb& cb)) { IF_NOT_LIBUV(return) _addInput(buffer, size, inputNum, flush IF_LIBUV(, cb)); } FUTURE_RETURN_T PAR2ProcOCL::addInput(const void* buffer, size_t size, const uint16_t* coeffs, bool flush IF_LIBUV(, const PAR2ProcPlainCb& cb)) { IF_NOT_LIBUV(return) _addInput(buffer, size, coeffs, flush IF_LIBUV(, cb)); } template FUTURE_RETURN_T PAR2ProcOCL::_addInput(const void* buffer, size_t size, T inputNumOrCoeffs, bool flush IF_LIBUV(, const PAR2ProcPlainCb& cb)) { auto& area = staging[currentStagingArea]; // detect if busy assert(!area.getIsActive()); set_coeffs(area, currentStagingInputs, inputNumOrCoeffs); struct transfer_data_ocl* data = new struct transfer_data_ocl; data->finish = false; data->local = (void*)buffer; data->srcLen = size; data->parent = this; data->remote = &area.input; data->remoteOffset = currentStagingInputs * sliceSizeAligned; data->sliceLen = sliceSize; data->totalLen = sliceSizeCksum; data->gf = gf.get(); data->oclPlatVersion = oclPlatVersion; IF_LIBUV(data->cbPrep = cb); currentStagingInputs++; data->submitInBufs = (flush || currentStagingInputs == inputBatchSize || ( // allow submitting early if there's no active processing stagingActiveCount_get() == 0 && staging.size() > 1 && currentStagingInputs >= minInBatchSize )) ? currentStagingInputs : 0; data->inBufId = currentStagingArea; if(data->submitInBufs) { stagingActiveCount_inc(); area.setIsActive(true); // lock this buffer until processing is complete statBatchesStarted++; currentStagingInputs = 0; if(++currentStagingArea == staging.size()) currentStagingArea = 0; } IF_LIBUV(pendingInCallbacks++); IF_NOT_LIBUV(auto future = data->promPrep.get_future()); transferThread.send(data); IF_NOT_LIBUV(return future); } void PAR2ProcOCL::dummyInput(uint16_t inputNum, bool flush) { auto& area = staging[currentStagingArea]; // detect if busy assert(!area.getIsActive()); set_coeffs(area, currentStagingInputs, inputNum); currentStagingInputs++; if(currentStagingInputs == inputBatchSize || flush || (stagingActiveCount_get() == 0 && staging.size() > 1 && currentStagingInputs >= minInBatchSize)) { stagingActiveCount_inc(); area.setIsActive(true); // lock this buffer until processing is complete statBatchesStarted++; run_kernel(currentStagingArea, currentStagingInputs); currentStagingInputs = 0; if(++currentStagingArea == staging.size()) currentStagingArea = 0; } } bool PAR2ProcOCL::fillInput(const void* buffer) { void* remote = queue.enqueueMapBuffer(staging[currentStagingArea].input, CL_TRUE, oclPlatVersion>=1002 ? CL_MAP_WRITE_INVALIDATE_REGION : CL_MAP_WRITE, currentStagingInputs * sliceSizeAligned, sliceSizeAligned); gf->copy_cksum(remote, buffer, sliceSize, sliceSize); queue.enqueueUnmapMemObject(staging[currentStagingArea].input, remote); if(++currentStagingInputs == inputBatchSize) { currentStagingInputs = 0; if(++currentStagingArea == staging.size()) { currentStagingArea = 0; return true; // all filled } } return false; } #include "gfmat_coeff.h" void PAR2ProcOCL::set_coeffs(PAR2ProcOCLStaging& area, unsigned idx, uint16_t inputNum) { uint16_t inputLog = gfmat_input_log(inputNum); auto& coeffs = area.procCoeffs; if(coeffType != GF16OCL_COEFF_NORMAL) { coeffs[idx] = inputLog; } else { for(unsigned i=0; ifinish = false; data->local = NULL; data->parent = this; data->submitInBufs = currentStagingInputs; data->inBufId = currentStagingArea; data->gf = gf.get(); data->oclPlatVersion = oclPlatVersion; stagingActiveCount_inc(); staging[currentStagingArea].setIsActive(true); // lock this buffer until processing is complete statBatchesStarted++; currentStagingInputs = 0; if(++currentStagingArea == staging.size()) currentStagingArea = 0; IF_LIBUV(pendingInCallbacks++); transferThread.send(data); } struct recv_data { PAR2ProcOCL* parent; NOTIFY_BOOL_DECL(cb, prom); }; #ifdef USE_LIBUV void PAR2ProcOCL::_notifyRecv(void* _req) { auto req = static_cast(_req); pendingOutCallbacks--; req->cbOut(req->cksumSuccess); delete req; if(pendingOutCallbacks < 1 && deinitCallback) deinit(deinitCallback); } #endif FUTURE_RETURN_BOOL_T PAR2ProcOCL::getOutput(unsigned index, void* output IF_LIBUV(, const PAR2ProcOutputCb& cb)) { struct transfer_data_ocl* data = new struct transfer_data_ocl; data->finish = true; data->parent = this; data->remote = &buffer_output; data->remoteOffset = index*sliceSizeAligned; data->sliceLen = sliceSize; data->totalLen = sliceSizeAligned; data->gf = gf.get(); data->oclPlatVersion = oclPlatVersion; data->local = output; data->region = index; data->grpSize = 1; if(outputsInterleaved > 1 && index < ((unsigned)outputExponents.size() & ~(outputsInterleaved-1))) { data->grpSize = outputsInterleaved; data->remoteOffset = (index & ~(outputsInterleaved-1))*sliceSizeAligned; } #ifdef USE_LIBUV data->cbOut = cb; pendingOutCallbacks++; #else auto future = data->promOut.get_future(); #endif transferThread.send(data); IF_NOT_LIBUV(return future); } typedef struct PAR2ProcBackendBaseComputeReq compute_req; #ifdef USE_LIBUV void PAR2ProcOCL::_notifyProc(void* _req) { auto req = static_cast(_req); stagingActiveCount_dec(); staging[req->procIdx].setIsActive(false); // if add was blocked, allow adds to continue - calling application will need to listen to this event to know to continue if(progressCb) progressCb(req->numInputs); delete req; } #endif static void CL_CALLBACK kernel_event_callback(cl_event, cl_int, void* _req) { auto req = static_cast(_req); #ifdef USE_LIBUV req->parent->_queueProc.notify(req); #else req->parent->stagingActiveCount_dec(); req->parent->_setAreaActive(req->procIdx, false); delete req; #endif } void PAR2ProcOCL::run_kernel(unsigned buf, unsigned numInputs) { auto& area = staging[buf]; // transfer coefficient list cl::Event coeffEvent; queue.enqueueWriteBuffer(area.coeffs, CL_FALSE, 0, inputBatchSize * (coeffType!=GF16OCL_COEFF_NORMAL ? 1 : outputExponents.size()) * sizeof(uint16_t), area.procCoeffs.data(), NULL, &coeffEvent); queueEvents.push_back(coeffEvent); // invoke kernel cl::Kernel* kernel; if(numInputs == inputBatchSize) { kernel = processingAdd ? &kernelMulAdd : &kernelMul; } else { // incomplete kernel -> need to pass in number of inputs to read from kernel = processingAdd ? &kernelMulAddLast : &kernelMulLast; kernel->setArg(3, numInputs); } processingAdd = true; kernel->setArg(1, area.input); kernel->setArg(2, area.coeffs); // TODO: try-catch to detect errors (e.g. out of resources) queue.enqueueNDRangeKernel(*kernel, cl::NullRange, processRange, workGroupRange, &queueEvents, &area.event); queueEvents.clear(); // for coeffType!=GF16OCL_COEFF_NORMAL, assume that the outputs are transferred by the time we enqueue the next kernel // when kernel finishes auto* req = new compute_req; req->numInputs = numInputs; req->procIdx = buf; req->parent = this; area.event.setCallback(CL_COMPLETE, kernel_event_callback, req); queue.flush(); // ensure the kernel is executed } bool PAR2ProcOCL::getPlatform(cl::Platform& platform, int platformId) { if(platformId == -1) { try { platform = cl::Platform::getDefault(); } catch(cl::Error const&) { return false; } } else { if(platformId >= (int)platforms.size()) return false; platform = platforms[platformId]; } return true; } std::vector PAR2ProcOCL::getPlatforms() { std::vector ret(platforms.size()); for(unsigned i=0; i(); } return ret; } int PAR2ProcOCL::defaultPlatformId() { cl::Platform platform; try { platform = cl::Platform::getDefault(); } catch(cl::Error const&) { return -1; } const auto vendor = platform.getInfo(); const auto name = platform.getInfo(); int id = 0; for(const auto& plat : platforms) { if(vendor == plat.getInfo() && name == plat.getInfo()) return id; id++; } return -1; } int PAR2ProcOCL::defaultDeviceId(int platformId) { cl::Platform platform; if(!getPlatform(platform, platformId)) return -1; std::vector devices; platform.getDevices(CL_DEVICE_TYPE_ALL, &devices); // match first GPU device that's available int firstAvailable = -1; for(unsigned i=0; i() && device.getInfo() && device.getInfo()) { if(firstAvailable == -1) firstAvailable = i; if(device.getInfo() == CL_DEVICE_TYPE_GPU) return i; // found first GPU } } return firstAvailable; } // based off getWGsizes function from clinfo size_t GF16OCL_DeviceInfo::getWGSize(const cl::Context& context, const cl::Device& device) { try { cl::Program program(context, "#define GWO(type) global type* restrict\n" "#define GRO(type) global const type* restrict\n" "#define BODY int i = get_global_id(0); out[i] = in1[i] + in2[i]\n" "#define _KRN(T, N) kernel void sum##N(GWO(T##N) out, GRO(T##N) in1, GRO(T##N) in2) { BODY; }\n" "#define KRN(N) _KRN(int, N)\n" "KRN()\n/* KRN(2)\nKRN(4)\nKRN(8)\nKRN(16) */\n", true); cl::Kernel kern(program, "sum"); return kern.getWorkGroupInfo(device); } catch(cl::Error const&) { return 0; } } GF16OCL_DeviceInfo::GF16OCL_DeviceInfo(int _id, const cl::Device& device) { id = _id; name = device.getInfo(); vendorId = device.getInfo(); type = device.getInfo(); available = device.getInfo() && device.getInfo(); supported = available && device.getInfo(); memory = device.getInfo(); maxWorkGroup = (unsigned)device.getInfo(); computeUnits = device.getInfo(); globalCache = device.getInfo(); constantMemory = device.getInfo(); localMemory = device.getInfo(); localMemoryIsGlobal = device.getInfo() == CL_GLOBAL; maxAllocation = device.getInfo(); unifiedMemory = device.getInfo(); workGroupMultiple = (unsigned)getWGSize(device, device); } std::vector PAR2ProcOCL::getDevices(int platformId) { cl::Platform platform; if(!getPlatform(platform, platformId)) return std::vector(); std::vector devices; try { platform.getDevices(CL_DEVICE_TYPE_ALL, &devices); } catch(cl::Error const&) { return {}; } std::vector ret; ret.reserve(devices.size()); for(unsigned i=0; i devices; if(deviceId == -1) { // first try GPU try { platform.getDevices(CL_DEVICE_TYPE_GPU, &devices); } catch(cl::Error const&) {} // if no GPU device found, try anything else if(devices.size() < 1) { try { platform.getDevices(CL_DEVICE_TYPE_ALL, &devices); } catch(cl::Error const&) {} } if(devices.size() < 1) return false; // no devices! // match first device that's available bool found = false; for(unsigned i=0; i() && device.getInfo() && device.getInfo()) { found = true; break; } } if(!found) return false; } else { platform.getDevices(CL_DEVICE_TYPE_ALL, &devices); if(deviceId >= (int)devices.size()) return false; device = devices[deviceId]; } return true; } par2cmdline-turbo-1.5.0/parpar/gf16/controller_ocl.h000066400000000000000000000173061524160147200223000ustar00rootroot00000000000000#ifndef __GF16_CONTROLLER_OCL #define __GF16_CONTROLLER_OCL #define CL_HPP_ENABLE_EXCEPTIONS #define CL_HPP_TARGET_OPENCL_VERSION 120 #define CL_HPP_MINIMUM_OPENCL_VERSION 110 #define CL_HPP_CL_1_2_DEFAULT_BUILD #define CL_TARGET_OPENCL_VERSION 120 #define CL_USE_DEPRECATED_OPENCL_1_1_APIS #include "controller.h" #include "threadqueue.h" // must be placed before CL/cl.hpp for some reason #include // must be included before the C++ header #include #include "gf16mul.h" #include enum Galois16OCLMethods { GF16OCL_AUTO, GF16OCL_LOOKUP, GF16OCL_LOOKUP_HALF, GF16OCL_LOOKUP_NOCACHE, GF16OCL_LOOKUP_HALF_NOCACHE, GF16OCL_LOOKUP_GRP2, GF16OCL_LOOKUP_GRP2_NOCACHE, GF16OCL_SHUFFLE, //GF16OCL_SHUFFLE2, // not implemented GF16OCL_LOG, GF16OCL_LOG_SMALL, GF16OCL_LOG_SMALL2, GF16OCL_LOG_TINY, GF16OCL_LOG_SMALL_LMEM, GF16OCL_LOG_TINY_LMEM, GF16OCL_BY2 // reference; will remove //GF16OCL_SPLITMUL }; static const char* Galois16OCLMethodsText[] = { "Auto", "Lookup", "Lookup Half", "Lookup (NoCache)", "Lookup Half (NoCache)", "Lookup Group2", "Lookup Group2 (NoCache)", "Shuffle", //"Shuffle2", "Log", "Log-SmallExp", "Log-Small", "Log-TinyExp", "Log-SmallExp (Local)", "Log-TinyExp (Local)", "ByTwo" }; enum Galois16OCLCoeffType { GF16OCL_COEFF_NORMAL = 0, GF16OCL_COEFF_LOG, GF16OCL_COEFF_LOG_SEQ, }; class GF16OCL_DeviceInfo { public: int id; std::string name; unsigned vendorId; cl_device_type type; bool available; bool supported; uint64_t memory; uint64_t globalCache; bool unifiedMemory; uint64_t constantMemory; uint64_t localMemory; bool localMemoryIsGlobal; uint64_t maxAllocation; unsigned maxWorkGroup; unsigned workGroupMultiple; unsigned computeUnits; // invalid device GF16OCL_DeviceInfo() : id(-1), vendorId(0), available(false), supported(false), memory(0), globalCache(0), constantMemory(0), localMemory(0), maxAllocation(0), maxWorkGroup(0), workGroupMultiple(0), computeUnits(0) {} GF16OCL_DeviceInfo(int _id, const cl::Device& device); private: static size_t getWGSize(const cl::Context& context, const cl::Device& device); }; typedef struct { Galois16OCLMethods id; const char* name; unsigned idealInBatch, idealIters; bool usesOutGrouping; } GF16OCL_MethodInfo; class PAR2ProcOCLStaging : public IPAR2ProcStaging { public: cl::Buffer input; cl::Buffer coeffs; cl::Event event; PAR2ProcOCLStaging() : IPAR2ProcStaging() {} }; class PAR2ProcOCL : public IPAR2ProcBackend { bool _initSuccess; // method/input parameters size_t sliceSize, sliceSizeCksum; size_t sliceSizeAligned; // OpenCL stuff cl::Device device; int _deviceId; cl::CommandQueue queue; std::vector queueEvents; cl::NDRange processRange; cl::NDRange workGroupRange; cl::Kernel kernelMulAdd; cl::Kernel kernelMulAddLast; cl::Kernel kernelMul; cl::Kernel kernelMulLast; std::vector staging; // buffers cl::Buffer buffer_outExp; Galois16OCLCoeffType coeffType; cl::Buffer buffer_output; std::vector extra_buffers; // to enable slice size adjustments size_t allocatedSliceSize; size_t bytesPerGroup; size_t wgSize; unsigned outputsPerGroup; int oclPlatVersion; // = major*1000 + minor int oclDevVersion; std::unique_ptr gf; Galois16Methods gfMethod; MessageThread transferThread; static void transfer_slice(ThreadMessageQueue& q); unsigned outputsInterleaved; // must be a power of 2 // remembered setup params Galois16OCLMethods _setupMethod; unsigned _setupTargetInputBatch, _setupTargetIters, _setupTargetGrouping; void set_coeffs(PAR2ProcOCLStaging& area, unsigned idx, uint16_t inputNum); void set_coeffs(PAR2ProcOCLStaging& area, unsigned idx, const uint16_t* inputCoeffs); template FUTURE_RETURN_T _addInput(const void* buffer, size_t size, T inputNumOrCoeffs, bool flush IF_LIBUV(, const PAR2ProcPlainCb& cb)); bool setup_kernels(Galois16OCLMethods method, unsigned targetInputBatch, unsigned targetIters, unsigned targetGrouping, bool outputSequential); void run_kernel(unsigned buf, unsigned numInputs) override; cl::Context context; static std::vector platforms; static bool getPlatform(cl::Platform& platform, int platformId = -1); static bool getDevice(cl::Device& device, int platformId = -1, int deviceId = -1); void reset_state(); #ifdef USE_LIBUV void _notifySent(void* _req) override; void _notifyRecv(void* _req) override; void _notifyProc(void* _req) override; #endif static void printError(const char* where, cl::Error const& err); // disable copy constructor PAR2ProcOCL(const PAR2ProcOCL&); PAR2ProcOCL& operator=(const PAR2ProcOCL&); public: static int load_runtime(); static inline int unload_runtime() { platforms.clear(); return unload_opencl(); } static int defaultPlatformId(); static int defaultDeviceId(int platformId = -1); static std::vector getPlatforms(); static std::vector getDevices(int platformId = -1); inline static std::string getPlatform(int platformId = -1) { cl::Platform platform; if(getPlatform(platform, platformId)) return platform.getInfo(); return {}; } inline static GF16OCL_DeviceInfo getDevice(int platformId = -1, int deviceId = -1) { cl::Device device; if(deviceId == -1) deviceId = defaultDeviceId(platformId); if(deviceId >= 0 && getDevice(device, platformId, deviceId)) { return {deviceId, device}; } return {}; } explicit PAR2ProcOCL(IF_LIBUV(uv_loop_t* _loop,) int platformId = -1, int deviceId = -1, int stagingAreas = 2); ~PAR2ProcOCL(); void setSliceSize(size_t _sliceSize) override; bool init(Galois16OCLMethods method = GF16OCL_AUTO, unsigned targetInputBatch=0, unsigned targetIters=0, unsigned targetGrouping=0, Galois16Methods cksumMethod = GF16_AUTO); PAR2ProcBackendAddResult canAdd() const override; FUTURE_RETURN_T addInput(const void* buffer, size_t size, uint16_t inputNum, bool flush IF_LIBUV(, const PAR2ProcPlainCb& cb)) override; FUTURE_RETURN_T addInput(const void* buffer, size_t size, const uint16_t* coeffs, bool flush IF_LIBUV(, const PAR2ProcPlainCb& cb)) override; void dummyInput(uint16_t inputNum, bool flush = false) override; bool fillInput(const void* buffer) override; void flush() override; FUTURE_RETURN_BOOL_T getOutput(unsigned index, void* output IF_LIBUV(, const PAR2ProcOutputCb& cb)) override; bool setCurrentSliceSize(size_t newSliceSize) override; // can only set to lower than allocated in init() bool setRecoverySlices(unsigned _numOutputs, const uint16_t* outputExp = NULL) override; inline size_t getAllocSliceSize() const { return allocatedSliceSize; } inline size_t getChunkLen() const { return bytesPerGroup; } inline unsigned getOutputGrouping() const { return outputsPerGroup; } void _deinit() override; void freeProcessingMem() override {} void processing_finished() override; inline void _setAreaActive(int area, bool active) { staging[area].setIsActive(active); } #ifndef USE_LIBUV void waitForAdd() override; FUTURE_RETURN_T endInput() override { return IPAR2ProcBackend::_endInput(staging); } #endif inline const char* getMethodName() const { return methodToText(_setupMethod); } inline unsigned getStagingAreas() const { return staging.size(); } static GF16OCL_MethodInfo info(Galois16OCLMethods method); inline GF16OCL_MethodInfo info() const { return info(_setupMethod); } inline GF16OCL_DeviceInfo deviceInfo() { return {_deviceId, device}; } Galois16OCLMethods default_method() const; static std::vector availableMethods(int platformId = -1, int deviceId = -1); static inline const char* methodToText(Galois16OCLMethods m) { return Galois16OCLMethodsText[(int)m]; } }; #endif // defined(__GF16_CONTROLLER_OCL) par2cmdline-turbo-1.5.0/parpar/gf16/controller_ocl_init.cpp000066400000000000000000002326061524160147200236600ustar00rootroot00000000000000#include #include // snprintf #include "../src/stdint.h" #include // strstr #include // std::stringstream #include "controller_ocl.h" #include "gf16_global.h" // GF16_POLYNOMIAL // for viewing compiled code, uncomment //#define DUMP_ASM // uncomment to prefer using the workgroup multiple instead of the max workgroup size // it seems like using the max width on GCN is usually ideal, but on Fermi and older, width is too wide that it hurts perf //#define OCL_PREFER_WORKGROUP_MULTIPLE 8 #ifdef DUMP_ASM # include // std::ofstream #endif #define STRINGIFY(...) #__VA_ARGS__ #define STR_HELPER(x) #x #define STR(x) STR_HELPER(x) const static char _ocl_defines[] = "#define GF16_POLYNOMIAL " STR(GF16_POLYNOMIAL) "\n" "#define SHIFT_TOP_BIT(x) ((x) >> (sizeof(x)*8-1))\n" // shift down top bit to bottom //"#define WORKAROUND_ALIAS_BUG\n" // have seen POCL not handle pointer alias writes properly // can use 24-bit multiply if the slice size fits within 24 bits (rownum guaranteed to be within 16 bits) // TODO: may be possible to do this is if stride is less than 16M *elements*, but we don't have byte addressing, so may not be possible "#if MAX_SLICE_SIZE < 16777216\n" " #define RBUF_REF(row, stride, col) mad24((uint)(row), (uint)(stride), (uint)(col))\n" "#else\n" " #define RBUF_REF(row, stride, col) ((row) * (stride) + (col))\n" "#endif\n" "#if MAX_SLICE_SIZE < 16777216 && MAX_SLICE_SIZE*NUM_OUTPUTS <= 0xffffffffUL\n" " #define WBUF_REF(row, stride, col) mad24((uint)(row), (uint)(stride), (uint)(col))\n" "#else\n" " #define WBUF_REF(row, stride, col) ((row) * (stride) + (col))\n" "#endif\n" "#define COBUF_REF(row, col) ((row) * SUBMIT_INPUTS + (col))\n" // if we're dealing with < 4GB at a time, there's no need for 64-bit memory references "#if MAX_SLICE_SIZE*SUBMIT_INPUTS > 0xffffffffUL || MAX_SLICE_SIZE*NUM_OUTPUTS > 0xffffffffUL\n" " typedef size_t memsize_t;\n" "#else\n" // TODO: check - size_t seems to faster than uint? //" typedef uint memsize_t;\n" " typedef size_t memsize_t;\n" "#endif\n" "#if VECT_WIDTH == 1\n" " #define VECT_ONE 0x0001u\n" " #define SPREAD_POLY(v) (((short)(v) >> 15) & GF16_POLYNOMIAL)\n" " #define nat_ushort4 ushort4\n" " #define nat_uint ushort\n" " #define nat_int short\n" " #define NAT_BITS 16\n" "#elif VECT_WIDTH == 2\n" " #define VECT_ONE 0x00010001ul\n" " #define SPREAD_POLY(v) mul24(((v) >> 15) & VECT_ONE, GF16_POLYNOMIAL & 0xffff)\n" " #define nat_ushort4 uint2\n" " #define nat_uint uint\n" " #define nat_int int\n" " #define NAT_BITS 32\n" "#elif VECT_WIDTH == 4 || VECT_WIDTH == 8\n" " #define VECT_ONE (ulong)0x0001000100010001ull\n" // Nvidia driver on Linux for 8400GS seems to need the explicit ulong cast " #define SPREAD_POLY(v) ((((v) >> 15) & VECT_ONE) * (GF16_POLYNOMIAL & 0xffff))\n" " #define nat_ushort4 ulong\n" " #define nat_uint ulong\n" " #define nat_int long\n" " #define NAT_BITS 64\n" "#else\n" " #error Unsupported vector width\n" "#endif\n" "#if VECT_WIDTH == 8\n" " #define val_t ulong2\n" "#else\n" " #define val_t nat_uint\n" "#endif\n" "#ifndef EX_TABLE_ARGS\n" " #define EX_TABLE_ARGS\n" " #define EX_TABLE_ARGS_DECL\n" "#endif\n" "#ifndef EX_TABLE_KARGS_DECL\n" " #define EX_TABLE_KARGS_DECL EX_TABLE_ARGS_DECL\n" "#endif\n" // experimental flag which probably isn't worth it - only usable in LOG methods, which doesn't have many coeffs to look up //"#define COPY_COEFF\n" // only used for `nolut` kernel: copies coefficients from global memory to local before using "#ifdef COPY_COEFF\n" " #define COEFF_TABLE_TYPE __local\n" "#else\n" " #define COEFF_TABLE_TYPE __global\n" "#endif\n" // TODO: explore using uint4 for reads to maximise bandwidth "#define READ_SRC(src, idx) src[idx]\n"; const static char _ocl_method_by2[] = "#define GF_MULTIPLY gf16_multiply_by2\n" STRINGIFY( // `a` is a packed ushort, `b` is just a ushort val_t gf16_multiply_by2(val_t a, nat_uint b) { nat_int btmp = b << (NAT_BITS - 16); val_t res = SHIFT_TOP_BIT(btmp) & a; ) "\n#pragma unroll\n" STRINGIFY( for(int i=0; i<15; i++) { val_t poly = SPREAD_POLY(res); res = ((res + res) & ~VECT_ONE) ^ poly; btmp <<= 1; res ^= SHIFT_TOP_BIT(btmp) & a; } return res; } ); const static char _ocl_method_lh[] = "#define LUT_REF(name, idx) ((__local ushort*)(name) + (idx)*512)\n" "#define LUT_REF_X2(name, idx) ((__local uint*)(name) + (idx)*512)\n" "#define LUT_DECLARATION(name, size) __local ushort name[512 * (size)] __attribute__ ((aligned (VECT_WIDTH*2)))\n" "#define LUT_DECLARATION_X2(name, size) __local uint name[512 * (size)] __attribute__ ((aligned (VECT_WIDTH*2)))\n" "#define LUT_DECLARATION_X2_1(name, src) __local ushort* name = (__local ushort*)(src)\n" "#define LUT_GENERATE compute_lhtable\n" "#define LUT_GENERATE_X2 compute_lhtable_x2\n" "#define LUT_GENERATE_HAS_BARRIER\n" "#define LUT_MULTIPLY lhtable_multiply\n" "#define LUT_MULTIPLY_X2 lhtable_multiply_x2\n" STRINGIFY( ushort gf16_multiply_256(ushort v) { return (v << 8) ^ mul256poly[v >> 8]; } // always writes 4 entries to table // requires val < 256 (used for lhtable calculation) void gf16_multiply_write_lh(__local nat_uint* table, nat_uint val, nat_uint coeff, nat_ushort4 coeff256) { nat_int b = coeff << (NAT_BITS - 16); ) "\n#if VECT_WIDTH >= 2\n" STRINGIFY( nat_uint prod = 0; // do a clmul, then use a lookup to do the reduction ) "\n#pragma unroll\n" STRINGIFY( for(uint i=1; i<256; i<<=1) prod ^= mul24((uint)(val & i), (uint)coeff); prod ^= mul256poly[prod >> 16]; // align to top to be compatible with old code (also conveniently discards upper bits) prod <<= NAT_BITS - 16; ) "\n#else\n" STRINGIFY( // align a and b to the top so that the top-bit can be replicated with a single arithmetic right-shift nat_int a = val << (NAT_BITS - 8); nat_int prod = SHIFT_TOP_BIT(a) & b; ) "\n#pragma unroll\n" STRINGIFY( for(int i=0; i<7; i++) { nat_uint poly = SHIFT_TOP_BIT(prod) & ((nat_uint)(GF16_POLYNOMIAL & 0xffff) << (NAT_BITS-16)); prod = (prod << 1) ^ poly; a <<= 1; prod ^= SHIFT_TOP_BIT(a) & b; } ) "\n#endif\n" STRINGIFY( // multiply b by 2 (aligned to top) nat_uint b2 = (b << 1) ^ (SHIFT_TOP_BIT(b) & ((nat_uint)(GF16_POLYNOMIAL & 0xffff) << (NAT_BITS-16))); // multiply prod by 256 ushort prod256 = gf16_multiply_256((nat_uint)prod >> (NAT_BITS - 16)); // write out to subsequent products ) "\n#if VECT_WIDTH == 1\n" STRINGIFY( table[val/VECT_WIDTH] = prod; table[val/VECT_WIDTH + 1] = prod ^ b; table[val/VECT_WIDTH + 2] = prod ^ b2; table[val/VECT_WIDTH + 3] = prod ^ b2 ^ b; table[val/VECT_WIDTH + 256/VECT_WIDTH] = prod256; table[val/VECT_WIDTH + 256/VECT_WIDTH + 1] = prod256 ^ coeff256.s1; table[val/VECT_WIDTH + 256/VECT_WIDTH + 2] = prod256 ^ coeff256.s2; table[val/VECT_WIDTH + 256/VECT_WIDTH + 3] = prod256 ^ coeff256.s3; ) "\n#elif VECT_WIDTH == 2\n" STRINGIFY( // add `b` to second element table[val/VECT_WIDTH] = (prod ^ b) | ((nat_uint)prod >> 16); table[val/VECT_WIDTH + 1] = (prod ^ b ^ b2) | (((nat_uint)prod ^ b2) >> 16); table[val/VECT_WIDTH + 256/VECT_WIDTH] = upsample(prod256, prod256) ^ coeff256.s0; table[val/VECT_WIDTH + 256/VECT_WIDTH + 1] = upsample(prod256, prod256) ^ coeff256.s1; ) "\n#elif VECT_WIDTH == 4\n" STRINGIFY( nat_uint res = (prod ^ b2) | ((nat_uint)prod >> 32); table[val/VECT_WIDTH] = (res ^ b ^ ((nat_uint)b >> 32)) | (res >> 16); table[val/VECT_WIDTH + 256/VECT_WIDTH] = (prod256 * VECT_ONE) ^ coeff256; ) "\n#else\n" " #error Vector width not implemented\n" "#endif\n" STRINGIFY( } nat_ushort4 lh_compute_coeff256(nat_uint coeff) { nat_ushort4 result; // compute coeff*0, coeff*256, coeff*512, coeff*768 ushort coeff256 = gf16_multiply_256(coeff); ushort coeff512 = ((nat_uint)coeff256 << 1) ^ (-((nat_uint)coeff256 >> 15) & GF16_POLYNOMIAL); ) "\n#if VECT_WIDTH == 1\n" STRINGIFY( //result[0] = 0; // unused result.s1 = coeff256; result.s2 = coeff512; result.s3 = coeff256 ^ coeff512; ) "\n#elif VECT_WIDTH == 2\n" STRINGIFY( result.s0 = (uint)coeff256 << 16; result.s1 = upsample((ushort)(coeff256 ^ coeff512), coeff512); ) "\n#elif VECT_WIDTH == 4\n" STRINGIFY( result = upsample(upsample((ushort)(coeff256 ^ coeff512), coeff512), (uint)coeff256 << 16); ) "\n#else\n" " #error Vector width not implemented\n" "#endif\n" STRINGIFY( return result; } void compute_lhtable(__local ushort* table, __global const ushort* restrict coeffs, const ushort numCoeff) { barrier(CLK_LOCAL_MEM_FENCE); ) "\n#ifdef WORKAROUND_ALIAS_BUG\n" STRINGIFY( if(((ulong)table & (VECT_WIDTH*2-1)) != 0) { // guaranteed to be false table[0] = 0; // never executed but needed for some reason } else ) "\n#endif\n" STRINGIFY( nat_uint localOffset = get_local_id(0)*4; // assume workgroup size is a power of 2 ) "\n#if COL_GROUP_SIZE*4 > 256\n" STRINGIFY( // process multiple coefficients at a time for(nat_uint coeffBase=0; coeffBase>8) | 0x1000100; return upsample( (ushort)(table[(val>>16) & 0xff] ^ table[(val_h>>16) & 0x1ff]), (ushort)(table[val & 0xff] ^ table[val_h & 0x1ff]) ); ) "\n#else\n" STRINGIFY( nat_uint result = table[val & 0xff] ^ table[((val>>8) & 0xff) + 256]; ) "\n#pragma unroll\n" STRINGIFY( for(nat_uint v=1; v>= 16; result |= (nat_uint)(table[val & 0xff] ^ table[((val>>8) & 0xff) + 256]) << (v*16); } return result; ) "\n#endif\n" STRINGIFY( } ) "\n#if VECT_WIDTH==2 && defined(WRITE_GRP2)\n" STRINGIFY( // LookupGrp2 stuff inline uint lh_mul256_x2(uint val) { uint val256 = upsample( mul256poly[val >> 24], mul256poly[(val >> 8) & 0xff] ); return ((val & 0xff00ff) << 8) ^ val256; } // writes two (low+high) entries void gf16_multiply_write_lh_x2(__local nat_uint* table, nat_uint val, uint coeffPair, uint coeff256Pair) { // align `a` to the top so that the top-bit can be replicated with a single arithmetic right-shift nat_int a = val << (NAT_BITS - 8); uint prod = SHIFT_TOP_BIT(a) & coeffPair; ) "\n#pragma unroll\n" STRINGIFY( for(int i=0; i<7; i++) { uint poly = SPREAD_POLY(prod); prod = ((prod + prod) & ~VECT_ONE) ^ poly; a <<= 1; prod ^= SHIFT_TOP_BIT(a) & coeffPair; } uint coeff2Pair = ((coeffPair + coeffPair) & ~VECT_ONE) ^ SPREAD_POLY(coeffPair); table[val] = prod; table[val+1] = prod ^ coeffPair; table[val+2] = prod ^ coeff2Pair; table[val+3] = prod ^ coeff2Pair ^ coeffPair; uint coeff512Pair = ((coeff256Pair + coeff256Pair) & ~VECT_ONE) ^ SPREAD_POLY(coeff256Pair); uint prod256 = lh_mul256_x2(prod); table[val + 256] = prod256; table[val + 257] = prod256 ^ coeff256Pair; table[val + 258] = prod256 ^ coeff512Pair; table[val + 259] = prod256 ^ coeff512Pair ^ coeff256Pair; /* dynamic number of entries idea: for(int i=0; i 256\n" STRINGIFY( // process multiple coefficients at a time for(nat_uint coeffBase=0; coeffBase>8) | 0x1000100; return (uint2)( table[val & 0xff] ^ table[val_h & 0x1ff], table[(val>>16) & 0xff] ^ table[val_h>>16] ); } ) "\n#endif\n" STRINGIFY( ); const static char _ocl_method_ll[] = "#define LUT_REF(name, idx) ((__local ushort*)(name) + (idx)*256)\n" "#define LUT_DECLARATION(name, size) __local ushort name[256 * (size)] __attribute__ ((aligned (VECT_WIDTH*2)))\n" "#define LUT_GENERATE compute_lltable\n" "#define LUT_GENERATE_HAS_BARRIER\n" "#define LUT_MULTIPLY lltable_multiply\n" STRINGIFY( ushort gf16_multiply_256(ushort v) { return (v << 8) ^ mul256poly[v >> 8]; } // as gf16_multiply_write_lh, but doesn't write 256x entries void gf16_multiply_write_ll(__local nat_uint* table, nat_uint val, nat_uint coeff) { // align a and b to the top so that the top-bit can be replicated with a single arithmetic right-shift nat_int b = coeff << (NAT_BITS - 16); ) "\n#if VECT_WIDTH >= 2\n" STRINGIFY( nat_uint prod = 0; ) "\n#pragma unroll\n" STRINGIFY( for(uint i=1; i<256; i<<=1) prod ^= mul24((uint)(val & i), (uint)coeff); prod ^= mul256poly[prod >> 16]; prod <<= NAT_BITS - 16; ) "\n#else\n" STRINGIFY( nat_int a = val << (NAT_BITS - 8); nat_int prod = SHIFT_TOP_BIT(a) & b; ) "\n#pragma unroll\n" STRINGIFY( for(int i=0; i<7; i++) { nat_uint poly = SHIFT_TOP_BIT(prod) & ((nat_uint)(GF16_POLYNOMIAL & 0xffff) << (NAT_BITS-16)); prod = (prod << 1) ^ poly; a <<= 1; prod ^= SHIFT_TOP_BIT(a) & b; } ) "\n#endif\n" STRINGIFY( // multiply by 2 (aligned to top) nat_uint b2 = (b << 1) ^ (SHIFT_TOP_BIT(b) & ((nat_uint)(GF16_POLYNOMIAL & 0xffff) << (NAT_BITS-16))); // write out to subsequent products ) "\n#if VECT_WIDTH == 1\n" STRINGIFY( table[val/VECT_WIDTH] = prod; table[val/VECT_WIDTH + 1] = prod ^ b; table[val/VECT_WIDTH + 2] = prod ^ b2; table[val/VECT_WIDTH + 3] = prod ^ b2 ^ b; ) "\n#elif VECT_WIDTH == 2\n" STRINGIFY( // add `b` to second element table[val/VECT_WIDTH] = (prod ^ b) | ((nat_uint)prod >> 16); table[val/VECT_WIDTH + 1] = (prod ^ b ^ b2) | (((nat_uint)prod ^ b2) >> 16); ) "\n#elif VECT_WIDTH == 4\n" STRINGIFY( nat_uint res = (prod ^ b2) | ((nat_uint)prod >> 32); table[val/VECT_WIDTH] = (res ^ b ^ ((nat_uint)b >> 32)) | (res >> 16); ) "\n#else\n" " #error Vector width not implemented\n" "#endif\n" STRINGIFY( } void compute_lltable(__local ushort* table, __global const ushort* restrict coeffs, const ushort numCoeff) { barrier(CLK_LOCAL_MEM_FENCE); ) "\n#ifdef WORKAROUND_ALIAS_BUG\n" STRINGIFY( if(((ulong)table & (VECT_WIDTH*2-1)) != 0) { // guaranteed to be false table[0] = 0; // never executed but needed for some reason } else ) "\n#endif\n" STRINGIFY( nat_uint localOffset = get_local_id(0)*4; // assume workgroup size is a power of 2 ) "\n#if COL_GROUP_SIZE*4 > 256\n" STRINGIFY( // process multiple coefficients at a time for(nat_uint coeffBase=0; coeffBase>16) & 0xff] ^ gf16_multiply_256(table[(val>>24) & 0xff])), (ushort)(table[val & 0xff] ^ gf16_multiply_256(table[(val>>8) & 0xff])) ); ) "\n#else\n" STRINGIFY( nat_uint result = table[val & 0xff] ^ gf16_multiply_256(table[(val>>8) & 0xff]); ) "\n#pragma unroll\n" STRINGIFY( for(nat_uint v=1; v>= 16; result |= (nat_uint)(table[val & 0xff] ^ gf16_multiply_256(table[(val>>8) & 0xff])) << (v*16); } return result; ) "\n#endif\n" STRINGIFY( } ); const static char _ocl_method_shuffle[] = "#undef READ_SRC\n" "#define READ_SRC gf16_shuffle_read\n" "#define WRITE_DST_OVERRIDE(dst, idx, val) gf16_shuffle_write(dst, idx, val)\n" "#define WRITE_DST_ADD_OVERRIDE(dst, idx, val) gf16_shuffle_add(dst, idx, val)\n" "#undef val_t\n" "#if VECT_WIDTH==1\n" " #define val_t uchar4\n" " #define val2_t ushort2\n" " #define nat_ucharX uchar2\n" "#elif VECT_WIDTH==2\n" " #define val_t uchar8\n" " #define val2_t ushort4\n" " #define nat_ucharX uchar4\n" "#elif VECT_WIDTH==4\n" " #define val_t uchar16\n" " #define val2_t ushort8\n" " #define nat_ucharX uchar8\n" "#else\n" " #error Unsupported vector width\n" "#endif\n" "#define LUT_REF(name, idx) ((__private uchar4*)(name) + (idx)*16)\n" "#define LUT_DECLARATION(name, size) __private uchar4 name[16 * (size)]\n" "#define LUT_GENERATE compute_shuffletable\n" "#define LUT_MULTIPLY shuffle_multiply\n" STRINGIFY( ushort gf16_mult2(const ushort v) { return (v << 1) ^ (-(v >= 0x8000) & (GF16_POLYNOMIAL & 0xffff)); } void compute_shuffletable(__private uchar4* table, __global const ushort* restrict coeffs, const ushort numCoeff) { //for(uint i=get_local_id(0); i>8, val2>>8, val3>>8); uchar4 ri; ) "\n#if GF16_POLYNOMIAL != 0x1100b\n#error Unsupported polynomial\n#endif\n" "#define MUL4(p, c) " "ri = tbl[p+1] >> (uchar)6;" "tbl[c+1] = ((tbl[p+1] << (uchar)2) | (tbl[p] >> (uchar)6)) ^ (ri << (uchar)4);" "tbl[c] = (tbl[p] << (uchar)2) ^ shuffle((uchar4)((uchar)0, (uchar)0xb, (uchar)(0xb<<1), (uchar)((0xb<<1)^0xb)), ri)\n" STRINGIFY( MUL4(0, 2); MUL4(2, 4); MUL4(4, 6); MUL4(6, 8); MUL4(8, 10); MUL4(10, 12); MUL4(12, 14); ) "\n#undef MUL4\n" STRINGIFY( } } val_t gf16_shuffle_read(__global const val_t* restrict src, const size_t idx) { const val_t data = src[idx]; return (val_t)(data.even, data.odd); } void gf16_shuffle_write(__global val_t* dst, const memsize_t offs, const val_t val) { *(__global val2_t*)(dst + offs) = upsample(val.hi, val.lo); } void gf16_shuffle_add(__global val_t* dst, const memsize_t offs, const val_t val) { *(__global val2_t*)(dst + offs) ^= upsample(val.hi, val.lo); } inline val_t shuffle_multiply(__private const uchar4* table, val_t val) { nat_ucharX resLo = shuffle(table[0], val.lo) ^ shuffle(table[8], val.hi); nat_ucharX resHi = shuffle(table[1], val.lo) ^ shuffle(table[9], val.hi); resLo ^= shuffle(table[2], val.lo >>(uchar)2) ^ shuffle(table[10], val.hi >>(uchar)2); resHi ^= shuffle(table[3], val.lo >>(uchar)2) ^ shuffle(table[11], val.hi >>(uchar)2); resLo ^= shuffle(table[4], val.lo >>(uchar)4) ^ shuffle(table[12], val.hi >>(uchar)4); resHi ^= shuffle(table[5], val.lo >>(uchar)4) ^ shuffle(table[13], val.hi >>(uchar)4); resLo ^= shuffle(table[6], val.lo >>(uchar)6) ^ shuffle(table[14], val.hi >>(uchar)6); resHi ^= shuffle(table[7], val.lo >>(uchar)6) ^ shuffle(table[15], val.hi >>(uchar)6); return (val_t)(resLo, resHi); } ); const static char _ocl_method_log[] = "#define GF_MULTIPLY(a, b) gf16_multiply_log(a, b EX_TABLE_ARGS)\n" "#undef READ_SRC\n" "#define READ_SRC(src, idx) gf16_log_src(src[idx] EX_TABLE_ARGS)\n" "#if defined(OCL_METHOD_LOG_TINY) || defined(OCL_METHOD_LOG_SMALL)\n" " #define LOG_SRC(n) gf16_log_small(n EX_TABLE_ARGS)\n" "#else\n" " #define LOG_SRC(n) ((LOG_MEM_TYPE ushort*)gf16_log)[n]\n" "#endif\n" STRINGIFY( ushort gf16_log_small(nat_uint val EX_TABLE_ARGS_DECL) { if(val == 0) return 65535; ) "\n#ifdef OCL_METHOD_LOG_SMALL\n" " #if __OPENCL_C_VERSION__ >= 200\n" " nat_uint log = ctz(val);\n" " #else\n" " nat_uint log = clz((nat_uint)((val-1)^val)) ^ (NAT_BITS-1);\n" " #endif\n" STRINGIFY( val >>= log; log += ((LOG_MEM_TYPE ushort*)gf16_log)[val >> 1]; ) "\n#else\n" STRINGIFY( nat_uint log = 0; uint prep; nat_uint shift; LOG_MEM_TYPE uint* gf16_log_prep = (gf16_log + 16384/2); prep = gf16_log_prep[val & 0x7ff]; shift = prep >> 16; log += shift; val = (val >> shift) ^ (prep & 0xffff); // (repeat above) prep = gf16_log_prep[val & 0x7ff]; shift = prep >> 16; log += shift; val = (val >> shift) ^ (prep & 0xffff); ushort log2 = ((LOG_MEM_TYPE ushort*)gf16_log)[val >> 2]; ) "\n#if VECT_WIDTH == 1\n" STRINGIFY( log += add_sat(log, log2) == (ushort)65535; log += log2; ) "\n#else\n" STRINGIFY( log += log2; if(log >= 65535) log -= 65535; //if (log == 12345678 && val == 12345678) return 0; // this is an impossible condition, but for some reason on some AMD cards, it makes the val==1 case work (i.e. without it, log(1) may result in 1 instead of 0) // unable to find the reason for the above issue (though have managed to cause different results with different ways to do the same thing) - I'm filing it as a compiler bug ) "\n#endif\n" "#endif\n" STRINGIFY( return log; } val_t gf16_log_src(val_t val EX_TABLE_ARGS_DECL) { ) "\n#if VECT_WIDTH==2\n" STRINGIFY( return upsample(LOG_SRC(val >> 16), LOG_SRC(val & 0xffff)); ) "\n#else\n" STRINGIFY( val_t res = LOG_SRC(val & 0xffff); ) "\n#pragma unroll\n" STRINGIFY( for(int v=1; v>shift) & 0xffff) << shift; } return res; ) "\n#endif\n" STRINGIFY( } nat_uint gfmat_calc_coeff_log(nat_uint recBlock, ushort inCoeff) { uint result = inCoeff * (ushort)recBlock; // calc 'result %= 65535' result = (result >> 16) + (result & 65535); result += result >> 16; return result & 65535; } val_t gf16_multiply_log(val_t a, nat_uint b EX_TABLE_ARGS_DECL) { val_t result = 0; ) "\n#pragma unroll\n" STRINGIFY( for(int v=0; v> 16) + (va & 0xffff); ) "\n#endif\n" STRINGIFY( ) "\n#ifdef OCL_METHOD_EXP_SMALL\n" STRINGIFY( uint vatmp = gf16_antilog[va >> 3]; vatmp <<= va & 7; vatmp ^= gf16_antilog[8192 + (vatmp >> 16)]; va = vatmp & 0xffff; ) "\n#elif defined(OCL_METHOD_EXP_TINY)\n" STRINGIFY( uint vatmp = gf16_antilog[va >> 4]; vatmp <<= va & 15; vatmp ^= gf16_antilog[4096 + (vatmp >> 24)] << 8; vatmp &= 0xffffff; vatmp ^= gf16_antilog[4096 + (vatmp >> 16)]; va = vatmp & 0xffff; ) "\n#else\n" STRINGIFY( va = gf16_antilog[va]; ) "\n#endif\n" STRINGIFY( result |= (isZero ? 0 : va) << (v*16); a >>= 16; } return result; } ); /* // probably not that useful of an idea const static char _ocl_method_splitmul[] = "#define GF_MULTIPLY gf16_multiply_splitmul\n" STRINGIFY( val_t gf16_multiply_splitmul(val_t a, nat_uint b) { val_t result = 0; ushort ba = (b>>12)*16; ushort bb = ((b>>8) & 0xf)*16; ushort bc = ((b>>4) & 0xf)*16; ushort bd = (b & 0xf)*16; ) "\n#pragma unroll\n" STRINGIFY( for(int v=0; v> 8) & 0xff; ushort ay = a & 0xff; ushort val = mul_split1[bd + ay] ^ gf16_mul16(mul_split1[bc + ay]) ^ mul_split256[bb + ay] ^ mul_split256[bd + ax] ^ gf16_mul16(mul_split256[ba + ay] ^ mul_split256[bc + ax]) ^ mul_split4107[bb + ax] ^ gf16_mul16(mul_split4107[ba + ax]) result |= val << (v*16); a >>= 16; } return result; } ); */ // kernel sources // defined during compile: MUL_ONLY, numInputs // strategy which caches several inputs, dot-products to multiple outputs, and doesn't require a LUT per coefficient #define KERNEL_NOLUT_MULGROUP \ "(__global val_t* restrict dst, __global const val_t* restrict src, COEFF_TABLE_TYPE const ushort* restrict coeff, const nat_uint outBlk, const nat_uint numOutputs, const ushort _numInputs, __local val_t* cache EX_TABLE_ARGS_DECL) { \n"\ " const memsize_t len = get_global_size(0)*COL_GROUP_ITERS; \n"\ " const memsize_t globalCol = get_global_id(0)*COL_GROUP_ITERS; \n"\ " const uint col = get_local_id(0)*COL_GROUP_ITERS; \n"\ " __global const val_t* srcBase = src + globalCol; \n"\ " \n"\ " val_t result[OUTPUT_GROUPING][COL_GROUP_ITERS]; \n"\ " val_t val[COL_GROUP_ITERS]; \n"\ " #pragma unroll \n"\ " for(nat_uint iter=0; iter> 16; \n"\ " curCoeff &= 0xffff; \n"\ " } \n"\ " #else \n"\ " #pragma unroll \n"\ " for (nat_uint o = 0; o < numOutputs; o++) { \n"\ " curCoeff = GET_COEFF(outBlk+o, 0u); \n"\ " #pragma unroll \n"\ " for(nat_uint iter=0; iter> 16; \n"\ " curCoeff &= 0xffff; \n"\ " } \n"\ " #else \n"\ " #pragma unroll \n"\ " for (nat_uint o = 0; o < numOutputs; o++) { \n"\ " curCoeff = GET_COEFF(outBlk+o, i); \n"\ " #pragma unroll \n"\ " for(nat_uint iter=0; iter OUTPUT_GROUPING\n" STRINGIFY( // first iteration -> copy loaded data to cache //barrier(CLK_LOCAL_MEM_FENCE); // probably not needed? thread only accesses the same value that it writes KERNFN(mulgroup_cache)(dst, src, lcoeff, outBlk, OUTPUT_GROUPING, numInputs, cache EX_TABLE_ARGS); outBlk += OUTPUT_GROUPING; //barrier(CLK_LOCAL_MEM_FENCE); for (; outBlk < OUTPUTS_PER_THREAD - OUTPUT_GROUPING + 1; outBlk += OUTPUT_GROUPING) { KERNFN(mulgroup_read)(dst, src, lcoeff, outBlk, OUTPUT_GROUPING, numInputs, cache EX_TABLE_ARGS); } ) "\n#endif\n" "#if OUTPUTS_PER_THREAD == OUTPUT_GROUPING || OUTPUTS_PER_THREAD % OUTPUT_GROUPING > 0\n" STRINGIFY( ) "\n#if OUTPUTS_PER_THREAD > OUTPUT_GROUPING\n" STRINGIFY( KERNFN(mulgroup_read)(dst, src, lcoeff, outBlk, (OUTPUTS_PER_THREAD == OUTPUT_GROUPING ? OUTPUTS_PER_THREAD : OUTPUTS_PER_THREAD % OUTPUT_GROUPING), numInputs, cache EX_TABLE_ARGS); ) "\n#else\n" STRINGIFY( KERNFN(mulgroup_nocache)(dst, src, lcoeff, outBlk, (OUTPUTS_PER_THREAD == OUTPUT_GROUPING ? OUTPUTS_PER_THREAD : OUTPUTS_PER_THREAD % OUTPUT_GROUPING), numInputs, (__local val_t*)0 EX_TABLE_ARGS); ) "\n#endif\n" STRINGIFY( ) "\n#endif\n" STRINGIFY( } else { ) "\n#define OUTPUTS_THIS_THREAD (NUM_OUTPUTS % OUTPUTS_PER_THREAD)\n" STRINGIFY( ) "\n#if OUTPUTS_THIS_THREAD > OUTPUT_GROUPING\n" STRINGIFY( // first iteration -> copy loaded data to cache //barrier(CLK_LOCAL_MEM_FENCE); KERNFN(mulgroup_cache)(dst, src, lcoeff, outBlk, OUTPUT_GROUPING, numInputs, cache EX_TABLE_ARGS); outBlk += OUTPUT_GROUPING; //barrier(CLK_LOCAL_MEM_FENCE); for (; outBlk < OUTPUTS_THIS_THREAD - OUTPUT_GROUPING + 1; outBlk += OUTPUT_GROUPING) { KERNFN(mulgroup_read)(dst, src, lcoeff, outBlk, OUTPUT_GROUPING, numInputs, cache EX_TABLE_ARGS); } ) "\n#endif\n#if OUTPUTS_THIS_THREAD == OUTPUT_GROUPING || OUTPUTS_THIS_THREAD % OUTPUT_GROUPING > 0\n" STRINGIFY( ) "\n#if OUTPUTS_THIS_THREAD > OUTPUT_GROUPING\n" STRINGIFY( KERNFN(mulgroup_read)(dst, src, lcoeff, outBlk, (OUTPUTS_THIS_THREAD == OUTPUT_GROUPING ? OUTPUTS_THIS_THREAD : OUTPUTS_THIS_THREAD % OUTPUT_GROUPING), numInputs, cache EX_TABLE_ARGS); ) "\n#else\n" STRINGIFY( KERNFN(mulgroup_nocache)(dst, src, lcoeff, outBlk, (OUTPUTS_THIS_THREAD == OUTPUT_GROUPING ? OUTPUTS_THIS_THREAD : OUTPUTS_THIS_THREAD % OUTPUT_GROUPING), numInputs, (__local val_t*)0 EX_TABLE_ARGS); ) "\n#endif\n" STRINGIFY( ) "\n#endif\n" STRINGIFY( } }) "\n#undef WRITE_DST\n"; // strategy which caches several inputs, uses dot-product operations to a single output, and a LUT per coefficient const static char _ocl_kernel_cachelut[] = "#ifdef WRITE_DST_OVERRIDE\n" " #ifdef MUL_ONLY\n" " #define WRITE_DST WRITE_DST_OVERRIDE\n" " #else\n" " #define WRITE_DST WRITE_DST_ADD_OVERRIDE\n" " #endif\n" "#elif defined(MUL_ONLY)\n" " #define WRITE_DST(dst, idx, val) dst[idx] = val\n" "#else\n" " #define WRITE_DST(dst, idx, val) dst[idx] ^= val\n" "#endif\n" STRINGIFY({ const uint colLocal = get_local_id(0); const memsize_t colGlobal = colLocal + get_group_id(0)*COL_GROUP_SIZE*COL_GROUP_ITERS; const memsize_t len = get_global_size(0) * COL_GROUP_ITERS; // compute output ) "\n#if NUM_OUTPUTS <= OUTPUTS_PER_THREAD\n" STRINGIFY( const nat_uint outputsThisThread = NUM_OUTPUTS; const nat_uint outBase = 0; __global val_t* dstBase = dst + colGlobal; ) "\n#ifdef WRITE_GRP2\n" STRINGIFY( __global val_t* dstBase2 = dst + colGlobal*2; ) "\n#endif\n" STRINGIFY( ) "\n#else\n" STRINGIFY( const nat_uint outBase = get_global_id(1) * OUTPUTS_PER_THREAD; ) "\n#if NUM_OUTPUTS % OUTPUTS_PER_THREAD == 0\n" STRINGIFY( const nat_uint outputsThisThread = OUTPUTS_PER_THREAD; ) "\n#else\n" STRINGIFY( const nat_uint outputsThisThread = (get_global_id(1)+1 == get_global_size(1) ? NUM_OUTPUTS % OUTPUTS_PER_THREAD : OUTPUTS_PER_THREAD); ) "\n#endif\n" STRINGIFY( __global val_t* dstBase = dst + WBUF_REF(outBase, len, colGlobal); ) "\n#ifdef WRITE_GRP2\n" STRINGIFY( __global val_t* dstBase2 = dst + WBUF_REF(outBase, len, colGlobal*2); ) "\n#endif\n" STRINGIFY( ) "\n#endif\n" STRINGIFY( __global const val_t* srcBase = src + colGlobal; ) "\n#ifdef WRITE_GRP2\n" STRINGIFY( LUT_DECLARATION_X2(lut_table_x2, SUBMIT_INPUTS); LUT_DECLARATION_X2_1(lut_table, lut_table_x2); ) "\n#else\n" STRINGIFY( LUT_DECLARATION(lut_table, SUBMIT_INPUTS); ) "\n#endif\n" STRINGIFY( // only one output -> no need to cache (this also handles the special case for *_X2) // TODO: check if this is worth it if(outputsThisThread == 1) { LUT_GENERATE(lut_table, coeff + COBUF_REF(outBase, 0u), numInputs); for(uint iter=0; iter copy loaded data to cache uint iterBase = iter*COL_GROUP_SIZE; val_t val = READ_SRC(srcBase, 0u); cache[0][colLocal+iterBase] = val; ) "\n#ifdef WRITE_GRP2\n" STRINGIFY( uint2 result = LUT_MULTIPLY_X2(LUT_REF_X2(lut_table_x2, 0u), val); ) "\n#else\n" STRINGIFY( val_t result = LUT_MULTIPLY(LUT_REF(lut_table, 0u), val); ) "\n#endif\n" STRINGIFY( __global const val_t* srcIterBase = srcBase; ) "\n#ifdef numInputs\n#pragma unroll\n#endif\n" STRINGIFY( for (nat_uint input = 1; input < numInputs; input++) { srcIterBase += len; val = READ_SRC(srcIterBase, 0u); // copy global input to local cache to be used in subsequent iterations // TODO: investigate using async_work_group_copy cache[input][colLocal + iterBase] = val; ) "\n#ifdef WRITE_GRP2\n" STRINGIFY( result ^= LUT_MULTIPLY_X2(LUT_REF_X2(lut_table_x2, input), val); ) "\n#else\n" STRINGIFY( result ^= LUT_MULTIPLY(LUT_REF(lut_table, input), val); ) "\n#endif\n" STRINGIFY( } ) "\n#ifdef WRITE_GRP2\n" STRINGIFY( WRITE_DST(dstBase2, iterBase*2, result[0]); WRITE_DST(dstBase2, iterBase*2+1, result[1]); ) "\n#else\n" STRINGIFY( WRITE_DST(dstBase, iterBase, result); ) "\n#endif\n" STRINGIFY( srcBase += COL_GROUP_SIZE; } //barrier(CLK_LOCAL_MEM_FENCE); // subsequent iterations: use cache ) "\n#ifdef WRITE_GRP2\n" STRINGIFY( nat_uint output=2; for(; output OUTPUT_GROUPING\n" STRINGIFY( for (; outBlk < OUTPUTS_PER_THREAD - OUTPUT_GROUPING + 1; outBlk += OUTPUT_GROUPING) { KERNFN(mulgroup)(dst, src, coeff, lut_table, outBlk, OUTPUT_GROUPING, numInputs); } ) "\n#endif\n#if OUTPUTS_PER_THREAD == OUTPUT_GROUPING || OUTPUTS_PER_THREAD % OUTPUT_GROUPING > 0\n" STRINGIFY({ ) "\n#define NUM_OUTPUTS_LEFT (OUTPUTS_PER_THREAD == OUTPUT_GROUPING ? OUTPUTS_PER_THREAD : OUTPUTS_PER_THREAD % OUTPUT_GROUPING)\n" STRINGIFY( KERNFN(mulgroup)(dst, src, coeff, lut_table, outBlk, NUM_OUTPUTS_LEFT, numInputs); ) "\n#undef NUM_OUTPUTS_LEFT\n" STRINGIFY( }) "\n#endif\n" STRINGIFY( } else { ) "\n#define OUTPUTS_THIS_THREAD (NUM_OUTPUTS % OUTPUTS_PER_THREAD)\n" STRINGIFY( ) "\n#if OUTPUTS_THIS_THREAD > OUTPUT_GROUPING\n" STRINGIFY( for (; outBlk < OUTPUTS_THIS_THREAD - OUTPUT_GROUPING + 1; outBlk += OUTPUT_GROUPING) { KERNFN(mulgroup)(dst, src, coeff, lut_table, outBlk, OUTPUT_GROUPING, numInputs); } ) "\n#endif\n#if OUTPUTS_THIS_THREAD == OUTPUT_GROUPING || OUTPUTS_THIS_THREAD % OUTPUT_GROUPING > 0\n" STRINGIFY({ ) "\n#define NUM_OUTPUTS_LEFT (OUTPUTS_THIS_THREAD == OUTPUT_GROUPING ? OUTPUTS_THIS_THREAD : OUTPUTS_THIS_THREAD % OUTPUT_GROUPING)\n" STRINGIFY( KERNFN(mulgroup)(dst, src, coeff, lut_table, outBlk, NUM_OUTPUTS_LEFT, numInputs); ) "\n#undef NUM_OUTPUTS_LEFT\n" STRINGIFY( }) "\n#endif\n" STRINGIFY( } }) "\n#undef WRITE_DST\n"; #undef STRINGIFY #undef STR_HELPER #undef STR #define CEIL_DIV(a, b) (((a) + (b)-1) / (b)) // ensure value is a power of 2, rounding down if needed static inline size_t round_down_pow2(size_t v) { if((v & (v-1)) == 0) return v; // is a power of 2 (shortcut exists because this is the common case) // find target number via a float conversion // (usage of float over double does mean that this can be wrong for very large numbers, but we're not expecting these) union { float f; uint32_t u; } tmp; tmp.f = (float)v; // convert to float tmp.u &= 0xff800000; // discard mantissa return (size_t)tmp.f; // convert back to int // alternative approach, avoiding flot<>int conversion, but using bit-scans /* #ifdef _MSC_VER unsigned long idx; _BitScanReverse(&idx, v); return 1 << idx; #else int idx = __builtin_clzl(v); return 1 << ((sizeof(unsigned long)-1) ^ idx); #endif */ } GF16OCL_MethodInfo PAR2ProcOCL::info(Galois16OCLMethods method) { GF16OCL_MethodInfo ret{ method, Galois16OCLMethodsText[static_cast(method)], 8, 1, true }; switch(method) { case GF16OCL_BY2: ret.idealInBatch = 16; break; case GF16OCL_SHUFFLE: ret.idealInBatch = 4; ret.usesOutGrouping = false; break; case GF16OCL_LOG: case GF16OCL_LOG_SMALL: case GF16OCL_LOG_SMALL2: case GF16OCL_LOG_TINY: case GF16OCL_LOG_SMALL_LMEM: case GF16OCL_LOG_TINY_LMEM: ret.idealInBatch = 8; break; case GF16OCL_LOOKUP_GRP2: ret.usesOutGrouping = false; ret.idealInBatch = 4; ret.idealIters = 2; break; case GF16OCL_LOOKUP: case GF16OCL_LOOKUP_HALF: ret.usesOutGrouping = false; ret.idealInBatch = 4; ret.idealIters = 4; break; case GF16OCL_LOOKUP_NOCACHE: case GF16OCL_LOOKUP_HALF_NOCACHE: ret.idealInBatch = 4; ret.idealIters = 8; // generally little reason not to do multiple iters break; case GF16OCL_LOOKUP_GRP2_NOCACHE: ret.idealInBatch = 6; ret.idealIters = 2; break; default: break; // prevent compiler warning } return ret; } // _sliceSize must be divisible by 2 bool PAR2ProcOCL::setup_kernels(Galois16OCLMethods method, unsigned targetInputBatch, unsigned targetIters, unsigned targetGrouping, bool outputSequential) { // TODO: get device info // CL_DEVICE_HOST_UNIFIED_MEMORY (deprecated?) // CL_DEVICE_ADDRESS_BITS (max referencable memory) unsigned infoShortVecSize = device.getInfo(); // seems to usually be the same as CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT if(infoShortVecSize < 4) infoShortVecSize = 2; // assume all GPUs do 32-bit math efficiently (various nVidia platforms return 1, but 2 runs faster) if(infoShortVecSize >= 8 && method == GF16OCL_BY2) infoShortVecSize = 8; // allow BY2 to use VECT_WIDTH=8 else if(infoShortVecSize >= 4) infoShortVecSize = 4; // other than BY2, we currently only support vect-width=1,2,4 wgSize = device.getInfo(); if(device.getInfo() == 1 && device.getInfo() == 0x10de /*Nvidia*/ && wgSize > 32) { // this size is too large for Nvidia cards; we'll assume their max width is ideal for 8-bit ints, so divide it by 4 wgSize /= infoShortVecSize*2; } #ifdef OCL_PREFER_WORKGROUP_MULTIPLE size_t wgSizeMultiple = getWGSize(context, device) * OCL_PREFER_WORKGROUP_MULTIPLE; if(wgSizeMultiple && wgSizeMultiple < wgSize) wgSize = wgSizeMultiple; #endif if(wgSize > 8192) wgSize = 8192; // sanity check size_t deviceAvailConstSize = device.getInfo(); size_t deviceLocalSize = device.getInfo() - 128; // subtract a little to allow some spare space if the device needs it //size_t deviceGlobalSize = device.getInfo(); // TODO: check sliceSizeCksum*numOutputs ? unsigned numOutputs = outputExponents.size(); unsigned outputsPerThread = numOutputs; // currently, process all outputs on every kernel invocation std::stringstream sourceStream; auto methInfo = info(method); inputBatchSize = methInfo.idealInBatch; unsigned groupIterations = methInfo.idealIters; unsigned threadWordSize = infoShortVecSize*2; unsigned sizePerWorkGroup = threadWordSize * wgSize; outputsPerGroup = 8; // for nolut kernel; have seen some cards prefer '4' (on older cards?) const char* kernelCode; const char* kernelFuncs = NULL; const char* methodCode; const char* oclVerArg = ""; // method selector coeffType = GF16OCL_COEFF_NORMAL; switch(method) { case GF16OCL_BY2: while(1) { if(inputBatchSize*sizePerWorkGroup > deviceLocalSize) inputBatchSize = (unsigned)(deviceLocalSize / sizePerWorkGroup); if(inputBatchSize < 1 && deviceLocalSize >= 2048) { // try reducing workgroup if too large if(wgSize > 256) { wgSize = 256; sizePerWorkGroup = threadWordSize * wgSize; inputBatchSize = 16; continue; } } break; } if(targetInputBatch) inputBatchSize = targetInputBatch; kernelCode = _ocl_kernel_nolut; kernelFuncs = _ocl_kernel_nolut_funcs; methodCode = _ocl_method_by2; break; case GF16OCL_SHUFFLE: //case GF16OCL_SHUFFLE2: oclVerArg = "-cl-std=CL1.1"; infoShortVecSize = 2; // currently only implemented for 32-bit on GPUs threadWordSize = infoShortVecSize*4; // process two words, so double per thread word size sizePerWorkGroup = threadWordSize * wgSize; if(targetInputBatch) inputBatchSize = targetInputBatch; // TODO: compute ideal iteration count while(1) { groupIterations = (unsigned)round_down_pow2( deviceLocalSize / (sizePerWorkGroup * inputBatchSize) ); if(groupIterations < 1 && deviceLocalSize >= 2048) { // try reducing workgroup if too large if(wgSize > 256) { wgSize = 256; sizePerWorkGroup = threadWordSize * wgSize; continue; } // try reducing input batch size if(inputBatchSize > 2) { inputBatchSize = 2; continue; } // try reducing workgroup again if(wgSize > 64) { wgSize = 64; sizePerWorkGroup = threadWordSize * wgSize; continue; } } break; } kernelCode = _ocl_kernel_cachelut; methodCode = _ocl_method_shuffle; break; case GF16OCL_LOG: case GF16OCL_LOG_SMALL: case GF16OCL_LOG_SMALL2: case GF16OCL_LOG_TINY: case GF16OCL_LOG_SMALL_LMEM: case GF16OCL_LOG_TINY_LMEM: coeffType = outputSequential ? GF16OCL_COEFF_LOG_SEQ : GF16OCL_COEFF_LOG; { size_t reqLocalMem = 0; if(method == GF16OCL_LOG_SMALL_LMEM) reqLocalMem = 16384+256; if(method == GF16OCL_LOG_TINY_LMEM) reqLocalMem = 8192+512; if(deviceLocalSize < reqLocalMem) return false; deviceLocalSize -= reqLocalMem; } while(1) { if(inputBatchSize*sizePerWorkGroup > deviceLocalSize) inputBatchSize = (unsigned)(deviceLocalSize / sizePerWorkGroup); if(inputBatchSize < 1 && deviceLocalSize >= 2048) { // try reducing workgroup if too large if(wgSize > 256) { wgSize = 256; sizePerWorkGroup = threadWordSize * wgSize; inputBatchSize = 8; continue; } } break; } if(targetInputBatch) inputBatchSize = targetInputBatch; kernelCode = _ocl_kernel_nolut; kernelFuncs = _ocl_kernel_nolut_funcs; sourceStream << "#define OCL_METHOD_LOG\n"; if(method == GF16OCL_LOG_SMALL || method == GF16OCL_LOG_SMALL2 || method == GF16OCL_LOG_SMALL_LMEM) sourceStream << "#define OCL_METHOD_EXP_SMALL\n"; if(method == GF16OCL_LOG_TINY || method == GF16OCL_LOG_TINY_LMEM) sourceStream << "#define OCL_METHOD_EXP_TINY\n"; if(method == GF16OCL_LOG_SMALL2) sourceStream << "#define OCL_METHOD_LOG_TINY\n"; methodCode = _ocl_method_log; break; case GF16OCL_LOOKUP: case GF16OCL_LOOKUP_HALF: case GF16OCL_LOOKUP_NOCACHE: case GF16OCL_LOOKUP_HALF_NOCACHE: case GF16OCL_LOOKUP_GRP2: case GF16OCL_LOOKUP_GRP2_NOCACHE: default: if(method == GF16OCL_LOOKUP_GRP2 || method == GF16OCL_LOOKUP_GRP2_NOCACHE) { if(method == GF16OCL_LOOKUP_GRP2) outputsPerThread += outputsPerThread & 1; // outputsPerThread must be a multiple of two sourceStream << "#define WRITE_GRP2 1\n"; infoShortVecSize = 2; // only supported on 32b // recompute the two variables dependent on infoShortVecSize threadWordSize = infoShortVecSize*2; sizePerWorkGroup = threadWordSize * wgSize; outputsInterleaved = 2; } if(method == GF16OCL_LOOKUP_NOCACHE || method == GF16OCL_LOOKUP_HALF_NOCACHE || method == GF16OCL_LOOKUP_GRP2_NOCACHE) { unsigned tables = (unsigned)(deviceLocalSize / (method == GF16OCL_LOOKUP_HALF_NOCACHE ? 512 : 1024)); if(tables >= 96) inputBatchSize = 8; else if(tables >= 60) inputBatchSize = 6; else if(tables >= 32) inputBatchSize = 4; else inputBatchSize = 2; outputsPerGroup = tables / inputBatchSize; if(outputsPerGroup > 16) outputsPerGroup = 16; if(method == GF16OCL_LOOKUP_GRP2_NOCACHE && outputsPerGroup > 1) { outputsPerGroup &= ~1; // must be a multiple of 2 if outputs are written in pairs targetGrouping &= ~1; } if(targetInputBatch) inputBatchSize = targetInputBatch; kernelCode = _ocl_kernel_lut; kernelFuncs = _ocl_kernel_lut_funcs; } else { if(targetInputBatch) inputBatchSize = targetInputBatch; // TODO: compute ideal iteration count unsigned tableSize = method == GF16OCL_LOOKUP_HALF ? 512 : 1024; if(method == GF16OCL_LOOKUP_GRP2) tableSize *= 2; while(1) { groupIterations = (unsigned)round_down_pow2( (deviceLocalSize - inputBatchSize*tableSize) / (sizePerWorkGroup * inputBatchSize) ); if(groupIterations < 1 && deviceLocalSize >= 8192) { // maybe the workgroup is too big if(wgSize > 256) { wgSize = 256; sizePerWorkGroup = threadWordSize * wgSize; continue; } // try reducing input batch size if(inputBatchSize > 2) { inputBatchSize = 2; continue; } } break; } kernelCode = _ocl_kernel_cachelut; } methodCode = (method == GF16OCL_LOOKUP_HALF || method == GF16OCL_LOOKUP_HALF_NOCACHE) ? _ocl_method_ll : _ocl_method_lh; // write multiply-by-256 reduction table sourceStream << "__constant ushort mul256poly[256] = {0"; for(int i=1; i<256; i++) { int n = i<<8; for(int b=0; b<8; b++) n = (n << 1) ^ (-(n>>15) & GF16_POLYNOMIAL); sourceStream << ',' << (n & 0xffff); } sourceStream << "};\n"; break; } if(inputBatchSize < 1) return false; minInBatchSize = inputBatchSize; if(targetIters) groupIterations = targetIters; if(targetGrouping) outputsPerGroup = targetGrouping; if(groupIterations < 1 || outputsPerGroup < 1) return false; // for very small slices, scale down iterations/wgSize if(sizePerWorkGroup * groupIterations > sliceSizeCksum) { // scale down iterations first if(groupIterations > 1) { groupIterations = (unsigned)CEIL_DIV(sliceSizeCksum, sizePerWorkGroup); if(groupIterations < 1) groupIterations = 1; } // if iterations cannot be scaled down, scale down workgroup size next unsigned minWgSize = 1; if(kernelCode == _ocl_kernel_lut || kernelCode == _ocl_kernel_cachelut) minWgSize = 128; // if computing lookup tables, don't scale down the workgroup below this amount if(groupIterations == 1 && sizePerWorkGroup > sliceSizeCksum && wgSize > minWgSize) { wgSize = CEIL_DIV(sliceSizeCksum, threadWordSize); if(wgSize < minWgSize) wgSize = minWgSize; } } if(method == GF16OCL_LOOKUP || method == GF16OCL_LOOKUP_HALF || method == GF16OCL_LOOKUP_NOCACHE || method == GF16OCL_LOOKUP_HALF_NOCACHE || method == GF16OCL_LOOKUP_GRP2 || method == GF16OCL_LOOKUP_GRP2_NOCACHE) { // lookup method assumes workgroup is a power of two wgSize = round_down_pow2(wgSize); } sizePerWorkGroup = threadWordSize * wgSize; // code generation for log methods uint16_t* tblLog = NULL; uint16_t* tblAntiLog = NULL; unsigned tblAntiLogSize = 0, tblLogSize = 0; if(coeffType != GF16OCL_COEFF_NORMAL) { // construct log/exp table and embed into OpenCL source if(method == GF16OCL_LOG_SMALL2) { tblLog = new uint16_t[tblLogSize = 16384 + 2048*2]; } else if(0) { // half-log idea tblLog = new uint16_t[tblLogSize = 32768]; } else { tblLog = new uint16_t[tblLogSize = 65536]; tblLog[0] = 65535; // special value to represent 0 } int n = 1; if(method == GF16OCL_LOG) { tblAntiLogSize = 65536; tblAntiLog = new uint16_t[tblAntiLogSize]; for (int exp = 0; exp < 65535; exp++) { tblAntiLog[exp] = n; tblLog[n] = exp; n = (n << 1) ^ (-(n>>15) & GF16_POLYNOMIAL); } tblAntiLog[65535] = tblAntiLog[0]; // saves having to wrap around 65535 to 0 } else { int bitsCut = (method == GF16OCL_LOG_SMALL || method == GF16OCL_LOG_SMALL2 || method == GF16OCL_LOG_SMALL_LMEM ? 3 : 4); if(bitsCut == 3) tblAntiLogSize = 8192+128; else tblAntiLogSize = 4096+256; tblAntiLog = new uint16_t[tblAntiLogSize]; for (int exp = 0; exp < 65535; exp++) { if((exp & ((1<> bitsCut] = n; if(method == GF16OCL_LOG_SMALL2) { if((n & 3) == 3) tblLog[n >> 2] = exp; } else if(0) { // half-log idea if((n & 1) == 1) tblLog[n >> 1] = exp; } else tblLog[n] = exp; n = (n << 1) ^ (-(n>>15) & GF16_POLYNOMIAL); } // add reduction table uint16_t* tblALogReduction = tblAntiLog + (uint32_t)(1u << (uint32_t)(16-bitsCut)); tblALogReduction[0] = 0; for (int i = 1; i < (1<<(bitsCut+4)); i++) { n = i << (12-bitsCut); for (int j = 0; j < (bitsCut+4); j++) n = (n << 1) ^ (-(n>>15) & GF16_POLYNOMIAL); tblALogReduction[i] = n; } // add log prep table if(method == GF16OCL_LOG_SMALL2) { uint16_t* tblLogPrep = tblLog + 16384; for (int i = 0; i < 2048; i++) { int iters = 0, r = 0; n = i; while((n&3) != 3 && iters < 10) { if(n & 1) { n ^= 0x1100b; r ^= 0x1100b; } n >>= 1; r >>= 1; iters++; } // assume little endian here tblLogPrep[i*2] = r; tblLogPrep[i*2+1] = iters; } } } // try to fit antiLog table first, then log table if(deviceAvailConstSize >= tblAntiLogSize*2) { deviceAvailConstSize -= tblAntiLogSize*2; sourceStream << "__constant ushort gf16_antilog"; if(method == GF16OCL_LOG_SMALL_LMEM || method == GF16OCL_LOG_TINY_LMEM) sourceStream << "_src"; sourceStream << "[" << tblAntiLogSize << "] __attribute__ ((aligned (VECT_WIDTH*2))) = {" << tblAntiLog[0]; for (unsigned j = 1; j < tblAntiLogSize;) { unsigned amount = tblAntiLogSize - j; if(amount > 8192) amount = 8192; for (unsigned i = 0; i < amount; i++) sourceStream << ',' << tblAntiLog[j+i]; sourceStream << '\n'; // have seen some OpenCL compilers barf at really long lines, so break things up j += amount; } sourceStream << "};\n"; delete[] tblAntiLog; tblAntiLog = NULL; } if(deviceAvailConstSize >= tblLogSize*2) { sourceStream << "#define LOG_MEM_TYPE __constant\n"; // gf16_log is defined as uint to ensure it's 4-byte aligned sourceStream << "__constant uint gf16_log[" << (tblLogSize/2) << "] = {" << ((tblLog[1]<<16) | tblLog[0]); for (unsigned j = 2; j < tblLogSize;) { unsigned amount = tblLogSize - j; if(amount > 8192) amount = 8192; for(unsigned i=0; i(1, device), paramsDump); } catch(cl::Error const& err) { printError("Build Error", err); if(err.err() == CL_BUILD_PROGRAM_FAILURE || err.err() == CL_COMPILE_PROGRAM_FAILURE || err.err() == CL_LINK_PROGRAM_FAILURE) { std::cerr << program.getBuildInfo(device) << std::endl; } if(tblLog) delete[] tblLog; if(tblAntiLog) delete[] tblAntiLog; return false; } std::vector binaries = program.getInfo(); for(unsigned i=0; i(1, device), params); } catch(cl::Error const& err) { printError("Build Error", err); #ifndef GF16OCL_NO_OUTPUT if(err.err() == CL_BUILD_PROGRAM_FAILURE || err.err() == CL_COMPILE_PROGRAM_FAILURE || err.err() == CL_LINK_PROGRAM_FAILURE) { std::cerr << program.getBuildInfo(device) << std::endl; } #endif if(tblLog) delete[] tblLog; if(tblAntiLog) delete[] tblAntiLog; return false; } // variant kernels for first (mul only) & last (misaligned input count) iterations kernelMul = cl::Kernel(program, "gf16_ocl_kernel_first"); kernelMulLast = cl::Kernel(program, "gf16_ocl_kernel_only"); kernelMulAddLast = cl::Kernel(program, "gf16_ocl_kernel_last"); kernelMulAdd = cl::Kernel(program, "gf16_ocl_kernel"); cl_mem_flags bufferFlags = CL_MEM_READ_ONLY | CL_MEM_ALLOC_HOST_PTR; if(oclPlatVersion >= 1002) bufferFlags |= CL_MEM_HOST_WRITE_ONLY; for(auto& area : staging) { area.input = cl::Buffer(context, bufferFlags, inputBatchSize*sliceSizeAligned); if(coeffType != GF16OCL_COEFF_NORMAL) { area.coeffs = cl::Buffer(context, bufferFlags, inputBatchSize*sizeof(uint16_t)); area.procCoeffs.resize(inputBatchSize); } else { area.coeffs = cl::Buffer(context, bufferFlags, inputBatchSize*numOutputs*sizeof(uint16_t)); area.procCoeffs.resize(inputBatchSize*numOutputs); } } // TODO: check if supports CPU shared memory and use host mem (CL_MEM_USE_HOST_PTR) instead? avoids a transfer when retrieving output; downside is that currently our API works by the caller supplying a buffer to write into, so would be a big change // TODO: need to consider CL_DEVICE_MAX_MEM_ALLOC_SIZE and perhaps break this into multiple allocations buffer_output = cl::Buffer(context, CL_MEM_READ_WRITE | (oclPlatVersion>=1002 ? CL_MEM_HOST_READ_ONLY : 0), numOutputs*sliceSizeAligned); workGroupRange = cl::NDRange(wgSize, 1); // attach arguments to kernels kernelMul.setArg(0, buffer_output); kernelMulLast.setArg(0, buffer_output); kernelMulAddLast.setArg(0, buffer_output); kernelMulAdd.setArg(0, buffer_output); extra_buffers.clear(); cl_mem_flags transBufferFlags = CL_MEM_READ_ONLY; if(oclPlatVersion >= 1002) transBufferFlags |= CL_MEM_HOST_WRITE_ONLY; if(coeffType == GF16OCL_COEFF_LOG) { buffer_outExp = cl::Buffer(context, transBufferFlags | CL_MEM_ALLOC_HOST_PTR, numOutputs*sizeof(uint16_t)); kernelMul.setArg(3, buffer_outExp); kernelMulAdd.setArg(3, buffer_outExp); kernelMulLast.setArg(4, buffer_outExp); kernelMulAddLast.setArg(4, buffer_outExp); } else { buffer_outExp = cl::Buffer(); } // if we couldn't embed log tables directly into the source, transfer them now if(tblLog) { const cl::Buffer bufLog(context, transBufferFlags, tblLogSize*2); extra_buffers.push_back(bufLog); kernelMul.setArg(4, bufLog); kernelMulAdd.setArg(4, bufLog); kernelMulLast.setArg(5, bufLog); kernelMulAddLast.setArg(5, bufLog); if(tblAntiLog) { extra_buffers.push_back(cl::Buffer(context, transBufferFlags, tblAntiLogSize*2)); const cl::Buffer& bufALog = extra_buffers.back(); kernelMul.setArg(5, bufALog); kernelMulAdd.setArg(5, bufALog); kernelMulLast.setArg(6, bufALog); kernelMulAddLast.setArg(6, bufALog); std::vector enqueueEvents(2); queue.enqueueWriteBuffer(bufLog, CL_FALSE, 0, tblLogSize*2, tblLog, NULL, &enqueueEvents[0]); queue.enqueueWriteBuffer(bufALog, CL_FALSE, 0, tblAntiLogSize*2, tblAntiLog, NULL, &enqueueEvents[1]); cl::Event::waitForEvents(enqueueEvents); delete[] tblLog; delete[] tblAntiLog; } else { queue.enqueueWriteBuffer(bufLog, CL_TRUE, 0, tblLogSize*2, tblLog); delete[] tblLog; } } // for some implementations, errors don't show up during build, but do during execute, so try a dummy run kernelMul.setArg(1, staging[0].input); kernelMul.setArg(2, staging[0].coeffs); try { queue.enqueueNDRangeKernel(kernelMul, cl::NullRange, workGroupRange, workGroupRange); } catch(cl::Error const& err) { printError("Execute Error", err); return false; } return true; } par2cmdline-turbo-1.5.0/parpar/gf16/gf16_affine.h000066400000000000000000000150001524160147200213200ustar00rootroot00000000000000 #include "../src/hedley.h" #define FUNCS(v) \ void gf16_affine_muladd_##v(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch); \ void gf16_affine_muladd_prefetch_##v(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch, const void *HEDLEY_RESTRICT prefetch); \ void gf16_affine_muladd_multi_packed_##v(const void *HEDLEY_RESTRICT scratch, unsigned packRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch); \ void gf16_affine_muladd_multi_packpf_##v(const void *HEDLEY_RESTRICT scratch, unsigned packRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch, const void* HEDLEY_RESTRICT prefetchIn, const void* HEDLEY_RESTRICT prefetchOut); \ void gf16_affine_prepare_packed_cksum_##v(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen); \ void gf16_affine_prepare_partial_packsum_##v(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen, size_t partOffset, size_t partLen); \ void* gf16_affine_init_##v(int polynomial); \ extern int gf16_affine_available_##v FUNCS(gfni); FUNCS(avx2); FUNCS(avx512); FUNCS(bmm); #undef FUNCS int gf16_affine_finish_packed_cksum_bmm(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t sliceLen, unsigned numOutputs, unsigned outputNum, size_t chunkLen); int gf16_affine_finish_partial_packsum_bmm(void *HEDLEY_RESTRICT dst, void *HEDLEY_RESTRICT src, size_t sliceLen, unsigned numOutputs, unsigned outputNum, size_t chunkLen, size_t partOffset, size_t partLen); #ifdef PARPAR_INVERT_SUPPORT #define FUNCS(v) \ void gf16_affine_mul_##v(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch); \ void gf16_affine_muladd_multi_##v(const void *HEDLEY_RESTRICT scratch, unsigned regions, size_t offset, void *HEDLEY_RESTRICT dst, const void* const*HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch); \ void gf16_affine_muladd_multi_stridepf_##v(const void *HEDLEY_RESTRICT scratch, unsigned regions, size_t srcStride, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch, const void* HEDLEY_RESTRICT prefetch) FUNCS(gfni); FUNCS(avx2); FUNCS(avx512); FUNCS(bmm); #undef FUNCS #endif #ifdef PARPAR_INCLUDE_BASIC_OPS #define FUNCS(v) \ void gf16_affine_prepare_packed_##v(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen) FUNCS(gfni); FUNCS(avx2); FUNCS(avx512); FUNCS(bmm); #undef FUNCS void gf16_affine_finish_packed_bmm(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t sliceLen, unsigned numOutputs, unsigned outputNum, size_t chunkLen); #endif #define FUNCS(v) \ void gf16_affine2x_muladd_##v(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch); \ void gf16_affine2x_muladd_multi_packed_##v(const void *HEDLEY_RESTRICT scratch, unsigned packRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch); \ void gf16_affine2x_muladd_multi_packpf_##v(const void *HEDLEY_RESTRICT scratch, unsigned packRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch, const void* HEDLEY_RESTRICT prefetchIn, const void* HEDLEY_RESTRICT prefetchOut); \ void gf16_affine2x_prepare_packed_cksum_##v(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen); \ void gf16_affine2x_prepare_partial_packsum_##v(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen, size_t partOffset, size_t partLen); \ int gf16_affine2x_finish_packed_cksum_##v(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t sliceLen, unsigned numOutputs, unsigned outputNum, size_t chunkLen); \ int gf16_affine2x_finish_partial_packsum_##v(void *HEDLEY_RESTRICT dst, void *HEDLEY_RESTRICT src, size_t sliceLen, unsigned numOutputs, unsigned outputNum, size_t chunkLen, size_t partOffset, size_t partLen) FUNCS(gfni); FUNCS(avx2); FUNCS(avx512); #undef FUNCS #ifdef PARPAR_INVERT_SUPPORT #define FUNCS(v) \ void gf16_affine2x_mul_##v(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch); \ void gf16_affine2x_muladd_multi_##v(const void *HEDLEY_RESTRICT scratch, unsigned regions, size_t offset, void *HEDLEY_RESTRICT dst, const void* const*HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch); \ void gf16_affine2x_muladd_multi_stridepf_##v(const void *HEDLEY_RESTRICT scratch, unsigned regions, size_t srcStride, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch, const void* HEDLEY_RESTRICT prefetch); \ void gf16_affine2x_prepare_##v(void* dst, const void* src, size_t srcLen); \ void gf16_affine2x_finish_##v(void *HEDLEY_RESTRICT dst, size_t len) FUNCS(gfni); FUNCS(avx2); FUNCS(avx512); #undef FUNCS #endif #ifdef PARPAR_INCLUDE_BASIC_OPS #define FUNCS(v) \ void gf16_affine2x_prepare_packed_##v(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen); \ void gf16_affine2x_finish_packed_##v(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t sliceLen, unsigned numOutputs, unsigned outputNum, size_t chunkLen) FUNCS(gfni); FUNCS(avx2); FUNCS(avx512); #undef FUNCS #endif par2cmdline-turbo-1.5.0/parpar/gf16/gf16_affine2x_x86.h000066400000000000000000000077421524160147200223150ustar00rootroot00000000000000 #include "gf16_shuffle_x86_common.h" #if defined(_AVAILABLE) && !defined(PARPAR_SLIM_GF16) # include "gf16_checksum_x86.h" static HEDLEY_ALWAYS_INLINE void _FN(gf16_affine2x_prepare_block)(void* dst, const void* src) { _mword data = _MMI(loadu)((_mword*)src); data = separate_low_high(data); _MMI(store)((_mword*)dst, data); } static HEDLEY_ALWAYS_INLINE void _FN(gf16_affine2x_prepare_blocku)(void* dst, const void* src, size_t remaining) { _mword data = partial_load(src, remaining); data = separate_low_high(data); _MMI(store)((_mword*)dst, data); } static HEDLEY_ALWAYS_INLINE void _FN(gf16_affine2x_finish_block)(void *HEDLEY_RESTRICT dst) { _mword shuf = _MM(set_epi32)( #if MWORD_SIZE >= 64 0x0f070e06, 0x0d050c04, 0x0b030a02, 0x09010800, 0x0f070e06, 0x0d050c04, 0x0b030a02, 0x09010800, #endif #if MWORD_SIZE >= 32 0x0f070e06, 0x0d050c04, 0x0b030a02, 0x09010800, #endif 0x0f070e06, 0x0d050c04, 0x0b030a02, 0x09010800 ); _mword data = _MMI(load)((_mword*)dst); data = _MM(shuffle_epi8)(data, shuf); _MMI(store)((_mword*)dst, data); } static HEDLEY_ALWAYS_INLINE void _FN(gf16_affine2x_finish_copy_block)(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src) { _mword shuf = _MM(set_epi32)( #if MWORD_SIZE >= 64 0x0f070e06, 0x0d050c04, 0x0b030a02, 0x09010800, 0x0f070e06, 0x0d050c04, 0x0b030a02, 0x09010800, #endif #if MWORD_SIZE >= 32 0x0f070e06, 0x0d050c04, 0x0b030a02, 0x09010800, #endif 0x0f070e06, 0x0d050c04, 0x0b030a02, 0x09010800 ); _mword data = _MMI(load)((_mword*)src); data = _MM(shuffle_epi8)(data, shuf); _MMI(storeu)((_mword*)dst, data); } static HEDLEY_ALWAYS_INLINE void _FN(gf16_affine2x_finish_copy_blocku)(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t bytes) { _mword shuf = _MM(set_epi32)( #if MWORD_SIZE >= 64 0x0f070e06, 0x0d050c04, 0x0b030a02, 0x09010800, 0x0f070e06, 0x0d050c04, 0x0b030a02, 0x09010800, #endif #if MWORD_SIZE >= 32 0x0f070e06, 0x0d050c04, 0x0b030a02, 0x09010800, #endif 0x0f070e06, 0x0d050c04, 0x0b030a02, 0x09010800 ); _mword data = _MMI(load)((_mword*)src); data = _MM(shuffle_epi8)(data, shuf); partial_store((_mword*)dst, data, bytes); } #endif #if defined(PARPAR_INVERT_SUPPORT) void _FN(gf16_affine2x_prepare)(void* dst, const void* src, size_t srcLen) { #if defined(_AVAILABLE) && !defined(PARPAR_SLIM_GF16) gf16_prepare(dst, src, srcLen, sizeof(_mword), &_FN(gf16_affine2x_prepare_block), &_FN(gf16_affine2x_prepare_blocku)); _MM_END #else UNUSED(dst); UNUSED(src); UNUSED(srcLen); #endif } #endif #if defined(_AVAILABLE) && !defined(PARPAR_SLIM_GF16) # ifdef PLATFORM_AMD64 GF_PREPARE_PACKED_FUNCS(gf16_affine2x, _FNSUFFIX, sizeof(_mword), _FNPREP(gf16_affine2x_prepare_block), _FNPREP(gf16_affine2x_prepare_blocku), AFFINE2X_AMD64_INTERLEAVE, _MM_END, _mword checksum = _MMI(setzero)(), _FNPREP(gf16_checksum_block), _FNPREP(gf16_checksum_blocku), _FNPREP(gf16_checksum_exp), _FNPREP(gf16_checksum_prepare), sizeof(_mword)) # else GF_PREPARE_PACKED_FUNCS(gf16_affine2x, _FNSUFFIX, sizeof(_mword), _FNPREP(gf16_affine2x_prepare_block), _FNPREP(gf16_affine2x_prepare_blocku), 2, _MM_END, _mword checksum = _MMI(setzero)(), _FNPREP(gf16_checksum_block), _FNPREP(gf16_checksum_blocku), _FNPREP(gf16_checksum_exp), _FNPREP(gf16_checksum_prepare), sizeof(_mword)) # endif #else GF_PREPARE_PACKED_FUNCS_STUB(gf16_affine2x, _FNSUFFIX) #endif #ifdef PARPAR_INVERT_SUPPORT void _FN(gf16_affine2x_finish)(void *HEDLEY_RESTRICT dst, size_t len) { #if defined(_AVAILABLE) && !defined(PARPAR_SLIM_GF16) gf16_finish(dst, len, sizeof(_mword), &_FN(gf16_affine2x_finish_block)); _MM_END #else UNUSED(dst); UNUSED(len); #endif } #endif #if defined(_AVAILABLE) && !defined(PARPAR_SLIM_GF16) GF_FINISH_PACKED_FUNCS(gf16_affine2x, _FNSUFFIX, sizeof(_mword), _FN(gf16_affine2x_finish_copy_block), _FN(gf16_affine2x_finish_copy_blocku), 1, _MM_END, _FN(gf16_checksum_block), _FN(gf16_checksum_blocku), _FN(gf16_checksum_exp), &_FN(gf16_affine2x_finish_block), sizeof(_mword)) #else GF_FINISH_PACKED_FUNCS_STUB(gf16_affine2x, _FNSUFFIX) #endif par2cmdline-turbo-1.5.0/parpar/gf16/gf16_affine_avx10.h000066400000000000000000000434121524160147200223470ustar00rootroot00000000000000 #ifdef _AVAILABLE int _FN(gf16_affine_available) = 1; # include "gf16_shuffle_x86_prepare.h" # include "gf16_checksum_x86.h" #else int _FN(gf16_affine_available) = 0; #endif #define AFFINE2X_AMD64_INTERLEAVE 12 #include "gf16_affine2x_x86.h" #include "gf16_muladd_multi.h" #ifdef _AVAILABLE # ifdef PLATFORM_AMD64 GF_PREPARE_PACKED_FUNCS(gf16_affine, _FNSUFFIX, sizeof(_mword)*2, _FNPREP(gf16_shuffle_prepare_block), _FNPREP(gf16_shuffle_prepare_blocku), 6, _mm256_zeroupper(), _mword checksum = _MMI(setzero)(), _FNPREP(gf16_checksum_block), _FNPREP(gf16_checksum_blocku), _FNPREP(gf16_checksum_exp), _FNPREP(gf16_checksum_prepare), sizeof(_mword)) # else GF_PREPARE_PACKED_FUNCS(gf16_affine, _FNSUFFIX, sizeof(_mword)*2, _FNPREP(gf16_shuffle_prepare_block), _FNPREP(gf16_shuffle_prepare_blocku), 1, _mm256_zeroupper(), _mword checksum = _MMI(setzero)(), _FNPREP(gf16_checksum_block), _FNPREP(gf16_checksum_blocku), _FNPREP(gf16_checksum_exp), _FNPREP(gf16_checksum_prepare), sizeof(_mword)) # endif #else GF_PREPARE_PACKED_FUNCS_STUB(gf16_affine, _FNSUFFIX) #endif #ifdef _AVAILABLE static HEDLEY_ALWAYS_INLINE __m256i gf16_affine_load_matrix(const void *HEDLEY_RESTRICT scratch, uint16_t coefficient) { __m256i depmask = _mm256_xor_si256( _mm256_load_si256((__m256i*)scratch + (coefficient & 0xf)*4), _mm256_load_si256((__m256i*)((char*)scratch + ((coefficient << 3) & 0x780)) + 1) ); depmask = _mm256_ternarylogic_epi32( depmask, _mm256_load_si256((__m256i*)((char*)scratch + ((coefficient >> 1) & 0x780)) + 2), _mm256_load_si256((__m256i*)((char*)scratch + ((coefficient >> 5) & 0x780)) + 3), 0x96 ); return depmask; } #endif #ifdef _AVAILABLE static HEDLEY_ALWAYS_INLINE void _FN(gf16_affine_muladd_round)(const _mword* src, _mword* tpl, _mword* tph, _mword mat_ll, _mword mat_hl, _mword mat_lh, _mword mat_hh) { _mword ta = _MMI(load)(src); _mword tb = _MMI(load)(src + 1); *tpl = _MM(ternarylogic_epi32)( _MM(gf2p8affine_epi64_epi8)(ta, mat_lh, 0), _MM(gf2p8affine_epi64_epi8)(tb, mat_ll, 0), *tpl, 0x96 ); *tph = _MM(ternarylogic_epi32)( _MM(gf2p8affine_epi64_epi8)(ta, mat_hh, 0), _MM(gf2p8affine_epi64_epi8)(tb, mat_hl, 0), *tph, 0x96 ); } static HEDLEY_ALWAYS_INLINE void _FN(gf16_affine_muladd_x)( const void *HEDLEY_RESTRICT scratch, GF16_BLKMAC_SRCDSTLIST, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, const int doPrefetch, const char* _pf ) { GF16_BLKMAC_SRCDST_UNUSED(6, 1); _mword mat_All, mat_Alh, mat_Ahl, mat_Ahh; _mword mat_Bll, mat_Blh, mat_Bhl, mat_Bhh; _mword mat_Cll, mat_Clh, mat_Chl, mat_Chh; _mword mat_Dll, mat_Dlh, mat_Dhl, mat_Dhh; _mword mat_Ell, mat_Elh, mat_Ehl, mat_Ehh; _mword mat_Fll, mat_Flh, mat_Fhl, mat_Fhh; _mword depmask1; #if MWORD_SIZE == 64 __m256i depmask256; __m512i depmask2; #define PERM1(dstVec, srcLL) \ dstVec##hh = _mm512_permutex_epi64(depmask2, _MM_SHUFFLE(3,3,3,3)); \ dstVec##lh = _mm512_permutex_epi64(depmask2, _MM_SHUFFLE(1,1,1,1)); \ dstVec##ll = _mm512_broadcastq_epi64(srcLL); \ dstVec##hl = _mm512_broadcastq_epi64(_mm512_castsi512_si128(depmask2)) #define PERM2(dstVec) \ depmask2 = _mm512_shuffle_i64x2(depmask1, depmask1, _MM_SHUFFLE(2,3,2,3)); \ dstVec##hh = _mm512_permutex_epi64(depmask2, _MM_SHUFFLE(3,3,3,3)); \ dstVec##lh = _mm512_permutex_epi64(depmask2, _MM_SHUFFLE(1,1,1,1)); \ dstVec##ll = _mm512_permutex_epi64(depmask2, _MM_SHUFFLE(2,2,2,2)); \ dstVec##hl = _mm512_broadcastq_epi64(_mm512_castsi512_si128(depmask2)) if(srcCount == 1) { depmask256 = gf16_affine_load_matrix(scratch, coefficients[0]); depmask2 = _mm512_castsi256_si512(depmask256); depmask2 = _mm512_shuffle_i64x2(depmask2, depmask2, _MM_SHUFFLE(0,1,0,1)); PERM1(mat_A, _mm256_castsi256_si128(depmask256)); } else if(srcCount > 1) { depmask1 = gf16_affine_load2_matrix(scratch, coefficients[0], coefficients[1]); depmask2 = _mm512_shuffle_i64x2(depmask1, depmask1, _MM_SHUFFLE(0,1,0,1)); PERM1(mat_A, _mm512_castsi512_si128(depmask1)); PERM2(mat_B); } if(srcCount == 3) { depmask256 = gf16_affine_load_matrix(scratch, coefficients[2]); depmask2 = _mm512_castsi256_si512(depmask256); depmask2 = _mm512_shuffle_i64x2(depmask2, depmask2, _MM_SHUFFLE(0,1,0,1)); PERM1(mat_C, _mm256_castsi256_si128(depmask256)); } else if(srcCount > 3) { depmask1 = gf16_affine_load2_matrix(scratch, coefficients[2], coefficients[3]); depmask2 = _mm512_shuffle_i64x2(depmask1, depmask1, _MM_SHUFFLE(0,1,0,1)); PERM1(mat_C, _mm512_castsi512_si128(depmask1)); PERM2(mat_D); } if(srcCount == 5) { depmask256 = gf16_affine_load_matrix(scratch, coefficients[4]); depmask2 = _mm512_castsi256_si512(depmask256); depmask2 = _mm512_shuffle_i64x2(depmask2, depmask2, _MM_SHUFFLE(0,1,0,1)); PERM1(mat_E, _mm256_castsi256_si128(depmask256)); } else if(srcCount > 5) { depmask1 = gf16_affine_load2_matrix(scratch, coefficients[4], coefficients[5]); depmask2 = _mm512_shuffle_i64x2(depmask1, depmask1, _MM_SHUFFLE(0,1,0,1)); PERM1(mat_E, _mm512_castsi512_si128(depmask1)); PERM2(mat_F); } #undef PERM2 #else #define PERM1(dstVec) \ dstVec##hh = _mm256_permute4x64_epi64(depmask1, _MM_SHUFFLE(1,1,1,1)); \ dstVec##lh = _mm256_permute4x64_epi64(depmask1, _MM_SHUFFLE(3,3,3,3)); \ dstVec##ll = _mm256_broadcastq_epi64(_mm256_castsi256_si128(depmask1)); \ dstVec##hl = _mm256_permute4x64_epi64(depmask1, _MM_SHUFFLE(2,2,2,2)) #define LOAD_SRC(n, dstVec) \ if(srcCount > n) { \ depmask1 = gf16_affine_load_matrix(scratch, coefficients[n]); \ PERM1(dstVec); \ } LOAD_SRC(0, mat_A) LOAD_SRC(1, mat_B) LOAD_SRC(2, mat_C) LOAD_SRC(3, mat_D) LOAD_SRC(4, mat_E) LOAD_SRC(5, mat_F) #undef LOAD_SRC #endif #undef PERM1 for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(_mword)*2) { _mword tph = _MMI(load)((_mword*)(_dst1 + ptr*dstScale)); _mword tpl = _MMI(load)((_mword*)(_dst1 + ptr*dstScale) + 1); _FN(gf16_affine_muladd_round)((_mword*)(_src1 + ptr*srcScale), &tpl, &tph, mat_All, mat_Ahl, mat_Alh, mat_Ahh); if(srcCount >= 2) _FN(gf16_affine_muladd_round)((_mword*)(_src2 + ptr*srcScale), &tpl, &tph, mat_Bll, mat_Bhl, mat_Blh, mat_Bhh); if(srcCount >= 3) _FN(gf16_affine_muladd_round)((_mword*)(_src3 + ptr*srcScale), &tpl, &tph, mat_Cll, mat_Chl, mat_Clh, mat_Chh); if(srcCount >= 4) _FN(gf16_affine_muladd_round)((_mword*)(_src4 + ptr*srcScale), &tpl, &tph, mat_Dll, mat_Dhl, mat_Dlh, mat_Dhh); if(srcCount >= 5) _FN(gf16_affine_muladd_round)((_mword*)(_src5 + ptr*srcScale), &tpl, &tph, mat_Ell, mat_Ehl, mat_Elh, mat_Ehh); if(srcCount >= 6) _FN(gf16_affine_muladd_round)((_mword*)(_src6 + ptr*srcScale), &tpl, &tph, mat_Fll, mat_Fhl, mat_Flh, mat_Fhh); _MMI(store)((_mword*)(_dst1 + ptr*dstScale), tph); _MMI(store)((_mword*)(_dst1 + ptr*dstScale)+1, tpl); if(doPrefetch == 1) _mm_prefetch(_pf+(ptr>>1), MM_HINT_WT1); if(doPrefetch == 2) _mm_prefetch(_pf+(ptr>>1), _MM_HINT_T1); } } #endif /*defined(_AVAILABLE)*/ void _FN(gf16_affine_muladd)(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #ifdef _AVAILABLE gf16_muladd_single(scratch, &_FN(gf16_affine_muladd_x), dst, src, len, coefficient); _mm256_zeroupper(); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); #endif } void _FN(gf16_affine_muladd_prefetch)(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch, const void *HEDLEY_RESTRICT prefetch) { UNUSED(mutScratch); #ifdef _AVAILABLE gf16_muladd_prefetch_single(scratch, &_FN(gf16_affine_muladd_x), dst, src, len, coefficient, prefetch); _mm256_zeroupper(); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); UNUSED(prefetch); #endif } #if defined(_AVAILABLE) && defined(PLATFORM_AMD64) GF16_MULADD_MULTI_FUNCS(gf16_affine, _FNSUFFIX, _FN(gf16_affine_muladd_x), 6, sizeof(_mword)*2, 1, _mm256_zeroupper()) #else GF16_MULADD_MULTI_FUNCS_STUB(gf16_affine, _FNSUFFIX) #endif #if defined(_AVAILABLE) && !defined(PARPAR_SLIM_GF16) static HEDLEY_ALWAYS_INLINE void _FN(gf16_affine2x_muladd_2round)(const int srcCountOffs, const uint8_t* _src1, const uint8_t* _src2, intptr_t srcOffset, _mword* result, _mword* swapped, _mword matNorm1, _mword matSwap1, _mword matNorm2, _mword matSwap2) { if(srcCountOffs < 0) return; _mword data1 = _MMI(load)((const _mword*)(_src1 + srcOffset)); if(srcCountOffs == 0) { *result = _MMI(xor)( *result, _MM(gf2p8affine_epi64_epi8)(data1, matNorm1, 0) ); *swapped = _MMI(xor)( *swapped, _MM(gf2p8affine_epi64_epi8)(data1, matSwap1, 0) ); } else { // if(srcCountOffs > 0) _mword data2 = _MMI(load)((const _mword*)(_src2 + srcOffset)); *result = _MM(ternarylogic_epi32)( *result, _MM(gf2p8affine_epi64_epi8)(data1, matNorm1, 0), _MM(gf2p8affine_epi64_epi8)(data2, matNorm2, 0), 0x96 ); *swapped = _MM(ternarylogic_epi32)( *swapped, _MM(gf2p8affine_epi64_epi8)(data1, matSwap1, 0), _MM(gf2p8affine_epi64_epi8)(data2, matSwap2, 0), 0x96 ); } } static HEDLEY_ALWAYS_INLINE void _FN(gf16_affine2x_muladd_x)( const void *HEDLEY_RESTRICT scratch, GF16_BLKMAC_SRCDSTLIST, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, const int doPrefetch, const char* _pf ) { GF16_BLKMAC_SRCDST_UNUSED(13, 1); _mword depmask; _mword matNormA, matSwapA; _mword matNormB, matSwapB; _mword matNormC, matSwapC; _mword matNormD, matSwapD; _mword matNormE, matSwapE; _mword matNormF, matSwapF; _mword matNormG, matSwapG; _mword matNormH, matSwapH; _mword matNormI, matSwapI; _mword matNormJ, matSwapJ; _mword matNormK, matSwapK; _mword matNormL, matSwapL; _mword matNormM, matSwapM; // prevent MSVC whining matNormB = matSwapB = matNormC = matSwapC = matNormD = matSwapD = matNormE = matSwapE = matNormF = matSwapF = matNormG = matSwapG = matNormH = matSwapH = matNormI = matSwapI = matNormJ = matSwapJ = matNormK = matSwapK = matNormL = matSwapL = matNormM = matSwapM = # if MWORD_SIZE == 64 _mm512_undefined_epi32(); # else _mm256_undefined_si256(); # endif # if MWORD_SIZE == 64 if(srcCount == 1) { depmask = _mm512_castsi256_si512(gf16_affine_load_matrix(scratch, coefficients[0])); matNormA = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(0,0,0,0)); matSwapA = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(1,1,1,1)); } if(srcCount > 1) { depmask = gf16_affine_load2_matrix(scratch, coefficients[0], coefficients[1]); matNormA = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(0,0,0,0)); matSwapA = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(1,1,1,1)); matNormB = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(2,2,2,2)); matSwapB = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(3,3,3,3)); } if(srcCount == 3) { depmask = _mm512_castsi256_si512(gf16_affine_load_matrix(scratch, coefficients[2])); matNormC = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(0,0,0,0)); matSwapC = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(1,1,1,1)); } if(srcCount > 3) { depmask = gf16_affine_load2_matrix(scratch, coefficients[2], coefficients[3]); matNormC = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(0,0,0,0)); matSwapC = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(1,1,1,1)); matNormD = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(2,2,2,2)); matSwapD = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(3,3,3,3)); } if(srcCount == 5) { depmask = _mm512_castsi256_si512(gf16_affine_load_matrix(scratch, coefficients[4])); matNormE = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(0,0,0,0)); matSwapE = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(1,1,1,1)); } if(srcCount > 5) { depmask = gf16_affine_load2_matrix(scratch, coefficients[4], coefficients[5]); matNormE = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(0,0,0,0)); matSwapE = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(1,1,1,1)); matNormF = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(2,2,2,2)); matSwapF = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(3,3,3,3)); } if(srcCount == 7) { depmask = _mm512_castsi256_si512(gf16_affine_load_matrix(scratch, coefficients[6])); matNormG = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(0,0,0,0)); matSwapG = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(1,1,1,1)); } if(srcCount > 7) { depmask = gf16_affine_load2_matrix(scratch, coefficients[6], coefficients[7]); matNormG = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(0,0,0,0)); matSwapG = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(1,1,1,1)); matNormH = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(2,2,2,2)); matSwapH = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(3,3,3,3)); } if(srcCount == 9) { depmask = _mm512_castsi256_si512(gf16_affine_load_matrix(scratch, coefficients[8])); matNormI = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(0,0,0,0)); matSwapI = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(1,1,1,1)); } if(srcCount > 9) { depmask = gf16_affine_load2_matrix(scratch, coefficients[8], coefficients[9]); matNormI = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(0,0,0,0)); matSwapI = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(1,1,1,1)); matNormJ = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(2,2,2,2)); matSwapJ = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(3,3,3,3)); } if(srcCount == 11) { depmask = _mm512_castsi256_si512(gf16_affine_load_matrix(scratch, coefficients[10])); matNormK = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(0,0,0,0)); matSwapK = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(1,1,1,1)); } if(srcCount > 11) { depmask = gf16_affine_load2_matrix(scratch, coefficients[10], coefficients[11]); matNormK = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(0,0,0,0)); matSwapK = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(1,1,1,1)); matNormL = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(2,2,2,2)); matSwapL = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(3,3,3,3)); } if(srcCount == 13) { depmask = _mm512_castsi256_si512(gf16_affine_load_matrix(scratch, coefficients[12])); matNormM = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(0,0,0,0)); matSwapM = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(1,1,1,1)); } # else #define LOAD_SRC(n, mat) \ if(srcCount > n) { \ depmask = gf16_affine_load_matrix(scratch, coefficients[n]); \ matNorm##mat = _mm256_inserti128_si256(depmask, _mm256_castsi256_si128(depmask), 1); \ matSwap##mat = _mm256_permute2x128_si256(depmask, depmask, 0x11); \ } LOAD_SRC(0, A) LOAD_SRC(1, B) LOAD_SRC(2, C) LOAD_SRC(3, D) LOAD_SRC(4, E) LOAD_SRC(5, F) LOAD_SRC(6, G) LOAD_SRC(7, H) LOAD_SRC(8, I) LOAD_SRC(9, J) LOAD_SRC(10, K) LOAD_SRC(11, L) LOAD_SRC(12, M) #undef LOAD_SRC # endif for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(_mword)) { _mword data = _MMI(load)((_mword*)(_src1 + ptr*srcScale)); _mword result = _MM(gf2p8affine_epi64_epi8)(data, matNormA, 0); _mword swapped = _MM(gf2p8affine_epi64_epi8)(data, matSwapA, 0); if(srcCount > 1) data = _MMI(load)((_mword*)(_src2 + ptr*srcScale)); if(srcCount >= 3) { _mword data2 = _MMI(load)((_mword*)(_src3 + ptr*srcScale)); result = _MM(ternarylogic_epi32)( result, _MM(gf2p8affine_epi64_epi8)(data, matNormB, 0), _MM(gf2p8affine_epi64_epi8)(data2, matNormC, 0), 0x96 ); swapped = _MM(ternarylogic_epi32)( swapped, _MM(gf2p8affine_epi64_epi8)(data, matSwapB, 0), _MM(gf2p8affine_epi64_epi8)(data2, matSwapC, 0), 0x96 ); } else if(srcCount == 2) { result = _MMI(xor)( result, _MM(gf2p8affine_epi64_epi8)(data, matNormB, 0) ); swapped = _MMI(xor)( swapped, _MM(gf2p8affine_epi64_epi8)(data, matSwapB, 0) ); } _FN(gf16_affine2x_muladd_2round)(srcCount - 4, _src4, _src5, ptr*srcScale, &result, &swapped, matNormD, matSwapD, matNormE, matSwapE); _FN(gf16_affine2x_muladd_2round)(srcCount - 6, _src6, _src7, ptr*srcScale, &result, &swapped, matNormF, matSwapF, matNormG, matSwapG); _FN(gf16_affine2x_muladd_2round)(srcCount - 8, _src8, _src9, ptr*srcScale, &result, &swapped, matNormH, matSwapH, matNormI, matSwapI); _FN(gf16_affine2x_muladd_2round)(srcCount - 10, _src10, _src11, ptr*srcScale, &result, &swapped, matNormJ, matSwapJ, matNormK, matSwapK); _FN(gf16_affine2x_muladd_2round)(srcCount - 12, _src12, _src13, ptr*srcScale, &result, &swapped, matNormL, matSwapL, matNormM, matSwapM); result = _MM(ternarylogic_epi32)( result, _MM(shuffle_epi32)(swapped, _MM_SHUFFLE(1,0,3,2)), _MMI(load)((_mword*)(_dst1 + ptr*dstScale)), 0x96 ); _MMI(store) ((_mword*)(_dst1 + ptr*dstScale), result); if(doPrefetch == 1) _mm_prefetch(_pf+ptr, MM_HINT_WT1); if(doPrefetch == 2) _mm_prefetch(_pf+ptr, _MM_HINT_T1); } } #endif /*defined(_AVAILABLE)*/ void _FN(gf16_affine2x_muladd)(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #if defined(_AVAILABLE) && !defined(PARPAR_SLIM_GF16) gf16_muladd_single(scratch, &_FN(gf16_affine2x_muladd_x), dst, src, len, coefficient); _mm256_zeroupper(); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); #endif } #if defined(_AVAILABLE) && !defined(PARPAR_SLIM_GF16) # ifdef PLATFORM_AMD64 // TODO: may not want 12 regions for non-packed variant GF16_MULADD_MULTI_FUNCS(gf16_affine2x, _FNSUFFIX, _FN(gf16_affine2x_muladd_x), 12, sizeof(_mword), 0, _mm256_zeroupper()) # else // if only 8 registers available, only allow 2 parallel regions GF16_MULADD_MULTI_FUNCS(gf16_affine2x, _FNSUFFIX, _FN(gf16_affine2x_muladd_x), 2, sizeof(_mword), 0, _mm256_zeroupper()) # endif #else GF16_MULADD_MULTI_FUNCS_STUB(gf16_affine2x, _FNSUFFIX) #endif par2cmdline-turbo-1.5.0/parpar/gf16/gf16_affine_avx2.c000066400000000000000000000401551524160147200222640ustar00rootroot00000000000000 #include "gf16_global.h" #include "../src/platform.h" #define MWORD_SIZE 32 #define _mword __m256i #define _MM(f) _mm256_ ## f #define _MMI(f) _mm256_ ## f ## _si256 #define _FNSUFFIX _avx2 #define _FNPREP(f) f##_avx2 #define _MM_END _mm256_zeroupper(); #if defined(__GFNI__) && defined(__AVX2__) int gf16_affine_available_avx2 = 1; # define _AVAILABLE 1 # include "gf16_shuffle_x86_prepare.h" # include "gf16_checksum_x86.h" #else int gf16_affine_available_avx2 = 0; #endif #define AFFINE2X_AMD64_INTERLEAVE 6 #include "gf16_affine2x_x86.h" #ifdef _AVAILABLE # undef _AVAILABLE #endif #undef _MM_END #undef _FNSUFFIX #undef _FNPREP #undef _MMI #undef _MM #undef _mword #undef MWORD_SIZE #include "gf16_muladd_multi.h" #if defined(__GFNI__) && defined(__AVX2__) # ifdef PLATFORM_AMD64 GF_PREPARE_PACKED_FUNCS(gf16_affine, _avx2, sizeof(__m256i)*2, gf16_shuffle_prepare_block_avx2, gf16_shuffle_prepare_blocku_avx2, 3, _mm256_zeroupper(), __m256i checksum = _mm256_setzero_si256(), gf16_checksum_block_avx2, gf16_checksum_blocku_avx2, gf16_checksum_exp_avx2, gf16_checksum_prepare_avx2, sizeof(__m256i)) # else GF_PREPARE_PACKED_FUNCS(gf16_affine, _avx2, sizeof(__m256i)*2, gf16_shuffle_prepare_block_avx2, gf16_shuffle_prepare_blocku_avx2, 1, _mm256_zeroupper(), __m256i checksum = _mm256_setzero_si256(), gf16_checksum_block_avx2, gf16_checksum_blocku_avx2, gf16_checksum_exp_avx2, gf16_checksum_prepare_avx2, sizeof(__m256i)) # endif #else GF_PREPARE_PACKED_FUNCS_STUB(gf16_affine, _avx2) #endif #if defined(__GFNI__) && defined(__AVX2__) static HEDLEY_ALWAYS_INLINE __m256i gf16_affine_load_matrix(const void *HEDLEY_RESTRICT scratch, uint16_t coefficient) { __m256i depmask = _mm256_xor_si256( _mm256_load_si256((__m256i*)scratch + (coefficient & 0xf)*4), _mm256_load_si256((__m256i*)((char*)scratch + ((coefficient << 3) & 0x780)) + 1) ); depmask = _mm256_xor_si256(depmask, _mm256_load_si256((__m256i*)((char*)scratch + ((coefficient >> 1) & 0x780)) + 2)); depmask = _mm256_xor_si256(depmask, _mm256_load_si256((__m256i*)((char*)scratch + ((coefficient >> 5) & 0x780)) + 3)); return depmask; } #endif #ifdef PARPAR_INVERT_SUPPORT void gf16_affine_mul_avx2(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #if defined(__GFNI__) && defined(__AVX2__) __m256i depmask = gf16_affine_load_matrix(scratch, coefficient); __m256i mat_ll = _mm256_broadcastq_epi64(_mm256_castsi256_si128(depmask)); __m256i mat_hh = _mm256_permute4x64_epi64(depmask, _MM_SHUFFLE(1,1,1,1)); __m256i mat_lh = _mm256_permute4x64_epi64(depmask, _MM_SHUFFLE(3,3,3,3)); __m256i mat_hl = _mm256_permute4x64_epi64(depmask, _MM_SHUFFLE(2,2,2,2)); uint8_t* _src = (uint8_t*)src + len; uint8_t* _dst = (uint8_t*)dst + len; for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(__m256i)*2) { __m256i ta = _mm256_load_si256((__m256i*)(_src + ptr)); __m256i tb = _mm256_load_si256((__m256i*)(_src + ptr) + 1); __m256i tpl = _mm256_xor_si256( _mm256_gf2p8affine_epi64_epi8(ta, mat_lh, 0), _mm256_gf2p8affine_epi64_epi8(tb, mat_ll, 0) ); __m256i tph = _mm256_xor_si256( _mm256_gf2p8affine_epi64_epi8(ta, mat_hh, 0), _mm256_gf2p8affine_epi64_epi8(tb, mat_hl, 0) ); _mm256_store_si256 ((__m256i*)(_dst + ptr), tph); _mm256_store_si256 ((__m256i*)(_dst + ptr) + 1, tpl); } _mm256_zeroupper(); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); #endif } #endif #if defined(__GFNI__) && defined(__AVX2__) static HEDLEY_ALWAYS_INLINE void gf16_affine_muladd_round(const __m256i* src, __m256i* tpl, __m256i* tph, __m256i mat_ll, __m256i mat_hl, __m256i mat_lh, __m256i mat_hh) { __m256i ta = _mm256_load_si256(src); __m256i tb = _mm256_load_si256(src + 1); *tpl = _mm256_xor_si256(*tpl, _mm256_gf2p8affine_epi64_epi8(ta, mat_lh, 0)); *tpl = _mm256_xor_si256(*tpl, _mm256_gf2p8affine_epi64_epi8(tb, mat_ll, 0)); *tph = _mm256_xor_si256(*tph, _mm256_gf2p8affine_epi64_epi8(ta, mat_hh, 0)); *tph = _mm256_xor_si256(*tph, _mm256_gf2p8affine_epi64_epi8(tb, mat_hl, 0)); } static HEDLEY_ALWAYS_INLINE void gf16_affine_muladd_x_avx2( const void *HEDLEY_RESTRICT scratch, GF16_BLKMAC_SRCDSTLIST, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, const int doPrefetch, const char* _pf ) { GF16_BLKMAC_SRCDST_UNUSED(3, 1); __m256i depmask = gf16_affine_load_matrix(scratch, coefficients[0]); __m256i mat_All = _mm256_broadcastq_epi64(_mm256_castsi256_si128(depmask)); __m256i mat_Ahh = _mm256_permute4x64_epi64(depmask, _MM_SHUFFLE(1,1,1,1)); __m256i mat_Alh = _mm256_permute4x64_epi64(depmask, _MM_SHUFFLE(3,3,3,3)); __m256i mat_Ahl = _mm256_permute4x64_epi64(depmask, _MM_SHUFFLE(2,2,2,2)); __m256i mat_Bll, mat_Bhh, mat_Bhl, mat_Blh; if(srcCount >= 2) { depmask = gf16_affine_load_matrix(scratch, coefficients[1]); mat_Bll = _mm256_broadcastq_epi64(_mm256_castsi256_si128(depmask)); mat_Bhh = _mm256_permute4x64_epi64(depmask, _MM_SHUFFLE(1,1,1,1)); mat_Blh = _mm256_permute4x64_epi64(depmask, _MM_SHUFFLE(3,3,3,3)); mat_Bhl = _mm256_permute4x64_epi64(depmask, _MM_SHUFFLE(2,2,2,2)); } __m256i mat_Cll, mat_Chh, mat_Chl, mat_Clh; if(srcCount > 2) { depmask = gf16_affine_load_matrix(scratch, coefficients[2]); mat_Cll = _mm256_broadcastq_epi64(_mm256_castsi256_si128(depmask)); mat_Chh = _mm256_permute4x64_epi64(depmask, _MM_SHUFFLE(1,1,1,1)); mat_Clh = _mm256_permute4x64_epi64(depmask, _MM_SHUFFLE(3,3,3,3)); mat_Chl = _mm256_permute4x64_epi64(depmask, _MM_SHUFFLE(2,2,2,2)); } for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(__m256i)*2) { __m256i tph = _mm256_load_si256((__m256i*)(_dst1 + ptr*dstScale)); __m256i tpl = _mm256_load_si256((__m256i*)(_dst1 + ptr*dstScale) + 1); gf16_affine_muladd_round((__m256i*)(_src1 + ptr*srcScale), &tpl, &tph, mat_All, mat_Ahl, mat_Alh, mat_Ahh); if(srcCount > 1) gf16_affine_muladd_round((__m256i*)(_src2 + ptr*srcScale), &tpl, &tph, mat_Bll, mat_Bhl, mat_Blh, mat_Bhh); if(srcCount > 2) gf16_affine_muladd_round((__m256i*)(_src3 + ptr*srcScale), &tpl, &tph, mat_Cll, mat_Chl, mat_Clh, mat_Chh); _mm256_store_si256 ((__m256i*)(_dst1 + ptr*dstScale), tph); _mm256_store_si256 ((__m256i*)(_dst1 + ptr*dstScale)+1, tpl); if(doPrefetch == 1) _mm_prefetch(_pf+(ptr>>1), MM_HINT_WT1); if(doPrefetch == 2) _mm_prefetch(_pf+(ptr>>1), _MM_HINT_T2); } } #endif /*defined(__GFNI__) && defined(__AVX2__)*/ void gf16_affine_muladd_avx2(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #if defined(__GFNI__) && defined(__AVX2__) gf16_muladd_single(scratch, &gf16_affine_muladd_x_avx2, dst, src, len, coefficient); _mm256_zeroupper(); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); #endif } void gf16_affine_muladd_prefetch_avx2(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch, const void *HEDLEY_RESTRICT prefetch) { UNUSED(mutScratch); #if defined(__GFNI__) && defined(__AVX2__) gf16_muladd_prefetch_single(scratch, &gf16_affine_muladd_x_avx2, dst, src, len, coefficient, prefetch); _mm256_zeroupper(); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); UNUSED(prefetch); #endif } #if defined(__GFNI__) && defined(__AVX2__) && defined(PLATFORM_AMD64) GF16_MULADD_MULTI_FUNCS(gf16_affine, _avx2, gf16_affine_muladd_x_avx2, 3, sizeof(__m256i)*2, 1, _mm256_zeroupper()) #else GF16_MULADD_MULTI_FUNCS_STUB(gf16_affine, _avx2) #endif #if defined(__GFNI__) && defined(__AVX2__) # include "gf16_bitdep_init_avx2.h" #endif void* gf16_affine_init_avx2(int polynomial) { #if defined(__GFNI__) && defined(__AVX2__) __m256i* ret; ALIGN_ALLOC(ret, sizeof(__m256i)*16*4, 32); gf16_bitdep_init256(ret, polynomial, 1); return ret; #else UNUSED(polynomial); return NULL; #endif } #if defined(__GFNI__) && defined(__AVX2__) && !defined(PARPAR_SLIM_GF16) static HEDLEY_ALWAYS_INLINE void gf16_affine2x_muladd_x_avx2( const void *HEDLEY_RESTRICT scratch, GF16_BLKMAC_SRCDSTLIST, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, const int doPrefetch, const char* _pf ) { GF16_BLKMAC_SRCDST_UNUSED(6, 1); __m256i matNormA, matSwapA; __m256i matNormB, matSwapB; __m256i matNormC, matSwapC; __m256i matNormD, matSwapD; __m256i matNormE, matSwapE; __m256i matNormF, matSwapF; // prevent MSVC whining matNormB = matSwapB = matNormC = matSwapC = matNormD = matSwapD = matNormE = matSwapE = matNormF = matSwapF = _mm256_undefined_si256(); __m256i depmask = gf16_affine_load_matrix(scratch, coefficients[0]); matNormA = _mm256_inserti128_si256(depmask, _mm256_castsi256_si128(depmask), 1); matSwapA = _mm256_permute2x128_si256(depmask, depmask, 0x11); if(srcCount >= 2) { depmask = gf16_affine_load_matrix(scratch, coefficients[1]); matNormB = _mm256_inserti128_si256(depmask, _mm256_castsi256_si128(depmask), 1); matSwapB = _mm256_permute2x128_si256(depmask, depmask, 0x11); } if(srcCount >= 3) { depmask = gf16_affine_load_matrix(scratch, coefficients[2]); matNormC = _mm256_inserti128_si256(depmask, _mm256_castsi256_si128(depmask), 1); matSwapC = _mm256_permute2x128_si256(depmask, depmask, 0x11); } if(srcCount >= 4) { depmask = gf16_affine_load_matrix(scratch, coefficients[3]); matNormD = _mm256_inserti128_si256(depmask, _mm256_castsi256_si128(depmask), 1); matSwapD = _mm256_permute2x128_si256(depmask, depmask, 0x11); } if(srcCount >= 5) { depmask = gf16_affine_load_matrix(scratch, coefficients[4]); matNormE = _mm256_inserti128_si256(depmask, _mm256_castsi256_si128(depmask), 1); matSwapE = _mm256_permute2x128_si256(depmask, depmask, 0x11); } if(srcCount >= 6) { depmask = gf16_affine_load_matrix(scratch, coefficients[5]); matNormF = _mm256_inserti128_si256(depmask, _mm256_castsi256_si128(depmask), 1); matSwapF = _mm256_permute2x128_si256(depmask, depmask, 0x11); } intptr_t ptr = -(intptr_t)len; if(doPrefetch) { if(doPrefetch == 1) _mm_prefetch(_pf+ptr, MM_HINT_WT1); if(doPrefetch == 2) _mm_prefetch(_pf+ptr, _MM_HINT_T2); if(ptr & (sizeof(__m256i)*2-1)) { // align to a cacheline boundary __m256i data = _mm256_load_si256((__m256i*)(_src1 + ptr*srcScale)); __m256i result1 = _mm256_gf2p8affine_epi64_epi8(data, matNormA, 0); __m256i result2 = _mm256_gf2p8affine_epi64_epi8(data, matSwapA, 0); if(srcCount >= 2) { data = _mm256_load_si256((__m256i*)(_src2 + ptr*srcScale)); result1 = _mm256_xor_si256(result1, _mm256_gf2p8affine_epi64_epi8(data, matNormB, 0)); result2 = _mm256_xor_si256(result2, _mm256_gf2p8affine_epi64_epi8(data, matSwapB, 0)); } if(srcCount >= 3) { data = _mm256_load_si256((__m256i*)(_src3 + ptr*srcScale)); result1 = _mm256_xor_si256(result1, _mm256_gf2p8affine_epi64_epi8(data, matNormC, 0)); result2 = _mm256_xor_si256(result2, _mm256_gf2p8affine_epi64_epi8(data, matSwapC, 0)); } if(srcCount >= 4) { data = _mm256_load_si256((__m256i*)(_src4 + ptr*srcScale)); result1 = _mm256_xor_si256(result1, _mm256_gf2p8affine_epi64_epi8(data, matNormD, 0)); result2 = _mm256_xor_si256(result2, _mm256_gf2p8affine_epi64_epi8(data, matSwapD, 0)); } if(srcCount >= 5) { data = _mm256_load_si256((__m256i*)(_src5 + ptr*srcScale)); result1 = _mm256_xor_si256(result1, _mm256_gf2p8affine_epi64_epi8(data, matNormE, 0)); result2 = _mm256_xor_si256(result2, _mm256_gf2p8affine_epi64_epi8(data, matSwapE, 0)); } if(srcCount >= 6) { data = _mm256_load_si256((__m256i*)(_src6 + ptr*srcScale)); result1 = _mm256_xor_si256(result1, _mm256_gf2p8affine_epi64_epi8(data, matNormF, 0)); result2 = _mm256_xor_si256(result2, _mm256_gf2p8affine_epi64_epi8(data, matSwapF, 0)); } result1 = _mm256_xor_si256(result1, _mm256_load_si256((__m256i*)(_dst1 + ptr*dstScale))); result1 = _mm256_xor_si256(result1, _mm256_shuffle_epi32(result2, _MM_SHUFFLE(1,0,3,2))); _mm256_store_si256((__m256i*)(_dst1 + ptr*dstScale), result1); ptr += sizeof(__m256i); } } while(ptr) { if(doPrefetch == 1) _mm_prefetch(_pf+ptr, MM_HINT_WT1); if(doPrefetch == 2) _mm_prefetch(_pf+ptr, _MM_HINT_T2); for(int iter=0; iter<(doPrefetch?2:1); iter++) { // if prefetching, iterate on cachelines __m256i data = _mm256_load_si256((__m256i*)(_src1 + ptr*srcScale)); __m256i result1 = _mm256_gf2p8affine_epi64_epi8(data, matNormA, 0); __m256i result2 = _mm256_gf2p8affine_epi64_epi8(data, matSwapA, 0); if(srcCount >= 2) { data = _mm256_load_si256((__m256i*)(_src2 + ptr*srcScale)); result1 = _mm256_xor_si256(result1, _mm256_gf2p8affine_epi64_epi8(data, matNormB, 0)); result2 = _mm256_xor_si256(result2, _mm256_gf2p8affine_epi64_epi8(data, matSwapB, 0)); } if(srcCount >= 3) { data = _mm256_load_si256((__m256i*)(_src3 + ptr*srcScale)); result1 = _mm256_xor_si256(result1, _mm256_gf2p8affine_epi64_epi8(data, matNormC, 0)); result2 = _mm256_xor_si256(result2, _mm256_gf2p8affine_epi64_epi8(data, matSwapC, 0)); } if(srcCount >= 4) { data = _mm256_load_si256((__m256i*)(_src4 + ptr*srcScale)); result1 = _mm256_xor_si256(result1, _mm256_gf2p8affine_epi64_epi8(data, matNormD, 0)); result2 = _mm256_xor_si256(result2, _mm256_gf2p8affine_epi64_epi8(data, matSwapD, 0)); } if(srcCount >= 5) { data = _mm256_load_si256((__m256i*)(_src5 + ptr*srcScale)); result1 = _mm256_xor_si256(result1, _mm256_gf2p8affine_epi64_epi8(data, matNormE, 0)); result2 = _mm256_xor_si256(result2, _mm256_gf2p8affine_epi64_epi8(data, matSwapE, 0)); } if(srcCount >= 6) { data = _mm256_load_si256((__m256i*)(_src6 + ptr*srcScale)); result1 = _mm256_xor_si256(result1, _mm256_gf2p8affine_epi64_epi8(data, matNormF, 0)); result2 = _mm256_xor_si256(result2, _mm256_gf2p8affine_epi64_epi8(data, matSwapF, 0)); } result1 = _mm256_xor_si256(result1, _mm256_load_si256((__m256i*)(_dst1 + ptr*dstScale))); result1 = _mm256_xor_si256(result1, _mm256_shuffle_epi32(result2, _MM_SHUFFLE(1,0,3,2))); _mm256_store_si256((__m256i*)(_dst1 + ptr*dstScale), result1); ptr += sizeof(__m256i); } } } #endif /*defined(__GFNI__) && defined(__AVX2__) && !defined(PARPAR_SLIM_GF16)*/ #ifdef PARPAR_INVERT_SUPPORT void gf16_affine2x_mul_avx2(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #if defined(__GFNI__) && defined(__AVX2__) && !defined(PARPAR_SLIM_GF16) __m256i depmask = gf16_affine_load_matrix(scratch, coefficient); __m256i matNorm = _mm256_inserti128_si256(depmask, _mm256_castsi256_si128(depmask), 1); __m256i matSwap = _mm256_permute2x128_si256(depmask, depmask, 0x11); uint8_t* _src = (uint8_t*)src + len; uint8_t* _dst = (uint8_t*)dst + len; for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(__m256i)) { __m256i data = _mm256_load_si256((__m256i*)(_src + ptr)); __m256i result1 = _mm256_gf2p8affine_epi64_epi8(data, matNorm, 0); __m256i result2 = _mm256_gf2p8affine_epi64_epi8(data, matSwap, 0); result1 = _mm256_xor_si256(result1, _mm256_shuffle_epi32(result2, _MM_SHUFFLE(1,0,3,2))); _mm256_store_si256((__m256i*)(_dst + ptr), result1); } #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); #endif } #endif void gf16_affine2x_muladd_avx2(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #if defined(__GFNI__) && defined(__AVX2__) && !defined(PARPAR_SLIM_GF16) gf16_muladd_single(scratch, &gf16_affine2x_muladd_x_avx2, dst, src, len, coefficient); _mm256_zeroupper(); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); #endif } #if defined(__GFNI__) && defined(__AVX2__) && !defined(PARPAR_SLIM_GF16) # ifdef PLATFORM_AMD64 GF16_MULADD_MULTI_FUNCS(gf16_affine2x, _avx2, gf16_affine2x_muladd_x_avx2, 6, sizeof(__m256i), 0, _mm256_zeroupper()) # else GF16_MULADD_MULTI_FUNCS(gf16_affine2x, _avx2, gf16_affine2x_muladd_x_avx2, 2, sizeof(__m256i), 0, _mm256_zeroupper()) # endif #else GF16_MULADD_MULTI_FUNCS_STUB(gf16_affine2x, _avx2) #endif par2cmdline-turbo-1.5.0/parpar/gf16/gf16_affine_avx512.c000066400000000000000000000104151524160147200224260ustar00rootroot00000000000000 #include "gf16_global.h" #include "../src/platform.h" #define MWORD_SIZE 64 #define _mword __m512i #define _MM(f) _mm512_ ## f #define _MMI(f) _mm512_ ## f ## _si512 #define _FNSUFFIX _avx512 #define _FNPREP(f) f##_avx512 #define _MM_END _mm256_zeroupper(); #if defined(__GFNI__) && defined(__AVX512BW__) && defined(__AVX512VL__) # define _AVAILABLE 1 static HEDLEY_ALWAYS_INLINE __m512i gf16_affine_load2_matrix(const void *HEDLEY_RESTRICT scratch, uint16_t coeff1, uint16_t coeff2) { __m512i depmask = _mm512_xor_si512( _mm512_inserti64x4( _mm512_castsi256_si512(_mm256_load_si256((__m256i*)scratch + (coeff1 & 0xf)*4)), _mm256_load_si256((__m256i*)scratch + (coeff2 & 0xf)*4), 1 ), _mm512_inserti64x4( _mm512_castsi256_si512(_mm256_load_si256((__m256i*)((char*)scratch + ((coeff1 << 3) & 0x780)) + 1)), _mm256_load_si256((__m256i*)((char*)scratch + ((coeff2 << 3) & 0x780)) + 1), 1 ) ); depmask = _mm512_ternarylogic_epi32( depmask, _mm512_inserti64x4( _mm512_castsi256_si512(_mm256_load_si256((__m256i*)((char*)scratch + ((coeff1 >> 1) & 0x780)) + 2)), _mm256_load_si256((__m256i*)((char*)scratch + ((coeff2 >> 1) & 0x780)) + 2), 1 ), _mm512_inserti64x4( _mm512_castsi256_si512(_mm256_load_si256((__m256i*)((char*)scratch + ((coeff1 >> 5) & 0x780)) + 3)), _mm256_load_si256((__m256i*)((char*)scratch + ((coeff2 >> 5) & 0x780)) + 3), 1 ), 0x96 ); return depmask; } #endif #include "gf16_affine_avx10.h" #ifdef _AVAILABLE # undef _AVAILABLE #endif #undef _MM_END #undef _FNSUFFIX #undef _FNPREP #undef _MMI #undef _MM #undef _mword #undef MWORD_SIZE #ifdef PARPAR_INVERT_SUPPORT void gf16_affine_mul_avx512(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #if defined(__GFNI__) && defined(__AVX512BW__) && defined(__AVX512VL__) __m256i depmask = gf16_affine_load_matrix(scratch, coefficient); __m512i mat_ll, mat_lh, mat_hl, mat_hh; __m512i depmask2 = _mm512_castsi256_si512(depmask); depmask2 = _mm512_shuffle_i64x2(depmask2, depmask2, _MM_SHUFFLE(0,1,0,1)); // reverse order to allow more abuse of VBROADCASTQ mat_hh = _mm512_permutex_epi64(depmask2, _MM_SHUFFLE(3,3,3,3)); mat_lh = _mm512_permutex_epi64(depmask2, _MM_SHUFFLE(1,1,1,1)); mat_ll = _mm512_broadcastq_epi64(_mm256_castsi256_si128(depmask)); mat_hl = _mm512_broadcastq_epi64(_mm512_castsi512_si128(depmask2)); uint8_t* _src = (uint8_t*)src + len; uint8_t* _dst = (uint8_t*)dst + len; for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(__m512i)*2) { __m512i ta = _mm512_load_si512((__m512i*)(_src + ptr)); __m512i tb = _mm512_load_si512((__m512i*)(_src + ptr) + 1); __m512i tpl = _mm512_xor_si512( _mm512_gf2p8affine_epi64_epi8(ta, mat_lh, 0), _mm512_gf2p8affine_epi64_epi8(tb, mat_ll, 0) ); __m512i tph = _mm512_xor_si512( _mm512_gf2p8affine_epi64_epi8(ta, mat_hh, 0), _mm512_gf2p8affine_epi64_epi8(tb, mat_hl, 0) ); _mm512_store_si512 ((__m512i*)(_dst + ptr), tph); _mm512_store_si512 ((__m512i*)(_dst + ptr) + 1, tpl); } _mm256_zeroupper(); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); #endif } void gf16_affine2x_mul_avx512(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #if defined(__GFNI__) && defined(__AVX512BW__) && defined(__AVX512VL__) && !defined(PARPAR_SLIM_GF16) __m512i depmask = _mm512_castsi256_si512(gf16_affine_load_matrix(scratch, coefficient)); __m512i matNorm = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(0,0,0,0)); __m512i matSwap = _mm512_shuffle_i64x2(depmask, depmask, _MM_SHUFFLE(1,1,1,1)); uint8_t* _src = (uint8_t*)src + len; uint8_t* _dst = (uint8_t*)dst + len; for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(__m512i)) { __m512i data = _mm512_load_si512((__m512i*)(_src + ptr)); __m512i result = _mm512_gf2p8affine_epi64_epi8(data, matNorm, 0); __m512i swapped = _mm512_gf2p8affine_epi64_epi8(data, matSwap, 0); result = _mm512_xor_si512(result, _mm512_shuffle_epi32(swapped, _MM_SHUFFLE(1,0,3,2))); _mm512_store_si512((__m512i*)(_dst + ptr), result); } #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); #endif } #endif par2cmdline-turbo-1.5.0/parpar/gf16/gf16_affine_bmm.c000066400000000000000000000254001524160147200221530ustar00rootroot00000000000000 #include "gf16_global.h" #include "../src/platform.h" #if defined(__AVX512BMM__) && defined(__AVX512VL__) int gf16_affine_available_bmm = 1; # define MWORD_SIZE 64 # define _mword __m512i # define _MM(f) _mm512_ ## f # define _MMI(f) _mm512_ ## f ## _si512 # define _FNSUFFIX _avx512 # define _MM_END _mm256_zeroupper(); # include "gf16_checksum_x86.h" # undef MWORD_SIZE # undef _mword # undef _MM # undef _MMI # undef _FNSUFFIX # undef _MM_END #else int gf16_affine_available_bmm = 0; #endif #include "gf16_muladd_multi.h" #if defined(__AVX512BMM__) && defined(__AVX512VL__) static HEDLEY_ALWAYS_INLINE void gf16_bmm_prepare_block(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src) { _mm512_store_si512(dst, _mm512_loadu_si512(src)); } static HEDLEY_ALWAYS_INLINE void gf16_bmm_prepare_blocku(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t remaining) { _mm512_store_si512(dst, _mm512_maskz_loadu_epi8((1ull<>3)&0x1e0)))), _mm256_load_si256((const __m256i*)(tbl + ((coefficient>>7)&0x1e0))), 1 ); __m512i coeff1 = _mm512_load_si512(tbl + 32*16); __m512i coeff2 = _mm512_load_si512(tbl + 32*18); mat1 = _mm512_bmacxor16x16x16(_mm512_setzero_si512(), mat1, coeff1); mat1 = _mm512_bmacxor16x16x16(mat1, mat2, coeff2); return _mm512_xor_si512(mat1, _mm512_shuffle_i32x4(mat1, mat1, _MM_SHUFFLE(1,0,3,2))); } static void gf16_bmm_load2_matrix(const void *HEDLEY_RESTRICT scratch, uint16_t coeff1, uint16_t coeff2, __m512i* mat1, __m512i* mat2) { const char* tbl = (const char*)scratch; __m512i mul16 = _mm512_broadcast_i64x4(_mm256_load_si256((const __m256i*)(tbl + 32*17))); __m512i ret = _mm512_inserti64x4( _mm512_castsi256_si512(_mm256_load_si256((const __m256i*)(tbl + ((coeff1>>7)&0x1e0)))), _mm256_load_si256((const __m256i*)(tbl + ((coeff2>>7)&0x1e0))), 1 ); ret = _mm512_bmacxor16x16x16(_mm512_inserti64x4( _mm512_castsi256_si512(_mm256_load_si256((const __m256i*)(tbl + ((coeff1>>3)&0x1e0)))), _mm256_load_si256((const __m256i*)(tbl + ((coeff2>>3)&0x1e0))), 1 ), ret, mul16); ret = _mm512_bmacxor16x16x16(_mm512_inserti64x4( _mm512_castsi256_si512(_mm256_load_si256((const __m256i*)(tbl + ((coeff1<<1)&0x1e0)))), _mm256_load_si256((const __m256i*)(tbl + ((coeff2<<1)&0x1e0))), 1 ), ret, mul16); ret = _mm512_bmacxor16x16x16(_mm512_inserti64x4( _mm512_castsi256_si512(_mm256_load_si256((const __m256i*)(tbl + ((coeff1&0xf)<<5)))), _mm256_load_si256((const __m256i*)(tbl + ((coeff2&0xf)<<5))), 1 ), ret, mul16); *mat1 = _mm512_broadcast_i64x4(_mm512_castsi512_si256(ret)); *mat2 = _mm512_shuffle_i32x4(ret, ret, _MM_SHUFFLE(3,2,3,2)); /* use SIMD for index calc? - probably not worth it __m128i idx = _mm_insert_epi16(_mm_cvtsi32_si128(coeff1), coeff2, 1); idx = _mm_unpacklo_epi8(idx, _mm_srli_epi16(idx, 4)); idx = _mm_and_si128(idx, _mm_set1_epi8(0xf)); idx = _mm_cvtepu8_epi16(idx); idx = _mm_slli_epi16(idx, 5); */ } #endif #ifdef PARPAR_INVERT_SUPPORT void gf16_affine_mul_bmm(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #if defined(__AVX512BMM__) && defined(__AVX512VL__) __m512i mat = gf16_bmm_load_matrix(scratch, coefficient); uint8_t* _src = (uint8_t*)src + len; uint8_t* _dst = (uint8_t*)dst + len; for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(__m512i)) { __m512i data = _mm512_load_si512(_src + ptr); data = _mm512_bmacxor16x16x16(_mm512_setzero_si512(), data, mat); _mm512_store_si512(_dst + ptr, data); } #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); #endif } #endif #if defined(__AVX512BMM__) && defined(__AVX512VL__) static HEDLEY_ALWAYS_INLINE void gf16_affine_muladd_x_bmm( const void *HEDLEY_RESTRICT scratch, GF16_BLKMAC_SRCDSTLIST, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, const int doPrefetch, const char* _pf ) { GF16_BLKMAC_SRCDST_UNUSED(16, 1); __m512i mat[16]; for(int i=0; i < (srcCount & ~1); i+=2) gf16_bmm_load2_matrix(scratch, coefficients[i], coefficients[i+1], mat + i, mat + i+1); if(srcCount & 1) mat[srcCount-1] = gf16_bmm_load_matrix(scratch, coefficients[srcCount-1]); __m512i acc; for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(__m512i)) { if(doPrefetch == 1) _mm_prefetch(_pf+ptr, MM_HINT_WT1); if(doPrefetch == 2) _mm_prefetch(_pf+ptr, _MM_HINT_T2); acc = _mm512_load_si512(_dst1 + ptr*dstScale); acc = _mm512_bmacxor16x16x16(acc, _mm512_load_si512(_src1 + ptr*srcScale), mat[0]); if(srcCount > 1) acc = _mm512_bmacxor16x16x16(acc, _mm512_load_si512(_src2 + ptr*srcScale), mat[1]); if(srcCount > 2) acc = _mm512_bmacxor16x16x16(acc, _mm512_load_si512(_src3 + ptr*srcScale), mat[2]); if(srcCount > 3) acc = _mm512_bmacxor16x16x16(acc, _mm512_load_si512(_src4 + ptr*srcScale), mat[3]); if(srcCount > 4) acc = _mm512_bmacxor16x16x16(acc, _mm512_load_si512(_src5 + ptr*srcScale), mat[4]); if(srcCount > 5) acc = _mm512_bmacxor16x16x16(acc, _mm512_load_si512(_src6 + ptr*srcScale), mat[5]); if(srcCount > 6) acc = _mm512_bmacxor16x16x16(acc, _mm512_load_si512(_src7 + ptr*srcScale), mat[6]); if(srcCount > 7) acc = _mm512_bmacxor16x16x16(acc, _mm512_load_si512(_src8 + ptr*srcScale), mat[7]); if(srcCount > 8) acc = _mm512_bmacxor16x16x16(acc, _mm512_load_si512(_src9 + ptr*srcScale), mat[8]); if(srcCount > 9) acc = _mm512_bmacxor16x16x16(acc, _mm512_load_si512(_src10 + ptr*srcScale), mat[9]); if(srcCount > 10) acc = _mm512_bmacxor16x16x16(acc, _mm512_load_si512(_src11 + ptr*srcScale), mat[10]); if(srcCount > 11) acc = _mm512_bmacxor16x16x16(acc, _mm512_load_si512(_src12 + ptr*srcScale), mat[11]); if(srcCount > 12) acc = _mm512_bmacxor16x16x16(acc, _mm512_load_si512(_src13 + ptr*srcScale), mat[12]); if(srcCount > 13) acc = _mm512_bmacxor16x16x16(acc, _mm512_load_si512(_src14 + ptr*srcScale), mat[13]); if(srcCount > 14) acc = _mm512_bmacxor16x16x16(acc, _mm512_load_si512(_src15 + ptr*srcScale), mat[14]); if(srcCount > 15) acc = _mm512_bmacxor16x16x16(acc, _mm512_load_si512(_src16 + ptr*srcScale), mat[15]); _mm512_store_si512(_dst1 + ptr*dstScale, acc); } } #endif /*defined(__AVX512BMM__)*/ void gf16_affine_muladd_bmm(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #if defined(__AVX512BMM__) && defined(__AVX512VL__) gf16_muladd_single(scratch, &gf16_affine_muladd_x_bmm, dst, src, len, coefficient); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); #endif } void gf16_affine_muladd_prefetch_bmm(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch, const void *HEDLEY_RESTRICT prefetch) { UNUSED(mutScratch); #if defined(__AVX512BMM__) && defined(__AVX512VL__) gf16_muladd_prefetch_single(scratch, &gf16_affine_muladd_x_bmm, dst, src, len, coefficient, prefetch); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); UNUSED(prefetch); #endif } #if defined(__AVX512BMM__) && defined(__AVX512VL__) #ifdef PLATFORM_AMD64 GF16_MULADD_MULTI_FUNCS(gf16_affine, _bmm, gf16_affine_muladd_x_bmm, 12, sizeof(__m512i), 0, (void)0) #else GF16_MULADD_MULTI_FUNCS(gf16_affine, _bmm, gf16_affine_muladd_x_bmm, 6, sizeof(__m512i), 0, (void)0) #endif #else GF16_MULADD_MULTI_FUNCS_STUB(gf16_affine, _bmm) #endif void* gf16_affine_init_bmm(int polynomial) { #if defined(__AVX512BMM__) && defined(__AVX512VL__) __m256i* ret; ALIGN_ALLOC(ret, sizeof(__m256i)*20, 64); // we'll do aligned 512b loads from this __m256i identity = _mm256_set_epi16( 0x8000, 0x4000, 0x2000, 0x1000, 0x0800, 0x0400, 0x0200, 0x0100, 0x0080, 0x0040, 0x0020, 0x0010, 0x0008, 0x0004, 0x0002, 0x0001 ); // shift identity by 1 element and push in the polynomial __m256i mul2 = _mm256_alignr_epi8(_mm256_permute2x128_si256( identity, _mm256_castsi128_si256(_mm_cvtsi32_si128(polynomial)), 0x21 ), identity, 2); // generate secondary mul matrix [*1, *16, *256, *4096] _mm256_store_si256((__m256i*)ret + 16, identity); __m256i mul16 = _mm256_bmacxor16x16x16(_mm256_setzero_si256(), mul2, mul2); // 2*2 = 4 mul16 = _mm256_bmacxor16x16x16(_mm256_setzero_si256(), mul16, mul16); // 4*4 = 16 _mm256_store_si256((__m256i*)ret + 17, mul16); __m256i mul256 = _mm256_bmacxor16x16x16(_mm256_setzero_si256(), mul16, mul16); _mm256_store_si256((__m256i*)ret + 18, mul256); _mm256_store_si256((__m256i*)ret + 19, _mm256_bmacxor16x16x16(_mm256_setzero_si256(), mul256, mul16)); // generate lookups for 0-15 for(int val=0; val<16; val++) { __m256i result = _mm256_setzero_si256(); for(int i=0; i<4; i++) { __m256i addval = ((val << i) & 8) ? identity : _mm256_setzero_si256(); result = _mm256_bmacxor16x16x16(addval, result, mul2); } _mm256_store_si256((__m256i*)ret + val, result); } return ret; #else UNUSED(polynomial); return NULL; #endif } par2cmdline-turbo-1.5.0/parpar/gf16/gf16_affine_gfni.c000066400000000000000000000430041524160147200223230ustar00rootroot00000000000000 #include "gf16_global.h" #include "../src/platform.h" #include #define MWORD_SIZE 16 #define _mword __m128i #define _MM(f) _mm_ ## f #define _MMI(f) _mm_ ## f ## _si128 #define _FNSUFFIX _gfni #define _FNPREP(f) f##_gfni #define _MM_END #if defined(__GFNI__) && defined(__SSSE3__) int gf16_affine_available_gfni = 1; # define _AVAILABLE 1 # include "gf16_shuffle_x86_prepare.h" # include "gf16_checksum_x86.h" #else int gf16_affine_available_gfni = 0; #endif #define AFFINE2X_AMD64_INTERLEAVE 6 #include "gf16_affine2x_x86.h" #ifdef _AVAILABLE # undef _AVAILABLE #endif #undef _MM_END #undef _FNSUFFIX #undef _FNPREP #undef _MMI #undef _MM #undef _mword #undef MWORD_SIZE #include "gf16_muladd_multi.h" #if defined(__GFNI__) && defined(__SSSE3__) # ifdef PLATFORM_AMD64 GF_PREPARE_PACKED_FUNCS(gf16_affine, _gfni, sizeof(__m128i)*2, gf16_shuffle_prepare_block_gfni, gf16_shuffle_prepare_blocku_gfni, 3, (void)0, __m128i checksum = _mm_setzero_si128(), gf16_checksum_block_gfni, gf16_checksum_blocku_gfni, gf16_checksum_exp_gfni, gf16_checksum_prepare_gfni, sizeof(__m128i)) # else GF_PREPARE_PACKED_FUNCS(gf16_affine, _gfni, sizeof(__m128i)*2, gf16_shuffle_prepare_block_gfni, gf16_shuffle_prepare_blocku_gfni, 1, (void)0, __m128i checksum = _mm_setzero_si128(), gf16_checksum_block_gfni, gf16_checksum_blocku_gfni, gf16_checksum_exp_gfni, gf16_checksum_prepare_gfni, sizeof(__m128i)) # endif #else GF_PREPARE_PACKED_FUNCS_STUB(gf16_affine, _gfni) #endif #if defined(__GFNI__) && defined(__SSSE3__) static HEDLEY_ALWAYS_INLINE void gf16_affine_load_matrix(const void *HEDLEY_RESTRICT scratch, uint16_t coefficient, __m128i* depmask1, __m128i* depmask2) { *depmask1 = _mm_load_si128((__m128i*)((char*)scratch + ((coefficient & 0xf) << 7))); *depmask2 = _mm_load_si128((__m128i*)((char*)scratch + ((coefficient & 0xf) << 7)) +1); *depmask1 = _mm_xor_si128(*depmask1, _mm_load_si128((__m128i*)((char*)scratch + ((coefficient << 3) & 0x780)) + 1*2)); *depmask2 = _mm_xor_si128(*depmask2, _mm_load_si128((__m128i*)((char*)scratch + ((coefficient << 3) & 0x780)) + 1*2 +1)); *depmask1 = _mm_xor_si128(*depmask1, _mm_load_si128((__m128i*)((char*)scratch + ((coefficient >> 1) & 0x780)) + 2*2)); *depmask2 = _mm_xor_si128(*depmask2, _mm_load_si128((__m128i*)((char*)scratch + ((coefficient >> 1) & 0x780)) + 2*2 +1)); *depmask1 = _mm_xor_si128(*depmask1, _mm_load_si128((__m128i*)((char*)scratch + ((coefficient >> 5) & 0x780)) + 3*2)); *depmask2 = _mm_xor_si128(*depmask2, _mm_load_si128((__m128i*)((char*)scratch + ((coefficient >> 5) & 0x780)) + 3*2 +1)); } #endif #ifdef PARPAR_INVERT_SUPPORT void gf16_affine_mul_gfni(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #if defined(__GFNI__) && defined(__SSSE3__) __m128i depmask1, depmask2; gf16_affine_load_matrix(scratch, coefficient, &depmask1, &depmask2); __m128i mat_ll = _mm_shuffle_epi32(depmask1, _MM_SHUFFLE(1,0,1,0)); // allows src+dst in SSE encoding __m128i mat_hh = _mm_unpackhi_epi64(depmask1, depmask1); // shorter instruction than above, but destructive __m128i mat_hl = _mm_shuffle_epi32(depmask2, _MM_SHUFFLE(1,0,1,0)); __m128i mat_lh = _mm_unpackhi_epi64(depmask2, depmask2); uint8_t* _src = (uint8_t*)src + len; uint8_t* _dst = (uint8_t*)dst + len; for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(__m128i)*2) { __m128i ta = _mm_load_si128((__m128i*)(_src + ptr)); __m128i tb = _mm_load_si128((__m128i*)(_src + ptr) + 1); __m128i tpl = _mm_xor_si128( _mm_gf2p8affine_epi64_epi8(ta, mat_lh, 0), _mm_gf2p8affine_epi64_epi8(tb, mat_ll, 0) ); __m128i tph = _mm_xor_si128( _mm_gf2p8affine_epi64_epi8(ta, mat_hh, 0), _mm_gf2p8affine_epi64_epi8(tb, mat_hl, 0) ); _mm_store_si128 ((__m128i*)(_dst + ptr), tph); _mm_store_si128 ((__m128i*)(_dst + ptr) + 1, tpl); } #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); #endif } #endif #if defined(__GFNI__) && defined(__SSSE3__) static HEDLEY_ALWAYS_INLINE void gf16_affine_muladd_round(const __m128i* src, __m128i* tpl, __m128i* tph, __m128i mat_ll, __m128i mat_hl, __m128i mat_lh, __m128i mat_hh) { __m128i ta = _mm_load_si128(src); __m128i tb = _mm_load_si128(src + 1); *tpl = _mm_xor_si128(*tpl, _mm_gf2p8affine_epi64_epi8(ta, mat_lh, 0)); *tpl = _mm_xor_si128(*tpl, _mm_gf2p8affine_epi64_epi8(tb, mat_ll, 0)); *tph = _mm_xor_si128(*tph, _mm_gf2p8affine_epi64_epi8(ta, mat_hh, 0)); *tph = _mm_xor_si128(*tph, _mm_gf2p8affine_epi64_epi8(tb, mat_hl, 0)); } static HEDLEY_ALWAYS_INLINE void gf16_affine_muladd_x_gfni( const void *HEDLEY_RESTRICT scratch, GF16_BLKMAC_SRCDSTLIST, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, const int doPrefetch, const char* _pf ) { GF16_BLKMAC_SRCDST_UNUSED(3, 1); __m128i depmask1, depmask2; gf16_affine_load_matrix(scratch, coefficients[0], &depmask1, &depmask2); __m128i mat_All = _mm_shuffle_epi32(depmask1, _MM_SHUFFLE(1,0,1,0)); __m128i mat_Ahh = _mm_unpackhi_epi64(depmask1, depmask1); __m128i mat_Ahl = _mm_shuffle_epi32(depmask2, _MM_SHUFFLE(1,0,1,0)); __m128i mat_Alh = _mm_unpackhi_epi64(depmask2, depmask2); __m128i mat_Bll, mat_Bhh, mat_Bhl, mat_Blh; if(srcCount >= 2) { gf16_affine_load_matrix(scratch, coefficients[1], &depmask1, &depmask2); mat_Bll = _mm_shuffle_epi32(depmask1, _MM_SHUFFLE(1,0,1,0)); mat_Bhh = _mm_unpackhi_epi64(depmask1, depmask1); mat_Bhl = _mm_shuffle_epi32(depmask2, _MM_SHUFFLE(1,0,1,0)); mat_Blh = _mm_unpackhi_epi64(depmask2, depmask2); } __m128i mat_Cll, mat_Chh, mat_Chl, mat_Clh; if(srcCount > 2) { gf16_affine_load_matrix(scratch, coefficients[2], &depmask1, &depmask2); mat_Cll = _mm_shuffle_epi32(depmask1, _MM_SHUFFLE(1,0,1,0)); mat_Chh = _mm_unpackhi_epi64(depmask1, depmask1); mat_Chl = _mm_shuffle_epi32(depmask2, _MM_SHUFFLE(1,0,1,0)); mat_Clh = _mm_unpackhi_epi64(depmask2, depmask2); } __m128i tph, tpl; if(doPrefetch) { intptr_t ptr = -(intptr_t)len; if(len & (sizeof(__m128i)*4-1)) { // number of loop iterations isn't even, so do one iteration to make it even tph = _mm_load_si128((__m128i*)(_dst1 + ptr*dstScale)); tpl = _mm_load_si128((__m128i*)(_dst1 + ptr*dstScale) + 1); gf16_affine_muladd_round((__m128i*)(_src1 + ptr*srcScale), &tpl, &tph, mat_All, mat_Ahl, mat_Alh, mat_Ahh); if(srcCount > 1) gf16_affine_muladd_round((__m128i*)(_src2 + ptr*srcScale), &tpl, &tph, mat_Bll, mat_Bhl, mat_Blh, mat_Bhh); if(srcCount > 2) gf16_affine_muladd_round((__m128i*)(_src3 + ptr*srcScale), &tpl, &tph, mat_Cll, mat_Chl, mat_Clh, mat_Chh); _mm_store_si128 ((__m128i*)(_dst1 + ptr*dstScale), tph); _mm_store_si128 ((__m128i*)(_dst1 + ptr*dstScale)+1, tpl); if(doPrefetch == 1) _mm_prefetch(_pf+ptr, MM_HINT_WT1); if(doPrefetch == 2) _mm_prefetch(_pf+ptr, _MM_HINT_T2); ptr += sizeof(__m128i)*2; } while(ptr) { tph = _mm_load_si128((__m128i*)(_dst1 + ptr*dstScale)); tpl = _mm_load_si128((__m128i*)(_dst1 + ptr*dstScale) + 1); gf16_affine_muladd_round((__m128i*)(_src1 + ptr*srcScale), &tpl, &tph, mat_All, mat_Ahl, mat_Alh, mat_Ahh); if(srcCount > 1) gf16_affine_muladd_round((__m128i*)(_src2 + ptr*srcScale), &tpl, &tph, mat_Bll, mat_Bhl, mat_Blh, mat_Bhh); if(srcCount > 2) gf16_affine_muladd_round((__m128i*)(_src3 + ptr*srcScale), &tpl, &tph, mat_Cll, mat_Chl, mat_Clh, mat_Chh); _mm_store_si128 ((__m128i*)(_dst1 + ptr*dstScale), tph); _mm_store_si128 ((__m128i*)(_dst1 + ptr*dstScale)+1, tpl); ptr += sizeof(__m128i)*2; tph = _mm_load_si128((__m128i*)(_dst1 + ptr*dstScale)); tpl = _mm_load_si128((__m128i*)(_dst1 + ptr*dstScale) + 1); gf16_affine_muladd_round((__m128i*)(_src1 + ptr*srcScale), &tpl, &tph, mat_All, mat_Ahl, mat_Alh, mat_Ahh); if(srcCount > 1) gf16_affine_muladd_round((__m128i*)(_src2 + ptr*srcScale), &tpl, &tph, mat_Bll, mat_Bhl, mat_Blh, mat_Bhh); if(srcCount > 2) gf16_affine_muladd_round((__m128i*)(_src3 + ptr*srcScale), &tpl, &tph, mat_Cll, mat_Chl, mat_Clh, mat_Chh); _mm_store_si128 ((__m128i*)(_dst1 + ptr*dstScale), tph); _mm_store_si128 ((__m128i*)(_dst1 + ptr*dstScale)+1, tpl); if(doPrefetch == 1) _mm_prefetch(_pf+(ptr>>1), MM_HINT_WT1); if(doPrefetch == 2) _mm_prefetch(_pf+(ptr>>1), _MM_HINT_T2); ptr += sizeof(__m128i)*2; } } else { for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(__m128i)*2) { tph = _mm_load_si128((__m128i*)(_dst1 + ptr*dstScale)); tpl = _mm_load_si128((__m128i*)(_dst1 + ptr*dstScale) + 1); gf16_affine_muladd_round((__m128i*)(_src1 + ptr*srcScale), &tpl, &tph, mat_All, mat_Ahl, mat_Alh, mat_Ahh); if(srcCount > 1) gf16_affine_muladd_round((__m128i*)(_src2 + ptr*srcScale), &tpl, &tph, mat_Bll, mat_Bhl, mat_Blh, mat_Bhh); if(srcCount > 2) gf16_affine_muladd_round((__m128i*)(_src3 + ptr*srcScale), &tpl, &tph, mat_Cll, mat_Chl, mat_Clh, mat_Chh); _mm_store_si128 ((__m128i*)(_dst1 + ptr*dstScale), tph); _mm_store_si128 ((__m128i*)(_dst1 + ptr*dstScale)+1, tpl); } } } #endif /*defined(__GFNI__) && defined(__SSSE3__)*/ void gf16_affine_muladd_gfni(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #if defined(__GFNI__) && defined(__SSSE3__) gf16_muladd_single(scratch, &gf16_affine_muladd_x_gfni, dst, src, len, coefficient); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); #endif } void gf16_affine_muladd_prefetch_gfni(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch, const void *HEDLEY_RESTRICT prefetch) { UNUSED(mutScratch); #if defined(__GFNI__) && defined(__SSSE3__) gf16_muladd_prefetch_single(scratch, &gf16_affine_muladd_x_gfni, dst, src, len, coefficient, prefetch); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); UNUSED(prefetch); #endif } #if defined(__GFNI__) && defined(__SSSE3__) && defined(PLATFORM_AMD64) GF16_MULADD_MULTI_FUNCS(gf16_affine, _gfni, gf16_affine_muladd_x_gfni, 3, sizeof(__m128i)*2, 0, (void)0) #else GF16_MULADD_MULTI_FUNCS_STUB(gf16_affine, _gfni) #endif #include "gf16_bitdep_init_sse2.h" void* gf16_affine_init_gfni(int polynomial) { #if defined(__SSSE3__) __m128i* ret; ALIGN_ALLOC(ret, sizeof(__m128i)*8*16, 16); gf16_bitdep_init128(ret, polynomial, GF16_BITDEP_INIT128_GEN_AFFINE); return ret; #else UNUSED(polynomial); return NULL; #endif } #if defined(__GFNI__) && defined(__SSSE3__) && !defined(PARPAR_SLIM_GF16) static HEDLEY_ALWAYS_INLINE void gf16_affine2x_muladd_x_gfni( const void *HEDLEY_RESTRICT scratch, GF16_BLKMAC_SRCDSTLIST, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, const int doPrefetch, const char* _pf ) { GF16_BLKMAC_SRCDST_UNUSED(6, 1); __m128i matNormA, matSwapA; __m128i matNormB, matSwapB; __m128i matNormC, matSwapC; __m128i matNormD, matSwapD; __m128i matNormE, matSwapE; __m128i matNormF, matSwapF; // prevent MSVC whining matNormB = matSwapB = matNormC = matSwapC = matNormD = matSwapD = matNormE = matSwapE = matNormF = matSwapF = _mm_undefined_si128(); gf16_affine_load_matrix(scratch, coefficients[0], &matNormA, &matSwapA); if(srcCount >= 2) gf16_affine_load_matrix(scratch, coefficients[1], &matNormB, &matSwapB); if(srcCount >= 3) gf16_affine_load_matrix(scratch, coefficients[2], &matNormC, &matSwapC); if(srcCount >= 4) gf16_affine_load_matrix(scratch, coefficients[3], &matNormD, &matSwapD); if(srcCount >= 5) gf16_affine_load_matrix(scratch, coefficients[4], &matNormE, &matSwapE); if(srcCount >= 6) gf16_affine_load_matrix(scratch, coefficients[5], &matNormF, &matSwapF); intptr_t ptr = -(intptr_t)len; if(doPrefetch) { if(doPrefetch == 1) _mm_prefetch(_pf+ptr, MM_HINT_WT1); if(doPrefetch == 2) _mm_prefetch(_pf+ptr, _MM_HINT_T2); while(ptr & (sizeof(__m128i)*4-1)) { // loop until we reach a cacheline boundary __m128i data = _mm_load_si128((__m128i*)(_src1 + ptr*srcScale)); __m128i result1 = _mm_gf2p8affine_epi64_epi8(data, matNormA, 0); __m128i result2 = _mm_gf2p8affine_epi64_epi8(data, matSwapA, 0); if(srcCount >= 2) { data = _mm_load_si128((__m128i*)(_src2 + ptr*srcScale)); result1 = _mm_xor_si128(result1, _mm_gf2p8affine_epi64_epi8(data, matNormB, 0)); result2 = _mm_xor_si128(result2, _mm_gf2p8affine_epi64_epi8(data, matSwapB, 0)); } if(srcCount >= 3) { data = _mm_load_si128((__m128i*)(_src3 + ptr*srcScale)); result1 = _mm_xor_si128(result1, _mm_gf2p8affine_epi64_epi8(data, matNormC, 0)); result2 = _mm_xor_si128(result2, _mm_gf2p8affine_epi64_epi8(data, matSwapC, 0)); } if(srcCount >= 4) { data = _mm_load_si128((__m128i*)(_src4 + ptr*srcScale)); result1 = _mm_xor_si128(result1, _mm_gf2p8affine_epi64_epi8(data, matNormD, 0)); result2 = _mm_xor_si128(result2, _mm_gf2p8affine_epi64_epi8(data, matSwapD, 0)); } if(srcCount >= 5) { data = _mm_load_si128((__m128i*)(_src5 + ptr*srcScale)); result1 = _mm_xor_si128(result1, _mm_gf2p8affine_epi64_epi8(data, matNormE, 0)); result2 = _mm_xor_si128(result2, _mm_gf2p8affine_epi64_epi8(data, matSwapE, 0)); } if(srcCount >= 6) { data = _mm_load_si128((__m128i*)(_src6 + ptr*srcScale)); result1 = _mm_xor_si128(result1, _mm_gf2p8affine_epi64_epi8(data, matNormF, 0)); result2 = _mm_xor_si128(result2, _mm_gf2p8affine_epi64_epi8(data, matSwapF, 0)); } result1 = _mm_xor_si128(result1, _mm_load_si128((__m128i*)(_dst1 + ptr*dstScale))); result1 = _mm_xor_si128(result1, _mm_shuffle_epi32(result2, _MM_SHUFFLE(1,0,3,2))); _mm_store_si128((__m128i*)(_dst1 + ptr*dstScale), result1); ptr += sizeof(__m128i); } } while(ptr) { if(doPrefetch == 1) _mm_prefetch(_pf+ptr, MM_HINT_WT1); if(doPrefetch == 2) _mm_prefetch(_pf+ptr, _MM_HINT_T2); for(int iter=0; iter<(doPrefetch?4:1); iter++) { // if prefetching, iterate on cachelines __m128i data = _mm_load_si128((__m128i*)(_src1 + ptr*srcScale)); __m128i result1 = _mm_gf2p8affine_epi64_epi8(data, matNormA, 0); __m128i result2 = _mm_gf2p8affine_epi64_epi8(data, matSwapA, 0); if(srcCount >= 2) { data = _mm_load_si128((__m128i*)(_src2 + ptr*srcScale)); result1 = _mm_xor_si128(result1, _mm_gf2p8affine_epi64_epi8(data, matNormB, 0)); result2 = _mm_xor_si128(result2, _mm_gf2p8affine_epi64_epi8(data, matSwapB, 0)); } if(srcCount >= 3) { data = _mm_load_si128((__m128i*)(_src3 + ptr*srcScale)); result1 = _mm_xor_si128(result1, _mm_gf2p8affine_epi64_epi8(data, matNormC, 0)); result2 = _mm_xor_si128(result2, _mm_gf2p8affine_epi64_epi8(data, matSwapC, 0)); } if(srcCount >= 4) { data = _mm_load_si128((__m128i*)(_src4 + ptr*srcScale)); result1 = _mm_xor_si128(result1, _mm_gf2p8affine_epi64_epi8(data, matNormD, 0)); result2 = _mm_xor_si128(result2, _mm_gf2p8affine_epi64_epi8(data, matSwapD, 0)); } if(srcCount >= 5) { data = _mm_load_si128((__m128i*)(_src5 + ptr*srcScale)); result1 = _mm_xor_si128(result1, _mm_gf2p8affine_epi64_epi8(data, matNormE, 0)); result2 = _mm_xor_si128(result2, _mm_gf2p8affine_epi64_epi8(data, matSwapE, 0)); } if(srcCount >= 6) { data = _mm_load_si128((__m128i*)(_src6 + ptr*srcScale)); result1 = _mm_xor_si128(result1, _mm_gf2p8affine_epi64_epi8(data, matNormF, 0)); result2 = _mm_xor_si128(result2, _mm_gf2p8affine_epi64_epi8(data, matSwapF, 0)); } result1 = _mm_xor_si128(result1, _mm_load_si128((__m128i*)(_dst1 + ptr*dstScale))); result1 = _mm_xor_si128(result1, _mm_shuffle_epi32(result2, _MM_SHUFFLE(1,0,3,2))); _mm_store_si128((__m128i*)(_dst1 + ptr*dstScale), result1); ptr += sizeof(__m128i); } } } #endif /*defined(__GFNI__) && defined(__SSSE3__) && !defined(PARPAR_SLIM_GF16)*/ #ifdef PARPAR_INVERT_SUPPORT void gf16_affine2x_mul_gfni(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #if defined(__GFNI__) && defined(__SSSE3__) && !defined(PARPAR_SLIM_GF16) __m128i matNorm, matSwap; gf16_affine_load_matrix(scratch, coefficient, &matNorm, &matSwap); uint8_t* _src = (uint8_t*)src + len; uint8_t* _dst = (uint8_t*)dst + len; for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(__m128i)) { __m128i data = _mm_load_si128((__m128i*)(_src + ptr)); __m128i result1 = _mm_gf2p8affine_epi64_epi8(data, matNorm, 0); __m128i result2 = _mm_gf2p8affine_epi64_epi8(data, matSwap, 0); result1 = _mm_xor_si128(result1, _mm_shuffle_epi32(result2, _MM_SHUFFLE(1,0,3,2))); _mm_store_si128((__m128i*)(_dst + ptr), result1); } #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); #endif } #endif void gf16_affine2x_muladd_gfni(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #if defined(__GFNI__) && defined(__SSSE3__) && !defined(PARPAR_SLIM_GF16) gf16_muladd_single(scratch, &gf16_affine2x_muladd_x_gfni, dst, src, len, coefficient); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); #endif } #if defined(__GFNI__) && defined(__SSSE3__) && !defined(PARPAR_SLIM_GF16) # ifdef PLATFORM_AMD64 GF16_MULADD_MULTI_FUNCS(gf16_affine2x, _gfni, gf16_affine2x_muladd_x_gfni, 6, sizeof(__m128i), 0, (void)0) # else // if only 8 registers available, only allow 2 parallel regions GF16_MULADD_MULTI_FUNCS(gf16_affine2x, _gfni, gf16_affine2x_muladd_x_gfni, 2, sizeof(__m128i), 0, (void)0) # endif #else GF16_MULADD_MULTI_FUNCS_STUB(gf16_affine2x, _gfni) #endif par2cmdline-turbo-1.5.0/parpar/gf16/gf16_bitdep_init_avx2.h000066400000000000000000000054471524160147200233400ustar00rootroot00000000000000 #include "../src/hedley.h" #include "../src/platform.h" #ifdef __AVX2__ static inline __m256i gf16_bitdep256_swap(__m256i v, int genAffine) { if(genAffine) { // swap for affine2x return _mm256_permute4x64_epi64(v, _MM_SHUFFLE(1,2,0,3)); } else { // interleave so that word pairs are split __m256i swapped = _mm256_shuffle_epi8(v, _mm256_set_epi32( // first half -> slli_epi16(x, 8) 0x0e800c80, 0x0a800880, 0x06800480, 0x02800080, // second half -> srli_epi16(x, 8) 0x800f800d, 0x800b8009, 0x80078005, 0x80038001 )); swapped = _mm256_permute2x128_si256(swapped, swapped, 0x01); // interleave return _mm256_blendv_epi8(v, swapped, _mm256_set_epi32( 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00 )); } } #endif #ifdef __AVX2__ static void gf16_bitdep_init256(void* dst, int polynomial, int genAffine) { // expand polynomial into vector __m128i shuf = _mm_cmpeq_epi8( _mm_setzero_si128(), _mm_and_si128( _mm_shuffle_epi8( _mm_cvtsi32_si128(polynomial & 0xffff), _mm_set_epi32(0, 0, 0x01010101, 0x01010101) ), _mm_set_epi32(0x01020408, 0x10204080, 0x01020408, 0x10204080) ) ); /* AVX512 version: __m128i shuf = _mm_shuffle_epi8(_mm_movm_epi8(~(polynomial & 0xFFFF)), _mm_set_epi8( 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 )); */ // pre-generate lookup tables for getting bitdeps __m256i addvals = genAffine ? _mm256_set_epi8( 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 ) : _mm256_set_epi8( 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 ); __m256i shuf2 = _mm256_inserti128_si256(_mm256_castsi128_si256(shuf), shuf, 1); for(int val=0; val<16; val++) { __m256i valtest = _mm256_set1_epi16(val << 12); __m256i addmask = _mm256_srai_epi16(valtest, 15); __m256i depmask = _mm256_and_si256(addvals, addmask); for(int i=0; i<3; i++) { // rotate __m256i last = _mm256_shuffle_epi8(depmask, shuf2); depmask = _mm256_srli_si256(depmask, 1); // XOR poly depmask = _mm256_xor_si256(depmask, last); valtest = _mm256_add_epi16(valtest, valtest); addmask = _mm256_srai_epi16(valtest, 15); addmask = _mm256_and_si256(addvals, addmask); depmask = _mm256_xor_si256(depmask, addmask); } _mm256_store_si256((__m256i*)dst + (val*4 + 0), gf16_bitdep256_swap(depmask, genAffine)); for(int j=1; j<4; j++) { for(int i=0; i<4; i++) { __m256i last = _mm256_shuffle_epi8(depmask, shuf2); depmask = _mm256_srli_si256(depmask, 1); depmask = _mm256_xor_si256(depmask, last); } _mm256_store_si256((__m256i*)dst + (val*4 + j), gf16_bitdep256_swap(depmask, genAffine)); } } } #endif par2cmdline-turbo-1.5.0/parpar/gf16/gf16_bitdep_init_sse2.h000066400000000000000000000130051524160147200233210ustar00rootroot00000000000000 #include "../src/hedley.h" #include "../src/platform.h" #define GF16_BITDEP_INIT128_GEN_XOR 0 #define GF16_BITDEP_INIT128_GEN_XORJIT 1 #define GF16_BITDEP_INIT128_GEN_AFFINE 2 #ifdef __SSE2__ static inline void gf16_bitdep128_store(__m128i* dst, __m128i depmask1, __m128i depmask2, int genMode) { if(genMode == GF16_BITDEP_INIT128_GEN_AFFINE) { # ifdef __SSSE3__ __m128 tmp1 = _mm_castsi128_ps(_mm_shuffle_epi8(depmask1, _mm_set_epi8( 14,12,10,8,6,4,2,0, 15,13,11,9,7,5,3,1 ))); __m128 tmp2 = _mm_castsi128_ps(_mm_shuffle_epi8(depmask2, _mm_set_epi8( 14,12,10,8,6,4,2,0, 15,13,11,9,7,5,3,1 ))); // swap around for affine2x depmask1 = _mm_castps_si128(_mm_shuffle_ps(tmp2, tmp1, _MM_SHUFFLE(3,2,1,0))); depmask2 = _mm_castps_si128(_mm_shuffle_ps(tmp1, tmp2, _MM_SHUFFLE(3,2,1,0))); # endif } else if(genMode == GF16_BITDEP_INIT128_GEN_XORJIT) { /* emulate PACKUSDW (SSE4.1 only) with SSE2 shuffles */ /* 01234567 -> 02461357 */ __m128i tmp1 = _mm_shuffle_epi32( _mm_shufflelo_epi16( _mm_shufflehi_epi16(depmask1, 0xD8), /* 0xD8 == 0b11011000 */ 0xD8 ), 0xD8 ); __m128i tmp2 = _mm_shuffle_epi32( _mm_shufflelo_epi16( _mm_shufflehi_epi16(depmask2, 0xD8), 0xD8 ), 0xD8 ); /* [02461357, 8ACE9BDF] -> [02468ACE, 13579BDF]*/ depmask1 = _mm_unpacklo_epi64(tmp1, tmp2); depmask2 = _mm_unpackhi_epi64(tmp1, tmp2); __m128i lmask = _mm_set1_epi8(0xF); /* interleave bits for faster lookups */ __m128i tmp3l = _mm_and_si128(depmask1, lmask); __m128i tmp3h = _mm_and_si128(_mm_srli_epi16(depmask1, 4), lmask); __m128i tmp4l = _mm_and_si128(depmask2, lmask); __m128i tmp4h = _mm_and_si128(_mm_srli_epi16(depmask2, 4), lmask); /* expand bits: idea from https://graphics.stanford.edu/~seander/bithacks.html#InterleaveBMN */ #define EXPAND_ROUND(src, shift, mask) _mm_and_si128( \ _mm_or_si128(src, shift==1 ? _mm_add_epi16(src, src) : _mm_slli_epi16(src, shift)), \ _mm_set1_epi16(mask) \ ) /* 8-bit -> 16-bit convert, with 4-bit interleave */ tmp1 = _mm_unpacklo_epi8(tmp3l, tmp3h); tmp2 = _mm_unpacklo_epi8(tmp4l, tmp4h); tmp1 = EXPAND_ROUND(tmp1, 2, 0x3333); tmp2 = EXPAND_ROUND(tmp2, 2, 0x3333); tmp1 = EXPAND_ROUND(tmp1, 1, 0x5555); tmp2 = EXPAND_ROUND(tmp2, 1, 0x5555); depmask1 = _mm_or_si128(tmp1, _mm_add_epi16(tmp2, tmp2)); tmp1 = _mm_unpackhi_epi8(tmp3l, tmp3h); tmp2 = _mm_unpackhi_epi8(tmp4l, tmp4h); tmp1 = EXPAND_ROUND(tmp1, 2, 0x3333); tmp2 = EXPAND_ROUND(tmp2, 2, 0x3333); tmp1 = EXPAND_ROUND(tmp1, 1, 0x5555); tmp2 = EXPAND_ROUND(tmp2, 1, 0x5555); depmask2 = _mm_or_si128(tmp1, _mm_add_epi16(tmp2, tmp2)); #undef EXPAND_ROUND } _mm_store_si128((__m128i*)dst + 0, depmask1); _mm_store_si128((__m128i*)dst + 1, depmask2); } #endif #ifdef __SSE2__ static void gf16_bitdep_init128(void* dst, int polynomial, int genMode) { __m128i polymask1, polymask2; /* duplicate each bit in the polynomial 16 times */ polymask2 = _mm_set1_epi16(polynomial & 0xFFFF); /* chop off top bit, although not really necessary */ polymask1 = _mm_and_si128(polymask2, _mm_set_epi16(0x0100, 0x0200, 0x0400, 0x0800, 0x1000, 0x2000, 0x4000, 0x8000)); polymask2 = _mm_and_si128(polymask2, _mm_set_epi16(0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80)); polymask1 = _mm_cmpeq_epi16(_mm_setzero_si128(), polymask1); polymask2 = _mm_cmpeq_epi16(_mm_setzero_si128(), polymask2); polymask1 = _mm_xor_si128(polymask1, _mm_set1_epi8(0xff)); polymask2 = _mm_xor_si128(polymask2, _mm_set1_epi8(0xff)); // pre-generate lookup tables for getting bitdeps __m128i addvals1 = genMode==GF16_BITDEP_INIT128_GEN_AFFINE ? _mm_set_epi16(0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80) : _mm_set_epi16(0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01); __m128i addvals2 = genMode==GF16_BITDEP_INIT128_GEN_AFFINE ? _mm_set_epi16(0x0100, 0x0200, 0x0400, 0x0800, 0x1000, 0x2000, 0x4000, 0x8000) : _mm_set_epi16(0x8000, 0x4000, 0x2000, 0x1000, 0x0800, 0x0400, 0x0200, 0x0100); for(int val=0; val<16; val++) { __m128i valtest = _mm_set1_epi16(val << 12); __m128i addmask = _mm_srai_epi16(valtest, 15); /* _mm_cmpgt_epi16(_mm_setzero_si128(), valtest) is an alternative, but GCC/Clang prefer the former, so trust the compiler */ __m128i depmask1 = _mm_and_si128(addvals1, addmask); __m128i depmask2 = _mm_and_si128(addvals2, addmask); for(int i=0; i<3; i++) { /* rotate */ __m128i last = _mm_shuffle_epi32(_mm_shufflelo_epi16(depmask1, 0), 0); depmask1 = _mm_or_si128( _mm_srli_si128(depmask1, 2), _mm_slli_si128(depmask2, 14) ); depmask2 = _mm_srli_si128(depmask2, 2); /* XOR poly */ depmask1 = _mm_xor_si128(depmask1, _mm_and_si128(polymask1, last)); depmask2 = _mm_xor_si128(depmask2, _mm_and_si128(polymask2, last)); valtest = _mm_add_epi16(valtest, valtest); addmask = _mm_srai_epi16(valtest, 15); depmask1 = _mm_xor_si128(depmask1, _mm_and_si128(addvals1, addmask)); depmask2 = _mm_xor_si128(depmask2, _mm_and_si128(addvals2, addmask)); } gf16_bitdep128_store((__m128i*)dst + (val*4+0)*2, depmask1, depmask2, genMode); for(int j=1; j<4; j++) { for(int i=0; i<4; i++) { __m128i last = _mm_shuffle_epi32(_mm_shufflelo_epi16(depmask1, 0), 0); depmask1 = _mm_or_si128( _mm_srli_si128(depmask1, 2), _mm_slli_si128(depmask2, 14) ); depmask2 = _mm_srli_si128(depmask2, 2); depmask1 = _mm_xor_si128(depmask1, _mm_and_si128(polymask1, last)); depmask2 = _mm_xor_si128(depmask2, _mm_and_si128(polymask2, last)); } gf16_bitdep128_store((__m128i*)dst + (val*4+j)*2, depmask1, depmask2, genMode); } } } #endif par2cmdline-turbo-1.5.0/parpar/gf16/gf16_checksum_arm.h000066400000000000000000000075551524160147200225510ustar00rootroot00000000000000#ifndef __GF16_CHECKSUM_H #define __GF16_CHECKSUM_H #include "gf16_neon_common.h" static HEDLEY_ALWAYS_INLINE uint8x16_t gf16_vec_mul2_neon(uint8x16_t v) { int16x8_t _v = vreinterpretq_s16_u8(v); return vreinterpretq_u8_s16(veorq_s16( vaddq_s16(_v, _v), vandq_s16( vdupq_n_s16(GF16_POLYNOMIAL & 0xffff), vshrq_n_s16(_v, 15) ) )); } // we want to avoid vld1/vst1 because compilers tend to interpret those quite literally, when we really want the value to be held in a register #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ // however, it seems that this allows big-endian implementations to change the ordering of bytes static HEDLEY_ALWAYS_INLINE uint8x16_t gf16_checksum_load(const void *HEDLEY_RESTRICT checksum) { return vld1q_u8((const uint8_t *HEDLEY_RESTRICT)checksum); } static HEDLEY_ALWAYS_INLINE void gf16_checksum_store(void *HEDLEY_RESTRICT checksum, uint8x16_t v) { vst1q_u8((uint8_t *HEDLEY_RESTRICT)checksum, v); } #else static HEDLEY_ALWAYS_INLINE uint8x16_t gf16_checksum_load(const void *HEDLEY_RESTRICT checksum) { return *(const uint8x16_t *HEDLEY_RESTRICT)checksum; } static HEDLEY_ALWAYS_INLINE void gf16_checksum_store(void *HEDLEY_RESTRICT checksum, uint8x16_t v) { *(uint8x16_t *HEDLEY_RESTRICT)checksum = v; } #endif static HEDLEY_ALWAYS_INLINE void gf16_checksum_block_neon(const void *HEDLEY_RESTRICT src, void *HEDLEY_RESTRICT checksum, const size_t blockLen, const int aligned) { UNUSED(aligned); uint8x16_t v = gf16_checksum_load(checksum); v = gf16_vec_mul2_neon(v); uint8_t* _src = (uint8_t*)src; for(unsigned i=0; i= sizeof(uint8x16_t); amount -= sizeof(uint8x16_t)) { v = veorq_u8(v, vld1q_u8(_src)); _src += sizeof(uint8x16_t); } if(amount) { uint8_t tmp[sizeof(uint8x16_t)] = {0}; memcpy(tmp, _src, amount); v = veorq_u8(v, vld1q_u8(tmp)); } gf16_checksum_store(checksum, v); } static HEDLEY_ALWAYS_INLINE void gf16_checksum_exp_neon(void *HEDLEY_RESTRICT checksum, uint16_t exp) { int16x8_t coeff = vdupq_n_s16(exp); uint8x16_t _checksum = gf16_checksum_load(checksum); uint8x16_t res = vandq_u8(vreinterpretq_u8_s16(vshrq_n_s16(coeff, 15)), _checksum); for(int i=0; i<15; i++) { res = gf16_vec_mul2_neon(res); coeff = vaddq_s16(coeff, coeff); res = veorq_u8(res, vandq_u8( vreinterpretq_u8_s16(vshrq_n_s16(coeff, 15)), _checksum )); } gf16_checksum_store(checksum, res); } static HEDLEY_ALWAYS_INLINE void gf16_checksum_prepare_neon(void *HEDLEY_RESTRICT dst, void *HEDLEY_RESTRICT checksum, const size_t blockLen, gf16_transform_block_rst prepareBlock) { #define _X(bl) \ ALIGN_TO(16, uint8_t tmp[bl]) = {0}; \ vst1q_u8(tmp, gf16_checksum_load(checksum)); \ prepareBlock(dst, tmp) if(blockLen == 16) { _X(16); } else if(blockLen == 32) { _X(32); } else if(blockLen == 64) { _X(64); } else { assert(blockLen == 0); } #undef _X } static HEDLEY_ALWAYS_INLINE void gf16_ungrp2a_block_neon(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, const size_t blockLen) { const uint16_t* _src = (const uint16_t*)src; uint16_t* _dst = (uint16_t*)dst; for(unsigned i=0; i> 32); n = ((n & 0xffff0000ffffULL) << 16) | ((n >> 16) & 0xffff0000ffffULL); n = ((n & 0xff00ff00ff00ffULL) << 8) | ((n >> 8) & 0xff00ff00ff00ffULL); return n; } static HEDLEY_ALWAYS_INLINE uint32_t SWAP32(uint32_t n) { return ((n&0xff) << 24) | ((n&0xff00) << 8) | ((n>>8) & 0xff00) | (n >> 24); } static HEDLEY_ALWAYS_INLINE uint16_t SWAP16(uint16_t n) { return ((n&0xff) << 8) | (n >> 8); } #else # define SWAP64(n) (n) # define SWAP32(n) (n) # define SWAP16(n) (n) #endif static HEDLEY_ALWAYS_INLINE uintptr_t gf16_multi_mul2(uintptr_t v) { // assume uintptr_t is at least 2 assert(sizeof(uintptr_t) >= 2); if(sizeof(uintptr_t) >= 8) { const uintptr_t mask = (uintptr_t)0x0001000100010001ULL; v = ((v*2) & ~mask) ^ (((v >> 15) & mask) * (GF16_POLYNOMIAL & 0xffff)); } else if(sizeof(uintptr_t) >= 4) { const uintptr_t mask = (uintptr_t)0x00010001; v = ((v*2) & ~mask) ^ (((v >> 15) & mask) * (GF16_POLYNOMIAL & 0xffff)); } else { v = (v*2) ^ (-(v >> 15) & GF16_POLYNOMIAL); } return v; } static HEDLEY_ALWAYS_INLINE void gf16_checksum_blocku_generic(const void *HEDLEY_RESTRICT src, size_t amount, void *HEDLEY_RESTRICT checksum) { uint8_t* _src = (uint8_t*)src; if(sizeof(uintptr_t) >= 8) { uint64_t data = 0; size_t remaining = amount & (sizeof(uint64_t)-1); amount ^= remaining; while(amount) { data ^= read64(_src); _src += sizeof(uint64_t); amount -= sizeof(uint64_t); } if(remaining) { uint64_t dataPart = 0; memcpy(&dataPart, _src, remaining); data ^= dataPart; } write64(checksum, (uint64_t)gf16_multi_mul2(read64(checksum)) ^ SWAP64(data)); } else if(sizeof(uintptr_t) >= 4) { uint32_t data = 0; size_t remaining = amount & (sizeof(uint32_t)-1); amount ^= remaining; while(amount) { data ^= read32(_src); _src += sizeof(uint32_t); amount -= sizeof(uint32_t); } if(remaining) { uint32_t dataPart = 0; memcpy(&dataPart, _src, remaining); data ^= dataPart; } write32(checksum, (uint32_t)gf16_multi_mul2(read32(checksum)) ^ SWAP32(data)); } else { uint16_t data = 0; while(amount > 1) { data ^= read16(_src); _src += sizeof(uint16_t); amount -= sizeof(uint16_t); } if(amount) { uint16_t dataPart = *_src; data ^= SWAP16(dataPart); } write16(checksum, (uint16_t)gf16_multi_mul2(read16(checksum)) ^ SWAP16(data)); } } static HEDLEY_ALWAYS_INLINE void gf16_checksum_block_generic(const void *HEDLEY_RESTRICT src, void *HEDLEY_RESTRICT checksum, const size_t blockLen, const int aligned) { UNUSED(aligned); gf16_checksum_blocku_generic(src, blockLen, checksum); } static HEDLEY_ALWAYS_INLINE void gf16_ungrp2a_block_generic(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, const size_t blockLen) { const uint16_t* _src = (const uint16_t*)src; uint16_t* _dst = (uint16_t*)dst; size_t remaining = blockLen; while(remaining) { if(sizeof(uintptr_t) >= 8) { #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ write64(_dst, ((uint64_t)read16(_src) << 48) | ((uint64_t)read16(_src + 2) << 32) | ((uint64_t)read16(_src + 4) << 16) | read16(_src + 6)); #else write64(_dst, read16(_src) | ((uint64_t)read16(_src + 2) << 16) | ((uint64_t)read16(_src + 4) << 32) | ((uint64_t)read16(_src + 6) << 48)); #endif remaining -= 8; _src += 8; _dst += 4; } else if(sizeof(uintptr_t) >= 4) { #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ write32(_dst, ((uint32_t)read16(_src) << 16) | read16(_src + 2)); #else write32(_dst, read16(_src) | ((uint32_t)read16(_src + 2) << 16)); #endif remaining -= 4; _src += 4; _dst += 2; } else { write16(_dst, read16(_src)); remaining -= 2; _src += 2; _dst += 1; } } } static HEDLEY_ALWAYS_INLINE void gf16_ungrp2b_block_generic(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, const size_t blockLen) { gf16_ungrp2a_block_generic(dst, (const uint16_t*)src + 1, blockLen); } static HEDLEY_ALWAYS_INLINE void gf16_checksum_exp_generic(void *HEDLEY_RESTRICT checksum, uint16_t exp) { uint16_t coeff = exp; // multiply checksum by coeff if(sizeof(uintptr_t) >= 8) { uint64_t _checksum = read64(checksum); uint64_t res = -(uint64_t)(coeff>>15) & _checksum; for(int i=0; i<15; i++) { res = (uint64_t)gf16_multi_mul2(res); coeff <<= 1; res ^= -(uint64_t)(coeff>>15) & _checksum; } write64(checksum, res); } else if(sizeof(uintptr_t) >= 4) { uint32_t _checksum = read32(checksum); uint32_t res = -(uint32_t)(coeff>>15) & _checksum; for(int i=0; i<15; i++) { res = (uint32_t)gf16_multi_mul2(res); coeff <<= 1; res ^= -(uint32_t)(coeff>>15) & _checksum; } write32(checksum, res); } else { uint16_t _checksum = read16(checksum); uint16_t res = -(coeff>>15) & _checksum; for(int i=0; i<15; i++) { res = (uint16_t)gf16_multi_mul2(res); coeff <<= 1; res ^= -(coeff>>15) & _checksum; } write16(checksum, res); } } #endif par2cmdline-turbo-1.5.0/parpar/gf16/gf16_checksum_rvv.h000066400000000000000000000073131524160147200225770ustar00rootroot00000000000000#ifndef __GF16_CHECKSUM_H #define __GF16_CHECKSUM_H #include "gf16_rvv_common.h" #ifdef __RVV_LE static HEDLEY_ALWAYS_INLINE void gf16_checksum_block_rvv(const void *HEDLEY_RESTRICT src, void *HEDLEY_RESTRICT checksum, const size_t blockLen, const int aligned) { size_t vl = RV(vsetvlmax_e8m1)(); const unsigned words = blockLen/vl; vint16m1_t v = *(vint16m1_t*)checksum; v = gf16_vec_mul2_rvv(v); if(aligned) { vl = RV(vsetvlmax_e16m1)(); int16_t* _src = (int16_t*)src; for(unsigned i=0; i= 12000 vuint16m1x2_t w = RV(vlseg2e16_v_u16m1x2)(_src + i, vl); vuint16m1_t w1 = RV(vget_v_u16m1x2_u16m1)(w, 0); #else vuint16m1_t w1, w2; RV(vlseg2e16_v_u16m1)(&w1, &w2, _src + i, vl); #endif RV(vse16_v_u16m1)(_dst + i/2, w1, vl); } } static HEDLEY_ALWAYS_INLINE void gf16_ungrp2b_block_rvv(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, const size_t blockLen) { size_t vl = RV(vsetvlmax_e8m1)(); const uint16_t* _src = (const uint16_t*)src; uint16_t* _dst = (uint16_t*)dst; for(unsigned i=0; i= 12000 vuint16m1x2_t w = RV(vlseg2e16_v_u16m1x2)(_src + i, vl); vuint16m1_t w2 = RV(vget_v_u16m1x2_u16m1)(w, 1); #else vuint16m1_t w1, w2; RV(vlseg2e16_v_u16m1)(&w1, &w2, _src + i, vl); #endif RV(vse16_v_u16m1)(_dst + i/2, w2, vl); } } #endif #endif par2cmdline-turbo-1.5.0/parpar/gf16/gf16_checksum_sve.h000066400000000000000000000044441524160147200225610ustar00rootroot00000000000000#ifndef __GF16_CHECKSUM_H #define __GF16_CHECKSUM_H #include "gf16_sve_common.h" #ifdef __ARM_FEATURE_SVE static HEDLEY_ALWAYS_INLINE void gf16_checksum_block_sve(const void *HEDLEY_RESTRICT src, void *HEDLEY_RESTRICT checksum, const size_t blockLen, const int aligned) { UNUSED(aligned); const unsigned words = blockLen/svcntb(); svint16_t v = *(svint16_t*)checksum; v = gf16_vec_mul2_sve(v); int16_t* _src = (int16_t*)src; for(unsigned i=0; i sizeof(_mword)*2; amount -= sizeof(_mword)*2) { v = _mm512_ternarylogic_epi32(v, _mm512_loadu_si512(_src), _mm512_loadu_si512(_src+1), 0x96); _src += 2; } if(amount > sizeof(_mword)) { v = _mm512_xor_si512(v, _mm512_loadu_si512(_src++)); amount -= sizeof(_mword); } #else */ for(; amount >= sizeof(_mword); amount -= sizeof(_mword)) { v = _MMI(xor)(v, _MMI(loadu)(_src++)); } //#endif if(amount) v = _MMI(xor)(v, partial_load(_src, amount)); *(_mword*)checksum = v; } static HEDLEY_ALWAYS_INLINE void _FN(gf16_checksum_exp)(void *HEDLEY_RESTRICT checksum, uint16_t exp) { _mword coeff = _MM(set1_epi16)(exp); _mword _checksum = *(_mword*)checksum; _mword res = _MMI(and)( _MM(srai_epi16)(coeff, 15), _checksum ); for(int i=0; i<15; i++) { res = _FN(gf16_vec_mul2)(res); coeff = _MM(add_epi16)(coeff, coeff); #if MWORD_SIZE==64 res = _mm512_ternarylogic_epi32( res, _mm512_srai_epi16(coeff, 15), _checksum, 0x78 // (a^(b&c)) ); #else res = _MMI(xor)(res, _MMI(and)( _MM(srai_epi16)(coeff, 15), _checksum )); #endif } *(_mword*)checksum = res; } static HEDLEY_ALWAYS_INLINE void _FN(gf16_checksum_prepare)(void *HEDLEY_RESTRICT dst, void *HEDLEY_RESTRICT checksum, const size_t blockLen, gf16_transform_block_rst prepareBlock) { // because some compilers don't like `tmp[blockLen]` despite blockLen being constant, just implement every possibility #define _X(bl) \ ALIGN_TO(MWORD_SIZE, uint8_t tmp[bl]) = {0}; \ _MMI(store)((_mword*)tmp, *(_mword*)checksum); \ prepareBlock(dst, tmp) if(blockLen == 16) { _X(16); } else if(blockLen == 32) { _X(32); } else if(blockLen == 64) { _X(64); } else if(blockLen == 128) { _X(128); } else if(blockLen == 256) { _X(256); } else if(blockLen == 512) { _X(512); } else if(blockLen == 1024) { _X(1024); } else { assert(blockLen == 0); } #undef _X } static HEDLEY_ALWAYS_INLINE void _FN(gf16_ungrp2a_block)(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, const size_t blockLen) { const unsigned words = (unsigned)blockLen / sizeof(_mword); const _mword* _src = (const _mword*)src; _mword* _dst = (_mword*)dst; for(unsigned i=0; i #include "gf16_global.h" #ifdef _AVAILABLE #include "gfmat_coeff.h" #include #ifndef CKSUM_SIZE # define CKSUM_SIZE sizeof(cksum_t) #elif defined(_MSC_VER) && !defined(__clang__) // CKSUM_SIZE is dynamic size (e.g. SVE) and MSVC doesn't support variable stack declaration # include # define CKSUM_ALLOC(nam) uint8_t* nam = (uint8_t*)_alloca(CKSUM_SIZE) #endif #ifndef CKSUM_ALLOC # define CKSUM_ALLOC(nam) uint8_t nam[CKSUM_SIZE] #endif static HEDLEY_ALWAYS_INLINE void _FN(gf16_cksum_docopy)(uint8_t *HEDLEY_RESTRICT dst, const uint8_t *HEDLEY_RESTRICT src, size_t srcLen, cksum_t* cksum) { if(srcLen >= CKSUM_SIZE) { for(size_t pos = 0; pos < (srcLen-CKSUM_SIZE+1); pos += CKSUM_SIZE) { const cksum_t* p = (const cksum_t*)(src + pos); cksum_t data; LOAD_DATA(data, p); _FN(gf16_checksum_block)(p, cksum, CKSUM_SIZE, 0); STORE_DATA(dst + pos, data); } } size_t remaining = srcLen % CKSUM_SIZE; size_t lenAligned = srcLen - remaining; if(remaining) { _FN(gf16_checksum_blocku)(src + lenAligned, remaining, cksum); memcpy(dst+lenAligned, src+lenAligned, remaining); } } void _FN(gf16_cksum_copy)(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen) { assert(srcLen <= sliceLen); cksum_t cksum = CKSUM_ZERO; uint8_t* _dst = (uint8_t*)dst; _FN(gf16_cksum_docopy)(_dst, (const uint8_t*)src, srcLen, &cksum); if(srcLen < sliceLen) { // zero rest of block size_t amount = sliceLen - srcLen; size_t cksumDone = ((srcLen + CKSUM_SIZE-1) / CKSUM_SIZE) * CKSUM_SIZE; memset(_dst + srcLen, 0, amount); if(cksumDone < sliceLen) _FN(gf16_checksum_exp)(&cksum, gf16_exp(((sliceLen - cksumDone + CKSUM_SIZE-1) / CKSUM_SIZE) % 65535)); } STORE_DATA(_dst + sliceLen, cksum); } int _FN(gf16_cksum_copy_check)(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len) { const uint8_t* _src = (const uint8_t*)src; uint8_t* _dst = (uint8_t*)dst; cksum_t cksum; LOAD_DATA(cksum, _src + len); // rewind checksum _FN(gf16_checksum_exp)(&cksum, gf16_exp(65535 - (((len+CKSUM_SIZE-1) / CKSUM_SIZE) % 65535))); _FN(gf16_cksum_docopy)(_dst, _src, len, &cksum); return CKSUM_IS_ZERO(cksum); } int _FN(gf16_grp2_finish)(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, unsigned grp) { assert(len % 2 == 0); const uint8_t* _src = (const uint8_t*)src; uint8_t* _dst = (uint8_t*)dst; cksum_t cksum; { CKSUM_ALLOC(block); if(grp & 1) _FN(gf16_ungrp2b_block)(block, _src + len*2, CKSUM_SIZE); else _FN(gf16_ungrp2a_block)(block, _src + len*2, CKSUM_SIZE); LOAD_DATA(cksum, block); } // rewind checksum _FN(gf16_checksum_exp)(&cksum, gf16_exp(65535 - (((len+CKSUM_SIZE-1) / CKSUM_SIZE) % 65535))); if(len >= CKSUM_SIZE) { if(grp & 1) { for(size_t pos = 0; pos < (len-CKSUM_SIZE+1); pos += CKSUM_SIZE) { _FN(gf16_ungrp2b_block)(_dst + pos, _src + pos*2, CKSUM_SIZE); _FN(gf16_checksum_block)(_dst + pos, &cksum, CKSUM_SIZE, 0); } } else { for(size_t pos = 0; pos < (len-CKSUM_SIZE+1); pos += CKSUM_SIZE) { _FN(gf16_ungrp2a_block)(_dst + pos, _src + pos*2, CKSUM_SIZE); _FN(gf16_checksum_block)(_dst + pos, &cksum, CKSUM_SIZE, 0); } } } size_t remaining = len % CKSUM_SIZE; size_t lenAligned = len - remaining; if(remaining) { const uint16_t* src16 = (const uint16_t*)(_src + lenAligned*2); src16 += grp & 1; for(unsigned i=0; i> 2` in one op th0_hi3 = vqtbl1q_u8( vmakeq_u8(0,1,2,3,5,4,7,6, 0,0,0,0,0,0,0,0), th0_hi3 ); #else uint8x16_t th0_hi1 = vshrq_n_u8(th0_hi3, 2); // or is `vshrq_n_u8(th0, 7)` better? #endif // mul by 0x1a => we only care about upper byte // note that as hibytes.val[1] can only contain 7 bits (due to 16b*16b->31b), multiplying by 0x18 also works // the 0x10 part is handled above, so just need to shift in for the 0x8 th0 = veorq_u8(th0, vshrq_n_u8(hibytes.val[1], 5)); // multiply by polynomial: 0x100b poly8x16_t redL = vdupq_n_p8(0x0b); hibytes.val[1] = vsliq_n_u8(th0_hi3, th0, 4); th1 = vreinterpretq_u8_p8(vmulq_p8(vreinterpretq_p8_u8(th1), redL)); hibytes.val[0] = vreinterpretq_u8_p8(vmulq_p8(vreinterpretq_p8_u8(th0), redL)); *low1 = vreinterpretq_p16_u8(lobytes.val[0]); *low2 = vreinterpretq_p16_u8(hibytes.val[0]); #if defined(__aarch64__) && !defined(__ARM_FEATURE_SHA3) *high1 = vreinterpretq_p16_u8(veorq_u8(hibytes.val[1], th1)); #else *high1 = vreinterpretq_p16_u8(eor3q_u8(hibytes.val[1], th0_hi1, th1)); #endif *high2 = vreinterpretq_p16_u8(lobytes.val[1]); } #endif par2cmdline-turbo-1.5.0/parpar/gf16/gf16_clmul_neon_base.h000066400000000000000000000157331524160147200232320ustar00rootroot00000000000000 #include "gf16_clmul_neon.h" #include "gf16_muladd_multi.h" // TODO: for any multiplicand byte that's 0 (e.g. for coeff < 256), can shortcut a bunch of stuff, but may not be worth the effort #if defined(_AVAILABLE) static HEDLEY_ALWAYS_INLINE void gf16_clmul_neon_round1(const void* src, poly16x8_t* low1, poly16x8_t* low2, poly16x8_t* mid1, poly16x8_t* mid2, poly16x8_t* high1, poly16x8_t* high2, const coeff_t* coeff) { poly8x16x2_t data = vld2q_p8((const poly8_t*)src); *low1 = pmull_low(data.val[0], coeff[0]); *low2 = pmull_high(data.val[0], coeff[0]); poly8x16_t mid = veorq_p8(data.val[0], data.val[1]); *mid1 = pmull_low(mid, coeff[2]); *mid2 = pmull_high(mid, coeff[2]); *high1 = pmull_low(data.val[1], coeff[1]); *high2 = pmull_high(data.val[1], coeff[1]); // TODO: try idea of forcing an EOR via asm volatile /* Alternative approach for AArch64, which only needs one register per region at the expense of 2 additional instructions; unfortunately compilers won't heed our aim // the `midCoeff` approach can also work with AArch32 coeff_t swapCoeff = vextq_p8(coeff[0], coeff[0], 8); coeff_t midCoeff = veorq_p8(coeff[0], swapCoeff); *low1 = pmull_low(data.val[0], coeff[0]); *low2 = pmull_high(data.val[0], swapCoeff); poly8x16_t mid = veorq_p8(data.val[0], data.val[1]); *mid1 = pmull_low(mid, midCoeff); *mid2 = pmull_high(mid, midCoeff); *high1 = pmull_low(data.val[1], swapCoeff); *high2 = pmull_high(data.val[1], coeff[0]); */ } static HEDLEY_ALWAYS_INLINE void gf16_clmul_neon_round(const void* src, poly16x8_t* low1, poly16x8_t* low2, poly16x8_t* mid1, poly16x8_t* mid2, poly16x8_t* high1, poly16x8_t* high2, const coeff_t* coeff) { poly8x16x2_t data = vld2q_p8((const poly8_t*)src); *low1 = pmacl_low(*low1, data.val[0], coeff[0]); *low2 = pmacl_high(*low2, data.val[0], coeff[0]); poly8x16_t mid = veorq_p8(data.val[0], data.val[1]); *mid1 = pmacl_low(*mid1, mid, coeff[2]); *mid2 = pmacl_high(*mid2, mid, coeff[2]); *high1 = pmacl_low(*high1, data.val[1], coeff[1]); *high2 = pmacl_high(*high2, data.val[1], coeff[1]); } #ifdef __aarch64__ # define CLMUL_NUM_REGIONS 8 #else # define CLMUL_NUM_REGIONS 3 #endif #define CLMUL_COEFF_PER_REGION 3 static HEDLEY_ALWAYS_INLINE void _FN(gf16_clmul_muladd_x)( const void *HEDLEY_RESTRICT scratch, GF16_BLKMAC_SRCDSTLIST, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, const int doPrefetch, const char* _pf ) { GF16_BLKMAC_SRCDST_UNUSED(CLMUL_NUM_REGIONS, 1); UNUSED(scratch); coeff_t coeff[CLMUL_COEFF_PER_REGION*CLMUL_NUM_REGIONS]; for(int src=0; src> 8; coeff[src*CLMUL_COEFF_PER_REGION +0] = coeff_fn(vdup, n_p8)(lo); coeff[src*CLMUL_COEFF_PER_REGION +1] = coeff_fn(vdup, n_p8)(hi); coeff[src*CLMUL_COEFF_PER_REGION +2] = coeff_fn(veor, p8)(coeff[src*CLMUL_COEFF_PER_REGION +0], coeff[src*CLMUL_COEFF_PER_REGION +1]); // if we want to have one register per region (AArch64), at the expense of 2 extra instructions per region //coeff[src] = vcombine_p8(vdup_n_p8(lo), vdup_n_p8(hi)); } #ifndef GF16_CLMUL_DO_PROCESS #define GF16_CLMUL_PROCESS_VARS poly16x8_t low1, low2, mid1, mid2, high1, high2 #define GF16_CLMUL_DO_PROCESS \ gf16_clmul_neon_round1(_src1+ptr*srcScale, &low1, &low2, &mid1, &mid2, &high1, &high2, coeff + 0); \ if(srcCount > 1) \ gf16_clmul_neon_round(_src2+ptr*srcScale, &low1, &low2, &mid1, &mid2, &high1, &high2, coeff + CLMUL_COEFF_PER_REGION*1); \ if(srcCount > 2) \ gf16_clmul_neon_round(_src3+ptr*srcScale, &low1, &low2, &mid1, &mid2, &high1, &high2, coeff + CLMUL_COEFF_PER_REGION*2); \ if(srcCount > 3) \ gf16_clmul_neon_round(_src4+ptr*srcScale, &low1, &low2, &mid1, &mid2, &high1, &high2, coeff + CLMUL_COEFF_PER_REGION*3); \ if(srcCount > 4) \ gf16_clmul_neon_round(_src5+ptr*srcScale, &low1, &low2, &mid1, &mid2, &high1, &high2, coeff + CLMUL_COEFF_PER_REGION*4); \ if(srcCount > 5) \ gf16_clmul_neon_round(_src6+ptr*srcScale, &low1, &low2, &mid1, &mid2, &high1, &high2, coeff + CLMUL_COEFF_PER_REGION*5); \ if(srcCount > 6) \ gf16_clmul_neon_round(_src7+ptr*srcScale, &low1, &low2, &mid1, &mid2, &high1, &high2, coeff + CLMUL_COEFF_PER_REGION*6); \ if(srcCount > 7) \ gf16_clmul_neon_round(_src8+ptr*srcScale, &low1, &low2, &mid1, &mid2, &high1, &high2, coeff + CLMUL_COEFF_PER_REGION*7); \ \ gf16_clmul_neon_reduction(&low1, &low2, mid1, mid2, &high1, &high2); \ \ uint8x16x2_t vb = vld2q_u8(_dst1+ptr*dstScale); \ vb.val[0] = veorq_u8(vreinterpretq_u8_p16(veorq_p16(low1, low2)), vb.val[0]); \ vb.val[1] = veorq_u8(vreinterpretq_u8_p16(veorq_p16(high1, high2)), vb.val[1]); \ vst2q_u8(_dst1+ptr*dstScale, vb) #endif GF16_CLMUL_PROCESS_VARS; if(doPrefetch) { intptr_t ptr = -(intptr_t)len; if(doPrefetch == 1) PREFETCH_MEM(_pf+ptr, 1); if(doPrefetch == 2) PREFETCH_MEM(_pf+ptr, 0); while(ptr & (CACHELINE_SIZE-1)) { GF16_CLMUL_DO_PROCESS; ptr += sizeof(uint8x16_t)*2; } while(ptr) { if(doPrefetch == 1) PREFETCH_MEM(_pf+ptr, 1); if(doPrefetch == 2) PREFETCH_MEM(_pf+ptr, 0); for(size_t iter=0; iter<(CACHELINE_SIZE/(sizeof(uint8x16_t)*2)); iter++) { GF16_CLMUL_DO_PROCESS; ptr += sizeof(uint8x16_t)*2; } } } else { for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(uint8x16_t)*2) { GF16_CLMUL_DO_PROCESS; } } #undef GF16_CLMUL_PROCESS_VARS #undef GF16_CLMUL_DO_PROCESS } #endif /*defined(_AVAILABLE)*/ #ifdef PARPAR_INVERT_SUPPORT void _FN(gf16_clmul_mul)(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t val, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); UNUSED(scratch); #if defined(_AVAILABLE) coeff_t coeff[3]; coeff[0] = coeff_fn(vdup, n_p8)(val & 0xff); coeff[1] = coeff_fn(vdup, n_p8)(val >> 8); coeff[2] = coeff_fn(veor, p8)(coeff[0], coeff[1]); uint8_t* _src = (uint8_t*)src + len; uint8_t* _dst = (uint8_t*)dst + len; poly16x8_t low1, low2, mid1, mid2, high1, high2; for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(uint8x16_t)*2) { gf16_clmul_neon_round1(_src+ptr, &low1, &low2, &mid1, &mid2, &high1, &high2, coeff); gf16_clmul_neon_reduction(&low1, &low2, mid1, mid2, &high1, &high2); uint8x16x2_t out; out.val[0] = vreinterpretq_u8_p16(veorq_p16(low1, low2)); out.val[1] = vreinterpretq_u8_p16(veorq_p16(high1, high2)); vst2q_u8(_dst+ptr, out); } #else UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(val); #endif } #endif void _FN(gf16_clmul_muladd)(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t val, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #if defined(_AVAILABLE) gf16_muladd_single(scratch, &_FN(gf16_clmul_muladd_x), dst, src, len, val); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(val); #endif } #if defined(_AVAILABLE) GF16_MULADD_MULTI_FUNCS(gf16_clmul, _FNSUFFIX, _FN(gf16_clmul_muladd_x), CLMUL_NUM_REGIONS, sizeof(uint8x16_t)*2, 0, (void)0) #else GF16_MULADD_MULTI_FUNCS_STUB(gf16_clmul, _FNSUFFIX) #endif par2cmdline-turbo-1.5.0/parpar/gf16/gf16_clmul_rvv.c000066400000000000000000000134431524160147200221050ustar00rootroot00000000000000#include "gf16_clmul_rvv.h" #ifdef RISCV_ZVBC_INTRIN int gf16_available_rvv_zvbc = 1; #else int gf16_available_rvv_zvbc = 0; #endif #include "gf16_muladd_multi.h" #ifdef RISCV_ZVBC_INTRIN static HEDLEY_ALWAYS_INLINE void gf16_clmul_rvv_round0(size_t vl, const void* src, vuint64m1_t* ra, vuint64m1_t* rb, uint16_t coeff) { vuint32m1_t s = RV(vle32_v_u32m1)((const uint32_t*)src, vl); // TODO: consider zero-extending loads? vuint64m1_t tmp = RV(vreinterpret_v_u32m1_u64m1)(RV(vand_vx_u32m1)(s, 0xffff, vl)); *ra = RV(vclmul_vx_u64m1)(tmp, coeff, vl); tmp = RV(vreinterpret_v_u32m1_u64m1)(RV(vsrl_vx_u32m1)(s, 16, vl)); *rb = RV(vclmul_vx_u64m1)(tmp, coeff, vl); } static HEDLEY_ALWAYS_INLINE void gf16_clmul_rvv_round(size_t vl, const void* src, vuint64m1_t* ra, vuint64m1_t* rb, uint16_t coeff) { vuint64m1_t ta, tb; gf16_clmul_rvv_round0(vl, src, &ta, &tb, coeff); *ra = RV(vxor_vv_u64m1)(*ra, ta, vl); *rb = RV(vxor_vv_u64m1)(*rb, tb, vl); } static HEDLEY_ALWAYS_INLINE void gf16_clmul_muladd_x_rvv( const void *HEDLEY_RESTRICT scratch, GF16_BLKMAC_SRCDSTLIST, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, const int doPrefetch, const char* _pf ) { GF16_BLKMAC_SRCDST_UNUSED(12, 1); UNUSED(scratch); size_t vl = RV(vsetvlmax_e8m1)(); for(intptr_t ptr = -(intptr_t)len; ptr; ptr += vl) { // TODO: does RISC-V have prefetch instructions? UNUSED(doPrefetch); UNUSED(_pf); vuint64m1_t ra, rb; gf16_clmul_rvv_round0(vl, _src1+ptr*srcScale, &ra, &rb, coefficients[0]); if(srcCount > 1) gf16_clmul_rvv_round(vl, _src2+ptr*srcScale, &ra, &rb, coefficients[1]); if(srcCount > 2) gf16_clmul_rvv_round(vl, _src3+ptr*srcScale, &ra, &rb, coefficients[2]); if(srcCount > 3) gf16_clmul_rvv_round(vl, _src4+ptr*srcScale, &ra, &rb, coefficients[3]); if(srcCount > 4) gf16_clmul_rvv_round(vl, _src5+ptr*srcScale, &ra, &rb, coefficients[4]); if(srcCount > 5) gf16_clmul_rvv_round(vl, _src6+ptr*srcScale, &ra, &rb, coefficients[5]); if(srcCount > 6) gf16_clmul_rvv_round(vl, _src7+ptr*srcScale, &ra, &rb, coefficients[6]); if(srcCount > 7) gf16_clmul_rvv_round(vl, _src8+ptr*srcScale, &ra, &rb, coefficients[7]); if(srcCount > 8) gf16_clmul_rvv_round(vl, _src9+ptr*srcScale, &ra, &rb, coefficients[8]); if(srcCount > 9) gf16_clmul_rvv_round(vl, _src10+ptr*srcScale, &ra, &rb, coefficients[9]); if(srcCount > 10) gf16_clmul_rvv_round(vl, _src11+ptr*srcScale, &ra, &rb, coefficients[10]); if(srcCount > 11) gf16_clmul_rvv_round(vl, _src12+ptr*srcScale, &ra, &rb, coefficients[11]); // reduce & add to dest vuint16m1_t r = RV(vxor_vv_u16m1)( gf16_clmul_rvv_reduction(ra, rb, vl), RV(vle16_v_u16m1)((const uint16_t*)(_dst1+ptr*dstScale), vl), vl ); RV(vse16_v_u16m1)((uint16_t*)(_dst1+ptr*dstScale), r, vl); } } #endif /*defined(RISCV_ZVBC_INTRIN)*/ #ifdef PARPAR_INVERT_SUPPORT void gf16_clmul_mul_rvv(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t val, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); UNUSED(scratch); #ifdef RISCV_ZVBC_INTRIN const uint8_t* _src = (const uint8_t*)src + len; uint8_t* _dst = (uint8_t*)dst + len; size_t vl = RV(vsetvlmax_e8m1)(); for(intptr_t ptr = -(intptr_t)len; ptr; ptr += vl) { vuint64m1_t ra, rb; gf16_clmul_rvv_round0(vl, _src+ptr, &ra, &rb, val); vuint16m1_t r = gf16_clmul_rvv_reduction(ra, rb, vl); RV(vse16_v_u16m1)((uint16_t*)(_dst+ptr), r, vl); } #else UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(val); #endif } #endif void gf16_clmul_muladd_rvv(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t val, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #ifdef RISCV_ZVBC_INTRIN gf16_muladd_single(scratch, gf16_clmul_muladd_x_rvv, dst, src, len, val); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(val); #endif } #ifdef RISCV_ZVBC_INTRIN GF16_MULADD_MULTI_FUNCS(gf16_clmul, _rvv, gf16_clmul_muladd_x_rvv, 12, RV(vsetvlmax_e8m1)(), 0, (void)0) #else GF16_MULADD_MULTI_FUNCS_STUB(gf16_clmul, _rvv) #endif #ifdef __RVV_LE static HEDLEY_ALWAYS_INLINE void gf16_prepare_block_rvv(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src) { size_t vl = RV(vsetvlmax_e8m1)(); RV(vse8_v_u8m1)((uint8_t*)dst, RV(vle8_v_u8m1)((const uint8_t*)src, vl), vl); } // final block static HEDLEY_ALWAYS_INLINE void gf16_prepare_blocku_rvv(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t remaining) { size_t vlmax = RV(vsetvlmax_e8m1)(); vuint8m1_t v = RV(vmv_v_x_u8m1)(0, vlmax); size_t vl = RV(vsetvl_e8m1)(remaining); #ifdef __riscv_v_intrinsic v = RV(vle8_v_u8m1_tu)(v, (const uint8_t*)src, vl); RV(vse8_v_u8m1)((uint8_t*)dst, v, vlmax); #else // tail-undisturbed not supported, so zero explicitly as a workaround RV(vse8_v_u8m1)((uint8_t*)dst, v, vlmax); RV(vse8_v_u8m1)((uint8_t*)dst, RV(vle8_v_u8m1)((const uint8_t*)src, vl), vl); #endif } static HEDLEY_ALWAYS_INLINE void gf16_finish_blocku_rvv(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t remaining) { size_t vl = RV(vsetvl_e8m1)(remaining); RV(vse8_v_u8m1)((uint8_t*)dst, RV(vle8_v_u8m1)((const uint8_t*)src, vl), vl); } #include "gf16_checksum_rvv.h" GF_PREPARE_PACKED_FUNCS(gf16_clmul, _rvv, RV(vsetvlmax_e8m1)(), gf16_prepare_block_rvv, gf16_prepare_blocku_rvv, 12, (void)0, vuint16m1_t checksum = RV(vmv_v_x_u16m1)(0, RV(vsetvlmax_e16m1)()), gf16_checksum_block_rvv, gf16_checksum_blocku_rvv, gf16_checksum_exp_rvv, gf16_checksum_prepare_rvv, 16) GF_FINISH_PACKED_FUNCS(gf16_clmul, _rvv, RV(vsetvlmax_e8m1)(), gf16_prepare_block_rvv, gf16_finish_blocku_rvv, 1, (void)0, gf16_checksum_block_rvv, gf16_checksum_blocku_rvv, gf16_checksum_exp_rvv, NULL, 16) #else GF_PREPARE_PACKED_FUNCS_STUB(gf16_clmul, _rvv) GF_FINISH_PACKED_FUNCS_STUB(gf16_clmul, _rvv) #endif par2cmdline-turbo-1.5.0/parpar/gf16/gf16_clmul_rvv.h000066400000000000000000000065431524160147200221150ustar00rootroot00000000000000#include "gf16_rvv_common.h" #if defined(__RVV_LE) && defined(RVV_ZVBC_EMULATE) // temporarily used for testing via Zbc, when Zvbc is unavailable # define RISCV_ZVBC_INTRIN 1 static vuint64m1_t RV(vclmul_vx_u64m1)(vuint64m1_t v, uint64_t x, size_t vl) { size_t evl = RV(vsetvl_e64m1)(vl); uint64_t t[evl]; RV(vse64_v_u64m1)(t, v, evl); for(size_t i=0; i=12000 # if (defined(__clang__) && __clang_major__>=20) || HEDLEY_GCC_VERSION_CHECK(14, 1, 0) # define RISCV_ZVBC_INTRIN 1 // for testing on compilers without Zvbc intrinsics # elif 0 //defined(RISCV_ZVBC_EMULATE) # define RISCV_ZVBC_INTRIN 1 HEDLEY_NEVER_INLINE static vuint64m1_t RV(vclmul_vx_u64m1)(vuint64m1_t v, uint64_t x, size_t vl) { vuint64m1_t d; __asm__ ("vsetvli zero, %3, e64, m1, ta, ma\n" "vclmul.vx %0,%1,%2\n" : "=vr"(d) : "vr"(v), "r"(x), "r"(vl) : /* No clobbers */); return d; } HEDLEY_NEVER_INLINE static vuint64m1_t RV(vclmul_vv_u64m1)(vuint64m1_t v, vuint64m1_t v2, size_t vl) { vuint64m1_t d; __asm__ ("vsetvli zero, %3, e64, m1, ta, ma\n" "vclmul.vv %0,%1,%2\n" : "=vr"(d) : "vr"(v), "vr"(v2), "r"(vl) : /* No clobbers */); return d; } # endif #endif #ifdef RISCV_ZVBC_INTRIN static HEDLEY_ALWAYS_INLINE vuint16m1_t gf16_clmul_rvv_reduction(vuint64m1_t ra, vuint64m1_t rb, size_t vl) { // Barrett reduction vuint64m1_t qa = RV(vreinterpret_v_u32m1_u64m1)(RV(vsrl_vx_u32m1)(RV(vreinterpret_v_u64m1_u32m1)(ra), 16, vl)); vuint64m1_t qb = RV(vreinterpret_v_u32m1_u64m1)(RV(vsrl_vx_u32m1)(RV(vreinterpret_v_u64m1_u32m1)(rb), 16, vl)); // first reduction coefficient is 0x1111a qa = RV(vclmul_vx_u64m1)(qa, 0x1111a, vl); qb = RV(vclmul_vx_u64m1)(qb, 0x1111a, vl); qa = RV(vreinterpret_v_u32m1_u64m1)(RV(vsrl_vx_u32m1)(RV(vreinterpret_v_u64m1_u32m1)(qa), 16, vl)); qb = RV(vreinterpret_v_u32m1_u64m1)(RV(vsrl_vx_u32m1)(RV(vreinterpret_v_u64m1_u32m1)(qb), 16, vl)); // second coefficient is 0x100b qa = RV(vclmul_vx_u64m1)(qa, 0x100b, vl); qb = RV(vclmul_vx_u64m1)(qb, 0x100b0000, vl); // merge halves vuint16m1_t ra16 = RV(vreinterpret_v_u64m1_u16m1)(ra); vuint16m1_t rb16 = RV(vreinterpret_v_u64m1_u16m1)(RV(vsll_vx_u64m1)(rb, 16, vl)); vuint16m1_t qa16 = RV(vreinterpret_v_u64m1_u16m1)(qa); vuint16m1_t qb16 = RV(vreinterpret_v_u64m1_u16m1)(qb); #if defined(__riscv_v_intrinsic) && __riscv_v_intrinsic >= 12000 vbool16_t alt = RV(vreinterpret_b16)(RV(vmv_v_x_u8m1)(0xaa, vl)); #else vuint8m1_t altTmp = RV(vmv_v_x_u8m1)(0xaa, vl); vbool16_t alt = *(vbool16_t*)(&altTmp); #endif #ifdef __riscv_v_intrinsic vuint16m1_t r = RV(vmerge_vvm_u16m1)(ra16, rb16, alt, vl); vuint16m1_t q = RV(vmerge_vvm_u16m1)(qa16, qb16, alt, vl); #else vuint16m1_t r = RV(vmerge_vvm_u16m1)(alt, ra16, rb16, vl); vuint16m1_t q = RV(vmerge_vvm_u16m1)(alt, qa16, qb16, vl); #endif return RV(vxor_vv_u16m1)(r, q, vl); } #endif par2cmdline-turbo-1.5.0/parpar/gf16/gf16_clmul_sha3.c000066400000000000000000000152571524160147200221330ustar00rootroot00000000000000 // this CLMul variant is optimised for Apple M1 #include "gf16_neon_common.h" #if defined(__ARM_NEON) && defined(__ARM_FEATURE_SHA3) int gf16_available_neon_sha3 = 1; static HEDLEY_ALWAYS_INLINE poly16x8_t veorq_p16(poly16x8_t a, poly16x8_t b) { return vreinterpretq_p16_u16(veorq_u16(vreinterpretq_u16_p16(a), vreinterpretq_u16_p16(b))); } #define _AVAILABLE 1 #define eor3q_u8 veor3q_u8 #define pmacl_low(sum, a, b) veorq_p16(sum, pmull_low(a, b)) #define pmacl_high(sum, a, b) veorq_p16(sum, pmull_high(a, b)) #ifdef __APPLE__ // Apple M1 supports PMULL+EOR fusion, so avoid EOR3 for MacOS builds // unknown if Apple A13 supports PMULL+EOR fusion; we'll largely ignore it if it doesn't # if defined(__GNUC__) || defined(__clang__) # undef pmacl_low # undef pmacl_high // Apple M1 supports fusing PMULL+EOR, so ensure these are paired static HEDLEY_ALWAYS_INLINE poly16x8_t pmacl_low(poly16x8_t sum, poly8x16_t a, poly8x16_t b) { poly16x8_t result; __asm__ ("pmull %0.8h,%1.8b,%2.8b\n" "eor %0.16b,%0.16b,%3.16b\n" : "=&w"(result) : "w"(a), "w"(b), "w"(sum) : /* No clobbers */); return result; } static HEDLEY_ALWAYS_INLINE poly16x8_t pmacl_high(poly16x8_t sum, poly8x16_t a, poly8x16_t b) { poly16x8_t result; __asm__ ("pmull2 %0.8h,%1.16b,%2.16b\n" "eor %0.16b,%0.16b,%3.16b\n" : "=&w"(result) : "w"(a), "w"(b), "w"(sum) : /* No clobbers */); return result; } # endif #else // non-Apple chip with SHA3 support without SVE2: likely Neoverse V1 or Qualcomm chips // we use EOR3 for accumulation, since PMULL+EOR isn't fused // as this strategy requires more registers to hold values before accumulation, the number of concurrent regions means spills will occur // changing the number of regions would mean that NEON prepare routines couldn't be used anymore though // regardless of spills, it still seems to bench slightly better than CLMul (NEON) #include "gf16_clmul_neon.h" static HEDLEY_ALWAYS_INLINE void gf16_clmul_neon_round1(const void* src, poly16x8_t* low1, poly16x8_t* low2, poly16x8_t* mid1, poly16x8_t* mid2, poly16x8_t* high1, poly16x8_t* high2, const coeff_t* coeff); static HEDLEY_ALWAYS_INLINE void gf16_clmul_sha3_merge1( poly16x8_t* low1, poly16x8_t* low2, poly16x8_t* mid1, poly16x8_t* mid2, poly16x8_t* high1, poly16x8_t* high2, poly16x8_t low1b, poly16x8_t low2b, poly16x8_t mid1b, poly16x8_t mid2b, poly16x8_t high1b, poly16x8_t high2b ) { *low1 = veorq_p16(*low1, low1b); *low2 = veorq_p16(*low2, low2b); *mid1 = veorq_p16(*mid1, mid1b); *mid2 = veorq_p16(*mid2, mid2b); *high1 = veorq_p16(*high1, high1b); *high2 = veorq_p16(*high2, high2b); } static HEDLEY_ALWAYS_INLINE void gf16_clmul_sha3_merge2( poly16x8_t* low1, poly16x8_t* low2, poly16x8_t* mid1, poly16x8_t* mid2, poly16x8_t* high1, poly16x8_t* high2, poly16x8_t low1b, poly16x8_t low2b, poly16x8_t mid1b, poly16x8_t mid2b, poly16x8_t high1b, poly16x8_t high2b, poly16x8_t low1c, poly16x8_t low2c, poly16x8_t mid1c, poly16x8_t mid2c, poly16x8_t high1c, poly16x8_t high2c ) { *low1 = vreinterpretq_p16_u8(veor3q_u8(vreinterpretq_u8_p16(*low1), vreinterpretq_u8_p16(low1b), vreinterpretq_u8_p16(low1c))); *low2 = vreinterpretq_p16_u8(veor3q_u8(vreinterpretq_u8_p16(*low2), vreinterpretq_u8_p16(low2b), vreinterpretq_u8_p16(low2c))); *mid1 = vreinterpretq_p16_u8(veor3q_u8(vreinterpretq_u8_p16(*mid1), vreinterpretq_u8_p16(mid1b), vreinterpretq_u8_p16(mid1c))); *mid2 = vreinterpretq_p16_u8(veor3q_u8(vreinterpretq_u8_p16(*mid2), vreinterpretq_u8_p16(mid2b), vreinterpretq_u8_p16(mid2c))); *high1 = vreinterpretq_p16_u8(veor3q_u8(vreinterpretq_u8_p16(*high1), vreinterpretq_u8_p16(high1b), vreinterpretq_u8_p16(high1c))); *high2 = vreinterpretq_p16_u8(veor3q_u8(vreinterpretq_u8_p16(*high2), vreinterpretq_u8_p16(high2b), vreinterpretq_u8_p16(high2c))); } #define GF16_CLMUL_PROCESS_VARS \ poly16x8_t low1a, low2a, mid1a, mid2a, high1a, high2a; \ poly16x8_t low1b, low2b, mid1b, mid2b, high1b, high2b; \ poly16x8_t low1c, low2c, mid1c, mid2c, high1c, high2c #define GF16_CLMUL_DO_PROCESS \ gf16_clmul_neon_round1(_src1+ptr*srcScale, &low1a, &low2a, &mid1a, &mid2a, &high1a, &high2a, coeff + 0); \ if(srcCount > 1) \ gf16_clmul_neon_round1(_src2+ptr*srcScale, &low1b, &low2b, &mid1b, &mid2b, &high1b, &high2b, coeff + CLMUL_COEFF_PER_REGION*1); \ if(srcCount > 2) { \ gf16_clmul_neon_round1(_src3+ptr*srcScale, &low1c, &low2c, &mid1c, &mid2c, &high1c, &high2c, coeff + CLMUL_COEFF_PER_REGION*2); \ gf16_clmul_sha3_merge2(&low1a, &low2a, &mid1a, &mid2a, &high1a, &high2a, low1b, low2b, mid1b, mid2b, high1b, high2b, low1c, low2c, mid1c, mid2c, high1c, high2c); \ } else if(srcCount == 2) \ gf16_clmul_sha3_merge1(&low1a, &low2a, &mid1a, &mid2a, &high1a, &high2a, low1b, low2b, mid1b, mid2b, high1b, high2b); \ if(srcCount > 3) \ gf16_clmul_neon_round1(_src4+ptr*srcScale, &low1b, &low2b, &mid1b, &mid2b, &high1b, &high2b, coeff + CLMUL_COEFF_PER_REGION*3); \ if(srcCount > 4) { \ gf16_clmul_neon_round1(_src5+ptr*srcScale, &low1c, &low2c, &mid1c, &mid2c, &high1c, &high2c, coeff + CLMUL_COEFF_PER_REGION*4); \ gf16_clmul_sha3_merge2(&low1a, &low2a, &mid1a, &mid2a, &high1a, &high2a, low1b, low2b, mid1b, mid2b, high1b, high2b, low1c, low2c, mid1c, mid2c, high1c, high2c); \ } else if(srcCount == 4) \ gf16_clmul_sha3_merge1(&low1a, &low2a, &mid1a, &mid2a, &high1a, &high2a, low1b, low2b, mid1b, mid2b, high1b, high2b); \ if(srcCount > 5) \ gf16_clmul_neon_round1(_src6+ptr*srcScale, &low1b, &low2b, &mid1b, &mid2b, &high1b, &high2b, coeff + CLMUL_COEFF_PER_REGION*5); \ if(srcCount > 6) { \ gf16_clmul_neon_round1(_src7+ptr*srcScale, &low1c, &low2c, &mid1c, &mid2c, &high1c, &high2c, coeff + CLMUL_COEFF_PER_REGION*6); \ gf16_clmul_sha3_merge2(&low1a, &low2a, &mid1a, &mid2a, &high1a, &high2a, low1b, low2b, mid1b, mid2b, high1b, high2b, low1c, low2c, mid1c, mid2c, high1c, high2c); \ } else if(srcCount == 6) \ gf16_clmul_sha3_merge1(&low1a, &low2a, &mid1a, &mid2a, &high1a, &high2a, low1b, low2b, mid1b, mid2b, high1b, high2b); \ if(srcCount > 7) { \ gf16_clmul_neon_round1(_src8+ptr*srcScale, &low1b, &low2b, &mid1b, &mid2b, &high1b, &high2b, coeff + CLMUL_COEFF_PER_REGION*7); \ gf16_clmul_sha3_merge1(&low1a, &low2a, &mid1a, &mid2a, &high1a, &high2a, low1b, low2b, mid1b, mid2b, high1b, high2b); \ } \ gf16_clmul_neon_reduction(&low1a, &low2a, mid1a, mid2a, &high1a, &high2a); \ \ uint8x16x2_t vb = vld2q_u8(_dst1+ptr); \ vb.val[0] = veor3q_u8(vreinterpretq_u8_p16(low1a), vreinterpretq_u8_p16(low2a), vb.val[0]); \ vb.val[1] = veor3q_u8(vreinterpretq_u8_p16(high1a), vreinterpretq_u8_p16(high2a), vb.val[1]); \ vst2q_u8(_dst1+ptr, vb) #endif // defined(__APPLE__) #else int gf16_available_neon_sha3 = 0; #endif /*defined(__ARM_FEATURE_SHA3)*/ #define _FNSUFFIX _sha3 #include "gf16_clmul_neon_base.h" #undef _FNSUFFIX par2cmdline-turbo-1.5.0/parpar/gf16/gf16_clmul_sve2.c000066400000000000000000000175661524160147200221610ustar00rootroot00000000000000 #include "gf16_clmul_sve2.h" #include "gf16_muladd_multi.h" #if defined(__ARM_FEATURE_SVE2) static HEDLEY_ALWAYS_INLINE void gf16_clmul_sve2_round(const void* src, svuint8_t* low1, svuint8_t* low2, svuint8_t* mid1, svuint8_t* mid2, svuint8_t* high1, svuint8_t* high2, svuint8_t coeff) { svuint8x2_t data = svld2_u8(svptrue_b8(), src); svuint8_t swapCoeff = svreinterpret_u8_u16(NOMASK(svrevb_u16, svreinterpret_u16_u8(coeff))); svuint8_t midCoeff = NOMASK(sveor_u8, coeff, swapCoeff); *low1 = svpmullb_pair_u8(svget2_u8(data, 0), coeff); *low2 = svpmullt_pair_u8(svget2_u8(data, 0), swapCoeff); svuint8_t mid = NOMASK(sveor_u8, svget2_u8(data, 0), svget2_u8(data, 1)); *mid1 = svpmullb_pair_u8(mid, midCoeff); *mid2 = svpmullt_pair_u8(mid, midCoeff); *high1 = svpmullb_pair_u8(svget2_u8(data, 1), swapCoeff); *high2 = svpmullt_pair_u8(svget2_u8(data, 1), coeff); } static HEDLEY_ALWAYS_INLINE void gf16_clmul_sve2_merge1( svuint8_t* low1, svuint8_t* low2, svuint8_t* mid1, svuint8_t* mid2, svuint8_t* high1, svuint8_t* high2, svuint8_t low1b, svuint8_t low2b, svuint8_t mid1b, svuint8_t mid2b, svuint8_t high1b, svuint8_t high2b ) { *low1 = NOMASK(sveor_u8, *low1, low1b); *low2 = NOMASK(sveor_u8, *low2, low2b); *mid1 = NOMASK(sveor_u8, *mid1, mid1b); *mid2 = NOMASK(sveor_u8, *mid2, mid2b); *high1 = NOMASK(sveor_u8, *high1, high1b); *high2 = NOMASK(sveor_u8, *high2, high2b); } static HEDLEY_ALWAYS_INLINE void gf16_clmul_sve2_merge2( svuint8_t* low1, svuint8_t* low2, svuint8_t* mid1, svuint8_t* mid2, svuint8_t* high1, svuint8_t* high2, svuint8_t low1b, svuint8_t low2b, svuint8_t mid1b, svuint8_t mid2b, svuint8_t high1b, svuint8_t high2b, svuint8_t low1c, svuint8_t low2c, svuint8_t mid1c, svuint8_t mid2c, svuint8_t high1c, svuint8_t high2c ) { *low1 = sveor3_u8(*low1, low1b, low1c); *low2 = sveor3_u8(*low2, low2b, low2c); *mid1 = sveor3_u8(*mid1, mid1b, mid1c); *mid2 = sveor3_u8(*mid2, mid2b, mid2c); *high1 = sveor3_u8(*high1, high1b, high1c); *high2 = sveor3_u8(*high2, high2b, high2c); } #define CLMUL_NUM_REGIONS 8 static HEDLEY_ALWAYS_INLINE void gf16_clmul_muladd_x_sve2( const void *HEDLEY_RESTRICT scratch, GF16_BLKMAC_SRCDSTLIST, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, const int doPrefetch, const char* _pf ) { GF16_BLKMAC_SRCDST_UNUSED(CLMUL_NUM_REGIONS, 1); UNUSED(scratch); svuint8_t coeff0, coeff1, coeff2, coeff3, coeff4, coeff5, coeff6, coeff7; coeff0 = svreinterpret_u8_u16(svdup_n_u16(coefficients[0])); if(srcCount > 1) coeff1 = svreinterpret_u8_u16(svdup_n_u16(coefficients[1])); if(srcCount > 2) coeff2 = svreinterpret_u8_u16(svdup_n_u16(coefficients[2])); if(srcCount > 3) coeff3 = svreinterpret_u8_u16(svdup_n_u16(coefficients[3])); if(srcCount > 4) coeff4 = svreinterpret_u8_u16(svdup_n_u16(coefficients[4])); if(srcCount > 5) coeff5 = svreinterpret_u8_u16(svdup_n_u16(coefficients[5])); if(srcCount > 6) coeff6 = svreinterpret_u8_u16(svdup_n_u16(coefficients[6])); if(srcCount > 7) coeff7 = svreinterpret_u8_u16(svdup_n_u16(coefficients[7])); svuint8_t low1a, low2a, mid1a, mid2a, high1a, high2a; svuint8_t low1b, low2b, mid1b, mid2b, high1b, high2b; svuint8_t low1c, low2c, mid1c, mid2c, high1c, high2c; #define DO_PROCESS \ gf16_clmul_sve2_round(_src1+ptr*srcScale, &low1a, &low2a, &mid1a, &mid2a, &high1a, &high2a, coeff0); \ if(srcCount > 1) \ gf16_clmul_sve2_round(_src2+ptr*srcScale, &low1b, &low2b, &mid1b, &mid2b, &high1b, &high2b, coeff1); \ if(srcCount > 2) { \ gf16_clmul_sve2_round(_src3+ptr*srcScale, &low1c, &low2c, &mid1c, &mid2c, &high1c, &high2c, coeff2); \ gf16_clmul_sve2_merge2(&low1a, &low2a, &mid1a, &mid2a, &high1a, &high2a, low1b, low2b, mid1b, mid2b, high1b, high2b, low1c, low2c, mid1c, mid2c, high1c, high2c); \ } else if(srcCount == 2) \ gf16_clmul_sve2_merge1(&low1a, &low2a, &mid1a, &mid2a, &high1a, &high2a, low1b, low2b, mid1b, mid2b, high1b, high2b); \ if(srcCount > 3) \ gf16_clmul_sve2_round(_src4+ptr*srcScale, &low1b, &low2b, &mid1b, &mid2b, &high1b, &high2b, coeff3); \ if(srcCount > 4) { \ gf16_clmul_sve2_round(_src5+ptr*srcScale, &low1c, &low2c, &mid1c, &mid2c, &high1c, &high2c, coeff4); \ gf16_clmul_sve2_merge2(&low1a, &low2a, &mid1a, &mid2a, &high1a, &high2a, low1b, low2b, mid1b, mid2b, high1b, high2b, low1c, low2c, mid1c, mid2c, high1c, high2c); \ } else if(srcCount == 4) \ gf16_clmul_sve2_merge1(&low1a, &low2a, &mid1a, &mid2a, &high1a, &high2a, low1b, low2b, mid1b, mid2b, high1b, high2b); \ if(srcCount > 5) \ gf16_clmul_sve2_round(_src6+ptr*srcScale, &low1b, &low2b, &mid1b, &mid2b, &high1b, &high2b, coeff5); \ if(srcCount > 6) { \ gf16_clmul_sve2_round(_src7+ptr*srcScale, &low1c, &low2c, &mid1c, &mid2c, &high1c, &high2c, coeff6); \ gf16_clmul_sve2_merge2(&low1a, &low2a, &mid1a, &mid2a, &high1a, &high2a, low1b, low2b, mid1b, mid2b, high1b, high2b, low1c, low2c, mid1c, mid2c, high1c, high2c); \ } else if(srcCount == 6) \ gf16_clmul_sve2_merge1(&low1a, &low2a, &mid1a, &mid2a, &high1a, &high2a, low1b, low2b, mid1b, mid2b, high1b, high2b); \ if(srcCount > 7) { \ gf16_clmul_sve2_round(_src8+ptr*srcScale, &low1b, &low2b, &mid1b, &mid2b, &high1b, &high2b, coeff7); \ gf16_clmul_sve2_merge1(&low1a, &low2a, &mid1a, &mid2a, &high1a, &high2a, low1b, low2b, mid1b, mid2b, high1b, high2b); \ } \ gf16_clmul_sve2_reduction(&low1a, &low2a, mid1a, mid2a, &high1a, &high2a); \ \ svuint8x2_t vb = svld2_u8(svptrue_b8(), _dst1+ptr*dstScale); \ low1a = sveor3_u8(low1a, low2a, svget2_u8(vb, 0)); \ high1a = sveor3_u8(high1a, high2a, svget2_u8(vb, 1)); \ svst2_u8(svptrue_b8(), _dst1+ptr*dstScale, svcreate2_u8(low1a, high1a)) if(doPrefetch) { for(intptr_t ptr = -(intptr_t)len; ptr; ptr += svcntb()*2) { if(doPrefetch == 1) { svprfb(svptrue_b8(), _pf+ptr, SV_PLDL1KEEP); svprfb_vnum(svptrue_b8(), _pf+ptr, 1, SV_PLDL1KEEP); } if(doPrefetch == 2) { svprfb(svptrue_b8(), _pf+ptr, SV_PLDL2KEEP); svprfb_vnum(svptrue_b8(), _pf+ptr, 1, SV_PLDL2KEEP); } DO_PROCESS; } } else { for(intptr_t ptr = -(intptr_t)len; ptr; ptr += svcntb()*2) { DO_PROCESS; } } #undef DO_PROCESS } #endif /*defined(__ARM_FEATURE_SVE2)*/ #ifdef PARPAR_INVERT_SUPPORT void gf16_clmul_mul_sve2(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t val, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); UNUSED(scratch); #if defined(__ARM_FEATURE_SVE2) svuint8_t coeff = svreinterpret_u8_u16(svdup_n_u16(val)); uint8_t* _src = (uint8_t*)src + len; uint8_t* _dst = (uint8_t*)dst + len; svuint8_t low1, low2, mid1, mid2, high1, high2; for(intptr_t ptr = -(intptr_t)len; ptr; ptr += svcntb()*2) { gf16_clmul_sve2_round(_src+ptr, &low1, &low2, &mid1, &mid2, &high1, &high2, coeff); gf16_clmul_sve2_reduction(&low1, &low2, mid1, mid2, &high1, &high2); low1 = NOMASK(sveor_u8, low1, low2); high1 = NOMASK(sveor_u8, high1, high2); svst2_u8(svptrue_b8(), _dst+ptr, svcreate2_u8(low1, high1)); } #else UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(val); #endif } #endif void gf16_clmul_muladd_sve2(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t val, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #if defined(__ARM_FEATURE_SVE2) gf16_muladd_single(scratch, &gf16_clmul_muladd_x_sve2, dst, src, len, val); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(val); #endif } #include "gf16_checksum_sve.h" #if defined(__ARM_FEATURE_SVE2) GF16_MULADD_MULTI_FUNCS(gf16_clmul, _sve2, gf16_clmul_muladd_x_sve2, CLMUL_NUM_REGIONS, svcntb()*2, 0, (void)0) GF_PREPARE_PACKED_FUNCS(gf16_clmul, _sve2, svcntb()*2, gf16_prepare_block_sve, gf16_prepare_blocku_sve, CLMUL_NUM_REGIONS, (void)0, svint16_t checksum = svdup_n_s16(0), gf16_checksum_block_sve, gf16_checksum_blocku_sve, gf16_checksum_exp_sve, gf16_checksum_prepare_sve, 16) #else GF16_MULADD_MULTI_FUNCS_STUB(gf16_clmul, _sve2) GF_PREPARE_PACKED_FUNCS_STUB(gf16_clmul, _sve2) #endif par2cmdline-turbo-1.5.0/parpar/gf16/gf16_clmul_sve2.h000066400000000000000000000032031524160147200221450ustar00rootroot00000000000000#include "gf16_sve_common.h" #if defined(__ARM_FEATURE_SVE2) static HEDLEY_ALWAYS_INLINE void gf16_clmul_sve2_reduction(svuint8_t* low1, svuint8_t* low2, svuint8_t mid1, svuint8_t mid2, svuint8_t* high1, svuint8_t* high2) { // put data in proper form svuint8_t hibytesL = svtrn1_u8(*high1, *high2); svuint8_t hibytesH = svtrn2_u8(*high1, *high2); svuint8_t lobytesL = svtrn1_u8(*low1, *low2); svuint8_t lobytesH = svtrn2_u8(*low1, *low2); // merge mid into high/low svuint8_t midbytesL = svtrn1_u8(mid1, mid2); svuint8_t midbytesH = svtrn2_u8(mid1, mid2); svuint8_t libytes = NOMASK(sveor_u8, hibytesL, lobytesH); lobytesH = sveor3_u8(midbytesL, lobytesL, libytes); hibytesL = sveor3_u8(midbytesH, hibytesH, libytes); // Barrett reduction // first reduction coefficient is 0x1111a svuint8_t th1 = NOMASK(sveor_u8, hibytesH, NOMASK(svlsr_n_u8, hibytesH, 4)); svuint8_t th0 = svsri_n_u8(NOMASK(svlsl_n_u8, hibytesH, 4), hibytesL, 4); th0 = sveor3_u8(th0, th1, hibytesL); // alternative strategy to above, using nibble flipped ops; same number of ops, but 0xf vector needs to be constructed, so likely worse; maybe there's a better way to leverage it? // svuint8_t th0 = svxar_n_u8(th1, hibytesL, 4); // th0 = svxar_n_u8(th0, svbsl_n_u8(hibytesH, hibytesL, 0xf), 4); svuint8_t th0_hi3 = NOMASK(svlsr_n_u8, th0, 5); th0 = NOMASK(sveor_u8, th0, NOMASK(svlsr_n_u8, hibytesH, 5)); // multiply by polynomial: 0x100b lobytesH = sveor3_u8( lobytesH, svpmul_n_u8(th1, 0x0b), NOMASK(svlsr_n_u8, th0_hi3, 2) ); *high1 = lobytesH; *high2 = svsli_n_u8(th0_hi3, th0, 4); *low1 = lobytesL; *low2 = svpmul_n_u8(th0, 0x0b); } #endif par2cmdline-turbo-1.5.0/parpar/gf16/gf16_global.h000066400000000000000000000542011524160147200213360ustar00rootroot00000000000000#ifndef __GF16_GLOBAL_H #define __GF16_GLOBAL_H #include "../src/hedley.h" #include "../src/stdint.h" #include "../src/platform.h" #include #define GF16_POLYNOMIAL 0x1100b #define GF16_MULTBY_TWO(p) (((p) << 1) ^ (GF16_POLYNOMIAL & -((p) >> 15))) #define UNUSED(...) (void)(__VA_ARGS__) #ifdef _MSC_VER # define inline __inline # pragma warning (disable : 4146) #endif #ifdef _NDEBUG # define ASSUME HEDLEY_ASSUME #else # define ASSUME assert #endif #if defined(__GNUC__) && !defined(__clang__) && !defined(__OPTIMIZE__) // GCC, for some reason, doesn't like const pointers when forced to inline without optimizations # define CONST_PTR * #else # define CONST_PTR *const #endif typedef void (CONST_PTR gf16_checksum_exp)(void *HEDLEY_RESTRICT checksum, uint16_t exp); typedef void (CONST_PTR gf16_checksum_block)(const void *HEDLEY_RESTRICT src, void *HEDLEY_RESTRICT checksum, const size_t blockLen, const int aligned); typedef void (CONST_PTR gf16_checksum_blocku)(const void *HEDLEY_RESTRICT src, size_t amount, void *HEDLEY_RESTRICT checksum); typedef void (CONST_PTR gf16_transform_block)(void* dst, const void* src); typedef void (CONST_PTR gf16_transform_blocku)(void* dst, const void* src, size_t remaining); typedef void (CONST_PTR gf16_transform_block_rst)(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src); typedef void (CONST_PTR gf16_transform_blocku_rst)(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t remaining); typedef void (CONST_PTR gf16_prepare_checksum)(void *HEDLEY_RESTRICT dst, void *HEDLEY_RESTRICT checksum, const size_t blockLen, gf16_transform_block_rst prepareBlock); typedef void (CONST_PTR gf16_finish_block)(void *HEDLEY_RESTRICT dst); #undef CONST_PTR #ifdef PARPAR_INVERT_SUPPORT static HEDLEY_ALWAYS_INLINE void gf16_prepare(void* dst, const void* src, size_t srcLen, const size_t blockLen, gf16_transform_block prepareBlock, gf16_transform_blocku prepareBlockU) { size_t remaining = srcLen % blockLen; size_t len = srcLen - remaining; uint8_t* _src = (uint8_t*)src + len; uint8_t* _dst = (uint8_t*)dst + len; for(intptr_t ptr = -(intptr_t)len; ptr; ptr += blockLen) prepareBlock(_dst+ptr, _src+ptr); if(remaining) { // handle misaligned part prepareBlockU(_dst, _src, remaining); } } static HEDLEY_ALWAYS_INLINE void gf16_finish(void *HEDLEY_RESTRICT dst, size_t len, const size_t blockLen, gf16_finish_block finishBlock) { uint8_t* _dst = (uint8_t*)dst + len; for(intptr_t ptr = -(intptr_t)len; ptr; ptr += blockLen) finishBlock(_dst+ptr); } #endif void gf16_copy_blocku(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len); static HEDLEY_ALWAYS_INLINE void* gf16_checksum_ptr(void* ptr, size_t sliceLen, const size_t blockLen, unsigned numSlices, unsigned index, size_t chunkLen, const unsigned interleaveSize ) { size_t effectiveLastChunkLen = (sliceLen + blockLen) % chunkLen; if(effectiveLastChunkLen == 0) effectiveLastChunkLen = chunkLen; unsigned interleaveBy = (index >= numSlices - (numSlices%interleaveSize)) ? numSlices%interleaveSize : interleaveSize; unsigned fullChunks = (unsigned)(sliceLen / chunkLen); size_t chunkStride = chunkLen * numSlices; return (uint8_t*)ptr + (index%interleaveSize) * blockLen + chunkStride*fullChunks + (index/interleaveSize) * effectiveLastChunkLen * interleaveSize + effectiveLastChunkLen * interleaveBy - blockLen*interleaveBy; } #include #include #include "gfmat_coeff.h" static HEDLEY_ALWAYS_INLINE void gf16_prepare_packed( void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, const size_t blockLen, gf16_transform_block_rst prepareBlock, gf16_transform_blocku_rst prepareBlockU, unsigned inputPackSize, unsigned inputNum, size_t chunkLen, const unsigned interleaveSize, size_t partOffset, size_t partLen, void *HEDLEY_RESTRICT checksum, gf16_checksum_block checksumBlock, gf16_checksum_blocku checksumBlockU, gf16_checksum_exp checksumExp, gf16_prepare_checksum prepareChecksum ) { size_t checksumLen = checksumBlock ? blockLen : 0; ASSUME(inputNum < inputPackSize); ASSUME(srcLen <= sliceLen); ASSUME(chunkLen <= sliceLen+checksumLen); ASSUME(chunkLen % blockLen == 0); ASSUME(sliceLen % blockLen == 0); ASSUME(partOffset % blockLen == 0); ASSUME(partOffset + partLen == srcLen || partLen % blockLen == 0); ASSUME(partOffset + partLen <= srcLen); // simple hack for now src = (const char*)src - partOffset; size_t partLeft = partLen; if(partOffset + partLen == srcLen) partLeft = ~(size_t)0; // if we're completing the slice, ensure that we never exit early size_t dataChunkLen = chunkLen; if(dataChunkLen > sliceLen) dataChunkLen = sliceLen; // interleaving is reduced for the last few slices, if the number of inputs doesn't align unsigned interleaveBy = (inputNum >= inputPackSize - (inputPackSize%interleaveSize)) ? inputPackSize%interleaveSize : interleaveSize; uint8_t* dstBase = (uint8_t*)dst + (inputNum/interleaveSize) * chunkLen * interleaveSize + (inputNum%interleaveSize) * blockLen; unsigned fullChunks = (unsigned)(srcLen/dataChunkLen); size_t chunkStride = chunkLen * inputPackSize; unsigned chunk = partOffset / dataChunkLen; size_t pos = partOffset % dataChunkLen; for(; chunk (sliceLen/dataChunkLen) * dataChunkLen) { // if this is the last chunk, the length may be shorter lastChunkLen = sliceLen % dataChunkLen; // this will be block aligned, as both sliceLen and chunkLen must be block aligned //if(lastChunkLen == 0) lastChunkLen = dataChunkLen; // if effectiveSliceLen is divisible by chunkLen, the last chunk will be chunkLen (this shouldn't be possible, since if it's divisible, it's never considered special; srcLen cannot be > sliceLen) } if(srcLen > (effectiveSliceLen/chunkLen) * chunkLen) { effectiveLastChunkLen = effectiveSliceLen % chunkLen; // if this is the last chunk (and checksums processed), this will be lastChunkLen+blockLen or 0, however 0 isn't possible due to srcLen < effectiveSliceLen constraint } uint8_t* _src = (uint8_t*)src + dataChunkLen*fullChunks; uint8_t* _dst = (uint8_t*)dst + (inputNum/interleaveSize) * effectiveLastChunkLen * interleaveSize + (inputNum%interleaveSize) * blockLen + chunkStride*fullChunks; for(; pos pos) { // handle misaligned part if(!partLeft) return; if(checksumBlock) checksumBlockU(_src + len, remaining-len, checksum); prepareBlockU(_dst + len*interleaveBy, _src + len, remaining-len); pos += blockLen; partLeft -= blockLen; } // zero fill rest of chunk ASSUME(pos <= lastChunkLen); if(checksumBlock) checksumExp(checksum, gf16_exp((((lastChunkLen-pos < partLeft) ? lastChunkLen-pos : partLeft) / blockLen) % 65535)); for(; pos alignedSliceLen) dataChunkLen = alignedSliceLen; unsigned interleaveBy = (outputNum >= numOutputs - (numOutputs%interleaveSize)) ? numOutputs%interleaveSize : interleaveSize; uint8_t* srcBase = (uint8_t*)src + (outputNum/interleaveSize) * chunkLen * interleaveSize + (outputNum%interleaveSize) * blockLen; unsigned fullChunks = (unsigned)(alignedSliceLen/dataChunkLen); size_t remaining = sliceLen - fullChunks*dataChunkLen; // can be negative - if so, will be fixed below size_t chunkStride = chunkLen * numOutputs; size_t pos = partOffset % dataChunkLen; for(unsigned chunk=partOffset/dataChunkLen; chunk sliceLen) { // last block doesn't align to stride for(; pos> 31))) #define GF16_MULTBY_TWO_X4(p) ( \ (((p) << 1) & 0xffffffffffffffffULL) ^ \ ( \ (GF16_POLYNOMIAL ^ (((uint64_t)GF16_POLYNOMIAL) << 16) ^ (((uint64_t)GF16_POLYNOMIAL) << 32) ^ (((uint64_t)(GF16_POLYNOMIAL&0xffff)) << 48)) & \ -((p) >> 63) \ ) \ ) #define GF16_MULTBY_TWO_UPPER(p) ((((p) << 1) & 0xffffffff) ^ (((GF16_POLYNOMIAL&0xffff) << 16) & -((p) >> 31))) #define GF16_MULTBY_TWO_UPPER_X2(p) ( \ (((p) << 1) & 0xffffffffffffffffULL) ^ \ ( \ ((((uint64_t)GF16_POLYNOMIAL) << 16) ^ (((uint64_t)(GF16_POLYNOMIAL&0xffff)) << 48)) & \ -((p) >> 63) \ ) \ ) #define GF16_MULTBY_TWO_LOWER_X2(p) ( \ (((p) << 1) & 0xffffffffffffffffULL) ^ \ ( \ (GF16_POLYNOMIAL ^ (((uint64_t)GF16_POLYNOMIAL) << 32)) & \ -((p) >> 47) \ ) \ ) static HEDLEY_ALWAYS_INLINE void writeXor16(void* p, uint16_t v) { write16(p, v ^ read16(p)); } static HEDLEY_ALWAYS_INLINE void writeXor32(void* p, uint32_t v) { write32(p, v ^ read32(p)); } static HEDLEY_ALWAYS_INLINE void writeXor64(void* p, uint64_t v) { write64(p, v ^ read64(p)); } #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ # define PACK_2X16(a, b) (((uint32_t)(a) << 16) | (b)) # define PACK_4X16(a, b, c, d) (((uint64_t)(a) << 48) | ((uint64_t)(b) << 32) | ((uint64_t)(c) << 16) | (uint64_t)(d)) # define XTRACT_BYTE(a, b) (((a) >> 8*(sizeof(a)-1 - b)) & 255) #else # define PACK_2X16(a, b) (((uint32_t)(b) << 16) | (a)) # define PACK_4X16(a, b, c, d) (((uint64_t)(d) << 48) | ((uint64_t)(c) << 32) | ((uint64_t)(b) << 16) | (uint64_t)(a)) # define XTRACT_BYTE(a, b) (((a) >> b*8) & 255) #endif #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ # define SWAP16x2(n) ((((n)&0xff00ff) << 8) | (((n) >> 8) & 0xff00ff)) # define SWAP16x4(n) ((((n)&0xff00ff00ff00ffULL) << 8) | (((n) >> 8) & 0xff00ff00ff00ffULL)) static HEDLEY_ALWAYS_INLINE void calc_table(uint16_t coefficient, uint16_t* lhtable) { int j, k; if(sizeof(uintptr_t) >= 8) { uint32_t coefficient2 = (coefficient << 16) | coefficient; // [*1, *1] coefficient2 = GF16_MULTBY_TWO_X2(coefficient2); // [*2, *2] write64(lhtable, SWAP16x4(((uint64_t)coefficient << 32) | ((uint64_t)(coefficient2^coefficient)))); // [*0, *1, *2, *3] uint64_t coefficient4 = coefficient2 | ((uint64_t)coefficient2 << 32); // [*2, *2, *2, *2] coefficient4 = GF16_MULTBY_TWO_X4(coefficient4); // [*4, *4, *4, *4] uint64_t coeffFlip = SWAP16x4(coefficient4); for (j = 1; j < 64; j <<= 1) { for (k = 0; k < j; k++) { write64(lhtable + 4*(k+j), coeffFlip ^ read64(lhtable + k*4)); } coefficient4 = GF16_MULTBY_TWO_X4(coefficient4); coeffFlip = SWAP16x4(coefficient4); } uint64_t tmp = coefficient4 & 0xffff0000ffffULL; // [*0, *256, *0, *256] coefficient4 = GF16_MULTBY_TWO_X4(coefficient4); // [*512, *512, *512, *512] write64(lhtable + 256, SWAP16x4(tmp ^ (coefficient4 & 0xffffffff))); // [*0, *256, *512, *768] coefficient4 = GF16_MULTBY_TWO_X4(coefficient4); // [*1024, *1024, *1024, *1024] coeffFlip = SWAP16x4(coefficient4); for (j = 1; j < 64; j <<= 1) { for (k = 0; k < j; k++) { write64(lhtable + 256 + 4*(k+j), coeffFlip ^ read64(lhtable + 256 + k*4)); } coefficient4 = GF16_MULTBY_TWO_X4(coefficient4); coeffFlip = SWAP16x4(coefficient4); } } else if(sizeof(uintptr_t) >= 4) { write32(lhtable, SWAP16(coefficient)); uint32_t coefficient2 = coefficient | (coefficient << 16); coefficient2 = GF16_MULTBY_TWO_X2(coefficient2); uint32_t coeffFlip = SWAP16x2(coefficient2); for (j = 1; j < 128; j <<= 1) { for (k = 0; k < j; k++) { write32(lhtable + 2*(k+j), coeffFlip ^ read32(lhtable + k*2)); } coefficient2 = GF16_MULTBY_TWO_X2(coefficient2); coeffFlip = SWAP16x2(coefficient2); } write32(lhtable + 256, SWAP16(coefficient2 & 0xffff)); // coeffFlip & 0xffff coefficient2 = GF16_MULTBY_TWO_X2(coefficient2); coeffFlip = SWAP16x2(coefficient2); for (j = 1; j < 128; j <<= 1) { for (k = 0; k < j; k++) { write32(lhtable + 256 + 2*(k+j), coeffFlip ^ read32(lhtable + 256 + k*2)); } coefficient2 = GF16_MULTBY_TWO_X2(coefficient2); coeffFlip = SWAP16x2(coefficient2); } } else { uint16_t coeffFlip = SWAP16(coefficient); lhtable[0] = 0; for (j = 1; j < 256; j <<= 1) { for (k = 0; k < j; k++) lhtable[k+j] = (coeffFlip ^ lhtable[k]); coefficient = GF16_MULTBY_TWO(coefficient); coeffFlip = SWAP16(coefficient); } lhtable[256] = 0; for (j = 1; j < 256; j <<= 1) { for (k = 0; k < j; k++) lhtable[256 + k+j] = (coeffFlip ^ lhtable[256 + k]); coefficient = GF16_MULTBY_TWO(coefficient); coeffFlip = SWAP16(coefficient); } } } #else /* little endian CPU */ static HEDLEY_ALWAYS_INLINE void calc_table(uint16_t coefficient, uint16_t* lhtable) { int j, k; if(sizeof(uintptr_t) >= 8) { uint32_t coefficient2 = ((uint32_t)coefficient << 16); // [*0, *1] uint32_t tmp = coefficient2 | coefficient; // [*1, *1] tmp = GF16_MULTBY_TWO_X2(tmp); // [*2, *2] write64(lhtable, coefficient2 | ((uint64_t)(tmp^coefficient2) << 32)); // [*0, *1, *2, *3] uint64_t coefficient4 = tmp | ((uint64_t)tmp << 32); // [*2, *2, *2, *2] coefficient4 = GF16_MULTBY_TWO_X4(coefficient4); // [*4, *4, *4, *4] for (j = 1; j < 64; j <<= 1) { for (k = 0; k < j; k++) { write64(lhtable + 4*(k+j), coefficient4 ^ read64(lhtable + k*4)); } coefficient4 = GF16_MULTBY_TWO_X4(coefficient4); } uint64_t tmp2 = coefficient4 & 0xffff0000ffff0000ULL; // [*0, *256, *0, *256] coefficient4 = GF16_MULTBY_TWO_X4(coefficient4); // [*512, *512, *512, *512] write64(lhtable + 256, tmp2 ^ (coefficient4 << 32)); // [*0, *256, *512, *768] coefficient4 = GF16_MULTBY_TWO_X4(coefficient4); // [*1024, *1024, *1024, *1024] for (j = 1; j < 64; j <<= 1) { for (k = 0; k < j; k++) { write64(lhtable + 256 + 4*(k+j), coefficient4 ^ read64(lhtable + 256 + k*4)); } coefficient4 = GF16_MULTBY_TWO_X4(coefficient4); } } else if(sizeof(uintptr_t) >= 4) { uint32_t coefficient2 = ((uint32_t)coefficient << 16); write32(lhtable, coefficient2); coefficient2 |= coefficient; coefficient2 = GF16_MULTBY_TWO_X2(coefficient2); for (j = 1; j < 128; j <<= 1) { for (k = 0; k < j; k++) { write32(lhtable + 2*(k+j), coefficient2 ^ read32(lhtable + k*2)); } coefficient2 = GF16_MULTBY_TWO_X2(coefficient2); } write32(lhtable + 256, coefficient2 & 0xffff0000); coefficient2 = GF16_MULTBY_TWO_X2(coefficient2); for (j = 1; j < 128; j <<= 1) { for (k = 0; k < j; k++) { write32(lhtable + 256 + 2*(k+j), coefficient2 ^ read32(lhtable + 256 + k*2)); } coefficient2 = GF16_MULTBY_TWO_X2(coefficient2); } } else { lhtable[0] = 0; for (j = 1; j < 256; j <<= 1) { for (k = 0; k < j; k++) lhtable[k+j] = (coefficient ^ lhtable[k]); coefficient = GF16_MULTBY_TWO(coefficient); } lhtable[256] = 0; for (j = 1; j < 256; j <<= 1) { for (k = 0; k < j; k++) lhtable[256 + k+j] = (coefficient ^ lhtable[256 + k]); coefficient = GF16_MULTBY_TWO(coefficient); } } } #endif #ifdef PARPAR_INVERT_SUPPORT void gf16_lookup_mul(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) { UNUSED(scratch); UNUSED(mutScratch); uint16_t lhtable[512]; calc_table(coefficient, lhtable); uint8_t* _src = (uint8_t*)src + len; uint8_t* _dst = (uint8_t*)dst + len; if(sizeof(uintptr_t) >= 8) { // process in 64-bit for(intptr_t ptr = -(intptr_t)len; ptr; ptr+=8) { write64(_dst + ptr, PACK_4X16( lhtable[_src[ptr]] ^ lhtable[256 + _src[ptr + 1]], lhtable[_src[ptr + 2]] ^ lhtable[256 + _src[ptr + 3]], lhtable[_src[ptr + 4]] ^ lhtable[256 + _src[ptr + 5]], lhtable[_src[ptr + 6]] ^ lhtable[256 + _src[ptr + 7]] )); } } else if(sizeof(uintptr_t) >= 4) { // assume 32-bit CPU for(intptr_t ptr = -(intptr_t)len; ptr; ptr+=4) { write32(_dst + ptr, PACK_2X16( lhtable[_src[ptr]] ^ lhtable[256 + _src[ptr + 1]], lhtable[_src[ptr + 2]] ^ lhtable[256 + _src[ptr + 3]] )); } } else { // use 2 byte wordsize for(intptr_t ptr = -(intptr_t)len; ptr; ptr+=2) { write16(_dst + ptr, lhtable[_src[ptr]] ^ lhtable[256 + _src[ptr + 1]]); } } } #endif void gf16_lookup_muladd(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) { UNUSED(scratch); UNUSED(mutScratch); uint16_t lhtable[512]; calc_table(coefficient, lhtable); uint8_t* _src = (uint8_t*)src + len; uint8_t* _dst = (uint8_t*)dst + len; if(sizeof(uintptr_t) >= 8) { // process in 64-bit for(intptr_t ptr = -(intptr_t)len; ptr; ptr+=8) { writeXor64(_dst + ptr, PACK_4X16( lhtable[_src[ptr]] ^ lhtable[256 + _src[ptr + 1]], lhtable[_src[ptr + 2]] ^ lhtable[256 + _src[ptr + 3]], lhtable[_src[ptr + 4]] ^ lhtable[256 + _src[ptr + 5]], lhtable[_src[ptr + 6]] ^ lhtable[256 + _src[ptr + 7]] )); } } else if(sizeof(uintptr_t) >= 4) { // assume 32-bit CPU for(intptr_t ptr = -(intptr_t)len; ptr; ptr+=4) { writeXor32(_dst + ptr, PACK_2X16( lhtable[_src[ptr]] ^ lhtable[256 + _src[ptr + 1]], lhtable[_src[ptr + 2]] ^ lhtable[256 + _src[ptr + 3]] )); } } else { // use 2 byte wordsize for(intptr_t ptr = -(intptr_t)len; ptr; ptr+=2) { writeXor16(_dst + ptr, lhtable[_src[ptr]] ^ lhtable[256 + _src[ptr + 1]]); } } } #ifdef PARPAR_POW_SUPPORT void gf16_lookup_powadd(const void *HEDLEY_RESTRICT scratch, unsigned outputs, size_t offset, void **HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) { UNUSED(scratch); UNUSED(mutScratch); uint16_t lhtable[512]; calc_table(coefficient, lhtable); uint8_t* _src = (uint8_t*)src + len + offset; size_t lenPlusOffset = len + offset; // TODO: consider pre-computing this to all dst pointers if(sizeof(uintptr_t) >= 8) { // process in 64-bit for(intptr_t ptr = -(intptr_t)len; ptr; ptr+=8) { size_t dstPtr = ptr + lenPlusOffset; uint16_t res1 = lhtable[_src[ptr]] ^ lhtable[256 + _src[ptr + 1]]; uint16_t res2 = lhtable[_src[ptr + 2]] ^ lhtable[256 + _src[ptr + 3]]; uint16_t res3 = lhtable[_src[ptr + 4]] ^ lhtable[256 + _src[ptr + 5]]; uint16_t res4 = lhtable[_src[ptr + 6]] ^ lhtable[256 + _src[ptr + 7]]; writeXor64((uint8_t*)dst[0] + dstPtr, PACK_4X16(res1, res2, res3, res4)); for(unsigned output = 1; output < outputs; output++) { res1 = lhtable[XTRACT_BYTE(res1, 0)] ^ lhtable[256 + XTRACT_BYTE(res1, 1)]; res2 = lhtable[XTRACT_BYTE(res2, 0)] ^ lhtable[256 + XTRACT_BYTE(res2, 1)]; res3 = lhtable[XTRACT_BYTE(res3, 0)] ^ lhtable[256 + XTRACT_BYTE(res3, 1)]; res4 = lhtable[XTRACT_BYTE(res4, 0)] ^ lhtable[256 + XTRACT_BYTE(res4, 1)]; writeXor64((uint8_t*)dst[output] + dstPtr, PACK_4X16(res1, res2, res3, res4)); } } } else if(sizeof(uintptr_t) >= 4) { // assume 32-bit CPU for(intptr_t ptr = -(intptr_t)len; ptr; ptr+=4) { size_t dstPtr = ptr + lenPlusOffset; uint16_t res1 = lhtable[_src[ptr]] ^ lhtable[256 + _src[ptr + 1]]; uint16_t res2 = lhtable[_src[ptr + 2]] ^ lhtable[256 + _src[ptr + 3]]; writeXor32((uint8_t*)dst[0] + dstPtr, PACK_2X16(res1, res2)); for(unsigned output = 1; output < outputs; output++) { res1 = lhtable[XTRACT_BYTE(res1, 0)] ^ lhtable[256 + XTRACT_BYTE(res1, 1)]; res2 = lhtable[XTRACT_BYTE(res2, 0)] ^ lhtable[256 + XTRACT_BYTE(res2, 1)]; writeXor32((uint8_t*)dst[output] + dstPtr, PACK_2X16(res1, res2)); } } } else { // use 2 byte wordsize for(intptr_t ptr = -(intptr_t)len; ptr; ptr+=2) { size_t dstPtr = ptr + lenPlusOffset; uint16_t data = read16(_src + ptr); for(unsigned output = 0; output < outputs; output++) { data = lhtable[XTRACT_BYTE(data, 0)] ^ lhtable[256 + XTRACT_BYTE(data, 1)]; writeXor16((uint8_t*)dst[output] + dstPtr, data); } } } } #endif HEDLEY_CONST size_t gf16_lookup_stride() { if(sizeof(uintptr_t) >= 8) return 8; else if(sizeof(uintptr_t) >= 4) return 4; else return 2; } #if !defined(PARPAR_SLIM_GF16) struct gf16_lookup3_tables { uint16_t table1[2048]; // bits 0-10 uint32_t table2[1024]; // bits 11-20 uint16_t table3[2048]; // bits 21-31 }; static HEDLEY_ALWAYS_INLINE void calc_3table(uint16_t coefficient, struct gf16_lookup3_tables* lookup) { if(sizeof(uintptr_t) >= 8) { uint32_t coefficient2 = ((uint32_t)coefficient << 16); uint32_t tmp = coefficient2 | coefficient; tmp = GF16_MULTBY_TWO_X2(tmp); write64(lookup->table1, coefficient2 | ((uint64_t)(tmp^coefficient2) << 32)); uint64_t coefficient4 = tmp | ((uint64_t)tmp << 32); coefficient4 = GF16_MULTBY_TWO_X4(coefficient4); int j, k; for (j = 1; j < 512; j <<= 1) { for (k = 0; k < j; k++) write64(lookup->table1 + 4*(k+j), coefficient4 ^ read64(lookup->table1 + 4*k)); coefficient4 = GF16_MULTBY_TWO_X4(coefficient4); } write64(lookup->table2, coefficient4 & 0xffff00000000ULL); coefficient4 = GF16_MULTBY_TWO_X4(coefficient4); coefficient4 &= 0xffff0000ffffULL; for (j = 1; j < 16; j <<= 1) { for (k = 0; k < j; k++) write64(lookup->table2 + 2*(k+j), coefficient4 ^ read64(lookup->table2 + 2*k)); coefficient4 = GF16_MULTBY_TWO_LOWER_X2(coefficient4); } coefficient4 = (uint64_t)coefficient << 48; coefficient4 |= (uint32_t)coefficient << 16; for (j = 16; j < 512; j <<= 1) { for (k = 0; k < j; k++) write64(lookup->table2 + 2*(k+j), coefficient4 ^ read64(lookup->table2 + 2*k)); coefficient4 = GF16_MULTBY_TWO_UPPER_X2(coefficient4); } uint64_t tmp2 = coefficient4; coefficient4 |= coefficient4 >> 16; coefficient4 = GF16_MULTBY_TWO_X4(coefficient4); write64(lookup->table3, tmp2 ^ (coefficient4 << 32)); coefficient4 = GF16_MULTBY_TWO_X4(coefficient4); for (j = 1; j < 512; j <<= 1) { for (k = 0; k < j; k++) write64(lookup->table3 + 4*(k+j), coefficient4 ^ read64(lookup->table3 + 4*k)); coefficient4 = GF16_MULTBY_TWO_X4(coefficient4); } } else { uint32_t coefficient2 = ((uint32_t)coefficient << 16); write32(lookup->table1, coefficient2); coefficient2 |= coefficient; coefficient2 = GF16_MULTBY_TWO_X2(coefficient2); int j, k; for (j = 1; j < 1024; j <<= 1) { for (k = 0; k < j; k++) write32(lookup->table1 + 2*(k+j), coefficient2 ^ read32(lookup->table1 + 2*k)); coefficient2 = GF16_MULTBY_TWO_X2(coefficient2); } lookup->table2[0] = 0; uint16_t val = coefficient2 & 0xffff; for (j = 1; j < 32; j <<= 1) { for (k = 0; k < j; k++) lookup->table2[k+j] = val ^ lookup->table2[k]; val = GF16_MULTBY_TWO(val); } coefficient2 = (uint32_t)coefficient << 16; for (j = 32; j < 1024; j <<= 1) { for (k = 0; k < j; k++) lookup->table2[k+j] = coefficient2 ^ lookup->table2[k]; coefficient2 = GF16_MULTBY_TWO_UPPER(coefficient2); } write32(lookup->table3, coefficient2); coefficient2 |= coefficient2>>16; coefficient2 = GF16_MULTBY_TWO_X2(coefficient2); for (j = 1; j < 1024; j <<= 1) { for (k = 0; k < j; k++) write32(lookup->table3 + 2*(k+j), coefficient2 ^ read32(lookup->table3 + 2*k)); coefficient2 = GF16_MULTBY_TWO_X2(coefficient2); } } } #endif #ifdef PARPAR_INVERT_SUPPORT void gf16_lookup3_mul(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) { UNUSED(scratch); UNUSED(mutScratch); #if !defined(PARPAR_SLIM_GF16) struct gf16_lookup3_tables lookup; calc_3table(coefficient, &lookup); uint8_t* _src = (uint8_t*)src + len; uint8_t* _dst = (uint8_t*)dst + len; if(sizeof(uintptr_t) >= 8) { // assume 64-bit CPU for(intptr_t ptr = -(intptr_t)len; ptr; ptr+=8) { uint64_t data = read64(_src + ptr); uint32_t data2 = data >> 32; write64(_dst + ptr, ( (uint32_t)lookup.table1[data & 0x7ff] ^ lookup.table2[(data & 0x1ff800) >> 11] ^ ((uint32_t)lookup.table3[(data & 0xffe00000) >> 21] << 16) ) ^ ((uint64_t)( lookup.table1[data2 & 0x7ff] ^ lookup.table2[(data2 & 0x1ff800) >> 11] ) << 32) ^ ((uint64_t)lookup.table3[data2 >> 21] << 48)); } } else { for(intptr_t ptr = -(intptr_t)len; ptr; ptr+=4) { uint32_t data = read32(_src + ptr); write32(_dst + ptr, (uint32_t)lookup.table1[data & 0x7ff] ^ lookup.table2[(data & 0x1ff800) >> 11] ^ ((uint32_t)lookup.table3[data >> 21] << 16) ); } } #else UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); #endif } #endif void gf16_lookup3_muladd(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) { UNUSED(scratch); UNUSED(mutScratch); #if !defined(PARPAR_SLIM_GF16) struct gf16_lookup3_tables lookup; calc_3table(coefficient, &lookup); uint8_t* _src = (uint8_t*)src + len; uint8_t* _dst = (uint8_t*)dst + len; if(sizeof(uintptr_t) >= 8) { // assume 64-bit CPU for(intptr_t ptr = -(intptr_t)len; ptr; ptr+=8) { uint64_t data = read64(_src + ptr); uint32_t data2 = data >> 32; writeXor64(_dst + ptr, ( (uint32_t)lookup.table1[data & 0x7ff] ^ lookup.table2[(data & 0x1ff800) >> 11] ^ ((uint32_t)lookup.table3[(data & 0xffe00000) >> 21] << 16) ) ^ ((uint64_t)( (uint64_t)lookup.table1[data2 & 0x7ff] ^ lookup.table2[(data2 & 0x1ff800) >> 11] ) << 32) ^ ((uint64_t)lookup.table3[data2 >> 21] << 48)); } } else { for(intptr_t ptr = -(intptr_t)len; ptr; ptr+=4) { uint32_t data = read32(_src + ptr); writeXor32(_dst + ptr, (uint32_t)lookup.table1[data & 0x7ff] ^ lookup.table2[(data & 0x1ff800) >> 11] ^ ((uint32_t)lookup.table3[data >> 21] << 16) ); } } #else UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); #endif } #if !defined(PARPAR_SLIM_GF16) struct gf16_lookup2_tables { uint16_t table1[2048]; // bits 0-10 & 16-26 uint32_t table2[1024]; // bits 11-15 + 27-31 }; static HEDLEY_ALWAYS_INLINE void calc_2table(uint16_t coefficient, struct gf16_lookup2_tables* lookup) { if(sizeof(uintptr_t) >= 8) { uint32_t coefficient2 = ((uint32_t)coefficient << 16); uint32_t tmp = coefficient2 | coefficient; tmp = GF16_MULTBY_TWO_X2(tmp); write64(lookup->table1, coefficient2 | ((uint64_t)(tmp^coefficient2) << 32)); uint64_t coefficient4 = tmp | ((uint64_t)tmp << 32); coefficient4 = GF16_MULTBY_TWO_X4(coefficient4); int j, k; for (j = 1; j < 512; j <<= 1) { for (k = 0; k < j; k++) write64(lookup->table1 + 4*(k+j), coefficient4 ^ read64(lookup->table1 + 4*k)); coefficient4 = GF16_MULTBY_TWO_X4(coefficient4); } write64(lookup->table2, coefficient4 & 0xffff00000000ULL); coefficient4 = GF16_MULTBY_TWO_X4(coefficient4); coefficient4 &= 0xffff0000ffffULL; for (j = 1; j < 16; j <<= 1) { for (k = 0; k < j; k++) write64(lookup->table2 + 2*(k+j), coefficient4 ^ read64(lookup->table2 + 2*k)); coefficient4 = GF16_MULTBY_TWO_LOWER_X2(coefficient4); } for (j = 1; j < 32; j++) { uint64_t highVal = (uint64_t)lookup->table2[j] * 0x0001000000010000ULL; for (k = 0; k < 16; k++) write64(lookup->table2 + 2*(j*16 + k), highVal | read64(lookup->table2 + 2*k)); } } else { uint32_t coefficient2 = ((uint32_t)coefficient << 16); write32(lookup->table1, coefficient2); coefficient2 |= coefficient; coefficient2 = GF16_MULTBY_TWO_X2(coefficient2); int j, k; for (j = 1; j < 1024; j <<= 1) { for (k = 0; k < j; k++) write32(lookup->table1 + 2*(k+j), coefficient2 ^ read32(lookup->table1 + 2*k)); coefficient2 = GF16_MULTBY_TWO_X2(coefficient2); } lookup->table2[0] = 0; uint16_t val = coefficient2 & 0xffff; for (j = 1; j < 32; j <<= 1) { for (k = 0; k < j; k++) lookup->table2[k+j] = val ^ lookup->table2[k]; val = GF16_MULTBY_TWO(val); } for (j = 1; j < 32; j++) { uint32_t highVal = lookup->table2[j] << 16; for (k = 0; k < 32; k++) lookup->table2[j*32 + k] = lookup->table2[k] | highVal; } } } #endif unsigned gf16_lookup3_muladd_multi_packed(const void *HEDLEY_RESTRICT scratch, unsigned packRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch) { UNUSED(scratch); UNUSED(packRegions); UNUSED(mutScratch); #if !defined(PARPAR_SLIM_GF16) uint8_t* _dst = (uint8_t*)dst + len; uint8_t* _src = (uint8_t*)src; for(unsigned region=0; region= 8) { // assume 64-bit CPU for(intptr_t ptr = -(intptr_t)len; ptr; ptr+=8) { uint64_t data = read64(_src + ptr); uint32_t data2 = data >> 32; writeXor64(_dst + ptr, ( (uint32_t)lookup.table1[data & 0x7ff] ^ lookup.table2[(data & 0xffc00000) >> 22] ^ ((uint32_t)lookup.table1[(data & 0x3ff800) >> 11] << 16) ) ^ ((uint64_t)( (uint64_t)lookup.table1[data2 & 0x7ff] ^ lookup.table2[data2 >> 22] ) << 32) ^ ((uint64_t)lookup.table1[(data2 & 0x3ff800) >> 11] << 48)); } } else { for(intptr_t ptr = -(intptr_t)len; ptr; ptr+=4) { uint32_t data = read32(_src + ptr); writeXor32(_dst + ptr, (uint32_t)lookup.table1[data & 0x7ff] ^ lookup.table2[data >> 22] ^ ((uint32_t)lookup.table1[(data & 0x3ff800) >> 11] << 16) ); } } } #else UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficients); #endif return regions; } HEDLEY_CONST size_t gf16_lookup3_stride() { #if __BYTE_ORDER__ != __ORDER_BIG_ENDIAN__ // we only support this technique on little endian for now if(sizeof(uintptr_t) >= 8) return 8; else if(sizeof(uintptr_t) >= 4) return 4; else #endif return 0; } static HEDLEY_ALWAYS_INLINE void gf16_lookup_checksum_prepare(void *HEDLEY_RESTRICT dst, void *HEDLEY_RESTRICT checksum, const size_t blockLen, gf16_transform_block_rst prepareBlock) { UNUSED(prepareBlock); memset(dst, 0, blockLen); if(sizeof(uintptr_t) >= 8) write64(dst, SWAP64(read64(checksum))); else if(sizeof(uintptr_t) >= 4) write32(dst, SWAP32(read32(checksum))); else write16(dst, SWAP16(read16(checksum))); } #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ static HEDLEY_ALWAYS_INLINE void gf16_lookup_checksum_inline_finish(void *HEDLEY_RESTRICT checksum) { if(sizeof(uintptr_t) >= 8) write64(checksum, SWAP64(read64(checksum))); else if(sizeof(uintptr_t) >= 4) write32(checksum, SWAP32(read32(checksum))); else write16(checksum, SWAP16(read16(checksum))); } #else # define gf16_lookup_checksum_inline_finish NULL #endif static HEDLEY_ALWAYS_INLINE void gf16_lookup_copy_block(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src) { memcpy(dst, src, gf16_lookup_stride()); } static HEDLEY_ALWAYS_INLINE void gf16_lookup_prepare_blocku(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t remaining) { memcpy(dst, src, remaining); memset((char*)dst + remaining, 0, gf16_lookup_stride()-remaining); } void gf16_copy_blocku(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len) { memcpy(dst, src, len); } GF_PREPARE_PACKED_CKSUM_FUNCS(gf16_lookup, _generic, gf16_lookup_stride(), gf16_lookup_copy_block, gf16_lookup_prepare_blocku, 1, (void)0, uintptr_t checksum = 0, gf16_checksum_block_generic, gf16_checksum_blocku_generic, gf16_checksum_exp_generic, gf16_lookup_checksum_prepare, gf16_lookup_stride()) GF_FINISH_PACKED_FUNCS(gf16_lookup, _generic, gf16_lookup_stride(), gf16_lookup_copy_block, gf16_copy_blocku, 1, (void)0, gf16_checksum_block_generic, gf16_checksum_blocku_generic, gf16_checksum_exp_generic, gf16_lookup_checksum_inline_finish, gf16_lookup_stride()) #if !defined(PARPAR_SLIM_GF16) static HEDLEY_ALWAYS_INLINE void gf16_lookup3_prepare_block(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src) { // pack bits so that we have: 0...10,16...26,11...15,27...31 if(sizeof(uintptr_t) >= 8) { uint64_t data = read64(src); write64(dst, (data & 0xf80007fff80007ffULL) | ((data & 0x07ff000007ff0000ULL) >> 5) | ((data & 0xf8000000f800ULL) << 11)); } else { uint32_t data = read32(src); write32(dst, (data & 0xf80007ff) | ((data & 0x07ff0000) >> 5) | ((data & 0xf800) << 11)); } } static HEDLEY_ALWAYS_INLINE void gf16_lookup3_prepare_blocku(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t remaining) { uintptr_t data = 0; memcpy(&data, src, remaining); gf16_lookup3_prepare_block(dst, &data); } static HEDLEY_ALWAYS_INLINE void gf16_lookup3_checksum_prepare(void *HEDLEY_RESTRICT dst, void *HEDLEY_RESTRICT checksum, const size_t blockLen, gf16_transform_block_rst prepareBlock) { UNUSED(prepareBlock); gf16_lookup3_prepare_block(dst, checksum); memset((char*)dst+gf16_lookup3_stride(), 0, blockLen-gf16_lookup3_stride()); } GF_PREPARE_PACKED_FUNCS(gf16_lookup3, _generic, gf16_lookup3_stride(), gf16_lookup3_prepare_block, gf16_lookup3_prepare_blocku, 1, (void)0, uintptr_t checksum = 0, gf16_checksum_block_generic, gf16_checksum_blocku_generic, gf16_checksum_exp_generic, gf16_lookup3_checksum_prepare, gf16_lookup3_stride()) #else GF_PREPARE_PACKED_FUNCS_STUB(gf16_lookup3, _generic) #endif par2cmdline-turbo-1.5.0/parpar/gf16/gf16_lookup.h000066400000000000000000000110451524160147200214060ustar00rootroot00000000000000#ifndef __GF16_LOOKUP_H #define __GF16_LOOKUP_H #include "../src/hedley.h" #include "../src/stdint.h" #include #ifdef PARPAR_INVERT_SUPPORT void gf16_lookup_mul(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch); #endif void gf16_lookup_muladd(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch); #ifdef PARPAR_POW_SUPPORT void gf16_lookup_powadd(const void *HEDLEY_RESTRICT scratch, unsigned outputs, size_t offset, void **HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch); #endif #ifdef PARPAR_INVERT_SUPPORT void gf16_lookup3_mul(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch); #endif void gf16_lookup3_muladd(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch); void gf16_lookup3_muladd_multi_packed(const void *HEDLEY_RESTRICT scratch, unsigned packRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch); #ifdef PARPAR_INVERT_SUPPORT void gf16_lookup_mul_sse2(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch); #endif void gf16_lookup_muladd_sse2(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch); HEDLEY_CONST size_t gf16_lookup_stride(); HEDLEY_CONST size_t gf16_lookup3_stride(); void gf16_lookup_prepare_packed_cksum_generic(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen); void gf16_lookup_prepare_partial_packsum_generic(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen, size_t partOffset, size_t partLen); #ifdef PARPAR_INCLUDE_BASIC_OPS void gf16_lookup_finish_packed_generic(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t sliceLen, unsigned numOutputs, unsigned outputNum, size_t chunkLen); #endif int gf16_lookup_finish_packed_cksum_generic(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t sliceLen, unsigned numOutputs, unsigned outputNum, size_t chunkLen); int gf16_lookup_finish_partial_packsum_generic(void *HEDLEY_RESTRICT dst, void *HEDLEY_RESTRICT src, size_t sliceLen, unsigned numOutputs, unsigned outputNum, size_t chunkLen, size_t partOffset, size_t partLen); #ifdef PARPAR_INCLUDE_BASIC_OPS void gf16_lookup3_prepare_packed_generic(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen); #endif void gf16_lookup3_prepare_packed_cksum_generic(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen); void gf16_lookup3_prepare_partial_packsum_generic(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen, size_t partOffset, size_t partLen); void gf16_lookup_prepare_packed_cksum_sse2(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen); void gf16_lookup_prepare_partial_packsum_sse2(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen, size_t partOffset, size_t partLen); #ifdef PARPAR_INCLUDE_BASIC_OPS void gf16_lookup_finish_packed_sse2(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t sliceLen, unsigned numOutputs, unsigned outputNum, size_t chunkLen); #endif int gf16_lookup_finish_packed_cksum_sse2(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t sliceLen, unsigned numOutputs, unsigned outputNum, size_t chunkLen); int gf16_lookup_finish_partial_packsum_sse2(void *HEDLEY_RESTRICT dst, void *HEDLEY_RESTRICT src, size_t sliceLen, unsigned numOutputs, unsigned outputNum, size_t chunkLen, size_t partOffset, size_t partLen); #endif par2cmdline-turbo-1.5.0/parpar/gf16/gf16_lookup_sse2.c000066400000000000000000000200161524160147200223330ustar00rootroot00000000000000 #include "gf16_global.h" #include "../src/platform.h" #if defined(__SSE2__) && !defined(PARPAR_SLIM_GF16) # define _AVAILABLE 1 #endif #ifdef _AVAILABLE static HEDLEY_ALWAYS_INLINE void calc_table(uint16_t val, uint16_t* lhtable) { int j, k; __m128i* _lhtable = (__m128i*)lhtable; int val2 = GF16_MULTBY_TWO(val); int val4 = GF16_MULTBY_TWO(val2); __m128i tmp0 = _mm_cvtsi32_si128((uint32_t)val << 16); tmp0 = _mm_insert_epi16(tmp0, val2, 2); tmp0 = _mm_insert_epi16(tmp0, val2 ^ val, 3); __m128i vval4 = _mm_set1_epi16(val4); tmp0 = _mm_unpacklo_epi64(tmp0, _mm_xor_si128(tmp0, vval4)); _mm_store_si128(_lhtable, tmp0); __m128i poly = _mm_set1_epi16(GF16_POLYNOMIAL & 0xffff); #define MUL2(x) _mm_xor_si128( \ _mm_add_epi16(x, x), \ _mm_and_si128(poly, _mm_cmpgt_epi16( \ _mm_setzero_si128(), x \ )) \ ) __m128i mul = MUL2(vval4); // *8 __m128i tmp8 = _mm_xor_si128(tmp0, mul); _mm_store_si128(_lhtable+1, tmp8); mul = MUL2(mul); // *16 for(j = 2; j < 32; j <<= 1) { // save a few reads by having the first 2 values cached in registers _mm_store_si128(_lhtable + j, _mm_xor_si128(mul, tmp0)); _mm_store_si128(_lhtable + j + 1, _mm_xor_si128(mul, tmp8)); // loop over rest for(k = 2; k < j; k++) _mm_store_si128(_lhtable + j + k, _mm_xor_si128(mul, _mm_load_si128(_lhtable + k))); mul = MUL2(mul); } __m128i tmp256 = _mm_slli_epi32(mul, 16); // [*0, *256, *0, *256 ...] mul = MUL2(mul); // *512 tmp256 = _mm_xor_si128(tmp256, _mm_slli_epi64(mul, 32)); // [*0, *256, *512, *768, *0, *256, *512, *768] mul = MUL2(mul); // *1024 tmp256 = _mm_xor_si128(tmp256, _mm_slli_si128(mul, 8)); // [*0, *256, *512 ...] _mm_store_si128(_lhtable + 32, tmp256); mul = MUL2(mul); // *2048 __m128i tmp2048 = _mm_xor_si128(tmp256, mul); _mm_store_si128(_lhtable + 32+1, tmp2048); mul = MUL2(mul); // *4096 for(j = 2; j < 32; j <<= 1) { _mm_store_si128(_lhtable + 32 + j, _mm_xor_si128(mul, tmp256)); _mm_store_si128(_lhtable + 32 + j + 1, _mm_xor_si128(mul, tmp2048)); for(k = 2; k < j; k++) _mm_store_si128(_lhtable + 32 + j + k, _mm_xor_si128(mul, _mm_load_si128(_lhtable + 32 + k))); mul = MUL2(mul); } #undef MUL2 } #endif #ifdef PARPAR_INVERT_SUPPORT void gf16_lookup_mul_sse2(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) { UNUSED(scratch); UNUSED(mutScratch); #ifdef _AVAILABLE ALIGN_TO(16, uint16_t lhtable[513]); // +1 for potential misaligned load at end calc_table(coefficient, lhtable); uint8_t* _src = (uint8_t*)src + len; uint8_t* _dst = (uint8_t*)dst + len; for(intptr_t ptr = -(intptr_t)len; ptr; ptr+=sizeof(__m128i)) { uintptr_t input = readPtr(_src+ptr); __m128i lo1 = _mm_cvtsi32_si128(read32(lhtable + (input & 0xff))); // 1/32 chance of crossing cacheline boundary __m128i hi1 = _mm_cvtsi32_si128(read32(lhtable + (256 + ((input >> 8) & 0xff)))); input >>= 16; lo1 = _mm_insert_epi16(lo1, lhtable[input & 0xff], 1); hi1 = _mm_insert_epi16(hi1, lhtable[256 + ((input >> 8) & 0xff)], 1); if(sizeof(uintptr_t) == 8) input >>= 16; else input = readPtr(_src+ptr+4); lo1 = _mm_insert_epi16(lo1, lhtable[input & 0xff], 2); hi1 = _mm_insert_epi16(hi1, lhtable[256 + ((input >> 8) & 0xff)], 2); input >>= 16; lo1 = _mm_insert_epi16(lo1, lhtable[input & 0xff], 3); hi1 = _mm_insert_epi16(hi1, lhtable[256 + ((input >> 8) & 0xff)], 3); input = readPtr(_src+ptr+8); __m128i lo2 = _mm_cvtsi32_si128(read32(lhtable + (input & 0xff))); __m128i hi2 = _mm_cvtsi32_si128(read32(lhtable + (256 + ((input >> 8) & 0xff)))); input >>= 16; lo2 = _mm_insert_epi16(lo2, lhtable[input & 0xff], 1); hi2 = _mm_insert_epi16(hi2, lhtable[256 + ((input >> 8) & 0xff)], 1); if(sizeof(uintptr_t) == 8) input >>= 16; else input = readPtr(_src+ptr+12); lo2 = _mm_insert_epi16(lo2, lhtable[input & 0xff], 2); hi2 = _mm_insert_epi16(hi2, lhtable[256 + ((input >> 8) & 0xff)], 2); input >>= 16; lo2 = _mm_insert_epi16(lo2, lhtable[input & 0xff], 3); hi2 = _mm_insert_epi16(hi2, lhtable[256 + ((input >> 8) & 0xff)], 3); __m128i res1 = _mm_xor_si128(lo1, hi1); __m128i res2 = _mm_xor_si128(lo2, hi2); _mm_store_si128((__m128i*)(_dst+ptr), _mm_unpacklo_epi64(res1, res2)); } #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); #endif } #endif void gf16_lookup_muladd_sse2(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) { UNUSED(scratch); UNUSED(mutScratch); #ifdef _AVAILABLE ALIGN_TO(16, uint16_t lhtable[513]); // +1 for potential misaligned load at end calc_table(coefficient, lhtable); uint8_t* _src = (uint8_t*)src + len; uint8_t* _dst = (uint8_t*)dst + len; for(intptr_t ptr = -(intptr_t)len; ptr; ptr+=sizeof(__m128i)) { uintptr_t input = readPtr(_src+ptr); __m128i lo1 = _mm_cvtsi32_si128(read32(lhtable + (input & 0xff))); __m128i hi1 = _mm_cvtsi32_si128(read32(lhtable + (256 + ((input >> 8) & 0xff)))); input >>= 16; lo1 = _mm_insert_epi16(lo1, lhtable[input & 0xff], 1); hi1 = _mm_insert_epi16(hi1, lhtable[256 + ((input >> 8) & 0xff)], 1); if(sizeof(uintptr_t) == 8) input >>= 16; else input = readPtr(_src+ptr+4); lo1 = _mm_insert_epi16(lo1, lhtable[input & 0xff], 2); hi1 = _mm_insert_epi16(hi1, lhtable[256 + ((input >> 8) & 0xff)], 2); input >>= 16; lo1 = _mm_insert_epi16(lo1, lhtable[input & 0xff], 3); hi1 = _mm_insert_epi16(hi1, lhtable[256 + ((input >> 8) & 0xff)], 3); input = readPtr(_src+ptr+8); __m128i lo2 = _mm_cvtsi32_si128(read32(lhtable + (input & 0xff))); __m128i hi2 = _mm_cvtsi32_si128(read32(lhtable + (256 + ((input >> 8) & 0xff)))); input >>= 16; lo2 = _mm_insert_epi16(lo2, lhtable[input & 0xff], 1); hi2 = _mm_insert_epi16(hi2, lhtable[256 + ((input >> 8) & 0xff)], 1); if(sizeof(uintptr_t) == 8) input >>= 16; else input = readPtr(_src+ptr+12); lo2 = _mm_insert_epi16(lo2, lhtable[input & 0xff], 2); hi2 = _mm_insert_epi16(hi2, lhtable[256 + ((input >> 8) & 0xff)], 2); input >>= 16; lo2 = _mm_insert_epi16(lo2, lhtable[input & 0xff], 3); hi2 = _mm_insert_epi16(hi2, lhtable[256 + ((input >> 8) & 0xff)], 3); __m128i res1 = _mm_xor_si128(lo1, hi1); __m128i res2 = _mm_xor_si128(lo2, hi2); res1 = _mm_unpacklo_epi64(res1, res2); res1 = _mm_xor_si128(res1, _mm_load_si128((__m128i*)(_dst+ptr))); _mm_store_si128((__m128i*)(_dst+ptr), res1); } #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); #endif } #ifdef _AVAILABLE static HEDLEY_ALWAYS_INLINE void gf16_lookup_prepare_block_sse2(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src) { _mm_store_si128((__m128i*)dst, _mm_loadu_si128(src)); } static HEDLEY_ALWAYS_INLINE void gf16_lookup_finish_block_sse2(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src) { _mm_storeu_si128((__m128i*)dst, _mm_load_si128(src)); } static HEDLEY_ALWAYS_INLINE void gf16_lookup_prepare_blocku(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t remaining) { memcpy(dst, src, remaining); memset((char*)dst + remaining, 0, sizeof(__m128i)-remaining); } #define MWORD_SIZE 16 #define _mword __m128i #define _MM(f) _mm_ ## f #define _MMI(f) _mm_ ## f ## _si128 #define _FNSUFFIX _sse2 #define _MM_END #include "gf16_checksum_x86.h" #undef MWORD_SIZE #undef _mword #undef _MM #undef _MMI #undef _FNSUFFIX #undef _MM_END #endif #ifdef _AVAILABLE GF_PREPARE_PACKED_CKSUM_FUNCS(gf16_lookup, _sse2, sizeof(__m128i), gf16_lookup_prepare_block_sse2, gf16_lookup_prepare_blocku, 1, (void)0, __m128i checksum = _mm_setzero_si128(), gf16_checksum_block_sse2, gf16_checksum_blocku_sse2, gf16_checksum_exp_sse2, gf16_checksum_prepare_sse2, sizeof(__m128i)) GF_FINISH_PACKED_FUNCS(gf16_lookup, _sse2, sizeof(__m128i), gf16_lookup_finish_block_sse2, gf16_copy_blocku, 1, (void)0, gf16_checksum_block_sse2, gf16_checksum_blocku_sse2, gf16_checksum_exp_sse2, NULL, sizeof(__m128i)) #else GF_PREPARE_PACKED_CKSUM_FUNCS_STUB(gf16_lookup, _sse2) GF_FINISH_PACKED_FUNCS_STUB(gf16_lookup, _sse2) #endif par2cmdline-turbo-1.5.0/parpar/gf16/gf16_muladd_multi.h000066400000000000000000000562141524160147200225640ustar00rootroot00000000000000 #define GF16_BLKMAC_SRCDSTLIST const int srcCount, const unsigned srcScale, \ const uint8_t* _src1, const uint8_t* _src2, const uint8_t* _src3, const uint8_t* _src4, const uint8_t* _src5, const uint8_t* _src6, \ const uint8_t* _src7, const uint8_t* _src8, const uint8_t* _src9, const uint8_t* _src10, const uint8_t* _src11, const uint8_t* _src12, \ const uint8_t* _src13, const uint8_t* _src14, const uint8_t* _src15, const uint8_t* _src16, const uint8_t* _src17, const uint8_t* _src18, \ const int dstCount, const unsigned dstScale, \ uint8_t *HEDLEY_RESTRICT _dst1, uint8_t *HEDLEY_RESTRICT _dst2, uint8_t *HEDLEY_RESTRICT _dst3, uint8_t *HEDLEY_RESTRICT _dst4 #define GF16_BLKMAC_SRCDST_UNUSED(maxSrc, maxDst) \ HEDLEY_ASSUME(srcCount <= maxSrc); \ if(maxSrc < 2) UNUSED(_src2); \ if(maxSrc < 3) UNUSED(_src3); \ if(maxSrc < 4) UNUSED(_src4); \ if(maxSrc < 5) UNUSED(_src5); \ if(maxSrc < 6) UNUSED(_src6); \ if(maxSrc < 7) UNUSED(_src7); \ if(maxSrc < 8) UNUSED(_src8); \ if(maxSrc < 9) UNUSED(_src9); \ if(maxSrc < 10) UNUSED(_src10); \ if(maxSrc < 11) UNUSED(_src11); \ if(maxSrc < 12) UNUSED(_src12); \ if(maxSrc < 13) UNUSED(_src13); \ if(maxSrc < 14) UNUSED(_src14); \ if(maxSrc < 15) UNUSED(_src15); \ if(maxSrc < 16) UNUSED(_src16); \ if(maxSrc < 17) UNUSED(_src17); \ if(maxSrc < 18) UNUSED(_src18); \ HEDLEY_ASSUME(dstCount <= maxDst); \ if(maxDst < 2) UNUSED(_dst2); \ if(maxDst < 3) UNUSED(_dst3); \ if(maxDst < 4) UNUSED(_dst4) #ifdef PARPAR_INVERT_SUPPORT # define GF16_MULADD_MULTI_FUNCS(fnpre, fnsuf, xfn, procRegions, blocksize, pfFactor, finisher) \ void TOKENPASTE3(fnpre, _muladd_multi, fnsuf)(const void *HEDLEY_RESTRICT scratch, unsigned regions, size_t offset, void *HEDLEY_RESTRICT dst, const void* const*HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch) { \ UNUSED(mutScratch); \ gf16_muladd_multi(scratch, &xfn, procRegions, regions, offset, dst, src, len, coefficients); \ finisher; \ } \ void TOKENPASTE3(fnpre, _muladd_multi_stridepf, fnsuf)(const void *HEDLEY_RESTRICT scratch, unsigned regions, size_t srcStride, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch, const void* HEDLEY_RESTRICT prefetch) { \ UNUSED(mutScratch); \ gf16_muladd_multi_stridepf(scratch, &xfn, procRegions, regions, srcStride, dst, src, len, coefficients, pfFactor, prefetch); \ finisher; \ } \ void TOKENPASTE3(fnpre, _muladd_multi_packed, fnsuf)(const void *HEDLEY_RESTRICT scratch, unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch) { \ UNUSED(mutScratch); \ gf16_muladd_multi_packed(scratch, &xfn, procRegions, procRegions, packedRegions, regions, dst, src, len, blocksize, coefficients); \ finisher; \ } \ void TOKENPASTE3(fnpre, _muladd_multi_packpf, fnsuf)(const void *HEDLEY_RESTRICT scratch, unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch, const void* HEDLEY_RESTRICT prefetchIn, const void* HEDLEY_RESTRICT prefetchOut) { \ UNUSED(mutScratch); \ gf16_muladd_multi_packpf(scratch, &xfn, procRegions, procRegions, packedRegions, regions, dst, src, len, blocksize, coefficients, pfFactor, prefetchIn, prefetchOut); \ finisher; \ } # define GF16_MULADD_MULTI_FUNCS_STUB(fnpre, fnsuf) \ void TOKENPASTE3(fnpre, _muladd_multi, fnsuf)(const void *HEDLEY_RESTRICT scratch, unsigned regions, size_t offset, void *HEDLEY_RESTRICT dst, const void* const*HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch) { \ UNUSED(mutScratch); \ UNUSED(scratch); UNUSED(regions); UNUSED(offset); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficients); \ } \ void TOKENPASTE3(fnpre, _muladd_multi_stridepf, fnsuf)(const void *HEDLEY_RESTRICT scratch, unsigned regions, size_t srcStride, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch, const void* HEDLEY_RESTRICT prefetch) { \ UNUSED(mutScratch); \ UNUSED(scratch); UNUSED(regions); UNUSED(srcStride); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficients); UNUSED(prefetch); \ } \ void TOKENPASTE3(fnpre, _muladd_multi_packed, fnsuf)(const void *HEDLEY_RESTRICT scratch, unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch) { \ UNUSED(mutScratch); \ UNUSED(scratch); UNUSED(packedRegions); UNUSED(regions); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficients); \ } \ void TOKENPASTE3(fnpre, _muladd_multi_packpf, fnsuf)(const void *HEDLEY_RESTRICT scratch, unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch, const void* HEDLEY_RESTRICT prefetchIn, const void* HEDLEY_RESTRICT prefetchOut) { \ UNUSED(mutScratch); \ UNUSED(scratch); UNUSED(packedRegions); UNUSED(regions); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficients); UNUSED(prefetchIn); UNUSED(prefetchOut); \ } #else # define GF16_MULADD_MULTI_FUNCS(fnpre, fnsuf, xfn, procRegions, blocksize, pfFactor, finisher) \ void TOKENPASTE3(fnpre, _muladd_multi_packed, fnsuf)(const void *HEDLEY_RESTRICT scratch, unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch) { \ UNUSED(mutScratch); \ gf16_muladd_multi_packed(scratch, &xfn, procRegions, procRegions, packedRegions, regions, dst, src, len, blocksize, coefficients); \ finisher; \ } \ void TOKENPASTE3(fnpre, _muladd_multi_packpf, fnsuf)(const void *HEDLEY_RESTRICT scratch, unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch, const void* HEDLEY_RESTRICT prefetchIn, const void* HEDLEY_RESTRICT prefetchOut) { \ UNUSED(mutScratch); \ gf16_muladd_multi_packpf(scratch, &xfn, procRegions, procRegions, packedRegions, regions, dst, src, len, blocksize, coefficients, pfFactor, prefetchIn, prefetchOut); \ finisher; \ } # define GF16_MULADD_MULTI_FUNCS_STUB(fnpre, fnsuf) \ void TOKENPASTE3(fnpre, _muladd_multi_packed, fnsuf)(const void *HEDLEY_RESTRICT scratch, unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch) { \ UNUSED(mutScratch); \ UNUSED(scratch); UNUSED(packedRegions); UNUSED(regions); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficients); \ } \ void TOKENPASTE3(fnpre, _muladd_multi_packpf, fnsuf)(const void *HEDLEY_RESTRICT scratch, unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch, const void* HEDLEY_RESTRICT prefetchIn, const void* HEDLEY_RESTRICT prefetchOut) { \ UNUSED(mutScratch); \ UNUSED(scratch); UNUSED(packedRegions); UNUSED(regions); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficients); UNUSED(prefetchIn); UNUSED(prefetchOut); \ } #endif #if defined(__GNUC__) && !defined(__clang__) && !defined(__OPTIMIZE__) // GCC, for some reason, doesn't like const pointers when forced to inline without optimizations typedef void (*fBlkmacPF) #else typedef void (*const fBlkmacPF) #endif (const void *HEDLEY_RESTRICT scratch, GF16_BLKMAC_SRCDSTLIST, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, const int doPrefetch, const char* _pf ); // suppress UBSan warning about adding to a NULL pointer; `coefficients` can be NULL from gf_add*, but it's never used there, and it's annoying to have to check and branch on these #if defined(__clang__) && HEDLEY_HAS_ATTRIBUTE(no_sanitize) # define IGNORE_NULL_ADD __attribute__((no_sanitize("pointer-overflow"))) #else # define IGNORE_NULL_ADD #endif static HEDLEY_ALWAYS_INLINE void gf16_muladd_single(const void *HEDLEY_RESTRICT scratch, fBlkmacPF blkmac_pf, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, uint16_t val) { blkmac_pf( scratch, 1, 1, (const uint8_t*)src + len, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, (uint8_t*)dst + len, NULL, NULL, NULL, len, &val, 0, NULL ); } static HEDLEY_ALWAYS_INLINE void gf16_muladd_prefetch_single(const void *HEDLEY_RESTRICT scratch, fBlkmacPF blkmac_pf, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, uint16_t val, const void *HEDLEY_RESTRICT prefetch) { blkmac_pf( scratch, 1, 1, (const uint8_t*)src + len, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, (uint8_t*)dst + len, NULL, NULL, NULL, len, &val, 2, prefetch ); } #define REMAINING_CASES CASE(17); CASE(16); CASE(15); CASE(14); CASE(13); CASE(12); CASE(11); CASE(10); CASE( 9); CASE( 8); CASE( 7); CASE( 6); CASE( 5); CASE( 4); CASE( 3); CASE( 2); CASE( 1) #ifdef PARPAR_INVERT_SUPPORT static HEDLEY_ALWAYS_INLINE void gf16_muladd_multi(const void *HEDLEY_RESTRICT scratch, fBlkmacPF blkmac_pf, const unsigned interleave, unsigned regions, size_t offset, void *HEDLEY_RESTRICT dst, const void* const*HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients) IGNORE_NULL_ADD { uint8_t* _dst = (uint8_t*)dst + offset + len; #define _SRC(limit, n) limit > n ? (const uint8_t*)src[region+n] + offset + len : NULL unsigned region; for(region = 0; region + interleave <= regions; region += interleave) { blkmac_pf( scratch, interleave, 1, (const uint8_t*)src[region] + offset + len, _SRC(interleave, 1), _SRC(interleave, 2), _SRC(interleave, 3), _SRC(interleave, 4), _SRC(interleave, 5), _SRC(interleave, 6), _SRC(interleave, 7), _SRC(interleave, 8), _SRC(interleave, 9), _SRC(interleave, 10), _SRC(interleave, 11), _SRC(interleave, 12), _SRC(interleave,13), _SRC(interleave, 14), _SRC(interleave, 15), _SRC(interleave, 16), _SRC(interleave,17), 1, 1, _dst, NULL, NULL, NULL, len, coefficients + region, 0, NULL ); } unsigned remaining = regions - region; HEDLEY_ASSUME(remaining < interleave); // doesn't seem to always work, so we have additional checks in the switch cases switch(remaining) { #define CASE(x) \ case x: \ HEDLEY_ASSUME(x < interleave); \ blkmac_pf( \ scratch, x, 1, \ (const uint8_t*)src[region] + offset + len, \ _SRC(x, 1), _SRC(x, 2), _SRC(x, 3), _SRC(x, 4), \ _SRC(x, 5), _SRC(x, 6), _SRC(x, 7), _SRC(x, 8), \ _SRC(x, 9), _SRC(x, 10), _SRC(x, 11), _SRC(x, 12), \ _SRC(x,13), _SRC(x, 14), _SRC(x, 15), _SRC(x, 16), \ _SRC(x,17), \ 1, 1, _dst, NULL, NULL, NULL, \ len, coefficients + region, 0, NULL \ ); \ break REMAINING_CASES; #undef CASE default: break; } #undef _SRC } static HEDLEY_ALWAYS_INLINE void gf16_muladd_multi_stridepf(const void *HEDLEY_RESTRICT scratch, fBlkmacPF blkmac_pf, const unsigned interleave, unsigned regions, size_t srcStride, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, const unsigned pfFactor, const void* HEDLEY_RESTRICT prefetch) IGNORE_NULL_ADD { uint8_t* _dst = (uint8_t*)dst + len; uint8_t* srcEnd = (uint8_t*)src + len; size_t pfLen = len>>pfFactor; const char* _pf = (const char*)prefetch + pfLen; unsigned outputPfRounds = 1< n ? srcEnd + srcStride*n : NULL unsigned region; for(region = 0; region + interleave <= regions && outputPfRounds; region += interleave) { blkmac_pf( scratch, interleave, 1, srcEnd, _SRC(interleave, 1), _SRC(interleave, 2), _SRC(interleave, 3), _SRC(interleave, 4), _SRC(interleave, 5), _SRC(interleave, 6), _SRC(interleave, 7), _SRC(interleave, 8), _SRC(interleave, 9), _SRC(interleave, 10), _SRC(interleave, 11), _SRC(interleave, 12), _SRC(interleave,13), _SRC(interleave, 14), _SRC(interleave, 15), _SRC(interleave, 16), _SRC(interleave,17), 1, 1, _dst, NULL, NULL, NULL, len, coefficients + region, 2, _pf ); srcEnd += srcStride*interleave; outputPfRounds--; _pf += pfLen; } for(; region + interleave <= regions; region += interleave) { blkmac_pf( scratch, interleave, 1, srcEnd, _SRC(interleave, 1), _SRC(interleave, 2), _SRC(interleave, 3), _SRC(interleave, 4), _SRC(interleave, 5), _SRC(interleave, 6), _SRC(interleave, 7), _SRC(interleave, 8), _SRC(interleave, 9), _SRC(interleave, 10), _SRC(interleave, 11), _SRC(interleave, 12), _SRC(interleave,13), _SRC(interleave, 14), _SRC(interleave, 15), _SRC(interleave, 16), _SRC(interleave,17), 1, 1, _dst, NULL, NULL, NULL, len, coefficients + region, 0, NULL ); srcEnd += srcStride*interleave; } unsigned remaining = regions - region; HEDLEY_ASSUME(remaining < interleave); // doesn't seem to always work, so we have additional checks in the switch cases if(outputPfRounds) { switch(remaining) { #define CASE(x) \ case x: \ HEDLEY_ASSUME(x < interleave); \ blkmac_pf( \ scratch, x, 1, \ srcEnd, \ _SRC(x, 1), _SRC(x, 2), _SRC(x, 3), _SRC(x, 4), \ _SRC(x, 5), _SRC(x, 6), _SRC(x, 7), _SRC(x, 8), \ _SRC(x, 9), _SRC(x, 10), _SRC(x, 11), _SRC(x, 12), \ _SRC(x,13), _SRC(x, 14), _SRC(x, 15), _SRC(x, 16), \ _SRC(x,17), \ 1, 1, _dst, NULL, NULL, NULL, \ len, coefficients + region, 2, _pf \ ); \ break REMAINING_CASES; #undef CASE default: break; } } else { switch(remaining) { #define CASE(x) \ case x: \ HEDLEY_ASSUME(x < interleave); \ blkmac_pf( \ scratch, x, 1, \ srcEnd, \ _SRC(x, 1), _SRC(x, 2), _SRC(x, 3), _SRC(x, 4), \ _SRC(x, 5), _SRC(x, 6), _SRC(x, 7), _SRC(x, 8), \ _SRC(x, 9), _SRC(x, 10), _SRC(x, 11), _SRC(x, 12), \ _SRC(x,13), _SRC(x, 14), _SRC(x, 15), _SRC(x, 16), \ _SRC(x,17), \ 1, 1, _dst, NULL, NULL, NULL, \ len, coefficients + region, 0, NULL \ ); \ break REMAINING_CASES; #undef CASE default: break; } } #undef _SRC } #endif #define INTERLEAVE_INPUTS(srcEnd, len, interleave, blockLen) \ srcEnd, \ srcEnd + len*interleave*( 1/interleave) + blockLen*( 1%interleave), \ srcEnd + len*interleave*( 2/interleave) + blockLen*( 2%interleave), \ srcEnd + len*interleave*( 3/interleave) + blockLen*( 3%interleave), \ srcEnd + len*interleave*( 4/interleave) + blockLen*( 4%interleave), \ srcEnd + len*interleave*( 5/interleave) + blockLen*( 5%interleave), \ srcEnd + len*interleave*( 6/interleave) + blockLen*( 6%interleave), \ srcEnd + len*interleave*( 7/interleave) + blockLen*( 7%interleave), \ srcEnd + len*interleave*( 8/interleave) + blockLen*( 8%interleave), \ srcEnd + len*interleave*( 9/interleave) + blockLen*( 9%interleave), \ srcEnd + len*interleave*(10/interleave) + blockLen*(10%interleave), \ srcEnd + len*interleave*(11/interleave) + blockLen*(11%interleave), \ srcEnd + len*interleave*(12/interleave) + blockLen*(12%interleave), \ srcEnd + len*interleave*(13/interleave) + blockLen*(13%interleave), \ srcEnd + len*interleave*(14/interleave) + blockLen*(14%interleave), \ srcEnd + len*interleave*(15/interleave) + blockLen*(15%interleave), \ srcEnd + len*interleave*(16/interleave) + blockLen*(16%interleave), \ srcEnd + len*interleave*(17/interleave) + blockLen*(17%interleave) #define CONSECUTIVE_INPUTS(srcEnd, blockLen) \ srcEnd, \ srcEnd + blockLen* 1, \ srcEnd + blockLen* 2, \ srcEnd + blockLen* 3, \ srcEnd + blockLen* 4, \ srcEnd + blockLen* 5, \ srcEnd + blockLen* 6, \ srcEnd + blockLen* 7, \ srcEnd + blockLen* 8, \ srcEnd + blockLen* 9, \ srcEnd + blockLen*10, \ srcEnd + blockLen*11, \ srcEnd + blockLen*12, \ srcEnd + blockLen*13, \ srcEnd + blockLen*14, \ srcEnd + blockLen*15, \ srcEnd + blockLen*16, \ srcEnd + blockLen*17 static HEDLEY_ALWAYS_INLINE void gf16_muladd_multi_packed(const void *HEDLEY_RESTRICT scratch, fBlkmacPF blkmac_pf, const unsigned interleave, unsigned regionsPerCall, unsigned inputPackSize, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, size_t blockLen, const uint16_t *HEDLEY_RESTRICT coefficients) IGNORE_NULL_ADD { ASSUME(regions <= inputPackSize); uint8_t* _dst = (uint8_t*)dst + len; const uint8_t* _src = (const uint8_t*)src; const uint8_t* srcEnd; ASSUME(regionsPerCall % interleave == 0); unsigned region = 0; if(regions >= regionsPerCall) do { srcEnd = _src + region * len + len*interleave; blkmac_pf( scratch, regionsPerCall, interleave, INTERLEAVE_INPUTS(srcEnd, len, interleave, blockLen), 1, 1, _dst, NULL, NULL, NULL, len, coefficients + region, 0, NULL ); region += regionsPerCall; } while(regionsPerCall <= regions - region); unsigned remaining = regions - region; HEDLEY_ASSUME(remaining < regionsPerCall); // doesn't seem to always work, so we have additional checks in the switch cases if(regionsPerCall > interleave && remaining >= interleave) { // latter condition implies the former, but leavel in former for optimisation srcEnd = _src + region * len + len*interleave; regionsPerCall = remaining - (remaining % interleave); switch(regionsPerCall) { #define CASE(x) \ case x: \ blkmac_pf( \ scratch, x, interleave, \ INTERLEAVE_INPUTS(srcEnd, len, interleave, blockLen), \ 1, 1, _dst, NULL, NULL, NULL, \ len, coefficients + region, 0, NULL \ ); \ region += x; \ break REMAINING_CASES; #undef CASE default: HEDLEY_UNREACHABLE(); } remaining %= interleave; } HEDLEY_ASSUME(remaining < interleave); unsigned lastInterleave = inputPackSize - region > interleave ? interleave : inputPackSize - region; switch(remaining) { #define CASE(x) \ case x: \ HEDLEY_ASSUME(x < interleave); \ HEDLEY_ASSUME(x <= lastInterleave); \ srcEnd = _src + region * len + len*lastInterleave; \ blkmac_pf( \ scratch, x, lastInterleave, \ CONSECUTIVE_INPUTS(srcEnd, blockLen), \ 1, 1, _dst, NULL, NULL, NULL, \ len, coefficients + region, 0, NULL \ ); \ break REMAINING_CASES; #undef CASE default: break; } } #if defined(__ICC) || (defined(_MSC_VER) && !defined(__clang__)) || !defined(_MM_HINT_ET1) # define MM_HINT_WT1 _MM_HINT_T1 #else # define MM_HINT_WT1 _MM_HINT_ET1 #endif static HEDLEY_ALWAYS_INLINE void gf16_muladd_multi_packpf(const void *HEDLEY_RESTRICT scratch, fBlkmacPF blkmac_pf, const unsigned interleave, unsigned regionsPerCall, unsigned inputPackSize, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, size_t blockLen, const uint16_t *HEDLEY_RESTRICT coefficients, const unsigned pfFactor, const void* HEDLEY_RESTRICT prefetchIn, const void* HEDLEY_RESTRICT prefetchOut) IGNORE_NULL_ADD { ASSUME(regions <= inputPackSize); uint8_t* _dst = (uint8_t*)dst + len; const uint8_t* _src = (const uint8_t*)src; const uint8_t* srcEnd; unsigned region = 0; size_t pfLen = len>>pfFactor; const char* _pf = (const char*)prefetchOut + pfLen; unsigned outputPfRounds = 1<= regionsPerCall) { while(outputPfRounds--) { srcEnd = _src + region * len + len*interleave; blkmac_pf( scratch, regionsPerCall, interleave, INTERLEAVE_INPUTS(srcEnd, len, interleave, blockLen), 1, 1, _dst, NULL, NULL, NULL, len, coefficients + region, 1, _pf ); region += regionsPerCall; if(outputPfRounds) _pf += pfLen; else _pf = NULL; if(regionsPerCall > regions - region) break; } } if(_pf && regionsPerCall > regions - region) { unsigned remaining = regions - region; if(regionsPerCall > interleave && remaining >= interleave) { srcEnd = _src + region * len + len*interleave; switch(remaining - (remaining % interleave)) { #define CASE(x) \ case x: \ blkmac_pf( \ scratch, x, interleave, \ INTERLEAVE_INPUTS(srcEnd, len, interleave, blockLen), \ 1, 1, _dst, NULL, NULL, NULL, \ len, coefficients + region, 1, _pf \ ); \ region += x; \ break REMAINING_CASES; #undef CASE default: HEDLEY_UNREACHABLE(); } remaining %= interleave; if(--outputPfRounds) _pf += pfLen; else _pf = NULL; } if(_pf) { unsigned lastInterleave = inputPackSize - region > interleave ? interleave : inputPackSize - region; switch(remaining) { #define CASE(x) \ case x: \ HEDLEY_ASSUME(x <= interleave); \ HEDLEY_ASSUME(x <= lastInterleave); \ srcEnd = _src + region * len + len*lastInterleave; \ blkmac_pf( \ scratch, x, lastInterleave, \ CONSECUTIVE_INPUTS(srcEnd, blockLen), \ 1, 1, _dst, NULL, NULL, NULL, \ len, coefficients + region, 1, _pf \ ); \ region += x; \ break REMAINING_CASES; #undef CASE default: break; } return; } // TODO: consider handling prefetchIn? } if(prefetchIn) { _pf = (const char*)prefetchIn + pfLen; while(regionsPerCall <= regions - region) { srcEnd = _src + region * len + len*interleave; blkmac_pf( scratch, regionsPerCall, interleave, INTERLEAVE_INPUTS(srcEnd, len, interleave, blockLen), 1, 1, _dst, NULL, NULL, NULL, len, coefficients + region, 2, _pf ); region += regionsPerCall; _pf += pfLen; } } else while(regionsPerCall <= regions - region) { srcEnd = _src + region * len + len*interleave; blkmac_pf( scratch, regionsPerCall, interleave, INTERLEAVE_INPUTS(srcEnd, len, interleave, blockLen), 1, 1, _dst, NULL, NULL, NULL, len, coefficients + region, 0, NULL ); region += regionsPerCall; } unsigned remaining = regions - region; HEDLEY_ASSUME(remaining < regionsPerCall); if(regionsPerCall > interleave && remaining >= interleave) { srcEnd = _src + region * len + len*interleave; regionsPerCall = remaining - (remaining % interleave); switch(regionsPerCall) { #define CASE(x) \ case x: \ blkmac_pf( \ scratch, x, interleave, \ INTERLEAVE_INPUTS(srcEnd, len, interleave, blockLen), \ 1, 1, _dst, NULL, NULL, NULL, \ len, coefficients + region, 0, NULL \ ); \ region += x; \ break REMAINING_CASES; #undef CASE default: HEDLEY_UNREACHABLE(); } remaining %= interleave; } HEDLEY_ASSUME(remaining < interleave); unsigned lastInterleave = inputPackSize - region > interleave ? interleave : inputPackSize - region; switch(remaining) { #define CASE(x) \ case x: \ HEDLEY_ASSUME(x <= interleave); \ HEDLEY_ASSUME(x <= lastInterleave); \ srcEnd = _src + region * len + len*lastInterleave; \ blkmac_pf( \ scratch, x, lastInterleave, \ CONSECUTIVE_INPUTS(srcEnd, blockLen), \ 1, 1, _dst, NULL, NULL, NULL, \ len, coefficients + region, 0, NULL \ ); \ region += x; \ break REMAINING_CASES; #undef CASE default: break; } } #undef REMAINING_CASES #undef IGNORE_NULL_ADD #undef INTERLEAVE_INPUTS #undef CONSECUTIVE_INPUTS par2cmdline-turbo-1.5.0/parpar/gf16/gf16_neon_common.h000066400000000000000000000112021524160147200223770ustar00rootroot00000000000000#ifndef __GF16_NEON_COMMON_H #define __GF16_NEON_COMMON_H #include "gf16_global.h" #include "../src/platform.h" #if defined(__ARM_NEON) // headers # include # include "gf16_checksum_arm.h" # if defined(_M_ARM64) && !defined(__clang__) /* MSVC header */ # include # endif // V/TBL differences # ifndef __aarch64__ # define vqtbl1q_u8(tbl, v) vcombine_u8(vtbl2_u8(tbl, vget_low_u8(v)), \ vtbl2_u8(tbl, vget_high_u8(v))) typedef uint8x8x2_t qtbl_t; # else typedef uint8x16_t qtbl_t; # endif // aligned loads # if defined(_MSC_VER) && !defined(__clang__) # define vld1_u8_align(p, a) vld1_u8_ex(p, a*8) # define vld1q_u8_align(p, a) vld1q_u8_ex(p, a*8) # define vst1q_u8_align(p, v, a) vst1q_u8_ex(p, v, a*8) # elif defined(__GNUC__) # define vld1_u8_align(p, n) vld1_u8((uint8_t*)__builtin_assume_aligned(p, n)) # define vld1q_u8_align(p, n) vld1q_u8((uint8_t*)__builtin_assume_aligned(p, n)) # define vst1q_u8_align(p, d, n) vst1q_u8((uint8_t*)__builtin_assume_aligned(p, n), d) # else # define vld1_u8_align(p, n) vld1_u8(p) # define vld1q_u8_align(p, n) vld1q_u8(p) # define vst1q_u8_align(p, d, n) vst1q_u8(p) # endif // for compilers that lack these functions // (Clang armv7 crashes with this on versions 9-12) # if (defined(__clang__) && (defined(__aarch64__) || __clang_major__<9 || __clang_major__>12)) || (HEDLEY_GCC_VERSION_CHECK(8,5,0) && defined(__aarch64__)) || HEDLEY_GCC_VERSION_CHECK(14,0,0) # define vld1q_u8_x2_align(p) vld1q_u8_x2((uint8_t*)__builtin_assume_aligned(p, 32)) # define vst1q_u8_x2_align(p, data) vst1q_u8_x2((uint8_t*)__builtin_assume_aligned(p, 32), data) // Clang armv7 always incorrectly assumes 32 byte alignment with these # if !defined(__clang__) || defined(__aarch64__) # define _vld1q_u8_x2 vld1q_u8_x2 # define _vst1q_u8_x2 vst1q_u8_x2 # endif # else static HEDLEY_ALWAYS_INLINE uint8x16x2_t vld1q_u8_x2_align(const uint8_t* p) { uint8x16x2_t r; r.val[0] = vld1q_u8_align(p, 16); r.val[1] = vld1q_u8_align(p+16, 16); return r; } static HEDLEY_ALWAYS_INLINE void vst1q_u8_x2_align(uint8_t* p, uint8x16x2_t data) { vst1q_u8_align(p, data.val[0], 16); vst1q_u8_align(p+16, data.val[1], 16); } # endif # ifndef _vld1q_u8_x2 static HEDLEY_ALWAYS_INLINE uint8x16x2_t _vld1q_u8_x2(const uint8_t* p) { uint8x16x2_t r; r.val[0] = vld1q_u8(p); r.val[1] = vld1q_u8(p+16); return r; } # endif # ifndef _vst1q_u8_x2 static HEDLEY_ALWAYS_INLINE void _vst1q_u8_x2(uint8_t* p, uint8x16x2_t data) { vst1q_u8(p, data.val[0]); vst1q_u8(p+16, data.val[1]); } # endif // ARM provides no standard way to inline define a vector :( static HEDLEY_ALWAYS_INLINE uint8x16_t vmakeq_u8( uint8_t a, uint8_t b, uint8_t c, uint8_t d, uint8_t e, uint8_t f, uint8_t g, uint8_t h, uint8_t i, uint8_t j, uint8_t k, uint8_t l, uint8_t m, uint8_t n, uint8_t o, uint8_t p ) { # if defined(_MSC_VER) || __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ uint8_t t[] = {a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}; return vld1q_u8(t); # else // compilers might reverse the order of the following in big endian, for some reason return (uint8x16_t){a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}; # endif } // cacheline prefetching // CACHELINE_SIZE must be >= 32 # ifdef __aarch64__ # define CACHELINE_SIZE 64 // do all AArch64 processors have cacheline>=64? # else # define CACHELINE_SIZE 32 // Cortex A7? # endif # if defined(_MSC_VER) && !defined(__clang__) # define PREFETCH_MEM(addr, rw) __prefetch(addr) // TODO: ARM64 intrin is a little different # else # define PREFETCH_MEM(addr, rw) __builtin_prefetch(addr, rw, 2) # endif // copying prepare block for both shuffle/clmul static HEDLEY_ALWAYS_INLINE void gf16_prepare_block_neon(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src) { #if defined(__clang__) && !(defined(__aarch64__) || __clang_major__<9 || __clang_major__>12) // slightly more efficent than the latter, if we have the Clang crash workaround in place vst2q_u8((uint8_t*)__builtin_assume_aligned(dst, 32), vld2q_u8((uint8_t*)src)); #else vst1q_u8_x2_align(dst, _vld1q_u8_x2(src)); #endif } // final block static HEDLEY_ALWAYS_INLINE void gf16_prepare_blocku_neon(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t remaining) { memcpy(dst, src, remaining); memset((uint8_t*)dst + remaining, 0, sizeof(uint8x16x2_t) - remaining); } static HEDLEY_ALWAYS_INLINE void gf16_finish_block_neon(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src) { #if defined(__clang__) && !(defined(__aarch64__) || __clang_major__<9 || __clang_major__>12) vst2q_u8((uint8_t*)dst, vld2q_u8((uint8_t*)__builtin_assume_aligned(src, 32))); #else _vst1q_u8_x2(dst, vld1q_u8_x2_align(src)); #endif } #endif #endif par2cmdline-turbo-1.5.0/parpar/gf16/gf16_rvv_common.h000066400000000000000000000014671524160147200222710ustar00rootroot00000000000000#ifndef __GF16_RVV_COMMON_H #define __GF16_RVV_COMMON_H #include "gf16_global.h" #include "../src/platform.h" #if defined(__riscv_vector) # include # if defined(__clang__) && __clang_major__ < 16 # define RV(f) f # else # define RV(f) __riscv_##f # endif // TODO: evaluate endian requirements # if __BYTE_ORDER__ != __ORDER_BIG_ENDIAN__ # define __RVV_LE # endif static HEDLEY_ALWAYS_INLINE vint16m1_t gf16_vec_mul2_rvv(vint16m1_t v) { size_t vl = RV(vsetvlmax_e16m1)(); vbool16_t maskPoly = RV(vmslt_vx_i16m1_b16)(v, 0, vl); v = RV(vadd_vv_i16m1)(v, v, vl); #ifdef __riscv_v_intrinsic return RV(vxor_vx_i16m1_mu) #else return RV(vxor_vx_i16m1_m) #endif ( maskPoly, v, v, GF16_POLYNOMIAL & 0xffff, vl ); } #endif // defined(__riscv_vector) #endif // defined(__GF16_RVV_COMMON_H) par2cmdline-turbo-1.5.0/parpar/gf16/gf16_shuffle.h000066400000000000000000000326161524160147200215400ustar00rootroot00000000000000 #include "../src/hedley.h" // basic #define FUNCS(v) \ void gf16_shuffle_prepare_packed_cksum_##v(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen); \ void gf16_shuffle_prepare_partial_packsum_##v(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen, size_t partOffset, size_t partLen); \ int gf16_shuffle_finish_packed_cksum_##v(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t sliceLen, unsigned numOutputs, unsigned outputNum, size_t chunkLen); \ int gf16_shuffle_finish_partial_packsum_##v(void *HEDLEY_RESTRICT dst, void *HEDLEY_RESTRICT src, size_t sliceLen, unsigned numOutputs, unsigned outputNum, size_t chunkLen, size_t partOffset, size_t partLen); \ void gf16_shuffle_muladd_##v(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch); \ void gf16_shuffle_muladd_prefetch_##v(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch, const void *HEDLEY_RESTRICT prefetch); \ extern int gf16_shuffle_available_##v FUNCS(ssse3); FUNCS(avx); FUNCS(avx2); FUNCS(avx512); #undef FUNCS #ifdef PARPAR_INVERT_SUPPORT #define FUNCS(v) \ void gf16_shuffle_prepare_##v(void* dst, const void* src, size_t srcLen); \ void gf16_shuffle_finish_##v(void *HEDLEY_RESTRICT dst, size_t len); \ void gf16_shuffle_mul_##v(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) FUNCS(ssse3); FUNCS(avx); FUNCS(avx2); FUNCS(avx512); #undef FUNCS #endif #ifdef PARPAR_INCLUDE_BASIC_OPS #define FUNCS(v) \ void gf16_shuffle_prepare_packed_##v(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen); \ void gf16_shuffle_finish_packed_##v(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t sliceLen, unsigned numOutputs, unsigned outputNum, size_t chunkLen) FUNCS(ssse3); FUNCS(avx); FUNCS(avx2); FUNCS(avx512); #undef FUNCS #endif // multi-region #define FUNCS(v) \ void gf16_shuffle_muladd_multi_packed_##v(const void *HEDLEY_RESTRICT scratch, unsigned packRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch); \ void gf16_shuffle_muladd_multi_packpf_##v(const void *HEDLEY_RESTRICT scratch, unsigned packRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch, const void* HEDLEY_RESTRICT prefetchIn, const void* HEDLEY_RESTRICT prefetchOut) FUNCS(avx512); FUNCS(vbmi); FUNCS(neon); FUNCS(128_sve); FUNCS(128_sve2); FUNCS(512_sve2); FUNCS(128_rvv); #undef FUNCS #ifdef PARPAR_INVERT_SUPPORT #define FUNCS(v) \ void gf16_shuffle_muladd_multi_##v(const void *HEDLEY_RESTRICT scratch, unsigned regions, size_t offset, void *HEDLEY_RESTRICT dst, const void* const*HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch); \ void gf16_shuffle_muladd_multi_stridepf_##v(const void *HEDLEY_RESTRICT scratch, unsigned regions, size_t srcStride, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch, const void* HEDLEY_RESTRICT prefetch) FUNCS(avx512); FUNCS(vbmi); FUNCS(neon); FUNCS(128_sve); FUNCS(128_sve2); FUNCS(512_sve2); FUNCS(128_rvv); #undef FUNCS #endif void gf16_shuffle_muladd_vbmi(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch); void gf16_shuffle_muladd_prefetch_vbmi(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch, const void *HEDLEY_RESTRICT prefetch); extern int gf16_shuffle_available_vbmi; #define FUNCS(v) \ void gf16_shuffle_muladd_##v(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) FUNCS(neon); FUNCS(128_sve); FUNCS(128_sve2); FUNCS(512_sve2); FUNCS(128_rvv); #undef FUNCS #ifdef PARPAR_INVERT_SUPPORT #define FUNCS(v) \ void gf16_shuffle_mul_##v(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) FUNCS(neon); FUNCS(128_sve); FUNCS(128_sve2); FUNCS(512_sve2); FUNCS(128_rvv); FUNCS(vbmi); #undef FUNCS #endif #ifdef PARPAR_INCLUDE_BASIC_OPS #define FUNCS(v) \ void gf16_shuffle_prepare_packed_##v(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen); \ void gf16_shuffle_prepare_packed_cksum_##v(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen); \ void gf16_shuffle_prepare_partial_packsum_##v(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen, size_t partOffset, size_t partLen) #else #define FUNCS(v) \ void gf16_shuffle_prepare_packed_cksum_##v(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen); \ void gf16_shuffle_prepare_partial_packsum_##v(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen, size_t partOffset, size_t partLen) #endif FUNCS(vbmi); FUNCS(neon); FUNCS(sve); FUNCS(512_sve2); FUNCS(rvv); #undef FUNCS #define FUNCS(v) \ int gf16_shuffle_finish_packed_cksum_##v(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t sliceLen, unsigned numOutputs, unsigned outputNum, size_t chunkLen); \ int gf16_shuffle_finish_partial_packsum_##v(void *HEDLEY_RESTRICT dst, void *HEDLEY_RESTRICT src, size_t sliceLen, unsigned numOutputs, unsigned outputNum, size_t chunkLen, size_t partOffset, size_t partLen) FUNCS(neon); FUNCS(sve); FUNCS(rvv); #undef FUNCS #ifdef PARPAR_INCLUDE_BASIC_OPS #define FUNCS(v) \ void gf16_shuffle_finish_packed_##v(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t sliceLen, unsigned numOutputs, unsigned outputNum, size_t chunkLen) FUNCS(neon); FUNCS(sve); FUNCS(rvv); #undef FUNCS #endif // also used for clmul, but declared here for convenience extern int gf16_available_neon; extern int gf16_available_sve; extern int gf16_available_sve2; extern int gf16_available_rvv; // shuffle2x #define FUNCS(v) \ void gf16_shuffle2x_prepare_packed_cksum_##v(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen); \ void gf16_shuffle2x_prepare_partial_packsum_##v(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen, size_t partOffset, size_t partLen); \ int gf16_shuffle2x_finish_packed_cksum_##v(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t sliceLen, unsigned numOutputs, unsigned outputNum, size_t chunkLen); \ int gf16_shuffle2x_finish_partial_packsum_##v(void *HEDLEY_RESTRICT dst, void *HEDLEY_RESTRICT src, size_t sliceLen, unsigned numOutputs, unsigned outputNum, size_t chunkLen, size_t partOffset, size_t partLen); \ void gf16_shuffle2x_muladd_##v(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch); \ void gf16_shuffle2x_muladd_multi_packed_##v(const void *HEDLEY_RESTRICT scratch, unsigned packRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch); \ void gf16_shuffle2x_muladd_multi_packpf_##v(const void *HEDLEY_RESTRICT scratch, unsigned packRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch, const void* HEDLEY_RESTRICT prefetchIn, const void* HEDLEY_RESTRICT prefetchOut) FUNCS(avx2); FUNCS(avx512); #undef FUNCS #ifdef PARPAR_INVERT_SUPPORT #define FUNCS(v) \ void gf16_shuffle2x_mul_##v(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch); \ void gf16_shuffle2x_prepare_##v(void* dst, const void* src, size_t srcLen); \ void gf16_shuffle2x_finish_##v(void *HEDLEY_RESTRICT dst, size_t len); \ void gf16_shuffle2x_muladd_multi_##v(const void *HEDLEY_RESTRICT scratch, unsigned regions, size_t offset, void *HEDLEY_RESTRICT dst, const void* const*HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch); \ void gf16_shuffle2x_muladd_multi_stridepf_##v(const void *HEDLEY_RESTRICT scratch, unsigned regions, size_t srcStride, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch, const void* HEDLEY_RESTRICT prefetch) FUNCS(avx2); FUNCS(avx512); #undef FUNCS #endif #ifdef PARPAR_INCLUDE_BASIC_OPS #define FUNCS(v) \ void gf16_shuffle2x_prepare_packed_##v(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen); \ void gf16_shuffle2x_finish_packed_##v(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t sliceLen, unsigned numOutputs, unsigned outputNum, size_t chunkLen) FUNCS(avx2); FUNCS(avx512); FUNCS(sve); #undef FUNCS #endif void gf16_shuffle2x_prepare_packed_cksum_sve(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen); void gf16_shuffle2x_prepare_partial_packsum_sve(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen, size_t partOffset, size_t partLen); int gf16_shuffle2x_finish_packed_cksum_sve(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t sliceLen, unsigned numOutputs, unsigned outputNum, size_t chunkLen); int gf16_shuffle2x_finish_partial_packsum_sve(void *HEDLEY_RESTRICT dst, void *HEDLEY_RESTRICT src, size_t sliceLen, unsigned numOutputs, unsigned outputNum, size_t chunkLen, size_t partOffset, size_t partLen); void gf16_shuffle2x_muladd_128_sve2(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch); void gf16_shuffle2x_muladd_multi_packed_128_sve2(const void *HEDLEY_RESTRICT scratch, unsigned packRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch); void gf16_shuffle2x_muladd_multi_packpf_128_sve2(const void *HEDLEY_RESTRICT scratch, unsigned packRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch, const void* HEDLEY_RESTRICT prefetchIn, const void* HEDLEY_RESTRICT prefetchOut); #ifdef PARPAR_INVERT_SUPPORT void gf16_shuffle2x_mul_128_sve2(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch); void gf16_shuffle2x_muladd_multi_128_sve2(const void *HEDLEY_RESTRICT scratch, unsigned regions, size_t offset, void *HEDLEY_RESTRICT dst, const void* const*HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch); void gf16_shuffle2x_muladd_multi_stridepf_128_sve2(const void *HEDLEY_RESTRICT scratch, unsigned regions, size_t srcStride, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch, const void* HEDLEY_RESTRICT prefetch); #endif void* gf16_shuffle_init_x86(int polynomial); void* gf16_shuffle_init_vbmi(int polynomial); void* gf16_shuffle_init_arm(int polynomial); void* gf16_shuffle_init_128_sve(int polynomial); void* gf16_shuffle_init_512_sve(int polynomial); void* gf16_shuffle_init_128_rvv(int polynomial); int gf16_sve_get_size(); int gf16_rvv_get_size(); #ifdef PARPAR_INVERT_SUPPORT uint16_t gf16_affine2x_replace_word(void* data, size_t index, uint16_t newValue); uint16_t gf16_shuffle16_replace_word(void* data, size_t index, uint16_t newValue); uint16_t gf16_shuffle32_replace_word(void* data, size_t index, uint16_t newValue); uint16_t gf16_shuffle64_replace_word(void* data, size_t index, uint16_t newValue); uint16_t gf16_shuffle2x16_replace_word(void* data, size_t index, uint16_t newValue); uint16_t gf16_shuffle2x32_replace_word(void* data, size_t index, uint16_t newValue); #endif par2cmdline-turbo-1.5.0/parpar/gf16/gf16_shuffle128_rvv.c000066400000000000000000000237511524160147200226630ustar00rootroot00000000000000#include "gf16_rvv_common.h" #if defined(__RVV_LE) int gf16_available_rvv = 1; #else int gf16_available_rvv = 0; #endif #include "gf16_muladd_multi.h" #if defined(__RVV_LE) # if defined(__riscv_v_intrinsic) && __riscv_v_intrinsic >= 12000 // intrinsics v0.12.x static HEDLEY_ALWAYS_INLINE void _vlseg2e8(vuint8m1_t* v0, vuint8m1_t* v1, const uint8_t* src, size_t vl) { vuint8m1x2_t d = RV(vlseg2e8_v_u8m1x2)(src, vl); *v0 = RV(vget_v_u8m1x2_u8m1)(d, 0); *v1 = RV(vget_v_u8m1x2_u8m1)(d, 1); } static HEDLEY_ALWAYS_INLINE void _vsseg2e8(uint8_t* dst, vuint8m1_t v0, vuint8m1_t v1, size_t vl) { vuint8m1x2_t d = {}; // __riscv_vcreate_v_u8m1x2 missing in Clang 17 d = RV(vset_v_u8m1_u8m1x2)(d, 0, v0); d = RV(vset_v_u8m1_u8m1x2)(d, 1, v1); RV(vsseg2e8_v_u8m1x2)(dst, d, vl); } # else // intrinsics v0.11.x (up to at least GCC 13 / Clang 16) # define _vlseg2e8 RV(vlseg2e8_v_u8m1) # define _vsseg2e8 RV(vsseg2e8_v_u8m1) # endif static HEDLEY_ALWAYS_INLINE void gf16_shuffle_128_rvv_calc_table(vuint8m1_t poly_l, uint16_t val, vuint8m1_t* tbl_l0, vuint8m1_t* tbl_l1, vuint8m1_t* tbl_l2, vuint8m1_t* tbl_l3, vuint8m1_t* tbl_h0, vuint8m1_t* tbl_h1, vuint8m1_t* tbl_h2, vuint8m1_t* tbl_h3 ) { uint16_t val2 = GF16_MULTBY_TWO(val); uint16_t val4 = GF16_MULTBY_TWO(val2); uint16_t val8 = GF16_MULTBY_TWO(val4); vuint16m1_t tmp0 = RV(vmv_v_x_u16m1)(val ^ val2, 8); tmp0 = RV(vslide1up_vx_u16m1)(tmp0, val2, 8); tmp0 = RV(vslide1up_vx_u16m1)(tmp0, val, 8); tmp0 = RV(vslide1up_vx_u16m1)(tmp0, 0, 8); vuint16m1_t tmp4 = RV(vxor_vv_u16m1)(RV(vmv_v_x_u16m1)(val4, 8), tmp0, 8); tmp0 = RV(vslideup_vx_u16m1)(tmp0, tmp4, 4, 8); vuint16m1_t tmp8 = RV(vxor_vv_u16m1)(tmp0, RV(vmv_v_x_u16m1)(val8, 8), 8); vuint8mf2_t tmpL0, tmpL1, tmpH0, tmpH1; tmpL0 = RV(vnsrl_wx_u8mf2)(tmp0, 0, 8); tmpL1 = RV(vnsrl_wx_u8mf2)(tmp8, 0, 8); tmpH0 = RV(vnsrl_wx_u8mf2)(tmp0, 8, 8); tmpH1 = RV(vnsrl_wx_u8mf2)(tmp8, 8, 8); *tbl_l0 = RV(vslideup_vx_u8m1)(RV(vlmul_ext_v_u8mf2_u8m1)(tmpL0), RV(vlmul_ext_v_u8mf2_u8m1)(tmpL1), 8, 16); *tbl_h0 = RV(vslideup_vx_u8m1)(RV(vlmul_ext_v_u8mf2_u8m1)(tmpH0), RV(vlmul_ext_v_u8mf2_u8m1)(tmpH1), 8, 16); vuint8m1_t ri, rh, rl; // could replace the sll+or with a macc, but probably not worth it #define MUL16(p, c) \ ri = RV(vsrl_vx_u8m1)(*tbl_h##p, 4, 16); \ rl = RV(vsll_vx_u8m1)(*tbl_l##p, 4, 16); \ rh = RV(vxor_vv_u8m1)(*tbl_h##p, ri, 16); \ *tbl_l##c = RV(vxor_vv_u8m1)(rl, RV(vrgather_vv_u8m1)(poly_l, ri, 16), 16); \ *tbl_h##c = RV(vor_vv_u8m1)( \ RV(vsll_vx_u8m1)(rh, 4, 16), \ RV(vsrl_vx_u8m1)(*tbl_l##p, 4, 16), \ 16 \ ) MUL16(0, 1); MUL16(1, 2); MUL16(2, 3); #undef MUL16 } static HEDLEY_ALWAYS_INLINE void gf16_shuffle_128_rvv_round(size_t vl, vuint8m1_t src0, vuint8m1_t src1, vuint8m1_t* rl, vuint8m1_t* rh, vuint8m1_t tbl_l0, vuint8m1_t tbl_l1, vuint8m1_t tbl_l2, vuint8m1_t tbl_l3, vuint8m1_t tbl_h0, vuint8m1_t tbl_h1, vuint8m1_t tbl_h2, vuint8m1_t tbl_h3 ) { vuint8m1_t tmp = RV(vand_vx_u8m1)(src0, 0xf, vl); *rl = RV(vxor_vv_u8m1)(*rl, RV(vrgather_vv_u8m1)(tbl_l0, tmp, vl), vl); *rh = RV(vxor_vv_u8m1)(*rh, RV(vrgather_vv_u8m1)(tbl_h0, tmp, vl), vl); tmp = RV(vand_vx_u8m1)(src1, 0xf, vl); *rl = RV(vxor_vv_u8m1)(*rl, RV(vrgather_vv_u8m1)(tbl_l2, tmp, vl), vl); *rh = RV(vxor_vv_u8m1)(*rh, RV(vrgather_vv_u8m1)(tbl_h2, tmp, vl), vl); tmp = RV(vsrl_vx_u8m1)(src0, 4, vl); *rl = RV(vxor_vv_u8m1)(*rl, RV(vrgather_vv_u8m1)(tbl_l1, tmp, vl), vl); *rh = RV(vxor_vv_u8m1)(*rh, RV(vrgather_vv_u8m1)(tbl_h1, tmp, vl), vl); tmp = RV(vsrl_vx_u8m1)(src1, 4, vl); *rl = RV(vxor_vv_u8m1)(*rl, RV(vrgather_vv_u8m1)(tbl_l3, tmp, vl), vl); *rh = RV(vxor_vv_u8m1)(*rh, RV(vrgather_vv_u8m1)(tbl_h3, tmp, vl), vl); } static HEDLEY_ALWAYS_INLINE void gf16_shuffle_muladd_x_128_rvv( const void *HEDLEY_RESTRICT scratch, GF16_BLKMAC_SRCDSTLIST, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, const int doPrefetch, const char* _pf ) { GF16_BLKMAC_SRCDST_UNUSED(3, 1); vuint8m1_t poly_l = RV(vle8_v_u8m1)((const uint8_t*)scratch, 16); vuint8m1_t tbl_Ah0, tbl_Ah1, tbl_Ah2, tbl_Ah3, tbl_Al0, tbl_Al1, tbl_Al2, tbl_Al3; vuint8m1_t tbl_Bh0, tbl_Bh1, tbl_Bh2, tbl_Bh3, tbl_Bl0, tbl_Bl1, tbl_Bl2, tbl_Bl3; vuint8m1_t tbl_Ch0, tbl_Ch1, tbl_Ch2, tbl_Ch3, tbl_Cl0, tbl_Cl1, tbl_Cl2, tbl_Cl3; // TODO: support calcing multiple tables together #define CALC_TABLE(n, t) \ if(srcCount >= n) \ gf16_shuffle_128_rvv_calc_table( \ poly_l, coefficients[n], \ &tbl_##t##l0, &tbl_##t##l1, &tbl_##t##l2, &tbl_##t##l3, &tbl_##t##h0, &tbl_##t##h1, &tbl_##t##h2, &tbl_##t##h3 \ ) CALC_TABLE(0, A); CALC_TABLE(1, B); CALC_TABLE(2, C); #undef CALC_TABLE size_t vl = RV(vsetvlmax_e8m1)(); for(intptr_t ptr = -(intptr_t)len; ptr; ptr += vl*2) { // TODO: does RISC-V have prefetch instructions? UNUSED(doPrefetch); UNUSED(_pf); vuint8m1_t rl, rh; _vlseg2e8(&rl, &rh, _dst1+ptr*dstScale, vl); vuint8m1_t in0, in1; _vlseg2e8(&in0, &in1, _src1+ptr*srcScale, vl); gf16_shuffle_128_rvv_round(vl, in0, in1, &rl, &rh, tbl_Al0, tbl_Al1, tbl_Al2, tbl_Al3, tbl_Ah0, tbl_Ah1, tbl_Ah2, tbl_Ah3); if(srcCount > 1) { _vlseg2e8(&in0, &in1, _src2+ptr*srcScale, vl); gf16_shuffle_128_rvv_round(vl, in0, in1, &rl, &rh, tbl_Bl0, tbl_Bl1, tbl_Bl2, tbl_Bl3, tbl_Bh0, tbl_Bh1, tbl_Bh2, tbl_Bh3); } if(srcCount > 2) { _vlseg2e8(&in0, &in1, _src3+ptr*srcScale, vl); gf16_shuffle_128_rvv_round(vl, in0, in1, &rl, &rh, tbl_Cl0, tbl_Cl1, tbl_Cl2, tbl_Cl3, tbl_Ch0, tbl_Ch1, tbl_Ch2, tbl_Ch3); } _vsseg2e8(_dst1+ptr*dstScale, rl, rh, vl); } } #endif /*defined(__RVV_LE)*/ #ifdef PARPAR_INVERT_SUPPORT void gf16_shuffle_mul_128_rvv(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t val, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #if defined(__RVV_LE) vuint8m1_t poly_l = RV(vle8_v_u8m1)((const uint8_t*)scratch, 16); vuint8m1_t tbl_h0, tbl_h1, tbl_h2, tbl_h3, tbl_l0, tbl_l1, tbl_l2, tbl_l3; gf16_shuffle_128_rvv_calc_table(poly_l, val, &tbl_l0, &tbl_l1, &tbl_l2, &tbl_l3, &tbl_h0, &tbl_h1, &tbl_h2, &tbl_h3); const uint8_t* _src = (const uint8_t*)src + len; uint8_t* _dst = (uint8_t*)dst + len; size_t vl = RV(vsetvlmax_e8m1)(); for(intptr_t ptr = -(intptr_t)len; ptr; ptr += vl*2) { vuint8m1_t in0, in1; _vlseg2e8(&in0, &in1, _src+ptr, vl); vuint8m1_t tmp = RV(vand_vx_u8m1)(in0, 0xf, vl); vuint8m1_t rl = RV(vrgather_vv_u8m1)(tbl_l0, tmp, vl); vuint8m1_t rh = RV(vrgather_vv_u8m1)(tbl_h0, tmp, vl); tmp = RV(vand_vx_u8m1)(in1, 0xf, vl); rl = RV(vxor_vv_u8m1)(rl, RV(vrgather_vv_u8m1)(tbl_l2, tmp, vl), vl); rh = RV(vxor_vv_u8m1)(rh, RV(vrgather_vv_u8m1)(tbl_h2, tmp, vl), vl); tmp = RV(vsrl_vx_u8m1)(in0, 4, vl); rl = RV(vxor_vv_u8m1)(rl, RV(vrgather_vv_u8m1)(tbl_l1, tmp, vl), vl); rh = RV(vxor_vv_u8m1)(rh, RV(vrgather_vv_u8m1)(tbl_h1, tmp, vl), vl); tmp = RV(vsrl_vx_u8m1)(in1, 4, vl); rl = RV(vxor_vv_u8m1)(rl, RV(vrgather_vv_u8m1)(tbl_l3, tmp, vl), vl); rh = RV(vxor_vv_u8m1)(rh, RV(vrgather_vv_u8m1)(tbl_h3, tmp, vl), vl); _vsseg2e8(_dst+ptr, rl, rh, vl); } #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(val); #endif } #endif void gf16_shuffle_muladd_128_rvv(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t val, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #if defined(__RVV_LE) gf16_muladd_single(scratch, gf16_shuffle_muladd_x_128_rvv, dst, src, len, val); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(val); #endif } #if defined(__RVV_LE) GF16_MULADD_MULTI_FUNCS(gf16_shuffle, _128_rvv, gf16_shuffle_muladd_x_128_rvv, 3, RV(vsetvlmax_e8m1)()*2, 0, (void)0) #else GF16_MULADD_MULTI_FUNCS_STUB(gf16_shuffle, _128_rvv) #endif #ifdef __RVV_LE static HEDLEY_ALWAYS_INLINE void gf16_prepare_block_rvv(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src) { size_t vl = RV(vsetvlmax_e8m2)(); RV(vse8_v_u8m2)((uint8_t*)dst, RV(vle8_v_u8m2)((const uint8_t*)src, vl), vl); } // final block static HEDLEY_ALWAYS_INLINE void gf16_prepare_blocku_rvv(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t remaining) { size_t vlmax = RV(vsetvlmax_e8m2)(); vuint8m2_t v = RV(vmv_v_x_u8m2)(0, vlmax); size_t vl = RV(vsetvl_e8m2)(remaining); #ifdef __riscv_v_intrinsic v = RV(vle8_v_u8m2_tu)(v, (const uint8_t*)src, vl); RV(vse8_v_u8m2)((uint8_t*)dst, v, vlmax); #else // tail-undisturbed not supported, so zero explicitly as a workaround RV(vse8_v_u8m2)((uint8_t*)dst, v, vlmax); RV(vse8_v_u8m2)((uint8_t*)dst, RV(vle8_v_u8m2)((const uint8_t*)src, vl), vl); #endif } static HEDLEY_ALWAYS_INLINE void gf16_finish_blocku_rvv(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t remaining) { size_t vl = RV(vsetvl_e8m2)(remaining); RV(vse8_v_u8m2)((uint8_t*)dst, RV(vle8_v_u8m2)((const uint8_t*)src, vl), vl); } #include "gf16_checksum_rvv.h" // TODO: should align be width of the vector, instead of 16? GF_PREPARE_PACKED_FUNCS(gf16_shuffle, _rvv, RV(vsetvlmax_e8m1)()*2, gf16_prepare_block_rvv, gf16_prepare_blocku_rvv, 3, (void)0, vuint16m1_t checksum = RV(vmv_v_x_u16m1)(0, RV(vsetvlmax_e16m1)()), gf16_checksum_block_rvv, gf16_checksum_blocku_rvv, gf16_checksum_exp_rvv, gf16_checksum_prepare_rvv, 16) GF_FINISH_PACKED_FUNCS(gf16_shuffle, _rvv, RV(vsetvlmax_e8m1)()*2, gf16_prepare_block_rvv, gf16_finish_blocku_rvv, 1, (void)0, gf16_checksum_block_rvv, gf16_checksum_blocku_rvv, gf16_checksum_exp_rvv, NULL, 16) #else GF_PREPARE_PACKED_FUNCS_STUB(gf16_shuffle, _rvv) GF_FINISH_PACKED_FUNCS_STUB(gf16_shuffle, _rvv) #endif int gf16_rvv_get_size() { #ifdef __RVV_LE return RV(vsetvlmax_e8m1)(); #else return 0; #endif } void* gf16_shuffle_init_128_rvv(int polynomial) { #ifdef __RVV_LE uint8_t* ret; if((polynomial | 0x1f) != 0x1101f) return NULL; ALIGN_ALLOC(ret, 16, 16); for(int i=0; i<16; i++) { int p = 0; if(i & 8) p ^= polynomial << 3; if(i & 4) p ^= polynomial << 2; if(i & 2) p ^= polynomial << 1; if(i & 1) p ^= polynomial << 0; ret[i] = p & 0xff; } return ret; #else UNUSED(polynomial); return NULL; #endif } par2cmdline-turbo-1.5.0/parpar/gf16/gf16_shuffle128_sve.c000066400000000000000000000112471524160147200226400ustar00rootroot00000000000000 #include "gf16_sve_common.h" // only support our target polynomial #if defined(__ARM_FEATURE_SVE) && (GF16_POLYNOMIAL | 0x1f) == 0x1101f && __BYTE_ORDER__ != __ORDER_BIG_ENDIAN__ int gf16_available_sve = 1; #else int gf16_available_sve = 0; #endif #if defined(__ARM_FEATURE_SVE) static HEDLEY_ALWAYS_INLINE void gf16_shuffle128_sve_mul16_tables(svuint8_t polyIn, svuint64_t rl, svuint64_t rh, svuint8_t* tbl_l0, svuint8_t* tbl_l1, svuint8_t* tbl_l2, svuint8_t* tbl_l3, svuint8_t* tbl_h0, svuint8_t* tbl_h1, svuint8_t* tbl_h2, svuint8_t* tbl_h3 ) { *tbl_l0 = svtrn1_u8(svreinterpret_u8_u64(rl), svreinterpret_u8_u64(rh)); *tbl_h0 = svtrn2_u8(svreinterpret_u8_u64(rl), svreinterpret_u8_u64(rh)); svuint8_t ti, th, tl; #define MUL16(p, c) \ ti = NOMASK(svlsr_n_u8, *tbl_h##p, 4); \ tl = NOMASK(svlsl_n_u8, *tbl_l##p, 4); \ th = NOMASK(sveor_u8, *tbl_h##p, ti); \ th = NOMASK(svlsl_n_u8, th, 4); \ *tbl_h##c = NOMASK(svorr_u8, th, NOMASK(svlsr_n_u8, *tbl_l##p, 4)); \ *tbl_l##c = NOMASK(sveor_u8, tl, svtbl_u8(polyIn, ti)) MUL16(0, 1); MUL16(1, 2); MUL16(2, 3); #undef MUL16 } static HEDLEY_ALWAYS_INLINE void gf16_shuffle128_sve_round1(svuint8x2_t va, svuint8_t* rl, svuint8_t* rh, svuint8_t tbl_l0, svuint8_t tbl_l1, svuint8_t tbl_l2, svuint8_t tbl_l3, svuint8_t tbl_h0, svuint8_t tbl_h1, svuint8_t tbl_h2, svuint8_t tbl_h3 ) { svuint8_t tmp = NOMASK(svand_n_u8, svget2_u8(va, 0), 0xf); *rl = svtbl_u8(tbl_l0, tmp); *rh = svtbl_u8(tbl_h0, tmp); tmp = NOMASK(svand_n_u8, svget2_u8(va, 1), 0xf); *rl = NOMASK(sveor_u8, *rl, svtbl_u8(tbl_l2, tmp)); *rh = NOMASK(sveor_u8, *rh, svtbl_u8(tbl_h2, tmp)); tmp = NOMASK(svlsr_n_u8, svget2_u8(va, 0), 4); *rl = NOMASK(sveor_u8, *rl, svtbl_u8(tbl_l1, tmp)); *rh = NOMASK(sveor_u8, *rh, svtbl_u8(tbl_h1, tmp)); tmp = NOMASK(svlsr_n_u8, svget2_u8(va, 1), 4); *rl = NOMASK(sveor_u8, *rl, svtbl_u8(tbl_l3, tmp)); *rh = NOMASK(sveor_u8, *rh, svtbl_u8(tbl_h3, tmp)); } static HEDLEY_ALWAYS_INLINE void gf16_shuffle128_sve_round(svuint8x2_t va, svuint8_t* rl, svuint8_t* rh, svuint8_t tbl_l0, svuint8_t tbl_l1, svuint8_t tbl_l2, svuint8_t tbl_l3, svuint8_t tbl_h0, svuint8_t tbl_h1, svuint8_t tbl_h2, svuint8_t tbl_h3 ) { svuint8_t tmp = NOMASK(svand_n_u8, svget2_u8(va, 0), 0xf); *rl = NOMASK(sveor_u8, *rl, svtbl_u8(tbl_l0, tmp)); *rh = NOMASK(sveor_u8, *rh, svtbl_u8(tbl_h0, tmp)); tmp = NOMASK(svand_n_u8, svget2_u8(va, 1), 0xf); *rl = NOMASK(sveor_u8, *rl, svtbl_u8(tbl_l2, tmp)); *rh = NOMASK(sveor_u8, *rh, svtbl_u8(tbl_h2, tmp)); tmp = NOMASK(svlsr_n_u8, svget2_u8(va, 0), 4); *rl = NOMASK(sveor_u8, *rl, svtbl_u8(tbl_l1, tmp)); *rh = NOMASK(sveor_u8, *rh, svtbl_u8(tbl_h1, tmp)); tmp = NOMASK(svlsr_n_u8, svget2_u8(va, 1), 4); *rl = NOMASK(sveor_u8, *rl, svtbl_u8(tbl_l3, tmp)); *rh = NOMASK(sveor_u8, *rh, svtbl_u8(tbl_h3, tmp)); } #define _AVAILABLE #endif /*defined(__ARM_FEATURE_SVE)*/ #define SVE_CALC_TABLE_MUL16(...) gf16_shuffle128_sve_mul16_tables(poly, __VA_ARGS__) #define SVE_CALC_TABLE_LOAD_SCRATCH(s) svuint8_t poly = svld1rq_u8(svptrue_b8(), s) #define SVE_ROUND1 gf16_shuffle128_sve_round1 #define SVE_ROUND gf16_shuffle128_sve_round #define _FNSUFFIX _128_sve #include "gf16_shuffle128_sve_common.h" #undef _FNSUFFIX #undef SVE_ROUND #undef SVE_ROUND1 #undef SVE_CALC_TABLE_LOAD_SCRATCH #undef SVE_CALC_TABLE_MUL16 #ifdef _AVAILABLE #undef _AVAILABLE #endif #if defined(__ARM_FEATURE_SVE) GF16_MULADD_MULTI_FUNCS(gf16_shuffle, _128_sve, gf16_shuffle_muladd_x_128_sve, 3, svcntb()*2, 0, (void)0) #else GF16_MULADD_MULTI_FUNCS_STUB(gf16_shuffle, _128_sve) #endif // checksum stuff #include "gf16_checksum_sve.h" #ifdef __ARM_FEATURE_SVE GF_PREPARE_PACKED_FUNCS(gf16_shuffle, _sve, svcntb()*2, gf16_prepare_block_sve, gf16_prepare_blocku_sve, 3, (void)0, svint16_t checksum = svdup_n_s16(0), gf16_checksum_block_sve, gf16_checksum_blocku_sve, gf16_checksum_exp_sve, gf16_checksum_prepare_sve, 16) GF_FINISH_PACKED_FUNCS(gf16_shuffle, _sve, svcntb()*2, gf16_prepare_block_sve, gf16_finish_blocku_sve, 1, (void)0, gf16_checksum_block_sve, gf16_checksum_blocku_sve, gf16_checksum_exp_sve, NULL, 16) #else GF_PREPARE_PACKED_FUNCS_STUB(gf16_shuffle, _sve) GF_FINISH_PACKED_FUNCS_STUB(gf16_shuffle, _sve) #endif int gf16_sve_get_size() { #ifdef __ARM_FEATURE_SVE return svcntb(); #else return 0; #endif } void* gf16_shuffle_init_128_sve(int polynomial) { #ifdef __ARM_FEATURE_SVE uint8_t* ret; if((polynomial | 0x1f) != 0x1101f) return NULL; ALIGN_ALLOC(ret, svcntb(), 16); for(int i=0; i<16; i++) { int p = 0; if(i & 8) p ^= polynomial << 3; if(i & 4) p ^= polynomial << 2; if(i & 2) p ^= polynomial << 1; if(i & 1) p ^= polynomial << 0; ret[i] = p & 0xff; } return ret; #else UNUSED(polynomial); return NULL; #endif } par2cmdline-turbo-1.5.0/parpar/gf16/gf16_shuffle128_sve2.c000066400000000000000000000062361524160147200227240ustar00rootroot00000000000000 #include "gf16_sve_common.h" // only support our target polynomial #if defined(__ARM_FEATURE_SVE2) && (GF16_POLYNOMIAL | 0x1f) == 0x1101f && __BYTE_ORDER__ != __ORDER_BIG_ENDIAN__ int gf16_available_sve2 = 1; #else int gf16_available_sve2 = 0; #endif #if defined(__ARM_FEATURE_SVE2) static HEDLEY_ALWAYS_INLINE void gf16_shuffle128_sve2_mul16_tables(svuint64_t rl, svuint64_t rh, svuint8_t* tbl_l0, svuint8_t* tbl_l1, svuint8_t* tbl_l2, svuint8_t* tbl_l3, svuint8_t* tbl_h0, svuint8_t* tbl_h1, svuint8_t* tbl_h2, svuint8_t* tbl_h3 ) { *tbl_l0 = svtrn1_u8(svreinterpret_u8_u64(rl), svreinterpret_u8_u64(rh)); *tbl_h0 = svtrn2_u8(svreinterpret_u8_u64(rl), svreinterpret_u8_u64(rh)); svuint8_t ti, th, tl; #define MUL16(p, c) \ ti = NOMASK(svlsr_n_u8, *tbl_h##p, 4); \ tl = NOMASK(svlsl_n_u8, *tbl_l##p, 4); \ th = svxar_n_u8(*tbl_h##p, ti, 4); \ *tbl_h##c = svsri_n_u8(th, *tbl_l##p, 4); \ *tbl_l##c = NOMASK(sveor_u8, tl, svpmul_n_u8(ti, GF16_POLYNOMIAL & 0x1f)) MUL16(0, 1); MUL16(1, 2); MUL16(2, 3); #undef MUL16 } static HEDLEY_ALWAYS_INLINE void gf16_shuffle128_sve2_round1(svuint8x2_t va, svuint8_t* rl, svuint8_t* rh, svuint8_t tbl_l0, svuint8_t tbl_l1, svuint8_t tbl_l2, svuint8_t tbl_l3, svuint8_t tbl_h0, svuint8_t tbl_h1, svuint8_t tbl_h2, svuint8_t tbl_h3 ) { svuint8_t tmp1 = NOMASK(svand_n_u8, svget2_u8(va, 0), 0xf); svuint8_t tmp2 = NOMASK(svlsr_n_u8, svget2_u8(va, 0), 4); *rl = NOMASK(sveor_u8, svtbl_u8(tbl_l0, tmp1), svtbl_u8(tbl_l1, tmp2)); *rh = NOMASK(sveor_u8, svtbl_u8(tbl_h0, tmp1), svtbl_u8(tbl_h1, tmp2)); tmp1 = NOMASK(svand_n_u8, svget2_u8(va, 1), 0xf); tmp2 = NOMASK(svlsr_n_u8, svget2_u8(va, 1), 4); *rl = sveor3_u8(*rl, svtbl_u8(tbl_l2, tmp1), svtbl_u8(tbl_l3, tmp2)); *rh = sveor3_u8(*rh, svtbl_u8(tbl_h2, tmp1), svtbl_u8(tbl_h3, tmp2)); } static HEDLEY_ALWAYS_INLINE void gf16_shuffle128_sve2_round(svuint8x2_t va, svuint8_t* rl, svuint8_t* rh, svuint8_t tbl_l0, svuint8_t tbl_l1, svuint8_t tbl_l2, svuint8_t tbl_l3, svuint8_t tbl_h0, svuint8_t tbl_h1, svuint8_t tbl_h2, svuint8_t tbl_h3 ) { svuint8_t tmp1 = NOMASK(svand_n_u8, svget2_u8(va, 0), 0xf); svuint8_t tmp2 = NOMASK(svlsr_n_u8, svget2_u8(va, 0), 4); *rl = sveor3_u8(*rl, svtbl_u8(tbl_l0, tmp1), svtbl_u8(tbl_l1, tmp2)); *rh = sveor3_u8(*rh, svtbl_u8(tbl_h0, tmp1), svtbl_u8(tbl_h1, tmp2)); tmp1 = NOMASK(svand_n_u8, svget2_u8(va, 1), 0xf); tmp2 = NOMASK(svlsr_n_u8, svget2_u8(va, 1), 4); *rl = sveor3_u8(*rl, svtbl_u8(tbl_l2, tmp1), svtbl_u8(tbl_l3, tmp2)); *rh = sveor3_u8(*rh, svtbl_u8(tbl_h2, tmp1), svtbl_u8(tbl_h3, tmp2)); } #define _AVAILABLE #endif /*defined(__ARM_FEATURE_SVE2)*/ #define SVE_CALC_TABLE_MUL16 gf16_shuffle128_sve2_mul16_tables #define SVE_ROUND1 gf16_shuffle128_sve2_round1 #define SVE_ROUND gf16_shuffle128_sve2_round #define _FNSUFFIX _128_sve2 #include "gf16_shuffle128_sve_common.h" #undef _FNSUFFIX #undef SVE_ROUND #undef SVE_ROUND1 #undef SVE_CALC_TABLE_MUL16 #ifdef _AVAILABLE #undef _AVAILABLE #endif #if defined(__ARM_FEATURE_SVE2) && !defined(PARPAR_SLIM_GF16) GF16_MULADD_MULTI_FUNCS(gf16_shuffle, _128_sve2, gf16_shuffle_muladd_x_128_sve2, 3, svcntb()*2, 0, (void)0) #else GF16_MULADD_MULTI_FUNCS_STUB(gf16_shuffle, _128_sve2) #endif par2cmdline-turbo-1.5.0/parpar/gf16/gf16_shuffle128_sve_common.h000066400000000000000000000177311524160147200242210ustar00rootroot00000000000000 #include "gf16_muladd_multi.h" #if defined(_AVAILABLE) && defined(SVE_CALC_TABLE_MUL16) static HEDLEY_ALWAYS_INLINE void gf16_shuffle128_sve_calc_tables(const void *HEDLEY_RESTRICT scratch, const unsigned srcCount, const uint16_t *HEDLEY_RESTRICT coefficients, svuint8_t* tbl_Al0, svuint8_t* tbl_Al1, svuint8_t* tbl_Al2, svuint8_t* tbl_Al3, svuint8_t* tbl_Ah0, svuint8_t* tbl_Ah1, svuint8_t* tbl_Ah2, svuint8_t* tbl_Ah3, svuint8_t* tbl_Bl0, svuint8_t* tbl_Bl1, svuint8_t* tbl_Bl2, svuint8_t* tbl_Bl3, svuint8_t* tbl_Bh0, svuint8_t* tbl_Bh1, svuint8_t* tbl_Bh2, svuint8_t* tbl_Bh3, svuint8_t* tbl_Cl0, svuint8_t* tbl_Cl1, svuint8_t* tbl_Cl2, svuint8_t* tbl_Cl3, svuint8_t* tbl_Ch0, svuint8_t* tbl_Ch1, svuint8_t* tbl_Ch2, svuint8_t* tbl_Ch3 ) { #ifdef SVE_CALC_TABLE_LOAD_SCRATCH SVE_CALC_TABLE_LOAD_SCRATCH(scratch); #else UNUSED(scratch); #endif svint16_t val1 = svld1_s16(svwhilelt_b16_u32(0, srcCount), (int16_t*)coefficients); svint16_t val2 = gf16_vec_mul2_sve(val1); svint16_t val4 = gf16_vec_mul2_sve(val2); svint16_t val8 = gf16_vec_mul2_sve(val4); // expand val1 and val8 so they can be EOR'd correctly svint16_t val8x = svtbl_s16(val8, NOMASK(svlsr_n_u16, svindex_u16(0, 1), 2)); // duplicate each lane 4 times svint16_t val1x = svtbl_s16(val1, NOMASK(svlsr_n_u16, svindex_u16(0, 1), 3)); // duplicate each lane 8 times svint16_t val04 = svzip1_s16(svdup_n_s16(0), val4); svint16_t val26 = NOMASK(sveor_s16, val04, svzip1_s16(val2, val2)); svint16_t val0246a = svzip1_s16(val04, val26); svint16_t val8ACEa = NOMASK(sveor_s16, val0246a, val8x); svuint64_t valEvenA = svzip1_u64( svreinterpret_u64_s16(val0246a), svreinterpret_u64_s16(val8ACEa) ); svuint64_t valOddA = NOMASK(sveor_u64, valEvenA, svreinterpret_u64_s16(val1x)); SVE_CALC_TABLE_MUL16(valEvenA, valOddA, tbl_Al0, tbl_Al1, tbl_Al2, tbl_Al3, tbl_Ah0, tbl_Ah1, tbl_Ah2, tbl_Ah3); #define EXTRACT_LANE(dst, src, lane) \ *dst##l0 = svdupq_lane_u8(*src##l0, lane); \ *dst##l1 = svdupq_lane_u8(*src##l1, lane); \ *dst##l2 = svdupq_lane_u8(*src##l2, lane); \ *dst##l3 = svdupq_lane_u8(*src##l3, lane); \ *dst##h0 = svdupq_lane_u8(*src##h0, lane); \ *dst##h1 = svdupq_lane_u8(*src##h1, lane); \ *dst##h2 = svdupq_lane_u8(*src##h2, lane); \ *dst##h3 = svdupq_lane_u8(*src##h3, lane) if(svcntb() >= srcCount*16 || srcCount == 1) { // all tables computed, just extract to separate registers if(srcCount > 1) { EXTRACT_LANE(tbl_B, tbl_A, 1); } if(srcCount > 2) { EXTRACT_LANE(tbl_C, tbl_A, 2); } } else { svuint64_t valEvenB = svzip2_u64( svreinterpret_u64_s16(val0246a), svreinterpret_u64_s16(val8ACEa) ); if(svcntb() >= srcCount*8) { if(srcCount > 2) { // implies vect-width=256, srcCount=3 svuint64_t valOddB = NOMASK(sveor_u64, valEvenB, svreinterpret_u64_s16(svdup_lane_s16(val1, 2))); SVE_CALC_TABLE_MUL16(valEvenB, valOddB, tbl_Cl0, tbl_Cl1, tbl_Cl2, tbl_Cl3, tbl_Ch0, tbl_Ch1, tbl_Ch2, tbl_Ch3); EXTRACT_LANE(tbl_B, tbl_A, 1); } else { // implies vect-width=128, srcCount=2 svuint64_t valOddB = NOMASK(sveor_u64, valEvenB, svreinterpret_u64_s16(svdup_lane_s16(val1, 1))); SVE_CALC_TABLE_MUL16(valEvenB, valOddB, tbl_Bl0, tbl_Bl1, tbl_Bl2, tbl_Bl3, tbl_Bh0, tbl_Bh1, tbl_Bh2, tbl_Bh3); } } else { // implies vect-width=128, srcCount=3 svuint64_t valOddB = NOMASK(sveor_u64, valEvenB, svreinterpret_u64_s16(svdup_lane_s16(val1, 1))); SVE_CALC_TABLE_MUL16(valEvenB, valOddB, tbl_Bl0, tbl_Bl1, tbl_Bl2, tbl_Bl3, tbl_Bh0, tbl_Bh1, tbl_Bh2, tbl_Bh3); svint16_t val0246b = svzip2_s16(val04, val26); svint16_t val8ACEb = NOMASK(sveor_s16, val0246b, svdup_lane_s16(val8, 2)); valEvenA = svzip1_u64( svreinterpret_u64_s16(val0246b), svreinterpret_u64_s16(val8ACEb) ); valOddA = NOMASK(sveor_u64, valEvenA, svreinterpret_u64_s16(svdup_lane_s16(val1, 2))); SVE_CALC_TABLE_MUL16(valEvenA, valOddA, tbl_Cl0, tbl_Cl1, tbl_Cl2, tbl_Cl3, tbl_Ch0, tbl_Ch1, tbl_Ch2, tbl_Ch3); } } #undef EXTRACT_LANE } static HEDLEY_ALWAYS_INLINE void gf16_shuffle128_sve_calc_single_table(const void *HEDLEY_RESTRICT scratch, uint16_t val, svuint8_t* tbl_l0, svuint8_t* tbl_l1, svuint8_t* tbl_l2, svuint8_t* tbl_l3, svuint8_t* tbl_h0, svuint8_t* tbl_h1, svuint8_t* tbl_h2, svuint8_t* tbl_h3 ) { #ifdef SVE_CALC_TABLE_LOAD_SCRATCH SVE_CALC_TABLE_LOAD_SCRATCH(scratch); #else UNUSED(scratch); #endif int val2 = GF16_MULTBY_TWO(val); int val4 = GF16_MULTBY_TWO(val2); int val8 = GF16_MULTBY_TWO(val4); svuint16_t tmp = svdupq_n_u16(0, val2, val4, val4^val2, 0, 0, 0, 0); svuint64_t rl = svzip1_u64( svreinterpret_u64_u16(tmp), svreinterpret_u64_u16(NOMASK(sveor_u16, tmp, svdup_n_u16(val8))) ); svuint64_t rh = svreinterpret_u64_u16(NOMASK(sveor_u16, svreinterpret_u16_u64(rl), svdup_n_u16(val) )); SVE_CALC_TABLE_MUL16(rl, rh, tbl_l0, tbl_l1, tbl_l2, tbl_l3, tbl_h0, tbl_h1, tbl_h2, tbl_h3); } static HEDLEY_ALWAYS_INLINE void _FN(gf16_shuffle_muladd_x)( const void *HEDLEY_RESTRICT scratch, GF16_BLKMAC_SRCDSTLIST, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, const int doPrefetch, const char* _pf ) { GF16_BLKMAC_SRCDST_UNUSED(3, 1); svuint8_t tbl_Ah0, tbl_Ah1, tbl_Ah2, tbl_Ah3, tbl_Al0, tbl_Al1, tbl_Al2, tbl_Al3; svuint8_t tbl_Bh0, tbl_Bh1, tbl_Bh2, tbl_Bh3, tbl_Bl0, tbl_Bl1, tbl_Bl2, tbl_Bl3; svuint8_t tbl_Ch0, tbl_Ch1, tbl_Ch2, tbl_Ch3, tbl_Cl0, tbl_Cl1, tbl_Cl2, tbl_Cl3; gf16_shuffle128_sve_calc_tables(scratch, srcCount, coefficients, &tbl_Al0, &tbl_Al1, &tbl_Al2, &tbl_Al3, &tbl_Ah0, &tbl_Ah1, &tbl_Ah2, &tbl_Ah3, &tbl_Bl0, &tbl_Bl1, &tbl_Bl2, &tbl_Bl3, &tbl_Bh0, &tbl_Bh1, &tbl_Bh2, &tbl_Bh3, &tbl_Cl0, &tbl_Cl1, &tbl_Cl2, &tbl_Cl3, &tbl_Ch0, &tbl_Ch1, &tbl_Ch2, &tbl_Ch3 ); svuint8_t rl, rh; for(intptr_t ptr = -(intptr_t)len; ptr; ptr += svcntb()*2) { if(doPrefetch == 1) { svprfb(svptrue_b8(), _pf+ptr, SV_PLDL1KEEP); svprfb_vnum(svptrue_b8(), _pf+ptr, 1, SV_PLDL1KEEP); } if(doPrefetch == 2) { svprfb(svptrue_b8(), _pf+ptr, SV_PLDL2KEEP); svprfb_vnum(svptrue_b8(), _pf+ptr, 1, SV_PLDL2KEEP); } svuint8x2_t vb = svld2_u8(svptrue_b8(), _dst1+ptr*dstScale); rl = svget2_u8(vb, 0); rh = svget2_u8(vb, 1); SVE_ROUND(svld2_u8(svptrue_b8(), _src1+ptr*srcScale), &rl, &rh, tbl_Al0, tbl_Al1, tbl_Al2, tbl_Al3, tbl_Ah0, tbl_Ah1, tbl_Ah2, tbl_Ah3); if(srcCount > 1) SVE_ROUND(svld2_u8(svptrue_b8(), _src2+ptr*srcScale), &rl, &rh, tbl_Bl0, tbl_Bl1, tbl_Bl2, tbl_Bl3, tbl_Bh0, tbl_Bh1, tbl_Bh2, tbl_Bh3); if(srcCount > 2) SVE_ROUND(svld2_u8(svptrue_b8(), _src3+ptr*srcScale), &rl, &rh, tbl_Cl0, tbl_Cl1, tbl_Cl2, tbl_Cl3, tbl_Ch0, tbl_Ch1, tbl_Ch2, tbl_Ch3); svst2_u8(svptrue_b8(), _dst1+ptr*dstScale, svcreate2_u8(rl, rh)); } } #endif /*defined(_AVAILABLE) && defined(SVE_CALC_TABLE_MUL16)*/ #ifdef PARPAR_INVERT_SUPPORT void _FN(gf16_shuffle_mul)(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t val, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #if defined(_AVAILABLE) && defined(SVE_CALC_TABLE_MUL16) svuint8_t tbl_h0, tbl_h1, tbl_h2, tbl_h3, tbl_l0, tbl_l1, tbl_l2, tbl_l3; gf16_shuffle128_sve_calc_single_table(scratch, val, &tbl_l0, &tbl_l1, &tbl_l2, &tbl_l3, &tbl_h0, &tbl_h1, &tbl_h2, &tbl_h3); uint8_t* _src = (uint8_t*)src + len; uint8_t* _dst = (uint8_t*)dst + len; for(intptr_t ptr = -(intptr_t)len; ptr; ptr += svcntb()*2) { svuint8_t ra, rb; SVE_ROUND1(svld2_u8(svptrue_b8(), _src+ptr), &ra, &rb, tbl_l0, tbl_l1, tbl_l2, tbl_l3, tbl_h0, tbl_h1, tbl_h2, tbl_h3); svst2_u8(svptrue_b8(), _dst+ptr, svcreate2_u8(ra, rb)); } #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(val); #endif } #endif void _FN(gf16_shuffle_muladd)(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t val, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #if defined(_AVAILABLE) gf16_muladd_single(scratch, &_FN(gf16_shuffle_muladd_x), dst, src, len, val); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(val); #endif } par2cmdline-turbo-1.5.0/parpar/gf16/gf16_shuffle2x128_sve2.c000066400000000000000000000277431524160147200232040ustar00rootroot00000000000000 #include "gf16_sve_common.h" #include "gf16_muladd_multi.h" #if defined(__ARM_FEATURE_SVE2) && !defined(PARPAR_SLIM_GF16) // emulate svzip1q_u8 without FP64MatMul feature static HEDLEY_ALWAYS_INLINE svuint8_t join_lane(svuint8_t a, svuint8_t b, int lane) { svuint64_t tbl2base = svorr_n_u64_m( svnot_b_z(svptrue_b64(), svptrue_pat_b64(SV_VL2)), svdupq_n_u64(0, 1), svcntd() ); return svreinterpret_u8_u64(svtbl2_u64(svcreate2_u64( svreinterpret_u64_u8(a), svreinterpret_u64_u8(b) ), NOMASK(svadd_n_u64, tbl2base, lane*2 ))); } // copied from shuffle128_sve2 static HEDLEY_ALWAYS_INLINE void gf16_shuffle128_sve2_mul16_tables(svuint64_t rl, svuint64_t rh, svuint8_t* tbl_l0, svuint8_t* tbl_l1, svuint8_t* tbl_l2, svuint8_t* tbl_l3, svuint8_t* tbl_h0, svuint8_t* tbl_h1, svuint8_t* tbl_h2, svuint8_t* tbl_h3 ) { *tbl_l0 = svtrn1_u8(svreinterpret_u8_u64(rl), svreinterpret_u8_u64(rh)); *tbl_h0 = svtrn2_u8(svreinterpret_u8_u64(rl), svreinterpret_u8_u64(rh)); svuint8_t ti, th, tl; #define MUL16(p, c) \ ti = NOMASK(svlsr_n_u8, *tbl_h##p, 4); \ tl = NOMASK(svlsl_n_u8, *tbl_l##p, 4); \ th = svxar_n_u8(*tbl_h##p, ti, 4); \ *tbl_h##c = svsri_n_u8(th, *tbl_l##p, 4); \ *tbl_l##c = NOMASK(sveor_u8, tl, svpmul_n_u8(ti, GF16_POLYNOMIAL & 0x1f)) MUL16(0, 1); MUL16(1, 2); MUL16(2, 3); #undef MUL16 } static HEDLEY_ALWAYS_INLINE void gf16_shuffle2x128_sve2_calc_tables(const unsigned srcCount, const uint16_t *HEDLEY_RESTRICT coefficients, svuint8_t* tbl_Aln, svuint8_t* tbl_Als, svuint8_t* tbl_Ahn, svuint8_t* tbl_Ahs, svuint8_t* tbl_Bln, svuint8_t* tbl_Bls, svuint8_t* tbl_Bhn, svuint8_t* tbl_Bhs, svuint8_t* tbl_Cln, svuint8_t* tbl_Cls, svuint8_t* tbl_Chn, svuint8_t* tbl_Chs, svuint8_t* tbl_Dln, svuint8_t* tbl_Dls, svuint8_t* tbl_Dhn, svuint8_t* tbl_Dhs, svuint8_t* tbl_Eln, svuint8_t* tbl_Els, svuint8_t* tbl_Ehn, svuint8_t* tbl_Ehs, svuint8_t* tbl_Fln, svuint8_t* tbl_Fls, svuint8_t* tbl_Fhn, svuint8_t* tbl_Fhs ) { svint16_t val1 = svld1_s16(svwhilelt_b16_u32(0, srcCount), (int16_t*)coefficients); svint16_t val2 = gf16_vec_mul2_sve(val1); svint16_t val4 = gf16_vec_mul2_sve(val2); svint16_t val8 = gf16_vec_mul2_sve(val4); // expand val1 and val8 so they can be EOR'd correctly svint16_t val8x = svtbl_s16(val8, NOMASK(svlsr_n_u16, svindex_u16(0, 1), 2)); // duplicate each lane 4 times svuint16_t shufQidx = NOMASK(svlsr_n_u16, svindex_u16(0, 1), 3); svint16_t val1x = svtbl_s16(val1, shufQidx); // duplicate each lane 8 times svint16_t val04 = svzip1_s16(svdup_n_s16(0), val4); svint16_t val26 = NOMASK(sveor_s16, val04, svzip1_s16(val2, val2)); svint16_t val0246a = svzip1_s16(val04, val26); svint16_t val8ACEa = NOMASK(sveor_s16, val0246a, val8x); svuint64_t valEvenA = svzip1_u64( svreinterpret_u64_s16(val0246a), svreinterpret_u64_s16(val8ACEa) ); svuint64_t valOddA = NOMASK(sveor_u64, valEvenA, svreinterpret_u64_s16(val1x)); svuint8_t tbl_l0, tbl_l1, tbl_l2, tbl_l3, tbl_h0, tbl_h1, tbl_h2, tbl_h3; gf16_shuffle128_sve2_mul16_tables(valEvenA, valOddA, &tbl_l0, &tbl_l1, &tbl_l2, &tbl_l3, &tbl_h0, &tbl_h1, &tbl_h2, &tbl_h3); #define EXTRACT_LANE(dst, src, lane) \ *dst##ln = join_lane(src##l0, src##h2, lane); \ *dst##ls = join_lane(src##h0, src##l2, lane); \ *dst##hn = join_lane(src##l1, src##h3, lane); \ *dst##hs = join_lane(src##h1, src##l3, lane) EXTRACT_LANE(tbl_A, tbl_, 0); if(srcCount > 1) { EXTRACT_LANE(tbl_B, tbl_, 1); } if(svcntb() >= srcCount*16 || srcCount == 1) { if(srcCount > 2) { EXTRACT_LANE(tbl_C, tbl_, 2); } if(srcCount > 3) { EXTRACT_LANE(tbl_D, tbl_, 3); } if(srcCount > 4) { EXTRACT_LANE(tbl_E, tbl_, 4); } if(srcCount > 5) { EXTRACT_LANE(tbl_F, tbl_, 5); } } else { // implies srcCount >= 3 svuint64_t valEvenB = svzip2_u64( svreinterpret_u64_s16(val0246a), svreinterpret_u64_s16(val8ACEa) ); if(svcntb() >= srcCount*8) { svuint8_t tbl2_l0, tbl2_l1, tbl2_l2, tbl2_l3, tbl2_h0, tbl2_h1, tbl2_h2, tbl2_h3; val1x = svtbl_s16(val1, NOMASK(svadd_n_u16, shufQidx, svcntb()/16)); svuint64_t valOddB = NOMASK(sveor_u64, valEvenB, svreinterpret_u64_s16(val1x)); gf16_shuffle128_sve2_mul16_tables(valEvenB, valOddB, &tbl2_l0, &tbl2_l1, &tbl2_l2, &tbl2_l3, &tbl2_h0, &tbl2_h1, &tbl2_h2, &tbl2_h3); if(svcntb() < 48) { EXTRACT_LANE(tbl_C, tbl2_, 0); } else { EXTRACT_LANE(tbl_C, tbl_, 2); } if(srcCount >= 4) { if(svcntb() < 48) { EXTRACT_LANE(tbl_D, tbl2_, 1); } else if(svcntb() < 64) { EXTRACT_LANE(tbl_D, tbl2_, 0); } else { EXTRACT_LANE(tbl_D, tbl_, 3); } } if(srcCount >= 5) { // implies vect-width >= 384 if(svcntb() < 64) { EXTRACT_LANE(tbl_E, tbl2_, 1); } else if(svcntb() < 80) { EXTRACT_LANE(tbl_E, tbl2_, 0); } else { EXTRACT_LANE(tbl_E, tbl_, 4); } } if(srcCount >= 6) { // implies vect-width >= 384 if(svcntb() < 64) { EXTRACT_LANE(tbl_F, tbl2_, 2); } else if(svcntb() < 80) { EXTRACT_LANE(tbl_F, tbl2_, 1); } else { EXTRACT_LANE(tbl_F, tbl2_, 0); } } } else { // implies srcCount={5 or 6}, vect-width=256 val1x = svtbl_s16(val1, NOMASK(svorr_n_u16, shufQidx, 2)); // duplicate element 2&3 across 256-bits svuint64_t valOddB = NOMASK(sveor_u64, valEvenB, svreinterpret_u64_s16(val1x)); gf16_shuffle128_sve2_mul16_tables(valEvenB, valOddB, &tbl_l0, &tbl_l1, &tbl_l2, &tbl_l3, &tbl_h0, &tbl_h1, &tbl_h2, &tbl_h3); EXTRACT_LANE(tbl_C, tbl_, 0); EXTRACT_LANE(tbl_D, tbl_, 1); svint16_t val0246b = svzip2_s16(val04, val26); svint16_t val8ACEb = NOMASK(sveor_s16, val0246b, svtbl_s16(val8, svdupq_n_u16(4,4,4,4, 5,5,5,5))); valEvenA = svzip1_u64( svreinterpret_u64_s16(val0246b), svreinterpret_u64_s16(val8ACEb) ); val1x = svtbl_s16(val1, NOMASK(svorr_n_u16, shufQidx, 4)); // duplicate element 4&5 across 256-bits valOddA = NOMASK(sveor_u64, valEvenA, svreinterpret_u64_s16(val1x)); gf16_shuffle128_sve2_mul16_tables(valEvenA, valOddA, &tbl_l0, &tbl_l1, &tbl_l2, &tbl_l3, &tbl_h0, &tbl_h1, &tbl_h2, &tbl_h3); EXTRACT_LANE(tbl_E, tbl_, 0); if(srcCount >= 6) { EXTRACT_LANE(tbl_F, tbl_, 1); } } } #undef EXTRACT_LANE } static HEDLEY_ALWAYS_INLINE void gf16_shuffle2x128_sve2_round1(svuint8_t data, svuint8_t* rn, svuint8_t* rs1, svuint8_t* rs2, svuint8_t tbl_ln, svuint8_t tbl_ls, svuint8_t tbl_hn, svuint8_t tbl_hs ) { svuint8_t mask = svreinterpret_u8_u16(svdup_n_u16(0x1000)); svuint8_t tmp1 = svbsl_n_u8(data, mask, 0xf); svuint8_t tmp2 = svsri_n_u8(mask, data, 4); *rn = sveor3_u8(*rn, svtbl_u8(tbl_ln, tmp1), svtbl_u8(tbl_hn, tmp2)); *rs1 = svtbl_u8(tbl_ls, tmp1); *rs2 = svtbl_u8(tbl_hs, tmp2); } static HEDLEY_ALWAYS_INLINE void gf16_shuffle2x128_sve2_round(svuint8_t data, svuint8_t* rn, svuint8_t* rs1, svuint8_t* rs2, svuint8_t tbl_ln, svuint8_t tbl_ls, svuint8_t tbl_hn, svuint8_t tbl_hs ) { svuint8_t mask = svreinterpret_u8_u16(svdup_n_u16(0x1000)); svuint8_t tmp1 = svbsl_n_u8(data, mask, 0xf); svuint8_t tmp2 = svsri_n_u8(mask, data, 4); *rn = sveor3_u8(*rn, svtbl_u8(tbl_ln, tmp1), svtbl_u8(tbl_hn, tmp2)); *rs1 = sveor3_u8(*rs1, *rs2, svtbl_u8(tbl_ls, tmp1)); *rs2 = svtbl_u8(tbl_hs, tmp2); } static HEDLEY_ALWAYS_INLINE void gf16_shuffle2x_muladd_x_sve2( const void *HEDLEY_RESTRICT scratch, GF16_BLKMAC_SRCDSTLIST, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, const int doPrefetch, const char* _pf ) { GF16_BLKMAC_SRCDST_UNUSED(6, 1); UNUSED(scratch); svuint8_t tbl_Aln, tbl_Als, tbl_Ahn, tbl_Ahs; svuint8_t tbl_Bln, tbl_Bls, tbl_Bhn, tbl_Bhs; svuint8_t tbl_Cln, tbl_Cls, tbl_Chn, tbl_Chs; svuint8_t tbl_Dln, tbl_Dls, tbl_Dhn, tbl_Dhs; svuint8_t tbl_Eln, tbl_Els, tbl_Ehn, tbl_Ehs; svuint8_t tbl_Fln, tbl_Fls, tbl_Fhn, tbl_Fhs; gf16_shuffle2x128_sve2_calc_tables(srcCount, coefficients, &tbl_Aln, &tbl_Als, &tbl_Ahn, &tbl_Ahs, &tbl_Bln, &tbl_Bls, &tbl_Bhn, &tbl_Bhs, &tbl_Cln, &tbl_Cls, &tbl_Chn, &tbl_Chs, &tbl_Dln, &tbl_Dls, &tbl_Dhn, &tbl_Dhs, &tbl_Eln, &tbl_Els, &tbl_Ehn, &tbl_Ehs, &tbl_Fln, &tbl_Fls, &tbl_Fhn, &tbl_Fhs ); svuint8_t rn, rs1, rs2; for(intptr_t ptr = -(intptr_t)len; ptr; ptr += svcntb()) { if(doPrefetch == 1) svprfb(svptrue_b8(), _pf+ptr, SV_PLDL1KEEP); if(doPrefetch == 2) svprfb(svptrue_b8(), _pf+ptr, SV_PLDL2KEEP); rn = svld1_u8(svptrue_b8(), _dst1+ptr*dstScale); gf16_shuffle2x128_sve2_round1(svld1_u8(svptrue_b8(), _src1+ptr*srcScale), &rn, &rs1, &rs2, tbl_Aln, tbl_Als, tbl_Ahn, tbl_Ahs); if(srcCount > 1) gf16_shuffle2x128_sve2_round(svld1_u8(svptrue_b8(), _src2+ptr*srcScale), &rn, &rs1, &rs2, tbl_Bln, tbl_Bls, tbl_Bhn, tbl_Bhs); if(srcCount > 2) gf16_shuffle2x128_sve2_round(svld1_u8(svptrue_b8(), _src3+ptr*srcScale), &rn, &rs1, &rs2, tbl_Cln, tbl_Cls, tbl_Chn, tbl_Chs); if(srcCount > 3) gf16_shuffle2x128_sve2_round(svld1_u8(svptrue_b8(), _src4+ptr*srcScale), &rn, &rs1, &rs2, tbl_Dln, tbl_Dls, tbl_Dhn, tbl_Dhs); if(srcCount > 4) gf16_shuffle2x128_sve2_round(svld1_u8(svptrue_b8(), _src5+ptr*srcScale), &rn, &rs1, &rs2, tbl_Eln, tbl_Els, tbl_Ehn, tbl_Ehs); if(srcCount > 5) gf16_shuffle2x128_sve2_round(svld1_u8(svptrue_b8(), _src6+ptr*srcScale), &rn, &rs1, &rs2, tbl_Fln, tbl_Fls, tbl_Fhn, tbl_Fhs); rs1 = svreinterpret_u8_u16(svxar_n_u16( svreinterpret_u16_u8(rs1), svreinterpret_u16_u8(rs2), 8 )); rn = NOMASK(sveor_u8, rn, rs1); svst1_u8(svptrue_b8(), _dst1+ptr*dstScale, rn); } } #endif /*defined(__ARM_FEATURE_SVE2) && !defined(PARPAR_SLIM_GF16)*/ #ifdef PARPAR_INVERT_SUPPORT void gf16_shuffle2x_mul_128_sve2(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t val, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); UNUSED(scratch); #if defined(__ARM_FEATURE_SVE2) && !defined(PARPAR_SLIM_GF16) svuint8_t tbl_ln, tbl_ls, tbl_hn, tbl_hs; gf16_shuffle2x128_sve2_calc_tables(1, &val, &tbl_ln, &tbl_ls, &tbl_hn, &tbl_hs, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ); svuint8_t mask = svreinterpret_u8_u16(svdup_n_u16(0x1000)); uint8_t* _src = (uint8_t*)src + len; uint8_t* _dst = (uint8_t*)dst + len; for(intptr_t ptr = -(intptr_t)len; ptr; ptr += svcntb()) { svuint8_t data = svld1_u8(svptrue_b8(), _src+ptr);; svuint8_t tmp1 = svbsl_n_u8(data, mask, 0xf); svuint8_t tmp2 = svsri_n_u8(mask, data, 4); data = sveor3_u8( svtbl_u8(tbl_ln, tmp1), svtbl_u8(tbl_hn, tmp2), svreinterpret_u8_u16(svxar_n_u16( svreinterpret_u16_u8(svtbl_u8(tbl_ls, tmp1)), svreinterpret_u16_u8(svtbl_u8(tbl_hs, tmp2)), 8 )) ); svst1_u8(svptrue_b8(), _dst+ptr, data); } #else UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(val); #endif } #endif void gf16_shuffle2x_muladd_128_sve2(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t val, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #if defined(__ARM_FEATURE_SVE2) && !defined(PARPAR_SLIM_GF16) gf16_muladd_single(scratch, &gf16_shuffle2x_muladd_x_sve2, dst, src, len, val); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(val); #endif } #if defined(__ARM_FEATURE_SVE2) && !defined(PARPAR_SLIM_GF16) GF16_MULADD_MULTI_FUNCS(gf16_shuffle2x, _128_sve2, gf16_shuffle2x_muladd_x_sve2, 6, svcntb(), 0, (void)0) #else GF16_MULADD_MULTI_FUNCS_STUB(gf16_shuffle2x, _128_sve2) #endif // checksum stuff #include "gf16_checksum_sve.h" #if defined(__ARM_FEATURE_SVE2) && !defined(PARPAR_SLIM_GF16) GF_PREPARE_PACKED_FUNCS(gf16_shuffle2x, _sve, svcntb(), gf16_prepare_half_block_sve, gf16_prepare_half_blocku_sve, 6, (void)0, svint16_t checksum = svdup_n_s16(0), gf16_checksum_block_sve, gf16_checksum_blocku_sve, gf16_checksum_exp_sve, gf16_checksum_prepare_sve, 16) #else GF_PREPARE_PACKED_FUNCS_STUB(gf16_shuffle2x, _sve) #endif #if defined(__ARM_FEATURE_SVE2) && !defined(PARPAR_SLIM_GF16) GF_FINISH_PACKED_FUNCS(gf16_shuffle2x, _sve, svcntb(), gf16_prepare_half_block_sve, gf16_finish_half_blocku_sve, 1, (void)0, gf16_checksum_block_sve, gf16_checksum_blocku_sve, gf16_checksum_exp_sve, NULL, 16) #else GF_FINISH_PACKED_FUNCS_STUB(gf16_shuffle2x, _sve) #endif par2cmdline-turbo-1.5.0/parpar/gf16/gf16_shuffle2x_x86.h000066400000000000000000000171731524160147200225200ustar00rootroot00000000000000 #include "gf16_shuffle_x86_common.h" #if defined(_AVAILABLE) && !defined(PARPAR_SLIM_GF16) # include "gf16_checksum_x86.h" static HEDLEY_ALWAYS_INLINE void _FN(gf16_shuffle2x_prepare_block)(void* dst, const void* src) { _mword data = _MMI(loadu)((_mword*)src); data = separate_low_high(data); #if MWORD_SIZE >= 64 data = _mm512_permutexvar_epi64(_mm512_set_epi64(7,5,3,1, 6,4,2,0), data); #else data = _mm256_permute4x64_epi64(data, _MM_SHUFFLE(3,1,2,0)); #endif _MMI(store)((_mword*)dst, data); } static HEDLEY_ALWAYS_INLINE void _FN(gf16_shuffle2x_prepare_blocku)(void* dst, const void* src, size_t remaining) { _mword data = partial_load(src, remaining); data = separate_low_high(data); #if MWORD_SIZE >= 64 data = _mm512_permutexvar_epi64(_mm512_set_epi64(7,5,3,1, 6,4,2,0), data); #else data = _mm256_permute4x64_epi64(data, _MM_SHUFFLE(3,1,2,0)); #endif _MMI(store)((_mword*)dst, data); } static HEDLEY_ALWAYS_INLINE void _FN(gf16_shuffle2x_finish_block)(void *HEDLEY_RESTRICT dst) { _mword shuf = _MM(set_epi32)( #if MWORD_SIZE >= 64 0x0f070e06, 0x0d050c04, 0x0b030a02, 0x09010800, 0x0f070e06, 0x0d050c04, 0x0b030a02, 0x09010800, #endif 0x0f070e06, 0x0d050c04, 0x0b030a02, 0x09010800, 0x0f070e06, 0x0d050c04, 0x0b030a02, 0x09010800 ); _mword data = _MMI(load)((_mword*)dst); #if MWORD_SIZE >= 64 data = _mm512_permutexvar_epi64(_mm512_set_epi64(7,3, 6,2, 5,1, 4,0), data); #else data = _mm256_permute4x64_epi64(data, _MM_SHUFFLE(3,1,2,0)); #endif data = _MM(shuffle_epi8)(data, shuf); _MMI(store)((_mword*)dst, data); } static HEDLEY_ALWAYS_INLINE void _FN(gf16_shuffle2x_finish_copy_block)(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src) { _mword shuf = _MM(set_epi32)( #if MWORD_SIZE >= 64 0x0f070e06, 0x0d050c04, 0x0b030a02, 0x09010800, 0x0f070e06, 0x0d050c04, 0x0b030a02, 0x09010800, #endif 0x0f070e06, 0x0d050c04, 0x0b030a02, 0x09010800, 0x0f070e06, 0x0d050c04, 0x0b030a02, 0x09010800 ); _mword data = _MMI(load)((_mword*)src); #if MWORD_SIZE >= 64 data = _mm512_permutexvar_epi64(_mm512_set_epi64(7,3, 6,2, 5,1, 4,0), data); #else data = _mm256_permute4x64_epi64(data, _MM_SHUFFLE(3,1,2,0)); #endif data = _MM(shuffle_epi8)(data, shuf); _MMI(storeu)((_mword*)dst, data); } static HEDLEY_ALWAYS_INLINE void _FN(gf16_shuffle2x_finish_copy_blocku)(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t bytes) { _mword shuf = _MM(set_epi32)( #if MWORD_SIZE >= 64 0x0f070e06, 0x0d050c04, 0x0b030a02, 0x09010800, 0x0f070e06, 0x0d050c04, 0x0b030a02, 0x09010800, #endif 0x0f070e06, 0x0d050c04, 0x0b030a02, 0x09010800, 0x0f070e06, 0x0d050c04, 0x0b030a02, 0x09010800 ); _mword data = _MMI(load)((_mword*)src); #if MWORD_SIZE >= 64 data = _mm512_permutexvar_epi64(_mm512_set_epi64(7,3, 6,2, 5,1, 4,0), data); #else data = _mm256_permute4x64_epi64(data, _MM_SHUFFLE(3,1,2,0)); #endif data = _MM(shuffle_epi8)(data, shuf); partial_store((_mword*)dst, data, bytes); } #endif #ifdef PARPAR_INVERT_SUPPORT void _FN(gf16_shuffle2x_prepare)(void* dst, const void* src, size_t srcLen) { #if defined(_AVAILABLE) && !defined(PARPAR_SLIM_GF16) gf16_prepare(dst, src, srcLen, sizeof(_mword), &_FN(gf16_shuffle2x_prepare_block), &_FN(gf16_shuffle2x_prepare_blocku)); _MM_END #else UNUSED(dst); UNUSED(src); UNUSED(srcLen); #endif } #endif #if defined(_AVAILABLE) && !defined(PARPAR_SLIM_GF16) # ifdef PLATFORM_AMD64 GF_PREPARE_PACKED_FUNCS(gf16_shuffle2x, _FNSUFFIX, sizeof(_mword), _FN(gf16_shuffle2x_prepare_block), _FN(gf16_shuffle2x_prepare_blocku), 2 + (MWORD_SIZE==64)*4, _MM_END, _mword checksum = _MMI(setzero)(), _FN(gf16_checksum_block), _FN(gf16_checksum_blocku), _FN(gf16_checksum_exp), _FN(gf16_checksum_prepare), sizeof(_mword)) # else GF_PREPARE_PACKED_FUNCS(gf16_shuffle2x, _FNSUFFIX, sizeof(_mword), _FN(gf16_shuffle2x_prepare_block), _FN(gf16_shuffle2x_prepare_blocku), 1, _MM_END, _mword checksum = _MMI(setzero)(), _FN(gf16_checksum_block), _FN(gf16_checksum_blocku), _FN(gf16_checksum_exp), _FN(gf16_checksum_prepare), sizeof(_mword)) # endif #else GF_PREPARE_PACKED_FUNCS_STUB(gf16_shuffle2x, _FNSUFFIX) #endif #ifdef PARPAR_INVERT_SUPPORT void _FN(gf16_shuffle2x_finish)(void *HEDLEY_RESTRICT dst, size_t len) { #if defined(_AVAILABLE) && !defined(PARPAR_SLIM_GF16) gf16_finish(dst, len, sizeof(_mword), &_FN(gf16_shuffle2x_finish_block)); _MM_END #else UNUSED(dst); UNUSED(len); #endif } #endif #if defined(_AVAILABLE) && !defined(PARPAR_SLIM_GF16) GF_FINISH_PACKED_FUNCS(gf16_shuffle2x, _FNSUFFIX, sizeof(_mword), _FN(gf16_shuffle2x_finish_copy_block), _FN(gf16_shuffle2x_finish_copy_blocku), 1, _MM_END, _FN(gf16_checksum_block), _FN(gf16_checksum_blocku), _FN(gf16_checksum_exp), &_FN(gf16_shuffle2x_finish_block), sizeof(_mword)) #else GF_FINISH_PACKED_FUNCS_STUB(gf16_shuffle2x, _FNSUFFIX) #endif #if defined(_AVAILABLE) && !defined(PARPAR_SLIM_GF16) void _FN(gf16_shuffle2x_setup_vec)(const void *HEDLEY_RESTRICT scratch, uint16_t val, _mword* shufNormLo, _mword* shufSwapLo, _mword* shufNormHi, _mword* shufSwapHi) { __m128i prodLo0, prodHi0, prodLo1, prodHi1, prodLo2, prodHi2, prodLo3, prodHi3; __m128i pd0, pd1; shuf0_vector(val, &pd0, &pd1); pd0 = _mm_shuffle_epi8(pd0, _mm_set_epi32(0x0f0d0b09, 0x07050301, 0x0e0c0a08, 0x06040200)); pd1 = _mm_shuffle_epi8(pd1, _mm_set_epi32(0x0f0d0b09, 0x07050301, 0x0e0c0a08, 0x06040200)); prodLo0 = _mm_unpacklo_epi64(pd0, pd1); prodHi0 = _mm_unpackhi_epi64(pd0, pd1); __m128i polyl = _mm_load_si128((__m128i*)scratch); __m128i polyh = _mm_setzero_si128(); #ifndef GF16_POLYNOMIAL_SIMPLE polyh = _mm_load_si128((__m128i*)scratch + 1); #endif mul16_vec128(polyl, polyh, prodLo0, prodHi0, &prodLo1, &prodHi1); mul16_vec128(polyl, polyh, prodLo1, prodHi1, &prodLo2, &prodHi2); mul16_vec128(polyl, polyh, prodLo2, prodHi2, &prodLo3, &prodHi3); // shuffle around products #if MWORD_SIZE==64 # define JOIN_VEC(a, b) _mm512_shuffle_i32x4(_mm512_castsi128_si512(a), _mm512_castsi128_si512(b), _MM_SHUFFLE(0,0,0,0)) #else # define JOIN_VEC(a, b) _mm256_permute2x128_si256(_mm256_castsi128_si256(a), _mm256_castsi128_si256(b), 0x20) #endif *shufNormLo = JOIN_VEC(prodLo0, prodHi2); *shufSwapLo = JOIN_VEC(prodHi0, prodLo2); *shufNormHi = JOIN_VEC(prodLo1, prodHi3); *shufSwapHi = JOIN_VEC(prodHi1, prodLo3); #undef JOIN_VEC } #endif #ifdef PARPAR_INVERT_SUPPORT void _FN(gf16_shuffle2x_mul)(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t val, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #if defined(_AVAILABLE) && !defined(PARPAR_SLIM_GF16) _mword shufNormLo, shufSwapLo, shufNormHi, shufSwapHi; _FN(gf16_shuffle2x_setup_vec)(scratch, val, &shufNormLo, &shufSwapLo, &shufNormHi, &shufSwapHi); _mword ti; _mword mask = _MM(set1_epi8) (0x0f); uint8_t* _src = (uint8_t*)src + len; uint8_t* _dst = (uint8_t*)dst + len; for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(_mword)) { _mword data = _MMI(load)((_mword*)(_src+ptr)); ti = _MMI(and) (mask, data); _mword swapped = _MM(shuffle_epi8) (shufSwapLo, ti); _mword result = _MM(shuffle_epi8) (shufNormLo, ti); ti = _MM_SRLI4_EPI8(data); swapped = _MMI(xor)(_MM(shuffle_epi8) (shufSwapHi, ti), swapped); #if MWORD_SIZE >= 64 swapped = _mm512_shuffle_i32x4(swapped, swapped, _MM_SHUFFLE(1,0,3,2)); result = _mm512_ternarylogic_epi32( result, _mm512_shuffle_epi8(shufNormHi, ti), swapped, 0x96 ); #else result = _MMI(xor)(_MM(shuffle_epi8) (shufNormHi, ti), result); swapped = _mm256_permute2x128_si256(swapped, swapped, 0x01); result = _MMI(xor)(result, swapped); #endif _MMI(store) ((_mword*)(_dst+ptr), result); } _MM_END #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(val); #endif } #endif par2cmdline-turbo-1.5.0/parpar/gf16/gf16_shuffle512_sve2.c000066400000000000000000000342571524160147200227250ustar00rootroot00000000000000 #include "gf16_sve_common.h" #include "gf16_muladd_multi.h" #if defined(__ARM_FEATURE_SVE2) && !defined(PARPAR_SLIM_GF16) static HEDLEY_ALWAYS_INLINE void gf16_shuffle512_mul64(svuint8x2_t poly, svuint8_t rl, svuint8_t rh, svuint8_t* tbl_l1, svuint8_t* tbl_h1, svuint8_t* tbl_l2, svuint8_t* tbl_h2 ) { // multiply by 64 and store into tbl1 svuint8_t tl = NOMASK(svlsl_n_u8, rl, 6); svuint8_t th = svsri_n_u8(NOMASK(svlsl_n_u8, rh, 6), rl, 2); svuint8_t ti = NOMASK(svlsr_n_u8, rh, 2); *tbl_l1 = NOMASK(sveor_u8, tl, svtbl_u8(svget2_u8(poly, 0), ti)); *tbl_h1 = NOMASK(sveor_u8, th, svtbl_u8(svget2_u8(poly, 1), ti)); // multiply by 16 and store to tbl2 ti = NOMASK(svlsr_n_u8, *tbl_h1, 4); tl = NOMASK(svlsl_n_u8, *tbl_l1, 4); th = svxar_n_u8(*tbl_h1, ti, 4); *tbl_h2 = svsri_n_u8(th, *tbl_l1, 4); *tbl_l2 = NOMASK(sveor_u8, tl, svpmul_n_u8(ti, GF16_POLYNOMIAL & 0x1f)); // re-arrange for straddled part (top 2 bits swapped with bottom 2) svuint8_t idx = svbsl_n_u8( svdupq_n_u8(0,4,8,12,1,5,9,13,2,6,10,14,3,7,11,15), svindex_u8(0, 1), 0xf ); *tbl_l1 = svtbl_u8(*tbl_l1, idx); *tbl_h1 = svtbl_u8(*tbl_h1, idx); } static HEDLEY_ALWAYS_INLINE void gf16_shuffle512_sve2_calc_tables( const void *HEDLEY_RESTRICT scratch, const unsigned srcCount, const uint16_t *HEDLEY_RESTRICT coefficients, svuint8_t* tbl_Al0, svuint8_t* tbl_Al1, svuint8_t* tbl_Al2, svuint8_t* tbl_Ah0, svuint8_t* tbl_Ah1, svuint8_t* tbl_Ah2, svuint8_t* tbl_Bl0, svuint8_t* tbl_Bl1, svuint8_t* tbl_Bl2, svuint8_t* tbl_Bh0, svuint8_t* tbl_Bh1, svuint8_t* tbl_Bh2, svuint8_t* tbl_Cl0, svuint8_t* tbl_Cl1, svuint8_t* tbl_Cl2, svuint8_t* tbl_Ch0, svuint8_t* tbl_Ch1, svuint8_t* tbl_Ch2, svuint8_t* tbl_Dl0, svuint8_t* tbl_Dl1, svuint8_t* tbl_Dl2, svuint8_t* tbl_Dh0, svuint8_t* tbl_Dh1, svuint8_t* tbl_Dh2 ) { svuint8x2_t poly = svcreate2_u8( svld1_u8(svwhilelt_b8_u32(0, 64), scratch), svld1_u8(svwhilelt_b8_u32(0, 64), (uint8_t*)scratch + 64) ); svint16_t val = svld1_s16(svwhilelt_b16_u32(0, srcCount), (int16_t*)coefficients); // dupe 16b elements across 128b vector val = svtbl_s16(val, NOMASK(svlsr_n_u16, svindex_u16(0, 1), 3)); // (alternative idea to do a 16->64b extended load, unpack, mul-lane) // strategy: multiply by 0,4,8... then interleave *1 and *2 to get full 0-63 vector svuint8_t valSwap = svreinterpret_u8_s16(NOMASK(svrevb_s16, val)); svuint8_t mul = svdupq_n_u8(0,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60); svuint8_t prodLoB = svpmullb_pair_u8(svreinterpret_u8_s16(val), mul); svuint8_t prodLoT = svpmullt_pair_u8(valSwap, mul); mul = svreinterpret_u8_u16(NOMASK(svrevb_u16, svreinterpret_u16_u8(mul))); svuint8_t prodHiB = svpmullt_pair_u8(svreinterpret_u8_s16(val), mul); svuint8_t prodHiT = svpmullb_pair_u8(valSwap, mul); // re-arrange into proper form (separate high/low bytes) svuint8_t prodLL = svtrn1_u8(prodLoB, prodLoT); svuint8_t prodLH = svtrn2_u8(prodLoB, prodLoT); svuint8_t prodHL = svtrn1_u8(prodHiB, prodHiT); svuint8_t prodHH = svtrn2_u8(prodHiB, prodHiT); // reduction components svuint8_t ri = NOMASK(svlsr_n_u8, prodHH, 4); svuint8_t red1 = svpmul_n_u8(ri, GF16_POLYNOMIAL & 0x1f); ri = svbcax_n_u8(ri, prodHH, 0xf0); svuint8_t red2 = svpmul_n_u8(ri, GF16_POLYNOMIAL & 0x1f); prodHH = svsri_n_u8(NOMASK(svlsl_n_u8, ri, 4), red1, 4); prodLH = sveor3_u8(prodLH, prodHL, prodHH); prodLL = sveor3_u8(prodLL, red2, NOMASK(svlsl_n_u8, red1, 4)); // we now have products (0,4,8...) in prodLL,prodLH // prepare proper arrangement for *1 and *2 for interleaving svuint8_t val2 = svreinterpret_u8_s16(gf16_vec_mul2_sve(val)); svuint8_t val2L = svtrn1_u8(val2, val2); svuint8_t val2H = svtrn2_u8(val2, val2); val2L = NOMASK(sveor_u8, val2L, prodLL); val2H = NOMASK(sveor_u8, val2H, prodLH); svuint8_t val1 = svreinterpret_u8_s16(val); svuint8_t val1L = svtrn1_u8(val1, val1); svuint8_t val1H = svtrn2_u8(val1, val1); // first interleave round to get tbl_A* svuint8_t prodL = svzip1_u8(prodLL, val2L); svuint8_t prodH = svzip1_u8(prodLH, val2H); svuint8_t val1La = svzip1_u8(val1L, val1L); svuint8_t val1Ha = svzip1_u8(val1H, val1H); val1La = NOMASK(sveor_u8, val1La, prodL); val1Ha = NOMASK(sveor_u8, val1Ha, prodH); *tbl_Al0 = svzip1_u8(prodL, val1La); *tbl_Ah0 = svzip1_u8(prodH, val1Ha); gf16_shuffle512_mul64(poly, *tbl_Al0, *tbl_Ah0, tbl_Al1, tbl_Ah1, tbl_Al2, tbl_Ah2); #define EXTRACT_LANE(dst, src, lane) \ *dst##l0 = svext_u8(*src##l0, *src##l0, lane*64); \ *dst##h0 = svext_u8(*src##h0, *src##h0, lane*64); \ *dst##l1 = svext_u8(*src##l1, *src##l1, lane*64); \ *dst##h1 = svext_u8(*src##h1, *src##h1, lane*64); \ *dst##l2 = svext_u8(*src##l2, *src##l2, lane*64); \ *dst##h2 = svext_u8(*src##h2, *src##h2, lane*64) // now get subsequent tables - needs to be width specific if(svcntb() >= srcCount*64) { // processed all at once // extract components and store out if(srcCount > 1) { EXTRACT_LANE(tbl_B, tbl_A, 1); } if(srcCount > 2) { EXTRACT_LANE(tbl_C, tbl_A, 2); } if(srcCount > 3) { EXTRACT_LANE(tbl_D, tbl_A, 3); } } else if(svcntb() >= 128) { // implies srcCount > 2 EXTRACT_LANE(tbl_B, tbl_A, 1); // do second interleave round // shift stuff into position prodL = svext_u8(prodL, prodL, 64); prodH = svext_u8(prodH, prodH, 64); val1La = svext_u8(val1La, val1La, 64); val1Ha = svext_u8(val1Ha, val1Ha, 64); *tbl_Cl0 = svzip1_u8(prodL, val1La); *tbl_Ch0 = svzip1_u8(prodH, val1Ha); gf16_shuffle512_mul64(poly, *tbl_Cl0, *tbl_Ch0, tbl_Cl1, tbl_Ch1, tbl_Cl2, tbl_Ch2); if(srcCount > 3) { EXTRACT_LANE(tbl_D, tbl_C, 1); } } else { // interleave one src at a time (2-4 interleave rounds) prodL = svext_u8(prodL, prodL, 32); prodH = svext_u8(prodH, prodH, 32); val1La = svext_u8(val1La, val1La, 32); val1Ha = svext_u8(val1Ha, val1Ha, 32); *tbl_Bl0 = svzip1_u8(prodL, val1La); *tbl_Bh0 = svzip1_u8(prodH, val1Ha); gf16_shuffle512_mul64(poly, *tbl_Bl0, *tbl_Bh0, tbl_Bl1, tbl_Bh1, tbl_Bl2, tbl_Bh2); if(srcCount > 2) { prodLL = svext_u8(prodLL, prodLL, 32); prodLH = svext_u8(prodLH, prodLH, 32); val2L = svext_u8(val2L, val2L, 32); val2H = svext_u8(val2H, val2H, 32); val1L = svext_u8(val1L, val1L, 32); val1H = svext_u8(val1H, val1H, 32); prodL = svzip1_u8(prodLL, val2L); prodH = svzip1_u8(prodLH, val2H); val1La = svzip1_u8(val1L, val1L); val1Ha = svzip1_u8(val1H, val1H); val1La = NOMASK(sveor_u8, val1La, prodL); val1Ha = NOMASK(sveor_u8, val1Ha, prodH); *tbl_Cl0 = svzip1_u8(prodL, val1La); *tbl_Ch0 = svzip1_u8(prodH, val1Ha); gf16_shuffle512_mul64(poly, *tbl_Cl0, *tbl_Ch0, tbl_Cl1, tbl_Ch1, tbl_Cl2, tbl_Ch2); if(srcCount > 3) { prodL = svext_u8(prodL, prodL, 32); prodH = svext_u8(prodH, prodH, 32); val1La = svext_u8(val1La, val1La, 32); val1Ha = svext_u8(val1Ha, val1Ha, 32); *tbl_Dl0 = svzip1_u8(prodL, val1La); *tbl_Dh0 = svzip1_u8(prodH, val1Ha); gf16_shuffle512_mul64(poly, *tbl_Dl0, *tbl_Dh0, tbl_Dl1, tbl_Dh1, tbl_Dl2, tbl_Dh2); } } } #undef EXTRACT_LANE } static HEDLEY_ALWAYS_INLINE void gf16_shuffle512_sve2_round1(svuint8x2_t va, svuint8_t* rl, svuint8_t* rh, svuint8_t tbl_l0, svuint8_t tbl_l1, svuint8_t tbl_l2, svuint8_t tbl_h0, svuint8_t tbl_h1, svuint8_t tbl_h2 ) { svuint8_t tmp = NOMASK(svand_n_u8, svget2_u8(va, 0), 0x3f); *rl = svtbl_u8(tbl_l0, tmp); *rh = svtbl_u8(tbl_h0, tmp); tmp = NOMASK(svlsr_n_u8, svget2_u8(va, 1), 2); // straddeld element - top 2 from low, bottom 2 from high // TODO: investigate a non-contiguous straddled component to save a vector register; SRI is generally slower than BSL though so may not be worth it svuint8_t mid = svbsl_n_u8( svget2_u8(va, 1), NOMASK(svlsr_n_u8, svget2_u8(va, 0), 4), 3 ); *rl = sveor3_u8(*rl, svtbl_u8(tbl_l1, mid), svtbl_u8(tbl_l2, tmp)); *rh = sveor3_u8(*rh, svtbl_u8(tbl_h1, mid), svtbl_u8(tbl_h2, tmp)); } static HEDLEY_ALWAYS_INLINE void gf16_shuffle512_sve2_round(svuint8x2_t va, svuint8_t* rl, svuint8_t* rh, svuint8_t* rl2, svuint8_t* rh2, svuint8_t tbl_l0, svuint8_t tbl_l1, svuint8_t tbl_l2, svuint8_t tbl_h0, svuint8_t tbl_h1, svuint8_t tbl_h2 ) { svuint8_t tmp = NOMASK(svand_n_u8, svget2_u8(va, 0), 0x3f); svuint8_t tmp2 = NOMASK(svlsr_n_u8, svget2_u8(va, 1), 2); *rl = sveor3_u8(*rl, svtbl_u8(tbl_l0, tmp), svtbl_u8(tbl_l2, tmp2)); *rh = sveor3_u8(*rh, svtbl_u8(tbl_h0, tmp), svtbl_u8(tbl_h2, tmp2)); svuint8_t mid = svbsl_n_u8( svget2_u8(va, 1), NOMASK(svlsr_n_u8, svget2_u8(va, 0), 4), 3 ); *rl2 = svtbl_u8(tbl_l1, mid); *rh2 = svtbl_u8(tbl_h1, mid); } static HEDLEY_ALWAYS_INLINE void gf16_shuffle512_sve2_round4(svuint8x2_t va, svuint8_t* rl, svuint8_t* rh, svuint8_t rl2, svuint8_t rh2, svuint8_t tbl_l0, svuint8_t tbl_l1, svuint8_t tbl_l2, svuint8_t tbl_h0, svuint8_t tbl_h1, svuint8_t tbl_h2 ) { *rl = NOMASK(sveor_u8, *rl, rl2); // free up a register to avoid a spill svuint8_t tmp = NOMASK(svand_n_u8, svget2_u8(va, 0), 0x3f); *rl = NOMASK(sveor_u8, *rl, svtbl_u8(tbl_l0, tmp)); *rh = sveor3_u8(*rh, svtbl_u8(tbl_h0, tmp), rh2); svuint8_t tmp2 = NOMASK(svlsr_n_u8, svget2_u8(va, 1), 2); svuint8_t mid = svbsl_n_u8( svget2_u8(va, 1), NOMASK(svlsr_n_u8, svget2_u8(va, 0), 4), 3 ); *rl = sveor3_u8(*rl, svtbl_u8(tbl_l1, mid), svtbl_u8(tbl_l2, tmp2)); *rh = sveor3_u8(*rh, svtbl_u8(tbl_h1, mid), svtbl_u8(tbl_h2, tmp2)); } static HEDLEY_ALWAYS_INLINE void gf16_shuffle512_muladd_x_sve2( const void *HEDLEY_RESTRICT scratch, GF16_BLKMAC_SRCDSTLIST, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, const int doPrefetch, const char* _pf ) { GF16_BLKMAC_SRCDST_UNUSED(4, 1); svuint8_t tbl_Al0, tbl_Al1, tbl_Al2, tbl_Ah0, tbl_Ah1, tbl_Ah2; svuint8_t tbl_Bl0, tbl_Bl1, tbl_Bl2, tbl_Bh0, tbl_Bh1, tbl_Bh2; svuint8_t tbl_Cl0, tbl_Cl1, tbl_Cl2, tbl_Ch0, tbl_Ch1, tbl_Ch2; svuint8_t tbl_Dl0, tbl_Dl1, tbl_Dl2, tbl_Dh0, tbl_Dh1, tbl_Dh2; gf16_shuffle512_sve2_calc_tables(scratch, srcCount, coefficients, &tbl_Al0, &tbl_Al1, &tbl_Al2, &tbl_Ah0, &tbl_Ah1, &tbl_Ah2, &tbl_Bl0, &tbl_Bl1, &tbl_Bl2, &tbl_Bh0, &tbl_Bh1, &tbl_Bh2, &tbl_Cl0, &tbl_Cl1, &tbl_Cl2, &tbl_Ch0, &tbl_Ch1, &tbl_Ch2, &tbl_Dl0, &tbl_Dl1, &tbl_Dl2, &tbl_Dh0, &tbl_Dh1, &tbl_Dh2 ); svuint8_t rl, rh, rl2, rh2; for(intptr_t ptr = -(intptr_t)len; ptr; ptr += svcntb()*2) { if(doPrefetch == 1) { svprfb(svptrue_b8(), _pf+ptr, SV_PLDL1KEEP); svprfb_vnum(svptrue_b8(), _pf+ptr, 1, SV_PLDL1KEEP); } if(doPrefetch == 2) { svprfb(svptrue_b8(), _pf+ptr, SV_PLDL2KEEP); svprfb_vnum(svptrue_b8(), _pf+ptr, 1, SV_PLDL2KEEP); } svuint8x2_t vb = svld2_u8(svptrue_b8(), _dst1+ptr*dstScale); gf16_shuffle512_sve2_round1(svld2_u8(svptrue_b8(), _src1+ptr*srcScale), &rl, &rh, tbl_Al0, tbl_Al1, tbl_Al2, tbl_Ah0, tbl_Ah1, tbl_Ah2); if(srcCount > 1) { gf16_shuffle512_sve2_round(svld2_u8(svptrue_b8(), _src2+ptr*srcScale), &rl, &rh, &rl2, &rh2, tbl_Bl0, tbl_Bl1, tbl_Bl2, tbl_Bh0, tbl_Bh1, tbl_Bh2); rl = sveor3_u8(rl, rl2, svget2_u8(vb, 0)); rh = sveor3_u8(rh, rh2, svget2_u8(vb, 1)); } else { rl2 = svget2_u8(vb, 0); rh2 = svget2_u8(vb, 1); } if(srcCount > 2) { gf16_shuffle512_sve2_round(svld2_u8(svptrue_b8(), _src3+ptr*srcScale), &rl, &rh, &rl2, &rh2, tbl_Cl0, tbl_Cl1, tbl_Cl2, tbl_Ch0, tbl_Ch1, tbl_Ch2); } if(srcCount > 3) { gf16_shuffle512_sve2_round4(svld2_u8(svptrue_b8(), _src4+ptr*srcScale), &rl, &rh, rl2, rh2, tbl_Dl0, tbl_Dl1, tbl_Dl2, tbl_Dh0, tbl_Dh1, tbl_Dh2); } if(srcCount & 1) { rl = NOMASK(sveor_u8, rl, rl2); rh = NOMASK(sveor_u8, rh, rh2); } svst2_u8(svptrue_b8(), _dst1+ptr*dstScale, svcreate2_u8(rl, rh)); } } #endif /*defined(__ARM_FEATURE_SVE2) && !defined(PARPAR_SLIM_GF16)*/ #ifdef PARPAR_INVERT_SUPPORT void gf16_shuffle_mul_512_sve2(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t val, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #if defined(__ARM_FEATURE_SVE2) && !defined(PARPAR_SLIM_GF16) svuint8_t tbl_l0, tbl_l1, tbl_l2, tbl_h0, tbl_h1, tbl_h2; gf16_shuffle512_sve2_calc_tables(scratch, 1, &val, &tbl_l0, &tbl_l1, &tbl_l2, &tbl_h0, &tbl_h1, &tbl_h2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ); uint8_t* _src = (uint8_t*)src + len; uint8_t* _dst = (uint8_t*)dst + len; svuint8_t rl, rh; for(intptr_t ptr = -(intptr_t)len; ptr; ptr += svcntb()*2) { gf16_shuffle512_sve2_round1(svld2_u8(svptrue_b8(), _src+ptr), &rl, &rh, tbl_l0, tbl_l1, tbl_l2, tbl_h0, tbl_h1, tbl_h2); svst2_u8(svptrue_b8(), _dst+ptr, svcreate2_u8(rl, rh)); } #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(val); #endif } #endif void gf16_shuffle_muladd_512_sve2(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t val, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #if defined(__ARM_FEATURE_SVE2) && !defined(PARPAR_SLIM_GF16) gf16_muladd_single(scratch, &gf16_shuffle512_muladd_x_sve2, dst, src, len, val); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(val); #endif } #if defined(__ARM_FEATURE_SVE2) && !defined(PARPAR_SLIM_GF16) GF16_MULADD_MULTI_FUNCS(gf16_shuffle, _512_sve2, gf16_shuffle512_muladd_x_sve2, 4, svcntb()*2, 0, (void)0) #else GF16_MULADD_MULTI_FUNCS_STUB(gf16_shuffle, _512_sve2) #endif // checksum stuff #include "gf16_checksum_sve.h" #if defined(__ARM_FEATURE_SVE2) && !defined(PARPAR_SLIM_GF16) GF_PREPARE_PACKED_FUNCS(gf16_shuffle, _512_sve2, svcntb()*2, gf16_prepare_block_sve, gf16_prepare_blocku_sve, 4, (void)0, svint16_t checksum = svdup_n_s16(0), gf16_checksum_block_sve, gf16_checksum_blocku_sve, gf16_checksum_exp_sve, gf16_checksum_prepare_sve, 64) #else GF_PREPARE_PACKED_FUNCS_STUB(gf16_shuffle, _512_sve2) #endif void* gf16_shuffle_init_512_sve(int polynomial) { #if defined(__ARM_FEATURE_SVE2) && !defined(PARPAR_SLIM_GF16) uint8_t* ret; if((polynomial | 0x1f) != 0x1101f) return NULL; ALIGN_ALLOC(ret, 128, 64); for(int i=0; i<64; i++) { int p = i << 16; if(p & 0x200000) p ^= polynomial << 5; if(p & 0x100000) p ^= polynomial << 4; if(p & 0x080000) p ^= polynomial << 3; if(p & 0x040000) p ^= polynomial << 2; if(p & 0x020000) p ^= polynomial << 1; if(p & 0x010000) p ^= polynomial << 0; ret[i] = p & 0xff; ret[i+64] = (p >> 8) & 0xff; } return ret; #else UNUSED(polynomial); return NULL; #endif } par2cmdline-turbo-1.5.0/parpar/gf16/gf16_shuffle_avx.c000066400000000000000000000006301524160147200224000ustar00rootroot00000000000000 #include "../src/platform.h" #define MWORD_SIZE 16 #define _mword __m128i #define _MM(f) _mm_ ## f #define _MMI(f) _mm_ ## f ## _si128 #define _FNSUFFIX _avx #define _MM_END #if defined(__AVX__) # define _AVAILABLE # define _AVAILABLE_AVX #endif #include "gf16_shuffle_x86.h" #undef _AVAILABLE #undef _AVAILABLE_AVX #undef MWORD_SIZE #undef _mword #undef _MM #undef _MMI #undef _FNSUFFIX #undef _MM_END par2cmdline-turbo-1.5.0/parpar/gf16/gf16_shuffle_avx2.c000066400000000000000000000156521524160147200224740ustar00rootroot00000000000000 #include "../src/platform.h" #define MWORD_SIZE 32 #define _mword __m256i #define _MM(f) _mm256_ ## f #define _MMI(f) _mm256_ ## f ## _si256 #define _FNSUFFIX _avx2 #define _MM_END _mm256_zeroupper(); #if defined(__AVX2__) # define _AVAILABLE #endif #include "gf16_shuffle_x86.h" #include "gf16_shuffle2x_x86.h" #include "gf16_muladd_multi.h" #if defined(_AVAILABLE) && !defined(PARPAR_SLIM_GF16) static HEDLEY_ALWAYS_INLINE void gf16_shuffle2x_muladd_round_avx2(__m256i* _dst, const int srcCount, const uint8_t* _src1, const uint8_t* _src2, intptr_t srcOffset, __m256i shufNormLoA, __m256i shufNormLoB, __m256i shufNormHiA, __m256i shufNormHiB, __m256i shufSwapLoA, __m256i shufSwapLoB, __m256i shufSwapHiA, __m256i shufSwapHiB) { __m256i data = _mm256_load_si256((const __m256i*)(_src1 + srcOffset)); __m256i mask = _mm256_set1_epi8(0x0f); __m256i ti = _mm256_and_si256(mask, data); __m256i swapped = _mm256_shuffle_epi8(shufSwapLoA, ti); __m256i result = _mm256_shuffle_epi8(shufNormLoA, ti); ti = _mm256_and_si256(mask, _mm256_srli_epi16(data, 4)); swapped = _mm256_xor_si256(_mm256_shuffle_epi8(shufSwapHiA, ti), swapped); result = _mm256_xor_si256(_mm256_shuffle_epi8(shufNormHiA, ti), result); result = _mm256_xor_si256(result, _mm256_load_si256(_dst)); if(srcCount > 1) { data = _mm256_load_si256((const __m256i*)(_src2 + srcOffset)); ti = _mm256_and_si256(mask, data); result = _mm256_xor_si256(_mm256_shuffle_epi8(shufNormLoB, ti), result); swapped = _mm256_xor_si256(_mm256_shuffle_epi8(shufSwapLoB, ti), swapped); ti = _mm256_and_si256(mask, _mm256_srli_epi16(data, 4)); result = _mm256_xor_si256(_mm256_shuffle_epi8(shufNormHiB, ti), result); swapped = _mm256_xor_si256(_mm256_shuffle_epi8(shufSwapHiB, ti), swapped); } swapped = _mm256_permute2x128_si256(swapped, swapped, 0x01); result = _mm256_xor_si256(result, swapped); _mm256_store_si256(_dst, result); } static HEDLEY_ALWAYS_INLINE void gf16_shuffle2x_muladd_x_avx2(const void *HEDLEY_RESTRICT scratch, GF16_BLKMAC_SRCDSTLIST, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, const int doPrefetch, const char* _pf) { GF16_BLKMAC_SRCDST_UNUSED(2, 1); __m256i shufNormLoA, shufSwapLoA, shufNormHiA, shufSwapHiA; __m256i shufNormLoB, shufSwapLoB, shufNormHiB, shufSwapHiB; if(srcCount == 2) { __m256i prodLo0, prodHi0, prodLo1, prodHi1, prodLo2, prodHi2, prodLo3, prodHi3; __m256i polyl = _mm256_broadcastsi128_si256(_mm_load_si128((__m128i*)scratch)); __m256i polyh = _mm256_setzero_si256(); #ifndef GF16_POLYNOMIAL_SIMPLE polyh = _mm256_broadcastsi128_si256(_mm_load_si128((__m128i*)scratch + 1)); #endif __m256i prod0 = _mm256_shuffle_epi8( _mm256_broadcastd_epi32(_mm_cvtsi32_si128(read32(coefficients))), _mm256_set_epi32( 0x03020302, 0x03020302, 0x03020302, 0x03020302, 0x01000100, 0x01000100, 0x01000100, 0x01000100 ) ); __m256i mul2 = gf16_vec256_mul2(prod0); __m256i mul4 = gf16_vec256_mul2(mul2); prod0 = _mm256_slli_epi32(prod0, 16); prod0 = _mm256_xor_si256(prod0, _mm256_slli_epi64(mul2, 32)); prod0 = _mm256_xor_si256(prod0, _mm256_slli_si256(mul4, 8)); __m256i prod8 = _mm256_xor_si256(prod0, gf16_vec256_mul2(mul4)); __m256i shuf = _mm256_set_epi32( 0x0f0d0b09, 0x07050301, 0x0e0c0a08, 0x06040200, 0x0f0d0b09, 0x07050301, 0x0e0c0a08, 0x06040200 ); prod0 = _mm256_shuffle_epi8(prod0, shuf); prod8 = _mm256_shuffle_epi8(prod8, shuf); prodLo0 = _mm256_unpacklo_epi64(prod0, prod8); prodHi0 = _mm256_unpackhi_epi64(prod0, prod8); mul16_vec2x(polyl, polyh, prodLo0, prodHi0, &prodLo1, &prodHi1); mul16_vec2x(polyl, polyh, prodLo1, prodHi1, &prodLo2, &prodHi2); mul16_vec2x(polyl, polyh, prodLo2, prodHi2, &prodLo3, &prodHi3); // mix vectors #define JOIN_VEC(a, b, i) _mm256_permute2x128_si256(a, b, 0x20 + i*0x11) shufNormLoA = JOIN_VEC(prodLo0, prodHi2, 0); shufSwapLoA = JOIN_VEC(prodHi0, prodLo2, 0); shufNormLoB = JOIN_VEC(prodLo0, prodHi2, 1); shufSwapLoB = JOIN_VEC(prodHi0, prodLo2, 1); shufNormHiA = JOIN_VEC(prodLo1, prodHi3, 0); shufSwapHiA = JOIN_VEC(prodHi1, prodLo3, 0); shufNormHiB = JOIN_VEC(prodLo1, prodHi3, 1); shufSwapHiB = JOIN_VEC(prodHi1, prodLo3, 1); #undef JOIN_VEC } else { gf16_shuffle2x_setup_vec_avx2(scratch, coefficients[0], &shufNormLoA, &shufSwapLoA, &shufNormHiA, &shufSwapHiA); // MSVC, in Debug mode, complains about unintialized variables, so set it to something... // ...but on Clang6 on macOS seems to lack these functions, so avoid that trap #ifndef __APPLE__ shufNormLoB = _mm256_undefined_si256(); shufSwapLoB = _mm256_undefined_si256(); shufNormHiB = _mm256_undefined_si256(); shufSwapHiB = _mm256_undefined_si256(); #endif } if(doPrefetch) { intptr_t ptr = -(intptr_t)len; if(len & (sizeof(__m256i)*2-1)) { // number of loop iterations isn't even, so do one iteration to make it even gf16_shuffle2x_muladd_round_avx2( (__m256i*)(_dst1+ptr*dstScale), srcCount, _src1, _src2, ptr*srcScale, shufNormLoA, shufNormLoB, shufNormHiA, shufNormHiB, shufSwapLoA, shufSwapLoB, shufSwapHiA, shufSwapHiB ); if(doPrefetch == 1) _mm_prefetch(_pf+ptr, MM_HINT_WT1); if(doPrefetch == 2) _mm_prefetch(_pf+ptr, _MM_HINT_T2); ptr += sizeof(__m256i); } while(ptr) { gf16_shuffle2x_muladd_round_avx2( (__m256i*)(_dst1+ptr*dstScale), srcCount, _src1, _src2, ptr*srcScale, shufNormLoA, shufNormLoB, shufNormHiA, shufNormHiB, shufSwapLoA, shufSwapLoB, shufSwapHiA, shufSwapHiB ); ptr += sizeof(__m256i); gf16_shuffle2x_muladd_round_avx2( (__m256i*)(_dst1+ptr*dstScale), srcCount, _src1, _src2, ptr*srcScale, shufNormLoA, shufNormLoB, shufNormHiA, shufNormHiB, shufSwapLoA, shufSwapLoB, shufSwapHiA, shufSwapHiB ); if(doPrefetch == 1) _mm_prefetch(_pf+ptr, MM_HINT_WT1); if(doPrefetch == 2) _mm_prefetch(_pf+ptr, _MM_HINT_T2); ptr += sizeof(__m256i); } } else { for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(__m256i)) { gf16_shuffle2x_muladd_round_avx2( (__m256i*)(_dst1+ptr*dstScale), srcCount, _src1, _src2, ptr*srcScale, shufNormLoA, shufNormLoB, shufNormHiA, shufNormHiB, shufSwapLoA, shufSwapLoB, shufSwapHiA, shufSwapHiB ); } } } #endif #if defined(_AVAILABLE) && !defined(PARPAR_SLIM_GF16) && defined(PLATFORM_AMD64) GF16_MULADD_MULTI_FUNCS(gf16_shuffle2x, _avx2, gf16_shuffle2x_muladd_x_avx2, 2, sizeof(__m256i), 0, _mm256_zeroupper()) #else GF16_MULADD_MULTI_FUNCS_STUB(gf16_shuffle2x, _avx2) #endif void gf16_shuffle2x_muladd_avx2(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t val, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #if defined(_AVAILABLE) && !defined(PARPAR_SLIM_GF16) gf16_muladd_single(scratch, &gf16_shuffle2x_muladd_x_avx2, dst, src, len, val); _mm256_zeroupper(); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(val); #endif } #undef _AVAILABLE #undef MWORD_SIZE #undef _mword #undef _MM #undef _MMI #undef _FNSUFFIX #undef _MM_END par2cmdline-turbo-1.5.0/parpar/gf16/gf16_shuffle_avx512.c000066400000000000000000000357241524160147200226440ustar00rootroot00000000000000 #include "../src/platform.h" #define MWORD_SIZE 64 #define _mword __m512i #define _MM(f) _mm512_ ## f #define _MMI(f) _mm512_ ## f ## _si512 #define _FNSUFFIX _avx512 /* still called "mm256" even in AVX512? */ #define _MM_END _mm256_zeroupper(); #if defined(__AVX512BW__) && defined(__AVX512VL__) # define _AVAILABLE #endif #include "gf16_shuffle_x86.h" #include "gf16_shuffle2x_x86.h" #include "gf16_muladd_multi.h" #ifdef _AVAILABLE static HEDLEY_ALWAYS_INLINE void gf16_shuffle_calc2x_table(const uint16_t* coefficients, __m256i polyl, __m256i polyh, __m256i* prodLo0, __m256i* prodHi0, __m256i* prodLo1, __m256i* prodHi1, __m256i* prodLo2, __m256i* prodHi2, __m256i* prodLo3, __m256i* prodHi3) { __m256i prod0, mul8; gf16_initial_mul_vector_x2(coefficients, &prod0, &mul8); __m256i prod8 = _mm256_xor_si256(prod0, mul8); __m256i shuf = _mm256_set_epi32( 0x0f0d0b09, 0x07050301, 0x0e0c0a08, 0x06040200, 0x0f0d0b09, 0x07050301, 0x0e0c0a08, 0x06040200 ); prod0 = _mm256_shuffle_epi8(prod0, shuf); prod8 = _mm256_shuffle_epi8(prod8, shuf); *prodLo0 = _mm256_unpacklo_epi64(prod0, prod8); *prodHi0 = _mm256_unpackhi_epi64(prod0, prod8); mul16_vec2x(polyl, polyh, *prodLo0, *prodHi0, prodLo1, prodHi1); mul16_vec2x(polyl, polyh, *prodLo1, *prodHi1, prodLo2, prodHi2); mul16_vec2x(polyl, polyh, *prodLo2, *prodHi2, prodLo3, prodHi3); } static HEDLEY_ALWAYS_INLINE void gf16_shuffle_calc4x_table(const uint16_t* coefficients, const int do4, __m512i polyl, __m512i polyh, __m512i* prodLo0, __m512i* prodHi0, __m512i* prodLo1, __m512i* prodHi1, __m512i* prodLo2, __m512i* prodHi2, __m512i* prodLo3, __m512i* prodHi3) { __m512i prod0, mul8; gf16_initial_mul_vector_x4(coefficients, &prod0, &mul8, do4); __m512i prod8 = _mm512_xor_si512(prod0, mul8); prod0 = separate_low_high512(prod0); prod8 = separate_low_high512(prod8); *prodLo0 = _mm512_unpacklo_epi64(prod0, prod8); *prodHi0 = _mm512_unpackhi_epi64(prod0, prod8); mul16_vec4x(polyl, polyh, *prodLo0, *prodHi0, prodLo1, prodHi1); mul16_vec4x(polyl, polyh, *prodLo1, *prodHi1, prodLo2, prodHi2); mul16_vec4x(polyl, polyh, *prodLo2, *prodHi2, prodLo3, prodHi3); } static HEDLEY_ALWAYS_INLINE void gf16_shuffle_avx512_round( __m512i* src, __m512i* tpl, __m512i* tph, __m512i prodLo0, __m512i prodHi0, __m512i prodLo1, __m512i prodHi1, __m512i prodLo2, __m512i prodHi2, __m512i prodLo3, __m512i prodHi3 ) { __m512i ta = _mm512_load_si512(src); __m512i tb = _mm512_load_si512(src + 1); __m512i til = _mm512_and_si512(_mm512_set1_epi8(0x0f), tb); __m512i tih = _mm512_and_si512(_mm512_set1_epi8(0x0f), _mm512_srli_epi16(tb, 4)); *tpl = _mm512_ternarylogic_epi32(_mm512_shuffle_epi8(prodLo0, til), _mm512_shuffle_epi8(prodLo1, tih), *tpl, 0x96); *tph = _mm512_ternarylogic_epi32(_mm512_shuffle_epi8(prodHi0, til), _mm512_shuffle_epi8(prodHi1, tih), *tph, 0x96); til = _mm512_and_si512(_mm512_set1_epi8(0x0f), ta); tih = _mm512_and_si512(_mm512_set1_epi8(0x0f), _mm512_srli_epi16(ta, 4)); *tpl = _mm512_ternarylogic_epi32(*tpl, _mm512_shuffle_epi8(prodLo2, til), _mm512_shuffle_epi8(prodLo3, tih), 0x96); *tph = _mm512_ternarylogic_epi32(*tph, _mm512_shuffle_epi8(prodHi2, til), _mm512_shuffle_epi8(prodHi3, tih), 0x96); } static HEDLEY_ALWAYS_INLINE void gf16_shuffle_muladd_x_avx512( const void *HEDLEY_RESTRICT scratch, GF16_BLKMAC_SRCDSTLIST, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, const int doPrefetch, const char* _pf ) { GF16_BLKMAC_SRCDST_UNUSED(3, 1); __m512i polyl, polyh; if(srcCount > 1) { polyl = _mm512_broadcast_i32x4(_mm_load_si128((__m128i*)scratch)); #ifndef GF16_POLYNOMIAL_SIMPLE polyh = _mm512_broadcast_i32x4(_mm_load_si128((__m128i*)scratch + 1)); #else polyh = _mm512_setzero_si512(); #endif } __m512i lowA0, lowA1, lowA2, lowA3, highA0, highA1, highA2, highA3; __m512i lowB0, lowB1, lowB2, lowB3, highB0, highB1, highB2, highB3; __m512i lowC0, lowC1, lowC2, lowC3, highC0, highC1, highC2, highC3; __m512i lowD0, lowD1, lowD2, lowD3, highD0, highD1, highD2, highD3; if(srcCount >= 3) { __m512i prodLo0, prodHi0, prodLo1, prodHi1, prodLo2, prodHi2, prodLo3, prodHi3; gf16_shuffle_calc4x_table(coefficients, (srcCount==4), polyl, polyh, &prodLo0, &prodHi0, &prodLo1, &prodHi1, &prodLo2, &prodHi2, &prodLo3, &prodHi3); // generate final vecs #define GEN_TABLE(m, n, p) \ low##m = _mm512_shuffle_i32x4(prodLo##n, prodLo##n, _MM_SHUFFLE(p,p,p,p)); \ high##m = _mm512_shuffle_i32x4(prodHi##n, prodHi##n, _MM_SHUFFLE(p,p,p,p)) GEN_TABLE(A0, 0, 0); GEN_TABLE(A1, 1, 0); GEN_TABLE(A2, 2, 0); GEN_TABLE(A3, 3, 0); GEN_TABLE(B0, 0, 1); GEN_TABLE(B1, 1, 1); GEN_TABLE(B2, 2, 1); GEN_TABLE(B3, 3, 1); GEN_TABLE(C0, 0, 2); GEN_TABLE(C1, 1, 2); GEN_TABLE(C2, 2, 2); GEN_TABLE(C3, 3, 2); if(srcCount == 4) { GEN_TABLE(D0, 0, 3); GEN_TABLE(D1, 1, 3); GEN_TABLE(D2, 2, 3); GEN_TABLE(D3, 3, 3); } #undef GEN_TABLE } if(srcCount == 2) { __m256i prodLo0, prodHi0, prodLo1, prodHi1, prodLo2, prodHi2, prodLo3, prodHi3; gf16_shuffle_calc2x_table(coefficients, _mm512_castsi512_si256(polyl), _mm512_castsi512_si256(polyh), &prodLo0, &prodHi0, &prodLo1, &prodHi1, &prodLo2, &prodHi2, &prodLo3, &prodHi3); // generate final vecs #define GEN_TABLE(n) \ lowA##n = _mm512_shuffle_i32x4(_mm512_castsi256_si512(prodLo##n), _mm512_castsi256_si512(prodLo##n), _MM_SHUFFLE(0,0,0,0)); \ highA##n = _mm512_shuffle_i32x4(_mm512_castsi256_si512(prodHi##n), _mm512_castsi256_si512(prodHi##n), _MM_SHUFFLE(0,0,0,0)); \ lowB##n = _mm512_shuffle_i32x4(_mm512_castsi256_si512(prodLo##n), _mm512_castsi256_si512(prodLo##n), _MM_SHUFFLE(1,1,1,1)); \ highB##n = _mm512_shuffle_i32x4(_mm512_castsi256_si512(prodHi##n), _mm512_castsi256_si512(prodHi##n), _MM_SHUFFLE(1,1,1,1)) GEN_TABLE(0); GEN_TABLE(1); GEN_TABLE(2); GEN_TABLE(3); #undef GEN_TABLE } if(srcCount == 1) { gf16_shuffle_setup_vec(scratch, coefficients[0], &lowA0, &highA0, &lowA1, &highA1, &lowA2, &highA2, &lowA3, &highA3); } for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(__m512i)*2) { __m512i tph = _mm512_load_si512((__m512i*)(_dst1+ptr*dstScale)); __m512i tpl = _mm512_load_si512((__m512i*)(_dst1+ptr*dstScale) + 1); gf16_shuffle_avx512_round((__m512i*)(_src1+ptr*srcScale), &tpl, &tph, lowA0, highA0, lowA1, highA1, lowA2, highA2, lowA3, highA3); if(srcCount >= 2) gf16_shuffle_avx512_round((__m512i*)(_src2+ptr*srcScale), &tpl, &tph, lowB0, highB0, lowB1, highB1, lowB2, highB2, lowB3, highB3); if(srcCount >= 3) gf16_shuffle_avx512_round((__m512i*)(_src3+ptr*srcScale), &tpl, &tph, lowC0, highC0, lowC1, highC1, lowC2, highC2, lowC3, highC3); if(srcCount >= 4) gf16_shuffle_avx512_round((__m512i*)(_src4+ptr*srcScale), &tpl, &tph, lowD0, highD0, lowD1, highD1, lowD2, highD2, lowD3, highD3); _mm512_store_si512((__m512i*)(_dst1+ptr*dstScale), tph); _mm512_store_si512((__m512i*)(_dst1+ptr*dstScale) + 1, tpl); if(doPrefetch == 1) _mm_prefetch(_pf+(ptr>>1), MM_HINT_WT1); if(doPrefetch == 2) _mm_prefetch(_pf+(ptr>>1), _MM_HINT_T1); } } #endif // defined(_AVAILABLE) #if defined(_AVAILABLE) && defined(PLATFORM_AMD64) GF16_MULADD_MULTI_FUNCS(gf16_shuffle, _avx512, gf16_shuffle_muladd_x_avx512, 3, sizeof(__m512i)*2, 1, _mm256_zeroupper()) #else GF16_MULADD_MULTI_FUNCS_STUB(gf16_shuffle, _avx512) #endif #if defined(_AVAILABLE) && !defined(PARPAR_SLIM_GF16) static HEDLEY_ALWAYS_INLINE void gf16_shuffle2x_avx512_round1( __m512i* src, __m512i* result, __m512i* swapped, __m512i shufNormLo, __m512i shufNormHi, __m512i shufSwapLo, __m512i shufSwapHi ) { __m512i data = _mm512_load_si512(src); __m512i til = _mm512_and_si512(_mm512_set1_epi8(0x0f), data); __m512i tih = _mm512_and_si512(_mm512_set1_epi8(0x0f), _mm512_srli_epi16(data, 4)); *result = _mm512_ternarylogic_epi32( _mm512_shuffle_epi8(shufNormLo, til), _mm512_shuffle_epi8(shufNormHi, tih), *result, 0x96 ); *swapped = _mm512_xor_si512( _mm512_shuffle_epi8(shufSwapLo, til), _mm512_shuffle_epi8(shufSwapHi, tih) ); } static HEDLEY_ALWAYS_INLINE void gf16_shuffle2x_avx512_round( __m512i* src, __m512i* result, __m512i* swapped, __m512i shufNormLo, __m512i shufNormHi, __m512i shufSwapLo, __m512i shufSwapHi ) { __m512i data = _mm512_load_si512(src); __m512i til = _mm512_and_si512(_mm512_set1_epi8(0x0f), data); __m512i tih = _mm512_and_si512(_mm512_set1_epi8(0x0f), _mm512_srli_epi16(data, 4)); *result = _mm512_ternarylogic_epi32( *result, _mm512_shuffle_epi8(shufNormLo, til), _mm512_shuffle_epi8(shufNormHi, tih), 0x96 ); *swapped = _mm512_ternarylogic_epi32( *swapped, _mm512_shuffle_epi8(shufSwapLo, til), _mm512_shuffle_epi8(shufSwapHi, tih), 0x96 ); } static HEDLEY_ALWAYS_INLINE void gf16_shuffle2x_muladd_x_avx512( const void *HEDLEY_RESTRICT scratch, GF16_BLKMAC_SRCDSTLIST, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, const int doPrefetch, const char* _pf ) { GF16_BLKMAC_SRCDST_UNUSED(6, 1); __m512i polyl, polyh; if(srcCount > 1) { polyl = _mm512_broadcast_i32x4(_mm_load_si128((__m128i*)scratch)); #ifndef GF16_POLYNOMIAL_SIMPLE polyh = _mm512_broadcast_i32x4(_mm_load_si128((__m128i*)scratch + 1)); #else polyh = _mm512_setzero_si512(); #endif } __m512i shufNormLoA, shufNormHiA, shufSwapLoA, shufSwapHiA; __m512i shufNormLoB, shufNormHiB, shufSwapLoB, shufSwapHiB; __m512i shufNormLoC, shufNormHiC, shufSwapLoC, shufSwapHiC; __m512i shufNormLoD, shufNormHiD, shufSwapLoD, shufSwapHiD; __m512i shufNormLoE, shufNormHiE, shufSwapLoE, shufSwapHiE; __m512i shufNormLoF, shufNormHiF, shufSwapLoF, shufSwapHiF; #define JOIN_VEC(a, b, i) _mm512_shuffle_i32x4(a, b, _MM_SHUFFLE(i,i,i,i)) if(srcCount >= 3) { __m512i prodLo0, prodHi0, prodLo1, prodHi1, prodLo2, prodHi2, prodLo3, prodHi3; const int do4 = (srcCount==4 || srcCount==6); gf16_shuffle_calc4x_table(coefficients, do4, polyl, polyh, &prodLo0, &prodHi0, &prodLo1, &prodHi1, &prodLo2, &prodHi2, &prodLo3, &prodHi3); shufNormLoA = JOIN_VEC(prodLo0, prodHi2, 0); shufSwapLoA = JOIN_VEC(prodHi0, prodLo2, 0); shufNormLoB = JOIN_VEC(prodLo0, prodHi2, 1); shufSwapLoB = JOIN_VEC(prodHi0, prodLo2, 1); shufNormLoC = JOIN_VEC(prodLo0, prodHi2, 2); shufSwapLoC = JOIN_VEC(prodHi0, prodLo2, 2); shufNormLoD = JOIN_VEC(prodLo0, prodHi2, 3); shufSwapLoD = JOIN_VEC(prodHi0, prodLo2, 3); shufNormHiA = JOIN_VEC(prodLo1, prodHi3, 0); shufSwapHiA = JOIN_VEC(prodHi1, prodLo3, 0); shufNormHiB = JOIN_VEC(prodLo1, prodHi3, 1); shufSwapHiB = JOIN_VEC(prodHi1, prodLo3, 1); shufNormHiC = JOIN_VEC(prodLo1, prodHi3, 2); shufSwapHiC = JOIN_VEC(prodHi1, prodLo3, 2); if(do4) { shufNormHiD = JOIN_VEC(prodLo1, prodHi3, 3); shufSwapHiD = JOIN_VEC(prodHi1, prodLo3, 3); } } #undef JOIN_VEC #define JOIN_VEC(a, b, i) _mm512_shuffle_i32x4(_mm512_castsi256_si512(a), _mm512_castsi256_si512(b), _MM_SHUFFLE(i,i,i,i)) if(srcCount == 6) { __m256i prodLo0, prodHi0, prodLo1, prodHi1, prodLo2, prodHi2, prodLo3, prodHi3; gf16_shuffle_calc2x_table(coefficients+4, _mm512_castsi512_si256(polyl), _mm512_castsi512_si256(polyh), &prodLo0, &prodHi0, &prodLo1, &prodHi1, &prodLo2, &prodHi2, &prodLo3, &prodHi3); shufNormLoE = JOIN_VEC(prodLo0, prodHi2, 0); shufSwapLoE = JOIN_VEC(prodHi0, prodLo2, 0); shufNormLoF = JOIN_VEC(prodLo0, prodHi2, 1); shufSwapLoF = JOIN_VEC(prodHi0, prodLo2, 1); shufNormHiE = JOIN_VEC(prodLo1, prodHi3, 0); shufSwapHiE = JOIN_VEC(prodHi1, prodLo3, 0); shufNormHiF = JOIN_VEC(prodLo1, prodHi3, 1); shufSwapHiF = JOIN_VEC(prodHi1, prodLo3, 1); } if(srcCount == 5) { __m256i prodLo0, prodHi0, prodLo1, prodHi1, prodLo2, prodHi2, prodLo3, prodHi3; gf16_shuffle_calc2x_table(coefficients+3, _mm512_castsi512_si256(polyl), _mm512_castsi512_si256(polyh), &prodLo0, &prodHi0, &prodLo1, &prodHi1, &prodLo2, &prodHi2, &prodLo3, &prodHi3); shufNormLoD = JOIN_VEC(prodLo0, prodHi2, 0); shufSwapLoD = JOIN_VEC(prodHi0, prodLo2, 0); shufNormLoE = JOIN_VEC(prodLo0, prodHi2, 1); shufSwapLoE = JOIN_VEC(prodHi0, prodLo2, 1); shufNormHiD = JOIN_VEC(prodLo1, prodHi3, 0); shufSwapHiD = JOIN_VEC(prodHi1, prodLo3, 0); shufNormHiE = JOIN_VEC(prodLo1, prodHi3, 1); shufSwapHiE = JOIN_VEC(prodHi1, prodLo3, 1); } if(srcCount == 2) { __m256i prodLo0, prodHi0, prodLo1, prodHi1, prodLo2, prodHi2, prodLo3, prodHi3; gf16_shuffle_calc2x_table(coefficients, _mm512_castsi512_si256(polyl), _mm512_castsi512_si256(polyh), &prodLo0, &prodHi0, &prodLo1, &prodHi1, &prodLo2, &prodHi2, &prodLo3, &prodHi3); shufNormLoA = JOIN_VEC(prodLo0, prodHi2, 0); shufSwapLoA = JOIN_VEC(prodHi0, prodLo2, 0); shufNormLoB = JOIN_VEC(prodLo0, prodHi2, 1); shufSwapLoB = JOIN_VEC(prodHi0, prodLo2, 1); shufNormHiA = JOIN_VEC(prodLo1, prodHi3, 0); shufSwapHiA = JOIN_VEC(prodHi1, prodLo3, 0); shufNormHiB = JOIN_VEC(prodLo1, prodHi3, 1); shufSwapHiB = JOIN_VEC(prodHi1, prodLo3, 1); } #undef JOIN_VEC if(srcCount == 1) { gf16_shuffle2x_setup_vec_avx512(scratch, coefficients[0], &shufNormLoA, &shufSwapLoA, &shufNormHiA, &shufSwapHiA); } for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(__m512i)) { __m512i swapped, result = _mm512_load_si512((__m512i*)(_dst1+ptr*dstScale)); gf16_shuffle2x_avx512_round1((__m512i*)(_src1+ptr*srcScale), &result, &swapped, shufNormLoA, shufNormHiA, shufSwapLoA, shufSwapHiA); if(srcCount >= 2) gf16_shuffle2x_avx512_round((__m512i*)(_src2+ptr*srcScale), &result, &swapped, shufNormLoB, shufNormHiB, shufSwapLoB, shufSwapHiB); if(srcCount >= 3) gf16_shuffle2x_avx512_round((__m512i*)(_src3+ptr*srcScale), &result, &swapped, shufNormLoC, shufNormHiC, shufSwapLoC, shufSwapHiC); if(srcCount >= 4) gf16_shuffle2x_avx512_round((__m512i*)(_src4+ptr*srcScale), &result, &swapped, shufNormLoD, shufNormHiD, shufSwapLoD, shufSwapHiD); if(srcCount >= 5) gf16_shuffle2x_avx512_round((__m512i*)(_src5+ptr*srcScale), &result, &swapped, shufNormLoE, shufNormHiE, shufSwapLoE, shufSwapHiE); if(srcCount >= 6) gf16_shuffle2x_avx512_round((__m512i*)(_src6+ptr*srcScale), &result, &swapped, shufNormLoF, shufNormHiF, shufSwapLoF, shufSwapHiF); swapped = _mm512_shuffle_i32x4(swapped, swapped, _MM_SHUFFLE(1,0,3,2)); result = _mm512_xor_si512(result, swapped); _mm512_store_si512((__m512i*)(_dst1+ptr*dstScale), result); if(doPrefetch == 1) _mm_prefetch(_pf+ptr, MM_HINT_WT1); if(doPrefetch == 2) _mm_prefetch(_pf+ptr, _MM_HINT_T1); } } #endif // defined(_AVAILABLE) #if defined(_AVAILABLE) && !defined(PARPAR_SLIM_GF16) && defined(PLATFORM_AMD64) GF16_MULADD_MULTI_FUNCS(gf16_shuffle2x, _avx512, gf16_shuffle2x_muladd_x_avx512, 6, sizeof(__m512i), 0, _mm256_zeroupper()) #else GF16_MULADD_MULTI_FUNCS_STUB(gf16_shuffle2x, _avx512) #endif void gf16_shuffle2x_muladd_avx512(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t val, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #if defined(_AVAILABLE) && !defined(PARPAR_SLIM_GF16) gf16_muladd_single(scratch, &gf16_shuffle2x_muladd_x_avx512, dst, src, len, val); _mm256_zeroupper(); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(val); #endif } #undef _AVAILABLE #undef MWORD_SIZE #undef _mword #undef _MM #undef _MMI #undef _FNSUFFIX #undef _MM_END par2cmdline-turbo-1.5.0/parpar/gf16/gf16_shuffle_neon.c000066400000000000000000000324011524160147200225420ustar00rootroot00000000000000 #include "gf16_neon_common.h" #include "gf16_muladd_multi.h" #if defined(__ARM_NEON) int gf16_available_neon = 1; #else int gf16_available_neon = 0; #endif // EOR3 could be useful, but few CPUs support it (Apple M1, ARM V1); supported in SVE2 instead, so perhaps defer this to an SVE implementation // BCAX might also be useful for a 5+5+5+1 bit approach (or maybe rely on predicated EOR) #if (GF16_POLYNOMIAL | 0x1f) == 0x1101f // enable special routine if targeting our default 0x1100b polynomial # define GF16_POLYNOMIAL_SIMPLE #endif #if defined(__ARM_NEON) && !defined(PARPAR_SLIM_GF16) static HEDLEY_ALWAYS_INLINE void gf16_shuffle_neon_calc_tables( #ifdef GF16_POLYNOMIAL_SIMPLE uint8x16_t polyIn, #else uint8x16x2_t polyIn, #endif uint16_t val, qtbl_t* tbl_l, qtbl_t* tbl_h) { int val2 = GF16_MULTBY_TWO(val); int val4 = GF16_MULTBY_TWO(val2); uint16x4_t tmp = vreinterpret_u16_u32(vdup_n_u32((uint32_t)val << 16)); uint16x4_t tmp2 = veor_u16(tmp, vdup_n_u16(val2)); tmp = vext_u16(tmp, tmp2, 2); uint8x16_t rl = vreinterpretq_u8_u16(vcombine_u16( tmp, veor_u16(tmp, vdup_n_u16(val4)) )); uint8x16_t rh = veorq_u8( rl, vreinterpretq_u8_u16(vdupq_n_u16(GF16_MULTBY_TWO(val4))) ); /* Idea of using PMULL, if it later is useful; an alternative idea would be to use PMUL and break everything into 4 bit chunks // mul by 2,4,6,8 uint16x4_t vval = vdup_n_u16(val); uint16x8_t prod = vreinterpretq_u16_p8(vmull_p8((poly8x8_t){2,2,4,4,6,6,8,8}, vreinterpret_p8_u16(vval))); uint16x4_t prodLo = vreinterpret_u16_u8(vmovn_u16(prod)); uint16x4_t prodHi = vreinterpret_u16_u8(vshrn_n_u16(prod, 8)); // prodHi contains excess bits from multiplication which need to be merged in // top byte needs reduction, bottom byte needs to be shifted right by 4 uint8x8_t reduction = vreinterpret_u8_p8(vmul_p8( vreinterpret_p8_p16(vdup_n_p16(((GF16_POLYNOMIAL & 0x1f) << 8) | 1)), vreinterpret_p8_u16(prodHi) )); reduction = vrev16_u8(reduction); prodLo = veor_u16(prodLo, vreinterpret_u16_u8(reduction)); prodLo = veor_u16( prodLo, vreinterpret_u16_p8(vmul_p8(vreinterpret_u8_p16(vdup_n_p16(0x1000)), prodHi)) ); uint16x8_t prod8 = vdupq_lane_u16(vreinterpret_u16_u8(prodLo), 3); prodLo = vext_u16(vdup_n_u8(0), prodLo, 3); uint16x4x2_t prod0 = vzip_u16(prodLo, veor_u16(prodLo, vval)); uint8x16_t rl = vreinterpretq_u8_u16(vcombine_u16(prod0.val[0], prod0.val[1])); uint8x16_t rh = veorq_u8( rl, vreinterpretq_u8_u16(prod8) ); */ uint8x16_t ri; /* uint16_t* multbl = (uint16_t*)(ltd->poly + 1); uint16x8_t factor0 = vreinterpret_u16_u8(vld1q_u8(multbl + ((val & 0xf) << 3))); factor0 = veorq_u16(factor0, vreinterpret_u16_u8(vld1q_u8(multbl + ((16 + ((val & 0xf0) >> 4)) << 3)))); factor0 = veorq_u16(factor0, vreinterpret_u16_u8(vld1q_u8(multbl + ((32 + ((val & 0xf00) >> 8)) << 3)))); factor0 = veorq_u16(factor0, vreinterpret_u16_u8(vld1q_u8(multbl + ((48 + ((val & 0xf000) >> 12)) << 3)))); uint16x8_t factor8 = vdupq_lane_u16(vget_low_u16(factor0), 0); factor0 = vsetq_lane_u16(0, factor0, 0); factor8 = veorq_u16(factor0, factor8); rl = vreinterpretq_u8_u16(factor0); rh = vreinterpretq_u8_u16(factor8); */ #ifdef __aarch64__ tbl_l[0] = vuzp1q_u8(rl, rh); tbl_h[0] = vuzp2q_u8(rl, rh); # ifdef GF16_POLYNOMIAL_SIMPLE #define MUL16(p, c) \ ri = vshrq_n_u8(tbl_h[p], 4); \ rl = vshlq_n_u8(tbl_l[p], 4); \ rh = veorq_u8(tbl_h[p], ri); \ rh = vshlq_n_u8(rh, 4); \ tbl_h[c] = vsriq_n_u8(rh, tbl_l[p], 4); \ tbl_l[c] = veorq_u8(rl, vqtbl1q_u8(polyIn, ri)) # else #define MUL16(p, c) \ ri = vshrq_n_u8(tbl_h[p], 4); \ rl = vshlq_n_u8(tbl_l[p], 4); \ rh = vshlq_n_u8(tbl_h[p], 4); \ rh = vsriq_n_u8(rh, tbl_l[p], 4); \ tbl_l[c] = veorq_u8(rl, vqtbl1q_u8(polyIn.val[0], ri)); \ tbl_h[c] = veorq_u8(rh, vqtbl1q_u8(polyIn.val[1], ri)) # endif #else uint8x16x2_t tbl = vuzpq_u8(rl, rh); tbl_l[0].val[0] = vget_low_u8(tbl.val[0]); tbl_l[0].val[1] = vget_high_u8(tbl.val[0]); tbl_h[0].val[0] = vget_low_u8(tbl.val[1]); tbl_h[0].val[1] = vget_high_u8(tbl.val[1]); # ifdef GF16_POLYNOMIAL_SIMPLE poly8x16_t poly_l = vreinterpretq_p8_u8(polyIn); #define MUL16(p, c) \ ri = vshrq_n_u8(tbl.val[1], 4); \ rl = vshlq_n_u8(tbl.val[0], 4); \ rh = veorq_u8(tbl.val[1], ri); \ rh = vshlq_n_u8(rh, 4); \ tbl.val[1] = vsriq_n_u8(rh, tbl.val[0], 4); \ tbl.val[0] = veorq_u8(rl, vreinterpretq_u8_p8(vmulq_p8(poly_l, vreinterpretq_p8_u8(ri)))); \ tbl_l[c].val[0] = vget_low_u8(tbl.val[0]); \ tbl_l[c].val[1] = vget_high_u8(tbl.val[0]); \ tbl_h[c].val[0] = vget_low_u8(tbl.val[1]); \ tbl_h[c].val[1] = vget_high_u8(tbl.val[1]) # else uint8x8x2_t poly_l = {{vget_low_u8(polyIn.val[0]), vget_high_u8(polyIn.val[0])}}; uint8x8x2_t poly_h = {{vget_low_u8(polyIn.val[1]), vget_high_u8(polyIn.val[1])}}; #define MUL16(p, c) \ ri = vshrq_n_u8(tbl.val[1], 4); \ rl = vshlq_n_u8(tbl.val[0], 4); \ rh = vshlq_n_u8(tbl.val[1], 4); \ rh = vsriq_n_u8(rh, tbl.val[0], 4); \ tbl.val[0] = veorq_u8(rl, vqtbl1q_u8(poly_l, ri)); \ tbl.val[1] = veorq_u8(rh, vqtbl1q_u8(poly_h, ri)); \ tbl_l[c].val[0] = vget_low_u8(tbl.val[0]); \ tbl_l[c].val[1] = vget_high_u8(tbl.val[0]); \ tbl_h[c].val[0] = vget_low_u8(tbl.val[1]); \ tbl_h[c].val[1] = vget_high_u8(tbl.val[1]) # endif #endif MUL16(0, 1); MUL16(1, 2); MUL16(2, 3); #undef MUL16 } static HEDLEY_ALWAYS_INLINE void gf16_shuffle_neon_round1(uint8x16x2_t va, uint8x16_t* rl, uint8x16_t* rh, qtbl_t* tbl_l, qtbl_t* tbl_h) { uint8x16_t loset = vdupq_n_u8(0xf); uint8x16_t tmp = vandq_u8(va.val[0], loset); *rl = vqtbl1q_u8(tbl_l[0], tmp); *rh = vqtbl1q_u8(tbl_h[0], tmp); tmp = vandq_u8(va.val[1], loset); *rl = veorq_u8(*rl, vqtbl1q_u8(tbl_l[2], tmp)); *rh = veorq_u8(*rh, vqtbl1q_u8(tbl_h[2], tmp)); va.val[0] = vshrq_n_u8(va.val[0], 4); va.val[1] = vshrq_n_u8(va.val[1], 4); *rl = veorq_u8(*rl, vqtbl1q_u8(tbl_l[1], va.val[0])); *rh = veorq_u8(*rh, vqtbl1q_u8(tbl_h[1], va.val[0])); *rl = veorq_u8(*rl, vqtbl1q_u8(tbl_l[3], va.val[1])); *rh = veorq_u8(*rh, vqtbl1q_u8(tbl_h[3], va.val[1])); } static HEDLEY_ALWAYS_INLINE void gf16_shuffle_neon_round(uint8x16x2_t va, uint8x16_t* rl, uint8x16_t* rh, qtbl_t* tbl_l, qtbl_t* tbl_h) { uint8x16_t loset = vdupq_n_u8(0xf); uint8x16_t tmp = vandq_u8(va.val[0], loset); *rl = veorq_u8(*rl, vqtbl1q_u8(tbl_l[0], tmp)); *rh = veorq_u8(*rh, vqtbl1q_u8(tbl_h[0], tmp)); tmp = vandq_u8(va.val[1], loset); *rl = veorq_u8(*rl, vqtbl1q_u8(tbl_l[2], tmp)); *rh = veorq_u8(*rh, vqtbl1q_u8(tbl_h[2], tmp)); va.val[0] = vshrq_n_u8(va.val[0], 4); va.val[1] = vshrq_n_u8(va.val[1], 4); *rl = veorq_u8(*rl, vqtbl1q_u8(tbl_l[1], va.val[0])); *rh = veorq_u8(*rh, vqtbl1q_u8(tbl_h[1], va.val[0])); *rl = veorq_u8(*rl, vqtbl1q_u8(tbl_l[3], va.val[1])); *rh = veorq_u8(*rh, vqtbl1q_u8(tbl_h[3], va.val[1])); } static HEDLEY_ALWAYS_INLINE void gf16_shuffle_muladd_x_neon( const void *HEDLEY_RESTRICT scratch, GF16_BLKMAC_SRCDSTLIST, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, const int doPrefetch, const char* _pf ) { GF16_BLKMAC_SRCDST_UNUSED(3, 1); #ifdef GF16_POLYNOMIAL_SIMPLE uint8x16_t poly = vld1q_u8_align(scratch, 16); #else uint8x16x2_t poly = vld1q_u8_x2_align(scratch); #endif qtbl_t tbl_Ah[4], tbl_Al[4]; qtbl_t tbl_Bh[4], tbl_Bl[4]; qtbl_t tbl_Ch[4], tbl_Cl[4]; gf16_shuffle_neon_calc_tables(poly, coefficients[0], tbl_Al, tbl_Ah); if(srcCount > 1) gf16_shuffle_neon_calc_tables(poly, coefficients[1], tbl_Bl, tbl_Bh); if(srcCount > 2) gf16_shuffle_neon_calc_tables(poly, coefficients[2], tbl_Cl, tbl_Ch); uint8x16_t rl, rh; if(doPrefetch) { intptr_t ptr = -(intptr_t)len; if(doPrefetch == 1) PREFETCH_MEM(_pf+ptr, 1); if(doPrefetch == 2) PREFETCH_MEM(_pf+ptr, 0); while(ptr & (CACHELINE_SIZE-1)) { gf16_shuffle_neon_round1(vld2q_u8(_src1+ptr*srcScale), &rl, &rh, tbl_Al, tbl_Ah); if(srcCount > 1) gf16_shuffle_neon_round(vld2q_u8(_src2+ptr*srcScale), &rl, &rh, tbl_Bl, tbl_Bh); if(srcCount > 2) gf16_shuffle_neon_round(vld2q_u8(_src3+ptr*srcScale), &rl, &rh, tbl_Cl, tbl_Ch); uint8x16x2_t vb = vld2q_u8(_dst1+ptr*dstScale); vb.val[0] = veorq_u8(rl, vb.val[0]); vb.val[1] = veorq_u8(rh, vb.val[1]); vst2q_u8(_dst1+ptr*dstScale, vb); ptr += sizeof(uint8x16_t)*2; } while(ptr) { if(doPrefetch == 1) PREFETCH_MEM(_pf+ptr, 1); if(doPrefetch == 2) PREFETCH_MEM(_pf+ptr, 0); for(size_t iter=0; iter<(CACHELINE_SIZE/(sizeof(uint8x16_t)*2)); iter++) { gf16_shuffle_neon_round1(vld2q_u8(_src1+ptr*srcScale), &rl, &rh, tbl_Al, tbl_Ah); if(srcCount > 1) gf16_shuffle_neon_round(vld2q_u8(_src2+ptr*srcScale), &rl, &rh, tbl_Bl, tbl_Bh); if(srcCount > 2) gf16_shuffle_neon_round(vld2q_u8(_src3+ptr*srcScale), &rl, &rh, tbl_Cl, tbl_Ch); uint8x16x2_t vb = vld2q_u8(_dst1+ptr*dstScale); vb.val[0] = veorq_u8(rl, vb.val[0]); vb.val[1] = veorq_u8(rh, vb.val[1]); vst2q_u8(_dst1+ptr*dstScale, vb); ptr += sizeof(uint8x16_t)*2; } } } else { for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(uint8x16_t)*2) { gf16_shuffle_neon_round1(vld2q_u8(_src1+ptr*srcScale), &rl, &rh, tbl_Al, tbl_Ah); if(srcCount > 1) gf16_shuffle_neon_round(vld2q_u8(_src2+ptr*srcScale), &rl, &rh, tbl_Bl, tbl_Bh); if(srcCount > 2) gf16_shuffle_neon_round(vld2q_u8(_src3+ptr*srcScale), &rl, &rh, tbl_Cl, tbl_Ch); uint8x16x2_t vb = vld2q_u8(_dst1+ptr*dstScale); vb.val[0] = veorq_u8(rl, vb.val[0]); vb.val[1] = veorq_u8(rh, vb.val[1]); vst2q_u8(_dst1+ptr*dstScale, vb); } } } #endif /*defined(__ARM_NEON) && !defined(PARPAR_SLIM_GF16)*/ #ifdef PARPAR_INVERT_SUPPORT void gf16_shuffle_mul_neon(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t val, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #if defined(__ARM_NEON) && !defined(PARPAR_SLIM_GF16) qtbl_t tbl_h[4], tbl_l[4]; #ifdef GF16_POLYNOMIAL_SIMPLE uint8x16_t poly = vld1q_u8_align(scratch, 16); #else uint8x16x2_t poly = vld1q_u8_x2_align(scratch); #endif gf16_shuffle_neon_calc_tables(poly, val, tbl_l, tbl_h); uint8_t* _src = (uint8_t*)src + len; uint8_t* _dst = (uint8_t*)dst + len; for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(uint8x16_t)*2) { uint8x16x2_t r; gf16_shuffle_neon_round1(vld2q_u8(_src+ptr), &r.val[0], &r.val[1], tbl_l, tbl_h); vst2q_u8(_dst+ptr, r); } #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(val); #endif } #endif void gf16_shuffle_muladd_neon(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t val, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #if defined(__ARM_NEON) && !defined(PARPAR_SLIM_GF16) gf16_muladd_single(scratch, &gf16_shuffle_muladd_x_neon, dst, src, len, val); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(val); #endif } #if defined(__ARM_NEON) && defined(__aarch64__) && !defined(PARPAR_SLIM_GF16) GF16_MULADD_MULTI_FUNCS(gf16_shuffle, _neon, gf16_shuffle_muladd_x_neon, 2, sizeof(uint8x16_t)*2, 0, (void)0) #else GF16_MULADD_MULTI_FUNCS_STUB(gf16_shuffle, _neon) #endif #if defined(__ARM_NEON) && !defined(PARPAR_SLIM_GF16) # ifdef __aarch64__ GF_PREPARE_PACKED_FUNCS(gf16_shuffle, _neon, sizeof(uint8x16x2_t), gf16_prepare_block_neon, gf16_prepare_blocku_neon, 2, (void)0, uint8x16_t checksum = vdupq_n_u8(0), gf16_checksum_block_neon, gf16_checksum_blocku_neon, gf16_checksum_exp_neon, gf16_checksum_prepare_neon, sizeof(uint8x16_t)) # else GF_PREPARE_PACKED_FUNCS(gf16_shuffle, _neon, sizeof(uint8x16x2_t), gf16_prepare_block_neon, gf16_prepare_blocku_neon, 1, (void)0, uint8x16_t checksum = vdupq_n_u8(0), gf16_checksum_block_neon, gf16_checksum_blocku_neon, gf16_checksum_exp_neon, gf16_checksum_prepare_neon, sizeof(uint8x16_t)) # endif #else GF_PREPARE_PACKED_FUNCS_STUB(gf16_shuffle, _neon) #endif #if defined(__ARM_NEON) // NOTE: these are used in CLMul kernels as well GF_FINISH_PACKED_FUNCS(gf16_shuffle, _neon, sizeof(uint8x16x2_t), gf16_finish_block_neon, gf16_copy_blocku, 1, (void)0, gf16_checksum_block_neon, gf16_checksum_blocku_neon, gf16_checksum_exp_neon, NULL, sizeof(uint8x16_t)) #else GF_FINISH_PACKED_FUNCS_STUB(gf16_shuffle, _neon) #endif void* gf16_shuffle_init_arm(int polynomial) { #if defined(__ARM_NEON) && !defined(PARPAR_SLIM_GF16) uint8_t* ret; # ifdef GF16_POLYNOMIAL_SIMPLE if((polynomial | 0x1f) != 0x1101f) return NULL; ALIGN_ALLOC(ret, sizeof(uint8x16_t), 16); # ifndef __aarch64__ memset(ret, polynomial & 0x1f, sizeof(uint8x16_t)); return ret; # endif # else ALIGN_ALLOC(ret, sizeof(uint8x16x2_t), 32); # endif for(int i=0; i<16; i++) { int p = 0; if(i & 8) p ^= polynomial << 3; if(i & 4) p ^= polynomial << 2; if(i & 2) p ^= polynomial << 1; if(i & 1) p ^= polynomial << 0; ret[i] = p & 0xff; # ifndef GF16_POLYNOMIAL_SIMPLE ret[16+i] = (p>>8) & 0xff; # endif } return ret; /* uint16_t* multbl = (uint16_t*)(ltd->poly + 1); int shift; for(shift=0; shift<16; shift+=4) { for(i=0; i<16; i++) { int val = i << shift; int val2 = GF16_MULTBY_TWO(val); int val4 = GF16_MULTBY_TWO(val2); uint16x4_t tmp = {0, val, val2, val2 ^ val}; uint16x8_t r = vcombine_u16( tmp, veor_u16(tmp, vdup_n_u16(val4)) ); // put in *8 factor so we don't have to calculate it later r = vsetq_lane_u16(GF16_MULTBY_TWO(val4), r, 0); vst1q_u8(multbl + ((shift*4 + i) << 3), vreinterpret_u8_u16(r)); } } */ #else UNUSED(polynomial); return NULL; #endif } par2cmdline-turbo-1.5.0/parpar/gf16/gf16_shuffle_ssse3.c000066400000000000000000000100601524160147200226400ustar00rootroot00000000000000 #include "../src/platform.h" #define MWORD_SIZE 16 #define _mword __m128i #define _MM(f) _mm_ ## f #define _MMI(f) _mm_ ## f ## _si128 #define _FNSUFFIX _ssse3 #define _MM_END #if defined(__SSSE3__) # define _AVAILABLE #endif #include "gf16_shuffle_x86.h" #undef _AVAILABLE #undef MWORD_SIZE #undef _mword #undef _MM #undef _MMI #undef _FNSUFFIX #undef _MM_END #ifdef PARPAR_INVERT_SUPPORT static HEDLEY_ALWAYS_INLINE uint16_t gf16_shuffleX_replace_word(void* data, size_t index, uint16_t newValue, size_t width) { uint8_t* base = (uint8_t*)data + (index & ~(width-1)) * 2; unsigned pos = index & (width-1); if(width > 16) pos = (pos & 7) | ((pos & ((width/2)-8)) << 1) | ((pos & (width/2)) ? 8 : 0); // handle awkward positioning due to avoiding cross-lane shuffles uint16_t oldValue = base[pos + width] | (base[pos] << 8); base[pos + width] = newValue & 0xff; base[pos] = newValue >> 8; return oldValue; } static HEDLEY_ALWAYS_INLINE uint16_t gf16_shuffle2X_replace_word(void* data, size_t index, uint16_t newValue, size_t width) { uint8_t* base = (uint8_t*)data + (index & ~(width-1)) * 2; unsigned pos = index & (width-1); uint16_t oldValue = base[pos] | (base[pos + width] << 8); base[pos] = newValue & 0xff; base[pos + width] = newValue >> 8; return oldValue; } uint16_t gf16_affine2x_replace_word(void* data, size_t index, uint16_t newValue) { return gf16_shuffle2X_replace_word(data, index, newValue, 8); } uint16_t gf16_shuffle16_replace_word(void* data, size_t index, uint16_t newValue) { return gf16_shuffleX_replace_word(data, index, newValue, 16); } uint16_t gf16_shuffle32_replace_word(void* data, size_t index, uint16_t newValue) { return gf16_shuffleX_replace_word(data, index, newValue, 32); } uint16_t gf16_shuffle64_replace_word(void* data, size_t index, uint16_t newValue) { return gf16_shuffleX_replace_word(data, index, newValue, 64); } uint16_t gf16_shuffle2x16_replace_word(void* data, size_t index, uint16_t newValue) { return gf16_shuffle2X_replace_word(data, index, newValue, 16); } uint16_t gf16_shuffle2x32_replace_word(void* data, size_t index, uint16_t newValue) { return gf16_shuffle2X_replace_word(data, index, newValue, 32); } #endif void* gf16_shuffle_init_x86(int polynomial) { #if defined(__SSSE3__) /* generate polynomial table stuff */ uint16_t _poly[16]; __m128i tmp1, tmp2; __m128i* ret; #ifdef GF16_POLYNOMIAL_SIMPLE if((polynomial | 0x1f) != 0x1101f) return NULL; ALIGN_ALLOC(ret, sizeof(__m128i), 16); #else ALIGN_ALLOC(ret, sizeof(__m128i)*2, 32); #endif for(int i=0; i<16; i++) { int p = 0; if(i & 8) p ^= polynomial << 3; if(i & 4) p ^= polynomial << 2; if(i & 2) p ^= polynomial << 1; if(i & 1) p ^= polynomial << 0; _poly[i] = p & 0xffff; } tmp1 = _mm_loadu_si128((__m128i*)_poly); tmp2 = _mm_loadu_si128((__m128i*)_poly + 1); tmp1 = _mm_shuffle_epi8(tmp1, _mm_set_epi32(0x0f0d0b09, 0x07050301, 0x0e0c0a08, 0x06040200)); tmp2 = _mm_shuffle_epi8(tmp2, _mm_set_epi32(0x0f0d0b09, 0x07050301, 0x0e0c0a08, 0x06040200)); _mm_store_si128(ret, _mm_unpacklo_epi64(tmp1, tmp2)); #ifndef GF16_POLYNOMIAL_SIMPLE _mm_store_si128(ret + 1, _mm_unpackhi_epi64(tmp1, tmp2)); #endif return ret; #else UNUSED(polynomial); return NULL; #endif /* factor tables - currently not used __m128i* multbl = (__m128i*)(ltd->poly + 1); int shift, i; for(shift=0; shift<16; shift+=4) { for(i=0; i<16; i++) { int val = i << shift; int val2 = GF_MULTBY_TWO(val); int val4 = GF_MULTBY_TWO(val2); __m128i tmp = _mm_cvtsi32_si128(val << 16); tmp = _mm_insert_epi16(tmp, val2, 2); tmp = _mm_insert_epi16(tmp, val2 ^ val, 3); tmp = _mm_shuffle_epi32(tmp, 0x44); tmp = _mm_xor_si128(tmp, _mm_shufflehi_epi16( _mm_insert_epi16(_mm_setzero_si128(), val4, 4), 0 )); // put in *8 factor so we don't have to calculate it later tmp = _mm_srli_si128(tmp, 2); // could be eliminated by byte shuffle below, if I really cared tmp = _mm_insert_epi16(tmp, GF_MULTBY_TWO(val4), 7); _mm_store_si128(multbl + shift*4 + i, _mm_shuffle_epi8(tmp, _mm_set_epi8(15, 13, 11, 9, 7, 5, 3, 1, 14, 12, 10, 8, 6, 4, 2, 0))); } } */ } par2cmdline-turbo-1.5.0/parpar/gf16/gf16_shuffle_vbmi.c000066400000000000000000000436061524160147200225510ustar00rootroot00000000000000 #include "gf16_global.h" #include "../src/platform.h" #include "gf16_muladd_multi.h" #if defined(__AVX512VBMI__) && defined(__AVX512VL__) # define MWORD_SIZE 64 # define _mword __m512i # define _MM(f) _mm512_ ## f # define _MMI(f) _mm512_ ## f ## _si512 # define _FNSUFFIX _vbmi # define _AVAILABLE_AVX 1 # define _AVAILABLE 1 # include "gf16_shuffle_x86_common.h" # include "gf16_shuffle_x86_prepare.h" # include "gf16_checksum_x86.h" # undef _AVAILABLE # undef _AVAILABLE_AVX # undef _FNSUFFIX # undef _MMI # undef _MM # undef _mword # undef MWORD_SIZE int gf16_shuffle_available_vbmi = 1; static HEDLEY_ALWAYS_INLINE __m128i gf16_vec128_mul2(__m128i v) { return _mm_ternarylogic_epi32( _mm_add_epi16(v, v), _mm_cmpgt_epi16(_mm_setzero_si128(), v), _mm_set1_epi16(GF16_POLYNOMIAL & 0xffff), 0x78 // (a^(b&c)) ); } static HEDLEY_ALWAYS_INLINE void mul64_vec(__m512i mulLo, __m512i mulHi, __m512i srcLo, __m512i srcHi, __m512i* dstLo, __m512i *dstHi) { __m512i ti = _mm512_srli_epi16(srcHi, 2); __m512i th = _mm512_ternarylogic_epi32( _mm512_srli_epi16(srcLo, 2), _mm512_set1_epi8(0x3f), _mm512_slli_epi16(srcHi, 6), 0xE2 ); *dstLo = _mm512_ternarylogic_epi32( _mm512_permutexvar_epi8(ti, mulLo), _mm512_set1_epi8(0x3f), _mm512_slli_epi16(srcLo, 6), 0xD2 ); *dstHi = _mm512_xor_si512(th, _mm512_permutexvar_epi8(ti, mulHi)); } static HEDLEY_ALWAYS_INLINE void deinterleave_bytes(__m512i a, __m512i b, __m512i* lo, __m512i* hi) { __m512i idx0 = _mm512_set_epi32( 0x7e7c7a78, 0x76747270, 0x6e6c6a68, 0x66646260, 0x5e5c5a58, 0x56545250, 0x4e4c4a48, 0x46444240, 0x3e3c3a38, 0x36343230, 0x2e2c2a28, 0x26242220, 0x1e1c1a18, 0x16141210, 0x0e0c0a08, 0x06040200 ); __m512i idx1 = _mm512_or_si512(idx0, _mm512_set1_epi8(1)); __m512i res1 = _mm512_permutex2var_epi8(a, idx0, b); __m512i res2 = _mm512_permutex2var_epi8(a, idx1, b); *lo = res1; *hi = res2; } static HEDLEY_ALWAYS_INLINE void generate_first_lookup(uint16_t val, __m512i* lo0, __m512i* hi0) { __m128i tmp, prod; initial_mul_vector(val, &tmp, &prod); tmp = _mm_unpacklo_epi64(tmp, _mm_xor_si128(tmp, prod)); // products 0-7 // 4*2 = 8 prod = gf16_vec128_mul2(prod); __m256i tmp2 = _mm256_inserti128_si256( // products 0-15 _mm256_castsi128_si256(tmp), _mm_xor_si128(tmp, prod), 1 ); // 8*2 = 16 prod = gf16_vec128_mul2(prod); __m256i prod2 = _mm256_inserti128_si256(_mm256_castsi128_si256(prod), prod, 1); __m512i tmp4 = _mm512_inserti64x4( // products 0-31 _mm512_castsi256_si512(tmp2), _mm256_xor_si256(tmp2, prod2), 1 ); // 16*2 = 32 prod = gf16_vec128_mul2(prod); // products 32-63 __m512i tmp4b = _mm512_xor_si512(tmp4, _mm512_shuffle_i32x4(_mm512_castsi128_si512(prod), _mm512_castsi128_si512(prod), 0)); // extract low/high pairs deinterleave_bytes(tmp4, tmp4b, lo0, hi0); } static HEDLEY_ALWAYS_INLINE void generate_first_lookup_x2(const uint16_t* coefficients, __m512i* lo0A, __m512i* hi0A, __m512i* lo0B, __m512i* hi0B) { __m256i prod0, mul8; gf16_initial_mul_vector_x2(coefficients, &prod0, &mul8); __m256i prod8 = _mm256_xor_si256(prod0, mul8); __m512i prod08 = _mm512_inserti64x4( // products 0-7,0-7,8-15,8-15 _mm512_castsi256_si512(prod0), prod8, 1 ); // 8*2 = 16 __m256i mul16 = gf16_vec256_mul2(mul8); __m512i mul16b = _mm512_inserti64x4(_mm512_castsi256_si512(mul16), mul16, 1); __m512i prod16 = _mm512_xor_si512(prod08, mul16b); // products 16-23,16-23,24-31,24-31 // 16*2 = 32 __m512i mul32 = gf16_vec512_mul2(mul16b); __m512i prod32 = _mm512_xor_si512(prod08, mul32); // products 32-39 (x2),40-47 (x2) __m512i prod48 = _mm512_xor_si512(prod16, mul32); // products 48-55 (x2),56-63 (x2) // mix to get desired output prod08 = separate_low_high512(prod08); prod16 = separate_low_high512(prod16); prod32 = separate_low_high512(prod32); prod48 = separate_low_high512(prod48); __m512i prod0Lo = _mm512_unpacklo_epi64(prod08, prod16); // 0-7,16-23 | 0-7,16-23 | 8-15,24-31 | 8-15,24-31 __m512i prod0Hi = _mm512_unpackhi_epi64(prod08, prod16); __m512i prod32Lo = _mm512_unpacklo_epi64(prod32, prod48); __m512i prod32Hi = _mm512_unpackhi_epi64(prod32, prod48); __m512i idx0 = _mm512_set_epi64(13,9,12,8,5,1,4,0); __m512i idx1 = _mm512_set_epi64(15,11,14,10,7,3,6,2); *lo0A = _mm512_permutex2var_epi64(prod0Lo, idx0, prod32Lo); *hi0A = _mm512_permutex2var_epi64(prod0Hi, idx0, prod32Hi); *lo0B = _mm512_permutex2var_epi64(prod0Lo, idx1, prod32Lo); *hi0B = _mm512_permutex2var_epi64(prod0Hi, idx1, prod32Hi); } static HEDLEY_ALWAYS_INLINE void generate_first_lookup_x4(const uint16_t* coefficients, const int do4, __m512i* lo0A, __m512i* hi0A, __m512i* lo0B, __m512i* hi0B, __m512i* lo0C, __m512i* hi0C, __m512i* lo0D, __m512i* hi0D) { __m512i prod0, mul8; gf16_initial_mul_vector_x4(coefficients, &prod0, &mul8, do4); __m512i prod8 = _mm512_xor_si512(prod0, mul8); // 8*2 = 16 __m512i mul16 = gf16_vec512_mul2(mul8); __m512i prod16 = _mm512_xor_si512(prod0, mul16); // products 16-23 __m512i prod24 = _mm512_xor_si512(prod8, mul16); // products 24-31 // 16*2 = 32 __m512i mul32 = gf16_vec512_mul2(mul16); __m512i prod32 = _mm512_xor_si512(prod0, mul32); __m512i prod40 = _mm512_xor_si512(prod8, mul32); __m512i prod48 = _mm512_xor_si512(prod16, mul32); __m512i prod56 = _mm512_xor_si512(prod24, mul32); // mix to get desired output prod0 = separate_low_high512(prod0); prod8 = separate_low_high512(prod8); prod16 = separate_low_high512(prod16); prod24 = separate_low_high512(prod24); prod32 = separate_low_high512(prod32); prod40 = separate_low_high512(prod40); prod48 = separate_low_high512(prod48); prod56 = separate_low_high512(prod56); __m512i prod0Lo = _mm512_unpacklo_epi64(prod0, prod8); __m512i prod0Hi = _mm512_unpackhi_epi64(prod0, prod8); __m512i prod16Lo = _mm512_unpacklo_epi64(prod16, prod24); __m512i prod16Hi = _mm512_unpackhi_epi64(prod16, prod24); __m512i prod32Lo = _mm512_unpacklo_epi64(prod32, prod40); __m512i prod32Hi = _mm512_unpackhi_epi64(prod32, prod40); __m512i prod48Lo = _mm512_unpacklo_epi64(prod48, prod56); __m512i prod48Hi = _mm512_unpackhi_epi64(prod48, prod56); __m512i prod0LoA = _mm512_shuffle_i32x4(prod0Lo, prod16Lo, _MM_SHUFFLE(2,0,2,0)); __m512i prod0LoB = _mm512_shuffle_i32x4(prod0Lo, prod16Lo, _MM_SHUFFLE(3,1,3,1)); __m512i prod0HiA = _mm512_shuffle_i32x4(prod0Hi, prod16Hi, _MM_SHUFFLE(2,0,2,0)); __m512i prod0HiB = _mm512_shuffle_i32x4(prod0Hi, prod16Hi, _MM_SHUFFLE(3,1,3,1)); __m512i prod32LoA = _mm512_shuffle_i32x4(prod32Lo, prod48Lo, _MM_SHUFFLE(2,0,2,0)); __m512i prod32LoB = _mm512_shuffle_i32x4(prod32Lo, prod48Lo, _MM_SHUFFLE(3,1,3,1)); __m512i prod32HiA = _mm512_shuffle_i32x4(prod32Hi, prod48Hi, _MM_SHUFFLE(2,0,2,0)); __m512i prod32HiB = _mm512_shuffle_i32x4(prod32Hi, prod48Hi, _MM_SHUFFLE(3,1,3,1)); *lo0A = _mm512_shuffle_i32x4(prod0LoA, prod32LoA, _MM_SHUFFLE(2,0,2,0)); *hi0A = _mm512_shuffle_i32x4(prod0HiA, prod32HiA, _MM_SHUFFLE(2,0,2,0)); *lo0B = _mm512_shuffle_i32x4(prod0LoB, prod32LoB, _MM_SHUFFLE(2,0,2,0)); *hi0B = _mm512_shuffle_i32x4(prod0HiB, prod32HiB, _MM_SHUFFLE(2,0,2,0)); *lo0C = _mm512_shuffle_i32x4(prod0LoA, prod32LoA, _MM_SHUFFLE(3,1,3,1)); *hi0C = _mm512_shuffle_i32x4(prod0HiA, prod32HiA, _MM_SHUFFLE(3,1,3,1)); if(do4) { *lo0D = _mm512_shuffle_i32x4(prod0LoB, prod32LoB, _MM_SHUFFLE(3,1,3,1)); *hi0D = _mm512_shuffle_i32x4(prod0HiB, prod32HiB, _MM_SHUFFLE(3,1,3,1)); } } static HEDLEY_ALWAYS_INLINE void generate_remaining_lookup(__m512i mulLo, __m512i mulHi, __m512i lo0, __m512i hi0, __m512i* lo1, __m512i* hi1, __m512i* lo2, __m512i* hi2) { // multiply by 64 to get 0,64,128..960 repeated; will need some rearrangement __m512i tmpLo, tmpHi; mul64_vec(mulLo, mulHi, lo0, hi0, &tmpLo, &tmpHi); // rearrange for bit swap (the two bits are flipped around) *lo1 = _mm512_castsi128_si512(_mm_shuffle_epi8( _mm512_castsi512_si128(tmpLo), _mm_set_epi32(0x0f0b0703, 0x0e0a0602, 0x0d090501, 0x0c080400) )); *lo1 = _mm512_shuffle_i32x4(*lo1, *lo1, 0); *hi1 = _mm512_castsi128_si512(_mm_shuffle_epi8( _mm512_castsi512_si128(tmpHi), _mm_set_epi32(0x0f0b0703, 0x0e0a0602, 0x0d090501, 0x0c080400) )); *hi1 = _mm512_shuffle_i32x4(*hi1, *hi1, 0); // then mul above by 16 to get 0,1024,2048..64512 #ifndef GF16_POLYNOMIAL_SIMPLE mul16_vec4x(_mm512_shuffle_i32x4(mulLo, mulLo, 0), _mm512_shuffle_i32x4(mulHi, mulHi, 0), tmpLo, tmpHi, lo2, hi2); #else mul16_vec4x(_mm512_shuffle_i32x4(mulLo, mulLo, 0), _mm512_setzero_si512(), tmpLo, tmpHi, lo2, hi2); #endif } static HEDLEY_ALWAYS_INLINE void gf16_shuffle_mul_vbmi_round(__m512i ta, __m512i tb, __m512i lo0, __m512i hi0, __m512i lo1, __m512i hi1, __m512i lo2, __m512i hi2, __m512i* tpl, __m512i* tph) { // get straddled component (bottom 2 bits of ta, followed by top 2 bits from tb) __m512i ti = _mm512_ternarylogic_epi32( _mm512_srli_epi16(tb, 4), ta, _mm512_set1_epi8(3), 0xd8 // bit-select: ((b&c) | (a&~c)) ); // can replace 2x vpermb with 2x vpshufb if an AND is applied to ti // this does, however, require an additional register; we can avoid this by changing the bit arrangement from 6+4+6 to 6+6+4, since the 0xf mask can be used twice in this case ta = _mm512_srli_epi16(ta, 2); *tph = _mm512_ternarylogic_epi32( _mm512_permutexvar_epi8(tb, hi0), _mm512_permutexvar_epi8(ti, hi1), _mm512_permutexvar_epi8(ta, hi2), 0x96 // double-XOR: (a^b^c) ); *tpl = _mm512_ternarylogic_epi32( _mm512_permutexvar_epi8(tb, lo0), _mm512_permutexvar_epi8(ti, lo1), _mm512_permutexvar_epi8(ta, lo2), 0x96 ); } static HEDLEY_ALWAYS_INLINE void gf16_shuffle_mul_vbmi_round_merge(__m512i ta, __m512i tb, __m512i lo0, __m512i hi0, __m512i lo1, __m512i hi1, __m512i lo2, __m512i hi2, __m512i* tpl, __m512i* tph, __m512i* tl, __m512i* th) { // get straddled component (bottom 2 bits of ta, followed by top 2 bits from tb) __m512i ti = _mm512_ternarylogic_epi32( _mm512_srli_epi16(tb, 4), ta, _mm512_set1_epi8(3), 0xd8 // bit-select: ((b&c) | (a&~c)) ); ta = _mm512_srli_epi16(ta, 2); *tph = _mm512_ternarylogic_epi32( *tph, _mm512_permutexvar_epi8(tb, hi0), _mm512_permutexvar_epi8(ti, hi1), 0x96 // double-XOR: (a^b^c) ); *tpl = _mm512_ternarylogic_epi32( *tpl, _mm512_permutexvar_epi8(tb, lo0), _mm512_permutexvar_epi8(ti, lo1), 0x96 ); *th = _mm512_permutexvar_epi8(ta, hi2); *tl = _mm512_permutexvar_epi8(ta, lo2); } #else int gf16_shuffle_available_vbmi = 0; #endif #if defined(__AVX512VBMI__) && defined(__AVX512VL__) static HEDLEY_ALWAYS_INLINE void gf16_shuffle_muladd_x_vbmi( const void *HEDLEY_RESTRICT scratch, GF16_BLKMAC_SRCDSTLIST, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, const int doPrefetch, const char* _pf ) { GF16_BLKMAC_SRCDST_UNUSED(4, 1); __m512i mulLo = _mm512_load_si512((__m512i*)scratch + 1); __m512i mulHi = _mm512_load_si512((__m512i*)scratch); __m512i loA0, loA1, loA2, hiA0, hiA1, hiA2; __m512i loB0, loB1, loB2, hiB0, hiB1, hiB2; __m512i loC0, loC1, loC2, hiC0, hiC1, hiC2; __m512i loD0, loD1, loD2, hiD0, hiD1, hiD2; // get first lookup if(srcCount == 4) generate_first_lookup_x4(coefficients, 1, &loA0, &hiA0, &loB0, &hiB0, &loC0, &hiC0, &loD0, &hiD0); else if(srcCount == 3) generate_first_lookup_x4(coefficients, 0, &loA0, &hiA0, &loB0, &hiB0, &loC0, &hiC0, NULL, NULL); else if(srcCount == 2) generate_first_lookup_x2(coefficients, &loA0, &hiA0, &loB0, &hiB0); else // srcCount == 1 generate_first_lookup(coefficients[0], &loA0, &hiA0); // multiply by 64/16 to get remaining lookups generate_remaining_lookup(mulLo, mulHi, loA0, hiA0, &loA1, &hiA1, &loA2, &hiA2); if(srcCount > 1) generate_remaining_lookup(mulLo, mulHi, loB0, hiB0, &loB1, &hiB1, &loB2, &hiB2); if(srcCount > 2) generate_remaining_lookup(mulLo, mulHi, loC0, hiC0, &loC1, &hiC1, &loC2, &hiC2); if(srcCount > 3) generate_remaining_lookup(mulLo, mulHi, loD0, hiD0, &loD1, &hiD1, &loD2, &hiD2); for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(__m512i)*2) { __m512i tpl, tph; gf16_shuffle_mul_vbmi_round( _mm512_load_si512((__m512i*)(_src1+ptr*srcScale)), _mm512_load_si512((__m512i*)(_src1+ptr*srcScale) +1), loA0, hiA0, loA1, hiA1, loA2, hiA2, &tpl, &tph ); __m512i tl, th; if(srcCount > 1) { gf16_shuffle_mul_vbmi_round_merge( _mm512_load_si512((__m512i*)(_src2+ptr*srcScale)), _mm512_load_si512((__m512i*)(_src2+ptr*srcScale) +1), loB0, hiB0, loB1, hiB1, loB2, hiB2, &tpl, &tph, &tl, &th ); tph = _mm512_ternarylogic_epi32(tph, th, _mm512_load_si512((__m512i*)(_dst1+ptr*dstScale)), 0x96); tpl = _mm512_ternarylogic_epi32(tpl, tl, _mm512_load_si512((__m512i*)(_dst1+ptr*dstScale) + 1), 0x96); } else { th = _mm512_load_si512((__m512i*)(_dst1+ptr*dstScale)); tl = _mm512_load_si512((__m512i*)(_dst1+ptr*dstScale) + 1); } if(srcCount > 2) { gf16_shuffle_mul_vbmi_round_merge( _mm512_load_si512((__m512i*)(_src3+ptr*srcScale)), _mm512_load_si512((__m512i*)(_src3+ptr*srcScale) +1), loC0, hiC0, loC1, hiC1, loC2, hiC2, &tpl, &tph, &tl, &th ); } if(srcCount > 3) { __m512i ta = _mm512_load_si512((__m512i*)(_src4+ptr*srcScale)); __m512i tb = _mm512_load_si512((__m512i*)(_src4+ptr*srcScale) +1); tph = _mm512_ternarylogic_epi32( tph, th, _mm512_permutexvar_epi8(tb, hiD0), 0x96 // double-XOR: (a^b^c) ); tpl = _mm512_ternarylogic_epi32( tpl, tl, _mm512_permutexvar_epi8(tb, loD0), 0x96 ); __m512i ti = _mm512_ternarylogic_epi32( _mm512_srli_epi16(tb, 4), ta, _mm512_set1_epi8(3), 0xd8 // bit-select: ((b&c) | (a&~c)) ); ta = _mm512_srli_epi16(ta, 2); tpl = _mm512_ternarylogic_epi32( tpl, _mm512_permutexvar_epi8(ti, loD1), _mm512_permutexvar_epi8(ta, loD2), 0x96 ); tph = _mm512_ternarylogic_epi32( tph, _mm512_permutexvar_epi8(ti, hiD1), _mm512_permutexvar_epi8(ta, hiD2), 0x96 ); } if(srcCount & 1) { tpl = _mm512_xor_si512(tpl, tl); tph = _mm512_xor_si512(tph, th); } _mm512_store_si512((__m512i*)(_dst1+ptr*dstScale), tph); _mm512_store_si512((__m512i*)(_dst1+ptr*dstScale) + 1, tpl); if(doPrefetch == 1) { _mm_prefetch(_pf+(ptr>>1), MM_HINT_WT1); } if(doPrefetch == 2) { _mm_prefetch(_pf+(ptr>>1), _MM_HINT_T1); } } } #endif #ifdef PARPAR_INVERT_SUPPORT void gf16_shuffle_mul_vbmi(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t val, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #if defined(__AVX512VBMI__) && defined(__AVX512VL__) __m512i lo0, lo1, lo2, hi0, hi1, hi2; // get first lookup generate_first_lookup(val, &lo0, &hi0); // multiply by 64/16 to get remaining lookups generate_remaining_lookup( _mm512_load_si512((__m512i*)scratch + 1), _mm512_load_si512((__m512i*)scratch), lo0, hi0, &lo1, &hi1, &lo2, &hi2 ); uint8_t* _src = (uint8_t*)src + len; uint8_t* _dst = (uint8_t*)dst + len; for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(__m512i)*2) { __m512i tpl, tph; gf16_shuffle_mul_vbmi_round( _mm512_load_si512((__m512i*)(_src+ptr)), _mm512_load_si512((__m512i*)(_src+ptr) +1), lo0, hi0, lo1, hi1, lo2, hi2, &tpl, &tph ); _mm512_store_si512((__m512i*)(_dst+ptr), tph); _mm512_store_si512((__m512i*)(_dst+ptr) + 1, tpl); } _mm256_zeroupper(); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(val); #endif } #endif void gf16_shuffle_muladd_vbmi(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t val, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #if defined(__AVX512VBMI__) && defined(__AVX512VL__) gf16_muladd_single(scratch, &gf16_shuffle_muladd_x_vbmi, dst, src, len, val); _mm256_zeroupper(); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(val); #endif } void gf16_shuffle_muladd_prefetch_vbmi(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t val, void *HEDLEY_RESTRICT mutScratch, const void *HEDLEY_RESTRICT prefetch) { UNUSED(mutScratch); #if defined(__AVX512VBMI__) && defined(__AVX512VL__) gf16_muladd_prefetch_single(scratch, &gf16_shuffle_muladd_x_vbmi, dst, src, len, val, prefetch); _mm256_zeroupper(); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(val); UNUSED(prefetch); #endif } #if defined(__AVX512VBMI__) && defined(__AVX512VL__) && defined(PLATFORM_AMD64) GF16_MULADD_MULTI_FUNCS(gf16_shuffle, _vbmi, gf16_shuffle_muladd_x_vbmi, 4, sizeof(__m512i)*2, 1, _mm256_zeroupper()) #else GF16_MULADD_MULTI_FUNCS_STUB(gf16_shuffle, _vbmi) #endif #if defined(__AVX512VBMI__) && defined(__AVX512VL__) # ifdef PLATFORM_AMD64 GF_PREPARE_PACKED_FUNCS(gf16_shuffle, _vbmi, sizeof(__m512i)*2, gf16_shuffle_prepare_block_vbmi, gf16_shuffle_prepare_blocku_vbmi, 4, _mm256_zeroupper(), __m512i checksum = _mm512_setzero_si512(), gf16_checksum_block_vbmi, gf16_checksum_blocku_vbmi, gf16_checksum_exp_vbmi, gf16_checksum_prepare_vbmi, sizeof(__m512i)) # else GF_PREPARE_PACKED_FUNCS(gf16_shuffle, _vbmi, sizeof(__m512i)*2, gf16_shuffle_prepare_block_vbmi, gf16_shuffle_prepare_blocku_vbmi, 1, _mm256_zeroupper(), __m512i checksum = _mm512_setzero_si512(), gf16_checksum_block_vbmi, gf16_checksum_blocku_vbmi, gf16_checksum_exp_vbmi, gf16_checksum_prepare_vbmi, sizeof(__m512i)) # endif #else GF_PREPARE_PACKED_FUNCS_STUB(gf16_shuffle, _vbmi) #endif void* gf16_shuffle_init_vbmi(int polynomial) { #if defined(__AVX512VBMI__) && defined(__AVX512VL__) /* generate polynomial table stuff */ uint16_t _poly[64]; __m512i tmp1, tmp2; __m512i* ret; ALIGN_ALLOC(ret, sizeof(__m512i)*2, 64); for(int i=0; i<64; i++) { int p = i << 16; if(p & 0x200000) p ^= polynomial << 5; if(p & 0x100000) p ^= polynomial << 4; if(p & 0x080000) p ^= polynomial << 3; if(p & 0x040000) p ^= polynomial << 2; if(p & 0x020000) p ^= polynomial << 1; if(p & 0x010000) p ^= polynomial << 0; _poly[i] = p & 0xffff; } tmp1 = _mm512_loadu_si512((__m512i*)_poly); tmp2 = _mm512_loadu_si512((__m512i*)_poly + 1); deinterleave_bytes(tmp1, tmp2, &tmp1, &tmp2); _mm512_store_si512(ret + 1, tmp1); _mm512_store_si512(ret, tmp2); return ret; #else UNUSED(polynomial); return NULL; #endif } par2cmdline-turbo-1.5.0/parpar/gf16/gf16_shuffle_x86.h000066400000000000000000000252051524160147200222410ustar00rootroot00000000000000 #include "gf16_shuffle_x86_common.h" #include "gf16_global.h" #ifdef _AVAILABLE # include "gf16_checksum_x86.h" int _FN(gf16_shuffle_available) = 1; #include "gf16_shuffle_x86_prepare.h" #else int _FN(gf16_shuffle_available) = 0; #endif #ifdef PARPAR_INVERT_SUPPORT void _FN(gf16_shuffle_prepare)(void* dst, const void* src, size_t srcLen) { #ifdef _AVAILABLE gf16_prepare(dst, src, srcLen, sizeof(_mword)*2, &_FN(gf16_shuffle_prepare_block), &_FN(gf16_shuffle_prepare_blocku)); _MM_END #else UNUSED(dst); UNUSED(src); UNUSED(srcLen); #endif } #endif #ifdef _AVAILABLE # if MWORD_SIZE==64 && defined(PLATFORM_AMD64) GF_PREPARE_PACKED_FUNCS(gf16_shuffle, _FNSUFFIX, sizeof(_mword)*2, _FN(gf16_shuffle_prepare_block), _FN(gf16_shuffle_prepare_blocku), 3, _MM_END, _mword checksum = _MMI(setzero)(), _FN(gf16_checksum_block), _FN(gf16_checksum_blocku), _FN(gf16_checksum_exp), _FN(gf16_checksum_prepare), sizeof(_mword)) # else GF_PREPARE_PACKED_FUNCS(gf16_shuffle, _FNSUFFIX, sizeof(_mword)*2, _FN(gf16_shuffle_prepare_block), _FN(gf16_shuffle_prepare_blocku), 1, _MM_END, _mword checksum = _MMI(setzero)(), _FN(gf16_checksum_block), _FN(gf16_checksum_blocku), _FN(gf16_checksum_exp), _FN(gf16_checksum_prepare), sizeof(_mword)) # endif #else GF_PREPARE_PACKED_FUNCS_STUB(gf16_shuffle, _FNSUFFIX) #endif #ifdef PARPAR_INVERT_SUPPORT void _FN(gf16_shuffle_finish)(void *HEDLEY_RESTRICT dst, size_t len) { #ifdef _AVAILABLE gf16_finish(dst, len, sizeof(_mword)*2, &_FN(gf16_shuffle_finish_block)); _MM_END #else UNUSED(dst); UNUSED(len); #endif } #endif #ifdef _AVAILABLE GF_FINISH_PACKED_FUNCS(gf16_shuffle, _FNSUFFIX, sizeof(_mword)*2, _FN(gf16_shuffle_finish_copy_block), _FN(gf16_shuffle_finish_copy_blocku), 1, _MM_END, _FN(gf16_checksum_block), _FN(gf16_checksum_blocku), _FN(gf16_checksum_exp), &_FN(gf16_shuffle_finish_block), sizeof(_mword)) #else GF_FINISH_PACKED_FUNCS_STUB(gf16_shuffle, _FNSUFFIX) #endif #if MWORD_SIZE >= 32 # ifdef _AVAILABLE # ifdef GF16_POLYNOMIAL_SIMPLE static HEDLEY_ALWAYS_INLINE __m256i mul16_vec256(__m128i poly, __m256i src) { __m256i prodHi = _mm256_andnot_si256(_mm256_set1_epi8(0xf), src); __m256i idx = _mm256_srli_epi16(prodHi, 4); __m256i merge = _mm256_inserti128_si256(prodHi, _mm_shuffle_epi8(poly, _mm256_castsi256_si128(idx)), 1); # if MWORD_SIZE == 64 src = _mm256_ternarylogic_epi32( extract_top128_256(idx), _mm256_set1_epi8(0xf), _mm256_slli_epi16(src, 4), 0xF2 ); # else __m256i prodLo = _mm256_slli_epi16(_mm256_and_si256(_mm256_set1_epi8(0xf), src), 4); src = _mm256_or_si256(prodLo, extract_top128_256(idx)); # endif return _mm256_xor_si256(src, merge); } # else // GF16_POLYNOMIAL_SIMPLE static HEDLEY_ALWAYS_INLINE __m256i mul16_vec256(__m256i poly, __m256i src) { __m256i prodHi = _mm256_and_si256(_mm256_set1_epi8(0xf), _mm256_srli_epi16(src, 4)); __m256i idx = _mm256_inserti128_si256(prodHi, _mm256_castsi256_si128(prodHi), 1); # if MWORD_SIZE == 64 src = _mm256_ternarylogic_epi32( extract_top128_256(prodHi), _mm256_set1_epi8(0xf), _mm256_slli_epi16(src, 4), 0xF2 ); # else __m256i prodLo = _mm256_slli_epi16(_mm256_and_si256(_mm256_set1_epi8(0xf), src), 4); src = _mm256_or_si256(prodLo, extract_top128_256(prodHi)); # endif return _mm256_xor_si256(src, _mm256_shuffle_epi8(poly, idx)); // another idea with AVX512 is to keep each 4-bit part of the 16-bit results in a 128-bit lane, and shuffle lanes to handle the shift } # endif # endif # if MWORD_SIZE == 64 # define BCAST_HI(v) _mm512_shuffle_i32x4(_mm512_castsi256_si512(v), _mm512_castsi256_si512(v), _MM_SHUFFLE(1,1,1,1)) # define BCAST_LO(v) _mm512_shuffle_i32x4(_mm512_castsi256_si512(v), _mm512_castsi256_si512(v), _MM_SHUFFLE(0,0,0,0)) # else # define BCAST_HI(v) _mm256_permute4x64_epi64(v, _MM_SHUFFLE(3,2,3,2)) # define BCAST_LO(v) _mm256_inserti128_si256(v, _mm256_castsi256_si128(v), 1) # endif #endif #ifdef _AVAILABLE static HEDLEY_ALWAYS_INLINE void gf16_shuffle_setup_vec(const void *HEDLEY_RESTRICT scratch, uint16_t val, _mword* low0, _mword* high0, _mword* low1, _mword* high1, _mword* low2, _mword* high2, _mword* low3, _mword* high3) { __m128i pd0, pd1; shuf0_vector(val, &pd0, &pd1); #if MWORD_SIZE >= 32 # ifdef GF16_POLYNOMIAL_SIMPLE __m128i poly = _mm_load_si128((__m128i*)scratch); # else __m256i poly = _mm256_load_si256((__m256i*)scratch); # endif __m256i prod = _mm256_inserti128_si256(_mm256_castsi128_si256(pd0), pd1, 1); prod = _mm256_shuffle_epi8(prod, _mm256_set_epi32( 0x0f0d0b09, 0x07050301, 0x0e0c0a08, 0x06040200, 0x0f0d0b09, 0x07050301, 0x0e0c0a08, 0x06040200 )); prod = _mm256_permute4x64_epi64(prod, _MM_SHUFFLE(2,0,3,1)); *low0 = BCAST_HI(prod); *high0 = BCAST_LO(prod); prod = mul16_vec256(poly, prod); *low1 = BCAST_HI(prod); *high1 = BCAST_LO(prod); prod = mul16_vec256(poly, prod); *low2 = BCAST_HI(prod); *high2 = BCAST_LO(prod); prod = mul16_vec256(poly, prod); *low3 = BCAST_HI(prod); *high3 = BCAST_LO(prod); #else pd0 = _mm_shuffle_epi8(pd0, _mm_set_epi32(0x0f0d0b09, 0x07050301, 0x0e0c0a08, 0x06040200)); pd1 = _mm_shuffle_epi8(pd1, _mm_set_epi32(0x0f0d0b09, 0x07050301, 0x0e0c0a08, 0x06040200)); *low0 = _mm_unpacklo_epi64(pd0, pd1); *high0 = _mm_unpackhi_epi64(pd0, pd1); __m128i polyl = _mm_load_si128((__m128i*)scratch); __m128i polyh = _mm_setzero_si128(); #ifndef GF16_POLYNOMIAL_SIMPLE polyh = _mm_load_si128((__m128i*)scratch + 1); #endif mul16_vec128(polyl, polyh, *low0, *high0, low1, high1); mul16_vec128(polyl, polyh, *low1, *high1, low2, high2); mul16_vec128(polyl, polyh, *low2, *high2, low3, high3); #endif } static HEDLEY_ALWAYS_INLINE void gf16_shuffle_muladd_round(_mword* _dst, _mword* _src, _mword low0, _mword high0, _mword low1, _mword high1, _mword low2, _mword high2, _mword low3, _mword high3) { _mword mask = _MM(set1_epi8) (0x0f); _mword ta = _MMI(load)(_src); _mword tb = _MMI(load)(_src+1); _mword ti = _MMI(and) (mask, tb); _mword tph = _MM(shuffle_epi8) (high0, ti); _mword tpl = _MM(shuffle_epi8) (low0, ti); ti = _MM_SRLI4_EPI8(tb); #if MWORD_SIZE == 64 tpl = _mm512_ternarylogic_epi32(tpl, _MM(shuffle_epi8) (low1, ti), _MMI(load)(_dst+1), 0x96); tph = _mm512_ternarylogic_epi32(tph, _MM(shuffle_epi8) (high1, ti), _MMI(load)(_dst), 0x96); ti = _MMI(and) (mask, ta); _mword ti2 = _MMI(and) (mask, _MM(srli_epi16)(ta, 4)); tpl = _mm512_ternarylogic_epi32(tpl, _MM(shuffle_epi8) (low2, ti), _MM(shuffle_epi8) (low3, ti2), 0x96); tph = _mm512_ternarylogic_epi32(tph, _MM(shuffle_epi8) (high2, ti), _MM(shuffle_epi8) (high3, ti2), 0x96); #else tpl = _MMI(xor)(_MM(shuffle_epi8) (low1, ti), tpl); tph = _MMI(xor)(_MM(shuffle_epi8) (high1, ti), tph); tph = _MMI(xor)(tph, _MMI(load)(_dst)); tpl = _MMI(xor)(tpl, _MMI(load)(_dst+1)); ti = _MMI(and) (mask, ta); tpl = _MMI(xor)(_MM(shuffle_epi8) (low2, ti), tpl); tph = _MMI(xor)(_MM(shuffle_epi8) (high2, ti), tph); ti = _MM_SRLI4_EPI8(ta); tpl = _MMI(xor)(_MM(shuffle_epi8) (low3, ti), tpl); tph = _MMI(xor)(_MM(shuffle_epi8) (high3, ti), tph); #endif _MMI(store) (_dst, tph); _MMI(store) (_dst+1, tpl); } #endif #ifdef PARPAR_INVERT_SUPPORT void _FN(gf16_shuffle_mul)(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t val, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #ifdef _AVAILABLE _mword low0, low1, low2, low3, high0, high1, high2, high3; gf16_shuffle_setup_vec(scratch, val, &low0, &high0, &low1, &high1, &low2, &high2, &low3, &high3); _mword mask = _MM(set1_epi8) (0x0f); uint8_t* _src = (uint8_t*)src + len; uint8_t* _dst = (uint8_t*)dst + len; for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(_mword)*2) { _mword ta = _MMI(load)((_mword*)(_src+ptr)); _mword tb = _MMI(load)((_mword*)(_src+ptr) + 1); _mword ti = _MMI(and) (mask, tb); _mword tph = _MM(shuffle_epi8) (high0, ti); _mword tpl = _MM(shuffle_epi8) (low0, ti); ti = _MM_SRLI4_EPI8(tb); #if MWORD_SIZE == 64 _mword ti2 = _MMI(and) (mask, ta); tpl = _mm512_ternarylogic_epi32(tpl, _MM(shuffle_epi8) (low1, ti), _MM(shuffle_epi8) (low2, ti2), 0x96); tph = _mm512_ternarylogic_epi32(tph, _MM(shuffle_epi8) (high1, ti), _MM(shuffle_epi8) (high2, ti2), 0x96); #else tpl = _MMI(xor)(_MM(shuffle_epi8) (low1, ti), tpl); tph = _MMI(xor)(_MM(shuffle_epi8) (high1, ti), tph); ti = _MMI(and) (mask, ta); tpl = _MMI(xor)(_MM(shuffle_epi8) (low2, ti), tpl); tph = _MMI(xor)(_MM(shuffle_epi8) (high2, ti), tph); #endif ti = _MM_SRLI4_EPI8(ta); tpl = _MMI(xor)(_MM(shuffle_epi8) (low3, ti), tpl); tph = _MMI(xor)(_MM(shuffle_epi8) (high3, ti), tph); _MMI(store) ((_mword*)(_dst+ptr), tph); _MMI(store) ((_mword*)(_dst+ptr) + 1, tpl); } _MM_END #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(val); #endif } #endif void _FN(gf16_shuffle_muladd)(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t val, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #ifdef _AVAILABLE _mword low0, low1, low2, low3, high0, high1, high2, high3; gf16_shuffle_setup_vec(scratch, val, &low0, &high0, &low1, &high1, &low2, &high2, &low3, &high3); uint8_t* _src = (uint8_t*)src + len; uint8_t* _dst = (uint8_t*)dst + len; for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(_mword)*2) { gf16_shuffle_muladd_round((_mword*)(_dst+ptr), (_mword*)(_src+ptr), low0, high0, low1, high1, low2, high2, low3, high3); } _MM_END #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(val); #endif } void _FN(gf16_shuffle_muladd_prefetch)(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t val, void *HEDLEY_RESTRICT mutScratch, const void *HEDLEY_RESTRICT prefetch) { UNUSED(mutScratch); #ifdef _AVAILABLE _mword low0, low1, low2, low3, high0, high1, high2, high3; gf16_shuffle_setup_vec(scratch, val, &low0, &high0, &low1, &high1, &low2, &high2, &low3, &high3); uint8_t* _src = (uint8_t*)src + len; uint8_t* _dst = (uint8_t*)dst + len; char* _pf = (char*)prefetch + len/2; intptr_t ptr = -(intptr_t)len; // we'll prefetch at half-rate (one cacheline per 128 bytes), as it seems to work best // initial alignment _mm_prefetch(_pf+(ptr>>1), _MM_HINT_T1); while(ptr & 127) { gf16_shuffle_muladd_round((_mword*)(_dst+ptr), (_mword*)(_src+ptr), low0, high0, low1, high1, low2, high2, low3, high3); ptr += sizeof(_mword)*2; } while(ptr) { _mm_prefetch(_pf+(ptr>>1), _MM_HINT_T1); for(unsigned round=0; round<64/sizeof(_mword); round++) { gf16_shuffle_muladd_round((_mword*)(_dst+ptr), (_mword*)(_src+ptr), low0, high0, low1, high1, low2, high2, low3, high3); ptr += sizeof(_mword)*2; } } _MM_END #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(prefetch); UNUSED(val); #endif } par2cmdline-turbo-1.5.0/parpar/gf16/gf16_shuffle_x86_common.h000066400000000000000000000233121524160147200236060ustar00rootroot00000000000000#ifndef _GF16_SHUFFLE_X86_COMMON_ #define _GF16_SHUFFLE_X86_COMMON_ #include "gf16_global.h" #include "../src/platform.h" #if (GF16_POLYNOMIAL | 0x1f) == 0x1101f // enable special routine if targeting our default 0x1100b polynomial # define GF16_POLYNOMIAL_SIMPLE #endif #define GF16_MULTBY_TWO_X2(p) ((((p) << 1) & 0xffffffff) ^ ((GF16_POLYNOMIAL ^ ((GF16_POLYNOMIAL&0xffff) << 16)) & -((p) >> 31))) #ifdef __SSSE3__ static HEDLEY_ALWAYS_INLINE void initial_mul_vector(uint16_t val, __m128i* prod, __m128i* prod4) { uint32_t val1 = (uint32_t)val << 16; uint32_t val2 = val1 | val; val2 = GF16_MULTBY_TWO_X2(val2); __m128i tmp = _mm_cvtsi32_si128(val1); #if defined(_AVAILABLE_AVX) || (MWORD_SIZE >= 32 && defined(_AVAILABLE)) *prod = _mm_insert_epi32(tmp, val2 ^ val1, 1); #else *prod = _mm_unpacklo_epi32(tmp, _mm_cvtsi32_si128(val2 ^ val1)); #endif *prod4 = _mm_set1_epi32(GF16_MULTBY_TWO_X2(val2)); } #endif #ifdef _AVAILABLE static HEDLEY_ALWAYS_INLINE void shuf0_vector(uint16_t val, __m128i* prod0, __m128i* prod8) { __m128i tmp, vval4; initial_mul_vector(val, &tmp, &vval4); *prod0 = _mm_unpacklo_epi64(tmp, _mm_xor_si128(tmp, vval4)); // multiply by 2 and add prod0 to give prod8 __m128i poly = _mm_and_si128(_mm_set1_epi16(GF16_POLYNOMIAL & 0xffff), _mm_cmpgt_epi16( _mm_setzero_si128(), vval4 )); #if MWORD_SIZE == 64 *prod8 = _mm_ternarylogic_epi32( _mm_add_epi16(vval4, vval4), poly, *prod0, 0x96 ); #else *prod8 = _mm_xor_si128( _mm_add_epi16(vval4, vval4), _mm_xor_si128(*prod0, poly) ); #endif /* // although the following seems simpler, it doesn't actually seem to be faster, although I don't know why uint8_t* multbl = (uint8_t*)scratch + sizeof(__m128i)*2; __m128i factor0 = _mm_load_si128((__m128i*)multbl + (val & 0xf)); factor0 = _mm_xor_si128(factor0, _mm_load_si128((__m128i*)(multbl + (val & 0xf0)) + 16)); factor0 = _mm_xor_si128(factor0, _mm_load_si128((__m128i*)(multbl + ((val>>4) & 0xf0)) + 32)); factor0 = _mm_xor_si128(factor0, _mm_load_si128((__m128i*)(multbl + ((val>>8) & 0xf0)) + 48)); __m128i factor8 = _mm_shuffle_epi8(factor0, _mm_set_epi32(0x0f0f0f0f, 0x0f0f0f0f, 0x07070707, 0x07070707)); factor0 = _mm_slli_epi64(factor0, 8); factor8 = _mm_xor_si128(factor0, factor8); low0 = BCAST(_mm_unpacklo_epi64(factor0, factor8)); high0 = BCAST(_mm_unpackhi_epi64(factor0, factor8)); */ } static HEDLEY_ALWAYS_INLINE _mword separate_low_high(_mword data) { // MSVC < 2019 doesn't seem to like #if or defines inside _mm512_set*, so we expand it manually #if MWORD_SIZE == 64 return _MM(shuffle_epi8)(data, _mm512_set4_epi32(0x0f0d0b09, 0x07050301, 0x0e0c0a08, 0x06040200)); #else return _MM(shuffle_epi8)(data, _MM(set_epi32)( # if MWORD_SIZE >= 32 0x0f0d0b09, 0x07050301, 0x0e0c0a08, 0x06040200, # endif 0x0f0d0b09, 0x07050301, 0x0e0c0a08, 0x06040200 )); #endif } #if MWORD_SIZE == 16 && defined(_AVAILABLE_XOP) #define _MM_SRLI4_EPI8(v) _mm_shl_epi8(v, _mm_set1_epi8(-4)) #define _MM_SLLI4_EPI8(v) _mm_shl_epi8(v, _mm_set1_epi8(4)) #else #define _MM_SRLI4_EPI8(v) _MMI(and)(_MM(srli_epi16)(v, 4), _MM(set1_epi8)(0xf)) #define _MM_SLLI4_EPI8(v) _MM(slli_epi16)(_MMI(and)(v, _MM(set1_epi8)(0xf)), 4) #endif #if MWORD_SIZE >= 32 static HEDLEY_ALWAYS_INLINE void mul16_vec2x(__m256i mulLo, __m256i mulHi, __m256i srcLo, __m256i srcHi, __m256i* dstLo, __m256i *dstHi) { __m256i ti = _mm256_and_si256(_mm256_srli_epi16(srcHi, 4), _mm256_set1_epi8(0xf)); #ifdef GF16_POLYNOMIAL_SIMPLE srcHi = _mm256_xor_si256(srcHi, ti); #endif #if MWORD_SIZE == 64 __m256i th = _mm256_ternarylogic_epi32( _mm256_srli_epi16(srcLo, 4), _mm256_set1_epi8(0xf), _mm256_slli_epi16(srcHi, 4), 0xE2 ); *dstLo = _mm256_ternarylogic_epi32( _mm256_shuffle_epi8(mulLo, ti), _mm256_set1_epi8(0xf), _mm256_slli_epi16(srcLo, 4), 0xD2 ); #else __m256i tl = _mm256_slli_epi16(_mm256_and_si256(_mm256_set1_epi8(0xf), srcLo), 4); __m256i th = _mm256_slli_epi16(_mm256_and_si256(_mm256_set1_epi8(0xf), srcHi), 4); th = _mm256_or_si256(th, _mm256_and_si256(_mm256_srli_epi16(srcLo, 4), _mm256_set1_epi8(0xf))); *dstLo = _mm256_xor_si256(tl, _mm256_shuffle_epi8(mulLo, ti)); #endif #ifdef GF16_POLYNOMIAL_SIMPLE *dstHi = th; UNUSED(mulHi); #else *dstHi = _mm256_xor_si256(th, _mm256_shuffle_epi8(mulHi, ti)); #endif } static HEDLEY_ALWAYS_INLINE __m256i gf16_vec256_mul2(__m256i v) { # if MWORD_SIZE == 64 return _mm256_ternarylogic_epi32( _mm256_add_epi16(v, v), _mm256_cmpgt_epi16(_mm256_setzero_si256(), v), _mm256_set1_epi16(GF16_POLYNOMIAL & 0xffff), 0x78 // (a^(b&c)) ); # else return _mm256_xor_si256( _mm256_add_epi16(v, v), _mm256_and_si256(_mm256_set1_epi16(GF16_POLYNOMIAL & 0xffff), _mm256_cmpgt_epi16( _mm256_setzero_si256(), v )) ); # endif } #endif #if defined(_AVAILABLE_XOP) #define _MM128_SRLI4_EPI8(v) _mm_shl_epi8(v, _mm_set1_epi8(-4)) #define _MM128_SLLI4_EPI8(v) _mm_shl_epi8(v, _mm_set1_epi8(4)) #else #define _MM128_SRLI4_EPI8(v) _mm_and_si128(_mm_srli_epi16(v, 4), _mm_set1_epi8(0xf)) #define _MM128_SLLI4_EPI8(v) _mm_slli_epi16(_mm_and_si128(v, _mm_set1_epi8(0xf)), 4) #endif static HEDLEY_ALWAYS_INLINE void mul16_vec128(__m128i mulLo, __m128i mulHi, __m128i srcLo, __m128i srcHi, __m128i* dstLo, __m128i *dstHi) { __m128i ti = _MM128_SRLI4_EPI8(srcHi); __m128i sh = srcHi; // MSVC x86 seems to have an odd bug where the parent's variable (e.g. high0/1/2/3) can be modified if srcHi is modified; we work around this by explicitly assigning it to something else #ifdef GF16_POLYNOMIAL_SIMPLE sh = _mm_xor_si128(sh, ti); #endif #if MWORD_SIZE == 64 __m128i th = _mm_ternarylogic_epi32( _mm_srli_epi16(srcLo, 4), _mm_set1_epi8(0xf), _mm_slli_epi16(sh, 4), 0xE2 ); *dstLo = _mm_ternarylogic_epi32( _mm_shuffle_epi8(mulLo, ti), _mm_set1_epi8(0xf), _mm_slli_epi16(srcLo, 4), 0xD2 ); #else __m128i tl = _MM128_SLLI4_EPI8(srcLo); __m128i th = _MM128_SLLI4_EPI8(sh); th = _mm_or_si128(th, _MM128_SRLI4_EPI8(srcLo)); *dstLo = _mm_xor_si128(tl, _mm_shuffle_epi8(mulLo, ti)); #endif #ifdef GF16_POLYNOMIAL_SIMPLE *dstHi = th; UNUSED(mulHi); #else *dstHi = _mm_xor_si128(th, _mm_shuffle_epi8(mulHi, ti)); #endif } #if MWORD_SIZE == 64 static HEDLEY_ALWAYS_INLINE void mul16_vec4x(__m512i mulLo, __m512i mulHi, __m512i srcLo, __m512i srcHi, __m512i* dstLo, __m512i *dstHi) { __m512i ti = _mm512_and_si512(_mm512_srli_epi16(srcHi, 4), _mm512_set1_epi8(0xf)); #ifdef GF16_POLYNOMIAL_SIMPLE srcHi = _mm512_xor_si512(srcHi, ti); #endif __m512i th = _mm512_ternarylogic_epi32( _mm512_srli_epi16(srcLo, 4), _mm512_set1_epi8(0xf), _mm512_slli_epi16(srcHi, 4), 0xE2 ); *dstLo = _mm512_ternarylogic_epi32( _mm512_shuffle_epi8(mulLo, ti), _mm512_set1_epi8(0xf), _mm512_slli_epi16(srcLo, 4), 0xD2 ); #ifdef GF16_POLYNOMIAL_SIMPLE *dstHi = th; UNUSED(mulHi); #else *dstHi = _mm512_xor_si512(th, _mm512_shuffle_epi8(mulHi, ti)); #endif } static HEDLEY_ALWAYS_INLINE __m512i separate_low_high512(__m512i v) { return _mm512_shuffle_epi8(v, _mm512_set4_epi32(0x0f0d0b09, 0x07050301, 0x0e0c0a08, 0x06040200)); } static HEDLEY_ALWAYS_INLINE __m512i gf16_vec512_mul2(__m512i v) { return _mm512_ternarylogic_epi32( _mm512_add_epi16(v, v), _mm512_srai_epi16(v, 15), _mm512_set1_epi16(GF16_POLYNOMIAL & 0xffff), 0x78 // (a^(b&c)) ); } static HEDLEY_ALWAYS_INLINE void gf16_initial_mul_vector_x2(const uint16_t* coefficients, __m256i* prod0, __m256i* mul8) { *prod0 = _mm256_shuffle_epi8( _mm256_broadcastd_epi32(_mm_cvtsi32_si128(read32(coefficients))), _mm256_set_epi32( 0x03020302, 0x03020302, 0x03020302, 0x03020302, 0x01000100, 0x01000100, 0x01000100, 0x01000100 ) ); #if GF16_POLYNOMIAL & 0xe000 // we assume top three bits aren't set # error Polynomial unsupported #endif __mmask8 mul4poly = _mm256_test_epi32_mask(*prod0, _mm256_set1_epi32(0x4000)); __mmask8 mul8poly = _mm256_test_epi32_mask(*prod0, _mm256_set1_epi32(0x2000)); __m256i poly = _mm256_set1_epi16(GF16_POLYNOMIAL & 0xffff); __m256i mul2 = gf16_vec256_mul2(*prod0); __m256i mul4 = _mm256_add_epi16(mul2, mul2); mul4 = _mm256_mask_xor_epi32(mul4, mul4poly, mul4, poly); *prod0 = _mm256_slli_epi32(*prod0, 16); // 10101010 *prod0 = _mm256_mask_xor_epi32(*prod0, 0xaa, mul2, *prod0); // 32103210 *prod0 = _mm256_mask_xor_epi64(*prod0, 0xaa, mul4, *prod0); // 76543210 *mul8 = _mm256_add_epi16(mul4, mul4); *mul8 = _mm256_mask_xor_epi32(*mul8, mul8poly, *mul8, poly); } static HEDLEY_ALWAYS_INLINE void gf16_initial_mul_vector_x4(const uint16_t* coefficients, __m512i* prod0, __m512i* mul8, const int do4) { __m128i coeff; if(do4) coeff = _mm_loadl_epi64((__m128i*)coefficients); else coeff = _mm_insert_epi16(_mm_cvtsi32_si128(read32(coefficients)), coefficients[2], 2); *prod0 = _mm512_shuffle_epi8(_mm512_broadcastq_epi64(coeff), _mm512_set_epi32( 0x07060706, 0x07060706, 0x07060706, 0x07060706, 0x05040504, 0x05040504, 0x05040504, 0x05040504, 0x03020302, 0x03020302, 0x03020302, 0x03020302, 0x01000100, 0x01000100, 0x01000100, 0x01000100 )); #if GF16_POLYNOMIAL & 0xe000 // we assume top three bits aren't set # error Polynomial unsupported #endif __mmask16 mul4poly = _mm512_test_epi32_mask(*prod0, _mm512_set1_epi32(0x4000)); __mmask16 mul8poly = _mm512_test_epi32_mask(*prod0, _mm512_set1_epi32(0x2000)); __m512i poly = _mm512_set1_epi16(GF16_POLYNOMIAL & 0xffff); __m512i mul2 = gf16_vec512_mul2(*prod0); __m512i mul4 = _mm512_add_epi16(mul2, mul2); mul4 = _mm512_mask_xor_epi32(mul4, mul4poly, mul4, poly); *prod0 = _mm512_slli_epi32(*prod0, 16); // 10101010 *prod0 = _mm512_mask_xor_epi32(*prod0, 0xaaaa, mul2, *prod0); // 32103210 *prod0 = _mm512_mask_xor_epi64(*prod0, 0xaa, mul4, *prod0); // 76543210 *mul8 = _mm512_add_epi16(mul4, mul4); *mul8 = _mm512_mask_xor_epi32(*mul8, mul8poly, *mul8, poly); } #endif #endif // defined(_AVAILABLE) #endif // defined(_GF16_SHUFFLE_X86_COMMON_) par2cmdline-turbo-1.5.0/parpar/gf16/gf16_shuffle_x86_prepare.h000066400000000000000000000041651524160147200237610ustar00rootroot00000000000000 #include "gf16_shuffle_x86_common.h" #include "gf16_checksum_x86.h" static HEDLEY_ALWAYS_INLINE void _FN(gf16_shuffle_prepare_block)(void* dst, const void* src) { _mword ta = _MMI(loadu)((_mword*)src); _mword tb = _MMI(loadu)((_mword*)src + 1); ta = separate_low_high(ta); tb = separate_low_high(tb); _MMI(store)((_mword*)dst, _MM(unpackhi_epi64)(ta, tb) ); _MMI(store)((_mword*)dst + 1, _MM(unpacklo_epi64)(ta, tb) ); } // final block static HEDLEY_ALWAYS_INLINE void _FN(gf16_shuffle_prepare_blocku)(void* dst, const void* src, size_t remaining) { _mword ta, tb; if(remaining & sizeof(_mword)) ta = _MMI(loadu)((_mword*)src); else ta = partial_load(src, remaining); ta = separate_low_high(ta); if(remaining <= sizeof(_mword)) tb = _MMI(setzero)(); else { tb = partial_load((char*)src + sizeof(_mword), remaining - sizeof(_mword)); tb = separate_low_high(tb); } _MMI(store)((_mword*)dst, _MM(unpackhi_epi64)(ta, tb) ); _MMI(store)((_mword*)dst + 1, _MM(unpacklo_epi64)(ta, tb) ); } static HEDLEY_ALWAYS_INLINE void _FN(gf16_shuffle_finish_block)(void *HEDLEY_RESTRICT dst) { _mword ta = _MMI(load)((_mword*)dst); _mword tb = _MMI(load)((_mword*)dst + 1); _MMI(store)((_mword*)dst, _MM(unpacklo_epi8)(tb, ta)); _MMI(store)((_mword*)dst + 1, _MM(unpackhi_epi8)(tb, ta)); } static HEDLEY_ALWAYS_INLINE void _FN(gf16_shuffle_finish_copy_block)(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src) { _mword ta = _MMI(load)((_mword*)src); _mword tb = _MMI(load)((_mword*)src + 1); _MMI(storeu)((_mword*)dst, _MM(unpacklo_epi8)(tb, ta)); _MMI(storeu)((_mword*)dst + 1, _MM(unpackhi_epi8)(tb, ta)); } static HEDLEY_ALWAYS_INLINE void _FN(gf16_shuffle_finish_copy_blocku)(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t bytes) { _mword ta = _MMI(load)((_mword*)src); _mword tb = _MMI(load)((_mword*)src + 1); _mword a = _MM(unpacklo_epi8)(tb, ta); _mword b = _MM(unpackhi_epi8)(tb, ta); if(bytes & sizeof(_mword)) { _MMI(storeu)((_mword*)dst, a); bytes ^= sizeof(_mword); if(bytes) partial_store((_mword*)dst + 1, b, bytes); } else partial_store(dst, a, bytes); } par2cmdline-turbo-1.5.0/parpar/gf16/gf16_sve_common.h000066400000000000000000000047411524160147200222470ustar00rootroot00000000000000#ifndef __GF16_SVE_COMMON_H #define __GF16_SVE_COMMON_H #include "gf16_global.h" #include "../src/platform.h" #if defined(__ARM_FEATURE_SVE) #define NOMASK(f, ...) f ## _x(svptrue_b8(), __VA_ARGS__) // headers # include static HEDLEY_ALWAYS_INLINE svint16_t gf16_vec_mul2_sve(svint16_t v) { return sveor_n_s16_m( svcmplt_n_s16(svptrue_b16(), v, 0), NOMASK(svadd_s16, v, v), GF16_POLYNOMIAL & 0xffff ); } // copying prepare block for both shuffle/clmul static HEDLEY_ALWAYS_INLINE void gf16_prepare_block_sve(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src) { svst1_u8(svptrue_b8(), dst, svld1_u8(svptrue_b8(), src)); svst1_vnum_u8(svptrue_b8(), dst, 1, svld1_vnum_u8(svptrue_b8(), src, 1)); } static HEDLEY_ALWAYS_INLINE void gf16_prepare_half_block_sve(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src) { svst1_u8(svptrue_b8(), dst, svld1_u8(svptrue_b8(), src)); } // final block static HEDLEY_ALWAYS_INLINE void gf16_prepare_blocku_sve(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t remaining) { svst1_u8(svptrue_b8(), dst, svld1_u8(svwhilelt_b8_u64(0, remaining), src)); svst1_vnum_u8(svptrue_b8(), dst, 1, svld1_vnum_u8(svwhilelt_b8_u64(svcntb(), remaining), src, 1)); } static HEDLEY_ALWAYS_INLINE void gf16_prepare_half_blocku_sve(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t remaining) { svst1_u8(svptrue_b8(), dst, svld1_u8(svwhilelt_b8_u64(0, remaining), src)); } static HEDLEY_ALWAYS_INLINE void gf16_finish_blocku_sve(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t remaining) { svst1_u8(svwhilelt_b8_u64(0, remaining), dst, svld1_u8(svptrue_b8(), src)); svst1_vnum_u8(svwhilelt_b8_u64(svcntb(), remaining), dst, 1, svld1_vnum_u8(svptrue_b8(), src, 1)); } static HEDLEY_ALWAYS_INLINE void gf16_finish_half_blocku_sve(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t remaining) { svst1_u8(svwhilelt_b8_u64(0, remaining), dst, svld1_u8(svptrue_b8(), src)); } #if defined(_MSC_VER) && !defined(__clang__) # include #endif static HEDLEY_ALWAYS_INLINE void gf16_checksum_prepare_sve(void *HEDLEY_RESTRICT dst, void *HEDLEY_RESTRICT checksum, const size_t blockLen, gf16_transform_block_rst prepareBlock) { #if defined(_MSC_VER) && !defined(__clang__) int16_t* tmp = (int16_t*)_alloca(blockLen); #else ALIGN_TO(16, int16_t tmp[blockLen/2]); #endif memset(tmp, 0, blockLen); svst1_s16(svptrue_b16(), tmp, *(svint16_t*)checksum); prepareBlock(dst, tmp); } #endif #endifpar2cmdline-turbo-1.5.0/parpar/gf16/gf16_xor.h000066400000000000000000000074311524160147200207110ustar00rootroot00000000000000 #include "../src/hedley.h" #define FUNCS(v) \ void* gf16_xor_jit_init_##v(int polynomial, int jitOptStrat); \ void* gf16_xor_jit_init_mut_##v(); \ void gf16_xor_prepare_packed_cksum_##v(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen); \ void gf16_xor_prepare_partial_packsum_##v(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen, size_t partOffset, size_t partLen); \ int gf16_xor_finish_packed_cksum_##v(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t sliceLen, unsigned numOutputs, unsigned outputNum, size_t chunkLen); \ int gf16_xor_finish_partial_packsum_##v(void *HEDLEY_RESTRICT dst, void *HEDLEY_RESTRICT src, size_t sliceLen, unsigned numOutputs, unsigned outputNum, size_t chunkLen, size_t partOffset, size_t partLen); \ void gf16_xor_jit_muladd_##v(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch); \ void gf16_xor_jit_muladd_prefetch_##v(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch, const void *HEDLEY_RESTRICT prefetch); \ extern int gf16_xor_available_##v FUNCS(sse2); FUNCS(avx2); FUNCS(avx512); #undef FUNCS #ifdef PARPAR_INVERT_SUPPORT #define FUNCS(v) \ void gf16_xor_prepare_##v(void* dst, const void* src, size_t srcLen); \ void gf16_xor_finish_##v(void *HEDLEY_RESTRICT dst, size_t len); \ void gf16_xor_jit_mul_##v(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) FUNCS(sse2); FUNCS(avx2); FUNCS(avx512); #undef FUNCS #endif #ifdef PARPAR_INCLUDE_BASIC_OPS #define FUNCS(v) \ void gf16_xor_prepare_packed_##v(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen); \ void gf16_xor_finish_packed_##v(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t sliceLen, unsigned numOutputs, unsigned outputNum, size_t chunkLen) FUNCS(sse2); FUNCS(avx2); FUNCS(avx512); #undef FUNCS #endif void gf16_xor_jit_muladd_multi_avx512(const void *HEDLEY_RESTRICT scratch, unsigned regions, size_t offset, void *HEDLEY_RESTRICT dst, const void* const*HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch); void gf16_xor_jit_muladd_multi_packed_avx512(const void *HEDLEY_RESTRICT scratch, unsigned packRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch); void gf16_xor_jit_uninit(void* scratch); // non-JIT version void* gf16_xor_init_sse2(int polynomial); #ifdef PARPAR_INVERT_SUPPORT void gf16_xor_mul_sse2(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch); #endif void gf16_xor_muladd_sse2(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch); // JIT strategies for current processor #define GF16_XOR_JIT_STRAT_NONE 0 #define GF16_XOR_JIT_STRAT_COPYNT 1 #define GF16_XOR_JIT_STRAT_COPY 2 #define GF16_XOR_JIT_STRAT_CLR 3 #ifdef PARPAR_INVERT_SUPPORT uint16_t gf16_xor16_replace_word(void* data, size_t index, uint16_t newValue); uint16_t gf16_xor32_replace_word(void* data, size_t index, uint16_t newValue); uint16_t gf16_xor64_replace_word(void* data, size_t index, uint16_t newValue); #endif par2cmdline-turbo-1.5.0/parpar/gf16/gf16_xor_avx2.c000066400000000000000000000645421524160147200216520ustar00rootroot00000000000000 #define _GF16_XORJIT_COPY_ALIGN 32 #include "gf16_xor_common.h" #undef _GF16_XORJIT_COPY_ALIGN #include #if defined(__AVX2__) && defined(PLATFORM_AMD64) int gf16_xor_available_avx2 = 1; #else int gf16_xor_available_avx2 = 0; #endif #if defined(__AVX2__) && defined(PLATFORM_AMD64) ALIGN_TO(16, __m128i xor256_jit_clut_code1[64]); ALIGN_TO(16, uint8_t xor256_jit_clut_info_mem[64]); ALIGN_TO(16, __m64 xor256_jit_nums[128]); ALIGN_TO(16, __m64 xor256_jit_rmask[128]); static int xor256_jit_created = 0; static void gf16_xor_create_jit_lut_avx2(void) { uint_fast32_t i; int j; if(xor256_jit_created) return; xor256_jit_created = 1; memset(xor256_jit_clut_code1, 0, sizeof(xor256_jit_clut_code1)); for(i=0; i<64; i++) { int m = (i&1) | ((i&8)>>2) | ((i&2)<<1) | ((i&16)>>1) | ((i&4)<<2) | (i&32); /* interleave bits */ uint_fast8_t posM = 0; uint8_t* pC = (uint8_t*)(xor256_jit_clut_code1 + i); for(j=0; j<3; j++) { int msk = m&3; if(msk) { int reg = msk-1; /* if we ever support 32-bit, need to ensure that vpxor/load is fixed length */ pC += _jit_vpxor_m(pC, reg, reg, AX, lshift32(j-4, 5)); /* advance pointers */ posM += 5; } m >>= 2; } xor256_jit_clut_info_mem[i] = posM; } memset(xor256_jit_nums, 255, sizeof(xor256_jit_nums)); memset(xor256_jit_rmask, 0, sizeof(xor256_jit_rmask)); for(i=0; i<128; i++) { uint8_t* nums = (uint8_t*)(xor256_jit_nums + i), * rmask = (uint8_t*)(xor256_jit_rmask + i); for(j=0; j<8; j++) { if(i & (1< 2) { *jitptr += _jit_vpxor_m(*jitptr, reg, (uint_fast8_t)highest, AX, lowest*32-128); } else if(highest >= 0) { *jitptr += _jit_vmovdqa_load(*jitptr, reg, AX, highest*32-128); *jitptr += _jit_vpxor_m(*jitptr, reg, reg, AX, lowest*32-128); } else *jitptr += _jit_vmovdqa_load(*jitptr, reg, AX, lowest*32-128); } else { if(highest >= 0) { /* highest dep cannot be sourced from memory */ *jitptr += _jit_vpxor_r(*jitptr, reg, (uint_fast8_t)highest, (uint_fast8_t)lowest); } else #ifdef XORDEP_AVX_XOR_OPTIMAL { /* just change XOR at end to merge from this register */ return lowest; } #else /* just a move */ *jitptr += _jit_vmovdqa(*jitptr, reg, (uint_fast8_t)lowest); #endif } } return reg; } // table originally from http://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetTable // modified for our use (items pre-multiplied by 4, only 128 entries) static const unsigned char xor256_jit_len[128] = { # define B2(n) n, n+4, n+4, n+8 # define B4(n) B2(n), B2(n+4), B2(n+4), B2(n+8) # define B6(n) B4(n), B4(n+4), B4(n+4), B4(n+8) B6(0), B6(4) #undef B2 #undef B4 #undef B6 }; static inline int xor_write_avx_main_part(void* jitptr, uint8_t dep1, uint8_t dep2, int high) { uint8_t dep = dep1 | dep2; __m128i nums = _mm_loadl_epi64((__m128i*)(xor256_jit_nums + dep)); // expand to 8x32b + shift into place __m256i srcs = _mm256_slli_epi32(_mm256_cvtepu8_epi32(_mm_add_epi8(nums, _mm_set1_epi8(high ? 10 : 3))), 11); __m128i regs = _mm_loadl_epi64((__m128i*)(xor256_jit_rmask + dep1)); __m128i regs2 = _mm_loadl_epi64((__m128i*)(xor256_jit_rmask + dep2)); regs = _mm_or_si128(regs, _mm_add_epi8(regs2, regs2)); regs = _mm_shuffle_epi8(regs, nums); __m256i inst = _mm256_add_epi8( _mm256_slli_epi32(_mm256_cvtepu8_epi32(regs), 24), _mm256_set1_epi32(0xB7EFFDC5) /* VPXOR op-code, but last byte is 0xC0 - ((1<<3)+1) to offset the fact that our registers num is +1 too much */ ); _mm256_storeu_si256((__m256i*)jitptr, _mm256_xor_si256(srcs, inst)); return xor256_jit_len[dep]; } static inline void* xor_write_jit_avx(const void *HEDLEY_RESTRICT _scratch, uint8_t *HEDLEY_RESTRICT jitptr, uint16_t val, const int mode, const int prefetch) { const struct gf16_xor_scratch *HEDLEY_RESTRICT scratch = (const struct gf16_xor_scratch*)_scratch; uint_fast32_t bit; __m256i depmask = _mm256_load_si256((__m256i*)scratch->deps + (val & 0xf)*4); depmask = _mm256_xor_si256(depmask, _mm256_load_si256((__m256i*)(scratch->deps + ((val << 3) & 0x780)) + 1) ); depmask = _mm256_xor_si256(depmask, _mm256_load_si256((__m256i*)(scratch->deps + ((val >> 1) & 0x780)) + 2) ); depmask = _mm256_xor_si256(depmask, _mm256_load_si256((__m256i*)(scratch->deps + ((val >> 5) & 0x780)) + 3) ); __m128i common_mask, tmp3, tmp4; tmp3 = _mm256_castsi256_si128(depmask); tmp4 = _mm256_extracti128_si256(depmask, 1); ALIGN_TO(16, int16_t common_highest[8]); ALIGN_TO(16, int16_t common_lowest[8]); ALIGN_TO(16, int16_t dep1_highest[8]); ALIGN_TO(16, int16_t dep1_lowest[8]); ALIGN_TO(16, int16_t dep2_highest[8]); ALIGN_TO(16, int16_t dep2_lowest[8]); /* obtain index of lowest bit set, and clear it */ common_mask = _mm_and_si128(tmp3, tmp4); __m128i lowest = ssse3_tzcnt_epi16(common_mask); _mm_store_si128((__m128i*)common_lowest, lowest); __m128i common_sub1 = _mm_add_epi16(common_mask, _mm_set1_epi16(-1)); // TODO: could re-use the VPXOR constant with _mm_sign_epi16 (and invert and/not below) __m128i common_elim = _mm_andnot_si128(common_sub1, common_mask); __m128i highest; common_mask = _mm_and_si128(common_mask, common_sub1); highest = ssse3_lzcnt_epi16(common_mask); _mm_store_si128((__m128i*)common_highest, _mm_sub_epi16(_mm_set1_epi16(15), highest)); common_elim = _mm_or_si128(common_elim, sse4_lzcnt_to_mask_epi16(highest)); /* clear highest/lowest bit from tmp3/4 */ tmp3 = _mm_xor_si128(tmp3, common_elim); tmp4 = _mm_xor_si128(tmp4, common_elim); if(mode != XORDEP_JIT_MODE_MULADD) { lowest = ssse3_tzcnt_epi16(tmp3); _mm_store_si128((__m128i*)dep1_lowest, lowest); tmp3 = _mm_and_si128(tmp3, _mm_add_epi16(tmp3, _mm_set1_epi16(-1))); lowest = ssse3_tzcnt_epi16(tmp4); _mm_store_si128((__m128i*)dep2_lowest, lowest); tmp4 = _mm_and_si128(tmp4, _mm_add_epi16(tmp4, _mm_set1_epi16(-1))); } highest = ssse3_lzcnt_epi16(tmp3); _mm_store_si128((__m128i*)dep1_highest, _mm_sub_epi16(_mm_set1_epi16(15), highest)); tmp3 = _mm_xor_si128(tmp3, sse4_lzcnt_to_mask_epi16(highest)); highest = ssse3_lzcnt_epi16(tmp4); _mm_store_si128((__m128i*)dep2_highest, _mm_sub_epi16(_mm_set1_epi16(15), highest)); tmp4 = _mm_xor_si128(tmp4, sse4_lzcnt_to_mask_epi16(highest)); ALIGN_TO(16, uint16_t memDeps[8]); _mm_store_si128((__m128i*)memDeps, _mm_or_si128( _mm_and_si128(tmp3, _mm_set1_epi16(7)), _mm_slli_epi16(_mm_and_si128(tmp4, _mm_set1_epi16(7)), 3) )); ALIGN_TO(16, uint8_t deps1[16]); ALIGN_TO(16, uint8_t deps2[16]); tmp3 = _mm_srli_epi16(tmp3, 3); tmp4 = _mm_srli_epi16(tmp4, 3); tmp3 = _mm_blendv_epi8(_mm_add_epi16(tmp3, tmp3), _mm_and_si128(tmp3, _mm_set1_epi8(0x7f)), _mm_set1_epi16(0xff)); tmp4 = _mm_blendv_epi8(_mm_add_epi16(tmp4, tmp4), _mm_and_si128(tmp4, _mm_set1_epi8(0x7f)), _mm_set1_epi16(0xff)); _mm_store_si128((__m128i*)deps1, tmp3); _mm_store_si128((__m128i*)deps2, tmp4); if(prefetch) { jitptr += _jit_add_i(jitptr, SI, 256); jitptr += _jit_prefetch_m(jitptr, prefetch, SI, -128); jitptr += _jit_prefetch_m(jitptr, prefetch, SI, -64); jitptr += _jit_prefetch_m(jitptr, prefetch, SI, 0); jitptr += _jit_prefetch_m(jitptr, prefetch, SI, 64); } // TODO: optimize these #undef _LD_DQA #define _LD_DQA(yreg, mreg, offs) \ jitptr += _jit_vmovdqa_load(jitptr, yreg, mreg, offs) #undef _ST_DQA #define _ST_DQA(mreg, offs, yreg) \ jitptr += _jit_vmovdqa_store(jitptr, mreg, offs, yreg) //_jit_pxor_r(jit, r2, r1) /* #define _PXOR_R_(r2, r1, tr) \ write32(jitptr, (0xC0EF0F66 + ((r2) <<27) + ((r1) <<24)) ^ (tr)) #define _PXOR_R(r2, r1) \ _PXOR_R_(r2, r1, 0); \ jitptr += 4 #define _C_PXOR_R(r2, r1, c) \ _PXOR_R_(r2, r1, 0); \ jitptr += (c)<<2 */ #undef _PXOR_R #define _PXOR_R(r2, r1) jitptr += _jit_vpxor_r(jitptr, r2, r2, r1) #undef _C_PXOR_R #define _C_PXOR_R(rD, r2, r1, c) jitptr += _jit_vpxor_r(jitptr, rD, r2, r1) & -(c) /* generate code */ if(mode == XORDEP_JIT_MODE_MULADD) { for(bit=0; bit<8; bit++) { int destOffs = (bit<<6)-128; int destOffs2 = destOffs+32; uint8_t common_reg; /* if there's a higest bit set, do a VPXOR-load, otherwise, regular load + VPXOR-load */ if(dep1_highest[bit] > 2) { jitptr += _jit_vpxor_m(jitptr, 0, (uint_fast8_t)dep1_highest[bit], DX, destOffs); } else { _LD_DQA(0, DX, destOffs); if(dep1_highest[bit] >= 0) jitptr += _jit_vpxor_m(jitptr, 0, 0, AX, dep1_highest[bit]*32-128); } if(dep2_highest[bit] > 2) { jitptr += _jit_vpxor_m(jitptr, 1, (uint_fast8_t)dep2_highest[bit], DX, destOffs2); } else { _LD_DQA(1, DX, destOffs2); if(dep2_highest[bit] >= 0) jitptr += _jit_vpxor_m(jitptr, 1, 1, AX, dep2_highest[bit]*32-128); } /* for common mask, if two lowest bits available, do VPXOR, else if only one, just XOR at end (consider no common mask optimization to eliminate this case) */ common_reg = xor_write_avx_load_part(&jitptr, 2, common_lowest[bit], common_highest[bit]); _mm_storeu_si128((__m128i*)jitptr, _mm_load_si128(&xor256_jit_clut_code1[memDeps[bit]])); jitptr += xor256_jit_clut_info_mem[memDeps[bit]]; jitptr += xor_write_avx_main_part(jitptr, deps1[bit*2], deps2[bit*2], 0); jitptr += xor_write_avx_main_part(jitptr, deps1[bit*2+1], deps2[bit*2+1], 1); _C_PXOR_R(0, common_reg, 0, common_lowest[bit] < 16); _C_PXOR_R(1, common_reg, 1, common_lowest[bit] < 16); _ST_DQA(DX, destOffs, 0); _ST_DQA(DX, destOffs2, 1); } } else { for(bit=0; bit<8; bit++) { int destOffs = (bit<<6)-128; int destOffs2 = destOffs+32; uint8_t common_reg, reg1, reg2; reg1 = xor_write_avx_load_part(&jitptr, 0, dep1_lowest[bit], dep1_highest[bit]); reg2 = xor_write_avx_load_part(&jitptr, 1, dep2_lowest[bit], dep2_highest[bit]); common_reg = xor_write_avx_load_part(&jitptr, 2, common_lowest[bit], common_highest[bit]); _mm_storeu_si128((__m128i*)jitptr, _mm_load_si128(&xor256_jit_clut_code1[memDeps[bit]])); jitptr += xor256_jit_clut_info_mem[memDeps[bit]]; jitptr += xor_write_avx_main_part(jitptr, deps1[bit*2], deps2[bit*2], 0); jitptr += xor_write_avx_main_part(jitptr, deps1[bit*2+1], deps2[bit*2+1], 1); if(dep1_lowest[bit] < 16) { #ifdef XORDEP_AVX_XOR_OPTIMAL if(common_lowest[bit] < 16) { jitptr += _jit_vpxor_r(jitptr, 0, reg1, common_reg); _ST_DQA(DX, destOffs, 0); } else { _ST_DQA(DX, destOffs, reg1); } #else _C_PXOR_R(0, reg1, common_reg, common_lowest[bit] < 16); _ST_DQA(DX, destOffs, 0); #endif } else { /* dep1 must be sourced from the common mask */ _ST_DQA(DX, destOffs, common_reg); } if(dep2_lowest[bit] < 16) { #ifdef XORDEP_AVX_XOR_OPTIMAL if(common_lowest[bit] < 16) { jitptr += _jit_vpxor_r(jitptr, 1, reg2, common_reg); _ST_DQA(DX, destOffs2, 1); } else { _ST_DQA(DX, destOffs2, reg2); } #else _C_PXOR_R(1, reg2, common_reg, common_lowest[bit] < 16); _ST_DQA(DX, destOffs2, 1); #endif } else { _ST_DQA(DX, destOffs2, common_reg); } } } /* cmp/jcc */ write64(jitptr, 0x800FC03948 | (DX <<16) | (CX <<19) | ((uint64_t)JL <<32)); return jitptr+5; } static HEDLEY_ALWAYS_INLINE void gf16_xor_jit_mul_avx2_base(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch, const int mode, const int doPrefetch, const void *HEDLEY_RESTRICT prefetch) { jit_wx_pair* jit = (jit_wx_pair*)mutScratch; gf16_xorjit_write_jit(scratch, coefficient, jit, mode, doPrefetch, &xor_write_jit_avx, scratch); if(mode == XORDEP_JIT_MODE_MUL_INSITU) { ALIGN_TO(32, __m256i spill[3]); gf16_xor256_jit_stub( (intptr_t)spill + 128, (intptr_t)dst + len - 384, (intptr_t)dst - 384, (intptr_t)prefetch - 128, (uint8_t*)jit->x + XORDEP_JIT_SIZE/2 ); } else { gf16_xor256_jit_stub( (intptr_t)src - 384, (intptr_t)dst + len - 384, (intptr_t)dst - 384, (intptr_t)prefetch - 128, jit->x ); } _mm256_zeroupper(); } #endif /* defined(__AVX2__) && defined(PLATFORM_AMD64) */ #ifdef PARPAR_INVERT_SUPPORT void gf16_xor_jit_mul_avx2(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) { #if defined(__AVX2__) && defined(PLATFORM_AMD64) if(coefficient == 0) { memset(dst, 0, len); return; } gf16_xor_jit_mul_avx2_base(scratch, dst, src, len, coefficient, mutScratch, dst==src ? XORDEP_JIT_MODE_MUL_INSITU : XORDEP_JIT_MODE_MUL, 0, NULL); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); UNUSED(mutScratch); #endif } #endif void gf16_xor_jit_muladd_avx2(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) { #if defined(__AVX2__) && defined(PLATFORM_AMD64) if(coefficient == 0) return; gf16_xor_jit_mul_avx2_base(scratch, dst, src, len, coefficient, mutScratch, XORDEP_JIT_MODE_MULADD, 0, NULL); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); UNUSED(mutScratch); #endif } void gf16_xor_jit_muladd_prefetch_avx2(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch, const void *HEDLEY_RESTRICT prefetch) { #if defined(__AVX2__) && defined(PLATFORM_AMD64) if(coefficient == 0) return; gf16_xor_jit_mul_avx2_base(scratch, dst, src, len, coefficient, mutScratch, XORDEP_JIT_MODE_MULADD, _MM_HINT_T1, prefetch); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); UNUSED(mutScratch); UNUSED(prefetch); #endif } #if defined(__AVX2__) && defined(PLATFORM_AMD64) // extract top bits; interleaving of 16-bit words needed due to byte arrangement for pmovmskb static HEDLEY_ALWAYS_INLINE __m256i gf16_xor_finish_extract_bits(__m256i src) { #define EXTRACT_BITS_NIBBLE(targVec, srcVec) { \ uint32_t mskA, mskB, mskC, mskD; \ mskD = _mm256_movemask_epi8(srcVec); \ srcVec = _mm256_add_epi8(srcVec, srcVec); \ mskC = _mm256_movemask_epi8(srcVec); \ srcVec = _mm256_add_epi8(srcVec, srcVec); \ mskB = _mm256_movemask_epi8(srcVec); \ srcVec = _mm256_add_epi8(srcVec, srcVec); \ mskA = _mm256_movemask_epi8(srcVec); \ targVec = _mm_cvtsi32_si128(mskA); \ targVec = _mm_insert_epi32(targVec, mskB, 1); \ targVec = _mm_insert_epi32(targVec, mskC, 2); \ targVec = _mm_insert_epi32(targVec, mskD, 3); \ } __m128i words1, words2; EXTRACT_BITS_NIBBLE(words1, src) src = _mm256_add_epi8(src, src); EXTRACT_BITS_NIBBLE(words2, src) __m256i words = _mm256_inserti128_si256(_mm256_castsi128_si256(words2), words1, 1); words = _mm256_shuffle_epi8(words, _mm256_set_epi32( 0x0f0e0b0a, 0x07060302, 0x0d0c0908, 0x05040100, 0x0f0e0b0a, 0x07060302, 0x0d0c0908, 0x05040100 )); return _mm256_permute4x64_epi64(words, _MM_SHUFFLE(3,1,2,0)); #undef EXTRACT_BITS_NIBBLE } static HEDLEY_ALWAYS_INLINE void gf16_xor_finish_extract_bits_store(uint32_t* dst, __m256i src) { __m256i srcShifted = _mm256_add_epi8(src, src); __m256i lane = _mm256_inserti128_si256(srcShifted, _mm256_castsi256_si128(src), 1); write32(dst+3, _mm256_movemask_epi8(lane)); lane = _mm256_slli_epi16(lane, 2); write32(dst+2, _mm256_movemask_epi8(lane)); lane = _mm256_slli_epi16(lane, 2); write32(dst+1, _mm256_movemask_epi8(lane)); lane = _mm256_slli_epi16(lane, 2); write32(dst+0, _mm256_movemask_epi8(lane)); lane = _mm256_permute2x128_si256(srcShifted, src, 0x31); write32(dst+7, _mm256_movemask_epi8(lane)); lane = _mm256_slli_epi16(lane, 2); write32(dst+6, _mm256_movemask_epi8(lane)); lane = _mm256_slli_epi16(lane, 2); write32(dst+5, _mm256_movemask_epi8(lane)); lane = _mm256_slli_epi16(lane, 2); write32(dst+4, _mm256_movemask_epi8(lane)); } #define LOAD_HALVES(a, b, upper) \ _mm256_inserti128_si256( \ _mm256_castsi128_si256(_mm_load_si128((__m128i*)(_src + 120 + upper*4 - (a)*8))), \ _mm_load_si128((__m128i*)(_src + 120 + upper*4 - (b)*8)), \ 1 \ ) #define LOAD_X4(offs, dst1, dst2, upper) { \ __m256i in1 = LOAD_HALVES(offs+0, offs+8, upper); /* 88888888 00000000 */ \ __m256i in2 = LOAD_HALVES(offs+1, offs+9, upper); /* 99999999 11111111 */ \ dst1 = _mm256_unpacklo_epi8(in1, in2); /* 98989898 10101010 */ \ dst2 = _mm256_unpackhi_epi8(in1, in2); \ } #define UNPACK_VECTS \ srcD0a = _mm256_unpacklo_epi16(srcW0, srcW2); /* ba98ba98 32103210 */ \ srcD0b = _mm256_unpackhi_epi16(srcW0, srcW2); \ srcD0c = _mm256_unpacklo_epi16(srcW1, srcW3); \ srcD0d = _mm256_unpackhi_epi16(srcW1, srcW3); \ srcD4a = _mm256_unpacklo_epi16(srcW4, srcW6); \ srcD4b = _mm256_unpackhi_epi16(srcW4, srcW6); \ srcD4c = _mm256_unpacklo_epi16(srcW5, srcW7); \ srcD4d = _mm256_unpackhi_epi16(srcW5, srcW7); \ \ srcQa = _mm256_unpacklo_epi32(srcD0a, srcD4a); /* fedcba98 76543210 */ \ srcQb = _mm256_unpackhi_epi32(srcD0a, srcD4a); \ srcQc = _mm256_unpacklo_epi32(srcD0b, srcD4b); \ srcQd = _mm256_unpackhi_epi32(srcD0b, srcD4b); \ srcQe = _mm256_unpacklo_epi32(srcD0c, srcD4c); \ srcQf = _mm256_unpackhi_epi32(srcD0c, srcD4c); \ srcQg = _mm256_unpacklo_epi32(srcD0d, srcD4d); \ srcQh = _mm256_unpackhi_epi32(srcD0d, srcD4d); \ \ srcQa = _mm256_permute4x64_epi64(srcQa, _MM_SHUFFLE(3,1,2,0)); /* fedcba9876543210 fedcba9876543210 */ \ srcQb = _mm256_permute4x64_epi64(srcQb, _MM_SHUFFLE(3,1,2,0)); \ srcQc = _mm256_permute4x64_epi64(srcQc, _MM_SHUFFLE(3,1,2,0)); \ srcQd = _mm256_permute4x64_epi64(srcQd, _MM_SHUFFLE(3,1,2,0)); \ srcQe = _mm256_permute4x64_epi64(srcQe, _MM_SHUFFLE(3,1,2,0)); \ srcQf = _mm256_permute4x64_epi64(srcQf, _MM_SHUFFLE(3,1,2,0)); \ srcQg = _mm256_permute4x64_epi64(srcQg, _MM_SHUFFLE(3,1,2,0)); \ srcQh = _mm256_permute4x64_epi64(srcQh, _MM_SHUFFLE(3,1,2,0)) void gf16_xor_finish_block_avx2(void *HEDLEY_RESTRICT dst) { uint32_t* _dst = (uint32_t*)dst; const uint32_t* _src = _dst; __m256i srcW0, srcW1, srcW2, srcW3, srcW4, srcW5, srcW6, srcW7; __m256i srcD0a, srcD0b, srcD0c, srcD0d, srcD4a, srcD4b, srcD4c, srcD4d; __m256i srcQa, srcQb, srcQc, srcQd, srcQe, srcQf, srcQg, srcQh; // load 16x 128-bit inputs LOAD_X4(0, srcW0, srcW1, 0) LOAD_X4(2, srcW2, srcW3, 0) LOAD_X4(4, srcW4, srcW5, 0) LOAD_X4(6, srcW6, srcW7, 0) // interleave bytes in all 8 vectors UNPACK_VECTS; // save extracted bits (can't write these yet as they'd overwrite the next round) __m256i dstA = gf16_xor_finish_extract_bits(srcQa); __m256i dstB = gf16_xor_finish_extract_bits(srcQb); __m256i dstC = gf16_xor_finish_extract_bits(srcQc); __m256i dstD = gf16_xor_finish_extract_bits(srcQd); __m256i dstE = gf16_xor_finish_extract_bits(srcQe); __m256i dstF = gf16_xor_finish_extract_bits(srcQf); __m256i dstG = gf16_xor_finish_extract_bits(srcQg); __m256i dstH = gf16_xor_finish_extract_bits(srcQh); // load second half & store saved data once relevant stuff read LOAD_X4(6, srcW6, srcW7, 1) _mm256_store_si256((__m256i*)(_dst + 0), dstA); _mm256_store_si256((__m256i*)(_dst + 8), dstB); LOAD_X4(4, srcW4, srcW5, 1) _mm256_store_si256((__m256i*)(_dst + 16), dstC); _mm256_store_si256((__m256i*)(_dst + 24), dstD); LOAD_X4(2, srcW2, srcW3, 1) _mm256_store_si256((__m256i*)(_dst + 32), dstE); _mm256_store_si256((__m256i*)(_dst + 40), dstF); LOAD_X4(0, srcW0, srcW1, 1) _mm256_store_si256((__m256i*)(_dst + 48), dstG); _mm256_store_si256((__m256i*)(_dst + 56), dstH); UNPACK_VECTS; gf16_xor_finish_extract_bits_store(_dst + 64 + 0, srcQa); gf16_xor_finish_extract_bits_store(_dst + 64 + 8, srcQb); gf16_xor_finish_extract_bits_store(_dst + 64 + 16, srcQc); gf16_xor_finish_extract_bits_store(_dst + 64 + 24, srcQd); gf16_xor_finish_extract_bits_store(_dst + 64 + 32, srcQe); gf16_xor_finish_extract_bits_store(_dst + 64 + 40, srcQf); gf16_xor_finish_extract_bits_store(_dst + 64 + 48, srcQg); gf16_xor_finish_extract_bits_store(_dst + 64 + 56, srcQh); } void gf16_xor_finish_copy_block_avx2(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src) { uint32_t* _dst = (uint32_t*)dst; const uint32_t* _src = (uint32_t*)src; __m256i srcW0, srcW1, srcW2, srcW3, srcW4, srcW5, srcW6, srcW7; __m256i srcD0a, srcD0b, srcD0c, srcD0d, srcD4a, srcD4b, srcD4c, srcD4d; __m256i srcQa, srcQb, srcQc, srcQd, srcQe, srcQf, srcQg, srcQh; // load 16x 128-bit inputs LOAD_X4(0, srcW0, srcW1, 0) LOAD_X4(2, srcW2, srcW3, 0) LOAD_X4(4, srcW4, srcW5, 0) LOAD_X4(6, srcW6, srcW7, 0) // interleave bytes in all 8 vectors UNPACK_VECTS; // save extracted bits gf16_xor_finish_extract_bits_store(_dst + 0, srcQa); gf16_xor_finish_extract_bits_store(_dst + 8, srcQb); gf16_xor_finish_extract_bits_store(_dst + 16, srcQc); gf16_xor_finish_extract_bits_store(_dst + 24, srcQd); gf16_xor_finish_extract_bits_store(_dst + 32, srcQe); gf16_xor_finish_extract_bits_store(_dst + 40, srcQf); gf16_xor_finish_extract_bits_store(_dst + 48, srcQg); gf16_xor_finish_extract_bits_store(_dst + 56, srcQh); // load second half & store saved data once relevant stuff read LOAD_X4(0, srcW0, srcW1, 1) LOAD_X4(2, srcW2, srcW3, 1) LOAD_X4(4, srcW4, srcW5, 1) LOAD_X4(6, srcW6, srcW7, 1) UNPACK_VECTS; gf16_xor_finish_extract_bits_store(_dst + 64 + 0, srcQa); gf16_xor_finish_extract_bits_store(_dst + 64 + 8, srcQb); gf16_xor_finish_extract_bits_store(_dst + 64 + 16, srcQc); gf16_xor_finish_extract_bits_store(_dst + 64 + 24, srcQd); gf16_xor_finish_extract_bits_store(_dst + 64 + 32, srcQe); gf16_xor_finish_extract_bits_store(_dst + 64 + 40, srcQf); gf16_xor_finish_extract_bits_store(_dst + 64 + 48, srcQg); gf16_xor_finish_extract_bits_store(_dst + 64 + 56, srcQh); } void gf16_xor_finish_copy_blocku_avx2(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t bytes) { uint16_t block[256]; gf16_xor_finish_copy_block_avx2(block, src); memcpy(dst, block, bytes); } #undef UNPACK_VECTS #undef LOAD_HALVES #undef LOAD_X4 #endif #define MWORD_SIZE 32 #define _mword __m256i #define _MM(f) _mm256_ ## f #define _MMI(f) _mm256_ ## f ## _si256 #define _FNSUFFIX _avx2 #define _MM_END _mm256_zeroupper(); #if defined(__AVX2__) && defined(PLATFORM_AMD64) # define _AVAILABLE # include "gf16_checksum_x86.h" #endif #include "gf16_xor_common_funcs.h" #undef _AVAILABLE #undef MWORD_SIZE #undef _mword #undef _MM #undef _MMI #undef _FNSUFFIX #undef _MM_END #if defined(__AVX2__) && defined(PLATFORM_AMD64) GF_FINISH_PACKED_FUNCS(gf16_xor, _avx2, sizeof(__m256i)*16, gf16_xor_finish_copy_block_avx2, gf16_xor_finish_copy_blocku_avx2, 1, _mm256_zeroupper(), gf16_checksum_block_avx2, gf16_checksum_blocku_avx2, gf16_checksum_exp_avx2, &gf16_xor_finish_block_avx2, sizeof(__m256i)) #else GF_FINISH_PACKED_FUNCS_STUB(gf16_xor, _avx2) #endif #if defined(__AVX2__) && defined(PLATFORM_AMD64) static void xor_write_init_jit(uint8_t *jitCodeNorm, uint8_t *jitCodeInsitu, uint_fast16_t* sizeNorm, uint_fast16_t* sizeInsitu) { uint8_t *jitCodeStart = jitCodeNorm; jitCodeNorm += _jit_add_i(jitCodeNorm, AX, 512); jitCodeNorm += _jit_add_i(jitCodeNorm, DX, 512); /* only 64-bit supported*/ for(int i=3; i<16; i++) { jitCodeNorm += _jit_vmovdqa_load(jitCodeNorm, i, AX, lshift32(i-4, 5)); } if(sizeNorm) *sizeNorm = (uint_fast16_t)(jitCodeNorm-jitCodeStart); jitCodeStart = jitCodeInsitu; jitCodeInsitu += _jit_add_i(jitCodeInsitu, DX, 512); for(int i=0; i<16; i++) { jitCodeInsitu += _jit_vmovdqa_load(jitCodeInsitu, i, DX, lshift32(i-4, 5)); } for(int i=0; i<3; i++) { jitCodeInsitu += _jit_vmovdqa_store(jitCodeInsitu, AX, lshift32(i-4, 5), i); } if(sizeInsitu) *sizeInsitu = (uint_fast16_t)(jitCodeInsitu-jitCodeStart); } # include "gf16_bitdep_init_avx2.h" #endif void* gf16_xor_jit_init_avx2(int polynomial, int jitOptStrat) { #if defined(__AVX2__) && defined(PLATFORM_AMD64) struct gf16_xor_scratch* ret; uint8_t tmpCode[XORDEP_JIT_CODE_SIZE]; ALIGN_ALLOC(ret, sizeof(struct gf16_xor_scratch), 32); gf16_bitdep_init256(ret->deps, polynomial, 0); gf16_xor_create_jit_lut_avx2(); ret->jitOptStrat = jitOptStrat; xor_write_init_jit(tmpCode, tmpCode, &(ret->codeStart), &(ret->codeStartInsitu)); return ret; #else UNUSED(polynomial); UNUSED(jitOptStrat); return NULL; #endif } void* gf16_xor_jit_init_mut_avx2() { #if defined(__AVX2__) && defined(PLATFORM_AMD64) jit_wx_pair *jitCode = jit_alloc(XORDEP_JIT_SIZE); if(!jitCode) return NULL; xor_write_init_jit(jitCode->w, (uint8_t*)jitCode->w + XORDEP_JIT_SIZE/2, NULL, NULL); return jitCode; #else return NULL; #endif } par2cmdline-turbo-1.5.0/parpar/gf16/gf16_xor_avx512.c000066400000000000000000001416601524160147200220150ustar00rootroot00000000000000 #define _GF16_XORJIT_COPY_ALIGN 32 #include "gf16_xor_common.h" #undef _GF16_XORJIT_COPY_ALIGN #if defined(__AVX512BW__) && defined(__AVX512VL__) && defined(PLATFORM_AMD64) && !defined(PARPAR_SLIM_GF16) # define _AVAILABLE #endif #ifdef _AVAILABLE int gf16_xor_available_avx512 = 1; #else int gf16_xor_available_avx512 = 0; #endif #ifdef _AVAILABLE static size_t xor_write_init_jit(uint8_t *jitCode) { uint8_t *jitCodeStart = jitCode; jitCode += _jit_add_i(jitCode, AX, 1024); jitCode += _jit_add_i(jitCode, DX, 1024); /* only 64-bit supported*/ for(int i=1; i<16; i++) { jitCode += _jit_vmovdqa32_load(jitCode, 16+i, DX, i<<6); } return jitCode-jitCodeStart; } # include "gf16_bitdep_init_avx2.h" /* because some versions of GCC (e.g. 6.3.0) lack _mm512_set_epi8, emulate it */ #define _P(e3,e2,e1,e0) ((((uint32_t)(e3&0xff))<<24) | (((uint32_t)(e2&0xff))<<16) | (((uint32_t)(e1&0xff))<<8) | ((uint32_t)(e0&0xff))) static HEDLEY_ALWAYS_INLINE __m512i MM512_SET_BYTES(char e63, char e62, char e61, char e60, char e59, char e58, char e57, char e56, char e55, char e54, char e53, char e52, char e51, char e50, char e49, char e48, char e47, char e46, char e45, char e44, char e43, char e42, char e41, char e40, char e39, char e38, char e37, char e36, char e35, char e34, char e33, char e32, char e31, char e30, char e29, char e28, char e27, char e26, char e25, char e24, char e23, char e22, char e21, char e20, char e19, char e18, char e17, char e16, char e15, char e14, char e13, char e12, char e11, char e10, char e9, char e8, char e7, char e6, char e5, char e4, char e3, char e2, char e1, char e0) { return _mm512_set_epi32(_P(e63,e62,e61,e60),_P(e59,e58,e57,e56),_P(e55,e54,e53,e52),_P(e51,e50,e49,e48),_P(e47,e46,e45,e44),_P(e43,e42,e41,e40),_P(e39,e38,e37,e36),_P(e35,e34,e33,e32),_P(e31,e30,e29,e28),_P(e27,e26,e25,e24),_P(e23,e22,e21,e20),_P(e19,e18,e17,e16),_P(e15,e14,e13,e12),_P(e11,e10,e9,e8),_P(e7,e6,e5,e4),_P(e3,e2,e1,e0)); } #undef _P static HEDLEY_ALWAYS_INLINE __m512i avx3_popcnt_epi8(__m512i src) { __m512i lmask = _mm512_set1_epi8(0xf); __m512i tbl = MM512_SET_BYTES( 4, 3, 3, 2, 3, 2, 2, 1, 3, 2, 2, 1, 2, 1, 1, 0, 4, 3, 3, 2, 3, 2, 2, 1, 3, 2, 2, 1, 2, 1, 1, 0, 4, 3, 3, 2, 3, 2, 2, 1, 3, 2, 2, 1, 2, 1, 1, 0, 4, 3, 3, 2, 3, 2, 2, 1, 3, 2, 2, 1, 2, 1, 1, 0 ); return _mm512_add_epi8( _mm512_shuffle_epi8(tbl, _mm512_and_si512(src, lmask)), _mm512_shuffle_epi8(tbl, _mm512_and_si512(_mm512_srli_epi16(src, 4), lmask)) ); } static HEDLEY_ALWAYS_INLINE __m512i avx3_popcnt_epi16(__m512i src) { return _mm512_maddubs_epi16(avx3_popcnt_epi8(src), _mm512_set1_epi8(1)); } /* static HEDLEY_ALWAYS_INLINE __m128i sse_load_halves(void* lo, void* hi) { return _mm_castps_si128(_mm_loadh_pi( _mm_castsi128_ps(_mm_loadl_epi64((__m128i*)lo)), hi )); } */ static HEDLEY_ALWAYS_INLINE __m512i xor_avx512_main_part_fromreg(int odd, int r, __m128i indicies) { __m512i idx = _mm512_shuffle_i32x4(_mm512_castsi128_si512(indicies), _mm512_castsi128_si512(indicies), 0); int destRegPart1 = (r&16) | ((r&8)<<4), destRegPart2 = (r&7)<<3; __m512i inst; if(odd) { // pre-shift first byte of every pair by 3 (position for instruction placement) idx = _mm512_mask_blend_epi8(0x5555555555555555, _mm512_slli_epi16(idx, 3), idx); // shuffle bytes into position #define _SEQ(n) -1,(n)+1,-1,-1,(n),(n)+1,-1 idx = _mm512_shuffle_epi8(idx, MM512_SET_BYTES( -1,-1, _SEQ(15), _SEQ(13), _SEQ(11), _SEQ(9), _SEQ(7), _SEQ(5), _SEQ(3), _SEQ(1), 0,-1,-1,-1, 0,-1 )); #undef _SEQ #define _SEQ 0x96,0xC0+destRegPart2,0x25,0x40,0x7D,0xB3^destRegPart1,0x62 /*VPTERNLOGD*/ inst = MM512_SET_BYTES( 0x00,0x00, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, 0xC0+destRegPart2, 0x6F,0x48,0x7D,0xB1^destRegPart1,0x62 /*VMOVDQA32*/ ); #undef _SEQ } else { idx = _mm512_mask_blend_epi8(0xAAAAAAAAAAAAAAAA, _mm512_slli_epi16(idx, 3), idx); #define _SEQ(n) -1,(n)+1,-1,-1,(n),(n)+1,-1 idx = _mm512_shuffle_epi8(idx, MM512_SET_BYTES( -1,-1,-1,-1,-1,-1,-1,-1,-1, _SEQ(14), _SEQ(12), _SEQ(10), _SEQ(8), _SEQ(6), _SEQ(4), _SEQ(2), 1,-1,-1, 0, 1,-1 )); #undef _SEQ #define _SEQ 0x96,0xC0+destRegPart2,0x25,0x40,0x7D,0xB3^destRegPart1,0x62 /*VPTERNLOGD*/ inst = MM512_SET_BYTES( 0x00,0x00, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, 0xC0+destRegPart2, 0xEF,0x40,0x7D,0xB1^destRegPart1,0x62 /*VPXORD*/ ); #undef _SEQ } // appropriate shifts/masks etc #define _SEQ -1,-1,-1,-1,-1, 7,-1 __mmask64 high3 = _mm512_cmpgt_epu8_mask(idx, MM512_SET_BYTES( -1,-1, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, -1,-1,-1,-1, 7,-1 )); #undef _SEQ #define _SEQ -1, 7,-1,-1,-1, 0,-1 idx = _mm512_and_si512(idx, MM512_SET_BYTES( -1,-1, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, 7,-1,-1,-1, 0,-1 )); #undef _SEQ idx = _mm512_mask_blend_epi8(high3, idx, _mm512_set1_epi8(1<<5)); // add in vpternlog return _mm512_xor_si512(idx, inst); } static HEDLEY_ALWAYS_INLINE __m512i xor_avx512_main_part_frommem(int odd, int r, int memreg, __m128i indicies) { __m512i idx = _mm512_shuffle_i32x4(_mm512_castsi128_si512(indicies), _mm512_castsi128_si512(indicies), 0); int destRegPart1 = (r&16) | ((r&8)<<4), destRegPart2 = (r&7)<<3; __m512i inst; if(odd) { // pre-shift first byte of every pair by 3 (position for instruction placement) idx = _mm512_mask_blend_epi8(0x5555555555555554, _mm512_slli_epi16(idx, 3), idx); // shuffle bytes into position #define _SEQ(n) -1,(n)+1,-1,-1,(n),(n)+1,-1 idx = _mm512_shuffle_epi8(idx, MM512_SET_BYTES( -1,-1, _SEQ(15), _SEQ(13), _SEQ(11), _SEQ(9), _SEQ(7), _SEQ(5), _SEQ(3), _SEQ(1), -1,-1,-1,-1,-1,-1 )); #undef _SEQ #define _SEQ 0x96,0xC0+destRegPart2,0x25,0x40,0x7D,0xB3^destRegPart1,0x62 /*VPTERNLOGD*/ inst = MM512_SET_BYTES( 0x00,0x00, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, 0x00+destRegPart2, 0x6F,0x48,0x7D,0xF1^destRegPart1,0x62 /*VMOVDQA32 load*/ ); #undef _SEQ } else { idx = _mm512_mask_blend_epi8(0xAAAAAAAAAAAAAAA8, _mm512_slli_epi16(idx, 3), idx); #define _SEQ(n) -1,(n)+1,-1,-1,(n),(n)+1,-1 idx = _mm512_shuffle_epi8(idx, MM512_SET_BYTES( -1,-1,-1,-1,-1,-1,-1,-1,-1, _SEQ(14), _SEQ(12), _SEQ(10), _SEQ(8), _SEQ(6), _SEQ(4), _SEQ(2), -1,-1,-1, 1,-1,-1 )); #undef _SEQ #define _SEQ 0x96,0xC0+destRegPart2,0x25,0x40,0x7D,0xB3^destRegPart1,0x62 /*VPTERNLOGD*/ inst = MM512_SET_BYTES( 0x00,0x00, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, 0x00+destRegPart2, 0xEF,0x48^8/*reg1 +16*/,0x7D,0xF1^destRegPart1,0x62 /*VPXORD*/ ); #undef _SEQ } // appropriate shifts/masks etc #define _SEQ -1,-1,-1,-1,-1, 7,-1 __mmask64 high3 = _mm512_cmpgt_epu8_mask(idx, MM512_SET_BYTES( -1,-1, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, -1,-1,-1,-1,-1,-1 )); #undef _SEQ #define _SEQ -1, 7,-1,-1,-1, 0,-1 idx = _mm512_and_si512(idx, MM512_SET_BYTES( -1,-1, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, -1,-1,-1,-1,-1,-1 )); #undef _SEQ idx = _mm512_mask_blend_epi8(high3, idx, _mm512_set1_epi8(1<<5)); // add in memory source register __m128i sr = _mm_cvtsi64_si128((((uint64_t)memreg & 8) << 10) | (((uint64_t)memreg & 7) << 40)); // add in vpternlog + source reg return _mm512_ternarylogic_epi32(idx, inst, zext128_512(sr), 0x96); } static HEDLEY_ALWAYS_INLINE int xor_avx512_main_part(uint8_t *HEDLEY_RESTRICT jitptr, int popcnt, int odd, int r, int memreg, __m128i indicies) { __m512i result; if(_mm_extract_epi8(indicies, 0) == 0) result = xor_avx512_main_part_frommem(odd, r, memreg, indicies); else result = xor_avx512_main_part_fromreg(odd, r, indicies); _mm512_storeu_si512((__m512i*)jitptr, result); return (popcnt >> 1) * 7 + 6; } static HEDLEY_ALWAYS_INLINE __m512i xor_avx512_merge_part_fromreg(int odd, int r, __m128i indicies) { __m512i idx = _mm512_shuffle_i32x4(_mm512_castsi128_si512(indicies), _mm512_castsi128_si512(indicies), 0); int destRegPart1 = (r&16) | ((r&8)<<4), destRegPart2 = (r&7)<<3; __m512i inst; __mmask64 high3; if(odd) { // pre-shift first byte of every pair by 3 (position for instruction placement) idx = _mm512_mask_blend_epi8(0x5555555555555555, _mm512_slli_epi16(idx, 3), idx); // shuffle bytes into position #define _SEQ(n) -1,(n)+1,-1,-1,(n),(n)+1,-1 idx = _mm512_shuffle_epi8(idx, MM512_SET_BYTES( -1,-1, _SEQ(15), _SEQ(13), _SEQ(11), _SEQ(9), _SEQ(7), _SEQ(5), _SEQ(3), _SEQ(1), 0,-1,-1,-1, 0,-1 )); #undef _SEQ #define _SEQ 0x96,0xC0+destRegPart2,0x25,0x40,0x7D,0xB3^destRegPart1,0x62 /*VPTERNLOGD*/ inst = MM512_SET_BYTES( 0x00,0x00, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, 0xC0+destRegPart2, 0xEF,0x48^((r&16)>>1),0x7D^((r&15) << 3),0xF1^destRegPart1^0x40/*+16 reg2*/,0x62 /*VPXORD*/ ); #undef _SEQ // appropriate shifts/masks etc #define _SEQ -1,-1,-1,-1,-1, 7,-1 high3 = _mm512_cmpgt_epu8_mask(idx, MM512_SET_BYTES( -1,-1, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, -1,-1,-1,-1, 7,-1 )); #undef _SEQ #define _SEQ -1, 7,-1,-1,-1, 0,-1 idx = _mm512_and_si512(idx, MM512_SET_BYTES( -1,-1, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, 7,-1,-1,-1, 0,-1 )); #undef _SEQ } else { idx = _mm512_mask_blend_epi8(0xAAAAAAAAAAAAAAAA, _mm512_slli_epi16(idx, 3), idx); #define _SEQ(n) -1,(n)+1,-1,-1,(n),(n)+1,-1 idx = _mm512_shuffle_epi8(idx, MM512_SET_BYTES( -1,-1,-1,-1,-1,-1,-1,-1, _SEQ(14), _SEQ(12), _SEQ(10), _SEQ(8), _SEQ(6), _SEQ(4), _SEQ(2), _SEQ(0) )); #undef _SEQ #define _SEQ 0x96,0xC0+destRegPart2,0x25,0x40,0x7D,0xB3^destRegPart1,0x62 /*VPTERNLOGD*/ inst = MM512_SET_BYTES( 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ ); #undef _SEQ // appropriate shifts/masks etc #define _SEQ -1,-1,-1,-1,-1, 7,-1 high3 = _mm512_cmpgt_epu8_mask(idx, MM512_SET_BYTES( -1,-1,-1,-1,-1,-1,-1,-1, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ )); #undef _SEQ #define _SEQ -1, 7,-1,-1,-1, 0,-1 idx = _mm512_and_si512(idx, MM512_SET_BYTES( -1,-1,-1,-1,-1,-1,-1,-1, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ )); #undef _SEQ } idx = _mm512_mask_blend_epi8(high3, idx, _mm512_set1_epi8(1<<5)); // add in vpternlog return _mm512_xor_si512(idx, inst); } static HEDLEY_ALWAYS_INLINE __m512i xor_avx512_merge_part_frommem(int odd, int r, int memreg, __m128i indicies) { __m512i idx = _mm512_shuffle_i32x4(_mm512_castsi128_si512(indicies), _mm512_castsi128_si512(indicies), 0); int destRegPart1 = (r&16) | ((r&8)<<4), destRegPart2 = (r&7)<<3; __m512i inst; __mmask64 high3; if(odd) { // pre-shift first byte of every pair by 3 (position for instruction placement) idx = _mm512_mask_blend_epi8(0x5555555555555554, _mm512_slli_epi16(idx, 3), idx); // shuffle bytes into position #define _SEQ(n) -1,(n)+1,-1,-1,(n),(n)+1,-1 idx = _mm512_shuffle_epi8(idx, MM512_SET_BYTES( -1,-1,-1,-1,-1,-1,-1,-1,-1, _SEQ(13), _SEQ(11), _SEQ(9), _SEQ(7), _SEQ(5), _SEQ(3), _SEQ(1), -1,-1,-1,-1,-1,-1 )); #undef _SEQ #define _SEQ 0x96,0xC0+destRegPart2,0x25,0x40,0x7D,0xB3^destRegPart1,0x62 /*VPTERNLOGD*/ inst = MM512_SET_BYTES( 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, 0x00+destRegPart2, 0xEF,0x48^((r&16)>>1),0x7D^((r&15) << 3),0xF1^destRegPart1^0x40/*+16 reg2*/,0x62 /*VPXORD*/ ); #undef _SEQ // appropriate shifts/masks etc #define _SEQ -1,-1,-1,-1,-1, 7,-1 high3 = _mm512_cmpgt_epu8_mask(idx, MM512_SET_BYTES( -1,-1, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, -1,-1,-1,-1,-1,-1 )); #undef _SEQ #define _SEQ -1, 7,-1,-1,-1, 0,-1 idx = _mm512_and_si512(idx, MM512_SET_BYTES( -1,-1, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, -1,-1,-1,-1,-1,-1 )); #undef _SEQ } else { idx = _mm512_mask_blend_epi8(0xAAAAAAAAAAAAAAA8, _mm512_slli_epi16(idx, 3), idx); #define _SEQ(n) -1,(n)+1,-1,-1,(n),(n)+1,-1 idx = _mm512_shuffle_epi8(idx, MM512_SET_BYTES( -1,-1,-1,-1,-1,-1,-1,-1, _SEQ(14), _SEQ(12), _SEQ(10), _SEQ(8), _SEQ(6), _SEQ(4), _SEQ(2), -1,-1,-1,-1, 1,-1,-1 )); #undef _SEQ #define _SEQ 0x96,0xC0+destRegPart2,0x25,0x40,0x7D,0xB3^destRegPart1,0x62 /*VPTERNLOGD*/ inst = MM512_SET_BYTES( -1,-1,-1,-1,-1,-1,-1,-1, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, 0x96,0x00+destRegPart2, 0x25,0x48^8/*reg1 +16*/,0x7D,0xF3^destRegPart1^0x40/*+16 reg2*/,0x62 /*VPTERNLOGD*/ ); #undef _SEQ // appropriate shifts/masks etc #define _SEQ -1,-1,-1,-1,-1, 7,-1 high3 = _mm512_cmpgt_epu8_mask(idx, MM512_SET_BYTES( -1, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, -1,-1,-1,-1,-1,-1,-1 )); #undef _SEQ #define _SEQ -1, 7,-1,-1,-1, 0,-1 idx = _mm512_and_si512(idx, MM512_SET_BYTES( -1, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, _SEQ, -1,-1,-1,-1,-1,-1,-1 )); #undef _SEQ } idx = _mm512_mask_blend_epi8(high3, idx, _mm512_set1_epi8(1<<5)); // add in memory source register __m128i sr = _mm_cvtsi64_si128((((uint64_t)memreg & 8) << 10) | (((uint64_t)memreg & 7) << 40)); // add in vpternlog + source reg return _mm512_ternarylogic_epi32(idx, inst, zext128_512(sr), 0x96); } static HEDLEY_ALWAYS_INLINE int xor_avx512_merge_part(uint8_t *HEDLEY_RESTRICT jitptr, int popcnt, int odd, int r, int memreg, __m128i indicies) { __m512i result; if(_mm_extract_epi8(indicies, 0) == 0) result = xor_avx512_merge_part_frommem(odd, r, memreg, indicies); else result = xor_avx512_merge_part_fromreg(odd, r, indicies); _mm512_storeu_si512((__m512i*)jitptr, result); return ((popcnt+1) >> 1) * 7 - odd; } static inline void* xor_write_jit_avx512(const void *HEDLEY_RESTRICT _scratch, uint8_t *HEDLEY_RESTRICT jitptr, uint16_t val, const int mode, const int prefetch) { const struct gf16_xor_scratch *HEDLEY_RESTRICT scratch = (const struct gf16_xor_scratch*)_scratch; uint_fast32_t bit; __m256i depmask = _mm256_load_si256((__m256i*)scratch->deps + (val & 0xf)*4); depmask = _mm256_xor_si256(depmask, _mm256_load_si256((__m256i*)(scratch->deps + ((val << 3) & 0x780)) + 1) ); depmask = _mm256_ternarylogic_epi32( depmask, _mm256_load_si256((__m256i*)(scratch->deps + ((val >> 1) & 0x780)) + 2), _mm256_load_si256((__m256i*)(scratch->deps + ((val >> 5) & 0x780)) + 3), 0x96 ); __m128i common_mask = _mm_and_si128( _mm256_castsi256_si128(depmask), _mm256_extracti128_si256(depmask, 1) ); /* eliminate pointless common_mask entries */ common_mask = _mm_maskz_mov_epi16( /* "(v & (v-1)) == 0" is true if only zero/one bit is set in each word */ _mm_test_epi16_mask(common_mask, _mm_add_epi16(common_mask, _mm_set1_epi16(-1))), common_mask ); __m512i common_mask384 = _mm512_castsi128_si512(common_mask); common_mask384 = _mm512_shuffle_i32x4(common_mask384, common_mask384, _MM_SHUFFLE(0,0,0,0)); __m512i depmask384 = _mm512_xor_si512(zext256_512(depmask), common_mask384); /* count bits */ ALIGN_TO(64, uint16_t depABC[32]); // only first 24 elements are used for these two arrays, the rest is needed for 512-bit stores to work ALIGN_TO(64, uint16_t popcntABC[32]); _mm512_store_si512(depABC, depmask384); _mm512_store_si512(popcntABC, avx3_popcnt_epi16(depmask384)); __m512i numbers = _mm512_set_epi32( 15,14,13,12,11,10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 ); if(prefetch) { jitptr += _jit_add_i(jitptr, SI, 512); jitptr += _jit_prefetch_m(jitptr, prefetch, SI, -128); jitptr += _jit_prefetch_m(jitptr, prefetch, SI, -64); jitptr += _jit_prefetch_m(jitptr, prefetch, SI, 0); jitptr += _jit_prefetch_m(jitptr, prefetch, SI, 64); jitptr += _jit_prefetch_m(jitptr, prefetch, SI, 128); jitptr += _jit_prefetch_m(jitptr, prefetch, SI, 192); jitptr += _jit_prefetch_m(jitptr, prefetch, SI, 256); jitptr += _jit_prefetch_m(jitptr, prefetch, SI, 320); } jitptr += _jit_vmovdqa32_load(jitptr, 16, DX, 0); /* generate code */ if(mode == XORDEP_JIT_MODE_MULADD) { for(bit=0; bit<8; bit++) { int destOffs = bit<<7; int destOffs2 = destOffs+64; __m128i idxC, idxA, idxB; /* idxC = sse_load_halves(&xor256_jit_nums[depABC[16+bit] & 0xff], &xor256_jit_nums[depABC[16+bit] >> 8]); idxA = sse_load_halves(&xor256_jit_nums[depABC[bit] & 0xff], &xor256_jit_nums[depABC[bit] >> 8]); idxB = sse_load_halves(&xor256_jit_nums[depABC[8+bit] & 0xff], &xor256_jit_nums[depABC[8+bit] >> 8]); // TODO: need to shuffle merge the halves! */ // TODO: above idea is probably faster, this is just easier to code idxC = _mm512_cvtepi32_epi8(_mm512_maskz_compress_epi32(depABC[16+bit], numbers)); idxA = _mm512_cvtepi32_epi8(_mm512_maskz_compress_epi32(depABC[bit], numbers)); idxB = _mm512_cvtepi32_epi8(_mm512_maskz_compress_epi32(depABC[8+bit], numbers)); if(popcntABC[16+bit]) { // popcntABC[16+bit] cannot == 1 (eliminated above) _mm512_storeu_si512((__m512i*)jitptr, xor_avx512_main_part_fromreg((popcntABC[16+bit] & 1), 3, idxC)); jitptr += ((popcntABC[16+bit]-1) >> 1) * 7 + 6; // last xor of pipes A/B are a merge if(popcntABC[bit] == 0) { jitptr += _jit_vpxord_m(jitptr, 1, 3, AX, destOffs); } else { _mm512_storeu_si512((__m512i*)jitptr, xor_avx512_main_part_fromreg((popcntABC[bit] & 1), 1, idxA)); jitptr += ((popcntABC[bit]-1) >> 1) * 7 + 6; // TODO: perhaps ideally the load is done earlier? jitptr += _jit_vpternlogd_m(jitptr, 1, 3, AX, destOffs, 0x96); } if(popcntABC[8+bit] == 0) { jitptr += _jit_vpxord_m(jitptr, 2, 3, AX, destOffs2); } else { _mm512_storeu_si512((__m512i*)jitptr, xor_avx512_main_part_fromreg((popcntABC[8+bit] & 1), 2, idxB)); jitptr += ((popcntABC[8+bit]-1) >> 1) * 7 + 6; jitptr += _jit_vpternlogd_m(jitptr, 2, 3, AX, destOffs2, 0x96); } } else { // if no common queue, popcntA/B assumed to be >= 1 if(popcntABC[bit] == 1) { jitptr += _jit_vpxord_m(jitptr, 1, _mm_extract_epi8(idxA, 0)|16, AX, destOffs); } else { _mm512_storeu_si512((__m512i*)jitptr, xor_avx512_main_part_fromreg((~popcntABC[bit] & 1), 1, idxA)); jitptr += (popcntABC[bit] >> 1) * 7 + 6; // patch final vpternlog to merge from memory // TODO: optimize *(jitptr-6) |= 24<<2; // clear zreg3 bits write32(jitptr-2, ((1<<3) | AX | 0x40) | (0x96<<16) | ((destOffs<<(8-6)) & 0xff00)); jitptr++; } if(popcntABC[8+bit] == 1) { jitptr += _jit_vpxord_m(jitptr, 2, _mm_extract_epi8(idxB, 0)|16, AX, destOffs2); } else { _mm512_storeu_si512((__m512i*)jitptr, xor_avx512_main_part_fromreg((~popcntABC[8+bit] & 1), 2, idxB)); jitptr += (popcntABC[8+bit] >> 1) * 7 + 6; *(jitptr-6) |= 24<<2; // clear zreg3 bits write32(jitptr-2, ((2<<3) | AX | 0x40) | (0x96<<16) | ((destOffs2<<(8-6)) & 0xff00)); jitptr++; } } jitptr += _jit_vmovdqa32_store(jitptr, AX, destOffs, 1); jitptr += _jit_vmovdqa32_store(jitptr, AX, destOffs2, 2); } } else { for(bit=0; bit<8; bit++) { int destOffs = bit<<7; int destOffs2 = destOffs+64; __m128i idxC, idxA, idxB; idxC = _mm512_cvtepi32_epi8(_mm512_maskz_compress_epi32(depABC[16+bit], numbers)); idxA = _mm512_cvtepi32_epi8(_mm512_maskz_compress_epi32(depABC[bit], numbers)); idxB = _mm512_cvtepi32_epi8(_mm512_maskz_compress_epi32(depABC[8+bit], numbers)); if(popcntABC[16+bit]) { // popcntABC[16+bit] cannot == 1 (eliminated above) _mm512_storeu_si512((__m512i*)jitptr, xor_avx512_main_part_fromreg((popcntABC[16+bit] & 1), 3, idxC)); jitptr += ((popcntABC[16+bit]-1) >> 1) * 7 + 6; // last xor of pipes A/B are a merge if(popcntABC[bit] == 0) { jitptr += _jit_vmovdqa32_store(jitptr, AX, destOffs, 3); } else { _mm512_storeu_si512((__m512i*)jitptr, xor_avx512_main_part_fromreg((~popcntABC[bit] & 1), 1, idxA)); jitptr += (popcntABC[bit] >> 1) * 7 + 6; // patch final vpternlog/vpxor to merge from common mask // TODO: optimize uint8_t* ptr = (jitptr-6 + (popcntABC[bit] == 1)); *ptr |= 24<<2; // clear zreg3 bits *(ptr+4) = 0xC0 + 3 + (1<<3); jitptr += _jit_vmovdqa32_store(jitptr, AX, destOffs, 1); } if(popcntABC[8+bit] == 0) { jitptr += _jit_vmovdqa32_store(jitptr, AX, destOffs2, 3); } else { _mm512_storeu_si512((__m512i*)jitptr, xor_avx512_main_part_fromreg((~popcntABC[8+bit] & 1), 2, idxB)); jitptr += (popcntABC[8+bit] >> 1) * 7 + 6; uint8_t* ptr = (jitptr-6 + (popcntABC[8+bit] == 1)); *ptr |= 24<<2; *(ptr+4) = 0xC0 + 3 + (2<<3); jitptr += _jit_vmovdqa32_store(jitptr, AX, destOffs2, 2); } } else { // if no common queue, popcntA/B assumed to be >= 1 if(popcntABC[bit] == 1) { jitptr += _jit_vmovdqa32_store(jitptr, AX, destOffs, _mm_extract_epi8(idxA, 0)|16); } else { _mm512_storeu_si512((__m512i*)jitptr, xor_avx512_main_part_fromreg((popcntABC[bit] & 1), 1, idxA)); jitptr += ((popcntABC[bit]-1) >> 1) * 7 + 6; jitptr += _jit_vmovdqa32_store(jitptr, AX, destOffs, 1); } if(popcntABC[8+bit] == 1) { jitptr += _jit_vmovdqa32_store(jitptr, AX, destOffs2, _mm_extract_epi8(idxB, 0)|16); } else { _mm512_storeu_si512((__m512i*)jitptr, xor_avx512_main_part_fromreg((popcntABC[8+bit] & 1), 2, idxB)); jitptr += ((popcntABC[8+bit]-1) >> 1) * 7 + 6; jitptr += _jit_vmovdqa32_store(jitptr, AX, destOffs2, 2); } } } } /* cmp/jcc */ write64(jitptr, 0x800FC03948 | (AX <<16) | (CX <<19) | ((uint64_t)JL <<32)); return jitptr+5; } // TODO: merge this into above // note: xor can be 3 values: 0=clear, 1=xor (merge), 2=xor (load) static void* xor_write_jit_avx512_multi(const struct gf16_xor_scratch *HEDLEY_RESTRICT scratch, uint8_t *HEDLEY_RESTRICT jitptr, int memreg, uint16_t val, int xor) { // explicitly special case multiply by 0 if(val == 0) { if(xor == 1) return jitptr; for(int bit=0; bit<8; bit++) { if(xor == 0) { jitptr += _jit_vpxord_r(jitptr, bit, bit, bit); jitptr += _jit_vpxord_r(jitptr, bit+8, bit+8, bit+8); } if(xor == 2) { jitptr += _jit_vmovdqa32_load(jitptr, bit, AX, bit<<7); jitptr += _jit_vmovdqa32_load(jitptr, bit+8, AX, (bit<<7) + 64); } } return jitptr; } __m256i depmask = _mm256_load_si256((__m256i*)scratch->deps + (val & 0xf)*4); depmask = _mm256_xor_si256(depmask, _mm256_load_si256((__m256i*)(scratch->deps + ((val << 3) & 0x780)) + 1) ); depmask = _mm256_ternarylogic_epi32( depmask, _mm256_load_si256((__m256i*)(scratch->deps + ((val >> 1) & 0x780)) + 2), _mm256_load_si256((__m256i*)(scratch->deps + ((val >> 5) & 0x780)) + 3), 0x96 ); __m128i common_mask = _mm_and_si128( _mm256_castsi256_si128(depmask), _mm256_extracti128_si256(depmask, 1) ); /* eliminate pointless common_mask entries */ common_mask = _mm_maskz_mov_epi16( /* "(v & (v-1)) == 0" is true if only zero/one bit is set in each word */ _mm_test_epi16_mask(common_mask, _mm_add_epi16(common_mask, _mm_set1_epi16(-1))), common_mask ); __m512i common_mask384 = _mm512_castsi128_si512(common_mask); common_mask384 = _mm512_shuffle_i32x4(common_mask384, common_mask384, _MM_SHUFFLE(0,0,0,0)); __m512i depmask384 = _mm512_xor_si512(zext256_512(depmask), common_mask384); /* count bits */ ALIGN_TO(64, uint16_t depABC[32]); // only first 24 elements are used for these two arrays, the rest is needed for 512-bit stores to work ALIGN_TO(64, uint16_t popcntABC[32]); _mm512_store_si512(depABC, depmask384); _mm512_store_si512(popcntABC, avx3_popcnt_epi16(depmask384)); __m512i numbers = _mm512_set_epi32( 15,14,13,12,11,10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 ); /* generate code */ // TODO: check that code paths are all optimized for(int bit=0; bit<8; bit++) { int destOffs = bit<<7; int destOffs2 = destOffs+64; __m128i idxC, idxA, idxB; idxC = _mm512_cvtepi32_epi8(_mm512_maskz_compress_epi32(depABC[16+bit], numbers)); idxA = _mm512_cvtepi32_epi8(_mm512_maskz_compress_epi32(depABC[bit], numbers)); idxB = _mm512_cvtepi32_epi8(_mm512_maskz_compress_epi32(depABC[8+bit], numbers)); if(popcntABC[16+bit]) { // popcntC[bit] cannot == 1 (eliminated above) jitptr += xor_avx512_main_part(jitptr, popcntABC[16+bit]-1, (popcntABC[16+bit] & 1), 16, memreg, idxC); if(xor == 2) { // last xor of pipes A/B are a merge if(popcntABC[bit] == 0) { jitptr += _jit_vpxord_m(jitptr, bit, 16, AX, destOffs); } else { jitptr += xor_avx512_main_part(jitptr, popcntABC[bit]-1, (popcntABC[bit] & 1), bit, memreg, idxA); // TODO: perhaps ideally the load is done earlier? jitptr += _jit_vpternlogd_m(jitptr, bit, 16, AX, destOffs, 0x96); } if(popcntABC[8+bit] == 0) { jitptr += _jit_vpxord_m(jitptr, bit+8, 16, AX, destOffs2); } else { jitptr += xor_avx512_main_part(jitptr, popcntABC[8+bit]-1, (popcntABC[8+bit] & 1), bit+8, memreg, idxB); jitptr += _jit_vpternlogd_m(jitptr, bit+8, 16, AX, destOffs2, 0x96); } } else if(xor) { // last xor of pipes A/B are a merge if(popcntABC[bit] == 0) { jitptr += _jit_vpxord_r(jitptr, bit, 16, bit); } else { // increase the popcnt by 1; since idxA is zero filled at the end, this has the convenient effect of merging an XOR with zmm16 (common queue) jitptr += xor_avx512_merge_part(jitptr, popcntABC[bit]+1, (~popcntABC[bit] & 1), bit, memreg, idxA); } if(popcntABC[8+bit] == 0) { jitptr += _jit_vpxord_r(jitptr, bit+8, 16, bit+8); } else { jitptr += xor_avx512_merge_part(jitptr, popcntABC[8+bit]+1, (~popcntABC[8+bit] & 1), bit+8, memreg, idxB); } } else { // last xor of pipes A/B are a merge if(popcntABC[bit] == 0) { jitptr += _jit_vmovdqa32(jitptr, bit, 16); } else if(popcntABC[bit] <= 2 && _mm_extract_epi8(idxA, 0) == 0) { // special case if we need to merge w/ memory'd source if(popcntABC[bit] == 2) { jitptr += _jit_vmovdqa32(jitptr, bit, 16); jitptr += _jit_vpternlogd_m(jitptr, bit, _mm_extract_epi8(idxA, 1)|16, memreg, 0, 0x96); } else { jitptr += _jit_vpxord_m(jitptr, bit, 16, memreg, 0); } } else { jitptr += xor_avx512_main_part(jitptr, popcntABC[bit], (~popcntABC[bit] & 1), bit, memreg, idxA); // patch final vpternlog/vpxor to merge from common mask uint8_t* ptr = (jitptr-6 + (popcntABC[bit] == 1)); *ptr |= 8<<2; // set zreg3 to 16 (the highest bit is always set, so we don't need to do anything special for that) *(ptr+4) = 0xC0 + 0 + (bit<<3); } if(popcntABC[8+bit] == 0) { jitptr += _jit_vmovdqa32(jitptr, bit+8, 16); } else if(popcntABC[8+bit] <= 2 && _mm_extract_epi8(idxB, 0) == 0) { if(popcntABC[8+bit] == 2) { jitptr += _jit_vmovdqa32(jitptr, bit+8, 16); jitptr += _jit_vpternlogd_m(jitptr, bit+8, _mm_extract_epi8(idxB, 1)|16, memreg, 0, 0x96); } else { jitptr += _jit_vpxord_m(jitptr, bit+8, 16, memreg, 0); } } else { jitptr += xor_avx512_main_part(jitptr, popcntABC[8+bit], (~popcntABC[8+bit] & 1), bit+8, memreg, idxB); uint8_t* ptr = (jitptr-6 + (popcntABC[8+bit] == 1)); *ptr |= 8<<2; //*ptr &= ~(8<<4); // set +8 for zreg1 *(ptr+4) = 0xC0 + 0 + (bit<<3); } } } else { if(xor == 2) { // if no common queue, popcntA/B assumed to be >= 1 if(popcntABC[bit] == 1) { int inNum = _mm_extract_epi8(idxA, 0); if(inNum == 0) // we can re-use reg 16 since we don't have a common queue jitptr += _jit_vmovdqa32_load(jitptr, 16, memreg, 0); jitptr += _jit_vpxord_m(jitptr, bit, inNum|16, AX, destOffs); } else { jitptr += xor_avx512_main_part(jitptr, popcntABC[bit], (~popcntABC[bit] & 1), bit, memreg, idxA); // patch final vpternlog to merge from memory // TODO: optimize *(uint8_t*)(jitptr-6) |= 24<<2; // clear zreg3 bits //*(jitptr-6) &= ~(8<<4); // set +8 flag for zreg1 write32(jitptr-2, ((bit<<3) | AX | 0x40) | (0x96<<16) | ((destOffs<<(8-6)) & 0xff00)); jitptr++; } if(popcntABC[8+bit] == 1) { int inNum = _mm_extract_epi8(idxB, 0); if(inNum == 0) jitptr += _jit_vmovdqa32_load(jitptr, 16, memreg, 0); jitptr += _jit_vpxord_m(jitptr, bit+8, inNum|16, AX, destOffs2); } else { jitptr += xor_avx512_main_part(jitptr, popcntABC[8+bit], (~popcntABC[8+bit] & 1), bit+8, memreg, idxB); *(uint8_t*)(jitptr-6) |= 24<<2; // clear zreg3 bits //*(jitptr-6) &= ~(8<<4); write32(jitptr-2, ((bit<<3) | AX | 0x40) | (0x96<<16) | ((destOffs2<<(8-6)) & 0xff00)); jitptr++; } } else if(xor) { jitptr += xor_avx512_merge_part(jitptr, popcntABC[bit], popcntABC[bit] & 1, bit, memreg, idxA); jitptr += xor_avx512_merge_part(jitptr, popcntABC[8+bit], popcntABC[8+bit] & 1, bit+8, memreg, idxB); } else { // if no common queue, popcntA/B assumed to be >= 1 if(popcntABC[bit] == 1) { int inNum = _mm_extract_epi8(idxA, 0); if(inNum == 0) jitptr += _jit_vmovdqa32_load(jitptr, bit, memreg, 0); else jitptr += _jit_vmovdqa32(jitptr, bit, inNum|16); } else { jitptr += xor_avx512_main_part(jitptr, popcntABC[bit]-1, (popcntABC[bit] & 1), bit, memreg, idxA); } if(popcntABC[8+bit] == 1) { int inNum = _mm_extract_epi8(idxB, 0); if(inNum == 0) jitptr += _jit_vmovdqa32_load(jitptr, bit+8, memreg, 0); else jitptr += _jit_vmovdqa32(jitptr, bit+8, inNum|16); } else { jitptr += xor_avx512_main_part(jitptr, popcntABC[8+bit]-1, (popcntABC[8+bit] & 1), bit+8, memreg, idxB); } } } } return jitptr; } static HEDLEY_ALWAYS_INLINE void gf16_xor_jit_mul_avx512_base(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch, const int mode, const int doPrefetch, const void *HEDLEY_RESTRICT prefetch) { jit_wx_pair* jit = (jit_wx_pair*)mutScratch; gf16_xorjit_write_jit(scratch, coefficient, jit, mode, doPrefetch, &xor_write_jit_avx512, scratch); gf16_xor512_jit_stub( (intptr_t)dst - 1024, (intptr_t)dst + len - 1024, (intptr_t)src - 1024, (intptr_t)prefetch - 384, jit->x ); _mm256_zeroupper(); } #endif /* defined(_AVAILABLE) */ #ifdef PARPAR_INVERT_SUPPORT void gf16_xor_jit_mul_avx512(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) { #ifdef _AVAILABLE if(coefficient == 0) { memset(dst, 0, len); return; } gf16_xor_jit_mul_avx512_base(scratch, dst, src, len, coefficient, mutScratch, XORDEP_JIT_MODE_MUL, 0, NULL); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); UNUSED(mutScratch); #endif } #endif void gf16_xor_jit_muladd_avx512(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) { #ifdef _AVAILABLE if(coefficient == 0) return; gf16_xor_jit_mul_avx512_base(scratch, dst, src, len, coefficient, mutScratch, XORDEP_JIT_MODE_MULADD, 0, NULL); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); UNUSED(mutScratch); #endif } void gf16_xor_jit_muladd_prefetch_avx512(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch, const void *HEDLEY_RESTRICT prefetch) { #ifdef _AVAILABLE if(coefficient == 0) return; gf16_xor_jit_mul_avx512_base(scratch, dst, src, len, coefficient, mutScratch, XORDEP_JIT_MODE_MULADD, _MM_HINT_T1, prefetch); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); UNUSED(mutScratch); UNUSED(prefetch); #endif } #define XOR512_MULTI_REGIONS 6 // we support up to 10, but 6 seems more optimal (cache associativity reasons?) // other registers used (hence 10 supported): dest (0), end point (1), SP (4), one source (3), R12/R13 is avoided due to different encoding length; GCC doesn't like overriding BP (5) so skip that too void gf16_xor_jit_muladd_multi_avx512(const void *HEDLEY_RESTRICT scratch, unsigned regions, size_t offset, void *HEDLEY_RESTRICT dst, const void* const*HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch) { #ifdef _AVAILABLE const struct gf16_xor_scratch *HEDLEY_RESTRICT info = (const struct gf16_xor_scratch*)scratch; jit_wx_pair* jit = (jit_wx_pair*)mutScratch; ALIGN_TO(64, uint8_t jitTemp[XORDEP_JIT_SIZE]); // for copying only uint8_t* jitCode = (uint8_t*)jit->w + info->codeStart; ALIGN_TO(32, const void* srcPtr[XOR512_MULTI_REGIONS]); for(unsigned region=0; region XOR512_MULTI_REGIONS) numRegions = XOR512_MULTI_REGIONS; uint8_t* jitptr = jitCode; uint8_t* jitdst = jitptr; if(info->jitOptStrat == GF16_XOR_JIT_STRAT_COPYNT || info->jitOptStrat == GF16_XOR_JIT_STRAT_COPY) { if((uintptr_t)jitdst & 0x1F) { /* copy unaligned part (might not be worth it for these CPUs, but meh) */ _mm256_store_si256((__m256i*)jitTemp, _mm256_load_si256((__m256i*)((uintptr_t)jitptr & ~(uintptr_t)0x1F))); jitptr = jitTemp + ((uintptr_t)jitdst & 0x1F); jitdst -= (uintptr_t)jitdst & 0x1F; } else jitptr = jitTemp; } else if(info->jitOptStrat == GF16_XOR_JIT_STRAT_CLR) { for(int i=0; i= 13) reg++; // R13 has a required offset, which changes length, so skip it jitptr += _jit_add_i(jitptr, reg, 1024); for(int i=1; i<16; i++) { jitptr += _jit_vmovdqa32_load(jitptr, 16+i, reg, i<<6); } jitptr = xor_write_jit_avx512_multi(info, jitptr, reg, coefficients[region+in], 1); srcPtr[in] = (char*)src[region+in] + offset - 1024; } // write out registers for(int i=0; i<16; i+=2) { jitptr += _jit_vmovdqa32_store(jitptr, AX, i<<6, i>>1); jitptr += _jit_vmovdqa32_store(jitptr, AX, (i+1)<<6, (i>>1)+8); } /* cmp/jcc */ write64(jitptr, 0x800FC03948 | (AX <<16) | (CX <<19) | ((uint64_t)JL <<32)); if(info->jitOptStrat == GF16_XOR_JIT_STRAT_COPYNT || info->jitOptStrat == GF16_XOR_JIT_STRAT_COPY) { write32(jitptr +5, (int32_t)(((intptr_t)jitTemp - (jitdst - (uint8_t*)jit->w)) - (intptr_t)jitptr -9)); jitptr[9] = 0xC3; /* ret */ /* memcpy to destination */ if(info->jitOptStrat == GF16_XOR_JIT_STRAT_COPYNT) { // 256-bit NT copies never seem to be better, so just stick to 128-bit for(uint_fast32_t i=0; i<(uint_fast32_t)(jitptr+10-jitTemp); i+=64) { __m128i ta = _mm_load_si128((__m128i*)(jitTemp + i)); __m128i tb = _mm_load_si128((__m128i*)(jitTemp + i + 16)); __m128i tc = _mm_load_si128((__m128i*)(jitTemp + i + 32)); __m128i td = _mm_load_si128((__m128i*)(jitTemp + i + 48)); _mm_stream_si128((__m128i*)(jitdst + i), ta); _mm_stream_si128((__m128i*)(jitdst + i + 16), tb); _mm_stream_si128((__m128i*)(jitdst + i + 32), tc); _mm_stream_si128((__m128i*)(jitdst + i + 48), td); } } else { /* AVX does result in fewer writes, but testing on Haswell seems to indicate minimal benefit over SSE2 */ for(uint_fast32_t i=0; i<(uint_fast32_t)(jitptr+10-jitTemp); i+=64) { __m256i ta = _mm256_load_si256((__m256i*)(jitTemp + i)); __m256i tb = _mm256_load_si256((__m256i*)(jitTemp + i + 32)); _mm256_store_si256((__m256i*)(jitdst + i), ta); _mm256_store_si256((__m256i*)(jitdst + i + 32), tb); } } } else { write32(jitptr +5, (int32_t)((uint8_t*)jit->w - jitptr -9)); jitptr[9] = 0xC3; /* ret */ } #ifdef GF16_XORJIT_ENABLE_DUAL_MAPPING if(jit->w != jit->x) { // TODO: need to serialize? } #endif gf16_xor512_jit_multi_stub( (intptr_t)dst + offset - 1024, (intptr_t)dst + offset + len - 1024, srcPtr, jit->x ); } _mm256_zeroupper(); #else UNUSED(scratch); UNUSED(regions); UNUSED(offset); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficients); UNUSED(mutScratch); #endif } void gf16_xor_jit_muladd_multi_packed_avx512(const void *HEDLEY_RESTRICT scratch, unsigned packRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch) { #ifdef _AVAILABLE const struct gf16_xor_scratch *HEDLEY_RESTRICT info = (const struct gf16_xor_scratch*)scratch; jit_wx_pair* jit = (jit_wx_pair*)mutScratch; ALIGN_TO(64, uint8_t jitTemp[XORDEP_JIT_SIZE]); // for copying only uint8_t* jitCode = (uint8_t*)jit->w + info->codeStart; for(unsigned region=0; region XOR512_MULTI_REGIONS) numRegions = XOR512_MULTI_REGIONS; if(lastRegions > XOR512_MULTI_REGIONS) lastRegions = XOR512_MULTI_REGIONS; uint8_t* jitptr = jitCode; uint8_t* jitdst = jitptr; if(info->jitOptStrat == GF16_XOR_JIT_STRAT_COPYNT || info->jitOptStrat == GF16_XOR_JIT_STRAT_COPY) { if((uintptr_t)jitdst & 0x1F) { /* copy unaligned part (might not be worth it for these CPUs, but meh) */ _mm256_store_si256((__m256i*)jitTemp, _mm256_load_si256((__m256i*)((uintptr_t)jitptr & ~(uintptr_t)0x1F))); jitptr = jitTemp + ((uintptr_t)jitdst & 0x1F); jitdst -= (uintptr_t)jitdst & 0x1F; } else jitptr = jitTemp; } else if(info->jitOptStrat == GF16_XOR_JIT_STRAT_CLR) { for(int i=0; i>1); jitptr += _jit_vmovdqa32_store(jitptr, AX, (i+1)<<6, (i>>1)+8); } /* cmp/jcc */ write64(jitptr, 0x800FC03948 | (AX <<16) | (CX <<19) | ((uint64_t)JL <<32)); if(info->jitOptStrat == GF16_XOR_JIT_STRAT_COPYNT || info->jitOptStrat == GF16_XOR_JIT_STRAT_COPY) { write32(jitptr +5, (int32_t)(((intptr_t)jitTemp - (jitdst - (uint8_t*)jit->w)) - (intptr_t)jitptr -9)); jitptr[9] = 0xC3; /* ret */ /* memcpy to destination */ if(info->jitOptStrat == GF16_XOR_JIT_STRAT_COPYNT) { // 256-bit NT copies never seem to be better, so just stick to 128-bit for(uint_fast32_t i=0; i<(uint_fast32_t)(jitptr+10-jitTemp); i+=64) { __m128i ta = _mm_load_si128((__m128i*)(jitTemp + i)); __m128i tb = _mm_load_si128((__m128i*)(jitTemp + i + 16)); __m128i tc = _mm_load_si128((__m128i*)(jitTemp + i + 32)); __m128i td = _mm_load_si128((__m128i*)(jitTemp + i + 48)); _mm_stream_si128((__m128i*)(jitdst + i), ta); _mm_stream_si128((__m128i*)(jitdst + i + 16), tb); _mm_stream_si128((__m128i*)(jitdst + i + 32), tc); _mm_stream_si128((__m128i*)(jitdst + i + 48), td); } } else { /* AVX does result in fewer writes, but testing on Haswell seems to indicate minimal benefit over SSE2 */ for(uint_fast32_t i=0; i<(uint_fast32_t)(jitptr+10-jitTemp); i+=64) { __m256i ta = _mm256_load_si256((__m256i*)(jitTemp + i)); __m256i tb = _mm256_load_si256((__m256i*)(jitTemp + i + 32)); _mm256_store_si256((__m256i*)(jitdst + i), ta); _mm256_store_si256((__m256i*)(jitdst + i + 32), tb); } } } else { write32(jitptr +5, (int32_t)((uint8_t*)jit->w - jitptr -9)); jitptr[9] = 0xC3; /* ret */ } #ifdef GF16_XORJIT_ENABLE_DUAL_MAPPING if(jit->w != jit->x) { // TODO: need to serialize? } #endif gf16_xor512_jit_stub( (intptr_t)dst - 1024, (intptr_t)dst + len - 1024, (intptr_t)src + len*region - 1024, 0, jit->x ); } _mm256_zeroupper(); #else UNUSED(scratch); UNUSED(packRegions); UNUSED(regions); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficients); UNUSED(mutScratch); #endif } // TODO: gf16_xor_jit_muladd_multi_packpf_avx512 if bored enough #ifdef _AVAILABLE static HEDLEY_ALWAYS_INLINE void gf16_xor_finish_bit_extract(uint64_t* dst, __m512i src) { __m512i lo_nibble_test = _mm512_set_epi32( 0x08080808, 0x08080808, 0x08080808, 0x08080808, 0x04040404, 0x04040404, 0x04040404, 0x04040404, 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x01010101, 0x01010101, 0x01010101, 0x01010101 ); __m512i hi_nibble_test = _mm512_set_epi32( 0x80808080, 0x80808080, 0x80808080, 0x80808080, 0x40404040, 0x40404040, 0x40404040, 0x40404040, 0x20202020, 0x20202020, 0x20202020, 0x20202020, 0x10101010, 0x10101010, 0x10101010, 0x10101010 ); __m512i lane = _mm512_shuffle_i32x4(src, src, _MM_SHUFFLE(0,0,0,0)); write64(dst+0, _mm512_test_epi8_mask(lane, lo_nibble_test)); write64(dst+1, _mm512_test_epi8_mask(lane, hi_nibble_test)); lane = _mm512_shuffle_i32x4(src, src, _MM_SHUFFLE(1,1,1,1)); write64(dst+32 +0, _mm512_test_epi8_mask(lane, lo_nibble_test)); write64(dst+32 +1, _mm512_test_epi8_mask(lane, hi_nibble_test)); lane = _mm512_shuffle_i32x4(src, src, _MM_SHUFFLE(2,2,2,2)); write64(dst+64 +0, _mm512_test_epi8_mask(lane, lo_nibble_test)); write64(dst+64 +1, _mm512_test_epi8_mask(lane, hi_nibble_test)); lane = _mm512_shuffle_i32x4(src, src, _MM_SHUFFLE(3,3,3,3)); write64(dst+96 +0, _mm512_test_epi8_mask(lane, lo_nibble_test)); write64(dst+96 +1, _mm512_test_epi8_mask(lane, hi_nibble_test)); } static HEDLEY_ALWAYS_INLINE void _gf16_xor_finish_copy_block_avx512(void* dst, const void* src) { uint64_t* _src = (uint64_t*)src; uint64_t* _dst = (uint64_t*)dst; // 32 registers available, so load entire block // Clang doesn't seem to like arrays (always spills them to memory), so write out everything __m512i src0 = _mm512_load_si512(_src + 120 - 0*8); __m512i src1 = _mm512_load_si512(_src + 120 - 1*8); __m512i src2 = _mm512_load_si512(_src + 120 - 2*8); __m512i src3 = _mm512_load_si512(_src + 120 - 3*8); __m512i src4 = _mm512_load_si512(_src + 120 - 4*8); __m512i src5 = _mm512_load_si512(_src + 120 - 5*8); __m512i src6 = _mm512_load_si512(_src + 120 - 6*8); __m512i src7 = _mm512_load_si512(_src + 120 - 7*8); __m512i src8 = _mm512_load_si512(_src + 120 - 8*8); __m512i src9 = _mm512_load_si512(_src + 120 - 9*8); __m512i src10 = _mm512_load_si512(_src + 120 - 10*8); __m512i src11 = _mm512_load_si512(_src + 120 - 11*8); __m512i src12 = _mm512_load_si512(_src + 120 - 12*8); __m512i src13 = _mm512_load_si512(_src + 120 - 13*8); __m512i src14 = _mm512_load_si512(_src + 120 - 14*8); __m512i src15 = _mm512_load_si512(_src + 120 - 15*8); // interleave to words, dwords, qwords etc __m512i srcW0 = _mm512_unpacklo_epi8(src0, src1); __m512i srcW1 = _mm512_unpackhi_epi8(src0, src1); __m512i srcW2 = _mm512_unpacklo_epi8(src2, src3); __m512i srcW3 = _mm512_unpackhi_epi8(src2, src3); __m512i srcW4 = _mm512_unpacklo_epi8(src4, src5); __m512i srcW5 = _mm512_unpackhi_epi8(src4, src5); __m512i srcW6 = _mm512_unpacklo_epi8(src6, src7); __m512i srcW7 = _mm512_unpackhi_epi8(src6, src7); __m512i srcW8 = _mm512_unpacklo_epi8(src8, src9); __m512i srcW9 = _mm512_unpackhi_epi8(src8, src9); __m512i srcW10 = _mm512_unpacklo_epi8(src10, src11); __m512i srcW11 = _mm512_unpackhi_epi8(src10, src11); __m512i srcW12 = _mm512_unpacklo_epi8(src12, src13); __m512i srcW13 = _mm512_unpackhi_epi8(src12, src13); __m512i srcW14 = _mm512_unpacklo_epi8(src14, src15); __m512i srcW15 = _mm512_unpackhi_epi8(src14, src15); __m512i srcD0 = _mm512_unpacklo_epi16(srcW0, srcW2); __m512i srcD1 = _mm512_unpackhi_epi16(srcW0, srcW2); __m512i srcD2 = _mm512_unpacklo_epi16(srcW1, srcW3); __m512i srcD3 = _mm512_unpackhi_epi16(srcW1, srcW3); __m512i srcD4 = _mm512_unpacklo_epi16(srcW4, srcW6); __m512i srcD5 = _mm512_unpackhi_epi16(srcW4, srcW6); __m512i srcD6 = _mm512_unpacklo_epi16(srcW5, srcW7); __m512i srcD7 = _mm512_unpackhi_epi16(srcW5, srcW7); __m512i srcD8 = _mm512_unpacklo_epi16(srcW8, srcW10); __m512i srcD9 = _mm512_unpackhi_epi16(srcW8, srcW10); __m512i srcD10 = _mm512_unpacklo_epi16(srcW9, srcW11); __m512i srcD11 = _mm512_unpackhi_epi16(srcW9, srcW11); __m512i srcD12 = _mm512_unpacklo_epi16(srcW12, srcW14); __m512i srcD13 = _mm512_unpackhi_epi16(srcW12, srcW14); __m512i srcD14 = _mm512_unpacklo_epi16(srcW13, srcW15); __m512i srcD15 = _mm512_unpackhi_epi16(srcW13, srcW15); __m512i srcQ0 = _mm512_unpacklo_epi32(srcD0, srcD4); __m512i srcQ1 = _mm512_unpackhi_epi32(srcD0, srcD4); __m512i srcQ2 = _mm512_unpacklo_epi32(srcD1, srcD5); __m512i srcQ3 = _mm512_unpackhi_epi32(srcD1, srcD5); __m512i srcQ4 = _mm512_unpacklo_epi32(srcD2, srcD6); __m512i srcQ5 = _mm512_unpackhi_epi32(srcD2, srcD6); __m512i srcQ6 = _mm512_unpacklo_epi32(srcD3, srcD7); __m512i srcQ7 = _mm512_unpackhi_epi32(srcD3, srcD7); __m512i srcQ8 = _mm512_unpacklo_epi32(srcD8, srcD12); __m512i srcQ9 = _mm512_unpackhi_epi32(srcD8, srcD12); __m512i srcQ10 = _mm512_unpacklo_epi32(srcD9, srcD13); __m512i srcQ11 = _mm512_unpackhi_epi32(srcD9, srcD13); __m512i srcQ12 = _mm512_unpacklo_epi32(srcD10, srcD14); __m512i srcQ13 = _mm512_unpackhi_epi32(srcD10, srcD14); __m512i srcQ14 = _mm512_unpacklo_epi32(srcD11, srcD15); __m512i srcQ15 = _mm512_unpackhi_epi32(srcD11, srcD15); __m512i srcDQ0 = _mm512_unpacklo_epi64(srcQ0, srcQ8); __m512i srcDQ1 = _mm512_unpackhi_epi64(srcQ0, srcQ8); __m512i srcDQ2 = _mm512_unpacklo_epi64(srcQ1, srcQ9); __m512i srcDQ3 = _mm512_unpackhi_epi64(srcQ1, srcQ9); __m512i srcDQ4 = _mm512_unpacklo_epi64(srcQ2, srcQ10); __m512i srcDQ5 = _mm512_unpackhi_epi64(srcQ2, srcQ10); __m512i srcDQ6 = _mm512_unpacklo_epi64(srcQ3, srcQ11); __m512i srcDQ7 = _mm512_unpackhi_epi64(srcQ3, srcQ11); __m512i srcDQ8 = _mm512_unpacklo_epi64(srcQ4, srcQ12); __m512i srcDQ9 = _mm512_unpackhi_epi64(srcQ4, srcQ12); __m512i srcDQ10 = _mm512_unpacklo_epi64(srcQ5, srcQ13); __m512i srcDQ11 = _mm512_unpackhi_epi64(srcQ5, srcQ13); __m512i srcDQ12 = _mm512_unpacklo_epi64(srcQ6, srcQ14); __m512i srcDQ13 = _mm512_unpackhi_epi64(srcQ6, srcQ14); __m512i srcDQ14 = _mm512_unpacklo_epi64(srcQ7, srcQ15); __m512i srcDQ15 = _mm512_unpackhi_epi64(srcQ7, srcQ15); // for each vector, broadcast each lane, and use a testmb to pull the bits in the right order. These can be stored straight to memory // unfortunately, GCC 9.2 insists on moving the mask back to a vector register, even if the `_store_mask64` intrinsic is used, so this doesn't perform too well. But still seems to bench better than the previous code, which tried to move masks to a vector register to shuffle the words into place. Not an issue on Clang 9. gf16_xor_finish_bit_extract(_dst + 0, srcDQ0); gf16_xor_finish_bit_extract(_dst + 2, srcDQ1); gf16_xor_finish_bit_extract(_dst + 4, srcDQ2); gf16_xor_finish_bit_extract(_dst + 6, srcDQ3); gf16_xor_finish_bit_extract(_dst + 8, srcDQ4); gf16_xor_finish_bit_extract(_dst + 10, srcDQ5); gf16_xor_finish_bit_extract(_dst + 12, srcDQ6); gf16_xor_finish_bit_extract(_dst + 14, srcDQ7); gf16_xor_finish_bit_extract(_dst + 16, srcDQ8); gf16_xor_finish_bit_extract(_dst + 18, srcDQ9); gf16_xor_finish_bit_extract(_dst + 20, srcDQ10); gf16_xor_finish_bit_extract(_dst + 22, srcDQ11); gf16_xor_finish_bit_extract(_dst + 24, srcDQ12); gf16_xor_finish_bit_extract(_dst + 26, srcDQ13); gf16_xor_finish_bit_extract(_dst + 28, srcDQ14); gf16_xor_finish_bit_extract(_dst + 30, srcDQ15); } void gf16_xor_finish_block_avx512(void *HEDLEY_RESTRICT dst) { _gf16_xor_finish_copy_block_avx512(dst, dst); } void gf16_xor_finish_copy_block_avx512(void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src) { _gf16_xor_finish_copy_block_avx512(dst, src); } void gf16_xor_finish_copy_blocku_avx512(void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t bytes) { uint16_t block[512]; _gf16_xor_finish_copy_block_avx512(block, src); memcpy(dst, block, bytes); } #endif #define MWORD_SIZE 64 #define _mword __m512i #define _MM(f) _mm512_ ## f #define _MMI(f) _mm512_ ## f ## _si512 #define _FNSUFFIX _avx512 #define _MM_END _mm256_zeroupper(); #ifdef _AVAILABLE # include "gf16_checksum_x86.h" #endif #include "gf16_xor_common_funcs.h" #undef MWORD_SIZE #undef _mword #undef _MM #undef _MMI #undef _FNSUFFIX #undef _MM_END #ifdef _AVAILABLE GF_FINISH_PACKED_FUNCS(gf16_xor, _avx512, sizeof(__m512i)*16, gf16_xor_finish_copy_block_avx512, gf16_xor_finish_copy_blocku_avx512, 1, _mm256_zeroupper(), gf16_checksum_block_avx512, gf16_checksum_blocku_avx512, gf16_checksum_exp_avx512, &gf16_xor_finish_block_avx512, sizeof(__m512i)) #else GF_FINISH_PACKED_FUNCS_STUB(gf16_xor, _avx512) #endif void* gf16_xor_jit_init_avx512(int polynomial, int jitOptStrat) { #ifdef _AVAILABLE struct gf16_xor_scratch* ret; uint8_t tmpCode[XORDEP_JIT_CODE_SIZE]; ALIGN_ALLOC(ret, sizeof(struct gf16_xor_scratch), 32); gf16_bitdep_init256(ret->deps, polynomial, 0); ret->jitOptStrat = jitOptStrat; ret->codeStart = (uint_fast16_t)xor_write_init_jit(tmpCode); return ret; #else UNUSED(polynomial); UNUSED(jitOptStrat); return NULL; #endif } void* gf16_xor_jit_init_mut_avx512() { #ifdef _AVAILABLE jit_wx_pair *jitCode = jit_alloc(XORDEP_JIT_SIZE*2); if(!jitCode) return NULL; xor_write_init_jit(jitCode->w); return jitCode; #else return NULL; #endif } par2cmdline-turbo-1.5.0/parpar/gf16/gf16_xor_common.h000066400000000000000000000216621524160147200222630ustar00rootroot00000000000000#include "gf16_global.h" #include "../src/platform.h" #ifdef PLATFORM_X86 #include "x86_jit.h" #include "gf16_xor.h" #define XORDEP_JIT_SIZE 4096 #define XORDEP_JIT_CODE_SIZE 1280 #define XORDEP_JIT_MODE_MUL 0 #define XORDEP_JIT_MODE_MULADD 1 #define XORDEP_JIT_MODE_MUL_INSITU 2 /* we support MSVC and GCC style ASM */ #ifdef PLATFORM_AMD64 # ifdef _MSC_VER /* specified in external file, as we can't use inline ASM for 64-bit MSVC */ extern void gf16_xor_jit_stub(intptr_t src, intptr_t dEnd, intptr_t dest, intptr_t pf, void* fn); # ifdef __AVX2__ # define gf16_xor512_jit_stub gf16_xor256_jit_stub # define gf16_xor512_jit_multi_stub gf16_xor256_jit_multi_stub extern void gf16_xor256_jit_stub(intptr_t src, intptr_t dEnd, intptr_t dest, intptr_t pf, void* fn); extern void gf16_xor256_jit_multi_stub(intptr_t dst, intptr_t dstEnd, const void** src, void* fn); # endif # else # define CALL_PTR "callq *%q" # ifdef DBG_XORDEP # include # define WRITE_JIT(l) { \ FILE* fp = fopen("code.bin", "wb"); \ fwrite(fn, l, 1, fp); \ fclose(fp); \ } // disassemble with `objdump -b binary -D -m i386:x86-64 -M intel code.bin|less` # else # define WRITE_JIT(l) # endif static HEDLEY_ALWAYS_INLINE void gf16_xor_jit_stub(intptr_t src, intptr_t dEnd, intptr_t dest, intptr_t pf, void* fn) { WRITE_JIT(2048) __asm__ volatile( CALL_PTR "[f]\n" : "+a"(src), "+d"(dest), "+S"(pf) : "c"(dEnd), [f]"r"(fn) : "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6", "%xmm7", "%xmm8", "%xmm9", "%xmm10", "%xmm11", "%xmm12", "%xmm13", "%xmm14", "%xmm15", "memory" ); } # ifdef __AVX2__ static HEDLEY_ALWAYS_INLINE void gf16_xor256_jit_stub(intptr_t src, intptr_t dEnd, intptr_t dest, intptr_t pf, void* fn) { WRITE_JIT(2048) __asm__ volatile( CALL_PTR "[f]\n" : "+a"(src), "+d"(dest), "+S"(pf) : "c"(dEnd), [f]"r"(fn) : "memory" // GCC pre 4.9 doesn't accept YMM registers # if HEDLEY_GCC_VERSION_CHECK(4,9,0) || !defined(HEDLEY_GCC_VERSION) , "%ymm0", "%ymm1", "%ymm2", "%ymm3", "%ymm4", "%ymm5", "%ymm6", "%ymm7", "%ymm8", "%ymm9", "%ymm10", "%ymm11", "%ymm12", "%ymm13", "%ymm14", "%ymm15" # endif ); } # endif # ifdef __AVX512F__ static HEDLEY_ALWAYS_INLINE void gf16_xor512_jit_stub(intptr_t src, intptr_t dEnd, intptr_t dest, intptr_t pf, void* fn) { WRITE_JIT(2048) __asm__ volatile( CALL_PTR "[f]\n" : "+a"(src), "+d"(dest), "+S"(pf) : "c"(dEnd), [f]"r"(fn) : "%zmm1", "%zmm2", "%zmm3", "%zmm16", "%zmm17", "%zmm18", "%zmm19", "%zmm20", "%zmm21", "%zmm22", "%zmm23", "%zmm24", "%zmm25", "%zmm26", "%zmm27", "%zmm28", "%zmm29", "%zmm30", "%zmm31", "memory" ); } static HEDLEY_ALWAYS_INLINE void gf16_xor512_jit_multi_stub( intptr_t dst, intptr_t dstEnd, const void** src, void* fn ) { WRITE_JIT(8192) if(sizeof(*src) == 8) { __asm__ volatile( "movq 8(%%rdx), %%rsi\n" "movq 16(%%rdx), %%rdi\n" "movq 24(%%rdx), %%r8\n" "movq 32(%%rdx), %%r9\n" "movq 40(%%rdx), %%r10\n" "movq 48(%%rdx), %%r11\n" "movq 56(%%rdx), %%rbx\n" "movq 64(%%rdx), %%r14\n" "movq 72(%%rdx), %%r15\n" "movq (%%rdx), %%rdx\n" CALL_PTR "[f]\n" : "+a"(dst), "+d"(src) : "c"(dstEnd), [f]"r"(fn) : "%rbx", "%rsi", "%rdi", "%r8", "%r9", "%r10", "%r11", "%r14", "%r15", "%zmm0", "%zmm1", "%zmm2", "%zmm3", "%zmm4", "%zmm5", "%zmm6", "%zmm7", "%zmm8", "%zmm9", "%zmm10", "%zmm11", "%zmm12", "%zmm13", "%zmm14", "%zmm15", "%zmm16", "%zmm17", "%zmm18", "%zmm19", "%zmm20", "%zmm21", "%zmm22", "%zmm23", "%zmm24", "%zmm25", "%zmm26", "%zmm27", "%zmm28", "%zmm29", "%zmm30", "%zmm31", "memory" ); } else { // x32 assert(sizeof(*src) == 4); __asm__ volatile( "movl 4(%%rdx), %%esi\n" "movl 8(%%rdx), %%edi\n" "movl 12(%%rdx), %%r8d\n" "movl 16(%%rdx), %%r9d\n" "movl 20(%%rdx), %%r10d\n" "movl 24(%%rdx), %%r11d\n" "movl 28(%%rdx), %%ebx\n" "movl 32(%%rdx), %%r14d\n" "movl 36(%%rdx), %%r15d\n" "movl (%%rdx), %%edx\n" CALL_PTR "[f]\n" : "+a"(dst), "+d"(src) : "c"(dstEnd), [f]"r"(fn) : "%rbx", "%rsi", "%rdi", "%r8", "%r9", "%r10", "%r11", "%r14", "%r15", "%zmm0", "%zmm1", "%zmm2", "%zmm3", "%zmm4", "%zmm5", "%zmm6", "%zmm7", "%zmm8", "%zmm9", "%zmm10", "%zmm11", "%zmm12", "%zmm13", "%zmm14", "%zmm15", "%zmm16", "%zmm17", "%zmm18", "%zmm19", "%zmm20", "%zmm21", "%zmm22", "%zmm23", "%zmm24", "%zmm25", "%zmm26", "%zmm27", "%zmm28", "%zmm29", "%zmm30", "%zmm31", "memory" ); } } # endif # undef CALL_PTR # undef WRITE_JIT # endif #else # ifdef _MSC_VER static HEDLEY_ALWAYS_INLINE void gf16_xor_jit_stub(intptr_t src, intptr_t dEnd, intptr_t dest, intptr_t pf, void* fn) { __asm { mov eax, src mov ecx, dEnd mov edx, dest mov esi, pf call fn } } # else static HEDLEY_ALWAYS_INLINE void gf16_xor_jit_stub(intptr_t src, intptr_t dEnd, intptr_t dest, intptr_t pf, void* fn) { __asm__ volatile( "calll *%[f]\n" : "+a"(src), "+d"(dest), "+S"(pf) : "c"(dEnd), [f]"r"(fn) : "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6", "%xmm7", "memory" ); } # endif #endif struct gf16_xor_scratch { uint8_t deps[16*16*2*4]; int jitOptStrat; // GF16_XOR_JIT_STRAT_* uint_fast16_t codeStart; uint_fast16_t codeStartInsitu; }; #ifdef __SSE2__ typedef void*(*gf16_xorjit_write_func)(const void *HEDLEY_RESTRICT scratch, uint8_t *HEDLEY_RESTRICT jitptr, uint16_t val, const int xor, const int prefetch); static HEDLEY_ALWAYS_INLINE void gf16_xorjit_write_jit(const void* scratch, uint16_t coefficient, jit_wx_pair* jit, const int mode, const int prefetch, gf16_xorjit_write_func writeFunc, const void* funcScratch) { const struct gf16_xor_scratch* info = (const struct gf16_xor_scratch*)scratch; uint8_t* jitWPtr = (uint8_t*)jit->w; uint8_t* jitptr; if(mode == XORDEP_JIT_MODE_MUL_INSITU) { jitWPtr += XORDEP_JIT_SIZE/2; jitptr = jitWPtr + info->codeStartInsitu; } else { jitptr = jitWPtr + info->codeStart; } if(info->jitOptStrat == GF16_XOR_JIT_STRAT_COPYNT || info->jitOptStrat == GF16_XOR_JIT_STRAT_COPY) { ALIGN_TO(_GF16_XORJIT_COPY_ALIGN, uint8_t jitTemp[XORDEP_JIT_CODE_SIZE]); uintptr_t copyOffset = (mode == XORDEP_JIT_MODE_MUL_INSITU) ? info->codeStartInsitu : info->codeStart; if((uintptr_t)jitptr & (_GF16_XORJIT_COPY_ALIGN-1)) { // copy unaligned part #if _GF16_XORJIT_COPY_ALIGN == 32 && defined(__AVX2__) _mm256_store_si256((__m256i*)jitTemp, _mm256_load_si256((__m256i*)((uintptr_t)jitptr & ~(uintptr_t)(_GF16_XORJIT_COPY_ALIGN-1)))); #else _mm_store_si128((__m128i*)jitTemp, _mm_load_si128((__m128i*)((uintptr_t)jitptr & ~(uintptr_t)(_GF16_XORJIT_COPY_ALIGN-1)))); #endif copyOffset -= (uintptr_t)jitptr & (_GF16_XORJIT_COPY_ALIGN-1); jitptr = jitTemp + ((uintptr_t)jitptr & (_GF16_XORJIT_COPY_ALIGN-1)); } else jitptr = jitTemp; jitptr = writeFunc(funcScratch, jitptr, coefficient, mode, prefetch); write32(jitptr, (int32_t)((intptr_t)jitTemp - copyOffset - (intptr_t)jitptr -4)); jitptr[4] = 0xC3; /* ret */ jitptr += 5; /* memcpy to destination */ uint8_t* jitdst = jitWPtr + copyOffset; if(info->jitOptStrat == GF16_XOR_JIT_STRAT_COPYNT) { // 256-bit NT copies never seem to be better, so just stick to 128-bit for(uint_fast32_t i=0; i<(uint_fast32_t)(jitptr-jitTemp); i+=64) { __m128i ta = _mm_load_si128((__m128i*)(jitTemp + i)); __m128i tb = _mm_load_si128((__m128i*)(jitTemp + i + 16)); __m128i tc = _mm_load_si128((__m128i*)(jitTemp + i + 32)); __m128i td = _mm_load_si128((__m128i*)(jitTemp + i + 48)); _mm_stream_si128((__m128i*)(jitdst + i), ta); _mm_stream_si128((__m128i*)(jitdst + i + 16), tb); _mm_stream_si128((__m128i*)(jitdst + i + 32), tc); _mm_stream_si128((__m128i*)(jitdst + i + 48), td); } } else { // GCC probably turns these into memcpy calls anyway... #if _GF16_XORJIT_COPY_ALIGN == 32 && defined(__AVX2__) for(uint_fast32_t i=0; i<(uint_fast32_t)(jitptr-jitTemp); i+=64) { __m256i ta = _mm256_load_si256((__m256i*)(jitTemp + i)); __m256i tb = _mm256_load_si256((__m256i*)(jitTemp + i + 32)); _mm256_store_si256((__m256i*)(jitdst + i), ta); _mm256_store_si256((__m256i*)(jitdst + i + 32), tb); } #else for(uint_fast32_t i=0; i<(uint_fast32_t)(jitptr-jitTemp); i+=64) { __m128i ta = _mm_load_si128((__m128i*)(jitTemp + i)); __m128i tb = _mm_load_si128((__m128i*)(jitTemp + i + 16)); __m128i tc = _mm_load_si128((__m128i*)(jitTemp + i + 32)); __m128i td = _mm_load_si128((__m128i*)(jitTemp + i + 48)); _mm_store_si128((__m128i*)(jitdst + i), ta); _mm_store_si128((__m128i*)(jitdst + i + 16), tb); _mm_store_si128((__m128i*)(jitdst + i + 32), tc); _mm_store_si128((__m128i*)(jitdst + i + 48), td); } #endif } } else { if(info->jitOptStrat == GF16_XOR_JIT_STRAT_CLR) { // clear 1 byte per cacheline for(int i=0; iw != jit->x) { // TODO: need to serialize? } #endif } #endif #endif /* PLATFORM_X86 */ par2cmdline-turbo-1.5.0/parpar/gf16/gf16_xor_common_funcs.h000066400000000000000000000135471524160147200234640ustar00rootroot00000000000000 #include "../src/hedley.h" #include #include /* type returned by *movemask* function */ #if MWORD_SIZE == 64 # define umask_t uint64_t #elif MWORD_SIZE == 32 # define umask_t uint32_t #else # define umask_t uint16_t #endif #if MWORD_SIZE == 64 # define MOVMASK _mm512_movepi8_mask #else # define MOVMASK _MM(movemask_epi8) #endif #ifdef _AVAILABLE # include "gf16_checksum_x86.h" static HEDLEY_ALWAYS_INLINE void gf16_xor_prep_split(_mword ta, _mword tb, _mword* tl, _mword* th) { /* split to high/low parts */ #if MWORD_SIZE == 64 // arrange to hlhl... _mword tmp1 = _mm512_shuffle_epi8(ta, _mm512_set4_epi32(0x0f0d0b09, 0x07050301, 0x0e0c0a08, 0x06040200)); _mword tmp2 = _mm512_shuffle_epi8(tb, _mm512_set4_epi32(0x0f0d0b09, 0x07050301, 0x0e0c0a08, 0x06040200)); *th = _mm512_permutex2var_epi64(tmp1, _mm512_set_epi64( 15, 13, 11, 9, 7, 5, 3, 1 ), tmp2); *tl = _mm512_permutex2var_epi64(tmp1, _mm512_set_epi64( 14, 12, 10, 8, 6, 4, 2, 0 ), tmp2); #elif MWORD_SIZE == 32 // arrange to hhhhhhhhllllllllhhhhhhhhllllllll _mword tmp1 = _mm256_shuffle_epi8(ta, _mm256_set_epi32( 0x0f0d0b09, 0x07050301, 0x0e0c0a08, 0x06040200, 0x0f0d0b09, 0x07050301, 0x0e0c0a08, 0x06040200 )); // arrange to llllllllhhhhhhhhllllllllhhhhhhhh _mword tmp2 = _mm256_shuffle_epi8(tb, _mm256_set_epi32( 0x0e0c0a08, 0x06040200, 0x0f0d0b09, 0x07050301, 0x0e0c0a08, 0x06040200, 0x0f0d0b09, 0x07050301 )); *th = _mm256_blend_epi32(tmp1, tmp2, 0x33); *tl = _mm256_blend_epi32(tmp2, tmp1, 0x33); *tl = _mm256_permute4x64_epi64(*tl, _MM_SHUFFLE(3,1,2,0)); *th = _mm256_permute4x64_epi64(*th, _MM_SHUFFLE(2,0,3,1)); #else *th = _mm_packus_epi16( _mm_srli_epi16(ta, 8), _mm_srli_epi16(tb, 8) ); *tl = _mm_packus_epi16( _mm_and_si128(ta, _mm_set1_epi16(0xff)), _mm_and_si128(tb, _mm_set1_epi16(0xff)) ); #endif } static HEDLEY_ALWAYS_INLINE void gf16_xor_prep_write(umask_t* _dst, _mword bytes) { _dst[0] = MOVMASK(bytes); for(int i=1; i<8; i++) { bytes = _MM(add_epi8)(bytes, bytes); _dst[i*8] = MOVMASK(bytes); } } static HEDLEY_ALWAYS_INLINE void _FN(gf16_xor_prepare_block)(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src) { uint8_t* _src = (uint8_t*)src; umask_t* _dst = (umask_t*)dst; _mword tl, th; for(int j=0; j<8; j++) { gf16_xor_prep_split(_MMI(loadu)((_mword*)_src), _MMI(loadu)((_mword*)_src + 1), &tl, &th); /* save to dest by extracting masks */ gf16_xor_prep_write(_dst, th); gf16_xor_prep_write(_dst+64, tl); _src += sizeof(_mword)*2; _dst++; } } static HEDLEY_ALWAYS_INLINE void _FN(gf16_xor_prepare_block_insitu)(void* dst, const void* src) { assert(dst == src); _mword* _src = (_mword*)src; umask_t* _dst = (umask_t*)dst; _mword tl0, tl1, tl2, tl3, tl4, tl5, tl6, tl7; _mword th0, th1, th2, th3, th4, th5, th6, th7; // load 8 registers (need to load the first half of the block) gf16_xor_prep_split(_MMI(loadu)(_src + 0), _MMI(loadu)(_src + 1), &tl0, &th0); gf16_xor_prep_split(_MMI(loadu)(_src + 2), _MMI(loadu)(_src + 3), &tl1, &th1); gf16_xor_prep_split(_MMI(loadu)(_src + 4), _MMI(loadu)(_src + 5), &tl2, &th2); gf16_xor_prep_split(_MMI(loadu)(_src + 6), _MMI(loadu)(_src + 7), &tl3, &th3); // free up 4 of them (th* can now be freely written) gf16_xor_prep_write(_dst+0, th0); gf16_xor_prep_write(_dst+1, th1); gf16_xor_prep_write(_dst+2, th2); gf16_xor_prep_write(_dst+3, th3); gf16_xor_prep_split(_MMI(loadu)(_src + 8), _MMI(loadu)(_src + 9), &tl4, &th4); gf16_xor_prep_write(_dst+4, th4); gf16_xor_prep_split(_MMI(loadu)(_src + 10), _MMI(loadu)(_src + 11), &tl5, &th5); gf16_xor_prep_write(_dst+5, th5); gf16_xor_prep_split(_MMI(loadu)(_src + 12), _MMI(loadu)(_src + 13), &tl6, &th6); gf16_xor_prep_write(_dst+6, th6); gf16_xor_prep_split(_MMI(loadu)(_src + 14), _MMI(loadu)(_src + 15), &tl7, &th7); gf16_xor_prep_write(_dst+7, th7); gf16_xor_prep_write(_dst+64, tl0); gf16_xor_prep_write(_dst+65, tl1); gf16_xor_prep_write(_dst+66, tl2); gf16_xor_prep_write(_dst+67, tl3); gf16_xor_prep_write(_dst+68, tl4); gf16_xor_prep_write(_dst+69, tl5); gf16_xor_prep_write(_dst+70, tl6); gf16_xor_prep_write(_dst+71, tl7); } static HEDLEY_ALWAYS_INLINE void _FN(gf16_xor_prepare_blocku)(void* dst, const void* src, size_t remaining) { // handle unaligned area with a simple copy and repeat uint8_t tmp[MWORD_SIZE*16] = {0}; memcpy(tmp, src, remaining); _FN(gf16_xor_prepare_block)(dst, tmp); } #endif #ifdef PARPAR_INVERT_SUPPORT void _FN(gf16_xor_prepare)(void* dst, const void* src, size_t srcLen) { #ifdef _AVAILABLE if(dst == src) { // prepare_blocku is unused for in-situ prepare assert(srcLen % (sizeof(_mword)*16) == 0); gf16_prepare(dst, src, srcLen, sizeof(_mword)*16, &_FN(gf16_xor_prepare_block_insitu), &_FN(gf16_xor_prepare_blocku)); } else gf16_prepare(dst, src, srcLen, sizeof(_mword)*16, &_FN(gf16_xor_prepare_block), &_FN(gf16_xor_prepare_blocku)); _MM_END #else UNUSED(dst); UNUSED(src); UNUSED(srcLen); #endif } #endif #ifdef _AVAILABLE # if MWORD_SIZE == 64 GF_PREPARE_PACKED_FUNCS(gf16_xor, _FNSUFFIX, sizeof(_mword)*16, _FN(gf16_xor_prepare_block), _FN(gf16_xor_prepare_blocku), XOR512_MULTI_REGIONS, _MM_END, _mword checksum = _MMI(setzero)(), _FN(gf16_checksum_block), _FN(gf16_checksum_blocku), _FN(gf16_checksum_exp), _FN(gf16_checksum_prepare), sizeof(_mword)) # else GF_PREPARE_PACKED_FUNCS(gf16_xor, _FNSUFFIX, sizeof(_mword)*16, _FN(gf16_xor_prepare_block), _FN(gf16_xor_prepare_blocku), 1, _MM_END, _mword checksum = _MMI(setzero)(), _FN(gf16_checksum_block), _FN(gf16_checksum_blocku), _FN(gf16_checksum_exp), _FN(gf16_checksum_prepare), sizeof(_mword)) # endif #else GF_PREPARE_PACKED_FUNCS_STUB(gf16_xor, _FNSUFFIX) #endif #ifdef PARPAR_INVERT_SUPPORT void _FN(gf16_xor_finish)(void *HEDLEY_RESTRICT dst, size_t len) { #ifdef _AVAILABLE gf16_finish(dst, len, sizeof(_mword)*16, &_FN(gf16_xor_finish_block)); _MM_END #else UNUSED(dst); UNUSED(len); #endif } #endif #undef umask_t #undef MOVMASK par2cmdline-turbo-1.5.0/parpar/gf16/gf16_xor_sse2.c000066400000000000000000001352071524160147200216430ustar00rootroot00000000000000 #define _GF16_XORJIT_COPY_ALIGN 16 #include "gf16_xor_common.h" #undef _GF16_XORJIT_COPY_ALIGN #include #ifdef __SSE2__ int gf16_xor_available_sse2 = 1; #else int gf16_xor_available_sse2 = 0; #endif #ifdef __SSE2__ /* modified versions of PXOR/XORPS mem to have fixed sized instructions */ static HEDLEY_ALWAYS_INLINE size_t _jit_pxor_mod(uint8_t* jit, uint8_t xreg, uint8_t mreg, int32_t offs) { *(jit++) = 0x66; size_t p = _jit_rex_pref(&jit, xreg, 0) +1; xreg &= 7; write32(jit, 0x40EF0F | (xreg <<19) | (mreg <<16)); jit[3] = (uint8_t)offs; return p+4; } static HEDLEY_ALWAYS_INLINE size_t _jit_xorps_mod(uint8_t* jit, uint8_t xreg, uint8_t mreg, int32_t offs) { size_t p = _jit_rex_pref(&jit, xreg, 0); xreg &= 7; write32(jit, 0x40570F | (xreg <<19) | (mreg <<16) | lshift32(offs, 24)); return p+4; } struct gf16_xor_jit_scratch_sse2 { /* code lookup tables for XOR-JIT; should align to 64 to maximize cache line usage */ // TODO: for 32-bit, consider interleaving register sourced items more ALIGN_TO(16, __m128i clut_code1[64]); ALIGN_TO(16, __m128i clut_code2[64]); #ifdef PLATFORM_AMD64 ALIGN_TO(16, __m128i clut_code3[16]); ALIGN_TO(16, __m128i clut_code4[64]); #else ALIGN_TO(16, __m128i clut_code3[64]); ALIGN_TO(16, __m128i clut_code4[16]); #endif ALIGN_TO(16, __m128i clut_code5[64]); ALIGN_TO(16, __m128i clut_code6[16]); ALIGN_TO(16, uint16_t clut_info_mem[64]); ALIGN_TO(16, uint16_t clut_info_reg[64]); ALIGN_TO(16, __m128i clut_nocomm[8*16]); ALIGN_TO(16, uint16_t clut_ncinfo_mem[15]); ALIGN_TO(16, uint16_t clut_ncinfo_rm[15]); ALIGN_TO(16, uint16_t clut_ncinfo_reg[15]); struct gf16_xor_scratch s; }; // seems like the no-common optimisation isn't worth it, so disable it by default #define XORDEP_DISABLE_NO_COMMON 1 static void gf16_xor_create_jit_lut_sse2(struct gf16_xor_jit_scratch_sse2* scratch) { int i, j; memset(scratch->clut_code1, 0, sizeof(scratch->clut_code1)); memset(scratch->clut_code2, 0, sizeof(scratch->clut_code2)); memset(scratch->clut_code3, 0, sizeof(scratch->clut_code3)); memset(scratch->clut_code4, 0, sizeof(scratch->clut_code4)); memset(scratch->clut_code5, 0, sizeof(scratch->clut_code5)); memset(scratch->clut_code6, 0, sizeof(scratch->clut_code6)); /* XOR pairs/triples from memory */ #ifdef PLATFORM_AMD64 #define MEM_XP 1 #define MEM_XT 1 #else #define MEM_XP 5 #define MEM_XT 3 #endif for(i=0; i<64; i++) { int m = i; int posM[4] = {0, 0, 0, 0}; int posR[4] = {0, 0, 0, 0}; uint8_t* pC[6] = { (uint8_t*)(scratch->clut_code1 + i), (uint8_t*)(scratch->clut_code2 + i), i < (int)(sizeof(scratch->clut_code3)/sizeof(*scratch->clut_code3)) ? (uint8_t*)(scratch->clut_code3 + i) : NULL, i < (int)(sizeof(scratch->clut_code4)/sizeof(*scratch->clut_code4)) ? (uint8_t*)(scratch->clut_code4 + i) : NULL, (uint8_t*)(scratch->clut_code5 + i), i < (int)(sizeof(scratch->clut_code6)/sizeof(*scratch->clut_code6)) ? (uint8_t*)(scratch->clut_code6 + i) : NULL }; for(j=0; j<3; j++) { int msk = m&3; int k; if(msk == 1) { // (XORPS) for(k=0; k MOVAPS) if(posM[1] == 0) posM[1] = posM[0] +1; if(posR[1] == 0) posR[1] = posR[0] +1; } else if(msk) { int isCommon = msk == 3; int reg = 1 + isCommon; // (PXOR) for(k=0; k MOVDQA) if(posM[reg+1] == 0) posM[reg+1] = posM[0] +2; if(posR[reg+1] == 0) posR[reg+1] = posR[0] +2; } if(msk) { // bit1 || bit2 int xb = msk != 1; // only bit1 set -> using XORPS (1 less byte) /* advance pointers */ posM[0] += 4+xb; posR[0] += 3+xb; } m >>= 2; } scratch->clut_info_mem[i] = posM[0] | (posM[1] << 4) | (posM[2] << 8) | (posM[3] << 12); scratch->clut_info_reg[i] = posR[0] | (posR[1] << 4) | (posR[2] << 8) | (posR[3] << 12); } #ifndef XORDEP_DISABLE_NO_COMMON memset(scratch->clut_nocomm, 0, sizeof(scratch->clut_code6)); // handle cases of no common-mask optimisation for(i=0; i<15 /* not 16 */; i++) { // since we can only fit 2 pairs in an XMM register, cannot do 6 bit lookups int m = i; int k; int posM[3] = {0, 0, 0}; int posR[3] = {0, 0, 0}; int posRM[3] = {0, 0, 0}; uint8_t* pC[8]; for(k=0; k<8; k++) { pC[k] = (uint8_t*)(scratch->clut_nocomm + i + k*16); } for(j=0; j<2; j++) { if(m & 1) { // (XORPS) for(k=0; k MOVAPS) if(posM[1] == 0) posM[1] = posM[0] +1; if(posR[1] == 0) posR[1] = posR[0] +1; if(posRM[1] == 0) posRM[1] = posRM[0] +1; posM[0] += 4; posR[0] += 3; posRM[0] += 3 + (j==0); } if(m & 2) { // (PXOR) for(k=0; k MOVDQA) if(posM[2] == 0) posM[2] = posM[0] +2; if(posR[2] == 0) posR[2] = posR[0] +2; if(posRM[2] == 0) posRM[2] = posRM[0] +2; posM[0] += 5; posR[0] += 4; posRM[0] += 4 + (j==0); } m >>= 2; } scratch->clut_ncinfo_mem[i] = posM[0] | (posM[1] << 8) | (posM[2] << 12); scratch->clut_ncinfo_reg[i] = posR[0] | (posR[1] << 8) | (posR[2] << 12); scratch->clut_ncinfo_rm[i] = posRM[0] | (posRM[1] << 8) | (posRM[2] << 12); } #endif #undef MEM_XP #undef MEM_XT } /* tune flags set by GCC; not ideal, but good enough I guess (note, I don't care about anything older than Core2) */ #if defined(__tune_core2__) || defined(__tune_atom__) /* on pre-Nehalem Intel CPUs, it is faster to store unaligned XMM registers in halves */ static HEDLEY_ALWAYS_INLINE void STOREU_XMM(void* dest, __m128i xmm) { _mm_storel_epi64((__m128i*)(dest), xmm); _mm_storeh_pi(((__m64*)(dest) +1), _mm_castsi128_ps(xmm)); } #else # define STOREU_XMM(dest, xmm) \ _mm_storeu_si128((__m128i*)(dest), xmm) #endif /* conditional move, because, for whatever reason, no-one thought of making a CMOVcc intrinsic */ #if defined(__GNUC__) || defined(__clang__) #define CMOV(cond, dst, src) __asm__( \ "test %[c], %[c]\n" \ "cmovnz %[s], %[d]\n" \ : [d]"+r"(dst): [c]"r"(cond), [s]"r"(src)) #else //#define CMOV(c,d,s) (d) = ((c) & (s)) | (~(uintptr_t)(c) & (d)); #define CMOV(c, d, s) if(c) (d) = (s) #endif static HEDLEY_ALWAYS_INLINE uint_fast16_t xor_jit_bitpair3(uint8_t* dest, uint_fast32_t mask, const __m128i* tCode, const uint16_t* tInfo, intptr_t* posC, long* movC, uint_fast8_t isR64) { uint_fast16_t info = tInfo[mask>>1]; intptr_t pC = info >> 12; // copy code segment STOREU_XMM(dest, _mm_load_si128((__m128i*)((const uint64_t*)tCode + mask))); // handle conditional move for common mask (since it's always done) CMOV(*movC, *posC, pC+isR64); *posC -= info & 0xF; *movC &= -(long)(pC == 0); return info; } static HEDLEY_ALWAYS_INLINE uint_fast16_t xor_jit_bitpair3_noxor(uint8_t* dest, uint_fast16_t info, intptr_t* pos1, long* mov1, intptr_t* pos2, long* mov2, int isR64) { UNUSED(dest); uintptr_t p1 = (info >> 4) & 0xF; uintptr_t p2 = (info >> 8) & 0xF; CMOV(*mov1, *pos1, p1+isR64); CMOV(*mov2, *pos2, p2+isR64); *pos1 -= info & 0xF; *pos2 -= info & 0xF; *mov1 &= -(long)(p1 == 0); *mov2 &= -(long)(p2 == 0); return info & 0xF; } static HEDLEY_ALWAYS_INLINE uint_fast16_t xor_jit_bitpair3_nc_noxor(uint8_t* dest, uint_fast16_t info, intptr_t* pos1, long* mov1, intptr_t* pos2, long* mov2, int isR64) { UNUSED(dest); uintptr_t p1 = (info >> 8) & 0xF; uintptr_t p2 = info >> 12; CMOV(*mov1, *pos1, p1+isR64); CMOV(*mov2, *pos2, p2+isR64); *pos1 -= info & 0xF; *pos2 -= info & 0xF; *mov1 &= -(long)(p1 == 0); *mov2 &= -(long)(p2 == 0); return info & 0xF; } #undef CMOV static inline void* xor_write_jit_sse(const void *HEDLEY_RESTRICT _scratch, uint8_t *HEDLEY_RESTRICT jitptr, uint16_t val, const int mode, const int prefetch) { const struct gf16_xor_jit_scratch_sse2 *HEDLEY_RESTRICT scratch = (const struct gf16_xor_jit_scratch_sse2*)_scratch; uint_fast32_t bit; ALIGN_TO(16, uint32_t lumask[8]); __m128i depmask1 = _mm_load_si128((__m128i*)(scratch->s.deps + ((val & 0xf) << 7))); __m128i depmask2 = _mm_load_si128((__m128i*)(scratch->s.deps + ((val & 0xf) << 7)) +1); depmask1 = _mm_xor_si128(depmask1, _mm_load_si128((__m128i*)(scratch->s.deps + ((val << 3) & 0x780)) + 1*2)); depmask2 = _mm_xor_si128(depmask2, _mm_load_si128((__m128i*)(scratch->s.deps + ((val << 3) & 0x780)) + 1*2 +1)); depmask1 = _mm_xor_si128(depmask1, _mm_load_si128((__m128i*)(scratch->s.deps + ((val >> 1) & 0x780)) + 2*2)); depmask2 = _mm_xor_si128(depmask2, _mm_load_si128((__m128i*)(scratch->s.deps + ((val >> 1) & 0x780)) + 2*2 +1)); depmask1 = _mm_xor_si128(depmask1, _mm_load_si128((__m128i*)(scratch->s.deps + ((val >> 5) & 0x780)) + 3*2)); depmask2 = _mm_xor_si128(depmask2, _mm_load_si128((__m128i*)(scratch->s.deps + ((val >> 5) & 0x780)) + 3*2 +1)); _mm_store_si128((__m128i*)(lumask), depmask1); _mm_store_si128((__m128i*)(lumask + 4), depmask2); #ifndef XORDEP_DISABLE_NO_COMMON /* find cases where we don't wish to create the common queue - this is an optimisation to remove a single move operation when the common queue only contains one element */ /* we have the common elements between pairs, but it doesn't make sense to process a separate queue if there's only one common element (0 XORs), so find those */ __m128i common_mask1 = _mm_and_si128(depmask1, _mm_add_epi32(depmask1, depmask1)); common_mask1 = _mm_and_si128(common_mask1, _mm_set1_epi8(0xaa)); __m128i common_mask2 = _mm_and_si128(depmask2, _mm_add_epi32(depmask2, depmask2)); common_mask2 = _mm_and_si128(common_mask2, _mm_set1_epi8(0xaa)); __m128i common_mask_packed = _mm_packs_epi32(common_mask1, common_mask2); /* "(v & (v-1)) == 0" is true if only zero/one bit is set in each word */ common_mask1 = _mm_and_si128(common_mask1, _mm_add_epi32(common_mask1, _mm_set1_epi32(-1))); common_mask2 = _mm_and_si128(common_mask2, _mm_add_epi32(common_mask2, _mm_set1_epi32(-1))); __m128i common_mask = _mm_andnot_si128( _mm_cmpeq_epi16(_mm_setzero_si128(), common_mask_packed), _mm_cmpeq_epi16(_mm_setzero_si128(), _mm_packs_epi32(common_mask1, common_mask2)) ); /* now we have a 8x16 mask of one-bit common masks we wish to remove; pack into an int for easy dealing with */ // TODO: if this is in a memory source, consider allowing the common mask int no_common_mask = _mm_movemask_epi8(common_mask); #else #define no_common_mask 0 #endif if(prefetch) { jitptr += _jit_add_i(jitptr, SI, 128); jitptr += _jit_prefetch_m(jitptr, prefetch, SI, 0); jitptr += _jit_prefetch_m(jitptr, prefetch, SI, 64); } //_jit_movaps_load(jit, reg, xreg, offs) // (we just save a conditional by hardcoding this) #define _LD_APS(xreg, mreg, offs) \ write32((jitptr), 0x40280F + ((xreg) <<19) + ((mreg) <<16) + ((uint32_t)((offs)&0xFF) <<24)); \ jitptr += 4 #define _ST_APS(mreg, offs, xreg) \ write32((jitptr), 0x40290F + ((xreg) <<19) + ((mreg) <<16) + ((uint32_t)((offs)&0xFF) <<24)); \ jitptr += 4 #define _LD_APS64(xreg, mreg, offs) \ write64((jitptr), 0x40280F44 + ((xreg-8) <<27) + ((mreg) <<24) + ((int64_t)((offs)&0xFF) <<32)); \ jitptr += 5 #define _ST_APS64(mreg, offs, xreg) \ write64((jitptr), 0x40290F44 + ((xreg-8) <<27) + ((mreg) <<24) + ((int64_t)((offs)&0xFF) <<32)); \ jitptr += 5 #ifdef PLATFORM_AMD64 #define _LD_DQA(xreg, mreg, offs) \ write64((jitptr), 0x406F0F66 + ((xreg) <<27) + ((mreg) <<24) + ((int64_t)((offs)&0xFF) <<32)); \ jitptr += 5 #else #define _LD_DQA(xreg, mreg, offs) \ write32((jitptr), 0x406F0F66 + ((xreg) <<27) + ((mreg) <<24)); \ *(jitptr +4) = (uint8_t)((offs)&0xFF); \ jitptr += 5 #endif #define _LD_DQA64(xreg, mreg, offs) \ write64((jitptr), 0x406F0F4466 + ((int64_t)(xreg-8) <<35) + ((int64_t)(mreg) <<32) + ((int64_t)((offs)&0xFF) <<40)); \ jitptr += 6 //_jit_xorps_m(jit, reg, AX, lshift32(offs, 4)); #define _XORPS_M_(reg, offs, tr) \ write32((jitptr), (0x40570F + ((reg) << 19) + (((offs)&0xFF) <<28)) ^ (tr)) #define _C_XORPS_M(reg, offs, c) \ _XORPS_M_(reg, offs, 0); \ jitptr += (c)<<2 #define _XORPS_M64_(reg, offs, tr) \ write64((jitptr), (0x40570F44 + (((reg)-8) << 27) + ((int64_t)((offs)&0xFF) <<36)) ^ ((tr)<<8)) #define _C_XORPS_M64(reg, offs, c) \ _XORPS_M64_(reg, offs, 0); \ jitptr += ((c)<<2)+(c) //_jit_pxor_m(jit, 1, AX, lshift32(offs, 4)); #ifdef PLATFORM_AMD64 #define _PXOR_M_(reg, offs, tr) \ write64((jitptr), (0x40EF0F66 + ((reg) << 27) + ((int64_t)((offs)&0xFF) << 36)) ^ (tr)) #else #define _PXOR_M_(reg, offs, tr) \ write32((jitptr), (0x40EF0F66 + ((reg) << 27)) ^ (tr)); \ *(jitptr +4) = (uint8_t)(((offs)&0xFF) << 4) #endif #define _PXOR_M(reg, offs) \ _PXOR_M_(reg, offs, 0); \ jitptr += 5 #define _C_PXOR_M(reg, offs, c) \ _PXOR_M_(reg, offs, 0); \ jitptr += ((c)<<2)+(c) #define _PXOR_M64_(reg, offs, tr) \ write64((jitptr), (0x40EF0F4466 + ((int64_t)((reg)-8) << 35) + ((int64_t)((offs)&0xFF) << 44)) ^ ((tr)<<8)) #define _C_PXOR_M64(reg, offs, c) \ _PXOR_M64_(reg, offs, 0); \ jitptr += ((c)<<2)+((c)<<1) //_jit_xorps_r(jit, r2, r1) #define _XORPS_R_(r2, r1, tr) \ write32((jitptr), (0xC0570F + ((r2) <<19) + ((r1) <<16)) ^ (tr)) #define _XORPS_R(r2, r1) \ _XORPS_R_(r2, r1, 0); \ jitptr += 3 #define _C_XORPS_R(r2, r1, c) \ _XORPS_R_(r2, r1, 0); \ jitptr += ((c)<<1)+(c) // r2 is always < 8, r1 here is >= 8 #define _XORPS_R64_(r2, r1, tr) \ write32((jitptr), (0xC0570F41 + ((r2) <<27) + ((r1) <<24)) ^ ((tr)<<8)) #define _C_XORPS_R64(r2, r1, c) \ _XORPS_R64_(r2, r1, 0); \ jitptr += (c)<<2 //_jit_pxor_r(jit, r2, r1) #define _PXOR_R_(r2, r1, tr) \ write32((jitptr), (0xC0EF0F66 + ((r2) <<27) + ((r1) <<24)) ^ (tr)) #define _PXOR_R(r2, r1) \ _PXOR_R_(r2, r1, 0); \ jitptr += 4 #define _C_PXOR_R(r2, r1, c) \ _PXOR_R_(r2, r1, 0); \ jitptr += (c)<<2 #define _PXOR_R64_(r2, r1, tr) \ write64((jitptr), (0xC0EF0F4166 + ((int64_t)(r2) <<35) + ((int64_t)(r1) <<32)) ^ (((int64_t)tr)<<8)) #define _C_PXOR_R64(r2, r1, c) \ _PXOR_R64_(r2, r1, 0); \ jitptr += ((c)<<2)+(c) /* optimised mix of xor/mov operations */ #define _MOV_OR_XOR_FP_M(reg, offs, flag, c) \ _XORPS_M_(reg, offs, flag); \ flag &= (c)-1; \ jitptr += (c)<<2 #define _MOV_OR_XOR_FP_M64(reg, offs, flag, c) \ _XORPS_M64_(reg, offs, flag); \ flag &= (c)-1; \ jitptr += ((c)<<2)+(c) #define _MOV_OR_XOR_FP_INIT (0x570F ^ 0x280F) #define _MOV_OR_XOR_INT_M(reg, offs, flag, c) \ _PXOR_M_(reg, offs, flag); \ flag &= (c)-1; \ jitptr += ((c)<<2)+(c) #define _MOV_OR_XOR_INT_M64(reg, offs, flag, c) \ _PXOR_M64_(reg, offs, flag); \ flag &= (c)-1; \ jitptr += ((c)<<2)+((c)<<1) #define _MOV_OR_XOR_INT_INIT (0xEF0F00 ^ 0x6F0F00) #define _MOV_OR_XOR_R_FP(r2, r1, flag, c) \ _XORPS_R_(r2, r1, flag); \ flag &= (c)-1; \ jitptr += ((c)<<1)+(c) #define _MOV_OR_XOR_R64_FP(r2, r1, flag, c) \ _XORPS_R64_(r2, r1, flag); \ flag &= (c)-1; \ jitptr += (c)<<2 #define _MOV_OR_XOR_R_INT(r2, r1, flag, c) \ _PXOR_R_(r2, r1, flag); \ flag &= (c)-1; \ jitptr += (c)<<2 #define _MOV_OR_XOR_R64_INT(r2, r1, flag, c) \ _PXOR_R64_(r2, r1, flag); \ flag &= (c)-1; \ jitptr += ((c)<<2)+(c) /* generate code */ if(mode == XORDEP_JIT_MODE_MULADD) { for(bit=0; bit<8; bit++) { int destOffs = (bit<<5)-128; int destOffs2 = destOffs+16; long movC = 0xFF; intptr_t posC = 0; uint_fast32_t mask = lumask[bit]; _LD_APS(0, DX, destOffs); _LD_DQA(1, DX, destOffs2); if(no_common_mask & 1) { #define PROC_BITPAIR(n, inf, m) \ STOREU_XMM(jitptr, _mm_load_si128((__m128i*)((uint64_t*)scratch->clut_nocomm + (n<<5) + ((m) & (0xF<<1))))); \ jitptr += ((uint8_t*)(scratch->clut_ncinfo_ ##inf))[(m) & (0xF<<1)]; \ mask >>= 4 PROC_BITPAIR(0, mem, mask<<1); mask <<= 1; #ifdef PLATFORM_AMD64 PROC_BITPAIR(1, rm, mask); PROC_BITPAIR(2, reg, mask); PROC_BITPAIR(3, reg, mask); PROC_BITPAIR(4, mem, mask); PROC_BITPAIR(5, mem, mask); PROC_BITPAIR(6, mem, mask); PROC_BITPAIR(7, mem, mask); #else PROC_BITPAIR(1, mem, mask); PROC_BITPAIR(2, mem, mask); PROC_BITPAIR(3, mem, mask); PROC_BITPAIR(4, mem, mask); PROC_BITPAIR(5, rm, mask); PROC_BITPAIR(6, reg, mask); PROC_BITPAIR(7, reg, mask); #endif #undef PROC_BITPAIR } else { #define PROC_BITPAIR(n, bits, inf, m, r64) \ jitptr += xor_jit_bitpair3(jitptr, (m) & ((2<clut_code ##n, scratch->clut_info_ ##inf, &posC, &movC, r64) & 0xF; \ mask >>= bits PROC_BITPAIR(1, 6, mem, mask<<1, 0); mask <<= 1; #ifdef PLATFORM_AMD64 PROC_BITPAIR(2, 6, reg, mask, 0); PROC_BITPAIR(3, 4, reg, mask, 0); PROC_BITPAIR(4, 6, mem, mask, 1); PROC_BITPAIR(5, 6, mem, mask, 1); PROC_BITPAIR(6, 4, mem, mask, 1); #else PROC_BITPAIR(2, 6, mem, mask, 0); PROC_BITPAIR(3, 6, mem, mask, 0); PROC_BITPAIR(4, 4, mem, mask, 0); PROC_BITPAIR(5, 6, reg, mask, 0); PROC_BITPAIR(6, 4, reg, mask, 0); #endif #undef PROC_BITPAIR jitptr[posC + movC] = 0x6F; // PXOR -> MOVDQA #ifdef PLATFORM_AMD64 write64(jitptr, (0xC0570F + (2 <<16)) + ((0xC0EF0F66ULL + (1 <<27) + (2 <<24)) <<24)); jitptr += ((movC==0)<<3) - (movC==0); #else _C_XORPS_R(0, 2, movC==0); _C_PXOR_R(1, 2, movC==0); /*penalty?*/ #endif } #ifndef XORDEP_DISABLE_NO_COMMON no_common_mask >>= 2; #endif _ST_APS(DX, destOffs, 0); _ST_APS(DX, destOffs2, 1); } } else { for(bit=0; bit<8; bit++) { int destOffs = (bit<<5)-128; int destOffs2 = destOffs+16; long mov1 = 0xFF, mov2 = 0xFF, movC = 0xFF; intptr_t pos1 = 0, pos2 = 0, posC = 0; uint_fast32_t mask = lumask[bit]; if(no_common_mask & 1) { #define PROC_BITPAIR(n, inf, m, r64) \ STOREU_XMM(jitptr, _mm_load_si128((__m128i*)((uint64_t*)scratch->clut_nocomm + (n<<5) + ((m) & (0xF<<1))))); \ jitptr += xor_jit_bitpair3_nc_noxor(jitptr, scratch->clut_ncinfo_ ##inf[((m) & (0xF<<1))>>1], &pos1, &mov1, &pos2, &mov2, r64); \ mask >>= 4 PROC_BITPAIR(0, mem, mask<<1, 0); mask <<= 1; #ifdef PLATFORM_AMD64 PROC_BITPAIR(1, rm, mask, 0); PROC_BITPAIR(2, reg, mask, 0); PROC_BITPAIR(3, reg, mask, 0); PROC_BITPAIR(4, mem, mask, 1); PROC_BITPAIR(5, mem, mask, 1); PROC_BITPAIR(6, mem, mask, 1); PROC_BITPAIR(7, mem, mask, 1); #else PROC_BITPAIR(1, mem, mask, 0); PROC_BITPAIR(2, mem, mask, 0); PROC_BITPAIR(3, mem, mask, 0); PROC_BITPAIR(4, mem, mask, 0); PROC_BITPAIR(5, rm, mask, 0); PROC_BITPAIR(6, reg, mask, 0); PROC_BITPAIR(7, reg, mask, 0); #endif #undef PROC_BITPAIR jitptr[pos1 + mov1] = 0x28; // XORPS -> MOVAPS jitptr[pos2 + mov2] = 0x6F; // PXOR -> MOVDQA } else { #define PROC_BITPAIR(n, bits, inf, m, r64) \ jitptr += xor_jit_bitpair3_noxor(jitptr, xor_jit_bitpair3(jitptr, (m) & ((2<clut_code ##n, scratch->clut_info_ ##inf, &posC, &movC, r64), &pos1, &mov1, &pos2, &mov2, r64); \ mask >>= bits PROC_BITPAIR(1, 6, mem, mask<<1, 0); mask <<= 1; #ifdef PLATFORM_AMD64 PROC_BITPAIR(2, 6, reg, mask, 0); PROC_BITPAIR(3, 4, reg, mask, 0); PROC_BITPAIR(4, 6, mem, mask, 1); PROC_BITPAIR(5, 6, mem, mask, 1); PROC_BITPAIR(6, 4, mem, mask, 1); #else PROC_BITPAIR(2, 6, mem, mask, 0); PROC_BITPAIR(3, 6, mem, mask, 0); PROC_BITPAIR(4, 4, mem, mask, 0); PROC_BITPAIR(5, 6, reg, mask, 0); PROC_BITPAIR(6, 4, reg, mask, 0); #endif #undef PROC_BITPAIR jitptr[pos1 + mov1] = 0x28; // XORPS -> MOVAPS jitptr[pos2 + mov2] = 0x6F; // PXOR -> MOVDQA if(!movC) { jitptr[posC] = 0x6F; // PXOR -> MOVDQA if(mov1) { /* no additional XORs were made? */ _ST_APS(DX, destOffs, 2); } else { _XORPS_R(0, 2); } if(mov2) { _ST_APS(DX, destOffs2, 2); } else { _PXOR_R(1, 2); /*penalty?*/ } } } #ifndef XORDEP_DISABLE_NO_COMMON no_common_mask >>= 2; #else #undef no_common_mask #endif if(!mov1) { _ST_APS(DX, destOffs, 0); } if(!mov2) { _ST_APS(DX, destOffs2, 1); } } } /* cmp */ #ifdef PLATFORM_AMD64 write64(jitptr, 0x800FC03948 | (DX <<16) | (CX <<19) | ((uint64_t)JL <<32)); jitptr += 5; #else write32(jitptr, 0x800FC039 | (DX <<8) | (CX <<11) | (JL <<24)); jitptr += 4; #endif return jitptr; } static HEDLEY_ALWAYS_INLINE void gf16_xor_jit_mul_sse2_base(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch, const int mode, const int doPrefetch, const void *HEDLEY_RESTRICT prefetch) { jit_wx_pair* jit = (jit_wx_pair*)mutScratch; gf16_xorjit_write_jit(&(((struct gf16_xor_jit_scratch_sse2*)scratch)->s), coefficient, jit, mode, doPrefetch, &xor_write_jit_sse, scratch); // exec /* adding 128 to the destination pointer allows the register offset to be coded in 1 byte * eg: 'movdqa xmm0, [rdx+0x90]' is 8 bytes, whilst 'movdqa xmm0, [rdx-0x60]' is 5 bytes */ if(mode == XORDEP_JIT_MODE_MUL_INSITU) { // need a place to store a copy of the source, that won't fit in registers; these will be used as the memory source #ifdef PLATFORM_AMD64 ALIGN_TO(16, __m128i spill[3]); #else ALIGN_TO(16, __m128i spill[11]); #endif gf16_xor_jit_stub( (intptr_t)spill + 128, (intptr_t)dst + len - 128, (intptr_t)dst - 128, (intptr_t)prefetch - 128, (uint8_t*)jit->x + XORDEP_JIT_SIZE/2 ); } else { gf16_xor_jit_stub( (intptr_t)src - 128, (intptr_t)dst + len - 128, (intptr_t)dst - 128, (intptr_t)prefetch - 128, jit->x ); } } #endif /* defined(__SSE2__) */ #ifdef PARPAR_INVERT_SUPPORT void gf16_xor_jit_mul_sse2(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) { #ifdef __SSE2__ if(coefficient == 0) { memset(dst, 0, len); return; } gf16_xor_jit_mul_sse2_base(scratch, dst, src, len, coefficient, mutScratch, dst==src ? XORDEP_JIT_MODE_MUL_INSITU : XORDEP_JIT_MODE_MUL, 0, NULL); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); UNUSED(mutScratch); #endif } #endif void gf16_xor_jit_muladd_sse2(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) { #ifdef __SSE2__ if(coefficient == 0) return; gf16_xor_jit_mul_sse2_base(scratch, dst, src, len, coefficient, mutScratch, XORDEP_JIT_MODE_MULADD, 0, NULL); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); UNUSED(mutScratch); #endif } void gf16_xor_jit_muladd_prefetch_sse2(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch, const void *HEDLEY_RESTRICT prefetch) { #ifdef __SSE2__ if(coefficient == 0) return; gf16_xor_jit_mul_sse2_base(scratch, dst, src, len, coefficient, mutScratch, XORDEP_JIT_MODE_MULADD, _MM_HINT_T1, prefetch); #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(coefficient); UNUSED(mutScratch); UNUSED(prefetch); #endif } #ifdef __SSE2__ struct gf16_xor_tables { ALIGN_TO(16, __m128 deps[8*16]); uint64_t BitsIndexTable[256]; }; static const unsigned char BitsSetTable256[256] = { # define B2(n) n, n+1, n+1, n+2 # define B4(n) B2(n), B2(n+1), B2(n+1), B2(n+2) # define B6(n) B4(n), B4(n+1), B4(n+1), B4(n+2) B6(0), B6(1), B6(1), B6(2) }; static HEDLEY_ALWAYS_INLINE void gf16_xor_write_deptable(intptr_t *HEDLEY_RESTRICT deptable, uint_fast32_t *HEDLEY_RESTRICT counts, const struct gf16_xor_tables *HEDLEY_RESTRICT scratch, uint16_t val, uintptr_t dstSrcOffset) { ALIGN_TO(16, uint16_t tmp_depmask[16]); const uint8_t* deps = (const uint8_t*)(scratch->deps); __m128i depmask1 = _mm_load_si128((__m128i*)(deps + ((val & 0xf) << 7))); __m128i depmask2 = _mm_load_si128((__m128i*)(deps + ((val & 0xf) << 7)) +1); depmask1 = _mm_xor_si128(depmask1, _mm_load_si128((__m128i*)(deps + ((val << 3) & 0x780)) + 1*2)); depmask2 = _mm_xor_si128(depmask2, _mm_load_si128((__m128i*)(deps + ((val << 3) & 0x780)) + 1*2 +1)); depmask1 = _mm_xor_si128(depmask1, _mm_load_si128((__m128i*)(deps + ((val >> 1) & 0x780)) + 2*2)); depmask2 = _mm_xor_si128(depmask2, _mm_load_si128((__m128i*)(deps + ((val >> 1) & 0x780)) + 2*2 +1)); depmask1 = _mm_xor_si128(depmask1, _mm_load_si128((__m128i*)(deps + ((val >> 5) & 0x780)) + 3*2)); depmask2 = _mm_xor_si128(depmask2, _mm_load_si128((__m128i*)(deps + ((val >> 5) & 0x780)) + 3*2 +1)); /* generate needed tables */ _mm_store_si128((__m128i*)(tmp_depmask), depmask1); _mm_store_si128((__m128i*)(tmp_depmask + 8), depmask2); for(int bit=0; bit<16; bit++) { uint_fast32_t cnt = BitsSetTable256[tmp_depmask[bit] & 0xff]; __m128i idx = _mm_loadl_epi64((__m128i*)(scratch->BitsIndexTable + (tmp_depmask[bit] & 0xff))); __m128i idx2 = _mm_or_si128( _mm_set1_epi8(8U<<4), _mm_loadl_epi64((__m128i*)(scratch->BitsIndexTable + (tmp_depmask[bit] >> 8))) ); counts[bit] = cnt + BitsSetTable256[tmp_depmask[bit] >> 8] -1; if(sizeof(uintptr_t) == 8) { __m128i addr = _mm_set1_epi64x(dstSrcOffset); #define STORE_TBL(storetype, offs, data) \ _mm_##storetype##_si128((__m128i*)(deptable + bit*16 +offs), _mm_add_epi64( \ data, addr \ )) idx = _mm_unpacklo_epi8(idx, _mm_setzero_si128()); __m128i tmp1 = _mm_unpacklo_epi16(idx, _mm_setzero_si128()); __m128i tmp2 = _mm_unpackhi_epi16(idx, _mm_setzero_si128()); STORE_TBL(store, 0, _mm_unpacklo_epi32(tmp1, _mm_setzero_si128())); STORE_TBL(store, 2, _mm_unpackhi_epi32(tmp1, _mm_setzero_si128())); STORE_TBL(store, 4, _mm_unpacklo_epi32(tmp2, _mm_setzero_si128())); STORE_TBL(store, 6, _mm_unpackhi_epi32(tmp2, _mm_setzero_si128())); idx2 = _mm_unpacklo_epi8(idx2, _mm_setzero_si128()); tmp1 = _mm_unpacklo_epi16(idx2, _mm_setzero_si128()); tmp2 = _mm_unpackhi_epi16(idx2, _mm_setzero_si128()); STORE_TBL(storeu, cnt+0, _mm_unpacklo_epi32(tmp1, _mm_setzero_si128())); STORE_TBL(storeu, cnt+2, _mm_unpackhi_epi32(tmp1, _mm_setzero_si128())); STORE_TBL(storeu, cnt+4, _mm_unpacklo_epi32(tmp2, _mm_setzero_si128())); STORE_TBL(storeu, cnt+6, _mm_unpackhi_epi32(tmp2, _mm_setzero_si128())); #undef STORE_TBL } else { // 32-bit __m128i addr = _mm_set1_epi32((int)dstSrcOffset); idx = _mm_unpacklo_epi8(idx, _mm_setzero_si128()); _mm_store_si128((__m128i*)(deptable + bit*16 +0), _mm_add_epi32( _mm_unpacklo_epi16(idx, _mm_setzero_si128()), addr )); _mm_store_si128((__m128i*)(deptable + bit*16 +4), _mm_add_epi32( _mm_unpackhi_epi16(idx, _mm_setzero_si128()), addr )); idx2 = _mm_unpacklo_epi8(idx2, _mm_setzero_si128()); _mm_storeu_si128((__m128i*)(deptable + bit*16 +cnt+0), _mm_add_epi32( _mm_unpacklo_epi16(idx2, _mm_setzero_si128()), addr )); _mm_storeu_si128((__m128i*)(deptable + bit*16 +cnt+4), _mm_add_epi32( _mm_unpackhi_epi16(idx2, _mm_setzero_si128()), addr )); } /* for storing as byte indicies; we do the full expansion above because it saves a register in the main loop _mm_storel_epi64( (__m128i*)(deptable + bit*16), _mm_loadl_epi64((__m128i*)(scratch->BitsIndexTable + (tmp_depmask[bit] & 0xff))) ); _mm_storel_epi64( (__m128i*)(deptable + bit*16 + cnt), _mm_or_si128( _mm_set1_epi8(8<<4), _mm_loadl_epi64((__m128i*)(scratch->BitsIndexTable + (tmp_depmask[bit] >> 8))) ) ); */ } } static HEDLEY_ALWAYS_INLINE void gf16_xor_mul_block_sse2(const uint8_t* inP, uint8_t* outP, uint_fast32_t counts[16], intptr_t deptable[256]) { /* Note that we assume that all counts are at least 1; I don't think it's possible for that to be false */ #define STEP(bit, type, typev, typed) { \ intptr_t* deps = deptable + bit*16; \ typev tmp = _mm_load_ ## type((typed*)(inP + deps[ 0])); \ HEDLEY_ASSUME(counts[bit] <= 15); \ switch(counts[bit]) { \ case 15: tmp = _mm_xor_ ## type(tmp, *(typev*)(inP + deps[15])); /* FALLTHRU */ \ case 14: tmp = _mm_xor_ ## type(tmp, *(typev*)(inP + deps[14])); /* FALLTHRU */ \ case 13: tmp = _mm_xor_ ## type(tmp, *(typev*)(inP + deps[13])); /* FALLTHRU */ \ case 12: tmp = _mm_xor_ ## type(tmp, *(typev*)(inP + deps[12])); /* FALLTHRU */ \ case 11: tmp = _mm_xor_ ## type(tmp, *(typev*)(inP + deps[11])); /* FALLTHRU */ \ case 10: tmp = _mm_xor_ ## type(tmp, *(typev*)(inP + deps[10])); /* FALLTHRU */ \ case 9: tmp = _mm_xor_ ## type(tmp, *(typev*)(inP + deps[ 9])); /* FALLTHRU */ \ case 8: tmp = _mm_xor_ ## type(tmp, *(typev*)(inP + deps[ 8])); /* FALLTHRU */ \ case 7: tmp = _mm_xor_ ## type(tmp, *(typev*)(inP + deps[ 7])); /* FALLTHRU */ \ case 6: tmp = _mm_xor_ ## type(tmp, *(typev*)(inP + deps[ 6])); /* FALLTHRU */ \ case 5: tmp = _mm_xor_ ## type(tmp, *(typev*)(inP + deps[ 5])); /* FALLTHRU */ \ case 4: tmp = _mm_xor_ ## type(tmp, *(typev*)(inP + deps[ 4])); /* FALLTHRU */ \ case 3: tmp = _mm_xor_ ## type(tmp, *(typev*)(inP + deps[ 3])); /* FALLTHRU */ \ case 2: tmp = _mm_xor_ ## type(tmp, *(typev*)(inP + deps[ 2])); /* FALLTHRU */ \ case 1: tmp = _mm_xor_ ## type(tmp, *(typev*)(inP + deps[ 1])); /* FALLTHRU */ \ } \ _mm_store_ ## type((typed*)outP + bit, tmp); \ } STEP( 0, si128, __m128i, __m128i) STEP( 1, si128, __m128i, __m128i) STEP( 2, si128, __m128i, __m128i) STEP( 3, si128, __m128i, __m128i) STEP( 4, si128, __m128i, __m128i) STEP( 5, si128, __m128i, __m128i) STEP( 6, si128, __m128i, __m128i) STEP( 7, si128, __m128i, __m128i) STEP( 8, si128, __m128i, __m128i) STEP( 9, si128, __m128i, __m128i) STEP(10, si128, __m128i, __m128i) STEP(11, si128, __m128i, __m128i) STEP(12, si128, __m128i, __m128i) STEP(13, si128, __m128i, __m128i) STEP(14, si128, __m128i, __m128i) STEP(15, si128, __m128i, __m128i) #undef STEP } #endif #ifdef PARPAR_INVERT_SUPPORT void gf16_xor_mul_sse2(const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t val, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #ifdef __SSE2__ if(val == 0) { memset(dst, 0, len); return; } uint_fast32_t counts[16]; ALIGN_TO(16, intptr_t deptable[256]); uint8_t* _dst = (uint8_t*)dst + len; if(dst == src) { // for in-situ mul, write to a temp block and copy back ALIGN_TO(16, uint8_t tmp[256]); __m128i* _tmp = (__m128i*)tmp; gf16_xor_write_deptable(deptable, counts, (const struct gf16_xor_tables*)scratch, val, 0); for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(__m128i)*16) { uint8_t* p = _dst + ptr; gf16_xor_mul_block_sse2(p, tmp, counts, deptable); for(int i=0; i<16; i++) { _mm_store_si128((__m128i*)p + i, _mm_load_si128(_tmp+i)); } } } else { gf16_xor_write_deptable(deptable, counts, (const struct gf16_xor_tables*)scratch, val, (uintptr_t)src - (uintptr_t)dst); for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(__m128i)*16) { gf16_xor_mul_block_sse2(_dst + ptr, _dst + ptr, counts, deptable); } } #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(val); #endif } #endif void gf16_xor_muladd_sse2(const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t val, void *HEDLEY_RESTRICT mutScratch) { UNUSED(mutScratch); #ifdef __SSE2__ if(val == 0) return; uint_fast32_t counts[16]; ALIGN_TO(16, intptr_t deptable[256]); uint8_t* _dst = (uint8_t*)dst + len; gf16_xor_write_deptable(deptable, counts, (const struct gf16_xor_tables*)scratch, val, (uintptr_t)src - (uintptr_t)dst); for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(__m128i)*16) { uint8_t* p = _dst + ptr; #define STEP(bit, type, typev, typed) { \ intptr_t* deps = deptable + bit*16; \ typev tmp = _mm_load_ ## type((typed*)((typed*)p + bit)); \ HEDLEY_ASSUME(counts[bit] <= 15); \ switch(counts[bit]) { \ case 15: tmp = _mm_xor_ ## type(tmp, *(typev*)(p + deps[15])); /* FALLTHRU */ \ case 14: tmp = _mm_xor_ ## type(tmp, *(typev*)(p + deps[14])); /* FALLTHRU */ \ case 13: tmp = _mm_xor_ ## type(tmp, *(typev*)(p + deps[13])); /* FALLTHRU */ \ case 12: tmp = _mm_xor_ ## type(tmp, *(typev*)(p + deps[12])); /* FALLTHRU */ \ case 11: tmp = _mm_xor_ ## type(tmp, *(typev*)(p + deps[11])); /* FALLTHRU */ \ case 10: tmp = _mm_xor_ ## type(tmp, *(typev*)(p + deps[10])); /* FALLTHRU */ \ case 9: tmp = _mm_xor_ ## type(tmp, *(typev*)(p + deps[ 9])); /* FALLTHRU */ \ case 8: tmp = _mm_xor_ ## type(tmp, *(typev*)(p + deps[ 8])); /* FALLTHRU */ \ case 7: tmp = _mm_xor_ ## type(tmp, *(typev*)(p + deps[ 7])); /* FALLTHRU */ \ case 6: tmp = _mm_xor_ ## type(tmp, *(typev*)(p + deps[ 6])); /* FALLTHRU */ \ case 5: tmp = _mm_xor_ ## type(tmp, *(typev*)(p + deps[ 5])); /* FALLTHRU */ \ case 4: tmp = _mm_xor_ ## type(tmp, *(typev*)(p + deps[ 4])); /* FALLTHRU */ \ case 3: tmp = _mm_xor_ ## type(tmp, *(typev*)(p + deps[ 3])); /* FALLTHRU */ \ case 2: tmp = _mm_xor_ ## type(tmp, *(typev*)(p + deps[ 2])); /* FALLTHRU */ \ case 1: tmp = _mm_xor_ ## type(tmp, *(typev*)(p + deps[ 1])); /* FALLTHRU */ \ case 0: tmp = _mm_xor_ ## type(tmp, *(typev*)(p + deps[ 0])); /* FALLTHRU */ \ } \ _mm_store_ ## type((typed*)p + bit, tmp); \ } STEP( 0, si128, __m128i, __m128i) STEP( 1, si128, __m128i, __m128i) STEP( 2, si128, __m128i, __m128i) STEP( 3, si128, __m128i, __m128i) STEP( 4, si128, __m128i, __m128i) STEP( 5, si128, __m128i, __m128i) STEP( 6, si128, __m128i, __m128i) STEP( 7, si128, __m128i, __m128i) STEP( 8, si128, __m128i, __m128i) STEP( 9, si128, __m128i, __m128i) STEP(10, si128, __m128i, __m128i) STEP(11, si128, __m128i, __m128i) STEP(12, si128, __m128i, __m128i) STEP(13, si128, __m128i, __m128i) STEP(14, si128, __m128i, __m128i) STEP(15, si128, __m128i, __m128i) #undef STEP } #else UNUSED(scratch); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(val); #endif } #ifdef __SSE2__ #define LOAD_HALVES(a, b, upper) \ _mm_castps_si128(_mm_loadh_pi( \ _mm_castsi128_ps(_mm_loadl_epi64((__m128i*)(_src + 120 + upper*4 - (a)*8))), \ (__m64*)(_src + 120 + upper*4 - (b)*8) \ )) #define LOAD_X4(offs, dst1, dst2, upper) { \ __m128i src02 = LOAD_HALVES(offs+0, offs+2, upper); /* 22222222 00000000 */ \ __m128i src13 = LOAD_HALVES(offs+1, offs+3, upper); /* 33333333 11111111 */ \ __m128i src01 = _mm_unpacklo_epi8(src02, src13); /* 10101010 10101010 */ \ __m128i src23 = _mm_unpackhi_epi8(src02, src13); /* 32323232 32323232 */ \ dst1 = _mm_unpacklo_epi16(src01, src23); /* 32103210 32103210 */ \ dst2 = _mm_unpackhi_epi16(src01, src23); /* 32103210 32103210 */ \ } #define UNPACK_VECTS \ srcQ0a = _mm_unpacklo_epi32(srcD0a, srcD4a); /* 76543210 76543210 */ \ srcQ0b = _mm_unpackhi_epi32(srcD0a, srcD4a); \ srcQ0c = _mm_unpacklo_epi32(srcD0b, srcD4b); \ srcQ0d = _mm_unpackhi_epi32(srcD0b, srcD4b); \ srcQ8a = _mm_unpacklo_epi32(srcD8a, srcD12a); \ srcQ8b = _mm_unpackhi_epi32(srcD8a, srcD12a); \ srcQ8c = _mm_unpacklo_epi32(srcD8b, srcD12b); \ srcQ8d = _mm_unpackhi_epi32(srcD8b, srcD12b); \ \ srcDQa = _mm_unpacklo_epi64(srcQ0a, srcQ8a); \ srcDQb = _mm_unpackhi_epi64(srcQ0a, srcQ8a); \ srcDQc = _mm_unpacklo_epi64(srcQ0b, srcQ8b); \ srcDQd = _mm_unpackhi_epi64(srcQ0b, srcQ8b); \ srcDQe = _mm_unpacklo_epi64(srcQ0c, srcQ8c); \ srcDQf = _mm_unpackhi_epi64(srcQ0c, srcQ8c); \ srcDQg = _mm_unpacklo_epi64(srcQ0d, srcQ8d); \ srcDQh = _mm_unpackhi_epi64(srcQ0d, srcQ8d) #define EXTRACT_BITS(target, srcVec) \ write16((target) + 7, _mm_movemask_epi8(srcVec)); \ for(int i=6; i>=0; i--) { \ srcVec = _mm_add_epi8(srcVec, srcVec); \ write16((target) + i, _mm_movemask_epi8(srcVec)); \ } void gf16_xor_finish_block_sse2(void *HEDLEY_RESTRICT dst) { uint16_t* _dst = (uint16_t*)dst; const uint16_t* _src = _dst; __m128i srcD0a, srcD0b, srcD4a, srcD4b, srcD8a, srcD8b, srcD12a, srcD12b; __m128i srcQ0a, srcQ0b, srcQ0c, srcQ0d, srcQ8a, srcQ8b, srcQ8c, srcQ8d; __m128i srcDQa, srcDQb, srcDQc, srcDQd, srcDQe, srcDQf, srcDQg, srcDQh; __m128i dstA, dstB, dstC, dstD; // setting to undefined to stop ICC warning about uninitialized values #ifndef __APPLE__ dstA = _mm_undefined_si128(); dstB = _mm_undefined_si128(); dstC = _mm_undefined_si128(); dstD = _mm_undefined_si128(); #endif // load 16x 64-bit inputs LOAD_X4( 0, srcD0a , srcD0b, 0) LOAD_X4( 4, srcD4a , srcD4b, 0) LOAD_X4( 8, srcD8a , srcD8b, 0) LOAD_X4(12, srcD12a, srcD12b,0) // interleave bytes in all 8 vectors UNPACK_VECTS; // write half of these vectors, and store the other half for later #define EXTRACT_BITS_HALF(target, targVec, vecUpper, srcVec) { \ uint16_t mskA, mskB, mskC, mskD; \ mskD = _mm_movemask_epi8(srcVec); \ srcVec = _mm_add_epi8(srcVec, srcVec); \ mskC = _mm_movemask_epi8(srcVec); \ srcVec = _mm_add_epi8(srcVec, srcVec); \ mskB = _mm_movemask_epi8(srcVec); \ srcVec = _mm_add_epi8(srcVec, srcVec); \ mskA = _mm_movemask_epi8(srcVec); \ targVec = vecUpper ? _mm_insert_epi16(targVec, mskA, 4) : _mm_cvtsi32_si128(mskA); \ targVec = _mm_insert_epi16(targVec, mskB, 1 + vecUpper*4); \ targVec = _mm_insert_epi16(targVec, mskC, 2 + vecUpper*4); \ targVec = _mm_insert_epi16(targVec, mskD, 3 + vecUpper*4); \ srcVec = _mm_add_epi8(srcVec, srcVec); \ write16((target)+3, _mm_movemask_epi8(srcVec)); \ srcVec = _mm_add_epi8(srcVec, srcVec); \ write16((target)+2, _mm_movemask_epi8(srcVec)); \ srcVec = _mm_add_epi8(srcVec, srcVec); \ write16((target)+1, _mm_movemask_epi8(srcVec)); \ srcVec = _mm_add_epi8(srcVec, srcVec); \ write16((target)+0, _mm_movemask_epi8(srcVec)); \ } EXTRACT_BITS_HALF(_dst + 0, dstA, 0, srcDQa) EXTRACT_BITS_HALF(_dst + 8, dstA, 1, srcDQb) EXTRACT_BITS_HALF(_dst + 16, dstB, 0, srcDQc) EXTRACT_BITS_HALF(_dst + 24, dstB, 1, srcDQd) EXTRACT_BITS_HALF(_dst + 32, dstC, 0, srcDQe) EXTRACT_BITS_HALF(_dst + 40, dstC, 1, srcDQf) EXTRACT_BITS_HALF(_dst + 48, dstD, 0, srcDQg) EXTRACT_BITS_HALF(_dst + 56, dstD, 1, srcDQh) #undef EXTRACT_BITS_HALF // load second half & write saved output once source has been read LOAD_X4(12, srcD12a, srcD12b,1) _mm_storel_epi64((__m128i*)(_dst + 4), dstA); _mm_storeh_pi((__m64*)(_dst + 12), _mm_castsi128_ps(dstA)); _mm_storel_epi64((__m128i*)(_dst + 20), dstB); _mm_storeh_pi((__m64*)(_dst + 28), _mm_castsi128_ps(dstB)); LOAD_X4( 8, srcD8a , srcD8b, 1) _mm_storel_epi64((__m128i*)(_dst + 36), dstC); _mm_storeh_pi((__m64*)(_dst + 44), _mm_castsi128_ps(dstC)); _mm_storel_epi64((__m128i*)(_dst + 52), dstD); _mm_storeh_pi((__m64*)(_dst + 60), _mm_castsi128_ps(dstD)); LOAD_X4( 4, srcD4a , srcD4b, 1) LOAD_X4( 0, srcD0a , srcD0b, 1) UNPACK_VECTS; // extract & write all bits // TODO: consider saving some to a register to reduce write ops EXTRACT_BITS(_dst + 64 + 0, srcDQa) EXTRACT_BITS(_dst + 64 + 8, srcDQb) EXTRACT_BITS(_dst + 64 + 16, srcDQc) EXTRACT_BITS(_dst + 64 + 24, srcDQd) EXTRACT_BITS(_dst + 64 + 32, srcDQe) EXTRACT_BITS(_dst + 64 + 40, srcDQf) EXTRACT_BITS(_dst + 64 + 48, srcDQg) EXTRACT_BITS(_dst + 64 + 56, srcDQh) } void gf16_xor_finish_copy_block_sse2(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src) { uint16_t* _dst = (uint16_t*)dst; const uint16_t* _src = (uint16_t*)src; __m128i srcD0a, srcD0b, srcD4a, srcD4b, srcD8a, srcD8b, srcD12a, srcD12b; __m128i srcQ0a, srcQ0b, srcQ0c, srcQ0d, srcQ8a, srcQ8b, srcQ8c, srcQ8d; __m128i srcDQa, srcDQb, srcDQc, srcDQd, srcDQe, srcDQf, srcDQg, srcDQh; // load 16x 64-bit inputs LOAD_X4( 0, srcD0a , srcD0b, 0) LOAD_X4( 4, srcD4a , srcD4b, 0) LOAD_X4( 8, srcD8a , srcD8b, 0) LOAD_X4(12, srcD12a, srcD12b,0) // interleave bytes in all 8 vectors UNPACK_VECTS; // write extracted bits EXTRACT_BITS(_dst + 0, srcDQa) EXTRACT_BITS(_dst + 8, srcDQb) EXTRACT_BITS(_dst + 16, srcDQc) EXTRACT_BITS(_dst + 24, srcDQd) EXTRACT_BITS(_dst + 32, srcDQe) EXTRACT_BITS(_dst + 40, srcDQf) EXTRACT_BITS(_dst + 48, srcDQg) EXTRACT_BITS(_dst + 56, srcDQh) // load second half LOAD_X4( 0, srcD0a , srcD0b, 1) LOAD_X4( 4, srcD4a , srcD4b, 1) LOAD_X4( 8, srcD8a , srcD8b, 1) LOAD_X4(12, srcD12a, srcD12b,1) UNPACK_VECTS; EXTRACT_BITS(_dst + 64 + 0, srcDQa) EXTRACT_BITS(_dst + 64 + 8, srcDQb) EXTRACT_BITS(_dst + 64 + 16, srcDQc) EXTRACT_BITS(_dst + 64 + 24, srcDQd) EXTRACT_BITS(_dst + 64 + 32, srcDQe) EXTRACT_BITS(_dst + 64 + 40, srcDQf) EXTRACT_BITS(_dst + 64 + 48, srcDQg) EXTRACT_BITS(_dst + 64 + 56, srcDQh) } void gf16_xor_finish_copy_blocku_sse2(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t bytes) { uint16_t block[128]; gf16_xor_finish_copy_block_sse2(block, src); memcpy(dst, block, bytes); } #undef EXTRACT_BITS #undef UNPACK_VECTS #undef LOAD_HALVES #undef LOAD_X4 #endif #define MWORD_SIZE 16 #define _mword __m128i #define _MM(f) _mm_ ## f #define _MMI(f) _mm_ ## f ## _si128 #define _FNSUFFIX _sse2 #define _MM_END #if defined(__SSE2__) # define _AVAILABLE # include "gf16_checksum_x86.h" #endif #include "gf16_xor_common_funcs.h" #undef _AVAILABLE #undef MWORD_SIZE #undef _mword #undef _MM #undef _MMI #undef _FNSUFFIX #undef _MM_END #ifdef __SSE2__ GF_FINISH_PACKED_FUNCS(gf16_xor, _sse2, sizeof(__m128i)*16, gf16_xor_finish_copy_block_sse2, gf16_xor_finish_copy_blocku_sse2, 1, (void)0, gf16_checksum_block_sse2, gf16_checksum_blocku_sse2, gf16_checksum_exp_sse2, &gf16_xor_finish_block_sse2, sizeof(__m128i)) #else GF_FINISH_PACKED_FUNCS_STUB(gf16_xor, _sse2) #endif #include "gf16_bitdep_init_sse2.h" #ifdef PLATFORM_X86 static void xor_write_init_jit(uint8_t *jitCodeNorm, uint8_t *jitCodeInsitu, uint_fast16_t* sizeNorm, uint_fast16_t* sizeInsitu) { uint8_t *jitCodeStart = jitCodeNorm; jitCodeNorm += _jit_add_i(jitCodeNorm, AX, 256); jitCodeNorm += _jit_add_i(jitCodeNorm, DX, 256); # ifdef PLATFORM_AMD64 /* preload upper 13 inputs into registers */ for(int i=3; i<16; i++) { jitCodeNorm += _jit_movaps_load(jitCodeNorm, i, AX, lshift32(i-8, 4)); } # else /* can only fit 5 in 32-bit mode :( */ for(int i=3; i<8; i++) { /* despite appearances, we're actually loading the top 5, not mid 5 */ jitCodeNorm += _jit_movaps_load(jitCodeNorm, i, AX, i<<4); } # endif if(sizeNorm) *sizeNorm = (uint_fast16_t)(jitCodeNorm-jitCodeStart); // in-situ version jitCodeStart = jitCodeInsitu; jitCodeInsitu += _jit_add_i(jitCodeInsitu, DX, 256); # ifdef PLATFORM_AMD64 for(int i=0; i<16; i++) { jitCodeInsitu += _jit_movaps_load(jitCodeInsitu, i, DX, lshift32(i-8, 4)); } for(int i=0; i<3; i++) { jitCodeInsitu += _jit_movaps_store(jitCodeInsitu, AX, lshift32(i-8, 4), i); } # else for(int i=0; i<11; i++) { jitCodeInsitu += _jit_movaps_load(jitCodeInsitu, 0, DX, lshift32(i-8, 4)); jitCodeInsitu += _jit_movaps_store(jitCodeInsitu, AX, lshift32(i-8, 4), 0); } for(int i=3; i<8; i++) { /* despite appearances, we're actually loading the top 5, not mid 5 */ jitCodeInsitu += _jit_movaps_load(jitCodeInsitu, i, DX, i<<4); } # endif if(sizeInsitu) *sizeInsitu = (uint_fast16_t)(jitCodeInsitu-jitCodeStart); } #endif void* gf16_xor_jit_init_sse2(int polynomial, int jitOptStrat) { #ifdef __SSE2__ struct gf16_xor_jit_scratch_sse2* ret; uint8_t tmpCode[XORDEP_JIT_CODE_SIZE]; ALIGN_ALLOC(ret, sizeof(struct gf16_xor_jit_scratch_sse2), 64); // align to 16 required, 64 might better use cachelines gf16_bitdep_init128(ret->s.deps, polynomial, GF16_BITDEP_INIT128_GEN_XORJIT); gf16_xor_create_jit_lut_sse2(ret); ret->s.jitOptStrat = jitOptStrat; xor_write_init_jit(tmpCode, tmpCode, &(ret->s.codeStart), &(ret->s.codeStartInsitu)); return ret; #else UNUSED(polynomial); UNUSED(jitOptStrat); return NULL; #endif } void* gf16_xor_jit_init_mut_sse2() { #ifdef PLATFORM_X86 jit_wx_pair *jitCode = jit_alloc(XORDEP_JIT_SIZE); if(!jitCode) return NULL; xor_write_init_jit(jitCode->w, (uint8_t*)jitCode->w + XORDEP_JIT_SIZE/2, NULL, NULL); return jitCode; #else return NULL; #endif } void gf16_xor_jit_uninit(void* scratch) { #ifdef PLATFORM_X86 jit_free(scratch); #else UNUSED(scratch); #endif } #ifdef PARPAR_INVERT_SUPPORT static HEDLEY_ALWAYS_INLINE uint16_t gf16_xorX_replace_word(void* data, size_t index, uint16_t newValue, size_t width) { uint8_t* base = (uint8_t*)data + (index & ~(width*8-1)) * 2; // advance pointer to correct group base += ((index >> 3) & (width-1)); // advance to correct byte unsigned bitIndex = index&7; uint16_t oldValue = 0; unsigned _newValue = newValue << bitIndex; uint8_t byteMask = 1 << bitIndex; for(int i=0; i<16; i++) { uint8_t byte = base[i*width]; oldValue <<= 1; _newValue <<= 1; oldValue |= (byte >> bitIndex) & 1; base[i*width] = (byte & ~byteMask) | ((_newValue >> 16) & byteMask); } return oldValue; } uint16_t gf16_xor16_replace_word(void* data, size_t index, uint16_t newValue) { return gf16_xorX_replace_word(data, index, newValue, 16); } uint16_t gf16_xor32_replace_word(void* data, size_t index, uint16_t newValue) { return gf16_xorX_replace_word(data, index, newValue, 32); } uint16_t gf16_xor64_replace_word(void* data, size_t index, uint16_t newValue) { return gf16_xorX_replace_word(data, index, newValue, 64); } #endif void* gf16_xor_init_sse2(int polynomial) { #ifdef __SSE2__ struct gf16_xor_tables* ret; ALIGN_ALLOC(ret, sizeof(struct gf16_xor_tables), 16); gf16_bitdep_init128(ret->deps, polynomial, GF16_BITDEP_INIT128_GEN_XOR); for(int i=0; i<256; i++) { uint64_t n=0; int j=8; while(j--) if(i & (1<BitsIndexTable[i] = n; } return ret; #else UNUSED(polynomial); return NULL; #endif } par2cmdline-turbo-1.5.0/parpar/gf16/gf16mul.cpp000066400000000000000000002117511524160147200210740ustar00rootroot00000000000000#include "gf16mul.h" #include "gf16_global.h" #include extern "C" { #include "gf16_lookup.h" #include "gf16_shuffle.h" #include "gf16_clmul.h" #include "gf16_affine.h" #include "gf16_xor.h" #include "gf_add.h" #include "gf16_cksum.h" } // CPUID stuff #include "../src/cpuid.h" #ifdef PLATFORM_X86 # ifdef __APPLE__ # include # include # endif # include "x86_jit.h" struct GF16CpuCap { bool hasSSE2, hasSSSE3, hasAVX, hasAVX2, hasAVX512VLBW, hasAVX512VBMI, hasGFNI, hasBMM; size_t propPrefShuffleThresh; bool propFastJit, propHT; bool canMemWX, isEmulated; int jitOptStrat; GF16CpuCap(bool detect) : hasSSE2(true), hasSSSE3(true), hasAVX(true), hasAVX2(true), hasAVX512VLBW(true), hasAVX512VBMI(true), hasGFNI(true), hasBMM(true), propPrefShuffleThresh(0), propFastJit(false), propHT(false), canMemWX(true), isEmulated(false), jitOptStrat(GF16_XOR_JIT_STRAT_NONE) { if(!detect) return; int cpuInfo[4]; int cpuInfoX[4]; int family, model, hasMulticore; _cpuid(cpuInfo, 1); hasMulticore = (cpuInfo[3] & (1<<28)); hasSSE2 = (cpuInfo[3] & 0x4000000); hasSSSE3 = (cpuInfo[2] & 0x200); family = ((cpuInfo[0]>>8) & 0xf) + ((cpuInfo[0]>>16) & 0xff0); model = ((cpuInfo[0]>>4) & 0xf) + ((cpuInfo[0]>>12) & 0xf0); propPrefShuffleThresh = 32768; // it seems like XOR JIT is always faster than shuffle at 16-32K sizes bool isAtom = false, isICoreOld = false, isICoreNew = false; if(family == 6) { /* from handy table at http://a4lg.com/tech/x86/database/x86-families-and-models.en.html */ if(CPU_MODEL_IS_BNL_SLM(model)) { /* we have a Bonnell/Silvermont CPU with a really slow pshufb instruction; pretend SSSE3 doesn't exist, as XOR_DEPENDS is much faster */ propPrefShuffleThresh = 2048; isAtom = true; } if(model == 0x0F || model == 0x16) { /* Conroe CPU with relatively slow pshufb; pretend SSSE3 doesn't exist, as XOR_DEPENDS is generally faster */ propPrefShuffleThresh = 8192; } if((model == 0x1A || model == 0x1E || model == 0x1F || model == 0x2E) /*Nehalem*/ || (model == 0x25 || model == 0x2C || model == 0x2F) /*Westmere*/ || CPU_MODEL_IS_SNB_CNL(model) ) isICoreOld = true; if((model == 0x7E || model == 0x7D || model == 0x6A || model == 0x6C) // Icelake client/server || (model == 0xA7) // Rocketlake || (model == 0x8C || model == 0x8D) // Tigerlake || (model == 0x8F || model == 0xCF) // Sapphire/Emerald Rapids ) isICoreNew = true; if(model == 0x8A) { // Lakefield isICoreNew = true; isAtom = true; } if(CPU_MODEL_IS_GLM(model) || CPU_MODEL_IS_TMT(model)) isAtom = true; // Gracemont and newer doesn't set isAtom, so Intel hybrid doesn't have any JIT tuning } if(CPU_FAMMDL_IS_AMDCAT(family, model)) { /* Jaguar has a slow shuffle instruction and XOR is much faster; presumably the same for Bobcat/Puma */ propPrefShuffleThresh = 4096; } propFastJit = ( // basically, AMD, prefer 256-bit XorJit over Shuffle family == 0x6f // AMD Bulldozer family || family == 0x7f // AMD Jaguar/Puma family || family == 0x8f // AMD Zen1/2 family || family == 0xaf // AMD Zen3/4 family ); hasAVX = false; hasAVX2 = false; hasAVX512VLBW = false; hasAVX512VBMI = false; hasGFNI = false; hasBMM = false; #if !defined(_MSC_VER) || _MSC_VER >= 1600 _cpuidX(cpuInfoX, 7, 0); if((cpuInfo[2] & 0x1C000000) == 0x1C000000) { // has AVX + OSXSAVE + XSAVE int xcr = _GET_XCR() & 0xff; if((xcr & 6) == 6) { // AVX enabled hasAVX = true; hasAVX2 = cpuInfoX[1] & 0x20; if((xcr & 0xE0) == 0xE0) { // checks AVX512BW + AVX512VL + AVX512F hasAVX512VLBW = ((cpuInfoX[1] & 0xC0010000) == 0xC0010000); hasAVX512VBMI = ((cpuInfoX[2] & 2) == 2 && hasAVX512VLBW); } } } hasGFNI = (cpuInfoX[2] & 0x100) == 0x100; #endif _cpuid(cpuInfo, 0x80000000); if((unsigned)cpuInfo[0] >= 0x80000021) { _cpuid(cpuInfo, 0x80000021); hasBMM = (cpuInfo[1] & 0x800000); } _cpuid(cpuInfo, 0); isEmulated = ( // "Virtual CPU " (Windows on ARM) (cpuInfo[1] == 0x74726956 && cpuInfo[3] == 0x206c6175 && cpuInfo[2] == 0x20555043) // "MicrosoftXTA" || (cpuInfo[1] == 0x7263694d && cpuInfo[3] == 0x666f736f && cpuInfo[2] == 0x41545874) // "VirtualApple" (new Rosetta2) || (cpuInfo[1] == 0x74726956 && cpuInfo[3] == 0x416c6175 && cpuInfo[2] == 0x656c7070) ); #ifdef __APPLE__ if(!isEmulated) { // also check Rosetta: https://developer.apple.com/documentation/apple-silicon/about-the-rosetta-translation-environment#Determine-Whether-Your-App-Is-Running-as-a-Translated-Binary int proc_translated = 0; size_t int_size = sizeof(proc_translated); if(sysctlbyname("sysctl.proc_translated", &proc_translated, &int_size, NULL, 0) == 0) isEmulated = (bool)proc_translated; } #endif #if defined(PLATFORM_AMD64) && (defined(_WINDOWS) || defined(__WINDOWS__) || defined(_WIN32) || defined(_WIN64)) if(!isEmulated) { // Windows 11's x64 emulation on ARM64 may pretend to be an Athlon64 [https://github.com/animetosho/par2cmdline-turbo/issues/3#issuecomment-1555965971] // try to detect by checking the brand name instead union { int i[12]; char s[49]; } brand; _cpuid(brand.i+0, 0x80000002); _cpuid(brand.i+4, 0x80000003); _cpuid(brand.i+8, 0x80000004); brand.s[48] = 0; isEmulated = !!strstr(brand.s, "Virtual CPU"); } #endif /* try to detect hyper-threading */ propHT = false; if(hasMulticore) { /* only Intel CPUs have HT (VMs which obscure CPUID -> too bad); we won't include AMD Zen here */ int cpuInfoModel[4]; _cpuid(cpuInfoModel, 0); if(cpuInfoModel[1] == 0x756E6547 && cpuInfoModel[2] == 0x6C65746E && cpuInfoModel[3] == 0x49656E69 && cpuInfoModel[0] >= 11) { _cpuidX(cpuInfoModel, 11, 0); if(((cpuInfoModel[2] >> 8) & 0xFF) == 1 // SMT level && (cpuInfoModel[1] & 0xFFFF) > 1) // multiple threads per core propHT = true; } } // test for JIT capability jit_wx_pair* jitTest = jit_alloc(256); canMemWX = (jitTest != NULL); if(jitTest) jit_free(jitTest); // optimal JIT strategy if(isICoreOld) jitOptStrat = GF16_XOR_JIT_STRAT_CLR; else if(isAtom || isICoreNew || family == 0x6f /*AMDfam15*/ || family == 0x1f /*K10*/) // difference on Silvermont appears to be minimal (despite difference in other tests) jitOptStrat = GF16_XOR_JIT_STRAT_COPYNT; else if(family == 0x8f /*AMDfam17*/ || family == 0x9f /*Hygon*/ || family == 0xaf /*AMDfam19*/) // despite other tests, clearing seems to work better than copying // GF16_XOR_JIT_STRAT_COPY seems to perform slightly worse than doing nothing, COPYNT is *much* worse, whereas clearing is slightly better jitOptStrat = GF16_XOR_JIT_STRAT_CLR; else // AMDfam16, Core2 or unknown jitOptStrat = GF16_XOR_JIT_STRAT_NONE; } }; #endif #ifdef PLATFORM_ARM struct GF16CpuCap { bool hasNEON; bool hasSHA3; bool hasSVE; bool hasSVE2; GF16CpuCap(bool detect) : hasNEON(true), hasSHA3(true), hasSVE(true), hasSVE2(true) { if(!detect) return; hasNEON = CPU_HAS_NEON; hasSHA3 = CPU_HAS_NEON_SHA3; hasSVE = CPU_HAS_SVE; hasSVE2 = CPU_HAS_SVE2; if(hasSVE) { size_t sz = gf16_sve_get_size(); if(sz & (sz-1)) { // we don't support non-pow2 vector widths hasSVE = false; hasSVE2 = false; } } } }; #endif #ifdef __riscv struct GF16CpuCap { bool hasVector, hasZvbc; GF16CpuCap(bool detect) : hasVector(true), hasZvbc(true) { if(!detect) return; hasVector = CPU_HAS_VECTOR && CPU_HAS_GC; hasZvbc = hasVector && CPU_HAS_Zvbc; } }; #endif Galois16MethodInfo Galois16Mul::info(Galois16Methods _method) { Galois16Methods method = _method == GF16_AUTO ? default_method() : _method; Galois16MethodInfo _info; _info.id = method; _info.idealInputMultiple = 1; _info.prefetchDownscale = 0; _info.alignment = 2; _info.stride = 2; _info.cksumSize = 0; // set to alignment by default switch(method) { case GF16_SHUFFLE_AVX: case GF16_SHUFFLE_SSSE3: _info.alignment = 16; _info.prefetchDownscale = 1; _info.stride = 32; break; case GF16_SHUFFLE_AVX2: _info.alignment = 32; _info.prefetchDownscale = 1; _info.stride = 64; break; case GF16_SHUFFLE_AVX512: _info.alignment = 64; _info.prefetchDownscale = 1; _info.stride = 128; #ifdef PLATFORM_AMD64 // if 32 registers are available, can do multi-region _info.idealInputMultiple = 3; #endif break; case GF16_SHUFFLE_VBMI: #ifdef PLATFORM_AMD64 _info.idealInputMultiple = 4; _info.prefetchDownscale = 1; #endif _info.alignment = 64; _info.stride = 128; break; case GF16_SHUFFLE2X_AVX512: #ifdef PLATFORM_AMD64 _info.idealInputMultiple = 6; #endif _info.alignment = 64; _info.stride = 64; break; case GF16_SHUFFLE2X_AVX2: #ifdef PLATFORM_AMD64 _info.idealInputMultiple = 2; #endif _info.alignment = 32; _info.stride = 32; break; case GF16_SHUFFLE_NEON: _info.alignment = 32; // presumably double-loads work best when aligned to 32 instead of 16? _info.stride = 32; _info.cksumSize = 16; #ifdef __aarch64__ _info.idealInputMultiple = 2; #endif break; case GF16_CLMUL_NEON: case GF16_CLMUL_SHA3: _info.alignment = 32; // presumably double-loads work best when aligned to 32 instead of 16? _info.stride = 32; _info.cksumSize = 16; #ifdef __aarch64__ _info.idealInputMultiple = 8; #else _info.idealInputMultiple = 3; #endif break; case GF16_SHUFFLE_128_SVE: case GF16_SHUFFLE_128_SVE2: _info.alignment = 16; // I guess this is good enough... _info.cksumSize = gf16_sve_get_size(); _info.stride = _info.cksumSize*2; _info.idealInputMultiple = 3; break; case GF16_SHUFFLE2X_128_SVE2: _info.alignment = 32; _info.cksumSize = gf16_sve_get_size(); _info.stride = _info.cksumSize; _info.idealInputMultiple = 6; break; case GF16_SHUFFLE_512_SVE2: _info.alignment = 64; _info.cksumSize = gf16_sve_get_size(); _info.stride = _info.cksumSize*2; _info.idealInputMultiple = 4; break; case GF16_SHUFFLE_128_RVV: _info.alignment = 16; // I guess this is good enough... _info.cksumSize = gf16_rvv_get_size(); _info.stride = _info.cksumSize*2; _info.idealInputMultiple = 3; break; case GF16_CLMUL_RVV: _info.alignment = 16; // I guess this is good enough... _info.cksumSize = gf16_rvv_get_size(); _info.stride = _info.cksumSize; _info.idealInputMultiple = 12; break; case GF16_CLMUL_SVE2: _info.alignment = 16; _info.cksumSize = gf16_sve_get_size(); _info.stride = _info.cksumSize*2; _info.idealInputMultiple = 8; break; case GF16_AFFINE_AVX512: _info.alignment = 64; _info.stride = 128; #ifdef PLATFORM_AMD64 _info.idealInputMultiple = 6; _info.prefetchDownscale = 1; #endif break; case GF16_AFFINE_AVX2: _info.alignment = 32; _info.stride = 64; #ifdef PLATFORM_AMD64 _info.idealInputMultiple = 3; #endif break; case GF16_AFFINE_GFNI: _info.alignment = 16; _info.stride = 32; #ifdef PLATFORM_AMD64 _info.idealInputMultiple = 3; #endif break; case GF16_AFFINE2X_AVX512: _info.alignment = 64; _info.stride = 64; #ifdef PLATFORM_AMD64 _info.idealInputMultiple = 12; #else _info.idealInputMultiple = 2; #endif break; case GF16_AFFINE2X_AVX2: _info.alignment = 32; _info.stride = 32; #ifdef PLATFORM_AMD64 _info.idealInputMultiple = 6; #else _info.idealInputMultiple = 2; #endif break; case GF16_AFFINE2X_GFNI: _info.alignment = 16; _info.stride = 16; #ifdef PLATFORM_AMD64 _info.idealInputMultiple = 6; #else _info.idealInputMultiple = 2; #endif break; case GF16_AFFINE_BMM: _info.alignment = 64; _info.stride = 64; #ifdef PLATFORM_AMD64 _info.idealInputMultiple = 12; #else _info.idealInputMultiple = 6; #endif break; case GF16_XOR_JIT_AVX512: case GF16_XOR_JIT_AVX2: //case GF16_XOR_JIT_AVX: case GF16_XOR_JIT_SSE2: case GF16_XOR_SSE2: { _info.alignment = 16; _info.prefetchDownscale = 1; if(method == GF16_XOR_JIT_AVX2) _info.alignment = 32; if(method == GF16_XOR_JIT_AVX512) { _info.idealInputMultiple = 6; _info.alignment = 64; } _info.stride = _info.alignment*16; } break; case GF16_LOOKUP_SSE2: _info.alignment = 16; _info.stride = 16; break; case GF16_LOOKUP3: _info.stride = gf16_lookup3_stride(); _info.alignment = _info.stride; // assume platform doesn't like misalignment if(_info.stride) break; // else fallthrough case GF16_LOOKUP: default: _info.id = GF16_LOOKUP; _info.stride = gf16_lookup_stride(); _info.alignment = _info.stride; // assume platform doesn't like misalignment break; } _info.name = methodToText(_info.id); if(!_info.cksumSize) _info.cksumSize = _info.alignment; // TODO: improve these? // TODO: this probably needs to be variable depending on the CPU cache size // although these defaults are pretty good across most CPUs switch(method) { case GF16_XOR_JIT_SSE2: // JIT is a little slow, so larger blocks make things faster _info.idealChunkSize = 64*1024; // seems like weaker processors prefer 32K break; case GF16_XOR_JIT_AVX2: // 64-96K generally seems ideal, but this method is most likely used on Zen, which seems to prefer 128-256K _info.idealChunkSize = 128*1024; break; case GF16_XOR_JIT_AVX512: _info.idealChunkSize = 48*1024; // peak on Skylake-X break; case GF16_LOOKUP: case GF16_LOOKUP_SSE2: case GF16_LOOKUP3: case GF16_XOR_SSE2: // these seem to generally perfer larger sizes, particularly XOR // lookup is mostly run on weaker processors, so prefer smaller to avoid overloading cache _info.idealChunkSize = 32*1024; break; case GF16_SHUFFLE_SSSE3: case GF16_SHUFFLE_AVX: case GF16_SHUFFLE_NEON: case GF16_SHUFFLE_128_SVE: // may need smaller chunks for larger vector size case GF16_SHUFFLE_128_SVE2: case GF16_SHUFFLE_128_RVV: _info.idealChunkSize = 16*1024; break; case GF16_SHUFFLE_AVX2: case GF16_SHUFFLE_AVX512: case GF16_SHUFFLE_VBMI: case GF16_SHUFFLE2X_AVX2: case GF16_SHUFFLE2X_AVX512: case GF16_SHUFFLE2X_128_SVE2: case GF16_SHUFFLE_512_SVE2: // try to target L2 _info.idealChunkSize = 8*1024; break; case GF16_AFFINE_AVX2: case GF16_AFFINE2X_AVX2: _info.idealChunkSize = 4*1024; // completely untested break; case GF16_AFFINE_AVX512: case GF16_AFFINE2X_AVX512: case GF16_AFFINE_BMM: _info.idealChunkSize = 4*1024; break; case GF16_CLMUL_NEON: // faster init than Shuffle, and usually faster case GF16_CLMUL_SHA3: case GF16_CLMUL_SVE2: // may want smaller chunk size for wider vectors case GF16_CLMUL_RVV: // ^ case GF16_AFFINE_GFNI: case GF16_AFFINE2X_GFNI: _info.idealChunkSize = 8*1024; break; default: // shouldn't reach here as all options are covered above _info.idealChunkSize = 32*1024; // random generic size that's a rough average of everything } return _info; } void Galois16Mul::setupMethod(Galois16Methods _method) { Galois16Methods method = _method == GF16_AUTO ? default_method() : _method; if(scratch) { ALIGN_FREE(scratch); scratch = NULL; } #define METHOD_REQUIRES(c, cx) if(!(c)) abort(); \ if(!(cx)) { \ setupMethod(_method == GF16_AUTO ? GF16_LOOKUP : GF16_AUTO); \ return; \ } #ifdef PARPAR_INVERT_SUPPORT #define SET_FOR_INVERT(var, fn) var = &fn #else #define SET_FOR_INVERT(var, fn) (void)0 #endif #ifdef PARPAR_INCLUDE_BASIC_OPS #define SET_BASIC_OP(var, fn) var = &fn #else #define SET_BASIC_OP(var, fn) (void)0 #endif #ifdef PARPAR_OPENCL_SUPPORT #define SET_FOR_OPENCL(var, fn) var = &fn #else #define SET_FOR_OPENCL(var, fn) (void)0 #endif switch(method) { case GF16_SHUFFLE_AVX512: case GF16_SHUFFLE_AVX2: case GF16_SHUFFLE_AVX: case GF16_SHUFFLE_SSSE3: scratch = gf16_shuffle_init_x86(GF16_POLYNOMIAL); switch(method) { case GF16_SHUFFLE_SSSE3: METHOD_REQUIRES(gf16_shuffle_available_ssse3, scratch) SET_FOR_INVERT(_mul, gf16_shuffle_mul_ssse3); _mul_add = &gf16_shuffle_muladd_ssse3; _mul_add_pf = &gf16_shuffle_muladd_prefetch_ssse3; SET_BASIC_OP(add_multi, gf_add_multi_sse2); SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v2i1_sse2); add_multi_packpf = &gf_add_multi_packpf_v2i1_sse2; SET_FOR_INVERT(prepare, gf16_shuffle_prepare_ssse3); SET_BASIC_OP(prepare_packed, gf16_shuffle_prepare_packed_ssse3); prepare_packed_cksum = &gf16_shuffle_prepare_packed_cksum_ssse3; prepare_partial_packsum = &gf16_shuffle_prepare_partial_packsum_ssse3; SET_FOR_INVERT(finish, gf16_shuffle_finish_ssse3); SET_BASIC_OP(finish_packed, gf16_shuffle_finish_packed_ssse3); finish_packed_cksum = &gf16_shuffle_finish_packed_cksum_ssse3; finish_partial_packsum = &gf16_shuffle_finish_partial_packsum_ssse3; SET_FOR_OPENCL(copy_cksum, gf16_cksum_copy_sse2); SET_FOR_OPENCL(copy_cksum_check, gf16_cksum_copy_check_sse2); SET_FOR_OPENCL(finish_grp2_cksum, gf16_grp2_finish_sse2); SET_FOR_INVERT(replace_word, gf16_shuffle16_replace_word); break; case GF16_SHUFFLE_AVX: METHOD_REQUIRES(gf16_shuffle_available_avx, scratch) SET_FOR_INVERT(_mul, gf16_shuffle_mul_avx); _mul_add = &gf16_shuffle_muladd_avx; _mul_add_pf = &gf16_shuffle_muladd_prefetch_avx; SET_BASIC_OP(add_multi, gf_add_multi_sse2); SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v2i1_sse2); add_multi_packpf = &gf_add_multi_packpf_v2i1_sse2; SET_FOR_INVERT(prepare, gf16_shuffle_prepare_avx); SET_BASIC_OP(prepare_packed, gf16_shuffle_prepare_packed_avx); prepare_packed_cksum = &gf16_shuffle_prepare_packed_cksum_avx; prepare_partial_packsum = &gf16_shuffle_prepare_partial_packsum_avx; SET_FOR_INVERT(finish, gf16_shuffle_finish_avx); SET_BASIC_OP(finish_packed, gf16_shuffle_finish_packed_avx); finish_packed_cksum = &gf16_shuffle_finish_packed_cksum_avx; finish_partial_packsum = &gf16_shuffle_finish_partial_packsum_avx; SET_FOR_OPENCL(copy_cksum, gf16_cksum_copy_sse2); SET_FOR_OPENCL(copy_cksum_check, gf16_cksum_copy_check_sse2); SET_FOR_OPENCL(finish_grp2_cksum, gf16_grp2_finish_sse2); SET_FOR_INVERT(replace_word, gf16_shuffle16_replace_word); break; case GF16_SHUFFLE_AVX2: METHOD_REQUIRES(gf16_shuffle_available_avx2, scratch) SET_FOR_INVERT(_mul, gf16_shuffle_mul_avx2); _mul_add = &gf16_shuffle_muladd_avx2; _mul_add_pf = &gf16_shuffle_muladd_prefetch_avx2; SET_BASIC_OP(add_multi, gf_add_multi_avx2); SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v2i1_avx2); add_multi_packpf = &gf_add_multi_packpf_v2i1_avx2; SET_FOR_INVERT(prepare, gf16_shuffle_prepare_avx2); SET_BASIC_OP(prepare_packed, gf16_shuffle_prepare_packed_avx2); prepare_packed_cksum = &gf16_shuffle_prepare_packed_cksum_avx2; prepare_partial_packsum = &gf16_shuffle_prepare_partial_packsum_avx2; SET_FOR_INVERT(finish, gf16_shuffle_finish_avx2); SET_BASIC_OP(finish_packed, gf16_shuffle_finish_packed_avx2); finish_packed_cksum = &gf16_shuffle_finish_packed_cksum_avx2; finish_partial_packsum = &gf16_shuffle_finish_partial_packsum_avx2; SET_FOR_OPENCL(copy_cksum, gf16_cksum_copy_avx2); SET_FOR_OPENCL(copy_cksum_check, gf16_cksum_copy_check_avx2); SET_FOR_OPENCL(finish_grp2_cksum, gf16_grp2_finish_avx2); SET_FOR_INVERT(replace_word, gf16_shuffle32_replace_word); break; case GF16_SHUFFLE_AVX512: METHOD_REQUIRES(gf16_shuffle_available_avx512, scratch) SET_FOR_INVERT(_mul, gf16_shuffle_mul_avx512); _mul_add = &gf16_shuffle_muladd_avx512; _mul_add_pf = &gf16_shuffle_muladd_prefetch_avx512; SET_BASIC_OP(add_multi, gf_add_multi_avx512); #ifdef PLATFORM_AMD64 // if 32 registers are available, can do multi-region SET_FOR_INVERT(_mul_add_multi, gf16_shuffle_muladd_multi_avx512); SET_FOR_INVERT(_mul_add_multi_stridepf, gf16_shuffle_muladd_multi_stridepf_avx512); _mul_add_multi_packed = &gf16_shuffle_muladd_multi_packed_avx512; _mul_add_multi_packpf = &gf16_shuffle_muladd_multi_packpf_avx512; SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v2i3_avx512); add_multi_packpf = &gf_add_multi_packpf_v2i3_avx512; #else SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v2i1_avx512); add_multi_packpf = &gf_add_multi_packpf_v2i1_avx512; #endif SET_FOR_INVERT(prepare, gf16_shuffle_prepare_avx512); SET_BASIC_OP(prepare_packed, gf16_shuffle_prepare_packed_avx512); prepare_packed_cksum = &gf16_shuffle_prepare_packed_cksum_avx512; prepare_partial_packsum = &gf16_shuffle_prepare_partial_packsum_avx512; SET_FOR_INVERT(finish, gf16_shuffle_finish_avx512); SET_BASIC_OP(finish_packed, gf16_shuffle_finish_packed_avx512); finish_packed_cksum = &gf16_shuffle_finish_packed_cksum_avx512; finish_partial_packsum = &gf16_shuffle_finish_partial_packsum_avx512; SET_FOR_OPENCL(copy_cksum, gf16_cksum_copy_avx512); SET_FOR_OPENCL(copy_cksum_check, gf16_cksum_copy_check_avx512); SET_FOR_OPENCL(finish_grp2_cksum, gf16_grp2_finish_avx512); SET_FOR_INVERT(replace_word, gf16_shuffle64_replace_word); break; default: break; // for pedantic compilers } break; case GF16_SHUFFLE_VBMI: scratch = gf16_shuffle_init_vbmi(GF16_POLYNOMIAL); METHOD_REQUIRES(gf16_shuffle_available_vbmi, scratch) SET_FOR_INVERT(_mul, gf16_shuffle_mul_vbmi); _mul_add = &gf16_shuffle_muladd_vbmi; _mul_add_pf = &gf16_shuffle_muladd_prefetch_vbmi; SET_BASIC_OP(add_multi, gf_add_multi_avx512); #ifdef PLATFORM_AMD64 SET_FOR_INVERT(_mul_add_multi, gf16_shuffle_muladd_multi_vbmi); SET_FOR_INVERT(_mul_add_multi_stridepf, gf16_shuffle_muladd_multi_stridepf_vbmi); _mul_add_multi_packed = &gf16_shuffle_muladd_multi_packed_vbmi; _mul_add_multi_packpf = &gf16_shuffle_muladd_multi_packpf_vbmi; SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v2i4_avx512); add_multi_packpf = &gf_add_multi_packpf_v2i4_avx512; #else SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v2i1_avx512); add_multi_packpf = &gf_add_multi_packpf_v2i1_avx512; #endif SET_FOR_INVERT(prepare, gf16_shuffle_prepare_avx512); SET_BASIC_OP(prepare_packed, gf16_shuffle_prepare_packed_vbmi); prepare_packed_cksum = &gf16_shuffle_prepare_packed_cksum_vbmi; prepare_partial_packsum = &gf16_shuffle_prepare_partial_packsum_vbmi; SET_FOR_INVERT(finish, gf16_shuffle_finish_avx512); SET_BASIC_OP(finish_packed, gf16_shuffle_finish_packed_avx512); finish_packed_cksum = &gf16_shuffle_finish_packed_cksum_avx512; finish_partial_packsum = &gf16_shuffle_finish_partial_packsum_avx512; SET_FOR_OPENCL(copy_cksum, gf16_cksum_copy_avx512); SET_FOR_OPENCL(copy_cksum_check, gf16_cksum_copy_check_avx512); SET_FOR_OPENCL(finish_grp2_cksum, gf16_grp2_finish_avx512); SET_FOR_INVERT(replace_word, gf16_shuffle64_replace_word); break; case GF16_SHUFFLE2X_AVX512: scratch = gf16_shuffle_init_x86(GF16_POLYNOMIAL); METHOD_REQUIRES(gf16_shuffle_available_avx512, scratch) SET_FOR_INVERT(_mul, gf16_shuffle2x_mul_avx512); _mul_add = &gf16_shuffle2x_muladd_avx512; SET_BASIC_OP(add_multi, gf_add_multi_avx512); #ifdef PLATFORM_AMD64 SET_FOR_INVERT(_mul_add_multi, gf16_shuffle2x_muladd_multi_avx512); SET_FOR_INVERT(_mul_add_multi_stridepf, gf16_shuffle2x_muladd_multi_stridepf_avx512); _mul_add_multi_packed = &gf16_shuffle2x_muladd_multi_packed_avx512; _mul_add_multi_packpf = &gf16_shuffle2x_muladd_multi_packpf_avx512; SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v1i6_avx512); add_multi_packpf = &gf_add_multi_packpf_v1i6_avx512; #else SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v1i1_avx512); add_multi_packpf = &gf_add_multi_packpf_v1i1_avx512; #endif SET_FOR_INVERT(prepare, gf16_shuffle2x_prepare_avx512); SET_BASIC_OP(prepare_packed, gf16_shuffle2x_prepare_packed_avx512); prepare_packed_cksum = &gf16_shuffle2x_prepare_packed_cksum_avx512; prepare_partial_packsum = &gf16_shuffle2x_prepare_partial_packsum_avx512; SET_FOR_INVERT(finish, gf16_shuffle2x_finish_avx512); SET_BASIC_OP(finish_packed, gf16_shuffle2x_finish_packed_avx512); finish_packed_cksum = &gf16_shuffle2x_finish_packed_cksum_avx512; finish_partial_packsum = &gf16_shuffle2x_finish_partial_packsum_avx512; SET_FOR_OPENCL(copy_cksum, gf16_cksum_copy_avx512); SET_FOR_OPENCL(copy_cksum_check, gf16_cksum_copy_check_avx512); SET_FOR_OPENCL(finish_grp2_cksum, gf16_grp2_finish_avx512); SET_FOR_INVERT(replace_word, gf16_shuffle2x32_replace_word); break; case GF16_SHUFFLE2X_AVX2: scratch = gf16_shuffle_init_x86(GF16_POLYNOMIAL); METHOD_REQUIRES(gf16_shuffle_available_avx2, scratch) SET_FOR_INVERT(_mul, gf16_shuffle2x_mul_avx2); _mul_add = &gf16_shuffle2x_muladd_avx2; SET_BASIC_OP(add_multi, gf_add_multi_avx2); #ifdef PLATFORM_AMD64 SET_FOR_INVERT(_mul_add_multi, gf16_shuffle2x_muladd_multi_avx2); SET_FOR_INVERT(_mul_add_multi_stridepf, gf16_shuffle2x_muladd_multi_stridepf_avx2); _mul_add_multi_packed = &gf16_shuffle2x_muladd_multi_packed_avx2; _mul_add_multi_packpf = &gf16_shuffle2x_muladd_multi_packpf_avx2; SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v1i2_avx2); add_multi_packpf = &gf_add_multi_packpf_v1i2_avx2; #else SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v1i1_avx2); add_multi_packpf = &gf_add_multi_packpf_v1i1_avx2; #endif SET_FOR_INVERT(prepare, gf16_shuffle2x_prepare_avx2); SET_BASIC_OP(prepare_packed, gf16_shuffle2x_prepare_packed_avx2); prepare_packed_cksum = &gf16_shuffle2x_prepare_packed_cksum_avx2; prepare_partial_packsum = &gf16_shuffle2x_prepare_partial_packsum_avx2; SET_FOR_INVERT(finish, gf16_shuffle2x_finish_avx2); SET_BASIC_OP(finish_packed, gf16_shuffle2x_finish_packed_avx2); finish_packed_cksum = &gf16_shuffle2x_finish_packed_cksum_avx2; finish_partial_packsum = &gf16_shuffle2x_finish_partial_packsum_avx2; SET_FOR_OPENCL(copy_cksum, gf16_cksum_copy_avx2); SET_FOR_OPENCL(copy_cksum_check, gf16_cksum_copy_check_avx2); SET_FOR_OPENCL(finish_grp2_cksum, gf16_grp2_finish_avx2); SET_FOR_INVERT(replace_word, gf16_shuffle2x16_replace_word); break; case GF16_SHUFFLE_NEON: scratch = gf16_shuffle_init_arm(GF16_POLYNOMIAL); METHOD_REQUIRES(gf16_available_neon, scratch) SET_FOR_INVERT(_mul, gf16_shuffle_mul_neon); _mul_add = &gf16_shuffle_muladd_neon; SET_BASIC_OP(add_multi, gf_add_multi_neon); #ifdef __aarch64__ // enable only if 32 registers available SET_FOR_INVERT(_mul_add_multi, gf16_shuffle_muladd_multi_neon); SET_FOR_INVERT(_mul_add_multi_stridepf, gf16_shuffle_muladd_multi_stridepf_neon); _mul_add_multi_packed = &gf16_shuffle_muladd_multi_packed_neon; // TODO: on Cortex A53, prefetching seems to be slower, so disabled for now //_mul_add_multi_packpf = &gf16_shuffle_muladd_multi_packpf_neon; SET_BASIC_OP(prepare_packed, gf16_shuffle_prepare_packed_neon); #endif SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_shuffle_neon); add_multi_packpf = &gf_add_multi_packpf_shuffle_neon; prepare_packed_cksum = &gf16_shuffle_prepare_packed_cksum_neon; prepare_partial_packsum = &gf16_shuffle_prepare_partial_packsum_neon; SET_BASIC_OP(finish_packed, gf16_shuffle_finish_packed_neon); finish_packed_cksum = &gf16_shuffle_finish_packed_cksum_neon; finish_partial_packsum = &gf16_shuffle_finish_partial_packsum_neon; SET_FOR_OPENCL(copy_cksum, gf16_cksum_copy_neon); SET_FOR_OPENCL(copy_cksum_check, gf16_cksum_copy_check_neon); SET_FOR_OPENCL(finish_grp2_cksum, gf16_grp2_finish_neon); break; case GF16_CLMUL_NEON: { int available = gf16_clmul_init_arm(GF16_POLYNOMIAL); METHOD_REQUIRES(gf16_available_neon && available, 1) // use Shuffle for single region multiplies, because it's faster (NOTE: disabled for slim GF16 build) scratch = gf16_shuffle_init_arm(GF16_POLYNOMIAL); if(scratch) { SET_FOR_INVERT(_mul, gf16_shuffle_mul_neon); _mul_add = &gf16_shuffle_muladd_neon; } else { SET_FOR_INVERT(_mul, gf16_clmul_mul_neon); _mul_add = &gf16_clmul_muladd_neon; } SET_FOR_INVERT(_mul_add_multi, gf16_clmul_muladd_multi_neon); SET_FOR_INVERT(_mul_add_multi_stridepf, gf16_clmul_muladd_multi_stridepf_neon); _mul_add_multi_packed = &gf16_clmul_muladd_multi_packed_neon; SET_BASIC_OP(add_multi, gf_add_multi_neon); SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_clmul_neon); add_multi_packpf = &gf_add_multi_packpf_clmul_neon; // TODO: on Cortex A53, prefetching seems to be slower, so disabled for now //_mul_add_multi_packpf = &gf16_clmul_muladd_multi_packpf_neon; SET_BASIC_OP(prepare_packed, gf16_clmul_prepare_packed_neon); prepare_packed_cksum = &gf16_clmul_prepare_packed_cksum_neon; prepare_partial_packsum = &gf16_clmul_prepare_partial_packsum_neon; SET_BASIC_OP(finish_packed, gf16_shuffle_finish_packed_neon); finish_packed_cksum = &gf16_shuffle_finish_packed_cksum_neon; // re-use shuffle routine finish_partial_packsum = &gf16_shuffle_finish_partial_packsum_neon; SET_FOR_OPENCL(copy_cksum, gf16_cksum_copy_neon); SET_FOR_OPENCL(copy_cksum_check, gf16_cksum_copy_check_neon); SET_FOR_OPENCL(finish_grp2_cksum, gf16_grp2_finish_neon); } break; case GF16_CLMUL_SHA3: { int available = gf16_clmul_init_arm(GF16_POLYNOMIAL); METHOD_REQUIRES(gf16_available_neon_sha3 && available, 1) scratch = gf16_shuffle_init_arm(GF16_POLYNOMIAL); if(scratch) { SET_FOR_INVERT(_mul, gf16_shuffle_mul_neon); _mul_add = &gf16_shuffle_muladd_neon; } else { SET_FOR_INVERT(_mul, gf16_clmul_mul_sha3); _mul_add = &gf16_clmul_muladd_sha3; } SET_FOR_INVERT(_mul_add_multi, gf16_clmul_muladd_multi_sha3); SET_FOR_INVERT(_mul_add_multi_stridepf, gf16_clmul_muladd_multi_stridepf_sha3); _mul_add_multi_packed = &gf16_clmul_muladd_multi_packed_sha3; SET_BASIC_OP(add_multi, gf_add_multi_neon); SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_clmul_neon); add_multi_packpf = &gf_add_multi_packpf_clmul_neon; _mul_add_multi_packpf = &gf16_clmul_muladd_multi_packpf_sha3; SET_BASIC_OP(prepare_packed, gf16_clmul_prepare_packed_neon); prepare_packed_cksum = &gf16_clmul_prepare_packed_cksum_neon; prepare_partial_packsum = &gf16_clmul_prepare_partial_packsum_neon; SET_BASIC_OP(finish_packed, gf16_shuffle_finish_packed_neon); finish_packed_cksum = &gf16_shuffle_finish_packed_cksum_neon; // re-use shuffle routine finish_partial_packsum = &gf16_shuffle_finish_partial_packsum_neon; SET_FOR_OPENCL(copy_cksum, gf16_cksum_copy_neon); SET_FOR_OPENCL(copy_cksum_check, gf16_cksum_copy_check_neon); SET_FOR_OPENCL(finish_grp2_cksum, gf16_grp2_finish_neon); } break; case GF16_SHUFFLE_128_SVE: METHOD_REQUIRES(gf16_available_sve, 1) scratch = gf16_shuffle_init_128_sve(GF16_POLYNOMIAL); SET_FOR_INVERT(_mul, gf16_shuffle_mul_128_sve); _mul_add = &gf16_shuffle_muladd_128_sve; SET_FOR_INVERT(_mul_add_multi, gf16_shuffle_muladd_multi_128_sve); SET_FOR_INVERT(_mul_add_multi_stridepf, gf16_shuffle_muladd_multi_stridepf_128_sve); _mul_add_multi_packed = &gf16_shuffle_muladd_multi_packed_128_sve; //_mul_add_multi_packpf = &gf16_shuffle_muladd_multi_packpf_128_sve; SET_BASIC_OP(add_multi, gf_add_multi_sve); SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_sve); add_multi_packpf = &gf_add_multi_packpf_sve; SET_BASIC_OP(prepare_packed, gf16_shuffle_prepare_packed_sve); prepare_packed_cksum = &gf16_shuffle_prepare_packed_cksum_sve; prepare_partial_packsum = &gf16_shuffle_prepare_partial_packsum_sve; SET_BASIC_OP(finish_packed, gf16_shuffle_finish_packed_sve); finish_packed_cksum = &gf16_shuffle_finish_packed_cksum_sve; finish_partial_packsum = &gf16_shuffle_finish_partial_packsum_sve; SET_FOR_OPENCL(copy_cksum, gf16_cksum_copy_sve); SET_FOR_OPENCL(copy_cksum_check, gf16_cksum_copy_check_sve); SET_FOR_OPENCL(finish_grp2_cksum, gf16_grp2_finish_sve); break; case GF16_SHUFFLE_128_SVE2: METHOD_REQUIRES(gf16_available_sve2, 1) SET_FOR_INVERT(_mul, gf16_shuffle_mul_128_sve2); _mul_add = &gf16_shuffle_muladd_128_sve2; SET_FOR_INVERT(_mul_add_multi, gf16_shuffle_muladd_multi_128_sve2); SET_FOR_INVERT(_mul_add_multi_stridepf, gf16_shuffle_muladd_multi_stridepf_128_sve2); _mul_add_multi_packed = &gf16_shuffle_muladd_multi_packed_128_sve2; //_mul_add_multi_packpf = &gf16_shuffle_muladd_multi_packpf_128_sve2; SET_BASIC_OP(add_multi, gf_add_multi_sve2); SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v2i3_sve2); add_multi_packpf = &gf_add_multi_packpf_v2i3_sve2; SET_BASIC_OP(prepare_packed, gf16_shuffle_prepare_packed_sve); prepare_packed_cksum = &gf16_shuffle_prepare_packed_cksum_sve; prepare_partial_packsum = &gf16_shuffle_prepare_partial_packsum_sve; SET_BASIC_OP(finish_packed, gf16_shuffle_finish_packed_sve); finish_packed_cksum = &gf16_shuffle_finish_packed_cksum_sve; finish_partial_packsum = &gf16_shuffle_finish_partial_packsum_sve; SET_FOR_OPENCL(copy_cksum, gf16_cksum_copy_sve); SET_FOR_OPENCL(copy_cksum_check, gf16_cksum_copy_check_sve); SET_FOR_OPENCL(finish_grp2_cksum, gf16_grp2_finish_sve); break; case GF16_SHUFFLE2X_128_SVE2: METHOD_REQUIRES(gf16_available_sve2, gf16_sve_get_size() >= 32) SET_FOR_INVERT(_mul, gf16_shuffle2x_mul_128_sve2); _mul_add = &gf16_shuffle2x_muladd_128_sve2; SET_FOR_INVERT(_mul_add_multi, gf16_shuffle2x_muladd_multi_128_sve2); SET_FOR_INVERT(_mul_add_multi_stridepf, gf16_shuffle2x_muladd_multi_stridepf_128_sve2); _mul_add_multi_packed = &gf16_shuffle2x_muladd_multi_packed_128_sve2; //_mul_add_multi_packpf = &gf16_shuffle2x_muladd_multi_packpf_128_sve2; SET_BASIC_OP(add_multi, gf_add_multi_sve2); SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v1i6_sve2); add_multi_packpf = &gf_add_multi_packpf_v1i6_sve2; SET_BASIC_OP(prepare_packed, gf16_shuffle2x_prepare_packed_sve); prepare_packed_cksum = &gf16_shuffle2x_prepare_packed_cksum_sve; prepare_partial_packsum = &gf16_shuffle2x_prepare_partial_packsum_sve; SET_BASIC_OP(finish_packed, gf16_shuffle2x_finish_packed_sve); finish_packed_cksum = &gf16_shuffle2x_finish_packed_cksum_sve; finish_partial_packsum = &gf16_shuffle2x_finish_partial_packsum_sve; SET_FOR_OPENCL(copy_cksum, gf16_cksum_copy_sve); SET_FOR_OPENCL(copy_cksum_check, gf16_cksum_copy_check_sve); SET_FOR_OPENCL(finish_grp2_cksum, gf16_grp2_finish_sve); break; case GF16_SHUFFLE_512_SVE2: METHOD_REQUIRES(gf16_available_sve2, gf16_sve_get_size() >= 64) // TODO: this could be made to work on vect-size>=256b using TBL2 scratch = gf16_shuffle_init_512_sve(GF16_POLYNOMIAL); SET_FOR_INVERT(_mul, gf16_shuffle_mul_512_sve2); _mul_add = &gf16_shuffle_muladd_512_sve2; SET_FOR_INVERT(_mul_add_multi, gf16_shuffle_muladd_multi_512_sve2); SET_FOR_INVERT(_mul_add_multi_stridepf, gf16_shuffle_muladd_multi_stridepf_512_sve2); _mul_add_multi_packed = &gf16_shuffle_muladd_multi_packed_512_sve2; //_mul_add_multi_packpf = &gf16_shuffle_muladd_multi_packpf_512_sve2; SET_BASIC_OP(add_multi, gf_add_multi_sve2); SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v2i4_sve2); add_multi_packpf = &gf_add_multi_packpf_v2i4_sve2; SET_BASIC_OP(prepare_packed, gf16_shuffle_prepare_packed_512_sve2); prepare_packed_cksum = &gf16_shuffle_prepare_packed_cksum_512_sve2; prepare_partial_packsum = &gf16_shuffle_prepare_partial_packsum_512_sve2; SET_BASIC_OP(finish_packed, gf16_shuffle_finish_packed_sve); finish_packed_cksum = &gf16_shuffle_finish_packed_cksum_sve; finish_partial_packsum = &gf16_shuffle_finish_partial_packsum_sve; SET_FOR_OPENCL(copy_cksum, gf16_cksum_copy_sve); SET_FOR_OPENCL(copy_cksum_check, gf16_cksum_copy_check_sve); SET_FOR_OPENCL(finish_grp2_cksum, gf16_grp2_finish_sve); break; case GF16_CLMUL_SVE2: METHOD_REQUIRES(gf16_available_sve2, 1) // single region multiplies (_mul/add) use Shuffle-128 instead SET_FOR_INVERT(_mul, gf16_shuffle_mul_128_sve2); _mul_add = &gf16_shuffle_muladd_128_sve2; SET_FOR_INVERT(_mul_add_multi, gf16_clmul_muladd_multi_sve2); SET_FOR_INVERT(_mul_add_multi_stridepf, gf16_clmul_muladd_multi_stridepf_sve2); _mul_add_multi_packed = &gf16_clmul_muladd_multi_packed_sve2; //_mul_add_multi_packpf = &gf16_clmul_muladd_multi_packpf_sve2; SET_BASIC_OP(add_multi, gf_add_multi_sve2); SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v2i8_sve2); add_multi_packpf = &gf_add_multi_packpf_v2i8_sve2; SET_BASIC_OP(prepare_packed, gf16_clmul_prepare_packed_sve2); prepare_packed_cksum = &gf16_clmul_prepare_packed_cksum_sve2; prepare_partial_packsum = &gf16_clmul_prepare_partial_packsum_sve2; SET_BASIC_OP(finish_packed, gf16_shuffle_finish_packed_sve); finish_packed_cksum = &gf16_shuffle_finish_packed_cksum_sve; // reuse shuffle finish_partial_packsum = &gf16_shuffle_finish_partial_packsum_sve; SET_FOR_OPENCL(copy_cksum, gf16_cksum_copy_sve); SET_FOR_OPENCL(copy_cksum_check, gf16_cksum_copy_check_sve); SET_FOR_OPENCL(finish_grp2_cksum, gf16_grp2_finish_sve); break; case GF16_SHUFFLE_128_RVV: scratch = gf16_shuffle_init_128_rvv(GF16_POLYNOMIAL); METHOD_REQUIRES(gf16_available_rvv, 1) SET_FOR_INVERT(_mul, gf16_shuffle_mul_128_rvv); _mul_add = &gf16_shuffle_muladd_128_rvv; SET_FOR_INVERT(_mul_add_multi, gf16_shuffle_muladd_multi_128_rvv); SET_FOR_INVERT(_mul_add_multi_stridepf, gf16_shuffle_muladd_multi_stridepf_128_rvv); _mul_add_multi_packed = &gf16_shuffle_muladd_multi_packed_128_rvv; //_mul_add_multi_packpf = &gf16_shuffle_muladd_multi_packpf_128_rvv; SET_BASIC_OP(add_multi, gf_add_multi_rvv); SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v2i3_rvv); add_multi_packpf = &gf_add_multi_packpf_v2i3_rvv; SET_BASIC_OP(prepare_packed, gf16_shuffle_prepare_packed_rvv); prepare_packed_cksum = &gf16_shuffle_prepare_packed_cksum_rvv; prepare_partial_packsum = &gf16_shuffle_prepare_partial_packsum_rvv; SET_BASIC_OP(finish_packed, gf16_shuffle_finish_packed_rvv); finish_packed_cksum = &gf16_shuffle_finish_packed_cksum_rvv; finish_partial_packsum = &gf16_shuffle_finish_partial_packsum_rvv; SET_FOR_OPENCL(copy_cksum, gf16_cksum_copy_rvv); SET_FOR_OPENCL(copy_cksum_check, gf16_cksum_copy_check_rvv); SET_FOR_OPENCL(finish_grp2_cksum, gf16_grp2_finish_rvv); break; case GF16_CLMUL_RVV: METHOD_REQUIRES(gf16_available_rvv_zvbc, 1) SET_FOR_INVERT(_mul, gf16_clmul_mul_rvv); _mul_add = &gf16_clmul_muladd_rvv; SET_FOR_INVERT(_mul_add_multi, gf16_clmul_muladd_multi_rvv); SET_FOR_INVERT(_mul_add_multi_stridepf, gf16_clmul_muladd_multi_stridepf_rvv); _mul_add_multi_packed = &gf16_clmul_muladd_multi_packed_rvv; //_mul_add_multi_packpf = &gf16_clmul_muladd_multi_packpf_rvv; SET_BASIC_OP(add_multi, gf_add_multi_rvv); SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v1i12_rvv); add_multi_packpf = &gf_add_multi_packpf_v1i12_rvv; SET_BASIC_OP(prepare_packed, gf16_clmul_prepare_packed_rvv); prepare_packed_cksum = &gf16_clmul_prepare_packed_cksum_rvv; prepare_partial_packsum = &gf16_clmul_prepare_partial_packsum_rvv; SET_BASIC_OP(finish_packed, gf16_clmul_finish_packed_rvv); finish_packed_cksum = &gf16_clmul_finish_packed_cksum_rvv; finish_partial_packsum = &gf16_clmul_finish_partial_packsum_rvv; SET_FOR_OPENCL(copy_cksum, gf16_cksum_copy_rvv); SET_FOR_OPENCL(copy_cksum_check, gf16_cksum_copy_check_rvv); SET_FOR_OPENCL(finish_grp2_cksum, gf16_grp2_finish_rvv); break; case GF16_AFFINE_AVX512: scratch = gf16_affine_init_avx2(GF16_POLYNOMIAL); METHOD_REQUIRES(gf16_affine_available_avx512 && gf16_shuffle_available_avx512, 1) SET_FOR_INVERT(_mul, gf16_affine_mul_avx512); _mul_add = &gf16_affine_muladd_avx512; _mul_add_pf = &gf16_affine_muladd_prefetch_avx512; SET_BASIC_OP(add_multi, gf_add_multi_avx512); #ifdef PLATFORM_AMD64 SET_FOR_INVERT(_mul_add_multi, gf16_affine_muladd_multi_avx512); SET_FOR_INVERT(_mul_add_multi_stridepf, gf16_affine_muladd_multi_stridepf_avx512); _mul_add_multi_packed = &gf16_affine_muladd_multi_packed_avx512; _mul_add_multi_packpf = &gf16_affine_muladd_multi_packpf_avx512; SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v2i6_avx512); add_multi_packpf = &gf_add_multi_packpf_v2i6_avx512; #else SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v2i1_avx512); add_multi_packpf = &gf_add_multi_packpf_v2i1_avx512; #endif SET_FOR_INVERT(prepare, gf16_shuffle_prepare_avx512); SET_BASIC_OP(prepare_packed, gf16_affine_prepare_packed_avx512); prepare_packed_cksum = &gf16_affine_prepare_packed_cksum_avx512; prepare_partial_packsum = &gf16_affine_prepare_partial_packsum_avx512; SET_FOR_INVERT(finish, gf16_shuffle_finish_avx512); SET_BASIC_OP(finish_packed, gf16_shuffle_finish_packed_avx512); finish_packed_cksum = &gf16_shuffle_finish_packed_cksum_avx512; finish_partial_packsum = &gf16_shuffle_finish_partial_packsum_avx512; SET_FOR_OPENCL(copy_cksum, gf16_cksum_copy_avx512); SET_FOR_OPENCL(copy_cksum_check, gf16_cksum_copy_check_avx512); SET_FOR_OPENCL(finish_grp2_cksum, gf16_grp2_finish_avx512); SET_FOR_INVERT(replace_word, gf16_shuffle64_replace_word); break; case GF16_AFFINE_AVX2: scratch = gf16_affine_init_avx2(GF16_POLYNOMIAL); METHOD_REQUIRES(gf16_affine_available_avx2 && gf16_shuffle_available_avx2, 1) SET_FOR_INVERT(_mul, gf16_affine_mul_avx2); _mul_add = &gf16_affine_muladd_avx2; _mul_add_pf = &gf16_affine_muladd_prefetch_avx2; SET_BASIC_OP(add_multi, gf_add_multi_avx2); #ifdef PLATFORM_AMD64 SET_FOR_INVERT(_mul_add_multi, gf16_affine_muladd_multi_avx2); SET_FOR_INVERT(_mul_add_multi_stridepf, gf16_affine_muladd_multi_stridepf_avx2); _mul_add_multi_packed = &gf16_affine_muladd_multi_packed_avx2; _mul_add_multi_packpf = &gf16_affine_muladd_multi_packpf_avx2; SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v2i3_avx2); add_multi_packpf = &gf_add_multi_packpf_v2i3_avx2; #else SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v2i1_avx2); add_multi_packpf = &gf_add_multi_packpf_v2i1_avx2; #endif SET_FOR_INVERT(prepare, gf16_shuffle_prepare_avx2); SET_BASIC_OP(prepare_packed, gf16_affine_prepare_packed_avx2); prepare_packed_cksum = &gf16_affine_prepare_packed_cksum_avx2; prepare_partial_packsum = &gf16_affine_prepare_partial_packsum_avx2; SET_FOR_INVERT(finish, gf16_shuffle_finish_avx2); SET_BASIC_OP(finish_packed, gf16_shuffle_finish_packed_avx2); finish_packed_cksum = &gf16_shuffle_finish_packed_cksum_avx2; finish_partial_packsum = &gf16_shuffle_finish_partial_packsum_avx2; SET_FOR_OPENCL(copy_cksum, gf16_cksum_copy_avx2); SET_FOR_OPENCL(copy_cksum_check, gf16_cksum_copy_check_avx2); SET_FOR_OPENCL(finish_grp2_cksum, gf16_grp2_finish_avx2); SET_FOR_INVERT(replace_word, gf16_shuffle32_replace_word); break; case GF16_AFFINE_GFNI: scratch = gf16_affine_init_gfni(GF16_POLYNOMIAL); METHOD_REQUIRES(gf16_affine_available_gfni && gf16_shuffle_available_ssse3, 1) SET_FOR_INVERT(_mul, gf16_affine_mul_gfni); _mul_add = &gf16_affine_muladd_gfni; _mul_add_pf = &gf16_affine_muladd_prefetch_gfni; SET_BASIC_OP(add_multi, gf_add_multi_sse2); #ifdef PLATFORM_AMD64 SET_FOR_INVERT(_mul_add_multi, gf16_affine_muladd_multi_gfni); SET_FOR_INVERT(_mul_add_multi_stridepf, gf16_affine_muladd_multi_stridepf_gfni); _mul_add_multi_packed = &gf16_affine_muladd_multi_packed_gfni; _mul_add_multi_packpf = &gf16_affine_muladd_multi_packpf_gfni; SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v2i3_sse2); add_multi_packpf = &gf_add_multi_packpf_v2i3_sse2; #else SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v2i1_sse2); add_multi_packpf = &gf_add_multi_packpf_v2i1_sse2; #endif SET_FOR_INVERT(prepare, gf16_shuffle_prepare_ssse3); SET_BASIC_OP(prepare_packed, gf16_affine_prepare_packed_gfni); prepare_packed_cksum = &gf16_affine_prepare_packed_cksum_gfni; prepare_partial_packsum = &gf16_affine_prepare_partial_packsum_gfni; SET_FOR_INVERT(finish, gf16_shuffle_finish_ssse3); SET_BASIC_OP(finish_packed, gf16_shuffle_finish_packed_ssse3); finish_packed_cksum = &gf16_shuffle_finish_packed_cksum_ssse3; finish_partial_packsum = &gf16_shuffle_finish_partial_packsum_ssse3; SET_FOR_OPENCL(copy_cksum, gf16_cksum_copy_sse2); SET_FOR_OPENCL(copy_cksum_check, gf16_cksum_copy_check_sse2); SET_FOR_OPENCL(finish_grp2_cksum, gf16_grp2_finish_sse2); SET_FOR_INVERT(replace_word, gf16_shuffle16_replace_word); break; case GF16_AFFINE2X_AVX512: scratch = gf16_affine_init_avx2(GF16_POLYNOMIAL); METHOD_REQUIRES(gf16_affine_available_avx512 && gf16_shuffle_available_avx512, 1) SET_FOR_INVERT(_mul, gf16_affine2x_mul_avx512); _mul_add = &gf16_affine2x_muladd_avx512; SET_FOR_INVERT(_mul_add_multi, gf16_affine2x_muladd_multi_avx512); SET_FOR_INVERT(_mul_add_multi_stridepf, gf16_affine2x_muladd_multi_stridepf_avx512); _mul_add_multi_packed = &gf16_affine2x_muladd_multi_packed_avx512; _mul_add_multi_packpf = &gf16_affine2x_muladd_multi_packpf_avx512; SET_BASIC_OP(add_multi, gf_add_multi_avx512); #ifdef PLATFORM_AMD64 SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v1i12_avx512); add_multi_packpf = &gf_add_multi_packpf_v1i12_avx512; #else SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v1i2_avx512); add_multi_packpf = &gf_add_multi_packpf_v1i2_avx512; #endif SET_FOR_INVERT(prepare, gf16_affine2x_prepare_avx512); SET_BASIC_OP(prepare_packed, gf16_affine2x_prepare_packed_avx512); prepare_packed_cksum = &gf16_affine2x_prepare_packed_cksum_avx512; prepare_partial_packsum = &gf16_affine2x_prepare_partial_packsum_avx512; SET_FOR_INVERT(finish, gf16_affine2x_finish_avx512); SET_BASIC_OP(finish_packed, gf16_affine2x_finish_packed_avx512); finish_packed_cksum = &gf16_affine2x_finish_packed_cksum_avx512; finish_partial_packsum = &gf16_affine2x_finish_partial_packsum_avx512; SET_FOR_OPENCL(copy_cksum, gf16_cksum_copy_avx512); SET_FOR_OPENCL(copy_cksum_check, gf16_cksum_copy_check_avx512); SET_FOR_OPENCL(finish_grp2_cksum, gf16_grp2_finish_avx512); SET_FOR_INVERT(replace_word, gf16_affine2x_replace_word); break; case GF16_AFFINE2X_AVX2: scratch = gf16_affine_init_avx2(GF16_POLYNOMIAL); METHOD_REQUIRES(gf16_affine_available_avx2 && gf16_shuffle_available_avx2, 1) SET_FOR_INVERT(_mul, gf16_affine2x_mul_avx2); _mul_add = &gf16_affine2x_muladd_avx2; SET_FOR_INVERT(_mul_add_multi, gf16_affine2x_muladd_multi_avx2); SET_FOR_INVERT(_mul_add_multi_stridepf, gf16_affine2x_muladd_multi_stridepf_avx2); _mul_add_multi_packed = &gf16_affine2x_muladd_multi_packed_avx2; _mul_add_multi_packpf = &gf16_affine2x_muladd_multi_packpf_avx2; SET_BASIC_OP(add_multi, gf_add_multi_avx2); #ifdef PLATFORM_AMD64 SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v1i6_avx2); add_multi_packpf = &gf_add_multi_packpf_v1i6_avx2; #else SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v1i2_avx2); add_multi_packpf = &gf_add_multi_packpf_v1i2_avx2; #endif SET_FOR_INVERT(prepare, gf16_affine2x_prepare_avx2); SET_BASIC_OP(prepare_packed, gf16_affine2x_prepare_packed_avx2); prepare_packed_cksum = &gf16_affine2x_prepare_packed_cksum_avx2; prepare_partial_packsum = &gf16_affine2x_prepare_partial_packsum_avx2; SET_FOR_INVERT(finish, gf16_affine2x_finish_avx2); SET_BASIC_OP(finish_packed, gf16_affine2x_finish_packed_avx2); finish_packed_cksum = &gf16_affine2x_finish_packed_cksum_avx2; finish_partial_packsum = &gf16_affine2x_finish_partial_packsum_avx2; SET_FOR_OPENCL(copy_cksum, gf16_cksum_copy_avx2); SET_FOR_OPENCL(copy_cksum_check, gf16_cksum_copy_check_avx2); SET_FOR_OPENCL(finish_grp2_cksum, gf16_grp2_finish_avx2); SET_FOR_INVERT(replace_word, gf16_affine2x_replace_word); break; case GF16_AFFINE2X_GFNI: scratch = gf16_affine_init_gfni(GF16_POLYNOMIAL); METHOD_REQUIRES(gf16_affine_available_gfni && gf16_shuffle_available_ssse3, 1) SET_FOR_INVERT(_mul, gf16_affine2x_mul_gfni); _mul_add = &gf16_affine2x_muladd_gfni; SET_FOR_INVERT(_mul_add_multi, gf16_affine2x_muladd_multi_gfni); SET_FOR_INVERT(_mul_add_multi_stridepf, gf16_affine2x_muladd_multi_stridepf_gfni); _mul_add_multi_packed = &gf16_affine2x_muladd_multi_packed_gfni; _mul_add_multi_packpf = &gf16_affine2x_muladd_multi_packpf_gfni; SET_BASIC_OP(add_multi, gf_add_multi_sse2); #ifdef PLATFORM_AMD64 SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v1i6_sse2); add_multi_packpf = &gf_add_multi_packpf_v1i6_sse2; #else SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v1i2_sse2); add_multi_packpf = &gf_add_multi_packpf_v1i2_sse2; #endif SET_FOR_INVERT(prepare, gf16_affine2x_prepare_gfni); SET_BASIC_OP(prepare_packed, gf16_affine2x_prepare_packed_gfni); prepare_packed_cksum = &gf16_affine2x_prepare_packed_cksum_gfni; prepare_partial_packsum = &gf16_affine2x_prepare_partial_packsum_gfni; SET_FOR_INVERT(finish, gf16_affine2x_finish_gfni); SET_BASIC_OP(finish_packed, gf16_affine2x_finish_packed_gfni); finish_packed_cksum = &gf16_affine2x_finish_packed_cksum_gfni; finish_partial_packsum = &gf16_affine2x_finish_partial_packsum_gfni; SET_FOR_OPENCL(copy_cksum, gf16_cksum_copy_sse2); SET_FOR_OPENCL(copy_cksum_check, gf16_cksum_copy_check_sse2); SET_FOR_OPENCL(finish_grp2_cksum, gf16_grp2_finish_sse2); SET_FOR_INVERT(replace_word, gf16_affine2x_replace_word); break; case GF16_AFFINE_BMM: scratch = gf16_affine_init_bmm(GF16_POLYNOMIAL); METHOD_REQUIRES(gf16_affine_available_bmm, 1) SET_FOR_INVERT(_mul, gf16_affine_mul_bmm); _mul_add = &gf16_affine_muladd_bmm; _mul_add_pf = &gf16_affine_muladd_prefetch_bmm; SET_BASIC_OP(add_multi, gf_add_multi_avx512); SET_FOR_INVERT(_mul_add_multi, gf16_affine_muladd_multi_bmm); SET_FOR_INVERT(_mul_add_multi_stridepf, gf16_affine_muladd_multi_stridepf_bmm); _mul_add_multi_packed = &gf16_affine_muladd_multi_packed_bmm; _mul_add_multi_packpf = &gf16_affine_muladd_multi_packpf_bmm; #ifdef PLATFORM_AMD64 SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v1i12_avx512); add_multi_packpf = &gf_add_multi_packpf_v1i12_avx512; #else SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v1i6_avx512); add_multi_packpf = &gf_add_multi_packpf_v1i6_avx512; #endif SET_BASIC_OP(prepare_packed, gf16_affine_prepare_packed_bmm); prepare_packed_cksum = &gf16_affine_prepare_packed_cksum_bmm; prepare_partial_packsum = &gf16_affine_prepare_partial_packsum_bmm; SET_BASIC_OP(finish_packed, gf16_affine_finish_packed_bmm); finish_packed_cksum = &gf16_affine_finish_packed_cksum_bmm; finish_partial_packsum = &gf16_affine_finish_partial_packsum_bmm; SET_FOR_OPENCL(copy_cksum, gf16_cksum_copy_avx512); SET_FOR_OPENCL(copy_cksum_check, gf16_cksum_copy_check_avx512); SET_FOR_OPENCL(finish_grp2_cksum, gf16_grp2_finish_avx512); break; case GF16_XOR_JIT_AVX512: case GF16_XOR_JIT_AVX2: //case GF16_XOR_JIT_AVX: case GF16_XOR_JIT_SSE2: case GF16_XOR_SSE2: { #ifdef PLATFORM_X86 int jitOptStrat = GF16CpuCap(true).jitOptStrat; switch(method) { case GF16_XOR_JIT_SSE2: case GF16_XOR_SSE2: METHOD_REQUIRES(gf16_xor_available_sse2, 1) if(method == GF16_XOR_SSE2) { scratch = gf16_xor_init_sse2(GF16_POLYNOMIAL); SET_FOR_INVERT(_mul, gf16_xor_mul_sse2); _mul_add = &gf16_xor_muladd_sse2; } else { scratch = gf16_xor_jit_init_sse2(GF16_POLYNOMIAL, jitOptStrat); SET_FOR_INVERT(_mul, gf16_xor_jit_mul_sse2); _mul_add = &gf16_xor_jit_muladd_sse2; _mul_add_pf = &gf16_xor_jit_muladd_prefetch_sse2; } SET_BASIC_OP(add_multi, gf_add_multi_sse2); SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v16i1_sse2); add_multi_packpf = &gf_add_multi_packpf_v16i1_sse2; SET_FOR_INVERT(prepare, gf16_xor_prepare_sse2); SET_BASIC_OP(prepare_packed, gf16_xor_prepare_packed_sse2); prepare_packed_cksum = &gf16_xor_prepare_packed_cksum_sse2; prepare_partial_packsum = &gf16_xor_prepare_partial_packsum_sse2; SET_FOR_INVERT(finish, gf16_xor_finish_sse2); SET_BASIC_OP(finish_packed, gf16_xor_finish_packed_sse2); finish_packed_cksum = &gf16_xor_finish_packed_cksum_sse2; finish_partial_packsum = &gf16_xor_finish_partial_packsum_sse2; SET_FOR_OPENCL(copy_cksum, gf16_cksum_copy_sse2); SET_FOR_OPENCL(copy_cksum_check, gf16_cksum_copy_check_sse2); SET_FOR_OPENCL(finish_grp2_cksum, gf16_grp2_finish_sse2); SET_FOR_INVERT(replace_word, gf16_xor16_replace_word); break; /* case GF16_XOR_JIT_AVX: METHOD_REQUIRES(gf16_xor_available_avx, 1) scratch = gf16_xor_jit_init_sse2(GF16_POLYNOMIAL, jitOptStrat); SET_FOR_INVERT(_mul, gf16_xor_jit_mul_avx); _mul_add = &gf16_xor_jit_muladd_avx; _mul_add_pf = &gf16_xor_jit_muladd_prefetch_avx; SET_BASIC_OP(add_multi, gf_add_multi_sse2); SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v16i1_sse2); add_multi_packpf = &gf_add_multi_packpf_v16i1_sse2; SET_FOR_INVERT(prepare, gf16_xor_prepare_avx); SET_BASIC_OP(prepare_packed, gf16_xor_prepare_packed_avx); prepare_packed_cksum = &gf16_xor_prepare_packed_cksum_avx; prepare_partial_packsum = &gf16_xor_prepare_partial_packsum_avx; SET_FOR_INVERT(finish, gf16_xor_finish_avx); SET_BASIC_OP(finish_packed, gf16_xor_finish_packed_avx); finish_packed_cksum = &gf16_xor_finish_packed_cksum_avx; finish_partial_packsum = &gf16_xor_finish_partial_packsum_avx; SET_FOR_OPENCL(copy_cksum, gf16_cksum_copy_sse2); SET_FOR_OPENCL(copy_cksum_check, gf16_cksum_copy_check_sse2); SET_FOR_OPENCL(finish_grp2_cksum, gf16_grp2_finish_sse2); SET_FOR_INVERT(replace_word, gf16_xor16_replace_word); break; */ case GF16_XOR_JIT_AVX2: METHOD_REQUIRES(gf16_xor_available_avx2, 1) #ifdef PLATFORM_AMD64 scratch = gf16_xor_jit_init_avx2(GF16_POLYNOMIAL, jitOptStrat); SET_FOR_INVERT(_mul, gf16_xor_jit_mul_avx2); _mul_add = &gf16_xor_jit_muladd_avx2; _mul_add_pf = &gf16_xor_jit_muladd_prefetch_avx2; SET_BASIC_OP(add_multi, gf_add_multi_avx2); SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v16i1_avx2); add_multi_packpf = &gf_add_multi_packpf_v16i1_avx2; SET_FOR_INVERT(prepare, gf16_xor_prepare_avx2); SET_BASIC_OP(prepare_packed, gf16_xor_prepare_packed_avx2); prepare_packed_cksum = &gf16_xor_prepare_packed_cksum_avx2; prepare_partial_packsum = &gf16_xor_prepare_partial_packsum_avx2; SET_FOR_INVERT(finish, gf16_xor_finish_avx2); SET_BASIC_OP(finish_packed, gf16_xor_finish_packed_avx2); finish_packed_cksum = &gf16_xor_finish_packed_cksum_avx2; finish_partial_packsum = &gf16_xor_finish_partial_packsum_avx2; SET_FOR_OPENCL(copy_cksum, gf16_cksum_copy_avx2); SET_FOR_OPENCL(copy_cksum_check, gf16_cksum_copy_check_avx2); SET_FOR_OPENCL(finish_grp2_cksum, gf16_grp2_finish_avx2); SET_FOR_INVERT(replace_word, gf16_xor32_replace_word); #endif break; case GF16_XOR_JIT_AVX512: #ifdef PLATFORM_AMD64 METHOD_REQUIRES(gf16_xor_available_avx512, 1) scratch = gf16_xor_jit_init_avx512(GF16_POLYNOMIAL, jitOptStrat); SET_FOR_INVERT(_mul, gf16_xor_jit_mul_avx512); _mul_add = &gf16_xor_jit_muladd_avx512; _mul_add_pf = &gf16_xor_jit_muladd_prefetch_avx512; SET_FOR_INVERT(_mul_add_multi, gf16_xor_jit_muladd_multi_avx512); _mul_add_multi_packed = &gf16_xor_jit_muladd_multi_packed_avx512; SET_BASIC_OP(add_multi, gf_add_multi_avx512); SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_v16i6_avx512); add_multi_packpf = &gf_add_multi_packpf_v16i6_avx512; SET_FOR_INVERT(prepare, gf16_xor_prepare_avx512); SET_BASIC_OP(prepare_packed, gf16_xor_prepare_packed_avx512); prepare_packed_cksum = &gf16_xor_prepare_packed_cksum_avx512; prepare_partial_packsum = &gf16_xor_prepare_partial_packsum_avx512; SET_FOR_INVERT(finish, gf16_xor_finish_avx512); SET_BASIC_OP(finish_packed, gf16_xor_finish_packed_avx512); finish_packed_cksum = &gf16_xor_finish_packed_cksum_avx512; finish_partial_packsum = &gf16_xor_finish_partial_packsum_avx512; SET_FOR_OPENCL(copy_cksum, gf16_cksum_copy_avx512); SET_FOR_OPENCL(copy_cksum_check, gf16_cksum_copy_check_avx512); SET_FOR_OPENCL(finish_grp2_cksum, gf16_grp2_finish_avx512); SET_FOR_INVERT(replace_word, gf16_xor64_replace_word); #endif break; default: break; // for pedantic compilers } #else METHOD_REQUIRES(1, 0) #endif } break; case GF16_LOOKUP_SSE2: SET_FOR_INVERT(_mul, gf16_lookup_mul_sse2); _mul_add = &gf16_lookup_muladd_sse2; prepare_packed_cksum = &gf16_lookup_prepare_packed_cksum_sse2; prepare_partial_packsum = &gf16_lookup_prepare_partial_packsum_sse2; SET_BASIC_OP(finish_packed, gf16_lookup_finish_packed_sse2); finish_packed_cksum = &gf16_lookup_finish_packed_cksum_sse2; finish_partial_packsum = &gf16_lookup_finish_partial_packsum_sse2; SET_FOR_OPENCL(copy_cksum, gf16_cksum_copy_sse2); SET_FOR_OPENCL(copy_cksum_check, gf16_cksum_copy_check_sse2); SET_FOR_OPENCL(finish_grp2_cksum, gf16_grp2_finish_sse2); break; #ifndef PARPAR_SLIM_GF16 case GF16_LOOKUP3: SET_FOR_INVERT(_mul, gf16_lookup3_mul); _mul_add = &gf16_lookup3_muladd; _mul_add_multi_packed = &gf16_lookup3_muladd_multi_packed; SET_BASIC_OP(add_multi_packed, gf_add_multi_packed_lookup3); add_multi_packpf = &gf_add_multi_packpf_lookup3; SET_BASIC_OP(prepare_packed, gf16_lookup3_prepare_packed_generic); prepare_packed_cksum = &gf16_lookup3_prepare_packed_cksum_generic; prepare_partial_packsum = &gf16_lookup3_prepare_partial_packsum_generic; SET_BASIC_OP(finish_packed, gf16_lookup_finish_packed_generic); finish_packed_cksum = &gf16_lookup_finish_packed_cksum_generic; finish_partial_packsum = &gf16_lookup_finish_partial_packsum_generic; if(gf16_lookup3_stride()) break; #endif // fallthrough case GF16_LOOKUP: default: SET_FOR_INVERT(_mul, gf16_lookup_mul); _mul_add = &gf16_lookup_muladd; #ifdef PARPAR_POW_SUPPORT _pow_add = &gf16_lookup_powadd; #endif prepare_packed_cksum = &gf16_lookup_prepare_packed_cksum_generic; prepare_partial_packsum = &gf16_lookup_prepare_partial_packsum_generic; SET_BASIC_OP(finish_packed, gf16_lookup_finish_packed_generic); finish_packed_cksum = &gf16_lookup_finish_packed_cksum_generic; finish_partial_packsum = &gf16_lookup_finish_partial_packsum_generic; break; } #undef METHOD_REQUIRES #undef SET_FOR_INVERT #undef SET_BASIC_OP #undef SET_FOR_OPENCL _info = info(method); } Galois16Mul::Galois16Mul(Galois16Methods method) { scratch = NULL; #ifdef PARPAR_INVERT_SUPPORT prepare = &Galois16Mul::_prepare_none; finish = &Galois16Mul::_finish_none; replace_word = &Galois16Mul::_replace_word; #endif _mul_add_pf = NULL; #ifdef PARPAR_INCLUDE_BASIC_OPS prepare_packed = &Galois16Mul::_prepare_packed_none; finish_packed = NULL; add_multi = &gf_add_multi_generic; add_multi_packed = &gf_add_multi_packed_generic; #endif add_multi_packpf = &gf_add_multi_packpf_generic; #ifdef PARPAR_INVERT_SUPPORT _mul_add_multi = NULL; _mul_add_multi_stridepf = NULL; #endif _mul_add_multi_packed = NULL; _mul_add_multi_packpf = NULL; #ifdef PARPAR_OPENCL_SUPPORT copy_cksum = &gf16_cksum_copy_generic; copy_cksum_check = &gf16_cksum_copy_check_generic; finish_grp2_cksum = &gf16_grp2_finish_generic; #endif #ifdef PARPAR_POW_SUPPORT _pow = NULL; _pow_add = NULL; #endif setupMethod(method); } Galois16Mul::~Galois16Mul() { if(scratch) ALIGN_FREE(scratch); } #ifdef __cpp_rvalue_references void Galois16Mul::move(Galois16Mul& other) { scratch = other.scratch; other.scratch = NULL; #ifdef PARPAR_INVERT_SUPPORT prepare = other.prepare; finish = other.finish; replace_word = other.replace_word; #endif #ifdef PARPAR_INCLUDE_BASIC_OPS prepare_packed = other.prepare_packed; finish_packed = other.finish_packed; add_multi = other.add_multi; add_multi_packed = other.add_multi_packed; #endif prepare_packed_cksum = other.prepare_packed_cksum; prepare_partial_packsum = other.prepare_partial_packsum; finish_packed_cksum = other.finish_packed_cksum; finish_partial_packsum = other.finish_partial_packsum; _info = other._info; add_multi_packpf = other.add_multi_packpf; _mul_add = other._mul_add; _mul_add_pf = other._mul_add_pf; #ifdef PARPAR_INVERT_SUPPORT _mul = other._mul; _mul_add_multi = other._mul_add_multi; _mul_add_multi_stridepf = other._mul_add_multi_stridepf; #endif _mul_add_multi_packed = other._mul_add_multi_packed; _mul_add_multi_packpf = other._mul_add_multi_packpf; #ifdef PARPAR_POW_SUPPORT _pow = other._pow; _pow_add = other._pow_add; #endif #ifdef PARPAR_OPENCL_SUPPORT copy_cksum = other.copy_cksum; copy_cksum_check = other.copy_cksum_check; finish_grp2_cksum = other.finish_grp2_cksum; #endif } #endif void* Galois16Mul::mutScratch_alloc() const { switch(_info.id) { case GF16_XOR_JIT_SSE2: return gf16_xor_jit_init_mut_sse2(); case GF16_XOR_JIT_AVX2: return gf16_xor_jit_init_mut_avx2(); case GF16_XOR_JIT_AVX512: return gf16_xor_jit_init_mut_avx512(); break; default: return NULL; } } void Galois16Mul::mutScratch_free(void* mutScratch) const { switch(_info.id) { case GF16_XOR_JIT_SSE2: case GF16_XOR_JIT_AVX2: case GF16_XOR_JIT_AVX512: gf16_xor_jit_uninit(mutScratch); break; default: break; } } Galois16Methods Galois16Mul::default_method(size_t regionSizeHint, unsigned inputs, unsigned /*outputs*/, bool forInvert) { (void)regionSizeHint; (void)inputs; (void)forInvert; #ifdef PLATFORM_X86 const GF16CpuCap caps(true); if(caps.hasGFNI) { if(gf16_affine_available_avx512 && caps.hasAVX512VLBW) return GF16_AFFINE_AVX512; if(gf16_affine_available_avx2 && caps.hasAVX2) return GF16_AFFINE_AVX2; } if(caps.hasAVX512VLBW) { if(gf16_shuffle_available_vbmi && caps.hasAVX512VBMI) return GF16_SHUFFLE_VBMI; if(gf16_shuffle_available_avx512) return GF16_SHUFFLE_AVX512; } if(caps.hasAVX2) { # ifdef PLATFORM_AMD64 if(gf16_xor_available_avx2 && caps.canMemWX && caps.propFastJit && !caps.isEmulated && !forInvert) // TODO: check size hint? return GF16_XOR_JIT_AVX2; # endif if(gf16_shuffle_available_avx2) return GF16_SHUFFLE_AVX2; } if(gf16_affine_available_gfni && caps.hasGFNI && gf16_shuffle_available_ssse3 && caps.hasSSSE3) return GF16_AFFINE_GFNI; // this should beat XOR-JIT; even seems to generally beat Shuffle2x AVX2 if(!caps.isEmulated && regionSizeHint > caps.propPrefShuffleThresh && !forInvert) { // TODO: if only a few recovery slices being made (e.g. 3), prefer shuffle //if(gf16_xor_available_avx && caps.hasAVX && caps.canMemWX) // return GF16_XOR_JIT_AVX; if(gf16_xor_available_sse2 && caps.hasSSE2 && caps.canMemWX) return GF16_XOR_JIT_SSE2; } if(gf16_shuffle_available_avx && caps.hasAVX) return GF16_SHUFFLE_AVX; if(gf16_shuffle_available_ssse3 && caps.hasSSSE3) return GF16_SHUFFLE_SSSE3; if(gf16_xor_available_sse2 && caps.hasSSE2) return GF16_XOR_SSE2; #endif #ifdef PLATFORM_ARM const GF16CpuCap caps(true); if(gf16_available_sve2 && caps.hasSVE2) { // preferred technique seems to vary across cores // Cortex A510: prefers CLMul SHA3, and CLMul over Shuffle // Cortex A710: prefers CLMul NEON > Shuffle SVE2 > CLMul SVE2 > CLMul SHA3 > Shuffle SVE > Shuffle NEON // Cortex X2: prefers Shuffle SVE2 > CLMul SVE2 > CLMul SHA3 > Shuffle NEON > Shuffle SVE > CLMul NEON # ifdef PARPAR_SLIM_GF16 return GF16_CLMUL_SVE2; # else if(gf16_sve_get_size() >= 64) return GF16_SHUFFLE_512_SVE2; return inputs > 3 ? GF16_CLMUL_SVE2 : GF16_SHUFFLE_128_SVE2; # endif } if(gf16_available_sve && caps.hasSVE && gf16_sve_get_size() > 16) return GF16_SHUFFLE_128_SVE; # ifdef __aarch64__ if(gf16_available_neon_sha3 && caps.hasSHA3) # if PARPAR_SLIM_GF16 return GF16_CLMUL_SHA3; # else return inputs > 3 ? GF16_CLMUL_SHA3 : GF16_SHUFFLE_NEON; # endif # endif if(gf16_available_neon && caps.hasNEON) return # if PARPAR_SLIM_GF16 GF16_CLMUL_NEON; # else # ifdef __aarch64__ inputs > 3 # else inputs > 1 # endif ? GF16_CLMUL_NEON : GF16_SHUFFLE_NEON; # endif #endif #ifdef __riscv const GF16CpuCap caps(true); if(caps.hasVector && gf16_available_rvv && gf16_rvv_get_size() >= 16) { if(caps.hasZvbc && gf16_available_rvv_zvbc) return GF16_CLMUL_RVV; return GF16_SHUFFLE_128_RVV; } #endif // lookup vs lookup3: latter seems to be slightly faster than former in most cases (SKX, Silvermont, Zen1, Rpi3 (arm64; arm32 faster muladd, slower mul)), sometimes slightly slower (Haswell, IvB?, Piledriver) // but test w/ multi-region lh-lookup & fat table before preferring it return GF16_LOOKUP; } std::vector Galois16Mul::availableMethods(bool checkCpuid) { UNUSED(checkCpuid); std::vector ret; ret.push_back(GF16_LOOKUP); #if !defined(PARPAR_SLIM_GF16) if(gf16_lookup3_stride()) ret.push_back(GF16_LOOKUP3); #endif #ifdef PLATFORM_X86 const GF16CpuCap caps(checkCpuid); if(gf16_shuffle_available_ssse3 && caps.hasSSSE3) ret.push_back(GF16_SHUFFLE_SSSE3); if(gf16_shuffle_available_avx && caps.hasAVX) ret.push_back(GF16_SHUFFLE_AVX); if(gf16_shuffle_available_avx2 && caps.hasAVX2) { ret.push_back(GF16_SHUFFLE_AVX2); #if !defined(PARPAR_SLIM_GF16) ret.push_back(GF16_SHUFFLE2X_AVX2); #endif } if(gf16_shuffle_available_avx512 && caps.hasAVX512VLBW) { ret.push_back(GF16_SHUFFLE_AVX512); #if !defined(PARPAR_SLIM_GF16) ret.push_back(GF16_SHUFFLE2X_AVX512); #endif } if(gf16_shuffle_available_vbmi && caps.hasAVX512VBMI) { ret.push_back(GF16_SHUFFLE_VBMI); } if(gf16_affine_available_bmm && caps.hasBMM) ret.push_back(GF16_AFFINE_BMM); if(caps.hasGFNI) { if(gf16_affine_available_gfni && gf16_shuffle_available_ssse3 && caps.hasSSSE3) { ret.push_back(GF16_AFFINE_GFNI); #if !defined(PARPAR_SLIM_GF16) ret.push_back(GF16_AFFINE2X_GFNI); #endif } if(gf16_affine_available_avx2 && gf16_shuffle_available_avx2 && caps.hasAVX2) { ret.push_back(GF16_AFFINE_AVX2); #if !defined(PARPAR_SLIM_GF16) ret.push_back(GF16_AFFINE2X_AVX2); #endif } if(gf16_affine_available_avx512 && gf16_shuffle_available_avx512 && caps.hasAVX512VLBW) { ret.push_back(GF16_AFFINE_AVX512); #if !defined(PARPAR_SLIM_GF16) ret.push_back(GF16_AFFINE2X_AVX512); #endif } } if(gf16_xor_available_sse2 && caps.hasSSE2) { ret.push_back(GF16_XOR_SSE2); #if !defined(PARPAR_SLIM_GF16) ret.push_back(GF16_LOOKUP_SSE2); #endif } if(caps.canMemWX) { if(gf16_xor_available_sse2 && caps.hasSSE2) ret.push_back(GF16_XOR_JIT_SSE2); //if(gf16_xor_available_avx && caps.hasAVX) // ret.push_back(GF16_XOR_JIT_AVX); if(gf16_xor_available_avx2 && caps.hasAVX2) ret.push_back(GF16_XOR_JIT_AVX2); if(gf16_xor_available_avx512 && caps.hasAVX512VLBW) ret.push_back(GF16_XOR_JIT_AVX512); } #endif #ifdef PLATFORM_ARM const GF16CpuCap caps(checkCpuid); if(gf16_available_neon && caps.hasNEON) { #if !defined(PARPAR_SLIM_GF16) ret.push_back(GF16_SHUFFLE_NEON); #endif ret.push_back(GF16_CLMUL_NEON); } if(gf16_available_neon_sha3 && caps.hasSHA3) { ret.push_back(GF16_CLMUL_SHA3); } if(gf16_available_sve && caps.hasSVE) ret.push_back(GF16_SHUFFLE_128_SVE); if(gf16_available_sve2 && caps.hasSVE2) { ret.push_back(GF16_CLMUL_SVE2); #if !defined(PARPAR_SLIM_GF16) ret.push_back(GF16_SHUFFLE_128_SVE2); if(gf16_sve_get_size() >= 32) ret.push_back(GF16_SHUFFLE2X_128_SVE2); if(gf16_sve_get_size() >= 64) ret.push_back(GF16_SHUFFLE_512_SVE2); #endif } #endif #ifdef __riscv const GF16CpuCap caps(checkCpuid); if(gf16_available_rvv && caps.hasVector && gf16_rvv_get_size() >= 16) { if(caps.hasZvbc && gf16_available_rvv_zvbc) ret.push_back(GF16_CLMUL_RVV); ret.push_back(GF16_SHUFFLE_128_RVV); } #endif return ret; } #ifdef PARPAR_INCLUDE_BASIC_OPS void Galois16Mul::_prepare_packed_none(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen) { ASSUME(inputNum < inputPackSize); ASSUME(srcLen <= sliceLen); ASSUME(chunkLen <= sliceLen); uint8_t* dstBase = (uint8_t*)dst + inputNum * chunkLen; unsigned fullChunks = (unsigned)(srcLen/chunkLen); size_t chunkStride = chunkLen * inputPackSize; for(unsigned chunk=0; chunk (sliceLen/chunkLen) * chunkLen) { // if this is the last chunk, the length may be shorter lastChunkLen = sliceLen % chunkLen; // this will be block aligned, as both sliceLen and chunkLen must be block aligned if(lastChunkLen == 0) lastChunkLen = chunkLen; // if sliceLen is divisible by chunkLen, the last chunk will be chunkLen } uint8_t* dstPtr = (uint8_t*)dst + chunkStride * fullChunks + lastChunkLen*inputNum; memcpy(dstPtr, (uint8_t*)src + chunkLen*fullChunks, remaining); memset(dstPtr + remaining, 0, lastChunkLen - remaining); if(lastChunkLen != chunkLen) return; // we processed an unevenly sized last chunk = we're done (we may be done otherwise, but the rest of the code below handles that) fullChunks++; } // zero fill remaining full blocks unsigned sliceFullChunks = (unsigned)(sliceLen/chunkLen); for(unsigned chunk=fullChunks; chunk #include "../src/stdint.h" #include "../src/hedley.h" #include #include typedef void(*Galois16MulTransform) (void* dst, const void* src, size_t srcLen); typedef void(*Galois16MulTransformPacked) (void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen); typedef void(*Galois16MulTransformPackedPartial) (void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen, size_t partOffset, size_t partLen); typedef void(*Galois16MulUntransform) (void *HEDLEY_RESTRICT dst, size_t len); typedef void(*Galois16MulUntransformPacked) (void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t sliceLen, unsigned numOutputs, unsigned outputNum, size_t chunkLen); typedef int(*Galois16MulUntransformPackedCksum) (void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t sliceLen, unsigned numOutputs, unsigned outputNum, size_t chunkLen); typedef int(*Galois16MulUntransformPackedCksumPartial) (void *HEDLEY_RESTRICT dst, void *HEDLEY_RESTRICT src, size_t sliceLen, unsigned numOutputs, unsigned outputNum, size_t chunkLen, size_t partOffset, size_t partLen); typedef uint16_t(*Galois16ReplaceWord) (void* data, size_t index, uint16_t newValue); typedef void(*Galois16MulFunc) (const void *HEDLEY_RESTRICT scratch, void* dst, const void* src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch); typedef void(*Galois16MulRstFunc) (const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch); typedef void(*Galois16MulPfFunc) (const void *HEDLEY_RESTRICT scratch, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch, const void *HEDLEY_RESTRICT prefetch); typedef void(*Galois16PowFunc) (const void *HEDLEY_RESTRICT scratch, unsigned outputs, size_t offset, void **HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch); typedef void(*Galois16MulMultiFunc) (const void *HEDLEY_RESTRICT scratch, unsigned regions, size_t offset, void *HEDLEY_RESTRICT dst, const void* const*HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch); typedef void(*Galois16MulStridePfFunc) (const void *HEDLEY_RESTRICT scratch, unsigned regions, size_t srcStride, void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch, const void *HEDLEY_RESTRICT prefetch); typedef void(*Galois16MulPackedFunc) (const void *HEDLEY_RESTRICT scratch, unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch); typedef void(*Galois16MulPackPfFunc) (const void *HEDLEY_RESTRICT scratch, unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch, const void* HEDLEY_RESTRICT prefetchIn, const void* HEDLEY_RESTRICT prefetchOut); typedef void(*Galois16AddFunc) (void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len); typedef void(*Galois16AddMultiFunc) (unsigned regions, size_t offset, void *HEDLEY_RESTRICT dst, const void* const*HEDLEY_RESTRICT src, size_t len); typedef void(*Galois16AddPackedFunc) (unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len); typedef void(*Galois16AddPackPfFunc) (unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const void* HEDLEY_RESTRICT prefetchIn, const void* HEDLEY_RESTRICT prefetchOut); typedef void(*Galois16CopyCksum) (void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen); typedef int(*Galois16CopyCksumCheck) (void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len); typedef int(*Galois16UngrpCksumCheck) (void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, unsigned grp); enum Galois16Methods { // * = excluded if PARPAR_SLIM_GF16 // Apple builds strip out SVE kernels if PARPAR_SLIM_GF16 is defined GF16_AUTO, GF16_LOOKUP, GF16_LOOKUP_SSE2, // * GF16_LOOKUP3, // * GF16_SHUFFLE_NEON, // * GF16_SHUFFLE_128_SVE, GF16_SHUFFLE_128_SVE2, // * GF16_SHUFFLE2X_128_SVE2, // * GF16_SHUFFLE_512_SVE2, // * GF16_SHUFFLE_128_RVV, GF16_SHUFFLE_SSSE3, GF16_SHUFFLE_AVX, GF16_SHUFFLE_AVX2, GF16_SHUFFLE_AVX512, GF16_SHUFFLE_VBMI, GF16_SHUFFLE2X_AVX2, // * GF16_SHUFFLE2X_AVX512, // * GF16_XOR_SSE2, GF16_XOR_JIT_SSE2, GF16_XOR_JIT_AVX2, GF16_XOR_JIT_AVX512, // * GF16_AFFINE_GFNI, GF16_AFFINE_AVX2, GF16_AFFINE_AVX512, GF16_AFFINE2X_GFNI, // * GF16_AFFINE2X_AVX2, // * GF16_AFFINE2X_AVX512, // * GF16_AFFINE_BMM, GF16_CLMUL_NEON, GF16_CLMUL_SHA3, GF16_CLMUL_SVE2, GF16_CLMUL_RVV // TODO: consider non-transforming shuffle/affine }; static const char* Galois16MethodsText[] = { "Auto", "Lookup", "Lookup (SSE2)", "3-part Lookup", "Shuffle (NEON)", "Shuffle-128 (SVE)", "Shuffle-128 (SVE2)", "Shuffle2x-128 (SVE2)", "Shuffle-512 (SVE2)", "Shuffle-128 (RVV)", "Shuffle (SSSE3)", "Shuffle (AVX)", "Shuffle (AVX2)", "Shuffle (AVX512)", "Shuffle (VBMI)", "Shuffle2x (AVX2)", "Shuffle2x (AVX512)", "Xor (SSE2)", "Xor-Jit (SSE2)", "Xor-Jit (AVX2)", "Xor-Jit (AVX512)", "Affine (GFNI)", "Affine (GFNI+AVX2)", "Affine (GFNI+AVX512)", "Affine2x (GFNI)", "Affine2x (GFNI+AVX2)", "Affine2x (GFNI+AVX512)", "Affine (BMM)", "CLMul (NEON)", "CLMul (SHA3)", "CLMul (SVE2)", "CLMul (RVV+Zvbc)" }; typedef struct { Galois16Methods id; const char* name; size_t alignment; size_t stride; size_t idealChunkSize; unsigned idealInputMultiple; unsigned prefetchDownscale; unsigned cksumSize; } Galois16MethodInfo; class Galois16Mul { private: void* scratch; Galois16MethodInfo _info; Galois16MulRstFunc _mul_add; Galois16MulPfFunc _mul_add_pf; #ifdef PARPAR_POW_SUPPORT Galois16PowFunc _pow; Galois16PowFunc _pow_add; #endif #ifdef PARPAR_INVERT_SUPPORT Galois16MulFunc _mul; Galois16MulMultiFunc _mul_add_multi; Galois16MulStridePfFunc _mul_add_multi_stridepf; #endif Galois16MulPackedFunc _mul_add_multi_packed; Galois16MulPackPfFunc _mul_add_multi_packpf; static void _prepare_none(void* dst, const void* src, size_t srcLen) { if(dst != src) memcpy(dst, src, srcLen); } static void _finish_none(void *HEDLEY_RESTRICT, size_t) {} #ifdef PARPAR_INVERT_SUPPORT static void _prepare_packed_none(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t srcLen, size_t sliceLen, unsigned inputPackSize, unsigned inputNum, size_t chunkLen); static uint16_t _replace_word(void* data, size_t index, uint16_t newValue) { uint8_t* p = (uint8_t*)data + index*2; uint16_t oldValue = p[0] | (p[1]<<8); p[0] = newValue & 0xff; p[1] = newValue>>8; return oldValue; } #endif Galois16Methods _method; void setupMethod(Galois16Methods method); // disable copy constructor Galois16Mul(const Galois16Mul&); Galois16Mul& operator=(const Galois16Mul&); #ifdef __cpp_rvalue_references void move(Galois16Mul& other); #endif public: static Galois16Methods default_method(size_t regionSizeHint = 1048576, unsigned inputs = 32768, unsigned outputs = 65535, bool forInvert = false); Galois16Mul(Galois16Methods method = GF16_AUTO); ~Galois16Mul(); #ifdef __cpp_rvalue_references Galois16Mul(Galois16Mul&& other) noexcept { move(other); } Galois16Mul& operator=(Galois16Mul&& other) noexcept { move(other); return *this; } #endif #ifdef PARPAR_INVERT_SUPPORT inline bool needPrepare() const { return prepare != &Galois16Mul::_prepare_none; }; inline bool hasMultiMulAdd() const { return _mul_add_multi != NULL; }; #endif inline bool hasMultiMulAddPacked() const { return _mul_add_multi_packed != NULL; }; #ifdef PARPAR_POW_SUPPORT inline bool hasPowAdd() const { return _pow_add != NULL; }; #endif static std::vector availableMethods(bool checkCpuid); static inline const char* methodToText(Galois16Methods m) { return Galois16MethodsText[(int)m]; } inline const Galois16MethodInfo& info() const { return _info; } static Galois16MethodInfo info(Galois16Methods _method); inline HEDLEY_CONST bool isMultipleOfStride(size_t len) const { return (len & (_info.stride-1)) == 0; } inline HEDLEY_CONST size_t alignToStride(size_t len) const { size_t alignMask = _info.stride-1; return (len + alignMask) & ~alignMask; } #ifdef PARPAR_INVERT_SUPPORT Galois16MulTransform prepare; Galois16MulUntransform finish; Galois16ReplaceWord replace_word; #endif #ifdef PARPAR_INCLUDE_BASIC_OPS Galois16MulTransformPacked prepare_packed; Galois16MulUntransformPacked finish_packed; Galois16AddMultiFunc add_multi; Galois16AddPackedFunc add_multi_packed; #endif Galois16MulTransformPacked prepare_packed_cksum; Galois16MulTransformPackedPartial prepare_partial_packsum; // TODO: consider a nicer interface for this Galois16MulUntransformPackedCksum finish_packed_cksum; Galois16MulUntransformPackedCksumPartial finish_partial_packsum; Galois16AddPackPfFunc add_multi_packpf; #ifdef PARPAR_OPENCL_SUPPORT Galois16CopyCksum copy_cksum; Galois16CopyCksumCheck copy_cksum_check; Galois16UngrpCksumCheck finish_grp2_cksum; #endif HEDLEY_MALLOC void* mutScratch_alloc() const; void mutScratch_free(void* mutScratch) const; #ifdef PARPAR_INVERT_SUPPORT inline void mul(void* dst, const void* src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) const { assert(isMultipleOfStride(len)); assert(len > 0); if(HEDLEY_UNLIKELY(!(coefficient & 0xfffe))) { if(coefficient == 0) memset(dst, 0, len); else if(dst != src) memcpy(dst, src, len); } else _mul(scratch, dst, src, len, coefficient, mutScratch); } inline void mul_add(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) const { assert(isMultipleOfStride(len)); assert(len > 0); if(HEDLEY_UNLIKELY(coefficient == 0)) return; _mul_add(scratch, dst, src, len, coefficient, mutScratch); } inline void mul_add_pf(void *HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch, const void *HEDLEY_RESTRICT prefetch) const { assert(isMultipleOfStride(len)); assert(len > 0); if(HEDLEY_UNLIKELY(coefficient == 0)) return; if(_mul_add_pf) _mul_add_pf(scratch, dst, src, len, coefficient, mutScratch, prefetch); else _mul_add(scratch, dst, src, len, coefficient, mutScratch); } #endif #ifdef PARPAR_POW_SUPPORT inline void pow(unsigned outputs, size_t offset, void **HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) const { assert(isMultipleOfStride(len)); assert(len > 0); assert(outputs > 0); if(HEDLEY_UNLIKELY(!(coefficient & 0xfffe))) { if(coefficient == 0) { for(unsigned output = 0; output < outputs; output++) memset((uint8_t*)dst[output] + offset, 0, len); } else { for(unsigned output = 0; output < outputs; output++) memcpy((uint8_t*)dst[output] + offset, (uint8_t*)src + offset, len); } } else if(_pow) _pow(scratch, outputs, offset, dst, src, len, coefficient, mutScratch); else if(_pow_add) { for(unsigned output = 0; output < outputs; output++) memset((uint8_t*)dst[output] + offset, 0, len); _pow_add(scratch, outputs, offset, dst, src, len, coefficient, mutScratch); } else { void* prev = (uint8_t*)src + offset; for(unsigned output = 0; output < outputs; output++) { void* cur = (uint8_t*)dst[output] + offset; _mul(scratch, cur, prev, len, coefficient, mutScratch); prev = cur; } } } inline void pow_add(unsigned outputs, size_t offset, void **HEDLEY_RESTRICT dst, const void *HEDLEY_RESTRICT src, size_t len, uint16_t coefficient, void *HEDLEY_RESTRICT mutScratch) const { assert(isMultipleOfStride(len)); assert(len > 0); assert(outputs > 0); if(HEDLEY_UNLIKELY(coefficient == 0)) return; _pow_add(scratch, outputs, offset, dst, src, len, coefficient, mutScratch); } #endif #ifdef PARPAR_INVERT_SUPPORT inline void mul_add_multi(unsigned regions, size_t offset, void *HEDLEY_RESTRICT dst, const void* const*HEDLEY_RESTRICT src, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, void *HEDLEY_RESTRICT mutScratch) const { assert(isMultipleOfStride(len)); assert(len > 0); assert(regions > 0); if(_mul_add_multi) _mul_add_multi(scratch, regions, offset, dst, src, len, coefficients, mutScratch); else { for(unsigned region = 0; region 0); assert(srcStride > 0); assert(regions > 0); if(_mul_add_multi_stridepf) { _mul_add_multi_stridepf(scratch, regions, srcStride, dst, src, len, coefficients, mutScratch, prefetch); return; } // assume _mul_add_multi isn't set (exception: XorJit AVX512) // fallback to using single multiplies unsigned region = 0; size_t pfLen = len>>_info.prefetchDownscale; const char* _pf = (const char*)prefetch; for(unsigned outputPfRounds = 1<<_info.prefetchDownscale; region 0); assert(regions > 0); if(_mul_add_multi_packed) _mul_add_multi_packed(scratch, packedRegions, regions, dst, src, len, coefficients, mutScratch); else { for(unsigned region = 0; region 0); assert(regions > 0); // TODO: mul by 1? if(_mul_add_multi_packpf) { _mul_add_multi_packpf(scratch, packedRegions, regions, dst, src, len, coefficients, mutScratch, prefetchIn, prefetchOut); return; } if(_mul_add_multi_packed || !_mul_add_pf) { // implies no support for prefetching mul_add_multi_packed(packedRegions, regions, dst, src, len, coefficients, mutScratch); return; } // do using single multiplies unsigned region = 0; size_t pfLen = len>>_info.prefetchDownscale; // firstly, prefetch output const char* _pf = (const char*)prefetchOut; for(unsigned outputPfRounds = 1<<_info.prefetchDownscale; region= 1600 _cpuidX(cpuInfoX, 7, 0); if((cpuInfo[2] & 0x1C000000) == 0x1C000000) { // has AVX + OSXSAVE + XSAVE int xcr = _GET_XCR() & 0xff; if((xcr & 6) == 6) { // AVX enabled hasAVX2 = cpuInfoX[1] & 0x20; hasVPCLMUL = hasAVX2 && (cpuInfoX[2] & 0x400); } } hasGFNI = (cpuInfoX[2] & 0x100) == 0x100; #endif if(!hasGFNI) gf16pmul_available_vpclgfni = 0; if(!hasVPCLMUL) { gf16pmul_available_vpclmul = 0; gf16pmul_available_vpclgfni = 0; } if(!hasAVX2) gf16pmul_available_avx2 = 0; if(!hasClMul) gf16pmul_available_sse = 0; if(gf16pmul_available_vpclgfni) { gf16pmul = &gf16pmul_vpclgfni; gf16pmul_method = GF16PMUL_VPCLMUL_GFNI; gf16pmul_alignment = 32; gf16pmul_blocklen = 64; } else if(gf16pmul_available_vpclmul) { gf16pmul = &gf16pmul_vpclmul; gf16pmul_method = GF16PMUL_VPCLMUL; gf16pmul_alignment = 32; gf16pmul_blocklen = 32; } else if(gf16pmul_available_avx2) { gf16pmul = &gf16pmul_avx2; gf16pmul_method = GF16PMUL_AVX2; gf16pmul_alignment = 32; gf16pmul_blocklen = 32; } else if(gf16pmul_available_sse) { gf16pmul = &gf16pmul_sse; gf16pmul_method = GF16PMUL_PCLMUL; gf16pmul_alignment = 16; gf16pmul_blocklen = 16; } #endif #ifdef PLATFORM_ARM if(!CPU_HAS_SVE2) gf16pmul_available_sve2 = 0; if(!CPU_HAS_NEON) gf16pmul_available_neon = 0; if(gf16pmul_available_sve2) { gf16pmul = &gf16pmul_sve2; gf16pmul_method = GF16PMUL_SVE2; gf16pmul_alignment = gf16pmul_sve2_width(); gf16pmul_blocklen = gf16pmul_alignment*2; } else if(gf16pmul_available_neon) { gf16pmul = &gf16pmul_neon; gf16pmul_method = GF16PMUL_NEON; gf16pmul_alignment = 16; gf16pmul_blocklen = 32; } #endif #ifdef __riscv if(!CPU_HAS_VECTOR || !CPU_HAS_GC || !CPU_HAS_Zvbc) gf16pmul_available_rvv = 0; if(gf16pmul_available_rvv) { gf16pmul = &gf16pmul_rvv; gf16pmul_method = GF16PMUL_RVV; gf16pmul_alignment = gf16pmul_rvv_width(); gf16pmul_blocklen = gf16pmul_alignment; } #endif } const char* gf16pmul_methodName(Galois16PointMulMethods method) { const char* names[] = { "None", "PCLMUL", "AVX2", "VPCLMUL", "VPCLMUL+GFNI", "NEON", "SVE2", "RVV+Zvbc" }; return names[(int)method]; } par2cmdline-turbo-1.5.0/parpar/gf16/gf16pmul.h000066400000000000000000000022231524160147200207110ustar00rootroot00000000000000#ifndef __GF16PMUL_H__ #define __GF16PMUL_H__ #include "../src/hedley.h" #include enum Galois16PointMulMethods { GF16PMUL_NONE, GF16PMUL_PCLMUL, GF16PMUL_AVX2, GF16PMUL_VPCLMUL, GF16PMUL_VPCLMUL_GFNI, GF16PMUL_NEON, GF16PMUL_SVE2, GF16PMUL_RVV }; // TODO: consider multi-dest typedef void(*Gf16PMulFunc)(void *HEDLEY_RESTRICT dst, const void* src1, const void* src2, size_t len); extern Gf16PMulFunc gf16pmul; extern Galois16PointMulMethods gf16pmul_method; extern size_t gf16pmul_alignment; extern size_t gf16pmul_blocklen; const char* gf16pmul_methodName(Galois16PointMulMethods method); inline const char* gf16pmul_methodName() { return gf16pmul_methodName(gf16pmul_method); } void setup_pmul(); HEDLEY_BEGIN_C_DECLS #define _PMUL_DECL(f) \ void gf16pmul_##f(void *HEDLEY_RESTRICT dst, const void* src1, const void* src2, size_t len); \ extern int gf16pmul_available_##f _PMUL_DECL(sse); _PMUL_DECL(avx2); _PMUL_DECL(vpclmul); _PMUL_DECL(vpclgfni); _PMUL_DECL(neon); _PMUL_DECL(sve2); _PMUL_DECL(rvv); #undef _PMUL_DECL unsigned gf16pmul_sve2_width(); unsigned gf16pmul_rvv_width(); HEDLEY_END_C_DECLS #endif // defined(__GF16PMUL_H__) par2cmdline-turbo-1.5.0/parpar/gf16/gf16pmul_avx2.c000066400000000000000000000004131524160147200216430ustar00rootroot00000000000000#include "../src/platform.h" #define _mword __m256i #define _MM(f) _mm256_ ## f #define _MMI(f) _mm256_ ## f ## _si256 #define MWORD_SIZE 32 #define _FNSUFFIX _avx2 #if defined(__PCLMUL__) && defined(__AVX2__) # define _AVAILABLE 1 #endif #include "gf16pmul_x86.h" par2cmdline-turbo-1.5.0/parpar/gf16/gf16pmul_neon.c000066400000000000000000000036431524160147200217320ustar00rootroot00000000000000#include "gf16_global.h" #ifdef __ARM_NEON # define _AVAILABLE #endif #include "gf16_clmul_neon.h" #ifdef __ARM_NEON # undef _AVAILABLE int gf16pmul_available_neon = 1; void gf16pmul_neon(void *HEDLEY_RESTRICT dst, const void* src1, const void* src2, size_t len) { assert(len % sizeof(uint8x16_t)*2 == 0); const poly8_t* _src1 = (const poly8_t*)src1 + len; const poly8_t* _src2 = (const poly8_t*)src2 + len; uint8_t* _dst = (uint8_t*)dst + len; for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(uint8x16_t)*2) { poly8x16x2_t data1 = vld2q_p8(_src1+ptr); poly8x16x2_t data2 = vld2q_p8(_src2+ptr); poly16x8_t low1 = vmull_p8(vget_low_p8(data1.val[0]), vget_low_p8(data2.val[0])); poly8x16_t dataMid1 = veorq_p8(data1.val[0], data1.val[1]); poly8x16_t dataMid2 = veorq_p8(data2.val[0], data2.val[1]); poly16x8_t mid1 = vmull_p8(vget_low_p8(dataMid1), vget_low_p8(dataMid2)); poly16x8_t high1 = vmull_p8(vget_low_p8(data1.val[1]), vget_low_p8(data2.val[1])); #ifdef __aarch64__ poly16x8_t low2 = pmull_high(data1.val[0], data2.val[0]); poly16x8_t mid2 = pmull_high(dataMid1, dataMid2); poly16x8_t high2 = pmull_high(data1.val[1], data2.val[1]); #else poly16x8_t low2 = vmull_p8(vget_high_p8(data1.val[0]), vget_high_p8(data2.val[0])); poly16x8_t mid2 = vmull_p8(vget_high_p8(dataMid1), vget_high_p8(dataMid2)); poly16x8_t high2 = vmull_p8(vget_high_p8(data1.val[1]), vget_high_p8(data2.val[1])); #endif gf16_clmul_neon_reduction(&low1, &low2, mid1, mid2, &high1, &high2); uint8x16x2_t out; out.val[0] = veorq_u8(vreinterpretq_u8_p16(low1), vreinterpretq_u8_p16(low2)); out.val[1] = veorq_u8(vreinterpretq_u8_p16(high1), vreinterpretq_u8_p16(high2)); vst2q_u8(_dst+ptr, out); } } #else // defined(__ARM_NEON) int gf16pmul_available_neon = 0; void gf16pmul_neon(void *HEDLEY_RESTRICT dst, const void* src1, const void* src2, size_t len) { UNUSED(dst); UNUSED(src1); UNUSED(src2); UNUSED(len); } #endif par2cmdline-turbo-1.5.0/parpar/gf16/gf16pmul_rvv.c000066400000000000000000000046561524160147200216150ustar00rootroot00000000000000#include "gf16_global.h" #include "gf16_clmul_rvv.h" #ifdef RISCV_ZVBC_INTRIN int gf16pmul_available_rvv = 1; void gf16pmul_rvv(void *HEDLEY_RESTRICT dst, const void* src1, const void* src2, size_t len) { size_t vl = RV(vsetvlmax_e8m1)(); assert(len % vl == 0); const uint8_t* _src1 = (const uint8_t*)src1 + len; const uint8_t* _src2 = (const uint8_t*)src2 + len; uint8_t* _dst = (uint8_t*)dst + len; #if defined(__riscv_v_intrinsic) && __riscv_v_intrinsic >= 12000 vbool32_t alt = RV(vreinterpret_b32)(RV(vmv_v_x_u8m1)(0xaa, vl)); #else vuint8m1_t altTmp = RV(vmv_v_x_u8m1)(0xaa, vl); vbool32_t alt = *(vbool32_t*)(&altTmp); #endif // TODO: consider using LMUL=2 for(intptr_t ptr = -(intptr_t)len; ptr; ptr += vl) { vuint32m1_t s1 = RV(vle32_v_u32m1)((const uint32_t*)(_src1+ptr), vl); vuint32m1_t s2 = RV(vle32_v_u32m1)((const uint32_t*)(_src2+ptr), vl); vuint64m1_t tmp1 = RV(vreinterpret_v_u32m1_u64m1)(RV(vand_vx_u32m1)(s1, 0xffff, vl)); vuint64m1_t tmp2 = RV(vreinterpret_v_u32m1_u64m1)(RV(vand_vx_u32m1)(s2, 0xffff, vl)); vuint32m1_t raa = RV(vreinterpret_v_u64m1_u32m1)(RV(vclmul_vv_u64m1)(tmp1, tmp2, vl)); vuint32m1_t rab = RV(vreinterpret_v_u64m1_u32m1)(RV(vclmul_vv_u64m1)(RV(vsrl_vx_u64m1)(tmp1, 32, vl), tmp2, vl)); tmp1 = RV(vreinterpret_v_u32m1_u64m1)(RV(vsrl_vx_u32m1)(s1, 16, vl)); tmp2 = RV(vreinterpret_v_u32m1_u64m1)(RV(vsrl_vx_u32m1)(s2, 16, vl)); vuint32m1_t rba = RV(vreinterpret_v_u64m1_u32m1)(RV(vclmul_vv_u64m1)(tmp1, tmp2, vl)); vuint32m1_t rbb = RV(vreinterpret_v_u64m1_u32m1)(RV(vclmul_vv_u64m1)(RV(vsrl_vx_u64m1)(tmp1, 32, vl), tmp2, vl)); #ifdef __riscv_v_intrinsic vuint64m1_t ra = RV(vreinterpret_v_u32m1_u64m1)(RV(vmerge_vvm_u32m1)(raa, rab, alt, vl)); vuint64m1_t rb = RV(vreinterpret_v_u32m1_u64m1)(RV(vmerge_vvm_u32m1)(rba, rbb, alt, vl)); #else vuint64m1_t ra = RV(vreinterpret_v_u32m1_u64m1)(RV(vmerge_vvm_u32m1)(alt, raa, rab, vl)); vuint64m1_t rb = RV(vreinterpret_v_u32m1_u64m1)(RV(vmerge_vvm_u32m1)(alt, rba, rbb, vl)); #endif vuint16m1_t res = gf16_clmul_rvv_reduction(ra, rb, vl); RV(vse16_v_u16m1)((uint16_t*)(_dst+ptr), res, vl); } } unsigned gf16pmul_rvv_width() { return RV(vsetvlmax_e8m1)(); } #else // defined(RISCV_ZVBC_INTRIN) int gf16pmul_available_rvv = 0; void gf16pmul_rvv(void *HEDLEY_RESTRICT dst, const void* src1, const void* src2, size_t len) { UNUSED(dst); UNUSED(src1); UNUSED(src2); UNUSED(len); } unsigned gf16pmul_rvv_width() { return 1; } #endif par2cmdline-turbo-1.5.0/parpar/gf16/gf16pmul_sse.c000066400000000000000000000004341524160147200215600ustar00rootroot00000000000000#include "../src/platform.h" #define _mword __m128i #define _MM(f) _mm_ ## f #define _MMI(f) _mm_ ## f ## _si128 #define MWORD_SIZE 16 #define _FNSUFFIX _sse #if defined(__PCLMUL__) && defined(__SSSE3__) && defined(__SSE4_1__) # define _AVAILABLE 1 #endif #include "gf16pmul_x86.h" par2cmdline-turbo-1.5.0/parpar/gf16/gf16pmul_sve2.c000066400000000000000000000032661524160147200216530ustar00rootroot00000000000000#include "gf16_global.h" #include "gf16_clmul_sve2.h" #ifdef __ARM_FEATURE_SVE2 int gf16pmul_available_sve2 = 1; void gf16pmul_sve2(void *HEDLEY_RESTRICT dst, const void* src1, const void* src2, size_t len) { assert(len % svcntb()*2 == 0); const uint8_t* _src1 = (const uint8_t*)src1 + len; const uint8_t* _src2 = (const uint8_t*)src2 + len; uint8_t* _dst = (uint8_t*)dst + len; for(intptr_t ptr = -(intptr_t)len; ptr; ptr += svcntb()*2) { svuint8x2_t data1 = svld2_u8(svptrue_b8(), _src1+ptr); svuint8x2_t data2 = svld2_u8(svptrue_b8(), _src2+ptr); svuint8_t low1 = svpmullb_pair_u8(svget2_u8(data1, 0), svget2_u8(data2, 0)); svuint8_t low2 = svpmullt_pair_u8(svget2_u8(data1, 0), svget2_u8(data2, 0)); svuint8_t dataMid1 = NOMASK(sveor_u8, svget2_u8(data1, 0), svget2_u8(data1, 1)); svuint8_t dataMid2 = NOMASK(sveor_u8, svget2_u8(data2, 0), svget2_u8(data2, 1)); svuint8_t mid1 = svpmullb_pair_u8(dataMid1, dataMid2); svuint8_t mid2 = svpmullt_pair_u8(dataMid1, dataMid2); svuint8_t high1 = svpmullb_pair_u8(svget2_u8(data1, 1), svget2_u8(data2, 1)); svuint8_t high2 = svpmullt_pair_u8(svget2_u8(data1, 1), svget2_u8(data2, 1)); gf16_clmul_sve2_reduction(&low1, &low2, mid1, mid2, &high1, &high2); low1 = NOMASK(sveor_u8, low1, low2); high1 = NOMASK(sveor_u8, high1, high2); svst2_u8(svptrue_b8(), _dst+ptr, svcreate2_u8(low1, high1)); } } unsigned gf16pmul_sve2_width() { return svcntb(); } #else // defined(__ARM_FEATURE_SVE2) int gf16pmul_available_sve2 = 0; void gf16pmul_sve2(void *HEDLEY_RESTRICT dst, const void* src1, const void* src2, size_t len) { UNUSED(dst); UNUSED(src1); UNUSED(src2); UNUSED(len); } unsigned gf16pmul_sve2_width() { return 1; } #endif par2cmdline-turbo-1.5.0/parpar/gf16/gf16pmul_vpclgfni.c000066400000000000000000000005241524160147200225760ustar00rootroot00000000000000#include "../src/platform.h" #define _mword __m256i #define _MM(f) _mm256_ ## f #define _MMI(f) _mm256_ ## f ## _si256 #define MWORD_SIZE 32 #define _FNSUFFIX _vpclgfni #define _USE_VPCLMUL 1 #define _USE_GFNI 1 #if defined(__VPCLMULQDQ__) && defined(__GFNI__) && defined(__AVX2__) # define _AVAILABLE 1 #endif #include "gf16pmul_x86.h" par2cmdline-turbo-1.5.0/parpar/gf16/gf16pmul_vpclmul.c000066400000000000000000000004521524160147200224500ustar00rootroot00000000000000#include "../src/platform.h" #define _mword __m256i #define _MM(f) _mm256_ ## f #define _MMI(f) _mm256_ ## f ## _si256 #define MWORD_SIZE 32 #define _FNSUFFIX _vpclmul #define _USE_VPCLMUL 1 #if defined(__VPCLMULQDQ__) && defined(__AVX2__) # define _AVAILABLE 1 #endif #include "gf16pmul_x86.h" par2cmdline-turbo-1.5.0/parpar/gf16/gf16pmul_x86.h000066400000000000000000000222161524160147200214220ustar00rootroot00000000000000#include "gf16_global.h" #if defined(_AVAILABLE) int _FN(gf16pmul_available) = 1; static HEDLEY_ALWAYS_INLINE void _FN(gf16pmul_initmul)(const _mword* src1, const _mword* src2, _mword* prod1, _mword* prod2) { _mword wordMask = _MM(set1_epi32)(0xffff); _mword data1 = _MMI(load)(src1); _mword data2 = _MMI(load)(src2); // do multiply _mword data1Even = _MMI(and)(wordMask, data1); _mword data1Odd = _MMI(andnot)(wordMask, data1); _mword data2Even = _MMI(and)(wordMask, data2); _mword data2Odd = _MMI(andnot)(wordMask, data2); #if MWORD_SIZE == 32 && !defined(_USE_VPCLMUL) __m128i data1EvenA = _mm256_castsi256_si128(data1Even); __m128i data1EvenB = _mm256_extracti128_si256(data1Even, 1); __m128i data1OddA = _mm256_castsi256_si128(data1Odd); __m128i data1OddB = _mm256_extracti128_si256(data1Odd, 1); __m128i data2EvenA = _mm256_castsi256_si128(data2Even); __m128i data2EvenB = _mm256_extracti128_si256(data2Even, 1); __m128i data2OddA = _mm256_castsi256_si128(data2Odd); __m128i data2OddB = _mm256_extracti128_si256(data2Odd, 1); __m128i prod1EvenA = _mm_clmulepi64_si128(data1EvenA, data2EvenA, 0x00); __m128i prod1EvenB = _mm_clmulepi64_si128(data1EvenB, data2EvenB, 0x00); __m128i prod2EvenA = _mm_clmulepi64_si128(data1EvenA, data2EvenA, 0x11); __m128i prod2EvenB = _mm_clmulepi64_si128(data1EvenB, data2EvenB, 0x11); __m128i prod1OddA = _mm_clmulepi64_si128(data1OddA, data2OddA, 0x00); __m128i prod1OddB = _mm_clmulepi64_si128(data1OddB, data2OddB, 0x00); __m128i prod2OddA = _mm_clmulepi64_si128(data1OddA, data2OddA, 0x11); __m128i prod2OddB = _mm_clmulepi64_si128(data1OddB, data2OddB, 0x11); __m128i prod1A = _mm_blend_epi16(prod1EvenA, prod1OddA, 0xCC); __m128i prod1B = _mm_blend_epi16(prod1EvenB, prod1OddB, 0xCC); __m128i prod2A = _mm_blend_epi16(prod2EvenA, prod2OddA, 0xCC); __m128i prod2B = _mm_blend_epi16(prod2EvenB, prod2OddB, 0xCC); *prod1 = _mm256_inserti128_si256(_mm256_castsi128_si256(prod1A), prod1B, 1); *prod2 = _mm256_inserti128_si256(_mm256_castsi128_si256(prod2A), prod2B, 1); #else # if MWORD_SIZE == 16 _mword prod1Even = _mm_clmulepi64_si128(data1Even, data2Even, 0x00); _mword prod2Even = _mm_clmulepi64_si128(data1Even, data2Even, 0x11); _mword prod1Odd = _mm_clmulepi64_si128(data1Odd, data2Odd, 0x00); _mword prod2Odd = _mm_clmulepi64_si128(data1Odd, data2Odd, 0x11); # else _mword prod1Even = _MM(clmulepi64_epi128)(data1Even, data2Even, 0x00); _mword prod2Even = _MM(clmulepi64_epi128)(data1Even, data2Even, 0x11); _mword prod1Odd = _MM(clmulepi64_epi128)(data1Odd, data2Odd, 0x00); _mword prod2Odd = _MM(clmulepi64_epi128)(data1Odd, data2Odd, 0x11); # endif # if MWORD_SIZE >= 64 *prod1 = _MM(mask_blend_epi32)(0xAAAA, prod1Even, prod1Odd); *prod2 = _MM(mask_blend_epi32)(0xAAAA, prod2Even, prod2Odd); # else *prod1 = _MM(blend_epi16)(prod1Even, prod1Odd, 0xCC); *prod2 = _MM(blend_epi16)(prod2Even, prod2Odd, 0xCC); # endif #endif } void _FN(gf16pmul)(void *HEDLEY_RESTRICT dst, const void* src1, const void* src2, size_t len) { assert(len % sizeof(_mword) == 0); const uint8_t* _src1 = (const uint8_t*)src1 + len; const uint8_t* _src2 = (const uint8_t*)src2 + len; uint8_t* _dst = (uint8_t*)dst + len; #if MWORD_SIZE >= 64 _mword shufLoHi = _MM(set4_epi32)(0x0f0e0b0a, 0x07060302, 0x0d0c0908, 0x05040100); #else _mword shufLoHi = _MM(set_epi16)( # if MWORD_SIZE >= 32 0x0f0e, 0x0b0a, 0x0706, 0x0302, 0x0d0c, 0x0908, 0x0504, 0x0100, # endif 0x0f0e, 0x0b0a, 0x0706, 0x0302, 0x0d0c, 0x0908, 0x0504, 0x0100 ); #endif #ifdef _USE_GFNI assert(len % (sizeof(_mword)*2) == 0); # if MWORD_SIZE >= 64 _mword shufBLoHi = _MM(set4_epi32)(0x0f0d0b09, 0x07050301, 0x0e0c0a08, 0x06040200); # else _mword shufBLoHi = _MM(set_epi8)( # if MWORD_SIZE >= 32 15,13,11,9,7,5,3,1,14,12,10,8,6,4,2,0, # endif 15,13,11,9,7,5,3,1,14,12,10,8,6,4,2,0 ); # endif for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(_mword)*2) { _mword prod1, prod2, prod3, prod4; _FN(gf16pmul_initmul)((_mword*)(_src1 + ptr), (_mword*)(_src2 + ptr), &prod1, &prod2); _FN(gf16pmul_initmul)((_mword*)(_src1 + ptr) +1, (_mword*)(_src2 + ptr) +1, &prod3, &prod4); // split low/high _mword tmp1 = _MM(shuffle_epi8)(prod1, shufLoHi); _mword tmp2 = _MM(shuffle_epi8)(prod2, shufLoHi); _mword rem1 = _MM(unpacklo_epi64)(tmp1, tmp2); _mword quot1 = _MM(unpackhi_epi64)(tmp1, tmp2); tmp1 = _MM(shuffle_epi8)(prod3, shufLoHi); tmp2 = _MM(shuffle_epi8)(prod4, shufLoHi); _mword rem2 = _MM(unpacklo_epi64)(tmp1, tmp2); _mword quot2 = _MM(unpackhi_epi64)(tmp1, tmp2); // split quot into bytes tmp1 = _MM(shuffle_epi8)(quot1, shufBLoHi); tmp2 = _MM(shuffle_epi8)(quot2, shufBLoHi); quot1 = _MM(unpacklo_epi64)(tmp1, tmp2); quot2 = _MM(unpackhi_epi64)(tmp1, tmp2); // do reduction #if MWORD_SIZE >= 64 # define SET1_EPI64 _MM(set1_epi64) #else # define SET1_EPI64 _MM(set1_epi64x) #endif tmp2 = _MMI(xor)( _MM(gf2p8affine_epi64_epi8)(quot2, SET1_EPI64(0xbb77eedd0b162c58), 0), _MM(gf2p8affine_epi64_epi8)(quot1, SET1_EPI64(0xa040800011224488), 0) ); tmp1 = _MMI(xor)( _MM(gf2p8affine_epi64_epi8)(quot2, SET1_EPI64(0xb1d3a6fdfbf7eedd), 0), _MM(gf2p8affine_epi64_epi8)(quot1, SET1_EPI64(0x113366ddba74e8d0), 0) ); #undef SET1_EPI64 /* mappings for above affine matrices: (tmp1 = bottom, tmp2 = top) * Mul by 0x1111a * top->top: top ^ top>>4 * top->bot: top ^ top>>4 ^ top<<4 ^ top>>5 ^ top>>7 * bot->bot: bot ^ bot>>4 * Mul by 0x100b * top->top: top ^ top<<1 ^ top<<3 * bot->top: bot>>7 ^ bot>>5 ^ bot<<4 * bot->bot: bot ^ bot<<1 ^ bot<<3 * Together: * top->top: * b = top ^ top<<4 ^ top>>4 ^ top>>5 ^ top>>7 * top ^= top>>4 * top ^= top<<1 ^ top<<3 * top ^= b>>7 ^ b>>5 ^ b<<4 * top->bot: * bot = top ^ top<<4 ^ top>>4 ^ top>>5 ^ top>>7 * bot ^= bot<<1 ^ bot<<3 * bot->top: * b = bot ^ bot>>4 * top = b>>7 ^ b>>5 ^ b<<4 * bot->bot: * bot ^= bot>>4 * bot ^= bot<<1 ^ bot<<3 */ // join together quot1 = _MM(unpacklo_epi8)(tmp1, tmp2); quot2 = _MM(unpackhi_epi8)(tmp1, tmp2); // xor with rem quot1 = _MMI(xor)(quot1, rem1); quot2 = _MMI(xor)(quot2, rem2); _MMI(store)((_mword*)(_dst + ptr), quot1); _MMI(store)((_mword*)(_dst + ptr) + 1, quot2); } #else for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(_mword)) { _mword prod1, prod2; _FN(gf16pmul_initmul)((_mword*)(_src1 + ptr), (_mword*)(_src2 + ptr), &prod1, &prod2); // do reduction /* obvious Barret reduction strategy, using CLMUL instructions const __m128i barretConst = _mm_set_epi32(0, 0x1100b, 0, 0x1111a); __m128i quot1 = _mm_srli_epi32(prod1, 16); __m128i quot2 = _mm_srli_epi32(prod2, 16); __m128i quot11 = _mm_clmulepi64_si128(quot1, barretConst, 0x00); __m128i quot12 = _mm_clmulepi64_si128(quot1, barretConst, 0x01); __m128i quot21 = _mm_clmulepi64_si128(quot2, barretConst, 0x00); __m128i quot22 = _mm_clmulepi64_si128(quot2, barretConst, 0x01); quot1 = _mm_unpacklo_epi64(quot11, quot12); quot2 = _mm_unpacklo_epi64(quot21, quot22); quot1 = _mm_srli_epi32(quot1, 16); quot2 = _mm_srli_epi32(quot2, 16); quot11 = _mm_clmulepi64_si128(quot1, barretConst, 0x10); quot12 = _mm_clmulepi64_si128(quot1, barretConst, 0x11); quot21 = _mm_clmulepi64_si128(quot2, barretConst, 0x10); quot22 = _mm_clmulepi64_si128(quot2, barretConst, 0x11); quot1 = _mm_unpacklo_epi64(quot11, quot12); quot2 = _mm_unpacklo_epi64(quot21, quot22); quot1 = _mm_xor_si128(quot1, prod1); quot2 = _mm_xor_si128(quot2, prod2); __m128i result = _mm_packus_epi32( _mm_and_si128(wordMask, quot1), _mm_and_si128(wordMask, quot2) ); */ // since there aren't that many bits in the Barret constants, doing manual shift+xor is more efficient // split low/high 16-bit parts _mword tmp1 = _MM(shuffle_epi8)(prod1, shufLoHi); _mword tmp2 = _MM(shuffle_epi8)(prod2, shufLoHi); _mword rem = _MM(unpacklo_epi64)(tmp1, tmp2); _mword quot = _MM(unpackhi_epi64)(tmp1, tmp2); # ifdef _USE_BMM _mword result = _MM(bmacxor16x16x16)(rem, quot, _MM(set_epi16)( # if MWORD_SIZE >= 64 0x0dff, 0x8efa, 0x477d, 0xabbb, 0xddd8, 0x6eec, 0x3776, 0x1bbb, 0x85d8, 0x42ec, 0x2176, 0x10bb, 0x8058, 0x402c, 0x2016, 0x100b, # endif 0x0dff, 0x8efa, 0x477d, 0xabbb, 0xddd8, 0x6eec, 0x3776, 0x1bbb, 0x85d8, 0x42ec, 0x2176, 0x10bb, 0x8058, 0x402c, 0x2016, 0x100b )); # else // multiply by 0x1111a (or rather, 0x11118, since the '2' bit doesn't matter due to the product being at most 31 bits) and retain high half tmp1 = _MMI(xor)(quot, _MM(srli_epi16)(quot, 4)); tmp1 = _MMI(xor)(tmp1, _MM(srli_epi16)(tmp1, 8)); quot = _MMI(xor)(tmp1, _MM(srli_epi16)(quot, 13)); // multiply by 0x100b, retain low half tmp1 = _MMI(xor)(quot, _MM(slli_epi16)(quot, 3)); tmp1 = _MMI(xor)(tmp1, _MM(add_epi16)(quot, quot)); quot = _MMI(xor)(tmp1, _MM(slli_epi16)(quot, 12)); _mword result = _MMI(xor)(quot, rem); # endif _MMI(store)((_mword*)(_dst + ptr), result); } #endif #if MWORD_SIZE >= 32 _mm256_zeroupper(); #endif } #else int _FN(gf16pmul_available) = 0; void _FN(gf16pmul)(void *HEDLEY_RESTRICT dst, const void* src1, const void* src2, size_t len) { UNUSED(dst); UNUSED(src1); UNUSED(src2); UNUSED(len); } #endif par2cmdline-turbo-1.5.0/parpar/gf16/gf_add.h000066400000000000000000000046221524160147200204610ustar00rootroot00000000000000 #include "../src/hedley.h" #ifdef PARPAR_INCLUDE_BASIC_OPS void gf_add_multi_generic(unsigned regions, size_t offset, void *HEDLEY_RESTRICT dst, const void* const*HEDLEY_RESTRICT src, size_t len); void gf_add_multi_sse2(unsigned regions, size_t offset, void *HEDLEY_RESTRICT dst, const void* const*HEDLEY_RESTRICT src, size_t len); void gf_add_multi_avx2(unsigned regions, size_t offset, void *HEDLEY_RESTRICT dst, const void* const*HEDLEY_RESTRICT src, size_t len); void gf_add_multi_avx512(unsigned regions, size_t offset, void *HEDLEY_RESTRICT dst, const void* const*HEDLEY_RESTRICT src, size_t len); void gf_add_multi_neon(unsigned regions, size_t offset, void *HEDLEY_RESTRICT dst, const void* const*HEDLEY_RESTRICT src, size_t len); void gf_add_multi_sve(unsigned regions, size_t offset, void *HEDLEY_RESTRICT dst, const void* const*HEDLEY_RESTRICT src, size_t len); void gf_add_multi_sve2(unsigned regions, size_t offset, void *HEDLEY_RESTRICT dst, const void* const*HEDLEY_RESTRICT src, size_t len); void gf_add_multi_rvv(unsigned regions, size_t offset, void *HEDLEY_RESTRICT dst, const void* const*HEDLEY_RESTRICT src, size_t len); #endif #ifdef PARPAR_INCLUDE_BASIC_OPS #define FUNCS(f) \ void gf_add_multi_packed_##f(unsigned packRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len); \ void gf_add_multi_packpf_##f(unsigned packRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const void* HEDLEY_RESTRICT prefetchIn, const void* HEDLEY_RESTRICT prefetchOut) #else #define FUNCS(f) \ void gf_add_multi_packpf_##f(unsigned packRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const void* HEDLEY_RESTRICT prefetchIn, const void* HEDLEY_RESTRICT prefetchOut) #endif #ifdef PLATFORM_AMD64 FUNCS(v1i6_sse2); FUNCS(v2i3_sse2); FUNCS(v1i6_avx2); FUNCS(v16i1_avx2); FUNCS(v1i12_avx512); FUNCS(v2i3_avx512); FUNCS(v2i4_avx512); FUNCS(v2i6_avx512); FUNCS(v16i6_avx512); #else FUNCS(v1i2_sse2); FUNCS(v1i1_avx2); FUNCS(v1i1_avx512); FUNCS(v1i2_avx512); FUNCS(v2i1_avx512); #endif FUNCS(v2i1_sse2); FUNCS(v16i1_sse2); FUNCS(v1i2_avx2); FUNCS(v2i1_avx2); FUNCS(v2i3_avx2); FUNCS(v1i6_avx512); FUNCS(shuffle_neon); FUNCS(clmul_neon); FUNCS(sve); FUNCS(v1i6_sve2); FUNCS(v2i3_sve2); FUNCS(v2i4_sve2); FUNCS(v2i8_sve2); FUNCS(v2i3_rvv); FUNCS(v1i12_rvv); FUNCS(generic); FUNCS(lookup3); #undef FUNCS par2cmdline-turbo-1.5.0/parpar/gf16/gf_add_avx2.c000066400000000000000000000045011524160147200214100ustar00rootroot00000000000000#include "gf16_global.h" #include "../src/platform.h" #include "gf_add_common.h" #define _mword __m256i #define _MM(f) _mm256_ ## f #define _MMI(f) _mm256_ ## f ## _si256 #define _FNSUFFIX _avx2 #ifdef __AVX2__ # define _AVAILABLE #endif #include "gf_add_x86.h" #ifdef _AVAILABLE # undef _AVAILABLE #endif #undef _FNSUFFIX #undef _MMI #undef _MM #undef _mword #ifdef PARPAR_INCLUDE_BASIC_OPS void gf_add_multi_avx2(unsigned regions, size_t offset, void *HEDLEY_RESTRICT dst, const void* const*HEDLEY_RESTRICT src, size_t len) { #ifdef __AVX2__ gf16_muladd_multi((void*)1, &gf_add_x_avx2, 6, regions, offset, dst, src, len, NULL); _mm256_zeroupper(); #else UNUSED(regions); UNUSED(offset); UNUSED(dst); UNUSED(src); UNUSED(len); #endif } #endif #ifdef __AVX2__ # ifdef PARPAR_INCLUDE_BASIC_OPS # define PACKED_FUNC(vs, il, it) \ void gf_add_multi_packed_v##vs##i##il##_avx2(unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len) { \ gf16_muladd_multi_packed((void*)vs, &gf_add_x_avx2, il, it, packedRegions, regions, dst, src, len, sizeof(__m256i)*vs, NULL); \ _mm256_zeroupper(); \ } \ void gf_add_multi_packpf_v##vs##i##il##_avx2(unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const void* HEDLEY_RESTRICT prefetchIn, const void* HEDLEY_RESTRICT prefetchOut) { \ gf16_muladd_multi_packpf((void*)vs, &gf_add_x_avx2, il, it, packedRegions, regions, dst, src, len, sizeof(__m256i)*vs, NULL, vs>1, prefetchIn, prefetchOut); \ _mm256_zeroupper(); \ } # else # define PACKED_FUNC(vs, il, it) \ void gf_add_multi_packpf_v##vs##i##il##_avx2(unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const void* HEDLEY_RESTRICT prefetchIn, const void* HEDLEY_RESTRICT prefetchOut) { \ gf16_muladd_multi_packpf((void*)vs, &gf_add_x_avx2, il, it, packedRegions, regions, dst, src, len, sizeof(__m256i)*vs, NULL, vs>1, prefetchIn, prefetchOut); \ _mm256_zeroupper(); \ } # endif #else # define PACKED_FUNC(vs, il, it) PACKED_STUB(avx2, vs, il, it) #endif PACKED_FUNC_NOTSLIM(avx2, 1, 2, 8) #ifdef PLATFORM_AMD64 PACKED_FUNC_NOTSLIM(avx2, 1, 6, 18) PACKED_FUNC(16, 1, 6) #else PACKED_FUNC_NOTSLIM(avx2, 1, 1, 6) #endif PACKED_FUNC(2, 1, 6) PACKED_FUNC(2, 3, 12) #undef PACKED_FUNC par2cmdline-turbo-1.5.0/parpar/gf16/gf_add_avx512.c000066400000000000000000000047771524160147200215750ustar00rootroot00000000000000#include "gf16_global.h" #include "../src/platform.h" #include "gf_add_common.h" #define _mword __m512i #define _MM(f) _mm512_ ## f #define _MMI(f) _mm512_ ## f ## _si512 #define _FNSUFFIX _avx512 #ifdef __AVX512F__ # define _AVAILABLE #endif #define _ADD_USE_TERNLOG #include "gf_add_x86.h" #undef _ADD_USE_TERNLOG #ifdef _AVAILABLE # undef _AVAILABLE #endif #undef _FNSUFFIX #undef _MMI #undef _MM #undef _mword #ifdef PARPAR_INCLUDE_BASIC_OPS void gf_add_multi_avx512(unsigned regions, size_t offset, void *HEDLEY_RESTRICT dst, const void* const*HEDLEY_RESTRICT src, size_t len) { #ifdef __AVX512F__ gf16_muladd_multi((void*)1, &gf_add_x_avx512, 6, regions, offset, dst, src, len, NULL); _mm256_zeroupper(); #else UNUSED(regions); UNUSED(offset); UNUSED(dst); UNUSED(src); UNUSED(len); #endif } #endif #ifdef __AVX512F__ # ifdef PARPAR_INCLUDE_BASIC_OPS # define PACKED_FUNC(vs, il, it) \ void gf_add_multi_packed_v##vs##i##il##_avx512(unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len) { \ gf16_muladd_multi_packed((void*)vs, &gf_add_x_avx512, il, it, packedRegions, regions, dst, src, len, sizeof(__m512i)*vs, NULL); \ _mm256_zeroupper(); \ } \ void gf_add_multi_packpf_v##vs##i##il##_avx512(unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const void* HEDLEY_RESTRICT prefetchIn, const void* HEDLEY_RESTRICT prefetchOut) { \ gf16_muladd_multi_packpf((void*)vs, &gf_add_x_avx512, il, it, packedRegions, regions, dst, src, len, sizeof(__m512i)*vs, NULL, vs>1, prefetchIn, prefetchOut); \ _mm256_zeroupper(); \ } # else # define PACKED_FUNC(vs, il, it) \ void gf_add_multi_packpf_v##vs##i##il##_avx512(unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const void* HEDLEY_RESTRICT prefetchIn, const void* HEDLEY_RESTRICT prefetchOut) { \ gf16_muladd_multi_packpf((void*)vs, &gf_add_x_avx512, il, it, packedRegions, regions, dst, src, len, sizeof(__m512i)*vs, NULL, vs>1, prefetchIn, prefetchOut); \ _mm256_zeroupper(); \ } # endif #else # define PACKED_FUNC(vs, il, it) PACKED_STUB(avx512, vs, il, it) #endif #ifdef PLATFORM_AMD64 PACKED_FUNC_NOTSLIM(avx512, 1, 6, 18) PACKED_FUNC(1, 12, 12) PACKED_FUNC(2, 3, 12) PACKED_FUNC(2, 4, 12) PACKED_FUNC(2, 6, 18) PACKED_FUNC_NOTSLIM(avx512, 16, 6, 18) #else PACKED_FUNC_NOTSLIM(avx512, 1, 1, 6) PACKED_FUNC_NOTSLIM(avx512, 1, 2, 8) PACKED_FUNC(2, 1, 6) PACKED_FUNC(1, 6, 6) #endif #undef PACKED_FUNC par2cmdline-turbo-1.5.0/parpar/gf16/gf_add_common.h000066400000000000000000000023621524160147200220300ustar00rootroot00000000000000 #ifdef PARPAR_INCLUDE_BASIC_OPS # define PACKED_STUB(suf, vs, il, it) \ void gf_add_multi_packed_v##vs##i##il##_##suf(unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len) { \ UNUSED(packedRegions); UNUSED(regions); UNUSED(dst); UNUSED(src); UNUSED(len); \ } \ void gf_add_multi_packpf_v##vs##i##il##_##suf(unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const void* HEDLEY_RESTRICT prefetchIn, const void* HEDLEY_RESTRICT prefetchOut) { \ UNUSED(packedRegions); UNUSED(regions); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(prefetchIn); UNUSED(prefetchOut); \ } #else # define PACKED_STUB(suf, vs, il, it) \ void gf_add_multi_packpf_v##vs##i##il##_##suf(unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const void* HEDLEY_RESTRICT prefetchIn, const void* HEDLEY_RESTRICT prefetchOut) { \ UNUSED(packedRegions); UNUSED(regions); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(prefetchIn); UNUSED(prefetchOut); \ } #endif #ifndef PARPAR_SLIM_GF16 # define PACKED_FUNC_NOTSLIM(suf, vs, il, it) PACKED_FUNC(vs, il, it) #else # define PACKED_FUNC_NOTSLIM PACKED_STUB #endif par2cmdline-turbo-1.5.0/parpar/gf16/gf_add_generic.c000066400000000000000000000100021524160147200221350ustar00rootroot00000000000000#include "gf16_global.h" #include "gf16_muladd_multi.h" static HEDLEY_ALWAYS_INLINE void gf_add_x_generic( const void *HEDLEY_RESTRICT scratch, GF16_BLKMAC_SRCDSTLIST, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, const int doPrefetch, const char* _pf ) { ASSUME(len > 0); GF16_BLKMAC_SRCDST_UNUSED(8, 1); UNUSED(coefficients); UNUSED(doPrefetch); UNUSED(_pf); int lookup3Rearrange = (int)((intptr_t)scratch); // abuse this variable // probably never happens, but ensure length is a multiple of the native int intptr_t ptr = -(intptr_t)len; while(ptr & (sizeof(uintptr_t)-1)) { uint8_t data = _src1[ptr*srcScale]; if(srcCount >= 2) data ^= _src2[ptr*srcScale]; if(srcCount >= 3) data ^= _src3[ptr*srcScale]; if(srcCount >= 4) data ^= _src4[ptr*srcScale]; if(srcCount >= 5) data ^= _src5[ptr*srcScale]; if(srcCount >= 6) data ^= _src6[ptr*srcScale]; if(srcCount >= 7) data ^= _src7[ptr*srcScale]; if(srcCount >= 8) data ^= _src8[ptr*srcScale]; assert(!lookup3Rearrange); _dst1[ptr*dstScale] ^= data; ptr++; } for(; ptr; ptr += sizeof(uintptr_t)) { uintptr_t data; data = readPtr(_src1+ptr*srcScale); if(srcCount >= 2) data ^= readPtr(_src2+ptr*srcScale); if(srcCount >= 3) data ^= readPtr(_src3+ptr*srcScale); if(srcCount >= 4) data ^= readPtr(_src4+ptr*srcScale); if(srcCount >= 5) data ^= readPtr(_src5+ptr*srcScale); if(srcCount >= 6) data ^= readPtr(_src6+ptr*srcScale); if(srcCount >= 7) data ^= readPtr(_src7+ptr*srcScale); if(srcCount >= 8) data ^= readPtr(_src8+ptr*srcScale); if(lookup3Rearrange) { // revert bit rearrangement for LOOKUP3 method if(sizeof(uintptr_t) >= 8) { data = (data & 0xf80007fff80007ffULL) | ((data & 0x003ff800003ff800ULL) << 5) | ((data & 0x07c0000007c00000ULL) >> 11); } else { data = (data & 0xf80007ff) | ((data & 0x003ff800) << 5) | ((data & 0x07c00000) >> 11); } } writePtr(_dst1+ptr*dstScale, readPtr(_dst1+ptr*dstScale) ^ data); } } #include "gf16_lookup.h" #ifdef PARPAR_INCLUDE_BASIC_OPS void gf_add_multi_generic(unsigned regions, size_t offset, void *HEDLEY_RESTRICT dst, const void* const*HEDLEY_RESTRICT src, size_t len) { gf16_muladd_multi(NULL, &gf_add_x_generic, 4, regions, offset, dst, src, len, NULL); } // assumes word-size packing (for lookup algorithms) void gf_add_multi_packed_generic(unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len) { gf16_muladd_multi_packed(NULL, &gf_add_x_generic, 1, 4, packedRegions, regions, dst, src, len, gf16_lookup_stride(), NULL); } #endif void gf_add_multi_packpf_generic(unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const void* HEDLEY_RESTRICT prefetchIn, const void* HEDLEY_RESTRICT prefetchOut) { // no support for prefetching on generic implementation, so defer to regular function UNUSED(prefetchIn); UNUSED(prefetchOut); gf16_muladd_multi_packed(NULL, &gf_add_x_generic, 1, 4, packedRegions, regions, dst, src, len, gf16_lookup_stride(), NULL); } #ifdef PARPAR_INCLUDE_BASIC_OPS void gf_add_multi_packed_lookup3(unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len) { #ifndef PARPAR_SLIM_GF16 gf16_muladd_multi_packed((void*)1, &gf_add_x_generic, 1, 4, packedRegions, regions, dst, src, len, gf16_lookup_stride(), NULL); #else UNUSED(packedRegions); UNUSED(regions); UNUSED(dst); UNUSED(src); UNUSED(len); #endif } #endif void gf_add_multi_packpf_lookup3(unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const void* HEDLEY_RESTRICT prefetchIn, const void* HEDLEY_RESTRICT prefetchOut) { UNUSED(prefetchIn); UNUSED(prefetchOut); #ifndef PARPAR_SLIM_GF16 gf16_muladd_multi_packed((void*)1, &gf_add_x_generic, 1, 4, packedRegions, regions, dst, src, len, gf16_lookup_stride(), NULL); #else UNUSED(packedRegions); UNUSED(regions); UNUSED(dst); UNUSED(src); UNUSED(len); #endif } par2cmdline-turbo-1.5.0/parpar/gf16/gf_add_neon.c000066400000000000000000000136361524160147200215000ustar00rootroot00000000000000#include "gf16_neon_common.h" #include "gf16_muladd_multi.h" #ifdef __ARM_NEON static HEDLEY_ALWAYS_INLINE uint8x16x2_t veorq_u8_x2(uint8x16x2_t a, uint8x16x2_t b) { uint8x16x2_t result; result.val[0] = veorq_u8(a.val[0], b.val[0]); result.val[1] = veorq_u8(a.val[1], b.val[1]); return result; } static HEDLEY_ALWAYS_INLINE void gf_add_x_neon( const void *HEDLEY_RESTRICT scratch, GF16_BLKMAC_SRCDSTLIST, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, const int doPrefetch, const char* _pf ) { ASSUME((len & (sizeof(uint8x16_t)*2-1)) == 0); ASSUME(((uintptr_t)_dst1 & (sizeof(uint8x16_t)-1)) == 0); ASSUME(len > 0); GF16_BLKMAC_SRCDST_UNUSED(18, 1); UNUSED(scratch); UNUSED(coefficients); #define DO_PROCESS \ uint8x16x2_t data = vld1q_u8_x2_align(_dst1+ptr*dstScale); \ data = veorq_u8_x2(data, _vld1q_u8_x2(_src1+ptr*srcScale)); \ if(srcCount >= 2) \ data = veorq_u8_x2(data, _vld1q_u8_x2(_src2+ptr*srcScale)); \ if(srcCount >= 3) \ data = veorq_u8_x2(data, _vld1q_u8_x2(_src3+ptr*srcScale)); \ if(srcCount >= 4) \ data = veorq_u8_x2(data, _vld1q_u8_x2(_src4+ptr*srcScale)); \ if(srcCount >= 5) \ data = veorq_u8_x2(data, _vld1q_u8_x2(_src5+ptr*srcScale)); \ if(srcCount >= 6) \ data = veorq_u8_x2(data, _vld1q_u8_x2(_src6+ptr*srcScale)); \ if(srcCount >= 7) \ data = veorq_u8_x2(data, _vld1q_u8_x2(_src7+ptr*srcScale)); \ if(srcCount >= 8) \ data = veorq_u8_x2(data, _vld1q_u8_x2(_src8+ptr*srcScale)); \ if(srcCount >= 9) \ data = veorq_u8_x2(data, _vld1q_u8_x2(_src9+ptr*srcScale)); \ if(srcCount >= 10) \ data = veorq_u8_x2(data, _vld1q_u8_x2(_src10+ptr*srcScale)); \ if(srcCount >= 11) \ data = veorq_u8_x2(data, _vld1q_u8_x2(_src11+ptr*srcScale)); \ if(srcCount >= 12) \ data = veorq_u8_x2(data, _vld1q_u8_x2(_src12+ptr*srcScale)); \ if(srcCount >= 13) \ data = veorq_u8_x2(data, _vld1q_u8_x2(_src13+ptr*srcScale)); \ if(srcCount >= 14) \ data = veorq_u8_x2(data, _vld1q_u8_x2(_src14+ptr*srcScale)); \ if(srcCount >= 15) \ data = veorq_u8_x2(data, _vld1q_u8_x2(_src15+ptr*srcScale)); \ if(srcCount >= 16) \ data = veorq_u8_x2(data, _vld1q_u8_x2(_src16+ptr*srcScale)); \ if(srcCount >= 17) \ data = veorq_u8_x2(data, _vld1q_u8_x2(_src17+ptr*srcScale)); \ if(srcCount >= 18) \ data = veorq_u8_x2(data, _vld1q_u8_x2(_src18+ptr*srcScale)); \ vst1q_u8_x2_align(_dst1+ptr*dstScale, data) if(doPrefetch) { intptr_t ptr = -(intptr_t)len; if(doPrefetch == 1) PREFETCH_MEM(_pf+(ptr>>1), 1); if(doPrefetch == 2) PREFETCH_MEM(_pf+(ptr>>1), 0); while(ptr & (CACHELINE_SIZE-1)) { DO_PROCESS; ptr += sizeof(uint8x16_t)*2; } while(ptr) { if(doPrefetch == 1) PREFETCH_MEM(_pf+(ptr>>1), 1); if(doPrefetch == 2) PREFETCH_MEM(_pf+(ptr>>1), 0); for(size_t iter=0; iter<(CACHELINE_SIZE/(sizeof(uint8x16_t)*2)); iter++) { DO_PROCESS; ptr += sizeof(uint8x16_t)*2; } } } else { for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(uint8x16_t)*2) { DO_PROCESS; } } #undef DO_PROCESS } #endif #ifdef PARPAR_INCLUDE_BASIC_OPS void gf_add_multi_neon(unsigned regions, size_t offset, void *HEDLEY_RESTRICT dst, const void* const*HEDLEY_RESTRICT src, size_t len) { #ifdef __ARM_NEON gf16_muladd_multi(NULL, &gf_add_x_neon, 4, regions, offset, dst, src, len, NULL); #else UNUSED(regions); UNUSED(offset); UNUSED(dst); UNUSED(src); UNUSED(len); #endif } void gf_add_multi_packed_shuffle_neon(unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len) { #if defined(__ARM_NEON) && !defined(PARPAR_SLIM_GF16) # ifdef __aarch64__ gf16_muladd_multi_packed(NULL, &gf_add_x_neon, 2, 8, packedRegions, regions, dst, src, len, sizeof(uint8x16_t)*2, NULL); # else gf16_muladd_multi_packed(NULL, &gf_add_x_neon, 1, 6, packedRegions, regions, dst, src, len, sizeof(uint8x16_t)*2, NULL); # endif #else UNUSED(packedRegions); UNUSED(regions); UNUSED(dst); UNUSED(src); UNUSED(len); #endif } void gf_add_multi_packed_clmul_neon(unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len) { #ifdef __ARM_NEON # ifdef __aarch64__ gf16_muladd_multi_packed(NULL, &gf_add_x_neon, 8, 16, packedRegions, regions, dst, src, len, sizeof(uint8x16_t)*2, NULL); # else gf16_muladd_multi_packed(NULL, &gf_add_x_neon, 3, 12, packedRegions, regions, dst, src, len, sizeof(uint8x16_t)*2, NULL); # endif #else UNUSED(packedRegions); UNUSED(regions); UNUSED(dst); UNUSED(src); UNUSED(len); #endif } #endif void gf_add_multi_packpf_shuffle_neon(unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const void* HEDLEY_RESTRICT prefetchIn, const void* HEDLEY_RESTRICT prefetchOut) { #if defined(__ARM_NEON) && !defined(PARPAR_SLIM_GF16) # ifdef __aarch64__ gf16_muladd_multi_packpf(NULL, &gf_add_x_neon, 2, 8, packedRegions, regions, dst, src, len, sizeof(uint8x16_t)*2, NULL, 1, prefetchIn, prefetchOut); # else gf16_muladd_multi_packpf(NULL, &gf_add_x_neon, 1, 6, packedRegions, regions, dst, src, len, sizeof(uint8x16_t)*2, NULL, 1, prefetchIn, prefetchOut); # endif #else UNUSED(packedRegions); UNUSED(regions); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(prefetchIn); UNUSED(prefetchOut); #endif } void gf_add_multi_packpf_clmul_neon(unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const void* HEDLEY_RESTRICT prefetchIn, const void* HEDLEY_RESTRICT prefetchOut) { #ifdef __ARM_NEON # ifdef __aarch64__ gf16_muladd_multi_packpf(NULL, &gf_add_x_neon, 8, 16, packedRegions, regions, dst, src, len, sizeof(uint8x16_t)*2, NULL, 1, prefetchIn, prefetchOut); # else gf16_muladd_multi_packpf(NULL, &gf_add_x_neon, 3, 12, packedRegions, regions, dst, src, len, sizeof(uint8x16_t)*2, NULL, 1, prefetchIn, prefetchOut); # endif #else UNUSED(packedRegions); UNUSED(regions); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(prefetchIn); UNUSED(prefetchOut); #endif } par2cmdline-turbo-1.5.0/parpar/gf16/gf_add_rvv.c000066400000000000000000000063721524160147200213550ustar00rootroot00000000000000#include "gf16_rvv_common.h" #include "gf16_muladd_multi.h" #include "gf_add_common.h" #ifdef __riscv_vector static HEDLEY_ALWAYS_INLINE void gf_add_x_rvv( const void *HEDLEY_RESTRICT scratch, GF16_BLKMAC_SRCDSTLIST, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, const int doPrefetch, const char* _pf ) { ASSUME(len > 0); GF16_BLKMAC_SRCDST_UNUSED(18, 1); UNUSED(coefficients); unsigned vecStride = (unsigned)((uintptr_t)scratch); // abuse this otherwise unused variable #define XOR_LOAD(n, lmul) \ if(srcCount >= n) \ data = RV(vxor_vv_u8m ## lmul)(data, RV(vle8_v_u8m ## lmul)(_src##n+ptr*srcScale, vl), vl) #define DO_ADD(lmul) \ size_t vl = RV(vsetvlmax_e8m ## lmul)(); \ for(intptr_t ptr = -(intptr_t)len; ptr; ptr += vl) { \ vuint8m ## lmul ## _t data = RV(vle8_v_u8m ## lmul)(_dst1+ptr*dstScale, vl); \ \ XOR_LOAD(1, lmul); \ XOR_LOAD(2, lmul); \ XOR_LOAD(3, lmul); \ XOR_LOAD(4, lmul); \ XOR_LOAD(5, lmul); \ XOR_LOAD(6, lmul); \ XOR_LOAD(7, lmul); \ XOR_LOAD(8, lmul); \ XOR_LOAD(9, lmul); \ XOR_LOAD(10, lmul); \ XOR_LOAD(11, lmul); \ XOR_LOAD(12, lmul); \ XOR_LOAD(13, lmul); \ XOR_LOAD(14, lmul); \ XOR_LOAD(15, lmul); \ XOR_LOAD(16, lmul); \ XOR_LOAD(17, lmul); \ XOR_LOAD(18, lmul); \ \ RV(vse8_v_u8m ## lmul)(_dst1+ptr*dstScale, data, vl); \ } UNUSED(doPrefetch); UNUSED(_pf); if(vecStride == 2) { // shuffle DO_ADD(2) } else { // clmul assert(vecStride == 1); DO_ADD(1) } #undef XOR_LOAD #undef DO_ADD } #endif #ifdef PARPAR_INCLUDE_BASIC_OPS void gf_add_multi_rvv(unsigned regions, size_t offset, void *HEDLEY_RESTRICT dst, const void* const*HEDLEY_RESTRICT src, size_t len) { #ifdef __riscv_vector gf16_muladd_multi((void*)2, &gf_add_x_rvv, 4, regions, offset, dst, src, len, NULL); #else UNUSED(regions); UNUSED(offset); UNUSED(dst); UNUSED(src); UNUSED(len); #endif } #endif #ifdef __riscv_vector # ifdef PARPAR_INCLUDE_BASIC_OPS # define PACKED_FUNC(vs, il, it) \ void gf_add_multi_packed_v##vs##i##il##_rvv(unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len) { \ gf16_muladd_multi_packed((void*)vs, &gf_add_x_rvv, il, it, packedRegions, regions, dst, src, len, RV(vsetvlmax_e8m1)()*vs, NULL); \ } \ void gf_add_multi_packpf_v##vs##i##il##_rvv(unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const void* HEDLEY_RESTRICT prefetchIn, const void* HEDLEY_RESTRICT prefetchOut) { \ gf16_muladd_multi_packpf((void*)vs, &gf_add_x_rvv, il, it, packedRegions, regions, dst, src, len, RV(vsetvlmax_e8m1)()*vs, NULL, vs>1, prefetchIn, prefetchOut); \ } # else # define PACKED_FUNC(vs, il, it) \ void gf_add_multi_packpf_v##vs##i##il##_rvv(unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const void* HEDLEY_RESTRICT prefetchIn, const void* HEDLEY_RESTRICT prefetchOut) { \ gf16_muladd_multi_packpf((void*)vs, &gf_add_x_rvv, il, it, packedRegions, regions, dst, src, len, RV(vsetvlmax_e8m1)()*vs, NULL, vs>1, prefetchIn, prefetchOut); \ } # endif #else # define PACKED_FUNC(vs, il, it) PACKED_STUB(rvv, vs, il, it) #endif PACKED_FUNC(2, 3, 12) PACKED_FUNC(1, 12, 12) #undef PACKED_FUNC par2cmdline-turbo-1.5.0/parpar/gf16/gf_add_sse2.c000066400000000000000000000042771524160147200214160ustar00rootroot00000000000000#include "gf16_global.h" #include "../src/platform.h" #include "gf_add_common.h" #define _mword __m128i #define _MM(f) _mm_ ## f #define _MMI(f) _mm_ ## f ## _si128 #define _FNSUFFIX _sse2 #ifdef __SSE2__ # define _AVAILABLE #endif #include "gf_add_x86.h" #ifdef _AVAILABLE # undef _AVAILABLE #endif #undef _FNSUFFIX #undef _MMI #undef _MM #undef _mword #ifdef PARPAR_INCLUDE_BASIC_OPS void gf_add_multi_sse2(unsigned regions, size_t offset, void *HEDLEY_RESTRICT dst, const void* const*HEDLEY_RESTRICT src, size_t len) { #ifdef __SSE2__ gf16_muladd_multi((void*)1, &gf_add_x_sse2, 4, regions, offset, dst, src, len, NULL); #else UNUSED(regions); UNUSED(offset); UNUSED(dst); UNUSED(src); UNUSED(len); #endif } #endif #ifdef __SSE2__ # ifdef PARPAR_INCLUDE_BASIC_OPS # define PACKED_FUNC(vs, il, it) \ void gf_add_multi_packed_v##vs##i##il##_sse2(unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len) { \ gf16_muladd_multi_packed((void*)vs, &gf_add_x_sse2, il, it, packedRegions, regions, dst, src, len, sizeof(__m128i)*vs, NULL); \ } \ void gf_add_multi_packpf_v##vs##i##il##_sse2(unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const void* HEDLEY_RESTRICT prefetchIn, const void* HEDLEY_RESTRICT prefetchOut) { \ gf16_muladd_multi_packpf((void*)vs, &gf_add_x_sse2, il, it, packedRegions, regions, dst, src, len, sizeof(__m128i)*vs, NULL, vs>1, prefetchIn, prefetchOut); \ } # else # define PACKED_FUNC(vs, il, it) \ void gf_add_multi_packpf_v##vs##i##il##_sse2(unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const void* HEDLEY_RESTRICT prefetchIn, const void* HEDLEY_RESTRICT prefetchOut) { \ gf16_muladd_multi_packpf((void*)vs, &gf_add_x_sse2, il, it, packedRegions, regions, dst, src, len, sizeof(__m128i)*vs, NULL, vs>1, prefetchIn, prefetchOut); \ } # endif #else # define PACKED_FUNC(vs, il, it) PACKED_STUB(sse2, vs, il, it) #endif #ifdef PLATFORM_AMD64 PACKED_FUNC_NOTSLIM(sse2, 1, 6, 18) PACKED_FUNC(2, 3, 12) #else PACKED_FUNC_NOTSLIM(sse2, 1, 2, 8) #endif PACKED_FUNC(2, 1, 4) PACKED_FUNC(16, 1, 4) #undef PACKED_FUNC par2cmdline-turbo-1.5.0/parpar/gf16/gf_add_sve.c000066400000000000000000000071511524160147200213310ustar00rootroot00000000000000#include "gf16_sve_common.h" #include "gf16_muladd_multi.h" #ifdef __ARM_FEATURE_SVE static HEDLEY_ALWAYS_INLINE void gf_add2_sve(svuint8_t* data1, svuint8_t* data2, const uint8_t* src) { *data1 = NOMASK(sveor_u8, *data1, svld1_u8(svptrue_b8(), src)); *data2 = NOMASK(sveor_u8, *data2, svld1_vnum_u8(svptrue_b8(), src, 1)); } static HEDLEY_ALWAYS_INLINE void gf_add_x_sve( const void *HEDLEY_RESTRICT scratch, GF16_BLKMAC_SRCDSTLIST, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, const int doPrefetch, const char* _pf ) { ASSUME(len > 0); GF16_BLKMAC_SRCDST_UNUSED(18, 1); UNUSED(scratch); UNUSED(coefficients); for(intptr_t ptr = -(intptr_t)len; ptr; ptr += svcntb()*2) { svuint8_t data1 = svld1_u8(svptrue_b8(), _dst1+ptr*dstScale); svuint8_t data2 = svld1_vnum_u8(svptrue_b8(), _dst1+ptr*dstScale, 1); gf_add2_sve(&data1, &data2, _src1+ptr*srcScale); if(srcCount >= 2) gf_add2_sve(&data1, &data2, _src2+ptr*srcScale); if(srcCount >= 3) gf_add2_sve(&data1, &data2, _src3+ptr*srcScale); if(srcCount >= 4) gf_add2_sve(&data1, &data2, _src4+ptr*srcScale); if(srcCount >= 5) gf_add2_sve(&data1, &data2, _src5+ptr*srcScale); if(srcCount >= 6) gf_add2_sve(&data1, &data2, _src6+ptr*srcScale); if(srcCount >= 7) gf_add2_sve(&data1, &data2, _src7+ptr*srcScale); if(srcCount >= 8) gf_add2_sve(&data1, &data2, _src8+ptr*srcScale); if(srcCount >= 9) gf_add2_sve(&data1, &data2, _src9+ptr*srcScale); if(srcCount >= 10) gf_add2_sve(&data1, &data2, _src10+ptr*srcScale); if(srcCount >= 11) gf_add2_sve(&data1, &data2, _src11+ptr*srcScale); if(srcCount >= 12) gf_add2_sve(&data1, &data2, _src12+ptr*srcScale); if(srcCount >= 13) gf_add2_sve(&data1, &data2, _src13+ptr*srcScale); if(srcCount >= 14) gf_add2_sve(&data1, &data2, _src14+ptr*srcScale); if(srcCount >= 15) gf_add2_sve(&data1, &data2, _src15+ptr*srcScale); if(srcCount >= 16) gf_add2_sve(&data1, &data2, _src16+ptr*srcScale); if(srcCount >= 17) gf_add2_sve(&data1, &data2, _src17+ptr*srcScale); if(srcCount >= 18) gf_add2_sve(&data1, &data2, _src18+ptr*srcScale); svst1_u8(svptrue_b8(), _dst1+ptr*dstScale, data1); svst1_vnum_u8(svptrue_b8(), _dst1+ptr*dstScale, 1, data2); if(doPrefetch == 1) svprfb(svptrue_b8(), _pf+(ptr>>1), SV_PLDL1KEEP); if(doPrefetch == 2) svprfb(svptrue_b8(), _pf+(ptr>>1), SV_PLDL2KEEP); } } #endif #ifdef PARPAR_INCLUDE_BASIC_OPS void gf_add_multi_sve(unsigned regions, size_t offset, void *HEDLEY_RESTRICT dst, const void* const*HEDLEY_RESTRICT src, size_t len) { #ifdef __ARM_FEATURE_SVE gf16_muladd_multi(NULL, &gf_add_x_sve, 4, regions, offset, dst, src, len, NULL); #else UNUSED(regions); UNUSED(offset); UNUSED(dst); UNUSED(src); UNUSED(len); #endif } void gf_add_multi_packed_sve(unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len) { #ifdef __ARM_FEATURE_SVE gf16_muladd_multi_packed(NULL, &gf_add_x_sve, 3, 12, packedRegions, regions, dst, src, len, svcntb()*2, NULL); #else UNUSED(packedRegions); UNUSED(regions); UNUSED(dst); UNUSED(src); UNUSED(len); #endif } #endif void gf_add_multi_packpf_sve(unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const void* HEDLEY_RESTRICT prefetchIn, const void* HEDLEY_RESTRICT prefetchOut) { #ifdef __ARM_FEATURE_SVE gf16_muladd_multi_packpf(NULL, &gf_add_x_sve, 3, 12, packedRegions, regions, dst, src, len, svcntb()*2, NULL, 1, prefetchIn, prefetchOut); #else UNUSED(packedRegions); UNUSED(regions); UNUSED(dst); UNUSED(src); UNUSED(len); UNUSED(prefetchIn); UNUSED(prefetchOut); #endif } par2cmdline-turbo-1.5.0/parpar/gf16/gf_add_sve2.c000066400000000000000000000074221524160147200214140ustar00rootroot00000000000000#include "gf16_sve_common.h" #include "gf16_muladd_multi.h" #include "gf_add_common.h" #ifdef __ARM_FEATURE_SVE2 static HEDLEY_ALWAYS_INLINE void gf_add2_sve2(int srcCount, svuint8_t* data, unsigned v, const uint8_t* src1, const uint8_t* src2) { if(srcCount < 1) return; if(srcCount > 1) *data = sveor3_u8(*data, svld1_vnum_u8(svptrue_b8(), src1, v), svld1_vnum_u8(svptrue_b8(), src2, v)); else *data = NOMASK(sveor_u8, *data, svld1_vnum_u8(svptrue_b8(), src1, v)); } static HEDLEY_ALWAYS_INLINE void gf_add_x_sve2( const void *HEDLEY_RESTRICT scratch, GF16_BLKMAC_SRCDSTLIST, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, const int doPrefetch, const char* _pf ) { ASSUME(len > 0); GF16_BLKMAC_SRCDST_UNUSED(18, 1); UNUSED(coefficients); unsigned vecStride = (unsigned)((uintptr_t)scratch); // abuse this otherwise unused variable for(intptr_t ptr = -(intptr_t)len; ptr; ptr += svcntb()*vecStride) { for(unsigned v=0; v1, prefetchIn, prefetchOut); \ } # else # define PACKED_FUNC(vs, il, it) \ void gf_add_multi_packpf_v##vs##i##il##_sve2(unsigned packedRegions, unsigned regions, void *HEDLEY_RESTRICT dst, const void* HEDLEY_RESTRICT src, size_t len, const void* HEDLEY_RESTRICT prefetchIn, const void* HEDLEY_RESTRICT prefetchOut) { \ gf16_muladd_multi_packpf((void*)vs, &gf_add_x_sve2, il, it, packedRegions, regions, dst, src, len, svcntb()*vs, NULL, vs>1, prefetchIn, prefetchOut); \ } # endif #else # define PACKED_FUNC(vs, il, it) PACKED_STUB(sve2, vs, il, it) #endif PACKED_FUNC_NOTSLIM(sve2, 1, 6, 18) PACKED_FUNC_NOTSLIM(sve2, 2, 3, 12) PACKED_FUNC_NOTSLIM(sve2, 2, 4, 12) PACKED_FUNC(2, 8, 16) #undef PACKED_FUNC par2cmdline-turbo-1.5.0/parpar/gf16/gf_add_x86.h000066400000000000000000000055111524160147200211640ustar00rootroot00000000000000 #include "gf16_muladd_multi.h" #ifdef _AVAILABLE static HEDLEY_ALWAYS_INLINE void _FN(gf_add_x)( const void *HEDLEY_RESTRICT scratch, GF16_BLKMAC_SRCDSTLIST, size_t len, const uint16_t *HEDLEY_RESTRICT coefficients, const int doPrefetch, const char* _pf ) { ASSUME(((uintptr_t)_dst1 & (sizeof(_mword)-1)) == 0); ASSUME(len > 0); GF16_BLKMAC_SRCDST_UNUSED(18, 1); UNUSED(coefficients); unsigned vecStride = (unsigned)((uintptr_t)scratch); // abuse this otherwise unused variable ASSUME((len & (sizeof(_mword)*vecStride-1)) == 0); // vecStride assumed to be a known compile-time constant for(intptr_t ptr = -(intptr_t)len; ptr; ptr += sizeof(_mword)*vecStride) { for(unsigned v=0; v m) \ data = _MM(ternarylogic_epi32)(data, \ _MMI(load)((_mword*)(_src##m+ptr*srcScale) + v), \ _MMI(load)((_mword*)(_src##n+ptr*srcScale) + v), \ 0x96) #else # define ADD_PAIR(m, n) \ if(srcCount >= m) \ data = _MMI(xor)(data, _MMI(load)((_mword*)(_src##m+ptr*srcScale) + v)); \ if(srcCount >= n) \ data = _MMI(xor)(data, _MMI(load)((_mword*)(_src##n+ptr*srcScale) + v)) #endif ADD_PAIR(1, 2); ADD_PAIR(3, 4); ADD_PAIR(5, 6); ADD_PAIR(7, 8); ADD_PAIR(9, 10); ADD_PAIR(11, 12); ADD_PAIR(13, 14); ADD_PAIR(15, 16); ADD_PAIR(17, 18); #undef ADD_PAIR _MMI(store)((_mword*)(_dst1+ptr*dstScale) + v, data); } if(vecStride == 16) { // for xor kernels, need to do 4x prefetch if(doPrefetch) { const char* pfBase = _pf+(ptr>>1); if(doPrefetch == 1) { _mm_prefetch(pfBase, MM_HINT_WT1); _mm_prefetch(pfBase+64, MM_HINT_WT1); if(sizeof(_mword) > 16) { _mm_prefetch(pfBase+128, MM_HINT_WT1); _mm_prefetch(pfBase+192, MM_HINT_WT1); } if(sizeof(_mword) > 32) { _mm_prefetch(pfBase+256, MM_HINT_WT1); _mm_prefetch(pfBase+320, MM_HINT_WT1); _mm_prefetch(pfBase+384, MM_HINT_WT1); _mm_prefetch(pfBase+448, MM_HINT_WT1); } } if(doPrefetch == 2) { _mm_prefetch(pfBase, _MM_HINT_T1); _mm_prefetch(pfBase+64, _MM_HINT_T1); if(sizeof(_mword) > 16) { _mm_prefetch(pfBase+128, _MM_HINT_T1); _mm_prefetch(pfBase+192, _MM_HINT_T1); } if(sizeof(_mword) > 32) { _mm_prefetch(pfBase+256, _MM_HINT_T1); _mm_prefetch(pfBase+320, _MM_HINT_T1); _mm_prefetch(pfBase+384, _MM_HINT_T1); _mm_prefetch(pfBase+448, _MM_HINT_T1); } } } } else { if(doPrefetch == 1) _mm_prefetch(_pf+(ptr/vecStride), MM_HINT_WT1); if(doPrefetch == 2) _mm_prefetch(_pf+(ptr/vecStride), _MM_HINT_T1); } } } #endif par2cmdline-turbo-1.5.0/parpar/gf16/gfmat_coeff.c000066400000000000000000000063031524160147200215060ustar00rootroot00000000000000#include "gfmat_coeff.h" #include static int8_t* input_diff = NULL; // difference between predicted input coefficient and actual (number range is -4...5, so could be compressed to 4 bits, but I don't feel it's worth the savings) static uint16_t* gf_exp = NULL; // pre-calculated exponents in GF(2^16), missing bottom 3 bits, followed by 128-entry polynomial shift table #ifdef PARPAR_INVERT_SUPPORT uint16_t* gf16_recip = NULL; // full GF(2^16) reciprocal table #endif void gfmat_init() { if(input_diff) return; input_diff = (int8_t*)malloc(32768); gf_exp = (uint16_t*)malloc((8192+128)*2); #ifdef PARPAR_INVERT_SUPPORT gf16_recip = (uint16_t*)malloc(65536*2); #endif int exp = 0, n = 1; for (int i = 0; i < 32768; i++) { do { #ifdef PARPAR_INVERT_SUPPORT gf16_recip[n] = exp; // essentially construct a log table, then alter it later to get the reciprocal #endif if((exp & 7) == 0) gf_exp[exp>>3] = n; exp++; // exp will reach 65534 by the end of the loop n <<= 1; if(n > 65535) n ^= 0x1100B; } while( !(exp%3) || !(exp%5) || !(exp%17) || !(exp%257) ); input_diff[i] = exp - i*2; } #ifdef PARPAR_INVERT_SUPPORT gf16_recip[n] = exp; #endif // correction values for handling the missing bottom 3 bits of exp // essentially this is a table to speed up multiplication by 0...127 by applying the effects of polynomial masking for (int i = 0; i < 128; i++) { n = i << 9; for (int j = 0; j < 7; j++) { n <<= 1; if(n > 65535) n ^= 0x1100B; } gf_exp[8192+i] = n; } #ifdef PARPAR_INVERT_SUPPORT gf16_recip[1] = 65535; // exponentiate for reciprocals for (int i = 1; i < 65536; i++) { gf16_recip[i] = gf16_exp(65535 - gf16_recip[i]); } #endif } void gfmat_free() { free(input_diff); free(gf_exp); input_diff = NULL; gf_exp = NULL; #ifdef PARPAR_INVERT_SUPPORT free(gf16_recip); gf16_recip = NULL; #endif } HEDLEY_CONST uint16_t gf16_exp(uint_fast16_t v) { uint_fast32_t result = gf_exp[v>>3]; result <<= (v&7); return result ^ gf_exp[8192 + (result>>16)]; /* alternative idea which only omits bottom bit of gf_exp lookup, but avoids a second lookup // GCC doesn't handle the unpredictable check that well uint_fast32_t result0 = gf_exp[result>>1]; uint_fast32_t result1 = (result0 << 1) ^ (-(result0 >> 15) & 0x1100B); // multiply by 2? return HEDLEY_UNPREDICTABLE(result & 1) ? result1 : result0; */ } HEDLEY_CONST uint16_t gfmat_input_log(uint_fast16_t inputBlock) { return (inputBlock*2 + input_diff[inputBlock]); } HEDLEY_CONST uint16_t gfmat_coeff_log(uint_fast16_t inputLog, uint_fast16_t recoveryBlock) { //assert(recoveryBlock < 65535); // if ==65535, gets an invalid exponent // calculate POW(inputBlockConstant, recoveryBlock) in GF uint_fast32_t result = inputLog * recoveryBlock; // clever bit hack for 'result %= 65535' from MultiPar sources result = (result >> 16) + (result & 65535); result += result >> 16; return result; } HEDLEY_CONST uint16_t gfmat_coeff_from_log(uint_fast16_t inputLog, uint_fast16_t recoveryBlock) { return gf16_exp(gfmat_coeff_log(inputLog, recoveryBlock)); } HEDLEY_CONST uint16_t gfmat_coeff(uint_fast16_t inputBlock, uint_fast16_t recoveryBlock) { return gfmat_coeff_from_log(gfmat_input_log(inputBlock), recoveryBlock); } par2cmdline-turbo-1.5.0/parpar/gf16/gfmat_coeff.h000066400000000000000000000011401524160147200215050ustar00rootroot00000000000000#ifndef GFMAT_COEFF_H #define GFMAT_COEFF_H #include "../src/hedley.h" #include "../src/stdint.h" #ifdef __cplusplus extern "C" { #endif void gfmat_init(); void gfmat_free(); HEDLEY_CONST uint16_t gfmat_coeff_from_log(uint_fast16_t inputLog, uint_fast16_t recoveryBlock); HEDLEY_CONST uint16_t gfmat_coeff(uint_fast16_t inputBlock, uint_fast16_t recoveryBlock); HEDLEY_CONST uint16_t gfmat_input_log(uint_fast16_t inputBlock); HEDLEY_CONST uint16_t gfmat_coeff_log(uint_fast16_t inputLog, uint_fast16_t recoveryBlock); HEDLEY_CONST uint16_t gf16_exp(uint_fast16_t v); #ifdef __cplusplus } #endif #endif par2cmdline-turbo-1.5.0/parpar/gf16/gfmat_inv.cpp000066400000000000000000000613271524160147200215670ustar00rootroot00000000000000#include "gfmat_coeff.h" #include "gfmat_inv.h" #include "gf16pmul.h" #include #ifdef PARPAR_INVERT_SUPPORT extern "C" uint16_t* gf16_recip; #include #include "../src/platform.h" // for ALIGN_* #include "gf16mul.h" #include "threadqueue.h" #include static const unsigned MIN_THREAD_REC = 10; // minimum number of rows to process on a thread struct Galois16RecMatrixComputeState { uint16_t* coeff; Galois16Mul gf; void* gfScratch; unsigned validCount; void* srcRowsBase[PP_INVERT_MAX_MULTI_ROWS]; std::vector workers; unsigned pfFactor; Galois16RecMatrixComputeState(Galois16Methods method) : gf(method) {} }; class Galois16RecMatrixWorker { const Galois16Mul& gf; public: MessageThread thread; void* gfScratch; explicit Galois16RecMatrixWorker(const Galois16Mul& _gf) : gf(_gf) { gfScratch = _gf.mutScratch_alloc(); } Galois16RecMatrixWorker(Galois16RecMatrixWorker&& other) noexcept : gf(other.gf) { thread = std::move(other.thread); gfScratch = other.gfScratch; other.gfScratch = nullptr; } ~Galois16RecMatrixWorker() { thread.end(); if(gfScratch) gf.mutScratch_free(gfScratch); } }; struct Galois16RecMatrixWorkerMessage { unsigned stripeStart, stripeEnd; unsigned recFirst, recLast; unsigned recSrc; unsigned recSrcCount; uint16_t* rowCoeffs; Galois16Mul* gf; void* gfScratch; void* (&srcRowsBase)[PP_INVERT_MAX_MULTI_ROWS]; unsigned coeffWidth; void(Galois16RecMatrix::*fn)(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, uint16_t*, unsigned, void*(&)[PP_INVERT_MAX_MULTI_ROWS], Galois16Mul&, void*, const void*, unsigned); unsigned pfFactor; Galois16RecMatrix* parent; std::atomic* procRefs; std::promise* done; Galois16RecMatrixWorkerMessage(Galois16RecMatrixComputeState& state) : rowCoeffs(state.coeff), gf(&state.gf), srcRowsBase(state.srcRowsBase), pfFactor(state.pfFactor) {} }; static void invert_worker(ThreadMessageQueue& q) { Galois16RecMatrixWorkerMessage* req; while((req = static_cast(q.pop())) != NULL) { (req->parent->*(req->fn))(req->stripeStart, req->stripeEnd, req->recFirst, req->recLast, req->recSrc, req->recSrcCount, req->rowCoeffs, req->coeffWidth, req->srcRowsBase, *(req->gf), req->gfScratch, nullptr, req->pfFactor); if(req->procRefs->fetch_sub(1, std::memory_order_acq_rel) <= 1) { req->done->set_value(); } delete req; } } #define MAT_ROW(s, r) (mat + (((s)*numRec) + (r)) * (stripeWidth / sizeof(uint16_t))) #define CEIL_DIV(a, b) (((a) + (b)-1) / (b)) #define ROUND_DIV(a, b) (((a) + ((b)>>1)) / (b)) template void Galois16RecMatrix::invertLoop(unsigned stripeStart, unsigned stripeEnd, unsigned recFirst, unsigned recLast, unsigned recSrc, unsigned recSrcCount, uint16_t* rowCoeffs, unsigned coeffWidth, void* (&srcRowsBase)[PP_INVERT_MAX_MULTI_ROWS], Galois16Mul& gf, void* gfScratch, const void* nextPf, unsigned pfFactor) { assert(recSrcCount % rows == 0); // when to start prefetching the next stripe unsigned recStartPf = 0, recSrcStartPf = recFirst; if(recSrcCount > rows< rows<= recStartPf) { if(recI == recStartPf && curRec2 == recFirst) { if(stripe < stripeEnd-1) // prefetch next stripe pf = (const uint8_t*)(MAT_ROW(stripe+1, recFirst)); else pf = (const uint8_t*)nextPf; } // TODO: if numStripes==1, we might want to avoid prefetching the same row group as the first applyRows loop would } else { if(curRec2 == recSrcStartPf) // prefetch next rowSrc pf = (const uint8_t*)(MAT_ROW(stripe, rec+rows)); else if(curRec2 < recSrcStartPf) pf = nullptr; } uint16_t* target = MAT_ROW(stripe, curRec2); uint16_t* coeffPtr = rowCoeffs + (curRec2-recFirst)*coeffWidth + recI; if(rows > 1) { if(pf) gf.mul_add_multi_stridepf(rows, stripeWidth, target, MAT_ROW(stripe, rec), stripeWidth, coeffPtr, gfScratch, pf); else { unsigned offset = rec*stripeWidth; gf.mul_add_multi(rows, stripeWidth*numRec*stripe + offset, MAT_ROW(0, curRec2) - offset/sizeof(uint16_t), srcRowsBase, stripeWidth, coeffPtr, gfScratch); } } else { if(pf) gf.mul_add_pf(target, MAT_ROW(stripe, rec), stripeWidth, *coeffPtr, gfScratch, pf); else gf.mul_add(target, MAT_ROW(stripe, rec), stripeWidth, *coeffPtr, gfScratch); } if(pf) pf += stripeWidth >> pfFactor; } } } } #define REPLACE_WORD(r, c, v) state.gf.replace_word(MAT_ROW((c)/(stripeWidth / sizeof(uint16_t)), r), (c)%(stripeWidth / sizeof(uint16_t)), v) template int Galois16RecMatrix::scaleRows(Galois16RecMatrixComputeState& state, unsigned rec, unsigned recFirst, unsigned recLast) { assert(recFirst <= recLast); assert(rec != recFirst); unsigned missingCol = state.validCount + rec; uint16_t tmpCoeff; #define SCALE_ROW(row) \ tmpCoeff = REPLACE_WORD(rec+row, missingCol+row, 1); \ if(HEDLEY_UNLIKELY(tmpCoeff == 0)) /* bad recovery coeff */ \ return row; \ if(HEDLEY_LIKELY(tmpCoeff != 1)) { \ for(unsigned stripe=0; stripe= 2) { // multiply-add to the next row MULADD_ROW(rec+1, 0); // scale it, and multiply-add back SCALE_ROW(1); if(rows > 2) { MULADD_ROW_PF(rec+0, 1, MAT_ROW(0, 2)); } else MULADD_LASTROW(rec+0, 1) } else { if(recFirst >= numRec) return -1; } if(rows >= 3) { if(rows >= 4) { MULADD_MULTI_ROW_PF(rec+2, 0, 2, MAT_ROW(0, 3)); SCALE_ROW(2); MULADD_MULTI_ROW(rec+3, 0, 2); MULADD_ROW(rec+3, 2); SCALE_ROW(3); MULADD_ROW(rec+2, 3); MULADD_MULTI_ROW(rec+0, 2, 2); if(rows > 4) { MULADD_MULTI_ROW_PF(rec+1, 2, 2, MAT_ROW(0, 4)); } else MULADD_MULTI_LASTROW(rec+1, 2, 2) } else { MULADD_MULTI_ROW(rec+2, 0, 2); SCALE_ROW(2); MULADD_ROW(rec+0, 2); MULADD_LASTROW(rec+1, 2) } } if(rows >= 5) { if(rows >= 6) { MULADD_MULTI_ROW_PF(rec+4, 0, 4, MAT_ROW(0, 5)); SCALE_ROW(4); MULADD_MULTI_ROW(rec+5, 0, 4); MULADD_ROW(rec+5, 4); SCALE_ROW(5); MULADD_ROW(rec+4, 5); for(unsigned r = 0; r < 3; r++) { MULADD_MULTI_ROW(rec+r, 4, 2); } MULADD_MULTI_LASTROW(rec+3, 4, 2) } else { MULADD_MULTI_ROW(rec+4, 0, 4); SCALE_ROW(4); for(unsigned r = 0; r < 3; r++) { MULADD_ROW(rec+r, 4); } MULADD_LASTROW(rec+3, 4) } } HEDLEY_STATIC_ASSERT(rows <= PP_INVERT_MAX_MULTI_ROWS && rows <= 6, "PP_INVERT_MAX_MULTI_ROWS > 6 case not handled"); return -1; #undef SCALE_ROW #undef MULADD_ROW #undef MULADD_ROW_PF #undef MULADD_MULTI_ROW #undef MULADD_MULTI_ROW_PF #undef MULADD_LASTROW #undef MULADD_MULTI_LASTROW } void Galois16RecMatrix::fillCoeffs(Galois16RecMatrixComputeState& state, unsigned rows, unsigned recFirst, unsigned recLast, unsigned rec, unsigned coeffWidth) { assert(rec != recFirst); unsigned missingCol = state.validCount + rec; for(unsigned r=recFirst; r void Galois16RecMatrix::applyRows(Galois16RecMatrixComputeState& state, unsigned rec, unsigned recCount, unsigned recFirst, unsigned recLast, unsigned coeffWidth, int nextRow) { // TODO: consider optimisation for numStripes == 1 ? assert(recFirst < recLast); assert(rec != recFirst); // do main elimination, using the source group if(state.workers.empty()) { // process elimination directly uint16_t* nextScaleRow = nextRow >= 0 ? MAT_ROW(0, (unsigned)nextRow) : nullptr; invertLoop(0, numStripes, recFirst, recLast, rec, recCount, state.coeff, coeffWidth, state.srcRowsBase, state.gf, state.gfScratch, nextScaleRow, state.pfFactor); } else { // process using workers std::atomic procRefs; std::promise done; auto makeReq = [&, this]() -> Galois16RecMatrixWorkerMessage* { auto* req = new Galois16RecMatrixWorkerMessage(state); req->recFirst = recFirst; req->recLast = recLast; req->recSrc = rec; req->recSrcCount = recCount; req->coeffWidth = coeffWidth; req->fn = &Galois16RecMatrix::invertLoop; req->parent = this; req->procRefs = &procRefs; req->done = &done; return req; }; if(numStripes >= state.workers.size()) { // split full stripes across workers float stripesPerWorker = (float)numStripes / state.workers.size(); float stripe = 0.5; procRefs.store((int)state.workers.size()); for(auto& worker : state.workers) { auto* req = makeReq(); req->stripeStart = (unsigned)stripe; req->stripeEnd = (unsigned)(stripe + stripesPerWorker); req->gfScratch = worker.gfScratch; worker.thread.send(req); stripe += stripesPerWorker; } assert((unsigned)stripe == numStripes); } else { // each stripe may need >1 worker std::vector reqs; reqs.reserve(state.workers.size()); float workersPerStripe = (float)state.workers.size() / numStripes; float workerCnt = 0.5; for(unsigned stripe=0; stripe= recFirst && rec < recLast) numRows -= rows; numRows = CEIL_DIV(numRows, workerNum); if(numRows < MIN_THREAD_REC) numRows = MIN_THREAD_REC; // ensure workers have a half decent amount of stuff to do unsigned rowPos = recFirst; while(rowPos < recLast) { unsigned sendRows = numRows; if(rowPos+sendRows > rec && rowPos <= rec) // need to send extra to compensate for the gap sendRows += rows; if(rowPos+sendRows > recLast) sendRows = recLast - rowPos; auto* req = makeReq(); req->stripeStart = stripe; req->stripeEnd = stripe+1; req->recFirst = rowPos; req->recLast = rowPos+sendRows; req->rowCoeffs += (rowPos-recFirst) * coeffWidth; reqs.push_back(req); rowPos += sendRows; if(rowPos == rec) rowPos += rows; } workerCnt += workersPerStripe; } assert(reqs.size() <= state.workers.size()); assert((size_t)workerCnt == state.workers.size()); procRefs.store((int)reqs.size()); assert(procRefs > 0); for(unsigned i=0; igfScratch = worker.gfScratch; worker.thread.send(req); } } // wait for threads to finish done.get_future().wait(); } } #undef REPLACE_WORD #undef MAT_ROW template int Galois16RecMatrix::processRows(Galois16RecMatrixComputeState& state, unsigned& rec, unsigned rowGroupSize, std::function progressCb, uint16_t progressOffset, uint16_t totalProgress) { unsigned alignedRowGroupSize = (rowGroupSize / rows) * rows; while(rec <= numRec-rows) { unsigned curRowGroupSize = alignedRowGroupSize; if(numRec-rec < curRowGroupSize) { curRowGroupSize = numRec-rec; curRowGroupSize -= curRowGroupSize % rows; } assert(curRowGroupSize > 0); unsigned recStart = rec; // for progress indicator, we'll even it out by computing a ratio to advance by unsigned progressRatio = (curRowGroupSize<<16)/numRec; unsigned progressBase = recStart + progressOffset; // loop through this row group (normalize values) for(; rec < curRowGroupSize+recStart; rec+=rows) { if(progressCb) progressCb(progressBase + (((rec-recStart)*progressRatio+32768)>>16), totalProgress); unsigned recFirst = recStart; if(recFirst == rec) recFirst += rows; int badRowOffset = scaleRows(state, rec, recFirst, curRowGroupSize+recStart); if(badRowOffset >= 0) return rec+badRowOffset; if(recFirst == curRowGroupSize+recStart) continue; fillCoeffs(state, rows, recFirst, curRowGroupSize+recStart, rec, rows); int nextRow = recStart; if(rec+rows == curRowGroupSize+recStart) nextRow = recStart > 0 ? 0 : (numRec>=curRowGroupSize*2 ? curRowGroupSize : -1); applyRows(state, rec, rows, recFirst, curRowGroupSize+recStart, rows, nextRow); } // apply current row group to all other row groups for(unsigned recGroup=0; recGroup>16), totalProgress); } unsigned curRowGroupSize2 = rowGroupSize; if(numRec-recGroup < curRowGroupSize2) curRowGroupSize2 = numRec-recGroup; if(recGroup < recStart && recGroup+curRowGroupSize2 > recStart) curRowGroupSize2 = recStart-recGroup; // don't let this group cross into the normalized group assert(curRowGroupSize2 > 0); fillCoeffs(state, curRowGroupSize, recGroup, recGroup+curRowGroupSize2, recStart, curRowGroupSize); int nextRow = recGroup + curRowGroupSize2; if((unsigned)nextRow >= numRec) nextRow = rec+curRowGroupSize2 < numRec ? rec : -1; else if((unsigned)nextRow+curRowGroupSize2 > numRec) nextRow = -1; // don't over prefetch; TODO: is there a way to still prefetch something? applyRows(state, recStart, curRowGroupSize, recGroup, recGroup+curRowGroupSize2, curRowGroupSize, nextRow); recGroup += curRowGroupSize2; } } return -1; } // construct initial matrix (pre-inversion) void Galois16RecMatrix::Construct(const std::vector& inputValid, unsigned validCount, const std::vector& recovery) { unsigned validCol = 0; unsigned missingCol = validCount; unsigned recStart = 0; unsigned sw16 = stripeWidth/sizeof(uint16_t); if(recovery.at(0) == 0) { // first recovery having exponent 0 is a common case for(unsigned stripe=0; stripe= recovery.size()) return; unsigned input = 0; const unsigned GROUP_AMOUNT = 4; #define CONSTRUCT_VIA_EXP(loopcond) \ for(; input + GROUP_AMOUNT <= inputValid.size(); input+=GROUP_AMOUNT) { \ uint16_t inputLog[GROUP_AMOUNT]; \ unsigned targetCol[GROUP_AMOUNT]; \ for(unsigned i=0; i recSkips; recSkips.reserve(numRec); recSkips.push_back(recStart); unsigned maxSkips = numRec/2; // TODO: tune threshold uint16_t lastExp = 1; for(unsigned rec = recStart+1; rec < numRec; rec++) { uint16_t exp = recovery.at(rec); if(exp != lastExp+1) { recSkips.push_back(rec); if(recSkips.size() >= maxSkips) break; } lastExp = exp; } if(recSkips.size() < maxSkips) { // not many gaps - use the strategy of filling these gaps first... CONSTRUCT_VIA_EXP(uint16_t rec : recSkips); // ...then compute most of the rows via multiplication for(unsigned stripe=0; stripe& inputValid, unsigned validCount, std::vector& recovery, std::function progressCb) { numRec = (unsigned)inputValid.size() - validCount; assert(validCount < inputValid.size()); // i.e. numRec > 0 assert(inputValid.size() <= 32768 && inputValid.size() > 0); assert(recovery.size() <= 65535 && recovery.size() > 0); if(numRec > recovery.size()) return false; unsigned matWidth = (unsigned)inputValid.size() * sizeof(uint16_t); if(regionMethod == GF16_AUTO) { regionMethod = Galois16Mul::default_method(matWidth, numRec, numRec, true); } Galois16RecMatrixComputeState state((Galois16Methods)regionMethod); state.validCount = validCount; const auto gfInfo = state.gf.info(); state.pfFactor = gfInfo.prefetchDownscale; // divide the matrix up into evenly sized stripes (for loop tiling optimisation) numStripes = ROUND_DIV(matWidth, (unsigned)gfInfo.idealChunkSize); if(numStripes < 1) numStripes = 1; stripeWidth = (unsigned)state.gf.alignToStride(CEIL_DIV(matWidth, numStripes)); numStripes = CEIL_DIV(matWidth, stripeWidth); assert(numStripes >= 1); if(mat) ALIGN_FREE(mat); unsigned matSize = numRec * stripeWidth*numStripes; ALIGN_ALLOC(mat, matSize, gfInfo.alignment); uint16_t totalProgress = numRec + (state.gf.needPrepare() ? 3 : 1); // provision for prepare/finish/init-calc // easier to handle if exponents are in order std::sort(recovery.begin(), recovery.end()); static bool pmulInit = false; if(!pmulInit) { pmulInit = true; setup_pmul(); } state.srcRowsBase[0] = mat; for(unsigned i=1; i 1) { state.workers.reserve(_numThreads); for(unsigned i=0; i<_numThreads; i++) { state.workers.emplace_back(state.gf); state.workers[i].thread.name = "gauss_worker"; state.workers[i].thread.setCallback(invert_worker); } state.gfScratch = state.workers[0].gfScratch; } else state.gfScratch = state.gf.mutScratch_alloc(); // target L2 size - 512K seems to be a reasonable guess for now; TODO: improve this // - targeting larger L2 (e.g. >1MB) seems to perform worse, so a fixed size might end up being better unsigned rowGroupSize = (512*1024 / stripeWidth); // if it's going to be split amongst cores, increase the number of rows in a group if(numStripes < _numThreads) rowGroupSize *= _numThreads/numStripes; unsigned rowMultiple = (std::min)(gfInfo.idealInputMultiple, PP_INVERT_MAX_MULTI_ROWS); if(rowGroupSize < rowMultiple*2) rowGroupSize = rowMultiple*2; if(rowGroupSize > numRec) rowGroupSize = numRec; std::vector stateCoeff(rowGroupSize*rowGroupSize); state.coeff = stateCoeff.data(); invert_loop: { // loop, in the unlikely case we hit the PAR2 un-invertability flaw; TODO: is there a faster way than just retrying? if(numRec > recovery.size()) { // not enough recovery if(_numThreads <= 1) state.gf.mutScratch_free(state.gfScratch); ALIGN_FREE(mat); mat = nullptr; return false; } if(progressCb) progressCb(0, totalProgress); Construct(inputValid, validCount, recovery); // pre-transform uint16_t progressOffset = 1; if(state.gf.needPrepare()) { if(progressCb) progressCb(1, totalProgress); progressOffset = 2; state.gf.prepare(mat, mat, matSize); } // invert unsigned rec = 0; #define INVERT_GROUP(rows) \ if(gfInfo.idealInputMultiple >= rows && numRec >= rows) { \ int badRow = processRows(state, rec, rowGroupSize, progressCb, progressOffset, totalProgress); \ if(badRow >= 0) { \ /* ignore this recovery row and try again */ \ recovery.erase(recovery.begin() + badRow); \ goto invert_loop; \ } \ } // max out at 6 groups (registers + cache assoc?) INVERT_GROUP(6) INVERT_GROUP(5) INVERT_GROUP(4) INVERT_GROUP(3) INVERT_GROUP(2) INVERT_GROUP(1) #undef INVERT_GROUP // post transform if(state.gf.needPrepare()) { if(progressCb) progressCb(totalProgress-1, totalProgress); state.gf.finish(mat, matSize); // TODO: check for zeroes?? } } // remove excess recovery recovery.resize(numRec); if(_numThreads <= 1) state.gf.mutScratch_free(state.gfScratch); return true; } const char* Galois16RecMatrix::getPointMulMethodName() const { return gf16pmul_methodName(); } Galois16RecMatrix::Galois16RecMatrix() : mat(nullptr) { numThreads = hardware_concurrency(); numRec = 0; numStripes = 0; stripeWidth = 0; regionMethod = (int)GF16_AUTO; } Galois16RecMatrix::~Galois16RecMatrix() { if(mat) ALIGN_FREE(mat); } #endif par2cmdline-turbo-1.5.0/parpar/gf16/gfmat_inv.h000066400000000000000000000045161524160147200212310ustar00rootroot00000000000000#ifndef GFMAT_INV_H #define GFMAT_INV_H #include #include #include "../src/stdint.h" #ifdef PARPAR_INVERT_SUPPORT #include "../src/platform.h" // for _LE16 const unsigned PP_INVERT_MAX_MULTI_ROWS = 6; // process up to 6 rows in a multi-mul call class Galois16Mul; class Galois16RecMatrixWorker; struct Galois16RecMatrixComputeState; class Galois16RecMatrix { uint16_t* mat; unsigned numStripes; unsigned stripeWidth; unsigned numRec; unsigned numThreads; void Construct(const std::vector& inputValid, unsigned validCount, const std::vector& recovery); template void invertLoop(unsigned stripeStart, unsigned stripeEnd, unsigned recFirst, unsigned recLast, unsigned recSrc, unsigned recSrcCount, uint16_t* rowCoeffs, unsigned coeffWidth, void* (&srcRowsBase)[PP_INVERT_MAX_MULTI_ROWS], Galois16Mul& gf, void* gfScratch, const void* nextPf, unsigned pfFactor); template int scaleRows(Galois16RecMatrixComputeState& state, unsigned rec, unsigned recFirst, unsigned recLast); void fillCoeffs(Galois16RecMatrixComputeState& state, unsigned rows, unsigned recFirst, unsigned recLast, unsigned rec, unsigned coeffWidth); template void applyRows(Galois16RecMatrixComputeState& state, unsigned rec, unsigned recCount, unsigned recFirst, unsigned recLast, unsigned coeffWidth, int nextRow); template int processRows(Galois16RecMatrixComputeState& state, unsigned& rec, unsigned rowGroupSize, std::function progressCb, uint16_t progressOffset, uint16_t totalProgress); public: Galois16RecMatrix(); ~Galois16RecMatrix(); void setNumThreads(int threads) { numThreads = threads; } bool Compute(const std::vector& inputValid, unsigned validCount, std::vector& recovery, std::function progressCb = nullptr); inline uint16_t GetFactor(uint16_t inIdx, uint16_t recIdx) const { // TODO: check if numStripes==1? consider optimising division? unsigned sw = stripeWidth/sizeof(uint16_t); unsigned stripe = inIdx / sw; return _LE16(mat[stripe * numRec*sw + recIdx * sw + (inIdx % sw)]); } // these should only be queried after Compute has started (i.e. from the progressCb, or after it returns) /*Galois16Methods*/ int regionMethod; const char* getPointMulMethodName() const; }; #endif #endif par2cmdline-turbo-1.5.0/parpar/gf16/opencl-include/000077500000000000000000000000001524160147200220015ustar00rootroot00000000000000par2cmdline-turbo-1.5.0/parpar/gf16/opencl-include/CL/000077500000000000000000000000001524160147200222775ustar00rootroot00000000000000par2cmdline-turbo-1.5.0/parpar/gf16/opencl-include/CL/cl.h000066400000000000000000002376171524160147200230660ustar00rootroot00000000000000/******************************************************************************* * Copyright (c) 2008-2020 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. ******************************************************************************/ #ifndef __OPENCL_CL_H #define __OPENCL_CL_H #include #include #ifdef __cplusplus extern "C" { #endif /******************************************************************************/ typedef struct _cl_platform_id * cl_platform_id; typedef struct _cl_device_id * cl_device_id; typedef struct _cl_context * cl_context; typedef struct _cl_command_queue * cl_command_queue; typedef struct _cl_mem * cl_mem; typedef struct _cl_program * cl_program; typedef struct _cl_kernel * cl_kernel; typedef struct _cl_event * cl_event; typedef struct _cl_sampler * cl_sampler; typedef cl_uint cl_bool; /* WARNING! Unlike cl_ types in cl_platform.h, cl_bool is not guaranteed to be the same size as the bool in kernels. */ typedef cl_ulong cl_bitfield; typedef cl_ulong cl_properties; typedef cl_bitfield cl_device_type; typedef cl_uint cl_platform_info; typedef cl_uint cl_device_info; typedef cl_bitfield cl_device_fp_config; typedef cl_uint cl_device_mem_cache_type; typedef cl_uint cl_device_local_mem_type; typedef cl_bitfield cl_device_exec_capabilities; #ifdef CL_VERSION_2_0 typedef cl_bitfield cl_device_svm_capabilities; #endif typedef cl_bitfield cl_command_queue_properties; #ifdef CL_VERSION_1_2 typedef intptr_t cl_device_partition_property; typedef cl_bitfield cl_device_affinity_domain; #endif typedef intptr_t cl_context_properties; typedef cl_uint cl_context_info; #ifdef CL_VERSION_2_0 typedef cl_properties cl_queue_properties; #endif typedef cl_uint cl_command_queue_info; typedef cl_uint cl_channel_order; typedef cl_uint cl_channel_type; typedef cl_bitfield cl_mem_flags; #ifdef CL_VERSION_2_0 typedef cl_bitfield cl_svm_mem_flags; #endif typedef cl_uint cl_mem_object_type; typedef cl_uint cl_mem_info; #ifdef CL_VERSION_1_2 typedef cl_bitfield cl_mem_migration_flags; #endif typedef cl_uint cl_image_info; #ifdef CL_VERSION_1_1 typedef cl_uint cl_buffer_create_type; #endif typedef cl_uint cl_addressing_mode; typedef cl_uint cl_filter_mode; typedef cl_uint cl_sampler_info; typedef cl_bitfield cl_map_flags; #ifdef CL_VERSION_2_0 typedef intptr_t cl_pipe_properties; typedef cl_uint cl_pipe_info; #endif typedef cl_uint cl_program_info; typedef cl_uint cl_program_build_info; #ifdef CL_VERSION_1_2 typedef cl_uint cl_program_binary_type; #endif typedef cl_int cl_build_status; typedef cl_uint cl_kernel_info; #ifdef CL_VERSION_1_2 typedef cl_uint cl_kernel_arg_info; typedef cl_uint cl_kernel_arg_address_qualifier; typedef cl_uint cl_kernel_arg_access_qualifier; typedef cl_bitfield cl_kernel_arg_type_qualifier; #endif typedef cl_uint cl_kernel_work_group_info; #ifdef CL_VERSION_2_1 typedef cl_uint cl_kernel_sub_group_info; #endif typedef cl_uint cl_event_info; typedef cl_uint cl_command_type; typedef cl_uint cl_profiling_info; #ifdef CL_VERSION_2_0 typedef cl_properties cl_sampler_properties; typedef cl_uint cl_kernel_exec_info; #endif #ifdef CL_VERSION_3_0 typedef cl_bitfield cl_device_atomic_capabilities; typedef cl_bitfield cl_device_device_enqueue_capabilities; typedef cl_uint cl_khronos_vendor_id; typedef cl_properties cl_mem_properties; typedef cl_uint cl_version; #endif typedef struct _cl_image_format { cl_channel_order image_channel_order; cl_channel_type image_channel_data_type; } cl_image_format; #ifdef CL_VERSION_1_2 typedef struct _cl_image_desc { cl_mem_object_type image_type; size_t image_width; size_t image_height; size_t image_depth; size_t image_array_size; size_t image_row_pitch; size_t image_slice_pitch; cl_uint num_mip_levels; cl_uint num_samples; #ifdef CL_VERSION_2_0 #if defined(__GNUC__) __extension__ /* Prevents warnings about anonymous union in -pedantic builds */ #endif #if defined(_MSC_VER) && !defined(__STDC__) #pragma warning( push ) #pragma warning( disable : 4201 ) /* Prevents warning about nameless struct/union in /W4 builds */ #endif #ifdef __clang__ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wc11-extensions" /* Prevents warning about nameless union being C11 extension*/ #endif #if defined(_MSC_VER) && defined(__STDC__) /* Anonymous unions are not supported in /Za builds */ #else union { #endif #endif cl_mem buffer; #ifdef CL_VERSION_2_0 #if defined(_MSC_VER) && defined(__STDC__) /* Anonymous unions are not supported in /Za builds */ #else cl_mem mem_object; }; #endif #if defined(_MSC_VER) && !defined(__STDC__) #pragma warning( pop ) #endif #ifdef __clang__ #pragma clang diagnostic pop #endif #endif } cl_image_desc; #endif #ifdef CL_VERSION_1_1 typedef struct _cl_buffer_region { size_t origin; size_t size; } cl_buffer_region; #endif #ifdef CL_VERSION_3_0 #define CL_NAME_VERSION_MAX_NAME_SIZE 64 typedef struct _cl_name_version { cl_version version; char name[CL_NAME_VERSION_MAX_NAME_SIZE]; } cl_name_version; #endif /******************************************************************************/ /* Error Codes */ #define CL_SUCCESS 0 #define CL_DEVICE_NOT_FOUND -1 #define CL_DEVICE_NOT_AVAILABLE -2 #define CL_COMPILER_NOT_AVAILABLE -3 #define CL_MEM_OBJECT_ALLOCATION_FAILURE -4 #define CL_OUT_OF_RESOURCES -5 #define CL_OUT_OF_HOST_MEMORY -6 #define CL_PROFILING_INFO_NOT_AVAILABLE -7 #define CL_MEM_COPY_OVERLAP -8 #define CL_IMAGE_FORMAT_MISMATCH -9 #define CL_IMAGE_FORMAT_NOT_SUPPORTED -10 #define CL_BUILD_PROGRAM_FAILURE -11 #define CL_MAP_FAILURE -12 #ifdef CL_VERSION_1_1 #define CL_MISALIGNED_SUB_BUFFER_OFFSET -13 #define CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST -14 #endif #ifdef CL_VERSION_1_2 #define CL_COMPILE_PROGRAM_FAILURE -15 #define CL_LINKER_NOT_AVAILABLE -16 #define CL_LINK_PROGRAM_FAILURE -17 #define CL_DEVICE_PARTITION_FAILED -18 #define CL_KERNEL_ARG_INFO_NOT_AVAILABLE -19 #endif #define CL_INVALID_VALUE -30 #define CL_INVALID_DEVICE_TYPE -31 #define CL_INVALID_PLATFORM -32 #define CL_INVALID_DEVICE -33 #define CL_INVALID_CONTEXT -34 #define CL_INVALID_QUEUE_PROPERTIES -35 #define CL_INVALID_COMMAND_QUEUE -36 #define CL_INVALID_HOST_PTR -37 #define CL_INVALID_MEM_OBJECT -38 #define CL_INVALID_IMAGE_FORMAT_DESCRIPTOR -39 #define CL_INVALID_IMAGE_SIZE -40 #define CL_INVALID_SAMPLER -41 #define CL_INVALID_BINARY -42 #define CL_INVALID_BUILD_OPTIONS -43 #define CL_INVALID_PROGRAM -44 #define CL_INVALID_PROGRAM_EXECUTABLE -45 #define CL_INVALID_KERNEL_NAME -46 #define CL_INVALID_KERNEL_DEFINITION -47 #define CL_INVALID_KERNEL -48 #define CL_INVALID_ARG_INDEX -49 #define CL_INVALID_ARG_VALUE -50 #define CL_INVALID_ARG_SIZE -51 #define CL_INVALID_KERNEL_ARGS -52 #define CL_INVALID_WORK_DIMENSION -53 #define CL_INVALID_WORK_GROUP_SIZE -54 #define CL_INVALID_WORK_ITEM_SIZE -55 #define CL_INVALID_GLOBAL_OFFSET -56 #define CL_INVALID_EVENT_WAIT_LIST -57 #define CL_INVALID_EVENT -58 #define CL_INVALID_OPERATION -59 #define CL_INVALID_GL_OBJECT -60 #define CL_INVALID_BUFFER_SIZE -61 #define CL_INVALID_MIP_LEVEL -62 #define CL_INVALID_GLOBAL_WORK_SIZE -63 #ifdef CL_VERSION_1_1 #define CL_INVALID_PROPERTY -64 #endif #ifdef CL_VERSION_1_2 #define CL_INVALID_IMAGE_DESCRIPTOR -65 #define CL_INVALID_COMPILER_OPTIONS -66 #define CL_INVALID_LINKER_OPTIONS -67 #define CL_INVALID_DEVICE_PARTITION_COUNT -68 #endif #ifdef CL_VERSION_2_0 #define CL_INVALID_PIPE_SIZE -69 #define CL_INVALID_DEVICE_QUEUE -70 #endif #ifdef CL_VERSION_2_2 #define CL_INVALID_SPEC_ID -71 #define CL_MAX_SIZE_RESTRICTION_EXCEEDED -72 #endif /* cl_bool */ #define CL_FALSE 0 #define CL_TRUE 1 #ifdef CL_VERSION_1_2 #define CL_BLOCKING CL_TRUE #define CL_NON_BLOCKING CL_FALSE #endif /* cl_platform_info */ #define CL_PLATFORM_PROFILE 0x0900 #define CL_PLATFORM_VERSION 0x0901 #define CL_PLATFORM_NAME 0x0902 #define CL_PLATFORM_VENDOR 0x0903 #define CL_PLATFORM_EXTENSIONS 0x0904 #ifdef CL_VERSION_2_1 #define CL_PLATFORM_HOST_TIMER_RESOLUTION 0x0905 #endif #ifdef CL_VERSION_3_0 #define CL_PLATFORM_NUMERIC_VERSION 0x0906 #define CL_PLATFORM_EXTENSIONS_WITH_VERSION 0x0907 #endif /* cl_device_type - bitfield */ #define CL_DEVICE_TYPE_DEFAULT (1 << 0) #define CL_DEVICE_TYPE_CPU (1 << 1) #define CL_DEVICE_TYPE_GPU (1 << 2) #define CL_DEVICE_TYPE_ACCELERATOR (1 << 3) #ifdef CL_VERSION_1_2 #define CL_DEVICE_TYPE_CUSTOM (1 << 4) #endif #define CL_DEVICE_TYPE_ALL 0xFFFFFFFF /* cl_device_info */ #define CL_DEVICE_TYPE 0x1000 #define CL_DEVICE_VENDOR_ID 0x1001 #define CL_DEVICE_MAX_COMPUTE_UNITS 0x1002 #define CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS 0x1003 #define CL_DEVICE_MAX_WORK_GROUP_SIZE 0x1004 #define CL_DEVICE_MAX_WORK_ITEM_SIZES 0x1005 #define CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR 0x1006 #define CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT 0x1007 #define CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT 0x1008 #define CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG 0x1009 #define CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT 0x100A #define CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE 0x100B #define CL_DEVICE_MAX_CLOCK_FREQUENCY 0x100C #define CL_DEVICE_ADDRESS_BITS 0x100D #define CL_DEVICE_MAX_READ_IMAGE_ARGS 0x100E #define CL_DEVICE_MAX_WRITE_IMAGE_ARGS 0x100F #define CL_DEVICE_MAX_MEM_ALLOC_SIZE 0x1010 #define CL_DEVICE_IMAGE2D_MAX_WIDTH 0x1011 #define CL_DEVICE_IMAGE2D_MAX_HEIGHT 0x1012 #define CL_DEVICE_IMAGE3D_MAX_WIDTH 0x1013 #define CL_DEVICE_IMAGE3D_MAX_HEIGHT 0x1014 #define CL_DEVICE_IMAGE3D_MAX_DEPTH 0x1015 #define CL_DEVICE_IMAGE_SUPPORT 0x1016 #define CL_DEVICE_MAX_PARAMETER_SIZE 0x1017 #define CL_DEVICE_MAX_SAMPLERS 0x1018 #define CL_DEVICE_MEM_BASE_ADDR_ALIGN 0x1019 #define CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE 0x101A #define CL_DEVICE_SINGLE_FP_CONFIG 0x101B #define CL_DEVICE_GLOBAL_MEM_CACHE_TYPE 0x101C #define CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE 0x101D #define CL_DEVICE_GLOBAL_MEM_CACHE_SIZE 0x101E #define CL_DEVICE_GLOBAL_MEM_SIZE 0x101F #define CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE 0x1020 #define CL_DEVICE_MAX_CONSTANT_ARGS 0x1021 #define CL_DEVICE_LOCAL_MEM_TYPE 0x1022 #define CL_DEVICE_LOCAL_MEM_SIZE 0x1023 #define CL_DEVICE_ERROR_CORRECTION_SUPPORT 0x1024 #define CL_DEVICE_PROFILING_TIMER_RESOLUTION 0x1025 #define CL_DEVICE_ENDIAN_LITTLE 0x1026 #define CL_DEVICE_AVAILABLE 0x1027 #define CL_DEVICE_COMPILER_AVAILABLE 0x1028 #define CL_DEVICE_EXECUTION_CAPABILITIES 0x1029 #define CL_DEVICE_QUEUE_PROPERTIES 0x102A /* deprecated */ #ifdef CL_VERSION_2_0 #define CL_DEVICE_QUEUE_ON_HOST_PROPERTIES 0x102A #endif #define CL_DEVICE_NAME 0x102B #define CL_DEVICE_VENDOR 0x102C #define CL_DRIVER_VERSION 0x102D #define CL_DEVICE_PROFILE 0x102E #define CL_DEVICE_VERSION 0x102F #define CL_DEVICE_EXTENSIONS 0x1030 #define CL_DEVICE_PLATFORM 0x1031 #ifdef CL_VERSION_1_2 #define CL_DEVICE_DOUBLE_FP_CONFIG 0x1032 #endif /* 0x1033 reserved for CL_DEVICE_HALF_FP_CONFIG which is already defined in "cl_ext.h" */ #ifdef CL_VERSION_1_1 #define CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF 0x1034 #define CL_DEVICE_HOST_UNIFIED_MEMORY 0x1035 /* deprecated */ #define CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR 0x1036 #define CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT 0x1037 #define CL_DEVICE_NATIVE_VECTOR_WIDTH_INT 0x1038 #define CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG 0x1039 #define CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT 0x103A #define CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE 0x103B #define CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF 0x103C #define CL_DEVICE_OPENCL_C_VERSION 0x103D #endif #ifdef CL_VERSION_1_2 #define CL_DEVICE_LINKER_AVAILABLE 0x103E #define CL_DEVICE_BUILT_IN_KERNELS 0x103F #define CL_DEVICE_IMAGE_MAX_BUFFER_SIZE 0x1040 #define CL_DEVICE_IMAGE_MAX_ARRAY_SIZE 0x1041 #define CL_DEVICE_PARENT_DEVICE 0x1042 #define CL_DEVICE_PARTITION_MAX_SUB_DEVICES 0x1043 #define CL_DEVICE_PARTITION_PROPERTIES 0x1044 #define CL_DEVICE_PARTITION_AFFINITY_DOMAIN 0x1045 #define CL_DEVICE_PARTITION_TYPE 0x1046 #define CL_DEVICE_REFERENCE_COUNT 0x1047 #define CL_DEVICE_PREFERRED_INTEROP_USER_SYNC 0x1048 #define CL_DEVICE_PRINTF_BUFFER_SIZE 0x1049 #endif #ifdef CL_VERSION_2_0 #define CL_DEVICE_IMAGE_PITCH_ALIGNMENT 0x104A #define CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT 0x104B #define CL_DEVICE_MAX_READ_WRITE_IMAGE_ARGS 0x104C #define CL_DEVICE_MAX_GLOBAL_VARIABLE_SIZE 0x104D #define CL_DEVICE_QUEUE_ON_DEVICE_PROPERTIES 0x104E #define CL_DEVICE_QUEUE_ON_DEVICE_PREFERRED_SIZE 0x104F #define CL_DEVICE_QUEUE_ON_DEVICE_MAX_SIZE 0x1050 #define CL_DEVICE_MAX_ON_DEVICE_QUEUES 0x1051 #define CL_DEVICE_MAX_ON_DEVICE_EVENTS 0x1052 #define CL_DEVICE_SVM_CAPABILITIES 0x1053 #define CL_DEVICE_GLOBAL_VARIABLE_PREFERRED_TOTAL_SIZE 0x1054 #define CL_DEVICE_MAX_PIPE_ARGS 0x1055 #define CL_DEVICE_PIPE_MAX_ACTIVE_RESERVATIONS 0x1056 #define CL_DEVICE_PIPE_MAX_PACKET_SIZE 0x1057 #define CL_DEVICE_PREFERRED_PLATFORM_ATOMIC_ALIGNMENT 0x1058 #define CL_DEVICE_PREFERRED_GLOBAL_ATOMIC_ALIGNMENT 0x1059 #define CL_DEVICE_PREFERRED_LOCAL_ATOMIC_ALIGNMENT 0x105A #endif #ifdef CL_VERSION_2_1 #define CL_DEVICE_IL_VERSION 0x105B #define CL_DEVICE_MAX_NUM_SUB_GROUPS 0x105C #define CL_DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS 0x105D #endif #ifdef CL_VERSION_3_0 #define CL_DEVICE_NUMERIC_VERSION 0x105E #define CL_DEVICE_EXTENSIONS_WITH_VERSION 0x1060 #define CL_DEVICE_ILS_WITH_VERSION 0x1061 #define CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION 0x1062 #define CL_DEVICE_ATOMIC_MEMORY_CAPABILITIES 0x1063 #define CL_DEVICE_ATOMIC_FENCE_CAPABILITIES 0x1064 #define CL_DEVICE_NON_UNIFORM_WORK_GROUP_SUPPORT 0x1065 #define CL_DEVICE_OPENCL_C_ALL_VERSIONS 0x1066 #define CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_MULTIPLE 0x1067 #define CL_DEVICE_WORK_GROUP_COLLECTIVE_FUNCTIONS_SUPPORT 0x1068 #define CL_DEVICE_GENERIC_ADDRESS_SPACE_SUPPORT 0x1069 /* 0x106A to 0x106E - Reserved for upcoming KHR extension */ #define CL_DEVICE_OPENCL_C_FEATURES 0x106F #define CL_DEVICE_DEVICE_ENQUEUE_CAPABILITIES 0x1070 #define CL_DEVICE_PIPE_SUPPORT 0x1071 #define CL_DEVICE_LATEST_CONFORMANCE_VERSION_PASSED 0x1072 #endif /* cl_device_fp_config - bitfield */ #define CL_FP_DENORM (1 << 0) #define CL_FP_INF_NAN (1 << 1) #define CL_FP_ROUND_TO_NEAREST (1 << 2) #define CL_FP_ROUND_TO_ZERO (1 << 3) #define CL_FP_ROUND_TO_INF (1 << 4) #define CL_FP_FMA (1 << 5) #ifdef CL_VERSION_1_1 #define CL_FP_SOFT_FLOAT (1 << 6) #endif #ifdef CL_VERSION_1_2 #define CL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT (1 << 7) #endif /* cl_device_mem_cache_type */ #define CL_NONE 0x0 #define CL_READ_ONLY_CACHE 0x1 #define CL_READ_WRITE_CACHE 0x2 /* cl_device_local_mem_type */ #define CL_LOCAL 0x1 #define CL_GLOBAL 0x2 /* cl_device_exec_capabilities - bitfield */ #define CL_EXEC_KERNEL (1 << 0) #define CL_EXEC_NATIVE_KERNEL (1 << 1) /* cl_command_queue_properties - bitfield */ #define CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE (1 << 0) #define CL_QUEUE_PROFILING_ENABLE (1 << 1) #ifdef CL_VERSION_2_0 #define CL_QUEUE_ON_DEVICE (1 << 2) #define CL_QUEUE_ON_DEVICE_DEFAULT (1 << 3) #endif /* cl_context_info */ #define CL_CONTEXT_REFERENCE_COUNT 0x1080 #define CL_CONTEXT_DEVICES 0x1081 #define CL_CONTEXT_PROPERTIES 0x1082 #ifdef CL_VERSION_1_1 #define CL_CONTEXT_NUM_DEVICES 0x1083 #endif /* cl_context_properties */ #define CL_CONTEXT_PLATFORM 0x1084 #ifdef CL_VERSION_1_2 #define CL_CONTEXT_INTEROP_USER_SYNC 0x1085 #endif #ifdef CL_VERSION_1_2 /* cl_device_partition_property */ #define CL_DEVICE_PARTITION_EQUALLY 0x1086 #define CL_DEVICE_PARTITION_BY_COUNTS 0x1087 #define CL_DEVICE_PARTITION_BY_COUNTS_LIST_END 0x0 #define CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN 0x1088 #endif #ifdef CL_VERSION_1_2 /* cl_device_affinity_domain */ #define CL_DEVICE_AFFINITY_DOMAIN_NUMA (1 << 0) #define CL_DEVICE_AFFINITY_DOMAIN_L4_CACHE (1 << 1) #define CL_DEVICE_AFFINITY_DOMAIN_L3_CACHE (1 << 2) #define CL_DEVICE_AFFINITY_DOMAIN_L2_CACHE (1 << 3) #define CL_DEVICE_AFFINITY_DOMAIN_L1_CACHE (1 << 4) #define CL_DEVICE_AFFINITY_DOMAIN_NEXT_PARTITIONABLE (1 << 5) #endif #ifdef CL_VERSION_2_0 /* cl_device_svm_capabilities */ #define CL_DEVICE_SVM_COARSE_GRAIN_BUFFER (1 << 0) #define CL_DEVICE_SVM_FINE_GRAIN_BUFFER (1 << 1) #define CL_DEVICE_SVM_FINE_GRAIN_SYSTEM (1 << 2) #define CL_DEVICE_SVM_ATOMICS (1 << 3) #endif /* cl_command_queue_info */ #define CL_QUEUE_CONTEXT 0x1090 #define CL_QUEUE_DEVICE 0x1091 #define CL_QUEUE_REFERENCE_COUNT 0x1092 #define CL_QUEUE_PROPERTIES 0x1093 #ifdef CL_VERSION_2_0 #define CL_QUEUE_SIZE 0x1094 #endif #ifdef CL_VERSION_2_1 #define CL_QUEUE_DEVICE_DEFAULT 0x1095 #endif #ifdef CL_VERSION_3_0 #define CL_QUEUE_PROPERTIES_ARRAY 0x1098 #endif /* cl_mem_flags and cl_svm_mem_flags - bitfield */ #define CL_MEM_READ_WRITE (1 << 0) #define CL_MEM_WRITE_ONLY (1 << 1) #define CL_MEM_READ_ONLY (1 << 2) #define CL_MEM_USE_HOST_PTR (1 << 3) #define CL_MEM_ALLOC_HOST_PTR (1 << 4) #define CL_MEM_COPY_HOST_PTR (1 << 5) /* reserved (1 << 6) */ #ifdef CL_VERSION_1_2 #define CL_MEM_HOST_WRITE_ONLY (1 << 7) #define CL_MEM_HOST_READ_ONLY (1 << 8) #define CL_MEM_HOST_NO_ACCESS (1 << 9) #endif #ifdef CL_VERSION_2_0 #define CL_MEM_SVM_FINE_GRAIN_BUFFER (1 << 10) /* used by cl_svm_mem_flags only */ #define CL_MEM_SVM_ATOMICS (1 << 11) /* used by cl_svm_mem_flags only */ #define CL_MEM_KERNEL_READ_AND_WRITE (1 << 12) #endif #ifdef CL_VERSION_1_2 /* cl_mem_migration_flags - bitfield */ #define CL_MIGRATE_MEM_OBJECT_HOST (1 << 0) #define CL_MIGRATE_MEM_OBJECT_CONTENT_UNDEFINED (1 << 1) #endif /* cl_channel_order */ #define CL_R 0x10B0 #define CL_A 0x10B1 #define CL_RG 0x10B2 #define CL_RA 0x10B3 #define CL_RGB 0x10B4 #define CL_RGBA 0x10B5 #define CL_BGRA 0x10B6 #define CL_ARGB 0x10B7 #define CL_INTENSITY 0x10B8 #define CL_LUMINANCE 0x10B9 #ifdef CL_VERSION_1_1 #define CL_Rx 0x10BA #define CL_RGx 0x10BB #define CL_RGBx 0x10BC #endif #ifdef CL_VERSION_1_2 #define CL_DEPTH 0x10BD #define CL_DEPTH_STENCIL 0x10BE #endif #ifdef CL_VERSION_2_0 #define CL_sRGB 0x10BF #define CL_sRGBx 0x10C0 #define CL_sRGBA 0x10C1 #define CL_sBGRA 0x10C2 #define CL_ABGR 0x10C3 #endif /* cl_channel_type */ #define CL_SNORM_INT8 0x10D0 #define CL_SNORM_INT16 0x10D1 #define CL_UNORM_INT8 0x10D2 #define CL_UNORM_INT16 0x10D3 #define CL_UNORM_SHORT_565 0x10D4 #define CL_UNORM_SHORT_555 0x10D5 #define CL_UNORM_INT_101010 0x10D6 #define CL_SIGNED_INT8 0x10D7 #define CL_SIGNED_INT16 0x10D8 #define CL_SIGNED_INT32 0x10D9 #define CL_UNSIGNED_INT8 0x10DA #define CL_UNSIGNED_INT16 0x10DB #define CL_UNSIGNED_INT32 0x10DC #define CL_HALF_FLOAT 0x10DD #define CL_FLOAT 0x10DE #ifdef CL_VERSION_1_2 #define CL_UNORM_INT24 0x10DF #endif #ifdef CL_VERSION_2_1 #define CL_UNORM_INT_101010_2 0x10E0 #endif /* cl_mem_object_type */ #define CL_MEM_OBJECT_BUFFER 0x10F0 #define CL_MEM_OBJECT_IMAGE2D 0x10F1 #define CL_MEM_OBJECT_IMAGE3D 0x10F2 #ifdef CL_VERSION_1_2 #define CL_MEM_OBJECT_IMAGE2D_ARRAY 0x10F3 #define CL_MEM_OBJECT_IMAGE1D 0x10F4 #define CL_MEM_OBJECT_IMAGE1D_ARRAY 0x10F5 #define CL_MEM_OBJECT_IMAGE1D_BUFFER 0x10F6 #endif #ifdef CL_VERSION_2_0 #define CL_MEM_OBJECT_PIPE 0x10F7 #endif /* cl_mem_info */ #define CL_MEM_TYPE 0x1100 #define CL_MEM_FLAGS 0x1101 #define CL_MEM_SIZE 0x1102 #define CL_MEM_HOST_PTR 0x1103 #define CL_MEM_MAP_COUNT 0x1104 #define CL_MEM_REFERENCE_COUNT 0x1105 #define CL_MEM_CONTEXT 0x1106 #ifdef CL_VERSION_1_1 #define CL_MEM_ASSOCIATED_MEMOBJECT 0x1107 #define CL_MEM_OFFSET 0x1108 #endif #ifdef CL_VERSION_2_0 #define CL_MEM_USES_SVM_POINTER 0x1109 #endif #ifdef CL_VERSION_3_0 #define CL_MEM_PROPERTIES 0x110A #endif /* cl_image_info */ #define CL_IMAGE_FORMAT 0x1110 #define CL_IMAGE_ELEMENT_SIZE 0x1111 #define CL_IMAGE_ROW_PITCH 0x1112 #define CL_IMAGE_SLICE_PITCH 0x1113 #define CL_IMAGE_WIDTH 0x1114 #define CL_IMAGE_HEIGHT 0x1115 #define CL_IMAGE_DEPTH 0x1116 #ifdef CL_VERSION_1_2 #define CL_IMAGE_ARRAY_SIZE 0x1117 #define CL_IMAGE_BUFFER 0x1118 #define CL_IMAGE_NUM_MIP_LEVELS 0x1119 #define CL_IMAGE_NUM_SAMPLES 0x111A #endif /* cl_pipe_info */ #ifdef CL_VERSION_2_0 #define CL_PIPE_PACKET_SIZE 0x1120 #define CL_PIPE_MAX_PACKETS 0x1121 #endif #ifdef CL_VERSION_3_0 #define CL_PIPE_PROPERTIES 0x1122 #endif /* cl_addressing_mode */ #define CL_ADDRESS_NONE 0x1130 #define CL_ADDRESS_CLAMP_TO_EDGE 0x1131 #define CL_ADDRESS_CLAMP 0x1132 #define CL_ADDRESS_REPEAT 0x1133 #ifdef CL_VERSION_1_1 #define CL_ADDRESS_MIRRORED_REPEAT 0x1134 #endif /* cl_filter_mode */ #define CL_FILTER_NEAREST 0x1140 #define CL_FILTER_LINEAR 0x1141 /* cl_sampler_info */ #define CL_SAMPLER_REFERENCE_COUNT 0x1150 #define CL_SAMPLER_CONTEXT 0x1151 #define CL_SAMPLER_NORMALIZED_COORDS 0x1152 #define CL_SAMPLER_ADDRESSING_MODE 0x1153 #define CL_SAMPLER_FILTER_MODE 0x1154 #ifdef CL_VERSION_2_0 /* These enumerants are for the cl_khr_mipmap_image extension. They have since been added to cl_ext.h with an appropriate KHR suffix, but are left here for backwards compatibility. */ #define CL_SAMPLER_MIP_FILTER_MODE 0x1155 #define CL_SAMPLER_LOD_MIN 0x1156 #define CL_SAMPLER_LOD_MAX 0x1157 #endif #ifdef CL_VERSION_3_0 #define CL_SAMPLER_PROPERTIES 0x1158 #endif /* cl_map_flags - bitfield */ #define CL_MAP_READ (1 << 0) #define CL_MAP_WRITE (1 << 1) #ifdef CL_VERSION_1_2 #define CL_MAP_WRITE_INVALIDATE_REGION (1 << 2) #endif /* cl_program_info */ #define CL_PROGRAM_REFERENCE_COUNT 0x1160 #define CL_PROGRAM_CONTEXT 0x1161 #define CL_PROGRAM_NUM_DEVICES 0x1162 #define CL_PROGRAM_DEVICES 0x1163 #define CL_PROGRAM_SOURCE 0x1164 #define CL_PROGRAM_BINARY_SIZES 0x1165 #define CL_PROGRAM_BINARIES 0x1166 #ifdef CL_VERSION_1_2 #define CL_PROGRAM_NUM_KERNELS 0x1167 #define CL_PROGRAM_KERNEL_NAMES 0x1168 #endif #ifdef CL_VERSION_2_1 #define CL_PROGRAM_IL 0x1169 #endif #ifdef CL_VERSION_2_2 #define CL_PROGRAM_SCOPE_GLOBAL_CTORS_PRESENT 0x116A #define CL_PROGRAM_SCOPE_GLOBAL_DTORS_PRESENT 0x116B #endif /* cl_program_build_info */ #define CL_PROGRAM_BUILD_STATUS 0x1181 #define CL_PROGRAM_BUILD_OPTIONS 0x1182 #define CL_PROGRAM_BUILD_LOG 0x1183 #ifdef CL_VERSION_1_2 #define CL_PROGRAM_BINARY_TYPE 0x1184 #endif #ifdef CL_VERSION_2_0 #define CL_PROGRAM_BUILD_GLOBAL_VARIABLE_TOTAL_SIZE 0x1185 #endif #ifdef CL_VERSION_1_2 /* cl_program_binary_type */ #define CL_PROGRAM_BINARY_TYPE_NONE 0x0 #define CL_PROGRAM_BINARY_TYPE_COMPILED_OBJECT 0x1 #define CL_PROGRAM_BINARY_TYPE_LIBRARY 0x2 #define CL_PROGRAM_BINARY_TYPE_EXECUTABLE 0x4 #endif /* cl_build_status */ #define CL_BUILD_SUCCESS 0 #define CL_BUILD_NONE -1 #define CL_BUILD_ERROR -2 #define CL_BUILD_IN_PROGRESS -3 /* cl_kernel_info */ #define CL_KERNEL_FUNCTION_NAME 0x1190 #define CL_KERNEL_NUM_ARGS 0x1191 #define CL_KERNEL_REFERENCE_COUNT 0x1192 #define CL_KERNEL_CONTEXT 0x1193 #define CL_KERNEL_PROGRAM 0x1194 #ifdef CL_VERSION_1_2 #define CL_KERNEL_ATTRIBUTES 0x1195 #endif #ifdef CL_VERSION_1_2 /* cl_kernel_arg_info */ #define CL_KERNEL_ARG_ADDRESS_QUALIFIER 0x1196 #define CL_KERNEL_ARG_ACCESS_QUALIFIER 0x1197 #define CL_KERNEL_ARG_TYPE_NAME 0x1198 #define CL_KERNEL_ARG_TYPE_QUALIFIER 0x1199 #define CL_KERNEL_ARG_NAME 0x119A #endif #ifdef CL_VERSION_1_2 /* cl_kernel_arg_address_qualifier */ #define CL_KERNEL_ARG_ADDRESS_GLOBAL 0x119B #define CL_KERNEL_ARG_ADDRESS_LOCAL 0x119C #define CL_KERNEL_ARG_ADDRESS_CONSTANT 0x119D #define CL_KERNEL_ARG_ADDRESS_PRIVATE 0x119E #endif #ifdef CL_VERSION_1_2 /* cl_kernel_arg_access_qualifier */ #define CL_KERNEL_ARG_ACCESS_READ_ONLY 0x11A0 #define CL_KERNEL_ARG_ACCESS_WRITE_ONLY 0x11A1 #define CL_KERNEL_ARG_ACCESS_READ_WRITE 0x11A2 #define CL_KERNEL_ARG_ACCESS_NONE 0x11A3 #endif #ifdef CL_VERSION_1_2 /* cl_kernel_arg_type_qualifier */ #define CL_KERNEL_ARG_TYPE_NONE 0 #define CL_KERNEL_ARG_TYPE_CONST (1 << 0) #define CL_KERNEL_ARG_TYPE_RESTRICT (1 << 1) #define CL_KERNEL_ARG_TYPE_VOLATILE (1 << 2) #ifdef CL_VERSION_2_0 #define CL_KERNEL_ARG_TYPE_PIPE (1 << 3) #endif #endif /* cl_kernel_work_group_info */ #define CL_KERNEL_WORK_GROUP_SIZE 0x11B0 #define CL_KERNEL_COMPILE_WORK_GROUP_SIZE 0x11B1 #define CL_KERNEL_LOCAL_MEM_SIZE 0x11B2 #define CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE 0x11B3 #define CL_KERNEL_PRIVATE_MEM_SIZE 0x11B4 #ifdef CL_VERSION_1_2 #define CL_KERNEL_GLOBAL_WORK_SIZE 0x11B5 #endif #ifdef CL_VERSION_2_1 /* cl_kernel_sub_group_info */ #define CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE 0x2033 #define CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE 0x2034 #define CL_KERNEL_LOCAL_SIZE_FOR_SUB_GROUP_COUNT 0x11B8 #define CL_KERNEL_MAX_NUM_SUB_GROUPS 0x11B9 #define CL_KERNEL_COMPILE_NUM_SUB_GROUPS 0x11BA #endif #ifdef CL_VERSION_2_0 /* cl_kernel_exec_info */ #define CL_KERNEL_EXEC_INFO_SVM_PTRS 0x11B6 #define CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM 0x11B7 #endif /* cl_event_info */ #define CL_EVENT_COMMAND_QUEUE 0x11D0 #define CL_EVENT_COMMAND_TYPE 0x11D1 #define CL_EVENT_REFERENCE_COUNT 0x11D2 #define CL_EVENT_COMMAND_EXECUTION_STATUS 0x11D3 #ifdef CL_VERSION_1_1 #define CL_EVENT_CONTEXT 0x11D4 #endif /* cl_command_type */ #define CL_COMMAND_NDRANGE_KERNEL 0x11F0 #define CL_COMMAND_TASK 0x11F1 #define CL_COMMAND_NATIVE_KERNEL 0x11F2 #define CL_COMMAND_READ_BUFFER 0x11F3 #define CL_COMMAND_WRITE_BUFFER 0x11F4 #define CL_COMMAND_COPY_BUFFER 0x11F5 #define CL_COMMAND_READ_IMAGE 0x11F6 #define CL_COMMAND_WRITE_IMAGE 0x11F7 #define CL_COMMAND_COPY_IMAGE 0x11F8 #define CL_COMMAND_COPY_IMAGE_TO_BUFFER 0x11F9 #define CL_COMMAND_COPY_BUFFER_TO_IMAGE 0x11FA #define CL_COMMAND_MAP_BUFFER 0x11FB #define CL_COMMAND_MAP_IMAGE 0x11FC #define CL_COMMAND_UNMAP_MEM_OBJECT 0x11FD #define CL_COMMAND_MARKER 0x11FE #define CL_COMMAND_ACQUIRE_GL_OBJECTS 0x11FF #define CL_COMMAND_RELEASE_GL_OBJECTS 0x1200 #ifdef CL_VERSION_1_1 #define CL_COMMAND_READ_BUFFER_RECT 0x1201 #define CL_COMMAND_WRITE_BUFFER_RECT 0x1202 #define CL_COMMAND_COPY_BUFFER_RECT 0x1203 #define CL_COMMAND_USER 0x1204 #endif #ifdef CL_VERSION_1_2 #define CL_COMMAND_BARRIER 0x1205 #define CL_COMMAND_MIGRATE_MEM_OBJECTS 0x1206 #define CL_COMMAND_FILL_BUFFER 0x1207 #define CL_COMMAND_FILL_IMAGE 0x1208 #endif #ifdef CL_VERSION_2_0 #define CL_COMMAND_SVM_FREE 0x1209 #define CL_COMMAND_SVM_MEMCPY 0x120A #define CL_COMMAND_SVM_MEMFILL 0x120B #define CL_COMMAND_SVM_MAP 0x120C #define CL_COMMAND_SVM_UNMAP 0x120D #endif #ifdef CL_VERSION_3_0 #define CL_COMMAND_SVM_MIGRATE_MEM 0x120E #endif /* command execution status */ #define CL_COMPLETE 0x0 #define CL_RUNNING 0x1 #define CL_SUBMITTED 0x2 #define CL_QUEUED 0x3 /* cl_buffer_create_type */ #ifdef CL_VERSION_1_1 #define CL_BUFFER_CREATE_TYPE_REGION 0x1220 #endif /* cl_profiling_info */ #define CL_PROFILING_COMMAND_QUEUED 0x1280 #define CL_PROFILING_COMMAND_SUBMIT 0x1281 #define CL_PROFILING_COMMAND_START 0x1282 #define CL_PROFILING_COMMAND_END 0x1283 #ifdef CL_VERSION_2_0 #define CL_PROFILING_COMMAND_COMPLETE 0x1284 #endif /* cl_device_atomic_capabilities - bitfield */ #ifdef CL_VERSION_3_0 #define CL_DEVICE_ATOMIC_ORDER_RELAXED (1 << 0) #define CL_DEVICE_ATOMIC_ORDER_ACQ_REL (1 << 1) #define CL_DEVICE_ATOMIC_ORDER_SEQ_CST (1 << 2) #define CL_DEVICE_ATOMIC_SCOPE_WORK_ITEM (1 << 3) #define CL_DEVICE_ATOMIC_SCOPE_WORK_GROUP (1 << 4) #define CL_DEVICE_ATOMIC_SCOPE_DEVICE (1 << 5) #define CL_DEVICE_ATOMIC_SCOPE_ALL_DEVICES (1 << 6) #endif /* cl_device_device_enqueue_capabilities - bitfield */ #ifdef CL_VERSION_3_0 #define CL_DEVICE_QUEUE_SUPPORTED (1 << 0) #define CL_DEVICE_QUEUE_REPLACEABLE_DEFAULT (1 << 1) #endif /* cl_khronos_vendor_id */ #define CL_KHRONOS_VENDOR_ID_CODEPLAY 0x10004 #ifdef CL_VERSION_3_0 /* cl_version */ #define CL_VERSION_MAJOR_BITS (10) #define CL_VERSION_MINOR_BITS (10) #define CL_VERSION_PATCH_BITS (12) #define CL_VERSION_MAJOR_MASK ((1 << CL_VERSION_MAJOR_BITS) - 1) #define CL_VERSION_MINOR_MASK ((1 << CL_VERSION_MINOR_BITS) - 1) #define CL_VERSION_PATCH_MASK ((1 << CL_VERSION_PATCH_BITS) - 1) #define CL_VERSION_MAJOR(version) \ ((version) >> (CL_VERSION_MINOR_BITS + CL_VERSION_PATCH_BITS)) #define CL_VERSION_MINOR(version) \ (((version) >> CL_VERSION_PATCH_BITS) & CL_VERSION_MINOR_MASK) #define CL_VERSION_PATCH(version) ((version) & CL_VERSION_PATCH_MASK) #define CL_MAKE_VERSION(major, minor, patch) \ ((((major) & CL_VERSION_MAJOR_MASK) \ << (CL_VERSION_MINOR_BITS + CL_VERSION_PATCH_BITS)) | \ (((minor) & CL_VERSION_MINOR_MASK) << CL_VERSION_PATCH_BITS) | \ ((patch) & CL_VERSION_PATCH_MASK)) #endif /********************************************************************************************************/ /* CL_NO_PROTOTYPES implies CL_NO_CORE_PROTOTYPES: */ #if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_CORE_PROTOTYPES) #define CL_NO_CORE_PROTOTYPES #endif #if !defined(CL_NO_CORE_PROTOTYPES) /* Platform API */ extern CL_API_ENTRY cl_int CL_API_CALL clGetPlatformIDs(cl_uint num_entries, cl_platform_id * platforms, cl_uint * num_platforms) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL clGetPlatformInfo(cl_platform_id platform, cl_platform_info param_name, size_t param_value_size, void * param_value, size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; /* Device APIs */ extern CL_API_ENTRY cl_int CL_API_CALL clGetDeviceIDs(cl_platform_id platform, cl_device_type device_type, cl_uint num_entries, cl_device_id * devices, cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL clGetDeviceInfo(cl_device_id device, cl_device_info param_name, size_t param_value_size, void * param_value, size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; #ifdef CL_VERSION_1_2 extern CL_API_ENTRY cl_int CL_API_CALL clCreateSubDevices(cl_device_id in_device, const cl_device_partition_property * properties, cl_uint num_devices, cl_device_id * out_devices, cl_uint * num_devices_ret) CL_API_SUFFIX__VERSION_1_2; extern CL_API_ENTRY cl_int CL_API_CALL clRetainDevice(cl_device_id device) CL_API_SUFFIX__VERSION_1_2; extern CL_API_ENTRY cl_int CL_API_CALL clReleaseDevice(cl_device_id device) CL_API_SUFFIX__VERSION_1_2; #endif #ifdef CL_VERSION_2_1 extern CL_API_ENTRY cl_int CL_API_CALL clSetDefaultDeviceCommandQueue(cl_context context, cl_device_id device, cl_command_queue command_queue) CL_API_SUFFIX__VERSION_2_1; extern CL_API_ENTRY cl_int CL_API_CALL clGetDeviceAndHostTimer(cl_device_id device, cl_ulong* device_timestamp, cl_ulong* host_timestamp) CL_API_SUFFIX__VERSION_2_1; extern CL_API_ENTRY cl_int CL_API_CALL clGetHostTimer(cl_device_id device, cl_ulong * host_timestamp) CL_API_SUFFIX__VERSION_2_1; #endif /* Context APIs */ extern CL_API_ENTRY cl_context CL_API_CALL clCreateContext(const cl_context_properties * properties, cl_uint num_devices, const cl_device_id * devices, void (CL_CALLBACK * pfn_notify)(const char * errinfo, const void * private_info, size_t cb, void * user_data), void * user_data, cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_context CL_API_CALL clCreateContextFromType(const cl_context_properties * properties, cl_device_type device_type, void (CL_CALLBACK * pfn_notify)(const char * errinfo, const void * private_info, size_t cb, void * user_data), void * user_data, cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL clRetainContext(cl_context context) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL clReleaseContext(cl_context context) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL clGetContextInfo(cl_context context, cl_context_info param_name, size_t param_value_size, void * param_value, size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; #ifdef CL_VERSION_3_0 extern CL_API_ENTRY cl_int CL_API_CALL clSetContextDestructorCallback(cl_context context, void (CL_CALLBACK* pfn_notify)(cl_context context, void* user_data), void* user_data) CL_API_SUFFIX__VERSION_3_0; #endif /* Command Queue APIs */ #ifdef CL_VERSION_2_0 extern CL_API_ENTRY cl_command_queue CL_API_CALL clCreateCommandQueueWithProperties(cl_context context, cl_device_id device, const cl_queue_properties * properties, cl_int * errcode_ret) CL_API_SUFFIX__VERSION_2_0; #endif extern CL_API_ENTRY cl_int CL_API_CALL clRetainCommandQueue(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL clReleaseCommandQueue(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL clGetCommandQueueInfo(cl_command_queue command_queue, cl_command_queue_info param_name, size_t param_value_size, void * param_value, size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; /* Memory Object APIs */ extern CL_API_ENTRY cl_mem CL_API_CALL clCreateBuffer(cl_context context, cl_mem_flags flags, size_t size, void * host_ptr, cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; #ifdef CL_VERSION_1_1 extern CL_API_ENTRY cl_mem CL_API_CALL clCreateSubBuffer(cl_mem buffer, cl_mem_flags flags, cl_buffer_create_type buffer_create_type, const void * buffer_create_info, cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1; #endif #ifdef CL_VERSION_1_2 extern CL_API_ENTRY cl_mem CL_API_CALL clCreateImage(cl_context context, cl_mem_flags flags, const cl_image_format * image_format, const cl_image_desc * image_desc, void * host_ptr, cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; #endif #ifdef CL_VERSION_2_0 extern CL_API_ENTRY cl_mem CL_API_CALL clCreatePipe(cl_context context, cl_mem_flags flags, cl_uint pipe_packet_size, cl_uint pipe_max_packets, const cl_pipe_properties * properties, cl_int * errcode_ret) CL_API_SUFFIX__VERSION_2_0; #endif #ifdef CL_VERSION_3_0 extern CL_API_ENTRY cl_mem CL_API_CALL clCreateBufferWithProperties(cl_context context, const cl_mem_properties * properties, cl_mem_flags flags, size_t size, void * host_ptr, cl_int * errcode_ret) CL_API_SUFFIX__VERSION_3_0; extern CL_API_ENTRY cl_mem CL_API_CALL clCreateImageWithProperties(cl_context context, const cl_mem_properties * properties, cl_mem_flags flags, const cl_image_format * image_format, const cl_image_desc * image_desc, void * host_ptr, cl_int * errcode_ret) CL_API_SUFFIX__VERSION_3_0; #endif extern CL_API_ENTRY cl_int CL_API_CALL clRetainMemObject(cl_mem memobj) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL clReleaseMemObject(cl_mem memobj) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL clGetSupportedImageFormats(cl_context context, cl_mem_flags flags, cl_mem_object_type image_type, cl_uint num_entries, cl_image_format * image_formats, cl_uint * num_image_formats) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL clGetMemObjectInfo(cl_mem memobj, cl_mem_info param_name, size_t param_value_size, void * param_value, size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL clGetImageInfo(cl_mem image, cl_image_info param_name, size_t param_value_size, void * param_value, size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; #ifdef CL_VERSION_2_0 extern CL_API_ENTRY cl_int CL_API_CALL clGetPipeInfo(cl_mem pipe, cl_pipe_info param_name, size_t param_value_size, void * param_value, size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_2_0; #endif #ifdef CL_VERSION_1_1 extern CL_API_ENTRY cl_int CL_API_CALL clSetMemObjectDestructorCallback(cl_mem memobj, void (CL_CALLBACK * pfn_notify)(cl_mem memobj, void * user_data), void * user_data) CL_API_SUFFIX__VERSION_1_1; #endif /* SVM Allocation APIs */ #ifdef CL_VERSION_2_0 extern CL_API_ENTRY void * CL_API_CALL clSVMAlloc(cl_context context, cl_svm_mem_flags flags, size_t size, cl_uint alignment) CL_API_SUFFIX__VERSION_2_0; extern CL_API_ENTRY void CL_API_CALL clSVMFree(cl_context context, void * svm_pointer) CL_API_SUFFIX__VERSION_2_0; #endif /* Sampler APIs */ #ifdef CL_VERSION_2_0 extern CL_API_ENTRY cl_sampler CL_API_CALL clCreateSamplerWithProperties(cl_context context, const cl_sampler_properties * sampler_properties, cl_int * errcode_ret) CL_API_SUFFIX__VERSION_2_0; #endif extern CL_API_ENTRY cl_int CL_API_CALL clRetainSampler(cl_sampler sampler) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL clReleaseSampler(cl_sampler sampler) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL clGetSamplerInfo(cl_sampler sampler, cl_sampler_info param_name, size_t param_value_size, void * param_value, size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; /* Program Object APIs */ extern CL_API_ENTRY cl_program CL_API_CALL clCreateProgramWithSource(cl_context context, cl_uint count, const char ** strings, const size_t * lengths, cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_program CL_API_CALL clCreateProgramWithBinary(cl_context context, cl_uint num_devices, const cl_device_id * device_list, const size_t * lengths, const unsigned char ** binaries, cl_int * binary_status, cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; #ifdef CL_VERSION_1_2 extern CL_API_ENTRY cl_program CL_API_CALL clCreateProgramWithBuiltInKernels(cl_context context, cl_uint num_devices, const cl_device_id * device_list, const char * kernel_names, cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; #endif #ifdef CL_VERSION_2_1 extern CL_API_ENTRY cl_program CL_API_CALL clCreateProgramWithIL(cl_context context, const void* il, size_t length, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_2_1; #endif extern CL_API_ENTRY cl_int CL_API_CALL clRetainProgram(cl_program program) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL clReleaseProgram(cl_program program) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL clBuildProgram(cl_program program, cl_uint num_devices, const cl_device_id * device_list, const char * options, void (CL_CALLBACK * pfn_notify)(cl_program program, void * user_data), void * user_data) CL_API_SUFFIX__VERSION_1_0; #ifdef CL_VERSION_1_2 extern CL_API_ENTRY cl_int CL_API_CALL clCompileProgram(cl_program program, cl_uint num_devices, const cl_device_id * device_list, const char * options, cl_uint num_input_headers, const cl_program * input_headers, const char ** header_include_names, void (CL_CALLBACK * pfn_notify)(cl_program program, void * user_data), void * user_data) CL_API_SUFFIX__VERSION_1_2; extern CL_API_ENTRY cl_program CL_API_CALL clLinkProgram(cl_context context, cl_uint num_devices, const cl_device_id * device_list, const char * options, cl_uint num_input_programs, const cl_program * input_programs, void (CL_CALLBACK * pfn_notify)(cl_program program, void * user_data), void * user_data, cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; #endif #ifdef CL_VERSION_2_2 extern CL_API_ENTRY CL_API_PREFIX__VERSION_2_2_DEPRECATED cl_int CL_API_CALL clSetProgramReleaseCallback(cl_program program, void (CL_CALLBACK * pfn_notify)(cl_program program, void * user_data), void * user_data) CL_API_SUFFIX__VERSION_2_2_DEPRECATED; extern CL_API_ENTRY cl_int CL_API_CALL clSetProgramSpecializationConstant(cl_program program, cl_uint spec_id, size_t spec_size, const void* spec_value) CL_API_SUFFIX__VERSION_2_2; #endif #ifdef CL_VERSION_1_2 extern CL_API_ENTRY cl_int CL_API_CALL clUnloadPlatformCompiler(cl_platform_id platform) CL_API_SUFFIX__VERSION_1_2; #endif extern CL_API_ENTRY cl_int CL_API_CALL clGetProgramInfo(cl_program program, cl_program_info param_name, size_t param_value_size, void * param_value, size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL clGetProgramBuildInfo(cl_program program, cl_device_id device, cl_program_build_info param_name, size_t param_value_size, void * param_value, size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; /* Kernel Object APIs */ extern CL_API_ENTRY cl_kernel CL_API_CALL clCreateKernel(cl_program program, const char * kernel_name, cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL clCreateKernelsInProgram(cl_program program, cl_uint num_kernels, cl_kernel * kernels, cl_uint * num_kernels_ret) CL_API_SUFFIX__VERSION_1_0; #ifdef CL_VERSION_2_1 extern CL_API_ENTRY cl_kernel CL_API_CALL clCloneKernel(cl_kernel source_kernel, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_2_1; #endif extern CL_API_ENTRY cl_int CL_API_CALL clRetainKernel(cl_kernel kernel) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL clReleaseKernel(cl_kernel kernel) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL clSetKernelArg(cl_kernel kernel, cl_uint arg_index, size_t arg_size, const void * arg_value) CL_API_SUFFIX__VERSION_1_0; #ifdef CL_VERSION_2_0 extern CL_API_ENTRY cl_int CL_API_CALL clSetKernelArgSVMPointer(cl_kernel kernel, cl_uint arg_index, const void * arg_value) CL_API_SUFFIX__VERSION_2_0; extern CL_API_ENTRY cl_int CL_API_CALL clSetKernelExecInfo(cl_kernel kernel, cl_kernel_exec_info param_name, size_t param_value_size, const void * param_value) CL_API_SUFFIX__VERSION_2_0; #endif extern CL_API_ENTRY cl_int CL_API_CALL clGetKernelInfo(cl_kernel kernel, cl_kernel_info param_name, size_t param_value_size, void * param_value, size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; #ifdef CL_VERSION_1_2 extern CL_API_ENTRY cl_int CL_API_CALL clGetKernelArgInfo(cl_kernel kernel, cl_uint arg_indx, cl_kernel_arg_info param_name, size_t param_value_size, void * param_value, size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; #endif extern CL_API_ENTRY cl_int CL_API_CALL clGetKernelWorkGroupInfo(cl_kernel kernel, cl_device_id device, cl_kernel_work_group_info param_name, size_t param_value_size, void * param_value, size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; #ifdef CL_VERSION_2_1 extern CL_API_ENTRY cl_int CL_API_CALL clGetKernelSubGroupInfo(cl_kernel kernel, cl_device_id device, cl_kernel_sub_group_info param_name, size_t input_value_size, const void* input_value, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_2_1; #endif /* Event Object APIs */ extern CL_API_ENTRY cl_int CL_API_CALL clWaitForEvents(cl_uint num_events, const cl_event * event_list) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL clGetEventInfo(cl_event event, cl_event_info param_name, size_t param_value_size, void * param_value, size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; #ifdef CL_VERSION_1_1 extern CL_API_ENTRY cl_event CL_API_CALL clCreateUserEvent(cl_context context, cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1; #endif extern CL_API_ENTRY cl_int CL_API_CALL clRetainEvent(cl_event event) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL clReleaseEvent(cl_event event) CL_API_SUFFIX__VERSION_1_0; #ifdef CL_VERSION_1_1 extern CL_API_ENTRY cl_int CL_API_CALL clSetUserEventStatus(cl_event event, cl_int execution_status) CL_API_SUFFIX__VERSION_1_1; extern CL_API_ENTRY cl_int CL_API_CALL clSetEventCallback(cl_event event, cl_int command_exec_callback_type, void (CL_CALLBACK * pfn_notify)(cl_event event, cl_int event_command_status, void * user_data), void * user_data) CL_API_SUFFIX__VERSION_1_1; #endif /* Profiling APIs */ extern CL_API_ENTRY cl_int CL_API_CALL clGetEventProfilingInfo(cl_event event, cl_profiling_info param_name, size_t param_value_size, void * param_value, size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; /* Flush and Finish APIs */ extern CL_API_ENTRY cl_int CL_API_CALL clFlush(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL clFinish(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0; /* Enqueued Commands APIs */ extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueReadBuffer(cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_read, size_t offset, size_t size, void * ptr, cl_uint num_events_in_wait_list, const cl_event * event_wait_list, cl_event * event) CL_API_SUFFIX__VERSION_1_0; #ifdef CL_VERSION_1_1 extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueReadBufferRect(cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_read, const size_t * buffer_origin, const size_t * host_origin, const size_t * region, size_t buffer_row_pitch, size_t buffer_slice_pitch, size_t host_row_pitch, size_t host_slice_pitch, void * ptr, cl_uint num_events_in_wait_list, const cl_event * event_wait_list, cl_event * event) CL_API_SUFFIX__VERSION_1_1; #endif extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueWriteBuffer(cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_write, size_t offset, size_t size, const void * ptr, cl_uint num_events_in_wait_list, const cl_event * event_wait_list, cl_event * event) CL_API_SUFFIX__VERSION_1_0; #ifdef CL_VERSION_1_1 extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueWriteBufferRect(cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_write, const size_t * buffer_origin, const size_t * host_origin, const size_t * region, size_t buffer_row_pitch, size_t buffer_slice_pitch, size_t host_row_pitch, size_t host_slice_pitch, const void * ptr, cl_uint num_events_in_wait_list, const cl_event * event_wait_list, cl_event * event) CL_API_SUFFIX__VERSION_1_1; #endif #ifdef CL_VERSION_1_2 extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueFillBuffer(cl_command_queue command_queue, cl_mem buffer, const void * pattern, size_t pattern_size, size_t offset, size_t size, cl_uint num_events_in_wait_list, const cl_event * event_wait_list, cl_event * event) CL_API_SUFFIX__VERSION_1_2; #endif extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueCopyBuffer(cl_command_queue command_queue, cl_mem src_buffer, cl_mem dst_buffer, size_t src_offset, size_t dst_offset, size_t size, cl_uint num_events_in_wait_list, const cl_event * event_wait_list, cl_event * event) CL_API_SUFFIX__VERSION_1_0; #ifdef CL_VERSION_1_1 extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueCopyBufferRect(cl_command_queue command_queue, cl_mem src_buffer, cl_mem dst_buffer, const size_t * src_origin, const size_t * dst_origin, const size_t * region, size_t src_row_pitch, size_t src_slice_pitch, size_t dst_row_pitch, size_t dst_slice_pitch, cl_uint num_events_in_wait_list, const cl_event * event_wait_list, cl_event * event) CL_API_SUFFIX__VERSION_1_1; #endif extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueReadImage(cl_command_queue command_queue, cl_mem image, cl_bool blocking_read, const size_t * origin, const size_t * region, size_t row_pitch, size_t slice_pitch, void * ptr, cl_uint num_events_in_wait_list, const cl_event * event_wait_list, cl_event * event) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueWriteImage(cl_command_queue command_queue, cl_mem image, cl_bool blocking_write, const size_t * origin, const size_t * region, size_t input_row_pitch, size_t input_slice_pitch, const void * ptr, cl_uint num_events_in_wait_list, const cl_event * event_wait_list, cl_event * event) CL_API_SUFFIX__VERSION_1_0; #ifdef CL_VERSION_1_2 extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueFillImage(cl_command_queue command_queue, cl_mem image, const void * fill_color, const size_t * origin, const size_t * region, cl_uint num_events_in_wait_list, const cl_event * event_wait_list, cl_event * event) CL_API_SUFFIX__VERSION_1_2; #endif extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueCopyImage(cl_command_queue command_queue, cl_mem src_image, cl_mem dst_image, const size_t * src_origin, const size_t * dst_origin, const size_t * region, cl_uint num_events_in_wait_list, const cl_event * event_wait_list, cl_event * event) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueCopyImageToBuffer(cl_command_queue command_queue, cl_mem src_image, cl_mem dst_buffer, const size_t * src_origin, const size_t * region, size_t dst_offset, cl_uint num_events_in_wait_list, const cl_event * event_wait_list, cl_event * event) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueCopyBufferToImage(cl_command_queue command_queue, cl_mem src_buffer, cl_mem dst_image, size_t src_offset, const size_t * dst_origin, const size_t * region, cl_uint num_events_in_wait_list, const cl_event * event_wait_list, cl_event * event) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY void * CL_API_CALL clEnqueueMapBuffer(cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_map, cl_map_flags map_flags, size_t offset, size_t size, cl_uint num_events_in_wait_list, const cl_event * event_wait_list, cl_event * event, cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY void * CL_API_CALL clEnqueueMapImage(cl_command_queue command_queue, cl_mem image, cl_bool blocking_map, cl_map_flags map_flags, const size_t * origin, const size_t * region, size_t * image_row_pitch, size_t * image_slice_pitch, cl_uint num_events_in_wait_list, const cl_event * event_wait_list, cl_event * event, cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueUnmapMemObject(cl_command_queue command_queue, cl_mem memobj, void * mapped_ptr, cl_uint num_events_in_wait_list, const cl_event * event_wait_list, cl_event * event) CL_API_SUFFIX__VERSION_1_0; #ifdef CL_VERSION_1_2 extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueMigrateMemObjects(cl_command_queue command_queue, cl_uint num_mem_objects, const cl_mem * mem_objects, cl_mem_migration_flags flags, cl_uint num_events_in_wait_list, const cl_event * event_wait_list, cl_event * event) CL_API_SUFFIX__VERSION_1_2; #endif extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueNDRangeKernel(cl_command_queue command_queue, cl_kernel kernel, cl_uint work_dim, const size_t * global_work_offset, const size_t * global_work_size, const size_t * local_work_size, cl_uint num_events_in_wait_list, const cl_event * event_wait_list, cl_event * event) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueNativeKernel(cl_command_queue command_queue, void (CL_CALLBACK * user_func)(void *), void * args, size_t cb_args, cl_uint num_mem_objects, const cl_mem * mem_list, const void ** args_mem_loc, cl_uint num_events_in_wait_list, const cl_event * event_wait_list, cl_event * event) CL_API_SUFFIX__VERSION_1_0; #ifdef CL_VERSION_1_2 extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueMarkerWithWaitList(cl_command_queue command_queue, cl_uint num_events_in_wait_list, const cl_event * event_wait_list, cl_event * event) CL_API_SUFFIX__VERSION_1_2; extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueBarrierWithWaitList(cl_command_queue command_queue, cl_uint num_events_in_wait_list, const cl_event * event_wait_list, cl_event * event) CL_API_SUFFIX__VERSION_1_2; #endif #ifdef CL_VERSION_2_0 extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueSVMFree(cl_command_queue command_queue, cl_uint num_svm_pointers, void * svm_pointers[], void (CL_CALLBACK * pfn_free_func)(cl_command_queue queue, cl_uint num_svm_pointers, void * svm_pointers[], void * user_data), void * user_data, cl_uint num_events_in_wait_list, const cl_event * event_wait_list, cl_event * event) CL_API_SUFFIX__VERSION_2_0; extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueSVMMemcpy(cl_command_queue command_queue, cl_bool blocking_copy, void * dst_ptr, const void * src_ptr, size_t size, cl_uint num_events_in_wait_list, const cl_event * event_wait_list, cl_event * event) CL_API_SUFFIX__VERSION_2_0; extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueSVMMemFill(cl_command_queue command_queue, void * svm_ptr, const void * pattern, size_t pattern_size, size_t size, cl_uint num_events_in_wait_list, const cl_event * event_wait_list, cl_event * event) CL_API_SUFFIX__VERSION_2_0; extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueSVMMap(cl_command_queue command_queue, cl_bool blocking_map, cl_map_flags flags, void * svm_ptr, size_t size, cl_uint num_events_in_wait_list, const cl_event * event_wait_list, cl_event * event) CL_API_SUFFIX__VERSION_2_0; extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueSVMUnmap(cl_command_queue command_queue, void * svm_ptr, cl_uint num_events_in_wait_list, const cl_event * event_wait_list, cl_event * event) CL_API_SUFFIX__VERSION_2_0; #endif #ifdef CL_VERSION_2_1 extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueSVMMigrateMem(cl_command_queue command_queue, cl_uint num_svm_pointers, const void ** svm_pointers, const size_t * sizes, cl_mem_migration_flags flags, cl_uint num_events_in_wait_list, const cl_event * event_wait_list, cl_event * event) CL_API_SUFFIX__VERSION_2_1; #endif #ifdef CL_VERSION_1_2 /* Extension function access * * Returns the extension function address for the given function name, * or NULL if a valid function can not be found. The client must * check to make sure the address is not NULL, before using or * calling the returned function address. */ extern CL_API_ENTRY void * CL_API_CALL clGetExtensionFunctionAddressForPlatform(cl_platform_id platform, const char * func_name) CL_API_SUFFIX__VERSION_1_2; #endif #ifdef CL_USE_DEPRECATED_OPENCL_1_0_APIS /* * WARNING: * This API introduces mutable state into the OpenCL implementation. It has been REMOVED * to better facilitate thread safety. The 1.0 API is not thread safe. It is not tested by the * OpenCL 1.1 conformance test, and consequently may not work or may not work dependably. * It is likely to be non-performant. Use of this API is not advised. Use at your own risk. * * Software developers previously relying on this API are instructed to set the command queue * properties when creating the queue, instead. */ extern CL_API_ENTRY cl_int CL_API_CALL clSetCommandQueueProperty(cl_command_queue command_queue, cl_command_queue_properties properties, cl_bool enable, cl_command_queue_properties * old_properties) CL_API_SUFFIX__VERSION_1_0_DEPRECATED; #endif /* CL_USE_DEPRECATED_OPENCL_1_0_APIS */ /* Deprecated OpenCL 1.1 APIs */ extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL clCreateImage2D(cl_context context, cl_mem_flags flags, const cl_image_format * image_format, size_t image_width, size_t image_height, size_t image_row_pitch, void * host_ptr, cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL clCreateImage3D(cl_context context, cl_mem_flags flags, const cl_image_format * image_format, size_t image_width, size_t image_height, size_t image_depth, size_t image_row_pitch, size_t image_slice_pitch, void * host_ptr, cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL clEnqueueMarker(cl_command_queue command_queue, cl_event * event) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL clEnqueueWaitForEvents(cl_command_queue command_queue, cl_uint num_events, const cl_event * event_list) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL clEnqueueBarrier(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL clUnloadCompiler(void) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED void * CL_API_CALL clGetExtensionFunctionAddress(const char * func_name) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; /* Deprecated OpenCL 2.0 APIs */ extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_2_DEPRECATED cl_command_queue CL_API_CALL clCreateCommandQueue(cl_context context, cl_device_id device, cl_command_queue_properties properties, cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2_DEPRECATED; extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_2_DEPRECATED cl_sampler CL_API_CALL clCreateSampler(cl_context context, cl_bool normalized_coords, cl_addressing_mode addressing_mode, cl_filter_mode filter_mode, cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2_DEPRECATED; extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_2_DEPRECATED cl_int CL_API_CALL clEnqueueTask(cl_command_queue command_queue, cl_kernel kernel, cl_uint num_events_in_wait_list, const cl_event * event_wait_list, cl_event * event) CL_API_SUFFIX__VERSION_1_2_DEPRECATED; #endif /* !defined(CL_NO_CORE_PROTOTYPES) */ #ifdef __cplusplus } #endif #endif /* __OPENCL_CL_H */ par2cmdline-turbo-1.5.0/parpar/gf16/opencl-include/CL/cl_platform.h000066400000000000000000001251441524160147200247610ustar00rootroot00000000000000/******************************************************************************* * Copyright (c) 2008-2020 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. ******************************************************************************/ #ifndef __CL_PLATFORM_H #define __CL_PLATFORM_H #include #ifdef __cplusplus extern "C" { #endif #if defined(_WIN32) #if !defined(CL_API_ENTRY) #define CL_API_ENTRY #endif #if !defined(CL_API_CALL) #define CL_API_CALL __stdcall #endif #if !defined(CL_CALLBACK) #define CL_CALLBACK __stdcall #endif #else #if !defined(CL_API_ENTRY) #define CL_API_ENTRY #endif #if !defined(CL_API_CALL) #define CL_API_CALL #endif #if !defined(CL_CALLBACK) #define CL_CALLBACK #endif #endif /* * Deprecation flags refer to the last version of the header in which the * feature was not deprecated. * * E.g. VERSION_1_1_DEPRECATED means the feature is present in 1.1 without * deprecation but is deprecated in versions later than 1.1. */ #ifndef CL_API_SUFFIX_USER #define CL_API_SUFFIX_USER #endif #ifndef CL_API_PREFIX_USER #define CL_API_PREFIX_USER #endif #define CL_API_SUFFIX_COMMON CL_API_SUFFIX_USER #define CL_API_PREFIX_COMMON CL_API_PREFIX_USER #define CL_API_SUFFIX__VERSION_1_0 CL_API_SUFFIX_COMMON #define CL_API_SUFFIX__VERSION_1_1 CL_API_SUFFIX_COMMON #define CL_API_SUFFIX__VERSION_1_2 CL_API_SUFFIX_COMMON #define CL_API_SUFFIX__VERSION_2_0 CL_API_SUFFIX_COMMON #define CL_API_SUFFIX__VERSION_2_1 CL_API_SUFFIX_COMMON #define CL_API_SUFFIX__VERSION_2_2 CL_API_SUFFIX_COMMON #define CL_API_SUFFIX__VERSION_3_0 CL_API_SUFFIX_COMMON #define CL_API_SUFFIX__EXPERIMENTAL CL_API_SUFFIX_COMMON #ifdef __GNUC__ #define CL_API_SUFFIX_DEPRECATED __attribute__((deprecated)) #define CL_API_PREFIX_DEPRECATED #elif defined(_WIN32) #define CL_API_SUFFIX_DEPRECATED #define CL_API_PREFIX_DEPRECATED __declspec(deprecated) #else #define CL_API_SUFFIX_DEPRECATED #define CL_API_PREFIX_DEPRECATED #endif #ifdef CL_USE_DEPRECATED_OPENCL_1_0_APIS #define CL_API_SUFFIX__VERSION_1_0_DEPRECATED CL_API_SUFFIX_COMMON #define CL_API_PREFIX__VERSION_1_0_DEPRECATED CL_API_PREFIX_COMMON #else #define CL_API_SUFFIX__VERSION_1_0_DEPRECATED CL_API_SUFFIX_COMMON CL_API_SUFFIX_DEPRECATED #define CL_API_PREFIX__VERSION_1_0_DEPRECATED CL_API_PREFIX_COMMON CL_API_PREFIX_DEPRECATED #endif #ifdef CL_USE_DEPRECATED_OPENCL_1_1_APIS #define CL_API_SUFFIX__VERSION_1_1_DEPRECATED CL_API_SUFFIX_COMMON #define CL_API_PREFIX__VERSION_1_1_DEPRECATED CL_API_PREFIX_COMMON #else #define CL_API_SUFFIX__VERSION_1_1_DEPRECATED CL_API_SUFFIX_COMMON CL_API_SUFFIX_DEPRECATED #define CL_API_PREFIX__VERSION_1_1_DEPRECATED CL_API_PREFIX_COMMON CL_API_PREFIX_DEPRECATED #endif #ifdef CL_USE_DEPRECATED_OPENCL_1_2_APIS #define CL_API_SUFFIX__VERSION_1_2_DEPRECATED CL_API_SUFFIX_COMMON #define CL_API_PREFIX__VERSION_1_2_DEPRECATED CL_API_PREFIX_COMMON #else #define CL_API_SUFFIX__VERSION_1_2_DEPRECATED CL_API_SUFFIX_COMMON CL_API_SUFFIX_DEPRECATED #define CL_API_PREFIX__VERSION_1_2_DEPRECATED CL_API_PREFIX_COMMON CL_API_PREFIX_DEPRECATED #endif #ifdef CL_USE_DEPRECATED_OPENCL_2_0_APIS #define CL_API_SUFFIX__VERSION_2_0_DEPRECATED CL_API_SUFFIX_COMMON #define CL_API_PREFIX__VERSION_2_0_DEPRECATED CL_API_PREFIX_COMMON #else #define CL_API_SUFFIX__VERSION_2_0_DEPRECATED CL_API_SUFFIX_COMMON CL_API_SUFFIX_DEPRECATED #define CL_API_PREFIX__VERSION_2_0_DEPRECATED CL_API_PREFIX_COMMON CL_API_PREFIX_DEPRECATED #endif #ifdef CL_USE_DEPRECATED_OPENCL_2_1_APIS #define CL_API_SUFFIX__VERSION_2_1_DEPRECATED CL_API_SUFFIX_COMMON #define CL_API_PREFIX__VERSION_2_1_DEPRECATED CL_API_PREFIX_COMMON #else #define CL_API_SUFFIX__VERSION_2_1_DEPRECATED CL_API_SUFFIX_COMMON CL_API_SUFFIX_DEPRECATED #define CL_API_PREFIX__VERSION_2_1_DEPRECATED CL_API_PREFIX_COMMON CL_API_PREFIX_DEPRECATED #endif #ifdef CL_USE_DEPRECATED_OPENCL_2_2_APIS #define CL_API_SUFFIX__VERSION_2_2_DEPRECATED CL_API_SUFFIX_COMMON #define CL_API_PREFIX__VERSION_2_2_DEPRECATED CL_API_PREFIX_COMMON #else #define CL_API_SUFFIX__VERSION_2_2_DEPRECATED CL_API_SUFFIX_COMMON CL_API_SUFFIX_DEPRECATED #define CL_API_PREFIX__VERSION_2_2_DEPRECATED CL_API_PREFIX_COMMON CL_API_PREFIX_DEPRECATED #endif #if (defined (_WIN32) && defined(_MSC_VER)) #if defined(__clang__) #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wlanguage-extension-token" #endif /* intptr_t is used in cl.h and provided by stddef.h in Visual C++, but not in clang */ /* stdint.h was missing before Visual Studio 2010, include it for later versions and for clang */ #if defined(__clang__) || _MSC_VER >= 1600 #include #endif /* scalar types */ typedef signed __int8 cl_char; typedef unsigned __int8 cl_uchar; typedef signed __int16 cl_short; typedef unsigned __int16 cl_ushort; typedef signed __int32 cl_int; typedef unsigned __int32 cl_uint; typedef signed __int64 cl_long; typedef unsigned __int64 cl_ulong; typedef unsigned __int16 cl_half; typedef float cl_float; typedef double cl_double; #if defined(__clang__) #pragma clang diagnostic pop #endif /* Macro names and corresponding values defined by OpenCL */ #define CL_CHAR_BIT 8 #define CL_SCHAR_MAX 127 #define CL_SCHAR_MIN (-127-1) #define CL_CHAR_MAX CL_SCHAR_MAX #define CL_CHAR_MIN CL_SCHAR_MIN #define CL_UCHAR_MAX 255 #define CL_SHRT_MAX 32767 #define CL_SHRT_MIN (-32767-1) #define CL_USHRT_MAX 65535 #define CL_INT_MAX 2147483647 #define CL_INT_MIN (-2147483647-1) #define CL_UINT_MAX 0xffffffffU #define CL_LONG_MAX ((cl_long) 0x7FFFFFFFFFFFFFFFLL) #define CL_LONG_MIN ((cl_long) -0x7FFFFFFFFFFFFFFFLL - 1LL) #define CL_ULONG_MAX ((cl_ulong) 0xFFFFFFFFFFFFFFFFULL) #define CL_FLT_DIG 6 #define CL_FLT_MANT_DIG 24 #define CL_FLT_MAX_10_EXP +38 #define CL_FLT_MAX_EXP +128 #define CL_FLT_MIN_10_EXP -37 #define CL_FLT_MIN_EXP -125 #define CL_FLT_RADIX 2 #define CL_FLT_MAX 340282346638528859811704183484516925440.0f #define CL_FLT_MIN 1.175494350822287507969e-38f #define CL_FLT_EPSILON 1.1920928955078125e-7f #define CL_HALF_DIG 3 #define CL_HALF_MANT_DIG 11 #define CL_HALF_MAX_10_EXP +4 #define CL_HALF_MAX_EXP +16 #define CL_HALF_MIN_10_EXP -4 #define CL_HALF_MIN_EXP -13 #define CL_HALF_RADIX 2 #define CL_HALF_MAX 65504.0f #define CL_HALF_MIN 6.103515625e-05f #define CL_HALF_EPSILON 9.765625e-04f #define CL_DBL_DIG 15 #define CL_DBL_MANT_DIG 53 #define CL_DBL_MAX_10_EXP +308 #define CL_DBL_MAX_EXP +1024 #define CL_DBL_MIN_10_EXP -307 #define CL_DBL_MIN_EXP -1021 #define CL_DBL_RADIX 2 #define CL_DBL_MAX 1.7976931348623158e+308 #define CL_DBL_MIN 2.225073858507201383090e-308 #define CL_DBL_EPSILON 2.220446049250313080847e-16 #define CL_M_E 2.7182818284590452354 #define CL_M_LOG2E 1.4426950408889634074 #define CL_M_LOG10E 0.43429448190325182765 #define CL_M_LN2 0.69314718055994530942 #define CL_M_LN10 2.30258509299404568402 #define CL_M_PI 3.14159265358979323846 #define CL_M_PI_2 1.57079632679489661923 #define CL_M_PI_4 0.78539816339744830962 #define CL_M_1_PI 0.31830988618379067154 #define CL_M_2_PI 0.63661977236758134308 #define CL_M_2_SQRTPI 1.12837916709551257390 #define CL_M_SQRT2 1.41421356237309504880 #define CL_M_SQRT1_2 0.70710678118654752440 #define CL_M_E_F 2.718281828f #define CL_M_LOG2E_F 1.442695041f #define CL_M_LOG10E_F 0.434294482f #define CL_M_LN2_F 0.693147181f #define CL_M_LN10_F 2.302585093f #define CL_M_PI_F 3.141592654f #define CL_M_PI_2_F 1.570796327f #define CL_M_PI_4_F 0.785398163f #define CL_M_1_PI_F 0.318309886f #define CL_M_2_PI_F 0.636619772f #define CL_M_2_SQRTPI_F 1.128379167f #define CL_M_SQRT2_F 1.414213562f #define CL_M_SQRT1_2_F 0.707106781f #define CL_NAN (CL_INFINITY - CL_INFINITY) #define CL_HUGE_VALF ((cl_float) 1e50) #define CL_HUGE_VAL ((cl_double) 1e500) #define CL_MAXFLOAT CL_FLT_MAX #define CL_INFINITY CL_HUGE_VALF #else #include /* scalar types */ typedef int8_t cl_char; typedef uint8_t cl_uchar; typedef int16_t cl_short; typedef uint16_t cl_ushort; typedef int32_t cl_int; typedef uint32_t cl_uint; typedef int64_t cl_long; typedef uint64_t cl_ulong; typedef uint16_t cl_half; typedef float cl_float; typedef double cl_double; /* Macro names and corresponding values defined by OpenCL */ #define CL_CHAR_BIT 8 #define CL_SCHAR_MAX 127 #define CL_SCHAR_MIN (-127-1) #define CL_CHAR_MAX CL_SCHAR_MAX #define CL_CHAR_MIN CL_SCHAR_MIN #define CL_UCHAR_MAX 255 #define CL_SHRT_MAX 32767 #define CL_SHRT_MIN (-32767-1) #define CL_USHRT_MAX 65535 #define CL_INT_MAX 2147483647 #define CL_INT_MIN (-2147483647-1) #define CL_UINT_MAX 0xffffffffU #define CL_LONG_MAX ((cl_long) 0x7FFFFFFFFFFFFFFFLL) #define CL_LONG_MIN ((cl_long) -0x7FFFFFFFFFFFFFFFLL - 1LL) #define CL_ULONG_MAX ((cl_ulong) 0xFFFFFFFFFFFFFFFFULL) #define CL_FLT_DIG 6 #define CL_FLT_MANT_DIG 24 #define CL_FLT_MAX_10_EXP +38 #define CL_FLT_MAX_EXP +128 #define CL_FLT_MIN_10_EXP -37 #define CL_FLT_MIN_EXP -125 #define CL_FLT_RADIX 2 #define CL_FLT_MAX 340282346638528859811704183484516925440.0f #define CL_FLT_MIN 1.175494350822287507969e-38f #define CL_FLT_EPSILON 1.1920928955078125e-7f #define CL_HALF_DIG 3 #define CL_HALF_MANT_DIG 11 #define CL_HALF_MAX_10_EXP +4 #define CL_HALF_MAX_EXP +16 #define CL_HALF_MIN_10_EXP -4 #define CL_HALF_MIN_EXP -13 #define CL_HALF_RADIX 2 #define CL_HALF_MAX 65504.0f #define CL_HALF_MIN 6.103515625e-05f #define CL_HALF_EPSILON 9.765625e-04f #define CL_DBL_DIG 15 #define CL_DBL_MANT_DIG 53 #define CL_DBL_MAX_10_EXP +308 #define CL_DBL_MAX_EXP +1024 #define CL_DBL_MIN_10_EXP -307 #define CL_DBL_MIN_EXP -1021 #define CL_DBL_RADIX 2 #define CL_DBL_MAX 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0 #define CL_DBL_MIN 2.225073858507201383090e-308 #define CL_DBL_EPSILON 2.220446049250313080847e-16 #define CL_M_E 2.7182818284590452354 #define CL_M_LOG2E 1.4426950408889634074 #define CL_M_LOG10E 0.43429448190325182765 #define CL_M_LN2 0.69314718055994530942 #define CL_M_LN10 2.30258509299404568402 #define CL_M_PI 3.14159265358979323846 #define CL_M_PI_2 1.57079632679489661923 #define CL_M_PI_4 0.78539816339744830962 #define CL_M_1_PI 0.31830988618379067154 #define CL_M_2_PI 0.63661977236758134308 #define CL_M_2_SQRTPI 1.12837916709551257390 #define CL_M_SQRT2 1.41421356237309504880 #define CL_M_SQRT1_2 0.70710678118654752440 #define CL_M_E_F 2.718281828f #define CL_M_LOG2E_F 1.442695041f #define CL_M_LOG10E_F 0.434294482f #define CL_M_LN2_F 0.693147181f #define CL_M_LN10_F 2.302585093f #define CL_M_PI_F 3.141592654f #define CL_M_PI_2_F 1.570796327f #define CL_M_PI_4_F 0.785398163f #define CL_M_1_PI_F 0.318309886f #define CL_M_2_PI_F 0.636619772f #define CL_M_2_SQRTPI_F 1.128379167f #define CL_M_SQRT2_F 1.414213562f #define CL_M_SQRT1_2_F 0.707106781f #if defined( __GNUC__ ) #define CL_HUGE_VALF __builtin_huge_valf() #define CL_HUGE_VAL __builtin_huge_val() #define CL_NAN __builtin_nanf( "" ) #else #define CL_HUGE_VALF ((cl_float) 1e50) #define CL_HUGE_VAL ((cl_double) 1e500) float nanf( const char * ); #define CL_NAN nanf( "" ) #endif #define CL_MAXFLOAT CL_FLT_MAX #define CL_INFINITY CL_HUGE_VALF #endif #include /* Mirror types to GL types. Mirror types allow us to avoid deciding which 87s to load based on whether we are using GL or GLES here. */ typedef unsigned int cl_GLuint; typedef int cl_GLint; typedef unsigned int cl_GLenum; /* * Vector types * * Note: OpenCL requires that all types be naturally aligned. * This means that vector types must be naturally aligned. * For example, a vector of four floats must be aligned to * a 16 byte boundary (calculated as 4 * the natural 4-byte * alignment of the float). The alignment qualifiers here * will only function properly if your compiler supports them * and if you don't actively work to defeat them. For example, * in order for a cl_float4 to be 16 byte aligned in a struct, * the start of the struct must itself be 16-byte aligned. * * Maintaining proper alignment is the user's responsibility. */ /* Define basic vector types */ // disabled Altivec support as it causes unknown build issues [https://github.com/animetosho/par2cmdline-turbo/issues/18]; can't seem to reproduce, but it's not really necessary anyway #if defined( __VEC__ ) && 0 #if !defined(__clang__) #include /* may be omitted depending on compiler. AltiVec spec provides no way to detect whether the header is required. */ #endif typedef __vector unsigned char __cl_uchar16; typedef __vector signed char __cl_char16; typedef __vector unsigned short __cl_ushort8; typedef __vector signed short __cl_short8; typedef __vector unsigned int __cl_uint4; typedef __vector signed int __cl_int4; typedef __vector float __cl_float4; #define __CL_UCHAR16__ 1 #define __CL_CHAR16__ 1 #define __CL_USHORT8__ 1 #define __CL_SHORT8__ 1 #define __CL_UINT4__ 1 #define __CL_INT4__ 1 #define __CL_FLOAT4__ 1 #endif #if defined( __SSE__ ) #if defined( __MINGW64__ ) #include #else #include #endif #if defined( __GNUC__ ) typedef float __cl_float4 __attribute__((vector_size(16))); #else typedef __m128 __cl_float4; #endif #define __CL_FLOAT4__ 1 #endif #if defined( __SSE2__ ) #if defined( __MINGW64__ ) #include #else #include #endif #if defined( __GNUC__ ) typedef cl_uchar __cl_uchar16 __attribute__((vector_size(16))); typedef cl_char __cl_char16 __attribute__((vector_size(16))); typedef cl_ushort __cl_ushort8 __attribute__((vector_size(16))); typedef cl_short __cl_short8 __attribute__((vector_size(16))); typedef cl_uint __cl_uint4 __attribute__((vector_size(16))); typedef cl_int __cl_int4 __attribute__((vector_size(16))); typedef cl_ulong __cl_ulong2 __attribute__((vector_size(16))); typedef cl_long __cl_long2 __attribute__((vector_size(16))); typedef cl_double __cl_double2 __attribute__((vector_size(16))); #else typedef __m128i __cl_uchar16; typedef __m128i __cl_char16; typedef __m128i __cl_ushort8; typedef __m128i __cl_short8; typedef __m128i __cl_uint4; typedef __m128i __cl_int4; typedef __m128i __cl_ulong2; typedef __m128i __cl_long2; typedef __m128d __cl_double2; #endif #define __CL_UCHAR16__ 1 #define __CL_CHAR16__ 1 #define __CL_USHORT8__ 1 #define __CL_SHORT8__ 1 #define __CL_INT4__ 1 #define __CL_UINT4__ 1 #define __CL_ULONG2__ 1 #define __CL_LONG2__ 1 #define __CL_DOUBLE2__ 1 #endif #if defined( __MMX__ ) #include #if defined( __GNUC__ ) typedef cl_uchar __cl_uchar8 __attribute__((vector_size(8))); typedef cl_char __cl_char8 __attribute__((vector_size(8))); typedef cl_ushort __cl_ushort4 __attribute__((vector_size(8))); typedef cl_short __cl_short4 __attribute__((vector_size(8))); typedef cl_uint __cl_uint2 __attribute__((vector_size(8))); typedef cl_int __cl_int2 __attribute__((vector_size(8))); typedef cl_ulong __cl_ulong1 __attribute__((vector_size(8))); typedef cl_long __cl_long1 __attribute__((vector_size(8))); typedef cl_float __cl_float2 __attribute__((vector_size(8))); #else typedef __m64 __cl_uchar8; typedef __m64 __cl_char8; typedef __m64 __cl_ushort4; typedef __m64 __cl_short4; typedef __m64 __cl_uint2; typedef __m64 __cl_int2; typedef __m64 __cl_ulong1; typedef __m64 __cl_long1; typedef __m64 __cl_float2; #endif #define __CL_UCHAR8__ 1 #define __CL_CHAR8__ 1 #define __CL_USHORT4__ 1 #define __CL_SHORT4__ 1 #define __CL_INT2__ 1 #define __CL_UINT2__ 1 #define __CL_ULONG1__ 1 #define __CL_LONG1__ 1 #define __CL_FLOAT2__ 1 #endif #if defined( __AVX__ ) #if defined( __MINGW64__ ) #include #else #include #endif #if defined( __GNUC__ ) typedef cl_float __cl_float8 __attribute__((vector_size(32))); typedef cl_double __cl_double4 __attribute__((vector_size(32))); #else typedef __m256 __cl_float8; typedef __m256d __cl_double4; #endif #define __CL_FLOAT8__ 1 #define __CL_DOUBLE4__ 1 #endif /* Define capabilities for anonymous struct members. */ #if !defined(__cplusplus) && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L #define __CL_HAS_ANON_STRUCT__ 1 #define __CL_ANON_STRUCT__ #elif defined(_WIN32) && defined(_MSC_VER) && !defined(__STDC__) #define __CL_HAS_ANON_STRUCT__ 1 #define __CL_ANON_STRUCT__ #elif defined(__GNUC__) && ! defined(__STRICT_ANSI__) #define __CL_HAS_ANON_STRUCT__ 1 #define __CL_ANON_STRUCT__ __extension__ #elif defined(__clang__) #define __CL_HAS_ANON_STRUCT__ 1 #define __CL_ANON_STRUCT__ __extension__ #else #define __CL_HAS_ANON_STRUCT__ 0 #define __CL_ANON_STRUCT__ #endif #if defined(_WIN32) && defined(_MSC_VER) && __CL_HAS_ANON_STRUCT__ /* Disable warning C4201: nonstandard extension used : nameless struct/union */ #pragma warning( push ) #pragma warning( disable : 4201 ) #endif /* Define alignment keys */ #if defined( __GNUC__ ) || defined(__INTEGRITY) #define CL_ALIGNED(_x) __attribute__ ((aligned(_x))) #elif defined( _WIN32) && (_MSC_VER) /* Alignment keys neutered on windows because MSVC can't swallow function arguments with alignment requirements */ /* http://msdn.microsoft.com/en-us/library/373ak2y1%28VS.71%29.aspx */ /* #include */ /* #define CL_ALIGNED(_x) _CRT_ALIGN(_x) */ #define CL_ALIGNED(_x) #else #warning Need to implement some method to align data here #define CL_ALIGNED(_x) #endif /* Indicate whether .xyzw, .s0123 and .hi.lo are supported */ #if __CL_HAS_ANON_STRUCT__ /* .xyzw and .s0123...{f|F} are supported */ #define CL_HAS_NAMED_VECTOR_FIELDS 1 /* .hi and .lo are supported */ #define CL_HAS_HI_LO_VECTOR_FIELDS 1 #endif /* Define cl_vector types */ /* ---- cl_charn ---- */ typedef union { cl_char CL_ALIGNED(2) s[2]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_char x, y; }; __CL_ANON_STRUCT__ struct{ cl_char s0, s1; }; __CL_ANON_STRUCT__ struct{ cl_char lo, hi; }; #endif #if defined( __CL_CHAR2__) __cl_char2 v2; #endif }cl_char2; typedef union { cl_char CL_ALIGNED(4) s[4]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_char x, y, z, w; }; __CL_ANON_STRUCT__ struct{ cl_char s0, s1, s2, s3; }; __CL_ANON_STRUCT__ struct{ cl_char2 lo, hi; }; #endif #if defined( __CL_CHAR2__) __cl_char2 v2[2]; #endif #if defined( __CL_CHAR4__) __cl_char4 v4; #endif }cl_char4; /* cl_char3 is identical in size, alignment and behavior to cl_char4. See section 6.1.5. */ typedef cl_char4 cl_char3; typedef union { cl_char CL_ALIGNED(8) s[8]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_char x, y, z, w; }; __CL_ANON_STRUCT__ struct{ cl_char s0, s1, s2, s3, s4, s5, s6, s7; }; __CL_ANON_STRUCT__ struct{ cl_char4 lo, hi; }; #endif #if defined( __CL_CHAR2__) __cl_char2 v2[4]; #endif #if defined( __CL_CHAR4__) __cl_char4 v4[2]; #endif #if defined( __CL_CHAR8__ ) __cl_char8 v8; #endif }cl_char8; typedef union { cl_char CL_ALIGNED(16) s[16]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_char x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; __CL_ANON_STRUCT__ struct{ cl_char s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; __CL_ANON_STRUCT__ struct{ cl_char8 lo, hi; }; #endif #if defined( __CL_CHAR2__) __cl_char2 v2[8]; #endif #if defined( __CL_CHAR4__) __cl_char4 v4[4]; #endif #if defined( __CL_CHAR8__ ) __cl_char8 v8[2]; #endif #if defined( __CL_CHAR16__ ) __cl_char16 v16; #endif }cl_char16; /* ---- cl_ucharn ---- */ typedef union { cl_uchar CL_ALIGNED(2) s[2]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_uchar x, y; }; __CL_ANON_STRUCT__ struct{ cl_uchar s0, s1; }; __CL_ANON_STRUCT__ struct{ cl_uchar lo, hi; }; #endif #if defined( __cl_uchar2__) __cl_uchar2 v2; #endif }cl_uchar2; typedef union { cl_uchar CL_ALIGNED(4) s[4]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_uchar x, y, z, w; }; __CL_ANON_STRUCT__ struct{ cl_uchar s0, s1, s2, s3; }; __CL_ANON_STRUCT__ struct{ cl_uchar2 lo, hi; }; #endif #if defined( __CL_UCHAR2__) __cl_uchar2 v2[2]; #endif #if defined( __CL_UCHAR4__) __cl_uchar4 v4; #endif }cl_uchar4; /* cl_uchar3 is identical in size, alignment and behavior to cl_uchar4. See section 6.1.5. */ typedef cl_uchar4 cl_uchar3; typedef union { cl_uchar CL_ALIGNED(8) s[8]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_uchar x, y, z, w; }; __CL_ANON_STRUCT__ struct{ cl_uchar s0, s1, s2, s3, s4, s5, s6, s7; }; __CL_ANON_STRUCT__ struct{ cl_uchar4 lo, hi; }; #endif #if defined( __CL_UCHAR2__) __cl_uchar2 v2[4]; #endif #if defined( __CL_UCHAR4__) __cl_uchar4 v4[2]; #endif #if defined( __CL_UCHAR8__ ) __cl_uchar8 v8; #endif }cl_uchar8; typedef union { cl_uchar CL_ALIGNED(16) s[16]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_uchar x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; __CL_ANON_STRUCT__ struct{ cl_uchar s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; __CL_ANON_STRUCT__ struct{ cl_uchar8 lo, hi; }; #endif #if defined( __CL_UCHAR2__) __cl_uchar2 v2[8]; #endif #if defined( __CL_UCHAR4__) __cl_uchar4 v4[4]; #endif #if defined( __CL_UCHAR8__ ) __cl_uchar8 v8[2]; #endif #if defined( __CL_UCHAR16__ ) __cl_uchar16 v16; #endif }cl_uchar16; /* ---- cl_shortn ---- */ typedef union { cl_short CL_ALIGNED(4) s[2]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_short x, y; }; __CL_ANON_STRUCT__ struct{ cl_short s0, s1; }; __CL_ANON_STRUCT__ struct{ cl_short lo, hi; }; #endif #if defined( __CL_SHORT2__) __cl_short2 v2; #endif }cl_short2; typedef union { cl_short CL_ALIGNED(8) s[4]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_short x, y, z, w; }; __CL_ANON_STRUCT__ struct{ cl_short s0, s1, s2, s3; }; __CL_ANON_STRUCT__ struct{ cl_short2 lo, hi; }; #endif #if defined( __CL_SHORT2__) __cl_short2 v2[2]; #endif #if defined( __CL_SHORT4__) __cl_short4 v4; #endif }cl_short4; /* cl_short3 is identical in size, alignment and behavior to cl_short4. See section 6.1.5. */ typedef cl_short4 cl_short3; typedef union { cl_short CL_ALIGNED(16) s[8]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_short x, y, z, w; }; __CL_ANON_STRUCT__ struct{ cl_short s0, s1, s2, s3, s4, s5, s6, s7; }; __CL_ANON_STRUCT__ struct{ cl_short4 lo, hi; }; #endif #if defined( __CL_SHORT2__) __cl_short2 v2[4]; #endif #if defined( __CL_SHORT4__) __cl_short4 v4[2]; #endif #if defined( __CL_SHORT8__ ) __cl_short8 v8; #endif }cl_short8; typedef union { cl_short CL_ALIGNED(32) s[16]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_short x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; __CL_ANON_STRUCT__ struct{ cl_short s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; __CL_ANON_STRUCT__ struct{ cl_short8 lo, hi; }; #endif #if defined( __CL_SHORT2__) __cl_short2 v2[8]; #endif #if defined( __CL_SHORT4__) __cl_short4 v4[4]; #endif #if defined( __CL_SHORT8__ ) __cl_short8 v8[2]; #endif #if defined( __CL_SHORT16__ ) __cl_short16 v16; #endif }cl_short16; /* ---- cl_ushortn ---- */ typedef union { cl_ushort CL_ALIGNED(4) s[2]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_ushort x, y; }; __CL_ANON_STRUCT__ struct{ cl_ushort s0, s1; }; __CL_ANON_STRUCT__ struct{ cl_ushort lo, hi; }; #endif #if defined( __CL_USHORT2__) __cl_ushort2 v2; #endif }cl_ushort2; typedef union { cl_ushort CL_ALIGNED(8) s[4]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_ushort x, y, z, w; }; __CL_ANON_STRUCT__ struct{ cl_ushort s0, s1, s2, s3; }; __CL_ANON_STRUCT__ struct{ cl_ushort2 lo, hi; }; #endif #if defined( __CL_USHORT2__) __cl_ushort2 v2[2]; #endif #if defined( __CL_USHORT4__) __cl_ushort4 v4; #endif }cl_ushort4; /* cl_ushort3 is identical in size, alignment and behavior to cl_ushort4. See section 6.1.5. */ typedef cl_ushort4 cl_ushort3; typedef union { cl_ushort CL_ALIGNED(16) s[8]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_ushort x, y, z, w; }; __CL_ANON_STRUCT__ struct{ cl_ushort s0, s1, s2, s3, s4, s5, s6, s7; }; __CL_ANON_STRUCT__ struct{ cl_ushort4 lo, hi; }; #endif #if defined( __CL_USHORT2__) __cl_ushort2 v2[4]; #endif #if defined( __CL_USHORT4__) __cl_ushort4 v4[2]; #endif #if defined( __CL_USHORT8__ ) __cl_ushort8 v8; #endif }cl_ushort8; typedef union { cl_ushort CL_ALIGNED(32) s[16]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_ushort x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; __CL_ANON_STRUCT__ struct{ cl_ushort s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; __CL_ANON_STRUCT__ struct{ cl_ushort8 lo, hi; }; #endif #if defined( __CL_USHORT2__) __cl_ushort2 v2[8]; #endif #if defined( __CL_USHORT4__) __cl_ushort4 v4[4]; #endif #if defined( __CL_USHORT8__ ) __cl_ushort8 v8[2]; #endif #if defined( __CL_USHORT16__ ) __cl_ushort16 v16; #endif }cl_ushort16; /* ---- cl_halfn ---- */ typedef union { cl_half CL_ALIGNED(4) s[2]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_half x, y; }; __CL_ANON_STRUCT__ struct{ cl_half s0, s1; }; __CL_ANON_STRUCT__ struct{ cl_half lo, hi; }; #endif #if defined( __CL_HALF2__) __cl_half2 v2; #endif }cl_half2; typedef union { cl_half CL_ALIGNED(8) s[4]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_half x, y, z, w; }; __CL_ANON_STRUCT__ struct{ cl_half s0, s1, s2, s3; }; __CL_ANON_STRUCT__ struct{ cl_half2 lo, hi; }; #endif #if defined( __CL_HALF2__) __cl_half2 v2[2]; #endif #if defined( __CL_HALF4__) __cl_half4 v4; #endif }cl_half4; /* cl_half3 is identical in size, alignment and behavior to cl_half4. See section 6.1.5. */ typedef cl_half4 cl_half3; typedef union { cl_half CL_ALIGNED(16) s[8]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_half x, y, z, w; }; __CL_ANON_STRUCT__ struct{ cl_half s0, s1, s2, s3, s4, s5, s6, s7; }; __CL_ANON_STRUCT__ struct{ cl_half4 lo, hi; }; #endif #if defined( __CL_HALF2__) __cl_half2 v2[4]; #endif #if defined( __CL_HALF4__) __cl_half4 v4[2]; #endif #if defined( __CL_HALF8__ ) __cl_half8 v8; #endif }cl_half8; typedef union { cl_half CL_ALIGNED(32) s[16]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_half x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; __CL_ANON_STRUCT__ struct{ cl_half s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; __CL_ANON_STRUCT__ struct{ cl_half8 lo, hi; }; #endif #if defined( __CL_HALF2__) __cl_half2 v2[8]; #endif #if defined( __CL_HALF4__) __cl_half4 v4[4]; #endif #if defined( __CL_HALF8__ ) __cl_half8 v8[2]; #endif #if defined( __CL_HALF16__ ) __cl_half16 v16; #endif }cl_half16; /* ---- cl_intn ---- */ typedef union { cl_int CL_ALIGNED(8) s[2]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_int x, y; }; __CL_ANON_STRUCT__ struct{ cl_int s0, s1; }; __CL_ANON_STRUCT__ struct{ cl_int lo, hi; }; #endif #if defined( __CL_INT2__) __cl_int2 v2; #endif }cl_int2; typedef union { cl_int CL_ALIGNED(16) s[4]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_int x, y, z, w; }; __CL_ANON_STRUCT__ struct{ cl_int s0, s1, s2, s3; }; __CL_ANON_STRUCT__ struct{ cl_int2 lo, hi; }; #endif #if defined( __CL_INT2__) __cl_int2 v2[2]; #endif #if defined( __CL_INT4__) __cl_int4 v4; #endif }cl_int4; /* cl_int3 is identical in size, alignment and behavior to cl_int4. See section 6.1.5. */ typedef cl_int4 cl_int3; typedef union { cl_int CL_ALIGNED(32) s[8]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_int x, y, z, w; }; __CL_ANON_STRUCT__ struct{ cl_int s0, s1, s2, s3, s4, s5, s6, s7; }; __CL_ANON_STRUCT__ struct{ cl_int4 lo, hi; }; #endif #if defined( __CL_INT2__) __cl_int2 v2[4]; #endif #if defined( __CL_INT4__) __cl_int4 v4[2]; #endif #if defined( __CL_INT8__ ) __cl_int8 v8; #endif }cl_int8; typedef union { cl_int CL_ALIGNED(64) s[16]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_int x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; __CL_ANON_STRUCT__ struct{ cl_int s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; __CL_ANON_STRUCT__ struct{ cl_int8 lo, hi; }; #endif #if defined( __CL_INT2__) __cl_int2 v2[8]; #endif #if defined( __CL_INT4__) __cl_int4 v4[4]; #endif #if defined( __CL_INT8__ ) __cl_int8 v8[2]; #endif #if defined( __CL_INT16__ ) __cl_int16 v16; #endif }cl_int16; /* ---- cl_uintn ---- */ typedef union { cl_uint CL_ALIGNED(8) s[2]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_uint x, y; }; __CL_ANON_STRUCT__ struct{ cl_uint s0, s1; }; __CL_ANON_STRUCT__ struct{ cl_uint lo, hi; }; #endif #if defined( __CL_UINT2__) __cl_uint2 v2; #endif }cl_uint2; typedef union { cl_uint CL_ALIGNED(16) s[4]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_uint x, y, z, w; }; __CL_ANON_STRUCT__ struct{ cl_uint s0, s1, s2, s3; }; __CL_ANON_STRUCT__ struct{ cl_uint2 lo, hi; }; #endif #if defined( __CL_UINT2__) __cl_uint2 v2[2]; #endif #if defined( __CL_UINT4__) __cl_uint4 v4; #endif }cl_uint4; /* cl_uint3 is identical in size, alignment and behavior to cl_uint4. See section 6.1.5. */ typedef cl_uint4 cl_uint3; typedef union { cl_uint CL_ALIGNED(32) s[8]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_uint x, y, z, w; }; __CL_ANON_STRUCT__ struct{ cl_uint s0, s1, s2, s3, s4, s5, s6, s7; }; __CL_ANON_STRUCT__ struct{ cl_uint4 lo, hi; }; #endif #if defined( __CL_UINT2__) __cl_uint2 v2[4]; #endif #if defined( __CL_UINT4__) __cl_uint4 v4[2]; #endif #if defined( __CL_UINT8__ ) __cl_uint8 v8; #endif }cl_uint8; typedef union { cl_uint CL_ALIGNED(64) s[16]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_uint x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; __CL_ANON_STRUCT__ struct{ cl_uint s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; __CL_ANON_STRUCT__ struct{ cl_uint8 lo, hi; }; #endif #if defined( __CL_UINT2__) __cl_uint2 v2[8]; #endif #if defined( __CL_UINT4__) __cl_uint4 v4[4]; #endif #if defined( __CL_UINT8__ ) __cl_uint8 v8[2]; #endif #if defined( __CL_UINT16__ ) __cl_uint16 v16; #endif }cl_uint16; /* ---- cl_longn ---- */ typedef union { cl_long CL_ALIGNED(16) s[2]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_long x, y; }; __CL_ANON_STRUCT__ struct{ cl_long s0, s1; }; __CL_ANON_STRUCT__ struct{ cl_long lo, hi; }; #endif #if defined( __CL_LONG2__) __cl_long2 v2; #endif }cl_long2; typedef union { cl_long CL_ALIGNED(32) s[4]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_long x, y, z, w; }; __CL_ANON_STRUCT__ struct{ cl_long s0, s1, s2, s3; }; __CL_ANON_STRUCT__ struct{ cl_long2 lo, hi; }; #endif #if defined( __CL_LONG2__) __cl_long2 v2[2]; #endif #if defined( __CL_LONG4__) __cl_long4 v4; #endif }cl_long4; /* cl_long3 is identical in size, alignment and behavior to cl_long4. See section 6.1.5. */ typedef cl_long4 cl_long3; typedef union { cl_long CL_ALIGNED(64) s[8]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_long x, y, z, w; }; __CL_ANON_STRUCT__ struct{ cl_long s0, s1, s2, s3, s4, s5, s6, s7; }; __CL_ANON_STRUCT__ struct{ cl_long4 lo, hi; }; #endif #if defined( __CL_LONG2__) __cl_long2 v2[4]; #endif #if defined( __CL_LONG4__) __cl_long4 v4[2]; #endif #if defined( __CL_LONG8__ ) __cl_long8 v8; #endif }cl_long8; typedef union { cl_long CL_ALIGNED(128) s[16]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_long x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; __CL_ANON_STRUCT__ struct{ cl_long s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; __CL_ANON_STRUCT__ struct{ cl_long8 lo, hi; }; #endif #if defined( __CL_LONG2__) __cl_long2 v2[8]; #endif #if defined( __CL_LONG4__) __cl_long4 v4[4]; #endif #if defined( __CL_LONG8__ ) __cl_long8 v8[2]; #endif #if defined( __CL_LONG16__ ) __cl_long16 v16; #endif }cl_long16; /* ---- cl_ulongn ---- */ typedef union { cl_ulong CL_ALIGNED(16) s[2]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_ulong x, y; }; __CL_ANON_STRUCT__ struct{ cl_ulong s0, s1; }; __CL_ANON_STRUCT__ struct{ cl_ulong lo, hi; }; #endif #if defined( __CL_ULONG2__) __cl_ulong2 v2; #endif }cl_ulong2; typedef union { cl_ulong CL_ALIGNED(32) s[4]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_ulong x, y, z, w; }; __CL_ANON_STRUCT__ struct{ cl_ulong s0, s1, s2, s3; }; __CL_ANON_STRUCT__ struct{ cl_ulong2 lo, hi; }; #endif #if defined( __CL_ULONG2__) __cl_ulong2 v2[2]; #endif #if defined( __CL_ULONG4__) __cl_ulong4 v4; #endif }cl_ulong4; /* cl_ulong3 is identical in size, alignment and behavior to cl_ulong4. See section 6.1.5. */ typedef cl_ulong4 cl_ulong3; typedef union { cl_ulong CL_ALIGNED(64) s[8]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_ulong x, y, z, w; }; __CL_ANON_STRUCT__ struct{ cl_ulong s0, s1, s2, s3, s4, s5, s6, s7; }; __CL_ANON_STRUCT__ struct{ cl_ulong4 lo, hi; }; #endif #if defined( __CL_ULONG2__) __cl_ulong2 v2[4]; #endif #if defined( __CL_ULONG4__) __cl_ulong4 v4[2]; #endif #if defined( __CL_ULONG8__ ) __cl_ulong8 v8; #endif }cl_ulong8; typedef union { cl_ulong CL_ALIGNED(128) s[16]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_ulong x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; __CL_ANON_STRUCT__ struct{ cl_ulong s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; __CL_ANON_STRUCT__ struct{ cl_ulong8 lo, hi; }; #endif #if defined( __CL_ULONG2__) __cl_ulong2 v2[8]; #endif #if defined( __CL_ULONG4__) __cl_ulong4 v4[4]; #endif #if defined( __CL_ULONG8__ ) __cl_ulong8 v8[2]; #endif #if defined( __CL_ULONG16__ ) __cl_ulong16 v16; #endif }cl_ulong16; /* --- cl_floatn ---- */ typedef union { cl_float CL_ALIGNED(8) s[2]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_float x, y; }; __CL_ANON_STRUCT__ struct{ cl_float s0, s1; }; __CL_ANON_STRUCT__ struct{ cl_float lo, hi; }; #endif #if defined( __CL_FLOAT2__) __cl_float2 v2; #endif }cl_float2; typedef union { cl_float CL_ALIGNED(16) s[4]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_float x, y, z, w; }; __CL_ANON_STRUCT__ struct{ cl_float s0, s1, s2, s3; }; __CL_ANON_STRUCT__ struct{ cl_float2 lo, hi; }; #endif #if defined( __CL_FLOAT2__) __cl_float2 v2[2]; #endif #if defined( __CL_FLOAT4__) __cl_float4 v4; #endif }cl_float4; /* cl_float3 is identical in size, alignment and behavior to cl_float4. See section 6.1.5. */ typedef cl_float4 cl_float3; typedef union { cl_float CL_ALIGNED(32) s[8]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_float x, y, z, w; }; __CL_ANON_STRUCT__ struct{ cl_float s0, s1, s2, s3, s4, s5, s6, s7; }; __CL_ANON_STRUCT__ struct{ cl_float4 lo, hi; }; #endif #if defined( __CL_FLOAT2__) __cl_float2 v2[4]; #endif #if defined( __CL_FLOAT4__) __cl_float4 v4[2]; #endif #if defined( __CL_FLOAT8__ ) __cl_float8 v8; #endif }cl_float8; typedef union { cl_float CL_ALIGNED(64) s[16]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_float x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; __CL_ANON_STRUCT__ struct{ cl_float s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; __CL_ANON_STRUCT__ struct{ cl_float8 lo, hi; }; #endif #if defined( __CL_FLOAT2__) __cl_float2 v2[8]; #endif #if defined( __CL_FLOAT4__) __cl_float4 v4[4]; #endif #if defined( __CL_FLOAT8__ ) __cl_float8 v8[2]; #endif #if defined( __CL_FLOAT16__ ) __cl_float16 v16; #endif }cl_float16; /* --- cl_doublen ---- */ typedef union { cl_double CL_ALIGNED(16) s[2]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_double x, y; }; __CL_ANON_STRUCT__ struct{ cl_double s0, s1; }; __CL_ANON_STRUCT__ struct{ cl_double lo, hi; }; #endif #if defined( __CL_DOUBLE2__) __cl_double2 v2; #endif }cl_double2; typedef union { cl_double CL_ALIGNED(32) s[4]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_double x, y, z, w; }; __CL_ANON_STRUCT__ struct{ cl_double s0, s1, s2, s3; }; __CL_ANON_STRUCT__ struct{ cl_double2 lo, hi; }; #endif #if defined( __CL_DOUBLE2__) __cl_double2 v2[2]; #endif #if defined( __CL_DOUBLE4__) __cl_double4 v4; #endif }cl_double4; /* cl_double3 is identical in size, alignment and behavior to cl_double4. See section 6.1.5. */ typedef cl_double4 cl_double3; typedef union { cl_double CL_ALIGNED(64) s[8]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_double x, y, z, w; }; __CL_ANON_STRUCT__ struct{ cl_double s0, s1, s2, s3, s4, s5, s6, s7; }; __CL_ANON_STRUCT__ struct{ cl_double4 lo, hi; }; #endif #if defined( __CL_DOUBLE2__) __cl_double2 v2[4]; #endif #if defined( __CL_DOUBLE4__) __cl_double4 v4[2]; #endif #if defined( __CL_DOUBLE8__ ) __cl_double8 v8; #endif }cl_double8; typedef union { cl_double CL_ALIGNED(128) s[16]; #if __CL_HAS_ANON_STRUCT__ __CL_ANON_STRUCT__ struct{ cl_double x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; __CL_ANON_STRUCT__ struct{ cl_double s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; __CL_ANON_STRUCT__ struct{ cl_double8 lo, hi; }; #endif #if defined( __CL_DOUBLE2__) __cl_double2 v2[8]; #endif #if defined( __CL_DOUBLE4__) __cl_double4 v4[4]; #endif #if defined( __CL_DOUBLE8__ ) __cl_double8 v8[2]; #endif #if defined( __CL_DOUBLE16__ ) __cl_double16 v16; #endif }cl_double16; /* Macro to facilitate debugging * Usage: * Place CL_PROGRAM_STRING_DEBUG_INFO on the line before the first line of your source. * The first line ends with: CL_PROGRAM_STRING_DEBUG_INFO \" * Each line thereafter of OpenCL C source must end with: \n\ * The last line ends in "; * * Example: * * const char *my_program = CL_PROGRAM_STRING_DEBUG_INFO "\ * kernel void foo( int a, float * b ) \n\ * { \n\ * // my comment \n\ * *b[ get_global_id(0)] = a; \n\ * } \n\ * "; * * This should correctly set up the line, (column) and file information for your source * string so you can do source level debugging. */ #define __CL_STRINGIFY( _x ) # _x #define _CL_STRINGIFY( _x ) __CL_STRINGIFY( _x ) #define CL_PROGRAM_STRING_DEBUG_INFO "#line " _CL_STRINGIFY(__LINE__) " \"" __FILE__ "\" \n\n" #ifdef __cplusplus } #endif #if defined(_WIN32) && defined(_MSC_VER) && __CL_HAS_ANON_STRUCT__ #pragma warning( pop ) #endif #endif /* __CL_PLATFORM_H */ par2cmdline-turbo-1.5.0/parpar/gf16/opencl-include/CL/cl_version.h000066400000000000000000000060651524160147200246220ustar00rootroot00000000000000/******************************************************************************* * Copyright (c) 2018-2020 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. ******************************************************************************/ #ifndef __CL_VERSION_H #define __CL_VERSION_H /* Detect which version to target */ #if !defined(CL_TARGET_OPENCL_VERSION) #pragma message("cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 300 (OpenCL 3.0)") #define CL_TARGET_OPENCL_VERSION 300 #endif #if CL_TARGET_OPENCL_VERSION != 100 && \ CL_TARGET_OPENCL_VERSION != 110 && \ CL_TARGET_OPENCL_VERSION != 120 && \ CL_TARGET_OPENCL_VERSION != 200 && \ CL_TARGET_OPENCL_VERSION != 210 && \ CL_TARGET_OPENCL_VERSION != 220 && \ CL_TARGET_OPENCL_VERSION != 300 #pragma message("cl_version: CL_TARGET_OPENCL_VERSION is not a valid value (100, 110, 120, 200, 210, 220, 300). Defaulting to 300 (OpenCL 3.0)") #undef CL_TARGET_OPENCL_VERSION #define CL_TARGET_OPENCL_VERSION 300 #endif /* OpenCL Version */ #if CL_TARGET_OPENCL_VERSION >= 300 && !defined(CL_VERSION_3_0) #define CL_VERSION_3_0 1 #endif #if CL_TARGET_OPENCL_VERSION >= 220 && !defined(CL_VERSION_2_2) #define CL_VERSION_2_2 1 #endif #if CL_TARGET_OPENCL_VERSION >= 210 && !defined(CL_VERSION_2_1) #define CL_VERSION_2_1 1 #endif #if CL_TARGET_OPENCL_VERSION >= 200 && !defined(CL_VERSION_2_0) #define CL_VERSION_2_0 1 #endif #if CL_TARGET_OPENCL_VERSION >= 120 && !defined(CL_VERSION_1_2) #define CL_VERSION_1_2 1 #endif #if CL_TARGET_OPENCL_VERSION >= 110 && !defined(CL_VERSION_1_1) #define CL_VERSION_1_1 1 #endif #if CL_TARGET_OPENCL_VERSION >= 100 && !defined(CL_VERSION_1_0) #define CL_VERSION_1_0 1 #endif /* Allow deprecated APIs for older OpenCL versions. */ #if CL_TARGET_OPENCL_VERSION <= 220 && !defined(CL_USE_DEPRECATED_OPENCL_2_2_APIS) #define CL_USE_DEPRECATED_OPENCL_2_2_APIS #endif #if CL_TARGET_OPENCL_VERSION <= 210 && !defined(CL_USE_DEPRECATED_OPENCL_2_1_APIS) #define CL_USE_DEPRECATED_OPENCL_2_1_APIS #endif #if CL_TARGET_OPENCL_VERSION <= 200 && !defined(CL_USE_DEPRECATED_OPENCL_2_0_APIS) #define CL_USE_DEPRECATED_OPENCL_2_0_APIS #endif #if CL_TARGET_OPENCL_VERSION <= 120 && !defined(CL_USE_DEPRECATED_OPENCL_1_2_APIS) #define CL_USE_DEPRECATED_OPENCL_1_2_APIS #endif #if CL_TARGET_OPENCL_VERSION <= 110 && !defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) #define CL_USE_DEPRECATED_OPENCL_1_1_APIS #endif #if CL_TARGET_OPENCL_VERSION <= 100 && !defined(CL_USE_DEPRECATED_OPENCL_1_0_APIS) #define CL_USE_DEPRECATED_OPENCL_1_0_APIS #endif #endif /* __CL_VERSION_H */ par2cmdline-turbo-1.5.0/parpar/gf16/opencl-include/CL/opencl.hpp000066400000000000000000013164341524160147200243040ustar00rootroot00000000000000// // Copyright (c) 2008-2023 The Khronos Group Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // /*! \file * * \brief C++ bindings for OpenCL 1.0, OpenCL 1.1, OpenCL 1.2, * OpenCL 2.0, OpenCL 2.1, OpenCL 2.2, and OpenCL 3.0. * \author Lee Howes and Bruce Merry * * Derived from the OpenCL 1.x C++ bindings written by * Benedict R. Gaster, Laurent Morichetti and Lee Howes * With additions and fixes from: * Brian Cole, March 3rd 2010 and April 2012 * Matt Gruenke, April 2012. * Bruce Merry, February 2013. * Tom Deakin and Simon McIntosh-Smith, July 2013 * James Price, 2015- * \version 2.2.0 * \date 2019-09-18 * * Optional extension support * * cl_khr_d3d10_sharing * #define CL_HPP_USE_DX_INTEROP * cl_khr_il_program * #define CL_HPP_USE_IL_KHR * cl_khr_sub_groups * #define CL_HPP_USE_CL_SUB_GROUPS_KHR * * Doxygen documentation for this header is available here: * * http://khronosgroup.github.io/OpenCL-CLHPP/ * * The latest version of this header can be found on the GitHub releases page: * * https://github.com/KhronosGroup/OpenCL-CLHPP/releases * * Bugs and patches can be submitted to the GitHub repository: * * https://github.com/KhronosGroup/OpenCL-CLHPP */ /*! \mainpage * \section intro Introduction * For many large applications C++ is the language of choice and so it seems * reasonable to define C++ bindings for OpenCL. * * The interface is contained with a single C++ header file \em opencl.hpp and all * definitions are contained within the namespace \em cl. There is no additional * requirement to include \em cl.h and to use either the C++ or original C * bindings; it is enough to simply include \em opencl.hpp. * * The bindings themselves are lightweight and correspond closely to the * underlying C API. Using the C++ bindings introduces no additional execution * overhead. * * There are numerous compatibility, portability and memory management * fixes in the new header as well as additional OpenCL 2.0 features. * As a result the header is not directly backward compatible and for this * reason we release it as opencl.hpp rather than a new version of cl.hpp. * * * \section compatibility Compatibility * Due to the evolution of the underlying OpenCL API the 2.0 C++ bindings * include an updated approach to defining supported feature versions * and the range of valid underlying OpenCL runtime versions supported. * * The combination of preprocessor macros CL_HPP_TARGET_OPENCL_VERSION and * CL_HPP_MINIMUM_OPENCL_VERSION control this range. These are three digit * decimal values representing OpenCL runtime versions. The default for * the target is 300, representing OpenCL 3.0. The minimum is defined as 200. * These settings would use 2.0 and newer API calls only. * If backward compatibility with a 1.2 runtime is required, the minimum * version may be set to 120. * * Note that this is a compile-time setting, and so affects linking against * a particular SDK version rather than the versioning of the loaded runtime. * * The earlier versions of the header included basic vector and string * classes based loosely on STL versions. These were difficult to * maintain and very rarely used. For the 2.0 header we now assume * the presence of the standard library unless requested otherwise. * We use std::array, std::vector, std::shared_ptr and std::string * throughout to safely manage memory and reduce the chance of a * recurrance of earlier memory management bugs. * * These classes are used through typedefs in the cl namespace: * cl::array, cl::vector, cl::pointer and cl::string. * In addition cl::allocate_pointer forwards to std::allocate_shared * by default. * In all cases these standard library classes can be replaced with * custom interface-compatible versions using the CL_HPP_NO_STD_ARRAY, * CL_HPP_NO_STD_VECTOR, CL_HPP_NO_STD_UNIQUE_PTR and * CL_HPP_NO_STD_STRING macros. * * The OpenCL 1.x versions of the C++ bindings included a size_t wrapper * class to interface with kernel enqueue. This caused unpleasant interactions * with the standard size_t declaration and led to namespacing bugs. * In the 2.0 version we have replaced this with a std::array-based interface. * However, the old behaviour can be regained for backward compatibility * using the CL_HPP_ENABLE_SIZE_T_COMPATIBILITY macro. * * Finally, the program construction interface used a clumsy vector-of-pairs * design in the earlier versions. We have replaced that with a cleaner * vector-of-vectors and vector-of-strings design. However, for backward * compatibility old behaviour can be regained with the * CL_HPP_ENABLE_PROGRAM_CONSTRUCTION_FROM_ARRAY_COMPATIBILITY macro. * * In OpenCL 2.0 OpenCL C is not entirely backward compatibility with * earlier versions. As a result a flag must be passed to the OpenCL C * compiled to request OpenCL 2.0 compilation of kernels with 1.2 as * the default in the absence of the flag. * In some cases the C++ bindings automatically compile code for ease. * For those cases the compilation defaults to OpenCL C 2.0. * If this is not wanted, the CL_HPP_CL_1_2_DEFAULT_BUILD macro may * be specified to assume 1.2 compilation. * If more fine-grained decisions on a per-kernel bases are required * then explicit build operations that take the flag should be used. * * * \section parameterization Parameters * This header may be parameterized by a set of preprocessor macros. * * - CL_HPP_TARGET_OPENCL_VERSION * * Defines the target OpenCL runtime version to build the header * against. Defaults to 300, representing OpenCL 3.0. * * - CL_HPP_MINIMUM_OPENCL_VERSION * * Defines the minimum OpenCL runtime version to build the header * against. Defaults to 200, representing OpenCL 2.0. * * - CL_HPP_NO_STD_STRING * * Do not use the standard library string class. cl::string is not * defined and may be defined by the user before opencl.hpp is * included. * * - CL_HPP_NO_STD_VECTOR * * Do not use the standard library vector class. cl::vector is not * defined and may be defined by the user before opencl.hpp is * included. * * - CL_HPP_NO_STD_ARRAY * * Do not use the standard library array class. cl::array is not * defined and may be defined by the user before opencl.hpp is * included. * * - CL_HPP_NO_STD_UNIQUE_PTR * * Do not use the standard library unique_ptr class. cl::pointer and * the cl::allocate_pointer functions are not defined and may be * defined by the user before opencl.hpp is included. * * - CL_HPP_ENABLE_EXCEPTIONS * * Enable exceptions for use in the C++ bindings header. This is the * preferred error handling mechanism but is not required. * * - CL_HPP_ENABLE_SIZE_T_COMPATIBILITY * * Backward compatibility option to support cl.hpp-style size_t * class. Replaces the updated std::array derived version and * removal of size_t from the namespace. Note that in this case the * new size_t class is placed in the cl::compatibility namespace and * thus requires an additional using declaration for direct backward * compatibility. * * - CL_HPP_ENABLE_PROGRAM_CONSTRUCTION_FROM_ARRAY_COMPATIBILITY * * Enable older vector of pairs interface for construction of * programs. * * - CL_HPP_CL_1_2_DEFAULT_BUILD * * Default to OpenCL C 1.2 compilation rather than OpenCL C 2.0 * applies to use of cl::Program construction and other program * build variants. * * * - CL_HPP_USE_CL_SUB_GROUPS_KHR * * Enable the cl_khr_subgroups extension. * * - CL_HPP_USE_DX_INTEROP * * Enable the cl_khr_d3d10_sharing extension. * * - CL_HPP_USE_IL_KHR * * Enable the cl_khr_il_program extension. * * * \section example Example * * The following example shows a general use case for the C++ * bindings, including support for the optional exception feature and * also the supplied vector and string classes, see following sections for * decriptions of these features. * * Note: the C++ bindings use std::call_once and therefore may need to be * compiled using special command-line options (such as "-pthread") on some * platforms! * * \code #define CL_HPP_ENABLE_EXCEPTIONS #define CL_HPP_TARGET_OPENCL_VERSION 200 #include #include #include #include #include const int numElements = 32; int main(void) { // Filter for a 2.0 or newer platform and set it as the default std::vector platforms; cl::Platform::get(&platforms); cl::Platform plat; for (auto &p : platforms) { std::string platver = p.getInfo(); if (platver.find("OpenCL 2.") != std::string::npos || platver.find("OpenCL 3.") != std::string::npos) { // Note: an OpenCL 3.x platform may not support all required features! plat = p; } } if (plat() == 0) { std::cout << "No OpenCL 2.0 or newer platform found.\n"; return -1; } cl::Platform newP = cl::Platform::setDefault(plat); if (newP != plat) { std::cout << "Error setting default platform.\n"; return -1; } // C++11 raw string literal for the first kernel std::string kernel1{R"CLC( global int globalA; kernel void updateGlobal() { globalA = 75; } )CLC"}; // Raw string literal for the second kernel std::string kernel2{R"CLC( typedef struct { global int *bar; } Foo; kernel void vectorAdd(global const Foo* aNum, global const int *inputA, global const int *inputB, global int *output, int val, write_only pipe int outPipe, queue_t childQueue) { output[get_global_id(0)] = inputA[get_global_id(0)] + inputB[get_global_id(0)] + val + *(aNum->bar); write_pipe(outPipe, &val); queue_t default_queue = get_default_queue(); ndrange_t ndrange = ndrange_1D(get_global_size(0)/2, get_global_size(0)/2); // Have a child kernel write into third quarter of output enqueue_kernel(default_queue, CLK_ENQUEUE_FLAGS_WAIT_KERNEL, ndrange, ^{ output[get_global_size(0)*2 + get_global_id(0)] = inputA[get_global_size(0)*2 + get_global_id(0)] + inputB[get_global_size(0)*2 + get_global_id(0)] + globalA; }); // Have a child kernel write into last quarter of output enqueue_kernel(childQueue, CLK_ENQUEUE_FLAGS_WAIT_KERNEL, ndrange, ^{ output[get_global_size(0)*3 + get_global_id(0)] = inputA[get_global_size(0)*3 + get_global_id(0)] + inputB[get_global_size(0)*3 + get_global_id(0)] + globalA + 2; }); } )CLC"}; std::vector programStrings; programStrings.push_back(kernel1); programStrings.push_back(kernel2); cl::Program vectorAddProgram(programStrings); try { vectorAddProgram.build("-cl-std=CL2.0"); } catch (...) { // Print build info for all devices cl_int buildErr = CL_SUCCESS; auto buildInfo = vectorAddProgram.getBuildInfo(&buildErr); for (auto &pair : buildInfo) { std::cerr << pair.second << std::endl << std::endl; } return 1; } typedef struct { int *bar; } Foo; // Get and run kernel that initializes the program-scope global // A test for kernels that take no arguments auto program2Kernel = cl::KernelFunctor<>(vectorAddProgram, "updateGlobal"); program2Kernel( cl::EnqueueArgs( cl::NDRange(1))); ////////////////// // SVM allocations auto anSVMInt = cl::allocate_svm>(); *anSVMInt = 5; cl::SVMAllocator>> svmAllocReadOnly; auto fooPointer = cl::allocate_pointer(svmAllocReadOnly); fooPointer->bar = anSVMInt.get(); cl::SVMAllocator> svmAlloc; std::vector>> inputA(numElements, 1, svmAlloc); cl::coarse_svm_vector inputB(numElements, 2, svmAlloc); ////////////// // Traditional cl_mem allocations std::vector output(numElements, 0xdeadbeef); cl::Buffer outputBuffer(begin(output), end(output), false); cl::Pipe aPipe(sizeof(cl_int), numElements / 2); // Default command queue, also passed in as a parameter cl::DeviceCommandQueue defaultDeviceQueue = cl::DeviceCommandQueue::makeDefault( cl::Context::getDefault(), cl::Device::getDefault()); auto vectorAddKernel = cl::KernelFunctor< decltype(fooPointer)&, int*, cl::coarse_svm_vector&, cl::Buffer, int, cl::Pipe&, cl::DeviceCommandQueue >(vectorAddProgram, "vectorAdd"); // Ensure that the additional SVM pointer is available to the kernel // This one was not passed as a parameter vectorAddKernel.setSVMPointers(anSVMInt); cl_int error; vectorAddKernel( cl::EnqueueArgs( cl::NDRange(numElements/2), cl::NDRange(numElements/2)), fooPointer, inputA.data(), inputB, outputBuffer, 3, aPipe, defaultDeviceQueue, error ); cl::copy(outputBuffer, begin(output), end(output)); cl::Device d = cl::Device::getDefault(); std::cout << "Output:\n"; for (int i = 1; i < numElements; ++i) { std::cout << "\t" << output[i] << "\n"; } std::cout << "\n\n"; return 0; } * * \endcode * */ #ifndef CL_HPP_ #define CL_HPP_ /* Handle deprecated preprocessor definitions. In each case, we only check for * the old name if the new name is not defined, so that user code can define * both and hence work with either version of the bindings. */ #if !defined(CL_HPP_USE_DX_INTEROP) && defined(USE_DX_INTEROP) # pragma message("opencl.hpp: USE_DX_INTEROP is deprecated. Define CL_HPP_USE_DX_INTEROP instead") # define CL_HPP_USE_DX_INTEROP #endif #if !defined(CL_HPP_ENABLE_EXCEPTIONS) && defined(__CL_ENABLE_EXCEPTIONS) # pragma message("opencl.hpp: __CL_ENABLE_EXCEPTIONS is deprecated. Define CL_HPP_ENABLE_EXCEPTIONS instead") # define CL_HPP_ENABLE_EXCEPTIONS #endif #if !defined(CL_HPP_NO_STD_VECTOR) && defined(__NO_STD_VECTOR) # pragma message("opencl.hpp: __NO_STD_VECTOR is deprecated. Define CL_HPP_NO_STD_VECTOR instead") # define CL_HPP_NO_STD_VECTOR #endif #if !defined(CL_HPP_NO_STD_STRING) && defined(__NO_STD_STRING) # pragma message("opencl.hpp: __NO_STD_STRING is deprecated. Define CL_HPP_NO_STD_STRING instead") # define CL_HPP_NO_STD_STRING #endif #if defined(VECTOR_CLASS) # pragma message("opencl.hpp: VECTOR_CLASS is deprecated. Alias cl::vector instead") #endif #if defined(STRING_CLASS) # pragma message("opencl.hpp: STRING_CLASS is deprecated. Alias cl::string instead.") #endif #if !defined(CL_HPP_USER_OVERRIDE_ERROR_STRINGS) && defined(__CL_USER_OVERRIDE_ERROR_STRINGS) # pragma message("opencl.hpp: __CL_USER_OVERRIDE_ERROR_STRINGS is deprecated. Define CL_HPP_USER_OVERRIDE_ERROR_STRINGS instead") # define CL_HPP_USER_OVERRIDE_ERROR_STRINGS #endif /* Warn about features that are no longer supported */ #if defined(__USE_DEV_VECTOR) # pragma message("opencl.hpp: __USE_DEV_VECTOR is no longer supported. Expect compilation errors") #endif #if defined(__USE_DEV_STRING) # pragma message("opencl.hpp: __USE_DEV_STRING is no longer supported. Expect compilation errors") #endif /* Detect which version to target */ #if !defined(CL_HPP_TARGET_OPENCL_VERSION) # pragma message("opencl.hpp: CL_HPP_TARGET_OPENCL_VERSION is not defined. It will default to 300 (OpenCL 3.0)") # define CL_HPP_TARGET_OPENCL_VERSION 300 #endif #if CL_HPP_TARGET_OPENCL_VERSION != 100 && \ CL_HPP_TARGET_OPENCL_VERSION != 110 && \ CL_HPP_TARGET_OPENCL_VERSION != 120 && \ CL_HPP_TARGET_OPENCL_VERSION != 200 && \ CL_HPP_TARGET_OPENCL_VERSION != 210 && \ CL_HPP_TARGET_OPENCL_VERSION != 220 && \ CL_HPP_TARGET_OPENCL_VERSION != 300 # pragma message("opencl.hpp: CL_HPP_TARGET_OPENCL_VERSION is not a valid value (100, 110, 120, 200, 210, 220 or 300). It will be set to 300 (OpenCL 3.0).") # undef CL_HPP_TARGET_OPENCL_VERSION # define CL_HPP_TARGET_OPENCL_VERSION 300 #endif /* Forward target OpenCL version to C headers if necessary */ #if defined(CL_TARGET_OPENCL_VERSION) /* Warn if prior definition of CL_TARGET_OPENCL_VERSION is lower than * requested C++ bindings version */ #if CL_TARGET_OPENCL_VERSION < CL_HPP_TARGET_OPENCL_VERSION # pragma message("CL_TARGET_OPENCL_VERSION is already defined as is lower than CL_HPP_TARGET_OPENCL_VERSION") #endif #else # define CL_TARGET_OPENCL_VERSION CL_HPP_TARGET_OPENCL_VERSION #endif #if !defined(CL_HPP_MINIMUM_OPENCL_VERSION) # define CL_HPP_MINIMUM_OPENCL_VERSION 200 #endif #if CL_HPP_MINIMUM_OPENCL_VERSION != 100 && \ CL_HPP_MINIMUM_OPENCL_VERSION != 110 && \ CL_HPP_MINIMUM_OPENCL_VERSION != 120 && \ CL_HPP_MINIMUM_OPENCL_VERSION != 200 && \ CL_HPP_MINIMUM_OPENCL_VERSION != 210 && \ CL_HPP_MINIMUM_OPENCL_VERSION != 220 && \ CL_HPP_MINIMUM_OPENCL_VERSION != 300 # pragma message("opencl.hpp: CL_HPP_MINIMUM_OPENCL_VERSION is not a valid value (100, 110, 120, 200, 210, 220 or 300). It will be set to 100") # undef CL_HPP_MINIMUM_OPENCL_VERSION # define CL_HPP_MINIMUM_OPENCL_VERSION 100 #endif #if CL_HPP_MINIMUM_OPENCL_VERSION > CL_HPP_TARGET_OPENCL_VERSION # error "CL_HPP_MINIMUM_OPENCL_VERSION must not be greater than CL_HPP_TARGET_OPENCL_VERSION" #endif #if CL_HPP_MINIMUM_OPENCL_VERSION <= 100 && !defined(CL_USE_DEPRECATED_OPENCL_1_0_APIS) # define CL_USE_DEPRECATED_OPENCL_1_0_APIS #endif #if CL_HPP_MINIMUM_OPENCL_VERSION <= 110 && !defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) # define CL_USE_DEPRECATED_OPENCL_1_1_APIS #endif #if CL_HPP_MINIMUM_OPENCL_VERSION <= 120 && !defined(CL_USE_DEPRECATED_OPENCL_1_2_APIS) # define CL_USE_DEPRECATED_OPENCL_1_2_APIS #endif #if CL_HPP_MINIMUM_OPENCL_VERSION <= 200 && !defined(CL_USE_DEPRECATED_OPENCL_2_0_APIS) # define CL_USE_DEPRECATED_OPENCL_2_0_APIS #endif #if CL_HPP_MINIMUM_OPENCL_VERSION <= 210 && !defined(CL_USE_DEPRECATED_OPENCL_2_1_APIS) # define CL_USE_DEPRECATED_OPENCL_2_1_APIS #endif #if CL_HPP_MINIMUM_OPENCL_VERSION <= 220 && !defined(CL_USE_DEPRECATED_OPENCL_2_2_APIS) # define CL_USE_DEPRECATED_OPENCL_2_2_APIS #endif #ifdef _WIN32 #include #if defined(CL_HPP_USE_DX_INTEROP) #include #include #endif #endif // _WIN32 #if defined(_MSC_VER) #include #endif // _MSC_VER // Check for a valid C++ version // Need to do both tests here because for some reason __cplusplus is not // updated in visual studio #if (!defined(_MSC_VER) && __cplusplus < 201103L) || (defined(_MSC_VER) && _MSC_VER < 1700) #error Visual studio 2013 or another C++11-supporting compiler required #endif #if (__cplusplus >= 201103L || _MSVC_LANG >= 201103L ) #define CL_HPP_NOEXCEPT_ noexcept #else #define CL_HPP_NOEXCEPT_ #endif #if __cplusplus >= 201703L # define CL_HPP_DEFINE_STATIC_MEMBER_ inline #elif defined(_MSC_VER) # define CL_HPP_DEFINE_STATIC_MEMBER_ __declspec(selectany) #elif defined(__MINGW32__) # define CL_HPP_DEFINE_STATIC_MEMBER_ __attribute__((selectany)) #else # define CL_HPP_DEFINE_STATIC_MEMBER_ __attribute__((weak)) #endif // !_MSC_VER // Define deprecated prefixes and suffixes to ensure compilation // in case they are not pre-defined #if !defined(CL_API_PREFIX__VERSION_1_1_DEPRECATED) #define CL_API_PREFIX__VERSION_1_1_DEPRECATED #endif // #if !defined(CL_API_PREFIX__VERSION_1_1_DEPRECATED) #if !defined(CL_API_SUFFIX__VERSION_1_1_DEPRECATED) #define CL_API_SUFFIX__VERSION_1_1_DEPRECATED #endif // #if !defined(CL_API_SUFFIX__VERSION_1_1_DEPRECATED) #if !defined(CL_API_PREFIX__VERSION_1_2_DEPRECATED) #define CL_API_PREFIX__VERSION_1_2_DEPRECATED #endif // #if !defined(CL_API_PREFIX__VERSION_1_2_DEPRECATED) #if !defined(CL_API_SUFFIX__VERSION_1_2_DEPRECATED) #define CL_API_SUFFIX__VERSION_1_2_DEPRECATED #endif // #if !defined(CL_API_SUFFIX__VERSION_1_2_DEPRECATED) #if !defined(CL_API_PREFIX__VERSION_2_2_DEPRECATED) #define CL_API_PREFIX__VERSION_2_2_DEPRECATED #endif // #if !defined(CL_API_PREFIX__VERSION_2_2_DEPRECATED) #if !defined(CL_API_SUFFIX__VERSION_2_2_DEPRECATED) #define CL_API_SUFFIX__VERSION_2_2_DEPRECATED #endif // #if !defined(CL_API_SUFFIX__VERSION_2_2_DEPRECATED) #if !defined(CL_CALLBACK) #define CL_CALLBACK #endif //CL_CALLBACK #include #include #include #include #include #include // Define a size_type to represent a correctly resolved size_t #if defined(CL_HPP_ENABLE_SIZE_T_COMPATIBILITY) namespace cl { using size_type = ::size_t; } // namespace cl #else // #if defined(CL_HPP_ENABLE_SIZE_T_COMPATIBILITY) namespace cl { using size_type = size_t; } // namespace cl #endif // #if defined(CL_HPP_ENABLE_SIZE_T_COMPATIBILITY) #if defined(CL_HPP_ENABLE_EXCEPTIONS) #include #endif // #if defined(CL_HPP_ENABLE_EXCEPTIONS) #if !defined(CL_HPP_NO_STD_VECTOR) #include namespace cl { template < class T, class Alloc = std::allocator > using vector = std::vector; } // namespace cl #endif // #if !defined(CL_HPP_NO_STD_VECTOR) #if !defined(CL_HPP_NO_STD_STRING) #include namespace cl { using string = std::string; } // namespace cl #endif // #if !defined(CL_HPP_NO_STD_STRING) #if CL_HPP_TARGET_OPENCL_VERSION >= 200 #if !defined(CL_HPP_NO_STD_UNIQUE_PTR) #include namespace cl { // Replace unique_ptr and allocate_pointer for internal use // to allow user to replace them template using pointer = std::unique_ptr; } // namespace cl #endif #endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 200 #if !defined(CL_HPP_NO_STD_ARRAY) #include namespace cl { template < class T, size_type N > using array = std::array; } // namespace cl #endif // #if !defined(CL_HPP_NO_STD_ARRAY) // Define size_type appropriately to allow backward-compatibility // use of the old size_t interface class #if defined(CL_HPP_ENABLE_SIZE_T_COMPATIBILITY) namespace cl { namespace compatibility { /*! \brief class used to interface between C++ and * OpenCL C calls that require arrays of size_t values, whose * size is known statically. */ template class size_t { private: size_type data_[N]; public: //! \brief Initialize size_t to all 0s size_t() { for (int i = 0; i < N; ++i) { data_[i] = 0; } } size_t(const array &rhs) { for (int i = 0; i < N; ++i) { data_[i] = rhs[i]; } } size_type& operator[](int index) { return data_[index]; } const size_type& operator[](int index) const { return data_[index]; } //! \brief Conversion operator to T*. operator size_type* () { return data_; } //! \brief Conversion operator to const T*. operator const size_type* () const { return data_; } operator array() const { array ret; for (int i = 0; i < N; ++i) { ret[i] = data_[i]; } return ret; } }; } // namespace compatibility template using size_t = compatibility::size_t; } // namespace cl #endif // #if defined(CL_HPP_ENABLE_SIZE_T_COMPATIBILITY) // Helper alias to avoid confusing the macros namespace cl { namespace detail { using size_t_array = array; } // namespace detail } // namespace cl /*! \namespace cl * * \brief The OpenCL C++ bindings are defined within this namespace. * */ namespace cl { #define CL_HPP_CREATE_CL_EXT_FCN_PTR_ALIAS_(name) \ using PFN_##name = name##_fn #define CL_HPP_INIT_CL_EXT_FCN_PTR_(name) \ if (!pfn_##name) { \ pfn_##name = (PFN_##name)clGetExtensionFunctionAddress(#name); \ } #define CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, name) \ if (!pfn_##name) { \ pfn_##name = (PFN_##name) \ clGetExtensionFunctionAddressForPlatform(platform, #name); \ } #ifdef cl_khr_external_memory enum class ExternalMemoryType : cl_external_memory_handle_type_khr; #endif class Memory; class Program; class Device; class Context; class CommandQueue; class DeviceCommandQueue; class Memory; class Buffer; class Pipe; #ifdef cl_khr_semaphore class Semaphore; #endif #if defined(cl_khr_command_buffer) class CommandBufferKhr; class MutableCommandKhr; #endif // cl_khr_command_buffer #if defined(CL_HPP_ENABLE_EXCEPTIONS) /*! \brief Exception class * * This may be thrown by API functions when CL_HPP_ENABLE_EXCEPTIONS is defined. */ class Error : public std::exception { private: cl_int err_; const char * errStr_; public: /*! \brief Create a new CL error exception for a given error code * and corresponding message. * * \param err error code value. * * \param errStr a descriptive string that must remain in scope until * handling of the exception has concluded. If set, it * will be returned by what(). */ Error(cl_int err, const char * errStr = nullptr) : err_(err), errStr_(errStr) {} ~Error() throw() {} /*! \brief Get error string associated with exception * * \return A memory pointer to the error message string. */ virtual const char * what() const throw () { if (errStr_ == nullptr) { return "empty"; } else { return errStr_; } } /*! \brief Get error code associated with exception * * \return The error code. */ cl_int err(void) const { return err_; } }; #define CL_HPP_ERR_STR_(x) #x #else #define CL_HPP_ERR_STR_(x) nullptr #endif // CL_HPP_ENABLE_EXCEPTIONS namespace detail { #if defined(CL_HPP_ENABLE_EXCEPTIONS) static inline cl_int errHandler ( cl_int err, const char * errStr = nullptr) { if (err != CL_SUCCESS) { throw Error(err, errStr); } return err; } #else static inline cl_int errHandler (cl_int err, const char * errStr = nullptr) { (void) errStr; // suppress unused variable warning return err; } #endif // CL_HPP_ENABLE_EXCEPTIONS } //! \cond DOXYGEN_DETAIL #if !defined(CL_HPP_USER_OVERRIDE_ERROR_STRINGS) #define __GET_DEVICE_INFO_ERR CL_HPP_ERR_STR_(clGetDeviceInfo) #define __GET_PLATFORM_INFO_ERR CL_HPP_ERR_STR_(clGetPlatformInfo) #define __GET_DEVICE_IDS_ERR CL_HPP_ERR_STR_(clGetDeviceIDs) #define __GET_PLATFORM_IDS_ERR CL_HPP_ERR_STR_(clGetPlatformIDs) #define __GET_CONTEXT_INFO_ERR CL_HPP_ERR_STR_(clGetContextInfo) #define __GET_EVENT_INFO_ERR CL_HPP_ERR_STR_(clGetEventInfo) #define __GET_EVENT_PROFILE_INFO_ERR CL_HPP_ERR_STR_(clGetEventProfileInfo) #define __GET_MEM_OBJECT_INFO_ERR CL_HPP_ERR_STR_(clGetMemObjectInfo) #define __GET_IMAGE_INFO_ERR CL_HPP_ERR_STR_(clGetImageInfo) #define __GET_SAMPLER_INFO_ERR CL_HPP_ERR_STR_(clGetSamplerInfo) #define __GET_KERNEL_INFO_ERR CL_HPP_ERR_STR_(clGetKernelInfo) #if CL_HPP_TARGET_OPENCL_VERSION >= 120 #define __GET_KERNEL_ARG_INFO_ERR CL_HPP_ERR_STR_(clGetKernelArgInfo) #endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 #if CL_HPP_TARGET_OPENCL_VERSION >= 210 #define __GET_KERNEL_SUB_GROUP_INFO_ERR CL_HPP_ERR_STR_(clGetKernelSubGroupInfo) #else #define __GET_KERNEL_SUB_GROUP_INFO_ERR CL_HPP_ERR_STR_(clGetKernelSubGroupInfoKHR) #endif // CL_HPP_TARGET_OPENCL_VERSION >= 210 #define __GET_KERNEL_WORK_GROUP_INFO_ERR CL_HPP_ERR_STR_(clGetKernelWorkGroupInfo) #define __GET_PROGRAM_INFO_ERR CL_HPP_ERR_STR_(clGetProgramInfo) #define __GET_PROGRAM_BUILD_INFO_ERR CL_HPP_ERR_STR_(clGetProgramBuildInfo) #define __GET_COMMAND_QUEUE_INFO_ERR CL_HPP_ERR_STR_(clGetCommandQueueInfo) #define __CREATE_CONTEXT_ERR CL_HPP_ERR_STR_(clCreateContext) #define __CREATE_CONTEXT_FROM_TYPE_ERR CL_HPP_ERR_STR_(clCreateContextFromType) #define __GET_SUPPORTED_IMAGE_FORMATS_ERR CL_HPP_ERR_STR_(clGetSupportedImageFormats) #if CL_HPP_TARGET_OPENCL_VERSION >= 300 #define __SET_CONTEXT_DESCTRUCTOR_CALLBACK_ERR CL_HPP_ERR_STR_(clSetContextDestructorCallback) #endif // CL_HPP_TARGET_OPENCL_VERSION >= 300 #define __CREATE_BUFFER_ERR CL_HPP_ERR_STR_(clCreateBuffer) #define __COPY_ERR CL_HPP_ERR_STR_(cl::copy) #define __CREATE_SUBBUFFER_ERR CL_HPP_ERR_STR_(clCreateSubBuffer) #define __CREATE_GL_BUFFER_ERR CL_HPP_ERR_STR_(clCreateFromGLBuffer) #define __CREATE_GL_RENDER_BUFFER_ERR CL_HPP_ERR_STR_(clCreateFromGLBuffer) #define __GET_GL_OBJECT_INFO_ERR CL_HPP_ERR_STR_(clGetGLObjectInfo) #if CL_HPP_TARGET_OPENCL_VERSION >= 120 #define __CREATE_IMAGE_ERR CL_HPP_ERR_STR_(clCreateImage) #define __CREATE_GL_TEXTURE_ERR CL_HPP_ERR_STR_(clCreateFromGLTexture) #define __IMAGE_DIMENSION_ERR CL_HPP_ERR_STR_(Incorrect image dimensions) #endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 #define __SET_MEM_OBJECT_DESTRUCTOR_CALLBACK_ERR CL_HPP_ERR_STR_(clSetMemObjectDestructorCallback) #define __CREATE_USER_EVENT_ERR CL_HPP_ERR_STR_(clCreateUserEvent) #define __SET_USER_EVENT_STATUS_ERR CL_HPP_ERR_STR_(clSetUserEventStatus) #define __SET_EVENT_CALLBACK_ERR CL_HPP_ERR_STR_(clSetEventCallback) #define __WAIT_FOR_EVENTS_ERR CL_HPP_ERR_STR_(clWaitForEvents) #define __CREATE_KERNEL_ERR CL_HPP_ERR_STR_(clCreateKernel) #define __SET_KERNEL_ARGS_ERR CL_HPP_ERR_STR_(clSetKernelArg) #define __CREATE_PROGRAM_WITH_SOURCE_ERR CL_HPP_ERR_STR_(clCreateProgramWithSource) #define __CREATE_PROGRAM_WITH_BINARY_ERR CL_HPP_ERR_STR_(clCreateProgramWithBinary) #if CL_HPP_TARGET_OPENCL_VERSION >= 210 #define __CREATE_PROGRAM_WITH_IL_ERR CL_HPP_ERR_STR_(clCreateProgramWithIL) #else #define __CREATE_PROGRAM_WITH_IL_ERR CL_HPP_ERR_STR_(clCreateProgramWithILKHR) #endif // CL_HPP_TARGET_OPENCL_VERSION >= 210 #if CL_HPP_TARGET_OPENCL_VERSION >= 120 #define __CREATE_PROGRAM_WITH_BUILT_IN_KERNELS_ERR CL_HPP_ERR_STR_(clCreateProgramWithBuiltInKernels) #endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 #define __BUILD_PROGRAM_ERR CL_HPP_ERR_STR_(clBuildProgram) #if CL_HPP_TARGET_OPENCL_VERSION >= 120 #define __COMPILE_PROGRAM_ERR CL_HPP_ERR_STR_(clCompileProgram) #define __LINK_PROGRAM_ERR CL_HPP_ERR_STR_(clLinkProgram) #endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 #define __CREATE_KERNELS_IN_PROGRAM_ERR CL_HPP_ERR_STR_(clCreateKernelsInProgram) #if CL_HPP_TARGET_OPENCL_VERSION >= 200 #define __CREATE_COMMAND_QUEUE_WITH_PROPERTIES_ERR CL_HPP_ERR_STR_(clCreateCommandQueueWithProperties) #define __CREATE_SAMPLER_WITH_PROPERTIES_ERR CL_HPP_ERR_STR_(clCreateSamplerWithProperties) #endif // CL_HPP_TARGET_OPENCL_VERSION >= 200 #define __SET_COMMAND_QUEUE_PROPERTY_ERR CL_HPP_ERR_STR_(clSetCommandQueueProperty) #define __ENQUEUE_READ_BUFFER_ERR CL_HPP_ERR_STR_(clEnqueueReadBuffer) #define __ENQUEUE_READ_BUFFER_RECT_ERR CL_HPP_ERR_STR_(clEnqueueReadBufferRect) #define __ENQUEUE_WRITE_BUFFER_ERR CL_HPP_ERR_STR_(clEnqueueWriteBuffer) #define __ENQUEUE_WRITE_BUFFER_RECT_ERR CL_HPP_ERR_STR_(clEnqueueWriteBufferRect) #define __ENQEUE_COPY_BUFFER_ERR CL_HPP_ERR_STR_(clEnqueueCopyBuffer) #define __ENQEUE_COPY_BUFFER_RECT_ERR CL_HPP_ERR_STR_(clEnqueueCopyBufferRect) #define __ENQUEUE_FILL_BUFFER_ERR CL_HPP_ERR_STR_(clEnqueueFillBuffer) #define __ENQUEUE_READ_IMAGE_ERR CL_HPP_ERR_STR_(clEnqueueReadImage) #define __ENQUEUE_WRITE_IMAGE_ERR CL_HPP_ERR_STR_(clEnqueueWriteImage) #define __ENQUEUE_COPY_IMAGE_ERR CL_HPP_ERR_STR_(clEnqueueCopyImage) #define __ENQUEUE_FILL_IMAGE_ERR CL_HPP_ERR_STR_(clEnqueueFillImage) #define __ENQUEUE_COPY_IMAGE_TO_BUFFER_ERR CL_HPP_ERR_STR_(clEnqueueCopyImageToBuffer) #define __ENQUEUE_COPY_BUFFER_TO_IMAGE_ERR CL_HPP_ERR_STR_(clEnqueueCopyBufferToImage) #define __ENQUEUE_MAP_BUFFER_ERR CL_HPP_ERR_STR_(clEnqueueMapBuffer) #define __ENQUEUE_MAP_IMAGE_ERR CL_HPP_ERR_STR_(clEnqueueMapImage) #define __ENQUEUE_UNMAP_MEM_OBJECT_ERR CL_HPP_ERR_STR_(clEnqueueUnMapMemObject) #define __ENQUEUE_NDRANGE_KERNEL_ERR CL_HPP_ERR_STR_(clEnqueueNDRangeKernel) #define __ENQUEUE_NATIVE_KERNEL CL_HPP_ERR_STR_(clEnqueueNativeKernel) #if CL_HPP_TARGET_OPENCL_VERSION >= 120 #define __ENQUEUE_MIGRATE_MEM_OBJECTS_ERR CL_HPP_ERR_STR_(clEnqueueMigrateMemObjects) #endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 #if CL_HPP_TARGET_OPENCL_VERSION >= 210 #define __ENQUEUE_MIGRATE_SVM_ERR CL_HPP_ERR_STR_(clEnqueueSVMMigrateMem) #define __SET_DEFAULT_DEVICE_COMMAND_QUEUE_ERR CL_HPP_ERR_STR_(clSetDefaultDeviceCommandQueue) #endif // CL_HPP_TARGET_OPENCL_VERSION >= 210 #define __ENQUEUE_ACQUIRE_GL_ERR CL_HPP_ERR_STR_(clEnqueueAcquireGLObjects) #define __ENQUEUE_RELEASE_GL_ERR CL_HPP_ERR_STR_(clEnqueueReleaseGLObjects) #define __CREATE_PIPE_ERR CL_HPP_ERR_STR_(clCreatePipe) #define __GET_PIPE_INFO_ERR CL_HPP_ERR_STR_(clGetPipeInfo) #define __RETAIN_ERR CL_HPP_ERR_STR_(Retain Object) #define __RELEASE_ERR CL_HPP_ERR_STR_(Release Object) #define __FLUSH_ERR CL_HPP_ERR_STR_(clFlush) #define __FINISH_ERR CL_HPP_ERR_STR_(clFinish) #define __VECTOR_CAPACITY_ERR CL_HPP_ERR_STR_(Vector capacity error) #if CL_HPP_TARGET_OPENCL_VERSION >= 210 #define __GET_HOST_TIMER_ERR CL_HPP_ERR_STR_(clGetHostTimer) #define __GET_DEVICE_AND_HOST_TIMER_ERR CL_HPP_ERR_STR_(clGetDeviceAndHostTimer) #endif #if CL_HPP_TARGET_OPENCL_VERSION >= 220 #define __SET_PROGRAM_RELEASE_CALLBACK_ERR CL_HPP_ERR_STR_(clSetProgramReleaseCallback) #define __SET_PROGRAM_SPECIALIZATION_CONSTANT_ERR CL_HPP_ERR_STR_(clSetProgramSpecializationConstant) #endif #ifdef cl_khr_external_memory #define __ENQUEUE_ACQUIRE_EXTERNAL_MEMORY_ERR CL_HPP_ERR_STR_(clEnqueueAcquireExternalMemObjectsKHR) #define __ENQUEUE_RELEASE_EXTERNAL_MEMORY_ERR CL_HPP_ERR_STR_(clEnqueueReleaseExternalMemObjectsKHR) #endif #ifdef cl_khr_semaphore #define __GET_SEMAPHORE_KHR_INFO_ERR CL_HPP_ERR_STR_(clGetSemaphoreInfoKHR) #define __CREATE_SEMAPHORE_KHR_WITH_PROPERTIES_ERR CL_HPP_ERR_STR_(clCreateSemaphoreWithPropertiesKHR) #define __ENQUEUE_WAIT_SEMAPHORE_KHR_ERR CL_HPP_ERR_STR_(clEnqueueWaitSemaphoresKHR) #define __ENQUEUE_SIGNAL_SEMAPHORE_KHR_ERR CL_HPP_ERR_STR_(clEnqueueSignalSemaphoresKHR) #define __RETAIN_SEMAPHORE_KHR_ERR CL_HPP_ERR_STR_(clRetainSemaphoreKHR) #define __RELEASE_SEMAPHORE_KHR_ERR CL_HPP_ERR_STR_(clReleaseSemaphoreKHR) #endif #if defined(cl_khr_command_buffer) #define __CREATE_COMMAND_BUFFER_KHR_ERR CL_HPP_ERR_STR_(clCreateCommandBufferKHR) #define __GET_COMMAND_BUFFER_INFO_KHR_ERR CL_HPP_ERR_STR_(clGetCommandBufferInfoKHR) #define __FINALIZE_COMMAND_BUFFER_KHR_ERR CL_HPP_ERR_STR_(clFinalizeCommandBufferKHR) #define __ENQUEUE_COMMAND_BUFFER_KHR_ERR CL_HPP_ERR_STR_(clEnqueueCommandBufferKHR) #define __COMMAND_BARRIER_WITH_WAIT_LIST_KHR_ERR CL_HPP_ERR_STR_(clCommandBarrierWithWaitListKHR) #define __COMMAND_COPY_BUFFER_KHR_ERR CL_HPP_ERR_STR_(clCommandCopyBufferKHR) #define __COMMAND_COPY_BUFFER_RECT_KHR_ERR CL_HPP_ERR_STR_(clCommandCopyBufferRectKHR) #define __COMMAND_COPY_BUFFER_TO_IMAGE_KHR_ERR CL_HPP_ERR_STR_(clCommandCopyBufferToImageKHR) #define __COMMAND_COPY_IMAGE_KHR_ERR CL_HPP_ERR_STR_(clCommandCopyImageKHR) #define __COMMAND_COPY_IMAGE_TO_BUFFER_KHR_ERR CL_HPP_ERR_STR_(clCommandCopyImageToBufferKHR) #define __COMMAND_FILL_BUFFER_KHR_ERR CL_HPP_ERR_STR_(clCommandFillBufferKHR) #define __COMMAND_FILL_IMAGE_KHR_ERR CL_HPP_ERR_STR_(clCommandFillImageKHR) #define __COMMAND_NDRANGE_KERNEL_KHR_ERR CL_HPP_ERR_STR_(clCommandNDRangeKernelKHR) #define __UPDATE_MUTABLE_COMMANDS_KHR_ERR CL_HPP_ERR_STR_(clUpdateMutableCommandsKHR) #define __GET_MUTABLE_COMMAND_INFO_KHR_ERR CL_HPP_ERR_STR_(clGetMutableCommandInfoKHR) #define __RETAIN_COMMAND_BUFFER_KHR_ERR CL_HPP_ERR_STR_(clRetainCommandBufferKHR) #define __RELEASE_COMMAND_BUFFER_KHR_ERR CL_HPP_ERR_STR_(clReleaseCommandBufferKHR) #endif // cl_khr_command_buffer /** * CL 1.2 version that uses device fission. */ #if CL_HPP_TARGET_OPENCL_VERSION >= 120 #define __CREATE_SUB_DEVICES_ERR CL_HPP_ERR_STR_(clCreateSubDevices) #else #define __CREATE_SUB_DEVICES_ERR CL_HPP_ERR_STR_(clCreateSubDevicesEXT) #endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 /** * Deprecated APIs for 1.2 */ #if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) #define __ENQUEUE_MARKER_ERR CL_HPP_ERR_STR_(clEnqueueMarker) #define __ENQUEUE_WAIT_FOR_EVENTS_ERR CL_HPP_ERR_STR_(clEnqueueWaitForEvents) #define __ENQUEUE_BARRIER_ERR CL_HPP_ERR_STR_(clEnqueueBarrier) #define __UNLOAD_COMPILER_ERR CL_HPP_ERR_STR_(clUnloadCompiler) #define __CREATE_GL_TEXTURE_2D_ERR CL_HPP_ERR_STR_(clCreateFromGLTexture2D) #define __CREATE_GL_TEXTURE_3D_ERR CL_HPP_ERR_STR_(clCreateFromGLTexture3D) #define __CREATE_IMAGE2D_ERR CL_HPP_ERR_STR_(clCreateImage2D) #define __CREATE_IMAGE3D_ERR CL_HPP_ERR_STR_(clCreateImage3D) #endif // #if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) /** * Deprecated APIs for 2.0 */ #if defined(CL_USE_DEPRECATED_OPENCL_1_2_APIS) #define __CREATE_COMMAND_QUEUE_ERR CL_HPP_ERR_STR_(clCreateCommandQueue) #define __ENQUEUE_TASK_ERR CL_HPP_ERR_STR_(clEnqueueTask) #define __CREATE_SAMPLER_ERR CL_HPP_ERR_STR_(clCreateSampler) #endif // #if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) /** * CL 1.2 marker and barrier commands */ #if CL_HPP_TARGET_OPENCL_VERSION >= 120 #define __ENQUEUE_MARKER_WAIT_LIST_ERR CL_HPP_ERR_STR_(clEnqueueMarkerWithWaitList) #define __ENQUEUE_BARRIER_WAIT_LIST_ERR CL_HPP_ERR_STR_(clEnqueueBarrierWithWaitList) #endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 #if CL_HPP_TARGET_OPENCL_VERSION >= 210 #define __CLONE_KERNEL_ERR CL_HPP_ERR_STR_(clCloneKernel) #endif // CL_HPP_TARGET_OPENCL_VERSION >= 210 #endif // CL_HPP_USER_OVERRIDE_ERROR_STRINGS //! \endcond #ifdef cl_khr_external_memory CL_HPP_CREATE_CL_EXT_FCN_PTR_ALIAS_(clEnqueueAcquireExternalMemObjectsKHR); CL_HPP_CREATE_CL_EXT_FCN_PTR_ALIAS_(clEnqueueReleaseExternalMemObjectsKHR); CL_HPP_DEFINE_STATIC_MEMBER_ PFN_clEnqueueAcquireExternalMemObjectsKHR pfn_clEnqueueAcquireExternalMemObjectsKHR = nullptr; CL_HPP_DEFINE_STATIC_MEMBER_ PFN_clEnqueueReleaseExternalMemObjectsKHR pfn_clEnqueueReleaseExternalMemObjectsKHR = nullptr; #endif // cl_khr_external_memory #ifdef cl_khr_semaphore CL_HPP_CREATE_CL_EXT_FCN_PTR_ALIAS_(clCreateSemaphoreWithPropertiesKHR); CL_HPP_CREATE_CL_EXT_FCN_PTR_ALIAS_(clReleaseSemaphoreKHR); CL_HPP_CREATE_CL_EXT_FCN_PTR_ALIAS_(clRetainSemaphoreKHR); CL_HPP_CREATE_CL_EXT_FCN_PTR_ALIAS_(clEnqueueWaitSemaphoresKHR); CL_HPP_CREATE_CL_EXT_FCN_PTR_ALIAS_(clEnqueueSignalSemaphoresKHR); CL_HPP_CREATE_CL_EXT_FCN_PTR_ALIAS_(clGetSemaphoreInfoKHR); CL_HPP_DEFINE_STATIC_MEMBER_ PFN_clCreateSemaphoreWithPropertiesKHR pfn_clCreateSemaphoreWithPropertiesKHR = nullptr; CL_HPP_DEFINE_STATIC_MEMBER_ PFN_clReleaseSemaphoreKHR pfn_clReleaseSemaphoreKHR = nullptr; CL_HPP_DEFINE_STATIC_MEMBER_ PFN_clRetainSemaphoreKHR pfn_clRetainSemaphoreKHR = nullptr; CL_HPP_DEFINE_STATIC_MEMBER_ PFN_clEnqueueWaitSemaphoresKHR pfn_clEnqueueWaitSemaphoresKHR = nullptr; CL_HPP_DEFINE_STATIC_MEMBER_ PFN_clEnqueueSignalSemaphoresKHR pfn_clEnqueueSignalSemaphoresKHR = nullptr; CL_HPP_DEFINE_STATIC_MEMBER_ PFN_clGetSemaphoreInfoKHR pfn_clGetSemaphoreInfoKHR = nullptr; #endif // cl_khr_semaphore #if defined(cl_khr_command_buffer) CL_HPP_CREATE_CL_EXT_FCN_PTR_ALIAS_(clCreateCommandBufferKHR); CL_HPP_CREATE_CL_EXT_FCN_PTR_ALIAS_(clFinalizeCommandBufferKHR); CL_HPP_CREATE_CL_EXT_FCN_PTR_ALIAS_(clRetainCommandBufferKHR); CL_HPP_CREATE_CL_EXT_FCN_PTR_ALIAS_(clReleaseCommandBufferKHR); CL_HPP_CREATE_CL_EXT_FCN_PTR_ALIAS_(clGetCommandBufferInfoKHR); CL_HPP_CREATE_CL_EXT_FCN_PTR_ALIAS_(clEnqueueCommandBufferKHR); CL_HPP_CREATE_CL_EXT_FCN_PTR_ALIAS_(clCommandBarrierWithWaitListKHR); CL_HPP_CREATE_CL_EXT_FCN_PTR_ALIAS_(clCommandCopyBufferKHR); CL_HPP_CREATE_CL_EXT_FCN_PTR_ALIAS_(clCommandCopyBufferRectKHR); CL_HPP_CREATE_CL_EXT_FCN_PTR_ALIAS_(clCommandCopyBufferToImageKHR); CL_HPP_CREATE_CL_EXT_FCN_PTR_ALIAS_(clCommandCopyImageKHR); CL_HPP_CREATE_CL_EXT_FCN_PTR_ALIAS_(clCommandCopyImageToBufferKHR); CL_HPP_CREATE_CL_EXT_FCN_PTR_ALIAS_(clCommandFillBufferKHR); CL_HPP_CREATE_CL_EXT_FCN_PTR_ALIAS_(clCommandFillImageKHR); CL_HPP_CREATE_CL_EXT_FCN_PTR_ALIAS_(clCommandNDRangeKernelKHR); CL_HPP_DEFINE_STATIC_MEMBER_ PFN_clCreateCommandBufferKHR pfn_clCreateCommandBufferKHR = nullptr; CL_HPP_DEFINE_STATIC_MEMBER_ PFN_clFinalizeCommandBufferKHR pfn_clFinalizeCommandBufferKHR = nullptr; CL_HPP_DEFINE_STATIC_MEMBER_ PFN_clRetainCommandBufferKHR pfn_clRetainCommandBufferKHR = nullptr; CL_HPP_DEFINE_STATIC_MEMBER_ PFN_clReleaseCommandBufferKHR pfn_clReleaseCommandBufferKHR = nullptr; CL_HPP_DEFINE_STATIC_MEMBER_ PFN_clGetCommandBufferInfoKHR pfn_clGetCommandBufferInfoKHR = nullptr; CL_HPP_DEFINE_STATIC_MEMBER_ PFN_clEnqueueCommandBufferKHR pfn_clEnqueueCommandBufferKHR = nullptr; CL_HPP_DEFINE_STATIC_MEMBER_ PFN_clCommandBarrierWithWaitListKHR pfn_clCommandBarrierWithWaitListKHR = nullptr; CL_HPP_DEFINE_STATIC_MEMBER_ PFN_clCommandCopyBufferKHR pfn_clCommandCopyBufferKHR = nullptr; CL_HPP_DEFINE_STATIC_MEMBER_ PFN_clCommandCopyBufferRectKHR pfn_clCommandCopyBufferRectKHR = nullptr; CL_HPP_DEFINE_STATIC_MEMBER_ PFN_clCommandCopyBufferToImageKHR pfn_clCommandCopyBufferToImageKHR = nullptr; CL_HPP_DEFINE_STATIC_MEMBER_ PFN_clCommandCopyImageKHR pfn_clCommandCopyImageKHR = nullptr; CL_HPP_DEFINE_STATIC_MEMBER_ PFN_clCommandCopyImageToBufferKHR pfn_clCommandCopyImageToBufferKHR = nullptr; CL_HPP_DEFINE_STATIC_MEMBER_ PFN_clCommandFillBufferKHR pfn_clCommandFillBufferKHR = nullptr; CL_HPP_DEFINE_STATIC_MEMBER_ PFN_clCommandFillImageKHR pfn_clCommandFillImageKHR = nullptr; CL_HPP_DEFINE_STATIC_MEMBER_ PFN_clCommandNDRangeKernelKHR pfn_clCommandNDRangeKernelKHR = nullptr; #endif /* cl_khr_command_buffer */ #if defined(cl_khr_command_buffer_mutable_dispatch) CL_HPP_CREATE_CL_EXT_FCN_PTR_ALIAS_(clUpdateMutableCommandsKHR); CL_HPP_CREATE_CL_EXT_FCN_PTR_ALIAS_(clGetMutableCommandInfoKHR); CL_HPP_DEFINE_STATIC_MEMBER_ PFN_clUpdateMutableCommandsKHR pfn_clUpdateMutableCommandsKHR = nullptr; CL_HPP_DEFINE_STATIC_MEMBER_ PFN_clGetMutableCommandInfoKHR pfn_clGetMutableCommandInfoKHR = nullptr; #endif /* cl_khr_command_buffer_mutable_dispatch */ namespace detail { // Generic getInfoHelper. The final parameter is used to guide overload // resolution: the actual parameter passed is an int, which makes this // a worse conversion sequence than a specialization that declares the // parameter as an int. template inline cl_int getInfoHelper(Functor f, cl_uint name, T* param, long) { return f(name, sizeof(T), param, nullptr); } // Specialized for getInfo // Assumes that the output vector was correctly resized on the way in template inline cl_int getInfoHelper(Func f, cl_uint name, vector>* param, int) { if (name != CL_PROGRAM_BINARIES) { return CL_INVALID_VALUE; } if (param) { // Create array of pointers, calculate total size and pass pointer array in size_type numBinaries = param->size(); vector binariesPointers(numBinaries); for (size_type i = 0; i < numBinaries; ++i) { binariesPointers[i] = (*param)[i].data(); } cl_int err = f(name, numBinaries * sizeof(unsigned char*), binariesPointers.data(), nullptr); if (err != CL_SUCCESS) { return err; } } return CL_SUCCESS; } // Specialized getInfoHelper for vector params template inline cl_int getInfoHelper(Func f, cl_uint name, vector* param, long) { size_type required; cl_int err = f(name, 0, nullptr, &required); if (err != CL_SUCCESS) { return err; } const size_type elements = required / sizeof(T); // Temporary to avoid changing param on an error vector localData(elements); err = f(name, required, localData.data(), nullptr); if (err != CL_SUCCESS) { return err; } if (param) { *param = std::move(localData); } return CL_SUCCESS; } /* Specialization for reference-counted types. This depends on the * existence of Wrapper::cl_type, and none of the other types having the * cl_type member. Note that simplify specifying the parameter as Wrapper * does not work, because when using a derived type (e.g. Context) the generic * template will provide a better match. */ template inline cl_int getInfoHelper( Func f, cl_uint name, vector* param, int, typename T::cl_type = 0) { size_type required; cl_int err = f(name, 0, nullptr, &required); if (err != CL_SUCCESS) { return err; } const size_type elements = required / sizeof(typename T::cl_type); vector value(elements); err = f(name, required, value.data(), nullptr); if (err != CL_SUCCESS) { return err; } if (param) { // Assign to convert CL type to T for each element param->resize(elements); // Assign to param, constructing with retain behaviour // to correctly capture each underlying CL object for (size_type i = 0; i < elements; i++) { (*param)[i] = T(value[i], true); } } return CL_SUCCESS; } // Specialized GetInfoHelper for string params template inline cl_int getInfoHelper(Func f, cl_uint name, string* param, long) { size_type required; cl_int err = f(name, 0, nullptr, &required); if (err != CL_SUCCESS) { return err; } // std::string has a constant data member // a char vector does not if (required > 0) { vector value(required); err = f(name, required, value.data(), nullptr); if (err != CL_SUCCESS) { return err; } if (param) { param->assign(begin(value), prev(end(value))); } } else if (param) { param->assign(""); } return CL_SUCCESS; } // Specialized GetInfoHelper for clsize_t params template inline cl_int getInfoHelper(Func f, cl_uint name, array* param, long) { size_type required; cl_int err = f(name, 0, nullptr, &required); if (err != CL_SUCCESS) { return err; } size_type elements = required / sizeof(size_type); vector value(elements, 0); err = f(name, required, value.data(), nullptr); if (err != CL_SUCCESS) { return err; } // Bound the copy with N to prevent overruns // if passed N > than the amount copied if (elements > N) { elements = N; } for (size_type i = 0; i < elements; ++i) { (*param)[i] = value[i]; } return CL_SUCCESS; } template struct ReferenceHandler; /* Specialization for reference-counted types. This depends on the * existence of Wrapper::cl_type, and none of the other types having the * cl_type member. Note that simplify specifying the parameter as Wrapper * does not work, because when using a derived type (e.g. Context) the generic * template will provide a better match. */ template inline cl_int getInfoHelper(Func f, cl_uint name, T* param, int, typename T::cl_type = 0) { typename T::cl_type value; cl_int err = f(name, sizeof(value), &value, nullptr); if (err != CL_SUCCESS) { return err; } *param = value; if (value != nullptr) { err = param->retain(); if (err != CL_SUCCESS) { return err; } } return CL_SUCCESS; } #ifndef CL_DEVICE_HALF_FP_CONFIG // without requiring cl_ext.h #define CL_DEVICE_HALF_FP_CONFIG 0x1033 #endif #define CL_HPP_PARAM_NAME_INFO_1_0_(F) \ F(cl_platform_info, CL_PLATFORM_PROFILE, string) \ F(cl_platform_info, CL_PLATFORM_VERSION, string) \ F(cl_platform_info, CL_PLATFORM_NAME, string) \ F(cl_platform_info, CL_PLATFORM_VENDOR, string) \ F(cl_platform_info, CL_PLATFORM_EXTENSIONS, string) \ \ F(cl_device_info, CL_DEVICE_TYPE, cl_device_type) \ F(cl_device_info, CL_DEVICE_VENDOR_ID, cl_uint) \ F(cl_device_info, CL_DEVICE_MAX_COMPUTE_UNITS, cl_uint) \ F(cl_device_info, CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS, cl_uint) \ F(cl_device_info, CL_DEVICE_MAX_WORK_GROUP_SIZE, size_type) \ F(cl_device_info, CL_DEVICE_MAX_WORK_ITEM_SIZES, cl::vector) \ F(cl_device_info, CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR, cl_uint) \ F(cl_device_info, CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT, cl_uint) \ F(cl_device_info, CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT, cl_uint) \ F(cl_device_info, CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG, cl_uint) \ F(cl_device_info, CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT, cl_uint) \ F(cl_device_info, CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE, cl_uint) \ F(cl_device_info, CL_DEVICE_MAX_CLOCK_FREQUENCY, cl_uint) \ F(cl_device_info, CL_DEVICE_ADDRESS_BITS, cl_uint) \ F(cl_device_info, CL_DEVICE_MAX_READ_IMAGE_ARGS, cl_uint) \ F(cl_device_info, CL_DEVICE_MAX_WRITE_IMAGE_ARGS, cl_uint) \ F(cl_device_info, CL_DEVICE_MAX_MEM_ALLOC_SIZE, cl_ulong) \ F(cl_device_info, CL_DEVICE_IMAGE2D_MAX_WIDTH, size_type) \ F(cl_device_info, CL_DEVICE_IMAGE2D_MAX_HEIGHT, size_type) \ F(cl_device_info, CL_DEVICE_IMAGE3D_MAX_WIDTH, size_type) \ F(cl_device_info, CL_DEVICE_IMAGE3D_MAX_HEIGHT, size_type) \ F(cl_device_info, CL_DEVICE_IMAGE3D_MAX_DEPTH, size_type) \ F(cl_device_info, CL_DEVICE_IMAGE_SUPPORT, cl_bool) \ F(cl_device_info, CL_DEVICE_MAX_PARAMETER_SIZE, size_type) \ F(cl_device_info, CL_DEVICE_MAX_SAMPLERS, cl_uint) \ F(cl_device_info, CL_DEVICE_MEM_BASE_ADDR_ALIGN, cl_uint) \ F(cl_device_info, CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE, cl_uint) \ F(cl_device_info, CL_DEVICE_SINGLE_FP_CONFIG, cl_device_fp_config) \ F(cl_device_info, CL_DEVICE_DOUBLE_FP_CONFIG, cl_device_fp_config) \ F(cl_device_info, CL_DEVICE_HALF_FP_CONFIG, cl_device_fp_config) \ F(cl_device_info, CL_DEVICE_GLOBAL_MEM_CACHE_TYPE, cl_device_mem_cache_type) \ F(cl_device_info, CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE, cl_uint)\ F(cl_device_info, CL_DEVICE_GLOBAL_MEM_CACHE_SIZE, cl_ulong) \ F(cl_device_info, CL_DEVICE_GLOBAL_MEM_SIZE, cl_ulong) \ F(cl_device_info, CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE, cl_ulong) \ F(cl_device_info, CL_DEVICE_MAX_CONSTANT_ARGS, cl_uint) \ F(cl_device_info, CL_DEVICE_LOCAL_MEM_TYPE, cl_device_local_mem_type) \ F(cl_device_info, CL_DEVICE_LOCAL_MEM_SIZE, cl_ulong) \ F(cl_device_info, CL_DEVICE_ERROR_CORRECTION_SUPPORT, cl_bool) \ F(cl_device_info, CL_DEVICE_PROFILING_TIMER_RESOLUTION, size_type) \ F(cl_device_info, CL_DEVICE_ENDIAN_LITTLE, cl_bool) \ F(cl_device_info, CL_DEVICE_AVAILABLE, cl_bool) \ F(cl_device_info, CL_DEVICE_COMPILER_AVAILABLE, cl_bool) \ F(cl_device_info, CL_DEVICE_EXECUTION_CAPABILITIES, cl_device_exec_capabilities) \ F(cl_device_info, CL_DEVICE_PLATFORM, cl_platform_id) \ F(cl_device_info, CL_DEVICE_NAME, string) \ F(cl_device_info, CL_DEVICE_VENDOR, string) \ F(cl_device_info, CL_DRIVER_VERSION, string) \ F(cl_device_info, CL_DEVICE_PROFILE, string) \ F(cl_device_info, CL_DEVICE_VERSION, string) \ F(cl_device_info, CL_DEVICE_EXTENSIONS, string) \ \ F(cl_context_info, CL_CONTEXT_REFERENCE_COUNT, cl_uint) \ F(cl_context_info, CL_CONTEXT_DEVICES, cl::vector) \ F(cl_context_info, CL_CONTEXT_PROPERTIES, cl::vector) \ \ F(cl_event_info, CL_EVENT_COMMAND_QUEUE, cl::CommandQueue) \ F(cl_event_info, CL_EVENT_COMMAND_TYPE, cl_command_type) \ F(cl_event_info, CL_EVENT_REFERENCE_COUNT, cl_uint) \ F(cl_event_info, CL_EVENT_COMMAND_EXECUTION_STATUS, cl_int) \ \ F(cl_profiling_info, CL_PROFILING_COMMAND_QUEUED, cl_ulong) \ F(cl_profiling_info, CL_PROFILING_COMMAND_SUBMIT, cl_ulong) \ F(cl_profiling_info, CL_PROFILING_COMMAND_START, cl_ulong) \ F(cl_profiling_info, CL_PROFILING_COMMAND_END, cl_ulong) \ \ F(cl_mem_info, CL_MEM_TYPE, cl_mem_object_type) \ F(cl_mem_info, CL_MEM_FLAGS, cl_mem_flags) \ F(cl_mem_info, CL_MEM_SIZE, size_type) \ F(cl_mem_info, CL_MEM_HOST_PTR, void*) \ F(cl_mem_info, CL_MEM_MAP_COUNT, cl_uint) \ F(cl_mem_info, CL_MEM_REFERENCE_COUNT, cl_uint) \ F(cl_mem_info, CL_MEM_CONTEXT, cl::Context) \ \ F(cl_image_info, CL_IMAGE_FORMAT, cl_image_format) \ F(cl_image_info, CL_IMAGE_ELEMENT_SIZE, size_type) \ F(cl_image_info, CL_IMAGE_ROW_PITCH, size_type) \ F(cl_image_info, CL_IMAGE_SLICE_PITCH, size_type) \ F(cl_image_info, CL_IMAGE_WIDTH, size_type) \ F(cl_image_info, CL_IMAGE_HEIGHT, size_type) \ F(cl_image_info, CL_IMAGE_DEPTH, size_type) \ \ F(cl_sampler_info, CL_SAMPLER_REFERENCE_COUNT, cl_uint) \ F(cl_sampler_info, CL_SAMPLER_CONTEXT, cl::Context) \ F(cl_sampler_info, CL_SAMPLER_NORMALIZED_COORDS, cl_bool) \ F(cl_sampler_info, CL_SAMPLER_ADDRESSING_MODE, cl_addressing_mode) \ F(cl_sampler_info, CL_SAMPLER_FILTER_MODE, cl_filter_mode) \ \ F(cl_program_info, CL_PROGRAM_REFERENCE_COUNT, cl_uint) \ F(cl_program_info, CL_PROGRAM_CONTEXT, cl::Context) \ F(cl_program_info, CL_PROGRAM_NUM_DEVICES, cl_uint) \ F(cl_program_info, CL_PROGRAM_DEVICES, cl::vector) \ F(cl_program_info, CL_PROGRAM_SOURCE, string) \ F(cl_program_info, CL_PROGRAM_BINARY_SIZES, cl::vector) \ F(cl_program_info, CL_PROGRAM_BINARIES, cl::vector>) \ \ F(cl_program_build_info, CL_PROGRAM_BUILD_STATUS, cl_build_status) \ F(cl_program_build_info, CL_PROGRAM_BUILD_OPTIONS, string) \ F(cl_program_build_info, CL_PROGRAM_BUILD_LOG, string) \ \ F(cl_kernel_info, CL_KERNEL_FUNCTION_NAME, string) \ F(cl_kernel_info, CL_KERNEL_NUM_ARGS, cl_uint) \ F(cl_kernel_info, CL_KERNEL_REFERENCE_COUNT, cl_uint) \ F(cl_kernel_info, CL_KERNEL_CONTEXT, cl::Context) \ F(cl_kernel_info, CL_KERNEL_PROGRAM, cl::Program) \ \ F(cl_kernel_work_group_info, CL_KERNEL_WORK_GROUP_SIZE, size_type) \ F(cl_kernel_work_group_info, CL_KERNEL_COMPILE_WORK_GROUP_SIZE, cl::detail::size_t_array) \ F(cl_kernel_work_group_info, CL_KERNEL_LOCAL_MEM_SIZE, cl_ulong) \ \ F(cl_command_queue_info, CL_QUEUE_CONTEXT, cl::Context) \ F(cl_command_queue_info, CL_QUEUE_DEVICE, cl::Device) \ F(cl_command_queue_info, CL_QUEUE_REFERENCE_COUNT, cl_uint) \ F(cl_command_queue_info, CL_QUEUE_PROPERTIES, cl_command_queue_properties) #define CL_HPP_PARAM_NAME_INFO_1_1_(F) \ F(cl_context_info, CL_CONTEXT_NUM_DEVICES, cl_uint)\ F(cl_device_info, CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF, cl_uint) \ F(cl_device_info, CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR, cl_uint) \ F(cl_device_info, CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT, cl_uint) \ F(cl_device_info, CL_DEVICE_NATIVE_VECTOR_WIDTH_INT, cl_uint) \ F(cl_device_info, CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG, cl_uint) \ F(cl_device_info, CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT, cl_uint) \ F(cl_device_info, CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE, cl_uint) \ F(cl_device_info, CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF, cl_uint) \ F(cl_device_info, CL_DEVICE_OPENCL_C_VERSION, string) \ \ F(cl_mem_info, CL_MEM_ASSOCIATED_MEMOBJECT, cl::Memory) \ F(cl_mem_info, CL_MEM_OFFSET, size_type) \ \ F(cl_kernel_work_group_info, CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE, size_type) \ F(cl_kernel_work_group_info, CL_KERNEL_PRIVATE_MEM_SIZE, cl_ulong) \ \ F(cl_event_info, CL_EVENT_CONTEXT, cl::Context) #define CL_HPP_PARAM_NAME_INFO_1_2_(F) \ F(cl_program_info, CL_PROGRAM_NUM_KERNELS, size_type) \ F(cl_program_info, CL_PROGRAM_KERNEL_NAMES, string) \ \ F(cl_program_build_info, CL_PROGRAM_BINARY_TYPE, cl_program_binary_type) \ \ F(cl_kernel_info, CL_KERNEL_ATTRIBUTES, string) \ \ F(cl_kernel_arg_info, CL_KERNEL_ARG_ADDRESS_QUALIFIER, cl_kernel_arg_address_qualifier) \ F(cl_kernel_arg_info, CL_KERNEL_ARG_ACCESS_QUALIFIER, cl_kernel_arg_access_qualifier) \ F(cl_kernel_arg_info, CL_KERNEL_ARG_TYPE_NAME, string) \ F(cl_kernel_arg_info, CL_KERNEL_ARG_NAME, string) \ F(cl_kernel_arg_info, CL_KERNEL_ARG_TYPE_QUALIFIER, cl_kernel_arg_type_qualifier) \ \ F(cl_kernel_work_group_info, CL_KERNEL_GLOBAL_WORK_SIZE, cl::detail::size_t_array) \ \ F(cl_device_info, CL_DEVICE_LINKER_AVAILABLE, cl_bool) \ F(cl_device_info, CL_DEVICE_IMAGE_MAX_BUFFER_SIZE, size_type) \ F(cl_device_info, CL_DEVICE_IMAGE_MAX_ARRAY_SIZE, size_type) \ F(cl_device_info, CL_DEVICE_PARENT_DEVICE, cl::Device) \ F(cl_device_info, CL_DEVICE_PARTITION_MAX_SUB_DEVICES, cl_uint) \ F(cl_device_info, CL_DEVICE_PARTITION_PROPERTIES, cl::vector) \ F(cl_device_info, CL_DEVICE_PARTITION_TYPE, cl::vector) \ F(cl_device_info, CL_DEVICE_REFERENCE_COUNT, cl_uint) \ F(cl_device_info, CL_DEVICE_PREFERRED_INTEROP_USER_SYNC, cl_bool) \ F(cl_device_info, CL_DEVICE_PARTITION_AFFINITY_DOMAIN, cl_device_affinity_domain) \ F(cl_device_info, CL_DEVICE_BUILT_IN_KERNELS, string) \ F(cl_device_info, CL_DEVICE_PRINTF_BUFFER_SIZE, size_type) \ \ F(cl_image_info, CL_IMAGE_ARRAY_SIZE, size_type) \ F(cl_image_info, CL_IMAGE_NUM_MIP_LEVELS, cl_uint) \ F(cl_image_info, CL_IMAGE_NUM_SAMPLES, cl_uint) #define CL_HPP_PARAM_NAME_INFO_2_0_(F) \ F(cl_device_info, CL_DEVICE_QUEUE_ON_HOST_PROPERTIES, cl_command_queue_properties) \ F(cl_device_info, CL_DEVICE_QUEUE_ON_DEVICE_PROPERTIES, cl_command_queue_properties) \ F(cl_device_info, CL_DEVICE_QUEUE_ON_DEVICE_PREFERRED_SIZE, cl_uint) \ F(cl_device_info, CL_DEVICE_QUEUE_ON_DEVICE_MAX_SIZE, cl_uint) \ F(cl_device_info, CL_DEVICE_MAX_ON_DEVICE_QUEUES, cl_uint) \ F(cl_device_info, CL_DEVICE_MAX_ON_DEVICE_EVENTS, cl_uint) \ F(cl_device_info, CL_DEVICE_MAX_PIPE_ARGS, cl_uint) \ F(cl_device_info, CL_DEVICE_PIPE_MAX_ACTIVE_RESERVATIONS, cl_uint) \ F(cl_device_info, CL_DEVICE_PIPE_MAX_PACKET_SIZE, cl_uint) \ F(cl_device_info, CL_DEVICE_SVM_CAPABILITIES, cl_device_svm_capabilities) \ F(cl_device_info, CL_DEVICE_PREFERRED_PLATFORM_ATOMIC_ALIGNMENT, cl_uint) \ F(cl_device_info, CL_DEVICE_PREFERRED_GLOBAL_ATOMIC_ALIGNMENT, cl_uint) \ F(cl_device_info, CL_DEVICE_PREFERRED_LOCAL_ATOMIC_ALIGNMENT, cl_uint) \ F(cl_device_info, CL_DEVICE_IMAGE_PITCH_ALIGNMENT, cl_uint) \ F(cl_device_info, CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT, cl_uint) \ F(cl_device_info, CL_DEVICE_MAX_READ_WRITE_IMAGE_ARGS, cl_uint ) \ F(cl_device_info, CL_DEVICE_MAX_GLOBAL_VARIABLE_SIZE, size_type ) \ F(cl_device_info, CL_DEVICE_GLOBAL_VARIABLE_PREFERRED_TOTAL_SIZE, size_type ) \ F(cl_profiling_info, CL_PROFILING_COMMAND_COMPLETE, cl_ulong) \ F(cl_kernel_exec_info, CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM, cl_bool) \ F(cl_kernel_exec_info, CL_KERNEL_EXEC_INFO_SVM_PTRS, void**) \ F(cl_command_queue_info, CL_QUEUE_SIZE, cl_uint) \ F(cl_mem_info, CL_MEM_USES_SVM_POINTER, cl_bool) \ F(cl_program_build_info, CL_PROGRAM_BUILD_GLOBAL_VARIABLE_TOTAL_SIZE, size_type) \ F(cl_pipe_info, CL_PIPE_PACKET_SIZE, cl_uint) \ F(cl_pipe_info, CL_PIPE_MAX_PACKETS, cl_uint) #define CL_HPP_PARAM_NAME_INFO_SUBGROUP_KHR_(F) \ F(cl_kernel_sub_group_info, CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE_KHR, size_type) \ F(cl_kernel_sub_group_info, CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE_KHR, size_type) #define CL_HPP_PARAM_NAME_INFO_IL_KHR_(F) \ F(cl_device_info, CL_DEVICE_IL_VERSION_KHR, string) \ F(cl_program_info, CL_PROGRAM_IL_KHR, cl::vector) #define CL_HPP_PARAM_NAME_INFO_2_1_(F) \ F(cl_platform_info, CL_PLATFORM_HOST_TIMER_RESOLUTION, cl_ulong) \ F(cl_program_info, CL_PROGRAM_IL, cl::vector) \ F(cl_device_info, CL_DEVICE_MAX_NUM_SUB_GROUPS, cl_uint) \ F(cl_device_info, CL_DEVICE_IL_VERSION, string) \ F(cl_device_info, CL_DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS, cl_bool) \ F(cl_command_queue_info, CL_QUEUE_DEVICE_DEFAULT, cl::DeviceCommandQueue) \ F(cl_kernel_sub_group_info, CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE, size_type) \ F(cl_kernel_sub_group_info, CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE, size_type) \ F(cl_kernel_sub_group_info, CL_KERNEL_LOCAL_SIZE_FOR_SUB_GROUP_COUNT, cl::detail::size_t_array) \ F(cl_kernel_sub_group_info, CL_KERNEL_MAX_NUM_SUB_GROUPS, size_type) \ F(cl_kernel_sub_group_info, CL_KERNEL_COMPILE_NUM_SUB_GROUPS, size_type) #define CL_HPP_PARAM_NAME_INFO_2_2_(F) \ F(cl_program_info, CL_PROGRAM_SCOPE_GLOBAL_CTORS_PRESENT, cl_bool) \ F(cl_program_info, CL_PROGRAM_SCOPE_GLOBAL_DTORS_PRESENT, cl_bool) #define CL_HPP_PARAM_NAME_DEVICE_FISSION_EXT_(F) \ F(cl_device_info, CL_DEVICE_PARENT_DEVICE_EXT, cl::Device) \ F(cl_device_info, CL_DEVICE_PARTITION_TYPES_EXT, cl::vector) \ F(cl_device_info, CL_DEVICE_AFFINITY_DOMAINS_EXT, cl::vector) \ F(cl_device_info, CL_DEVICE_REFERENCE_COUNT_EXT , cl_uint) \ F(cl_device_info, CL_DEVICE_PARTITION_STYLE_EXT, cl::vector) #define CL_HPP_PARAM_NAME_CL_KHR_EXTENDED_VERSIONING_CL3_SHARED_(F) \ F(cl_platform_info, CL_PLATFORM_NUMERIC_VERSION_KHR, cl_version_khr) \ F(cl_platform_info, CL_PLATFORM_EXTENSIONS_WITH_VERSION_KHR, cl::vector) \ \ F(cl_device_info, CL_DEVICE_NUMERIC_VERSION_KHR, cl_version_khr) \ F(cl_device_info, CL_DEVICE_EXTENSIONS_WITH_VERSION_KHR, cl::vector) \ F(cl_device_info, CL_DEVICE_ILS_WITH_VERSION_KHR, cl::vector) \ F(cl_device_info, CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION_KHR, cl::vector) #define CL_HPP_PARAM_NAME_CL_KHR_EXTENDED_VERSIONING_KHRONLY_(F) \ F(cl_device_info, CL_DEVICE_OPENCL_C_NUMERIC_VERSION_KHR, cl_version_khr) #define CL_HPP_PARAM_NAME_CL_KHR_SEMAPHORE_(F) \ F(cl_semaphore_info_khr, CL_SEMAPHORE_PROPERTIES_KHR, cl::vector) \ F(cl_platform_info, CL_PLATFORM_SEMAPHORE_TYPES_KHR, cl::vector) \ F(cl_device_info, CL_DEVICE_SEMAPHORE_TYPES_KHR, cl::vector) \ #define CL_HPP_PARAM_NAME_CL_KHR_EXTERNAL_MEMORY_(F) \ F(cl_device_info, CL_DEVICE_EXTERNAL_MEMORY_IMPORT_HANDLE_TYPES_KHR, cl::vector) \ F(cl_platform_info, CL_PLATFORM_EXTERNAL_MEMORY_IMPORT_HANDLE_TYPES_KHR, cl::vector) #define CL_HPP_PARAM_NAME_INFO_3_0_(F) \ F(cl_platform_info, CL_PLATFORM_NUMERIC_VERSION, cl_version) \ F(cl_platform_info, CL_PLATFORM_EXTENSIONS_WITH_VERSION, cl::vector) \ \ F(cl_device_info, CL_DEVICE_NUMERIC_VERSION, cl_version) \ F(cl_device_info, CL_DEVICE_EXTENSIONS_WITH_VERSION, cl::vector) \ F(cl_device_info, CL_DEVICE_ILS_WITH_VERSION, cl::vector) \ F(cl_device_info, CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION, cl::vector) \ F(cl_device_info, CL_DEVICE_ATOMIC_MEMORY_CAPABILITIES, cl_device_atomic_capabilities) \ F(cl_device_info, CL_DEVICE_ATOMIC_FENCE_CAPABILITIES, cl_device_atomic_capabilities) \ F(cl_device_info, CL_DEVICE_NON_UNIFORM_WORK_GROUP_SUPPORT, cl_bool) \ F(cl_device_info, CL_DEVICE_OPENCL_C_ALL_VERSIONS, cl::vector) \ F(cl_device_info, CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_MULTIPLE, size_type) \ F(cl_device_info, CL_DEVICE_WORK_GROUP_COLLECTIVE_FUNCTIONS_SUPPORT, cl_bool) \ F(cl_device_info, CL_DEVICE_GENERIC_ADDRESS_SPACE_SUPPORT, cl_bool) \ F(cl_device_info, CL_DEVICE_OPENCL_C_FEATURES, cl::vector) \ F(cl_device_info, CL_DEVICE_DEVICE_ENQUEUE_CAPABILITIES, cl_device_device_enqueue_capabilities) \ F(cl_device_info, CL_DEVICE_PIPE_SUPPORT, cl_bool) \ F(cl_device_info, CL_DEVICE_LATEST_CONFORMANCE_VERSION_PASSED, string) \ \ F(cl_command_queue_info, CL_QUEUE_PROPERTIES_ARRAY, cl::vector) \ F(cl_mem_info, CL_MEM_PROPERTIES, cl::vector) \ F(cl_pipe_info, CL_PIPE_PROPERTIES, cl::vector) \ F(cl_sampler_info, CL_SAMPLER_PROPERTIES, cl::vector) \ template struct param_traits {}; #define CL_HPP_DECLARE_PARAM_TRAITS_(token, param_name, T) \ struct token; \ template<> \ struct param_traits \ { \ enum { value = param_name }; \ typedef T param_type; \ }; CL_HPP_PARAM_NAME_INFO_1_0_(CL_HPP_DECLARE_PARAM_TRAITS_) #if CL_HPP_TARGET_OPENCL_VERSION >= 110 CL_HPP_PARAM_NAME_INFO_1_1_(CL_HPP_DECLARE_PARAM_TRAITS_) #endif // CL_HPP_TARGET_OPENCL_VERSION >= 110 #if CL_HPP_TARGET_OPENCL_VERSION >= 120 CL_HPP_PARAM_NAME_INFO_1_2_(CL_HPP_DECLARE_PARAM_TRAITS_) #endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 #if CL_HPP_TARGET_OPENCL_VERSION >= 200 CL_HPP_PARAM_NAME_INFO_2_0_(CL_HPP_DECLARE_PARAM_TRAITS_) #endif // CL_HPP_TARGET_OPENCL_VERSION >= 200 #if CL_HPP_TARGET_OPENCL_VERSION >= 210 CL_HPP_PARAM_NAME_INFO_2_1_(CL_HPP_DECLARE_PARAM_TRAITS_) #endif // CL_HPP_TARGET_OPENCL_VERSION >= 210 #if CL_HPP_TARGET_OPENCL_VERSION >= 220 CL_HPP_PARAM_NAME_INFO_2_2_(CL_HPP_DECLARE_PARAM_TRAITS_) #endif // CL_HPP_TARGET_OPENCL_VERSION >= 220 #if CL_HPP_TARGET_OPENCL_VERSION >= 300 CL_HPP_PARAM_NAME_INFO_3_0_(CL_HPP_DECLARE_PARAM_TRAITS_) #endif // CL_HPP_TARGET_OPENCL_VERSION >= 300 #if defined(cl_khr_subgroups) && CL_HPP_TARGET_OPENCL_VERSION < 210 CL_HPP_PARAM_NAME_INFO_SUBGROUP_KHR_(CL_HPP_DECLARE_PARAM_TRAITS_) #endif // #if defined(cl_khr_subgroups) && CL_HPP_TARGET_OPENCL_VERSION < 210 #if defined(cl_khr_il_program) && CL_HPP_TARGET_OPENCL_VERSION < 210 CL_HPP_PARAM_NAME_INFO_IL_KHR_(CL_HPP_DECLARE_PARAM_TRAITS_) #endif // #if defined(cl_khr_il_program) && CL_HPP_TARGET_OPENCL_VERSION < 210 // Flags deprecated in OpenCL 2.0 #define CL_HPP_PARAM_NAME_INFO_1_0_DEPRECATED_IN_2_0_(F) \ F(cl_device_info, CL_DEVICE_QUEUE_PROPERTIES, cl_command_queue_properties) #define CL_HPP_PARAM_NAME_INFO_1_1_DEPRECATED_IN_2_0_(F) \ F(cl_device_info, CL_DEVICE_HOST_UNIFIED_MEMORY, cl_bool) #define CL_HPP_PARAM_NAME_INFO_1_2_DEPRECATED_IN_2_0_(F) \ F(cl_image_info, CL_IMAGE_BUFFER, cl::Buffer) // Include deprecated query flags based on versions // Only include deprecated 1.0 flags if 2.0 not active as there is an enum clash #if CL_HPP_TARGET_OPENCL_VERSION > 100 && CL_HPP_MINIMUM_OPENCL_VERSION < 200 && CL_HPP_TARGET_OPENCL_VERSION < 200 CL_HPP_PARAM_NAME_INFO_1_0_DEPRECATED_IN_2_0_(CL_HPP_DECLARE_PARAM_TRAITS_) #endif // CL_HPP_MINIMUM_OPENCL_VERSION < 110 #if CL_HPP_TARGET_OPENCL_VERSION > 110 && CL_HPP_MINIMUM_OPENCL_VERSION < 200 CL_HPP_PARAM_NAME_INFO_1_1_DEPRECATED_IN_2_0_(CL_HPP_DECLARE_PARAM_TRAITS_) #endif // CL_HPP_MINIMUM_OPENCL_VERSION < 120 #if CL_HPP_TARGET_OPENCL_VERSION > 120 && CL_HPP_MINIMUM_OPENCL_VERSION < 200 CL_HPP_PARAM_NAME_INFO_1_2_DEPRECATED_IN_2_0_(CL_HPP_DECLARE_PARAM_TRAITS_) #endif // CL_HPP_MINIMUM_OPENCL_VERSION < 200 #if defined(cl_ext_device_fission) CL_HPP_PARAM_NAME_DEVICE_FISSION_EXT_(CL_HPP_DECLARE_PARAM_TRAITS_) #endif // cl_ext_device_fission #if defined(cl_khr_extended_versioning) #if CL_HPP_TARGET_OPENCL_VERSION < 300 CL_HPP_PARAM_NAME_CL_KHR_EXTENDED_VERSIONING_CL3_SHARED_(CL_HPP_DECLARE_PARAM_TRAITS_) #endif // CL_HPP_TARGET_OPENCL_VERSION < 300 CL_HPP_PARAM_NAME_CL_KHR_EXTENDED_VERSIONING_KHRONLY_(CL_HPP_DECLARE_PARAM_TRAITS_) #endif // cl_khr_extended_versioning #if defined(cl_khr_semaphore) CL_HPP_PARAM_NAME_CL_KHR_SEMAPHORE_(CL_HPP_DECLARE_PARAM_TRAITS_) #endif // cl_khr_semaphore #ifdef cl_khr_external_memory CL_HPP_PARAM_NAME_CL_KHR_EXTERNAL_MEMORY_(CL_HPP_DECLARE_PARAM_TRAITS_) #endif // cl_khr_external_memory #if defined(cl_khr_device_uuid) using uuid_array = array; using luid_array = array; CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_UUID_KHR, uuid_array) CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DRIVER_UUID_KHR, uuid_array) CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_LUID_VALID_KHR, cl_bool) CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_LUID_KHR, luid_array) CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_NODE_MASK_KHR, cl_uint) #endif #if defined(cl_khr_pci_bus_info) CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_PCI_BUS_INFO_KHR, cl_device_pci_bus_info_khr) #endif // Note: some headers do not define cl_khr_image2d_from_buffer #if CL_HPP_TARGET_OPENCL_VERSION < 200 #if defined(CL_DEVICE_IMAGE_PITCH_ALIGNMENT_KHR) CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_IMAGE_PITCH_ALIGNMENT_KHR, cl_uint) #endif #if defined(CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT_KHR) CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT_KHR, cl_uint) #endif #endif // CL_HPP_TARGET_OPENCL_VERSION < 200 #if defined(cl_khr_integer_dot_product) CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_INTEGER_DOT_PRODUCT_CAPABILITIES_KHR, cl_device_integer_dot_product_capabilities_khr) #if defined(CL_DEVICE_INTEGER_DOT_PRODUCT_ACCELERATION_PROPERTIES_8BIT_KHR) CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_INTEGER_DOT_PRODUCT_ACCELERATION_PROPERTIES_8BIT_KHR, cl_device_integer_dot_product_acceleration_properties_khr) CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_INTEGER_DOT_PRODUCT_ACCELERATION_PROPERTIES_4x8BIT_PACKED_KHR, cl_device_integer_dot_product_acceleration_properties_khr) #endif // defined(CL_DEVICE_INTEGER_DOT_PRODUCT_ACCELERATION_PROPERTIES_8BIT_KHR) #endif // defined(cl_khr_integer_dot_product) #ifdef CL_PLATFORM_ICD_SUFFIX_KHR CL_HPP_DECLARE_PARAM_TRAITS_(cl_platform_info, CL_PLATFORM_ICD_SUFFIX_KHR, string) #endif #ifdef CL_DEVICE_PROFILING_TIMER_OFFSET_AMD CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_PROFILING_TIMER_OFFSET_AMD, cl_ulong) #endif #ifdef CL_DEVICE_GLOBAL_FREE_MEMORY_AMD CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_GLOBAL_FREE_MEMORY_AMD, vector) #endif #ifdef CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD, cl_uint) #endif #ifdef CL_DEVICE_SIMD_WIDTH_AMD CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_SIMD_WIDTH_AMD, cl_uint) #endif #ifdef CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD, cl_uint) #endif #ifdef CL_DEVICE_WAVEFRONT_WIDTH_AMD CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_WAVEFRONT_WIDTH_AMD, cl_uint) #endif #ifdef CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD, cl_uint) #endif #ifdef CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD, cl_uint) #endif #ifdef CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD, cl_uint) #endif #ifdef CL_DEVICE_LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD, cl_uint) #endif #ifdef CL_DEVICE_LOCAL_MEM_BANKS_AMD CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_LOCAL_MEM_BANKS_AMD, cl_uint) #endif #ifdef CL_DEVICE_BOARD_NAME_AMD CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_BOARD_NAME_AMD, string) #endif #ifdef CL_DEVICE_COMPUTE_UNITS_BITFIELD_ARM CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_COMPUTE_UNITS_BITFIELD_ARM, cl_ulong) #endif #ifdef CL_DEVICE_JOB_SLOTS_ARM CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_JOB_SLOTS_ARM, cl_uint) #endif #ifdef CL_DEVICE_SCHEDULING_CONTROLS_CAPABILITIES_ARM CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_SCHEDULING_CONTROLS_CAPABILITIES_ARM, cl_bitfield) #endif #ifdef CL_DEVICE_SUPPORTED_REGISTER_ALLOCATIONS_ARM CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_SUPPORTED_REGISTER_ALLOCATIONS_ARM, vector) #endif #ifdef CL_DEVICE_MAX_WARP_COUNT_ARM CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_MAX_WARP_COUNT_ARM, cl_uint) #endif #ifdef CL_KERNEL_MAX_WARP_COUNT_ARM CL_HPP_DECLARE_PARAM_TRAITS_(cl_kernel_info, CL_KERNEL_MAX_WARP_COUNT_ARM, cl_uint) #endif #ifdef CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_ARM CL_HPP_DECLARE_PARAM_TRAITS_(cl_kernel_exec_info, CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_ARM, cl_uint) #endif #ifdef CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_MODIFIER_ARM CL_HPP_DECLARE_PARAM_TRAITS_(cl_kernel_exec_info, CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_MODIFIER_ARM, cl_int) #endif #ifdef CL_KERNEL_EXEC_INFO_WARP_COUNT_LIMIT_ARM CL_HPP_DECLARE_PARAM_TRAITS_(cl_kernel_exec_info, CL_KERNEL_EXEC_INFO_WARP_COUNT_LIMIT_ARM, cl_uint) #endif #ifdef CL_KERNEL_EXEC_INFO_COMPUTE_UNIT_MAX_QUEUED_BATCHES_ARM CL_HPP_DECLARE_PARAM_TRAITS_(cl_kernel_exec_info, CL_KERNEL_EXEC_INFO_COMPUTE_UNIT_MAX_QUEUED_BATCHES_ARM, cl_uint) #endif #ifdef CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV, cl_uint) #endif #ifdef CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV, cl_uint) #endif #ifdef CL_DEVICE_REGISTERS_PER_BLOCK_NV CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_REGISTERS_PER_BLOCK_NV, cl_uint) #endif #ifdef CL_DEVICE_WARP_SIZE_NV CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_WARP_SIZE_NV, cl_uint) #endif #ifdef CL_DEVICE_GPU_OVERLAP_NV CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_GPU_OVERLAP_NV, cl_bool) #endif #ifdef CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV, cl_bool) #endif #ifdef CL_DEVICE_INTEGRATED_MEMORY_NV CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_INTEGRATED_MEMORY_NV, cl_bool) #endif #if defined(cl_khr_command_buffer) CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_COMMAND_BUFFER_CAPABILITIES_KHR, cl_device_command_buffer_capabilities_khr) CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_COMMAND_BUFFER_REQUIRED_QUEUE_PROPERTIES_KHR, cl_command_buffer_properties_khr) CL_HPP_DECLARE_PARAM_TRAITS_(cl_command_buffer_info_khr, CL_COMMAND_BUFFER_QUEUES_KHR, cl::vector) CL_HPP_DECLARE_PARAM_TRAITS_(cl_command_buffer_info_khr, CL_COMMAND_BUFFER_NUM_QUEUES_KHR, cl_uint) CL_HPP_DECLARE_PARAM_TRAITS_(cl_command_buffer_info_khr, CL_COMMAND_BUFFER_REFERENCE_COUNT_KHR, cl_uint) CL_HPP_DECLARE_PARAM_TRAITS_(cl_command_buffer_info_khr, CL_COMMAND_BUFFER_STATE_KHR, cl_command_buffer_state_khr) CL_HPP_DECLARE_PARAM_TRAITS_(cl_command_buffer_info_khr, CL_COMMAND_BUFFER_PROPERTIES_ARRAY_KHR, cl::vector) #endif /* cl_khr_command_buffer */ #if defined(cl_khr_command_buffer_mutable_dispatch) CL_HPP_DECLARE_PARAM_TRAITS_(cl_mutable_command_info_khr, CL_MUTABLE_COMMAND_COMMAND_QUEUE_KHR, CommandQueue) CL_HPP_DECLARE_PARAM_TRAITS_(cl_mutable_command_info_khr, CL_MUTABLE_COMMAND_COMMAND_BUFFER_KHR, CommandBufferKhr) CL_HPP_DECLARE_PARAM_TRAITS_(cl_mutable_command_info_khr, CL_MUTABLE_COMMAND_COMMAND_TYPE_KHR, cl_command_type) CL_HPP_DECLARE_PARAM_TRAITS_(cl_mutable_command_info_khr, CL_MUTABLE_DISPATCH_PROPERTIES_ARRAY_KHR, cl::vector) CL_HPP_DECLARE_PARAM_TRAITS_(cl_mutable_command_info_khr, CL_MUTABLE_DISPATCH_KERNEL_KHR, cl_kernel) CL_HPP_DECLARE_PARAM_TRAITS_(cl_mutable_command_info_khr, CL_MUTABLE_DISPATCH_DIMENSIONS_KHR, cl_uint) CL_HPP_DECLARE_PARAM_TRAITS_(cl_mutable_command_info_khr, CL_MUTABLE_DISPATCH_GLOBAL_WORK_OFFSET_KHR, cl::vector) CL_HPP_DECLARE_PARAM_TRAITS_(cl_mutable_command_info_khr, CL_MUTABLE_DISPATCH_GLOBAL_WORK_SIZE_KHR, cl::vector) CL_HPP_DECLARE_PARAM_TRAITS_(cl_mutable_command_info_khr, CL_MUTABLE_DISPATCH_LOCAL_WORK_SIZE_KHR, cl::vector) #endif /* cl_khr_command_buffer_mutable_dispatch */ // Convenience functions template inline cl_int getInfo(Func f, cl_uint name, T* param) { return getInfoHelper(f, name, param, 0); } template struct GetInfoFunctor0 { Func f_; const Arg0& arg0_; cl_int operator ()( cl_uint param, size_type size, void* value, size_type* size_ret) { return f_(arg0_, param, size, value, size_ret); } }; template struct GetInfoFunctor1 { Func f_; const Arg0& arg0_; const Arg1& arg1_; cl_int operator ()( cl_uint param, size_type size, void* value, size_type* size_ret) { return f_(arg0_, arg1_, param, size, value, size_ret); } }; template inline cl_int getInfo(Func f, const Arg0& arg0, cl_uint name, T* param) { GetInfoFunctor0 f0 = { f, arg0 }; return getInfoHelper(f0, name, param, 0); } template inline cl_int getInfo(Func f, const Arg0& arg0, const Arg1& arg1, cl_uint name, T* param) { GetInfoFunctor1 f0 = { f, arg0, arg1 }; return getInfoHelper(f0, name, param, 0); } template struct ReferenceHandler { }; #if CL_HPP_TARGET_OPENCL_VERSION >= 120 /** * OpenCL 1.2 devices do have retain/release. */ template <> struct ReferenceHandler { /** * Retain the device. * \param device A valid device created using createSubDevices * \return * CL_SUCCESS if the function executed successfully. * CL_INVALID_DEVICE if device was not a valid subdevice * CL_OUT_OF_RESOURCES * CL_OUT_OF_HOST_MEMORY */ static cl_int retain(cl_device_id device) { return ::clRetainDevice(device); } /** * Retain the device. * \param device A valid device created using createSubDevices * \return * CL_SUCCESS if the function executed successfully. * CL_INVALID_DEVICE if device was not a valid subdevice * CL_OUT_OF_RESOURCES * CL_OUT_OF_HOST_MEMORY */ static cl_int release(cl_device_id device) { return ::clReleaseDevice(device); } }; #else // CL_HPP_TARGET_OPENCL_VERSION >= 120 /** * OpenCL 1.1 devices do not have retain/release. */ template <> struct ReferenceHandler { // cl_device_id does not have retain(). static cl_int retain(cl_device_id) { return CL_SUCCESS; } // cl_device_id does not have release(). static cl_int release(cl_device_id) { return CL_SUCCESS; } }; #endif // ! (CL_HPP_TARGET_OPENCL_VERSION >= 120) template <> struct ReferenceHandler { // cl_platform_id does not have retain(). static cl_int retain(cl_platform_id) { return CL_SUCCESS; } // cl_platform_id does not have release(). static cl_int release(cl_platform_id) { return CL_SUCCESS; } }; template <> struct ReferenceHandler { static cl_int retain(cl_context context) { return ::clRetainContext(context); } static cl_int release(cl_context context) { return ::clReleaseContext(context); } }; template <> struct ReferenceHandler { static cl_int retain(cl_command_queue queue) { return ::clRetainCommandQueue(queue); } static cl_int release(cl_command_queue queue) { return ::clReleaseCommandQueue(queue); } }; template <> struct ReferenceHandler { static cl_int retain(cl_mem memory) { return ::clRetainMemObject(memory); } static cl_int release(cl_mem memory) { return ::clReleaseMemObject(memory); } }; template <> struct ReferenceHandler { static cl_int retain(cl_sampler sampler) { return ::clRetainSampler(sampler); } static cl_int release(cl_sampler sampler) { return ::clReleaseSampler(sampler); } }; template <> struct ReferenceHandler { static cl_int retain(cl_program program) { return ::clRetainProgram(program); } static cl_int release(cl_program program) { return ::clReleaseProgram(program); } }; template <> struct ReferenceHandler { static cl_int retain(cl_kernel kernel) { return ::clRetainKernel(kernel); } static cl_int release(cl_kernel kernel) { return ::clReleaseKernel(kernel); } }; template <> struct ReferenceHandler { static cl_int retain(cl_event event) { return ::clRetainEvent(event); } static cl_int release(cl_event event) { return ::clReleaseEvent(event); } }; #ifdef cl_khr_semaphore template <> struct ReferenceHandler { static cl_int retain(cl_semaphore_khr semaphore) { if (pfn_clRetainSemaphoreKHR != nullptr) { return pfn_clRetainSemaphoreKHR(semaphore); } return CL_INVALID_OPERATION; } static cl_int release(cl_semaphore_khr semaphore) { if (pfn_clReleaseSemaphoreKHR != nullptr) { return pfn_clReleaseSemaphoreKHR(semaphore); } return CL_INVALID_OPERATION; } }; #endif // cl_khr_semaphore #if defined(cl_khr_command_buffer) template <> struct ReferenceHandler { static cl_int retain(cl_command_buffer_khr cmdBufferKhr) { if (pfn_clRetainCommandBufferKHR == nullptr) { return detail::errHandler(CL_INVALID_OPERATION, __RETAIN_COMMAND_BUFFER_KHR_ERR); } return pfn_clRetainCommandBufferKHR(cmdBufferKhr); } static cl_int release(cl_command_buffer_khr cmdBufferKhr) { if (pfn_clReleaseCommandBufferKHR == nullptr) { return detail::errHandler(CL_INVALID_OPERATION, __RELEASE_COMMAND_BUFFER_KHR_ERR); } return pfn_clReleaseCommandBufferKHR(cmdBufferKhr); } }; template <> struct ReferenceHandler { // cl_mutable_command_khr does not have retain(). static cl_int retain(cl_mutable_command_khr) { return CL_SUCCESS; } // cl_mutable_command_khr does not have release(). static cl_int release(cl_mutable_command_khr) { return CL_SUCCESS; } }; #endif // cl_khr_command_buffer #if CL_HPP_TARGET_OPENCL_VERSION >= 120 && CL_HPP_MINIMUM_OPENCL_VERSION < 120 // Extracts version number with major in the upper 16 bits, minor in the lower 16 static cl_uint getVersion(const vector &versionInfo) { int highVersion = 0; int lowVersion = 0; int index = 7; while(versionInfo[index] != '.' ) { highVersion *= 10; highVersion += versionInfo[index]-'0'; ++index; } ++index; while(versionInfo[index] != ' ' && versionInfo[index] != '\0') { lowVersion *= 10; lowVersion += versionInfo[index]-'0'; ++index; } return (highVersion << 16) | lowVersion; } static cl_uint getPlatformVersion(cl_platform_id platform) { size_type size = 0; clGetPlatformInfo(platform, CL_PLATFORM_VERSION, 0, nullptr, &size); vector versionInfo(size); clGetPlatformInfo(platform, CL_PLATFORM_VERSION, size, versionInfo.data(), &size); return getVersion(versionInfo); } static cl_uint getDevicePlatformVersion(cl_device_id device) { cl_platform_id platform; clGetDeviceInfo(device, CL_DEVICE_PLATFORM, sizeof(platform), &platform, nullptr); return getPlatformVersion(platform); } static cl_uint getContextPlatformVersion(cl_context context) { // The platform cannot be queried directly, so we first have to grab a // device and obtain its context size_type size = 0; clGetContextInfo(context, CL_CONTEXT_DEVICES, 0, nullptr, &size); if (size == 0) return 0; vector devices(size/sizeof(cl_device_id)); clGetContextInfo(context, CL_CONTEXT_DEVICES, size, devices.data(), nullptr); return getDevicePlatformVersion(devices[0]); } #endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 && CL_HPP_MINIMUM_OPENCL_VERSION < 120 template class Wrapper { public: typedef T cl_type; protected: cl_type object_; public: Wrapper() : object_(nullptr) { } Wrapper(const cl_type &obj, bool retainObject) : object_(obj) { if (retainObject) { detail::errHandler(retain(), __RETAIN_ERR); } } ~Wrapper() { if (object_ != nullptr) { release(); } } Wrapper(const Wrapper& rhs) { object_ = rhs.object_; detail::errHandler(retain(), __RETAIN_ERR); } Wrapper(Wrapper&& rhs) CL_HPP_NOEXCEPT_ { object_ = rhs.object_; rhs.object_ = nullptr; } Wrapper& operator = (const Wrapper& rhs) { if (this != &rhs) { detail::errHandler(release(), __RELEASE_ERR); object_ = rhs.object_; detail::errHandler(retain(), __RETAIN_ERR); } return *this; } Wrapper& operator = (Wrapper&& rhs) { if (this != &rhs) { detail::errHandler(release(), __RELEASE_ERR); object_ = rhs.object_; rhs.object_ = nullptr; } return *this; } Wrapper& operator = (const cl_type &rhs) { detail::errHandler(release(), __RELEASE_ERR); object_ = rhs; return *this; } const cl_type& operator ()() const { return object_; } cl_type& operator ()() { return object_; } cl_type get() const { return object_; } protected: template friend inline cl_int getInfoHelper(Func, cl_uint, U*, int, typename U::cl_type); cl_int retain() const { if (object_ != nullptr) { return ReferenceHandler::retain(object_); } else { return CL_SUCCESS; } } cl_int release() const { if (object_ != nullptr) { return ReferenceHandler::release(object_); } else { return CL_SUCCESS; } } }; template <> class Wrapper { public: typedef cl_device_id cl_type; protected: cl_type object_; bool referenceCountable_; static bool isReferenceCountable(cl_device_id device) { bool retVal = false; #if CL_HPP_TARGET_OPENCL_VERSION >= 120 #if CL_HPP_MINIMUM_OPENCL_VERSION < 120 if (device != nullptr) { int version = getDevicePlatformVersion(device); if(version > ((1 << 16) + 1)) { retVal = true; } } #else // CL_HPP_MINIMUM_OPENCL_VERSION < 120 retVal = true; #endif // CL_HPP_MINIMUM_OPENCL_VERSION < 120 #endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 (void)device; return retVal; } public: Wrapper() : object_(nullptr), referenceCountable_(false) { } Wrapper(const cl_type &obj, bool retainObject) : object_(obj), referenceCountable_(false) { referenceCountable_ = isReferenceCountable(obj); if (retainObject) { detail::errHandler(retain(), __RETAIN_ERR); } } ~Wrapper() { release(); } Wrapper(const Wrapper& rhs) { object_ = rhs.object_; referenceCountable_ = isReferenceCountable(object_); detail::errHandler(retain(), __RETAIN_ERR); } Wrapper(Wrapper&& rhs) CL_HPP_NOEXCEPT_ { object_ = rhs.object_; referenceCountable_ = rhs.referenceCountable_; rhs.object_ = nullptr; rhs.referenceCountable_ = false; } Wrapper& operator = (const Wrapper& rhs) { if (this != &rhs) { detail::errHandler(release(), __RELEASE_ERR); object_ = rhs.object_; referenceCountable_ = rhs.referenceCountable_; detail::errHandler(retain(), __RETAIN_ERR); } return *this; } Wrapper& operator = (Wrapper&& rhs) { if (this != &rhs) { detail::errHandler(release(), __RELEASE_ERR); object_ = rhs.object_; referenceCountable_ = rhs.referenceCountable_; rhs.object_ = nullptr; rhs.referenceCountable_ = false; } return *this; } Wrapper& operator = (const cl_type &rhs) { detail::errHandler(release(), __RELEASE_ERR); object_ = rhs; referenceCountable_ = isReferenceCountable(object_); return *this; } const cl_type& operator ()() const { return object_; } cl_type& operator ()() { return object_; } cl_type get() const { return object_; } protected: template friend inline cl_int getInfoHelper(Func, cl_uint, U*, int, typename U::cl_type); template friend inline cl_int getInfoHelper(Func, cl_uint, vector*, int, typename U::cl_type); cl_int retain() const { if( object_ != nullptr && referenceCountable_ ) { return ReferenceHandler::retain(object_); } else { return CL_SUCCESS; } } cl_int release() const { if (object_ != nullptr && referenceCountable_) { return ReferenceHandler::release(object_); } else { return CL_SUCCESS; } } }; template inline bool operator==(const Wrapper &lhs, const Wrapper &rhs) { return lhs() == rhs(); } template inline bool operator!=(const Wrapper &lhs, const Wrapper &rhs) { return !operator==(lhs, rhs); } } // namespace detail //! \endcond /*! \stuct ImageFormat * \brief Adds constructors and member functions for cl_image_format. * * \see cl_image_format */ struct ImageFormat : public cl_image_format { //! \brief Default constructor - performs no initialization. ImageFormat(){} //! \brief Initializing constructor. ImageFormat(cl_channel_order order, cl_channel_type type) { image_channel_order = order; image_channel_data_type = type; } //! \brief Copy constructor. ImageFormat(const ImageFormat &other) { *this = other; } //! \brief Assignment operator. ImageFormat& operator = (const ImageFormat& rhs) { if (this != &rhs) { this->image_channel_data_type = rhs.image_channel_data_type; this->image_channel_order = rhs.image_channel_order; } return *this; } }; /*! \brief Class interface for cl_device_id. * * \note Copies of these objects are inexpensive, since they don't 'own' * any underlying resources or data structures. * * \see cl_device_id */ class Device : public detail::Wrapper { private: static std::once_flag default_initialized_; static Device default_; static cl_int default_error_; /*! \brief Create the default context. * * This sets @c default_ and @c default_error_. It does not throw * @c cl::Error. */ static void makeDefault(); /*! \brief Create the default platform from a provided platform. * * This sets @c default_. It does not throw * @c cl::Error. */ static void makeDefaultProvided(const Device &p) { default_ = p; } public: #ifdef CL_HPP_UNIT_TEST_ENABLE /*! \brief Reset the default. * * This sets @c default_ to an empty value to support cleanup in * the unit test framework. * This function is not thread safe. */ static void unitTestClearDefault() { default_ = Device(); } #endif // #ifdef CL_HPP_UNIT_TEST_ENABLE //! \brief Default constructor - initializes to nullptr. Device() : detail::Wrapper() { } /*! \brief Constructor from cl_device_id. * * This simply copies the device ID value, which is an inexpensive operation. */ explicit Device(const cl_device_id &device, bool retainObject = false) : detail::Wrapper(device, retainObject) { } /*! \brief Returns the first device on the default context. * * \see Context::getDefault() */ static Device getDefault( cl_int *errResult = nullptr) { std::call_once(default_initialized_, makeDefault); detail::errHandler(default_error_); if (errResult != nullptr) { *errResult = default_error_; } return default_; } /** * Modify the default device to be used by * subsequent operations. * Will only set the default if no default was previously created. * @return updated default device. * Should be compared to the passed value to ensure that it was updated. */ static Device setDefault(const Device &default_device) { std::call_once(default_initialized_, makeDefaultProvided, std::cref(default_device)); detail::errHandler(default_error_); return default_; } /*! \brief Assignment operator from cl_device_id. * * This simply copies the device ID value, which is an inexpensive operation. */ Device& operator = (const cl_device_id& rhs) { detail::Wrapper::operator=(rhs); return *this; } //! \brief Wrapper for clGetDeviceInfo(). template cl_int getInfo(cl_device_info name, T* param) const { return detail::errHandler( detail::getInfo(::clGetDeviceInfo, object_, name, param), __GET_DEVICE_INFO_ERR); } //! \brief Wrapper for clGetDeviceInfo() that returns by value. template typename detail::param_traits::param_type getInfo(cl_int* err = nullptr) const { typename detail::param_traits< detail::cl_device_info, name>::param_type param; cl_int result = getInfo(name, ¶m); if (err != nullptr) { *err = result; } return param; } #if CL_HPP_TARGET_OPENCL_VERSION >= 210 /** * Return the current value of the host clock as seen by the device. * The resolution of the device timer may be queried with the * CL_DEVICE_PROFILING_TIMER_RESOLUTION query. * @return The host timer value. */ cl_ulong getHostTimer(cl_int *error = nullptr) { cl_ulong retVal = 0; cl_int err = clGetHostTimer(this->get(), &retVal); detail::errHandler( err, __GET_HOST_TIMER_ERR); if (error) { *error = err; } return retVal; } /** * Return a synchronized pair of host and device timestamps as seen by device. * Use to correlate the clocks and get the host timer only using getHostTimer * as a lower cost mechanism in between calls. * The resolution of the host timer may be queried with the * CL_PLATFORM_HOST_TIMER_RESOLUTION query. * The resolution of the device timer may be queried with the * CL_DEVICE_PROFILING_TIMER_RESOLUTION query. * @return A pair of (device timer, host timer) timer values. */ std::pair getDeviceAndHostTimer(cl_int *error = nullptr) { std::pair retVal; cl_int err = clGetDeviceAndHostTimer(this->get(), &(retVal.first), &(retVal.second)); detail::errHandler( err, __GET_DEVICE_AND_HOST_TIMER_ERR); if (error) { *error = err; } return retVal; } #endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 210 #if CL_HPP_TARGET_OPENCL_VERSION >= 120 //! \brief Wrapper for clCreateSubDevices(). cl_int createSubDevices( const cl_device_partition_property * properties, vector* devices) { cl_uint n = 0; cl_int err = clCreateSubDevices(object_, properties, 0, nullptr, &n); if (err != CL_SUCCESS) { return detail::errHandler(err, __CREATE_SUB_DEVICES_ERR); } vector ids(n); err = clCreateSubDevices(object_, properties, n, ids.data(), nullptr); if (err != CL_SUCCESS) { return detail::errHandler(err, __CREATE_SUB_DEVICES_ERR); } // Cannot trivially assign because we need to capture intermediates // with safe construction if (devices) { devices->resize(ids.size()); // Assign to param, constructing with retain behaviour // to correctly capture each underlying CL object for (size_type i = 0; i < ids.size(); i++) { // We do not need to retain because this device is being created // by the runtime (*devices)[i] = Device(ids[i], false); } } return CL_SUCCESS; } #endif #if defined(cl_ext_device_fission) //! \brief Wrapper for clCreateSubDevices(). cl_int createSubDevices( const cl_device_partition_property_ext * properties, vector* devices) { typedef CL_API_ENTRY cl_int ( CL_API_CALL * PFN_clCreateSubDevicesEXT)( cl_device_id /*in_device*/, const cl_device_partition_property_ext * /* properties */, cl_uint /*num_entries*/, cl_device_id * /*out_devices*/, cl_uint * /*num_devices*/ ) CL_API_SUFFIX__VERSION_1_1; static PFN_clCreateSubDevicesEXT pfn_clCreateSubDevicesEXT = nullptr; #if CL_HPP_TARGET_OPENCL_VERSION >= 120 cl::Device device(object_); cl_platform_id platform = device.getInfo(); CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clCreateSubDevicesEXT); #endif #if CL_HPP_MINIMUM_OPENCL_VERSION < 120 CL_HPP_INIT_CL_EXT_FCN_PTR_(clCreateSubDevicesEXT); #endif cl_uint n = 0; cl_int err = pfn_clCreateSubDevicesEXT(object_, properties, 0, nullptr, &n); if (err != CL_SUCCESS) { return detail::errHandler(err, __CREATE_SUB_DEVICES_ERR); } vector ids(n); err = pfn_clCreateSubDevicesEXT(object_, properties, n, ids.data(), nullptr); if (err != CL_SUCCESS) { return detail::errHandler(err, __CREATE_SUB_DEVICES_ERR); } // Cannot trivially assign because we need to capture intermediates // with safe construction if (devices) { devices->resize(ids.size()); // Assign to param, constructing with retain behaviour // to correctly capture each underlying CL object for (size_type i = 0; i < ids.size(); i++) { // We do not need to retain because this device is being created // by the runtime (*devices)[i] = Device(ids[i], false); } } return CL_SUCCESS; } #endif // defined(cl_ext_device_fission) }; using BuildLogType = vector::param_type>>; #if defined(CL_HPP_ENABLE_EXCEPTIONS) /** * Exception class for build errors to carry build info */ class BuildError : public Error { private: BuildLogType buildLogs; public: BuildError(cl_int err, const char * errStr, const BuildLogType &vec) : Error(err, errStr), buildLogs(vec) { } BuildLogType getBuildLog() const { return buildLogs; } }; namespace detail { static inline cl_int buildErrHandler( cl_int err, const char * errStr, const BuildLogType &buildLogs) { if (err != CL_SUCCESS) { throw BuildError(err, errStr, buildLogs); } return err; } } // namespace detail #else namespace detail { static inline cl_int buildErrHandler( cl_int err, const char * errStr, const BuildLogType &buildLogs) { (void)buildLogs; // suppress unused variable warning (void)errStr; return err; } } // namespace detail #endif // #if defined(CL_HPP_ENABLE_EXCEPTIONS) CL_HPP_DEFINE_STATIC_MEMBER_ std::once_flag Device::default_initialized_; CL_HPP_DEFINE_STATIC_MEMBER_ Device Device::default_; CL_HPP_DEFINE_STATIC_MEMBER_ cl_int Device::default_error_ = CL_SUCCESS; /*! \brief Class interface for cl_platform_id. * * \note Copies of these objects are inexpensive, since they don't 'own' * any underlying resources or data structures. * * \see cl_platform_id */ class Platform : public detail::Wrapper { private: static std::once_flag default_initialized_; static Platform default_; static cl_int default_error_; /*! \brief Create the default context. * * This sets @c default_ and @c default_error_. It does not throw * @c cl::Error. */ static void makeDefault() { /* Throwing an exception from a call_once invocation does not do * what we wish, so we catch it and save the error. */ #if defined(CL_HPP_ENABLE_EXCEPTIONS) try #endif { // If default wasn't passed ,generate one // Otherwise set it cl_uint n = 0; cl_int err = ::clGetPlatformIDs(0, nullptr, &n); if (err != CL_SUCCESS) { default_error_ = err; return; } if (n == 0) { default_error_ = CL_INVALID_PLATFORM; return; } vector ids(n); err = ::clGetPlatformIDs(n, ids.data(), nullptr); if (err != CL_SUCCESS) { default_error_ = err; return; } default_ = Platform(ids[0]); } #if defined(CL_HPP_ENABLE_EXCEPTIONS) catch (cl::Error &e) { default_error_ = e.err(); } #endif } /*! \brief Create the default platform from a provided platform. * * This sets @c default_. It does not throw * @c cl::Error. */ static void makeDefaultProvided(const Platform &p) { default_ = p; } public: #ifdef CL_HPP_UNIT_TEST_ENABLE /*! \brief Reset the default. * * This sets @c default_ to an empty value to support cleanup in * the unit test framework. * This function is not thread safe. */ static void unitTestClearDefault() { default_ = Platform(); } #endif // #ifdef CL_HPP_UNIT_TEST_ENABLE //! \brief Default constructor - initializes to nullptr. Platform() : detail::Wrapper() { } /*! \brief Constructor from cl_platform_id. * * \param retainObject will cause the constructor to retain its cl object. * Defaults to false to maintain compatibility with * earlier versions. * This simply copies the platform ID value, which is an inexpensive operation. */ explicit Platform(const cl_platform_id &platform, bool retainObject = false) : detail::Wrapper(platform, retainObject) { } /*! \brief Assignment operator from cl_platform_id. * * This simply copies the platform ID value, which is an inexpensive operation. */ Platform& operator = (const cl_platform_id& rhs) { detail::Wrapper::operator=(rhs); return *this; } static Platform getDefault( cl_int *errResult = nullptr) { std::call_once(default_initialized_, makeDefault); detail::errHandler(default_error_); if (errResult != nullptr) { *errResult = default_error_; } return default_; } /** * Modify the default platform to be used by * subsequent operations. * Will only set the default if no default was previously created. * @return updated default platform. * Should be compared to the passed value to ensure that it was updated. */ static Platform setDefault(const Platform &default_platform) { std::call_once(default_initialized_, makeDefaultProvided, std::cref(default_platform)); detail::errHandler(default_error_); return default_; } //! \brief Wrapper for clGetPlatformInfo(). template cl_int getInfo(cl_platform_info name, T* param) const { return detail::errHandler( detail::getInfo(::clGetPlatformInfo, object_, name, param), __GET_PLATFORM_INFO_ERR); } //! \brief Wrapper for clGetPlatformInfo() that returns by value. template typename detail::param_traits::param_type getInfo(cl_int* err = nullptr) const { typename detail::param_traits< detail::cl_platform_info, name>::param_type param; cl_int result = getInfo(name, ¶m); if (err != nullptr) { *err = result; } return param; } /*! \brief Gets a list of devices for this platform. * * Wraps clGetDeviceIDs(). */ cl_int getDevices( cl_device_type type, vector* devices) const { cl_uint n = 0; if( devices == nullptr ) { return detail::errHandler(CL_INVALID_ARG_VALUE, __GET_DEVICE_IDS_ERR); } cl_int err = ::clGetDeviceIDs(object_, type, 0, nullptr, &n); if (err != CL_SUCCESS && err != CL_DEVICE_NOT_FOUND) { return detail::errHandler(err, __GET_DEVICE_IDS_ERR); } vector ids(n); if (n>0) { err = ::clGetDeviceIDs(object_, type, n, ids.data(), nullptr); if (err != CL_SUCCESS) { return detail::errHandler(err, __GET_DEVICE_IDS_ERR); } } // Cannot trivially assign because we need to capture intermediates // with safe construction // We must retain things we obtain from the API to avoid releasing // API-owned objects. if (devices) { devices->resize(ids.size()); // Assign to param, constructing with retain behaviour // to correctly capture each underlying CL object for (size_type i = 0; i < ids.size(); i++) { (*devices)[i] = Device(ids[i], true); } } return CL_SUCCESS; } #if defined(CL_HPP_USE_DX_INTEROP) /*! \brief Get the list of available D3D10 devices. * * \param d3d_device_source. * * \param d3d_object. * * \param d3d_device_set. * * \param devices returns a vector of OpenCL D3D10 devices found. The cl::Device * values returned in devices can be used to identify a specific OpenCL * device. If \a devices argument is nullptr, this argument is ignored. * * \return One of the following values: * - CL_SUCCESS if the function is executed successfully. * * The application can query specific capabilities of the OpenCL device(s) * returned by cl::getDevices. This can be used by the application to * determine which device(s) to use. * * \note In the case that exceptions are enabled and a return value * other than CL_SUCCESS is generated, then cl::Error exception is * generated. */ cl_int getDevices( cl_d3d10_device_source_khr d3d_device_source, void * d3d_object, cl_d3d10_device_set_khr d3d_device_set, vector* devices) const { typedef CL_API_ENTRY cl_int (CL_API_CALL *PFN_clGetDeviceIDsFromD3D10KHR)( cl_platform_id platform, cl_d3d10_device_source_khr d3d_device_source, void * d3d_object, cl_d3d10_device_set_khr d3d_device_set, cl_uint num_entries, cl_device_id * devices, cl_uint* num_devices); if( devices == nullptr ) { return detail::errHandler(CL_INVALID_ARG_VALUE, __GET_DEVICE_IDS_ERR); } static PFN_clGetDeviceIDsFromD3D10KHR pfn_clGetDeviceIDsFromD3D10KHR = nullptr; #if CL_HPP_TARGET_OPENCL_VERSION >= 120 CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(object_, clGetDeviceIDsFromD3D10KHR); #endif #if CL_HPP_MINIMUM_OPENCL_VERSION < 120 CL_HPP_INIT_CL_EXT_FCN_PTR_(clGetDeviceIDsFromD3D10KHR); #endif cl_uint n = 0; cl_int err = pfn_clGetDeviceIDsFromD3D10KHR( object_, d3d_device_source, d3d_object, d3d_device_set, 0, nullptr, &n); if (err != CL_SUCCESS) { return detail::errHandler(err, __GET_DEVICE_IDS_ERR); } vector ids(n); err = pfn_clGetDeviceIDsFromD3D10KHR( object_, d3d_device_source, d3d_object, d3d_device_set, n, ids.data(), nullptr); if (err != CL_SUCCESS) { return detail::errHandler(err, __GET_DEVICE_IDS_ERR); } // Cannot trivially assign because we need to capture intermediates // with safe construction // We must retain things we obtain from the API to avoid releasing // API-owned objects. if (devices) { devices->resize(ids.size()); // Assign to param, constructing with retain behaviour // to correctly capture each underlying CL object for (size_type i = 0; i < ids.size(); i++) { (*devices)[i] = Device(ids[i], true); } } return CL_SUCCESS; } #endif /*! \brief Gets a list of available platforms. * * Wraps clGetPlatformIDs(). */ static cl_int get( vector* platforms) { cl_uint n = 0; if( platforms == nullptr ) { return detail::errHandler(CL_INVALID_ARG_VALUE, __GET_PLATFORM_IDS_ERR); } cl_int err = ::clGetPlatformIDs(0, nullptr, &n); if (err != CL_SUCCESS) { return detail::errHandler(err, __GET_PLATFORM_IDS_ERR); } vector ids(n); err = ::clGetPlatformIDs(n, ids.data(), nullptr); if (err != CL_SUCCESS) { return detail::errHandler(err, __GET_PLATFORM_IDS_ERR); } if (platforms) { platforms->resize(ids.size()); // Platforms don't reference count for (size_type i = 0; i < ids.size(); i++) { (*platforms)[i] = Platform(ids[i]); } } return CL_SUCCESS; } /*! \brief Gets the first available platform. * * Wraps clGetPlatformIDs(), returning the first result. */ static cl_int get( Platform * platform) { cl_int err; Platform default_platform = Platform::getDefault(&err); if (platform) { *platform = default_platform; } return err; } /*! \brief Gets the first available platform, returning it by value. * * \return Returns a valid platform if one is available. * If no platform is available will return a null platform. * Throws an exception if no platforms are available * or an error condition occurs. * Wraps clGetPlatformIDs(), returning the first result. */ static Platform get( cl_int * errResult = nullptr) { cl_int err; Platform default_platform = Platform::getDefault(&err); if (errResult) { *errResult = err; } return default_platform; } #if CL_HPP_TARGET_OPENCL_VERSION >= 120 //! \brief Wrapper for clUnloadCompiler(). cl_int unloadCompiler() { return ::clUnloadPlatformCompiler(object_); } #endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 }; // class Platform CL_HPP_DEFINE_STATIC_MEMBER_ std::once_flag Platform::default_initialized_; CL_HPP_DEFINE_STATIC_MEMBER_ Platform Platform::default_; CL_HPP_DEFINE_STATIC_MEMBER_ cl_int Platform::default_error_ = CL_SUCCESS; /** * Deprecated APIs for 1.2 */ #if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) /** * Unload the OpenCL compiler. * \note Deprecated for OpenCL 1.2. Use Platform::unloadCompiler instead. */ inline CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_int UnloadCompiler() CL_API_SUFFIX__VERSION_1_1_DEPRECATED; inline cl_int UnloadCompiler() { return ::clUnloadCompiler(); } #endif // #if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) /*! \brief Class interface for cl_context. * * \note Copies of these objects are shallow, meaning that the copy will refer * to the same underlying cl_context as the original. For details, see * clRetainContext() and clReleaseContext(). * * \see cl_context */ class Context : public detail::Wrapper { private: static std::once_flag default_initialized_; static Context default_; static cl_int default_error_; /*! \brief Create the default context from the default device type in the default platform. * * This sets @c default_ and @c default_error_. It does not throw * @c cl::Error. */ static void makeDefault() { /* Throwing an exception from a call_once invocation does not do * what we wish, so we catch it and save the error. */ #if defined(CL_HPP_ENABLE_EXCEPTIONS) try #endif { #if !defined(__APPLE__) && !defined(__MACOS) const Platform &p = Platform::getDefault(); cl_platform_id defaultPlatform = p(); cl_context_properties properties[3] = { CL_CONTEXT_PLATFORM, (cl_context_properties)defaultPlatform, 0 }; #else // #if !defined(__APPLE__) && !defined(__MACOS) cl_context_properties *properties = nullptr; #endif // #if !defined(__APPLE__) && !defined(__MACOS) default_ = Context( CL_DEVICE_TYPE_DEFAULT, properties, nullptr, nullptr, &default_error_); } #if defined(CL_HPP_ENABLE_EXCEPTIONS) catch (cl::Error &e) { default_error_ = e.err(); } #endif } /*! \brief Create the default context from a provided Context. * * This sets @c default_. It does not throw * @c cl::Error. */ static void makeDefaultProvided(const Context &c) { default_ = c; } public: #ifdef CL_HPP_UNIT_TEST_ENABLE /*! \brief Reset the default. * * This sets @c default_ to an empty value to support cleanup in * the unit test framework. * This function is not thread safe. */ static void unitTestClearDefault() { default_ = Context(); } #endif // #ifdef CL_HPP_UNIT_TEST_ENABLE /*! \brief Constructs a context including a list of specified devices. * * Wraps clCreateContext(). */ Context( const vector& devices, const cl_context_properties* properties = nullptr, void (CL_CALLBACK * notifyFptr)( const char *, const void *, size_type, void *) = nullptr, void* data = nullptr, cl_int* err = nullptr) { cl_int error; size_type numDevices = devices.size(); vector deviceIDs(numDevices); for( size_type deviceIndex = 0; deviceIndex < numDevices; ++deviceIndex ) { deviceIDs[deviceIndex] = (devices[deviceIndex])(); } object_ = ::clCreateContext( properties, (cl_uint) numDevices, deviceIDs.data(), notifyFptr, data, &error); detail::errHandler(error, __CREATE_CONTEXT_ERR); if (err != nullptr) { *err = error; } } /*! \brief Constructs a context including a specific device. * * Wraps clCreateContext(). */ Context( const Device& device, const cl_context_properties* properties = nullptr, void (CL_CALLBACK * notifyFptr)( const char *, const void *, size_type, void *) = nullptr, void* data = nullptr, cl_int* err = nullptr) { cl_int error; cl_device_id deviceID = device(); object_ = ::clCreateContext( properties, 1, &deviceID, notifyFptr, data, &error); detail::errHandler(error, __CREATE_CONTEXT_ERR); if (err != nullptr) { *err = error; } } /*! \brief Constructs a context including all or a subset of devices of a specified type. * * Wraps clCreateContextFromType(). */ Context( cl_device_type type, const cl_context_properties* properties = nullptr, void (CL_CALLBACK * notifyFptr)( const char *, const void *, size_type, void *) = nullptr, void* data = nullptr, cl_int* err = nullptr) { cl_int error; #if !defined(__APPLE__) && !defined(__MACOS) cl_context_properties prop[4] = {CL_CONTEXT_PLATFORM, 0, 0, 0 }; if (properties == nullptr) { // Get a valid platform ID as we cannot send in a blank one vector platforms; error = Platform::get(&platforms); if (error != CL_SUCCESS) { detail::errHandler(error, __CREATE_CONTEXT_FROM_TYPE_ERR); if (err != nullptr) { *err = error; } return; } // Check the platforms we found for a device of our specified type cl_context_properties platform_id = 0; for (unsigned int i = 0; i < platforms.size(); i++) { vector devices; #if defined(CL_HPP_ENABLE_EXCEPTIONS) try { #endif error = platforms[i].getDevices(type, &devices); #if defined(CL_HPP_ENABLE_EXCEPTIONS) } catch (cl::Error& e) { error = e.err(); } // Catch if exceptions are enabled as we don't want to exit if first platform has no devices of type // We do error checking next anyway, and can throw there if needed #endif // Only squash CL_SUCCESS and CL_DEVICE_NOT_FOUND if (error != CL_SUCCESS && error != CL_DEVICE_NOT_FOUND) { detail::errHandler(error, __CREATE_CONTEXT_FROM_TYPE_ERR); if (err != nullptr) { *err = error; } } if (devices.size() > 0) { platform_id = (cl_context_properties)platforms[i](); break; } } if (platform_id == 0) { detail::errHandler(CL_DEVICE_NOT_FOUND, __CREATE_CONTEXT_FROM_TYPE_ERR); if (err != nullptr) { *err = CL_DEVICE_NOT_FOUND; } return; } prop[1] = platform_id; properties = &prop[0]; } #endif object_ = ::clCreateContextFromType( properties, type, notifyFptr, data, &error); detail::errHandler(error, __CREATE_CONTEXT_FROM_TYPE_ERR); if (err != nullptr) { *err = error; } } /*! \brief Returns a singleton context including all devices of CL_DEVICE_TYPE_DEFAULT. * * \note All calls to this function return the same cl_context as the first. */ static Context getDefault(cl_int * err = nullptr) { std::call_once(default_initialized_, makeDefault); detail::errHandler(default_error_); if (err != nullptr) { *err = default_error_; } return default_; } /** * Modify the default context to be used by * subsequent operations. * Will only set the default if no default was previously created. * @return updated default context. * Should be compared to the passed value to ensure that it was updated. */ static Context setDefault(const Context &default_context) { std::call_once(default_initialized_, makeDefaultProvided, std::cref(default_context)); detail::errHandler(default_error_); return default_; } //! \brief Default constructor - initializes to nullptr. Context() : detail::Wrapper() { } /*! \brief Constructor from cl_context - takes ownership. * * This effectively transfers ownership of a refcount on the cl_context * into the new Context object. */ explicit Context(const cl_context& context, bool retainObject = false) : detail::Wrapper(context, retainObject) { } /*! \brief Assignment operator from cl_context - takes ownership. * * This effectively transfers ownership of a refcount on the rhs and calls * clReleaseContext() on the value previously held by this instance. */ Context& operator = (const cl_context& rhs) { detail::Wrapper::operator=(rhs); return *this; } //! \brief Wrapper for clGetContextInfo(). template cl_int getInfo(cl_context_info name, T* param) const { return detail::errHandler( detail::getInfo(::clGetContextInfo, object_, name, param), __GET_CONTEXT_INFO_ERR); } //! \brief Wrapper for clGetContextInfo() that returns by value. template typename detail::param_traits::param_type getInfo(cl_int* err = nullptr) const { typename detail::param_traits< detail::cl_context_info, name>::param_type param; cl_int result = getInfo(name, ¶m); if (err != nullptr) { *err = result; } return param; } /*! \brief Gets a list of supported image formats. * * Wraps clGetSupportedImageFormats(). */ cl_int getSupportedImageFormats( cl_mem_flags flags, cl_mem_object_type type, vector* formats) const { cl_uint numEntries; if (!formats) { return CL_SUCCESS; } cl_int err = ::clGetSupportedImageFormats( object_, flags, type, 0, nullptr, &numEntries); if (err != CL_SUCCESS) { return detail::errHandler(err, __GET_SUPPORTED_IMAGE_FORMATS_ERR); } if (numEntries > 0) { vector value(numEntries); err = ::clGetSupportedImageFormats( object_, flags, type, numEntries, (cl_image_format*)value.data(), nullptr); if (err != CL_SUCCESS) { return detail::errHandler(err, __GET_SUPPORTED_IMAGE_FORMATS_ERR); } formats->assign(begin(value), end(value)); } else { // If no values are being returned, ensure an empty vector comes back formats->clear(); } return CL_SUCCESS; } #if CL_HPP_TARGET_OPENCL_VERSION >= 300 /*! \brief Registers a destructor callback function with a context. * * Wraps clSetContextDestructorCallback(). * * Each call to this function registers the specified callback function on * a destructor callback stack associated with context. The registered * callback functions are called in the reverse order in which they were registered. * If a context callback function was specified when context was created, * it will not be called after any context destructor callback is called. */ cl_int setDestructorCallback( void (CL_CALLBACK * pfn_notify)(cl_context, void *), void * user_data = nullptr) { return detail::errHandler( ::clSetContextDestructorCallback( object_, pfn_notify, user_data), __SET_CONTEXT_DESCTRUCTOR_CALLBACK_ERR); } #endif // CL_HPP_TARGET_OPENCL_VERSION >= 300 }; inline void Device::makeDefault() { /* Throwing an exception from a call_once invocation does not do * what we wish, so we catch it and save the error. */ #if defined(CL_HPP_ENABLE_EXCEPTIONS) try #endif { cl_int error = 0; Context context = Context::getDefault(&error); detail::errHandler(error, __CREATE_CONTEXT_ERR); if (error != CL_SUCCESS) { default_error_ = error; } else { default_ = context.getInfo()[0]; default_error_ = CL_SUCCESS; } } #if defined(CL_HPP_ENABLE_EXCEPTIONS) catch (cl::Error &e) { default_error_ = e.err(); } #endif } CL_HPP_DEFINE_STATIC_MEMBER_ std::once_flag Context::default_initialized_; CL_HPP_DEFINE_STATIC_MEMBER_ Context Context::default_; CL_HPP_DEFINE_STATIC_MEMBER_ cl_int Context::default_error_ = CL_SUCCESS; /*! \brief Class interface for cl_event. * * \note Copies of these objects are shallow, meaning that the copy will refer * to the same underlying cl_event as the original. For details, see * clRetainEvent() and clReleaseEvent(). * * \see cl_event */ class Event : public detail::Wrapper { public: //! \brief Default constructor - initializes to nullptr. Event() : detail::Wrapper() { } /*! \brief Constructor from cl_event - takes ownership. * * \param retainObject will cause the constructor to retain its cl object. * Defaults to false to maintain compatibility with * earlier versions. * This effectively transfers ownership of a refcount on the cl_event * into the new Event object. */ explicit Event(const cl_event& event, bool retainObject = false) : detail::Wrapper(event, retainObject) { } /*! \brief Assignment operator from cl_event - takes ownership. * * This effectively transfers ownership of a refcount on the rhs and calls * clReleaseEvent() on the value previously held by this instance. */ Event& operator = (const cl_event& rhs) { detail::Wrapper::operator=(rhs); return *this; } //! \brief Wrapper for clGetEventInfo(). template cl_int getInfo(cl_event_info name, T* param) const { return detail::errHandler( detail::getInfo(::clGetEventInfo, object_, name, param), __GET_EVENT_INFO_ERR); } //! \brief Wrapper for clGetEventInfo() that returns by value. template typename detail::param_traits::param_type getInfo(cl_int* err = nullptr) const { typename detail::param_traits< detail::cl_event_info, name>::param_type param; cl_int result = getInfo(name, ¶m); if (err != nullptr) { *err = result; } return param; } //! \brief Wrapper for clGetEventProfilingInfo(). template cl_int getProfilingInfo(cl_profiling_info name, T* param) const { return detail::errHandler(detail::getInfo( ::clGetEventProfilingInfo, object_, name, param), __GET_EVENT_PROFILE_INFO_ERR); } //! \brief Wrapper for clGetEventProfilingInfo() that returns by value. template typename detail::param_traits::param_type getProfilingInfo(cl_int* err = nullptr) const { typename detail::param_traits< detail::cl_profiling_info, name>::param_type param; cl_int result = getProfilingInfo(name, ¶m); if (err != nullptr) { *err = result; } return param; } /*! \brief Blocks the calling thread until this event completes. * * Wraps clWaitForEvents(). */ cl_int wait() const { return detail::errHandler( ::clWaitForEvents(1, &object_), __WAIT_FOR_EVENTS_ERR); } #if CL_HPP_TARGET_OPENCL_VERSION >= 110 /*! \brief Registers a user callback function for a specific command execution status. * * Wraps clSetEventCallback(). */ cl_int setCallback( cl_int type, void (CL_CALLBACK * pfn_notify)(cl_event, cl_int, void *), void * user_data = nullptr) { return detail::errHandler( ::clSetEventCallback( object_, type, pfn_notify, user_data), __SET_EVENT_CALLBACK_ERR); } #endif // CL_HPP_TARGET_OPENCL_VERSION >= 110 /*! \brief Blocks the calling thread until every event specified is complete. * * Wraps clWaitForEvents(). */ static cl_int waitForEvents(const vector& events) { static_assert(sizeof(cl::Event) == sizeof(cl_event), "Size of cl::Event must be equal to size of cl_event"); return detail::errHandler( ::clWaitForEvents( (cl_uint) events.size(), (events.size() > 0) ? (cl_event*)&events.front() : nullptr), __WAIT_FOR_EVENTS_ERR); } }; #if CL_HPP_TARGET_OPENCL_VERSION >= 110 /*! \brief Class interface for user events (a subset of cl_event's). * * See Event for details about copy semantics, etc. */ class UserEvent : public Event { public: /*! \brief Constructs a user event on a given context. * * Wraps clCreateUserEvent(). */ UserEvent( const Context& context, cl_int * err = nullptr) { cl_int error; object_ = ::clCreateUserEvent( context(), &error); detail::errHandler(error, __CREATE_USER_EVENT_ERR); if (err != nullptr) { *err = error; } } //! \brief Default constructor - initializes to nullptr. UserEvent() : Event() { } /*! \brief Sets the execution status of a user event object. * * Wraps clSetUserEventStatus(). */ cl_int setStatus(cl_int status) { return detail::errHandler( ::clSetUserEventStatus(object_,status), __SET_USER_EVENT_STATUS_ERR); } }; #endif // CL_HPP_TARGET_OPENCL_VERSION >= 110 /*! \brief Blocks the calling thread until every event specified is complete. * * Wraps clWaitForEvents(). */ inline static cl_int WaitForEvents(const vector& events) { return detail::errHandler( ::clWaitForEvents( (cl_uint) events.size(), (events.size() > 0) ? (cl_event*)&events.front() : nullptr), __WAIT_FOR_EVENTS_ERR); } /*! \brief Class interface for cl_mem. * * \note Copies of these objects are shallow, meaning that the copy will refer * to the same underlying cl_mem as the original. For details, see * clRetainMemObject() and clReleaseMemObject(). * * \see cl_mem */ class Memory : public detail::Wrapper { public: //! \brief Default constructor - initializes to nullptr. Memory() : detail::Wrapper() { } /*! \brief Constructor from cl_mem - takes ownership. * * Optionally transfer ownership of a refcount on the cl_mem * into the new Memory object. * * \param retainObject will cause the constructor to retain its cl object. * Defaults to false to maintain compatibility with * earlier versions. * * See Memory for further details. */ explicit Memory(const cl_mem& memory, bool retainObject) : detail::Wrapper(memory, retainObject) { } /*! \brief Assignment operator from cl_mem - takes ownership. * * This effectively transfers ownership of a refcount on the rhs and calls * clReleaseMemObject() on the value previously held by this instance. */ Memory& operator = (const cl_mem& rhs) { detail::Wrapper::operator=(rhs); return *this; } //! \brief Wrapper for clGetMemObjectInfo(). template cl_int getInfo(cl_mem_info name, T* param) const { return detail::errHandler( detail::getInfo(::clGetMemObjectInfo, object_, name, param), __GET_MEM_OBJECT_INFO_ERR); } //! \brief Wrapper for clGetMemObjectInfo() that returns by value. template typename detail::param_traits::param_type getInfo(cl_int* err = nullptr) const { typename detail::param_traits< detail::cl_mem_info, name>::param_type param; cl_int result = getInfo(name, ¶m); if (err != nullptr) { *err = result; } return param; } #if CL_HPP_TARGET_OPENCL_VERSION >= 110 /*! \brief Registers a callback function to be called when the memory object * is no longer needed. * * Wraps clSetMemObjectDestructorCallback(). * * Repeated calls to this function, for a given cl_mem value, will append * to the list of functions called (in reverse order) when memory object's * resources are freed and the memory object is deleted. * * \note * The registered callbacks are associated with the underlying cl_mem * value - not the Memory class instance. */ cl_int setDestructorCallback( void (CL_CALLBACK * pfn_notify)(cl_mem, void *), void * user_data = nullptr) { return detail::errHandler( ::clSetMemObjectDestructorCallback( object_, pfn_notify, user_data), __SET_MEM_OBJECT_DESTRUCTOR_CALLBACK_ERR); } #endif // CL_HPP_TARGET_OPENCL_VERSION >= 110 }; // Pre-declare copy functions class Buffer; template< typename IteratorType > cl_int copy( IteratorType startIterator, IteratorType endIterator, cl::Buffer &buffer ); template< typename IteratorType > cl_int copy( const cl::Buffer &buffer, IteratorType startIterator, IteratorType endIterator ); template< typename IteratorType > cl_int copy( const CommandQueue &queue, IteratorType startIterator, IteratorType endIterator, cl::Buffer &buffer ); template< typename IteratorType > cl_int copy( const CommandQueue &queue, const cl::Buffer &buffer, IteratorType startIterator, IteratorType endIterator ); #if CL_HPP_TARGET_OPENCL_VERSION >= 200 namespace detail { class SVMTraitNull { public: static cl_svm_mem_flags getSVMMemFlags() { return 0; } }; } // namespace detail template class SVMTraitReadWrite { public: static cl_svm_mem_flags getSVMMemFlags() { return CL_MEM_READ_WRITE | Trait::getSVMMemFlags(); } }; template class SVMTraitReadOnly { public: static cl_svm_mem_flags getSVMMemFlags() { return CL_MEM_READ_ONLY | Trait::getSVMMemFlags(); } }; template class SVMTraitWriteOnly { public: static cl_svm_mem_flags getSVMMemFlags() { return CL_MEM_WRITE_ONLY | Trait::getSVMMemFlags(); } }; template> class SVMTraitCoarse { public: static cl_svm_mem_flags getSVMMemFlags() { return Trait::getSVMMemFlags(); } }; template> class SVMTraitFine { public: static cl_svm_mem_flags getSVMMemFlags() { return CL_MEM_SVM_FINE_GRAIN_BUFFER | Trait::getSVMMemFlags(); } }; template> class SVMTraitAtomic { public: static cl_svm_mem_flags getSVMMemFlags() { return CL_MEM_SVM_FINE_GRAIN_BUFFER | CL_MEM_SVM_ATOMICS | Trait::getSVMMemFlags(); } }; // Pre-declare SVM map function template inline cl_int enqueueMapSVM( T* ptr, cl_bool blocking, cl_map_flags flags, size_type size, const vector* events = nullptr, Event* event = nullptr); /** * STL-like allocator class for managing SVM objects provided for convenience. * * Note that while this behaves like an allocator for the purposes of constructing vectors and similar objects, * care must be taken when using with smart pointers. * The allocator should not be used to construct a unique_ptr if we are using coarse-grained SVM mode because * the coarse-grained management behaviour would behave incorrectly with respect to reference counting. * * Instead the allocator embeds a Deleter which may be used with unique_ptr and is used * with the allocate_shared and allocate_ptr supplied operations. */ template class SVMAllocator { private: Context context_; public: typedef T value_type; typedef value_type* pointer; typedef const value_type* const_pointer; typedef value_type& reference; typedef const value_type& const_reference; typedef std::size_t size_type; typedef std::ptrdiff_t difference_type; template struct rebind { typedef SVMAllocator other; }; template friend class SVMAllocator; SVMAllocator() : context_(Context::getDefault()) { } explicit SVMAllocator(cl::Context context) : context_(context) { } SVMAllocator(const SVMAllocator &other) : context_(other.context_) { } template SVMAllocator(const SVMAllocator &other) : context_(other.context_) { } ~SVMAllocator() { } pointer address(reference r) CL_HPP_NOEXCEPT_ { return std::addressof(r); } const_pointer address(const_reference r) CL_HPP_NOEXCEPT_ { return std::addressof(r); } /** * Allocate an SVM pointer. * * If the allocator is coarse-grained, this will take ownership to allow * containers to correctly construct data in place. */ pointer allocate( size_type size, typename cl::SVMAllocator::const_pointer = 0) { // Allocate memory with default alignment matching the size of the type void* voidPointer = clSVMAlloc( context_(), SVMTrait::getSVMMemFlags(), size*sizeof(T), 0); pointer retValue = reinterpret_cast( voidPointer); #if defined(CL_HPP_ENABLE_EXCEPTIONS) if (!retValue) { std::bad_alloc excep; throw excep; } #endif // #if defined(CL_HPP_ENABLE_EXCEPTIONS) // If allocation was coarse-grained then map it if (!(SVMTrait::getSVMMemFlags() & CL_MEM_SVM_FINE_GRAIN_BUFFER)) { cl_int err = enqueueMapSVM(retValue, CL_TRUE, CL_MAP_READ | CL_MAP_WRITE, size*sizeof(T)); if (err != CL_SUCCESS) { std::bad_alloc excep; throw excep; } } // If exceptions disabled, return null pointer from allocator return retValue; } void deallocate(pointer p, size_type) { clSVMFree(context_(), p); } /** * Return the maximum possible allocation size. * This is the minimum of the maximum sizes of all devices in the context. */ size_type max_size() const CL_HPP_NOEXCEPT_ { size_type maxSize = std::numeric_limits::max() / sizeof(T); for (const Device &d : context_.getInfo()) { maxSize = std::min( maxSize, static_cast(d.getInfo())); } return maxSize; } template< class U, class... Args > void construct(U* p, Args&&... args) { new(p)T(args...); } template< class U > void destroy(U* p) { p->~U(); } /** * Returns true if the contexts match. */ inline bool operator==(SVMAllocator const& rhs) { return (context_==rhs.context_); } inline bool operator!=(SVMAllocator const& a) { return !operator==(a); } }; // class SVMAllocator return cl::pointer(tmp, detail::Deleter{alloc, copies}); template class SVMAllocator { public: typedef void value_type; typedef value_type* pointer; typedef const value_type* const_pointer; template struct rebind { typedef SVMAllocator other; }; template friend class SVMAllocator; }; #if !defined(CL_HPP_NO_STD_UNIQUE_PTR) namespace detail { template class Deleter { private: Alloc alloc_; size_type copies_; public: typedef typename std::allocator_traits::pointer pointer; Deleter(const Alloc &alloc, size_type copies) : alloc_{ alloc }, copies_{ copies } { } void operator()(pointer ptr) const { Alloc tmpAlloc{ alloc_ }; std::allocator_traits::destroy(tmpAlloc, std::addressof(*ptr)); std::allocator_traits::deallocate(tmpAlloc, ptr, copies_); } }; } // namespace detail /** * Allocation operation compatible with std::allocate_ptr. * Creates a unique_ptr by default. * This requirement is to ensure that the control block is not * allocated in memory inaccessible to the host. */ template cl::pointer> allocate_pointer(const Alloc &alloc_, Args&&... args) { Alloc alloc(alloc_); static const size_type copies = 1; // Ensure that creation of the management block and the // object are dealt with separately such that we only provide a deleter T* tmp = std::allocator_traits::allocate(alloc, copies); if (!tmp) { std::bad_alloc excep; throw excep; } try { std::allocator_traits::construct( alloc, std::addressof(*tmp), std::forward(args)...); return cl::pointer>(tmp, detail::Deleter{alloc, copies}); } catch (std::bad_alloc&) { std::allocator_traits::deallocate(alloc, tmp, copies); throw; } } template< class T, class SVMTrait, class... Args > cl::pointer>> allocate_svm(Args... args) { SVMAllocator alloc; return cl::allocate_pointer(alloc, args...); } template< class T, class SVMTrait, class... Args > cl::pointer>> allocate_svm(const cl::Context &c, Args... args) { SVMAllocator alloc(c); return cl::allocate_pointer(alloc, args...); } #endif // #if !defined(CL_HPP_NO_STD_UNIQUE_PTR) /*! \brief Vector alias to simplify contruction of coarse-grained SVM containers. * */ template < class T > using coarse_svm_vector = vector>>; /*! \brief Vector alias to simplify contruction of fine-grained SVM containers. * */ template < class T > using fine_svm_vector = vector>>; /*! \brief Vector alias to simplify contruction of fine-grained SVM containers that support platform atomics. * */ template < class T > using atomic_svm_vector = vector>>; #endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 200 /*! \brief Class interface for Buffer Memory Objects. * * See Memory for details about copy semantics, etc. * * \see Memory */ class Buffer : public Memory { public: /*! \brief Constructs a Buffer in a specified context. * * Wraps clCreateBuffer(). * * \param host_ptr Storage to be used if the CL_MEM_USE_HOST_PTR flag was * specified. Note alignment & exclusivity requirements. */ Buffer( const Context& context, cl_mem_flags flags, size_type size, void* host_ptr = nullptr, cl_int* err = nullptr) { cl_int error; object_ = ::clCreateBuffer(context(), flags, size, host_ptr, &error); detail::errHandler(error, __CREATE_BUFFER_ERR); if (err != nullptr) { *err = error; } } #if CL_HPP_TARGET_OPENCL_VERSION >= 300 /*! \brief Constructs a Buffer in a specified context and with specified properties. * * Wraps clCreateBufferWithProperties(). * * \param properties Optional list of properties for the buffer object and * their corresponding values. The non-empty list must * end with 0. * \param host_ptr Storage to be used if the CL_MEM_USE_HOST_PTR flag was * specified. Note alignment & exclusivity requirements. */ Buffer( const Context& context, const vector& properties, cl_mem_flags flags, size_type size, void* host_ptr = nullptr, cl_int* err = nullptr) { cl_int error; if (properties.empty()) { object_ = ::clCreateBufferWithProperties(context(), nullptr, flags, size, host_ptr, &error); } else { object_ = ::clCreateBufferWithProperties( context(), properties.data(), flags, size, host_ptr, &error); } detail::errHandler(error, __CREATE_BUFFER_ERR); if (err != nullptr) { *err = error; } } #endif /*! \brief Constructs a Buffer in the default context. * * Wraps clCreateBuffer(). * * \param host_ptr Storage to be used if the CL_MEM_USE_HOST_PTR flag was * specified. Note alignment & exclusivity requirements. * * \see Context::getDefault() */ Buffer( cl_mem_flags flags, size_type size, void* host_ptr = nullptr, cl_int* err = nullptr) : Buffer(Context::getDefault(err), flags, size, host_ptr, err) { } #if CL_HPP_TARGET_OPENCL_VERSION >= 300 /*! \brief Constructs a Buffer in the default context and with specified properties. * * Wraps clCreateBufferWithProperties(). * * \param properties Optional list of properties for the buffer object and * their corresponding values. The non-empty list must * end with 0. * \param host_ptr Storage to be used if the CL_MEM_USE_HOST_PTR flag was * specified. Note alignment & exclusivity requirements. * * \see Context::getDefault() */ Buffer( const vector& properties, cl_mem_flags flags, size_type size, void* host_ptr = nullptr, cl_int* err = nullptr) : Buffer(Context::getDefault(err), properties, flags, size, host_ptr, err) { } #endif /*! * \brief Construct a Buffer from a host container via iterators. * IteratorType must be random access. * If useHostPtr is specified iterators must represent contiguous data. */ template< typename IteratorType > Buffer( IteratorType startIterator, IteratorType endIterator, bool readOnly, bool useHostPtr = false, cl_int* err = nullptr) { typedef typename std::iterator_traits::value_type DataType; cl_int error; cl_mem_flags flags = 0; if( readOnly ) { flags |= CL_MEM_READ_ONLY; } else { flags |= CL_MEM_READ_WRITE; } if( useHostPtr ) { flags |= CL_MEM_USE_HOST_PTR; } size_type size = sizeof(DataType)*(endIterator - startIterator); Context context = Context::getDefault(err); if( useHostPtr ) { object_ = ::clCreateBuffer(context(), flags, size, const_cast(&*startIterator), &error); } else { object_ = ::clCreateBuffer(context(), flags, size, 0, &error); } detail::errHandler(error, __CREATE_BUFFER_ERR); if (err != nullptr) { *err = error; } if( !useHostPtr ) { error = cl::copy(startIterator, endIterator, *this); detail::errHandler(error, __CREATE_BUFFER_ERR); if (err != nullptr) { *err = error; } } } /*! * \brief Construct a Buffer from a host container via iterators using a specified context. * IteratorType must be random access. * If useHostPtr is specified iterators must represent contiguous data. */ template< typename IteratorType > Buffer(const Context &context, IteratorType startIterator, IteratorType endIterator, bool readOnly, bool useHostPtr = false, cl_int* err = nullptr); /*! * \brief Construct a Buffer from a host container via iterators using a specified queue. * If useHostPtr is specified iterators must be random access. */ template< typename IteratorType > Buffer(const CommandQueue &queue, IteratorType startIterator, IteratorType endIterator, bool readOnly, bool useHostPtr = false, cl_int* err = nullptr); //! \brief Default constructor - initializes to nullptr. Buffer() : Memory() { } /*! \brief Constructor from cl_mem - takes ownership. * * \param retainObject will cause the constructor to retain its cl object. * Defaults to false to maintain compatibility with earlier versions. * * See Memory for further details. */ explicit Buffer(const cl_mem& buffer, bool retainObject = false) : Memory(buffer, retainObject) { } /*! \brief Assignment from cl_mem - performs shallow copy. * * See Memory for further details. */ Buffer& operator = (const cl_mem& rhs) { Memory::operator=(rhs); return *this; } #if CL_HPP_TARGET_OPENCL_VERSION >= 110 /*! \brief Creates a new buffer object from this. * * Wraps clCreateSubBuffer(). */ Buffer createSubBuffer( cl_mem_flags flags, cl_buffer_create_type buffer_create_type, const void * buffer_create_info, cl_int * err = nullptr) { Buffer result; cl_int error; result.object_ = ::clCreateSubBuffer( object_, flags, buffer_create_type, buffer_create_info, &error); detail::errHandler(error, __CREATE_SUBBUFFER_ERR); if (err != nullptr) { *err = error; } return result; } #endif // CL_HPP_TARGET_OPENCL_VERSION >= 110 }; #if defined (CL_HPP_USE_DX_INTEROP) /*! \brief Class interface for creating OpenCL buffers from ID3D10Buffer's. * * This is provided to facilitate interoperability with Direct3D. * * See Memory for details about copy semantics, etc. * * \see Memory */ class BufferD3D10 : public Buffer { public: /*! \brief Constructs a BufferD3D10, in a specified context, from a * given ID3D10Buffer. * * Wraps clCreateFromD3D10BufferKHR(). */ BufferD3D10( const Context& context, cl_mem_flags flags, ID3D10Buffer* bufobj, cl_int * err = nullptr) : pfn_clCreateFromD3D10BufferKHR(nullptr) { typedef CL_API_ENTRY cl_mem (CL_API_CALL *PFN_clCreateFromD3D10BufferKHR)( cl_context context, cl_mem_flags flags, ID3D10Buffer* buffer, cl_int* errcode_ret); PFN_clCreateFromD3D10BufferKHR pfn_clCreateFromD3D10BufferKHR; #if CL_HPP_TARGET_OPENCL_VERSION >= 120 vector props = context.getInfo(); cl_platform platform = nullptr; for( int i = 0; i < props.size(); ++i ) { if( props[i] == CL_CONTEXT_PLATFORM ) { platform = props[i+1]; } } CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clCreateFromD3D10BufferKHR); #endif #if CL_HPP_MINIMUM_OPENCL_VERSION < 120 CL_HPP_INIT_CL_EXT_FCN_PTR_(clCreateFromD3D10BufferKHR); #endif cl_int error; object_ = pfn_clCreateFromD3D10BufferKHR( context(), flags, bufobj, &error); // TODO: This should really have a D3D10 rerror code! detail::errHandler(error, __CREATE_GL_BUFFER_ERR); if (err != nullptr) { *err = error; } } //! \brief Default constructor - initializes to nullptr. BufferD3D10() : Buffer() { } /*! \brief Constructor from cl_mem - takes ownership. * * \param retainObject will cause the constructor to retain its cl object. * Defaults to false to maintain compatibility with * earlier versions. * See Memory for further details. */ explicit BufferD3D10(const cl_mem& buffer, bool retainObject = false) : Buffer(buffer, retainObject) { } /*! \brief Assignment from cl_mem - performs shallow copy. * * See Memory for further details. */ BufferD3D10& operator = (const cl_mem& rhs) { Buffer::operator=(rhs); return *this; } }; #endif /*! \brief C++ base class for Image Memory objects. * * See Memory for details about copy semantics, etc. * * \see Memory */ class Image : public Memory { protected: //! \brief Default constructor - initializes to nullptr. Image() : Memory() { } /*! \brief Constructor from cl_mem - takes ownership. * * \param retainObject will cause the constructor to retain its cl object. * Defaults to false to maintain compatibility with * earlier versions. * See Memory for further details. */ explicit Image(const cl_mem& image, bool retainObject = false) : Memory(image, retainObject) { } /*! \brief Assignment from cl_mem - performs shallow copy. * * See Memory for further details. */ Image& operator = (const cl_mem& rhs) { Memory::operator=(rhs); return *this; } public: //! \brief Wrapper for clGetImageInfo(). template cl_int getImageInfo(cl_image_info name, T* param) const { return detail::errHandler( detail::getInfo(::clGetImageInfo, object_, name, param), __GET_IMAGE_INFO_ERR); } //! \brief Wrapper for clGetImageInfo() that returns by value. template typename detail::param_traits::param_type getImageInfo(cl_int* err = nullptr) const { typename detail::param_traits< detail::cl_image_info, name>::param_type param; cl_int result = getImageInfo(name, ¶m); if (err != nullptr) { *err = result; } return param; } }; #if CL_HPP_TARGET_OPENCL_VERSION >= 120 /*! \brief Class interface for 1D Image Memory objects. * * See Memory for details about copy semantics, etc. * * \see Memory */ class Image1D : public Image { public: /*! \brief Constructs a 1D Image in a specified context. * * Wraps clCreateImage(). */ Image1D( const Context& context, cl_mem_flags flags, ImageFormat format, size_type width, void* host_ptr = nullptr, cl_int* err = nullptr) { cl_int error; cl_image_desc desc = {}; desc.image_type = CL_MEM_OBJECT_IMAGE1D; desc.image_width = width; object_ = ::clCreateImage( context(), flags, &format, &desc, host_ptr, &error); detail::errHandler(error, __CREATE_IMAGE_ERR); if (err != nullptr) { *err = error; } } //! \brief Default constructor - initializes to nullptr. Image1D() { } /*! \brief Constructor from cl_mem - takes ownership. * * \param retainObject will cause the constructor to retain its cl object. * Defaults to false to maintain compatibility with * earlier versions. * See Memory for further details. */ explicit Image1D(const cl_mem& image1D, bool retainObject = false) : Image(image1D, retainObject) { } /*! \brief Assignment from cl_mem - performs shallow copy. * * See Memory for further details. */ Image1D& operator = (const cl_mem& rhs) { Image::operator=(rhs); return *this; } }; /*! \class Image1DBuffer * \brief Image interface for 1D buffer images. */ class Image1DBuffer : public Image { public: Image1DBuffer( const Context& context, cl_mem_flags flags, ImageFormat format, size_type width, const Buffer &buffer, cl_int* err = nullptr) { cl_int error; cl_image_desc desc = {}; desc.image_type = CL_MEM_OBJECT_IMAGE1D_BUFFER; desc.image_width = width; desc.buffer = buffer(); object_ = ::clCreateImage( context(), flags, &format, &desc, nullptr, &error); detail::errHandler(error, __CREATE_IMAGE_ERR); if (err != nullptr) { *err = error; } } Image1DBuffer() { } /*! \brief Constructor from cl_mem - takes ownership. * * \param retainObject will cause the constructor to retain its cl object. * Defaults to false to maintain compatibility with * earlier versions. * See Memory for further details. */ explicit Image1DBuffer(const cl_mem& image1D, bool retainObject = false) : Image(image1D, retainObject) { } Image1DBuffer& operator = (const cl_mem& rhs) { Image::operator=(rhs); return *this; } }; /*! \class Image1DArray * \brief Image interface for arrays of 1D images. */ class Image1DArray : public Image { public: Image1DArray( const Context& context, cl_mem_flags flags, ImageFormat format, size_type arraySize, size_type width, size_type rowPitch, void* host_ptr = nullptr, cl_int* err = nullptr) { cl_int error; cl_image_desc desc = {}; desc.image_type = CL_MEM_OBJECT_IMAGE1D_ARRAY; desc.image_width = width; desc.image_array_size = arraySize; desc.image_row_pitch = rowPitch; object_ = ::clCreateImage( context(), flags, &format, &desc, host_ptr, &error); detail::errHandler(error, __CREATE_IMAGE_ERR); if (err != nullptr) { *err = error; } } Image1DArray() { } /*! \brief Constructor from cl_mem - takes ownership. * * \param retainObject will cause the constructor to retain its cl object. * Defaults to false to maintain compatibility with * earlier versions. * See Memory for further details. */ explicit Image1DArray(const cl_mem& imageArray, bool retainObject = false) : Image(imageArray, retainObject) { } Image1DArray& operator = (const cl_mem& rhs) { Image::operator=(rhs); return *this; } }; #endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 120 /*! \brief Class interface for 2D Image Memory objects. * * See Memory for details about copy semantics, etc. * * \see Memory */ class Image2D : public Image { public: /*! \brief Constructs a 2D Image in a specified context. * * Wraps clCreateImage(). */ Image2D( const Context& context, cl_mem_flags flags, ImageFormat format, size_type width, size_type height, size_type row_pitch = 0, void* host_ptr = nullptr, cl_int* err = nullptr) { cl_int error; bool useCreateImage; #if CL_HPP_TARGET_OPENCL_VERSION >= 120 && CL_HPP_MINIMUM_OPENCL_VERSION < 120 // Run-time decision based on the actual platform { cl_uint version = detail::getContextPlatformVersion(context()); useCreateImage = (version >= 0x10002); // OpenCL 1.2 or above } #elif CL_HPP_TARGET_OPENCL_VERSION >= 120 useCreateImage = true; #else useCreateImage = false; #endif #if CL_HPP_TARGET_OPENCL_VERSION >= 120 if (useCreateImage) { cl_image_desc desc = {}; desc.image_type = CL_MEM_OBJECT_IMAGE2D; desc.image_width = width; desc.image_height = height; desc.image_row_pitch = row_pitch; object_ = ::clCreateImage( context(), flags, &format, &desc, host_ptr, &error); detail::errHandler(error, __CREATE_IMAGE_ERR); if (err != nullptr) { *err = error; } } #endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 #if CL_HPP_MINIMUM_OPENCL_VERSION < 120 if (!useCreateImage) { object_ = ::clCreateImage2D( context(), flags,&format, width, height, row_pitch, host_ptr, &error); detail::errHandler(error, __CREATE_IMAGE2D_ERR); if (err != nullptr) { *err = error; } } #endif // CL_HPP_MINIMUM_OPENCL_VERSION < 120 } #if CL_HPP_TARGET_OPENCL_VERSION >= 120 /*! \brief Constructs a 2D Image from a buffer. * \note This will share storage with the underlying buffer. * * Requires OpenCL 2.0 or newer or OpenCL 1.2 and the * cl_khr_image2d_from_buffer extension. * * Wraps clCreateImage(). */ Image2D( const Context& context, ImageFormat format, const Buffer &sourceBuffer, size_type width, size_type height, size_type row_pitch = 0, cl_int* err = nullptr) { cl_int error; cl_image_desc desc = {}; desc.image_type = CL_MEM_OBJECT_IMAGE2D; desc.image_width = width; desc.image_height = height; desc.image_row_pitch = row_pitch; desc.buffer = sourceBuffer(); object_ = ::clCreateImage( context(), 0, // flags inherited from buffer &format, &desc, nullptr, &error); detail::errHandler(error, __CREATE_IMAGE_ERR); if (err != nullptr) { *err = error; } } #endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 #if CL_HPP_TARGET_OPENCL_VERSION >= 200 /*! \brief Constructs a 2D Image from an image. * \note This will share storage with the underlying image but may * reinterpret the channel order and type. * * The image will be created matching with a descriptor matching the source. * * \param order is the channel order to reinterpret the image data as. * The channel order may differ as described in the OpenCL * 2.0 API specification. * * Wraps clCreateImage(). */ Image2D( const Context& context, cl_channel_order order, const Image &sourceImage, cl_int* err = nullptr) { cl_int error; // Descriptor fields have to match source image size_type sourceWidth = sourceImage.getImageInfo(); size_type sourceHeight = sourceImage.getImageInfo(); size_type sourceRowPitch = sourceImage.getImageInfo(); cl_uint sourceNumMIPLevels = sourceImage.getImageInfo(); cl_uint sourceNumSamples = sourceImage.getImageInfo(); cl_image_format sourceFormat = sourceImage.getImageInfo(); // Update only the channel order. // Channel format inherited from source. sourceFormat.image_channel_order = order; cl_image_desc desc = {}; desc.image_type = CL_MEM_OBJECT_IMAGE2D; desc.image_width = sourceWidth; desc.image_height = sourceHeight; desc.image_row_pitch = sourceRowPitch; desc.num_mip_levels = sourceNumMIPLevels; desc.num_samples = sourceNumSamples; desc.buffer = sourceImage(); object_ = ::clCreateImage( context(), 0, // flags should be inherited from mem_object &sourceFormat, &desc, nullptr, &error); detail::errHandler(error, __CREATE_IMAGE_ERR); if (err != nullptr) { *err = error; } } #endif //#if CL_HPP_TARGET_OPENCL_VERSION >= 200 //! \brief Default constructor - initializes to nullptr. Image2D() { } /*! \brief Constructor from cl_mem - takes ownership. * * \param retainObject will cause the constructor to retain its cl object. * Defaults to false to maintain compatibility with * earlier versions. * See Memory for further details. */ explicit Image2D(const cl_mem& image2D, bool retainObject = false) : Image(image2D, retainObject) { } /*! \brief Assignment from cl_mem - performs shallow copy. * * See Memory for further details. */ Image2D& operator = (const cl_mem& rhs) { Image::operator=(rhs); return *this; } }; #if CL_HPP_TARGET_OPENCL_VERSION >= 120 /*! \class Image2DArray * \brief Image interface for arrays of 2D images. */ class Image2DArray : public Image { public: Image2DArray( const Context& context, cl_mem_flags flags, ImageFormat format, size_type arraySize, size_type width, size_type height, size_type rowPitch, size_type slicePitch, void* host_ptr = nullptr, cl_int* err = nullptr) { cl_int error; cl_image_desc desc = {}; desc.image_type = CL_MEM_OBJECT_IMAGE2D_ARRAY; desc.image_width = width; desc.image_height = height; desc.image_array_size = arraySize; desc.image_row_pitch = rowPitch; desc.image_slice_pitch = slicePitch; object_ = ::clCreateImage( context(), flags, &format, &desc, host_ptr, &error); detail::errHandler(error, __CREATE_IMAGE_ERR); if (err != nullptr) { *err = error; } } Image2DArray() { } /*! \brief Constructor from cl_mem - takes ownership. * * \param retainObject will cause the constructor to retain its cl object. * Defaults to false to maintain compatibility with * earlier versions. * See Memory for further details. */ explicit Image2DArray(const cl_mem& imageArray, bool retainObject = false) : Image(imageArray, retainObject) { } Image2DArray& operator = (const cl_mem& rhs) { Image::operator=(rhs); return *this; } }; #endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 120 /*! \brief Class interface for 3D Image Memory objects. * * See Memory for details about copy semantics, etc. * * \see Memory */ class Image3D : public Image { public: /*! \brief Constructs a 3D Image in a specified context. * * Wraps clCreateImage(). */ Image3D( const Context& context, cl_mem_flags flags, ImageFormat format, size_type width, size_type height, size_type depth, size_type row_pitch = 0, size_type slice_pitch = 0, void* host_ptr = nullptr, cl_int* err = nullptr) { cl_int error; bool useCreateImage; #if CL_HPP_TARGET_OPENCL_VERSION >= 120 && CL_HPP_MINIMUM_OPENCL_VERSION < 120 // Run-time decision based on the actual platform { cl_uint version = detail::getContextPlatformVersion(context()); useCreateImage = (version >= 0x10002); // OpenCL 1.2 or above } #elif CL_HPP_TARGET_OPENCL_VERSION >= 120 useCreateImage = true; #else useCreateImage = false; #endif #if CL_HPP_TARGET_OPENCL_VERSION >= 120 if (useCreateImage) { cl_image_desc desc = {}; desc.image_type = CL_MEM_OBJECT_IMAGE3D; desc.image_width = width; desc.image_height = height; desc.image_depth = depth; desc.image_row_pitch = row_pitch; desc.image_slice_pitch = slice_pitch; object_ = ::clCreateImage( context(), flags, &format, &desc, host_ptr, &error); detail::errHandler(error, __CREATE_IMAGE_ERR); if (err != nullptr) { *err = error; } } #endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 #if CL_HPP_MINIMUM_OPENCL_VERSION < 120 if (!useCreateImage) { object_ = ::clCreateImage3D( context(), flags, &format, width, height, depth, row_pitch, slice_pitch, host_ptr, &error); detail::errHandler(error, __CREATE_IMAGE3D_ERR); if (err != nullptr) { *err = error; } } #endif // CL_HPP_MINIMUM_OPENCL_VERSION < 120 } //! \brief Default constructor - initializes to nullptr. Image3D() : Image() { } /*! \brief Constructor from cl_mem - takes ownership. * * \param retainObject will cause the constructor to retain its cl object. * Defaults to false to maintain compatibility with * earlier versions. * See Memory for further details. */ explicit Image3D(const cl_mem& image3D, bool retainObject = false) : Image(image3D, retainObject) { } /*! \brief Assignment from cl_mem - performs shallow copy. * * See Memory for further details. */ Image3D& operator = (const cl_mem& rhs) { Image::operator=(rhs); return *this; } }; #if CL_HPP_TARGET_OPENCL_VERSION >= 200 /*! \brief Class interface for Pipe Memory Objects. * * See Memory for details about copy semantics, etc. * * \see Memory */ class Pipe : public Memory { public: /*! \brief Constructs a Pipe in a specified context. * * Wraps clCreatePipe(). * @param context Context in which to create the pipe. * @param flags Bitfield. Only CL_MEM_READ_WRITE and CL_MEM_HOST_NO_ACCESS are valid. * @param packet_size Size in bytes of a single packet of the pipe. * @param max_packets Number of packets that may be stored in the pipe. * */ Pipe( const Context& context, cl_uint packet_size, cl_uint max_packets, cl_int* err = nullptr) { cl_int error; cl_mem_flags flags = CL_MEM_READ_WRITE | CL_MEM_HOST_NO_ACCESS; object_ = ::clCreatePipe(context(), flags, packet_size, max_packets, nullptr, &error); detail::errHandler(error, __CREATE_PIPE_ERR); if (err != nullptr) { *err = error; } } /*! \brief Constructs a Pipe in a the default context. * * Wraps clCreatePipe(). * @param flags Bitfield. Only CL_MEM_READ_WRITE and CL_MEM_HOST_NO_ACCESS are valid. * @param packet_size Size in bytes of a single packet of the pipe. * @param max_packets Number of packets that may be stored in the pipe. * */ Pipe( cl_uint packet_size, cl_uint max_packets, cl_int* err = nullptr) { cl_int error; Context context = Context::getDefault(err); cl_mem_flags flags = CL_MEM_READ_WRITE | CL_MEM_HOST_NO_ACCESS; object_ = ::clCreatePipe(context(), flags, packet_size, max_packets, nullptr, &error); detail::errHandler(error, __CREATE_PIPE_ERR); if (err != nullptr) { *err = error; } } //! \brief Default constructor - initializes to nullptr. Pipe() : Memory() { } /*! \brief Constructor from cl_mem - takes ownership. * * \param retainObject will cause the constructor to retain its cl object. * Defaults to false to maintain compatibility with earlier versions. * * See Memory for further details. */ explicit Pipe(const cl_mem& pipe, bool retainObject = false) : Memory(pipe, retainObject) { } /*! \brief Assignment from cl_mem - performs shallow copy. * * See Memory for further details. */ Pipe& operator = (const cl_mem& rhs) { Memory::operator=(rhs); return *this; } //! \brief Wrapper for clGetMemObjectInfo(). template cl_int getInfo(cl_pipe_info name, T* param) const { return detail::errHandler( detail::getInfo(::clGetPipeInfo, object_, name, param), __GET_PIPE_INFO_ERR); } //! \brief Wrapper for clGetMemObjectInfo() that returns by value. template typename detail::param_traits::param_type getInfo(cl_int* err = nullptr) const { typename detail::param_traits< detail::cl_pipe_info, name>::param_type param; cl_int result = getInfo(name, ¶m); if (err != nullptr) { *err = result; } return param; } }; // class Pipe #endif // CL_HPP_TARGET_OPENCL_VERSION >= 200 /*! \brief Class interface for cl_sampler. * * \note Copies of these objects are shallow, meaning that the copy will refer * to the same underlying cl_sampler as the original. For details, see * clRetainSampler() and clReleaseSampler(). * * \see cl_sampler */ class Sampler : public detail::Wrapper { public: //! \brief Default constructor - initializes to nullptr. Sampler() { } /*! \brief Constructs a Sampler in a specified context. * * Wraps clCreateSampler(). */ Sampler( const Context& context, cl_bool normalized_coords, cl_addressing_mode addressing_mode, cl_filter_mode filter_mode, cl_int* err = nullptr) { cl_int error; #if CL_HPP_TARGET_OPENCL_VERSION >= 200 cl_sampler_properties sampler_properties[] = { CL_SAMPLER_NORMALIZED_COORDS, normalized_coords, CL_SAMPLER_ADDRESSING_MODE, addressing_mode, CL_SAMPLER_FILTER_MODE, filter_mode, 0 }; object_ = ::clCreateSamplerWithProperties( context(), sampler_properties, &error); detail::errHandler(error, __CREATE_SAMPLER_WITH_PROPERTIES_ERR); if (err != nullptr) { *err = error; } #else object_ = ::clCreateSampler( context(), normalized_coords, addressing_mode, filter_mode, &error); detail::errHandler(error, __CREATE_SAMPLER_ERR); if (err != nullptr) { *err = error; } #endif } /*! \brief Constructor from cl_sampler - takes ownership. * * \param retainObject will cause the constructor to retain its cl object. * Defaults to false to maintain compatibility with * earlier versions. * This effectively transfers ownership of a refcount on the cl_sampler * into the new Sampler object. */ explicit Sampler(const cl_sampler& sampler, bool retainObject = false) : detail::Wrapper(sampler, retainObject) { } /*! \brief Assignment operator from cl_sampler - takes ownership. * * This effectively transfers ownership of a refcount on the rhs and calls * clReleaseSampler() on the value previously held by this instance. */ Sampler& operator = (const cl_sampler& rhs) { detail::Wrapper::operator=(rhs); return *this; } //! \brief Wrapper for clGetSamplerInfo(). template cl_int getInfo(cl_sampler_info name, T* param) const { return detail::errHandler( detail::getInfo(::clGetSamplerInfo, object_, name, param), __GET_SAMPLER_INFO_ERR); } //! \brief Wrapper for clGetSamplerInfo() that returns by value. template typename detail::param_traits::param_type getInfo(cl_int* err = nullptr) const { typename detail::param_traits< detail::cl_sampler_info, name>::param_type param; cl_int result = getInfo(name, ¶m); if (err != nullptr) { *err = result; } return param; } }; class Program; class CommandQueue; class DeviceCommandQueue; class Kernel; //! \brief Class interface for specifying NDRange values. class NDRange { private: size_type sizes_[3]; cl_uint dimensions_; public: //! \brief Default constructor - resulting range has zero dimensions. NDRange() : dimensions_(0) { sizes_[0] = 0; sizes_[1] = 0; sizes_[2] = 0; } //! \brief Constructs one-dimensional range. NDRange(size_type size0) : dimensions_(1) { sizes_[0] = size0; sizes_[1] = 1; sizes_[2] = 1; } //! \brief Constructs two-dimensional range. NDRange(size_type size0, size_type size1) : dimensions_(2) { sizes_[0] = size0; sizes_[1] = size1; sizes_[2] = 1; } //! \brief Constructs three-dimensional range. NDRange(size_type size0, size_type size1, size_type size2) : dimensions_(3) { sizes_[0] = size0; sizes_[1] = size1; sizes_[2] = size2; } //! \brief Constructs one-dimensional range. NDRange(array a) : NDRange(a[0]){} //! \brief Constructs two-dimensional range. NDRange(array a) : NDRange(a[0], a[1]){} //! \brief Constructs three-dimensional range. NDRange(array a) : NDRange(a[0], a[1], a[2]){} /*! \brief Conversion operator to const size_type *. * * \returns a pointer to the size of the first dimension. */ operator const size_type*() const { return sizes_; } //! \brief Queries the number of dimensions in the range. size_type dimensions() const { return dimensions_; } //! \brief Returns the size of the object in bytes based on the // runtime number of dimensions size_type size() const { return dimensions_*sizeof(size_type); } size_type* get() { return sizes_; } const size_type* get() const { return sizes_; } }; //! \brief A zero-dimensional range. static const NDRange NullRange; //! \brief Local address wrapper for use with Kernel::setArg struct LocalSpaceArg { size_type size_; }; namespace detail { template struct KernelArgumentHandler; // Enable for objects that are not subclasses of memory // Pointers, constants etc template struct KernelArgumentHandler::value>::type> { static size_type size(const T&) { return sizeof(T); } static const T* ptr(const T& value) { return &value; } }; // Enable for subclasses of memory where we want to get a reference to the cl_mem out // and pass that in for safety template struct KernelArgumentHandler::value>::type> { static size_type size(const T&) { return sizeof(cl_mem); } static const cl_mem* ptr(const T& value) { return &(value()); } }; // Specialization for DeviceCommandQueue defined later template <> struct KernelArgumentHandler { static size_type size(const LocalSpaceArg& value) { return value.size_; } static const void* ptr(const LocalSpaceArg&) { return nullptr; } }; } //! \endcond /*! Local * \brief Helper function for generating LocalSpaceArg objects. */ inline LocalSpaceArg Local(size_type size) { LocalSpaceArg ret = { size }; return ret; } /*! \brief Class interface for cl_kernel. * * \note Copies of these objects are shallow, meaning that the copy will refer * to the same underlying cl_kernel as the original. For details, see * clRetainKernel() and clReleaseKernel(). * * \see cl_kernel */ class Kernel : public detail::Wrapper { public: inline Kernel(const Program& program, const char* name, cl_int* err = nullptr); //! \brief Default constructor - initializes to nullptr. Kernel() { } /*! \brief Constructor from cl_kernel - takes ownership. * * \param retainObject will cause the constructor to retain its cl object. * Defaults to false to maintain compatibility with * earlier versions. * This effectively transfers ownership of a refcount on the cl_kernel * into the new Kernel object. */ explicit Kernel(const cl_kernel& kernel, bool retainObject = false) : detail::Wrapper(kernel, retainObject) { } /*! \brief Assignment operator from cl_kernel - takes ownership. * * This effectively transfers ownership of a refcount on the rhs and calls * clReleaseKernel() on the value previously held by this instance. */ Kernel& operator = (const cl_kernel& rhs) { detail::Wrapper::operator=(rhs); return *this; } template cl_int getInfo(cl_kernel_info name, T* param) const { return detail::errHandler( detail::getInfo(::clGetKernelInfo, object_, name, param), __GET_KERNEL_INFO_ERR); } template typename detail::param_traits::param_type getInfo(cl_int* err = nullptr) const { typename detail::param_traits< detail::cl_kernel_info, name>::param_type param; cl_int result = getInfo(name, ¶m); if (err != nullptr) { *err = result; } return param; } #if CL_HPP_TARGET_OPENCL_VERSION >= 120 template cl_int getArgInfo(cl_uint argIndex, cl_kernel_arg_info name, T* param) const { return detail::errHandler( detail::getInfo(::clGetKernelArgInfo, object_, argIndex, name, param), __GET_KERNEL_ARG_INFO_ERR); } template typename detail::param_traits::param_type getArgInfo(cl_uint argIndex, cl_int* err = nullptr) const { typename detail::param_traits< detail::cl_kernel_arg_info, name>::param_type param; cl_int result = getArgInfo(argIndex, name, ¶m); if (err != nullptr) { *err = result; } return param; } #endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 template cl_int getWorkGroupInfo( const Device& device, cl_kernel_work_group_info name, T* param) const { return detail::errHandler( detail::getInfo( ::clGetKernelWorkGroupInfo, object_, device(), name, param), __GET_KERNEL_WORK_GROUP_INFO_ERR); } template typename detail::param_traits::param_type getWorkGroupInfo(const Device& device, cl_int* err = nullptr) const { typename detail::param_traits< detail::cl_kernel_work_group_info, name>::param_type param; cl_int result = getWorkGroupInfo(device, name, ¶m); if (err != nullptr) { *err = result; } return param; } #if defined(CL_HPP_USE_CL_SUB_GROUPS_KHR) || CL_HPP_TARGET_OPENCL_VERSION >= 210 cl_int getSubGroupInfo(const cl::Device &dev, cl_kernel_sub_group_info name, const cl::NDRange &range, size_type* param) const { #if CL_HPP_TARGET_OPENCL_VERSION >= 210 return detail::errHandler( clGetKernelSubGroupInfo(object_, dev(), name, range.size(), range.get(), sizeof(size_type), param, nullptr), __GET_KERNEL_SUB_GROUP_INFO_ERR); #else // #if CL_HPP_TARGET_OPENCL_VERSION >= 210 typedef clGetKernelSubGroupInfoKHR_fn PFN_clGetKernelSubGroupInfoKHR; static PFN_clGetKernelSubGroupInfoKHR pfn_clGetKernelSubGroupInfoKHR = nullptr; CL_HPP_INIT_CL_EXT_FCN_PTR_(clGetKernelSubGroupInfoKHR); return detail::errHandler( pfn_clGetKernelSubGroupInfoKHR(object_, dev(), name, range.size(), range.get(), sizeof(size_type), param, nullptr), __GET_KERNEL_SUB_GROUP_INFO_ERR); #endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 210 } template size_type getSubGroupInfo(const cl::Device &dev, const cl::NDRange &range, cl_int* err = nullptr) const { size_type param; cl_int result = getSubGroupInfo(dev, name, range, ¶m); if (err != nullptr) { *err = result; } return param; } #endif // defined(CL_HPP_USE_CL_SUB_GROUPS_KHR) || CL_HPP_TARGET_OPENCL_VERSION >= 210 #if CL_HPP_TARGET_OPENCL_VERSION >= 200 /*! \brief setArg overload taking a shared_ptr type */ template cl_int setArg(cl_uint index, const cl::pointer &argPtr) { return detail::errHandler( ::clSetKernelArgSVMPointer(object_, index, argPtr.get()), __SET_KERNEL_ARGS_ERR); } /*! \brief setArg overload taking a vector type. */ template cl_int setArg(cl_uint index, const cl::vector &argPtr) { return detail::errHandler( ::clSetKernelArgSVMPointer(object_, index, argPtr.data()), __SET_KERNEL_ARGS_ERR); } /*! \brief setArg overload taking a pointer type */ template typename std::enable_if::value, cl_int>::type setArg(cl_uint index, const T argPtr) { return detail::errHandler( ::clSetKernelArgSVMPointer(object_, index, argPtr), __SET_KERNEL_ARGS_ERR); } #endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 200 /*! \brief setArg overload taking a POD type */ template typename std::enable_if::value, cl_int>::type setArg(cl_uint index, const T &value) { return detail::errHandler( ::clSetKernelArg( object_, index, detail::KernelArgumentHandler::size(value), detail::KernelArgumentHandler::ptr(value)), __SET_KERNEL_ARGS_ERR); } cl_int setArg(cl_uint index, size_type size, const void* argPtr) { return detail::errHandler( ::clSetKernelArg(object_, index, size, argPtr), __SET_KERNEL_ARGS_ERR); } #if CL_HPP_TARGET_OPENCL_VERSION >= 200 /*! * Specify a vector of SVM pointers that the kernel may access in * addition to its arguments. */ cl_int setSVMPointers(const vector &pointerList) { return detail::errHandler( ::clSetKernelExecInfo( object_, CL_KERNEL_EXEC_INFO_SVM_PTRS, sizeof(void*)*pointerList.size(), pointerList.data())); } /*! * Specify a std::array of SVM pointers that the kernel may access in * addition to its arguments. */ template cl_int setSVMPointers(const std::array &pointerList) { return detail::errHandler( ::clSetKernelExecInfo( object_, CL_KERNEL_EXEC_INFO_SVM_PTRS, sizeof(void*)*pointerList.size(), pointerList.data())); } /*! \brief Enable fine-grained system SVM. * * \note It is only possible to enable fine-grained system SVM if all devices * in the context associated with kernel support it. * * \param svmEnabled True if fine-grained system SVM is requested. False otherwise. * \return CL_SUCCESS if the function was executed succesfully. CL_INVALID_OPERATION * if no devices in the context support fine-grained system SVM. * * \see clSetKernelExecInfo */ cl_int enableFineGrainedSystemSVM(bool svmEnabled) { cl_bool svmEnabled_ = svmEnabled ? CL_TRUE : CL_FALSE; return detail::errHandler( ::clSetKernelExecInfo( object_, CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM, sizeof(cl_bool), &svmEnabled_ ) ); } template void setSVMPointersHelper(std::array &pointerList, const pointer &t0, const pointer &t1, Ts & ... ts) { pointerList[index] = static_cast(t0.get()); setSVMPointersHelper(pointerList, t1, ts...); } template typename std::enable_if::value, void>::type setSVMPointersHelper(std::array &pointerList, T0 t0, T1 t1, Ts... ts) { pointerList[index] = static_cast(t0); setSVMPointersHelper(pointerList, t1, ts...); } template void setSVMPointersHelper(std::array &pointerList, const pointer &t0) { pointerList[index] = static_cast(t0.get()); } template typename std::enable_if::value, void>::type setSVMPointersHelper(std::array &pointerList, T0 t0) { pointerList[index] = static_cast(t0); } template cl_int setSVMPointers(const T0 &t0, Ts & ... ts) { std::array pointerList; setSVMPointersHelper<0, 1 + sizeof...(Ts)>(pointerList, t0, ts...); return detail::errHandler( ::clSetKernelExecInfo( object_, CL_KERNEL_EXEC_INFO_SVM_PTRS, sizeof(void*)*(1 + sizeof...(Ts)), pointerList.data())); } template cl_int setExecInfo(cl_kernel_exec_info param_name, const T& val) { return detail::errHandler( ::clSetKernelExecInfo( object_, param_name, sizeof(T), &val)); } template cl_int setExecInfo(typename detail::param_traits::param_type& val) { return setExecInfo(name, val); } #endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 200 #if CL_HPP_TARGET_OPENCL_VERSION >= 210 /** * Make a deep copy of the kernel object including its arguments. * @return A new kernel object with internal state entirely separate from that * of the original but with any arguments set on the original intact. */ Kernel clone() { cl_int error; Kernel retValue(clCloneKernel(this->get(), &error)); detail::errHandler(error, __CLONE_KERNEL_ERR); return retValue; } #endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 210 }; /*! \class Program * \brief Program interface that implements cl_program. */ class Program : public detail::Wrapper { public: #if !defined(CL_HPP_ENABLE_PROGRAM_CONSTRUCTION_FROM_ARRAY_COMPATIBILITY) typedef vector> Binaries; typedef vector Sources; #else // #if !defined(CL_HPP_ENABLE_PROGRAM_CONSTRUCTION_FROM_ARRAY_COMPATIBILITY) typedef vector > Binaries; typedef vector > Sources; #endif // #if !defined(CL_HPP_ENABLE_PROGRAM_CONSTRUCTION_FROM_ARRAY_COMPATIBILITY) Program( const string& source, bool build = false, cl_int* err = nullptr) { cl_int error; const char * strings = source.c_str(); const size_type length = source.size(); Context context = Context::getDefault(err); object_ = ::clCreateProgramWithSource( context(), (cl_uint)1, &strings, &length, &error); detail::errHandler(error, __CREATE_PROGRAM_WITH_SOURCE_ERR); if (error == CL_SUCCESS && build) { error = ::clBuildProgram( object_, 0, nullptr, #if !defined(CL_HPP_CL_1_2_DEFAULT_BUILD) "-cl-std=CL2.0", #else "", #endif // #if !defined(CL_HPP_CL_1_2_DEFAULT_BUILD) nullptr, nullptr); detail::buildErrHandler(error, __BUILD_PROGRAM_ERR, getBuildInfo()); } if (err != nullptr) { *err = error; } } Program( const Context& context, const string& source, bool build = false, cl_int* err = nullptr) { cl_int error; const char * strings = source.c_str(); const size_type length = source.size(); object_ = ::clCreateProgramWithSource( context(), (cl_uint)1, &strings, &length, &error); detail::errHandler(error, __CREATE_PROGRAM_WITH_SOURCE_ERR); if (error == CL_SUCCESS && build) { error = ::clBuildProgram( object_, 0, nullptr, #if !defined(CL_HPP_CL_1_2_DEFAULT_BUILD) "-cl-std=CL2.0", #else "", #endif // #if !defined(CL_HPP_CL_1_2_DEFAULT_BUILD) nullptr, nullptr); detail::buildErrHandler(error, __BUILD_PROGRAM_ERR, getBuildInfo()); } if (err != nullptr) { *err = error; } } /** * Create a program from a vector of source strings and the default context. * Does not compile or link the program. */ Program( const Sources& sources, cl_int* err = nullptr) { cl_int error; Context context = Context::getDefault(err); const size_type n = (size_type)sources.size(); vector lengths(n); vector strings(n); for (size_type i = 0; i < n; ++i) { #if !defined(CL_HPP_ENABLE_PROGRAM_CONSTRUCTION_FROM_ARRAY_COMPATIBILITY) strings[i] = sources[(int)i].data(); lengths[i] = sources[(int)i].length(); #else // #if !defined(CL_HPP_ENABLE_PROGRAM_CONSTRUCTION_FROM_ARRAY_COMPATIBILITY) strings[i] = sources[(int)i].first; lengths[i] = sources[(int)i].second; #endif // #if !defined(CL_HPP_ENABLE_PROGRAM_CONSTRUCTION_FROM_ARRAY_COMPATIBILITY) } object_ = ::clCreateProgramWithSource( context(), (cl_uint)n, strings.data(), lengths.data(), &error); detail::errHandler(error, __CREATE_PROGRAM_WITH_SOURCE_ERR); if (err != nullptr) { *err = error; } } /** * Create a program from a vector of source strings and a provided context. * Does not compile or link the program. */ Program( const Context& context, const Sources& sources, cl_int* err = nullptr) { cl_int error; const size_type n = (size_type)sources.size(); vector lengths(n); vector strings(n); for (size_type i = 0; i < n; ++i) { #if !defined(CL_HPP_ENABLE_PROGRAM_CONSTRUCTION_FROM_ARRAY_COMPATIBILITY) strings[i] = sources[(int)i].data(); lengths[i] = sources[(int)i].length(); #else // #if !defined(CL_HPP_ENABLE_PROGRAM_CONSTRUCTION_FROM_ARRAY_COMPATIBILITY) strings[i] = sources[(int)i].first; lengths[i] = sources[(int)i].second; #endif // #if !defined(CL_HPP_ENABLE_PROGRAM_CONSTRUCTION_FROM_ARRAY_COMPATIBILITY) } object_ = ::clCreateProgramWithSource( context(), (cl_uint)n, strings.data(), lengths.data(), &error); detail::errHandler(error, __CREATE_PROGRAM_WITH_SOURCE_ERR); if (err != nullptr) { *err = error; } } #if defined(CL_HPP_USE_IL_KHR) || CL_HPP_TARGET_OPENCL_VERSION >= 210 /** * Program constructor to allow construction of program from SPIR-V or another IL. * * Requires OpenCL 2.1 or newer or the cl_khr_il_program extension. */ Program( const vector& IL, bool build = false, cl_int* err = nullptr) { cl_int error; Context context = Context::getDefault(err); #if CL_HPP_TARGET_OPENCL_VERSION >= 210 object_ = ::clCreateProgramWithIL( context(), static_cast(IL.data()), IL.size(), &error); #else // #if CL_HPP_TARGET_OPENCL_VERSION >= 210 typedef clCreateProgramWithILKHR_fn PFN_clCreateProgramWithILKHR; static PFN_clCreateProgramWithILKHR pfn_clCreateProgramWithILKHR = nullptr; CL_HPP_INIT_CL_EXT_FCN_PTR_(clCreateProgramWithILKHR); object_ = pfn_clCreateProgramWithILKHR( context(), static_cast(IL.data()), IL.size(), &error); #endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 210 detail::errHandler(error, __CREATE_PROGRAM_WITH_IL_ERR); if (error == CL_SUCCESS && build) { error = ::clBuildProgram( object_, 0, nullptr, #if !defined(CL_HPP_CL_1_2_DEFAULT_BUILD) "-cl-std=CL2.0", #else "", #endif // #if !defined(CL_HPP_CL_1_2_DEFAULT_BUILD) nullptr, nullptr); detail::buildErrHandler(error, __BUILD_PROGRAM_ERR, getBuildInfo()); } if (err != nullptr) { *err = error; } } /** * Program constructor to allow construction of program from SPIR-V or another IL * for a specific context. * * Requires OpenCL 2.1 or newer or the cl_khr_il_program extension. */ Program( const Context& context, const vector& IL, bool build = false, cl_int* err = nullptr) { cl_int error; #if CL_HPP_TARGET_OPENCL_VERSION >= 210 object_ = ::clCreateProgramWithIL( context(), static_cast(IL.data()), IL.size(), &error); #else // #if CL_HPP_TARGET_OPENCL_VERSION >= 210 typedef clCreateProgramWithILKHR_fn PFN_clCreateProgramWithILKHR; static PFN_clCreateProgramWithILKHR pfn_clCreateProgramWithILKHR = nullptr; CL_HPP_INIT_CL_EXT_FCN_PTR_(clCreateProgramWithILKHR); object_ = pfn_clCreateProgramWithILKHR( context(), static_cast(IL.data()), IL.size(), &error); #endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 210 detail::errHandler(error, __CREATE_PROGRAM_WITH_IL_ERR); if (error == CL_SUCCESS && build) { error = ::clBuildProgram( object_, 0, nullptr, #if !defined(CL_HPP_CL_1_2_DEFAULT_BUILD) "-cl-std=CL2.0", #else "", #endif // #if !defined(CL_HPP_CL_1_2_DEFAULT_BUILD) nullptr, nullptr); detail::buildErrHandler(error, __BUILD_PROGRAM_ERR, getBuildInfo()); } if (err != nullptr) { *err = error; } } #endif // defined(CL_HPP_USE_IL_KHR) || CL_HPP_TARGET_OPENCL_VERSION >= 210 /** * Construct a program object from a list of devices and a per-device list of binaries. * \param context A valid OpenCL context in which to construct the program. * \param devices A vector of OpenCL device objects for which the program will be created. * \param binaries A vector of pairs of a pointer to a binary object and its length. * \param binaryStatus An optional vector that on completion will be resized to * match the size of binaries and filled with values to specify if each binary * was successfully loaded. * Set to CL_SUCCESS if the binary was successfully loaded. * Set to CL_INVALID_VALUE if the length is 0 or the binary pointer is nullptr. * Set to CL_INVALID_BINARY if the binary provided is not valid for the matching device. * \param err if non-nullptr will be set to CL_SUCCESS on successful operation or one of the following errors: * CL_INVALID_CONTEXT if context is not a valid context. * CL_INVALID_VALUE if the length of devices is zero; or if the length of binaries does not match the length of devices; * or if any entry in binaries is nullptr or has length 0. * CL_INVALID_DEVICE if OpenCL devices listed in devices are not in the list of devices associated with context. * CL_INVALID_BINARY if an invalid program binary was encountered for any device. binaryStatus will return specific status for each device. * CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources required by the OpenCL implementation on the host. */ Program( const Context& context, const vector& devices, const Binaries& binaries, vector* binaryStatus = nullptr, cl_int* err = nullptr) { cl_int error; const size_type numDevices = devices.size(); // Catch size mismatch early and return if(binaries.size() != numDevices) { error = CL_INVALID_VALUE; detail::errHandler(error, __CREATE_PROGRAM_WITH_BINARY_ERR); if (err != nullptr) { *err = error; } return; } vector lengths(numDevices); vector images(numDevices); #if !defined(CL_HPP_ENABLE_PROGRAM_CONSTRUCTION_FROM_ARRAY_COMPATIBILITY) for (size_type i = 0; i < numDevices; ++i) { images[i] = binaries[i].data(); lengths[i] = binaries[(int)i].size(); } #else // #if !defined(CL_HPP_ENABLE_PROGRAM_CONSTRUCTION_FROM_ARRAY_COMPATIBILITY) for (size_type i = 0; i < numDevices; ++i) { images[i] = (const unsigned char*)binaries[i].first; lengths[i] = binaries[(int)i].second; } #endif // #if !defined(CL_HPP_ENABLE_PROGRAM_CONSTRUCTION_FROM_ARRAY_COMPATIBILITY) vector deviceIDs(numDevices); for( size_type deviceIndex = 0; deviceIndex < numDevices; ++deviceIndex ) { deviceIDs[deviceIndex] = (devices[deviceIndex])(); } if(binaryStatus) { binaryStatus->resize(numDevices); } object_ = ::clCreateProgramWithBinary( context(), (cl_uint) devices.size(), deviceIDs.data(), lengths.data(), images.data(), (binaryStatus != nullptr && numDevices > 0) ? &binaryStatus->front() : nullptr, &error); detail::errHandler(error, __CREATE_PROGRAM_WITH_BINARY_ERR); if (err != nullptr) { *err = error; } } #if CL_HPP_TARGET_OPENCL_VERSION >= 120 /** * Create program using builtin kernels. * \param kernelNames Semi-colon separated list of builtin kernel names */ Program( const Context& context, const vector& devices, const string& kernelNames, cl_int* err = nullptr) { cl_int error; size_type numDevices = devices.size(); vector deviceIDs(numDevices); for( size_type deviceIndex = 0; deviceIndex < numDevices; ++deviceIndex ) { deviceIDs[deviceIndex] = (devices[deviceIndex])(); } object_ = ::clCreateProgramWithBuiltInKernels( context(), (cl_uint) devices.size(), deviceIDs.data(), kernelNames.c_str(), &error); detail::errHandler(error, __CREATE_PROGRAM_WITH_BUILT_IN_KERNELS_ERR); if (err != nullptr) { *err = error; } } #endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 Program() { } /*! \brief Constructor from cl_program - takes ownership. * * \param retainObject will cause the constructor to retain its cl object. * Defaults to false to maintain compatibility with * earlier versions. */ explicit Program(const cl_program& program, bool retainObject = false) : detail::Wrapper(program, retainObject) { } Program& operator = (const cl_program& rhs) { detail::Wrapper::operator=(rhs); return *this; } cl_int build( const vector& devices, const char* options = nullptr, void (CL_CALLBACK * notifyFptr)(cl_program, void *) = nullptr, void* data = nullptr) const { size_type numDevices = devices.size(); vector deviceIDs(numDevices); for( size_type deviceIndex = 0; deviceIndex < numDevices; ++deviceIndex ) { deviceIDs[deviceIndex] = (devices[deviceIndex])(); } cl_int buildError = ::clBuildProgram( object_, (cl_uint) devices.size(), deviceIDs.data(), options, notifyFptr, data); return detail::buildErrHandler(buildError, __BUILD_PROGRAM_ERR, getBuildInfo()); } cl_int build( const Device& device, const char* options = nullptr, void (CL_CALLBACK * notifyFptr)(cl_program, void *) = nullptr, void* data = nullptr) const { cl_device_id deviceID = device(); cl_int buildError = ::clBuildProgram( object_, 1, &deviceID, options, notifyFptr, data); BuildLogType buildLog(0); buildLog.push_back(std::make_pair(device, getBuildInfo(device))); return detail::buildErrHandler(buildError, __BUILD_PROGRAM_ERR, buildLog); } cl_int build( const char* options = nullptr, void (CL_CALLBACK * notifyFptr)(cl_program, void *) = nullptr, void* data = nullptr) const { cl_int buildError = ::clBuildProgram( object_, 0, nullptr, options, notifyFptr, data); return detail::buildErrHandler(buildError, __BUILD_PROGRAM_ERR, getBuildInfo()); } #if CL_HPP_TARGET_OPENCL_VERSION >= 120 cl_int compile( const char* options = nullptr, void (CL_CALLBACK * notifyFptr)(cl_program, void *) = nullptr, void* data = nullptr) const { cl_int error = ::clCompileProgram( object_, 0, nullptr, options, 0, nullptr, nullptr, notifyFptr, data); return detail::buildErrHandler(error, __COMPILE_PROGRAM_ERR, getBuildInfo()); } #endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 template cl_int getInfo(cl_program_info name, T* param) const { return detail::errHandler( detail::getInfo(::clGetProgramInfo, object_, name, param), __GET_PROGRAM_INFO_ERR); } template typename detail::param_traits::param_type getInfo(cl_int* err = nullptr) const { typename detail::param_traits< detail::cl_program_info, name>::param_type param; cl_int result = getInfo(name, ¶m); if (err != nullptr) { *err = result; } return param; } template cl_int getBuildInfo( const Device& device, cl_program_build_info name, T* param) const { return detail::errHandler( detail::getInfo( ::clGetProgramBuildInfo, object_, device(), name, param), __GET_PROGRAM_BUILD_INFO_ERR); } template typename detail::param_traits::param_type getBuildInfo(const Device& device, cl_int* err = nullptr) const { typename detail::param_traits< detail::cl_program_build_info, name>::param_type param; cl_int result = getBuildInfo(device, name, ¶m); if (err != nullptr) { *err = result; } return param; } /** * Build info function that returns a vector of device/info pairs for the specified * info type and for all devices in the program. * On an error reading the info for any device, an empty vector of info will be returned. */ template vector::param_type>> getBuildInfo(cl_int *err = nullptr) const { cl_int result = CL_SUCCESS; auto devs = getInfo(&result); vector::param_type>> devInfo; // If there was an initial error from getInfo return the error if (result != CL_SUCCESS) { if (err != nullptr) { *err = result; } return devInfo; } for (const cl::Device &d : devs) { typename detail::param_traits< detail::cl_program_build_info, name>::param_type param; result = getBuildInfo(d, name, ¶m); devInfo.push_back( std::pair::param_type> (d, param)); if (result != CL_SUCCESS) { // On error, leave the loop and return the error code break; } } if (err != nullptr) { *err = result; } if (result != CL_SUCCESS) { devInfo.clear(); } return devInfo; } cl_int createKernels(vector* kernels) { cl_uint numKernels; cl_int err = ::clCreateKernelsInProgram(object_, 0, nullptr, &numKernels); if (err != CL_SUCCESS) { return detail::errHandler(err, __CREATE_KERNELS_IN_PROGRAM_ERR); } vector value(numKernels); err = ::clCreateKernelsInProgram( object_, numKernels, value.data(), nullptr); if (err != CL_SUCCESS) { return detail::errHandler(err, __CREATE_KERNELS_IN_PROGRAM_ERR); } if (kernels) { kernels->resize(value.size()); // Assign to param, constructing with retain behaviour // to correctly capture each underlying CL object for (size_type i = 0; i < value.size(); i++) { // We do not need to retain because this kernel is being created // by the runtime (*kernels)[i] = Kernel(value[i], false); } } return CL_SUCCESS; } #if CL_HPP_TARGET_OPENCL_VERSION >= 220 #if defined(CL_USE_DEPRECATED_OPENCL_2_2_APIS) /*! \brief Registers a callback function to be called when destructors for * program scope global variables are complete and before the * program is released. * * Wraps clSetProgramReleaseCallback(). * * Each call to this function registers the specified user callback function * on a callback stack associated with program. The registered user callback * functions are called in the reverse order in which they were registered. */ CL_API_PREFIX__VERSION_2_2_DEPRECATED cl_int setReleaseCallback( void (CL_CALLBACK * pfn_notify)(cl_program program, void * user_data), void * user_data = nullptr) CL_API_SUFFIX__VERSION_2_2_DEPRECATED { return detail::errHandler( ::clSetProgramReleaseCallback( object_, pfn_notify, user_data), __SET_PROGRAM_RELEASE_CALLBACK_ERR); } #endif // #if defined(CL_USE_DEPRECATED_OPENCL_2_2_APIS) /*! \brief Sets a SPIR-V specialization constant. * * Wraps clSetProgramSpecializationConstant(). */ template typename std::enable_if::value, cl_int>::type setSpecializationConstant(cl_uint index, const T &value) { return detail::errHandler( ::clSetProgramSpecializationConstant( object_, index, sizeof(value), &value), __SET_PROGRAM_SPECIALIZATION_CONSTANT_ERR); } /*! \brief Sets a SPIR-V specialization constant. * * Wraps clSetProgramSpecializationConstant(). */ cl_int setSpecializationConstant(cl_uint index, size_type size, const void* value) { return detail::errHandler( ::clSetProgramSpecializationConstant( object_, index, size, value), __SET_PROGRAM_SPECIALIZATION_CONSTANT_ERR); } #endif // CL_HPP_TARGET_OPENCL_VERSION >= 220 }; #if CL_HPP_TARGET_OPENCL_VERSION >= 120 inline Program linkProgram( const Program& input1, const Program& input2, const char* options = nullptr, void (CL_CALLBACK * notifyFptr)(cl_program, void *) = nullptr, void* data = nullptr, cl_int* err = nullptr) { cl_int error_local = CL_SUCCESS; cl_program programs[2] = { input1(), input2() }; Context ctx = input1.getInfo(&error_local); if(error_local!=CL_SUCCESS) { detail::errHandler(error_local, __LINK_PROGRAM_ERR); } cl_program prog = ::clLinkProgram( ctx(), 0, nullptr, options, 2, programs, notifyFptr, data, &error_local); detail::errHandler(error_local,__COMPILE_PROGRAM_ERR); if (err != nullptr) { *err = error_local; } return Program(prog); } inline Program linkProgram( const vector& inputPrograms, const char* options = nullptr, void (CL_CALLBACK * notifyFptr)(cl_program, void *) = nullptr, void* data = nullptr, cl_int* err = nullptr) { cl_int error_local = CL_SUCCESS; Context ctx; static_assert(sizeof(cl::Program) == sizeof(cl_program), "Size of cl::Program must be equal to size of cl_program"); if(inputPrograms.size() > 0) { ctx = inputPrograms[0].getInfo(&error_local); if(error_local!=CL_SUCCESS) { detail::errHandler(error_local, __LINK_PROGRAM_ERR); } } cl_program prog = ::clLinkProgram( ctx(), 0, nullptr, options, static_cast(inputPrograms.size()), reinterpret_cast(inputPrograms.data()), notifyFptr, data, &error_local); detail::errHandler(error_local,__COMPILE_PROGRAM_ERR); if (err != nullptr) { *err = error_local; } return Program(prog); } #endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 // Template specialization for CL_PROGRAM_BINARIES template <> inline cl_int cl::Program::getInfo(cl_program_info name, vector>* param) const { if (name != CL_PROGRAM_BINARIES) { return CL_INVALID_VALUE; } if (param) { // Resize the parameter array appropriately for each allocation // and pass down to the helper vector sizes = getInfo(); size_type numBinaries = sizes.size(); // Resize the parameter array and constituent arrays param->resize(numBinaries); for (size_type i = 0; i < numBinaries; ++i) { (*param)[i].resize(sizes[i]); } return detail::errHandler( detail::getInfo(::clGetProgramInfo, object_, name, param), __GET_PROGRAM_INFO_ERR); } return CL_SUCCESS; } template<> inline vector> cl::Program::getInfo(cl_int* err) const { vector> binariesVectors; cl_int result = getInfo(CL_PROGRAM_BINARIES, &binariesVectors); if (err != nullptr) { *err = result; } return binariesVectors; } #if CL_HPP_TARGET_OPENCL_VERSION >= 220 // Template specialization for clSetProgramSpecializationConstant template <> inline cl_int cl::Program::setSpecializationConstant(cl_uint index, const bool &value) { cl_uchar ucValue = value ? CL_UCHAR_MAX : 0; return detail::errHandler( ::clSetProgramSpecializationConstant( object_, index, sizeof(ucValue), &ucValue), __SET_PROGRAM_SPECIALIZATION_CONSTANT_ERR); } #endif // CL_HPP_TARGET_OPENCL_VERSION >= 220 inline Kernel::Kernel(const Program& program, const char* name, cl_int* err) { cl_int error; object_ = ::clCreateKernel(program(), name, &error); detail::errHandler(error, __CREATE_KERNEL_ERR); if (err != nullptr) { *err = error; } } #ifdef cl_khr_external_memory enum class ExternalMemoryType : cl_external_memory_handle_type_khr { None = 0, OpaqueFd = CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_FD_KHR, OpaqueWin32 = CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_WIN32_KHR, OpaqueWin32Kmt = CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_WIN32_KMT_KHR, D3D11Texture = CL_EXTERNAL_MEMORY_HANDLE_D3D11_TEXTURE_KHR, D3D11TextureKmt = CL_EXTERNAL_MEMORY_HANDLE_D3D11_TEXTURE_KMT_KHR, D3D12Heap = CL_EXTERNAL_MEMORY_HANDLE_D3D12_HEAP_KHR, D3D12Resource = CL_EXTERNAL_MEMORY_HANDLE_D3D12_RESOURCE_KHR, DmaBuf = CL_EXTERNAL_MEMORY_HANDLE_DMA_BUF_KHR, }; #endif enum class QueueProperties : cl_command_queue_properties { None = 0, Profiling = CL_QUEUE_PROFILING_ENABLE, OutOfOrder = CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE, }; inline QueueProperties operator|(QueueProperties lhs, QueueProperties rhs) { return static_cast(static_cast(lhs) | static_cast(rhs)); } inline QueueProperties operator&(QueueProperties lhs, QueueProperties rhs) { return static_cast(static_cast(lhs) & static_cast(rhs)); } /*! \class CommandQueue * \brief CommandQueue interface for cl_command_queue. */ class CommandQueue : public detail::Wrapper { private: static std::once_flag default_initialized_; static CommandQueue default_; static cl_int default_error_; /*! \brief Create the default command queue returned by @ref getDefault. * * It sets default_error_ to indicate success or failure. It does not throw * @c cl::Error. */ static void makeDefault() { /* We don't want to throw an error from this function, so we have to * catch and set the error flag. */ #if defined(CL_HPP_ENABLE_EXCEPTIONS) try #endif { int error; Context context = Context::getDefault(&error); if (error != CL_SUCCESS) { default_error_ = error; } else { Device device = Device::getDefault(); default_ = CommandQueue(context, device, 0, &default_error_); } } #if defined(CL_HPP_ENABLE_EXCEPTIONS) catch (cl::Error &e) { default_error_ = e.err(); } #endif } /*! \brief Create the default command queue. * * This sets @c default_. It does not throw * @c cl::Error. */ static void makeDefaultProvided(const CommandQueue &c) { default_ = c; } #ifdef cl_khr_external_memory static std::once_flag ext_memory_initialized_; static void initMemoryExtension(const cl::Device& device) { auto platform = device.getInfo(); CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clEnqueueAcquireExternalMemObjectsKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clEnqueueReleaseExternalMemObjectsKHR); if ((pfn_clEnqueueAcquireExternalMemObjectsKHR == nullptr) && (pfn_clEnqueueReleaseExternalMemObjectsKHR == nullptr)) { detail::errHandler(CL_INVALID_VALUE, __ENQUEUE_ACQUIRE_EXTERNAL_MEMORY_ERR); } } #endif // cl_khr_external_memory public: #ifdef CL_HPP_UNIT_TEST_ENABLE /*! \brief Reset the default. * * This sets @c default_ to an empty value to support cleanup in * the unit test framework. * This function is not thread safe. */ static void unitTestClearDefault() { default_ = CommandQueue(); } #endif // #ifdef CL_HPP_UNIT_TEST_ENABLE /*! * \brief Constructs a CommandQueue based on passed properties. * Will return an CL_INVALID_QUEUE_PROPERTIES error if CL_QUEUE_ON_DEVICE is specified. */ CommandQueue( cl_command_queue_properties properties, cl_int* err = nullptr) { cl_int error; Context context = Context::getDefault(&error); detail::errHandler(error, __CREATE_CONTEXT_ERR); if (error != CL_SUCCESS) { if (err != nullptr) { *err = error; } } else { Device device = context.getInfo()[0]; bool useWithProperties; #if CL_HPP_TARGET_OPENCL_VERSION >= 200 && CL_HPP_MINIMUM_OPENCL_VERSION < 200 // Run-time decision based on the actual platform { cl_uint version = detail::getContextPlatformVersion(context()); useWithProperties = (version >= 0x20000); // OpenCL 2.0 or above } #elif CL_HPP_TARGET_OPENCL_VERSION >= 200 useWithProperties = true; #else useWithProperties = false; #endif #if CL_HPP_TARGET_OPENCL_VERSION >= 200 if (useWithProperties) { cl_queue_properties queue_properties[] = { CL_QUEUE_PROPERTIES, properties, 0 }; if ((properties & CL_QUEUE_ON_DEVICE) == 0) { object_ = ::clCreateCommandQueueWithProperties( context(), device(), queue_properties, &error); } else { error = CL_INVALID_QUEUE_PROPERTIES; } detail::errHandler(error, __CREATE_COMMAND_QUEUE_WITH_PROPERTIES_ERR); if (err != nullptr) { *err = error; } } #endif // CL_HPP_TARGET_OPENCL_VERSION >= 200 #if CL_HPP_MINIMUM_OPENCL_VERSION < 200 if (!useWithProperties) { object_ = ::clCreateCommandQueue( context(), device(), properties, &error); detail::errHandler(error, __CREATE_COMMAND_QUEUE_ERR); if (err != nullptr) { *err = error; } } #endif // CL_HPP_MINIMUM_OPENCL_VERSION < 200 } } /*! * \brief Constructs a CommandQueue based on passed properties. * Will return an CL_INVALID_QUEUE_PROPERTIES error if CL_QUEUE_ON_DEVICE is specified. */ CommandQueue( QueueProperties properties, cl_int* err = nullptr) { cl_int error; Context context = Context::getDefault(&error); detail::errHandler(error, __CREATE_CONTEXT_ERR); if (error != CL_SUCCESS) { if (err != nullptr) { *err = error; } } else { Device device = context.getInfo()[0]; bool useWithProperties; #if CL_HPP_TARGET_OPENCL_VERSION >= 200 && CL_HPP_MINIMUM_OPENCL_VERSION < 200 // Run-time decision based on the actual platform { cl_uint version = detail::getContextPlatformVersion(context()); useWithProperties = (version >= 0x20000); // OpenCL 2.0 or above } #elif CL_HPP_TARGET_OPENCL_VERSION >= 200 useWithProperties = true; #else useWithProperties = false; #endif #if CL_HPP_TARGET_OPENCL_VERSION >= 200 if (useWithProperties) { cl_queue_properties queue_properties[] = { CL_QUEUE_PROPERTIES, static_cast(properties), 0 }; object_ = ::clCreateCommandQueueWithProperties( context(), device(), queue_properties, &error); detail::errHandler(error, __CREATE_COMMAND_QUEUE_WITH_PROPERTIES_ERR); if (err != nullptr) { *err = error; } } #endif // CL_HPP_TARGET_OPENCL_VERSION >= 200 #if CL_HPP_MINIMUM_OPENCL_VERSION < 200 if (!useWithProperties) { object_ = ::clCreateCommandQueue( context(), device(), static_cast(properties), &error); detail::errHandler(error, __CREATE_COMMAND_QUEUE_ERR); if (err != nullptr) { *err = error; } } #endif // CL_HPP_MINIMUM_OPENCL_VERSION < 200 } } /*! * \brief Constructs a CommandQueue for an implementation defined device in the given context * Will return an CL_INVALID_QUEUE_PROPERTIES error if CL_QUEUE_ON_DEVICE is specified. */ explicit CommandQueue( const Context& context, cl_command_queue_properties properties = 0, cl_int* err = nullptr) { cl_int error; bool useWithProperties; vector devices; error = context.getInfo(CL_CONTEXT_DEVICES, &devices); detail::errHandler(error, __CREATE_CONTEXT_ERR); if (error != CL_SUCCESS) { if (err != nullptr) { *err = error; } return; } #if CL_HPP_TARGET_OPENCL_VERSION >= 200 && CL_HPP_MINIMUM_OPENCL_VERSION < 200 // Run-time decision based on the actual platform { cl_uint version = detail::getContextPlatformVersion(context()); useWithProperties = (version >= 0x20000); // OpenCL 2.0 or above } #elif CL_HPP_TARGET_OPENCL_VERSION >= 200 useWithProperties = true; #else useWithProperties = false; #endif #if CL_HPP_TARGET_OPENCL_VERSION >= 200 if (useWithProperties) { cl_queue_properties queue_properties[] = { CL_QUEUE_PROPERTIES, properties, 0 }; if ((properties & CL_QUEUE_ON_DEVICE) == 0) { object_ = ::clCreateCommandQueueWithProperties( context(), devices[0](), queue_properties, &error); } else { error = CL_INVALID_QUEUE_PROPERTIES; } detail::errHandler(error, __CREATE_COMMAND_QUEUE_WITH_PROPERTIES_ERR); if (err != nullptr) { *err = error; } } #endif // CL_HPP_TARGET_OPENCL_VERSION >= 200 #if CL_HPP_MINIMUM_OPENCL_VERSION < 200 if (!useWithProperties) { object_ = ::clCreateCommandQueue( context(), devices[0](), properties, &error); detail::errHandler(error, __CREATE_COMMAND_QUEUE_ERR); if (err != nullptr) { *err = error; } } #endif // CL_HPP_MINIMUM_OPENCL_VERSION < 200 } /*! * \brief Constructs a CommandQueue for an implementation defined device in the given context * Will return an CL_INVALID_QUEUE_PROPERTIES error if CL_QUEUE_ON_DEVICE is specified. */ explicit CommandQueue( const Context& context, QueueProperties properties, cl_int* err = nullptr) { cl_int error; bool useWithProperties; vector devices; error = context.getInfo(CL_CONTEXT_DEVICES, &devices); detail::errHandler(error, __CREATE_CONTEXT_ERR); if (error != CL_SUCCESS) { if (err != nullptr) { *err = error; } return; } #if CL_HPP_TARGET_OPENCL_VERSION >= 200 && CL_HPP_MINIMUM_OPENCL_VERSION < 200 // Run-time decision based on the actual platform { cl_uint version = detail::getContextPlatformVersion(context()); useWithProperties = (version >= 0x20000); // OpenCL 2.0 or above } #elif CL_HPP_TARGET_OPENCL_VERSION >= 200 useWithProperties = true; #else useWithProperties = false; #endif #if CL_HPP_TARGET_OPENCL_VERSION >= 200 if (useWithProperties) { cl_queue_properties queue_properties[] = { CL_QUEUE_PROPERTIES, static_cast(properties), 0 }; object_ = ::clCreateCommandQueueWithProperties( context(), devices[0](), queue_properties, &error); detail::errHandler(error, __CREATE_COMMAND_QUEUE_WITH_PROPERTIES_ERR); if (err != nullptr) { *err = error; } } #endif // CL_HPP_TARGET_OPENCL_VERSION >= 200 #if CL_HPP_MINIMUM_OPENCL_VERSION < 200 if (!useWithProperties) { object_ = ::clCreateCommandQueue( context(), devices[0](), static_cast(properties), &error); detail::errHandler(error, __CREATE_COMMAND_QUEUE_ERR); if (err != nullptr) { *err = error; } } #endif // CL_HPP_MINIMUM_OPENCL_VERSION < 200 } /*! * \brief Constructs a CommandQueue for a passed device and context * Will return an CL_INVALID_QUEUE_PROPERTIES error if CL_QUEUE_ON_DEVICE is specified. */ CommandQueue( const Context& context, const Device& device, cl_command_queue_properties properties = 0, cl_int* err = nullptr) { cl_int error; bool useWithProperties; #if CL_HPP_TARGET_OPENCL_VERSION >= 200 && CL_HPP_MINIMUM_OPENCL_VERSION < 200 // Run-time decision based on the actual platform { cl_uint version = detail::getContextPlatformVersion(context()); useWithProperties = (version >= 0x20000); // OpenCL 2.0 or above } #elif CL_HPP_TARGET_OPENCL_VERSION >= 200 useWithProperties = true; #else useWithProperties = false; #endif #if CL_HPP_TARGET_OPENCL_VERSION >= 200 if (useWithProperties) { cl_queue_properties queue_properties[] = { CL_QUEUE_PROPERTIES, properties, 0 }; object_ = ::clCreateCommandQueueWithProperties( context(), device(), queue_properties, &error); detail::errHandler(error, __CREATE_COMMAND_QUEUE_WITH_PROPERTIES_ERR); if (err != nullptr) { *err = error; } } #endif // CL_HPP_TARGET_OPENCL_VERSION >= 200 #if CL_HPP_MINIMUM_OPENCL_VERSION < 200 if (!useWithProperties) { object_ = ::clCreateCommandQueue( context(), device(), properties, &error); detail::errHandler(error, __CREATE_COMMAND_QUEUE_ERR); if (err != nullptr) { *err = error; } } #endif // CL_HPP_MINIMUM_OPENCL_VERSION < 200 } /*! * \brief Constructs a CommandQueue for a passed device and context * Will return an CL_INVALID_QUEUE_PROPERTIES error if CL_QUEUE_ON_DEVICE is specified. */ CommandQueue( const Context& context, const Device& device, QueueProperties properties, cl_int* err = nullptr) { cl_int error; bool useWithProperties; #if CL_HPP_TARGET_OPENCL_VERSION >= 200 && CL_HPP_MINIMUM_OPENCL_VERSION < 200 // Run-time decision based on the actual platform { cl_uint version = detail::getContextPlatformVersion(context()); useWithProperties = (version >= 0x20000); // OpenCL 2.0 or above } #elif CL_HPP_TARGET_OPENCL_VERSION >= 200 useWithProperties = true; #else useWithProperties = false; #endif #if CL_HPP_TARGET_OPENCL_VERSION >= 200 if (useWithProperties) { cl_queue_properties queue_properties[] = { CL_QUEUE_PROPERTIES, static_cast(properties), 0 }; object_ = ::clCreateCommandQueueWithProperties( context(), device(), queue_properties, &error); detail::errHandler(error, __CREATE_COMMAND_QUEUE_WITH_PROPERTIES_ERR); if (err != nullptr) { *err = error; } } #endif // CL_HPP_TARGET_OPENCL_VERSION >= 200 #if CL_HPP_MINIMUM_OPENCL_VERSION < 200 if (!useWithProperties) { object_ = ::clCreateCommandQueue( context(), device(), static_cast(properties), &error); detail::errHandler(error, __CREATE_COMMAND_QUEUE_ERR); if (err != nullptr) { *err = error; } } #endif // CL_HPP_MINIMUM_OPENCL_VERSION < 200 } static CommandQueue getDefault(cl_int * err = nullptr) { std::call_once(default_initialized_, makeDefault); #if CL_HPP_TARGET_OPENCL_VERSION >= 200 detail::errHandler(default_error_, __CREATE_COMMAND_QUEUE_WITH_PROPERTIES_ERR); #else // CL_HPP_TARGET_OPENCL_VERSION >= 200 detail::errHandler(default_error_, __CREATE_COMMAND_QUEUE_ERR); #endif // CL_HPP_TARGET_OPENCL_VERSION >= 200 if (err != nullptr) { *err = default_error_; } return default_; } /** * Modify the default command queue to be used by * subsequent operations. * Will only set the default if no default was previously created. * @return updated default command queue. * Should be compared to the passed value to ensure that it was updated. */ static CommandQueue setDefault(const CommandQueue &default_queue) { std::call_once(default_initialized_, makeDefaultProvided, std::cref(default_queue)); detail::errHandler(default_error_); return default_; } CommandQueue() { } /*! \brief Constructor from cl_command_queue - takes ownership. * * \param retainObject will cause the constructor to retain its cl object. * Defaults to false to maintain compatibility with * earlier versions. */ explicit CommandQueue(const cl_command_queue& commandQueue, bool retainObject = false) : detail::Wrapper(commandQueue, retainObject) { } CommandQueue& operator = (const cl_command_queue& rhs) { detail::Wrapper::operator=(rhs); return *this; } template cl_int getInfo(cl_command_queue_info name, T* param) const { return detail::errHandler( detail::getInfo( ::clGetCommandQueueInfo, object_, name, param), __GET_COMMAND_QUEUE_INFO_ERR); } template typename detail::param_traits::param_type getInfo(cl_int* err = nullptr) const { typename detail::param_traits< detail::cl_command_queue_info, name>::param_type param; cl_int result = getInfo(name, ¶m); if (err != nullptr) { *err = result; } return param; } cl_int enqueueReadBuffer( const Buffer& buffer, cl_bool blocking, size_type offset, size_type size, void* ptr, const vector* events = nullptr, Event* event = nullptr) const { cl_event tmp; cl_int err = detail::errHandler( ::clEnqueueReadBuffer( object_, buffer(), blocking, offset, size, ptr, (events != nullptr) ? (cl_uint) events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*) &events->front() : nullptr, (event != nullptr) ? &tmp : nullptr), __ENQUEUE_READ_BUFFER_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } cl_int enqueueWriteBuffer( const Buffer& buffer, cl_bool blocking, size_type offset, size_type size, const void* ptr, const vector* events = nullptr, Event* event = nullptr) const { cl_event tmp; cl_int err = detail::errHandler( ::clEnqueueWriteBuffer( object_, buffer(), blocking, offset, size, ptr, (events != nullptr) ? (cl_uint) events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*) &events->front() : nullptr, (event != nullptr) ? &tmp : nullptr), __ENQUEUE_WRITE_BUFFER_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } cl_int enqueueCopyBuffer( const Buffer& src, const Buffer& dst, size_type src_offset, size_type dst_offset, size_type size, const vector* events = nullptr, Event* event = nullptr) const { cl_event tmp; cl_int err = detail::errHandler( ::clEnqueueCopyBuffer( object_, src(), dst(), src_offset, dst_offset, size, (events != nullptr) ? (cl_uint) events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*) &events->front() : nullptr, (event != nullptr) ? &tmp : nullptr), __ENQEUE_COPY_BUFFER_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } #if CL_HPP_TARGET_OPENCL_VERSION >= 110 cl_int enqueueReadBufferRect( const Buffer& buffer, cl_bool blocking, const array& buffer_offset, const array& host_offset, const array& region, size_type buffer_row_pitch, size_type buffer_slice_pitch, size_type host_row_pitch, size_type host_slice_pitch, void *ptr, const vector* events = nullptr, Event* event = nullptr) const { cl_event tmp; cl_int err = detail::errHandler( ::clEnqueueReadBufferRect( object_, buffer(), blocking, buffer_offset.data(), host_offset.data(), region.data(), buffer_row_pitch, buffer_slice_pitch, host_row_pitch, host_slice_pitch, ptr, (events != nullptr) ? (cl_uint) events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*) &events->front() : nullptr, (event != nullptr) ? &tmp : nullptr), __ENQUEUE_READ_BUFFER_RECT_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } cl_int enqueueReadBufferRect( const Buffer& buffer, cl_bool blocking, const array& buffer_offset, const array& host_offset, const array& region, size_type buffer_row_pitch, size_type buffer_slice_pitch, size_type host_row_pitch, size_type host_slice_pitch, void* ptr, const vector* events = nullptr, Event* event = nullptr) const { return enqueueReadBufferRect( buffer, blocking, { buffer_offset[0], buffer_offset[1], 0 }, { host_offset[0], host_offset[1], 0 }, { region[0], region[1], 1 }, buffer_row_pitch, buffer_slice_pitch, host_row_pitch, host_slice_pitch, ptr, events, event); } cl_int enqueueWriteBufferRect( const Buffer& buffer, cl_bool blocking, const array& buffer_offset, const array& host_offset, const array& region, size_type buffer_row_pitch, size_type buffer_slice_pitch, size_type host_row_pitch, size_type host_slice_pitch, const void *ptr, const vector* events = nullptr, Event* event = nullptr) const { cl_event tmp; cl_int err = detail::errHandler( ::clEnqueueWriteBufferRect( object_, buffer(), blocking, buffer_offset.data(), host_offset.data(), region.data(), buffer_row_pitch, buffer_slice_pitch, host_row_pitch, host_slice_pitch, ptr, (events != nullptr) ? (cl_uint) events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*) &events->front() : nullptr, (event != nullptr) ? &tmp : nullptr), __ENQUEUE_WRITE_BUFFER_RECT_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } cl_int enqueueWriteBufferRect( const Buffer& buffer, cl_bool blocking, const array& buffer_offset, const array& host_offset, const array& region, size_type buffer_row_pitch, size_type buffer_slice_pitch, size_type host_row_pitch, size_type host_slice_pitch, const void* ptr, const vector* events = nullptr, Event* event = nullptr) const { return enqueueWriteBufferRect( buffer, blocking, { buffer_offset[0], buffer_offset[1], 0 }, { host_offset[0], host_offset[1], 0 }, { region[0], region[1], 1 }, buffer_row_pitch, buffer_slice_pitch, host_row_pitch, host_slice_pitch, ptr, events, event); } cl_int enqueueCopyBufferRect( const Buffer& src, const Buffer& dst, const array& src_origin, const array& dst_origin, const array& region, size_type src_row_pitch, size_type src_slice_pitch, size_type dst_row_pitch, size_type dst_slice_pitch, const vector* events = nullptr, Event* event = nullptr) const { cl_event tmp; cl_int err = detail::errHandler( ::clEnqueueCopyBufferRect( object_, src(), dst(), src_origin.data(), dst_origin.data(), region.data(), src_row_pitch, src_slice_pitch, dst_row_pitch, dst_slice_pitch, (events != nullptr) ? (cl_uint) events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*) &events->front() : nullptr, (event != nullptr) ? &tmp : nullptr), __ENQEUE_COPY_BUFFER_RECT_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } cl_int enqueueCopyBufferRect( const Buffer& src, const Buffer& dst, const array& src_origin, const array& dst_origin, const array& region, size_type src_row_pitch, size_type src_slice_pitch, size_type dst_row_pitch, size_type dst_slice_pitch, const vector* events = nullptr, Event* event = nullptr) const { return enqueueCopyBufferRect( src, dst, { src_origin[0], src_origin[1], 0 }, { dst_origin[0], dst_origin[1], 0 }, { region[0], region[1], 1 }, src_row_pitch, src_slice_pitch, dst_row_pitch, dst_slice_pitch, events, event); } #endif // CL_HPP_TARGET_OPENCL_VERSION >= 110 #if CL_HPP_TARGET_OPENCL_VERSION >= 120 /** * Enqueue a command to fill a buffer object with a pattern * of a given size. The pattern is specified as a vector type. * \tparam PatternType The datatype of the pattern field. * The pattern type must be an accepted OpenCL data type. * \tparam offset Is the offset in bytes into the buffer at * which to start filling. This must be a multiple of * the pattern size. * \tparam size Is the size in bytes of the region to fill. * This must be a multiple of the pattern size. */ template cl_int enqueueFillBuffer( const Buffer& buffer, PatternType pattern, size_type offset, size_type size, const vector* events = nullptr, Event* event = nullptr) const { cl_event tmp; cl_int err = detail::errHandler( ::clEnqueueFillBuffer( object_, buffer(), static_cast(&pattern), sizeof(PatternType), offset, size, (events != nullptr) ? (cl_uint) events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*) &events->front() : nullptr, (event != nullptr) ? &tmp : nullptr), __ENQUEUE_FILL_BUFFER_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } #endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 cl_int enqueueReadImage( const Image& image, cl_bool blocking, const array& origin, const array& region, size_type row_pitch, size_type slice_pitch, void* ptr, const vector* events = nullptr, Event* event = nullptr) const { cl_event tmp; cl_int err = detail::errHandler( ::clEnqueueReadImage( object_, image(), blocking, origin.data(), region.data(), row_pitch, slice_pitch, ptr, (events != nullptr) ? (cl_uint) events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*) &events->front() : nullptr, (event != nullptr) ? &tmp : nullptr), __ENQUEUE_READ_IMAGE_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } cl_int enqueueReadImage( const Image& image, cl_bool blocking, const array& origin, const array& region, size_type row_pitch, size_type slice_pitch, void* ptr, const vector* events = nullptr, Event* event = nullptr) const { return enqueueReadImage( image, blocking, { origin[0], origin[1], 0 }, { region[0], region[1], 1 }, row_pitch, slice_pitch, ptr, events, event); } cl_int enqueueWriteImage( const Image& image, cl_bool blocking, const array& origin, const array& region, size_type row_pitch, size_type slice_pitch, const void* ptr, const vector* events = nullptr, Event* event = nullptr) const { cl_event tmp; cl_int err = detail::errHandler( ::clEnqueueWriteImage( object_, image(), blocking, origin.data(), region.data(), row_pitch, slice_pitch, ptr, (events != nullptr) ? (cl_uint) events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*) &events->front() : nullptr, (event != nullptr) ? &tmp : nullptr), __ENQUEUE_WRITE_IMAGE_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } cl_int enqueueWriteImage( const Image& image, cl_bool blocking, const array& origin, const array& region, size_type row_pitch, size_type slice_pitch, const void* ptr, const vector* events = nullptr, Event* event = nullptr) const { return enqueueWriteImage( image, blocking, { origin[0], origin[1], 0 }, { region[0], region[1], 1 }, row_pitch, slice_pitch, ptr, events, event); } cl_int enqueueCopyImage( const Image& src, const Image& dst, const array& src_origin, const array& dst_origin, const array& region, const vector* events = nullptr, Event* event = nullptr) const { cl_event tmp; cl_int err = detail::errHandler( ::clEnqueueCopyImage( object_, src(), dst(), src_origin.data(), dst_origin.data(), region.data(), (events != nullptr) ? (cl_uint) events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*) &events->front() : nullptr, (event != nullptr) ? &tmp : nullptr), __ENQUEUE_COPY_IMAGE_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } cl_int enqueueCopyImage( const Image& src, const Image& dst, const array& src_origin, const array& dst_origin, const array& region, const vector* events = nullptr, Event* event = nullptr) const { return enqueueCopyImage( src, dst, { src_origin[0], src_origin[1], 0 }, { dst_origin[0], dst_origin[1], 0 }, { region[0], region[1], 1 }, events, event); } #if CL_HPP_TARGET_OPENCL_VERSION >= 120 /** * Enqueue a command to fill an image object with a specified color. * \param fillColor is the color to use to fill the image. * This is a four component RGBA floating-point, signed integer * or unsigned integer color value if the image channel data * type is an unnormalized signed integer type. */ template typename std::enable_if::value || std::is_same::value || std::is_same::value, cl_int>::type enqueueFillImage( const Image& image, T fillColor, const array& origin, const array& region, const vector* events = nullptr, Event* event = nullptr) const { cl_event tmp; cl_int err = detail::errHandler( ::clEnqueueFillImage( object_, image(), static_cast(&fillColor), origin.data(), region.data(), (events != nullptr) ? (cl_uint)events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*)&events->front() : NULL, (event != NULL) ? &tmp : nullptr), __ENQUEUE_FILL_IMAGE_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } /** * Enqueue a command to fill an image object with a specified color. * \param fillColor is the color to use to fill the image. * This is a four component RGBA floating-point, signed integer * or unsigned integer color value if the image channel data * type is an unnormalized signed integer type. */ template typename std::enable_if::value || std::is_same::value || std::is_same::value, cl_int>::type enqueueFillImage( const Image& image, T fillColor, const array& origin, const array& region, const vector* events = nullptr, Event* event = nullptr) const { return enqueueFillImage( image, fillColor, { origin[0], origin[1], 0 }, { region[0], region[1], 1 }, events, event ); } #endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 cl_int enqueueCopyImageToBuffer( const Image& src, const Buffer& dst, const array& src_origin, const array& region, size_type dst_offset, const vector* events = nullptr, Event* event = nullptr) const { cl_event tmp; cl_int err = detail::errHandler( ::clEnqueueCopyImageToBuffer( object_, src(), dst(), src_origin.data(), region.data(), dst_offset, (events != nullptr) ? (cl_uint) events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*) &events->front() : nullptr, (event != nullptr) ? &tmp : nullptr), __ENQUEUE_COPY_IMAGE_TO_BUFFER_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } cl_int enqueueCopyImageToBuffer( const Image& src, const Buffer& dst, const array& src_origin, const array& region, size_type dst_offset, const vector* events = nullptr, Event* event = nullptr) const { return enqueueCopyImageToBuffer( src, dst, { src_origin[0], src_origin[1], 0 }, { region[0], region[1], 1 }, dst_offset, events, event); } cl_int enqueueCopyBufferToImage( const Buffer& src, const Image& dst, size_type src_offset, const array& dst_origin, const array& region, const vector* events = nullptr, Event* event = nullptr) const { cl_event tmp; cl_int err = detail::errHandler( ::clEnqueueCopyBufferToImage( object_, src(), dst(), src_offset, dst_origin.data(), region.data(), (events != nullptr) ? (cl_uint) events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*) &events->front() : nullptr, (event != nullptr) ? &tmp : nullptr), __ENQUEUE_COPY_BUFFER_TO_IMAGE_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } cl_int enqueueCopyBufferToImage( const Buffer& src, const Image& dst, size_type src_offset, const array& dst_origin, const array& region, const vector* events = nullptr, Event* event = nullptr) const { return enqueueCopyBufferToImage( src, dst, src_offset, { dst_origin[0], dst_origin[1], 0 }, { region[0], region[1], 1 }, events, event); } void* enqueueMapBuffer( const Buffer& buffer, cl_bool blocking, cl_map_flags flags, size_type offset, size_type size, const vector* events = nullptr, Event* event = nullptr, cl_int* err = nullptr) const { cl_event tmp; cl_int error; void * result = ::clEnqueueMapBuffer( object_, buffer(), blocking, flags, offset, size, (events != nullptr) ? (cl_uint) events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*) &events->front() : nullptr, (event != nullptr) ? &tmp : nullptr, &error); detail::errHandler(error, __ENQUEUE_MAP_BUFFER_ERR); if (err != nullptr) { *err = error; } if (event != nullptr && error == CL_SUCCESS) *event = tmp; return result; } void* enqueueMapImage( const Image& image, cl_bool blocking, cl_map_flags flags, const array& origin, const array& region, size_type * row_pitch, size_type * slice_pitch, const vector* events = nullptr, Event* event = nullptr, cl_int* err = nullptr) const { cl_event tmp; cl_int error; void * result = ::clEnqueueMapImage( object_, image(), blocking, flags, origin.data(), region.data(), row_pitch, slice_pitch, (events != nullptr) ? (cl_uint) events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*) &events->front() : nullptr, (event != nullptr) ? &tmp : nullptr, &error); detail::errHandler(error, __ENQUEUE_MAP_IMAGE_ERR); if (err != nullptr) { *err = error; } if (event != nullptr && error == CL_SUCCESS) *event = tmp; return result; } void* enqueueMapImage( const Image& image, cl_bool blocking, cl_map_flags flags, const array& origin, const array& region, size_type* row_pitch, size_type* slice_pitch, const vector* events = nullptr, Event* event = nullptr, cl_int* err = nullptr) const { return enqueueMapImage(image, blocking, flags, { origin[0], origin[1], 0 }, { region[0], region[1], 1 }, row_pitch, slice_pitch, events, event, err); } #if CL_HPP_TARGET_OPENCL_VERSION >= 200 /** * Enqueues a command that will allow the host to update a region of a coarse-grained SVM buffer. * This variant takes a raw SVM pointer. */ template cl_int enqueueMapSVM( T* ptr, cl_bool blocking, cl_map_flags flags, size_type size, const vector* events = nullptr, Event* event = nullptr) const { cl_event tmp; cl_int err = detail::errHandler(::clEnqueueSVMMap( object_, blocking, flags, static_cast(ptr), size, (events != nullptr) ? (cl_uint)events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*)&events->front() : nullptr, (event != nullptr) ? &tmp : nullptr), __ENQUEUE_MAP_BUFFER_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } /** * Enqueues a command that will allow the host to update a region of a coarse-grained SVM buffer. * This variant takes a cl::pointer instance. */ template cl_int enqueueMapSVM( cl::pointer &ptr, cl_bool blocking, cl_map_flags flags, size_type size, const vector* events = nullptr, Event* event = nullptr) const { cl_event tmp; cl_int err = detail::errHandler(::clEnqueueSVMMap( object_, blocking, flags, static_cast(ptr.get()), size, (events != nullptr) ? (cl_uint)events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*)&events->front() : nullptr, (event != nullptr) ? &tmp : nullptr), __ENQUEUE_MAP_BUFFER_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } /** * Enqueues a command that will allow the host to update a region of a coarse-grained SVM buffer. * This variant takes a cl::vector instance. */ template cl_int enqueueMapSVM( cl::vector &container, cl_bool blocking, cl_map_flags flags, const vector* events = nullptr, Event* event = nullptr) const { cl_event tmp; cl_int err = detail::errHandler(::clEnqueueSVMMap( object_, blocking, flags, static_cast(container.data()), container.size()*sizeof(T), (events != nullptr) ? (cl_uint)events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*)&events->front() : nullptr, (event != nullptr) ? &tmp : nullptr), __ENQUEUE_MAP_BUFFER_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } #endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 200 cl_int enqueueUnmapMemObject( const Memory& memory, void* mapped_ptr, const vector* events = nullptr, Event* event = nullptr) const { cl_event tmp; cl_int err = detail::errHandler( ::clEnqueueUnmapMemObject( object_, memory(), mapped_ptr, (events != nullptr) ? (cl_uint) events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*) &events->front() : nullptr, (event != nullptr) ? &tmp : nullptr), __ENQUEUE_UNMAP_MEM_OBJECT_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } #if CL_HPP_TARGET_OPENCL_VERSION >= 200 /** * Enqueues a command that will release a coarse-grained SVM buffer back to the OpenCL runtime. * This variant takes a raw SVM pointer. */ template cl_int enqueueUnmapSVM( T* ptr, const vector* events = nullptr, Event* event = nullptr) const { cl_event tmp; cl_int err = detail::errHandler( ::clEnqueueSVMUnmap( object_, static_cast(ptr), (events != nullptr) ? (cl_uint)events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*)&events->front() : nullptr, (event != nullptr) ? &tmp : nullptr), __ENQUEUE_UNMAP_MEM_OBJECT_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } /** * Enqueues a command that will release a coarse-grained SVM buffer back to the OpenCL runtime. * This variant takes a cl::pointer instance. */ template cl_int enqueueUnmapSVM( cl::pointer &ptr, const vector* events = nullptr, Event* event = nullptr) const { cl_event tmp; cl_int err = detail::errHandler( ::clEnqueueSVMUnmap( object_, static_cast(ptr.get()), (events != nullptr) ? (cl_uint)events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*)&events->front() : nullptr, (event != nullptr) ? &tmp : nullptr), __ENQUEUE_UNMAP_MEM_OBJECT_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } /** * Enqueues a command that will release a coarse-grained SVM buffer back to the OpenCL runtime. * This variant takes a cl::vector instance. */ template cl_int enqueueUnmapSVM( cl::vector &container, const vector* events = nullptr, Event* event = nullptr) const { cl_event tmp; cl_int err = detail::errHandler( ::clEnqueueSVMUnmap( object_, static_cast(container.data()), (events != nullptr) ? (cl_uint)events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*)&events->front() : nullptr, (event != nullptr) ? &tmp : nullptr), __ENQUEUE_UNMAP_MEM_OBJECT_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } #endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 200 #if CL_HPP_TARGET_OPENCL_VERSION >= 120 /** * Enqueues a marker command which waits for either a list of events to complete, * or all previously enqueued commands to complete. * * Enqueues a marker command which waits for either a list of events to complete, * or if the list is empty it waits for all commands previously enqueued in command_queue * to complete before it completes. This command returns an event which can be waited on, * i.e. this event can be waited on to insure that all events either in the event_wait_list * or all previously enqueued commands, queued before this command to command_queue, * have completed. */ cl_int enqueueMarkerWithWaitList( const vector *events = nullptr, Event *event = nullptr) const { cl_event tmp; cl_int err = detail::errHandler( ::clEnqueueMarkerWithWaitList( object_, (events != nullptr) ? (cl_uint) events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*) &events->front() : nullptr, (event != nullptr) ? &tmp : nullptr), __ENQUEUE_MARKER_WAIT_LIST_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } /** * A synchronization point that enqueues a barrier operation. * * Enqueues a barrier command which waits for either a list of events to complete, * or if the list is empty it waits for all commands previously enqueued in command_queue * to complete before it completes. This command blocks command execution, that is, any * following commands enqueued after it do not execute until it completes. This command * returns an event which can be waited on, i.e. this event can be waited on to insure that * all events either in the event_wait_list or all previously enqueued commands, queued * before this command to command_queue, have completed. */ cl_int enqueueBarrierWithWaitList( const vector *events = nullptr, Event *event = nullptr) const { cl_event tmp; cl_int err = detail::errHandler( ::clEnqueueBarrierWithWaitList( object_, (events != nullptr) ? (cl_uint) events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*) &events->front() : nullptr, (event != nullptr) ? &tmp : nullptr), __ENQUEUE_BARRIER_WAIT_LIST_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } /** * Enqueues a command to indicate with which device a set of memory objects * should be associated. */ cl_int enqueueMigrateMemObjects( const vector &memObjects, cl_mem_migration_flags flags, const vector* events = nullptr, Event* event = nullptr ) const { cl_event tmp; vector localMemObjects(memObjects.size()); for( int i = 0; i < (int)memObjects.size(); ++i ) { localMemObjects[i] = memObjects[i](); } cl_int err = detail::errHandler( ::clEnqueueMigrateMemObjects( object_, (cl_uint)memObjects.size(), localMemObjects.data(), flags, (events != nullptr) ? (cl_uint) events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*) &events->front() : nullptr, (event != nullptr) ? &tmp : nullptr), __ENQUEUE_UNMAP_MEM_OBJECT_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } #endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 #if CL_HPP_TARGET_OPENCL_VERSION >= 210 /** * Enqueues a command that will allow the host associate ranges within a set of * SVM allocations with a device. * @param sizes - The length from each pointer to migrate. */ template cl_int enqueueMigrateSVM( const cl::vector &svmRawPointers, const cl::vector &sizes, cl_mem_migration_flags flags = 0, const vector* events = nullptr, Event* event = nullptr) const { cl_event tmp; cl_int err = detail::errHandler(::clEnqueueSVMMigrateMem( object_, svmRawPointers.size(), static_cast(svmRawPointers.data()), sizes.data(), // array of sizes not passed flags, (events != nullptr) ? (cl_uint)events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*)&events->front() : nullptr, (event != nullptr) ? &tmp : nullptr), __ENQUEUE_MIGRATE_SVM_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } /** * Enqueues a command that will allow the host associate a set of SVM allocations with * a device. */ template cl_int enqueueMigrateSVM( const cl::vector &svmRawPointers, cl_mem_migration_flags flags = 0, const vector* events = nullptr, Event* event = nullptr) const { return enqueueMigrateSVM(svmRawPointers, cl::vector(svmRawPointers.size()), flags, events, event); } /** * Enqueues a command that will allow the host associate ranges within a set of * SVM allocations with a device. * @param sizes - The length from each pointer to migrate. */ template cl_int enqueueMigrateSVM( const cl::vector> &svmPointers, const cl::vector &sizes, cl_mem_migration_flags flags = 0, const vector* events = nullptr, Event* event = nullptr) const { cl::vector svmRawPointers; svmRawPointers.reserve(svmPointers.size()); for (auto p : svmPointers) { svmRawPointers.push_back(static_cast(p.get())); } return enqueueMigrateSVM(svmRawPointers, sizes, flags, events, event); } /** * Enqueues a command that will allow the host associate a set of SVM allocations with * a device. */ template cl_int enqueueMigrateSVM( const cl::vector> &svmPointers, cl_mem_migration_flags flags = 0, const vector* events = nullptr, Event* event = nullptr) const { return enqueueMigrateSVM(svmPointers, cl::vector(svmPointers.size()), flags, events, event); } /** * Enqueues a command that will allow the host associate ranges within a set of * SVM allocations with a device. * @param sizes - The length from the beginning of each container to migrate. */ template cl_int enqueueMigrateSVM( const cl::vector> &svmContainers, const cl::vector &sizes, cl_mem_migration_flags flags = 0, const vector* events = nullptr, Event* event = nullptr) const { cl::vector svmRawPointers; svmRawPointers.reserve(svmContainers.size()); for (auto p : svmContainers) { svmRawPointers.push_back(static_cast(p.data())); } return enqueueMigrateSVM(svmRawPointers, sizes, flags, events, event); } /** * Enqueues a command that will allow the host associate a set of SVM allocations with * a device. */ template cl_int enqueueMigrateSVM( const cl::vector> &svmContainers, cl_mem_migration_flags flags = 0, const vector* events = nullptr, Event* event = nullptr) const { return enqueueMigrateSVM(svmContainers, cl::vector(svmContainers.size()), flags, events, event); } #endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 210 cl_int enqueueNDRangeKernel( const Kernel& kernel, const NDRange& offset, const NDRange& global, const NDRange& local = NullRange, const vector* events = nullptr, Event* event = nullptr) const { cl_event tmp; cl_int err = detail::errHandler( ::clEnqueueNDRangeKernel( object_, kernel(), (cl_uint) global.dimensions(), offset.dimensions() != 0 ? (const size_type*) offset : nullptr, (const size_type*) global, local.dimensions() != 0 ? (const size_type*) local : nullptr, (events != nullptr) ? (cl_uint) events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*) &events->front() : nullptr, (event != nullptr) ? &tmp : nullptr), __ENQUEUE_NDRANGE_KERNEL_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } #if defined(CL_USE_DEPRECATED_OPENCL_1_2_APIS) CL_API_PREFIX__VERSION_1_2_DEPRECATED cl_int enqueueTask( const Kernel& kernel, const vector* events = nullptr, Event* event = nullptr) const CL_API_SUFFIX__VERSION_1_2_DEPRECATED { cl_event tmp; cl_int err = detail::errHandler( ::clEnqueueTask( object_, kernel(), (events != nullptr) ? (cl_uint) events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*) &events->front() : nullptr, (event != nullptr) ? &tmp : nullptr), __ENQUEUE_TASK_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } #endif // #if defined(CL_USE_DEPRECATED_OPENCL_1_2_APIS) cl_int enqueueNativeKernel( void (CL_CALLBACK *userFptr)(void *), std::pair args, const vector* mem_objects = nullptr, const vector* mem_locs = nullptr, const vector* events = nullptr, Event* event = nullptr) const { cl_event tmp; cl_int err = detail::errHandler( ::clEnqueueNativeKernel( object_, userFptr, args.first, args.second, (mem_objects != nullptr) ? (cl_uint) mem_objects->size() : 0, (mem_objects->size() > 0 ) ? reinterpret_cast(mem_objects->data()) : nullptr, (mem_locs != nullptr && mem_locs->size() > 0) ? (const void **) &mem_locs->front() : nullptr, (events != nullptr) ? (cl_uint) events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*) &events->front() : nullptr, (event != nullptr) ? &tmp : nullptr), __ENQUEUE_NATIVE_KERNEL); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } /** * Deprecated APIs for 1.2 */ #if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_int enqueueMarker(Event* event = nullptr) const CL_API_SUFFIX__VERSION_1_1_DEPRECATED { cl_event tmp; cl_int err = detail::errHandler( ::clEnqueueMarker( object_, (event != nullptr) ? &tmp : nullptr), __ENQUEUE_MARKER_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_int enqueueWaitForEvents(const vector& events) const CL_API_SUFFIX__VERSION_1_1_DEPRECATED { return detail::errHandler( ::clEnqueueWaitForEvents( object_, (cl_uint) events.size(), events.size() > 0 ? (const cl_event*) &events.front() : nullptr), __ENQUEUE_WAIT_FOR_EVENTS_ERR); } #endif // defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) #if defined (CL_HPP_USE_DX_INTEROP) typedef CL_API_ENTRY cl_int (CL_API_CALL *PFN_clEnqueueAcquireD3D10ObjectsKHR)( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event); typedef CL_API_ENTRY cl_int (CL_API_CALL *PFN_clEnqueueReleaseD3D10ObjectsKHR)( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event); cl_int enqueueAcquireD3D10Objects( const vector* mem_objects = nullptr, const vector* events = nullptr, Event* event = nullptr) const { static PFN_clEnqueueAcquireD3D10ObjectsKHR pfn_clEnqueueAcquireD3D10ObjectsKHR = nullptr; #if CL_HPP_TARGET_OPENCL_VERSION >= 120 cl_context context = getInfo(); cl::Device device(getInfo()); cl_platform_id platform = device.getInfo(); CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clEnqueueAcquireD3D10ObjectsKHR); #endif #if CL_HPP_MINIMUM_OPENCL_VERSION < 120 CL_HPP_INIT_CL_EXT_FCN_PTR_(clEnqueueAcquireD3D10ObjectsKHR); #endif cl_event tmp; cl_int err = detail::errHandler( pfn_clEnqueueAcquireD3D10ObjectsKHR( object_, (mem_objects != nullptr) ? (cl_uint) mem_objects->size() : 0, (mem_objects != nullptr && mem_objects->size() > 0) ? (const cl_mem *) &mem_objects->front(): nullptr, (events != nullptr) ? (cl_uint) events->size() : 0, (events != nullptr) ? (cl_event*) &events->front() : nullptr, (event != nullptr) ? &tmp : nullptr), __ENQUEUE_ACQUIRE_GL_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } cl_int enqueueReleaseD3D10Objects( const vector* mem_objects = nullptr, const vector* events = nullptr, Event* event = nullptr) const { static PFN_clEnqueueReleaseD3D10ObjectsKHR pfn_clEnqueueReleaseD3D10ObjectsKHR = nullptr; #if CL_HPP_TARGET_OPENCL_VERSION >= 120 cl_context context = getInfo(); cl::Device device(getInfo()); cl_platform_id platform = device.getInfo(); CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clEnqueueReleaseD3D10ObjectsKHR); #endif #if CL_HPP_MINIMUM_OPENCL_VERSION < 120 CL_HPP_INIT_CL_EXT_FCN_PTR_(clEnqueueReleaseD3D10ObjectsKHR); #endif cl_event tmp; cl_int err = detail::errHandler( pfn_clEnqueueReleaseD3D10ObjectsKHR( object_, (mem_objects != nullptr) ? (cl_uint) mem_objects->size() : 0, (mem_objects != nullptr && mem_objects->size() > 0) ? (const cl_mem *) &mem_objects->front(): nullptr, (events != nullptr) ? (cl_uint) events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*) &events->front() : nullptr, (event != nullptr) ? &tmp : nullptr), __ENQUEUE_RELEASE_GL_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } #endif /** * Deprecated APIs for 1.2 */ #if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_int enqueueBarrier() const CL_API_SUFFIX__VERSION_1_1_DEPRECATED { return detail::errHandler( ::clEnqueueBarrier(object_), __ENQUEUE_BARRIER_ERR); } #endif // CL_USE_DEPRECATED_OPENCL_1_1_APIS cl_int flush() const { return detail::errHandler(::clFlush(object_), __FLUSH_ERR); } cl_int finish() const { return detail::errHandler(::clFinish(object_), __FINISH_ERR); } #ifdef cl_khr_external_memory cl_int enqueueAcquireExternalMemObjects( const vector& mem_objects, const vector* events_wait = nullptr, Event *event = nullptr) { cl_int err = CL_INVALID_OPERATION; cl_event tmp; std::call_once(ext_memory_initialized_, initMemoryExtension, this->getInfo()); if (pfn_clEnqueueAcquireExternalMemObjectsKHR) { err = pfn_clEnqueueAcquireExternalMemObjectsKHR( object_, static_cast(mem_objects.size()), (mem_objects.size() > 0) ? reinterpret_cast(mem_objects.data()) : nullptr, (events_wait != nullptr) ? static_cast(events_wait->size()) : 0, (events_wait != nullptr && events_wait->size() > 0) ? reinterpret_cast(events_wait->data()) : nullptr, &tmp); } detail::errHandler(err, __ENQUEUE_ACQUIRE_EXTERNAL_MEMORY_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } cl_int enqueueReleaseExternalMemObjects( const vector& mem_objects, const vector* events_wait = nullptr, Event *event = nullptr) { cl_int err = CL_INVALID_OPERATION; cl_event tmp; std::call_once(ext_memory_initialized_, initMemoryExtension, this->getInfo()); if (pfn_clEnqueueReleaseExternalMemObjectsKHR) { err = pfn_clEnqueueReleaseExternalMemObjectsKHR( object_, static_cast(mem_objects.size()), (mem_objects.size() > 0) ? reinterpret_cast(mem_objects.data()) : nullptr, (events_wait != nullptr) ? static_cast(events_wait->size()) : 0, (events_wait != nullptr && events_wait->size() > 0) ? reinterpret_cast(events_wait->data()) : nullptr, &tmp); } detail::errHandler(err, __ENQUEUE_RELEASE_EXTERNAL_MEMORY_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } #endif // cl_khr_external_memory && CL_HPP_TARGET_OPENCL_VERSION >= 300 #ifdef cl_khr_semaphore cl_int enqueueWaitSemaphores( const vector &sema_objects, const vector &sema_payloads = {}, const vector* events_wait_list = nullptr, Event *event = nullptr) const; cl_int enqueueSignalSemaphores( const vector &sema_objects, const vector& sema_payloads = {}, const vector* events_wait_list = nullptr, Event* event = nullptr); #endif // cl_khr_semaphore }; // CommandQueue #ifdef cl_khr_external_memory CL_HPP_DEFINE_STATIC_MEMBER_ std::once_flag CommandQueue::ext_memory_initialized_; #endif CL_HPP_DEFINE_STATIC_MEMBER_ std::once_flag CommandQueue::default_initialized_; CL_HPP_DEFINE_STATIC_MEMBER_ CommandQueue CommandQueue::default_; CL_HPP_DEFINE_STATIC_MEMBER_ cl_int CommandQueue::default_error_ = CL_SUCCESS; #if CL_HPP_TARGET_OPENCL_VERSION >= 200 enum class DeviceQueueProperties : cl_command_queue_properties { None = 0, Profiling = CL_QUEUE_PROFILING_ENABLE, }; inline DeviceQueueProperties operator|(DeviceQueueProperties lhs, DeviceQueueProperties rhs) { return static_cast(static_cast(lhs) | static_cast(rhs)); } /*! \class DeviceCommandQueue * \brief DeviceCommandQueue interface for device cl_command_queues. */ class DeviceCommandQueue : public detail::Wrapper { public: /*! * Trivial empty constructor to create a null queue. */ DeviceCommandQueue() { } /*! * Default construct device command queue on default context and device */ DeviceCommandQueue(DeviceQueueProperties properties, cl_int* err = nullptr) { cl_int error; cl::Context context = cl::Context::getDefault(); cl::Device device = cl::Device::getDefault(); cl_command_queue_properties mergedProperties = CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE | CL_QUEUE_ON_DEVICE | static_cast(properties); cl_queue_properties queue_properties[] = { CL_QUEUE_PROPERTIES, mergedProperties, 0 }; object_ = ::clCreateCommandQueueWithProperties( context(), device(), queue_properties, &error); detail::errHandler(error, __CREATE_COMMAND_QUEUE_WITH_PROPERTIES_ERR); if (err != nullptr) { *err = error; } } /*! * Create a device command queue for a specified device in the passed context. */ DeviceCommandQueue( const Context& context, const Device& device, DeviceQueueProperties properties = DeviceQueueProperties::None, cl_int* err = nullptr) { cl_int error; cl_command_queue_properties mergedProperties = CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE | CL_QUEUE_ON_DEVICE | static_cast(properties); cl_queue_properties queue_properties[] = { CL_QUEUE_PROPERTIES, mergedProperties, 0 }; object_ = ::clCreateCommandQueueWithProperties( context(), device(), queue_properties, &error); detail::errHandler(error, __CREATE_COMMAND_QUEUE_WITH_PROPERTIES_ERR); if (err != nullptr) { *err = error; } } /*! * Create a device command queue for a specified device in the passed context. */ DeviceCommandQueue( const Context& context, const Device& device, cl_uint queueSize, DeviceQueueProperties properties = DeviceQueueProperties::None, cl_int* err = nullptr) { cl_int error; cl_command_queue_properties mergedProperties = CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE | CL_QUEUE_ON_DEVICE | static_cast(properties); cl_queue_properties queue_properties[] = { CL_QUEUE_PROPERTIES, mergedProperties, CL_QUEUE_SIZE, queueSize, 0 }; object_ = ::clCreateCommandQueueWithProperties( context(), device(), queue_properties, &error); detail::errHandler(error, __CREATE_COMMAND_QUEUE_WITH_PROPERTIES_ERR); if (err != nullptr) { *err = error; } } /*! \brief Constructor from cl_command_queue - takes ownership. * * \param retainObject will cause the constructor to retain its cl object. * Defaults to false to maintain compatibility with * earlier versions. */ explicit DeviceCommandQueue(const cl_command_queue& commandQueue, bool retainObject = false) : detail::Wrapper(commandQueue, retainObject) { } DeviceCommandQueue& operator = (const cl_command_queue& rhs) { detail::Wrapper::operator=(rhs); return *this; } template cl_int getInfo(cl_command_queue_info name, T* param) const { return detail::errHandler( detail::getInfo( ::clGetCommandQueueInfo, object_, name, param), __GET_COMMAND_QUEUE_INFO_ERR); } template typename detail::param_traits::param_type getInfo(cl_int* err = nullptr) const { typename detail::param_traits< detail::cl_command_queue_info, name>::param_type param; cl_int result = getInfo(name, ¶m); if (err != nullptr) { *err = result; } return param; } /*! * Create a new default device command queue for the default device, * in the default context and of the default size. * If there is already a default queue for the specified device this * function will return the pre-existing queue. */ static DeviceCommandQueue makeDefault( cl_int *err = nullptr) { cl_int error; cl::Context context = cl::Context::getDefault(); cl::Device device = cl::Device::getDefault(); cl_command_queue_properties properties = CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE | CL_QUEUE_ON_DEVICE | CL_QUEUE_ON_DEVICE_DEFAULT; cl_queue_properties queue_properties[] = { CL_QUEUE_PROPERTIES, properties, 0 }; DeviceCommandQueue deviceQueue( ::clCreateCommandQueueWithProperties( context(), device(), queue_properties, &error)); detail::errHandler(error, __CREATE_COMMAND_QUEUE_WITH_PROPERTIES_ERR); if (err != nullptr) { *err = error; } return deviceQueue; } /*! * Create a new default device command queue for the specified device * and of the default size. * If there is already a default queue for the specified device this * function will return the pre-existing queue. */ static DeviceCommandQueue makeDefault( const Context &context, const Device &device, cl_int *err = nullptr) { cl_int error; cl_command_queue_properties properties = CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE | CL_QUEUE_ON_DEVICE | CL_QUEUE_ON_DEVICE_DEFAULT; cl_queue_properties queue_properties[] = { CL_QUEUE_PROPERTIES, properties, 0 }; DeviceCommandQueue deviceQueue( ::clCreateCommandQueueWithProperties( context(), device(), queue_properties, &error)); detail::errHandler(error, __CREATE_COMMAND_QUEUE_WITH_PROPERTIES_ERR); if (err != nullptr) { *err = error; } return deviceQueue; } /*! * Create a new default device command queue for the specified device * and of the requested size in bytes. * If there is already a default queue for the specified device this * function will return the pre-existing queue. */ static DeviceCommandQueue makeDefault( const Context &context, const Device &device, cl_uint queueSize, cl_int *err = nullptr) { cl_int error; cl_command_queue_properties properties = CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE | CL_QUEUE_ON_DEVICE | CL_QUEUE_ON_DEVICE_DEFAULT; cl_queue_properties queue_properties[] = { CL_QUEUE_PROPERTIES, properties, CL_QUEUE_SIZE, queueSize, 0 }; DeviceCommandQueue deviceQueue( ::clCreateCommandQueueWithProperties( context(), device(), queue_properties, &error)); detail::errHandler(error, __CREATE_COMMAND_QUEUE_WITH_PROPERTIES_ERR); if (err != nullptr) { *err = error; } return deviceQueue; } #if CL_HPP_TARGET_OPENCL_VERSION >= 210 /*! * Modify the default device command queue to be used for subsequent kernels. * This can update the default command queue for a device repeatedly to account * for kernels that rely on the default. * @return updated default device command queue. */ static DeviceCommandQueue updateDefault(const Context &context, const Device &device, const DeviceCommandQueue &default_queue, cl_int *err = nullptr) { cl_int error; error = clSetDefaultDeviceCommandQueue(context.get(), device.get(), default_queue.get()); detail::errHandler(error, __SET_DEFAULT_DEVICE_COMMAND_QUEUE_ERR); if (err != nullptr) { *err = error; } return default_queue; } /*! * Return the current default command queue for the specified command queue */ static DeviceCommandQueue getDefault(const CommandQueue &queue, cl_int * err = nullptr) { return queue.getInfo(err); } #endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 210 }; // DeviceCommandQueue namespace detail { // Specialization for device command queue template <> struct KernelArgumentHandler { static size_type size(const cl::DeviceCommandQueue&) { return sizeof(cl_command_queue); } static const cl_command_queue* ptr(const cl::DeviceCommandQueue& value) { return &(value()); } }; } // namespace detail #endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 200 template< typename IteratorType > Buffer::Buffer( const Context &context, IteratorType startIterator, IteratorType endIterator, bool readOnly, bool useHostPtr, cl_int* err) { typedef typename std::iterator_traits::value_type DataType; cl_int error; cl_mem_flags flags = 0; if( readOnly ) { flags |= CL_MEM_READ_ONLY; } else { flags |= CL_MEM_READ_WRITE; } if( useHostPtr ) { flags |= CL_MEM_USE_HOST_PTR; } size_type size = sizeof(DataType)*(endIterator - startIterator); if( useHostPtr ) { object_ = ::clCreateBuffer(context(), flags, size, const_cast(&*startIterator), &error); } else { object_ = ::clCreateBuffer(context(), flags, size, 0, &error); } detail::errHandler(error, __CREATE_BUFFER_ERR); if (err != nullptr) { *err = error; } if( !useHostPtr ) { CommandQueue queue(context, 0, &error); detail::errHandler(error, __CREATE_BUFFER_ERR); if (err != nullptr) { *err = error; } error = cl::copy(queue, startIterator, endIterator, *this); detail::errHandler(error, __CREATE_BUFFER_ERR); if (err != nullptr) { *err = error; } } } template< typename IteratorType > Buffer::Buffer( const CommandQueue &queue, IteratorType startIterator, IteratorType endIterator, bool readOnly, bool useHostPtr, cl_int* err) { typedef typename std::iterator_traits::value_type DataType; cl_int error; cl_mem_flags flags = 0; if (readOnly) { flags |= CL_MEM_READ_ONLY; } else { flags |= CL_MEM_READ_WRITE; } if (useHostPtr) { flags |= CL_MEM_USE_HOST_PTR; } size_type size = sizeof(DataType)*(endIterator - startIterator); Context context = queue.getInfo(); if (useHostPtr) { object_ = ::clCreateBuffer(context(), flags, size, const_cast(&*startIterator), &error); } else { object_ = ::clCreateBuffer(context(), flags, size, 0, &error); } detail::errHandler(error, __CREATE_BUFFER_ERR); if (err != nullptr) { *err = error; } if (!useHostPtr) { error = cl::copy(queue, startIterator, endIterator, *this); detail::errHandler(error, __CREATE_BUFFER_ERR); if (err != nullptr) { *err = error; } } } inline cl_int enqueueReadBuffer( const Buffer& buffer, cl_bool blocking, size_type offset, size_type size, void* ptr, const vector* events = nullptr, Event* event = nullptr) { cl_int error; CommandQueue queue = CommandQueue::getDefault(&error); if (error != CL_SUCCESS) { return error; } return queue.enqueueReadBuffer(buffer, blocking, offset, size, ptr, events, event); } inline cl_int enqueueWriteBuffer( const Buffer& buffer, cl_bool blocking, size_type offset, size_type size, const void* ptr, const vector* events = nullptr, Event* event = nullptr) { cl_int error; CommandQueue queue = CommandQueue::getDefault(&error); if (error != CL_SUCCESS) { return error; } return queue.enqueueWriteBuffer(buffer, blocking, offset, size, ptr, events, event); } inline void* enqueueMapBuffer( const Buffer& buffer, cl_bool blocking, cl_map_flags flags, size_type offset, size_type size, const vector* events = nullptr, Event* event = nullptr, cl_int* err = nullptr) { cl_int error; CommandQueue queue = CommandQueue::getDefault(&error); detail::errHandler(error, __ENQUEUE_MAP_BUFFER_ERR); if (err != nullptr) { *err = error; } void * result = ::clEnqueueMapBuffer( queue(), buffer(), blocking, flags, offset, size, (events != nullptr) ? (cl_uint) events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*) &events->front() : nullptr, (cl_event*) event, &error); detail::errHandler(error, __ENQUEUE_MAP_BUFFER_ERR); if (err != nullptr) { *err = error; } return result; } #if CL_HPP_TARGET_OPENCL_VERSION >= 200 /** * Enqueues to the default queue a command that will allow the host to * update a region of a coarse-grained SVM buffer. * This variant takes a raw SVM pointer. */ template inline cl_int enqueueMapSVM( T* ptr, cl_bool blocking, cl_map_flags flags, size_type size, const vector* events, Event* event) { cl_int error; CommandQueue queue = CommandQueue::getDefault(&error); if (error != CL_SUCCESS) { return detail::errHandler(error, __ENQUEUE_MAP_BUFFER_ERR); } return queue.enqueueMapSVM( ptr, blocking, flags, size, events, event); } /** * Enqueues to the default queue a command that will allow the host to * update a region of a coarse-grained SVM buffer. * This variant takes a cl::pointer instance. */ template inline cl_int enqueueMapSVM( cl::pointer &ptr, cl_bool blocking, cl_map_flags flags, size_type size, const vector* events = nullptr, Event* event = nullptr) { cl_int error; CommandQueue queue = CommandQueue::getDefault(&error); if (error != CL_SUCCESS) { return detail::errHandler(error, __ENQUEUE_MAP_BUFFER_ERR); } return queue.enqueueMapSVM( ptr, blocking, flags, size, events, event); } /** * Enqueues to the default queue a command that will allow the host to * update a region of a coarse-grained SVM buffer. * This variant takes a cl::vector instance. */ template inline cl_int enqueueMapSVM( cl::vector &container, cl_bool blocking, cl_map_flags flags, const vector* events = nullptr, Event* event = nullptr) { cl_int error; CommandQueue queue = CommandQueue::getDefault(&error); if (error != CL_SUCCESS) { return detail::errHandler(error, __ENQUEUE_MAP_BUFFER_ERR); } return queue.enqueueMapSVM( container, blocking, flags, events, event); } #endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 200 inline cl_int enqueueUnmapMemObject( const Memory& memory, void* mapped_ptr, const vector* events = nullptr, Event* event = nullptr) { cl_int error; CommandQueue queue = CommandQueue::getDefault(&error); detail::errHandler(error, __ENQUEUE_MAP_BUFFER_ERR); if (error != CL_SUCCESS) { return error; } cl_event tmp; cl_int err = detail::errHandler( ::clEnqueueUnmapMemObject( queue(), memory(), mapped_ptr, (events != nullptr) ? (cl_uint)events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*)&events->front() : nullptr, (event != nullptr) ? &tmp : nullptr), __ENQUEUE_UNMAP_MEM_OBJECT_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } #if CL_HPP_TARGET_OPENCL_VERSION >= 200 /** * Enqueues to the default queue a command that will release a coarse-grained * SVM buffer back to the OpenCL runtime. * This variant takes a raw SVM pointer. */ template inline cl_int enqueueUnmapSVM( T* ptr, const vector* events = nullptr, Event* event = nullptr) { cl_int error; CommandQueue queue = CommandQueue::getDefault(&error); if (error != CL_SUCCESS) { return detail::errHandler(error, __ENQUEUE_UNMAP_MEM_OBJECT_ERR); } return detail::errHandler(queue.enqueueUnmapSVM(ptr, events, event), __ENQUEUE_UNMAP_MEM_OBJECT_ERR); } /** * Enqueues to the default queue a command that will release a coarse-grained * SVM buffer back to the OpenCL runtime. * This variant takes a cl::pointer instance. */ template inline cl_int enqueueUnmapSVM( cl::pointer &ptr, const vector* events = nullptr, Event* event = nullptr) { cl_int error; CommandQueue queue = CommandQueue::getDefault(&error); if (error != CL_SUCCESS) { return detail::errHandler(error, __ENQUEUE_UNMAP_MEM_OBJECT_ERR); } return detail::errHandler(queue.enqueueUnmapSVM(ptr, events, event), __ENQUEUE_UNMAP_MEM_OBJECT_ERR); } /** * Enqueues to the default queue a command that will release a coarse-grained * SVM buffer back to the OpenCL runtime. * This variant takes a cl::vector instance. */ template inline cl_int enqueueUnmapSVM( cl::vector &container, const vector* events = nullptr, Event* event = nullptr) { cl_int error; CommandQueue queue = CommandQueue::getDefault(&error); if (error != CL_SUCCESS) { return detail::errHandler(error, __ENQUEUE_UNMAP_MEM_OBJECT_ERR); } return detail::errHandler(queue.enqueueUnmapSVM(container, events, event), __ENQUEUE_UNMAP_MEM_OBJECT_ERR); } #endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 200 inline cl_int enqueueCopyBuffer( const Buffer& src, const Buffer& dst, size_type src_offset, size_type dst_offset, size_type size, const vector* events = nullptr, Event* event = nullptr) { cl_int error; CommandQueue queue = CommandQueue::getDefault(&error); if (error != CL_SUCCESS) { return error; } return queue.enqueueCopyBuffer(src, dst, src_offset, dst_offset, size, events, event); } /** * Blocking copy operation between iterators and a buffer. * Host to Device. * Uses default command queue. */ template< typename IteratorType > inline cl_int copy( IteratorType startIterator, IteratorType endIterator, cl::Buffer &buffer ) { cl_int error; CommandQueue queue = CommandQueue::getDefault(&error); if (error != CL_SUCCESS) return error; return cl::copy(queue, startIterator, endIterator, buffer); } /** * Blocking copy operation between iterators and a buffer. * Device to Host. * Uses default command queue. */ template< typename IteratorType > inline cl_int copy( const cl::Buffer &buffer, IteratorType startIterator, IteratorType endIterator ) { cl_int error; CommandQueue queue = CommandQueue::getDefault(&error); if (error != CL_SUCCESS) return error; return cl::copy(queue, buffer, startIterator, endIterator); } /** * Blocking copy operation between iterators and a buffer. * Host to Device. * Uses specified queue. */ template< typename IteratorType > inline cl_int copy( const CommandQueue &queue, IteratorType startIterator, IteratorType endIterator, cl::Buffer &buffer ) { typedef typename std::iterator_traits::value_type DataType; cl_int error; size_type length = endIterator-startIterator; size_type byteLength = length*sizeof(DataType); DataType *pointer = static_cast(queue.enqueueMapBuffer(buffer, CL_TRUE, CL_MAP_WRITE, 0, byteLength, 0, 0, &error)); // if exceptions enabled, enqueueMapBuffer will throw if( error != CL_SUCCESS ) { return error; } #if defined(_MSC_VER) std::copy( startIterator, endIterator, stdext::checked_array_iterator( pointer, length)); #else std::copy(startIterator, endIterator, pointer); #endif Event endEvent; error = queue.enqueueUnmapMemObject(buffer, pointer, 0, &endEvent); // if exceptions enabled, enqueueUnmapMemObject will throw if( error != CL_SUCCESS ) { return error; } endEvent.wait(); return CL_SUCCESS; } /** * Blocking copy operation between iterators and a buffer. * Device to Host. * Uses specified queue. */ template< typename IteratorType > inline cl_int copy( const CommandQueue &queue, const cl::Buffer &buffer, IteratorType startIterator, IteratorType endIterator ) { typedef typename std::iterator_traits::value_type DataType; cl_int error; size_type length = endIterator-startIterator; size_type byteLength = length*sizeof(DataType); DataType *pointer = static_cast(queue.enqueueMapBuffer(buffer, CL_TRUE, CL_MAP_READ, 0, byteLength, 0, 0, &error)); // if exceptions enabled, enqueueMapBuffer will throw if( error != CL_SUCCESS ) { return error; } std::copy(pointer, pointer + length, startIterator); Event endEvent; error = queue.enqueueUnmapMemObject(buffer, pointer, 0, &endEvent); // if exceptions enabled, enqueueUnmapMemObject will throw if( error != CL_SUCCESS ) { return error; } endEvent.wait(); return CL_SUCCESS; } #if CL_HPP_TARGET_OPENCL_VERSION >= 200 /** * Blocking SVM map operation - performs a blocking map underneath. */ template inline cl_int mapSVM(cl::vector &container) { return enqueueMapSVM(container, CL_TRUE, CL_MAP_READ | CL_MAP_WRITE); } /** * Blocking SVM map operation - performs a blocking map underneath. */ template inline cl_int unmapSVM(cl::vector &container) { return enqueueUnmapSVM(container); } #endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 200 #if CL_HPP_TARGET_OPENCL_VERSION >= 110 inline cl_int enqueueReadBufferRect( const Buffer& buffer, cl_bool blocking, const array& buffer_offset, const array& host_offset, const array& region, size_type buffer_row_pitch, size_type buffer_slice_pitch, size_type host_row_pitch, size_type host_slice_pitch, void *ptr, const vector* events = nullptr, Event* event = nullptr) { cl_int error; CommandQueue queue = CommandQueue::getDefault(&error); if (error != CL_SUCCESS) { return error; } return queue.enqueueReadBufferRect( buffer, blocking, buffer_offset, host_offset, region, buffer_row_pitch, buffer_slice_pitch, host_row_pitch, host_slice_pitch, ptr, events, event); } inline cl_int enqueueReadBufferRect( const Buffer& buffer, cl_bool blocking, const array& buffer_offset, const array& host_offset, const array& region, size_type buffer_row_pitch, size_type buffer_slice_pitch, size_type host_row_pitch, size_type host_slice_pitch, void* ptr, const vector* events = nullptr, Event* event = nullptr) { return enqueueReadBufferRect( buffer, blocking, { buffer_offset[0], buffer_offset[1], 0 }, { host_offset[0], host_offset[1], 0 }, { region[0], region[1], 1 }, buffer_row_pitch, buffer_slice_pitch, host_row_pitch, host_slice_pitch, ptr, events, event); } inline cl_int enqueueWriteBufferRect( const Buffer& buffer, cl_bool blocking, const array& buffer_offset, const array& host_offset, const array& region, size_type buffer_row_pitch, size_type buffer_slice_pitch, size_type host_row_pitch, size_type host_slice_pitch, const void *ptr, const vector* events = nullptr, Event* event = nullptr) { cl_int error; CommandQueue queue = CommandQueue::getDefault(&error); if (error != CL_SUCCESS) { return error; } return queue.enqueueWriteBufferRect( buffer, blocking, buffer_offset, host_offset, region, buffer_row_pitch, buffer_slice_pitch, host_row_pitch, host_slice_pitch, ptr, events, event); } inline cl_int enqueueWriteBufferRect( const Buffer& buffer, cl_bool blocking, const array& buffer_offset, const array& host_offset, const array& region, size_type buffer_row_pitch, size_type buffer_slice_pitch, size_type host_row_pitch, size_type host_slice_pitch, const void* ptr, const vector* events = nullptr, Event* event = nullptr) { return enqueueWriteBufferRect( buffer, blocking, { buffer_offset[0], buffer_offset[1], 0 }, { host_offset[0], host_offset[1], 0 }, { region[0], region[1], 1 }, buffer_row_pitch, buffer_slice_pitch, host_row_pitch, host_slice_pitch, ptr, events, event); } inline cl_int enqueueCopyBufferRect( const Buffer& src, const Buffer& dst, const array& src_origin, const array& dst_origin, const array& region, size_type src_row_pitch, size_type src_slice_pitch, size_type dst_row_pitch, size_type dst_slice_pitch, const vector* events = nullptr, Event* event = nullptr) { cl_int error; CommandQueue queue = CommandQueue::getDefault(&error); if (error != CL_SUCCESS) { return error; } return queue.enqueueCopyBufferRect( src, dst, src_origin, dst_origin, region, src_row_pitch, src_slice_pitch, dst_row_pitch, dst_slice_pitch, events, event); } inline cl_int enqueueCopyBufferRect( const Buffer& src, const Buffer& dst, const array& src_origin, const array& dst_origin, const array& region, size_type src_row_pitch, size_type src_slice_pitch, size_type dst_row_pitch, size_type dst_slice_pitch, const vector* events = nullptr, Event* event = nullptr) { return enqueueCopyBufferRect( src, dst, { src_origin[0], src_origin[1], 0 }, { dst_origin[0], dst_origin[1], 0 }, { region[0], region[1], 1 }, src_row_pitch, src_slice_pitch, dst_row_pitch, dst_slice_pitch, events, event); } #endif // CL_HPP_TARGET_OPENCL_VERSION >= 110 inline cl_int enqueueReadImage( const Image& image, cl_bool blocking, const array& origin, const array& region, size_type row_pitch, size_type slice_pitch, void* ptr, const vector* events = nullptr, Event* event = nullptr) { cl_int error; CommandQueue queue = CommandQueue::getDefault(&error); if (error != CL_SUCCESS) { return error; } return queue.enqueueReadImage( image, blocking, origin, region, row_pitch, slice_pitch, ptr, events, event); } inline cl_int enqueueReadImage( const Image& image, cl_bool blocking, const array& origin, const array& region, size_type row_pitch, size_type slice_pitch, void* ptr, const vector* events = nullptr, Event* event = nullptr) { return enqueueReadImage( image, blocking, { origin[0], origin[1], 0 }, { region[0], region[1], 1 }, row_pitch, slice_pitch, ptr, events, event); } inline cl_int enqueueWriteImage( const Image& image, cl_bool blocking, const array& origin, const array& region, size_type row_pitch, size_type slice_pitch, const void* ptr, const vector* events = nullptr, Event* event = nullptr) { cl_int error; CommandQueue queue = CommandQueue::getDefault(&error); if (error != CL_SUCCESS) { return error; } return queue.enqueueWriteImage( image, blocking, origin, region, row_pitch, slice_pitch, ptr, events, event); } inline cl_int enqueueWriteImage( const Image& image, cl_bool blocking, const array& origin, const array& region, size_type row_pitch, size_type slice_pitch, const void* ptr, const vector* events = nullptr, Event* event = nullptr) { return enqueueWriteImage( image, blocking, { origin[0], origin[1], 0 }, { region[0], region[1], 1 }, row_pitch, slice_pitch, ptr, events, event); } inline cl_int enqueueCopyImage( const Image& src, const Image& dst, const array& src_origin, const array& dst_origin, const array& region, const vector* events = nullptr, Event* event = nullptr) { cl_int error; CommandQueue queue = CommandQueue::getDefault(&error); if (error != CL_SUCCESS) { return error; } return queue.enqueueCopyImage( src, dst, src_origin, dst_origin, region, events, event); } inline cl_int enqueueCopyImage( const Image& src, const Image& dst, const array& src_origin, const array& dst_origin, const array& region, const vector* events = nullptr, Event* event = nullptr) { return enqueueCopyImage( src, dst, { src_origin[0], src_origin[1], 0 }, { dst_origin[0], dst_origin[1], 0 }, { region[0], region[1], 1 }, events, event); } inline cl_int enqueueCopyImageToBuffer( const Image& src, const Buffer& dst, const array& src_origin, const array& region, size_type dst_offset, const vector* events = nullptr, Event* event = nullptr) { cl_int error; CommandQueue queue = CommandQueue::getDefault(&error); if (error != CL_SUCCESS) { return error; } return queue.enqueueCopyImageToBuffer( src, dst, src_origin, region, dst_offset, events, event); } inline cl_int enqueueCopyImageToBuffer( const Image& src, const Buffer& dst, const array& src_origin, const array& region, size_type dst_offset, const vector* events = nullptr, Event* event = nullptr) { return enqueueCopyImageToBuffer( src, dst, { src_origin[0], src_origin[1], 0 }, { region[0], region[1], 1 }, dst_offset, events, event); } inline cl_int enqueueCopyBufferToImage( const Buffer& src, const Image& dst, size_type src_offset, const array& dst_origin, const array& region, const vector* events = nullptr, Event* event = nullptr) { cl_int error; CommandQueue queue = CommandQueue::getDefault(&error); if (error != CL_SUCCESS) { return error; } return queue.enqueueCopyBufferToImage( src, dst, src_offset, dst_origin, region, events, event); } inline cl_int enqueueCopyBufferToImage( const Buffer& src, const Image& dst, size_type src_offset, const array& dst_origin, const array& region, const vector* events = nullptr, Event* event = nullptr) { cl_int error; CommandQueue queue = CommandQueue::getDefault(&error); if (error != CL_SUCCESS) { return error; } return enqueueCopyBufferToImage( src, dst, src_offset, { dst_origin[0], dst_origin[1], 0 }, { region[0], region[1], 1 }, events, event); } inline cl_int flush(void) { cl_int error; CommandQueue queue = CommandQueue::getDefault(&error); if (error != CL_SUCCESS) { return error; } return queue.flush(); } inline cl_int finish(void) { cl_int error; CommandQueue queue = CommandQueue::getDefault(&error); if (error != CL_SUCCESS) { return error; } return queue.finish(); } class EnqueueArgs { private: CommandQueue queue_; const NDRange offset_; const NDRange global_; const NDRange local_; vector events_; template friend class KernelFunctor; public: EnqueueArgs(NDRange global) : queue_(CommandQueue::getDefault()), offset_(NullRange), global_(global), local_(NullRange) { } EnqueueArgs(NDRange global, NDRange local) : queue_(CommandQueue::getDefault()), offset_(NullRange), global_(global), local_(local) { } EnqueueArgs(NDRange offset, NDRange global, NDRange local) : queue_(CommandQueue::getDefault()), offset_(offset), global_(global), local_(local) { } EnqueueArgs(Event e, NDRange global) : queue_(CommandQueue::getDefault()), offset_(NullRange), global_(global), local_(NullRange) { events_.push_back(e); } EnqueueArgs(Event e, NDRange global, NDRange local) : queue_(CommandQueue::getDefault()), offset_(NullRange), global_(global), local_(local) { events_.push_back(e); } EnqueueArgs(Event e, NDRange offset, NDRange global, NDRange local) : queue_(CommandQueue::getDefault()), offset_(offset), global_(global), local_(local) { events_.push_back(e); } EnqueueArgs(const vector &events, NDRange global) : queue_(CommandQueue::getDefault()), offset_(NullRange), global_(global), local_(NullRange), events_(events) { } EnqueueArgs(const vector &events, NDRange global, NDRange local) : queue_(CommandQueue::getDefault()), offset_(NullRange), global_(global), local_(local), events_(events) { } EnqueueArgs(const vector &events, NDRange offset, NDRange global, NDRange local) : queue_(CommandQueue::getDefault()), offset_(offset), global_(global), local_(local), events_(events) { } EnqueueArgs(CommandQueue &queue, NDRange global) : queue_(queue), offset_(NullRange), global_(global), local_(NullRange) { } EnqueueArgs(CommandQueue &queue, NDRange global, NDRange local) : queue_(queue), offset_(NullRange), global_(global), local_(local) { } EnqueueArgs(CommandQueue &queue, NDRange offset, NDRange global, NDRange local) : queue_(queue), offset_(offset), global_(global), local_(local) { } EnqueueArgs(CommandQueue &queue, Event e, NDRange global) : queue_(queue), offset_(NullRange), global_(global), local_(NullRange) { events_.push_back(e); } EnqueueArgs(CommandQueue &queue, Event e, NDRange global, NDRange local) : queue_(queue), offset_(NullRange), global_(global), local_(local) { events_.push_back(e); } EnqueueArgs(CommandQueue &queue, Event e, NDRange offset, NDRange global, NDRange local) : queue_(queue), offset_(offset), global_(global), local_(local) { events_.push_back(e); } EnqueueArgs(CommandQueue &queue, const vector &events, NDRange global) : queue_(queue), offset_(NullRange), global_(global), local_(NullRange), events_(events) { } EnqueueArgs(CommandQueue &queue, const vector &events, NDRange global, NDRange local) : queue_(queue), offset_(NullRange), global_(global), local_(local), events_(events) { } EnqueueArgs(CommandQueue &queue, const vector &events, NDRange offset, NDRange global, NDRange local) : queue_(queue), offset_(offset), global_(global), local_(local), events_(events) { } }; //---------------------------------------------------------------------------------------------- /** * Type safe kernel functor. * */ template class KernelFunctor { private: Kernel kernel_; template void setArgs(T0&& t0, T1s&&... t1s) { kernel_.setArg(index, t0); setArgs(std::forward(t1s)...); } template void setArgs(T0&& t0) { kernel_.setArg(index, t0); } template void setArgs() { } public: KernelFunctor(Kernel kernel) : kernel_(kernel) {} KernelFunctor( const Program& program, const string name, cl_int * err = nullptr) : kernel_(program, name.c_str(), err) {} //! \brief Return type of the functor typedef Event result_type; /** * Enqueue kernel. * @param args Launch parameters of the kernel. * @param t0... List of kernel arguments based on the template type of the functor. */ Event operator() ( const EnqueueArgs& args, Ts... ts) { Event event; setArgs<0>(std::forward(ts)...); args.queue_.enqueueNDRangeKernel( kernel_, args.offset_, args.global_, args.local_, &args.events_, &event); return event; } /** * Enqueue kernel with support for error code. * @param args Launch parameters of the kernel. * @param t0... List of kernel arguments based on the template type of the functor. * @param error Out parameter returning the error code from the execution. */ Event operator() ( const EnqueueArgs& args, Ts... ts, cl_int &error) { Event event; setArgs<0>(std::forward(ts)...); error = args.queue_.enqueueNDRangeKernel( kernel_, args.offset_, args.global_, args.local_, &args.events_, &event); return event; } #if CL_HPP_TARGET_OPENCL_VERSION >= 200 cl_int setSVMPointers(const vector &pointerList) { return kernel_.setSVMPointers(pointerList); } template cl_int setSVMPointers(const T0 &t0, T1s &... ts) { return kernel_.setSVMPointers(t0, ts...); } #endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 200 Kernel getKernel() { return kernel_; } }; namespace compatibility { /** * Backward compatibility class to ensure that cl.hpp code works with opencl.hpp. * Please use KernelFunctor directly. */ template struct make_kernel { typedef KernelFunctor FunctorType; FunctorType functor_; make_kernel( const Program& program, const string name, cl_int * err = nullptr) : functor_(FunctorType(program, name, err)) {} make_kernel( const Kernel kernel) : functor_(FunctorType(kernel)) {} //! \brief Return type of the functor typedef Event result_type; //! \brief Function signature of kernel functor with no event dependency. typedef Event type_( const EnqueueArgs&, Ts...); Event operator()( const EnqueueArgs& enqueueArgs, Ts... args) { return functor_( enqueueArgs, args...); } }; } // namespace compatibility #ifdef cl_khr_semaphore class Semaphore : public detail::Wrapper { public: Semaphore() : detail::Wrapper() {} Semaphore( const Context &context, const vector& sema_props, cl_int *err = nullptr) { /* initialization of addresses to extension functions (it is done only once) */ std::call_once(ext_init_, initExtensions, context); cl_int error = CL_INVALID_OPERATION; if (pfn_clCreateSemaphoreWithPropertiesKHR) { object_ = pfn_clCreateSemaphoreWithPropertiesKHR( context(), sema_props.data(), &error); } detail::errHandler(error, __CREATE_SEMAPHORE_KHR_WITH_PROPERTIES_ERR); if (err != nullptr) { *err = error; } } Semaphore( const vector& sema_props, cl_int* err = nullptr):Semaphore(Context::getDefault(err), sema_props, err) {} explicit Semaphore(const cl_semaphore_khr& semaphore, bool retainObject = false) : detail::Wrapper(semaphore, retainObject) {} Semaphore& operator = (const cl_semaphore_khr& rhs) { detail::Wrapper::operator=(rhs); return *this; } template cl_int getInfo(cl_semaphore_info_khr name, T* param) const { if (pfn_clGetSemaphoreInfoKHR == nullptr) { return detail::errHandler(CL_INVALID_OPERATION, __GET_SEMAPHORE_KHR_INFO_ERR); } return detail::errHandler( detail::getInfo(&pfn_clGetSemaphoreInfoKHR, object_, name, param), __GET_SEMAPHORE_KHR_INFO_ERR); } template typename detail::param_traits::param_type getInfo(cl_int* err = nullptr) const { typename detail::param_traits< detail::cl_semaphore_info_khr, name>::param_type param; cl_int result = getInfo(name, ¶m); if (err != nullptr) { *err = result; } return param; } cl_int retain() { if (pfn_clRetainSemaphoreKHR == nullptr) { return detail::errHandler(CL_INVALID_OPERATION, __RETAIN_SEMAPHORE_KHR_ERR); } return pfn_clRetainSemaphoreKHR(object_); } cl_int release() { if (pfn_clReleaseSemaphoreKHR == nullptr) { return detail::errHandler(CL_INVALID_OPERATION, __RELEASE_SEMAPHORE_KHR_ERR); } return pfn_clReleaseSemaphoreKHR(object_); } private: static std::once_flag ext_init_; static void initExtensions(const Context& context) { #if CL_HPP_TARGET_OPENCL_VERSION >= 120 Device device = context.getInfo().at(0); cl_platform_id platform = device.getInfo(); CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clCreateSemaphoreWithPropertiesKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clReleaseSemaphoreKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clRetainSemaphoreKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clEnqueueWaitSemaphoresKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clEnqueueSignalSemaphoresKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clGetSemaphoreInfoKHR); #else CL_HPP_INIT_CL_EXT_FCN_PTR_(clCreateSemaphoreWithPropertiesKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_(clReleaseSemaphoreKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_(clRetainSemaphoreKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_(clEnqueueWaitSemaphoresKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_(clEnqueueSignalSemaphoresKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_(clGetSemaphoreInfoKHR); #endif if ((pfn_clCreateSemaphoreWithPropertiesKHR == nullptr) && (pfn_clReleaseSemaphoreKHR == nullptr) && (pfn_clRetainSemaphoreKHR == nullptr) && (pfn_clEnqueueWaitSemaphoresKHR == nullptr) && (pfn_clEnqueueSignalSemaphoresKHR == nullptr) && (pfn_clGetSemaphoreInfoKHR == nullptr)) { detail::errHandler(CL_INVALID_VALUE, __CREATE_SEMAPHORE_KHR_WITH_PROPERTIES_ERR); } } }; CL_HPP_DEFINE_STATIC_MEMBER_ std::once_flag Semaphore::ext_init_; inline cl_int CommandQueue::enqueueWaitSemaphores( const vector &sema_objects, const vector &sema_payloads, const vector* events_wait_list, Event *event) const { cl_event tmp; cl_int err = CL_INVALID_OPERATION; if (pfn_clEnqueueWaitSemaphoresKHR != nullptr) { err = pfn_clEnqueueWaitSemaphoresKHR( object_, (cl_uint)sema_objects.size(), (const cl_semaphore_khr *) &sema_objects.front(), (sema_payloads.size() > 0) ? &sema_payloads.front() : nullptr, (events_wait_list != nullptr) ? (cl_uint) events_wait_list->size() : 0, (events_wait_list != nullptr && events_wait_list->size() > 0) ? (cl_event*) &events_wait_list->front() : nullptr, (event != nullptr) ? &tmp : nullptr); } detail::errHandler(err, __ENQUEUE_WAIT_SEMAPHORE_KHR_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } inline cl_int CommandQueue::enqueueSignalSemaphores( const vector &sema_objects, const vector& sema_payloads, const vector* events_wait_list, Event* event) { cl_event tmp; cl_int err = CL_INVALID_OPERATION; if (pfn_clEnqueueSignalSemaphoresKHR != nullptr) { err = pfn_clEnqueueSignalSemaphoresKHR( object_, (cl_uint)sema_objects.size(), (const cl_semaphore_khr*) &sema_objects.front(), (sema_payloads.size() > 0) ? &sema_payloads.front() : nullptr, (events_wait_list != nullptr) ? (cl_uint) events_wait_list->size() : 0, (events_wait_list != nullptr && events_wait_list->size() > 0) ? (cl_event*) &events_wait_list->front() : nullptr, (event != nullptr) ? &tmp : nullptr); } detail::errHandler(err, __ENQUEUE_SIGNAL_SEMAPHORE_KHR_ERR); if (event != nullptr && err == CL_SUCCESS) *event = tmp; return err; } #endif // cl_khr_semaphore #if defined(cl_khr_command_buffer) /*! \class CommandBufferKhr * \brief CommandBufferKhr interface for cl_command_buffer_khr. */ class CommandBufferKhr : public detail::Wrapper { public: //! \brief Default constructor - initializes to nullptr. CommandBufferKhr() : detail::Wrapper() { } explicit CommandBufferKhr(const vector &queues, cl_command_buffer_properties_khr properties = 0, cl_int* errcode_ret = nullptr) { cl_command_buffer_properties_khr command_buffer_properties[] = { CL_COMMAND_BUFFER_FLAGS_KHR, properties, 0 }; /* initialization of addresses to extension functions (it is done only once) */ std::call_once(ext_init_, [&] { initExtensions(queues[0].getInfo()); }); cl_int error = CL_INVALID_OPERATION; static_assert(sizeof(cl::CommandQueue) == sizeof(cl_command_queue), "Size of cl::CommandQueue must be equal to size of cl_command_queue"); if (pfn_clCreateCommandBufferKHR) { object_ = pfn_clCreateCommandBufferKHR((cl_uint) queues.size(), (cl_command_queue *) &queues.front(), command_buffer_properties, &error); } detail::errHandler(error, __CREATE_COMMAND_BUFFER_KHR_ERR); if (errcode_ret != nullptr) { *errcode_ret = error; } } explicit CommandBufferKhr(const cl_command_buffer_khr& commandBufferKhr, bool retainObject = false) : detail::Wrapper(commandBufferKhr, retainObject) { } CommandBufferKhr& operator=(const cl_command_buffer_khr& rhs) { detail::Wrapper::operator=(rhs); return *this; } template cl_int getInfo(cl_command_buffer_info_khr name, T* param) const { if (pfn_clGetCommandBufferInfoKHR == nullptr) { return detail::errHandler(CL_INVALID_OPERATION, __GET_COMMAND_BUFFER_INFO_KHR_ERR); } return detail::errHandler( detail::getInfo(pfn_clGetCommandBufferInfoKHR, object_, name, param), __GET_COMMAND_BUFFER_INFO_KHR_ERR); } template typename detail::param_traits::param_type getInfo(cl_int* err = nullptr) const { typename detail::param_traits< detail::cl_command_buffer_info_khr, name>::param_type param; cl_int result = getInfo(name, ¶m); if (err != nullptr) { *err = result; } return param; } cl_int finalizeCommandBuffer() const { return detail::errHandler(::clFinalizeCommandBufferKHR(object_), __FINALIZE_COMMAND_BUFFER_KHR_ERR); } cl_int enqueueCommandBuffer(vector &queues, const vector* events = nullptr, Event* event = nullptr) { if (pfn_clEnqueueCommandBufferKHR == nullptr) { return detail::errHandler(CL_INVALID_OPERATION, __ENQUEUE_COMMAND_BUFFER_KHR_ERR); } static_assert(sizeof(cl::CommandQueue) == sizeof(cl_command_queue), "Size of cl::CommandQueue must be equal to size of cl_command_queue"); return detail::errHandler(pfn_clEnqueueCommandBufferKHR((cl_uint) queues.size(), (cl_command_queue *) &queues.front(), object_, (events != nullptr) ? (cl_uint) events->size() : 0, (events != nullptr && events->size() > 0) ? (cl_event*) &events->front() : nullptr, (cl_event*) event), __ENQUEUE_COMMAND_BUFFER_KHR_ERR); } cl_int commandBarrierWithWaitList(const vector* sync_points_vec = nullptr, cl_sync_point_khr* sync_point = nullptr, MutableCommandKhr* mutable_handle = nullptr, const CommandQueue* command_queue = nullptr) { if (pfn_clCommandBarrierWithWaitListKHR == nullptr) { return detail::errHandler(CL_INVALID_OPERATION, __COMMAND_BARRIER_WITH_WAIT_LIST_KHR_ERR); } cl_sync_point_khr tmp_sync_point; cl_int error = detail::errHandler( pfn_clCommandBarrierWithWaitListKHR(object_, (command_queue != nullptr) ? (*command_queue)() : nullptr, (sync_points_vec != nullptr) ? (cl_uint) sync_points_vec->size() : 0, (sync_points_vec != nullptr && sync_points_vec->size() > 0) ? &sync_points_vec->front() : nullptr, (sync_point != nullptr) ? &tmp_sync_point : nullptr, (cl_mutable_command_khr*) mutable_handle), __COMMAND_BARRIER_WITH_WAIT_LIST_KHR_ERR); if (sync_point != nullptr && error == CL_SUCCESS) *sync_point = tmp_sync_point; return error; } cl_int commandCopyBuffer(const Buffer& src, const Buffer& dst, size_type src_offset, size_type dst_offset, size_type size, const vector* sync_points_vec = nullptr, cl_sync_point_khr* sync_point = nullptr, MutableCommandKhr* mutable_handle = nullptr, const CommandQueue* command_queue = nullptr) { if (pfn_clCommandCopyBufferKHR == nullptr) { return detail::errHandler(CL_INVALID_OPERATION, __COMMAND_COPY_BUFFER_KHR_ERR); } cl_sync_point_khr tmp_sync_point; cl_int error = detail::errHandler( pfn_clCommandCopyBufferKHR(object_, (command_queue != nullptr) ? (*command_queue)() : nullptr, src(), dst(), src_offset, dst_offset, size, (sync_points_vec != nullptr) ? (cl_uint) sync_points_vec->size() : 0, (sync_points_vec != nullptr && sync_points_vec->size() > 0) ? &sync_points_vec->front() : nullptr, (sync_point != nullptr) ? &tmp_sync_point : nullptr, (cl_mutable_command_khr*) mutable_handle), __COMMAND_COPY_BUFFER_KHR_ERR); if (sync_point != nullptr && error == CL_SUCCESS) *sync_point = tmp_sync_point; return error; } cl_int commandCopyBufferRect(const Buffer& src, const Buffer& dst, const array& src_origin, const array& dst_origin, const array& region, size_type src_row_pitch, size_type src_slice_pitch, size_type dst_row_pitch, size_type dst_slice_pitch, const vector* sync_points_vec = nullptr, cl_sync_point_khr* sync_point = nullptr, MutableCommandKhr* mutable_handle = nullptr, const CommandQueue* command_queue = nullptr) { if (pfn_clCommandCopyBufferRectKHR == nullptr) { return detail::errHandler(CL_INVALID_OPERATION, __COMMAND_COPY_BUFFER_RECT_KHR_ERR); } cl_sync_point_khr tmp_sync_point; cl_int error = detail::errHandler( pfn_clCommandCopyBufferRectKHR(object_, (command_queue != nullptr) ? (*command_queue)() : nullptr, src(), dst(), src_origin.data(), dst_origin.data(), region.data(), src_row_pitch, src_slice_pitch, dst_row_pitch, dst_slice_pitch, (sync_points_vec != nullptr) ? (cl_uint) sync_points_vec->size() : 0, (sync_points_vec != nullptr && sync_points_vec->size() > 0) ? &sync_points_vec->front() : nullptr, (sync_point != nullptr) ? &tmp_sync_point : nullptr, (cl_mutable_command_khr*) mutable_handle), __COMMAND_COPY_BUFFER_RECT_KHR_ERR); if (sync_point != nullptr && error == CL_SUCCESS) *sync_point = tmp_sync_point; return error; } cl_int commandCopyBufferToImage(const Buffer& src, const Image& dst, size_type src_offset, const array& dst_origin, const array& region, const vector* sync_points_vec = nullptr, cl_sync_point_khr* sync_point = nullptr, MutableCommandKhr* mutable_handle = nullptr, const CommandQueue* command_queue = nullptr) { if (pfn_clCommandCopyBufferToImageKHR == nullptr) { return detail::errHandler(CL_INVALID_OPERATION, __COMMAND_COPY_BUFFER_TO_IMAGE_KHR_ERR); } cl_sync_point_khr tmp_sync_point; cl_int error = detail::errHandler( pfn_clCommandCopyBufferToImageKHR(object_, (command_queue != nullptr) ? (*command_queue)() : nullptr, src(), dst(), src_offset, dst_origin.data(), region.data(), (sync_points_vec != nullptr) ? (cl_uint) sync_points_vec->size() : 0, (sync_points_vec != nullptr && sync_points_vec->size() > 0) ? &sync_points_vec->front() : nullptr, (sync_point != nullptr) ? &tmp_sync_point : nullptr, (cl_mutable_command_khr*) mutable_handle), __COMMAND_COPY_BUFFER_TO_IMAGE_KHR_ERR); if (sync_point != nullptr && error == CL_SUCCESS) *sync_point = tmp_sync_point; return error; } cl_int commandCopyImage(const Image& src, const Image& dst, const array& src_origin, const array& dst_origin, const array& region, const vector* sync_points_vec = nullptr, cl_sync_point_khr* sync_point = nullptr, MutableCommandKhr* mutable_handle = nullptr, const CommandQueue* command_queue = nullptr) { if (pfn_clCommandCopyImageKHR == nullptr) { return detail::errHandler(CL_INVALID_OPERATION, __COMMAND_COPY_IMAGE_KHR_ERR); } cl_sync_point_khr tmp_sync_point; cl_int error = detail::errHandler( pfn_clCommandCopyImageKHR(object_, (command_queue != nullptr) ? (*command_queue)() : nullptr, src(), dst(), src_origin.data(), dst_origin.data(), region.data(), (sync_points_vec != nullptr) ? (cl_uint) sync_points_vec->size() : 0, (sync_points_vec != nullptr && sync_points_vec->size() > 0) ? &sync_points_vec->front() : nullptr, (sync_point != nullptr) ? &tmp_sync_point : nullptr, (cl_mutable_command_khr*) mutable_handle), __COMMAND_COPY_IMAGE_KHR_ERR); if (sync_point != nullptr && error == CL_SUCCESS) *sync_point = tmp_sync_point; return error; } cl_int commandCopyImageToBuffer(const Image& src, const Buffer& dst, const array& src_origin, const array& region, size_type dst_offset, const vector* sync_points_vec = nullptr, cl_sync_point_khr* sync_point = nullptr, MutableCommandKhr* mutable_handle = nullptr, const CommandQueue* command_queue = nullptr) { if (pfn_clCommandCopyImageToBufferKHR == nullptr) { return detail::errHandler(CL_INVALID_OPERATION, __COMMAND_COPY_IMAGE_TO_BUFFER_KHR_ERR); } cl_sync_point_khr tmp_sync_point; cl_int error = detail::errHandler( pfn_clCommandCopyImageToBufferKHR(object_, (command_queue != nullptr) ? (*command_queue)() : nullptr, src(), dst(), src_origin.data(), region.data(), dst_offset, (sync_points_vec != nullptr) ? (cl_uint) sync_points_vec->size() : 0, (sync_points_vec != nullptr && sync_points_vec->size() > 0) ? &sync_points_vec->front() : nullptr, (sync_point != nullptr) ? &tmp_sync_point : nullptr, (cl_mutable_command_khr*) mutable_handle), __COMMAND_COPY_IMAGE_TO_BUFFER_KHR_ERR); if (sync_point != nullptr && error == CL_SUCCESS) *sync_point = tmp_sync_point; return error; } template cl_int commandFillBuffer(const Buffer& buffer, PatternType pattern, size_type offset, size_type size, const vector* sync_points_vec = nullptr, cl_sync_point_khr* sync_point = nullptr, MutableCommandKhr* mutable_handle = nullptr, const CommandQueue* command_queue = nullptr) { if (pfn_clCommandFillBufferKHR == nullptr) { return detail::errHandler(CL_INVALID_OPERATION, __COMMAND_FILL_BUFFER_KHR_ERR); } cl_sync_point_khr tmp_sync_point; cl_int error = detail::errHandler( pfn_clCommandFillBufferKHR(object_, (command_queue != nullptr) ? (*command_queue)() : nullptr, buffer(), static_cast(&pattern), sizeof(PatternType), offset, size, (sync_points_vec != nullptr) ? (cl_uint) sync_points_vec->size() : 0, (sync_points_vec != nullptr && sync_points_vec->size() > 0) ? &sync_points_vec->front() : nullptr, (sync_point != nullptr) ? &tmp_sync_point : nullptr, (cl_mutable_command_khr*) mutable_handle), __COMMAND_FILL_BUFFER_KHR_ERR); if (sync_point != nullptr && error == CL_SUCCESS) *sync_point = tmp_sync_point; return error; } cl_int commandFillImage(const Image& image, cl_float4 fillColor, const array& origin, const array& region, const vector* sync_points_vec = nullptr, cl_sync_point_khr* sync_point = nullptr, MutableCommandKhr* mutable_handle = nullptr, const CommandQueue* command_queue = nullptr) { if (pfn_clCommandFillImageKHR == nullptr) { return detail::errHandler(CL_INVALID_OPERATION, __COMMAND_FILL_IMAGE_KHR_ERR); } cl_sync_point_khr tmp_sync_point; cl_int error = detail::errHandler( pfn_clCommandFillImageKHR(object_, (command_queue != nullptr) ? (*command_queue)() : nullptr, image(), static_cast(&fillColor), origin.data(), region.data(), (sync_points_vec != nullptr) ? (cl_uint) sync_points_vec->size() : 0, (sync_points_vec != nullptr && sync_points_vec->size() > 0) ? &sync_points_vec->front() : nullptr, (sync_point != nullptr) ? &tmp_sync_point : nullptr, (cl_mutable_command_khr*) mutable_handle), __COMMAND_FILL_IMAGE_KHR_ERR); if (sync_point != nullptr && error == CL_SUCCESS) *sync_point = tmp_sync_point; return error; } cl_int commandNDRangeKernel(const cl::vector &properties, const Kernel& kernel, const NDRange& offset, const NDRange& global, const NDRange& local = NullRange, const vector* sync_points_vec = nullptr, cl_sync_point_khr* sync_point = nullptr, MutableCommandKhr* mutable_handle = nullptr, const CommandQueue* command_queue = nullptr) { if (pfn_clCommandNDRangeKernelKHR == nullptr) { return detail::errHandler(CL_INVALID_OPERATION, __COMMAND_NDRANGE_KERNEL_KHR_ERR); } cl_sync_point_khr tmp_sync_point; cl_int error = detail::errHandler( pfn_clCommandNDRangeKernelKHR(object_, (command_queue != nullptr) ? (*command_queue)() : nullptr, &properties[0], kernel(), (cl_uint) global.dimensions(), offset.dimensions() != 0 ? (const size_type*) offset : nullptr, (const size_type*) global, local.dimensions() != 0 ? (const size_type*) local : nullptr, (sync_points_vec != nullptr) ? (cl_uint) sync_points_vec->size() : 0, (sync_points_vec != nullptr && sync_points_vec->size() > 0) ? &sync_points_vec->front() : nullptr, (sync_point != nullptr) ? &tmp_sync_point : nullptr, (cl_mutable_command_khr*) mutable_handle), __COMMAND_NDRANGE_KERNEL_KHR_ERR); if (sync_point != nullptr && error == CL_SUCCESS) *sync_point = tmp_sync_point; return error; } #if defined(cl_khr_command_buffer_mutable_dispatch) cl_int updateMutableCommands(const cl_mutable_base_config_khr* mutable_config) { if (pfn_clUpdateMutableCommandsKHR == nullptr) { return detail::errHandler(CL_INVALID_OPERATION, __UPDATE_MUTABLE_COMMANDS_KHR_ERR); } return detail::errHandler(pfn_clUpdateMutableCommandsKHR(object_, mutable_config), __UPDATE_MUTABLE_COMMANDS_KHR_ERR); } #endif /* cl_khr_command_buffer_mutable_dispatch */ private: static std::once_flag ext_init_; static void initExtensions(const cl::Device& device) { #if CL_HPP_TARGET_OPENCL_VERSION >= 120 cl_platform_id platform = device.getInfo(); CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clCreateCommandBufferKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clFinalizeCommandBufferKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clRetainCommandBufferKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clReleaseCommandBufferKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clGetCommandBufferInfoKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clEnqueueCommandBufferKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clCommandBarrierWithWaitListKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clCommandCopyBufferKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clCommandCopyBufferRectKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clCommandCopyBufferToImageKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clCommandCopyImageKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clCommandCopyImageToBufferKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clCommandFillBufferKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clCommandFillImageKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clCommandNDRangeKernelKHR); #if defined(cl_khr_command_buffer_mutable_dispatch) CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clUpdateMutableCommandsKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clGetMutableCommandInfoKHR); #endif /* cl_khr_command_buffer_mutable_dispatch */ #elif CL_HPP_TARGET_OPENCL_VERSION >= 110 CL_HPP_INIT_CL_EXT_FCN_PTR_(clCreateCommandBufferKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_(clFinalizeCommandBufferKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_(clRetainCommandBufferKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_(clReleaseCommandBufferKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_(clGetCommandBufferInfoKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_(clEnqueueCommandBufferKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_(clCommandBarrierWithWaitListKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_(clCommandCopyBufferKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_(clCommandCopyBufferRectKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_(clCommandCopyBufferToImageKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_(clCommandCopyImageKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_(clCommandCopyImageToBufferKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_(clCommandFillBufferKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_(clCommandFillImageKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_(clCommandNDRangeKernelKHR); #if defined(cl_khr_command_buffer_mutable_dispatch) CL_HPP_INIT_CL_EXT_FCN_PTR_(clUpdateMutableCommandsKHR); CL_HPP_INIT_CL_EXT_FCN_PTR_(clGetMutableCommandInfoKHR); #endif /* cl_khr_command_buffer_mutable_dispatch */ #endif if ((pfn_clCreateCommandBufferKHR == nullptr) && (pfn_clFinalizeCommandBufferKHR == nullptr) && (pfn_clRetainCommandBufferKHR == nullptr) && (pfn_clReleaseCommandBufferKHR == nullptr) && (pfn_clGetCommandBufferInfoKHR == nullptr) && (pfn_clEnqueueCommandBufferKHR == nullptr) && (pfn_clCommandBarrierWithWaitListKHR == nullptr) && (pfn_clCommandCopyBufferKHR == nullptr) && (pfn_clCommandCopyBufferRectKHR == nullptr) && (pfn_clCommandCopyBufferToImageKHR == nullptr) && (pfn_clCommandCopyImageKHR == nullptr) && (pfn_clCommandCopyImageToBufferKHR == nullptr) && (pfn_clCommandFillBufferKHR == nullptr) && (pfn_clCommandFillImageKHR == nullptr) && (pfn_clCommandNDRangeKernelKHR == nullptr) #if defined(cl_khr_command_buffer_mutable_dispatch) && (pfn_clUpdateMutableCommandsKHR == nullptr) && (pfn_clGetMutableCommandInfoKHR == nullptr) #endif /* cl_khr_command_buffer_mutable_dispatch */ ) { detail::errHandler(CL_INVALID_VALUE, __CREATE_COMMAND_BUFFER_KHR_ERR); } } }; // CommandBufferKhr CL_HPP_DEFINE_STATIC_MEMBER_ std::once_flag CommandBufferKhr::ext_init_; #if defined(cl_khr_command_buffer_mutable_dispatch) /*! \class MutableCommandKhr * \brief MutableCommandKhr interface for cl_mutable_command_khr. */ class MutableCommandKhr : public detail::Wrapper { public: //! \brief Default constructor - initializes to nullptr. MutableCommandKhr() : detail::Wrapper() { } explicit MutableCommandKhr(const cl_mutable_command_khr& mutableCommandKhr, bool retainObject = false) : detail::Wrapper(mutableCommandKhr, retainObject) { } MutableCommandKhr& operator=(const cl_mutable_command_khr& rhs) { detail::Wrapper::operator=(rhs); return *this; } template cl_int getInfo(cl_mutable_command_info_khr name, T* param) const { if (pfn_clGetMutableCommandInfoKHR == nullptr) { return detail::errHandler(CL_INVALID_OPERATION, __GET_MUTABLE_COMMAND_INFO_KHR_ERR); } return detail::errHandler( detail::getInfo(pfn_clGetMutableCommandInfoKHR, object_, name, param), __GET_MUTABLE_COMMAND_INFO_KHR_ERR); } template typename detail::param_traits::param_type getInfo(cl_int* err = nullptr) const { typename detail::param_traits< detail::cl_mutable_command_info_khr, name>::param_type param; cl_int result = getInfo(name, ¶m); if (err != nullptr) { *err = result; } return param; } }; // MutableCommandKhr #endif /* cl_khr_command_buffer_mutable_dispatch */ #endif // cl_khr_command_buffer //---------------------------------------------------------------------------------------------------------------------- #undef CL_HPP_ERR_STR_ #if !defined(CL_HPP_USER_OVERRIDE_ERROR_STRINGS) #undef __GET_DEVICE_INFO_ERR #undef __GET_PLATFORM_INFO_ERR #undef __GET_DEVICE_IDS_ERR #undef __GET_PLATFORM_IDS_ERR #undef __GET_CONTEXT_INFO_ERR #undef __GET_EVENT_INFO_ERR #undef __GET_EVENT_PROFILE_INFO_ERR #undef __GET_MEM_OBJECT_INFO_ERR #undef __GET_IMAGE_INFO_ERR #undef __GET_SAMPLER_INFO_ERR #undef __GET_KERNEL_INFO_ERR #undef __GET_KERNEL_ARG_INFO_ERR #undef __GET_KERNEL_SUB_GROUP_INFO_ERR #undef __GET_KERNEL_WORK_GROUP_INFO_ERR #undef __GET_PROGRAM_INFO_ERR #undef __GET_PROGRAM_BUILD_INFO_ERR #undef __GET_COMMAND_QUEUE_INFO_ERR #undef __CREATE_CONTEXT_ERR #undef __CREATE_CONTEXT_FROM_TYPE_ERR #undef __CREATE_COMMAND_BUFFER_KHR_ERR #undef __GET_COMMAND_BUFFER_INFO_KHR_ERR #undef __FINALIZE_COMMAND_BUFFER_KHR_ERR #undef __ENQUEUE_COMMAND_BUFFER_KHR_ERR #undef __COMMAND_BARRIER_WITH_WAIT_LIST_KHR_ERR #undef __COMMAND_COPY_BUFFER_KHR_ERR #undef __COMMAND_COPY_BUFFER_RECT_KHR_ERR #undef __COMMAND_COPY_BUFFER_TO_IMAGE_KHR_ERR #undef __COMMAND_COPY_IMAGE_KHR_ERR #undef __COMMAND_COPY_IMAGE_TO_BUFFER_KHR_ERR #undef __COMMAND_FILL_BUFFER_KHR_ERR #undef __COMMAND_FILL_IMAGE_KHR_ERR #undef __COMMAND_NDRANGE_KERNEL_KHR_ERR #undef __UPDATE_MUTABLE_COMMANDS_KHR_ERR #undef __GET_MUTABLE_COMMAND_INFO_KHR_ERR #undef __RETAIN_COMMAND_BUFFER_KHR_ERR #undef __RELEASE_COMMAND_BUFFER_KHR_ERR #undef __GET_SUPPORTED_IMAGE_FORMATS_ERR #undef __SET_CONTEXT_DESCTRUCTOR_CALLBACK_ERR #undef __CREATE_BUFFER_ERR #undef __COPY_ERR #undef __CREATE_SUBBUFFER_ERR #undef __CREATE_GL_BUFFER_ERR #undef __CREATE_GL_RENDER_BUFFER_ERR #undef __GET_GL_OBJECT_INFO_ERR #undef __CREATE_IMAGE_ERR #undef __CREATE_GL_TEXTURE_ERR #undef __IMAGE_DIMENSION_ERR #undef __SET_MEM_OBJECT_DESTRUCTOR_CALLBACK_ERR #undef __CREATE_USER_EVENT_ERR #undef __SET_USER_EVENT_STATUS_ERR #undef __SET_EVENT_CALLBACK_ERR #undef __WAIT_FOR_EVENTS_ERR #undef __CREATE_KERNEL_ERR #undef __SET_KERNEL_ARGS_ERR #undef __CREATE_PROGRAM_WITH_SOURCE_ERR #undef __CREATE_PROGRAM_WITH_BINARY_ERR #undef __CREATE_PROGRAM_WITH_IL_ERR #undef __CREATE_PROGRAM_WITH_BUILT_IN_KERNELS_ERR #undef __BUILD_PROGRAM_ERR #undef __COMPILE_PROGRAM_ERR #undef __LINK_PROGRAM_ERR #undef __CREATE_KERNELS_IN_PROGRAM_ERR #undef __CREATE_COMMAND_QUEUE_WITH_PROPERTIES_ERR #undef __CREATE_SAMPLER_WITH_PROPERTIES_ERR #undef __SET_COMMAND_QUEUE_PROPERTY_ERR #undef __ENQUEUE_READ_BUFFER_ERR #undef __ENQUEUE_READ_BUFFER_RECT_ERR #undef __ENQUEUE_WRITE_BUFFER_ERR #undef __ENQUEUE_WRITE_BUFFER_RECT_ERR #undef __ENQEUE_COPY_BUFFER_ERR #undef __ENQEUE_COPY_BUFFER_RECT_ERR #undef __ENQUEUE_FILL_BUFFER_ERR #undef __ENQUEUE_READ_IMAGE_ERR #undef __ENQUEUE_WRITE_IMAGE_ERR #undef __ENQUEUE_COPY_IMAGE_ERR #undef __ENQUEUE_FILL_IMAGE_ERR #undef __ENQUEUE_COPY_IMAGE_TO_BUFFER_ERR #undef __ENQUEUE_COPY_BUFFER_TO_IMAGE_ERR #undef __ENQUEUE_MAP_BUFFER_ERR #undef __ENQUEUE_MAP_IMAGE_ERR #undef __ENQUEUE_UNMAP_MEM_OBJECT_ERR #undef __ENQUEUE_NDRANGE_KERNEL_ERR #undef __ENQUEUE_NATIVE_KERNEL #undef __ENQUEUE_MIGRATE_MEM_OBJECTS_ERR #undef __ENQUEUE_MIGRATE_SVM_ERR #undef __ENQUEUE_ACQUIRE_GL_ERR #undef __ENQUEUE_RELEASE_GL_ERR #undef __CREATE_PIPE_ERR #undef __GET_PIPE_INFO_ERR #undef __RETAIN_ERR #undef __RELEASE_ERR #undef __FLUSH_ERR #undef __FINISH_ERR #undef __VECTOR_CAPACITY_ERR #undef __CREATE_SUB_DEVICES_ERR #undef __ENQUEUE_ACQUIRE_EXTERNAL_MEMORY_ERR #undef __ENQUEUE_RELEASE_EXTERNAL_MEMORY_ERR #undef __ENQUEUE_MARKER_ERR #undef __ENQUEUE_WAIT_FOR_EVENTS_ERR #undef __ENQUEUE_BARRIER_ERR #undef __UNLOAD_COMPILER_ERR #undef __CREATE_GL_TEXTURE_2D_ERR #undef __CREATE_GL_TEXTURE_3D_ERR #undef __CREATE_IMAGE2D_ERR #undef __CREATE_IMAGE3D_ERR #undef __CREATE_COMMAND_QUEUE_ERR #undef __ENQUEUE_TASK_ERR #undef __CREATE_SAMPLER_ERR #undef __ENQUEUE_MARKER_WAIT_LIST_ERR #undef __ENQUEUE_BARRIER_WAIT_LIST_ERR #undef __CLONE_KERNEL_ERR #undef __GET_HOST_TIMER_ERR #undef __GET_DEVICE_AND_HOST_TIMER_ERR #undef __GET_SEMAPHORE_KHR_INFO_ERR #undef __CREATE_SEMAPHORE_KHR_WITH_PROPERTIES_ERR #undef __ENQUEUE_WAIT_SEMAPHORE_KHR_ERR #undef __ENQUEUE_SIGNAL_SEMAPHORE_KHR_ERR #endif //CL_HPP_USER_OVERRIDE_ERROR_STRINGS // Extensions #undef CL_HPP_CREATE_CL_EXT_FCN_PTR_ALIAS_ #undef CL_HPP_INIT_CL_EXT_FCN_PTR_ #undef CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_ #undef CL_HPP_NOEXCEPT_ #undef CL_HPP_DEFINE_STATIC_MEMBER_ } // namespace cl #endif // CL_HPP_ par2cmdline-turbo-1.5.0/parpar/gf16/opencl-include/cl.c000066400000000000000000000122621524160147200225460ustar00rootroot00000000000000#define CL_API_EXTERN #define CL_TARGET_OPENCL_VERSION 120 #define CL_USE_DEPRECATED_OPENCL_1_1_APIS #include "cl.h" static void* handle = NULL; #define LOAD_FN_REQ(n) if(!(LOAD_FN(n))) goto sym_load_failed #ifdef _WIN32 # define WIN32_LEAN_AND_MEAN # include # define LOAD_FN(n) *(void**)&n = GetProcAddress(handle, #n) #elif defined(PARPAR_LIBDL_SUPPORT) # include # define LOAD_FN(n) *(void**)&n = dlsym(handle, #n) #else # define LOAD_FN(n) # undef LOAD_FN_REQ # define LOAD_FN_REQ(n) goto sym_load_failed #endif int load_opencl() { if(handle) return 0; // already loaded #ifdef _WIN32 handle = LoadLibrary(TEXT("OpenCL.dll")); #elif defined(PARPAR_LIBDL_SUPPORT) handle = dlopen("libOpenCL.so", RTLD_NOW); if(!handle) handle = dlopen("libOpenCL.so.1", RTLD_NOW); // another common name seen in a number of Linux/BSD distros (DEB, RPM, APK, Arch etc) if(!handle) handle = dlopen("libOpenCL.so.1.0.0", RTLD_NOW); // final fallback #endif if(!handle) return 1; // load functions LOAD_FN_REQ(clGetPlatformIDs); LOAD_FN_REQ(clGetPlatformInfo); LOAD_FN_REQ(clGetDeviceIDs); LOAD_FN_REQ(clGetDeviceInfo); LOAD_FN(clCreateSubDevices); // 1.2 LOAD_FN(clRetainDevice); // 1.2 LOAD_FN(clReleaseDevice); // 1.2 LOAD_FN_REQ(clCreateContext); LOAD_FN_REQ(clCreateContextFromType); LOAD_FN_REQ(clRetainContext); LOAD_FN_REQ(clReleaseContext); LOAD_FN_REQ(clGetContextInfo); //LOAD_FN(clCreateCommandQueueWithProperties); // 2.0 LOAD_FN_REQ(clRetainCommandQueue); LOAD_FN_REQ(clReleaseCommandQueue); LOAD_FN_REQ(clGetCommandQueueInfo); LOAD_FN_REQ(clCreateBuffer); LOAD_FN_REQ(clCreateSubBuffer); // 1.1 LOAD_FN(clCreateImage); // 1.2 //LOAD_FN(clCreatePipe); // 2.0 LOAD_FN_REQ(clRetainMemObject); LOAD_FN_REQ(clReleaseMemObject); LOAD_FN_REQ(clGetSupportedImageFormats); LOAD_FN_REQ(clGetMemObjectInfo); LOAD_FN_REQ(clGetImageInfo); //LOAD_FN(clGetPipeInfo); // 2.0 LOAD_FN_REQ(clSetMemObjectDestructorCallback); // 1.1 //LOAD_FN(clSVMAlloc); // 2.0 //LOAD_FN(clSVMFree); // 2.0 //LOAD_FN(clCreateSamplerWithProperties); // 2.0 LOAD_FN_REQ(clRetainSampler); LOAD_FN_REQ(clReleaseSampler); LOAD_FN_REQ(clGetSamplerInfo); LOAD_FN_REQ(clCreateProgramWithSource); LOAD_FN_REQ(clCreateProgramWithBinary); LOAD_FN(clCreateProgramWithBuiltInKernels); // 1.2 LOAD_FN_REQ(clRetainProgram); LOAD_FN_REQ(clReleaseProgram); LOAD_FN_REQ(clBuildProgram); LOAD_FN(clCompileProgram); // 1.2 LOAD_FN(clLinkProgram); // 1.2 LOAD_FN(clUnloadPlatformCompiler); // 1.2 LOAD_FN_REQ(clGetProgramInfo); LOAD_FN_REQ(clGetProgramBuildInfo); LOAD_FN_REQ(clCreateKernel); LOAD_FN_REQ(clCreateKernelsInProgram); LOAD_FN_REQ(clRetainKernel); LOAD_FN_REQ(clReleaseKernel); LOAD_FN_REQ(clSetKernelArg); //LOAD_FN(clSetKernelArgSVMPointer); // 2.0 //LOAD_FN(clSetKernelExecInfo); // 2.0 LOAD_FN_REQ(clGetKernelInfo); LOAD_FN(clGetKernelArgInfo); // 1.2 LOAD_FN_REQ(clGetKernelWorkGroupInfo); LOAD_FN_REQ(clWaitForEvents); LOAD_FN_REQ(clGetEventInfo); LOAD_FN_REQ(clCreateUserEvent); // 1.1 LOAD_FN_REQ(clRetainEvent); LOAD_FN_REQ(clReleaseEvent); LOAD_FN_REQ(clSetUserEventStatus); // 1.1 LOAD_FN_REQ(clSetEventCallback); // 1.1 LOAD_FN_REQ(clGetEventProfilingInfo); LOAD_FN_REQ(clFlush); LOAD_FN_REQ(clFinish); LOAD_FN_REQ(clEnqueueReadBuffer); LOAD_FN_REQ(clEnqueueReadBufferRect); // 1.1 LOAD_FN_REQ(clEnqueueWriteBuffer); LOAD_FN_REQ(clEnqueueWriteBufferRect); // 1.1 LOAD_FN(clEnqueueFillBuffer); // 1.2 LOAD_FN_REQ(clEnqueueCopyBuffer); LOAD_FN_REQ(clEnqueueCopyBufferRect); // 1.1 LOAD_FN_REQ(clEnqueueReadImage); LOAD_FN_REQ(clEnqueueWriteImage); LOAD_FN(clEnqueueFillImage); // 1.2 LOAD_FN_REQ(clEnqueueCopyImage); LOAD_FN_REQ(clEnqueueCopyImageToBuffer); LOAD_FN_REQ(clEnqueueCopyBufferToImage); LOAD_FN_REQ(clEnqueueMapBuffer); LOAD_FN_REQ(clEnqueueMapImage); LOAD_FN_REQ(clEnqueueUnmapMemObject); LOAD_FN(clEnqueueMigrateMemObjects); // 1.2 LOAD_FN_REQ(clEnqueueNDRangeKernel); LOAD_FN_REQ(clEnqueueNativeKernel); LOAD_FN(clEnqueueMarkerWithWaitList); // 1.2 LOAD_FN(clEnqueueBarrierWithWaitList); // 1.2 //LOAD_FN(clEnqueueSVMFree); // 2.0 //LOAD_FN(clEnqueueSVMMemcpy); // 2.0 //LOAD_FN(clEnqueueSVMMemFill); // 2.0 //LOAD_FN(clEnqueueSVMMap); // 2.0 //LOAD_FN(clEnqueueSVMUnmap); // 2.0 LOAD_FN(clGetExtensionFunctionAddressForPlatform); // 1.2 #ifdef CL_USE_DEPRECATED_OPENCL_1_1_APIS LOAD_FN_REQ(clCreateImage2D); LOAD_FN_REQ(clCreateImage3D); LOAD_FN_REQ(clEnqueueMarker); LOAD_FN_REQ(clEnqueueWaitForEvents); LOAD_FN_REQ(clEnqueueBarrier); LOAD_FN_REQ(clUnloadCompiler); LOAD_FN_REQ(clGetExtensionFunctionAddress); #endif #ifdef CL_USE_DEPRECATED_OPENCL_2_0_APIS LOAD_FN_REQ(clCreateCommandQueue); LOAD_FN_REQ(clCreateSampler); LOAD_FN_REQ(clEnqueueTask); #endif return 0; sym_load_failed: unload_opencl(); return 2; } int unload_opencl() { #ifdef _WIN32 BOOL ret = FreeLibrary((HMODULE)handle); handle = NULL; return !ret; #elif defined(PARPAR_LIBDL_SUPPORT) int ret = dlclose(handle); handle = NULL; return ret; #else return 1; #endif } par2cmdline-turbo-1.5.0/parpar/gf16/opencl-include/cl.h000066400000000000000000001151231524160147200225530ustar00rootroot00000000000000 #define CL_NO_PROTOTYPES #include #ifndef CL_API_EXTERN # ifdef __cplusplus # define CL_API_EXTERN extern "C" # else # define CL_API_EXTERN extern # endif #endif #ifdef __cplusplus extern "C" int load_opencl(); extern "C" int unload_opencl(); #else int load_opencl(); int unload_opencl(); #endif /* Platform API */ CL_API_EXTERN cl_int (CL_API_CALL *clGetPlatformIDs)(cl_uint /* num_entries */, cl_platform_id * /* platforms */, cl_uint * /* num_platforms */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clGetPlatformInfo)(cl_platform_id /* platform */, cl_platform_info /* param_name */, size_t /* param_value_size */, void * /* param_value */, size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; /* Device APIs */ CL_API_EXTERN cl_int (CL_API_CALL *clGetDeviceIDs)(cl_platform_id /* platform */, cl_device_type /* device_type */, cl_uint /* num_entries */, cl_device_id * /* devices */, cl_uint * /* num_devices */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clGetDeviceInfo)(cl_device_id /* device */, cl_device_info /* param_name */, size_t /* param_value_size */, void * /* param_value */, size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clCreateSubDevices)(cl_device_id /* in_device */, const cl_device_partition_property * /* properties */, cl_uint /* num_devices */, cl_device_id * /* out_devices */, cl_uint * /* num_devices_ret */) CL_API_SUFFIX__VERSION_1_2; CL_API_EXTERN cl_int (CL_API_CALL *clRetainDevice)(cl_device_id /* device */) CL_API_SUFFIX__VERSION_1_2; CL_API_EXTERN cl_int (CL_API_CALL *clReleaseDevice)(cl_device_id /* device */) CL_API_SUFFIX__VERSION_1_2; /* Context APIs */ CL_API_EXTERN cl_context (CL_API_CALL *clCreateContext)(const cl_context_properties * /* properties */, cl_uint /* num_devices */, const cl_device_id * /* devices */, void (CL_CALLBACK * /* pfn_notify */)(const char *, const void *, size_t, void *), void * /* user_data */, cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_context (CL_API_CALL *clCreateContextFromType)(const cl_context_properties * /* properties */, cl_device_type /* device_type */, void (CL_CALLBACK * /* pfn_notify*/ )(const char *, const void *, size_t, void *), void * /* user_data */, cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clRetainContext)(cl_context /* context */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clReleaseContext)(cl_context /* context */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clGetContextInfo)(cl_context /* context */, cl_context_info /* param_name */, size_t /* param_value_size */, void * /* param_value */, size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; /* Command Queue APIs */ #ifdef CL_VERSION_2_0 CL_API_EXTERN cl_command_queue (CL_API_CALL *clCreateCommandQueueWithProperties)(cl_context /* context */, cl_device_id /* device */, const cl_queue_properties * /* properties */, cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_2_0; #endif CL_API_EXTERN cl_int (CL_API_CALL *clRetainCommandQueue)(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clReleaseCommandQueue)(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clGetCommandQueueInfo)(cl_command_queue /* command_queue */, cl_command_queue_info /* param_name */, size_t /* param_value_size */, void * /* param_value */, size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; /* Memory Object APIs */ CL_API_EXTERN cl_mem (CL_API_CALL *clCreateBuffer)(cl_context /* context */, cl_mem_flags /* flags */, size_t /* size */, void * /* host_ptr */, cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_mem (CL_API_CALL *clCreateSubBuffer)(cl_mem /* buffer */, cl_mem_flags /* flags */, cl_buffer_create_type /* buffer_create_type */, const void * /* buffer_create_info */, cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_1; CL_API_EXTERN cl_mem (CL_API_CALL *clCreateImage)(cl_context /* context */, cl_mem_flags /* flags */, const cl_image_format * /* image_format */, const cl_image_desc * /* image_desc */, void * /* host_ptr */, cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_2; #ifdef CL_VERSION_2_0 CL_API_EXTERN cl_mem (CL_API_CALL *clCreatePipe)(cl_context /* context */, cl_mem_flags /* flags */, cl_uint /* pipe_packet_size */, cl_uint /* pipe_max_packets */, const cl_pipe_properties * /* properties */, cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_2_0; #endif CL_API_EXTERN cl_int (CL_API_CALL *clRetainMemObject)(cl_mem /* memobj */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clReleaseMemObject)(cl_mem /* memobj */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clGetSupportedImageFormats)(cl_context /* context */, cl_mem_flags /* flags */, cl_mem_object_type /* image_type */, cl_uint /* num_entries */, cl_image_format * /* image_formats */, cl_uint * /* num_image_formats */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clGetMemObjectInfo)(cl_mem /* memobj */, cl_mem_info /* param_name */, size_t /* param_value_size */, void * /* param_value */, size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clGetImageInfo)(cl_mem /* image */, cl_image_info /* param_name */, size_t /* param_value_size */, void * /* param_value */, size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; #ifdef CL_VERSION_2_0 CL_API_EXTERN cl_int (CL_API_CALL *clGetPipeInfo)(cl_mem /* pipe */, cl_pipe_info /* param_name */, size_t /* param_value_size */, void * /* param_value */, size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_2_0; #endif CL_API_EXTERN cl_int (CL_API_CALL *clSetMemObjectDestructorCallback)(cl_mem /* memobj */, void (CL_CALLBACK * /*pfn_notify*/)( cl_mem /* memobj */, void* /*user_data*/), void * /*user_data */ ) CL_API_SUFFIX__VERSION_1_1; /* SVM Allocation APIs */ #ifdef CL_VERSION_2_0 CL_API_EXTERN void * (CL_API_CALL *clSVMAlloc)(cl_context /* context */, cl_svm_mem_flags /* flags */, size_t /* size */, cl_uint /* alignment */) CL_API_SUFFIX__VERSION_2_0; CL_API_EXTERN void (CL_API_CALL *clSVMFree)(cl_context /* context */, void * /* svm_pointer */) CL_API_SUFFIX__VERSION_2_0; /* Sampler APIs */ CL_API_EXTERN cl_sampler (CL_API_CALL *clCreateSamplerWithProperties)(cl_context /* context */, const cl_sampler_properties * /* normalized_coords */, cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_2_0; #endif CL_API_EXTERN cl_int (CL_API_CALL *clRetainSampler)(cl_sampler /* sampler */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clReleaseSampler)(cl_sampler /* sampler */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clGetSamplerInfo)(cl_sampler /* sampler */, cl_sampler_info /* param_name */, size_t /* param_value_size */, void * /* param_value */, size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; /* Program Object APIs */ CL_API_EXTERN cl_program (CL_API_CALL *clCreateProgramWithSource)(cl_context /* context */, cl_uint /* count */, const char ** /* strings */, const size_t * /* lengths */, cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_program (CL_API_CALL *clCreateProgramWithBinary)(cl_context /* context */, cl_uint /* num_devices */, const cl_device_id * /* device_list */, const size_t * /* lengths */, const unsigned char ** /* binaries */, cl_int * /* binary_status */, cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_program (CL_API_CALL *clCreateProgramWithBuiltInKernels)(cl_context /* context */, cl_uint /* num_devices */, const cl_device_id * /* device_list */, const char * /* kernel_names */, cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_2; CL_API_EXTERN cl_int (CL_API_CALL *clRetainProgram)(cl_program /* program */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clReleaseProgram)(cl_program /* program */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clBuildProgram)(cl_program /* program */, cl_uint /* num_devices */, const cl_device_id * /* device_list */, const char * /* options */, void (CL_CALLBACK * /* pfn_notify */)(cl_program /* program */, void * /* user_data */), void * /* user_data */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clCompileProgram)(cl_program /* program */, cl_uint /* num_devices */, const cl_device_id * /* device_list */, const char * /* options */, cl_uint /* num_input_headers */, const cl_program * /* input_headers */, const char ** /* header_include_names */, void (CL_CALLBACK * /* pfn_notify */)(cl_program /* program */, void * /* user_data */), void * /* user_data */) CL_API_SUFFIX__VERSION_1_2; CL_API_EXTERN cl_program (CL_API_CALL *clLinkProgram)(cl_context /* context */, cl_uint /* num_devices */, const cl_device_id * /* device_list */, const char * /* options */, cl_uint /* num_input_programs */, const cl_program * /* input_programs */, void (CL_CALLBACK * /* pfn_notify */)(cl_program /* program */, void * /* user_data */), void * /* user_data */, cl_int * /* errcode_ret */ ) CL_API_SUFFIX__VERSION_1_2; CL_API_EXTERN cl_int (CL_API_CALL *clUnloadPlatformCompiler)(cl_platform_id /* platform */) CL_API_SUFFIX__VERSION_1_2; CL_API_EXTERN cl_int (CL_API_CALL *clGetProgramInfo)(cl_program /* program */, cl_program_info /* param_name */, size_t /* param_value_size */, void * /* param_value */, size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clGetProgramBuildInfo)(cl_program /* program */, cl_device_id /* device */, cl_program_build_info /* param_name */, size_t /* param_value_size */, void * /* param_value */, size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; /* Kernel Object APIs */ CL_API_EXTERN cl_kernel (CL_API_CALL *clCreateKernel)(cl_program /* program */, const char * /* kernel_name */, cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clCreateKernelsInProgram)(cl_program /* program */, cl_uint /* num_kernels */, cl_kernel * /* kernels */, cl_uint * /* num_kernels_ret */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clRetainKernel)(cl_kernel /* kernel */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clReleaseKernel)(cl_kernel /* kernel */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clSetKernelArg)(cl_kernel /* kernel */, cl_uint /* arg_index */, size_t /* arg_size */, const void * /* arg_value */) CL_API_SUFFIX__VERSION_1_0; #ifdef CL_VERSION_2_0 CL_API_EXTERN cl_int (CL_API_CALL *clSetKernelArgSVMPointer)(cl_kernel /* kernel */, cl_uint /* arg_index */, const void * /* arg_value */) CL_API_SUFFIX__VERSION_2_0; CL_API_EXTERN cl_int (CL_API_CALL *clSetKernelExecInfo)(cl_kernel /* kernel */, cl_kernel_exec_info /* param_name */, size_t /* param_value_size */, const void * /* param_value */) CL_API_SUFFIX__VERSION_2_0; #endif CL_API_EXTERN cl_int (CL_API_CALL *clGetKernelInfo)(cl_kernel /* kernel */, cl_kernel_info /* param_name */, size_t /* param_value_size */, void * /* param_value */, size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clGetKernelArgInfo)(cl_kernel /* kernel */, cl_uint /* arg_indx */, cl_kernel_arg_info /* param_name */, size_t /* param_value_size */, void * /* param_value */, size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_2; CL_API_EXTERN cl_int (CL_API_CALL *clGetKernelWorkGroupInfo)(cl_kernel /* kernel */, cl_device_id /* device */, cl_kernel_work_group_info /* param_name */, size_t /* param_value_size */, void * /* param_value */, size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; /* Event Object APIs */ CL_API_EXTERN cl_int (CL_API_CALL *clWaitForEvents)(cl_uint /* num_events */, const cl_event * /* event_list */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clGetEventInfo)(cl_event /* event */, cl_event_info /* param_name */, size_t /* param_value_size */, void * /* param_value */, size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_event (CL_API_CALL *clCreateUserEvent)(cl_context /* context */, cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_1; CL_API_EXTERN cl_int (CL_API_CALL *clRetainEvent)(cl_event /* event */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clReleaseEvent)(cl_event /* event */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clSetUserEventStatus)(cl_event /* event */, cl_int /* execution_status */) CL_API_SUFFIX__VERSION_1_1; CL_API_EXTERN cl_int (CL_API_CALL *clSetEventCallback)( cl_event /* event */, cl_int /* command_exec_callback_type */, void (CL_CALLBACK * /* pfn_notify */)(cl_event, cl_int, void *), void * /* user_data */) CL_API_SUFFIX__VERSION_1_1; /* Profiling APIs */ CL_API_EXTERN cl_int (CL_API_CALL *clGetEventProfilingInfo)(cl_event /* event */, cl_profiling_info /* param_name */, size_t /* param_value_size */, void * /* param_value */, size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; /* Flush and Finish APIs */ CL_API_EXTERN cl_int (CL_API_CALL *clFlush)(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clFinish)(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0; /* Enqueued Commands APIs */ CL_API_EXTERN cl_int (CL_API_CALL *clEnqueueReadBuffer)(cl_command_queue /* command_queue */, cl_mem /* buffer */, cl_bool /* blocking_read */, size_t /* offset */, size_t /* size */, void * /* ptr */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clEnqueueReadBufferRect)(cl_command_queue /* command_queue */, cl_mem /* buffer */, cl_bool /* blocking_read */, const size_t * /* buffer_offset */, const size_t * /* host_offset */, const size_t * /* region */, size_t /* buffer_row_pitch */, size_t /* buffer_slice_pitch */, size_t /* host_row_pitch */, size_t /* host_slice_pitch */, void * /* ptr */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, cl_event * /* event */) CL_API_SUFFIX__VERSION_1_1; CL_API_EXTERN cl_int (CL_API_CALL *clEnqueueWriteBuffer)(cl_command_queue /* command_queue */, cl_mem /* buffer */, cl_bool /* blocking_write */, size_t /* offset */, size_t /* size */, const void * /* ptr */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clEnqueueWriteBufferRect)(cl_command_queue /* command_queue */, cl_mem /* buffer */, cl_bool /* blocking_write */, const size_t * /* buffer_offset */, const size_t * /* host_offset */, const size_t * /* region */, size_t /* buffer_row_pitch */, size_t /* buffer_slice_pitch */, size_t /* host_row_pitch */, size_t /* host_slice_pitch */, const void * /* ptr */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, cl_event * /* event */) CL_API_SUFFIX__VERSION_1_1; CL_API_EXTERN cl_int (CL_API_CALL *clEnqueueFillBuffer)(cl_command_queue /* command_queue */, cl_mem /* buffer */, const void * /* pattern */, size_t /* pattern_size */, size_t /* offset */, size_t /* size */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, cl_event * /* event */) CL_API_SUFFIX__VERSION_1_2; CL_API_EXTERN cl_int (CL_API_CALL *clEnqueueCopyBuffer)(cl_command_queue /* command_queue */, cl_mem /* src_buffer */, cl_mem /* dst_buffer */, size_t /* src_offset */, size_t /* dst_offset */, size_t /* size */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clEnqueueCopyBufferRect)(cl_command_queue /* command_queue */, cl_mem /* src_buffer */, cl_mem /* dst_buffer */, const size_t * /* src_origin */, const size_t * /* dst_origin */, const size_t * /* region */, size_t /* src_row_pitch */, size_t /* src_slice_pitch */, size_t /* dst_row_pitch */, size_t /* dst_slice_pitch */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, cl_event * /* event */) CL_API_SUFFIX__VERSION_1_1; CL_API_EXTERN cl_int (CL_API_CALL *clEnqueueReadImage)(cl_command_queue /* command_queue */, cl_mem /* image */, cl_bool /* blocking_read */, const size_t * /* origin[3] */, const size_t * /* region[3] */, size_t /* row_pitch */, size_t /* slice_pitch */, void * /* ptr */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clEnqueueWriteImage)(cl_command_queue /* command_queue */, cl_mem /* image */, cl_bool /* blocking_write */, const size_t * /* origin[3] */, const size_t * /* region[3] */, size_t /* input_row_pitch */, size_t /* input_slice_pitch */, const void * /* ptr */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clEnqueueFillImage)(cl_command_queue /* command_queue */, cl_mem /* image */, const void * /* fill_color */, const size_t * /* origin[3] */, const size_t * /* region[3] */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, cl_event * /* event */) CL_API_SUFFIX__VERSION_1_2; CL_API_EXTERN cl_int (CL_API_CALL *clEnqueueCopyImage)(cl_command_queue /* command_queue */, cl_mem /* src_image */, cl_mem /* dst_image */, const size_t * /* src_origin[3] */, const size_t * /* dst_origin[3] */, const size_t * /* region[3] */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clEnqueueCopyImageToBuffer)(cl_command_queue /* command_queue */, cl_mem /* src_image */, cl_mem /* dst_buffer */, const size_t * /* src_origin[3] */, const size_t * /* region[3] */, size_t /* dst_offset */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clEnqueueCopyBufferToImage)(cl_command_queue /* command_queue */, cl_mem /* src_buffer */, cl_mem /* dst_image */, size_t /* src_offset */, const size_t * /* dst_origin[3] */, const size_t * /* region[3] */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN void * (CL_API_CALL *clEnqueueMapBuffer)(cl_command_queue /* command_queue */, cl_mem /* buffer */, cl_bool /* blocking_map */, cl_map_flags /* map_flags */, size_t /* offset */, size_t /* size */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, cl_event * /* event */, cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN void * (CL_API_CALL *clEnqueueMapImage)(cl_command_queue /* command_queue */, cl_mem /* image */, cl_bool /* blocking_map */, cl_map_flags /* map_flags */, const size_t * /* origin[3] */, const size_t * /* region[3] */, size_t * /* image_row_pitch */, size_t * /* image_slice_pitch */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, cl_event * /* event */, cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clEnqueueUnmapMemObject)(cl_command_queue /* command_queue */, cl_mem /* memobj */, void * /* mapped_ptr */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clEnqueueMigrateMemObjects)(cl_command_queue /* command_queue */, cl_uint /* num_mem_objects */, const cl_mem * /* mem_objects */, cl_mem_migration_flags /* flags */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, cl_event * /* event */) CL_API_SUFFIX__VERSION_1_2; CL_API_EXTERN cl_int (CL_API_CALL *clEnqueueNDRangeKernel)(cl_command_queue /* command_queue */, cl_kernel /* kernel */, cl_uint /* work_dim */, const size_t * /* global_work_offset */, const size_t * /* global_work_size */, const size_t * /* local_work_size */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clEnqueueNativeKernel)(cl_command_queue /* command_queue */, void (CL_CALLBACK * /*user_func*/)(void *), void * /* args */, size_t /* cb_args */, cl_uint /* num_mem_objects */, const cl_mem * /* mem_list */, const void ** /* args_mem_loc */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; CL_API_EXTERN cl_int (CL_API_CALL *clEnqueueMarkerWithWaitList)(cl_command_queue /* command_queue */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, cl_event * /* event */) CL_API_SUFFIX__VERSION_1_2; CL_API_EXTERN cl_int (CL_API_CALL *clEnqueueBarrierWithWaitList)(cl_command_queue /* command_queue */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, cl_event * /* event */) CL_API_SUFFIX__VERSION_1_2; #ifdef CL_VERSION_2_0 CL_API_EXTERN cl_int (CL_API_CALL *clEnqueueSVMFree)(cl_command_queue /* command_queue */, cl_uint /* num_svm_pointers */, void *[] /* svm_pointers[] */, void (CL_CALLBACK * /*pfn_free_func*/)(cl_command_queue /* queue */, cl_uint /* num_svm_pointers */, void *[] /* svm_pointers[] */, void * /* user_data */), void * /* user_data */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, cl_event * /* event */) CL_API_SUFFIX__VERSION_2_0; CL_API_EXTERN cl_int (CL_API_CALL *clEnqueueSVMMemcpy)(cl_command_queue /* command_queue */, cl_bool /* blocking_copy */, void * /* dst_ptr */, const void * /* src_ptr */, size_t /* size */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, cl_event * /* event */) CL_API_SUFFIX__VERSION_2_0; CL_API_EXTERN cl_int (CL_API_CALL *clEnqueueSVMMemFill)(cl_command_queue /* command_queue */, void * /* svm_ptr */, const void * /* pattern */, size_t /* pattern_size */, size_t /* size */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, cl_event * /* event */) CL_API_SUFFIX__VERSION_2_0; CL_API_EXTERN cl_int (CL_API_CALL *clEnqueueSVMMap)(cl_command_queue /* command_queue */, cl_bool /* blocking_map */, cl_map_flags /* flags */, void * /* svm_ptr */, size_t /* size */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, cl_event * /* event */) CL_API_SUFFIX__VERSION_2_0; CL_API_EXTERN cl_int (CL_API_CALL *clEnqueueSVMUnmap)(cl_command_queue /* command_queue */, void * /* svm_ptr */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, cl_event * /* event */) CL_API_SUFFIX__VERSION_2_0; #endif /* Extension function access * * Returns the extension function address for the given function name, * or NULL if a valid function can not be found. The client must * check to make sure the address is not NULL, before using or * calling the returned function address. */ CL_API_EXTERN void * (CL_API_CALL *clGetExtensionFunctionAddressForPlatform)(cl_platform_id /* platform */, const char * /* func_name */) CL_API_SUFFIX__VERSION_1_2; /* Deprecated OpenCL 1.1 APIs */ #ifdef CL_USE_DEPRECATED_OPENCL_1_1_APIS CL_API_EXTERN CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_mem (CL_API_CALL *clCreateImage2D)(cl_context /* context */, cl_mem_flags /* flags */, const cl_image_format * /* image_format */, size_t /* image_width */, size_t /* image_height */, size_t /* image_row_pitch */, void * /* host_ptr */, cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; CL_API_EXTERN CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_mem (CL_API_CALL *clCreateImage3D)(cl_context /* context */, cl_mem_flags /* flags */, const cl_image_format * /* image_format */, size_t /* image_width */, size_t /* image_height */, size_t /* image_depth */, size_t /* image_row_pitch */, size_t /* image_slice_pitch */, void * /* host_ptr */, cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; CL_API_EXTERN CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_int (CL_API_CALL *clEnqueueMarker)(cl_command_queue /* command_queue */, cl_event * /* event */) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; CL_API_EXTERN CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_int (CL_API_CALL *clEnqueueWaitForEvents)(cl_command_queue /* command_queue */, cl_uint /* num_events */, const cl_event * /* event_list */) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; CL_API_EXTERN CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_int (CL_API_CALL *clEnqueueBarrier)(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; CL_API_EXTERN CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_int (CL_API_CALL *clUnloadCompiler)(void) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; CL_API_EXTERN CL_API_PREFIX__VERSION_1_1_DEPRECATED void * (CL_API_CALL *clGetExtensionFunctionAddress)(const char * /* func_name */) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; #endif /* Deprecated OpenCL 2.0 APIs */ #ifdef CL_USE_DEPRECATED_OPENCL_2_0_APIS CL_API_EXTERN CL_API_PREFIX__VERSION_2_0_DEPRECATED cl_command_queue (CL_API_CALL *clCreateCommandQueue)(cl_context /* context */, cl_device_id /* device */, cl_command_queue_properties /* properties */, cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_2_0_DEPRECATED; CL_API_EXTERN CL_API_PREFIX__VERSION_2_0_DEPRECATED cl_sampler (CL_API_CALL *clCreateSampler)(cl_context /* context */, cl_bool /* normalized_coords */, cl_addressing_mode /* addressing_mode */, cl_filter_mode /* filter_mode */, cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_2_0_DEPRECATED; CL_API_EXTERN CL_API_PREFIX__VERSION_2_0_DEPRECATED cl_int (CL_API_CALL *clEnqueueTask)(cl_command_queue /* command_queue */, cl_kernel /* kernel */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, cl_event * /* event */) CL_API_SUFFIX__VERSION_2_0_DEPRECATED; #endif par2cmdline-turbo-1.5.0/parpar/gf16/opencl-include/readme.txt000066400000000000000000000011601524160147200237750ustar00rootroot00000000000000The files in the CL directory are taken from the following: * https://github.com/KhronosGroup/OpenCL-Headers/releases/tag/v2023.04.17 * https://github.com/KhronosGroup/OpenCL-CLHPP/releases/tag/v2023.04.17 The OpenCL C++ header has been modified to remove dependency on cl_ext/cl_gl headers, and handle the function pointers introduced in the wrapper below. The cl.c/cl.h files here are a wrapper to enable runtime linking of OpenCL. cl.h will include the OpenCL C headers, and must be included before the C++ header. * users must include cl.c for compilation, and call load_opencl() before using any OpenCL functionality par2cmdline-turbo-1.5.0/parpar/gf16/suppressions-valgrind.supp000066400000000000000000000000771524160147200243760ustar00rootroot00000000000000{ Memcheck:Leak fun:malloc fun:gfmat_init } par2cmdline-turbo-1.5.0/parpar/gf16/threadqueue.h000066400000000000000000000253611524160147200215740ustar00rootroot00000000000000#ifndef __THREADQUEUE_H__ #define __THREADQUEUE_H__ #include #ifdef USE_LIBUV # include # define thread_t uv_thread_t # define thread_create(t, f, a) uv_thread_create(&(t), f, a) # define thread_join(t) uv_thread_join(&(t)) # define mutex_t uv_mutex_t # define mutex_init(m) uv_mutex_init(&(m)) # define mutex_destroy(m) uv_mutex_destroy(&(m)) # define mutex_lock(m) uv_mutex_lock(&(m)) # define mutex_unlock(m) uv_mutex_unlock(&(m)) # define condvar_t uv_cond_t # define condvar_init(c) uv_cond_init(&(c)) # define condvar_destroy(c) uv_cond_destroy(&(c)) # define condvar_signal(c) uv_cond_signal(&(c)) #else # include # define thread_t std::thread # define thread_create(t, f, a) t = std::thread(f, a) # define thread_join(t) t.join() # include # define mutex_t std::unique_ptr # define mutex_init(m) m = std::unique_ptr(new std::mutex()) # define mutex_destroy(m) # define mutex_lock(m) m->lock() # define mutex_unlock(m) m->unlock() # include # define condvar_t std::unique_ptr # define condvar_init(c) c = std::unique_ptr(new std::condition_variable()) # define condvar_destroy(c) # define condvar_signal(c) c->notify_one() #endif #include template class ThreadMessageQueue { std::queue q; mutable mutex_t mutex; condvar_t cond; bool skipDestructor; // disable copy constructor ThreadMessageQueue(const ThreadMessageQueue&); ThreadMessageQueue& operator=(const ThreadMessageQueue&); // ...but allow moves void move(ThreadMessageQueue& other) { q = std::move(other.q); #ifdef USE_LIBUV mutex = other.mutex; cond = other.cond; #else mutex = std::move(other.mutex); cond = std::move(other.cond); #endif skipDestructor = false; other.skipDestructor = true; } public: ThreadMessageQueue() { mutex_init(mutex); condvar_init(cond); skipDestructor = false; } ~ThreadMessageQueue() { if(skipDestructor) return; mutex_destroy(mutex); condvar_destroy(cond); } ThreadMessageQueue(ThreadMessageQueue&& other) noexcept { move(other); } ThreadMessageQueue& operator=(ThreadMessageQueue&& other) noexcept { move(other); return *this; } void push(T item) { mutex_lock(mutex); q.push(item); condvar_signal(cond); mutex_unlock(mutex); } template void push_multi(const Iterable& list) { mutex_lock(mutex); for(auto it = list.cbegin(); it != list.cend(); ++it) { q.push(*it); } condvar_signal(cond); mutex_unlock(mutex); } T pop() { #ifdef USE_LIBUV mutex_lock(mutex); while(q.empty()) { uv_cond_wait(&cond, &mutex); } T item = q.front(); q.pop(); mutex_unlock(mutex); #else std::unique_lock lk(*mutex); cond->wait(lk, [this]{ return !q.empty(); }); T item = q.front(); q.pop(); #endif return item; } bool trypop(T* item) { bool notEmpty; mutex_lock(mutex); notEmpty = !q.empty(); if(notEmpty) { *item = q.front(); q.pop(); } mutex_unlock(mutex); return notEmpty; } // NOTE: unlike 'pop', this doesn't wait - it's more like trypop std::vector popall() { std::vector copy; mutex_lock(mutex); copy.reserve(q.size()); while(!q.empty()) { copy.emplace_back(std::move(q.front())); q.pop(); } mutex_unlock(mutex); return copy; } size_t size() const { mutex_lock(mutex); size_t s = q.size(); mutex_unlock(mutex); return s; } bool empty() const { mutex_lock(mutex); bool e = q.empty(); mutex_unlock(mutex); return e; } }; #ifdef USE_LIBUV struct tnqCloseWrap { void(*cb)(void*); void* data; }; template class ThreadNotifyQueue { ThreadMessageQueue q; std::unique_ptr a; P* o; void (P::*cb)(void*); static void notified(uv_async_t *handle #if UV_VERSION_MAJOR < 1 , int #endif ) { auto self = static_cast(handle->data); auto notifications = self->q.popall(); for(void* notification : notifications) (self->o->*(self->cb))(notification); } public: explicit ThreadNotifyQueue(uv_loop_t* loop, P* object, void (P::*callback)(void*)) { a.reset(new uv_async_t()); uv_async_init(loop, a.get(), notified); a->data = static_cast(this); cb = callback; o = object; } void notify(void* item) { q.push(item); uv_async_send(a.get()); } void close(void* data, void(*closeCb)(void*)) { auto* d = new tnqCloseWrap; d->cb = closeCb; d->data = data; a->data = d; uv_close(reinterpret_cast(a.release()), [](uv_handle_t* handle) { auto* d = static_cast(handle->data); d->cb(d->data); delete d; delete handle; }); } void close() { uv_close(reinterpret_cast(a.release()), [](uv_handle_t* handle) { delete handle; }); } }; #endif #ifdef USE_LIBUV typedef void(*thread_cb_t)(ThreadMessageQueue&); #else typedef std::function&)> thread_cb_t; #endif #if defined(_WINDOWS) || defined(__WINDOWS__) || defined(_WIN32) || defined(_WIN64) # ifndef NOMINMAX # define NOMINMAX # endif # define WIN32_LEAN_AND_MEAN # include #else # include # ifdef __OpenBSD__ # include # endif #endif #if defined(__linux) || defined(__linux__) # include # include #endif class MessageThread { ThreadMessageQueue q; thread_t thread; bool threadActive; bool threadCreated; thread_cb_t cb; static void thread_func(void* parent) { MessageThread* self = static_cast(parent); if(self->lowPrio) { #if defined(_WINDOWS) || defined(__WINDOWS__) || defined(_WIN32) || defined(_WIN64) HANDLE hThread = GetCurrentThread(); switch(GetThreadPriority(hThread)) { case THREAD_PRIORITY_TIME_CRITICAL: SetThreadPriority(hThread, THREAD_PRIORITY_HIGHEST); break; case THREAD_PRIORITY_HIGHEST: SetThreadPriority(hThread, THREAD_PRIORITY_ABOVE_NORMAL); break; case THREAD_PRIORITY_ABOVE_NORMAL: SetThreadPriority(hThread, THREAD_PRIORITY_NORMAL); break; case THREAD_PRIORITY_NORMAL: SetThreadPriority(hThread, THREAD_PRIORITY_BELOW_NORMAL); break; case THREAD_PRIORITY_BELOW_NORMAL: SetThreadPriority(hThread, THREAD_PRIORITY_LOWEST); break; case THREAD_PRIORITY_LOWEST: SetThreadPriority(hThread, THREAD_PRIORITY_IDLE); break; case THREAD_PRIORITY_IDLE: // can't go lower default: // do nothing break; } #else // it seems that threads cannot have lower priority on POSIX, unless it's scheduled realtime, however we can declare it to be CPU intensive int policy; struct sched_param param; pthread_t self = pthread_self(); if(!pthread_getschedparam(self, &policy, ¶m)) { if(policy == SCHED_OTHER) { #ifndef SCHED_BATCH // MacOS doesn't support SCHED_BATCH, but does seem to permit priorities on SCHED_OTHER int min = sched_get_priority_min(policy); if(min < param.sched_priority) { param.sched_priority -= 1; pthread_setschedparam(self, policy, ¶m); } #else pthread_setschedparam(self, SCHED_BATCH, ¶m); #endif } } # if defined(__linux) || defined(__linux__) // ...but Linux allows per-thread priority (void)!nice(1); // we don't care if this fails # endif #endif } if(self->name) { #if defined(_WINDOWS) || defined(__WINDOWS__) || defined(_WIN32) || defined(_WIN64) HMODULE h = GetModuleHandleA("kernelbase.dll"); if(h) { HRESULT(__stdcall *fnSetTD)(HANDLE, PCWSTR) = (HRESULT(__stdcall *)(HANDLE, PCWSTR))((void*)GetProcAddress(h, "SetThreadDescription")); if(fnSetTD) { wchar_t nameUCS2[17]; //assert(strlen(self->name) <= 16); // always hard-coded string, plus Linux limits it to 16 chars, so shouldn't ever overflow MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, self->name, -1, nameUCS2, sizeof(nameUCS2)/sizeof(wchar_t) -1); fnSetTD(GetCurrentThread(), nameUCS2); } } #elif defined(__linux) || defined(__linux__) prctl(PR_SET_NAME, self->name, 0, 0, 0); #elif defined(__MACH__) && defined(__APPLE__) pthread_setname_np(self->name); #elif defined(__FreeBSD__) || defined(__DragonFly__) || (defined(__GNU__) && defined(__MACH__) /*Hurd*/) pthread_setname_np(pthread_self(), self->name); #elif defined(__NetBSD__) pthread_setname_np(pthread_self(), self->name, NULL); #elif defined(__OpenBSD__) pthread_set_name_np(pthread_self(), self->name); #endif } self->cb(self->q); } // disable copy constructor MessageThread(const MessageThread&); MessageThread& operator=(const MessageThread&); // ...but allow moves void move(MessageThread& other) { q = std::move(other.q); #ifdef USE_LIBUV thread = other.thread; #else thread = std::move(other.thread); #endif threadActive = other.threadActive; threadCreated = other.threadCreated; cb = other.cb; name = other.name; lowPrio = other.lowPrio; other.threadActive = false; other.threadCreated = false; } public: bool lowPrio; const char* name; MessageThread() { cb = NULL; threadActive = false; threadCreated = false; lowPrio = false; name = NULL; } MessageThread(thread_cb_t callback) { cb = callback; threadActive = false; threadCreated = false; lowPrio = false; name = NULL; } void setCallback(thread_cb_t callback) { cb = callback; } ~MessageThread() { if(threadActive) q.push(NULL); if(threadCreated) thread_join(thread); } MessageThread(MessageThread&& other) noexcept { move(other); } MessageThread& operator=(MessageThread&& other) noexcept { move(other); return *this; } void start() { if(threadActive) return; threadActive = true; if(threadCreated) // previously created, but end fired, so need to wait for this thread to close before starting another thread_join(thread); threadCreated = true; thread_create(thread, thread_func, this); } // item cannot be NULL void send(void* item) { start(); q.push(item); } template void send_multi(Iterable items) { start(); q.push_multi(items); } void end() { if(threadActive) { q.push(NULL); threadActive = false; } } size_t size() { return q.size(); } bool empty() { return q.empty(); } }; static inline int hardware_concurrency() { int threads; #ifdef USE_LIBUV #if UV_VERSION_HEX >= 0x12c00 // 1.44.0 threads = uv_available_parallelism(); #else uv_cpu_info_t *info; uv_cpu_info(&info, &threads); uv_free_cpu_info(info, threads); #endif #else threads = (int)std::thread::hardware_concurrency(); #endif if(threads < 1) threads = 1; return threads; } #undef thread_t #undef thread_create #undef thread_join #undef mutex_t #undef mutex_init #undef mutex_destroy #undef mutex_lock #undef mutex_unlock #undef condvar_t #undef condvar_init #undef condvar_destroy #undef condvar_signal #endif // defined(__THREADQUEUE_H__) par2cmdline-turbo-1.5.0/parpar/gf16/x86_jit.h000066400000000000000000000566641524160147200205650ustar00rootroot00000000000000#ifndef __GF_XOR_JIT__ #define __GF_XOR_JIT__ #include "gf16_global.h" #include "../src/platform.h" /* registers */ #define AX 0 #define BX 3 #define CX 1 #define DX 2 #define DI 7 #define SI 6 #define BP 5 #define SP 4 /* conditional jumps */ #define JE 0x4 #define JNE 0x5 #define JL 0xC #define JGE 0xD #define JLE 0xE #define JG 0xF static HEDLEY_ALWAYS_INLINE int_fast32_t lshift32(int_fast32_t v, unsigned n) { // left-shifting a negative number is undefined behaviour, so we'll define it here return (int_fast32_t)((uint_fast32_t)v << n); } static HEDLEY_ALWAYS_INLINE size_t _jit_rex_pref(uint8_t** jit, uint_fast8_t xreg, uint_fast8_t xreg2) { #ifdef PLATFORM_AMD64 if(xreg > 7 || xreg2 > 7) { *((*jit)++) = 0x40 | (xreg2 >>3) | ((xreg >>1)&4); return 1; } #else UNUSED(jit); UNUSED(xreg); UNUSED(xreg2); #endif return 0; } static HEDLEY_ALWAYS_INLINE size_t _jit_rxx_pref(uint8_t** jit, uint_fast8_t reg, uint_fast8_t reg2) { #ifdef PLATFORM_AMD64 *((*jit)++) = 0x48 | (reg >>3) | ((reg2 >>1)&4); return 1; #else UNUSED(jit); UNUSED(reg); UNUSED(reg2); #endif return 0; } static HEDLEY_ALWAYS_INLINE size_t _jit_xorps_m(uint8_t* jit, uint_fast8_t xreg, uint_fast8_t mreg, int32_t offs) { size_t p = _jit_rex_pref(&jit, xreg, 0); p += mreg == 12; xreg &= 7; if((offs+128) & ~0xFF) { write32(jit, 0x2480570F | (xreg <<19) | (mreg <<16)); jit += mreg == 12; write32(jit +3, offs); return p+7; } else if(offs || mreg == 13) { if(mreg == 12) { write32(jit, 0x2440570F | (xreg <<19) | (mreg <<16)); jit[4] = offs; } else { write32(jit, 0x40570F | (xreg <<19) | (mreg <<16) | lshift32(offs, 24)); } return p+4; } else { /* can overflow, but we don't care */ write32(jit, 0x2400570F | (xreg <<19) | (mreg <<16)); return p+3; } } static HEDLEY_ALWAYS_INLINE size_t _jit_xorps_r(uint8_t* jit, uint_fast8_t xreg2, uint_fast8_t xreg1) { size_t p = _jit_rex_pref(&jit, xreg2, xreg1); xreg1 &= 7; xreg2 &= 7; /* can overflow, but we don't care */ write32(jit, 0xC0570F | (xreg2 <<19) | (xreg1 <<16)); return p+3; } static HEDLEY_ALWAYS_INLINE size_t _jit_pxor_m(uint8_t* jit, uint_fast8_t xreg, uint_fast8_t mreg, int32_t offs) { *(jit++) = 0x66; size_t p = _jit_rex_pref(&jit, xreg, 0) +1; p += mreg == 12; xreg &= 7; if((offs+128) & ~0xFF) { write32(jit, 0x2480EF0F | (xreg <<19) | (mreg <<16)); jit += mreg == 12; write32(jit +3, offs); return p+7; } else if(offs || mreg == 13) { write32(jit, 0x2440EF0F | (xreg <<19) | (mreg <<16)); jit += mreg == 12; jit[3] = (uint8_t)offs; return p+4; } else { write32(jit, 0x2400EF0F | (xreg <<19) | (mreg <<16)); return p+3; } } static HEDLEY_ALWAYS_INLINE size_t _jit_pxor_r(uint8_t* jit, uint_fast8_t xreg2, uint_fast8_t xreg1) { *(jit++) = 0x66; size_t p = _jit_rex_pref(&jit, xreg2, xreg1) +1; xreg1 &= 7; xreg2 &= 7; write32(jit, 0xC0EF0F | (xreg2 <<19) | (xreg1 <<16)); return p+3; } static HEDLEY_ALWAYS_INLINE size_t _jit_xorpd_m(uint8_t* jit, uint_fast8_t xreg, uint_fast8_t mreg, int32_t offs) { size_t p = _jit_rex_pref(&jit, xreg, 0); p += mreg == 12; xreg &= 7; if((offs+128) & ~0xFF) { write32(jit, 0x2480570F | (xreg <<19) | (mreg <<16)); jit += mreg == 12; write32(jit +3, offs); return p+7; } else if(offs || mreg == 13) { write32(jit, 0x2440570F | (xreg <<19) | (mreg <<16)); jit += mreg == 12; jit[3] = (uint8_t)offs; return p+4; } else { write32(jit, 0x2400570F | (xreg <<19) | (mreg <<16)); return p+3; } } static HEDLEY_ALWAYS_INLINE size_t _jit_xorpd_r(uint8_t* jit, uint_fast8_t xreg2, uint_fast8_t xreg1) { *(jit++) = 0x66; size_t p = _jit_rex_pref(&jit, xreg2, xreg1) +1; xreg1 &= 7; xreg2 &= 7; write32(jit, 0xC0570F | (xreg2 <<19) | (xreg1 <<16)); return p+3; } static HEDLEY_ALWAYS_INLINE size_t _jit_movaps(uint8_t* jit, uint_fast8_t xreg, uint_fast8_t xreg2) { size_t p = _jit_rex_pref(&jit, xreg, xreg2); xreg &= 7; xreg2 &= 7; /* can overflow, but we don't care */ write32(jit, 0xC0280F | (xreg <<19) | (xreg2 <<16)); return p+3; } static HEDLEY_ALWAYS_INLINE size_t _jit_movaps_load(uint8_t* jit, uint_fast8_t xreg, uint_fast8_t mreg, int32_t offs) { size_t p = _jit_rex_pref(&jit, xreg, 0); p += mreg == 12; xreg &= 7; if((offs+128) & ~0xFF) { write32(jit, 0x2480280F | (xreg <<19) | (mreg <<16)); jit += mreg == 12; write32(jit +3, offs); return p+7; } else if(offs || mreg == 13) { if(mreg == 12) { write32(jit, 0x2440280F | (xreg <<19) | (mreg <<16)); jit[4] = offs; } else write32(jit, 0x40280F | (xreg <<19) | (mreg <<16) | lshift32(offs, 24)); return p+4; } else { /* can overflow, but we don't care */ write32(jit, 0x2400280F | (xreg <<19) | (mreg <<16)); return p+3; } } static HEDLEY_ALWAYS_INLINE size_t _jit_movaps_store(uint8_t* jit, uint_fast8_t mreg, int32_t offs, uint_fast8_t xreg) { size_t p = _jit_rex_pref(&jit, xreg, 0); p += mreg == 12; xreg &= 7; if((offs+128) & ~0xFF) { write32(jit, 0x2480290F | (xreg <<19) | (mreg <<16)); jit += mreg == 12; write32(jit +3, offs); return p+7; } else if(offs || mreg == 13) { if(mreg == 12) { write32(jit, 0x2440290F | (xreg <<19) | (mreg <<16)); jit[4] = offs; } else write32(jit, 0x40290F | (xreg <<19) | (mreg <<16) | lshift32(offs, 24)); return p+4; } else { /* can overflow, but we don't care */ write32(jit, 0x2400290F | (xreg <<19) | (mreg <<16)); return p+3; } } static HEDLEY_ALWAYS_INLINE size_t _jit_movdqa(uint8_t* jit, uint_fast8_t xreg, uint_fast8_t xreg2) { *(jit++) = 0x66; size_t p = _jit_rex_pref(&jit, xreg, xreg2) +1; xreg &= 7; xreg2 &= 7; write32(jit, 0xC06F0F | (xreg <<19) | (xreg2 <<16)); return p+3; } static HEDLEY_ALWAYS_INLINE size_t _jit_movdqa_load(uint8_t* jit, uint_fast8_t xreg, uint_fast8_t mreg, int32_t offs) { *(jit++) = 0x66; size_t p = _jit_rex_pref(&jit, xreg, 0) +1; p += mreg == 12; xreg &= 7; if((offs+128) & ~0xFF) { write32(jit, 0x24806F0F | (xreg <<19) | (mreg <<16)); jit += mreg == 12; write32(jit +3, offs); return p+7; } else if(offs || mreg == 13) { write32(jit, 0x24406F0F | (xreg <<19) | (mreg <<16)); jit += mreg == 12; jit[3] = (uint8_t)offs; return p+4; } else { write32(jit, 0x24006F0F | (xreg <<19) | (mreg <<16)); return p+3; } } static HEDLEY_ALWAYS_INLINE size_t _jit_movdqa_store(uint8_t* jit, uint_fast8_t mreg, int32_t offs, uint_fast8_t xreg) { *(jit++) = 0x66; size_t p = _jit_rex_pref(&jit, xreg, 0) +1; p += mreg == 12; xreg &= 7; if((offs+128) & ~0xFF) { write32(jit, 0x24807F0F | (xreg <<19) | (mreg <<16)); jit += mreg == 12; write32(jit +3, offs); return p+7; } else if(offs || mreg == 13) { write32(jit, 0x24407F0F | (xreg <<19) | (mreg <<16)); jit += mreg == 12; jit[3] = (uint8_t)offs; return p+4; } else { write32(jit, 0x24007F0F | (xreg <<19) | (mreg <<16)); return p+3; } } static HEDLEY_ALWAYS_INLINE size_t _jit_movapd(uint8_t* jit, uint_fast8_t xreg, uint_fast8_t xreg2) { *(jit++) = 0x66; size_t p = _jit_rex_pref(&jit, xreg, xreg2) +1; xreg &= 7; xreg2 &= 7; write32(jit, 0xC0280F | (xreg <<19) | (xreg2 <<16)); return p+3; } static HEDLEY_ALWAYS_INLINE size_t _jit_movapd_load(uint8_t* jit, uint_fast8_t xreg, uint_fast8_t mreg, int32_t offs) { *(jit++) = 0x66; size_t p = _jit_rex_pref(&jit, xreg, 0) +1; p += mreg == 12; xreg &= 7; if((offs+128) & ~0xFF) { write32(jit, 0x2480280F | (xreg <<19) | (mreg <<16)); jit += mreg == 12; write32(jit +3, offs); return p+7; } else if(offs || mreg == 13) { write32(jit, 0x2440280F | (xreg <<19) | (mreg <<16)); jit += mreg == 12; jit[3] = (uint8_t)offs; return p+4; } else { write32(jit, 0x2400280F | (xreg <<19) | (mreg <<16)); return p+3; } } static HEDLEY_ALWAYS_INLINE size_t _jit_movapd_store(uint8_t* jit, uint_fast8_t mreg, int32_t offs, uint_fast8_t xreg) { *(jit++) = 0x66; size_t p = _jit_rex_pref(&jit, xreg, 0) +1; p += mreg == 12; xreg &= 7; if((offs+128) & ~0xFF) { write32(jit, 0x2480290F | (xreg <<19) | (mreg <<16)); jit += mreg == 12; write32(jit +3, offs); return p+7; } else if(offs || mreg == 13) { write32(jit, 0x2440290F | (xreg <<19) | (mreg <<16)); jit += mreg == 12; jit[3] = (uint8_t)offs; return p+4; } else { write32(jit, 0x2400290F | (xreg <<19) | (mreg <<16)); return p+3; } } /** AVX (256-bit) VEX coded instructions **/ static HEDLEY_ALWAYS_INLINE size_t _jit_vpxor_m(uint8_t* jit, uint_fast8_t yregD, uint_fast8_t yreg1, uint_fast8_t mreg, int32_t offs) { size_t p; unsigned offsFlag = (offs != 0 || mreg == 13) << (int)(((offs+128) & ~0xFF) != 0); if(mreg > 7) { write32(jit, 0xEF7DE1C4 ^ ((yregD >> 3) << 15) ^ ((mreg >> 3) << 13) ^ (yreg1 <<19)); jit[4] = (offsFlag<<6) | ((yregD & 7) <<3) | ((mreg & 7) <<0); p = 5; } else { write32(jit, (0x00EFFDC5 | ((yregD & 7) <<27) | ((mreg & 7) <<24) | (offsFlag << 30)) ^ ((yregD >> 3) << 15) ^ (yreg1 <<11)); p = 4; } if(mreg == 12) jit[p++] = 0x24; if(offsFlag == 2) { write32(jit +p, offs); return p+4; } else if(offsFlag) { jit[p] = (uint8_t)offs; return p+1; } return p; } static HEDLEY_ALWAYS_INLINE size_t _jit_vpxor_r(uint8_t* jit, uint_fast8_t yregD, uint_fast8_t yreg1, uint_fast8_t yreg2) { if(yreg2 > 7) { write32(jit, 0xEF7DE1C4 ^ ((yregD >> 3) << 15) ^ ((yreg2 >> 3) << 13) ^ (yreg1 <<19)); jit[4] = 0xC0 | ((yregD & 7) <<3) | ((yreg2 & 7) <<0); return 5; } else { write32(jit, (0xC0EFFDC5 | ((yregD & 7) <<27) | ((yreg2 & 7) <<24)) ^ ((yregD >> 3) << 15) ^ (yreg1 <<11)); return 4; } } static HEDLEY_ALWAYS_INLINE size_t _jit_vmovdqa(uint8_t* jit, uint_fast8_t yreg, uint_fast8_t yreg2) { if(yreg2 > 7) { write32(jit, 0x6F7DE1C4 ^ ((yreg >> 3) << 15) ^ ((yreg2 >> 3) << 13)); jit[4] = 0xC0 | ((yreg & 7) <<3) | ((yreg2 & 7) <<0); return 5; } else { write32(jit, (0xC06FFDC5 | ((yreg & 7) <<27) | ((yreg2 & 7) <<24)) ^ ((yreg >> 3) << 15)); return 4; } } static HEDLEY_ALWAYS_INLINE size_t _jit_vmovdqa_load(uint8_t* jit, uint_fast8_t yreg, uint_fast8_t mreg, int32_t offs) { size_t p; unsigned offsFlag = (offs != 0 || mreg == 13) << (int)(((offs+128) & ~0xFF) != 0); if(mreg > 7) { write32(jit, 0x6F7DE1C4 ^ ((yreg >> 3) << 15) ^ ((mreg >> 3) << 13)); jit[4] = (offsFlag<<6) | ((yreg & 7) <<3) | ((mreg & 7) <<0); p = 5; } else { write32(jit, (0x006FFDC5 | ((yreg & 7) <<27) | ((mreg & 7) <<24) | (offsFlag << 30)) ^ ((yreg >> 3) << 15)); p = 4; } if(mreg == 12) jit[p++] = 0x24; if(offsFlag == 2) { write32(jit +p, offs); return p+4; } else if(offsFlag) { jit[p] = (uint8_t)offs; return p+1; } return p; } static HEDLEY_ALWAYS_INLINE size_t _jit_vmovdqa_store(uint8_t* jit, uint_fast8_t mreg, int32_t offs, uint_fast8_t yreg) { size_t p; unsigned offsFlag = (offs != 0 || mreg == 13) << (int)(((offs+128) & ~0xFF) != 0); if(mreg > 7) { write32(jit, 0x7F7DE1C4 ^ ((yreg >> 3) << 15) ^ ((mreg >> 3) << 13)); jit[4] = (offsFlag<<6) | ((yreg & 7) <<3) | ((mreg & 7) <<0); p = 5; } else { write32(jit, (0x007FFDC5 | ((yreg & 7) <<27) | ((mreg & 7) <<24) | (offsFlag << 30)) ^ ((yreg >> 3) << 15)); p = 4; } if(mreg == 12) jit[p++] = 0x24; if(offsFlag == 2) { write32(jit +p, offs); return p+4; } else if(offsFlag) { jit[p] = (uint8_t)offs; return p+1; } return p; } /** AVX3 (512-bit) EVEX coded instructions **/ static HEDLEY_ALWAYS_INLINE size_t _jit_vpxord_m(uint8_t* jit, uint_fast8_t zregD, uint_fast8_t zreg1, uint_fast8_t mreg, int32_t offs) { unsigned offsFlag = (offs != 0 || mreg == 13) << (int)(((offs+128*64) & ~0x3FC0) != 0); write32(jit, 0x487DF162 ^ ((zregD & 8) <<12) ^ ((zregD & 16) << 8) ^ ((zreg1 & 15) <<19) ^ ((zreg1 & 16) <<23) ^ ((mreg & 8) <<10)); write32(jit+4, 0x2400EF | ((zregD & 7) <<11) | ((mreg & 7) << 8) | (offsFlag << 14)); int isM12 = (mreg == 12); jit += 6+isM12; if(offsFlag == 2) { write32(jit, offs); return 10+isM12; } else if(offs || mreg == 13) { *jit = (offs>>6); return 7+isM12; } return 6+isM12; } static HEDLEY_ALWAYS_INLINE size_t _jit_vpxord_r(uint8_t* jit, uint_fast8_t zregD, uint_fast8_t zreg1, uint_fast8_t zreg2) { write32(jit, 0x487DF162 ^ ((zregD & 8) <<12) ^ ((zregD & 16) << 8) ^ ((zreg1 & 15) <<19) ^ ((zreg1 & 16) <<23) ^ ((zreg2 & 24) <<10)); write16(jit+4, 0xC0EF | ((zregD & 7) <<11) | ((zreg2 & 7) << 8)); return 6; } static HEDLEY_ALWAYS_INLINE size_t _jit_vpternlogd_m(uint8_t* jit, uint_fast8_t zreg1, uint_fast8_t zreg2, uint_fast8_t mreg, int32_t offs, uint8_t op) { unsigned offsFlag = (offs != 0 || mreg == 13) << (int)(((offs+128*64) & ~0x3FC0) != 0); write32(jit, 0x487DF362 ^ ((zreg1 & 8) <<12) ^ ((zreg1 & 16) << 8) ^ ((zreg2 & 15) <<19) ^ ((zreg2 & 16) <<23) ^ ((mreg & 8) <<10)); write32(jit+4, 0x240025 | ((zreg1 & 7) <<11) | ((mreg & 7) << 8) | (offsFlag << 14)); int isM12 = (mreg == 12); jit += 6+isM12; if(offsFlag == 2) { write32(jit, offs); *(jit+4) = op; return 11+isM12; } else if(offs || mreg == 13) { write16(jit, (uint8_t)(offs>>6) | (op <<8)); return 8+isM12; } *jit = op; return 7+isM12; } static HEDLEY_ALWAYS_INLINE size_t _jit_vpternlogd_r(uint8_t* jit, uint_fast8_t zreg1, uint_fast8_t zreg2, uint_fast8_t zreg3, uint8_t op) { write32(jit, 0x487DF362 ^ ((zreg1 & 8) <<12) ^ ((zreg1 & 16) << 8) ^ ((zreg2 & 15) <<19) ^ ((zreg2 & 16) <<23) ^ ((zreg3 & 24) <<10)); write32(jit+4, 0x00C025 | ((zreg1 & 7) <<11) | ((zreg3 & 7) << 8) | (op<<24)); return 7; } static HEDLEY_ALWAYS_INLINE size_t _jit_vmovdqa32(uint8_t* jit, uint_fast8_t zregD, uint_fast8_t zreg) { write32(jit, 0x487DF162 ^ ((zregD & 8) <<12) ^ ((zregD & 16) << 8) ^ ((zreg & 24) <<10)); write16(jit+4, 0xC06F | ((zregD & 7) <<11) | ((zreg & 7) << 8)); return 6; } static HEDLEY_ALWAYS_INLINE size_t _jit_vmovdqa32_load(uint8_t* jit, uint_fast8_t zreg, uint_fast8_t mreg, int32_t offs) { unsigned offsFlag = (offs != 0 || mreg == 13) << (int)(((offs+128*64) & ~0x3FC0) != 0); write32(jit, 0x487DF162 ^ ((zreg & 8) <<12) ^ ((zreg & 16) << 8) ^ ((mreg & 8) <<10)); write32(jit+4, 0x24006F | ((zreg & 7) <<11) | ((mreg & 7) << 8) | (offsFlag << 14)); int isM12 = (mreg == 12); jit += 6+isM12; if(offsFlag == 2) { write32(jit, offs); return 10+isM12; } else if(offs || mreg == 13) { *jit = (offs>>6); return 7+isM12; } return 6+isM12; } static HEDLEY_ALWAYS_INLINE size_t _jit_vmovdqa32_store(uint8_t* jit, uint_fast8_t mreg, int32_t offs, uint_fast8_t zreg) { unsigned offsFlag = (offs != 0 || mreg == 13) << (int)(((offs+128*64) & ~0x3FC0) != 0); write32(jit, 0x487DF162 ^ ((zreg & 8) <<12) ^ ((zreg & 16) << 8) ^ ((mreg & 8) <<10)); write32(jit+4, 0x24007F | ((zreg & 7) <<11) | ((mreg & 7) << 8) | (offsFlag << 14)); int isM12 = (mreg == 12); jit += 6+isM12; if(offsFlag == 2) { write32(jit, offs); return 10+isM12; } else if(offs || mreg == 13) { *jit = (offs>>6); return 7+isM12; } return 6+isM12; } static HEDLEY_ALWAYS_INLINE size_t _jit_push(uint8_t* jit, uint_fast8_t reg) { jit[0] = 0x50 | reg; return 1; } static HEDLEY_ALWAYS_INLINE size_t _jit_pop(uint8_t* jit, uint_fast8_t reg) { jit[0] = 0x58 | reg; return 1; } static HEDLEY_ALWAYS_INLINE size_t _jit_jmp(uint8_t* jit, uint8_t* addr) { int32_t target = (int32_t)(addr - jit -2); if((target+128) & ~0xFF) { *(jit++) = 0xE9; write32(jit, target -3); return 5; } else { write16(jit, 0xEB | lshift32(target & 0xff, 8)); return 2; } } static HEDLEY_ALWAYS_INLINE size_t _jit_jcc(uint8_t* jit, char op, uint8_t* addr) { int32_t target = (int32_t)(addr - jit -2); if((target+128) & ~0xFF) { *(jit++) = 0x0F; *(jit++) = 0x80 | op; write32(jit, target -4); return 6; } else { write16(jit, 0x70 | op | lshift32(target & 0xff, 8)); return 2; } } static HEDLEY_ALWAYS_INLINE size_t _jit_cmp_r(uint8_t* jit, uint_fast8_t reg, uint_fast8_t reg2) { size_t p = _jit_rxx_pref(&jit, reg, reg2); reg &= 7; reg2 &= 7; write16(jit, 0xC039 | ((uint16_t)reg2 << 11) | ((uint16_t)reg << 8)); return p+2; } static HEDLEY_ALWAYS_INLINE size_t _jit_add_i(uint8_t* jit, uint_fast8_t reg, int32_t val) { size_t p = _jit_rxx_pref(&jit, reg, 0); if((val + 128) & ~0xff) { if(reg == AX) { *jit = 5; jit += 1; write32(jit, val); return p+5; } else { write16(jit, 0xC081 | ((reg&7) << 8)); jit += 2; write32(jit, val); return p+6; } } else { write16(jit, 0xC083 | ((reg&7) << 8)); jit += 2; *jit = (int8_t)val; return p+3; } } /* TODO: consider supporting shorter sequences for sub, xor, and etc */ static HEDLEY_ALWAYS_INLINE size_t _jit_sub_i(uint8_t* jit, uint_fast8_t reg, int32_t val) { size_t p = _jit_rxx_pref(&jit, reg, 0); reg &= 7; write16(jit, 0xC083 | (reg << 8)); jit += 2; write32(jit, val); return p+6; } static HEDLEY_ALWAYS_INLINE size_t _jit_sub_r(uint8_t* jit, uint_fast8_t reg, uint_fast8_t reg2) { size_t p = _jit_rxx_pref(&jit, reg, reg2); reg &= 7; reg2 &= 7; write16(jit, 0xC029 | (reg2 << 11) | (reg << 8)); return p+2; } static HEDLEY_ALWAYS_INLINE size_t _jit_and_i(uint8_t* jit, uint_fast8_t reg, int32_t val) { size_t p = _jit_rxx_pref(&jit, reg, 0); reg &= 7; write16(jit, 0xE081 | (reg << 11)); jit += 2; write32(jit, val); return p+6; } static HEDLEY_ALWAYS_INLINE size_t _jit_xor_r(uint8_t* jit, uint_fast8_t reg, uint_fast8_t reg2) { size_t p = _jit_rxx_pref(&jit, reg, reg2); reg &= 7; reg2 &= 7; write16(jit, 0xC031 | (reg2 << 11) | (reg << 8)); return p+2; } static HEDLEY_ALWAYS_INLINE size_t _jit_xor_m(uint8_t* jit, uint_fast8_t reg, uint_fast8_t mreg, int32_t offs) { size_t p = _jit_rxx_pref(&jit, mreg, reg); p += mreg == 12; reg &= 7; if((offs+128) & ~0xFF) { write32(jit, 0x248033 | (reg <<11) | ((mreg&7) << 8)); jit += mreg == 12; write32(jit +2, offs); return p+6; } else if(offs || mreg == 13) { write32(jit, 0x244033 | (reg <<11) | ((mreg&7) << 8)); jit += mreg == 12; jit[2] = (uint8_t)offs; return p+3; } else { write32(jit, 0x240033 | (reg <<11) | ((mreg&7) << 8)); return p+2; } } static HEDLEY_ALWAYS_INLINE size_t _jit_xor_rm(uint8_t* jit, uint_fast8_t mreg, int32_t offs, uint_fast8_t reg) { size_t p = _jit_rxx_pref(&jit, mreg, reg); p += mreg == 12; reg &= 7; if((offs+128) & ~0xFF) { write32(jit, 0x248031 | (reg <<11) | ((mreg&7) << 8)); jit += mreg == 12; write32(jit +2, offs); return p+6; } else if(offs || mreg == 13) { write32(jit, 0x244031 | (reg <<11) | ((mreg&7) << 8)); jit += mreg == 12; jit[2] = (uint8_t)offs; return p+3; } else { write32(jit, 0x240031 | (reg <<11) | ((mreg&7) << 8)); return p+2; } } static HEDLEY_ALWAYS_INLINE size_t _jit_mov_i(uint8_t* jit, uint_fast8_t reg, intptr_t val) { #ifdef PLATFORM_AMD64 _jit_rxx_pref(&jit, reg, 0); reg &= 7; if(val > 0x3fffffffLL || val < -0x40000000LL) { write16(jit, 0xB8 | reg); write64(jit +2, val); return 10; } else { write32(jit, 0xC0C7 | (reg << 8)); write32(jit +3, (int32_t)val); return 7; } #else *(jit++) = 0xB8 | reg; write32(jit, (int32_t)val); return 5; #endif } static HEDLEY_ALWAYS_INLINE size_t _jit_mov_r(uint8_t* jit, uint_fast8_t reg, uint_fast8_t reg2) { size_t p = _jit_rxx_pref(&jit, reg, reg2); reg &= 7; reg2 &= 7; write16(jit, 0xC089 | (reg2 << 11) | (reg << 8)); return p+2; } static HEDLEY_ALWAYS_INLINE size_t _jit_mov_load(uint8_t* jit, uint_fast8_t reg, uint_fast8_t mreg, int32_t offs) { size_t p = _jit_rxx_pref(&jit, mreg, reg); p += mreg == 12; reg &= 7; if((offs+128) & ~0xFF) { write32(jit, 0x24808B | (reg <<11) | ((mreg&7) << 8)); jit += mreg == 12; write32(jit +2, offs); return p+6; } else if(offs || mreg == 13) { write32(jit, 0x24408B | (reg <<11) | ((mreg&7) << 8)); jit += mreg == 12; jit[2] = (uint8_t)offs; return p+3; } else { write32(jit, 0x24008B | (reg <<11) | ((mreg&7) << 8)); return p+2; } } static HEDLEY_ALWAYS_INLINE size_t _jit_mov_store(uint8_t* jit, uint_fast8_t mreg, int32_t offs, uint_fast8_t reg) { size_t p = _jit_rxx_pref(&jit, mreg, reg); p += mreg == 12; reg &= 7; if((offs+128) & ~0xFF) { write32(jit, 0x248089 | (reg <<11) | ((mreg&7) << 8)); jit += mreg == 12; write32(jit +2, offs); return p+6; } else if(offs || mreg == 13) { write32(jit, 0x244089 | (reg <<11) | ((mreg&7) << 8)); jit += mreg == 12; jit[2] = (uint8_t)offs; return p+3; } else { write32(jit, 0x240089 | (reg <<11) | ((mreg&7) << 8)); return p+2; } } static HEDLEY_ALWAYS_INLINE size_t _jit_prefetch_m(uint8_t* jit, uint_fast8_t level, uint_fast8_t mreg, int32_t offs) { assert(level-1 < 3); // use _MM_HINT_T* constants size_t p = _jit_rex_pref(&jit, 0, mreg); p += mreg == 12; mreg &= 7; if((offs+128) & ~0xFF) { write32(jit, 0x2480180F | (level << 19) | (mreg << 16)); jit += mreg == 12; write32(jit +3, offs); return p+7; } else if(offs || mreg == 13) { write32(jit, 0x2440180F | (level << 19) | (mreg << 16)); jit += mreg == 12; jit[3] = (uint8_t)offs; return p+4; } else { write32(jit, 0x2400180F | (level << 19) | (mreg << 16)); return p+3; } } static HEDLEY_ALWAYS_INLINE size_t _jit_nop(uint8_t* jit) { jit[0] = 0x90; return 1; } static HEDLEY_ALWAYS_INLINE size_t _jit_align32(uint8_t* jit) { size_t p = 0; while((intptr_t)jit & 0x1F) { p += _jit_nop(jit++); } return p; } static HEDLEY_ALWAYS_INLINE size_t _jit_ret(uint8_t* jit) { jit[0] = 0xC3; return 1; } typedef struct { void* w; // write pointer void* x; // execute pointer size_t len; } jit_wx_pair; #if defined(_WINDOWS) || defined(__WINDOWS__) || defined(_WIN32) || defined(_WIN64) # ifndef NOMINMAX # define NOMINMAX # endif # include static HEDLEY_ALWAYS_INLINE jit_wx_pair* jit_alloc(size_t len) { void* mem = VirtualAlloc(NULL, len, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE); if(!mem) return NULL; if((uintptr_t)mem & 63) { // allocated page not cacheline aligned? something's not right... VirtualFree(mem, 0, MEM_RELEASE); return NULL; } jit_wx_pair* ret = (jit_wx_pair*)malloc(sizeof(jit_wx_pair)); if(!ret) { VirtualFree(mem, 0, MEM_RELEASE); return NULL; } ret->x = mem; ret->w = mem; ret->len = len; return ret; } static HEDLEY_ALWAYS_INLINE void jit_free(void* mem) { jit_wx_pair* pair = (jit_wx_pair*)mem; VirtualFree(pair->w, 0, MEM_RELEASE); free(mem); } #else # include # ifdef GF16_XORJIT_ENABLE_DUAL_MAPPING # include # include # include # endif static HEDLEY_ALWAYS_INLINE jit_wx_pair* jit_alloc(size_t len) { jit_wx_pair* ret = (jit_wx_pair*)malloc(sizeof(jit_wx_pair)); if(!ret) return NULL; ret->len = len; void* mem = mmap(NULL, len, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_PRIVATE | # ifdef MAP_ANONYMOUS MAP_ANONYMOUS, # else MAP_ANON, # endif -1, 0); if(mem) { if((uintptr_t)mem & 63) { // page not cacheline aligned? something's gone wrong... munmap(mem, len); free(ret); return NULL; } ret->w = mem; ret->x = mem; return ret; } // couldn't map W+X page, try dual mapping trick (map aliased W and X pages) #ifdef GF16_XORJIT_ENABLE_DUAL_MAPPING // shm_open requires linking with librt, and seems to import some threading references, so try not to include if not needed char path[128]; snprintf(path, sizeof(path), "/gf16_xorjit_shm_alloc(%lu)", (long)getpid()); int fd = shm_open(path, O_RDWR | O_CREAT | O_EXCL, 0700); if(fd != -1) { shm_unlink(path); if(ftruncate(fd, len) != -1) { ret->w = mmap(NULL, len, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); ret->x = mmap(NULL, len, PROT_READ | PROT_EXEC, MAP_SHARED, fd, 0); if(ret->w && ret->x && (uintptr_t)(ret->w) & 63 == 0 && (uintptr_t)(ret->x) & 63 == 0) { // success close(fd); return ret; } if(ret->w) munmap(ret->w, len); if(ret->x) munmap(ret->x, len); } close(fd); } #endif free(ret); return NULL; } static HEDLEY_ALWAYS_INLINE void jit_free(void* mem) { jit_wx_pair* pair = (jit_wx_pair*)mem; if(pair->w != pair->x) munmap(pair->x, pair->len); munmap(pair->w, pair->len); free(mem); } #endif #endif /*__GF_XOR_JIT__*/ par2cmdline-turbo-1.5.0/parpar/gf16/xor_jit_stub_masm64.asm000066400000000000000000000061641524160147200235130ustar00rootroot00000000000000IFDEF RAX .code PUBLIC gf16_xor_jit_stub gf16_xor_jit_stub PROC ; setup stack push rbp push rsi lea rax, [rsp-16*12] mov rbp, rax and rax, 0Fh sub rbp, rax ; move registers to what we need them as mov rax, rcx mov rcx, rdx mov rdx, r8 mov rsi, r9 ; save XMM registers movaps [rbp+16*1], xmm6 movaps [rbp+16*2], xmm7 movaps [rbp+16*3], xmm8 movaps [rbp+16*4], xmm9 movaps [rbp+16*5], xmm10 movaps [rbp+16*6], xmm11 movaps [rbp+16*7], xmm12 movaps [rbp+16*8], xmm13 movaps [rbp+16*9], xmm14 movaps [rbp+16*10], xmm15 ; run JIT code call qword ptr [rsp+56] ; restore XMM registers movaps xmm6, [rbp+16*1] movaps xmm7, [rbp+16*2] movaps xmm8, [rbp+16*3] movaps xmm9, [rbp+16*4] movaps xmm10, [rbp+16*5] movaps xmm11, [rbp+16*6] movaps xmm12, [rbp+16*7] movaps xmm13, [rbp+16*8] movaps xmm14, [rbp+16*9] movaps xmm15, [rbp+16*10] pop rsi pop rbp ret gf16_xor_jit_stub ENDP IFDEF YMM0 PUBLIC gf16_xor256_jit_stub gf16_xor256_jit_stub PROC ; setup stack push rbp push rsi lea rax, [rsp-16*12] mov rbp, rax and rax, 0Fh sub rbp, rax ; move registers to what we need them as mov rax, rcx mov rcx, rdx mov rdx, r8 mov rsi, r9 ; save XMM registers vmovaps [rbp+16*1], xmm6 vmovaps [rbp+16*2], xmm7 vmovaps [rbp+16*3], xmm8 vmovaps [rbp+16*4], xmm9 vmovaps [rbp+16*5], xmm10 vmovaps [rbp+16*6], xmm11 vmovaps [rbp+16*7], xmm12 vmovaps [rbp+16*8], xmm13 vmovaps [rbp+16*9], xmm14 vmovaps [rbp+16*10], xmm15 ; run JIT code call qword ptr [rsp+56] ; restore XMM registers vmovaps xmm6, [rbp+16*1] vmovaps xmm7, [rbp+16*2] vmovaps xmm8, [rbp+16*3] vmovaps xmm9, [rbp+16*4] vmovaps xmm10, [rbp+16*5] vmovaps xmm11, [rbp+16*6] vmovaps xmm12, [rbp+16*7] vmovaps xmm13, [rbp+16*8] vmovaps xmm14, [rbp+16*9] vmovaps xmm15, [rbp+16*10] pop rsi pop rbp ret gf16_xor256_jit_stub ENDP PUBLIC gf16_xor256_jit_multi_stub gf16_xor256_jit_multi_stub PROC ; non-volatile regs push rsi push rdi push rbx push r12 push r14 push r15 push rbp ; setup stack lea rax, [rsp-16*12] mov rbp, rax and rax, 0Fh sub rbp, rax ; save XMM registers vmovaps [rbp+16*1], xmm6 vmovaps [rbp+16*2], xmm7 vmovaps [rbp+16*3], xmm8 vmovaps [rbp+16*4], xmm9 vmovaps [rbp+16*5], xmm10 vmovaps [rbp+16*6], xmm11 vmovaps [rbp+16*7], xmm12 vmovaps [rbp+16*8], xmm13 vmovaps [rbp+16*9], xmm14 vmovaps [rbp+16*10], xmm15 ; move registers to what we need them as mov rax, rcx ; dst mov rcx, rdx ; dstEnd mov r12, r9 ; fn ; load src pointers into registers mov rdx, [r8] mov rsi, [r8+8] mov rdi, [r8+16] mov r9 , [r8+32] mov r10, [r8+40] mov r11, [r8+48] mov rbx, [r8+56] mov r14, [r8+64] mov r15, [r8+72] mov r8 , [r8+24] ; run JIT code call r12 ; restore XMM registers vmovaps xmm6, [rbp+16*1] vmovaps xmm7, [rbp+16*2] vmovaps xmm8, [rbp+16*3] vmovaps xmm9, [rbp+16*4] vmovaps xmm10, [rbp+16*5] vmovaps xmm11, [rbp+16*6] vmovaps xmm12, [rbp+16*7] vmovaps xmm13, [rbp+16*8] vmovaps xmm14, [rbp+16*9] vmovaps xmm15, [rbp+16*10] pop rbp pop r15 pop r14 pop r12 pop rbx pop rdi pop rsi ret gf16_xor256_jit_multi_stub ENDP ENDIF ; IFDEF YMM0 ENDIF ; IFDEF RAX END par2cmdline-turbo-1.5.0/parpar/hasher.vcxproj000066400000000000000000000254621524160147200212350ustar00rootroot00000000000000 Debug ARM Debug ARM64 Debug Win32 Release ARM Release ARM64 Release Win32 Debug x64 Release x64 {c4657dcb-7b83-4608-a1d5-df38d37c6fcf} parpar_hasher 10.0 StaticLibrary true v143 Unicode StaticLibrary false v143 true Unicode true false Level3 true _DEBUG;_CONSOLE;PARPAR_ENABLE_HASHER_MD5CRC;%(PreprocessorDefinitions) MultiThreadedDebug true true 4267;%(DisableSpecificWarnings) Console true Level3 true true false NDEBUG;_CONSOLE;PARPAR_ENABLE_HASHER_MD5CRC;%(PreprocessorDefinitions) MultiThreaded true false 4267;%(DisableSpecificWarnings) Console true true true StreamingSIMDExtensions2 StreamingSIMDExtensions2 -mpclmul -msse4.1 %(AdditionalOptions) -mpclmul -msse4.1 %(AdditionalOptions) AdvancedVectorExtensions AdvancedVectorExtensions -mxop -mavx %(AdditionalOptions) -mxop -mavx %(AdditionalOptions) AdvancedVectorExtensions AdvancedVectorExtensions -mpclmul -mavx -mbmi %(AdditionalOptions) -mpclmul -mavx -mbmi %(AdditionalOptions) AdvancedVectorExtensions2 AdvancedVectorExtensions2 AdvancedVectorExtensions512 AdvancedVectorExtensions512 -mavx512f %(AdditionalOptions) -mavx512f %(AdditionalOptions) AdvancedVectorExtensions512 AdvancedVectorExtensions512 -mavx512vl -mavx512bw -mbmi2 -mpclmul %(AdditionalOptions) -mavx512vl -mavx512bw -mbmi2 -mpclmul %(AdditionalOptions) -march=armv8-a+crc %(AdditionalOptions) -march=armv8-a+crc %(AdditionalOptions) -mfpu=neon %(AdditionalOptions) -mfpu=neon -march=armv8-a+crc %(AdditionalOptions) -march=armv8-a+crc %(AdditionalOptions) -march=armv8-a+sve2 %(AdditionalOptions) par2cmdline-turbo-1.5.0/parpar/hasher/000077500000000000000000000000001524160147200176075ustar00rootroot00000000000000par2cmdline-turbo-1.5.0/parpar/hasher/crc_arm.h000066400000000000000000000030161524160147200213660ustar00rootroot00000000000000#include "../src/platform.h" #include "../src/stdint.h" #if defined(_MSC_VER) && !defined(__clang__) #include #else #include #endif // function unused /* HEDLEY_MALLOC static void* crc_alloc_arm() { uint32_t* mem = (uint32_t*)malloc(4); *mem = 0xffffffff; return mem; } */ static HEDLEY_ALWAYS_INLINE void crc_init_arm(void* crc) { memset(crc, 0xff, sizeof(uint32_t)); } static HEDLEY_ALWAYS_INLINE void crc_process_block_arm(void* HEDLEY_RESTRICT crc, const void* HEDLEY_RESTRICT src) { uint32_t* _crc = (uint32_t*)crc; #ifdef __aarch64__ for(int i=0; i<8; i++) *_crc = __crc32d(*_crc, _LE64(read64((uint64_t *)src + i))); #else for(int i=0; i<16; i++) *_crc = __crc32w(*_crc, _LE32(read32((uint32_t *)src + i))); #endif } static HEDLEY_ALWAYS_INLINE uint32_t crc_finish_arm(void* HEDLEY_RESTRICT state, const void* HEDLEY_RESTRICT src, size_t len) { uint32_t crc = read32(state); uint8_t* src_ = (uint8_t*)src; #ifdef __aarch64__ while (len >= sizeof(uint64_t)) { crc = __crc32d(crc, _LE64(read64(src_))); src_ += sizeof(uint64_t); len -= sizeof(uint64_t); } if (len & sizeof(uint32_t)) { crc = __crc32w(crc, _LE32(read32(src_))); src_ += sizeof(uint32_t); } #else while (len >= sizeof(uint32_t)) { crc = __crc32w(crc, _LE32(read32(src_))); src_ += sizeof(uint32_t); len -= sizeof(uint32_t); } #endif if (len & sizeof(uint16_t)) { crc = __crc32h(crc, _LE16(read16(src_))); src_ += sizeof(uint16_t); } if (len & sizeof(uint8_t)) crc = __crc32b(crc, *src_); return ~crc; } par2cmdline-turbo-1.5.0/parpar/hasher/crc_clmul.h000066400000000000000000000133011524160147200217210ustar00rootroot00000000000000// taken from zlib-ng / Intel's zlib patch, modified to remove zlib dependencies /* * Compute the CRC32 using a parallelized folding approach with the PCLMULQDQ * instruction. * * A white paper describing this algorithm can be found at: * http://www.intel.com/content/dam/www/public/us/en/documents/white-papers/fast-crc-computation-generic-polynomials-pclmulqdq-paper.pdf * * Copyright (C) 2013 Intel Corporation. All rights reserved. * Authors: * Wajdi Feghali * Jim Guilford * Vinodh Gopal * Erdinc Ozturk * Jim Kukunas * * For conditions of distribution and use, see copyright notice in zlib.h */ #include "../src/platform.h" #include "../src/stdint.h" static HEDLEY_ALWAYS_INLINE __m128i double_xor(__m128i a, __m128i b, __m128i c) { #ifdef _CRC_USE_AVX512_ return _mm_ternarylogic_epi32(a, b, c, 0x96); #else a = _mm_xor_si128(a, b); return _mm_xor_si128(a, c); #endif } static HEDLEY_ALWAYS_INLINE __m128i do_one_fold_merge(__m128i src, __m128i data) { const __m128i xmm_fold4 = _mm_set_epi32( 0x00000001, 0x54442bd4, 0x00000001, 0xc6e41596 ); return double_xor( _mm_clmulepi64_si128(src, xmm_fold4, 0x01), data, _mm_clmulepi64_si128(src, xmm_fold4, 0x10) ); } static HEDLEY_ALWAYS_INLINE void crc_init_clmul(void* state) { __m128i* state_ = (__m128i*)state; state_[0] = _mm_cvtsi32_si128(0x9db42487); state_[1] = _mm_setzero_si128(); state_[2] = _mm_setzero_si128(); state_[3] = _mm_setzero_si128(); } // function currently unused /* HEDLEY_MALLOC static void* crc_alloc_clmul() { __m128i* state = (__m128i*)malloc(64); crc_init_clmul(state); return state; } */ static HEDLEY_ALWAYS_INLINE void crc_process_block_clmul(void* HEDLEY_RESTRICT state, const void* HEDLEY_RESTRICT src) { __m128i xmm_t0 = _mm_loadu_si128((__m128i *)src); __m128i xmm_t1 = _mm_loadu_si128((__m128i *)src + 1); __m128i xmm_t2 = _mm_loadu_si128((__m128i *)src + 2); __m128i xmm_t3 = _mm_loadu_si128((__m128i *)src + 3); __m128i* crc = (__m128i*)state; crc[0] = do_one_fold_merge(crc[0], xmm_t0); crc[1] = do_one_fold_merge(crc[1], xmm_t1); crc[2] = do_one_fold_merge(crc[2], xmm_t2); crc[3] = do_one_fold_merge(crc[3], xmm_t3); } extern const unsigned pshufb_shf_table[60]; static uint32_t crc_finish_clmul(void* HEDLEY_RESTRICT state, const void* HEDLEY_RESTRICT src, long len) { __m128i xmm_t0, xmm_t1, xmm_t2, xmm_t3; __m128i crc_fold; uint8_t* _src = (uint8_t*)src; __m128i* crc = (__m128i*)state; if(len >= 48) { xmm_t0 = _mm_loadu_si128((__m128i *)_src); xmm_t1 = _mm_loadu_si128((__m128i *)_src + 1); xmm_t2 = _mm_loadu_si128((__m128i *)_src + 2); xmm_t3 = crc[3]; crc[3] = do_one_fold_merge(crc[2], xmm_t2); crc[2] = do_one_fold_merge(crc[1], xmm_t1); crc[1] = do_one_fold_merge(crc[0], xmm_t0); crc[0] = xmm_t3; } else if(len >= 32) { xmm_t0 = _mm_loadu_si128((__m128i *)_src); xmm_t1 = _mm_loadu_si128((__m128i *)_src + 1); xmm_t2 = crc[2]; xmm_t3 = crc[3]; crc[3] = do_one_fold_merge(crc[1], xmm_t1); crc[2] = do_one_fold_merge(crc[0], xmm_t0); crc[1] = xmm_t3; crc[0] = xmm_t2; } else if(len >= 16) { xmm_t0 = _mm_loadu_si128((__m128i *)_src); xmm_t3 = crc[3]; crc[3] = do_one_fold_merge(crc[0], xmm_t0); crc[0] = crc[1]; crc[1] = crc[2]; crc[2] = xmm_t3; } _src += (len & 48); len &= 15; if(len > 0) { __m128i xmm_shl = _mm_load_si128((__m128i *)pshufb_shf_table + (len - 1)); __m128i xmm_shr = _mm_xor_si128(xmm_shl, _mm_set1_epi8(-128)); #ifdef _CRC_USE_AVX512_ xmm_t0 = _mm_maskz_loadu_epi8(_bzhi_u32(-1, len), _src); #else xmm_t0 = _mm_setzero_si128(); memcpy(&xmm_t0, _src, len); #endif xmm_t1 = _mm_shuffle_epi8(crc[0], xmm_shl); crc[0] = _mm_or_si128( _mm_shuffle_epi8(crc[0], xmm_shr), _mm_shuffle_epi8(crc[1], xmm_shl) ); crc[1] = _mm_or_si128( _mm_shuffle_epi8(crc[1], xmm_shr), _mm_shuffle_epi8(crc[2], xmm_shl) ); crc[2] = _mm_or_si128( _mm_shuffle_epi8(crc[2], xmm_shr), _mm_shuffle_epi8(crc[3], xmm_shl) ); crc[3] = _mm_or_si128( _mm_shuffle_epi8(crc[3], xmm_shr), _mm_shuffle_epi8(xmm_t0, xmm_shl) ); crc[3] = do_one_fold_merge(xmm_t1, crc[3]); } crc_fold = _mm_set_epi32( 0x00000001, 0x751997d0, // rk2 0x00000000, 0xccaa009e // rk1 ); xmm_t0 = double_xor( crc[1], _mm_clmulepi64_si128(crc[0], crc_fold, 0x10), _mm_clmulepi64_si128(crc[0], crc_fold, 0x01) ); xmm_t0 = double_xor( crc[2], _mm_clmulepi64_si128(xmm_t0, crc_fold, 0x10), _mm_clmulepi64_si128(xmm_t0, crc_fold, 0x01) ); xmm_t0 = double_xor( crc[3], _mm_clmulepi64_si128(xmm_t0, crc_fold, 0x10), _mm_clmulepi64_si128(xmm_t0, crc_fold, 0x01) ); crc_fold = _mm_set_epi32( 0x00000001, 0x63cd6124, // rk6 0x00000000, 0xccaa009e // rk5 / rk1 ); xmm_t1 = _mm_xor_si128( _mm_clmulepi64_si128(xmm_t0, crc_fold, 0), _mm_srli_si128(xmm_t0, 8) ); xmm_t0 = _mm_slli_si128(xmm_t1, 4); xmm_t0 = _mm_clmulepi64_si128(xmm_t0, crc_fold, 0x10); #ifdef _CRC_USE_AVX512_ xmm_t0 = _mm_ternarylogic_epi32(xmm_t0, xmm_t1, _mm_set_epi32(0, -1, -1, 0), 0x28); #else xmm_t1 = _mm_and_si128(xmm_t1, _mm_set_epi32(0, -1, -1, 0)); xmm_t0 = _mm_xor_si128(xmm_t0, xmm_t1); #endif crc_fold = _mm_set_epi32( 0x00000001, 0xdb710640, // rk8 0x00000000, 0xf7011641 // rk7 ); xmm_t1 = _mm_clmulepi64_si128(xmm_t0, crc_fold, 0); xmm_t1 = _mm_clmulepi64_si128(xmm_t1, crc_fold, 0x10); #ifdef _CRC_USE_AVX512_ xmm_t1 = _mm_ternarylogic_epi32(xmm_t1, xmm_t0, xmm_t0, 0xC3); // NOT(XOR(t1, t0)) #else xmm_t0 = _mm_xor_si128(xmm_t0, _mm_set_epi32(0, -1, -1, 0)); xmm_t1 = _mm_xor_si128(xmm_t1, xmm_t0); #endif return _mm_extract_epi32(xmm_t1, 2); } par2cmdline-turbo-1.5.0/parpar/hasher/crc_rvzbc.h000066400000000000000000000124151524160147200217400ustar00rootroot00000000000000#include "../src/platform.h" #include "../src/stdint.h" #if __has_include() # include # if __riscv_xlen == 64 # define rv_clmul __riscv_clmul_64 # define rv_clmulh __riscv_clmulh_64 # else # define rv_clmul __riscv_clmul_32 # define rv_clmulh __riscv_clmulh_32 # endif #else static HEDLEY_ALWAYS_INLINE uintptr_t rv_clmul(uintptr_t x, uintptr_t y) { uintptr_t r; __asm__("clmul %0, %1, %2\n" : "=r"(r) : "r"(x), "r"(y) :); return r; } static HEDLEY_ALWAYS_INLINE uintptr_t rv_clmulh(uintptr_t x, uintptr_t y) { uintptr_t r; __asm__("clmulh %0, %1, %2\n" : "=r"(r) : "r"(x), "r"(y) :); return r; } #endif // TODO: test big-endian #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ # if __riscv_xlen == 64 # define SWAP __builtin_bswap64 # else # define SWAP __builtin_bswap32 # endif #else # define SWAP(d) (d) #endif static HEDLEY_ALWAYS_INLINE uintptr_t read_partial(const void* p, unsigned sz) { uintptr_t data = 0; memcpy(&data, p, sz); return SWAP(data); } static HEDLEY_ALWAYS_INLINE uintptr_t read_full(const uintptr_t* p) { return SWAP(*p); } #undef SWAP static HEDLEY_ALWAYS_INLINE void crc_init_rvzbc(void* crc) { memset(crc, 0, sizeof(uintptr_t)*3); uintptr_t init = 0x9226f562; // -1 / 2^32 #if __riscv_xlen == 64 init <<= 32; #endif memcpy((uintptr_t*)crc + 3, &init, sizeof(init)); } #if __riscv_xlen == 64 static const uint64_t MUL_HI = 0x15a546366 /*2^224*/, MUL_LO = 0xf1da05aa /*2^288*/; #define CLMULL rv_clmul #define CLMULH rv_clmulh #elif __riscv_xlen == 32 static const uint64_t MUL_HI = 0x140d44a2e /*2^128*/, MUL_LO = 0x1751997d0 /*2^160*/; #define CLMULL(x, k) rv_clmul(x, k & 0xffffffff) #define CLMULH(x, k) (rv_clmulh(x, k & 0xffffffff) ^ (k > 0xffffffffULL ? (x) : 0)) #else #error "Unknown __riscv_xlen" #endif static HEDLEY_ALWAYS_INLINE void crc_process_block_rvzbc(void* HEDLEY_RESTRICT crc, const void* HEDLEY_RESTRICT src) { uintptr_t* accum = (uintptr_t*)crc; uintptr_t* srcW = (uintptr_t*)src; for(int i=0; i<64; i+=sizeof(uintptr_t)*4) { uintptr_t tmpHi, tmpLo; tmpLo = CLMULL(accum[0], MUL_LO) ^ CLMULL(accum[1], MUL_HI); tmpHi = CLMULH(accum[0], MUL_LO) ^ CLMULH(accum[1], MUL_HI); accum[0] = tmpLo ^ read_full(srcW++); accum[1] = tmpHi ^ read_full(srcW++); tmpLo = CLMULL(accum[2], MUL_LO) ^ CLMULL(accum[3], MUL_HI); tmpHi = CLMULH(accum[2], MUL_LO) ^ CLMULH(accum[3], MUL_HI); accum[2] = tmpLo ^ read_full(srcW++); accum[3] = tmpHi ^ read_full(srcW++); } } static HEDLEY_ALWAYS_INLINE uint32_t crc_finish_rvzbc(void* HEDLEY_RESTRICT state, const void* HEDLEY_RESTRICT src, size_t len) { uintptr_t* accum = (uintptr_t*)state; uintptr_t* srcW = (uintptr_t*)src; #if __riscv_xlen == 64 if(len & sizeof(uintptr_t)*4) #else while(len >= sizeof(uintptr_t)*4) #endif { uintptr_t tmpHi, tmpLo; tmpLo = CLMULL(accum[0], MUL_LO) ^ CLMULL(accum[1], MUL_HI); tmpHi = CLMULH(accum[0], MUL_LO) ^ CLMULH(accum[1], MUL_HI); accum[0] = tmpLo ^ read_full(srcW++); accum[1] = tmpHi ^ read_full(srcW++); tmpLo = CLMULL(accum[2], MUL_LO) ^ CLMULL(accum[3], MUL_HI); tmpHi = CLMULH(accum[2], MUL_LO) ^ CLMULH(accum[3], MUL_HI); accum[2] = tmpLo ^ read_full(srcW++); accum[3] = tmpHi ^ read_full(srcW++); #if __riscv_xlen != 64 len -= sizeof(uintptr_t)*4; #endif } if(len & sizeof(uintptr_t)*2) { uintptr_t tmpLo = CLMULL(accum[0], MUL_LO) ^ CLMULL(accum[1], MUL_HI); uintptr_t tmpHi = CLMULH(accum[0], MUL_LO) ^ CLMULH(accum[1], MUL_HI); accum[0] = accum[2]; accum[1] = accum[3]; accum[2] = tmpLo ^ read_full(srcW++); accum[3] = tmpHi ^ read_full(srcW++); } if(len & sizeof(uintptr_t)) { uintptr_t tmpLo = CLMULL(accum[0], MUL_HI); uintptr_t tmpHi = CLMULH(accum[0], MUL_HI); accum[0] = accum[1]; accum[1] = accum[2]; accum[2] = accum[3] ^ tmpLo; accum[3] = tmpHi ^ read_full(srcW++); } size_t tail = len & (sizeof(uintptr_t)-1); if(tail) { unsigned shl = ((sizeof(uintptr_t) - tail) * 8), shr = tail * 8; uintptr_t tmp = accum[0] << shl; uintptr_t tmpLo = CLMULL(tmp, MUL_HI); uintptr_t tmpHi = CLMULH(tmp, MUL_HI); accum[0] = (accum[0] >> shr) | (accum[1] << shl); accum[1] = (accum[1] >> shr) | (accum[2] << shl); accum[2] = (accum[2] >> shr) | (accum[3] << shl); accum[3] = (accum[3] >> shr) | (read_partial(srcW, tail) << shl); accum[2] ^= tmpLo; accum[3] ^= tmpHi; } // done processing: fold everything down #if __riscv_xlen == 64 // fold 0,1 -> 2,3 accum[2] ^= rv_clmul(accum[0], 0x1751997d0) ^ rv_clmul(accum[1], 0xccaa009e); accum[3] ^= rv_clmulh(accum[0], 0x1751997d0) ^ rv_clmulh(accum[1], 0xccaa009e); // fold 2->3 accum[0] = rv_clmulh(accum[2], 0xccaa009e); accum[3] ^= rv_clmul(accum[2], 0xccaa009e); // fold 64b->32b accum[1] = rv_clmul(accum[3] & 0xffffffff, 0x163cd6124); accum[0] ^= accum[1] >> 32; accum[3] = accum[1] ^ (accum[3] >> 32); accum[3] <<= 32; #else // fold 0,1 -> 2,3 accum[2] ^= rv_clmul(accum[0], 0xccaa009e) ^ CLMULL(accum[1], 0x163cd6124); accum[3] ^= rv_clmulh(accum[0], 0xccaa009e) ^ CLMULH(accum[1], 0x163cd6124); // fold 2->3 accum[0] = CLMULH(accum[2], 0x163cd6124); accum[3] ^= CLMULL(accum[2], 0x163cd6124); #endif // reduction accum[3] = CLMULL(accum[3], 0xf7011641); accum[3] = CLMULH(accum[3], 0x1db710640); // maybe consider clmulr for XLEN=32 uint32_t crc = accum[0] ^ accum[3]; return ~crc; } par2cmdline-turbo-1.5.0/parpar/hasher/crc_slice4.h000066400000000000000000000034631524160147200220000ustar00rootroot00000000000000#include "../src/platform.h" #include "../src/stdint.h" // function currently unused /* HEDLEY_MALLOC static void* crc_alloc_slice4() { uint32_t* mem = (uint32_t*)malloc(4); *mem = 0xffffffff; return mem; } */ static HEDLEY_ALWAYS_INLINE void crc_init_slice4(void* crc) { memset(crc, 0xff, sizeof(uint32_t)); } // this is based off Fast CRC32 slice-by-4: https://create.stephan-brumme.com/crc32/ extern const uint32_t Crc32Lookup[4][256]; static HEDLEY_ALWAYS_INLINE uint32_t crc_process_iter_slice4(uint32_t crc, uint32_t current) { #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ current ^= (((crc&0xff) << 24) | ((crc&0xff00) << 8) | ((crc>>8) & 0xff00) | ((crc>>24) & 0xff)); return Crc32Lookup[0][ current & 0xFF] ^ Crc32Lookup[1][(current>> 8) & 0xFF] ^ Crc32Lookup[2][(current>>16) & 0xFF] ^ Crc32Lookup[3][(current>>24) & 0xFF]; #else current ^= crc; return Crc32Lookup[0][(current>>24) & 0xFF] ^ Crc32Lookup[1][(current>>16) & 0xFF] ^ Crc32Lookup[2][(current>> 8) & 0xFF] ^ Crc32Lookup[3][ current & 0xFF]; #endif } static HEDLEY_ALWAYS_INLINE void crc_process_block_slice4(void* HEDLEY_RESTRICT state, const void* HEDLEY_RESTRICT src) { uint32_t crc = *(uint32_t*)state; const uint32_t* current = (uint32_t*)src; for(int i=0; i<16; i++) crc = crc_process_iter_slice4(crc, read32(current+i)); *(uint32_t*)state = crc; } static HEDLEY_ALWAYS_INLINE uint32_t crc_finish_slice4(void* HEDLEY_RESTRICT state, const void* HEDLEY_RESTRICT src, size_t len) { uint32_t crc = read32(state); const uint32_t* current = (uint32_t*)src; for(; len >= 4; len -= 4) crc = crc_process_iter_slice4(crc, read32(current++)); const uint8_t* currentChar = (const uint8_t*)current; while(len--) crc = (crc >> 8) ^ Crc32Lookup[0][(crc & 0xFF) ^ *currentChar++]; return ~crc; } par2cmdline-turbo-1.5.0/parpar/hasher/crc_zeropad.c000066400000000000000000000043101524160147200222440ustar00rootroot00000000000000#include "../src/hedley.h" #include "../src/stdint.h" // workaround MSVC complaining "unary minus operator applied to unsigned type, result still unsigned" #define NEGATE(n) (uint32_t)(-((int32_t)(n))) static HEDLEY_ALWAYS_INLINE uint32_t crc_multiply(uint32_t a, uint32_t b) { uint32_t res = 0; for(int i=0; i<31; i++) { res ^= NEGATE(b>>31) & a; a = ((a >> 1) ^ (0xEDB88320 & NEGATE(a&1))); b <<= 1; } res ^= NEGATE(b>>31) & a; return res; } /* clmul version static HEDLEY_ALWAYS_INLINE uint32_t crc_multiply(uint32_t a, uint32_t b) { // do the actual multiply __m128i prod = _mm_clmulepi64_si128(_mm_cvtsi32_si128(a), _mm_cvtsi32_si128(b), 0); // prepare product for reduction prod = _mm_add_epi64(prod, prod); // bit alignment fix, due to CRC32 being bit-reversal prod = _mm_slli_si128(prod, 4); // straddle low/high halves across 64-bit boundary - this provides automatic truncation during reduction // do Barrett reduction back into 32-bit field const __m128i reduction_const = _mm_set_epi32( 1, 0xdb710640, // polynomial * 2 0, 0xf7011641 // 2**63 / polynomial ); __m128i t = _mm_clmulepi64_si128(prod, reduction_const, 0); t = _mm_clmulepi64_si128(t, reduction_const, 0x10); t = _mm_xor_si128(t, prod); return _mm_extract_epi32(t, 2); } */ static const uint32_t crc_power[] = { // pre-computed 2^(2^n), with first 3 entries removed (saves a shift) 0x00800000, 0x00008000, 0xedb88320, 0xb1e6b092, 0xa06a2517, 0xed627dae, 0x88d14467, 0xd7bbfe6a, 0xec447f11, 0x8e7ea170, 0x6427800e, 0x4d47bae0, 0x09fe548f, 0x83852d0f, 0x30362f1a, 0x7b5a9cc3, 0x31fec169, 0x9fec022a, 0x6c8dedc4, 0x15d6874d, 0x5fde7a4e, 0xbad90e37, 0x2e4e5eef, 0x4eaba214, 0xa8a472c0, 0x429a969e, 0x148d302a, 0xc40ba6d0, 0xc4e22c3c, 0x40000000, 0x20000000, 0x08000000 }; /* above table can be computed with int main(void) { uint32_t k = 0x80000000 >> 1; for (size_t i = 0; i < 32+3; ++i) { if(i>2) printf("0x%08x, ", k); k = crc_multiply(k, k); } return 0; } */ uint32_t crc_zeroPad(uint32_t crc, uint64_t zeroPad) { // multiply by 2^(8n) unsigned power = 0; crc = ~crc; while(zeroPad) { if(zeroPad & 1) crc = crc_multiply(crc, crc_power[power]); zeroPad >>= 1; power = (power+1) & 31; } return ~crc; } par2cmdline-turbo-1.5.0/parpar/hasher/crc_zeropad.h000066400000000000000000000003061524160147200222520ustar00rootroot00000000000000#ifndef __CRC_ZEROPAD_H #define __CRC_ZEROPAD_H #include "../src/stdint.h" #ifdef __cplusplus extern "C" #endif uint32_t crc_zeroPad(uint32_t crc, uint64_t zeroPad); #endif /* __CRC_ZEROPAD_H */ par2cmdline-turbo-1.5.0/parpar/hasher/hasher.cpp000066400000000000000000000216411524160147200215710ustar00rootroot00000000000000#include "hasher.h" #include "../src/cpuid.h" #include struct HasherCpuCap { #ifdef PLATFORM_X86 bool hasSSE2, hasClMul, hasXOP, hasBMI1, hasAVX2, hasAVX512F, hasAVX512VLBW; bool isSmallCore, isLEASlow, isVecRotSlow; HasherCpuCap(bool detect) : hasSSE2(true), hasClMul(true), hasXOP(true), hasBMI1(true), hasAVX2(true), hasAVX512F(true), hasAVX512VLBW(true), isSmallCore(false), isLEASlow(false), isVecRotSlow(false) { if(!detect) return; bool hasAVX = false; int cpuInfo[4]; int cpuInfoX[4]; int family, model; _cpuid(cpuInfo, 1); hasSSE2 = (cpuInfo[3] & 0x4000000); hasClMul = ((cpuInfo[2] & 0x80202) == 0x80202); // SSE4.1 + SSSE3 + CLMUL family = ((cpuInfo[0]>>8) & 0xf) + ((cpuInfo[0]>>16) & 0xff0); model = ((cpuInfo[0]>>4) & 0xf) + ((cpuInfo[0]>>12) & 0xf0); // TODO: check perf on small cores isLEASlow = false; if(family == 6) { // Goldmont also prefers SSE for 2xMD5; a wash on Gracemont, Tremont's preference is unknown isSmallCore = CPU_MODEL_IS_BNL_SLM(model) || CPU_MODEL_IS_GLM(model); // Intel Sandy Bridge to Skylake has slow 3-component LEA isLEASlow = CPU_MODEL_IS_SNB_CNL(model); } else { isSmallCore = CPU_FAMMDL_IS_AMDCAT(family, model); } isVecRotSlow = (family == 0xaf || family == 0xbf); // vector rotate has 2 cycle latency on Zen4/5 hasAVX = false; hasBMI1 = false; hasAVX2 = false; hasAVX512F = false; hasAVX512VLBW = false; #if !defined(_MSC_VER) || _MSC_VER >= 1600 _cpuidX(cpuInfoX, 7, 0); if((cpuInfo[2] & 0x1C000000) == 0x1C000000) { // has AVX + OSXSAVE + XSAVE int xcr = _GET_XCR() & 0xff; if((xcr & 6) == 6) { // AVX enabled hasAVX = true; hasBMI1 = hasAVX && (cpuInfoX[1] & 0x08); hasAVX2 = cpuInfoX[1] & 0x20; if((xcr & 0xE0) == 0xE0) { hasAVX512F = ((cpuInfoX[1] & 0x10000) == 0x10000); hasAVX512VLBW = ((cpuInfoX[1] & 0xC0010100) == 0xC0010100); // AVX512VL + AVX512BW + AVX512F + BMI2 } } } #endif _cpuid(cpuInfo, 0x80000001); hasXOP = hasAVX && (cpuInfo[2] & 0x800); } #endif #ifdef PLATFORM_ARM bool hasCRC, hasNEON, hasSVE2; HasherCpuCap(bool detect) : hasCRC(true), hasNEON(true), hasSVE2(true) { if(!detect) return; hasCRC = CPU_HAS_ARMCRC; hasNEON = CPU_HAS_NEON; hasSVE2 = CPU_HAS_SVE2; } #endif #ifdef __riscv bool hasZbkc; HasherCpuCap(bool detect) : hasZbkc(true) { if(!detect) return; hasZbkc = CPU_HAS_Zbkc; } #endif }; void setup_hasher() { // TODO: split this up if(HasherInput_Create) return; set_hasherInput(INHASH_SCALAR); #ifdef PARPAR_ENABLE_HASHER_MD5CRC set_hasherMD5CRC(MD5CRCMETH_SCALAR); #endif #ifdef PLATFORM_X86 struct HasherCpuCap caps(true); if(caps.hasAVX512VLBW && caps.hasClMul && !caps.isVecRotSlow && HasherInput_AVX512::isAvailable) set_hasherInput(INHASH_AVX512); // SSE seems to be faster than scalar on Zen1/2, not Zen3; BMI > SSE on Zen1, unknown on Zen2 else if(caps.hasClMul && !caps.isSmallCore && HasherInput_ClMulScalar::isAvailable) { // Gracemont: SSE > scalar, but SSE ~= BMI if(caps.hasBMI1 && HasherInput_BMI1::isAvailable) set_hasherInput(INHASH_BMI1); else set_hasherInput(INHASH_CRC); } else if(caps.hasClMul && caps.isSmallCore && HasherInput_ClMulSSE::isAvailable) set_hasherInput(INHASH_SIMD_CRC); else if(caps.hasSSE2 && caps.isSmallCore && HasherInput_SSE::isAvailable) // TODO: CPU w/o ClMul might all be small enough set_hasherInput(INHASH_SIMD); # ifdef PARPAR_ENABLE_HASHER_MD5CRC if(caps.hasAVX512VLBW && caps.hasClMul && !caps.isVecRotSlow && MD5CRC_isAvailable_AVX512) set_hasherMD5CRC(MD5CRCMETH_AVX512); else if(caps.isLEASlow && caps.hasClMul && MD5CRC_isAvailable_NoLEA) set_hasherMD5CRC(MD5CRCMETH_NOLEA); // for some reason, single MD5 BMI1 seems to be slower on most cores, except Jaguar... unsure why else if(caps.hasBMI1 && caps.hasClMul && caps.isSmallCore && MD5CRC_isAvailable_BMI1) set_hasherMD5CRC(MD5CRCMETH_BMI1); else if(caps.hasClMul && MD5CRC_isAvailable_ClMul) set_hasherMD5CRC(MD5CRCMETH_PCLMUL); # endif #endif #ifdef PLATFORM_ARM struct HasherCpuCap caps(true); if(caps.hasCRC && HasherInput_ARMCRC::isAvailable) // TODO: fast core only set_hasherInput(INHASH_CRC); else if(caps.hasNEON) { // TODO: slow core only if(caps.hasCRC && HasherInput_NEONCRC::isAvailable) set_hasherInput(INHASH_SIMD_CRC); else if(HasherInput_NEON::isAvailable) set_hasherInput(INHASH_SIMD); } # ifdef PARPAR_ENABLE_HASHER_MD5CRC if(caps.hasCRC && MD5CRC_isAvailable_ARMCRC) set_hasherMD5CRC(MD5CRCMETH_ARMCRC); # endif #endif #ifdef __riscv struct HasherCpuCap caps(true); if(caps.hasZbkc && HasherInput_RVZbc::isAvailable) set_hasherInput(INHASH_CRC); # ifdef PARPAR_ENABLE_HASHER_MD5CRC if(caps.hasZbkc && MD5CRC_isAvailable_RVZbc) set_hasherMD5CRC(MD5CRCMETH_RVZBC); # endif #endif #ifdef PARPAR_ENABLE_HASHER_MULTIMD5 // note that this logic assumes that if a compiler can compile for more advanced ISAs, it supports simpler ones as well # ifdef PLATFORM_X86 if(caps.hasAVX512VLBW && MD5Multi_AVX512_256::isAvailable) HasherMD5Multi_level = MD5MULT_AVX512VL; else if(caps.hasAVX512F && MD5Multi_AVX512::isAvailable) HasherMD5Multi_level = MD5MULT_AVX512F; else if(caps.hasXOP && MD5Multi_XOP::isAvailable) HasherMD5Multi_level = MD5MULT_XOP; // for the only CPU with AVX2 + XOP (Excavator) I imagine XOP works better than AVX2, due to half rate AVX else if(caps.hasAVX2 && MD5Multi_AVX2::isAvailable) HasherMD5Multi_level = MD5MULT_AVX2; else if(caps.hasSSE2 && MD5Multi_SSE::isAvailable) HasherMD5Multi_level = MD5MULT_SSE; else # endif # ifdef PLATFORM_ARM // TODO: if SVE2 width = 128b, prefer NEON? if(caps.hasSVE2 && MD5Multi_SVE2::isAvailable) HasherMD5Multi_level = MD5MULT_SVE2; else if(caps.hasNEON && MD5Multi_NEON::isAvailable) HasherMD5Multi_level = MD5MULT_NEON; else # endif HasherMD5Multi_level = MD5MULT_SCALAR; #endif } std::vector hasherInput_availableMethods(bool checkCpuid) { (void)checkCpuid; std::vector ret; ret.push_back(INHASH_SCALAR); #ifdef PLATFORM_X86 const HasherCpuCap caps(checkCpuid); if(caps.hasClMul) { if(caps.hasAVX512VLBW && HasherInput_AVX512::isAvailable) ret.push_back(INHASH_AVX512); if(caps.hasBMI1 && HasherInput_BMI1::isAvailable) ret.push_back(INHASH_BMI1); if(HasherInput_ClMulSSE::isAvailable) ret.push_back(INHASH_SIMD_CRC); if(HasherInput_ClMulScalar::isAvailable) ret.push_back(INHASH_CRC); } if(caps.hasSSE2 && HasherInput_SSE::isAvailable) ret.push_back(INHASH_SIMD); #endif #ifdef PLATFORM_ARM const HasherCpuCap caps(checkCpuid); if(caps.hasCRC && HasherInput_ARMCRC::isAvailable) ret.push_back(INHASH_CRC); if(caps.hasNEON && HasherInput_NEON::isAvailable) ret.push_back(INHASH_SIMD); if(caps.hasCRC && caps.hasNEON && HasherInput_NEONCRC::isAvailable) ret.push_back(INHASH_SIMD_CRC); #endif #ifdef __riscv const HasherCpuCap caps(checkCpuid); if(caps.hasZbkc && HasherInput_RVZbc::isAvailable) ret.push_back(INHASH_CRC); #endif return ret; } #ifdef PARPAR_ENABLE_HASHER_MD5CRC std::vector hasherMD5CRC_availableMethods(bool checkCpuid, int types) { (void)checkCpuid; std::vector ret; ret.push_back(MD5CRCMETH_SCALAR); #ifdef PLATFORM_X86 const HasherCpuCap caps(checkCpuid); if(caps.hasClMul) { if(caps.hasAVX512VLBW && MD5CRC_isAvailable_AVX512 && (types & HASHER_MD5CRC_TYPE_MD5)) ret.push_back(MD5CRCMETH_AVX512); if(MD5CRC_isAvailable_NoLEA && (types & HASHER_MD5CRC_TYPE_MD5)) ret.push_back(MD5CRCMETH_NOLEA); if(caps.hasBMI1 && MD5CRC_isAvailable_BMI1 && (types & HASHER_MD5CRC_TYPE_MD5)) ret.push_back(MD5CRCMETH_BMI1); if(MD5CRC_isAvailable_ClMul && (types & HASHER_MD5CRC_TYPE_CRC)) ret.push_back(MD5CRCMETH_PCLMUL); } #endif #ifdef PLATFORM_ARM const HasherCpuCap caps(checkCpuid); if(caps.hasCRC && MD5CRC_isAvailable_ARMCRC && (types & HASHER_MD5CRC_TYPE_CRC)) ret.push_back(MD5CRCMETH_ARMCRC); #endif #ifdef __riscv const HasherCpuCap caps(checkCpuid); if(caps.hasZbkc && MD5CRC_isAvailable_RVZbc && (types & HASHER_MD5CRC_TYPE_CRC)) ret.push_back(MD5CRCMETH_RVZBC); #endif return ret; } #endif #ifdef PARPAR_ENABLE_HASHER_MULTIMD5 std::vector hasherMD5Multi_availableMethods(bool checkCpuid) { (void)checkCpuid; std::vector ret; ret.push_back(MD5MULT_SCALAR); #ifdef PLATFORM_X86 const HasherCpuCap caps(checkCpuid); if(caps.hasAVX512VLBW && MD5Multi_AVX512_256::isAvailable) ret.push_back(MD5MULT_AVX512VL); if(caps.hasAVX512F && MD5Multi_AVX512::isAvailable) ret.push_back(MD5MULT_AVX512F); if(caps.hasXOP && MD5Multi_XOP::isAvailable) ret.push_back(MD5MULT_XOP); if(caps.hasAVX2 && MD5Multi_AVX2::isAvailable) ret.push_back(MD5MULT_AVX2); if(caps.hasSSE2 && MD5Multi_SSE::isAvailable) ret.push_back(MD5MULT_SSE); #endif #ifdef PLATFORM_ARM const HasherCpuCap caps(checkCpuid); if(caps.hasSVE2 && MD5Multi_SVE2::isAvailable) ret.push_back(MD5MULT_SVE2); if(caps.hasNEON && MD5Multi_NEON::isAvailable) ret.push_back(MD5MULT_NEON); #endif return ret; } #endif par2cmdline-turbo-1.5.0/parpar/hasher/hasher.h000066400000000000000000000011421524160147200212300ustar00rootroot00000000000000#ifndef __HASHER_H #define __HASHER_H void setup_hasher(); #ifdef PARPAR_ENABLE_HASHER_MD5CRC #include "hasher_md5crc.h" #define HASHER_MD5CRC_TYPE_MD5 1 #define HASHER_MD5CRC_TYPE_CRC 2 std::vector hasherMD5CRC_availableMethods(bool checkCpuid, int types=HASHER_MD5CRC_TYPE_MD5|HASHER_MD5CRC_TYPE_CRC); #endif #include "hasher_input.h" std::vector hasherInput_availableMethods(bool checkCpuid); #ifdef PARPAR_ENABLE_HASHER_MULTIMD5 #include "hasher_md5mb.h" std::vector hasherMD5Multi_availableMethods(bool checkCpuid); #endif #endif /* __HASHER_H */ par2cmdline-turbo-1.5.0/parpar/hasher/hasher_armcrc.cpp000066400000000000000000000040341524160147200231150ustar00rootroot00000000000000#include "../src/platform.h" #if defined(PLATFORM_ARM) && defined(_MSC_VER) && defined(__clang__) && !defined(__ARM_FEATURE_CRC32) // I don't think GYP provides a nice way to detect whether MSVC or clang-cl is being used, but it doesn't use clang-cl by default, so a warning here is probably sufficient HEDLEY_WARNING("CRC32 acceleration is not enabled under ARM clang-cl by default; add `-march=armv8-a+crc` to additional compiler arguments to enable"); #endif // disable CRC on GCC versions with broken arm_acle.h #if defined(__ARM_FEATURE_CRC32) && defined(HEDLEY_GCC_VERSION) # if !defined(__aarch64__) && HEDLEY_GCC_VERSION_CHECK(7,0,0) && !HEDLEY_GCC_VERSION_CHECK(8,1,1) # undef __ARM_FEATURE_CRC32 HEDLEY_WARNING("CRC32 acceleration has been disabled due to broken arm_acle.h shipped in GCC 7.0 - 8.1 [https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81497]. If you need this feature, please use a different compiler or version of GCC"); # endif # if defined(__aarch64__) && HEDLEY_GCC_VERSION_CHECK(9,4,0) && !HEDLEY_GCC_VERSION_CHECK(9,5,0) # undef __ARM_FEATURE_CRC32 HEDLEY_WARNING("CRC32 acceleration has been disabled due to broken arm_acle.h shipped in GCC 9.4 [https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100985]. If you need this feature, please use a different compiler or version of GCC"); # endif #endif #if defined(__ARM_FEATURE_CRC32) && defined(__has_include) # if !__has_include() # undef __ARM_FEATURE_CRC32 HEDLEY_WARNING("CRC32 acceleration has been disabled due to missing arm_acle.h"); # endif #endif #define HasherInput HasherInput_ARMCRC #define CRC32Impl(n) n##_ARMCRC #define MD5CRC(f) MD5CRC_##f##_ARMCRC #define _FNMD5(f) f##_scalar #define _FNMD5x2(f) f##_scalar #define _FNCRC(f) f##_arm #if defined(__ARM_FEATURE_CRC32) || (defined(_M_ARM64) && !defined(__clang__)) // MSVC doesn't support CRC for ARM32 # include "crc_arm.h" # include "md5x2-scalar.h" # include "md5-scalar.h" # include "hasher_input_base.h" # include "hasher_md5crc_base.h" #else # include "hasher_input_stub.h" # include "hasher_md5crc_stub.h" #endif par2cmdline-turbo-1.5.0/parpar/hasher/hasher_avx2.cpp000066400000000000000000000011121524160147200225200ustar00rootroot00000000000000#include "../src/platform.h" #define MD5Multi MD5Multi_AVX2 #define _FNMD5mb(f) f##_avx2 #define _FNMD5mb2(f) f##_avx2 #define md5mb_base_regions md5mb_regions_avx2 #define md5mb_alignment md5mb_alignment_avx2 #define CLEAR_VEC _mm256_zeroupper() #ifdef __AVX2__ # include "md5mb-sse.h" # include "hasher_md5mb_base.h" #else # include "hasher_md5mb_stub.h" #endif #undef MD5Multi #undef _FNMD5mb2 #define MD5Multi MD5Multi2_AVX2 #define _FNMD5mb2(f) f##2_avx2 #define md5mb_interleave 2 #ifdef __AVX2__ # include "hasher_md5mb_base.h" #else # include "hasher_md5mb_stub.h" #endif par2cmdline-turbo-1.5.0/parpar/hasher/hasher_avx512.cpp000066400000000000000000000016401524160147200226740ustar00rootroot00000000000000// suppress warning spam in GCC 12.0-12.2 (caused by some AVX512 intrinsics) #include "../src/hedley.h" #if HEDLEY_GCC_VERSION_CHECK(12,0,0) && !HEDLEY_GCC_VERSION_CHECK(12,3,0) # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Wuninitialized" # pragma GCC diagnostic ignored "-Wmaybe-uninitialized" #endif #include "../src/platform.h" #define MD5Multi MD5Multi_AVX512 #define _FNMD5mb(f) f##_avx512 #define _FNMD5mb2(f) f##_avx512 #define md5mb_base_regions md5mb_regions_avx512 #define md5mb_alignment md5mb_alignment_avx512 #define CLEAR_VEC _mm256_zeroupper() #ifdef __AVX512F__ # include "md5mb-sse.h" # include "hasher_md5mb_base.h" #else # include "hasher_md5mb_stub.h" #endif #undef MD5Multi #undef _FNMD5mb2 #define MD5Multi MD5Multi2_AVX512 #define _FNMD5mb2(f) f##2_avx512 #define md5mb_interleave 2 #ifdef __AVX512F__ # include "hasher_md5mb_base.h" #else # include "hasher_md5mb_stub.h" #endif par2cmdline-turbo-1.5.0/parpar/hasher/hasher_avx512vl.cpp000066400000000000000000000027041524160147200232400ustar00rootroot00000000000000#include "../src/platform.h" // despite the name, this does also require AVX512BW #define _CRC_USE_AVX512_ 1 #define HasherInput HasherInput_AVX512 #define MD5SingleVer(f) MD5Single_##f##_AVX512 #define MD5CRC(f) MD5CRC_##f##_AVX512 #define _FNMD5(f) f##_avx512 #define _FNMD5x2(f) f##_avx512 #define _FNCRC(f) f##_clmul #if defined(__AVX512VL__) && defined(__AVX512BW__) # include "crc_clmul.h" # include "md5x2-sse.h" # include "md5-avx512.h" # include "hasher_input_base.h" # include "hasher_md5crc_base.h" #else # include "hasher_input_stub.h" # include "hasher_md5crc_stub.h" #endif #define MD5Multi MD5Multi_AVX512_128 #define _FNMD5mb(f) f##_avx512_128 #define _FNMD5mb2(f) f##_avx512_128 #define md5mb_base_regions md5mb_regions_avx512_128 #define md5mb_alignment md5mb_alignment_avx512_128 #define CLEAR_VEC (void)0 #if defined(__AVX512VL__) && defined(__AVX512BW__) # include "md5mb-sse.h" # include "hasher_md5mb_base.h" #else # include "hasher_md5mb_stub.h" #endif #undef MD5Multi #undef _FNMD5mb #undef _FNMD5mb2 #undef md5mb_alignment #undef CLEAR_VEC #undef md5mb_base_regions #define MD5Multi MD5Multi_AVX512_256 #define _FNMD5mb(f) f##_avx512_256 #define _FNMD5mb2(f) f##_avx512_256 #define md5mb_base_regions md5mb_regions_avx512_256 #define md5mb_alignment md5mb_alignment_avx512_256 #define CLEAR_VEC _mm256_zeroupper() #if defined(__AVX512VL__) && defined(__AVX512BW__) # include "hasher_md5mb_base.h" #else # include "hasher_md5mb_stub.h" #endif par2cmdline-turbo-1.5.0/parpar/hasher/hasher_bmi1.cpp000066400000000000000000000010421524160147200224720ustar00rootroot00000000000000#include "../src/platform.h" #define _MD5_USE_BMI1_ 1 #define HasherInput HasherInput_BMI1 #define MD5SingleVer(f) MD5Single_##f##_BMI1 #define MD5CRC(f) MD5CRC_##f##_BMI1 #define _FNMD5(f) f##_scalar #define _FNMD5x2(f) f##_scalar #define _FNCRC(f) f##_clmul #if defined(__PCLMUL__) && defined(__AVX__) && defined(__BMI__) # include "crc_clmul.h" # include "md5x2-scalar.h" # include "md5-scalar.h" # include "hasher_input_base.h" # include "hasher_md5crc_base.h" #else # include "hasher_input_stub.h" # include "hasher_md5crc_stub.h" #endif par2cmdline-turbo-1.5.0/parpar/hasher/hasher_clmul.cpp000066400000000000000000000021521524160147200227610ustar00rootroot00000000000000#include "../src/platform.h" #define _FNCRC(f) f##_clmul #define HasherInput HasherInput_ClMulSSE #define _FNMD5x2(f) f##_sse #if defined(__PCLMUL__) && defined(__SSSE3__) && defined(__SSE4_1__) # include "crc_clmul.h" # include "md5x2-sse.h" # include "hasher_input_base.h" #else # include "hasher_input_stub.h" #endif #undef HasherInput #undef _FNMD5x2 #define HasherInput HasherInput_ClMulScalar #define CRC32Impl(n) n##_ClMul #define MD5CRC(f) MD5CRC_##f##_ClMul #define _FNMD5(f) f##_scalar #define _FNMD5x2(f) f##_scalar #if defined(__PCLMUL__) && defined(__SSSE3__) && defined(__SSE4_1__) # include "md5x2-scalar.h" # include "md5-scalar.h" # include "hasher_input_base.h" # include "hasher_md5crc_base.h" #else # include "hasher_input_stub.h" # include "hasher_md5crc_stub.h" #endif #undef MD5CRC #undef _FNMD5 #undef CRC32Impl #define MD5SingleVer(f) MD5Single_##f##_NoLEA #define MD5CRC(f) MD5CRC_##f##_NoLEA #define _FNMD5(f) f##_nolea #if defined(__PCLMUL__) && defined(__SSSE3__) && defined(__SSE4_1__) && defined(MD5_HAS_NOLEA) # include "hasher_md5crc_base.h" #else # include "hasher_md5crc_stub.h" #endif par2cmdline-turbo-1.5.0/parpar/hasher/hasher_input.cpp000066400000000000000000000026141524160147200230070ustar00rootroot00000000000000#include "hasher_input.h" #include #include "../src/platform.h" IHasherInput*(*HasherInput_Create)() = NULL; HasherInputMethods HasherInput_Method = INHASH_SCALAR; bool set_hasherInput(HasherInputMethods method) { #define SET_HASHER(h, x) if(method == h) { \ if(!x::isAvailable) return false; \ HasherInput_Create = &x::create; \ HasherInput_Method = h; \ return true; \ } SET_HASHER(INHASH_SCALAR, HasherInput_Scalar) #ifdef PLATFORM_X86 SET_HASHER(INHASH_SIMD, HasherInput_SSE) SET_HASHER(INHASH_CRC, HasherInput_ClMulScalar) SET_HASHER(INHASH_SIMD_CRC, HasherInput_ClMulSSE) SET_HASHER(INHASH_BMI1, HasherInput_BMI1) SET_HASHER(INHASH_AVX512, HasherInput_AVX512) #endif #ifdef PLATFORM_ARM SET_HASHER(INHASH_SIMD, HasherInput_NEON) SET_HASHER(INHASH_CRC, HasherInput_ARMCRC) SET_HASHER(INHASH_SIMD_CRC, HasherInput_NEONCRC) #endif #ifdef __riscv SET_HASHER(INHASH_CRC, HasherInput_RVZbc) #endif #undef SET_HASHER return false; } const char* hasherInput_methodName(HasherInputMethods m) { const char* names[] = { "Scalar+Generic", #ifdef PLATFORM_X86 "SSE2+Generic", "Scalar+PCLMUL", "SSE2+PCLMUL", #elif defined(PLATFORM_ARM) "NEON+Generic", "Scalar+ARMCRC", "NEON+ARMCRC", #elif defined(__riscv) "SIMD+Generic", "Scalar+Zbc", "SIMD+Zbc", #else "SIMD+Generic", "Scalar+CRC", "SIMD+CRC", #endif "BMI1+PCLMUL", "AVX512" }; return names[(int)m]; } par2cmdline-turbo-1.5.0/parpar/hasher/hasher_input.h000066400000000000000000000010461524160147200224520ustar00rootroot00000000000000#ifndef __HASHER_INPUT_H #define __HASHER_INPUT_H #include "hasher_input_impl.h" #include enum HasherInputMethods { INHASH_SCALAR, INHASH_SIMD, INHASH_CRC, INHASH_SIMD_CRC, INHASH_BMI1, INHASH_AVX512 }; bool set_hasherInput(HasherInputMethods method); extern IHasherInput*(*HasherInput_Create)(); extern HasherInputMethods HasherInput_Method; const char* hasherInput_methodName(HasherInputMethods m); inline const char* hasherInput_methodName() { return hasherInput_methodName(HasherInput_Method); } #endif /* __HASHER_INPUT_H */ par2cmdline-turbo-1.5.0/parpar/hasher/hasher_input_base.h000066400000000000000000000123111524160147200234410ustar00rootroot00000000000000 #include "hasher_input_impl.h" #include "crc_zeropad.h" #include #include #ifndef MD5_BLOCKSIZE # define MD5_BLOCKSIZE 64 #endif #ifndef HASH2X_BLOCK # define HASH2X_BLOCK 0 # define HASH2X_FILE 1 #endif #ifdef HasherInput #include "md5-final.h" const bool HasherInput::isAvailable = true; HasherInput::HasherInput() { reset(); } void HasherInput::reset() { _FNMD5x2(md5_init_x2)(md5State); tmpLen = 0; posOffset = 0; _FNCRC(crc_init)(crcState); dataLen[HASH2X_BLOCK] = 0; dataLen[HASH2X_FILE] = 0; } #ifndef _MD5x2_UPDATEFN_ATTRIB # define _MD5x2_UPDATEFN_ATTRIB #endif _MD5x2_UPDATEFN_ATTRIB void HasherInput::update(const void* data, size_t len) { dataLen[HASH2X_BLOCK] += len; dataLen[HASH2X_FILE] += len; const char* data_ = (const char*)data; // if there's data in tmp, process one block from there if(tmpLen) { while(1) { // this loop iterates 1-2 times only assert(tmpLen >= posOffset); uint_fast8_t wanted = MD5_BLOCKSIZE+posOffset - tmpLen; if(len < wanted) { memcpy(tmp + tmpLen, data_, len); tmpLen += len; return; } else { // process one block const void* blockData = tmp + posOffset; if(tmpLen <= posOffset) { // the block's hash will come from source data instead of tmp wanted = MD5_BLOCKSIZE - tmpLen; blockData = data_; } memcpy(tmp + tmpLen, data_, wanted); _FNCRC(crc_process_block)(crcState, blockData); _FNMD5x2(md5_update_block_x2)(md5State, blockData, tmp); len -= wanted; data_ += wanted; if(tmpLen > posOffset) { // if both hashes came from tmp, shift file hash across as this won't occur on the next iteration memcpy(tmp, tmp+MD5_BLOCKSIZE, posOffset); tmpLen = posOffset; continue; } } break; } } while(len >= (unsigned)MD5_BLOCKSIZE+posOffset) { _FNCRC(crc_process_block)(crcState, data_ + posOffset); _FNMD5x2(md5_update_block_x2)(md5State, data_ + posOffset, data_); data_ += MD5_BLOCKSIZE; len -= MD5_BLOCKSIZE; } memcpy(tmp, data_, len); tmpLen = len; } _MD5x2_UPDATEFN_ATTRIB void HasherInput::resetBlock() { if(tmpLen >= MD5_BLOCKSIZE) { // push through one block on file hash _FNMD5x2(md5_update_block_x2)(md5State, (const char*)tmp, (const char*)tmp); tmpLen -= MD5_BLOCKSIZE; memcpy(tmp, tmp+MD5_BLOCKSIZE, tmpLen); } _FNMD5x2(md5_init_lane_x2)(md5State, HASH2X_BLOCK); _FNCRC(crc_init)(crcState); posOffset = tmpLen; dataLen[HASH2X_BLOCK] = 0; } void HasherInput::getBlock(void* md5crc, uint64_t zeroPad) { _FNMD5x2(md5_extract_x2)(md5crc, md5State, HASH2X_BLOCK); md5_final_block(md5crc, tmp + posOffset, dataLen[HASH2X_BLOCK], zeroPad); uint32_t crc = _FNCRC(crc_finish)(crcState, tmp + posOffset, dataLen[HASH2X_BLOCK] & (MD5_BLOCKSIZE-1)); crc = crc_zeroPad(crc, zeroPad); uint8_t* _crc = (uint8_t*)md5crc + 16; _crc[0] = crc & 0xff; _crc[1] = (crc >> 8) & 0xff; _crc[2] = (crc >> 16) & 0xff; _crc[3] = (crc >> 24) & 0xff; resetBlock(); } _MD5x2_UPDATEFN_ATTRIB void HasherInput::end(void* md5) { if(tmpLen >= MD5_BLOCKSIZE) { // this generally shouldn't happen, as getBlock should handle this case, but we'll deal with it in case the caller doesn't want to use getBlock _FNMD5x2(md5_update_block_x2)(md5State, (const char*)tmp, (const char*)tmp); } _FNMD5x2(md5_extract_x2)(md5, md5State, HASH2X_FILE); md5_final_block(md5, tmp, dataLen[HASH2X_FILE], 0); } #ifdef PARPAR_ENABLE_HASHER_MD5CRC void HasherInput::extractFileMD5(MD5Single& outMD5) { _FNMD5x2(md5_extract_x2)(outMD5.md5State, md5State, HASH2X_FILE); outMD5.dataLen = dataLen[HASH2X_FILE]; if(tmpLen >= MD5_BLOCKSIZE) { MD5Single::_update(outMD5.md5State, tmp, 1); memcpy(outMD5.tmp, tmp + MD5_BLOCKSIZE, tmpLen & (MD5_BLOCKSIZE-1)); } else { memcpy(outMD5.tmp, tmp, tmpLen); } } void HasherInput::updateFile(const void* data, size_t len) { dataLen[HASH2X_FILE] += len; // if small amount, and fits in tmp, just copy across if(len + tmpLen < MD5_BLOCKSIZE*2) { memcpy(tmp + tmpLen, data, len); tmpLen += len; resetBlock(); return; } // extract file hash and compute using single MD5 const char* data_ = (const char*)data; MD5Single fileHash; _FNMD5x2(md5_extract_x2)(fileHash.md5State, md5State, HASH2X_FILE); if(tmpLen >= MD5_BLOCKSIZE) { MD5Single::_update(fileHash.md5State, tmp, 1); tmpLen -= MD5_BLOCKSIZE; memcpy(fileHash.tmp, tmp + MD5_BLOCKSIZE, tmpLen); } else { memcpy(fileHash.tmp, tmp, tmpLen); } if(len + tmpLen < MD5_BLOCKSIZE) { memcpy(tmp, fileHash.tmp, tmpLen); memcpy(tmp + tmpLen, data_, len); tmpLen += len; } else { if(tmpLen>0) { size_t consume = MD5_BLOCKSIZE - tmpLen; memcpy(fileHash.tmp + tmpLen, data_, consume); MD5Single::_update(fileHash.md5State, fileHash.tmp, 1); data_ += consume; len -= consume; } // main process size_t blocks = len/MD5_BLOCKSIZE; size_t amount = blocks*MD5_BLOCKSIZE; MD5Single::_update(fileHash.md5State, data_, blocks); len -= amount; data_ += amount; // copy remainder into hasher's tmp memcpy(tmp, data_, len); tmpLen = len; } // add updated MD5 back to hasher + reset block hash _FNMD5x2(md5_set_file_x2)(md5State, fileHash.md5State); _FNCRC(crc_init)(crcState); posOffset = tmpLen; dataLen[HASH2X_BLOCK] = 0; } #endif #endif par2cmdline-turbo-1.5.0/parpar/hasher/hasher_input_impl.h000066400000000000000000000045521524160147200235000ustar00rootroot00000000000000#ifndef __HASHER_INPUT_IMPL_H #define __HASHER_INPUT_IMPL_H #include "../src/platform.h" #include "../src/stdint.h" #include "../src/hedley.h" #include #include #ifdef PARPAR_ENABLE_HASHER_MD5CRC #include "hasher_md5crc_impl.h" #endif class IHasherInput { protected: uint8_t tmp[128]; // TODO: merge md5/crc for ASM routines (also prevents a lot of duplication w/ inlining) ALIGN_TO(16, char md5State[64]); // large enough to handle all implementations of MD5 state (4x16B) #ifdef PLATFORM_X86 char crcState[64]; // ClMul uses 4x16B state, others use 4B #elif defined(__riscv) char crcState[__riscv_xlen/2]; #else char crcState[4]; #endif uint_fast8_t tmpLen; uint_fast8_t posOffset; uint64_t dataLen[2]; public: virtual void update(const void* data, size_t len) = 0; virtual void resetBlock() = 0; virtual void getBlock(void* md5crc, uint64_t zeroPad) = 0; virtual void end(void* md5) = 0; virtual void reset() = 0; #ifdef PARPAR_ENABLE_HASHER_MD5CRC virtual void extractFileMD5(MD5Single& outMD5) = 0; virtual void updateFile(const void* data, size_t len) = 0; #endif virtual ~IHasherInput() {} inline void destroy() { ALIGN_FREE(this); } \ }; #ifdef PARPAR_ENABLE_HASHER_MD5CRC # define __DECL_HASHERINPUT_FILEOPS void extractFileMD5(MD5Single& outMD5); void updateFile(const void* data, size_t len); #else # define __DECL_HASHERINPUT_FILEOPS #endif #define __DECL_HASHERINPUT(name) \ class HasherInput_##name : public IHasherInput { \ HasherInput_##name(); \ HasherInput_##name(const HasherInput_##name&); \ HasherInput_##name& operator=(const HasherInput_##name&); \ public: \ static const bool isAvailable; \ static inline HEDLEY_MALLOC IHasherInput* create() { \ HasherInput_##name* ptr; \ ALIGN_ALLOC(ptr, sizeof(HasherInput_##name), 16); \ return new(ptr) HasherInput_##name(); \ } \ void update(const void* data, size_t len); \ void resetBlock(); \ void getBlock(void* md5crc, uint64_t zeroPad); \ void end(void* md5); \ void reset(); \ __DECL_HASHERINPUT_FILEOPS \ } __DECL_HASHERINPUT(Scalar); __DECL_HASHERINPUT(SSE); __DECL_HASHERINPUT(ClMulScalar); __DECL_HASHERINPUT(ClMulSSE); __DECL_HASHERINPUT(BMI1); __DECL_HASHERINPUT(AVX512); __DECL_HASHERINPUT(ARMCRC); __DECL_HASHERINPUT(NEON); __DECL_HASHERINPUT(NEONCRC); __DECL_HASHERINPUT(RVZbc); #undef __DECL_HASHERINPUT_FILEOPS #undef __DECL_HASHERINPUT #endif /* __HASHER_INPUT_IMPL_H */ par2cmdline-turbo-1.5.0/parpar/hasher/hasher_input_stub.h000066400000000000000000000007231524160147200235100ustar00rootroot00000000000000#include "hasher_input_impl.h" #ifdef HasherInput const bool HasherInput::isAvailable = false; HasherInput::HasherInput() {} void HasherInput::reset() {} void HasherInput::update(const void*, size_t) {} void HasherInput::resetBlock() {} void HasherInput::getBlock(void*, uint64_t) {} void HasherInput::end(void*) {} #ifdef PARPAR_ENABLE_HASHER_MD5CRC void HasherInput::extractFileMD5(MD5Single&) {} void HasherInput::updateFile(const void*, size_t) {} #endif #endif par2cmdline-turbo-1.5.0/parpar/hasher/hasher_md5crc.cpp000066400000000000000000000077051524160147200230330ustar00rootroot00000000000000#include "hasher_md5crc.h" #include #include "../src/platform.h" #ifdef PARPAR_ENABLE_HASHER_MD5CRC uint32_t(*MD5CRC_Calc)(const void*, size_t, size_t, void*) = NULL; MD5CRCMethods MD5CRC_Method = MD5CRCMETH_SCALAR; uint32_t(*CRC32_Calc)(const void*, size_t) = NULL; MD5CRCMethods CRC32_Method = MD5CRCMETH_SCALAR; bool set_hasherMD5CRC(MD5CRCMethods method) { #define SET_HASHER(h, x, hMd5, hCrc) case h: { \ if(!MD5CRC_isAvailable_##x) return false; \ MD5CRC_Calc = &MD5CRC_Calc_##x; \ MD5CRC_Method = h; \ MD5Single::method = hMd5; \ CRC32_Method = hCrc; \ break; \ } switch(method) { SET_HASHER(MD5CRCMETH_SCALAR, Scalar, MD5CRCMETH_SCALAR, MD5CRCMETH_SCALAR) #ifdef PLATFORM_X86 SET_HASHER(MD5CRCMETH_BMI1, BMI1, MD5CRCMETH_BMI1, MD5CRCMETH_PCLMUL) SET_HASHER(MD5CRCMETH_NOLEA, NoLEA, MD5CRCMETH_NOLEA, MD5CRCMETH_PCLMUL) SET_HASHER(MD5CRCMETH_AVX512, AVX512, MD5CRCMETH_AVX512, MD5CRCMETH_PCLMUL) SET_HASHER(MD5CRCMETH_PCLMUL, ClMul, MD5CRCMETH_SCALAR, MD5CRCMETH_PCLMUL) #endif #ifdef PLATFORM_ARM SET_HASHER(MD5CRCMETH_ARMCRC, ARMCRC, MD5CRCMETH_SCALAR, MD5CRCMETH_ARMCRC) #endif #ifdef __riscv SET_HASHER(MD5CRCMETH_RVZBC, RVZbc, MD5CRCMETH_SCALAR, MD5CRCMETH_RVZBC) #endif default: return false; } #undef SET_HASHER switch(MD5Single::method) { case MD5CRCMETH_AVX512: MD5Single::_update = &MD5Single_update_AVX512; MD5Single::_updateZero = &MD5Single_updateZero_AVX512; break; case MD5CRCMETH_NOLEA: MD5Single::_update = &MD5Single_update_NoLEA; MD5Single::_updateZero = &MD5Single_updateZero_NoLEA; break; case MD5CRCMETH_BMI1: MD5Single::_update = &MD5Single_update_BMI1; MD5Single::_updateZero = &MD5Single_updateZero_BMI1; break; case MD5CRCMETH_SCALAR: MD5Single::_update = &MD5Single_update_Scalar; MD5Single::_updateZero = &MD5Single_updateZero_Scalar; break; default: return false; // shouldn't happen } switch(CRC32_Method) { case MD5CRCMETH_PCLMUL: CRC32_Calc = &CRC32_Calc_ClMul; break; case MD5CRCMETH_ARMCRC: CRC32_Calc = &CRC32_Calc_ARMCRC; break; case MD5CRCMETH_RVZBC: CRC32_Calc = &CRC32_Calc_RVZbc; break; case MD5CRCMETH_SCALAR: CRC32_Calc = &CRC32_Calc_Slice4; break; default: return false; // shouldn't happen } return true; } void(*MD5Single::_update)(uint32_t*, const void*, size_t) = &MD5Single_update_Scalar; void(*MD5Single::_updateZero)(uint32_t*, size_t) = &MD5Single_updateZero_Scalar; MD5CRCMethods MD5Single::method = MD5CRCMETH_SCALAR; const size_t MD5_BLOCKSIZE = 64; void MD5Single::update(const void* data, size_t len) { uint_fast8_t buffered = dataLen & (MD5_BLOCKSIZE-1); dataLen += len; const uint8_t* data_ = (const uint8_t*)data; // if there's data in tmp, process one block from there if(buffered) { uint_fast8_t wanted = MD5_BLOCKSIZE - buffered; if(len < wanted) { memcpy(tmp + buffered, data_, len); return; } memcpy(tmp + buffered, data_, wanted); _update(md5State, tmp, 1); len -= wanted; data_ += wanted; } _update(md5State, data_, len / MD5_BLOCKSIZE); data_ += len & ~(MD5_BLOCKSIZE-1); memcpy(tmp, data_, len & (MD5_BLOCKSIZE-1)); } void MD5Single::updateZero(size_t len) { uint_fast8_t buffered = dataLen & (MD5_BLOCKSIZE-1); dataLen += len; // if there's data in tmp, process one block from there if(buffered) { uint_fast8_t wanted = MD5_BLOCKSIZE - buffered; if(len < wanted) { memset(tmp + buffered, 0, len); return; } memset(tmp + buffered, 0, wanted); _update(md5State, tmp, 1); len -= wanted; } _updateZero(md5State, len / MD5_BLOCKSIZE); memset(tmp, 0, len & (MD5_BLOCKSIZE-1)); } #include "md5-final.h" void MD5Single::end(void* md5) { md5_final_block(md5State, tmp, dataLen, 0); memcpy(md5, md5State, 16); } const char* md5crc_methodName(MD5CRCMethods m) { const char* names[] = { "Generic", // or Slice4 for CRC "BMI1", "NoLEA", "AVX512", "ARMCRC", "PCLMUL", "Zbc" }; return names[(int)m]; } #endif // defined(PARPAR_ENABLE_HASHER_MD5CRC) par2cmdline-turbo-1.5.0/parpar/hasher/hasher_md5crc.h000066400000000000000000000010231524160147200224630ustar00rootroot00000000000000#ifndef __HASHER_MD5CRC_H #define __HASHER_MD5CRC_H #include "hasher_md5crc_impl.h" #include // single hash instances extern uint32_t(*CRC32_Calc)(const void*, size_t); extern MD5CRCMethods CRC32_Method; extern uint32_t(*MD5CRC_Calc)(const void*, size_t, size_t, void*); extern MD5CRCMethods MD5CRC_Method; bool set_hasherMD5CRC(MD5CRCMethods method); const char* md5crc_methodName(MD5CRCMethods m); inline const char* md5crc_methodName() { return md5crc_methodName(MD5CRC_Method); } #endif /* __HASHER_MD5CRC_H */ par2cmdline-turbo-1.5.0/parpar/hasher/hasher_md5crc_base.h000066400000000000000000000052051524160147200234630ustar00rootroot00000000000000 #ifdef PARPAR_ENABLE_HASHER_MD5CRC #include "hasher_md5crc_impl.h" #include "crc_zeropad.h" #include #ifndef MD5_BLOCKSIZE # define MD5_BLOCKSIZE 64 #endif #ifdef MD5SingleVer const bool MD5SingleVer(isAvailable) = true; void MD5SingleVer(update)(uint32_t* md5State, const void* data, size_t blocks) { const uint8_t* blockPtr[] = {(const uint8_t*)data}; uint32_t state[4]; state[0] = md5State[0]; state[1] = md5State[1]; state[2] = md5State[2]; state[3] = md5State[3]; while(blocks--) { _FNMD5(md5_process_block)(state, blockPtr, 0); blockPtr[0] += MD5_BLOCKSIZE; } md5State[0] = state[0]; md5State[1] = state[1]; md5State[2] = state[2]; md5State[3] = state[3]; } void MD5SingleVer(updateZero)(uint32_t* md5State, size_t blocks) { uint8_t data[64] = { 0 }; const uint8_t* blockPtr[] = {data}; uint32_t state[4]; state[0] = md5State[0]; state[1] = md5State[1]; state[2] = md5State[2]; state[3] = md5State[3]; while(blocks--) { _FNMD5(md5_process_block)(state, blockPtr, 0); } md5State[0] = state[0]; md5State[1] = state[1]; md5State[2] = state[2]; md5State[3] = state[3]; } #endif #ifdef MD5CRC #include "md5-final.h" const bool MD5CRC(isAvailable) = true; uint32_t MD5CRC(Calc)(const void* data, size_t length, size_t zeroPad, void* md5) { uint32_t md5State[4] = {0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476}; #ifdef PLATFORM_X86 ALIGN_TO(16, char crcState[64]); // ClMul uses 4x16B state, others use 4B #elif defined(__riscv) ALIGN_TO(8, char crcState[__riscv_xlen/2]); #else char crcState[4]; #endif const uint8_t* blockPtr[] = {(const uint8_t*)data}; size_t origLength = length; _FNCRC(crc_init)(crcState); while(length >= (unsigned)MD5_BLOCKSIZE) { _FNMD5(md5_process_block)(md5State, blockPtr, 0); _FNCRC(crc_process_block)(crcState, blockPtr[0]); blockPtr[0] += MD5_BLOCKSIZE; length -= MD5_BLOCKSIZE; } md5_final_block(md5State, blockPtr[0], origLength, zeroPad); memcpy(md5, md5State, 16); uint32_t crc = _FNCRC(crc_finish)(crcState, blockPtr[0], length); return crc_zeroPad(crc, zeroPad); } #endif #ifdef CRC32Impl const bool CRC32Impl(CRC32_isAvailable) = true; uint32_t CRC32Impl(CRC32_Calc)(const void* data, size_t len) { #ifdef PLATFORM_X86 ALIGN_TO(16, char crcState[64]); // ClMul uses 4x16B state, others use 4B #elif defined(__riscv) ALIGN_TO(8, char crcState[__riscv_xlen/2]); #else char crcState[4]; #endif _FNCRC(crc_init)(crcState); const char* data_ = (const char*)data; while(len >= (unsigned)MD5_BLOCKSIZE) { _FNCRC(crc_process_block)(crcState, data_); data_ += MD5_BLOCKSIZE; len -= MD5_BLOCKSIZE; } return _FNCRC(crc_finish)(crcState, data_, len); } #endif #endif par2cmdline-turbo-1.5.0/parpar/hasher/hasher_md5crc_impl.h000066400000000000000000000035151524160147200235140ustar00rootroot00000000000000#ifndef __HASHER_MD5CRC_IMPL_H #define __HASHER_MD5CRC_IMPL_H #include "../src/stdint.h" #include enum MD5CRCMethods { MD5CRCMETH_SCALAR, // MD5 MD5CRCMETH_BMI1, MD5CRCMETH_NOLEA, MD5CRCMETH_AVX512, // CRC32 MD5CRCMETH_ARMCRC, MD5CRCMETH_PCLMUL, MD5CRCMETH_RVZBC }; class MD5Single { public: // private internal state, but set by IHasherInput::extractFileMD5 uint8_t tmp[64]; uint32_t md5State[4]; uint64_t dataLen; // private, set by setup_hasher static void(*_update)(uint32_t*, const void*, size_t); static void(*_updateZero)(uint32_t*, size_t); static MD5CRCMethods method; // public, read-only // public interface void reset() { md5State[0] = 0x67452301; md5State[1] = 0xefcdab89; md5State[2] = 0x98badcfe; md5State[3] = 0x10325476; dataLen = 0; } inline MD5Single() { reset(); } void update(const void* data, size_t len); void updateZero(size_t len); void end(void* md5); }; #define __DECL_MD5SINGLE(name) \ void MD5Single_update_##name(uint32_t*, const void*, size_t); \ void MD5Single_updateZero_##name(uint32_t*, size_t); \ extern const bool MD5Single_isAvailable_##name __DECL_MD5SINGLE(Scalar); __DECL_MD5SINGLE(NoLEA); __DECL_MD5SINGLE(BMI1); __DECL_MD5SINGLE(AVX512); #undef __DECL_MD5SINGLE #define __DECL_MD5CRC(name) \ uint32_t MD5CRC_Calc_##name(const void*, size_t, size_t, void*); \ extern const bool MD5CRC_isAvailable_##name __DECL_MD5CRC(Scalar); __DECL_MD5CRC(NoLEA); __DECL_MD5CRC(ClMul); __DECL_MD5CRC(BMI1); __DECL_MD5CRC(AVX512); __DECL_MD5CRC(ARMCRC); __DECL_MD5CRC(RVZbc); #undef __DECL_MD5CRC #define __DECL_CRC32(name) \ uint32_t CRC32_Calc_##name(const void*, size_t); \ extern const bool CRC32_isAvailable_##name __DECL_CRC32(Slice4); __DECL_CRC32(ClMul); //__DECL_CRC32(VClMul); __DECL_CRC32(ARMCRC); __DECL_CRC32(RVZbc); #undef __DECL_CRC32 #endif /* __HASHER_MD5CRC_IMPL_H */ par2cmdline-turbo-1.5.0/parpar/hasher/hasher_md5crc_stub.h000066400000000000000000000010311524160147200235170ustar00rootroot00000000000000#ifdef PARPAR_ENABLE_HASHER_MD5CRC #include "hasher_md5crc_impl.h" #ifdef MD5SingleVer const bool MD5SingleVer(isAvailable) = false; void MD5SingleVer(update)(uint32_t*, const void*, size_t) {} void MD5SingleVer(updateZero)(uint32_t*, size_t) {} #endif #ifdef MD5CRC const bool MD5CRC(isAvailable) = false; uint32_t MD5CRC(Calc)(const void*, size_t, size_t, void*) { return 0; } #endif #ifdef CRC32Impl const bool CRC32Impl(CRC32_isAvailable) = false; uint32_t CRC32Impl(CRC32_Calc)(const void*, size_t) { return 0; } #endif #endif par2cmdline-turbo-1.5.0/parpar/hasher/hasher_md5mb.cpp000066400000000000000000000140661524160147200226600ustar00rootroot00000000000000#include "hasher_md5mb.h" #include #include "../src/platform.h" #ifdef PARPAR_ENABLE_HASHER_MULTIMD5 MD5MultiLevels HasherMD5Multi_level; void set_hasherMD5MultiLevel(MD5MultiLevels level) { #define SET_LEVEL(h, l) \ if(h::isAvailable) { \ HasherMD5Multi_level = l; \ return; \ } switch(level) { #ifdef PLATFORM_X86 case MD5MULT_AVX512VL: SET_LEVEL(MD5Multi_AVX512_256, MD5MULT_AVX512VL) // fallthrough case MD5MULT_AVX512F: SET_LEVEL(MD5Multi_AVX512, MD5MULT_AVX512F) // fallthrough case MD5MULT_XOP: SET_LEVEL(MD5Multi_XOP, MD5MULT_XOP) // fallthrough case MD5MULT_AVX2: if(level != MD5MULT_XOP) { SET_LEVEL(MD5Multi_AVX2, MD5MULT_AVX2) } // fallthrough case MD5MULT_SSE: SET_LEVEL(MD5Multi_SSE, MD5MULT_SSE) break; // prevent compiler warnings case MD5MULT_SVE2: case MD5MULT_NEON: #endif #ifdef PLATFORM_ARM case MD5MULT_SVE2: SET_LEVEL(MD5Multi_SVE2, MD5MULT_SVE2) break; case MD5MULT_NEON: SET_LEVEL(MD5Multi_NEON, MD5MULT_NEON) break; // prevent compiler warnings case MD5MULT_AVX512VL: case MD5MULT_AVX512F: case MD5MULT_XOP: case MD5MULT_AVX2: case MD5MULT_SSE: #endif default: case MD5MULT_SCALAR: break; } #undef SET_LEVEL HasherMD5Multi_level = MD5MULT_SCALAR; } MD5Multi::MD5Multi(int srcCount) { // first, fill ctx with largest supported hasher #define ADD_CTX2(feat) { \ while(srcCount >= MD5Multi2_##feat::getNumRegions()) { \ ctx.push_back(new MD5Multi2_##feat()); \ srcCount -= MD5Multi2_##feat::getNumRegions(); \ } \ } #define ADD_CTX1(feat) { if(MD5Multi_##feat::isAvailable) { \ while(srcCount >= MD5Multi_##feat::getNumRegions()) { \ ctx.push_back(new MD5Multi_##feat()); \ srcCount -= MD5Multi_##feat::getNumRegions(); \ } \ } } #ifdef PLATFORM_X86 # ifdef PLATFORM_AMD64 # define ADD_CTX ADD_CTX2 # else # define ADD_CTX ADD_CTX1 # endif if(HasherMD5Multi_level >= MD5MULT_AVX512F) ADD_CTX(AVX512) else if(HasherMD5Multi_level == MD5MULT_XOP) ADD_CTX(XOP) else if(HasherMD5Multi_level == MD5MULT_AVX2) ADD_CTX(AVX2) else if(HasherMD5Multi_level == MD5MULT_SSE) ADD_CTX(SSE) else # undef ADD_CTX #endif #ifdef PLATFORM_ARM // TODO: if SVE2 width = 128b, prefer NEON? if(HasherMD5Multi_level == MD5MULT_SVE2) ADD_CTX2(SVE2) else if(HasherMD5Multi_level == MD5MULT_NEON) ADD_CTX2(NEON) else #endif ADD_CTX2(Scalar) #undef ADD_CTX2 #undef ADD_CTX1 // now for last hasher, find smallest hasher which covers all remaining if(srcCount) { #define ADD_LAST_CTX(cond, impl) \ if((cond) && srcCount <= impl::getNumRegions()) { \ lastCtxData.resize(impl::getNumRegions()); \ ctx.push_back(new impl()); \ lastCtxDataDup = impl::getNumRegions() - srcCount; \ } ADD_LAST_CTX(1, MD5Multi_Scalar) else ADD_LAST_CTX(1, MD5Multi2_Scalar) #ifdef PLATFORM_X86 // AVX512 hasher would be faster than scalar on Intel, but slower on AMD, so we won't bother trying to do that optimisation else ADD_LAST_CTX(HasherMD5Multi_level == MD5MULT_AVX512VL, MD5Multi_AVX512_128) else ADD_LAST_CTX(HasherMD5Multi_level == MD5MULT_XOP, MD5Multi_XOP) else ADD_LAST_CTX(HasherMD5Multi_level >= MD5MULT_SSE, MD5Multi_SSE) else ADD_LAST_CTX(HasherMD5Multi_level == MD5MULT_AVX512VL, MD5Multi_AVX512_256) else ADD_LAST_CTX(HasherMD5Multi_level >= MD5MULT_AVX2 && HasherMD5Multi_level != MD5MULT_XOP, MD5Multi_AVX2) else ADD_LAST_CTX(HasherMD5Multi_level >= MD5MULT_AVX512F, MD5Multi_AVX512) # ifdef PLATFORM_AMD64 else ADD_LAST_CTX(HasherMD5Multi_level == MD5MULT_XOP, MD5Multi2_XOP) else ADD_LAST_CTX(HasherMD5Multi_level >= MD5MULT_SSE, MD5Multi2_SSE) else ADD_LAST_CTX(HasherMD5Multi_level >= MD5MULT_AVX2 && HasherMD5Multi_level != MD5MULT_XOP, MD5Multi2_AVX2) else ADD_LAST_CTX(HasherMD5Multi_level >= MD5MULT_AVX512F, MD5Multi2_AVX512) # endif #endif #ifdef PLATFORM_ARM else ADD_LAST_CTX(HasherMD5Multi_level == MD5MULT_NEON, MD5Multi_NEON) else ADD_LAST_CTX(HasherMD5Multi_level == MD5MULT_SVE2, MD5Multi_SVE2) else ADD_LAST_CTX(HasherMD5Multi_level == MD5MULT_NEON, MD5Multi2_NEON) else ADD_LAST_CTX(HasherMD5Multi_level == MD5MULT_SVE2, MD5Multi2_SVE2) #endif #undef ADD_LAST_CTX } else { lastCtxDataDup = 0; } } MD5Multi::~MD5Multi() { for(unsigned i=0; iupdate(dataPtr, len); dataPtr += ctx[ctxI]->numRegions; } if(lastCtxDataDup) { // for last hasher, we will need to fill its quota unsigned lastNumRegions = ctx[ctxI]->numRegions-lastCtxDataDup; memcpy(lastCtxData.data(), dataPtr, lastNumRegions * sizeof(void*)); // copy the first region's pointer to all remaining required regions const void** lastData = lastCtxData.data() + lastNumRegions; for(unsigned i=0; iupdate(lastCtxData.data(), len); } else { ctx[ctxI]->update(dataPtr, len); } } void MD5Multi::get1(unsigned index, void* md5) { // TODO: consider better method for(unsigned i=0; inumRegions) { ctx[i]->get1(index, md5); return; } index -= ctx[i]->numRegions; } } void MD5Multi::get(void* md5s) { char* md5_ = (char*)md5s; unsigned ctxI = 0; for(; ctxIget(md5_); md5_ += 16*ctx[ctxI]->numRegions; } if(lastCtxDataDup) { // prevent exceeding destination buffer, which isn't expecting all hashes we'd normally give it // do this by writing to a temporary buffer and copy what's desired across unsigned lastRegions = ctx[ctxI]->numRegions; std::vector tmp(16*lastRegions); ctx[ctxI]->get(tmp.data()); memcpy(md5_, tmp.data(), 16*(lastRegions-lastCtxDataDup)); } else { ctx[ctxI]->get(md5_); } } const char* hasherMD5Multi_methodName(MD5MultiLevels l) { const char* names[] = { "Scalar", "SSE2", "AVX2", "XOP", "AVX512F", "AVX512VL", "NEON", "SVE2" }; return names[(int)l]; } #endif // defined(PARPAR_ENABLE_HASHER_MULTIMD5) par2cmdline-turbo-1.5.0/parpar/hasher/hasher_md5mb.h000066400000000000000000000022571524160147200223240ustar00rootroot00000000000000#ifndef __HASHER_MULTIMD5_H #define __HASHER_MULTIMD5_H #include "hasher_md5mb_impl.h" #include enum MD5MultiLevels { MD5MULT_SCALAR, MD5MULT_SSE, MD5MULT_AVX2, MD5MULT_XOP, MD5MULT_AVX512F, MD5MULT_AVX512VL, MD5MULT_NEON, MD5MULT_SVE2 }; void set_hasherMD5MultiLevel(MD5MultiLevels level); extern MD5MultiLevels HasherMD5Multi_level; const char* hasherMD5Multi_methodName(MD5MultiLevels l); inline const char* hasherMD5Multi_methodName() { return hasherMD5Multi_methodName(HasherMD5Multi_level); } class MD5Multi { std::vector ctx; std::vector lastCtxData; unsigned lastCtxDataDup; // disable copy constructor MD5Multi(const MD5Multi&); MD5Multi& operator=(const MD5Multi&); public: explicit MD5Multi(int srcCount); ~MD5Multi(); void update(const void* const* data, size_t len); void get1(unsigned index, void* md5); void get(void* md5s); inline void end() { for(unsigned i=0; iend(); } inline void reset() { for(unsigned i=0; ireset(); } inline IMD5Multi* _getFirstCtx() const { // only used for testing return ctx[0]; } }; #endif /* __HASHER_MULTIMD5_H */ par2cmdline-turbo-1.5.0/parpar/hasher/hasher_md5mb_base.h000066400000000000000000000042541524160147200233150ustar00rootroot00000000000000#ifdef PARPAR_ENABLE_HASHER_MULTIMD5 #include "hasher_md5mb_impl.h" #include #ifndef MD5_BLOCKSIZE # define MD5_BLOCKSIZE 64 #endif #ifdef MD5Multi #ifdef md5mb_interleave # define md5mb_regions md5mb_base_regions*md5mb_interleave #else # define md5mb_regions md5mb_base_regions #endif const bool MD5Multi::isAvailable = true; int MD5Multi::getNumRegions() { return md5mb_regions; } MD5Multi::MD5Multi() : IMD5Multi(md5mb_regions, md5mb_alignment) { state = _FNMD5mb2(md5_alloc_mb)(); ALIGN_ALLOC(tmp, MD5_BLOCKSIZE*md5mb_regions, md5mb_alignment); tmpPtrs = new const void*[md5mb_regions]; for(unsigned input=0; input < md5mb_regions; input++) tmpPtrs[input] = tmp + MD5_BLOCKSIZE*input; reset(); } MD5Multi::~MD5Multi() { md5_free(state); ALIGN_FREE(tmp); delete[] tmpPtrs; } void MD5Multi::update(const void* const* data, size_t len) { dataLen += len; size_t p = 0; if(tmpLen) { uint_fast8_t wanted = MD5_BLOCKSIZE - tmpLen; uint_fast8_t copy = len < wanted ? len : wanted; for(unsigned input=0; input < md5mb_regions; input++) memcpy(tmp + MD5_BLOCKSIZE*input + tmpLen, data[input], copy); if(len < wanted) { tmpLen += len; return; } // process one block from tmp _FNMD5mb2(md5_update_block_mb)(state, tmpPtrs, 0); p = wanted; } for(; p+(MD5_BLOCKSIZE-1) < len; p+=MD5_BLOCKSIZE) { _FNMD5mb2(md5_update_block_mb)(state, data, p); } CLEAR_VEC; tmpLen = len - p; if(tmpLen) { for(unsigned input=0; input < md5mb_regions; input++) { memcpy(tmp + MD5_BLOCKSIZE*input, (char*)(data[input]) + p, tmpLen); } } } void MD5Multi::end() { _FNMD5mb2(md5_final_block_mb)(state, tmpPtrs, 0, dataLen); CLEAR_VEC; } void MD5Multi::get1(unsigned index, void* md5) { _FNMD5mb(md5_extract_mb)(md5, state, index); CLEAR_VEC; } void MD5Multi::get(void* md5s) { _FNMD5mb(md5_extract_all_mb)(md5s, state, 0); #ifdef md5mb_interleave char* md5_ = (char*)md5s; for(int i=1; i #include "../src/hedley.h" class IMD5Multi { public: virtual void update(const void* const* data, size_t len) = 0; virtual void get1(unsigned index, void* md5) = 0; virtual void get(void* md5s) = 0; virtual void end() = 0; virtual void reset() = 0; virtual ~IMD5Multi() {} const int numRegions; const unsigned alignment; protected: uint8_t* tmp; const void** tmpPtrs; uint8_t tmpLen; uint64_t dataLen; void* state; explicit IMD5Multi(int regions, unsigned align) : numRegions(regions), alignment(align) {} }; #define __DECL_MD5MULTI(name) \ class MD5Multi##name : public IMD5Multi { \ MD5Multi##name(const MD5Multi##name&); \ MD5Multi##name& operator=(const MD5Multi##name&); \ public: \ static const bool isAvailable; \ HEDLEY_CONST static int getNumRegions(); \ MD5Multi##name(); \ ~MD5Multi##name(); \ void update(const void* const* data, size_t len); \ void get1(unsigned index, void* md5); \ void get(void* md5s); \ void end(); \ void reset(); \ } __DECL_MD5MULTI(_Scalar); __DECL_MD5MULTI(2_Scalar); __DECL_MD5MULTI(_SSE); __DECL_MD5MULTI(2_SSE); __DECL_MD5MULTI(_XOP); __DECL_MD5MULTI(2_XOP); __DECL_MD5MULTI(_AVX2); __DECL_MD5MULTI(2_AVX2); __DECL_MD5MULTI(_AVX512_128); __DECL_MD5MULTI(_AVX512_256); __DECL_MD5MULTI(_AVX512); __DECL_MD5MULTI(2_AVX512); __DECL_MD5MULTI(_NEON); __DECL_MD5MULTI(2_NEON); __DECL_MD5MULTI(_SVE2); __DECL_MD5MULTI(2_SVE2); #undef __DECL_MD5MULTI #endif /* __HASHER_MD5MB_IMPL_H */ par2cmdline-turbo-1.5.0/parpar/hasher/hasher_md5mb_stub.h000066400000000000000000000006531524160147200233570ustar00rootroot00000000000000#ifdef PARPAR_ENABLE_HASHER_MULTIMD5 #include "hasher_md5mb_impl.h" #ifdef MD5Multi int MD5Multi::getNumRegions() { return 0; } const bool MD5Multi::isAvailable = false; MD5Multi::MD5Multi() : IMD5Multi(0, 1) {} MD5Multi::~MD5Multi() {} void MD5Multi::update(const void* const*, size_t) {} void MD5Multi::end() {} void MD5Multi::get1(unsigned, void*) {} void MD5Multi::get(void*) {} void MD5Multi::reset() {} #endif #endif par2cmdline-turbo-1.5.0/parpar/hasher/hasher_neon.cpp000066400000000000000000000014231524160147200226040ustar00rootroot00000000000000#include "../src/platform.h" #include "crc_slice4.h" #define HasherInput HasherInput_NEON #define _FNMD5x2(f) f##_neon #define _FNCRC(f) f##_slice4 #define MD5Multi MD5Multi_NEON #define _FNMD5mb(f) f##_neon #define _FNMD5mb2(f) f##_neon #define md5mb_base_regions md5mb_regions_neon #define md5mb_alignment md5mb_alignment_neon #define CLEAR_VEC (void)0 #ifdef __ARM_NEON # include "md5x2-neon.h" # include "md5mb-neon.h" # include "hasher_input_base.h" # include "hasher_md5mb_base.h" #else # include "hasher_input_stub.h" # include "hasher_md5mb_stub.h" #endif #undef MD5Multi #undef _FNMD5mb2 #define MD5Multi MD5Multi2_NEON #define _FNMD5mb2(f) f##2_neon #define md5mb_interleave 2 #ifdef __ARM_NEON # include "hasher_md5mb_base.h" #else # include "hasher_md5mb_stub.h" #endif par2cmdline-turbo-1.5.0/parpar/hasher/hasher_neoncrc.cpp000066400000000000000000000016351524160147200233010ustar00rootroot00000000000000#include "../src/platform.h" // disable CRC on GCC versions with broken arm_acle.h #if defined(__ARM_FEATURE_CRC32) && defined(HEDLEY_GCC_VERSION) # if !defined(__aarch64__) && HEDLEY_GCC_VERSION_CHECK(7,0,0) && !HEDLEY_GCC_VERSION_CHECK(8,1,1) # undef __ARM_FEATURE_CRC32 # endif # if defined(__aarch64__) && HEDLEY_GCC_VERSION_CHECK(9,4,0) && !HEDLEY_GCC_VERSION_CHECK(9,5,0) # undef __ARM_FEATURE_CRC32 # endif #endif #if defined(__ARM_FEATURE_CRC32) && defined(__has_include) # if !__has_include() # undef __ARM_FEATURE_CRC32 # endif #endif #define HasherInput HasherInput_NEONCRC #define _FNMD5x2(f) f##_neon #define _FNCRC(f) f##_arm #if (defined(__ARM_FEATURE_CRC32) && defined(__ARM_NEON)) || (defined(_M_ARM64) && !defined(__clang__)) // MSVC doesn't support CRC for ARM32 # include "crc_arm.h" # include "md5x2-neon.h" # include "hasher_input_base.h" #else # include "hasher_input_stub.h" #endif par2cmdline-turbo-1.5.0/parpar/hasher/hasher_rvzbc.cpp000066400000000000000000000010321524160147200227670ustar00rootroot00000000000000#include "../src/platform.h" #define HasherInput HasherInput_RVZbc #define CRC32Impl(n) n##_RVZbc #define MD5CRC(f) MD5CRC_##f##_RVZbc #define _FNMD5(f) f##_scalar #define _FNMD5x2(f) f##_scalar #define _FNCRC(f) f##_rvzbc #if defined(__riscv) && defined(__GNUC__) && (defined(__riscv_zbkc) || defined(__riscv_zbc)) # include "crc_rvzbc.h" # include "md5x2-scalar.h" # include "md5-scalar.h" # include "hasher_input_base.h" # include "hasher_md5crc_base.h" #else # include "hasher_input_stub.h" # include "hasher_md5crc_stub.h" #endif par2cmdline-turbo-1.5.0/parpar/hasher/hasher_scalar.cpp000066400000000000000000000015211524160147200231110ustar00rootroot00000000000000#include "../src/platform.h" #include "md5-scalar.h" #include "md5x2-scalar.h" #include "md5mb-scalar.h" #include "crc_slice4.h" #define HasherInput HasherInput_Scalar #define MD5SingleVer(f) MD5Single_##f##_Scalar #define MD5CRC(f) MD5CRC_##f##_Scalar #define CRC32Impl(n) n##_Slice4 #define _FNMD5(f) f##_scalar #define _FNMD5x2(f) f##_scalar #define _FNCRC(f) f##_slice4 #define MD5Multi MD5Multi_Scalar #define _FNMD5mb(f) f##_scalar #define _FNMD5mb2(f) f##_scalar #define md5mb_base_regions md5mb_regions_scalar #define md5mb_alignment md5mb_alignment_scalar #define CLEAR_VEC (void)0 #include "hasher_input_base.h" #include "hasher_md5crc_base.h" #include "hasher_md5mb_base.h" #undef MD5Multi #undef _FNMD5mb2 #define MD5Multi MD5Multi2_Scalar #define _FNMD5mb2(f) f##2_scalar #define md5mb_interleave 2 #include "hasher_md5mb_base.h" par2cmdline-turbo-1.5.0/parpar/hasher/hasher_sse.cpp000066400000000000000000000014041524160147200224360ustar00rootroot00000000000000#include "../src/platform.h" #include "crc_slice4.h" #define HasherInput HasherInput_SSE #define _FNMD5x2(f) f##_sse #define _FNCRC(f) f##_slice4 #define MD5Multi MD5Multi_SSE #define _FNMD5mb(f) f##_sse #define _FNMD5mb2(f) f##_sse #define md5mb_base_regions md5mb_regions_sse #define md5mb_alignment md5mb_alignment_sse #define CLEAR_VEC (void)0 #ifdef __SSE2__ # include "md5x2-sse.h" # include "md5mb-sse.h" # include "hasher_input_base.h" # include "hasher_md5mb_base.h" #else # include "hasher_input_stub.h" # include "hasher_md5mb_stub.h" #endif #undef MD5Multi #undef _FNMD5mb2 #define MD5Multi MD5Multi2_SSE #define _FNMD5mb2(f) f##2_sse #define md5mb_interleave 2 #ifdef __SSE2__ # include "hasher_md5mb_base.h" #else # include "hasher_md5mb_stub.h" #endif par2cmdline-turbo-1.5.0/parpar/hasher/hasher_sve2.cpp000066400000000000000000000011521524160147200225230ustar00rootroot00000000000000#include "../src/platform.h" #define MD5Multi MD5Multi_SVE2 #define _FNMD5mb(f) f##_sve2 #define _FNMD5mb2(f) f##_sve2 #define md5mb_base_regions md5mb_regions_sve2 #define md5mb_alignment md5mb_alignment_sve2 #define CLEAR_VEC (void)0 #ifdef __ARM_FEATURE_SVE2 # include # include "md5mb-sve2.h" # include "hasher_md5mb_base.h" #else # include "hasher_md5mb_stub.h" #endif #undef MD5Multi #undef _FNMD5mb2 #define MD5Multi MD5Multi2_SVE2 #define _FNMD5mb2(f) f##2_sve2 #define md5mb_interleave 2 #ifdef __ARM_FEATURE_SVE2 # include "hasher_md5mb_base.h" #else # include "hasher_md5mb_stub.h" #endif par2cmdline-turbo-1.5.0/parpar/hasher/hasher_xop.cpp000066400000000000000000000012501524160147200224510ustar00rootroot00000000000000#include "../src/platform.h" #define MD5Multi MD5Multi_XOP #define _FNMD5mb(f) f##_xop #define _FNMD5mb2(f) f##_xop #define md5mb_base_regions md5mb_regions_xop #define md5mb_alignment md5mb_alignment_xop #define CLEAR_VEC (void)0 #if defined(_MSC_VER) && !defined(__clang__) && !defined(__XOP__) && defined(__AVX__) # define __XOP__ 1 #endif #ifdef __XOP__ # include "md5mb-sse.h" # include "hasher_md5mb_base.h" #else # include "hasher_md5mb_stub.h" #endif #undef MD5Multi #undef _FNMD5mb2 #define MD5Multi MD5Multi2_XOP #define _FNMD5mb2(f) f##2_xop #define md5mb_interleave 2 #ifdef __XOP__ # include "hasher_md5mb_base.h" #else # include "hasher_md5mb_stub.h" #endif par2cmdline-turbo-1.5.0/parpar/hasher/md5-arm-asm.h000066400000000000000000000174071524160147200220110ustar00rootroot00000000000000 #ifndef STR # define STR_HELPER(x) #x # define STR(x) STR_HELPER(x) #endif #ifdef PLATFORM_ARM #if __BYTE_ORDER__ != __ORDER_BIG_ENDIAN__ # define REV(R) #else // requires ARMv6 # define REV(R) "rev " REG(R) ", " REG(R) "\n" #endif #if !defined(__aarch64__) && (!defined(__clang__) || (defined(__ARM_ARCH_ISA_THUMB) && __ARM_ARCH_ISA_THUMB < 2)) // GCC refuses to allow >9 registers in Thumb mode; Clang has no qualms, as long as it's Thumb2 # define ARM_THUMB_LIMIT_REGS 1 #endif static HEDLEY_ALWAYS_INLINE void md5_process_block_scalar(uint32_t* HEDLEY_RESTRICT state, const uint8_t* const* HEDLEY_RESTRICT data, size_t offset) { (void)offset; uint32_t A; uint32_t B; uint32_t C; uint32_t D; const uint32_t* HEDLEY_RESTRICT _in = (const uint32_t* HEDLEY_RESTRICT)(data[0]); uint32_t tmp1, tmp2, tmp3; #ifdef __aarch64__ # define SETI_L(dst, x) "mov %w[" STR(dst) "], #" STR(x) "\n" # define SETI_H(dst, x) "movk %w[" STR(dst) "], #" STR(x) ", lsl #16\n" # define REG(x) "%w[" STR(x) "]" # define ROR_ADD(A, B, R) \ "ror %w[" STR(A) "], %w[" STR(A) "], #" STR(R) "\n" \ "add %w[" STR(A) "], %w[" STR(A) "], %w[" STR(B) "]\n" #else # if defined(__armv7__) || defined(_M_ARM) || defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_8A__) || (defined(__ARM_ARCH) && __ARM_ARCH >= 7) # define SETI_L(dst, x) "movw %[" STR(dst) "], #" STR(x) "\n" # define SETI_H(dst, x) "movt %[" STR(dst) "], #" STR(x) "\n" # else # define SETI_L(dst, x) "mov %[" STR(dst) "], #" STR(x) " & 0xff\n orr %[" STR(dst) "], #" STR(x) " & 0xff00\n" # define SETI_H(dst, x) "orr %[" STR(dst) "], #(" STR(x) " & 0xff)<<16\n orr %[" STR(dst) "], #(" STR(x) " & 0xff00)<<16\n" # endif # define REG(x) "%[" STR(x) "]" # define ROR_ADD(A, B, R) \ "add %[" STR(A) "], %[" STR(B) "], %[" STR(A) "], ror #" STR(R) "\n" #endif #define ROUND_F(IA, A, B, C, D, NEXT_IN, KL, KH, R) \ SETI_L(TMP1, KL) \ "add " REG(A) ", " REG(IA) ", " REG(TMP2) "\n" \ "eor " REG(TMP3) ", " REG(C) ", " REG(D) "\n" \ SETI_H(TMP1, KH) \ "ldr " REG(TMP2) ", " NEXT_IN "\n" \ "and " REG(TMP3) ", " REG(TMP3) ", " REG(B) "\n" \ "add " REG(A) ", " REG(A) ", " REG(TMP1) "\n" \ "eor " REG(TMP3) ", " REG(TMP3) ", " REG(D) "\n" \ "add " REG(A) ", " REG(A) ", " REG(TMP3) "\n" \ REV(TMP2) \ ROR_ADD(A, B, R) #define ROUND_H(A, B, C, D, NEXT_IN, KL, KH, R) \ SETI_L(TMP1, KL) \ "add " REG(A) ", " REG(A) ", " REG(TMP2) "\n" \ "eor " REG(TMP3) ", " REG(C) ", " REG(D) "\n" \ SETI_H(TMP1, KH) \ "ldr " REG(TMP2) ", " NEXT_IN "\n" \ "eor " REG(TMP3) ", " REG(TMP3) ", " REG(B) "\n" \ "add " REG(A) ", " REG(A) ", " REG(TMP1) "\n" \ "add " REG(A) ", " REG(A) ", " REG(TMP3) "\n" \ REV(TMP2) \ ROR_ADD(A, B, R) #define ROUND_I(A, B, C, D, NEXT_IN, KL, KH, R) \ SETI_L(TMP1, KL) \ "add " REG(A) ", " REG(A) ", " REG(TMP2) "\n" \ SETI_H(TMP1, KH) \ "bic " REG(TMP3) ", " REG(D) ", " REG(B) "\n" \ "ldr " REG(TMP2) ", " NEXT_IN "\n" \ "eor " REG(TMP3) ", " REG(TMP3) ", " REG(C) "\n" \ "add " REG(A) ", " REG(A) ", " REG(TMP1) "\n" \ "sub " REG(A) ", " REG(A) ", " REG(TMP3) "\n" \ REV(TMP2) \ ROR_ADD(A, B, R) #define ROUND_I_LAST(A, B, C, D, KL, KH, R) \ SETI_L(TMP1, KL) \ "add " REG(A) ", " REG(A) ", " REG(TMP2) "\n" \ "bic " REG(TMP3) ", " REG(D) ", " REG(B) "\n" \ SETI_H(TMP1, KH) \ "eor " REG(TMP3) ", " REG(TMP3) ", " REG(C) "\n" \ "add " REG(A) ", " REG(A) ", " REG(TMP1) "\n" \ "sub " REG(A) ", " REG(A) ", " REG(TMP3) "\n" \ ROR_ADD(A, B, R) #define ROUND_G(A, B, C, D, NEXT_IN, KL, KH, R) \ SETI_L(TMP1, KL) \ "add " REG(A) ", " REG(A) ", " REG(TMP2) "\n" \ SETI_H(TMP1, KH) \ "ldr " REG(TMP2) ", " NEXT_IN "\n" \ "add " REG(A) ", " REG(A) ", " REG(TMP1) "\n" \ "bic " REG(TMP3) ", " REG(C) ", " REG(D) "\n" \ "and " REG(TMP1) ", " REG(B) ", " REG(D) "\n" \ "add " REG(A) ", " REG(A) ", " REG(TMP3) "\n" \ "add " REG(A) ", " REG(A) ", " REG(TMP1) "\n" \ REV(TMP2) \ ROR_ADD(A, B, R) #define RF4(I, i0, i1, i2, i3, k0l, k0h, k1l, k1h, k2l, k2h, k3l, k3h) \ ROUND_F(I##A, A, I##B, I##C, I##D, "[%[in], #4*" STR(i0) "]", k0l, k0h, 25) \ ROUND_F(I##D, D, A, I##B, I##C, "[%[in], #4*" STR(i1) "]", k1l, k1h, 20) \ ROUND_F(I##C, C, D, A, I##B, "[%[in], #4*" STR(i2) "]", k2l, k2h, 15) \ ROUND_F(I##B, B, C, D, A, "[%[in], #4*" STR(i3) "]", k3l, k3h, 10) #define RG4(i0, i1, i2, i3, k0l, k0h, k1l, k1h, k2l, k2h, k3l, k3h) \ ROUND_G(A, B, C, D, "[%[in], #4*" STR(i0) "]", k0l, k0h, 27) \ ROUND_G(D, A, B, C, "[%[in], #4*" STR(i1) "]", k1l, k1h, 23) \ ROUND_G(C, D, A, B, "[%[in], #4*" STR(i2) "]", k2l, k2h, 18) \ ROUND_G(B, C, D, A, "[%[in], #4*" STR(i3) "]", k3l, k3h, 12) #define RH4(i0, i1, i2, i3, k0l, k0h, k1l, k1h, k2l, k2h, k3l, k3h) \ ROUND_H(A, B, C, D, "[%[in], #4*" STR(i0) "]", k0l, k0h, 28) \ ROUND_H(D, A, B, C, "[%[in], #4*" STR(i1) "]", k1l, k1h, 21) \ ROUND_H(C, D, A, B, "[%[in], #4*" STR(i2) "]", k2l, k2h, 16) \ ROUND_H(B, C, D, A, "[%[in], #4*" STR(i3) "]", k3l, k3h, 9) #define RI4(i0, i1, i2, i3, k0l, k0h, k1l, k1h, k2l, k2h, k3l, k3h) \ ROUND_I(A, B, C, D, "[%[in], #4*" STR(i0) "]", k0l, k0h, 26) \ ROUND_I(D, A, B, C, "[%[in], #4*" STR(i1) "]", k1l, k1h, 22) \ ROUND_I(C, D, A, B, "[%[in], #4*" STR(i2) "]", k2l, k2h, 17) \ ROUND_I(B, C, D, A, "[%[in], #4*" STR(i3) "]", k3l, k3h, 11) #ifdef ARM_THUMB_LIMIT_REGS A = state[0]; B = state[1]; C = state[2]; D = state[3]; #endif __asm__( "ldr " REG(TMP2) ", [%[in]]\n" REV(TMP2) #ifdef ARM_THUMB_LIMIT_REGS RF4(, 1, 2, 3, 4, 0xa478, 0xd76a, 0xb756, 0xe8c7, 0x70db, 0x2420, 0xceee, 0xc1bd) #else RF4(I, 1, 2, 3, 4, 0xa478, 0xd76a, 0xb756, 0xe8c7, 0x70db, 0x2420, 0xceee, 0xc1bd) #endif RF4(, 5, 6, 7, 8, 0x0faf, 0xf57c, 0xc62a, 0x4787, 0x4613, 0xa830, 0x9501, 0xfd46) RF4(, 9, 10, 11, 12, 0x98d8, 0x6980, 0xf7af, 0x8b44, 0x5bb1, 0xffff, 0xd7be, 0x895c) RF4(,13, 14, 15, 1, 0x1122, 0x6b90, 0x7193, 0xfd98, 0x438e, 0xa679, 0x0821, 0x49b4) RG4( 6, 11, 0, 5, 0x2562, 0xf61e, 0xb340, 0xc040, 0x5a51, 0x265e, 0xc7aa, 0xe9b6) RG4(10, 15, 4, 9, 0x105d, 0xd62f, 0x1453, 0x0244, 0xe681, 0xd8a1, 0xfbc8, 0xe7d3) RG4(14, 3, 8, 13, 0xcde6, 0x21e1, 0x07d6, 0xc337, 0x0d87, 0xf4d5, 0x14ed, 0x455a) RG4( 2, 7, 12, 5, 0xe905, 0xa9e3, 0xa3f8, 0xfcef, 0x02d9, 0x676f, 0x4c8a, 0x8d2a) RH4( 8, 11, 14, 1, 0x3942, 0xfffa, 0xf681, 0x8771, 0x6122, 0x6d9d, 0x380c, 0xfde5) RH4( 4, 7, 10, 13, 0xea44, 0xa4be, 0xcfa9, 0x4bde, 0x4b60, 0xf6bb, 0xbc70, 0xbebf) RH4( 0, 3, 6, 9, 0x7ec6, 0x289b, 0x27fa, 0xeaa1, 0x3085, 0xd4ef, 0x1d05, 0x0488) RH4(12, 15, 2, 0, 0xd039, 0xd9d4, 0x99e5, 0xe6db, 0x7cf8, 0x1fa2, 0x5665, 0xc4ac) RI4( 7, 14, 5, 12, 0x2243, 0xf429, 0xff96, 0x432a, 0x23a6, 0xab94, 0xa038, 0xfc93) RI4( 3, 10, 1, 8, 0x59c2, 0x655b, 0xcc91, 0x8f0c, 0xf47c, 0xffef, 0x5dd0, 0x8584) RI4(15, 6, 13, 4, 0x7e4e, 0x6fa8, 0xe6df, 0xfe2c, 0x4313, 0xa301, 0x11a0, 0x4e08) ROUND_I(A, B, C, D, "[%[in], #4*11]", 0x7e81, 0xf753, 26) ROUND_I(D, A, B, C, "[%[in], #4*2]", 0xf234, 0xbd3a, 22) ROUND_I(C, D, A, B, "[%[in], #4*9]", 0xd2ba, 0x2ad7, 17) ROUND_I_LAST(B, C, D, A, 0xd390, 0xeb86, 11) : #ifdef ARM_THUMB_LIMIT_REGS [A]"+&l"(A), [B]"+&l"(B), [C]"+&l"(C), [D]"+&l"(D), #else [A]"=&l"(A), [B]"=&l"(B), [C]"=&l"(C), [D]"=&l"(D), #endif [TMP1]"=&l"(tmp1), [TMP2]"=&l"(tmp2), [TMP3]"=&l"(tmp3) : [in]"r"(_in) // Clang doesn't seem to like "m" references (over allocates registers? causes "assembly requires more registers than available" errors) , "m"(*(const uint32_t (*)[16])_in) // ensure the memory is written before we try to run this #ifndef ARM_THUMB_LIMIT_REGS , [IA]"r"(state[0]), [IB]"r"(state[1]), [IC]"r"(state[2]), [ID]"r"(state[3]) #endif :); state[0] += A; state[1] += B; state[2] += C; state[3] += D; #undef ROUND_F #undef ROUND_G #undef ROUND_H #undef ROUND_I #undef ROUND_I_LAST #undef RF4 #undef RG4 #undef RH4 #undef RI4 #undef SETI_L #undef SETI_H #undef ROR_ADD #undef REG } #endif par2cmdline-turbo-1.5.0/parpar/hasher/md5-arm64-asm.h000066400000000000000000000202521524160147200221530ustar00rootroot00000000000000 #ifndef STR # define STR_HELPER(x) #x # define STR(x) STR_HELPER(x) #endif #if __BYTE_ORDER__ != __ORDER_BIG_ENDIAN__ # define REV(R) #else # define REV(R) "rev " R ", " R "\n" #endif static const uint64_t md5_constants_aarch64[32] __attribute__((aligned(8))) = { #define _NUM_PAIR(a,b) 0x##b##a##ULL // F _NUM_PAIR(d76aa478,e8c7b756), _NUM_PAIR(242070db,c1bdceee), _NUM_PAIR(f57c0faf,4787c62a), _NUM_PAIR(a8304613,fd469501), _NUM_PAIR(698098d8,8b44f7af), _NUM_PAIR(ffff5bb1,895cd7be), _NUM_PAIR(6b901122,fd987193), _NUM_PAIR(a679438e,49b40821), // G _NUM_PAIR(f61e2562,c040b340), _NUM_PAIR(265e5a51,e9b6c7aa), _NUM_PAIR(d62f105d,02441453), _NUM_PAIR(d8a1e681,e7d3fbc8), _NUM_PAIR(21e1cde6,c33707d6), _NUM_PAIR(f4d50d87,455a14ed), _NUM_PAIR(a9e3e905,fcefa3f8), _NUM_PAIR(676f02d9,8d2a4c8a), // H _NUM_PAIR(fffa3942,8771f681), _NUM_PAIR(6d9d6122,fde5380c), _NUM_PAIR(a4beea44,4bdecfa9), _NUM_PAIR(f6bb4b60,bebfbc70), _NUM_PAIR(289b7ec6,eaa127fa), _NUM_PAIR(d4ef3085,04881d05), _NUM_PAIR(d9d4d039,e6db99e5), _NUM_PAIR(1fa27cf8,c4ac5665), // I _NUM_PAIR(f4292244,432aff97), _NUM_PAIR(ab9423a7,fc93a039), _NUM_PAIR(655b59c3,8f0ccc92), _NUM_PAIR(ffeff47d,85845dd1), _NUM_PAIR(6fa87e4f,fe2ce6e0), _NUM_PAIR(a3014314,4e0811a1), _NUM_PAIR(f7537e82,bd3af235), _NUM_PAIR(2ad7d2bb,eb86d391) #undef _NUM_PAIR }; static HEDLEY_ALWAYS_INLINE void md5_process_block_scalar(uint32_t* HEDLEY_RESTRICT state, const uint8_t* const* HEDLEY_RESTRICT data, size_t offset) { (void)offset; uint32_t A; uint32_t B; uint32_t C; uint32_t D; const uint32_t* HEDLEY_RESTRICT _in = (const uint32_t* HEDLEY_RESTRICT)(data[0]); uint32_t tmp1, tmp2; uint64_t k0, k1; uint32_t cache[16]; #define ASM_PARAMS(x) [A]x(A), [B]x(B), [C]x(C), [D]x(D), \ [TMP1]x(tmp1), [TMP2]x(tmp2), [k0]x(k0), [k1]x(k1) #define ROUND_F(IA, A, B, C, D, I, K, KEXTRA, R, LEXTRA) \ REV(I) \ "add %w[" STR(A) "], %w[" STR(IA) "], " I "\n" \ "eor %w[TMP2], %w[" STR(C) "], %w[" STR(D) "]\n" \ "add %w[" STR(A) "], %w[" STR(A) "], %w[" K "]\n" \ "and %w[TMP2], %w[TMP2], %w[" STR(B) "]\n" \ KEXTRA "\n" \ "eor %w[TMP2], %w[TMP2], %w[" STR(D) "]\n" \ "add %w[" STR(A) "], %w[" STR(A) "], %w[TMP2]\n" \ LEXTRA "\n" \ "ror %w[" STR(A) "], %w[" STR(A) "], #" STR(R) "\n" \ "add %w[" STR(A) "], %w[" STR(A) "], %w[" STR(B) "]\n" #define ROUND_H(A, B, C, D, I, K, KEXTRA, R) \ "eor %w[TMP2], %w[" STR(C) "], %w[" STR(D) "]\n" \ "add %w[" STR(A) "], %w[" STR(A) "], %w[" K "]\n" \ "eor %w[TMP2], %w[TMP2], %w[" STR(B) "]\n" \ KEXTRA "\n" \ "add %w[" STR(A) "], %w[" STR(A) "], %w[TMP2]\n" \ "ror %w[" STR(A) "], %w[" STR(A) "], #" STR(R) "\n" \ "add %w[" STR(D) "], %w[" STR(D) "], " I "\n" \ "add %w[" STR(A) "], %w[" STR(A) "], %w[" STR(B) "]\n" #define ROUND_I(A, B, C, D, I, K, KEXTRA, R) \ "orn %w[TMP2], %w[" STR(B) "], %w[" STR(D) "]\n" \ "add %w[" STR(A) "], %w[" STR(A) "], %w[" K "]\n" \ "eor %w[TMP2], %w[TMP2], %w[" STR(C) "]\n" \ KEXTRA "\n" \ "add %w[" STR(A) "], %w[" STR(A) "], %w[TMP2]\n" \ "ror %w[" STR(A) "], %w[" STR(A) "], #" STR(R) "\n" \ "add %w[" STR(D) "], %w[" STR(D) "], " I "\n" \ "add %w[" STR(A) "], %w[" STR(A) "], %w[" STR(B) "]\n" #define ROUND_G(A, B, C, D, I, K, KEXTRA, R) \ "bic %w[TMP2], %w[" STR(C) "], %w[" STR(D) "]\n" \ "add %w[" STR(A) "], %w[" STR(A) "], %w[" K "]\n" \ "and %w[TMP1], %w[" STR(B) "], %w[" STR(D) "]\n" \ "add %w[" STR(A) "], %w[" STR(A) "], %w[TMP2]\n" \ KEXTRA "\n" \ "add %w[" STR(A) "], %w[" STR(A) "], %w[TMP1]\n" \ "ror %w[" STR(A) "], %w[" STR(A) "], #" STR(R) "\n" \ "add %w[" STR(D) "], %w[" STR(D) "], " I "\n" \ "add %w[" STR(A) "], %w[" STR(A) "], %w[" STR(B) "]\n" #define RF4(i0, i1, i2, i3, i4, i5, kr) \ __asm__( \ ROUND_F(A, A, B, C, D, "%w[cache0]", "k0", "lsr %[k0], %[k0], #32", 25, "ldp %w[cache2], %w[cache3], %[in2]") \ ROUND_F(D, D, A, B, C, "%w[cache1]", "k0", "", 20, "") \ ROUND_F(C, C, D, A, B, "%w[cache2]", "k1", "lsr %[k1], %[k1], #32", 15, "ldp %w[cache4], %w[cache5], %[in4]") \ ROUND_F(B, B, C, D, A, "%w[cache3]", "k1", "ldp %[k0], %[k1], [%[kM], #" STR(kr) "]", 10, "") \ : ASM_PARAMS("+&r"), [cache2]"=&r"(cache[i2]), [cache3]"=&r"(cache[i3]), [cache4]"=&r"(cache[i4]), [cache5]"=&r"(cache[i5]) \ : [in2]"Q"(_in[i2]), [in4]"Q"(_in[i4]), [kM]"r"(md5_constants_aarch64), \ [cache0]"r"(cache[i0]), [cache1]"r"(cache[i1]) \ :); #define RG4(i0, i1, i2, i3, kr) \ __asm__( \ ROUND_G(A, B, C, D, "%w[cache0]", "k0", "lsr %[k0], %[k0], #32", 27) \ ROUND_G(D, A, B, C, "%w[cache1]", "k0", "", 23) \ ROUND_G(C, D, A, B, "%w[cache2]", "k1", "lsr %[k1], %[k1], #32", 18) \ ROUND_G(B, C, D, A, "%w[cache3]", "k1", "ldp %[k0], %[k1], [%[kM], #" STR(kr) "]", 12) \ : ASM_PARAMS("+&r") \ : [kM]"r"(md5_constants_aarch64), [cache0]"r"(cache[i0]), [cache1]"r"(cache[i1]), [cache2]"r"(cache[i2]), [cache3]"r"(cache[i3]) \ :); #define RH4(i0, i1, i2, i3, kr) \ __asm__( \ ROUND_H(A, B, C, D, "%w[cache0]", "k0", "lsr %[k0], %[k0], #32", 28) \ ROUND_H(D, A, B, C, "%w[cache1]", "k0", "", 21) \ ROUND_H(C, D, A, B, "%w[cache2]", "k1", "lsr %[k1], %[k1], #32", 16) \ ROUND_H(B, C, D, A, "%w[cache3]", "k1", "ldp %[k0], %[k1], [%[kM], #" STR(kr) "]", 9) \ : ASM_PARAMS("+&r") \ : [kM]"r"(md5_constants_aarch64), [cache0]"r"(cache[i0]), [cache1]"r"(cache[i1]), [cache2]"r"(cache[i2]), [cache3]"r"(cache[i3]) \ :); #define RI4(i0, i1, i2, i3, kr) \ __asm__( \ ROUND_I(A, B, C, D, "%w[cache0]", "k0", "lsr %[k0], %[k0], #32", 26) \ ROUND_I(D, A, B, C, "%w[cache1]", "k0", "", 22) \ ROUND_I(C, D, A, B, "%w[cache2]", "k1", "lsr %[k1], %[k1], #32", 17) \ ROUND_I(B, C, D, A, "%w[cache3]", "k1", "ldp %[k0], %[k1], [%[kM], #" STR(kr) "]", 11) \ : ASM_PARAMS("+&r") \ : [kM]"r"(md5_constants_aarch64), [cache0]"r"(cache[i0]), [cache1]"r"(cache[i1]), [cache2]"r"(cache[i2]), [cache3]"r"(cache[i3]) \ :); __asm__( "ldp %w[cache0], %w[cache1], %[in0]\n" "ldp %[k0], %[k1], [%[kM]]\n" ROUND_F(IA, A, IB, IC, ID, "%w[cache0]", "k0", "lsr %[k0], %[k0], #32", 25, "ldp %w[cache2], %w[cache3], %[in2]") ROUND_F(ID, D, A, IB, IC, "%w[cache1]", "k0", "", 20, "") ROUND_F(IC, C, D, A, IB, "%w[cache2]", "k1", "lsr %[k1], %[k1], #32", 15, "ldp %w[cache4], %w[cache5], %[in4]") ROUND_F(IB, B, C, D, A, "%w[cache3]", "k1", "ldp %[k0], %[k1], [%[kM], #16]", 10, "") : ASM_PARAMS("=&r"), [cache0]"=&r"(cache[0]), [cache1]"=&r"(cache[1]), [cache2]"=&r"(cache[2]), [cache3]"=&r"(cache[3]), [cache4]"=&r"(cache[4]), [cache5]"=&r"(cache[5]) : [in0]"Q"(_in[0]), [in2]"Q"(_in[2]), [in4]"Q"(_in[4]), [kM]"r"(md5_constants_aarch64), [IA]"r"(state[0]), [IB]"r"(state[1]), [IC]"r"(state[2]), [ID]"r"(state[3]) :); RF4( 4, 5, 6, 7, 8, 9, 32) RF4( 8, 9, 10, 11, 12, 13, 48) __asm__( ROUND_F(A, A, B, C, D, "%w[cache0]", "k0", "lsr %[k0], %[k0], #32", 25, "ldp %w[cache2], %w[cache3], %[in14]") ROUND_F(D, D, A, B, C, "%w[cache1]", "k0", "", 20, "") ROUND_F(C, C, D, A, B, "%w[cache2]", "k1", "lsr %[k1], %[k1], #32", 15, "") ROUND_F(B, B, C, D, A, "%w[cache3]", "k1", "ldp %[k0], %[k1], [%[kM], #64]", 10, "") "add %w[A], %w[A], %w[cacheN]\n" : ASM_PARAMS("+&r"), [cache2]"=&r"(cache[14]), [cache3]"=&r"(cache[15]) : [in14]"Q"(_in[14]), [kM]"r"(md5_constants_aarch64), [cache0]"r"(cache[12]), [cache1]"r"(cache[13]), [cacheN]"r"(cache[1]) :); RG4( 6, 11, 0, 5, 80) RG4( 10, 15, 4, 9, 96) RG4( 14, 3, 8,13, 112) RG4( 2, 7, 12, 5, 128) RH4( 8, 11, 14, 1, 144) RH4( 4, 7, 10,13, 160) RH4( 0, 3, 6, 9, 176) RH4( 12, 15, 2, 0, 192) RI4( 7, 14, 5,12, 208) RI4( 3, 10, 1, 8, 224) RI4( 15, 6, 13, 4, 240) __asm__( ROUND_I(A, B, C, D, "%w[cache0]", "k0", "lsr %[k0], %[k0], #32", 26) ROUND_I(D, A, B, C, "%w[cache1]", "k0", "", 22) ROUND_I(C, D, A, B, "%w[cache2]", "k1", "lsr %[k1], %[k1], #32", 17) // ROUND_I last "orn %w[TMP2], %w[C], %w[A]\n" "add %w[B], %w[B], %w[k1]\n" "eor %w[TMP2], %w[TMP2], %w[D]\n" "add %w[B], %w[B], %w[TMP2]\n" "ror %w[B], %w[B], #11\n" "add %w[B], %w[B], %w[C]\n" : ASM_PARAMS("+&r") : [kM]"r"(md5_constants_aarch64), [cache0]"r"(cache[11]), [cache1]"r"(cache[2]), [cache2]"r"(cache[9]) :); state[0] += A; state[1] += B; state[2] += C; state[3] += D; #undef ROUND_F #undef ROUND_G #undef ROUND_H #undef ROUND_I #undef RF4 #undef RG4 #undef RH4 #undef RI4 #undef REV } par2cmdline-turbo-1.5.0/parpar/hasher/md5-avx512-asm.h000066400000000000000000000154051524160147200222540ustar00rootroot00000000000000 #ifndef STR # define STR_HELPER(x) #x # define STR(x) STR_HELPER(x) #endif #if defined(__AVX512VL__) && defined(PLATFORM_AMD64) #include static const uint32_t md5_constants_avx512[64] __attribute__((aligned(16))) = { // F 0xd76aa478L, 0xe8c7b756L, 0x242070dbL, 0xc1bdceeeL, 0xf57c0fafL, 0x4787c62aL, 0xa8304613L, 0xfd469501L, 0x698098d8L, 0x8b44f7afL, 0xffff5bb1L, 0x895cd7beL, 0x6b901122L, 0xfd987193L, 0xa679438eL, 0x49b40821L, // G-F 0x124c2332L, 0x0d566e0cL, 0xd8cf331dL, 0x33173e99L, 0xf257ec19L, 0x8ea74a33L, 0x18106d2dL, 0x6a286dd8L, 0xdbd97c15L, 0x969cd637L, 0x0244b8a2L, 0x9d018293L, 0x219a3b68L, 0xac4b7772L, 0x1cbdc448L, 0x8eedde60L, // H-G 0x00ea6050L, 0xaea0c4e2L, 0xc7bcb26dL, 0xe01a22feL, 0x640ad3e1L, 0x29cb28e5L, 0x444769c5L, 0x8f4c4887L, 0x4217e194L, 0xb7f30253L, 0xbc7ba81dL, 0x473f06d1L, 0x59b14d5bL, 0x7eb795c1L, 0x3aae3036L, 0x47009677L, // I-H 0x0987fa4aL, 0xe0c5738dL, 0x662b7c56L, 0xba1d9c0dL, 0xab74aed9L, 0xfc9966f7L, 0x9e79260fL, 0x4c6fb437L, 0xe83687ceL, 0x11b20358L, 0x4130380dL, 0x4f9d9113L, 0x7e7fbfdeL, 0x256c92dbL, 0xadaeeb9bL, 0xde8a69e8L }; static HEDLEY_ALWAYS_INLINE void md5_process_block_avx512(uint32_t* HEDLEY_RESTRICT state, const uint8_t* const* HEDLEY_RESTRICT data, size_t offset) { (void)offset; __m128i A; __m128i B; __m128i C; __m128i D; const __m128i* _in = (const __m128i*)(data[0]); __m128i tmp1, tmp2; __m128i in0, in4, in8, in12; __m128i stateA = _mm_cvtsi32_si128(state[0]); __m128i stateB = _mm_cvtsi32_si128(state[1]); __m128i stateC = _mm_cvtsi32_si128(state[2]); __m128i stateD = _mm_cvtsi32_si128(state[3]); #define ASM_OUTPUTS [A]"+&x"(A), [B]"+&x"(B), [C]"+&x"(C), [D]"+&x"(D), [TMP1]"=&x"(tmp1), [TMP2]"+&x"(tmp2) #define RF4(i) \ "vmovdqu %[input" STR(i) "], %[in" STR(i) "]\n" \ "vpaddd %[k" STR(i) "], %[in" STR(i) "], %[in" STR(i) "]\n" \ ROUND_X(0xd8, A, A, B, C, D, "%[in" STR(i) "]", 25) \ "vpsrlq $32, %[in" STR(i) "], %[TMP1]\n" \ ROUND_X(0xd8, D, D, A, B, C, "%[TMP1]", 20) \ "vpunpckhqdq %[in" STR(i) "], %[in" STR(i) "], %[TMP1]\n" \ ROUND_X(0xd8, C, C, D, A, B, "%[TMP1]", 15) \ "vpsrlq $32, %[TMP1], %[TMP1]\n" \ ROUND_X(0xd8, B, B, C, D, A, "%[TMP1]", 10) #define RF4_FIRST(i) \ "vmovdqu %[input" STR(i) "], %[in" STR(i) "]\n" \ "vpaddd %[k" STR(i) "], %[in" STR(i) "], %[in" STR(i) "]\n" \ ROUND_X(0xd8, IA, A, IB, IC, ID, "%[in" STR(i) "]", 25) \ "vpsrlq $32, %[in" STR(i) "], %[TMP1]\n" \ ROUND_X(0xd8, ID, D, A, IB, IC, "%[TMP1]", 20) \ "vpunpckhqdq %[in" STR(i) "], %[in" STR(i) "], %[TMP1]\n" \ ROUND_X(0xd8, IC, C, D, A, IB, "%[TMP1]", 15) \ "vpsrlq $32, %[TMP1], %[TMP1]\n" \ ROUND_X(0xd8, IB, B, C, D, A, "%[TMP1]", 10) #define RG4(rs, r1, r2) \ "vpsrlq $32, " rs ", %[TMP1]\n" \ ROUND_X(0xac, A, A, B, C, D, "%[TMP1]", 27) \ "vpunpckhqdq " r1 ", " r1 ", %[TMP1]\n" \ ROUND_X(0xac, D, D, A, B, C, "%[TMP1]", 23) \ "vpsrldq $12, " r2 ", %[TMP1]\n" \ ROUND_X(0xac, C, C, D, A, B, "%[TMP1]", 18) \ ROUND_X(0xac, B, B, C, D, A, rs, 12) #define RH4(r1, rs, r2) \ "vpsrlq $32, " r1 ", %[TMP1]\n" \ ROUND_H(A, B, C, D, "%[TMP1]", 28) \ ROUND_H(D, A, B, C, rs, 21) \ "vpsrldq $12, " rs ", %[TMP1]\n" \ ROUND_H(C, D, A, B, "%[TMP1]", 16) \ "vpunpckhqdq " r2 ", " r2 ", %[TMP1]\n" \ ROUND_H(B, C, D, A, "%[TMP1]", 9) #define RI4(r1, rs, r2) \ ROUND_X(0x63, A, A, B, C, D, r1, 26) \ "vpsrldq $12, " rs ", %[TMP1]\n" \ ROUND_X(0x63, D, D, A, B, C, "%[TMP1]", 22) \ "vpunpckhqdq " r2 ", " r2 ", %[TMP1]\n" \ ROUND_X(0x63, C, C, D, A, B, "%[TMP1]", 17) \ "vpsrlq $32, " rs ", %[TMP1]\n" \ ROUND_X(0x63, B, B, C, D, A, "%[TMP1]", 11) #define ROUND_X(T, IA, A, B, C, D, I, R) \ "vpaddd " I ", %[" STR(IA) "], %[" STR(A) "]\n" \ "vpternlogd $" STR(T) ", %[" STR(B) "], %[" STR(C) "], %[TMP2]\n" \ "vpaddd %[TMP2], %[" STR(A) "], %[" STR(A) "]\n" \ "vprord $" STR(R) ", %[" STR(A) "], %[" STR(A) "]\n" \ "vmovdqa %[" STR(C) "], %[TMP2]\n" \ "vpaddd %[" STR(B) "], %[" STR(A) "], %[" STR(A) "]\n" #define ROUND_H(A, B, C, D, I, R) \ "vpaddd " I ", %[" STR(A) "], %[TMP1]\n" \ "vpternlogd $0x96, %[" STR(B) "], %[" STR(A) "], %[TMP2]\n" \ "vpaddd %[TMP2], %[TMP1], %[" STR(A) "]\n" \ "vprord $" STR(R) ", %[" STR(A) "], %[" STR(A) "]\n" \ "vpaddd %[" STR(B) "], %[" STR(A) "], %[" STR(A) "]\n" __asm__( "vmovdqa %[ID], %[TMP2]\n" RF4_FIRST(0) RF4(4) RF4(8) RF4(12) : [A]"=&x"(A), [B]"=&x"(B), [C]"=&x"(C), [D]"=&x"(D), [TMP1]"=&x"(tmp1), [TMP2]"=&x"(tmp2), [in0]"=&x"(in0), [in4]"=&x"(in4), [in8]"=&x"(in8), [in12]"=&x"(in12), // marked as output to prevent bad clobbering by compilers [IA]"+&x"(stateA), [IB]"+&x"(stateB), [IC]"+&x"(stateC), [ID]"+&x"(stateD) : [input0]"m"(_in[0]), [input4]"m"(_in[1]), [input8]"m"(_in[2]), [input12]"m"(_in[3]), [k0]"m"(md5_constants_avx512[0]), [k4]"m"(md5_constants_avx512[4]), [k8]"m"(md5_constants_avx512[8]), [k12]"m"(md5_constants_avx512[12]) :); #define ASM_PARAMS(n) \ ASM_OUTPUTS, [in0]"+&x"(in0), [in4]"+&x"(in4), [in8]"+&x"(in8), [in12]"+&x"(in12) \ : [k0]"m"(md5_constants_avx512[n]), [k1]"m"(md5_constants_avx512[n+4]), [k2]"m"(md5_constants_avx512[n+8]), [k3]"m"(md5_constants_avx512[n+12]) \ : __asm__( "vpaddd %[k0], %[in0], %[in0]\n" "vpaddd %[k1], %[in4], %[in4]\n" "vpaddd %[k2], %[in8], %[in8]\n" RG4("%[in0]", "%[in4]", "%[in8]") "vpaddd %[k3], %[in12], %[in12]\n" RG4("%[in4]", "%[in8]", "%[in12]") RG4("%[in8]", "%[in12]", "%[in0]") RG4("%[in12]", "%[in0]", "%[in4]") : ASM_PARAMS(16)); __asm__( "vpaddd %[k1], %[in4], %[in4]\n" "vpsrlq $32, %[in4], %[TMP1]\n" "vpaddd %[TMP1], %[A], %[A]\n" "vpternlogd $0x96, %[B], %[C], %[TMP2]\n" "vpaddd %[TMP2], %[A], %[A]\n" "vprord $28, %[A], %[A]\n" "vpaddd %[B], %[A], %[A]\n" "vpaddd %[k2], %[in8], %[in8]\n" ROUND_H(D, A, B, C, "%[in8]", 21) "vpsrldq $12, %[in8], %[TMP1]\n" "vpaddd %[k3], %[in12], %[in12]\n" ROUND_H(C, D, A, B, "%[TMP1]", 16) "vpunpckhqdq %[in12], %[in12], %[TMP1]\n" ROUND_H(B, C, D, A, "%[TMP1]", 9) "vpaddd %[k0], %[in0], %[in0]\n" RH4("%[in0]", "%[in4]", "%[in8]") RH4("%[in12]", "%[in0]", "%[in4]") RH4("%[in8]", "%[in12]", "%[in0]") "vmovdqa %[D], %[TMP2]\n" : ASM_PARAMS(32)); __asm__( "vpaddd %[k0], %[in0], %[in0]\n" "vpaddd %[k1], %[in4], %[in4]\n" "vpaddd %[k3], %[in12], %[in12]\n" RI4("%[in0]", "%[in4]", "%[in12]") "vpaddd %[k2], %[in8], %[in8]\n" RI4("%[in12]", "%[in0]", "%[in8]") RI4("%[in8]", "%[in12]", "%[in4]") RI4("%[in4]", "%[in8]", "%[in0]") // contains an unnecessary move on final ROUND_X... oh well : ASM_PARAMS(48)); state[0] = _mm_cvtsi128_si32(_mm_add_epi32(A, stateA)); state[1] = _mm_cvtsi128_si32(_mm_add_epi32(B, stateB)); state[2] = _mm_cvtsi128_si32(_mm_add_epi32(C, stateC)); state[3] = _mm_cvtsi128_si32(_mm_add_epi32(D, stateD)); #undef ROUND_X #undef RF4 #undef RG4 #undef RH4 #undef RI4 #undef ASM_OUTPUTS #undef ASM_PARAMS } #endif par2cmdline-turbo-1.5.0/parpar/hasher/md5-avx512.h000066400000000000000000000053621524160147200214770ustar00rootroot00000000000000 #if (defined(__GNUC__) || defined(__clang__)) && defined(__AVX512VL__) && defined(PLATFORM_AMD64) # define MD5_USE_ASM # include "md5-avx512-asm.h" #endif #define ADD _mm_add_epi32 #define state_word_t uint32_t #define word_t __m128i #define ROTATE _mm_rol_epi32 #define LOAD_STATE(state, word) _mm_cvtsi32_si128(state[word]) // work around missing _mm_storeu_si32: https://stackoverflow.com/questions/58063933/how-can-a-sse2-function-be-missing-from-the-header-it-is-supposed-to-be-in #define SET_STATE(state, word, val) _mm_store_ss((float*)(state + word), _mm_castsi128_ps(val)) #define INPUT(k, set, ptr, offs, idx, var) ( \ idx < 8 ? ( \ idx < 4 ? ( \ idx < 2 ? ( \ idx == 0 ? XX1 : XX2 \ ) : ( \ idx == 2 ? _mm_unpackhi_epi64(XX1, XX1) : _mm_unpackhi_epi64(XX2, XX2) \ ) \ ) : ( \ idx < 6 ? ( \ idx == 4 ? XX5 : XX6 \ ) : ( \ idx == 6 ? _mm_unpackhi_epi64(XX5, XX5) : _mm_unpackhi_epi64(XX6, XX6) \ ) \ ) \ ) : ( \ idx < 12 ? ( \ idx < 10 ? ( \ idx == 8 ? XX9 : XX10 \ ) : ( \ idx == 10 ? _mm_unpackhi_epi64(XX9, XX9) : _mm_unpackhi_epi64(XX10, XX10) \ ) \ ) : ( \ idx < 14 ? ( \ idx == 12 ? XX13 : XX14 \ ) : ( \ idx == 14 ? _mm_unpackhi_epi64(XX13, XX13) : _mm_unpackhi_epi64(XX14, XX14) \ ) \ ) \ ) \ ) #define LOAD INPUT #define LOAD16(set, ptr, offs, var0, var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15) { \ var0 = _mm_loadu_si128((__m128i*)(ptr[set])); \ var4 = _mm_loadu_si128((__m128i*)(ptr[set]) + 1); \ var8 = _mm_loadu_si128((__m128i*)(ptr[set]) + 2); \ var12 = _mm_loadu_si128((__m128i*)(ptr[set]) + 3); \ } #define ADD16(var0, var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, k0, k1, k2, k3, k4, k5, k6, k7, k8, k9, k10, k11, k12, k13, k14, k15) { \ var1 = _mm_add_epi32(var0, _mm_set_epi32(k3, k2, k1, k0)); \ var5 = _mm_add_epi32(var4, _mm_set_epi32(k7, k6, k5, k4)); \ var9 = _mm_add_epi32(var8, _mm_set_epi32(k11, k10, k9, k8)); \ var13 = _mm_add_epi32(var12, _mm_set_epi32(k15, k14, k13, k12)); \ var2 = _mm_srli_epi64(var1, 32); \ var6 = _mm_srli_epi64(var5, 32); \ var10 = _mm_srli_epi64(var9, 32); \ var14 = _mm_srli_epi64(var13, 32); \ } #include #define F(b,c,d) _mm_ternarylogic_epi32(d,c,b,0xD8) #define G(b,c,d) _mm_ternarylogic_epi32(d,c,b,0xAC) #define H(b,c,d) _mm_ternarylogic_epi32(d,c,b,0x96) #define I(b,c,d) _mm_ternarylogic_epi32(d,c,b,0x63) #define FNB(f) f##_avx512 #include "md5-base.h" #undef FNB #undef ADD #undef word_t // state_word_t undef'd by md5-base.h #undef ROTATE #undef LOAD_STATE #undef SET_STATE #undef INPUT #undef LOAD #undef LOAD16 #undef ADD16 #undef F #undef G #undef H #undef I #ifdef MD5_USE_ASM # undef MD5_USE_ASM #endif par2cmdline-turbo-1.5.0/parpar/hasher/md5-base.h000066400000000000000000000257441524160147200213710ustar00rootroot00000000000000 #include "../src/platform.h" #include "../src/hedley.h" #ifndef UNUSED # define UNUSED(...) (void)(__VA_ARGS__) #endif #ifdef LOAD_STATE # define _LOAD_STATE LOAD_STATE #else # define _LOAD_STATE(state, n) state[n] #endif #ifdef SET_STATE # define _SET_STATE SET_STATE #else # define _SET_STATE(state, n, val) state[n] = val #endif #ifndef state_word_t # define state_word_t word_t #endif #ifdef ADDF # define _ADDF ADDF #else # define _ADDF(f,a,b,c,d) ADD(a, f(b,c,d)) #endif /* code was originally based off OpenSSL's implementation */ #ifndef _RX #define _RX(f,a,b,c,d,ik,r) \ a = ADD(a, ik); \ a = _ADDF(f, a, b, c, d); \ a = ROTATE(a, r); \ a = ADD(a, b) #endif #ifdef MD5X2 # define RX(f,a,b,c,d,x,i,r,k) _RX(f,a,b,c,d,x(i,k),r); _RX(f,a##2,b##2,c##2,d##2,x##2(i,k),r) #else # define RX(f,a,b,c,d,x,i,r,k) _RX(f,a,b,c,d,x(i,k),r) #endif #ifndef MD5_USE_ASM static HEDLEY_ALWAYS_INLINE void FNB(md5_process_block)(state_word_t* state, const uint8_t* const* HEDLEY_RESTRICT data, size_t offset) { UNUSED(offset); // only ignored in x2/x1 word_t A, B, C, D; word_t oA, oB, oC, oD; /* some compilers don't optimise arrays well (i.e. register spills), so use local variables */ word_t XX0, XX1, XX2, XX3, XX4, XX5, XX6, XX7, XX8, XX9, XX10, XX11, XX12, XX13, XX14, XX15; /* mark as unused, for setups which don't use them */ UNUSED(XX0); UNUSED(XX1); UNUSED(XX2); UNUSED(XX3); UNUSED(XX4); UNUSED(XX5); UNUSED(XX6); UNUSED(XX7); UNUSED(XX8); UNUSED(XX9); UNUSED(XX10); UNUSED(XX11); UNUSED(XX12); UNUSED(XX13); UNUSED(XX14); UNUSED(XX15); #define L(i,k) LOAD(k, 0, data, offset, i, XX##i) #define X(i,k) INPUT(k, 0, data, offset, i, XX##i) A = _LOAD_STATE(state, 0); B = _LOAD_STATE(state, 1); C = _LOAD_STATE(state, 2); D = _LOAD_STATE(state, 3); oA = A; oB = B; oC = C; oD = D; #ifdef MD5X2 word_t A2, B2, C2, D2; word_t oA2, oB2, oC2, oD2; word_t XX0b, XX1b, XX2b, XX3b, XX4b, XX5b, XX6b, XX7b, XX8b, XX9b, XX10b, XX11b, XX12b, XX13b, XX14b, XX15b; UNUSED(XX0b); UNUSED(XX1b); UNUSED(XX2b); UNUSED(XX3b); UNUSED(XX4b); UNUSED(XX5b); UNUSED(XX6b); UNUSED(XX7b); UNUSED(XX8b); UNUSED(XX9b); UNUSED(XX10b); UNUSED(XX11b); UNUSED(XX12b); UNUSED(XX13b); UNUSED(XX14b); UNUSED(XX15b); # define L2(i,k) LOAD(k, 1, data, offset, i, XX##i##b) # define X2(i,k) INPUT(k, 1, data, offset, i, XX##i##b) A2 = _LOAD_STATE(state, 4); B2 = _LOAD_STATE(state, 5); C2 = _LOAD_STATE(state, 6); D2 = _LOAD_STATE(state, 7); oA2 = A2; oB2 = B2; oC2 = C2; oD2 = D2; # ifdef LOAD2 # define L2X(i, j) LOAD2(0, data, offset, i, XX##i, XX##j); LOAD2(1, data, offset, i, XX##i##b, XX##j##b) # else # define L2X(i, j) # endif # ifdef LOAD4 # define L4X(i, j, k, l) LOAD4(0, data, offset, i, XX##i, XX##j, XX##k, XX##l); LOAD4(1, data, offset, i, XX##i##b, XX##j##b, XX##k##b, XX##l##b) # else # define L4X(i, j, k, l) # endif # ifdef LOAD8 # define L8X(i, j, k, l, m, n, o, p) LOAD8(0, data, offset, i, XX##i, XX##j, XX##k, XX##l, XX##m, XX##n, XX##o, XX##p); LOAD8(1, data, offset, i, XX##i##b, XX##j##b, XX##k##b, XX##l##b, XX##m##b, XX##n##b, XX##o##b, XX##p##b) # else # define L8X(i, j, k, l, m, n, o, p) # endif #else # ifdef LOAD2 # define L2X(i, j) LOAD2(0, data, offset, i, XX##i, XX##j) # else # define L2X(i, j) # endif # ifdef LOAD4 # define L4X(i, j, k, l) LOAD4(0, data, offset, i, XX##i, XX##j, XX##k, XX##l) # else # define L4X(i, j, k, l) # endif # ifdef LOAD8 # define L8X(i, j, k, l, m, n, o, p) LOAD8(0, data, offset, i, XX##i, XX##j, XX##k, XX##l, XX##m, XX##n, XX##o, XX##p) # else # define L8X(i, j, k, l, m, n, o, p) # endif #endif /* Round 0 */ #ifdef LOAD16 LOAD16(0, data, offset, XX0, XX1, XX2, XX3, XX4, XX5, XX6, XX7, XX8, XX9, XX10, XX11, XX12, XX13, XX14, XX15); # ifdef MD5X2 LOAD16(1, data, offset, XX0b, XX1b, XX2b, XX3b, XX4b, XX5b, XX6b, XX7b, XX8b, XX9b, XX10b, XX11b, XX12b, XX13b, XX14b, XX15b); # endif #endif #ifdef ADD16 ADD16(XX0, XX1, XX2, XX3, XX4, XX5, XX6, XX7, XX8, XX9, XX10, XX11, XX12, XX13, XX14, XX15, 0xd76aa478L, 0xe8c7b756L, 0x242070dbL, 0xc1bdceeeL, 0xf57c0fafL, 0x4787c62aL, 0xa8304613L, 0xfd469501L, 0x698098d8L, 0x8b44f7afL, 0xffff5bb1L, 0x895cd7beL, 0x6b901122L, 0xfd987193L, 0xa679438eL, 0x49b40821L); # ifdef MD5X2 ADD16(XX0b, XX1b, XX2b, XX3b, XX4b, XX5b, XX6b, XX7b, XX8b, XX9b, XX10b, XX11b, XX12b, XX13b, XX14b, XX15b, 0xd76aa478L, 0xe8c7b756L, 0x242070dbL, 0xc1bdceeeL, 0xf57c0fafL, 0x4787c62aL, 0xa8304613L, 0xfd469501L, 0x698098d8L, 0x8b44f7afL, 0xffff5bb1L, 0x895cd7beL, 0x6b901122L, 0xfd987193L, 0xa679438eL, 0x49b40821L); # endif #endif L8X(0, 1, 2, 3, 4, 5, 6, 7); L4X(0, 1, 2, 3); L2X(0, 1); RX(F, A, B, C, D, L, 0, 7, 0xd76aa478L); RX(F, D, A, B, C, L, 1, 12, 0xe8c7b756L); L2X(2, 3); RX(F, C, D, A, B, L, 2, 17, 0x242070dbL); RX(F, B, C, D, A, L, 3, 22, 0xc1bdceeeL); L4X(4, 5, 6, 7); L2X(4, 5); RX(F, A, B, C, D, L, 4, 7, 0xf57c0fafL); RX(F, D, A, B, C, L, 5, 12, 0x4787c62aL); L2X(6, 7); RX(F, C, D, A, B, L, 6, 17, 0xa8304613L); RX(F, B, C, D, A, L, 7, 22, 0xfd469501L); L8X(8, 9, 10, 11, 12, 13, 14, 15); L4X(8, 9, 10, 11); L2X(8, 9); RX(F, A, B, C, D, L, 8, 7, 0x698098d8L); RX(F, D, A, B, C, L, 9, 12, 0x8b44f7afL); L2X(10, 11); RX(F, C, D, A, B, L, 10, 17, 0xffff5bb1L); RX(F, B, C, D, A, L, 11, 22, 0x895cd7beL); L4X(12, 13, 14, 15); L2X(12, 13); RX(F, A, B, C, D, L, 12, 7, 0x6b901122L); RX(F, D, A, B, C, L, 13, 12, 0xfd987193L); L2X(14, 15); RX(F, C, D, A, B, L, 14, 17, 0xa679438eL); RX(F, B, C, D, A, L, 15, 22, 0x49b40821L); /* Round 1 */ #ifdef ADD16 ADD16(XX0, XX1, XX2, XX3, XX4, XX5, XX6, XX7, XX8, XX9, XX10, XX11, XX12, XX13, XX14, XX15, 0xe9b6c7aaL, 0xf61e2562L, 0xfcefa3f8L, 0xf4d50d87L, 0xe7d3fbc8L, 0xd62f105dL, 0xc040b340L, 0x676f02d9L, 0x455a14edL, 0x21e1cde6L, 0x02441453L, 0x265e5a51L, 0x8d2a4c8aL, 0xa9e3e905L, 0xc33707d6L, 0xd8a1e681L); # ifdef MD5X2 ADD16(XX0b, XX1b, XX2b, XX3b, XX4b, XX5b, XX6b, XX7b, XX8b, XX9b, XX10b, XX11b, XX12b, XX13b, XX14b, XX15b, 0xe9b6c7aaL, 0xf61e2562L, 0xfcefa3f8L, 0xf4d50d87L, 0xe7d3fbc8L, 0xd62f105dL, 0xc040b340L, 0x676f02d9L, 0x455a14edL, 0x21e1cde6L, 0x02441453L, 0x265e5a51L, 0x8d2a4c8aL, 0xa9e3e905L, 0xc33707d6L, 0xd8a1e681L); # endif #endif RX(G, A, B, C, D, X, 1, 5, 0xf61e2562L); RX(G, D, A, B, C, X, 6, 9, 0xc040b340L); RX(G, C, D, A, B, X, 11, 14, 0x265e5a51L); RX(G, B, C, D, A, X, 0, 20, 0xe9b6c7aaL); RX(G, A, B, C, D, X, 5, 5, 0xd62f105dL); RX(G, D, A, B, C, X, 10, 9, 0x02441453L); RX(G, C, D, A, B, X, 15, 14, 0xd8a1e681L); RX(G, B, C, D, A, X, 4, 20, 0xe7d3fbc8L); RX(G, A, B, C, D, X, 9, 5, 0x21e1cde6L); RX(G, D, A, B, C, X, 14, 9, 0xc33707d6L); RX(G, C, D, A, B, X, 3, 14, 0xf4d50d87L); RX(G, B, C, D, A, X, 8, 20, 0x455a14edL); RX(G, A, B, C, D, X, 13, 5, 0xa9e3e905L); RX(G, D, A, B, C, X, 2, 9, 0xfcefa3f8L); RX(G, C, D, A, B, X, 7, 14, 0x676f02d9L); RX(G, B, C, D, A, X, 12, 20, 0x8d2a4c8aL); /* Round 2 */ #ifdef ADD16 ADD16(XX0, XX1, XX2, XX3, XX4, XX5, XX6, XX7, XX8, XX9, XX10, XX11, XX12, XX13, XX14, XX15, 0xeaa127faL, 0xa4beea44L, 0xc4ac5665L, 0xd4ef3085L, 0x4bdecfa9L, 0xfffa3942L, 0x04881d05L, 0xf6bb4b60L, 0x8771f681L, 0xd9d4d039L, 0xbebfbc70L, 0x6d9d6122L, 0xe6db99e5L, 0x289b7ec6L, 0xfde5380cL, 0x1fa27cf8L); # ifdef MD5X2 ADD16(XX0b, XX1b, XX2b, XX3b, XX4b, XX5b, XX6b, XX7b, XX8b, XX9b, XX10b, XX11b, XX12b, XX13b, XX14b, XX15b, 0xeaa127faL, 0xa4beea44L, 0xc4ac5665L, 0xd4ef3085L, 0x4bdecfa9L, 0xfffa3942L, 0x04881d05L, 0xf6bb4b60L, 0x8771f681L, 0xd9d4d039L, 0xbebfbc70L, 0x6d9d6122L, 0xe6db99e5L, 0x289b7ec6L, 0xfde5380cL, 0x1fa27cf8L); # endif #endif RX(H, A, B, C, D, X, 5, 4, 0xfffa3942L); RX(H, D, A, B, C, X, 8, 11, 0x8771f681L); RX(H, C, D, A, B, X, 11, 16, 0x6d9d6122L); RX(H, B, C, D, A, X, 14, 23, 0xfde5380cL); RX(H, A, B, C, D, X, 1, 4, 0xa4beea44L); RX(H, D, A, B, C, X, 4, 11, 0x4bdecfa9L); RX(H, C, D, A, B, X, 7, 16, 0xf6bb4b60L); RX(H, B, C, D, A, X, 10, 23, 0xbebfbc70L); RX(H, A, B, C, D, X, 13, 4, 0x289b7ec6L); RX(H, D, A, B, C, X, 0, 11, 0xeaa127faL); RX(H, C, D, A, B, X, 3, 16, 0xd4ef3085L); RX(H, B, C, D, A, X, 6, 23, 0x04881d05L); RX(H, A, B, C, D, X, 9, 4, 0xd9d4d039L); RX(H, D, A, B, C, X, 12, 11, 0xe6db99e5L); RX(H, C, D, A, B, X, 15, 16, 0x1fa27cf8L); RX(H, B, C, D, A, X, 2, 23, 0xc4ac5665L); /* Round 3 */ #ifdef IOFFSET # define _IOF(n) (int32_t)(n IOFFSET) #else # define _IOF(n) n #endif #ifdef ADD16 ADD16(XX0, XX1, XX2, XX3, XX4, XX5, XX6, XX7, XX8, XX9, XX10, XX11, XX12, XX13, XX14, XX15, _IOF(0xf4292244L), _IOF(0x85845dd1L), _IOF(0x2ad7d2bbL), _IOF(0x8f0ccc92L), _IOF(0xf7537e82L), _IOF(0xfc93a039L), _IOF(0xa3014314L), _IOF(0x432aff97L), _IOF(0x6fa87e4fL), _IOF(0xeb86d391L), _IOF(0xffeff47dL), _IOF(0xbd3af235L), _IOF(0x655b59c3L), _IOF(0x4e0811a1L), _IOF(0xab9423a7L), _IOF(0xfe2ce6e0L)); # ifdef MD5X2 ADD16(XX0b, XX1b, XX2b, XX3b, XX4b, XX5b, XX6b, XX7b, XX8b, XX9b, XX10b, XX11b, XX12b, XX13b, XX14b, XX15b, _IOF(0xf4292244L), _IOF(0x85845dd1L), _IOF(0x2ad7d2bbL), _IOF(0x8f0ccc92L), _IOF(0xf7537e82L), _IOF(0xfc93a039L), _IOF(0xa3014314L), _IOF(0x432aff97L), _IOF(0x6fa87e4fL), _IOF(0xeb86d391L), _IOF(0xffeff47dL), _IOF(0xbd3af235L), _IOF(0x655b59c3L), _IOF(0x4e0811a1L), _IOF(0xab9423a7L), _IOF(0xfe2ce6e0L)); # endif #endif RX(I, A, B, C, D, X, 0, 6, _IOF(0xf4292244L)); RX(I, D, A, B, C, X, 7, 10, _IOF(0x432aff97L)); RX(I, C, D, A, B, X, 14, 15, _IOF(0xab9423a7L)); RX(I, B, C, D, A, X, 5, 21, _IOF(0xfc93a039L)); RX(I, A, B, C, D, X, 12, 6, _IOF(0x655b59c3L)); RX(I, D, A, B, C, X, 3, 10, _IOF(0x8f0ccc92L)); RX(I, C, D, A, B, X, 10, 15, _IOF(0xffeff47dL)); RX(I, B, C, D, A, X, 1, 21, _IOF(0x85845dd1L)); RX(I, A, B, C, D, X, 8, 6, _IOF(0x6fa87e4fL)); RX(I, D, A, B, C, X, 15, 10, _IOF(0xfe2ce6e0L)); RX(I, C, D, A, B, X, 6, 15, _IOF(0xa3014314L)); RX(I, B, C, D, A, X, 13, 21, _IOF(0x4e0811a1L)); RX(I, A, B, C, D, X, 4, 6, _IOF(0xf7537e82L)); RX(I, D, A, B, C, X, 11, 10, _IOF(0xbd3af235L)); RX(I, C, D, A, B, X, 2, 15, _IOF(0x2ad7d2bbL)); RX(I, B, C, D, A, X, 9, 21, _IOF(0xeb86d391L)); #undef _IOF _SET_STATE(state, 0, ADD(oA, A)); _SET_STATE(state, 1, ADD(oB, B)); _SET_STATE(state, 2, ADD(oC, C)); _SET_STATE(state, 3, ADD(oD, D)); #ifdef MD5X2 _SET_STATE(state, 4, ADD(oA2, A2)); _SET_STATE(state, 5, ADD(oB2, B2)); _SET_STATE(state, 6, ADD(oC2, C2)); _SET_STATE(state, 7, ADD(oD2, D2)); #endif #undef L #undef X #undef L2X #undef L4X #undef L8X } #endif #undef RX #undef _RX #undef _ADDF #undef _LOAD_STATE #undef _SET_STATE #undef state_word_t #ifndef md5_free # define md5_free ALIGN_FREE #endif HEDLEY_MALLOC static HEDLEY_ALWAYS_INLINE void* FNB(md5_alloc)() { void* ret; #ifdef MD5X2 size_t words = 8; #else size_t words = 4; #endif #ifdef STATE_WORD_SIZE // assume SVE ALIGN_ALLOC(ret, STATE_WORD_SIZE*words, sizeof(void*)); #else ALIGN_ALLOC(ret, sizeof(word_t)*words, sizeof(word_t) < sizeof(void*) ? sizeof(void*) : sizeof(word_t)); #endif return ret; } par2cmdline-turbo-1.5.0/parpar/hasher/md5-final.c000066400000000000000000000027441524160147200215360ustar00rootroot00000000000000// single scalar implementation for finishing block #include "md5-scalar.h" void md5_final_block(void* state, const void *HEDLEY_RESTRICT data, uint64_t totalLength, uint64_t zeroPad) { ALIGN_TO(8, uint8_t block[64]); const uint8_t* blockPtr[] = {block}; size_t remaining = totalLength & 63; memcpy(block, data, remaining); memset(block + remaining, 0, 64-remaining); totalLength += zeroPad; int loopState = (remaining + zeroPad < 64)*2; // write this in a funky loop to avoid duplicating the force-inlined process_block function twice while(1) { if(loopState == 1 && zeroPad < 64) loopState = 2; if(loopState == 2) { remaining = totalLength & 63; block[remaining++] = 0x80; if(remaining <= 64-8) loopState = 4; else { loopState = 3; remaining = 0; } } if(loopState == 4) { memset(block + remaining, 0, 64-8 - remaining); totalLength <<= 3; // bytes -> bits write64(block + 64-8, _LE64(totalLength)); } md5_process_block_scalar((uint32_t*)state, blockPtr, 0); if(loopState == 4) break; else if(loopState == 3) loopState = 4; else if(loopState == 1) zeroPad -= 64; else if(loopState == 0) { memset(block, 0, 64); zeroPad -= 64-remaining; loopState = 1; } } #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ uint32_t* hash = (uint32_t*)state; write32(hash+0, _LE32(read32(hash+0))); write32(hash+1, _LE32(read32(hash+1))); write32(hash+2, _LE32(read32(hash+2))); write32(hash+3, _LE32(read32(hash+3))); #endif } par2cmdline-turbo-1.5.0/parpar/hasher/md5-final.h000066400000000000000000000003371524160147200215370ustar00rootroot00000000000000#ifndef __MD5_FINAL #define __MD5_FINAL #include "../src/hedley.h" #ifdef __cplusplus extern "C" #endif void md5_final_block(void* state, const void *HEDLEY_RESTRICT data, uint64_t totalLength, uint64_t zeroPad); #endif par2cmdline-turbo-1.5.0/parpar/hasher/md5-scalar-base.h000066400000000000000000000056411524160147200226260ustar00rootroot00000000000000#include // memcpy+memset #include "../src/stdint.h" #include "../src/platform.h" #define ADD(a, b) (a+b) #define VAL(k) (k) #define word_t uint32_t #define INPUT(k, set, ptr, offs, idx, var) (var + k) #define LOAD(k, set, ptr, offs, idx, var) (var = _LE32(read32(((char*)(ptr[set])) + offs + idx*4)), var + k) # if defined(_MSC_VER) # define ROTATE(a,n) _lrotl(a,n) # elif defined(__ICC) # define ROTATE(a,n) _rotl(a,n) # elif defined(__MWERKS__) # if defined(__POWERPC__) # define ROTATE(a,n) __rlwinm(a,n,0,31) # elif defined(__MC68K__) /* Motorola specific tweak. */ # define ROTATE(a,n) ( n<24 ? __rol(a,n) : __ror(a,32-n) ) # else # define ROTATE(a,n) __rol(a,n) # endif # elif defined(__GNUC__) && __GNUC__>=2 && !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM) /* * Some GNU C inline assembler templates. Note that these are * rotates by *constant* number of bits! But that's exactly * what we need here... * */ # if defined(__i386) || defined(__i386__) || defined(__x86_64) || defined(__x86_64__) # define ROTATE(a,n) ({ unsigned int ret; \ __asm__ ( \ "roll %1,%0" \ : "=r"(ret) \ : "I"(n), "0"((unsigned int)(a)) \ : "cc"); \ ret; \ }) # elif defined(_ARCH_PPC) || defined(_ARCH_PPC64) || \ defined(__powerpc) || defined(__ppc__) || defined(__powerpc64__) # define ROTATE(a,n) ({ unsigned int ret; \ __asm__ ( \ "rlwinm %0,%1,%2,0,31" \ : "=r"(ret) \ : "r"(a), "I"(n)); \ ret; \ }) # elif defined(__s390x__) # define ROTATE(a,n) ({ unsigned int ret; \ __asm__ ("rll %0,%1,%2" \ : "=r"(ret) \ : "r"(a), "I"(n)); \ ret; \ }) # endif # endif # ifndef ROTATE # define ROTATE(a,n) (((a)<<(n))|(((a)&0xffffffff)>>(32-(n)))) # endif #define F 1 #define G 2 #define H 3 #define I 4 // this is defined to allow a special sequence for the 'G' function - essentially, the usual bitwise OR can be replaced with an ADD, and re-ordering can be done to slightly defer the dependency on the 'b' input #define ADDF(f,a,b,c,d) ( \ f==G ? (((~d & c) + a) + (d & b)) : a + ( \ f==F ? (((c ^ d) & b) ^ d) : ( \ f==H ? ((d ^ c) ^ b) : \ ((~d | b) ^ c) \ ) \ ) \ ) par2cmdline-turbo-1.5.0/parpar/hasher/md5-scalar.h000066400000000000000000000021651524160147200217140ustar00rootroot00000000000000 #include // memcpy+memset #include "../src/platform.h" #include "../src/stdint.h" #if (defined(__GNUC__) || defined(__clang__)) && defined(PLATFORM_X86) && defined(__OPTIMIZE__) && (!defined(HEDLEY_GCC_VERSION) || !defined(HAS_UBSAN)) # define MD5_USE_ASM # ifdef PLATFORM_AMD64 # define MD5_HAS_NOLEA 1 # else # define md5_process_block_nolea md5_process_block_scalar # endif # include "md5-x86-asm.h" #else # define md5_process_block_nolea md5_process_block_scalar #endif #if (defined(__GNUC__) || defined(__clang__)) && defined(PLATFORM_ARM) && defined(__OPTIMIZE__) # ifdef __aarch64__ # define MD5_USE_ASM # include "md5-arm64-asm.h" # elif (__BYTE_ORDER__ != __ORDER_BIG_ENDIAN__) || (defined(__ARM_ARCH) && __ARM_ARCH >= 6) || defined(__armv7__) || defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_8A__) || defined(_M_ARM) // require ARMv6 for big-endian support # define MD5_USE_ASM # include "md5-arm-asm.h" # endif #endif #include "md5-scalar-base.h" #define FNB(f) f##_scalar #include "md5-base.h" #undef FNB #ifdef MD5_USE_ASM # undef MD5_USE_ASM #endif par2cmdline-turbo-1.5.0/parpar/hasher/md5-x86-asm.h000066400000000000000000000410711524160147200216510ustar00rootroot00000000000000 #ifndef STR # define STR_HELPER(x) #x # define STR(x) STR_HELPER(x) #endif #ifdef PLATFORM_X86 // GCC insanity [https://gcc.gnu.org/legacy-ml/gcc-help/2011-04/msg00566.html] #define ASM_INPUTS [input0]"m"(_in[0]), [input1]"m"(_in[1]), [input2]"m"(_in[2]), [input3]"m"(_in[3]), [input4]"m"(_in[4]), [input5]"m"(_in[5]), [input6]"m"(_in[6]), [input7]"m"(_in[7]), [input8]"m"(_in[8]), [input9]"m"(_in[9]), [input10]"m"(_in[10]), [input11]"m"(_in[11]), [input12]"m"(_in[12]), [input13]"m"(_in[13]), [input14]"m"(_in[14]), [input15]"m"(_in[15]) // usually the x86 code would use 6 registers (+1 for addressing input), but some compilers don't seem to like it (ClangCL, MSYS GCC) so we'll restrict usage to 5 registers by load-op the input #ifdef PLATFORM_AMD64 # define ADD_CONST(K, KO, A, I) "leal " STR(K) KO "(%k[" STR(I) STR(A) "], %k[TMP2]), %k[" STR(A) "]\n" # define PRELOAD_INPUT(NEXT_IN) "movl " NEXT_IN ", %k[TMP2]\n" # define ADD_INPUT(NEXT_IN, D) #else # define ADD_CONST(K, KO, A, I) "add $" STR(K) KO ", %k[" STR(A) "]\n" # define PRELOAD_INPUT(NEXT_IN) // don't need to worry about D/ID distinction here, because it's not enabled on x86 # define ADD_INPUT(NEXT_IN, D) "add " NEXT_IN ", %k[" STR(D) "]\n" #endif #define ROUND_F(I, A, B, C, D, NEXT_IN, K, R) \ "xorl %k[" STR(C) "], %k[TMP1]\n" \ ADD_CONST(K, , A, I) \ "andl %k[" STR(B) "], %k[TMP1]\n" \ PRELOAD_INPUT(NEXT_IN) \ "xorl %k[" STR(D) "], %k[TMP1]\n" \ "addl %k[TMP1], %k[" STR(A) "]\n" \ ADD_INPUT(NEXT_IN, D) \ "roll $" STR(R) ", %k[" STR(A) "]\n" \ "movl %k[" STR(C) "], %k[TMP1]\n" \ "addl %k[" STR(B) "], %k[" STR(A) "]\n" #ifdef _MD5_USE_BMI1_ # define ROUND_F_LAST(A, B, C, D, NEXT_IN, K, R) \ "xorl %k[" STR(C) "], %k[TMP1]\n" \ ADD_CONST(K, , A, ) \ "andl %k[" STR(B) "], %k[TMP1]\n" \ PRELOAD_INPUT(NEXT_IN) \ "xorl %k[" STR(D) "], %k[TMP1]\n" \ "addl %k[TMP1], %k[" STR(A) "]\n" \ ADD_INPUT(NEXT_IN, D) \ "roll $" STR(R) ", %k[" STR(A) "]\n" \ "andnl %k[" STR(B) "], %k[" STR(C) "], %k[TMP1]\n" \ "addl %k[" STR(B) "], %k[" STR(A) "]\n" # ifdef PLATFORM_AMD64 # define ROUND_G(A, B, C, D, NEXT_IN, K, R) \ ADD_CONST(K, , A, ) \ PRELOAD_INPUT(NEXT_IN) \ "movl %k[" STR(D) "], %k[TMP3]\n" \ "addl %k[TMP1], %k[" STR(A) "]\n" \ "andl %k[" STR(B) "], %k[TMP3]\n" \ "addl %k[TMP3], %k[" STR(A) "]\n" \ ADD_INPUT(NEXT_IN, D) \ "roll $" STR(R) ", %k[" STR(A) "]\n" \ "andnl %k[" STR(B) "], %k[" STR(C) "], %k[TMP1]\n" \ "addl %k[" STR(B) "], %k[" STR(A) "]\n" # define ROUND_G_LAST(A, B, C, D, NEXT_IN, K, R) \ ADD_CONST(K, , A, ) \ PRELOAD_INPUT(NEXT_IN) \ "movl %k[" STR(D) "], %k[TMP3]\n" \ "addl %k[TMP1], %k[" STR(A) "]\n" \ "andl %k[" STR(B) "], %k[TMP3]\n" \ "addl %k[TMP3], %k[" STR(A) "]\n" \ ADD_INPUT(NEXT_IN, D) \ "roll $" STR(R) ", %k[" STR(A) "]\n" \ "movl %k[" STR(C) "], %k[TMP1]\n" \ "addl %k[" STR(B) "], %k[" STR(A) "]\n" # else # define ROUND_G(A, B, C, D, NEXT_IN, K, R) \ ADD_CONST(K, , A, ) \ "addl %k[TMP1], %k[" STR(A) "]\n" \ PRELOAD_INPUT(NEXT_IN) \ "movl %k[" STR(D) "], %k[TMP1]\n" \ "andl %k[" STR(B) "], %k[TMP1]\n" \ "addl %k[TMP1], %k[" STR(A) "]\n" \ ADD_INPUT(NEXT_IN, D) \ "roll $" STR(R) ", %k[" STR(A) "]\n" \ "andnl %k[" STR(B) "], %k[" STR(C) "], %k[TMP1]\n" \ "addl %k[" STR(B) "], %k[" STR(A) "]\n" # define ROUND_G_LAST(A, B, C, D, NEXT_IN, K, R) \ ADD_CONST(K, , A, ) \ "addl %k[TMP1], %k[" STR(A) "]\n" \ PRELOAD_INPUT(NEXT_IN) \ "movl %k[" STR(D) "], %k[TMP1]\n" \ "andl %k[" STR(B) "], %k[TMP1]\n" \ "addl %k[TMP1], %k[" STR(A) "]\n" \ ADD_INPUT(NEXT_IN, D) \ "roll $" STR(R) ", %k[" STR(A) "]\n" \ "movl %k[" STR(C) "], %k[TMP1]\n" \ "addl %k[" STR(B) "], %k[" STR(A) "]\n" # endif #else # define ROUND_F_LAST(A, B, C, D, NEXT_IN, K, R) ROUND_F(, A, B, C, D, NEXT_IN, K, R) # define ROUND_G_LAST ROUND_G # ifdef PLATFORM_AMD64 # define ROUND_G(A, B, C, D, NEXT_IN, K, R) \ "notl %k[TMP1]\n" \ ADD_CONST(K, , A, ) \ "andl %k[" STR(C) "], %k[TMP1]\n" \ PRELOAD_INPUT(NEXT_IN) \ "movl %k[" STR(D) "], %k[TMP3]\n" \ "addl %k[TMP1], %k[" STR(A) "]\n" \ "andl %k[" STR(B) "], %k[TMP3]\n" \ "addl %k[TMP3], %k[" STR(A) "]\n" \ ADD_INPUT(NEXT_IN, D) \ "roll $" STR(R) ", %k[" STR(A) "]\n" \ "movl %k[" STR(C) "], %k[TMP1]\n" \ "addl %k[" STR(B) "], %k[" STR(A) "]\n" # else # define ROUND_G(A, B, C, D, NEXT_IN, K, R) \ "notl %k[TMP1]\n" \ ADD_CONST(K, , A, ) \ "andl %k[" STR(C) "], %k[TMP1]\n" \ PRELOAD_INPUT(NEXT_IN) \ "addl %k[TMP1], %k[" STR(A) "]\n" \ "movl %k[" STR(D) "], %k[TMP1]\n" \ "andl %k[" STR(B) "], %k[TMP1]\n" \ "addl %k[TMP1], %k[" STR(A) "]\n" \ ADD_INPUT(NEXT_IN, D) \ "roll $" STR(R) ", %k[" STR(A) "]\n" \ "movl %k[" STR(C) "], %k[TMP1]\n" \ "addl %k[" STR(B) "], %k[" STR(A) "]\n" # endif #endif #define ROUND_H(A, B, C, D, NEXT_IN, K, R) \ ADD_CONST(K, , A, ) \ "xorl %k[" STR(B) "], %k[TMP1]\n" \ PRELOAD_INPUT(NEXT_IN) \ "addl %k[TMP1], %k[" STR(A) "]\n" \ "xorl %k[" STR(D) "], %k[TMP1]\n" \ "roll $" STR(R) ", %k[" STR(A) "]\n" \ ADD_INPUT(NEXT_IN, D) \ "addl %k[" STR(B) "], %k[" STR(A) "]\n" #ifdef _MD5_USE_BMI1_ #define ROUND_I(A, B, C, D, NEXT_IN, K, R) \ ADD_CONST(K, "-1", A, ) \ "andnl %k[" STR(D) "], %k[" STR(B) "], %k[TMP1]\n" \ PRELOAD_INPUT(NEXT_IN) \ "xorl %k[" STR(C) "], %k[TMP1]\n" \ "subl %k[TMP1], %k[" STR(A) "]\n" \ ADD_INPUT(NEXT_IN, D) \ "roll $" STR(R) ", %k[" STR(A) "]\n" \ "addl %k[" STR(B) "], %k[" STR(A) "]\n" #define ROUND_I_LAST(A, B, C, D, K, R) \ ADD_CONST(K, "-1", A, ) \ "andnl %k[" STR(D) "], %k[" STR(B) "], %k[TMP1]\n" \ "xorl %k[" STR(C) "], %k[TMP1]\n" \ "subl %k[TMP1], %k[" STR(A) "]\n" \ "roll $" STR(R) ", %k[" STR(A) "]\n" \ "addl %k[" STR(B) "], %k[" STR(A) "]\n" #else #define ROUND_I(A, B, C, D, NEXT_IN, K, R) \ "notl %k[TMP1]\n" \ ADD_CONST(K, , A, ) \ "orl %k[" STR(B) "], %k[TMP1]\n" \ PRELOAD_INPUT(NEXT_IN) \ "xorl %k[" STR(C) "], %k[TMP1]\n" \ "addl %k[TMP1], %k[" STR(A) "]\n" \ ADD_INPUT(NEXT_IN, D) \ "roll $" STR(R) ", %k[" STR(A) "]\n" \ "movl %k[" STR(C) "], %k[TMP1]\n" \ "addl %k[" STR(B) "], %k[" STR(A) "]\n" #define ROUND_I_LAST(A, B, C, D, K, R) \ "notl %k[TMP1]\n" \ ADD_CONST(K, , A, ) \ "orl %k[" STR(B) "], %k[TMP1]\n" \ "xorl %k[" STR(C) "], %k[TMP1]\n" \ "addl %k[TMP1], %k[" STR(A) "]\n" \ "roll $" STR(R) ", %k[" STR(A) "]\n" \ "addl %k[" STR(B) "], %k[" STR(A) "]\n" #endif #define RF4(I, i0, i1, i2, i3, k0, k1, k2, k3) \ ROUND_F(I, A, I##B, I##C, I##D, "%[input" STR(i0) "]", k0, 7) \ ROUND_F(I, D, A, I##B, I##C, "%[input" STR(i1) "]", k1, 12) \ ROUND_F(I, C, D, A, I##B, "%[input" STR(i2) "]", k2, 17) \ ROUND_F(I, B, C, D, A, "%[input" STR(i3) "]", k3, 22) #define RG4(i0, i1, i2, i3, k0, k1, k2, k3) \ ROUND_G(A, B, C, D, "%[input" STR(i0) "]", k0, 5) \ ROUND_G(D, A, B, C, "%[input" STR(i1) "]", k1, 9) \ ROUND_G(C, D, A, B, "%[input" STR(i2) "]", k2, 14) \ ROUND_G(B, C, D, A, "%[input" STR(i3) "]", k3, 20) #define RH4(i0, i1, i2, i3, k0, k1, k2, k3) \ ROUND_H(A, B, C, D, "%[input" STR(i0) "]", k0, 4) \ ROUND_H(D, A, B, C, "%[input" STR(i1) "]", k1, 11) \ ROUND_H(C, D, A, B, "%[input" STR(i2) "]", k2, 16) \ ROUND_H(B, C, D, A, "%[input" STR(i3) "]", k3, 23) #define RI4(i0, i1, i2, i3, k0, k1, k2, k3) \ ROUND_I(A, B, C, D, "%[input" STR(i0) "]", k0, 6) \ ROUND_I(D, A, B, C, "%[input" STR(i1) "]", k1, 10) \ ROUND_I(C, D, A, B, "%[input" STR(i2) "]", k2, 15) \ ROUND_I(B, C, D, A, "%[input" STR(i3) "]", k3, 21) static HEDLEY_ALWAYS_INLINE void md5_process_block_scalar(uint32_t* HEDLEY_RESTRICT state, const uint8_t* const* HEDLEY_RESTRICT data, size_t offset) { (void)offset; uint32_t A; uint32_t B; uint32_t C; uint32_t D; const uint32_t* _in = (const uint32_t*)(data[0]); void *tmp1; #ifndef PLATFORM_AMD64 A = state[0]; B = state[1]; C = state[2]; D = state[3]; #else void *tmp2, *tmp3; #endif __asm__( #ifdef PLATFORM_AMD64 "movl %[input0], %k[TMP2]\n" "movl %k[ID], %k[TMP1]\n" RF4(I, 1, 2, 3, 4, -0x28955b88, -0x173848aa, 0x242070db, -0x3e423112) #else "addl %[input0], %k[A]\n" "movl %k[D], %k[TMP1]\n" RF4(, 1, 2, 3, 4, -0x28955b88, -0x173848aa, 0x242070db, -0x3e423112) #endif RF4(, 5, 6, 7, 8, -0x0a83f051, 0x4787c62a, -0x57cfb9ed, -0x02b96aff) RF4(, 9, 10, 11, 12, 0x698098d8, -0x74bb0851, -0x0000a44f, -0x76a32842) ROUND_F(, A, B, C, D, "%[input13]", 0x6b901122, 7) ROUND_F(, D, A, B, C, "%[input14]", -0x02678e6d, 12) ROUND_F(, C, D, A, B, "%[input15]", -0x5986bc72, 17) ROUND_F_LAST(B, C, D, A, "%[input1]", 0x49b40821, 22) : [TMP1]"=&R"(tmp1), #ifdef PLATFORM_AMD64 [A]"=&R"(A), [B]"=&R"(B), [C]"=&R"(C), [D]"=&R"(D), [TMP2]"=&r"(tmp2) : [IA]"r"(state[0]), [IB]"r"(state[1]), [IC]"r"(state[2]), [ID]"r"(state[3]), #else [A]"+&R"(A), [B]"+&R"(B), [C]"+&R"(C), [D]"+&R"(D) : #endif ASM_INPUTS :); __asm__( RG4( 6, 11, 0, 5, -0x09e1da9e, -0x3fbf4cc0, 0x265e5a51, -0x16493856) RG4(10, 15, 4, 9, -0x29d0efa3, 0x02441453, -0x275e197f, -0x182c0438) RG4(14, 3, 8, 13, 0x21e1cde6, -0x3cc8f82a, -0x0b2af279, 0x455a14ed) ROUND_G(A, B, C, D, "%[input2]", -0x561c16fb, 5) ROUND_G(D, A, B, C, "%[input7]", -0x03105c08, 9) ROUND_G(C, D, A, B, "%[input12]", 0x676f02d9, 14) ROUND_G_LAST(B, C, D, A, "%[input5]", -0x72d5b376, 20) "xorl %k[C], %k[TMP1]\n" ADD_CONST(-0x0005c6be, , A, ) "xorl %k[B], %k[TMP1]\n" PRELOAD_INPUT("%[input8]") "addl %k[TMP1], %k[A]\n" "xorl %k[D], %k[TMP1]\n" "roll $4, %k[A]\n" ADD_INPUT("%[input8]", D) "addl %k[B], %k[A]\n" ROUND_H(D, A, B, C, "%[input11]", -0x788e097f, 11) ROUND_H(C, D, A, B, "%[input14]", 0x6d9d6122, 16) ROUND_H(B, C, D, A, "%[input1]", -0x021ac7f4, 23) RH4( 4, 7, 10, 13, -0x5b4115bc, 0x4bdecfa9, -0x0944b4a0, -0x41404390) RH4( 0, 3, 6, 9, 0x289b7ec6, -0x155ed806, -0x2b10cf7b, 0x04881d05) RH4(12, 15, 2, 0, -0x262b2fc7, -0x1924661b, 0x1fa27cf8, -0x3b53a99b) // above contains a redundant XOR - TODO: consider eliminating #ifndef _MD5_USE_BMI1_ "movl %k[D], %k[TMP1]\n" #endif RI4( 7, 14, 5, 12, -0x0bd6ddbc, 0x432aff97, -0x546bdc59, -0x036c5fc7) RI4( 3, 10, 1, 8, 0x655b59c3, -0x70f3336e, -0x00100b83, -0x7a7ba22f) RI4(15, 6, 13, 4, 0x6fa87e4f, -0x01d31920, -0x5cfebcec, 0x4e0811a1) ROUND_I(A, B, C, D, "%[input11]", -0x08ac817e, 6) ROUND_I(D, A, B, C, "%[input2]" , -0x42c50dcb, 10) ROUND_I(C, D, A, B, "%[input9]" , 0x2ad7d2bb, 15) ROUND_I_LAST(B, C, D, A, -0x14792c6f, 21) : [TMP1]"+&R"(tmp1), #ifdef PLATFORM_AMD64 [A]"+&R"(A), [B]"+&R"(B), [C]"+&R"(C), [D]"+&R"(D) , [TMP2]"+&r"(tmp2), [TMP3]"=&r"(tmp3) #else [A]"+&R"(A), [B]"+&R"(B), [C]"+&R"(C), [D]"+&R"(D) #endif : ASM_INPUTS :); state[0] += A; state[1] += B; state[2] += C; state[3] += D; } #undef ROUND_F #undef ROUND_F_LAST #undef ROUND_G #undef ROUND_G_LAST #undef ROUND_H #undef ROUND_I #undef ROUND_I_LAST #undef RF4 #undef RG4 #undef RH4 #undef RI4 #ifdef PLATFORM_AMD64 #define ROUND_F(A, B, C, D, NEXT_IN, K, R) \ "xorl %k[" STR(C) "], %k[TMP1]\n" \ "addl $" STR(K) ", %k[" STR(A) "]\n" \ "andl %k[" STR(B) "], %k[TMP1]\n" \ "xorl %k[" STR(D) "], %k[TMP1]\n" \ "addl " NEXT_IN ", %k[" STR(D) "]\n" \ "addl %k[TMP1], %k[" STR(A) "]\n" \ "roll $" STR(R) ", %k[" STR(A) "]\n" \ "movl %k[" STR(C) "], %k[TMP1]\n" \ "addl %k[" STR(B) "], %k[" STR(A) "]\n" #ifdef PLATFORM_AMD64 #define ROUND_G(A, B, C, D, NEXT_IN, K, R) \ "notl %k[TMP1]\n" \ "addl $" STR(K) ", %k[" STR(A) "]\n" \ "andl %k[" STR(C) "], %k[TMP1]\n" \ "movl %k[" STR(D) "], %k[TMP2]\n" \ "addl " NEXT_IN ", %k[" STR(D) "]\n" \ "addl %k[TMP1], %k[" STR(A) "]\n" \ "andl %k[" STR(B) "], %k[TMP2]\n" \ "addl %k[TMP2], %k[" STR(A) "]\n" \ "roll $" STR(R) ", %k[" STR(A) "]\n" \ "movl %k[" STR(C) "], %k[TMP1]\n" \ "addl %k[" STR(B) "], %k[" STR(A) "]\n" #else #define ROUND_G(A, B, C, D, NEXT_IN, K, R) \ "notl %k[TMP1]\n" \ "addl $" STR(K) ", %k[" STR(A) "]\n" \ "andl %k[" STR(C) "], %k[TMP1]\n" \ "addl %k[TMP1], %k[" STR(A) "]\n" \ "movl %k[" STR(D) "], %k[TMP1]\n" \ "addl " NEXT_IN ", %k[" STR(D) "]\n" \ "andl %k[" STR(B) "], %k[TMP1]\n" \ "addl %k[TMP1], %k[" STR(A) "]\n" \ "roll $" STR(R) ", %k[" STR(A) "]\n" \ "movl %k[" STR(C) "], %k[TMP1]\n" \ "addl %k[" STR(B) "], %k[" STR(A) "]\n" #endif #define ROUND_H(A, B, C, D, NEXT_IN, K, R) \ "addl $" STR(K) ", %k[" STR(A) "]\n" \ "xorl %k[" STR(B) "], %k[TMP1]\n" \ "addl %k[TMP1], %k[" STR(A) "]\n" \ "xorl %k[" STR(D) "], %k[TMP1]\n" \ "addl " NEXT_IN ", %k[" STR(D) "]\n" \ "roll $" STR(R) ", %k[" STR(A) "]\n" \ "addl %k[" STR(B) "], %k[" STR(A) "]\n" #define ROUND_I(A, B, C, D, NEXT_IN, K, R) \ "notl %k[TMP1]\n" \ "addl $" STR(K) ", %k[" STR(A) "]\n" \ "addl " NEXT_IN ", %k[" STR(D) "]\n" \ "orl %k[" STR(B) "], %k[TMP1]\n" \ "xorl %k[" STR(C) "], %k[TMP1]\n" \ "addl %k[TMP1], %k[" STR(A) "]\n" \ "roll $" STR(R) ", %k[" STR(A) "]\n" \ "movl %k[" STR(C) "], %k[TMP1]\n" \ "addl %k[" STR(B) "], %k[" STR(A) "]\n" #define ROUND_I_LAST(A, B, C, D, K, R) \ "notl %k[TMP1]\n" \ "addl $" STR(K) ", %k[" STR(A) "]\n" \ "orl %k[" STR(B) "], %k[TMP1]\n" \ "xorl %k[" STR(C) "], %k[TMP1]\n" \ "addl %k[TMP1], %k[" STR(A) "]\n" \ "roll $" STR(R) ", %k[" STR(A) "]\n" \ "addl %k[" STR(B) "], %k[" STR(A) "]\n" #define RF4(I, i0, i1, i2, i3, k0, k1, k2, k3) \ ROUND_F(A, I##B, I##C, I##D, "%[input" STR(i0) "]", k0, 7) \ ROUND_F(D, A, I##B, I##C, "%[input" STR(i1) "]", k1, 12) \ ROUND_F(C, D, A, I##B, "%[input" STR(i2) "]", k2, 17) \ ROUND_F(B, C, D, A, "%[input" STR(i3) "]", k3, 22) #define RG4(i0, i1, i2, i3, k0, k1, k2, k3) \ ROUND_G(A, B, C, D, "%[input" STR(i0) "]", k0, 5) \ ROUND_G(D, A, B, C, "%[input" STR(i1) "]", k1, 9) \ ROUND_G(C, D, A, B, "%[input" STR(i2) "]", k2, 14) \ ROUND_G(B, C, D, A, "%[input" STR(i3) "]", k3, 20) #define RH4(i0, i1, i2, i3, k0, k1, k2, k3) \ ROUND_H(A, B, C, D, "%[input" STR(i0) "]", k0, 4) \ ROUND_H(D, A, B, C, "%[input" STR(i1) "]", k1, 11) \ ROUND_H(C, D, A, B, "%[input" STR(i2) "]", k2, 16) \ ROUND_H(B, C, D, A, "%[input" STR(i3) "]", k3, 23) #define RI4(i0, i1, i2, i3, k0, k1, k2, k3) \ ROUND_I(A, B, C, D, "%[input" STR(i0) "]", k0, 6) \ ROUND_I(D, A, B, C, "%[input" STR(i1) "]", k1, 10) \ ROUND_I(C, D, A, B, "%[input" STR(i2) "]", k2, 15) \ ROUND_I(B, C, D, A, "%[input" STR(i3) "]", k3, 21) static HEDLEY_ALWAYS_INLINE void md5_process_block_nolea(uint32_t* HEDLEY_RESTRICT state, const uint8_t* const* HEDLEY_RESTRICT data, size_t offset) { (void)offset; uint32_t A; uint32_t B; uint32_t C; uint32_t D; const uint32_t* _in = (const uint32_t*)(data[0]); void *tmp1; #ifdef PLATFORM_AMD64 void *tmp2; #endif A = state[0]; B = state[1]; C = state[2]; D = state[3]; __asm__( "addl %[input0], %k[A]\n" "movl %k[D], %k[TMP1]\n" RF4(, 1, 2, 3, 4, -0x28955b88, -0x173848aa, 0x242070db, -0x3e423112) RF4(, 5, 6, 7, 8, -0x0a83f051, 0x4787c62a, -0x57cfb9ed, -0x02b96aff) RF4(, 9, 10, 11, 12, 0x698098d8, -0x74bb0851, -0x0000a44f, -0x76a32842) RF4(, 13, 14, 15, 1, 0x6b901122, -0x02678e6d, -0x5986bc72, 0x49b40821) : [TMP1]"=&R"(tmp1), #ifdef PLATFORM_AMD64 [TMP2]"=&r"(tmp2), #endif [A]"+&R"(A), [B]"+&R"(B), [C]"+&R"(C), [D]"+&R"(D) : ASM_INPUTS :); __asm__( RG4( 6, 11, 0, 5, -0x09e1da9e, -0x3fbf4cc0, 0x265e5a51, -0x16493856) RG4(10, 15, 4, 9, -0x29d0efa3, 0x02441453, -0x275e197f, -0x182c0438) RG4(14, 3, 8, 13, 0x21e1cde6, -0x3cc8f82a, -0x0b2af279, 0x455a14ed) RG4( 2, 7, 12, 5, -0x561c16fb, -0x03105c08, 0x676f02d9, -0x72d5b376) "xorl %k[C], %k[TMP1]\n" "addl $-0x0005c6be, %k[A]\n" "xorl %k[B], %k[TMP1]\n" "addl %k[TMP1], %k[A]\n" "xorl %k[D], %k[TMP1]\n" "addl %[input8], %k[D]\n" "roll $4, %k[A]\n" "addl %k[B], %k[A]\n" ROUND_H(D, A, B, C, "%[input11]", -0x788e097f, 11) ROUND_H(C, D, A, B, "%[input14]", 0x6d9d6122, 16) ROUND_H(B, C, D, A, "%[input1]", -0x021ac7f4, 23) RH4( 4, 7, 10, 13, -0x5b4115bc, 0x4bdecfa9, -0x0944b4a0, -0x41404390) RH4( 0, 3, 6, 9, 0x289b7ec6, -0x155ed806, -0x2b10cf7b, 0x04881d05) RH4(12, 15, 2, 0, -0x262b2fc7, -0x1924661b, 0x1fa27cf8, -0x3b53a99b) // above contains a redundant XOR - TODO: consider eliminating "movl %k[D], %k[TMP1]\n" RI4( 7, 14, 5, 12, -0x0bd6ddbc, 0x432aff97, -0x546bdc59, -0x036c5fc7) RI4( 3, 10, 1, 8, 0x655b59c3, -0x70f3336e, -0x00100b83, -0x7a7ba22f) RI4(15, 6, 13, 4, 0x6fa87e4f, -0x01d31920, -0x5cfebcec, 0x4e0811a1) ROUND_I(A, B, C, D, "%[input11]", -0x08ac817e, 6) ROUND_I(D, A, B, C, "%[input2]" , -0x42c50dcb, 10) ROUND_I(C, D, A, B, "%[input9]" , 0x2ad7d2bb, 15) ROUND_I_LAST(B, C, D, A, -0x14792c6f, 21) : [TMP1]"+&R"(tmp1), #ifdef PLATFORM_AMD64 [TMP2]"=&r"(tmp2), #endif [A]"+&R"(A), [B]"+&R"(B), [C]"+&R"(C), [D]"+&R"(D) : ASM_INPUTS :); state[0] += A; state[1] += B; state[2] += C; state[3] += D; } #undef ROUND_F #undef ROUND_G #undef ROUND_H #undef ROUND_I #undef ROUND_I_LAST #undef RF4 #undef RG4 #undef RH4 #undef RI4 #endif #endif // PLATFORM_X86 par2cmdline-turbo-1.5.0/parpar/hasher/md5mb-base.h000066400000000000000000000043571524160147200217050ustar00rootroot00000000000000 #include #include "../src/stdint.h" #ifdef MD5X2 # define FNB(f) _FN(f##_mb2) # define FN_REGIONS(d) _FN(md5mb_##d)*2 #else # define FNB(f) _FN(f##_mb) # define FN_REGIONS(d) _FN(md5mb_##d) #endif #include "md5-base.h" static HEDLEY_ALWAYS_INLINE void FNB(md5_update_block)(void* state, const void* const* data, size_t offset) { FNB(md5_process_block)((word_t*)state, (const uint8_t* const*)data, offset); } static HEDLEY_ALWAYS_INLINE void FNB(md5_final_block)(void* state, const void *HEDLEY_RESTRICT const*HEDLEY_RESTRICT data, size_t offset, uint64_t totalLength) { ALIGN_TO(_FN(md5mb_alignment), uint8_t block[FN_REGIONS(max_regions)][64]); const uint8_t* blockPtr[FN_REGIONS(max_regions)]; size_t remaining = totalLength & 63; for(unsigned i=0; i bits for(unsigned i=0; i #define ADD vaddq_u32 #define VAL vdupq_n_u32 #define word_t uint32x4_t #define INPUT(k, set, ptr, offs, idx, var) ADD(var, VAL(k)) #define LOAD INPUT #define LOAD4(set, ptr, offs, idx, var0, var1, var2, var3) { \ uint32x4x2_t in01 = vzipq_u32( \ vreinterpretq_u32_u8(vld1q_u8((uint8_t*)ptr[0+set*4] + offs + idx*4)), \ vreinterpretq_u32_u8(vld1q_u8((uint8_t*)ptr[1+set*4] + offs + idx*4)) \ ); \ uint32x4x2_t in23 = vzipq_u32( \ vreinterpretq_u32_u8(vld1q_u8((uint8_t*)ptr[2+set*4] + offs + idx*4)), \ vreinterpretq_u32_u8(vld1q_u8((uint8_t*)ptr[3+set*4] + offs + idx*4)) \ ); \ var0 = vcombine_u32(vget_low_u32(in01.val[0]), vget_low_u32(in23.val[0])); \ var1 = vcombine_u32(vget_high_u32(in01.val[0]), vget_high_u32(in23.val[0])); \ var2 = vcombine_u32(vget_low_u32(in01.val[1]), vget_low_u32(in23.val[1])); \ var3 = vcombine_u32(vget_high_u32(in01.val[1]), vget_high_u32(in23.val[1])); \ } #define ROTATE(a, r) r==16 ? vreinterpretq_u32_u16(vrev32q_u16(vreinterpretq_u16_u32(a))) : vsliq_n_u32(vshrq_n_u32(a, 32-r), a, r) #define md5mb_regions_neon 4 #define md5mb_max_regions_neon md5mb_regions_neon #define md5mb_alignment_neon 16 #define F vbslq_u32 #define G(b,c,d) vbslq_u32(d, b, c) #define H(b,c,d) veorq_u32(veorq_u32(d, c), b) #define I(b,c,d) veorq_u32(vornq_u32(b, d), c) /* the following (I function shortcut) often performs worse - is it because VBIT is more expensive than VORN? #define F 1 #define G 2 #define H 3 #define I 4 #define ADDF(f,a,b,c,d) ( \ f==G ? ADD(a, vbslq_u32(d, b, c)) : ( \ f==I ? vsubq_u32(a, vbslq_u32(b, c, veorq_u32(c, d))) : ADD(a, f==F ? \ vbslq_u32(b, c, d) : \ veorq_u32(veorq_u32(d, c), b) \ ) \ ) \ ) #define IOFFSET -1 */ #define _FN(f) f##_neon #include "md5mb-base.h" #define MD5X2 #include "md5mb-base.h" #undef MD5X2 #undef _FN #undef ROTATE #undef ADD #undef VAL #undef word_t #undef INPUT #undef LOAD #undef LOAD4 #undef F #undef G #undef H #undef I //#undef ADDF //#undef IOFFSET static HEDLEY_ALWAYS_INLINE void md5_extract_mb_neon(void* dst, void* state, int idx) { uint32x4_t* state_ = (uint32x4_t*)state + (idx & 4); // re-arrange to pairs uint32x4x2_t tmp1 = vzipq_u32(state_[0], state_[1]); uint32x4x2_t tmp2 = vzipq_u32(state_[2], state_[3]); idx &= 3; if(idx == 0) vst1q_u8((uint8_t*)dst, vreinterpretq_u8_u32(vcombine_u32(vget_low_u32(tmp1.val[0]), vget_low_u32(tmp2.val[0])))); if(idx == 1) vst1q_u8((uint8_t*)dst, vreinterpretq_u8_u32(vcombine_u32(vget_high_u32(tmp1.val[0]), vget_high_u32(tmp2.val[0])))); if(idx == 2) vst1q_u8((uint8_t*)dst, vreinterpretq_u8_u32(vcombine_u32(vget_low_u32(tmp1.val[1]), vget_low_u32(tmp2.val[1])))); if(idx == 3) vst1q_u8((uint8_t*)dst, vreinterpretq_u8_u32(vcombine_u32(vget_high_u32(tmp1.val[1]), vget_high_u32(tmp2.val[1])))); } static HEDLEY_ALWAYS_INLINE void md5_extract_all_mb_neon(void* dst, void* state, int group) { uint32x4_t* state_ = (uint32x4_t*)state + group*4; uint32x4x4_t t; t.val[0] = state_[0]; t.val[1] = state_[1]; t.val[2] = state_[2]; t.val[3] = state_[3]; #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ t.val[0] = vreinterpretq_u32_u8(vrev32q_u8(vreinterpretq_u8_u32(t.val[0]))); t.val[1] = vreinterpretq_u32_u8(vrev32q_u8(vreinterpretq_u8_u32(t.val[1]))); t.val[2] = vreinterpretq_u32_u8(vrev32q_u8(vreinterpretq_u8_u32(t.val[2]))); t.val[3] = vreinterpretq_u32_u8(vrev32q_u8(vreinterpretq_u8_u32(t.val[3]))); #endif vst4q_u32((uint32_t*)dst, t); } #endif par2cmdline-turbo-1.5.0/parpar/hasher/md5mb-scalar.h000066400000000000000000000013741524160147200222340ustar00rootroot00000000000000#include "md5-scalar-base.h" #define md5mb_regions_scalar 1 #define md5mb_max_regions_scalar 1 #define md5mb_alignment_scalar sizeof(void *) #define _FN(f) f##_scalar #include "md5mb-base.h" #define MD5X2 #include "md5mb-base.h" #undef MD5X2 #undef _FN #undef ROTATE #undef ADD #undef VAL #undef word_t #undef INPUT #undef LOAD #undef F #undef G #undef H #undef I #undef ADDF static HEDLEY_ALWAYS_INLINE void md5_extract_mb_scalar(void* dst, void* state, int idx) { uint32_t* state_ = (uint32_t*)state + idx*4; uint32_t* dst_ = (uint32_t*)dst; for(int i=0; i<4; i++) write32(dst_+i, _LE32(read32(state_+i))); } static HEDLEY_ALWAYS_INLINE void md5_extract_all_mb_scalar(void* dst, void* state, int group) { md5_extract_mb_scalar(dst, state, group); } par2cmdline-turbo-1.5.0/parpar/hasher/md5mb-sse.h000066400000000000000000000525131524160147200215620ustar00rootroot00000000000000 #include "../src/platform.h" #define INPUT(k, set, ptr, offs, idx, var) ADD(var, VAL(k)) #define LOAD INPUT #ifdef __SSE2__ #include #define ADD _mm_add_epi32 #define VAL _mm_set1_epi32 #define word_t __m128i // TODO: for SSE, might be better to use shufps because it enables movaps which is 1 byte shorter // probably worse for AVX since all instructions are 4 bytes (and shufps has an immediate byte) #define LOAD4(set, ptr, offs, idx, var0, var1, var2, var3) { \ __m128i in0 = _mm_loadu_si128((__m128i*)(ptr[0+set*4] + offs + idx*4)); \ __m128i in1 = _mm_loadu_si128((__m128i*)(ptr[1+set*4] + offs + idx*4)); \ __m128i in2 = _mm_loadu_si128((__m128i*)(ptr[2+set*4] + offs + idx*4)); \ __m128i in3 = _mm_loadu_si128((__m128i*)(ptr[3+set*4] + offs + idx*4)); \ __m128i in01a = _mm_unpacklo_epi32(in0, in1); \ __m128i in01b = _mm_unpackhi_epi32(in0, in1); \ __m128i in23a = _mm_unpacklo_epi32(in2, in3); \ __m128i in23b = _mm_unpackhi_epi32(in2, in3); \ var0 = _mm_unpacklo_epi64(in01a, in23a); \ var1 = _mm_unpackhi_epi64(in01a, in23a); \ var2 = _mm_unpacklo_epi64(in01b, in23b); \ var3 = _mm_unpackhi_epi64(in01b, in23b); \ } #define ROTATE(a, r) (r == 16 ? \ _mm_shufflehi_epi16(_mm_shufflelo_epi16(a, 0xb1), 0xb1) \ : _mm_or_si128(_mm_slli_epi32(a, r), _mm_srli_epi32(a, 32-r)) \ ) #define md5mb_regions_sse 4 #define md5mb_max_regions_sse md5mb_regions_sse #define md5mb_alignment_sse 16 #define F 1 #define G 2 #define H 3 #define I 4 #define ADDF(f,a,b,c,d) ( \ f==G ? ADD(ADD(_mm_andnot_si128(d, c), a), _mm_and_si128(d, b)) : ADD(a, \ f==F ? _mm_xor_si128(_mm_and_si128(_mm_xor_si128(c, d), b), d) : ( \ f==H ? _mm_xor_si128(_mm_xor_si128(d, c), b) : \ _mm_xor_si128(_mm_or_si128(_mm_xor_si128(d, _mm_set1_epi8(-1)), b), c) \ ) \ ) \ ) #define _FN(f) f##_sse #include "md5mb-base.h" #define MD5X2 #include "md5mb-base.h" #undef MD5X2 #undef _FN static HEDLEY_ALWAYS_INLINE void md5_extract_mb_sse(void* dst, void* state, int idx) { HEDLEY_ASSUME(idx >= 0 && idx < md5mb_regions_sse*2); // 2 = md5mb_interleave __m128i* state_ = (__m128i*)state + (idx & 4); __m128i tmp1 = _mm_unpacklo_epi32(state_[0], state_[1]); __m128i tmp2 = _mm_unpackhi_epi32(state_[0], state_[1]); __m128i tmp3 = _mm_unpacklo_epi32(state_[2], state_[3]); __m128i tmp4 = _mm_unpackhi_epi32(state_[2], state_[3]); idx &= 3; if(idx == 0) _mm_storeu_si128((__m128i*)dst, _mm_unpacklo_epi64(tmp1, tmp3)); if(idx == 1) _mm_storeu_si128((__m128i*)dst, _mm_unpackhi_epi64(tmp1, tmp3)); if(idx == 2) _mm_storeu_si128((__m128i*)dst, _mm_unpacklo_epi64(tmp2, tmp4)); if(idx == 3) _mm_storeu_si128((__m128i*)dst, _mm_unpackhi_epi64(tmp2, tmp4)); } static HEDLEY_ALWAYS_INLINE void md5_extract_all_mb_sse(void* dst, void* state, int group) { __m128i* state_ = (__m128i*)state + group*4; __m128i tmp1 = _mm_unpacklo_epi32(state_[0], state_[1]); __m128i tmp2 = _mm_unpackhi_epi32(state_[0], state_[1]); __m128i tmp3 = _mm_unpacklo_epi32(state_[2], state_[3]); __m128i tmp4 = _mm_unpackhi_epi32(state_[2], state_[3]); __m128i* dst_ = (__m128i*)dst; _mm_storeu_si128(dst_+0, _mm_unpacklo_epi64(tmp1, tmp3)); _mm_storeu_si128(dst_+1, _mm_unpackhi_epi64(tmp1, tmp3)); _mm_storeu_si128(dst_+2, _mm_unpacklo_epi64(tmp2, tmp4)); _mm_storeu_si128(dst_+3, _mm_unpackhi_epi64(tmp2, tmp4)); } #endif #ifdef IOFFSET # undef IOFFSET #endif #define IOFFSET -1 #ifdef __AVX__ # define md5mb_regions_avx md5mb_regions_sse # define md5mb_max_regions_avx md5mb_regions_avx # define md5mb_alignment_avx md5mb_alignment_sse #undef ADDF #define ADDF(f,a,b,c,d) ( \ f==G ? ADD(ADD(_mm_andnot_si128(d, c), a), _mm_and_si128(d, b)) : ( \ f==I ? _mm_sub_epi32(a, _mm_xor_si128(c, _mm_andnot_si128(b, d))) : ADD(a, f==F ? \ _mm_xor_si128(_mm_and_si128(_mm_xor_si128(c, d), b), d) : \ _mm_xor_si128(_mm_xor_si128(d, c), b) \ ) \ ) \ ) # define _FN(f) f##_avx # include "md5mb-base.h" # define MD5X2 # include "md5mb-base.h" # undef MD5X2 # undef _FN # define md5_extract_mb_avx md5_extract_mb_sse # define md5_extract_all_mb_avx md5_extract_all_mb_sse #endif #ifdef ROTATE # undef ROTATE #endif #ifdef __XOP__ #ifdef _MSC_VER # include #else # include #endif #define ROTATE _mm_roti_epi32 #define md5mb_regions_xop md5mb_regions_sse #define md5mb_max_regions_xop md5mb_regions_xop #define md5mb_alignment_xop md5mb_alignment_sse #undef ADDF #define ADDF(f,a,b,c,d) ( \ f==G ? ADD(a, _mm_cmov_si128(b, c, d)) : ( \ f==I ? _mm_sub_epi32(a, _mm_cmov_si128(c, _mm_xor_si128(d, c), b)) : ADD(a, f==F ? \ _mm_cmov_si128(c, d, b) : \ _mm_xor_si128(_mm_xor_si128(d, c), b) \ ) \ ) \ ) #define _FN(f) f##_xop #include "md5mb-base.h" #define MD5X2 #include "md5mb-base.h" #undef MD5X2 #undef _FN #undef ROTATE #define md5_extract_mb_xop md5_extract_mb_sse #define md5_extract_all_mb_xop md5_extract_all_mb_sse #endif #ifdef IOFFSET # undef IOFFSET #endif #ifdef __AVX512VL__ #include #define ROTATE _mm_rol_epi32 #define md5mb_regions_avx512_128 md5mb_regions_sse #define md5mb_max_regions_avx512_128 md5mb_regions_avx512_128 #define md5mb_alignment_avx512_128 md5mb_alignment_sse #undef F #undef G #undef H #undef I #ifdef ADDF # undef ADDF #endif # define F(b,c,d) _mm_ternarylogic_epi32(d,c,b,0xD8) # define G(b,c,d) _mm_ternarylogic_epi32(d,c,b,0xAC) # define H(b,c,d) _mm_ternarylogic_epi32(d,c,b,0x96) # define I(b,c,d) _mm_ternarylogic_epi32(d,c,b,0x63) #define _FN(f) f##_avx512_128 #include "md5mb-base.h" #undef _FN #undef ROTATE #define md5_extract_mb_avx512_128 md5_extract_mb_sse #define md5_extract_all_mb_avx512_128 md5_extract_all_mb_sse #endif #ifdef __AVX2__ #include #undef ADD #undef VAL #undef word_t #undef LOAD4 #undef F #undef G #undef H #undef I #ifdef ADDF # undef ADDF #endif #define ADD _mm256_add_epi32 #define VAL _mm256_set1_epi32 #define word_t __m256i #define LOAD8(set, ptr, offs, idx, var0, var1, var2, var3, var4, var5, var6, var7) { \ __m256i in0 = _mm256_loadu_si256((__m256i*)(ptr[0+set*8] + offs + idx*4)); \ __m256i in1 = _mm256_loadu_si256((__m256i*)(ptr[1+set*8] + offs + idx*4)); \ __m256i in2 = _mm256_loadu_si256((__m256i*)(ptr[2+set*8] + offs + idx*4)); \ __m256i in3 = _mm256_loadu_si256((__m256i*)(ptr[3+set*8] + offs + idx*4)); \ __m256i in4 = _mm256_loadu_si256((__m256i*)(ptr[4+set*8] + offs + idx*4)); \ __m256i in5 = _mm256_loadu_si256((__m256i*)(ptr[5+set*8] + offs + idx*4)); \ __m256i in6 = _mm256_loadu_si256((__m256i*)(ptr[6+set*8] + offs + idx*4)); \ __m256i in7 = _mm256_loadu_si256((__m256i*)(ptr[7+set*8] + offs + idx*4)); \ __m256i in01a = _mm256_unpacklo_epi32(in0, in1); \ __m256i in01b = _mm256_unpackhi_epi32(in0, in1); \ __m256i in23a = _mm256_unpacklo_epi32(in2, in3); \ __m256i in23b = _mm256_unpackhi_epi32(in2, in3); \ __m256i in45a = _mm256_unpacklo_epi32(in4, in5); \ __m256i in45b = _mm256_unpackhi_epi32(in4, in5); \ __m256i in67a = _mm256_unpacklo_epi32(in6, in7); \ __m256i in67b = _mm256_unpackhi_epi32(in6, in7); \ __m256i in0123a = _mm256_unpacklo_epi64(in01a, in23a); \ __m256i in0123b = _mm256_unpackhi_epi64(in01a, in23a); \ __m256i in0123c = _mm256_unpacklo_epi64(in01b, in23b); \ __m256i in0123d = _mm256_unpackhi_epi64(in01b, in23b); \ __m256i in4567a = _mm256_unpacklo_epi64(in45a, in67a); \ __m256i in4567b = _mm256_unpackhi_epi64(in45a, in67a); \ __m256i in4567c = _mm256_unpacklo_epi64(in45b, in67b); \ __m256i in4567d = _mm256_unpackhi_epi64(in45b, in67b); \ var0 = _mm256_inserti128_si256(in0123a, _mm256_castsi256_si128(in4567a), 1); \ var1 = _mm256_inserti128_si256(in0123b, _mm256_castsi256_si128(in4567b), 1); \ var2 = _mm256_inserti128_si256(in0123c, _mm256_castsi256_si128(in4567c), 1); \ var3 = _mm256_inserti128_si256(in0123d, _mm256_castsi256_si128(in4567d), 1); \ var4 = _mm256_permute2x128_si256(in0123a, in4567a, 0x31); \ var5 = _mm256_permute2x128_si256(in0123b, in4567b, 0x31); \ var6 = _mm256_permute2x128_si256(in0123c, in4567c, 0x31); \ var7 = _mm256_permute2x128_si256(in0123d, in4567d, 0x31); \ } #define ROTATE(a, r) (r == 16 ? \ _mm256_shuffle_epi8(a, _mm256_set_epi32(0x0d0c0f0e, 0x09080b0a, 0x05040706, 0x01000302, 0x0d0c0f0e, 0x09080b0a, 0x05040706, 0x01000302)) \ : _mm256_or_si256(_mm256_slli_epi32(a, r), _mm256_srli_epi32(a, 32-r)) \ ) #define md5mb_regions_avx2 8 #define md5mb_max_regions_avx2 md5mb_regions_avx2 #define md5mb_alignment_avx2 32 #ifdef IOFFSET # undef IOFFSET #endif #define IOFFSET -1 #define F 1 #define G 2 #define H 3 #define I 4 #define ADDF(f,a,b,c,d) ( \ f==G ? ADD(ADD(_mm256_andnot_si256(d, c), a), _mm256_and_si256(d, b)) : ( \ f==I ? _mm256_sub_epi32(a, _mm256_xor_si256(c, _mm256_andnot_si256(b, d))) : ADD(a, f==F ? \ _mm256_xor_si256(_mm256_and_si256(_mm256_xor_si256(c, d), b), d) : \ _mm256_xor_si256(_mm256_xor_si256(d, c), b) \ ) \ ) \ ) #define _FN(f) f##_avx2 #include "md5mb-base.h" #define MD5X2 #include "md5mb-base.h" #undef MD5X2 #undef _FN static HEDLEY_ALWAYS_INLINE void md5_extract_mb_avx2(void* dst, void* state, int idx) { HEDLEY_ASSUME(idx >= 0 && idx < md5mb_regions_avx2*2); __m256i* state_ = (__m256i*)state + ((idx & 8) >> 1); __m256i tmpAB0 = _mm256_unpacklo_epi32(state_[0], state_[1]); __m256i tmpAB2 = _mm256_unpackhi_epi32(state_[0], state_[1]); __m256i tmpCD0 = _mm256_unpacklo_epi32(state_[2], state_[3]); __m256i tmpCD2 = _mm256_unpackhi_epi32(state_[2], state_[3]); __m256i tmp0 = _mm256_unpacklo_epi64(tmpAB0, tmpCD0); __m256i tmp1 = _mm256_unpackhi_epi64(tmpAB0, tmpCD0); __m256i tmp2 = _mm256_unpacklo_epi64(tmpAB2, tmpCD2); __m256i tmp3 = _mm256_unpackhi_epi64(tmpAB2, tmpCD2); idx &= 7; if(idx == 0) _mm_storeu_si128((__m128i*)dst, _mm256_castsi256_si128(tmp0)); if(idx == 1) _mm_storeu_si128((__m128i*)dst, _mm256_castsi256_si128(tmp1)); if(idx == 2) _mm_storeu_si128((__m128i*)dst, _mm256_castsi256_si128(tmp2)); if(idx == 3) _mm_storeu_si128((__m128i*)dst, _mm256_castsi256_si128(tmp3)); if(idx == 4) _mm_storeu_si128((__m128i*)dst, _mm256_extracti128_si256(tmp0, 1)); if(idx == 5) _mm_storeu_si128((__m128i*)dst, _mm256_extracti128_si256(tmp1, 1)); if(idx == 6) _mm_storeu_si128((__m128i*)dst, _mm256_extracti128_si256(tmp2, 1)); if(idx == 7) _mm_storeu_si128((__m128i*)dst, _mm256_extracti128_si256(tmp3, 1)); } static HEDLEY_ALWAYS_INLINE void md5_extract_all_mb_avx2(void* dst, void* state, int group) { __m256i* state_ = (__m256i*)state + group*4; __m256i tmpAB0 = _mm256_unpacklo_epi32(state_[0], state_[1]); __m256i tmpAB2 = _mm256_unpackhi_epi32(state_[0], state_[1]); __m256i tmpCD0 = _mm256_unpacklo_epi32(state_[2], state_[3]); __m256i tmpCD2 = _mm256_unpackhi_epi32(state_[2], state_[3]); __m256i tmp0 = _mm256_unpacklo_epi64(tmpAB0, tmpCD0); __m256i tmp1 = _mm256_unpackhi_epi64(tmpAB0, tmpCD0); __m256i tmp2 = _mm256_unpacklo_epi64(tmpAB2, tmpCD2); __m256i tmp3 = _mm256_unpackhi_epi64(tmpAB2, tmpCD2); __m256i* dst_ = (__m256i*)dst; _mm256_storeu_si256(dst_+0, _mm256_inserti128_si256(tmp0, _mm256_castsi256_si128(tmp1), 1)); _mm256_storeu_si256(dst_+1, _mm256_inserti128_si256(tmp2, _mm256_castsi256_si128(tmp3), 1)); _mm256_storeu_si256(dst_+2, _mm256_permute2x128_si256(tmp0, tmp1, 0x31)); _mm256_storeu_si256(dst_+3, _mm256_permute2x128_si256(tmp2, tmp3, 0x31)); } #endif #ifdef ADDF # undef ADDF #endif #ifdef IOFFSET # undef IOFFSET #endif #ifdef __AVX512VL__ #undef ROTATE #define ROTATE _mm256_rol_epi32 #define md5mb_regions_avx512_256 md5mb_regions_avx2 #define md5mb_max_regions_avx512_256 md5mb_regions_avx512_256 #define md5mb_alignment_avx512_256 md5mb_alignment_avx2 #undef F #undef G #undef H #undef I # define F(b,c,d) _mm256_ternarylogic_epi32(d,c,b,0xD8) # define G(b,c,d) _mm256_ternarylogic_epi32(d,c,b,0xAC) # define H(b,c,d) _mm256_ternarylogic_epi32(d,c,b,0x96) # define I(b,c,d) _mm256_ternarylogic_epi32(d,c,b,0x63) #define _FN(f) f##_avx512_256 #include "md5mb-base.h" #undef _FN #define md5_extract_mb_avx512_256 md5_extract_mb_avx2 #define md5_extract_all_mb_avx512_256 md5_extract_all_mb_avx2 #endif #ifdef __AVX512F__ #include #undef ROTATE #undef ADD #undef VAL #undef word_t #undef LOAD8 #define ADD _mm512_add_epi32 #define VAL _mm512_set1_epi32 #define word_t __m512i #define LOAD16(set, ptr, offs, var0, var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15) { \ __m512i in0 = _mm512_loadu_si512(ptr[0+set*16] + offs); \ __m512i in1 = _mm512_loadu_si512(ptr[1+set*16] + offs); \ __m512i in2 = _mm512_loadu_si512(ptr[2+set*16] + offs); \ __m512i in3 = _mm512_loadu_si512(ptr[3+set*16] + offs); \ __m512i in4 = _mm512_loadu_si512(ptr[4+set*16] + offs); \ __m512i in5 = _mm512_loadu_si512(ptr[5+set*16] + offs); \ __m512i in6 = _mm512_loadu_si512(ptr[6+set*16] + offs); \ __m512i in7 = _mm512_loadu_si512(ptr[7+set*16] + offs); \ __m512i in8 = _mm512_loadu_si512(ptr[8+set*16] + offs); \ __m512i in9 = _mm512_loadu_si512(ptr[9+set*16] + offs); \ __m512i in10 = _mm512_loadu_si512(ptr[10+set*16] + offs); \ __m512i in11 = _mm512_loadu_si512(ptr[11+set*16] + offs); \ __m512i in12 = _mm512_loadu_si512(ptr[12+set*16] + offs); \ __m512i in13 = _mm512_loadu_si512(ptr[13+set*16] + offs); \ __m512i in14 = _mm512_loadu_si512(ptr[14+set*16] + offs); \ __m512i in15 = _mm512_loadu_si512(ptr[15+set*16] + offs); \ __m512i in01a = _mm512_unpacklo_epi32(in0, in1); \ __m512i in01b = _mm512_unpackhi_epi32(in0, in1); \ __m512i in23a = _mm512_unpacklo_epi32(in2, in3); \ __m512i in23b = _mm512_unpackhi_epi32(in2, in3); \ __m512i in45a = _mm512_unpacklo_epi32(in4, in5); \ __m512i in45b = _mm512_unpackhi_epi32(in4, in5); \ __m512i in67a = _mm512_unpacklo_epi32(in6, in7); \ __m512i in67b = _mm512_unpackhi_epi32(in6, in7); \ __m512i in89a = _mm512_unpacklo_epi32(in8, in9); \ __m512i in89b = _mm512_unpackhi_epi32(in8, in9); \ __m512i in101a = _mm512_unpacklo_epi32(in10, in11); \ __m512i in101b = _mm512_unpackhi_epi32(in10, in11); \ __m512i in123a = _mm512_unpacklo_epi32(in12, in13); \ __m512i in123b = _mm512_unpackhi_epi32(in12, in13); \ __m512i in145a = _mm512_unpacklo_epi32(in14, in15); \ __m512i in145b = _mm512_unpackhi_epi32(in14, in15); \ __m512i in0123a = _mm512_unpacklo_epi64(in01a, in23a); \ __m512i in0123b = _mm512_unpackhi_epi64(in01a, in23a); \ __m512i in0123c = _mm512_unpacklo_epi64(in01b, in23b); \ __m512i in0123d = _mm512_unpackhi_epi64(in01b, in23b); \ __m512i in4567a = _mm512_unpacklo_epi64(in45a, in67a); \ __m512i in4567b = _mm512_unpackhi_epi64(in45a, in67a); \ __m512i in4567c = _mm512_unpacklo_epi64(in45b, in67b); \ __m512i in4567d = _mm512_unpackhi_epi64(in45b, in67b); \ __m512i in8901a = _mm512_unpacklo_epi64(in89a, in101a); \ __m512i in8901b = _mm512_unpackhi_epi64(in89a, in101a); \ __m512i in8901c = _mm512_unpacklo_epi64(in89b, in101b); \ __m512i in8901d = _mm512_unpackhi_epi64(in89b, in101b); \ __m512i in2345a = _mm512_unpacklo_epi64(in123a, in145a); \ __m512i in2345b = _mm512_unpackhi_epi64(in123a, in145a); \ __m512i in2345c = _mm512_unpacklo_epi64(in123b, in145b); \ __m512i in2345d = _mm512_unpackhi_epi64(in123b, in145b); \ __m512i in07a = _mm512_inserti64x4(in0123a, _mm512_castsi512_si256(in4567a), 1); \ __m512i in07b = _mm512_inserti64x4(in0123b, _mm512_castsi512_si256(in4567b), 1); \ __m512i in07c = _mm512_inserti64x4(in0123c, _mm512_castsi512_si256(in4567c), 1); \ __m512i in07d = _mm512_inserti64x4(in0123d, _mm512_castsi512_si256(in4567d), 1); \ __m512i in07e = _mm512_shuffle_i64x2(in0123a, in4567a, _MM_SHUFFLE(3,2,3,2)); \ __m512i in07f = _mm512_shuffle_i64x2(in0123b, in4567b, _MM_SHUFFLE(3,2,3,2)); \ __m512i in07g = _mm512_shuffle_i64x2(in0123c, in4567c, _MM_SHUFFLE(3,2,3,2)); \ __m512i in07h = _mm512_shuffle_i64x2(in0123d, in4567d, _MM_SHUFFLE(3,2,3,2)); \ __m512i in85a = _mm512_inserti64x4(in8901a, _mm512_castsi512_si256(in2345a), 1); \ __m512i in85b = _mm512_inserti64x4(in8901b, _mm512_castsi512_si256(in2345b), 1); \ __m512i in85c = _mm512_inserti64x4(in8901c, _mm512_castsi512_si256(in2345c), 1); \ __m512i in85d = _mm512_inserti64x4(in8901d, _mm512_castsi512_si256(in2345d), 1); \ __m512i in85e = _mm512_shuffle_i64x2(in8901a, in2345a, _MM_SHUFFLE(3,2,3,2)); \ __m512i in85f = _mm512_shuffle_i64x2(in8901b, in2345b, _MM_SHUFFLE(3,2,3,2)); \ __m512i in85g = _mm512_shuffle_i64x2(in8901c, in2345c, _MM_SHUFFLE(3,2,3,2)); \ __m512i in85h = _mm512_shuffle_i64x2(in8901d, in2345d, _MM_SHUFFLE(3,2,3,2)); \ var0 = _mm512_shuffle_i64x2(in07a, in85a, _MM_SHUFFLE(2,0,2,0)); \ var1 = _mm512_shuffle_i64x2(in07b, in85b, _MM_SHUFFLE(2,0,2,0)); \ var2 = _mm512_shuffle_i64x2(in07c, in85c, _MM_SHUFFLE(2,0,2,0)); \ var3 = _mm512_shuffle_i64x2(in07d, in85d, _MM_SHUFFLE(2,0,2,0)); \ var4 = _mm512_shuffle_i64x2(in07a, in85a, _MM_SHUFFLE(3,1,3,1)); \ var5 = _mm512_shuffle_i64x2(in07b, in85b, _MM_SHUFFLE(3,1,3,1)); \ var6 = _mm512_shuffle_i64x2(in07c, in85c, _MM_SHUFFLE(3,1,3,1)); \ var7 = _mm512_shuffle_i64x2(in07d, in85d, _MM_SHUFFLE(3,1,3,1)); \ var8 = _mm512_shuffle_i64x2(in07e, in85e, _MM_SHUFFLE(2,0,2,0)); \ var9 = _mm512_shuffle_i64x2(in07f, in85f, _MM_SHUFFLE(2,0,2,0)); \ var10 = _mm512_shuffle_i64x2(in07g, in85g, _MM_SHUFFLE(2,0,2,0)); \ var11 = _mm512_shuffle_i64x2(in07h, in85h, _MM_SHUFFLE(2,0,2,0)); \ var12 = _mm512_shuffle_i64x2(in07e, in85e, _MM_SHUFFLE(3,1,3,1)); \ var13 = _mm512_shuffle_i64x2(in07f, in85f, _MM_SHUFFLE(3,1,3,1)); \ var14 = _mm512_shuffle_i64x2(in07g, in85g, _MM_SHUFFLE(3,1,3,1)); \ var15 = _mm512_shuffle_i64x2(in07h, in85h, _MM_SHUFFLE(3,1,3,1)); \ } #define ROTATE _mm512_rol_epi32 #define md5mb_regions_avx512 16 #define md5mb_max_regions_avx512 md5mb_regions_avx512 #define md5mb_alignment_avx512 64 #undef F #undef G #undef H #undef I # define F(b,c,d) _mm512_ternarylogic_epi32(d,c,b,0xD8) # define G(b,c,d) _mm512_ternarylogic_epi32(d,c,b,0xAC) # define H(b,c,d) _mm512_ternarylogic_epi32(d,c,b,0x96) # define I(b,c,d) _mm512_ternarylogic_epi32(d,c,b,0x63) #define _FN(f) f##_avx512 #include "md5mb-base.h" #define MD5X2 #include "md5mb-base.h" #undef MD5X2 #undef _FN #undef ROTATE #undef LOAD16 static HEDLEY_ALWAYS_INLINE void md5_extract_mb_avx512(void* dst, void* state, int idx) { HEDLEY_ASSUME(idx >= 0 && idx < md5mb_regions_avx512*2); __m512i* state_ = (__m512i*)state + ((idx & 16) >> 2); __m512i tmpAB0 = _mm512_unpacklo_epi32(state_[0], state_[1]); __m512i tmpAB2 = _mm512_unpackhi_epi32(state_[0], state_[1]); __m512i tmpCD0 = _mm512_unpacklo_epi32(state_[2], state_[3]); __m512i tmpCD2 = _mm512_unpackhi_epi32(state_[2], state_[3]); __m512i tmp0 = _mm512_unpacklo_epi64(tmpAB0, tmpCD0); __m512i tmp1 = _mm512_unpackhi_epi64(tmpAB0, tmpCD0); __m512i tmp2 = _mm512_unpacklo_epi64(tmpAB2, tmpCD2); __m512i tmp3 = _mm512_unpackhi_epi64(tmpAB2, tmpCD2); idx &= 15; if(idx == 0) _mm_storeu_si128((__m128i*)dst, _mm512_castsi512_si128(tmp0)); if(idx == 1) _mm_storeu_si128((__m128i*)dst, _mm512_castsi512_si128(tmp1)); if(idx == 2) _mm_storeu_si128((__m128i*)dst, _mm512_castsi512_si128(tmp2)); if(idx == 3) _mm_storeu_si128((__m128i*)dst, _mm512_castsi512_si128(tmp3)); if(idx == 4) _mm_storeu_si128((__m128i*)dst, _mm512_extracti32x4_epi32(tmp0, 1)); if(idx == 5) _mm_storeu_si128((__m128i*)dst, _mm512_extracti32x4_epi32(tmp1, 1)); if(idx == 6) _mm_storeu_si128((__m128i*)dst, _mm512_extracti32x4_epi32(tmp2, 1)); if(idx == 7) _mm_storeu_si128((__m128i*)dst, _mm512_extracti32x4_epi32(tmp3, 1)); if(idx == 8) _mm_storeu_si128((__m128i*)dst, _mm512_extracti32x4_epi32(tmp0, 2)); if(idx == 9) _mm_storeu_si128((__m128i*)dst, _mm512_extracti32x4_epi32(tmp1, 2)); if(idx == 10) _mm_storeu_si128((__m128i*)dst, _mm512_extracti32x4_epi32(tmp2, 2)); if(idx == 11) _mm_storeu_si128((__m128i*)dst, _mm512_extracti32x4_epi32(tmp3, 2)); if(idx == 12) _mm_storeu_si128((__m128i*)dst, _mm512_extracti32x4_epi32(tmp0, 3)); if(idx == 13) _mm_storeu_si128((__m128i*)dst, _mm512_extracti32x4_epi32(tmp1, 3)); if(idx == 14) _mm_storeu_si128((__m128i*)dst, _mm512_extracti32x4_epi32(tmp2, 3)); if(idx == 15) _mm_storeu_si128((__m128i*)dst, _mm512_extracti32x4_epi32(tmp3, 3)); } static HEDLEY_ALWAYS_INLINE void md5_extract_all_mb_avx512(void* dst, void* state, int group) { __m512i* state_ = (__m512i*)state + group*4; __m512i tmpAB0 = _mm512_unpacklo_epi32(state_[0], state_[1]); __m512i tmpAB2 = _mm512_unpackhi_epi32(state_[0], state_[1]); __m512i tmpCD0 = _mm512_unpacklo_epi32(state_[2], state_[3]); __m512i tmpCD2 = _mm512_unpackhi_epi32(state_[2], state_[3]); __m512i tmp0 = _mm512_unpacklo_epi64(tmpAB0, tmpCD0); __m512i tmp1 = _mm512_unpackhi_epi64(tmpAB0, tmpCD0); __m512i tmp2 = _mm512_unpacklo_epi64(tmpAB2, tmpCD2); __m512i tmp3 = _mm512_unpackhi_epi64(tmpAB2, tmpCD2); __m512i out0415 = _mm512_inserti64x4(tmp0, _mm512_castsi512_si256(tmp1), 1); __m512i out2637 = _mm512_inserti64x4(tmp2, _mm512_castsi512_si256(tmp3), 1); __m512i out8C9D = _mm512_shuffle_i64x2(tmp0, tmp1, _MM_SHUFFLE(3,2,3,2)); __m512i outAEBF = _mm512_shuffle_i64x2(tmp2, tmp3, _MM_SHUFFLE(3,2,3,2)); __m512i out0123 = _mm512_shuffle_i64x2(out0415, out2637, _MM_SHUFFLE(2,0,2,0)); __m512i out4567 = _mm512_shuffle_i64x2(out0415, out2637, _MM_SHUFFLE(3,1,3,1)); __m512i out89AB = _mm512_shuffle_i64x2(out8C9D, outAEBF, _MM_SHUFFLE(2,0,2,0)); __m512i outCDEF = _mm512_shuffle_i64x2(out8C9D, outAEBF, _MM_SHUFFLE(3,1,3,1)); __m512i* dst_ = (__m512i*)dst; _mm512_storeu_si512(dst_+0, out0123); _mm512_storeu_si512(dst_+1, out4567); _mm512_storeu_si512(dst_+2, out89AB); _mm512_storeu_si512(dst_+3, outCDEF); } #endif #ifdef ADD # undef ADD # undef VAL # undef word_t # undef INPUT # undef LOAD #endif #ifdef F # undef F # undef G # undef H # undef I #endif #ifdef IOFFSET # undef IOFFSET #endif #undef INPUT #undef LOAD par2cmdline-turbo-1.5.0/parpar/hasher/md5mb-sve2.h000066400000000000000000000227001524160147200216420ustar00rootroot00000000000000 #if defined(__ARM_FEATURE_SVE2) && __BYTE_ORDER__ != __ORDER_BIG_ENDIAN__ #include // have found Clang 11 to mis-compile this, but works on 12 #if defined(__clang__) && __clang_major__ < 12 && defined(__OPTIMIZE__) HEDLEY_WARNING("Clang prior to version 12 may break SVE2 MD5 code"); #endif #define ADD(a, b) svadd_u32_x(svptrue_b32(), a, b) #define VAL svdup_n_u32 #define STATE_WORD_SIZE svcntb() #define word_t svuint32_t #define INPUT(k, set, ptr, offs, idx, var) svadd_n_u32_x(svptrue_b32(), var, k) #define LOAD INPUT #define LOAD_STATE(state, n) svld1_vnum_u32(svptrue_b32(), (const uint32_t*)state, n) #define SET_STATE(state, n, val) svst1_vnum_u32(svptrue_b32(), (uint32_t*)state, n, val) /* // if we want to try width specific implementations... #define LOAD4(set, ptr, offs, idx, var0, var1, var2, var3) { \ var0 = svld1_u32(svptrue_b32(), (uint32_t*)(ptr[0+set*4] + offs + idx*4)); \ var1 = svld1_u32(svptrue_b32(), (uint32_t*)(ptr[1+set*4] + offs + idx*4)); \ var2 = svld1_u32(svptrue_b32(), (uint32_t*)(ptr[2+set*4] + offs + idx*4)); \ var3 = svld1_u32(svptrue_b32(), (uint32_t*)(ptr[3+set*4] + offs + idx*4)); \ svuint32_t in0 = svzip1_u32(var0, var2); \ svuint32_t in1 = svzip2_u32(var0, var2); \ svuint32_t in2 = svzip1_u32(var1, var3); \ svuint32_t in3 = svzip2_u32(var1, var3); \ var0 = svzip1_u32(in0, in2); \ var1 = svzip2_u32(in0, in2); \ var2 = svzip1_u32(in1, in3); \ var3 = svzip2_u32(in1, in3); \ } #define LOAD8(set, ptr, offs, idx, var0, var1, var2, var3, var4, var5, var6, var7) { \ var0 = svld1_u32(svptrue_b32(), (uint32_t*)(ptr[0+set*8] + offs + idx*4)); \ var1 = svld1_u32(svptrue_b32(), (uint32_t*)(ptr[1+set*8] + offs + idx*4)); \ var2 = svld1_u32(svptrue_b32(), (uint32_t*)(ptr[2+set*8] + offs + idx*4)); \ var3 = svld1_u32(svptrue_b32(), (uint32_t*)(ptr[3+set*8] + offs + idx*4)); \ var4 = svld1_u32(svptrue_b32(), (uint32_t*)(ptr[4+set*8] + offs + idx*4)); \ var5 = svld1_u32(svptrue_b32(), (uint32_t*)(ptr[5+set*8] + offs + idx*4)); \ var6 = svld1_u32(svptrue_b32(), (uint32_t*)(ptr[6+set*8] + offs + idx*4)); \ var7 = svld1_u32(svptrue_b32(), (uint32_t*)(ptr[7+set*8] + offs + idx*4)); \ svuint32_t in0 = svzip1_u32(var0, var4); \ svuint32_t in1 = svzip2_u32(var0, var4); \ svuint32_t in2 = svzip1_u32(var1, var5); \ svuint32_t in3 = svzip2_u32(var1, var5); \ svuint32_t in4 = svzip1_u32(var2, var6); \ svuint32_t in5 = svzip2_u32(var2, var6); \ svuint32_t in6 = svzip1_u32(var3, var7); \ svuint32_t in7 = svzip2_u32(var3, var7); \ svuint32_t in0b = svzip1_u32(in0, in4); \ svuint32_t in1b = svzip2_u32(in0, in4); \ svuint32_t in2b = svzip1_u32(in1, in5); \ svuint32_t in3b = svzip2_u32(in1, in5); \ svuint32_t in4b = svzip1_u32(in2, in6); \ svuint32_t in5b = svzip2_u32(in2, in6); \ svuint32_t in6b = svzip1_u32(in3, in7); \ svuint32_t in7b = svzip2_u32(in3, in7); \ var0 = svzip1_u32(in0b, in4b); \ var1 = svzip2_u32(in0b, in4b); \ var2 = svzip1_u32(in1b, in5b); \ var3 = svzip2_u32(in1b, in5b); \ var4 = svzip1_u32(in2b, in6b); \ var5 = svzip2_u32(in2b, in6b); \ var6 = svzip1_u32(in3b, in7b); \ var7 = svzip2_u32(in3b, in7b); \ } #define LOAD16(set, ptr, offs, var0, var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15) { \ var0 = svld1_u32(svptrue_b32(), (uint32_t*)(ptr[0+set*16] + offs)); \ var1 = svld1_u32(svptrue_b32(), (uint32_t*)(ptr[1+set*16] + offs)); \ var2 = svld1_u32(svptrue_b32(), (uint32_t*)(ptr[2+set*16] + offs)); \ var3 = svld1_u32(svptrue_b32(), (uint32_t*)(ptr[3+set*16] + offs)); \ var4 = svld1_u32(svptrue_b32(), (uint32_t*)(ptr[4+set*16] + offs)); \ var5 = svld1_u32(svptrue_b32(), (uint32_t*)(ptr[5+set*16] + offs)); \ var6 = svld1_u32(svptrue_b32(), (uint32_t*)(ptr[6+set*16] + offs)); \ var7 = svld1_u32(svptrue_b32(), (uint32_t*)(ptr[7+set*16] + offs)); \ var8 = svld1_u32(svptrue_b32(), (uint32_t*)(ptr[8+set*16] + offs)); \ var9 = svld1_u32(svptrue_b32(), (uint32_t*)(ptr[9+set*16] + offs)); \ var10 = svld1_u32(svptrue_b32(), (uint32_t*)(ptr[10+set*16] + offs)); \ var11 = svld1_u32(svptrue_b32(), (uint32_t*)(ptr[11+set*16] + offs)); \ var12 = svld1_u32(svptrue_b32(), (uint32_t*)(ptr[12+set*16] + offs)); \ var13 = svld1_u32(svptrue_b32(), (uint32_t*)(ptr[13+set*16] + offs)); \ var14 = svld1_u32(svptrue_b32(), (uint32_t*)(ptr[14+set*16] + offs)); \ var15 = svld1_u32(svptrue_b32(), (uint32_t*)(ptr[15+set*16] + offs)); \ svuint32_t in0 = svzip1_u32(var0, var8); \ svuint32_t in1 = svzip2_u32(var0, var8); \ svuint32_t in2 = svzip1_u32(var1, var9); \ svuint32_t in3 = svzip2_u32(var1, var9); \ svuint32_t in4 = svzip1_u32(var2, var10); \ svuint32_t in5 = svzip2_u32(var2, var10); \ svuint32_t in6 = svzip1_u32(var3, var11); \ svuint32_t in7 = svzip2_u32(var3, var11); \ svuint32_t in8 = svzip1_u32(var4, var12); \ svuint32_t in9 = svzip2_u32(var4, var12); \ svuint32_t in10 = svzip1_u32(var5, var13); \ svuint32_t in11 = svzip2_u32(var5, var13); \ svuint32_t in12 = svzip1_u32(var6, var14); \ svuint32_t in13 = svzip2_u32(var6, var14); \ svuint32_t in14 = svzip1_u32(var7, var15); \ svuint32_t in15 = svzip2_u32(var7, var15); \ var0 = svzip1_u32(in0, in8); \ var1 = svzip2_u32(in0, in8); \ var2 = svzip1_u32(in1, in9); \ var3 = svzip2_u32(in1, in9); \ var4 = svzip1_u32(in2, in10); \ var5 = svzip2_u32(in2, in10); \ var6 = svzip1_u32(in3, in11); \ var7 = svzip2_u32(in3, in11); \ var8 = svzip1_u32(in4, in12); \ var9 = svzip2_u32(in4, in12); \ var10 = svzip1_u32(in5, in13); \ var11 = svzip2_u32(in5, in13); \ var12 = svzip1_u32(in6, in14); \ var13 = svzip2_u32(in6, in14); \ var14 = svzip1_u32(in7, in15); \ var15 = svzip2_u32(in7, in15); \ in0 = svzip1_u32(var0, var8); \ in1 = svzip2_u32(var0, var8); \ in2 = svzip1_u32(var1, var9); \ in3 = svzip2_u32(var1, var9); \ in4 = svzip1_u32(var2, var10); \ in5 = svzip2_u32(var2, var10); \ in6 = svzip1_u32(var3, var11); \ in7 = svzip2_u32(var3, var11); \ in8 = svzip1_u32(var4, var12); \ in9 = svzip2_u32(var4, var12); \ in10 = svzip1_u32(var5, var13); \ in11 = svzip2_u32(var5, var13); \ in12 = svzip1_u32(var6, var14); \ in13 = svzip2_u32(var6, var14); \ in14 = svzip1_u32(var7, var15); \ in15 = svzip2_u32(var7, var15); \ var0 = svzip1_u32(in0, in8); \ var1 = svzip2_u32(in0, in8); \ var2 = svzip1_u32(in1, in9); \ var3 = svzip2_u32(in1, in9); \ var4 = svzip1_u32(in2, in10); \ var5 = svzip2_u32(in2, in10); \ var6 = svzip1_u32(in3, in11); \ var7 = svzip2_u32(in3, in11); \ var8 = svzip1_u32(in4, in12); \ var9 = svzip2_u32(in4, in12); \ var10 = svzip1_u32(in5, in13); \ var11 = svzip2_u32(in5, in13); \ var12 = svzip1_u32(in6, in14); \ var13 = svzip2_u32(in6, in14); \ var14 = svzip1_u32(in7, in15); \ var15 = svzip2_u32(in7, in15); \ } */ // using gather #define LOAD2(set, ptr, offs, idx, var0, var1) { \ svuint64x2_t base = svld2_u64(svptrue_b64(), (const uint64_t*)(ptr + set*svcntw())); \ svuint32_t data0 = svreinterpret_u32_u64(svld1_gather_offset_u64(svptrue_b64(), svget2_u64(base, 0), offs + idx*4)); \ svuint32_t data1 = svreinterpret_u32_u64(svld1_gather_offset_u64(svptrue_b64(), svget2_u64(base, 1), offs + idx*4)); \ var0 = svtrn1_u32(data0, data1); \ var1 = svtrn2_u32(data0, data1); \ } #define ROTATE(a, r) svxar_n_u32(a, svdup_u32(0), 32-r) #define md5mb_regions_sve2 svcntw() #define md5mb_max_regions_sve2 64 #define md5mb_alignment_sve2 16 #define F(b,c,d) svbsl_u32(c, d, b) #define G(b,c,d) svbsl_u32(b, c, d) #define H(b,c,d) sveor3_u32(c, d, b) #define I(b,c,d) svnbsl_u32(c, sveor_u32_x(svptrue_b32(), c, d), b) #define _FN(f) f##_sve2 #include "md5mb-base.h" #define MD5X2 #include "md5mb-base.h" #undef MD5X2 #undef _FN #undef ROTATE #undef ADD #undef VAL #undef word_t #undef STATE_WORD_SIZE #undef INPUT #undef LOAD #undef LOAD4 #undef LOAD_STATE #undef SET_STATE #undef F #undef G #undef H #undef I static HEDLEY_ALWAYS_INLINE void md5_extract_mb_sve2(void* dst, void* state, int idx) { uint32_t* state_ = (uint32_t*)state; if(idx >= (int)svcntw()) { state_ += 4*svcntw(); idx -= svcntw(); } // re-arrange to pairs svuint64_t tmp0 = svreinterpret_u64_u32(svzip1_u32(svld1_u32(svptrue_b32(), state_), svld1_vnum_u32(svptrue_b32(), state_, 1))); svuint64_t tmp1 = svreinterpret_u64_u32(svzip2_u32(svld1_u32(svptrue_b32(), state_), svld1_vnum_u32(svptrue_b32(), state_, 1))); svuint64_t tmp2 = svreinterpret_u64_u32(svzip1_u32(svld1_vnum_u32(svptrue_b32(), state_, 2), svld1_vnum_u32(svptrue_b32(), state_, 3))); svuint64_t tmp3 = svreinterpret_u64_u32(svzip2_u32(svld1_vnum_u32(svptrue_b32(), state_, 2), svld1_vnum_u32(svptrue_b32(), state_, 3))); // construct target vector svuint32_t vect; switch(idx / (svcntw()/4)) { case 0: vect = svreinterpret_u32_u64(svzip1_u64(tmp0, tmp2)); break; case 1: vect = svreinterpret_u32_u64(svzip2_u64(tmp0, tmp2)); break; case 2: vect = svreinterpret_u32_u64(svzip1_u64(tmp1, tmp3)); break; case 3: vect = svreinterpret_u32_u64(svzip2_u64(tmp1, tmp3)); break; default: HEDLEY_UNREACHABLE(); } // store 128-bit part of target vector int subIdx = idx % (svcntw()/4); svbool_t mask = svcmpeq_n_u32(svptrue_b32(), svlsr_n_u32_x(svptrue_b32(), svindex_u32(0, 1), 2), subIdx ); svst1_u32(mask, (uint32_t*)dst - subIdx*4, vect); } static HEDLEY_ALWAYS_INLINE void md5_extract_all_mb_sve2(void* dst, void* state, int group) { uint32_t* state_ = (uint32_t*)state + group*(int)svcntb(); svst4_u32(svptrue_b32(), (uint32_t*)dst, svcreate4_u32( svld1_u32(svptrue_b32(), state_), svld1_vnum_u32(svptrue_b32(), state_, 1), svld1_vnum_u32(svptrue_b32(), state_, 2), svld1_vnum_u32(svptrue_b32(), state_, 3) )); } #endif par2cmdline-turbo-1.5.0/parpar/hasher/md5x2-arm-asm.h000066400000000000000000000244541524160147200222630ustar00rootroot00000000000000#include "../src/platform.h" #include "../src/stdint.h" #ifndef STR # define STR_HELPER(x) #x # define STR(x) STR_HELPER(x) #endif #ifndef UNUSED # define UNUSED(...) (void)(__VA_ARGS__) #endif // parent function which inlines this, may need to be marked as targeting ARM #if !defined(__aarch64__) && (!defined(__clang__) || (defined(__ARM_ARCH_ISA_THUMB) && __ARM_ARCH_ISA_THUMB < 2)) // GCC refuses to allow >9 registers in Thumb mode; Clang has no qualms, as long as it's Thumb2 # define _MD5x2_UPDATEFN_ATTRIB __attribute__((target("arm"))) #endif static HEDLEY_ALWAYS_INLINE void md5_process_block_x2_scalar(uint32_t* state, const uint8_t* const* HEDLEY_RESTRICT data, size_t offset) { UNUSED(offset); uint32_t A1 = state[0]; uint32_t B1 = state[1]; uint32_t C1 = state[2]; uint32_t D1 = state[3]; uint32_t A2 = state[4]; uint32_t B2 = state[5]; uint32_t C2 = state[6]; uint32_t D2 = state[7]; uint32_t tmp1, tmp2; #ifdef __aarch64__ # define SETI_L(dst, x) "mov %w[" dst "], #" STR(x) "\n" # define SETI_H(dst, x) "movk %w[" dst "], #" STR(x) ", lsl #16\n" # define REG(x) "%w[" STR(x) "]" # define ROR_ADD(A1, B1, A2, B2, R) \ "ror %w[" STR(A1) "], %w[" STR(A1) "], #" STR(R) "\n" \ "ror %w[" STR(A2) "], %w[" STR(A2) "], #" STR(R) "\n" \ "add %w[" STR(A1) "], %w[" STR(A1) "], %w[" STR(B1) "]\n" \ "add %w[" STR(A2) "], %w[" STR(A2) "], %w[" STR(B2) "]\n" #else # if defined(__armv7__) || defined(_M_ARM) || defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_8A__) || (defined(__ARM_ARCH) && __ARM_ARCH >= 7) # define SETI_L(dst, x) "movw %[" dst "], #" STR(x) "\n" # define SETI_H(dst, x) "movt %[" dst "], #" STR(x) "\n" # else # define SETI_L(dst, x) "mov %[" dst "], #" STR(x) " & 0xff\n orr %[" dst "], #" STR(x) " & 0xff00\n" # define SETI_H(dst, x) "orr %[" dst "], #(" STR(x) " & 0xff)<<16\n orr %[" dst "], #(" STR(x) " & 0xff00)<<16\n" # endif # define REG(x) "%[" STR(x) "]" # define ROR_ADD(A1, B1, A2, B2, R) \ "add %[" STR(A1) "], %[" STR(B1) "], %[" STR(A1) "], ror #" STR(R) "\n" \ "add %[" STR(A2) "], %[" STR(B2) "], %[" STR(A2) "], ror #" STR(R) "\n" #endif #if __BYTE_ORDER__ != __ORDER_BIG_ENDIAN__ # define LD2(NEXT_IN1, NEXT_IN2) \ "ldr " REG(TMP1) ", " NEXT_IN1 "\n" \ "ldr " REG(TMP2) ", " NEXT_IN2 "\n" #else // REV requires ARMv6 # define LD2(NEXT_IN1, NEXT_IN2) \ "ldr " REG(TMP1) ", " NEXT_IN1 "\n" \ "ldr " REG(TMP2) ", " NEXT_IN2 "\n" \ "rev " REG(TMP1) ", " REG(TMP1) "\n" \ "rev " REG(TMP2) ", " REG(TMP2) "\n" #endif #define ROUND_F(A1, B1, C1, D1, A2, B2, C2, D2, NEXT_IN1, NEXT_IN2, KL, KH, R) \ "add " REG(A1) ", " REG(A1) ", " REG(TMP1) "\n" \ SETI_L("TMP1", KL) \ "add " REG(A2) ", " REG(A2) ", " REG(TMP2) "\n" \ SETI_H("TMP1", KH) \ "eor " REG(TMP2) ", " REG(C2) ", " REG(D2) "\n" \ "add " REG(A1) ", " REG(A1) ", " REG(TMP1) "\n" \ "add " REG(A2) ", " REG(A2) ", " REG(TMP1) "\n" \ "eor " REG(TMP1) ", " REG(C1) ", " REG(D1) "\n" \ "and " REG(TMP2) ", " REG(TMP2) ", " REG(B2) "\n" \ "and " REG(TMP1) ", " REG(TMP1) ", " REG(B1) "\n" \ "eor " REG(TMP2) ", " REG(TMP2) ", " REG(D2) "\n" \ "eor " REG(TMP1) ", " REG(TMP1) ", " REG(D1) "\n" \ "add " REG(A2) ", " REG(A2) ", " REG(TMP2) "\n" \ "add " REG(A1) ", " REG(A1) ", " REG(TMP1) "\n" \ LD2(NEXT_IN1, NEXT_IN2) \ ROR_ADD(A1, B1, A2, B2, R) #define ROUND_H(A1, B1, C1, D1, A2, B2, C2, D2, NEXT_IN1, NEXT_IN2, KL, KH, R) \ "add " REG(A1) ", " REG(A1) ", " REG(TMP1) "\n" \ SETI_L("TMP1", KL) \ "add " REG(A2) ", " REG(A2) ", " REG(TMP2) "\n" \ SETI_H("TMP1", KH) \ "eor " REG(TMP2) ", " REG(C2) ", " REG(D2) "\n" \ "add " REG(A1) ", " REG(A1) ", " REG(TMP1) "\n" \ "add " REG(A2) ", " REG(A2) ", " REG(TMP1) "\n" \ "eor " REG(TMP1) ", " REG(C1) ", " REG(D1) "\n" \ "eor " REG(TMP2) ", " REG(TMP2) ", " REG(B2) "\n" \ "eor " REG(TMP1) ", " REG(TMP1) ", " REG(B1) "\n" \ "add " REG(A2) ", " REG(A2) ", " REG(TMP2) "\n" \ "add " REG(A1) ", " REG(A1) ", " REG(TMP1) "\n" \ LD2(NEXT_IN1, NEXT_IN2) \ ROR_ADD(A1, B1, A2, B2, R) #define ROUND_I(A1, B1, C1, D1, A2, B2, C2, D2, NEXT_IN1, NEXT_IN2, KL, KH, R) \ "add " REG(A1) ", " REG(A1) ", " REG(TMP1) "\n" \ SETI_L("TMP1", KL) \ "add " REG(A2) ", " REG(A2) ", " REG(TMP2) "\n" \ SETI_H("TMP1", KH) \ "bic " REG(TMP2) ", " REG(D2) ", " REG(B2) "\n" \ "add " REG(A1) ", " REG(A1) ", " REG(TMP1) "\n" \ "add " REG(A2) ", " REG(A2) ", " REG(TMP1) "\n" \ "bic " REG(TMP1) ", " REG(D1) ", " REG(B1) "\n" \ "eor " REG(TMP2) ", " REG(TMP2) ", " REG(C2) "\n" \ "eor " REG(TMP1) ", " REG(TMP1) ", " REG(C1) "\n" \ "sub " REG(A2) ", " REG(A2) ", " REG(TMP2) "\n" \ "sub " REG(A1) ", " REG(A1) ", " REG(TMP1) "\n" \ LD2(NEXT_IN1, NEXT_IN2) \ ROR_ADD(A1, B1, A2, B2, R) #define ROUND_I_LAST(A1, B1, C1, D1, A2, B2, C2, D2, KL, KH, R) \ "add " REG(A1) ", " REG(A1) ", " REG(TMP1) "\n" \ SETI_L("TMP1", KL) \ "add " REG(A2) ", " REG(A2) ", " REG(TMP2) "\n" \ SETI_H("TMP1", KH) \ "bic " REG(TMP2) ", " REG(D2) ", " REG(B2) "\n" \ "add " REG(A1) ", " REG(A1) ", " REG(TMP1) "\n" \ "add " REG(A2) ", " REG(A2) ", " REG(TMP1) "\n" \ "bic " REG(TMP1) ", " REG(D1) ", " REG(B1) "\n" \ "eor " REG(TMP2) ", " REG(TMP2) ", " REG(C2) "\n" \ "eor " REG(TMP1) ", " REG(TMP1) ", " REG(C1) "\n" \ "sub " REG(A2) ", " REG(A2) ", " REG(TMP2) "\n" \ "sub " REG(A1) ", " REG(A1) ", " REG(TMP1) "\n" \ ROR_ADD(A1, B1, A2, B2, R) #define ROUND_G(A1, B1, C1, D1, A2, B2, C2, D2, NEXT_IN1, NEXT_IN2, KL, KH, R) \ "add " REG(A1) ", " REG(A1) ", " REG(TMP1) "\n" \ SETI_L("TMP1", KL) \ "add " REG(A2) ", " REG(A2) ", " REG(TMP2) "\n" \ SETI_H("TMP1", KH) \ "bic " REG(TMP2) ", " REG(C2) ", " REG(D2) "\n" \ "add " REG(A1) ", " REG(A1) ", " REG(TMP1) "\n" \ "add " REG(A2) ", " REG(A2) ", " REG(TMP1) "\n" \ "bic " REG(TMP1) ", " REG(C1) ", " REG(D1) "\n" \ "add " REG(A2) ", " REG(A2) ", " REG(TMP2) "\n" \ "add " REG(A1) ", " REG(A1) ", " REG(TMP1) "\n" \ "and " REG(TMP2) ", " REG(B2) ", " REG(D2) "\n" \ "and " REG(TMP1) ", " REG(B1) ", " REG(D1) "\n" \ "add " REG(A2) ", " REG(A2) ", " REG(TMP2) "\n" \ "add " REG(A1) ", " REG(A1) ", " REG(TMP1) "\n" \ LD2(NEXT_IN1, NEXT_IN2) \ ROR_ADD(A1, B1, A2, B2, R) #define RF4(i0, i1, i2, i3, k0l, k0h, k1l, k1h, k2l, k2h, k3l, k3h) \ ROUND_F(A1, B1, C1, D1, A2, B2, C2, D2, "[%[i0], #" STR(i0) "]", "[%[i1], #" STR(i0) "]", k0l, k0h, 25) \ ROUND_F(D1, A1, B1, C1, D2, A2, B2, C2, "[%[i0], #" STR(i1) "]", "[%[i1], #" STR(i1) "]", k1l, k1h, 20) \ ROUND_F(C1, D1, A1, B1, C2, D2, A2, B2, "[%[i0], #" STR(i2) "]", "[%[i1], #" STR(i2) "]", k2l, k2h, 15) \ ROUND_F(B1, C1, D1, A1, B2, C2, D2, A2, "[%[i0], #" STR(i3) "]", "[%[i1], #" STR(i3) "]", k3l, k3h, 10) #define RG4(i0, i1, i2, i3, k0l, k0h, k1l, k1h, k2l, k2h, k3l, k3h) \ ROUND_G(A1, B1, C1, D1, A2, B2, C2, D2, "[%[i0], #" STR(i0) "]", "[%[i1], #" STR(i0) "]", k0l, k0h, 27) \ ROUND_G(D1, A1, B1, C1, D2, A2, B2, C2, "[%[i0], #" STR(i1) "]", "[%[i1], #" STR(i1) "]", k1l, k1h, 23) \ ROUND_G(C1, D1, A1, B1, C2, D2, A2, B2, "[%[i0], #" STR(i2) "]", "[%[i1], #" STR(i2) "]", k2l, k2h, 18) \ ROUND_G(B1, C1, D1, A1, B2, C2, D2, A2, "[%[i0], #" STR(i3) "]", "[%[i1], #" STR(i3) "]", k3l, k3h, 12) #define RH4(i0, i1, i2, i3, k0l, k0h, k1l, k1h, k2l, k2h, k3l, k3h) \ ROUND_H(A1, B1, C1, D1, A2, B2, C2, D2, "[%[i0], #" STR(i0) "]", "[%[i1], #" STR(i0) "]", k0l, k0h, 28) \ ROUND_H(D1, A1, B1, C1, D2, A2, B2, C2, "[%[i0], #" STR(i1) "]", "[%[i1], #" STR(i1) "]", k1l, k1h, 21) \ ROUND_H(C1, D1, A1, B1, C2, D2, A2, B2, "[%[i0], #" STR(i2) "]", "[%[i1], #" STR(i2) "]", k2l, k2h, 16) \ ROUND_H(B1, C1, D1, A1, B2, C2, D2, A2, "[%[i0], #" STR(i3) "]", "[%[i1], #" STR(i3) "]", k3l, k3h, 9) #define RI4(i0, i1, i2, i3, k0l, k0h, k1l, k1h, k2l, k2h, k3l, k3h) \ ROUND_I(A1, B1, C1, D1, A2, B2, C2, D2, "[%[i0], #" STR(i0) "]", "[%[i1], #" STR(i0) "]", k0l, k0h, 26) \ ROUND_I(D1, A1, B1, C1, D2, A2, B2, C2, "[%[i0], #" STR(i1) "]", "[%[i1], #" STR(i1) "]", k1l, k1h, 22) \ ROUND_I(C1, D1, A1, B1, C2, D2, A2, B2, "[%[i0], #" STR(i2) "]", "[%[i1], #" STR(i2) "]", k2l, k2h, 17) \ ROUND_I(B1, C1, D1, A1, B2, C2, D2, A2, "[%[i0], #" STR(i3) "]", "[%[i1], #" STR(i3) "]", k3l, k3h, 11) __asm__( "ldr " REG(TMP1) ", [%[i0]]\n" "ldr " REG(TMP2) ", [%[i1]]\n" #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ "rev " REG(TMP1) ", " REG(TMP1) "\n" "rev " REG(TMP2) ", " REG(TMP2) "\n" #endif RF4( 4, 8, 12, 16, 0xa478, 0xd76a, 0xb756, 0xe8c7, 0x70db, 0x2420, 0xceee, 0xc1bd) RF4(20, 24, 28, 32, 0x0faf, 0xf57c, 0xc62a, 0x4787, 0x4613, 0xa830, 0x9501, 0xfd46) RF4(36, 40, 44, 48, 0x98d8, 0x6980, 0xf7af, 0x8b44, 0x5bb1, 0xffff, 0xd7be, 0x895c) RF4(52, 56, 60, 4, 0x1122, 0x6b90, 0x7193, 0xfd98, 0x438e, 0xa679, 0x0821, 0x49b4) RG4(24, 44, 0, 20, 0x2562, 0xf61e, 0xb340, 0xc040, 0x5a51, 0x265e, 0xc7aa, 0xe9b6) RG4(40, 60, 16, 36, 0x105d, 0xd62f, 0x1453, 0x0244, 0xe681, 0xd8a1, 0xfbc8, 0xe7d3) RG4(56, 12, 32, 52, 0xcde6, 0x21e1, 0x07d6, 0xc337, 0x0d87, 0xf4d5, 0x14ed, 0x455a) RG4( 8, 28, 48, 20, 0xe905, 0xa9e3, 0xa3f8, 0xfcef, 0x02d9, 0x676f, 0x4c8a, 0x8d2a) RH4(32, 44, 56, 4, 0x3942, 0xfffa, 0xf681, 0x8771, 0x6122, 0x6d9d, 0x380c, 0xfde5) RH4(16, 28, 40, 52, 0xea44, 0xa4be, 0xcfa9, 0x4bde, 0x4b60, 0xf6bb, 0xbc70, 0xbebf) RH4( 0, 12, 24, 36, 0x7ec6, 0x289b, 0x27fa, 0xeaa1, 0x3085, 0xd4ef, 0x1d05, 0x0488) RH4(48, 60, 8, 0, 0xd039, 0xd9d4, 0x99e5, 0xe6db, 0x7cf8, 0x1fa2, 0x5665, 0xc4ac) RI4(28, 56, 20, 48, 0x2243, 0xf429, 0xff96, 0x432a, 0x23a6, 0xab94, 0xa038, 0xfc93) RI4(12, 40, 4, 32, 0x59c2, 0x655b, 0xcc91, 0x8f0c, 0xf47c, 0xffef, 0x5dd0, 0x8584) RI4(60, 24, 52, 16, 0x7e4e, 0x6fa8, 0xe6df, 0xfe2c, 0x4313, 0xa301, 0x11a0, 0x4e08) ROUND_I(A1, B1, C1, D1, A2, B2, C2, D2, "[%[i0], #44]", "[%[i1], #44]", 0x7e81, 0xf753, 26) ROUND_I(D1, A1, B1, C1, D2, A2, B2, C2, "[%[i0], #8]", "[%[i1], #8]", 0xf234, 0xbd3a, 22) ROUND_I(C1, D1, A1, B1, C2, D2, A2, B2, "[%[i0], #36]", "[%[i1], #36]", 0xd2ba, 0x2ad7, 17) ROUND_I_LAST(B1, C1, D1, A1, B2, C2, D2, A2, 0xd390, 0xeb86, 11) : [A1]"+&r"(A1), [B1]"+&r"(B1), [C1]"+&r"(C1), [D1]"+&r"(D1), [A2]"+&r"(A2), [B2]"+&r"(B2), [C2]"+&r"(C2), [D2]"+&r"(D2), [TMP1]"=&r"(tmp1), [TMP2]"=&r"(tmp2) : [i0]"r"(data[0]), [i1]"r"(data[1]) : ); state[0] += A1; state[1] += B1; state[2] += C1; state[3] += D1; state[4] += A2; state[5] += B2; state[6] += C2; state[7] += D2; #undef ROUND_F #undef ROUND_G #undef ROUND_H #undef ROUND_I #undef ROUND_I_LAST #undef RF4 #undef RG4 #undef RH4 #undef RI4 #undef SETI_L #undef SETI_H #undef ROR_ADD #undef REG } par2cmdline-turbo-1.5.0/parpar/hasher/md5x2-base.h000066400000000000000000000004551524160147200216330ustar00rootroot00000000000000 #define FNB(f) _FN(f##_x2) #include "md5-base.h" #undef FNB static HEDLEY_ALWAYS_INLINE void _FN(md5_update_block_x2)(void* state, const void* src1, const void* src2) { const uint8_t* const src[] = {(const uint8_t*)src1, (const uint8_t*)src2}; _FN(md5_process_block_x2)((word_t*)state, src, 0); } par2cmdline-turbo-1.5.0/parpar/hasher/md5x2-neon-asm.h000066400000000000000000000216011524160147200224320ustar00rootroot00000000000000#include "../src/platform.h" #ifndef STR # define STR_HELPER(x) #x # define STR(x) STR_HELPER(x) #endif #ifndef UNUSED # define UNUSED(...) (void)(__VA_ARGS__) #endif extern const uint32_t md5_constants_arm[64]; #ifdef __ARM_NEON static HEDLEY_ALWAYS_INLINE void md5_process_block_x2_neon(uint32x2_t* state, const uint8_t* const* HEDLEY_RESTRICT data, size_t offset) { UNUSED(offset); uint32x2_t A = state[0]; uint32x2_t B = state[1]; uint32x2_t C = state[2]; uint32x2_t D = state[3]; const uint32_t* k = md5_constants_arm; #ifdef __aarch64__ #define ROUND_X(A, B, I, R, L) \ "add %[" STR(A) "].2s, %[" STR(A) "].2s, " I ".2s\n" \ "add v20.2s, %[" STR(A) "].2s, v20.2s\n" \ "ushr %[" STR(A) "].2s, v20.2s, #" STR(R) "\n" \ "sli %[" STR(A) "].2s, v20.2s, #" STR(L) "\n" \ "add %[" STR(A) "].2s, %[" STR(A) "].2s, %[" STR(B) "].2s\n" \ #define ROUND_F(A, B, C, D, I, R, L) \ "mov v20.8b, %[" STR(D) "].8b\n" \ "bit v20.8b, %[" STR(C) "].8b, %[" STR(B) "].8b\n" \ ROUND_X(A, B, I, R, L) #define ROUND_G(A, B, C, D, I, R, L) \ "mov v20.8b, %[" STR(D) "].8b\n" \ "bsl v20.8b, %[" STR(B) "].8b, %[" STR(C) "].8b\n" \ ROUND_X(A, B, I, R, L) #define ROUND_H(A, B, C, D, I, R, L) \ "eor v20.8b, %[" STR(C) "].8b, %[" STR(D) "].8b\n" \ "eor v20.8b, v20.8b, %[" STR(B) "].8b\n" \ ROUND_X(A, B, I, R, L) #define ROUND_H16(A, B, C, D, I) \ "eor v20.8b, %[" STR(C) "].8b, %[" STR(D) "].8b\n" \ "eor v20.8b, v20.8b, %[" STR(B) "].8b\n" \ "add %[" STR(A) "].2s, %[" STR(A) "].2s, " I ".2s\n" \ "add %[" STR(A) "].2s, %[" STR(A) "].2s, v20.2s\n" \ "rev32 %[" STR(A) "].4h, %[" STR(A) "].4h\n" \ "add %[" STR(A) "].2s, %[" STR(A) "].2s, %[" STR(B) "].2s\n" #define ROUND_I(A, B, C, D, I, R, L) \ "eor v20.8b, %[" STR(C) "].8b, %[" STR(D) "].8b\n" \ "bit v20.8b, %[" STR(C) "].8b, %[" STR(B) "].8b\n" \ "add %[" STR(A) "].2s, %[" STR(A) "].2s, " I ".2s\n" \ "sub v20.2s, %[" STR(A) "].2s, v20.2s\n" \ "ushr %[" STR(A) "].2s, v20.2s, #" STR(R) "\n" \ "sli %[" STR(A) "].2s, v20.2s, #" STR(L) "\n" \ "add %[" STR(A) "].2s, %[" STR(A) "].2s, %[" STR(B) "].2s\n" \ // TODO: subtract 1 from constant above #define RF4(r1, r2) \ "ld4r {v16.2s, v17.2s, v18.2s, v19.2s}, [%[k]], #16\n" \ "add v16.2s, v16.2s, " r1 ".2s\n" \ ROUND_F(A, B, C, D, "v16", 25, 7) \ "ext v16.16b, " r1 ".16b, " r1 ".16b, #8\n" \ "add v17.2s, v16.2s, v17.2s\n" \ ROUND_F(D, A, B, C, "v17", 20, 12) \ "add v18.2s, v18.2s, " r2 ".2s\n" \ ROUND_F(C, D, A, B, "v18", 15, 17) \ "ext v16.16b, " r2 ".16b, " r2 ".16b, #8\n" \ "add v19.2s, v16.2s, v19.2s\n" \ ROUND_F(B, C, D, A, "v19", 10, 22) #define RG4(rs, r1, r2) \ "ld4r {v16.2s, v17.2s, v18.2s, v19.2s}, [%[k]], #16\n" \ "zip1 v16.2d, v16.2d, v17.2d\n" \ "add v16.4s, v16.4s, " rs ".4s\n" \ "ext v17.16b, v16.16b, v16.16b, #8\n" \ ROUND_G(A, B, C, D, "v17", 27, 5) \ "add v18.2s, v18.2s, " r1 ".2s\n" \ "ext v17.16b, " r2 ".16b, " r2 ".16b, #8\n" \ ROUND_G(D, A, B, C, "v18", 23, 9) \ "add v19.2s, v19.2s, v17.2s\n" \ ROUND_G(C, D, A, B, "v19", 18, 14) \ ROUND_G(B, C, D, A, "v16", 12, 20) #define RH4(r1, r2, r3, r4) \ "ld4r {v16.2s, v17.2s, v18.2s, v19.2s}, [%[k]], #16\n" \ "ext v21.16b, " r1 ".16b, " r1 ".16b, #8\n" \ "ext v22.16b, " r3 ".16b, " r3 ".16b, #8\n" \ "add v16.2s, v16.2s, v21.2s\n" \ "add v17.2s, v17.2s, " r2 ".2s\n" \ "add v18.2s, v18.2s, v22.2s\n" \ "add v19.2s, v19.2s, " r4 ".2s\n" \ ROUND_H(A, B, C, D, "v16", 28, 4) \ ROUND_H(D, A, B, C, "v17", 21, 11) \ ROUND_H16(C, D, A, B, "v18") \ ROUND_H(B, C, D, A, "v19", 9, 23) #define RI4(r1, r2, r3, r4) \ "ld4r {v16.2s, v17.2s, v18.2s, v19.2s}, [%[k]], #16\n" \ "ext v21.16b, " r2 ".16b, " r2 ".16b, #8\n" \ "ext v22.16b, " r4 ".16b, " r4 ".16b, #8\n" \ "add v16.2s, v16.2s, " r1 ".2s\n" \ "add v17.2s, v17.2s, v21.2s\n" \ "add v18.2s, v18.2s, " r3 ".2s\n" \ "add v19.2s, v19.2s, v22.2s\n" \ ROUND_I(A, B, C, D, "v16", 26, 6) \ ROUND_I(D, A, B, C, "v17", 22, 10) \ ROUND_I(C, D, A, B, "v18", 17, 15) \ ROUND_I(B, C, D, A, "v19", 11, 21) __asm__( "ld1 {v20.16b, v21.16b, v22.16b, v23.16b}, [%[i0]]\n" "ld1 {v28.16b, v29.16b, v30.16b, v31.16b}, [%[i1]]\n" "zip1 v24.4s, v20.4s, v28.4s\n" "zip2 v28.4s, v20.4s, v28.4s\n" RF4("v24", "v28") "zip1 v25.4s, v21.4s, v29.4s\n" "zip2 v29.4s, v21.4s, v29.4s\n" RF4("v25", "v29") "zip1 v26.4s, v22.4s, v30.4s\n" "zip2 v30.4s, v22.4s, v30.4s\n" RF4("v26", "v30") "zip1 v27.4s, v23.4s, v31.4s\n" "zip2 v31.4s, v23.4s, v31.4s\n" RF4("v27", "v31") RG4("v24", "v29", "v30") RG4("v25", "v30", "v31") RG4("v26", "v31", "v28") RG4("v27", "v28", "v29") RH4("v25", "v26", "v30", "v31") RH4("v24", "v25", "v29", "v30") RH4("v27", "v24", "v28", "v29") RH4("v26", "v27", "v31", "v28") RI4("v24", "v29", "v31", "v25") RI4("v27", "v28", "v30", "v24") RI4("v26", "v31", "v29", "v27") RI4("v25", "v30", "v28", "v26") : [A]"+&w"(A), [B]"+&w"(B), [C]"+&w"(C), [D]"+&w"(D), [k]"+r"(k) : [i0]"r"(data[0]), [i1]"r"(data[1]) : "v16", "v17", "v18", "v19", "v20", "v21", "v22", "v23", "v24", "v25", "v26", "v27", "v28", "v29", "v30", "v31" ); #else #define ROUND_X(A, B, I, R, L) \ "vadd.i32 %P[" STR(A) "], %P[" STR(A) "], " I "\n" \ "vadd.i32 d11, %P[" STR(A) "], d11\n" \ "vshr.u32 %P[" STR(A) "], d11, #" STR(R) "\n" \ "vsli.32 %P[" STR(A) "], d11, #" STR(L) "\n" \ "vadd.i32 %P[" STR(A) "], %P[" STR(A) "], %P[" STR(B) "]\n" \ #define ROUND_F(A, B, C, D, I, R, L) \ "vorr d11, %P[" STR(D) "], %P[" STR(D) "]\n" \ "vbit d11, %P[" STR(C) "], %P[" STR(B) "]\n" \ ROUND_X(A, B, I, R, L) #define ROUND_G(A, B, C, D, I, R, L) \ "vorr d11, %P[" STR(D) "], %P[" STR(D) "]\n" \ "vbsl d11, %P[" STR(B) "], %P[" STR(C) "]\n" \ ROUND_X(A, B, I, R, L) #define ROUND_H(A, B, C, D, I, R, L) \ "veor d11, %P[" STR(C) "], %P[" STR(D) "]\n" \ "veor d11, d11, %P[" STR(B) "]\n" \ ROUND_X(A, B, I, R, L) #define ROUND_H16(A, B, C, D, I) \ "veor d11, %P[" STR(C) "], %P[" STR(D) "]\n" \ "veor d11, d11, %P[" STR(B) "]\n" \ "vadd.i32 %P[" STR(A) "], %P[" STR(A) "], " I "\n" \ "vadd.i32 %P[" STR(A) "], %P[" STR(A) "], d11\n" \ "vrev32.i16 %P[" STR(A) "], %P[" STR(A) "]\n" \ "vadd.i32 %P[" STR(A) "], %P[" STR(A) "], %P[" STR(B) "]\n" #define ROUND_I(A, B, C, D, I, R, L) \ "veor d11, %P[" STR(C) "], %P[" STR(D) "]\n" \ "vbit d11, %P[" STR(C) "], %P[" STR(B) "]\n" \ "vadd.i32 %P[" STR(A) "], %P[" STR(A) "], " I "\n" \ "vsub.i32 d11, %P[" STR(A) "], d11\n" \ "vshr.u32 %P[" STR(A) "], d11, #" STR(R) "\n" \ "vsli.32 %P[" STR(A) "], d11, #" STR(L) "\n" \ "vadd.i32 %P[" STR(A) "], %P[" STR(A) "], %P[" STR(B) "]\n" \ #define RF4(r1, r2) \ "vld4.32 {d12[],d13[],d14[],d15[]}, [%[k] :128]!\n" \ "vzip.32 " r1 ", " r2 "\n" \ "vadd.i32 q6, q6, " r1 "\n" \ "vadd.i32 q7, q7, " r2 "\n" \ ROUND_F(A, B, C, D, "d12", 25, 7) \ ROUND_F(D, A, B, C, "d13", 20, 12) \ ROUND_F(C, D, A, B, "d14", 15, 17) \ ROUND_F(B, C, D, A, "d15", 10, 22) #define RG4(rs, r1, r2) \ "vld4.32 {d12[],d13[],d14[],d15[]}, [%[k] :128]!\n" \ "vadd.i32 q6, q6, " rs "\n" \ "vadd.i32 d14, d14, " r1 " \n" \ "vadd.i32 d15, d15, " r2 " \n" \ ROUND_G(A, B, C, D, "d13", 27, 5) \ ROUND_G(D, A, B, C, "d14", 23, 9) \ ROUND_G(C, D, A, B, "d15", 18, 14) \ ROUND_G(B, C, D, A, "d12", 12, 20) #define RH4(r1, r2, r3, r4) \ "vld4.32 {d12[],d13[],d14[],d15[]}, [%[k] :128]!\n" \ "vadd.i32 d12, d12, " r1 " \n" \ "vadd.i32 d13, d13, " r2 " \n" \ "vadd.i32 d14, d14, " r3 " \n" \ "vadd.i32 d15, d15, " r4 " \n" \ ROUND_H(A, B, C, D, "d12", 28, 4) \ ROUND_H(D, A, B, C, "d13", 21, 11) \ ROUND_H16(C, D, A, B, "d14") \ ROUND_H(B, C, D, A, "d15", 9, 23) #define RI4(r1, r2, r3, r4) \ "vld4.32 {d12[],d13[],d14[],d15[]}, [%[k] :128]!\n" \ "vadd.i32 d12, d12, " r1 " \n" \ "vadd.i32 d13, d13, " r2 " \n" \ "vadd.i32 d14, d14, " r3 " \n" \ "vadd.i32 d15, d15, " r4 " \n" \ ROUND_I(A, B, C, D, "d12", 26, 6) \ ROUND_I(D, A, B, C, "d13", 22, 10) \ ROUND_I(C, D, A, B, "d14", 17, 15) \ ROUND_I(B, C, D, A, "d15", 11, 21) __asm__( "vld1.8 {d16-d19}, [%[i0]]\n" "add r4, %[i0], #32\n" "vld1.8 {d24-d27}, [%[i1]]\n" "add r5, %[i1], #32\n" "vld1.8 {d20-d23}, [r4]\n" "vld1.8 {d28-d31}, [r5]\n" RF4("q8", "q12") RF4("q9", "q13") RF4("q10", "q14") RF4("q11", "q15") RG4("q8", "d26", "d29") RG4("q9", "d28", "d31") RG4("q10", "d30", "d25") RG4("q11", "d24", "d27") RH4("d19", "d20", "d29", "d30") RH4("d17", "d18", "d27", "d28") RH4("d23", "d16", "d25", "d26") RH4("d21", "d22", "d31", "d24") RI4("d16", "d27", "d30", "d19") RI4("d22", "d25", "d28", "d17") RI4("d20", "d31", "d26", "d23") RI4("d18", "d29", "d24", "d21") : [A]"+&w"(A), [B]"+&w"(B), [C]"+&w"(C), [D]"+&w"(D), [k]"+r"(k) : [i0]"r"(data[0]), [i1]"r"(data[1]) : "d11", "q6", "q7", "q8", "q9", "q10", "q11", "q12", "q13", "q14", "q15", "r4", "r5" ); #endif state[0] = vadd_u32(A, state[0]); state[1] = vadd_u32(B, state[1]); state[2] = vadd_u32(C, state[2]); state[3] = vadd_u32(D, state[3]); #undef ROUND_X #undef ROUND_F #undef ROUND_G #undef ROUND_H #undef ROUND_I #undef RF4 #undef RG4 #undef RH4 #undef RI4 } #endif par2cmdline-turbo-1.5.0/parpar/hasher/md5x2-neon.h000066400000000000000000000067301524160147200216620ustar00rootroot00000000000000 #include #if defined(__GNUC__) || defined(__clang__) # define MD5_USE_ASM # include "md5x2-neon-asm.h" #endif #ifdef __ARM_NEON static HEDLEY_ALWAYS_INLINE uint32x2_t vmake_u32le( uint32_t a, uint32_t b ) { # if defined(_MSC_VER) || __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ uint32_t t[] = {a,b}; return vreinterpret_u32_u8(vld1_u8((const uint8_t*)t)); # else return (uint32x2_t){a,b}; # endif } #define ADD vadd_u32 #define VAL vdup_n_u32 #define word_t uint32x2_t #define INPUT(k, set, ptr, offs, idx, var) ADD(var, VAL(k)) #define LOAD(k, set, ptr, offs, idx, var) ADD(var = vmake_u32le(((uint32_t*)(ptr[0]))[idx], ((uint32_t*)(ptr[1]))[idx]), VAL(k)) #define LOAD4(set, ptr, offs, idx, var0, var1, var2, var3) { \ uint32x4_t in0 = vreinterpretq_u32_u8(vld1q_u8((uint8_t*)ptr[0] + idx*4)); \ uint32x4_t in1 = vreinterpretq_u32_u8(vld1q_u8((uint8_t*)ptr[1] + idx*4)); \ uint32x4x2_t tmp = vzipq_u32(in0, in1); \ var0 = vget_low_u32(tmp.val[0]); \ var1 = vget_high_u32(tmp.val[0]); \ var2 = vget_low_u32(tmp.val[1]); \ var3 = vget_high_u32(tmp.val[1]); \ } #define ROTATE(a, r) r==16 ? vreinterpret_u32_u16(vrev32_u16(vreinterpret_u16_u32(a))) : vsli_n_u32(vshr_n_u32(a, 32-r), a, r) // this runs slower on Cortex A53/55/76 for ARMv7, marginally faster on A53/55 for AArch64, marginally slower on A76 for AArch64 /* #define _RX(f,a,b,c,d,ik,r) \ a = vadd_u32(a, ik); \ a = _ADDF(f, a, b, c, d); \ if(r == 16) \ a = vadd_u32(b, vreinterpret_u32_u16(vrev32_u16(vreinterpret_u16_u32(a)))); \ else \ a = vadd_u32( \ vsra_n_u32(b, a, 32-r), \ vshl_n_u32(a, r) \ ) */ #define md5_init_lane_x2_neon(state, idx) { \ uint32x2_t* state_ = (uint32x2_t*)state; \ state_[0] = vset_lane_u32(0x67452301L, state_[0], idx); \ state_[1] = vset_lane_u32(0xefcdab89L, state_[1], idx); \ state_[2] = vset_lane_u32(0x98badcfeL, state_[2], idx); \ state_[3] = vset_lane_u32(0x10325476L, state_[3], idx); \ } static HEDLEY_ALWAYS_INLINE void md5_init_x2_neon(void* state) { uint32x2_t* state_ = (uint32x2_t*)state; state_[0] = vdup_n_u32(0x67452301L); state_[1] = vdup_n_u32(0xefcdab89L); state_[2] = vdup_n_u32(0x98badcfeL); state_[3] = vdup_n_u32(0x10325476L); } static HEDLEY_ALWAYS_INLINE void md5_set_file_x2_neon(void* state, void* fileState) { uint32x2_t* state_ = (uint32x2_t*)state; uint32_t* src = (uint32_t*)fileState; state_[0] = vcreate_u32(((uint64_t)src[0] << 32) | 0x67452301L); state_[1] = vcreate_u32(((uint64_t)src[1] << 32) | 0xefcdab89L); state_[2] = vcreate_u32(((uint64_t)src[2] << 32) | 0x98badcfeL); state_[3] = vcreate_u32(((uint64_t)src[3] << 32) | 0x10325476L); } #define _FN(f) f##_neon #define F 1 #define G 2 #define H 3 #define I 4 #define ADDF(f,a,b,c,d) ( \ f==G ? ADD(a, vbsl_u32(d, b, c)) : ( \ f==I ? vsub_u32(a, vbsl_u32(b, c, veor_u32(c, d))) : ADD(a, f==F ? \ vbsl_u32(b, c, d) : \ veor_u32(veor_u32(d, c), b) \ ) \ ) \ ) #define IOFFSET -1 #include "md5x2-base.h" #undef ROTATE #undef _FN #undef ADD #undef VAL #undef word_t #undef INPUT #undef LOAD #undef LOAD4 #undef F #undef G #undef H #undef I #undef ADDF #undef IOFFSET static HEDLEY_ALWAYS_INLINE void md5_extract_x2_neon(void* dst, void* state, const int idx) { uint32x2_t* state_ = (uint32x2_t*)state; // re-arrange into two hashes uint32x2x2_t tmp1 = vzip_u32(state_[0], state_[1]); uint32x2x2_t tmp2 = vzip_u32(state_[2], state_[3]); vst1_u32((uint32_t*)dst, tmp1.val[idx]); vst1_u32((uint32_t*)dst + 2, tmp2.val[idx]); } #endif #ifdef MD5_USE_ASM # undef MD5_USE_ASM #endif par2cmdline-turbo-1.5.0/parpar/hasher/md5x2-scalar.h000066400000000000000000000033251524160147200221650ustar00rootroot00000000000000#include // memcpy+memset #include "../src/platform.h" #include "../src/stdint.h" #if (defined(__GNUC__) || defined(__clang__)) && defined(PLATFORM_AMD64) && defined(__OPTIMIZE__) # define MD5_USE_ASM # include "md5x2-x86-asm.h" #endif #if (defined(__GNUC__) || defined(__clang__)) && defined(PLATFORM_ARM) && defined(__OPTIMIZE__) \ && (defined(__aarch64__) || (__BYTE_ORDER__ != __ORDER_BIG_ENDIAN__) || (defined(__ARM_ARCH) && __ARM_ARCH >= 6) || defined(__armv7__) || defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_8A__) || defined(_M_ARM)) // disable ASM on ARMv5 or older if big-endian # define MD5_USE_ASM # include "md5x2-arm-asm.h" #endif static HEDLEY_ALWAYS_INLINE void md5_init_lane_x2_scalar(void* state, const int idx) { uint32_t* state_ = (uint32_t*)state; state_[0 + idx*4] = 0x67452301L; state_[1 + idx*4] = 0xefcdab89L; state_[2 + idx*4] = 0x98badcfeL; state_[3 + idx*4] = 0x10325476L; } static HEDLEY_ALWAYS_INLINE void md5_init_x2_scalar(void* state) { md5_init_lane_x2_scalar(state, 0); md5_init_lane_x2_scalar(state, 1); } static HEDLEY_ALWAYS_INLINE void md5_set_file_x2_scalar(void* state, void* fileState) { md5_init_lane_x2_scalar(state, 0); memcpy((uint32_t*)state + 4, fileState, 16); } #include "md5-scalar-base.h" #define _FN(f) f##_scalar #define MD5X2 #include "md5x2-base.h" #ifdef MD5X2 # undef MD5X2 #endif #undef _FN #undef ROTATE #undef ADD #undef VAL #undef word_t #undef INPUT #undef LOAD #undef F #undef G #undef H #undef I #undef ADDF #ifdef MD5_USE_ASM # undef MD5_USE_ASM #endif static HEDLEY_ALWAYS_INLINE void md5_extract_x2_scalar(void* dst, void* state, const int idx) { memcpy(dst, (uint32_t*)state + idx*4, 16); } par2cmdline-turbo-1.5.0/parpar/hasher/md5x2-sse-asm.h000066400000000000000000000364011524160147200222710ustar00rootroot00000000000000#include "../src/platform.h" #include "../src/stdint.h" #ifndef STR # define STR_HELPER(x) #x # define STR(x) STR_HELPER(x) #endif #ifndef UNUSED # define UNUSED(...) (void)(__VA_ARGS__) #endif extern const uint32_t md5_constants_sse[160]; #ifdef PLATFORM_AMD64 #define ASM_PARAMS_F(n, c0, c1) \ [A]"+&x"(A), [B]"+&x"(B), [C]"+&x"(C), [D]"+&x"(D), [TMPI1]"=&x"(tmpI1), [TMPI2]"=&x"(tmpI2), [TMPF1]"=&x"(tmpF1), [TMPF2]"=&x"(tmpF2), \ [cache0]"=&x"(cache##c0), [cache1]"=&x"(cache##c1) \ : \ [k0]"m"(md5_constants_sse[n*8]), [k1]"m"(md5_constants_sse[n*8+4]), [i0]"m"(_in[0][n]), [i1]"m"(_in[1][n]) : #define ASM_PARAMS(n) \ [A]"+&x"(A), [B]"+&x"(B), [C]"+&x"(C), [D]"+&x"(D), [TMPI1]"=&x"(tmpI1), [TMPI2]"=&x"(tmpI2), [TMPF1]"=&x"(tmpF1), [TMPF2]"=&x"(tmpF2) \ : [input0]"x"(cache0), [input1]"x"(cache1), [input2]"x"(cache2), [input3]"x"(cache3), [input4]"x"(cache4), [input5]"x"(cache5), [input6]"x"(cache6), [input7]"x"(cache7), \ [k0_0]"m"(md5_constants_sse[n+0]), [k1_0]"m"(md5_constants_sse[n+4]), [k0_1]"m"(md5_constants_sse[n+8]), [k1_1]"m"(md5_constants_sse[n+12]), [k0_2]"m"(md5_constants_sse[n+16]), [k1_2]"m"(md5_constants_sse[n+20]), [k0_3]"m"(md5_constants_sse[n+24]) , [k1_3]"m"(md5_constants_sse[n+28]) : #define FN_VARS \ UNUSED(offset); \ __m128i A = state[0]; \ __m128i B = state[1]; \ __m128i C = state[2]; \ __m128i D = state[3]; \ __m128i tmpI1, tmpI2, tmpF1, tmpF2; \ const __m128i* const* HEDLEY_RESTRICT _in = (const __m128i* const* HEDLEY_RESTRICT)data; \ __m128i cache0, cache1, cache2, cache3, cache4, cache5, cache6, cache7 #else #define ASM_PARAMS_F(n, c0, c1) \ [A]"+&x"(A), [B]"+&x"(B), [C]"+&x"(C), [D]"+&x"(D), [TMPI1]"=&x"(tmpI1), [TMPI2]"=&x"(tmpI2), [TMPF1]"=&x"(tmpF1), [TMPF2]"=&x"(tmpF2) \ : \ [k0]"m"(md5_constants_sse[n*8]), [k1]"m"(md5_constants_sse[n*8+4]), [i0]"m"(_in[0][n]), [i1]"m"(_in[1][n]), [scratch0]"m"(scratch[c0*4]), [scratch1]"m"(scratch[c1*4]) : #define ASM_PARAMS(n) \ [A]"+&x"(A), [B]"+&x"(B), [C]"+&x"(C), [D]"+&x"(D), [TMPI1]"=&x"(tmpI1), [TMPI2]"=&x"(tmpI2), [TMPF1]"=&x"(tmpF1), [TMPF2]"=&x"(tmpF2) \ : \ [k0_0]"m"(md5_constants_sse[n+0]), [k1_0]"m"(md5_constants_sse[n+4]), [k0_1]"m"(md5_constants_sse[n+8]), [k1_1]"m"(md5_constants_sse[n+12]), [k0_2]"m"(md5_constants_sse[n+16]), [k1_2]"m"(md5_constants_sse[n+20]), [k0_3]"m"(md5_constants_sse[n+24]) , [k1_3]"m"(md5_constants_sse[n+28]), \ [input0]"m"(scratch[0]), [input1]"m"(scratch[4]), [input2]"m"(scratch[8]), [input3]"m"(scratch[12]), [input4]"m"(scratch[16]), [input5]"m"(scratch[20]), [input6]"m"(scratch[24]), [input7]"m"(scratch[28]) : #define FN_VARS \ UNUSED(offset); \ __m128i A = state[0]; \ __m128i B = state[1]; \ __m128i C = state[2]; \ __m128i D = state[3]; \ __m128i tmpI1, tmpI2, tmpF1, tmpF2; \ const __m128i* const* HEDLEY_RESTRICT _in = (const __m128i* const* HEDLEY_RESTRICT)data; \ ALIGN_TO(16, uint32_t scratch[32]) #endif #ifdef __SSE2__ static HEDLEY_ALWAYS_INLINE void md5_process_block_x2_sse(__m128i* state, const uint8_t* const* HEDLEY_RESTRICT data, size_t offset) { FN_VARS; #define ROUND_X(A, B, I, R) \ "paddd " I ", %[" STR(A) "]\n" \ "paddd %[TMPF1], %[" STR(A) "]\n" \ "pshufd $0b10100000, %[" STR(A) "], %[" STR(A) "]\n" \ "psrlq $" STR(R) ", %[" STR(A) "]\n" \ "paddd %[" STR(B) "], %[" STR(A) "]\n" #ifdef PLATFORM_AMD64 #define READ4 \ "movdqu %[i0], %[cache0]\n" \ "movdqu %[i1], %[TMPI2]\n" \ "movdqa %[k0], %[TMPI1]\n" \ "movdqa %[cache0], %[cache1]\n" \ "punpcklqdq %[TMPI2], %[cache0]\n" \ "punpckhqdq %[TMPI2], %[cache1]\n" \ "movdqa %[k1], %[TMPI2]\n" \ "paddd %[cache0], %[TMPI1]\n" \ "paddd %[cache1], %[TMPI2]\n" #else #define READ4 \ "movdqu %[i0], %[TMPI1]\n" \ "movdqu %[i1], %[TMPF2]\n" \ "movdqa %[TMPI1], %[TMPI2]\n" \ "punpcklqdq %[TMPF2], %[TMPI1]\n" \ "punpckhqdq %[TMPF2], %[TMPI2]\n" \ "movaps %[TMPI1], %[scratch0]\n" \ "paddd %[k0], %[TMPI1]\n" \ "movaps %[TMPI2], %[scratch1]\n" \ "paddd %[k1], %[TMPI2]\n" #endif #define ROUND_F(A, B, C, D, I, R) \ "movdqa %[" STR(D) "], %[TMPF1]\n" \ "pxor %[" STR(C) "], %[TMPF1]\n" \ "pand %[" STR(B) "], %[TMPF1]\n" \ "pxor %[" STR(D) "], %[TMPF1]\n" \ ROUND_X(A, B, I, R) #define ROUND_H_FIRST(A, B, C, D, I, R) \ "movdqa %[" STR(D) "], %[TMPF1]\n" \ "pxor %[" STR(C) "], %[TMPF1]\n" \ "pxor %[" STR(B) "], %[TMPF1]\n" \ ROUND_X(A, B, I, R) #define ROUND_H(A, B, C, D, I, R) \ "pxor %[" STR(A) "], %[TMPF1]\n" \ "pxor %[" STR(B) "], %[TMPF1]\n" \ ROUND_X(A, B, I, R) #define ROUND_I(A, B, C, D, I, R) \ "movdqa %[" STR(D) "], %[TMPF1]\n" \ "pxor %[TMPF2], %[TMPF1]\n" \ "por %[" STR(B) "], %[TMPF1]\n" \ "pxor %[" STR(C) "], %[TMPF1]\n" \ ROUND_X(A, B, I, R) #define ROUND_G(A, B, C, D, I, R) \ "movdqa %[" STR(D) "], %[TMPF1]\n" \ "paddd " I ", %[" STR(A) "]\n" \ "pandn %[" STR(C) "], %[TMPF1]\n" \ "movdqa %[" STR(D) "], %[TMPF2]\n" \ "paddd %[TMPF1], %[" STR(A) "]\n" \ "pand %[" STR(B) "], %[TMPF2]\n" \ "paddd %[TMPF2], %[" STR(A) "]\n" \ "pshufd $0b10100000, %[" STR(A) "], %[" STR(A) "]\n" \ "psrlq $" STR(R) ", %[" STR(A) "]\n" \ "paddd %[" STR(B) "], %[" STR(A) "]\n" #define RF4(offs, r1, r2) __asm__( \ READ4 \ ROUND_F(A, B, C, D, "%[TMPI1]", 25) \ "psrlq $32, %[TMPI1]\n" \ ROUND_F(D, A, B, C, "%[TMPI1]", 20) \ ROUND_F(C, D, A, B, "%[TMPI2]", 15) \ "psrlq $32, %[TMPI2]\n" \ ROUND_F(B, C, D, A, "%[TMPI2]", 10) \ : ASM_PARAMS_F(offs, r1, r2)); #define RG4(offs, rs, r1, r2) \ "movaps %[input" STR(r1) "], %[TMPI2]\n" \ "movdqa %[k0_" STR(offs) "], %[TMPI1]\n" \ "shufps $0b11011000, %[input" STR(r2) "], %[TMPI2]\n" \ "paddd %[input" STR(rs) "], %[TMPI1]\n" \ "shufps $0b11011000, %[TMPI2], %[TMPI2]\n" \ "pshufd $0b10110001, %[TMPI1], %[TMPF2]\n" \ "paddd %[k1_" STR(offs) "], %[TMPI2]\n" \ \ ROUND_G(A, B, C, D, "%[TMPF2]", 27) \ ROUND_G(D, A, B, C, "%[TMPI2]", 23) \ "psrlq $32, %[TMPI2]\n" \ ROUND_G(C, D, A, B, "%[TMPI2]", 18) \ ROUND_G(B, C, D, A, "%[TMPI1]", 12) #define RH4(offs, ff, r1, r2, r3, r4) \ "movaps %[input" STR(r1) "], %[TMPI1]\n" \ "shufps $0b10001101, %[input" STR(r2) "], %[TMPI1]\n" \ "movaps %[input" STR(r3) "], %[TMPI2]\n" \ "shufps $0b01110010, %[TMPI1], %[TMPI1]\n" \ "shufps $0b10001101, %[input" STR(r4) "], %[TMPI2]\n" \ "shufps $0b01110010, %[TMPI2], %[TMPI2]\n" \ "paddd %[k0_" STR(offs) "], %[TMPI1]\n" \ "paddd %[k1_" STR(offs) "], %[TMPI2]\n" \ \ "pshufd $0b11110101, %[TMPI1], %[TMPF2]\n" \ ff(A, B, C, D, "%[TMPF2]", 28) \ ROUND_H(D, A, B, C, "%[TMPI1]", 21) \ "pshufd $0b11110101, %[TMPI2], %[TMPF2]\n" \ ROUND_H(C, D, A, B, "%[TMPF2]", 16) \ ROUND_H(B, C, D, A, "%[TMPI2]", 9) #define RI4(offs, r1, r2, r3, r4) \ "movaps %[input" STR(r1) "], %[TMPI1]\n" \ "movaps %[input" STR(r3) "], %[TMPI2]\n" \ "shufps $0b11011000, %[input" STR(r2) "], %[TMPI1]\n" \ "shufps $0b11011000, %[input" STR(r4) "], %[TMPI2]\n" \ "shufps $0b11011000, %[TMPI1], %[TMPI1]\n" \ "shufps $0b11011000, %[TMPI2], %[TMPI2]\n" \ "paddd %[k0_" STR(offs) "], %[TMPI1]\n" \ "paddd %[k1_" STR(offs) "], %[TMPI2]\n" \ \ ROUND_I(A, B, C, D, "%[TMPI1]", 26) \ "psrlq $32, %[TMPI1]\n" \ ROUND_I(D, A, B, C, "%[TMPI1]", 22) \ ROUND_I(C, D, A, B, "%[TMPI2]", 17) \ "psrlq $32, %[TMPI2]\n" \ ROUND_I(B, C, D, A, "%[TMPI2]", 11) RF4(0, 0, 1) RF4(1, 2, 3) RF4(2, 4, 5) RF4(3, 6, 7) __asm__( RG4(0, 0, 3, 5) RG4(1, 2, 5, 7) RG4(2, 4, 7, 1) RG4(3, 6, 1, 3) : ASM_PARAMS(32)); __asm__( RH4(0, ROUND_H_FIRST, 2, 4, 5, 7) RH4(1, ROUND_H, 0, 2, 3, 5) RH4(2, ROUND_H, 6, 0, 1, 3) RH4(3, ROUND_H, 4, 6, 7, 1) : ASM_PARAMS(64)); __asm__( "pcmpeqb %[TMPF2], %[TMPF2]\n" RI4(0, 0, 3, 7, 2) RI4(1, 6, 1, 5, 0) RI4(2, 4, 7, 3, 6) RI4(3, 2, 5, 1, 4) : ASM_PARAMS(96)); state[0] = _mm_add_epi32(A, state[0]); state[1] = _mm_add_epi32(B, state[1]); state[2] = _mm_add_epi32(C, state[2]); state[3] = _mm_add_epi32(D, state[3]); #undef ROUND_X #undef READ4 #undef ROUND_F #undef ROUND_G #undef ROUND_H #undef ROUND_H_FIRST #undef ROUND_I #undef RF4 #undef RG4 #undef RH4 #undef RI4 } #endif #ifdef __AVX__ static HEDLEY_ALWAYS_INLINE void md5_process_block_x2_avx(__m128i* state, const uint8_t* const* HEDLEY_RESTRICT data, size_t offset) { FN_VARS; // TODO: consider vpshufb for rotate by 16 #define ROUND_X(IA, A, B, I, R) \ "vpaddd " I ", %[" STR(IA) "], %[" STR(A) "]\n" \ "vpaddd %[TMPF1], %[" STR(A) "], %[" STR(A) "]\n" \ "vpshufd $0b10100000, %[" STR(A) "], %[" STR(A) "]\n" \ "vpsrlq $" STR(R) ", %[" STR(A) "], %[" STR(A) "]\n" \ "vpaddd %[" STR(B) "], %[" STR(A) "], %[" STR(A) "]\n" #ifdef PLATFORM_AMD64 #define READ4 \ "vmovdqu %[i0], %[cache0]\n" \ "vmovdqu %[i1], %[TMPI1]\n" \ "vpunpckhqdq %[TMPI1], %[cache0], %[cache1]\n" \ "vpunpcklqdq %[TMPI1], %[cache0], %[cache0]\n" \ "vpaddd %[k0], %[cache0], %[TMPI1]\n" \ "vpaddd %[k1], %[cache1], %[TMPI2]\n" #else #define READ4 \ "vmovdqu %[i0], %[TMPI1]\n" \ "vmovdqu %[i1], %[TMPF2]\n" \ "vpunpckhqdq %[TMPF2], %[TMPI1], %[TMPI2]\n" \ "vpunpcklqdq %[TMPF2], %[TMPI1], %[TMPI1]\n" \ "vmovdqa %[TMPI1], %[scratch0]\n" \ "vmovdqa %[TMPI2], %[scratch1]\n" \ "vpaddd %[k0], %[TMPI1], %[TMPI1]\n" \ "vpaddd %[k1], %[TMPI2], %[TMPI2]\n" #endif #define ROUND_F(A, B, C, D, I, R) \ "vpxor %[" STR(D) "], %[" STR(C) "], %[TMPF1]\n" \ "vpand %[" STR(B) "], %[TMPF1], %[TMPF1]\n" \ "vpxor %[" STR(D) "], %[TMPF1], %[TMPF1]\n" \ ROUND_X(A, A, B, I, R) #define ROUND_H(A, B, C, D, I, R) \ "vpxor %[" STR(D) "], %[" STR(C) "], %[TMPF1]\n" \ "vpxor %[" STR(B) "], %[TMPF1], %[TMPF1]\n" \ ROUND_X(A, A, B, I, R) #define ROUND_I(A, B, C, D, I, R) \ "vpandn %[" STR(D) "], %[" STR(B) "], %[TMPF1]\n" \ "vpaddd " I ", %[" STR(A) "], %[" STR(A) "]\n" \ "vpxor %[" STR(C) "], %[TMPF1], %[TMPF1]\n" \ "vpsubd %[TMPF1], %[" STR(A) "], %[" STR(A) "]\n" \ "vpshufd $0b10100000, %[" STR(A) "], %[" STR(A) "]\n" \ "vpsrlq $" STR(R) ", %[" STR(A) "], %[" STR(A) "]\n" \ "vpaddd %[" STR(B) "], %[" STR(A) "], %[" STR(A) "]\n" #define ROUND_G(A, B, C, D, I, R) \ "vpaddd " I ", %[" STR(A) "], %[" STR(A) "]\n" \ "vpandn %[" STR(C) "], %[" STR(D) "], %[TMPF1]\n" \ "vpaddd %[TMPF1], %[" STR(A) "], %[" STR(A) "]\n" \ "vpand %[" STR(B) "], %[" STR(D) "], %[TMPF1]\n" \ "vpaddd %[TMPF1], %[" STR(A) "], %[" STR(A) "]\n" \ "vpshufd $0b10100000, %[" STR(A) "], %[" STR(A) "]\n" \ "vpsrlq $" STR(R) ", %[" STR(A) "], %[" STR(A) "]\n" \ "vpaddd %[" STR(B) "], %[" STR(A) "], %[" STR(A) "]\n" #define RF4(offs, r1, r2) __asm__( \ READ4 \ ROUND_F(A, B, C, D, "%[TMPI1]", 25) \ "vpsrlq $32, %[TMPI1], %[TMPI1]\n" \ ROUND_F(D, A, B, C, "%[TMPI1]", 20) \ ROUND_F(C, D, A, B, "%[TMPI2]", 15) \ "vpsrlq $32, %[TMPI2], %[TMPI2]\n" \ ROUND_F(B, C, D, A, "%[TMPI2]", 10) \ : ASM_PARAMS_F(offs, r1, r2)); // BLENDPS is faster than PBLENDW on Haswell and later, no difference elsewhere #ifdef PLATFORM_AMD64 #define BLENDD(r1, r2, target) \ "vblendps $0b1010, %[input" STR(r2) "], %[input" STR(r1) "], " target "\n" #define G_ADDS(offs, r) "vpaddd %[k0_" STR(offs) "], %[input" STR(r) "], %[TMPI1]\n" #else #define BLENDD(r1, r2, target) \ "vmovdqa %[input" STR(r1) "], " target "\n" \ "vblendps $0b1010, %[input" STR(r2) "], " target ", " target "\n" #define G_ADDS(offs, r) \ "vmovdqa %[input" STR(r) "], %[TMPI1]\n" \ "vpaddd %[k0_" STR(offs) "], %[TMPI1], %[TMPI1]\n" #endif #define RG4(offs, rs, r1, r2) \ BLENDD(r1, r2, "%[TMPI2]") \ G_ADDS(offs, rs) \ "vpaddd %[k1_" STR(offs) "], %[TMPI2], %[TMPI2]\n" \ "vpsrlq $32, %[TMPI1], %[TMPF2]\n" \ \ ROUND_G(A, B, C, D, "%[TMPF2]", 27) \ ROUND_G(D, A, B, C, "%[TMPI2]", 23) \ "vpsrlq $32, %[TMPI2], %[TMPI2]\n" \ ROUND_G(C, D, A, B, "%[TMPI2]", 18) \ ROUND_G(B, C, D, A, "%[TMPI1]", 12) #define RH4(offs, ff, r1, r2, r3, r4) \ BLENDD(r2, r1, "%[TMPI1]") \ BLENDD(r4, r3, "%[TMPI2]") \ "vpaddd %[k0_" STR(offs) "], %[TMPI1], %[TMPI1]\n" \ "vpaddd %[k1_" STR(offs) "], %[TMPI2], %[TMPI2]\n" \ \ "vpsrlq $32, %[TMPI1], %[TMPF2]\n" \ ff(A, B, C, D, "%[TMPF2]", 28) \ ROUND_H(D, A, B, C, "%[TMPI1]", 21) \ "vpsrlq $32, %[TMPI2], %[TMPF2]\n" \ ROUND_H(C, D, A, B, "%[TMPF2]", 16) \ ROUND_H(B, C, D, A, "%[TMPI2]", 9) #define RI4(offs, r1, r2, r3, r4) \ BLENDD(r1, r2, "%[TMPI1]") \ BLENDD(r3, r4, "%[TMPI2]") \ "vpaddd %[k0_" STR(offs) "], %[TMPI1], %[TMPI1]\n" \ "vpaddd %[k1_" STR(offs) "], %[TMPI2], %[TMPI2]\n" \ \ ROUND_I(A, B, C, D, "%[TMPI1]", 26) \ "vpsrlq $32, %[TMPI1], %[TMPI1]\n" \ ROUND_I(D, A, B, C, "%[TMPI1]", 22) \ ROUND_I(C, D, A, B, "%[TMPI2]", 17) \ "vpsrlq $32, %[TMPI2], %[TMPI2]\n" \ ROUND_I(B, C, D, A, "%[TMPI2]", 11) RF4(0, 0, 1) RF4(1, 2, 3) RF4(2, 4, 5) RF4(3, 6, 7) __asm__( RG4(0, 0, 3, 5) RG4(1, 2, 5, 7) RG4(2, 4, 7, 1) RG4(3, 6, 1, 3) : ASM_PARAMS(32)); __asm__( RH4(0, ROUND_H, 2, 4, 5, 7) RH4(1, ROUND_H, 0, 2, 3, 5) RH4(2, ROUND_H, 6, 0, 1, 3) RH4(3, ROUND_H, 4, 6, 7, 1) : ASM_PARAMS(64)); __asm__( RI4(0, 0, 3, 7, 2) RI4(1, 6, 1, 5, 0) RI4(2, 4, 7, 3, 6) RI4(3, 2, 5, 1, 4) : ASM_PARAMS(128)); // use I-1 instead of I constants state[0] = _mm_add_epi32(A, state[0]); state[1] = _mm_add_epi32(B, state[1]); state[2] = _mm_add_epi32(C, state[2]); state[3] = _mm_add_epi32(D, state[3]); #undef ROUND_X #undef ROUND_F #undef ROUND_G #undef ROUND_H #undef ROUND_I #undef BLENDD } #endif #ifdef __AVX512VL__ static HEDLEY_ALWAYS_INLINE void md5_process_block_x2_avx512(__m128i* state, const uint8_t* const* HEDLEY_RESTRICT data, size_t offset) { FN_VARS; #define ROUND_X(IA, A, B, I, R) \ "vpaddd " I ", %[" STR(IA) "], %[" STR(A) "]\n" \ "vpaddd %[TMPF1], %[" STR(A) "], %[" STR(A) "]\n" \ "vprord $" STR(R) ", %[" STR(A) "], %[" STR(A) "]\n" \ "vpaddd %[" STR(B) "], %[" STR(A) "], %[" STR(A) "]\n" #define ROUND_F(A, B, C, D, I, R) \ "vmovdqa %[" STR(D) "], %[TMPF1]\n" \ "vpternlogd $0xD8, %[" STR(B) "], %[" STR(C) "], %[TMPF1]\n" \ ROUND_X(A, A, B, I, R) #define ROUND_G(A, B, C, D, I, R) \ "vmovdqa %[" STR(D) "], %[TMPF1]\n" \ "vpternlogd $0xAC, %[" STR(B) "], %[" STR(C) "], %[TMPF1]\n" \ ROUND_X(A, A, B, I, R) #define ROUND_H_FIRST(A, B, C, D, I, R) \ "vmovdqa %[" STR(D) "], %[TMPF1]\n" \ "vpternlogd $0x96, %[" STR(B) "], %[" STR(C) "], %[TMPF1]\n" \ ROUND_X(A, A, B, I, R) #define ROUND_H(A, B, C, D, I, R) \ "vpternlogd $0x96, %[" STR(B) "], %[" STR(A) "], %[TMPF1]\n" \ ROUND_X(A, A, B, I, R) #define ROUND_I(A, B, C, D, I, R) \ "vmovdqa %[" STR(D) "], %[TMPF1]\n" \ "vpternlogd $0x63, %[" STR(B) "], %[" STR(C) "], %[TMPF1]\n" \ ROUND_X(A, A, B, I, R) #ifdef PLATFORM_AMD64 #define BLENDD(r1, r2, target) \ "vpblendd $0b1010, %[input" STR(r2) "], %[input" STR(r1) "], " target "\n" #else #define BLENDD(r1, r2, target) \ "vmovdqa %[input" STR(r1) "], " target "\n" \ "vpblendd $0b1010, %[input" STR(r2) "], " target ", " target "\n" #endif RF4(0, 0, 1) RF4(1, 2, 3) RF4(2, 4, 5) RF4(3, 6, 7) __asm__( RG4(0, 0, 3, 5) RG4(1, 2, 5, 7) RG4(2, 4, 7, 1) RG4(3, 6, 1, 3) : ASM_PARAMS(32)); __asm__( RH4(0, ROUND_H_FIRST, 2, 4, 5, 7) RH4(1, ROUND_H, 0, 2, 3, 5) RH4(2, ROUND_H, 6, 0, 1, 3) RH4(3, ROUND_H, 4, 6, 7, 1) : ASM_PARAMS(64)); __asm__( RI4(0, 0, 3, 7, 2) RI4(1, 6, 1, 5, 0) RI4(2, 4, 7, 3, 6) RI4(3, 2, 5, 1, 4) : ASM_PARAMS(96)); state[0] = _mm_add_epi32(A, state[0]); state[1] = _mm_add_epi32(B, state[1]); state[2] = _mm_add_epi32(C, state[2]); state[3] = _mm_add_epi32(D, state[3]); #undef ROUND_X #undef ROUND_F #undef ROUND_G #undef ROUND_H #undef ROUND_H_FIRST #undef ROUND_I #undef BLENDD } #endif #ifdef __AVX__ #undef RF4 #undef RG4 #undef RH4 #undef RI4 #undef READ4 #undef G_ADDS #endif #undef ASM_PARAMS_F #undef ASM_PARAMS #undef FN_VARS par2cmdline-turbo-1.5.0/parpar/hasher/md5x2-sse.h000066400000000000000000000124141524160147200215110ustar00rootroot00000000000000 #if (defined(__GNUC__) || defined(__clang__)) && defined(__OPTIMIZE__) # define MD5_USE_ASM # include "md5x2-sse-asm.h" #endif #define ADD _mm_add_epi32 #define VAL _mm_set1_epi32 #define word_t __m128i #define INPUT(k, set, ptr, offs, idx, var) ADD(var, VAL(k)) #define LOAD INPUT #define LOAD4(set, ptr, offs, idx, var0, var1, var2, var3) { \ __m128i in0 = _mm_loadu_si128((__m128i*)(ptr[0] + idx*4)); \ __m128i in1 = _mm_loadu_si128((__m128i*)(ptr[1] + idx*4)); \ var0 = _mm_unpacklo_epi64(in0, in1); \ var1 = _mm_shuffle_epi32(var0, _MM_SHUFFLE(2,3,0,1)); \ var2 = _mm_unpackhi_epi64(in0, in1); \ var3 = _mm_shuffle_epi32(var2, _MM_SHUFFLE(2,3,0,1)); \ } #ifdef __SSE2__ #include #define md5_init_lane_x2_sse(state, idx) { \ __m128i* state_ = (__m128i*)state; \ state_[0] = _mm_insert_epi16(state_[0], 0x2301, idx*4); \ state_[0] = _mm_insert_epi16(state_[0], 0x6745, idx*4 + 1); \ state_[1] = _mm_insert_epi16(state_[1], 0xab89, idx*4); \ state_[1] = _mm_insert_epi16(state_[1], 0xefcd, idx*4 + 1); \ state_[2] = _mm_insert_epi16(state_[2], 0xdcfe, idx*4); \ state_[2] = _mm_insert_epi16(state_[2], 0x98ba, idx*4 + 1); \ state_[3] = _mm_insert_epi16(state_[3], 0x5476, idx*4); \ state_[3] = _mm_insert_epi16(state_[3], 0x1032, idx*4 + 1); \ } static HEDLEY_ALWAYS_INLINE void md5_init_x2_sse(void* state) { __m128i* state_ = (__m128i*)state; __m128i init = _mm_set_epi32( 0x10325476L, 0x98badcfeL, 0xefcdab89L, 0x67452301L ); state_[0] = _mm_shuffle_epi32(init, _MM_SHUFFLE(0,0,0,0)); //_mm_unpacklo_epi64(init, init); state_[1] = _mm_shuffle_epi32(init, _MM_SHUFFLE(1,1,1,1)); state_[2] = _mm_unpackhi_epi64(init, init); state_[3] = _mm_shuffle_epi32(init, _MM_SHUFFLE(3,3,3,3)); } static HEDLEY_ALWAYS_INLINE void md5_set_file_x2_sse(void* state, void* fileState) { __m128i* state_ = (__m128i*)state; __m128i init = _mm_set_epi32( 0x10325476L, 0x98badcfeL, 0xefcdab89L, 0x67452301L ); __m128i file = _mm_loadu_si128((__m128i*)fileState); state_[0] = _mm_unpacklo_epi64(init, file); state_[1] = _mm_srli_epi64(state_[0], 32); state_[2] = _mm_unpackhi_epi64(init, file); state_[3] = _mm_srli_epi64(state_[2], 32); } // simulate a 32b rotate by duplicating lanes and doing a single 64b shift #define ROTATE(a, r) _mm_srli_epi64(_mm_shuffle_epi32(a, _MM_SHUFFLE(2,2,0,0)), 32-r) #define _FN(f) f##_sse #define F 1 #define G 2 #define H 3 #define I 4 // this is defined to allow a special sequence for the 'G' function - essentially, the usual bitwise OR can be replaced with an ADD, and re-ordering can be done to slightly defer the dependency on the 'b' input #define ADDF(f,a,b,c,d) ( \ f==G ? ADD(ADD(_mm_andnot_si128(d, c), a), _mm_and_si128(d, b)) : ADD(a, \ f==F ? _mm_xor_si128(_mm_and_si128(_mm_xor_si128(c, d), b), d) : ( \ f==H ? _mm_xor_si128(_mm_xor_si128(d, c), b) : \ _mm_xor_si128(_mm_or_si128(_mm_xor_si128(d, _mm_set1_epi8(-1)), b), c) \ ) \ ) \ ) #include "md5x2-base.h" #undef _FN static HEDLEY_ALWAYS_INLINE void md5_extract_x2_sse(void* dst, void* state, const int idx) { __m128* state_ = (__m128*)state; // re-arrange to AABB, CCDD __m128 tmp1 = _mm_shuffle_ps(state_[0], state_[1], _MM_SHUFFLE(2,0,2,0)); __m128 tmp2 = _mm_shuffle_ps(state_[2], state_[3], _MM_SHUFFLE(2,0,2,0)); if(idx == 0) { _mm_storeu_ps((float*)dst, _mm_shuffle_ps(tmp1, tmp2, _MM_SHUFFLE(2,0,2,0))); } else { _mm_storeu_ps((float*)dst, _mm_shuffle_ps(tmp1, tmp2, _MM_SHUFFLE(3,1,3,1))); } } #endif #ifdef __AVX__ #define md5_init_lane_x2_avx(state, idx) { \ __m128i* state_ = (__m128i*)state; \ state_[0] = _mm_insert_epi32(state_[0], 0x67452301L, idx*2); \ state_[1] = _mm_insert_epi32(state_[1], 0xefcdab89L, idx*2); \ state_[2] = _mm_insert_epi32(state_[2], 0x98badcfeL, idx*2); \ state_[3] = _mm_insert_epi32(state_[3], 0x10325476L, idx*2); \ } #define md5_init_x2_avx md5_init_x2_sse #define md5_set_file_x2_avx md5_set_file_x2_sse // TODO: consider using PSHUFB for rotate by 16 #undef ADDF #define ADDF(f,a,b,c,d) ( \ f==G ? ADD(ADD(_mm_andnot_si128(d, c), a), _mm_and_si128(d, b)) : ( \ f==I ? _mm_sub_epi32(a, _mm_xor_si128(c, _mm_andnot_si128(b, d))) : ADD(a, f==F ? \ _mm_xor_si128(_mm_and_si128(_mm_xor_si128(c, d), b), d) : \ _mm_xor_si128(_mm_xor_si128(d, c), b) \ ) \ ) \ ) #ifdef IOFFSET # undef IOFFSET #endif #define IOFFSET -1 # define _FN(f) f##_avx # include "md5x2-base.h" # undef _FN # define md5_extract_x2_avx md5_extract_x2_sse #endif #ifdef ROTATE # undef ROTATE #endif #ifdef ADDF # undef ADDF #endif #ifdef __AVX512VL__ #include #define md5_init_lane_x2_avx512 md5_init_lane_x2_avx #define md5_init_x2_avx512 md5_init_x2_avx #define md5_set_file_x2_avx512 md5_set_file_x2_avx #define ROTATE _mm_rol_epi32 #define _FN(f) f##_avx512 #undef F #undef G #undef H #undef I # define F(b,c,d) _mm_ternarylogic_epi32(d,c,b,0xD8) # define G(b,c,d) _mm_ternarylogic_epi32(d,c,b,0xAC) # define H(b,c,d) _mm_ternarylogic_epi32(d,c,b,0x96) # define I(b,c,d) _mm_ternarylogic_epi32(d,c,b,0x63) # ifdef IOFFSET # undef IOFFSET # endif #include "md5x2-base.h" #undef _FN #undef ROTATE #define md5_extract_x2_avx512 md5_extract_x2_sse #endif #undef ADD #undef VAL #undef word_t #undef INPUT #undef LOAD #undef LOAD4 #ifdef F # undef F # undef G # undef H # undef I #endif #ifdef IOFFSET # undef IOFFSET #endif #ifdef MD5_USE_ASM # undef MD5_USE_ASM #endif par2cmdline-turbo-1.5.0/parpar/hasher/md5x2-x86-asm.h000066400000000000000000000224331524160147200221240ustar00rootroot00000000000000#include "../src/platform.h" #include "../src/stdint.h" #ifndef STR # define STR_HELPER(x) #x # define STR(x) STR_HELPER(x) #endif #ifndef UNUSED # define UNUSED(...) (void)(__VA_ARGS__) #endif static HEDLEY_ALWAYS_INLINE void md5_process_block_x2_scalar(uint32_t* state, const uint8_t* const* HEDLEY_RESTRICT data, size_t offset) { UNUSED(offset); uint32_t A1 = state[0]; uint32_t B1 = state[1]; uint32_t C1 = state[2]; uint32_t D1 = state[3]; uint32_t A2 = state[4]; uint32_t B2 = state[5]; uint32_t C2 = state[6]; uint32_t D2 = state[7]; uintptr_t tmp1, tmp2; const uint32_t* const* HEDLEY_RESTRICT _data = (const uint32_t* const* HEDLEY_RESTRICT)data; #define ROUND_F(A1, B1, C1, D1, A2, B2, C2, D2, NEXT_IN1, NEXT_IN2, K, R) \ "movl %k[" STR(D1) "], %k[TMP1]\n" \ "movl %k[" STR(D2) "], %k[TMP2]\n" \ "addl $" STR(K) ", %k[" STR(A1) "]\n" \ "addl $" STR(K) ", %k[" STR(A2) "]\n" \ "xorl %k[" STR(C1) "], %k[TMP1]\n" \ "xorl %k[" STR(C2) "], %k[TMP2]\n" \ "andl %k[" STR(B1) "], %k[TMP1]\n" \ "andl %k[" STR(B2) "], %k[TMP2]\n" \ "xorl %k[" STR(D1) "], %k[TMP1]\n" \ "xorl %k[" STR(D2) "], %k[TMP2]\n" \ "addl " NEXT_IN1 ", %k[" STR(D1) "]\n" \ "addl " NEXT_IN2 ", %k[" STR(D2) "]\n" \ "addl %k[TMP1], %k[" STR(A1) "]\n" \ "addl %k[TMP2], %k[" STR(A2) "]\n" \ "roll $" STR(R) ", %k[" STR(A1) "]\n" \ "roll $" STR(R) ", %k[" STR(A2) "]\n" \ "addl %k[" STR(B1) "], %k[" STR(A1) "]\n" \ "addl %k[" STR(B2) "], %k[" STR(A2) "]\n" // can't use H shortcut because D input is updated early #define ROUND_H(A1, B1, C1, D1, A2, B2, C2, D2, NEXT_IN1, NEXT_IN2, K, R) \ "movl %k[" STR(D1) "], %k[TMP1]\n" \ "movl %k[" STR(D2) "], %k[TMP2]\n" \ "addl $" STR(K) ", %k[" STR(A1) "]\n" \ "addl $" STR(K) ", %k[" STR(A2) "]\n" \ "xorl %k[" STR(C1) "], %k[TMP1]\n" \ "xorl %k[" STR(C2) "], %k[TMP2]\n" \ "addl " NEXT_IN1 ", %k[" STR(D1) "]\n" \ "addl " NEXT_IN2 ", %k[" STR(D2) "]\n" \ "xorl %k[" STR(B1) "], %k[TMP1]\n" \ "xorl %k[" STR(B2) "], %k[TMP2]\n" \ "addl %k[TMP1], %k[" STR(A1) "]\n" \ "addl %k[TMP2], %k[" STR(A2) "]\n" \ "roll $" STR(R) ", %k[" STR(A1) "]\n" \ "roll $" STR(R) ", %k[" STR(A2) "]\n" \ "addl %k[" STR(B1) "], %k[" STR(A1) "]\n" \ "addl %k[" STR(B2) "], %k[" STR(A2) "]\n" #ifdef _MD5_USE_BMI1_ #define ROUND_I_INIT(A1, B1, D1, A2, B2, D2, K) \ "addl $" STR(K) "-1, %k[" STR(A1) "]\n" \ "addl $" STR(K) "-1, %k[" STR(A2) "]\n" \ "andnl %k[" STR(D1) "], %k[" STR(B1) "], %k[TMP1]\n" \ "andnl %k[" STR(D2) "], %k[" STR(B2) "], %k[TMP2]\n" #define ROUND_I_ADD "subl" #else #define ROUND_I_INIT(A1, B1, D1, A2, B2, D2, K) \ "movl %k[" STR(D1) "], %k[TMP1]\n" \ "movl %k[" STR(D2) "], %k[TMP2]\n" \ "addl $" STR(K) ", %k[" STR(A1) "]\n" \ "addl $" STR(K) ", %k[" STR(A2) "]\n" \ "notl %k[TMP1]\n" \ "notl %k[TMP2]\n" \ "orl %k[" STR(B1) "], %k[TMP1]\n" \ "orl %k[" STR(B2) "], %k[TMP2]\n" #define ROUND_I_ADD "addl" #endif #define ROUND_I(A1, B1, C1, D1, A2, B2, C2, D2, NEXT_IN1, NEXT_IN2, K, R) \ ROUND_I_INIT(A1, B1, D1, A2, B2, D2, K) \ "xorl %k[" STR(C1) "], %k[TMP1]\n" \ "xorl %k[" STR(C2) "], %k[TMP2]\n" \ "addl " NEXT_IN1 ", %k[" STR(D1) "]\n" \ "addl " NEXT_IN2 ", %k[" STR(D2) "]\n" \ ROUND_I_ADD " %k[TMP1], %k[" STR(A1) "]\n" \ ROUND_I_ADD " %k[TMP2], %k[" STR(A2) "]\n" \ "roll $" STR(R) ", %k[" STR(A1) "]\n" \ "roll $" STR(R) ", %k[" STR(A2) "]\n" \ "addl %k[" STR(B1) "], %k[" STR(A1) "]\n" \ "addl %k[" STR(B2) "], %k[" STR(A2) "]\n" #define ROUND_I_LAST(A1, B1, C1, D1, A2, B2, C2, D2, K, R) \ ROUND_I_INIT(A1, B1, D1, A2, B2, D2, K) \ "xorl %k[" STR(C1) "], %k[TMP1]\n" \ "xorl %k[" STR(C2) "], %k[TMP2]\n" \ ROUND_I_ADD " %k[TMP1], %k[" STR(A1) "]\n" \ ROUND_I_ADD " %k[TMP2], %k[" STR(A2) "]\n" \ "roll $" STR(R) ", %k[" STR(A1) "]\n" \ "roll $" STR(R) ", %k[" STR(A2) "]\n" \ "addl %k[" STR(B1) "], %k[" STR(A1) "]\n" \ "addl %k[" STR(B2) "], %k[" STR(A2) "]\n" #ifdef _MD5_USE_BMI1_ #define ROUND_G(A1, B1, C1, D1, A2, B2, C2, D2, NEXT_IN1, NEXT_IN2, K, R) \ "addl $" STR(K) ", %k[" STR(A1) "]\n" \ "addl $" STR(K) ", %k[" STR(A2) "]\n" \ "andnl %k[" STR(C1) "], %k[" STR(D1) "], %k[TMP1]\n" \ "andnl %k[" STR(C2) "], %k[" STR(D2) "], %k[TMP2]\n" \ "addl %k[TMP1], %k[" STR(A1) "]\n" \ "addl %k[TMP2], %k[" STR(A2) "]\n" \ "movl %k[" STR(D1) "], %k[TMP1]\n" \ "movl %k[" STR(D2) "], %k[TMP2]\n" \ "addl " NEXT_IN1 ", %k[" STR(D1) "]\n" \ "addl " NEXT_IN2 ", %k[" STR(D2) "]\n" \ "andl %k[" STR(B1) "], %k[TMP1]\n" \ "andl %k[" STR(B2) "], %k[TMP2]\n" \ "addl %k[TMP1], %k[" STR(A1) "]\n" \ "addl %k[TMP2], %k[" STR(A2) "]\n" \ "roll $" STR(R) ", %k[" STR(A1) "]\n" \ "roll $" STR(R) ", %k[" STR(A2) "]\n" \ "addl %k[" STR(B1) "], %k[" STR(A1) "]\n" \ "addl %k[" STR(B2) "], %k[" STR(A2) "]\n" #else #define ROUND_G(A1, B1, C1, D1, A2, B2, C2, D2, NEXT_IN1, NEXT_IN2, K, R) \ "movl %k[" STR(D1) "], %k[TMP1]\n" \ "movl %k[" STR(D2) "], %k[TMP2]\n" \ "addl $" STR(K) ", %k[" STR(A1) "]\n" \ "addl $" STR(K) ", %k[" STR(A2) "]\n" \ "notl %k[TMP1]\n" \ "notl %k[TMP2]\n" \ "andl %k[" STR(C1) "], %k[TMP1]\n" \ "andl %k[" STR(C2) "], %k[TMP2]\n" \ "addl %k[TMP1], %k[" STR(A1) "]\n" \ "addl %k[TMP2], %k[" STR(A2) "]\n" \ "movl %k[" STR(D1) "], %k[TMP1]\n" \ "movl %k[" STR(D2) "], %k[TMP2]\n" \ "addl " NEXT_IN1 ", %k[" STR(D1) "]\n" \ "addl " NEXT_IN2 ", %k[" STR(D2) "]\n" \ "andl %k[" STR(B1) "], %k[TMP1]\n" \ "andl %k[" STR(B2) "], %k[TMP2]\n" \ "addl %k[TMP1], %k[" STR(A1) "]\n" \ "addl %k[TMP2], %k[" STR(A2) "]\n" \ "roll $" STR(R) ", %k[" STR(A1) "]\n" \ "roll $" STR(R) ", %k[" STR(A2) "]\n" \ "addl %k[" STR(B1) "], %k[" STR(A1) "]\n" \ "addl %k[" STR(B2) "], %k[" STR(A2) "]\n" #endif #define ASM_PARAMS(in) \ [A1]"+&r"(A1), [B1]"+&r"(B1), [C1]"+&r"(C1), [D1]"+&r"(D1), \ [A2]"+&r"(A2), [B2]"+&r"(B2), [C2]"+&r"(C2), [D2]"+&r"(D2), \ [TMP1]"=&r"(tmp1), [TMP2]"=&r"(tmp2) \ : [i0]"m"(_data[0][in]), [i1]"m"(_data[1][in]) \ : #define RF4(i0, i1, i2, i3, k0, k1, k2, k3) __asm__( \ ROUND_F(A1, B1, C1, D1, A2, B2, C2, D2, "%[i0]", "%[i1]", k0, 7) \ : ASM_PARAMS(i0)); __asm__( \ ROUND_F(D1, A1, B1, C1, D2, A2, B2, C2, "%[i0]", "%[i1]", k1, 12) \ : ASM_PARAMS(i1)); __asm__( \ ROUND_F(C1, D1, A1, B1, C2, D2, A2, B2, "%[i0]", "%[i1]", k2, 17) \ : ASM_PARAMS(i2)); __asm__( \ ROUND_F(B1, C1, D1, A1, B2, C2, D2, A2, "%[i0]", "%[i1]", k3, 22) \ : ASM_PARAMS(i3)); #define RG4(i0, i1, i2, i3, k0, k1, k2, k3) __asm__( \ ROUND_G(A1, B1, C1, D1, A2, B2, C2, D2, "%[i0]", "%[i1]", k0, 5) \ : ASM_PARAMS(i0)); __asm__( \ ROUND_G(D1, A1, B1, C1, D2, A2, B2, C2, "%[i0]", "%[i1]", k1, 9) \ : ASM_PARAMS(i1)); __asm__( \ ROUND_G(C1, D1, A1, B1, C2, D2, A2, B2, "%[i0]", "%[i1]", k2, 14) \ : ASM_PARAMS(i2)); __asm__( \ ROUND_G(B1, C1, D1, A1, B2, C2, D2, A2, "%[i0]", "%[i1]", k3, 20) \ : ASM_PARAMS(i3)); #define RH4(i0, i1, i2, i3, k0, k1, k2, k3) __asm__( \ ROUND_H(A1, B1, C1, D1, A2, B2, C2, D2, "%[i0]", "%[i1]", k0, 4) \ : ASM_PARAMS(i0)); __asm__( \ ROUND_H(D1, A1, B1, C1, D2, A2, B2, C2, "%[i0]", "%[i1]", k1, 11) \ : ASM_PARAMS(i1)); __asm__( \ ROUND_H(C1, D1, A1, B1, C2, D2, A2, B2, "%[i0]", "%[i1]", k2, 16) \ : ASM_PARAMS(i2)); __asm__( \ ROUND_H(B1, C1, D1, A1, B2, C2, D2, A2, "%[i0]", "%[i1]", k3, 23) \ : ASM_PARAMS(i3)); #define RI4(i0, i1, i2, i3, k0, k1, k2, k3) __asm__( \ ROUND_I(A1, B1, C1, D1, A2, B2, C2, D2, "%[i0]", "%[i1]", k0, 6) \ : ASM_PARAMS(i0)); __asm__( \ ROUND_I(D1, A1, B1, C1, D2, A2, B2, C2, "%[i0]", "%[i1]", k1, 10) \ : ASM_PARAMS(i1)); __asm__( \ ROUND_I(C1, D1, A1, B1, C2, D2, A2, B2, "%[i0]", "%[i1]", k2, 15) \ : ASM_PARAMS(i2)); __asm__( \ ROUND_I(B1, C1, D1, A1, B2, C2, D2, A2, "%[i0]", "%[i1]", k3, 21) \ : ASM_PARAMS(i3)); A1 += read32(_data[0]); A2 += read32(_data[1]); RF4( 1, 2, 3, 4, -0x28955b88, -0x173848aa, 0x242070db, -0x3e423112) RF4( 5, 6, 7, 8, -0x0a83f051, 0x4787c62a, -0x57cfb9ed, -0x02b96aff) RF4( 9, 10, 11, 12, 0x698098d8, -0x74bb0851, -0x0000a44f, -0x76a32842) RF4(13, 14, 15, 1, 0x6b901122, -0x02678e6d, -0x5986bc72, 0x49b40821) RG4( 6, 11, 0, 5, -0x09e1da9e, -0x3fbf4cc0, 0x265e5a51, -0x16493856) RG4(10, 15, 4, 9, -0x29d0efa3, 0x02441453, -0x275e197f, -0x182c0438) RG4(14, 3, 8, 13, 0x21e1cde6, -0x3cc8f82a, -0x0b2af279, 0x455a14ed) RG4( 2, 7, 12, 5, -0x561c16fb, -0x03105c08, 0x676f02d9, -0x72d5b376) RH4( 8, 11, 14, 1, -0x0005c6be, -0x788e097f, 0x6d9d6122, -0x021ac7f4) RH4( 4, 7, 10, 13, -0x5b4115bc, 0x4bdecfa9, -0x0944b4a0, -0x41404390) RH4( 0, 3, 6, 9, 0x289b7ec6, -0x155ed806, -0x2b10cf7b, 0x04881d05) RH4(12, 15, 2, 0, -0x262b2fc7, -0x1924661b, 0x1fa27cf8, -0x3b53a99b) RI4( 7, 14, 5, 12, -0x0bd6ddbc, 0x432aff97, -0x546bdc59, -0x036c5fc7) RI4( 3, 10, 1, 8, 0x655b59c3, -0x70f3336e, -0x00100b83, -0x7a7ba22f) RI4(15, 6, 13, 4, 0x6fa87e4f, -0x01d31920, -0x5cfebcec, 0x4e0811a1) __asm__( ROUND_I(A1, B1, C1, D1, A2, B2, C2, D2, "%[i0]", "%[i1]", -0x08ac817e, 6) : ASM_PARAMS(11)); __asm__( ROUND_I(D1, A1, B1, C1, D2, A2, B2, C2, "%[i0]", "%[i1]", -0x42c50dcb, 10) : ASM_PARAMS(2)); __asm__( ROUND_I(C1, D1, A1, B1, C2, D2, A2, B2, "%[i0]", "%[i1]", 0x2ad7d2bb, 15) : ASM_PARAMS(9)); __asm__( ROUND_I_LAST(B1, C1, D1, A1, B2, C2, D2, A2, -0x14792c6f, 21) : ASM_PARAMS(0)); state[0] += A1; state[1] += B1; state[2] += C1; state[3] += D1; state[4] += A2; state[5] += B2; state[6] += C2; state[7] += D2; #undef ROUND_F #undef ROUND_G #undef ROUND_H #undef ROUND_I #undef ROUND_I_LAST #undef RF4 #undef RG4 #undef RH4 #undef RI4 #undef ASM_PARAMS } par2cmdline-turbo-1.5.0/parpar/hasher/tables.cpp000066400000000000000000000377641524160147200216060ustar00rootroot00000000000000#include "../src/platform.h" #include "../src/stdint.h" // this is based off Fast CRC32 slice-by-4: https://create.stephan-brumme.com/crc32/ extern const uint32_t Crc32Lookup[4][256]; const uint32_t Crc32Lookup[4][256] = {{ 0x00000000,0x77073096,0xEE0E612C,0x990951BA,0x076DC419,0x706AF48F,0xE963A535,0x9E6495A3, 0x0EDB8832,0x79DCB8A4,0xE0D5E91E,0x97D2D988,0x09B64C2B,0x7EB17CBD,0xE7B82D07,0x90BF1D91, 0x1DB71064,0x6AB020F2,0xF3B97148,0x84BE41DE,0x1ADAD47D,0x6DDDE4EB,0xF4D4B551,0x83D385C7, 0x136C9856,0x646BA8C0,0xFD62F97A,0x8A65C9EC,0x14015C4F,0x63066CD9,0xFA0F3D63,0x8D080DF5, 0x3B6E20C8,0x4C69105E,0xD56041E4,0xA2677172,0x3C03E4D1,0x4B04D447,0xD20D85FD,0xA50AB56B, 0x35B5A8FA,0x42B2986C,0xDBBBC9D6,0xACBCF940,0x32D86CE3,0x45DF5C75,0xDCD60DCF,0xABD13D59, 0x26D930AC,0x51DE003A,0xC8D75180,0xBFD06116,0x21B4F4B5,0x56B3C423,0xCFBA9599,0xB8BDA50F, 0x2802B89E,0x5F058808,0xC60CD9B2,0xB10BE924,0x2F6F7C87,0x58684C11,0xC1611DAB,0xB6662D3D, 0x76DC4190,0x01DB7106,0x98D220BC,0xEFD5102A,0x71B18589,0x06B6B51F,0x9FBFE4A5,0xE8B8D433, 0x7807C9A2,0x0F00F934,0x9609A88E,0xE10E9818,0x7F6A0DBB,0x086D3D2D,0x91646C97,0xE6635C01, 0x6B6B51F4,0x1C6C6162,0x856530D8,0xF262004E,0x6C0695ED,0x1B01A57B,0x8208F4C1,0xF50FC457, 0x65B0D9C6,0x12B7E950,0x8BBEB8EA,0xFCB9887C,0x62DD1DDF,0x15DA2D49,0x8CD37CF3,0xFBD44C65, 0x4DB26158,0x3AB551CE,0xA3BC0074,0xD4BB30E2,0x4ADFA541,0x3DD895D7,0xA4D1C46D,0xD3D6F4FB, 0x4369E96A,0x346ED9FC,0xAD678846,0xDA60B8D0,0x44042D73,0x33031DE5,0xAA0A4C5F,0xDD0D7CC9, 0x5005713C,0x270241AA,0xBE0B1010,0xC90C2086,0x5768B525,0x206F85B3,0xB966D409,0xCE61E49F, 0x5EDEF90E,0x29D9C998,0xB0D09822,0xC7D7A8B4,0x59B33D17,0x2EB40D81,0xB7BD5C3B,0xC0BA6CAD, 0xEDB88320,0x9ABFB3B6,0x03B6E20C,0x74B1D29A,0xEAD54739,0x9DD277AF,0x04DB2615,0x73DC1683, 0xE3630B12,0x94643B84,0x0D6D6A3E,0x7A6A5AA8,0xE40ECF0B,0x9309FF9D,0x0A00AE27,0x7D079EB1, 0xF00F9344,0x8708A3D2,0x1E01F268,0x6906C2FE,0xF762575D,0x806567CB,0x196C3671,0x6E6B06E7, 0xFED41B76,0x89D32BE0,0x10DA7A5A,0x67DD4ACC,0xF9B9DF6F,0x8EBEEFF9,0x17B7BE43,0x60B08ED5, 0xD6D6A3E8,0xA1D1937E,0x38D8C2C4,0x4FDFF252,0xD1BB67F1,0xA6BC5767,0x3FB506DD,0x48B2364B, 0xD80D2BDA,0xAF0A1B4C,0x36034AF6,0x41047A60,0xDF60EFC3,0xA867DF55,0x316E8EEF,0x4669BE79, 0xCB61B38C,0xBC66831A,0x256FD2A0,0x5268E236,0xCC0C7795,0xBB0B4703,0x220216B9,0x5505262F, 0xC5BA3BBE,0xB2BD0B28,0x2BB45A92,0x5CB36A04,0xC2D7FFA7,0xB5D0CF31,0x2CD99E8B,0x5BDEAE1D, 0x9B64C2B0,0xEC63F226,0x756AA39C,0x026D930A,0x9C0906A9,0xEB0E363F,0x72076785,0x05005713, 0x95BF4A82,0xE2B87A14,0x7BB12BAE,0x0CB61B38,0x92D28E9B,0xE5D5BE0D,0x7CDCEFB7,0x0BDBDF21, 0x86D3D2D4,0xF1D4E242,0x68DDB3F8,0x1FDA836E,0x81BE16CD,0xF6B9265B,0x6FB077E1,0x18B74777, 0x88085AE6,0xFF0F6A70,0x66063BCA,0x11010B5C,0x8F659EFF,0xF862AE69,0x616BFFD3,0x166CCF45, 0xA00AE278,0xD70DD2EE,0x4E048354,0x3903B3C2,0xA7672661,0xD06016F7,0x4969474D,0x3E6E77DB, 0xAED16A4A,0xD9D65ADC,0x40DF0B66,0x37D83BF0,0xA9BCAE53,0xDEBB9EC5,0x47B2CF7F,0x30B5FFE9, 0xBDBDF21C,0xCABAC28A,0x53B39330,0x24B4A3A6,0xBAD03605,0xCDD70693,0x54DE5729,0x23D967BF, 0xB3667A2E,0xC4614AB8,0x5D681B02,0x2A6F2B94,0xB40BBE37,0xC30C8EA1,0x5A05DF1B,0x2D02EF8D }, { 0x00000000,0x191B3141,0x32366282,0x2B2D53C3,0x646CC504,0x7D77F445,0x565AA786,0x4F4196C7, 0xC8D98A08,0xD1C2BB49,0xFAEFE88A,0xE3F4D9CB,0xACB54F0C,0xB5AE7E4D,0x9E832D8E,0x87981CCF, 0x4AC21251,0x53D92310,0x78F470D3,0x61EF4192,0x2EAED755,0x37B5E614,0x1C98B5D7,0x05838496, 0x821B9859,0x9B00A918,0xB02DFADB,0xA936CB9A,0xE6775D5D,0xFF6C6C1C,0xD4413FDF,0xCD5A0E9E, 0x958424A2,0x8C9F15E3,0xA7B24620,0xBEA97761,0xF1E8E1A6,0xE8F3D0E7,0xC3DE8324,0xDAC5B265, 0x5D5DAEAA,0x44469FEB,0x6F6BCC28,0x7670FD69,0x39316BAE,0x202A5AEF,0x0B07092C,0x121C386D, 0xDF4636F3,0xC65D07B2,0xED705471,0xF46B6530,0xBB2AF3F7,0xA231C2B6,0x891C9175,0x9007A034, 0x179FBCFB,0x0E848DBA,0x25A9DE79,0x3CB2EF38,0x73F379FF,0x6AE848BE,0x41C51B7D,0x58DE2A3C, 0xF0794F05,0xE9627E44,0xC24F2D87,0xDB541CC6,0x94158A01,0x8D0EBB40,0xA623E883,0xBF38D9C2, 0x38A0C50D,0x21BBF44C,0x0A96A78F,0x138D96CE,0x5CCC0009,0x45D73148,0x6EFA628B,0x77E153CA, 0xBABB5D54,0xA3A06C15,0x888D3FD6,0x91960E97,0xDED79850,0xC7CCA911,0xECE1FAD2,0xF5FACB93, 0x7262D75C,0x6B79E61D,0x4054B5DE,0x594F849F,0x160E1258,0x0F152319,0x243870DA,0x3D23419B, 0x65FD6BA7,0x7CE65AE6,0x57CB0925,0x4ED03864,0x0191AEA3,0x188A9FE2,0x33A7CC21,0x2ABCFD60, 0xAD24E1AF,0xB43FD0EE,0x9F12832D,0x8609B26C,0xC94824AB,0xD05315EA,0xFB7E4629,0xE2657768, 0x2F3F79F6,0x362448B7,0x1D091B74,0x04122A35,0x4B53BCF2,0x52488DB3,0x7965DE70,0x607EEF31, 0xE7E6F3FE,0xFEFDC2BF,0xD5D0917C,0xCCCBA03D,0x838A36FA,0x9A9107BB,0xB1BC5478,0xA8A76539, 0x3B83984B,0x2298A90A,0x09B5FAC9,0x10AECB88,0x5FEF5D4F,0x46F46C0E,0x6DD93FCD,0x74C20E8C, 0xF35A1243,0xEA412302,0xC16C70C1,0xD8774180,0x9736D747,0x8E2DE606,0xA500B5C5,0xBC1B8484, 0x71418A1A,0x685ABB5B,0x4377E898,0x5A6CD9D9,0x152D4F1E,0x0C367E5F,0x271B2D9C,0x3E001CDD, 0xB9980012,0xA0833153,0x8BAE6290,0x92B553D1,0xDDF4C516,0xC4EFF457,0xEFC2A794,0xF6D996D5, 0xAE07BCE9,0xB71C8DA8,0x9C31DE6B,0x852AEF2A,0xCA6B79ED,0xD37048AC,0xF85D1B6F,0xE1462A2E, 0x66DE36E1,0x7FC507A0,0x54E85463,0x4DF36522,0x02B2F3E5,0x1BA9C2A4,0x30849167,0x299FA026, 0xE4C5AEB8,0xFDDE9FF9,0xD6F3CC3A,0xCFE8FD7B,0x80A96BBC,0x99B25AFD,0xB29F093E,0xAB84387F, 0x2C1C24B0,0x350715F1,0x1E2A4632,0x07317773,0x4870E1B4,0x516BD0F5,0x7A468336,0x635DB277, 0xCBFAD74E,0xD2E1E60F,0xF9CCB5CC,0xE0D7848D,0xAF96124A,0xB68D230B,0x9DA070C8,0x84BB4189, 0x03235D46,0x1A386C07,0x31153FC4,0x280E0E85,0x674F9842,0x7E54A903,0x5579FAC0,0x4C62CB81, 0x8138C51F,0x9823F45E,0xB30EA79D,0xAA1596DC,0xE554001B,0xFC4F315A,0xD7626299,0xCE7953D8, 0x49E14F17,0x50FA7E56,0x7BD72D95,0x62CC1CD4,0x2D8D8A13,0x3496BB52,0x1FBBE891,0x06A0D9D0, 0x5E7EF3EC,0x4765C2AD,0x6C48916E,0x7553A02F,0x3A1236E8,0x230907A9,0x0824546A,0x113F652B, 0x96A779E4,0x8FBC48A5,0xA4911B66,0xBD8A2A27,0xF2CBBCE0,0xEBD08DA1,0xC0FDDE62,0xD9E6EF23, 0x14BCE1BD,0x0DA7D0FC,0x268A833F,0x3F91B27E,0x70D024B9,0x69CB15F8,0x42E6463B,0x5BFD777A, 0xDC656BB5,0xC57E5AF4,0xEE530937,0xF7483876,0xB809AEB1,0xA1129FF0,0x8A3FCC33,0x9324FD72 }, { 0x00000000,0x01C26A37,0x0384D46E,0x0246BE59,0x0709A8DC,0x06CBC2EB,0x048D7CB2,0x054F1685, 0x0E1351B8,0x0FD13B8F,0x0D9785D6,0x0C55EFE1,0x091AF964,0x08D89353,0x0A9E2D0A,0x0B5C473D, 0x1C26A370,0x1DE4C947,0x1FA2771E,0x1E601D29,0x1B2F0BAC,0x1AED619B,0x18ABDFC2,0x1969B5F5, 0x1235F2C8,0x13F798FF,0x11B126A6,0x10734C91,0x153C5A14,0x14FE3023,0x16B88E7A,0x177AE44D, 0x384D46E0,0x398F2CD7,0x3BC9928E,0x3A0BF8B9,0x3F44EE3C,0x3E86840B,0x3CC03A52,0x3D025065, 0x365E1758,0x379C7D6F,0x35DAC336,0x3418A901,0x3157BF84,0x3095D5B3,0x32D36BEA,0x331101DD, 0x246BE590,0x25A98FA7,0x27EF31FE,0x262D5BC9,0x23624D4C,0x22A0277B,0x20E69922,0x2124F315, 0x2A78B428,0x2BBADE1F,0x29FC6046,0x283E0A71,0x2D711CF4,0x2CB376C3,0x2EF5C89A,0x2F37A2AD, 0x709A8DC0,0x7158E7F7,0x731E59AE,0x72DC3399,0x7793251C,0x76514F2B,0x7417F172,0x75D59B45, 0x7E89DC78,0x7F4BB64F,0x7D0D0816,0x7CCF6221,0x798074A4,0x78421E93,0x7A04A0CA,0x7BC6CAFD, 0x6CBC2EB0,0x6D7E4487,0x6F38FADE,0x6EFA90E9,0x6BB5866C,0x6A77EC5B,0x68315202,0x69F33835, 0x62AF7F08,0x636D153F,0x612BAB66,0x60E9C151,0x65A6D7D4,0x6464BDE3,0x662203BA,0x67E0698D, 0x48D7CB20,0x4915A117,0x4B531F4E,0x4A917579,0x4FDE63FC,0x4E1C09CB,0x4C5AB792,0x4D98DDA5, 0x46C49A98,0x4706F0AF,0x45404EF6,0x448224C1,0x41CD3244,0x400F5873,0x4249E62A,0x438B8C1D, 0x54F16850,0x55330267,0x5775BC3E,0x56B7D609,0x53F8C08C,0x523AAABB,0x507C14E2,0x51BE7ED5, 0x5AE239E8,0x5B2053DF,0x5966ED86,0x58A487B1,0x5DEB9134,0x5C29FB03,0x5E6F455A,0x5FAD2F6D, 0xE1351B80,0xE0F771B7,0xE2B1CFEE,0xE373A5D9,0xE63CB35C,0xE7FED96B,0xE5B86732,0xE47A0D05, 0xEF264A38,0xEEE4200F,0xECA29E56,0xED60F461,0xE82FE2E4,0xE9ED88D3,0xEBAB368A,0xEA695CBD, 0xFD13B8F0,0xFCD1D2C7,0xFE976C9E,0xFF5506A9,0xFA1A102C,0xFBD87A1B,0xF99EC442,0xF85CAE75, 0xF300E948,0xF2C2837F,0xF0843D26,0xF1465711,0xF4094194,0xF5CB2BA3,0xF78D95FA,0xF64FFFCD, 0xD9785D60,0xD8BA3757,0xDAFC890E,0xDB3EE339,0xDE71F5BC,0xDFB39F8B,0xDDF521D2,0xDC374BE5, 0xD76B0CD8,0xD6A966EF,0xD4EFD8B6,0xD52DB281,0xD062A404,0xD1A0CE33,0xD3E6706A,0xD2241A5D, 0xC55EFE10,0xC49C9427,0xC6DA2A7E,0xC7184049,0xC25756CC,0xC3953CFB,0xC1D382A2,0xC011E895, 0xCB4DAFA8,0xCA8FC59F,0xC8C97BC6,0xC90B11F1,0xCC440774,0xCD866D43,0xCFC0D31A,0xCE02B92D, 0x91AF9640,0x906DFC77,0x922B422E,0x93E92819,0x96A63E9C,0x976454AB,0x9522EAF2,0x94E080C5, 0x9FBCC7F8,0x9E7EADCF,0x9C381396,0x9DFA79A1,0x98B56F24,0x99770513,0x9B31BB4A,0x9AF3D17D, 0x8D893530,0x8C4B5F07,0x8E0DE15E,0x8FCF8B69,0x8A809DEC,0x8B42F7DB,0x89044982,0x88C623B5, 0x839A6488,0x82580EBF,0x801EB0E6,0x81DCDAD1,0x8493CC54,0x8551A663,0x8717183A,0x86D5720D, 0xA9E2D0A0,0xA820BA97,0xAA6604CE,0xABA46EF9,0xAEEB787C,0xAF29124B,0xAD6FAC12,0xACADC625, 0xA7F18118,0xA633EB2F,0xA4755576,0xA5B73F41,0xA0F829C4,0xA13A43F3,0xA37CFDAA,0xA2BE979D, 0xB5C473D0,0xB40619E7,0xB640A7BE,0xB782CD89,0xB2CDDB0C,0xB30FB13B,0xB1490F62,0xB08B6555, 0xBBD72268,0xBA15485F,0xB853F606,0xB9919C31,0xBCDE8AB4,0xBD1CE083,0xBF5A5EDA,0xBE9834ED }, { 0x00000000,0xB8BC6765,0xAA09C88B,0x12B5AFEE,0x8F629757,0x37DEF032,0x256B5FDC,0x9DD738B9, 0xC5B428EF,0x7D084F8A,0x6FBDE064,0xD7018701,0x4AD6BFB8,0xF26AD8DD,0xE0DF7733,0x58631056, 0x5019579F,0xE8A530FA,0xFA109F14,0x42ACF871,0xDF7BC0C8,0x67C7A7AD,0x75720843,0xCDCE6F26, 0x95AD7F70,0x2D111815,0x3FA4B7FB,0x8718D09E,0x1ACFE827,0xA2738F42,0xB0C620AC,0x087A47C9, 0xA032AF3E,0x188EC85B,0x0A3B67B5,0xB28700D0,0x2F503869,0x97EC5F0C,0x8559F0E2,0x3DE59787, 0x658687D1,0xDD3AE0B4,0xCF8F4F5A,0x7733283F,0xEAE41086,0x525877E3,0x40EDD80D,0xF851BF68, 0xF02BF8A1,0x48979FC4,0x5A22302A,0xE29E574F,0x7F496FF6,0xC7F50893,0xD540A77D,0x6DFCC018, 0x359FD04E,0x8D23B72B,0x9F9618C5,0x272A7FA0,0xBAFD4719,0x0241207C,0x10F48F92,0xA848E8F7, 0x9B14583D,0x23A83F58,0x311D90B6,0x89A1F7D3,0x1476CF6A,0xACCAA80F,0xBE7F07E1,0x06C36084, 0x5EA070D2,0xE61C17B7,0xF4A9B859,0x4C15DF3C,0xD1C2E785,0x697E80E0,0x7BCB2F0E,0xC377486B, 0xCB0D0FA2,0x73B168C7,0x6104C729,0xD9B8A04C,0x446F98F5,0xFCD3FF90,0xEE66507E,0x56DA371B, 0x0EB9274D,0xB6054028,0xA4B0EFC6,0x1C0C88A3,0x81DBB01A,0x3967D77F,0x2BD27891,0x936E1FF4, 0x3B26F703,0x839A9066,0x912F3F88,0x299358ED,0xB4446054,0x0CF80731,0x1E4DA8DF,0xA6F1CFBA, 0xFE92DFEC,0x462EB889,0x549B1767,0xEC277002,0x71F048BB,0xC94C2FDE,0xDBF98030,0x6345E755, 0x6B3FA09C,0xD383C7F9,0xC1366817,0x798A0F72,0xE45D37CB,0x5CE150AE,0x4E54FF40,0xF6E89825, 0xAE8B8873,0x1637EF16,0x048240F8,0xBC3E279D,0x21E91F24,0x99557841,0x8BE0D7AF,0x335CB0CA, 0xED59B63B,0x55E5D15E,0x47507EB0,0xFFEC19D5,0x623B216C,0xDA874609,0xC832E9E7,0x708E8E82, 0x28ED9ED4,0x9051F9B1,0x82E4565F,0x3A58313A,0xA78F0983,0x1F336EE6,0x0D86C108,0xB53AA66D, 0xBD40E1A4,0x05FC86C1,0x1749292F,0xAFF54E4A,0x322276F3,0x8A9E1196,0x982BBE78,0x2097D91D, 0x78F4C94B,0xC048AE2E,0xD2FD01C0,0x6A4166A5,0xF7965E1C,0x4F2A3979,0x5D9F9697,0xE523F1F2, 0x4D6B1905,0xF5D77E60,0xE762D18E,0x5FDEB6EB,0xC2098E52,0x7AB5E937,0x680046D9,0xD0BC21BC, 0x88DF31EA,0x3063568F,0x22D6F961,0x9A6A9E04,0x07BDA6BD,0xBF01C1D8,0xADB46E36,0x15080953, 0x1D724E9A,0xA5CE29FF,0xB77B8611,0x0FC7E174,0x9210D9CD,0x2AACBEA8,0x38191146,0x80A57623, 0xD8C66675,0x607A0110,0x72CFAEFE,0xCA73C99B,0x57A4F122,0xEF189647,0xFDAD39A9,0x45115ECC, 0x764DEE06,0xCEF18963,0xDC44268D,0x64F841E8,0xF92F7951,0x41931E34,0x5326B1DA,0xEB9AD6BF, 0xB3F9C6E9,0x0B45A18C,0x19F00E62,0xA14C6907,0x3C9B51BE,0x842736DB,0x96929935,0x2E2EFE50, 0x2654B999,0x9EE8DEFC,0x8C5D7112,0x34E11677,0xA9362ECE,0x118A49AB,0x033FE645,0xBB838120, 0xE3E09176,0x5B5CF613,0x49E959FD,0xF1553E98,0x6C820621,0xD43E6144,0xC68BCEAA,0x7E37A9CF, 0xD67F4138,0x6EC3265D,0x7C7689B3,0xC4CAEED6,0x591DD66F,0xE1A1B10A,0xF3141EE4,0x4BA87981, 0x13CB69D7,0xAB770EB2,0xB9C2A15C,0x017EC639,0x9CA9FE80,0x241599E5,0x36A0360B,0x8E1C516E, 0x866616A7,0x3EDA71C2,0x2C6FDE2C,0x94D3B949,0x090481F0,0xB1B8E695,0xA30D497B,0x1BB12E1E, 0x43D23E48,0xFB6E592D,0xE9DBF6C3,0x516791A6,0xCCB0A91F,0x740CCE7A,0x66B96194,0xDE0506F1 }}; #ifdef PLATFORM_X86 extern const unsigned pshufb_shf_table[60]; ALIGN_TO(16, const unsigned pshufb_shf_table[60]) = { 0x84838281, 0x88878685, 0x8c8b8a89, 0x008f8e8d, /* shl 15 (16 - 1)/shr1 */ 0x85848382, 0x89888786, 0x8d8c8b8a, 0x01008f8e, /* shl 14 (16 - 3)/shr2 */ 0x86858483, 0x8a898887, 0x8e8d8c8b, 0x0201008f, /* shl 13 (16 - 4)/shr3 */ 0x87868584, 0x8b8a8988, 0x8f8e8d8c, 0x03020100, /* shl 12 (16 - 4)/shr4 */ 0x88878685, 0x8c8b8a89, 0x008f8e8d, 0x04030201, /* shl 11 (16 - 5)/shr5 */ 0x89888786, 0x8d8c8b8a, 0x01008f8e, 0x05040302, /* shl 10 (16 - 6)/shr6 */ 0x8a898887, 0x8e8d8c8b, 0x0201008f, 0x06050403, /* shl 9 (16 - 7)/shr7 */ 0x8b8a8988, 0x8f8e8d8c, 0x03020100, 0x07060504, /* shl 8 (16 - 8)/shr8 */ 0x8c8b8a89, 0x008f8e8d, 0x04030201, 0x08070605, /* shl 7 (16 - 9)/shr9 */ 0x8d8c8b8a, 0x01008f8e, 0x05040302, 0x09080706, /* shl 6 (16 -10)/shr10*/ 0x8e8d8c8b, 0x0201008f, 0x06050403, 0x0a090807, /* shl 5 (16 -11)/shr11*/ 0x8f8e8d8c, 0x03020100, 0x07060504, 0x0b0a0908, /* shl 4 (16 -12)/shr12*/ 0x008f8e8d, 0x04030201, 0x08070605, 0x0c0b0a09, /* shl 3 (16 -13)/shr13*/ 0x01008f8e, 0x05040302, 0x09080706, 0x0d0c0b0a, /* shl 2 (16 -14)/shr14*/ 0x0201008f, 0x06050403, 0x0a090807, 0x0e0d0c0b /* shl 1 (16 -15)/shr15*/ }; extern const uint32_t md5_constants_sse[160]; ALIGN_TO(16, const uint32_t md5_constants_sse[160]) = { // F 0xd76aa478L, 0xe8c7b756L, 0xd76aa478L, 0xe8c7b756L, 0x242070dbL, 0xc1bdceeeL, 0x242070dbL, 0xc1bdceeeL, 0xf57c0fafL, 0x4787c62aL, 0xf57c0fafL, 0x4787c62aL, 0xa8304613L, 0xfd469501L, 0xa8304613L, 0xfd469501L, 0x698098d8L, 0x8b44f7afL, 0x698098d8L, 0x8b44f7afL, 0xffff5bb1L, 0x895cd7beL, 0xffff5bb1L, 0x895cd7beL, 0x6b901122L, 0xfd987193L, 0x6b901122L, 0xfd987193L, 0xa679438eL, 0x49b40821L, 0xa679438eL, 0x49b40821L, // G (sequenced: 3,0,1,2) 0xe9b6c7aaL, 0xf61e2562L, 0xe9b6c7aaL, 0xf61e2562L, 0xc040b340L, 0x265e5a51L, 0xc040b340L, 0x265e5a51L, 0xe7d3fbc8L, 0xd62f105dL, 0xe7d3fbc8L, 0xd62f105dL, 0x02441453L, 0xd8a1e681L, 0x02441453L, 0xd8a1e681L, 0x455a14edL, 0x21e1cde6L, 0x455a14edL, 0x21e1cde6L, 0xc33707d6L, 0xf4d50d87L, 0xc33707d6L, 0xf4d50d87L, 0x8d2a4c8aL, 0xa9e3e905L, 0x8d2a4c8aL, 0xa9e3e905L, 0xfcefa3f8L, 0x676f02d9L, 0xfcefa3f8L, 0x676f02d9L, // H (sequenced: 1,0,3,2) 0x8771f681L, 0xfffa3942L, 0x8771f681L, 0xfffa3942L, 0xfde5380cL, 0x6d9d6122L, 0xfde5380cL, 0x6d9d6122L, 0x4bdecfa9L, 0xa4beea44L, 0x4bdecfa9L, 0xa4beea44L, 0xbebfbc70L, 0xf6bb4b60L, 0xbebfbc70L, 0xf6bb4b60L, 0xeaa127faL, 0x289b7ec6L, 0xeaa127faL, 0x289b7ec6L, 0x04881d05L, 0xd4ef3085L, 0x04881d05L, 0xd4ef3085L, 0xe6db99e5L, 0xd9d4d039L, 0xe6db99e5L, 0xd9d4d039L, 0xc4ac5665L, 0x1fa27cf8L, 0xc4ac5665L, 0x1fa27cf8L, // I 0xf4292244L, 0x432aff97L, 0xf4292244L, 0x432aff97L, 0xab9423a7L, 0xfc93a039L, 0xab9423a7L, 0xfc93a039L, 0x655b59c3L, 0x8f0ccc92L, 0x655b59c3L, 0x8f0ccc92L, 0xffeff47dL, 0x85845dd1L, 0xffeff47dL, 0x85845dd1L, 0x6fa87e4fL, 0xfe2ce6e0L, 0x6fa87e4fL, 0xfe2ce6e0L, 0xa3014314L, 0x4e0811a1L, 0xa3014314L, 0x4e0811a1L, 0xf7537e82L, 0xbd3af235L, 0xf7537e82L, 0xbd3af235L, 0x2ad7d2bbL, 0xeb86d391L, 0x2ad7d2bbL, 0xeb86d391L, // I-1 (used for AVX variant) 0xf4292243L, 0x432aff96L, 0xf4292243L, 0x432aff96L, 0xab9423a6L, 0xfc93a038L, 0xab9423a6L, 0xfc93a038L, 0x655b59c2L, 0x8f0ccc91L, 0x655b59c2L, 0x8f0ccc91L, 0xffeff47cL, 0x85845dd0L, 0xffeff47cL, 0x85845dd0L, 0x6fa87e4eL, 0xfe2ce6dfL, 0x6fa87e4eL, 0xfe2ce6dfL, 0xa3014313L, 0x4e0811a0L, 0xa3014313L, 0x4e0811a0L, 0xf7537e81L, 0xbd3af234L, 0xf7537e81L, 0xbd3af234L, 0x2ad7d2baL, 0xeb86d390L, 0x2ad7d2baL, 0xeb86d390L }; #endif #ifdef PLATFORM_ARM extern const uint32_t md5_constants_arm[64]; ALIGN_TO(16, const uint32_t md5_constants_arm[64]) = { // F 0xd76aa478L, 0xe8c7b756L, 0x242070dbL, 0xc1bdceeeL, 0xf57c0fafL, 0x4787c62aL, 0xa8304613L, 0xfd469501L, 0x698098d8L, 0x8b44f7afL, 0xffff5bb1L, 0x895cd7beL, 0x6b901122L, 0xfd987193L, 0xa679438eL, 0x49b40821L, // G (sequenced: 3,0,1,2) 0xe9b6c7aaL, 0xf61e2562L, 0xc040b340L, 0x265e5a51L, 0xe7d3fbc8L, 0xd62f105dL, 0x02441453L, 0xd8a1e681L, 0x455a14edL, 0x21e1cde6L, 0xc33707d6L, 0xf4d50d87L, 0x8d2a4c8aL, 0xa9e3e905L, 0xfcefa3f8L, 0x676f02d9L, // H 0xfffa3942L, 0x8771f681L, 0x6d9d6122L, 0xfde5380cL, 0xa4beea44L, 0x4bdecfa9L, 0xf6bb4b60L, 0xbebfbc70L, 0x289b7ec6L, 0xeaa127faL, 0xd4ef3085L, 0x04881d05L, 0xd9d4d039L, 0xe6db99e5L, 0x1fa27cf8L, 0xc4ac5665L, // I-1 0xf4292243L, 0x432aff96L, 0xab9423a6L, 0xfc93a038L, 0x655b59c2L, 0x8f0ccc91L, 0xffeff47cL, 0x85845dd0L, 0x6fa87e4eL, 0xfe2ce6dfL, 0xa3014313L, 0x4e0811a0L, 0xf7537e81L, 0xbd3af234L, 0x2ad7d2baL, 0xeb86d390L }; #endifpar2cmdline-turbo-1.5.0/parpar/src/000077500000000000000000000000001524160147200171245ustar00rootroot00000000000000par2cmdline-turbo-1.5.0/parpar/src/cpuid.h000066400000000000000000000174501524160147200204100ustar00rootroot00000000000000#ifndef PP_CPUID_H #define PP_CPUID_H #include "platform.h" #ifdef PLATFORM_X86 # ifdef _MSC_VER #include #define _cpuid __cpuid #define _cpuidX __cpuidex #if _MSC_VER >= 1600 #include #define _GET_XCR() _xgetbv(_XCR_XFEATURE_ENABLED_MASK) #endif # else #include /* GCC seems to support this, I assume everyone else does too? */ #define _cpuid(ar, eax) __cpuid(eax, (ar)[0], (ar)[1], (ar)[2], (ar)[3]) #define _cpuidX(ar, eax, ecx) __cpuid_count(eax, ecx, (ar)[0], (ar)[1], (ar)[2], (ar)[3]) static inline int _GET_XCR() { int xcr0; __asm__ __volatile__("xgetbv" : "=a" (xcr0) : "c" (0) : "%edx"); return xcr0; } # endif // Atom Core detection // Bonnell/Silvermont # define CPU_MODEL_IS_BNL_SLM(model) (model == 0x1C || model == 0x26 || model == 0x27 || model == 0x35 || model == 0x36 || model == 0x37 || model == 0x4A || model == 0x4C || model == 0x4D || model == 0x5A || model == 0x5D) // Goldmont / 0x7A is Goldmont Plus # define CPU_MODEL_IS_GLM(model) ((model == 0x5C || model == 0x5F) || (model == 0x7A)) // Tremont # define CPU_MODEL_IS_TMT(model) (model == 0x86 || model == 0x96 || model == 0x9C) // Sandy Bridge to Cannonlake # define CPU_MODEL_IS_SNB_CNL(model) ( \ (model == 0x2A || model == 0x2D) /*Sandy Bridge*/ \ || (model == 0x3A || model == 0x3E) /*Ivy Bridge*/ \ || (model == 0x3C || model == 0x3F || model == 0x45 || model == 0x46) /*Haswell*/ \ || (model == 0x3D || model == 0x47 || model == 0x4F || model == 0x56) /*Broadwell*/ \ || (model == 0x4E || model == 0x5E || model == 0x8E || model == 0x9E || model == 0xA5 || model == 0xA6) /*Skylake*/ \ || (model == 0x55) /*Skylake-X/Cascadelake/Cooper*/ \ || (model == 0x66) /*Cannonlake*/ \ || (model == 0x67) /*Skylake/Cannonlake?*/ \ ) // AMD Fam 14h (Bobcat) and 16h (Jaguar/Puma) # define CPU_FAMMDL_IS_AMDCAT(family, model) ((family == 0x5f && (model == 0 || model == 1 || model == 2)) || (family == 0x6f && (model == 0 || model == 0x10 || model == 0x20 || model == 0x30))) #endif #ifdef PLATFORM_ARM # if defined(_WIN32) # define WIN32_LEAN_AND_MEAN # ifndef NOMINMAX # define NOMINMAX # endif # include # elif defined(__APPLE__) # include # include # elif defined(__has_include) # if __has_include() # include # if defined(__FreeBSD__) || defined(__OpenBSD__) static unsigned long getauxval(unsigned long cap) { unsigned long ret; elf_aux_info(cap, &ret, sizeof(ret)); return ret; } # endif # if __has_include() # include # endif # endif # if defined(__ANDROID__) && __has_include() # include # endif # endif # ifdef PARPAR_SKIP_AUX_CHECK # define CPU_HAS_NEON true # define CPU_HAS_ARMCRC true # define CPU_HAS_NEON_SHA3 true # define CPU_HAS_SVE true # define CPU_HAS_SVE2 true # else # define CPU_HAS_NEON false # define CPU_HAS_ARMCRC false # define CPU_HAS_NEON_SHA3 false # define CPU_HAS_SVE false # define CPU_HAS_SVE2 false # if defined(AT_HWCAP) # undef CPU_HAS_NEON # ifdef __aarch64__ # define CPU_HAS_NEON (getauxval(AT_HWCAP) & HWCAP_ASIMD) # if defined(HWCAP_SHA3) # undef CPU_HAS_NEON_SHA3 # define CPU_HAS_NEON_SHA3 (getauxval(AT_HWCAP) & HWCAP_SHA3) # endif # if defined(HWCAP_SVE) # undef CPU_HAS_SVE # define CPU_HAS_SVE (getauxval(AT_HWCAP) & HWCAP_SVE) # endif # if defined(AT_HWCAP2) && defined(HWCAP2_SVE2) # undef CPU_HAS_SVE2 # define CPU_HAS_SVE2 (getauxval(AT_HWCAP2) & HWCAP2_SVE2) # endif # else # define CPU_HAS_NEON (getauxval(AT_HWCAP) & HWCAP_NEON) # endif # if defined(AT_HWCAP2) && defined(HWCAP2_CRC32) # undef CPU_HAS_ARMCRC # define CPU_HAS_ARMCRC (getauxval(AT_HWCAP2) & HWCAP2_CRC32) # elif defined(HWCAP_CRC32) # undef CPU_HAS_ARMCRC # define CPU_HAS_ARMCRC (getauxval(AT_HWCAP) & HWCAP_CRC32) # endif # elif defined(ANDROID_CPU_FAMILY_ARM) # undef CPU_HAS_NEON # undef CPU_HAS_ARMCRC # ifdef __aarch64__ # define CPU_HAS_NEON (android_getCpuFeatures() & ANDROID_CPU_ARM64_FEATURE_ASIMD) # define CPU_HAS_ARMCRC (android_getCpuFeatures() & ANDROID_CPU_ARM64_FEATURE_CRC32) # else # define CPU_HAS_NEON (android_getCpuFeatures() & ANDROID_CPU_ARM_FEATURE_NEON) # define CPU_HAS_ARMCRC (android_getCpuFeatures() & ANDROID_CPU_ARM_FEATURE_CRC32) # endif # elif defined(_WIN32) # undef CPU_HAS_NEON # define CPU_HAS_NEON (IsProcessorFeaturePresent(PF_ARM_NEON_INSTRUCTIONS_AVAILABLE)) # undef CPU_HAS_ARMCRC # define CPU_HAS_ARMCRC (IsProcessorFeaturePresent(PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE)) # ifdef PF_ARM_SHA3_INSTRUCTIONS_AVAILABLE # undef CPU_HAS_NEON_SHA3 # define CPU_HAS_NEON_SHA3 (IsProcessorFeaturePresent(PF_ARM_SHA3_INSTRUCTIONS_AVAILABLE)) # endif # ifdef PF_ARM_SVE_INSTRUCTIONS_AVAILABLE # undef CPU_HAS_SVE # define CPU_HAS_SVE (IsProcessorFeaturePresent(PF_ARM_SVE_INSTRUCTIONS_AVAILABLE)) # endif # ifdef PF_ARM_SVE2_INSTRUCTIONS_AVAILABLE # undef CPU_HAS_SVE2 # define CPU_HAS_SVE2 (IsProcessorFeaturePresent(PF_ARM_SVE2_INSTRUCTIONS_AVAILABLE)) # endif # elif defined(__APPLE__) # undef CPU_HAS_NEON # define CPU_HAS_NEON (cpuHasFeature("hw.optional.neon")) # undef CPU_HAS_ARMCRC # define CPU_HAS_ARMCRC (cpuHasFeature("hw.optional.armv8_crc32")) # undef CPU_HAS_NEON_SHA3 # define CPU_HAS_NEON_SHA3 (cpuHasFeature("hw.optional.armv8_2_sha3") || cpuHasFeature("hw.optional.arm.FEAT_SHA3")) static inline bool cpuHasFeature(const char* feature) { int supported = 0; size_t len = sizeof(supported); if(sysctlbyname(feature, &supported, &len, NULL, 0) == 0) return (bool)supported; return false; } # endif # endif #endif #ifdef __riscv # if defined(__has_include) # if __has_include() # include # if defined(__FreeBSD__) || defined(__OpenBSD__) static unsigned long getauxval(unsigned long cap) { unsigned long ret; elf_aux_info(cap, &ret, sizeof(ret)); return ret; } # endif # if __has_include() # include # endif # endif # if __has_include() # include # include # include # endif # endif # ifdef PARPAR_SKIP_AUX_CHECK # define CPU_HAS_GC true # define CPU_HAS_VECTOR true # define CPU_HAS_Zvbc true # define CPU_HAS_Zbkc true # else # define CPU_HAS_GC false # define CPU_HAS_VECTOR false # define CPU_HAS_Zvbc false # define CPU_HAS_Zbkc false # if defined(AT_HWCAP) # undef CPU_HAS_GC # define CPU_HAS_GC ((getauxval(AT_HWCAP) & 4397) == 4397) // 4397 = IMAFDC; TODO: how to detect Z* features of 'G'? # undef CPU_HAS_VECTOR # define CPU_HAS_VECTOR (getauxval(AT_HWCAP) & (1 << ('V'-'A'))) # endif # ifdef RISCV_HWPROBE_KEY_IMA_EXT_0 # undef CPU_HAS_Zvbc # undef CPU_HAS_Zbkc static uint64_t pp_hwprobe(uint64_t k) { struct riscv_hwprobe p; p.key = k; if(syscall(__NR_riscv_hwprobe, &p, 1, 0, NULL, 0)) return 0; return p.value; } // Linux RISC-V extension constants: https://github.com/torvalds/linux/blob/master/arch/riscv/include/uapi/asm/hwprobe.h # define CPU_HAS_Zvbc (pp_hwprobe(RISCV_HWPROBE_KEY_IMA_EXT_0) & (1 << 18) /*RISCV_HWPROBE_EXT_ZVBC*/) # define CPU_HAS_Zbkc (pp_hwprobe(RISCV_HWPROBE_KEY_IMA_EXT_0) & ((1 << 7) /*RISCV_HWPROBE_EXT_ZBC*/ | (1 << 9) /*RISCV_HWPROBE_EXT_ZBKC*/)) # else # ifdef RISCV_ISA_EXT_ZVBC // TODO: RISCV_ISA_EXT_ZVBC is defined as 57 -> this doesn't work on RV32? [ref https://github.com/torvalds/linux/blob/master/arch/riscv/include/asm/hwcap.h] # undef CPU_HAS_Zvbc # define CPU_HAS_Zvbc (getauxval(AT_HWCAP) & (1 << RISCV_ISA_EXT_ZVBC)) # endif # if defined(RISCV_ISA_EXT_ZBC) && defined(RISCV_ISA_EXT_ZBKC) # undef CPU_HAS_Zbkc # define CPU_HAS_Zbkc (getauxval(AT_HWCAP) & ((1 << RISCV_ISA_EXT_ZBC) | (1 << RISCV_ISA_EXT_ZBKC))) # endif # endif # endif #endif #endif /* PP_CPUID_H */ par2cmdline-turbo-1.5.0/parpar/src/hedley.h000066400000000000000000002271451524160147200205620ustar00rootroot00000000000000/* Hedley - https://nemequ.github.io/hedley * Created by Evan Nemerson * * To the extent possible under law, the author(s) have dedicated all * copyright and related and neighboring rights to this software to * the public domain worldwide. This software is distributed without * any warranty. * * For details, see . * SPDX-License-Identifier: CC0-1.0 */ #if !defined(HEDLEY_VERSION) || (HEDLEY_VERSION < 15) #if defined(HEDLEY_VERSION) # undef HEDLEY_VERSION #endif #define HEDLEY_VERSION 15 #if defined(HEDLEY_STRINGIFY_EX) # undef HEDLEY_STRINGIFY_EX #endif #define HEDLEY_STRINGIFY_EX(x) #x #if defined(HEDLEY_STRINGIFY) # undef HEDLEY_STRINGIFY #endif #define HEDLEY_STRINGIFY(x) HEDLEY_STRINGIFY_EX(x) #if defined(HEDLEY_CONCAT_EX) # undef HEDLEY_CONCAT_EX #endif #define HEDLEY_CONCAT_EX(a,b) a##b #if defined(HEDLEY_CONCAT) # undef HEDLEY_CONCAT #endif #define HEDLEY_CONCAT(a,b) HEDLEY_CONCAT_EX(a,b) #if defined(HEDLEY_CONCAT3_EX) # undef HEDLEY_CONCAT3_EX #endif #define HEDLEY_CONCAT3_EX(a,b,c) a##b##c #if defined(HEDLEY_CONCAT3) # undef HEDLEY_CONCAT3 #endif #define HEDLEY_CONCAT3(a,b,c) HEDLEY_CONCAT3_EX(a,b,c) #if defined(HEDLEY_VERSION_ENCODE) # undef HEDLEY_VERSION_ENCODE #endif #define HEDLEY_VERSION_ENCODE(major,minor,revision) (((major) * 1000000) + ((minor) * 1000) + (revision)) #if defined(HEDLEY_VERSION_DECODE_MAJOR) # undef HEDLEY_VERSION_DECODE_MAJOR #endif #define HEDLEY_VERSION_DECODE_MAJOR(version) ((version) / 1000000) #if defined(HEDLEY_VERSION_DECODE_MINOR) # undef HEDLEY_VERSION_DECODE_MINOR #endif #define HEDLEY_VERSION_DECODE_MINOR(version) (((version) % 1000000) / 1000) #if defined(HEDLEY_VERSION_DECODE_REVISION) # undef HEDLEY_VERSION_DECODE_REVISION #endif #define HEDLEY_VERSION_DECODE_REVISION(version) ((version) % 1000) #if defined(HEDLEY_GNUC_VERSION) # undef HEDLEY_GNUC_VERSION #endif #if defined(__GNUC__) && defined(__GNUC_PATCHLEVEL__) # define HEDLEY_GNUC_VERSION HEDLEY_VERSION_ENCODE(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__) #elif defined(__GNUC__) # define HEDLEY_GNUC_VERSION HEDLEY_VERSION_ENCODE(__GNUC__, __GNUC_MINOR__, 0) #endif #if defined(HEDLEY_GNUC_VERSION_CHECK) # undef HEDLEY_GNUC_VERSION_CHECK #endif #if defined(HEDLEY_GNUC_VERSION) # define HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) (HEDLEY_GNUC_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) #else # define HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(HEDLEY_MSVC_VERSION) # undef HEDLEY_MSVC_VERSION #endif #if defined(_MSC_FULL_VER) && (_MSC_FULL_VER >= 140000000) && !defined(__ICL) # define HEDLEY_MSVC_VERSION HEDLEY_VERSION_ENCODE(_MSC_FULL_VER / 10000000, (_MSC_FULL_VER % 10000000) / 100000, (_MSC_FULL_VER % 100000) / 100) #elif defined(_MSC_FULL_VER) && !defined(__ICL) # define HEDLEY_MSVC_VERSION HEDLEY_VERSION_ENCODE(_MSC_FULL_VER / 1000000, (_MSC_FULL_VER % 1000000) / 10000, (_MSC_FULL_VER % 10000) / 10) #elif defined(_MSC_VER) && !defined(__ICL) # define HEDLEY_MSVC_VERSION HEDLEY_VERSION_ENCODE(_MSC_VER / 100, _MSC_VER % 100, 0) #endif #if defined(HEDLEY_MSVC_VERSION_CHECK) # undef HEDLEY_MSVC_VERSION_CHECK #endif #if !defined(HEDLEY_MSVC_VERSION) # define HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (0) #elif defined(_MSC_VER) && (_MSC_VER >= 1400) # define HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_FULL_VER >= ((major * 10000000) + (minor * 100000) + (patch))) #elif defined(_MSC_VER) && (_MSC_VER >= 1200) # define HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_FULL_VER >= ((major * 1000000) + (minor * 10000) + (patch))) #else # define HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_VER >= ((major * 100) + (minor))) #endif #if defined(HEDLEY_INTEL_VERSION) # undef HEDLEY_INTEL_VERSION #endif #if defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE) && !defined(__ICL) # define HEDLEY_INTEL_VERSION HEDLEY_VERSION_ENCODE(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, __INTEL_COMPILER_UPDATE) #elif defined(__INTEL_COMPILER) && !defined(__ICL) # define HEDLEY_INTEL_VERSION HEDLEY_VERSION_ENCODE(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, 0) #endif #if defined(HEDLEY_INTEL_VERSION_CHECK) # undef HEDLEY_INTEL_VERSION_CHECK #endif #if defined(HEDLEY_INTEL_VERSION) # define HEDLEY_INTEL_VERSION_CHECK(major,minor,patch) (HEDLEY_INTEL_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) #else # define HEDLEY_INTEL_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(HEDLEY_INTEL_CL_VERSION) # undef HEDLEY_INTEL_CL_VERSION #endif #if defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE) && defined(__ICL) # define HEDLEY_INTEL_CL_VERSION HEDLEY_VERSION_ENCODE(__INTEL_COMPILER, __INTEL_COMPILER_UPDATE, 0) #endif #if defined(HEDLEY_INTEL_CL_VERSION_CHECK) # undef HEDLEY_INTEL_CL_VERSION_CHECK #endif #if defined(HEDLEY_INTEL_CL_VERSION) # define HEDLEY_INTEL_CL_VERSION_CHECK(major,minor,patch) (HEDLEY_INTEL_CL_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) #else # define HEDLEY_INTEL_CL_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(HEDLEY_PGI_VERSION) # undef HEDLEY_PGI_VERSION #endif #if defined(__PGI) && defined(__PGIC__) && defined(__PGIC_MINOR__) && defined(__PGIC_PATCHLEVEL__) # define HEDLEY_PGI_VERSION HEDLEY_VERSION_ENCODE(__PGIC__, __PGIC_MINOR__, __PGIC_PATCHLEVEL__) #endif #if defined(HEDLEY_PGI_VERSION_CHECK) # undef HEDLEY_PGI_VERSION_CHECK #endif #if defined(HEDLEY_PGI_VERSION) # define HEDLEY_PGI_VERSION_CHECK(major,minor,patch) (HEDLEY_PGI_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) #else # define HEDLEY_PGI_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(HEDLEY_SUNPRO_VERSION) # undef HEDLEY_SUNPRO_VERSION #endif #if defined(__SUNPRO_C) && (__SUNPRO_C > 0x1000) # define HEDLEY_SUNPRO_VERSION HEDLEY_VERSION_ENCODE((((__SUNPRO_C >> 16) & 0xf) * 10) + ((__SUNPRO_C >> 12) & 0xf), (((__SUNPRO_C >> 8) & 0xf) * 10) + ((__SUNPRO_C >> 4) & 0xf), (__SUNPRO_C & 0xf) * 10) #elif defined(__SUNPRO_C) # define HEDLEY_SUNPRO_VERSION HEDLEY_VERSION_ENCODE((__SUNPRO_C >> 8) & 0xf, (__SUNPRO_C >> 4) & 0xf, (__SUNPRO_C) & 0xf) #elif defined(__SUNPRO_CC) && (__SUNPRO_CC > 0x1000) # define HEDLEY_SUNPRO_VERSION HEDLEY_VERSION_ENCODE((((__SUNPRO_CC >> 16) & 0xf) * 10) + ((__SUNPRO_CC >> 12) & 0xf), (((__SUNPRO_CC >> 8) & 0xf) * 10) + ((__SUNPRO_CC >> 4) & 0xf), (__SUNPRO_CC & 0xf) * 10) #elif defined(__SUNPRO_CC) # define HEDLEY_SUNPRO_VERSION HEDLEY_VERSION_ENCODE((__SUNPRO_CC >> 8) & 0xf, (__SUNPRO_CC >> 4) & 0xf, (__SUNPRO_CC) & 0xf) #endif #if defined(HEDLEY_SUNPRO_VERSION_CHECK) # undef HEDLEY_SUNPRO_VERSION_CHECK #endif #if defined(HEDLEY_SUNPRO_VERSION) # define HEDLEY_SUNPRO_VERSION_CHECK(major,minor,patch) (HEDLEY_SUNPRO_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) #else # define HEDLEY_SUNPRO_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(HEDLEY_EMSCRIPTEN_VERSION) # undef HEDLEY_EMSCRIPTEN_VERSION #endif #if defined(__EMSCRIPTEN__) # define HEDLEY_EMSCRIPTEN_VERSION HEDLEY_VERSION_ENCODE(__EMSCRIPTEN_major__, __EMSCRIPTEN_minor__, __EMSCRIPTEN_tiny__) #endif #if defined(HEDLEY_EMSCRIPTEN_VERSION_CHECK) # undef HEDLEY_EMSCRIPTEN_VERSION_CHECK #endif #if defined(HEDLEY_EMSCRIPTEN_VERSION) # define HEDLEY_EMSCRIPTEN_VERSION_CHECK(major,minor,patch) (HEDLEY_EMSCRIPTEN_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) #else # define HEDLEY_EMSCRIPTEN_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(HEDLEY_ARM_VERSION) # undef HEDLEY_ARM_VERSION #endif #if defined(__CC_ARM) && defined(__ARMCOMPILER_VERSION) # define HEDLEY_ARM_VERSION HEDLEY_VERSION_ENCODE(__ARMCOMPILER_VERSION / 1000000, (__ARMCOMPILER_VERSION % 1000000) / 10000, (__ARMCOMPILER_VERSION % 10000) / 100) #elif defined(__CC_ARM) && defined(__ARMCC_VERSION) # define HEDLEY_ARM_VERSION HEDLEY_VERSION_ENCODE(__ARMCC_VERSION / 1000000, (__ARMCC_VERSION % 1000000) / 10000, (__ARMCC_VERSION % 10000) / 100) #endif #if defined(HEDLEY_ARM_VERSION_CHECK) # undef HEDLEY_ARM_VERSION_CHECK #endif #if defined(HEDLEY_ARM_VERSION) # define HEDLEY_ARM_VERSION_CHECK(major,minor,patch) (HEDLEY_ARM_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) #else # define HEDLEY_ARM_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(HEDLEY_IBM_VERSION) # undef HEDLEY_IBM_VERSION #endif #if defined(__ibmxl__) # define HEDLEY_IBM_VERSION HEDLEY_VERSION_ENCODE(__ibmxl_version__, __ibmxl_release__, __ibmxl_modification__) #elif defined(__xlC__) && defined(__xlC_ver__) # define HEDLEY_IBM_VERSION HEDLEY_VERSION_ENCODE(__xlC__ >> 8, __xlC__ & 0xff, (__xlC_ver__ >> 8) & 0xff) #elif defined(__xlC__) # define HEDLEY_IBM_VERSION HEDLEY_VERSION_ENCODE(__xlC__ >> 8, __xlC__ & 0xff, 0) #endif #if defined(HEDLEY_IBM_VERSION_CHECK) # undef HEDLEY_IBM_VERSION_CHECK #endif #if defined(HEDLEY_IBM_VERSION) # define HEDLEY_IBM_VERSION_CHECK(major,minor,patch) (HEDLEY_IBM_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) #else # define HEDLEY_IBM_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(HEDLEY_TI_VERSION) # undef HEDLEY_TI_VERSION #endif #if \ defined(__TI_COMPILER_VERSION__) && \ ( \ defined(__TMS470__) || defined(__TI_ARM__) || \ defined(__MSP430__) || \ defined(__TMS320C2000__) \ ) # if (__TI_COMPILER_VERSION__ >= 16000000) # define HEDLEY_TI_VERSION HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) # endif #endif #if defined(HEDLEY_TI_VERSION_CHECK) # undef HEDLEY_TI_VERSION_CHECK #endif #if defined(HEDLEY_TI_VERSION) # define HEDLEY_TI_VERSION_CHECK(major,minor,patch) (HEDLEY_TI_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) #else # define HEDLEY_TI_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(HEDLEY_TI_CL2000_VERSION) # undef HEDLEY_TI_CL2000_VERSION #endif #if defined(__TI_COMPILER_VERSION__) && defined(__TMS320C2000__) # define HEDLEY_TI_CL2000_VERSION HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) #endif #if defined(HEDLEY_TI_CL2000_VERSION_CHECK) # undef HEDLEY_TI_CL2000_VERSION_CHECK #endif #if defined(HEDLEY_TI_CL2000_VERSION) # define HEDLEY_TI_CL2000_VERSION_CHECK(major,minor,patch) (HEDLEY_TI_CL2000_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) #else # define HEDLEY_TI_CL2000_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(HEDLEY_TI_CL430_VERSION) # undef HEDLEY_TI_CL430_VERSION #endif #if defined(__TI_COMPILER_VERSION__) && defined(__MSP430__) # define HEDLEY_TI_CL430_VERSION HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) #endif #if defined(HEDLEY_TI_CL430_VERSION_CHECK) # undef HEDLEY_TI_CL430_VERSION_CHECK #endif #if defined(HEDLEY_TI_CL430_VERSION) # define HEDLEY_TI_CL430_VERSION_CHECK(major,minor,patch) (HEDLEY_TI_CL430_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) #else # define HEDLEY_TI_CL430_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(HEDLEY_TI_ARMCL_VERSION) # undef HEDLEY_TI_ARMCL_VERSION #endif #if defined(__TI_COMPILER_VERSION__) && (defined(__TMS470__) || defined(__TI_ARM__)) # define HEDLEY_TI_ARMCL_VERSION HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) #endif #if defined(HEDLEY_TI_ARMCL_VERSION_CHECK) # undef HEDLEY_TI_ARMCL_VERSION_CHECK #endif #if defined(HEDLEY_TI_ARMCL_VERSION) # define HEDLEY_TI_ARMCL_VERSION_CHECK(major,minor,patch) (HEDLEY_TI_ARMCL_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) #else # define HEDLEY_TI_ARMCL_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(HEDLEY_TI_CL6X_VERSION) # undef HEDLEY_TI_CL6X_VERSION #endif #if defined(__TI_COMPILER_VERSION__) && defined(__TMS320C6X__) # define HEDLEY_TI_CL6X_VERSION HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) #endif #if defined(HEDLEY_TI_CL6X_VERSION_CHECK) # undef HEDLEY_TI_CL6X_VERSION_CHECK #endif #if defined(HEDLEY_TI_CL6X_VERSION) # define HEDLEY_TI_CL6X_VERSION_CHECK(major,minor,patch) (HEDLEY_TI_CL6X_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) #else # define HEDLEY_TI_CL6X_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(HEDLEY_TI_CL7X_VERSION) # undef HEDLEY_TI_CL7X_VERSION #endif #if defined(__TI_COMPILER_VERSION__) && defined(__C7000__) # define HEDLEY_TI_CL7X_VERSION HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) #endif #if defined(HEDLEY_TI_CL7X_VERSION_CHECK) # undef HEDLEY_TI_CL7X_VERSION_CHECK #endif #if defined(HEDLEY_TI_CL7X_VERSION) # define HEDLEY_TI_CL7X_VERSION_CHECK(major,minor,patch) (HEDLEY_TI_CL7X_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) #else # define HEDLEY_TI_CL7X_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(HEDLEY_TI_CLPRU_VERSION) # undef HEDLEY_TI_CLPRU_VERSION #endif #if defined(__TI_COMPILER_VERSION__) && defined(__PRU__) # define HEDLEY_TI_CLPRU_VERSION HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) #endif #if defined(HEDLEY_TI_CLPRU_VERSION_CHECK) # undef HEDLEY_TI_CLPRU_VERSION_CHECK #endif #if defined(HEDLEY_TI_CLPRU_VERSION) # define HEDLEY_TI_CLPRU_VERSION_CHECK(major,minor,patch) (HEDLEY_TI_CLPRU_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) #else # define HEDLEY_TI_CLPRU_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(HEDLEY_CRAY_VERSION) # undef HEDLEY_CRAY_VERSION #endif #if defined(_CRAYC) # if defined(_RELEASE_PATCHLEVEL) # define HEDLEY_CRAY_VERSION HEDLEY_VERSION_ENCODE(_RELEASE_MAJOR, _RELEASE_MINOR, _RELEASE_PATCHLEVEL) # else # define HEDLEY_CRAY_VERSION HEDLEY_VERSION_ENCODE(_RELEASE_MAJOR, _RELEASE_MINOR, 0) # endif #endif #if defined(HEDLEY_CRAY_VERSION_CHECK) # undef HEDLEY_CRAY_VERSION_CHECK #endif #if defined(HEDLEY_CRAY_VERSION) # define HEDLEY_CRAY_VERSION_CHECK(major,minor,patch) (HEDLEY_CRAY_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) #else # define HEDLEY_CRAY_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(HEDLEY_IAR_VERSION) # undef HEDLEY_IAR_VERSION #endif #if defined(__IAR_SYSTEMS_ICC__) # if __VER__ > 1000 # define HEDLEY_IAR_VERSION HEDLEY_VERSION_ENCODE((__VER__ / 1000000), ((__VER__ / 1000) % 1000), (__VER__ % 1000)) # else # define HEDLEY_IAR_VERSION HEDLEY_VERSION_ENCODE(__VER__ / 100, __VER__ % 100, 0) # endif #endif #if defined(HEDLEY_IAR_VERSION_CHECK) # undef HEDLEY_IAR_VERSION_CHECK #endif #if defined(HEDLEY_IAR_VERSION) # define HEDLEY_IAR_VERSION_CHECK(major,minor,patch) (HEDLEY_IAR_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) #else # define HEDLEY_IAR_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(HEDLEY_TINYC_VERSION) # undef HEDLEY_TINYC_VERSION #endif #if defined(__TINYC__) # define HEDLEY_TINYC_VERSION HEDLEY_VERSION_ENCODE(__TINYC__ / 1000, (__TINYC__ / 100) % 10, __TINYC__ % 100) #endif #if defined(HEDLEY_TINYC_VERSION_CHECK) # undef HEDLEY_TINYC_VERSION_CHECK #endif #if defined(HEDLEY_TINYC_VERSION) # define HEDLEY_TINYC_VERSION_CHECK(major,minor,patch) (HEDLEY_TINYC_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) #else # define HEDLEY_TINYC_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(HEDLEY_DMC_VERSION) # undef HEDLEY_DMC_VERSION #endif #if defined(__DMC__) # define HEDLEY_DMC_VERSION HEDLEY_VERSION_ENCODE(__DMC__ >> 8, (__DMC__ >> 4) & 0xf, __DMC__ & 0xf) #endif #if defined(HEDLEY_DMC_VERSION_CHECK) # undef HEDLEY_DMC_VERSION_CHECK #endif #if defined(HEDLEY_DMC_VERSION) # define HEDLEY_DMC_VERSION_CHECK(major,minor,patch) (HEDLEY_DMC_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) #else # define HEDLEY_DMC_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(HEDLEY_COMPCERT_VERSION) # undef HEDLEY_COMPCERT_VERSION #endif #if defined(__COMPCERT_VERSION__) # define HEDLEY_COMPCERT_VERSION HEDLEY_VERSION_ENCODE(__COMPCERT_VERSION__ / 10000, (__COMPCERT_VERSION__ / 100) % 100, __COMPCERT_VERSION__ % 100) #endif #if defined(HEDLEY_COMPCERT_VERSION_CHECK) # undef HEDLEY_COMPCERT_VERSION_CHECK #endif #if defined(HEDLEY_COMPCERT_VERSION) # define HEDLEY_COMPCERT_VERSION_CHECK(major,minor,patch) (HEDLEY_COMPCERT_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) #else # define HEDLEY_COMPCERT_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(HEDLEY_PELLES_VERSION) # undef HEDLEY_PELLES_VERSION #endif #if defined(__POCC__) # define HEDLEY_PELLES_VERSION HEDLEY_VERSION_ENCODE(__POCC__ / 100, __POCC__ % 100, 0) #endif #if defined(HEDLEY_PELLES_VERSION_CHECK) # undef HEDLEY_PELLES_VERSION_CHECK #endif #if defined(HEDLEY_PELLES_VERSION) # define HEDLEY_PELLES_VERSION_CHECK(major,minor,patch) (HEDLEY_PELLES_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) #else # define HEDLEY_PELLES_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(HEDLEY_MCST_LCC_VERSION) # undef HEDLEY_MCST_LCC_VERSION #endif #if defined(__LCC__) && defined(__LCC_MINOR__) # define HEDLEY_MCST_LCC_VERSION HEDLEY_VERSION_ENCODE(__LCC__ / 100, __LCC__ % 100, __LCC_MINOR__) #endif #if defined(HEDLEY_MCST_LCC_VERSION_CHECK) # undef HEDLEY_MCST_LCC_VERSION_CHECK #endif #if defined(HEDLEY_MCST_LCC_VERSION) # define HEDLEY_MCST_LCC_VERSION_CHECK(major,minor,patch) (HEDLEY_MCST_LCC_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) #else # define HEDLEY_MCST_LCC_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(HEDLEY_GCC_VERSION) # undef HEDLEY_GCC_VERSION #endif #if \ defined(HEDLEY_GNUC_VERSION) && \ !defined(__clang__) && \ !defined(HEDLEY_INTEL_VERSION) && \ !defined(HEDLEY_PGI_VERSION) && \ !defined(HEDLEY_ARM_VERSION) && \ !defined(HEDLEY_CRAY_VERSION) && \ !defined(HEDLEY_TI_VERSION) && \ !defined(HEDLEY_TI_ARMCL_VERSION) && \ !defined(HEDLEY_TI_CL430_VERSION) && \ !defined(HEDLEY_TI_CL2000_VERSION) && \ !defined(HEDLEY_TI_CL6X_VERSION) && \ !defined(HEDLEY_TI_CL7X_VERSION) && \ !defined(HEDLEY_TI_CLPRU_VERSION) && \ !defined(__COMPCERT__) && \ !defined(HEDLEY_MCST_LCC_VERSION) # define HEDLEY_GCC_VERSION HEDLEY_GNUC_VERSION #endif #if defined(HEDLEY_GCC_VERSION_CHECK) # undef HEDLEY_GCC_VERSION_CHECK #endif #if defined(HEDLEY_GCC_VERSION) # define HEDLEY_GCC_VERSION_CHECK(major,minor,patch) (HEDLEY_GCC_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) #else # define HEDLEY_GCC_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(HEDLEY_HAS_ATTRIBUTE) # undef HEDLEY_HAS_ATTRIBUTE #endif #if \ defined(__has_attribute) && \ ( \ (!defined(HEDLEY_IAR_VERSION) || HEDLEY_IAR_VERSION_CHECK(8,5,9)) \ ) # define HEDLEY_HAS_ATTRIBUTE(attribute) __has_attribute(attribute) #else # define HEDLEY_HAS_ATTRIBUTE(attribute) (0) #endif #if defined(HEDLEY_GNUC_HAS_ATTRIBUTE) # undef HEDLEY_GNUC_HAS_ATTRIBUTE #endif #if defined(__has_attribute) # define HEDLEY_GNUC_HAS_ATTRIBUTE(attribute,major,minor,patch) HEDLEY_HAS_ATTRIBUTE(attribute) #else # define HEDLEY_GNUC_HAS_ATTRIBUTE(attribute,major,minor,patch) HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) #endif #if defined(HEDLEY_GCC_HAS_ATTRIBUTE) # undef HEDLEY_GCC_HAS_ATTRIBUTE #endif #if defined(__has_attribute) # define HEDLEY_GCC_HAS_ATTRIBUTE(attribute,major,minor,patch) HEDLEY_HAS_ATTRIBUTE(attribute) #else # define HEDLEY_GCC_HAS_ATTRIBUTE(attribute,major,minor,patch) HEDLEY_GCC_VERSION_CHECK(major,minor,patch) #endif #if defined(HEDLEY_HAS_CPP_ATTRIBUTE) # undef HEDLEY_HAS_CPP_ATTRIBUTE #endif #if \ defined(__has_cpp_attribute) && \ defined(__cplusplus) && \ (!defined(HEDLEY_SUNPRO_VERSION) || HEDLEY_SUNPRO_VERSION_CHECK(5,15,0)) # define HEDLEY_HAS_CPP_ATTRIBUTE(attribute) __has_cpp_attribute(attribute) #else # define HEDLEY_HAS_CPP_ATTRIBUTE(attribute) (0) #endif #if defined(HEDLEY_HAS_CPP_ATTRIBUTE_NS) # undef HEDLEY_HAS_CPP_ATTRIBUTE_NS #endif #if !defined(__cplusplus) || !defined(__has_cpp_attribute) # define HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) (0) #elif \ !defined(HEDLEY_PGI_VERSION) && \ !defined(HEDLEY_IAR_VERSION) && \ (!defined(HEDLEY_SUNPRO_VERSION) || HEDLEY_SUNPRO_VERSION_CHECK(5,15,0)) && \ (!defined(HEDLEY_MSVC_VERSION) || HEDLEY_MSVC_VERSION_CHECK(19,20,0)) # define HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) HEDLEY_HAS_CPP_ATTRIBUTE(ns::attribute) #else # define HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) (0) #endif #if defined(HEDLEY_GNUC_HAS_CPP_ATTRIBUTE) # undef HEDLEY_GNUC_HAS_CPP_ATTRIBUTE #endif #if defined(__has_cpp_attribute) && defined(__cplusplus) # define HEDLEY_GNUC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) __has_cpp_attribute(attribute) #else # define HEDLEY_GNUC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) #endif #if defined(HEDLEY_GCC_HAS_CPP_ATTRIBUTE) # undef HEDLEY_GCC_HAS_CPP_ATTRIBUTE #endif #if defined(__has_cpp_attribute) && defined(__cplusplus) # define HEDLEY_GCC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) __has_cpp_attribute(attribute) #else # define HEDLEY_GCC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) HEDLEY_GCC_VERSION_CHECK(major,minor,patch) #endif #if defined(HEDLEY_HAS_BUILTIN) # undef HEDLEY_HAS_BUILTIN #endif #if defined(__has_builtin) # define HEDLEY_HAS_BUILTIN(builtin) __has_builtin(builtin) #else # define HEDLEY_HAS_BUILTIN(builtin) (0) #endif #if defined(HEDLEY_GNUC_HAS_BUILTIN) # undef HEDLEY_GNUC_HAS_BUILTIN #endif #if defined(__has_builtin) # define HEDLEY_GNUC_HAS_BUILTIN(builtin,major,minor,patch) __has_builtin(builtin) #else # define HEDLEY_GNUC_HAS_BUILTIN(builtin,major,minor,patch) HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) #endif #if defined(HEDLEY_GCC_HAS_BUILTIN) # undef HEDLEY_GCC_HAS_BUILTIN #endif #if defined(__has_builtin) # define HEDLEY_GCC_HAS_BUILTIN(builtin,major,minor,patch) __has_builtin(builtin) #else # define HEDLEY_GCC_HAS_BUILTIN(builtin,major,minor,patch) HEDLEY_GCC_VERSION_CHECK(major,minor,patch) #endif #if defined(HEDLEY_HAS_FEATURE) # undef HEDLEY_HAS_FEATURE #endif #if defined(__has_feature) # define HEDLEY_HAS_FEATURE(feature) __has_feature(feature) #else # define HEDLEY_HAS_FEATURE(feature) (0) #endif #if defined(HEDLEY_GNUC_HAS_FEATURE) # undef HEDLEY_GNUC_HAS_FEATURE #endif #if defined(__has_feature) # define HEDLEY_GNUC_HAS_FEATURE(feature,major,minor,patch) __has_feature(feature) #else # define HEDLEY_GNUC_HAS_FEATURE(feature,major,minor,patch) HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) #endif #if defined(HEDLEY_GCC_HAS_FEATURE) # undef HEDLEY_GCC_HAS_FEATURE #endif #if defined(__has_feature) # define HEDLEY_GCC_HAS_FEATURE(feature,major,minor,patch) __has_feature(feature) #else # define HEDLEY_GCC_HAS_FEATURE(feature,major,minor,patch) HEDLEY_GCC_VERSION_CHECK(major,minor,patch) #endif #if defined(HEDLEY_HAS_EXTENSION) # undef HEDLEY_HAS_EXTENSION #endif #if defined(__has_extension) # define HEDLEY_HAS_EXTENSION(extension) __has_extension(extension) #else # define HEDLEY_HAS_EXTENSION(extension) (0) #endif #if defined(HEDLEY_GNUC_HAS_EXTENSION) # undef HEDLEY_GNUC_HAS_EXTENSION #endif #if defined(__has_extension) # define HEDLEY_GNUC_HAS_EXTENSION(extension,major,minor,patch) __has_extension(extension) #else # define HEDLEY_GNUC_HAS_EXTENSION(extension,major,minor,patch) HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) #endif #if defined(HEDLEY_GCC_HAS_EXTENSION) # undef HEDLEY_GCC_HAS_EXTENSION #endif #if defined(__has_extension) # define HEDLEY_GCC_HAS_EXTENSION(extension,major,minor,patch) __has_extension(extension) #else # define HEDLEY_GCC_HAS_EXTENSION(extension,major,minor,patch) HEDLEY_GCC_VERSION_CHECK(major,minor,patch) #endif #if defined(HEDLEY_HAS_DECLSPEC_ATTRIBUTE) # undef HEDLEY_HAS_DECLSPEC_ATTRIBUTE #endif #if defined(__has_declspec_attribute) # define HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) __has_declspec_attribute(attribute) #else # define HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) (0) #endif #if defined(HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE) # undef HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE #endif #if defined(__has_declspec_attribute) # define HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) __has_declspec_attribute(attribute) #else # define HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) #endif #if defined(HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE) # undef HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE #endif #if defined(__has_declspec_attribute) # define HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) __has_declspec_attribute(attribute) #else # define HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) HEDLEY_GCC_VERSION_CHECK(major,minor,patch) #endif #if defined(HEDLEY_HAS_WARNING) # undef HEDLEY_HAS_WARNING #endif #if defined(__has_warning) # define HEDLEY_HAS_WARNING(warning) __has_warning(warning) #else # define HEDLEY_HAS_WARNING(warning) (0) #endif #if defined(HEDLEY_GNUC_HAS_WARNING) # undef HEDLEY_GNUC_HAS_WARNING #endif #if defined(__has_warning) # define HEDLEY_GNUC_HAS_WARNING(warning,major,minor,patch) __has_warning(warning) #else # define HEDLEY_GNUC_HAS_WARNING(warning,major,minor,patch) HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) #endif #if defined(HEDLEY_GCC_HAS_WARNING) # undef HEDLEY_GCC_HAS_WARNING #endif #if defined(__has_warning) # define HEDLEY_GCC_HAS_WARNING(warning,major,minor,patch) __has_warning(warning) #else # define HEDLEY_GCC_HAS_WARNING(warning,major,minor,patch) HEDLEY_GCC_VERSION_CHECK(major,minor,patch) #endif #if \ (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || \ defined(__clang__) || \ HEDLEY_GCC_VERSION_CHECK(3,0,0) || \ HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ HEDLEY_IAR_VERSION_CHECK(8,0,0) || \ HEDLEY_PGI_VERSION_CHECK(18,4,0) || \ HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ HEDLEY_TI_VERSION_CHECK(15,12,0) || \ HEDLEY_TI_ARMCL_VERSION_CHECK(4,7,0) || \ HEDLEY_TI_CL430_VERSION_CHECK(2,0,1) || \ HEDLEY_TI_CL2000_VERSION_CHECK(6,1,0) || \ HEDLEY_TI_CL6X_VERSION_CHECK(7,0,0) || \ HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ HEDLEY_CRAY_VERSION_CHECK(5,0,0) || \ HEDLEY_TINYC_VERSION_CHECK(0,9,17) || \ HEDLEY_SUNPRO_VERSION_CHECK(8,0,0) || \ (HEDLEY_IBM_VERSION_CHECK(10,1,0) && defined(__C99_PRAGMA_OPERATOR)) # define HEDLEY_PRAGMA(value) _Pragma(#value) #elif HEDLEY_MSVC_VERSION_CHECK(15,0,0) # define HEDLEY_PRAGMA(value) __pragma(value) #else # define HEDLEY_PRAGMA(value) #endif #if defined(HEDLEY_DIAGNOSTIC_PUSH) # undef HEDLEY_DIAGNOSTIC_PUSH #endif #if defined(HEDLEY_DIAGNOSTIC_POP) # undef HEDLEY_DIAGNOSTIC_POP #endif #if defined(__clang__) # define HEDLEY_DIAGNOSTIC_PUSH _Pragma("clang diagnostic push") # define HEDLEY_DIAGNOSTIC_POP _Pragma("clang diagnostic pop") #elif HEDLEY_INTEL_VERSION_CHECK(13,0,0) # define HEDLEY_DIAGNOSTIC_PUSH _Pragma("warning(push)") # define HEDLEY_DIAGNOSTIC_POP _Pragma("warning(pop)") #elif HEDLEY_GCC_VERSION_CHECK(4,6,0) # define HEDLEY_DIAGNOSTIC_PUSH _Pragma("GCC diagnostic push") # define HEDLEY_DIAGNOSTIC_POP _Pragma("GCC diagnostic pop") #elif \ HEDLEY_MSVC_VERSION_CHECK(15,0,0) || \ HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) # define HEDLEY_DIAGNOSTIC_PUSH __pragma(warning(push)) # define HEDLEY_DIAGNOSTIC_POP __pragma(warning(pop)) #elif HEDLEY_ARM_VERSION_CHECK(5,6,0) # define HEDLEY_DIAGNOSTIC_PUSH _Pragma("push") # define HEDLEY_DIAGNOSTIC_POP _Pragma("pop") #elif \ HEDLEY_TI_VERSION_CHECK(15,12,0) || \ HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ HEDLEY_TI_CL430_VERSION_CHECK(4,4,0) || \ HEDLEY_TI_CL6X_VERSION_CHECK(8,1,0) || \ HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) # define HEDLEY_DIAGNOSTIC_PUSH _Pragma("diag_push") # define HEDLEY_DIAGNOSTIC_POP _Pragma("diag_pop") #elif HEDLEY_PELLES_VERSION_CHECK(2,90,0) # define HEDLEY_DIAGNOSTIC_PUSH _Pragma("warning(push)") # define HEDLEY_DIAGNOSTIC_POP _Pragma("warning(pop)") #else # define HEDLEY_DIAGNOSTIC_PUSH # define HEDLEY_DIAGNOSTIC_POP #endif /* HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_ is for HEDLEY INTERNAL USE ONLY. API subject to change without notice. */ #if defined(HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_) # undef HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_ #endif #if defined(__cplusplus) # if HEDLEY_HAS_WARNING("-Wc++98-compat") # if HEDLEY_HAS_WARNING("-Wc++17-extensions") # if HEDLEY_HAS_WARNING("-Wc++1z-extensions") # define HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \ HEDLEY_DIAGNOSTIC_PUSH \ _Pragma("clang diagnostic ignored \"-Wc++98-compat\"") \ _Pragma("clang diagnostic ignored \"-Wc++17-extensions\"") \ _Pragma("clang diagnostic ignored \"-Wc++1z-extensions\"") \ xpr \ HEDLEY_DIAGNOSTIC_POP # else # define HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \ HEDLEY_DIAGNOSTIC_PUSH \ _Pragma("clang diagnostic ignored \"-Wc++98-compat\"") \ _Pragma("clang diagnostic ignored \"-Wc++17-extensions\"") \ xpr \ HEDLEY_DIAGNOSTIC_POP # endif # else # define HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \ HEDLEY_DIAGNOSTIC_PUSH \ _Pragma("clang diagnostic ignored \"-Wc++98-compat\"") \ xpr \ HEDLEY_DIAGNOSTIC_POP # endif # endif #endif #if !defined(HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_) # define HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(x) x #endif #if defined(HEDLEY_CONST_CAST) # undef HEDLEY_CONST_CAST #endif #if defined(__cplusplus) # define HEDLEY_CONST_CAST(T, expr) (const_cast(expr)) #elif \ HEDLEY_HAS_WARNING("-Wcast-qual") || \ HEDLEY_GCC_VERSION_CHECK(4,6,0) || \ HEDLEY_INTEL_VERSION_CHECK(13,0,0) # define HEDLEY_CONST_CAST(T, expr) (__extension__ ({ \ HEDLEY_DIAGNOSTIC_PUSH \ HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL \ ((T) (expr)); \ HEDLEY_DIAGNOSTIC_POP \ })) #else # define HEDLEY_CONST_CAST(T, expr) ((T) (expr)) #endif #if defined(HEDLEY_REINTERPRET_CAST) # undef HEDLEY_REINTERPRET_CAST #endif #if defined(__cplusplus) # define HEDLEY_REINTERPRET_CAST(T, expr) (reinterpret_cast(expr)) #else # define HEDLEY_REINTERPRET_CAST(T, expr) ((T) (expr)) #endif #if defined(HEDLEY_STATIC_CAST) # undef HEDLEY_STATIC_CAST #endif #if defined(__cplusplus) # define HEDLEY_STATIC_CAST(T, expr) (static_cast(expr)) #else # define HEDLEY_STATIC_CAST(T, expr) ((T) (expr)) #endif #if defined(HEDLEY_CPP_CAST) # undef HEDLEY_CPP_CAST #endif #if defined(__cplusplus) # if HEDLEY_HAS_WARNING("-Wold-style-cast") # define HEDLEY_CPP_CAST(T, expr) \ HEDLEY_DIAGNOSTIC_PUSH \ _Pragma("clang diagnostic ignored \"-Wold-style-cast\"") \ ((T) (expr)) \ HEDLEY_DIAGNOSTIC_POP # elif HEDLEY_IAR_VERSION_CHECK(8,3,0) # define HEDLEY_CPP_CAST(T, expr) \ HEDLEY_DIAGNOSTIC_PUSH \ _Pragma("diag_suppress=Pe137") \ HEDLEY_DIAGNOSTIC_POP # else # define HEDLEY_CPP_CAST(T, expr) ((T) (expr)) # endif #else # define HEDLEY_CPP_CAST(T, expr) (expr) #endif #if defined(HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED) # undef HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED #endif #if HEDLEY_HAS_WARNING("-Wdeprecated-declarations") # define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") #elif HEDLEY_INTEL_VERSION_CHECK(13,0,0) # define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("warning(disable:1478 1786)") #elif HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) # define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED __pragma(warning(disable:1478 1786)) #elif HEDLEY_PGI_VERSION_CHECK(20,7,0) # define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1215,1216,1444,1445") #elif HEDLEY_PGI_VERSION_CHECK(17,10,0) # define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1215,1444") #elif HEDLEY_GCC_VERSION_CHECK(4,3,0) # define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") #elif HEDLEY_MSVC_VERSION_CHECK(15,0,0) # define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED __pragma(warning(disable:4996)) #elif HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) # define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1215,1444") #elif \ HEDLEY_TI_VERSION_CHECK(15,12,0) || \ (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ (HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ (HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) # define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1291,1718") #elif HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) && !defined(__cplusplus) # define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("error_messages(off,E_DEPRECATED_ATT,E_DEPRECATED_ATT_MESS)") #elif HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) && defined(__cplusplus) # define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("error_messages(off,symdeprecated,symdeprecated2)") #elif HEDLEY_IAR_VERSION_CHECK(8,0,0) # define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress=Pe1444,Pe1215") #elif HEDLEY_PELLES_VERSION_CHECK(2,90,0) # define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("warn(disable:2241)") #else # define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED #endif #if defined(HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS) # undef HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS #endif #if HEDLEY_HAS_WARNING("-Wunknown-pragmas") # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("clang diagnostic ignored \"-Wunknown-pragmas\"") #elif HEDLEY_INTEL_VERSION_CHECK(13,0,0) # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("warning(disable:161)") #elif HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS __pragma(warning(disable:161)) #elif HEDLEY_PGI_VERSION_CHECK(17,10,0) # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 1675") #elif HEDLEY_GCC_VERSION_CHECK(4,3,0) # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("GCC diagnostic ignored \"-Wunknown-pragmas\"") #elif HEDLEY_MSVC_VERSION_CHECK(15,0,0) # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS __pragma(warning(disable:4068)) #elif \ HEDLEY_TI_VERSION_CHECK(16,9,0) || \ HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) || \ HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ HEDLEY_TI_CLPRU_VERSION_CHECK(2,3,0) # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 163") #elif HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 163") #elif HEDLEY_IAR_VERSION_CHECK(8,0,0) # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress=Pe161") #elif HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 161") #else # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS #endif #if defined(HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES) # undef HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES #endif #if HEDLEY_HAS_WARNING("-Wunknown-attributes") # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("clang diagnostic ignored \"-Wunknown-attributes\"") #elif HEDLEY_GCC_VERSION_CHECK(4,6,0) # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") #elif HEDLEY_INTEL_VERSION_CHECK(17,0,0) # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("warning(disable:1292)") #elif HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES __pragma(warning(disable:1292)) #elif HEDLEY_MSVC_VERSION_CHECK(19,0,0) # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES __pragma(warning(disable:5030)) #elif HEDLEY_PGI_VERSION_CHECK(20,7,0) # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1097,1098") #elif HEDLEY_PGI_VERSION_CHECK(17,10,0) # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1097") #elif HEDLEY_SUNPRO_VERSION_CHECK(5,14,0) && defined(__cplusplus) # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("error_messages(off,attrskipunsup)") #elif \ HEDLEY_TI_VERSION_CHECK(18,1,0) || \ HEDLEY_TI_CL6X_VERSION_CHECK(8,3,0) || \ HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1173") #elif HEDLEY_IAR_VERSION_CHECK(8,0,0) # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress=Pe1097") #elif HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1097") #else # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES #endif #if defined(HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL) # undef HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL #endif #if HEDLEY_HAS_WARNING("-Wcast-qual") # define HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("clang diagnostic ignored \"-Wcast-qual\"") #elif HEDLEY_INTEL_VERSION_CHECK(13,0,0) # define HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("warning(disable:2203 2331)") #elif HEDLEY_GCC_VERSION_CHECK(3,0,0) # define HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("GCC diagnostic ignored \"-Wcast-qual\"") #else # define HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL #endif #if defined(HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION) # undef HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION #endif #if HEDLEY_HAS_WARNING("-Wunused-function") # define HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION _Pragma("clang diagnostic ignored \"-Wunused-function\"") #elif HEDLEY_GCC_VERSION_CHECK(3,4,0) # define HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION _Pragma("GCC diagnostic ignored \"-Wunused-function\"") #elif HEDLEY_MSVC_VERSION_CHECK(1,0,0) # define HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION __pragma(warning(disable:4505)) #elif HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) # define HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION _Pragma("diag_suppress 3142") #else # define HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION #endif #if defined(HEDLEY_DEPRECATED) # undef HEDLEY_DEPRECATED #endif #if defined(HEDLEY_DEPRECATED_FOR) # undef HEDLEY_DEPRECATED_FOR #endif #if \ HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \ HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) # define HEDLEY_DEPRECATED(since) __declspec(deprecated("Since " # since)) # define HEDLEY_DEPRECATED_FOR(since, replacement) __declspec(deprecated("Since " #since "; use " #replacement)) #elif \ (HEDLEY_HAS_EXTENSION(attribute_deprecated_with_message) && !defined(HEDLEY_IAR_VERSION)) || \ HEDLEY_GCC_VERSION_CHECK(4,5,0) || \ HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ HEDLEY_ARM_VERSION_CHECK(5,6,0) || \ HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) || \ HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ HEDLEY_TI_VERSION_CHECK(18,1,0) || \ HEDLEY_TI_ARMCL_VERSION_CHECK(18,1,0) || \ HEDLEY_TI_CL6X_VERSION_CHECK(8,3,0) || \ HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ HEDLEY_TI_CLPRU_VERSION_CHECK(2,3,0) || \ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) # define HEDLEY_DEPRECATED(since) __attribute__((__deprecated__("Since " #since))) # define HEDLEY_DEPRECATED_FOR(since, replacement) __attribute__((__deprecated__("Since " #since "; use " #replacement))) #elif defined(__cplusplus) && (__cplusplus >= 201402L) # define HEDLEY_DEPRECATED(since) HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[deprecated("Since " #since)]]) # define HEDLEY_DEPRECATED_FOR(since, replacement) HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[deprecated("Since " #since "; use " #replacement)]]) #elif \ HEDLEY_HAS_ATTRIBUTE(deprecated) || \ HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ HEDLEY_TI_VERSION_CHECK(15,12,0) || \ (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ (HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ (HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \ HEDLEY_IAR_VERSION_CHECK(8,10,0) # define HEDLEY_DEPRECATED(since) __attribute__((__deprecated__)) # define HEDLEY_DEPRECATED_FOR(since, replacement) __attribute__((__deprecated__)) #elif \ HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ HEDLEY_PELLES_VERSION_CHECK(6,50,0) || \ HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) # define HEDLEY_DEPRECATED(since) __declspec(deprecated) # define HEDLEY_DEPRECATED_FOR(since, replacement) __declspec(deprecated) #elif HEDLEY_IAR_VERSION_CHECK(8,0,0) # define HEDLEY_DEPRECATED(since) _Pragma("deprecated") # define HEDLEY_DEPRECATED_FOR(since, replacement) _Pragma("deprecated") #else # define HEDLEY_DEPRECATED(since) # define HEDLEY_DEPRECATED_FOR(since, replacement) #endif #if defined(HEDLEY_UNAVAILABLE) # undef HEDLEY_UNAVAILABLE #endif #if \ HEDLEY_HAS_ATTRIBUTE(warning) || \ HEDLEY_GCC_VERSION_CHECK(4,3,0) || \ HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) # define HEDLEY_UNAVAILABLE(available_since) __attribute__((__warning__("Not available until " #available_since))) #else # define HEDLEY_UNAVAILABLE(available_since) #endif #if defined(HEDLEY_WARN_UNUSED_RESULT) # undef HEDLEY_WARN_UNUSED_RESULT #endif #if defined(HEDLEY_WARN_UNUSED_RESULT_MSG) # undef HEDLEY_WARN_UNUSED_RESULT_MSG #endif #if \ HEDLEY_HAS_ATTRIBUTE(warn_unused_result) || \ HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ HEDLEY_TI_VERSION_CHECK(15,12,0) || \ (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ (HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ (HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ (HEDLEY_SUNPRO_VERSION_CHECK(5,15,0) && defined(__cplusplus)) || \ HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) # define HEDLEY_WARN_UNUSED_RESULT __attribute__((__warn_unused_result__)) # define HEDLEY_WARN_UNUSED_RESULT_MSG(msg) __attribute__((__warn_unused_result__)) #elif (HEDLEY_HAS_CPP_ATTRIBUTE(nodiscard) >= 201907L) # define HEDLEY_WARN_UNUSED_RESULT HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]]) # define HEDLEY_WARN_UNUSED_RESULT_MSG(msg) HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard(msg)]]) #elif HEDLEY_HAS_CPP_ATTRIBUTE(nodiscard) # define HEDLEY_WARN_UNUSED_RESULT HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]]) # define HEDLEY_WARN_UNUSED_RESULT_MSG(msg) HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]]) #elif defined(_Check_return_) /* SAL */ # define HEDLEY_WARN_UNUSED_RESULT _Check_return_ # define HEDLEY_WARN_UNUSED_RESULT_MSG(msg) _Check_return_ #else # define HEDLEY_WARN_UNUSED_RESULT # define HEDLEY_WARN_UNUSED_RESULT_MSG(msg) #endif #if defined(HEDLEY_SENTINEL) # undef HEDLEY_SENTINEL #endif #if \ HEDLEY_HAS_ATTRIBUTE(sentinel) || \ HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ HEDLEY_ARM_VERSION_CHECK(5,4,0) || \ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) # define HEDLEY_SENTINEL(position) __attribute__((__sentinel__(position))) #else # define HEDLEY_SENTINEL(position) #endif #if defined(HEDLEY_NO_RETURN) # undef HEDLEY_NO_RETURN #endif #if HEDLEY_IAR_VERSION_CHECK(8,0,0) # define HEDLEY_NO_RETURN __noreturn #elif \ HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) # define HEDLEY_NO_RETURN __attribute__((__noreturn__)) #elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L # define HEDLEY_NO_RETURN _Noreturn #elif defined(__cplusplus) && (__cplusplus >= 201103L) # define HEDLEY_NO_RETURN HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[noreturn]]) #elif \ HEDLEY_HAS_ATTRIBUTE(noreturn) || \ HEDLEY_GCC_VERSION_CHECK(3,2,0) || \ HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ HEDLEY_TI_VERSION_CHECK(15,12,0) || \ (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ (HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ (HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ HEDLEY_IAR_VERSION_CHECK(8,10,0) # define HEDLEY_NO_RETURN __attribute__((__noreturn__)) #elif HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) # define HEDLEY_NO_RETURN _Pragma("does_not_return") #elif \ HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) # define HEDLEY_NO_RETURN __declspec(noreturn) #elif HEDLEY_TI_CL6X_VERSION_CHECK(6,0,0) && defined(__cplusplus) # define HEDLEY_NO_RETURN _Pragma("FUNC_NEVER_RETURNS;") #elif HEDLEY_COMPCERT_VERSION_CHECK(3,2,0) # define HEDLEY_NO_RETURN __attribute((noreturn)) #elif HEDLEY_PELLES_VERSION_CHECK(9,0,0) # define HEDLEY_NO_RETURN __declspec(noreturn) #else # define HEDLEY_NO_RETURN #endif #if defined(HEDLEY_NO_ESCAPE) # undef HEDLEY_NO_ESCAPE #endif #if HEDLEY_HAS_ATTRIBUTE(noescape) # define HEDLEY_NO_ESCAPE __attribute__((__noescape__)) #else # define HEDLEY_NO_ESCAPE #endif #if defined(HEDLEY_UNREACHABLE) # undef HEDLEY_UNREACHABLE #endif #if defined(HEDLEY_UNREACHABLE_RETURN) # undef HEDLEY_UNREACHABLE_RETURN #endif #if defined(HEDLEY_ASSUME) # undef HEDLEY_ASSUME #endif #if \ HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) # define HEDLEY_ASSUME(expr) __assume(expr) #elif HEDLEY_HAS_BUILTIN(__builtin_assume) # define HEDLEY_ASSUME(expr) __builtin_assume(expr) #elif \ HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \ HEDLEY_TI_CL6X_VERSION_CHECK(4,0,0) # if defined(__cplusplus) # define HEDLEY_ASSUME(expr) std::_nassert(expr) # else # define HEDLEY_ASSUME(expr) _nassert(expr) # endif #endif #if \ (HEDLEY_HAS_BUILTIN(__builtin_unreachable) && (!defined(HEDLEY_ARM_VERSION))) || \ HEDLEY_GCC_VERSION_CHECK(4,5,0) || \ HEDLEY_PGI_VERSION_CHECK(18,10,0) || \ HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ HEDLEY_IBM_VERSION_CHECK(13,1,5) || \ HEDLEY_CRAY_VERSION_CHECK(10,0,0) || \ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) # define HEDLEY_UNREACHABLE() __builtin_unreachable() #elif defined(HEDLEY_ASSUME) # define HEDLEY_UNREACHABLE() HEDLEY_ASSUME(0) #endif #if !defined(HEDLEY_ASSUME) # if defined(HEDLEY_UNREACHABLE) # define HEDLEY_ASSUME(expr) HEDLEY_STATIC_CAST(void, ((expr) ? 1 : (HEDLEY_UNREACHABLE(), 1))) # else # define HEDLEY_ASSUME(expr) HEDLEY_STATIC_CAST(void, expr) # endif #endif #if defined(HEDLEY_UNREACHABLE) # if \ HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \ HEDLEY_TI_CL6X_VERSION_CHECK(4,0,0) # define HEDLEY_UNREACHABLE_RETURN(value) return (HEDLEY_STATIC_CAST(void, HEDLEY_ASSUME(0)), (value)) # else # define HEDLEY_UNREACHABLE_RETURN(value) HEDLEY_UNREACHABLE() # endif #else # define HEDLEY_UNREACHABLE_RETURN(value) return (value) #endif #if !defined(HEDLEY_UNREACHABLE) # define HEDLEY_UNREACHABLE() HEDLEY_ASSUME(0) #endif HEDLEY_DIAGNOSTIC_PUSH #if HEDLEY_HAS_WARNING("-Wpedantic") # pragma clang diagnostic ignored "-Wpedantic" #endif #if HEDLEY_HAS_WARNING("-Wc++98-compat-pedantic") && defined(__cplusplus) # pragma clang diagnostic ignored "-Wc++98-compat-pedantic" #endif #if HEDLEY_GCC_HAS_WARNING("-Wvariadic-macros",4,0,0) # if defined(__clang__) # pragma clang diagnostic ignored "-Wvariadic-macros" # elif defined(HEDLEY_GCC_VERSION) # pragma GCC diagnostic ignored "-Wvariadic-macros" # endif #endif #if defined(HEDLEY_NON_NULL) # undef HEDLEY_NON_NULL #endif #if \ HEDLEY_HAS_ATTRIBUTE(nonnull) || \ HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ HEDLEY_ARM_VERSION_CHECK(4,1,0) # define HEDLEY_NON_NULL(...) __attribute__((__nonnull__(__VA_ARGS__))) #else # define HEDLEY_NON_NULL(...) #endif HEDLEY_DIAGNOSTIC_POP #if defined(HEDLEY_PRINTF_FORMAT) # undef HEDLEY_PRINTF_FORMAT #endif #if defined(__MINGW32__) && HEDLEY_GCC_HAS_ATTRIBUTE(format,4,4,0) && !defined(__USE_MINGW_ANSI_STDIO) # define HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(ms_printf, string_idx, first_to_check))) #elif defined(__MINGW32__) && HEDLEY_GCC_HAS_ATTRIBUTE(format,4,4,0) && defined(__USE_MINGW_ANSI_STDIO) # define HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(gnu_printf, string_idx, first_to_check))) #elif \ HEDLEY_HAS_ATTRIBUTE(format) || \ HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ HEDLEY_ARM_VERSION_CHECK(5,6,0) || \ HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ HEDLEY_TI_VERSION_CHECK(15,12,0) || \ (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ (HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ (HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) # define HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(__printf__, string_idx, first_to_check))) #elif HEDLEY_PELLES_VERSION_CHECK(6,0,0) # define HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __declspec(vaformat(printf,string_idx,first_to_check)) #else # define HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) #endif #if defined(HEDLEY_CONSTEXPR) # undef HEDLEY_CONSTEXPR #endif #if defined(__cplusplus) # if __cplusplus >= 201103L # define HEDLEY_CONSTEXPR HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(constexpr) # endif #endif #if !defined(HEDLEY_CONSTEXPR) # define HEDLEY_CONSTEXPR #endif #if defined(HEDLEY_PREDICT) # undef HEDLEY_PREDICT #endif #if defined(HEDLEY_LIKELY) # undef HEDLEY_LIKELY #endif #if defined(HEDLEY_UNLIKELY) # undef HEDLEY_UNLIKELY #endif #if defined(HEDLEY_UNPREDICTABLE) # undef HEDLEY_UNPREDICTABLE #endif #if HEDLEY_HAS_BUILTIN(__builtin_unpredictable) # define HEDLEY_UNPREDICTABLE(expr) __builtin_unpredictable((expr)) #endif #if \ (HEDLEY_HAS_BUILTIN(__builtin_expect_with_probability) && !defined(HEDLEY_PGI_VERSION)) || \ HEDLEY_GCC_VERSION_CHECK(9,0,0) || \ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) # define HEDLEY_PREDICT(expr, value, probability) __builtin_expect_with_probability( (expr), (value), (probability)) # define HEDLEY_PREDICT_TRUE(expr, probability) __builtin_expect_with_probability(!!(expr), 1 , (probability)) # define HEDLEY_PREDICT_FALSE(expr, probability) __builtin_expect_with_probability(!!(expr), 0 , (probability)) # define HEDLEY_LIKELY(expr) __builtin_expect (!!(expr), 1 ) # define HEDLEY_UNLIKELY(expr) __builtin_expect (!!(expr), 0 ) #elif \ (HEDLEY_HAS_BUILTIN(__builtin_expect) && !defined(HEDLEY_INTEL_CL_VERSION)) || \ HEDLEY_GCC_VERSION_CHECK(3,0,0) || \ HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ (HEDLEY_SUNPRO_VERSION_CHECK(5,15,0) && defined(__cplusplus)) || \ HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ HEDLEY_TI_VERSION_CHECK(15,12,0) || \ HEDLEY_TI_ARMCL_VERSION_CHECK(4,7,0) || \ HEDLEY_TI_CL430_VERSION_CHECK(3,1,0) || \ HEDLEY_TI_CL2000_VERSION_CHECK(6,1,0) || \ HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \ HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ HEDLEY_TINYC_VERSION_CHECK(0,9,27) || \ HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) # define HEDLEY_PREDICT(expr, expected, probability) \ (((probability) >= 0.9) ? __builtin_expect((expr), (expected)) : (HEDLEY_STATIC_CAST(void, expected), (expr))) # define HEDLEY_PREDICT_TRUE(expr, probability) \ (__extension__ ({ \ double hedley_probability_ = (probability); \ ((hedley_probability_ >= 0.9) ? __builtin_expect(!!(expr), 1) : ((hedley_probability_ <= 0.1) ? __builtin_expect(!!(expr), 0) : !!(expr))); \ })) # define HEDLEY_PREDICT_FALSE(expr, probability) \ (__extension__ ({ \ double hedley_probability_ = (probability); \ ((hedley_probability_ >= 0.9) ? __builtin_expect(!!(expr), 0) : ((hedley_probability_ <= 0.1) ? __builtin_expect(!!(expr), 1) : !!(expr))); \ })) # define HEDLEY_LIKELY(expr) __builtin_expect(!!(expr), 1) # define HEDLEY_UNLIKELY(expr) __builtin_expect(!!(expr), 0) #else # define HEDLEY_PREDICT(expr, expected, probability) (HEDLEY_STATIC_CAST(void, expected), (expr)) # define HEDLEY_PREDICT_TRUE(expr, probability) (!!(expr)) # define HEDLEY_PREDICT_FALSE(expr, probability) (!!(expr)) # define HEDLEY_LIKELY(expr) (!!(expr)) # define HEDLEY_UNLIKELY(expr) (!!(expr)) #endif #if !defined(HEDLEY_UNPREDICTABLE) # define HEDLEY_UNPREDICTABLE(expr) HEDLEY_PREDICT(expr, 1, 0.5) #endif #if defined(HEDLEY_MALLOC) # undef HEDLEY_MALLOC #endif #if \ HEDLEY_HAS_ATTRIBUTE(malloc) || \ HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ HEDLEY_IBM_VERSION_CHECK(12,1,0) || \ HEDLEY_TI_VERSION_CHECK(15,12,0) || \ (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ (HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ (HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) # define HEDLEY_MALLOC __attribute__((__malloc__)) #elif HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) # define HEDLEY_MALLOC _Pragma("returns_new_memory") #elif \ HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \ HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) # define HEDLEY_MALLOC __declspec(restrict) #else # define HEDLEY_MALLOC #endif #if defined(HEDLEY_PURE) # undef HEDLEY_PURE #endif #if \ HEDLEY_HAS_ATTRIBUTE(pure) || \ HEDLEY_GCC_VERSION_CHECK(2,96,0) || \ HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ HEDLEY_TI_VERSION_CHECK(15,12,0) || \ (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ (HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ (HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) # define HEDLEY_PURE __attribute__((__pure__)) #elif HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) # define HEDLEY_PURE _Pragma("does_not_write_global_data") #elif defined(__cplusplus) && \ ( \ HEDLEY_TI_CL430_VERSION_CHECK(2,0,1) || \ HEDLEY_TI_CL6X_VERSION_CHECK(4,0,0) || \ HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) \ ) # define HEDLEY_PURE _Pragma("FUNC_IS_PURE;") #else # define HEDLEY_PURE #endif #if defined(HEDLEY_CONST) # undef HEDLEY_CONST #endif #if \ HEDLEY_HAS_ATTRIBUTE(const) || \ HEDLEY_GCC_VERSION_CHECK(2,5,0) || \ HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ HEDLEY_TI_VERSION_CHECK(15,12,0) || \ (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ (HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ (HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) # define HEDLEY_CONST __attribute__((__const__)) #elif \ HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) # define HEDLEY_CONST _Pragma("no_side_effect") #else # define HEDLEY_CONST HEDLEY_PURE #endif #if defined(HEDLEY_RESTRICT) # undef HEDLEY_RESTRICT #endif #if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && !defined(__cplusplus) # define HEDLEY_RESTRICT restrict #elif \ HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \ HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) || \ HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ HEDLEY_TI_CL2000_VERSION_CHECK(6,2,4) || \ HEDLEY_TI_CL6X_VERSION_CHECK(8,1,0) || \ HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ (HEDLEY_SUNPRO_VERSION_CHECK(5,14,0) && defined(__cplusplus)) || \ HEDLEY_IAR_VERSION_CHECK(8,0,0) || \ defined(__clang__) || \ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) # define HEDLEY_RESTRICT __restrict #elif HEDLEY_SUNPRO_VERSION_CHECK(5,3,0) && !defined(__cplusplus) # define HEDLEY_RESTRICT _Restrict #else # define HEDLEY_RESTRICT #endif #if defined(HEDLEY_INLINE) # undef HEDLEY_INLINE #endif #if \ (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || \ (defined(__cplusplus) && (__cplusplus >= 199711L)) # define HEDLEY_INLINE inline #elif \ defined(HEDLEY_GCC_VERSION) || \ HEDLEY_ARM_VERSION_CHECK(6,2,0) # define HEDLEY_INLINE __inline__ #elif \ HEDLEY_MSVC_VERSION_CHECK(12,0,0) || \ HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) || \ HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ HEDLEY_TI_ARMCL_VERSION_CHECK(5,1,0) || \ HEDLEY_TI_CL430_VERSION_CHECK(3,1,0) || \ HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \ HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) || \ HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) # define HEDLEY_INLINE __inline #else # define HEDLEY_INLINE #endif #if defined(HEDLEY_ALWAYS_INLINE) # undef HEDLEY_ALWAYS_INLINE #endif #if \ HEDLEY_HAS_ATTRIBUTE(always_inline) || \ HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ HEDLEY_TI_VERSION_CHECK(15,12,0) || \ (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ (HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ (HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \ HEDLEY_IAR_VERSION_CHECK(8,10,0) # define HEDLEY_ALWAYS_INLINE __attribute__((__always_inline__)) HEDLEY_INLINE #elif \ HEDLEY_MSVC_VERSION_CHECK(12,0,0) || \ HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) # define HEDLEY_ALWAYS_INLINE __forceinline #elif defined(__cplusplus) && \ ( \ HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \ HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) \ ) # define HEDLEY_ALWAYS_INLINE _Pragma("FUNC_ALWAYS_INLINE;") #elif HEDLEY_IAR_VERSION_CHECK(8,0,0) # define HEDLEY_ALWAYS_INLINE _Pragma("inline=forced") #else # define HEDLEY_ALWAYS_INLINE HEDLEY_INLINE #endif #if defined(HEDLEY_NEVER_INLINE) # undef HEDLEY_NEVER_INLINE #endif #if \ HEDLEY_HAS_ATTRIBUTE(noinline) || \ HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ HEDLEY_TI_VERSION_CHECK(15,12,0) || \ (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ (HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ (HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \ HEDLEY_IAR_VERSION_CHECK(8,10,0) # define HEDLEY_NEVER_INLINE __attribute__((__noinline__)) #elif \ HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) # define HEDLEY_NEVER_INLINE __declspec(noinline) #elif HEDLEY_PGI_VERSION_CHECK(10,2,0) # define HEDLEY_NEVER_INLINE _Pragma("noinline") #elif HEDLEY_TI_CL6X_VERSION_CHECK(6,0,0) && defined(__cplusplus) # define HEDLEY_NEVER_INLINE _Pragma("FUNC_CANNOT_INLINE;") #elif HEDLEY_IAR_VERSION_CHECK(8,0,0) # define HEDLEY_NEVER_INLINE _Pragma("inline=never") #elif HEDLEY_COMPCERT_VERSION_CHECK(3,2,0) # define HEDLEY_NEVER_INLINE __attribute((noinline)) #elif HEDLEY_PELLES_VERSION_CHECK(9,0,0) # define HEDLEY_NEVER_INLINE __declspec(noinline) #else # define HEDLEY_NEVER_INLINE #endif #if defined(HEDLEY_PRIVATE) # undef HEDLEY_PRIVATE #endif #if defined(HEDLEY_PUBLIC) # undef HEDLEY_PUBLIC #endif #if defined(HEDLEY_IMPORT) # undef HEDLEY_IMPORT #endif #if defined(_WIN32) || defined(__CYGWIN__) # define HEDLEY_PRIVATE # define HEDLEY_PUBLIC __declspec(dllexport) # define HEDLEY_IMPORT __declspec(dllimport) #else # if \ HEDLEY_HAS_ATTRIBUTE(visibility) || \ HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ ( \ defined(__TI_EABI__) && \ ( \ (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) \ ) \ ) || \ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) # define HEDLEY_PRIVATE __attribute__((__visibility__("hidden"))) # define HEDLEY_PUBLIC __attribute__((__visibility__("default"))) # else # define HEDLEY_PRIVATE # define HEDLEY_PUBLIC # endif # define HEDLEY_IMPORT extern #endif #if defined(HEDLEY_NO_THROW) # undef HEDLEY_NO_THROW #endif #if \ HEDLEY_HAS_ATTRIBUTE(nothrow) || \ HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) # define HEDLEY_NO_THROW __attribute__((__nothrow__)) #elif \ HEDLEY_MSVC_VERSION_CHECK(13,1,0) || \ HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) || \ HEDLEY_ARM_VERSION_CHECK(4,1,0) # define HEDLEY_NO_THROW __declspec(nothrow) #else # define HEDLEY_NO_THROW #endif #if defined(HEDLEY_FALL_THROUGH) # undef HEDLEY_FALL_THROUGH #endif #if \ HEDLEY_HAS_ATTRIBUTE(fallthrough) || \ HEDLEY_GCC_VERSION_CHECK(7,0,0) || \ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) # define HEDLEY_FALL_THROUGH __attribute__((__fallthrough__)) #elif HEDLEY_HAS_CPP_ATTRIBUTE_NS(clang,fallthrough) # define HEDLEY_FALL_THROUGH HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[clang::fallthrough]]) #elif HEDLEY_HAS_CPP_ATTRIBUTE(fallthrough) # define HEDLEY_FALL_THROUGH HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[fallthrough]]) #elif defined(__fallthrough) /* SAL */ # define HEDLEY_FALL_THROUGH __fallthrough #else # define HEDLEY_FALL_THROUGH #endif #if defined(HEDLEY_RETURNS_NON_NULL) # undef HEDLEY_RETURNS_NON_NULL #endif #if \ HEDLEY_HAS_ATTRIBUTE(returns_nonnull) || \ HEDLEY_GCC_VERSION_CHECK(4,9,0) || \ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) # define HEDLEY_RETURNS_NON_NULL __attribute__((__returns_nonnull__)) #elif defined(_Ret_notnull_) /* SAL */ # define HEDLEY_RETURNS_NON_NULL _Ret_notnull_ #else # define HEDLEY_RETURNS_NON_NULL #endif #if defined(HEDLEY_ARRAY_PARAM) # undef HEDLEY_ARRAY_PARAM #endif #if \ defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && \ !defined(__STDC_NO_VLA__) && \ !defined(__cplusplus) && \ !defined(HEDLEY_PGI_VERSION) && \ !defined(HEDLEY_TINYC_VERSION) # define HEDLEY_ARRAY_PARAM(name) (name) #else # define HEDLEY_ARRAY_PARAM(name) #endif #if defined(HEDLEY_IS_CONSTANT) # undef HEDLEY_IS_CONSTANT #endif #if defined(HEDLEY_REQUIRE_CONSTEXPR) # undef HEDLEY_REQUIRE_CONSTEXPR #endif /* HEDLEY_IS_CONSTEXPR_ is for HEDLEY INTERNAL USE ONLY. API subject to change without notice. */ #if defined(HEDLEY_IS_CONSTEXPR_) # undef HEDLEY_IS_CONSTEXPR_ #endif #if \ HEDLEY_HAS_BUILTIN(__builtin_constant_p) || \ HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ HEDLEY_TINYC_VERSION_CHECK(0,9,19) || \ HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \ (HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) && !defined(__cplusplus)) || \ HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) # define HEDLEY_IS_CONSTANT(expr) __builtin_constant_p(expr) #endif #if !defined(__cplusplus) # if \ HEDLEY_HAS_BUILTIN(__builtin_types_compatible_p) || \ HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ HEDLEY_ARM_VERSION_CHECK(5,4,0) || \ HEDLEY_TINYC_VERSION_CHECK(0,9,24) # if defined(__INTPTR_TYPE__) # define HEDLEY_IS_CONSTEXPR_(expr) __builtin_types_compatible_p(__typeof__((1 ? (void*) ((__INTPTR_TYPE__) ((expr) * 0)) : (int*) 0)), int*) # else # include # define HEDLEY_IS_CONSTEXPR_(expr) __builtin_types_compatible_p(__typeof__((1 ? (void*) ((intptr_t) ((expr) * 0)) : (int*) 0)), int*) # endif # elif \ ( \ defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && \ !defined(HEDLEY_SUNPRO_VERSION) && \ !defined(HEDLEY_PGI_VERSION) && \ !defined(HEDLEY_IAR_VERSION)) || \ (HEDLEY_HAS_EXTENSION(c_generic_selections) && !defined(HEDLEY_IAR_VERSION)) || \ HEDLEY_GCC_VERSION_CHECK(4,9,0) || \ HEDLEY_INTEL_VERSION_CHECK(17,0,0) || \ HEDLEY_IBM_VERSION_CHECK(12,1,0) || \ HEDLEY_ARM_VERSION_CHECK(5,3,0) # if defined(__INTPTR_TYPE__) # define HEDLEY_IS_CONSTEXPR_(expr) _Generic((1 ? (void*) ((__INTPTR_TYPE__) ((expr) * 0)) : (int*) 0), int*: 1, void*: 0) # else # include # define HEDLEY_IS_CONSTEXPR_(expr) _Generic((1 ? (void*) ((intptr_t) * 0) : (int*) 0), int*: 1, void*: 0) # endif # elif \ defined(HEDLEY_GCC_VERSION) || \ defined(HEDLEY_INTEL_VERSION) || \ defined(HEDLEY_TINYC_VERSION) || \ defined(HEDLEY_TI_ARMCL_VERSION) || \ HEDLEY_TI_CL430_VERSION_CHECK(18,12,0) || \ defined(HEDLEY_TI_CL2000_VERSION) || \ defined(HEDLEY_TI_CL6X_VERSION) || \ defined(HEDLEY_TI_CL7X_VERSION) || \ defined(HEDLEY_TI_CLPRU_VERSION) || \ defined(__clang__) # define HEDLEY_IS_CONSTEXPR_(expr) ( \ sizeof(void) != \ sizeof(*( \ 1 ? \ ((void*) ((expr) * 0L) ) : \ ((struct { char v[sizeof(void) * 2]; } *) 1) \ ) \ ) \ ) # endif #endif #if defined(HEDLEY_IS_CONSTEXPR_) # if !defined(HEDLEY_IS_CONSTANT) # define HEDLEY_IS_CONSTANT(expr) HEDLEY_IS_CONSTEXPR_(expr) # endif # define HEDLEY_REQUIRE_CONSTEXPR(expr) (HEDLEY_IS_CONSTEXPR_(expr) ? (expr) : (-1)) #else # if !defined(HEDLEY_IS_CONSTANT) # define HEDLEY_IS_CONSTANT(expr) (0) # endif # define HEDLEY_REQUIRE_CONSTEXPR(expr) (expr) #endif #if defined(HEDLEY_BEGIN_C_DECLS) # undef HEDLEY_BEGIN_C_DECLS #endif #if defined(HEDLEY_END_C_DECLS) # undef HEDLEY_END_C_DECLS #endif #if defined(HEDLEY_C_DECL) # undef HEDLEY_C_DECL #endif #if defined(__cplusplus) # define HEDLEY_BEGIN_C_DECLS extern "C" { # define HEDLEY_END_C_DECLS } # define HEDLEY_C_DECL extern "C" #else # define HEDLEY_BEGIN_C_DECLS # define HEDLEY_END_C_DECLS # define HEDLEY_C_DECL #endif #if defined(HEDLEY_STATIC_ASSERT) # undef HEDLEY_STATIC_ASSERT #endif #if \ !defined(__cplusplus) && ( \ (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)) || \ (HEDLEY_HAS_FEATURE(c_static_assert) && !defined(HEDLEY_INTEL_CL_VERSION)) || \ HEDLEY_GCC_VERSION_CHECK(6,0,0) || \ HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ defined(_Static_assert) \ ) # define HEDLEY_STATIC_ASSERT(expr, message) _Static_assert(expr, message) #elif \ (defined(__cplusplus) && (__cplusplus >= 201103L)) || \ HEDLEY_MSVC_VERSION_CHECK(16,0,0) || \ HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) # define HEDLEY_STATIC_ASSERT(expr, message) HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(static_assert(expr, message)) #else # define HEDLEY_STATIC_ASSERT(expr, message) #endif #if defined(HEDLEY_NULL) # undef HEDLEY_NULL #endif #if defined(__cplusplus) # if __cplusplus >= 201103L # define HEDLEY_NULL HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(nullptr) # elif defined(NULL) # define HEDLEY_NULL NULL # else # define HEDLEY_NULL HEDLEY_STATIC_CAST(void*, 0) # endif #elif defined(NULL) # define HEDLEY_NULL NULL #else # define HEDLEY_NULL ((void*) 0) #endif #if defined(HEDLEY_MESSAGE) # undef HEDLEY_MESSAGE #endif #if HEDLEY_HAS_WARNING("-Wunknown-pragmas") # define HEDLEY_MESSAGE(msg) \ HEDLEY_DIAGNOSTIC_PUSH \ HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS \ HEDLEY_PRAGMA(message msg) \ HEDLEY_DIAGNOSTIC_POP #elif \ HEDLEY_GCC_VERSION_CHECK(4,4,0) || \ HEDLEY_INTEL_VERSION_CHECK(13,0,0) # define HEDLEY_MESSAGE(msg) HEDLEY_PRAGMA(message msg) #elif HEDLEY_CRAY_VERSION_CHECK(5,0,0) # define HEDLEY_MESSAGE(msg) HEDLEY_PRAGMA(_CRI message msg) #elif HEDLEY_IAR_VERSION_CHECK(8,0,0) # define HEDLEY_MESSAGE(msg) HEDLEY_PRAGMA(message(msg)) #elif HEDLEY_PELLES_VERSION_CHECK(2,0,0) # define HEDLEY_MESSAGE(msg) HEDLEY_PRAGMA(message(msg)) #else # define HEDLEY_MESSAGE(msg) #endif #if defined(HEDLEY_WARNING) # undef HEDLEY_WARNING #endif #if HEDLEY_HAS_WARNING("-Wunknown-pragmas") # define HEDLEY_WARNING(msg) \ HEDLEY_DIAGNOSTIC_PUSH \ HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS \ HEDLEY_PRAGMA(clang warning msg) \ HEDLEY_DIAGNOSTIC_POP #elif \ HEDLEY_GCC_VERSION_CHECK(4,8,0) || \ HEDLEY_PGI_VERSION_CHECK(18,4,0) || \ HEDLEY_INTEL_VERSION_CHECK(13,0,0) # define HEDLEY_WARNING(msg) HEDLEY_PRAGMA(GCC warning msg) #elif \ HEDLEY_MSVC_VERSION_CHECK(15,0,0) || \ HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) # define HEDLEY_WARNING(msg) HEDLEY_PRAGMA(message(msg)) #else # define HEDLEY_WARNING(msg) HEDLEY_MESSAGE(msg) #endif #if defined(HEDLEY_REQUIRE) # undef HEDLEY_REQUIRE #endif #if defined(HEDLEY_REQUIRE_MSG) # undef HEDLEY_REQUIRE_MSG #endif #if HEDLEY_HAS_ATTRIBUTE(diagnose_if) # if HEDLEY_HAS_WARNING("-Wgcc-compat") # define HEDLEY_REQUIRE(expr) \ HEDLEY_DIAGNOSTIC_PUSH \ _Pragma("clang diagnostic ignored \"-Wgcc-compat\"") \ __attribute__((diagnose_if(!(expr), #expr, "error"))) \ HEDLEY_DIAGNOSTIC_POP # define HEDLEY_REQUIRE_MSG(expr,msg) \ HEDLEY_DIAGNOSTIC_PUSH \ _Pragma("clang diagnostic ignored \"-Wgcc-compat\"") \ __attribute__((diagnose_if(!(expr), msg, "error"))) \ HEDLEY_DIAGNOSTIC_POP # else # define HEDLEY_REQUIRE(expr) __attribute__((diagnose_if(!(expr), #expr, "error"))) # define HEDLEY_REQUIRE_MSG(expr,msg) __attribute__((diagnose_if(!(expr), msg, "error"))) # endif #else # define HEDLEY_REQUIRE(expr) # define HEDLEY_REQUIRE_MSG(expr,msg) #endif #if defined(HEDLEY_FLAGS) # undef HEDLEY_FLAGS #endif #if HEDLEY_HAS_ATTRIBUTE(flag_enum) && (!defined(__cplusplus) || HEDLEY_HAS_WARNING("-Wbitfield-enum-conversion")) # define HEDLEY_FLAGS __attribute__((__flag_enum__)) #else # define HEDLEY_FLAGS #endif #if defined(HEDLEY_FLAGS_CAST) # undef HEDLEY_FLAGS_CAST #endif #if HEDLEY_INTEL_VERSION_CHECK(19,0,0) # define HEDLEY_FLAGS_CAST(T, expr) (__extension__ ({ \ HEDLEY_DIAGNOSTIC_PUSH \ _Pragma("warning(disable:188)") \ ((T) (expr)); \ HEDLEY_DIAGNOSTIC_POP \ })) #else # define HEDLEY_FLAGS_CAST(T, expr) HEDLEY_STATIC_CAST(T, expr) #endif #if defined(HEDLEY_EMPTY_BASES) # undef HEDLEY_EMPTY_BASES #endif #if \ (HEDLEY_MSVC_VERSION_CHECK(19,0,23918) && !HEDLEY_MSVC_VERSION_CHECK(20,0,0)) || \ HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) # define HEDLEY_EMPTY_BASES __declspec(empty_bases) #else # define HEDLEY_EMPTY_BASES #endif /* Remaining macros are deprecated. */ #if defined(HEDLEY_GCC_NOT_CLANG_VERSION_CHECK) # undef HEDLEY_GCC_NOT_CLANG_VERSION_CHECK #endif #if defined(__clang__) # define HEDLEY_GCC_NOT_CLANG_VERSION_CHECK(major,minor,patch) (0) #else # define HEDLEY_GCC_NOT_CLANG_VERSION_CHECK(major,minor,patch) HEDLEY_GCC_VERSION_CHECK(major,minor,patch) #endif #if defined(HEDLEY_CLANG_HAS_ATTRIBUTE) # undef HEDLEY_CLANG_HAS_ATTRIBUTE #endif #define HEDLEY_CLANG_HAS_ATTRIBUTE(attribute) HEDLEY_HAS_ATTRIBUTE(attribute) #if defined(HEDLEY_CLANG_HAS_CPP_ATTRIBUTE) # undef HEDLEY_CLANG_HAS_CPP_ATTRIBUTE #endif #define HEDLEY_CLANG_HAS_CPP_ATTRIBUTE(attribute) HEDLEY_HAS_CPP_ATTRIBUTE(attribute) #if defined(HEDLEY_CLANG_HAS_BUILTIN) # undef HEDLEY_CLANG_HAS_BUILTIN #endif #define HEDLEY_CLANG_HAS_BUILTIN(builtin) HEDLEY_HAS_BUILTIN(builtin) #if defined(HEDLEY_CLANG_HAS_FEATURE) # undef HEDLEY_CLANG_HAS_FEATURE #endif #define HEDLEY_CLANG_HAS_FEATURE(feature) HEDLEY_HAS_FEATURE(feature) #if defined(HEDLEY_CLANG_HAS_EXTENSION) # undef HEDLEY_CLANG_HAS_EXTENSION #endif #define HEDLEY_CLANG_HAS_EXTENSION(extension) HEDLEY_HAS_EXTENSION(extension) #if defined(HEDLEY_CLANG_HAS_DECLSPEC_DECLSPEC_ATTRIBUTE) # undef HEDLEY_CLANG_HAS_DECLSPEC_DECLSPEC_ATTRIBUTE #endif #define HEDLEY_CLANG_HAS_DECLSPEC_ATTRIBUTE(attribute) HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) #if defined(HEDLEY_CLANG_HAS_WARNING) # undef HEDLEY_CLANG_HAS_WARNING #endif #define HEDLEY_CLANG_HAS_WARNING(warning) HEDLEY_HAS_WARNING(warning) #endif /* !defined(HEDLEY_VERSION) || (HEDLEY_VERSION < X) */ par2cmdline-turbo-1.5.0/parpar/src/platform.h000066400000000000000000000270701524160147200211270ustar00rootroot00000000000000 #ifndef PP_PLATFORM_H #define PP_PLATFORM_H #include "hedley.h" #if defined(__x86_64__) || \ defined(__amd64__ ) || \ defined(__LP64 ) || \ defined(_M_X64 ) || \ defined(_M_AMD64 ) || \ (defined(_WIN64) && !defined(_M_ARM64)) #define PLATFORM_AMD64 1 #endif #if defined(PLATFORM_AMD64) || \ defined(__i386__ ) || \ defined(__i486__ ) || \ defined(__i586__ ) || \ defined(__i686__ ) || \ defined(_M_I86 ) || \ defined(_M_IX86 ) || \ (defined(_WIN32) && !defined(_M_ARM) && !defined(_M_ARM64)) #define PLATFORM_X86 1 #endif #if defined(__aarch64__) || \ defined(__armv7__ ) || \ defined(__arm__ ) || \ defined(_M_ARM64 ) || \ defined(_M_ARM ) || \ defined(__ARM_ARCH_6__ ) || \ defined(__ARM_ARCH_7__ ) || \ defined(__ARM_ARCH_7A__) || \ defined(__ARM_ARCH_8A__) || \ (defined(__ARM_ARCH ) && __ARM_ARCH >= 6) #define PLATFORM_ARM 1 #endif #ifdef _MSC_VER # ifndef __BYTE_ORDER__ # define __BYTE_ORDER__ 1234 # endif # ifndef __ORDER_BIG_ENDIAN__ # define __ORDER_BIG_ENDIAN__ 4321 # endif #endif #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ # ifdef __GNUC__ # define _LE16 __builtin_bswap16 # define _LE32 __builtin_bswap32 # define _LE64 __builtin_bswap64 # else // currently not supported # error No endian swap intrinsic defined # endif #else # define _LE16(x) (x) # define _LE32(x) (x) # define _LE64(x) (x) #endif #ifdef _M_ARM64 #define __ARM_NEON 1 #define __aarch64__ 1 #endif #if defined(_M_ARM) #define __ARM_NEON 1 #endif #if defined(_MSC_VER) && !defined(__clang__) # if (defined(_M_IX86_FP) && _M_IX86_FP == 2) || defined(_M_X64) #define __SSE2__ 1 #define __SSSE3__ 1 #define __SSE4_1__ 1 # endif # if !defined(__PCLMUL__) && (_MSC_VER >= 1600 && defined(__SSE2__)) #define __PCLMUL__ 1 # endif # if !defined(__AVX__) && (_MSC_VER >= 1700 && defined(__SSE2__)) #define __AVX__ 1 # endif # if !defined(__AVX2__) && (_MSC_VER >= 1800 && defined(__SSE2__)) #define __AVX2__ 1 # endif # ifdef PLATFORM_AMD64 /* AVX512 requires VS 15.3 */ # if !defined(__AVX512F__) && (_MSC_VER >= 1911 && defined(__AVX__)) #define __AVX512BW__ 1 #define __AVX512F__ 1 # endif /* AVX512VL not available until VS 15.5 */ # if defined(__AVX512F__) && _MSC_VER >= 1912 #define __AVX512VL__ 1 # endif /* VBMI added in 15.7 */ # if defined(__AVX512F__) && _MSC_VER >= 1914 #define __AVX512VBMI__ 1 # endif # else // earlier versions of MSVC have buggy AVX-512 // not investigated fully, but it seems mostly problematic with 32-bit Release builds, so require VS2019 for AVX-512 # if !defined(__AVX512F__) && _MSC_VER >= 1920 && defined(__AVX__) #define __AVX512BW__ 1 #define __AVX512F__ 1 #define __AVX512VL__ 1 #define __AVX512VBMI__ 1 # elif defined(__AVX512F__) && _MSC_VER < 1920 # undef __AVX512F__ # ifdef __AVX512BW__ # undef __AVX512BW__ # endif # ifdef __AVX512VL__ # undef __AVX512VL__ # endif # endif # endif # if defined(__AVX2__) && _MSC_VER >= 1915 #define __VPCLMULQDQ__ 1 # endif # if defined(__SSE2__) && _MSC_VER >= 1920 #define __GFNI__ 1 # endif # if defined(__AVX512F__) && _MSC_VER >= 1951 && defined(PLATFORM_AMD64) // BMM support added in v19.51, but whilst it's defined, 32-bit build doesn't recognise it as an intrinsic so fails during link #define __AVX512BMM__ 1 #define _mm256_bmacxor16x16x16 _mm256_bmacxor16x16x16_epi16 #define _mm512_bmacxor16x16x16 _mm512_bmacxor16x16x16_epi16 # endif # if defined(__aarch64__) && _MSC_VER >= 1930 #define __ARM_FEATURE_SHA3 1 # endif # if defined(__aarch64__) && _MSC_VER >= 1950 // MSVC 19.50 added SVE2 support, but our code crashes the compiler, so disable it until it's fixed //#define __ARM_FEATURE_SVE 1 //#define __ARM_FEATURE_SVE2 1 # endif #endif /* _MSC_VER */ #ifdef __SSE2__ # include #endif #ifdef __SSSE3__ # include #endif #ifdef __SSE4_1__ # include #endif #ifdef __PCLMUL__ # include #endif #ifdef __GFNI__ // workaround for bug in ClangCL < 12: GFNI defines assume AVX512BW is enabled on MSVC // the guards put in place seem to be a performance thing for MSVC, but actually stops it from working here: http://reviews.llvm.org/D20291 # if defined(_MSC_VER) && defined(__clang__) && __clang_major__ < 12 && !defined(__AVX512BW__) # ifdef __AVX512F__ # define __AVX512BW__ # include # undef __AVX512BW__ # elif defined(__AVX2__) # define __AVX512F__ # define __AVX512BW__ # include # undef __AVX512F__ # undef __AVX512BW__ # elif defined(__AVX__) # define __AVX2__ # define __AVX512F__ # define __AVX512BW__ # include # undef __AVX2__ # undef __AVX512F__ # undef __AVX512BW__ # else # include # include # define __AVX__ # define __AVX2__ # define __AVX512F__ # define __AVX512BW__ # include # undef __AVX__ # undef __AVX2__ # undef __AVX512F__ # undef __AVX512BW__ # endif # else # include # endif #endif #ifdef __AVX__ # include #endif // x86 vector upcasts, where upper is defined to be 0 #if (defined(__clang__) && __clang_major__ >= 5 && (!defined(__APPLE__) || __clang_major__ >= 7)) || (defined(__GNUC__) && __GNUC__ >= 10) || (defined(_MSC_VER) && _MSC_VER >= 1910) // intrinsic unsupported in GCC 9 and MSVC < 2017 //# define zext128_256 _mm256_zextsi128_si256 # define zext256_512 _mm512_zextsi256_si512 # define zext128_512 _mm512_zextsi128_si512 # define extract_top128_256(x) _mm256_zextsi128_si256(_mm256_extracti128_si256(x, 1)) #else // technically a cast is incorrect, due to upper 128 bits being undefined, but should usually work fine because it wouldn't make sense for a compiler to do otherwise # ifdef __OPTIMIZE__ //# define zext128_256 _mm256_castsi128_si256 # define zext256_512 _mm512_castsi256_si512 # define zext128_512 _mm512_castsi128_si512 # define extract_top128_256(x) _mm256_castsi128_si256(_mm256_extracti128_si256(x, 1)) # else // alternative may be `_mm256_set_m128i(_mm_setzero_si128(), v)` but unsupported on GCC < 7, and most compilers generate a VINSERTF128 instruction for it // seems like Clang only stores half the register to the stack, if optimization disabled and zero extension not used, causing the top 128-bits to be the old value # define zext256_512(x) _mm512_inserti64x4(_mm512_setzero_si512(), x, 0) # define zext128_512(x) _mm512_inserti32x4(_mm512_setzero_si512(), x, 0) # define extract_top128_256(x) _mm256_permute2x128_si256(x, x, 0x81) # endif #endif // AVX on mingw-gcc is just broken - don't do it... #if defined(HEDLEY_GCC_VERSION) && (defined(__MINGW32__) || defined(__MINGW64__)) && defined(__AVX2__) && defined(PP_PLATFORM_SHOW_WARNINGS) HEDLEY_WARNING("Compiling AVX code on MinGW GCC may cause crashing due to stack alignment bugs [https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54412]"); // as of writing, GCC 10.1 still has this problem, and it doesn't look like it'll be fixed any time soon // ...so if you're reading this, try Clang instead #endif // GCC < 10 has buggy handling of GF2P8AFFINEQB instruction if optimizations are enabled // for SSE encodings, the bug seems to cause the operands to sometimes be placed in the wrong order (example: https://godbolt.org/z/5Yf135) // haven't checked EVEX encoding, but it seems to fail tests there as well // we hack around it by pretending GCC < 10 doesn't support GFNI #if !HEDLEY_GCC_VERSION_CHECK(10,0,0) && defined(HEDLEY_GCC_VERSION) && defined(__OPTIMIZE__) && defined(__GFNI__) # undef __GFNI__ # ifdef PP_PLATFORM_SHOW_WARNINGS HEDLEY_WARNING("GFNI disabled on GCC < 10 due to incorrect GF2P8AFFINEQB operand placement"); # endif #endif #if !HEDLEY_GCC_VERSION_CHECK(5,0,0) && defined(HEDLEY_GCC_VERSION) && defined(__AVX512F__) // missing _mm512_castsi512_si256 - can't compile # undef __AVX512F__ #endif #if (defined(_MSC_VER) && defined(__clang__)) || (defined(PARPAR_SLIM_GF16) && defined(__APPLE__)) // ClangCL's SVE is broken in 20.1.8, so disabled until fixed // No Apple CPU supports SVE, and there's no defined way to detect it, meaning it'll never get used in practice (even if a later CPU supports SVE), so strip out SVE functionality for now # ifdef __ARM_FEATURE_SVE # undef __ARM_FEATURE_SVE # endif # ifdef __ARM_FEATURE_SVE2 # undef __ARM_FEATURE_SVE2 # endif #endif #if defined(__ARM_FEATURE_SVE) && defined(__clang__) && __clang_major__<12 // Clang < 12 has issues with SVE # ifdef __ARM_FEATURE_SVE # undef __ARM_FEATURE_SVE # endif # ifdef __ARM_FEATURE_SVE2 # undef __ARM_FEATURE_SVE2 # endif #endif #if defined(__riscv_vector) && defined(HEDLEY_GCC_VERSION) && !HEDLEY_GCC_VERSION_CHECK(14,0,0) // GCC added RVV intrinsics in GCC13, but GCC13 lacks segmented loads/stores # undef __riscv_vector #endif // Some environments lack ARM headers, so try to check for these #ifdef __has_include # if defined(__ARM_FEATURE_SVE) && !__has_include() # undef __ARM_FEATURE_SVE # ifdef PP_PLATFORM_SHOW_WARNINGS HEDLEY_WARNING("SVE disabled due to missing arm_sve.h header"); # endif # endif # if defined(__ARM_FEATURE_SVE2) && !__has_include() # undef __ARM_FEATURE_SVE2 # ifdef PP_PLATFORM_SHOW_WARNINGS HEDLEY_WARNING("SVE2 disabled due to missing arm_sve.h header"); # endif # endif # if defined(__ARM_NEON) && !__has_include() # undef __ARM_NEON # ifdef PP_PLATFORM_SHOW_WARNINGS HEDLEY_WARNING("NEON disabled due to missing arm_neon.h header"); # endif # endif #endif // alignment #ifdef _MSC_VER # define ALIGN_TO(a, v) __declspec(align(a)) v #else # define ALIGN_TO(a, v) v __attribute__((aligned(a))) #endif #include #if defined(_MSC_VER) || defined(__MINGW32__) || defined(__MINGW64__) // MSVC doesn't support C11 aligned_alloc: https://stackoverflow.com/a/62963007 #define ALIGN_ALLOC(buf, len, align) *(void**)&(buf) = _aligned_malloc((len), align) #define ALIGN_FREE _aligned_free #elif defined(__ANDROID__) // Android NDK may have broken std::aligned_alloc [https://github.com/android/ndk/issues/1339] #include #define ALIGN_ALLOC(buf, len, align) *(void**)&(buf) = memalign(align, (len)) #define ALIGN_FREE free #elif defined(_ISOC11_SOURCE) // C11 method // len needs to be a multiple of alignment, although it sometimes works if it isn't... #define ALIGN_ALLOC(buf, len, align) *(void**)&(buf) = aligned_alloc(align, ((len) + (align)-1) & ~(size_t)((align)-1)) #define ALIGN_FREE free #elif defined(__cplusplus) && __cplusplus >= 201700 // C++17 method #include #define ALIGN_ALLOC(buf, len, align) *(void**)&(buf) = std::aligned_alloc(align, ((len) + (align)-1) & ~(size_t)((align)-1)) #define ALIGN_FREE free #else #define ALIGN_ALLOC(buf, len, align) if(posix_memalign((void**)&(buf), align < sizeof(void*) ? sizeof(void*) : align, (len))) (buf) = NULL #define ALIGN_FREE free #endif // read/write to pointer #include #include "stdint.h" static HEDLEY_ALWAYS_INLINE uint32_t read16(const void* p) { uint16_t v; memcpy(&v, p, 2); return v; } static HEDLEY_ALWAYS_INLINE uint32_t read32(const void* p) { uint32_t v; memcpy(&v, p, 4); return v; } static HEDLEY_ALWAYS_INLINE uint64_t read64(const void* p) { uint64_t v; memcpy(&v, p, 8); return v; } static HEDLEY_ALWAYS_INLINE uintptr_t readPtr(const void* p) { uintptr_t v; memcpy(&v, p, sizeof(uintptr_t)); return v; } static HEDLEY_ALWAYS_INLINE void write16(void* p, uint16_t v) { memcpy(p, &v, 2); } static HEDLEY_ALWAYS_INLINE void write32(void* p, uint32_t v) { memcpy(p, &v, 4); } static HEDLEY_ALWAYS_INLINE void write64(void* p, uint64_t v) { memcpy(p, &v, 8); } static HEDLEY_ALWAYS_INLINE void writePtr(void* p, uintptr_t v) { memcpy(p, &v, sizeof(uintptr_t)); } #endif /* PP_PLATFORM_H */ par2cmdline-turbo-1.5.0/parpar/src/platform_warnings.c000066400000000000000000000001571524160147200230270ustar00rootroot00000000000000// dummy compilation unit to display platform warnings #define PP_PLATFORM_SHOW_WARNINGS #include "platform.h" par2cmdline-turbo-1.5.0/parpar/src/stdint.h000066400000000000000000000171071524160147200206100ustar00rootroot00000000000000// ISO C9x compliant stdint.h for Microsoft Visual Studio // Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 // // Copyright (c) 2006-2008 Alexander Chemeris // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are met: // // 1. Redistributions of source code must retain the above copyright notice, // this list of conditions and the following disclaimer. // // 2. 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. // // 3. The name of the author may be used to endorse or promote products // derived from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. // /////////////////////////////////////////////////////////////////////////////// #if !defined(_MSC_VER) || defined(_STDINT) || _MSC_VER >= 1900 || defined(__clang__) #include #else #ifndef _MSC_STDINT_H_ // [ #define _MSC_STDINT_H_ #if _MSC_VER > 1000 #pragma once #endif #include // For Visual Studio 6 in C++ mode and for many Visual Studio versions when // compiling for ARM we should wrap include with 'extern "C++" {}' // or compiler give many errors like this: // error C2733: second C linkage of overloaded function 'wmemchr' not allowed #ifdef __cplusplus extern "C" { #endif # include #ifdef __cplusplus } #endif // Define _W64 macros to mark types changing their size, like intptr_t. #ifndef _W64 # if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300 # define _W64 __w64 # else # define _W64 # endif #endif // 7.18.1 Integer types // 7.18.1.1 Exact-width integer types // Visual Studio 6 and Embedded Visual C++ 4 doesn't // realize that, e.g. char has the same size as __int8 // so we give up on __intX for them. #if (_MSC_VER < 1300) typedef signed char int8_t; typedef signed short int16_t; typedef signed int int32_t; typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; #else typedef signed __int8 int8_t; typedef signed __int16 int16_t; typedef signed __int32 int32_t; typedef unsigned __int8 uint8_t; typedef unsigned __int16 uint16_t; typedef unsigned __int32 uint32_t; #endif typedef signed __int64 int64_t; typedef unsigned __int64 uint64_t; // 7.18.1.2 Minimum-width integer types typedef int8_t int_least8_t; typedef int16_t int_least16_t; typedef int32_t int_least32_t; typedef int64_t int_least64_t; typedef uint8_t uint_least8_t; typedef uint16_t uint_least16_t; typedef uint32_t uint_least32_t; typedef uint64_t uint_least64_t; // 7.18.1.3 Fastest minimum-width integer types typedef int8_t int_fast8_t; typedef int16_t int_fast16_t; typedef int32_t int_fast32_t; typedef int64_t int_fast64_t; typedef uint8_t uint_fast8_t; typedef uint16_t uint_fast16_t; typedef uint32_t uint_fast32_t; typedef uint64_t uint_fast64_t; // 7.18.1.4 Integer types capable of holding object pointers #ifdef _WIN64 // [ typedef signed __int64 intptr_t; typedef unsigned __int64 uintptr_t; #else // _WIN64 ][ typedef _W64 signed int intptr_t; typedef _W64 unsigned int uintptr_t; #endif // _WIN64 ] // 7.18.1.5 Greatest-width integer types typedef int64_t intmax_t; typedef uint64_t uintmax_t; // 7.18.2 Limits of specified-width integer types #if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [ See footnote 220 at page 257 and footnote 221 at page 259 // 7.18.2.1 Limits of exact-width integer types #define INT8_MIN ((int8_t)_I8_MIN) #define INT8_MAX _I8_MAX #define INT16_MIN ((int16_t)_I16_MIN) #define INT16_MAX _I16_MAX #define INT32_MIN ((int32_t)_I32_MIN) #define INT32_MAX _I32_MAX #define INT64_MIN ((int64_t)_I64_MIN) #define INT64_MAX _I64_MAX #define UINT8_MAX _UI8_MAX #define UINT16_MAX _UI16_MAX #define UINT32_MAX _UI32_MAX #define UINT64_MAX _UI64_MAX // 7.18.2.2 Limits of minimum-width integer types #define INT_LEAST8_MIN INT8_MIN #define INT_LEAST8_MAX INT8_MAX #define INT_LEAST16_MIN INT16_MIN #define INT_LEAST16_MAX INT16_MAX #define INT_LEAST32_MIN INT32_MIN #define INT_LEAST32_MAX INT32_MAX #define INT_LEAST64_MIN INT64_MIN #define INT_LEAST64_MAX INT64_MAX #define UINT_LEAST8_MAX UINT8_MAX #define UINT_LEAST16_MAX UINT16_MAX #define UINT_LEAST32_MAX UINT32_MAX #define UINT_LEAST64_MAX UINT64_MAX // 7.18.2.3 Limits of fastest minimum-width integer types #define INT_FAST8_MIN INT8_MIN #define INT_FAST8_MAX INT8_MAX #define INT_FAST16_MIN INT16_MIN #define INT_FAST16_MAX INT16_MAX #define INT_FAST32_MIN INT32_MIN #define INT_FAST32_MAX INT32_MAX #define INT_FAST64_MIN INT64_MIN #define INT_FAST64_MAX INT64_MAX #define UINT_FAST8_MAX UINT8_MAX #define UINT_FAST16_MAX UINT16_MAX #define UINT_FAST32_MAX UINT32_MAX #define UINT_FAST64_MAX UINT64_MAX // 7.18.2.4 Limits of integer types capable of holding object pointers #ifdef _WIN64 // [ # define INTPTR_MIN INT64_MIN # define INTPTR_MAX INT64_MAX # define UINTPTR_MAX UINT64_MAX #else // _WIN64 ][ # define INTPTR_MIN INT32_MIN # define INTPTR_MAX INT32_MAX # define UINTPTR_MAX UINT32_MAX #endif // _WIN64 ] // 7.18.2.5 Limits of greatest-width integer types #define INTMAX_MIN INT64_MIN #define INTMAX_MAX INT64_MAX #define UINTMAX_MAX UINT64_MAX // 7.18.3 Limits of other integer types #ifdef _WIN64 // [ # define PTRDIFF_MIN _I64_MIN # define PTRDIFF_MAX _I64_MAX #else // _WIN64 ][ # define PTRDIFF_MIN _I32_MIN # define PTRDIFF_MAX _I32_MAX #endif // _WIN64 ] #define SIG_ATOMIC_MIN INT_MIN #define SIG_ATOMIC_MAX INT_MAX #ifndef SIZE_MAX // [ # ifdef _WIN64 // [ # define SIZE_MAX _UI64_MAX # else // _WIN64 ][ # define SIZE_MAX _UI32_MAX # endif // _WIN64 ] #endif // SIZE_MAX ] // WCHAR_MIN and WCHAR_MAX are also defined in #ifndef WCHAR_MIN // [ # define WCHAR_MIN 0 #endif // WCHAR_MIN ] #ifndef WCHAR_MAX // [ # define WCHAR_MAX _UI16_MAX #endif // WCHAR_MAX ] #define WINT_MIN 0 #define WINT_MAX _UI16_MAX #endif // __STDC_LIMIT_MACROS ] // 7.18.4 Limits of other integer types #if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [ See footnote 224 at page 260 // 7.18.4.1 Macros for minimum-width integer constants #define INT8_C(val) val##i8 #define INT16_C(val) val##i16 #define INT32_C(val) val##i32 #define INT64_C(val) val##i64 #define UINT8_C(val) val##ui8 #define UINT16_C(val) val##ui16 #define UINT32_C(val) val##ui32 #define UINT64_C(val) val##ui64 // 7.18.4.2 Macros for greatest-width integer constants #define INTMAX_C INT64_C #define UINTMAX_C UINT64_C #endif // __STDC_CONSTANT_MACROS ] #endif // _MSC_STDINT_H_ ] #endif // MSVC stuff par2cmdline-turbo-1.5.0/src/000077500000000000000000000000001524160147200156375ustar00rootroot00000000000000par2cmdline-turbo-1.5.0/src/commandline.cpp000066400000000000000000001260451524160147200206410ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // iostream is included here, so that cout and cerr are not used elsewhere. #include #include #include "commandline.h" #include //ADDED for @FILELIST FUNCTIONALY #ifdef _MSC_VER #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif #else #include #endif #include CommandLine::CommandLine(void) : filesize_cache() , version(verUnknown) , noiselevel(nlUnknown) , memorylimit(0) , basepath() , nthreads(0) // 0 means use default number , filethreads( _FILE_THREADS ) // default from header file , parfilename() , rawfilenames() , extrafiles() , operation(opNone) , purgefiles(false) , renameonly(false) , skipdata(false) , skipleaway(0) , blockcount(0) , blocksize(0) , firstblock(0) , recoveryfilescheme(scUnknown) , recoveryfilecount(0) , recoveryblockcount(0) , recoveryblockcountset(false) , redundancy(0) , redundancysize(0) , redundancyset(false) , recursive(false) { } void CommandLine::showversion(void) { std::string version = PACKAGE " version " VERSION; std::cout << version << std::endl; } void CommandLine::banner(void) { std::cout << "Copyright (C) 2003-2015 Peter Brian Clements.\n" "Copyright (C) 2011-2012 Marcel Partap.\n" "Copyright (C) 2012-2026 Ike Devolder.\n" "Copyright (C) 2014-2017 Jussi Kansanen.\n" "Copyright (C) 2019 Michael Nahas.\n" "\n" "par2cmdline comes with ABSOLUTELY NO WARRANTY.\n" "\n" "This is free software, and you are welcome to redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by the\n" "Free Software Foundation; either version 2 of the License, or (at your\n" "option) any later version. See COPYING for details.\n" << std::endl; } void CommandLine::usage(void) { std::cout << "Usage:\n" " par2 -h : show this help\n" " par2 -V : show version\n" " par2 -VV : show version and copyright\n" "\n" " par2 c(reate) [options] [files] : Create PAR2 files\n" " par2 v(erify) [options] [files] : Verify files using PAR2 file\n" " par2 r(epair) [options] [files] : Repair files using PAR2 files\n" "\n" "You may also leave out the \"c\", \"v\", and \"r\" commands by using \"par2create\",\n" "\"par2verify\", or \"par2repair\" instead.\n" "\n" "Options: (all uses)\n" " -a : Set the main PAR2 archive name\n" " -B : Set the basepath to use as reference for the datafiles\n" " -v [-v] : Be more verbose\n" " -q [-q] : Be more quiet (-q -q gives silence)\n" " -m : Memory (in MB) to use (default is half of total physical memory)\n"; std::cout << " -t : Number of threads used for main processing (" << std::thread::hardware_concurrency() << " detected)\n" " -T : Number of files hashed in parallel\n" " (" << _FILE_THREADS << " are the default)\n"; std::cout << " -- : Treat all following arguments as filenames\n" "Options: (verify or repair)\n" " -p : Purge backup files and par files on successful recovery or\n" " when no recovery is needed\n" " -O : Rename-only mode (skip files that are not perfect matches,\n" " useful for quickly fixing renamed files)\n" " -N : Data skipping (find badly mispositioned data blocks)\n" " -S : Skip leaway (distance +/- from expected block position, default 64)\n" "Options: (create)\n" " -b : Set the Block-Count (default 2000)\n" " -s : Set the Block-Size (don't use both -b and -s)\n" " -r : Level of redundancy (%, default 5%)\n" " -r : Redundancy target size, =g(iga),m(ega),k(ilo) bytes\n" " -c : Recovery Block-Count (don't use both -r and -c)\n" " -f : First Recovery-Block-Number (default 0)\n" " -u : Uniform recovery file sizes (default is variable)\n" " -l : Limit size of recovery files (don't use both -u and -l)\n" " -n : Number of recovery files (max 31) (don't use both -n and -l)\n" " -R : Recurse into subdirectories\n" " (Be aware of wildcard shell expansion)\n" " @ : Process a listing of files specified in text (file) input \n" " (eg. @filelist.txt, or bare @ to read from stdin) \n" "\n"; std::cout << "Example:\n" " par2 repair *.par2\n" "\n"; } bool CommandLine::Parse(int argc, const char * const *argv) { if (!ReadArgs(argc, argv)) return false; if (operation != opNone) { // user didn't do "par --help", etc. if (!CheckValuesAndSetDefaults()) return false; } if (operation == opCreate) { if (!ComputeBlockSize()) return false; u32 sourceblockcount = 0; u64 largestfilesize = 0; for (std::vector::const_iterator i=extrafiles.begin(); i!=extrafiles.end(); i++) { u64 filesize = filesize_cache.get(*i); sourceblockcount += (u32) ((filesize + blocksize-1) / blocksize); if (filesize > largestfilesize) { largestfilesize = filesize; } } if (sourceblockcount > 32768) { std::cerr << "Too many source blocks (" << sourceblockcount << " > 32768)." << std::endl; return false; } if (!ComputeRecoveryBlockCount(&recoveryblockcount, sourceblockcount, blocksize, firstblock, recoveryfilescheme, recoveryfilecount, recoveryblockcountset, redundancy, redundancysize, largestfilesize)) { return false; } } return true; } bool CommandLine::ReadArgs(int argc, const char * const *argv) { if (argc<1) { return false; } // Split the program name into path and filename std::string path, name; DiskFile::SplitFilename(argv[0], path, name); argc--; argv++; if (argc>0) { if (argv[0][0] == '-') { if (argv[0] == std::string("-h") || argv[0] == std::string("--help")) { usage(); return true; } else if (argv[0] == std::string("-V") || argv[0] == std::string("--version")) { showversion(); return true; } else if (argv[0] == std::string("-VV")) { showversion(); std::cout << "A " BASE_PACKAGE " version " BASE_VERSION " fork, using a ParPar processing backend\n\n"; banner(); return true; } } } // Strip ".exe" from the end if (name.size() > 4 && 0 == stricmp(".exe", name.substr(name.length()-4).c_str())) { name = name.substr(0, name.length()-4); } // Check the resulting program name if (0 == stricmp("par2create", name.c_str())) { operation = opCreate; } else if (0 == stricmp("par2verify", name.c_str())) { operation = opVerify; } else if (0 == stricmp("par2repair", name.c_str())) { operation = opRepair; } // Have we determined what operation we want? if (operation == opNone) { if (argc<2) { std::cerr << "Not enough command line arguments." << std::endl; return false; } switch (tolower(argv[0][0])) { case 'c': if (argv[0][1] == 0 || 0 == stricmp(argv[0], "create")) operation = opCreate; break; case 'v': if (argv[0][1] == 0 || 0 == stricmp(argv[0], "verify")) operation = opVerify; break; case 'r': if (argv[0][1] == 0 || 0 == stricmp(argv[0], "repair")) operation = opRepair; break; } if (operation == opNone) { std::cerr << "Invalid operation specified: " << argv[0] << std::endl; return false; } argc--; argv++; } bool options = true; basepath = ""; while (argc>0) { if (argv[0][0]) { //MODIFIED FOR @FILELIST FUNCTIONALITY if (options && argv[0][0] != '-' && argv[0][0] != '@') options = false; //MODIFIED FOR @FILELIST FUNCTIONALITY if (options && argv[0][0] == '-') { switch (argv[0][1]) { case 'a': { std::string str = argv[0]; bool setparfile = false; if (str == "-a") { setparfile = SetParFilename(argv[1]); argc--; argv++; } else { setparfile = SetParFilename(str.substr(2)); } if (! setparfile) { std::cerr << "failed to set the main par file" << std::endl; return false; } } break; case 'b': // Set the block count { if (operation != opCreate) { std::cerr << "Cannot specify block count unless creating." << std::endl; return false; } if (blockcount > 0) { std::cerr << "Cannot specify block count twice." << std::endl; return false; } else if (blocksize > 0) { std::cerr << "Cannot specify both block count and block size." << std::endl; return false; } const char *p = &argv[0][2]; while (blockcount <= 3276 && *p && isdigit(*p)) { blockcount = blockcount * 10 + (*p - '0'); p++; } if (0 == blockcount || blockcount > 32768 || *p) { std::cerr << "Invalid block count option: " << argv[0] << std::endl; return false; } } break; case 's': // Set the block size { if (operation != opCreate) { std::cerr << "Cannot specify block size unless creating." << std::endl; return false; } if (blocksize > 0) { std::cerr << "Cannot specify block size twice." << std::endl; return false; } else if (blockcount > 0) { std::cerr << "Cannot specify both block count and block size." << std::endl; return false; } const char *p = &argv[0][2]; while (blocksize <= 429496729 && *p && isdigit(*p)) { blocksize = blocksize * 10 + (*p - '0'); p++; } if (*p || blocksize == 0) { std::cerr << "Invalid block size option: " << argv[0] << std::endl; return false; } if (blocksize & 3) { std::cerr << "Block size must be a multiple of 4." << std::endl; return false; } } break; case 't': // Set amount of threads { nthreads = 0; const char *p = &argv[0][2]; while (*p && isdigit(*p)) { nthreads = nthreads * 10 + (*p - '0'); p++; } if (!nthreads) { std::cerr << "Invalid thread option: " << argv[0] << std::endl; return false; } } break; case 'T': // Set amount of file threads { filethreads = 0; const char *p = &argv[0][2]; while (*p && isdigit(*p)) { filethreads = filethreads * 10 + (*p - '0'); p++; } if (!filethreads) { std::cerr << "Invalid file-thread option: " << argv[0] << std::endl; return false; } } break; case 'r': // Set the amount of redundancy required { if (operation != opCreate) { std::cerr << "Cannot specify redundancy unless creating." << std::endl; return false; } if (redundancyset) { std::cerr << "Cannot specify redundancy twice." << std::endl; return false; } else if (recoveryblockcountset) { std::cerr << "Cannot specify both redundancy and recovery block count." << std::endl; return false; } if (argv[0][2] == 'k' || argv[0][2] == 'm' || argv[0][2] == 'g' ) { const char *p = &argv[0][3]; while (*p && isdigit(*p)) { redundancysize = redundancysize * 10 + (*p - '0'); p++; } switch (argv[0][2]) { case 'g': redundancysize = redundancysize * 1024; case 'm': redundancysize = redundancysize * 1024; case 'k': redundancysize = redundancysize * 1024; break; } } else { const char *p = &argv[0][2]; while (*p && isdigit(*p)) { redundancy = redundancy * 10 + (*p - '0'); p++; } if (*p) { std::cerr << "Invalid redundancy option: " << argv[0] << std::endl; return false; } if (redundancy == 0 && recoveryfilecount > 0) { std::cerr << "Cannot set redundancy to 0 and file count > 0" << std::endl; return false; } if (redundancy > 100) { std::cerr << "WARNING: Creating recovery file(s) with " << redundancy << "% redundancy." << std::endl; } } redundancyset = true; } break; case 'c': // Set the number of recovery blocks to create { if (operation != opCreate) { std::cerr << "Cannot specify recovery block count unless creating." << std::endl; return false; } if (recoveryblockcountset) { std::cerr << "Cannot specify recovery block count twice." << std::endl; return false; } else if (redundancyset) { std::cerr << "Cannot specify both recovery block count and redundancy." << std::endl; return false; } const char *p = &argv[0][2]; while (recoveryblockcount <= 32768 && *p && isdigit(*p)) { recoveryblockcount = recoveryblockcount * 10 + (*p - '0'); p++; } if (recoveryblockcount > 32768 || *p) { std::cerr << "Invalid recoveryblockcount option: " << argv[0] << std::endl; return false; } if (recoveryblockcount == 0 && recoveryfilecount > 0) { std::cerr << "Cannot set recoveryblockcount to 0 and file count > 0" << std::endl; return false; } recoveryblockcountset = true; } break; case 'f': // Specify the First block recovery number { if (operation != opCreate) { std::cerr << "Cannot specify first block number unless creating." << std::endl; return false; } if (firstblock > 0) { std::cerr << "Cannot specify first block twice." << std::endl; return false; } const char *p = &argv[0][2]; while (firstblock <= 3276 && *p && isdigit(*p)) { firstblock = firstblock * 10 + (*p - '0'); p++; } if (firstblock > 32768 || *p) { std::cerr << "Invalid first block option: " << argv[0] << std::endl; return false; } } break; case 'u': // Specify uniformly sized recovery files { if (operation != opCreate) { std::cerr << "Cannot specify uniform files unless creating." << std::endl; return false; } if (argv[0][2]) { std::cerr << "Invalid option: " << argv[0] << std::endl; return false; } if (recoveryfilescheme != scUnknown && recoveryfilescheme != scUniform) { std::cerr << "Cannot specify two recovery file size schemes." << std::endl; return false; } recoveryfilescheme = scUniform; } break; case 'l': // Limit the size of the recovery files { if (operation != opCreate) { std::cerr << "Cannot specify limit files unless creating." << std::endl; return false; } if (argv[0][2]) { std::cerr << "Invalid option: " << argv[0] << std::endl; return false; } if (recoveryfilescheme != scUnknown) { std::cerr << "Cannot specify two recovery file size schemes." << std::endl; return false; } if (recoveryfilecount > 0) { std::cerr << "Cannot specify limited size and number of files at the same time." << std::endl; return false; } recoveryfilescheme = scLimited; } break; case 'n': // Specify the number of recovery files { if (operation != opCreate) { std::cerr << "Cannot specify recovery file count unless creating." << std::endl; return false; } if (recoveryfilecount > 0) { std::cerr << "Cannot specify recovery file count twice." << std::endl; return false; } // (Removed "Cannot set file count when redundancy is set to 0.") if (recoveryblockcountset && recoveryblockcount == 0) { std::cerr << "Cannot set file count when recovery block count is set to 0." << std::endl; return false; } if (recoveryfilescheme == scLimited) { std::cerr << "Cannot specify limited size and number of files at the same time." << std::endl; return false; } const char *p = &argv[0][2]; while (*p && isdigit(*p)) { recoveryfilecount = recoveryfilecount * 10 + (*p - '0'); p++; } if (recoveryfilecount == 0 || *p) { std::cerr << "Invalid recovery file count option: " << argv[0] << std::endl; return false; } // cap the maximum number of recovery files // because the number of recovery blocks will be // (2 ^ recoveryfilecount) - 1 // the number 32 will overflow the u32 resulting in 1 if (recoveryfilecount > 31) { std::cerr << "Invalid recovery file count option: " << recoveryfilecount << std::endl; std::cerr << " the maximum allowed recovery file count is 31" << std::endl; return false; } // When number of recovery files is used, set the recoveryfilescheme // to uniform, since variable will not always be able to fill all // the files recoveryfilescheme = scUniform; } break; case 'm': // Specify how much memory to use for output buffers { if (memorylimit > 0) { std::cerr << "Cannot specify memory limit twice." << std::endl; return false; } const char *p = &argv[0][2]; while (*p && isdigit(*p)) { memorylimit = memorylimit * 10 + (*p - '0'); p++; } if (memorylimit == 0 || *p) { std::cerr << "Invalid memory limit option: " << argv[0] << std::endl; return false; } } break; case 'v': { switch (noiselevel) { case nlUnknown: { if (argv[0][2] == 'v') noiselevel = nlDebug; else noiselevel = nlNoisy; } break; case nlNoisy: case nlDebug: noiselevel = nlDebug; break; default: std::cerr << "Cannot use both -v and -q." << std::endl; return false; break; } } break; case 'q': { switch (noiselevel) { case nlUnknown: { if (argv[0][2] == 'q') noiselevel = nlSilent; else noiselevel = nlQuiet; } break; case nlQuiet: case nlSilent: noiselevel = nlSilent; break; default: std::cerr << "Cannot use both -v and -q." << std::endl; return false; break; } } break; case 'p': { if (operation != opRepair && operation != opVerify) { std::cerr << "Cannot specify purge unless repairing or verifying." << std::endl; return false; } purgefiles = true; } break; case 'O': { if (operation != opRepair && operation != opVerify) { std::cerr << "Cannot specify rename-only unless repairing or verifying." << std::endl; return false; } renameonly = true; } break; case 'h': { usage(); return false; } // "break;" not needed. case 'R': { if (operation == opCreate) { recursive = true; } else { std::cerr << "Cannot specific Recursive unless creating." << std::endl; return false; } } break; case 'N': { if (operation == opCreate) { std::cerr << "Cannot specify Data Skipping unless reparing or verifying." << std::endl; return false; } skipdata = true; } break; case 'S': // Set the skip leaway { if (operation == opCreate) { std::cerr << "Cannot specify skip leaway when creating." << std::endl; return false; } if (!skipdata) { std::cerr << "Cannot specify skip leaway and no skipping." << std::endl; return false; } const char *p = &argv[0][2]; while (skipleaway <= 429496729 && *p && isdigit(*p)) { skipleaway = skipleaway * 10 + (*p - '0'); p++; } if (*p || skipleaway == 0) { std::cerr << "Invalid skipleaway option: " << argv[0] << std::endl; return false; } } break; case 'B': // Set the basepath manually { std::string str = argv[0]; if (str == "-B") { basepath = DiskFile::GetCanonicalPathname(argv[1]); argc--; argv++; } else { basepath = DiskFile::GetCanonicalPathname(str.substr(2)); } } break; case '-': { if (argv[0] != std::string("--")) { std::cerr << "Unknown option: " << argv[0] << std::endl; std::cerr << " (Options must appear after create, repair or verify.)" << std::endl; std::cerr << " (Run \"" << path << name << " --help\" for supported options.)" << std::endl; return false; } argc--; argv++; options = false; continue; } break; default: { std::cerr << "Invalid option specified: " << argv[0] << std::endl; return false; } } } //START SECTION FOR ADDING @FILELIST FUNCTIONALITY else if (argv[0][0] == '@') // Handle list files { std::istream* input = nullptr; std::ifstream listfile; // 1. Check if the '@' is followed by a filename if (argv[0][1] == '\0') { // Bare '@' - read filelist from stdin input = &std::cin; } else { listfile.open(&argv[0][1]); if (!listfile.is_open()) { std::cerr << "Could not open list file: " << &argv[0][1] << std::endl; return false; } input = &listfile; } std::string line; while (std::getline(*input, line)) { // 2. Trim whitespace or skip whitespace-only lines // This finds the first non-whitespace character size_t first = line.find_first_not_of(" \t\r\n"); if (first == std::string::npos) continue; // Line is empty or only whitespace // 3. Removed the 'parfilename.length() == 0' block. // All files in the list are now treated as source files. std::string lpath, lname; DiskFile::SplitFilename(line, lpath, lname); std::unique_ptr< std::list > filenames( DiskFile::FindFiles(lpath, lname, recursive) ); if (filenames) { for (auto const& fn : *filenames) { rawfilenames.push_back(DiskFile::GetCanonicalPathname(fn)); } } } } //END SECTION FOR ADDING @filelist FUNCTIONALITY else if (parfilename.length() == 0) { std::string filename = argv[0]; bool setparfile = SetParFilename(filename); if (! setparfile) { std::cerr << "failed to set the main par file" << std::endl; return false; } } else { std::string path; std::string name; DiskFile::SplitFilename(argv[0], path, name); std::unique_ptr< std::list > filenames( DiskFile::FindFiles(path, name, recursive) ); if (filenames) { for (auto const& fn : *filenames) { rawfilenames.push_back(DiskFile::GetCanonicalPathname(fn)); } } } } argc--; argv++; } return true; } // This webpage has code to get physical memory size on many OSes // http://nadeausoftware.com/articles/2012/09/c_c_tip_how_get_physical_memory_size_system #ifdef _WIN32 u64 CommandLine::GetTotalPhysicalMemory() { u64 TotalPhysicalMemory = 0; HMODULE hLib = ::LoadLibraryA("kernel32.dll"); if (NULL != hLib) { BOOL (WINAPI *pfn)(LPMEMORYSTATUSEX) = (BOOL (WINAPI*)(LPMEMORYSTATUSEX))::GetProcAddress(hLib, "GlobalMemoryStatusEx"); if (NULL != pfn) { MEMORYSTATUSEX mse; mse.dwLength = sizeof(mse); if (pfn(&mse)) { TotalPhysicalMemory = mse.ullTotalPhys; } } ::FreeLibrary(hLib); } if (TotalPhysicalMemory == 0) { MEMORYSTATUS ms; ::ZeroMemory(&ms, sizeof(ms)); ::GlobalMemoryStatus(&ms); TotalPhysicalMemory = ms.dwTotalPhys; } return TotalPhysicalMemory; } #elif defined(_SC_PHYS_PAGES) && defined(_SC_PAGESIZE) // POSIX compliant OSes, including OSX/MacOS and Cygwin. Also works for Linux. u64 CommandLine::GetTotalPhysicalMemory() { long pages = sysconf(_SC_PHYS_PAGES); long page_size = sysconf(_SC_PAGESIZE); return pages*page_size; } #else // default version == unable to request memory size u64 CommandLine::GetTotalPhysicalMemory() { return 0; } #endif bool CommandLine::CheckValuesAndSetDefaults() { if (parfilename.length() == 0) { std::cerr << "You must specify a Recovery file." << std::endl; return false; } // Default noise level if (noiselevel == nlUnknown) { noiselevel = nlNormal; } // Default memorylimit of 256MB if (memorylimit == 0) { u64 TotalPhysicalMemory = GetTotalPhysicalMemory(); if (TotalPhysicalMemory == 0) { if (noiselevel >= nlDebug) std::cout << "[DEBUG] could not detect physical memory" << std::endl; // Default/error case: memorylimit = 256; } else { if (noiselevel >= nlDebug) std::cout << "[DEBUG] detected physical memory: " << TotalPhysicalMemory << " bytes" << std::endl; // 1/8th of total physical memory or floor to 256MiB if lower: memorylimit = (size_t)(TotalPhysicalMemory / 1048576 / 8); if (memorylimit < 256) memorylimit = 256; } } // limit to 1GB on 32-bit platforms to avoid exhausing the addressable memory space if (sizeof(uintptr_t) < 8 && memorylimit > 1024) memorylimit = 1024; // convert to megabytes memorylimit *= 1048576; if (noiselevel >= nlDebug) { std::cout << "[DEBUG] memorylimit: " << memorylimit << " bytes" << std::endl; } // Default basepath (uses parfilename) if ("" == basepath) { if (noiselevel >= nlDebug) { std::cout << "[DEBUG] parfilename: " << parfilename << std::endl; } std::string dummy; std::string path; DiskFile::SplitFilename(parfilename, path, dummy); basepath = DiskFile::GetCanonicalPathname(path); // fallback if ("" == basepath) { basepath = DiskFile::GetCanonicalPathname("./"); } } std::string lastchar = basepath.substr(basepath.length() -1); if (PATHSEP != lastchar && ALTPATHSEP != lastchar) { basepath = basepath + PATHSEP; } if (noiselevel >= nlDebug) { std::cout << "[DEBUG] basepath: " << basepath << std::endl; } // parfilename is checked earlier, because it is used by basepath. // check extrafiles std::list::iterator rawfilenames_fn; for (rawfilenames_fn = rawfilenames.begin(); rawfilenames_fn != rawfilenames.end(); ++rawfilenames_fn) { std::string filename = *rawfilenames_fn; // Originally, all specified files were supposed to exist, or the program // would stop with an error message. This was not practical, for example in // a directory with files appearing and disappearing (an active download directory). // So the new rule is: when a specified file doesn't exist, it is silently skipped. if (!DiskFile::FileExists(filename)) { std::cout << "Ignoring non-existent source file: " << filename << std::endl; } // skip files outside basepath else if (filename.find(basepath) == std::string::npos) { std::cout << "Ignoring out of basepath source file: " << filename << std::endl; } else { u64 filesize = filesize_cache.get(filename); // Ignore all 0 byte files if (filesize == 0) { std::cout << "Skipping 0 byte file: " << filename << std::endl; } else if (extrafiles.end() != std::find(extrafiles.begin(), extrafiles.end(), filename)) { std::cout << "Skipping duplicate filename: " << filename << std::endl; } else { extrafiles.push_back(filename); } } //end file exists } // operation should always be set, but let's be thorough. if (operation == opNone) { std::cerr << "ERROR: No operation was specified (create, repair, or verify)" << std::endl; return false; } if (operation != opCreate) { // skipdata is bool and either value is valid. // Default skip leaway if (skipdata && skipleaway == 0) { // Expect to find blocks within +/- 64 bytes of the expected // position relative to the last block that was found. skipleaway = 64; } } // If we a creating, check the other parameters if (operation == opCreate) { // If we are creating, the source files must be given. if (extrafiles.size() == 0) { // Does the par filename include the ".par2" on the end? if (parfilename.length() > 5 && 0 == stricmp(parfilename.substr(parfilename.length()-5, 5).c_str(), ".par2")) { // Yes it does. std::cerr << "You must specify a list of files when creating." << std::endl; return false; } else { // No it does not. // In that case check to see if the file exists, and if it does // assume that you wish to create par2 files for it. u64 filesize = 0; if (DiskFile::FileExists(parfilename) && (filesize = DiskFile::GetFileSize(parfilename)) > 0) { extrafiles.push_back(parfilename); } else { // The file does not exist or it is empty. std::cerr << "You must specify a list of files when creating." << std::endl; return false; } } } // Strip the ".par2" from the end of the filename of the main PAR2 file. if (parfilename.length() > 5 && 0 == stricmp(parfilename.substr(parfilename.length()-5, 5).c_str(), ".par2")) { parfilename = parfilename.substr(0, parfilename.length()-5); } if (DiskFile::FileExists(parfilename + ".par2")) { std::cerr << "Par2 file already exists: " << parfilename << std::endl; return false; } // If neither block count nor block size is specified, derive a default // block size from total source data, targeting ~2000 blocks (as previous // default). This replaces the old hard-coded blockcount=2000 which failed // when file count exceeded 2000, and avoids inflated block sizes when file // sizes vary widely. The minimum is clamped so that the total source block // count stays within the PAR2 limit of 32768. if (blockcount == 0 && blocksize == 0) { u64 totalsize = 0; for (auto &f : extrafiles) totalsize += filesize_cache.get(f); blocksize = (totalsize + 1999) / 2000; // 2000 = target (previous default) blocksize = std::max(blocksize, (u64)4); blocksize = (blocksize + 3) & ~3; u64 minblocksize = (totalsize + 32767) / 32768; // 32768 = maximum PAR2 minblocksize = std::max(minblocksize, (u64)4); minblocksize = (minblocksize + 3) & ~3; if (blocksize < minblocksize) blocksize = minblocksize; } // If no recovery file size scheme is specified then use Variable if (recoveryfilescheme == scUnknown) { recoveryfilescheme = scVariable; } // Assume a redundancy of 5% if neither redundancy or recoveryblockcount were set. if (!redundancyset && !recoveryblockcountset) { redundancy = 5; redundancyset = true; } } return true; } bool CommandLine::ComputeBlockSize() { if (blocksize == 0) { // compute value from blockcount if (blockcount < extrafiles.size()) { // The block count cannot be less than the number of files. std::cerr << "Block count (" << blockcount << ") cannot be smaller than the number of files(" << extrafiles.size() << "). " << std::endl; return false; } else if (blockcount == extrafiles.size()) { // If the block count is the same as the number of files, then the block // size is the size of the largest file (rounded up to a multiple of 4). u64 largestfilesize = 0; for (std::vector::const_iterator i=extrafiles.begin(); i!=extrafiles.end(); i++) { u64 filesize = filesize_cache.get(*i); if (filesize > largestfilesize) { largestfilesize = filesize; } } blocksize = (largestfilesize + 3) & ~3; } else { u64 totalsize = 0; for (std::vector::const_iterator i=extrafiles.begin(); i!=extrafiles.end(); i++) { totalsize += (filesize_cache.get(*i) + 3) / 4; } if (blockcount > totalsize) { blocksize = 4; } else { // Absolute lower bound and upper bound on the source block size that will // result in the requested source block count. u64 lowerBound = totalsize / blockcount; u64 upperBound = (totalsize + blockcount - extrafiles.size() - 1) / (blockcount - extrafiles.size()); u64 count = 0; u64 size; do { size = (lowerBound + upperBound)/2; count = 0; for (std::vector::const_iterator i=extrafiles.begin(); i!=extrafiles.end(); i++) { count += ((filesize_cache.get(*i)+3)/4 + size-1) / size; } if (count > blockcount) { lowerBound = size+1; if (lowerBound >= upperBound) { size = lowerBound; count = 0; for (std::vector::const_iterator i=extrafiles.begin(); i!=extrafiles.end(); i++) { count += ((filesize_cache.get(*i)+3)/4 + size-1) / size; } } } else { upperBound = size; } } while (lowerBound < upperBound); if (count > 32768) { std::cerr << "Error calculating block size. cannot be higher than 32768." << std::endl; return false; } else if (count == 0) { std::cerr << "Error calculating block size. cannot be 0." << std::endl; return false; } blocksize = size*4; } } } return true; } // Determine how many recovery blocks to create based on the source block // count and the requested level of redundancy. bool CommandLine::ComputeRecoveryBlockCount(u32 *recoveryblockcount, u32 sourceblockcount, u64 blocksize, u32 firstblock, Scheme recoveryfilescheme, u32 recoveryfilecount, bool recoveryblockcountset, u32 redundancy, u64 redundancysize, u64 largestfilesize) { if (recoveryblockcountset) { // no need to assign value. // pass through, so that value can be checked below. } else if (redundancy > 0) { // count is the number of input blocks // Determine recoveryblockcount *recoveryblockcount = (sourceblockcount * redundancy + 50) / 100; } else if (redundancysize > 0) { const u64 overhead_per_recovery_file = sourceblockcount * (u64) 21; const u64 recovery_packet_size = blocksize + (u64) 70; if (recoveryfilecount == 0) { u32 estimatedFileCount = 15; u64 overhead = estimatedFileCount * overhead_per_recovery_file; u32 estimatedrecoveryblockcount; if (overhead > redundancysize) { estimatedrecoveryblockcount = 1; // at least 1 } else { estimatedrecoveryblockcount = (u32)((redundancysize - overhead) / recovery_packet_size); } // recoveryfilecount assigned below. bool success = ComputeRecoveryFileCount(std::cout, std::cerr, &recoveryfilecount, recoveryfilescheme, estimatedrecoveryblockcount, largestfilesize, blocksize); if (!success) { return false; } } const u64 overhead = recoveryfilecount * overhead_per_recovery_file; if (overhead > redundancysize) { *recoveryblockcount = 1; // at least 1 } else { *recoveryblockcount = (u32)((redundancysize - overhead) / recovery_packet_size); } } else { std::cerr << "Redundancy and Redundancysize not set." << std::endl; return false; } // Force valid values if necessary if (*recoveryblockcount == 0 && redundancy > 0) *recoveryblockcount = 1; if (*recoveryblockcount > 65536) { std::cerr << "Too many recovery blocks requested." << std::endl; return false; } // Check that the last recovery block number would not be too large if (firstblock + *recoveryblockcount >= 65536) { std::cerr << "First recovery block number is too high." << std::endl; return false; } return true; } bool CommandLine::SetParFilename(std::string filename) { bool result = false; #ifndef _WIN32 std::string::size_type where; if ((where = filename.find_first_of('*')) != std::string::npos || (where = filename.find_first_of('?')) != std::string::npos) { std::cerr << "par2 file must not have a wildcard in it." << std::endl; return result; } #endif // If we are verifying or repairing, the PAR2 file must // already exist if (operation != opCreate) { // Find the last '.' in the filename std::string::size_type where = filename.find_last_of('.'); if (where != std::string::npos) { // Get what follows the last '.' std::string tail = filename.substr(where+1); if (0 == stricmp(tail.c_str(), "par2")) { parfilename = filename; version = verPar2; } else if (0 == stricmp(tail.c_str(), "par") || (tail.size() == 3 && tolower(tail[0]) == 'p' && isdigit(tail[1]) && isdigit(tail[2]))) { parfilename = filename; version = verPar1; } if (DiskFile::FileExists(filename)) { result = true; } } // If we haven't figured out which version of PAR file we // are using from the file extension, then presumable the // files filename was actually the name of a data file. if (version == verUnknown) { // Check for the existence of a PAR2 of PAR file. if (DiskFile::FileExists(filename + ".par2")) { version = verPar2; parfilename = filename + ".par2"; result = true; } else if (DiskFile::FileExists(filename + ".PAR2")) { version = verPar2; parfilename = filename + ".PAR2"; result = true; } else if (DiskFile::FileExists(filename + ".par")) { version = verPar1; parfilename = filename + ".par"; result = true; } else if (DiskFile::FileExists(filename + ".PAR")) { version = verPar1; parfilename = filename + ".PAR"; result = true; } } } else { parfilename = DiskFile::GetCanonicalPathname(filename); version = verPar2; result = true; } return result; } par2cmdline-turbo-1.5.0/src/commandline.h000066400000000000000000000205041524160147200202770ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef __COMMANDLINE_H__ #define __COMMANDLINE_H__ #include // This is needed by diskfile.h #ifdef _WIN32 #ifndef NOMINMAX #define NOMINMAX #endif #include // Heap checking #ifdef _MSC_VER #define _CRTDBG_MAP_ALLOC #include #define DEBUG_NEW new(_NORMAL_BLOCK, THIS_FILE, __LINE__) #endif #else #endif #include "libpar2.h" #include "diskfile.h" // The CommandLine object is responsible for understanding the format // of the command line parameters are parsing the command line to // extract details as to what the user wants to do. class CommandLine { public: CommandLine(void); // Parse the supplied command line arguments. bool Parse(int argc, const char * const *argv); static void showversion(void); static void banner(void); // Display details of the correct format for command line parameters. static void usage(void); // What operation will we be carrying out typedef enum { opNone = 0, opCreate, // Create new PAR2 recovery volumes opVerify, // Verify but don't repair damaged data files opRepair // Verify and if possible repair damaged data files } Operation; typedef enum { verUnknown = 0, verPar1, // Processing PAR 1.0 files verPar2 // Processing PAR 2.0 files } Version; public: // Accessor functions for the command line parameters CommandLine::Operation GetOperation(void) const {return operation;} CommandLine::Version GetVersion(void) const {return version;} u64 GetBlockSize(void) const {return blocksize;} u32 GetFirstRecoveryBlock(void) const {return firstblock;} u32 GetRecoveryFileCount(void) const {return recoveryfilecount;} u32 GetRecoveryBlockCount(void) const {return recoveryblockcount;} Scheme GetRecoveryFileScheme(void) const {return recoveryfilescheme;} size_t GetMemoryLimit(void) const {return memorylimit;} NoiseLevel GetNoiseLevel(void) const {return noiselevel;} std::string GetParFilename(void) const {return parfilename;} std::string GetBasePath(void) const {return basepath;} const std::vector& GetExtraFiles(void) const {return extrafiles;} bool GetPurgeFiles(void) const {return purgefiles;} bool GetRenameOnly(void) const {return renameonly;} bool GetRecursive(void) const {return recursive;} bool GetSkipData(void) const {return skipdata;} u64 GetSkipLeaway(void) const {return skipleaway;} u32 GetNumThreads(void) {return nthreads;} u32 GetFileThreads(void) {return filethreads;} static bool ComputeRecoveryBlockCount(u32 *recoveryblockcount, u32 sourceblockcount, u64 blocksize, u32 firstblock, Scheme recoveryfilescheme, u32 recoveryfilecount, bool recoveryblockcountset, u32 redundancy, u64 redundancysize, u64 largestfilesize); protected: // Read the text of arguments into the class's variables bool ReadArgs(int argc, const char * const *argv); // Returns the memory on the system in BYTES // (or 0 if it cannot be determined) u64 GetTotalPhysicalMemory(); // Check values that were set during ReadArgs. // If values went unset, set them with default values bool CheckValuesAndSetDefaults(); // Use values like block count to compute the block size bool ComputeBlockSize(); // Use values like % recovery data to compute the number of recover blocks bool ComputeRecoveryBlockCount(); bool SetParFilename(std::string filename); FileSizeCache filesize_cache;// Caches the size of each file, // to prevent multiple calls to OS. // options for all operations Version version; // What version files will be processed. NoiseLevel noiselevel; // How much display output should there be. size_t memorylimit; // How much memory is permitted to be used // for the output buffer when creating // or repairing. std::string basepath; // the path par2 is run from u32 nthreads; // Default number of threads u32 filethreads; // Number of threads for file processing // NOTE: using the "-t" option to set the number of threads does not // end up here, but results in a direct call to "omp_set_num_threads" std::string parfilename; // The name of the PAR2 file to create, or // the name of the first PAR2 file to read // when verifying or repairing. std::list rawfilenames; // The filenames on command-line // (after expanding wildcards like '*') std::vector extrafiles; // The filenames that will be used by Par. // These have been verified to exist, // have a path-name relative to the // basepath, etc.. When creating, these will be // the source files, and when verifying or // repairing, this will be additional PAR2 // files or data files to be examined. // which operation Operation operation; // The operation to be carried out. // options for verify/repair operation bool purgefiles; // purge backup and par files on success // recovery bool renameonly; // Only attempt to repair via rename, skip // files that are not perfect matches bool skipdata; // Whether we should assume that all good // data blocks are within +/- bytes of // where we expect to find them and should // skip data that is too far away. u64 skipleaway; // The maximum leaway +/- that we will // allow when searching for blocks. // options for creating par files u32 blockcount; // How many blocks the source files should // be virtually split into. u64 blocksize; // What virtual block size to use. u32 firstblock; // What the exponent value for the first // recovery block will be. Scheme recoveryfilescheme; // How the size of the recovery files should // be calculated. u32 recoveryfilecount; // How many recovery files should be created. u32 recoveryblockcount; // How many recovery blocks should be created. bool recoveryblockcountset; // Set if the recoveryblockcount as been specified u32 redundancy; // What percentage of recovery data should // be created. u64 redundancysize; // target filesize of recovery files bool redundancyset; // Set if the redundancy has been specified bool recursive; // recurse into subdirectories }; #endif // __COMMANDLINE_H__ par2cmdline-turbo-1.5.0/src/commandline_test.cpp000066400000000000000000001431541524160147200217000ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include #include #include #include "commandline.h" // ComputeRecoveryBlockCount // recoveryblockset = true int test5() { u32 recoveryblockcount = 42; bool success = CommandLine::ComputeRecoveryBlockCount(&recoveryblockcount, 100, 4, 0, scVariable, 0, true, 0, 0, 40); if (!success) { std::cerr << "ComputeRecoveryBlockCount failed test5.1" << std::endl; return 1; } if (recoveryblockcount != 42) { std::cerr << "ComputeRecoveryBlockCount should not overwrite recoveryblockcount" << std::endl; std::cerr << " it returned " << recoveryblockcount << std::endl; return 1; } recoveryblockcount = 66000; success = CommandLine::ComputeRecoveryBlockCount(&recoveryblockcount, 100, 4, 0, scVariable, 0, true, 0, 0, 40); if (success) { std::cerr << "ComputeRecoveryBlockCount should fail for too many blocks" << std::endl; return 1; } recoveryblockcount = 6000; success = CommandLine::ComputeRecoveryBlockCount(&recoveryblockcount, 100, 4, 60000, scVariable, 0, true, 0, 0, 40); if (success) { std::cerr << "ComputeRecoveryBlockCount should fail for too high a coefficient" << std::endl; return 1; } return 0; } // ComputeRecoveryBlockCount // redundancy > 0 int test6() { u32 recoveryblockcount = 0; bool success = CommandLine::ComputeRecoveryBlockCount(&recoveryblockcount, 100, 4, 0, scVariable, 0, false, 1, 0, 40); if (!success) { std::cerr << "ComputeRecoveryBlockCount failed test5.1" << std::endl; return 1; } if (recoveryblockcount != 1) { std::cerr << "ComputeRecoveryBlockCount 1% of 100 is 1" << std::endl; std::cerr << " it returned " << recoveryblockcount << std::endl; return 1; } recoveryblockcount = 0; success = CommandLine::ComputeRecoveryBlockCount(&recoveryblockcount, 1000, 4, 0, scVariable, 0, false, 5, 0, 40); if (!success) { std::cerr << "ComputeRecoveryBlockCount failed test5.1" << std::endl; return 1; } if (recoveryblockcount != 50) { std::cerr << "ComputeRecoveryBlockCount 5% of 1000 is 50" << std::endl; std::cerr << " it returned " << recoveryblockcount << std::endl; return 1; } recoveryblockcount = 0; success = CommandLine::ComputeRecoveryBlockCount(&recoveryblockcount, 10, 4, 0, scVariable, 0, false, 1, 0, 40); if (!success) { std::cerr << "ComputeRecoveryBlockCount failed test5.1" << std::endl; return 1; } if (recoveryblockcount != 1) { std::cerr << "ComputeRecoveryBlockCount 1% of 10 is still positive" << std::endl; std::cerr << " it returned " << recoveryblockcount << std::endl; return 1; } return 0; } // ComputeRecoveryBlockCount // redundnacysize > 0 int test7_helper(int sourcefilecount, // not used by ComputeRecoveryBlockCount! int sourceblockcount, int blocksize, int redundancysize, int recoveryfilecount) { // overhead from packet headers, formatting, etc. // fixed: main packet header, main packet contents const int overhead_fixed = 76; // per source file: main packet contents, file desc, file slices header const int overhead_persourcefile = 236; // 216 + filename length // per source block: file slices contents const int overhead_persourceblock = 20; // per recovery bloc: recovery block header const int overhead_perrecoveryblock = 68; u32 recoveryblockcount; bool success = CommandLine::ComputeRecoveryBlockCount(&recoveryblockcount, sourceblockcount, blocksize, 0, scUniform, recoveryfilecount, false, 0, redundancysize, blocksize); if (!success) { std::cerr << "ComputeRecoveryBlockCount failed test5.1" << std::endl; return 1; } int usage_per_recoveryfile = overhead_fixed + sourcefilecount * overhead_persourcefile + sourceblockcount * overhead_persourceblock; int usage = recoveryfilecount * usage_per_recoveryfile + recoveryblockcount * (overhead_perrecoveryblock + blocksize); if (usage <= redundancysize - (overhead_perrecoveryblock + blocksize) || usage > redundancysize) { std::cerr << "ComputeRecoveryBlockCount " << redundancysize << " data limit" << std::endl; std::cerr << " but usage was " << usage << " with " << recoveryblockcount << " blocks" << std::endl; std::cerr << " sourcefilecount=" << sourcefilecount << std::endl; std::cerr << " sourceblockcount=" << sourceblockcount << std::endl; std::cerr << " blocksize=" << blocksize << std::endl; std::cerr << " recoveryfilecount=" << recoveryfilecount << std::endl; return 2; } return 0; } // ComputeRecoveryBlockCount // redundnacysize > 0 // scUniform with number of recovery files already determined. int test7() { // CD is 10 files, 600 source blocks, 1MB block size // Redundancys is 40MB in 5 files. //sourcefilecount, sourceblockcount, blocksize, redundancysize, recoveryfilecount if (test7_helper(10, 600, 1024*1024, 40*1024*1024, 5)) return 1; if (test7_helper( 1, 600, 1024*1024, 40*1024*1024, 5)) return 1; if (test7_helper(10, 60, 1024*1024, 40*1024*1024, 5)) return 1; if (test7_helper(10, 600, 16*1024, 40*1024*1024, 5)) return 1; if (test7_helper(10, 600, 1024*1024, 10*1024*1024, 5)) return 1; if (test7_helper(10, 600, 1024*1024, 40*1024*1024, 2)) return 1; // DVD is 1 files, 5000 source blocks, 1MB block size // Redundancys is 50MB in 5 files. if (test7_helper(1, 5000, 1024*1024, 50*1024*1024, 5) == 1) return 1; // if redundancy size is too small, still have 1 block u32 recoveryblockcount; bool success = CommandLine::ComputeRecoveryBlockCount(&recoveryblockcount, 1000, 1024, 0, scUniform, 1, false, 0, 4, // = redundancysize 1024); if (!success) { std::cerr << "ComputeRecoveryBlockCount failed test5.1" << std::endl; return 1; } if (recoveryblockcount != 1) { std::cerr << "ComputeRecoveryBlockCount with small redundancy amount should still return 1" << std::endl; std::cerr << " it returned " << recoveryblockcount << std::endl; return 1; } return 0; } // ComputeRecoveryBlockCount // redundnacysize > 0 int test8_helper(int sourcefilecount, // not used by ComputeRecoveryBlockCount! int sourceblockcount, int blocksize, int redundancysize) { // overhead from packet headers, formatting, etc. // fixed: main packet header, main packet contents const int overhead_fixed = 76; // per source file: main packet contents, file desc, file slices header const int overhead_persourcefile = 236; // 216 + filename length // per source block: file slices contents const int overhead_persourceblock = 20; // per recovery bloc: recovery block header const int overhead_perrecoveryblock = 68; u32 recoveryblockcount; bool success = CommandLine::ComputeRecoveryBlockCount(&recoveryblockcount, sourceblockcount, blocksize, 0, scVariable, 0, // =recoveryfilecount false, 0, redundancysize, blocksize); if (!success) { std::cerr << "ComputeRecoveryBlockCount failed test8.1" << std::endl; return 1; } u32 recoveryfilecount = 0; success = ComputeRecoveryFileCount(std::cout, std::cerr, &recoveryfilecount, scVariable, recoveryblockcount, blocksize, blocksize); if (!success) { std::cerr << "ComputeRecoveryBlockCount failed test8.2" << std::endl; return 1; } int usage_per_recoveryfile = overhead_fixed + sourcefilecount * overhead_persourcefile + sourceblockcount * overhead_persourceblock; int usage = recoveryfilecount * usage_per_recoveryfile + recoveryblockcount * (overhead_perrecoveryblock + blocksize); if (usage <= redundancysize - (overhead_perrecoveryblock + blocksize) || usage > redundancysize) { std::cerr << "ComputeRecoveryBlockCount " << redundancysize << " data limit" << std::endl; std::cerr << " but usage was " << usage << " with " << recoveryblockcount << " blocks" << std::endl; std::cerr << " sourcefilecount=" << sourcefilecount << std::endl; std::cerr << " sourceblockcount=" << sourceblockcount << std::endl; std::cerr << " blocksize=" << blocksize << std::endl; std::cerr << " recoveryfilecount=" << recoveryfilecount << std::endl; return 2; } return 0; } // ComputeRecoveryBlockCount // redundnacysize > 0 // scVariable with number of recovery files undetermined int test8() { //sourcefilecount, sourceblockcount, blocksize, redundancysize if (test8_helper(10, 600, 1024*1024, 40*1024*1024)) return 1; if (test8_helper( 1, 600, 1024*1024, 40*1024*1024)) return 1; if (test8_helper(10, 60, 1024*1024, 40*1024*1024)) return 1; // // WARNING: THIS TEST USUALLY FAILS BY A SMALL AMOUNT // The ==1 at the end will make the test fail // if the function doesn't return any value. // if (test8_helper(10, 600, 16*1024, 40*1024*1024) == 1) return 1; if (test8_helper(10, 600, 1024*1024, 10*1024*1024)) return 1; if (test8_helper(1, 5000, 1024*1024, 50*1024*1024)) return 1; return 0; } // calls Parse and expects it to fail. // "arg" is command; spaces are used to separate argv words... int test9_helper(const char *arg) { // copy args into argc/argv format // buffer holds copy of arg, with ' ' replaced by '\0' const int len = strlen(arg); int argc = 0; char *buffer = new char[len+1]; const char **argv = new const char*[len]; argv[argc]=&(buffer[0]); argc++; for (int i = 0; i < len; i++) { buffer[i] = arg[i]; if (buffer[i] == ' ') { buffer[i] = '\0'; argv[argc] = &(buffer[i+1]); argc++; } } buffer[len] = '\0'; CommandLine commandline; if (commandline.Parse(argc, argv)) { std::cout << "CommandLine should not have parsed: \"" << arg << "\"" << std::endl; return 1; } delete [] buffer; delete [] argv; return 0; } int test9() { // create input files, in case they are read. std::ofstream par2file; par2file.open("foo.par2"); par2file << "dummy par2 file. Just has to exist."; par2file.close(); std::ofstream par2file_bar; par2file_bar.open("bar.par2"); par2file_bar << "dummy par2 file. Just has to exist."; par2file_bar.close(); std::ofstream input1; input1.open("input1.txt"); input1 << "commandline_test test9 input1.txt\n"; input1.close(); std::ofstream input2; input2.open("input2.txt"); input2 << "commandline_test test9 input2.txt\n"; input2.close(); // mistaken call for help, version, etc. if (test9_helper("par2 -?")) return 1; if (test9_helper("par2 -v")) return 1; // missing operation if (test9_helper("par2")) return 1; if (test9_helper("par2 repairfoo.par")) return 1; if (test9_helper("par2 -p repairfoo.par")) return 1; if (test9_helper("par2 -b100 createfoo.par")) return 1; // missing parfile if (test9_helper("par2 repair")) return 1; if (test9_helper("par2repair")) return 1; if (test9_helper("par2 create")) return 1; if (test9_helper("par2create")) return 1; if (test9_helper("par2verify")) return 1; if (test9_helper("par2 verify")) return 1; if (test9_helper("par2 create ")) return 1; // missing input files for create if (test9_helper("par2 create foo.par2")) return 1; // wrong options for the chosen operation if (test9_helper("par2 create -p foo.par2 input1.txt input2.txt")) return 1; if (test9_helper("par2 create -N foo.par2 input1.txt input2.txt")) return 1; if (test9_helper("par2 create -S100 foo.par2 input1.txt input2.txt")) return 1; // DO WE WANT TO ERROR OUT ON THIS CASE? // if (test9_helper("par2 repair -abar.par2 foo.par2")) // return 1; if (test9_helper("par2 repair -b100 foo.par2")) return 1; if (test9_helper("par2 repair -s100 foo.par2")) return 1; if (test9_helper("par2 repair -r5 foo.par2")) return 1; if (test9_helper("par2 repair -rg5 foo.par2")) return 1; if (test9_helper("par2 repair -c100 foo.par2")) return 1; if (test9_helper("par2 repair -f10 foo.par2")) return 1; if (test9_helper("par2 repair -u foo.par2")) return 1; if (test9_helper("par2 repair -l foo.par2")) return 1; if (test9_helper("par2 repair -n10 foo.par2")) return 1; if (test9_helper("par2 repair -R foo.par2")) return 1; // Should "-v" cause an error (for being in the wrong place) // or be treated as a filename? //if (test9_helper("par2 create foo.par2 input1.txt input2.txt -v")) // return 1; // bad combinations of options if (test9_helper("par2 create -v -q foo.par2 input1.txt input2.txt")) return 1; if (test9_helper("par2 create -q -v foo.par2 input1.txt input2.txt")) return 1; if (test9_helper("par2 create -v -v -q foo.par2 input1.txt input2.txt")) return 1; if (test9_helper("par2 create -q -q -v foo.par2 input1.txt input2.txt")) return 1; if (test9_helper("par2 create -b100 -s100 foo.par2 input1.txt input2.txt")) return 1; if (test9_helper("par2 create -rg5 -c100 foo.par2 input1.txt input2.txt")) return 1; if (test9_helper("par2 create -u -l foo.par2 input1.txt input2.txt")) return 1; if (test9_helper("par2 create -n10 -l foo.par2 input1.txt input2.txt")) return 1; // badly formatted options if (test9_helper("par2 create -zzz foo.par2 input1.txt input2.txt")) return 1; if (test9_helper("par2 create --v foo.par2 input1.txt input2.txt")) return 1; if (test9_helper("par2 create -s3 foo.par2 input1.txt input2.txt")) return 1; if (test9_helper("par2 create -m50m foo.par2 input1.txt input2.txt")) return 1; if (test9_helper("par2 create -rt5 foo.par2 input1.txt input2.txt")) return 1; if (test9_helper("par2 create -bad foo.par2 input1.txt input2.txt")) return 1; if (test9_helper("par2 create -sad foo.par2 input1.txt input2.txt")) return 1; if (test9_helper("par2 create -rad foo.par2 input1.txt input2.txt")) return 1; if (test9_helper("par2 create -cad foo.par2 input1.txt input2.txt")) return 1; if (test9_helper("par2 create -fad foo.par2 input1.txt input2.txt")) return 1; if (test9_helper("par2 create -nad foo.par2 input1.txt input2.txt")) return 1; // delete files that were created at start of test. remove("foo.par2"); remove("bar.par2"); remove("input1.txt"); remove("input2.txt"); return 0; } // calls Parse and expects it to call create // "arg" is command; spaces are used to separate argv words... int test10_helper(const char *arg, const NoiseLevel noiselevel, const size_t memorylimit, const std::string &basepath, const u32 nthreads, const u32 filethreads, const std::string &parfilename, const std::vector &extrafiles, const u64 blocksize, const u32 firstblock, const Scheme recoveryfilescheme, const u32 recoveryfilecount, const u32 recoveryblockcount ) { // copy args into argc/argv format // buffer holds copy of arg, with ' ' replaced by '\0' const int len = strlen(arg); int argc = 0; char *buffer = new char[len+1]; const char **argv = new const char*[len]; argv[argc]=&(buffer[0]); argc++; for (int i = 0; i < len; i++) { buffer[i] = arg[i]; if (buffer[i] == ' ') { buffer[i] = '\0'; argv[argc] = &(buffer[i+1]); argc++; } } buffer[len] = '\0'; CommandLine commandline; if (!commandline.Parse(argc, argv)) { std::cout << "CommandLine said it was unable to parse \"" << arg << "\"" << std::endl; return 1; } if (commandline.GetVersion() != CommandLine::verPar2) { std::cout << "test10 fail version arg=" << arg << std::endl; std::cout << commandline.GetVersion() << " != " << CommandLine::verPar2 << std::endl; return 1; } if (commandline.GetOperation() != CommandLine::opCreate) { std::cout << "test10 fail operation arg=" << arg << std::endl; std::cout << commandline.GetOperation() << " != " << CommandLine::opCreate << std::endl; return 1; } if (commandline.GetNoiseLevel() != noiselevel) { std::cout << "test10 fail noiselevel arg=" << arg << std::endl; std::cout << commandline.GetNoiseLevel() << " != " << noiselevel << std::endl; return 1; } if (commandline.GetMemoryLimit() != memorylimit) { std::cout << "test10 fail memorylimit arg=" << arg << std::endl; std::cout << commandline.GetMemoryLimit() << " != " << memorylimit << std::endl; return 1; } if (commandline.GetBasePath() != basepath) { std::cout << "test10 fail basepath arg=" << arg << std::endl; std::cout << commandline.GetBasePath() << " != " << basepath << std::endl; return 1; } if (commandline.GetNumThreads() != nthreads) { std::cout << "test10 fail nthreads arg=" << arg << std::endl; std::cout << commandline.GetNumThreads() << " != " << nthreads << std::endl; return 1; } if (commandline.GetFileThreads() != filethreads) { std::cout << "test10 fail filethreads arg=" << arg << std::endl; std::cout << commandline.GetFileThreads() << " != " << filethreads << std::endl; return 1; } if (commandline.GetParFilename() != parfilename) { std::cout << "test10 fail parfilename arg=" << arg << std::endl; std::cout << commandline.GetParFilename() << " != " << parfilename << std::endl; return 1; } const std::vector &extrafiles_returned = commandline.GetExtraFiles(); if (extrafiles_returned.size() != extrafiles.size()) { std::cout << "test10 fail extrafiles.size() arg=" << arg << std::endl; std::cout << extrafiles_returned.size() << " != " << extrafiles.size() << std::endl; return 1; } for (unsigned int i = 0; i < extrafiles.size(); i++) { if (extrafiles_returned[i] != extrafiles[i]) { std::cout << "test10 fail extrafiles[" << i << "] arg=" << arg << std::endl; std::cout << extrafiles_returned[i] << " != " << extrafiles[i] << std::endl; return 1; } } if (commandline.GetBlockSize() != blocksize) { std::cout << "test10 fail blocksize arg=" << arg << std::endl; std::cout << commandline.GetBlockSize() << " != " << blocksize << std::endl; return 1; } if (commandline.GetFirstRecoveryBlock() != firstblock) { std::cout << "test10 fail firstblock arg=" << arg << std::endl; std::cout << commandline.GetFirstRecoveryBlock() << " != " << firstblock << std::endl; return 1; } if (commandline.GetRecoveryFileScheme() != recoveryfilescheme) { std::cout << "test10 fail recoveryfilescheme arg=" << arg << std::endl; std::cout << commandline.GetRecoveryFileScheme() << " != " << recoveryfilescheme << std::endl; return 1; } if (commandline.GetRecoveryFileCount() != recoveryfilecount) { std::cout << "test10 fail recoveryfilecount arg=" << arg << std::endl; std::cout << commandline.GetRecoveryFileCount() << " != " << recoveryfilecount << std::endl; return 1; } if (commandline.GetRecoveryBlockCount() != recoveryblockcount) { std::cout << "test10 fail recoveryblockcount arg=" << arg << std::endl; std::cout << commandline.GetRecoveryBlockCount() << " != " << recoveryblockcount << std::endl; return 1; } delete [] buffer; delete [] argv; return 0; } // Test calls to "par2 create" int test10() { // create input files, in case they are read. std::ofstream input1; input1.open("input1.txt"); const char *input1_contents = "commandline_test test10 input1.txt\n"; input1 << input1_contents; input1.close(); std::ofstream input2; input2.open("input2.txt"); const char *input2_contents = "commandline_test test10 input2.txt\n"; input2 << input2_contents; input2.close(); // Call once. The results are used to initialize some defaults. int argc_for_defaults = 5; const char *argv_for_defaults[5] = {"par2", "create", "foo.par2", "input1.txt", "input2.txt"}; CommandLine commandline_for_defaults; if (!commandline_for_defaults.Parse(argc_for_defaults, argv_for_defaults)) { std::cout << "CommandLine unable to fetch default values." << std::endl; return 1; } // Define the default values // (Using variable names makes it more obvious when // a non-default value is present in test.) const NoiseLevel default_noiselevel = nlNormal; const size_t default_memorylimit = commandline_for_defaults.GetMemoryLimit(); const std::string &default_basepath = commandline_for_defaults.GetBasePath(); const u32 default_nthreads = 0; const u32 default_filethreads = _FILE_THREADS; std::string default_parfilename = default_basepath + "foo"; // ".par2" is stripped. std::vector default_extrafiles; default_extrafiles.push_back(default_basepath + "input1.txt"); default_extrafiles.push_back(default_basepath + "input2.txt"); const u64 default_blocksize = 4; // tries to make 2000 blocks ... this is closest blocksize const u32 default_firstblock = 0; const Scheme default_recoveryfilescheme = scVariable; const u32 default_recoveryfilecount = 0; const u32 default_recoveryblockcount = 1; // tries to do 5% recovery data ... this is minimum value if (test10_helper("par2 create foo.par2 input1.txt input2.txt", default_noiselevel, default_memorylimit, default_basepath, default_nthreads, default_filethreads, default_parfilename, default_extrafiles, default_blocksize, default_firstblock, default_recoveryfilescheme, default_recoveryfilecount, default_recoveryblockcount)) { return 1; } // TODO: -B option // -v if (test10_helper("par2 create -v foo.par2 input1.txt input2.txt", nlNoisy, default_memorylimit, default_basepath, default_nthreads, default_filethreads, default_parfilename, default_extrafiles, default_blocksize, default_firstblock, default_recoveryfilescheme, default_recoveryfilecount, default_recoveryblockcount)) { return 1; } // -v -v if (test10_helper("par2 create -v -v foo.par2 input1.txt input2.txt", nlDebug, default_memorylimit, default_basepath, default_nthreads, default_filethreads, default_parfilename, default_extrafiles, default_blocksize, default_firstblock, default_recoveryfilescheme, default_recoveryfilecount, default_recoveryblockcount)) { return 1; } // -q if (test10_helper("par2 create -q foo.par2 input1.txt input2.txt", nlQuiet, default_memorylimit, default_basepath, default_nthreads, default_filethreads, default_parfilename, default_extrafiles, default_blocksize, default_firstblock, default_recoveryfilescheme, default_recoveryfilecount, default_recoveryblockcount)) { return 1; } // -q -q if (test10_helper("par2 create -q -q foo.par2 input1.txt input2.txt", nlSilent, default_memorylimit, default_basepath, default_nthreads, default_filethreads, default_parfilename, default_extrafiles, default_blocksize, default_firstblock, default_recoveryfilescheme, default_recoveryfilecount, default_recoveryblockcount)) { return 1; } // -m option if (test10_helper("par2 create -m16 foo.par2 input1.txt input2.txt", default_noiselevel, 16*1024*1024, default_basepath, default_nthreads, default_filethreads, default_parfilename, default_extrafiles, default_blocksize, default_firstblock, default_recoveryfilescheme, default_recoveryfilecount, default_recoveryblockcount)) { return 1; } // -t option if (test10_helper("par2 create -t42 foo.par2 input1.txt input2.txt", default_noiselevel, default_memorylimit, default_basepath, 42, default_filethreads, default_parfilename, default_extrafiles, default_blocksize, default_firstblock, default_recoveryfilescheme, default_recoveryfilecount, default_recoveryblockcount)) { return 1; } // -T option if (test10_helper("par2 create -T42 foo.par2 input1.txt input2.txt", default_noiselevel, default_memorylimit, default_basepath, default_nthreads, 42, default_parfilename, default_extrafiles, default_blocksize, default_firstblock, default_recoveryfilescheme, default_recoveryfilecount, default_recoveryblockcount)) { return 1; } // -- option if (test10_helper("par2 create -- foo.par2 input1.txt input2.txt", default_noiselevel, default_memorylimit, default_basepath, default_nthreads, default_filethreads, default_parfilename, default_extrafiles, default_blocksize, default_firstblock, default_recoveryfilescheme, default_recoveryfilecount, default_recoveryblockcount)) { return 1; } if (test10_helper("par2 create -- -foo.par2 input1.txt input2.txt", default_noiselevel, default_memorylimit, default_basepath, default_nthreads, default_filethreads, default_basepath + "-foo", default_extrafiles, default_blocksize, default_firstblock, default_recoveryfilescheme, default_recoveryfilecount, default_recoveryblockcount)) { return 1; } {// scope to hide variables std::ofstream dashinput2; dashinput2.open("-input2.txt"); dashinput2 << "commandline_test test10 -input2.txt\n"; dashinput2.close(); std::vector extrafiles; extrafiles.push_back(default_basepath + "input1.txt"); extrafiles.push_back(default_basepath + "-input2.txt"); if (test10_helper("par2 create foo.par2 input1.txt -- -input2.txt", default_noiselevel, default_memorylimit, default_basepath, default_nthreads, default_filethreads, default_parfilename, extrafiles, default_blocksize, default_firstblock, default_recoveryfilescheme, default_recoveryfilecount, default_recoveryblockcount)) { return 1; } // delete file that was created. remove("-input2.txt"); } if (test10_helper("par2 create -afoo.par2 input1.txt input2.txt", default_noiselevel, default_memorylimit, default_basepath, default_nthreads, default_filethreads, default_parfilename, default_extrafiles, default_blocksize, default_firstblock, default_recoveryfilescheme, default_recoveryfilecount, default_recoveryblockcount)) { return 1; } int longestfilelen = std::max(strlen(input1_contents), strlen(input2_contents)); int longestfilelen_rounded_up = longestfilelen; if (longestfilelen_rounded_up % 4 != 0) { longestfilelen_rounded_up += 4 - (longestfilelen_rounded_up % 4); } if (test10_helper("par2 create -b2 foo.par2 input1.txt input2.txt", default_noiselevel, default_memorylimit, default_basepath, default_nthreads, default_filethreads, default_parfilename, default_extrafiles, longestfilelen_rounded_up, default_firstblock, default_recoveryfilescheme, default_recoveryfilecount, default_recoveryblockcount)) { return 1; } if (test10_helper("par2 create -s8 foo.par2 input1.txt input2.txt", default_noiselevel, default_memorylimit, default_basepath, default_nthreads, default_filethreads, default_parfilename, default_extrafiles, 8, default_firstblock, default_recoveryfilescheme, default_recoveryfilecount, default_recoveryblockcount)) { return 1; } int default_sourceblockcount = 0; default_sourceblockcount += strlen(input1_contents)/default_blocksize; if (strlen(input1_contents) % default_blocksize != 0) default_sourceblockcount++; default_sourceblockcount += strlen(input2_contents)/default_blocksize; if (strlen(input2_contents) % default_blocksize != 0) default_sourceblockcount++; if (test10_helper("par2 create -r100 foo.par2 input1.txt input2.txt", default_noiselevel, default_memorylimit, default_basepath, default_nthreads, default_filethreads, default_parfilename, default_extrafiles, default_blocksize, default_firstblock, default_recoveryfilescheme, default_recoveryfilecount, default_sourceblockcount)) { // recoverycount=sourcecount return 1; } const int overhead_fixed = 76; // per source file: main packet contents, file desc, file slices header const int overhead_persourcefile = 216 + 12; // 216 + filename length // per source block: file slices contents const int overhead_persourceblock = 20; // per recovery bloc: recovery block header const int overhead_perrecoveryblock = 68; int default_sourcefilecount = 2; int optionr_recoveryfilecount = 4; // computed commandline, but not returned. int optionr_recoveryblockcount = 8; int usage_per_recoveryfile = overhead_fixed + default_sourcefilecount * overhead_persourcefile + default_sourceblockcount * overhead_persourceblock; int usage = optionr_recoveryfilecount * usage_per_recoveryfile + optionr_recoveryblockcount * (overhead_perrecoveryblock + default_blocksize); if (usage > 1024) { std::cout << "Test10 -rk1 should fail because usage limit was 1024 bytes. Actual usage was " << usage << std::endl; //return 1; } if (test10_helper("par2 create -rk1 foo.par2 input1.txt input2.txt", default_noiselevel, default_memorylimit, default_basepath, default_nthreads, default_filethreads, default_parfilename, default_extrafiles, default_blocksize, default_firstblock, default_recoveryfilescheme, default_recoveryfilecount, optionr_recoveryblockcount)) { return 1; } if (test10_helper("par2 create -c42 foo.par2 input1.txt input2.txt", default_noiselevel, default_memorylimit, default_basepath, default_nthreads, default_filethreads, default_parfilename, default_extrafiles, default_blocksize, default_firstblock, default_recoveryfilescheme, default_recoveryfilecount, 42)) { return 1; } if (test10_helper("par2 create -f42 foo.par2 input1.txt input2.txt", default_noiselevel, default_memorylimit, default_basepath, default_nthreads, default_filethreads, default_parfilename, default_extrafiles, default_blocksize, 42, default_recoveryfilescheme, default_recoveryfilecount, default_recoveryblockcount)) { return 1; } if (test10_helper("par2 create -u foo.par2 input1.txt input2.txt", default_noiselevel, default_memorylimit, default_basepath, default_nthreads, default_filethreads, default_parfilename, default_extrafiles, default_blocksize, default_firstblock, scUniform, default_recoveryfilecount, default_recoveryblockcount)) { return 1; } if (test10_helper("par2 create -l foo.par2 input1.txt input2.txt", default_noiselevel, default_memorylimit, default_basepath, default_nthreads, default_filethreads, default_parfilename, default_extrafiles, default_blocksize, default_firstblock, scLimited, default_recoveryfilecount, default_recoveryblockcount)) { return 1; } if (test10_helper("par2 create -n31 foo.par2 input1.txt input2.txt", default_noiselevel, default_memorylimit, default_basepath, default_nthreads, default_filethreads, default_parfilename, default_extrafiles, default_blocksize, default_firstblock, scUniform, // when recovery file number is set the scheme is uniform 31, default_recoveryblockcount)) { return 1; } // TODO: Test "-R" option (Recurse into subdirectories) // delete files that were created at start of test. remove("input1.txt"); remove("input2.txt"); return 0; } // calls Parse and expects it to call repair/verify // "arg" is command; spaces are used to separate argv words... int test11_helper(const char *arg, const NoiseLevel noiselevel, const size_t memorylimit, const std::string &basepath, const u32 nthreads, const u32 filethreads, const std::string &parfilename, const std::vector &extrafiles, const CommandLine::Version version, const CommandLine::Operation operation, const bool purgefiles, const bool skipdata, const u64 skipleaway ) { // copy args into argc/argv format // buffer holds copy of arg, with ' ' replaced by '\0' const int len = strlen(arg); int argc = 0; char *buffer = new char[len+1]; const char **argv = new const char*[len]; argv[argc]=&(buffer[0]); argc++; for (int i = 0; i < len; i++) { buffer[i] = arg[i]; if (buffer[i] == ' ') { buffer[i] = '\0'; argv[argc] = &(buffer[i+1]); argc++; } } buffer[len] = '\0'; CommandLine commandline; if (!commandline.Parse(argc, argv)) { std::cout << "CommandLine said it was unable to parse \"" << arg << "\"" << std::endl; return 1; } if (commandline.GetVersion() != version) { std::cout << "test11 fail version arg=" << arg << std::endl; std::cout << commandline.GetVersion() << " != " << version << std::endl; return 1; } if (commandline.GetOperation() != operation) { std::cout << "test11 fail operation arg=" << arg << std::endl; std::cout << commandline.GetOperation() << " != " << operation << std::endl; return 1; } if (commandline.GetNoiseLevel() != noiselevel) { std::cout << "test11 fail noiselevel arg=" << arg << std::endl; std::cout << commandline.GetNoiseLevel() << " != " << noiselevel << std::endl; return 1; } if (commandline.GetMemoryLimit() != memorylimit) { std::cout << "test11 fail memorylimit arg=" << arg << std::endl; std::cout << commandline.GetMemoryLimit() << " != " << memorylimit << std::endl; return 1; } if (commandline.GetBasePath() != basepath) { std::cout << "test11 fail basepath arg=" << arg << std::endl; std::cout << commandline.GetBasePath() << " != " << basepath << std::endl; return 1; } if (commandline.GetNumThreads() != nthreads) { std::cout << "test11 fail nthreads arg=" << arg << std::endl; std::cout << commandline.GetNumThreads() << " != " << nthreads << std::endl; return 1; } if (commandline.GetFileThreads() != filethreads) { std::cout << "test11 fail filethreads arg=" << arg << std::endl; std::cout << commandline.GetFileThreads() << " != " << filethreads << std::endl; return 1; } if (commandline.GetParFilename() != parfilename) { std::cout << "test11 fail parfilename arg=" << arg << std::endl; std::cout << commandline.GetParFilename() << " != " << parfilename << std::endl; return 1; } const std::vector &extrafiles_returned = commandline.GetExtraFiles(); if (extrafiles_returned.size() != extrafiles.size()) { std::cout << "test11 fail extrafiles.size() arg=" << arg << std::endl; std::cout << extrafiles_returned.size() << " != " << extrafiles.size() << std::endl; return 1; } for (unsigned int i = 0; i < extrafiles.size(); i++) { if (extrafiles_returned[i] != extrafiles[i]) { std::cout << "test11 fail extrafiles[" << i << "] arg=" << arg << std::endl; std::cout << extrafiles_returned[i] << " != " << extrafiles[i] << std::endl; return 1; } } if (commandline.GetPurgeFiles() != purgefiles) { std::cout << "test11 fail purgefiles arg=" << arg << std::endl; std::cout << commandline.GetPurgeFiles() << " != " << purgefiles << std::endl; return 1; } if (version == CommandLine::verPar2) { if (commandline.GetSkipData() != skipdata) { std::cout << "test11 fail skipdata arg=" << arg << std::endl; std::cout << commandline.GetSkipData() << " != " << skipdata << std::endl; return 1; } if (commandline.GetSkipLeaway() != skipleaway) { std::cout << "test11 fail skipleaway arg=" << arg << std::endl; std::cout << commandline.GetSkipLeaway() << " != " << skipleaway << std::endl; return 1; } } delete [] buffer; delete [] argv; return 0; } // test calls to repair/verify int test11() { // create input files, in case they are read. std::ofstream par2file; par2file.open("foo.par2"); par2file << "dummy par2 file. Just has to exist."; par2file.close(); std::ofstream input1; input1.open("input1.txt"); const char *input1_contents = "commandline_test test11 input1.txt\n"; input1 << input1_contents; input1.close(); std::ofstream input2; input2.open("input2.txt"); const char *input2_contents = "commandline_test test11 input2.txt\n"; input2 << input2_contents; input2.close(); // Call once. The results are used to initialize some defaults. int argc_for_defaults = 5; const char *argv_for_defaults[5] = {"par2", "repair", "foo.par2", "input1.txt", "input2.txt"}; CommandLine commandline_for_defaults; if (!commandline_for_defaults.Parse(argc_for_defaults, argv_for_defaults)) { std::cout << "CommandLine unable to fetch default values." << std::endl; return 1; } // Define the default values // (Using variable names makes it more obvious when // a non-default value is present in test.) const NoiseLevel default_noiselevel = nlNormal; const size_t default_memorylimit = commandline_for_defaults.GetMemoryLimit(); const std::string &default_basepath = commandline_for_defaults.GetBasePath(); const u32 default_nthreads = 0; const u32 default_filethreads = _FILE_THREADS; std::string default_parfilename = "foo.par2"; // relative path, par2 is NOT stripped. std::vector default_extrafiles; default_extrafiles.push_back(default_basepath + "input1.txt"); default_extrafiles.push_back(default_basepath + "input2.txt"); bool default_purgefiles = false; bool default_skipdata = false; u64 default_skipleaway = 0; if (test11_helper("par2 repair foo.par2 input1.txt input2.txt", default_noiselevel, default_memorylimit, default_basepath, default_nthreads, default_filethreads, default_parfilename, default_extrafiles, CommandLine::verPar2, CommandLine::opRepair, default_purgefiles, default_skipdata, default_skipleaway)) { return 1; } // TODO: -B option // -v if (test11_helper("par2 repair -v foo.par2 input1.txt input2.txt", nlNoisy, default_memorylimit, default_basepath, default_nthreads, default_filethreads, default_parfilename, default_extrafiles, CommandLine::verPar2, CommandLine::opRepair, default_purgefiles, default_skipdata, default_skipleaway)) { return 1; } if (test11_helper("par2 verify -v foo.par2 input1.txt input2.txt", nlNoisy, default_memorylimit, default_basepath, default_nthreads, default_filethreads, default_parfilename, default_extrafiles, CommandLine::verPar2, CommandLine::opVerify, default_purgefiles, default_skipdata, default_skipleaway)) { return 1; } // -v -v if (test11_helper("par2 repair -v -v foo.par2 input1.txt input2.txt", nlDebug, default_memorylimit, default_basepath, default_nthreads, default_filethreads, default_parfilename, default_extrafiles, CommandLine::verPar2, CommandLine::opRepair, default_purgefiles, default_skipdata, default_skipleaway)) { return 1; } // -q if (test11_helper("par2 repair -q foo.par2 input1.txt input2.txt", nlQuiet, default_memorylimit, default_basepath, default_nthreads, default_filethreads, default_parfilename, default_extrafiles, CommandLine::verPar2, CommandLine::opRepair, default_purgefiles, default_skipdata, default_skipleaway)) { return 1; } // -q -q if (test11_helper("par2 repair -q -q foo.par2 input1.txt input2.txt", nlSilent, default_memorylimit, default_basepath, default_nthreads, default_filethreads, default_parfilename, default_extrafiles, CommandLine::verPar2, CommandLine::opRepair, default_purgefiles, default_skipdata, default_skipleaway)) { return 1; } // -m if (test11_helper("par2 repair -m16 foo.par2 input1.txt input2.txt", default_noiselevel, 16*1024*1024, default_basepath, default_nthreads, default_filethreads, default_parfilename, default_extrafiles, CommandLine::verPar2, CommandLine::opRepair, default_purgefiles, default_skipdata, default_skipleaway)) { return 1; } // -t if (test11_helper("par2 repair -t42 foo.par2 input1.txt input2.txt", default_noiselevel, default_memorylimit, default_basepath, 42, default_filethreads, default_parfilename, default_extrafiles, CommandLine::verPar2, CommandLine::opRepair, default_purgefiles, default_skipdata, default_skipleaway)) { return 1; } // -T if (test11_helper("par2 repair -T42 foo.par2 input1.txt input2.txt", default_noiselevel, default_memorylimit, default_basepath, default_nthreads, 42, default_parfilename, default_extrafiles, CommandLine::verPar2, CommandLine::opRepair, default_purgefiles, default_skipdata, default_skipleaway)) { return 1; } // -- if (test11_helper("par2 repair -- foo.par2 input1.txt input2.txt", default_noiselevel, default_memorylimit, default_basepath, default_nthreads, default_filethreads, default_parfilename, default_extrafiles, CommandLine::verPar2, CommandLine::opRepair, default_purgefiles, default_skipdata, default_skipleaway)) { return 1; } {// scope to hide variables std::ofstream dashpar2file; dashpar2file.open("-foo.par2"); dashpar2file << "anything\n"; dashpar2file.close(); if (test11_helper("par2 repair -- -foo.par2 input1.txt input2.txt", default_noiselevel, default_memorylimit, default_basepath, default_nthreads, default_filethreads, "-foo.par2", default_extrafiles, CommandLine::verPar2, CommandLine::opRepair, default_purgefiles, default_skipdata, default_skipleaway)) { return 1; } remove("-foo.par2"); } { // scope to hide variables std::ofstream dashinput2; dashinput2.open("-input2.txt"); dashinput2 << "commandline_test test11 -input2.txt\n"; dashinput2.close(); std::vector extrafiles; extrafiles.push_back(default_basepath + "input1.txt"); extrafiles.push_back(default_basepath + "-input2.txt"); if (test11_helper("par2 repair foo.par2 input1.txt -- -input2.txt", default_noiselevel, default_memorylimit, default_basepath, default_nthreads, default_filethreads, default_parfilename, extrafiles, CommandLine::verPar2, CommandLine::opRepair, default_purgefiles, default_skipdata, default_skipleaway)) { return 1; } // delete file that was created. remove("-input2.txt"); } // -p if (test11_helper("par2 repair -p foo.par2 input1.txt input2.txt", default_noiselevel, default_memorylimit, default_basepath, default_nthreads, default_filethreads, default_parfilename, default_extrafiles, CommandLine::verPar2, CommandLine::opRepair, true, default_skipdata, default_skipleaway)) { return 1; } // Do we want -p with verify?? if (test11_helper("par2 verify -p foo.par2 input1.txt input2.txt", default_noiselevel, default_memorylimit, default_basepath, default_nthreads, default_filethreads, default_parfilename, default_extrafiles, CommandLine::verPar2, CommandLine::opVerify, true, default_skipdata, default_skipleaway)) { return 1; } // -N if (test11_helper("par2 repair -N foo.par2 input1.txt input2.txt", default_noiselevel, default_memorylimit, default_basepath, default_nthreads, default_filethreads, default_parfilename, default_extrafiles, CommandLine::verPar2, CommandLine::opRepair, default_purgefiles, true, 64) // this value should be a named constant somewhere. ) { return 1; } // -S if (test11_helper("par2 repair -N -S42 foo.par2 input1.txt input2.txt", default_noiselevel, default_memorylimit, default_basepath, default_nthreads, default_filethreads, default_parfilename, default_extrafiles, CommandLine::verPar2, CommandLine::opRepair, default_purgefiles, true, 42)) { return 1; } // remove par2 file remove("foo.par2"); // Create par1 file. Do a few tests. // std::ofstream par1file; par1file.open("bar.par"); par1file << "dummy par1 file. Just has to exist."; par1file.close(); if (test11_helper("par2 repair bar.par input1.txt input2.txt", default_noiselevel, default_memorylimit, default_basepath, default_nthreads, default_filethreads, "bar.par", default_extrafiles, CommandLine::verPar1, CommandLine::opRepair, default_purgefiles, default_skipdata, default_skipleaway)) { return 1; } if (test11_helper("par2 verify bar.par input1.txt input2.txt", default_noiselevel, default_memorylimit, default_basepath, default_nthreads, default_filethreads, "bar.par", default_extrafiles, CommandLine::verPar1, CommandLine::opVerify, default_purgefiles, default_skipdata, default_skipleaway)) { return 1; } remove("bar.par"); remove("input1.txt"); remove("input2.txt"); return 0; } // test calls to print help, version int test12() { int argc_for_help = 2; const char *argv_for_help[5] = {"par2", "--help"}; CommandLine commandline_for_help; if (!commandline_for_help.Parse(argc_for_help, argv_for_help)) { std::cout << "CommandLine failed for help" << std::endl; return 1; } int argc_for_h = 2; const char *argv_for_h[5] = {"par2", "-h"}; CommandLine commandline_for_h; if (!commandline_for_h.Parse(argc_for_h, argv_for_h)) { std::cout << "CommandLine failed for h." << std::endl; return 1; } int argc_for_help2 = 2; const char *argv_for_help2[5] = {"par2create", "--help"}; CommandLine commandline_for_help2; if (!commandline_for_help2.Parse(argc_for_help2, argv_for_help2)) { std::cout << "CommandLine failed for help (par2create)." << std::endl; return 1; } int argc_for_version = 2; const char *argv_for_version[5] = {"par2", "--version"}; CommandLine commandline_for_version; if (!commandline_for_version.Parse(argc_for_version, argv_for_version)) { std::cout << "CommandLine failed for version." << std::endl; return 1; } int argc_for_V = 2; const char *argv_for_V[5] = {"par2", "-V"}; CommandLine commandline_for_V; if (!commandline_for_V.Parse(argc_for_V, argv_for_V)) { std::cout << "CommandLine failed for v." << std::endl; return 1; } int argc_for_VV = 2; const char *argv_for_VV[5] = {"par2", "-VV"}; CommandLine commandline_for_VV; if (!commandline_for_VV.Parse(argc_for_VV, argv_for_VV)) { std::cout << "CommandLine failed for v." << std::endl; return 1; } int argc_for_version2 = 2; const char *argv_for_version2[5] = {"par2create", "--version"}; CommandLine commandline_for_version2; if (!commandline_for_version2.Parse(argc_for_version2, argv_for_version2)) { std::cout << "CommandLine failed for version (par2create)." << std::endl; return 1; } return 0; } int main() { std::cout << "Tests 1 through 4 were moved to libpar2_test." << std::endl; if (test5()) { std::cerr << "FAILED: test5" << std::endl; return 1; } if (test6()) { std::cerr << "FAILED: test6" << std::endl; return 1; } if (test7()) { std::cerr << "FAILED: test7" << std::endl; return 1; } if (test8()) { std::cerr << "FAILED: test8" << std::endl; return 1; } if (test9()) { std::cerr << "FAILED: test9" << std::endl; return 1; } if (test10()) { std::cerr << "FAILED: test10" << std::endl; return 1; } if (test11()) { std::cerr << "FAILED: test11" << std::endl; return 1; } if (test12()) { std::cerr << "FAILED: test12" << std::endl; return 1; } std::cout << "SUCCESS: commandline_test complete." << std::endl; return 0; } par2cmdline-turbo-1.5.0/src/crc.cpp000066400000000000000000000065071524160147200171220ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "libpar2internal.h" #ifdef _MSC_VER #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif #endif // The one and only CCITT CRC32 lookup table // // NOTE: the constant is the reversed polynomial for CRC-32 // as listed on Wikipedia's page: // https://en.wikipedia.org/wiki/Cyclic_redundancy_check crc32table ccitttable(0xEDB88320L); // GF32 multiplication #define NEGATE32(n) (u32)(-((i32)(n))) static u32 GF32Multiply(u32 a, u32 b, u32 polynomial) { u32 product = 0; for (u32 i=0; i<31; i++) { product ^= NEGATE32(b >> 31) & a; a = ((a >> 1) ^ (polynomial & NEGATE32(a & 1))); b <<= 1; } product ^= NEGATE32(b >> 31) & a; return product; } // Compute 2^(8n) in CRC's GF static u32 CRCExp8(u64 n) { u32 result = 0x80000000; u32 power = 0; n %= 0xffffffff; while (n) { if (n & 1) result = GF32Multiply(result, ccitttable.power[power], ccitttable.polynom); n >>= 1; power = (power + 1) & 31; } return result; } // Construct the CRC32 lookup table from the specified polynomial // // This seems to follow: // http://www.efg2.com/Lab/Library/UseNet/1999/0117.txt crc32table::crc32table(u32 polynomial) { polynom = polynomial; for (u32 i = 0; i <= 255 ; i++) { u32 crc = i; for (u32 j = 0; j < 8; j++) { crc = (crc >> 1) ^ ((crc & 1) ? polynomial : 0); } table[i] = crc; } // Also construct the table used for computing power // Note that the table is rotated by 3 entries, since we operate on bytes, i.e. 1<<3 bits u32 k = 0x80000000 >> 1; for (u32 i = 0; i < 32; i++) { power[(i - 3) & 31] = k; k = GF32Multiply(k, k, polynomial); } } // Construct a CRC32 lookup table for windowing void GenerateWindowTable(u64 window, u32 (&target)[256]) { // Window coefficient u32 coeff = CRCExp8(window); // Extend initial CRC to window length u32 mask = GF32Multiply(~0, coeff, ccitttable.polynom); // Xor initial CRC with that extended by one byte mask = GF32Multiply(mask, 0x80800000, ccitttable.polynom); // Since we have a table, may as well invert all bits to save doing it later mask ^= ~0; // Generate table for (i16 i=0; i<=255; i++) { target[i] = GF32Multiply(ccitttable.table[i], coeff, ccitttable.polynom) ^ mask; } } u32 CRCUpdateBlock(u32 crc, u64 length) { return GF32Multiply(crc, CRCExp8(length), ccitttable.polynom); } par2cmdline-turbo-1.5.0/src/crc.h000066400000000000000000000057121524160147200165640ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef __CRC_H__ #define __CRC_H__ // These global functions are used to compute the CCITT CRC32 checksum of // blocks of data. // The CRC for a block of data may be computed piecemeal be repeatedly // calling CRCUpdateBlock. // Given the CRC for a block of data in a buffer, CRCSlideChar may be used // to quickly compute the CRC for the block of data in the buffer that is the // same size but offset one character later in the buffer. // A CRC32 lookup table struct crc32table { u32 polynom; crc32table(u32 polynomial); u32 table[256]; u32 power[32]; }; // The one and only CCITT CRC32 lookup table extern crc32table ccitttable; #include "../parpar/hasher/hasher.h" // CRC32_Calc inline u32 CRCCompute(size_t length, const void* buffer) { return CRC32_Calc(buffer, length); } // Update the CRC using a block of characters in a buffer inline u32 CRCUpdateBlock(u32 crc, size_t length, const void *buffer) { const unsigned char *current = (const unsigned char *)buffer; while (length-- > 0) { crc = ((crc >> 8) & 0x00ffffffL) ^ ccitttable.table[(u8)crc ^ (*current++)]; } return crc; } // Update the CRC using a block of 0s. u32 CRCUpdateBlock(u32 crc, u64 length); // Construct a CRC32 lookup table for windowing void GenerateWindowTable(u64 window, u32 (&windowtable)[256]); // Slide the CRC along a buffer by one character (removing the old and adding the new). // The new character is added using the main CCITT CRC32 table, and the old character // is removed using the windowtable. inline u32 CRCSlideChar(u32 crc, u8 chNew, u8 chOld, const u32 (&windowtable)[256]) { crc ^= ~0; return ((crc >> 8) & 0x00ffffffL) ^ ccitttable.table[(u8)crc ^ chNew] ^ windowtable[chOld]; } /* char *buffer; u64 window; //... u32 windowtable[256]; GenerateWindowTable(window, windowtable); u32 crc = ~0 ^ CRCUpdateBlock(~0, window, buffer); crc = CRCSlideChar(crc, buffer[window], buffer[0], windowtable); assert(crc == ~0 ^ CRCUpdateBlock(~0, window, buffer+1)); */ #endif // __CRC_H__ par2cmdline-turbo-1.5.0/src/crc_test.cpp000066400000000000000000000123561524160147200201600ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // This is just a simple set of tests on md5 hash. // The initial version just showed it was self-consistent, not accurate. // I compile with: // g++ -DHAVE_CONFIG_H -I.. crc_test.cpp crc.cpp #include "libpar2internal.h" #include #include #include "crc.h" // Example usage: // u32 checksum = CRCCompute((size_t)blocksize, buffer); // compares UpdateBlock(crc, length) to UpdateBlock(crc,buffer,buffersize) int test1() { unsigned char buffer[] = {0,0,0,0,0,0,0,0}; u32 checksum1 = CRCCompute(sizeof(buffer), buffer); u32 checksum2 = ~0 ^ CRCUpdateBlock(~0, sizeof(buffer)); if (checksum1 != checksum2) { std::cerr << "checksum1 = " << checksum1 << std::endl; std::cerr << "checksum2 = " << checksum2 << std::endl; return 1; } return 0; } // CRC32 of "123456789" yields 0xCBF43926 // according to http://www.ross.net/crc/download/crc_v3.txt int test2() { unsigned char buffer[] = "123456789"; size_t buffer_length = 9; u32 expected_checksum = 0xCBF43926u; u32 checksum1 = CRCCompute(buffer_length, buffer); if (checksum1 != expected_checksum) { std::cerr << "checksum was not precalculated value: " << std::hex << checksum1 << std::dec << std::endl; std::cerr << " expected " << std::hex << expected_checksum << std::dec << std::endl; return 1; } return 0; } // generate random data. // put it into checksum using different length blocks // make sure output is the same. int test3() { srand(345087209); unsigned char buffer[32*1024]; for (unsigned int i = 0; i < sizeof(buffer); i++) { buffer[i] = (unsigned char) (rand() % 256); } u32 checksum1 = ~0; unsigned int offset = 0; while (offset < sizeof(buffer)) { unsigned int length = (unsigned int) (rand() % 256); if (offset + length > sizeof(buffer)) length = sizeof(buffer) - offset; checksum1 = CRCUpdateBlock(checksum1, length, buffer + offset); offset += length; } checksum1 = ~0 ^ checksum1; u32 checksum2 = ~0; offset = 0; while (offset < sizeof(buffer)) { unsigned int length = (unsigned int) (rand() % 256); if (offset + length > sizeof(buffer)) length = sizeof(buffer) - offset; checksum2 = CRCUpdateBlock(checksum2, length, buffer + offset); offset += length; } checksum2 = ~0 ^ checksum2; if (checksum1 != checksum2) { std::cerr << "random checksum1 = " << checksum1 << std::endl; std::cerr << "random checksum2 = " << checksum2 << std::endl; return 1; } return 0; } // check windowing on random buffer int test5() { srand(113450911); unsigned char buffer[32*1024]; for (unsigned int i = 0; i < sizeof(buffer); i++) { buffer[i] = (unsigned char) (rand() % 256); } u64 window = 1024; u32 windowtable[256]; GenerateWindowTable(window, windowtable); int result = 0; u32 crc = CRCCompute(window, buffer); for (int offset = 0; offset + window < sizeof(buffer) - 1; offset++) { // compare against reference u32 othercrc = CRCCompute(window, buffer + offset); if (crc != othercrc) { std::cerr << "error in window at offset " << offset << std::endl; std::cerr << " checksum1 = " << crc << std::endl; std::cerr << " checksum2 = " << othercrc << std::endl; result = 1; } // slide window crc = CRCSlideChar(crc, buffer[offset + window], buffer[offset], windowtable); } return result; } // Checksum of checksum table // stolen from: // http://www.efg2.com/Lab/Mathematics/CRC.htm int test6() { u32 checksum1 = CRCCompute(sizeof(ccitttable.table), &ccitttable.table); u32 expected = 0x6FCF9E13; if (checksum1 != expected) { std::cerr << "error when computing checksum of checksum table " << std::endl; std::cerr << " checksum1 = " << checksum1 << std::endl; std::cerr << " expected = " << expected << std::endl; return 0; } return 0; } int main() { setup_hasher(); if (test1()) { std::cerr << "FAILED: test1" << std::endl; return 1; } if (test2()) { std::cerr << "FAILED: test2" << std::endl; return 1; } if (test3()) { std::cerr << "FAILED: test3" << std::endl; return 1; } if (test5()) { std::cerr << "FAILED: test5" << std::endl; return 1; } if (test6()) { std::cerr << "FAILED: test6" << std::endl; return 1; } std::cout << "SUCCESS: crc_test complete." << std::endl; return 0; } par2cmdline-turbo-1.5.0/src/creatorpacket.cpp000066400000000000000000000055631524160147200212030ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "libpar2internal.h" #ifdef _MSC_VER #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif #endif // Construct the creator packet. // The only external information required to complete construction is // the set_id_hash (which is normally computed from information in the // main packet). bool CreatorPacket::Create(const MD5Hash &setid) { std::string creator = "Created by " PACKAGE " version " VERSION "."; // Allocate a packet just large enough for creator name CREATORPACKET *packet = (CREATORPACKET *)AllocatePacket(sizeof(*packet) + (~3 & (3+(u32)creator.size()))); // Fill in the details the we know packet->header.magic = packet_magic; packet->header.length = packetlength; //packet->header.hash; // Compute shortly packet->header.setid = setid; packet->header.type = creatorpacket_type; // Copy the creator description into the packet memcpy(packet->client, creator.c_str(), creator.size()); // Compute the packet hash MD5Context packetcontext; packetcontext.Update(&packet->header.setid, packetlength - offsetof(PACKET_HEADER, setid)); packetcontext.Final(packet->header.hash); return true; } // Load the packet from disk. bool CreatorPacket::Load(DiskFile *diskfile, u64 offset, PACKET_HEADER &header) { // Is the packet long enough if (header.length <= sizeof(CREATORPACKET)) { return false; } // Is the packet too large (what is the longest reasonable creator description) if (header.length - sizeof(CREATORPACKET) > 100000) { return false; } // Allocate the packet (with a little extra so we will have NULLs after the description) CREATORPACKET *packet = (CREATORPACKET *)AllocatePacket((size_t)header.length, 4); packet->header = header; // Load the rest of the packet from disk return diskfile->Read(offset + sizeof(PACKET_HEADER), packet->client, (size_t)packet->header.length - sizeof(PACKET_HEADER)); } par2cmdline-turbo-1.5.0/src/creatorpacket.h000066400000000000000000000031531524160147200206410ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef __CREATORPACKET_H__ #define __CREATORPACKET_H__ // The creator packet records details as to which PAR2 client // created a particular recovery file. // The PAR 2.0 specification requires the presence of a // creator packet, but it is not actually needed for the // verification or recovery of damaged files. class CreatorPacket : public CriticalPacket { public: // Construct the packet CreatorPacket(void) {}; ~CreatorPacket(void) {}; // Create a creator packet for a specified set id hash value bool Create(const MD5Hash &set_id_hash); // Load a creator packet from a specified file bool Load(DiskFile *diskfile, u64 offset, PACKET_HEADER &header); }; #endif // __CREATORPACKET_H__ par2cmdline-turbo-1.5.0/src/criticalpacket.cpp000066400000000000000000000066051524160147200213340ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "libpar2internal.h" #ifdef _MSC_VER #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif #endif bool CriticalPacket::WritePacket(DiskFile &diskfile, u64 fileoffset) const { assert(packetdata != 0 && packetlength != 0); return diskfile.Write(fileoffset, packetdata, packetlength); } void CriticalPacket::FinishPacket(const MD5Hash &setid) { assert(packetdata != 0 && packetlength >= sizeof(PACKET_HEADER)); PACKET_HEADER *header = (PACKET_HEADER*)packetdata; header->setid = setid; MD5Context packetcontext; packetcontext.Update(&header->setid, packetlength - offsetof(PACKET_HEADER, setid)); packetcontext.Final(header->hash); } // Order is: // Main Packet // File Description Packet (sorted by FileID) // File Verification Packet (sorted by FileID) // Creator Packet // Recovery Packet (sorted by exponent) bool CriticalPacket::CompareLess(const CriticalPacket* const &left, const CriticalPacket* const &right) { PACKET_HEADER *left_header = (PACKET_HEADER *)left->packetdata; PACKET_HEADER *right_header = (PACKET_HEADER *)right->packetdata; int left_value; switch (left_header->type.type[8]) { case 'M': left_value = 0; break; case 'F': left_value = 1; break; case 'I': left_value = 2; break; case 'C': left_value = 3; break; case 'R': left_value = 4; break; default: left_value = 5; break; } int right_value; switch (right_header->type.type[8]) { case 'M': right_value = 0; break; case 'F': right_value = 1; break; case 'I': right_value = 2; break; case 'C': right_value = 3; break; case 'R': right_value = 4; break; default: right_value = 5; break; } if (left_value < right_value) return true; if (left_value > right_value) return false; if (left_value == 1) // file description packets { return ((FILEDESCRIPTIONPACKET *)left->packetdata)->fileid < ((FILEDESCRIPTIONPACKET *)right->packetdata)->fileid; } else if (left_value == 2) // file verification packets { return ((FILEVERIFICATIONPACKET *)left->packetdata)->fileid < ((FILEVERIFICATIONPACKET *)right->packetdata)->fileid; } else if (left_value == 4) // recovery packet { return ((RECOVERYBLOCKPACKET *)left->packetdata)->exponent < ((RECOVERYBLOCKPACKET *)right->packetdata)->exponent; } else { // they're equal. return false; } } par2cmdline-turbo-1.5.0/src/criticalpacket.h000066400000000000000000000100051524160147200207660ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef __CRITICALPACKET_H__ #define __CRITICALPACKET_H__ // Base class for main packet, file verification packet, file description packet // and creator packet. // These packets are all small and are held in memory in their entirity class CriticalPacket { public: CriticalPacket(void); ~CriticalPacket(void); public: // Write a copy of the packet to the specified file at the specified offset bool WritePacket(DiskFile &diskfile, u64 fileoffset) const; // Obtain the length of the packet. size_t PacketLength(void) const; // Allocate some memory for the packet (plus some extra padding). void* AllocatePacket(size_t length, size_t extra = 0); // Finish a packet (by storing the set_id_hash and then computing the packet_hash). void FinishPacket(const MD5Hash &set_id_hash); // Sort critical packets by type and FileId static bool CompareLess(const CriticalPacket* const &left, const CriticalPacket* const &right); protected: u8 *packetdata; size_t packetlength; }; inline CriticalPacket::CriticalPacket(void) { // There is no data initially packetdata = 0; packetlength = 0; } inline CriticalPacket::~CriticalPacket(void) { // Delete the data for the packet delete [] packetdata; } inline size_t CriticalPacket::PacketLength(void) const { return packetlength; } inline void* CriticalPacket::AllocatePacket(size_t length, size_t extra) { // Hey! We can't allocate the packet twice assert(packetlength == 0 && packetdata == 0); // Remember the requested packet length packetlength = length; // Allocate and clear the requested packet length plus the extra. packetdata = new u8[length+extra]; memset(packetdata, 0, length+extra); return packetdata; } // Class used to record the fact that a copy of a particular critical packet // will be written to a particular file at a specific offset. class CriticalPacketEntry { public: CriticalPacketEntry(DiskFile *_diskfile, u64 _offset, const CriticalPacket *_packet) : diskfile(_diskfile) , offset(_offset) , packet(_packet) {} CriticalPacketEntry(void) : diskfile(0) , offset(0) , packet(0) {} CriticalPacketEntry(const CriticalPacketEntry &other) : diskfile(other.diskfile) , offset(other.offset) , packet(other.packet) {} CriticalPacketEntry& operator=(const CriticalPacketEntry &other) { diskfile = other.diskfile; offset = other.offset; packet = other.packet; return *this; } public: // Write the packet to disk. bool WritePacket(void) const; // Obtain the length of the packet. u64 PacketLength(void) const; protected: DiskFile *diskfile; u64 offset; const CriticalPacket *packet; }; inline bool CriticalPacketEntry::WritePacket(void) const { assert(packet != 0 && diskfile != 0); // Tell the packet to write itself to disk return packet->WritePacket(*diskfile, offset); } inline u64 CriticalPacketEntry::PacketLength(void) const { assert(packet != 0); // Ask the packet how big it is. return packet->PacketLength(); } #endif // __CRITICALPACKET_H__ par2cmdline-turbo-1.5.0/src/criticalpacket_test.cpp000066400000000000000000000071331524160147200223700ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include #include #include "libpar2internal.h" // CriticalPacket::CompareLess int test1() { CriticalPacket criticalpackets[11]; u8 *data; data = (u8 *) criticalpackets[0].AllocatePacket(sizeof(MAINPACKET), 0); ((MAINPACKET *)data)->header.type = mainpacket_type; data = (u8 *) criticalpackets[1].AllocatePacket(sizeof(FILEDESCRIPTIONPACKET), 0); ((FILEDESCRIPTIONPACKET *)data)->header.type = filedescriptionpacket_type; ((FILEDESCRIPTIONPACKET *)data)->fileid.hash[0] = 0; data = (u8 *) criticalpackets[2].AllocatePacket(sizeof(FILEDESCRIPTIONPACKET), 0); ((FILEDESCRIPTIONPACKET *)data)->header.type = filedescriptionpacket_type; ((FILEDESCRIPTIONPACKET *)data)->fileid.hash[0] = 1; data = (u8 *) criticalpackets[3].AllocatePacket(sizeof(FILEDESCRIPTIONPACKET), 0); ((FILEDESCRIPTIONPACKET *)data)->header.type = filedescriptionpacket_type; ((FILEDESCRIPTIONPACKET *)data)->fileid.hash[1] = 1; data = (u8 *) criticalpackets[4].AllocatePacket(sizeof(FILEVERIFICATIONPACKET), 0); ((FILEVERIFICATIONPACKET *)data)->header.type = fileverificationpacket_type; ((FILEVERIFICATIONPACKET *)data)->fileid.hash[0] = 0; data = (u8 *) criticalpackets[5].AllocatePacket(sizeof(FILEVERIFICATIONPACKET), 0); ((FILEVERIFICATIONPACKET *)data)->header.type = fileverificationpacket_type; ((FILEVERIFICATIONPACKET *)data)->fileid.hash[0] = 1; data = (u8 *) criticalpackets[6].AllocatePacket(sizeof(FILEVERIFICATIONPACKET), 0); ((FILEVERIFICATIONPACKET *)data)->header.type = fileverificationpacket_type; ((FILEVERIFICATIONPACKET *)data)->fileid.hash[1] = 1; data = (u8 *) criticalpackets[7].AllocatePacket(sizeof(CREATORPACKET), 0); ((CREATORPACKET *)data)->header.type = creatorpacket_type; data = (u8 *) criticalpackets[8].AllocatePacket(sizeof(RECOVERYBLOCKPACKET), 0); ((RECOVERYBLOCKPACKET *)data)->header.type = recoveryblockpacket_type; ((RECOVERYBLOCKPACKET *)data)->exponent = 0; data = (u8 *) criticalpackets[9].AllocatePacket(sizeof(RECOVERYBLOCKPACKET), 0); ((RECOVERYBLOCKPACKET *)data)->header.type = recoveryblockpacket_type; ((RECOVERYBLOCKPACKET *)data)->exponent = 1; data = (u8 *) criticalpackets[10].AllocatePacket(sizeof(RECOVERYBLOCKPACKET), 0); // type is zeroed by AllocatePacket. for (size_t i = 0; i < 11; i++) { for (size_t j = 0; j < 11; j++) { if (CriticalPacket::CompareLess(criticalpackets + i, criticalpackets + j) != (i < j)) { std::cout << "CompareLess failed for " << i << " " << j << std::endl; return 1; } } } return 0; } int main() { if (test1()) { std::cerr << "FAILED: test1" << std::endl; return 1; } std::cout << "SUCCESS: criticalpacket_test complete." << std::endl; return 0; } par2cmdline-turbo-1.5.0/src/datablock.cpp000066400000000000000000000064341524160147200202760ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "libpar2internal.h" #ifdef _MSC_VER #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif #endif // Open the file associated with the data block if is not already open bool DataBlock::Open(void) { if (diskfile == 0) return false; if (diskfile->IsOpen()) return true; return diskfile->Open(); } // Read some data at a specified position within a data block // into a buffer in memory bool DataBlock::ReadData(u64 position, // Position within the block size_t size, // Size of the memory buffer void *buffer) // Pointer to memory buffer { assert(diskfile != 0); // Check to see if the position from which data is to be read // is within the bounds of the data block if (length > position) { // Compute the file offset and how much data to physically read from disk u64 fileoffset = offset + position; size_t want = (size_t)std::min( std::min((u64)size, length - position), diskfile->FileSize() - fileoffset ); // Read the data from the file into the buffer if (!diskfile->Read(fileoffset, buffer, want)) return false; // If the read extends beyond the end of the data block, // then the rest of the buffer is zeroed. if (want < size) { memset(&((u8*)buffer)[want], 0, size-want); } } else { // Zero the whole buffer memset(buffer, 0, size); } return true; } // Write some data at a specified position within a datablock // from memory to disk bool DataBlock::WriteData(u64 position, // Position within the block size_t size, // Size of the memory buffer const void *buffer, // Pointer to memory buffer size_t &wrote) // Amount actually written { assert(diskfile != 0); wrote = 0; // Check to see if the position from which data is to be written // is within the bounds of the data block if (length > position) { // Compute the file offset and how much data to physically write to disk u64 fileoffset = offset + position; size_t have = (size_t)std::min((u64)size, length - position); // Write the data from the buffer to disk if (!diskfile->Write(fileoffset, buffer, have)) return false; wrote = have; } return true; } par2cmdline-turbo-1.5.0/src/datablock.h000066400000000000000000000074141524160147200177420ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef __DATABLOCK_H__ #define __DATABLOCK_H__ class DiskFile; // A Data Block is a block of data of a specific length at a specific // offset in a specific file. // It may be either a block of data in a source file from which recovery // data is being computed, a block of recovery data in a recovery file, or // a block in a target file that is being reconstructed. class DataBlock { public: DataBlock(void); ~DataBlock(void); public: // Set the length of the block void SetLength(u64 length); // Set the location of the block void SetLocation(DiskFile *diskfile, u64 offset); void ClearLocation(void); void SetFilesize(u64 filesize); public: // Check to see if the location of the block has been set bool IsSet(void) const; // Which disk file is this data block in DiskFile* GetDiskFile(void) const; // What offset is the block located at u64 GetOffset(void) const; // What is the length of this block u64 GetLength(void) const; public: // Open the disk file if it is not already open (so that it can be read) bool Open(void); // Read some of the data from disk into memory. bool ReadData(u64 position, size_t size, void *buffer); // Write some of the data from memory to disk bool WriteData(u64 position, size_t size, const void *buffer, size_t &wrote); protected: DiskFile *diskfile; // Which disk file is the block associated with u64 offset; // What is the file offset u64 length; // How large is the block u64 filesize; // How large was the original file }; // Construct the data block inline DataBlock::DataBlock(void) { diskfile = 0; offset = 0; length = 0; filesize = 0; } // Destroy the data block inline DataBlock::~DataBlock(void) { } // Set the length of the block inline void DataBlock::SetLength(u64 _length) { length = _length; } inline void DataBlock::SetFilesize(u64 _filesize) { filesize = _filesize; } // Set the location of the block inline void DataBlock::SetLocation(DiskFile *_diskfile, u64 _offset) { diskfile = _diskfile; offset = _offset; } // Clear the location of the block inline void DataBlock::ClearLocation(void) { diskfile = 0; offset = 0; } // Check to see of the location is known inline bool DataBlock::IsSet(void) const { if (filesize > 0) { if (diskfile != 0) { if ((offset + length) > diskfile->FileSize() && filesize > diskfile->FileSize()) { return false; } else { return (diskfile != 0); } } } return (diskfile != 0); } // Which disk file is this data block in inline DiskFile* DataBlock::GetDiskFile(void) const { return diskfile; } // What offset is the block located at inline u64 DataBlock::GetOffset(void) const { return offset; } // What is the length of this block inline u64 DataBlock::GetLength(void) const { return length; } #endif // __DATABLOCK_H__ par2cmdline-turbo-1.5.0/src/descriptionpacket.cpp000066400000000000000000000263461524160147200220710ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "libpar2internal.h" #ifdef _MSC_VER #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif #endif // Construct the packet and store the filename and size. bool DescriptionPacket::Create(std::string filename, u64 filesize) { // Allocate some extra bytes for the packet in memory so that strlen() can // be used on the filename. The extra bytes do not get written to disk. FILEDESCRIPTIONPACKET *packet = (FILEDESCRIPTIONPACKET *)AllocatePacket(sizeof(*packet) + (~3 & (3 + (u32)filename.size())), 4); // Store everything that is currently known in the packet. packet->header.magic = packet_magic; packet->header.length = packetlength; //packet->header.hash; // Not known yet //packet->header.setid; // Not known yet packet->header.type = filedescriptionpacket_type; //packet->fileid; // Not known yet //packet->hashfull; // Not known yet //packet->hash16k; // Not known yet packet->length = filesize; memcpy(packet->name, filename.c_str(), filename.size()); return true; } void DescriptionPacket::Hash16k(const MD5Hash &hash) { ((FILEDESCRIPTIONPACKET *)packetdata)->hash16k = hash; } void DescriptionPacket::HashFull(const MD5Hash &hash) { ((FILEDESCRIPTIONPACKET *)packetdata)->hashfull = hash; } void DescriptionPacket::ComputeFileId(void) { FILEDESCRIPTIONPACKET *packet = ((FILEDESCRIPTIONPACKET *)packetdata); // Compute the fileid from the hash, length, and name fields in the packet. MD5Context context; context.Update(&packet->hash16k, sizeof(FILEDESCRIPTIONPACKET)-offsetof(FILEDESCRIPTIONPACKET,hash16k) +strlen((const char*)packet->name)); context.Final(packet->fileid); } // Load a description packet from a specified file bool DescriptionPacket::Load(DiskFile *diskfile, u64 offset, PACKET_HEADER &header) { // Is the packet big enough if (header.length <= sizeof(FILEDESCRIPTIONPACKET)) { return false; } // Is the packet too large (what is the longest permissible filename) if (header.length - sizeof(FILEDESCRIPTIONPACKET) > 100000) { return false; } // Allocate the packet (with a little extra so we will have NULLs after the filename) FILEDESCRIPTIONPACKET *packet = (FILEDESCRIPTIONPACKET *)AllocatePacket((size_t)header.length, 4); packet->header = header; // Read the rest of the packet from disk if (!diskfile->Read(offset + sizeof(PACKET_HEADER), &packet->fileid, (size_t)packet->header.length - sizeof(PACKET_HEADER))) return false; // Are the file and 16k hashes consistent if (packet->length <= 16384 && packet->hash16k != packet->hashfull) { return false; } return true; } // Returns the URL-style encoding of a character: // "%HH" where H is a hex-digit. std::string DescriptionPacket::UrlEncodeChar(char c) { std::string result("%"); char high_bits = ((c >> 4) & 0xf); if (high_bits < 10) result += '0' + high_bits; else result += 'A' + (high_bits - 10); char low_bits = (c & 0xf); if (low_bits < 10) result += '0' + low_bits; else result += 'A' + (low_bits - 10); return result; } // Converts the filename from that on disk to the version // in the Par file. Par uses HTML-style slashes ('/' or // UNIX-style slashes) to denote directories. This // function also prints a warning if a character may be // illegal on another machine. // // NOTE: I decided to warn users, not change the files. // If a user is just backing up files on their own system // and not sending them to users on another operating // system, we don't want to change the filenames. std::string DescriptionPacket::TranslateFilenameFromLocalToPar2(std::ostream &sout, std::ostream &serr, const NoiseLevel noiselevel, std::string local_filename) { std::string par2_encoded_filename; std::string::iterator p = local_filename.begin(); while (p != local_filename.end()) { unsigned char ch = *p; bool ok = true; if (ch < 32) { ok = false; } else { switch (ch) { case '"': case '*': case ':': case '<': case '>': case '?': case '|': ok = false; } } if (!ok) { if (noiselevel >= nlNormal) { serr << "WARNING: A filename contains the character \'" << ch << "\' which some systems do not allow in filenames." << std::endl; } } #ifdef _WIN32 // replace Windows-slash with HTML-slash if (ch == '\\') { ch = '/'; } #else if (ch == '\\') { if (noiselevel >= nlNormal) { serr << "WARNING: Found Windows-style slash '\\' in filename. Windows systems may have trouble with it." << std::endl; } } #endif par2_encoded_filename += ch; ++p; } // Par files should never contain an absolute path. On Windows, // These start "C:\...", etc. An attacker could put an absolute // path into a Par file and overwrite system files. if (par2_encoded_filename.size() > 1 && par2_encoded_filename.at(1) == ':') { if (noiselevel >= nlNormal) { serr << "WARNING: The second character in the filename \"" << par2_encoded_filename << "\" is a colon (':')." << std::endl; serr << " This may be interpreted by Windows systems as an absolute path." << std::endl; serr << " This file may be ignored by Par clients because absolute paths" << std::endl; serr << " are a way for an attacker to overwrite system files." << std::endl; } } if (par2_encoded_filename.at(0) == '/') { if (noiselevel >= nlNormal) { serr << "WARNING: The first character in the filename \"" << par2_encoded_filename << "\" is an HTML-slash ('/')." << std::endl; serr << " This may be interpreted by UNIX systems as an absolute path." << std::endl; serr << " This file may be ignored by Par clients because absolute paths" << std::endl; serr << " are a way for an attacker to overwrite system files." << std::endl; } } if (par2_encoded_filename.find("../") != std::string::npos) { if (noiselevel >= nlQuiet) { serr << "WARNING: The filename \"" << par2_encoded_filename << "\" contains \"..\"." << std::endl; serr << " This is a parent directory. This file may be ignored" << std::endl; serr << " by Par clients because parent directories are a way" << std::endl; serr << " for an attacker to overwrite system files." << std::endl; } } if (par2_encoded_filename.length() > 255) { if (noiselevel >= nlNormal) { serr << "WARNING: A filename is over 255 characters. That may be too long" << std::endl; serr << " for Windows systems to handle." << std::endl; } } return par2_encoded_filename; } // Take a filename that matches the PAR2 standard ('/' slashes, etc.) // and convert it to a legal filename on the local system. // While at it, try to fix things: illegal characters, attempts // to write an absolute path, directories named "..", etc. // // This implementation changes any illegal char into the URL-style // encoding of %HH where H is a hex-digit. // // NOTE: Windows limits path names to 255 characters. I'm not // sure that anything can be done here for that. std::string DescriptionPacket::TranslateFilenameFromPar2ToLocal(std::ostream &sout, std::ostream &serr, const NoiseLevel noiselevel, std::string par2_encoded_filename) { std::string local_filename; std::string::iterator p = par2_encoded_filename.begin(); while (p != par2_encoded_filename.end()) { unsigned char ch = *p; bool ok = true; #ifdef _WIN32 if (ch < 32) { ok = false; } else { switch (ch) { case '"': case '*': case ':': case '<': case '>': case '?': case '|': ok = false; } } #else // other UNIXes allow anything. if (ch < 32) { ok = false; } #endif // replace unix / to windows \ or windows \ to unix / #ifdef _WIN32 if (ch == '/') { ch = '\\'; } #else if (ch == '\\') { if (noiselevel >= nlQuiet) { // This is a legal Par2 character, but assume someone screwed up. serr << "INFO: Found Windows-style slash in filename. Changing to UNIX-style slash." << std::endl; ch = '/'; } } #endif if (ok) { local_filename += ch; } else { if (noiselevel >= nlQuiet) { serr << "INFO: Found illegal character '" << ch << "' in filename. Changed it to \"" << UrlEncodeChar(ch) << "\"" << std::endl; // convert problem characters to hex local_filename += UrlEncodeChar(ch); } } ++p; } #ifdef _WIN32 // Par files should never contain an absolute path. On Windows, // These start "C:\...", etc. An attacker could put an absolute // path into a Par file and overwrite system files. For Windows // systems, we've already changed ':' to "%3A", so any absolute // path should have become relative. // Replace any references to ".." which could also be used by // an attacker. while (true) { size_t index = local_filename.find("..\\"); if (index == std::string::npos) break; if (noiselevel >= nlQuiet) { serr << "INFO: Found attempt to write parent directory. Changing \"..\" to \"" << UrlEncodeChar('.') << UrlEncodeChar('.') << "\"" << std::endl; } local_filename.replace(index, 2, UrlEncodeChar('.')+UrlEncodeChar('.')); } #else // On UNIX systems, we don't want to allow filename to start with a slash, // because someone could be sneakily trying to overwrite a system file. if (local_filename.at(0) == '/') { if (noiselevel >= nlQuiet) { serr << "INFO: Found attempt to write absolute path. Changing '/' at start of filename to \"" << UrlEncodeChar('/') << "\"" << std::endl; } local_filename.replace(0, 1, UrlEncodeChar('/')); } // Replace any references to ".." which could also be sneaking while (true) { size_t index = local_filename.find("../"); if (index == std::string::npos) break; if (noiselevel >= nlQuiet) { serr << "INFO: Found attempt to write parent directory. Changing \"..\" to \"" << UrlEncodeChar('.') << UrlEncodeChar('.') << "\"" << std::endl; } local_filename.replace(index, 2, UrlEncodeChar('.')+UrlEncodeChar('.')); } #endif return local_filename; } par2cmdline-turbo-1.5.0/src/descriptionpacket.h000066400000000000000000000076751524160147200215420ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef __DESCRIPTIONPACKET_H__ #define __DESCRIPTIONPACKET_H__ // The description packet records details about a file (including its name, // size, and the Hash of both the whole file and the first 16k of the file). class DescriptionPacket : public CriticalPacket { public: // Construct the packet DescriptionPacket(void) {}; ~DescriptionPacket(void) {}; public: // Construct the packet and store the filename and size. bool Create(std::string _filename, u64 _filesize); // Store the computed Hash values in the packet. void Hash16k(const MD5Hash &hash); void HashFull(const MD5Hash &hash); // Compute and return the file id hash from information in the packet void ComputeFileId(void); const MD5Hash& FileId(void) const; // Return the size of the file u64 FileSize(void) const; public: // Load a description packet from a specified file bool Load(DiskFile *diskfile, u64 offset, PACKET_HEADER &header); // Return the name of the file std::string FileName(void) const; // Get the Hash values from the packet const MD5Hash& HashFull(void) const; const MD5Hash& Hash16k(void) const; // Used to encode characters we do not want, such as "\t" or ":". // Function is public for easier testing. static std::string UrlEncodeChar(char c); // Converts filename from local disk to how it will be encoded // in the Par2 file, and back again. static std::string TranslateFilenameFromLocalToPar2(std::ostream &sout, std::ostream &serr, const NoiseLevel noiselevel, std::string local_filename); static std::string TranslateFilenameFromPar2ToLocal(std::ostream &sout, std::ostream &serr, const NoiseLevel noiselevel, std::string par2_encoded_filename); }; // Get the file id from the packet inline const MD5Hash& DescriptionPacket::FileId(void) const { assert(packetdata != 0); return ((const FILEDESCRIPTIONPACKET*)packetdata)->fileid; } // Get the size of the file from the packet inline u64 DescriptionPacket::FileSize(void) const { assert(packetdata != 0); return ((const FILEDESCRIPTIONPACKET*)packetdata)->length; } // Get the name of the file from the packet // NB whilst the file format does not guarantee that the name will have a NULL // termination character, par2cmdline always allocates a little extra data // and fills it with NULLs to allow the filename to be directly read out of // the packet. inline std::string DescriptionPacket::FileName(void) const { assert(packetdata != 0); // return (char*)((const FILEDESCRIPTIONPACKET*)packetdata)->name(); return (char*)((const FILEDESCRIPTIONPACKET*)packetdata)->name; } // Get the full file hash value from the packet inline const MD5Hash& DescriptionPacket::HashFull(void) const { assert(packetdata != 0); return ((const FILEDESCRIPTIONPACKET*)packetdata)->hashfull; } // The hash of the first 16k of the file from the packet inline const MD5Hash& DescriptionPacket::Hash16k(void) const { assert(packetdata != 0); return ((const FILEDESCRIPTIONPACKET*)packetdata)->hash16k; } #endif // __DESCRIPTIONPACKET_H__ par2cmdline-turbo-1.5.0/src/descriptionpacket_test.cpp000066400000000000000000000236071524160147200231250ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include #include #include "libpar2internal.h" // The file separator std::string fs(PATHSEP); int test1() { if (DescriptionPacket::UrlEncodeChar('\t') != "%09") { std::cout << "UrlEncodeChar tab" << std::endl; return 1; } if (DescriptionPacket::UrlEncodeChar(':') != "%3A") { std::cout << "UrlEncodeChar tab" << std::endl; return 1; } // not illegal, but tests range of function. if (DescriptionPacket::UrlEncodeChar('\xFF') != "%FF") { std::cout << "UrlEncodeChar tab" << std::endl; return 1; } return 0; } // test TranslateFilenameFromLocalToPar2 int test2() { // The input to this function is the filename from a Par2 file. // The output is a "safe" filename std::string par2filename; par2filename = DescriptionPacket::TranslateFilenameFromLocalToPar2(std::cout, std::cerr, nlNormal, "input1.txt"); if (par2filename != "input1.txt") { std::cout << "TranslateFilenameFromLocalToPar2 nothing" << std::endl; return 1; } par2filename = DescriptionPacket::TranslateFilenameFromLocalToPar2(std::cout, std::cerr, nlNormal, "dir" + fs + "input1.txt"); if (par2filename != "dir/input1.txt") { std::cout << "TranslateFilenameFromLocalToPar2 " << fs << std::endl; return 1; } // leading dash is ugly, but allowed par2filename = DescriptionPacket::TranslateFilenameFromLocalToPar2(std::cout, std::cerr, nlNormal, "-input1.txt"); if (par2filename != "-input1.txt") { std::cout << "TranslateFilenameFromLocalToPar2 nothing" << std::endl; return 1; } std::cout << "---------------------------------------------------------" << std::endl; std::cout << "The following calls to Translate should produce warnings:" << std::endl; std::cout << "---------------------------------------------------------" << std::endl; // tabs are a control character par2filename = DescriptionPacket::TranslateFilenameFromLocalToPar2(std::cout, std::cerr, nlNormal, "\tinput1.txt"); if (par2filename != "\tinput1.txt") { std::cout << "TranslateFilenameFromLocalToPar2 tab" << std::endl; return 1; } // colon causes problem on Windows and OSX/MacOS par2filename = DescriptionPacket::TranslateFilenameFromLocalToPar2(std::cout, std::cerr, nlNormal, ":input1.txt"); if (par2filename != ":input1.txt") { std::cout << "TranslateFilenameFromLocalToPar2 :" << std::endl; return 1; } // Astrix causes problems everywhere par2filename = DescriptionPacket::TranslateFilenameFromLocalToPar2(std::cout, std::cerr, nlNormal, "*input1.txt"); if (par2filename != "*input1.txt") { std::cout << "TranslateFilenameFromLocalToPar2 2" << std::endl; return 1; } // Astrix causes problems everywhere par2filename = DescriptionPacket::TranslateFilenameFromLocalToPar2(std::cout, std::cerr, nlNormal, "?input1.txt"); if (par2filename != "?input1.txt") { std::cout << "TranslateFilenameFromLocalToPar2 3" << std::endl; return 1; } #ifdef _WIN32 // UNIX backslash on Windows systems par2filename = DescriptionPacket::TranslateFilenameFromLocalToPar2(std::cout, std::cerr, nlNormal, "/input1.txt"); if (par2filename != "/input1.txt") { std::cout << "TranslateFilenameFromLocalToPar2 4" << std::endl; return 1; } #else // Windows backslash on UNIX systems par2filename = DescriptionPacket::TranslateFilenameFromLocalToPar2(std::cout, std::cerr, nlNormal, "\\input1.txt"); if (par2filename != "\\input1.txt") { std::cout << "TranslateFilenameFromLocalToPar2 5" << std::endl; return 1; } #endif // absolute path on Windows par2filename = DescriptionPacket::TranslateFilenameFromLocalToPar2(std::cout, std::cerr, nlNormal, "C:" + fs + "input1.txt"); if (par2filename != "C:/input1.txt") { std::cout << "TranslateFilenameFromLocalToPar2 2" << std::endl; return 1; } // absolute path on UNIX par2filename = DescriptionPacket::TranslateFilenameFromLocalToPar2(std::cout, std::cerr, nlNormal, fs + "input1.txt"); if (par2filename != "/input1.txt") { std::cout << "TranslateFilenameFromLocalToPar2 2" << std::endl; return 1; } // referencing parent directory par2filename = DescriptionPacket::TranslateFilenameFromLocalToPar2(std::cout, std::cerr, nlNormal, ".." + fs + "input1.txt"); if (par2filename != "../input1.txt") { std::cout << "TranslateFilenameFromLocalToPar2 2" << std::endl; return 1; } par2filename = DescriptionPacket::TranslateFilenameFromLocalToPar2(std::cout, std::cerr, nlNormal, "tricky" + fs + ".." + fs + ".." + fs + "input1.txt"); if (par2filename != "tricky/../../input1.txt") { std::cout << "TranslateFilenameFromLocalToPar2 2" << std::endl; return 1; } std::cout << "--------------------------------------" << std::endl; std::cout << "End of code meant to produce warnings." << std::endl; std::cout << "--------------------------------------" << std::endl; return 0; } // tests TranslateFilenameFromPar2ToLocal int test3() { std::string local_filename; std::string expected; local_filename = DescriptionPacket::TranslateFilenameFromPar2ToLocal(std::cout, std::cerr, nlNormal, "input1.txt"); if (local_filename != "input1.txt") { std::cout << "TranslateFilenameFromPar2ToLocal normal" << std::endl; return 1; } local_filename = DescriptionPacket::TranslateFilenameFromPar2ToLocal(std::cout, std::cerr, nlNormal, "dir/input1.txt"); if (local_filename != "dir" + fs + "input1.txt") { std::cout << "TranslateFilenameFromPar2ToLocal directory" << std::endl; return 1; } // no one likes control characters, like tab. local_filename = DescriptionPacket::TranslateFilenameFromPar2ToLocal(std::cout, std::cerr, nlNormal, "\t"); expected = DescriptionPacket::UrlEncodeChar('\t'); if (local_filename != expected) { std::cout << "TranslateFilenameFromPar2ToLocal tab" << std::endl; return 1; } #ifdef _WIN32 // Windows does not allow certain characters in filenames local_filename = DescriptionPacket::TranslateFilenameFromPar2ToLocal(std::cout, std::cerr, nlNormal, "\"*:<>?|%abcd"); expected = DescriptionPacket::UrlEncodeChar('\"') + DescriptionPacket::UrlEncodeChar('*') + DescriptionPacket::UrlEncodeChar(':') + DescriptionPacket::UrlEncodeChar('<') + DescriptionPacket::UrlEncodeChar('>') + DescriptionPacket::UrlEncodeChar('?') + DescriptionPacket::UrlEncodeChar('|') + "%abcd"; if (local_filename != expected) { std::cout << "TranslateFilenameFromPar2ToLocal windows" << std::endl; return 1; } #else // other UNIXes - no need to test. local_filename = DescriptionPacket::TranslateFilenameFromPar2ToLocal(std::cout, std::cerr, nlNormal, "\"*:<>?|%abcd"); expected = "\"*:<>?|%abcd"; if (local_filename != expected) { std::cout << "TranslateFilenameFromPar2ToLocal UNIX" << std::endl; return 1; } #endif #ifdef _WIN32 // Do not allow absolute paths on Windows local_filename = DescriptionPacket::TranslateFilenameFromPar2ToLocal(std::cout, std::cerr, nlNormal, "C:/system_file"); expected = "C" + DescriptionPacket::UrlEncodeChar(':') + "\\system_file"; if (local_filename != expected) { std::cout << "TranslateFilenameFromPar2ToLocal windows absolute" << std::endl; return 1; } #else // UNIXes and OSX/MacOS check for absolute paths local_filename = DescriptionPacket::TranslateFilenameFromPar2ToLocal(std::cout, std::cerr, nlNormal, "/system_file"); expected = DescriptionPacket::UrlEncodeChar('/') + "system_file"; if (local_filename != expected) { std::cout << "TranslateFilenameFromPar2ToLocal UNIX absolute" << std::endl; return 1; } #endif // prevent access through parents local_filename = DescriptionPacket::TranslateFilenameFromPar2ToLocal(std::cout, std::cerr, nlNormal, "../system_file"); expected = DescriptionPacket::UrlEncodeChar('.') + DescriptionPacket::UrlEncodeChar('.') + fs + "system_file"; if (local_filename != expected) { std::cout << "TranslateFilenameFromPar2ToLocal parent" << std::endl; std::cout << " returned = " << local_filename << std::endl; std::cout << " expected = " << expected << std::endl; return 1; } local_filename = DescriptionPacket::TranslateFilenameFromPar2ToLocal(std::cout, std::cerr, nlNormal, "tricky/../../system_file"); expected = "tricky" + fs + DescriptionPacket::UrlEncodeChar('.') + DescriptionPacket::UrlEncodeChar('.') + fs + DescriptionPacket::UrlEncodeChar('.') + DescriptionPacket::UrlEncodeChar('.') + fs + "system_file"; if (local_filename != expected) { std::cout << "TranslateFilenameFromPar2ToLocal parent" << std::endl; std::cout << " returned = " << local_filename << std::endl; std::cout << " expected = " << expected << std::endl; return 1; } return 0; } int main() { if (test1()) { std::cerr << "FAILED: test1" << std::endl; return 1; } if (test2()) { std::cerr << "FAILED: test2" << std::endl; return 1; } if (test3()) { std::cerr << "FAILED: test3" << std::endl; return 1; } std::cout << "SUCCESS: descriptionpacket_test complete." << std::endl; return 0; } par2cmdline-turbo-1.5.0/src/diskfile.cpp000066400000000000000000000717531524160147200201520ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "libpar2internal.h" #ifdef _MSC_VER #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif #endif #if defined(__FreeBSD_kernel__) #include #define BLKGETSIZE64 DIOCGMEDIASIZE #endif #if !defined(_WIN32) && !defined(O_NOFOLLOW) #define O_NOFOLLOW 0 #endif #ifdef _WIN32 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// #include "utf8.h" #include #define OffsetType __int64 #define MaxOffset 0x7fffffffffffffffI64 DiskFile::DiskFile(std::ostream &sout, std::ostream &serr, std::mutex &serr_lock) : sout(&sout) , serr(&serr) , serr_lock(&serr_lock) { filename = ""; filesize = 0; offset = 0; hFile = INVALID_HANDLE_VALUE; exists = false; } DiskFile::~DiskFile(void) { if (hFile != INVALID_HANDLE_VALUE) ::CloseHandle(hFile); } bool DiskFile::CreateParentDirectory(std::string _pathname) { // do we have a path separator in the filename ? std::string::size_type where; if (std::string::npos != (where = _pathname.find_last_of(PATHSEP)) || std::string::npos != (where = _pathname.find_last_of(ALTPATHSEP))) { std::string path = _pathname.substr(0, where); // Handle Windows root path (e.g., "C:" or empty path from "\file") // If path is empty or is a drive letter (e.g., "C:"), the root already exists if (path.empty() || (path.length() == 2 && path[1] == ':')) { return true; } std::wstring wpath = utf8::Utf8ToWide(path); struct _stati64 st; if (_wstati64(wpath.c_str(), &st) == 0) return true; // let the caller deal with non-directories if (!DiskFile::CreateParentDirectory(path)) return false; if (!CreateDirectoryW(wpath.c_str(), NULL)) { DWORD error = ::GetLastError(); std::lock_guard lock(*serr_lock); *serr << "Could not create the " << path << " directory: " << ErrorMessage(error) << std::endl; return false; } } return true; } // Create new file on disk and make sure that there is enough // space on disk for it. bool DiskFile::Create(std::string _filename, u64 _filesize) { assert(hFile == INVALID_HANDLE_VALUE); filename = _filename; filesize = _filesize; if (!DiskFile::CreateParentDirectory(filename)) return false; // Create the file std::wstring wfilename = utf8::Utf8ToWide(_filename); hFile = ::CreateFileW(wfilename.c_str(), GENERIC_READ | GENERIC_WRITE, 0, NULL, CREATE_NEW, 0, NULL); if (hFile == INVALID_HANDLE_VALUE) { DWORD error = ::GetLastError(); std::lock_guard lock(*serr_lock); *serr << "Could not create \"" << _filename << "\": " << ErrorMessage(error) << std::endl; return false; } if (filesize > 0) { // Seek to the end of the file LONG* ptrfilesize = (LONG*)&filesize; LONG lowoffset = ptrfilesize[0]; LONG highoffset = ptrfilesize[1]; if (INVALID_SET_FILE_POINTER == SetFilePointer(hFile, lowoffset, &highoffset, FILE_BEGIN)) { DWORD error = ::GetLastError(); { std::lock_guard lock(*serr_lock); *serr << "Could not set size of \"" << _filename << "\": " << ErrorMessage(error) << std::endl; } ::CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; ::DeleteFileW(wfilename.c_str()); return false; } // Set the end of the file if (!::SetEndOfFile(hFile)) { DWORD error = ::GetLastError(); { std::lock_guard lock(*serr_lock); *serr << "Could not set size of \"" << _filename << "\": " << ErrorMessage(error) << std::endl; } ::CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; ::DeleteFileW(wfilename.c_str()); return false; } } offset = filesize; exists = true; return true; } // Write some data to disk bool DiskFile::Write(u64 _offset, const void *buffer, size_t length, LengthType maxlength) { assert(hFile != INVALID_HANDLE_VALUE); if (offset != _offset) { LONG* ptroffset = (LONG*)&_offset; LONG lowoffset = ptroffset[0]; LONG highoffset = ptroffset[1]; // Seek to the required offset if (INVALID_SET_FILE_POINTER == SetFilePointer(hFile, lowoffset, &highoffset, FILE_BEGIN)) { DWORD error = ::GetLastError(); std::lock_guard lock(*serr_lock); *serr << "Could not write " << (u64)length << " bytes to \"" << filename << "\" at offset " << _offset << ": " << ErrorMessage(error) << std::endl; return false; } offset = _offset; } while (length > 0) { DWORD write; if (length > maxlength) write = maxlength; else write = (LengthType) length; DWORD wrote = 0; // Write the data if (!::WriteFile(hFile, buffer, write, &wrote, NULL)) { DWORD error = ::GetLastError(); std::lock_guard lock(*serr_lock); *serr << "Could not write " << write << " bytes to \"" << filename << "\" at offset " << _offset << ": " << ErrorMessage(error) << std::endl; return false; } if (wrote != write) { std::lock_guard lock(*serr_lock); *serr << "INFO: Incomplete write to \"" << filename << "\" at offset " << _offset << ". Expected to write " << write << " bytes and wrote " << wrote << " bytes." << std::endl; } offset += wrote; length -= wrote; buffer = ((char *) buffer) + wrote; if (filesize < offset) { filesize = offset; } } return true; } // Open the file bool DiskFile::Open(const std::string &_filename, u64 _filesize) { assert(hFile == INVALID_HANDLE_VALUE); filename = _filename; filesize = _filesize; std::wstring wfilename = utf8::Utf8ToWide(_filename); hFile = ::CreateFileW(wfilename.c_str(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); if (hFile == INVALID_HANDLE_VALUE) { DWORD error = ::GetLastError(); switch (error) { case ERROR_FILE_NOT_FOUND: case ERROR_PATH_NOT_FOUND: break; default: std::lock_guard lock(*serr_lock); *serr << "Could not open \"" << _filename << "\": " << ErrorMessage(error) << std::endl; } return false; } offset = 0; exists = true; return true; } // Read some data from disk bool DiskFile::Read(u64 _offset, void *buffer, size_t length, LengthType maxlength) { assert(hFile != INVALID_HANDLE_VALUE); if (offset != _offset) { LONG* ptroffset = (LONG*)&_offset; LONG lowoffset = ptroffset[0]; LONG highoffset = ptroffset[1]; // Seek to the required offset if (INVALID_SET_FILE_POINTER == SetFilePointer(hFile, lowoffset, &highoffset, FILE_BEGIN)) { DWORD error = ::GetLastError(); std::lock_guard lock(*serr_lock); *serr << "Could not read " << (u64)length << " bytes from \"" << filename << "\" at offset " << _offset << ": " << ErrorMessage(error) << std::endl; return false; } offset = _offset; } while (length > 0) { DWORD want; if (length > maxlength) want = maxlength; else want = (LengthType)length; DWORD got = 0; // Read the data if (!::ReadFile(hFile, buffer, want, &got, NULL)) { DWORD error = ::GetLastError(); std::lock_guard lock(*serr_lock); *serr << "Could not read " << (u64)length << " bytes from \"" << filename << "\" at offset " << _offset << ": " << ErrorMessage(error) << std::endl; return false; } if (want != got) { std::lock_guard lock(*serr_lock); *serr << "Incomplete read from \"" << filename << "\" at offset " << offset << ". Tried to read " << want << " bytes and received " << got << " bytes." << std::endl; } offset += got; length -= got; buffer = ((char *) buffer) + got; // write updates filesize. Do we want to do that here? } return true; } void DiskFile::Close(void) { if (hFile != INVALID_HANDLE_VALUE) { ::CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; } } std::string DiskFile::GetCanonicalPathname(std::string filename) { std::wstring wfilename = utf8::Utf8ToWide(filename); // First call to get required buffer size DWORD length = GetFullPathNameW(wfilename.c_str(), 0, nullptr, nullptr); if (length == 0) { return filename; } // Allocate buffer with required size auto wfullname = std::make_unique(length); // Second call to get the actual path length = GetFullPathNameW(wfilename.c_str(), length, wfullname.get(), nullptr); if (length == 0) { return filename; } wfullname[0] = towupper(wfullname[0]); std::replace(wfullname.get(), wfullname.get() + length, L'/', L'\\'); return utf8::WideToUtf8(wfullname.get()); } std::unique_ptr< std::list > DiskFile::FindFiles(std::string path, std::string wildcard, bool recursive) { // check path, if not ending with path separator, add one char pathend = *path.rbegin(); if (pathend != PATHSEP[0]) { path += PATHSEP; } std::list *matches = new std::list; std::wstring wwildcard = utf8::Utf8ToWide(path + wildcard); WIN32_FIND_DATAW fd; HANDLE h = ::FindFirstFileW(wwildcard.c_str(), &fd); if (h != INVALID_HANDLE_VALUE) { do { if (0 == (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) { matches->push_back(path + utf8::WideToUtf8(fd.cFileName)); } else if (recursive == true) { if (fd.cFileName[0] == '.') { continue; } std::string nwwildcard="*"; std::unique_ptr< std::list > dirmatches( DiskFile::FindFiles(path + utf8::WideToUtf8(fd.cFileName), nwwildcard, true) ); // append without requiring ordering matches->splice(matches->end(), *dirmatches); } } while (::FindNextFileW(h, &fd)); ::FindClose(h); } return std::unique_ptr< std::list >(matches); } u64 DiskFile::GetFileSize(std::string filename) { std::wstring wfilename = utf8::Utf8ToWide(filename); struct _stati64 st; if ((0 == _wstati64(wfilename.c_str(), &st)) && (0 != (st.st_mode & S_IFREG))) { return st.st_size; } else { return 0; } } bool DiskFile::FileExists(std::string filename) { std::wstring wfilename = utf8::Utf8ToWide(filename); struct _stati64 st; return ((0 == _wstati64(wfilename.c_str(), &st)) && (0 != (st.st_mode & _S_IFREG))); } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// #else // !_WIN32 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// #ifdef HAVE_FSEEKO # define OffsetType off_t # define MaxOffset ((off_t)0x7fffffffffffffffULL) # define fseek fseeko #else # if _FILE_OFFSET_BITS == 64 # define OffsetType unsigned long long # define MaxOffset 0x7fffffffffffffffULL # else # define OffsetType long # define MaxOffset 0x7fffffffUL # endif #endif DiskFile::DiskFile(std::ostream &sout, std::ostream &serr, std::mutex &serr_lock) : sout(&sout) , serr(&serr) , serr_lock(&serr_lock) { //filename; filesize = 0; offset = 0; file = 0; exists = false; } DiskFile::~DiskFile(void) { if (file != 0) fclose(file); } bool DiskFile::CreateParentDirectory(std::string _pathname) { // do we have a path separator in the filename ? std::string::size_type where; if (std::string::npos != (where = _pathname.find_last_of(PATHSEP)) || std::string::npos != (where = _pathname.find_last_of(ALTPATHSEP))) { std::string path = _pathname.substr(0, where); // Handle root path - if path is empty, the root already exists if (path.empty()) { return true; } struct stat st; if (stat(path.c_str(), &st) == 0) return true; // let the caller deal with non-directories if (!DiskFile::CreateParentDirectory(path)) return false; if (mkdir(path.c_str(), S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)) { std::lock_guard lock(*serr_lock); *serr << "Could not create the " << path << " directory: " << strerror(errno) << std::endl; return false; } } return true; } // Create new file on disk and make sure that there is enough // space on disk for it. bool DiskFile::Create(std::string _filename, u64 _filesize) { assert(file == 0); filename = _filename; filesize = _filesize; if (!DiskFile::CreateParentDirectory(filename)) return false; if (_filesize > (u64)MaxOffset) { std::lock_guard lock(*serr_lock); *serr << "Requested file size for " << _filename << " is too large." << std::endl; return false; } int fd = open(_filename.c_str(), O_WRONLY | O_CREAT | O_EXCL | O_NOFOLLOW, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); if (fd < 0) { std::lock_guard lock(*serr_lock); *serr << "Could not create " << _filename << ": " << strerror(errno) << std::endl; return false; } file = fdopen(fd, "wb"); if (file == 0) { int savederrno = errno; close(fd); ::remove(filename.c_str()); errno = savederrno; std::lock_guard lock(*serr_lock); *serr << "Could not create " << _filename << ": " << strerror(errno) << std::endl; return false; } if (_filesize > 0) { if (fseek(file, (OffsetType)_filesize-1, SEEK_SET)) { { std::lock_guard lock(*serr_lock); *serr << "Could not set end of file of " << _filename << ": " << strerror(errno) << std::endl; } fclose(file); file = 0; ::remove(filename.c_str()); return false; } if (1 != fwrite(&_filesize, 1, 1, file)) { { std::lock_guard lock(*serr_lock); *serr << "Could not set end of file of " << _filename << ": " << strerror(errno) << std::endl; } fclose(file); file = 0; ::remove(filename.c_str()); return false; } } offset = filesize; exists = true; return true; } // Write some data to disk bool DiskFile::Write(u64 _offset, const void *buffer, size_t length, LengthType maxlength) { assert(file != 0); if (offset != _offset) { if (_offset > (u64)MaxOffset) { std::lock_guard lock(*serr_lock); *serr << "Could not write " << (u64)length << " bytes to " << filename << " at offset " << _offset << std::endl; return false; } if (fseek(file, (OffsetType)_offset, SEEK_SET)) { std::lock_guard lock(*serr_lock); *serr << "Could not write " << (u64)length << " bytes to " << filename << " at offset " << _offset << ": " << strerror(errno) << std::endl; return false; } offset = _offset; } while (length > 0) { LengthType write; if (length > maxlength) write = maxlength; else write = length; LengthType wrote = fwrite(buffer, 1, write, file); if (wrote != write) { std::lock_guard lock(*serr_lock); *serr << "Could not write " << (u64)length << " bytes to " << filename << " at offset " << _offset << ": " << strerror(errno) << std::endl; return false; } offset += wrote; length -= wrote; buffer = ((char *) buffer) + wrote; if (filesize < offset) { filesize = offset; } } return true; } // Open the file bool DiskFile::Open(const std::string &_filename, u64 _filesize) { assert(file == 0); filename = _filename; filesize = _filesize; if (_filesize > (u64)MaxOffset) { std::lock_guard lock(*serr_lock); *serr << "File size for " << _filename << " is too large." << std::endl; return false; } file = fopen(filename.c_str(), "rb"); if (file == 0) { return false; } offset = 0; exists = true; return true; } // Read some data from disk bool DiskFile::Read(u64 _offset, void *buffer, size_t length, LengthType maxlength) { assert(file != 0); if (offset != _offset) { if (_offset > (u64)MaxOffset) { std::lock_guard lock(*serr_lock); *serr << "Could not read " << (u64)length << " bytes from " << filename << " at offset " << _offset << std::endl; return false; } if (fseek(file, (OffsetType)_offset, SEEK_SET)) { std::lock_guard lock(*serr_lock); *serr << "Could not read " << (u64)length << " bytes from " << filename << " at offset " << _offset << ": " << strerror(errno) << std::endl; return false; } offset = _offset; } while (length > 0) { LengthType want; if (length > maxlength) want = maxlength; else want = length; LengthType got = fread(buffer, 1, want, file); if (got != want) { // NOTE: This can happen on error or when hitting the end-of-file. std::lock_guard lock(*serr_lock); *serr << "Could not read " << (u64)length << " bytes from " << filename << " at offset " << _offset << ": " << strerror(errno) << std::endl; return false; } offset += got; length -= got; buffer = ((char *) buffer) + got; // Write() updates filesize. Should we do that here too? } return true; } void DiskFile::Close(void) { if (file != 0) { fclose(file); file = 0; } } // Attempt to get the full pathname of the file std::string DiskFile::GetCanonicalPathname(std::string filename) { // Is the supplied path already an absolute one if (filename.size() == 0 || filename[0] == '/') return filename; // Get the current directory #ifdef PATH_MAX char curdir[PATH_MAX]; if (0 == getcwd(curdir, sizeof(curdir))) #else // Avoid unconditional use of PATH_MAX (not defined on hurd) char *curdir = get_current_dir_name(); if (curdir == NULL) #endif { return filename; } // Allocate a work buffer and copy the resulting full path into it. char *work = new char[strlen(curdir) + filename.size() + 2]; strcpy(work, curdir); #ifndef PATH_MAX free(curdir); #endif if (work[strlen(work)-1] != '/') strcat(work, "/"); strcat(work, filename.c_str()); char *in = work; char *out = work; while (*in) { if (*in == '/') { if (in[1] == '.' && in[2] == '/') { // skip the input past /./ in += 2; } else if (in[1] == '.' && in[2] == '.' && in[3] == '/') { // backtrack the output if /../ was found on the input in += 3; if (out > work) { do { out--; } while (out > work && *out != '/'); } } else { *out++ = *in++; } } else { *out++ = *in++; } } *out = 0; std::string result = work; delete [] work; return result; } std::unique_ptr< std::list > DiskFile::FindFiles(std::string path, std::string wildcard, bool recursive) { // check path, if not ending with path separator, add one char pathend = *path.rbegin(); if (pathend != '/') { path += '/'; } std::list *matches = new std::list; std::string::size_type where; if ((where = wildcard.find_first_of('*')) != std::string::npos || (where = wildcard.find_first_of('?')) != std::string::npos) { std::string front = wildcard.substr(0, where); bool multiple = wildcard[where] == '*'; std::string back = wildcard.substr(where+1); DIR *dirp = opendir(path.c_str()); if (dirp != 0) { struct dirent *d; while ((d = readdir(dirp)) != 0) { std::string name = d->d_name; if (name == "." || name == "..") continue; if (multiple) { if (name.size() >= wildcard.size() && name.substr(0, where) == front && name.substr(name.size()-back.size()) == back) { struct stat st; std::string fn = path + name; if (lstat(fn.c_str(), &st) == 0) { if (S_ISDIR(st.st_mode) && recursive == true) { std::string nwwildcard="*"; std::unique_ptr< std::list > dirmatches( DiskFile::FindFiles(fn, nwwildcard, true) ); matches->splice(matches->end(), *dirmatches); } else if (S_ISREG(st.st_mode)) { matches->push_back(path + name); } } } } else { if (name.size() == wildcard.size()) { std::string::const_iterator pw = wildcard.begin(); std::string::const_iterator pn = name.begin(); while (pw != wildcard.end()) { if (*pw != '?' && *pw != *pn) break; ++pw; ++pn; } if (pw == wildcard.end()) { struct stat st; std::string fn = path + name; if (lstat(fn.c_str(), &st) == 0) { if (S_ISDIR(st.st_mode) && recursive == true) { std::string nwwildcard="*"; std::unique_ptr< std::list > dirmatches( DiskFile::FindFiles(fn, nwwildcard, true) ); matches->splice(matches->end(), *dirmatches); } else if (S_ISREG(st.st_mode)) { matches->push_back(path + name); } } } } } } closedir(dirp); } } else { struct stat st; std::string fn = path + wildcard; if (lstat(fn.c_str(), &st) == 0) { if (S_ISDIR(st.st_mode) && recursive == true) { std::string nwwildcard="*"; std::unique_ptr< std::list > dirmatches( DiskFile::FindFiles(fn, nwwildcard, true) ); matches->splice(matches->end(), *dirmatches); } else if (S_ISREG(st.st_mode)) { matches->push_back(path + wildcard); } } } return std::unique_ptr< std::list >(matches); } u64 DiskFile::GetFileSize(std::string filename) { struct stat st; if ((0 == stat(filename.c_str(), &st)) && (0 != (st.st_mode & S_IFREG))) { return st.st_size; } else { return 0; } } bool DiskFile::FileExists(std::string filename) { struct stat st; return ((0 == stat(filename.c_str(), &st)) && (0 != (st.st_mode & S_IFREG))); } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// #endif bool DiskFile::Open(void) { std::string _filename = filename; return Open(_filename); } bool DiskFile::Open(const std::string &_filename) { return Open(_filename, GetFileSize(_filename)); } // Delete the file bool DiskFile::Delete(void) { #ifdef _WIN32 assert(hFile == INVALID_HANDLE_VALUE); std::wstring wfilename = utf8::Utf8ToWide(filename); if (filename.size() > 0 && ::DeleteFileW(wfilename.c_str())) { exists = false; return true; } #else assert(file == 0); if (filename.size() > 0 && 0 == unlink(filename.c_str())) { exists = false; return true; } #endif else { std::lock_guard lock(*serr_lock); *serr << "Cannot delete " << filename << std::endl; return false; } } //std::string DiskFile::GetPathFromFilename(std::string filename) //{ // std::string::size_type where; // // if (std::string::npos != (where = filename.find_last_of('/')) || // std::string::npos != (where = filename.find_last_of('\\'))) // { // return filename.substr(0, where+1); // } // else // { // return "." PATHSEP; // } //} void DiskFile::SplitFilename(std::string filename, std::string &path, std::string &name) { std::string::size_type where; if (std::string::npos != (where = filename.find_last_of(PATHSEP)) || std::string::npos != (where = filename.find_last_of(ALTPATHSEP))) { path = filename.substr(0, where+1); name = filename.substr(where+1); } else { path = "." PATHSEP; name = filename; } } void DiskFile::SplitRelativeFilename(std::string filename, std::string basepath, std::string &name) { name = filename; name.erase(0, basepath.length()); } #ifdef _WIN32 bool DiskFile::Rename(void) { u32 index = 0; std::string newname; std::wstring wnewname; struct _stati64 st; do { // Build the new filename with index suffix newname = filename + "." + std::to_string(++index); // Check path length against maximum if (newname.length() > _MAX_PATH) { std::lock_guard lock(*serr_lock); *serr << filename << " pathlength is more than " << _MAX_PATH << "." << std::endl; return false; } wnewname = utf8::Utf8ToWide(newname); // Check if file exists using wide-character stat } while (_wstati64(wnewname.c_str(), &st) == 0); return Rename(newname); } #else bool DiskFile::Rename(void) { u32 index = 0; std::string newname; struct stat st; do { // Build the new filename with index suffix newname = filename + "." + std::to_string(++index); // Check path length against maximum if (newname.length() > _MAX_PATH) { std::lock_guard lock(*serr_lock); *serr << filename << " pathlength is more than " << _MAX_PATH << "." << std::endl; return false; } } while (stat(newname.c_str(), &st) == 0); return Rename(newname); } #endif #ifdef _WIN32 std::string DiskFile::ErrorMessage(DWORD error) { std::string result; LPVOID lpMsgBuf; if (::FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, error, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPWSTR)&lpMsgBuf, 0, NULL)) { result = utf8::WideToUtf8((wchar_t*)lpMsgBuf); LocalFree(lpMsgBuf); } else { char message[40]; snprintf(message, sizeof(message), "Unknown error code (%lu)", error); result = message; } return result; } bool DiskFile::Rename(std::string _filename) { assert(hFile == INVALID_HANDLE_VALUE); std::wstring wfilename = utf8::Utf8ToWide(filename); std::wstring _wfilename = utf8::Utf8ToWide(_filename); if (::MoveFileW(wfilename.c_str(), _wfilename.c_str())) { filename.swap(_filename); return true; } std::lock_guard lock(*serr_lock); *serr << filename << " cannot be renamed to " << _filename << std::endl; return false; } #else bool DiskFile::Rename(std::string _filename) { assert(file == 0); if (::rename(filename.c_str(), _filename.c_str()) == 0) { filename.swap(_filename); return true; } std::lock_guard lock(*serr_lock); *serr << filename << " cannot be renamed to " << _filename << std::endl; return false; } #endif DiskFileMap::DiskFileMap(void) { } DiskFileMap::~DiskFileMap(void) { std::map::iterator fi = diskfilemap.begin(); while (fi != diskfilemap.end()) { delete (*fi).second; ++fi; } } bool DiskFileMap::Insert(DiskFile *diskfile) { std::string filename = diskfile->FileName(); assert(filename.length() != 0); std::pair::const_iterator,bool> location = diskfilemap.insert(std::pair(filename, diskfile)); return location.second; } void DiskFileMap::Remove(DiskFile *diskfile) { std::string filename = diskfile->FileName(); assert(filename.length() != 0); diskfilemap.erase(filename); } DiskFile* DiskFileMap::Find(std::string filename) const { assert(filename.length() != 0); std::map::const_iterator f = diskfilemap.find(filename); return (f != diskfilemap.end()) ? f->second : 0; } FileSizeCache::FileSizeCache() { } u64 FileSizeCache::get(const std::string &filename) { std::map::const_iterator f = cache.find(filename); if (f != cache.end()) return f->second; // go to disk u64 filesize = DiskFile::GetFileSize(filename); cache.insert(std::pair(filename, filesize)); // std::pair::const_iterator,bool> location = cache.insert(std::pair(filename, filesize)); // if (!location.second) { // throw exception? // } return filesize; } par2cmdline-turbo-1.5.0/src/diskfile.h000066400000000000000000000117631524160147200176120ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef __DISKFILE_H__ #define __DISKFILE_H__ // MAX_LENGTH is the maximum read/write size. It can be OS-dependant. // The "& ~7" is to make it 8-byte aligned. // LengthType is the type required for the read/write by the OS. #ifdef _WIN32 #define MAX_LENGTH (0xffffffffUL & ~7) #define LengthType DWORD #else // !_WIN32 #define MAX_LENGTH (0xffffffffUL & ~7) #define LengthType size_t #endif #include #include #include #include #include // A disk file can be any type of file that par2cmdline needs // to read or write data from or to. class DiskFile { public: DiskFile(std::ostream &sout, std::ostream &serr, std::mutex &serr_lock); ~DiskFile(void); // Ensures the specified path's parent directory exists bool CreateParentDirectory(std::string pathname); // Create a file and set its length bool Create(std::string filename, u64 filesize); // Write some data to the file // maxlength should be the default value, except during testing. bool Write(u64 offset, const void *buffer, size_t length, LengthType maxlength = MAX_LENGTH); // Open the file bool Open(void); bool Open(const std::string &filename); bool Open(const std::string &filename, u64 filesize); // Check to see if the file is open #ifdef _WIN32 bool IsOpen(void) const {return hFile != INVALID_HANDLE_VALUE;} #else bool IsOpen(void) const {return file != 0;} #endif // Read some data from the file // maxlength should be the default value, except during testing. bool Read(u64 offset, void *buffer, size_t length, LengthType maxlength = MAX_LENGTH); // Close the file void Close(void); // Get the size of the file u64 FileSize(void) const {return filesize;} // Get the name of the file std::string FileName(void) const {return filename;} // Does the file exist bool Exists(void) const {return exists;} // Rename the file bool Rename(void); // Pick a filename automatically bool Rename(std::string filename); // Delete the file bool Delete(void); public: static std::string GetCanonicalPathname(std::string filename); static void SplitFilename(std::string filename, std::string &path, std::string &name); static void SplitRelativeFilename(std::string filename, std::string basepath, std::string &name); static std::string SplitRelativeFilename(const std::string& filename, const std::string& basepath) { std::string ret; SplitRelativeFilename(filename, basepath, ret); return ret; } static bool FileExists(std::string filename); static u64 GetFileSize(std::string filename); // Search the specified path for files which match the specified wildcard // and return their names in a list. static std::unique_ptr< std::list > FindFiles(std::string path, std::string wildcard, bool recursive); protected: // NOTE: These are pointers so that the operator= works correctly. // The references used elsewhere cannot be reassigned. // (Operator= is needed when vectors are resized.) std::ostream *sout; // stream for output (for commandline, this is cout) std::ostream *serr; // stream for errors (for commandline, this is cerr) std::mutex *serr_lock; std::string filename; u64 filesize; // OS file handle #ifdef _WIN32 HANDLE hFile; #else FILE *file; #endif // Current offset within the file u64 offset; // Does the file exist bool exists; protected: #ifdef _WIN32 static std::string ErrorMessage(DWORD error); #endif }; // This class keeps track of which DiskFile objects exist // and which file on disk they are associated with. // It is used to avoid a file being processed twice. class DiskFileMap { public: DiskFileMap(void); ~DiskFileMap(void); bool Insert(DiskFile *diskfile); void Remove(DiskFile *diskfile); DiskFile* Find(std::string filename) const; protected: std::map diskfilemap; // Map from filename to DiskFile }; class FileSizeCache { public: FileSizeCache(); u64 get(const std::string &filename); protected: std::map cache; }; #endif // __DISKFILE_H__ par2cmdline-turbo-1.5.0/src/diskfile_test.cpp000066400000000000000000000546531524160147200212110ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include #include #include #include "libpar2internal.h" // The file separator std::string fs(PATHSEP); // test static functions int test1() { // create test file using C++ functions std::ofstream input1; input1.open("input1.txt", std::ofstream::out | std::ofstream::binary); const char *input1_contents = "diskfile_test test1 input1.txt"; input1 << input1_contents; input1.close(); std::ofstream input2; input2.open("input2.txt", std::ofstream::out | std::ofstream::binary); const char *input2_contents = "diskfile_test test1 input2.txt"; input2 << input2_contents; input2.close(); if (DiskFile::FileExists("definitely_not_here")) { std::cout << "said file exists when it doesn't" << std::endl; return 1; } if (!DiskFile::FileExists("input1.txt")) { std::cout << "said file doesn't exists when it does" << std::endl; return 1; } if (DiskFile::GetFileSize("input1.txt") != strlen(input1_contents)) { std::cout << "GetFileSize returned wrong value" << std::endl; return 1; } std::unique_ptr< std::list > files = DiskFile::FindFiles(".", "input1.txt", false); if (files->size() != 1 || *(files->begin()) != "." + fs + "input1.txt") { std::cout << "FindFiles failed on exact name" << std::endl; std::cout << " size=" << files->size() << std::endl; for (std::list::iterator fn = files->begin(); fn != files->end(); fn++) { std::cout << " " << *fn << std::endl; } return 1; } files = DiskFile::FindFiles(".", "input?.txt", false); if (files->size() != 2 || find(files->begin(), files->end(), std::string("." + fs + "input1.txt")) == files->end() || find(files->begin(), files->end(), std::string("." + fs + "input2.txt")) == files->end()) { std::cout << "FindFiles failed on ?" << std::endl; return 1; } files = DiskFile::FindFiles(".", "input1?.txt", false); #ifdef _WIN32 if (files->size() != 1 || *(files->begin()) != "." + fs + "input1.txt") { std::cout << "FindFiles failed on empty ?" << std::endl; return 1; } #else if (!files->empty()) { std::cout << "FindFiles failed on empty ?" << std::endl; return 1; } #endif files = DiskFile::FindFiles(".", "input*.txt", false); if (files->size() != 2 || find(files->begin(), files->end(), std::string("." + fs + "input1.txt")) == files->end() || find(files->begin(), files->end(), std::string("." + fs + "input2.txt")) == files->end()) { std::cout << "FindFiles failed on *" << std::endl; return 1; } files = DiskFile::FindFiles(".", "input1*.txt", false); if (files->size() != 1 || *(files->begin()) != "." + fs + "input1.txt") { std::cout << "FindFiles failed on empty *" << std::endl; //TODO: Fix bug and uncomment this // return 1; } files = DiskFile::FindFiles(".", "i*p*t*.txt", false); if (files->size() != 2 || find(files->begin(), files->end(), std::string("." + fs + "input1.txt")) == files->end() || find(files->begin(), files->end(), std::string("." + fs + "input2.txt")) == files->end()) { std::cout << "FindFiles failed on multiple *" << std::endl; //TODO: Fix bug and uncomment this // return 1; } { // scope to hide variable names std::string path, name; DiskFile::SplitFilename("input1.txt", path, name); if (path != "." + fs || name != "input1.txt") { std::cout << "CanonicalPathname + SplitFilename failed on input1.txt" << std::endl; return 1; } // NB: Keeping value of path, name to see if overwritten DiskFile::SplitFilename("." + fs + "input1.txt", path, name); if (path != "." + fs || name != "input1.txt") { std::cout << "CanonicalPathname + SplitFilename failed on input1.txt" << std::endl; return 1; } DiskFile::SplitFilename("dir" + fs + "input1.txt", path, name); if (path != "dir" + fs || name != "input1.txt") { std::cout << "CanonicalPathname + SplitFilename failed on input1.txt" << std::endl; return 1; } DiskFile::SplitFilename("multiple" + fs + "dirs" + fs + "input1.txt", path, name); if (path != "multiple" + fs + "dirs" + fs || name != "input1.txt") { std::cout << "CanonicalPathname + SplitFilename failed on input1.txt" << std::endl; return 1; } DiskFile::SplitFilename(fs + "root_dir" + fs + "input1.txt", path, name); if (path != fs + "root_dir" + fs || name != "input1.txt") { std::cout << "CanonicalPathname + SplitFilename failed on input1.txt" << std::endl; return 1; } } { std::string name; DiskFile::SplitRelativeFilename("root" + fs + "dir" + fs + "input1.txt", "root" + fs + "dir" + fs, name); if (name != "input1.txt") { std::cout << "SplitRelativeFilename failed for full path" << std::endl; return 1; } // intentionally reusing name to see if it is overwritten DiskFile::SplitRelativeFilename("root" + fs + "dir" + fs + "input1.txt", "root" + fs, name); if (name != "dir" + fs + "input1.txt") { std::cout << "SplitRelativeFilename failed for partial path" << std::endl; return 1; } } { // scope to hide variable names std::string path_and_name1 = DiskFile::GetCanonicalPathname("input1.txt"); std::string path1, name1; DiskFile::SplitFilename(path_and_name1, path1, name1); if (path_and_name1 != path1 + name1 #ifdef _WIN32 || path1.at(1) != ':' || path1.at(2) != fs.at(0) #else || path1.at(0) != fs.at(0) #endif || name1 != "input1.txt") { std::cout << "CanonicalPathname + SplitFilename failed on input1.txt" << std::endl; return 1; } std::string path_and_name2 = DiskFile::GetCanonicalPathname("input2.txt"); std::string path2, name2; DiskFile::SplitFilename(path_and_name2, path2, name2); if (path_and_name2 != path2 + name2 || path2 != path1 || name2 != "input2.txt") { std::cout << "CanonicalPathname + SplitFilename failed on input2.txt" << std::endl; return 1; } // check that ././input1.txt is the same as input1.txt std::string path_and_name3 = DiskFile::GetCanonicalPathname("." + fs + "." + fs + "input1.txt"); if (path_and_name3 != path_and_name1) { std::cout << "CanonicalPathname + SplitFilename failed on ././input.txt" << std::endl; return 1; } } // delete test files using C++ function remove("input1.txt"); remove("input2.txt"); return 0; } // test non-static functions int test2() { // create test file using C++ functions std::ofstream input1; input1.open("input1.txt", std::ofstream::out | std::ofstream::binary); const char *input1_contents = "diskfile_test test1 input1.txt"; input1 << input1_contents; input1.close(); std::mutex output_lock; // read input1.txt { DiskFile diskfile(std::cout, std::cerr, output_lock); if (diskfile.IsOpen()) { std::cout << "IsOpen failed 1" << std::endl; return 1; } if (diskfile.Exists()) { std::cout << "Exists failed 1" << std::endl; return 1; } if (!diskfile.Open("input1.txt")) { std::cout << "Open failed" << std::endl; return 1; } if (!diskfile.IsOpen()) { std::cout << "IsOpen failed 2" << std::endl; return 1; } if (!diskfile.Exists()) { std::cout << "Exists failed 2" << std::endl; return 1; } if (diskfile.FileName() != "input1.txt") { std::cout << "FileName failed" << std::endl; return 1; } if (diskfile.FileSize() != strlen(input1_contents)) { std::cout << "FileSize failed" << std::endl; return 1; } const size_t buffer_len = strlen(input1_contents)+1; // for end-of-string u8 *buffer = new u8[buffer_len]; // put end-of-string in buffer. buffer[buffer_len-1] = '\0'; if (!diskfile.Read(0, buffer, buffer_len - 1)) { std::cout << "Read whole file returned false" << std::endl; return 1; } if (std::string(input1_contents) != (char *) buffer) { std::cout << "Read did not read contents correctly" << std::endl; std::cout << "read \"" << buffer << "\"" << std::endl; std::cout << "expected \"" << input1_contents << "\"" << std::endl; return 1; } // random reads srand(345087209); for (int i = 0; i < 100; i++) { // length is always at least 1. const u64 offset = rand() % (buffer_len-1-1); const size_t length = 1+(rand() % (buffer_len - 1 - offset-1)); if (!diskfile.Read(offset, buffer + offset, length)) { std::cout << "Read partial file returned false" << std::endl; std::cout << " offset=" << offset << std::endl; std::cout << " length=" << length << std::endl; std::cout << " strlen=" << strlen(input1_contents) << std::endl; return 1; } if (std::string(input1_contents) != (char *) buffer) { std::cout << "Random Read did not read contents correctly" << std::endl; return 1; } } if (!diskfile.IsOpen()) { std::cout << "IsOpen failed 3" << std::endl; return 1; } diskfile.Close(); if (diskfile.IsOpen()) { std::cout << "IsOpen failed 4" << std::endl; return 1; } // reopen! if (!diskfile.Open()) { std::cout << "Open failed 2" << std::endl; return 1; } if (!diskfile.IsOpen()) { std::cout << "IsOpen failed 5" << std::endl; return 1; } diskfile.Close(); if (diskfile.IsOpen()) { std::cout << "IsOpen failed 6" << std::endl; return 1; } delete [] buffer; } { std::cout << "create input2.txt, move it to input3.txt, delete it." << std::endl; const char *input2_contents = "diskfile_test test3 input2.txt is longer"; DiskFile diskfile(std::cout, std::cerr, output_lock); if (diskfile.IsOpen()) { std::cout << "IsOpen failed 1" << std::endl; return 1; } if (diskfile.Exists()) { std::cout << "Exists failed 1" << std::endl; return 1; } if (!diskfile.Create("input2.txt", strlen(input2_contents))) { std::cout << "Create failed" << std::endl; return 1; } if (!diskfile.IsOpen()) { std::cout << "IsOpen failed 2" << std::endl; return 1; } if (!diskfile.Exists()) { std::cout << "Exists failed 2" << std::endl; return 1; } if (diskfile.FileSize() != strlen(input2_contents)) { std::cout << "FileSize failed 1" << std::endl; return 1; } if (diskfile.FileName() != "input2.txt") { std::cout << "FileName failed 1" << std::endl; return 1; } if (!diskfile.Write(0, input2_contents, strlen(input2_contents))) { std::cout << "Write failed 1" << std::endl; return 1; } /* // confirm write with read const size_t buffer_len = strlen(input2_contents)+1; // for end-of-string u8 *buffer = new u8[buffer_len]; // put end-of-string in buffer. buffer[buffer_len-1] = '\0'; if (!diskfile.Read(0, buffer, buffer_len - 1)) { std::cout << "Read whole file returned false 1" << std::endl; return 1; } if (std::string(input2_contents) != (char *) buffer) { std::cout << "Read did not read contents correctly 1" << std::endl; return 1; } */ diskfile.Close(); if (diskfile.IsOpen()) { std::cout << "IsOpen failed 3" << std::endl; return 1; } // Rename from input2.txt to input3.txt if (!diskfile.Rename("input3.txt")) { std::cout << "Rename failed 1" << std::endl; return 1; } // C's remove returns 0 on success and non-0 on failure if (remove("input2.txt") == 0) { std::cout << "input2.txt exists after deletion!" << std::endl; return 1; } if (diskfile.FileName() != "input3.txt") { std::cout << "FileName failed 1" << std::endl; return 1; } if (!diskfile.Exists()) { std::cout << "Exists failed 3" << std::endl; return 1; } /* // read again if (!diskfile.Read(0, buffer, buffer_len - 1)) { std::cout << "Read whole file returned false 2" << std::endl; return 1; } if (std::string(input2_contents) != (char *) buffer) { std::cout << "Read did not read contents correctly 2" << std::endl; return 1; } */ if (!diskfile.Delete()) { std::cout << "Delete failed 1" << std::endl; return 1; } if (diskfile.Exists()) { std::cout << "Exists failed 4" << std::endl; return 1; } // C's remove returns 0 on success and non-0 on failure if (remove("input3.txt") == 0) { std::cout << "input3.txt exists after deletion!" << std::endl; return 1; } } // NOTE: C++ does not have a generic function to remove directories. // So, this test does not create subdirectories. // // CreateParentDirectory() // random write + read { std::cout << "create input2.txt, write and read it." << std::endl; const char *input2_contents = "diskfile_test test3 input2.txt is longer"; size_t buffer_len = strlen(input2_contents); srand(23461119); for (size_t blocksize = 1; blocksize < buffer_len; blocksize *=2) { { // scope for variables used in writing DiskFile diskfile(std::cout, std::cerr, output_lock); if (!diskfile.Create("input2.txt", strlen(input2_contents))) { std::cout << "Create failed" << std::endl; return 1; } int blockcount = (buffer_len + (blocksize - 1))/blocksize; int *blockorder = new int[blockcount]; for (int i = 0; i < blockcount; i++) blockorder[i] = i; // shuffle for (int i = 0; i < blockcount-1; i++) { int other_index = (rand() % (blockcount-(i+1))) + 1; int tmp = blockorder[other_index]; blockorder[other_index] = blockorder[i]; blockorder[i] = tmp; } // write blocks for (int i = 0; i < blockcount; i++) { const u64 offset = blocksize*blockorder[i]; // Calculate actual bytes to write (last block may be smaller) size_t write_len = (offset + blocksize > buffer_len) ? (buffer_len - offset) : blocksize; if (!diskfile.Write(offset, input2_contents + offset, write_len)) { std::cout << "Write failed 1" << std::endl; delete [] blockorder; return 1; } } diskfile.Close(); delete [] blockorder; } { // scope for variables used in reading. DiskFile diskfile(std::cout, std::cerr, output_lock); if (!diskfile.Open("input2.txt", strlen(input2_contents))) { std::cout << "Open failed 1" << std::endl; return 1; } // add one more char, for end-of-string u8 *buffer = new u8[buffer_len + 1]; buffer[buffer_len] = '\0'; if (!diskfile.Read(0, buffer, buffer_len)) { std::cout << "Read whole file returned false 2" << std::endl; return 1; } if (std::string(input2_contents) != (char *) buffer) { std::cout << "Read did not read contents correctly 2" << std::endl; return 1; } delete [] buffer; } if (remove("input2.txt") != 0) { std::cout << "input2.txt did not exist" << std::endl; return 1; } } } // delete test files using C++ function remove("input1.txt"); return 0; } // test DiskFileMap int test3() { std::ofstream input1; input1.open("input1.txt", std::ofstream::out | std::ofstream::binary); const char *input1_contents = "diskfile_test test3 input1.txt"; input1 << input1_contents; input1.close(); // Hard to screw up. Except double insert? DiskFileMap dfm; if (dfm.Find("input1.txt") != NULL) { std::cout << "Find succeeded when it shouldn't have" << std::endl; return 1; } std::mutex output_lock; DiskFile df1(std::cout, std::cerr, output_lock); df1.Open("input1.txt"); if (!dfm.Insert(&df1)) { std::cout << "Insert failed" << std::endl; return 1; } if (dfm.Find("input1.txt") != &df1) { std::cout << "Find failed when it shouldn't have" << std::endl; return 1; } DiskFile df2(std::cout, std::cerr, output_lock); df2.Open("input1.txt"); if (dfm.Insert(&df2)) { std::cout << "Insert succeeded when it shouldn't have" << std::endl; return 1; } if (dfm.Find("input1.txt") != &df1) { std::cout << "Find failed when it shouldn't have 2" << std::endl; return 1; } dfm.Remove(&df1); if (dfm.Find("input1.txt") != NULL) { std::cout << "Find succeeded when it shouldn't have 2" << std::endl; return 1; } // delete test files using C++ function remove("input1.txt"); return 0; } // test FileSizeCache int test4() { std::ofstream input1; input1.open("input1.txt", std::ofstream::out | std::ofstream::binary); const char *input1_contents = "diskfile_test test3 input1.txt"; input1 << input1_contents; input1.close(); std::ofstream input2; input2.open("input2.txt", std::ofstream::out | std::ofstream::binary); const char *input2_contents = "diskfile_test test3 input2.txt is longer"; input2 << input2_contents; input2.close(); // should time this vs. DiskFile::FileSize() FileSizeCache cache; for (int i = 0; i < 1000; i++) { if (cache.get("input1.txt") != strlen(input1_contents)) { std::cout << "FileSizeCache failed" << std::endl; return 1; } if (cache.get("input2.txt") != strlen(input2_contents)) { std::cout << "FileSizeCache failed 2" << std::endl; return 1; } } // delete test files using C++ function remove("input1.txt"); remove("input2.txt"); return 0; } // test that we cannot create a file if one already exists. int test5() { std::ofstream input1; input1.open("input1.txt", std::ofstream::out | std::ofstream::binary); const char *input1_contents = "diskfile_test test3 input1.txt"; input1 << input1_contents; input1.close(); std::mutex output_lock; DiskFile diskfile(std::cout, std::cerr, output_lock); if (diskfile.Create("input1.txt", strlen(input1_contents))) { std::cout << "Create succeeded when file already existed!" << std::endl; return 1; } // delete test files using C++ function remove("input1.txt"); return 0; } // Testing Read()/Write() where length > maxlength // To do this, the functions were modified to take // maxlength as a parameter. In production code, // the default maxlength is like 2GB, which is too // large for fast tests. int test6() { const char *input1_contents = "diskfile_test test6 input1.txt"; std::mutex output_lock; { DiskFile diskfile(std::cout, std::cerr, output_lock); if (!diskfile.Create("input1.txt", strlen(input1_contents))) { std::cout << "Create failed!" << std::endl; return 1; } if (!diskfile.Write(0, input1_contents, strlen(input1_contents), 2)) { std::cout << "Write failed 1" << std::endl; return 1; } diskfile.Close(); } { DiskFile diskfile(std::cout, std::cerr, output_lock); if (!diskfile.Open("input1.txt")) { std::cout << "Open failed" << std::endl; return 1; } const size_t buffer_len = strlen(input1_contents)+1; // for end-of-string u8 *buffer = new u8[buffer_len]; // put end-of-string in buffer. buffer[buffer_len-1] = '\0'; if (!diskfile.Read(0, buffer, buffer_len - 1, 2)) { std::cout << "Read whole file returned false" << std::endl; return 1; } if (std::string(input1_contents) != (char *) buffer) { std::cout << "Read did not read contents correctly" << std::endl; std::cout << "read \"" << buffer << "\"" << std::endl; std::cout << "expected \"" << input1_contents << "\"" << std::endl; return 1; } diskfile.Close(); remove("input1.txt"); } const char *input2_contents = "diskfile_test test6 input2.txt is longer"; // try again, writing mid-file with different maxlength. { DiskFile diskfile(std::cout, std::cerr, output_lock); if (!diskfile.Create("input2.txt", strlen(input2_contents))) { std::cout << "Create 2 failed." << std::endl; return 1; } size_t midpoint = strlen(input2_contents); if (!diskfile.Write(midpoint, input2_contents + midpoint, strlen(input2_contents) - midpoint, 3)) { std::cout << "Write failed 2" << std::endl; return 1; } if (!diskfile.Write(0, input2_contents, midpoint, 4)) { std::cout << "Write failed 3" << std::endl; return 1; } diskfile.Close(); } { DiskFile diskfile(std::cout, std::cerr, output_lock); if (!diskfile.Open("input2.txt")) { std::cout << "Open failed" << std::endl; return 1; } const size_t buffer_len = strlen(input2_contents)+1; // for end-of-string u8 *buffer = new u8[buffer_len]; // put end-of-string in buffer. buffer[buffer_len-1] = '\0'; size_t midpoint = strlen(input2_contents) - 2; if (!diskfile.Read(midpoint, buffer + midpoint, strlen(input2_contents) - midpoint, 4)) { std::cout << "Read second half of file returned false" << std::endl; return 1; } if (!diskfile.Read(0, buffer, midpoint, 3)) { std::cout << "Read first half of file returned false" << std::endl; return 1; } if (std::string(input2_contents) != (char *) buffer) { std::cout << "Read did not read contents correctly" << std::endl; std::cout << "read \"" << buffer << "\"" << std::endl; std::cout << "expected \"" << input2_contents << "\"" << std::endl; return 1; } diskfile.Close(); remove("input2.txt"); } return 0; } int main() { if (test1()) { std::cerr << "FAILED: test1" << std::endl; return 1; } if (test2()) { std::cerr << "FAILED: test2" << std::endl; return 1; } if (test3()) { std::cerr << "FAILED: test3" << std::endl; return 1; } if (test4()) { std::cerr << "FAILED: test4" << std::endl; return 1; } if (test5()) { std::cerr << "FAILED: test5" << std::endl; return 1; } if (test6()) { std::cerr << "FAILED: test6" << std::endl; return 1; } std::cout << "SUCCESS: diskfile_test complete." << std::endl; return 0; } par2cmdline-turbo-1.5.0/src/filechecksummer.cpp000066400000000000000000000200301524160147200215040ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "libpar2internal.h" #include "hasher.h" #ifdef _MSC_VER #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif #endif // Construct the checksummer and allocate buffers FileCheckSummer::FileCheckSummer(DiskFile *_diskfile, u64 _blocksize, const u32 (&_windowtable)[256]) : diskfile(_diskfile) , blocksize(_blocksize) , windowtable(_windowtable) , filesize(_diskfile->FileSize()) , currentoffset(0) , buffer(0) , outpointer(0) , inpointer(0) , tailpointer(0) , readoffset(0) , checksum(0) , hasblockhash(false) , contextfull() , context16k() , hasher(NULL) { buffer = new char[(size_t)blocksize*2]; } FileCheckSummer::~FileCheckSummer(void) { delete [] buffer; if (hasher) hasher->destroy(); } void FileCheckSummer::StopHasher(void) { if (!hasher) return; // Extract file hash from multi-hash hasher->extractFileMD5(contextfull); // Stop using the hasher hasher->destroy(); hasher = NULL; // Resync file MD5 to be consistent with UpdateHashes if (tailpointer > inpointer) contextfull.update(inpointer, tailpointer - inpointer); } // Start reading the file at the beginning bool FileCheckSummer::Start(void) { currentoffset = readoffset = 0; tailpointer = outpointer = buffer; inpointer = &buffer[blocksize]; hasher = HasherInput_Create(); // Fill the buffer with new data if (!Fill()) return false; // Compute the checksum + hash for the initial block ComputeCurrentChecksum(true); return true; } // Jump ahead bool FileCheckSummer::Jump(u64 distance) { // Are we already at the end of the file if (currentoffset >= filesize) return false; // Special distances if (distance == 0) return false; if (distance == 1) return Step(); // Not allowed to jump more than one block if (distance > blocksize) distance = blocksize; // If we're advancing by less than one block (and not at the end of the file), // the file/block hash won't be in sync any more if (distance != blocksize && currentoffset + distance < filesize) StopHasher(); // We don't have a cached block hash any more hasblockhash = false; // Advance the current offset and check if we have reached the end of the file currentoffset += distance; if (currentoffset >= filesize) { currentoffset = filesize; tailpointer = outpointer = buffer; memset(buffer, 0, (size_t)blocksize); checksum = 0; return true; } // Move past the data being discarded outpointer += distance; assert(outpointer <= tailpointer); // Is there any data left in the buffer that we are keeping size_t keep = tailpointer - outpointer; if (keep > 0) { // Move it back to the start of the buffer memmove(buffer, outpointer, keep); tailpointer = &buffer[keep]; } else { tailpointer = buffer; } outpointer = buffer; inpointer = &buffer[blocksize]; if (!Fill()) return false; // If we're advancing by a whole block, we'll assume the next block is likely to be valid, so compute the MD5 in advance ComputeCurrentChecksum(distance == blocksize); return true; } void FileCheckSummer::ComputeCurrentChecksum(bool domd5) { // Compute the checksum/hash for the block if (hasher) { // File/block hash is in sync, so compute all hashes size_t blocklen = (size_t)std::min(blocksize, filesize - currentoffset); size_t zeropad = blocksize - blocklen; hasher->update(buffer, blocklen); checksum = HasherGetBlock(hasher, blockhash, zeropad); hasblockhash = true; } else { // File/block hash not in sync, so can only compute block checksum/hash if (domd5) { checksum = MD5CRC_Calc(buffer, (size_t)blocksize, 0, blockhash.hash); hasblockhash = true; } else { // Some issue was found, so defer block MD5 computation checksum = CRCCompute((size_t)blocksize, buffer); } } } // Fill the buffer from disk bool FileCheckSummer::Fill(bool longfill) { // Have we already reached the end of the file if (readoffset >= filesize) return true; // Don't bother filling if we have enough data in the buffer if (tailpointer >= &buffer[blocksize] && !longfill) return true; // Try reading at least one block of data const char *target = tailpointer == buffer ? &buffer[blocksize] : &buffer[2*blocksize]; // How much data can we read into the buffer size_t want = (size_t)std::min(filesize-readoffset, (u64)(target-tailpointer)); if (want > 0) { // Read data if (!diskfile->Read(readoffset, tailpointer, want)) return false; UpdateHashes(readoffset, tailpointer, want); readoffset += want; tailpointer += want; } // Did we fill the buffer want = target - tailpointer; if (want > 0) { // Blank the rest of the buffer memset(tailpointer, 0, want); } return true; } // Update the full file hash and the 16k hash using the new data void FileCheckSummer::UpdateHashes(u64 offset, const void *buffer, size_t length) { // Are we already beyond the first 16k if (offset >= 16384) { // If hasher is being used, the file hash is updated along with the block hash if (!hasher) contextfull.update(buffer, length); } // Would we reach the 16k mark else if (offset+length >= 16384) { // Finish the 16k hash size_t first = (size_t)(16384-offset); context16k.update(buffer, first); // Continue with the full hash, if not using the hasher if (!hasher) { contextfull = context16k; // Do we go beyond the 16k mark if (offset+length > 16384) { contextfull.update(&((const char*)buffer)[first], length-first); } } } else { context16k.update(buffer, length); } } // Return the full file hash and the 16k file hash; FileCheckSummer cannot be used afterwards void FileCheckSummer::GetFileHashes(MD5Hash &hashfull, MD5Hash &hash16k) { // Compute the hash of the first 16k context16k.end(hash16k.hash); // Is the file smaller than 16k if (filesize < 16384) { // The hashes are the same hashfull = hash16k; } // If we're using the hasher, get file hash from there else if(hasher) { hasher->end(hashfull.hash); } else { // Compute the hash of the full file contextfull.end(hashfull.hash); } } // Compute and return the current hash MD5Hash FileCheckSummer::Hash(void) { // Did we pre-compute the hash? if (hasblockhash) return blockhash; MD5Context context; context.Update(outpointer, (size_t)blocksize); MD5Hash hash; context.Final(hash); return hash; } u32 FileCheckSummer::ShortChecksum(u64 blocklength) { u32 crc = CRCCompute((size_t)blocklength, outpointer); if (blocksize > blocklength) { crc = ~CRCUpdateBlock(~crc, (size_t)(blocksize-blocklength)); } return crc; } MD5Hash FileCheckSummer::ShortHash(u64 blocklength) { MD5Context context; context.Update(outpointer, (size_t)blocklength); if (blocksize > blocklength) { context.Update((size_t)(blocksize-blocklength)); } // Get the hash value MD5Hash hash; context.Final(hash); return hash; } par2cmdline-turbo-1.5.0/src/filechecksummer.h000066400000000000000000000134721524160147200211650ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef __FILECHECKSUMMER_H__ #define __FILECHECKSUMMER_H__ // This source file defines the FileCheckSummer object which is used // when scanning a data file to find blocks of undamaged data. // // The object uses a "window" into the data file and slides that window // along the file computing the CRC of the data in that window as it // goes. If the computed CRC matches the value for a block of data // from a target data file, then the MD5 Hash value is also computed // and compared with the value for that block of data. When a match // has been confirmed, the object jumps forward to where the next // block of data is expected to start. Whilst the file is being scanned // the object also computes the MD5 Hash of the whole file and of // the first 16k of the file for later tests. class FileCheckSummer { public: FileCheckSummer(DiskFile *diskfile, u64 blocksize, const u32 (&windowtable)[256]); ~FileCheckSummer(void); // Start reading the file at the beginning bool Start(void); // Jump ahead the specified distance bool Jump(u64 distance); // Step forward one byte bool Step(void); // Return the current checksum u32 Checksum(void) const; // Compute and return the current hash MD5Hash Hash(void); // Compute short values of checksum and hash u32 ShortChecksum(u64 blocklength); MD5Hash ShortHash(u64 blocklength); // Do we have less than a full block of data bool ShortBlock(void) const; u64 BlockLength(void) const; // Return the current file offset u64 Offset(void) const; // Return the full file hash and the 16k file hash void GetFileHashes(MD5Hash &hashfull, MD5Hash &hash16k); // Which disk file is this const DiskFile* GetDiskFile(void) const {return diskfile;} protected: DiskFile *diskfile; u64 blocksize; const u32 (&windowtable)[256]; u64 filesize; u64 currentoffset; // file offset for current window position char *buffer; // buffer for reading from the file char *outpointer; // position in buffer of scan window char *inpointer; // &outpointer[blocksize]; char *tailpointer; // after last valid data in buffer // File offset for next read u64 readoffset; // Current block checksum/hash u32 checksum; MD5Hash blockhash; bool hasblockhash; // if blockhash is valid // MD5 hash of whole file and of first 16k MD5Single contextfull; MD5Single context16k; IHasherInput* hasher; // multi-hash context protected: //void ComputeCurrentCRC(void); void UpdateHashes(u64 offset, const void *buffer, size_t length); //// Fill the buffers with more data from disk // Set longfill = true to force fill the whole buffer bool Fill(bool longfill = false); // Stop using the multi-hash context due to file/block hash desync void StopHasher(void); // Compute block hash/checksum after Jump void ComputeCurrentChecksum(bool domd5); private: // private copy constructor to prevent any misuse. FileCheckSummer(const FileCheckSummer &); FileCheckSummer& operator=(const FileCheckSummer &); }; // Return the current checksum inline u32 FileCheckSummer::Checksum(void) const { return checksum; } // Return the current block length inline u64 FileCheckSummer::BlockLength(void) const { return std::min(blocksize, filesize-currentoffset); } // Return whether or not the current block is a short one. inline bool FileCheckSummer::ShortBlock(void) const { return BlockLength() < blocksize; } // Return the current file offset inline u64 FileCheckSummer::Offset(void) const { return currentoffset; } // Step forward one byte inline bool FileCheckSummer::Step(void) { // Are we already at the end of the file if (currentoffset >= filesize) return false; // The block hash won't be in sync with the file hash any more StopHasher(); // We don't have a cached block hash any more hasblockhash = false; // Advance the file offset and check to see if // we have reached the end of the file if (++currentoffset >= filesize) { currentoffset = filesize; tailpointer = outpointer = buffer; memset(buffer, 0, (size_t)blocksize); checksum = 0; return true; } // Ensure we have enough data in the buffer if (tailpointer <= inpointer) if(!Fill(true)) return false; // Get the incoming and outgoing characters char inch = *inpointer++; char outch = *outpointer++; // Update the checksum checksum = CRCSlideChar(checksum, inch, outch, windowtable); // Can the window slide further if (outpointer < &buffer[blocksize]) return true; assert(outpointer == &buffer[blocksize]); // Copy the data back to the beginning of the buffer memcpy(buffer, outpointer, (size_t)blocksize); inpointer = outpointer; outpointer = buffer; tailpointer -= blocksize; return true; } #endif // __FILECHECKSUMMER_H__ par2cmdline-turbo-1.5.0/src/foreach_parallel.h000066400000000000000000000024001524160147200212670ustar00rootroot00000000000000#ifndef __FOREACH_PARALLEL_H__ #define __FOREACH_PARALLEL_H__ #include #include #include #include template void foreach_parallel(const std::vector &collection, u32 numThreads, const std::function &fn) { if (numThreads == 1 || collection.size() == 1) { for (const auto &item : collection) fn(item); } else if (numThreads >= collection.size()) { // spawn a thread for each item std::vector> tasks; tasks.reserve(collection.size()); for (const auto &item : collection) tasks.push_back(std::async(std::launch::async, std::bind(fn, std::ref(item)))); for (auto &task : tasks) task.wait(); } else { std::atomic itemPos(0); std::vector threads; threads.reserve(numThreads); for (unsigned thread = 0; thread < numThreads; thread++) { threads.emplace_back([&itemPos, &collection, &fn]() { while (1) { unsigned i = itemPos.fetch_add(1, std::memory_order_relaxed); if (i >= collection.size()) break; fn(collection.at(i)); } }); } for (auto &thread : threads) thread.join(); } } #endif // __FOREACH_PARALLEL_H__ par2cmdline-turbo-1.5.0/src/galois.cpp000066400000000000000000000020671524160147200176260ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "libpar2internal.h" #ifdef _MSC_VER #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif #endif par2cmdline-turbo-1.5.0/src/galois.h000066400000000000000000000213051524160147200172670ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef __GALOIS_H__ #define __GALOIS_H__ template class GaloisTable; template class Galois; template class GaloisLongMultiplyTable; // This source file defines the Galois object for carrying out // arithmetic in GF(2^16) using the generator 0x1100B. // Also defined are the GaloisTable object (which contains log and // anti log tables for use in multiplication and division), and // the GaloisLongMultiplyTable object (which contains tables for // carrying out multiplation of 16-bit galois numbers 8 bits at a time). template class GaloisTable { public: typedef valuetype ValueType; GaloisTable(void); enum { Bits = bits, Count = 1< class Galois { public: typedef valuetype ValueType; // Basic constructors Galois(void) {}; Galois(ValueType v); // Copy and assignment Galois(const Galois &right) {value = right.value;} Galois& operator = (const Galois &right) { value = right.value; return *this;} // Addition Galois operator + (const Galois &right) const { return (value ^ right.value); } Galois& operator += (const Galois &right) { value ^= right.value; return *this;} // Subtraction Galois operator - (const Galois &right) const { return (value ^ right.value); } Galois& operator -= (const Galois &right) { value ^= right.value; return *this;} // Multiplication Galois operator * (const Galois &right) const; Galois& operator *= (const Galois &right); // Division Galois operator / (const Galois &right) const; Galois& operator /= (const Galois &right); // Power Galois pow(unsigned int right) const; Galois operator ^ (unsigned int right) const; Galois& operator ^= (unsigned int right); // Cast to value and value access operator ValueType(void) const {return value;} ValueType Value(void) const {return value;} // Direct log and antilog ValueType Log(void) const; ValueType ALog(void) const; enum { Bits = GaloisTable::Bits, Count = GaloisTable::Count, Limit = GaloisTable::Limit, }; protected: ValueType value; static GaloisTable table; }; #ifdef LONGMULTIPLY template class GaloisLongMultiplyTable { public: GaloisLongMultiplyTable(void); typedef g G; enum { Bytes = ((G::Bits + 7) >> 3), Count = ((Bytes * (Bytes+1)) / 2), }; G tables[Count * 256 * 256]; }; #endif // Construct the log and antilog tables from the generator template inline GaloisTable::GaloisTable(void) { u32 b = 1; for (u32 l=0; l GaloisTable Galois::table; template inline Galois::Galois(typename Galois::ValueType v) { value = v; } template inline Galois Galois::operator * (const Galois &right) const { if (value == 0 || right.value == 0) return 0; unsigned int sum = table.log[value] + table.log[right.value]; if (sum >= Limit) { return table.antilog[sum-Limit]; } else { return table.antilog[sum]; } } template inline Galois& Galois::operator *= (const Galois &right) { if (value == 0 || right.value == 0) { value = 0; } else { unsigned int sum = table.log[value] + table.log[right.value]; if (sum >= Limit) { value = table.antilog[sum-Limit]; } else { value = table.antilog[sum]; } } return *this; } template inline Galois Galois::operator / (const Galois &right) const { if (value == 0) return 0; assert(right.value != 0); if (right.value == 0) {return 0;} // Division by 0! int sum = table.log[value] - table.log[right.value]; if (sum < 0) { return table.antilog[sum+Limit]; } else { return table.antilog[sum]; } } template inline Galois& Galois::operator /= (const Galois &right) { if (value == 0) return *this; assert(right.value != 0); if (right.value == 0) {return *this;} // Division by 0! int sum = table.log[value] - table.log[right.value]; if (sum < 0) { value = table.antilog[sum+Limit]; } else { value = table.antilog[sum]; } return *this; } template inline Galois Galois::pow(unsigned int right) const { if (right == 0) return 1; if (value == 0) return 0; unsigned int sum = table.log[value] * right; sum = (sum >> Bits) + (sum & Limit); if (sum >= Limit) { return table.antilog[sum-Limit]; } else { return table.antilog[sum]; } } template inline Galois Galois::operator ^ (unsigned int right) const { if (right == 0) return 1; if (value == 0) return 0; unsigned int sum = table.log[value] * right; sum = (sum >> Bits) + (sum & Limit); if (sum >= Limit) { return table.antilog[sum-Limit]; } else { return table.antilog[sum]; } } template inline Galois& Galois::operator ^= (unsigned int right) { if (right == 0) {value = 1; return *this;} if (value == 0) return *this; unsigned int sum = table.log[value] * right; sum = (sum >> Bits) + (sum & Limit); if (sum >= Limit) { value = table.antilog[sum-Limit]; } else { value = table.antilog[sum]; } return *this; } template inline valuetype Galois::Log(void) const { return table.log[value]; } template inline valuetype Galois::ALog(void) const { return table.antilog[value]; } #ifdef LONGMULTIPLY template inline GaloisLongMultiplyTable::GaloisLongMultiplyTable(void) { G *table = tables; for (unsigned int i=0; i Galois8; #endif // __GALOIS_H__ par2cmdline-turbo-1.5.0/src/galois_test.cpp000066400000000000000000000206361524160147200206670ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include #include #include "libpar2internal.h" #include "galois.h" // Galois are finite fields. (A field with a finite number of elements.) // A field has: // addition // multiplication // such that // + and * are associative // + and * are commutative // exists 0 such that a+0 = 0+a = a // exists 1 such that a*1 = 1*a = 1 // for all a, exists addative inverse -a such that a + -a = 0 // for all a, exists multiplicative inverse a^-1 such that a * a^-1 = 1 // * is distributive over + template int test_field(const gtype a, const gtype b, const gtype c, const gtype zero, const gtype one, int max_value) { if ( (a+b)+c != a+(b+c) ) { std::cerr << "addative associativity fails for " << ((int) (utype) a) << "," << ((int) (utype) b) << "," << ((int) (utype) c) << std::endl; return 1; } if ( (a*b)*c != a*(b*c) ) { std::cerr << "multiplicative associativity fails for " << ((int) (utype) a) << "," << ((int) (utype) b) << "," << ((int) (utype) c) << std::endl; return 1; } if ( a+b != b+a ) { std::cerr << "addative commutivity fails for " << ((int) (utype) a) << "," << ((int) (utype) b) << std::endl; return 1; } if ( a*b != b*a ) { std::cerr << "multiplicative commutivity fails for " << ((int) (utype) a) << "," << ((int) (utype) b) << std::endl; return 1; } if ( a*(b+c) != (a*b)+(a*c) ) { std::cerr << "addative associativity fails for " << ((int) (utype) a) << "," << ((int) (utype) b) << "," << ((int) (utype) c) << std::endl; return 1; } if ( a+zero != a || zero+a != a ) { std::cerr << "addative identity fails for " << ((int) (utype) a) << std::endl; return 1; } if ( a*one != a || one*a != a ) { std::cerr << "multiplicative identity fails for " << ((int) (utype) a) << std::endl; return 1; } // search for inverses int addative_inverse = -1; int multiplicative_inverse = -1; for (int i = 0; i < max_value; i++) { const gtype other(i); //std::cout << ((int) (utype) a) << " + " << ((int) (utype) other) << " = " << ((int) (utype) (a + other)) << std::endl; //std::cout << ((a + other == zero) ? "true" : "false") << std::endl; if (a + other == zero) { if (addative_inverse != -1) { std::cerr << "value " << ((int) (utype) a) << " has two addative inverses" << std::endl; std::cerr << " at " << addative_inverse << " and " << i << std::endl; return 1; } addative_inverse = i; } if (a * other == one) { if (multiplicative_inverse != -1) { std::cerr << "value " << ((int) (utype) a) << " has two multiplicative inverses" << std::endl; std::cerr << " at " << multiplicative_inverse << " and " << i << std::endl; return 1; } multiplicative_inverse = i; } } if (addative_inverse == -1) { std::cerr << "value " << ((int) (utype) a) << " has no addative inverse!" << std::endl; return 1; } if (multiplicative_inverse == -1 && a != zero) { std::cerr << "value " << ((int) (utype) a) << " has no multiplicative inverse!" << std::endl; return 1; } return 0; } template int test_field_many(const gtype zero, const gtype one, int max_value) { srand(345087209); for (int i = 0; i < 256*256; i++) { if (test_field( gtype(i%max_value), gtype(rand() % max_value), gtype(rand() % max_value), zero, one, max_value)) { return 1; } } return 0; } int test1() { return test_field_many(Galois8(0), Galois8(1), 256); } template int test_operators(const gtype a, const gtype b, const gtype zero, const gtype one, int max_value) { gtype c; c = a; c += b; if ( c != a+b ) { std::cerr << "+= fails for " << ((int) (utype) a) << "," << ((int) (utype) b) << "," << ((int) (utype) c) << std::endl; return 1; } if (a-a != zero ) { std::cerr << "- fails for " << ((int) (utype) a) << std::endl; return 1; } c = a; c -= a; if ( c != zero ) { std::cerr << "-= fails for " << ((int) (utype) a) << "," << ((int) (utype) c) << std::endl; return 1; } c = a; c *= b; if ( c != a*b ) { std::cerr << "*= fails for " << ((int) (utype) a) << "," << ((int) (utype) b) << "," << ((int) (utype) c) << std::endl; return 1; } if (a != zero) { if ( a/a != one ) { std::cerr << "/ fails for " << ((int) (utype) a) << std::endl; return 1; } c = a; c /= a; if ( c != one ) { std::cerr << "/= fails for " << ((int) (utype) a) << "," << ((int) (utype) c) << std::endl; return 1; } } unsigned int power = (unsigned int) (utype) b; c = one; for (unsigned int i = 0; i < power; i++) { c *= a; } if ((a^power) != c) { std::cerr << "^ fails for " << ((int) (utype) a) << "," << ((int) (utype) c) << std::endl; return 1; } if (a.pow(power) != c) { std::cerr << "pow() fails for " << ((int) (utype) a) << "," << ((int) (utype) c) << std::endl; return 1; } c = a; c ^= power; if (c != (a^power)) { std::cerr << "^= fails for " << ((int) (utype) a) << "," << power << "," << ((int) (utype) c) << std::endl; return 1; } if (a != zero && b != zero) { if ( (a.Log() + b.Log()) % (max_value-1) != (a*b).Log() ) { std::cerr << "Log = fails for " << ((int) (utype) a) << "," << ((int) (utype) b) << "," << ((int) a.Log()) << "," << ((int) b.Log()) << "," << ((int) (a*b).Log()) << std::endl; return 1; } } c = gtype(gtype(a.Log()).ALog()); if (c != a) { std::cerr << "ALog fails for " << ((int) (utype) a) << "," << ((int) (utype) c) << std::endl; return 1; } return 0; } template int test_operators_many(const gtype zero, const gtype one, int max_value) { srand(14531119); for (int i = 0; i < 256*256; i++) { if (test_operators( gtype(i%max_value), gtype(rand() % max_value), zero, one, max_value)) { return 1; } } return 0; } int test3() { return test_operators_many(Galois8(0), Galois8(1), 256); } // test powers of Galois // 2^pow should be unique for pow in range 1 to N-1. // and 2^N = 2 // and 2^pow != 0 for any pow template int test_powers(const gtype two, const gtype zero, int max_value) { gtype g = two; int used[256*256]; for (int i = 0; i < max_value; i++) used[i] = 0; // mark 0 as used, so we get an error if it reaches it. used[0] = -1; for (int power = 1; power < max_value; power++) { int index = (int) (utype) g; if (used[index] != 0) { std::cerr << "error at power " << power << " was already used by power " << used[index] << std::endl; std::cerr << "g = " << ((int) (utype) g) << std::endl; return 1; } used[index] = power; g *= two; } if (g != two) { std::cerr << "error after power " << max_value << std::endl; std::cerr << "g = " << ((int) (utype) g) << std::endl; std::cerr << "two = " << ((int) (utype) two) << std::endl; return 1; } return 0; } int test5() { return test_powers(Galois8(2), Galois8(0), 256); } int main() { if (test1()) { std::cerr << "FAILED: test1" << std::endl; return 1; } if (test3()) { std::cerr << "FAILED: test3" << std::endl; return 1; } if (test5()) { std::cerr << "FAILED: test5" << std::endl; return 1; } std::cout << "SUCCESS: galois_test complete." << std::endl; return 0; } par2cmdline-turbo-1.5.0/src/hasher.h000066400000000000000000000006321524160147200172630ustar00rootroot00000000000000#ifndef __HASHER_H__ #define __HASHER_H__ // Wrapper for ParPar's InputHasher #include "../parpar/hasher/hasher.h" inline u32 HasherGetBlock(IHasherInput* hasher, MD5Hash& blockhash, u64 zeropad = 0) { u8 md5crc[20]; hasher->getBlock(md5crc, zeropad); std::memcpy(blockhash.hash, md5crc, 16); return md5crc[16] | (md5crc[17] << 8) | (md5crc[18] << 16) | (md5crc[19] << 24); } #endif // __HASHER_H__ par2cmdline-turbo-1.5.0/src/letype.h000066400000000000000000000065341524160147200173220ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef __LETYPE_H__ #define __LETYPE_H__ #if __BYTE_ORDER == __LITTLE_ENDIAN typedef u16 leu16; typedef u32 leu32; typedef u64 leu64; #else struct leu16 { leu16& operator=(const u16 &other); operator u16(void) const; u16 value; }; inline leu16& leu16::operator=(const u16 &other) { ((unsigned char*)&value)[0] = (unsigned char)((other >> 0) & 0xff); ((unsigned char*)&value)[1] = (unsigned char)((other >> 8) & 0xff); return *this; } inline leu16::operator u16(void) const { return ((unsigned char*)&value)[0] << 0 | ((unsigned char*)&value)[1] << 8; } struct leu32 { leu32& operator=(const u32 &other); operator u32(void) const; u32 value; }; inline leu32& leu32::operator=(const u32 &other) { ((unsigned char*)&value)[0] = (unsigned char)((other >> 0) & 0xff); ((unsigned char*)&value)[1] = (unsigned char)((other >> 8) & 0xff); ((unsigned char*)&value)[2] = (unsigned char)((other >> 16) & 0xff); ((unsigned char*)&value)[3] = (unsigned char)((other >> 24) & 0xff); return *this; } inline leu32::operator u32(void) const { return ((unsigned char*)&value)[0] << 0 | ((unsigned char*)&value)[1] << 8 | ((unsigned char*)&value)[2] << 16 | ((unsigned char*)&value)[3] << 24; } struct leu64 { leu64& operator=(const u64 &other); operator u64(void) const; u64 value; }; inline leu64& leu64::operator=(const u64 &other) { ((unsigned char*)&value)[0] = (unsigned char)((other >> 0) & 0xff); ((unsigned char*)&value)[1] = (unsigned char)((other >> 8) & 0xff); ((unsigned char*)&value)[2] = (unsigned char)((other >> 16) & 0xff); ((unsigned char*)&value)[3] = (unsigned char)((other >> 24) & 0xff); ((unsigned char*)&value)[4] = (unsigned char)((other >> 32) & 0xff); ((unsigned char*)&value)[5] = (unsigned char)((other >> 40) & 0xff); ((unsigned char*)&value)[6] = (unsigned char)((other >> 48) & 0xff); ((unsigned char*)&value)[7] = (unsigned char)((other >> 56) & 0xff); return *this; } inline leu64::operator u64(void) const { return (u64)(((unsigned char*)&value)[0]) << 0 | (u64)(((unsigned char*)&value)[1]) << 8 | (u64)(((unsigned char*)&value)[2]) << 16 | (u64)(((unsigned char*)&value)[3]) << 24 | (u64)(((unsigned char*)&value)[4]) << 32 | (u64)(((unsigned char*)&value)[5]) << 40 | (u64)(((unsigned char*)&value)[6]) << 48 | (u64)(((unsigned char*)&value)[7]) << 56; } #endif #endif // __LETYPE_H__ par2cmdline-turbo-1.5.0/src/letype_test.cpp000066400000000000000000000074261524160147200207150ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include #include #include "libpar2internal.h" #include "letype.h" // test one value int test1() { u16 expected = 127*127; leu16 x; x = expected; u16 output = x; if (output != expected) { std::cerr << "output = " << output << std::endl; std::cerr << "expected = " << expected << std::endl; return 1; } return 0; } // test all 16 bit values int test2() { for (int i = 0; i < 256*256; i++) { u16 expected = i; leu16 x; x = expected; u16 output = x; if (output != expected) { std::cerr << "output = " << output << std::endl; std::cerr << "expected = " << expected << std::endl; return 1; } } return 0; } // test one 32-bit value int test3() { u32 expected = 127*127*127*127; leu32 x; x = expected; u32 output = x; if (output != expected) { std::cerr << "output = " << output << std::endl; std::cerr << "expected = " << expected << std::endl; return 1; } return 0; } // test random 32-bit values int test4() { srand(113450911); for (int i = 0; i < 256*256; i++) { unsigned long z = 0; z += (rand() % 256)*256*256*256; z += (rand() % 256)*256*256; z += (rand() % 256)*256; z += (rand() % 256); u32 expected = z; leu32 x; x = expected; u32 output = x; if (output != expected) { std::cerr << "output = " << output << std::endl; std::cerr << "expected = " << expected << std::endl; return 1; } } return 0; } // test one 64-bit value int test5() { u64 expected = 127ul*127ul*127ul*127ul*127ul*127ul*127ul*127ul; leu64 x; x = expected; u64 output = x; if (output != expected) { std::cerr << "output = " << output << std::endl; std::cerr << "expected = " << expected << std::endl; return 1; } return 0; } // test random 64-bit values int test6() { srand(84395311); for (int i = 0; i < 256*256; i++) { unsigned long z = 0; unsigned long factor = 1; for (int j = 0; j < 8; j++) { z += (rand() % 256)*factor; factor *= 256; } u64 expected = z; leu64 x; x = expected; u64 output = x; if (output != expected) { std::cerr << "output = " << output << std::endl; std::cerr << "expected = " << expected << std::endl; return 1; } } return 0; } int main() { if (test1()) { std::cerr << "FAILED: test1" << std::endl; return 1; } if (test2()) { std::cerr << "FAILED: test2" << std::endl; return 1; } if (test3()) { std::cerr << "FAILED: test3" << std::endl; return 1; } if (test4()) { std::cerr << "FAILED: test4" << std::endl; return 1; } if (test5()) { std::cerr << "FAILED: test5" << std::endl; return 1; } if (test6()) { std::cerr << "FAILED: test6" << std::endl; return 1; } std::cout << "SUCCESS: letype_test complete." << std::endl; return 0; } par2cmdline-turbo-1.5.0/src/libpar2.cpp000066400000000000000000000121641524160147200177020ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "libpar2internal.h" Result par2create(std::ostream &sout, std::ostream &serr, const NoiseLevel noiselevel, const size_t memorylimit, const std::string &basepath, const u32 nthreads, const u32 filethreads, const std::string &parfilename, const std::vector &extrafiles, const u64 blocksize, const u32 firstblock, const Scheme recoveryfilescheme, const u32 recoveryfilecount, const u32 recoveryblockcount ) { Par2Creator creator(sout, serr, noiselevel); Result result = creator.Process( memorylimit, basepath, nthreads, filethreads, parfilename, extrafiles, blocksize, firstblock, recoveryfilescheme, recoveryfilecount, recoveryblockcount ); return result; } Result par2repair(std::ostream &sout, std::ostream &serr, const NoiseLevel noiselevel, const size_t memorylimit, const std::string &basepath, const u32 nthreads, const u32 filethreads, const std::string &parfilename, const std::vector &extrafiles, const bool dorepair, // derived from operation const bool purgefiles, const bool renameonly, const bool skipdata, const u64 skipleaway ) { Par2Repairer repairer(sout, serr, noiselevel); Result result = repairer.Process( memorylimit, basepath, nthreads, filethreads, parfilename, extrafiles, dorepair, purgefiles, renameonly, skipdata, skipleaway); return result; } Result par1repair(std::ostream &sout, std::ostream &serr, const NoiseLevel noiselevel, const size_t memorylimit, // basepath is not used by Par1 const u32 nthreads, // filethreads is not used by Par1 const std::string &parfilename, const std::vector &extrafiles, const bool dorepair, // derived from operation const bool purgefiles // skipdata is not used by Par1 // skipleaway is not used by Par1 ) { Par1Repairer repairer(sout, serr, noiselevel); Result result = repairer.Process(memorylimit, nthreads, parfilename, extrafiles, dorepair, purgefiles); return result; } // Determine how many recovery files to create. bool ComputeRecoveryFileCount(std::ostream &sout, std::ostream &serr, u32 *recoveryfilecount, Scheme recoveryfilescheme, u32 recoveryblockcount, u64 largestfilesize, u64 blocksize) { // Are we computing any recovery blocks if (recoveryblockcount == 0) { *recoveryfilecount = 0; return true; } switch (recoveryfilescheme) { case scUnknown: { //assert(false); serr << "Scheme unspecified (create, verify, or repair)." << std::endl; return false; } break; case scVariable: case scUniform: { if (*recoveryfilecount == 0) { // If none specified then then filecount is roughly log2(blockcount) // This prevents you getting excessively large numbers of files // when the block count is high and also allows the files to have // sizes which vary exponentially. for (u32 blocks=recoveryblockcount; blocks>0; blocks>>=1) { (*recoveryfilecount)++; } } if (*recoveryfilecount > recoveryblockcount) { // You cannot have more recovery files than there are recovery blocks // to put in them. serr << "Too many recovery files specified." << std::endl; return false; } } break; case scLimited: { // No recovery file will contain more recovery blocks than would // be required to reconstruct the largest source file if it // were missing. Other recovery files will have recovery blocks // distributed in an exponential scheme. u32 largest = (u32)((largestfilesize + blocksize-1) / blocksize); u32 whole = recoveryblockcount / largest; whole = (whole >= 1) ? whole-1 : 0; u32 extra = recoveryblockcount - whole * largest; *recoveryfilecount = whole; for (u32 blocks=extra; blocks>0; blocks>>=1) { (*recoveryfilecount)++; } } break; } return true; } par2cmdline-turbo-1.5.0/src/libpar2.h000066400000000000000000000142561524160147200173530ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef __LIBPAR2_H__ #define __LIBPAR2_H__ #ifdef _MSC_VER // _MSC_VER is for Microsoft Visual C++ Compiler. // // The ifdef is not for _WIN32, because MinGW (Mingw32) // is a port of gcc's compiler that targets Windows // and we don't want this code run for MinGW. typedef unsigned char u8; typedef signed char i8; typedef unsigned short u16; typedef signed short i16; typedef unsigned int u32; typedef signed int i32; typedef unsigned __int64 u64; typedef signed __int64 i64; #else // _MSC_VER #ifdef HAVE_CONFIG_H #include #if HAVE_INTTYPES_H # include #endif #if HAVE_STDINT_H # include typedef uint8_t u8; typedef int8_t i8; typedef uint16_t u16; typedef int16_t i16; typedef uint32_t u32; typedef int32_t i32; typedef uint64_t u64; typedef int64_t i64; #else typedef unsigned char u8; typedef signed char i8; typedef unsigned short u16; typedef signed short i16; typedef unsigned int u32; typedef signed int i32; typedef unsigned long long u64; typedef signed long long i64; #endif #else // HAVE_CONFIG_H typedef unsigned char u8; typedef signed char i8; typedef unsigned short u16; typedef signed short i16; typedef unsigned int u32; typedef signed int i32; typedef unsigned long long u64; typedef signed long long i64; #endif #endif // Case-insensitive string comparison #ifdef _WIN32 # define stricmp _stricmp #else # include # define stricmp strcasecmp #endif // Path separators #ifdef _WIN32 # define PATHSEP "\\" # define ALTPATHSEP "/" #else # define PATHSEP "/" # define ALTPATHSEP "\\" #endif // Default number of file threads #define _FILE_THREADS 2 #include #include #include typedef enum { scUnknown = 0, scVariable, // Each PAR2 file will have 2x as many blocks as previous scLimited, // Limit PAR2 file size scUniform // All PAR2 files the same size } Scheme; // How much logging/status information to write // to output or error stream typedef enum { nlUnknown = 0, nlSilent, // Absolutely no output (other than errors) nlQuiet, // Bare minimum of output nlNormal, // Normal level of output nlNoisy, // Lots of output nlDebug // Extra debugging information } NoiseLevel; // Return type of par2cmdline typedef enum Result { eSuccess = 0, eRepairPossible = 1, // Data files are damaged and there is // enough recovery data available to // repair them. eRepairNotPossible = 2, // Data files are damaged and there is // insufficient recovery data available // to be able to repair them. eInvalidCommandLineArguments = 3, // There was something wrong with the // command line arguments eInsufficientCriticalData = 4, // The PAR2 files did not contain sufficient // information about the data files to be able // to verify them. eRepairFailed = 5, // Repair completed but the data files // still appear to be damaged. eFileIOError = 6, // An error occurred when accessing files eLogicError = 7, // In internal error occurred eMemoryError = 8, // Out of memory } Result; Result par2create(std::ostream &sout, std::ostream &serr, const NoiseLevel noiselevel, const size_t memorylimit, const std::string &basepath, const u32 nthreads, const u32 filethreads, const std::string &parfilename, const std::vector &extrafiles, const u64 blocksize, const u32 firstblock, const Scheme recoveryfilescheme, const u32 recoveryfilecount, const u32 recoveryblockcount ); Result par2repair(std::ostream &sout, std::ostream &serr, const NoiseLevel noiselevel, const size_t memorylimit, const std::string &basepath, const u32 nthreads, const u32 filethreads, const std::string &parfilename, const std::vector &extrafiles, const bool dorepair, // derived from operation const bool purgefiles, const bool renameonly, const bool skipdata, const u64 skipleaway ); Result par1repair(std::ostream &sout, std::ostream &serr, const NoiseLevel noiselevel, const size_t memorylimit, // basepath is not used by Par1 const u32 nthreads, // filethreads is not used by Par1 const std::string &parfilename, const std::vector &extrafiles, const bool dorepair, // derived from operation const bool purgefiles // skipdata is not used by Par1 // skipleaway is not used by Par1 ); bool ComputeRecoveryFileCount(std::ostream &sout, std::ostream &serr, u32 *recoveryfilecount, Scheme recoveryfilescheme, u32 recoveryblockcount, u64 largestfilesize, u64 blocksize); #endif // __LIBPAR2_H__ par2cmdline-turbo-1.5.0/src/libpar2_test.cpp000066400000000000000000000306611524160147200207430ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include #include #include #include "libpar2.h" // ComputeRecoveryFileCount // check when it returns false. int test1() { u32 recoveryfilecount = 0; bool success = ComputeRecoveryFileCount(std::cout, std::cerr, &recoveryfilecount, scUnknown, 1, 1, 1); if (success) { std::cerr << "ComputeRecoveryFileCount worked for unknown scheme" << std::endl; return 1; } recoveryfilecount = 10; success = ComputeRecoveryFileCount(std::cout, std::cerr, &recoveryfilecount, scVariable, 4, 4, 4); if (success) { std::cerr << "ComputeRecoveryFileCount worked with more files than blocks!" << std::endl; return 1; } return 0; } // ComputeRecoveryFileCount // scVariable int test2() { u32 recoveryfilecount = 0; bool success = ComputeRecoveryFileCount(std::cout, std::cerr, &recoveryfilecount, scVariable, 0, 4, 4); if (!success) { std::cerr << "ComputeRecoveryFileCount failed test2.1" << std::endl; return 1; } if (recoveryfilecount != 0) { std::cerr << "ComputeRecoveryFileCount for 0 blocks should return 0" << std::endl; std::cerr << " it returned " << recoveryfilecount << std::endl; return 1; } recoveryfilecount = 0; success = ComputeRecoveryFileCount(std::cout, std::cerr, &recoveryfilecount, scVariable, 8, 4, 4); if (!success) { std::cerr << "ComputeRecoveryFileCount failed test2.1" << std::endl; return 1; } if (recoveryfilecount != 4) { std::cerr << "ComputeRecoveryFileCount for 8 blocks should return 4" << std::endl; std::cerr << " it returned " << recoveryfilecount << std::endl; return 1; } recoveryfilecount = 0; success = ComputeRecoveryFileCount(std::cout, std::cerr, &recoveryfilecount, scVariable, 15, 4, 4); if (!success) { std::cerr << "ComputeRecoveryFileCount failed test2.1" << std::endl; return 1; } if (recoveryfilecount != 4) { std::cerr << "ComputeRecoveryFileCount for 15 blocks should return 4" << std::endl; std::cerr << " it returned " << recoveryfilecount << std::endl; return 1; } recoveryfilecount = 0; success = ComputeRecoveryFileCount(std::cout, std::cerr, &recoveryfilecount, scVariable, 64, 4, 4); if (!success) { std::cerr << "ComputeRecoveryFileCount failed test2.1" << std::endl; return 1; } if (recoveryfilecount != 7) { std::cerr << "ComputeRecoveryFileCount for 64 blocks should return 7" << std::endl; std::cerr << " it returned " << recoveryfilecount << std::endl; return 1; } recoveryfilecount = 0; success = ComputeRecoveryFileCount(std::cout, std::cerr, &recoveryfilecount, scVariable, 127, 4, 4); if (!success) { std::cerr << "ComputeRecoveryFileCount failed test2.1" << std::endl; return 1; } if (recoveryfilecount != 7) { std::cerr << "ComputeRecoveryFileCount for 127 blocks should return 7" << std::endl; std::cerr << " it returned " << recoveryfilecount << std::endl; return 1; } return 0; } // ComputeRecoveryFileCount // scUniform // Doesn't matter the value - long as it's zero at zero and positive after. int test3() { u32 recoveryfilecount = 0; bool success = ComputeRecoveryFileCount(std::cout, std::cerr, &recoveryfilecount, scUniform, 0, 4, 4); if (!success) { std::cerr << "ComputeRecoveryFileCount failed test2.1" << std::endl; return 1; } if (recoveryfilecount != 0) { std::cerr << "ComputeRecoveryFileCount for 0 blocks should return 0" << std::endl; std::cerr << " it returned " << recoveryfilecount << std::endl; return 1; } recoveryfilecount = 0; success = ComputeRecoveryFileCount(std::cout, std::cerr, &recoveryfilecount, scUniform, 1, 4, 4); if (!success) { std::cerr << "ComputeRecoveryFileCount failed test2.1" << std::endl; return 1; } if (recoveryfilecount == 0) { std::cerr << "ComputeRecoveryFileCount for 1 block should a positive value" << std::endl; std::cerr << " it returned " << recoveryfilecount << std::endl; return 1; } recoveryfilecount = 0; success = ComputeRecoveryFileCount(std::cout, std::cerr, &recoveryfilecount, scUniform, 8, 4, 4); if (!success) { std::cerr << "ComputeRecoveryFileCount failed test2.1" << std::endl; return 1; } if (recoveryfilecount == 0) { std::cerr << "ComputeRecoveryFileCount for 8 blocks should a positive value" << std::endl; std::cerr << " it returned " << recoveryfilecount << std::endl; return 1; } return 0; } // ComputeRecoveryFileCount // scLimited // Same as variable with big files // But differs for smaller ones. int test4() { u32 recoveryfilecount = 0; bool success = ComputeRecoveryFileCount(std::cout, std::cerr, &recoveryfilecount, scLimited, 0, 4096, 4); if (!success) { std::cerr << "ComputeRecoveryFileCount failed test2.1" << std::endl; return 1; } if (recoveryfilecount != 0) { std::cerr << "ComputeRecoveryFileCount for 0 blocks should return 0" << std::endl; std::cerr << " it returned " << recoveryfilecount << std::endl; return 1; } recoveryfilecount = 0; success = ComputeRecoveryFileCount(std::cout, std::cerr, &recoveryfilecount, scLimited, 8, 4096, 4); if (!success) { std::cerr << "ComputeRecoveryFileCount failed test2.1" << std::endl; return 1; } if (recoveryfilecount != 4) { std::cerr << "ComputeRecoveryFileCount for 8 blocks should return 4" << std::endl; std::cerr << " it returned " << recoveryfilecount << std::endl; return 1; } recoveryfilecount = 0; success = ComputeRecoveryFileCount(std::cout, std::cerr, &recoveryfilecount, scLimited, 15, 4096, 4); if (!success) { std::cerr << "ComputeRecoveryFileCount failed test2.1" << std::endl; return 1; } if (recoveryfilecount != 4) { std::cerr << "ComputeRecoveryFileCount for 15 blocks should return 4" << std::endl; std::cerr << " it returned " << recoveryfilecount << std::endl; return 1; } recoveryfilecount = 0; success = ComputeRecoveryFileCount(std::cout, std::cerr, &recoveryfilecount, scLimited, 64, 4096, 4); if (!success) { std::cerr << "ComputeRecoveryFileCount failed test2.1" << std::endl; return 1; } if (recoveryfilecount != 7) { std::cerr << "ComputeRecoveryFileCount for 64 blocks should return 7" << std::endl; std::cerr << " it returned " << recoveryfilecount << std::endl; return 1; } recoveryfilecount = 0; success = ComputeRecoveryFileCount(std::cout, std::cerr, &recoveryfilecount, scLimited, 127, 4096, 4); if (!success) { std::cerr << "ComputeRecoveryFileCount failed test2.1" << std::endl; return 1; } if (recoveryfilecount != 7) { std::cerr << "ComputeRecoveryFileCount for 127 blocks should return 7" << std::endl; std::cerr << " it returned " << recoveryfilecount << std::endl; return 1; } // smaller largest files // 1 2 4 8 10 10 10... recoveryfilecount = 0; success = ComputeRecoveryFileCount(std::cout, std::cerr, &recoveryfilecount, scLimited, 8, 40, 4); if (!success) { std::cerr << "ComputeRecoveryFileCount failed test2.1" << std::endl; return 1; } if (recoveryfilecount != 4) { std::cerr << "ComputeRecoveryFileCount for 127 blocks should return 7" << std::endl; std::cerr << " it returned " << recoveryfilecount << std::endl; return 1; } recoveryfilecount = 0; success = ComputeRecoveryFileCount(std::cout, std::cerr, &recoveryfilecount, scLimited, 15, 40, 4); if (!success) { std::cerr << "ComputeRecoveryFileCount failed test2.1" << std::endl; return 1; } if (recoveryfilecount != 4) { std::cerr << "ComputeRecoveryFileCount for 127 blocks should return 7" << std::endl; std::cerr << " it returned " << recoveryfilecount << std::endl; return 1; } recoveryfilecount = 0; success = ComputeRecoveryFileCount(std::cout, std::cerr, &recoveryfilecount, scLimited, 16, 40, 4); if (!success) { std::cerr << "ComputeRecoveryFileCount failed test2.1" << std::endl; return 1; } if (recoveryfilecount != 5) { std::cerr << "ComputeRecoveryFileCount for 127 blocks should return 7" << std::endl; std::cerr << " it returned " << recoveryfilecount << std::endl; return 1; } recoveryfilecount = 0; success = ComputeRecoveryFileCount(std::cout, std::cerr, &recoveryfilecount, scLimited, 25, 40, 4); if (!success) { std::cerr << "ComputeRecoveryFileCount failed test2.1" << std::endl; return 1; } if (recoveryfilecount != 5) { std::cerr << "ComputeRecoveryFileCount for 127 blocks should return 7" << std::endl; std::cerr << " it returned " << recoveryfilecount << std::endl; return 1; } recoveryfilecount = 0; success = ComputeRecoveryFileCount(std::cout, std::cerr, &recoveryfilecount, scLimited, 26, 40, 4); if (!success) { std::cerr << "ComputeRecoveryFileCount failed test2.1" << std::endl; return 1; } if (recoveryfilecount != 6) { std::cerr << "ComputeRecoveryFileCount for 127 blocks should return 7" << std::endl; std::cerr << " it returned " << recoveryfilecount << std::endl; return 1; } recoveryfilecount = 0; success = ComputeRecoveryFileCount(std::cout, std::cerr, &recoveryfilecount, scLimited, 35, 40, 4); if (!success) { std::cerr << "ComputeRecoveryFileCount failed test2.1" << std::endl; return 1; } if (recoveryfilecount != 6) { std::cerr << "ComputeRecoveryFileCount for 127 blocks should return 7" << std::endl; std::cerr << " it returned " << recoveryfilecount << std::endl; return 1; } recoveryfilecount = 0; success = ComputeRecoveryFileCount(std::cout, std::cerr, &recoveryfilecount, scLimited, 35 + 100, 40, 4); if (!success) { std::cerr << "ComputeRecoveryFileCount failed test2.1" << std::endl; return 1; } if (recoveryfilecount != 6 + 10) { std::cerr << "ComputeRecoveryFileCount for 127 blocks should return 7" << std::endl; std::cerr << " it returned " << recoveryfilecount << std::endl; return 1; } return 0; } int main() { if (test1()) { std::cerr << "FAILED: test1" << std::endl; return 1; } if (test2()) { std::cerr << "FAILED: test2" << std::endl; return 1; } if (test3()) { std::cerr << "FAILED: test3" << std::endl; return 1; } if (test4()) { std::cerr << "FAILED: test4" << std::endl; return 1; } std::cout << "SUCCESS: libpar2_test complete." << std::endl; return 0; } par2cmdline-turbo-1.5.0/src/libpar2internal.h000066400000000000000000000122351524160147200211030ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef __PARCMDLINE_H__ #define __PARCMDLINE_H__ #ifdef _WIN32 // Windows includes #define WIN32_LEAN_AND_MEAN #define NOMINMAX #include // System includes #include #include #include #include #include #include #include #include #include #define snprintf _snprintf_s #define unlink _unlink #define __LITTLE_ENDIAN 1234 #define __BIG_ENDIAN 4321 #define __PDP_ENDIAN 3412 #define __BYTE_ORDER __LITTLE_ENDIAN #ifndef _SIZE_T_DEFINED # ifdef _WIN64 typedef unsigned __int64 size_t; # else typedef unsigned int size_t; # endif # define _SIZE_T_DEFINED #endif #ifdef HAVE_CONFIG_H #include #endif #else // _WIN32 #ifdef HAVE_CONFIG_H #include #ifdef HAVE_STDLIB_H # include #endif #ifdef HAVE_STDIO_H # include #endif #include #if HAVE_DIRENT_H # include # define NAMELEN(dirent) strlen((dirent)->d_name) #else # define dirent direct # define NAMELEN(dirent) (dirent)->d_namelen # if HAVE_SYS_NDIR_H # include # endif # if HAVE_SYS_DIR_H # include # endif # if HAVE_NDIR_H # include # endif #endif #if STDC_HEADERS # include #else # if !HAVE_MEMCPY # define memcpy(d, s, n) bcopy((s), (d), (n)) # endif #endif #if HAVE_MEMORY_H # include #endif #if HAVE_SYS_STAT_H # include #endif #if HAVE_LIMITS_H # include #endif #if HAVE_SYS_TYPES_H # include #endif #if HAVE_UNISTD_H # include #endif #include #ifdef _WIN32 // _WIN32: Redefine _MAX_PATH to support Windows long paths (\\?\ prefix) // Windows normally defines _MAX_PATH as 260, but with long path support // enabled and the \\?\ prefix, paths can be up to 32767 characters # define _MAX_PATH 32767 #else # define _MAX_PATH 4095 #endif #if HAVE_ENDIAN_H # include # ifndef __LITTLE_ENDIAN # ifdef _LITTLE_ENDIAN # define __LITTLE_ENDIAN _LITTLE_ENDIAN # define __BIG_ENDIAN _BIG_ENDIAN # define __PDP_ENDIAN _PDP_ENDIAN # define __BYTE_ORDER _BYTE_ORDER # else # error does not define __LITTLE_ENDIAN etc. # endif # endif #else # define __LITTLE_ENDIAN 1234 # define __BIG_ENDIAN 4321 # define __PDP_ENDIAN 3412 # if WORDS_BIGENDIAN # define __BYTE_ORDER __BIG_ENDIAN # else # define __BYTE_ORDER __LITTLE_ENDIAN # endif #endif #else // HAVE_CONFIG_H #include #include #include #include #include #include #include #include #include #include #include #define _MAX_PATH 4095 #endif #endif #define NUM_TRANSFER_BUFFERS 2 // must be >= 2 #define NUM_PARPAR_BUFFERS 12 // maximum number of internal ParPar staging buffers #define MAX_CHUNK_SIZE 32*1048576 // too large chunks are likely detrimental to performance; set to 0 to disable #define LONGMULTIPLY // STL includes #include #include #include #include #include #include #include #include #include #include #include #ifdef offsetof #undef offsetof #endif #define offsetof(TYPE, MEMBER) ((size_t) ((char*)(&((TYPE *)1)->MEMBER) - (char*)1)) // par2cmdline includes #include "libpar2.h" #include "letype.h" #include "progressmeter.h" #include "galois.h" #include "crc.h" #include "md5.h" #include "par2fileformat.h" #include "diskfile.h" #include "datablock.h" #include "criticalpacket.h" #include "par2creatorsourcefile.h" #include "mainpacket.h" #include "creatorpacket.h" #include "descriptionpacket.h" #include "verificationpacket.h" #include "recoverypacket.h" #include "par2repairersourcefile.h" #include "filechecksummer.h" #include "verificationhashtable.h" #include "par2creator.h" #include "par2repairer.h" #include "par1fileformat.h" #include "par1repairersourcefile.h" #include "par1repairer.h" #ifdef _WIN32 #include "utf8.h" #endif // Heap checking #ifdef _MSC_VER #define _CRTDBG_MAP_ALLOC #include #define DEBUG_NEW new(_NORMAL_BLOCK, THIS_FILE, __LINE__) #endif #endif // __PARCMDLINE_H__ par2cmdline-turbo-1.5.0/src/mainpacket.cpp000066400000000000000000000101141524160147200204540ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "libpar2internal.h" #ifdef _MSC_VER #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif #endif // Construct the main packet from the source files and the block size bool MainPacket::Create(std::vector &sourcefiles, u64 _blocksize) { recoverablefilecount = totalfilecount =(u32)sourcefiles.size(); blocksize = _blocksize; // Allocate memory for the main packet with enough fileid entries MAINPACKET *packet = (MAINPACKET *)AllocatePacket(sizeof(MAINPACKET) + totalfilecount * sizeof(MD5Hash)); // Record the details we already know in the packet packet->header.magic = packet_magic; packet->header.length = packetlength; //packet->header.hash; // Compute shortly //packet->header.setid; // Compute shortly packet->header.type = mainpacket_type; packet->blocksize = _blocksize; packet->recoverablefilecount = totalfilecount; //packet->fileid; // Compute shortly // Sort the source files according to their fileid values if (totalfilecount > 1) { std::sort(sourcefiles.begin(), sourcefiles.end(), Par2CreatorSourceFile::CompareLess); } // Store the fileid values in the main packet std::vector::const_iterator sourcefile; MD5Hash *hash; for ((sourcefile=sourcefiles.begin()),(hash=packet->fileid); sourcefile!=sourcefiles.end(); ++sourcefile, ++hash) { *hash = (*sourcefile)->FileId(); } // Compute the set_id_hash MD5Context setidcontext; setidcontext.Update(&packet->blocksize, packetlength - offsetof(MAINPACKET, blocksize)); setidcontext.Final(packet->header.setid); // Compute the packet_hash MD5Context packetcontext; packetcontext.Update(&packet->header.setid, packetlength - offsetof(MAINPACKET, header.setid)); packetcontext.Final(packet->header.hash); return true; } // Load a main packet from a specified file bool MainPacket::Load(DiskFile *diskfile, u64 offset, PACKET_HEADER &header) { // Is the packet large enough if (header.length < sizeof(MAINPACKET)) { return false; } // Is there a whole number of fileid values if (0 < (header.length - sizeof(MAINPACKET)) % sizeof(MD5Hash)) { return false; } // Is the packet too large if (header.length > sizeof(MAINPACKET) + 32768 * sizeof(MD5Hash)) { return false; } // Compute the total number of entries in the fileid array totalfilecount = (u32)(((size_t)header.length - sizeof(MAINPACKET)) / sizeof(MD5Hash)); MAINPACKET *packet = (MAINPACKET *)AllocatePacket((size_t)header.length); packet->header = header; // Read the rest of the packet from disk if (!diskfile->Read(offset + sizeof(PACKET_HEADER), &packet->blocksize, (size_t)packet->header.length - sizeof(PACKET_HEADER))) return false; // Does the packet have enough fileid values recoverablefilecount = packet->recoverablefilecount; if (recoverablefilecount > totalfilecount) { return false; } // Is the block size valid blocksize = packet->blocksize; if (blocksize == 0 || (blocksize & 3) != 0) { return false; } return true; } par2cmdline-turbo-1.5.0/src/mainpacket.h000066400000000000000000000060551524160147200201320ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef __MAINPACKET_H__ #define __MAINPACKET_H__ // The main packet ties all other critical packets together. // It specifies the block size to use for both verification of // files and for the Reed Solomon computation. // It also specifies how many of the source files are repairable // and in what order they should be processed. class MainPacket : public CriticalPacket { public: // Construct the packet MainPacket(void) : blocksize(0) , totalfilecount(0) , recoverablefilecount(0) { } ~MainPacket(void) {} public: // Construct the main packet from the source file list and block size. // "sourcefiles" will be sorted base on their FileId value. bool Create(std::vector &sourcefiles, u64 _blocksize); // Load a main packet from a specified file bool Load(DiskFile *diskfile, u64 offset, PACKET_HEADER &header); public: // Get the set id. const MD5Hash& SetId(void) const; // Get the block size. u64 BlockSize(void) const; // Get the file counts. u32 RecoverableFileCount(void) const; u32 TotalFileCount(void) const; // Get the fileid of one file const MD5Hash& FileId(u32 filenumber) const; protected: u64 blocksize; u32 totalfilecount; u32 recoverablefilecount; }; // Get the data block size inline u64 MainPacket::BlockSize(void) const { assert(packetdata != 0); return blocksize; } // Get the number of recoverable files inline u32 MainPacket::RecoverableFileCount(void) const { assert(packetdata != 0); return recoverablefilecount; } // Get the total number of files inline u32 MainPacket::TotalFileCount(void) const { assert(packetdata != 0); return totalfilecount; } // Get the file id hash of one of the files inline const MD5Hash& MainPacket::FileId(u32 filenumber) const { assert(packetdata != 0); assert(filenumberfileid()[filenumber]; return ((const MAINPACKET*)packetdata)->fileid[filenumber]; } inline const MD5Hash& MainPacket::SetId(void) const { return ((const MAINPACKET*)packetdata)->header.setid; } #endif // __MAINPACKET_H__ par2cmdline-turbo-1.5.0/src/md5.cpp000066400000000000000000000037241524160147200170360ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "libpar2internal.h" #ifdef _MSC_VER #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif #endif // Convert hash values to hex std::ostream& operator<<(std::ostream &result, const MD5Hash &h) { char buffer[33]; snprintf(buffer, sizeof(buffer), "%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X", h.hash[15], h.hash[14], h.hash[13], h.hash[12], h.hash[11], h.hash[10], h.hash[9], h.hash[8], h.hash[7], h.hash[6], h.hash[5], h.hash[4], h.hash[3], h.hash[2], h.hash[1], h.hash[0]); return result << buffer; } std::string MD5Hash::print(void) const { char buffer[33]; snprintf(buffer, sizeof(buffer), "%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X", hash[15], hash[14], hash[13], hash[12], hash[11], hash[10], hash[9], hash[8], hash[7], hash[6], hash[5], hash[4], hash[3], hash[2], hash[1], hash[0]); return buffer; } par2cmdline-turbo-1.5.0/src/md5.h000066400000000000000000000063361524160147200165050ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef __MD5_H__ #define __MD5_H__ #ifdef _WIN32 #pragma pack(push, 1) #define PACKED #else #define PACKED __attribute__ ((packed)) #endif // This file defines the MD5Hash and MD5Context objects which are used // to compute and manipulate the MD5 Hash values for a block of data. // Usage: // // MD5Context context; // context.Update(buffer, length); // // MD5Hash hash; // context.Final(hash); // MD5 Hash value struct MD5Hash; std::ostream& operator<<(std::ostream &s, const MD5Hash &hash); struct MD5Hash { // Comparison operators bool operator==(const MD5Hash &other) const; bool operator!=(const MD5Hash &other) const; bool operator<(const MD5Hash &other) const; bool operator>=(const MD5Hash &other) const; bool operator>(const MD5Hash &other) const; bool operator<=(const MD5Hash &other) const; // Convert value to hex friend std::ostream& operator<<(std::ostream &s, const MD5Hash &hash); std::string print(void) const; u8 hash[16]; // 16 byte MD5 Hash value } PACKED; // MD5 computation context with 64 byte buffer #include "../parpar/hasher/hasher.h" class MD5Context { MD5Single base; public: inline void Reset(void) { base.reset(); } // Process data from a buffer inline void Update(const void *buffer, size_t length) { base.update(buffer, length); } // Process 0 bytes void Update(size_t length) { base.updateZero(length); } // Compute the final hash value inline void Final(MD5Hash &output) { base.end(output.hash); } }; // Compare hash values inline bool MD5Hash::operator==(const MD5Hash &other) const { return (0==memcmp(&hash, &other.hash, sizeof(hash))); } inline bool MD5Hash::operator!=(const MD5Hash &other) const { return !operator==(other); } inline bool MD5Hash::operator<(const MD5Hash &other) const { size_t index = 15; while (index > 0 && hash[index] == other.hash[index]) { index--; } return hash[index] < other.hash[index]; } inline bool MD5Hash::operator>=(const MD5Hash &other) const { return !operator<(other); } inline bool MD5Hash::operator>(const MD5Hash &other) const { return other.operator<(*this); } inline bool MD5Hash::operator<=(const MD5Hash &other) const { return !other.operator<(*this); } #ifdef _WIN32 #pragma pack(pop) #endif #undef PACKED #endif // __MD5_H__ par2cmdline-turbo-1.5.0/src/md5_test.cpp000066400000000000000000000143251524160147200200740ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // This is just a simple set of tests on md5 hash. // The initial version just showed it was self-consistent, not accurate. #include "libpar2internal.h" #include #include #include "md5.h" // compares Update(length) to Update(buffer,buffersize) int test1() { unsigned char buffer[] = {0,0,0,0,0,0,0,0}; MD5Context context1; context1.Update(buffer, sizeof(buffer)); MD5Hash hash1; context1.Final(hash1); MD5Context context2; context2.Update(sizeof(buffer)); MD5Hash hash2; context2.Final(hash2); if (hash1 != hash2) { std::cerr << "hash1 = " << hash1 << std::endl; std::cerr << "hash2 = " << hash2 << std::endl; return 1; } return 0; } // "MD5 of a null string is d41d8cd98f00b204e9800998ecf8427e" // "MD5 of a null string is d4 1d 8c d9 8f 00 b2 04 e9 80 09 98 ec f8 42 7e" // according to https://news.ycombinator.com/item?id=5653698 int test2() { MD5Context context1; MD5Hash hash1; context1.Final(hash1); MD5Hash hash2; hash2.hash[0] = 0xd4; hash2.hash[1] = 0x1d; hash2.hash[2] = 0x8c; hash2.hash[3] = 0xd9; hash2.hash[4] = 0x8f; hash2.hash[5] = 0x00; hash2.hash[6] = 0xb2; hash2.hash[7] = 0x04; hash2.hash[8] = 0xe9; hash2.hash[9] = 0x80; hash2.hash[10] = 0x09; hash2.hash[11] = 0x98; hash2.hash[12] = 0xec; hash2.hash[13] = 0xf8; hash2.hash[14] = 0x42; hash2.hash[15] = 0x7e; for (int i = 0; i < 16; i++) { if (hash1.hash[i] != hash2.hash[i]) { std::cerr << "hash1 and hash2 differ in location " << i << std::endl; std::cerr << " hash1 = " << ((int) hash1.hash[i]) << std::endl; std::cerr << " hash2 = " << ((int) hash2.hash[i]) << std::endl; return 1; } } return 0; } // test comparison operators int test3() { MD5Context context1; MD5Hash hash1; context1.Final(hash1); MD5Hash hash2; hash2 = hash1; if (!(hash1 == hash2)) { std::cerr << "equal fail" << std::endl; return 1; } if (hash1 != hash2) { std::cerr << "not equal fail" << std::endl; return 1; } if (hash1 < hash2) { std::cerr << "less than fail" << std::endl; return 1; } if (hash1 > hash2) { std::cerr << "greater than fail" << std::endl; return 1; } if (!(hash1 <= hash2)) { std::cerr << "less than or equal fail" << std::endl; return 1; } if (!(hash1 >= hash2)) { std::cerr << "greater than or equal fail" << std::endl; return 1; } // make hash1 less than hash2 in first place hash1.hash[0] = 0x0; hash2.hash[0] = 0x1; if (hash1 == hash2) { std::cerr << "equal fail 2" << std::endl; return 1; } if (!(hash1 != hash2)) { std::cerr << "not equal fail 2" << std::endl; return 1; } if (!(hash1 < hash2)) { std::cerr << "less than fail 2" << std::endl; return 1; } if (hash1 > hash2) { std::cerr << "greater than fail 2" << std::endl; return 1; } if (!(hash1 <= hash2)) { std::cerr << "less than or equal fail 2" << std::endl; return 1; } if (hash1 >= hash2) { std::cerr << "greater than or equal fail 2" << std::endl; return 1; } // make them equal again hash1.hash[0] = 0x0; hash2.hash[0] = 0x0; // now make hash1 less than in 15th place hash1.hash[15] = 0x0; hash2.hash[15] = 0x1; if (hash1 == hash2) { std::cerr << "equal fail 3" << std::endl; return 1; } if (!(hash1 != hash2)) { std::cerr << "not equal fail 3" << std::endl; return 1; } if (!(hash1 < hash2)) { std::cerr << "less than fail 3" << std::endl; return 1; } if (hash1 > hash2) { std::cerr << "greater than fail 3" << std::endl; return 1; } if (!(hash1 <= hash2)) { std::cerr << "less than or equal fail 3" << std::endl; return 1; } if (hash1 >= hash2) { std::cerr << "greater than or equal fail 3" << std::endl; return 1; } return 0; } // generate random data. // put it into two different contexts in different lengths // make sure output is the same. int test4() { srand(345087209); unsigned char buffer[32*1024]; for (unsigned int i = 0; i < sizeof(buffer); i++) { buffer[i] = (unsigned char) (rand() % 256); } MD5Context context1; unsigned int offset = 0; while (offset < sizeof(buffer)) { unsigned int length = (int) (rand() % 256); if (offset + length > sizeof(buffer)) length = sizeof(buffer) - offset; context1.Update(buffer + offset, length); offset += length; } MD5Hash hash1; context1.Final(hash1); MD5Context context2; offset = 0; while (offset < sizeof(buffer)) { unsigned int length = (int) (rand() % 256); if (offset + length > sizeof(buffer)) length = sizeof(buffer) - offset; context2.Update(buffer + offset, length); offset += length; } MD5Hash hash2; context2.Final(hash2); if (hash1 != hash2) { std::cerr << "random hash1 = " << hash1 << std::endl; std::cerr << "random hash2 = " << hash2 << std::endl; return 1; } return 0; } int main() { setup_hasher(); if (test1()) { std::cerr << "FAILED: test1" << std::endl; return 1; } if (test2()) { std::cerr << "FAILED: test2" << std::endl; return 1; } if (test3()) { std::cerr << "FAILED: test3" << std::endl; return 1; } if (test4()) { std::cerr << "FAILED: test4" << std::endl; return 1; } std::cout << "SUCCESS: md5_test complete." << std::endl; return 0; } par2cmdline-turbo-1.5.0/src/par1fileformat.cpp000066400000000000000000000020341524160147200212560ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "libpar2internal.h" PAR1MAGIC par1_magic = {{'P', 'A', 'R', '\0', '\0', '\0', '\0', '\0'}}; par2cmdline-turbo-1.5.0/src/par1fileformat.h000066400000000000000000000043071524160147200207300ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef __PAR1FILEFORMAT_H__ #define __PAR1FILEFORMAT_H__ #ifdef _WIN32 #pragma pack(push, 1) #define PACKED #else #define PACKED __attribute__ ((packed)) #endif #ifdef _MSC_VER #pragma warning(disable:4200) #endif struct PAR1MAGIC {u8 magic[8];}PACKED; struct PAR1FILEHEADER { PAR1MAGIC magic; leu32 fileversion; leu32 programversion; MD5Hash controlhash; MD5Hash sethash; leu64 volumenumber; leu64 numberoffiles; leu64 filelistoffset; leu64 filelistsize; leu64 dataoffset; leu64 datasize; }PACKED; struct PAR1FILEENTRY { leu64 entrysize; leu64 status; leu64 filesize; MD5Hash hashfull; MD5Hash hash16k; leu16 name[]; }PACKED; enum FILEENTRYSTATUS { INPARITYVOLUME = 1, CHECKED = 2, }; #ifdef _MSC_VER #pragma warning(default:4200) #endif #ifdef _WIN32 #pragma pack(pop) #endif #undef PACKED // Operators for comparing the MAGIC values inline bool operator == (const PAR1MAGIC &left, const PAR1MAGIC &right) { return (0==memcmp(&left, &right, sizeof(left))); } inline bool operator != (const PAR1MAGIC &left, const PAR1MAGIC &right) { return !operator==(left, right); } extern PAR1MAGIC par1_magic; #endif //__PAR1FILEFORMAT_H__ par2cmdline-turbo-1.5.0/src/par1repairer.cpp000066400000000000000000001177701524160147200207550ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "libpar2internal.h" #ifdef _MSC_VER #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif #endif static u32 smartpar11 = 0x03000101; Par1Repairer::Par1Repairer(std::ostream &sout, std::ostream &serr, const NoiseLevel noiselevel) : sout(sout) , serr(serr) , noiselevel(noiselevel) , searchpath() , diskfilemap() , recoveryblocks() , filelist(0) , filelistsize(0) , blocksize(0) , chunksize(0) , sourcefiles() , extrafiles() , completefilecount(0) , renamedfilecount(0) , damagedfilecount(0) , missingfilecount(0) , verifylist() , backuplist() , parlist() , inputblocks() , outputblocks() , rs() , inputbuffersize(0) , inputbuffer(0) , outputbufferalignment(0) , outputbuffersize(0) , outputbuffer(0) , ignore16kfilehash(false) { setup_hasher(); } Par1Repairer::~Par1Repairer(void) { delete [] (u8*)inputbuffer; delete [] (u8*)outputbuffer; std::map::iterator i = recoveryblocks.begin(); while (i != recoveryblocks.end()) { DataBlock *datablock = i->second; delete datablock; ++i; } std::vector::iterator sourceiterator = sourcefiles.begin(); while (sourceiterator != sourcefiles.end()) { Par1RepairerSourceFile *sourcefile = *sourceiterator; delete sourcefile; ++sourceiterator; } sourceiterator = extrafiles.begin(); while (sourceiterator != extrafiles.end()) { Par1RepairerSourceFile *sourcefile = *sourceiterator; delete sourcefile; ++sourceiterator; } delete [] filelist; } Result Par1Repairer::Process(const size_t memorylimit, // basepath is not used by Par1 const u32 nthreads, // filethreads is not used by Par1 std::string parfilename, const std::vector &extrafiles, const bool dorepair, // derived from operation const bool purgefiles // skipdata is not used by Par1 // skipleaway is not used by Par1 ) { // Determine the searchpath from the location of the main PAR file std::string name; DiskFile::SplitFilename(parfilename, searchpath, name); // Load the main PAR file if (!LoadRecoveryFile(searchpath + name)) return eLogicError; // Load other PAR files related to the main PAR file if (!LoadOtherRecoveryFiles(parfilename)) return eLogicError; // Load any extra PAR files specified on the command line if (!LoadExtraRecoveryFiles(extrafiles)) return eLogicError; if (noiselevel > nlQuiet) sout << "\nVerifying source files:\n" << std::endl; // Check for the existence of and verify each of the source files if (!VerifySourceFiles()) return eFileIOError; if (completefilecount nlQuiet) sout << "\nScanning extra files:\n" << std::endl; // Check any other files specified on the command line to see if they are // actually copies of the source files that have the wrong filename if (!VerifyExtraFiles(extrafiles)) return eLogicError; } // Find out how much data we have found UpdateVerificationResults(); if (noiselevel > nlSilent) sout << '\n'; // Check the verification results and report the details if (!CheckVerificationResults()) return eRepairNotPossible; // Are any of the files incomplete if (completefilecount nlSilent) sout << '\n'; // Rename any damaged or missnamed target files. if (!RenameTargetFiles()) return eFileIOError; // Are we still missing any files if (completefilecount nlSilent) sout << '\n'; // Set the total amount of data to be processed. ProgressMeter progress(sout, "Repairing: ", blocksize * sourcefiles.size() * verifylist.size()); // Start at an offset of 0 within a block. u64 blockoffset = 0; while (blockoffset < blocksize) // Continue until the end of the block. { // Work out how much data to process this time. size_t blocklength = (size_t)std::min((u64)chunksize, blocksize-blockoffset); // Read source data, process it through the RS matrix and write it to disk. if (!ProcessData(blockoffset, blocklength, progress)) { // Delete all of the partly reconstructed files DeleteIncompleteTargetFiles(); return eFileIOError; } // Advance to the need offset within each block blockoffset += blocklength; } if (noiselevel > nlSilent) sout << "\nVerifying repaired files:\n" << std::endl; // Verify that all of the reconstructed target files are now correct if (!VerifyTargetFiles()) { // Delete all of the partly reconstructed files DeleteIncompleteTargetFiles(); return eFileIOError; } } // Are all of the target files now complete? if (completefilecount nlSilent) sout << "\nRepair complete." << std::endl; } } else { return eRepairPossible; } } if (purgefiles == true) { RemoveBackupFiles(); RemoveParFiles(); } return eSuccess; } bool Par1Repairer::LoadRecoveryFile(std::string filename) { // Skip the file if it has already been processed if (diskfilemap.Find(filename) != 0) { return true; } DiskFile *diskfile = new DiskFile(sout, serr, output_lock); // Open the file if (!diskfile->Open(filename)) { // If we could not open the file, ignore the error and // proceed to the next file delete diskfile; return true; } if (noiselevel > nlSilent) { std::string path; std::string name; DiskFile::SplitFilename(filename, path, name); sout << "Loading \"" << name << "\"." << std::endl; } parlist.push_back(filename); bool havevolume = false; u32 volumenumber = 0; // How big is the file u64 filesize = diskfile->FileSize(); if (filesize >= sizeof(PAR1FILEHEADER)) { // Allocate a buffer to read data into size_t buffersize = (size_t)std::min((u64)1048576, filesize); u8 *buffer = new u8[buffersize]; do { PAR1FILEHEADER fileheader; if (!diskfile->Read(0, &fileheader, sizeof(fileheader))) break; // Is this really a PAR file? if (fileheader.magic != par1_magic) break; // Is the version number correct? if (fileheader.fileversion != 0x00010000) break; ignore16kfilehash = (fileheader.programversion == smartpar11); // Prepare to carry out MD5 Hash check of the Control Hash MD5Context context; u64 offset = offsetof(PAR1FILEHEADER, sethash); // Process until the end of the file is reached while (offset < filesize) { // How much data should we read? size_t want = (size_t)std::min((u64)buffersize, filesize-offset); if (!diskfile->Read(offset, buffer, want)) break; context.Update(buffer, want); offset += want; } // Did we read the whole file if (offset < filesize) break; // Compute the hash value MD5Hash hash; context.Final(hash); // Is it correct? if (hash != fileheader.controlhash) break; // Check that the volume number is ok if (fileheader.volumenumber >= 256) break; // Are there any files? if (fileheader.numberoffiles == 0 || fileheader.filelistoffset < sizeof(PAR1FILEHEADER) || fileheader.filelistsize == 0) break; // Verify that the file list and data offsets are ok if ((fileheader.filelistoffset + fileheader.filelistsize > filesize) || (fileheader.datasize && (fileheader.dataoffset < sizeof(fileheader) || fileheader.dataoffset + fileheader.datasize > filesize)) || (fileheader.datasize && ((fileheader.filelistoffset <= fileheader.dataoffset && fileheader.dataoffset < fileheader.filelistoffset+fileheader.filelistsize) || (fileheader.dataoffset <= fileheader.filelistoffset && fileheader.filelistoffset < fileheader.dataoffset + fileheader.datasize)))) break; // Check the size of the file list if (fileheader.filelistsize > 200000) break; // If we already have a copy of the file list, make sure this one has the same size if (filelist != 0 && filelistsize != fileheader.filelistsize) break; // Allocate a buffer to hold a copy of the file list unsigned char *temp = new unsigned char[(size_t)fileheader.filelistsize]; // Read the file list into the buffer if (!diskfile->Read(fileheader.filelistoffset, temp, (size_t)fileheader.filelistsize)) { delete [] temp; break; } // If we already have a copy of the file list, make sure this copy is identical if (filelist != 0) { bool match = (0 == memcmp(filelist, temp, filelistsize)); delete [] temp; if (!match) break; } else { // Prepare to scan the file list unsigned char *current = temp; size_t remaining = (size_t)fileheader.filelistsize; unsigned int fileindex = 0; // Allocate a buffer to copy each file entry into so that // all fields will be correctly aligned in memory. PAR1FILEENTRY *fileentry = (PAR1FILEENTRY*)new u64[(remaining + sizeof(u64)-1)/sizeof(u64)]; // Process until we run out of files or data while (remaining > 0 && fileindex < fileheader.numberoffiles) { // Copy fixed portion of file entry memcpy((void*)fileentry, (void*)current, sizeof(PAR1FILEENTRY)); // Is there enough data remaining if (remaining < sizeof(fileentry->entrysize) || remaining < fileentry->entrysize) break; // Check the length of the filename if (fileentry->entrysize <= sizeof(PAR1FILEENTRY)) break; // Check the file size if (blocksize < fileentry->filesize) blocksize = fileentry->filesize; // Copy whole of file entry memcpy((void*)fileentry, (void*)current, (size_t)(u64)fileentry->entrysize); // Create source file and add it to the appropriate list Par1RepairerSourceFile *sourcefile = new Par1RepairerSourceFile(sout, serr, noiselevel, fileentry, searchpath); if (fileentry->status & INPARITYVOLUME) { sourcefiles.push_back(sourcefile); } else { extrafiles.push_back(sourcefile); } remaining -= (size_t)fileentry->entrysize; current += (size_t)fileentry->entrysize; fileindex++; } delete [] (u64*)fileentry; // Did we find the correct number of files if (fileindex < fileheader.numberoffiles) { std::vector::iterator i = sourcefiles.begin(); while (i != sourcefiles.end()) { Par1RepairerSourceFile *sourcefile = *i; delete sourcefile; ++i; } sourcefiles.clear(); i = extrafiles.begin(); while (i != extrafiles.end()) { Par1RepairerSourceFile *sourcefile = *i; delete sourcefile; ++i; } extrafiles.clear(); delete [] temp; break; } filelist = temp; filelistsize = (u32)fileheader.filelistsize; } // Is this a recovery volume? if (fileheader.volumenumber > 0) { // Make sure there is data and that it is the correct size if (fileheader.dataoffset == 0 || fileheader.datasize != blocksize) break; // What volume number is this? volumenumber = (u32)(fileheader.volumenumber - 1); // Do we already have this volume? if (recoveryblocks.find(volumenumber) == recoveryblocks.end()) { // Create a data block DataBlock *datablock = new DataBlock; datablock->SetLength(blocksize); datablock->SetLocation(diskfile, fileheader.dataoffset); // Store it in the map recoveryblocks.insert(std::pair(volumenumber, datablock)); havevolume = true; } } } while (false); delete [] buffer; } // We have finished with the file for now diskfile->Close(); if (noiselevel > nlQuiet) { if (havevolume) { sout << "Loaded recovery volume " << volumenumber << std::endl; } else { sout << "No new recovery volumes found" << std::endl; } } // Remember that the file was processed bool success = diskfilemap.Insert(diskfile); assert(success); return true; } bool Par1Repairer::LoadOtherRecoveryFiles(std::string filename) { // Split the original PAR filename into path and name parts std::string path; std::string name; DiskFile::SplitFilename(filename, path, name); // Find the file extension std::string::size_type where = name.find_last_of('.'); if (where != std::string::npos) { // remove it name = name.substr(0, where); } // Search for additional PAR files std::string wildcard = name + ".???"; std::unique_ptr< std::list > files( DiskFile::FindFiles(path, wildcard, false) ); for (std::list::const_iterator s=files->begin(); s!=files->end(); ++s) { std::string filename = *s; // Find the file extension where = filename.find_last_of('.'); if (where != std::string::npos) { std::string tail = filename.substr(where+1); // Check the file extension is the correct form if ((tail[0] == 'P' || tail[0] == 'p') && ( ((tail[1] == 'A' || tail[1] == 'a') && (tail[2] == 'R' || tail[2] == 'r')) || (isdigit(tail[1]) && isdigit(tail[2])) )) { LoadRecoveryFile(filename); } } } //delete files; This is taken care of by unique_ptr<>. return true; } // Load packets from any other PAR files whose names are given on the command line bool Par1Repairer::LoadExtraRecoveryFiles(const std::vector &extrafiles) { for (std::vector::const_iterator i=extrafiles.begin(); i!=extrafiles.end(); i++) { std::string filename = *i; // Find the file extension std::string::size_type where = filename.find_last_of('.'); if (where != std::string::npos) { std::string tail = filename.substr(where+1); // Check the file extension is the correct form if ((tail[0] == 'P' || tail[0] == 'p') && ( ((tail[1] == 'A' || tail[1] == 'a') && (tail[2] == 'R' || tail[2] == 'r')) || (isdigit(tail[1]) && isdigit(tail[2])) )) { LoadRecoveryFile(filename); } } } return true; } // Attempt to verify all of the source files bool Par1Repairer::VerifySourceFiles(void) { bool finalresult = true; std::vector::iterator sourceiterator = sourcefiles.begin(); while (sourceiterator != sourcefiles.end()) { Par1RepairerSourceFile *sourcefile = *sourceiterator; std::string filename = sourcefile->FileName(); // Check to see if we have already used this file if (diskfilemap.Find(filename) != 0) { std::string path; std::string name; DiskFile::SplitRelativeFilename(filename, path, name); // The file has already been used! serr << "Source file " << name << " is a duplicate." << std::endl; finalresult = false; } else { DiskFile *diskfile = new DiskFile(sout, serr, output_lock); // Does the target file exist if (diskfile->Open(filename)) { // Yes. Record that fact. sourcefile->SetTargetExists(true); // Remember that the DiskFile is the target file sourcefile->SetTargetFile(diskfile); // Remember that we have processed this file bool success = diskfilemap.Insert(diskfile); assert(success); // Do the actual verification if (!VerifyDataFile(diskfile, sourcefile)) finalresult = false; // We have finished with the file for now diskfile->Close(); // Find out how much data we have found UpdateVerificationResults(); } else { // The file does not exist. delete diskfile; if (noiselevel > nlSilent) { std::string path; std::string name; DiskFile::SplitFilename(filename, path, name); sout << "Target: \"" << name << "\" - missing." << std::endl; } } } ++sourceiterator; } return finalresult; } // Scan any extra files specified on the command line bool Par1Repairer::VerifyExtraFiles(const std::vector &extrafiles) { for (std::vector::const_iterator i=extrafiles.begin(); i!=extrafiles.end() && completefilecountOpen(filename)) { delete diskfile; continue; } // Remember that we have processed this file bool success = diskfilemap.Insert(diskfile); assert(success); // Do the actual verification VerifyDataFile(diskfile, 0); // Ignore errors // We have finished with the file for now diskfile->Close(); // Find out how much data we have found UpdateVerificationResults(); } } } return true; } bool Par1Repairer::VerifyDataFile(DiskFile *diskfile, Par1RepairerSourceFile *sourcefile) { Par1RepairerSourceFile *match = 0; std::string path; std::string name; DiskFile::SplitFilename(diskfile->FileName(), path, name); // How big is the file we are checking u64 filesize = diskfile->FileSize(); if (filesize == 0) { if (noiselevel > nlSilent) { sout << "Target: \"" << name << "\" - empty." << std::endl; } return true; } // Search for the first file that is the correct size std::vector::iterator sourceiterator = sourcefiles.begin(); while (sourceiterator != sourcefiles.end() && filesize != (*sourceiterator)->FileSize()) { ++sourceiterator; } // Are there any files that are the correct size? if (sourceiterator != sourcefiles.end()) { // Allocate a buffer to compute the file hash size_t buffersize = (size_t)std::min((u64)1048576, filesize); char *buffer = new char[buffersize]; // Read the first 16k of the file size_t want = (size_t)std::min((u64)16384, filesize); if (!diskfile->Read(0, buffer, want)) { delete [] buffer; return false; } // Compute the MD5 hash of the first 16k MD5Context contextfull; contextfull.Update(buffer, want); MD5Context context16k = contextfull; MD5Hash hash16k; context16k.Final(hash16k); if (!ignore16kfilehash) { // Search for the first file that has the correct 16k hash while (sourceiterator != sourcefiles.end() && (filesize != (*sourceiterator)->FileSize() || hash16k != (*sourceiterator)->Hash16k())) { ++sourceiterator; } } // Are there any files with the correct 16k hash? if (sourceiterator != sourcefiles.end()) { // Compute the MD5 hash of the whole file if (filesize > 16384) { u64 offset = 16384; std::string message = "Scanning: \""; message.append(name).append("\": "); ProgressMeter progress(sout, message, filesize); while (offset < filesize) { want = (size_t)std::min((u64)buffersize, filesize-offset); if (!diskfile->Read(offset, buffer, want)) { delete [] buffer; return false; } contextfull.Update(buffer, want); offset += want; if (noiselevel > nlQuiet) progress.Update(offset); } } MD5Hash hashfull; contextfull.Final(hashfull); // Search for the first file that has the correct full hash while (sourceiterator != sourcefiles.end() && (filesize != (*sourceiterator)->FileSize() || (!ignore16kfilehash && hash16k != (*sourceiterator)->Hash16k()) || hashfull != (*sourceiterator)->HashFull())) { ++sourceiterator; } // Are there any files with the correct full hash? if (sourceiterator != sourcefiles.end()) { // If a source file was originally specified, check to see if it is a match if (sourcefile != 0 && sourcefile->FileSize() == filesize && (ignore16kfilehash || sourcefile->Hash16k() == hash16k) && sourcefile->HashFull() == hashfull) { match = sourcefile; } else { // Search for a file which matches and has not already been matched while (sourceiterator != sourcefiles.end() && (filesize != (*sourceiterator)->FileSize() || (!ignore16kfilehash && hash16k != (*sourceiterator)->Hash16k()) || hashfull != (*sourceiterator)->HashFull() || (*sourceiterator)->GetCompleteFile() != 0)) { ++sourceiterator; } // Did we find a match if (sourceiterator != sourcefiles.end()) { match = *sourceiterator; } } } } delete [] buffer; } // Did we find a match if (match != 0) { match->SetCompleteFile(diskfile); if (noiselevel > nlSilent) { // Was the match the file we were originally looking for if (match == sourcefile) { sout << "Target: \"" << name << "\" - found." << std::endl; } // Were we looking for a specific file else if (sourcefile != 0) { std::string targetname; DiskFile::SplitFilename(sourcefile->FileName(), path, targetname); sout << "Target: \"" << name << "\" - is a match for \"" << targetname << "\"." << std::endl; } } else { // WARNING - this branch does nothing. The "if" above // makes sure of that. I don't know if it's the result // of a bad merge or what. I couldn't figure out what // the original author meant. If you can figure that // out, please fix it! if (noiselevel > nlSilent) { std::string targetname; DiskFile::SplitFilename(match->FileName(), path, targetname); sout << "File: \"" << name << "\" - is a match for \"" << targetname << "\"." << std::endl; } } } else { if (noiselevel > nlSilent) sout << "File: \"" << name << "\" - no data found." << std::endl; } return true; } void Par1Repairer::UpdateVerificationResults(void) { completefilecount = 0; renamedfilecount = 0; damagedfilecount = 0; missingfilecount = 0; std::vector::iterator sf = sourcefiles.begin(); // Check the recoverable files while (sf != sourcefiles.end()) { Par1RepairerSourceFile *sourcefile = *sf; // Was a perfect match for the file found if (sourcefile->GetCompleteFile() != 0) { // Is it the target file or a different one if (sourcefile->GetCompleteFile() == sourcefile->GetTargetFile()) { completefilecount++; } else { renamedfilecount++; } } else { // Does the target file exist if (sourcefile->GetTargetExists()) { damagedfilecount++; } else { missingfilecount++; } } ++sf; } } bool Par1Repairer::CheckVerificationResults(void) { // Is repair needed if (completefilecount < sourcefiles.size() || renamedfilecount > 0 || damagedfilecount > 0 || missingfilecount > 0) { if (noiselevel > nlSilent) sout << "Repair is required." << std::endl; if (noiselevel > nlQuiet) { if (renamedfilecount > 0) sout << renamedfilecount << " file(s) have the wrong name." << std::endl; if (missingfilecount > 0) sout << missingfilecount << " file(s) are missing." << std::endl; if (damagedfilecount > 0) sout << damagedfilecount << " file(s) exist but are damaged." << std::endl; if (completefilecount > 0) sout << completefilecount << " file(s) are ok." << std::endl; } // Is repair possible if (recoveryblocks.size() >= damagedfilecount+missingfilecount) { if (noiselevel > nlSilent) sout << "Repair is possible." << std::endl; if (noiselevel > nlQuiet) { if (recoveryblocks.size() > damagedfilecount+missingfilecount) sout << "You have an excess of " << (u32)recoveryblocks.size() - (damagedfilecount+missingfilecount) << " recovery files." << std::endl; if (damagedfilecount+missingfilecount > 0) sout << damagedfilecount+missingfilecount << " recovery files will be used to repair." << std::endl; else if (recoveryblocks.size()) sout << "None of the recovery files will be used for the repair." << std::endl; } return true; } else { if (noiselevel > nlSilent) { sout << "Repair is not possible.\n" "You need " << damagedfilecount+missingfilecount - recoveryblocks.size() << " more recovery files to be able to repair." << std::endl; } return false; } } else { if (noiselevel > nlSilent) sout << "All files are correct, repair is not required." << std::endl; return true; } return true; } bool Par1Repairer::RenameTargetFiles(void) { std::vector::iterator sf = sourcefiles.begin(); // Rename any damaged target files while (sf != sourcefiles.end()) { Par1RepairerSourceFile *sourcefile = *sf; // If the target file exists but is not a complete version of the file if (sourcefile->GetTargetExists() && sourcefile->GetTargetFile() != sourcefile->GetCompleteFile()) { DiskFile *targetfile = sourcefile->GetTargetFile(); // Rename it diskfilemap.Remove(targetfile); if (!targetfile->Rename()) return false; backuplist.push_back(targetfile); bool success = diskfilemap.Insert(targetfile); assert(success); // We no longer have a target file sourcefile->SetTargetExists(false); sourcefile->SetTargetFile(0); } ++sf; } sf = sourcefiles.begin(); // Rename any missnamed but complete versions of the files while (sf != sourcefiles.end()) { Par1RepairerSourceFile *sourcefile = *sf; // If there is no targetfile and there is a complete version if (sourcefile->GetTargetFile() == 0 && sourcefile->GetCompleteFile() != 0) { DiskFile *targetfile = sourcefile->GetCompleteFile(); // Rename it diskfilemap.Remove(targetfile); if (!targetfile->Rename(sourcefile->FileName())) return false; bool success = diskfilemap.Insert(targetfile); assert(success); // This file is now the target file sourcefile->SetTargetExists(true); sourcefile->SetTargetFile(targetfile); // We have one more complete file completefilecount++; } ++sf; } return true; } // Work out which files are being repaired, create them, and allocate // target DataBlocks to them, and remember them for later verification. bool Par1Repairer::CreateTargetFiles(void) { std::vector::iterator sf = sourcefiles.begin(); // Create any missing target files while (sf != sourcefiles.end()) { Par1RepairerSourceFile *sourcefile = *sf; // If the file does not exist if (!sourcefile->GetTargetExists()) { DiskFile *targetfile = new DiskFile(sout, serr, output_lock); std::string filename = sourcefile->FileName(); u64 filesize = sourcefile->FileSize(); // Create the target file if (!targetfile->Create(filename, filesize)) { delete targetfile; return false; } // This file is now the target file sourcefile->SetTargetExists(true); sourcefile->SetTargetFile(targetfile); // Remember this file bool success = diskfilemap.Insert(targetfile); assert(success); sourcefile->SetTargetBlock(targetfile); // Add the file to the list of those that will need to be verified // once the repair has completed. verifylist.push_back(sourcefile); } ++sf; } return true; } // Work out which data blocks are available, which need to be recreated, // and compute the appropriate Reed Solomon matrix. bool Par1Repairer::ComputeRSmatrix(void) { inputblocks.resize(sourcefiles.size()); // The DataBlocks that will read from disk outputblocks.resize(verifylist.size()); // Those DataBlocks that will re recalculated std::vector::iterator inputblock = inputblocks.begin(); std::vector::iterator outputblock = outputblocks.begin(); // Build an array listing which source data blocks are present and which are missing std::vector present; present.resize(sourcefiles.size()); std::vector::iterator sourceiterator = sourcefiles.begin(); std::vector::iterator pres = present.begin(); // Iterate through all source files while (sourceiterator != sourcefiles.end()) { Par1RepairerSourceFile *sourcefile = *sourceiterator; DataBlock *sourceblock = sourcefile->SourceBlock(); DataBlock *targetblock = sourcefile->TargetBlock(); // Was this block found if (sourceblock->IsSet()) { // Open the file the block was found in. if (!sourceblock->Open()) { return false; } // Record that the block was found *pres = true; // Add the block to the list of those which will be read // as input (and which might also need to be copied). *inputblock = sourceblock; ++inputblock; } else { // Record that the block was missing *pres = false; // Add the block to the list of those to be written *outputblock = targetblock; ++outputblock; } ++sourceiterator; ++pres; } // Set the number of source blocks and which of them are present if (!rs.SetInput(present, sout, serr)) { return false; } // Start iterating through the available recovery packets std::map::iterator recoveryiterator = recoveryblocks.begin(); // Continue to fill the remaining list of data blocks to be read while (inputblock != inputblocks.end()) { // Get the next available recovery block u32 exponent = recoveryiterator->first; DataBlock *recoveryblock = recoveryiterator->second; // Make sure the file is open if (!recoveryblock->Open()) { return false; } // Add the recovery block to the list of blocks that will be read *inputblock = recoveryblock; // Record that the corresponding exponent value is the next one // to use in the RS matrix if (!rs.SetOutput(true, (u16)exponent)) { return false; } ++inputblock; ++recoveryiterator; } // If we need to, compute and solve the RS matrix if (verifylist.empty()) { return true; } bool success = rs.Compute(noiselevel, sout, serr); return success; } // Allocate memory buffers for reading and writing data to disk. bool Par1Repairer::AllocateBuffers(size_t memorylimit) { // Would single pass processing use too much memory if (blocksize * verifylist.size() > memorylimit) { // Pick a size that is small enough chunksize = ~3 & (memorylimit / verifylist.size()); } else { chunksize = (size_t)blocksize; } // Allocate the two buffers inputbuffersize = (size_t)chunksize; inputbuffer = new u8[inputbuffersize]; outputbufferalignment = (inputbuffersize + sizeof(u32)-1) & ~(sizeof(u32)-1); outputbuffersize = outputbufferalignment * verifylist.size(); outputbuffer = new u8[outputbuffersize]; if (inputbuffer == NULL || outputbuffer == NULL) { serr << "Could not allocate buffer memory." << std::endl; return false; } return true; } // Read source data, process it through the RS matrix and write it to disk. bool Par1Repairer::ProcessData(u64 blockoffset, size_t blocklength, ProgressMeter &progress) { u64 totalwritten = 0; // Clear the output buffer memset(outputbuffer, 0, outputbuffersize); std::vector::iterator inputblock = inputblocks.begin(); u32 inputindex = 0; // Are there any blocks which need to be reconstructed if (!verifylist.empty()) { // For each input block while (inputblock != inputblocks.end()) { // Read data from the current input block if (!(*inputblock)->ReadData(blockoffset, blocklength, inputbuffer)) return false; // For each output block for (u32 outputindex=0; outputindex nlQuiet) progress.Add(blocklength); } ++inputblock; ++inputindex; } } if (noiselevel > nlQuiet) sout << "Writing recovered data\r"; // For each output block that has been recomputed std::vector::iterator outputblock = outputblocks.begin(); for (u32 outputindex=0; outputindexWriteData(blockoffset, blocklength, outbuf, wrote)) return false; totalwritten += wrote; ++outputblock; } if (noiselevel > nlQuiet) sout << "Wrote " << totalwritten << " bytes to disk" << std::endl; return true; } // Verify that all of the reconstructed target files are now correct bool Par1Repairer::VerifyTargetFiles(void) { bool finalresult = true; // Verify the target files in alphabetical order // std::sort(verifylist.begin(), verifylist.end(), SortSourceFilesByFileName); // Iterate through each file in the verification list for (std::list::iterator sf = verifylist.begin(); sf != verifylist.end(); ++sf) { Par1RepairerSourceFile *sourcefile = *sf; DiskFile *targetfile = sourcefile->GetTargetFile(); // Close the file if (targetfile->IsOpen()) targetfile->Close(); // Say we don't have a complete version of the file sourcefile->SetCompleteFile(0); // Re-open the target file if (!targetfile->Open()) { finalresult = false; continue; } // Verify the file again if (!VerifyDataFile(targetfile, sourcefile)) finalresult = false; // Close the file again targetfile->Close(); // Find out how much data we have found UpdateVerificationResults(); } return finalresult; } // Delete all of the partly reconstructed files bool Par1Repairer::DeleteIncompleteTargetFiles(void) { std::list::iterator sf = verifylist.begin(); // Iterate through each file in the verification list while (sf != verifylist.end()) { Par1RepairerSourceFile *sourcefile = *sf; if (sourcefile->GetTargetExists()) { DiskFile *targetfile = sourcefile->GetTargetFile(); // Close and delete the file if (targetfile->IsOpen()) targetfile->Close(); targetfile->Delete(); // Forget the file diskfilemap.Remove(targetfile); delete targetfile; // There is no target file sourcefile->SetTargetExists(false); sourcefile->SetTargetFile(0); } ++sf; } return true; } bool Par1Repairer::RemoveBackupFiles(void) { std::vector::iterator bf = backuplist.begin(); if (noiselevel > nlSilent && bf != backuplist.end()) { sout << "\nPurge backup files." << std::endl; } // Iterate through each file in the backuplist while (bf != backuplist.end()) { if (noiselevel > nlSilent) { std::string name; std::string path; DiskFile::SplitFilename((*bf)->FileName(), path, name); sout << "Remove \"" << name << "\"." << std::endl; } if ((*bf)->IsOpen()) (*bf)->Close(); (*bf)->Delete(); ++bf; } return true; } bool Par1Repairer::RemoveParFiles(void) { if (noiselevel > nlSilent && !parlist.empty()) { sout << "\nPurge par files." << std::endl; } for (std::list::const_iterator s=parlist.begin(); s!=parlist.end(); ++s) { DiskFile *diskfile = new DiskFile(sout, serr, output_lock); if (diskfile->Open(*s)) { if (noiselevel > nlSilent) { std::string name; std::string path; DiskFile::SplitFilename((*s), path, name); sout << "Remove \"" << name << "\"." << std::endl; } if (diskfile->IsOpen()) diskfile->Close(); diskfile->Delete(); } delete diskfile; } return true; } par2cmdline-turbo-1.5.0/src/par1repairer.h000066400000000000000000000127531524160147200204150ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef __PAR1REPAIRER_H__ #define __PAR1REPAIRER_H__ #include "reedsolomon.h" class Par1Repairer { public: Par1Repairer(std::ostream &sout, std::ostream &serr, const NoiseLevel noiselevel); ~Par1Repairer(void); Result Process(const size_t memorylimit, // basepath is not used by Par1 const u32 nthreads, // filethreads is not used by Par1 std::string parfilename, const std::vector &extrafiles, const bool dorepair, // derived from operation const bool purgefiles // skipdata is not used by Par1 // skipleaway is not used by Par1 ); protected: // Load the main PAR file bool LoadRecoveryFile(std::string filename); // Load other PAR files related to the main PAR file bool LoadOtherRecoveryFiles(std::string filename); // Load any extra PAR files specified on the command line bool LoadExtraRecoveryFiles(const std::vector &extrafiles); // Check for the existence of and verify each of the source files bool VerifySourceFiles(void); // Check any other files specified on the command line to see if they are // actually copies of the source files that have the wrong filename bool VerifyExtraFiles(const std::vector &extrafiles); // Attempt to match the data in the DiskFile with the source file bool VerifyDataFile(DiskFile *diskfile, Par1RepairerSourceFile *sourcefile); // Determine how many files are missing, damaged etc. void UpdateVerificationResults(void); // Check the verification results and report the details bool CheckVerificationResults(void); // Rename any damaged or missnamed target files. bool RenameTargetFiles(void); // Work out which files are being repaired, create them, and allocate // target DataBlocks to them, and remember them for later verification. bool CreateTargetFiles(void); // Work out which data blocks are available, which need to be recreated, // and compute the appropriate Reed Solomon matrix. bool ComputeRSmatrix(void); // Allocate memory buffers for reading and writing data to disk. bool AllocateBuffers(size_t memorylimit); // Read source data, process it through the RS matrix and write it to disk. bool ProcessData(u64 blockoffset, size_t blocklength, ProgressMeter &progress); // Verify that all of the reconstructed target files are now correct bool VerifyTargetFiles(void); // Delete all of the partly reconstructed files bool DeleteIncompleteTargetFiles(void); // list the files needing verification bool RemoveBackupFiles(void); bool RemoveParFiles(void); protected: std::ostream &sout; // stream for output (for commandline, this is cout) std::ostream &serr; // stream for errors (for commandline, this is cerr) std::mutex output_lock; const NoiseLevel noiselevel; // How noisy we should be std::string searchpath; // Where to find files on disk DiskFileMap diskfilemap; // Map from filename to DiskFile std::map recoveryblocks; // The recovery data (mapped by exponent) unsigned char *filelist; u32 filelistsize; u64 blocksize; // The size of recovery and data blocks u64 chunksize; // How much of a block can be processed. std::vector sourcefiles; std::vector extrafiles; u32 completefilecount; u32 renamedfilecount; u32 damagedfilecount; u32 missingfilecount; std::list verifylist; std::vector backuplist; // Those source files backups std::list parlist; // list of par files std::vector inputblocks; // Which DataBlocks will be read from disk std::vector outputblocks; // Which DataBlocks have to calculated using RS ReedSolomon rs; // The Reed Solomon matrix. size_t inputbuffersize; u8 *inputbuffer; // Buffer for reading DataBlocks (chunksize) size_t outputbufferalignment; size_t outputbuffersize; u8 *outputbuffer; // Buffer for writing DataBlocks (chunksize * missingblockcount) bool ignore16kfilehash; // The 16k file hash values may be invalid }; #endif // __PAR1REPAIRER_H__ par2cmdline-turbo-1.5.0/src/par1repairersourcefile.cpp000066400000000000000000000063101524160147200230210ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "libpar2internal.h" #ifdef _MSC_VER #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif #endif Par1RepairerSourceFile::Par1RepairerSourceFile(std::ostream &sout, std::ostream &serr, const NoiseLevel noiselevel, PAR1FILEENTRY *fileentry, const std::string &searchpath) : hashfull(fileentry->hashfull) , hash16k(fileentry->hash16k) { targetexists = false; targetfile = 0; completefile = 0; filesize = fileentry->filesize; u32 namelen = (u32)((fileentry->entrysize - offsetof(PAR1FILEENTRY, name)) / 2); for (u32 index=0; indexname[index]; if (ch >= 256) { // Convert the Unicode character to two characters filename += ch & 255; filename += ch >> 8; } else { filename += ch & 255; } } // Translate any characters the OS does not like; filename = DescriptionPacket::TranslateFilenameFromPar2ToLocal(sout, serr, noiselevel, filename); // Strip the path from the filename std::string::size_type where; if (std::string::npos != (where = filename.find_last_of(PATHSEP)) || std::string::npos != (where = filename.find_last_of(ALTPATHSEP)) #ifdef _WIN32 || std::string::npos != (where = filename.find_last_of(':')) #endif ) { filename = filename.substr(where+1); } filename = searchpath + filename; } Par1RepairerSourceFile::~Par1RepairerSourceFile(void) { } void Par1RepairerSourceFile::SetTargetFile(DiskFile *diskfile) { targetfile = diskfile; } DiskFile* Par1RepairerSourceFile::GetTargetFile(void) const { return targetfile; } void Par1RepairerSourceFile::SetTargetExists(bool exists) { targetexists = exists; } bool Par1RepairerSourceFile::GetTargetExists(void) const { return targetexists; } void Par1RepairerSourceFile::SetCompleteFile(DiskFile *diskfile) { completefile = diskfile; sourceblock.SetLocation(diskfile, 0); sourceblock.SetLength(diskfile ? diskfile->FileSize() : 0); } DiskFile* Par1RepairerSourceFile::GetCompleteFile(void) const { return completefile; } void Par1RepairerSourceFile::SetTargetBlock(DiskFile *diskfile) { targetblock.SetLocation(diskfile, 0); targetblock.SetLength(diskfile->FileSize()); } par2cmdline-turbo-1.5.0/src/par1repairersourcefile.h000066400000000000000000000053371524160147200224760ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef __PAR1REPAIRERSOURCEFILE_H__ #define __PAR1REPAIRERSOURCEFILE_H__ // The Par1RepairerSourceFile object is used during verification and repair // to record details about a particular source file and the data blocks // for that file. class Par1RepairerSourceFile { public: // Construct the object and set the description and verification packets Par1RepairerSourceFile(std::ostream &sout, std::ostream &serr, const NoiseLevel noiselevel, PAR1FILEENTRY *fileentry, const std::string &searchpath); ~Par1RepairerSourceFile(void); std::string FileName(void) const {return filename;} u64 FileSize(void) const {return filesize;} const MD5Hash& HashFull(void) const {return hashfull;} const MD5Hash& Hash16k(void) const {return hash16k;} // Set/Get which DiskFile will contain the final repaired version of the file void SetTargetFile(DiskFile *diskfile); DiskFile* GetTargetFile(void) const; // Set/Get whether or not the target file actually exists void SetTargetExists(bool exists); bool GetTargetExists(void) const; // Set/Get which DiskFile contains a full undamaged version of the source file void SetCompleteFile(DiskFile *diskfile); DiskFile* GetCompleteFile(void) const; void SetTargetBlock(DiskFile *diskfile); DataBlock* SourceBlock(void) {return &sourceblock;} DataBlock* TargetBlock(void) {return &targetblock;} protected: std::string filename; u64 filesize; MD5Hash hashfull; MD5Hash hash16k; DataBlock sourceblock; DataBlock targetblock; bool targetexists; // Whether the target file exists DiskFile *targetfile; // The final version of the file DiskFile *completefile; // A complete version of the file }; #endif // __PAR1REPAIRERSOURCEFILE_H__ par2cmdline-turbo-1.5.0/src/par2cmdline.cpp000066400000000000000000000102751524160147200205500ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "libpar2.h" #include "commandline.h" // This is included here, so that cout and cerr are not used elsewhere. #include #ifdef _MSC_VER #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif #endif #ifdef _WIN32 #include "utf8.h" int wmain(int argc, wchar_t* wargv[]) #else int main(int argc, char* argv[]) #endif { #ifdef _MSC_VER // Memory leak checking _CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | _CRTDBG_ALLOC_MEM_DF | /*_CRTDBG_CHECK_CRT_DF | */_CRTDBG_DELAY_FREE_MEM_DF | _CRTDBG_LEAK_CHECK_DF); #endif #ifdef _WIN32 SetConsoleOutputCP(CP_UTF8); utf8::WideToUtf8ArgsAdapter wargsAdapter{ argc, wargv }; auto argv = wargsAdapter.GetUtf8Args(); #endif // check sizeof integers static_assert(sizeof(u8) == 1 && sizeof(i8) == 1 && sizeof(u16) == 2 && sizeof(i16) == 2 && sizeof(u32) == 4 && sizeof(i32) == 4 && sizeof(u64) == 8 && sizeof(i64) == 8, "Error: the assumed sizes of integers is wrong!"); // We only output using C++ iostreams std::ios::sync_with_stdio(false); // Parse the command line CommandLine *commandline = new CommandLine; Result result = eInvalidCommandLineArguments; if (commandline->Parse(argc, argv)) { // Which operation was selected switch (commandline->GetOperation()) { case CommandLine::opCreate: // Create recovery data result = par2create(std::cout, std::cerr, commandline->GetNoiseLevel(), commandline->GetMemoryLimit(), commandline->GetBasePath(), commandline->GetNumThreads(), commandline->GetFileThreads(), commandline->GetParFilename(), commandline->GetExtraFiles(), commandline->GetBlockSize(), commandline->GetFirstRecoveryBlock(), commandline->GetRecoveryFileScheme(), commandline->GetRecoveryFileCount(), commandline->GetRecoveryBlockCount() ); break; case CommandLine::opVerify: case CommandLine::opRepair: { // Verify or Repair damaged files switch (commandline->GetVersion()) { case CommandLine::verPar1: result = par1repair(std::cout, std::cerr, commandline->GetNoiseLevel(), commandline->GetMemoryLimit(), commandline->GetNumThreads(), commandline->GetParFilename(), commandline->GetExtraFiles(), commandline->GetOperation() == CommandLine::opRepair, commandline->GetPurgeFiles()); break; case CommandLine::verPar2: result = par2repair(std::cout, std::cerr, commandline->GetNoiseLevel(), commandline->GetMemoryLimit(), commandline->GetBasePath(), commandline->GetNumThreads(), commandline->GetFileThreads(), commandline->GetParFilename(), commandline->GetExtraFiles(), commandline->GetOperation() == CommandLine::opRepair, commandline->GetPurgeFiles(), commandline->GetRenameOnly(), commandline->GetSkipData(), commandline->GetSkipLeaway()); break; default: break; } } break; case CommandLine::opNone: result = eSuccess; break; default: break; } } delete commandline; return result; } par2cmdline-turbo-1.5.0/src/par2creator.cpp000066400000000000000000000705211524160147200205740ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "libpar2internal.h" #include "foreach_parallel.h" #ifdef _MSC_VER #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif #endif // static variable u32 Par2Creator::filethreads = _FILE_THREADS; Par2Creator::Par2Creator(std::ostream &sout, std::ostream &serr, const NoiseLevel noiselevel) : sout(sout) , serr(serr) , noiselevel(noiselevel) , blocksize(0) , chunksize(0) , transferbuffer(0) , sourcefilecount(0) , sourceblockcount(0) , largestfilesize(0) , recoveryfilescheme(scUnknown) , recoveryfilecount(0) , recoveryblockcount(0) , firstrecoveryblock(0) , mainpacket(0) , creatorpacket(0) , sourcefiles() , sourceblocks() , recoveryfiles() , recoverypackets() , criticalpackets() , criticalpacketentries() , deferhashcomputation(false) { setup_hasher(); } Par2Creator::~Par2Creator(void) { delete mainpacket; delete creatorpacket; delete [] (u8*)transferbuffer; parpar.deinit(); std::vector::iterator sourcefile = sourcefiles.begin(); while (sourcefile != sourcefiles.end()) { delete *sourcefile; ++sourcefile; } } Result Par2Creator::Process( const size_t memorylimit, const std::string &basepath, const u32 nthreads, const u32 _filethreads, const std::string &parfilename, const std::vector &_extrafiles, const u64 _blocksize, const u32 _firstblock, const Scheme _recoveryfilescheme, const u32 _recoveryfilecount, const u32 _recoveryblockcount) { filethreads = _filethreads; if (!CheckBasepath(parfilename)) return eFileIOError; // Get information from commandline blocksize = _blocksize; const std::vector extrafiles = _extrafiles; sourcefilecount = (u32)extrafiles.size(); recoveryblockcount = _recoveryblockcount; recoveryfilecount = _recoveryfilecount; firstrecoveryblock = _firstblock; recoveryfilescheme = _recoveryfilescheme; // Compute block size from block count or vice versa depending on which was // specified on the command line if (!ComputeBlockCount(extrafiles)) return eInvalidCommandLineArguments; // Determine how many recovery files to create. if (!ComputeRecoveryFileCount(sout, serr, &recoveryfilecount, recoveryfilescheme, recoveryblockcount, largestfilesize, blocksize)) { return eInvalidCommandLineArguments; } // Determine how much recovery data can be computed on one pass if (!CalculateProcessBlockSize(memorylimit)) return eLogicError; if (recoveryblockcount > 0 && noiselevel >= nlDebug) sout << "[DEBUG] Process chunk size: " << chunksize << std::endl; // Init ParPar backend if (!parpar.init(chunksize, {{&parparcpu, 0, (size_t)chunksize}})) return eLogicError; if (nthreads != 0) parparcpu.setNumThreads(nthreads); // If there aren't many input blocks, restrict the submission batch size u32 inputbatch = 0; if (sourceblockcount < NUM_PARPAR_BUFFERS*2) inputbatch = (sourceblockcount + 1) / 2; if (!parparcpu.init(GF16_AUTO, inputbatch)) return eMemoryError; if (noiselevel > nlQuiet) { // Display information. sout << "Block size: " << blocksize << "\n" "Source file count: " << sourcefilecount << "\n" "Source block count: " << sourceblockcount << "\n" "Recovery block count: " << recoveryblockcount << "\n" "Recovery file count: " << recoveryfilecount << "\n"; if (noiselevel >= nlNoisy) { sout << "Data hash method: " << hasherInput_methodName() << "\nMultiply method: " << parparcpu.getMethodName() << '\n'; if (noiselevel >= nlDebug) { sout << "[DEBUG] Compute tile size: " << parparcpu.getChunkLen() << "\n[DEBUG] Compute block grouping: " << parparcpu.getInputBatchSize() << '\n'; } } sout << std::endl; } // Open all of the source files, compute the Hashes and CRC values, and store // the results in the file verification and file description packets. if (!OpenSourceFiles(extrafiles, basepath)) return eFileIOError; // Create the main packet and determine the setid to use with all packets if (!CreateMainPacket()) return eLogicError; // Create the creator packet. if (!CreateCreatorPacket()) return eLogicError; // Initialise all of the source blocks ready to start reading data from the source files. if (!CreateSourceBlocks()) return eLogicError; // Create all of the output files and allocate all packets to appropriate file offsets. if (!InitialiseOutputFiles(parfilename)) return eFileIOError; if (recoveryblockcount > 0) { // Allocate memory buffers for reading and writing data to disk. if (!AllocateBuffers()) return eMemoryError; // Set output exponents std::vector recoveryindices(recoveryblockcount); for (u16 i = 0; i < recoveryblockcount; i++) recoveryindices[i] = i + firstrecoveryblock; if (!parpar.setRecoverySlices(recoveryindices)) return eMemoryError; // Set the total amount of data to be processed. ProgressMeter progress(sout, "Processing: ", blocksize * sourceblockcount); // Start at an offset of 0 within a block. u64 blockoffset = 0; while (blockoffset < blocksize) // Continue until the end of the block. { // Work out how much data to process this time. size_t blocklength = (size_t)std::min((u64)chunksize, blocksize-blockoffset); if (!parpar.setCurrentSliceSize(blocklength)) return eMemoryError; // Read source data, process it through the RS matrix and write it to disk. if (!ProcessData(blockoffset, blocklength, progress)) return eFileIOError; blockoffset += blocklength; } if (noiselevel > nlQuiet) sout << "Writing recovery packets" << std::endl; // Finish computation of the recovery packets and write the headers to disk. if (!WriteRecoveryPacketHeaders()) return eFileIOError; // Finish computing the full file hash values of the source files if (!FinishFileHashComputation()) return eLogicError; } // Fill in all remaining details in the critical packets. if (!FinishCriticalPackets()) return eLogicError; if (noiselevel > nlQuiet) sout << "Writing verification packets" << std::endl; // Write all other critical packets to disk. if (!WriteCriticalPackets()) return eFileIOError; // Close all files. if (!CloseFiles()) return eFileIOError; if (noiselevel > nlSilent) sout << "Done" << std::endl; return eSuccess; } // Check basepath permission bool Par2Creator::CheckBasepath(const std::string &parfilename) { std::string checkfilename = parfilename + ".check.par2"; std::unique_ptr diskfile(new DiskFile(sout, serr, output_lock)); size_t dummysize = 4096; if (!diskfile->Create(checkfilename, dummysize)) return false; diskfile->Close(); if (!diskfile->Delete()) return false; return true; } // Compute block size from block count or vice versa depending on which was // specified on the command line bool Par2Creator::ComputeBlockCount(const std::vector &extrafiles) { FileSizeCache filesize_cache; largestfilesize = 0; for (std::vector::const_iterator i=extrafiles.begin(); i!=extrafiles.end(); i++) { u64 filesize = filesize_cache.get(*i); if (largestfilesize < filesize) { largestfilesize = filesize; } } if (blocksize == 0) { serr << "ERROR: Block size was zero!" << std::endl; return false; } if (blocksize % 4 != 0) { serr << "ERROR: Block size was not a multiple of 4 bytes!" << std::endl; return false; } u64 count = 0; for (std::vector::const_iterator i=extrafiles.begin(); i!=extrafiles.end(); i++) { count += (filesize_cache.get(*i) + blocksize-1) / blocksize; } if (count > 32768) { serr << "Block size is too small. It would require " << count << "blocks." << std::endl; return false; } sourceblockcount = (u32)count; return true; } // Determine how much recovery data can be computed on one pass bool Par2Creator::CalculateProcessBlockSize(size_t memorylimit) { // Are we computing any recovery blocks if (recoveryblockcount == 0) { chunksize = 0; deferhashcomputation = false; } else { // We use intermediary buffers to transfer data with, so include those in the limit calculation u32 blockoverhead = NUM_TRANSFER_BUFFERS + std::min((u32)NUM_PARPAR_BUFFERS*2, sourceblockcount+1); // Would single pass processing use too much memory if (blocksize * (recoveryblockcount + blockoverhead) > memorylimit) { // Pick a size that is small enough chunksize = ~3 & (memorylimit / (recoveryblockcount + blockoverhead)); deferhashcomputation = false; } else { chunksize = (size_t)blocksize; deferhashcomputation = true; } if (MAX_CHUNK_SIZE != 0 && chunksize > MAX_CHUNK_SIZE) { chunksize = MAX_CHUNK_SIZE; deferhashcomputation = false; } } return true; } // Open all of the source files, compute the Hashes and CRC values, and store // the results in the file verification and file description packets. bool Par2Creator::OpenSourceFiles(const std::vector &extrafiles, std::string basepath) { std::atomic openfailed(false); //Total size of files for mt-progress line u64 mttotalsize = 0; for (size_t i=0; i progress(sout, "", mttotalsize, output_lock); std::mutex packet_lock; foreach_parallel(extrafiles, Par2Creator::GetFileThreads(), [&, this](const std::string& extrafile) { if (openfailed.load(std::memory_order_relaxed)) return; Par2CreatorSourceFile *sourcefile = new Par2CreatorSourceFile; std::string name; DiskFile::SplitRelativeFilename(extrafile, basepath, name); if (noiselevel > nlSilent) { std::lock_guard lock(output_lock); sout << "Opening: " << name << std::endl; } // Open the source file and compute its Hashes and CRCs. if (!sourcefile->Open(noiselevel, sout, serr, extrafile, blocksize, deferhashcomputation, basepath, progress, output_lock)) { delete sourcefile; openfailed.store(true, std::memory_order_relaxed); return; } // Record the file verification and file description packets // in the critical packet list. { std::lock_guard lock(packet_lock); sourcefile->RecordCriticalPackets(criticalpackets); // Add the source file to the sourcefiles array. sourcefiles.push_back(sourcefile); } // Close the source file until its needed sourcefile->Close(); }); if (openfailed.load(std::memory_order_relaxed)) return false; return true; } // Create the main packet and determine the setid to use with all packets bool Par2Creator::CreateMainPacket(void) { // Construct the main packet from the list of source files and the block size. mainpacket = new MainPacket; // Add the main packet to the list of critical packets. criticalpackets.push_back(mainpacket); // Create the packet (sourcefiles will get sorted into FileId order). return mainpacket->Create(sourcefiles, blocksize); } // Create the creator packet. bool Par2Creator::CreateCreatorPacket(void) { // Construct the creator packet creatorpacket = new CreatorPacket; // Create the packet return creatorpacket->Create(mainpacket->SetId()); } // Initialise all of the source blocks ready to start reading data from the source files. bool Par2Creator::CreateSourceBlocks(void) { // Allocate the array of source blocks sourceblocks.resize(sourceblockcount); std::vector::iterator sourceblock = sourceblocks.begin(); for (std::vector::iterator sourcefile = sourcefiles.begin(); sourcefile!= sourcefiles.end(); sourcefile++) { // Allocate the appropriate number of source blocks to each source file. // sourceblock will be advanced. (*sourcefile)->InitialiseSourceBlocks(sourceblock, blocksize); } return true; } class FileAllocation { public: FileAllocation(void) : filename("") { exponent = 0; count = 0; } std::string filename; u32 exponent; u32 count; }; // Create all of the output files and allocate all packets to appropriate file offsets. bool Par2Creator::InitialiseOutputFiles(const std::string &parfilename) { // Allocate the recovery packets recoverypackets.resize(recoveryblockcount); // Choose filenames and decide which recovery blocks to place in each file std::vector fileallocations; fileallocations.resize(recoveryfilecount+1); // One extra file with no recovery blocks { // Decide how many recovery blocks to place in each file u32 exponent = firstrecoveryblock; if (recoveryfilecount > 0) { switch (recoveryfilescheme) { case scUnknown: { assert(false); return false; } break; case scUniform: { // Files will have roughly the same number of recovery blocks each. u32 base = recoveryblockcount / recoveryfilecount; u32 remainder = recoveryblockcount % recoveryfilecount; for (u32 filenumber=0; filenumber= 2*largest && filenumber > 0) { filenumber--; exponent -= largest; blocks -= largest; fileallocations[filenumber].exponent = exponent; fileallocations[filenumber].count = largest; } assert(blocks > 0 && filenumber > 0); exponent = firstrecoveryblock; u32 count = 1; u32 files = filenumber; // Allocate exponentially at the bottom for (filenumber=0; filenumber=10; t/=10) { digitsLow++; } for (u32 t=limitCount; t>=10; t/=10) { digitsCount++; } } // Set the filenames for (u32 filenumber=0; filenumber _MAX_PATH) { serr << filename.str() << " pathlength is more than " << _MAX_PATH << "." << std::endl; return false; } fileallocations[filenumber].filename = filename.str(); } std::string mainpar = parfilename + ".par2"; if (mainpar.length() > _MAX_PATH) { serr << mainpar << " pathlength is more than " << _MAX_PATH << "." << std::endl; return false; } fileallocations[recoveryfilecount].filename = mainpar; } // Allocate the recovery files { recoveryfiles.resize(recoveryfilecount+1, DiskFile(sout, serr, output_lock)); // pass default constructor. // Sort critical packets, so we get consistency. criticalpackets.sort(CriticalPacket::CompareLess); // Allocate packets to the output files { const MD5Hash &setid = mainpacket->SetId(); std::vector::iterator recoverypacket = recoverypackets.begin(); std::vector::iterator recoveryfile = recoveryfiles.begin(); std::vector::iterator fileallocation = fileallocations.begin(); // For each recovery file: while (recoveryfile != recoveryfiles.end()) { // How many recovery blocks in this file u32 count = fileallocation->count; // start at the beginning of the recovery file u64 offset = 0; if (count == 0) { // Write one set of critical packets std::list::const_iterator nextCriticalPacket = criticalpackets.begin(); while (nextCriticalPacket != criticalpackets.end()) { criticalpacketentries.push_back(CriticalPacketEntry(&*recoveryfile, offset, *nextCriticalPacket)); offset += (*nextCriticalPacket)->PacketLength(); ++nextCriticalPacket; } } else { // How many copies of each critical packet u32 copies = 0; for (u32 t=count; t>0; t>>=1) { copies++; } // Get ready to iterate through the critical packets u64 packetCount = 0; std::list::const_iterator nextCriticalPacket = criticalpackets.end(); // What is the first exponent u32 exponent = fileallocation->exponent; // Start allocating the recovery packets u32 limit = exponent + count; while (exponent < limit) { // Add the next recovery packet recoverypacket->Create(&*recoveryfile, offset, blocksize, exponent, setid); offset += recoverypacket->PacketLength(); ++recoverypacket; ++exponent; // Add some critical packets packetCount += copies * criticalpackets.size(); while (packetCount >= count) { if (nextCriticalPacket == criticalpackets.end()) nextCriticalPacket = criticalpackets.begin(); criticalpacketentries.push_back(CriticalPacketEntry(&*recoveryfile, offset, *nextCriticalPacket)); offset += (*nextCriticalPacket)->PacketLength(); ++nextCriticalPacket; packetCount -= count; } } } // Add one copy of the creator packet criticalpacketentries.push_back(CriticalPacketEntry(&*recoveryfile, offset, creatorpacket)); offset += creatorpacket->PacketLength(); // Create the file on disk and make it the required size if (!recoveryfile->Create(fileallocation->filename, offset)) return false; ++recoveryfile; ++fileallocation; } } } return true; } // Allocate memory buffers for reading and writing data to disk. bool Par2Creator::AllocateBuffers(void) { transferbuffer = new u8[chunksize * NUM_TRANSFER_BUFFERS]; if (transferbuffer == NULL) { serr << "Could not allocate buffer memory." << std::endl; return false; } return true; } // Read source data, process it through the RS matrix and write it to disk. bool Par2Creator::ProcessData(u64 blockoffset, size_t blocklength, ProgressMeter &progress) { // If we have deferred computation of the file hash and block crc and hashes // sourcefile and sourceindex will be used to update them during // the main recovery block computation std::vector::iterator sourcefile = sourcefiles.begin(); u32 sourceindex = 0; std::vector::iterator sourceblock; u32 inputblock; DiskFile *lastopenfile = NULL; // For tracking input buffer availability std::future bufferavail[NUM_TRANSFER_BUFFERS]; u32 bufferindex = NUM_TRANSFER_BUFFERS - 1; // Set all input buffers to available for (i32 i = 0; i < NUM_TRANSFER_BUFFERS; i++) { std::promise stub; bufferavail[i] = stub.get_future(); stub.set_value(); } // Clear existing output data in backend parpar.discardOutput(); // For each input block for ((sourceblock=sourceblocks.begin()),(inputblock=0); sourceblock != sourceblocks.end(); ++sourceblock, ++inputblock) { // Are we reading from a new file? if (lastopenfile != (*sourceblock).GetDiskFile()) { // Close the last file if (lastopenfile != NULL) { lastopenfile->Close(); } // Open the new file lastopenfile = (*sourceblock).GetDiskFile(); if (!lastopenfile->Open()) { return false; } } // Wait for next input buffer to become available bufferindex = (bufferindex + 1) % NUM_TRANSFER_BUFFERS; void *inputbuffer = (char*)transferbuffer + chunksize * bufferindex; bufferavail[bufferindex].get(); // Read data from the current input block if (!sourceblock->ReadData(blockoffset, blocklength, inputbuffer)) return false; // Wait for ParPar backend to be ready, if busy parpar.waitForAdd(); // Send block to backend bufferavail[bufferindex] = parpar.addInput(inputbuffer, blocklength, inputblock); if (deferhashcomputation) { assert(blockoffset == 0 && blocklength == blocksize); assert(sourcefile != sourcefiles.end()); (*sourcefile)->UpdateHashes(sourceindex, inputbuffer, blocklength); } if (noiselevel > nlQuiet) progress.Add(blocklength); // Work out which source file the next block belongs to if (++sourceindex >= (*sourcefile)->BlockCount()) { sourceindex = 0; ++sourcefile; } } // Flush backend parpar.endInput().get(); // Close the last file if (lastopenfile != NULL) { lastopenfile->Close(); } if (noiselevel > nlQuiet) sout << "Writing recovery packets\r"; if (recoveryblockcount > 0) { // For output, we only need two transfer buffers std::future outbufavail[2]; // Prepare first output outbufavail[0] = parpar.getOutput(0, transferbuffer); // For each output block for (u32 outputblock=0; outputblock nlQuiet) sout << "Wrote " << recoveryblockcount * blocklength << " bytes to disk" << std::endl; return true; } // Finish computation of the recovery packets and write the headers to disk. bool Par2Creator::WriteRecoveryPacketHeaders(void) { // For each recovery packet for (std::vector::iterator recoverypacket = recoverypackets.begin(); recoverypacket != recoverypackets.end(); ++recoverypacket) { // Finish the packet header and write it to disk if (!recoverypacket->WriteHeader()) return false; } return true; } bool Par2Creator::FinishFileHashComputation(void) { // If we deferred the computation of the full file hash, then we finish it now if (deferhashcomputation) { // For each source file std::vector::iterator sourcefile = sourcefiles.begin(); while (sourcefile != sourcefiles.end()) { (*sourcefile)->FinishHashes(); ++sourcefile; } } return true; } // Fill in all remaining details in the critical packets. bool Par2Creator::FinishCriticalPackets(void) { // Get the setid from the main packet const MD5Hash &setid = mainpacket->SetId(); for (std::list::iterator criticalpacket=criticalpackets.begin(); criticalpacket!=criticalpackets.end(); criticalpacket++) { // Store the setid in each of the critical packets // and compute the packet_hash of each one. (*criticalpacket)->FinishPacket(setid); } return true; } // Write all other critical packets to disk. bool Par2Creator::WriteCriticalPackets(void) { std::list::const_iterator packetentry = criticalpacketentries.begin(); // For each critical packet while (packetentry != criticalpacketentries.end()) { // Write it to disk if (!packetentry->WritePacket()) return false; ++packetentry; } return true; } // Close all files. bool Par2Creator::CloseFiles(void) { // // Close each source file. // for (std::vector::iterator sourcefile = sourcefiles.begin(); // sourcefile != sourcefiles.end(); // ++sourcefile) // { // (*sourcefile)->Close(); // } // Close each recovery file. for (std::vector::iterator recoveryfile = recoveryfiles.begin(); recoveryfile != recoveryfiles.end(); ++recoveryfile) { recoveryfile->Close(); } return true; } par2cmdline-turbo-1.5.0/src/par2creator.h000066400000000000000000000143661524160147200202460ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef __PAR2CREATOR_H__ #define __PAR2CREATOR_H__ #include "../parpar/gf16/controller_cpu.h" class MainPacket; class CreatorPacket; class CriticalPacket; class Par2Creator { public: Par2Creator(std::ostream &sout, std::ostream &serr, const NoiseLevel noiselevel); ~Par2Creator(void); // Create recovery files from the source files specified on the command line Result Process(const size_t memorylimit, const std::string &basepath, const u32 nthreads, const u32 filethreads, const std::string &parfilename, const std::vector &extrafiles, const u64 blocksize, const u32 firstblock, const Scheme recoveryfilescheme, const u32 recoveryfilecount, const u32 recoveryblockcount ); protected: // Steps in the creation process: // Check permissions in the basepath bool CheckBasepath(const std::string &parfilename); // Compute block size from block count or vice versa depending on which was // specified on the command line bool ComputeBlockCount(const std::vector &extrafiles); // Determine how much recovery data can be computed on one pass bool CalculateProcessBlockSize(size_t memorylimit); // Open all of the source files, compute the Hashes and CRC values, and store // the results in the file verification and file description packets. bool OpenSourceFiles(const std::vector &extrafiles, std::string basepath); // Create the main packet and determine the set_id_hash to use with all packets bool CreateMainPacket(void); // Create the creator packet. bool CreateCreatorPacket(void); // Initialise all of the source blocks ready to start reading data from the source files. bool CreateSourceBlocks(void); // Create all of the output files and allocate all packets to appropriate file offsets. bool InitialiseOutputFiles(const std::string &par2filename); // Allocate memory buffers for reading and writing data to disk. bool AllocateBuffers(void); // Read source data, process it through the RS matrix and write it to disk. bool ProcessData(u64 blockoffset, size_t blocklength, ProgressMeter &progress); // Finish computation of the recovery packets and write the headers to disk. bool WriteRecoveryPacketHeaders(void); // Finish computing the full file hash values of the source files bool FinishFileHashComputation(void); // Fill in all remaining details in the critical packets. bool FinishCriticalPackets(void); // Write all other critical packets to disk. bool WriteCriticalPackets(void); // Close all files. bool CloseFiles(void); static u32 GetFileThreads(void) {return filethreads;} protected: std::ostream &sout; // stream for output (for commandline, this is cout) std::ostream &serr; // stream for errors (for commandline, this is cerr) std::mutex output_lock; const NoiseLevel noiselevel; // How noisy we should be static u32 filethreads; // Number of threads for file processing u64 blocksize; // The size of each block. size_t chunksize; // How much of each block will be processed at a // time (due to memory constraints). void *transferbuffer; // chunksize * num_transfer_buffers u32 sourcefilecount; // Number of source files for which recovery data will be computed. u32 sourceblockcount; // Total number of data blocks that the source files will be // virtually sliced into. u64 largestfilesize; // The size of the largest source file Scheme recoveryfilescheme; // What scheme will be used to select the // sizes for the recovery files. u32 recoveryfilecount; // The number of recovery files that will be created u32 recoveryblockcount; // The number of recovery blocks that will be placed // in the recovery files. u32 firstrecoveryblock; // The lowest exponent value to use for the recovery blocks. MainPacket *mainpacket; // The main packet CreatorPacket *creatorpacket; // The creator packet std::vector sourcefiles; // Array containing details of the source files // as well as the file verification and file // description packets for them. std::vector sourceblocks; // Array with one entry for every source block. std::vector recoveryfiles; // Array with one entry for every recovery file. std::vector recoverypackets; // Array with one entry for every recovery packet. std::list criticalpackets; // A list of all of the critical packets. std::list criticalpacketentries; // A list of which critical packet will // be written to which recovery file. PAR2Proc parpar; // Main ParPar backend PAR2ProcCPU parparcpu; // ParPar CPU sub-backend bool deferhashcomputation; // If we have enough memory to compute all recovery data // in one pass, then we can defer the computation of // the full file hash and block crc and hashes until // the recovery data is computed. }; #endif // __PAR2CREATOR_H__ par2cmdline-turbo-1.5.0/src/par2creatorsourcefile.cpp000066400000000000000000000224171524160147200226560ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "libpar2internal.h" #include "hasher.h" #ifdef _MSC_VER #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif #endif Par2CreatorSourceFile::Par2CreatorSourceFile(void) { descriptionpacket = 0; verificationpacket = 0; diskfile = 0; filesize = 0; //diskfilename; //parfilename; blockcount = 0; hasher = HasherInput_Create(); } Par2CreatorSourceFile::~Par2CreatorSourceFile(void) { delete descriptionpacket; delete verificationpacket; delete diskfile; hasher->destroy(); } // Open the source file, compute the MD5 Hash of the whole file and the first // 16k of the file, and then compute the FileId and store the results // in a file description packet and a file verification packet. bool Par2CreatorSourceFile::Open(NoiseLevel noiselevel, std::ostream &sout, std::ostream &serr, const std::string &extrafile, u64 blocksize, bool deferhashcomputation, std::string basepath, MTProgressMeter &progress, std::mutex &output_lock) { // Get the filename and filesize diskfilename = extrafile; filesize = DiskFile::GetFileSize(extrafile); // Work out how many blocks the file will be sliced into blockcount = (u32)((filesize + blocksize-1) / blocksize); // Determine what filename to record in the PAR2 files parfilename = diskfilename; parfilename.erase(0, basepath.length()); parfilename = DescriptionPacket::TranslateFilenameFromLocalToPar2(sout, serr, noiselevel, parfilename); // Create the Description and Verification packets descriptionpacket = new DescriptionPacket; descriptionpacket->Create(parfilename, filesize); verificationpacket = new VerificationPacket; verificationpacket->Create(blockcount); // Create the diskfile object diskfile = new DiskFile(sout, serr, output_lock); // Open the source file if (!diskfile->Open(diskfilename, filesize)) return false; // Do we want to defer the computation of the full file hash, and // the block crc and hashes. This is only permitted if there // is sufficient memory available to create all recovery blocks // in one pass of the source files (i.e. chunksize == blocksize) if (deferhashcomputation) { // Initialise a buffer to read the first 16k of the source file size_t buffersize = 16 * 1024; if (buffersize > filesize) buffersize = (size_t)filesize; char *buffer = new char[buffersize]; // Read the data from the file if (!diskfile->Read(0, buffer, buffersize)) { diskfile->Close(); delete [] buffer; return false; } // Compute the hash of the data read from the file MD5Context context; context.Update(buffer, buffersize); delete [] buffer; MD5Hash hash; context.Final(hash); // Store the hash in the descriptionpacket and compute the file id descriptionpacket->Hash16k(hash); // Compute the fileid and store it in the verification packet. descriptionpacket->ComputeFileId(); verificationpacket->FileId(descriptionpacket->FileId()); } else { // Initialise a buffer to read the source file size_t buffersize = 1024*1024; if (buffersize > std::min(blocksize,filesize)) buffersize = (size_t)std::min(blocksize,filesize); char *buffer = new char[buffersize]; // Get ready to start reading source file to compute the hashes and crcs u64 offset = 0; u32 blocknumber = 0; u64 need = blocksize; MD5Context hash16kcontext; // Whilst we have not reached the end of the file while (offset < filesize) { // Work out how much we can read size_t want = (size_t)std::min(filesize-offset, (u64)buffersize); // Read some data from the file into the buffer if (!diskfile->Read(offset, buffer, want)) { diskfile->Close(); delete [] buffer; return false; } // Whilst we haven't passed the 16k boundary, compute the 16k hash if (offset < 16384) { hash16kcontext.Update(buffer, (size_t)std::min(want, (size_t)(16384-offset))); // If the new data passes the 16k boundary, compute the 16k hash for the file if (offset + want >= 16384) { MD5Hash hash; hash16kcontext.Final(hash); // Store the 16k hash in the file description packet descriptionpacket->Hash16k(hash); } } // Get ready to update block hashes and crcs u32 used = 0; // Whilst we have not used all of the data we just read while (used < want) { // How much of it can we use for the current block u32 use = (u32)std::min(need, (u64)(want-used)); hasher->update(&buffer[used], use); used += use; need -= use; // Have we finished the current block if (need == 0) { MD5Hash blockhash; u32 blockcrc = HasherGetBlock(hasher, blockhash); // Store the block hash and block crc in the file verification packet. verificationpacket->SetBlockHashAndCRC(blocknumber, blockhash, blockcrc); blocknumber++; // More blocks if (blocknumber < blockcount) { need = blocksize; } } } if (noiselevel > nlQuiet) progress.Add(want); offset += want; } // Did we finish the last block if (need > 0) { MD5Hash blockhash; u32 blockcrc = HasherGetBlock(hasher, blockhash, need); // Store the block hash and block crc in the file verification packet. verificationpacket->SetBlockHashAndCRC(blocknumber, blockhash, blockcrc); blocknumber++; } // Finish computing the file hash. MD5Hash filehash; hasher->end(filehash.hash); // Store the file hash in the file description packet. descriptionpacket->HashFull(filehash); // Did we compute the 16k hash. if (offset < 16384) { // Store the 16k hash in the file description packet. descriptionpacket->Hash16k(filehash); } delete [] buffer; // Compute the fileid and store it in the verification packet. descriptionpacket->ComputeFileId(); verificationpacket->FileId(descriptionpacket->FileId()); } return true; } void Par2CreatorSourceFile::Close(void) { diskfile->Close(); } void Par2CreatorSourceFile::RecordCriticalPackets(std::list &criticalpackets) { // Add the file description packet and file verification packet to // the critical packet list. criticalpackets.push_back(descriptionpacket); criticalpackets.push_back(verificationpacket); } bool Par2CreatorSourceFile::CompareLess(const Par2CreatorSourceFile* const &left, const Par2CreatorSourceFile* const &right) { // Sort source files based on fileid return left->descriptionpacket->FileId() < right->descriptionpacket->FileId(); } const MD5Hash& Par2CreatorSourceFile::FileId(void) const { // Get the file id hash return descriptionpacket->FileId(); } void Par2CreatorSourceFile::InitialiseSourceBlocks(std::vector::iterator &sourceblock, u64 blocksize) { for (u32 blocknum=0; blocknumSetLocation(diskfile, // file blocknum * blocksize); // offset sourceblock->SetLength(std::min(blocksize, filesize - (u64)blocknum * blocksize)); // length sourceblock++; } } void Par2CreatorSourceFile::UpdateHashes(u32 blocknumber, const void *buffer, size_t length) { // Requires: deferhashcomputation must've been true // Update the hashes, but don't go beyond the end of the file const u64 len = filesize - (u64) blocknumber * (u64) length; size_t zeropad = 0; if ((u64)length > len) { zeropad = length - len; length = (size_t)(len); } // Compute the crc and hash of the data hasher->update(buffer, length); MD5Hash blockhash; u32 blockcrc = HasherGetBlock(hasher, blockhash, zeropad); // Store the results in the verification packet verificationpacket->SetBlockHashAndCRC(blocknumber, blockhash, blockcrc); } void Par2CreatorSourceFile::FinishHashes(void) { // Requires: deferhashcomputation must've been true // Finish computation of the full file hash MD5Hash hash; hasher->end(hash.hash); // Store it in the description packet descriptionpacket->HashFull(hash); } par2cmdline-turbo-1.5.0/src/par2creatorsourcefile.h000066400000000000000000000064431524160147200223240ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef __PAR2CREATORSOURCEFILE_H__ #define __PAR2CREATORSOURCEFILE_H__ #include #include class DescriptionPacket; class VerificationPacket; class DiskFile; // The Par2CreatorSourceFile contains the file verification and file description // packet for one source file. class Par2CreatorSourceFile { private: // Don't permit copying or assignment Par2CreatorSourceFile(const Par2CreatorSourceFile &other); Par2CreatorSourceFile& operator=(const Par2CreatorSourceFile &other); public: Par2CreatorSourceFile(void); ~Par2CreatorSourceFile(void); // Open the source file and compute the Hashes and CRCs. bool Open(NoiseLevel noiselevel, std::ostream &sout, std::ostream &serr, const std::string &extrafile, u64 blocksize, bool deferhashcomputation, std::string basepath, MTProgressMeter &progress, std::mutex &output_lock); void Close(void); // Recover the file description and file verification packets // in the critical packet list. void RecordCriticalPackets(std::list &criticalpackets); // Get the file id const MD5Hash& FileId(void) const; // Sort source files based on the file id hash static bool CompareLess(const Par2CreatorSourceFile* const &left, const Par2CreatorSourceFile* const &right); // Allocate the appropriate number of source blocks to the source file void InitialiseSourceBlocks(std::vector::iterator &sourceblock, u64 blocksize); // Update the file hash and the block crc and hashes void UpdateHashes(u32 blocknumber, const void *buffer, size_t length); // Finish computation of the file hash void FinishHashes(void); // How many blocks does this source file use u32 BlockCount(void) const {return blockcount;} protected: DescriptionPacket *descriptionpacket; // The file description packet. VerificationPacket *verificationpacket; // The file verification packet. DiskFile *diskfile; // The source file u64 filesize; // The size of the source file. std::string diskfilename; // The filename of the source file on disk. std::string parfilename; // The filename that will be recorded in the file description packet. u32 blockcount; // How many blocks the file will be divided into. IHasherInput* hasher; // hasher context used to calculate block and file hashes }; #endif // __PAR2CREATORSOURCEFILE_H__ par2cmdline-turbo-1.5.0/src/par2fileformat.cpp000066400000000000000000000032221524160147200212570ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "libpar2internal.h" MAGIC packet_magic = {{'P', 'A', 'R', '2', '\0','P', 'K', 'T'}}; PACKETTYPE fileverificationpacket_type = {{'P', 'A', 'R', ' ', '2', '.', '0', '\0', 'I', 'F', 'S', 'C', '\0','\0','\0','\0'}}; PACKETTYPE filedescriptionpacket_type = {{'P', 'A', 'R', ' ', '2', '.', '0', '\0', 'F', 'i', 'l', 'e', 'D', 'e', 's', 'c' }}; PACKETTYPE mainpacket_type = {{'P', 'A', 'R', ' ', '2', '.', '0', '\0', 'M', 'a', 'i', 'n', '\0','\0','\0','\0'}}; PACKETTYPE recoveryblockpacket_type = {{'P', 'A', 'R', ' ', '2', '.', '0', '\0', 'R', 'e', 'c', 'v', 'S', 'l', 'i', 'c' }}; PACKETTYPE creatorpacket_type = {{'P', 'A', 'R', ' ', '2', '.', '0', '\0', 'C', 'r', 'e', 'a', 't', 'o', 'r', '\0'}}; par2cmdline-turbo-1.5.0/src/par2fileformat.h000066400000000000000000000157451524160147200207410ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef __PAR2FILEFORMAT_H__ #define __PAR2FILEFORMAT_H__ // This file defines the format of a PAR2 file. // PAR2 files consist of one or more "packets" that contain information // that is required to be able to verify and repair damaged data files. // All packets start with a short "header" which contains information // used to describe what sort of data is stored in the rest of the packet // and also to allow that data to be verified. // This file details the format for the following packet types described // in the PAR 2.0 specification: // Main Packet struct MAINPACKET // File Description Packet struct FILEDESCRIPTIONPACKET // Input File Slice Checksum Packet struct FILEVERIFICATIONPACKET // Recovery Slice Packet struct RECOVERYBLOCKPACKET // Creator Packet struct CREATORPACKET #ifdef _WIN32 #pragma pack(push, 1) #define PACKED #else #define PACKED __attribute__ ((packed)) #endif #ifdef _MSC_VER #pragma warning(disable:4200) #endif // All numeric fields in the file format are in LITTLE ENDIAN format. // The types leu32 and leu64 are defined in letype.h // Two simple types used in the packet header. struct MAGIC {u8 magic[8];} PACKED; struct PACKETTYPE {u8 type[16];} PACKED; // Every packet starts with a packet header. struct PACKET_HEADER { // Header MAGIC magic; // = {'P', 'A', 'R', '2', '\0', 'P', 'K', 'T'} leu64 length; // Length of entire packet including header MD5Hash hash; // Hash of entire packet excepting the first 3 fields MD5Hash setid; // Normally computed as the Hash of body of "Main Packet" PACKETTYPE type; // Used to specify the meaning of the rest of the packet } PACKED; // The file verification packet is used to determine whether or not any // parts of a damaged file are useable. // It contains a FileId used to pair it with a corresponding file description // packet, followed by an array of hash and crc values. The number of entries in // the array can be determined from the packet_length. struct FILEVERIFICATIONENTRY { MD5Hash hash; leu32 crc; } PACKED; struct FILEVERIFICATIONPACKET { PACKET_HEADER header; // Body MD5Hash fileid; // MD5hash of file_hash_16k, file_length, file_name FILEVERIFICATIONENTRY entries[]; } PACKED; // The file description packet is used to record the name of the file, // its size, and the Hash of both the whole file and the first 16k of // the file. // If the name of the file is an exact multiple of 4 characters in length // then it may not have a NULL termination. If the name of the file is not // an exact multiple of 4, then it will be padded with 0 bytes at the // end to make it up to a multiple of 4. struct FILEDESCRIPTIONPACKET { PACKET_HEADER header; // Body MD5Hash fileid; // MD5hash of [hash16k, length, name] MD5Hash hashfull; // MD5 Hash of the whole file MD5Hash hash16k; // MD5 Hash of the first 16k of the file leu64 length; // Length of the file u8 name[]; // Name of the file, padded with 1 to 3 zero bytes to reach // a multiple of 4 bytes. // Actual length can be determined from overall packet // length and then working backwards to find the first non // zero character. //u8* name(void) {return (u8*)&this[1];} //const u8* name(void) const {return (const u8*)&this[1];} } PACKED; // The main packet is used to tie together the other packets in a recovery file. // It specifies the block size used to virtually slice the source files, a count // of the number of source files, and an array of Hash values used to specify // in what order the source files are processed. // Each entry in the fileid array corresponds with the fileid value // in a file description packet and a file verification packet. // The fileid array may contain more entries than the count of the number // of recoverable files. The extra entries correspond to files that were not // used during the creation of the recovery files and which may not therefore // be repaired if they are found to be damaged. struct MAINPACKET { PACKET_HEADER header; // Body leu64 blocksize; leu32 recoverablefilecount; MD5Hash fileid[0]; //MD5Hash* fileid(void) {return (MD5Hash*)&this[1];} //const MD5Hash* fileid(void) const {return (const MD5Hash*)&this[1];} } PACKED; // The creator packet is used to identify which program created a particular // recovery file. It is not required for verification or recovery of damaged // files. struct CREATORPACKET { PACKET_HEADER header; // Body u8 client[]; //u8* client(void) {return (u8*)&this[1];} } PACKED; // The recovery block packet contains a single block of recovery data along // with the exponent value used during the computation of that block. struct RECOVERYBLOCKPACKET { PACKET_HEADER header; // Body leu32 exponent; // unsigned long data[]; // unsigned long* data(void) {return (unsigned long*)&this[1];} } PACKED; #ifdef _MSC_VER #pragma warning(default:4200) #endif #ifdef _WIN32 #pragma pack(pop) #endif #undef PACKED // Operators for comparing the MAGIC and PACKETTYPE values inline bool operator == (const MAGIC &left, const MAGIC &right) { return (0==memcmp(&left, &right, sizeof(left))); } inline bool operator != (const MAGIC &left, const MAGIC &right) { return !operator==(left, right); } inline bool operator == (const PACKETTYPE &left, const PACKETTYPE &right) { return (0==memcmp(&left, &right, sizeof(left))); } inline bool operator != (const PACKETTYPE &left, const PACKETTYPE &right) { return !operator==(left, right); } extern MAGIC packet_magic; extern PACKETTYPE fileverificationpacket_type; extern PACKETTYPE filedescriptionpacket_type; extern PACKETTYPE mainpacket_type; extern PACKETTYPE recoveryblockpacket_type; extern PACKETTYPE creatorpacket_type; #endif //__PAR2FILEFORMAT_H__ par2cmdline-turbo-1.5.0/src/par2repairer.cpp000066400000000000000000002343601524160147200207510ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "libpar2internal.h" #include "foreach_parallel.h" #ifdef _MSC_VER #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif #endif // static variable u32 Par2Repairer::filethreads = _FILE_THREADS; Par2Repairer::Par2Repairer(std::ostream &sout, std::ostream &serr, const NoiseLevel noiselevel) : sout(sout) , serr(serr) , noiselevel(noiselevel) , searchpath() , basepath() , setid() , recoverypacketmap() , diskFileMap() , sourcefilemap() , sourcefiles() , verifylist() , backuplist() , par2list() , sourceblocks() , targetblocks() , blockverifiable(false) , verificationhashtable() , unverifiablesourcefiles() , inputblocks() , copyblocks() , outputblocks() , rs() { setup_hasher(); skipdata = false; skipleaway = 0; firstpacket = true; mainpacket = 0; creatorpacket = 0; blocksize = 0; chunksize = 0; sourceblockcount = 0; availableblockcount = 0; missingblockcount = 0; memset(windowtable, 0, sizeof(windowtable)); blocksallocated = false; completefilecount = 0; renamedfilecount = 0; damagedfilecount = 0; missingfilecount = 0; transferbuffer = 0; } Par2Repairer::~Par2Repairer(void) { delete [] (u8*)transferbuffer; parpar.deinit(); std::map::iterator rp = recoverypacketmap.begin(); while (rp != recoverypacketmap.end()) { delete (*rp).second; ++rp; } std::map::iterator sf = sourcefilemap.begin(); while (sf != sourcefilemap.end()) { Par2RepairerSourceFile *sourcefile = (*sf).second; delete sourcefile; ++sf; } delete mainpacket; delete creatorpacket; } Result Par2Repairer::Process( const size_t memorylimit, const std::string &_basepath, const u32 nthreads, const u32 _filethreads, std::string parfilename, const std::vector &_extrafiles, const bool dorepair, // derived from operation const bool purgefiles, const bool renameonly, const bool _skipdata, const u64 _skipleaway ) { filethreads = _filethreads; // Should we skip data whilst scanning files skipdata = _skipdata; // How much leaway should we allow when scanning files skipleaway = _skipleaway; // Get filenames from the command line basepath = _basepath; std::vector extrafiles = _extrafiles; // Determine the searchpath from the location of the main PAR2 file std::string name; DiskFile::SplitFilename(parfilename, searchpath, name); par2list.push_back(parfilename); // Load packets from the main PAR2 file if (!LoadPacketsFromFile(searchpath + name)) return eLogicError; // Load packets from other PAR2 files with names based on the original PAR2 file if (!LoadPacketsFromOtherFiles(parfilename)) return eLogicError; // Load packets from any other PAR2 files whose names are given on the command line if (!LoadPacketsFromExtraFiles(extrafiles)) return eLogicError; if (noiselevel > nlQuiet) sout << '\n'; // Check that the packets are consistent and discard any that are not if (!CheckPacketConsistency()) return eInsufficientCriticalData; // Use the information in the main packet to get the source files // into the correct order and determine their filenames if (!CreateSourceFileList()) return eLogicError; // Determine the total number of DataBlocks for the recoverable source files // The allocate the DataBlocks and assign them to each source file if (!AllocateSourceBlocks()) return eLogicError; // Create a verification hash table for all files for which we have not // found a complete version of the file and for which we have // a verification packet if (!PrepareVerificationHashTable()) return eLogicError; // Compute the table for the sliding CRC computation if (!ComputeWindowTable()) return eLogicError; // Attempt to verify all of the source files if (!VerifySourceFiles(basepath, extrafiles)) return eFileIOError; if (completefilecount < mainpacket->RecoverableFileCount()) { // Scan any extra files specified on the command line if (!VerifyExtraFiles(extrafiles, basepath, renameonly)) return eLogicError; } // Find out how much data we have found UpdateVerificationResults(); if (noiselevel > nlSilent) sout << '\n'; // Check the verification results and report the results if (!CheckVerificationResults()) return eRepairNotPossible; // Are any of the files incomplete if (completefilecount < mainpacket->RecoverableFileCount()) { // Do we want to carry out a repair if (dorepair) { if (noiselevel > nlSilent) sout << '\n'; // Rename any damaged or missnamed target files. if (!RenameTargetFiles()) return eFileIOError; // Are we still missing any files if (completefilecount < mainpacket->RecoverableFileCount()) { // Work out which files are being repaired, create them, and allocate // target DataBlocks to them, and remember them for later verification. if (!CreateTargetFiles()) return eFileIOError; if (nthreads != 0) rs.setNumThreads(nthreads); // Work out which data blocks are available, which need to be copied // directly to the output, and which need to be recreated, and compute // the appropriate Reed Solomon matrix. if (!ComputeRSmatrix()) { // Delete all of the partly reconstructed files DeleteIncompleteTargetFiles(); return eFileIOError; } if (noiselevel > nlSilent) sout << '\n'; // Allocate memory buffers for reading and writing data to disk. if (!AllocateBuffers(memorylimit)) { // Delete all of the partly reconstructed files DeleteIncompleteTargetFiles(); return eMemoryError; } // Init ParPar backend if (!parpar.init(chunksize, {{&parparcpu, 0, (size_t)chunksize}})) { DeleteIncompleteTargetFiles(); return eLogicError; } if (nthreads != 0) parparcpu.setNumThreads(nthreads); // If there aren't many input blocks, restrict the submission batch size u32 inputbatch = 0; if (sourceblockcount < NUM_PARPAR_BUFFERS*2) inputbatch = (sourceblockcount + 1) / 2; if (!parparcpu.init(GF16_AUTO, inputbatch) || !parpar.setRecoverySlices(missingblockcount)) { DeleteIncompleteTargetFiles(); return eMemoryError; } if (noiselevel >= nlNoisy) { sout << "Multiply method: " << parparcpu.getMethodName() << '\n'; if (noiselevel >= nlDebug) { sout << "[DEBUG] Compute tile size: " << parparcpu.getChunkLen() << "\n[DEBUG] Compute block grouping: " << parparcpu.getInputBatchSize() << '\n'; } sout << std::endl; } // Set the total amount of data to be processed. ProgressMeter progress(sout, missingblockcount > 0 ? "Repairing: " : "Processing: ", blocksize * sourceblockcount); // Start at an offset of 0 within a block. u64 blockoffset = 0; while (blockoffset < blocksize) // Continue until the end of the block. { // Work out how much data to process this time. size_t blocklength = (size_t)std::min((u64)chunksize, blocksize-blockoffset); if (!parpar.setCurrentSliceSize(blocklength)) { DeleteIncompleteTargetFiles(); return eMemoryError; } // Read source data, process it through the RS matrix and write it to disk. if (!ProcessData(blockoffset, blocklength, progress)) { // Delete all of the partly reconstructed files DeleteIncompleteTargetFiles(); return eFileIOError; } // Advance to the need offset within each block blockoffset += blocklength; } if (noiselevel > nlSilent) sout << "\nVerifying repaired files:\n" << std::endl; // Verify that all of the reconstructed target files are now correct if (!VerifyTargetFiles(basepath)) { // Delete all of the partly reconstructed files DeleteIncompleteTargetFiles(); return eFileIOError; } } // Are all of the target files now complete? if (completefilecountRecoverableFileCount()) { serr << "Repair Failed." << std::endl; return eRepairFailed; } else { if (noiselevel > nlSilent) sout << "\nRepair complete." << std::endl; } } else { return eRepairPossible; } } if (purgefiles == true) { RemoveBackupFiles(); RemoveParFiles(); } return eSuccess; } // Load the packets from the specified file bool Par2Repairer::LoadPacketsFromFile(std::string filename) { // Skip the file if it has already been processed if (diskFileMap.Find(filename) != 0) { return true; } DiskFile *diskfile = new DiskFile(sout, serr, output_lock); // Open the file if (!diskfile->Open(filename)) { // If we could not open the file, ignore the error and // proceed to the next file delete diskfile; return true; } if (noiselevel > nlSilent) { std::string path; std::string name; DiskFile::SplitFilename(filename, path, name); sout << "Loading \"" << name << "\"." << std::endl; } // How many useable packets have we found u32 packets = 0; // How many recovery packets were there u32 recoverypackets = 0; // How big is the file u64 filesize = diskfile->FileSize(); if (filesize > 0) { // Allocate a buffer to read data into // The buffer should be large enough to hold a whole // critical packet (i.e. file verification, file description, main, // and creator), but not necessarily a whole recovery packet. size_t buffersize = (size_t)std::min((u64)1048576, filesize); u8 *buffer = new u8[buffersize]; // Progress indicator ProgressMeter progress(sout, "Loading: ", filesize); // Start at the beginning of the file u64 offset = 0; // Continue as long as there is at least enough for the packet header while (offset + sizeof(PACKET_HEADER) <= filesize) { if (noiselevel > nlQuiet) progress.Update(offset); // Attempt to read the next packet header PACKET_HEADER header; if (!diskfile->Read(offset, &header, sizeof(header))) break; // Does this look like it might be a packet if (packet_magic != header.magic) { offset++; // Is there still enough for at least a whole packet header while (offset + sizeof(PACKET_HEADER) <= filesize) { // How much can we read into the buffer size_t want = (size_t)std::min((u64)buffersize, filesize-offset); // Fill the buffer if (!diskfile->Read(offset, buffer, want)) { offset = filesize; break; } // Scan the buffer for the magic value u8 *current = buffer; u8 *limit = &buffer[want-sizeof(PACKET_HEADER)]; while (current <= limit && packet_magic != ((PACKET_HEADER*)current)->magic) { current++; } // What file offset did we reach offset += current-buffer; // Did we find the magic if (current <= limit) { memcpy(&header, current, sizeof(header)); break; } } // Did we reach the end of the file if (offset + sizeof(PACKET_HEADER) > filesize) { break; } } // We have found the magic // Check the packet length if (sizeof(PACKET_HEADER) > header.length || // packet length is too small 0 != (header.length & 3) || // packet length is not a multiple of 4 filesize < offset + header.length) // packet would extend beyond the end of the file { offset++; continue; } // Compute the MD5 Hash of the packet MD5Context context; context.Update(&header.setid, sizeof(header)-offsetof(PACKET_HEADER, setid)); // How much more do I need to read to get the whole packet u64 current = offset+sizeof(PACKET_HEADER); u64 limit = offset+header.length; while (current < limit) { size_t want = (size_t)std::min((u64)buffersize, limit-current); if (!diskfile->Read(current, buffer, want)) break; context.Update(buffer, want); current += want; } // Did the whole packet get processed if (current nlQuiet) progress.Update(offset); delete [] buffer; } // We have finished with the file for now diskfile->Close(); // Did we actually find any interesting packets if (packets > 0) { if (noiselevel > nlQuiet) { sout << "Loaded " << packets << " new packets"; if (recoverypackets > 0) sout << " including " << recoverypackets << " recovery blocks"; sout << std::endl; } // Remember that the file was processed bool success = diskFileMap.Insert(diskfile); assert(success); } else { if (noiselevel > nlQuiet) sout << "No new packets found" << std::endl; delete diskfile; } return true; } // Finish loading a recovery packet bool Par2Repairer::LoadRecoveryPacket(DiskFile *diskfile, u64 offset, PACKET_HEADER &header) { RecoveryPacket *packet = new RecoveryPacket; // Load the packet from disk if (!packet->Load(diskfile, offset, header)) { delete packet; return false; } // What is the exponent value of this recovery packet u32 exponent = packet->Exponent(); // Try to insert the new packet into the recovery packet map std::pair::const_iterator, bool> location = recoverypacketmap.insert(std::pair(exponent, packet)); // Did the insert fail if (!location.second) { // The packet must be a duplicate of one we already have delete packet; return false; } return true; } // Finish loading a file description packet bool Par2Repairer::LoadDescriptionPacket(DiskFile *diskfile, u64 offset, PACKET_HEADER &header) { DescriptionPacket *packet = new DescriptionPacket; // Load the packet from disk if (!packet->Load(diskfile, offset, header)) { delete packet; return false; } // What is the fileid const MD5Hash &fileid = packet->FileId(); // Look up the fileid in the source file map for an existing source file entry std::map::iterator sfmi = sourcefilemap.find(fileid); Par2RepairerSourceFile *sourcefile = (sfmi == sourcefilemap.end()) ? 0 :sfmi->second; // Was there an existing source file if (sourcefile) { // Does the source file already have a description packet if (sourcefile->GetDescriptionPacket()) { // Yes. We don't need another copy delete packet; return false; } else { // No. Store the packet in the source file sourcefile->SetDescriptionPacket(packet); return true; } } else { // Create a new source file for the packet sourcefile = new Par2RepairerSourceFile(packet, NULL); // Record the source file in the source file map sourcefilemap.insert(std::pair(fileid, sourcefile)); return true; } } // Finish loading a file verification packet bool Par2Repairer::LoadVerificationPacket(DiskFile *diskfile, u64 offset, PACKET_HEADER &header) { VerificationPacket *packet = new VerificationPacket; // Load the packet from disk if (!packet->Load(diskfile, offset, header)) { delete packet; return false; } // What is the fileid const MD5Hash &fileid = packet->FileId(); // Look up the fileid in the source file map for an existing source file entry std::map::iterator sfmi = sourcefilemap.find(fileid); Par2RepairerSourceFile *sourcefile = (sfmi == sourcefilemap.end()) ? 0 :sfmi->second; // Was there an existing source file if (sourcefile) { // Does the source file already have a verification packet if (sourcefile->GetVerificationPacket()) { // Yes. We don't need another copy. delete packet; return false; } else { // No. Store the packet in the source file sourcefile->SetVerificationPacket(packet); return true; } } else { // Create a new source file for the packet sourcefile = new Par2RepairerSourceFile(NULL, packet); // Record the source file in the source file map sourcefilemap.insert(std::pair(fileid, sourcefile)); return true; } } // Finish loading the main packet bool Par2Repairer::LoadMainPacket(DiskFile *diskfile, u64 offset, PACKET_HEADER &header) { // Do we already have a main packet if (0 != mainpacket) return false; MainPacket *packet = new MainPacket; // Load the packet from disk; if (!packet->Load(diskfile, offset, header)) { delete packet; return false; } mainpacket = packet; return true; } // Finish loading the creator packet bool Par2Repairer::LoadCreatorPacket(DiskFile *diskfile, u64 offset, PACKET_HEADER &header) { // Do we already have a creator packet if (0 != creatorpacket) return false; CreatorPacket *packet = new CreatorPacket; // Load the packet from disk; if (!packet->Load(diskfile, offset, header)) { delete packet; return false; } creatorpacket = packet; return true; } // Load packets from other PAR2 files with names based on the original PAR2 file bool Par2Repairer::LoadPacketsFromOtherFiles(std::string filename) { // Split the original PAR2 filename into path and name parts std::string path; std::string name; DiskFile::SplitFilename(filename, path, name); std::string::size_type where; // Trim ".par2" off of the end original name // Look for the last "." in the filename while (std::string::npos != (where = name.find_last_of('.'))) { // Trim what follows the last . std::string tail = name.substr(where+1); name = name.substr(0,where); // Was what followed the last "." "par2" if (0 == stricmp(tail.c_str(), "par2")) break; } // If what is left ends in ".volNNN-NNN" or ".volNNN+NNN" strip that as well // Is there another "." if (std::string::npos != (where = name.find_last_of('.'))) { // What follows the "." std::string tail = name.substr(where+1); // Scan what follows the last "." to see of it matches vol123-456 or vol123+456 int n = 0; std::string::const_iterator p; for (p=tail.begin(); p!=tail.end(); ++p) { char ch = *p; if (0 == n) { if (tolower(ch) == 'v') { n++; } else { break; } } else if (1 == n) { if (tolower(ch) == 'o') { n++; } else { break; } } else if (2 == n) { if (tolower(ch) == 'l') { n++; } else { break; } } else if (3 == n) { if (isdigit(ch)) {} else if (ch == '-' || ch == '+') { n++; } else { break; } } else if (4 == n) { if (isdigit(ch)) {} else { break; } } } // If we matched then retain only what precedes the "." if (p == tail.end()) { name = name.substr(0,where); } } // Find files called "*.par2" or "name.*.par2" { std::string wildcard = name.empty() ? "*.par2" : name + ".*.par2"; std::unique_ptr< std::list > files( DiskFile::FindFiles(path, wildcard, false) ); par2list.splice(par2list.end(), *files); std::string wildcardu = name.empty() ? "*.PAR2" : name + ".*.PAR2"; std::unique_ptr< std::list > filesu( DiskFile::FindFiles(path, wildcardu, false) ); par2list.splice(par2list.end(), *filesu); // Load packets from each file that was found for (std::list::const_iterator s=par2list.begin(); s!=par2list.end(); ++s) { LoadPacketsFromFile(*s); } // delete files; Taken care of by unique_ptr<> // delete filesu; } return true; } // Load packets from any other PAR2 files whose names are given on the command line bool Par2Repairer::LoadPacketsFromExtraFiles(const std::vector &extrafiles) { for (std::vector::const_iterator i=extrafiles.begin(); i!=extrafiles.end(); i++) { std::string filename = *i; // If the filename contains ".par2" anywhere if (std::string::npos != filename.find(".par2") || std::string::npos != filename.find(".PAR2")) { LoadPacketsFromFile(filename); } } return true; } // Check that the packets are consistent and discard any that are not bool Par2Repairer::CheckPacketConsistency(void) { // Do we have a main packet if (0 == mainpacket) { // If we don't have a main packet, then there is nothing more that we can do. // We cannot verify or repair any files. serr << "Main packet not found." << std::endl; return false; } // Remember the block size from the main packet blocksize = mainpacket->BlockSize(); // Check that the recovery blocks have the correct amount of data // and discard any that don't { std::map::iterator rp = recoverypacketmap.begin(); while (rp != recoverypacketmap.end()) { if (rp->second->BlockSize() == blocksize) { ++rp; } else { serr << "Incorrect sized recovery block for exponent " << rp->second->Exponent() << " discarded" << std::endl; delete rp->second; std::map::iterator x = rp++; recoverypacketmap.erase(x); } } } // Check for source files that have no description packet or where the // verification packet has the wrong number of entries and discard them. { std::map::iterator sf = sourcefilemap.begin(); while (sf != sourcefilemap.end()) { // Do we have a description packet DescriptionPacket *descriptionpacket = sf->second->GetDescriptionPacket(); if (descriptionpacket == 0) { // No description packet // Discard the source file delete sf->second; std::map::iterator x = sf++; sourcefilemap.erase(x); continue; } // Compute and store the block count from the filesize and blocksize if (!sf->second->SetBlockCount(blocksize)) { serr << "Too many blocks in source file \"" << descriptionpacket->FileName() << "\" discarded" << std::endl; delete sf->second; std::map::iterator x = sf++; sourcefilemap.erase(x); continue; } // Do we have a verification packet VerificationPacket *verificationpacket = sf->second->GetVerificationPacket(); if (verificationpacket == 0) { // No verification packet // That is ok, but we won't be able to use block verification. // Proceed to the next file. ++sf; continue; } // Compare the calculated block count with the verification packet. if (sf->second->BlockCount() != verificationpacket->BlockCount()) { // The block counts are different! serr << "Incorrectly sized verification packet for \"" << descriptionpacket->FileName() << "\" discarded" << std::endl; // Discard the source file delete sf->second; std::map::iterator x = sf++; sourcefilemap.erase(x); continue; } // Everything is ok. // Proceed to the next file ++sf; } } if (noiselevel > nlQuiet) { sout << "There are " << mainpacket->RecoverableFileCount() << " recoverable files and " << mainpacket->TotalFileCount() - mainpacket->RecoverableFileCount() << " other files.\n" "The block size used was " << blocksize << " bytes." << std::endl; } return true; } // Use the information in the main packet to get the source files // into the correct order and determine their filenames bool Par2Repairer::CreateSourceFileList(void) { // For each FileId entry in the main packet for (u32 filenumber=0; filenumberTotalFileCount(); filenumber++) { const MD5Hash &fileid = mainpacket->FileId(filenumber); // Look up the fileid in the source file map std::map::iterator sfmi = sourcefilemap.find(fileid); Par2RepairerSourceFile *sourcefile = (sfmi == sourcefilemap.end()) ? 0 :sfmi->second; if (sourcefile) { sourcefile->ComputeTargetFileName(sout, serr, noiselevel, basepath); // Need actual filesize on disk for mt-progress line sourcefile->SetDiskFileSize(); } sourcefiles.push_back(sourcefile); } return true; } // Determine the total number of DataBlocks for the recoverable source files // The allocate the DataBlocks and assign them to each source file bool Par2Repairer::AllocateSourceBlocks(void) { sourceblockcount = 0; u32 filenumber = 0; std::vector::iterator sf = sourcefiles.begin(); // For each recoverable source file while (filenumber < mainpacket->RecoverableFileCount() && sf != sourcefiles.end()) { // Do we have a source file Par2RepairerSourceFile *sourcefile = *sf; if (sourcefile) { u32 blockcount = sourcefile->BlockCount(); if (blockcount > ((u32)~0) - sourceblockcount) { serr << "Too many source blocks in recovery set." << std::endl; return false; } sourceblockcount += blockcount; } else { // No details for this source file so we don't know what the // total number of source blocks is // sourceblockcount = 0; // break; } ++sf; ++filenumber; } // Did we determine the total number of source blocks if (sourceblockcount > 0) { // Yes. // Allocate all of the Source and Target DataBlocks (which will be used // to read and write data to disk). sourceblocks.resize(sourceblockcount); targetblocks.resize(sourceblockcount); // Which DataBlocks will be allocated first std::vector::iterator sourceblock = sourceblocks.begin(); std::vector::iterator targetblock = targetblocks.begin(); u64 totalsize = 0; u32 blocknumber = 0; filenumber = 0; sf = sourcefiles.begin(); while (filenumber < mainpacket->RecoverableFileCount() && sf != sourcefiles.end()) { Par2RepairerSourceFile *sourcefile = *sf; if (sourcefile) { totalsize += sourcefile->GetDescriptionPacket()->FileSize(); u32 blockcount = sourcefile->BlockCount(); // Allocate the source and target DataBlocks to the sourcefile sourcefile->SetBlocks(blocknumber, blockcount, sourceblock, targetblock, blocksize); blocknumber++; sourceblock += blockcount; targetblock += blockcount; } ++sf; ++filenumber; } blocksallocated = true; if (noiselevel > nlQuiet) { sout << "There are a total of " << sourceblockcount << " data blocks.\n" "The total size of the data files is " << totalsize << " bytes." << std::endl; } } return true; } // Create a verification hash table for all files for which we have not // found a complete version of the file and for which we have // a verification packet bool Par2Repairer::PrepareVerificationHashTable(void) { if (noiselevel >= nlDebug) sout << "[DEBUG] Prepare verification hashtable" << std::endl; // Choose a size for the hash table verificationhashtable.SetLimit(sourceblockcount); // Will any files be block verifiable blockverifiable = false; // For each source file std::vector::iterator sf = sourcefiles.begin(); while (sf != sourcefiles.end()) { // Get the source file Par2RepairerSourceFile *sourcefile = *sf; if (sourcefile) { // Do we have a verification packet if (0 != sourcefile->GetVerificationPacket()) { // Yes. Load the verification entries into the hash table verificationhashtable.Load(sourcefile, blocksize); blockverifiable = true; } else { // No. We can only check the whole file unverifiablesourcefiles.push_back(sourcefile); } } ++sf; } return true; } // Compute the table for the sliding CRC computation bool Par2Repairer::ComputeWindowTable(void) { if (noiselevel >= nlDebug) sout << "[DEBUG] compute window table" << std::endl; if (blockverifiable) { GenerateWindowTable(blocksize, windowtable); } return true; } static bool SortSourceFilesByFileName(Par2RepairerSourceFile *low, Par2RepairerSourceFile *high) { return low->TargetFileName() < high->TargetFileName(); } // Attempt to verify all of the source files bool Par2Repairer::VerifySourceFiles(const std::string& basepath, std::vector& extrafiles) { if (noiselevel > nlQuiet) { sout << "\nVerifying source files:\n"; if (noiselevel >= nlNoisy) { sout << "Data hash method: " << hasherInput_methodName() << "\n" "MD5/CRC32 method: " << md5crc_methodName() << '\n'; } sout << std::endl; } std::atomic finalresult(true); // Created a sorted list of the source files and verify them in that // order rather than the order they are in the main packet. std::vector sortedfiles; u32 filenumber = 0; std::vector::iterator sf = sourcefiles.begin(); u64 mttotalsize = 0; while (sf != sourcefiles.end()) { // Do we have a source file Par2RepairerSourceFile *sourcefile = *sf; if (sourcefile) { sortedfiles.push_back(sourcefile); // Total filesizes for mt-progress line mttotalsize += sourcefile->DiskFileSize(); } else { // Was this one of the recoverable files if (filenumber < mainpacket->RecoverableFileCount()) { serr << "No details available for recoverable file number " << filenumber+1 << ".\nRecovery will not be possible." << std::endl; // Set error but let verification of other files continue finalresult.store(false, std::memory_order_relaxed); } else { serr << "No details available for non-recoverable file number " << filenumber - mainpacket->RecoverableFileCount() + 1 << std::endl; } } ++sf; } std::sort(sortedfiles.begin(), sortedfiles.end(), SortSourceFilesByFileName); MTProgressMeter progress(sout, "Scanning: ", mttotalsize, output_lock); std::mutex dfm_lock, xfiles_lock; // Start verifying the files foreach_parallel(sortedfiles, Par2Repairer::GetFileThreads(), [&, this](Par2RepairerSourceFile* const& sortedfile) { // Do we have a source file Par2RepairerSourceFile *sourcefile = sortedfile; // What filename does the file use const std::string& file = sourcefile->TargetFileName(); const std::string& name = DiskFile::SplitRelativeFilename(file, basepath); const std::string& target_pathname = DiskFile::GetCanonicalPathname(file); if (noiselevel >= nlDebug) { std::lock_guard lock(output_lock); sout << "[DEBUG] VerifySourceFiles ----\n" "[DEBUG] file: " << file << "\n" "[DEBUG] name: " << name << "\n" "[DEBUG] targ: " << target_pathname << std::endl; } // if the target file is in the list of extra files, we remove it // from the extra files. { std::lock_guard lock(xfiles_lock); std::vector::iterator it = extrafiles.begin(); for (; it != extrafiles.end(); ++it) { const std::string& e = *it; const std::string& extra_pathname = e; if (!extra_pathname.compare(target_pathname)) { extrafiles.erase(it); break; } } } // Check to see if we have already used this file dfm_lock.lock(); bool b = diskFileMap.Find(file) != 0; dfm_lock.unlock(); if (b) { finalresult.store(false, std::memory_order_relaxed); // The file has already been used! std::lock_guard lock(output_lock); serr << "Source file " << name << " is a duplicate." << std::endl; } else { DiskFile *diskfile = new DiskFile(sout, serr, output_lock); // Does the target file exist if (diskfile->Open(file)) { // Yes. Record that fact. sourcefile->SetTargetExists(true); // Remember that the DiskFile is the target file sourcefile->SetTargetFile(diskfile); // Remember that we have processed this file dfm_lock.lock(); bool success = diskFileMap.Insert(diskfile); dfm_lock.unlock(); assert(success); // Do the actual verification if (!VerifyDataFile(diskfile, sourcefile, basepath, progress)) finalresult.store(false, std::memory_order_relaxed); // We have finished with the file for now diskfile->Close(); } else { // The file does not exist. delete diskfile; if (noiselevel > nlSilent) { std::lock_guard lock(output_lock); sout << "Target: \"" << name << "\" - missing." << std::endl; } } } }); // Find out how much data we have found UpdateVerificationResults(); return finalresult.load(std::memory_order_relaxed); } // Scan any extra files specified on the command line bool Par2Repairer::VerifyExtraFiles(const std::vector &extrafiles, const std::string &basepath, const bool renameonly) { if (noiselevel > nlQuiet) sout << "\nScanning extra files:\n" << std::endl; if (completefilecount < mainpacket->RecoverableFileCount()) { // Total size of extra files for mt-progress line u64 mttotalextrasize = 0; for (size_t i=0; i progress(sout, "Scanning: ", mttotalextrasize, output_lock); std::mutex dfm_lock; foreach_parallel(extrafiles, Par2Repairer::GetFileThreads(), [&, this](const std::string& extrafile) { std::string filename = extrafile; // If the filename does not include ".par2" we are interested in it. if (std::string::npos == filename.find(".par2") && std::string::npos == filename.find(".PAR2")) { filename = DiskFile::GetCanonicalPathname(filename); // Has this file already been dealt with dfm_lock.lock(); bool b = diskFileMap.Find(filename) == 0; dfm_lock.unlock(); if (b) { DiskFile *diskfile = new DiskFile(sout, serr, output_lock); // Does the file exist if (!diskfile->Open(filename)) { delete diskfile; return; } // Remember that we have processed this file dfm_lock.lock(); bool success = diskFileMap.Insert(diskfile); dfm_lock.unlock(); assert(success); // Do the actual verification VerifyDataFile(diskfile, 0, basepath, progress, renameonly); // Ignore errors // We have finished with the file for now diskfile->Close(); } } }); } // Find out how much data we have found UpdateVerificationResults(); return true; } // Attempt to match the data in the DiskFile with the source file bool Par2Repairer::VerifyDataFile(DiskFile *diskfile, Par2RepairerSourceFile *sourcefile, const std::string &basepath, MTProgressMeter &progress, const bool renameonly) { MatchType matchtype; // What type of match was made MD5Hash hashfull; // The MD5 Hash of the whole file MD5Hash hash16k; // The MD5 Hash of the files 16k of the file // Are there any files that can be verified at the block level if (blockverifiable) { u32 count; // Scan the file at the block level. if (!ScanDataFile(diskfile, // [in] The file to scan basepath, progress, renameonly, // [in] Only look for perfect matches sourcefile, // [in/out] Modified in the match is for another source file matchtype, // [out] hashfull, // [out] hash16k, // [out] count)) // [out] return false; switch (matchtype) { case eNoMatch: // No data was found at all. // Continue to next test. break; case ePartialMatch: { // We found some data. // Return them. return true; } break; case eFullMatch: { // We found a perfect match. sourcefile->SetCompleteFile(diskfile); // Return the match return true; } break; } } // We did not find a match for any blocks of data within the file, but if // there are any files for which we did not have a verification packet // we can try a simple match of the hash for the whole file. // Are there any files that cannot be verified at the block level if (!unverifiablesourcefiles.empty()) { // Would we have already computed the file hashes if (!blockverifiable) { u64 filesize = diskfile->FileSize(); size_t buffersize = 1024*1024; if (buffersize > std::min(blocksize, filesize)) buffersize = (size_t)std::min(blocksize, filesize); char *buffer = new char[buffersize]; u64 offset = 0; MD5Context context; while (offset < filesize) { size_t want = (size_t)std::min((u64)buffersize, filesize-offset); if (!diskfile->Read(offset, buffer, want)) { delete [] buffer; return false; } // Will the newly read data reach the 16k boundary if (offset < 16384 && offset + want >= 16384) { context.Update(buffer, (size_t)(16384-offset)); // Compute the 16k hash MD5Context temp = context; temp.Final(hash16k); // Is there more data if (offset + want > 16384) { context.Update(&buffer[16384-offset], (size_t)(offset+want)-16384); } } else { context.Update(buffer, want); } offset += want; } // Compute the file hash MD5Hash hashfull; context.Final(hashfull); // If we did not have 16k of data, then the 16k hash // is the same as the full hash if (filesize < 16384) { hash16k = hashfull; } } std::list::iterator sf = unverifiablesourcefiles.begin(); // Compare the hash values of each source file for a match while (sf != unverifiablesourcefiles.end()) { sourcefile = *sf; // Does the file match if (sourcefile->GetCompleteFile() == 0 && diskfile->FileSize() == sourcefile->GetDescriptionPacket()->FileSize() && hash16k == sourcefile->GetDescriptionPacket()->Hash16k() && hashfull == sourcefile->GetDescriptionPacket()->HashFull()) { if (noiselevel > nlSilent) { std::lock_guard lock(output_lock); sout << diskfile->FileName() << " is a perfect match for " << sourcefile->GetDescriptionPacket()->FileName() << std::endl; } // Record that we have a perfect match for this source file sourcefile->SetCompleteFile(diskfile); if (blocksallocated) { // Allocate all of the DataBlocks for the source file to the DiskFile u64 offset = 0; u64 filesize = sourcefile->GetDescriptionPacket()->FileSize(); std::vector::iterator sb = sourcefile->SourceBlocks(); while (offset < filesize) { DataBlock &datablock = *sb; datablock.SetLocation(diskfile, offset); datablock.SetLength(std::min(blocksize, filesize-offset)); offset += blocksize; ++sb; } } // Return the match return true; } ++sf; } } return true; } // Perform a sliding window scan of the DiskFile looking for blocks of data that // might belong to any of the source files (for which a verification packet was // available). If a block of data might be from more than one source file, prefer // the one specified by the "sourcefile" parameter. If the first data block // found is for a different source file then "sourcefile" is changed accordingly. bool Par2Repairer::ScanDataFile(DiskFile *diskfile, // [in] std::string basepath, // [in] MTProgressMeter &progress, // [in] const bool renameonly, // [in] Par2RepairerSourceFile* &sourcefile, // [in/out] MatchType &matchtype, // [out] MD5Hash &hashfull, // [out] MD5Hash &hash16k, // [out] u32 &count) // [out] { // Remember which file we wanted to match Par2RepairerSourceFile *originalsourcefile = sourcefile; std::string name; DiskFile::SplitRelativeFilename(diskfile->FileName(), basepath, name); // Is the file empty if (originalsourcefile != 0 && originalsourcefile->GetTargetExists()) { // don't check size if target was found } else if (diskfile->FileSize() == 0) { // If the file is empty, then just return if (noiselevel > nlSilent) { std::lock_guard lock(output_lock); sout << "File: \"" << name << "\" - empty." << std::endl; } return true; } std::string shortname; if (name.size() > 56) { shortname = name.substr(0, 28) + "..." + name.substr(name.size()-28); } else { shortname = name; } // Create the checksummer for the file and start reading from it FileCheckSummer filechecksummer(diskfile, blocksize, windowtable); if (!filechecksummer.Start()) return false; // Assume we will make a perfect match for the file matchtype = eFullMatch; // How many matches have we had count = 0; // How many blocks have already been found u32 duplicatecount = 0; // Have we found data blocks in this file that belong to more than one target file bool multipletargets = false; // Which block do we expect to find first const VerificationHashEntry *nextentry = 0; // How far will we scan the file (1 byte at a time) // before skipping ahead looking for the next block u64 scandistance = std::min(skipleaway<<1, blocksize); // Distance to skip forward if we don't find a block u64 scanskip = skipdata ? blocksize - scandistance : 0; // Assume with are half way through scanning u64 scanoffset = scandistance >> 1; // Total number of bytes that were skipped whilst scanning u64 skippeddata = 0; // Offset of last data that was found u64 lastmatchoffset = 0; u64 oldoffset = 0; u64 printprogress = 0; if (noiselevel > nlQuiet) { std::lock_guard lock(output_lock); sout << "Opening: \"" << shortname << "\"" << std::endl; } // Whilst we have not reached the end of the file while (filechecksummer.Offset() < diskfile->FileSize()) { if (noiselevel > nlQuiet) { // Update progress indicator printprogress += filechecksummer.Offset() - oldoffset; if (printprogress == blocksize || filechecksummer.ShortBlock()) { progress.Add(printprogress); printprogress = 0; } oldoffset = filechecksummer.Offset(); } // If we fail to find a match, it might be because it was a duplicate of a block // that we have already found. bool duplicate; // Look for a match const VerificationHashEntry *currententry = verificationhashtable.FindMatch(nextentry, sourcefile, filechecksummer, duplicate); // Did we find a match if (currententry != 0) { if (lastmatchoffset < filechecksummer.Offset() && noiselevel > nlNormal) { progress.PrintLine((std::ostringstream() << "No data found between offset " << lastmatchoffset << " and " << filechecksummer.Offset()).str()); } // Is this the first match if (count == 0) { // Which source file was it sourcefile = currententry->SourceFile(); // If the first match found was not actually the first block // for the source file, or it was not at the start of the // data file: then this is a partial match. if (!currententry->FirstBlock() || filechecksummer.Offset() != 0) { matchtype = ePartialMatch; // In rename-only mode, skip files that are not perfect matches if (renameonly) { return true; } } } else { // If the match found is not the one which was expected // then this is a partial match if (currententry != nextentry) { matchtype = ePartialMatch; // In rename-only mode, skip files that are not perfect matches if (renameonly) { return true; } } // Is the match from a different source file if (sourcefile != currententry->SourceFile()) { multipletargets = true; } } if (blocksallocated) { // Record the match currententry->SetBlock(diskfile, filechecksummer.Offset()); } // Update the number of matches found count++; // What entry do we expect next nextentry = currententry->Next(); // Advance to the next block if (!filechecksummer.Jump(currententry->GetDataBlock()->GetLength())) return false; // If the next match fails, assume we hare half way through scanning for the next block scanoffset = scandistance >> 1; // Update offset of last match lastmatchoffset = filechecksummer.Offset(); } else { // This cannot be a perfect match matchtype = ePartialMatch; // In rename-only mode, skip files that are not perfect matches if (renameonly) { return true; } // Was this a duplicate match if (duplicate && false) // ignore duplicates { duplicatecount++; // What entry would we expect next nextentry = 0; // Advance one whole block if (!filechecksummer.Jump(blocksize)) return false; } else { // What entry do we expect next nextentry = 0; if (!filechecksummer.Step()) return false; u64 skipfrom = filechecksummer.Offset(); // Have we scanned too far without finding a block? if (scanskip > 0 && ++scanoffset >= scandistance && skipfrom < diskfile->FileSize()) { // Skip forwards to where we think we might find more data if (!filechecksummer.Jump(scanskip)) return false; // Update the count of skipped data skippeddata += filechecksummer.Offset() - skipfrom; // Reset scan offset to 0 scanoffset = 0; } } } } if (noiselevel > nlQuiet) { if (filechecksummer.Offset() == diskfile->FileSize()) progress.Add(filechecksummer.Offset() - oldoffset); } if (lastmatchoffset < filechecksummer.Offset() && noiselevel > nlNormal) { progress.PrintLine((std::ostringstream() << "No data found between offset " << lastmatchoffset << " and " << filechecksummer.Offset()).str()); } // Get the Full and 16k hash values of the file filechecksummer.GetFileHashes(hashfull, hash16k); if (noiselevel >= nlDebug) { std::ostringstream ss; if (duplicatecount > 0) ss << "[DEBUG] duplicates: " << duplicatecount << '\n'; ss << "[DEBUG] matchcount: " << count << "\n" "[DEBUG] ----------------------"; progress.PrintLine(ss.str()); } // Did we make any matches at all if (count > 0) { // If this still might be a perfect match, check the // hashes, file size, and number of blocks to confirm. if (matchtype != eFullMatch || count != sourcefile->GetVerificationPacket()->BlockCount() || diskfile->FileSize() != sourcefile->GetDescriptionPacket()->FileSize() || hashfull != sourcefile->GetDescriptionPacket()->HashFull() || hash16k != sourcefile->GetDescriptionPacket()->Hash16k()) { matchtype = ePartialMatch; if (noiselevel > nlSilent) { // Did we find data from multiple target files if (multipletargets) { // Were we scanning the target file or an extra file if (originalsourcefile != 0) { std::lock_guard lock(output_lock); sout << "Target: \"" << name << "\" - damaged, found " << count << " data blocks from several target files." << std::endl; } else { std::lock_guard lock(output_lock); sout << "File: \"" << name << "\" - found " << count << " data blocks from several target files." << std::endl; } } else { // Did we find data blocks that belong to the target file if (originalsourcefile == sourcefile) { std::lock_guard lock(output_lock); sout << "Target: \"" << name << "\" - damaged. Found " << count << " of " << sourcefile->GetVerificationPacket()->BlockCount() << " data blocks." << std::endl; } // Were we scanning the target file or an extra file else { std::string targetname; DiskFile::SplitRelativeFilename(sourcefile->TargetFileName(), basepath, targetname); if (originalsourcefile != 0) { std::lock_guard lock(output_lock); sout << "Target: \"" << name << "\" - damaged. Found " << count << " of " << sourcefile->GetVerificationPacket()->BlockCount() << " data blocks from \"" << targetname << "\"." << std::endl; } else { std::lock_guard lock(output_lock); sout << "File: \"" << name << "\" - found " << count << " of " << sourcefile->GetVerificationPacket()->BlockCount() << " data blocks from \"" << targetname << "\"." << std::endl; } } } if (skippeddata > 0) { std::lock_guard lock(output_lock); sout << skippeddata << " bytes of data were skipped whilst scanning.\n" "If there are not enough blocks found to repair: try again " "with the -N option." << std::endl; } } } else { if (noiselevel > nlSilent) { // Did we match the target file if (originalsourcefile == sourcefile) { std::lock_guard lock(output_lock); sout << "Target: \"" << name << "\" - found." << std::endl; } // Were we scanning the target file or an extra file else { std::string targetname; DiskFile::SplitRelativeFilename(sourcefile->TargetFileName(), basepath, targetname); if (originalsourcefile != 0) { std::lock_guard lock(output_lock); sout << "Target: \"" << name << "\" - is a match for \"" << targetname << "\"." << std::endl; } else { std::lock_guard lock(output_lock); sout << "File: \"" << name << "\" - is a match for \"" << targetname << "\"." << std::endl; } } } } } else { matchtype = eNoMatch; if (noiselevel > nlSilent) { // We found not data, but did the file actually contain blocks we // had already found in other files. if (duplicatecount > 0) { std::lock_guard lock(output_lock); sout << "File: \"" << name << "\" - found " << duplicatecount << " duplicate data blocks." << std::endl; } else { std::lock_guard lock(output_lock); sout << "File: \"" << name << "\" - no data found." << std::endl; } if (skippeddata > 0) { std::lock_guard lock(output_lock); sout << skippeddata << " bytes of data were skipped whilst scanning.\n" "If there are not enough blocks found to repair: try again " "with the -N option." << std::endl; } } } return true; } // Find out how much data we have found void Par2Repairer::UpdateVerificationResults(void) { availableblockcount = 0; missingblockcount = 0; completefilecount = 0; renamedfilecount = 0; damagedfilecount = 0; missingfilecount = 0; u32 filenumber = 0; std::vector::iterator sf = sourcefiles.begin(); // Check the recoverable files while (sf != sourcefiles.end() && filenumber < mainpacket->TotalFileCount()) { Par2RepairerSourceFile *sourcefile = *sf; if (sourcefile) { // Was a perfect match for the file found if (sourcefile->GetCompleteFile() != 0) { // Is it the target file or a different one if (sourcefile->GetCompleteFile() == sourcefile->GetTargetFile()) { completefilecount++; } else { renamedfilecount++; } availableblockcount += sourcefile->BlockCount(); } else { // Count the number of blocks that have been found std::vector::iterator sb = sourcefile->SourceBlocks(); for (u32 blocknumber=0; blocknumberBlockCount(); ++blocknumber, ++sb) { DataBlock &datablock = *sb; if (datablock.IsSet()) availableblockcount++; } // Does the target file exist if (sourcefile->GetTargetExists()) { damagedfilecount++; } else { missingfilecount++; } } } else { missingfilecount++; } ++filenumber; ++sf; } missingblockcount = sourceblockcount - availableblockcount; } // Check the verification results and report the results bool Par2Repairer::CheckVerificationResults(void) { // Is repair needed if (completefilecount < mainpacket->RecoverableFileCount() || renamedfilecount > 0 || damagedfilecount > 0 || missingfilecount > 0) { if (noiselevel > nlSilent) sout << "Repair is required." << std::endl; if (noiselevel > nlQuiet) { if (renamedfilecount > 0) sout << renamedfilecount << " file(s) have the wrong name.\n"; if (missingfilecount > 0) sout << missingfilecount << " file(s) are missing.\n"; if (damagedfilecount > 0) sout << damagedfilecount << " file(s) exist but are damaged.\n"; if (completefilecount > 0) sout << completefilecount << " file(s) are ok.\n"; sout << "You have " << availableblockcount << " out of " << sourceblockcount << " data blocks available." << std::endl; if (recoverypacketmap.size() > 0) sout << "You have " << (u32)recoverypacketmap.size() << " recovery blocks available." << std::endl; } // Is repair possible if (recoverypacketmap.size() >= missingblockcount) { if (noiselevel > nlSilent) sout << "Repair is possible." << std::endl; if (noiselevel > nlQuiet) { if (recoverypacketmap.size() > missingblockcount) sout << "You have an excess of " << (u32)recoverypacketmap.size() - missingblockcount << " recovery blocks." << std::endl; if (missingblockcount > 0) sout << missingblockcount << " recovery blocks will be used to repair." << std::endl; else if (recoverypacketmap.size()) sout << "None of the recovery blocks will be used for the repair." << std::endl; } return true; } else { if (noiselevel > nlSilent) { sout << "Repair is not possible.\n" "You need " << missingblockcount - recoverypacketmap.size() << " more recovery blocks to be able to repair." << std::endl; } return false; } } else { if (noiselevel > nlSilent) sout << "All files are correct, repair is not required." << std::endl; return true; } return true; } // Rename any damaged or missnamed target files. bool Par2Repairer::RenameTargetFiles(void) { u32 filenumber = 0; std::vector::iterator sf = sourcefiles.begin(); // Rename any damaged target files while (sf != sourcefiles.end() && filenumber < mainpacket->TotalFileCount()) { Par2RepairerSourceFile *sourcefile = *sf; // If the target file exists but is not a complete version of the file if (sourcefile->GetTargetExists() && sourcefile->GetTargetFile() != sourcefile->GetCompleteFile()) { DiskFile *targetfile = sourcefile->GetTargetFile(); // Rename it diskFileMap.Remove(targetfile); if (!targetfile->Rename()) return false; backuplist.push_back(targetfile); bool success = diskFileMap.Insert(targetfile); assert(success); // We no longer have a target file sourcefile->SetTargetExists(false); sourcefile->SetTargetFile(0); } ++sf; ++filenumber; } filenumber = 0; sf = sourcefiles.begin(); // Rename any missnamed but complete versions of the files while (sf != sourcefiles.end() && filenumber < mainpacket->TotalFileCount()) { Par2RepairerSourceFile *sourcefile = *sf; // If there is no targetfile and there is a complete version if (sourcefile->GetTargetFile() == 0 && sourcefile->GetCompleteFile() != 0) { DiskFile *targetfile = sourcefile->GetCompleteFile(); // Rename it diskFileMap.Remove(targetfile); if (!targetfile->Rename(sourcefile->TargetFileName())) return false; bool success = diskFileMap.Insert(targetfile); assert(success); // This file is now the target file sourcefile->SetTargetExists(true); sourcefile->SetTargetFile(targetfile); // We have one more complete file completefilecount++; } ++sf; ++filenumber; } return true; } // Work out which files are being repaired, create them, and allocate // target DataBlocks to them, and remember them for later verification. bool Par2Repairer::CreateTargetFiles(void) { u32 filenumber = 0; std::vector::iterator sf = sourcefiles.begin(); // Create any missing target files while (sf != sourcefiles.end() && filenumber < mainpacket->TotalFileCount()) { Par2RepairerSourceFile *sourcefile = *sf; // If the file does not exist if (!sourcefile->GetTargetExists()) { DiskFile *targetfile = new DiskFile(sout, serr, output_lock); std::string filename = sourcefile->TargetFileName(); u64 filesize = sourcefile->GetDescriptionPacket()->FileSize(); // Create the target file if (!targetfile->Create(filename, filesize)) { delete targetfile; return false; } // This file is now the target file sourcefile->SetTargetExists(true); sourcefile->SetTargetFile(targetfile); // Remember this file bool success = diskFileMap.Insert(targetfile); assert(success); u64 offset = 0; std::vector::iterator tb = sourcefile->TargetBlocks(); // Allocate all of the target data blocks while (offset < filesize) { DataBlock &datablock = *tb; datablock.SetLocation(targetfile, offset); datablock.SetLength(std::min(blocksize, filesize-offset)); offset += blocksize; ++tb; } // Add the file to the list of those that will need to be verified // once the repair has completed. verifylist.push_back(sourcefile); } ++sf; ++filenumber; } return true; } // Work out which data blocks are available, which need to be copied // directly to the output, and which need to be recreated, and compute // the appropriate Reed Solomon matrix. bool Par2Repairer::ComputeRSmatrix(void) { inputblocks.resize(sourceblockcount); // The DataBlocks that will read from disk copyblocks.resize(availableblockcount); // Those DataBlocks which need to be copied outputblocks.resize(missingblockcount); // Those DataBlocks that will re recalculated std::vector::iterator inputblock = inputblocks.begin(); std::vector::iterator copyblock = copyblocks.begin(); std::vector::iterator outputblock = outputblocks.begin(); // Build an array listing which source data blocks are present and which are missing std::vector present; present.resize(sourceblockcount); std::vector::iterator sourceblock = sourceblocks.begin(); std::vector::iterator targetblock = targetblocks.begin(); std::vector::iterator pres = present.begin(); // Iterate through all source blocks for all files while (sourceblock != sourceblocks.end()) { // Was this block found if (sourceblock->IsSet()) { //// Open the file the block was found in. //if (!sourceblock->Open()) // return false; // Record that the block was found *pres = true; // Add the block to the list of those which will be read // as input (and which might also need to be copied). *inputblock = &*sourceblock; *copyblock = &*targetblock; ++inputblock; ++copyblock; } else { // Record that the block was missing *pres = false; // Add the block to the list of those to be written *outputblock = &*targetblock; ++outputblock; } ++sourceblock; ++targetblock; ++pres; } // If we need to, compute and solve the RS matrix if (missingblockcount == 0) return true; // Create a list of available recovery exponents std::vector recindex; recindex.reserve(recoverypacketmap.size()); for (auto rp = recoverypacketmap.begin(); rp != recoverypacketmap.end(); rp++) recindex.push_back(rp->first); // Set up progress display std::function progressfunc; std::unique_ptr> progress; bool progressStarted = false; if (noiselevel > nlQuiet) { sout << "Computing Reed Solomon matrix." << std::endl; progressfunc = [&](u16 done, u16 total) { if (done == 0) { if(progressStarted) sout << "Bad recovery block discarded and retrying RS matrix inversion." << std::endl; else { progressStarted = true; if (noiselevel >= nlNoisy) { sout << "Construction accel: " << rs.getPointMulMethodName() << "\nInversion method: " << Galois16Mul::methodToText((Galois16Methods)rs.regionMethod) << std::endl; } } sout << "Constructing: 0.0%\r" << std::flush; progress.reset(new ProgressMeter(sout, "Solving: ", total)); return; } if (done == 1) sout << "Constructing: done." << std::endl; progress->Update(done-1); }; } // Compute + solve RS matrix if (!rs.Compute(present, availableblockcount, recindex, progressfunc)) { serr << "RS computation error (this may be fixable with more recovery blocks)." << std::endl; return false; } progress.reset(nullptr); if (noiselevel > nlQuiet) sout << "Solving: done." << std::endl; if (noiselevel >= nlDebug) { for (unsigned int row=0; rowGetDataBlock(); // Add the recovery block to the list of blocks that will be read *inputblock = recoveryblock; ++inputblock; } return true; } // Allocate memory buffers for reading and writing data to disk. bool Par2Repairer::AllocateBuffers(size_t memorylimit) { // We use intermediary buffers to transfer data with, so include those in the limit calculation u32 blockoverhead = NUM_TRANSFER_BUFFERS + std::min((u32)NUM_PARPAR_BUFFERS*2, sourceblockcount+1); // Would single pass processing use too much memory if (blocksize * (missingblockcount + blockoverhead) > memorylimit) { // Pick a size that is small enough chunksize = ~3 & (memorylimit / (missingblockcount + blockoverhead)); } else { chunksize = (size_t)blocksize; } if (MAX_CHUNK_SIZE != 0 && chunksize > MAX_CHUNK_SIZE) chunksize = MAX_CHUNK_SIZE; if (noiselevel >= nlDebug) sout << "[DEBUG] Process chunk size: " << chunksize << std::endl; // Allocate buffer transferbuffer = new u8[(size_t)chunksize * NUM_TRANSFER_BUFFERS]; if (transferbuffer == NULL) { serr << "Could not allocate buffer memory." << std::endl; return false; } return true; } // Read source data, process it through the RS matrix and write it to disk. bool Par2Repairer::ProcessData(u64 blockoffset, size_t blocklength, ProgressMeter &progress) { u64 totalwritten = 0; std::vector::iterator inputblock = inputblocks.begin(); std::vector::iterator copyblock = copyblocks.begin(); u32 inputindex = 0; DiskFile *lastopenfile = NULL; // Are there any blocks which need to be reconstructed if (missingblockcount > 0) { // For tracking input buffer availability std::future bufferavail[NUM_TRANSFER_BUFFERS]; u32 bufferindex = NUM_TRANSFER_BUFFERS - 1; // Set all input buffers to available for (i32 i = 0; i < NUM_TRANSFER_BUFFERS; i++) { std::promise stub; bufferavail[i] = stub.get_future(); stub.set_value(); } // Clear existing output data in backend parpar.discardOutput(); // Temporary storage for factors std::vector factors(missingblockcount); // For each input block while (inputblock != inputblocks.end()) { // Are we reading from a new file? if (lastopenfile != (*inputblock)->GetDiskFile()) { // Close the last file if (lastopenfile != NULL) { lastopenfile->Close(); } // Open the new file lastopenfile = (*inputblock)->GetDiskFile(); if (!lastopenfile->Open()) { return false; } } // Wait for next input buffer to become available bufferindex = (bufferindex + 1) % NUM_TRANSFER_BUFFERS; void *inputbuffer = (char*)transferbuffer + chunksize * bufferindex; bufferavail[bufferindex].get(); // Read data from the current input block if (!(*inputblock)->ReadData(blockoffset, blocklength, inputbuffer)) return false; // Have we reached the last source data block if (copyblock != copyblocks.end()) { // Does this block need to be copied to the target file if ((*copyblock)->IsSet()) { size_t wrote; // Write the block back to disk in the new target file if (!(*copyblock)->WriteData(blockoffset, blocklength, inputbuffer, wrote)) return false; totalwritten += wrote; } ++copyblock; } // Copy RS matrix column to send to backend for (u32 outputindex=0; outputindex nlQuiet) progress.Add(blocklength); ++inputblock; ++inputindex; } // Flush backend parpar.endInput().get(); } else { // Reconstruction is not required, we are just copying blocks between files // For each block that might need to be copied while (copyblock != copyblocks.end()) { // Does this block need to be copied if ((*copyblock)->IsSet()) { // Are we reading from a new file? if (lastopenfile != (*inputblock)->GetDiskFile()) { // Close the last file if (lastopenfile != NULL) { lastopenfile->Close(); } // Open the new file lastopenfile = (*inputblock)->GetDiskFile(); if (!lastopenfile->Open()) { return false; } } // Read data from the current input block if (!(*inputblock)->ReadData(blockoffset, blocklength, transferbuffer)) return false; size_t wrote; if (!(*copyblock)->WriteData(blockoffset, blocklength, transferbuffer, wrote)) return false; totalwritten += wrote; } if (noiselevel > nlQuiet) progress.Add(blocklength); ++copyblock; ++inputblock; } } // Close the last file if (lastopenfile != NULL) { lastopenfile->Close(); } if (noiselevel > nlQuiet) sout << "Writing recovered data\r"; if (missingblockcount > 0) { // For output, we only need two transfer buffers std::future outbufavail[2]; // Prepare first output outbufavail[0] = parpar.getOutput(0, transferbuffer); // For each output block that has been recomputed std::vector::iterator outputblock = outputblocks.begin(); for (u32 outputindex=0; outputindexWriteData(blockoffset, blocklength, outputbuffer, wrote)) return false; totalwritten += wrote; ++outputblock; } } if (noiselevel > nlQuiet) sout << "Wrote " << totalwritten << " bytes to disk" << std::endl; return true; } // Verify that all of the reconstructed target files are now correct bool Par2Repairer::VerifyTargetFiles(const std::string &basepath) { std::atomic finalresult(true); // Verify the target files in alphabetical order std::sort(verifylist.begin(), verifylist.end(), SortSourceFilesByFileName); u64 mttotalsize = 0; for (size_t i=0; iGetDescriptionPacket()->FileSize(); } MTProgressMeter progress(sout, "Scanning: ", mttotalsize, output_lock); // Iterate through each file in the verification list foreach_parallel(verifylist, Par2Repairer::GetFileThreads(), [&, this](Par2RepairerSourceFile* const& verifyfile) { Par2RepairerSourceFile *sourcefile = verifyfile; DiskFile *targetfile = sourcefile->GetTargetFile(); // Close the file if (targetfile->IsOpen()) targetfile->Close(); // Mark all data blocks for the file as unknown std::vector::iterator sb = sourcefile->SourceBlocks(); for (u32 blocknumber=0; blocknumberBlockCount(); blocknumber++) { sb->ClearLocation(); ++sb; } // Say we don't have a complete version of the file sourcefile->SetCompleteFile(0); // Re-open the target file if (!targetfile->Open()) { finalresult.store(false, std::memory_order_relaxed); return; } // Verify the file again if (!VerifyDataFile(targetfile, sourcefile, basepath, progress)) finalresult.store(false, std::memory_order_relaxed); // Close the file again targetfile->Close(); }); // Find out how much data we have found UpdateVerificationResults(); return finalresult.load(std::memory_order_relaxed); } // Delete all of the partly reconstructed files bool Par2Repairer::DeleteIncompleteTargetFiles(void) { std::vector::iterator sf = verifylist.begin(); // Iterate through each file in the verification list while (sf != verifylist.end()) { Par2RepairerSourceFile *sourcefile = *sf; if (sourcefile->GetTargetExists()) { DiskFile *targetfile = sourcefile->GetTargetFile(); // Close and delete the file if (targetfile->IsOpen()) targetfile->Close(); targetfile->Delete(); // Forget the file diskFileMap.Remove(targetfile); delete targetfile; // There is no target file sourcefile->SetTargetExists(false); sourcefile->SetTargetFile(0); } ++sf; } return true; } bool Par2Repairer::RemoveBackupFiles(void) { std::vector::iterator bf = backuplist.begin(); if (noiselevel > nlSilent && bf != backuplist.end()) { sout << "\nPurge backup files." << std::endl; } // Iterate through each file in the backuplist while (bf != backuplist.end()) { if (noiselevel > nlSilent) { std::string name; std::string path; DiskFile::SplitFilename((*bf)->FileName(), path, name); sout << "Remove \"" << name << "\"." << std::endl; } if ((*bf)->IsOpen()) (*bf)->Close(); (*bf)->Delete(); ++bf; } return true; } bool Par2Repairer::RemoveParFiles(void) { if (noiselevel > nlSilent && !par2list.empty()) { sout << "\nPurge par files." << std::endl; } for (std::list::const_iterator s=par2list.begin(); s!=par2list.end(); ++s) { DiskFile *diskfile = new DiskFile(sout, serr, output_lock); if (diskfile->Open(*s)) { if (noiselevel > nlSilent) { std::string name; std::string path; DiskFile::SplitFilename((*s), path, name); sout << "Remove \"" << name << "\"." << std::endl; } if (diskfile->IsOpen()) diskfile->Close(); diskfile->Delete(); } delete diskfile; } return true; } par2cmdline-turbo-1.5.0/src/par2repairer.h000066400000000000000000000243431524160147200204140ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef __PAR2REPAIRER_H__ #define __PAR2REPAIRER_H__ #include "../parpar/gf16/controller_cpu.h" #ifndef PARPAR_INVERT_SUPPORT # define PARPAR_INVERT_SUPPORT 1 #endif #include "../parpar/gf16/gfmat_inv.h" #include #include class Par2Repairer { public: Par2Repairer(std::ostream &sout, std::ostream &serr, const NoiseLevel noiselevel); ~Par2Repairer(void); Result Process(const size_t memorylimit, const std::string &basepath, const u32 nthreads, const u32 filethreads, std::string parfilename, const std::vector &extrafiles, const bool dorepair, // derived from operation const bool purgefiles, const bool renameonly, const bool skipdata, const u64 skipleaway ); protected: // Steps in verifying and repairing files: // Load packets from the specified file bool LoadPacketsFromFile(std::string filename); // Finish loading a recovery packet bool LoadRecoveryPacket(DiskFile *diskfile, u64 offset, PACKET_HEADER &header); // Finish loading a file description packet bool LoadDescriptionPacket(DiskFile *diskfile, u64 offset, PACKET_HEADER &header); // Finish loading a file verification packet bool LoadVerificationPacket(DiskFile *diskfile, u64 offset, PACKET_HEADER &header); // Finish loading the main packet bool LoadMainPacket(DiskFile *diskfile, u64 offset, PACKET_HEADER &header); // Finish loading the creator packet bool LoadCreatorPacket(DiskFile *diskfile, u64 offset, PACKET_HEADER &header); // Load packets from other PAR2 files with names based on the original PAR2 file bool LoadPacketsFromOtherFiles(std::string filename); // Load packets from any other PAR2 files whose names are given on the command line bool LoadPacketsFromExtraFiles(const std::vector &extrafiles); // Check that the packets are consistent and discard any that are not bool CheckPacketConsistency(void); // Use the information in the main packet to get the source files // into the correct order and determine their filenames bool CreateSourceFileList(void); // Determine the total number of DataBlocks for the recoverable source files // The allocate the DataBlocks and assign them to each source file bool AllocateSourceBlocks(void); // Create a verification hash table for all files for which we have not // found a complete version of the file and for which we have // a verification packet bool PrepareVerificationHashTable(void); // Compute the table for the sliding CRC computation bool ComputeWindowTable(void); // Attempt to verify all of the source files bool VerifySourceFiles(const std::string& basepath, std::vector& extrafiles); // Scan any extra files specified on the command line bool VerifyExtraFiles(const std::vector &extrafiles, const std::string &basepath, const bool renameonly); // Attempt to match the data in the DiskFile with the source file bool VerifyDataFile(DiskFile *diskfile, Par2RepairerSourceFile *sourcefile, const std::string &basepath, MTProgressMeter &progress, const bool renameonly = false); // Perform a sliding window scan of the DiskFile looking for blocks of data that // might belong to any of the source files (for which a verification packet was // available). If a block of data might be from more than one source file, prefer // the one specified by the "sourcefile" parameter. If the first data block // found is for a different source file then "sourcefile" is changed accordingly. bool ScanDataFile(DiskFile *diskfile, // [in] The file being scanned std::string basepath, // [in] MTProgressMeter &progress, // [in] const bool renameonly, // [in] Only look for perfect matches Par2RepairerSourceFile* &sourcefile, // [in/out] The source file matched MatchType &matchtype, // [out] The type of match MD5Hash &hashfull, // [out] The full hash of the file MD5Hash &hash16k, // [out] The hash of the first 16k u32 &count); // [out] The number of blocks found // Find out how much data we have found void UpdateVerificationResults(void); // Check the verification results and report the results bool CheckVerificationResults(void); // Rename any damaged or missnamed target files. bool RenameTargetFiles(void); // Work out which files are being repaired, create them, and allocate // target DataBlocks to them, and remember them for later verification. bool CreateTargetFiles(void); // Work out which data blocks are available, which need to be copied // directly to the output, and which need to be recreated, and compute // the appropriate Reed Solomon matrix. bool ComputeRSmatrix(void); // Allocate memory buffers for reading and writing data to disk. bool AllocateBuffers(size_t memorylimit); // Read source data, process it through the RS matrix and write it to disk. bool ProcessData(u64 blockoffset, size_t blocklength, ProgressMeter &progress); // Verify that all of the reconstructed target files are now correct bool VerifyTargetFiles(const std::string &basepath); // Delete all of the partly reconstructed files bool DeleteIncompleteTargetFiles(void); // list the files needing verification bool RemoveBackupFiles(void); bool RemoveParFiles(void); static u32 GetFileThreads(void) {return filethreads;} protected: std::ostream &sout; // stream for output (for commandline, this is cout) std::ostream &serr; // stream for errors (for commandline, this is cerr) std::mutex output_lock; const NoiseLevel noiselevel; // OnScreen display std::string searchpath; // Where to find files on disk std::string basepath; static u32 filethreads; // Number of threads for file processing bool skipdata; // Should we skip data whilst scanning u64 skipleaway; // The leaway +/- we should allow whilst scanning bool firstpacket; // Whether or not a valid packet has been found. MD5Hash setid; // The SetId extracted from the first packet. std::map recoverypacketmap; // One recovery packet for each exponent value. MainPacket *mainpacket; // One copy of the main packet. CreatorPacket *creatorpacket; // One copy of the creator packet. DiskFileMap diskFileMap; std::map sourcefilemap;// Map from FileId to SourceFile std::vector sourcefiles; // The source files std::vector verifylist; // Those source files that are being repaired std::vector backuplist; // Those source files backups std::list par2list; // list of par2 files u64 blocksize; // The block size. u64 chunksize; // How much of a block can be processed. u32 sourceblockcount; // The total number of blocks u32 availableblockcount; // How many undamaged blocks have been found u32 missingblockcount; // How many blocks are missing bool blocksallocated; // Whether or not the DataBlocks have been allocated std::vector sourceblocks; // The DataBlocks that will be read from disk std::vector targetblocks; // The DataBlocks that will be written to disk u32 windowtable[256]; // Table for sliding CRCs bool blockverifiable; // Whether and files can be verified at the block level VerificationHashTable verificationhashtable; // Hash table for block verification std::list unverifiablesourcefiles; // Files that are not block verifiable u32 completefilecount; // How many files are fully verified u32 renamedfilecount; // How many files are verified but have the wrong name u32 damagedfilecount; // How many files exist but are damaged u32 missingfilecount; // How many files are completely missing std::vector inputblocks; // Which DataBlocks will be read from disk std::vector copyblocks; // Which DataBlocks will copied back to disk std::vector outputblocks; // Which DataBlocks have to calculated using RS Galois16RecMatrix rs; // The Reed Solomon matrix. PAR2Proc parpar; // Main ParPar backend PAR2ProcCPU parparcpu; // ParPar CPU sub-backend void *transferbuffer; // Buffer for reading/writing DataBlocks (chunksize * num_transfer_buffers) }; #endif // __PAR2REPAIRER_H__ par2cmdline-turbo-1.5.0/src/par2repairersourcefile.cpp000066400000000000000000000107541524160147200230310ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "libpar2internal.h" #ifdef _MSC_VER #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif #endif Par2RepairerSourceFile::Par2RepairerSourceFile(DescriptionPacket *_descriptionpacket, VerificationPacket *_verificationpacket) : sourceblocks() , targetblocks() , targetfilename() { descriptionpacket = _descriptionpacket; verificationpacket = _verificationpacket; blockcount = 0; firstblocknumber = 0; // verificationhashtable = 0; targetexists = false; targetfile = 0; completefile = 0; diskfilesize = 0; } Par2RepairerSourceFile::~Par2RepairerSourceFile(void) { delete descriptionpacket; delete verificationpacket; // delete verificationhashtable; } void Par2RepairerSourceFile::SetDescriptionPacket(DescriptionPacket *_descriptionpacket) { descriptionpacket = _descriptionpacket; } void Par2RepairerSourceFile::SetVerificationPacket(VerificationPacket *_verificationpacket) { verificationpacket = _verificationpacket; } void Par2RepairerSourceFile::ComputeTargetFileName(std::ostream &sout, std::ostream &serr, const NoiseLevel noiselevel, const std::string &path) { // Get a version of the filename compatible with the OS std::string filename = DescriptionPacket::TranslateFilenameFromPar2ToLocal(sout, serr, noiselevel, descriptionpacket->FileName()); targetfilename = path + filename; } std::string Par2RepairerSourceFile::TargetFileName(void) const { return targetfilename; } void Par2RepairerSourceFile::SetTargetFile(DiskFile *diskfile) { targetfile = diskfile; } DiskFile* Par2RepairerSourceFile::GetTargetFile(void) const { return targetfile; } void Par2RepairerSourceFile::SetTargetExists(bool exists) { targetexists = exists; } bool Par2RepairerSourceFile::GetTargetExists(void) const { return targetexists; } void Par2RepairerSourceFile::SetCompleteFile(DiskFile *diskfile) { completefile = diskfile; } DiskFile* Par2RepairerSourceFile::GetCompleteFile(void) const { return completefile; } // Remember which source and target blocks will be used by this file // and set their lengths appropriately void Par2RepairerSourceFile::SetBlocks(u32 _blocknumber, u32 _blockcount, std::vector::iterator _sourceblocks, std::vector::iterator _targetblocks, u64 blocksize) { firstblocknumber = _blocknumber; blockcount = _blockcount; sourceblocks = _sourceblocks; targetblocks = _targetblocks; if (blockcount > 0) { u64 filesize = descriptionpacket->FileSize(); std::vector::iterator sb = sourceblocks; for (u32 blocknumber=0; blocknumberFileSize(); u64 count = filesize / blocksize + (filesize % blocksize != 0); if (count > (u64)~(u32)0) { blockcount = 0; return false; } blockcount = (u32)count; } else { blockcount = 0; } return true; } void Par2RepairerSourceFile::SetDiskFileSize() { diskfilesize = DiskFile::GetFileSize(targetfilename); } par2cmdline-turbo-1.5.0/src/par2repairersourcefile.h000066400000000000000000000112401524160147200224650ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef __PAR2REPAIRERSOURCEFILE_H__ #define __PAR2REPAIRERSOURCEFILE_H__ enum MatchType { eNoMatch = 0, ePartialMatch, eFullMatch }; // The Par2RepairerSourceFile object is used during verification and repair // to record details about a particular source file and the data blocks // for that file. class Par2RepairerSourceFile { public: // Construct the object and set the description and verification packets Par2RepairerSourceFile(DescriptionPacket *descriptionpacket, VerificationPacket *verificationpacket); ~Par2RepairerSourceFile(void); // Get/Set the description packet DescriptionPacket* GetDescriptionPacket(void) const {return descriptionpacket;} void SetDescriptionPacket(DescriptionPacket *descriptionpacket); // Get/Set the verification packet VerificationPacket* GetVerificationPacket(void) const {return verificationpacket;} void SetVerificationPacket(VerificationPacket *verificationpacket); // Record the details as to which data blocks belong to this source // file and set the length of each allocated block correctly. void SetBlocks(u32 _blocknumber, u32 _blockcount, std::vector::iterator _sourceblocks, std::vector::iterator _targetblocks, u64 blocksize); // Determine the block count from the file size and block size. bool SetBlockCount(u64 blocksize); // Set/Get which DiskFile will contain the final repaired version of the file void SetTargetFile(DiskFile *diskfile); DiskFile* GetTargetFile(void) const; // Set/Get whether or not the target file actually exists void SetTargetExists(bool exists); bool GetTargetExists(void) const; // Set/Get which DiskFile contains a full undamaged version of the source file void SetCompleteFile(DiskFile *diskfile); DiskFile* GetCompleteFile(void) const; // Compute/Get the filename for the final repaired version of the file void ComputeTargetFileName(std::ostream &sout, std::ostream &serr, const NoiseLevel noiselevel, const std::string &path); std::string TargetFileName(void) const; // Get the number of blocks that the file uses u32 BlockCount(void) const {return blockcount;} // Get the relative block number of the first block in the file u32 FirstBlockNumber(void) const {return firstblocknumber;} // Get the first source DataBlock for the file std::vector::iterator SourceBlocks(void) const {return sourceblocks;} // Get the first target DataBlock for the file std::vector::iterator TargetBlocks(void) const {return targetblocks;} // Set/Get "filesize on disk" needed for mt progress line void SetDiskFileSize(); u64 DiskFileSize(void) const {return diskfilesize;} protected: DescriptionPacket *descriptionpacket; // The file description packet VerificationPacket *verificationpacket; // The file verification packet u32 blockcount; // The number of DataBlocks in the file u32 firstblocknumber; // The block number of the first DataBlock std::vector::iterator sourceblocks; // The first source DataBlock std::vector::iterator targetblocks; // The first target DataBlock bool targetexists; // Whether the target file exists DiskFile *targetfile; // The final version of the file DiskFile *completefile; // A complete version of the file std::string targetfilename; // The filename of the target file u64 diskfilesize; // The filesize of sourcefile on disk }; #endif // __PAR2REPAIRERSOURCEFILE_H__ par2cmdline-turbo-1.5.0/src/progressmeter.h000066400000000000000000000132161524160147200207140ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef __PROGRESSMETER_H__ #define __PROGRESSMETER_H__ #include #include #include template class ProgressMeter { using steady_clock = std::chrono::steady_clock; const std::chrono::milliseconds PRINT_INTERVAL = std::chrono::milliseconds(50); std::ostream &sout; // stream for output (for commandline, this is cout) const std::string message; // message to display alongside percentage const float scale; // pre-computed multiplier to convert progress value into a percentage*10 TValue current; // last known progress value steady_clock::duration::rep printed; // last time progress was outputted inline u32 CalcThousandths(TValue val) const { return (u32)(scale * val + 0.5f); } inline bool PrintFraction(TValue oldval, TValue newval) { // if the displayed value won't change, don't print u32 newfraction = CalcThousandths(newval); if (CalcThousandths(oldval) == newfraction) return false; // check if enough time has passed steady_clock::time_point now = steady_clock::now(); steady_clock::time_point lastpoint = steady_clock::time_point(steady_clock::duration(printed)); // if enough time has passed, print the current progress, and update the time record if (now - lastpoint >= PRINT_INTERVAL || newfraction == 1000) { sout << message << newfraction/10 << '.' << newfraction%10 << "%\r" << std::flush; printed = now.time_since_epoch().count(); return true; } return false; } public: ProgressMeter(std::ostream &sout, const std::string &message, TValue total) : sout(sout), message(message), scale(1000.0f / total), current(0), printed(0) {} ProgressMeter(std::ostream &sout, const char *message, TValue total) : sout(sout), message(message), scale(1000.0f / total), current(0), printed(0) {} // NOTE: Update() doesn't always update current value, so don't mix it with Add() void Update(TValue newval) { if (PrintFraction(current, newval)) current = newval; } void Add(TValue amount) { TValue oldval = current; current += amount; PrintFraction(oldval, current); } }; template class MTProgressMeter { using steady_clock = std::chrono::steady_clock; const std::chrono::milliseconds PRINT_INTERVAL = std::chrono::milliseconds(50); std::ostream &sout; // stream for output (for commandline, this is cout) const std::string message; // message to display alongside percentage const float scale; // pre-computed multiplier to convert progress value into a percentage*10 std::atomic current; // last known progress value std::atomic printed; // last time progress was outputted std::mutex &output_lock; inline u32 CalcThousandths(TValue val) const { return (u32)(scale * val + 0.5f); } inline bool PrintFraction(TValue oldval, TValue newval) { // if the displayed value won't change, don't print u32 newfraction = CalcThousandths(newval); if (CalcThousandths(oldval) == newfraction) return false; // check if enough time has passed steady_clock::time_point now = steady_clock::now(); steady_clock::time_point lastpoint = steady_clock::time_point(steady_clock::duration(printed.load(std::memory_order_relaxed))); // if enough time has passed, print the current progress, and update the time record if (now - lastpoint >= PRINT_INTERVAL || newfraction == 1000) { output_lock.lock(); sout << message << newfraction/10 << '.' << newfraction%10 << "%\r" << std::flush; output_lock.unlock(); printed.store(now.time_since_epoch().count(), std::memory_order_relaxed); return true; } return false; } public: MTProgressMeter(std::ostream &sout, const std::string &message, TValue total, std::mutex &output_lock) : sout(sout), message(message), scale(1000.0f / total), current(0), printed(0), output_lock(output_lock) {} MTProgressMeter(std::ostream &sout, const char *message, TValue total, std::mutex &output_lock) : sout(sout), message(message), scale(1000.0f / total), current(0), printed(0), output_lock(output_lock) {} void Add(TValue amount) { TValue oldval = current.fetch_add(amount, std::memory_order_relaxed); PrintFraction(oldval, oldval + amount); } // print a line whilst progress is still running void PrintLine(const std::string &line) { TValue val = current.load(std::memory_order_relaxed); u32 fraction = CalcThousandths(val); std::lock_guard lock(output_lock); sout << std::setw(message.size()+7) << std::setfill(' ') << "\r" << line << '\n' << message << fraction/10 << '.' << fraction%10 << "%\r" << std::flush; } }; #endif // __PROGRESSMETER_H__ par2cmdline-turbo-1.5.0/src/recoverypacket.cpp000066400000000000000000000101541524160147200213720ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "libpar2internal.h" #ifdef _MSC_VER #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif #endif RecoveryPacket::RecoveryPacket(void) : packet() , datablock() { diskfile = NULL; offset = 0; packetcontext = NULL; } RecoveryPacket::~RecoveryPacket(void) { delete packetcontext; } // Create a recovery packet. // The packet header can be almost completely filled in using the supplied // information and computation of the hash of the packet started immediately. // The hash will be updated as new data is written to the packet. void RecoveryPacket::Create(DiskFile *_diskfile, u64 _offset, u64 _blocksize, u32 _exponent, const MD5Hash &_setid) { diskfile = _diskfile; offset = _offset; // Record everything we know in the packet. packet.header.magic = packet_magic; packet.header.length = sizeof(packet) + _blocksize; //packet.header.hash; // Not known yet. packet.header.setid = _setid; packet.header.type = recoveryblockpacket_type; packet.exponent = _exponent; // Start computation of the packet hash packetcontext = new MD5Context; packetcontext->Update(&packet.header.setid, sizeof(RECOVERYBLOCKPACKET)-offsetof(RECOVERYBLOCKPACKET, header.setid)); // Set the data block to immediately follow the header on disk datablock.SetLocation(_diskfile, _offset + sizeof(packet)); datablock.SetLength(_blocksize); } // Write data from the buffer to the data block on disk bool RecoveryPacket::WriteData(u64 position, size_t size, const void *buffer) { // Update the packet hash packetcontext->Update(buffer, size); // Write the data to the data block size_t wrote; return datablock.WriteData(position, size, buffer, wrote); } // Write the header of the packet to disk bool RecoveryPacket::WriteHeader(void) { // Finish computing the packet hash packetcontext->Final(packet.header.hash); // Write the header to disk return diskfile->Write(offset, &packet, sizeof(packet)); } // Load the recovery packet from disk. // // The header of the packet will already have been read from disk. The only // thing that actually needs to be read is the exponent value. // The recovery data is not read from disk at this point. Its location // is recovered in the DataBlock object. bool RecoveryPacket::Load(DiskFile *_diskfile, u64 _offset, PACKET_HEADER &_header) { diskfile = _diskfile; offset = _offset; // Is the packet actually large enough if (_header.length <= sizeof(packet)) { return false; } // Save the fixed header packet.header = _header; // Set the data block to immediately follow the header on disk datablock.SetLocation(diskfile, offset + sizeof(packet)); datablock.SetLength(packet.header.length - sizeof(packet)); // Read the rest of the packet header return diskfile->Read(offset + sizeof(packet.header), &packet.exponent, sizeof(packet)-sizeof(packet.header)); } par2cmdline-turbo-1.5.0/src/recoverypacket.h000066400000000000000000000067621524160147200210510ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef __RECOVERYPACKET_H__ #define __RECOVERYPACKET_H__ // The RecoveryPacket object is used to access a specific recovery // packet within a recovery file (for when creating them, or using // them during a repair operation). // Because the actual recovery data for the packet may be large, the // RecoveryPacket object only contains a copy of packet header and // exponent value for the block and uses a DataBlock object for // all accesses to the actual recovery data in the packet. class RecoveryPacket { public: RecoveryPacket(void); ~RecoveryPacket(void); public: // Create a recovery packet for a specified file. void Create(DiskFile *diskfile, // Which file will the packet be stored in u64 offset, // At what offset will the packet be stored u64 blocksize, // How much recovery data will it contain u32 exponent, // What exponent value will be used const MD5Hash &setid); // What is the SetId // Write some data to the recovery data block and update the recovery packet. bool WriteData(u64 position, // Relative position within the data block size_t size, // Size of data to write to block const void *buffer); // Buffer containing the data to write // Finish computing the hash of the recovery packet and write the header to disk. bool WriteHeader(void); public: // Load a recovery packet from a specified file bool Load(DiskFile *diskfile, u64 offset, PACKET_HEADER &header); public: // Get the length of the packet. u64 PacketLength(void) const; // The exponent of the packet. u32 Exponent(void) const; // The length of the recovery data u64 BlockSize(void) const; // The data block DataBlock* GetDataBlock(void); protected: DiskFile *diskfile; // The specific file that this packet is stored in u64 offset; // The offset at which the packet is stored RECOVERYBLOCKPACKET packet; // The packet (excluding the actual recovery data) MD5Context *packetcontext; // MD5 Context used to compute the packet hash DataBlock datablock; // The recovery data block. }; inline u64 RecoveryPacket::PacketLength(void) const { return packet.header.length; } inline u32 RecoveryPacket::Exponent(void) const { return packet.exponent; } inline u64 RecoveryPacket::BlockSize(void) const { return packet.header.length - sizeof(packet); } inline DataBlock* RecoveryPacket::GetDataBlock(void) { return &datablock; } #endif // __RECOVERYPACKET_H__ par2cmdline-turbo-1.5.0/src/reedsolomon.cpp000066400000000000000000000102431524160147200206710ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "libpar2internal.h" #ifdef _MSC_VER #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif #endif u32 gcd(u32 a, u32 b) { if (a && b) { while (a && b) { if (a>b) { a = a%b; } else { b = b%a; } } return a+b; } else { return 0; } } template <> bool ReedSolomon::SetInput(const std::vector &present, std::ostream &sout, std::ostream &serr) { inputcount = (u32)present.size(); datapresentindex = new u32[inputcount]; datamissingindex = new u32[inputcount]; database = new G::ValueType[inputcount]; G::ValueType base = 1; for (unsigned int index=0; index bool ReedSolomon::SetInput(u32 count, std::ostream &sout, std::ostream &serr) { inputcount = count; datapresentindex = new u32[inputcount]; datamissingindex = new u32[inputcount]; database = new G::ValueType[inputcount]; G::ValueType base = 1; for (unsigned int index=0; index bool ReedSolomon::InternalProcess(const Galois8 &factor, size_t size, const void *inputbuffer, void *outputbuffer) { #ifdef LONGMULTIPLY // The 8-bit long multiplication tables Galois8 *table = glmt->tables; // Split the factor into Low and High bytes unsigned int fl = (factor >> 0) & 0xff; // Get the four separate multiplication tables Galois8 *LL = &table[(0*256 + fl) * 256 + 0]; // factor.low * source.low // Combine the four multiplication tables into two unsigned int L[256]; unsigned int *pL = &L[0]; for (unsigned int i=0; i<256; i++) { *pL = *LL; pL++; LL++; } // Treat the buffers as arrays of 32-bit unsigned ints. u32 *src4 = (u32 *)inputbuffer; u32 *end4 = (u32 *)&((u8*)inputbuffer)[size & ~3]; u32 *dst4 = (u32 *)outputbuffer; // Process the data while (src4 < end4) { u32 s = *src4++; // Use the two lookup tables computed earlier *dst4++ ^= (L[(s >> 0) & 0xff] ) ^ (L[(s >> 8) & 0xff] << 8 ) ^ (L[(s >> 16)& 0xff] << 16) ^ (L[(s >> 24)& 0xff] << 24); } // Process any left over bytes at the end of the buffer if (size & 3) { u8 *src1 = &((u8*)inputbuffer)[size & ~3]; u8 *end1 = &((u8*)inputbuffer)[size]; u8 *dst1 = &((u8*)outputbuffer)[size & ~3]; // Process the data while (src1 < end1) { u8 s = *src1++; *dst1++ ^= L[s]; } } #else // Treat the buffers as arrays of 16-bit Galois values. Galois8 *src = (Galois8 *)inputbuffer; Galois8 *end = (Galois8 *)&((u8*)inputbuffer)[size]; Galois8 *dst = (Galois8 *)outputbuffer; // Process the data while (src < end) { *dst++ += *src++ * factor; } #endif return eSuccess; } par2cmdline-turbo-1.5.0/src/reedsolomon.h000066400000000000000000000414241524160147200203430ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef __REEDSOLOMON_H__ #define __REEDSOLOMON_H__ // The ReedSolomon object is used to calculate and store the matrix // used during recovery block creation or data block reconstruction. // // During initialisation, one RSOutputRow object is created for each // recovery block that either needs to be created or is available for // use. class RSOutputRow { public: RSOutputRow(void) {}; RSOutputRow(bool _present, u16 _exponent) : present(_present), exponent(_exponent) {} public: bool present; u16 exponent; }; template class ReedSolomon { public: typedef g G; ReedSolomon(void); ~ReedSolomon(void); // Set which input blocks are present or missing // Some input blocks are present bool SetInput(const std::vector &present, std::ostream &sout, std::ostream &serr); // All input blocks are present bool SetInput(u32 count, std::ostream &sout, std::ostream &serr); // Set which output block are available or need to be computed bool SetOutput(bool present, u16 exponent); bool SetOutput(bool present, u16 lowexponent, u16 highexponent); // Compute the RS Matrix bool Compute(NoiseLevel noiselevel, std::ostream &sout, std::ostream &serr); // Process a block of data bool Process(size_t size, // The size of the block of data u32 inputindex, // The column in the RS matrix const void *inputbuffer, // Buffer containing input data u32 outputindex, // The row in the RS matrix void *outputbuffer); // Buffer containing output data // Get a processing coefficient from the matrix u32 GetFactor(u32 inputindex, u32 outputindex); private: bool InternalProcess(const g &factor, size_t size, const void *inputbuffer, void *outputbuffer); // Optimization protected: // Perform Gaussian Elimination bool GaussElim(NoiseLevel noiselevel, std::ostream &sout, std::ostream &serr, unsigned int rows, unsigned int leftcols, G *leftmatrix, G *rightmatrix, unsigned int datamissing); protected: u32 inputcount; // Total number of input blocks u32 datapresent; // Number of input blocks that are present u32 datamissing; // Number of input blocks that are missing u32 *datapresentindex; // The index numbers of the data blocks that are present u32 *datamissingindex; // The index numbers of the data blocks that are missing typename G::ValueType *database;// The "base" value to use for each input block u32 outputcount; // Total number of output blocks u32 parpresent; // Number of output blocks that are present u32 parmissing; // Number of output blocks that are missing u32 *parpresentindex; // The index numbers of the output blocks that are present u32 *parmissingindex; // The index numbers of the output blocks that are missing std::vector outputrows; // Details of the output blocks G *leftmatrix; // The main matrix // When the matrices are initialised: values of the form base ^ exponent are // stored (where the base values are obtained from database[] and the exponent // values are obtained from outputrows[]). #ifdef LONGMULTIPLY GaloisLongMultiplyTable *glmt; // A multiplication table used by Process() #endif private: // private copy constructor to prevent any misuse. ReedSolomon(const ReedSolomon &); ReedSolomon& operator=(const ReedSolomon &); }; template inline ReedSolomon::ReedSolomon(void) : outputrows() { inputcount = 0; datapresent = 0; datamissing = 0; datapresentindex = 0; datamissingindex = 0; database = 0; outputcount = 0; parpresent = 0; parmissing = 0; parpresentindex = 0; parmissingindex = 0; leftmatrix = 0; #ifdef LONGMULTIPLY glmt = new GaloisLongMultiplyTable; #endif } template inline ReedSolomon::~ReedSolomon(void) { delete [] datapresentindex; delete [] datamissingindex; delete [] database; delete [] parpresentindex; delete [] parmissingindex; delete [] leftmatrix; #ifdef LONGMULTIPLY delete glmt; #endif } template inline bool ReedSolomon::Process(size_t size, u32 inputindex, const void *inputbuffer, u32 outputindex, void *outputbuffer) { // Optimization: it occurs frequently the function exits early on, so inline the start. // This resulted in a speed gain of approx. 8% in repairing. // Look up the appropriate element in the RS matrix g factor = leftmatrix[outputindex * (datapresent + datamissing) + inputindex]; // Do nothing if the factor happens to be 0 if (factor == 0) return eSuccess; return this->InternalProcess (factor, size, inputbuffer, outputbuffer); } template inline u32 ReedSolomon::GetFactor(u32 inputindex, u32 outputindex) { return leftmatrix[outputindex * (datapresent + datamissing) + inputindex].Value(); } u32 gcd(u32 a, u32 b); // Record whether the recovery block with the specified // exponent values is present or missing. template inline bool ReedSolomon::SetOutput(bool present, u16 exponent) { // Store the exponent and whether or not the recovery block is present or missing outputrows.push_back(RSOutputRow(present, exponent)); outputcount++; // Update the counts. if (present) { parpresent++; } else { parmissing++; } return true; } // Record whether the recovery blocks with the specified // range of exponent values are present or missing. template inline bool ReedSolomon::SetOutput(bool present, u16 lowexponent, u16 highexponent) { for (unsigned int exponent=lowexponent; exponent<=highexponent; exponent++) { if (!SetOutput(present, exponent)) return false; } return true; } // Construct the Vandermonde matrix and solve it if necessary template inline bool ReedSolomon::Compute(NoiseLevel noiselevel, std::ostream &sout, std::ostream &serr) { u32 outcount = datamissing + parmissing; u32 incount = datapresent + datamissing; if (datamissing > parpresent) { serr << "Not enough recovery blocks." << std::endl; return false; } else if (outcount == 0) { serr << "No output blocks." << std::endl; return false; } if (noiselevel > nlQuiet) sout << "Computing Reed Solomon matrix." << std::endl; ProgressMeter progress(sout, "Constructing: ", datamissing+parmissing); /* Layout of RS Matrix: NOTE: The second set of columns represents the parity vectors present, but this only uses datamissing of them. Otherwise, it is over constrained. datamissing datapresent <=parpresent datamissing parmissing / | \ / | \ | (ppi[row])| | | (ppi[row])| | datamissing | ^ | I | | ^ | 0 | |(dpi[col]) | | |(dmi[col]) | | +---------------------+-------------+ +---------------------+-----------+ | (pmi[row])| | | (pmi[row])| | parmissing | ^ | 0 | | ^ | I | |(dpi[col]) | | |(dmi[col]) | | \ | / \ | / */ // Allocate the left hand matrix leftmatrix = new G[outcount * incount]; std::fill(leftmatrix, leftmatrix + outcount * incount, G(0)); // Allocate the right hand matrix only if we are recovering G *rightmatrix = 0; if (datamissing > 0) { rightmatrix = new G[outcount * outcount]; std::fill(rightmatrix, rightmatrix + outcount * outcount, G(0)); } // Fill in the two matrices: std::vector::const_iterator outputrow = outputrows.begin(); // One row for each present recovery block that will be used for a missing data block for (unsigned int row=0; row nlQuiet) progress.Update(row); // Get the exponent of the next present recovery block while (!outputrow->present) { outputrow++; } u16 exponent = outputrow->exponent; // One column for each present data block for (unsigned int col=0; col 0) { // One column for each missing data block for (unsigned int col=0; col nlQuiet) progress.Update(row+datamissing); // Get the exponent of the next missing recovery block while (outputrow->present) { outputrow++; } u16 exponent = outputrow->exponent; // One column for each present data block for (unsigned int col=0; col 0) { // One column for each missing data block for (unsigned int col=0; col nlQuiet) sout << "Constructing: done." << std::endl; // Solve the matrices only if recovering data if (datamissing > 0) { // Perform Gaussian Elimination and then delete the right matrix (which // will no longer be required). bool success = GaussElim(noiselevel, sout, serr, outcount, incount, leftmatrix, rightmatrix, datamissing); delete [] rightmatrix; return success; } return true; } // Use Gaussian Elimination to solve the matrices template inline bool ReedSolomon::GaussElim(NoiseLevel noiselevel, std::ostream &sout, std::ostream &serr, unsigned int rows, unsigned int leftcols, G *leftmatrix, G *rightmatrix, unsigned int datamissing) { if (noiselevel >= nlDebug) { for (unsigned int row=0; row8?4:2) << std::setfill('0') << (unsigned int)leftmatrix[row*leftcols+col]; } sout << ((row==0) ? " \\ /" : (row==rows-1) ? " / \\" : " | |"); for (unsigned int col=0; col8?4:2) << std::setfill('0') << (unsigned int)rightmatrix[row*rows+col]; } sout << ((row==0) ? " \\" : (row==rows-1) ? " /" : " | |"); sout << '\n'; sout << std::dec << std::setw(0) << std::setfill(' '); } sout << std::flush; } // Because the matrices being operated on are Vandermonde matrices // they are guaranteed not to be singular. // Additionally, because Galois arithmetic is being used, all calculations // involve exact values with no loss of precision. It is therefore // not necessary to carry out any row or column swapping. // Solve one row at a time ProgressMeter progress(sout, "Solving: ", datamissing*rows); // For each row in the matrix for (unsigned int row=0; row nlQuiet) progress.Update(row*rows+row2); if (row != row2) { // Get the scaling factor for this row. G scalevalue = rightmatrix[row2 * rows + row]; if (scalevalue == 1) { // If the scaling factor happens to be 1, just subtract rows for (unsigned int col=0; col nlQuiet) sout << "Solving: done." << std::endl; if (noiselevel >= nlDebug) { for (unsigned int row=0; row8?4:2) << std::setfill('0') << (unsigned int)leftmatrix[row*leftcols+col]; } sout << ((row==0) ? " \\ /" : (row==rows-1) ? " / \\" : " | |"); for (unsigned int col=0; col8?4:2) << std::setfill('0') << (unsigned int)rightmatrix[row*rows+col]; } sout << ((row==0) ? " \\" : (row==rows-1) ? " /" : " | |"); sout << '\n'; sout << std::dec << std::setw(0) << std::setfill(' '); } sout << std::flush; } return true; } #endif // __REEDSOLOMON_H__ par2cmdline-turbo-1.5.0/src/reedsolomon_test.cpp000066400000000000000000000417061524160147200217400ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include #include #include "libpar2internal.h" #include "reedsolomon.h" /* trace from test11.log Creator.SetInput 100 Creator.SetOutput 0 4 Creator.Compute creator.process 10004 0 0 creator.process 10004 0 1 creator.process 10004 0 2 creator.process 10004 0 3 creator.process 10004 0 4 creator.process 10004 1 0 creator.process 10004 1 1 creator.process 10004 1 2 creator.process 10004 1 3 creator.process 10004 1 4 creator.process 10004 2 0 creator.process 10004 2 1 creator.process 10004 2 2 ... creator.process 10004 97 4 creator.process 10004 98 0 creator.process 10004 98 1 creator.process 10004 98 2 creator.process 10004 98 3 creator.process 10004 98 4 creator.process 10004 99 0 creator.process 10004 99 1 creator.process 10004 99 2 creator.process 10004 99 3 creator.process 10004 99 4 ... ... ... Repairer.SetInput 100 true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true false false false true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true false true true true true true true true true true true false Repair.SetOutput true 0 Repair.SetOutput true 1 Repair.SetOutput true 2 Repair.SetOutput true 3 Repair.SetOutput true 4 repair.compute repair.process 10004 0 1 repair.process 10004 0 2 repair.process 10004 0 4 repair.process 10004 0 0 repair.process 10004 0 3 repair.process repair.process 10004 repair.process 10004 repair.process 1 1 10004 repair.process 2 1 3 10004 4 1 0 repair.process 10004 2 2 repair.process 10004 2 3 repair.process 10004 2 repair.process 10004 2 1 repair.process */ /* Reed-Solomon operations require a field. This is a dummy one, using a prime number. Due to how Log() is implemented, the prime must be greater than 3. */ /** This is a simpler field than Galois. * I'm not sure why ReedSolomon was * specialized for Galois8 and Galois16. * It should be made to work with this type. * #include template class PrimeField { public: typedef valuetype ValueType; // Basic constructors PrimeField(void) { value = 0; } PrimeField(ValueType v) { value = v;} // Copy and assignment PrimeField(const PrimeField &right) {value = right.value;} PrimeField& operator = (const PrimeField &right) { value = right.value; return *this;} // Addition PrimeField operator + (const PrimeField &right) const { return (valuetype) ((value + (unsigned long) right.value) % prime); } PrimeField& operator += (const PrimeField &right) { value = (valuetype) ((value + (unsigned long) right.value) % prime); return *this;} // Subtraction PrimeField operator - (const PrimeField &right) const { return (right.value <= value) ? value - right.value : prime + value - right.value;} PrimeField& operator -= (const PrimeField &right) { value = (right.value <= value) ? value - right.value : prime + value - right.value; return *this;} // Multiplication PrimeField operator * (const PrimeField &right) const { return (valuetype) ((value * (unsigned long) right.value) % prime); } PrimeField& operator *= (const PrimeField &right) { value = (valuetype) ((value * (unsigned long) right.value) % prime); return *this;} // Division PrimeField operator / (const PrimeField &right) const { return (valuetype) ((value * (unsigned long) reciprocal(right.value)) % prime); } PrimeField& operator /= (const PrimeField &right) { value = (valuetype) ((value * (unsigned long) reciprocal(right.value)) % prime); return *this;} // Power PrimeField pow(unsigned int right) const { return (valuetype) (((long) std::pow((double) value, (double) right)) % prime); } PrimeField operator ^ (unsigned int right) const { return (valuetype) (((long) std::pow((double) value, (double) right)) % prime); } PrimeField& operator ^= (unsigned int right) { value = (valuetype) (((long) std::pow((double) value, (double) right)) % prime); return *this; } // Cast to value and value access operator ValueType(void) const {return value;} ValueType Value(void) const {return value;} // Direct log and antilog // base 2 ValueType Log(void) const { ValueType v(1); for (int i = 0; i < prime; i++) { if (v == value) return i; v = (valuetype) ((2l*v)%prime); } std::cerr << "Did not find multiplicative inverse for " << value << std::endl; } ValueType ALog(void) const { return (valuetype) (((long) std::pow((double) 2, (double) value)) % prime); } enum { Bits = bits, // Count = GaloisTable::Count, // Limit = GaloisTable::Limit, }; protected: ValueType reciprocal(ValueType v) { if (v == 0) return v; for (ValueType i = 1; i < prime; i++) { if ((i*v) % prime == 1) return i; } std::cerr << "Did not find multiplicative inverse for " << v << std::endl; } ValueType value; }; */ #define BUF_SIZE 1024 template int generate_data(unsigned int seed, u8 data[][BUF_SIZE], int in_count, int recovery_count, int low_exponent) { int high_exponent = low_exponent + recovery_count - 1; // random input data srand(seed); for (int i = 0; i < in_count; i++) { for (int k = 0; k < BUF_SIZE; k++) { data[i][k] = (u8)(rand() % 256); } } // zero recovery for (int j = 0; j < recovery_count; j++) { for (int k = 0; k < BUF_SIZE; k++) { data[in_count + j][k] = (u8)0; } } ReedSolomon rs_creator; //std::cout << "creator.setinput" << in_count << std::endl; if (!rs_creator.SetInput(in_count, std::cout, std::cerr)) { std::cerr << "rs_creator.SetInput returned false"; return 1; } //std::cout << "creator.setoutput" << low_exponent << " " << high_exponent << std::endl; if (!rs_creator.SetOutput(false, low_exponent, high_exponent)) { std::cerr << "rs_creator.SetOutput returned false"; return 1; } //std::cout << "creator.compute" << std::endl; if (!rs_creator.Compute(nlSilent, std::cout, std::cerr)) { std::cerr << "rs_creator.Compute returned false"; return 1; } for (int i = 0; i < in_count; i++) { for (int j = 0; j < recovery_count; j++) { //std::cout << "creator.process " << BUF_SIZE << " " << i << " " << j << std::endl; rs_creator.Process(BUF_SIZE, i, &(data[i][0]), j, &(data[in_count + j][0])); } } return 0; } template int init_repair_rs(ReedSolomon &rs_repair, std::vector &in_present, std::vector &recovery_present, int low_exponent) { //std::cout << "Repairer.SetInput " << in_present.size(); //for (unsigned int z = 0; z < in_present.size(); z++) // std::cout << (in_present[z] ? " true": " false"); //std::cout << std::endl; if (!rs_repair.SetInput(in_present, std::cout, std::cerr)) { std::cerr << "rs_repair.SetInput returned false"; return 1; } for (unsigned int j = 0; j < recovery_present.size(); j++) { //std::cout << "Repair.SetOutput true " << j << std::endl; if (recovery_present[j]) { if (!rs_repair.SetOutput(true, low_exponent + j)) { std::cerr << "rs_repair.SetOutput returned false for " << j; return 1; } } } //std::cout << "Repair.compute" << std::endl; if (!rs_repair.Compute(nlSilent, std::cout, std::cerr)) { std::cerr << "rs_repair.Compute returned false"; return 1; } return 0; } // Strange that "missing place" is 0,1,2,3... // no matter what exponent or which in_present are false. template int recover_data(ReedSolomon &rs_repair, int missing_place, u8 *buffer, u8 data[][BUF_SIZE], std::vector &in_present, std::vector &recovery_present) { memset(buffer, 0, BUF_SIZE); int index = 0; for (unsigned int i = 0; i < in_present.size(); i++) { if (in_present[i]) { //std::cout << "repair.process " << BUF_SIZE << " " << index << " " << 0 << std::endl; rs_repair.Process(BUF_SIZE, index, &(data[i][0]), missing_place, buffer); index++; } } for (unsigned int j = 0; j < recovery_present.size(); j++) { if (recovery_present[j]) { //std::cout << "repair.process " << BUF_SIZE << " " << index << " " << 0 << std::endl; rs_repair.Process(BUF_SIZE, index, &(data[in_present.size() + j][0]), missing_place, buffer); index++; } } return 0; } int compare_buffer(u8 *buffer, u8 *expected, const char *error_prefix) { for (int k = 0; k < BUF_SIZE; k++) { if (buffer[k] != expected[k]) { std::cerr << error_prefix << " mismatch at place " << k << std::endl; std::cerr << " buffer had " << ((int) buffer[k]) << std::endl; std::cerr << " expected " << ((int) expected[k]) << std::endl; return 1; } } return 0; } // 4 inputs, recover all possible cases of 2 missing inputs template int test1() { const int NUM_IN = 4; const int NUM_REC = 2; // recovery const int LOW_EXPONENT = 0; u8 data[NUM_IN + NUM_REC][BUF_SIZE]; if (generate_data(873945932, data, NUM_IN, NUM_REC, LOW_EXPONENT)) return 1; // loop over missing input blocks for (int missing1 = 0; missing1 < NUM_IN; missing1++) { for (int missing2 = missing1+1; missing2 < NUM_IN; missing2++) { std::vector in_present; for (int i = 0; i < NUM_IN; i++) { in_present.push_back(i != missing1 && i != missing2); } std::vector recovery_present; for (int i = 0; i < NUM_REC; i++) { recovery_present.push_back(true); } ReedSolomon rs_repair; if (init_repair_rs(rs_repair, in_present, recovery_present, LOW_EXPONENT)) return 1; u8 result[BUF_SIZE]; if (recover_data(rs_repair, 0, result, data, in_present, recovery_present)) return 1; if (compare_buffer(result, data[missing1], "test1 - missing1")) return 1; if (recover_data(rs_repair, 1, result, data, in_present, recovery_present)) return 1; if (compare_buffer(result, data[missing2], "test1 - missing2")) return 1; } } return 0; } // recover when all inputs are missing template int test2() { const int NUM_IN = 5; const int NUM_REC = 5; // recovery const int LOW_EXPONENT = 0; u8 data[NUM_IN + NUM_REC][BUF_SIZE]; if (generate_data(873945932, data, NUM_IN, NUM_REC, LOW_EXPONENT)) return 1; std::vector in_present; for (int i = 0; i < NUM_IN; i++) { in_present.push_back(false); } std::vector recovery_present; for (int i = 0; i < NUM_REC; i++) { recovery_present.push_back(true); } ReedSolomon rs_repair; if (init_repair_rs(rs_repair, in_present, recovery_present, LOW_EXPONENT)) return 1; for (int i = 0; i < NUM_IN; i++) { u8 result[BUF_SIZE]; if (recover_data(rs_repair, i, result, data, in_present, recovery_present)) return 1; if (compare_buffer(result, data[i], "test2 - missing")) return 1; } return 0; } // too many recovery blocks /* THIS OPERATION WAS ALLOWED, WITHOUT ANY WARNING ** I NEED TO CHANGE IT TO NOT BE ALLOWED. template int test3() { const int NUM_IN = 4; const int NUM_REC = 2; // recovery const int LOW_EXPONENT = 0; u8 data[NUM_IN + NUM_REC][BUF_SIZE]; if (generate_data(873945932, data, NUM_IN, NUM_REC, LOW_EXPONENT)) return 1; // loop over missing input blocks for (int missing1 = 0; missing1 < NUM_IN; missing1++) { std::cerr << "Processing " << missing1 << std::endl; std::vector in_present; for (int i = 0; i < NUM_IN; i++) { in_present.push_back(i != missing1); } std::vector recovery_present; for (int i = 0; i < NUM_REC; i++) { recovery_present.push_back(true); } ReedSolomon rs_repair; if (init_repair_rs(rs_repair, in_present, recovery_present, LOW_EXPONENT)) return 1; u8 result[BUF_SIZE]; if (recover_data(rs_repair, 0, result, data, in_present, recovery_present)) return 1; if (compare_buffer(result, data[missing1], "test3 - missing1")) return 1; } return 0; } */ // Check that the correct constants are being used for Par2 //The test pretends there are 10 input blocks ("NUM_IN") and 1 //recovery block ("NUM_REC"), each 1024 bytes long ("BUF_SIZE"). These //are all stored in data[11][BUF_SIZE], with the input blocks //occupying data[0] through data[9] and the recovery block in //data[10]. //The test zeroes out the input blocks and then writes a 1 into the //first location of the first input block, and into the second //location of the second input block, etc. It then generates the //recovery block using many calls to ReedSolomon. When that happens, //those 1s are multiplied by the coefficients for each input block. So //the first location of recovery block holds the coefficient for the //first input block, the second location has the coefficient for the //second input block, etc. Those values are checked against the //expected values passed to the function. template int test4(int *expected_bases) { const int NUM_REC = 1; // recovery const int LOW_EXPONENT = 1; u8 data[NUM_IN + NUM_REC][BUF_SIZE]; int high_exponent = LOW_EXPONENT + NUM_REC - 1; for (int i = 0; i < NUM_IN; i++) { // fill with zeros, for (int k = 0; k < BUF_SIZE; k++) { data[i][k] = (u8)0; } // EXCEPT write a (little endian) 1 in a different place for each file // In the i-th file, it is written into the i-th location data[i][sizeof(utype)*i] = (u8) 1; } // zero recovery for (int j = 0; j < NUM_REC; j++) { for (int k = 0; k < BUF_SIZE; k++) { data[NUM_IN + j][k] = (u8)0; } } ReedSolomon rs_creator; //std::cout << "creator.setinput" << NUM_IN << std::endl; if (!rs_creator.SetInput(NUM_IN, std::cout, std::cerr)) { std::cerr << "rs_creator.SetInput returned false"; return 1; } //std::cout << "creator.setoutput" << LOW_EXPONENT << " " << high_exponent << std::endl; if (!rs_creator.SetOutput(false, LOW_EXPONENT, high_exponent)) { std::cerr << "rs_creator.SetOutput returned false"; return 1; } //std::cout << "creator.compute" << std::endl; if (!rs_creator.Compute(nlSilent, std::cout, std::cerr)) { std::cerr << "rs_creator.Compute returned false"; return 1; } for (int i = 0; i < NUM_IN; i++) { for (int j = 0; j < NUM_REC; j++) { //std::cout << "creator.process " << BUF_SIZE << " " << i << " " << j << std::endl; rs_creator.Process(BUF_SIZE, i, &(data[i][0]), j, &(data[NUM_IN + j][0])); } } // The recovery file has exponent 1 and should // contain each base to the power 1. for (int i = 0; i < NUM_IN; i++) { // read little-endian value utype v = 0; for (size_t byte_index = 0; byte_index < sizeof(utype); byte_index++) { u8 byte = data[NUM_IN+0][sizeof(utype)*i + byte_index]; v |= (((utype)byte) << (byte_index*8)); } int base = v; if (base != expected_bases[i]) { std::cerr << "base at location " << i << " did not match expected." << std::endl; std::cerr << " base = " << base << std::endl; std::cerr << " expected = " << expected_bases[i] << std::endl; return 1; } } return 0; } int main() { if (test1()) { std::cerr << "FAILED: test1(8)" << std::endl; return 1; } if (test2()) { std::cerr << "FAILED: test2(8)" << std::endl; return 1; } // test3 used more parity blocks than missing source blocks. // The code should either work or not allow it. // Probably not allow it. //if (test3()) return 1; std::cout << "finished test 3(8)" << std::endl; // the values for Par1 int expected_bases8[10] = {1,2,3,4,5,6,7,8,9,10}; if (test4(expected_bases8)) { std::cerr << "FAILED: test4(8)" << std::endl; return 1; } return 0; } par2cmdline-turbo-1.5.0/src/utf8.cpp000066400000000000000000000067071524160147200172430ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See https://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2024-2025 Denis // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "libpar2internal.h" #include #include #include #include "utf8.h" namespace utf8 { const int MAX_ARGS = 128; const size_t MAX_DIR_PATH = 248; std::wstring_convert> UTF8_CONVERTER; std::wstring Utf8ToWide(const std::string& str) { if (str.empty()) return L""; try { std::wstring wpath = UTF8_CONVERTER.from_bytes(str.c_str()); if (wpath.size() > MAX_DIR_PATH && wpath.find(L"\\\\?\\") == std::wstring::npos && wpath.find(L"\\\\?\\UNC") == std::wstring::npos) { if (std::wcsncmp(wpath.c_str(), L"\\\\", 2) == 0) { wpath = L"\\\\?\\UNC" + wpath; } else { wpath = L"\\\\?\\" + wpath; } } return wpath; } catch (const std::exception& e) { std::cerr << "Failed to convert UTF-8 to wide string: " << e.what() << std::endl; return L""; } } std::string WideToUtf8(const std::wstring& str) { if (str.empty()) return ""; try { return UTF8_CONVERTER.to_bytes(str.c_str()); } catch (const std::exception& e) { std::cerr << "Failed to convert wide to UTF-8 string: " << e.what() << std::endl; return ""; } } WideToUtf8ArgsAdapter::WideToUtf8ArgsAdapter(int argc, wchar_t* wargv[]) noexcept(false) : m_argc(argc) { if (wargv == nullptr) { throw std::invalid_argument("Invalid argument: wargv cannot be nullptr."); } if (m_argc > MAX_ARGS) { std::cerr << "Too many arguments (" << argc << "/" << MAX_ARGS << ").\n" "Only " << MAX_ARGS << " will be processed." << std::endl; m_argc = MAX_ARGS; } m_argv = new char* [m_argc + 1]; for (int i = 0; i < m_argc; ++i) { if (wargv[i] == nullptr) { std::cerr << "Invalid argument: encountered nullptr in wargv.\n" "Skipping " << i << "argument." << std::endl; --m_argc; --i; continue; } std::string arg = WideToUtf8(wargv[i]); size_t size = arg.size() + 1; m_argv[i] = new char[size]; std::memcpy(m_argv[i], arg.c_str(), size); } m_argv[m_argc] = nullptr; } const char* const* WideToUtf8ArgsAdapter::GetUtf8Args() const noexcept { return m_argv; } WideToUtf8ArgsAdapter::~WideToUtf8ArgsAdapter() { if (m_argv) { for (size_t i = 0; m_argv[i]; ++i) { delete m_argv[i]; } delete[] m_argv; } } } par2cmdline-turbo-1.5.0/src/utf8.h000066400000000000000000000035541524160147200167050ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See https://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2024-2025 Denis // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef __UTF8_H__ #define __UTF8_H__ #include #include #include namespace utf8 { extern const int MAX_ARGS; extern const size_t MAX_DIR_PATH; extern std::wstring_convert> UTF8_CONVERTER; std::wstring Utf8ToWide(const std::string& str); std::string WideToUtf8(const std::wstring& str); class WideToUtf8ArgsAdapter final { public: WideToUtf8ArgsAdapter(int argc, wchar_t* argv_[]) noexcept(false); const char* const* GetUtf8Args() const noexcept; WideToUtf8ArgsAdapter() = delete; WideToUtf8ArgsAdapter(const WideToUtf8ArgsAdapter&) = delete; WideToUtf8ArgsAdapter(WideToUtf8ArgsAdapter&&) = delete; WideToUtf8ArgsAdapter& operator=(const WideToUtf8ArgsAdapter&) = delete; WideToUtf8ArgsAdapter& operator=(WideToUtf8ArgsAdapter&&) = delete; ~WideToUtf8ArgsAdapter(); private: char** m_argv; int m_argc; }; } #endif // __UTF8_H__ par2cmdline-turbo-1.5.0/src/utf8_test.cpp000066400000000000000000000125361524160147200202770ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See https://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2024 Denis // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "libpar2internal.h" #include #include "utf8.h" using namespace utf8; int test1() { std::string emptyString = ""; std::wstring expectedWide = L""; std::wstring actualWide = Utf8ToWide(emptyString); std::string expectedUtf8 = ""; std::string actualUtf8 = WideToUtf8(expectedWide); if (actualWide == expectedWide && actualUtf8 == expectedUtf8) return 0; return 1; } int test2() { std::string asciiString = "Hello, World!"; std::wstring expectedWide = L"Hello, World!"; std::wstring actualWide = Utf8ToWide(asciiString); std::string expectedUtf8 = "Hello, World!"; std::string actualUtf8 = WideToUtf8(expectedWide); if (actualWide == expectedWide && actualUtf8 == expectedUtf8) return 0; return 1; } int test3() { // "Привет, мир!" std::string nonAsciiString = "\xD0\x9F\xD1\x80\xD0\xB8\xD0\xB2\xD0\xB5\xD1\x82, \xD0\xBC\xD0\xB8\xD1\x80!"; std::wstring expectedWide = L"\x041F\x0440\x0438\x0432\x0435\x0442, \x043C\x0438\x0440!"; std::wstring actualWide = Utf8ToWide(nonAsciiString); std::string expectedUtf8 = "\xD0\x9F\xD1\x80\xD0\xB8\xD0\xB2\xD0\xB5\xD1\x82, \xD0\xBC\xD0\xB8\xD1\x80!"; std::string actualUtf8 = WideToUtf8(expectedWide); if (actualWide == expectedWide && actualUtf8 == expectedUtf8) return 0; return 1; } int test4() { std::string specialCharsString = "This string has: !@#$%^&*()_+=-`~[]{}:;'<>,.?/"; std::wstring expectedWide = L"This string has: !@#$%^&*()_+=-`~[]{}:;'<>,.?/"; std::wstring actualWide = Utf8ToWide(specialCharsString); std::string expectedUtf8 = "This string has: !@#$%^&*()_+=-`~[]{}:;'<>,.?/"; std::string actualUtf8 = WideToUtf8(expectedWide); if (actualWide == expectedWide && actualUtf8 == expectedUtf8) return 0; return 1; } int test5() { // "Привет! ã�“ã‚“ã�«ã�¡ã�¯ä¸–界! 안녕하세요!" std::string multiLangString = "\xD0\x9F\xD1\x80\xD0\xB8\xD0\xB2\xD0\xB5\xD1\x82! \xE3\x81\x93\xE3\x82\x93\xE3\x81\xAB\xE3\x81\xA1\xE3\x81\xAF\xE4\xB8\x96\xE7\x95\x8C! \xEC\x95\x88\xEB\x85\x95\xED\x95\x98\xEC\x84\xB8\xEC\x9A\x94!"; std::wstring expectedWide = L"\x041F\x0440\x0438\x0432\x0435\x0442! \x3053\x3093\x306B\x3061\x306F\x4E16\x754C! \xC548\xB155\xD558\xC138\xC694!"; std::wstring actualWide = Utf8ToWide(multiLangString); std::string expectedUtf8 = "\xD0\x9F\xD1\x80\xD0\xB8\xD0\xB2\xD0\xB5\xD1\x82! \xE3\x81\x93\xE3\x82\x93\xE3\x81\xAB\xE3\x81\xA1\xE3\x81\xAF\xE4\xB8\x96\xE7\x95\x8C! \xEC\x95\x88\xEB\x85\x95\xED\x95\x98\xEC\x84\xB8\xEC\x9A\x94!"; std::string actualUtf8 = WideToUtf8(expectedWide); if (actualWide == expectedWide && actualUtf8 == expectedUtf8) return 0; return 1; } int test6() { wchar_t* wargv[1] = { nullptr }; WideToUtf8ArgsAdapter adapter(0, wargv); const char* const* utf8Args = adapter.GetUtf8Args(); return nullptr == utf8Args; } int test7() { // L"Привет", L"мир", L"!" wchar_t* wargv[3] = { const_cast(L"\x041F\x0440\x0438\x0432\x0435\x0442"), const_cast(L"\x043C\x0438\x0440"), const_cast(L"!") }; WideToUtf8ArgsAdapter adapter(3, wargv); const char* const* utf8Args = adapter.GetUtf8Args(); for (int i = 0; i < 3; ++i) { if (WideToUtf8(wargv[i]) != std::string(utf8Args[i])) { return 1; } } return 0; } int test8() { wchar_t* wargv[3] = { const_cast(L"arg1"), nullptr, const_cast(L"arg3") }; WideToUtf8ArgsAdapter adapter(3, wargv); const char* const* utf8Args = adapter.GetUtf8Args(); int argc = 3; for (int i = 0; i < argc; ++i) { if (wargv[i] == nullptr) { --i; --argc; continue; } if (WideToUtf8(wargv[i]) != std::string(utf8Args[i])) { return 1; } } return 0; } int main() { if (test1()) { std::cerr << "FAILED: test1" << std::endl; return 1; } if (test2()) { std::cerr << "FAILED: test2" << std::endl; return 1; } if (test3()) { std::cerr << "FAILED: test3" << std::endl; return 1; } if (test4()) { std::cerr << "FAILED: test4" << std::endl; return 1; } if (test5()) { std::cerr << "FAILED: test5" << std::endl; return 1; } if (test6()) { std::cerr << "FAILED: test6" << std::endl; return 1; } if (test7()) { std::cerr << "FAILED: test7" << std::endl; return 1; } if (test8()) { std::cerr << "FAILED: test8" << std::endl; return 1; } std::cout << "SUCCESS: utf8_test complete." << std::endl; return 0; } par2cmdline-turbo-1.5.0/src/verificationhashtable.cpp000066400000000000000000000064161524160147200227100ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "libpar2internal.h" #ifdef _MSC_VER #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif #endif VerificationHashTable::VerificationHashTable(void) { hashmask = 0; hashtable = 0; } VerificationHashTable::~VerificationHashTable(void) { // Destroy the hash table if (hashtable) { for (unsigned int entry=0; entry<=hashmask; entry++) { delete hashtable[entry]; } } delete [] hashtable; } // Allocate the hash table with a reasonable size void VerificationHashTable::SetLimit(u32 limit) { // Pick a good size for the hash table hashmask = 256; while (hashmask < limit && hashmask < 65536) { hashmask <<= 1; } // Allocate and clear the hash table hashtable = new VerificationHashEntry*[hashmask]; memset(hashtable, 0, hashmask * sizeof(hashtable[0])); hashmask--; } // Load data from a verification packet void VerificationHashTable::Load(Par2RepairerSourceFile *sourcefile, u64 blocksize) { VerificationHashEntry *preventry = 0; // Get information from the sourcefile VerificationPacket *verificationpacket = sourcefile->GetVerificationPacket(); u32 blockcount = verificationpacket->BlockCount(); // Iterate through the data blocks for the source file and the verification // entries in the verification packet. std::vector::iterator sourceblocks = sourcefile->SourceBlocks(); const FILEVERIFICATIONENTRY *verificationentry = verificationpacket->VerificationEntry(0); u32 blocknumber = 0; while (blocknumberInsert(&hashtable[entry->Checksum() & hashmask]); // Make the previous entry point forwards to this one if (preventry) { preventry->Next(entry); } preventry = entry; ++blocknumber; ++sourceblocks; ++verificationentry; } } par2cmdline-turbo-1.5.0/src/verificationhashtable.h000066400000000000000000000335511524160147200223550ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef __VERIFICATIONHASHTABLE_H__ #define __VERIFICATIONHASHTABLE_H__ class Par2RepairerSourceFile; class VerificationHashTable; // The VerificationHashEntry objects form the nodes of a binary trees stored // in a VerificationHashTable object. // There is one VerificationHashEntry object for each data block in the original // source files. class VerificationHashEntry { public: VerificationHashEntry(Par2RepairerSourceFile *_sourcefile, DataBlock *_datablock, bool _firstblock, const FILEVERIFICATIONENTRY *_verificationentry) : sourcefile(_sourcefile) , datablock(_datablock) , firstblock(_firstblock) , crc(_verificationentry->crc) , hash(_verificationentry->hash) , left(0) , right(0) , same(0) , next(0) { } ~VerificationHashEntry(void) { // problem: may cause stack overflow due to recursion. // this happens if there are a lot of nodes with the same crc & hash // possible solution: use a loop // I still don't like the idea of two recursions (left and right), // AFAIK only one can be optimized by the compiler // delete all nodes with same crc and hash VerificationHashEntry *nextSame = same; while(0 != nextSame) { VerificationHashEntry *const currSame = nextSame; nextSame = currSame->same; // prevent currSame from recursive delete currSame->same = 0; currSame->left = 0; currSame->right = 0; delete currSame; } delete left; delete right; } // Insert the current object is a child of the specified parent void Insert(VerificationHashEntry **parent); // Search (starting at the specified parent) for an object with a matching crc static const VerificationHashEntry* Search(const VerificationHashEntry *entry, u32 crc); // Search (starting at the specified parent) for an object with a matching hash static const VerificationHashEntry* Search(const VerificationHashEntry *entry, const MD5Hash &hash); // Comparison operators for searching bool operator <(const VerificationHashEntry &r) const { return crc < r.crc || (crc == r.crc && hash < r.hash); } bool operator >(const VerificationHashEntry &r) const { return crc > r.crc || (crc == r.crc && hash > r.hash); } bool operator ==(const VerificationHashEntry &r) const { return crc == r.crc && hash == r.hash; } bool operator <=(const VerificationHashEntry &r) const {return !operator>(r);} bool operator >=(const VerificationHashEntry &r) const {return !operator<(r);} bool operator !=(const VerificationHashEntry &r) const {return !operator==(r);} // Data Par2RepairerSourceFile* SourceFile(void) const {return sourcefile;} const DataBlock* GetDataBlock(void) const {return datablock;} bool FirstBlock(void) const {return firstblock;} // Set/Check the associated datablock void SetBlock(DiskFile *diskfile, u64 offset) const; bool IsSet(void) const; u32 Checksum(void) const {return crc;} const MD5Hash& Hash(void) const {return hash;} VerificationHashEntry* Same(void) const {return same;} VerificationHashEntry* Next(void) const {return next;} void Next(VerificationHashEntry *_next) {next = _next;} protected: // Data Par2RepairerSourceFile *sourcefile; DataBlock *datablock; bool firstblock; u32 crc; MD5Hash hash; protected: // Binary tree VerificationHashEntry *left; VerificationHashEntry *right; // Linked list of entries with the same crc and hash VerificationHashEntry *same; // Linked list of entries in sequence for same file VerificationHashEntry *next; }; inline void VerificationHashEntry::SetBlock(DiskFile *diskfile, u64 offset) const { datablock->SetLocation(diskfile, offset); } inline bool VerificationHashEntry::IsSet(void) const { return datablock->IsSet(); } // Insert a new entry in the tree inline void VerificationHashEntry::Insert(VerificationHashEntry **parent) { while (*parent) { if (**parent < *this) { parent = &(*parent)->right; } else if (**parent > *this) { parent = &(*parent)->left; } else { break; } } while (*parent) { parent = &(*parent)->same; } *parent = this; } // Search the tree for an entry with the correct crc inline const VerificationHashEntry* VerificationHashEntry::Search(const VerificationHashEntry *entry, u32 crc) { while (entry) { if (entry->crc < crc) { entry = entry->right; } else if (entry->crc > crc) { entry = entry->left; } else { break; } } return entry; } // Search the tree for an entry with the correct hash inline const VerificationHashEntry* VerificationHashEntry::Search(const VerificationHashEntry *entry, const MD5Hash &hash) { u32 crc = entry->crc; while (entry) { if (entry->crc < crc || (entry->crc == crc && entry->hash < hash)) { entry = entry->right; } else if (entry->crc > crc || (entry->crc == crc && entry->hash > hash)) { entry = entry->left; } else { break; } } return entry; } // The VerificationHashTable object contains all of the VerificationHashEntry objects // and is used to find matches for blocks of data in a target file that is being // scanned. // It is initialised by loading data from all available verification packets for the // source files. class VerificationHashTable { public: VerificationHashTable(void); ~VerificationHashTable(void); void SetLimit(u32 limit); // Load the data from the verification packet void Load(Par2RepairerSourceFile *sourcefile, u64 blocksize); // Try to find a match. // nextentry - The entry which we expect to find next. This is used // when a sequence of matches are found. // sourcefile - Which source file we would prefer to find a match for // if there are more than one possible match (with the // same crc and hash). // checksummer - Provides the crc and hash values being tested. // duplicate - Set on return if the match would have been valid except // for the fact that the block has already been found. const VerificationHashEntry* FindMatch(const VerificationHashEntry *nextentry, const Par2RepairerSourceFile *sourcefile, FileCheckSummer &checksummer, bool &duplicate) const; // Look up based on the block crc const VerificationHashEntry* Lookup(u32 crc) const; // Continue lookup based on the block hash const VerificationHashEntry* Lookup(const VerificationHashEntry *entry, const MD5Hash &hash); protected: VerificationHashEntry **hashtable; unsigned int hashmask; }; // Search for an entry with the specified crc inline const VerificationHashEntry* VerificationHashTable::Lookup(u32 crc) const { if (hashmask) { return VerificationHashEntry::Search(hashtable[crc & hashmask], crc); } return 0; } // Search for an entry with the specified hash inline const VerificationHashEntry* VerificationHashTable::Lookup(const VerificationHashEntry *entry, const MD5Hash &hash) { return VerificationHashEntry::Search(entry, hash); } inline const VerificationHashEntry* VerificationHashTable::FindMatch(const VerificationHashEntry *suggestedentry, const Par2RepairerSourceFile *sourcefile, FileCheckSummer &checksummer, bool &duplicate) const { duplicate = false; // Get the current checksum from the checksummer u32 crc = checksummer.Checksum(); MD5Hash hash; bool havehash = false; // Do we know what the next entry should be if (0 != suggestedentry) { // Is the suggested match supposed to be the last one in the file if (suggestedentry->Next() == 0) { // How long should the last block be u64 length = suggestedentry->GetDataBlock()->GetLength(); // Get a short checksum from the checksummer u32 checksum = checksummer.ShortChecksum(length); // Is the checksum correct if (checksum == suggestedentry->Checksum()) { havehash = true; // Get a short hash from the checksummer hash = checksummer.ShortHash(length); // If the hash matches as well, then return it if (hash == suggestedentry->Hash()) { return suggestedentry; } } } // If the suggested entry has not already been found, compare the checksum else if (!suggestedentry->IsSet() && suggestedentry->Checksum() == crc) { havehash = true; // Get the hash value from the checksummer hash = checksummer.Hash(); // If the hash value matches, then return it. if (hash == suggestedentry->Hash()) { return suggestedentry; } } } // Look for other possible matches for the checksum const VerificationHashEntry *nextentry = VerificationHashEntry::Search(hashtable[crc & hashmask], crc); if (0 == nextentry) return 0; // If we don't have the hash yet, get it if (!havehash) { hash = checksummer.Hash(); } // Look for an entry with a matching hash nextentry = VerificationHashEntry::Search(nextentry, hash); if (0 == nextentry) return 0; // Is there one match with the same checksum and hash, or many if (nextentry->Same() == 0) { // If the match is for a block that is part of a target file // for which we already have a complete match, then don't // return it. if (nextentry->SourceFile()->GetCompleteFile() != 0) { duplicate = true; return 0; } // If we are close to the end of the file and the block // length is wrong, don't return it because it is an // invalid match if (checksummer.ShortBlock() && checksummer.BlockLength() != nextentry->GetDataBlock()->GetLength()) { return 0; } // If the match was at the start of the file and it is the first // block for a target file, then return it. if (nextentry->FirstBlock() && checksummer.Offset() == 0) { return nextentry; } // Was this match actually the one which had originally been suggested // but which has presumably already been found if (nextentry == suggestedentry) { // Was the existing match in the same file as the new match if (nextentry->IsSet() && nextentry->GetDataBlock()->GetDiskFile() == checksummer.GetDiskFile()) { // Yes. Don't return it duplicate = true; return 0; } else { // No, it was in a different file. Return it. // This ensures that we can find a perfect match for a target // file even if some of the blocks had already been found // in a different file. return nextentry; } } else { // return it only if it has not already been used if (nextentry->IsSet()) { duplicate = true; return 0; } return nextentry; } } // Do we prefer to match entries for a particular source file if (0 != sourcefile) { const VerificationHashEntry *currententry = nextentry; nextentry = 0; // We don't want entries for the wrong source file, ones that // have already been matched, or ones that are the wrong length while (currententry && (currententry->SourceFile() != sourcefile || currententry->IsSet() || (checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength()) ) ) { // If we found an unused entry (which was presumably for the wrong // source file) remember it (providing it is the correct length). if (0 == nextentry && !(currententry->IsSet() || (checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength()) ) ) { nextentry = currententry; } currententry = currententry->Same(); } // If we found an unused entry for the source file we want, return it if (0 != currententry) return currententry; } // Check for an unused entry which is the correct length while (nextentry && (nextentry->IsSet() || (checksummer.ShortBlock() && checksummer.BlockLength() != nextentry->GetDataBlock()->GetLength()) ) ) { nextentry = nextentry->Same(); } // Return what we have found /* if (nextentry == 0) { duplicate = true; } */ return nextentry; } #endif // __VERIFICATIONHASHTABLE_H__ par2cmdline-turbo-1.5.0/src/verificationpacket.cpp000066400000000000000000000065751524160147200222320ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "libpar2internal.h" #ifdef _MSC_VER #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif #endif // Create a packet large enough for the specified number of blocks bool VerificationPacket::Create(u32 _blockcount) { blockcount = _blockcount; // Allocate a packet large enough to hold the required number of verification entries. FILEVERIFICATIONPACKET *packet = (FILEVERIFICATIONPACKET*)AllocatePacket(sizeof(FILEVERIFICATIONPACKET) + blockcount * sizeof(FILEVERIFICATIONENTRY)); // Record everything we know in the packet. packet->header.magic = packet_magic; packet->header.length = packetlength; //packet->header.hash; // Not known yet //packet->header.setid; // Not known yet packet->header.type = fileverificationpacket_type; //packet->fileid; // Not known yet //packet->entries; // Not known yet return true; } void VerificationPacket::FileId(const MD5Hash &fileid) { assert(packetdata != 0); // Store the fileid in the packet. ((FILEVERIFICATIONPACKET*)packetdata)->fileid = fileid; } void VerificationPacket::SetBlockHashAndCRC(u32 blocknumber, const MD5Hash &hash, u32 crc) { assert(packetdata != 0); assert(blocknumber < blockcount); // Store the block hash and block crc in the packet. FILEVERIFICATIONENTRY &entry = ((FILEVERIFICATIONPACKET*)packetdata)->entries[blocknumber]; entry.hash = hash; entry.crc = crc; } bool VerificationPacket::Load(DiskFile *diskfile, u64 offset, PACKET_HEADER &header) { // Is the packet large enough if (header.length <= sizeof(FILEVERIFICATIONPACKET)) { return false; } // Does the packet have a whole number of verification records if (0 < ((header.length - sizeof(FILEVERIFICATIONPACKET)) % sizeof(FILEVERIFICATIONENTRY))) { return false; } // Is the packet too large if (header.length > sizeof(FILEVERIFICATIONPACKET) + 32768 * sizeof(FILEVERIFICATIONENTRY)) { return false; } // Allocate the packet FILEVERIFICATIONPACKET *packet = (FILEVERIFICATIONPACKET*)AllocatePacket((size_t)header.length); packet->header = header; // How many blocks are there blockcount = (u32)((((FILEVERIFICATIONPACKET*)packetdata)->header.length - sizeof(FILEVERIFICATIONPACKET)) / sizeof(FILEVERIFICATIONENTRY)); // Read the rest of the packet return diskfile->Read(offset + sizeof(PACKET_HEADER), &packet->fileid, (size_t)packet->header.length - sizeof(PACKET_HEADER)); } par2cmdline-turbo-1.5.0/src/verificationpacket.h000066400000000000000000000051231524160147200216630ustar00rootroot00000000000000// This file is part of par2cmdline (a PAR 2.0 compatible file verification and // repair tool). See http://parchive.sourceforge.net for details of PAR 2.0. // // Copyright (c) 2003 Peter Brian Clements // Copyright (c) 2019 Michael D. Nahas // // par2cmdline 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 2 of the License, or // (at your option) any later version. // // par2cmdline 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef __VERIFICATIONPACKET_H__ #define __VERIFICATIONPACKET_H__ // The file verification packet stores details that allow individual blocks // of valid data within a damaged file to be identified. class VerificationPacket : public CriticalPacket { public: // Construct the packet VerificationPacket(void) : blockcount(0) { } ~VerificationPacket(void) {} // Create a packet large enough for the specified number of blocks bool Create(u32 blockcount); // Set the fileid (computed from the file description packet). void FileId(const MD5Hash &fileid); // Set the block hash and block crc for a specific data block. void SetBlockHashAndCRC(u32 blocknumber, const MD5Hash &hash, u32 crc); // Load a verification packet from a specified file bool Load(DiskFile *diskfile, u64 offset, PACKET_HEADER &header); // Get the FileId const MD5Hash& FileId(void) const; // Get the block count u32 BlockCount(void) const; // Get a specific verification entry const FILEVERIFICATIONENTRY* VerificationEntry(u32 blocknumber) const; protected: u32 blockcount; }; inline const MD5Hash& VerificationPacket::FileId(void) const { assert(packetdata != 0); return ((FILEVERIFICATIONPACKET*)packetdata)->fileid; } inline u32 VerificationPacket::BlockCount(void) const { assert(packetdata != 0); return blockcount; } inline const FILEVERIFICATIONENTRY* VerificationPacket::VerificationEntry(u32 blocknumber) const { assert(packetdata != 0); // return &((FILEVERIFICATIONPACKET*)packetdata)->entries()[blocknumber]; return &((FILEVERIFICATIONPACKET*)packetdata)->entries[blocknumber]; } #endif // __VERIFICATIONPACKET_H__ par2cmdline-turbo-1.5.0/tests/000077500000000000000000000000001524160147200162125ustar00rootroot00000000000000par2cmdline-turbo-1.5.0/tests/100blocks.tar.gz000066400000000000000000000031441524160147200210410ustar00rootroot00000000000000‹íÝÁjã:†Q­ó~‚T¶e{}¥‹ …@š¾ÿx2½3‹.qBþ{ÎF ¬E´û�öO¯oï/eSu5·vW�ÃØ†¾ôÃXǹ-Ë<–Ú×i©¥«Ûnë—Ï�Óó±ëÊñp8]Z÷ÝüƒúìîäÝØþÜö›~ã?ôŸóÔë?oáÞç ®áÚnšZ^ì?Ç:Óð»ÿìÇö³ÿ\†¦ÿ¼…{Ÿ7¸†Ý½7× ˆ ‚ €‚8"∠ˆ ‚ €‚8"∰+l`ÿôúöþ2nú�ºš[;�«¿ÆehóXúa¬ãÜ–eý]û:ÏSéꦻúòùqz>v]9§Kë¾›P÷>Öp î] ‚ €Y½ÿ»éS»—ÞÿíWË2ÿ~ÿw¨íçû¿Ëèýß›¸÷i€kpÝ!qDÄA@AqDÄA@AqDÄA@AqDÄA@AqDÄA@AqDÄA@AqDÄA@Av¥ìŸ^ßÞ_¦²¥ºš[;�«?ǾõÓ0•~ë8·eªC©}�§¡tuÓ]}ùü8=»®‡Ó¥ußÍ?¨{ÿàÜ@AqDÄaWÇþéõíýeª[~£®æÖÎãê�±_†: C釱Žs[†6”Ú×el¥ÛtSÿúü8=»®‡Ó¥ußÍ?¨{Ÿ¸—A@AqDÄA@AqDÄA@AqDÄA@AqDÄA@AqDÄA@AqDÄA@AqDÄA@AqDÄA@AqDÄA@AqDÄA@AqDÄA@AqDÄaWàf~±7Ixpar2cmdline-turbo-1.5.0/tests/block-count-wrap.tar.gz000066400000000000000000000010421524160147200225250ustar00rootroot00000000000000‹+JMÎ/K-ªÔ+H,2b  03mhn ¦ MLÀ4ˆidlÂ`hjd`b`nlb”74243aP0 ‘{P@iqIb‘‚CnV2u©EÅôp}A€c�C€wH”ïwÇ)³÷TB�<ã½�w'îY¿á¹6sʾ%+w6›Ín—÷ªW0Ò3`ðMÌÌ©g�êcâi‰>›ßž^+(Ùoµýë»Hç°E9އ£Þ¦Ë};>áe'Ì®¨žÿ¥Q×´”\¿«Þíì�¶M—]n™9©.©ÅÉèæ§îj‘c¼v»Üø%Wtý¼üt>Ì]IzI`Ç¢Ûß«Ðx«¼úûµóÓî\¹"yŽ�ýèþ)ÙQlîêÄpå²}Ñ4Û£OÑù,PûÑìO�ÚoÆœnà´$/$sûG‘/…{5î/ñ{à;Ã�ݵ\NW}¿Àì÷t v©7}±{íQÍ–Ûòo2�kÍŠC÷o÷7~t;| ^pÚUÌ»øäŠ–×GµÙáÒž£±k«ú¶×Å¡y¥×¯ ûÉõ錵0;2 v\)Œo¾ptÒ¶G |“&zâ²Ã¹(5±$¿B§¦($U*€J�äÜ”œÌ¼T`1Tœ™Ÿ§`¨‚ÔMæ£`Œ‚Q0 FÁ(£`Œ‚Q0 FÁ(£`Œ‚Q0 FÁ(£`Œ‚Q0 FÁ(£` KwÜ_‘(par2cmdline-turbo-1.5.0/tests/bug128-parfiles.tar.gz000066400000000000000000000631701524160147200221630ustar00rootroot00000000000000‹ìÛeT”í¾pRZD}iAQrJ¤Iié:‡’”n¤»¤D�TJZ�‘îØïÙ¯ûåx¬¥{¯WœçˬùͳÖ\Ÿîÿu?Á€€uÌmÁ{F -3¿ã`úó`�þùùçqâ“••ùÏ߀ vv ++ˆ�íÏó€Ì,ì,Lÿ–4'+k-ÄÜÜúÿ;ï´ßÑCš_–AZ\ÞóËwès¢mJ}´@dq'Þ+§yqCÉÖ>‚ª¦Ú·öžOÁÌÈ„ lh¾¶ÒáÙUÇ¿bŒRÍa˜“ˆ1@£¼ñ =4cÀ¯b2z|?ж²ÇG)mmLËôÉ~ÒBuÄþ�5ØÊš�™QWËZë¿30¡ý•A6¾.ë0†nñd[œèðe–ü¯óOfð�ĺ2„˜g=Á­Ý?¹`ù»[“dþXY)X(š¿™“¬ØL2•Ž1•±|̨º,Þþ°,‰»Oòw3hDËgÙTãË�Š]^¢R‚'lq­KþÑü�añ 3ïk1}¦•àöc6ÿ¹ùÅÅg´Ý¥š°·« ‹èÌø–ƒ+šÌ†GIÁ�äÕ3SÃÙ´Y~7K´àw¬Ÿ*"sÁA¶TÕ(·#x›§ê¼e'+•é¡m­æŸÐ(‰Èö¬J�ú<Ûº¦°¹¿¹�2éûÅÙ袆a;üƒÇàÜb¶Šª Ú’róÒŒéM œ?àöc–ÙMC¬rýþúþð¡NÈʼnòk³þ KqAœ­­«¯ß›ï#÷pFÄpœœÙ-Mî;#ôAæþá�X)b©N›Ù*�³4}mµQ!/š/7,‘­ni`J!/̶Äåš”1,F ÿø ÇÓnÿr†~#oL4úW3›ýÛ™ˆúW~t¢N^g#Wì IÒª«H§Íì“(Hžãš‡Y4Tãr±L�ð‚›”š¾gãµèǪ¦M‡3Ošõ7LI.ÄŒ4(½çš ‘�.¬éø„ëé´Q7ÛI t—IaQ¾Ó»"�4Ã-©7°6Ý›p�œVUìgVÓ.ýnÖ´N˜«ÐS?'e/'ºS£°aí®JqÔ²˜óAN¼ÕYÝÐÿ'àW4CRêÏ·ø[ýH²±<åÆ,vžOÅ¡ìÁÌ­Å�(½Q+( „cÀWwîüЦ'6ÀãÉ;Ãø¸†��¬?a–ªF7<ŽºnMlÜldóš�;Aá äJ™óbèEs$Ý+YæâtõÓæ0³C:J‹ÅËÕ|G¯²c nÔµÃâ}î³c�Ír­ä NcÔ.h7¬rÓO΃6‚Q:Ôkî0e œ³„O›»1Ë�—‹3öné¹/âÕÙ¥žds ÷Ø• ƒ‰Žì`ÊB ÕëH½¬ ‰�±L‘•ÖŒ¨¯æç·ó@ý˾²J[¢¬¡m%"_ΙêÐ¥=P'S¸º?*™aY6847·³›¤rñsLaò½ü;î•óÃEÚr"’މ»‚Pø@}ÛC¬ ·Ÿo«˜8´Éø$�Þ^6Èóéå¼ã L–‚æöÆmš Kw“xÕ Þz·|Ï2Ô ùŠËÖf‘”iÁÑéݲÜVÉô'» û@wÈŽ‡žßkbgÙyæÓº får~ãGäµGWŽGÐ,ìͨÄ̱‡¨W´&óÄ'„ –úÈ�Rj¯i]ã|ߨ ÁÑEðU—áø¶Ë}ÙÛ¦�o&[Íó,„#¾„qi�¿9­ËœÌð½wž-V_Zòöí�rzàS¼ €;pǧŠè\~ OE@n}Z¡`Ì~'aŸ#ÜÎn­ÔQÚ†NŒZQi>oz‘ÄH»ÏëI¯•+u¾ðÙÅLTk è¢ìKe–NFÓ+:jÓ¸4^]UÛœÝjxÒ¶’Õ ªÔ?Ï–;u(ÛHmuߨJ2T °µñ?ñ^ LÔ§àâáü]W÷—cWÛíKè '÷š² ´Ä:¦rWß�zl`‹ž¶×Ä™29^ßdu±¡Ñ[A\šBá/7ñlðD“X´õVáÝÛv8`‹óQz ZÅ7ž¥/àÑFüê:7Ó·{MÝ/÷håŒ�ŽjiýÁ÷†—G¶x„‹NÛkžÌ Ÿ£ÔNv /%m8 “°‚��ô†ûÜ~¾íJ¦©NȾ<^Æ|ùd˜n+LW8]HpY“'(>ÍÊh·1LäÍhïh‹œl΂ý›z.”©–üyÐŽRL—œÛG0­Åæ¿öêtß2 Gæ¥î_Ñ�- Ô[uÏ®Šmgk¯c† e:Mt#å3Ùc;ïE?uvóùàa\ñ»Ù²¹U§œm~çªÂoÍfèøUÐßéÕYmr=·—\nÿšú$•�FÌJVÀΦÛÉuÞMxGưr/8Þùu[ÂAñië<B]j仾ëÜ oÀ§îŠæš?ìÿ éåƒP»+œ¤>BxJÙìF¨iÔŠ¼ûÕ:Ïöí:ó¯ ~}ë1㸎íû£ýï‡`Ÿ¶ÎŸÌð³¯ÅžÕ–Œ‹¼DKä³-fÝ8™öK‰צº1Ñ«$4€e¹Iþ¶°œóbVQ5Rr-=j}âÝ=I�»Ó˜£�‹ã2î–U­Å1FÕBH]‡so~7´˜­ª¦{Ü€eßÙÍÏw*A‰Ä²Vì�•° ý Í`œf¡÷ogþy›¾˜-3Ìó²¶:‚ÝL^™‰–ÜÐU­8êà¥�ŽXËZð‡ÛÙ-û~=Aʧˆäj7³%pCåäƒe @1ÊͧãJ^d‚D¼¬¥Ó#„�ólkîn$¥zyŒjý’9:Ý â�Äz_�ðEO5>3~™ÕX±¶d‡Üþ·ŸoÕ殜Wöótt.1Ýb(@6Û(‘&£ª´ØzIéÌ]qAIþ¡„y/ܾo ·µ4rzå\¹ÔHõW?Û@cÏúžìïfªÂ¸YDC„W¨ÛEýTõãŒ=è-þ×óxâ¼ál¨>½¾µr¾ç§©Óúk{RËn1:T b­š“eNlí:l\C›aŸÚóñåk¨§jˆ)–êq:ñ“f~Å£KO¿ê¯ oû+Å—÷âVö·›¨4ýn‘?Êp)îÔœÖ_OfàH �äá÷?ôò®½…P-2üMÈ’”ÂŒY®[r½óã`¼tÕ¸Mª ×}\>‚cϹh¼…�²‹çÙ®&ÑÝw‰¨#¹¥8²xbL‘€JÚÞ*y{ä ÍÛtšùÑ¡—8¦ÃêÁÄ¿¢Õ,aÝ| œÔn(h°ñ/¨¤˜—FÁä_�ÂãÂ÷WÞ›æÿŒaq^ŒÊ à:’·æôo¹Ègóµ.‡…0*zØìÚ§=YJít1¶]ðy¶Ž{õn> i› œ¾ÏU¯z]³Âp£²`­à{4�nN7³níê=:Ï&ˆùNŸ[íx¯.Cû€HÎV×/¡ÛyCýeàsÛÍ€£<²õË)¸ý˜=ܸ[b+®É�££ðÉ1‡òuó�<«þŸ°Cå'þ»Ö¼fOw ½>ö¸$�ì(M»�mƒ8ÏXZY 1²¾†žÖQ„�ý• <, �†l�™c+é^¦ívÊÞ»´‡ñÛ ò6Ä*"¥<(ô�´6kT=å�î«çöX¾í(ôXe°bpÄHÁtÈ£´À G Þ:­£œÌðáã}0ñx*nîh(_Ø”ÁÓÆ—w°Ï³�ÐKl�o˜£®/7«Ý¾!*wÝ×Èô&“P­&å�7[G>jDèkQ÷Ï?¨««kðOýÛ‰y èÏ@jIîÛ#µX®i]Çösk ]söÓá_Æ}ÿ%Ñ“îD-Ûýsík�úv)Ï´îë$pú‚÷m1444wffÝ„.Dàf Þlê¢Ù.ŠíjźGyŽ=Oæ�ùvC† ½�ô >çŽþÑäŸÈ÷ýó€ ioŠøûQô† ±µ`¹ï¿U²}—ÈÙòÏÎÎΖþfíq�ù3ÓgE}#\Š <4$dcCC 4$doCC 4$Ð��õ 4$Ð��ß 4$Ð�@C ‰†½¡!�†DCÚÐ�@C 4$äqCC 4$Ð��Õ 4$Ð�@C ùÙÐ�@CBV:hH !�†ò¼¡!�†„¼nhH !�†hH !� ‰úî@ !�†hH !�†„ÌmhH !�†DƒÚÐ�@C 4$Ð�@C Ùk> !�†„¼nhH !!+hH !�†D}ohH !�†hH !�†DÃ?FÿÁ„cù÷l-¬m¬Eú6ôþ‹cöŽÕäîa6ïAZÕéIç6::Hê?�¿­8àÄfž�8'ݶífSý’/¯í0=ϵÞc¼Ç4Ó˜Tm×�Xé@xX®>Z³r ¯e†çq¥ãJg\}Æ)¾žÓ‚)»2§B¼ÎcEÝuôë=6Š�YIDn_a¶wK?—žÒмÂÔë2E%]%½` _’³tôÖÕeæ‚øU” ‚išåšå^±Ë«Æ.c§ìü~i í ÷Ô#ʧ «š—=ßÕ‘E¢Ò.‰º½Õ¡d~›&[#09ÝÖèué¤ÒIýZº­aZ“@QߥÛG�¿ eµ;¥||ùøc!ÇBÔ«ˆoOéø—Š32Ý•ixàã>~—™Â[gøi×$ãꚤ;¢îŽÿ@”Å^æ^æ&ü¬¶ƒ¶Ï˜oèú¦�Â6ÎÞPBŒ›¥§-Éô"Çtú²±¡ÿ€þú²·¡ÿ€þúè?Èú†þúè?Èï†þúè? ÿ€þCÃÞÐ@ÿ¡!mè? ÿ€þúò¸¡ÿ€þúè?Èê†þúè? ÿ€þƒülõÝ ž Ú­ïîsÞs9‹ßä”e /Í¿%é¹ äU¡qÚlžÛ‹³môÖ 8õÝÐçCUÖØ~`»«^ÙËš­Ä«ÂuïպܚHÙs½@/vsìæ±ÊÏxŸÏª2Ôìî/^êQåš‚*·±éà§O�<�Øê«˜(�K‹¸Lqqwq_ïÀ—W:�-ë’ür-EÉ(_›dd˜ô›á …hvfª»;ÜB³¼2t0åNó’&´ÑN|–®ÓŠ:ûQ”ÝAî¤O7ØÜ3·˜ÍäöP÷ÔB¥…Jiù«ò²xL£ŽP~Ì‹%hðrʽdÊú/ë¿LÔ�¨ûW¡Yœywh‚t.N§‘Í%&m›X¿’"¦˜ÛûÚ}H¦¤R:–0|k{»è±_…çÁóX›áI{×™¯�¿n'aQŽjÄõ8µ¦’¬pþó 4dÐ�AC 4dÒ†† 2òº¡!ƒ† 2hÈ !ƒ† 64d껃† 2hÈ !ƒ† 22·¡!ƒ† 2 jCC 4dÐ�AC 4dd¯ù‚† 2òº¡!ƒ†Œ¬lhÈ !ƒ† 2õ½¡!ƒ† 2hÈ !ƒ† 2²}Œþ‹• Çú¿í¿XX[ÚYsDû/–è¿üÇ|ÍïÕcUû\¦%F>Ðøxµâí† I¯ùm\û˜U×Ùäy‰í¡“Ç&£ß{»¢êg-KÓJÓT޹3¾�Э Ê瘨Ë*5ŠÑêõYËz-ëõ^càÙöͳ¬™^fÇ»‹—×UT÷‚ò±¹2òÅpB+RØSâ¼Yq‚4Ò\˜º¥èÍÓ›· �ïØpé|v¨‹‘F²exô„Tš_¤_deþÞF�7²‹¸7tƒb<-öíª”q³~¥™Oä㤮õ´B”ꃫÍûú°)qÉ/aêpO˜ý¦è°è°ŠõÙYŽÝ˜îv§\ý£Œ+È™2*�’R�RÐóXÏcëOý§ï˜[6E:J�Åé®[º“é|dÊF·ÁLÉûZÖ³%3íþñÁùa||ÄLâ¥Îå ʳ–·ÜOSZÇgÜ!ã�°š#•·‰»^A'$i—÷z ýÙØÐAÿýÙÛÐAÿýô_d}Cÿýô_äwCÿýô_ÐAÿ¥aoè¿ ÿÒ�6ô_ÐAÿýyÜÐAÿýô_duCÿýô_ÐAÿE~6Y鿨n�¾ÓÏøEŠÖ¾ë•s7îûwÂÔsAÉÃN·`óÂDœÆ†Jl8Z|Å)n—~yøåC€VÿðDbÉub]Íþ�u¹HÙÉÙÝ/àÇ€­ìPWN¨aRýt€xÇ&ˆr:#h©>›Ö¶Êy„§¹0ÿ»Ä#—©Hã¾=×�¡¡aÜ�/¿‹t2ªêr´O—í훃{Ó*½+½ƒ;þÒyx$;ûó�ö*qh»ôÛ¼£46h¥EæË÷r±êQWÕDõëÑ|8›�*ËLoW =h\h\wiþÎ?;3 ŸOÉ[Wà,¨r/Eie±ÏbÏ4Ï´€•ÄŽ‹Å³3fHg¥…8?åÄÏdzãÙþ«¯:“B}-"x€dÍ›M3!Ž|XûÛèýÄ€5ùùÉq»ßÑF�à;þLÛAØé“ n„Ǻê]’4®ÞUú/è¿ ÿ‚þ ú/è¿4  ýô_äuCÿýô_ÐAÿýlè¿ÔwÃýô_ÐAÿýô_dnCÿýô_Ô†þ ú/è¿ ÿ‚þ ú/è¿È^¯ýô_äuCÿýYÙÐAÿýô_ê{Cÿýô_ÐAÿý—³ÿB½Nqléþ™YÛݲ müAiG€¤×)’§j­ñeÓÃYûv†l&ûð……7}ž½tµÚjµéV¿;�"ιQ ]Óê²ÒŠòbr…‰ÁKîw-êtŽiZ» ñ†/åÿNP‚›‹ën$®% k{˜hz\óœ4œŽ3…¨P6•n*åÞàÓo%�nëê2,&ꥰßà3´Ì÷™ï—¦¬znÞ��ÃvßÜ©%´¥o3)6‹”hn#ùT–)uåOQvÏR–f®b3·»Í¦(cav•Ö“­''®]¯çµŠÉ;‡²àUÅ~A›[R¦]§,±_b¯xSñfönâݱÃvÊ¿H'þ�8Í;ýЖéScŸf¯{3µ ¾Ì#ú–lÏ–À±Äûé ›Òw]úD”G”«UØÐüñ,«™,,°ýG"9«…¶$�¼Š7ÑЬ�� Í 4+Ь�½ Í 4+Ь@³BÖ74+Ь@³B~74+Ь@³Í 4+ö†fš iC³Í 4+Ь�Ç Í 4+Ь@³BV74+Ь@³Í 4+äg“•fE?sÝø˜ÓWŒµÕÜ5•÷Ú"鹠ʵ�)8ÀæÜ0=‡b[\õˆöÀä�I©BwÓÔ"v†¿k >ùˆfg;Ú”ÂsõíCs€ïtç¼i¢ÂœEµm»¿uü*6­uª2=í&l™Vj�Ôý¶¼=­%ÓÙÍ”˜¿v=ThIQš@IZ“´Æxƒñ†ð¢,¼¬y¬”’µÅ o–ÃTý¬0õˆ1ÓÝÍ3‰ª;’�h··)ÑnE_×,wâñè¹ÝçvzÅ/‡¶ûßµîÌ!G7ÉO'¾zô¼ I®æµ4´TdcCK-´TdoCK-´TÐR‘õ -´TÐR‘ß -´TÐRAK-•†½¡¥‚–JCÚÐRAK-´TäqCK¥áµT¨çBhÅtؽpªúÞLû_¼•uZHz.ùßÖõ<6¨ˆãi4¾'�>ŸNO’Lj¢ÎG�×vµ1ذž¸¼‘¸seÓ®º4I¡T}�üúñÙÇg?Whm®ò9Ï´õ’Aºx{ˆº­'h¼!›$ƒCÍ —›Â&z&ÃNgKc\ ÓýLJ\z\úg¾K'¥l^+�åÃ ËÆÒ¼5½5}?,/Æ.+ûŒžíršéÃNj”â-Û hùY|Ïsz†ˆZÞY”Î)åÖ·2Ù¸ïtiÆ´EY˜úÚŽÎ�ç=1™¥ñšiÉtÊ¥ —6‚ÚÄRN6¡ÌJž•Ü¿EÿÆ�;x5:ÓT:¦qâ$—®dº?kç4ÕkLœÕ¯ï-$k”kMÄ/°IB\© ttOœ}­­Õ=¾Þ ÷Z (ªXCd|zè$ÉQ÷VV4ô˜ÐcjhzLè1¡Ç„zLò³Õw� -´TÐRAK-´T†– Z*òº¡¥‚– Z*h© ¥‚– 6´T껇‚– Z*h© ¥‚– Z*2·¡¥‚– Z* jCK-Yh©PÏ+þ�ç¾ú‰ÉõÇ5�¶Ùý]˜/éyÅMks"šMó â<_j0”Í›D>'‡³#åæl­h’9šè”O4~û“i]ª•)N+>õÕgT¦S[ç¡ÇUþbj�¥é(žÓWQ+°¹Xž Cø­Öz6Ñg†b…4†œf:ÕŒò)äSˆw!ß$#éÄþR£ê!ÿXt_o?oß�·\|ƒÙõºãs?ˆ6bäçW”ùVci¹º|æóe‰â�õ÷œvw6i³IËÍ9ÉTôJØ¡ÀŽ=]ŸùêÎ8Âä¿‹ÿõŽ¡ ‚ûoJ꟩:š8š$o#*”^ya"Ý=â4ÑuÓ ëFz£'2UÍLü…˜â)ÙÙ)>yDa«~:ë]ß§¾O]÷Êø Íí,_|ÿKç…é. &º)9 ”äÐê�¾4ô˜dwC� =&Yk*¡Ç„zLò±¡Ç„“¬lè1¡Ç„zLõ½¡Ç„zLè1¡Ç„Ó¿ÙcB³Í YÜЬ@³Í 4+þ?lòج žË±?eBÿOÍ[¿×.|þ¦œ’žËAž>lt‡�w'q b•Ød¯à³3ñý âývÝÛuGV±¹s˜Hú‹¸ÛéÆœº,×§,ܸ¢YF|FüSÿ-Ç3rt§0ÕÄ Žã %c Q¤¹” %"$CHuCŠæAÊL¢�”ˆÐJ’r%B’±Dix¢T"…¤"¡äéw÷³Ÿ}Î>û \Ë9Ýï~µVk}ô[œµüuÎoõFtopfÞ7äòù‰ó ‚Ho%ÚpÚð욪„•_0±é[2 {'4 ÙÓ•ÁI¼’ñ"toxkƒî to {ÿto {ÝèÞ@÷¦goн�îMOÚ {ÝèÞ@÷†7èÞô¼î 4+ YÑS6hV@³šЬ€fÿl¿»Y�ßéØbWk'ë-½«åÄÑ�CÆdsºÓ�4SÙ3€?#%=**o1-™‘­£öûû/¨(ZSf�H¨!—fô `gAÎòŠH{sksëù5»FÙX÷'ótM×g-n&³åãèun¥ò*áÃ>ä˜#£[ˆE¨I 7Æy�íQÀ-í³´� Ór’;½uØY¼´ö®y}ƒ#!Ø-Øí¨Ìª «&j£–½Öt÷%lxÞþ 'f¿› 6sÖ1Ü’Ù‚ÍÌ®¸\.¬?A%ÈòI&™çVFB'¯=¼öcT†¡î"²Š¸½Z³Ò“^�k?ˆó>ì}x鈥#ü´�çýÏå/áŽÛ}V†û)AÖp+²!r™ÒÚ®…ÈÝ$Î’Úƒg#ZwÍþlˆ Q¬(«(ë›oHØÝ‰ùtÜ:†Ñ\½‰Ÿ‘“Ïr”8‘§]J€î to {ÝèÞ@÷¦'mн�î ¿nн�î to {ÝèÞÀÝ›ßÝ®�î to {ÝèÞ@÷†ç6èÞ@÷º7=jƒî tox¡{Í ÞÛ YÍ ^ëN@³šЬà�­§5+𻿳Ãîþ¬sï|°áÌxq·‡ õœîþŠuŸyÞNeœ+b%r�¨l‘ÅX8ìõÏ?2»`vÁ&�ï§!£�‘AÓâ³ãôgÛ2ÁÑ Ö ÖÎy~¤�°‚ÙÀoš'X;hÃì©=ïST¼Ì|ƒ‡Œ—!ѱܣHf«Š{dðÈ@Q3¾œ;ìäK,<�;#0SŸ Q®Q>Þö݃fMjEû3$¯�&ä :V†;Uî+Ghœ�y™œâÄÌr ³�XƒEÖT*Ì· %ÛÞ‹Ñ&ÏÑù£ó-)¯TŸF–‡Kv8B¯±7? W'V'&&vv(²"Å[Juw>(°ÒñX¾‚l€GFh‰ÙÓ÷Oò�„`Î’f<Ù†4ê-¬Ð\‡”¹-÷[îwRtƒ$ÁSc|{ÕCF§o"uù�ã8º?%‘Ýþß {ÝèÞ@÷æwoн�î to {ÝèÞ@÷º7ÿ¶ º7н�î toþ ?vo YÁ4+ YÍ þÝ YÍ hV@³š={ƒf4+zÒö«šøý»—ùƒ-‡>îL7w:©s呌;§ûwèWÝõÕ¢rÕŸ•Ðøzs*RY˜S N{úÉ_uýÕÁ¥´†Å9ˆƒ béÚ¹œ�)½q /xÒ2?f~ܺtø ÛT×Ydw�ÙJ²6Ô‹ÙDYzʹT|l‚î!¶Ÿ9Ê#ßB-ŽrÃ6ˆLö>Ϋɫ)çæ¹2wvɳxK¢ W/‘Fø"úE4S}ý£›'©͉ەœCÈSR�Ç})P±$ÜÂôm\ɬã³ïÊâûS‰Y›mB6f #±ÛmÛ.F¥(._w‹ÌIu~N#=ñ1¸IƒpâRâRs=æNRF>þ8o.Ê�à,VjFÅå“Õ›”É5ï#»¦¶)™VÁYc«‡ bûPØxàYäìûö/ÊTn·’0>–ÊŒf žõ)Ì µädHíðtoøƒî toøaƒî to {Ý^Ý {ÝèÞ@÷º7ü³ýîî 4+ YÍ hV@³š=aƒf4+øuƒf4+ YÍ hVüºf~×$îÓÕïóR]½†$Ü[š\óà§»&ÝgÚïQyhÏŠäÔp-* 1ö/]S&erÊäÔOÉ"�~!ˆð}Dz½=;c^ãÌK"^%L:xºóÙsý†…d��?ž±ö%�Ù€Môjm©˜¼ß5É�bô Éyýn7ªF’E/ÆÙÚv…`†Çr§-��M[–Tã æ¥yDW‹®¦^œMín¯êe÷Ïh›Eêq©JcÓŠ“0š_wI1sÔd¦ŸæsÒŠÊüe¾6dé¤'ö»Y‰Y‰hÿ'ËL"ÈŽuáÎ�x®C/¬'&�›[4·èÅÆ3;�ZîÒï˹#$ÊJõ`ÃÞdQ:É9Âd»Eߊ#ú¡œÝmQÿ‰²_Ÿ›ß…T»ˆ|ù>÷a˜*AÎããN“g4tñòïH€Ð?N&—½ÝJ€î nн᭞ to {ÝèÞ@÷º7нéYto {ÝþÝ {ÝèÞôÜ º7¼Õ®�î to {Ã[OëÞ@³‚7hV@³šЬøÝ4+ YÍ hV@³š¿²Yø¿×î“�zNèë´C úá›^ô–)gõÚÍ|��ü½|¬�|»¿4ÔuÔµõtí\ýý½ý 'Ntò\ãáìïåçê¥îåë2ÑÉÛ{¢·“o÷—½À¿ãQŸèë¼Ò+ÀÙ7H=ÀË]SWMSO½ûåký“‡F÷£§£ó÷÷î‡ñ»¶–ž®®†€¦Ž¾¾¦®®Ž¾^÷Ïijëêi (jü“ÿVÏ:?ÿîÿо^^þì~ŽÓŸóéC¾½0âë�F?¯ÑZÙ�û~âVNw¢tŸ)«¡r3„s�´YTê1ëUÄÓ>÷NýœúùÊŠ–A›¿! ȸ,÷@vÖÂeÔ~jq?à~@â€Åœª¨!dßvÙÏgÍ÷ 3¹jzUo©Ì¸¦¤‰|°`¤ë€h¹ÚsÃ2�Œ¸‹]øWá_ƒ$0E­Ü™!ÊŽÆ©Âa¸„‰�ë ÏTž©øÊÇŒ »Híaʹ a; ­Vcájª« •Õ˜˜Æ‹JÌ3™YNßwt·>•-;µdÈÞÔ1R0�Ë‘ËÉ:{!3 š,þÎFfÅz¦p½ q_:¾t¹¹NwGfæÏÌÖá’A9+’ƒz‘©IëtæÄ‘m¿A+BƇq¶-ªf(-rh󣾈BÓ½3z´cG´¦aj%Y3Ú9avÒÔ¥àÈÉîÌ¢½hJñÆM)hJASŠ÷6hJAS šRДâõ šRД‚¦ÿnД‚¦4¥ )M©ž½AS šR=iûÕM©m‚Ù2šoú·ijE§H}Oçô™–d÷™hy*¦y¬l¸²C™JÃlŒ–˜TBriÛ¥¶K©úF R‘ mH™iÊFv6Öá&�Ü=ýåô—!¥/¼­“w_&+Ék�eÍþ5³°—ôú ¥âÝvå1RoÈÈJ=ºB•W~’úâvÖì¬É6Ä´µp'^™™±×VãFÖ”6ålÊ—zR"Hí�-ÆÇ“PùýÆœg¼Y:Áb¦Y+u1³¢>ÌB¦M3ÖJ ¢v|œ)Y½2#³4±ýbû7~ßx¹�,³wJFu=Ç�¸Ä帮u]ë¬Æ[�B‚·Žà޶ +Iö5d�Q&™qzdŠïÅ*�åÕœ©Ž(6E¾¨Ì¯ìX„DËIÈIX©3ÿÁ0c|Ãb£qަ_‘B_qâh~þšRü¿AS šRü°AS šRД‚¦¯nД‚¦4¥ )M)þÙ~wS ïÍÐo”]—…Ú‰7’;j¥§jszïMªûL`3•tV­³$Lˆ^ûl®Š A8ïŽ µûèÀì•>3çþ[Ú…¨ìXVâNv£’QüýFПóAå¬&Ù‘h\…Ê¢ãôŽEâCp�Ò�Òr¥r¥Oÿ@"lÇZ_ÙÉ�Àk¬ÌF–Ú°­Ñ9‹Ìébò;$d-g)“s Yƒ15÷—M�Ü»Un S035 m£Â å‹ÿ»Óœô.IÔ&@—ºtÐ¥ƒ.té Kד6èÒA—Ž_7èÒA—ºtÐ¥ƒ.ݯëÒASŠ¿6hJñV+ šRД‚¦4¥ )M)hJõ¬ šRД‚¦ÿnДúgšRø½š´¬¦âòy%9{ëŠuž­¬çt¯Fºû -›ŠÕVnn œH%rF9©%+/7¾(¾è´Ì˜Ç4{ä“?’(¥ÆÎ•ÿKëPšyrþÉùGÌöj%ª*’©l¶ìÇšóyfÂ'è�R¤b��î€Èz2ºÛŒ\ñ‘çÆ…¥dmy8M[MÛÛ0Õƒ¸3Ø„™ŠDœÈÚûK ÞîÞî [:|† Që“nóvý4BVŠÃœEùWI‚Ö!LlôütfÓ™—ü*ç@ű)ÙŽ,x7#ï[IéIé‘Å•+ÞJ“•–àL>ýFOX÷þ>n’Û$·w<Ü"Ž{«º¾©åŽÐ7Vz]×I–ø¹E®x YÛÕþ¹Hj2g�»ö=A‚†ŒüY6 M  ¾ûÅéáü%ÌL¹k ù„'¸#ªçîpÒšÒòƒ]:ÞÝ K]:^kËA—ºtÐ¥ã� ºtХ㕠ºtÐ¥ƒ.té~÷]:èÒA—ºtÐ¥ƒ.ݯìÒáŸÉ<.Ÿ:¨ËÍôHÒ½°�IÙò9}&#Ó}fú|*I÷Y¹*h¶ŸJ #š[—äáúªÿ«þ)¶š�}�Ú…È”)™›Ø9僻óÇׯ£¿ŽNu �ò ê²!™kö¼¹¬-hf¶¡�Þ¤5T~¹¼�Q±=2F8b7Œ-ɾ¤â®Ù^³½ósÏ‘;KþÃÎúà 긯•âç ­×Z¯¥Ml*\mÊ™3_zýAh4v)Ƶ«Ê>&\ÕÀX”¯ŸÏìêfQngÂe©xu q"SßÎHCÝè¸Ñq“ò9‰³ÈÆGàZ“6XÓ;g†[§…[â±ÄÿӿÓ% ùÚª¾´˜;S*Y¹».=‘,¤�ýí²È®+G‘\PÎËùûù²ør©<2ìÚgÙϲn—‡I|’1/Ò�3º.öÆizñf'¯%-& �Å´³ �í,ÞÛ �í,hgA;‹×7hgA; ÚYü»A; ÚYÐ΂v´³zöí,hgõ¤íW·³þœ×'C¾*;¸=Ea�ÀŒ�ûœ>Ó’í>Ó AÅq+ÕFéQѼ�¹Ý$¸Ýiä�;ñýž‹!šã�çc g²8wïôô�ñvñvÚ}ÔKn/�&Óøó›kÁ™Í³¢÷ê•:óJW$6„Ñl_D·s¸7®J’ÝÀEG?†QnáÎ@_v$,3öâÒ\bg2j2j"ÿ:q§ß®&*äáJTnÏ%LúŽilš;˜Ù_áÌtÖÊd'äRiº>\�ì⟌‚Þ¬6^mü2jŸEmMgà?K›ÞuñËigWÌ®Ø8°qÕß¼_„'Ÿ§qçž1+s/T�I}Tü(ñ–ì„äUˆƒ(g¢æˆû‘¡ÚÝÈ¥¿bºŸ  V+B¯™˜¨ºÔsŒÖ]•¬Dî¥gsbPàeF€vÿoÐ΂v?lÐ΂v´³ �Å«´³ �í,hgA;‹6^igí"v:1νkáóÖ55ŸqzïM®ûLt;•jQVvŽø©IEC#2s¬aƒR‹s‹s§[•í"Žû¤éÆN\î¸bì1y1ù#n£ßFZ«“ýL�»ÃZÌrf^Öô„P¦ý½ýok9�ChÏË%¸q°�,ö&ÎVÑVñ]+æ�wºž³£å~ï6.MâõqÂÎ5;פæ¦ôS}BM(#Wxj.a°[U).4U~2!ðO˜îåf‚ÇIz¤R±”]C�Ñ­µ Œ‰ôîW«EF”ågiØ5Ð;޳QÃ5+5+µz·z§!õ‡ì��¸sÁ€•4’5.d®nÏÄZùo û9ËìR(A´S÷•^TEfFѬhVo2ö6ÆÌjöÙÁÈ&w•â´äñqN< 'Ô �í,hgA; ÚYÐÎêI´³ �ů´³ �í,hgA; ÚY°A;ëw÷¯ �í,hgA; ÚYÐÎâ¹ ÚYÐ΂vV�Ú �í,^jg‰g%N¿iÿÔþañ´ Ej Ã9Ý«ˆîÕdQÑ“bÅ»Í×…JÌZÌE¹]]·Jjg>Ù�$ˆ! �(³³:§<¼ˆ‡…‡Å�Áê5õwz“�Œ{”ÆÚ�µÌ »èy™P)lØ;Q˜Ê¨v"htÚšÞ’U¾ÁíÒߥÿSó~#wú²ãb£:7a†ì9‚¸©¸é¡O1C½¨yYÜ.]@0û>ç¨;x3aÔ$Ì‰ä½ Ìâ ˜¸ü¿óÛ¿}Î>û Üûí°Þûa­³Ö‹ÏÂòßÞgyæ)©5u7(õä`Ú ®HÒ*]ƒùn€áÉâÉòLõLí«D¼„o}WåÌ'of¬­JÕð|¤Ü#Úú�·)ofï Ðd[Äâ ó˜Ú£Èœ|«>«>A•ßmpM臭�n¤—à—· q¨d‡"b‚ƒv÷nÐ΂v·õ¯ �í,hg � ÚYÐÎâ– ÚYÐ΂v´³~öí,hgA; ÚYÐ΂vÖ£�¥öìoW%Šäká-ÏKC='Œe÷LFjðÌ… 2*îÌx­,«ÆÙÝ Êü0SžÞïÛí)Èâ&o=v =[œpÐÎ⎠ÚYÐ΂v÷mÐ΂v´³ �Åí´³ �í¬¡»A; ÚYÐ΂v´³†÷í,hg §íßng�ÙP5ÖvÿÅÀ˜s£Âš³2½Ø=Óš8xÆ8‰Œ8…™ÏÒ!÷É(úR�|÷©ÆIHå•?L8Ü#b‡ì߈4¯ f¥×³*D¸­³¨³Èo±ô¤©—M<ˆd7­5`NÀ…Ñ'wZÙrdF Üx‚ì8IϬYg›kÅ ç.¢‡}˜ª²ª²¤\*‰.Î\ôbEa{¸æËeËý¸?&ðÉGå‘S*º‡7÷T‘¦ešNWŒj_úä§ŒZ…ŠŒ¸ªv‚Œ¶c²‘Á&zû–Îþ8û£kO¥¶›(Ñ×xÌ3á?Ñrüÿëm0¦-¶-öVå­Ê¤|Äk’b[Lg(+™1Þ&éE¤9ÏÃåzQúÛ›HÏ%öLâÝ£‘e{?"7¼³ƒ²ƒ|ìn/ÆuYRñ�Jª£wuþã»È›þwnìðÇA;kèoÐ΂vÖPØ �í,hgA;‹[7hgA; ÚYÐ΂vÖÐÙ¸¥�Õwü‹ý¡) KJ�N ŸxšÝ½7éÁ3S¢Èx,f¦üÍŠJ2+WSvQ~ôfü›ñQÚE<~aÈãKÈøû$±r> ³¿Ap»¾‘¾QŸ¸@�H…¤0‘“ü ælj=þH«¥žÌ‚óž3‘”}ô~$!ŸåC<8ÑdN$-†qúáôcY¿gÒ‚X™/s7fKpŠ9.aJ”øÏs=¿ ’ËÔ½½Q'ôj0P…kÌ 3Þè£äÝŒÝk¯‘">G¯“è@ ½®ªj½j½^õéáo‰î5a®È5¥%‚ �À¸[º[fe]œ�˜YWñ^:À™Ô×̘t¨Õ©¶MËõ¯':å¢U�¤4°—aSƒ¬Üñ=î¶!Ò­R[{2 ¸—žFe£$WEÏjyæzäÉ.�Dv”熌ÃA; ÚYÐ΂v´³ �5œ6hgA;k¨nÐ΂v´³ �í,hgÁí¬ŸÝ¿‚v´³ �í,hgA;‹ë6hgA; ÚYÃjƒv´³¸©�eÙj ®Omd"fÜ•PS\f1•b]“0#ÓûŒ(9Íý.¦d’ÒF—©Ü£7Æ,¹!¹¡ÚÅ8½D�Èp¦±Ḋ֧טÝ<˜°¶°¶½½UÅHAÞy ‹hΜxÅLS±È/DÁ®¡ÍSˆ´#x´9ö<Í7NDžSBï$ŽG¦å£·ñx%N-ÂY-¢Ê]·©•ÞÍoùÓ‘†”µØY&šÛŒƒv÷nÐ΂v·õ¯ �í,hg � ÚYÐÎâ– ÚYÐ΂v´³~öí,hgA; ÚYÐ΂vÖ£�5ÛKîíñ%®Z#¶ŸjÅôý<Ø3™ÉƒgÿF&è23ëU­6�ÙN%"o'5ÇÍ7yµ_ÖǪ!™ÍHÎÉhQV¢œ0fSkÝjÝF:õ«RŠFIÅ¥Õ3ÇKby4­ù6dŽûùNF ¿Ók+EžU}ŸË‰®t¢ < Ež"s’êË Îw°â*Y·s{á½s¸NÍNÍw®çùÅÈÝvêÿœoŒãé8>£È³¾÷èÕÝ}F�Œ\t¼Gîh!ã”×w�¨ä=ÿ_O7žn¬ÏtÖ?5�H·­¢@K/(�i5k5«Š©ŠñˆFb?-Ÿs’øO$™¨[ÄLÓÜ ®DñË'=u!Z·âõnä¯ÑìMˆ•@ø×ùw3@t+ŠSŠSêT&âºPm;öm!½«"W¤ï ¿ ;¿Z}nÅA;‹;6hgA; ÚYÜ·A; ÚYÐ΂v·oÐ΂v´³†îí,hgA; ÚYÐÎÞ´³ �5œ¶»�¥R±Y¦EÖA6ç�ÈVïU†×Ø=Ó’AÏò$È„®aFùØg ™Æ4*¥µBõ3eú»ú»2W™Úu )c�ï\wV”Õ1~ “˜5/jr|éòIDaö :Ì9þÉ(z­ìz2wÿ2BL�èÅå!sÇüø›®Ç‰Î?ÀH©I©YeP)ûsæj+±>~2%!œV»V»Øš…ñ�‰ä.š‰Õ—ÿ‰“Ò ?ƒi‘4Ÿ�{Ù@Õ'žhɨà3#ÕRq½—¥d&Í+ØN4B—^Öû¨š¨ž<‡Ý ˆœ=0É·)µ´”bòš1½ ½ ‹.-�4·wÖN?Ä¥Pf„>(–IÜP>2J†¨¬qì)d�"{½ÞÿI¥}9Âqî›23¤]|C0Nå%/g½¾¾9^Ⱦ½·Øqûun ÚYCƒv´³†Âí,hgA; ÚYܺA; ÚYÐ΂v´³†ÎÆ-í,·‘c¬¥B{~¹õ~©»sÚvä)μœÏŒðç3YD½*7:Fµù)f#ß±·f†’¢*¯ä7q�Z/akŠ»¿�*¦xûazçsË%�›aì|Š5PÁA; ÚYÐ΂v´³ �5œ6hgA;k¨nÐ΂v´³ �í,hgÁí¬ŸÝ¿‚v´³ �í,hgA;‹ë6hgA; ÚYÃjƒv´³¸©�µvÔ3­;Ç7+ºž�®ø2r»÷ÕÈ ž $ð73gÛ$ªÈ-¤23Òÿ£);î[Ü7[Jê Çb¤Ö©׊aåóIÌNžEuDu¨>Œ¿ä^äô�hl™Fswä}Ï¡å¦G¦U¥ÿ¢|–žüNä`@›>G´‰JÊ1w*îTÈæR™Ësæé|Vn_0�ÇÔ.Ì;ƒS±V±þöԢʃ\ÒÃÎX#G܃ƒ‹oaÖÍäíÀuQíÐ_¿Š‘ÈFNÕÓÎK�)ZrK˜¨Ÿ—žÙÇNÇÎYö!ý­D3b0™N×i Õaä<1çxÏñŽk×’ß�Ì8™!,ΙútfvÆŸ#ŠI¿äwvQFò&-$ò0{ ëÆÆ#%¦"H]~ydyä45ÓFœ ?Uiþæ ôº=„\ÞäÊÎ�ʰV´³¸wƒv´³¸­í,hgA;khlÐ΂v·lÐ΂v´³ �õ³7hgA; ÚYÐ΂v´³þÍvÖÖÿûÝýÎ¥^áû>ÿÄ9½ýÛ^ HÔ0ûÝø»:øøóX9û~(j¨é¨i+l�¥£°zc@€ïæ9êêÎÞî^®>›7ú¨ùø»©;ûúªû:û~8òp復îïºÞ'ÐÕ?X-ÐÇS[s†–¦Úà�¬õO~�Ák–ŽÎÿ¾^ô¯Ú:šZz:<š:zzšºº:z³¿NS[WW—GAãŸü!˜][6 þ=xü}|X}»ÏÑ‹øŒ²¹Iã—Š/¥¦¢ÝA'RÞ4±{F)?x¦0ŽLêYfN–½+&ó¦–ªÒña`Ræ}»ûvgÇ/<´ÙÔ‚xï{žÎ  fm¸Éèc·�Ýö ‘lK¼Ùø„è=o_s6-h§•mI&Ãçn$¸‡ž—?²Å ï'¦M$Ê6Ä´ ´ ¾£ZÈá5ç%+•ÓMå12RGåqa†a†� MÇ#ÊÈ�1ŽKx»g>ëÀqŒä§'¥8Ñ8ªž'Æ0R®aÄW1׿ä!2â[û•ˆôvÑÛØú\เú'ù�f{¢I6ŠçZÝñ˜�N˜m‡·NN+ÍA"j]’ÍßsfÞfä¦7Ú�Ÿq)©n+Ñ~‡kÍÈö&ö"ßíCRÓwÿ†ìlNJZ­ëý·f€ªÔ+Ὁ±>ó‘)Sv~uÙ™�ƒ–wlÐ’ƒ–´ä¸oƒ–´ä %-9nß %-9hÉ ÝíŸhÉa÷�®ìšb^¨cý›þ@´�¡oA:»û@ ƒgæ‘yÑÇL ½•)ïx*“1‚9²Ï¾J|•6{9.Ùû ¹“Ì_ÎÊÛÌÍë%|]a]anIÒ�í‡^UùL1bnÔWF£õiy^##¼û¨3"C/ã)ò,"±†T‰¦ðc,Ã,Ãn ÚãÇ™©q¬¬®žÒ…Ùªvø5î­ì[ÙEUQ7 #Ɉ/ï(Œ»¿¶ËóB劮0•êRäXF§ªéÊæÇŠüM&ÖfC/‘›½2×B¾B¾œ Éæ‰>ŸÅL6²È¥µÓcÛ…9Zp´àZܵ¸Xsäþ«·wn¤s¦&�±Æì;D£Ÿ*ˆVGå¿�ô°wAÔ‘YôgŒòDdicǺŽu o{pEc©ÒBšéí�;z òøe;;—ëò»pУ„ z”У„%÷oУ„åpÚþ­%´ä†î-9hÉ … Zrï%‡ÝG»ãÀ;ã|×–Çë-Ü*7i¤°»�¦8xfÏ.2Wj™yÂÛmJfqUö¬O™ºÖ’K%—òêºOFÎARf×±2a &¹0kåÚâµÅwuº¹Ê®!’ú͵†¹—m¾N+÷™W¯�ƒ�Eµôª½éÖ]81þ"ÑühL�X�˜âª ñœ·`ÅP]næÃê�Ë8MIMIûÍ�·É\#˜U‘¶8ÇÃãþ³=òy*®ºˆª È;�ÑÖnF»f¥o!“z¦½ŒÈÑ�Þ»¾B¾B»jïÿGŽ(�‚q-9¥IË| &BSWÇOá§´,CDêv½8aÅ™øuÌìŸ`8›¨äÃxí5W‰$'Ûö oÙ³ø+WYïk}{�€ƒåÔF’/A<<ÛèLÕ™zâGMQI`ÿ6¢ûq²£éÓ£%ÂM)F“Lç•6Ày3µÉO»~+ž| rn‚Z‚[‚ëaDõXÓþ#w÷6„”|,Fà9xdU½Cãar7¶,ùvwvI£2ä|£,§Ì�ሜr�Ö3aZ›?ï[¡lGfý©1‘DcE©ÝL×\¯¹þ²þíZ«;Dçn@Ÿ?/£dÛÝ�yØzØšw˜w”ª­é~=X#:›žJ/©_DwbŒ¤8J‰F&'aÉÌ)6䋞?æàm¸•Ò”Òæú{ìÆ=´Æ4ݲ¢f|F­ ørv]&3ó®¸LÀ¡%ûn¨G‰z”ìÖ”D=JÔ£D=Ê¡±¡%êQ²Ë†z”¨G‰z”¨Gù»7Ô£D=JÔ£D=JÔ£ü÷{”ð¹DE¼ö­ Þg«$Ï+¬¨`ö\bÎà¿V21 ô„Y™4�‘ËÅXùw¯òzØù°óBIàÑØ™@ü@:ªä#Œ¡¹÷5y%ª%ªo(¶&ŽÙáM$[j²�¾ÞŸ´æôSz¼–ŒŠÿäÀ–hj%•\ÓŬHûBôr)$%#%u8‘5×ü¹,�Žsº†»5ñÖÄÓ„âíä ”J½¾Š«+Úê=L ý€û•‚ùã~ÀZ“Êh]Z¹FþÄ-R)«Š‰ä꨹MST|#Ý&>ŽhM d³Ç5‹R° Äw ÎÎæ—æ—õˆp¸!ð=€5!'è™Ç1ò9ÑVë&ß[‰âJ-Ÿ¨1§¼#h3`³ðÖÒšPà°°”´”ô†µ¾àV`D—eTS»À¿_ pu¹ÍŒjÊQnjÚ¢þÞïÞPõ÷P�ý6ÔßCý=Ôߣß߃w¹?hµÿaç¬)1YÁãh»c2³¿»$Àÿ¬'3î0=?ãC³È èa”sŽ/s²5³53çm ]Ýä”¶áçùz š¢`ov_æ¾Ì5ó` Ų—«ˆnoUxJßÇé´ÆN¤ô¸‡Ì±qÀÅíÔŽLN¸‹°¢ë;‘¤%´Kc—Æ´TŒÄÖæ0Ò$&®¹®K¸Š‹N‹Ná>÷s¹¹ŒCG:âÿÄI¼I΂ürÛàž¯Ãt%šÑÒŸCke4¿{y1™˜’FD©ÕÔ8Ã{”z”g$>9D4? š!{•’$ÍiYjYZ<ä´oóšiÉ›ôøÜ6K"’iËÛ¨•EÔ—?â°Ã“¹(¥÷±€ÈÇQ±‰Wûeþ¯ý_ ÅYâZ­0Ö§qQ{tªM01õc¦›cÖ#jx²×†ž¨á‰žCwû'ž¨¿‡6ÔßCý=Ôßcß õ÷Po8mù¿ïǸT›ø‹îŸìì›)Îñdq+³û±¹ƒgäÒÈèsÓsÔÚçELTDRÍMLjK—xšý½¤|ý Ý<Ñ�Ý Hsáˆí'ËN–…ÿ¥þ cÜe¢²=/ é»}€–*¥™d¬¯ç˜s¨9Ê?—–]eEùd¢ñ£¡gÓžM;¥�ùò�5†éŒø”kBaWõzp3—Ï\nÁYÍû@�ܱ&w&á|\’¸¡6ýu8û%˜ݻŴ–—ÒR;±èÒˆf2AußL‰ò=©Ý~²Ul«Xþ¨GŸjˆ:ÖBò¯fPÚm mn€.I]’25Û èdŒ�}oklÓéé–N”9©°À¦ƒÈôEò4 “ü»g‰å¹{ Šiî`îàš¾¥®8‹ÿ~œüÜ4©ey$ õ–ùÌÌé‹ Æ¡†'jx²Û†ž¨á9œ¶«á‰ú{¨¿7\6ÔßCý=ÔßCý=Ôß:êïáwo¡­×�xñ,A IDA2ÎFœÙÝ›äà™ºËdàûH´ºÞ;‘éêÅèi¶mpÐô,ó,säwÚÕ« ÔE×ˬ9y" ¹T($ÿRù¥²¸—'·ÚÓ"•èe¿º<}⪴º[(uú�IçÖj¿S»Ý pÕ§dE]>ÑŒ.ÈVÖVöu9¦Ò“5k×0R=bg$<ÐúÓÓ³Ìñë«– rUÂÛcq·O›KC�®Ü´ÁñæaÂ×eôÑâ·¥uü!÷Z7_2­†E‘DÊ�Ô¼·‚|€ŒˆžGÁE¢~5èÉõÀVJFŠ�ø3¨xuñjÃLÃLÍJàØøuZËF²æÌgzŒ”›‰nöïVëÊ z\¹è'°½‰¹ûy /�½ÝgR±c«˜l®n®þs­Ï œ³F©¶²“Zɦ©;�öK�˜ù&'†C OÔðd· 5—pl>T®£ùãyƒfÕ€w¹¸5³çRƒgTMÉD;Ñ£ î<�ÌŒk͆UÞZšòšò2é�-E•À@20Û±DŒ‘ï? ]Áj Õ Õ ù¤úòW*®Ë‰ªøf- ¯Ù€·=¥k2žfRjÀÛ©A´b ¿?}Æh)­¢ä¶�̘­¡ÀÌ%Ôöoø�›=Y¡!KTÇ ½âxÅ1uf¯?k¼—32ß`ÏfHãj„N¸S¸S;ÛþÔäËäMÄ 8„páµ£‹¡e¥£$q¥þ˜ «e ´î¼§u:þ�Ô!2¾g~­¦6;»Rÿ¤�.©ã…œˆtBî½cŽQ*̆î]„rysy;b;bË­¿UG-9ÂÍñôð~¹§Gô~Ò³´BD™7 ã�/:Ì­Ô™àˆLm>~ �šm3Ãf†aä6œ "&ýcå j {¯¤Ï¢&„13Ðüw*5ˆ )ä‘{¤qõ^‹>wP—½³ç2ƒg¢•ÉøñÓ#Rš$GæF:&bÌø3¦÷…½­ûK†û°¢ 02å–d¤€Úܶ·þXÓ±¦¶¾<ó̬ŽDYmwÆÒçýœÖ«tJÝdüÝÅ,€™ÔŽË× 4·³Â/�hÖshÌ�17í0Ín¬1«däýÓ@5H·W×—� sñï]7rŽO‹¦–Çାª4C§ÏeÙã¸%01?6pÑŠ“§5çhdÈ‚82º'_ðÍP¤¶¡Ìb¾Åü‰kûω¨�0†¶´¬¾@ɪzÿ â³á³éõíõU®$¶Äg¾zË“‘ô 5%RqùÄ×D#¸âœPfn[¨ðÎ}iÉ _ ªÉî«Ý×¹¶…âjÎcº•\3©ém¼îTê®ÊbftbÞ%;5î×Óˆ±�ø¦Éµ8E5ŒÆ6mMZ"1´ <£Õ3sÉt:7XÕñR³3îéí[ª,ÂK¿â v¹LÉæ5d2ºbtå@í�Úª3ÏÇоÒ7¬©E�™ái"m]§×÷Ž™[p ÖS˜Ã5Z² šmè¨\˜>!|ò¡�|¸*7 ÷Ýñ5Ô:-³Z�àrC>fü#\4pìÔðDý=Ôßc— õ÷Po8m¨¿÷ïö÷àwðœ£ï5y7¦ê-)2X³¾ƒÙwðyƒg¦y�‘צçrÖƒ—ddÖa®jIðæí‰u�u?šeÊ¥º8uØßÕó�‘q+¡óö&‹ÃÃ/V´Ø\×á0 R9zÞ�¾´u´Œe) F’ ˜ª;M`ìr{ÛÌŠ^¢£ŽÐ>þ}ü­k0SY³?ž‘<“Ú¡/Þ×qò#åGþÚ?¹:€œ›t”¸X.èï�›!µóãŒqžc„•O‡Òªö¢åkú�[Ó†Ì�ñ9MD_K¨‰/Ÿb6Ålßý‹Éæ+ˆ¼¡³ç8(éËCKâ¡ }úlumu[?WžŽ—Ll`ÍØéôLyï2›è�CÁÍ”ýDÅ­Ý€í/æ*Ÿr~øÃM9ýÏ•>Þ>ÞÍ»-pkR0F‡çRÛåüÙ èõªàe†Óye5<‡Ï†ž¨á‰ž¨á‰žCgC OÔßc—†êï¡þêï¡þÞPÞPõ÷†ê†ú{¨¿‡ú{¨¿‡ú{¨¿‡6ÔßûÝ =ÔßCý½ÿK¾�ðZúfÖÂÈ]3ûԖ¿q¶aúNðüÁ3\ÛÈl¹IÏÆ·¯�’‘UÆô�–ôŒÚÛJteJ¥BÃv¢ëCó?#æê¾¶Ëôßì*_4œn8Ý'­ù·F#ÛWZCí°ö8I@jfM3ª/ïnıSÃõ÷†Ö†ú{¨¿‡ú{¨¿÷»7ÔßCý½¡º¡þêï¡þÞðÝP�½z¨¿‡ú{¨¿74¶áÖ߃÷ôçÎ,ôk™³õ‰S„Ú�9rÌîéåϬi#“ñ�G�UÕdÞ•cÆój4„äïÈß!â�² PÙ ‡¾òg¤W ºPZ±SbºÄô¹aÙ�óãÛ/¥po4¡ïà&Z»z(ɶ‘ùºcõ, 7›šÞ_@ˆmÖ[Vœñ"êRƒâ ã Ã"1©çX󌇑.K�8èà’’lœ Ÿ ¯ä5wãPro.¯÷ããÄ]U+–€œvØ·â|c¦v«�£•ü'­û–«½&Š’Ù”¼™h_µ—1O‚Ÿ[©.ìúx•H7’ù‚Ry"tîT‘_‘?OdžÈ±G€Éèè;íY“w‘ž�Ë�y‰TËù&»­$ÚÔ©T<‰gnÑ…þ]ÀO­þ¤K¶À”Ó}1}1o¶HàæêaŠ<’—S›nõ4in”eFu�9Ž�ž¨¿‡ú{¨¿‡ú{ì´¡þêï¡þêï¡þêï¡þêïï\¾´ø,í#ãé,ÃÉ^ÍìÎE~ð ç*2OèÑýóy7™;0!ÞrKR‹Sv¤ì¨œ›úqõc ë P•%ÌȉÑPVÕ±J£Z£ÚåÍïEn7LûF¤ýëÀ"úŠ2hí+§TTLÆ/É8˜ M-(Ø.¦Â’ÿ´w¯AMÝiÇ µR…å"¨Å°®°õFB¨2R•­¨\e�‚An× ‘¢Q·\¹4X  ŒÜoEtW‹]¨-‚ ,£2( Œ TVj TÅYþsúŸ“œœ�¼qJ˜ç÷áÕ3“¼=Éœo1ws˜q˜1n&lf+æ‚Ý|r.•ý‚Å {‘л¡z6&¥ç[Ñ[û‘NŽš©Jíý�XŸ}‰* ÿbu`Ÿ÷ ´G…ÒÆÃÞ&ÐaD¿ ÊŠ“ÔéØ×Û×[´Ô¦5é•s%võXÓq‡G1MlõÔê)ô̵¹ÚϲPŒ™±,ËÔŸÕQñw5ß]ñ‚ªŸ�\‹Ô÷È'ˆ81‰tŸ<­h„T™‹ÌE…lÑIR|!áàYa‹$OÎ}-Äç¹M©<¹ÍçHÐð„†'4<¡á¹oÐð„†çBmxBú{Ð߃þô÷”ÿ¶Xú{ø9PhŠÓ3Î¥¨s<½­/Rãÿ)ï9{î3?¤4%Kh4÷"�mj„'veáÑ]1Æ1Æå–ÓÏf—"vÈͶ¡Îù¬¼�©4¯ª`V0½7ª¨Üëi¥2³ån’­©WZ«¦8�P:/Nýˆü9E’c?¢úØZ¾ïRéXaG+�V>ÿm®OóøÐ|­WlÁ˜ÛOÞ!qì8v¾vv)Œ5ôÞ¨›¥×“>ÿÖN„•G{Ü#•ð ÎÜ+w¥¹.Í%á§QƒNAjN;•êI}ÓãªãªŒâ+¶1T{C1ÿpMq{öc�É#„’z#õÆ'L¤5qûÓ Å˜ÕÉbý³–•ñÖ6±*¨Æö&"ï} ß—é½¶Èíφ8—û-ww¦;ÓŠ¯]O²D°Ò­«’´góS.¬žº_žî5Õ]$hx.¬4<¡á Ï…wƒ†'4<Óím5<¡¿§¼7èïAOnÐ߃þÞÛèïáçh¦ìK.î.íž�¢ó® ŽÉ{Žf>÷™w¬è¿#K“zÖmS‚žùÍÀ�w ‡…÷׎%èŸA ¿G¦OÔôÍgú8Ƹ#̰Yi³Ò¸ÐQ{éXI•u‹S™lñ,iÙqûèÔŒGžFÆnJêøùåü¯zŠè_Euõ¬äTÉ)×o:Û“P:ŸÇ ¶:?V�Tµ£jÇOŽë8ô„“ºË:HG+3Ó1Ëæ61—ÁކåÒŠ\¥y¾]ÿ÷]:±³¦ãTeo$¥©MxMx}ôÅE‹dª÷ ±©ÏflÅmÃDF¿€_Àmç¶?CJ1ÏMsóWÌwdáï~Mµ¼›÷pÐ�J£½½r1%ÝH¾A‹ë3ȵq vu#Òý0ïUÞ+íŒCa¤‚~›a�¤ˆÈ-®ˆÀb°D­¤¿=!-¤†'ô÷”ÿý=èïAú{ÐßSžô÷ ¿·PzÐ߃þô÷ ¿§Ì7èïAOYoÐ߃þô÷ ¿ý½·×ßÃß×M†tÑÚþ2bEô»�S7–ùÛ{ü}gî3ü]tò®Éâ•~³‡Î­ ‚ÉÅC[—�ŽÑ�ѯÌü»–F&¢Õ„$ú‰Î|C°² \Ÿõ*ëUâŸTt»\ÛD•ñÁõdð—–˜ Îy�ãëû3�•Y’‘{·ŒQýÕV¦Y¬Yì›JpŽW̾ÿÎg¦ùþìÜk“Ä�ãÆÅ°M˪ Çjõ©"Åê ib¦ÿ2ÙEzù€Ð§¶%[Ú˜‡4“¯7~?RO'1‹aO•7#ÉñO‚‚gš‡h5P¬À:ÎÖåŠãþk¨ÃÜ’Ü’œ{œ{ŽŒ"ŽÚÞµ³ÍŠIØ)‹Siî)ª†Mìç;}¨tÌ’²‘¦óòYßÖCt3FýŸf"ßDéGé+/´!}ÕKX×èQ#É¥ûÌRĪ6£@žÈ»ÿø– Oå¼AÃsaµ9¡á Oy OèïAú{Ð߃þžrÝ ¿ý=èï)ï ú{‹§¿‡ŸuZßIÒ>Àñó¸,Ò ÷~ !ïY§ÅÜgž×Щ~-ËÏyÂf:nÛ æW–»�š´ù¶ù.ÉdÇ ïAþÇCÆs¾›Ï²RìsMíŠQ�Q+–ËÍröœ1„2äó�Ǻγ*”±H²¼e™¤ÙÒC^¹ŒS;¤i2ôýôîïSÿ§nü„ë·wvêa ˆhŽ’h6Ù$ØÚ{† ""‚ ›xƒ•…h�À{͘�™j`• Vm³Ýöé~‡S> é6¤|½,¼£šu1¾röž±®Û:Ìuˆ}ª®ncST¡‰]_”ÕÂw|ô§c.Ë"§4}›ûÕ_©ÿžíÁ! ÿ¯öƒÁÀ.\P,±Øpar2cmdline-turbo-1.5.0/tests/bug44.tar.gz000066400000000000000000031276651524160147200203120ustar00rootroot00000000000000‹ìÝy8ÔmÛp»,eWÖˆìËCDÙ÷ì{öeP Bd ‰¬Éž¥!É’-•]ö}_*²D)”¥’ý­§žãyß9Þ;ï{tßÝê¾®~3ŸùÇ|ÿ<Ïóš¹~|üH¸•Ó8Ò‹ÏÙ Åø+äó†Áþuý¼þçU =! Á€ |~'(�b|6AA &È_’m¹»ºY ™˜0�NNnß»o¯ÏÑ¥!¥ÅÐPÑIüö>cAX"£ÀÊ‹”Ƙiͬ„x^Y|ªZ¢ϽÖ[cNþù~&(Cþœ\îj•È}T÷Æâô2¦ñ{®N ªÞÊÖZ/ú~Q8 ·G¿ÒGíÖYŒÈcm½µÍ¶r)žë˜ÿúWwKësHþÏ׿tƒ»ºñ óY[¸Yü'W(Å×\[Ó²ñ>Ø¥—oÂpâ/üQ.%ym™/÷£çÒH©Ñ§¼,œ7°ÄÃÿXsÖRŒåàïlW< Óú‘ðt¢ñffI¾©kêƒßfk6 %ÛÁw””©U·áEÀ~M{Ù[c­˜qÒŸÁË2Ä™O=\R’ïzú“cÑ%ùd#]õJ_èF·Ì.û½mñà€uíŠ?GüáYXÕ™5ø£9Ìuâ6 u#Ýð‰åZ(\°/öÞ¹·YJ€ts€�¬šþñ)‡êË÷è¬xämpúË…›ºq>ÎÏHÐq•Ì"�û+¬B©‚�ÖùH“6–b€~ÍÖ´ËÑ*º¡OÜ’tØT nÊÊG×XŸå{’R:û½ÍîÒ�÷F离å׿!‡Äàq¡-,ò\F]ê q'iïCDoJ¼ïËæŠãìW5i(ß9cýèxaÛS¬' a��aMs s¡5“î\/lçs•Ÿx §| Ø_a ž¬—eMè[Ï6¬ç›®Ì4’ùÏ Ißá=jw°/Æa§ƒ”¼› íŠ£û ?-w£(z}>h©Q¿‹w6YJîD-¡{uu÷^óÁ3*±°nÅK>šP“o$HcQv"a[²˜*T™”s±Å:º“YwÄâˆè³f]3ɸŠïÏEÐæƒ­„_sÑHêåÈZQ´.ϻ߿bìh°×|=×Ùû©ÍÝΘ7†³úï7©�üˆ§ ì÷±`xòGoo»¢Øe’¦Ûóo¤M$õ•U#ÙºëîŽÏ¨F¼{ý($ °Ÿe¾Å¦xöPºà(—+y bÄ˅ĸ›ò.æQJ©ÅºBÐ{ï=·Âa—ñº�ûYÆ`\(Ühï4<ïH�%ˆw\š„á %ymtÜ2½FÔÅóüP0`¿ª]L¹ýŒSÛP“ÂñADù ϳQ GØ,TÓç!K•(Úï¯/ÏDýÙv—5“w›'ÊVx± ˜Û¾æ‰Œz}­2ïWÊ›vÑ?8(¼·à,ã^õµe•lz>Á ÑÜé„J‡u(ǹ†Y‘Wb¶¼äÕ�óž ñ\U}W P+ãŽ~›ixT¦ß¯¯¡hõuâÁ¯¹t2N 8WÉe¼E¸/Ê%íU_£çJ!Šì‹&ÙDº(‹p*9_*žÈöç[¶×«¶ò’9|~Õ2föQBî»nM!2³ªˆ2YeÙtHoR²íŽØ?ÏxÞ.†Ø�ò²õ3ÆGk{ì$4‘ꈶW7üœ•ÂOÙREˆ¶4Nð¶ß¬=ói¨·E×ó'þùôÑŒHãä‚\‡idï\_IÈñ¶VºaÃö{[Ú‰MDÞÔ«Ì›<½Íê*Ziäo'>�ªò. «Ešªmm^U4.töϳËAr°²•§™D罇/vàwGtdZ _ÊéÆ^1SÌX‘'á§à+l¿9âÖ¼ðHÝ[ÑŒ´Ò&.^®¸q˜¼ßEãðøh“—5±Ï¦šQÙîëBèý¢/‰!¦fæÜ…'éGÒ%Ó½úE Ù똳±Ä]©Žç…ŽÆ‘ªpj Â?³p!ÄHbcíâ–pòƒHØ2¹ýOÑiKÌï÷‹´~‘òÛ~L� ²€2ÀRô6Cö¥p:d¯~=~àPÞ©Þ#ka['¥ò3×¹ 6œ€ûìbJóêøsÚøúã¨g‘ÇÕ U­™tEõE‹i�¯Þ„d�‘¿XlYO «8Y5¦!îŒ#\Q#±1èHClzWpS;6i¿xçꎸDŒÏưŸc/†äçxÇ2Pƒ0iL«b‘þü ¼KsýL8nQñ[V‘·é[4<'Zì�L\µòmW�ÑS9vøÜê„ÕÝÓÔº‚DÝH úN¢Íív5Æ™ð`?fåðºó-a7"Xžà–ð<0’éD¯UÛUêø›ZB`ÝiÙ1Èå½jUYFœ´»niø"6�Âa'q«ñ™ŸO˜ión²yRF»�9ãF;ïfÑùµJé«=]Œü~­ C«U=I¾æ\�¡ê1Å^å¯ [N‹^wÝ«VEÏõÒ\ݯüì+ŒŒ&NÍ$ŸÌf¿:(°Ÿc3©q¤Óý¬±"Ìð7´LÓªíæ·ºù´'õ Ô1Cg \S­®YeB$—€ýÞfx¯©”I̳vô†ç•i%›Õ“4­†#Š~CxjæIÖó(¾q `*罬]÷�ÀhHR?9°3Ÿ¸g0¤u×:?_1Uékö›J¹WÐç¥j�r|nSîÙmÊß½æyP |α„×Ì8-}i{zd+¢é¯Úß±F˜yk]tE4§.›�ÅöKjÀŠ¨Ë°þÛ<úŸyôë<@mMû5—¤Éä3 s.úö•­¦›Râü{ÍÐsí§¹Ì¯hq�-lгºÔÚ êÙÖ�jG©Z1v$Wè`SÌ4M©ü˜ÌTæ•Gä ìï³ ›@Ïüy賎pÓ$tXÔ*ïKB—�WùS³ z½ä“.ìç˜:Å7…ñ!Ü+j”Ê»Ì0§îÜÈ„ÞOY…üzEùä¤GÎ8ãïæÔ�û;mÍÅ^š¦9þ‰Ûìu½2‡…º]’DCÍ‘›þ©—‡’_ùùtt6.Da Ùöû˜Ö¥ü¦ßäU’„L({(CeJB­è«èõý¹{ëÒOi®Ú&Ïuö³ìQR ·I�(!Ê�'")»Í=x}éŸšâ¼ØÂüvkcµpй"Ã.°_Ájs+nFµq†¹cÒÌ]Ò¤"¦ Pû$\TÓ·ÉOx›³Ej#~+)°Ÿe™×Ôd6‰}ß/:äxL 9Ú”£"–Ve5q_Kw%&õ˜È¡ì‹ç2õdÓ&*/)Oyá¶g„•Ë’]à»BŸRO}ÁD˜\”OË# °Ÿf·LýëmUˆylűµÝ¢ÞK3i¥L½Ûí¬˜H»×LÑÁZ�R¥Ñös¬ËYïzœdš™q|JÌŒ8}©.fHÑγÚ�U†_L­Ñf„›-û½íb~Zp™0Ï€vO_ÑóûúÝR^ÞXûé†ÿ«¡t%.éÏŸVÝ|:y¯qJ9ïô5GZô}2�ä^�O»\ªæOOŠØdöÚ'Óþ°“û¸Ò˵ànJH !Gð]³¤Æòu…[Äز‚RXë°1ç\�$Ûé1ÂaL‰š Dæw÷É„ÐöÉ8¾ýn–Q¾éènûóéÎ2'vµûP³½öÉÐsý]{“æôjñx›† x‰§i±v>ö_n¤Ò.Z�|Ô9D?Ã�’yð’d¥¥ Ø�ÆÇJ¡Uƒ«ãì¸B�Q}>º¨òåKZôå<ê£Ô¯Ñ•¦…-ôÇö³Ì�Q;6�ÐhŒ�iwBîÝìíÝ­—Ù©�® QufÂl¨×YúÃZ½Àö—½%‹`Ù~©JͱÌS�­“ðàš†Ï6v”{!Ý,7î*‰åéf\7T°ýeÆœ)›:¡2^ëôI ‡–›’J³ùÚçO²oÙŸŽ_™à—ÆcUc‰ìGíék7=j½ÓÑ=Å“奻ÊÉ9pi°ÏY”d9…Qd hÕb¢Î¶ßl‹²¦X�°‰HýÉÃÐC-W©™N“ï§g*þoFÿÆD×»pÍ$d|éKÚ¯±©×„Þ¿ßÞ1÷OP;ï;k¼U®Oµ¾Wÿ¾æÃȇ/I§óÊë=¢v)®îwW,b´Ïãá(œvÇ㹡l™«_væÓxŽâR{-Aü÷ûwQ´þ½ì[ÿ>Ó¦qø¹»}¶½'i«Q‹ßÔ^ý;z®Ÿqf*0`_Œ™I)W¥W¥P«|jI€xºy{œc6î´-³‚‰s‘ršÞ‹j*ÏÄø¼C‡�í;Ï“u"�Gµý*2ÒRqó þ Œr”¼_;0`ûÍHúV:¼fób˜_7Ð%b±šÙÑ[ïX�È=¤X4ä 0ZŸIõõÙ ÿ³�Ù±‚‡÷ZYw&6V:åñhsùSè³$¡Ì–Ó§óÈL‘‹CøßÔÏâvÓusÉLdÆè0æWr7›Vßµ5A2�ßu!›Ò�“=> GTÕ€û#³EðDt¤—«•˜jy·É4Ÿ5âµÍH6=œÞƒÅÛÚlR}Á¸ ¦¢JدieË/0¶ú³”é+/cgms>:·Ìš±D˜³f¿ÜìRam¬š_+kå/N Ø�Z2›˜Â�޼õÒÿbïÎã¡Þþ?€Û÷�­lE„¬3 Q²“%ûž-Ë 0˜¬©,Ie'YË’T ÙRÉš]vY*²—.²–,ñÍMßûý}î�ßï×ýjêž×?Ãs>8æ1<ÎyŸÏ9ç¦Ã²ö‘dßÊUz™”þ¹9 6gY­ëO”û®ã5µÃ,ƒ»`¦ž¸‡4![¥Bz¯e¥¿u Ä¥ž3î�4ÝSLyÜÅãá‡Ãù±þ~4ÒÒñóežünŽö°Ïá�ÁàükßãÏÿ?³ö]Eˆß?ç>Âp .( ÿü™�0L ÚÁb�ým-Ø ®']ÌÑ,,XhGG—�®ÛìùŸ4_ßw:ë+³ºƒÝ(JÃ2gê¤jz$þ·ÞwZHK7mûã–k_ÃÊÂö§ìÙÃúaaaa•� &úË®Ÿà/Ãù%,¼_òõqý³o„êK‡Dr-ÐHþG`„~=;¿æóÇŒŸÃ°ÆõüñÜ¿/ÛýG¾ñ—üõk@´þ, ))É×l#'§ ÿF(>‡ŒlÛ¶µëTTT�7Š¡��Áï/!ïŸÂ÷9¿`gwâkìþ*.Î箢¤¤¾ŵ())©Açí’ÇE$“3-=)é�YæÍrÉ6›·ƒþony\[JïIÏÔ&†Dà7ë?>­vý(Vèž:x Viµ�|‚ÇÂÆç>Š@æí.Ri×ò \4õiÜ<÷s×xÑn›ÍÛAÛ…Ië·Â.¸g%¶¡‘I*¤½Õ¬RüÁê™ÏPg«­8Réi8¶M†ÐÐ<¤Sý„ÌösÚë–+Åä>ÌžNüêARRü—“žï ÏÍØÞÕXN”ë0¤G^32 ì×¶‰míV¥S©L„·ÄE™G>uvÆ^ «ã5W7Ò Š@QXÌ_D ¶fsN-ÕÒpÊ¥vŽíÅLOÙŸ»ÇhÉ«`�×V RÕ„÷alX’‘;w Øà • ùœvViã(úê—,:ï.bìøÈ#ňKË좬¼{žýe†%�°_ÛlÏÍolR˜ƒ‘DF]¬aSà6jT�:Àp&vMr®5�;аŸÕ dù�ë‡G‹Øb?@‚¨l¬�½XÒïÊ=d3ö„»àü ’æ0`ÿ ÷`?'gÂT{´b&'Ãtfø�5çß½vدc\¶Jh©;1Ú'ñt_&¦/f‡w@ëƒå«Gã¥å÷—’¸7mV„ν°);’uqL™d©ôË÷8Ûtì^I)Ûi¾Sìeµ®™TT3õÆõAQH}°v}M+½”Þ-9KêÚé1×ûŒ 6«BÛõ=ë!€a¾�GÆðò²ÍŽœ¦¨º9ö›Œ‰ä3}eÕPEަòÀKÝçGˆŠQ“o„¶Uv6Ç”ÀN�ñ|˜ó…»ãɦ³Èð—œ�…)]ÍѼ7÷Ìc9qŽ  °­²@fã,‘J;OÿÎ1º$Aªöh‡ù^ÿ~AGœçâÓë¦Á¤ma¼¯È£€ûYíTÂÍ—û´ 5©ˆˆC †<ކe2ož˜wØSø>ñ^%°™ÈÌá±+y. ‡ö¯UƼóøO™ž÷jÉ<ºk³þ5ô^©^îNvô…ˆO(>ªbØ �ÃÑÜE­ Rgzͼ— °hM7î_ Bú×±Û¾´K'Y"SîT$Ÿüå:!·YÿÚ.L:ÇçW¶4Ï7u¹£„Ö:ªù¬œÝ$åÅE/óÆWÏ}2˜¨;Cw¡�ã3¯pï —»}yF4&­ËËJ±ãŠ5? دm‰û—PwÞ¤\ãm©VWÑJ¤z×÷~»¡*ß”ˆZè±gYjKÙK—�³œ�ýó윿<"fÜqF6Ö©BïáÐ òN—ŽlMÖkyÝÈs¢fŠÉ3 ÔüyÀ€ašñS¡®�‰t•½KNÌ«âæãF*xŸ2Š7y]ùr :5ÍuA:^¦Ù�Iãk!v“9íLc*l³ñ"´]„~wµìœ\> mŸ‘²ÀC¼è ØÏ`§ªg{_1D—ïM}š¼W VT›Âèž]þAô‰X‡•ñì5Ø�# §2�a–5û±‹o/Æ6Äv@*jÄVft쬈Lj<_U�‹DÛMܾ´".qzqØÖØP‡Â(_Orê3„‰ ¶eŽh[F2Á™ÑSÞ&\×i,ŠI©êôÍ+^‘Îö-W}ü®±Ùè…<'rt%u¿å�aÓ«e™±º¡L ΤKŸJ(8Õv åû>+@†0ž¨ ¼RÁöÏ/—÷�‘l´¯Z/¤òPÇÇÔ†hJL‹@OoÖW…®Ó&d}Õg¦MÆ·ÄáïAîÒãï„î@j¼zƒÑ»VZ_íÅDèÆ}U¤¯ê±~¶žÐ¸,m³)î¬ÀãÀéÄð…“›õU¡í¤µùÿ4¾E9ØÆ)ÊŠü��e0DµþØõ&~í~}buì‹#'¯Z[¦À¤¦€ýÚfx¯*�å Gi÷� ƒJÖ³èk »½a†®VÒ7£Ÿ>;MR– ³¬··ˤ%n1A Ë�÷ȳ(½É±ìGÚß]¢Îwd¢;ó‹ÚN>ºhæ±½ùÑUä"‘ïÀ­99Û¦Û~á°¸6*`ßg§£^R#ÐV� ü9´yo9¯)¥_€ÖòÔ`î„é�æ¬Müh0`[e�âüxLüÅHRíyCâÒê\Ï/Ì¢=wÍ&8MÔ°¾[^\LßæT˜l ØÏ`¥é…×Âêöºb3nKŸÒ}F/LFM­öQ$»¤uI€äæ¾éÅèQœ¸H`À¶ÊR‚Õd+ÉÎÎMØßrï7v _’§%“Qe7q��?IFéÞwWX”¾°53NgiNcˆUžRî7òįO,�Û~ù�Kä SR@9�›‰•¿–{0`[f7}M}ÊmTÈxmÄqµ]ÂædX4�&W ûïUÓ‡ÔÁpfÃTé5€m�â8é]Ž’J43ŽNˆgÊÓÅÈÞ¹ï¨ö£ÊJ•η™}¤ó ÉAfÀ~m;•‘x>_„·]»¹5ûÕ}ý&iO/LÚ‡ák©º’gôÇ$T—^ôß«P¾+ìÀ�'s׈oÑù¸ ç­þø<›Cv³y2èùGwÌfÐÓ—_'ëÕ’ÆY@ô8¥»ÇÙ ö�tbK–,¢°7œ'†Ì“q­ß7»K¡j÷jý«Á†|GNµû‚f›Í“AÛõ£æ&�1©E,Ƹñ‘ 2à¬|h;WI«�=Ûÿ¨¡ƒy„'UöÁkЉT-m`À¾×°.8<ž5¸ÔË‚/ìÖzZ×�6C!·F_Á×½½V¥ãšæÍLÓ‰y¬qún˜kãÞvüYŠÃ4Õø.©ÍÀ0ËŒ÷%,é\”õì[`Š‹!Ÿ®Š�ÉKã¯;À¹l'=ÕÕ' CÀÒ­Æ Ø÷Ú‹÷V.ztîzá‹§<Äã„d ¨¸ðéq�›çÞp¼hD}£]«;õ0`˜fË4%9B$U¤êÏ^$¯¹DÇ"AÕ‰Ig*þ•1ýf¢ë•5oÐ;‚>KÙ¦1ªW¿ß\9æ£Ösâìˆñr�>íÂfãwèyÆêÞw†t·º?ìF2¬¸¿2”GL³â´ #Ž|ì½¥8U_J½ñø] 2~Ï_¿×iìxåj—fçAYkTã=°ÙøÚ®­Ø3°5ceQJWiQÉÒ*˜‚“ Vê剒°a=lâ”­œ¨7TLë}—|0Ì·¬ýY˺ޓV+t+ˆÔÖÙ*ÑQ¼Àta#»Ã†ü*¡zÀ€ý_Œs°ùÝ”ñ'ÂŒ¤‡S¨4à#$´ŒmmEŠwáLo¦Û�·yA/ä­ ØÏ`V¢ØÞï°Ó»­l+5^ІùÌ5ºs¾ÖÞ{½D¦`P|_»û¥PåJâU"`À0Í^˜wïC§]AUÌ['[<¶:rc"¯jý%t¨…êÚo„W°¨R¼ë�Ã4£h�yê9r7‚õmCv,»™-“ÕŠEg—üC&ß C.b£…á«gO¯ýÝÆêPȘߔ‚‹“D³7ü˜Â!j_h-M"»ìøñ:OôýDÇÓo®MýZKˆZMÒMßn"ÛÈ56“¾T5;YWKÙ�s¯Û™âà€æñûØ—GÔZýÝ—hÒlZù%ccˆ6®%ì‡Ô¬Ö÷{eö�“ ¨ñH+;Û†ÓµKw³Z´]÷Y†o½ŸÐ9¨éœÚn@¹8ÒB¶`Ûä§»Ç;˜z²ÃƒU¹ûDU» 5ë|+0`k†³¢ÒÆJhûúv912ïh•èðrøï"a\—m"ÂúYç5ª¡ åÇŒîáÀþy&M}Á+JG™y¿[)ÓvÖæ$Ž éÇüÖ3æâwø«T¥éÞ=:óZÀ~œÕ.¶)Ý¢U �Ò˜¬¯#o‹ÍfíŸàœÅ¹X:ÝdIQgÈ'†�r§†Y–‰â_¼w¦o·îKo’Ú.ÊŸ}¢?HÐê,…/Æ®`”»'l€ü©vC0̲'ÕvTe~Y·»,Ÿö¸:‹½òûø=çóžN3džÈ7Ú¹gôp“/5]¼ê Ú÷eWŠºåé9Ë)!q¶ìÆýÍú¾x\¢Œˆá½£~÷Gf÷àI–$ÊÝr›OY¬LÕK˜G>Å.f0È`CDTjXGWìƒól¼_Œ¤ïkK»¾_Ìq¿A—ÜX1Ã&®9<Λõ}¡íò¹å1-¹ïAù"r^/\‘—‰·ÄÉ×H¹¤ç Úì×1œóÑ%nQ§NtÞ£:|+9ó­æ¡“tÿbïΣ©Þþ>€›E2S¦¢DNçpˆ(ó<ÏdÊpP88¢ IEÆÌÊ�T2dJ™’Ìó*óTºÈX2Äïzªç®û½·<Ïêþtêîïû�³¼œÅ¶ÎZ_{öwïÍn"ÇÎ7¡÷Ò'ïÄ�0ÄÞ& `À°Í欮¼¦üMOTŒLA‚x”º·f !%n G—k% õ¬kñœÜ¥¢ Ø×ÌÍÔ�˜Q5×DÓ£NªZYØ�×:)Îdgb omµqé£ÌÇE%À~NËŸÁYm¿¥È\|?µóãÁ“³ìI3¤wmg«�Š,�T2ʤ-¼E)�û^‹ã‘»Û�¾”wÛ~UK9ɧr�Á[2y ¶°@±ÏIJóæSÅ�›-%íÀ°Ë.£ú¸r4S÷ �Çg+UHì·¨ô³ 8v¥÷œk¡†k²±©DÛ‹w¢×€ý8ã�©H= ¬`¸úy—^Qúiÿ™2n¼Èn©9¡d—µÀ:ÎkaL2â§�m�kN;ÉeçÈŒ Ed¬öKݵ§YƦ³“°ÉJêNyu�&Œ<¸ºö>÷ÄL¯�ßþ/uÖÉÏõ߈^ ’íâÜ ô>‚xV눯ÕYUÌN¢7ÞOù©œ‹³ñˆ‚y‰tbI¤pÚÎë¤ ;µic¸÷èDN Ïâ �-p5šÑAÏŸ…®u€î] ü®ïf”xá`‡ªl%IôL0h�ú¼tÏðÿ­)þ[Èv‰ùù¨uÅvâ¬0ò:~õ9) ÊÌÙóéeÉjîÎêh†á³°·´;‰F±žAaNŸt@³Âa‚0†®Ÿø‚ ,~ÿHÝagìàp8‚çƒm|ÞÿØïøý§Â‘Èÿyýýúó+ŸŽ„ã ø¿Å/çÃ�#ø#ã°Âÿ±|ãr9íl†aeÅÁ888ë}›}ÿ'½¾Ü#´?ß×z®žm¨y?P¯Á5ÂâØ@Ùñµ{„&Ê⌖ÝI‹�'»l v!¡aä3˜ú#]Sk–Û( 1¯ ÿš{ü´��5<õ!ß_)ô×­ÜÈí�E�ùPz´÷�t ­+þ]öધo$�xGðŸ#]-]mS¦Qüç°ü#Šý_¢/ÉÁ°‘àp_¹Oy—|EÄÀˆÃˆ3Yó)AÇ?e탇Á§äžÂà ÛFH¨7Òâí™ówѶވÖÎL§O9õTz•VÅ÷wYçO�Ö>”YóÎæÂó½îü3Ìú¥çm¾žQþm.dYdYÊD#õ{E 1/6/f‰d‰ �ß[ù)„¬�ûÚˆ4Tw©î²Ñ ¯¯äŒÁúaý¼í«*Ð9Ö¤IA±¤L wJ#ÖEÓ\²ÍæX¡ÿG[‹kËܘۅQH½bOÕ›Çq‚÷Ö!Zqʪ­eâÝ–¾}F§ dŽõ2ͧv­KGÑxâç¹^¸�$ˆš:³Ù+´]Ø´ft+ì’kVB;•¨´½¯šM6tU-óú|µ%G -ÇŽé ZÚGô*QÙÀ~N{ÕúØR>éˆ7‹»¹¿#L-P\v-ñÅÞÐÜ ªî¦òm¹ö#º¤¡5c³À~m›ÚÑaY6“ÂL|GôÑqd‰ò"ªpÜÉ w‰¬ŽÇLÍP'0 Ma¾xÅ ؆-8¶VK (W:8¨J™Ÿµ+½pŸÉ‚GÖŠ ½@°ª™àýĨWî°ÿ†)ÁwUiáÉûè=^vÚSÂÔù�[œ ŸŽÅYQqÏ"{O†%­=°_ÛlÎm[0<Ù1Ü,»8'AE\®Ù'Ëeؤ6q„ñ\ø†ØB[*W0`?«éKòÁNé…F Ze?BЬl ¨�¿üxÐ…kÄzâ)W�2â)Šö-0`ÿ ›tc¿ mÌ\{¼b.'Ãdnô¡ ç?½ÎدclÂ0â÷¢µNèô'¤-g‡vBëƒæêåëDÇã$d—‘º”–6oV„ΓíSt ëæ˜1ÊR”éu²&êܳ–üd—Ù.ážjSñˆšo×… õÁÚÏë�ÄuïH[ÐÔÎN¸<¸dd¯¿Y}Ú®ïY» ûí"*‡Mvø,EÕí‰ß$�Åžé)ªËs4—\y~ql[)zúM¡0`[eçsLˆlù˜.†8]JŸ!›Í"#\‘u:¢p=GG€ïþÂ3·Õ@ä¢f`À¶ÊXŒ²+mÝýº&ìéù¨;¢ìûü‘D�±îË 7M®noáé'�ìgµ³ñ·{jhÐØo# *q;’ɲ{˜ÞcOæýÈs�xÈZp*3‡Ûöñ )´­4á•Ç›pÖ„ø¢_`kæñÝ›õ¯¡Ïµõqu±c.…}DóR—ÂO¹ÉEq•´]ÒO™ë3³÷ZI ¡3ùvÿšÒ¿ŽÙñ©]ÚIÇ2Ž%2IoÑ.S2±›õ¯¡í¦3—~eKu]W�;Nl¥}H%Ÿ�ó9)÷=ç*©1t¾´¢t"¼56NŸqÍ ìßg>¦àTÝ=˜ ìû¬Ätª& 2¨bß ß\ž‡†R�оj=¿Ò#mos8²9!5 3»Y_º¦ž˜­ÀT‹Œw…ÃÏ�6Ô¹×Ï‘0Ô~»Ñú-&¯Z =Õ—SÁßî«"!}U·Ïç òOJѵ˜àÏ*˜M]:½Y_Ú.lÚGáßf£×#(‡ÛÙÃ…ØP¿1²©ÔŸ¸Ù ÓÔ#Qý<¦úºÅU‹d¸ø °_Û îW届¸•=�t»4¬`5„¡Ö [Þ n@äb)Qp+Ô!ªá™'é“`Øe}}ƒ8fáê¶Ýü醫,MÜ¥¶§Ä^¾”«X»ÈQ@ÐìOY»‹È†]†Nd'Â{’g©BqЦ—ûˆÛÔ ±[ìúyó²ƒè�Ñn+I·ùðœi`¿Ž-•˜Ü˜~’£2¦¡ä(�¶T)íâAž<ô>q—ùö¾�Ï"ú¼Àþ}æÈoin¿[!=”�A#¦~FWp'}E•Ã#:’Vcô¨Ìd¯4É>}…×9vÀ€ýHÛé³[ˆÂéždTW~Iûé‡#—MݨZ ¯£–·ù ÝY�¶i¾ë �m§ö}æÑCƒÄX6-‚åÐå½á¼¡�v ZÈS…»sï3á«Ñ¢�>¿Y=ºg^‹tQ(óÛ»–)$¦š~gO£«¯ÏS…·Kúª#sìèó¿}ž ReüÔ.qãÁõ\Ìõs«U7$D¿º÷Þ—z´]ØT—ù-â©™UNÌ­&ÕºÌrŽ¥=Z!*»⊴ñiwdøšÄ¿�cÍwOßîìÇY‘•¯�[Æ_OC Éa &¼z¥…\ûÙmÔ%Þ´${müÞÌxÞ DÛS£yç,·-ÊŸ{N•Vq� éМÝZá&-—QÁ,/[èHÐ7=® Ø�´E'[I†ê¨Îc×tóí&Ÿ¬SÄhtßð¾~¡3îµ—gCcådN§ 9°_Ç4ÏeTEŸ�›§ˆNæãá¼ÌR]&üÐ"t)SoüþһģóÖqã�À€m•Æúrû “¦ØñŦֹ\\šÇ¸ïž�wœªa{»º¼œ2¹Ã±(É&°ŸÁÊÒŠn„Ô pÁeÚ‘6£óŒA€Œ†Fõƒ`öã¶•C¤·ÖH,G�ãņ¶U–|UUj¹’ìü”Ý×A{ò:2Ivc—Å8ÑÓd”®éB À€m˜QkK*cŒâŒâ ¡;a}R@�4Õµ‡Îás̉þåôgŒ©…aš®±À€m™Ýö1ñ.·V"ã±Å×rY�dÕ0Œš^o,H¸_ÍTÇ›QaP¶5V„ç¨{-B<ÁÔ(*>lT”9O×?{×ÁãZ…••J]o2¶/2&šNûµílFÂÅ|Až­–¶ìþzÍîxØ´ÃÿÕRtÄÎéMSYy9x¿rH1ýØU{Fè<™«z\«ö‡u8!]õ‡ÙR›Í“AϪºg:‡QŸ½&w“l_š_o Ùë˜æk=ÜKÚ…+öxí�ûÍy2È<Ù�ÏÏÍî–­Ú³^ß?ܘïÀ©ú€Ït³y2h»~ÔÜä fÕ(¢ƒè3¼dÃŒxkïÛ/TÒieÏ6v’¢”¹S¤¾¢˜JÑÔì{ ç’}±À¼þ•>Î Bß�6O�3t²¹5z²>®å!jW™ |&ÛÀÛ*sÞ­ˆîKjØËº> 3=6É8ÎtóUêõÆÓ“!O’L9RÞÜÒëÒl†]ö–*hßÇW*ôfy2Sµ£^U÷üˆâ’Å4ÆM@E8O!G{¬šÐ9¥v™ÑÁøíËRîḴÑä³UqÑy©°ú‰#œ«¶Ç¢fºI±>WÝ Ø÷ÚËw–κô®ºÇB—Ϻ‰ÆòËJ6P dÀ?i–{Ëá²!Í­Í2Üe`À°ÍViçð“VmW{ñè2yÍzÖcÔ]Øt¦âßóoÆ:Y‹Æþ}c˜ó”íê‹ÁºUÐñûíµÞѪ½§Î�­èÑ-m6~‡ž=­æuO$èy›ë£ç(Æ5×~ä,^»RùCßù™ú2’¨o�ß…!ã÷üÏã÷Ñ:õ�ý.¶©¶n”µ†5^C›�ß¡íÚŠ=S�Û06V…4¥V¥,Í‚¡ÙpõǾcǬÙ䌳tGJéÜb¢ÒÉwÃ~;Å6˜µªã5m¹F¿†Li‹—ª'H0´•ãfN® iò6€)…ëöÿ1Îá–·3F‰3‰$S«#ÆHé˜ÚÛKäÓ̯EÒl/Z¿dà÷Rìg0K!Ü)¯·¸iÏ-m*Õ{„B¼š\9_ií¿ùX²`Xô`‡ë•`ÅJ’õmÀ€a›½4{~Uš‰®X´J2/¶T¾u8�G¥þ &Ø\}ã7âHêY¯z`À°Í(ÚæÜÇÒÃØÞT0fÇà±›Ú0[®™wuËœÂ$½›êløêÚÔ/µ„ˆõD�4*c©^&œ‰¹´•ªùéº*xòžœûÏ�(D†4N>À½6¦ÚæçºB›jÝ‹‰ÞöíZÂaH-Áòó~¯,>±’þ5n©OηãµGìÖÙ¬–m×?}–ᯧôÊ"N‰Áú”Ëc­dK6;:{½®ÒLwº±)>?UÕÁgŶØ ؆á­)µ³Û¼º[N‚Ê;^%4º:³LÛm“€´zÖuƒz$C±˜É5Ø¿Ï$h.yDh+²öØWFÍLÅÖ’ÈQ!æ�ßV`ÊRú–p�º,Í«W{QØ�³Úåvù’;t Á3êÓõuäop÷YséÅ;eq.—Í6[PÔð ã¢]i€a—e¢aË÷Ï ìÑéñ"­}èü°üÙG¢6'qBavYÃܽ!Cä Z�þdÿaï¾£¹nÿ?€Û"EVYE‰²2>D){ïMöVø„ÌÈJ22ûØÛ‡�‘•"3›ìŒÊ¥PVɈïqÒ¹Ï÷}ßå÷;Ý_÷§îë<ÿ{ιüáœ×õºÞ×õ†Zö´Á’¸Ú;/sÀ׸uÐÁ–o؇ïóÏÌçuK×¢™+Ö>r|Z¢Ý•…„†q+²ÒqýÊ€Öb‰ŒäÜ·J®õ’ÓëIÐsÎh¼ô*2Èså8ÞF ªÙ¢™ÿ¢wüRB¸“ă�#­ÈØ‘u¦õ,8û¤[ݨ@‡Ûì9y`À¾gæp– Ö¤â[ò…zÊ®Í" ²|Ú¬æÉ±z‡“:0X›t+ur+ËÊ•€ýšV¼0�¶Ñ�&Mýä&fzï—Ó¥—è“çñ3V,lËLtärªD�=ù‰€ûY‹e8/‘Ùš½ZtÏzCE6Ù«n‹ÂS8e“my™ð„­ˆrêSé‘T¬Žòn`¨e“šè$s°/ÅåËÔ �4®ó1 ¸è?xéTÉ)E×_¨ëÅGþ»Àþ9㊮M?Å'¥½ñ–I.-útرŠ#¢_Od‘7Åa3°™ñn•˜à5`{cºÊl%ò Ä&àçÅÌNŠdZ“N¬¡Òì$T²òæ+½:“‰ïl~*4˜´ò9ù­Ï:»ÓÿE X•ðö 2/“{ñ`˜mq|¯Ï*gx¾ýóD_Û¹hÛŸ(•‹&åàEðeŽÇ—:¬JÍ|L-bn|�›`™é™!tþ,ô®ôíÙ�O00R#KG{äÅëð¡3Á =^è÷Ð7ÿý­ª;kNx¯gPöyÜ<�¨KuÑ´×î{«²©±£ŠÕeãí_Ó}`{ šA챌?"یĹ@¯ÑäÿþÏA|ÊÚÃIÑ9̓|xΙªÒŠíŒº‡ßßNf*/×qá>`þW)I1(ØMAéç,íYÚìX¥�ÿN±î9¢ô-Æ5cÛ‘×S5øç¾³5Õrã'“iݯùšÇ~W¾F­"í[Ìܶ³N´� ‹ç’ûâíXMÑTî¤WÐzÆ¢²þÞ_›ó®£e=Ÿ¦ªüÛ!‘“CƒX[â¼æßÏ> ûií íŒÇEüÙo;¡ÁÌÀÌèÙèÙ ÀxÎ<Úü5/:þ•'Û¡i„7Â3«¢Qõ""V"´Ðó“äY�ä\c" ÚýB‚ÝÎO ÿ#�Ošª(\(¨»ùLaØOÜäS/¡oæèD«j0‹s^ýñü=Èù‰É×umŒ‹F’¸a9ÝL€aEÎ9îv~]*ÝÛ »í”—Ømgš$³¨�N�mìŽBîs¸{ƒ ’‚”áÀ‡ RÒÇär_Ló�ýšöº³ÒD2ùœ'�‹‘¯ ›B   ÛݤÇC sõ·Õì+´žPÇmœZö{ÛÜ�“ªy$5nÿãK°rÙÓÒi[[ôU‚fCmµÀ08¡ÑŠŸ)0`Û¶lÓÙ ÄA´ÞÃp¨‚ú髊›¨ŒYÄͰºKxêÛ±>ÍL P1NÙö¿°2©26J›#õ*’^•ã¶ÇÊ©z?3 Ra’ÑØKK[¡•ãLDj ì÷6‹û–µ/÷Œ·‹¯Ì°X~î¼»‰Ó Ø^Y�NO�¥‹Oߌ5y'qO¤õÊ�Ï( §7Æe­5UïÎþî–áƒ`À~U»wïÕi-%ë}xA%ΗBriöâ}Âûô)¬_XâqÇÌyær ˜-+_ˆp@ëk™�"ÖÄëz¸·|;s/Ý­¾†~³2ÄÔGow;ì œ•¸‚ýгD$Sy×mMäâ�¡µÇz"™Þ�ëkNH}}àëºT“/æòpØ”‹%¿‡;̉ÅìV_C×…JóT~gKwyÓ\R8�k¦zF®˜ŽqŸù¾}½¯È”¼XTZ4‰½3&V“rSìßg,pW[-ÌdoqÑšI�cUJv ðæ76R�òÍÉ‚x½ëFΆjÖ’òÒÏÕ°mø…g5I_ðQ;�ØÜ¦Ã¢™wy£Òû]M${#ÌØØ�ýÞ–xvž=ö&%�¥³AAF9‘øýÈÇCZr¬ó<òÁÏóä×ó×ý%uòl�ýûì¦�¬xqöê¢H´M­úã‰MÓûýª"�y¯ÅÔÂoòêK&/Šž!a+ ÕŒ�ž:ÃÓ_ýž/9±¨ž‰•iÒT'@ÜãºN`d¨îëÊðWc Èt‡Unè~Ñ�P ])eÚqóªp)œh^o·ý"ô–P™•O½Æ�쬣¯¶ÀÚÊõ žØÛšÁ°bËi–ü‹Fè?Þ/²Cö‹¤;ç1fv¹¤^F|÷hÒoR!ÙwÛ/B×…ëÝ›}¡óÈJÀÆ9!«œ”Uf¼µ«À€ý v=®aih˜2²æ$òUpòIyöò¦*§üšO¼Oùz‰u–ØÓdůçC-ëð¦ç?T�®…=im*©]—Ó{¤6<©íV} ¦©�å\¦ÿ&¿@˜ÛÚ,°½±‰^ñiÖÁdäs˜®0ºqowN2Î�é뺧RÉÎUì'nÖ0¬Þ¿ Ø÷Œ_îÉû¶í—bŒ¦Ó›È³Æ÷'õâ«s£Õ‚©ŸÙî_ÿRIÈ(t2°ØÏY‰iÕ•Æ€ˆ Ú/°¼ Yi‹<ƒÖª-\2�U=õŒØaí‰éav »ÕªÐû²¸tÃ#ú*¬ë >Τ¡öƒ>6Ø¡Öûu¶Ò¨<š„4ä_Îÿ¸V…AjUç�g\³"dz˜Kgž,$†®^Û­V…® •îHÿÛl2A4ÞMÎKgúŽ’vލ†-“#jGp=Fu‘‰ái‹AæsÎsiôš EKâÜ£ð�É~3aç¥ð‚À~[-×KøP] 2¥$cÃPÅ-j"WÑÇ»|æSÒ‘ó÷�ê}Žâ`öï3.#ë£RÙ¡œJÑ-óê<‡Ékë¯>&ÃëÔ…OŠÍŠâ�ДzS` Ø?i‡½ŽòÚÞŽì+.ï¾öhÂOßùPGi¼éÚ>¯±ŒeQ‹öLïPö˜nb`?gnˆW$0;“¶Õ3ldEo¤²nCûEòìN%¸Ì'ô˜§UH£Üwë@ßÃê- ¥ö·Ì4Aâé»*û\¿oˆ_Ð=Þ-¬í­+°"/þñ¬H? ”rgVƒîè+E&ê–Å�ú!þïÎOûÖ€® •ú2¿¢!žšD§µÉ7çÖ0¬S ‘3>Ú[¦ŠIz Ç[/îɧXÚb—ìý6Àþ9+3ó¶rΙá|Õ¨w–� £‡\f¹Ð×zaq¹')Þq Ÿ·ónia�ÀöÆH>ÚKì‹ôe^”'•Þ¢ƒ]mÏ Žê¬u•È©¥–��)µÁú0­ Ø?i+¶– ‘/ì§îª[ÍVoFk)õ'xÆßì�}ãáÖú¬n6­×â °ßÇ”oäÔG¹Ç.F¥p²0úÑ<‰‹ªâ{dºš«1ý`õ€UÒ¥%óØégÀ€í••Æx3ëúðá#­X‚bÒ›n­.Ù¹]г™k¤{¿±¶†œ=`S–l د`UYe !ͧЩdÍ«=§à& !‘ÿÌ“_Ùµ~ÿÞéF¡µÈiŒ˜p`ÀöÊRîÈ‹¬Õ¸/ÏYe8�jq[\##–£×uX‰å¿F@ä4’ÍÍKÑ ضédÑv¤SFKÏK�j»`·$”ˆºûÈ>|‘:É·†ÜQ—‡˜�MÙ)°=³{^zž5æ2,æü˜*ö!Ë´JÚqc¶ž•�$>h jfÇX ‘£P¶7V†a£~!˜¨¯6ÉO]¤†î›äô%•Òº:™¾·¹#ûW(“õç€ýÞv='ñV1K�JGWþðC�v!W Tz‡áÿjH5�3åÖ_Ž>¨“ξxÇšzNæ¤Û©úy‹›¬áó‹|‘ÝÎÉ shîë/Ú).Ü•H%ÁåÂX… Úd9Ř�â÷¡ T®Á}ÑxNÆ 9';µóÝìQñúc[-ÃãÏŠ¯2Ê?äÔßíœ º®êlÒ€Z>g]+Ê‘•`œcóS÷Í:2•ü¥ÑÒg½ø¦²ÌH‘G¯ ç�Ê*À€ý¬¡Ý¶~½¤é?Ä„ÍíÒ妿H–#^ب!îåT¢p‡ªÄ;1`¶; °½2û£Ò˜áÞøÚƒ4´[#b¦f)§©R_§Ç?»6R�¬ÏÀ|›¦Ñ§Ü µìý¡ _^Ë‘ŸZ`ÉMW�ztGÑí fˆCÕ3Ö!ì%B Ò‹ ØöÈ`¨e:§ãÖUýD\FV©c¢.ÔÇF¥³µÌœcܰ¼9ß?rF‡v@þD00`?k/?𨫓;©_ ]»îÌÃ%.ÜVB| ›ó²aaÚU?m’´å*t¤,0`¨f¤•\øõû^<ö;ØèON{‘¸•f*þ•Q¿ÓUsÍ[Ñõš²s'êV\ V¯‡îßïmxFÉ^qŸÒÙ(Ñ [Ýmÿ�+«àqÿ|Ð@—ÓãSÊM§a-1ØF77LöóP†ä|K^ä�÷ï|�ý{ñÎþ}²Yñð°ƒeº¥3Q“v£ÇØnûwèºöâÍT`À¶�ŽV*K¦S&O¹dlžƒ`¼áËЩ)ÄEs: ]›|éDõ‰ 2çèÈ샇�¡¾]¡ÍÛPóø`²I¾ CvʼnÔóNcdqk[J0S§4…´yj±É„«öÿ1ÆñŽ÷ó:_ps’ŸO!Vä˜Â'£êî.—Ìæ fxs>Ë2ð–ùK .)`À~3áEŸóx�ž5`bQ§øŠ7Äs¹Í‰ñµÊÉÔJá’qþÓ=NþÁÒux[û€C5{i8pÚ´"=^»b–lôÄD6íl"‹\‹¿]°<ánš/1RÜ£0T3®ÅV—©ì0º·µ”ùÑôúÔ&›F}ýb�©½æ´Nái¯NÆ»»mþÝFg]ÆÂz§¸=#‰ôd¨�ø/h/Á_dãêç+v)X¼çz[¿{7õ[/±•¤–uHWd� mf1k½~éCs={ʱ‚¶„çÇ”.?D¿;%ßåã´NšnÞÅ&µïǽ„³�^‚ÉÎ{¯4^1¾�ÎéÕîÝ݈£j»õ ëú»g¾õxJ.{^É6)¸G“hmª“`Õ¢Ý[í¸Ç’½ÎtÒWê{8ÍèVº€Û6ŒM™n:\‹×™5x¦E—êy'7B'XÖpcú-afÏûˆ'r¤ŸP9…û÷ÙØ»ïpªßÿàvEVY¢ÌƒC”ì­cÏìqŒpìeKd‹�M¥�ÙdïMe&JY%û÷ñS¿®ÏûSù]W߯äó~?ÿ8—‡s¸]\Ç}¿î÷}ß‚7\"”¤(ιÐTà“;Õž@W-j™ßY CQ6‹¾…_‘î6¨´¬ÚﳆÕ.‰ÒûD’Asrš�v¿C¦1fP�µÎ¢_­˜o3ÀmTgæAF8€¶¿,Á²úøÚ¥ò€VC¡]aUÏÉŒNktZ1�\êàWG›[|q@Û_ö¬Î ¿Ò3ëÁs_ƒæA{kžaožÏ¿r>¯kš:ÅL¾Æ êIñ6&âØØ÷¥•Œ¸ïl¶HÏÊw½2õÉn}_´3ÜdÐñÓ“žO&©ÑøËãEî;,'­Ö¤¨Ä.C‹›‘ËHÕ²Xi ¡5rúœ‘ÕÔSlŒ?ß/†Ð÷5!ú²_Œ©ç˜]î'¤¨q­ûFëÝú¾Àv¹‡Ïh¨Ä( 7q¿•k(Jw^8›µÚÁ±'k‡¹ýÏ] Nˆ :#­'¤3‰0é´yŸÒáÎ=#1cQé Úz ´ýo.º Ó¥DN¡´t6òÈשМ7+·E…b Pòå’nªXÀZA;8†âYîqõÊsõÇøâ÷3ßÉ_´í%¦Õ§eŸR}é‘§{?Ô…�º4Ðö›-Ý|‹÷^•—GRðÐ8þ`ýHsJÌHŽ ÃZ:2îZ3Êßî:}&h?2cS`sB¾�L®¶‚K£pÝ% fãÄíã í(Ì uZeš™åÅ¥ò ý™–?ÿi½+UŠ¼Ä 5­wãl‘éò†ƒöûŒãNuÚI�õ·ÐÄR"φ*1Qn÷k /p'Ùo4Ò‡‡’‰ Ø‚¶7¦¥ðÁZ<;Gô5₨ÑiᄯW÷ÓÙIûÉJ¯¸õjŽÇ¿~rkóS®îÜ ¹÷é¯uÖé/õ߈fyLlÆ%b.£-¶ÕYaz¦ˆíçãí”s‘¶oQÐ/IÈÀ¼Í“~ü.–äq%Â;Œ”Ê·gÆæ‘9q–Zôˆ€çÏ×:÷.¸ô±%9R h´[F¬3x&°Æ ¼ß¸gøÿÕ”¿ü¬gÄúø½=dû¢{‘ÖH™­~xŸ‡° \ÏÎÒfçnH¥ïLe¥gÃn`ahnŠ€S9ÀmlM-T.66$ð:à « ÜÀò¯_»3‹ƒ¥9á`„@ ,Ûÿ±ïñ×W…pA¡ÿûø×õ÷GŽsœlì$6vN¶í�8!ìH6ŽsìHT�ÿX ~rÙÛÚéÙPQ!ÙXZÚýìy»}þ½¾¾�(}yïûpD’*i³€»ö´øÞÁ½�(À ÍM Pÿz�Jß{\`”˜ÃM¿ÅŠæ“HªJ‰Èœð?ã%‡Q¸^¬¸Jï— %ÿÌÌGëÒíÔ}åÛŽÅ{ô·0–m¼ý^ÎR„l§—‰ùüßÃ#Ì#¥B÷éï™sÿ–kë_s/¶#};ÌžìŒ; ລR\&Y2Ø3Øcжû°�( Ù-ïÄ,oóî×´ºm§;tù Ëß‹\üvÂèÏm8%ïD²’²È¯þaÉ÷-ŠrG;7–ΫH—9Kó¦r¨ò Ý…§àÙ³+£ £ ³1š7+€••Ÿ†Møã‡o¶ïÄïŸé¤³ZÆ–Ú–KB!*{ÅîŠ�Œ‰'=p6qš‹?1ÓÀ�D“jY'g·yXàÿÚŽ’† gò.8½]µÄU&ù2Ru#[RE�±h¬ÓÊÏÏñäÌÃúì´k}L$’À5ÏÑ+Š9ã°Û<,°]ûi]é^Ø Ç¬ø.x‚4öPÝ)–W·d3{×ë éRHéŽ|$$|J Û€gƒögÚ›ŽrC‰ÄóîÎú¾V,²,á /¨Cr3Žõ·Vεx­‚R?1ÚÁ¶™#݆s)ä‡îó>½ -½´ /š´¶F^ÁidÒ“ÕPEàê/ûÁ9@mÛ–¬:êÙðֺ鎕‘?»h^æõ˜Ì€IÌ­«€«¶ íÓÔ8?Cî„ h ý7¬X²˜…ÔêD­"Š„‡jùú˜5e)YïgF2T" ;))ÊeÚ� 'jÏðÚxêCÁ%¶gpÂYÐ@ûoØ´­—ˆyÃåê…œ í…ñBIúÿôZLÐŽ�1‘ µx¥h‹¦}5;¤XÔ—«Ú¸#(z®˾¬¬m·ú p.�FʧŸnNïU–ô¨è µ1F/åfRå ½<uÊ:í?¯rêƒ _Ö(“¨Ü1 h˜Ÿ²rCÓBm·ú °]¿²¾´ýo>ð˜O..&Ùaó¸µ÷¦Þ iñ÷¨JÁ‚$èÚªüo>÷™8\†øð®È74ÐöÊ®çhc˜±“ù[ßx4}g> }MÌZ7XònŽ2'û㥧õ¨Fh í•ùShfqÕ˜9{÷MY'°ãwGZ,y�B1z£�W›“µoaw3 � ´?Õ®ÆÞ8«¨.O`q3°àµÓåàLнØçô!móÓÝC¯Œ¹f2sÍÊ_³û×ÒSnyÌñWµùxtd^>¹[ÿxïÛC­Í�Ð 3~䊓x$Ciç µ”…!= ·µx $"íŸ÷¯Ùýë;GvÚ¥”È—ÉÅfU*š8‹°Ÿ�Þ­ l×~:—é [šóÛÆ‚ÜÉCFJ¬°üSôϱÚÕú OÀù"R" �Žè5ÒMhÿ>cB¸X«£&zЉT�kRV´›ðËÛÈ"ßÞv³’ ¸˜mLÈíY_3 hûÍš’^ú¹èµ¿pÏ 'è :i£“y›á8‰Èƒð~C‰ÞÛF,жş[CòÏÇ‹Àx‘ðË|L»‘M&¡‡>Ï=Š´kd)�ÝÆ‹Àvòì}t±ãIJÿúyAóŒ¤FÌUKÐ@ûìjlÝâÐ0idÕé”� ÄÓ2�Ò†$2ÇìªOÜÏxzåð5ã ©—Ä®f‚¶¿¬Ý“–÷X²:ú¸\BîNMFï‰ê°„VŸÚ&T¸�Ù̃››¼ü¡®«Ó í�½î›dLLé�j !äpwe$b\›¼ê¦u&™ˆU¿ ¿QU¯z{4Ð~d¼°’ÙÖv�—¢ôðÉÍ”sǵïVfÞQ’#o±Æ^Û(Ç¥—99� Ú¯Y<�ìJ½ÿíÀjšhž¹L…Â-À¾j‡ôS%wm}´->-Ôf~·¾*pÝý¡SÃ#:Š8ÌktÞN„!vƒÞVè!Øš[©dn ‚ª2/g‚~ÞW…úªN_ÎJä˜&j×F]d-ñŸ�Y±Ý­¯ l×~Úkáßfãw#ðƺhøOÁß“R�št“ÛXGU1e‘ý&ÔlïÜ2H‚Ì�v°MýqmÕ§Šç·�nŒI-ž'iPï—pƒ¨cØ ¤†XF6÷¸bU怶¿lhhI/LάŸã‘Æ:E+c™Ùþ—/…&ª7}è ÐÚìbñªX°e�¶¿Œ-(�¥2φ{Öd�ñ¼ÓŒ.*­]Þ¢ç("x¼ßHÈi1,çhÇVJµã>Tæ¨OÈK[Aü+8E ae}LPSÖO '.Å:ÓÛ1ÄÆ ڿϬ8 õ-NJ> a'‘¿Ó4§Âuœ¸ºÖò)f‡b\tzP“FMòmŽ9h ýN;îq’×ú¡Pd_~i—mák?§cíEw᫇=^Ý_1i{à‰îÂí×Ì5b€jcغÂÊ’C”÷Ž>N2ý°�'q,8ÄH£Í8Q¯Hu}·zp_½v‘âò›f S0u\¼¯Ú"êîÎk ëÒð”ƒæ˜çÿüÌ6@= „t§]Z£rº äM ëµq‚¼?ÜŸïk=Ø®ýT—ù-♞QÎ�ÔV™ÆÌ*ºJÅ`˜ÁÉæ˜b%TÂ#žÚ±%Ÿb¨ò�a[�öû¬ØÈÓÜ)cŠ} 9@û.J7±ôR®¯ÅüaüRwBLjïws®©¡l í�É|´?é˸ C(µu jÙ–ÕQí$"žQM.!]d…6ôaR4Ð~§-[› ‘ÔE¾°›WÉ7Ÿ®Ü½£.ßç~׫7æ­›ksKÍt0R¯ÉQÐŽ)\˨�º³ˆ•ÄÎDïGQUÁSh²’©:ùxåˆyÂEùEã˜ÉÐ@Û++ŠödÔòæÁJ1g ŒNk´÷YY´q>¹k5Sjv}u5eúˆUq¢I h ý V‘^ÜxÖß™ìHúœr '�Ìg®ìòÎ5V¬{gëW#'Q¢Ã@m¯,é–Œðj Îõ¥óûŽ£êœG×D‰p„`´ZöË1¼¶8xŽ#�8¹IºAmÛ4Ó©ÚÓHïHÍI�j8£7%úˆ /´ [ Oð­"vÐâÂçaQpŒ ´=³{ÚîUÆÒ8LƼ¨ŠvÁKBTò±¯>lµ�Ä?®# l„ ,ÃHä@Û+F±R �ˆ×ÑŒŒ ç%ÏSFöÍ>qö²bQM�tß»ÌìeÒÄ�ж]͈÷ÉçbêVlïÌ~¢Ú&è삲ŸöaøÿZŠ2ÿ5Õ)>ØÚËÑÇ5¯¤ñݲ Γ9ÊÅt(}Þ‚ Õ}~‘M'¼Û<ð<«‡: 6róáâÉ8#¨"‚(+ÐA«tÇhã±A¬>dþòU„/òOçÉ8ódg¾Ü7{R¬–r«ix¬%ß’^æ »ÎnódÀvý®¹I]r™HŒ5õ(fœ1R”ÍO]^5DŠÙ‹£E-½XðKŒ)Â…opgRAíW é†E ç¢ÚÍ!ú@tNÏàNWe¢ ±ÜzU1Ǫ`Ù[džñþÓ]¡ �¶WfwR 5ÌKc�‚jkDôÃÄ4é$Yò›´»-¶ÓÁ•‰:\t)ïRUû:@Û_6{,�fã ŒøÌù÷H }Ë ¾¯!ž}¼¢ñkž;)ǃMWfR"Á�`wòBh'è$$Œ;Ñ÷êú˜òv°e¶#¬;Kù½mç�©î@€òNƨt' *àÉßK×hiŽ"Vž•ñpø‰ùFy7;g¼£ñ)ò)Š)’Ž¼Ã Ì;¾w|‡eËþ{wMåúö�Ö*?4\U\U‘=WÚ®´¹Ÿ‘™�™(ðª^ûö›ÊûÚmP8ðÖÖ<ÉÜž¤^«Îyh»žô·¾÷ð¶eôG¤ReÚe2•ò‡f¹ˆ†k×û��…\0¥—бʒŽQ)¥´�KÛúÛUúÁÌ5ç£ ª xbG´H ï8¶O*·–¹+,¾Õâ¢Á!  Øÿǘ‡Û>Ìj¯ã¥Ç>;O¦À5F@IÛÙY"™Æcz.ÕÜ×Ãô õig)`À~3âŘvþ€‘úÊȬZ¡—岨bÇüNùXB™pþ0ÿ‰.;ïéjüͽÀ€¡›½Ñu¸4)QµdgPl$ûðL ›\£·u€âÁx¡{<ÉÅ��C7#î˜orK ¢Ÿ¨¢ÉŠÀdÔ3ƒm¼ì{s�Ö8ޝµ©âv'fgÈ!•íz ÐuýÓó1'œŸSÉžSDÆt©“¬Œµ-›µº©uö#Ÿé¶§—~uµ¦ë” ýR0`[†¹!ÓI�gö.¥ß8W³†wt-p„m/²Ç,nòâ岑tébZ»@`ÿ>"÷r ¹$MwÆ‘¡œ FJßËT%t-¯#_�®ôÎ&Yyªsߥ%%`¿ÎêW:%K’)¥fföwM`0˜²¨E#3™WÊçZ ‰4Øù0väÀÐË2+On Véu&¨/°)¨|±N}·)ˆÃÇ(®•s5´¿I¹Ù“zÙóZs² ·Ì”Wž†M}¶H¾·î|Ÿfæ³S’ÝtžÖÁ£ã­ŽläTQrÃphíË(’ì€ ^`æ ºp»âáÓíj_ìã¼´ðÑcãnOÇŽb ”ň&ßXŠ_©NT�^‚5a”Ò¨gžd€U+p‡U�äbýñD§!µ¯å×;ˆ®¸ Ûä|Ú>ª3m›ÍŠÜ®ö…®ËåÞ´–j”ŠH#ï{…úÂT‡ù™óÀv�=]ÝËësæ*6,@ø¸(¼Ž‚É,ĬÃú�ÄæÞiÉi«� O_µ?`èoŽ—•Ö§J(íƒÈStêõÖsa«vG®ðìwË¡bÂQ†˜y ñÞª–r-Àv�az„•ݹyõ•Æ2‰ä¸Œ Åó×»©u%OMª½qͽœäÈu´…0t³yï÷$¨ñ I á�’õÕ 4%F d«²¬¦"8G�ªÚœ¦ÊÉö=3E°ù7ÅæyÈçè*96ˆÔÊòi±›ÆEéˆmÃd¯¯Õ)½¡�QVT¢ì÷´¼¹‘=k�¥aÅw°’º×O^™cŒ›%H^2Ÿ«EiË¥—‹ºð“ö³ÅtN"¥)m9÷‘åš²lœkõ&µ‹püÇâ"1RD)á¹ô@v[I'0ô2.ÛQu òé'8šÑY2UBÇ «ÝM|.x÷ݲ+T´‹×±'êxý‘ÿ°_g§#ª’ŽóIi­½‡§PI‹>{£œ3´GWdž7Þv÷�ù^­˜àu`;c:J3H‰¬l±Ä91“c")–#+è4� �¬¤áªs·öhÌÈS¿�O9—gû,Ü�}ë³N}íÿ†„°+â ².R¹ò`šlr}¯Ï*§±õ÷$_ÏÎl½¢`P"›ŽÊ—zà>�Ô�K¬‡UB§‡ç0¸‰Yšõ)¡3�¡g ÷aÈ~,ÆÄL,ì’¯Æ��Ιƒöx¡ï;@öºã¦xâ2 H¨µ�,éåm×ë†~ŸöâúrjjX'Ÿ1§M­ØI>AsOÀÑ®ö=嵦bÑöË?ž¿Çéuß%ÿ²®µaÑ0r'¬\»;àØaÓ7¶ëuC×…NçÁv¼ì2c:­�ceûké9†ü.f¼@Ü®5bJ¤¦`Ú7ãOAñŒJnÝ8 ØïiïÚËŒ$ãκÐ9xZq\ôä¸ûúh`N:iOKåÞËU‚Àº±9`»Û¦÷u•Ï&Âð’ùŸiÂKd—Œ Ç‘HŒe¢6ý‹Z*¾Abƒ¥»Æ§�Û²E«öZ!.’Õ.&ÒRØóó¥wžÐ²‰›`wæóÔ´bš eɳì¿aERE4Vk”1%]ÕÊÖ†‘‡Kh»?³ ÒbQÒÙHK^bìM·'¡°¶»ÍìÖÞE­+]íâK“œûχܭcgÑj¹8r–æ)'ß�ÅŽ$–6`À~WS>ÅqE[-0ŒÇô<ãYxu³OÍxøøÝ²A[–ÓÉç,ù²\Ï�)>öß°){Æ;¢:°zͪùìtÝùÑ)ræú¼ °ÝcÇͤ‚¬‡+_ÇVéÅ‹I]É ì†ö *7q5£„ÄΔØ––¶nׄö+¤¯õ0ÍêeÊ Šõ!Mq»oÄWÔ?È×[«¢'ÒFþãþ /¤?Xÿõµ j²¨!yýܤíS/mKõíúƒÐuýÌ;ÄÀÐß<Œ£>9:šeÏ×<šüCXGà…š´\€$Sk¥�÷+�±½¥ˆ™‰BO0`;e·³uqÍOÑz �^iSçˆæ2‰pVÅ‘—QR÷³U¸O=Y|a¿æ ¿ƒÛ ØN™�v&Oµ¹ƒûËIKªØSd]a–KýîƒpÜîH‡•¦]?ÂNÛÛý!À€ý®v3úQï e Er˽øþù#öš¨ º�¸Kî1c<û:Û}¼!SžéŒlVó²×"\ÐúZfÒ9—=æ¦.ž‡»o{†æ¡íêkèûý,/­½‚Öìd¥œWí%ÂXJ:¼Ôçûõ-�Wcp÷Pêþ¸¾>©¯#ö}Y×¥¸ <\V%bq¶Ób‘ÛÕ×Ðu¡Ó<•ÝlIïòsÆñL.�”Ë£g~EÀúئÆSdL‘'*-ËÙ¥N³¡‡öï36„#R+ÎM\´rTûpy›™€¢õEDÃûPg+)ßóY¦”þ¼nuÕ'�C7kŒs×Q¿åík—tùË€CÖÚQ¡,¨ESîÍó†'õ8Iv‡šppÛÝsf‘6ô>þ[{íE¥²I5äØgyä.¿È”_ÍZõ–ÔÎDû÷Ùw1xÞüÔµy‘«*Õg#Æ�{.‰Ôe¾S ¾Ã«'7/N|’œ#0t32DÂ$OOž¸˜Üv–Qcmqç›Ú¾a�:ïÊ‚{‡j“l—¹¡Ï‹·‰50ãÇol\.D�Ìên÷¼}ß[¨È½Æ³_vꆧ–ÀÊÒÍ5ž(/õø™ù8[ÖŒ?/rBž)¾îÇ´™XgP¸ð=¢KºåK›È¹Ýó"t]xnÝiçÛ.ù¬�²H�_fÅ_¹ Øï`7£kúßÒ„UKì ˆ;&ÏYROk—Uù‰÷9_·™ö·²â73€¡—µ¹1ò“–bhàŒZK*DT§w¬ Žmñ¨iÄ2¶6ŸNñÞàrZ™¶36Ò->ÎÞ—ø®#Œa˜ÍÛ™‡{kü¦³ÎñÊ“¥„d júUo €ûžñËhiÓz#Æl<¾‘xÆðñ¨îýŠŒ•X3’pu½Œ˜YþШo°Ÿ³|cÚ«u>¡þU ¯±ÝrØ ´Dš¡µjãi™g—\t 8á­1IAÖsÛժг�xôoô”‰ØW™Üí)múÜ­p- µ7Ò:× ©É¿™øq­ ‡Ôªö_çQ�ž¡lÓÅZ8Yì3¸|}»Zº.t:Ïúo³Ñû!$Ã�ŒÁ¼ôÆÐö—k¼œÐÊ¡<¨†ãî˜úõû†~†ñœ‚³Àv·i<©É=rξüU¨½×°”ÉÂYêz�IgN \[#¡ü‡�ך^8TdC/ëïÜ£¬`Þs:Mk�®…µÔü*µÀ›7ÂcULùØ­6Ñ$•)\™ÀÐ˸bq1+r�äˆO˜õ±žµŸ¾,ð�Q�)wAœ{�í1¶_Ξ¶{l¹D÷ÁLE¶:jLQÆŠÓ§œ[ÔH®ô%üÊÉO±Ïí'ì?Þý"¤Ÿ‹ؿϬNX’J ƒºÔûl `À~¥p=ÄKŒ|,ö2¯¤ózÁÈ]={Ò¶ÂûÆ+{]‡’EÍZSÜ9#;É€ýœ9…ô’í�Z–OrdSæN0?�Jõ‚Î_*¬sE–�ð!|]2ã%¹ÝlqœÿýqÔ K�LŸ?Q‘:I¡8e¯·ñ×$t9nE¥6óqŠjÑ_£­ÔѲ–Õ�ì­tKoø3]‹–ÿ.FH•­P‡ÀøÏ˜#Í‘øiˆÿL³áŸ9mþ-2ðàέ8y»�}‰Ø$QÙ½Ú�Ò¥_E}ɚޗȺ1!¿D"qèð·pdlE–q+÷>Åü]¾|Ö"ÄÝ(½¿D¶œjšŽ4+ùïÒªSéš^Kè4€ÚŒï¹ø1@î6_ß÷óÎSØå©æSÍâä!ýå÷ÐèlèltEwEó¾îý8Éð%EM%eš 4(Z­üu/ŒWú2w&wfA¹( ÚcÊ•ç´ËÇceÐe«S¦¿½]� zV›hQ ÌÛ<Å(_ÏQÉýæuDíý9ÒàNa-7x¶UÞ�g5pAzL�4_g5è ö*\f�5ίÕ<âÿîü´o=&èºÐ©×÷;ZÈs}“숇-ò •Lˇ•Qr†‡š¢Š.aQìKwÓ�.þu$Ï!�Рد³"7 ûôÉS½M¾ºgˆi1»¨ds<-çö’•¸Pà5sŸ˜uzäËlgì"ùG‰½až¬óòÒ›ôðk­©áíUö¢éU0Iñ¨ÈB+ìþ™ñ‹À€ýJ[Bš S׆½¶»§šg1U±I¡¡ØóÀåþ�î¨÷ÎNMÍÕS¨=Ýfû�íSº•^~;j�8<þó]ºâèðr¾ÃÀå µñ'Ëû,bÏ+.˜F�7¶SVéÆªãÎG�hÁæ™Ô`ë±¼`íph!ÚjºŽþÃÚÊJâÔ>«¢83`À~+O-z€j8ác‹A»/uVå579¹ügž¬²ŽÕ“�NÔ ­„�cF¶Sï'/²RMt{qÚ"ÙnPƒÛrÿª%‘°£ŽíRÿu"»�4n^ê.`À¶L;õH[M„ô¬ô –NcœO¾(é½›àyX¬g%Õ 2>%»H`Àv̹êºTšÊ±™òc)Û …�(jEÍl6 Ä<©¥öoàÄ\@ÉQ+Û+´R½"£§4ÊËUÁðÌ:xBS¹°ºZæåDÆáMœ¯Þ4°Ým7Óc<òxغ”Û:²Þ>UkrpÄD§»=þ¯–¨"pKmò‚Üê›Á'ÕCÒiü,i ûdv Qí—>orâPÖ~~�Å$²Ý>tÍc½yk…¹{ DX¢§…0—á}V©v‘¦Ã}/1ÊVž?Ü'ã†ì“ÿú.ö!ñšÃ›�o‡›ó®1Ë?=¥·Ý>t]¿j¿û2L> wU#ü;Ñ0 æÆ§Î;Õ”ÊY ƒ…ÍÝƲ¬‰"•”�ûYÛãeY̽ îÝÏì�Ãí†êpR¹A™.žS§&îjW‰ºèG›ïã3Õ ØN™Í!i¬`7­>º#›b3cS4ã´ ï’î7_ŸBUÄéñ0%N~·"Rd••DdFn+ÊÞ{“•­pÅme…²G¶¬2²Rdfï•(d—BY%#¾?'Ïï9ßÏó”ßïôýêÎs�÷¯“s®Î¹ÿ¸®÷õ¹®ëä€_W'A¨_ ]svä�ån/!8s€ýŠAašõmm´^å*ÔTY`À�Í6ˆ* 8pê)¼|rûH£ÉÉ‹/�é�ο3Š÷ºj.y+º¾ÃSvnø=Š+ÁêõÐõûýÍËÑòCWݦt6J4ˆWw[¿Cß•UpÀ4Ð�x2`B¶‰x­%[ Fëá„É~Î�œo©ÂŽúñú�²~/ÞY¿O6+{mo‘náˆß¤Ýè>¶Ûú:®½¸‡°m£>)•%Ó%“§\26ÏŽ;ÞðuøÌTÄE3j ]›|éDõ‰ bǘ¨ì#Ç€!¿]¥ÍÛPsÿh¼I² KíŽ©ç™ÆðÏâÔ¶�`¢Hi i÷Ðb• Vìÿcôã�æu¾bå$=áK!PdŸÂ!&ïé)—Ìf§ {Ë—eàcöŠ”Ã] °ßÁŒyPçÜ? f ›×)ò„x,·#èߨœ¾W)\2ÎÏЋ𠖮ÃÞ: ²Ù+ƒ“ŠôHxíŠi²áScÙ4îDf¹?»`C.xÂ{¬H_‚Tq÷`À�Íðº[�¦²Ã¨ßÕ’åÇ Ñê›So¾è{Bá9§u[{uò®›ëVÀÚ¨­Ê˜Y‹;RÐÑ’ˆN‡^¿@è íìpD6¬¿\µKÁàù4××úݳ©t [IjYGuE†ÈQf³Öë—>6׳¥P<°ÅãSºòõΔ|·7b�(ݬ›U &úà�»nH—`¼s‡0¥g¬°o£czµ[ZOÄ µÝºè¸þÓïc¾sF"˧d›Ü«‰¿6Õ…»jÞá¥vÊ=�ðcŸ#µôÀÕúÞs¦Ô+ÝÀ€mÚ¦L5–ù›Ìl“¢Kõ<“¡ÌkX±ýæ‰0Óç/&r¤Ÿ’#B�ýóLˆð–K„ª4%· MÅQêÎ$ºZ¡0ëâî}ÊŠ¶ª²Ü‡TW”�ý:kZë‘,Ï – žWüØÒ|¤÷*�£F¼mýZÕB‡^³ /*A ¹,κöðƕڠ;NÓãë�kž%åÃì¶<ÀK+®]x*dìH«J›/.0ä²g Õ^y™¾F­Cö¶¼¯½y¿ư̈ϮéZ”sÅÚÇOMKt¸0’ÄÉ�às_Z©ˆ 'Ûð%zÞ°‹nÕi�v›ûbœá!‡Mžžöz4µt C 2Q4Ãa%e­.U=~VÖŠZA¦™w–V§hÈU{j†�éÇ÷Åp@æ¾æÄ;÷Å\ñ¿^ø%zRwξ€Év·¹/t\wæ´ÕãÔDZxÞ*6•f9-2ä-Û?öhý �?÷��¤¨`á3¢°F":óón»÷©mýGÏ:»ÓÿFD°(adZ&ñäB3Ýbÿ^Ï*gp¾ýïñwî®ßþDÁ°\4);’7ëØ]©cªD1LTj‘sã ¨œ¸ËŒmÄÐ7�¡g wÈ~zІv/J°t´W^¼;úδã…~ï½3Úu'Ïr $ç9á“êœ\Ñ/ÄÝ­ë†þºž6U‘:‘RôðšÀtj•+ƒÿÉ%X¹ìŠIé´­-ê*n3³�‚¶Z@Ïpå¶ 0`Û¶lÓÕ ÄŽ¿ÞKw´‚âÙËŠ›É�˜ÅM1zJ¸ê;0>ÏL �3NÙöß°2©2V2›ãõ*h’ž•ã¶Tåä}_˜Éщ)¯KKS­Ðæ8âYÛßf~ãà²ö•Þññ•¶#|&·iĵÛf#Γ=bãMXîNgŒ`ìw5Más¬Wt4B£¸Ì.ОÇ�Õµù×OGOß®µgœ0›yÆX"ËþÌ„è0`ÿ ›u¤½)ªKÑt©v± Goqò±!ýú¼ °ýcgÌ¥ÂìD«\ÃPÄJÌZËíƒöƒ†Š5[˜—â„ĸ«pì+*:vë¡}%�´5n?ݼÁXžÌ¨Ø�­fÕfJõqƒã¼ƒ jú‚�„?îy ý`ÓÎ90RAõ Q#¦…ûG·t¬4wë¡ãú™oˆ�!¿ù˜Ä}vq1Ï_À«¿?ó^XWๆ´\°$]G�¿ß€ÏÔÁ øÇw¥¾!À€í•¹èaZœ#÷ ±½•=ˇ»�‡{`]ÜörˆÔÝ5Îs—Ÿ;nÀnbv¶WæO©“ÇUgáäýbÆŠ$éAo”Õʰ÷( ³/Öi­õž^࡞æ×G"€û]Í9þþ ƒŠ–¡ÕAì ’ ÇK!¹”{q—ÜÚ–¯Ìw±ÆÌ¸ær ˜,*_аCç×23îE,‰ÎzX>Þ]¹—Nì6¿†~_0Ìø‚ÖîVØW8 AÛUG‰(Æòî[š©‹ÃVî뉘(Äz?ž_ŸƒÌ¯Uw¾e€gJ`^MˆÉ�L’s·¸ê²ü½q)›9¨X^1ÂüŸ¿é'SìƒæÂéåÞ?C^xøe‰õ§!æÀ¿†­…Cc;-dÜ*[�” ½ßcšíäÉ¢so§žŽ²üÏtËOü]Ò¦ss¶ÙúœŽ4ppèý÷”ÛýË?Â+üìÅvZ>Þ¥3&ÞÇ EÕIÕ‰¾ú-mBßâWõ¸å[P‹´ûÿâËvÎkmçU·ºËßåþvpHzä¾å�‘Kr¯–e÷ße†[OUv2]À�±Ñäg]­«|üè Ù÷3šˆÃ�œ,®øÎ8@š7(oPPËPË ˆgò3±¾eôù_³L°Ä�³¯³ï˪c«ÇV}ûKK.Î66ýïoýð·ß”jòÅ\.v›r±äpû9±ØÝÖlÐß:2½§²Ÿ-ÝémsIá4–©êY¹bjú¦×ë}E¦äàÅ¢Ò¢Il]±qšd›úp`ÿa§—ÉxŒT4óÎ"Otz¿‹±d_¤)+°ým‰Üëðì±·) Ì] 2ʉF>Õ’c™ç’¾üeú�òT¶ÝÖ‹Ðqayõe_è:¾â¿q^È2'e• {ͰßÁœã–†_“EÕœN N>-ÏVÞ”BŽÈ¯ùÌóŒ·O‘@g)�-MVÜ9rY§-ÿÑ T­“V&’Š1u9}ÇkÓÚ}ê[ÐMì,æ2ý6ùÂ\×f�í�Mô‰O³ %§>‡é £ðôä$cÞ˜vv×=s�ø¬aÅ!‚f ƒÚׇ–€ûžñË=ýÐÞ©ýJŒÞdz3•ÛèÁ¤ÞÝêܵ`EŠ6ÛCë_+ñèåOLû9+1 "¿ÚèTKóë�ù±¶Ht®ÚÂ!óDÕCÏ� Ö‘˜f·°Û\z^‹úõˆ¾ .Ë:�·#Qèõ!o›¡V‡t¶ÒÈÝ›„4ä_Íÿx® ƒÌUwÞ8ã˜!îÔC_:ûÔ!1tõÚnsUè¸�éŒô?Í&ïFà�÷ІóP›¼';9$×rù^«Ê¨¶êí)Íkw��RØç�íoÓzX_t’ϱj ÒñÖ¸”éÒyÒ&­~Iw6-L{c¡’´Pë¨Öç®8ÕÀ�ˆ‡GQ Â-ú9²µ7(Û™*,®’ ¼z%6 ]ÍÕ˜~¸zØ2é‚Ò’YÜt0`{e¥±^LºÞ¼8©–ÌA±éÍö>«KvN'–âmæ©?l¬­¥Î¶)K6ìw°ª¬²„�f{TòÃYójÏI9q å¿påWv¯ŸÅ¹ÏÐ(´5� Ø^YJ ¼ÈZ®ÛòœebT‹ÓêȺ1®°­®ýJÿ5\|ÄH6'i/0`Û¦“u²3�,Fz^zTÛé@K²‰èÑ;�¯‡/R$ùÖ�8èrð²*#b�Û3»ï©çQc&ƒËlÆ�®r=dYø¤’vüØÇ­¶²‘ć ¤AÍlhK!r¤ŠÀöÆÊÐlÔïD&êëDŇMòS©¡úæg¸¤RZW'óâ]îÈ¡²äý9`ûÛœs}й˜{U:»ó_?ÒèrrAC¦{þ¯–ª&pCcæ¢Üú«Ñ‡ucÒÙ­È ûdŸ.Õ/[lˆ¾¼Ì§ÙmŸ úÍýE;Å…;÷pGÐE9„ÐVaC6YˆX³ñ!œ¨•kp_Ôî“qBöÉÎì|7{B¼žj«åõx[±5½ü£sú»í“AÇõ«ö&/SÈGa®kE;°àŽ“¡m~î¹YG¬’¿4ZÚÖ‡c"Ë”*òø Þ\ª² 0`?k(·¬žr.iú Óàô évUs Î/lÔ÷DÔ„(’—x%úÏþ‹½û§úýÿneYeTHÈêŽeï½Éæ##ãˆ:Hee+[(d¥È*›Ì¬Œ2£Œ¬’ýËO}»>§áú^}¾}N}ÞïçïËÃûp»Îu÷ýz¿ïûî °_e·å±Ã|õÑo½”z;>M3I›ü*íæÓsÓÁ•‰Æ|Ì)¯SuºÕÛC/›ÝýèÆ+%*ÖyŽì4ͨ×T=7°ƒ]rhÇÙqöïY$‘¡8]»Ç9¥0ô2ƒãqkšW$Ü_®ÐÅD훯‰�*Hãjœ:ɲns:r®çå q\ú^å£A€ö³Ö÷ê¬Må¦}:dõ�ß2º7†Z9ˆ~ƒãNI;T—ƒ´kPÇï·7M¼¢”Î^7X/Ò¡\ÙmüŽº¯¬ òŽÐõÞv·‡½0šM·zR�y¬^ˆâ‡ÁtÙ¹Æ ‚È�ßQÆï…ŸÆïc ª^¸Ø¤Ù Hëõë�û�ßQÛõ+Öá °mc —ËThSÈQ/ž�Ôn ²Ž‡Ÿ¶d�1tÈ•�×-£DDGÞÝw0ô·³ C9ëZÈ·ÐMªMHJ{œD�À$N@&¯¾� ;]R}p³——Bh�6`€ý7Æ2Ò:;g°�—•ðP(‰L~7”áuMn4“±tÓ¬»Gê!�÷Œ+�þÊØÍ‹ž[�·1Ø•pp^+lIÂÆJ 8b"}ŠÜµ–àD(±nÿá¬SŽÀ»™®¦ïÎMý\KßJÐÊÜo(1@‹1µ�¹V³ø¶¡”t$ï^¯#‰Ð°šõ}ÌãÊí¾nki–í\"ÑQø?®%ð£Ô ŸÖ{=ä#îW‡H«¼Ø�Õ~Xk·Zj»þîý1_#ŸP) ©9&=Ó%]o#^±jñÑbD^#Û…`�ï=[óŒÛ‚a¹0À¶ kS¡ƒÏêUÆcXÁ™�±õ�QŽU¼˜«xˆEg÷-²Ñ,ùG´n!€ýûLŒÜß#\Sþ¿ÇÑ 2ºý ­ ÌUb¡ö…íEƇÊf÷l‘Ud"4—Õûç¬~µC¶4�R.hNõmcþg¯1�Z²éÄ9æ°¬VÌ·˜“4èq bÂÝÈC/ˆs­Þ»ðòˆV?’°þ�óƒÇ�ÔB¸íŽ¢{™¤õóƒ‡÷5i<õ# ½ìI­ Y¥ONF¯ŸyÓ€‹£à _Á?³ç³gšÞ¡™BýƒŒ“2-äT±J#Ô¾/“\xº»cØ"‹`èé‹•©÷wëûâ° ÐBÆŽMúÜ_dÄ)�—Lw]NZ­NÑŽ[†”4a–Ñèæœ8 ­V5ã�¬bœ³ÿx½”¾¯å§õb¬}FœóßcD�θä±;îÖ÷Em—×�}íX-‰F� ÕúâL÷…ã9 €ý9v _ €ÿBpBd�8«$¤Ž‚Ù*ܪÝéMÊÓp/�Ù‡ðJ¿@�æk€¡¿y˜¨oL—R"BÉ3 ë�7 èÖÜáÞ�¼W+Râ±æX…ªIWµí”šûs ërd¹køù³½z÷ÈdÒ³_«�:×EÅd$ÃÄ=¥Óç]`’êfl& 0t³‹«¤ot„EˆåÄðÆÈê^6¥Ä¾ÌÓf[Ë„ƒÆ<«‡DZ=§*)Ø÷ÌÎq½)¡ð²r¾‘ºGƒD­¢ >§eb¬Ñ�„V,ÎúZÃ2Wƒìò’R5À~O+œÅXïH•§{t ;­kãx±õÉ ’—|òµ‚�+¢ÇHbA Ée3°�åF(­”è9À~�ª¿u”ÉÍ“… IY“Ȱ£]E§½“ÐÉJÎ"» ÆâGï_Û|Ÿo27`ë{ìs�uúSý7<œS�€H”}‰Ê›Ëb ü½:«’©5|ûzÒ�r.Æö# f¥’ Y‚™nÊФˆf?¢132�ÉK¼ÄöÔ”uÿYÔ¹¨k(¾{„…•)Z<ôLYºš uO0Ô/êó¨k†ÿ§¦üéoe•îñõVéŽéÂX£átøîsN0Sg{§�3 JoæNï`êÄmnµµ†Ãè]aNç¬íáô .>.0˜ 8~³ƒë„ÌÜþãÛèÎåjo �øÙA ®í÷øoû*ˆùÿóÇã¯g^n„„ææüЇÄ�óð¼œô·µà‡Ë9gS'zz '{{ç]·Û÷Óãóç‚æ§Ï²¾ê(ÄõóbuùÊ™J¾»‡¢:ÌÜUÃÖÚïãkºq;`¨é,=¶þ%{òm1H¦É°ü¿ŽfÁvª«ƒo1“�‘aîí(ö×ÐoçBÌ�_²QA§ÿ­ ŒXÞÞNWáaè_’’N(¼`ð×<¬û’b›Ïq 3ÚÎ}kÜ�ôÔ¶{ÊH]†^†^h߉yãNŠéw‚;䍸9Ë÷·ó w;1ÐiÅoeÕz;w +�h€wªɪ¦ŽËÿ­ u3õë“yµÅ&/š3…y’æûÙ«„½¿F²F2ïéqjø!ü�yóyó¡ƒqy«¡;)gü:÷ç]çPï̯Œ·´Wv¯lr©¿�¿O ºŠ-ê}ÕÄi>‘ÄlswRjúeã|âÝî«¢þïl{T_AíNM×!ƒìiÕy䩜|#ˆ±܆QQk)‡Xùñ¾œ|(÷U¯�ï´k}D2’Ü»ÀíÒ-NäŒën÷UQÛ…NóD…ù»åÄw8ÁˆkD¹†¯©dwÂ/ÖB™S¨)˜÷¾½NAñ�Ji– Øïi¯ÚÊ¡²‰'½¹›ù9p©ŠŠrÝHxÎ’Ÿµ¿§ù1~¾Ý¨6aHÝø<`¶Íì}­˜K¡ÃK~xRª¸ +žttÄ\!nà0UÑ× …“˜-_�ñض-9´ÕŠ�Iמ1ï/£{rʶìÒ=Zsi œŽ"¾šœ÷Sc"´lùãN€ö¿°¹.‡ƒ5X²Þ:åë#ŽGJi»>°‹ÒbSr–—?²ÌÔŸ… ¥°ìÏ6« øKúÖÏFZ¤—§@û„`áWêŽJ³é7«L‡Ÿ¤¹¼%²ÔžÆÎ`¿«éŠssYè„DòYžb:I©~P35y¥|È…mÔrê [‘"ø Œb0Àþ6�`º$iHW¦j!/Ëhaì�9Ëß=·°?ÇX­äB�DïDiœÃÑêÇ‹Ï\Í éB­š©>ÞÂ=+&Å_AèRVÖ²[}õÞØQy{âæ9Óá…!©GKÜ®#›I•M ö×j‹†·’ÿ¸>(€R¬ÿ4ç˜ZT;]Òœ¼~~Ê徿��înõAÔvýÌ|ÀÐß.Ãbß{xXå†Í“ÔÜžz#n(Ò©#¯$ËÜò8àjïåqü2øÛ×Å~Á€ö«ìbž® 7íå`Gÿ»ÓBÄó9Ä{Ö¤M‚ånæiñrß[êD¬B.á¶د²€C9|Õ6î¾ÝSvT ÜdÏ"í–}‡ ¸]1î«MÉF׈:‚9^ì  °ßÕÎÇÝî?®¡§Fn‡Op½hq&8ûЯX·ôSçÇM¼aK¾™ìË6ÈÖÍääºç$+�EÈD²•¶ûë¦, šÚ!×âq1(�~Ü¿æFé_GïÝi—fâél>°C©Tâ,ÜeF*f·þ5j»ÐiŸ¥?ÙÒÜ'Šò'ñ,4O(2°ô²ßq®ñ“W‚JÊK&€Úbbui6�á€ýûŒîᨇ�è#-ùxÌàHE«•ˆš“ ¼a"é x*×’òº€O]õË€†nÖ˜ÔwÅôùÅs¯,:òî ÃN±Ùl¨%3n,D¥õx@e»",¸@€ýÙÏ¿¿;<‘t‹£­VEA=žlöå»ýzJœs|ÊA&�9Êk¹kWe rû÷Ù%_)Há´ý‚D´C•öÃÑMØ�M‰ºœWRZa—Œe¤IN�sº‰Ö-÷ñ{�'‚]ªd‹·@©ŠÒç³C/kõaÞ_†©·gÌ&«]�Õu°*,¡ùrM#6ÌÉf&ãꦰH¨çê4`¿ÆF»¤'9S:!†â˜æyY‰¸&Ï# Y“)O˜•‘5è˜V½ Z °ï™°Ò£ÙæVý>)Øäf ¿ù�1£›•ÙÑZAªtO‰Ö6ÊIX”�æösV»N{¶. âzÕÑç8>ùô%ž¢öUyjz™� -ñi¡Nß�¯ú¹¯Š:��áÅKc bÎ5f_Eˆó€¯Ãž;"ƒ­TZd½˜ŽrßLÐ�ûª”¾*âÓÞ‡<Ó”­FØ‹'ÌLJ¬œÛ­¯ŠÚ.tZ;áßfc7ÃIG:˜Â`ohèG®+5š$·pi é¨`^×=wÓüšyHt°?ÛôîÕÐ !*z#þ#r‹'©ëõzd‘ =\¨XQjˆ}dS§'ae`èeƒƒC¦aª6=±”°”HÔ]]ë›3#B­1(ƒÜŠðØ�±�×iPD]Ü­Æ„ºöb«dIÝU› h �±‡ºïùsðÚ›ó†ûÃ:Äõ}T!y¶T…?ÞŒRc ¡Ùi—¨áP¿ª ]ãÂzÍ-1áï®áø¹Æ„Ú.tªõýŽþÄÔ"/:µY¹!û1óÊ�`%óÃM±%šØ{³|Œâ½�¥/t¿KäØ?g%>¶ˆ¬)îþ¦@#~Z¬gT Kù~vóød¥^ŒV¾¯ç`¿Ž©]Ϫ�¹·D“r‚“Í�ái|L•àc³°Õl­©ÜÕ½“Ψ.YÅMµ¶[VëÅaà-H˜z‘386­ÙÑguÉÁåàR¼ýl#ÓÜúÚZêÌ^û²dë``À~«Ê(»Ú|,À“noÆ¼Æ >brråÏüy•]¨ã„Ž5НEOaÅÞl·,%HYr­ŽøÆòìÅt§Q>»}(iJb %Ç•8áËĤN#™|4=À€m›~Æ¡Ž4Ú;òóò£z.¸-É%Rû#_¹½HŸä[CuÕ€ŸL�[Í)°]³ž†5V ÄœVÂØêWB—%©êÅ�}Øj-IÌm  næÁZ U¢Q¶;V†e¯)–h¤Ž¦/ÔÀôÍ;pLW½´®N¡ï]öÑ mr Ñ,°_Û®e%úñsö¨wtå½.ÖjwqÅB§Ùÿ©¥jˆ^ךQB ŽæÖ�ÉgŠÙÑBÏÉœTâ:ÏÞâÁ¥løü2�Ur§s2è›g�ŒT"ÎÞ#Á–:)޵ ²Ïpе"ìí\ƒûb~÷œŒrNvôë·Øeê·Z^�·]bS.>a´Ó9t]ÿÔy·1½r4J'æ*ñ8-Öæ§î›u”êyK£¥­½„Š©’�ß�̦ª©ö£†qËî)ß’¶ÿ0[0.ŸWh—›ÆUÊ,™‚F-O§šÐsAt%^‰3ÝáÀ€í–]9(�}Û‹PoˆáÐÖˆô‡ÉÚ)º{oÒZ/Ï„V'ñ³¦¾»¯Õ§Ö ½ln0óÆ%ª£ œÙiçc©¸m`‡:æÐMràìÇ]"9K!Ò€{%µz™þ±xÔy?I—‘Uúؘ} õq1…iÜ-Ó§ÙÖmE¢çûGŽKàPfìGmð£ùM*'M‘°µkα'e$ÚJÈŽâÒ`_0)¸ÉO�ü~�Zfª"0`èfë•ù' ë‰Î½|ⷯџê�Y:½ÓùgFÿÞ@Ã5gÅÀwxÒái·ÊJˆf=tÿþ`ÓØ#FyÈæÆ¤þz‰åêNûwèæçÜ t9=° Ýtz­# [`Âêæƒ)~N—�o©"ˆþþþ]²/úºG6«P¿v´M³u&mÒktÛiÿ]×nÌálÛ˜Ée(t*䨕ŒÍó�7l �Œ±b:k`Ÿ'Ÿ¨9QAé|':s50ô7¦Ñœu ÷æ›T›°Ô®xÉz�)œ€ >=Û³ô)M¡m:Ü á!šÀ€ý7Æ6Þ17¯¿�Ÿ•ôD(…L…w’�’®»»\6“—žõ­P†m �Õ ÍIw9`À~3ÀœuŸÃÌ0·®Sy%ê±ÜæÄöFýȽJ‰’qác=Nþ!òu[{€C748fQ‘¯]±L6}j®xÿT"§R‹¿Cˆ)?üî{ü( _²T÷`ÀÐÍHºŸ»Lf†3½«¥Í»ƒÅbdMo¾iÚ×/ý„ÞsVç(�Þ*2á†ÛVàßmLveœ\AEí)ØXIGÂŒeÎ�{B{ „’ë—>Û8¤à|œí}þ—wSë%Dn%idì7�¢Ã˜^Ì@Õ/}h®çIaÌÏ@��©^(ÆŒ˜TîòvBQ¤Yuq‹Þ‰Ùóý^Â)H/Áüë aÏX ßFç´êÝXÝ‘5vê%@×õw¿�ùÎý•¢�*")¤G›tm²“xÕºÝKã°{ù‡^g&ù›úž–L+]À€mÖ¦B7¾õ›‡5…ºõÈõ° Î5üØ~ëD˜å‹¾»dYòOéœÂ€ýûLœü–käyy†S®ÌUdôû™:’XkÅÃ/u•1TÌán‘Ue¸�_QöÏYÓZ·ly:¥\ȼʇ–æ}=ï0™­Øµâ9lkU íf$Í:\‚˜p'r`èeÙpîµÜë#Œ¯Ü ›_y\óbƒF¯ !†+È"£Wp8tlßsõV_b`èeÏlɪ½røš=rD¾öüü#o>»¥é0Ìé8µ5ÒC`VvÖ>²Ú7P«-ú›«±ÚÆL9¥s8ùCƒ&£�Bz”Óa¸',ÿÍj”´DœV‘JŠ¿¦�R°_ǰ|¢+¯F^³ÐÉ%;›žœýNõÌå^*ó,'¦µ= �ÓÃ]y·‘†n¶héÿ–ô½–°(±œ8>’l¨qäyjÜH¾&;*΃t«íp›9 ¤ Ø_™œ3øyR‘�r�¡šk³dƒ¢ —Urœ!uRWSƒAÅUýìʲrU`?§-L`¬wß—§z;­wãXé…–äyÂôÛ…D™¹¾RV•”™‡0)0`?jq¬Bg>Ï\-|`·®®˜ìY·Eã!‘²É½¼LÂŒ�T»÷L~äNGy70ô2^G¤6æYòÙ\\Ýø<…Zñ#fuÞ–"þC×�JU�R œ Å»^~ŽöÏÙÉ;µiGåôÖßÂRÉK={}µŠƒ+ªßPrQ Åq3°™-"œNZì2°Ý1µˆ³yùÒp!iË#’í(&ÖÐé=.t²òf÷^}dâDqÐæ§ãù¡‹ÞG~ë³Î|íÿFFr©‰q,SyòcYnñþUŸUÉä|ûïI¿Î®ßþDÁ´\*)‹ J0ƒ:�PŽú<ÅF�¨ÙñL>âeöVJè›ÆÐ»ÐÙŠŸbaÝ‹+íQ–©#H„¾3íñB¿w€Î ‡ÎÛ'b´ã2—Žh¦,Wëí)¶¸°Ó¼}‚ÿÿMÏ`+?4üÏý¾ÅâÚŠ·¿¢hãäÕ?†®Î½ÂO/†keþ˜aUøèv2\‚õ·Ã’îþ-â0jƒ?KÏ«¨†í¼ò¬¸ðûpÍqÍû´”ûû—‹$ùoaTgÀÚŽ4ßâ™/Ñ;w>P¢Ï±ŒXžû’Ž/)ÆüLý%~øqj¿%âÐvN¯mG\ò=õŸEaf;GìŠë�©¿¤€;ÝÆ7-æÏ”è`àç•Ú‹ð9Óæ[Q›¯�÷×)àKÇaaÆOÁ`Òn�&îtÜiIeIe¥êUH¥/9�óǤ ?z MëDëÄ ‘££.ýPÂP‚¹/ =?IžáMÎ6s!¥Ñ?´bT@¼Óù ô¤óiS� }·  ·Cë©›ò=]Œ�Ãͼ�U VÒñΫßÓ‘r~âGþe]ëãRÑänØ…N7ïÂp¢g¯ît~]:ÝÛ »å”“Øí`‘¤@4ÜÀ$Æ=t.ûüFƒ9k* ëÞÁO¨”6,ò€ýœö¦³Ò\6ù´ƒ‹©¯=÷¹@11—‡Ã ²ö÷·Õì)°›Ð$ kœ\ökÛìÞóªùTzütá'º°rÅ‹Ò)s•¸™Ó䜞F`8œÄtÅÏâ$0`Û¶lßÙ ÎKŠêaÝ_AÿìÌÅŠ›¹tfœ2–8Ý%üõí8Ÿ¦‘¢tì“À€ý/¬L®Œ›Öþ@½:–¬§Våú8‚±œ®÷3‡6%ÃyyÆ–WYΤvÀ~m³¾¾gYïBÏx»ÌÊ4Ï>!‹H¿Ffv½¶s3‘§i‹yïŠ.w¥±Grö³š¶Ä î úZaÑüVgXNÂêZê§b¦ü*GÙ'¬¦Ÿ±—(ò>³ ˜ìa3Î,7¥ è›tkó³ ‘�åÈÙþî;TÀ~;j-î ö(Fý2ŽÆ+üÄŒµ¼°^hÐT¥f O7N\úT¡cEEûNýAhœYþq?ë¼ÉXŽÂ¨ô ¯—q3¥ú€ÉÁW Fb‘äßï @úƒM_ïÒˆi¦K™‘7-L;ßÒ·ÓÞ©?]×�|— ýÍÇ"î“««uÞí’úÓï% D_hÉ+…Ȳ¶×øøLî©€xWê ØnÙ�|C<Ût>¡ˆ[™3BÄ 9ĸ(„q¨\B¾߉ÜåÎë�°›xíÀ€í–0èçð×Ùºx÷MÛQ%� 뉶[ö…áõƺ¬=¿gDÔÊùz_$0`?«]‹ð꘺Ž*¹Ý‚à’ gÝÐl†Ý˜Oøˆ%…kƒ3ÌŠ6;ŸÃ¶ò¥$/´¾V˜v/äJ¼fˆïãØ™­{p§úúÍÊ0{‹Ã­ð 8Y��óÙhöò®[Ú©‹Ã&vî¨D< JÃï××' õõ�½_Öu>Y$›Ÿ×¾\:yî8+»S} ]:½§ò+[šËÛæ’‚)|ËóÇ•Š˜Ø9]©÷•œT‚IÉK%ñtÆÆiÓnÁ�ýûŒîŠÐÁNö’‘ªAê3VuX‹ª:œƒ7¿�r·— <“gE,àÕX7r0t³–”A?W“¶×/=²èÉûB:èÇeG±SÓH=ŒXˆIëw5—í�²äæök[â)Å‹L°Æùµš{Büß�É÷µÇ]*õú~G ©Ô7Ή¸ß"ß�QA·|L%@ÎðhSTÑy ’ýéîºÑÅŸ¢¨òÓöYûuVdì~Å!}’³¯ÉG÷4%z™Ìb®§ùÜ^¢W\S�w³×ïùpÛS þh#±7Ì“y^žDz“nÑšêÞ^å *‘^“�Š,´Ä|ýaB°_iKVfÂäµa/mÆïªå_™z¶I¡©ÔsÏ5æfwÔ[—ëMÍÕS{ºMûsLùFzM¸sÔAx' ý�#ÅÑáå¼O —3Ô'²–÷_‰;«´`5Ñ ØnYa¤;³Ž/^Ò¿ÈäÛ[Ë ÖŽG¢-§ë¨gÖVV’¦ö[Å›úö;Xyjѽ€Fo[4Êý©³ªÏɹð‰‰å?sg—u¬žÄ{ÀX'´6� ØnY‚¯¼ÈJ5¾óâô•û!M.ó«b¤øÂr´:¶KQüWñ íÓ¸xÈ»€Û2íTª¶dŠéYé!-G¬ÆxïуwŸØÏÃâ<+Èìt¸‰xÙ”í#�Û5{à¦ëZa"ƒÏbÂ�¡b°(L¥¤=üa³¹h06«–ܯ�}!@Ž\ØîXº¥ÚÝÁX=í°è 1~Xž*šgöaÆ *…ÕÕ2/Þe î[¢ˆ÷Ñ›ögÛµôØ[ùÜ,]*mÙ�Õ[…�ÐQém�ÿ«%© ÜPŸ<'·új(«zX:휯9ôœÌ^1ªýüçMv,ÒÚÏ/³éDv:'ƒÎ6z¤7o­8wW"Cô”ú2¼ß2Õ>Òd¤ïš@Ù Òí‡çd\�s2†/ßb¯9¶Ù80ÒœoA/ÿ˜So§s2èº~Õy÷E˜|öªf¸+þúƧΛդ*Ù C…ÍÝxYæ$‘'o¦“”U€ûYÛsÛ¼˜kAÃë5½—{@ÇuU;ÒtñÜ:uq7ûŠ_Ê÷Xï©Î `ÀvËlŽJc»ãiõ¡Úû0>E1A™ø&9¦ùêTÀ³x=nº¤w÷Õ_(·C-›9èw|ý�ÃKFòùð'¾Š××1l3)Ç™1b-H�œ«Å²Ij†Z¦Í½zþŽˆãà2,2üÀ\MTx^2[ãäú5³sa³=ƒ'…±©zå�ûö³ö꣑�™½Ú¹À•kü‘§Ä…[ ˆ°È1.éçÞ·¸£E|¿K¹-I0T³5’²œSx5û^>½s Î‹ŒêÑ TšÓù-ƒ½×QuÊ\Òñ|=níLØ©¸ä¯VÝ¿?ظè.ßÙy\{­@�ty§ý;tV±‚Ë#>¿Þû§½Š ûM1ø5z'\öóëÉÙÆrܰïßy!û÷ü/û÷±ÅC¶fÉf„õZu.Ã;íß¡ëÚ�wx�Û2j*©T™v™Lå‚áYü‘Úõ× ã!çL¨%t,³¥cÕFKI"ÂÒ†úv™z(sMÕåƒÑÙ<©#Z¤†gÓ;•KËL‚–PÐâªÉ&ä¯ ØÿÇèGÚffµ×qÒãžò%)rŒã‘Rvv–H¦qÀèÞò¥šùÜ2yE~ÊE °ßÁŒxЦ]fÐR{�L«ûx\[ìéߨœH,.ágì²÷ò—®ÆÝÜ ªÙ+ý^FDir(²jÉ8Þ ØHöþéX¹F/knä½÷8¡{<‰’Ä]�C5#è˜orO ¢~WE‘�N«g 3Ú0xÑ#öæ6­É€«µ<ã|}ÓçŸ6jó"VßüÖ ô8’�ÅÏ»A{ Öx"kŸ/['`ò|œînúîÝÔ¯½„�Í8ÕÔƒ:"ý”{&çSWk>4Ô°'ËÉêµ"àVºôíî¸|‡‡ý*I²I›@DøÞ÷NCz F_Þ>â)ìYç�ü̹½3ä¨êN½èºþéù˜ï\*Édù”¬âü»4WÆÛñ—M[ÝUi\|‰?t;PK÷^®éâ4¦^êlËÐ7d:©qLß<¬ÀEä]¨á[ eYÁ‰ì1�…?q�h4]º˜Ò>ؿτˆo;…œ—>rÚéx9ì u[]•P�E~G�Þ‘Ò¬M¢òT—þóKÊÀ~�Õ¯tJ–¤�JùÏ*~hl8Ðõí¸ “z´U&ýJù\«!Aƒ&+/ÒžjY’m%ëÆà1Õ>¼ú'6O*ž¯“óawX bñÒŠkåÒ hRiöĆZVYkFôÌ=óa¯§aS¿­ï€ï矙ù|=YóÈt¾Öaš ‰V'b²(¹8´ö¥• Iq´ ^ ç :çüìþã�j_LJøØ‰ ÷Çã 4˜e±¢)vK +ÕIjÑKð¢&´R �Ì“ÇáAÕŠ\aU4“Ì?~/æ¤ö5%ýò^Ì%÷›ÜO{ÂÇt¦ms˜­vª}¡ër½;­¥¥*ÒÈóV±¾0Õqž1sØŸc�W÷òxŸ¾æ/Ì ¯#¡3 1í°~ŸÔâÊ3-9mòÌÓG½Åê›ÓEåõ©R‡ â‡:õzëy°U{¤<çÍr¨˜p”!z¾b‚—š¹\ °?ÇÐo…•Ù…\»Ü«™E$‘ŸñNéìÕn2Z] ZÎIõWnyS‚œ8hZ€C5›7özKø^�__JgŒ¨¿n°))j0G�i5É>v½zH íúÔa9y`À¾g&H¿¦¸ü[ò¹ºÊN "µ²¼Z¬&ñQº‡âÚÐYëkuJí´3ÊŠJ”€ýž–?7ºg­ó¾4¬ø&Fr÷:cá¥9ÚøY¼”%³¹Z«"#m¹ôrQCW~B`À~Ö¢èø$6¥-ç=0_S‘�w«Þ$wNØ`[\$8n%¢œX)=˜ˆÙVÒ µŒÃvLM‚x: ëBt¶L•Ð Ãjcïs^ý7ì •ìtð„:^~ä¿ ì×Ù©ˆªd^)­µ·ð‡dÒ¢•vå̸è¡=º"ó< ¶> ôwƒ(ůÛÓQþ`%‘�#6Šä3>!òМdt•æq¡’•4\véÖ‹}ì»ñ)÷âlÿ�_û¬S_ú¿!!¬J¸û™ÉܸÑ�79¾×g•Ó¿„Üú=á—·ë·>Q0(�KÇ åM=ƒ'uè3¶Ó'³ïu-µ Û°¯BÆs¤s­]9 Ýþ~$$OÉäÖÙÀ~O{Ó^f$Æõˆ£�§%›‚�  Ûݸ—4�¹é{Z*öæš�ªáÖ�Ïû³mz—Qùl '…ÿéx‰ì¢pÂÊ m¿�E_AKÕ'I`°tq °-[´l¯â \í¢;X «<{¥ôf¥!‹¸1fgwM+æ§É1J¦Üqk`ÀþV$UÄFay¸F]ÒM½lmÄêX e÷gfAJ Ò#6ÒÒÇ–hûÒIÌ�ýÙfzcï¢Ö¥®‘Vñ¥Iö|ˆ�;uÇÅ™´Z¦BÎP¢uýª�} À€}ÏøåŠgZÚ´^‰Ñ#&6’N>Ó�y–¡ê¯k¶Ú·º^F@/tÌ'ØÏYÂ�òr�w¨_Õñ—˜î¹,O´Dš¡µjã)™§ç]u Øá­±ÉAÖs;ÕªÐû²8Ôƒz*ø¬«t$�6ý–X�æû´7ïSºÔ ©Ë¿šöÿq­ ‡Ôª_fœ�š!mÓÅX8Yì=¸|u§Zº.Tº#ýo³±˜‘NÚ`jÄ{ ª?¹Æ‹‰­l*Cê¸ hwÆ5®Æú&° Îû³M3«&�ŠÏ¡¼7Ôáöˆ”ñÂòzÍIvMl[#¡‚û�ÿaïΣ©îÚ>€s�!eV¦Š„L¡CÄm<æy&SÉT8†‘)ɇ’±ÌŠBæ"S™2OI™KqÌ%óûxÕjÝ¿ﻺ�º÷úþ÷YÎZûkí}íß¾®ÈÆ'D•¹À0Ëz{û±N\Q³î>|Ç`™¡™£Ìú4�Ø‹’#U«YŠp[œâHr§ófÃ,ã M`Þ«Ì7S&9hÕÃqÔ}\,•Y�%V†¿‰î¶�t�½’; ìϱ…Rã“•¹z¨uE{ž  ~„™rÙSNø©Cv ïÜÞËÖõ$¢—— Ø¿Ïì›™Úî‘¿ÆG£Ý0¥#°‹ºªÆî>a›rXz¼A¸_OþM® 0`¿Òvùì$q¸-ù´ ´ã̽¡W²Öâëæ‹>·æV-é¾a<1äÀ~Î<"^RÀÍšqçRå¿e½!Ÿq Ú¿ �ª�¿æRœ5Á+ÐD׺Yÿ*âÿü&€$>ê˜Æ—øùv3:6¸Ç|#D2l=‡–WÎ'´ Üû:ÚB*ëñ4�N]ÏDîvé/ÙÅu4ç[ÁÁ’-X�§½›Ï߃hF4ï(?õ÷x'~ ©Ûç0ãÄT­'O•-q#Åu×?�ˆ�I7H7Ü(ÜÈ„ÜFPФ&!÷g¿ý9a�ë‰êXÏ¡¶ ÇoÅýÌzÐýwC‚r7¢ ”æª,\ý­8v%?±v(—ôÓ~¢T?¯“Æ„/¾ýûáÍE�:osV<ãc4é¢é¢Ï)žSTvÒdpÁ6ÒÓðuL=2 ™]™]áÞ%¢(¢¨å9<9<9>í¯­1å«ð¸ásì7æ©Ó¤ŒòܬÆí±ÖŠ( £´N7K!4q×ð;wY{}ÚˆìJ‡¤�¯<׆ºàÇó?x!5¦0ÚOó?Œú_ªg§o˜Y®¹!!òÝ™|ŸkLÐuaR­ïw´ˆG',r£S›Uê³²,ìÕD)ŸÜÓ[¢…C¹#Ó×8îÁ‡Ø}nw¶ÛûuVbákãš9Æ÷²1Øø ¬“Zq.Ïßvš€¼Ô›’�ÉÊïí”Gjx0/°­1UŠ÷N²‘þ3*” kŒp»–ŒÐ¨¶*W„lf½œLlL±=nïä¨*0`¿Òæ¬%ij#Ÿ;�\Õ)°¯\#‰ÖWï¾á}ýBWì/�ƦêqV—ÕN`ŽiœÏ¬‰òŒ�%‰Jâãd `xU!tïdØB–îèÝ…6 ©ÏZÆŽ6¶UVãËaä'D”bÓVï|qaÖÑmÏlœ=ºŽqbyq1e|‡}I¢U0`¿ƒUd”Ü@Õ rƦۑ1¥ý„†Ÿ˜‚Bå£@NyûÒ!¢›ë$#Ga1W€Û*Kº¬"µXMì9‡¶¹åÒ¯Ïo»sIšŠXR™ÙÈy>Vä 1©Kß~AšN`ÀÖÍ0c_km´Â”B¿�^CbP‚ìê=§+3ô þ©Ï � qk¸Ä¶evÓÇØû¡¥"1§¥ަjNrŸºAÜÀäZSI_üÝZš�zØ,J™F ØÖX Ì^çj„x¼‰ad\ø°}¾6¶ÎîƒÇ4‹««Ÿ¾ÍêÛ>O›l‚ögÛ¹Ìø‹œ�š­í9¯ u[$ÜÜa˜ÔÛãÿj)ÚbçuÇD•—^ôß­P¸#zÙ–zOæ¢Û¦õq��ªöãó©ÍîÉ ³�n›Ì8ªM_•M&îÃA–€-À{ì3\b,{ˆžb‹•/"ý±xOƹ'cûô-ö™š½k ¯› ìXU ùL6»'ƒ®ëWÝw§W‰Ü¶¤u–‹x�¶ú¡ãB5•fÎlqS‘¹GŠÔ½×$è M`À~Ö°.Ù>àŸÕ ìe Áã÷Eµ{hŸ¥Ê”ɫӕñqyˆR½LWä4Þ ØV™Óœ+¾D= ûÖú¤'GÆiGé’_§]o:3ŽªL4`Iy›ªûT£ fÙYÈþ•×ÊÔlÓœYiZQ÷.«y¬à œ³éF8pÉðfId)EkñœRZ�a–Œ[Ò �rë[ �‰Ú9]•ŸÆÝ0v”uÙZ4rª»ï�ä¶}ÏTö‡ö³öâ½™“µ‹ŽhØâ9W‘˜Ã2’ÍEälx48§Nä¥ÚP¤vjT`§(†i¶LYž{˜¨f»êóû;ë©÷‰’?Ť9�ß2úwFÚîÙóFþ½#Žž¤jó¡:5ÐóûÍÕãÞQ*=§=G —‹t©6;¿Cg«zÝyÖîrÿ™9íªË+}iø4#¬ƒ®ô±÷–ÜTCaä�ÏïB�ó{Á§óûp½Ú®WÎÖiÖ®¤� ê¼6;¿C×µ}x�[7Æ}òŠmŠÙES¼Äƒµ+½l#¢–Œ²Fö9 ñ:CeT®Ñ‘wvî†ùvš±?{YÛkÒl•zžÒ'U#8Š”Áo`-ËAŸôÕì­Ï­ª ØÿÇX['¦ Wð3î '‘«ñŽQÑut”ÊÝá¥gy#œa|ÑòÍa/y`À~3ÄF{M`g<3³ªV{)ˆòžkva}­y ¹\²hPä`§K`¨B5á0`˜f/N<;h^–v Y5o‘húÀL)õH<§rC c¨©òÆ;ükXþä)2^ À€aš‘´Ï4º�Ü g|[E› c6±¢7[5}Ú-}ŸÞ­ÏFh°0|ÝÓc-øŸ6FÛN®Ë-I8°ÊaÇeþ¢ð�Ö‰¤–í>žvLÂ|�îjüîÛÔϵ„ˆµí 2#©:¬±™Œ¥šÙÉúž¤½¹wŸ9�¨Ÿ*ľ:¢Òîç²D™fÙÎ-EðãZÂH-ÁìSaŸIÿ:×´JÏXGÄíÍj ÐuýÓó1ßz=¢VVwHíÔ#]i#^°jñÕfòºL1ÙåʨðìtM'Ÿã|;0`ë[Uì`Ä·z�þ�Ð<ÿX�àðrØç"~L·U<ÜâÉÓäC™ è\€ýûL‚â’{„–Ã÷ýäôdŒ­ ,UávíE& exkä^=ZóÀ~�=^ì�+½E%:¥6ÙP¿³ó-ö~KvÝ8‡lÖÅŠé–“$õú\BØH `˜eYHîÅ»çûöj¿ô"z|ÏéÞÃ'+4ÂÛÚÄñ„˜e ò˜P;5›ü‰�a–=ªµ&¯ôÍNæ²±ÇÙA蕟ÐÇŸ™ù쑦π.0ØÍ4*ÛâÎIA«<‡î}™å#n¹9\™e õ¬L-Ülï‹Ë&H>0ê[82Ë„+V�¸uv>i±:E'n^Òˆ]F«—}h?<¼ZÍ”?²ŠiŒ—ãÇýbCö¾VTŸúÅœòtÊû€5l„vÎåpØlï ]—÷U´�N¬¶TƒàµÇÅn3³g€ý9V¸D tä<*!2T’ ¯£d±Š°jw|—Òá-ˆ–CÛGTúë6_†ùæ~\ce¼”Ê5œ"Ýè±ÉJ>ý’ Òžûzáš´dìIX�ZR Ž­r3°?Ç`#ËÏFœ;ýLÿ.¹ì­Ä¬·ê�é¢f6–eæÓ}á“üV¸;/S3 0`˜f3�oHß銈ËKà“÷Ôõ5¦Äöåê°/e y†=ªûÅZ=Æw+«ö=³Dr†4&\TÉ3Öp¯—ªU2à²LŒ5Þ•Ð ãz\kTvÖ0«¼¤TØïiÓCXË© ô.à¤u­,>5Íœ8EtkÞzºÖ¡ÄÌP9³qÒ[„°ŸµXaÙôÆ; ù7m—5•}ª×h¼%“V¹çæHö;Hi$?RèKÆm-í†YÆë<¬‡-K�¾‹w,.G±JâÀÉj?‹ ÑÀžó.Åê.IF®DíÏß‹\öëìptU›�¼Áòx:µâÑ«³„°kÝÆR3‚IΫÁõ¬WÃé¤ÅÏÛ3Ò˜t�ÍÉ•B K[�J·¥ZĤy\˜d¥õ§½º ‡ã‡ /¯~È;>Õcãwàs�uüSý7"‚K�p»8ǵ�Ìb�÷{uVå§�ëOú©wýú' ¦¥ˆ„LÂkB»®ÉïÒ¢ŒæØ«} =8�ÍO<ÇÞt‚ :ÓúÖÚ»@éý,9R¼¸¿SE¦š0:gZã…~ïíí·ïJœ@}»æƒþb<9-ýB­ÍúíïøÏo`t§ç !áj!ýþwiž½�#Ô(½¯3T¤à¹žÄâ̽jö_§µ­v=9Â]ëÙmèú%d¦�Üߊ£_«ÞzÄ+_äÿ=ÑÈh¤ÍÉÔ7ŽÓ—~ŽbíËŠõ,ö¼ËÜÈk‘B*búCJhR4éZÈFRmÄD;o#åÏ‹ì>G�`=ÞÊÿ›vúo&9w=£—ó.¥oÄØÜ‚ŽÉrÿð·‚¶®{{Ûøp»=g•,5~ÿlkczõ÷ƒdj³S"W"—Õ"ÓN‚† Ÿ ¿$¤$‡ü[PÇF¼ö|�±jhˆ±÷9ñ9ñƒÉÂüÂü7� ÷'‰ãb‰Y'ÝHi ÷Í›äovýi{ð¸‚Æ�†¾CȎתûÀC%ùV(S=oVE­¥tœëÂ�g: @îO(6Öµ<ˆˆ¤ðÀÉw¹pމ>»Ùý t]˜ôl+ì’Kv|‡£y‚âöÞZFqî�˪YO�žµf,)4”,;&C()ïS+¯˜çû=íu[¹™\âQo7S{nÕ`qqî« Ï™Âò2ɺ›äÙé…Õ�Lû³ ½£Ó¬b*…ÿ–ÈýcðR¥yóâQìâzΪÚÁáHÓùóÃÀ€­Ûœ}[­/éR' Yý£¿lÊ.Ü¥;É)c�ÛQ$PÓ‚ûalXŒŽ=oİÿ†•È—pÓÚï®Ñ„Éùè–/:ì-¥ëúÈ!N‡CÅठ°wžùe¦+)¥-°?Û¬ÎÌœêl‘™ãÙ)lP·_†Ý Yu<â(m!�Ð ±¹ö4öN`À~WÓ“äã>e¨)`ùóQ"xuSPÍhÔh@y¿3û�åØ#ö"%ÞGæ”À€ý7lÜ•ùˆþñ±ª™ÜLã™á{ò¬ÿô*`ޱYɇ;ŠßŽÒ<ƒ«ý?>c1'¬ Z4U{¸¶íX¬„ô‘ "ç²²–ÍêƒÐø~;ân–©ÙŠýÒ=–Ûºö®&Uî>±[èe­¶‰xD+Å�냂�úàãOo iÄun!NR<žs.¼dh«·Y}º®Ÿù.æÛEóØîîV9W¦Ijn޽“4{¢« *ÇÒò0(ðÙÅ‚2ääÛb0`[ež¹ÆÛ¬ùè.¢.Ý&žÎ&Æ[’q8Ž’¿ž«ÍÏwwî‰ër0ü¶`À¶Ê‚ ³ª­ÝüžŽÙR'ð‘wFÚÎ÷úõ÷uŸ-6&_ÞÞ�â|µ3°ßÕÎÅÝ|yPS_�–€0¤hÈõ*‹a+úÞfNâZἎ?`)€ÎÊå°..Å Ý_+ŽyåsÅŸ3Æ¿èÜ–ulÏfûkè7+½ìO™/…¯ ¹ÈËxN»ÊF²—¶_ÒK™é=a뵿 ‹ÊøÇûk>Èþ:zÇÆº´E³xíK¥'�Îhé˜Íö×ÐuaÒ<•?ÙÒÜÞÔå�â[hR.`d}FÄqÛ©Æ_jDY€P@$ð´ÅÄêÑ®š �ýûŒéî �“è+ƒx8l¸·¢ÕJLÝQYÿæš—½|ð_9–T!‚¾uÕ}‡€Ã4kHzà~¢ùÕsïLzЧ¡{ c³®±ï¢A¤_�ŒJëv7“ëºfÁÍì϶ø#KÈ;o’np¶Õª*jÄ“Oô½'ÓWæšP =þ$[e)g)PÎ0ÛØ¿Ï.øIà fÆíf¤¢í«tî­šßîÖ’ªË~-­}å‚ ‰\⌠É! î|`À0͸ɑÉcÝ•B‰ñù5ì\ìÃæ†A2^ç ƒ#ÃŒ^—_y9P›’æ¼À=/z’èc«'�ž]µ“,F’Nov^„¾aÀ•(±ñ«ñƒõ*�Ÿõ7[œ?·,{I/>Mn=Ê™#jŠýãó"ä¼Hùé>¦ÕÂ1‹ÒÇTè&CÚù`ºžÍ΋Ðuáûvý{we÷ÿœ±”%;…©(Ù›f˜Qö}É’-û2(»hˆ²$É®&²d—dÉ.[ö}Ë®Rd)BÖ’%¾Ïüԯ뙿ßÕó-õÜ÷û�¹¼ŒËÿ8÷çÜç|ÒŽ?Ú³ä·vLÔ*=~™‹hÅ0À~»U·ðì9CXå¡Ä§Aq‡” ¥ ñŒ¨¬ÊwüU=ÊTº ·¡I R2Û^ÖîÅ"DY†«M0j�”Q¾U“Þ³§úzlë•Ú&<¤ƒåôÝkëB¡n+S€ýé‘?<—Ø ×Ã5ÉæïL�#¼8~Á]�=�öˆq U£¦Qõs’Àû– )–¼im×y"Ɇ_Oøß+‡»PG¼{®ÚÄ+ÿà”‡¾1Þ“ê0·Õ\{¿ìæçƒj¤‡WY½�iB¼íB¬It7’ÝD5•žL}® Çš«:ìqÆ;%NÛ®�·p¤Äo.&dùÜVsUìqm§=Òÿ6�FS w²\çgF¾f`Tl2Lhƒ¨ i�ÄõÓ:m`™ìÏ6íûµ¹L‚Îåý7�¯Ëš-£oÐî“q‡j:™Š$…؆5w»Wd¶½ìÙ³!£ëÊ–}¼i:k{[¹Ê,ÏÒ ?y"6V½~…µ¿Í1Š¢r– Øö2XP, !¨"×T‘œÃb€ë˜ó´¡p‹kî‚bÈ&x´ÏLÌyázö `Ž-—êßž©ÈÖ S‘·ƒú•#$LËz¹ág޼‹Ý#HFòŒ½§ý v°ŸÙñš[ï“M á¡W¹Õ4«Á·›®ºÖö-Ñ#=›QÉ© ¢ƒZ²¯²­ìWÚnÏ}üäö÷ÄÂzóJ;ÏŽø8S¶E#Wvz¾HY”°h»ë�è¤ìÇÌ ý”î`Úº|’M›;Áv[6õ*öùUÏïõ5©Ô9Ê‹ øö¹­lu~Ù_?S—¹��’"ê—Ÿ³#à^ÃéèÇwÜÌ¿ ¥ “|¥ã¦óaŠ_FñiÓ&ûeò0)€µ¼ûœÉ´—™_ ékŽAL2¿åü{, ,Í&ì]þžîÓŸÓ›ð)gðÔ0Ѿò&~3ëfûÄÒ õõ÷6cH¸2æå¢ÍPwíüVBLl0™u~!úµ<¦Á„ñ5£Æù®Í\ØK{“ßDóµ°pK&%1•”ºÒÙyšÀrVÄ·ðÛY7øPFàAàÑÄàAx��9®9®ÊJ4§Ù¬¿ßf6^~P´;dFdF%¯K^�‰Ïœ˜9aЖ�]cÊU‚¢ vpÔç«W£ ¿´U� ûŒµv‰âð5Ë»¦‰D®ªÞÎÙÔEÏéQ^ïÓñR†g[Ñå}¿ÿ «ÆÂð±ÿ‡ÞÐSeCNpÓüZímQ¡oöäûTcÂ×vªõýކ®22˾•ÔªÔ˜Qɺ¼_-XÑd_sdñ)<š]é^úQ%ï"™ò\ÒHìûuVlæeåœ>Éó´Ù_ÿ(9#¨‹N~1ÇÇzn'U© Ñ ï‰Y·¤P`?ÇNR¿u”ÞæÃ5¯D#·Á ·mK Tí,!�^ –‘ŠŒ(²Ã63~0À~¥-Ù[ŠÑ×…=v»¡‘g5U±A~K[¥ï¶GôåžÈWînÍ-5SÁ8=d€ý9¦z1½6üRäyx<7›ïÞ’¨ðr�B“�å ÍñûË»¬b�«,˜GŽ·ØÏ²¢/.=oâD+îÀˆäF§+Ë .û¢ì¦ë™ß¬­¬$Ní²+޳ °ßÁÊS‹o7rø9á2îJ�Uï¦G�RS+½çËzرz„øG½èJØ8(â:`€ý,‹P_©!½´8m•‚ÒFX“­JÒ’Š)²è9-E �#¥@ ¦!øé» cº©LíÉ ·äfå†t\šâü $(o:^ŸÇúTÒ�×㣀¨¢"ì§ÙO}�JsyRns!<5ÇàE1&�¨3-Ń1÷ëè¡ …`EzeÀ~Žƒì4n Eb tâBG…À¹ê¸>Y{8N«ÕÔÈ÷Nd ’,1ÄùLögÛ…ô˜+y|Ü]jíYÏó5ÛD]\AÛél�ÿ«%ª _Ôœ<¡¸údè~Í ¹´Ö Øëd(åÈG§Þo@ hëÞ?Îbßj� »·Ñ=ƒyå¹Ò ¤ƒx¼¢ eø€]**Â|x€¸WøáŠ�îw×ÉXëdìŸÅÞ'U»£éùpKž-›R>�ÁVëdØãúUë݆`¥0ÂUíðó‡I‡@ëï:/×Ъe- µô#¸Å _’O'ªªØ�ÎUëĂֵgl�¯à7õó´éR9õšRž¨Êà“Œ^1~S�¡€ö³ÌqŸÞu/b��½Lƒ’3cS ㌠/“£[ÎMWÄð±&N$iöª>l{ÙÊÀƒ^*Ò±Ïqg$Ÿ / Pvû€ì”É8Æ…OI°@.Ms¢ŽÀ1±°íeºQ«§|Å]—Áádsµ‘á¹É�¦Éclk–'Âfû�ˆ2õ+  °µ'oM5èP'BV.8 EðJ‰µP±Ðã�1ÊI²õÕ¡NêR-ÇMT °ífk4³y‰kIN>~àKV�ŽéUïvêÓù5¿ÖSwÍ\Òóy6æp‰¢Sy)H£ûþýκ¡G¸ÒÀÙKcºkš´Ë[Ý¿c÷*>é~O0°¿õ ɰŽz®- Ÿcu"à ÈÌ6•…}ÿþ]ëþ=ïãýûh£òîçN–É–Î :õî/¶ºÇ×Ï8‡0À0ÆÌ$›*ÿH>SµàÅ,Œt¸îÃ3ö1ô sfi=»,¹�‘2Zç[aid»Ûþv–y(sMÝ}Æt�nžØ%^Ë?Žï—ŠÐ±”æÇ7·zhCäCƒ4ìÿclÃíofu?ìH�} O¥ #¦eìì,•Iƒ�Y_ ¦Zú_1BÏë. `¿ƒ™òãN»¿ÁMí7µ¨Q~Êì±ØŠb{©v(á¡XÁ°GêZ�\ ÑÆNÀÛnöĨŸY–|Ó¦zÉ,θÄT!éh ·bÓ5‡ c>›Û¯wÜÄñ¡J”ro °ífäóÍ.ci¡ÌÕ Y·@,`ÓuãÞ>É`Ïimv"�åÑèKnþÿ´1[sÈk‹ÇÅÒ 1”:Ní‰]Kp _³}Ö!ŸÿítOó7÷¦~ª% 7bÕS)õÄq&çSWkfk¡ñû³ï÷Û“ ¾P9“�{cL©ÃµJ“lÞ¾¾óûµ„£XµÓ�gïõŒó©wN®¸Ô êDïSߪ–€=®º?æ„{�‚ Š}lP—ÅÊØ#Òe‹6/õîÔ3=ÎÌrýgk»x̘—: c uùNæ/ïV!sO×ò�®…Œp¯ìˆè³ˆ�›u÷Þ¦I—+aD…öï3Qê«®èSr{�º,§S2·Ç²V‹†Úæuì-{C°AUžê>pjI°_g +�2¥)´²A³Ê3M�d]¸Í95£ì3ÙVÊçÚLȵ àÚ ¨Û^–aY¹qp¿úSwâ†BÇÂÊîô‚„ö",R:9‚_�5«µø�¶½¬ªÎ’ªÂ+ón¿�I󀓽Àso�÷?ÒóÙ-Y{ïtžÎžãÒm®ÜÔt‘ŠÃpì¹/‹,:ÅÅþú›@è‰KIù[Í}ñÙùᣇƽòÇà ?Œ‘H9¿¿R“¨µ/nÆ-cÐÊ0 ãúþy1¼Xs_ Ú�çÅœñvÌy‡>ª7í”Íe¿ÕÜ{\7¦u4"ÕÅ›ø_)7¥ºÌsdÎöçXþêN~¿£ƒcÃ‚ÄØ%àõ4¬h‹‡×‰-hþi™i;t…�¿fk`Ûß\ U?L•Ò:‡RßÕk0ø� ^E°ñ„g¿\¾))iÊSŽ¿¦a­Ø ØŸc +aÏ£/œí×¾O%�—1¡rü\‹¾4 ϤæÏ\ÔPWØ�VrÀÛn6ovíÅkM!aRYÑ£TõƒÍ‰‘ƒÙœ«©6ÐQ·š!áv·©=ŠJ€ö-3·álŽÍ»¢”£¯êÚ(^§  sØ<.Rwl;èpC�^ÙyÝŒ‡Å¥*€ýž–77‚³Ö™$.¹Œ—Üó�£èÌKÜ,qÊ’å\�}±©®bz¹„‰‡`€ý¨E² JßmN[νc½¦¦çY³Aï!¿Y\$?h/®šP%7˜€ß^Ú Øö2˜Ó¨®4õô}‚ÓQYòÕ¢‡Lj¼ÍüN\¸ˆ*RAÅë9‹v<~+t°_g¼·ª“ÙduÖ^ÁïÒÉIT=?_ÎEºÙ§/>Ïï´îßÈv#”QRä`?ÇôTg쥳²%Gl%͉ߵ¦YÙNý¸¶“•6žuïÑ�ÉX—c8;`å}èS�uêcý�>¬BD"µHçÉ2Û€}«ÎªhtÆó~Š�g×cQ0.•ˆM'º)�º;šXv÷)š[\ûÕoNÏá"H9[Œh±{cïuÀ>»@ám ”&R4Ô¥$UCƒÝg»Æ‹ý¼ö™áÿ[SþøYÙ¥z…½=OöFôà¬2¶ûæsâH#G[‡ÍW¤)“± “�‘�‰µ©Õ$Óy¤Ã¹3¶6LPƒàü±äˆÒÄö¯�ë9ok…Â\Pó·øÇ~ô¯‹ÿŸ×¿®¿¿òñAgªôSšýÓƒ0�ˆà�n†í^‹�Rx¨·ÊŒÊL(îfÒê6ã0U¸)ƒá§¨#0�$`òàvÂî¯Å†“a±ôªÍd,)‘ƪ}-µDë‡kûJÈMP¢“¸“4™‡¨8´:¿Ý~ðN�n�n§UôÆ=ìÜœ¸9ašgš‡[÷. !e3Z]_¦ÜQ��]Ê»”å¿Í[=ü¶êmÕƒ•rìõǸ)>Ḡ z]¦%ƒÒ­Ö±ÿÇ<*i(§w¡w áíš%nJ §q‚4Âá”×™KF9/¿'*Öú£/õæ¸Ö†%¨ÝðrQ—oÃñæÏoµþˆ=®í´ŸògØUTfL§2VžäY³äEÀÉŒn›Ku¦¬‰ô4¬»fihÐ)~@fö{ÚËGMeâŽyìu1ö±ƒœô�܈}| $'�²¯µrgŽõˆqHýØ`¶Mïê2-ŸMïHzp^ª°„,··Ç]&mä6:©£îjCn¼ä‹ä 0Œ-Ú=ª…Q¬v±R–�«Ž[•]¾ÏhÂ-e†ßYÀWÛ†ÿnrT˜‘3gÌ0ÀþV,[ a°ÛS«’ñÔ|¸6l¿¿”±ç=—#í^G9¹ýK,OÓ�)h¬û³ÍââÎE�3]ÃmRK“P2A$Ú·þ §NëÉ)ô1†|¨ÀmáÅŽdN47`€ý®¦%Æ9£«Æg~œå1¼¦Å¯v<|Ü÷á�çˆùdg�¬ Ió0Àþ6åÌrYBÜpºz>;]~´P–šíŸÞƒØŸc첡"÷ÂÕÎá«?Ý“º’Òƒ]4V®Ü <)*y´œØ©¬¬m«ú öÒA9[Ò>ÖY£™òC’öæ„=û×ã+öíxZ§n ‚n§þ~}�«>Øðqo.½ˆFŠ„ uÃܤSþU]k­­êƒØãú‘}€m»‚Œ|çêj‘u}޼öÎäk1=ánM9Å Ö¶J¿kýWÆv–ÙÌLùØÏ²KÙú„–<ŒW‚í¯¦M ’Îe’¬JÙËFg«#xî/v;¯ùÃ/þ‡½û§òÿ8žUŸp¬ÌÈήc•ÈÞde&«pìŽUIE¶ìuŠBVÊ Ù;dTö(•­Èþ~Ï%WW§á÷»ú^uês_Ïÿ×uÿqÿñ>¯û¾ßï6ÀûU@o˜#Tcãî×óÎŽ2ù(¨+ÊnyÀo¼·;Ö}µ9Õø&ag÷à�HÀûSÍ#þöKN-} 2»ýøAEcngB²éÅþžwY<Ü ûF¬„¦³ó¸l?—@__+¿ƒð$yï»êø4û Ãnëkôw¾Žô°8] Û€ò€Êù/¸ÉG)븦‡\8k_KÚ»‡ÂøÇëë£hë똶¯ëtŠx¶�€C™lÊ ÔuZ6v·õ5úuaÒyD³¥»¿n,ÊŸÜgyšOµ�‰½�€ë®K­¿ô„*´PFI&™ÿilœͦ °ŸqC=õqR|ådªÆ U´[Kh8©C_ß‚;(žÌµ¢ñ­¯â 0L³&Ä‹ëžg[Ÿ{gÑ‘õ38Æeß:BE-“± �Þëi®Ð}Ë’—°¿Û’„× ÷F^#¹ŸÖ©+k&�f†>�ê«òÌ ©›>ËQ[Ë]»¡`˜ãؿϮøÉ‚ ¦ì¤cªu�mZÜí=-]ŸóJV;üŠˆ‰BÊ‚1o`€ašñ‚ ©ï„z+gDS’ j�ð·0 �ƒ{F…½zþr¤™îº"ˆþ @¬ ‚ïâË‚ã8X9Ûä vû€ä¿ÿ“Ch]Œ^Ñù®�ÏxrŠäÂF®p|]ñÖ*Phî!â1•½_'àƒ "6?�ŠD•†ásö–©ï¿U—…`ª£Y¬_Æ_Ç_÷lLöeiG?gI¸¹Ì£“¨´×ÒX·cÐ3߯õ¤!"Ä.Änªs;®™íÂ*Ë"·Û/y'ÉuTDZ¨&ÎP|«=—Pñrò©¤ŠnÇéYAà9Ùò­6”ÛÖ^�ÌR-|–|�óW–(!2‡u¿ßhkytˆMˆÍ”0ë�‰Jôˆß¿Ñ…èBtø�´®m7Sþuá·[©ÑÃÑÇÑ·/h°l°4¸É\Å\5·ZFŸA\&ÖÇÒ@L^Ü´—*†’Ìï6ƒ@ÿ® W²ÄÖ¯Ö{@eꢿ�Äê²ÇºPÜ5½`ð<Èf’;WÜ ëÇ3~´ù§g|í–NÙä>f¢·éÓ/Ò"ùw›A _×>ßî{'Ÿ\X?.i›…XáÂ_µ °?Á<âëi¢ªX‘/ƒSXÕøË´°Üª%‘'¢Ý�áb"šŠœG6`˜eí¾,b¤åXúxãv �˜š¬îƒÕáÉ­Wk›p,œl¦3nlŠI„y­Nökl¬[n’§?ù l$…u.O¤3+eï¥I¸G*ŸY9!¨Q÷lõ á"`€}ÏÄTKgZÛ ^Ȳ[Ln"…ÏÝ7N¨ÌŽÑ†Ðµ8®m<&fWcÌìç¬È"ˆöB}À­ jæç¸¾ùÜ ¤[ÐתMÇ”�ö66ã·%¥‡9Íï¶VEßÃ`Óà�‰Ï›Ÿy¨K¿Ÿ^¨¡áV-¼ARWíÅtð�ת`´µªÛ§s'�MIS´ã,ò•Ì'…®8ï¶VE¿.LÚ·âßfã ‘$£�,á"LoiGƒT›LSÛxµ†uñÕ±®Oè9'œ»yÁj°¿Ûôï×0žp«è»åvmTÑrñ8uƒ~¯œ_¯«¹dQZ¨}Tó3/‚Ê<À0ˆ÷œ ‡Øô»g°NßÊUns�ZâÅ ©‰êÍ«lE¸m.ñ$U¼9€a– '³ìÅ®,0W%æ´îç:î6m*‘Æ¢ÇV°('8 ïµ”r[ Ï›ìﱕ2ãÄÙÊ<½� eþ€ AsÕònðy¾¥äƒ'pt?‹àìßgÇÌÍìï…¥ÖˆišÓ¢¢¬®µD�ÿÔ:.;Õ/ƒÏ¬§ø:Ï0À~§Qù0ˆ;Þ•Šê),ët~8vÝÄ�´½8Ábu¿ÏÈ�÷2Öm¾¡ü±� À~μ"_’��Ì[Wøxó( Þ°'*f^CŸ¨ñÊöq1sMÔk‘G_Þm€¾Ga»LI(Ý › s$¾‰§¦Ÿ‡3´.aÞˆ4¼SÊÀγ¥,üñù9hó€Pšíë:e4übz„®ia½6QRì»{îÌЯ “æ2¢E>9k™“ÖªÖ˜]ŶrH+DõCs\Éiò²|�ãK—â Ýï:öû¬ÄÒ×Ö-ëÝÑ—Í�ÆÂÄ´Ø]”Êïóýíæ÷ƒÊ¼Éñ[û½™óJ ìט:ÙùýQþ\ jäJ[L`û¶Ìàè§Õn2òYÕt rq±Å¸³“ê€ö;mÙÑFŠº.ê¹ËD„N¡íTåqŒ¾Fo¢w•î¸×p¯æ–š©�=ÝÖû{LóRVmôå¸EâhÄQnöëô¥ñѢυ®dëNÞ_ùÇ6ù¤Æ¢UÜd `€ý*+Žõå2ò%@ÚrŦ7º^]YtrgXŒw˜®gšY_]ENýãP’b`‚Ud–$†4r¸bÑþ“9§ýŒZ�ˆŒLí£PîãŽ5>‚Ûœõ’«Q“رá€ö« qSMzµ†èòûiÛ;°a}A»k²DRª,F®ËqbÎD$°¡{‚"Ô]€†2ÃLÆötš¥9¥aw¼¦”€"Òˆ‡.á tÉþU”�„@¢¼š°XÀûevÛÇØ»ÊJ™ˆÛJ GË%ä½£†AüÈìVKÉPÒý:ê F~ìÅUj`¿ÆJ°t""O%™FŇ�‹Ñhcùçä<£U\S£Üó&{ˆp™&%Ðd°¿Û<²’® qwiµwä>Ðm“t÷ÄÆ¤½=þ¯†Ô–¸¤ûN\uíÅðýš¥{â7íhП“Á qOOÜâÇ£¨ûø<—Mz·çdègƒÝ5Yp‚ÌGȧ áÈ“Ä^÷;dÂb­Fû z°$¯Bý±~øœLí9ÙÎ÷ŒÎAKÞžƒ—zì¯ùHùîùg;ß3’¢ÞÆpEϨVü¹‡ã �Õ“ävÏe¾Nˆìá*l�ê¸k¸�¿nÖ=qUõ—ªxá�³Ÿó¢UoúV9ýΨh´?È~ÙVéVéÔýÁ/ÃÏüHk§J1ufT¢û�qlGòQŒ>–Z+çŠëWj…íJ?n•×DnW²b:¼Õ̪Xÿ(‘oe±ŒŠÒÂ*@‘r;¦â³å³”ßÊìéº/çûÙ^÷ê•¢ÊãšFH¦F¿ßÀ]Ò·V-V-a¬AŽÓè9¿r~#€Ü%+Õï1ÙÎkîëØf´è…j†jV¾dKbKŠ€×fÖfö‰É ïÜSŸÞÅf�«=´Õ48ÚRhÏ®öà¨ÉnÏ^Ñïõßõ¼Û”N-jïš~ôE¢QìÍ¥Î+5Z¹‹ÃÅ-Ý*\H釯ˆ§‘šZ€ö³¶çš]©à¢Þ�ö °ªõ›´E¾IS�a€ö«Ì…A 'Ü—À ŸžqkHvvbŠf’6õUzB‹óTHeЉòMšn�æSÀ0ËfHƒ˜7^©RrÌsg§ŸŽ~xâµ�âšC;Á…KŠ·H,O.^‡ç‚l ³Ì�3~íôui÷¡ºØèóµqÑé¼M¯ÛˆGÍõñIíeìSc °ŸµÌ]t(a:â¡«nb±Çä¤Z‹@xÔ8çÏæ§Ù_7 KëÒ¬ÀBª¦Ù:ùã¼cµ„êÏ]?Pƒ’QÔƒIg¿~ËèÞi{æ,ùL8]&é„,ëԢτnošzG«õ_¸W °?ÁÌE°¦á3X™}æÖ5�—"!Þï[a쯴XSK�ŠqvÁn+Õàoí 0L³gû8-ÊÓoA«—-SÌJÍUÒ„“¸U›n8› AßÇ„”ƒ7¦qÇB³ûĽ0¦7Õ4¹1Ø,&Ötæ›f=½²�è|¦õ9ð VÆ.{mþ¯�É®„›çfa;™œ5ÔTî$™ú,Á‰@zÝþã'®È‡éîæï~ï¼3KˆÜJÖÎ$5’î§Ýón!s­vq¶±–q(ï~Ÿ#ñ‰�ó°"&Ô:ü`käéV¼1ÑûkXíT(»C¡<™mj<Ðõ‹Ùêˆn¼cûjÅ|Û9âF}Q,(Œ 0̲l(ïêýKC‡´_ º<¬z¶A}bo‡ã)5[ÔÞRˆMÞ÷¥5SŸ( ¥â¶—u†Y&à:®‡%O6}ïL|®rµ$ë¹?Ëñý—`Å0„‘�dÇób€ý>;S�Î!ªh°þœA©$ódðb>ö­^cé„ëf`#{D­ì)gÀ~�iÎ:ÊçæÉŽAOÈZ²JgØ‘�­bÒo˜de�à݆ãIcnn.å›ÎõÛú±îÌY§>=SˆŒäÑÀ'<ÅõžÒGÛrë»û¢¨ž=Eý=ɧ™?êµ³2™ä,ü[¢™T ŠT§Éc¸ißšý{÷�åÿ?p<;²Wv”(nBˆˆÌ왽2nn#2³²²Iö•Œ¬P‰ÛÊž dÜJ{”ßÏýS¿NWÃïwú|¥>WÏÿç8çêœû�ëz½¯÷õžGáÁ]bi1$ž“ Ü?ü†Ü»G¨¨éÑg w+HÖa'Ï.Îx�ïÐÏ6®Ÿ¤Nñ §æ;RêÒ/áî´~üÿt˜°µEYÅm‚*ê¨EÀŒ– 'A iK6õ"œ„ëÝLD•4OÎXV^»Gm ‘4Eï*å…·¡¿ŸDS³�Û�ÚÃJ?d§²¡€«¢JyiTmŒÚª î]a=K�FFk/#sh™ñe®!©h¶™_Ý¿¤s±{´Mry’_ÐpD’E§Uq*ê4Õ}þ$á¥Î,–(h ý®¦)ÊÅ~QW#<š×ì ãi@øDÌD@Õ°˘Ùä–R9Î'PÒÐ@ûoØ”ã5q=šFíÚ…Â\ýD™4 ó?½‡ ´?ÇŽ™KGØ�½£z]í%VröZAx/p>h¤T³…©/"qªÇ¡²²m§ù p^yDÆ·ŸiÎp$_vXbÀÖ ³÷ÐfÚc C þ—õjg£ÚI~<äÌ?î-¤<«~[ܘ¤q~Ò᾿®•æNóAàuýÌ{é í}ó…Æ¿wu5/ˆœ'€ßšüKTO¸GCF>TŠ©­&ðú3ßñý•°Ù·üÂ@m·Ì½PÓ‚‹Ú7ÌÖ?gJw>c]ÒöB˜tb¡×½¥§� îk˜m �¶[H«›Ï[gáìÓ7iEžÂEÜmµ<è3Ì�Ùç¼ö4]?ø@Wd? 4Ð~WsI¸õò¸ª–2‰Õ~ì�Ò1'í°<ÚÝø>á]Æ4¶�D¬3Þé¼BV‹ªçbœÀûkÙI�b¶d},_Ÿ Ž»^zˆQXTQNéë´MåL�EM²«éµ�]ù:eÆQJdgrÞžD–Õz©èsÉÃØ&ßj%]nmßzê—ýÝkÿ¹/ãwþ\ùЧÆtÈîâÈo‡w!ebNAˆ/„//¾Ý4övcwf·[¹Ïõ)KLd޵ÈÔ5;+._d!èŽôE.Û9ãÆ3§à|« 6íÜK,\.e�=¨¼þÓþñ†¥—.~¿Ì }Ú ½ =ªðåkx�A¨ Tt%t%=sÇ+ª¶ó=þuGØÏ[Ê[ÊcŸe;Èv�~…ˆz—�)ý¿¿u¼íßÔùT¡<^N› ‰Ô˜Ã´DÜNÏlÀßú^:÷éO¶,ç7M¥EX¦çOÈ—00?Ãa½k÷—‡•ˆËˆ§ptÄÅkRmÀ@û÷æj«…–ê-)^ƒÐ=TÝn.¬l§kzsÓÃF:èL�YŸwCÝ« �¶×¬9íE€«aëÐsÏ\’¾P:;Ýø¼›,)ÅïÜXà‹Éêw5‘ê½iÊÎÚŸmɧÖa9#oÒ’ õв*ÉÄ3¯ÞiɳÍñ*„^èÉWX/X¿.¥›o Ú¿Ï®ùHp—,LY/ˆÅÚÔª—�mBïöŸkÈ-¡y�Ï@*uA’à {1h í5c'†¥Oòö?žáOM.†³°±  º�’.ºAÑáz¯«"_ŽÔgd9¬ògîZ(ÊiW6­EÀçôwšA÷0 ‹<´ô�û ÊM]ñÓ^[vÙà�÷× åž'¶˜€¡üxÁ˜A�~\ãk7µË#õ2â¿E›u5ˆ:ƒc§çEàuay÷æœé XÜ8-b™›¶Êнf h¿ƒ¹$Ô/QE×ÍxšzT�£¢1�Ú± æ=ßþ^%bÝÅ$ŽL9I—<Ðö–µ{3 U¢ha ¬ RJ±u¹½µ‘)­¾ðf4¨�Åô�뛂ÂnkS íŽ�õJN° ¤fôp뉢òuå¦b^�pñÐ;–Nv¨òq“†aíÐ�EÐ@ûž Ê?šim×y!Á �ØÌ8e|¡Ÿø8/V-T‰¦ÅöÀú‡*f:DPh?g¥ÐêK �7Cj�Úâ‰G�óÉá«—wºW^×^Ú#ýo3Dbáhc$ô/*úÑùæ émìªÃØŠ(ãš—�ƒ�Ó8ÎÎ�ög›Ö=x1½€Sõ³›Nþ£Ò¦‹§)µú¥<8´0LDJ3í£Ÿö¸á<.moÙààð>ÃH%‹þ“9:´­¬•—(…_¼¯Ýôe*Eo³O ¬a¿Ã™ÚÞ2ÎÐFLÔÇÅ&òÇÍXO;M_ÎdÔd*^”䆅!úME�# gAûslµB?iöq¡fظ²¬ G`5�¸‰|e„ûâ‰÷)ø�õöD r²�öï3›“&FVtÒ9á\”ʱÍsê¼ÉkáÖådØz0„ÄÔ€8öMé7…– �ö+í �í]Ñè¾’Š®ËecNDí¡kû½Fn/‰›·Ýñçˆë"íçÌ-ê% ·�Iëê öB²â·ÌIÒÙþÀy@±‡c)ë}ÖñUÒ÷�æÀïaµ‹? §¹nqÇ$ÛÀUÅÇå2¬>q^�(²KTÇ[‰»Ð’¼äÇçp~çýY—ª°‘c9C¦'½ ïËò$íôþ,éßS~¹Ö Ø4¦ ËçLáQgØÜ¢K1¾Žµ§Ý¯(¤:ˆEûë(ʈP‘©�™¾FÖRŽÈÿœ‘Ÿ¥ë·zc…øŸz–ît_ ƒ…]Å4®ý²±�Ï5Ë}êô`î>dw¶Ã‘¡>ŠÚ"ë¼?öï¶+cØîîiœÛÕO|*� ™Y²ZÉqço•�‰ WÄàÈvïZ&ÚýèŽ}«¤©Æ¾çBf"•órïœQé߯¨nŽ|?Íuù××”EŒ !O`(¥(¥°ØÈÑðKf·3·‹úºV,ôÀccÿº%qCâÆ0ó°ß°Ÿ¯¸Ü‡O¿©pª�çè ¿TºÀBÓ¼°Oüî9�ŸfLÀßú^šõýŽõÄд06³U¡)¯†iõ�j˜¼1ÝÓø‡çÑHñr½õ½�§/qÎ9`Ú¯³‡¦Þ–N¹“\/ŸéŸ" Fí&—]*ò³šßO\áIŠ}ØÜçíœ[fD'h»cŠ$ïìÏí�öc]P •Ùbà¶nË�é¨u?—[K#%÷À}pvB4Ð~¥-ÛZˆRÖG?·¿¡^b9õx‹ VK¹?É3ñZoü·§-uSaûzÍñAûsLåj.<Æ=~‘ &� Â@û(!¦š¿Ì8|5OcâÞ*žeÊåE³ø‰Ð@Û-{çͪçÃ�“a ‰Ëjrð]]´s¦[L°™n`˜ÙX[˘³y˜jh¿ƒUg?L k:è€B�—=§ÖCɃKB¢°Â[PÕ¹~çÖñ‘µè Ô¸HÐ@Û-K V[«Ãu_š¶¼í8¬Åc…¿.A†+*Ϩç°/x—ÐñUe7h !M7›¾=‹*VfNfXÇ£95°TœèF™}äMŠ_ ù=^b~vÇ8Ð@Û5»å¥ïYc&‹ 1DSµ[¥WÖI™Ýjyø*ù^=eHêb˜<¥h»cQmÔoD�M6Ð�Nˆ@Ò«¡øP×V}PW'Û÷6ïÕ�eªÔ ƒiÐþlsÉMö-á…t«¶w Ý×hqvEÝKßöø¿Z†šðU�I!ùõÃ÷êFdr„‚­¨€k¯ŽJñçW¶80ÈêWž0‰í´ö <Ûè®Á‚�Òü�s鸯ÐÄOŠ ®rØd;Æ™�àô¡W­ÁüP~¸öÊX{=öñ]l:Iø¡­æ¡Ñ–kf…û\;­“¯ëW­w_ QˆÆ\׊¹Â†;J…ºù¾ëZ™jÁâðƒ–^¨k†XÙk‚é UÐ@ûYÛçoõˆgQóú s�wX§›Ú²\É¢ I/Çš0Å`êRïäÀ©®Ð@Û-³§“A‹ôÆÑ ¥ßz%1;>E5A�þ:+±åòTØãT^¦Œ·™}* í-›! 9òáµ<ù±yH^Öù˜²`%·haùÔã¬èD‹çH…ê1ì3ÚAÛ[¦{/Ào¸NN/DÜ·—Î~ý–Ñü¥§æš¿¬ç78nçNØ¥´ª>¿ßÚ¼à£0pÉ}\w£Tƒlu§çwàYÅŠwBžu:–?ƒRm:iIpÏ3 vñpË­ Þ–šk®ÆŽþñó;?àù½äãó;¢Iéà�ƒE–…a£NƒÇÈNÏïÀëÚ�o;ƒÒ襳e;dóUJGæ8qGë? �2c8§gS “¬>VIæ�ƒ´½o—†ó7ÔE‰Õ¾Â릱¾Ó·~Èþþ_„à `�„G?·ô‚ñ8YÞAÒÞ¯ÃerEF=y$Oä�2Q~vŠí*µ¿®ù–°×ÿaﮃ¢ìÞ>€S‚„ÒHÒíRŠÒ] HII£À ²(Jˆ¤t‡°¨HH‰Ò"]‚(¢’‚J)µ¼?ç¹ Þw|<«Ï™ïŸÙ�9;³Ü×uîs.ê7Ôá<ÞfÞf=;PŒÐzŠE)ú–»Sä<›XÄñË3îmUO᱋2ÀFMøÜ›?ˆ'Q•"{ëübÚr]ºnÒ"¬¬»’^?��Q7Š­=8)Àõó{­Cê)[êÏw�öv)ü„7j<íZÀå´U=]—WÔ´¡n¢ŽL‹è8¼©4Ë}Ž#oØŸc÷VvЉ\ K� •f—…5R±ÚFÛ>q~—Þí%:­8íýÐ/X¯ý0Ì·‹§´Ö¦*¨‘”·�›L׊WÜ"¼ao–bä¤-pŠái�ºjíÀþù[u>ú™w)n¡rßj;×MÃb¢À"8©÷Ê»èÔ­ˆ‹ÛI�Ã4›³'{§'.A¢$E0JÑ×8Øšž8X Ë¹’…àõ¨’èð˜¢USìGfƒàiM-¾ª^h¢u±Y¦AUÌ�Ç•h²'µ‡§©Á¸ò¼QnUY…&°ßÓŠgG°V»2”˯àfv¯q”žžeAÍÝZ´›mp*³4RË©–µð'ìW-‘õ¨ÂíÖ쥢›«Úª(ïºu:/é44ïÂ)³“ŒÖ�Gʃ7ð:*º€a– ¸Žêc+PNßÝq2)_¥Vê�E�¯uÐñÀ¾Kn¥šniÆH"©'/?ŠGûçìp|m&»˜’áê8ì6�²ì£�óÕ\„81=&2s¢i®èàf¶¨9ÉsÀ¶ÇŒµ>8)äÈ� ŽÊY’¹í@5²ŒI3Þ0É*šÏxv�¦ŒÜ»†þTxj¦ÏÞ÷З>ëÔçþot4�&!±$×�·0ŽõºÀ�ú¬jf§Ÿ'û¼±ñÚ‹y…ljaŒXÖžd"¥='¨â¹öëÄLÏb ‘,p¶™QCçdCÏÏ@ïÃPýXŽƒs#V²t詺|a tv!´Ç }‡z=´×�š–@åZ¸“ÑX4-$Ùª× ý=�åMÕtîtŒ]bV°zåê7Nb…lèĪn°‘KB.ý|¦£0¤×@¹¹®ÕaÙXJÜ"·+×ax±Óç·êuC×…IçÁ¶ÃüÝòRºœ­RUˆû˜$y__ÓÈ}†¸Ü`ÉšNGźëCÕµ5«|`¿§½é¬²TDñÚënîçÈ«,)É•úò`xayO{ÍÎB‡]¢ðƱY`¶MïzjY=“ÎHpKüÁIX…ê¢Ué„“öI3·™†¡Np‚Ô|1Àê00`¶àØÙ %@¶ò”•¼’ñÑ1ûÊ+w,¸å­ñºJ„ëã}š•`à,sì¿aeJe¼ôŽ´õÚ8ŠÞzU«ÃNû+ºÿâ’dÀ¥Þ뢬¼‘¥7IFåìÏ6ÛK; O?~,¿8É¿û¨Ut@#³<§a»ÆTôú{üb×%ždrFsö»š¾´ ïi#½ðXa›c,Gˆ`umAõqUC®œ#6“�8KTYQ½ì¿aSH–+²ÆŒM'kç rLæFï+Q²ýŸ¡öç»­R„³ä�8ísx:½)YËùáÝÐþ 9¼fÿd¢”œH5‘keåã­úƒÐ~%³òY’Ö³×y*Cr}N6øÝûÑiiÍhÅztL%£;(ÞýÁŒWæÀàL®7þá|z½Ý„b~[½÷MóŸï¼Í¶Ã†Æ²�‘íkäP÷ÙœµX$×¾ —§ýÊF^¿ÍaO~ Bþmt"…“7Ò³ëîFÜéIð¾æ�çªò÷2 t$x#œr‰"!š=xéòÑ¿‡6þkb®|‰^lz#p–¿l6“ÑËò‘ôRÏmvöéÁÏqߌœNöÇÍL¤� }IxÏFBÚ62�Hõ½ìnÜHn ܯšz3Ô“Az"×¾—ûüz³N?-6»;ûVjó0ùúã0 Õõõe~Çß' MdWd‡‡Èm ºŽ¶Íð•~›3ŸbÖ ™ç™çAÁÈaä—&œ � Û4î>ûòŸjú|^•NR÷–¬eÓì¤ë=#ý­zÎÐÿú¯œu†ùvÕ*ñÓÅ‹¶ù‘³¤õ7'ßIK<ÓSV Ud}\øâêØÎJć·¥~aÀ€m—].0Á·d¸æäŸ=u”d6�dÇŠ¼Ó©0¥ä!Á» Ï�«Á°+ø��Û. Úk”'\gçîû|Ò�&U�âi¬Ãb¿ï ¿;Á}¹õ†É5â®0î�ÝÑÀ€ý®v!éf/‡¶�&¥ÃNÂ�’äɰܽÛqçå–4ž5îd‚×6ÂÓ¹\vU/e 5›Ê¤gOÊ‚«¾Á�¹'÷mU³AßYéç|Îâ챆ࡨä?ƒTˆå¬x⯟>×oæà¹’‚�EmòóšMR³ÅïÚ\× Ôñ\aÇ 9Ô{„ë´\ÂVÏ×ÐuaÒŒž?Ù2ÝÇ›K '¬Oð©3±½ âºãRï'3¦†(–U–MåïLHÔ§G›"€ýûŒqÑÉå#/[3j´¿ºÃVBÓYÑ<ãé¨|,߆:DÔ§±n�0L³–´WÍÚ^zå0R>Ýçl”˜ù‡NövÔœh\fÏEKÅîk^~`¶¥ˆ¬ ²_�§]çîlÐPÑJ¡x?ø‘Ü@�gFX=ôÔ³<õ•ü•@E£<'`ÿ>»â++ž›:;'ïX«û`mu§ç„LcÞ9�È+¢¦Š¨9yR>JÞ"`À0Íx)7&…{¾C¥ÕsòpŽZÉ{^0 Ž 7~SÙûº!=ÓuIZ/^&5ÀÖL›8�>+]Š ›1Ùª^„žaÀ“*³÷­÷ÅéW�:ïg(±¼xaU8Ñ_?6Ka7Á�Üûçõ"?¤^¤ú¼ÓaíœKåm.vsoæ¥`†tþ­êEèº|º³�uÒ.­‘²ÏI[â"\> Øï`’æûèck¥÷†¢©óW4¥1¸å×|}$Ö §0š¿ÎŸ¡*!fY‡‹8y%¶ÁŽQ+Ex|]N7mmdjûÕú\+g»éÛ�hq‰�å)`Ûc#Ýò<}¨ôg0cil‹Ñ®þ¥‰ žÆì7¨ùÌ+‰)šõÌjˆç�û‘‰«•¿oï0|%Çf5�N±¸3j’ü07^'ÎØæD¼²VEʦ¾o4¸دY‰UÙƠ˜�Zæ—x>…Ü÷ eڠϪ-‡Uœð21ç‡=NÉŒpžÝêYz^–€i`ÐT›„g…ÕIîÒçë¸#Ü�Øh=ƒÁ³IJOýÕtèÏŸUa�gUäç¹y‡§d¨;LpçùʃfS—Îmõ¬ ]&�‘þ·Ùhr4ÙpK¤(“Õ;úÃ!j-§n<æÕÒ#ÔÀÓ?—lqÍ"�_rØŸmwë‹EV¿ˆAú+YÏ¡k2èQôä7Àwµ”*É?Ûú̃èa0̲þþ!,³H¸]ÏálÃÕ½í\•vgè$^½’«E_e-Á{ì’DVÃ{[ f™@h* >ÎÃ"K5RÛ>®#ÈéS,ú¬EóòBCˆ°Ñkiä|dÁ`Ž-U˜\ÿð°@?lLSÅ‘?¨ZHÖR­ò97ì4ß§TÚ£»‰ûÙ»ŸE÷ ðû÷™ãaKs‡}JÙá‚tšñ-3ºÂ{hjëÏ> &ì4FŒÊMõÉ2ë+�ØöOÚï}¢¤Nw¤cŸWt�»?`Š$ï(M¶ZÞéýúÖ‚¬íãÛ>áü ]À~Í<¢{)aΖíK|¼ÔEoÙ®+eùCÏ�ùé·çìdæÒ-DŠØmulϾÓ]„‡fKý5”âö¶°=D4#ßFQ4Âc#ÙMØ—OWq~›SÕÚÊ /»µ‰@2‚¯AÇt,}/ªQ72©oNú÷ÐòÐòì~P^ö÷}�{÷—äD 6Â#)W¾™®î±Utø¥÷NÜCÁ7Ãôv3X­ÉA›©{Fß÷%æè�bmäиÏÈ÷rSb#g'tŒ÷Â7Ó—»"§$&ñ{icöº§&qh�9@’ÖCÅ^tз7|üÇ™¯ýÄÑÌѬ‡”™t< ‹‹Ÿ … E4~¯ Üh3­�߯iw”4~í~í&2…8…8’µ6‚6‚gÆ÷C{LEêün%\Ì&\c�ÚTq—·ê1AïXë�- g ´»m™NhzQË÷Â9DCò¬1yd—´¡V`OSüóù�S8ýçùÆC½ðSœŒ-s«õ×¥Ä8çñK� º.LêõýŽýÈ̺ >£]½9·†ui¿v˜šÅ¾ÖIJ¸T»r|L’Ê?%(vÏ&vöÏY™µ�=2gR°·5ØD„”ç)�ÊB¡ŸÃìNŠ /*ƒ¶¾og<2"‚€m�iP~tQØëÇ5§N¥¼Î;û8+4®³)«�S˨(Ÿ˜Pêˆ×ÿaB°Ò�ì¤éb_ºŒEéÛO=\'�7Ðì¹î•|¥;qÜÓ£µ­n* «Ûv7°?Ç´.åÔÇ]Nœ'�Käf Ø[žW-vß"|)WoâîÒ.ûÔcšó6‰mÀ€m—•&øpûŠ¥Ûs‡$d6»^]šwvß7Ÿä8ÝÈô~uy9}j—cÊ6°ßÁª³Ê®‡5s¹b3ìÊšÑyF'DBI©þ—p~Õ“>¢›�R˱8 ‘À€m—¥]S—Y®#¹¼0mËmÈ@Èa÷Š5‰´‹±ëb¢ø92·Ál!Qº§À€m˜QÖ�ŽLúxåå!C÷-¨ Yò¨û.‘sŒ©~54ç�…)ÄxµÜ€Û6»émâUc£BÂm#Ž«í¶ }@Ó0éõ‡õ¶²Á”» t!Íü8óajtp`Ûce8ŽºQÑ’)¦F±I£âŒE:Ø~ù´'µKëêTž¿Í$^¤G›Nû³íBNÊÕbaî§ÚOòîé=–r¿ˆƒIw{üo-]Gâ’Þäqµ•WCwë^+g¿æ@Ý'sƒ'vžøk�uÃ_/óYe¶Ú'ƒÎ6ºc:ç Ÿ�R¸A2ˆ+{X g Öç˜å–`3ÜGô[¢já‡ýÓ}2!È>ûçw±÷É×ï_on+>˦~OÐt«}2èºþ©ýîSŒê±ø+qçyH†éqПº®ÔQkçÏ•¶uY©r¥ËÜC:�®¥ د–¿C¹Ð¼~`?[È!Ÿ°':ç©sä õä½ÝjÂ4®1”ø¤MuE¶]æ²O7҇Ȱoï�õA¹cSô 7Þd&·�› {ˆ2fM›¡÷\«fÙ{òæµ7j4ì³Ü¹™'âî_ƒ{¬á†¹æ1Œqá‘ï˜'U :Þ°Ã%½f™GÒʉ÷Á%Æ„¸Ý³õ‰qE™¼-“GØVíŽÇÎô òIãx¡Î دګ�–.º4nºÇ×/ ÅËK·—P°ï Ã=mV˜q6À�2ã©V5vº*0`˜f«TU‡‰ê‰5^>ØÝHsà8ÅsLšýú=c|g¬s1oÑØ¯Ìù2Y|1T·Z¿ßDŸòŠSï;syÌhµD�zi«ú:«XÃóÎÑ�Oܼ°¢G» ÈÁf™pº„`ªõßRœi©&Œýyý.©ß‹?×ï£Íð=®v™vH²&ÃFÏ×[ÕïÐumÇ=¼À€mÓ¥,•N•<­’×3$à kýìcÑÇm˜Œó•StG*©‘ñ±Ù»÷Ã|;Ã4”·ªãùÁMƒ†¥?I’©�À Ê2´SàbLk k÷2àU‰ÕìÿblÃïgŒÖrRM£€ ŒQ3tuU(f 0²ŽͲ ¾jóŠî°§0`¿ƒYŠbO{¾ÇÎzai[ï óZhwc{£}èF•tɰ8ÇS·ÀPå:Âõ�À€aš½2{ÁaU™ƒ¨]´F™—[ªfˆ¤p«µ:‡š #®¿#ˆÁò£H—÷l ÓŒôÉ\«ûXvÓÛZúüxS[FK´ùóÿaï¾Ã©üÿŽgdEde‹Dq"²ÉÈJ²GvápDöÌ(²�“=B(d‡Œdd¯HÃ¥%#¾ßó“««»áw]}¾¥>wÏÿ—s]w×uÿq߯û~ßï>éR:ï­Ãø:ËãñnAÿ´1Y—C8¯µ§`a&‘ 3”9Iæ œ%ØH®Ù|¸h—‚-ðn¦·å»kS·f ˆ�$õ¬}z’ý´»¦PY«õ ³MõÜ)ŒùwŸÂ‰…FT/cDN(uù:®’§›wq‰FßÀûñ,áøwö �b?ÛPÓì8ÅŒ\œÂÜn}8Õ32­chÿ>' pEœ•§?îz°š”nSGk­x¸MQW‰}åÛݤÕYžýg—΀öû¬q¥[¶"ƒB.dNe¶¹iïã×ÍÙ5âà¹l+ÕóíÆÄMZœ‚0G2Ðv–åÀ¸Vîº1ª¿ð$h¼g¯¦ç#µN\l· ‹ŒNsèÈÞµVBÐv–=l°$}à“›ùÔ߸¥ß.8è+øágöwK×¢Ÿ)Ò¡bž<Õî !£ŒU…ï§XäÎðˆ6Áp�iÅÛÝOa …Žšô)žX`Æ­J”ʸ¼”²R—z.n ZÞ‚QI£™{ô 4¼NňYË<ÅÃñãoÜOYP|úÑŸQû‚÷»nŒëÍ8äsÀ·»ö—WäŒÎ¹XuÉf�W*�eYΨ#¹(Ðþ+^Å<îš„ ‘8,}DÎj�°è²{“ÚŠð˜‘�±E<ðÒh»ÚÎ7WÃ3§+(œÂÉ2õ >Ò­:2ü¡ù/—£¤%b�1‹TR®�³Vlíï1L?dÕe„ËŧZwIOe$ç¼V=y©—’Eÿ ï”ÆsïBÃŒpWæ6bÐ@Ûi†2»öŠä�†°(¡œ8î8iÿ£¡–ÔØ¡üsì«Y0îq·ºaÑ·i*E%Ð@ûž™Ã Á-IE~Júg\›$N êpš'ÇêïOêÀällЫ¼¬›SU^¡ ÚŸiEóc»ÖºÓäéî_ÁJïýx¤ìÂáEïläoË¥$&Æ™ôŒ9¬ {__[ ^�õØ9‚°Gó ýÝ6Côؤz.•7C¸TZqzÉ´lÇX&l‚œWÖQ ‡-]5=hh[´ílç!Y}̺¯’îáI«Ê+wi�!2fØÝ%üõíØï§ÆEiÙ &ì@íaårå\4¶Tõj˜²ÞUk£pÆ ÚÞb´XôöòòŒK,/²�HÈ­Aû»ÍÂoQçÂãÑv™¥)î½B¦ˆ«�ʰë´)O#NÐs &ˆ.v¥³#  �ö§š¦/×]�0$¿ùI–кÖÀúÉ“W«†ØÇ̧²—œæyhJþ4Ðþ6íÄrEJ�®Q»•Ÿ­�¿'GÆöO¯wíï±Ãrávb·o¨]ÂV�›˜µ’Ö \Ã75t–�yÕÉÁUfå–˜rZåvkø¨ÿû „H(°}"Ä.Ÿ‹šZæ€OŠ¢¾N™yvg/^óÐKwÔ×õžL˜Dׯ™EgTÿ9nê[ßêXÏ;tâûÞNYvyvùiÈ ÿ—±ô~Î�h«~ѽ¥ªØÌ<€’f­«To¾q¾Ñ$l³\»Ídòü6›€ß$Ú*¥]-: -,‘o ŒÎ+YPëÕüfÈ‹#å\Ê’¯¿U5%¿Ð›6¥1-‡¬ùî!EZêpö|?Ž�’˜­-"g@˜A‡AGŸmŸ­•#ê^ëfõî_ç2{â0OaOa›ùÖžÖ¸ó,Ý,ÝÃpT pæl¤R³�£+.}¼šÀ¡²²}»™3p~PÞ†°�uîüH®Â°t?ܧ—q=åÕy*Á êbˆ²Ïœ3çÆOk ©ÅÎeH“5ÎO9èZkn7s×ϼ—ÚÎ7?ÓØ÷®®yóÄõ·¦ÞHè‰öhÈ+†È²¶×^{ê7�W ›}]æ h¿Ê<òõq,yiýBáw¦…çs w¯ÊÀ CåâóÕùxï.ö8­A¯à´ƒÚ¯²@zÝ\þ:Kgß'SÖ”I¼¤�‘ÖK¾ÃPœÞç•–›ú×÷t‡B÷"@íO5—¸[/ލi©’Yãá—Œ9i‡æÐÿŠo^ÞfIáü‰Ç1çŸÉÉç°¬z&ɼ¾V˜ò,äLtÑÇõó êÌÑfØîúøÎÊû»€ð�0NÒJî‹N§�ì]š©¨�óÖž«‰8»(ô|}Í ¸¾Ž&Ú<®³É"9ü<¶ÒÉoa3Ò1Û]_�k'íÑó7[ºó«¦’‚I\³³G‹˜Øžpܶ¯÷—œP„IÉK%qwÆÄjÒ¬À@û÷æ ×ÂJö‘‘ª×e¬î°UµS†5½Šò´• :™gN,àó¨nè(h í4kNy~Õõ|Ûà3¯l:²'! vº±9Qìû©¥2#Q7Òû\Md{£Ì¸¸Aû»-ñø*ìÎÈ«”Hgƒ²Â™DÒ·Cïöi)rÎñ+…öä*­æ­^“ÕÍ…ƒöï³+¾ÒÐ"Ô´ J2Ú¶ö\éØºéí¾³’�r_J«G\0�MFÉ%ã* ´�f\¤°›Sü}Þ &'Ö³s²�›êÊxºè!Ãô^VE¼iHMwXæÞ/zka¨¦L^^·‘(ƒ‘Ìéow¿\À-^nå[ï‹9pzú²¿ŽèÊ’Ël€ftžÔr’'b„ñãûEnÀý"ù§ç1fv9äÞF‚·èÓ݃hS¹·»_®Oï�“�TK�k'Ä­²S–9ðWl@íO0—¸†…�AdÍ¡Ô!ɇ”¸+ShójÞ <ìU!Õ]HàN;-ã’Úβá}•Z»Ç­MeU¢ë²{©j#’Úüê›±Lí,g2¯­ ‹†»­Lƒökl¬Wf’³?9µª'�aœ/Ð��Œã>éâ©wø&ÅQ£Ê=¤Mçk÷,€Ú÷LXñþÛ¶�çÒl¦“ë©Ç�o�ëÇ?ȉVQ¡k…ïYýXE̦Ä0TÚÏY‰i0íÅG�QÁµŸaû@îéH¶¯U›�)”žõÒ7↶'¦‡ÛÍow­ \/‹Ë48d FȹÊêëDfßïk»;Ìz�îF­g£¸†Òó™�_«B¿ó­ûcFœø—óНMðÍR-ª"¿ûÍÈ­÷ähп¹í¬5}¤üsgÚIvë¨Ëu�]Å»¤Tt3dù\#í_ç:Îë‹nºù]º~2ÉŸóeVþVx Ú¾è0d˜œ¾ R©wsåü2¸úç„· .ñDgˆºÎ¹WÈrýýËçÅŹR›í�Üìí^|³Ò§—‚¶Ú]L":�x®�oUñÿ„$†ks‘›•ê½ }™yâò·»Ò-—ŸÚê.Ï*"«Dgn\f]ôý´ ^3ì'ÜO¸k2ß¾+ X62©A¡Aa¡³Kä‰ûfÝ_WÃèÿnn˜á»"»"þ[��JªE–­sÊéÓ^ŒÇ¦%):ô±ŽÞœO [¾´Ýýð\ßIëîÿm6� íf‰`2}Cs`4X±Ùðf;—Ú°¾2ÆÕ ÍKñÆ×�S¸Åæ@û»Mën}á!§ê§QN£rf '¨µúd=¹µpLÄKÒÂl�-=nòAÛY600¼ë|„Šeß±;:kôm•–©EŸ?—˜¨]÷c-Án·�#©áÊäÉmgOH æƒBEâ#ý'œf EÓX4Y dø†a¡ã}fN ù³ ý=¶\¡Ÿ0û _3tBUÁ–;°šOÊD±ò záèû$*¡½{÷ö x8Aû÷™í1#k¹;a¼ÔªÑÍsçø÷SÖÖÛ”RàwêÁÆ¥§û¥ðjʽʷ ´ßiû½ˆá·%�OŠ*º/Ý»jà´¯£,ÞtÏ{$cQÊ¢=Ó'Œ;¦›´Ÿ37Ä 2¨�IÛòQ®|ŠÂ×l rYÀS¡·c .ÇA}މGjä7<¶›1¿±Ö!UFwÍ2Ó$ßÀõŒ¯Ë%XCü¼Þ¾ˆn h¾eÑ�÷ÿà̘Âh>íÿ¡7üBÅ��®µVŸ .üÝ}·æÀãÚI³¾?ÑÏ›åG§µ)5åÔ°.3ª…*3´Ä–ŸÅ"'ÊöÑ�»ÿ>ö@‘ó�=¶ ý>+7ó±rÊžâ}Ѥœ˜ó1¥Âb�¿õ<i…9>³…ïë9·´ð Ð~�)“½³?…‡ôç@)‘Ëo0AmÚ³BntÖ:I�Ê®¥“•‰�)³Å˜�T ´ßiKpK êä3û‰ÈsEVÓ6ˆ£µTû¼â¯ôƾòtki­›ÝÕk±´¿Çθg×ßðˆ] ¾‘ a»J?îFµà=ã°å�É»ËDVI'UÌc'[AíWYYŒ‡ž¯ Aª$8&½ÉÁoyÁΙa!ÎvæÓÛµ••Ôi"Ûòd‹`Ð@û¬:«tQ‪NÜÈìFkùPâÝêà&nÌ…PEjÐ~�•cÚž‹Dˆ%è"ãÂÇ…é Õ1üó¨Žh«•ÕÕ)Às²ÃŸÞ›e�©gÜhm-²aS*æ5Øî9ð¸~׳IC:%䨻óh(ûþ�ãÈÉNY˲Ë`DÙe�ìY²S2…±”%ûNcI…±„B¶”"dW¶‰Hvc)d-·µß3GNOÓâüN÷Ó=u_çýßë˜s.ç\|¯ÏÌ÷ú®%¸ò“Ž0àm~@^­¥Õ)X*{ÞEb£Î›.ÿ`œ|&ý”`€ý¬á9>]4 éçŠ õ‹êðÒs¥ÍU*j0Pòu«Ž:ÎXê—:�Œ °_e—XTwÅú‘÷1ü8¨8;6Í0ɘ6žyóùÅ騪Ô3bœéo2 ^žj »ìeûƸ÷<_^¦nƒp-¯�]Q.ùŒc¼ø”‹ä'hŽ×\Jo »Ìäð�5Ý`y÷Á¦ë dóuI Å™ÍSG¹ÖŽÇÏu ÊìÑd� °ŸµÞ÷Ö—ôéÜô�G¯zÀ¤®‹(ɵ”RqÐï:kQ”q!ؘ:ãÅ©JÜtuÀÃ6[§yR(BR·ç䫇Ád !t�S½Ä¦³_¿eLoMõ<ó—MûÇœ¯P µ–#õë0Ÿßoošû$hö�»2f²^j@»²Óó;æYÅ'½ïHFôt¸=ì±aØt0Rͳâ!EAêõg)Ï5WÇÿøù]â;{©=SŠ9ÙÃÊárnáÇ6ïŠï´—šñ?Ÿ1ØŒ€aÆk:Tô_]6®ô¡áUé ù:áä!Gt„aâ•3ý—„¿Ž!Ÿ]]Ëp[=º¸Ä›ÅŸsÈ9˜ò­úìl´Ð¹¾‘ú2_E_Åú¸K_vUçs�Û �ÀGgF–Ûê²¥þÛF‚°Û�{÷4÷o•¾ÙÁ¶­D�º¤·³(CG‡BGðÁGä[… ‹„àHÔnucè�U#“Tø·’¾¨[=óÌ *XN’-C™a60ÔNìÞ÷ pKK�Ú+µ—wî ÁÁ · ·¬¢´¢4V\~He«ÕÓ_'Ü•�™«¥«e_Þ Ë Kßå6�6ñ11Äö=Uòi&„jÒÚ7àâ�é£h4nðÞi&„y¯ÿŠw;ÚXªä¨µ«åŸ*ž&©ßè烷c=aêT š¬?ZA KŒ¿K¶0ì·s¬CùëzÞ³Ö›t› ôŽòuàIüÐQc‡¼LˆÆ¨#µ˜H}Àûÿ×HÛ»9“ ¢Ü”‡’*-á1ZF$²\ù®0ç„dŽCX€]/½ˆ· `€ýf Æ�ñ~‡›Ócm_«õå³ÔâÆ5®s(í‰\éˆÔán!‘ªµÄw¶Y¯EÏa›ŠÌ8HͲmªåckõ ñd>�æçHK1È­·Dq8�TéJÞÍ€†mFÞ±ðÌ}ìn 뛆‚D<Ž3öLÖ›–/»2ùÎq¯ n^ñúöw«ã#>þð’VÄ.¼šCÑæJǨ}1çSÎ$òëþ:çŒÀ¿ŸézöÝýÎÛó)øÇ½JSù>Fœ©…œµºÅÙ¦:!Ä�Â{=PrÉaí³÷q¯�ivø»­ÑdÚuH'&ìþñ|Jc>eýé½Ô̾×å`™UW�xH8‹ÞN³Ìëú»Ïñ}ãý”N]RšùÂ�bu¬�tžÕO�Í;œz¶ ƪÚs®îÅ[ÖåÀCÞ¦’•È~<»šØ¦øtµ=Ê·Jt½Û>dÛùòÕh®êcF·hÀþ}&Kä ×Ue÷d¯¤b¢dmKᬑ�¹PÒQz†¹âÁGªÊï>ÝåS€ýsÖ¸ŠT.Ï¢U‰œÓšmn"{ñ—ÝŽÇà4Ÿkµr¾ÕŠ¼Éˆ_âF vYD`õÞåÁz¯½I\zPݹA/IØ•!�àP2.b‹&{¦ó<�0ì²§õTU~ùÙ=�VÏú\ þýÌ9â^™FÌ3%ÆûÙ&O´zòQÓ%iŒ€0×¾*ð,whì"—DÌñ+Uß}ŸôöÚŸÌBšô»?¶È†/ý$Y!Ëu±Z›®côènƒa¾ ;(¦VËR4¾†mJ˜÷Çï ÁXûÚÓ~zÑY¿‘KEpP¦3.…¼Ð�Ö¾˜×åsmÆX?IO¾<¡ÕX–ã¾p8°?Çî¯í‡Š_ŽJ‰�”ãV5ÐpÚÃí;œß¦?‡û€g”gœàU�a-á€a¿yšŸÚ˜.§…ÅPg›6žÙ(fZscƒø‚ ÇWâå’¬ðJ´!úŽ-€ý9†ÿÄîq®ÇèÕ‰¬Ô¼7ÚÇ.vÑq˜�à82eÐë[lžã)ÌÖB`Øf ¶!o ¤¤IUd‰PT} ƒÏÒ“ õyÖr B(¯Ú!é6¯éýš€ö=³ƒðErˆM�¥%rv¨ü©´§ªƒiømåHÀ°Ë„]P†¸'¨gQ V#{ȪÖß6ôxHße·2m7„)ŒD¶ãÕ{©k€ýs&’X“É-¡b¼>ʦSUx:àZÉKŒ×m&¿F¸l†5q]‹aT”¹د1ÓS³Ð…Š£IEÛCòÙŽ4£«Øt6YyÓ9ï.TòèýðÍEæs}çýmÏY§?Íáp~mâ=2¼Kt¾bx¶…¿7gÕ°8 Aÿ=ŧ½3èŸ(X–+¤äÇIäì»I¢²O—&‘÷€^ÜÌÈ<®(éÏs ZÌs²1÷:`¾Cýýc<¼´x™²¡šJµÄɘçÌaÎx1ï€ùzÌYwê´˜tjž•;½ÉÁå3E¤;ͺ1ÿŸöÇ�•ôîôLH A›Ác/Í´Ó8‘lMÂí8•õvŠ7`+?>ÓQì;û�,ÍúÉ'h|‚²;qÊèï´‰é?Ÿ�©ðl`v¸dÌñsÐì�ZD5‹‰~_wÜmÊKªë總ó×)=ŒE7\*3€N¯Ð/á¿jìÿfl”ÏÑáÐ÷Ä}YTsTs•|ðËäD?ÇÝ»�aÎáutéQü­>,æà„�f8f e )uoµ'`«¦ÓÜÏ·âsÕÜ®�Ý{8º2ëÝrߊÐ�¡Éxìš­ðxÏ -oýVÄü¦kMwÖ•­‡ŠÍNíM»¦H_ÿýèèb™ÜÜÿ bgÚK�Ù réÊìÊ|¾‚‡ß s«šK_–°ÃÌ÷˜ï1±“UWª®0^›@L 8W›mßSÁÔ[÷ÔúˆB<µ×®b·«·@øñ3®;}‚y¯cÓÃ_aAnùÉHg›µ=ýõ¬2Ãá'ó:!Wê­9Óéi8÷ÎFÐÐ<¤Óذ)ì÷´ñö'ÖÊ©G}˜Ý-�N†ÉÈ\KyÅ]”KÙÝR½»ÈqTŸ$ºal°?Ûfö¾°®œKg"Ê’zxT®¾lS6 …â®�6ñYœ4Ö ‹��[.ÛˆÚ–œÚëe…)Ö^pRV0==v¾âê=F+>%[|d©X]+þ‡)”4#Oј3`€ý/ì‘Ê#§ýu:xʾOÖG Ê»þâ•aÜEË|IUõÀ2Çë\�#`¶Ù_Þ½d|öÅH«Òò”™¤ <¸�]‰Ç¸åä4ü(Ã}!‰[ÒK™

Àû]ÍPîˆÀYƒèx1»cGI@µÏCë&&ƒŸ ¹ðŒÚM=å)U~jCó0Àþ6 㸪`ÊÔxºf¡0×lõ@…šëïÞCØŸcÜö*1Î2wt.âë½&JÎY-ˆîœ9[jU$<�$«(^IâRQѺÓÌsήz�´›sÎb8_mH±jGØu`Qµßb¿Äëz½32ð6êÏœÁ3çÆO{ éeô³¬¨ç§\î™8î4ļ®Ÿù]:`Øo6I<=í bçÉënO½•3•î4PÕˆTæl­ é Û]™}S`¿Ê®š:a ˆ‚Ý�–$�Ï'%XS‚šG©Ü,Ô=ro©¶ºJØ `¿ÊB™MòÅjÜý_N9Ò¥¡zï¸Üï?"ìºî¾ú,Í,|2Šo€ `¿«yܸýú°Ž‘6µãnâˆÒQØé¨<æ_ñ~Â;þ ¾›DÃvb3y…¼O^É c®¯Õ¦¼‹ù“=̈üÃÚóN³ì´¾ÆüÍJ?ÏKç ˜ ?U…Ð9؉xžòŽ Ãô…~ GïµdBZ³¯¯�`¬¯÷n]—nêñ<1a§rÅÔw—Åë;­¯1¯ ›Îèù“-Ó}¢©´h’ÈVWP£„•«‡„÷Î¥º@ù1 H‰‚ªBŠPûõ$C†Í3Àþ}Æñ„íJõSR¨F™¨l³—Öv> išˆóvR ;V`Gök¨ 0l³fDo°§EËÀ+Ÿ\&ê—‘,Î&Iyq<û貯-€2»=­•»âl„û³-Y| rwxq‹¯½þ¤Ú©dªwƒï)�4øçÄ4#Í;ó5× ÖB”Mò¡€ýû쪿"¨daú‚|¢S�þÃÑM›;ݺò ùãŠz±WÁg”S”È©Š ÛL€ ’6%Ö]õN"5¹¸Ž‡Ÿecªäíam:þ$öõp}z¦ËŠ(æóâr#\mĤëæ¹2ÅœÙNÏ‹˜{ðe�÷¯óÇëWŸv 4–^]öXK 2ŒÍS9Lò·Äýñó¢Ðwöðk»§òŠh«]¨`áJ°Ófô»{–ˆ¤0=M×ÿ9�€œxíà )_׫µ�Ýø{M²„hùב鉢c�³@÷ÞþÜÅŽÐêoez ³ÝÀÜQ™/Cá¢pM¥bp¾ :ô¹µ¸íŽú›˜¡ uömÕxëÈa”C§üüAtûV$Î[­ ÜÛj%Ûnj�¬ º$ÿ·â/A—Dš5Šwc+Js/? Ço•%XË"Å}Ïl±`�Ôw N‚óåµ^nÒïqð6½½Ž½Žn­Ïƒ5̨R©RÁ=àz&õ4;Ž­ˆ|añ ?f-1-1ÈÈ”KÌ'Í'µã:Å·ï)šOßñµÙ:çÑøZJÜfμƘ.´Ó ó^'òëº{¬}ÿrèúQÙó¹ˆ^âÕ €ö;˜Ç�úÅþ†øêCé¯#Si •7"Ý ª?€ŸJtiQ™,ÞÊPWòÈ »¬Í�Cв׈åh£¬•X›Ûµ¿&6¥% ®y—�³ÃLvȦ”tŒ×ê4`¿ÆF»”&ùûRÓ;A¦r¸V…`dn*áåIoSî4ZAËŠ=TM5{ì{&¥ñø]K›q¯"—Íäfº¸Õ”Ùͪ¼D½H-¦çÐ=kOȹ4YPaE€ýœ•ÚD0žk�‹¨a…ïWÄ÷ÀXþ9æóO³ˆÚC]3K!PkrfŒóüNÏ?˜{°‰XÏè�ò¯qúÃh¢/õù;D;î1ù˜ÁèÝ(k Ù;ùãçÆóìÓ¹y"Óò´mf»‡Î'G¯\Üi­Šy]Ø´ïþßf¨›pŠ$G,˜Õæ-ÃÁ‘�fó´V�!⓸Ác†oZ…[!„dæû³Íè^]ñAIXeO,hDÅvñ(}£Q·²·�¡‹µliFô…øg�^$U…€a—õ÷áXÄj9t‹Ü5^gná­p8G/ÝÛ+7V³ÀYŠßzéEµ@¶p>`Øe‘)„xUÅÖä‡íûx�ÂfÌ¥38 9‹•D‡ Q¨n[9Øblá,`Ž­”›Ýš­*4ŒÓVs ­U°Ö¨xÉ:+ø!e¿$Ùž~î®Nx¿0?`ÿ>s±¶tdQ¹}„^;±yN_l]MÝ…‡´Äí¦”âtŸ1»¡ÊDáyÀû'mŸ/ ˜zG.þeI9òâƒÑà30ʶ²›6«»}‡³–ì[³ý¢…®#©û9󂿦9[·¬ ҿấ’„9(Ör+%âe7ãkСI¸²Ó<ókm �¢™B²­Ó‰Ïxžò÷¸©¿9oJ‹”3öÓž§+ùñùÂó€h†Oç˜þ{w Õÿ?pœ±$)e+[ˆÈ6¶!"û¾ïKöK2˜hHeI’]¶Œì!Ù×J–ÈNÖl¥ÈBÖ’ýÛüä×iZü~çóùú¨Ï�çszdNwÎqN3¯÷½÷=ðRÕ„…ªanµ:FLè§{òmÍÐ�k7Íe~G «4µÈ½}÷™r}fã�F�’ÙÑFd±&Éþ O£èÇ‘´.éûìûç¬ØÂó¼sÆ÷ËF?£“„” 2……î´Ú¼%r¬ 0ÀvÊEy²z à'�g ˆJ®wº¾4w9:m?UK÷~uy9ir¿}q¼U`€ýVžVTÏìë„I¹?mFë99/1±ò'¾œ²¶üæZ±åˆ1PÔ-ÀÛ)KðW–X®"¸º0u>1 Çk{`EŠ”@\‰ÁÐi)t�à ¢?�—Ÿ¼0ÀPf�FÛ’Lq[~F~@ß§!Þ·HòPèÇ[sTqÞd ùˆÀêˆ(ÀÛ1Kñ0r¯°T `³ÂÒp Z§UÓ�~3½ÑTÜ›]CPÏ šR"Wlg¬d¯&kl2,D•¯…é�s„ùŒÆ£ª*…®ñÌþ}‹ñ~ÆS€ýÙv)#öz[‡FK[ÎëB�f1WÐnº·ÇÿÕ’´D®èL+­¼È®z#Ÿ.ìoK�¾N†PE¶j~ÚàÄ!­ùÔ›Ã(±Ý:úÞF÷�çળ¡2‰ýX’„3O(C"\ƒã˜ÔØî2æèM —þ%ª¨È³ÕÈÈüdpÃÄ)¦Uሙî~q\Úeú@Àû«ö⃹£6B[8xù’³P�´ø³"¢8äXÖ¦ywí|ô‰ïv¨—c&)Øn³U’²\üê}*½}ÔÞ$£&êÚMûtþȨÞj¹f-z¿�_=Ø®º¨]�~æÓ¬NdyÏ»ÏqThÉ?—Ûîþ:G?¿Æó>Éô*Š2‰¾–ÿ° 7hAGîÖ÷!ÔȠ깿ܢŸ•\õ}ž Üt¨ºoõ¢ê>iû5ñ×’Š?JŸæ *ƒhq‚o+Ç*ÇBÆ|[Ìë¯iÚ ”…+�ªƒüÔÔf—…Å÷99ôe7ÃÛØL¿3Œr³Q&¥'[ÉV£¢ôAU’T þQôoP�+u“ o†_Òyð&äS÷�ºƒx¥ŽÞ�þzNlóba^ˆm¢©ÉÏ“•±Õg×gûöÀR,§Ð³˜·˜e e,м7ܶÙ)Çï«»Ö G�ßœß<¥Ÿ*œ*üã•À+�’ªªÑgB)ë&î‘Ê}箎¬é�.m7BßÿZÅí¾`@Oâa”bñZO 2Kjç…(~z•*;ÓP¾7â×3!´™PÁ—™Ðp½êá×N6É6ÎëôkÝÞl7B?®�¸·3`€¡ŒŽV.M¡U!K½èÍ Á`ÍÚ«#a–t2†ö9ò±ÚC¥¤Î·#Òl÷Û9º�¬U-·ióu²uHR[´D5ÿ¶o¯¾� +UB]Ð3w=°BH 6`€ýŒi°åýŒÁÚžŒ¸‡‚ Dª\#ø¤”íí%²é\TŒ£‚i6~×-_�ó¸ÉØï`æü˜Snï1ÓzÌ­ªT_ò¹/XÌ»=áÞDIÒn €¶ÛŒ°m®Ñe$=„nü)EÎmƒ±•ùúÙ®n©‡TSz'öê/ ß¹zyÃïï6:Ûb6vÿ‚æ,PÉñ`éÓÄè³8¾ÄªÝ§sðlþS��?½Þyk–¶§•vÈP¢�cb.m¥z~º¾š3�&7»Ç�Pð�šu!fèˆr›b…$Ù² ,r;ï׳„“h³ó/÷¦öˆ÷®uN~rµÔvTk»YúqýÝ{®Ž»U’) ª9Ävè\i%X²jöÔ:ææO<ÝéL'ßs®ºƒÛ‚n± 0ÀPZWh§Ûcõö^Å^hþ™jþáÕà!¶å=QÝV±‹ç]1DCò�)Á€ýûLŒø†k˜¦<õIWúr"ªCt-qŒOÅBì ÚŠŒ©Kßãl•§¹õi.ªöÏYÝr»lI*©\àŒêtCý�ŽqLzK�h‡,¦åòÙf3Âz=vL‚°Ýe™0ðrö•~­—nøuT<_#ÄmsÅ`�ÖÏ;ôæ@£F“7`»Ë*klˆžxfÝëñ6kìsrxí%ðé¯ì#~9Y�zª@ÿȱ1™fW6b2¤Ò ý³/ƒ\Xª‹Ã­y&�á«Oîn÷Ùû?%døø˜gáÈü1l‘²XÉÔ‹‹ ËUIÚÑ‹�âFÌR Ý,zHH•êYÞˆ§Ç&¸X}"´Ï¾V¤_îAdí9è˜÷#rØpÊ)—Õa»Ï¾èÇå:¥¯�Ô’hàU­{”æ2Çœ5ØŸc…+xü¾'¯ÅEŠŸ�„Ô’0Z…YµÁß%5…¹óOÉNÙ‡=ñöÓyæØî7WõµÉRçâ{†uÆkùT+ˆc0HîÛ¥p)q¤¨@5ᦶ­Ò3Àþ]�(»vé\�^6‘Lj|æ¸Úé �d F2 Ü:/<òMRC\¹Ž=# °Ýfs7G¾Ó!�Û3LÔWÛߘ„ìÏÕfYIƒq_®i¹! §¿: ¹G&/Yùúb9ë^Px·‘ĂӺ_=Sh¥”èÀvÆ Õ§drr¥†`‚RÇ%îÙ’ -ï¦ý¸v“•ÔŸsë4Ž*ô_ÿ˜g2ÓwÞëøÖœuòËü7,Œ]mï>QÖ2>�Å×Ïæ¬J¦Ö0ÔÏürMê…³%’q{ÃÒßÁ—;¬Ir›•F+|jp“—`�¥É”}OcôkÐøá1”!úh CYºjo,ú>sè3^ôóÐïCÿ¿3å/ïõ„t—ˆ—‡JWT'Æ »ýOÏó�€CMíà›ÏPsÚ³.´ö¦pn3[óóÖ0(íE(ü‚µŒ–Ìæâcüv0jf÷ùm¸€/Ú�çääábåäá£Þãßöop~~ðA ÿóüùñÍ3'7''7/×ç?òðrrcprñœäæÃ åüÛŽà§ ަpZZ ¸��ã¯~n»¿ÿMè×çEé9õ•VÕh>Ì;b­žà´Ýõy4Ÿ_Sq'Ù½;êù]_#¦Ð•Êx�io€ø¾çûGP!—ï6ÒŠ¼ý>ˆ�¢*³‹–¨øŒ‘_{ì¿Zü£,º£Ê— ø¶ô†ôwz·¦o«´þš¡úV‡eí(QañaoÆ6¤EªjKj“d’dòáÎf\º›u2HØl¼ò4ÉVel¨ìpP¹E¾øQ• T}c7bû.oÆw¬ö¶~m8Û�2ÉQ¼_Å]ÐNÊæ%(upša«0®Ôýycmã`ãHãHöܱºìè HHS”Q” ÊDÀ¯!6S•ÿ>7kaô†í†íÆe›¨›¨§—‘)È”…izôuÅøI>‘øL3—ƒä´‹ÆyÛ­+¢ÿßÑú¸®œÜ…œª] ÁiÑy|Y9ñ Fà±z®VŒòK©hç¥_ïuʇ¶®èC¼y\«ƒ’Ä—±ò×b ØS·[WD?®ÝtííNØ DVl;§°ïU �(ø�¿JæsØÕsÆ$rÆýÓ$$ɔ֠9€ýžö¶µÌ\6þ”;µËYo{°ŠŸ¨(84®÷Xp^Æ¡îgxy¶CÚøÁµ#³€ýÙ6µ¿Ã¼|&‰jOªÐÃ3�ÅEè£1Ì%‚z6S}-¿áÙE(`€¡lÁ¾µFŒëàJã¡RªÊÓçK¯eSš±I[`·ñU7cœ¡dÉ�ØÊåŠÁöGª5@²:e«ƒ4%”�ŸXE)±H©ååi^f8$±ìÏ6«+x úÖƒÍÒ‹œ¡a>µôÒ,úÏT&ÃNQr Ĉ,´%³„±ØïjºâÜ`k�à>ËÓ §ð!UM¾Õc‘c>eN,C–•,EŠ\•P’÷€öß°Ig†k’†TugžÎåfÍ ?�#fú»¯-ìϱVr!pÑû‘°µ^î‰M[Î îDŸžU­ØÀ=ƒ“:YŽïTZÚ¼Ý|}mˆ^ÞŽ ›qÆôM–€TŸƒ%n'Íz“#¦G^Öh‹†µÿz>È�6Üš…çÔŽëÔô¾…'¾säv><°Ý,œöók’¬îH£ç¶>_óµð¶,_<ž}&/¾On&Œ¼´fÖæ.òì÷]mÞ*w1(¤¢ªaf!ýšw© ×�êK$×E=%ûmL½L½˶Y߆µïk£Ð­,R:sP¥v0Ýß ³pPë–R‡L:i:iïäfiŒ›¹>t ÚŒÂé¼öV\ T§$QQé°4ý(iMT!èI|6{>Zy!›Ùô£0áiþK¤L#¼¬˜ÃÛÒÚÇ~ñˆ·´K°Kð%Wœzüôx y ÇçÇçÅÞÑÄ–¼Ø,&úûÖªGÑKþ”ü)‰£ £é:K´ š�'quëwªîËuÜä¢Ú©’fÄu³N…7 lu·›9£ÿ®ÿ•k€ÛývŠüèêj•sk–°:eâ�¸¡Èsy¥@YÆæ ß›=×GðJaÓã�¼ƒl§ìj®® 7åõ ‡é“‚³Y8+Ò&Arwrµx¹³ž;¯úA®á6ØN™/µA_•�‹Wׄ-Y7QG„íâ+¯ng”Ërc¢‘ÿ¾ö ¶×ÂìwµKÑ)/™5ôÔˆmñö 9Ÿ ʤމ{ÁÞgH`_c»³ç�%ßTf.«MY¯úw6… ·|öØKF{®{ùµfž9ºÝw6ôó_±t1Ào„¬Á؉J9Ï9ËD°”´ÝÐMš{ejë¶‹‹AjôëïlÜhßÙnïß<.ÍxáL>.û©ø÷0§)©¨í>_£×nÚíO¶d—Ñú¢¼±=šJtL=ø¬÷«½%F”`’ò’qœ­QH]Šuc`ÿ>cƒ¹:èaÅ{JKV Д·X‰¨ÁU`õ£ánör~§s,Iø=k«ú9l·YC WÓg¯{Ý3¨ˆ»� �™á,‡É%ï…ÎñG&w»šËv†[€9û³-öä ,ýÍhB [k�Š‚z,Ñûþ‡ô”Øgø”Mžg)¯ä¬Ü”5Èrìßg×¼¤ s“vs·íŸj?Z‡ÞïÖ”¨Íz+¥u뿱lüœ4!180Àv›�‰`‰|ÝOÞ ÄÇæW³°³ C |¥Ý.øE¾-»õò?ìÝeP”]ÃÀq— iPB¥‘›�Xn�I )Ii¥ØE‘Q@)éÆé)¤[@RJBAAJÅ%ßggåe\@Þw|F¹½¯ùû ;s1s>ì9çÚsÞÔÁRœà¼¨óE7m�JÒ”ó†­x‰ á¼þ~óEÔß‹aˆ•Zy×z£ )Ì8û般,__㋾£^ ¶œbË6ýx¾È¹ÇŸm–ÔªG³µ¨'ÔC–|¿=>Úÿ|F„6ç j؆­–ÛÏàO�”µ�ð¹²3[8Ž¢:y0¸ËigIª¦¬ˆzJû”¹U&owjì\Æn)¹1‡(ó³¾õ÷UqWq3Äù>SÎí:Ö¶º-@ä�;‚LVâ5­þ"Ì�ª—ª÷�&²šKÈ N~}Œìá“Áà­Âx±["ʹcÞ­z("rÀ÷“"È"t‡1Ú&UTwëu†x¹{|¿ù­�ìá^I9÷Ƅ┽ÃÊdldÖ`Ö€\rs| µSÒ§¤ÏûŸ÷ïéÕ�ŠÅE&—¿³ö ®<Ô„Û…ÛSqÆqÆÞZXø-M=ÝS¤ßöøÚͲH=��H¹éOãÜo u¬cyugœ{y|Ùoío1«Ì$8+öŠ-`€ýìzLÝÒÐ0ex#ìu@"£gyC$·ê ÿ �nebÝ¥8ÎdéëY€,k÷b"zÒÆœ°6=¯Y“Ù}¼:$¡õvmº©ƒålšï†�H°ëÊ `¿ÆÆ»¥§Øa¯Àzâ ã<þÎÌÄÃ7§®»ë�~HvÆè.q£æåêaÜ%ÀÛË„Ë>¶¶ë H1›NmÀÎ?žÐ�­ÌŠTP¦n±Ç]]NÀ¬trÂ?°Ÿ³"ÓûTWëýÂîWÓ÷cxå³=Õ‘hA�ÿ4ñÈ_ôÐ7â·Å§;,ì7ÿA=ï‹vxÄ@ �}•ÉJä8èm‡d�«»™LåÞ ¦©40ðãùeþývG)ÏŒY»>úÒ™2¿…ø øµý¾«¢>×A:ãäßf±¡„c� !ü´¦ï)iÆî+6>lãPÕľº;©u-Öøžq§è<`¶içÔÐB+ú wÆdÍ–þ¦hÐî=ïΩ}ØÉD¬(9È6¼ù•+Ne`ˆ†F]Q¶ìåÉÐY;ÑÊúÌò*…ÈÀ€ødõÆm¦"Œ6ÇÂ*Ž4®lÀ–q$0F«,0Q$`±dý:k(’Ì ÅT°$Í;j8Ñk&] É›ìÏ1x¹~Ü\ežVऊ¼§_¯¤‰â³6ð•3_Ž âã�î~:ÄÅØ¿ÏìxLŒ¬OÊfqS¨D6Íkð#¯®µ-&Ã~©g3!53(‰M¯%û.Ï 0À~§ó<ÉO`ÿX<¼§°¼óÚÓñ»P¢ö’XÓ•#žoR?IZ´¥yqFuösæúšì`Ò ?ÑGV0Í'›~u= @‰R„ÅJ¯Ï:Y¯Fá¶ßzêy–í’¥AÔ¾–i&0lƒªÞׯÙÔÅ.è…tŠëx)ƒó¬È |××û¡ �n¤GŸ0½´Â³¨6Dºß~(bm㵞:jõ̾9ÛUâ©I$µêGpï,.ݘQE"Dº�^*ogÏ¡Iˆ<ŒòÄQåÏ&n·v+ýênUÄY$ ¢(’Iý>P(‡†í¥î÷é^Ú®õðVæx¸Ÿ- ëä"ÃèQ-¡„HN:E:Ef#iA†^vNY-úqë­¼Ôñë bÉ~,³[9¢ˆ¬8ûÍ\F‘ Ú„šC©±v«ª—>¨œÂtÙRØ3N"m]{Ð(”xïjÝ8n»»ÜžoÎ+Cí‘à#AßbßâГ/ú1â�… ïlzDÁµD/ˆb’»f»fI�úúlú.ùn�© Jä˜Õ}­løuÓâZmœ˜Ðžg­n­1¡Žõƒ´Ö÷O´Ð—Íò"“[•³ª˜à§Ô�O6G—^D'=šé¥Sö%š¦Ð%×°ßg¥f^VÐÌܯ›ýõÏP¡u‘ËÊ÷±^8B\îAŠMgá==ïšìÏد± $ŸeŽ„û°.*‘ÊmÒ‚mÛÒ"^VC%e2«©ÏKGG•Øa ÍM] °ßiËö–âuáýŽ“4 ­f*7 "µUzãbUH`€ý2{ä©ïQe.�Çf.„®æøIœFE'æÍÜfKéH|NÅýFN´¥@E eÀ~�•¢Ùi<�7Ð � ž¢.Pùäg¹¤VRS#ß3�5‚»L™èo0 ØŸm×3ãoò±u©µwä?Ñls¹�v�΋ù¿L]䦿aÅÕ�Ñœš7rÂ÷¬)Q÷^!ÊÑ//~ÝäÄ$«ûÚŸË$±ßÞ+êÝ„� ”È<ÄA—äCƒƒíÒ!Qæcƒ8= ‘ç+6> î½ò¢ì½žþö.öIéÚS›MÃc-…¶ÌJO¸ öÛ'C}®ßµßmH­~xU;™oŒmãKç­2µÜ¥Ñ’–nSV˜ÄÓ·³0U5ÀûY;tǺŒwIËwˆù>&¯W`‡«º3Y¦t~½¦´'¤*ðÂ=ª"¯x¿™Î`ÀûUæxR=Ä GgðÍæˆÔÜä åÕ÷)±-×f+ ø˜`ÓÉš=ª/;Xö‘è>ýú[EòÓ lY)#žÞSv]GtʦšdÅ Â\"�!®Ãt„µv°L—%fõâ] —8uTþBmtDA GÓ‡¿™×,…Ãç{GΈ¦éS¢ °Ÿµ�Ï&Žä á •ëP¡(iñÖ"âÓ˜èW.ç'ÛÞÕ!IîR­Áì Ùéó<œZÜ ýÅwñë}Éi„‰{Ò}»õ{=õÙËz>C“n„�Ê˵¨ó÷G†JƒWÝ&u׊4ÉàûÍß—]Or`‰R]|çòɦb>Ñô‚ûcÁû}�â>SÊ È°¶x�­“¬ðu(õü|Svø�çï{¼;ý¾oêÅÛv‹eµçÇ8¹œí÷î4ý>ÓÉ(=‚Zé±î¨íú5ð‹gmÓn^Äß™$Ÿ»¢¹´•eN��=^#ÊäP'C¤ùäUðvzÅŒ»å­R@‡hJ’ñ}ïIÞ“»†�_9Õvëu[M¾²#D´Ð¤3ˆŒ$O{¸ž¯ß¦ßæ0� jŠ,c�Šö[läÿ›'7"fDr¶»õ7;"�$ÇW‹þÈüÒl‰¸£èv+„ƃö)VÚ{Í· S âãõsRœ½c]×Pš9?sžÊÌDyÓµ¶Ì¶L||?nridxt;c­9�ÚeîËÜ·ÂÒkÒk¢_�>:í¢QÍ´5¦ ¿­ M4*v²L±„6èÔ»¿ÙoMu¬ÿŠó a´4²éò/å³U‹ÞÌsá�Õ­�ž 6§•ѳ˕‹×F� ÏÀ?ØÁ·«´£Ùkêîs&ä`XGŒD-ÿ†_:¯Ž¥ +uRC`«‡6‡|p€`€ýŒy¬ýã¼î:VfB±`±2×$Uggùù .j¦w‚é–þ·Í(xÜeìŸ`&ü Y÷� ô>‹å×ü�ŸZ!ÌoÕ>/b邸ÈÕ`o °ƒf—ûXLŸ¥„ÙT/›%•™($Ÿ�gSlòu0ⳉ{�vȇ&íÞ`Í:›]&3‚i§«)s#Ñ ,¨M6Œzz¥Š©=gµOcëÀ'bÝ\7ýÿÛFk]ÊÆ~¯°- -�”1ÈPú‰'êú”ŽÄší׫IüŸg»›÷ü½óÖúTèf‚z:‘žÄ Õ¡‹é«µKs�µœI§òrúì ߨ\yz0©Ôá Y%M1ïà‰Œ8òãõ©³(ëS&ßÎ¥>á%îSM©tëDë =©¾ßZêsý·ï†žvA® ¨bŸÐ¥E¸2ùnÑæ¥Nç~�d®J+×wµ¶‹ÛŒv¹0À†¶!ßI‹eñ6­ Û´àR-ÿÄZÐ8Û VT¯E<ØìUOñx¦\$°Ÿ‰‘ܹzQîÄÙôÄÔD´í LÕbÁ¶…E'ž}ÄÜ$®Hw¼¸¬ Øï³†•Îóå©d²óÊsM�ø]Ó zó¿4cì³™W*ÚŒ µÙ@6À–eÙp¬äÜ9¥þÚ§á©ãÓªW낇;ìE1¤uòéßà7«µøàv°ìE�%q¥WvZŸ�qó “½À°·Àן¹›Þ5EûÄl¡Îqº)™¶l$äÑŠc`Ôï¾ ²¡©.ö!KÌÁÂn•ÉOöûî‹qšŸ <Á8åõdr‰Cäy¼dªórÒJ L#f\Ú zF©•}†\£lÄ^M÷�‹õÇçZñì±7»¢Î¾Y—”êV›ùÄÙV¶ßÞ,âÜ¢¬pÔhÇ mQå¤ö¥’øÖ Ž�9Ž]-EÏh‹œS’¬ÝÙšÑH%"xë5DMÄÛE_¨þ´[$²9×½M Ëü¾�†�†·çßW¯¶Ýàñ­„^Î_Gdõ.oÙ‘aÕKOÝœÇcbM‘ù![JègB&È×–»•œ"…@DìVô»ÅGÄVú—Bª2,º‚O,�…Ýòn²J: ¥È«?²h»|N˜þk»»ëÞ}<—5Þ_Ò_’±Ap‡×5­­ˆ€sçšR²iåÃ�ÑDì,‡p³5?¿’¿{z´ŠK,J,ê°p¶Æ”Ù·s­®x�9æ91¡7ë”Çj¿ß| u¬{<˜ÕшV—hâ§ÜP’î²È’½ØŸcOV�ðû�½˜ ~Z\OÊdjÑáðÖêÁ?{~Ö.´ÒÇ_³õ`ßnª®Ï”“AƒIÒô Ö ¨W!t6žà¼·ð0)ñhc´Bå$_ kÅVÀþC»þÜ9ôúÕ>íb™ÔĬi•s׺Éôe¸?hx¦ßà¢k% °ƒf‹f¾ïßk ‰àÉŠaMÖ�4âGò4þZM·áœp­iw�9®¨`{™¹ Ûýæ„ÂÛJùúª7%êtØÍ£õ�%´£±7Ôé=sÖÍz^Z®Ø?Ó Æ­u&ËQ—ÝBOé^g)¹²À�8�“ºl¹Pg_j¢«˜Y!iì!D`?kÑL‚2iÍð‚GÖkj ‰ž5›âIŸ>ÐÛK¨>|!7ò£½¼°ƒe\NZ ’ÙÌK1¹òÕbŒÆ5Þf~¾ƒ7!%*�$=(ŽXGÿg¡€ý>㉬N9- «³öœF.'ùbع‚-¬W_b‘?Éiÿ‘ùA0•”è5À~�é©ÎÙËäæI�ÛJ™1J¤Y“ޝ¤{’•7^uïÖ�ˆroãK¾áü •7ãÖ:ëÌ·=…ÐPvl\QÖOäž|hf›\{­³*^¾bƒø{Âokþˆ×^ŒÊ%2±ÃÒ�ÅâÈ»HÉzJ=lvlÄ‹÷鯖Ëd¨w¯£þ~õŒ…ÏehhÃEKF»”¤k°ãQïÃD]ãE}‡õnÔý“Ä>‘Ä,cB ]šeƒ|¼ýöOPÿŸ—e .Ô�¦`ÌvÍ2W¥‡—Ð5r½”ý“»$ÈçZ“ 'qE/€ÜŠc„Ï:ï·Ö�ú\é7†¿Âî@²ã;Läq‡êhE9ÞÜ»�õÊÆ­Î„ FAÊttî>)i1¹âºiîÿ°wßáTþÿdzgÙÊŒYÙ#²·±wVY‡Èh��ÈÞ{W2²R Ç*;+[•Œø}ÎïÔåê¦ü~×çûõQŸû<ÿ{\×¹®÷Ÿïëõ¾ïû ÚïioÛ*ÍROyѸ›ùÁ8U%$8#RúŽ…åõ4WcٽѠ­ŸXí϶ك�æÏæ3¨±îŠ>Öã+?³lñdÒÑe¿‘ÝTUfO`¶ìoÁ hûk«“ä&\ëd"ª ~~Ú¶âÆªsìr–è¥ðôÏÓãâT¬EN �öß°2Å2NJظªÂuíÊõ1Ç£åT]_Ø$¨ÐÈhœ•”Ž.3ö纒Ú�ög›õUì�úç;ÇZä–§¹‰XDú×3ȱê7«ÎDž¢|È%œ$þ±=‹5’4Ð~WÓ‘âá+Å~·Bj{×Ðó… X® Zä{N³•eAãNUŸ'OG9¬™ðcƒbƒbVayG 7r«¡ßSMwÇF„Ž!Ĉ¬{Ò5Øê’P9£1£±– ²$dºî…�yÈtë|OD?¢IùvJÿ "sß�,dF—ò³Ç ¡ø;õ|ÝlJøêCCƒÙZ@4®¢Øp핟çgêkR·V·V ‰'ÖcÐcp,þX¼ß"ü˜òad–Û‹{z|[ÌO™ñKYJY–•ÞywÄãÜr3pæl¦V½‰©/)+ø ×¥¢¢e·™3pΠä€ßÃ4o:š¯<";àh…Ùut#­êˆéáþ:¨±Dd+ɯgÎB€™s÷÷U)$´îÊœ#iX˜vyxÓÀNg·™3p]ç]Ðö¿ùZľ|Ùº |�~gú½”¡ø+m%H°SKuÀ­^ß ì ûSOüB@m¯ìZ¡¦ •oˆãÍœü…||Œ59G“ÅÄB(?σ�¯ÜÖùn`¶€Ú^Y�A¾@­�»O÷´y qg´Ýò ÏfWœûê‹t£Ûx!ìC‡"Aíw5�„;ý'4tÏ’Øa㕾qÓ É£Ù‹o^ÞgLãøÊžˆ5j%0›WÈfSÙ'Í Ü_+O{s${aùú¶åéÑî¶¿>³2ÈÚÍèt3ì«=q×7ùhÖòö›:‹ƒ¦vžkɘÈŒ~½¿æì¯c"×¥™*–'À +—M�³w™•�Ûm \×~º÷éO¶,÷w�¥E“X–š'!%ô̽¸l÷�á~Òû%™®¶¸xÊ c{Ðþ}ÆnÙQ-Õ[N¦zÜàè³Vkñ³Nªö�ï¢c‘ùÂKû®íqrvŒ!ªÐx¼Þgº=ù£±Lˆ7Ù½öZ ÝJ§2òãNeõ® #ªŽÒ#ú1Ïfq£ûܾ•fñ÷ˆ«eÜÙ±6L!ãòöÈØ<ô"ëE–| ².AdDɹ©Èm¡Ÿ¾wµÑÉLD._!};õ* Q?, Vƒ ÏTâ1EÀcÚ�rº}S»/ªÍoŵƒ¿ºŠ2·ð5óçQžûbYÉTÉÄT/È)¬^ '³"³2ꆼÇE†î¸½ˆ%ÉwÀ 9М¬  R3³¼f*à â�.ÊÙ´ÉKROì ç�v›Aß‹A—,³õ�û ž™¹ä§/¾ºì±.S'˜o�Øf’½@Ì å×3.À ‚ôÛ_«¥Séu3á;4YW©2¸v›A×…åÝ•sºíÈrÀú)IÛÜ´6œUÐ@ûÌ#¡nipˆ2ºúxFpêq®ò†4*ׂêÏBÏ…»Ôˆ –’¸2ÏÈyä�¶¿¬Õ›Q”¨EcÜÎBA-¶6·ëHMxJ³/¼ ÍÂÉföÞ­ Qñ°+«3 í�½é’›äHÍxÅg(…r®P¨#7ó꤇§!K:ÙI³ <âFmÓš!¼%Ð@û™‰BžÎ5·ê¿–e¶˜ÜÈÀ^ÕíÛ]Œ¼3Òd­FhK'Ÿ,$‡®\Üm¯ \×~zïþßf㉑„cŒáBôï)鯂 M&é-œ#Ú8ª(þ:ÏÝ>—Æ%1ÚŸmºàÅt"nÏz£ÜnŽ)Z.�¢hÐíQðäÒÅt1—,Í uˆ~ñê nU!hûËG˜†«Ùôðæè¯Ó4³UØ\ ýZj¢fש½Å9�°šów>hû˸ƒS1Q«ŠÍ!'¬ØN¹Íšˆg2ê0/Éñ�؇Œ÷XJ¹-…~íϱ•r£¤U…:!g•a\ÏøeÌ!Ýì|çO~N9"ro�¥ëUä 7hÿ>ƒñš›ÙÑ*æ„òPœ�mš×8L^wxL†Ófh?.;3 ƒÃ £ø®Ð4ÐþI;|�VˆÀñ¾TtwIyÇÅGoü�݈ZŸ$Z¬b_½ûQƺåžw(W\1hÏ®Dö“ð9™7¯œä,$+žbNR̾ <ý²Nkd^ò¾X7I߯ò"„g·óPæ¿þCG463?±ÕñÖ(w²ÁSÛ[7§A$Tp¥m“íÆöxqIi±Zó š&–9º•e·éNåÃu(iHàÁ̞͞­ëLºÁ�©ñnEdõ=5#*|DýÝháȤ¼gq ¾�‡AaPJdÔ-ÈÆOwÙ Ë«øªÿ½Ø!D}ˆ¸üÙì”Y " ØEÈ"²©à“ „1‚;eŒ?¶ö"“Ø>hîÑkÆò¶…Û<ÎÖy˜?rã¾�A¯)Ê£Ö`˜˜çž?h˨Ÿ‚LôÔö\; €á¶â¶&Áï•Þ+Ý4õàöàî?Ádœ1«p¹–b±1±MÔk�Æ\ÛmÆün_«LY(õ-›{æ8Æ—Õ}<.Ú×%.…wHé{«ñÚ’—üúž"nÀŒ)”òÛ�2†#ýj&¬ÔM‹ëð$IÑŸÞú}Æ\×~šõýŽùÜÔ²06³Y¥1¯šiå¨Fäí‹ø2M4Òƒ¹ÞF O?ÇÓ•¸çàÁ@ûç¬ÌÒÛÖ-wš§ÿE ‘ j'¹òÇ"?»lâr/RœcÖ>SóW2ùAÛS%ùä,�íǶ¨Bª´IÏçÐ’ÓVã&#Ÿ[C­ ÷†>øaR4ÐþI[v´‘¢¨‹îsžˆÐ*±�©Ú$ˆÕ=Û“ä•x£+þ�ç•/kgBtYíÏ1õ«¹ð˜kñK1i<ìÌþ4Obž ?:º’§=ù`å mÊé³KVñ“/Am¯ìIœ7›¡�0n†-{P\V£‹ïÊ’“;íRl¶ž~n}u5cæ ¬,Õ:4Ð~{–]–Òx"À…ê`ö<ô?> ‰Ê�‚Êöµ“¸wNÔK®FO¢Æ…ƒÚ^YÚméÕZükgmﺎèòÛZ“%ׂ0º,Ç‹^Ä'tÎá¢è 4„dÓµfQÆ*Í+�è»c4¥”ÊEýoo})i-¼�É��_�I äÜ)¶œ¼æ{·Ð°[Z‰Z^Šr�à´2lïûyZ‚Ó÷#ïG^¤»,ê¯_p@p@ÝŠU•Ú²ãÛÓõ †û÷ ¯‡�¼�îµ ÜpÒ•å[ Gíàç;óeð®Â|Ó3œè_Ï„„3¡’o3¡ñFµÃC.6Y6n„ úõž£»Í„€ëÚ‹ï…ƒÂè鳕۔óÕKGç¹ñÇê¾²LDŠYÑË ”’µÞT�¹ÅFç: Úþ· ô#ùëPÏæä|í Òp¡Iô€l~}y6ê´†�f/]Nå°`-Ð@ûÿóXëܼÁW¬Ü”Ç"iÄjܸdTå 9ÜÔLïD²m}­^Sðz*‚Úï`æB(³žs(Ù½æÖµjýB!^›]™ßjO¯”*=Ñéz+X©g4Ðö›½6í=aQ‘e_³l™jöÔüL¦`2;¤é–S°™€}Ò{¬¨~ÄržM �¶ßŒ }ñ…ûDNýT eA,*£±5µù†Yw�ìcê볺,8ú+ã‰×®lþ§�Þ®Œ�ãvIKj éñP¹Ó$×�³'\éu‡/œÒÐ…>Ív½øéûÎßg ‘›)Ðl"CéªÓ‹Ùkð¥�p®´£…z DFÏžˆ1¡ÒîãºFšeÕÎ)ƒýëY‚ `–`þí»Ô4×ã¤üêݲª®u vDÒBw›%×õŸ¾zÊó9ù‘³Ž)Á�:„«mø+Ö-ÞÐcž·I>t¹Ñ+õ^€wòXÒ/·ƒÂP7”;豬ßޫƱ(Öƒ �¯‡¾a_ÅŠë±Næ³|Õ�Dü&Wé)•k(hÿ>“$¹y9RS‰Fð2Ã3bj"úÖ¦É0‡’öRcšŠ9ŒMâgÙžšËê ýsÖ°Ú¡Pþ?ìÝy4TÿÿÀq[ŠlYÊ ¢ìjÉ:ölÉÎÈ®0ŒÈX²e)û–µ$ɾVÖdO–D¡T e+Yâ÷™3ù9]ä{Îçûí£>÷<ÿ{÷œqÎýãÞ×ûÞûN§‘™Týô¸‰ìÙ{\f v­dÛBÕT« y“—.‰ ´íeÙî…Ü˃4ú<ˆï9Ü«îü9Iø)¾CˆEF¯€)t˜¬Yý‰ hÛËÕ[Q>ôιÓãgÒÜïˆzé#ôõïìMï–¦³¢H�–iT¶Õ•“jo¼Ò+(pm¶”TsÀãªàëgê¡Á³¹ç·Z›=ú×1ù ÑÉÀµ>N¯e:pÃÝÜÍð’iãú”OõœÆd†ãœ!)œ ]ß+c6L²O‚½0q;“¯erÀvq£DÒ¦³0iÊ+Ûþ] ] z9ÎîÇôù׊ìX�V=è&¼¤7O±± ìA) ùÔ0Ü0|ZÛ�gØø;e°•�‰?Y ¾“’(¦a¿°�Ê\Ä4B�~bÛÕ¯ðB:X3ÁFÝRefgþz4pRs—eÄ �Ï0(fópBãÐwÑw¥\ð�Kz�)Ù)Ù±°Ìœª°éÁ¦[Ÿf<Ã`ËìËìmg5U�,5ÕWʪ‚™xŠP€ÚßµxÖ“²wš3ç oÛ,©ŸF{Õ®@<%“—¹ggÉ™‘RgR) ¦´•w€¶½ŒÏqDW–j"w‡nBžb�Äa“ZóÑký—�¨9% ˆ%žö~‰ퟳã±5iG„äõ–ÞAïìU€=zy©Šƒïz7\jZ0Ùq9°‰-2œ^Zü"h¿Æ Î|BÊæåK¿Fœ”6?,udžúõÂvÚ7p;YyÓ�.ý‘Ä×ÅAË_ ÎMö[û^�³ŽŸÿFEq©íç˜Ýë%€g¾Â·ÙœUÉè<ó÷ß×"0�½—Ã’²ˆ® eì»A,¿ï,u,Ç�믦pùIfÙŸÑ÷^¾?üÆÊéÏexx)Ñ↞)ËÔ%÷ÃÎx�ÏÐ÷6κÑãbèlg ˆþÁ9Ã’­fÝÀÿ§½¬± â aè2ƒîhÓ*sSNÑÅ ajâkÇ©ª·�N@Íÿ|ŸPÀ¬{u]'Èá2jÏÍ‘“hZCNÙ”­ÖuØÿ:&™°ÓX½ùÛ k¹ÕÔV]&KgªY_‰SýSLp}>›ŽÓÆë˳»‹IU¯VS�Ãù¨µ8N÷mùÉLWÊýŽý~7~7òÌ>Ž[y»ßèj\m*g0yÙB&° &‡㟛²n³nûL�mÀ[•ÙÌGlÂî:ûV‹©ó&í¼ð�âtÀT«›ÀdׇíK·�v‹ëcæ�’at;…ɱì6%E3^Ä7OdLŒEmÞçlfcgwg÷|í=¹ý+À$e%e¯×]¯ëÇŽ ^ÆÆº>á£ÊH`‘ò‘òÊËÎÎMôVû¬öùºÐI¯žSW©°çÔÒ+X4•~¡Ó•›P‚è‰K[­ŸÏõíôÞê¯0§œÄ{³$ÅÝõ‡Ä¹‡ƒT²;îõ¦¬©jVÒOÁÔÔ÷÷*}3Ëí÷´·í•¦rhaÏýÎÆ~vÜ*�ââÜ‘I½LaY{º[ªwؼÖ$kx3ÚŸm¤ÏL«&Sv¦‹Ü×…–Ÿž3{0ŠDâΓ4q©èi†#È�箚 4ŒÍÚµ×KðQ,>cÝSÁðè”uÅ•\zNs‚Ž�ºV‚/c#bôìoìAía¥ò¥Ütv´uêxr^Z•K¯�Ê黾rˆÓãÓìwPP80ÇÒ—…¢ ¶íÏ6ËË»fõÎ?{Õ*37ÆKvÒ,êj³ »^‹Êx”0]1¯ÐM±Ù§iìQœ �ö»š¶ä1îóúZaѧX„‰¡µOêFcF¯V9²¿¶{Ä^ršï‘õGÐ@û_Ø8Šå Ì€¡Q·f:? >=rOžŠí¿ý^hޱ”·¿£~‘@£ogbÆB^Xpæl¬Z½B¨/!}¢ŠØ±¢¢u«™3pά`KÒÍ:i4œ£8$Ý�´ ì:°œü�ÖˆV¨¯^ÃP<ª�êç3gAÀ̹ñûûªqÍt˜ UãÔ˜c±¿¾�öVóAàïú;ï:€¶ýÍ×,þ‹««e^ÄyÝí±’b�Z J!r¬­Õ×z|ßìª@|zÿÀ/4Ð~•¹çà ­ŽÑû†"ý3ÇO’Lå�ìX”Až •¿‘¯Á,w¶µ½BØ h¿ÊöëçÔZ9û<³Ù›tŒòY´Í܀ϔ°+Îy¡9´»#”ó%Yh ý®æ’p»ï¨ºŽ•Í.¢à’×(ÝÐìý¿â›—wY’¹¾qÞØ9l!0‘�ÏaUÙ+ż¾Vó(äJt�ïôõ lÏÖeÜêúøÌÊûs{ÿðo.Ê Þ (Ùhöò§þÚ©ÓF6‹‰„84ðŸ__Ûä™å\™"Š}µBA¾®µÜas[=ÓÁ�Yƒ‡¥ »'$m¼V“*S$,¿$cIr}>=±¢˜”úÊF-ò•C×§ÏÈ#�éD*“iE<ÛZ5p•Æ�ªuÆ¤Ù›Éøc ß¾�«#•û±Œ†µã¯vÿ<&dI» ¶ÐAiýdöF; ; •Jl¦ç°™« 1`Ë‘Ï]-†N+¦.–kí5m�)Ö6ðé¶Ð˨Eˆ“z£Ê „XÔ�‚¯á•± ëâ\­ZGD7/®üªî.ç]Î_\4ŒÊ¿SàPàÐEê"=³¬àíMØÉ×§KGª ‡‡%Î ¿¿>� O®O.ºâRûÿŸë¤Øsê,Z4[€Ï®\ýá8!·Õ=ð\ßN{‰ýÉ–æü®©¤`t§ùY¥¢Cl=Äwêü¤Þ(!Š` °$Þö¸xmºeChÿ>ãD¸"uðÑÞ2°êýUm–bjö*ˆ¦w×=ìäOåYÐ z7Ôò€Úv³ÇÉ/®ºµ¼ìõÌb zÂh¯Ÿ}�}v'rZ0&­ÛÕT®ëº97/h¶%žXDd¿K¾ÉÙ^¯¢x&‘òãàç=:J\“Ê!ç:s”ó¯Ééç Aû÷ÙihÑô¸í´T¬]�æý×Ëfw»ÏJ5伕ֈ¸"h(‡ž–!ç¡â. ´ífÜ”ˆ”1�Љ…uì\ì#fú2.ú�Ñao+#ú†ëSÓçù�3wr\µäÑK˶’“ð­fÀ÷b$J­}ê|ðN�_òÓ[˜sYˆ÷×�NQZ�ræ‰ãþ|Á ˜AP_ãk3·Ï¦ö2º½?ír }*ïV÷‹ÀßµÓ»+óT;í\À’°„uVò<Ñ‚-h ýæ’P?3ð’.ºúpj_ú°2oyc2½S^õÁGB]ª”ú37yo�–qÉm{Y›7‹Èž \�#6frª±µY]´5I-¾u�ñÍì­&î\[ w[íרë.™Q®~tj'Ô@×$_°# MxyÔÅÃàH �qÅnÊ&-£š—»g@m3Q*ûØÒ¦÷BšÍlt9õ„ÉÝø�‡Ù±!ª O�»¿U’³)3Ž€ö÷¬Ä,˜þBCÀõàæ^ïÎ{zRO€×ª��+Þ?ë 7æ…¶&¦…ÛOmu­ |{ç¡—ƒ†ê$\‹¬>(ê0‡~»a6»õWnÑ{4Jh)¿˜ùùµ*t“õ2Ž˜=ôïKEB N,™wO˜-nµ^Æù×1Ô'—€AZu×:f)o~´wï”hõúd£†Ç1‘‘8gC† ×wž;¿ç5î ˜N•s®u/ë¹çFÕ'¼ÇäÔ�Ãúc = =~ù™d?f}u­´#«�ø?Ç$£?…íƒA¿¿Yð‚“™“Ùklw�ØQP—`£?hˆZmÄÓI2L\/7JTÓJ�‚—ÒÊ­>¤E¤‚{õ�öÅ&A&ɼⓠýÙ¦“[Wxð$ªªç:Êÿ•¼ùŒ0¤Q§[΃W‡ÐÑT¢äV˜mts§ñÃ|ж— áE¨ZuÏÔ[ÚßÂQau"öâ…䛚e_Ö‚V‡Šjî;|9 m/ã Ib!Ä{XhªD~Ô²ŸC5qNì‹6kጠÿ"t¤Û\5‘ÿ ´?ÇæËá7?=Ì×}£¦hÇPÅ3UªxÎ =Ïó%‰ö$Ùî�#]�Q|\ ýûÌ± £|fØ1ˆZìãIM�}{kêlïÓµ F¤ÇûaDÌÚòïò­Aퟴ}^Œ‚äÈ»’ÑÏ‹Ê;.Þ{}Õµ§íÁ ³…]^Ãé³0ËÖ;Þa¼q” ý=s‹ê£‚Ú›¶ÌópçÓ¾g»)Ÿáœ1*ó:•ìä`†s¼iP§ŽqßjÆün_¬4ŒášÕÓT"C×3>.õ7¦ öDtHêy«Bó­÷ý|O>ÀŒ)Œîûž2C}ªçØO/ÕÝ”ÙtïÐÕyðwm§YßïhQ�ŒÌócoµ(7eW³ÎPU2alŽ/=‹OMšå O(û°È9s·hÿœ•š{[£²ÆŽõ5ÂO�Óã=Û«8[àg3µ‹²Ü“šˆÉÒçý¤Û­ð@>Ð~�©P}v�ÝíÇ1­L­°rjÛšÓ^ƒ‚ÉfÕ0ÈÉÄÇ=°#ø4ªhÿ¤Í!­$!õѽo"5‹¬Ç®�Çê¨ußô¼q¥+þ�‡[ó“ÚñPœ.K2Ðþ;s9«.Æ=~†<&ù'ÛÕýe 1UB÷LÂæ³µFsçI­“N©ÍXÄ�> ´_eâ¼9 |„ˆS­9ƒãÒš}çgì�gì&}\ZXH'µ+E[ƒÚï`U¥7C›Ž8âÒ“fLjtBøI¨¨”¿ äU>]ä!¾}´Ab!z/.4Ð~•%)K-Ô’¸ÏNX§; éðÛ�-JÓ�H*±8ÎÅ‹\$¡pÌä„< 4ŒéglK£‹U˜TÒsÞñPÛyÏ!bš!ɯzï%J!î3Nq �öËì¶ܳÚB‘„ÓB_Ý!tVò š^Âð§•'¥ƒ‰¹õ�à&^¼™P%ˆ*h¿ÆJñì4#£Ä õ£ÂGD 5pýòh�êª?¨­U|þ>{p÷:Ðp´?Û\²}‹8Ÿ©·=Í{Y¬Õ*á슷�¾íñŸZª†Øe­1Q¥ÅC¹µÃ ™¢A6tÀu2'Õøö³_WxwÐÔíÍc•Új� ¸_Ö]Ãi{Õ©HÙ’A|Øq ¼yh¿]†SœÅ«~âç¸b• ?ÜŸ®“ñoò,ök?~È-\†hÚJþôÍ×ïVŸÅæúë˜ÏüÝÙÀÔÜ<¥ÖÊþäï&tŠÒvÊéÿØ»ïp*ÿÿ�ã)uŒÌD¨¬ìÙÇÞ{%²JN޲e%#e”uì$#»ì„cd {$++²¿�ïÉåê ¿ßõù|û¨Ïíñßór_×ýÇíº¼_÷xoÖT{´ÉmÌ! |Ʊy3¼ú#HFˆ„<$W‡J¼ ‚UØg¶R#vשŽ3qöG ry•§Ã�x7ôé­;�Í%ŠDYjÞ‡r‡Z;—«;Q¨[¨{| %°¥Ë70EÕÅ_`�¸’á R#®Ð×­ðÿœì+Þj' ,#ŸúÖË•î­PÞ¼ _5ŸZ™±é&ó¤Ö¶Øw}{_Á'qÊpÊD±[�«AÑ ººrÏ}#T!�Є’ùe³úŠM?„#„#÷òðÜðÜ®.7¤4¤@߸¯_S'¿?‹}\I³VÛÕW—sõ„b.§áN÷^ѯõê~÷*Å0œ%�p;V‚> ÌÕ9ÄÍ µŒ™žüºV|SyæxñçC„ãñªj@Ú_m{|¬ yf´ý:OÜÝËãØì¢aG’ ΪÒ{Ø—*Ý¡Ìó„ÝC h¿ª]?*‹uÏ_ïõ±µnÉσcÔqC‰ë®�¾Œ1äeŒÿ” Õ¦Ú´ÝÕ&ß=¾2¤@zrŠ%-Q=üùe—¬@ÛtÊAfìÃ{g¥ˆÏÁ÷^�oÚîjú§¢–Ô}Å»¨„œªŒ ÏNd«={bÙò\Ød{÷i1œcŠÇ€´¿ÚÞ}1¹®Ij¯y.hÑÉAðX¬>tr/9Ö%£¬„«¾zD -ª¥ñò@ÚnkËÄ%™\ø•û•Þ¾ð=XåGzì¨m7í'¼U£1ÐpNŸ7ðî´q=„PžЬDŸ =^½à®øá²ë þržÉÂN3!ô=Õ•Üž Üíh¶ÑaJ±jߥ#É=E‹‰àá–ÿÚ™$=Y[Šöó™?ÚL(çûú} FùH—­e¢¥Ã¡j½*·Þ�Öïèçõ+¾4 !í1™d¹&¹tÕ¼ÞI‚>øJçÉÁ�sæ´RÖ²0Íþb‡ˆ°”ƒG€¶ûÛeÚžôe ·Ï&«¤«ÜñÍQâ•|ÃØ·“yô,¥˜©b«ëÝuØä‚4�´ÿO;Ñ×81©¿‚›ýB ¤Ì1ˆOB‰@I§pP1~H¶ô¿eþŽœËMh@ûš ƸÛFr‡‰E…ò{¾@÷ÙzûCj q%by}‚§Zìýd+ðÖö h»­½3ê8eZœ )Ÿ7‹1.4‘O8cQ¨õ³ 0æ…<Á Ýã Š»Õ h»­6O¿vL ¦ýTN‘�IohAe²jÜÖ.ù‚Êc\ç$žÞÂÀCW—5ÿ¿»ÑZ°°ÞÉiˆÅÂŒ&fº"ò@Ÿ%Øà‹/_ýzÙ&›ïËxëëmßw^Ÿ%„¬Ek$6ÿ@¹gt:y©ræsM%{,Mæ³(¡@¯Ê¥\ŒûƒŠÍ^öKĉæÍlÂáû~>K8³Íó%o�1aঈ8/! « ~;=_Âöí˜Þt={’ä6Lû \ʸ¡Ù Þ lç‘€äÐ6ÐfFPMºÓ(§Ò4;�#ÒÖ ”d}rç¶ÂwE©×UÔðGs#s#Í>cž?êaÙPðt]žI"’þ > ǽ[T5ê!�F‚¯Y½E¡ydÝô´MùóV¾N¸ T2LÊú eÉ6ŸüÄ)k�°=ŠÒá×î§ÝO3%×*ÄÑ-´-´õÁú`CSÇZqQ7;yd�ß°ß0n�W‚W´.¹-¹�ÈÁ‘lýš2ùþ­sj�bÞU‰/]˜ˆ�£;ͧЯõ¿{oèOn¯HåT Ñ-Ú‡›,<5èÜî}nu •í¸\ÙÂiF;ß 4 !檂×bèIži¶n%ßÀrP?Ë"îƒv ·Ù›¶G þTÙBJû  ýûš(‘�sˆº,õç㥠ªÃ´�ÑŒå¢ÁWsšó ©‹'ö®�J“Ý>¨Ï«íŸkÕ‹é¢$™€Iåϵ5[>a7gÒŠ‚¦ŸX,�j¸HX£ÃÊ�±'Úîji¶Åg7ºi4Þ»áW?¿þ¼ìÍ ¹N3Td/?=X/‹.°÷àkµ:o í®ö n zé™þ¤Ãûâë¶Pþ./þ¯º¹á Ö¡m ˆ\½ö²€9…ÿksIÔ¡ÏÑ#£–jpf!"�TèãF_OÑË„$9BïÍœà>çú2!w§õöI>Jî†aÏÜÁ:lá˜D’Ý|ìbE¼fÔTu¿Ž�ìÎÔdZJ†°¸Tô7ºŒ‘)( hÛ5sËÝ×Ñ9·³Î«:׈ÃåùõXÍc"ωnÄd­†Ûé§•©í÷l9Sý{– ²T…7±[WNå_š¢�™ÄOš·œ‚C LôRK%.º Ðþj‹d�zò:e!û±Õ²š|ŒGŹ»Xì*Ûì,áq¨¸jÜ+Ùî8ìÆ"ÐvWã°ÐÆ�"¶W7*C®\”áb…—Ùís~nØç«ØÇ8à‹6¿ý"xhÿ\ãŠ(O<É/£·ü‘û ©¬Ä«.»Rf<ÌÐöóâÓ|±¶«þ5'îSJŠ\Ú¯iªŸ¡R™’ýI3ñ'VÄý‹»i�·ÝÔŠj.»µêÀúsï¬Îe]˜üpÅ‹a}Î:ö}þª‚·_„y–ÔƒÓl�c»9«‚Ñ%ò÷}Þùˆ‚q‘Dt*^(ò‘‡ø2GÔ‰#˜i4BÇû¦0xf™êŒHÐ÷^Gý{ò_ 11ãÂDò{ZÁx0ô½ Ñg¼èÏ; ïm€þŒŽ_FéÛ|—ÅB DæGå�žÑ9ý혊Ó{è“]½7P >Ç`­S3#ÙŒàÁ=xÇÈÍ6Œg³Ù‰Æ¤(ãŽa$¨:¦õ¯¯L{·b,χä+P­ý#0˜�(�¶ãG�o7äç¬}~àR!x•%S±§†tÌÔÕè�у§-(³QòFèPz$ûÞ­‹!‰*!�ñkJÞÊ‹l$�Ej­—B(ð«Å�>ÞÆ¦ÜŠÿ` ».W´Š™ñ#“¥µÅ5M»í©}Q 8 p€kæ u.tíóíóðYøì×z² }(¾›i½ÜŽnLrLrMhÚ{ÚÛ½“/�/Ÿ5g ýþI̯pLÚEÇCäúÇæ ³vº‚þ7ÒTX]JîHN…à7åÞÛ¨U袧»'€®†£iO)Ü\2Êaáç{Ïò¢Ý?ñ%B�×rŸD‘ V¶ýÍGÜØaãv;Ý?A?¯ÝôŽá¯h>öé0„�i´ÜþN8­[若7W¸ c<91ã�Ïw‰‰_�*¬˜fí÷lCM%&Ò1gÝ©�½­Ù”üEDØîG¿¥ ÊJ=Ü^_¶/˪_?¨jp hv?ÐbR:O…›$øB—»H~Þ4 ÅX ¨a1RÒÓð†Ïûšr hÈ6kÝå8´ÔÂx¸˜ê•Еâ›Ï(/²€Í°y¼• Øs£”LYƒ6@Úÿ¢È°QX“UªaJ{h•,÷AiŠ([¿2‹Pb‘P_—•¥™§ŸêpˆØ hv³¸±oVïRK_x~”ý €iˆoÕq0“^½ÒXÈYŠ\vþG³͉L!,@ÚïÚ´Å8Ù.ék…ñš ÑŸÅ箨»]9>ì[ÒcËÔo>úŠ)Ožã•)ñЀö¿hcô7% ¨ªu˧3SÏO<—!:ñw¿C´?§�´� ¶y®v [ã=.,y1#¨}>h¬\¶†£)*y¦ß¶¸¸a§ù ú ü¸ìU‚vÆI£Þt¹ÉPsœVšÕØ—dFdüïá†"!�D?Ÿòmó¾*ÇÕ¢LmË,¸¬•??aùN³pöoÇȸ2ÁÐÁ¥l$6¤û�•UÔ)²07oÐÉë‚t×ÒzVx¡g3xçû¤SŸ§�z4‚»6ÀŠØ¶Ò·V¬‚Ô1ú#6¶'ŽVÜ?J’ÜÀxvÝâ‚ë1¤‹Å %(½5†þúF+Í�Í�V(-Qª1â‚PÅ”œ×å áÄ ÝuJØŠšRz¦µr¾+ÊÄHèHVQÅVèäxœ#¼ª_J4žîÑ—±?öÙ^µ½ÙªÛ¬ñ¬ñ*R?/ŸÇèÆ¦Ç¦zzUíðý›_£ân–Õþ�¨Ÿ¨_£ÓóÂ煳͞x¡1¥¼~MU_•\D3Iâ"QõÔ¨m®�¾•öN3gôký¯¼ë´Ýßn™FÎ9;[dÜ›"¬|<:"f üFKV!@š±¡ì¶_Ç­Á}Å�ÏŸò½�´_Õ\3ÏãXrRÞ „ú¤Œ L¥ì]C/Ê<ÌÔàá|6ûÆaÙŸû&NЀö«ÚmjýtÞ KG¯¶Q+ÒhNPK˜Õ|§W7NëÇÅ×qçïìG²t Ð~׿õøý)5"«}xwóútÓ¨ÅwTŸÒDz®°<Äí5çOËd¶,y+Î�¾f“uËf…9�ǽååß”¦{t§5úsP�Lmô6>Á+VP1ûe©0¦¢fíøéN#+·%Î’ó?_³q¢­Ù" ÎK=æ\/‡u‘dÌÄv\òÁNÿ_£Ÿ×nÚKìOn‰Žkò²†qÍÔO+äОèÀg~z½Ò[|P’#!+ÍÞô R›bÕ´_c�8Cu°b<Áeú4¥�Â*6J�š�¡nÖ2þBæ$wù<«*ºO h»­Õƾóu6ªïzëžJEÔpÔF?2-”é¹Ä“ûÓ|á‰íÎ&Ò­¡flì@û³ìÌ$¥÷cì#–&¸’œ* 4Ñýå°Žë$¯bÀ…7éŠKK~ÒúéP ýûÚM/Iîœé±«ÓâÖåš/úWMŸ¶«‹W¥IjÜ»Ég(3 &ÚÜS Ëa–ŒsÆ?_/²os�ÏŸÌ<;�Ò1’¤Ò»í·r×ïñq|;ƇÆÊ©¦t膠é(&ó®SJ~›}jèD*¨ºT]At%h3Ü·wH&Y �îòB7p=¶ÎØJÑ ž$YnxÞ�RR0 œá?²Ÿß°ðnݱ’œ¤ÃB|Qˆ2ùEŸ²›vë–ë–ã&¢ÈK Ôv a¡¨X_¿½®†i„dwÀmf+\9ÿÅà�eÓŽʦÄb+Ë(³•Ü–b­ºÄÑ ÕW)¤Úª¤†Íðç�¶wY«•¤€¦€FÑz`Ö)�—´—t } =)c�Ÿ$&Êͪ͊ßcy¡³±Q|›{6÷¬ n$ ¢Å£±°~M¿Ç×hf“FìaÌÿ˜:ñ†?e<ûN3ôk׳5E¨‰lþöòYÑ+©± Ìx‹W�´ß¡9EÁg:»(ÂÊâßÄ0(²UÇRÚg”Íñ½âoUéÏÅ'§= �y ­q)!3Û�0¿ëÇg|=h¤I|d‰õ:ìØÝ/؆H-™Ö½^\G¥øãñcüÿz¾'ߤ$e›!ÎÜÑ’[3qÁÈKÛýVż¯�´—Ãÿš�Æ„’ w²Üd„~ aPnÇ„ù¬ï¤¹¾?ÑBŸ�7ˉHnQiÈxÊŠ<¨¤lr )ªø4˜$ÝË0ºäsC¾s‘`¿ÏŠÍ¼¬áéÇ^5ù'¥uQ)ÎçzÛÌì&/õ0Y\?íšâÇ Ø¯1UŠO޲»Ã¼9gUÀ kŒ�‹­©�áíUp)Ùô*:9™¨È";Ü�©qUÀû�¶`o%A]Öë8vG;ßz²r�4BWýe¬G̵î¨wî®MÍÕ“AXÝ{û{LãjzM¸[Ôixâ1.6ú’èð ¡B“`d†Îx’Ä:þ”úœyÔx3`€ý*+Šôâ4¸.D˜dÍ™Òàt9çà|`.ÚQÇøqyq1i’Ä®8Á"0Àþ«H-Ž jà¸å„MK’:­õœšŸ˜‚Bå‹@vyÇÒQÂûuâ‹aã ÈÛ€ö«,Ñ_Er±šØmaý6¤Ëo³gIš’XB™ÅÀi!êä%b2Ø`¿ u`€¡L?•¡-…&BaZaHϯ1áV�ÔÞ;…Ž·gé⽟R]6 âÖ€EØ/³ûž†O͉¹ÌOâh:ÍK0¨ëE¿™Zk.ŒËª¥hàÍ)S«ök¬d§}'T,ÎH?,:dô$]ž¶wö~޳šEÕÕŠ/Þg -Ð$ø!û»Í%=îF¾W—f[GöëÇ:­âÎW@;i¿˜ÿ«%i‰^Õ™Q^êʪ~£�&âoCƒ¹ö S‹j?ýe��²öKo6«ävk¯˜g°=2šuP›¹#{�xGŠO„„ôÛ¥Â"͇û _`‹–/Úzcÿpí•cí•ýë»Ødj®5¾nοȦòø˜Ñvëd˜÷õ»Ö»ÏÑ©„íZÒ ¿|„x˜´ú¹óZ5¥föÜPQs7!T‰3I²ð-)"IC0À~Ö°nÚ”ðÏ�ñ` Àã÷ êpÕºL™.“[§#ã {¤êO[àwk²30À~•9PÀ¹íE¨×Oϰ6(=56I3N{ïmJLó¥É Ê#Ö¤÷É:/4ÚÛYöqoóÊ[e*ö®Œ”Óá…þj®+8AN™´cœ¸{ñæHeÁ"µxŽIm€í,Óçˆ^:í#é<ˆ¤‹ ß3Sž—ÂÝ8q‚mÙJ$lúåàQ‰] =*Ì�€ö³Ö÷ÉÔQ› ¦-¼è?É'#ÑR@ÎŽG�sá|nòE=Šä.� ì$%ÀÛi¶ .Ïá#¬!Rí}⳧ΗŠA„üÅN:Ox3£û` u%sÁÀ{`ÌÁ�¬Sm!P»sü~õœG¸J¿¥Û˜þr�%r»ñ;æ™êªî�„z:`Oz 4«°×ºÒ�FP'?DéËÀ¹éÆ ‚°�ß…¶xwÚlæRÙù$š1æšQsÅÛ½;Í÷Ï5ìÉ\˜-H¥oTJQEÒ,¢¹û}±B驨ÄùÙÁøø®ïsQP2DeO˜·€*EïÔ…�’$Ù]6KˆæèªD3ç˜oÛ•¾+]}Láñ·MamtŽo½F»)_TMæoÚÑñt0™é Ô ÔrÍF·`�nº©ìº£gÍ}×ûh‹ æ�J'L¾YΨbföPtöŽÉ\æ°æf=×ïÝ?ð≔œ\£IÉ2¶ d‰ÕÖ‘´ë0ÇOÅOMyϨü ³Ý<»y\â]âWstÅüÐQ Ÿ€-‘,fo‘o‘.Cvšvš5†î>î>|{s-ÖŸ©ü¯sB£ jû^;Y¥XÁÉêõêÜßl7'„ù¬ÿŠý eŒ ò©ŠíŠ™o¦y‰‡kWØÇBEÌe ì²â´GÊ(áai{ö¶óÍ’q(sYË}Êt•j’Ô-Y#8Ž{+•_ÏJ–“.±>¨ÅC—[1$P0Àþ?Æ6ÜöqZ?=þ‰p"¹ï!%mgg©\/ë;áT+¿æ}Ô|îò€ö'˜© 6Âý#vj�©EµÚ+Á �ùÛ[ÍC÷Ê% †OrtÁ|ª ÖvØN³¾ó=в”»¶U f Æ%¦JÉÇ㸔}�lc?àßÅò&O’qo °�f¤³MÎci!Œï«h²#@,Ft¦«Æ/^J?¡óDè²è!GcÜ\×üþmc´)æ:âŸßšˆŠ >'sŠÂs~Ê�PrùâK‡D\ÁOˆî¦-¿w^ŸŸ ]‹×JÝk ÙO‹51›ºT37ÕPÓx0'«ÇžTø�ú…ÇØwÆT:®Ã–À)æÜ¢á»ú½û3*%auûøÀ®3d‹cíÄH‹V/-&wŠ©n8£B�eM×13Æ…ÀChU±“ßâíçм³5‚£ËÁ#\‹ø‘/-â fÏ_Ä’�¤+”Ђûß3qŠ›WBO+пÂ\AN·—±-žµJ<äb~G�}ÙG¼5òŠT÷þÓ €ý>«_ì”+}@)8­6ÕØ°§ë=6³ùa�hûL¶ÅŠ™VÒÝ#Bض0 Àv–eØr/f]<¨õÊ�°¾Ð±ðéójá]öbxB,2z¹LAoö4i6{¶³ìY­y¥WæÃo“¦~'{¡××…¾üÌÙô®)ºôˆ|½ýLã²­W¸(¨¢”‡!˜¿}YäC8Ûßžc q«L~¼Ýo_\vAZÈè¡q¯ÇcsL¸¢åqR./$.V'iG/@Š›°ËhÎde†„T«ó‡U1Mðrþx_+¾-ÖfhÆ<¦Ò’z/ªAG-•Ù¶Ü{}mòÏ5ïŒIŠ0»){èÈFï¤{Ýõ”s?ŽŸ ADªŠ³ôù–0¢ï!-ëC•µv; ·Û�¢�Ä”Z6+æ,•ýQ¥o#,$,üÜÒ²ømXFáЮ÷D$€•ê¾»îèu>¯˜Dž•Ë€eÀÞŠèª-Ñ-e0Ñ£;t\·½<T­u¨¸/ÅõnÑ{T�RRuÃlèˆoß(æ•Ú,±ŠšÞ€û½½ ÆV¶FYʸâZÚ[çÁ{‘h’hòI ‰mÆkÌ++pÇqÇ]„>²šù£ÃWÿ¾k]Ê1“ó—óo „î‚îʳ)´)\«t|½þLYP~Ý×ê‚×°cîg¬ðQ„S§ývã)ÌgÝãBO;JK²Qð�Z}Qªó,Gæ,`�=^Ú-xëøÕ ø°@ v)H˜Õ"Ô¢ÃáCRs¨‡ BaZéí§ÓâØÎ·+ç4V&K)á! ê�Vòè–`L¶ž�œ·È»ÒQ& |µD_måÀþÝ+¿êbÙ£›E.û !ã½ú©KÝT,†²,Ç&tú<óÎ=¹ÂËÔB `;ÍfÍ|ß‘}Ð9)J,/Ž?JÞ_7Ø”5˜£}x)Õ–gÔµzH´Íur¿² `€meæ¶\Mñù7Tr 5®4HÖ* é1Oˆ2Üß:R_kPvY?£¼¸T°?ÓògF°–;“èJ®á¤t¯p]˜aI˜&|°`5Sk_lª¯œ^!eâq’ 0À~Ö¢X…e6¥!óîÛ,k*%xV¯Q{H$®rÏÏ“2ÛKjÜ{¦0x·­´°�e¼N£g°e)Yxg£³«Ä™T_7»%âÛV¤K4€Šwô~:y°ßg|U)ìBòzËï ©¤ž½¾\ÁIºûÒPrV0ÑiÕ¯�íN­´Ø%À~�hLÙËfçH�Ø K›’|hYÜIçî$+m°tïÖ�yì¿ú9÷Üt¿õõCëó¬“_×BC�¨‰qÎSy €ÌÖx·šgU>Áõ÷d_çüQ¯½—JŧÜJÝC(¿ï48‚ó Ö]Äð 6?ñüáæó”˜g¯c~?ƒ¹ÇŠÒ§è^˜XÑP—ŠL5Aæy˜˜s¼˜ïÐ`žm€¹~’0) š�aâLF­Ï°`”K¼Ýú æÿÓ^R_AíLM×)…àµé”¸ªÜ;‹ÈÔÀÛŽUQk. GþøœPŒõ ô}-K…Q¸âäÁ®ÅBp×·›ëƼ¯�ô�ᯰ›°Ì¸Nh¼"Ñ@-£÷ÕŒç¶nµ¦¬IÔ`V’©0ø •ò 4°?ÓÞ¶—›Ê%œð w6ö¶ãVõã¾ßËœ›¾÷eËÓݹ6#Ú„Áuc3€ý݆ é2­˜N¢ÃpòÉYH©Ò´hÜÞIÜÀu^UOË/Ä–ÔxÁÊ`(›·k¯ç%[êbÝ[F÷ì”uÙµ,Z.3ÜÎ�šVÜÏ£¢´‡sÇì¿aÅòÅÜ4vûk4Arž:åËÃöKi»¿pŠÑâPÒ;*(\`y•'Ûöw›ÅÕÝózº†[e&xöCC}ê˜e뵨N†ž yÌ#+:ß‘r8” 0ÀþT;#qŒû‚¾Np˜€ù)–„�êæ[5ãáã>åCN‡GÌ'ž.Pâ} °ÿ†MÂY®IÐÕŸ­šÍI7œ-”§`û·¿¡ìï1v ù±Gáš—pµ^áÇ¥.fwc¾Ç SEúŽ?,ðÅ5ÔŸòÙî=fþ®™�)$ÃL½®ƒp£k…—Ʊ™>C߇Í5²•0¡O,qç¾ï ÈYÑ@ÅB¢Š Ù·QÞ«êÍ‚»Ñ>GÅÕ­Öôm” ” Ùv§;¾­rÿF>‡Ö.§ÇAƒ?¾�óÍ$lñŒ…±ÏO–\t„´è #�ÑéÀq¬›Žj! Õ]òzºÍÚg†ê�†ë}tkÇË„ûü•±7ËZ[Ž5.¸dŒ¤ç ^}±ÓTü;CéG[‡}YMdHdXÇ?Ýþöî;œêþàxÈ™Ù!{""3#";»¬²EfV(Ä‘ì-$ÙY!++{edE6•¿ûüN.WÊ÷{õ½ºÝÝŸóüïq]çºÞ¾Ïë}>Ÿ7°ÆFZ>Z>ºžÚy)x«ÇöæÑÉOl�h�è�ŠÐŒÐÌ»Å"†"K£ àÌùš|å6ÊÕHañ³å¶¥¥-Íœ�3pi ¬º½ÑL™ñ+#”®“[ ÄzÄ|ýµÊ:‚[ñ>sæÌœ_{^•ä‚JŠØuü׋Ӷù÷4ÍÔš9×õ+Ï:€vøÍË ò‹““qvÐ"NÍ“é�"ZBoT¥e$éZ*}}z½&ÐJÍç§Š¼¡ �ö»Ì%GÅ„“Ì ju/m†k1 yCÂJ*�£ÌÍ™õé�ý¦ä.J h ý.ó¥ÐÌä©6qðìž6#ŠãÄë 5[ô� tE8¬7>Ö~€Ùe ´ª9F=é?£¨®€o††î_ðÎþ*4ƒâw¼óòmËWæhÔQ#žÙŒ&“²·¢ÀýµÌ´k.K¬£6ª—§_[ÆUʃö×Àÿ¬ 2vÓZß{øÕœ¯”ý¦ýÅPÆ—í÷Ô—õÌ\7bQŽjÿ|Í Ø_‡ƒ¯K)^0ƒ‡Ãò¥xüœ¹í¬xÄAûkàºÓ½O²%;|¨/x>‰j¨Ä&›GMß‹Áô̦Æ[tBÖÙõÍÝÌpÝhD\©TÜ*ö–+“ª +ky&Ò�ðüÞ>†GRü.h´°X»>[î¦ÖöúÕ~Õã›ùà MÄ~ÿ}©ó©óœÇûç¾�d·Áø�òÝŽãÂrë„'BàmqÞº´‡B‡BòÞª?xuÄ{cìèÁ&X+X+½pNýœ:ζ'l«ÉÖÀS®»]*�6ÓD�"A˜ËA3&à{ûZÅŠÉ}Lžê'¢ë8]ñt¼e^½¨…Ô!¢á!É1%Êûù=E€S é·;e´FúåuÉ–6kb„~xwèÎŒ ¸®Ã4ëû'Zð+=Üð¤f¹úŒJºµ“ŠPÙë”�‘ÅJHÇÒ=´£J¾DRå9¤aZ‚ö÷Y±¡‡©}ú4g£ŸöY2ÄN"™OϽÍÑð^º Ÿ2öœZpNzèÇÚï±ËøŸm.¢…z3-ÉHoSC,ZRÂÚªìÅ.¦W‘KJDFYœŸ¼ h§­X™ˆ�Ô†¾µ™x¤’g:S±�®®Ðã}·+òƒ«scSõ ôH—16hŽ]¹“^湌–ÀÉLŸ¢$*¬œ¯ðzàZ†êdÖÚ1Ó¸ó ËF‘“M �ö»¬(ƒIË“#Ñ”Ù?"¹ÞÖkmÙÚ�r9Êr¶Žzns}=qæ˜eq¼±?h ý¬<µ8ZÆ×�ìXê‚òn,||¹Užì²ö 6Œ'gê„×C'#‚@íwYÂ9Ñõj,—O³¦)v#êÜfØâ„X"²´Z¶+‘·°ŽÛ §qó’t‚Ì4S©Z“IÃ¥¤G4�â} ÄpÚ-‘ÇyWÝÖâÁãc½bh¿Íž¸k»UÉ`1 )Ú@?‰P)hD�Îo7ÇfÕ’ø×³#.CeIäAû=VŒh©ò(øB¬ŽfhÔÃqò\eïlâ3W‹ª«eº§2†1WHãýtfAû³Í1=Ö+�‡¹S±µ={(_µEØÁ ñ0½/æ?µDe¡;ªÓ‚²}#YÕ£Òi‚ÌH�çdvò‘mJ«ÛìÈ„µ«o³éD:'Þ—õLgÉZ~ñÑÅÇXÃHb\ˆk�ËT»£±Œn¡²uso„Ÿž“qÎɾý›R¢æävÃÐXSž½\>§ÎAçdÀuý]çݺär¡(êa·Y°ÆH·¾tÜ­&TÌ^)jêÂ0¸Ä”(Zøg6ñŠ"h ýª¹gV½¬æ3Hï�ÌímwV¾M˜.ñ¼NUÂÝ®zùY�G¬ïLÇCÐ@û]fC)�ä�¡1@Aµ=,>?1C:Iöø}rtÓ­hE¼]âT’j÷•6ЗÍáúÓ|}/KİȜ‘¬Vø@Þù+Ô6“l‚é(.ò2ÎEÁZd›ÄVЗiž‰ÚPº/ê0¼F†½X–›ÌÚ0}Ž~ÓD0t¡g˜M…ªWŽ&4Ð~Õú>ëÛ¨Ù©®;Ú DpIˆ4à1 “ ÝÐ{ždq_?©óJ9Bâ%Ð@;l¶IP–Ã…Qƒyùí‹ûØu>DT‚x݇é>áýŒü£–²S抖÷à„µËñù••à§;š�¶o´”T™õd¦÷žÖp:è¿Ó¼}çníàG`÷�à­î¶¯‚_UsY(poI-†°È6�6tí÷Æ5Æ7 3ŽÖeèànï)»p÷ ÍX” Vr`>ß÷I�H� ÏË|_Én(�wºÐŒi‹lþn8¼ñ,o¢aböWììGžÀCi‚§¶]¶ oM’Øb§ñ&XqS°6äÝ™öËëœ�±ÍMMx™çŒK„G÷ ý¤�.Mé["-ƒþ2䳌¯ì·Ÿq(ý¸Lguþ$þ$ª.‘Ä»>À^•¼*¹‘r#¥Ñž‘Ól^ âÞhÒXœ�ѪѪ)¿©&ª&Ï LL®»ñò3p&ôdK×-Lnà¦Ë„æf�*áÚA3!à�ê—]Ÿñû÷¶Û½è5 ݲR‡,R#vpC.­¦H.4”£‡þ|&Ę å}› �×ËŸ²5I6±?þZ£Îuô ™p]¿ã}á �3j*©T™6™Ì+£ Xcµ_&‚�¨/jYfKǪ¼+%´MÃ>Úá·›Ô#™›Ê®óú[D[�Äö(ÑÞÉ£¾©Ü&™È^C›ÝÔYe¨€Úcôc­s š_QÓã^ð'àÉsL`’ut¼”Lã §ûÀŸjâçeÔGÂå*hÿÓçE˜u�CHíÕ7®–ïç…º}j¶£¯xúq™HÁ˜À™N;Ÿéjôm4Ð@;lÖ§×{Æ 49ļjÅ0þZ‰þ¥¤³±Ì² >Ö×xÌc>¢†ñÆK”pm ´Ãf8íK�i©§ªH³ÃiuŒÉõ·®u÷ˆ¿ wŸUg@×X�vqÞöû_µY13˃¼–$Ä8‚Ó�ºçñÝ�³k ÑM‹Õ›Ö Gy?Ïv5þðyç�YBðvœr*®–èÙ‘é¥Ô�šåùúö„“9Y½V8ü£ 7òMȵ{Úm$µ³ …‡¡ý|–p0KÐÿö^j ÷ï:ûä —ÄŽ`Jåƒf Àuý¯ï†žr}Et‰_Á*. SíøúDÖšq‹‡ò)×øó]öÔÒ½7k:9 ©WÚA fˆ[2Ô¨ÆïŸV¢ä^­áß |ǼŽÑc 1|Óƒ÷.]º„Ì.´Ÿ ãßs V’¦8ëDSŽGŽKÝGW%üÐ"¯½@‡¢ty¯<Õu@iå hŸ½^ï�|™B(° ?ßP�Ý9…@cĨe•I¿^¾Ør§^�…ÁÜ´Ãeæ¬ëYw†O*÷»b¼.´)¬|ó•„¥Ýê2­„ÆóSÐQìFÅ&o,З½ª5Á«ðÈ|Úë}½qÀÖŠoÈ“oõWî¦wNV§˜ÍÓ >5y±Å‰Ÿ(Rv <›…:Z [DvU÷>à·V‰Cúá˜wÎfùþúNέS=Àú=>¬í&kæªUÀÒQ�¼7ÚÍ·*°/¹q*<º7E\·1Xùä E°z5°)wãœõˆÝ/ûÛKX+Ñ„Ýß—)�)À�­ø}1É»}îß)«µoÖJ ¼G[͌Ūf�OðŸà„ÃÓ�‡gú"/ž%'ÎNÔ°¶r`}HGû²_ä)°Ä>R°oUÃ;EýY8{f¿ôÊGk¸(˜¥n™®?§z®`´œþãÄŠ;ÜšÿŠ;ÿn5°TâTbQQ|"(‘¼¯8{{9LéŒ%‡%çê" "M�%%ÝÛ­àï)Z©à« ez¾‡‚.Iùýž:ÊÀK?=é‘?±|ê¨PY¬XÊí•„õêD•¨Hq#B)©Z& äaµü5îЪSÓL?¯à÷”1á·÷ZÝð³yþåHظ֬m“ÕA¿§€ër{4«¡©,ÚÀûAþuQªÃÒ™Ì%ÐþËß@ãõ={  ©# 36n·þ˜ØüìÝw8•ÿÿÀq[vf•JȱW”½GöÞd%#2+$ÉÞ2²¥¢defËÊÌÞ¥PVÉþ~ÎïäçêP~×Õï+õ¹=ÿ{\�ë:]×û�û¼Þ÷}¿=xf¤fl#Ê}ü5š;øæf¨¼>]LêJœ®Wg°žCµêt ìÉ }»).kŒ’«˜|WÝZ® °¿ÇPnG•^‹p½òFë‘ääÌ÷JüW;Éhô%iا4z=s †º±�j" °ƒfófwßþ Á'ˆ+-Œ9NÔ_;ô ;UgX}fw¯lqŸ>*'`?2s0cà«ÄÜÛòÙúÊnõ¢5yu˜Ì“bõ�$¶ 0ÕÕè•\ÓÍ,-*Vìϴܹ1¤µ¶Tª·PÓ:×ÏZÌÑ$Íb?\²œ«±+2Ñ•Ë(3öà; `¿j±´$Ó_=YÎy`½¦r1ɳj“ÜC$yƒyq‘à´�¨rÊK™¡´–â6À–±9Žk"KÏc\åmæ'p·ÿºS¡’S²ž3¶ðëžÏ|á€ý>ã¸W™FÏ+­³öŽ3�LFìåàµ2Jd·¾èLYLÙ#G%m¾�ïìvL�[54zÂâÏ—‚R}€\½î¶6)4À3ăW€t¹µ„ ïVÖ“°ºañûK•îÖÊ4¬éìAEqxdÍÒ„æù+»þµ–ß…Bx}¸Sâ4�ów‹°_9|.Â[çÇÉH•Yvàuà5AB—Ý/"¦±©±éäíä]ß±©Ûí�’gG\HÃë^ê^rch(k(»¬eElE¬–gkMùÃ×ÔÚ¨X±;jŽÓ­ûœhQ3×öÚ?A\ëé¹Õý°;NOÚìMeqjN 1�(dv€oÔ˜ÐBÈIhñ>’��É­›fögÚÛÖR©¤óÇ\.ùØ2+ø 1‡'öœ ÉÎ ìnª8”m=¦ŽR;1Øßm3xí&e³*̇|ڜŗL 'íì�—që�tÔüCÁ—–|M9 f‹¶­5Âl‡WÛi K¨^ò[•ÜzFiÌ(a†Ö–Ç]ÝŒöej\�’!{Â0Àþ;ÖŽÂöhµ Š”§Féڨ݉bÊί !JTÒc22'–hú2œ“XöwÛåë‡u,ÚG›%–¦Xñ/˜FøÖž–`ÐiR˜Ž8Oñœ•÷¾àâë4†FÀûSMS„�ÙBW#$ŠÛœŸæ<6gU£_õdô¤oé°#ØùÔK†¼‹l/MI>Øæ�in‰éQÕiWÎC3ôçÇó¥‰éþ¿ŸËìï1úËÒ¡öB�£U®¢©õa&sæA˜9×}{^•\Hý¡˜1qÝÜ”ãó;ºÖš{Ϳׯ<ëØÁ·Û¦±_ÜÜ.g…ÍT?˜ú ¢'Ø¡!#$EÛ\áw÷Íí‰C%àOï }‚l¿ìTÃ’�òv°Ý�'Ópçžâ¢¯JØKÇCո؟-v8¯ùsÞÂh °ý2¿cºO¹«,]¼»¦¬ÉÙ‰Ú£¬—¼‡91:c\V^¥èà´3âGØŸj®qúΪh)[ ÌsÖÎ<¶ï¼|L“Ì´Î�9bÎ=“ Y–öˆ²!^_ËNÝÌaJpÕǼííßš©}|¯ëkÄ{Vºhìï„®ƒ™ˆJX¯8KF1¿¾£ ™0²¾¹š€�DªÿóëköÜÓñD¾?\ŽÓ’‰-·[up¯{:.À>ôÓ±LOãí³…Vû I^#ñíì…l¿¬`¯c<=&‘;3v@ê‡5e¦e +]'�s;Ð×کݺZæ ã-ÞÚ÷ålælÞ?.ÿ¾Ší*e·ÊÑOÅ�EC�’Ï‚ ëádaA~6n6®=¼§ýðÖ¬ÞÙ‹g踱ÕËhXBW`¡Ï²¬îÖ…°2¢ú•Á�ðôT]×L¼¸,v+.m}¼Rš?î«qìT…Ùífº©ù§?W†}„铞¶V1ÐЇ„Ï Ÿ+°«¸4ÙàMpìl: %±ódçÉê EO‰žêk€ú@},FR¥ÿw­ãÁ×”j’@&7›m±xÒG°ãŒxÌ^¿Ù×úA:Kìo¶4—wõyÙ“˜fª,r¹'éÞ`ƒ;TûˆNÈ�sÅdÄY[cb5)6 À€ýûŒìf§…šä%!V1®{¢¬å² ’½¸þ]äM[iþ,sÒ@¯Úª!À;hÖ�ÜëëfÔ4Øã‘AEÜtÜ^763’á¹Xzø}+®v‹Ç@*i^‚€…˜90Àš1�S¦¸»Ë?ò&%äT301Œ›êúIÜtÕõ� Ñ{[Ö7RIs\æBœAÜ ÐBVJž¼¶a#R><«¿× ñ¹4á"+ïjo”�‹Ó×|tW–\׸cïhqÎYN2f \Bþù ‚aAòm�¯ÅÌ>“Äóïƒci×ý)!¬{ý^Dü^˜^�Oø[�.ù­�¶ÊH^a­ØØŸ`®q5 ƒQg }AIgäY‹ë’)�²*¾ð¼äíT$Ò]¸ÏšzQÂ5°ƒe-^4|„%ÈZèãÖ¦RŠ÷ª2:�V†%6Ý®n@5µ·œI¿»Á'ê¾2 ØþØX§Ä$S¤ƒSOÙÊÓ–‘„q}Òõ¦} )Ë¥¢z £ÊAœÀû‘ñɽøØÔ¢Ó+Ng:¹9güx\?¾<óžZ�"U£Îêz)�üñqÿlÀ~ÍòL)¯ÔúEVžîAóÊfÌ×mD¼Vmà�-PõпÄÊÙœ�j?·×µ*â3ؘ'‡ Tp™Vi½�IBú½mÑC¬qt7S)oÖ kÈ÷ÎýüZ•óûeTôg”r³^:wœxp�±}i¯ý2¾>S3YG,ûCÚÈvf9ý­"gqDÚ¢w¶Üá„j2Cèüª\fg ËTf°Zæ�òaeÌ}VßεHa· Clƒ°,MMî}ÿkþ×é_0¾Ï4|;ÿÒ­ÐÎH}†5$Í¡oHóy!+š§d~]~]°<œ1xõRNðN¼kÝŠ·Öi&X›÷ð„wKÏ–MΣÆFoxF¥¥ä±²„⻥mçRü Rqñ@£¬Ë¡^ÜÓ–Ùq?΂µˆÜ¥Ô¥t½€Ï,‚XpFp‹-‹­S8M¼ÐÎu5  8ý…ú õÑÆÁÆÁ”Ñ‚­5åüí|OŽiQÒ}Ô–~s !ËW÷úýƒ¸ÖÒ»þm6qx´�&Œç¤é êÑ@¹Ôff•a ,dß Í«ñÆÆÉ¬B³€ýݦõ¬:‡ú‚sÙ›Hç;£Òf çÉë´º¥n²ja8š祆ØD½êpÇ.‡v°l``É(LѲ›ã‰ÎÚ±&P‰årÁÞ^‘‰Ê�Û´yhÍq‡+˜ÓÙžv°Œ-(‘¥<ÇDŽàìå~ÐyçCÁTMÚœ ®apðx·™ˆóBô`�-ëßÿTÕ žP’µeõ+ã3‘+ébä´`ù’xô>Î}gGÄ`ÿ>³å0¹d}\úI;¹Ò½†Yuî#d•Õ6¤X­zàqñé~1¬ÓšÒï V€ö;íˆçq»Ç"Q]¹ÅmWóÇ| œ [ ãMWyŽ<\»ÜœîÂÓFد™{D1§½IÓ2 3”4ç=Ý}éGwgL9ò¬Ny˜ Óú ‰Z’è{͘ßÛ×"VBu×2Ý‚eà¦ìíz\?§GÖ&¢ã¥È µ"Ëýù™2l3¦ŠogÊè ÷)2P5̯UßæûáÙ¡[óÄïu�f}¢E¼42ƒÞKm’¯Ï¬ ]>¡,g|üUl‘** ^†—~Ü‹/±Ô¹.Oplû}Vdæeåœ1ÅÞ÷Ê_ÿ%J;™ìb¶�õÜ!¢b¬S—½ßϺ§†ú³¶?¦@üÙAòP”h^žDfó$§Mó£ èÖJg1ÉŒJ*)‰Ø˜B[´�O“ €ö;mÉÎR„¼&ªÇa"\=×jº|“àž–R÷}�ø[�±ïnº¿j¬šF꼌ØßcÊ×3ª£oÄ.D'³3Òù{]Æ›o²œ©1ùlÏ*‘_iÁm6 %<«!¬gEY–#Wl¬ÅV=Ú�Ý…,XºöAþé>×îÅ^–‰¯Šú�ñe‘í9ŸÒ‹{Ý‹ÍÿÏgÞ“.‡ AƒB¶«¦?zi¢1ØãÆÎXˆ2`•m 7E¡úÛíì Q*¬ÊõbXK'[Ѷc¦AÞ­,Ó6X�±èÑïëêâ¾Ðú}¦¢Û1^Øê¡@þÿüE�UãÁ£°EƳY2I M m‡Wg /ž�;ž7}éV#S°T `½�†µïÖ+>Xü§Dܺ>«‹¼JwâÙ­¾ÊÞ^q®bÉGÞ!o,²?‹„ˆYÓ�úqîe8hüñüñfÔͱf'sØpØ {L÷8^WÃP~žEÏÎ¸Š‰f«Ä¯ÄwÈm�n�¦%!Å'ůÁºã¹µ¦è¿Ý‹}\¢úÄfÃàhc® �üsvƒ½ö^×úïÚï6¤’�ÂXÕŠ¾Æ„;J�²ñ¥íV©JÖÂpac'¶éED4ÿ-Á DY0À~Õ�îX¿àZм;@ˆÎåüÚ]íi†Dv­†„§SE°BežW‚ßt[(`€í—9—A óÂÖé?F½9$þibšb’2åmZ|ãÕéàò$nZÈûT�.åVÀ–}$ <½þVŽŒ~Ž13M5:?@Ñ}5Øñ)å�}�@’D ÝÒØÁ2ݳq«ª¾¢.CËT1ÑøsÕ±Ñ9iÌ SçéÖ,¢f»‡XD0¨ßÈŸ °_µÞÏ&êdNê!+®Î|1"MyDôèä¨FÙ©6¾:Ä©íÊeÈ�‹€vÐl�¤Ê�]�£ÐSà‹_{—ŒZ€¨ë �'¼›Q}Ðû{w õÿ/pÜ‘"[eÉ’([†¡eß—P¶lY‘a&B’]ÙÆ.‘-) ٿٳoÙ•%k²R²¤ÛÜÉuû ÷žß÷×O}?ŸÇszfNŸNsNó~}6 çŒy}ŸÞÔ5òvÕy´f5p&toå¼ÛM•Ëk#zËùZÔ [Í„€ÏT?íú@8°»Íáq7œvÅ¡OG:ÃŒ×.UúÜ{_nº¡Œ8òç3!!ÀL(÷ûú}¸^u_Ÿ½U²•#y�n­ëÀVëwà~ýŠû…ƒ l˜ÆÌ$ŸªØª˜¡ž?0 !¬ùÒ{d$ü”9³¬¾m¦BœæP µcTäÃ=ûÀ¶ý›%óëŒe ×÷¦+4+Ф¶ÉjØ�_ª€®•,'}b]P“›�bZl`ûÿ4öÁ–wÓz_ˆÒâ 'R¨BFH¨éÚÛ‹åBèÙÞ§Zù{›¿<Àï*6°ý͆;åú7µÛÔ¢Jõ,Èm®É�}ôÌá;¥ùƒ"G;|Ñ UÄ_w‚ lÛ­½4ê> /IŽ@TΛ%™*Ý=Ç¥Üà‹B "blj"p|(’d\À¶íÖÈÚf�F†0¿­¤ÍŒÂc5´ 7]1~Þ%ý˜Þ}Jç±îÂðíkW¿úÿÝ�Ùº�‹; ·9/žêpðy™“”îÀYŠDrÙæ³%*‘öqª³qÓë�Wg á_ã5R÷êKöÐáL̦.Ux__͛Șõ¨I&< v!7lD¥ÍËa‰*Ù¼�G4êæÎŸÏŽor~ÉNkF�Éò¯äô/%¾¸!åµÕù%§¾½Ç‘<>¨#ì¨ð_®®Ý�žC?­§>DX�Ñ 3H­_À[ïtÄÒ †ÝÇ�zÜo TÖè¶ï…l$P¶Hƒ)dÈþGt•t•Ïbô®ÿ¨�zMõÎU½T2­'(`ñ×BzG‹èL•L•p±NJc�úz¯+ÞWôä*=5 4†…ÚôFú)0²Ñ»ãûð± Ãü¥_LˆläXAƒ©õ|·Ke—ÈgS“73Ã�›ôôn³,¶,”î²:ku6;6;öãQº²ÂR¬¨ÂõüçÕø€æ®Ï]—i›ÍšÍ²¼]ÝZÝ*Êü¹ú™2ý~¯s÷[>µŽÉO®µãµ‡ÔØj>ü¬ÿÝφ~ëZA£$¬†ŒGwh“/Ž´’.X4{h°¸P¾ïtdV趬îà3cžoØ0 oE±�™Èb4¥œžs®6¼<ĵHt«Ë"jöìy,ÅPšB�C0ØþyMœòºsøY†ã·Ê(è÷2·Ä³UЇØä¶å2”¼Ûñ•¢,Õµçì¼:Øþs­n±]®ø>µü¾2ô»PÈ©kOîæmµž"8£ƒóÈùÀB Z'uÿò|âbU’fÌ<´°·„V;ãØ!hH•ª±@d%Ë„óç÷µâ¬§,¨¿ß×ê‚Ç ]ö'œ›ÃúSöYœÈ­¾û÷Ë-lJW3ZC²öFµ® ÕiöhÆ,Øþœ–·´æwÜ%(>-qD ZKÅfnцOzî›’›² âã¯Õ¶íߜϫ™,¦v ¡Lѯ3ü’C¿äÀ‚p‡f�.DHKD›àåª&újZ+7�íÏixÞ‘¥—ïXvë<¢�½Ÿ�þVíä¥NVYV¾ ­—î9çï‡8CXšÈÀ¶íÖfÍ|ß��k‰ˆ’Ê‹ SôÔö7&E÷gir,¥"x‡¯V½m¹:¹_Yl`Û¬™#¸ãs½U² Ô�ë%k”„t¹Í¢ öÅ·àq×Õè—\ÖK/-,VÛïÙrg†p–Ûï*Ðyâ'w~9Zpa†5ašäþ¼ÕL ²ÐTO9­LÊÄM„l`ûW[4›°lJãÃ…œ{ÖËg”Ü«¾p“H\á™›#;„”T¿S¡Ð‡ ¥¸lÛ«A쇵qe)§í8“©X)~ؤÊËÌï”o�‹C�šC¢¾#‰xÛ‹�"a`ûÏ5þ¨Êä#BòºËo )4 R}—Ë8‰ñ"º $ga‰ö+þõìa!tÒb—Àökš¾ú{¤lf–ôBXÚì°dŠ5ÕÐâvzÆÛvjÅõ–®�zÃqCy+Ÿ²ÏO÷\ô:¼:g�ü>ÿ çV#Þ%Æ9Gã.ˆgö²ÙœUÙèóóäßÏwÁœ¢`\,ŸF!”ºï6‰ü¾³TQœŒSƒ3¸¤sO�¨�Ï^^?¼†ÒÇ"<¼;‘b¯;Tdªˆã€Ï.Îx�ç;Ÿmð?3åï×#2ÏE½ÜO?¿Õ‰³DËm»é¹C’(¸‘� û 7e2vb²5Bñ™X›^¼€€3]†£.]°A0ñòò@ <8àöÙxŽ¡à&6ßþù�x.Û\äåäçä„ò`>ÛŸÁûm„BÿûõÛöÃ+„"È åÅ�ð @¾ý’_€—‡ÂʇÃÄû·íÁO6ûKvF(&&”��ÝÏ~n«ßÿM7à9ìè�dhªÜ6t€‹`““úVçü‰~{œ­›ˆùÒù«kv<~ˆÀaê–Îq^¯ à †ÃÄÕS „ ½ë•¾z»Œ¡{ñ�FyË“ÿí¾!×;]i_ ÿÙ€lˆ³Ÿ¿þ#£°5ñü«B½÷Í`h÷$ÈaõQüõYôJ­™‰™Éµ|¬}•X= ±´Xbãé«>Sb˜dc°FªemÄãҥôý9#¬ã~ǘ&<‡6pÏ,ÂЃfiêeŇb]ìÿèµ¹Øø[é˜?0,•oL+šÆŸÆ_R_RïN£Yþœ�%~s=È”üc À¥À%ªœ¼Gy�F‘)Ž)Ž´~Ð&àñØ„IAÑ„t'òzLó†Ù¤[�þŸÛZTWvÀé}»º£E«èªÊ�s8h–zH+NY�¹tŒãÂÏŸe-8{ƒ»_˃R‘”Wñs�Šê1�òx&Ø~Ï6ÚZj*—pÂ�ÁÉØÇ–ç´¿˜OXü –àì´½]Må;³­‡4I‚kGfÀög·©Ý¦eÓIôD÷EŸƒ+Íà Æ�HÜÒz.£Óºþ!2ãùp~°� Óæl[kÄ!äKl{Kè+N^,ñ|DgÂ%cFО/XÝLðibX”Ž#{6°ý;Z¡|!­íþê3xrîZ¥ËƒHÆbºÎÏœbtøÔ v Œó¬¯ÒÉ©¬Áög7 —�sº:›eæ'x÷ÃÃoÔ’áÐm:=~‚6�W(Vt®-™#œ l`û]›¶Ï=­àHAó“¬'H UOýªÇnŽÝ(}mÏ1d>QÁ‘¯©€S½ØþmÒ‘ÕSJŸ¾î\ålVšÁìð_ò”ì÷5™`ûsÚ ù”؃›g.h¼"ŠK]Ì îΜñÓ´v=`>Ô‚wù�OþV3g±oïqÜ›Égg ¿}�aèý¹3�ë‘„'àa8P'”¥3Œ®÷™1…Atàh'†qU jM~ç`úFfä=0(ƒ"䩿©F˜Yø£Ï5ùZ«¬ù÷ãbhï>S޵î3Öð‰<úcôDz¬Ñt¬Ï. b™J…ίÊ}…aˆQÊÀ¿‘ ]~·dNOa™ž¨ %4P؈)‘f\²‹¢^˨²o×°�m³&¢\ô®©E÷¥4;|l%é¸ÉƒaƒÛOÒ£4ЪôO‘»–¾”’±«öÏÛ¿Öòá�t–µ~�•‡^xdsý¥+ùø]µ�_ññY7c^hs\rjf«ïªÀ{Ï1÷õž!å^bór¤ ¶ëñ²Ýl½Kïë]:×:q-•—SèŸW…nòÜ(fÖ%fTÀœÅÔù¶h>r¼­Öe˜/¬ÿÅÞ�GC½>ÏV‘ìÔDB"Y² Æ%1vYBb¨¬Ù÷%²UЬ‘=»p“%R–B![¶²$e “eÈß>grœ×ý�û;åv?óúï}æsÎüñüó<Ïgž‡×NŽWÁ^¯5y‹\Ïç {éá|ë ExeŠfrW,XƒHÖ»™ò¨ž–«dá!2Öì¼ú‡òF²¼e÷¨Ý”$´³{g÷R�?ÎÇBv �Ϫ·�•sÎ︰ôR*¥%X1ü¶¡¶¡ºo°ü±ŒK°å{SW…åJüè7r8�§rfÎF ‹å"_Ob¹ÔFrŸDO°‡b®f¯ìÔLÞñI#—ÍÆ&rsÒô8¬º¬ºNËgÃ.ÅãÊáÏáŸAÌ ökâã=@cA¬×{º›^×(ß(ߟ·GãGã§‘CvCvsL j«cÊåû½æcR´Mz˜ã%þ“ñ!óö[ÍpÇúv:Ãê¿ÖãÂ)ú[YoØ�F0õ"êÎ'7ò¨÷jŸÆ»‰:kg`�Ä+1¶ß»içTå3‰º”uÞq¹Ñ¯`ŒùR£Ý!ïÉ«½ÓÑP²05Ä:¢þ�;IyضW{ÿ¾wÇ…Û*æ÷u–¾â|jn9ÙÕG½X¾ÎVHØèKQÁ“Á— ¶íÕø‚Xwâ—ç"È9L»9ÿpAŸ?™Êz–-#+Øk<Øa wÁÜÎÛïÓæKõç� F©*Ùðú— J"ž¶sA/ÿ’°_”lÏû£moÂßóqƒí¿×l /Z2*ÜᇨFÕMh í£{Qeý„–¸i5(3Ö-M|ø¬ÂÇ< °�íW¶}ÞŒ0rÛ?áí¥­ö�nê»P6Å-ìöîKŸ–6mÌð á�n¥Û?kîá﨡v†¯æ�óäÑæb¿«�yw�)_™×¹pça=NÔKušH�­Ö˜pÏ+n’.að3Ï0L!ÖwS»vÙÞª:nIy»®ã£ͳ +øë»ôø6Ycª1M¾r%ÍÐ2Î…TÀÛj�IúÛ3Z‹µÎ¸4òXÖ´KÈpè7ƒð$¬×â„Æ.kuÑ!C>¬÷Ü4tp©F4þšqlÍq�!µ�Èùô]hΑÿ¨ÎºÎZ«°äÄ�vή*^µ{S t캠ÉAõÙòÃ[k k ß0,È-¬K¼ê­X6þÅí«nšå5ÄAš�ôõj’½Õ*ɱR®¤›1FAK6"ßmnuý4œ õ§ë¡šª�3uÁ‚Íãy³´°´� ƒ5&ã l l²AÚ ‘Ë l�¯°Ò×†Þ Àåkìkìh¯•¢•Œ9gÎÂΆ\S!°cJÙûNåü1†º©¥ª»’b›ž¥½ºÆ„;Ö·Óúñ¿±…?¿`œ•úJ¹öAÛü!õ`„c}Lñš½Y>z±%_b˜ \ïï±Û¯kÅÆ>.Y£üïêoé “Ó㿦Sš~èk9¹›ªÔ‹†˜ÅôÚ§ ÷ÔÐ[|`û9í4õŒƒÜî_Î)eÅf¨ucfPdó i¹¬ ò²1ÑE6„ïLJOƒ l¿²ÍÚšÃ!ÕoPašcå+äQÚªw½â®¶Å|ôt¯o¨ ÞÑfJ¶ß§©]ɪŠôˆÁ�G&ñs±ßñþc­¡`ÛÏjŒŠ·}Htº2­ôÈŒ£Æ Ó'¥Å5Ø�—'ê ±¥|JÕjWkÛöjŸ)BÐ�äz�v&òq€ŠûW‚`Çlz'!%†\ŽF¼šÈ!¥ lÛ«érÄ.ž¹)åÚ3ÏI6Y™ŸÆS7úû’¹xÄDGÏqøN¦NåÃA`Û?m]3†štΚâ! —]Ä¢dᯠ©ŽA.]x˜j}S‡:õµZ^Ê)°�m»µ%šgy$U{N¿}r“쥓8Uûß½çþW5†¤†[ö,Ò÷=Ê΃¢Ue6H³ wMèÞòy¯Hån3”îR¡íüVkB³îŒ<»$èÏ|t�¶*›H4:íù§h`g‹ó“N£Ëδe “Ìø­‚ÐSsïÓå'êʈ#þzMHgM¨àûü}°VeßGó4sŠ�—ž}[Íßq×ϸ×l`3“B¦R³R¶Zaßiõ×÷GQáâ&ÌrH›\ÅxÍ�§´.Q÷Éö�mû73æÞì% ÏqÃeºehJK¬Tl˜Ð?SPÇ\Ž“!©&ø•—6�Rh�&ØÀöiìýMŸ't¿îÊJx"šD¥Â‡"¡¥om-•¿ÏÇÀöQ4ÓüÖu“.ˆ€§ØÀöoh†0<´çg¼ÌNCÓJ•w°`¯éWÎìCêG’ŸÁ ûÅ8^;û)V¯ìض[ëºÐÉaô4íŽÕ‹YãÄ‹%†§R…ã¹u~vA…¬îŽìº³Ã—*EÖ³l`Ûn�¼eªÞu?”ùÓ‹¹Qø¬ú¦ †ËÛ;dž0x£µ�ëÌÆy¸¯ÜúÿnÌ–Å\Ü�Iø 4GBÎËž öÆ}�ãË+£"È=šL¥äãgP*›ž)¾ú‡ì·g&γDáz_p£pMGž‚t0ý£Øò&ËA€ç'¶ê;#ë!†*�#)üe€¿˜k( îA/d{L"¼c´—x/q�Îëç>ª­¹å³ª«{fwaÚ Ë_pd‚§ι4°4à‘‰%K†d‰ÎÆ:ÛM¶êò9Zs- ÜHj€m—n.ö]Õ²«þfÙ¼æAŽ8F½íãwIæƒ}ðP8ÅHô¶gs%oΛí ÙAÓ\v9€& —›¤›d¨S¨“쉮Š{,¼þõ*ë÷ãšõ�õeŽy³øf‘¿Yœ\œü �}îú”‰Ô’õœ™]!lÝV¿éèW×§ÂW42)‘RÝô;F§2«0ãµU¼I‡òr:mÉEûT/= C)·\s^¤I3iá9¹û¯×§„qÖ§ ¿ŸŸÐ;îûÒ%­Ü£¿5œQc«õ)ÜßÅ?ÿ”–:SIé…„gtpÒÏù'í“çsºS¢ª¶ A¯ÏR, šIçM}4X<¨ÇÛ\˜;ͪ^ó3϶€ l@Ã_VjeÞe:”QAl”® 6¸2Àµ°+ºÃ4jü¦ý.Õ@–b ½sØþ{M’ú†[øŃÂn‡Ë¨(™›Ø^H†Z´ê|ú™h…ª,Ó³û̬Ø~]«Yh•/M§UšP¯«%{ý ï°É1­XÛlö…²ÉFòZmn<+gj°m¯öÀŠg!çJÏ!�wž$5�W¼ù ÝÙb+A$Â*«ó�%¸�¬^½Á—lÛ«=¯6§*÷ÉÎèô5¨ïv´ùpMdîÜ£¸êF¼;í©­�ŽètT}Ù‰ø»Í=Mû º@g?˰\£5] ¢Š;Ÿ~ê(®yÙ6΢zdÉ^m«ù”Ü·gÌë®ã2çò]3Œ—w²ˆ}„fœx=¿ã�.IÚ6¥Ï†=ë¹@Û3Å �9aF×5åõoÄ7rë Ç2 3� ú£½W÷^ ¯ç„ü(?cM*|ÕÄÇ0"À‘ºÚl¬c+=íœíçDçDW/‹y�…>ý+P2×z•§? dù<|#7‹‰(Oçxb¬‰mðEዯ7RäL*³û£Ù}¬©V C£Â¤­%a›3ø¤f�P“Ïâ¥Ó�f“*S4cg¡ÅõxOœÍ>~Z©rQ0âË(ç_Ÿ¿'€3Ÿ2¥ý~VÚ%Ÿ~‡‡_vD"ÑŽyœ¶[ͧp—WZG3FCªöQ¥¦(ÓuŠ#{ l¿O{´¸æ/|%8!"~Tú’†Í4Ü´Ån$¥!Ü †–GÛ„—ûÞÒz¶íßÜΫ}+¥u ¥Î@ÖèÍgXtf±ò†æ Íß‘�Çà¨$ùiZ"^�í÷iø×#ž9…_6ëÔΡ’KO|ðIõ„}«ž+ÿ¨V—wþùôP7>–Wä`ÛvkSÆ~)F´ÄN’*Hî¤ê~ÙSŸÓ“§yl1ÓŠwн²÷d“ûØ~„2ØÀ¶Y3±â ¬O(¸®üPOÍ­Vªú”ˆ·IbŒÞ¾„&|îšjäS'ÝÏŠKUÁöïl“;–ZSJ®¤µ}å(º4Éš8A’>k>Ym[l¨‹È*“6ð£Øþi‹a•˨¿?ŸÏrIýT¢wå Ä ž´Ì3=M~ØVJ-ù¹bO2aSi+ضWãs<‹'G�Î!:›«ôBòˆAå5cq¿î+ÎEªÎIHÉ–·3ba`ûuM êEÚQ�¥�Ð :EéçœÊ8‰ñïtèIMÁ’—oÕ²‡…ÒËH؃íç4¤Ú¸­\nžÌ€•¨Œñ© Kš�…ítåvj¥µfžmºƒñ�–¿<6{�Ss{§ÿkéo׌¯Ò#Áøà'K6,§<(ÛCS'ö~`³^gÎ�€5' ¶Xkdífákøü€êK¤G7bÉ6dÅŸMÞŠ‰q‚€¨OMòGÆ|Æ|Wmì¿üh w—纳Â'›2�Ðn£üÁ,j˜ã¦"á'á‰2seiÞU åmýG‹uÏEáæ€äP3ç­¼h¨ ¯ ˜š-óõ�û¸bEY�þç©Z¼ü6èWB´žâW÷o�ò-;~$~¤ë�ØG°ÙÙ–¹–9,ºÖ+ Köf´ôòC`¶ò¶òËЈЈ ^f¾Ìì»xtý™ò!E=SËâHRŒlG÷nLä¸ÃNkràg}7} ý+š·czl“�Ñ}Y¼žÊÃÂýþ i-7* ad _ÈÈ^PÈ­e@í÷l_JŠܤqÖ÷²âPðæ¸{¿ãHpV*q{]ɾ,ÄàÜàªáI¨ýÙmœ Ù°x"‘û¡à‹‹Ü…çæ�òF¬­Ñð«Ùô4UýîXêÏû�€Ô€6cÕX)ÂI´ÔÌ@\D]zÚ¼Èý)•›¤1fS.oE=æÜè�KÖ° Ô ö¿hùÒù”V+”Ñ¥n©½\°¦+¤jýÊ*L…ANc'#C7Oß•êDD†€ÚŸÝL¯ï›Ñ¼Ü

^ÌnÏ9ë+–¬a]Œ‘8YŒk_TT¿Óœ3xü¨Œ%~;Ä^ºlŸD·µ V+Ýjü«ƒzù»*Uu…CH>çÌšs~ýýh˜ð…‡â¤¯'GíŸyk!Ôwšß×ßù~j»¿yEÎ]»fš2IXñ`ô/Qm¡5¹@)†úßÛï<‡÷Y|ù”ç5¨ýªv#SËŒ‹Ê3ÈÚ;eìþd:þÞ%IëKAÒÑ™ª<\OgZœ–ý¸Ý±ê¡µ_Õ|i´ÒyËÍœ=ÚF÷¹Hš‘ˆù�>n¬ÖçÅ7 :þxMAlï÷‡B j¿k»õ ‹YYC‰±' wÐébPͯ؛÷ }<û [4v¿ ïxZ&«ÙË1Nð»ÑϸWîéîã=ô¦|ˆîküNïNÈ|»¦£˜,Êì€Þ‡x 3…"e�ͺ, Uož0©¸?uÝìè%©nÀh²h/@ c/ýºœ­DEÔ]XV•÷ýh g 'ÁÁ$ÿGö6¤=\—2ÿÎ P8‡€²¯7N¼ðŽôÒÝþ»ý‰ô(í(�Æ ÜQª–—ÅÖñè| ø7:n%— Èi&Mñå0£)ÿàmRû­ «�>ÌÞ�\U:,#zµ¥ª®tiÛ[pœ7A!ˆ¨Š^ÀÀökï×–’•’5²Œed'AÞÌ(�¹ÌpÙp9Ex/Ì$ÚÛ{?óÄyð˜MvÔ5›=öª¶§‡_cÚEÚ�Ælà÷ zXÚèm¼ï¬X°“Á¯8�E²¾õVOœêÑC¸.Åbí!×ùù˜� 4f '@Ý—JÜ™4^N«B‰¸Ïöã;�ÙÀ÷µ›Î<ü“[²óÇêܬlc•ãr9‡ßá²>±«ð–³È—¿oŒˆT§\Õµ€Ú¿¯±Y\³ÖÀˆs“/Ò¢+n0R²Q°¨þxÏÕJÚït† yŸ[Uyïq¨Am·µšøNŸkzuï;n¦R“¶ÒÚhE¦Ýc9twŠ/,¹ýš¡Të=c8Ôþì{rÉ"¥ÿc| [c¥‚ìùX’Ͻ³Ärì¼ò�—ZÒå—2–nKi¥[Cíß×Ü=$¸s¦Æ,§Ä­Ê.¼\5zÒ®"V•þAB5Ä�OW*nJ’ð8)G6Ô ¶Û‰EÂ(oû«Ïüq±Ù,ì,CFZ¾’®Wµü�ÁÚ^†tõW&&Û/ð€ç ¦ÿºŸTÍGçÍ$:òéäÃâ�æ d¿]ãV˜F㛿¡�ëÜA-*]}z¬ÍÆN+ÕLý§ýovCâˆ. ‹&“`Ù¬¢¸!´Ók+´c$˜€¨¤[~dJbJBu¤¨âG36J£×�=vº°si@¢ˆ¼&ãTk–a­e­½{¥Óå&WU YS ò:ê[€0%À¥Ã~[yë ¼LEÇß‚B3�C7˜á¸­²'î—÷ÕP‹—º#NîñÂ.“¤ÞÞ›ý5YŸL>™”̾}t_¬W©Wé`ñÁâöˇa2å([ýE;ž½››ŸžŸ¶~ågîg^¹¦wVïlÆÑLwðÄ B 4¥ø‡UKÑ< ¢ ��æ ÀßZaŠä›{Tx ÷œsðÒZœ¿ºÌé­È=Ib6–qFíçspÐÙ÷uãc›4²[úüh’¯ûQ%n»Oüúø¾°ÝZSN7œ÷]1O�_`ÅY´„Ô~‡v5ªrºç=%²äXbW`Ü1yxáëx*ÇŒ’9¾RþVE­éxÒ9É«iPÛ]­Á�^�¸McïÂHJ1¼<µõ`YÈý:ÏŠ #³ñG·W…î¸,ŽAí×´ÁVÉöî¸ÄnmQ4ƒL¾¦Ô8¬ë#W]µ™È�ëá‘T«é•½Ç›†Ô¶k‚rŸë4;%�FVO<Ò‰~•®¨H]k�·´ò’�QžvÈ/ j¯åP]©ò½Pv´Ó-‹í¹¦X-xüs#ç]ÀqÖ¯V&9Ï®Wͦï4þ9÷효#F7Á0Iô6,8ëÃĸvÂv³+A0ÀËéŒ{ÖþÍÆ×šê{ho¥(ΜØ ‰&za+s\ŠW³—žwühžzžZw…ŸéGÎñTÖUø¸ä‹ÔY¡¨ßñ§_”O‰¿O¹eJ¥û�ŠJˆ@6Þº·pÀê@dYÀ‹­¼k\ZÖäÖF ¿Ø€wvÂk+n ‚]qprçéžØÍ–R6ÅHû¡íe·a»Õ‡×‡�7žôWh«¬|Êó”çÚÃËŒD(ù1›í�ÈÏC¢!Ñ 1g�g�ßÑ ½‘Þé½8ðø§æ„ì •›:úpîúØä;6“;�À{E`~ß««ŒÏ¾ÄàáDl×íaµ7�§µ–DåúZDM¾s<ðçãnÐøÇéûÙÖ'ÆÄÈt0¦�øNÆ/l»Ëúø|_»iÏ™[Š%h¢á;lôå¡�¹šK õÊ}j8 h>Ãê¶Ñþñpá ¨ýÙMãiEö¡SNÅïî9yHO À^k´K¹Â5°ì Er“‚-‘oZ\p_eBmwµžž¾=z!Šfí'R4—iêX‹Ì®À„:;E‡ËV=r1ëí¢ˆJ8q¦Cmw5ÎÀûôX诲 å™M»YœÆ/ %Ñ«3dOKòôY µ‹:M‡d~�ÚŸÓ ub¾¼ÊTV’µ‚ûóˆÊµ±q_>>wÿà©ýx=L­-¡=œìPû÷5«†úZé”`.˜RxÍÄÞe–/Èqµ-†$ƺÅqŽªKÌ4‡ÔþÉvà-¡õQd[Na“íóA]'↼h£Å}·úΈ›Ö?r †G4‘@íï5—Ð.Rnú…ã™äÙŸc¤{ƒç²åᎹجGuX‡«”ÉÂnì4Þ ²Aĺ—× öÔõ|iPÙ­fÓ^w¸EHDHôŽ"AŽ¢Yþ©¥×YþÞ:¡"€Š.€£µŒn+C81sø•z”Ç|I†g¹¶¯�´Á$:à2�÷qîºz‹lñ[Ã˘ÛÓ}–Ï×=Ú=⩤� ֜ќ��g¶¯+ì JsÏfÏUÀ¢ê¢ê\+½ ¼ Zôá³ðYñ/ެ?SÁ”ßÏSÓîëR¼ÄB]3µ\#"¸í¹ÙësLàg}7ÍÿŽ-´TÏ83<©N¾:­„a�N9H΀öMd¾ Aª›NTÁ\ä¡ç<+¨ýs-ߨÍÜ)u”«ë�ŸÎIB*ôf Ù™,/Ää>’›d8GL=>M¸$Ýñã„Ú¯i ¤³vg÷!½X§äÉdÖs[Ö? k,s?›ZF-%‘g…ÙóeDjPû'Û¼µ™(¬Ùa7|÷BŽùØ«5Âp ¥ö˜›Ñî­‘]]ÞÔ–�íi5ݵ?§�¿žZv#rš0,ž‹�ч¦ *¬˜ÿ¹AðBšÚÈÓóû§•¦M"Gj¡µ_Õò"ÜXµ=øqÍÙ"’«í=¦mœi§£¬Æ«^^\L#°Ê�3 €Ô~‡Vü8?&¨šÙ×�Šàñ„j ŒŸ”Tþ+oÆË·KÇq0W‰,"GÐ#B µ_ÕâýåÅËñoÌŒ›?tìÓàAì_’ Ç•£×¶Ÿ�´Å'rìMááƒ5C j@Óz|¨!™2\fB¦OÓyoMœo®8ñÝçv!SÔ÷½J(´yIø9Î;F@ j¿¬=¸¥s³ÄDŸÍDCÙ.hFô�’fTÿ—µÚüÞØ§•°€j8út�Lj¿¦å£[]¸*««…Œº3$H�­Šæ•q�ù¢r^y¹lÛ§´^¼yÊ8?Ýq¨ýÙíjj¬g/[³rÃÛŒ÷ÏÔêEœ¯¡ï¦=ˆþÓ–¨*t]môŒÜRgßÓò~™”3þJðÚ«£bd£Ê×5ø^òʯ b;­½‚Ïõ{¢;e£8y÷l~/†ø ôîn«ÇŽ&ݸmhB/-¼Ð~ºöʳÍÚë4k~®&þpé™.G ÁÞ�Ö^å¿]óõ¨ç!0[ƒÁ¼ D�AâÈ©cBç<7seøˆ\yªò Sj3´eôS€Ùœ,"ÀbJfÃuÛ»‰[±�Fˆ$>Åþh�ÿýÒZÐÏrCùÒ:šÀð`@(²ÅÅ‘AŸò¯'2ÝBùBù!‘(_Ï£ðR�Fa0 7ý7þI€Ø4·­ì§ŒŒ~xÅ' �-V*i+|×™Ô;;É/ÂÚ óWˆS;‰û´¶G–8UNÔOÔ!ˆšwX ì„Ä ‰ª*J �š¬rG¬Í4:'Á`Õ°êAÞhÜh\£CCw·Þ…õgŠéûûý´’tk5ïjs,åŸqéî´ö ~Öÿ©w(.QË#±–4ÂØñ(ÑWçšÜËÉ•3¦ûòj[q�α&Š=ÿ@8žx^jPû»m�7¢€gZývcÀ^· ·.ªä©’YUj’·K‚ü©rÝb}Çšî@ j¿ªÙÑÊ`„¸ájvÓZë•ø2ß¾ês=þ{žæœëœw縯÷Üû>Ô¡Ì 5¨ýÝÖùÉÌI‹ÚUëtøüE·“±|Òâõä¬4ÛÎçÞ± Ö£¸ÓªŽÆMV„Ô¶Z[¤|’ÃG‚Ù¡òêqð®ª+Ô‡N“¿ØJ瞯×èÞhzdÍv8x‘µ¨Î†jaÀ3¡»KF>1ʯ­½ô ´©æ6› Ízä"¥ÕrŸ�£'�æ*Þ÷…ÿêhv}Üa¾ɵGWŠ’¯å8¿â—îTÙ‰çhâèŸÏ„„6˜ Ù¦çêŸQÖh#zU^tÒÕw³™�Ê÷ÏȦ v‚U9Lˆ®ØaßâíôæãAï÷kI;°UTU´E©ìךL–á8ñŽbÂÌgŒWܱùf°ž½h绑ë«gg¼pGâ¯f[¼‚0tÙ¡®Ó€¼[ XÝÏUbäal ¯^ŸêÁ:ÊŠEÂÂ}káô¸Ç2I Ž)€ÇÆe=Y]¢G/¤âO`!îí §�2_ÏL˜ N1õ«1¤ }δª*ÙYÖWÚ‚¶ã»Hß%Î+λÿ½ø».#0›6›¶ÃÃþc Wä±’g×BO}³su-�z$õ¨soVvV6ͽÀ†å5•÷c&Ô_£º·ÇÙ&ÅÆ�¬Z¯Ê»w³™x­ÿг2 5 1’KShRÈR/è�à!}Wùµ›u ò´%ƒŒ�}¶|‚V_)•ÛÍèô]{¡¶õ›5ÃÛ¬EMï�fKÔKüÉÍ·$0°aü«iÇõldØéPÕaõ>º\ ¡ZPƒÚÿ§y×øaBÿ+QFâca¹*Ï mKK‰l:Ë�pšMH€e' Ÿ·Ô ö;43î¸÷Ü´3« Õ.X˜ÏL½ë‘Á3‡“žˆ¼;y´ÕõJ¨|ñ·íPƒÚVk�ÆGÍKS¢àÏf-�&ÅfŠw8”ž_q5€ß~O…Hž,íýjPÛjmwóT­û@zÃȳýÙ7ñ˜ÏYÑ™-™¼x)õ˜Îw\—•Xo®?ÞËó[È?Ýl‹88¯å5 ¶á%R7’>Eá žO9�H,Ú}±v@áÃ>�·×nø ýò|*ò[¢fډ״8£Si ˜é�5n}΃Äná^µóù¸7”›ý](S,›¹DnÆlÿù|J4Ÿ2ûñþü¾±â�Un)O½ZðZ"jn6K_×?}†ýˆw9µ¢°"1´U‡l~ ‰tΪá²&£÷5Š�ín òÖ˜V^ †Ùf¨A hxK - DVƒ÷ʈÍžÅÀúÃû8æ‰b_Z%ð[´½¸MÞ—!_Lëµ_£òˆÔ�? èÁ„&§ÛÃИÈòL,Â.¯¹àÜ�ÒßÈÑiÞ¯5fÕ¡ößkÕó-²%©Tr¡ªŸ×ìjÁe²dÓ¾…È:2�žl0Ý]£Ë)„ w¥€ÚÖj™p®ù—ÞÐkvy“T?rzTÖö•F˜°!J Ä,­—ËÖ»«öL] )Ô¶V+¯´!z9ë^G iíkg„P�¿Ð—³ùñ• ö¸Q/î´äÖ{Yú™PéÿÚ™<¨+�§``³=PUà=åéÅ‹`¬á—>®èß'6>ž2÷ŽÔq­)9+u@Šb¿W~«bÍZ~'�,€÷湓€ÀöG°íõOŸ­ç±àóf- Úaµºéºif⃫}1Y!Ì¿¬L(Ë02/Ô�¥¯®<Ðlz™Ú›ÚÛ; ÀžXò«²³�l™§3 º°CS¿ž¨ÿÕ—Ý—@xK÷ùù>Ü�]©ëqœIe sŸCEuÂ+Œ–¿ÿððåü�iF|‘' ’©.³¨ùŠd­[³üEµ¸¥ûu²Ž1ñGT¨š�~Æ8ÊÃþó÷ïñ�¨~¼+íüåwN¹Ÿqbú Æ�sØ›ÝO�¯ËçÆ¸žVœ¦ÄsØ�juašûÔѬ)¨ý9-a;ìªà¥°ÄèPqVIþ*J«H«f‡÷Éu‘>°qÙqûȧ�!Úõ× ¶õ›‡‘ú×±*·Š{Õç¾>¤[pe„ûòç ÎEI‰Ç™âå©¢®hÙ*ÕCíÏixÑO\"/Zwè> —IEfލ�rl§f6”aæÕîô}h”áÁÃX¿jPÛjmÊâÊÙ{í“"¤rbDý䯫ÞÔ&ǽÉÑb[Hƒs÷{V¼iôÛ§¤ 5¨mÔ,áÕ&æ(çª{ÔHT* éqZ"ã ÷&6âqVW”ºèg>)*QƒÚïÙò&ûp[îÈÓûmKiÿz´ðü$3r‚$uÖf²Qd¦¯”�–4õ9I5¨ýÝÇ",s¯6}îá]ÛÅ3ŠHߊo4>â¨%®™™ÝL õ¤rù7Iø�%-PÛZ�ǹ_W†büÁÙ[Ù ÏÄ›Vø[\=}åõ%×B5W”�‰Xó«O'o@í¿×øn>Ka’Ó[â¿G-/YÞã‚f'Æ‹zi(1C9/…Ô¹A+%êµ_Ó Ô?"d²s¤úàÂR‡%îÙRöÍo¥³(·R+©±ön×ïOèË¿¶ô9×hâõÿÃà=…Ÿ!xc–²‡„çu2ÿ‘¢ÍöÔ€gÄ”¤Àî6¦˜­ðRÈ6ÏôÌØ·VJÏõi@î¡ý<§K¦¯¬…7Aü�0ØîÚ®²‚L¬þÚz„ß:ʦíLùV3™3™ë ÆÍ]íúÎñÇ—-„�‹ÒXº°ø\Ý?\. §o’l’Ô·ÇR”Áò÷í/Åú,|ÝhY¹ û!ÀÉÛÍd=KÇã%wÒ†aXL;2”§4×st&¶²&VbbÛH¸@„TL—qwqõs³�Ý5¿v¬ÜµÜU´šö‚ß#0wŒ;&Ê1ÊÑ,r ¹‡«[r-ñ^>i°‰ô‰ôV)Ä)Ä)ÿ]D”D”B…YîËkjìÇžBd$§ñQöj_<‹o<­)%ãópàß“ýX‹ÀW©LJ$3ˆ£„ÒöÆ“ÈíÕ ¼ÉN¯5þn÷8é [�1•…ä Ü�ë¤õñ¶ÖmÇ÷‚ŸÉ¿·GñS1^R´háÛVeé âð¹½à}ð÷²Àg°€÷O�c"ÈLSw2ýC³çrI7Û?ÿ>MÅÕhwº!s~‚FíbO夳8¡Œ5²H%E´¬¦Ø§ØçÉR‚^­0|Ý2A¡·¦€nŸí¶Xf=6„Ɔ�Ôc)c)+Z°è±f4è°d|•$—…Fº‘€œsÄ1ëa”ð$Ó"0ÄRQÊh«»à½ãy Û·(� èOuNÜ—DwGo Þf~’q˜qØ·‘‡VuŒ3Ž3.),),„Œ.ûþq¬ÁîµF¸ª]Àú/õ_rV«R«zO£‚Q±r¹2/¯©` ìšZ|'Má¹í¡«ßm~üèñ ÏÄZÞ“¯õ­ô,ô¯hA®Y -æ‰ ;º+D¹z¯©d¶Á½*ÍX’i(Yv~ü‹’ò1µÒWól¨ýžm°é‰™,ò„Ïw“@{.•QQ®‰¯Ãs3ö¼¬/ÛžkÛ§E^50 µ?»�ïl5CO$Ó¥ž||–¿DqÖ¼p�À�#­á0VÑÓ ‰€ï6™ 6çƒÔ€6cßT)ÆC¶Ðʲ§”®üÔ…R¿´¦Òø-˜üÏ£ý"´l¹PƒÚ¢Éqí·ß‡9ƒ'ë«ýdñ‚¾„¶ý »(í6ªNòòô³Ì]nd”¶Pû³›Õ¥í3zç[ß5HÏŽrï6� ®b’fÓ«W‹<±?Ÿ[è¶ÈLs [$Ô ö»6q^®óúÚáÑ–§˜O�ðWÔ]Å Ç ?yëÌÖg9ZÎV ÈSnNùjPûO´17f?Iºê³Ï¦r2 §úÉQù§Ÿõ„ÚŸÓX­ä"DïÇœqÄ×ì"JH›ÏoÏœMT˾ž�“D“8—–6l6sÏÀ™äíH_²L÷f)¼•z�°$l§_B=Ýg¼O¨«Róœhd#ÅÏgΰ fεÊ;PIáØ”¥Ð;1/žo6s>óý3cúêÀ¦Ì+ž®ôá@.\¤-X+_a@A±MO¯d­½Ér€ 'v?À‚Ýþ+ÒΛ]\Ïm<Š)€¸F*Ñjcmcmébv«Á�VœñZ¦Ô ë À‘¨iÇ>u»\¼9¥“„IÒòÁráÀêŒÀºÐº³pÙ”?à# ŸC�w=;üh‘ÞZ4'VÐ-¿jf™Û^ëQ·»á"`GkÌ| [»Þ mç[Ù�9Z Ä8Æ8:_JX°ã7á7ñ=î{üìí*Û²N¬[škí}ÕQ æÜãÜ3z·æûO> C_“G¨/¯©êÏÕÓˆj¥JšRTOŽ:çéÛêl6s¯õ¿óLÔ¶~ 0�ûìáa•}}r7æîè{q‘6my¥PY–†²«W:¶—Â?ކA j¿ªyåÚðÒ„!‚ÒÇ„I'³H ¤Farñ9šÇyÌ´¹-†ðû6@ j¿ª]= Ÿ%PaãîÿbÔ–:‘—¼5Úv¶Ûÿ-?a{¬û|m’áµ-a=»"¡µßµ]¼u·ëè]5 ÛíÄô¹� Ë<ð+ÞÍ{ŸÅù•#ž¨×R`<3‡ÝæÉ+ ð=›Â¨÷C΄‹†Dþ!M™gnvÏþT7Û f‡ ˆ¯pNòRnk7™h¶’æ �ä©nc[ï…B*ß߳ñ‚îÙnîÄ^—òt¦�}‰òÜy\*v³¿¯Á×µ•Î<ü“[ŠûPMAî0‘…Æ1¥<†#$ì÷�0�Jð=ºÑJDÍA^3åm/r*Û’ê/ØåªŠ7Ç µ­Öž£:ƒ=Œë{^ùdÐQ¼=è —Ŷ—FòÞ�)XLÊK3Ùö( .n¨ýÙ-ApžÞ;„ºÍÑT©¢ ž@þáͧ=ºJœÊ¡FmYÊ Ù Wdõ³Pû÷5?)þ¼©1»)‰›öÏ´÷-™ß©!Q•5(¥yÝvN9%½û×C¨Am«5.rxÒ¨À˧„� 1lœlýæúW¥½/ê‡D‡ >¹ÞÕ[™œâ/`åfGÑ[ï穜óœóD¢±<æ°Œu˜ð±ŒíÆÂ–18„ Ny ‡ÖOÈFÕN£Æâ,œ¿)àÛ踞Œ?]µ¯í¯ÚÝ*ê%Ø9ÜÉ¥]>=ÚX4ãC�¢ä¢dfâcÜ‚\`¸¸_œ¾8½»¦¼««Šu­`zë0]]*…âûÅ÷EöËÖÊÖ:cÆmÀ3¯Ýº¸j¨a—%;ñB8Ù„áf3ð³VøbEü1þxÝŠc.�z"ó³â‚tBù'Ém†9²O›àþ|Á šAPþØãk´pȤô5º{ åRm2÷f3ðu]nO?Õ´oöêâ ± ¨9vây;¨AíwhoUNw÷ì�.;œÜŠ<¬Ì]R�¢uÍ.û +jW%ן¾Í}GQúb&Ô¶Vk¼Ì|rO)®îÿ°w§ÑTµÇ35ˆÌ³âÈxG%sÆ2eª·™pŽ(’”yÌœ!™ç!Ce&ÓÉ”e.ó�™çÞëä±:ÈÿY=«Üý÷ú¼û®µ×Ú/ö‹sýö>×…ÓofpZ‘ÒFYÝp¯²ËÀÚd,Ñ}MHØßqil¿¦õµIsvÇĵBµE1ô2ù‘)1ûo ßtÒf}LvâZÉaâZµ«åÏ€ l;5!ùçã Mš],Ãkq§õžõëD¾H Uñ�Ѿ¶:¼¼ZJÀ¢p¬ß3 l?×ò ¼iŒ«=z—‹í’Å‘¯)ö}ýãr‡èµ’Nw ¥µ.&…ÿnë•®9n•w ]1åÝþM4°ÓÏêØŸì¿ž´ÕŸ[€AA{N¦‰›[ùÉÃÏ$‚•¹óaù› Fý"·c×A}€Íãéó½dždž’f'ä÷îJnz‹Ü9ÿPÅ·CiçŽË÷g¢<1è1è1oˆR�bßñV%¹µ-uƒó0 \`NL´o;d/¥ûæ�‰(5IL÷sò-â¶ÓwQ޳¸Žµg,£Ì¹¥XV+¾òý£Ñ�1¿cñÉ1Ì1´Ë‘ì Dç6ç6—¸”¸¤_è~%Z…lj+\JžÓèB—C—/†wFtFpŒD˜E˜u3v£¯êxe .9ë\ã†6F%ø[Oí¶þAß+âäC�®2ç2³+‚ÔϦÛÕÇÏì°Öz<�S�ˆšBטÏ�×?P´õâÛ9ļ£bdM:X3'ž{LEù-ÞØmýƒ~_{iÏ™ÿ¶ÖDø ÉÀ1øLMÿÉ[¾îÊãF.å^µC1 ¨ßˆÔóÒ‹å>? ¶?»i¤WfÓ "Ê:"î’¾>s†ªF£ã‚·Æ~[}‘¼x?‹àúVGÜ™`Û[íýûÞ}W`&¼Éš+GØKLŒ©„»ºDÊ×î1ça7ÚD¾äJ<™¶½ÕNúD3îÇ|‘­/OÀfÔÍ~1vE8žQ�9{F’¯×Ü·¿ãº(b& slN[,Öy4ñ"SÝw@QÖ’Û£ŒO\_¾¤�ú÷‰¯Ñ”‚G¿gmk z’lÿ}Í’WÿšÙ1éd?*ÅкIÕSäå•d‡šµÍû%F»ÅW—Ê4Ø~g£¸sŒŸÀê™hp{N1òF~ß]QSa¤ÁÒÁ;ŸÎŠ5&ºøq‡!‰ÁösÍ1è ÔZ¿añW&YöË#é¤ûè3& ¬†^�»†­š�«8¥–»Í˜T�s¦Òl бàßBn¢ãM±ð\d+:<³Õ}1r€O٠Ȥar«ÖálÀù„ €Ú™ìM‹|ÒÛYÈñô5~¥ý^é|éüßjQ¾ß³:º)JuÓRØg€ôŠNÊV« ÃŽh[%[%U&”h)”Þý_8P–ÅB ¤O,MoZ\¶O€´ÞA±¹`ÀÔ,Z¶�dSï/f–".&’¿¤�Ò°~ûäØ[>»�åùz?lWkWó|ņ?n�N‡B‡gg„ˆNBè} ƒÈVZ½ê7Ð1f3f¯@yÏðž»FB¢7ë/�>cÊVà†ç`?®Ã>P­Lr{·úþ¢MâE~´î&‰úq‡t”\oÞ0¯ŠœÒ& @ŠjºÀ ™¦ä9?>Oí$ÚŒÉ�úÛyjÚ½ï`Wþ¢­›^©|$"´ã¹Ù3&ôûÚKóãc zuõzfh|ƒBmêKæE:e_y½cõáE—°HñS\t"ž §Ï±O>l ¶ß׊®»˜"R¾ð¼«÷Ô9M@ƒù†\v6ËÍlê q±3é!#בIÇxÏ“`û5í"Éœ�ÔÁ`7öiR™uÔ¢1É'¤¹!.•RN{A2<¬ÐûýÄðE°�íw¶y+Qªªà·6�ª9¦£/Ö B5;9GÞm rr¬]1껯ÍèØþœ¦t+¥2ävø AH,˃£Ï#BÊòõüSÕ†ÓñM£Ï*Ά¿Ø~U+ sa×vÀ�3åðK¨µ½·8cml&Âr¬2¾²´7ŠoYcä 6°ýZYRÑ#ßZ6[ ü¤I•V*><……S¥-Ë'pŸ°U‹,c†€ l¿ªÅz)ˆ-UàÝž3} ïÕà3;²,A†'*Ϩm;.t�Þ“ÌÇOõl`šV}Su¨Ì¤L¯¦=N]ŒGž8Q`¾MÀ4m´ÛKr;íSÄ\Jð0°�í—µ'wtœ_Êâq a)ÛøÎŠÒ+jF|œX]Ô•^Eå]Ë�9ã+OÛ¯iE˜–ª�Aç£tµ‚#üû…h³U0Ü2(Ù.+VTȶ�¤öž§ŽñÔÛŸÝn¦DÝË9ÅñF¹©%ãC®Z£ˆ½æ^Úƒè?mq*·Ծœ“_îêM¯ø(“|ÎËŒý=Þ|ia�‡¬jám³ØnïÉÐÏõ{¦;m › ”zŒ×ƒ%Î+‚¹í¶L‚‡~êÆmÇ.]2wÃøá{2¾ö0^�œ¿Immm­n©‘-¬J¨´Û;aµ®¡M·KAW�€Poì¼VJ¼ÒbŸ¾•¡6ê�Ƹéö­ÇK·ï!/ÜÌ}2 � *˜Þô”á þvÑSÄù^UùÞÅæ‹Í«to¾gÙ³IbmÃùò:lÀíf£P ëŠ4N¦—q8}8}Vô(xî(Zrl("Pš ó±€Ú €’/†¶SM è t•[wE9{/ç`ªÝvR•Æ DÛÔݹr(O|•lÖ¼±³ú×õõø›"<>tœÓœÓ " "Ï.œ–Gº¡œãÞjF+Í]‡‡¿#%ðäЕZú[ú�à 4lQc®}EÞ­ SΘé-|݆k Ç'–?H0§¤ 6°ýlÛwßì9ߌºû{o>ßG;²ɬj5É;ð—¾½hò\¢¥XÑÖ,$ãÓl¢ F,mÇ�JåVKoü=¥ÇJ�[ªÏ}/Gy“À¾ öAŸÕ´Sþ(c90£2üGÑÃÚÃÚX(üÓ(d)~(~3rG6s€áÈ—îÛ�§¸;Œ‹ �a9Îڽ˘ÝNœÃóÒ/B‘=L�s>Ȱ¤© öxÙÎ(#©pì�í�gE°J¬ÐEŒDŒ¸O»O§BÊún1¢<öÜ vàÌWt…Á…ÁÌ}]ƒ]ƒd�ñ�ñýi޹ÏTη™P-Œâƒ­I‚ ‚°F³Úéãn3!ôgýWœk6° B/�$Û,›¦”÷qò$Þ§ªÕ÷¬Aç !RÚ–2Qª}%dˆÐàä#`ÛûÍÒ›¶¢â4¡¿F¾�k‰«äÆöHâÓ4‘b§�­ñmpÖà’õ÷QØþ/�åSÓø¤Öê�”èÁXbØÉ\2$²øBòIZæ!Á$Ï{†]T¼NÒ`Û¿¡éócŒ9�c$uêUÀÞñû:Ï6ÀY•™—Šæ}b{w÷‘©8´~l`Ûk­ëj'›AIÂCóòùë1מëËÅŸŽâ�¯s·ö¹vÊüÑç÷¹ÇI:Õ� l{­´L×Û$ûCFÊ©3B1u�hõ×®µwHÐÞÓ`=¤¹ØyÛqÝóÿ»AÌŠ88½rc±0£I™ü®Hž%¹ƒ>Ÿ²Æ[±X0¶ŽÅæŸk«ßñ?ôó© õh•$"m±nš}_¦“–+g&j+¹cé2Ó;­?*þ�‹8 Ðâ _&M0lá 9øãùÔéæSæ•+«²·åI_ÅÇGÉï6ŸÒøçˆîgti^.ï6©Ît�oz˘,°••!™À7‰+«êÐøúV¢í\—ü¸Þ-Ò•KU›ô³IÿÚÁ_G’眾ç.ä.´ÛÊû½g¾›F!…ŒtEâg”„¶9—'&øægÍÏ H£Ä (-“£DTÉôo8K0z Õ{ؽ�)NÀt›)¹s5ʽ�æaOùðvöSÈž[ܧéפ�åœäþ„‹ª"hg×TÍõèôètÜ÷€¾õGGHNH.��@Ü™:¨Rƒ",±•Ö� �$�$¥„W¨WèÄ3È3H’à¥ÿý>OÿÛ™ GºU#^ÜFb"ƒŽ©ì6ŸBÖyKÈ¡sDÎ|¢‰œtºAé?ÓFœ^‘Ë *ZEû¼Q'\hÆ[4jtQapò"™hC@d:�+ßð\‡Ì·€ l@Ã\“EB &¾DøYMHOZä@?qwuO}\xO¦ê_ËIæÜý޽ÂMŽ£”ò `ÛNÍМû>:çžB–Ž’C­X•œ€&§aL¸Et&gM•v‰�VjiQ±"Øþ�-gªoß 2^†öù]¬„¶U¶Â¿§c&qŸÎ›LUYékɧ”‰ë9 ‚ l?Û™¥ë“³Ÿ˜­(ËÅÜ©X§r�]ãš�%8n%¦ôø•LÏcì¦b$ØöV;iÛ¯Ž!E2–Žs9"C¶\„I¯ÂõºÇ9÷î[ðBEx¬6W¤åíœP Ø~_ã -O`�Ö\‚&’ˈ¿ú`WÆ~óa‡ŽØ4¬íšg-K ?�Äù`û5M[iÂJ*#S¢Ï\Pâ:“X¢ißÒ^:‹r/µâZc§6­þ¨¾\¯µ¯YW&»M]™Ð¿[æ‹×¨<ãs¬‘$…ĉã„ónß­\þç&|×t虊MQm^~°aÌ�­(y’ºtÊùµƒWÊ�·2n:ë h/é¼ûšh¼ ¡!ó?ìÝw4–ÿÿÀñŒÈ(;[ÄW2o3d¯Œì½³n+%ÙE¶�-•̬ˆÌì=2*¡ÈÈú$#~]çÎÏq!¿s>¿oŸêsyü÷<®snç¼ýñ~½ïëº.íEÍt£ Ëªus'Å'ŠOZ8uwjoÞÆN¼%¾Ï¦@e€_‚À�õ¾ôÕêÍ,‰,‰†§hgà§éƒF¤¨¶¤¾4Ð>sErî…ÅðPßNÌa¢ÁÖ[úd ë^Þ+�v­¢£ÔdÍ+i ¨ÊQºÅ²yih¸'':H:H’FŒu8íÁšW›WiÚhÚ`r“_$Î"0ÈíÖ›‰„ 6ygòÎUØJØŠØôs›ç6Ï.9þµµ¦¦¿Ÿ)DF²(c`‰0-÷äA6ßdßoMÉ]„¿�û}-_{1.“Hʸ×N�)C¬FÃtBýÎÌ»y$nì%ÆV#"s‰¤ñpì¶x›K=Ü'‰Á÷d�ŸÛsþ¯gÈÈ÷¢DJ†_(HÕb$‚ßÛ >7‡üðùIò4�pr¶‰+.©õ²a>öAç'à¿§óYc%©+)E7Ÿ×áÍg×îé >ÙÄÞy¨²ÞB2ÎeåÇï3æÙçûh•„ézjÁRϨÖן]ì¦C?èÿZ÷Û5mÍ *`õDÎÛ�S Q±ßÏý¨²›˜TW`œþöÔMŒ¤Ýü�‹’dÅW³ø/`ÛÒÎgìÅkå@6ú6õNCÉCÉh‚Tå;E…lƒUnIïåB° ¢É!}"pÇ:¼["5"5‚…¡!{óq5 ÍÃì-:ö'Àa±çÄ{±÷ öT$vb#häÑ=E)ÿÏ^Ô¼ÑQ)Ãòhò[‚΄F †*ù±ß_kÃ’»±»1,¥�4û%ØÕÄ«‰†e†e�\8É›®{íæ½Òª{*öÆ(›|Èã¡ÇC™ Ò|[kê&bM­¿“ˆ"¸†Ràì�À…5så 39ðZÿ•î…þÍß9'±ÛÁ,Ik°žF„uä¶bvüz½)}*)!ýÑOA„„O�Ë5Ë…ÚïÙÞwV˜J'óß t5ö³cU a�Hzu24? ¯¿­úH¾Í¨fhÃø<Ôþì6sô…iå\*zšÀS®²óËf%ööH+ØMÌFŠºê�apãå›fœPƒЖì:ëEÙq×^Ðã•S<´.÷~LnÂ,eŽÚ]ÄS׎úyjL˜œ1ÜjPûo´R™RV2;’:UdiOÍŠõwö'ÊÈ{¿0‰�£Q^–•=±L7�å‚Khµ?»YºYÒ½øâ]»ÔòìØY³È› ´RŒºmŠÓ‘üdO`| ÂK]#™¡µßµi‰q°^ÔÓ �ⱤãÇäªm ¨›ˆž¸Y1ìÄ8j1õœ±è<ûs3ÂY¨Aí¿Ñ¦]è¼%ô)ujò² ÆŠeNýß—µ?§1XÊ„9ˆdD«:¢ª '¦¯æ†ö‚gÎÆJÕ›h:±¢’g*1�ÊËÛš9ƒgà´²¶ØýôsF#9rÃ’oì-ÐzOl¤T‘‘ð Ô«ŠDvüxæÌ»ÏÌYÐ}4ù”Õ³à¦þäŠõáƒfÎzß®©'ŠTÓîä…m;mq]æ„–dÎêünñaCõ…³5˜m »…}8:P;é°O:·¹íAÖ^rŸ'˜œ†d vº÷êÞ+_KS›�tE·a,n™ó°}�ÔCPÂÓÇvtQ ki¹ô!‰aY…œaZsÁh‹Ñ"  РÈ�¹ €ŠÐ•Øâr„&§¢úàn6{áK¶j“²“æÆÿë|Œ×ø d7Öá–ý-ä¦0ÕlÖlê`è\nÚÎbÍbíYmÏÙìB`–ß-–£^,`$`Ä.�.—.7{ƒX—X×oEÜrkM5~¿šTD#M„ q~Ê鉿ž�ÖA3gðZÿ;÷Ï@í×o¾f±Ÿ¯^µÌ ŸÇ©{8õQL_¸GSV>Xš¾½:àÖKßñ#åðO“%~!PƒÚÏj×ó Ь8È}Cìý3§ÏbÏç`^“²¿"Ÿ§ÎÍñx©Çe=�Ë­jPûY-€R/‡§ÖÊÕ§oÊæxþ‹(›åAŸa.´Þ»®«-÷ ncu‡0‹„Ô~׿÷pà´ª¶2�ÍŒ ¢Q��lÊŸñlÞ º–¯Ìñè#<3ÙyLV¯ÄÙÁ{6¹)�–D7t_ŸÀÎlªƒölàïA 2öÑ9ø‡}…³à—Ã.¹œ‹b,ëò×J]4²ñXKD;Ddðã=Ç>{¶• ·>NÒ WZ§ÔѾ¹}ï³ÞÚ³é»&Î„Õ Ì/ÍÒ~Û�¯âŸ�8b×Fï–hMÐ:Œ"\À=ļ=zðE€üä2 N‘°y›Â,Vó^£¤ ¯^jØIˆTˆT ÓÖ'Gôm™¡[Ö_Ìx„êf$P‚ñ¾ø¦rÒ†ž =—X€`KŽ0~K7áÌÅü”-E_,€Š¾ªï^¢ïNž�4¤@¸½F[á>åѵ¢ÛÌì,¡÷ÓúyDÑ0 k´[¬Z¦íO&Ĭ‹ÛŒÛ¬fÕEÅê ˜ã·Ÿaßa_–àT—4ÂëÎÝ5ß<ÎÎOѾw9®üz&q&ñéM«ãÿ»Ö�"Ö”Z²P6»]™dò,ÜiFòîA{6ðZÿ•Þ£ù'·®šŠò'ÐÍÕØä iN½Ädʸ\ç'>./”�•H‚uÞ�Õ"Û0„CíßטáWíµQ’½¤$ªÇôNTvX +;(›>Üñ°“ ̵ âõj¨}Ë5¨ýj­9åõÍ«FmC¯ndQôS9èÅfßa$&•x±Àý ÿª©tïsVÔþì–xf ž9ò!%�¹³^QN%öí_xÚò,s< ÁzrÖr×nIëåØCíß×¼}$¹ ¦mÄcìj4žŽn˜eô«‰7ä¼—T÷æ5”N^�Âa#`-€Ô~µÆŠ¿7ÅÓ_5Ë—œXPÇÈÂ8f¦ åᦪÿ¾"|`¤>õ�Ó 7xqGI9eâʆ­X wÎà ø^+TÑRkŸ:äÁóÓWüt…W—ÝÖybýµ‚¹æñ­&˜s…Œ‘~<ƒ€�f„ßÏø:̲ =�ùR>p$O…´_.t¯ÞLÁN’å€u~Q묔&ŒU[¨Aíwhnqõ‹ƒCdQÕÿINþ�¬¬1…Ü9·ú3ïs¾^%|½ÅØýóRnÙPûµZ‡�^9’öá13i¥˜Ú¬^’šð¤6ߺf3«™G·6„î­NCíç´Ñ^© –7É©=\úbH&y¼ÝYÉhînú ÷ˆØŒË±ð›4�j†°¡µýš€ü³Ù¶Ý×’§Ì&6RϘdŒÄWeǨ+Q´Úc­}­À9¥@5˜µ¿×ŠÌ‚È/5Ü ª¡}…ê•Ï\¬+Þ >—*A·:õÀ�v]‘±´¦È²ë s)ƒo×Tw]B“?nðjÛEÂc9ŸQQiyßìvöð•b@UP$Ã×ë�vûÚ‡? бö °x´n;Ô�9¾J·þ÷”)å�¬‚­‚‡é ³w¢¢Ø6ž%cX°È~l Á޼1s£$&&"& !²AN*áäjì•-÷ÂpjÀŒ4¡Ã^d£Ç¢„¤7nhukóL¹òïeW”1Õñ|j¿SŽ­¶~«{‰Œ²yØþ„Zн‹ÓŠÓ ?Ä[�%é%éu\븦ñÕ—ZÈÁ…q·CcÒÈ`-ü-ü�OÈyÈy:ÇpSpS¾¼3-ïš9垪Ý00†qµ'>s˜?hÿ~V:ÍÐ[CUl–5zÂÐËo|ì‡Ú`émÞ'÷hÕTx=üãýhÿãòý=ÄœÓâD(‹lÏæCWÚÿ€?ׯôÌ™[‹�Ä}×MÎKcö‘Œú]�|ó…{í¬ªÃšŠH7ǵãMn›¤ÀDæ ög7íÇuÔg]*_Þqñ'c¾ÈOÚ¨Ý/íÓFs2-ºjÕÒs ³*j¿V>d®dÕÏ™©»NÙÆTnu‰Tøõk±ñš _ú"ÔöËq¸Õ¬�Øs ök5öà$:4äªSyœÓ–o˜ø]f.ß§Ó¢/X”ↇŒõ›‹¹,†ç}‚ÚŸÓVÊ >Uåi…Œ+ËÙÁ*¹%LåËû˜¹.²}N"9{ k�¡·'r��jÿ¾fÇijlC%“ÊAªÓ<§ÁC|¼¦Îö)F§>|Lrú�­–̇“s×Cíç4E‚¿.Ÿ;åÇ´ @(»IÃeÛžÝYã"q.«†BZ*ön‰êà§ E¨AíŸlËöVb¤õQ¯.�GhZOWmâÄh+÷'܈÷î�ýàq­¥µv:äP¯å1¨ý9MÅ=«.úzì"Nt ó©›”Ïâ¢+ùŠMBW²5'¯µNT^´ˆ�h…Ô~V+¹ëŤïÇ™jÍt÷A““ïÊ¢ƒ+ÕbœÝLÍìúêjêôQ»ÒdË ¨Aíwh•é¥ !M§œ�È�¦Ï©÷�rc(|áÉ­èZcÃ|xºAt5jùn8Ô ö³ZÊmñÕZìëK3ÖiÎÃÚÜ6ÇÖ$‰°Åäéô�–c±q�ßfró’¾€Ô€¦—NÝñ€,FvNvX×õpsr@‘^DñåðŠ$¿êãWôyðùXUœïB j?­=ô4¸Qm!‡Íl!€¢z9dIŒZY7näÓfkéÛÄÇõ¤AM0äÅyR%¨ýœVŠl§)’h¨6&@Q Žä—KrZGµ¤¶V®o2û-Ö2Yr á Ôþìæ–•è[ÈÃüBµ£+wè‰f»¨ëUä_éy1ÿ×–ª.ì®9%$¿özøqíˆl¦Ðm2ðÙk|îÝø©ÏZYíløÊðüƒÎ^/|»Æ¢ÌÐŒøÉxì6sªâÁ6Ÿ(¯Ý–;Ú¦Wì(p2¼�ìVU9V ˜UñºÀÜ`ÌÚÆShuz/TsÆ€úŒèµ�$†%†‘9–wb~»m÷Œ?s¸H€ lÿ„fÀƒ<íò9¥ËÀ¤L¾›Çßu¡ÞŽ~ô*mÜ[¡¼Á‹g[í¼ý$Ë07�€ l‡­}Ðí:kX˜jùnɦ÷Æ@úé…hf™o?=nË'Ÿ0B‘<ñâÅ\jÀ¶ÃÖpšçkFžRN¼;�ùB£mBj°¡×Ñ)úŠÔmZ�º<åì´éóŸn”ùÌ,¾¹ ±(�Ú±Kønˆó),áµëßÌlbQy§Ûk÷}‡~k>²£œrBS¸‡ir>eµüËLuùùXЬŒ.k¾ÓÈÁ#²ÍwíV Œ›Yù…ùù|êÂ>ó)û ;Nžk�Ož2£e;&6²4ŸÒû~M)­Å:¢«ãuÔÛ²yµÎs±kF`îÆu¹ À@žI_Öœ§º[%uÙ8 Ÿ#� PÛ¥�¿-$áFð^†V|ÑÉ•h;aÇaÇ]¢«¦ÜéåÑmȶ$ã¨ÝøF5™À­�ŸÖ)¦¼vz@e@Å‹.r®…™«NÎÛ@xË9wÄð­¸Í}/%¾€¨B©µO”phù9Ó‚¾úõ{±!m_¤ÒÍtîI€ð.£øë÷ësïïlê$Äñ¬ãYv»ˆ°iDÕÆÕÆ_Ⱦ��èpÎ~ sÛ�?¡‚º]¬réïG÷Ø,Û,“:ã ¼µ¦ ~œÉ@æöXȳÒ>¡Ø¹ÒB®|Ð| q­³/Òp.–�páJîd¡ÐÉø+mÂ¥”HšOÁ:ƯõîÊHö²Iƒ»2•‹/þL»=¥d—Yy+»åR3ØÀ4ȆT %†Éhr ¦aŽz9ÏðZÀó ÆãN“hN£¶Ž'xC©’oHìÀö¿×ñï;†(I’]p¤.Â#=AÙC÷N0ðznsž6Yág´M¼¢—¥%E°ý}­j¥E¼ ‰PÂoV~¦¦úxë2µ1£j¤u:ýJÑ\ƒ>Nµ /²¥>ØWK³d]ɸÓG¡Üí‚UõòæË’¶ub>ôfk4^1h6•ÿÀñÚ«užØ`;\­´Â¯Ø==¹ËS¿¶ÇÖš÷ã]Þoê/¢*¬�C;ž¶¼ …v–ø}E—ùW›S‚Ùt.ôÕø•Gf|¢™ANÄý�DH’ƒuÐzÞÀËÎÅO_´ŸBeà!á¦w1ò… •ÿm´HÒ­¥Ø•²x•È%ÎüZäÂÓ×ÒÏQs–Éëq…½£šdcúù·Ò8öÙOÕZAõ£Y3#‹yL^Ž´ŸÒÿ~ {sL¢VJmömoº-\EòHoˆü¹„I7€|®5Ó»Me·'Þ¹&€°(GéÀLÚ¶7BA°½x~:V¨/xÌ·îcÜÇ‘5½Â;aâoãØò�Ⱦ°ÐŸ×h±ˆºaµÏ5Î5¶¬ƒxÇdîl ‡^ ¬¾…I Ps ÐÄáÕ½Vö3ò1¸ùÙ’ÇLÊ÷‚b�s¥Ú¡½n„²ãéÓ¾‹‰q·‹…NIïÏ}Ö ØwØ×C†ðnš8"ÈdÁ•Ô•´�ËMw.Hz·¸) [DƒÐAèÁCš‡4Gs s ­TŸÌl­)ÂÏ�˜ºÞÌþŠ>¬9m›Åd}Ð~ q­»OCU"”…kxÆä«^§8ÌŸMŸÛïÓ^¬áypáŽL˜Ÿƒg%�IˆI³Í§øºWžiñi«�bOÕz_°þ樣¸>U@hˆŸ¬Y¥½žCºjGe鯙5º**¡É•�õV±�©ÛïÓ ÷ÂÞÞ ¹mÖ¥–�w% –6¡péF;�ÖöIÕn9:I�ŽlTõ8`ÛakóFÞc¸ŸT/òcKb ãõTöÕÆGôe©0®¦Xžv*ëçotš:%# 6°í׌-™ÖÆäÞ“ÍÖRt¬®�æ…²Ã"´NÆ4BXª*4 oi¤½Í/PÛ?³åÎ !­µ<•$}ã�’о~öµé l+iÉ|®Â:ß@C&µHDßõ".ØÀöW[ß•äÚçË9‰kW¥ane›Ä®B±¬ 8ÔÖŠq¥’}q¨�-`;\�Ívøòüé 4õÈL©w‚´úew�\öî¹c÷ZÁ.VÓK°ùýâÅ`°ý}�ãÑ»^ èÚg2‘¤HéÇ[EL˜�ÐN-áyžXÛ Ÿjúà@Q�`û5MSqÆúJf–è�%Ÿ¨­p²ÁÐÊa:ßô0µ‚j3—v�á衾_³uf{þ¼K»5g�úqO!$„Eó¨Ó‘7Ähsßg¡dtM-��ûcæ<ö¢W “ŠÊ›r2 Kâ¤Á#& åÐéÁ9d.ìÆ:]B#|‘`ä‘ ìú( ³6.ª“ˆïd!~·Gzñ &ðº¿UV¬ 3ñÜ^Ä/â34ˆg° Þ§ð_Ð"ŽÄÊ™ë© í=è>…Á÷kÆNés J¿Ä�¾­»U»½aÉöLÃnŠ3e�3ºh´“»=qyØ 8ƒ”³0£ûƽ�ÙOux/3R÷/-#Jv¢ ¸N¥þn§âm�¯¶˜êrà6ZðáhkÔ.ô{¾èvîv–Æ„+h�‹¸çbÆ¿%‘€ÜÀÓÀ~¼.k€ F® “<\`ý!?YPÁ^nû,0/®^pû } L7móŽ›s®ªV´è´è(k=Æs12²~`ýð ëA}°\Ãnkžì®ˆ€—»VeÎÉœ+ø£Û¡Ûᡱâ=9Ø7?,Mß—XãÌ’v6öA÷äÿFšÞT;“¶ðr¢5ª¾q’�SGò£ªfkB*ª0�´_þùÙÜ÷ä¼ðá¿kmP$ ß %ÇÎã 'jØô­ƒîŸ þ®Ãô.ô¯h÷íÒ£[l c¤ŽöVP °øÊ¥µY:WÐÅЛyH@ðŠHfÝ0lÿÌ6ÚôÖ@ö‡+™ƒž§«œ�€kpÌ{ª€ìÔ�õ%G²-†T°*GæÀö{·éc­E³ñ¤I_©sH/¾·¶F^Æ®fÖ•ƒ*ûZâè-yr€ l@[°jªdÃ]m¥;QHZzéÏB� }f1#Ô–<îòÔ¯“Ãü$ŒÙ#6`Û£åK䳞¶:U~"î¦úvmК¢€¤ý“ !ÙMIIŠ%šîT{\ °ýÞÍäΑ¨ië`ƒØÒäùã|†!^•ÔbŒÐz¹©�?N¿8Ïû„¡9�1„l`û§¶kB쬦ªaÜÆ—hþÀâ,«{P>>îõ¶ß–qÈx²”1Oš­Ô�à3ØÀößhSö4"š¤Uêïæ³Rµæ‡_JàÓÿ§ßËÛïÓL$mž…_½�ªÜ��²’ÐŽ8Ô“/ÙDW�½P„e[XØpÐ|qN-y»“nVw ]ª_´ÇÚ½�b#¶ø”î)Þî em��FüŸÏyöyf_È·CA©Ê©7Ýßç Y¸á÷kÂðë„%í Ø&.GHnŒ4ñ-|·§’]øœW«ùâäñq·Si@ôP#6Öù-{Û×2zÈ^ì˜ÔY´½Y;="xDÀm¿ÑµÓ„ý6Žä-Qc�÷1q¼^¸º#Úážœ©¨©(«6¸�ópÌÈeàè© Ã·,ª¯Fû´•ö’âpÔAkW©„Ã1TNÌÌ ÞËDë›ûCÝâ FK«êº¿(% µÖT#´-´�«‚vƒQLNLŽÌf k„VäÁ-ëï0>9†È¥Ë¥«¬RžZžšñœàˆàˆ›šäí­5Uõãhb•$}üª¹IÛ÷5,®4sF\ëåý°þvÏ0â«££IfÐNyâä'!Mþ6UI?qº†’Þ]÷FŽZÎL¼öôØ~UsÎÒB7g'¹ço}ÿùö\:6Úª˜µŽ¿DT–2{ÆB›ýš§zØÀö«Ú2�tî2s‡»“D1ìx­aK½wû9ÑÛ;¬ÔÆiùmñgþx<l`û§¶Û‘‰Ýg¯ª)à[Á|˜7d¯îŸFö+¾ÍûŒ&–e�9 cÀ˜{:-‹Éüí{a6Ä=›Ô¤KKôm-Œ{w}šÒÔÉÚ³!>ÕËØAcs?pÝ’¯ð¼™ý•0Æ‚æû×âç{u-\V£Ñ‘µ~¾gcßgÏö�ÎÅ š¶ÿYac忥ºƒölF߯IËÐÐEÔ�SÚfºÄî±Æ÷%É`7¶Á @û=ŸT�È8�ÝLdKCB~h¦€µìåùm:5wöB¡p/ ¼tcx§ã¬ÇYq•�wâx·M¦rË Ö3@‡Büg¸Å7³Èë¦z0=˜šœyœ2Ï8™ÄzÌ-›·µ�€²V<Ÿ½äž÷À]àª<|û‚ÐWör"C€Àâ9…aeXÑj˜\½}onñëSxx¤cPÊnDî¸î¸b(b(D«ˆäxà¾íFñ–Ñ(ã(ãëGNÈNÈäîw|ïøöO¡þÿZ?_SJ°ËiÜlV¢°Ï–¶Ó¢�Ú³!®õÃtŽæïÜƪó²Ç1Œ”ÎÉäRÒwa1=»Yî)<"c™+")s¾éqĵÓÚ–`ûßkÌ–ŽÖj(0w1‘’a Š¢F~9Ëê±P+ ŸK™Æ„yÜ+ËúÎ� l‡­ÕÄ~ðrÔ­ÿøÞ5•¿Ã�ÜF#"-”ñ$±Hrðú�Fd�6Éž}Éõç3î}fv‚k3J|jF¹Ñ=“©ßJšA\ÿãš ½óÄÈP–QàÛôJ­¤äîôJìñI§Q¶4^>3ÊÚîùu7RãZТ@²Ò º-ë*Ý^ükYSiŸýRv¥¥ $ãÛ }jÛ½’-\ìë ØíA+„†+W�ê_Dz€À º§žg œ–•ëDxóM¡pˆ'`” ïXýx/±5l…'>åt:I\n…‘ó{Ñ„P»Õ4ôß|lž^H6O†C®„|êÕþ óŒáüüTu‡qk�éCõ¡BCBC(F¸ÅyUÞ» ПE¶‘½‘mn‘ Ë…y/£X¡Xµõéo=SÄ?ö�[Ll3‰ï<¦N½ãK™Ì}Ð ùY?æÑ‘þÛ»“Ë>ëDÌ3WذV­À¶¿C»Sï맯`Lþ�À¨Àýêm"¥cvÅWþ7PBmø#î9É[™`;\­Åƒá"A)ª&ƨ…±4²*£ãdeH|Óýêztc[ØÌSï�‹BÁ.«Ó`û5m¤Cr’£7!ù=DGÕ0‡¿-#áè�É[n:,I$\¥8„uê×*ûqà`Û~í¢üËÙ¦­ fãÉ�d>Ãg£º±å™‘ªPªFœµï¯ñ˜hF}sÁöçZ¡±?å�ZŸßý+O8â‘Ë^¤%Öˆ¼þ©?'ûBÅ]×€Ò—l»pÐúù¬ˆcôýzʸkLžNÄAv½žÖA8Ú›)”noEÔzf~¾þ� ­œ~¼‡øÜ´I‹.:œë¥ÏB\ÐÊ̓¾«"ß×a:äßÖFcÃð‡ÛBøé�§(è†ýåëõ“š9•Õ±® >Ó¸kèg˜È-<¶vÓ|^�G'èTÖý»Óƒaiøò·š]RnÜšGí�D S‚¬ÂÞ»`—ç€ípµ¾¾A”k!PX×¹t­uê&¶RØ r¡žѱÊ�ûL…Gšíbð+8Ÿòd�íp5ž€x†£håyFòx¬¦½lœfô…R4˜òà’¼ƒ–�£]&¢Nð�œ9°ýsÚÊ+ÝGså9�cвÖÜ>e¼âFò¥�ì3®¯ñ'Oàô±t¼ëãáÛ¿¯YŸ32° ‘N:K®Y?¯vžŒ´²Úê Ö;ËQ‰é^q¬ÓÒ9æ`Û_ÙÈîÒðãÙ< ïÌÕv³h䡞AKq¬ñ*æÝ¡'Kâ¦ÍO=‚¸£ÚÁöçšKØG"ˆ­QÓ gIÞ'æGÒi�÷C¨ ƒn&/|i¸¶ ¾l.tо£)ð[Ušº+È2ÌJ ÛXUš’®±kšÆÚîÖN ó ±\qýí¹�ÛnÄúÏ4(""f€¬…«jÛX(îeR�° LÜÉDÌD,}�±q'=îm£ª[^¾œXZ8…à"Ìs‡¿Úý�$£$cîB‚:ÂUά=®%9[V$Œ>€’‡æ\{9~ð8¯úÅe: 5l#þŠÒ^&Žœo-4“âˆb�»÷~S“�íPÙ_(=}úD`æ’(2Ã"âÎðÎðïN¥÷Ù˜pvóŸ]×FFfOf�7ýý@)ÿ þÁJoo5òŒ)O�Û±ðÛi]¶±Zeâ׃fLÈç‹¶ˆ—QyÞ%céÝVò¼uÓ²&vA‡ ¤MTË É1'ÍÿùûÔx�fLAˆûÖüÕ?CU¿¸^ýHäâ¾ïÍÞš1!ß×ašõý[Ø›k&9‘)M u™L+´Ê�ò†4 Ñ%*èÄÇ3ŸýØà«Ë‡G‰ÖN*»”ëe±€IøÊ�딩ç§y—”`_°ýšv…è‹ÝeÌp/¶Eb™MzˆUsZ@Ä»J'ñË•TR’ÑQÅÖGúæ&¯€ le[¶�‰’ׄ° UË7Ÿ.ßÄ‹ÔTìzä{¯#zÂÍ¥¡±j:¥ÃôØþ9MéNFu„k4/"ñ,;óCê—1eE†A+™ê“ÏWŽ›Çÿ¦¿=Ù6°ýªVåÁ¦ã)€�lÎî•ZgnëL�±ž©¥Ÿ]_]Mž>n]’`ê6°ýZYZÉ£À:V{TÊãióªïÉyq‰ˆ¾�Ï~ݺƅý˜µVd5|-*l`ûU-ÑOAlµ ×uiÆü‰ã &¯Å‰5 \Qyûåè‹7qñÒyùÉÛÁ6 i§Ñµ¤RDÊÌË j9cÔ'øŠ„Ù…,RÅ{U�:èœ'àTrŒØ~Y{|W×½âº,.ûõ‹èÊv�K¢tŠZ1Cs›�%qÏkÈýë¸Ñà�òäP°ýšV‚f­&§§žuÁÜß{¢ïå}è}èÍyŸbV�©R¨R”ø•øÅ‘¼ŽË+C�+ßí…ØF-²;w0ˆ••Êžø;ø;Ä5Úp!ï½:B£ß©|ÛäÆ ©ùö!›Iì ½WäwE>Ó[´….„^NÂ@?'‚¶éµNsŒº>܋݉*ôzÕÒ õ§{¯¼H{¯,?~ßO#YM»Yß?ܘoŬPpVï ½Wäûú«~C¡O¥~tM3Â�w˜mãkÛ½*ålø`qc¶±[²XÑ8ÞL²’2ØÀögÊ‹—¼p ï>f ^�ÀVU’ ÉÜZuÉ»Ž�Wü( =â|¦Û‚Á¶_ÕìhdÐC<°µz©é6$æÆ¦)&)“ÆScoN–'è�gJþ”¢Þ©ôl‡«ÍøŸþ>.OʲÀž™ªQäuùŽhŸE9Æv„Žw™øR †]r ØWÓf�YSy(æ<°Bqb¡::"/•³þóæuØ¥ðù®.Ñ£tÝ §À¶?Ûz¾Ù©‘:ª] Z½åt1ꜤhS!! 9ºÙµÜ«‡ZD)íJe¨Ér`ÛakëįsÎaWã\ùðâá‰ZoRºK„�‡é½ç{5ª)ÕÛYË:^}c¶®ømÐåµjä™�¯qàÔ@¿xmv¡ŠƒÚ·ßš ÝøãšÐ‘²yjÛBU>^M[äÐͽ½›†ÇUí0ŽÆ€øE¹Ý$±Œ*sµþ(€{*ú‰Ûæ"N\Þ‹ïÓÎ É»‰þ��?gÀcMß©¢s›$Ï–œìk^LS5¡î �k¥´ÄýÄý§Ò¢Í"í�D<Žo!ŠÌp¿0}ÝË‹"À»2²E*+Ê–$Úô ¦½Xd;&Æk5=ro|H+#ÕàÐëžZ°?üšFSù~ù~š·‘š|ÈØn±ÝâKçKOø¶éÞúãSK»›ÈçPRdOÈž�͸¨¨×Ú¢â âà™z„<z¼¡ï¡Ð{ÃuL{½P�d堙в ç1aJ• ç%˲ùã+nÏý»[_tSl8ökJ@èÑÚx!rßúžHÍ×—a…ÿ|&$€4Êÿ1­ƒ’õÛÃRaNøoµj݆š !ßׯx¯ØÀ4z:é4Ùw²YJ…Có<¸Ã5ßûXÆÂ.]§¿¬c�-§6RJâž~‚ l‡¿Ý ÌZWu›3Ú Ý€$·ÆˆUóOñIãÕ‚]f£J|Øä®É) 6°ý7�y¸ev^ûû±Œø‚‰„Pž1lʶ¶WRéQh<Å?‰Ÿ6g2UmQ¤§.›Y&ªë,@ 6°ýÕ†b>#qïÅýù¼TÄ’âùø;•«gx Çì,£…ÈÅÄgÒý‰8Í%­`ÛY�ÛzHK‚l<{Ï•¨™çÂGu+Ý |Îy¿¹eS¨`“ a‹/ÜÒýE l_;ñ<å8¿”ÚÒè= iÑg}7ËX÷a‡wiŠLó%X¯øÖ ¦º¶ŸÓ4.~¶�ÈÉ4;#fpTä‚|pa'�oº“ZIÝ5§õ¡ØÁG~+_^�|cêvtmÎ:ömM!,Œ]a�ë,ŶÁ*÷VsVYmc3àÿ›ù�½è”ˆÆeî çO§ŒÆ—¢¼DÁzèrøø»),^ÂY–íƒd¢¡XÃ!„�шkí¼G(1÷da¾·çü—blìD¤Pá@›œxå¾XÌs{1g¼˜ÏÐ`žÁ‚¹Na3Ð3ežàøHŒf!`TKQr»u ÄŸŸ93wÊCëÿûw§ÒÌ…MøÝîõ=„ëήÒæÏÙ�¯ºïrÂĶ ø„�ͨ4pò­ƒˆ glFÉD˜ï)íúìØÆÏܾgqz®Åš"Ͷ@x[Í5´ŒN õ×id–¼4¼4‘h÷VÑò^¢‘,Ü,[ 0™ŒQ��læö2€&ãÕØTZ€ÚãP2~±ñÍ\$YôwãÄU/ Ì{Ñ3«­oxСվ5< \æ8É"LŸ“>'‰x‰x]/‰qu¾�vUr#SJëeLÙ Ù )ÂØ‘Ø‘ŒÁÀ³a$çp‚1×äâÇ`‚ñYºvÄõÃsZ ·[“ÃüyY\[±ƒÐ¶òëC÷4+;Ê%^Ùp¤Žû宲jC±(ÛùŸ‘ ÃX“ó"C¯¥w¢H2ÇÝy6®1Päø–krkë'˜ßk'í…þÍÓæAl«¥~œ Ao5ƒÇ[¿ Yíf·«õ˜“ äÌû?û““?¡�]ÖÏÛ¯ÙÞ¿|ª'Ú™ÎNÇÜク�Gh\÷‘ ‡™$]�{"•ðƒj†§Àö{·ñýmze“I´xiO®@KÎÏéŽXX`ÍÖ±i_P»ìlF¤3ç¥l`Ú¬ùËjanâÅ6f’RÚggMK]³itÙÄ pZ `UM8_G‡iX[‚ lÿ‹V$UÄAmNU¥ˆ-yGùéÒ;‹C%4° Ñì>Hg%-}hŽ©'Ó–˜¶ß»ÝÚ;«fÜö®I|n”ëÀý0¯FqµÆ ca§©qñÇζ¤°„±� l¿jS�óp«+!a†g™NãC+|ªFîŽx=°f4}ÆRpžû™>ùØÀö¿hc¶L®¢´µWžOçfjN=–";ößÞ—¶ß§7’ ¶ʸ«xçr^lúBNPæÌ¹ÝoU ~B áøŒnF}–÷v3g`È—¥ëÅ”šlïºîu¦É�ÇŠ9­�¤ÑeV={<¾ŠèÄo”ÚER€Áì'Ä{È°× j¤ØŒJç‰ Àãòó-ßc8Æp,ÞÁñ=¼„uJƒkLθwò=Ã�ÑL!_³E8åù_ñ¿¯@k^F3`¬…¢Q‘ë¯ià�^Òß S ÀâÆ*‡ïq´Ã> /ü²q¹7cüàh;ç%—�å”-DÊ4úï D&é|ïníj¨àksóbë~¡POLìXìX®®ºõ^v6h§,6¢6Ã4X>Xnûq¥r¥’Qɕĕäx¹5æÌYG¾b÷ JXìT¾uiiÓv3gÌuFéë„]Ì“ÚoÈ ˆ½±0Äí8´’PN¥MÅßS}YK(¬™ìÇ3g>Œ™sí·=Ð!¥4Q]²Ú©QëGžê•ífΘßë¯ìŸÛÎoîú¨¯F9!SDU©£Ÿà‚íÊÒ²’ÌM>ޯ܇÷–š}þXè6°ý¬v;Wׄ‡Æ=ÐÂóþØ©„{Å-®JEç^æåÉžm·]ò…ºâ6� l?«ùЩ?€UšØ¹uŽ"(âxHÛ�ˆ¹^·(nG¤Ý‹DM?‚Ö@¶¾a`Û¯Úì£R{N(ª*�!öîó/´½˜E÷3ÞÍ›Á”À¾Ì�÷Ö6ž•Ëjò´[„ó÷µÌ¨S{¬½&ž»›ïˬ+ôÛý¾Æ|ª—¥“ÉÒ3xÙŒ�´”ëš­’¥¤ÅS%iºWá´‹»ë æ�_ól±ÏZ™cÚOp@€4¥øLs»{Éë~fo§v &l½¨ëðÏXµù¾ª§/Û«Ïÿ!@Š˜Üòô–ÛH<Ùñ €"Z§À'ÚJ¿nîŒ.éf¸H’¨qž>„ß»¹á°æ:ö½'8ëT«Öq¶n$ÕÇù¡ù÷á7ÈdNïêØÕÑòÍx –ªƒÆ½—€vMK7 ¯ ÀÅmª±U À¼h­Zç5´ÜÉnl$�Ñf¨G!| ÷Éô.Ý‹æh—ÌQy»÷pcÔÖ˜‹ÃÓ‰Ó‰©hµC‹ƒ1[[~Iý’úiâ­V„òâF 3„]˜ ‡ ‡KËŠÊŠ¢#٫ثÌ[ Pÿ¾Ö÷£¯©Kñç²`Üæ%bñfÖãb‘Ûݳa^ë;éÍß¹¥Ø}¨+x8‚gp‰S6ŸáØ+|Ö «*‘aY³|QiÑ8®—‘(ê-3°ý󛙃…êîxqÑŠ!õCeÍF‚ –Ìê>„;™KùžÍ1<èÏçRSÙÏ 6°í´VŸðÚËA»±¯Û9“–¬3€ÞR•ÎB ½:Íw7¥ËAO²#Ü€ƒ l¿w‹=µhvÿ퇄¶—Õd.Æ’Nô!Q•eŸ„É\m ·˜³è-©þÀlÿ¼æê&ÍŸ»>-aþ\éÉàŠ~F×%‘šïÅ.‡¸òiIÆO‹q’qä� l;­q�š%ŽÂºÊ'øãcóªXØY†ôÕ}Ä�ìÕ}‘Aô¼­NJ±žçÅœAÜ&RÅRH¹¹r^hF<¹å½þÚ s¯Žp‘©[•vïù±›j‚ söK0”§JtŠÔd„-çœÖ�g\[Ì Î¹R•„¢Tù<úÅPaK²ífæÀ^±G=±˜¨º®‘­ƒ6Ü–ë�¢Æ s܈ŽÞ·ð¢ïS&ÉÕ•�bèS…pÈ-À#a§”uÆJE—6#ø^0�ªîëþ=Ò[¤·�8Ç;¾×÷hÝŠÓšÇíŸx„G–ÑhöcÑ[}möK‰N‰&�B˪D;¨[�–�*†®¹Û à9 ˜€ø—oæÚ'Àѯk§Ýõ+Tw*<(’ßLo=ñn ÃhŠ'V5Wï‡Ã�’|½¸ºµåè°³b'ÅNÕ*f<Át4ñh"‰@öø»DS`ÛÊè_�©VKÍŸ•›•#¬ÁMÇMO?º+jíš"ÿ¶nÜl`™E~G‡?•.å–/M×v3ÌkÏ¥ãþÙ—Ts>K§…M3æY÷-\Ø~…fU=ÓÛG�¬8šÔTŽ«¤6�Æ&§â+ß3þyRõ™®äóâöY`ÛY­Ù…I€¤KuÏB_R>¢2³ƒêyH\£{Uýn}K“ñ{Þ+‚ÁŽ c`û9m°C|„ýM|R;TŽ¥›Ëך�{kÄÞIãxâAN�RÒ:eíç}3`ÛVM@¶x¢±YíµØ1ý‘•¤SºCšÑåY—äi,—Ÿ“£ò}¶¿Ö ôýi®Õø„û?gìÆqyÈöXM¤óþ§þ¤Ì“KΚ:\Цؔ`Ë©íî0ß�ÇÐׯ¥HȾÈìfKdõÆÍ|O‚@}5™Æ©VXYîõxÀ�ï [Üÿ�ÅD¹ë—¹Ñ¾“UnO�‡�owÿc¼ëšjã‘@fÒ\ë:jÕ µ 4<ÃY‹ >Ä*Dø+m_ü(&¿IÐ’¡RY7$•{3ªÊÞ€Ôšߣs£s[M>}ä{4ºë׌­ž$Ï@?¡Ù•ÎJ;¶R;¤9¤I+€æ©‹–Ö×]†æ=ñæò³jï`ÆVTj3/¹W壚Ñ*ñ»Tâ[†n洰ɹ:ãÀ 1'§î8ø®+¯rÁG6?0Mšî~Òý$~&Ü‘r&eˆ2¤¬¢¬â)¡VšÏ&|3ëx0QºQºùØ8«8«<ôò8ëqV"„íß×ºí·³­OމlÖÜ=ÃYì34c»ûÌk}'½sæŸÖ†¢Ãˆßµ2…ð1è¢>üÎ_¶þjb‡â€ò¾ X^Ã*7¢uýt¸„&Áö{7Õ쪼ÃglË^…Ûz¾“2˜9 ©Uí’tâRŵÖ.HºŽ|Ñîˆ_ž ¶�Õz{vi‡È›t�¼¯¶D×ÈZjr "øú5|øùŠ;sN“UqÇ=î`ÛY�; Ž »e¼¢z²¥�lPcίqTgôïhëåfÛ?¯™ŸÔÓAÐKÝâ�(DÔO*Á()žW]rpßK ³!±±7¢ûU¤>äš‚ lg£¼CÏGd‘Gvæ—´Þx<è¥eKÒ\­¿°÷ÎÛ´YQ£¦{.A\‘­¤`ûkÍ1¬‡ j©×8ÏÉ‘{0ï㱩tOÌSž—M+£&ëp�"ùÝÛÛ͘0ß/Ú,ZDëmrO/iŸ–ÃE7ûfÕÑS$!­p5yh®)Eþ�ÏSãÆ˜1Q;ûJc Gþ* mýôRUŒ°À–çf¯Í0¿×NšõýŠ-ì™¶AnDr£\]Vóü!Å@Y]ú¨¢K»É÷gºhFEη»O`¶¿¯¸˜ÚfŽòô¼ðÕ§•GEšãô~¹6°ý�mΩFv[ ‡*囎•¯E¨*tÅ8G»v >89¾h¨ ÜÕatl¿O»x+³êîmÔ Ñݶc^tÅQwËøëÍg)�dÏï7�;«0cˆiØ~V+ŒtaÕpãÇO2eó�L©³vŸŸ±´£Ÿ‰2¯a˜XZXHÛo^oä6°ý ­,½(&°î„�5ÍþôÉËí^B22¹?`9O[9ñSOÔ/ G°#CÀ¶ŸÕüäD* oÏŽ›¦Ù ¨ò",Š$„Ë2iXÏ¡nÛôßç僴� l@SO?ÜœB!=)= f·§>Þ§@”$ô±UÈ4mœGÅM )?ÇE›H°�í§µÔ;šÎ†2„l†»­gá‡Ô¢Þ~^m(ê�Í®†ø×qaÏÊBäÁösZ¶¹Rh˜P¬–:2*xH€6ï2–GÕ‰+Š…••2�³ú æ¨ã}µÆÁö{7ûÌX÷|[›bsKNß#å&a;ì�ô¾˜ÿ´%]¼¥\ŠÊo]é¬2;­½‚ÏŠ|znÚNcêžB,q¶¬ Ö¼çr2Ìb ‡¨Sâ墭7æ/×^…@k¯ì?~‹M/_Á°Vûnàuö%6µ�s;­½‚ïëïZï>O«‚·t&ôñÀA¬Õ¹ÏrŠSé3ïó^·™©pÅÉ<!�Ó:5¨ýnøeS 4sÚ§—í®�G`³³Î5ŠdùÌ*=ywdi º?M®G¤ïXK0Ô ö§ÚUz%ì»D=t‡Öúä&†Ç~¤‰IxøúÊX`Iô9aÖ¸OñzíZMPÛ]íËþ;Ì+#ª”ìSÜ) Ú¡Ïý5œW°íSi†¹pöãÎ�(�‹Wâ^�k„Úîj†KÚ·eûhÃB÷MU„‡f%ðÖŽc[¶™ìè;"�w¨S�9jPûÝöö«éU]J¤®xÐâu±0Ayéú\2v\jì‹2ã/Ý6€Å·jcÆ©@ j»­-“¿Ì$ªØ£Þõâö¾*ÊCâdí»éÜóííg#§Ôy#ïÞa;Ò�ùÝ ðLHÍ“øŠ kô©Y=)²¦q§™Ð•ï×û(�Ýu0pÜðþ•åAºîQj¶­dKP$€î;/ä(o=îÚª'»Ý�“x0¨üqmñ ‚†íäUT),]".mæûÅ÷KÝAÕ“›%èo˜‹^·tkb°(µ<…¦{Âó];çd©¸¾¸>OšZ¥A-“#~຋(€N 9WßÎ->€†^¡ÐàQ4–H¹@º“à Û9Mõ× f3„gƒOp«[Ã(›¦†îLàÏ-(9øØõ±KA“þÒóP0jmjíÂÒÂÒD6u¡y4ù˜­""îõ€]9tåPާ<§|DB¡ ³ðÏ„¯žw Uë±r6\ÎÕ£XØi&4ïLÏ‹/I£ýÁqÖ¶x2ÚLÝõéñ;�ÍÈ�fW‘ïÎÈÁ§±Z„à*ßzONÖ†üz&$ š eÿ˜ Õhxgo�`í@ZmPåÚ¿ÓL|_â\¨A hŒ‡“”›”Sµrû'ù‰*WzÙ‡Q⌠F—Ó•"u‹(„<Ûwj»¿Y1¾O]Öq�0]¥\…Ç5GÈTˆ|ÄñM2°Và¢�©¬w;ë  5¨ý_Û@ã—IÃüä¨ÇcÈ4ø‡‰(hZZ O>ã§eýp<ÉÚÏËâ-µ «"Ô öOh¦"˜ã®_0“:M-Ë5ºEÝfë‘l#§Ǿ”ÎãhEú(•®@ j»­½½ÐÉaV”pßöÕ¼y´q�©JüÑHnÕZ»caÛGŸñïcx“ÅÉ»ÖB j»­‘4O×9? füôê`ú,–s–´¦«Æír/hÝÇϰ, =tq^óûO7F›|nÿì†l¬(òÃAçåOÀÜÁó©ñöò¬>ö½å�^ÜWUÝi>uõû5 QwÛÀ0ã¤7„Tz�Ò®Àê¶ò�?Š ÂŒ?2’Ä—°Õ[Ö½€°;)=¼Hƒ’ eêù�¶sŠ™*ÐÝ;—°ÙÛä·ÉÖI4¬›í Û°—dÝllš f|}|zå"˜]Õ‹'½'½šíC4÷™(Y4kVÔ:ÚPõÀÓÑžz;œ‰€Å€"[ƒûh=‚¶RÊóƒÛÙoü¼HGBD�/õ´Æú¶�H§%¡¬Ÿ Tº�‡™‡YüV!MU Ø�Ÿ@Ž@.KLýƒPZjýVÓoýÀ$¢$¢Ê$r½r½Ã=<HøæêÁó);"™åK߬ìbpD¾Ž·Õýt_†õùj-J'i¿‘L ÆètÒRÅÌDM_ CFZ'‚äx¿æÅÌ{ÃjÍ7‘Kä ͼB ~=Ÿ: šO™þØ?ŸÎ=LÚ»Ê!¡Ä¥«E¯³Ó| |_ E,ð¯åû݆…¤Ÿtð0œC¥ýNûäZF©r\Ðzštq¸‰xÁ²ÁC‡ÉÕ6ÑæÀ¨ÔiUÑ*`Î8ß 5¨ kU¹…ßräI)¡Y–~…ÈÐrÐ ÷"~X‡e$ÜüMû#²Ád¥dÔþÿ5)Ø-'”¶ÝQ'æb2ÚýŒ�Q¬¯¤‚/e7瞣+ú‚»FVœäÚ£=¯µ¿¯U/¶œ,L¤P ˜Ô˜¨­Ù×ú “Ù‚S/‘ʶX<Õ`BRs†GÓ ƒÚîj)¶¼‹i7útº]‰ªŸ_}^úf…ú8^3BW”EÞ “)°_Ý©×ÞÄPÛ]­¬Òš¬Ä#õI§·I]�=BôÝMÑoú9+.cÞo�oÉ9lÐQ0‡§ú¿mÎ gèÆ³ ¨˜>*48qÃ(ÃUààï¾,ЍDGÄÝ6Ñ`q—’øœ�¾ûâ°‹ÐÀ‡ôÈža‘x)›xm>f±hTç%9Ns¤NCíßÓr–D|�ÞŒ �f—…W‘³Z¢,›í>ǽF¹‰ŒŸ¿Œ*ñöÓ«÷‡ÚîoNçµVÆ )‚aOŒªÏ­dÑ.!™lÝá# ÷å¤ÃM°²5b|tmTë¡öïiX^!/¯¡®[užI#SHŒNù¤yâJ%ËY�Q½·îYçƒ�ø™êI µÝÖ¦Í}>�~Ö“ V”Â"ë©ê«‹ ïËÐå\J²år./Ñèðš\ô˜°DtЉ#)µá¡ùs™Ä;­É�ÿGš ª‹©©i[DÍà¸�zÎj±úL5üMÅ•r ¿>#[´&w†¾¯åÙ˜3vÒó'düÚNë'àûÚMïBÿ‰v ™Ùbg¥¼§·’Q’·ß_=å�­K¥)k59ëÞ‰;ää/(UWÌÒ¡öÏl#M/MOFs£s4ö¾Ì«î')É{/ª‹)(3yG})A¦Í .QPÕðÔþÝm|o«iñd-~¢Ø }x¡Ê¼YÞGs�¸†û‚º�Ž_°-‰ñüm3A¨A h³—›*¥øI—ZY÷Ñ–�ø«È3�Æ„[Þ§%W¸¢gntH‚†3sØjPûo´|Å|Þƒ—©*Na�t×{¹<€`(¤iûÆ%IƒMAwUI‰až¥;Ù�”Üjÿîfyƒ`Öàbë@ƒüü(ß¾ãf¨ÛUÌòœõêc¨csøDIÌ6'p¢¸¡µj;--À{ÑP/(DØâË1"xùkߊ�¡o¿|oÏ9h1ZÆ™«Â_fFþjPûo´1OY#ÚjýWÓÉg§‡ž+ÂØþÓïåAíßÓØ-ƒí$Ÿ†žº‚£Ó�™´˜Ôž9‡89��š Ÿ-.'[rûT¶ÓÌùý𩾂<°âzDç"±³Ç�{ßOßj¹Ä¹ duÛ#Õ·|+§9}€ž°`!  D�bCñÌÁàítä×û2}[Û¬ëh×QIÁ¬þÍ‚^op+Z§â/ÊHku:ƒæ]û’žpkêÉÔ“²Kh…îhG,¢5VðÕ¬3ÓP<¤8¯¾ÛN# Ð%;O79ŠYQš¶²Bj°�™³æòŽõu£”¡ž7#÷T¡ÊÞÁ~.âu¨�ÏMŸ›‚YN|;æÿÀÿ�æ€æ@\Ù>¿Q4áä­z/StƒYÄZÄZ³f‰d‰·[…Y…í[¶êÏœ�5J×ðôÃ¥äŽÙ5ì4s¯«0+]"î`�¼ÐŸªü^®a�ׯ°SBu�J´»Rçœ$ªö뙳hæ\ýãhjIÝDYXõÔ¨}Î-C›Ó;ÍœÁ÷õ;ïÏ@m÷7/³ð9''Ëô»S$�G?KI¼ÑSR 8ÉÚPêëÓé5LPd;ñ)Ï;jPûSÍ%ã,žµ�W âÖ³±ãÄS©Ä¸Kòˆó�Š3t„Òfß8,ûÁ=ñ µ?Õ|é S…Ë­o¶�ÚPF �µ†ØÌ÷Þ|Çk s\¬‹=ë¿§%�ûÝ>Ô öOm×#wsœ:£ ³! ¼“;è ˜B÷'öæ}ÊóÂý¿ßBx<%ƒËúe— ?ø™ÍS7CÌdB|\¤ûLñ`Ú^ö�žÙ¾_£ËWKvÓ‹JpEgµõYÈV°k\€¼€¬°™QÙV'„ÃeXŸ‰bÚ$7ÜÚÃñp;÷u©S�1›Ý­¾[ýΜ_r³ÐŽ 1~ë^Ý9ì  A(ó¢ j65ö i_ª©a!C›aC;•º�¶¤]6€à „4�c;¹]€ÊCAì6"hÖ‚5ä¶œbÛIAæ�Ï5æ«90FÄ[�ïaVÔ•¦$;ðsNöf®(W«àÕ„±9°ÒìÒl“1“±U¯De4ÏŽ­´ñ[ûÀXYq5.—G¾\µ\µÆ¢­àg6åQ×,žÈëgñ½nú5ý{÷�e?p<+³dgFö¦Ù{dË*Y·Ý·‘*›dïÑCFBD2+2Bfvˆl*ñ{®sç8nä÷;Ïïôxz®óúï}ÎuÎõÇõÏçsÝ÷õ͹JuØÌ†øÛº–.:û{¡ß!ìø¯¸,`Ò,em÷´S—®[»¯'?Fdðó™íÂÌu~_êIÂ9|ܶe’IsÇYÉèÃf6Äû:JçhþÎ-ÝécCQþ$º©:§b! cë‡Z_ñqEH¡„œD"×Ûèm²MCØþ{� âb§ƒ’ä%%Q5¦w¦¢Õ\䊽2¤áã#w[YÿKyfD�ü^õ5Cœ`ÛQk�É}÷]®7özdStQÙëÅä7¿”ÑSÊ<ÝhÕh±È¥oÈÉ‘dÏoJ>@aÏ ;¹„¥9q0‘*yë�Û!·ag³ÕeexgxwØvØv·®W ŒÁ5óîwî ¢ Ó Ó o i iÚœCOwöígŠðÇ{ãVSûBO#�Ç”éwüÉS¹ÛA >ëè^�Y—Þž^ñÛ¸(j•�¼Êйf6°ýšslÝòÀ YD}êû $z%®²×Éäмª¯ü tªàë-Çs¥)H9ç€íhµV/:!¼WH:hcÖ&2*Q5Ù�§«Ã›}jQLì-g3l ‰„º®Í€í×´�R“ìýI©ïxôÅ�n<ãoÏN:~gÒÙ]Ÿ)…ˆÓè6~ƒÖõêAìe°�í &¤ør®¹U·O’Ñdr3õÂ�'cq•9QA*MvØëßËq•¨ÆüóÁö÷Z‘I ¹E½ß£ÀjÚ^T¯|¶b]ñ&Äù§ñ¼ü u#.ž–„ôPûÅÃæÄoE Ó ªá°¯3xÃCú½mÑB¬±õ¶ÒÈÝ_‹j)õÍý|þá9`þq“sœ'µ2Æaþeõ †vØüã \äc‡è]6÷úŽæ2ÍÀ ïäꙇ{E\ÐøàÄÐx-T^²×Mµwþ€„ 'L€™Ëçž>r×<÷“4Óš(I™åÛM¯I¯éVK:l7T¤ÑôÛòúËϰp{¤á dÊæŠuÌ‚£‚£|àÄ át,Zfàp£pĶ­á  €óÆ8‹û °¬Êé ’0™YŸÂæz»vB[ýy׳5—íúãÚã^µš\©<˜ 1Ƨ^X/¬<�×ZY QÖVÖÖDÈDH;ëÊà¸?ÄöºØrWQ®V®Ö·†iåiåzÊNÒNÒê†D©íg öãlëó3âD­(Ëœ/ýBVo6ÿ >ëGé›3ÿµ6~j´�.ŒŸÆäõh bãµ”µa-Le¤ûãÚ·ânÜH溼¶ß»é<­- „Uô<‚Ý•5]¾HúZ§[Æ�K縣±hQZˆMÄ›w®X•ÏÀv´ÚÀÀð±ëa*–Ýç³t7(›Y_YZ�Šôõ‰�Woú0¡¶8ÄžªâÈàÎÛÑjÜA‰tÇ‘+ Œq™ÍûY/Âf¯‰¤Ñi3,KñC‚ǺMÅ`ËaÏæÁöû´Õ2ƒøùÊgÚÁãWäm¹ü*x%Œ_u±ñÜäüšxZð$öSç»ðnv°ý÷šíyc#k*Ù¬�s¤W¢4ùHˆ«km^a¾Õ‡ŒIÎôK`ÒjË~|f6°ý“�Ä“Š×î‰XDWaYû­â÷ ax­%q&kž#|–0oÉð áŠnÇÛßk®áï xì�›W99žL1ÆËfÞCÜ1(qA‹ÐYi XÇëÕ#ÝÛ1!~_´U¢4„â�e†q*¦¡‹ª·ó-H]Ü¢>^X»˜®— Ï3+⟟§Æ}ÀŽ©?ÞX¯7íɧ4Ù �²å—‡í˜\þºfÔ4î,¢¯ÆsÂ;ÞCޞ̞9¸þ4÷mÀ¨Ä#Gn¬¾¼�¸¹ú\x–6î¨5b¹¸(ÁÍ~À ÞÙ¡Ý((4’œwkÙ¡|f[/4ü;À:Ò§*cë‡6ƒÞ¤Ò¤ò Žb_Á¶.Ÿ¾^q[‘0€S°b¢4¾ŸaÀRµ�û®b]Ǩ2Þo?n)Ú—(›º>[a/jC6X5¹õ–€ÅŒ�†�FÀüb6JZ!Z¡¶“¶“ƒd 5NÚg/ÆY¥VDÒ·¤o)Јå‹åcwÄ�‹;7ÊGÿiû™ !ûqžšþð{•k,�Kµñ¢Bž›½½cB|Ö�ÒþøßØÂÿ¼nú,*­Y©!§ŠaõŒZ°â ª71¥ê(„'²½ b_~�¡.tʶÛ?×JM½¬`ÙÓçÞ¿ñ7¸€KŽÜA,ÿ9ß×z¿Ìƒó¬¹÷Ô‚kZ¨?7Ø~MS&øâ �á˺¤D(·EÃcÓ’ù¶&!�]M!#]b‹:0?© 6°ý“mÅÎRŒ´.¢×aü¡f¡ÕLån”Εîx�¸»�1Ý]ß4ÕÌë4? ¶ß§©ÞÉ®�t‹YÆ�L>ÇÆxŸòeld…@ñ��խɧ«'¬/]Y6‹™lØ~U+‰öbÕ÷ÀJµb ŒNopôY]¶w¢Z޵�­§™ÛX[K�9a[šd6°ýZEfi|p³Ÿ#ù‰Ì�w¤¼8JßøòÊÛÖ9±3׋®EL"G‡� l¿ª%(‰¯Õà¸}žµú:¬Ãk}r]’GL‘Nßq%FèÎ)èP/?iØÀ4½LêÖt²(¹¹a]'´Æ$¿" ¼‡ÅaK‰¾UÄ·õùð8T¡Ñ`Û/k�= <ªÌäqØÌ„PÔ‚?‹Q_Ñ�™ßj*JxZGØÀ…¼¬Hª¶_ÓJ‘m5†_N0Ô‹ˆ ¢(Ð@òÍ;Í|U­¤¦F¾k*g{…,Éßpl¿wsÎNð)äcëPkmË|®Õ"êä‚|”¾Aô¿m©"w´¦…×û†ŸÖŒÈe X“!¾{…ªÄ¼Uÿ¶Å…FT÷­7�Aü°w¯ˆgE>1\²WY|(�‚3„"q^y•§ß6m6Ú�Õ…$R¾ñEúé»W^„w¯L?~‹M%U{f«qp´©Ð†Qéù9ÃÃÞ“!Þ×?õ¾û…RÄñu�ÈÛì8£dÈ›_ÛïÖ©å-—4ub™(°¦ŠOàΦªª� l·»gý’wYûÁc ¯Wp›«Æm¢l©üz-)OhU°ry‘W‚ßL{(ØÀö«š•J˜–n?%õÖ�äüø Ù$yÊDz\Ó­™àÊ$C>†Ô©4­.Õ·`;Zm/�öû„"1Ó"[Nºzdq€Šëw”`Ç\òqVT<´e\iBá:4‡ÔV°­¦Ç»®~_Üih•":òäbmLdA:GãôEÆ Kህî!N±ãÔ=J´A`Ûßm}_Œ4‰¡šÂ!kÎ0¡èóRbÍEøLh¤(7¯ç§ÙÜ×%HëP­@JUØŽZÛ ,v«[¹÷Åý“õˆ©…ñ»ŽÒ¹çû5ŠOú.¹+ú¾ãön§ÚUV‚4k£Ì[.P‘Æm‰âÝð]ØCÁÃ~£ìú×5Á%ЛˆN(ôZî()Â5H:!¢e²—) Ûà±±™âŠê¸°×¶• @á«0àºöÒn&Žýô9mèªN<™ÞmÖoÖ¯¼¿b7Eµo;· %HÕ ß^„ûò€è9û™ûF¢Õ¢Õ¦pþpQ0Z¸5�îm-Í€¼[‹®n¡Tˆ}âé1kÜi±;³\P%ì¸ØqQ�‰HžÆ ‘ïGß�l†l†©£ù,/Üàˆè÷j3SsFĊŠ’”T—T™µµf¢¦CÜ =Þ¼æ©Ôoá6®·Q¤E´zØNhÅ•Šý2¹úG§Ï�Š…$e÷'‚�=mÐ=&d›ÐAIžEäv^…oÈ,4V`Fü|'$€°*ü±kP!t´L·„�z­[ï>rØNñ¾~Ź`Ðh¨e3åßÊçª�,pãŒÖ}`6£‘Ö·Í“KÐüðŠ‘u’lG¿YÐ çnh¸Ïooò¤¶ÅŠ×òO¢úeòêZJ³R$¿nöÐá� ÒØþ/�q´unAï;zvâ Ád|îq,"òöö2™,n †�‚™–þ>f}¤çÝeÁ¶C3æGšuŸCÊì16¯QyÏìñ¹Ê8¡FŸR.V4*ÄÜ}$Wƒ¹…6°µÖw½‡ÙäUú#HõŠi’ÑKc…´ lŠ�샌ø ñŸÐóÅO•roØŽZÃm[zã4žJ3UM–…LghNa¼iÔÕ-ù‚ÂsV‡ Swu,ÎÍuËÿÿ»ÑX—²±¶$£ 'Ò‡\“ºDà‰¸ŸÂ–‹_@¥Ã¼jç¯')€v9ü°ýÔ�¿®‰ ��èÕbÈŽÕÓ}Í•‹We=Q÷²6g8ùÜÒAÆb Þ«ÎsË ·$B Àl&œØF+¾Ÿ�¥¦)@>Õ…ÝXªYª�3ž¦ì&‰¼£©d›ÚUãï€Eæp<8M•ۢןâ]ð7ò7âC†Ã�‚s(+¦�£ÃŽ“Úüð.À#ø8t?_Ô±"�çdïÃUëy¬1;$î‡BZ´+k±öM«oÀøÊà _¢ÎàyÙÁ6åê¾@Û¡í±KFkŽˆÐlÐlÔ-Ô-p'¸î•cÁ‰íUÿÞ ­ ­ „  ½ ]ĶW®WŽÇà q?e�%¾aóÍÂ>•ÿËlç›ÿC¿½Ÿ ßJÔÈÄÓï'?6½”¹^»<ßPË•|æÙÓ;\Á‘+7Ÿ#=Wj󆮦›µqˆDEbü|?ua?eüãûù”žÑb¾õ°ôJ·väöp*�ÃöSˆ÷unõÏ—<�q^±Œnö3†áOÿN›rÿ“XAðŠ]bP‡ö©µñ·8«æ-^gÝæ;a4r=µçLiVÚÀ6 !oÊ·Ó ›OdTaš\­åÛùÀ¶†ÝmžÀcú®+ÿC¶ÜKrhØþ{M”àžK¸ºåÚ | <šÖD†jÑP›Â¶"CÊWsh[ø™îýê+ª`ûçÚëµv™²?ˆdƒTæNvL!Ñš±hÅÚå2®U,¶ÜÀmÐa@‚@ Àv´Z„cíé�¡3ïݱ^;W½ûN*x¼Íî2š�”nþÙà‘“oÔš|qÀv´ÚŸu–ø•^¹=¾7Þô;Ú z |»ú<®®ÅéQWZûszÝ¯Çÿ·Í5]‡r¶P÷ôÙIé6âÅQÄy*4úï 1[hAº‡Ð5»{‡ÍSn]Cï„€¨AƒzG3$>šbÄ1l/H±v x±�u ó5ò^é.sìé‹‘c€¤H…¼ôSw÷ó„ù¡à4½ñønâ$â$6l„L»É6ìè[ÙFÏÌ‘ H®"ǃÛR!f\íe"`"¸ÿ .[NÔo!Žwã£ûÿ°wçÑPý�Ç%‘èK¶b„²•Ð c)²²· [–QÂX²d){ÙÊ.K¶$²ei³ËJ–¡…Qd)KMˆžîïæ™Ç�‘?¾ß§_õÌ}ý1Ç›{p|Îq>ŸÏ�{—M¤Ô>ê¶epÂúÐ`âÔy ê�?VSzøðQBªÇÆoXžs•“*‘íê2Aˆ³6T<¼±ºXáEr * ª zQOË%¨øØøX‰n‰î×`Ÿ O�S >A§9-(%¥­prr%úú�'QEÐù—Jt¦›Cä ᄅóÕ×ï¬5Ÿ"Û%Cb¸G|ï Ïì$“®LVÈtÁ¦Í×¥KÄ"K­«`ÑËßˉŒ¨Ó2‰­Ý9†Øóãûï CæS§¿ß+ÍÊwЩèɌфsᇵæSПË;jÂàXÂQùfñ·Z�%7ݦwçOÛŸÓî,l;–{Yn—ò!Ï©èSíŽïÒG{‹O(OØGW_Ñm %¶_¿yœÐY/g<AŸeÔh²X̺àºíƒ,|3£(—`Nz[+-蘭z ±ý9�4 ¶Ò%Úýt�þ-ºƒ™©y£ÚÎt1qäÓ}îS|"3±³…†ØˆíWkÓ–AoißéJJS«ÈR`èú¾|”žð²ðßÂM4ãY÷JºÕs|›º±Ûjí$šÿÒ£”ÛEÆ:Mò jû N¦&oMi%hl0ªp1Ì«,-×&¶ß³Ýž"ùÒq]•µÌo}F×âî«)®Ô›2±ÖS ¥†ê¹U æÞ’´ÄFl·%ðHÌz”3W|ÃöËaµTŸº¯ÌÞriK‚³³4œò:×jT_^#k-ï ¶_«!œ1zëÒOÜÚp<±àP­,·y�¿e°TPÿ9×m×4£³›dÛ{?JFÛÿ_Ž«ÍØµOÅàË[d“ªBÍ —ª=”¤1ÏŒå§ÅÓœ—Bšx£"`Š2gˆíç4#�÷ ‡ÐŠ–ÜòY¶ Có¿Ò³(¥VÞtÚ«Ë“ãdêÈÁAâhgçô£¯[ëó¿é݇ÕrїĆwê6êwqÔí\kÖëÛ9cÝ&ÓPT�ã&Æ?¡ÅÞZß�ÏFMd0§m���Ã:/£%å0PžôƉ`m#¤´`>póô]ȯ^ÛÐÝÚ²‹Žæ¹eØCŠ£+¯ÐÒ¹…Í’ÍV1££»æ@м îûØw vþeØK €ÛsÞÛ„°¦8’7š)êƒ$>‰�ùŠÖ"d<¡F í¨zà æ†I�Ï‹W]LZ]ÀU÷z÷úôTÑÊ�¢PMŒMŒ9ì9ìaÕïƒI^€_ãë�,ùˆ'¸$8±Ç“Ô“TÇÙßÈß(¦Çs º›:.*�šgîFËlÈ�5)¢^kú¿¶­¬±ŠÙ�™µc ¹¡U·ÌSãÚq’Ë;›m$U 'ÏÎýçu­Ü>,܇]å9hjÆ œQ¶ƒ®$ï¹oµÏE¬5Ö½¿�£š­Q ]·=g�é. þ�4N¤_% U ‹¦y/¬SŸ½¹ðžÑ£0XR7‰£ß¡¥OÈãr«›óHS¾•Z¦[¦07dWj?Š£Y²¬ 9SzUp„:â*0îÒŸÒ�Ò ýäšúº·ó3H»¥ÛwYV€ÛÊ´ž­ûÏ9F ¿<Ð ¸Y¯$*†6ÙFõ‹lós hª‘ô¦í¯ŠWÇ€®k¬k\?ê¢äôªt¦t&Ð7зc3+å?Æ×¤Æåîïî?e�²GQï¤I¢Iº§"º<¦éÁ1õeP!–Þs}±«_’,vÂe­½}èXÿ•îÓñ3ÚE×üäGTÊ!ª�†2‚¯C5ó:Ñç,xÒ™x6¿¿ÄÀpŸI}U@l¿g{ÓVi¡œºß{»›Ù{AÍÁ¨”Þ�áE¹[žµ<ØXd;tlSøÃá)bû³ÛÄæ§UÒY)2%ïG–«aQ%#ëæ¨›øM5 ކD ḭ�(ab#6 ÍÚ·5È"hžòl©`­9`Sáw fίdIÖqW´þ Ù§1Œ4Œ¯hؑ؈í¿ÑJUJYì·Õ&UöÑ­ü2èÀ^ëú¼G¶žq»“ª*;–«/÷,-ƒ-±ýÙíÔ¹�³VOŸ(aÇàI ¢r*ñ´hŽGïg¹ß—$=ÛžÁÍOlÄö»6=9!A+CÝðXÑ“¸öoBÖ=®¹2XùÊ™oèäX ß]5D Ša’؈í¿ÑÆÏrù)±6¯�.Ì5žÆÜS¡çý§ß3NlNÛuJ%ÂQ&ûÊá3dGû(’o΄wA×v·ÖØÅÛjø¦wIkÐÞâ^km×çÛ9!øwoUa»i‡cs¡fÀÞ—]wߦrÏ3ØÐôõÍ�Ê øú˜®Æ OË�؇8%ʱr„ë%Í´(·Ï¬jj4—Z(´Ò@N˲óGȇu�”ƒ¬Úì“Nœ‹÷öæ°}Ý ÒÀ\m¶08¾ìÅ – ¨ŸÛCÈ¡F@³®tHYH”Åñô�n'Bä ì¸ú¯’ïÞ÷¨l�kvnç�4±€ŒÕ)û…+WEUEÑN–·}M€rs«�¨�Èz×Ú?š‚Gãc©­†ŠœŽœF]9È|�™å¼j¡jaƒïà è>†™Öƒ¯äÇdŪ69WT[Ïbuï®0ÞÒÒ-Qxtbö8Ô0zŠ EÙ¤ÍNF¼Å’š ÇÀ1 *=6zl‰Ùܺ¹U´gÆñßc}38¦Ž¤Jå‰"ìËS'ÑΊñkÍÙ cýWzÆóŸÜ2ÜÞ6Ý-¡°<²WýöÞžM{²�ê/È«£o+¨*¤ÀÛâôX–LÐÄö¿×øÑúëS}•` Ù«ZOIk;j¢›ÞÆxÙ«„(8ÉxIÜ÷aÝ˽ÄFl¿ZkN{èaÚò¢×;—•¾û2›£aB^ ßVf…¬¨iñ+Ï<,”»b,áÄög·d±tÎë·iIüm š‡t’é&_~Ü¢¯.ðATãò‰Î|�…‚… eÃ|bûßk~þŠÈÛÓãvÓòqöµÇî-¡²Ÿ‘˜ÿFñh¤Ÿ¸‰rê´Í^zÁbb#¶_­ Ò¡¯�‰>«žÜ—š\\Ï'À‡A+y¹†Ä†½©Œì{Ý�žá<'�ëÏéHR 4š“øx_–‰»}­¹¾ÿ·sb;]ó è1I•8fмã™�´¦ð� ùsPÍ&õ˜á {øü+*šbÊ<€×î qF³J6bô¸ FÃñöÖÛ[…AçWzJ‚Óf¼ŒùD'% íR8;È?èµ±wÙ!�“'S®‚̼@ðÝ – ƒÓËXoÊß?÷/òYvºðŠ´hžm;Ã@,™‹Tü}™�á¼Õ��jI··²™*¨ V×w.šµ§·§è(%A ÕÈÐÈ@bObj]a~)d„ÏÎýl+TÕTÕT5 Š åË´¡xC1c*–ý*6³QÀÖ¬/œë±Roép @Î2ûÖ®T'S'Ólª–¹RÉ6ÅË×Î’É]A¦5¶×Ȥj?Ð~�?²ìyÛ!ûAIOOÄ-c±<6Ì´Ån!$²ÀÐrQYz£/U|ˆßý!÷ÑKäFAæÎÙR¥œ\s&ÕwÕxŸ­ÎE1‚ò&ßM¾žùÍa¡T—T—ªtªt: Â>%�äLðmê ˃zÿæý›X©ÜÙÜÙÍ—9/s"ÍÒaËcŠáûµ­–Žy >fûnlÏ8K‡¯µ®ë¾]9Ú¶aƒ¿ì—µÉM›ÛC9oGlÄö;4÷Ć™�,±¸Óû.§rkÀËÓ`®>‰×ìëÒ¢3œI‚_WSrÏ#¶_«µúrIn©X§¿c‹RÖŠ«ËíÚV™ÒPß¼åh=‘´$)á9?Nl?§ u)�ô§¦w"�äÖ™Šw䦒Ÿq÷2Úu�q¯Y]“®ií ªb#¶Õš¤zÙdK«ÁsE^ÔÈRº˜y6Æøju^ÜÑËZ¬�¨+ix5Ø0!EÄö÷Ú]Ô%Øé‡Á1—j9{É|‹øïÈ?†Îš…Ý?âmlG>IΈpœZkþ½ßÅŽ/MS ,ðøŸewê÷·ßnKeøõ:Ì«QVWãùÄåÏ�«ÌÒ êèøÊ‚°â;-ݯ&ÃÖšÿ\öm“wLC ÙìÎÄ�åRÇ…·{ÿ•Ń�=tÈ`ìÛÜjUé€o޲MÀA›ì 9ö‡êy!š�ïœÛcž¶®ô,äYˆ[ë«•8CqL´—Å|6à„Sek€ç(ßê¸ç”$«$«¤Ì€®Y�v¤}šý‹½;�¦rß8Þ6F2“92gEJ"cfI†dL¦(C"D!ó”™PD†L!!Sf¶ˆŒ ‘ÙNƸ=wk/{oÇý­ó[÷ÜÇë¿÷Zßÿ>ËZÏçËóœû:¸-kÀú�Ç[è<È8›§ÖÐÃu?5×ZNvàBg‘xnæyÃ5\yß;£oè¾yü°¨éØ]‰ü‹§²Ä²ÄêG"DçÇ‘ó>æ�1…1åCþM¬ A¥eú£ÙàÛÁ·c$Ÿè?ѯ8¹”º” „HElÏ”|¦NLKQ´écÂøÊü‚Wí÷zþAžõýôÞÆÿµ6N<e a2ùFÃ8 Ôhø´•W}XïäÑØeû¸ë�¯'óŸŸÛ?»éäÔæ3Š9UôD8=‘3…�¦~¯óñ¢;¿Îmc‰¢Ô`›È¦®ø•y`Û_m``øÀµPË�'2u7è[¸Ê-oPŸûôIr¬zÓ›­«Õ!–¸Š7] lû« &²à`Tæ+qš÷s�vš1<—Êr™-&#Þ<ŠüIöx¹Œ‡È»œ®ËæÇ2ÏÝêÆ©¡¦ÑØk—óð×™3û,dU#ÂÒc§ºÚÓ×bâ¬Q%Í^�|öò´)êCUIØîX½@ØPãl|†ÀO=£‹Î[Z€W¼o§÷tïéBe2Œv*FxÝ&¥U|@<1c'ËEÆ8øŽY:d&d† îåœA=Üë¶Í{Û°"‚t�Wã!è̌Ʉ2�VàDƒ7Û¿¶²Ä£ãQÄpDÿÆÒøi�ÃE ND4E9‹a»»š7ð³³ù‹�Ã’ƒ 2——YYrý…y8�TTÕ�Ýc»ÇVgÉÇÇâËäËäVÜÛŠ¼·ÌWæw,ÂåbÖç«W'�rÛko‰ü݇6éÒ`:_Ëtã<ƒ»j\ì­ëâôHB¡’ºž*By7) þü›Ä»ì-vñÏm¬âÔ>Ò"º½B¸×¬?=¬.FæÆåžƒ0P·ÒfÖGue•Ð0J\$nNv U‘(õ@êV À�_Î ¡·×’ �Ü—ÇG½*wªï­ïÍÜj<µS³ãÙmV0^€ã�!\Ÿë QÓec•q•q}a¸¤Z¸°’¸·/ð$¶± ´º'&«Ð‘m|†ù ‹˜À]•ôûN%e�I@ƒ­l%Y„5~ö·Ú ¼,¥ò•D+¹ÝyfÍ># " Ò_T5�’"£¤ ¤È¯Ï¯çRâN»ò®“Õ\—Ö3d.]VtŠSˆSdO«’©’%=´ãÜž©`øL�×îS1U”wôN’Šòª9Fƒ l¿­=óп_e¦@ÀmvSÝ!è»$£ªnìç¹­æÒ¡„œ:ê€~ X�µ Ø~O+Å°Õ ?Ÿ`p526dô ]¾&Ä'—ŠóŠzIM�B÷äË¡CË4Iþ3`ûg7—¬ï‚“Ü�êm¹ƒ…Ú­Îw1öÓ»ÒþÓ–¢yîžö”¸Òú§áœšÏò™â�­h�ï^UbÚ5V¶ø±)êVzsÙ¤öº{U_ÚÌxWælÿòE¬�'>‡÷ ƒÅ[* a²O †0¥OH`¬ õÛf8F›�ôãwCν]³ö�üéÝ«ð.w¯ m×îàO9[Û̼uÙëîÕ÷×™rKd½Tü冾C¹š4:¨Ì‚ó3±~É/ÄÙQµ?‡5J­øe6Q¯™ÒˆŸ‘¡ãr[7 �bëÙiááÂÃ70é�f"4o ‹isèåÝ2‚ƒÎ7‡â33ÄšššZÁ­’í\Ö(ƒ{Ní¼íË(àñ@Ðã*:3æÈKæ+݃p}§±KÃ?)¢S;RkQV]n3¢;AB$«Ãë4Õ»;©ËM¢IîIîG_P}!®AF•J•ºVý‹ê&ž×?…|¨2E¨|‘EB"!•1ÒtÒtOŸ‹;‰;aèÂL·gŠã�ÿa�©=ºÕ88Ò\`î\(h°×Ý+ò¬ÿ]—cH§‰³®u‡‡`„cóÔ«†B=6\ÒÜ…o¢È•"UO‹k¶ŸªL28É–2™ªÝ­Ö¶ýÕfI˜Ž+Qr,p¿LÓˆ*~¬âú3èv6í 6ŒH–\¼Û!¥ lû«]åŒ]×x$å<´JE¸P•ŸÆÛ8uš}ÃRJ),tzñŠ-Ò5é,8ýÕ蘪ڷ®šú`íŽÛ“Së�Öƒ•zùL]dŽôŽôÀ¯$uÊË.pÐATC¦ŒÈº-»-ó[8]8]le.É\â›p£ßž©‚?öŒ£ *Go[¦Y:¿×­wÿ¼×žyÖÇw¢À6 11Êe(´+d«}ž ©û9À1.nÆ$«g›+Ÿ õ¥œÂéId&á°íÿvƒi8{CÓ}Îx“rS(¥#VªVdË/CX×R–‹.ù}PË}^…�@-°�íÿÒØGÚfç¯þÄÍJ|-–Lª"0†OA …¾¹˜)@ÇöU,ÃÒßÛìõ w9°�í¿¡‹@fÜg!=Ææ5*}"A÷¿·8²�«³>}+Y4r†³ÓÑ7P¾oë ØÀ¶ßÚ§k=œ&åiÖÕ˦IFeÆŠ©§¸•}o�´Žÿ†qÀ‡4Eƽl`Ûo�¨c±Éy,3„i²š&÷ ‹�9�ñ¦Q÷Ç ¯é6©7û€mµwu–¤•žÙé=>×›úoÛ‰>]¹RW×j ‰èN…²ê~¬ ü�£ôŸ6×4ú™]ªc²­w¹É(c”F„�Ÿ[®˜ lœÑ&hºçzÀA©c¯ç–€_gÖhÏ!›…µI#lð|(–v»{«ÎÕ¸ñ¸ jéSƒÈ²× TI4ñ€—Ñ“ç½ÏT² ßN¶¡Ât<  Ú{§~ê~ê5Â÷;A³æ·%�ÖUÜJ=¨à ïø~u7ˆÑ�€{"Sõ1 îF–Nö.OMà««a:C1€t¹�Ú© p¢—gúj‰…ѱð…V¯‰¡[Is Ž°§Uõ'i™Ý]±)õϧaOÃn†4‘ f"ii™,™,Á¹Ç¿ wÕê|B92/6/¶sjæQæQÞ§�ŽM4¾�üŒÎ"þÜÙ.Æ."îV™Z¸×3:‡­Ð(ë„gáìÖ¹· ÒÏï,'¯Õ¤hÅ. •6AÊi.gó1 …Ô¨ GV›àúó÷„žØåÝk 4úáÒ’êbµoj I×^³øëÌÓÀd³^æ¡7§8Êo³Ÿ?‹ê$6+ ÑãÌiröo˨npå§zû„ý§úØÜ .¡…'¥ –ÚÌÝI6ô_ìÝy<”ëßÀñHd;4I¥EÙw‰�}ÍY²eÉžµ¦É‘¬Iƒ¤ÅN"»ìK¶DYc YBJö_÷ë>óÌãžqüqž_�Óï—>/÷_\×uÏ5 -a*ÏÖù„AK€vIFz þ–K4ÖØÀö¡"}îó¹Ï* N бˆù~ªî�v¤ Ð9i=†KÂ5Àü¢êPÔePÁ}Þ:±`»p\”ü0ízÚG+?ÂÍ^RZÎ`7òic”5_ìÃ-Ã-µ“5J}è¡x>ñ|Z9¶rl)î-"t}[ÖË•ÃP�¨Q�?-b)bìa"g"÷ãÔAÏ”5íŸ÷„Úø ]Êù¾í.Êh‘Íá¼Ù:ë×#' tbµe„G4ê Ÿ¸Í²eÌâÛïÓž/í:îš}[šUV°~Ô:ʺÍåsrSÔuáIÅI§¨òÁºÍ·ðmë·«&š+Å´®á4��êέäî]ºrÈÁ[0ûÓÂ9éXsÂ<�Ä›:öªÍøöû4BÿèÒËQî¶Ýg3a ©Èô±Óâ;é˜�˜ùÇuß{皤†_å;ÔL…oø¶ÕÚ¬åÍêϺbJR$(Xoí@crì@¶ûÒ^”GÕ D‹ÇÄnU5|÷�š•gHcBž¿ZޱæÕz™.+d¬1}B !W]�QÉeÃôҗŧñíŸÙòf†·-·?TÞ[ä»=¥s…­Ðf†9M–:o7Sãüò¼¡jZ™¬ùu1j|÷¿Ûb�Š*«ª©�ð÷Ôè÷ò~þšË&¤‘ÞyBG¦DÃÁ¤}grh†àÅ{“)­%�l$ÁÇŠæ8{Û7ÇÑC?ç½_Lå[!aR´dá`‡š|i<ô;ë¡{¼Ð÷² ß=§°›Ï2ÕB¸†�~L¦z¡�Úìœ"ôç3±gus Z=~¼ÅÈ+¹õ°jpJ*Ž›Óûƒ€†è= é³J°Å÷î|=Q 0�pÖÂPêÂ¥J¼® ðAÖU`=]]’‚Ææõx0¤Ðùk︖YêAm§:sw¼xÃÿ†ß� tÓÄ" ~$‡|)�æü�×QðÇ¥ý «Ró5Üt~'‘ÿ“ýx\N«‡©M‘ÙM/™Ä5)h6Z阎šo¬9Îad�|�|€�m|ò0”t�t�£¯£/LvæªÒ½Š­›ÆêTÉ�’IŒ|Q|QûÚ#í‘joƒ grÈ ! dº¹5ƒá�ùs9›�ÉAÿGZ‹êÊÜö¶‹XîhÑ-òPKÒßvûP=_ë¶²+¹û® ÿû½Y>Ì™x&'´Á™\sE7ÖïÆRJ1ØÝë̸٬‡ý|æñSÝ%(•fq vjåžÅ ¦E“ÓØìâò.>\‘‘S˜ÂF¦8(ºEj`EDÒa ÌÌÀåC¦d àä�RÖõR`)°�þ™w׫™ÃDSß›­XÖz5ÒR{^OKg¢ÚÚŸ D‘J7;ÌzZ`Žæ xt(2K¸$ÇPä¬å¶ ÇÒ])�ŸÚèp1™š4øN·Z¾¦]fã—’5æH'ã¹1ÞànûÝö+ÌQ=³å�Š9s¦‹¨‹ˆ{,á…®è�pl¨•±:(IbIb)¿ùyª˜ã6Çm’>R ¡g*�œ©å!Ùh�í¹W|EO^ÞìL:ë[é�_Ñ®dÄ·»X$œ"ï«9(Éýá–zú‡k5ç�&3À�R~ �à èTW,²ðíŸÙ>µ–žWDž¸¾ÏÍ솷z°¤$wd»Ca9i»ºš+væØë�…Õ~œÁ·ß»MRvœ/›NÞK’*V /X¬2oQ8êìL°@QÏiªn î@e6h!€oø´9§Ö)>ꥎ£»JöVŠ_(ñÍd4ç”·$jϪ~Mô}%ÁÈžóÑßðí¿Ñ^*½äÞã´»Z‹PÑ[·tyÈ™©˜±ó‡$ãvÚ}—”•™æ™{Ò\©áöøö{7kÏ�s6C¯åçÇyÿµˆ ¬=,ÏnЬ>ubÏs^‘sm)ìQœø†oÿÔ¦'ÍÏmc¨-d%Î|‚L°ª)¨zôîh`é ‚}Øj¼’=_…¯Ò>…oøößh®Ì¾²F{ëô_Íf§Ï¢^(Ѱü_~ß~ŸÆj­î"ùô®ÖE"í’ø'‹Ya�н]÷”ƒ]ÞºU·øêå%Ó’6¼_½·þó™TJ§4¨?¬¢F0�Ne¾yZÈ.l?ʨ_ôóËÎÚè`óˆ Ì4=¹& ûq“#ú¨).þó69€ïQ<ë�ÚŒÚ4íóxºÞ 8†ûš+‘4+@eè 3ÈH©¦_á@“¿…“8¨Ý ¤I"êŠu\¼‹F% èÔß%÷ÂÅì:€’áVbH/H-ð„ ’ý€ .†úQ!e£QQþS;ÎÐO.84XlŒÉ¿ŒÒvÞvÞoú@œ­TCHCÈpêpj%,Ïœ”%ŒmWá')(àJV^OîóÜçõYÞq¼ã8�²æ=Ç0Ó¨X#Ö�•’;^F†()y½Ù9ô¬î°²#E×ÑiÓ§åz�­ˆ;™VËw›îé©Ñ>'ÕBó×çœc¼ óÔ³D¨ñÀyÍ›ØÜÒ7›õˆŸÏìŠ/þf¸¿ƒ¿ÃY'QûóÓYl}¹vŽ?¹t—˜9¬Û+© Ei³ë @«ÀÉ~Œkò‚pÑ"x¯­Ç²Â²rÖV½Þ½SoÄÐ*éêàÞc Á¡¤ŽYñ×I?འ¾PcU¢(10†voPÑ ¨Î1Çe¶`›N¥á‚sz/?èû±—%CŽ©>�0ñŽÄaŠ (ZºÖ„€ò�¹=_ûŠüŠt|Ä–ëÎkƒµÅÍÆÍ^ЦR;W’ Âö}²–Šw�w°;fRxRx¶¿z¦z†’=7=SuÞÿÁ ©“*kNS73Žx`h¯·Ù9tÖÿÎgGñmë7‹ØïW¯ZgEÌPU?ÿ,m$ñFWYõ¶âÑ×A7»ý?î,qø2Vx#ßðíWµkÙÆÄvüŒþ¡ÎÏ&D)f2(v,É;›„*ÅekãÏœ{ãº,èKüßðíWµ }†BUvn~oÇíéøaÑöó}~ƒ‚Ä�÷Ü“Œo‘·‡röÿ…oøöOmî÷õ°i�=Mc¿“4$ØU?4}߯¸—þ)s"× gÉ+¡Éôl»Òw2|Ð5Û©q¯\®xwc¿àÖtýý›­Ù ïkö±¿ev _qà‚•ðÚº*D³·è%Ïö™Ú{-Åo£5þë5ÿk¶`q$½ˆV—_ÅšêbŽgÐfk¶ÈŸÏ©ÙC‰õxÇ`�—šëS5².GbãXˆk*tk#¥í°u(ú²Ê´+cyZ�0P>&q©È,ÖLG8h®—-ÿÚ7^Vµõ>»ax¢FKµæwÁ ÒþÊçEÓkBËÉËÉ‘£ /Ð"õ��†“ÚGÆ8z]K—'‚[*‰_ãAB¢ “šåì1¸|èÎ}0S]ßöm¤Iû„4I¿0£? ñÆŽÔ\ Kü‰Ãè†2Ñ1¨ã¢ÇE×VÖV¨CQAô| ¢Ø‚Ó{¡²‡²‡ öðDóD§ÄÖ‡Ô‡?g”Äò �jÞA–n2ާ—ªoÈ|TuÈ“U–Màm½«·gõœ¾ýû§ÃUç³Û‘>ò²(C¦²k‰Ó.êõ#w¼œ”‚ų¬hC„}j«xð ß¶ZkH|xÕ´¹ÿÝõ´½4ooïw1ŒM¿ÃNÏ û8rVønJ×ÕóŠ�w,¹yñí÷nñÇ—ž}I|ÀÙZ£~J365ðm×YU®i!µÛ&o2Ô–²–n*f8ãÛ¿¯ùúÉ æÍN8ÎÊÄ8½Ò)^µxÚuF¦6㓜v„¯ð9Eä¬< w.¾áÛVkÜ0‡¤q¡®ò)d|n5;;ÊÂ0HÞËÝ08:ÌèSiDχšäÄÂ1èZÿ¦²¿I†•åõeRYºøç?o¶Ö�úùÌnÏöe(Uξˆ„ú†Â/%nMcKð’X¥Ÿ1ðIX’Æ6D¦§xÃ&e´Ç …7¶ãbÖpò2w½ÎÞÎÞˆ ;éëéHbŒy¢‘„)-*{¦5AÝWοhUþBø…pq4åŠk™®!ØY-ÐÔ›lÖ€9_®*\HZ6´mÇ È@Ò|äùû ÓqIÔ´]:}€¸ñþ7ÿLê˜h$ÌxX7þŒ¯ÈΆÔ1éXCÉ|—ù®$£$£êèðñV'(B [�^™Taa³­G‚GÂçå´Ëi—9ô`Ð}­kTg N'Ž^^u”.t ž6Þl_ ú9c"©—üªýûT&.ß0�Xœw_Š Ð»-8³åÌ:iFð×ûZ¼ìk]þzD£Á1yðf Ç6Xomïf³~çç3^‡/A9 ¾SÇh¿QÄ1ûh4ä¶ÝüÉ¢%"ï]tcÓŽD�1X-X?«Å@hȦà²à¼ˆæ¥ZoÇÛoÙƒ“Å×Ë—ÄÑF£dݵ€Ø™|¤yD¾Öb¬8e[Ѷ"×Ð’Èj¸Üä(BD‚6° `LèyÒoÇ¥û5 /ˆÉàü~W£JôHw.Õ¶0WŠƒÖ-ä³3SZ¤¯ÅnÞ—'hܘàäÁWƒÙƒÙåœÏ— Þ_{ ññpÄPM5“ X‡-2¶}ʚŚŤB"M"íp5••^ÌñnBôLÁÿ|¡ÅÒ%îm&òh_Šg0c2ïfûZÐY'ñé|&Þº{>hù„Ô…´ÄÒEG|÷Bs¿_óµ¯OtÅ‘äžÛÈ#j¼Åu‰ŒW²*¾ WŠtjÀ ¿>à}¨"o[«µø0‹í*!8»eo¡¨S•Ö¹ûUDB³uÃv »ÉÇ7WÅ$Â='ðí×´áNùQ®^dòA#ióláö4$±ç¨»—k-�Y 9¬^×ôU?ùW|÷�š˜jÑTs‹Á{9‹ÑÕäãæOQÆqåé1Ú·5ö69“/­”R±¨íGçàÛßkù!Œ¶µAwB^~Gä“ÃùÂ@¦ ºþi8Up溱¯àëø”p—™ÍÖ?Ð{’HöœÓ¢àZ:êç »Ôëç´#ÌžÜpí!£W�”®ÚûÉÛ½þÜ`ýs2ÓhUBU­8€>åü4 ³ÆfëŸèŸÏìkYžƒÚwÅcFçlmËZ– [ÿH³"€ýGG¥XªG6û³3€Gû­¿ŽéK6ap­r=ÆE(6po!#]�²ƒ²#P6�|½û9Fh\bêÅT“g “&.ê{m¼�ÓÓŸdƒ»@-‚*  üzT0Zf |�'uß'qÀø·)r¹C õµ•6ËŽ!\ FR|P¢á<Û/æ5½ï¸��8[ß©ê,*«)«i‡åT(©1©±¶Á¶Á«}CÌ* Qql©Çy¡*-+-ó‰såòAIyJyŠùôd¡gÊ• œ)� Úãí_yŠ‚fâÃ.n¶þ�ÎúVºoíßÖPqQÔCíÌÂ->ï90¢Úðöî4šÊõoà8[ ÉL™ÇHd ™•„ÛÌ‘THe²Ž4�!2iS(3™me…2+"dØJO÷º�Dz÷vüŸužÕqÎÿöy÷]ëza­ëÍý»¸®ó�Zt ˆ5ño�:Å™š% Ÿ�Ú¿»e£rÙ¤]+º¸Þ>} -EÿʨKÅKÈh÷5óÉ!v�ob›ÿáÎhP*Ü?œo¸¡äaÈw\$P¾ö)Ù›ÌÌ´rn–3»¡*k�‡cØ~ÀøM&M�e8zÞ@ûüóŽÊŽJ‰XP®H¦ÄÔ?·Ò´ÎL€6´z¥“â‚ð\ÈŒÊ ËŰ’!lÓïáâç$…°îï yØcÜû6AìuĹ;IiA[“ë9£-ë'ëG½P5À&ŠéÕ9*¥¥žÔyRe -PW+6)݈»˜n Ý’z£:©:)Cs 9ªñY0ç–¹Bˆ‚=|œçøF^êÐDÞØnn‰y_{«bIÓ«ts$±éum?w'Ûº¸YÊûí Æ¾pÑgÖtyþ>­ðs˶Y¹2<*9‰ú¿BѶwa¿Ï‰¶W0QŦÛ =>x?I¤5ÿ½è”úk7ÑŽn,èXû©—ì_~,-!'÷Ù—<¼|jPû'´ŠŒ’øàzÞ»×ð÷eÌ轡#¥¦Öø.žSÞ¶,H’ÊûòÄRÄ,ú>Ô ö«ZR ÆÉ¥ZÒóSÖiˆA#1²åS´¤ ê\&×bdœH)™bôPƒÐÎf°µ¦0D©Î¨»6<¼[ HVè|Ž)Ñ¿ŠÎÅDœJR@ 5¨ý²–êsλÊR�”ßR†@Ç9x^�MË8vhz­©d !»Žþ^½ ¬N‡Ú¯i%0{ý°ðã ¦g#bC?Ê0åêáûçàýM§¸¶V­süéÀÞ†‡¦SPûw7÷' 7óÄù;tZÛrúó ZN¸]‡í¤»ÒþÓ†Ô“÷4˜�S_~?˜];¤š)hÀyöŠ€Ç¼Öý¾&DH[÷ý]÷ÉíÎ^1ßÞ~l:çŸ S~D:@ xôlQ´×>m9ÜKÒ‰/_¾dë�ÿ§g¯b[œ½jîm6I…ÁË"kŠiIÉ·;{�þ¹¦X®§Ó)î‡åTv�1Ä#àdÎ<„M^÷Ö@;æã^‘•wØ”¹ûÒ\΋DðÚ†ßñ¥'p‰ÏNÄ"7“�’�º”#H²Y÷Ä1§u“ö¬¶Éµ{æ uD i\³±§�§‹ Èô,ˆÛŠKô­+òÕ:à^{Ô,=@£ó‹?.~uõkb–t@l9E¯äP²¸ÐˆØ%ÊL•–MÎTj/rzD¾êÀÔq}k‹**+BøBø\%ç‡ñ0=/x^0vpì sØx—7¨ß ÛQyÅ!LNINIQMþ0X–Ovov¯üŠåúž:ôÇÿŒ°(¡X×ú‡›òìx4òEL·;{ÅÜë×ßåœg҈ؽlér„t˜¶ú­ý÷ZZ�ô`qÓ[‹3|È“…£äSHm¨Aí¯6¼[6¥bhÃ;}<÷Å|ƒÛ<ô\hŸ(=i äƒ¨ Ö d,ðM¸;Ù 5¨ýªæÌ¢Jpߗĸ—™mmàÔôÈ$Ãã£Ñ”¸&§Éàʇ¦âÜÈñdƒNí×PÛYí å=ΕQuºC³üOSt# á+ÁײGøvQ¢É•iäê�‘­PÛYí,oì²îí“n‹LÑ‘d³¨˜ÈÜ�† )žVr3]‚ »Ùº58ƒ µ¿ÚÞ5wÖ§CèË…,¹»ÊDURh. :DHOpåÂód»ÛÆÔÉÚøÈ3PƒÚNk?hÊŸ%AíÕ|Wt›ìå:69ªNxl¹Íïâ™3|¡‚ÕZ#¥9÷í¤ÆôÙDïzÖ‚‰߈㠊vøB�> sö"¤©œj”NA…ç26R,¨²Ýì%æçšêž´LGTF7xšIèÈ‘�Fb¦{0†�©PÍõÃvœÓù ÀD%ràn§¼¡ÙÇ=—@ß ÃW‹vžÍüÂüÂXZز6#3ÝÐæ¶îƒ-E`ÐÌ´;q¼Þi™Â‚ñ+ã×>±î@H"@†u®ã§€7ÊNñáÂ2È¿•rPRDd¦ÂrkJ——›Uû­Yfšm2�EÙòn‘){½�aÙi{©jo/§˜³^j"Æœ3¦®ž÷ŽÔè½zcäì�ÚÅíæŒ ,{Ž3ê~r›·­˜yh¡éõXú^w¢¨Û‚aÑotJt–Ö.&zæ{_šÊLCqÄŸÏ%·˜3vžQºñØD¹¿¯«m™ÐëÓv{=öçüª‘XLß2ýJ7DóF2GʱK`ËI鄼›–BÛ�=‡mïâj`ýJ'À9ÆÒ}Cü{Ó(\fnÉÒì¦x6³�¶�f<ŽêجŸzÃWŽuûQ´'ìFÅ :�eíœÀEùÛò·Ëvƒ˜íAž¨¾p™‘~÷:¶×âï€Içzœ%#••÷2AûP-©ŽAã¸\C» ^ ,�©/—ó®ˆSºíB1qgk«Œ‡�sȹÖÃðaÙ‡˜ÆÝÆÝ¦^N½4ÿüáíûtP7)6ï‰O0uu é¹#Ý‘ù¬ïÞp7dýïûJyÌ?ÖÃ÷÷_³J±r¥xeüÒkËw–×猘{ýW¼5¨��ít†Úkµ,í‚¡aÒẕ¾C#ár–ìÊ&ö9ª úÊh]£"2ÉöCmç·«ìƒY?ô¼¦ÍWéVE‘m±'Qc»îfˆ[)ó1%½ nö6P Ò‡Ôþ/�g¸õËÌÙ•=O‹¤“¨àÂ#$´Œíí/T2…™¸?IgXÜ´|OÔë4Ô öOhæøS^_ð3ºÍ/×Â{$‚½ç›<£:•+ Ëðv î©Ö¯A j;­½¿ÐÍkQ–òÀ¶fáÒË¥æg’�%ð«7Üq º(nÿyÏ<*¤’WÔ ¶ÓyÛ\£ÛHf(ûx CNŒËô2“ùêÅήSEL>SF‡ˆ�?ÆÝðX øÿnì6%üGóZ’`‰4CÎ+ÉRû`ΧINþ°û~Õ1i—Äש·�[Þ˰>Ÿ _KÔË 49Ùˈ71—±ŒBO×£„’XŸew;�Ki]ÉÇÑhóC,Ó¤X¶ ÈGEýù|êØó©*W¹ö½ƒM^WÔô³9Åokn7ŸŠû¹&¿Œ³“¥ φú=½’°Àú±Blw¼ò š!É Ç�2°-Å>t3ò¥|b)7$«½ŒÇåÁ*õ[Qû§ÍœÚ�ÚYZ…£7ó1Ú`=¾®È~˜0š0 rç/1[àtZE¯¢#ö€`ü Ùx5PÝŠ¹òº=I€‹ÜY[ä=\,—ï¾ôS3Œ‚‚}?±=£wÄÅËánqø›bòc|ȸWI"nß ÌV¼¶Ö$H½Š–CË™û< ÂúQòTò<Ëy–³?ë�)4$�-ô•Y<&÷X÷Ø=+_s¿æ W{xÜç¤dZßSæ¼Ãì­àÿÒ5¥òF;¬=œEo»ùæ^Y,£åýZKé="¦�Þu„Õ4<û¯´q¯jº3ÒZ‰A†K#¯I/·øêqxRO¿ueWí¾Šê¹Ä¾Ð5¨ ¶ªÖξçòhz±Eîo(‰�?B>ð/í‰îºœ zéMg<Õ‡'ª¥Œˆ¨ý÷µÔ·®‡ëª2»ÎYAÅDÉÞšÈ]s"Ô.¯­À”¹ì áUE†W¯î‚6Ôþ¾öj©]åEíé øtC=YÇ8>§åaƒX‡,ž¥ŠÙ3òz£#’ø¶j¨í¬öÔV`)Ûs€U¯Ç‹äU¡saÕ›zéÝmÇ %¹”ŒŸs‘5ê4ù“Bmgµê:+ªJ߬ôn³ÆÞk’ý~’ßË�«k±ÇЙܞи«*èÛnõÿ´y¤1OåàSn¹ÎOM£>,ŠùÝB#t¢�UJ_±´D«�&‡N`»ï–øŸkú�åc²“Ì*ßà“×!öøIé$M<¶™e8€’[fxMÝ#ÛQ9ƒÇ€¼Ê©8@¼R�Ä–cøL+¼�àµ8‡nFÜ@Ü`=3H»™¼Í†<Öuz,~»Xm:EZ\slþ—ÖªÖ*¡9(H ¤ßs§”JœQ±Ž˜ © ˆéM>„Ë�8àþ)�„“ ½ôªd‚~Yr¸T{K«”¹„¯h ó>Ÿ ¾úúfkìÖhM† ''E`‡çö˜`j>Ø|Ðeæ'õÃùH�y2¶ƒH¬Ÿñqu˜D´DôÀ}ÿÿ ù@Ìot®Óáin÷Ñ<’¡r7*“ó·ûFßuH‚QôãÁ1ßü4Ç.ùòÅ4—…¤¥Z¤~ì‚hI#~ƒa– §hh-ü¢XD Ç„0ߟßzt‹otxbuÖ~¦fºƒÑm6Ü"ÌÔÛíõ„ŸkŠ(0ÙTØnøÜSß›\ÛÂmƃ-§´X `iÒ„Â+tÅ6P ~úd‰*d4Ý7Œ¿»Ú€Ërñr7€<¨Ò`³ü|ᜒ›1lX½¹ŽF¹Ð€žÏ¹’2æaL³ZµXµ h‰tƒÎ÷úw‚R;Rd×±•‚ù¯[Ôp™_XÕíé �` €wXRl¨ÔQD«u´õçÑ´¦è«‚ ŽÑ•7‚´›ƒá¶ó›—ñéµñRj÷ÊG†õçÖ WÜ:\Cä}^Š‘•Š3Ã.<•rKË^µn¿OÃö�-¿íiûN÷ …üÃäì Ñ‹�4,Fò,¼cÚÝ× ŒFxñl&…ÜvZ›±¼õ…lT[DœDQ�¢§®¯1-®/O‹må±÷àåê~ñÖËã´ªjpƒÛVÍÊ�#¤1©Ð_-ßè´Wƒt­Š�>§UrœÑ¾¤VlÎúZòKÙåÏK5àöÏl…Ó»VÛï+1¾ðÝ�Þ¹v¬Äfš%yŠèá¢Ýt­ÓssÕ¬ ³«"dpƒÛßmq¬Âò�3— دžQI¾Vý�îªTÊ:×Üé!'éÓ©¯”úRqZKÛá¶³�ë –<åÄ\½{¹ÊU’‡Íªý,Ånõx»•h¸¥ºI¾y?/·ÿ¿vâNUúQ!EýÕ/ˆG4J2¯z/U°bÇtIϦ¸®5‰Š`�•¸·_Ó Ou’ÏÍ“p–µ<,ýÈžj`y'}Û{'µÒ[ŸNƒÁÄ�§Áë ùÆS=çýo쳎ÿç}¿˜Êü lìÔX‰’þ·jrÕ„‰ÐoÖC÷x¡÷eA¿=§ˆ%źÖýM©¥Ôß(U+·Ý9EÒ�k^¿Û%ßcˆâkr…V´…Ô™¾ݳµDÀ�Y¥†eýWèè”Ü2ì¦`Ç|G±)¿;…Ižøª)àO|è£är¤r¤½æ^›MP£ØÐlp#>}@ ºB¯É$3ãÀÓ"Ñ";ZÁö°eé:ß×Ý  ¨~ P(gìÁ¤î)æu9á8Ȩ½c÷x’l&óÈĦ†8þ°ë²qáûoJž,«p˜Ý’§ÅØrÆr&—ñ²Þ ¨’‘’\\…8Åà•~ºÅ©UW¨!Ù!Ù²rò•™U­U­ÙÊó±Ð3¹äq~ñäl32:ƒ?Ïå“lw&ýi{Q_AçAÇØ.d�ÀmÕ~qY-UoWèÁž¶]µV²÷Ü—þ÷}³<¨39ðLŽ‹39޽ây{S�Íqz¯ßÛnÖ“\£ë„+ u[Û1e²% áM+¤iê�®�ïÀêh>yM,›!:mBÞ£€~¶&ß�ᔋÂY5˜xî^¨¹³{³Çî�ݱ‡¯…mFx%øÄ†xú"{ÀzbèGÐ{±7=ÅnÈ ¥‘ÒGÚ|?¢n† ø&æÌ ÇOó�Ã-0ñï”U^k; R�±.Ôj¯6ÁDà‘}�öÞxñÕC¥%oŠó.+&ضm�p—tþßßÔáªSñÏ¡îqÜãx=þz<[@}4Tx ÝpÔ7¦oL¡ˆÚ�Ú�ot-r-rC ¬x3@ ÎÔê'™XÊË» Ü|8±—¶;“ƒÎúNzȯh7ÝrÛ�-’”‰‘µ$¸>«gw8\©5gM££bÝó5„Šê�êšE.Üþ™ís[¹¹BòÉ«L¦7¹Ôƒ$$¸¢’Þ ÏÏ"ïj~I�o? E^74 ·ß»Mìyk^1•ƈÿP䙢TeÑ¢dØÉ k‰¤�ÃD]_3(Â�Ôt1ÀâÜà´9ǶZI²•·¬äeŒ¯DÏ—ù>a0ã�³Äi/â¯iÁYg`Ër†Üþí¹âs.zGÚš3Ø ×´ËW?9í/eèüÆ.Á°›šÉEIiÿ"ˇ,w2*{¸ýÞÍÚ›`Nßæí§¹Å1î½ÂÑu‡äØô›ÕÇ£OÒ?åJŸ{“ÎÍ7¸ýS›Ž/—��vx,¿•(ËI"DuS`Íðíá€ò~W¶«±WlE*<¯,¨&á·ÿFwgñ•1d¬×«šÉË2š,V¤<òýü0Ü~ŸvÔZ1ÂY"ãö™‹8šð/ç†wB÷víìpmÒÛU‡z�•WgŽ l··›òã!Z(ÓÄ*”/ 2a.)}V»ÐI«"VöR†‡—¼Ñ£fø 12D†ÙPj_�`2ŒXPŒË´Ý¬q¹q¹h$º~3eó¯–—T+ÍÕM* ëÆÞ+gN(‹)‹}TY� Ú¾_ÈßÀ˘§8ñÞÀÈ�®Ÿ™­ïr‹¢8ÀPÁ߇ ‡Xœêô`¶¿FoSß­¯û®zD„]ÙÚž²CÌыы+Ä9]o¡B;C;#öEì»úp®x<ÔÃŒN†¶ò,”<›<›ä£^©^©:aáyÖ&=è9†é©—ßñôâ$e*ˆ\ËÊZ¶;Ç€žÕRº@ÒÅ:eò1G¹_¶ÇÉ ¯sÿzJ%­ ­Ð‡ZÍsÑ­”}Ž!¸Å9†¬Uœ¥Ä‡ìâwnïYÓÝnÖS\sõÚª!Ôú®ÏÊ(N’¤ní”FµèR5M’O†»£‹ð2ÐḞÔ o’¶hyËQ,eõb¬$- ÐsElv«çVÏ'=W�ÍNµ¡èµnP9ï¸}Rªõw”ˆe‰ñ2j0jp º@Š*|èÊdò[Ü€�ˆîÙ†žÀä= àkð„ Hb gK¡Æ8&ŽƒÄÑöÚsïÞñ f Ž^'S£Æ«ÜQ;ŸO%_%_?eåÚ¨ º :y"y¢ä‡..S÷@’/ÐéŽsB�˜?1ßå¯È©Èy˜Â°Û°;ˆ³øÃÆLÕÿ|ÿ�„ÖC3Êúé1×§7 ìu¶;Ç€Îúßyvn;¿ù[Ä-xyYçFN“Ö<•2ïÐVR U`myxë�ÿA™Ãב’apƒÛ¯jWòŒðìxüÜnfŽ “Lç�à®È9‡)Æçiòñ>™ëp_ BøâµÀ n¿ª2äðWÛyøý9fO“ÄKñ6Ö~é×�Àë¼ë±Ü˜jLÜÆÑ»7npû§6Ï{>;£«AiO@R4à®–Íô+ÞKŸÁ’¹Æ�ÿÑŠ";�Ý®ü½4tͦ<æSÀ™èi„ïïÔ–­Ç¼Ýš z¿&’íOç›kœeܶîò±l¥onê¤Í Mì}VñvQýõš�w‹5ÛªZYªLqÜAaáæC=&Û­ÙÒ~\ƒ_˜× e{á ¶6­¹ÖçTr3tçƒoóJ¬rïäŸ1Eç³O‰ð”­§@R¬E‹âýèƒ<&UrTÏnäîÍè¹è¹­Ä×nf+€òžw“O¸)` âÆ%�6‰7î>—n)¤3Òy�=ÈGÔŽc|tãn¹ÜÁ%ÀÚ€w´4#&Ö�€#}Ëfã®  «ÉOÚI?¿ÁÄ�¢î¢ôeÖu'¯2‰W“¾-%nMyˆ17™ƒL,ùþÇÃ(†?‰x‰xÇY bsuºóh(•H•Hë·¹¹¢4™4™Y­Z.ÿ3ë{À™:›,–ÍÏãX*›<éà:!{w»5tÖwÒwÉç–îñ¥¡(ßòìqÕÂGÞ±g¸ÔÜ�Ru(”Q’Iân»§C¿~Înÿ¾Æáà夻;ùºœÌËAƒý­ÖâÎê _b|ƒDs­¨C¯×U÷‡ÜvZ{�ÒàeÒÜûþj#埡ÌÎqÙ1lûèdEÍÞNïò2W茱äâ†ÛïÝV2?~IIàh«UW>�H1Ù7O®«Ê9ůjÜ‘£¶’»rKÁ Ç nÿ¾æë'‹(œ¿0#}DZJëÙÀºEF×YéºœÏ²š‘¾‚ç’gäH�SrÀ n;­qQ8¤ŽñwUN %'Ô°q² ZÊùxņ~.�üð±6-Ýu‰ºÖ7Qê;àÁÌTQÝíÜBVóvkýû?®q*-‚j›1@IPQĮɠ½þ¥]¬®i$@·–Îv¾i­Ý\´z À^Ó¶°§zýʪ¿ÄcLo÷3R d�6;Ÿx>Q yGi3" ”’÷ê‚ï|cÍZ@ÔRe´ÆÍS**f~ Ü{ õSx‹ º=J].}ó(^¸¯Š‰4+¼¹ã1ˆHÔ;(ËLÌÆje¼c¹,·ÎªÚ§Êtv“+5Îz [3i±¨£¶¦¶ödÕ¨a†Öèt¡t¡=RWŸ‚zhÑѬE³Béyêyb‰J’H’Ôç$'gô²ƒîk]!ÕÅÒH¾´~AªÄ�lÊh»}-èsÆ8’ÏÏûÕøa#UÆ/ÝÐ_^ô\å�»©Š˜¦°æÈ3Åúë}-î-öµ¸¾—G¸™öMPçWt‰>ÙnÖÓ\s—TjRS ÅZíKÀª|ç©JtÅêšsz‹ÓSÜ)Ñ ¦SäkÃãSy(a~m01Z¿¸ÒÕ¹™‰¿‰¿Eÿ«’ͰlQPÏÌšž½<8búìˆ.aô†éˆU™Ÿ§Ÿ'YHÊ„а"©�°nà¤`Ï^x‹c2b`u¶kŽùé�ø§Óe8.˜à1…òØ‹ž{î=èTî6Žw·Û&¨C~zk·G… L L G“]Ä¡|f}fshshÞ*ìm‰u cÖH¨€ÊØ›±wÿFưòò…êï­77fŠêç½­–ÎÙT×L…0¥{1¤qo·¯�uüë�™¢m´‹�«'%Ïg¥,±._€Üþ Íó^í,²—>öåᴡɇոKëSÜr_.¾ê×öOjFÕ•ê0ùì É´ê�ŸLÈy¡8TìÀæó¨`æÆ—ÍrLrL’`á«›•ö¡Pmh—]äY!?‚n^ÆIÍ‹ˆ7ºdt)ATÁ**Ð&µeK©nÈq|jt†%b³¿ ó)¿Xä h¤ƒD!áðô6­kÞ7¸çüß÷âðöæZ.í"¾»{ÿÖz�hÃÇÂÇ™ËÒ™ÝÐî2Ü%Ó$ÓäjH¤ ³."}pÿ[ñÙmÁ5Å÷,ž›Ô¶—ÓbÒzk°¯nîu1u1LlÆrÍèì<íc3nÉ!þB$I–\‘)o|—æm�™æ£­'kX¦V——“&öZ'˜@ jÿ„Vš^ô–ãž.ÃÞô�t|¤TTJ‹ü¹¯›WN�<樑XÅ‹|5¨ý®–x_Ij¹’Ôýë¤eªãg¾ëd+giH%é;,D‰Ø‘R8öeò ÒµB j@ÓKg~ŸB!?#ÿY×™ .á^¡ô¾‡ÏíÌ1Æû•ÃnêóS WuŒ„Ô~[{ìuɳüª)×U‘]jöA_%™Ut£û§×ŠûârªéޞěR¤S†ÚïiÅxÖšâqzaÑ!C"Œù¸~¹û9.ª½¨¬Th{Ò·g�>Áß`jÿîæ’ç[ÀÏÕªö¾9÷Ó3­F gW¼�ô®´ÿ¶%iˆÝÒU\éúœSÙ/Ÿ)zÿ:=úÙ«£rT“úâúIšêÅ�¹G¤¶;{Eÿöv†Áœ­òìCÙG¤}»¤y%ð–à=Ö鎑WzHÚqÅ^/[ùáþòì•o«³W5|~2�sæ ñ¹=ú�øÛ�½¦Ï™¼Ñ(C§0mN�yZ°�Í,ßÚÈ Óc;^ÀcY¶_›'û1!‚„¬a™Ÿ ëŸPRÖ†º°™¿" È”ÝlÏ•=W¢ Î+lI…²¹¡lÔ”P½JêÕ§ tHªi—m—uª‰‡€Zë?<Ýö_íÞ€£˜$Ø6¹;bœÑ/�WšÁm�ù€p‡j£cO7`Ãw^¸$ofœj¥?ÆØûå:‰Pæ‹�oæ[s™=m5•3•Sa*¶úÍ�%Üþ€êÕ· éär+�A¦Ü8Etøø¾+?ÿÌ/ÆÆ[Æ/ânÌÔÑ?Ÿa’©:¸^÷i ¡à»Ò³SÛ�½¢Ïúßõ»CF¥°Ý+:á7¹IèñÖ¾·Ü®¤QË�ÿü¢¡�äÊyÎ$©çÃä“IªjPƒÚ_m8\É7¯}·—=€€Ï;¨ÙMã&M–ÌÓ-/Çò  ÷ ½ãîM´„@ j¿«Ù3ÉïzàM¢Ûs€y½ïì4r‚~”áÑpJLƒÝDPY‚ÿ‘¤±d­vÕ&¨í¬6µ/€íǰ"ìè,דõðç÷•Ý~ì rÈf@râï#˜'—¥­&°Ozµ�Õô8¢WÔïH9÷-1F†“ÍVE…积?;j!6ÓÑwBr7s§[ Ô öW[×7{M˜£¦h𲋓H$¯Œä»BÊ£t»®=M¾qG—*¹Uµ7é<Ô ¶ÓÚ*õë<^’ª=>Ý!«¹ c¥lWŽ~­E}›?³u†3äĤ±0ÛÞ�Ô¿èk¸f/èûõ"mÝ)Z”5«Ðw/²’¹øDް"Ò© ]"äv»—ŒŸ×U懢{øEú(Ê¡Ju!+®éïw¥1y‰¹ß4;k]_“HÀ´JfdxKk^x9s»¥J[»›òát€Í±iîÍRÄSÄ™œøÍ63/C1bßðϺPB!út­_žñ°8­&r9ØØ ¢£)ÅR©ƒn²<«Ü`~Ѓ¨~ .ÆÆÉ0FîÞsjdOÓ%­mà86¬¤°é¡†Há½K©8A¼ª¸š¡8 [3è�ºÞ¡Û¡»XQàp:�ª„ª„�ýþÀñeе�˜n _¢Ag¶n¶^�-—€w©gedeŒ‰¿0Gß3>^3ô Wê1wGê­jÑ,m·g\pc:N(Π>âüÕªt&áÊ� á€ÎfÇ¢Î+ôkŽŸtÎÂgYðZøàç{SÏÍÔ•‡ýzÏ(´Åž1š]ٿ׸-ÏU¡‡ZÃŒëØv³ž <¯â’rÝiið¿Òzj½"%öÈü*¦Žçð€éÞá‹Ë1R ˜ðûŽ-pèåt (%QÌŒ¸2±édKÌuïÚl˜s˜óÈI1û͆Pô37Œ¥žã½š{Ç⊷¬¢wUãªÆmy�˜1hD±Ÿ­µ!4Àìx'Ƀ�… À蕠΃ã ~Ás=ïm+Þb£™å�p8eèšviêí­ŽÙ¨¢fÁÙÎ[3ž�É«CÖ!…5—iŠÑ)*âÐàÐDè\?&û4æ�éJY9:óJóÊŠ¸Õ«'Z"*s+s©åF6fªàÏ=ãÐ[eÚO)Nµº5ýÛíÑgýw|' jP ³\ºB“B¶jaÿ é@õ�Þ£H„èUY}ë\ù8ÍÁW4Na™d´PÛùÍœåsöª†Ç´Él žÔ-U%8Š/�O×B–“1±6è�§Îq…�@M¨AíÿÒØÞOÍèý ÌŠ/N¤TæA’Ð0´´”œËäa<2"œnáï{µ‹Ž×CjPû'4AÜI�)ÜôN³JånÁ ϯïÙ‡Õ?z-Y8 ÂÑêx7P¾’x�jPÛi­Ë¨“ãÊ«”P«ŠÓã—&ç“â¸ëîÚó[Å~! Åñ£L’ñ¨ƒÔvZ#ož«wFf†°ŒUÐçFà20c4Y3nï8[Äè5©s”Xwi(ÆÝmÝÿÿ»±\/æâ¾_И¸ /žúp°¡Ì*/ôý”-‰Ôê�EsÛD|Áo“mõ[¾—ac?…X�×Hß§/ÕÀ3>—¾R5?ý¶êdâÁ¼œNrá~•kÏp"•š}W¨S®6‹'úõ~J`‹ý”=ÙøÇÿü¤ïr6ðÜqÁÞíöSY?¯ù@Ì”‚îÍ=#”Þ3ñÚ·Ïï¦^Ád9¶HHåžµy5BK†É.ñ` ´V‹—ô…¥5³ô 6>®ßw¿Ÿ^ÞŒµˆµˆ�Ÿm³¯Pæø7à„ž54t‘½šÐS}hz‡ãƒÁƒÙ!PGè6ÞKv�ʪ °{€T8À¹–í 6æ1�;M5´_An’ú-ZŸ}°‰ Õ5Ñ)9}Í'¼³Û†Wë!N¿ýͽ[�îÑŽš�šw<ùµà://—AŽAŽÊâdŽ” ®÷˜Üî0D£3æ1æIq@œ@œ÷h¥i¥I¿G¨³1S&~;æ€W¤¤_�SJ™{ ^ ‚Ic»ýú¬ŸZzEsþ­rŸ'’O2­ƒû "篴1�7°óÂ*6ñ�­ÚËÈ&Ò%³Fo V�ûTÓmN,ò�æU­§LYš¡5 á­)´°š §•_É¿X%8´<ȵLÙa7ýÐK9˜%ÿ’Á1jÿ{M‚êW„ºüW¶RJÆ},ïã�TH„Ü(h.48ðjŠ`�²4Ý£G}Aj_«]n9W’J#8£<]÷–¬u —íê1­h›löåÒÙÆËäou¸…p­© ¶³Ú«ãË9·újt{�Ô>·^þá�ðîfq¡C2ºOYƒúÉêÕüH¡¶³Ú›j Ê2ïì´N¿Ëõ=6BŸ|„/>‹©n´Æ mOnyvX·£<ðûnÅÿ¶¹¥è˜,ÐÝÏ:*ÛèÊE‹R€£ß·ÌÌ7?j*š.-*·Õ´Úî¾åÉÏkŽ\ì>€.CÑÒå&lÁ׊ZÌ�šS¢©C.€hy‘uïi+CLê.ÇÝsÂÓ�|±ÛP/¦•`SË/E à½q™`3.[.Û£RÝô›™›¡ôÕnØk"á OQÓ…úÅ‹‹ô½x €f�Ô¸@½škßA±\-%"CõŸ,L¯9± ´°1=&“­�xäû»bSúŠU�öÞ³çÊÞÇí.8�¬$|ìeºµÓ¾eZ¡¡.°ëCþE躺�ÜHn�Ý5°ÜzPF& ¢’t–”–”toŠD‹DÌy-y-éÑ é ß£’C¤:Û<˜g u/K~¶Ý=:þQAøÐáQïgÈyV|±×qÒ©7—+“4£àÅõ¸¯èµ³O°ÁC*•�ùÂ*XÇy8ýžPÞ-îÑUÂfiÎÑŽèÈÇe�èSÞnÖ³�ïwt\BÇ�ŠÅfÅ×áKµ3‹I·T‚ðØ—1zµGð&fæf€Xö”+ÀS[qeŠ6¦��%¹í~*»Í`ݰîjßÈÂÍ(3Q¾¼Ü`s¦¿°2\Dò‹Â�!gð§ó§«³)v�|6ýP ÈÙp1P=  ˆ—üˆ�Ãk@iÄɨ€aЇ³ù:ŠõwM°1žX“å!¨'mUð±VÊ5�MÏý4'½5»3Ê�Ê�O#qúßFg›a›‘¶˜¶¨ÿQaO“ˆÑ“°‘� :d 2%Ö<¨?¨ŸÃÛ<Ä<„….¤mc¦Ìhþ|Oè5ïû§ßq‡ô'ò8m¶»GGŸuχ“ºšQRu‚#ʵ/Ò�ç8²ç öïiÏVˆï Ü Š ”<* ¯¡>b†0k¶ý’Ô€ðœ<7i�(óó×zwj;¿¹ªþ˜(¡q ¡JÓ¯5ø‘ϸâÈjåÏ^ =+u¯@9ñ®æuÅwPû÷4<ß°×7.æ�:9”²© OÆTÎØµÁ]’=tj\«Ë+ß05Ä•‡õ9Ô ¶ÓÚœéÝŠ/Z"b¤r„C”=5ÿaïNéZÿŽg,S2“4™2I”Ê–?Tდ†Ø`+³Y`Jš'|ºb»ÐäXn®¯˜U#iæ%rjPû«-–å¬LzkæjÁ»uõ‹I·~Ðy‰'or/-‘2:J¨¥¼�NÁ…WvBí×j|.ÚX2³Ïñtå*Ô‹1›5øZž¿;ày½Lõz²�+¡Ø›¾¯"PûﵓëÓNËé­O ¤SËK¾ºVÃA€Õk(ñE(Ùe3¨…5"Œ^Jô*Ôþžf öÙQ&7OjvVÊ’Y"ÝŽr|íWúmï_©U¶\¾…ПH/º·¹œoœ¸-Îîr÷©ã4¨ïù¡~_ìâ× lì”hѲ‘.%é‚Ô߬G=ãE}. õ·¢Pï)HÙLÙ’+òÍe�oåö ÝížâùÏ5eÔ5/Ð8&!‰ÜÇïcUsôÄF'’•aýa@ñàºe¹võ y1É ‰ºÍ5®,5€þù ½í¼ ½ ÝÚ2ȶ{®ˆt7j‹mr9+`ŒÙ˜ äh³6kk~;pÍþ±t�Í]POá3s�S%�ÈC«8`‘ËH“}ÑÑwë�í‡@ËÎ^-5W¾c2J~~n3gÓõ-ÂAœLÞn™ _oÝk`gR¶Í7”ê”êÅ…²2E¨ža=ÂuÁºRSW6A«öè†Nuó¢ê%ê%2O»Tr©„sz™d™DZGBõN.iFðBR¶™Û:ý£+FùÄ»ÝÉ¡þ�tT¼¬¡s£;Ô)l!€תðPJÑÝr¼…¯cOM“•Ô#×ÕÿûÜ,òN޼“ÜáNÎBKh�<è2ÞñoÝqDLÔ»ÍzîÏ5ÌÞC•¨<}�¼µöL;5~—@ç6$y�Èo¶é¾‰ŽRÕÁà\ö­@>ò6)ž2ì&�¯;¸ÖêÛ}8ûáìSõ*¬íš¾!•l9v[ )¸Ñ rÛÀW¹a «Ærœå¸Ã(AÔ#ÉPb©àgܾ pÃd¦�–`òê8à¸b8Åè‘q#U&ðÕ›ƒˆ[1‹Æ/µO»Ew´ïìeiW®]®Ýf±_åmTWʯ”‘ÐfÖ%€²ÆÑ‰¬3ã rv.½YÇZǺÖA+K+«<H°5SàL­�IFSxà\÷‰À�ž½¶Û�ê¬ÿJßù;šÿõœ„N'‹D¢Á¦c¢Ü£÷”³»a7›ÌYRé(YH>SR–R+nXäBíŸÙ>tT›Ë&�ñbp3½ãÀ­$*Ê‘Øw<4?‹¬·­n_¾Ý¸&ahóû¨ýÞm–¤Ë¼f>õÐÞ§"¥º•W,ʦ±V‰[8M”õ4‚Â`¤¦+'¡5 -9t4‰ñøÞÅBVuèŹ+U>ÏéÍ8¥-q;‹Ûq—§'.гç¿w‚Ôþ­\®œû m£:¶ìm­êõ1Ç#•ôˆo¢ô8T ÎòòGV˜Þe¹ ´ƒÚïݬ=÷-éÙt�µK¯Lóî?kÐÌ(ͮצ<yæ`¯pü…¥7i쑜PƒÚ?µi‹ósÛèk…F Z�c:C(Ðð:°qêÁT@õˆ û¸Õô öâ‹|/,(ç µÿD›qeò‘48ôR·þK^–á—‰9 Öÿï÷‡¡öû´ÖraN¢Ï¨_ÅÕx·7!c-7�z¶[¢X²Ç,uÁ©«æ ßÒÝÎvó~®±|èr •šŽZ.Òuª$õàŠlkt\ë•΀·#%M³ØÅè>³É¬\% ìëñ\H‹ã�öbR�[¨~èC·]ñRñÒ]·®Òí×#©ioá#ûhe³÷YtÅYGÛi([+[Wƒ2JA"ôAOŒþ[:O¤Ô¡ y¼˜ ."®ŽЃæ¹ÇïY­¾ÁD¶–S™Ó/µýÊëYÑf¶´ÙP¹{‘;3%;dÍ`Í@Sd_úí+ëoÖ_¹¾r…Áéɲ¯�zâÐa Pã¢bêbê2rœìŸì¿�À“Ä“¼o"»†z�aªR÷_7VLêt ¡KUUûn÷¨wuŒòöĽ,ó&£9 #RŽVøˆ#›Éµ´&´Âïš4ŒD#á~�!´Ã=çð«(¸d‹s"ýå‹U5ê¶»ÍzþÏ5ÅŸi£Úǧ>‡tžgF“�¬ŽgŒ®Œúî,` ‘O³oÐrƒ€MÁ*º6‰äÌJmƒ I]q €Ê- ¶vvÞ½ÌÀí†Y�ê·ÈÏq[‡�•A<Ž«�®‘7„|…|I΀*` ù�8Ð~Õ£'¶Ø³ˆãòæÑƒ˜Ìo½ÍÓ}È@'$ÌŠ—È‚¬1쑤=¼ jjú0ZÎáÝàÛxV壯væ¡™j²_�»0zú�  "á á`ÂcÂK¾2�Un ÂZF§Ês/•j„jDœÈ“ÈóÖÙ£g�Æ*œÜš©—|ÿƒNTó©¤ÅË…i—"};íÝî1Pgý¯¼; µ_¿ùYÄ.߸a�¾@Úødú“¸Á…n-yÅY–öºÀ»oýÞï«‚}þXvç>Ô öwµ›y†ø¶üô~÷ý3gÎ/äã}—v4¾/—§qŠÿùR·ëz�€~;Ô öwµ@ýÁ[7ßži;êD~ò®h»•Aß|DŒÛZkŠá=¢ÎûœCû#¡µjsô䛺Ž*…Ý>‚àâqWÝûÙ ÇwéŸ1%smpÆíµœÍÎã°­î“àCݳ)Lß*àJp7ÜëçÔ‘­{x·=êóšƒì=LNþa0.ò*ÞË®2Ñì•oüµS¿ šØÝúž€¿‡ÊðÏ÷lü;ìÙ\Ú�ç2H\3Öª-ÎÕ:ÝmÏVðsM[X‹ *iþ)$›)F¡>&i=t›ç%Ná‘ñs½ó÷EçRÛË`ÈÃs$ô… é�VqÅ$0û,@ÈÐóÕvñ?âH¼ieÚNpÉ|h‹�4®-@!Uó4ˆÅXWƒãÓQ/ÝÛº·ž�òä@%骑 ò/“÷¶Øøº7³‘W�bâ>PúºÇ¹Áôµnáí~sL¢p·ª•øÁ½?¸>\¢åèd)ÝØ™9OÊ©ÚñÚqÏža¨<0˜˜¸Å•Áòø �|UDAD�ŽG”E½-z[DLy¢êg�œ©KIç³ù*¥’æ`.³R1»íÙPgýWú]òß¹¥¹M¶çOíµ¼Ä£XxŒõ-!Ç3çÆ;ïa…’ò’‰¼1±Ú7�`Pû÷5NØ Gœ$oiɺ ý#5pë ªNʰ–ɨ[rAçr­¨‚…¼›†y µ_­½Jî¸aÒ6Ôç•uˆ¢'ä°“~lv; �dzÄ¡i½7ÌeQ–ܼPû½[Âéï°ÌÑÉäxÎŽ&eµò¹á¯d:Š\ó‚J!ÆÝ9Jßs¿ß•ÕÏq„Ú¿¯ùøJ ~™±ÿ"ñС^³t|ÓâYï%‰æœRá>BF²I_¤Iy(¸  µ_­q“ÃR¦{kç„“ Ù¹Ø',ô¥o¹ëE‡|¨7Ú”šæ²z u¯OѤ îN"Ÿ¾ü”È�W·~·½~áÏ5¤×t©P)Ш•#¥Nò%æé°jÜÂG§EQ«Mkí?àˆg){�ñ"PÀ´Úpésá=LN¥Sμ“?ÙÎXÔX—¿Hn;± ¤O%[TÞ¨¨C®û�ÄÛÊ—öÄ&=JÙHÙðPщ€æ¼}A’䯶ôÆT1ýX!˜ˆIˆ}¾ªÕ¸‚´'†EG«³0aP•8Ç'R[�ß8$Âßûè�ï�(/Z›�Y*M¦\g¸Î`bzÞØÂÕ Ë  N;Nû¾ù‘ÉÞP2 º§LÙª¨ÚÉÚÉ^twvtv¬°WâTâÌuUo žkÝ$ÕÁRMžº¶i/^;0o¸Û¹ê{ƸbåW|}±/Î\»£wamÅ}]0Ö_;D`�ÜvŠ3÷¼)ÖŸŸkñîp®ȼž·W«Õ7àðþnKk÷Ýf½èçl¿()TL¸õ>HiáÝ1B„ŽÕŸ÷¢ëÑ»ù€ž£Ÿ˜óA‡e* RÔõXÆ’"‰îc|Œ å™>YÀÇjâ€íÄÖÄÖ´H¼H·s E¦ÛÒÚÐû Ðü¾5T@®-M;»ºÝÝŒÿT°"ȼ SlžØà€ÝÀ_}åÇ$ÐÓ$'Ÿâ —dV4eÁ¤ô¹NÑ>AÑ›—üË2x'ä�™PíÌ ëcæBöB6¯/ÌÐtUMLMÌAÓƒ¦ ·’Mð´@ÍQèˆR ¢R>­|:E•A�A�qY,C,ƒÐ0Úzk¦(ÿxné”MyÛTø Cšg}*ïnçZ¨³¾×‘y®ƒv%pýŒØ•¬äU‚5{¨AíŸÐÜ5-Œ®cN}’ĬÄ[ù2™þznݲРa„ ¹þb<ïã‹ÒîÙPûµÜ›I„¬ KoÂÎBVåaC‚¶><±Í¯ñŽ…“ílúÝM‘ ak3Pû{Ú8BzŠk )µ[À@Ë,O¨3+ ßsÊý–Á‰*Ó*"ò-“ú!¢E¨Am§&¢X1××ë—bµ˜ÚL=mölÂ0®6û¡FˆÊ¡×ŽDß7ªIY•OåCí¯µb‹`úËÍ�QÁõŒ}¸Þùœ%z¯Q÷?¯N*”^ò24åhOH sZØmÿƒú�¤½Ç††�Ô‰¹¾³øºR†:ø:à…ÚéÿxL류–RÿlÈŸïvØÿìÿB®fôõ{Lš¹g”®æÝÝö?Å?×d»{½GÕËMþ I »æ¬ÇÎðݼ¸åASÓsÎc]Œ¡è¨øÃ†}KŒšºý™H.…~˜ø¶ÂÕOËD`Ûeeц¦Ùέé>bKð7±n@oë¬(6%ʰß<§§OÅ´žjܧ$âpOKÜrû`ÏQ€¸Ù¤&e¶€�X°ð{I ãEï[«ä|0yÞüš–KÇ€ ˸‰ô† Ö%G‘§a;Ûã`«¯+ª+ª‘wí#óAT1­1­£‡GËŸÉÌrýêîG7UÙG¥J£J“|æ\ÿ¹~ø}�›7ŸLÙš)WRp¦NÎHPÁ qy*BW¯î¶ÿA�õ_é{kÿ¶6y`¬“)\è˜Å§ƒGÇ‚_§´s«�h(c¼×¾gvÏ,™Wtj¿wÓyÞXpô¬kÍÛ(Wÿ19ËÅ3t/uzeoñê໘‹?µ�níö ¬ÍƒÚ¯ÕGö˜„«ØöžÌÔ[gh㨲½Lw¡¿_ü}ý¦K1n»ó£uÜé|9Pûµ_H">vm�¹")›õÇ×Yã �™´Y ¥O�ÀîOôZŠ».†ç}†ÚïÓV+ ã?׿i߯ªàÀXsJÒ\±ª‡SÀ†g9‘öì~¢ÁˆîÈA>.¨ýûšÃIsS»Ãr™¡ütª_Ík ÒP×7Ú—RtÀ&¤f$ µå&ó®@ jÿÍFsû°©ã3ñèžÂÊΫ%ãF®dð²8‹µ}·GŸ.IZ·§{‡òÆt’Cí¯5�ÈwNæm«<ÜyTYãå2üQÏrüêFIlN *x C±»�å”ü\ãZjuÕ·7ò%HþùGÓc5m ðнy²ò?ìÝw8—ûÿÀq#‘#{¯ì8( QB„²÷^•BF !²G‘U¶ì}Œì�’ìù1"DFföÎþvïãçëããøþ®ó»:ÎùÝŸÇÏëºÿ{]]×ýzë}3Œƒ$ˆ[q í÷ëVÁ3”c6^Üð0Ý¥açŒÈ©^:€…Uç^¼<¼èEz掌‹€| ÀFVŽ<"Å0ÀéñÀEÇIÐi†”|g»‡ˆdFrP©ç2à0˜["1út¥¼,r¿¼`p0ω.""bžÁ½%xÎ5Î5ÃåÃå,”jÃfÍ :³ý”Êšáá‘à‘ˆöššéÈ¡ ¢ ¾ð]%ƒß[æÊpX ³Òë°W+†8¶·„¿¯vµØŸò©qŠ~ü ];·GfU/ç´ñž· kºÈqe›çýñ÷iϰ·,ÀåìÔýæB–DÑ|جwa““1Á›Xä~´Ë(¦ÿØuE�™xÒýÐpÙQ—>¨�iÍÚîG†þÜ pL·ðŦf—C¹J"ö�¬K}�½0ú1ú-D>�ì¥Ò»« kGí�5 +®ôñZ ¥©��¬ÖgHºUÅHû îð©d:™"Xà°�\ìul ´ÁgGdpœ–KD2s±“6+ø½”"zRÛ‡Úƒùñ ÅÈÃäa ’D]yðÄXÄX¤§¥§¥TµÊê@½Ï÷30ü>O£]£É57÷I2{2û�{!ÿóï§?98SBÚýŸåô~¥¬›ß¨Œ¼Âö°½%ü¬¥3‰¿c üpãNvhB£LmFÓê)E?é[ÔõáÅJ¨„'Ó]t"Þ,‡ÓäÙ¦ýbµ¿®ßq1±IŸàü\ï­s‡¥�Xr1ÇÃt¿Ä‰ð�¡Ûø¬}B€÷9¨ýœ&K°d)ŽìÁ:/C(±MËu¯)Õ7¤¹Üæªxz9å5±ð°"óc½3c²PƒÚ_ÙVî “UwY¿PÉ3™|¿�ª.ÿ)Òé¥k{ø¨£}}CŤR»!6Ôþ9MáqzeˆCøNH,'Ûé'To"BJù^ßò_ÍP{µzÒ$ú²ü‚AøXÔ ö³ZQ˜ «¶f¼ ›OXb­•ûêÂ[ê…ó©jÚé�µµøÉ“æÅ1†>PƒÚß¡•¦GúÕ²xY!SœL�UþHÆ�E@ ó�'ë]ËúYÌ$–ê+kÁc(aÏ¡µŸÕbŸÉˆ¬U`9,N™$[÷«s›b¯‹a K3h[­„ó[`áZ÷¥qó’µA j@ÓJ¥�%’‡JÌJôkÚ¢ÕÅx\Å{ñÚòùîcjÒ— ßa� 8M¸þÚNU@jû;Ý›© ò‹ºØåÊ–ˆ|v~“]ÎÊÉ…áëž7x™¶â¦~°3æ0SX(ßú‚Qx��¤¤¯‚Š“q×@³Æûq‹fVÁce•ªçNãN["�U•UµyÈfg¦˜ÿ?#Ôb•§¶ë¾ 6äÝ;-“Ï©{ØÙ+ü¬ÿU—£G)||]=ä!;Ö 9ÊÖr«k‘bÖBQC;æm)Öx‘×#8Sñ ŠPƒÚŸmHž¦o¸ÔžöžöAãvñk±W~H”.–S­*æl]æ'ûŒ¢À%Êk²5jPûYÍ’Zõ¹ ¦fÍvŸèÌð$ùEÜHâË‹I¿÷1ºÐ‘ãëaâ€vŒR‹½.�^ Í@êÐÛkÎcWÀãqÒ¨wV”gøAÎ|v“ ™qójÄjÄã ³+ ßòŽƒ¼Ÿ¸šíàÇÄéB#/F B:(%§]_õ=ã}L? ‚ÈB‡Gç5b!ùÕG¯7�D�/LY:é%ñl• …·ðVá­§²í×>ªÃ[‹[‹ÃÕÀÕˆH7óxR¨ÛoZ÷r<5+5+ÔÁËÁËÒ]>8þ;3•÷ûžq¨VŽä‹•q¢± n�fµãÀa{FøYÿ߉‚Ô€FKs=U²Y2S¡``öÖ`Õf/óp €­¸¶y–D”Ê×·D6¡ÁiØ$P;úí.m憲ãŒþñW|K„H%ïØ1¯TnMcqVÊØ¿F'õ3’¾*PƒÚÿ¦�„MÏjm¢§G^ŠÅ—;7ŒIDÑÚZr-í%Óè¥Tcowƒn²óŽ×¡µ¿CÓçEžrœFNíÔ7¬�ûÌëç´Øh}zD‘1î�pÁ ?K›õS_‰ŠÛPƒÚQkÝ7:Yn¿M 2+_¹só�¾TÂ…(6麧|oò˜E~CBòÀ�s¬ƒÔŽZÃi™¯·N  /'Ï EaÐ5¤ÔߺÙñI´�ÒyJ�ù„æêÐKûmïÿëFkZÌÆþ,¯)%š�Ñ_Oì2�3ü~ê¦ÈƽïwÄã]šj¯?ð^†�ýTàv´r*ž¶HÒÄ|êzåÂLm%Gì©ìW�÷q. Èå#¿–iq³^'L4h9#‚ñÇû© ì§{ ¾è×ë×KŽrŠÙ™)ýß¿Cå&ìQm“øÞ¡¥5�Zù°ýü¬s®¾%bàZªÀsæNùÄ~J7ðÕŸi㎈¥.Éß�ömSÃ]nÆZ5lrQ¦s|F0ÓnC+Ñy·²�óíJ Ô 4”-ÉVZtÑ”²·s5*y‡6ü¿²­¡‡}2Œâºó±#ÿkºÄ k¨ýÿkW<í•$¨.ØÑ—âSâÑ¢™Ê¯ÜËk)Ð¥z;�¶�_šêØ£´¢µ¿®Õ¬µ^+I&ºî;+7SW‹Ý6ŽLoð«jÄýÌÓk¥sM·pjÕÙù�ͬ  v´Z†Ù™µW�ûN)vĬymùºìã&Ù¥ã-÷…ÐøÄ4sèü°ë<° v´Ú‡*cü÷.™)�·ê{¬îó}qãû®‘ÿ²ªÉ9¨#¡5ŸQóS™ïòqéÿ¶Ù'ªSMåi’Ò�‰7Ù±‡KrÁ¿·ˆkQ’$ÉWç� ±½Lm8ì½åí�gô?Øéà «õ`ß…WÕÌ œËyøN ¼ïÀMÇòµm. ©ý¾´.É£ÛŒ‚63»>ßÛ¹Áp/}4þ@N۷ɽ"°#°IÑ\÷"ÐÜ%¹c>Œ¡Ðëgé*}R�'+ªÏ�Þ‡Þ—oºáºGF Š%À¶Þ‘H˜Á�®ÆÁáßHb%Üo…àkÀh”qU$ðÔ ZšP£²Ì}ÀDÅŸýýƒdßÁŽ� á'1"1òZ¡µ7j‚7M?Mß8Ú8�úKÅ d’±waûxëZëZShCCüdQaQaúß—n¿£3\L¶½ÿ|á4_€€Ãû„üÃÞÑ�1óRp 1޹ä/Ð|u5ùáJìZE¼JÄ Wq=ò[rµÌ³ô\r7¹ƒËé&αþñ=¡çxGᄂTDØfó UK¡—™ ï°Y÷ã™`ò±Yx�Òéÿ!g;)FÛÍÄ~ø8øÅ#› ›áE¶·ûEé¼¼ð³è¯$žœ»¹ë…w¸;"—…¬Æù¾vï…´Š´úñ�rË^ÿaÔ~N¬B!à•2¨dÖW«eV0n0.³ÄÁ âcU2M,§”îðK<³èšxÖÿþ³gZ,w I A„ZEsÑ›ùº?R'±t¼ìu¿;A)ôXûxCV\V|.³ÔÖ ^æ‰Ì›æ›æ� ÛÜ  ­àýFZ‰ái?Ñ~RÏïžìžîdòÊäÕóns��™2$úýžP#—AËœe¤�!í)«lÖû‡½£ÃϺӋ)M•pe‘:ÞQ¹š¢TÛy–Ìy¨ýsZþ:¯×…Ç~ÑÁ¾ÂÌW¹ª ™  [|‹otâ�º6eøÞÃ[µñÔŽ~³ÓSØœ,!² HÑ®ÑÝÌ¥\·¦3sæÊY ¿…’'ûTÅTºjÿœ†âüîaࣻ�ê¯ðÅ“c2Æå/[´3èˆ3pN¨v;çê%Ø�£kÄ�ÔŽZ›¿ót÷›*¿ Öõ+èCø=Õ}õñá}Ù*¿®§šq ÙWô Âì'I¥e µƒš�›O}tž»LŽŽ‚]­H•Ÿ&»AL¸I4 …½¦JûíC­ŒwÅ%òPû{¶¼¹¯H­ ”o\QÛ7YŠŒæbf1“WŒçªîëkI§—^½åÄ� 5¨ýÙÎtI<¥>m57ÉtCQ*ƹb›ÌI8vëÌâ"ý}…¸}qÇ`%­P;ZíœÕ�²8ÁÔ+4�ˆ±wçñPµýdz$K%Ù—(MȾ ‘]Ⱦܲe§±D)D"Y³†²dMIÖD*BöÜ–dßJÈ.²EÒÓù�æ7?gÆí�ç÷ôtwOïÿ>/×ßþ¸®ëœ3ùªU²G,ªý¬ƒ¥‚ú½.=Õ¾”jâF*ûºgIâ&®ý÷šÐíª 1eãõ1x&�ŠüËÁ‹å\$ø1]¦'>‰¦ºn„4°ßŒdT�9�k?§™üñÑùd~�°£¸‚õ‘™TÃk¿Òo{ÿJ­´á¬wb$i¸èÆÆò£3sýö~GPç¬Ó?y´IÈd¸i|Dð­¿ luΪnfçüý¾gþÀ£Tæ¥òÉÙ$1bhI•iOQÝæbÑ�™y?�'¼{‘óO3jkJù›x£Q»›ζ ³ÒBßóƒ~_Lmé9>~Z¬ÌÓwo4«I’ ¿Y=ã…>—ý­(è=E~=Rý+“‚Š$óZïmÞíî)Ê¿¯É{Éh¥Qæ´„&[W$ë~ëKÏQCLéeìY€‰ú§‹†1©¨´ÙüÉ� Vÿ„Vo5Ã‰Í ÷­jÀ‹®;ï7£Ä£Äó±ÜLJ m’EÍnð{ VêŽË xÜ6»ø õAkÌ5ÐýÐÓñnõàJ#àZ1 O _ ›â5@ÑÍkZ* ë«p¿ÛU)l>¸ziôÌ/ã�+3P_;²FcŒŸÝÚiñâƒÞöÞöÇ<Òvr±B©|ÿ·rsåf"Oï|ëEÐ�¦W;Ã'¡f§g§M¼(¼)¼ñŠ++…úB—¡wr)Ó"Ò)9îûèWN?Ú½Ý�ôÿHëóúrzwz¦61+øÎýçžiF;ÂXZw”×Ú($¸­þßçfÐwrà�œÈwrÉ»£l)Äñd�³Ï?9tn7ëß×äÞ+²„2: ·íÛPÜûÈÒdÇALôbY€Ž/Òâ‡Gn`ZÿHÇ`"¿N `ÒóÕ@ó+ÕÅæ×Ù‡\ìf„‰„‰A‹]Ä›…É¡‰õ¡èWLÂBìƒ �´)áâ£ú¼ú¼É„ FIP�®]hE3è"Š"@p þL+6¾y�/|4 AW÷ õ!½�MuXÑÆŸž“F~+2z…oT èÚïÈmm’"ñi�L�L<ÏÐK‹wP9K9KÎöÎö³š Y@\O0•»½… èñ?ã~ÆÝ5—†™†9ãù#ÔLR‚3µþ^>–Ò“ ðÒµ;pÂØ™‹ÛÝÉAgýWúÈÏh—r“Ú\¬’UÉjÉðÝÐÌiw¼RkÉ–NOŶçc(U �úW«|\û{¶­/,•RŽ_=ànîŽW3DF†÷frkÄ£lŠ®¦JâGÃz¤u£ó¸ö{·™=o,ËçÒ™vÝ—(1‚—ª­X=wvÆ[ÝÝÀm¦i¬éHn¾h%„k¸´Ås­µ²û¾¼a£(cz)i_v-�Ñ‚[Ñš°­X¤¦™pyjDš‘óѨ ®áÚ¢=S~ÆËpŽ®F_ÉGÿÅú{g–RÆŽÏ\2ŒÔ.¨¨°¬Àú²ÝöQ9àÚïÝl½ˆ�íÞ¼oV\™âß+nXwX‘Ó¸Is:ú8C¿ØéÅלÑܸ†k×f 'Èk‡Ð�ˆ±‘„'…Wÿ\3~k<ðÅ;WÎa›©—œÅj/­¨fq ×þmÚ vMÞ„©Þ¨êSA¶é§‘'Ê”ìÿßïãÚïÓ8l•#]d²néœ'ÔíÛ•ô`-?¢z¶»ŸXÓA�rÛ¶?!gŽû°ÝÙnå÷5Ù¡rPBbÑ#hGrˆi’ÛXmM1åàñ�uWkRp!É1Ñœ@šà¬ç_¦D«ÑÜâXu±aÎÉHz,Ëlv×ä®ÉÙ*mÙÍÜ™Ñvv¡ô<[°µÈíI½Ø–�‘ä•VŸVÿ„dÍ&;#6…¡®p|$ýŠ …) Û"ÑÒþ‡¥Lö'¿ ûØ”:Õ Ê[/íg­Žv%¢ SW2\Ùš9Š伨¼X—Îíú¨ ¨)µ)5›l›ìLÿ[Ô9±  3L^‹Ü@I]–ºlÄcÔc´»Ì|Å|¥/NLz�a®Uù�È(^VáX9©kYYóv÷лºÃ*N»»ØæÌ†rUß)ô;Ûu°l¤VЙщõÕêž–‰n¡üë{ Ñ-î1RB›Hõ÷hž ±E´Î×÷²l7ë/¿¯á¦òc‚zœd¡…V»ZêLÑ|÷9¦h8s@›^+ÕÐb‡)eéc8 »nÉ`¤lzÍ߃t F›¹0€rÊ›ÒÍZÄZÄâ ”`›y£½£EINìœ*)Ô™öíy9WuI`B`5ã{Þ€‚+ås@Z¬Ì»Q„}¾–€áÛH6þÁ€WÓa;"2A—Ívò7IûcólÂæ^Å´ …Ç^‹c%i{•øa•Q$[+ðüá áÔ‘-«d™‚j�h�ÈÐÉÐáÔ}F¨¬¢‹ÇÄ\cžUàUà?—˖˶“‰û2÷eäòá㨙ªÿñýz½ûò”õóS®Eƒíî1 ³þï¼;Šk¿~»n¿|ù²m~ÔSñL`c&¹ÈpOU:¶b1£XxÅx³Dv´¨u”Ó7˜KøD_@Áºæ ܾÖ%RSRSjA7z@¬T­@D¶j(NŸ w6‚Hl¬Ž¢Í†g#A¯}�šž-ùÊa£v<²ä�¤µÏ�à1õ¢ø€=q²‡ƒÓ·–l›ÄÛÊÛÚ7¥5Óõ¹ôsédïd¯u-›“„ h@Ó;âˆQ¨B²B2×ȤëI×ùÔnVݬ’ ‘hþßYßÎÔ©©�s¥ )³Ž®3 qÛíÙ ³þ+ý.ùïÜ2ÜÇŠ�ï²>ŧþø{7)WÖ…ÿ£êŽ�åUä“ù[ãâ 6N;âÚ?¯q;^v6$HñU”¯A°”·ØJk»h:6ŒÅxŸS‘Ì·¡õ­«~ˇk¸ö«µW©½�—Íš{®f3Qv†1» âsb8iéå3o~½•ÑuÙR©#Æš—×~ï–tì‹ãá±Ô;Ü­µšª$íŸ}»Da¨Î3'¢v¦=WãKþ— %D®3®ýóÚ5?øãOÓNŸNÜ>W¥W2¼a•ÕuêD]îݨk¢§•R>)’óQòâ®ýj�w¿cÚ”HWŬXJRa 'çˆ"XÑÛaòáETßPmz†ëª0t¯¿†³×È,ò&µ-UîîŽMÙn¯_ý}M¡ðÓJ¨%Bëd´v*¿ÙkÏ¥ j(0ñ¹rÊ‚‚ªÖMX§0Eë�è6íº°ô =Œ†Ô8‰ œŒá9`Š…«d³ØÎØNRòÍäÑÚ$Q˜›²,Ëýd¡ �!Ñ�½– å åc• &EH4;hª¯®eä( Æ0~ô 6퀓Ÿ?¥k¯ýð1fþ‘›º™ÛùÏ·aÊï�¦eY¼dºµùÅÛz³ä³ä%ZIˆ~(C;C;!!øùb²¶ ›RL#$BPÅÄÅÄ“ÙÙ°lX×*]]޵jCô\ë ¹!žvêøÅ '¹§ŽûæL·;ׂ¾gL(ûÌÞ¯Æ@mú¢¿±ôڊǺH|€A|~?rœ;_Êï¯Ïµø·8ׂŸ&¬kôŠòž°Ççù6ZB½Ý¬×|_Ó¦À ÊEqŽ­Ógñ%_ò­k)˜tïr¿<<ëù_׸SM—Ý,À?Œš�£pÆ -0¥î)6!áë±¢•›�-Ž-"‘OH6“\A §Bñ^Ià f��ýÝ•1À`�C z�¡¼qhiy%Ï@Üð# 0Ãæ !€[v-Øû$è‚SxyTâ¾ Ø0œTë®x°ãxÌ•êÞ@7¤éin7Ï·­™¯?vŸ›ðJÔ…òtôt”k—k·›­´´(yS`ºbíùJ�G�§7>½*½J°J6M6�‰•æ3j¦¨~<‹Ðbí’Cåc.vï@†Wc:ÿvçZÐYßåÛñP²•n%xý¸¬}vê*Éš®áÚß¡y$Ô. 2ÄVIï K9¢Á_ZŸÊx)¿rYô¥X‡Ö~ÄÂþ»jŠ9¸ökµ_˜EžáÎ+%­ÛÕÙtUQÉM×k^X¹ g2ƒ6$¤#=צqíç´áÅqžþ”ôv¸‰žE�h[v ‘׸‡· G5ŸyÙþ}³ªA²\õ­š„úóÙ¦ã^v«ñ�ôcY#¦‰9·uô˜þt&ûòõ9»óHÈ#\û÷Z±U(ãÙºà˜ÐªÃ=„¾�¸ŸŸøºÿy%¤Zrꪩ9?¼9)#Òe~»ýô;I» ¾=­³›ç ›ŸUÄ…~¿s;#Èßî2z×Ëêkô΄ýõþ¾ÅþgàÀXP4ãiÖ^Á+�©åÓÛíj¿¯™yÁzØ'MëÈ9 aŽ]Ã7¦0q1E$ò®†Z-vÄDgo…½ÿ&˜÷ŸAKý:ô›ØÖIGÀ[öú„ÍÊiÊi¾Ñ-·o¦•�Ö®�Ò¸C•@}vÈšh‘€¦•>4¶#¶Cïh:´‘�”Õp…˜ Ñxk:¨ˆÍÃ2î‡y � ‰Sêú*à 5ØÜjBÏתrHïgc?Õ©˜çû~i.½µ˜™Ói2„2„ˆþJÙ>-¨Ì Ì ×k¯×ÞÂî�XD‚&þÀ46²Ì eûÄöIµ>ðnƒN=‰>‰>Oyj¦ÜÈÁ™š>AÝbJ°À÷)buËß÷Dí ³þ+}oíŸÖF£÷½oƒE‰²šd8ø>TýÕ™´f^�wú$šx�£ç-nX¤òËÌáÚïÝ ój Š»•wǸ¼W¶^8N_oØ¥äÍoHäj)[|7Â)¶±Ý“´¢×~­60ðn‡Y”²Kè¡ñú�&®2äYzéÞ^¹Ñª�ëlÅ„ÍöUòf äâÚ¯ÕÂ’aDø…–êäGmû¹Ž»Íœ‘¾ 3`+\P~ç>Òe-ç¶Uð×~Ÿ¶ZjzçcE�Aø¨¶ê9þàrayKõ²Nn¸ßr2�ø^²ŽŽöè\ûçµsB–æÌÊ#éµo¿šÓ¡¥©ªq*¡&i5qQ˜î—'9l Ì¢äÎYr±��KÛÎ?<íFÑò4Ñj�Øgèþ¢¼ms¦o\Û~\û÷šgt%ÜŲi•�·€ºp‚ýŽòƒèYŽá|Ù‹å%–[o÷•uñìPÙî,§îûš;ÃâPÓ4u7ÑØŸ7)zS‡>”Ä´À¢M pWc½ p'ASú^sÀðrÃk€S0ü(šg¹]6/–úyÏ_Ölfblbøì­ÆfWóÐøìP¾xpíÄL4J�ðµó¯^-sß+±!±!•zÆÊ y²"6PÆ÷h«;ŸÅ aó?Ÿ™ n9ã“"I|“ºØ=^ƒMWä)-˜ï†]…ÀìAÎ aºµÜ­EM�(Àuà:¹ï®\õ¨‡ÊqËqÛ£¸G±óȳ±wçáPîÇ!’-K!K*e;gß·²–( ‘­Rv²ï„˜ìkH$ƒ,aÆIN)»’d-ÛïÜÏär¿ç:ÏÕqÎs{ý÷fþûüs¾ã{�c)nFÇJ)ƒë#çGN-ÌyæóÌfðX¬ )^†»·,Q?/'æf3åiÒ¡‰ñÜio‰{_{‡\U“¿]¶E:Éwí;7oØ7&Nè eŒ}5ù‹®Ð•þùûiù¶Ù[8¯æ?/µ¬,ÔŸ>U’¾Ó¬¿î.Þÿú®.¢°uްO‚ MìÖ�›‰ø´_°æÌL*Ënö¾Ö1Ð"¾Ô àš$x¸.X½o+©Å÷Xz�ýŒ62Äb®®¾MÛè^׺šÀ5žÔ#ú€Ø‹)ÒXj_kˆl|¿«¢TQ'ÎbQ?Åb™ZµÇ*¹2¥¼æÖiQÀ¶à¶•R@8äxKÖ‡ñψÖ�{z[ÑôûÍT5ñ±ó¾®›ÆF´\²å2µÐí5tªÞD3 ÏUA…ˆqeqeqeŽgއ�ñµ£±BÅ7Ó-iõÁ•é™éÉPÚæÞæ~#E¾[¾ÛcIMtm¦Â°3%ë§yñ8SËÌRC’´ØÉ�ö–¸³¾›Î$þ‰-òÅ%ˢ،WêÍyuGXtBÕÌ™[ã«t höçúš&<ý¤Ô-gŸØþ¾Veé{Å5wüô»Ö@S! FH�Ê\±ßÕé½ÔÕÞ4$¬ÖwƦ<2ÂùÀökšÆ�oNŠ{£ý¸gÔi”W¡ü×Ú!1�õ®rйõLçâã*ö¼Ÿü¤6°ý�mÞÑNæPcôïN#ú¥W¾<_¥ˆ5Òz“ä�xûuüG/�Ö6ä—P¼×Öä`û÷4í[¹ 1žñ³1i§y8ï~šS+òÄ7}ë¼]·ˆ²YÅ%ú˸„ê„êHê+ò+ò |m|möû¤lÖfêØÏÿaVh`Ymù0ØVz�S½ìô…�Î^qgýïú^ÎE&õh¢E£^²AÈÊwôm$­NáleÛkÒ˪Üé²OF)&ÒµuÀ¶¿Úðî]}*0kèÿž3˜PÀ7å¡çB›«PÜd à¯ Õb,÷Mø‚Ø~UsbV&xàKjÜ{øÈjŸüäȆOŒG3Ûn| }žzAðhúX†A·v'ØvWûJ̶<ªFwlš'/S7æI�¦Ç2A¨s>ã÷*ÂY E‰FB§ô°í®f•°¨{_Ö­o�).†|º!>¦$óDËøYÎ%;‰è©7}'eˆŽô¨³…€ lµ½ýfá¤O×—ÃÜt‹;£ óªœúá!›KÅ×îÈèÒ®ÅOWØv[[¢©):CÚ°Oã÷ŠûäMþtG$¨»5j hn ætMq‡Ÿ|¡5b&ʶ75¦Ï0=÷üy˜ßû‘ëž”hÍùýÜÝK<'~R·|LÖ•jBÎ'¿mû΄µÝK pÝ�$\Þ7­Ö½µÕJÎÇ+â°¬ÞL$oEàiùÝFðÛfú”ŧô )É€Eéæu!ºõç¶B…ï0u¡b܈XƒXƒ:OîðF1'ÖµÛ¯={Ê €”åhÂ ç ¢H&£B˜»™»%,ay b-/*åaõ¾e\£ìP{÷0ÚÊ}Wž‚† k¶ÑxïjWÓV^õ^¿:öûGëà�Ñ\Š\ ·D?sëìö†aº"¢ã¢ãìZžRø¸5’>RC�+—ú|ÿº/cÔ^)ômV@±t nŽ~¨µüîf�QÑ"§†<À�Gýu­Þ®ä[ᵘ;°owÞˆÙ“ÙÓmß´žã: èchP?@‡ÄÆ ë¦�”¿››8³8³¥1–Y;Vq&*KÃø¬Ùšio@ÔzÑþØV‚¹¶õŠO˰ÂS ‘B}[1ð£ÈÈJ$˜ÝgÍG¾t›õn(r¥{{½>500ƒ Œ3|¸ÌÍiMhM0*¹„X¾ú›eä» àbmgm'êˆ ‹ C·'$ä%Å¡Öfªôçžq¸Y“þƒ³]¦�+åKã&¯��öŒ¸³þ+Þ6° zD ¡Ò©’¯]>0ÅG6ظüþØH¤„TæP¨œ¬?ôŒÖ56:‡œl»¿ÙBûó—ô¼&-VèVøÓQ ² Ÿö Œí¹™Ò^†¾ò6:¡¢6°ýoç`Ç×)“eâÜ” Ñ4jM¾RZF4ºú\ÓÑ�¢»À»Vo�ñRØþ ÍBÂë+>¢Ç©ùN8Ô{îœsT‡ãa�Lù WÜ?DI²ºl`Ûmíí¥®ËÏ2£ìëç-SÍžZ¨f%󍵸_1´OúL…çG�®àÕ6°í¶F�šiuÉ ‡ŽÕ3ÆBØ/X3Y¬˜u¿‘¯`ò™0:Fb¼0œèé±øÝ W«xxƒJÛÓ )4aÄøàî§®“Ê.]ûa{=m�ð·‰×­ÛÞ˰¶ŸŠ\MÑCPÁd{ñÆg‹ ³“Í §ÒXŠ z)D´lÊð#FÔQwà‹4™V¨’±1{ÿ|?%´Í~jÀë;c`Îaæè‡x Î�öSm|&Ùü´.ëiï®uÄ#gkt)oJ}{¾Ùá3ª¯ ’F¼äf³©D€¥ g€<ñCëºGgQ½[a!¹¸uª¥G{K»‹dr£óëЬ佧*Ô¸I\·’mÓžQY"{Íõ™by¬[\¶ÿÔÀÁ±í%zŠ_´e²e®t=Ñq×PöPv•I•‰=ûñ¯øXy%›ï=5Š YŠ,åç‘l—l7…G´F´ÒbHί͔ÅÏwÇö‰“ñkrÍ| #™õvÚOáÎúé…g´ìüß�TÞ#2ÙoxY.Dü•6æõ‚NUTË1%¤Ë�3ÒI¶`Ýî«Çêt`òµ+T¹Ç¶¡ë´%t6° ²¢‚†[�fב\.9ß <¼6ă!Ž{c�Ìoù[wõP®òSFxØþÿ5é÷Ü#u• ¹³ÕR3QA;RŽÖK‡_+E•_8üì+á*u-«Ww^l_{‰AŸ«Î¢U ™Òœli&ïÃg³:n�à˜Ï‰©�n7§h6âÁ·‡Ûîjyö'0·úXôÞy‘¾|âô¤î·åC¢D(G)BvãbÖÐòV�6?2°í®ö¢ÑŽú¹o~v�Ÿyk¯³£È‡;"?Η%6¶;àGug Ë8ŒßÔ…|'Rûo›G¦Ñá‰RレŸÛÝyÐÅ« òã>·0 “åëUKÊÝYV­öù¾ÓsË«?>sòŽk®´¸wÜëFæh¨°ÂÆd7£¥^d!yý/?0ÜLðü·Ë€š‚Ïp@Aê+žuUÞ2[y³Å\].¥lêêŠbã2ÝJ¹Îò욀‡šƒ€û“x×°&2 -åù˜1­1-n6,:r,ñÉè�XU¾)~kH˜áL€o^z{¶bMˆ�&­¬Æº÷“e*&Ö»•›{üžMøR ¡óñ¯È=u¥j&£±ÚÞ»îô/4^Ü�*S‡~ÅeaÈÈ%$~4³ûÖ½¡Í˜+Šmq­Ð¯ÐOñ¥ ¥ ³+žTêåfSŠÍ7ËÕË�~’)›QAÉI†ŠÊ5¾ßsÖ}¦¤ ÞJôT(À¦²!n#Ç,ǬןŒßl´ ±NÓyͽg/ŠÐsqXæ�•*š§!� �* XÞ1XTʇü°bÒ¨'×V~¼ð,´ElÅPp·7ód[7Öýç’B¢>Š­°ËÌÀÓI†P‰ä{„jÝ+ð% ¤¶ç“,E*/�±¦€K‰C‰ãÍ�77*Øû—9°Œ¦6 ¨ÖÇ@@—  ²ÀFŒ$FAܧ×fÊšöç=¡6¾ƒNÅßñb†aÎEÜŽ;=£ãκwÄ„±~¼žl‹ðGÍ—•·®ü°ý{ZÙâ^á¡[¡)Ñ!2Çäø›hŽZGZ£®No‹ôž87áùÜ/ÐàUØvs¿¨½ü¥šÖ5ü@6ìå…å¦E8«½ÑèB”¼L¼9¤T3Í_ÿªÚ+°ý{änt�KäMÛ£jŬԼ1-ñ¯éØMÙO�¼õ)¹˜îÎÇúŠl`ÛmmÆÒÿ#åg1I2%iâaêÞ¦¾Öôø¾"ýã‹ûSÃÈ~É�/ÕÔÁ¶íš•=OpkJé]õbSm÷fÙFUc^«ÔxSú”ïËFØ3“¼šªj-°ý3[éôÞ:C™éém‚Ì×Ë\•6Óì©S¤YóvÓ�ŽU&j¹µræÞb”`Û_mñGE³[sJ]]ÒQMõA®ò–I[917GÁæ(«ýð…rßÃ=Õh°í®Æç󘈒ñÒGþl:e¹\j¹I QoLeg„ÓœW›9#Âå¥n€í×4˜ö¤£ba‘ü�½¨¼%‡löUš!Ìnz·÷njÕͶ^¯M†“‡Ê‚V¾_œê½r‡cmÏúåç™Bd$¯É>)î9:Aˆå*ßv{VµK6öÀßSþÜù_¥2«–KÉ%‰AÐ'’*ÑëÒÄr³èEM Nã �ý‡½ûާ²ÿ8ne„”‘ì¦Ê>‘ŒD9D2¢²·CáX‘™‰Œdg�2²‹d%»2²GdSö¸“¬_×ïºýÎÏuŽüqÿ¾÷¯»ûxþ÷z<>ÿ½ýñù|®ë:‹lïui ©à�pG‚Èê£�Æ­§ÓBßóƒ~_ìòExx ¡b…ý-r’•$1Ð߬‡žñBŸË‚þVôž‚Ž)»èƒ~„t½±üUFÜ�î)¬!’Ò‘‡m•ªF9çw>†ñtáź$t¦7¨ëC·B¨[Ó¯¸¡k#�þè¾V ¸ë³_ %S“s“kM«ü€Ïé­m[)f)f™’øm%Sƒ‚4ÚDÏÇä «8’< s]¡(XX–Ó…L‚œõµ\@*N¨GÿÒÊ£w«¯41É”:—­u‚Ú+öN9}0Ä„ÖRs,Q&ߌ‰.Õa,ÞöU¹Ð‘ÞôíáÔßRìSì[ �òœÌ„rªqª1'3'‹ö<þD\$é…NUˆ�Ê—Ü—ü¸Æ€î€î‘^§N/¤Y¸3¡wrq“ü¢qúö{é4.iç’ít'ýi*ª-£³§clDðíjT.r’KPÃñ?\kÂ)«6’xl·ü¿Ÿ›…¡îä`à�ÿ6wr||Ò3nã§Xî×K8%¨¿Ó¬7ýX3[• e“Hz e$æÍÆîpÕlÞetïu]‡CL?ñ¢[9Qƒd01œ Nà” ôJÐâaâºüy'ku«/Â_„qTñM·úøE+b“¹a¿.àF§ÂˆM¥Ê³ÁöL�6�vÆP{.h¶DµTÁpÇqÓ @Š8@M¸ò-&'v®ñ´rF�,öã&xЇ `bÒ0 N._Y;±\ƒÏ)ç0þJKOýöp¹$ÌSÔRÔDR]^f†ºKu—Ѝ“¨SöPlZŽ ˆ' ]LÞY¨¬Y/>åßμ�ÙkD„C„#µ1�¶9SÞTàL­ÂC©œðólÝ£ùB§nït'�õ_é; G»g›Ól…ˆ•!í­>$Æ5ð@>£Õ̹ڀ5‘Žš•|Æ�šúå~Ù5D6¶ý3ÛhS©�TœÐ]&{=/ .y_11®G±]‡sŸíë¨/'ÎE]ßX32‡m¿w›"o1(›Md$zzö¥_ñå%Dḥ%î2Y‡®¼ú5߇fzKÞ^lÃ6 -Z4UŸ‡í]iaÝWÂøFÄ´Ä=‹AŸCÒ� 9Ÿ¿ª�àëİ([aÛ¢½’~ÅEoq J OÊU¹tuÐ’¥˜¡í»> “õ¥K,KG{žÙí¥FbÛïÝnÜ!^T¿Ù2Ø ¹4Á³Gì]sD’M½^~2Xˆþ�`´èâ‡d¶`löjS¹pŠë¦†r`(¿‘ÈQ¡Ý|•ï}ªÆÃƽKûm؆Œ&Þ°å_†½APOc¶ý'Ú¤ÝQw¸&c­ZÅ|Î3­ùáiªãÿ×ïcÛïÓNÜ�~h%–¦t‹àZQLê÷ìÀ6èÙî°Wí’VaHA×=×PEë¿OûáÇšµ…(Ÿ�oWQžeÉts2-ÌL¢óßß12´ _.,Aç>›î `3O®˜}�½…R?•ï€ õ³ƒ£•Ëm)[¹¾t}™™b̼Õ7Švé¦ÙqÛv@ |¹ôBöYC@Q9òaäCJ �ä((Ò¨‹¤3fгɃ B äz „ɾ÷qúAO{8HgW:m˜T›&:=üä/{­?�=Ágž¶½Ü}qãQä«íU=•B,>X|†¸=ØÈ* –sèuè�w'ÿ\þ'ytÎCnKP=¶=¶^àúÀåòÈ�×�wÞ™Êz�¡§P¾A¨y^âLÙn›’’†�î1 wuG.™“u°ÎêdÊôK|´4"lcY�}@÷€`Oõ5m±àFªŸßcls�!BZF¿ˆ\�MiòâœÝiÖ›¬ùNf}ªrQ†â"~BÒ/Ö{¼ ÝhvY@ÝèZ‚ge… :k88w¶îÑ\ù›öá(F#¥W1ÁÐÐÄ9ÊânõfèÍ�uô…�ô1”]�7íŽé­x_Og•¯u.s%’‡¤Ö¥ÖM‚ÝA©†ºE ½©àMö@øëš1&yÝù»xÖrÕ˜\÷X*$Ù00gŽJ0÷Ð ¬J™�Ü{в%¹ÔëÑÏGØaÿý]‚ÖÒæŽ¾=Á؆mÿÔæðøIÏI%Õ+THb¿ü!;µ€ ¦¿ã»ôiGã9×8¢ˆŒø§2rØMJ»ÄaÐ=›Ì„KgŒƒ‘§‡oS†óN{6èóš½líG­î=\3ã¤,á1¶»ÊVüážJâ|¯.Òe%†‡Fëç{¶SÛìÙð­®{Ú¾G.Û¦EaÅ;íÙZ~¬InýÒ%´_~eÕÓó$[é‰S½ èÎ<ÁøôìÞ˜Ðè^t‚b¯Øù!Qõ¦ÅU”µš3_0¹=Ëœ°­RÛjöØì1Ä(ñV”2(Š›"?вT*ûÉA6�b©îKlŒ¼Ê¼Êlß@z <};gP¼“’Þ&øÇ m˜Ÿó,8úb4~€þ�{röL´Gu© š—iñ+æe‰¹HL×�tŽ :mO êxq™K™ ûEºÝPð)ø7+7«ÞÃ(’Ç`1‡&ª¹¦¹Æ©‚ë×7Y …~…þns‘ÿ™urp¦®Æ�Ëà‡YKÄM›ÙLIl{æµ¹gƒÎú¯ô»ä¿sK¶«ËÏ'2¼Ê-ûüÐñÎÝìiÖU^â#²fÏá—à±öÑ —ÉSÑuù nr B~B·§*ð6`/^Ïm€Ùm~”Ò/å^˜d|uÀ]ó·R R Rë6ܪÕe¢m“Êë.}Oø9ÐËMÒý†dJÚEÚE#  K ÖŽh<gP‰û¦2À`ØXdp@Šv@Éâý>¯f�{&®?ý™m˜ˆM¿[Ôãº^7¼Q†xxb.õF�-Yõöüö«´,µ,•¶f¹éÞ�šÊŸÊ§óN§»&�?[´!ŒnP¡P Ê'Î'î¤m³l³ìÈ*‘?‘¿fÌ4ÁæLQÿù,B£¡Uµ«žà¦ä;¾ ‰<;�kAg�È­-]¤éÀ’ϪÐyÓgñËì$ßͱ Ûþ ÍáqõBo}hù±Äÿ¸cr<ŵñ ¶Ùå_Þ¶)Pj,Dó$]–tÈÀ¶_«5º=»¯Wu×0!¥^ù¬í@EPl½gÕ[|„•ÉTÊýõ³¢�¾ObÛßÓ†Ú$Ç9?Æ%¶òi^ÀÕÏh~GxgÜÁEóD ·^ )e�²nEé¶aÛví¬lÑt}£z·ÄqÄøzâý´a­¨×á×üß[’®¬•R—cöÍŶ¿Öò~ Æ5>!~GºÜr9 ÔÅßC÷?oye^^½«¥ÇÃדüÐjn§ýô;ID‡ú>i+‘q®°zØQZô°Øˆ$ÕØHbp©=¯,×=åÿóýß6ûªÈZ5d¥;£[W¦±�BÎNûŸökÔ'Êc¡œ˜sSQÌc[‹êíi}ˆnº(©às‚W�.¶„ ­®'`v,8�®àÝ�âÂ0É ‘^­# *�d|+zzÿ¦Ûò[2GñcØKŠTpÔVG‚&ûžú÷‹w6´·“,ƒøîƒì&F@‘ûèº7}Ðܯ 7¿öÀ„I�tÄ&Ï+DóÁíV÷D}.&Ù9n�$œJÛt�˜Äœo9¦ú9ÕØoo÷g�ÝíßÚ¿ÉD2î[φ2 5 ÕÅÕÅb>}m¦´¡‹Ž:®œŠÁ‡Á'þ©‰I“�… ¿os¦ì(À™â�§iÔÂ_à.ò™‹ \¾µÓþ:ë¿Ò÷Öþmm8*xï`óÑ �Cˆ/ôýdßê$4p)õ+“Èãz�¨ÜŠÒ Ï#6‹m¿wSͪÊ;(lWÖbwoPÚpAˆ®VµCÊ…G•ÐÆà|~R yè»V§Ý¯s°í×j½½ý8ºA &¼éê«Lõì%&Æt¢ÝÝF*Ö=Yó ¬ï-çJ�ebÛ¯Õ`þ±G ñ^çÈRœ¼ñ‘]ÈnJG4é¨ kÞ‚äé~³€áà v A93Øöû´åb­è™×9*#Wd,x|ÊNà dKÚ9ønr�= ¼‡´÷D[kp/ŒÛþ}Í‚×@É,�xŠîJøÛÙëü´û+ªÌ_Ò�4iš KL~„“Q‘Ë1Å6lûÿl´®Ì–iBÛŸ7ß*òÖ¶Û×X…øNì:ðt~£!Å-�'¢™ÛþZs î¡â³2¨_ææÊ¡Éû|¬£Ë`à¢,y:ä”%8¡ä™4»aÒNÿ@0‰}ž OeÍþTºÕKI”ºêMÒy‚€8Îó I[âræwHQŠNŠÎ°« èbP¼rTèõƒI›œ›Ëç3 È0éC¼…)rA6ƒ#AwÃÜ1‘÷¯ÙsãÈò}‹¤O”»8µ\-ç4lg¦¶wRõyl™w™÷Í{˜ËU–«ª×Çñ’A"è?j-ƒ:Øw°Ï×+w=wý(Ó`Ø`Iìgè¹ež�m>û-ö‘%ê0ç�Î-¡ßko„¿ d¼o’b�H¢í¨èápˬ:jNs_Póu7¾ÓýÏþû´°mÎ-­ž ûøÿñ,—c£ØèfÏN³ÞùcMQŽÔeŠT>”,R–“¤bÙ�»Ðb» 0\£Y8L‚îò�’5À „6;@é*w/Jè]¡bL¤òãçSã·2 3ý/öî<œªý_à8[Ž!™É°•Y¢A6É<Ó6‡¤2fŠ2fV‰LÉL¦¤ì¢Ìc™Ê˜™ŠÈ”BæyºgÝÕ~ül÷>ç>çÜõ¼þ{?{ý÷ýg}¾k¿m†6£Cl¸‡�¦>/bà�Õ>ü“s�mööÉþ“ýgÖ@– aòÐ<¯Í´ðU€Ý `Ò5=u;ý|k%�vöb�1…ñ\Ê}Éõíøgð°8�`�—Iy?Ô+а-a�¢µ3·Ü7?¤e¤edÎÊ&5ÿŽÉ¬Ä¬äZÇµŽ¼Wüù'=@¹Í[9€)Y7YW߯f½fý°ËQŸ£>ú!…è5õ€\S¢z½Ÿ�—�Âk¦V*cÅ„Oì6·Ä\ë{iOâŸØBË®gF>©W®N{þxX-HÉàPmt�:å�T¯K1…sÑŒYNÏ÷[CíïkÆ^Ž©#§>Õú]:MBk¡V˜yém9‰O^äAIÀlzçÛ„Ë“`?¨ýšvžbÖV?Ü›kJ™R~� q½ÑXî()“Z—•ŽŽÊ·Þ×=>|jPû;Û¼�¹8mUøÛÁÍ,‹Ñ×ë$‘Ú*±�n·Euw©­« Âj3%†Ú¿§©º¦VF¸EO“D$žâæða(Œ‰(Ì5x°˜¦5übñ€EüY•i“èá:¨AíWµü(/.½;‚„IÜQÉÕvw§o8šŽ±{Ëôcei)iô€uA‚iÔ öOh¥¨‚Ø jÎûvØôP­´|DÊ ü%MË'Ÿr¾[ †E=„Ô~UKôW–Xª r›³xæÐ«ÍgI¼,EE$®Äªg7-|“ˆÔ¡ç9Ÿm Ô ´‹(Æ÷Ét‘òò½ºN¸5 ÷s$ÉBrmNÁã½ßPÛëñ“ Wuˆ‚Ô~Y{êyÉã�‰·‰0ŽšmÐŒ8£ŠnÌ—ñõº‚ž¸U´Õ'aÓAJ´H¨ýšV³Ö �Ó¿< ¥�í�A飖_Q¡Ðþ-­gÿ<]‚ŸþÔþÝíVjÜÝ,~îµ÷MŸ³µÄœœa{鬴ÿiKÒ8çª5"¢´ü±÷EÅùç"þ–t˜{¯ÈèFõ…õ“¸TU 2Ø%vÛ{ż{ûwý©ÈÉ™ÇD=8’¼b°ED—5Ê!ʤ¯‹°û\É’•7öŸî½òí°÷:å>±bÍèZq&†ÔÍõ|z·½×ÀÿLŒ„0u`ó^Û0ä¡Üߢ¼¢)´ÕS—¡D@0}K„I�‘ÓV�±Óø‘²O)<¶ …”uãÛQrK5Œ­l6Q9QÉåxO~³I䆒X´®Å óï9&Ðw%Ö�#ÆäSC3C3:* i�©Lsˆ)ÿc;ƒ.u.Dµ´�)b€=}#^× LÁ¼ëôÄþºí(¼8a`KÿvøŽXŽ>Í;.SeO ãò�‘c¥ze$d$˜¢8IŒ0…­„­ ŠŠ.z…|18!µÕŦKü˜?¦¡®|TùnrÐé Ó�«¥è5uäçFIW^¯ùÜW—u�C9û”þn{¯˜kýïú.ç2\9ü·eíûcD}t°µ¹æÛTjÓ½ùum„FŠ\I¹C$cIªjPƒÚ_mX÷, ù¦/øvsàòy5¹hØS¥J¿|«%íéð&è¼?}ŽWÜýÑæ`¨AíW5ÛCò8½u»×{¤ÆGé†é%?ª»9ô:AŸŸ=éÛ­vÕF¨í­öƒ,€euH‰úÈ$wZ²zD®?Òe'È.�~�kî4‰ ¥H®mÒ{¨í­v‘3fYÝG©gA‡ü.-ε+/Ÿ\÷Ñ¥xÒ¢ZŠ�¤5¨íµ¶BY’ÉKX¹ÿü‡<â·¾ÔŒ"äíȘ-ÊÛüÏ[&¸‚O”© ^b9°—ü»ž†sú¼žw÷à 7Òfä| f%æìå°�f<µÏKîdçì6{ùøÇ3p×�1MË9žÚPSžÅпib·ݱ›D€þF>î©ç­ZëÂu %fX€š”Ú7–8,·cÜ÷ÆàÁÛŒ,†,&tZ¹h³ox<І Wn2±Öó@5'tÖ\<\Y°þ¸ J8 âLj Ñ_´ÿŒV‡LZFÖf·Cß ÐðµÇeÛ2j¦Ž¾1ÎѸ�¾SÙ™V¦×•9¼µòžÕ·‘vË«oœpµÐPñÉé8n¥ß�Wù­b¿ã…ay“'I»×@ j{­‘4MÕ: >fúVN— cÕ7…®]mï�ʃ{Ži!Ð]xäæ²î÷ݘ, ¸�ùg5$âÀâ)Ù\–>Ká‰9ŸºA(±r}ÁìFâ>�Ù±¶ÚÏe@ϧB×ã5Pdz]ôX#S¨åÊéñêÊ“‰‡3_tÚ�}Q¹–�2¨ÜtÇa™2Ù¤éø¹Èü?ŸO�Þa>Ťmç¬ÀéC#ÂT»Î6ÏB»Û|ªë�gŠÈ:û0}×ÓVßP\Þÿ)ƱMþäÝ­zEtøjF²ÝäðÝ·Bqú6ÎÕóT=”¤7´ WnçL*Ö{@0ƒ½ôfµeµeÊD§$6³AløÒ‚Ö*6s€ð@U€p^æLJ¨åÅåÅ 5€ uANðÚ*P#?¯(Z TpA¯w;È>@¾ÏþbgÐK'v«³ñ¶ƒÃâ>~EUÂÜ’œ&Ó¯ÖÀ›9ÒZB¹ugïת¨{‘½H£NýˆÙG˜^¿ ¦!¥!õº¥In¡j"ܪ�G–“¯ž¯ž¾êwÕïOƒi¨h¨¦§êÑkÊðçÝ1 žQâÞo“_»5ÚCiì6ŸÂ\ë§‹©X³dƒ|â)Ç뇾ø+í›{µ¢�ŠM|`ËÒ¥ÁF¢EÓ/ fwŠñ6G&ùN³Ê–SÆLóMPƒÐ`k ÍLx¦C)oŒ^éT ¬<èç^‹ê0�C·¶Ç’÷§ÊÒ;<€Úÿ¿&FqÏ9T]žá´3K)9œŒé}<{¹Xðõ¬¦}†â¸ëä¥(÷.õyU¨ý}íÝR³lÑ3*¹À äxM5qË7l“£Z16éK¥“ $ÕÚDZ­( ¶·ZšÕñ¥®=‡5>¹¾ËµÍ}ÓºJ+ô[“�(® «´îKæ /ĵjuÞDPÛ[­¬ÊœüµWzJ§·Am—��àç;‚ :Ù�ª¬±ÃÚŸ4g³év¼ œûMéÚ\’µƲti˜‡eœ¹)¨£•ú˜ï-a'|Ë’--ñïuº3(ïöÞÒ Üùb?¯ˆi„ööô†o×ó¸êTȯ le”d(÷ßÊxfºY‹b¶S/X ¸H5.ùð-n€ë��ÛNÇ…JÀ1Žçá›Áùáü¨³T#›éÔn8o�v ñŒ@Djš{Ï)™.¶çÃì‡Ùt3�îÐÙJ /�ª  šS% X +K±�ý¢?º–xößA:ŸýW?°øo'ÜöÃcÝÔöw3Ò¼Dû DWÙ쬤ƕ>8)8©ñð!¥ôrLWÙ®²yåzå*ð}¯v[}äÚ 9>³€©‘ª‘Ê„ú ò Ò…‹å!ËCëöÛ˜ïè¬r¡ÏœlNs‹¸½~’½Û;ú¾#ôˆ¶a¯ìÁiæ}çJâ$ŸÙÏ'.U$iÆÌ# j±‹é.¤Ÿ`AW ¯ò…—3�ðpýù9¡¼;¼£7¥â{Gu¦±’Ï2 éôÞm­þ㙉Q±L6�~ "Ÿ}]§˜Ý¾za+Iõ|SÀ÷CöL%ý­†H þ2šn€,A¾ „i8ÞÛsÐŒ\w4SÙLåŠÊ•¤õOÄ›íÏÚ@�„VHÏKH1h�U—ë³D£eÓ�Ó�?Hƒºj@·ë­¹A-®T(´Ób€á4!�NÜvÞe¾ù�;:7òJD:xæ‹÷o§ ïjû2¯S]ÛVv–ã;�¯ÊE§²€�ÅÈuiÊkÊ_…�•qÁDyˆòPVyV91ïzŸA¨ ¹•¥ûSLÑôÑô�Y’IÍ5<<�¯¹±´è5eJõóœÐk^}¶/ç°"ôÆì2¹lv{GÇ\ë!cºšÑ5_‘ïòQNSœéSPû÷´ìe|�û§]ƒâÃÅ�H"ÞR²›†š6ÝøžTê!0&;fúÚÛO«Þj{¿9_V]-¢r ¦HÑ{§¿ú ¾ìÀlå‰ÈZ “�6€e!}5-•ê¡öïi°»á%ö¡·Ì:µ_�Ë›7Ÿ¬²)0¼¨”Z*ià!L 5¨ýÕÍ.$“Rû|ñÕSË5ÅÏŠuZñĵã33$,6ª�Ëä{ï{_Ô µ½Õxì.`ËPŒ½ÀÕ‰ÉP(c3¨¸c|_Ä·ËÕ!_Å!QÏ‘P¬éìpÔþ¾ÆYž|DPNwå+"…Z^²ì³}),¬ã’Ä”@¢Ýš_5GH0½”èM¨ýš¦§:n#“‘)Õo%$eÌ&‘bIÙ¿´—îöÞK­¨Ú̽íâ@\¶ÿÚÜËË]wØÐsÖÑŸ{ ¡¡ÇTö‹rÍP{òÃŒ×yvš³*]¹füžôçÌø”êj‘d|*A˜ êà#B¹ƒê”‘\‡5ÂÆú&±ùˆfŽÖ]¡2¦� Á|HTÿÈÒ¬•�ù æÿü0ÏSœ-„Á‡‹æ÷¶(KWÄaÞY�9ãÅü. ó®(Ì} ÆrÞ8QWul«ó,g’êÀÝö)zþx†-C. SûÂõ‡ŠkŒƒ<ž’�W¶êÍ�G²ñgÚמ±m¥çÞ‹cdH•V‰nÐÀõ’ÝNÚBµ2 ª¸Ùq³QæQf¶ñžÍÆlˆ‘G;;—80Åq5•S› æÞ Êï@u æ¨Az$ ‰+8™ ÿbïNã¡^ÿŽW¥,YJve)»È–Ä„¬I)²/•Œ1m¶’¬‘1$"kÙeÉ’�]Y²$…ì”%[ÒÝïÿ;sÏñ›‘çþŸ»Ó™×ûÙçõºž}çÁu]3×ÜÑ€ã¡8ªÀn€Ÿ#ÆøÀÑÅ4‹�ëmïfø.xƒ— Y7KÎJƒÕ™¢}�(î²|¬©‚u¬®ØÒÄÁÜËÜ+„�¯hàÔ#½Gz ‰ ‰ä/(t•å@H*B!½ìñP¡î¡î\4qq¹C C ¿Å)BïäbǤà±iNt;Œ¸æMoYëNúi*ª)Ùá´ƒ­YÖJ’¼ñD‘«ÖýSë0;kś֕TÙ¨ÜsüúçïÍŠãïäÄÁ;9©UîäÂâ¦%?ì®’žÝ”µUÏPz­Yïù±FkÐ�J(½ ײַÎÉ” ~²'ï Q¸µLÒ_ÚÓ( 0j6¤ß8šÍéØßÓÊ�§ ?UJLǸU;}Ͻy%8œªÇUeûJAdxGq¬‚^ûTSŸß îŒüœðê†H€H@¥Þ sµûâ®2îÁY—ÌÌ�žà%ƶ@%gä!@ r*”,ÍEEYó¶TxXN5O…^cÁœz´­+IB¹rÒku&1d. Œ Œ³U©î&Pnn Ü Ü™¦A7�¦¡„í®4P‹ïßÉw6ò6òÎwÎÎù™pbp3åËÎÔRŸr(ƒ+Yö�(IXèøåµîä ³þ+½òw4Ÿ+éÑÍh«˜#›»ª¸Dzoi§µ"¯UYòÅï`ä£þÀȘ¿Mó›U&©ý3ÛPÓ3KÕX¹ëìNæÞ(m‘Û1;±�S·¶×—m|lל [=8Ej¿w§n±,™Œg£L”Ï?%ùTcÞª`ÄÁaý×-µBfÚ†úþAHZóy_+ R#5 Í¢šªÅé[ø¶³=?p¾Ø#ƒÕBa kΓªl€Í�ÀY¢I�Ôþ­P­P„Å\©·AÕýij¥>Χ¬m_XɘØ/ª«sÎó¼Ku¤c´#µß»�¹ºqÖðlK_b~TŒf¿Uˆoõ.„€a½öXˆK®˜l|öU‚@ˆ©‘Ú?µ(í9kt*es€GŽJ²â¥_åH؈ﳞKý6£Ïò4ÄŸ[1N�©ý7Ú˜#�‡òi¶šSåÓY©ÆÓOÔøÿ¯?Lj¿OÛ}F-­�¦w¦ÿŽ2úÑB&¶ z¶;VÀUY8’¹q©«ü6õ®¹šµÎv{¬y£7d u¶Ý€�ûZ×ÁÆác/ Œ•\øE${eù|Þ@ÈÉY‰ ;Ÿ^¨÷Ý�g� NLN6óA€­)êÖJ:¹:¹TM+=ÚƒG焃�Ø` Ø©ËPÓáJïêná¢á¢©8’ZÅtÙ�Ʋ•rp;Ø%)RG‰ÁþÇLô…¤á@�¯VçgÇÈ÷NÄØ«j§'™2vdú±ˆ7Òrq›•©­.ØçÎm­h­èF†½äÏX x´x´¼U½UK^k ÊKƒ83é3ø+@].º,¤¶ÏuŸ+›û6¥mJ›’xÕ¡÷æ:eß)NE(ªH—P]*.nXëzW·KÝ~K;ߤYoú‘•NŠ6Îå¸Rf3fÙwUú& !� ?¿Ç�Yåñ¶qTî “MY}Ë;>í"Öµf½ïÇK”`Ô jw^‚^é!ÉÃi¾j„8¿¨M2Üu7n$t;|ö`°Ûý"@®�…OHñ|1ý;‹¦�nþ+]͸šQ�W$³’J*ʧÓîZ/€ï€ó>PQƒ>ù�³¼®OòŸä‹w�–a HµœD�‹àœú>€K€:]C ¯ €s3†¼å*h–“›{”²‰�S¯ÂäŒt$D>n5¥8º£S]x®?wuRÔ#£Nû�ö»éIòíš…y%òÊ"Ñ"±7Wùaô­›Ð‹¶!Y¨„ë ×ß' PIÓVÒVš�Ïãfªæ�÷?v(OT¶`¨™½”ëcdg°Ö=tÖÿÊoGIí×o^Vs..g2ƒ§h+Ž~T: o=¡®‰Qåk(ó»ùÆkpc1òÓ‡ï@R#µ¿«]Ë2¦°ÝËêèà“2¶ËTúòE„ƒi Zd–þ¾½³­ŽKþ’ ¤FjWóc7J—ª°uò|=j·-f/}K¨Ý|—g�$E[¸Ó‹ûÆ·67 uÓ„�©ýS›ó½‡ïöè�Ôe°Û¸) ¯ßñT`ûßñ.}2Oœð7¡HÊ^©ñ´,AÛg‡Ä¡{¶#£nÙÂÑÎÆ”^žþMi§8ÖÚ³A¿¯Ù%ðšíô )L_,vÎñp¨ÀÓW>ñÓ]fvn‹Ñ똌¾gۻʞ�«h°ã°˜ÃÅgß"˘ú ÖÚ³õÿXwºÍe¥v�ocõí÷S0¤4“!k½ñ@¿AfÉ÷=é„zS˜ÂOf¨ÎŒãùþ¤¦‚(÷>Ö€Å%ÄJ�s˜ßÀJ†xÝœ±ÝéQ€�3ˆ�ʞצÔÂÔZÈšÿàúT}:¡T!ié‹ó%Ð] `Kl$ÆÐF OnƒXQ·™·wšs÷°s3§P’0ªfP{¸çÑKåÌ|ÏúìÕe_‰…ѫӫ/qKjÒtA‘g�g,Ê/ÊKE•ßw> ’Y DƒŽ�†ªÐ¨Ð8 òÖü­ù#n×*ת‰¡muÿ;ëÔàL‹=˜&%Žzª;�¼4®¾Öž :ë¿Òÿ’ÿÎ-Ái¸6ïñ¥õ1QÍnþ7T‚É+½ j"s”Õ•cÄšÂ# X–M�¤öïkBH‡“d±7ÊeFœ%�gàºhmdíð7”šÿ�L¦™ÕïEI�Ô~µV÷Ö×Ŭ¾»ãz*Ãk Ú("íŽÀöÊI·§eÂÚ],UÛîX‹ˆ‘ÚïÝ¢¥‘)½ÃqQBMUÚGŽFÓO¼ÿ¼õ¤¦ð¤”Æ´5]k1sñ¦ªQº©ýûš‡§ŠdÎô˜ýô¡»¨òãùýËVÉíÇU§©è{Ș¨ÆN#hED²I�Ô~µ&B�¼?*Õ^:!�]) ,0`eä‡ps6òÅžzü®·*>áÒ×}нþN•JËœˆêÂ.Ÿ¨¬t»ó×ÚëüXàЩ U‚ÑÆ ¾j.Š~–âSNhø°¹`óBsS°�×ABh^ÀÂáž)Àô#<ã#®¯ˆÙ�Ü) ¨ëSµÒg£ÏFOÑ–·W*9Š'µ g“—¦2ÀC™¯ ¤5ÌÅ£Rª8}ú~8 ĨB¢|s@Ý»�ã8~@‰à¡qŒ˜M²€¡%Õ¡ 7Ѐ)[ò÷oQÄ´ 2ò^\Ffȼ&setôèKÏÉÕM KªZê[ê£ÄZ9â;¡„‘ÂÈ|“|“]†þÒ® e¡�‘†Pté..óÒ¯£_Ü¥®¯®ïHï=׺F{r½nÜÈåe{¥$ݤñZçZÐßà Ï{VznèÒ»ìm_˜w^’Šð1ÀHNÑÛŽe4_ÿós-±Uεì’sÏ`Ìë6кõ˜×ÐjD¬5ëƒÀ¬ßß«ý³êÙö><Ê‹ g:jcm·R ÿÏ #ûsÜl#>6m'ÔÀf–w÷H$êˆÁÛbä”DLÙ1@Oþãé•Ì{Ì{2¦ËVê¼�Çׇó°dYð‘c2ö`–õ¾~œ’q’1 šˆqÖ—s€&î¯Ç N8<LvF×sŸð…>S~�H£Z‡ì{7bÆDmÌÌŽ·iñÛ¶È<æ·A%¶P„­núØ�‰–[-·r¬¨RÕ¬¡Þð½á«-¯-§|“õä 4G(¢©Ãj†{†ÛÝAN_N?Üã͉7'n!—Dp3ÅøÇw­ÑiŒîæ²Ù®ú³Æ‹­u®�uÊm)š˜çý–äϧÆ}Ü´`Oj¤öOhÎ÷ªfººYBËxãßabyµÄžÖı^É,›“y.Û¦Co4%ö@áœFj¿Vk¼Á#¿µxýIò;+U�»©mÌåÁ1õ^•udVhÛñ¤›Ëòð ×…1Rû{ZbD¸36¾Uò´Òz‹,™æÔXŠ«#În§wßg5/ÞL_{¬¼{ó ©‘ÚjM^³h¢¾Ñð­ ¿ÕÈr¼´Eò€qdiÚ]}ŒÛK‡Í‹ßžÑòkq ø?&µ¿Öò¬XÏUûÝ (ßÕ»ñXè‰á¡—ÐýO�Ä‘üc×�ÍÅ$¢‚ÐSkí ï$Qrw¿7ÑÛ"¼ÈçéȈ½Øé‰"ÇÚm6úþ€Õ­Fñ„ÖÛqÌÏ÷?’«ìŒã á»Ut.\Úï˜% îµÖþgèÇš©øœ�PXCñ`<2gø,Ì‹ah}!riq$€Ú—£s/«¡¬÷>@·*6 àsfîO>\!Š-û vF‘z%úúJ ¸ÇJf|xp”ÌÚzg9šAåO¾hlkMJ»ì|Ùyâ!("ÿ͸›þóÙR–8…>Þ€^ËÁ¢út™NþY ‘SʵwÏ“jdYî#9£šL'$á2Ç/�ªËþ\}u”L'kújúèŸG¶&Bí)ÚS„‰ÄD´¶Ùƒ:a„Þ³C…ß ¿k~õ¥éKS_¦4¦4ôùáeÜL9Ò‚3%1vˆ©Ñ˜lF´Èo*ûõÂZûè¬ÿJï­ýÛÚ@d]_3O° ·ÕG®¾Í:Óû "z='6i¯÷4¸iqË"NLa’Ô~ïv2£2›k¿cÉ›;Ž>}jÖ3r;jN¶«º‰�¤¸d©˜÷kú¢Õ•ª4‹Ô~­ÖÕÕ³Î,XǶ]"Åp‰½^°ØöÜøÛ·JƒåË^|y°†‹÷èÊD’ÄÓIí×j☊ ¥Ù–š´{Ît Ê9Ž›ÂððeÏ öõ Ú­•g‚³>‘ÚïÓ¾>5ŽúTše8¨{%æW²OÙR³øµ�äYѹæý4›»v·µ†t‰ “Ú¿¯¡$,Íí8ÔR°{wèÞ­›<.µ}[y¥}>Ó¦¦ÓÈ•±NåM» Ô†³Î“©ý¶íî2´ÉJ¡¯sž6_xÒïk⸵± Òja£{oâ¬ò™†¤X±ðfzRûkÍ5äƒ$Ú²þ«¨HSöþ(µG>г‘­éóîÜúߴj–¯u–3ücÍ ÷l”,uæ¼4†+lc�K6¡GÙj©Ì¾¡ã¼­„¬cn0O£7%~|Ž×xŸÃŸÊ�ˆgßf‡•((^ï§Å¬t³¯î!ŽÌ| `‹seqµ÷Þ]‰ãuÇëXoƒ¤¶‚‚’49Aò|èqùÝšB@F|©!1ŸLöÈ� Ó‚‡‡ÉàI¢~ĸPË}rÂvcµ(ûægO\Ô?ñB Ütu)ÞC/T"U";nÝ ÷Ø %b/b_k[kËœ'ç™I f't¯3e J. ŸKeG±£ªÇc®%zn™­%v%�Rp—±à`µcصµÎ-¡ïµ7*bÙnÚ&YÆo2q9êé|Y9uzkp³’á ɬóÛr~þÿ´â«œ[Úää¼0š/}ß½ÍÞF» Vw­Yù±†"µ6*}!?¯°„ÿY¿Ôãü/ ±+å`�Ü“¿ $TÂq� 6?} n�'d’x“ýŒ ´×pv¥ò‰ò‰3§/+Å/àiÏàdvht÷Ez‚’šQR[ó¢¬i`4°>9o4H5Ëû5h©p…#¬ HNÔ:û}$æP H %B¯r’ÅåÄö�˜ ,jäaß~~NÕx–oõÞžó¬­N«CU%)ö8ì1¸;Õ\ÙÊÎØÎ8[#[£Qax=ó.ÐÇzB¾åÖõP¶ ¶ Œ°°GzC/…^ú燛), 8S §{Þé˜ °ÕMÿ{÷�eÛ?pœËŠ„ÌÌŒDÝ2""».{'DY!\dK …+›lBVIÊ–½"def&#«l~�Ï•—Ç…Ûó{ÝÏ«Ü÷szÿ÷y9ÿ;üq|�Óy¬VD œÙon‰¼ÖÒ™Äß±–^7xšðN¶&ýíÉ¥ãJ~2z4uáyÊhÄGÒܯEä§Í¶O=l¶ß×ò ÜMíÒÆÏvÕù\;‡O i!•šÏò4›9DXàJŒMoä16í˜÷áÛ¯irD߬%{²ÌÊC7è¸n5¤ø†¼/³“L+£º$–k�Þóõ³ØÀö;Û‚¥‰yep§õp€j¶éDÉ~¨ºB{¤ë“»­á£.Žuõå~(­Fx`ûç4E§´Šçð9ü�س¬L¨ó#BŠù^ëù/¥«}Î\:b}AaÎ0üs=ØÀö«Zn˜;‹–N¼)룰Ä›{KsVö4s“UtS«ËËñG,òbŒ� l‡Vœ’éWsÊÛ•òHÊ´Êrn\""ÙEžçEM+gpžžª^þ { 6°ýªûPVt¹×y~Ò4 Ö¯Îm†·"N‚+"sBËf!\à6.¬/•›—¼l`šf mc"E(tÚ¯a�Qã�#v4àµõãYªhÏ·¤¶Z<„|슰0°�í—µ§n×\ßJá²  )YûÍ‹Ð*hD|úºQŸ×•YIþ¨æÈœŸ ¹<Ø~M˃X¨^ŒÒÖ Ž€ P½TAõ|~ìÔU¥Üòr©¶±ô¾Ã 1>Ú“`ûg·;iQ÷²yX[”›ž÷¾Rk¶w€¤o¥ý§-^EÈIm\Pfåcfù'hªàC3 ä³W˜|ø{åÅ�?0H*;ŸŸÝïìùîígÚ³Vò3’q¸}hbœÂ�%®n‹X˜á@7NªPѲ¹'꟞½rïqöz®è4~Lé,'ƒÍ¸íÖ~g¯cÀy-œIFßëŸ7¥è–©2‡]wŠnƶÌŠ»÷Ô� ‹íÔ⌗°"©,\�6Ø¢3KÛMË£FG@’.qçvÌ Ì ÖOõ·k(Þr1s{Ï2€;É!¡rlJ+äöª_´ÜÙM°ê,Ê@€ -Ço,Û5'¼ºvµjöÁ¼¾ž€ó#Æh‹¢%£ßÏì­±S5'»-»íUw­TÙTÈTÈzâz"SfOÿ}Ë�²ªÇÛ‘¥S¦Sbù‘Õ’Õ:œéí%Í %@ž3>]×q ‘í6vÖ\ÍQ#YÚoθàHÃŽu‘RyÔ~Þ¼x:憜Ë3þGM°77(Öa½êâ\3t�fn.éÅž¤KӵŨÁ>gäÛcΘzç¥ô£Ôª\ò¢VÞ�§û­õñÏpе’ ›@K]Û¢œŠmÿ�Ÿ,)7r§IòÌÀøµµpNx±ÄN“óyz€�‰E¦Ò!áÕ-a7½Æv3mìJx³$¸]••ÿÕÆ?ĶËKÝâF´éÞys=@UhC ‚$^õ³ü;Ra™b™bz·FÇÔÆ ®4‹jmê¥ L°xçvsÖ�&æåûí ‚û AûR·UÍn ñ±^Þþß™ 禊4„¿—›J¹²ìm,þìaôPôÐÑ&Á�udè•è•P2(ÙåRöìÆ3á�;IOÉ%#SoUo¥piphpHT µµöú›Û\SÙ?çŒC5òd½6&‰&vÕU.Ÿö›3"¯õ_qOØÀ4:ÚË)Rï¥2s>MsàT®õ0 ÒIjY<‡F©’Ø…§â‘�íà7cºþŒU—¯úë¤ë\ñM¢¼ŸÑ½S¸5L$Y¨b«ýÞ¹ª³KÁ}UÁ¶ÿOchœšÖ\ÃJ‹~ÃK(Ï1ŒCBÙÜ\p)•ƒêä(ЉÏ=Ã�äœ.—Á¶¿CÓçE�t™BMéÐ7*—ïâõs�cQbŒ+É8Õóò…–coØZûx½ãÔ�ÂÄ ó²ƒÝ|}é„sQ¬2µ^V¾º<æ‘_°‚P< ã%\jÁ¶ƒÖð›fëì‡SátceÏC!'´�¨ô×uÛÚÅßP¹Mª3ck, =qvÜðùo7:³õã-˜¥2ŒK¸ü[lõ#D§œô¢©vê+v¸ ¸oøº—o©#r'ϪN€*ïQ,@l�áØ+÷ô³»™iQt`)¨lWæTæ4-Ä@¼Ý§g[.Fm"YA\¹ÌùŒ†€yg%ú4�óí5ø\!Aü=ÂË�³]cäa›¨#‹DUq»qà¿~u�ß !%£"àÉ5é¼ÝdšŽY—º½ÔI‚;pпÃØZ›5ð%ø¢& „{Ykˆ°»ª¯.>¼ï…êé•ó?†Ëû…'ŽÉÈ‚ l{5CsÖGuÑÙ÷d³®):ÔˆVJói°Æ„_#‹n„°UWjÚj¦å(€íïÙ²gQV› TùwÑ[×NåÞœ93�“´`2Si™§¯)“V,¦ç*@6°ýÕ~’_2¹.uéåS³U%é·ò rW‘Øuöùy|KQŸRh_zcA3ØVã°º‚*I4™‰q5â¹T™0£^¹‡�· W·,W«e‡#ÜÔùM l¿¯q†–%2ó]ÖXåJ&…Š•öÚ³`C‚Ú¯‰ÎòÆÚ¬ûÔ0À)Å/ÞÛ¯iZŠ_-%Ÿ¿4ç7`M6#\>Hw{¤VPcìÒª95øêáú÷,�énSÆÍ9ëÄÏ3…À@6ìÃYæIÝx {ÍYe®ß4~ŸàçÌx•J·@,: ;ˆ/…ì Îe2eâP–ã*A“3¨Ü¸ó§ë¯“‰ ?Æ}÷ÄÌø7=òÿù!_Lú[>|1·¿EV¢; ùÎzä/ò{YÈwE!ŸSJQ”!“®� fE7‚ÔœÜïœâ+p7[ð[ dk>”b[ÚlæŸ9 Z¯¶9ìt?—ë \nØ=¾�§• \Ÿàm-ùfË÷õ ËÝÈRŸ øk²¢o×UÜU+(9¿�FןÀMM‹ÝÿúùRÕ΂à?é�–ÊFÎ8}lúXÐIõó�ÍŽôA176_ÐTºž¡žÚ w< 2®º*’ ï ¦P|ón WÏõÍÒ)É1ßÙ�‹ Éæ£Æý(¹7‹iÒÒÒ;(s††2~¬NñŸê sð�$"¤ît²×^ ¤ ÒtKTR^Rž ¶#¼#|¤âô ä3¹˜ ¡˜t={rMÚí,ÜýÎä�ÿFÞçW“Û“S5óÝàÂhTËw”�»ŠâK_Ãñ¥¸ÒP<Ânéßß›åØ:“ã@œÉñìq&ÇùìÝy4UëÿÀñºæ$™ŠLWDæCI晤Œ™3UfR¦’YDÈ2¦ÌS%9æ!ã‘!SJæB™2DüÚ¿}Ïï|�s\Üß·Ûíîõúï½Öóßg�µžgŸýìò+]sžLQš$Ã¥¬p¼�f}öûþ†`"t�uõ (RUÉÌ¡{5mÂ0—/L¬æ}¨;´9‘†i¾–õ*À}¼¯oh͉¢ü®9=KcÀ#5 ¿­ò;ó;MO+ªo¥~¥ã6Ò.9m@BÙ #Èq³ã´Y½KL ¦õ‘„O zâªôÐj3iïÿªž„h{ÜÄF7à©•0õdA7î²Áî÷›FáÕœÇô6~ì¾ëúÌþ+Ü"oô8¶×òöžŽv¯vïT$¿àñt-:-:Ö%Ö%K æcÝ }|˜NTsBgŸbŸÂ龜±œý ž g¦ ¢BÎT8SëÃÒQî8E×½p£f®íôL}Ö¦{@~Dó¿ž›Øá`ö@‰x°žIœçýÕœ.››õ¦¬©4”¬$Ÿƒ))K¨|3ˇÚ?³�·—›Ê'�¼EïrÑÏŽG5H\œçÞƒ¾Ã¡…Ùd=­U„…Ö#š{BÆæ ök·’NÓŠÙT:‚ŒS%Ê”—ÍžOÚÛï^ÝÛÈe¬ª«fCzq9ÀìÔ ´E»öz ¾ýk�¬dpºjQ+¸w­ —¬9nÇSÁº6Ü¥©Q1ZŽÂ1¨Aí¿ÑJJyÙQ×�ÿMÞS«|}Øž±Œ¶{…Sœ‡Šþª¢"ã2Ë@¶ó~Jk¨ýÚíÒ ÂEÝË�Ãm²ËS°}"f ̲º­ªÓ'=� 'ˆ-¾Jçˆà‚Ôþ©M[’Ÿç²žVh” …(ËÉ=µ-�u“Ñ“åCN#SÕO•ùªÍ(?A jÿ�6íÌâ-­O÷òBÍ|A¶Áüè3 ¶ÿï÷‡¡öë´£—ÂÄ3£Ï;âj $>þšÚ�~¶»Xatcךœ—›­pèu®$ª�Îv羯ézX‚ƒŽñ[{-ŠùPeOT:ãLäLíïŽuº/í®±•Ê2ÄÄ…øœ ˜v 1ÄØ­)£�ͶÔasOw Тàl°c*cjw^ùÕ­d5Pdœ�džg¨$à­ <ÍØ•ë3„<´Ì´Ì~4 =J�g´'(Ù>† i†pù=ÀÄ1b›7Ï»ûkŸú:¸Fç¢P[{›B–&ÜÆð«ƒ·FqT…�¸5èÞNômïpõ¸Ä[‰·Eá4&ˆy aˆ°ÎÙÎÙ~§‹Ç½ ±YL3šˆ1t0 ÑðPªLª¬ùpMM&³ úsŒ‹g«6ñ/ÄIÈœ¨Øã‡·íôýY³¢íÞÖYã÷¹JC2oì-ð»7’+©�©…ê5 Å#þCh›ç¶¯-“ûÛÛ䕼ÅIPÞiÖ翯© U+C—N)ü ¥ÏeQѪ�äþ“ý˜ðéDs‚Wý­ ¾a ¡�/8e=*Î[Ž¢\0É1Å&©ž¯,ŸW½• µ u5CáøVÏP¬‰�…Æot ŠV@´b#.¬õÑ÷£ïÏòƒ®¬€ÒUªt@�ñ"Hcz€çÖ¹,¦|l.¬ÔJ½zÓTAs^ gUQoôý§Ç7â”Æ¥ýç³C[« ÷ÎNf)í²ÛÞZ_æÍêj3=§…¸at-‘-‘»Ëv—=i{EkòXÃä~/ Ý{¦÷Lþ®tt‡‘Ó’Ój±¦ù!gêå÷ЈkfH›P¼œ›rzâ¯g­½Ós ôYÿ+ïŽBíço¾fqKnn—òÃçHëN}”ÔëÒRT ‘gm« ¼Ýë;F·ùüá¹ß]¨AíGµ›ø–ü´¾wíý³¦EöÎåîÅ[“µ7º«_ qœ?o±Ëy=HÀ¿ jPûQ-�^/W°ÖÒÅçõ”õ�üä�QÖ˃>CøÝ±._›S îwÜåz»/jPû§6×ûØÏë¨QX?q¾p7‡þGÜKŸÉ’Ìý�+žà½…àLN§eyŸúžMiÊ£ˆ;ÑÕ€À×'¨=çÃN{6ôÿkr¼fqðûfÃM‡]q–‹â({å¯�:?hlí±–ˆ¿‹ÊàÏ÷lüÛìÙœETÊ�®©�r‰§uÍOÖNì´g[ø¾¦ÇÃv�÷~$€¡Kò‰ÑT Û%LóU3ÇD4 �Õª²ä0q° ˆRó®îÀïíG™ZñeÀæ^½e-@ã+ùØV}„}„O ”\¶*VDA0 µòÒãleÅ@i� Ú+Ó\/J^•¼²[ú¢�‚Ë�º¿}´BâÛ쯘é«"°ÑÜó ‡°�¢o««Nu°Ä†€o2Õìˆ`ƒÝû—ÔŸ¿È¶``;oý`{µÅ5$uu~ï>ç�-¢3Õ7ÕW*S*Óº@ŒGw T—ŒÉû–Ÿ0:½t½ôö¼'O*º^µY·Y§ÕÄœý¿Y'ùãФÓ9‚|ve2IŸlœfdbwÚ³¡ÏúÏô]ò_¹¥»L4>-œ$0WçU)fbëÝÙyµÎOjLŦXZQú¬=6NûІ¡ Ôþ}�ËÆÍ^'ÉKVºjT�±qILÍAÕ¦q"ÒÃN!H4ß‚*XÈ«¡ö/Ô ö³µ¦äþ7ãÖ·}·²é(^‡08èÅåDr¤‘~to^(:½ÇÍT¾;Òœµ_»%žX³Éz?‘œÀÕ^¯ªt.‘üÓ»/d:*ܳ‚gBŒºrϬå¯Ý–×˵‡Ú¿¯yûÈÏOÛÎKÅØÕh–Œl˜eö¨K5äŽËh„{ Ê'ÍË’òRðA j?[ã!·I™ì©ü$œ”XTÇÁÍ1j¦(ë᪪?^>ð¾>5Ýiõ8ú^ÿµè~^u�üpªÅ”è´¿ºø}ÍKjîXt"³A(´‰­µxa‹i鸘’K}ý'uýT$1yÂORãò ˜Ó×Q˜”Ôâ°qcÏÒت$ŠlåŽçŽ×|cÌ+kf”ýÄH»>'ò¾®K‚Ô{›ð¤ò¤rx.¨Zä$‰|UíÊ~"O1à‚*@øfÂ'lÜûâ’ƒ»Ö:AÙizÔø¤Ÿx°Y”YÍÉ®£ « ]¶º£ù‚‡ Wa¬j{•O}’U+T+†H=ù”õÐ…ñ†ñj�Ö:MõV‹Û³ÔÞ‡©ôNºü�ü™·ÄõÄõ|¼%ì%ì…ýL#èçZ7Iuv«%O^Û°•|n³Ö`§s-ô÷Œq%J­|ê|~Tž¾æ§+öuÙu]0Î_;D`ŽÜr’+ÿôÅÝ~®Ûæ\kYZ5jýf+¾)Þ™˜£O®)ì4ë_¾¯ÑPvÐE'tn†2ÜKU8[•uPÓçðëŽ] ¾ø|·0­qåÎk$ZgzPêõt‹°9vÍq°0›È»U¡I¡‰ÿ|ZöV…(ûæ‘*5«ºu÷Ä›@_3i[IVçecjbj\'A: J¿� ôÔH·UË©uÌßÀÑÞ.×úM�?^Ћ4lFTm-`þBùGÝŠ5®·¨±&·w@A4¾ƒ®ƒÎƒÄ€±» �¨²¨r|r|2¼lÌö hê¦ãFŽ‘èDqEqŸQEEÚ¿w$t$4ºýFm*l§s-ôY'ðêÎm§^\?)a•�¼ÊIôÕjPû'4×ûõ ƒoEUII:rVö2™öz~Õ’Pµp÷Yr½…Xš²¬kÔ~®†ðb9Eß­ƒ7jm&6¦6»›º&üA«o]Ž™ƒåÌ£Û§ÄÂÜ¿NCíÇ´‘nÙIî7I©]ú’»M „:²“ðoLºzèM¡â½'&oÔ2®yK¼5¨m×N©¼øÔŠÐí—a3›ÜH=a’9j_™£r–®Åžxí[9)ۆѠB¨ýµöÔ,˜öJC`dp s®W!×3]©ôýOÓ1¥õ[am‰éas;íÐïI"`zûÎðü^î5VgÊЫo|ìðB­‰õ6Óh=^Jh�éŸ ùóý�Àvßb4#:ç^¶©&I-ÞØ°Óþgéûšòœ+èv»E¢%ŸÌº¨yn_ &ªa¶€1•Ayq̨9&1ÏÆ"@me¦5ÀëŒð"Š2ïa86¬q1�ñ¥“[§«,�[�FÑUCâ§:ð>´ç1h8˜ð+¢yL‹L‹lr ´BzÉMe *4™A’-H`ÒAw±áJH_n;’Ø ¢Ñã•£Y\Ææñ«†þ¾Œ\æ{®~)8)Þ*ê$š„qÛ;ý¹W±‰ØäVqmî{ŽŽZšZš¤ƒ¤ƒêzÁh% ȼ“Õ±Ùèz2z2xð˧˧N’y‘ymÒ]gCΔ3é÷MKQ! px_Î%†®:î´ÿAŸõŸé¾µ[��Ø?ÜÁ.ÄdöñÐïÃÁ*MF)m<燴ˆTwŒi;Æ›Ü1I†‰ÏBí×n:yuE¿‹8WôF:û+˜/œ¤y©Ó#ïÓÁw2•xšjÕÜå¾§²j?WÚe~Ö²çX–î:}+'Üò �X¿äX͆/ëSܶ«÷÷Wñ<âË…ÚÏÕøB°àÿVYdªBÊ~é çIç#±4mÖ¢ÙãC6wG{Ì%� >Cí×i«e Ÿ+ ´ïŽ©)ÙÁ+ŽK›ªÀ_s \æ]z@-²�xðhwWÄ 7Ôþ}Íî˜éEk…¬P~µ˜¦YMÁƒjêlK¨ˆÚõmFe¦ßH1k+LXA jg;èÉ DjŸ)õº¸¬ÃñÙH€¡3ây¼ÙWBÏ÷‹Ò—Úy…Âb;È¡öך{Ä…€ƒië*/OUѶ…Çþèg9¾$ýdEJŸª5‚-õu‡év:ËYþ¾F¨¿¢]#aC"J¼�DôбËM:OL{¿9öõ#F)'ŽÈc*rÉXøU99”Ø'¡ØEäÞ¦CSü€ãM˜ØV ‚ ‚RÍÔ§·²ÇAðB"+ ½(i¾ÒyÝ“O±Á©ÄhÌh\�Ò,}ðJ9Æ]ÐBb,Œ|Œv„cS«`'\ _Ê16œžv`_àÅ&¶…Á^Æ]¡8héEuÝ™ù ÉUÇöúÅ3“bÆcÆ¿G7‡¡¤¤à€sÀ ”´{O�Lè09í“Û‹——ù²‹»û^ÕŪ‹Ãæ=7ÐÏ-‹ÎÀ®?%àd6àk8O}s§sKôûÚÒ¥¡t·-™¦º�óqu´©�ŸÓ' ï�Ôõ:+P`u øÏ¿O˷͹%a×5÷âÞì�@J–âÁÏ-W¾¯¡Ò @g/jÁ„â±´é4>ÑdrÓžrî@_àÑȺGÆÑ˜lyí>2[Ù\£ìþó( Þ’w±9 L‘ P47öÙÊÓÞÓ~×ÓgI[  ÜBzœuJ�¥² ê<¾ p;ƒÍÐmÓmsRDd Ò=Á‘ c0D"P¤T–EŸK`“ö;`ZâèÆË<�a”òñóyMÄØŒùÃùã6Úê#âL¯?¦P–?´=–,Ç/�u�u÷xoŽÌ¾BËË+G/Gÿt&î‹™(ºSÔÙytÔaÔa–‡Y|Y|íÅÃÄÃ&CéJ�3zœ)qý¡�³FtMóëu §xw:·DŸõŸé™Ä?±ET›ĤµžiÌ©b]e<WÅ„¡9®T‡’$ÛËàþ‹¥¸ß‹]²ˆí ö÷µRs/+çì)þ�æ ƒ¤´¿uPZ,ô³ž#$/»EItø’χY÷´° >¨ý˜¦Jñåªa”çüJÅM&Û¶Ç!Ñí5ÎÒrÙ5tò²q±Ïíp?OªB jg[¶·”¤©�ê»:vO³Øjºr“4FG­'áV¼wwÜ„‡{sKíôÝ]Ý—öAí×içþ‡½;�‡jÿ8ÎTŠÈ¾d'k4Ù#"Æ’5K–BÊYÃ�]RÙ÷=»p˾ÊRÈš-TW$k"DÙù:ßÉ�Ÿ1òý=îýuÝïïœçóèÅy¨|þ9ïÏÌ9®�j£Übgñ£’y8YïÒ”ÇEU =6^ÌÖË]Ä»žxFeÖ$v¬l`ûU­4Æ‹C×['õ:g@LzƒýíÅY['ÚÙ8ëÉ— _V––R'ð¬Ë’LÀ¶B«Ì*»ÔÀîk�I…—5­þú(?.1±Ò‚@^EûòIœì/Å—"Ç 1¡`Û¯jÉþJ°¥\·¹Éëðù-Ž,K‘âJ(2éÚÏÇŠÜÀ%€÷?ä<Ú 6°M'‹¾5�2ZnZÓ�Æ$ßI°Çv¡_©}ªÉtˆ„ ªð°�í—µž—=ªMäq9MDö©ÙÍIЫhÇ L­7—õ'äÖ hà‚Ì)UÛ¯iek�°ð³ z:‘q!C"Ô…ê˜>yì—ÔJkjä»?e÷ž§LòÓ›Ûw»ù(áv‘g§Zk{^_±æ+q'gÈ^ºWÚÚRÕÅ\5?‹*.¿û�[3 ÷PÔß‚uï®Ûvaa�ëiÝÂÛ<Øn{¯¨ÏÞþMï«­òL˜L nÿ>I^qÈ"_¯u<Æäc/N7¦XÅ’¥æO÷^ùwØ{•Âc—õSf»á+/C·t¯ëÔn{¯‹çøÝç5Bu5^ˆd~³"£·4Òº…z»ãÓáù¢Üq®ÒÛos¶–;Ý È®èâ0Í’ö#�®0â¡ã\q†  /9¼•íàÇO(FÏ" <ߤoÌPûÊó¡Ñ�®ö· ¸YÄ—w§ËRPG Á ýãX2ÌV/ŽØ¡C eFªn½a.¼>L:H=ýÅ[$4_Ù_�q¬z|äšôŽÅîÝ™IUtük—×.Þy ‡IùPaTaTUVWVÏNØqúÜAðˆØ.),ÉUAeAåØŒ”©”i?Mƒkƒ+S] þæšbûñ™ZéZºõƾ�ÍEV¬JÅ’.x©)í ¯:ïOUâ•à;Ñ6°ýªfG+·/Ô G»—†~½_jjx‚rŒ*e$=¾ùÆDPU’žKê§4ÍnÕ6°í­ö…0àØêˆ"Û gvú…¨ÇþÊ.«û‚ìs¨†9ö˜Å—!­;`—Ú ¶½ÕtØã–/Ü…9õ/RÇD™©��*L‡6~>ͺb.9ÝÓR‹þ�Ò±@°�í϶wß í4Èà¢ÁK7Ebx¥%ZJˆØÝwíjAšÕ]mâ´NÕJÌT°�m¯µ’Š|^œÚÃçß>¹{äå=2zQ¢nå¸ M’[;§9BN>WÖ>†·—õ¸®ºsμ®Ïûa[7‚åù@�ZÔÙK“áeR–Æ´XC•·>Îî6{YÚ8‡¾½‹ ùäA$&é¦ÿö;IÌÛqó¿§ú·‹¬S&š Ðí¢§nÆF£Òœí¶ŽH¢¡…èSŸ(›).l22ÔF¬.¾ÕéGH©ÐMP"[€SCç8Bè´?ô{âþ€i—iA’E„Qÿå.|(÷o›ŽU&8zf èÜõÈ¿Áë¨Ý��ù ¿ûÏä[tRÈKou¼ðpª™Æ&\ +#g\õ“þ°3?c²X%r%ò¹>-e<ªl…l‚Hs°úæTœ‡·»3ð¼•â¨â¨úr�l�,œè¤ÝI;¯,GÔ9ヵ+QJ½fnÃ:+%𤋻Íç]h¡ÏR]uš³¬œN2:ïþ›pÀ›vø“7F”kð¾‹R|3 �~>……÷ç¦+±#>gÚaÎH;•¹âxî˜Å<ÌÊLt_Gánk}yã>æ—¨ŠÃ ‘œ/%¸8D>g�ÝÎÅÝ5ð¤v9&�‘U};«ól€}ôi@÷Mk¤ ŠúZt°XΦK(¶º/}_Z«Þ@~«®/H$ä›ö«Á˜é™GàemãpÙæ"ax(<4¯!”¡1¼†áD;•Ʀ+F›û€Aû‰èkFqT%Nk6�N ?rÚ�²�‚çâäéuÚ#éö|ß$¯vðe9»°FvîÌj¡Z±"¹"Yi[„«UYOYO¬Z¬Z’–g•kD Ô&¨ØkÙk‡ÜêÝê§¾”•5f+Ù\SE?æŒC Êä}öæéæŽõÚ/Ýv›3¢®õ_ñœ(°� h ô²Yòmò9ª%ÓܸëVß³ ‡‹š0ÈèZçÉ%h >#uŒŽ|x„l{¿™1|ÈYQwŸ2\#[ãKm�ƒÕ Ží÷Íâ×6—á N®jñ¸• ÔØþ7�õcë—i�Õƒ�Ÿ')sã�Rut<=÷�›šeT8ËÜï¶É»£¼î²`Û?¡ bNºÁÌzchZ£ü»`�Ç\ œuD�9¥B¢ä£{'ü^ \ öú!°�m¯µwWß°=K�°|1oœ¤_n¨�v*�S±ñžm ¾€åýñƒ>D©Òî�`Û^køí_›œ††0|zA™ aÒ3¥6\Óïî‘zBí9y‘ [{q(ÞÍeÝï¯n eœ'ü‹^%ïƒ$’0_‘>Cì‰:Ÿ²Å�­X-˜Ù&ïü6ÙÕ´ã}6çSáë‰êY„º°^*ŒÏ_³–kg§j¹’éòsߨà ¨\+Æ Vj÷†/“¤›´CÅ¢£ý|>uj‡ùTC¸=IÜq;—{ÌÅñ y ý»Í§V6Ή´àÆA¥ÿäIR×H[T¯m½÷ve¾ªÞR˜ìq͵€íb#Ä¿¬ï‹˜¸Î” -é¤Ñ‰Hjÿè e[Û*êxÔñÑà#¹r*x0Øþÿ5qâ;ÎáähN9«$¢&dhMdy!bUÔ^¢GóìË�u¢Ê,÷Þ óª`ûûZýRǹ§¤²�ÓÊS� G:?a39®g“úT9óÊ¿áâ !LK81ØöV˶„.åºöÓ©ÿîŽSÿØîqõëÕ£ÂXí6g1Ik0 iRköÁÛÞjÏë̉ª¼r2ßø4õÚÛõy -\*ޝ{e�Ñ�ÖQ̬ÝSøKñ?m.éi&‹´)Çd^9s“Å*~äC½n)~ö˜ÆGç÷õØ~«;í»]·¬nœCvþ;ª¼å»\Hû‹“`ÍwxOImœÉÆ °ñQ« ½6ѰݳOÍ“©±·€;ÁGŸ!q÷µÝB‡h5( 8ú:e«'�O:èjn•"�ô@“eŸ,`…‘° a&"»?=*=Û:Û:÷�á BQkÂ Ùø²MX s¥UšK€îe£<Ö’òUºïè,Läe󜳨ç~g§§ùŠ"õLÎgùÄ�Õ·áÉ´�´�¨ä§'—¡Ò„iÂ0Ü0ÜÔ»ŽtŽfÿа�5×[&T‡xñzÔ\r¿ä.î^î^nÒØ õ�I6<ÃÉ&t–U(DÔ­*­x·kôýl‚T|CÌc^ÅóŒûÅ*$3æ“—jR5âæùÊš0ŸQjåœ<ÆR£¬Ïù‚ñ37ÇÏïÊ»Óó]ÃS´›ƒ»B^•Z¥P¥ ú8psM™’þ¸Oè5¯�vß1¢†t'íó9lv»FG]ëa“Ú±ê°FÁQåúÒ,§¯ì9_ÁößÓŠ— úžr JŒ ”`“ä{IÂbnÚn;žÚî!8ynÒ:¼ÊÇO³Ål{¿9_Q]�xJêBœ©[¯·ZH½ g´ôäËYŒ�’ˆ5€)'ßÓ°PlÛOƒÜެp¿iöæb.‘LFRö'•37ºÈ˜.Ë0ñ|Ö|çYx%#Ä™›±l`Ûkí«ñ½Q‚qM1\YñƒCD½/û›Rcûó5Ž/gYr ¹Ô|ku™ PTØvj&–œM‰E·• .«:7Àê„´O˜$Å^&Ol…œ¨¯Ó}æ “]QöTlÿÌV43ˆ±Ò‘&G]~k_z×*{鵦¤iœŒyó™:›2CÅG•’"`ÛŸm±,Â2™M X¬¨)$yÖ¬õ�H^ƒÎÍá³�©¦<—ëOÙßú´l{«qÛiaÊO渗'ÿBœÙ ÆÛØWô^¯+¼Tž¬ëˆ#Þþö›HØþ¾Æý"�MHV{e”/“LNòyŸC%6$¢ç2ì«`²ýš_kX•ÔÙ`û5MWuÊF&/_jÐRXʘ–iA2¸´—ží½—ÚÓ3÷.�¡„ÁbÿµïW¦{¯{3oÎY'~ì)„‡ŸPÁ>|–cŽÌSb¼Î½ÓœUñê5Kàû ~Ìü�·Ré?•L|„!”E�#K~�$šƒN=bòã &?îÜñ櫤ÆÄ’a˜Ã¡¸-ñf¯ùÉQ?ç‡z1…oåHJäÙÒ�JÒ5Ø ¨Ï¬G�ñ¢¾/ õYQÌ”ü[Ù¤»Å¼=ÏwÇta,Sž°Þñ=Ž0[£«vV¶ˆW#Cz}'zë«¶<†×¯YÑ;ÙÞ¸feIÏ€rsC1Àãÿ耞´52°Úøïv‚:X]çâáççàဿ‹¿ìgpm||ÿ~Ý8¶¼òpñðr papóðsoü‘—Ÿ‹ƒ‹›÷ß) z®¿ìoð“Ãþ†ÝU[zz [++»Ÿ}ßn_ÿ‡¨ûŒ#=JåÍÔO oË~m]AµÛ>ãúÆ9‰\ãd¨’ï/ø"ù½;�ªÍ.¸òBh;ª¯g°>‘6,)Û ÓÑ¢ Ržbs}¤ßMÛ�Ðû&`6"âÙÊZÔZ´úhXäVãHÍ)›V�Ê<ô7ÎÇ©á{…W²‰³‰ûúáa#T oáCÿ æ¦i)¯7ß¹ð:‰L€êÕ’h„‚ÔG–â¯ØØÑY�^ºN°¼øP"¹xQ¨Kãq½Éebü˜�Öiˆ(ˆ(T@HðÂQ�»�»s r z™+ôæš"®m7Ýš·ŒÊ•Þ•Þ×k,~,^EÿòÆñ´û£êšb¯šão¸zÇæe~§¹Ùnk #ÿÊ9 T¸Ž¯úþ‡ŒÜN½Ü!fî#ÛE¯Ç¢æ½uÙ±•„¶óIŠÑ˜ÌÒ½ÌsÝåAréS¿„N oŸ*Àšy_ÃVõCõC3jX[i=FÂ×Úä¹êS8U(!‚ð/öî4œªµà8£¨PÆŠDÉœ ™ÇÌ*!‘)C*sÛAÉ<—)sÆ- †M2$dÈLÆ� E¦2”ý»¯uö³ÿÖÞŽÏóœëœólŸwß7ëÍïZ—û^÷Z{U'è2áÊs㸵¸µ²lˆƒ¤¥Ì?"Ȉ8‹fe¤†2ÏXâr) hÒ&n�‡DJÌÇ$±HLâRSpE¾²ž­µHTÉ•ƒLÿ0²@bºªks W�m�o:ß \{Í À©¨pq•¡ú³F4!¢ÆØä ‹GàÚO´Ÿ¸FV>Q>q¼�Šÿâ¦2?§‘:-,�šsÉuƒáÁ%ãü[�Ó€ÿßÔVZ_ÁàÊÀÜ!f!DÒªWzSy� ”íµ@AE­•â=—åÿÿ.…朆tNCx“syg(CûäÆOzç]m·UßjÖ ]&”‘ÀΙ‰Þcà&é•£ ?¶aãé시øç5õb†°eÕdol{Ì´°¨`|D2ÞÂeEº"p[ ˜ÝÈê�Õ»ø]ä!†Š5Ê}BX‘d°„P …š£=>ÇÈÅȵ@Âx!Í]õ';~´û²€Qv)ŒË�G ýåwicý}óC¿âÒX$V–m§¬w’ÂpbQ¯É[süö²CÄæ‚|î±�g;�² ¼uîmûÛöÓ²§e=™ÞØYCVf°IwåëÂ9T8T´—�o<ßX$ÝÝì“r÷_ßJ ¤�fjuD!†æ&QÁo>IBÄ13Î[�Ó€Ïú_éÛPF ø •Üáh‘¢F9XË*Ã;|[+§ÓöV­9G:-ÇÎÏwhi‹÷j¬YäáÛß³}l{a®œzÒ“ÅÕÌßžW+DF†÷nJ[x~öîžæJò|›Q]ŠðºsøöÏn3;ߘW|Ig&{(Q|A¨L}Éâù„ƒáòŽ×ܦZ:!¶ÔfK�Çñ ß@[´o«•Øõã Çîræ*Ékå>¹L—¸•,‰; …kZˆ¿M�I3qåpÄ7|ûo´•^F{úímÊ^z/VG”1u}?&ÃDDÇr]UõÀ{¶Ë.Z|ûg·Ëîä‹ÖoFZ”–¦ø©Ä-¢ë)q4kMG�d|Æ/–$½ØžÁÅ�oøöwmçåy­ õÂc„­$ÙOR½j ®™ˆ�|ñÁ5j5UÅU¨.PeA;‹oøößhÓ.ì> ™ë/TÏ?É6š+R¡áüOSßþ9íÈe•G™ÌXm'b�~²äÇ+yá]ð½ÝZ²q-òœŒESÕë…î’[íín#$ ¸…Ø·¿‡zC,ŸEpÞiõØ5lžvî>iåêf„úØ`§3´¨•Ög)™¬ Œòé–Y\*‘Æ+@Š[1óF$R$R{}Åe7RåÄðwG ¤W}hÚI C8ìÒl¾Pujh¯h¯¨¿„ìm‚ȼ%ñ€ 5‘› …©³\@Ô».Ñô@¿]FN77difOÞo …7p™NÕõmZ5lÚkþA"”Év~>&DuûæB(emœœ4Žœ�LƒS4Q4aÏeÏÝ>A¨+—yë�mÒñÀ“ “K{º«§«§È1 V Ö‘“¤á3õ˜3±ýíÝðë £Ü®|[¾ÃLôk¦l.e‡3 L‚¤§öTN5={ ›Ú¶’tÀËÞƒÚ@$·Sé³À,¸x(ïîà {Ð� Ó#Ýf€óN1ÇFß=¾œ¡ÞèL+†F(šß”%3 ãF4 Iãõ¿tnyq‘{ž ÉKI' ñg%(ÑèÛŠàð�Vq\~æä O $ˆ ll_\õÔp1÷Ê!`üp�?AK9›ÖdGodËÄêæ—6DïZÞµÌhýù[âêê›…¿…¿D¯—t›$¤Y _ÀuB8mmvI¹¹ž[±îcîcÖV!ø³1³Ó•?I/$È*ŠTP ÊË[¶z6?tHÕnGÇÓa”Ú{Å+Ò®ëi/éMéÅúkuŒe¢ZiþøÙ˜è&ÏÆÖGÅ&J)­º�úW»Eûb¶šuâ_—ÙGËw¥tð†hþ]–NϹÜÌ!l úž­ÀÀ1†ÓÄZÖ$Ø:/ï¸ã«å)®l™U­¸ ôŸ¥û?*ڨĶÄV�~ÞFƒ ûÐvWDs �“jgö|C¿Ë#Œ#ŒÈã�zˆŠMYyŸŒM‚ Ë¨ ö×àRò pH°/&‡x켸öÓš1—c§P2½qñÞ·sêŠM²Úò]èÎXlñ õäÓˆ§ c=ÕDbpå'ÊO0Ó0Ó8æ\ïÖ²‚¼Æ&où¥îûÄ÷ 1 ‚ïè$ªUúÞn]=Sõ¿gŒAF÷¡Â%šú¹)ijC›ó[=ƒÏú¿ó� |ûë7?‹„o7n\΋œ£®y05)wQºSOU#T™£¥28¨×ïy¹íçOÏýÃð ßþ¬vë‰éUA&¿0‡€¬iñs¨$?”LÂTŸèœÌ]ìtY ò!mÁ7|û³Z0‹!JøÕUWßî)›½)‚{ÞÄØ, ú¾"íŠw]iDݦìã~G…oøöwmn÷ôÕÖ?CcC¾ýNá¨Ë…°–?ã÷o2ÙÓxÖ¸Ɇ­„grž»ú¢O^¾6òÑU3¤áKÒI¯X)5Þò7ÂH~­�¾.Óä¡Lu™�Ï妎’÷bsÌ1±ŸU++1Ã7‚~¹N¨ü& e ”(“œÀXGÞÂù§§dL½´˜ßȯޯް¬¹� †š¡€V&àG)ßÙgÐÔ¢¼º·'939s:b£9¤F'¹Ü˜1‰–×TfScq^{wdLATKﺸ™«‰‹:A$½=Ù`M‰µ2›ðd0á»IÑÍÑÊEû‚oLÙ,qí"�ûTô©H„D„¤¯¨ïβ9¤ÛÛ¨è´%œw®wn&·»·»w��ƨÆh΢A0|@mÊ£€'Ù͈ÌÏ7¤-çÂþ­öàï ru³;D¬Ùòì)ç¿âr*†«¬=à|úü ©�Ç�dR:£?ÞÜìŒl¾Ä‡Ï‡¹nt¹¬„†˜XßjÖI]†ìÔYV8-Û5ŒÚšÙBнs÷+²±qÜû¨¨WÏs\jN0ÄFÒ¨t ˜<^ iFÍb°ðpâH8ª•Two4e3eÃs†ßd£VŒ+gÑŒ ÂïB…½A�äF'·¯÷Û¦x«x«¦e!åDÿÚ.dçÍX4¾Z`>¨Õ}ƒK{/ ¹$’æ•©LË ×V‰¤Ã…’q¡þâÎÓÆg÷xM(.%L–ä=gðÍÚ\”1…ee…XìW6©V¸÷cïÇÈ'É'�¨J•þ!7Æ6)q­.“2“Rž%1$1„÷Â~«ýV¥õ‹ ð™rö�ï´ ì¹Éû<~w1!ÏV3Eök¦Xi’âálå¸1¬Ý\Ï]õ¨;HÆŒí†Ê•oKƒ ÷/T¶£†Ã@²Ss°ª1L…!��‹¯à6wïÁFòòÝVÛ72~Œ1ÏŽv¹y$ȶowƒèÍ q>Ÿ-Ü3´gˆã:Dâ dÆÃÇ bp¬íµ ð}Pº—¤ŽKÛY@rEŠ5‚ÂîYñÔ+ôñ:.âé^öu±¼šûZ\Ķó±ÍÕÎúlîÕdWÐHÇH‡Š`‰q,œyœyœýAûƒ–”;i!T�Ø~®–TÀõ%ö%’Z03×$�ΑΕvÊÞÿ×ýs'4SçR¥r„ìËSgm3Šñ[í-ÁïŸ÷(CÛé¤S TE�ªØ»?ÊÆ·ÿ|Ëp]˜?AfyŽOã)+g/űÌë5þò4lŸ*¨*¤ð·Å'œg\7¶Å·ÿ½Æm{ÃAŸ(Õ[I¡rÌð@Eëeé3ŽZ¶¯Ç£=ìUB$ó¬èîˆz×½âÃ7|û«µ†´·�7L›ßõyf3Ót‡îw4LȉæÚÇ ðèî¼hlFÏ så®hK^~|ûg·d‘¶YÃãiIÜmµZjg“÷Ì}Ý­¯ÁóEX3Ô¤¥ù#ïG�²!Êßþ÷š�¯¢ÐÓùi»yù8ûjÝâÑu‹Ìžsòu¨�Š:‘>¢ÆÊ©óJÔ|4¼ø†oµÆ»Ç9%ÜórV,5¹ †‹‡kÌÂ0XÉÃÍ0$&üâÇ‘ýõéˆåðµ>ƒOe\ÆÈŠÕnÍAZ�.å[­õÁÏâÉiê;Áe˜Í�`¸—öïVûÆy8@[SÕi râuLÐNäl#—îÛ�(Ô.\ÄØyä§ .4nÚ'�ñጨ�òoçß¶§éÚ(L£ÿ(Ú×è ð²|¹)e7ä…€'»È�ñ@ñÀ<ˆY+ÄÃëDÑ$@€fÙLêgÞ/~ÁåÁ>àñ©¶0ˆt\àƒa‚¾,\ž†—×ò íØ_í¬@È~áô‰µ‘�¶s”Ûž¶×´×|òæ{d¯ ç©ì©LD´t¤j…Ô&ŽÍ[ÿ ¯¯Tt¯³º³z”šs³s³ ù |¯ôµ>á™´ çu;¹ç¶»¾mµW ÿî±lÉ5ßßmƒêÓÎþÒ+Kn«Â çC…æö\�àΓ2#üã½RþMöJ�×dýXK®}啸ÂJ½Õ¬oÿu™x­d1¸a©µS *>nÜBï“«° j°DŒC„íkâ;±åF/ž¾xÕÝ—ƒq|í¡*.ãY„VÀÃâkìQ™Q™- ~'Þè�ƾWh‹žã€TRñPÈy7bu{–Ïí펥ˆ8$Ì^ã.¤‰V|Z]#0÷ŽüY‹Ëb åPÓý�²#ïòÖÕ[¬¸øÿ¦Í!¾È?ŒhCÚEÐeü”8å½9]Æûr#>ìu2 €«©‰}ûˆ‘žømq Dy [-W†9Ü)òSäÏ�ÜQ½£ZÀãìèìÈÞïý=S´¿Ÿ™jµtÌ¡õ2{À’á”οվ|Öɼ»²$Ûè—‚WOÊ^ËN[>¶}ÅßðíïÐÜîÕ. ¾cŒ©<œÞšzX“¿¬>�é·¼Êo¢Ub]§÷.$ñßWWrËÁ·¿Vkõf—Ø]N¨O2fc¡|:îUv}udJ³_M‘…ãÕ™GAëÒ7W¦ñíÏi£]J<©é�Bå/=íÈN%uŸpó¸xIÇgVN¹çµžiõ;Ê|÷͚„Féls«Á[EN‹‰õt‘K™cF‰/sâtBO379PþX{AÍ©¹,$ßþ½Vhq‡éJ]pô�êC}ÄÞùÜEòMðuÆ€Ï�,+;½îIWëó†ï[­3(~­3DVHÀŒZa¸¾öo9̹›ë¶“=ô©ÀÈxëɈDŽHl½Û}öŸ¢�š5þc­)(F\èž?x Ä']£Ý¨)£)ƒƒtìøFSµ¹ƒhÄËÇ“ÄñÕ`Ⱥ`\§¡ÏOd2©rß"–ÃÙ~��[P”DÏ]BàÂÇ œL5mÏ„|>4YH¸&°€Ë¥çM¼b¦|:ó–»M«´æ-Ôµ)6÷¶ïÐu† † ƒwÚľsÁ?!~ò¦ãMGk«¦À „£›ðKÎ"8¶ ¶‰�™òûå÷+ªHüB±K>SæƒîæÙ]UCbÇ�jMbç7}7=S”¿fêã”Ìg¸EÅ×T¤²#ì_¦Qï÷cK~L h¾n’zÏͽQí ࣣµĽÛvC4Úú..³êf|ÀµP–ٌ،PéñÖm¤8ˆq÷ÚXu‘;p%3lbX=z×ôí¡€8«8«�†�šDˆà˹"ÈŒ_=šã7àCðQ-rŠ ÑÊa'�3„AY}©…›5.uÿÇÞ�‡C¹ÿ ·gß²dIB‘¥ŒlGö};1ö¥²fÉ’²´Ø[ö, IåPö²E"´ [á DYã9÷uŸyæ13Žç¹Îsuœó›ëõßûŸùçsÍŸû{ïNƒBóq ïpƒž—mQÏûˆKs»cŠ^»&—-—}RVWÕ%]v@v�*�js^C{�(%St~ ~Š”¨L¹L9÷qbbƒšéPô=Mû)Í'†Á–¶"b�™yqž‹{íiÐï·>À5”òP^Ï{�x|>&™°'|€â—’³é[P¦¶›1†€§ …u/>¸£üZ[šŒMÿŠú*à°±bÌNµÕµÕ…K�‹;~@™fDj-ì»`7ç]8˺ñôa[açVçÑhÍ´©Ê–ò«]9�¤çah;“có,0>HÅvF4© ׯäý›žð¶ôâךyj”bÕ¬�£ß]|"èíŽø…|l6 <ÔÌ¢—Ž.X*Xʨݨ�øx§Vë:ˆÆ “ âgUt0;˜]û¡J‘Jv¹>¹>_K )r¦ühþØýÍ*2vY. WG.fÆ®yíµ§AŸõýtOþZÏH¤ë቗àrø�•s,F»Ýún§�Á¨ ™.~ø„©W†]´]ŽˆÜ®ý»›YIócNi¿ú¾Û~acêŽKR,/ÌÞ«‰˜‘øØËWäÆº'½|HÞP†kû« �âÙÄC�ߟ*4ß<üJ ÖùË™�…‰Æ­¼D�Þé´Ï„î‹>ĵýÕDoeñ�4<¶×¦9vnP@ÊoÎúL.�)ïã%Ȩ|ü½£‚ßR|Ù<®ý{ÚZ�å�ù†2Sø„ž¦‡Hd=DÉ^»ö� ØyáoY‡¤©)†øß¾I=�kÿyÍ㔽­+‡zaìI½”öcqf¦Æf÷'Œd¯anãʳƒJdܦê“e.¸†kgcá� ¹ø@!é]yM�Wå¯áV~t]O3ÖIC>æ/+�ë¼+’ÚC�k­&~8(æiÿjMX¨Œññ4ßõ‚0ô]?)jÌ+½dxæf‰‰ú©½v9TøxxogŠ“ÐuÔÏ¡,þ*èkÜ5}|ãt§ ÿ `€8?‚å!¥-&%&ÞB«NÁ àÑcZÿͰûبwE"1Jî„àAðàÿ¼î»LÅï’æœ| 9c~¤‘Õb뇧բM¢M¢.©݃Ý ¬^bCм0L|.vÀf¸Ð rè DäQ×ðÔóÓ1lì:ÅCÊu�\¦ì 9HÜèFÀX!kuiwliÅ’V’V<&ì†W¥Ð½+{WVò¦ä�|Í€l ô�ÏkÒNtT™T™d£ Û Û®ƒµ¹µ¹ó‡Í�Ñ÷–�uD|+p[ L´0$_Ýko‰þ�½.¥ªXöçûö2«Ëú×¼ÜZ2atñ= æ¡P±2¦r‚ÿ±·<‰Ú[ž÷–¢»ì-?­‹¯QYF·k �OOóí5ëÔ¿Ïz”w_9ºea¡”«/döüùqK˜„éÏ7èx àoH40E�ÔÉ“øŽ sÜEb¿}w­&j@éÆÐN6š6šÄiÌwê‹Fá‹G*´ž@ó£A¬âŽü¶£tŒŸ?�O•‘�BJl—A+Ï=Ö‘ joú{Uïc™ Më\lÖӥ׃«`÷ ŸM)‰�òØ…�¢¹¯ê7Ξî†ÍîŽzhÊôâÄʼnFê¶S™èdØeØ—–¿æ5ÌN�¨e1áoõD·1¶16%÷µük¹ÞÇæáæá®J·�è3%­l›W."8Þ}·—8ëê®{KäLÑü>Såæ9Åè–̆øQ*õ6iÕ}i-ÀTÙ1®˜ ëø"õ¼€)[á À"©x~M… e¢A‰M@m8֯쵓Œ¢Œ"u �ÄNÒQ(‘ÕH|ÌÕÄ€éÅUG\¶«Jë’ßm # £yi�ÁUPµÄ1Ð)®ãH¬x€5À'5Nll¯ÔV¿<3 å/û´ˆoU`cJóŒ}›§áìå¼Â�ºBÆúÏxû¶ßì®{&B/è[Ð7®„ÉϬêèœ4œ4 … …!·„õžéebºlÕ/„NOµƒõq8--› £è?ŸŽegJ6új}œ½ýËfóy™]¿+ŠÜ…£ÿî§çñÿÄ–øÜƱ,%÷•N[ñ3Þµ#pm;Ž—iU†„ TE¡–éÕßÒ8Ëý )ølT FoX ”ꬊ—Öuo“ß;Ö*¿ž4E��k¸ö£ZN´ŽâzåÕå9—|ßQ3ˆ+õ†2#¥‚6Ìg%MÆ‹’Öw¤"ÁÒ‹k¸4‹ή<Ö��QsâöìÈ %º„Jïø/ìY7Ÿ1]‚‰ÓK éû¦â®ý°v/Ä2ø™“&¥ “ ¡�7|Y�SÏ<ýãüvGÕHfI KL›Á\›Šk?¦Ux'$ÊeZY$¥Ç�˰?6¿YzèØYƒ§MMšï¦‹G(VX³£¬æpíßÝŠ2o”‹ ötu—ÿbÒ)ï™`?Ýú¿m£3WLfdµ7FKš>jÊF»²¢?ãLÐ;aÛo›6Ho¢�©vTr×»a‘Ï8iññðtç Ñ‘¾’QG‰¤¼š5Ã2칉É";')u¦OS2ΓĔ" ¦]» °€ÀCPÈ‚…®`íÅ%8¬›o¹“�‚�‚UñÒðN_CPx¾#…õœ!PzN›�|î¤é#˜”ßv½íê¥Ä€¶†=@)ߤt‘hº–Ù¡ Ú6lfò>u¢fø Fʬ¾²!¯ß° �ï~"h›Ó¡td±?˜æ&û”½xðîêl„|§_M¿š,ætã@çeîe.«%«%¢;9y4]ƒ)ð˜)º®C]‡Œ;191õ;R—Q—=MÎrG?#â M{m¸º-BÌØ²Ú_Ê«¸×ƒ¯[Ï«ý½Š¤ß %ç¿ñÀê‹'t1Aõ.å¡Ò)y‚5±A�ßT§±AòwøgêÖÝnâÿéÈ.gDJ¦ì̹u?/>á†H<¿?¹çºßÆ,x�]˜Ç[|”C‚±†Íreè40Ùž{\ÿb~WüDÄ"&éÓìä³ÔÌ@OÑO�(QFØÌ:º»lÔÇ ; 7 7…×åŸÚÉÐ%‚ I¤@ý6à§gNc CÛœ¡‡­&ÁIºÿ ˆ¥ƒ–$\õE–(¼¬ÏuÇ&"0ëJ—pþ#Hß±·çà�sØ<:S¡MÂüÓ²tÞò i@Þ±¿Ýô¤ç¤ç„o(ËZÌ£ãXåXå&ä&ìŽnIˆÁ„a"ù^܈NÇRÇRñ5“7“÷p~4 :˜“…œ)þ?ÞmãPi>²Ý><ÖQîΧóËI«½žç£Ïúßu~К]'‰dÃ,ùÒ Ê1V‚­o=ך J—FŸv¼%wÐ@(V~¢™Cèà®ýÕ†æZ Y2�â‹!†„»�.1©”Ü|ð0çöˆòüÄ,ëÛÝOy^³ð†l+q^Ät®É;ý׸¶¿Úgºî™ø‹ó “+£¡�ß á>Ù&ˆèˆ—hTd[ˆ½]¸¶¿šÅ±ô ÃpEÿ‘5öÔdêÅæ´äÇyBí3R|›Î²I ïG„H8ût¸oá®ýÕ6ðÕÞÛ˜É×X6v=ÀO&õ”ŠÂ« z~bÂó6�rÝÃÍæöê×ã#´p ×ö[Ûd¨+;EÞL¡Ûÿ$œº5‚‰S–þ4½Î„ášxaï‚@œðs½ [inªýÔØƒ]~¸»94áy•¶ºr˸}÷B»™ßuÍO {ÀñsÖ^»z|<<åOƒ±è.»˜¾G˜£"ºteT`égL4/ª·ô/UX—5ᘠeÄüì’ˆŽÈ_C‰.ŠÏÀf&�k�jO›·œ Îæ)í¿ÓÅ"”0Z$Dú¬ @©” 4óqªQs-ÕhÁh!g €êM$éÑÈyº"©E4WV®G±yL Ð1»—|„Ôä»ý<•'Ų'©ýy—ߦРž=1:�X?ïa¬ßÝÂ쬱w±7ÑÉRÿ4(º{õ÷êáÖpkYzú(PòL•o†¤ÐÉ—=î|^jPj0Ù“ÌšÌ:3RŽ}¦(¼>è¯Ý4ò'¸¢¤]ðy¯™:øûLñ¹�gB§ud­¥,))ê»×ý®¯•˜.ëpâ>4’7è!Å„Wé–¨9`ðØŒŒA¾[NˆÍsºEQ€¶;«îN�£�£¹ÜÝ ;U�E¹À‰tÖ›b`Ê zä®¶’~ï}ªj¢jbþWPì ÈË Üþ©ß®úªž†Dó@³ðú„d/6Isɘ8ùÏ* ®AgzÚ:"l¼ˆîp‹n‹ä½i,/b¿âªÈtá„ìîFx¯œ™93ÃRíÂùà%º„þ„~àó‚Eå —f€rK17³aF«�ÕÐ�±d¶d&=u:JšÖ‹¾»¾·eœ¬3xáê„Åf… ãÚ^»ë•@¡rl†“þËnõ ÙºA¤cúº}Ÿô9°nù›)‹-rô@Ä´V‡òÕÚëÉ’þ|w-¹Ëîšëºòí6ŠC êì6�îz×9rÖ~ÿ™¶_/d¡»Az‹¥’?T°ª‚j°~Ó3Äq@¹À=u¹ Î4LÙ>Ïý‡SeV±(vwN|ÆFÖ˜.`$씽ӡ¬CYMc[Ò;e‘¢PO!éÂϘÇY-@ ²j÷~‘¼¦ßY×Y×ÎJÜÑõ H€ýmB‘~±–ÄŠOñ©fܹ2¯�ÐAâEk_%%Â&¿¹rãöáð7´5­ëGî¿à§{JòFVmwÞe•LM�xfIE¥Ð½ÏyŸ£« « ÃL•wÕgbj¼~G]jfj&•¼È7‘oFy¥r¥rd°-äL•ÿ±»oƒ2û8ç9ûѾ0o ú¸×î}ÖÄ7§q ×€ÆÅ©^ ùZó¡~ÅÇQʱ–ïCü‰²N\ª0�R�Lã_kýR’ ©™qmÿ· \£7�‚æí·˜¶ÄÝéŠÍSD‘sgUöœðWÁfBšq·Œq ×þ/�o¬ëó‚Å÷EYO¤sè¡¢äŒl==5j…¢ì¼“ÒÎQ7œXN©ã®ýš½þ\Ðgü‚>ûsMÐðàåW¾|Ÿ ŽÞ­S¨“9ÖëqK£‰l›×pm¿µ›¾cµy·ÝW³m«íµrOg j·GxÞ²w»óÛ�Ûx7é*Aí¸†kû­Ñtyé?QÇ5ÝÈZšBÀcuŽÝ~ËöÝ{å'ì!sfüdækãW·£þ¿—k•à‰èòÎB‚,†£±Ö*? Aß™³<@ðT³&dü{w åÛ?p܈¤�]B¾4–H!iHvÙEö¬Ù÷�PÈRd+d Ù*¡PY˾Kö±Q¶¬‰H¶<ÝÏÝœù¹g<~ç<[ßï3çõßûŸùçsÏ9×5×\÷’|â­’�ö�h`xxî—K—¡Œãs”ÑF%›?Û·qš½†ÉBN¢ °ßyòk�5ù¦‡ º€ýœ&ðv]=íy?6¯J©T�o¦oµ[ƒ½ÈôXÝÊœ �â6JZ ‡?à QÎè›ÞõKM®×l™m™³Ÿ‚¾€<µ»c@WGU¬P„/Ê‚]2Ó Ø„g”HÑÏ@<½sxÓýØÔŒy¿Ô’zô N¦¤–=¬§›bl§Ó·½yÇ)MIMI¶¦œ$ÒgP°`XpIaIaÀR£ÈmaÐÝL÷ð]¡Þ¼Û(�-‹-«ýA·L·ü^ôî~èLù¬y¿ë¨}O�J´xƒ!¾ßr§™¢ý9S”�FP:m04ƨ÷_ù•X°½$õr=;`íÒ°a¸-2 SV6Lpñ°äÀàÔØ4“X‚ElÜÌœnšMsã·2‰2‰*ŸðçÛJ×ÍH¥ÀqS0hw“D®t¦d“¥/“0“0ý6($ Tºèž’Дùˆ X3ì’ÏæÀFº°!Úa7" ¢‘sf�þøóCm3ÔbÒÃd,ÂReBuý†“àÛÛ¥t-¯ÙŒÖ¨óÌüEÕCÕ3B9B‚�ïøhäX‚iF„û”Ù[³·yßã‚ã‚u|ázp=¹žÐ}tç½Rë—¾Û8§ –f»›¶½ç µ�µ™¬™Ia 5À€7½�¹V÷u®±Ž7•ùų>§ý§?ªYÀ"ÇT:nº­Q§Yv»»çÚf}!¸¥Xv—š�žãðaý¶�f�îçÇœ"K�RwmA“…ßú‘ùà!\3muS)`¨ð[bÿ±HLI¼gX{øŽ®žGáhçI•±Q½¦Z(—™¨ßŠƒŠƒJ¢:7z+™4ÕÓ(Díå>€¼ôôN�ÌI _ñ÷�u u@{T@›º„HPƒ‹#ŠãU€� àƒKµ)6Š €ý›¯?܈ >â]:™eCŽ Ãàš;f«2Ai2׈ü™_ñŽL#Ý^uQZ“l—lׯJ�›�>—*—ª” ” g·šæ§Pµ2&‰w² ÂªÂª Å,Ä,"&ò'ò_ó,5¡fÊì×{h™|ã$ÜÓ*¯#ñ‘Q‡4wÚG‡Î:ÿJ \`©–Âgì¤dF/³QÔ³¦MzWÓ*�VsJ¾Ó©C¾:ÖN²bÕê§ÉêJ5×í΢ÐgS×ÉoÁ²Ü�k¸4üŠH"«ñŒ*bó¼ uˆÑõ𑣫Dq½VI]=‰”#Y % ná¸ö¿×$¨nyDi(0�ò8\AÉHÁÒ–Ì^#q)¿£Ðˆ©ì3á&eE¦÷€Æòy\ûïµ×«H¹Òtù;_TçÞ4’uNÂ[ri'8åp¬VÌ·šîoÔå‚9¸QáÚïղޭ>óbÖì÷ÞûºÈ¥¨ªkƒþôî'qB!øY½\Ö°�dMêÍ$¸ö{µêz[ÊJ¿œŒ¾Ó¦�+NBƒ7…¾_(¸_ßê‹îy„,`Óë­ºóm·òÿ·y¦é2Íæë`��mõ8JE¯<,]·¸ ­v¯ì[ô\IR�ðº³ÓºåÀÏuKЕÅ8(»¦›jhÜÅ›¬÷+[ûõ1-PÈ!F¶1Æ=똟p²¢³» j9©Ñhšt”‘ØD)Úþ]šÛVÉ"É"C«‡·ÊNC“*GÉt¨®x�ÌfÔ�ëú1ì2ÞeürÈö8hDþ´ ÎÛŽ’°ð3ÈŸ"vÆæ• Ã§¬9£t¤\‘Û˜¥Ü « Ü6Õ¹âŠn7ÆM5›e¶�'øö¨ÛU9[ˆZˆìºr•4*È!È!$:$zÐá6}ô%ÐÉ'˜¤z™—¡ÚÜÛÜSÇwÿ¤…—_’_2o¨{ºF‡ËG¥_uºû•C(Bôz壂�Öèœ�Q¶ ¿‚±¯¬båIÒé®Ë©«µµ–Š›`eurŽˆ¨U59SÃ:ÍÇý�ïò?±ÍýÎÆ²·ÕÛª˜šCï/}é§?¹Ó¬Óÿœõç¬9PÁ®­}h“¤oØÈìOÁä}÷›>@Ÿ`?]<ý·TL nïBqâE¡€�`_8ZóÑ/QØ”ñœÊÿ¨´2ÐP's+‹4é2” Ä< Ú‘…ÿ»Ïò šE/hÏОé×1¶€ìåü÷�üzˆÏ ÜvܘxƽcÄæiÀ­úç_Þ›ƒLìtöí=}›}¶ 1¥øª7¾t¬ÛÀ|žTJDîFl�ÙX×˶׶7Êti¼\ª6¸6¸è\Ñ9v=§‹Ç¿ƒ^ÝÅdó´ž j†{†»/¦ú§ÆQà…ÂÜag† 3uPîT˜Q 1�K…¢·(�ÜN3uðçLqÎ] ‡’ë>‚¶éÉð˜ÈyÝ�–Ó籜@Þ>/²Çõ½˜~0�¼¨²ú �œ¿E†ÖH’ƒ Õ“zïf$ÇV¦¦ñrÔo¶jbC#éG‰'µ¾(Ré+ùøYøaÙ�±Î¸ÎØØš]a7œiW¥£d9H5Ö»£±©PW_²wžÑ §i?ÝXWÀ¦üÛ(­u�Ðõé0Q¡´D:ÓÕ!«�~�í=sg—á’áªæaV±„2!6!Î`Ì`¤¤ø>g§²¼�É•$l j5y596p>|>¼sJ…S…süis7j¦¬h~Ýåoí7ì’û /vÔ`öÊ n§�ö} ßŸ>‘³zZñšRoŸT_¿Ê¼ºp$g×þ:­`m"ø”WXrÌINi�jv«(«穇ÍQ>ˆY¹YǨʀí–P\ûý›‡ñù�™R÷ª ƒ×FyŒkn¬¾/ÆW¢e$ãMñóUSƒ´ì•[pí¯ÓðýcÊ]£®Ùôé>£”MOÉžT;s¹›n( çŸÖ~ç›gœáÁÇÚ²×píwk AŸÈ§´EÄHä%ˆF)†šÆ½ÐâZËtàõ¬ý Öæ9s@Y×pm»fépôvSr¾¿J®áy�F©z%!=Ë”xCºä6|ž×õe®úÙåÅ¥j¸öçlùó#xëÈG Œ%7v¥uoye=Où²7}Ùv¾Þ©ØL_9«BÚÔG„×píŸmñì§e3šž®ä=¶_WWJñ­Ý¤÷‘Lýqlqqÿa'©óª†´•"qí÷j|WFu`²T³Ï/$¢ç™Zï]É�k•ü¥�6ÞÝú£I#¡?¾å°»ÉÝ»Ï9¬zdå°¥ìɺýGÑù�öî`xx'²D>@q�Wµ¢ kdÞ -ÌŠÍõÂT¤Ç~ÐyÆ'cÐ>ƒ“®ìe€úBÈÀ59[ ­'�¸ a¦«‚€¹8e²­”š•š�;îþ° Ú»“(Y†¯¬x%9@·¬s ì/\ç÷]ö]˜•E‚>ó¿\©_¯ìFÑâPLÚrùe±I71ÌiÕuw�…÷×c<Þ_³ô¢t�£[ g’©ŒM.•U`,|{Œ­ù¬Sˆ)DMCAŽ*”¢“¢%%•ô;>jŽ)Ð+yLÓ´j¾PvvÖ�|­|­ºC-*-*>SΊ¨™šùõÛgT�ñ>qîEZ_A|‹M¾ífJù¢µÃßï/ú5‹À‘O“Réä,âh¡Lºû{åé4¨ïq3kFÏÏÃN’,r5_¤± ’Ž„�Ý%i¹ooÓu’•zoô`¥¥|ü1â¯>tªœ­%N’>D�ôÄ%‰aQ+,LXýÝz~úŽ`èó#ÞJÅg/|6Ö{wÆTÑÅ�žÆŸÏ�ôÙ>ðì€à6g�„…¤gÏä’ŒKtNçËï4ëL??A£M Uƒ°ID;ûC+tê,{¾*¦¸Rqv€LâìLϽ�rLt*'Ì:HÀŒ�a«ÞÂ(6®sÅ¢£ç_í¶"¥ ¥Xd«ß*È ÑŒ’ü8…q°� tð¥ŸÅ —¾ãp×p×E.ÐuP†’Îs�±×3ÓAÀ"1ÀC b›…@ÀåqŠ%IÐç¬kñ¤2 ØÏgL#÷ÿaä3ŠðÛç™JV°¼½«o rr‰/ÚE!ƒ*�—À%oIÞªÂS“ëíæÃ$¬©u‘þ"=� …5…µ¡Wòdò¤R·1>t¦¦ès¦$<¹3|Å£pÏÑÆ—;ÍÔ¡Ÿ3UïÂ?õFàv<š·VáBÍ ëåILL~tE€ ™(nË@®IL�Œí3û›ù{’ó�yhÌÓ^ØÌ úK‚ú5¶brarIgz¹Õ5#´…»(þˆ:€¨L"/Èl�ÁBͶˆh½o½O9ô� $Ê@ ž½O‹2Ñè.âÝ Ç†{ðÈ¿®y¿(ôÚ”�Þñ6cÅs«­‘’ú—S6�{‹_ç•ÞŠ²ÒØÞ›ûÔAêAê¿4\ÜÕÅÓÍÓÝÞÞõæÛŽUÐÓLå}g¨ó‰çÉ.¥)¤)äT(–+–‹±­p£f*� œ©õaé*Ï]yn7bf]w:;ýþü�îüO´[n9IHgódÅ}ïëYÄ�} =—Ýåp½ÞŒý!=5;éÜmjê—´ÊæÏqíÏÙÆÛËÍäR„}˜®š8;".~,2ù-kxnEoKÕž\û­½á có¸ö×n³¤�f_2¥‹¼¼ Pª´lþjÂÉ ¶BÒxôâ9=Í�‡ý&Ë�æ'p ×€¶èØ^/ÁG¾ÖÉNQÆX}Æ®ìÆ3Ó£g-�…‚u­ߦGŸrÇœq ×þ­X¾øØAÇuêør¾ÚåëÃNÌ¥ Ýß¹ÅvÑ0¹((0/Ãû³ÜÉ©íqí¯Ý¬¼ö,êYw·ž]žæ%;mØpø,—^˹™(ჼB‰b‹i\QGq ×þ¬MG’ÿ˜µ¾vxŒ å¸ð^�Úæàº‰Ø‰ÀòW¸F,§«¹ •øªÍ©?ã®ý;ÚŒ;ü†´ãë 5 /² F‹ä©8þÕwgàÚ_§qZÉG8‹?‰U¿L ÙO””¹ú<¼º·û2ïø=¡µÉlÂ÷ÈÈéüÊ�öv™axx9ªmPR”ßÑ"DD3ûN�-FÒ`²ÑÊ^$¬rWˆ]ÆÞ^ èy¼*ØÅß@€æ¤Àx ¶FA/ÀX”†ÞV!Ȥ묗ôV—Ð ¹Pê|N®~/:Kî;¡m—ÉšÉúT 4^R¯Ž±ôƇ ¦Þy þÆÞ�†Sµ÷ §´%2“D†2Ë\§’y–yÈFæL;œ8¢2‘1œHئ ‘!™2¦Œ™3fN%c�uÖ½ïýX{;^œç:O÷}öþ¼û¾Yo~×ÿ·ö^«úi 6·Uë.*S¶ kse³ ß FlRD¦dåtÏ�‹¦ÝóÙ,¬zäÔm²»ù“mqHi¤´å� ›(¨³Ñg£… ª»”õñ¦/(ù¦ Ÿl *u+uCù÷ù÷Mho¾Þ|­l<½7f¦^ýv9^RV¬ò�KEEë^÷Æ ÷Y•®îæX4ÉS–íw²†ußBVÑ™Ò�ùP§cr1º�òÏï�‰ïö ¢²jû"N½"¿®kª÷\öšuæíË„x&m@eϹ% É©0¼XÛ­*€©jIŒÐp9[Éš¾_S[iÖM€r¾ ÀÞZšƒFË%ŒMÌ÷§.€M ‘�îvÝí2.êÏÙIá %°ArÀ\)¼”_}ÕAr.êbvuvõWÐ< ('ÑrDw øe6È* 7ìã÷ÄF>à)îî´VŠ�&}!7E‹MfÓ¯„¶›œWÊlãƒo©sp{•v^Ýݽ(}zúø�4D$P¼¼¬pV¸— 8û�ß@žñ˜ª?“²C¯oñ�dReR5–à^æ^¾‘¤«Šš©†=ûŠþ¢î#sʆ¥—g�pý½îc@gý¯<7×~þæoÿÍÃãj~ÔYmÆÌ')#‰÷zJªa ­ÕÁwzüÇV ¦KÂq ×þ®v»Àf'xÔ?Ü)0gö—ÃKy‡¬Ë9] WL(Ð|òå½ÛFˆ°/¬×píïjÁÇày¢¯ínøuÍ8Ð$ R¼‹uXð†uÆÝXkJ1¾KÜÎ3H�k¸öŸÚÜd|àÔ2Рt8HZüÑírxãÝQÙlHÞMžÂkѹÜn»—½Ò§¡g£¹VscAÍãABÅ ÷©ùŒ{��X¶ÏF±šç �ƒ)hÖñ¼¯Þ|P"¼N�Ʉͭ П6;3=}Ä“ŠkX)@—vk ÞM*…Æ|þ6©ÆW¬¼—¦Ëvšl˜lÈ?Oë°SV:Ú(…Oœ4 :Ÿ ÐÄß·Ï4&V +NMNƒx�K–€Nµç¡hMò—¿Ì Z`“— fûüHßd0�g�ÉG¯„�Y¬â!‰„žáÊÅö±,’ÖƒÝ}d�V/’)’)?i�Æ 5!5!èèo³™&Â,"†azUµ’UnQn!xåYô³è AAe[5èLýî¼(_åýJjV='Uù¬’Ô^3ub{¦bç[¡`'ZúÐÖ’Î%-jùÖ×ÃôÉÖ6 ÐÛ'{‹°ë‚0¦âÂü ¿¤‡3 "ñ-Zå2ñ$6®iìw·µ™�r´s´~ÅÝÉLÍvåÉ—ƒ¿â|™FA½+'e ]¤¯ö]í{: *¯õTHr‚~0ص ,’xÓœ'ì=°9Ä Ú  qŒá¿ôˆ$�ªÄfŠœe:ÉåÑÊ%�ÌXë¨Â0ù×�·Î�ÙÝÌܦe5O5Ïõ £ óPÒ¥z–x–PPÒè–�h˜>éMnAÅÄ,·RçRç.:øâùâñéÞ”�î–”g< yÝ� ýýBÚs/3íµ[‚þVa€«‹Í90rÁKQ!`ë&ËUþ6P?õ󀩃çz" �ÚøÏwK‚»ì–^eiŽ �i[êûâ-9z,î5ë¬Û—™Ó$J‚²zÈ¿­ñ>s¢–zø¦)þ³ µùŽ·<¡Çe1ù°OØ�2ãøómh?ô±á|HB XéŒVÝIwRwòëñø¦�Âß y ”ö�-± §Å§5´"—¯ w wë}F�Rà®u ?io”@BÀ/$ÂâµØÜ®è—=Vhþʉœõ=.©]ƒ µsWÑ`Ó¹qË8Dz bI|“~‡ÝÝ]Þ-ÕaR´Y‡I®pʰݰ=ö«¸‘¸QéÁ¦¦‡öÑÏ: 8SÚÉrEO;–Ë&Ï#\ædãöÚ-AgýqØÛ²õÔCyNJâœŠŽ· †ãÚÿ}K¿1ÙXütŠÐJ›_µˆådÏ!îìëµÒ㪈"%™$�ö¸x}†-®ýóÂÃÉ`²�œLõüxeÛU çKˆÆÉOGÅ�óùÖÔ¡â>õ¯‡øq ×~¶öÙäaÚ2Øëõ˜‘²+ŒÉŸÃEK/“yï³øïéÝ �1V|¸ößÝÅÖ9#“ȇ<íu—”5)懾1På]U »ò>Om=ýŽ<Ï ×þyÍ×OV¸èóìµÏÒ÷ktK>nYfwkK×çMÈêDùŠ›($–#ã§ä+Ä5\ûÙ"eF´»jþLrba-/ט%ËÝ�óò5ÍsÉsÙHkR©„¢?F,N0N0o%ˆ€ˆ¹€iúxÒ*Ì ææÿ$C)CI]ðpüáøMŠÓ{­ÛdøÈ)×­kR¥òEã½öZÐglH¾°÷«õÛ7 2ë`(±¶â¾!¨&¼Da7Å“Á ÿÏ÷Z»ìµèn¼{Ùb­Ò𶔥çN»×¬³o_†¨ÉKªgpô+Ú{FóH›'3ï² 04 ؆ÉLÞ×°`zÜ�8pb.ôIª M›Ùç6ôâÔu€5u{ƒ�„¶i Ÿìôû7´™Ã(I®ìî€oÔÒØµí¢É·Âuq-q-xÈLäò{á4èèÓzk”òf€ €U õ\ø�òïÒ†¿êÏ�-ŸcãhT¢Âfø“%Óy[$qS}Û€-“OI~1»ßÇݸ˜ñ!#?#ÿ«éýý4PÞ¼/Ôó×óS'ÂtÅŠA‚¶˜¼(éø Ò=Ó=bjµkµK…âïÆß�¿¸ù:S}É"¼ÈNfí¤÷r°®½fŠc{¦Ì,W‘Pqýš7Ðøð{Ì5#Ynaj±ŠæP‘é+«_�ÂôÀH`ð¬Ð,ð1-RMý€ã6æ„<¯¯ÆwzFþŒ<ëÞ5Ò�HóÐ*ùQSÁ÷Dz¢¾ÇÿBDÐÆUߧŧåÔ1P‰(Öf�Ô]T‡BÊ?8eçfˆÍf;`V‡ïÂ2È|YŒyÁHú6tHÚ£�”£yg©‚Ï#ør‰™(+v'mæu/Ç*ÇêåV”š×a(Ä2b9J-Jí˜\ªwÕyP¬!¦€2Ëf¨zÏzÏïe¶=–­€WÀ?1|¡BÍÕ¿¾‡×fåœKåmv&ãXú­�£©{íJ¡? }:sηӭoœ•´Œ\å&Z»†k¸öŸÐÜÔ- 2ÄV³§~KfW(o@ý-¿ú›ø«3�êðå‡i*rösµ6¶sG*ð Œ9X*¨ßý¸“®&*©Å¿öÍ~Kg»¹Ì;[ç$"o®ÍâÚßÓ>vÊMñö'§¾6’Â7/ïxœ »5åîit*…šß¬‚˜¢QÏ´f�x×pm·vNµl¾¥Í°Oö¤åÔVª˜yö˜qBUî}�0uÆf'âõÍ—d'Õ˜ÆBžâÚ_kÅ–¡GmëƒcBkX{ |žò<7”n†ž3ï3¤¢[¾‚ÔS¸Ü{•´i¯sÆÉísÆÌØ:Ôõ^³64úø˜ŽñæËZ$˜Ž_»( P¢Ó{|}ÓžðícÔÁŠÑ�¡~ç± Î~a¨¯°Ýi½w½7XÞüîNõÜhS/QšÏ‡ꟕÞ) Þ¯ãÏwpzezeæF€¤µ@q&§¿�‰hQÌ.:þøÜÿÍ„ ›pq€Mž§~Û4H9Œæe ÷ÁØÔ=ϱk@<­xå:[ó}F­\—̬iwÝ œnmƒmƒ–¿+!ºM¡:,;,­K¬KÈãšð¦@Ö‰˜&¼‚b¡ÒæÒ檟È�ÿ�þÉÉÞÉÞÞo˜ º§y#¤\¢íel& Üš˜鼴מú,SB–Á!­Ã¼ë~nT×ûýD8äõl�ÔSë› ûó=�ð.{šÑHïùwŠú¤ƒÖÈ>jµ7-{Íú©í˰Œ¾ ‡b Œ©EKpqò½Ušð“Îøì]@ýW>Yò"Õ{˜œ¾éù¾¿Xëyþ1�‡Có,6Ï4fã;¥d¤dï{dzSŽšÎ& ãçqJÀUæh�ŸÌ€Ú‰ª ròž› îu�ÌUˆtý,%Ê\ µS¶Œ�Í„) á<‰Dwh–YAË¢wõ 6¹ÊôYòF•bH²á ¼qk]NãÌðÝI(2P™ç˜çü˜ý¾º¢ ¥Î©ÎéÊæÊæQ˜’¾äúǤñÀ¢ªÊªÊª~¤ì[Ù·Ný�ò�ògw†sP3åFΔЬ4u›ñþeþ²à¥ÄˆÕ_÷:SCgýgzÎö?­�%D“�v°E‰³X~b` U}s%¥•OkX�è~иþ¯ Ûÿ&�qí¿»<©-dþÅ­²'Æ-pTÑjù,}ƒA·‚§€ÌÅB²8-âZlÓû›‡ª píçjÃx¦QêvÝB9†ÇZ¸+ìlé%úú¤Æk¶ü9Š Z¯? ¯æË<�‡k?W;–ÄÛWUh¡JÆyµŸû¬Û܉46}ŽÂe9‘aDøX·•”ÛrTÁ®ý÷´Õr㇠UúáãÊŽÁ•"2ª]<Â6üß’è~!%8Õù>zà4/®ýóš£�…™“bN„ ½Æý7‹º¢´45µ×J¨‰Ú�c²³ý2D¬úŠ“ö¸†kÿŸ�Ö›IœÌ)[*¶«¨¼ã×탺‰Û‘¶Ò˵ƒÞ#�¾È\mÍô‰ˆë Àµ¿ÖnF v¶hYåç+ .œ>ùP1+ºË™~"òÊBÔ¸ƒËBF#”éÎ^»N|<¼Õ…¸oPaÂ.Lh«T½0¶Í±pŠDLÎņѥLºš§gÕ1Œ±˜EHoćöE¢mE¿HÅ&‰9—pgózøNò$ò$=tô•;Íþ¯�s4Љâów7#I�šÇÈoŽ"<áÍáÍsd 29�=êëjÁÌ¡(šK€Ãä€v›ù|lˆ¦Ÿ' 1ôÚ\~ðÖ…M‹�:£Þ¦>á ÷Åü×D/zö÷û4L îŽß~SôGÜ�8Bï„£h(óqóqé›Ò7ÏdP«Êó€Ô1mözB1525–' % M¬Ö¬Ö\qÖy �)æf¯6¶ÂÛì\³º³÷ƒF÷š)®í™*›m�‚jv%D _àœ¯ø ÄöÉóÊë‚RöÅÏ›™˜¤o�XC¤9©�|hÃ~·±!ø�¦¸—uÊw'��±f•“;q¡ñº¡H�zÂæŽês C+1Î;XºYºm£@G”AžûIA%GsQ«kWø5¦ØðÌT\&ãÜ@,y½W¾>ß�M9Kó³Ý&áÆg�u:íOËYʈjGwÇ”~¿çdÝɺƒx ÅŒ Pù·óok¯h¯À.¬¾¥R‰¯`b©I‚ÊßÌß"#$#Ôõá â ‚Û‰ýöî<ªþoà¸QÈRveßÊ’-k”%Ùb’­ì![2¶lE²Ù&[¨ì[Idß"ÙI…PDÈÉþtžsÏ3?3ãö{®û¹º»Ïxý÷þçüó¹\×ùœïœƒ¾ /R?/&âã4âmÔ¢‰ñÚiŽþ�®¶S¥L·m›¥{@oº_µk¸?gHy·S^ßOC¬À–î þ¿ìÂEP»pp.¼Í.üpfúÛ¹3fÙ/Z[�UÍwÜiÖù~Î:·Ø˜:øyJ”ø“"ò/ªØøµ+1éÉÇHô¼<œŸÝ :Љ3Wi಩š (ÌÕ!C©}³†M¡dÕ Í5Èz«c¬ÇX£Ø nUÂ�b#ƒ4c  °$늙~¯¯îì¬øNû�öá(Û«%}´6ª�‚4dˆwŒìÿˆ Þ{@¯×d‡+hª~ˆœé¹@6…ýî\„'Ïï\þ¨©Ãüaˆn|Úw{’»O/r¬q¬ùNBdÍBÐqsëUéU}yzŒð¤2�I¶½¦]«[«Û¥»(»(µÆD‚Í[?9S àL�4z¯qñ0SóüZ}‚œ´ÐN»pôYÿ�ž�þ[TÍ%‹‚Ø´×êM9Õ\ˬZáj¦,¯âKµwÑìÍö3B”}�g{â–Eê€k_+µð³uÍžyÿ*Øè(9#~�ÊBaÀ•¹=T/|hˆ9¬nNÌz¦Ý Ƶ_ÓÎQ/:ŸÙÀ7¯N£¼É.fßšÓ^ëzêLv-“’b|Üs‡Ý3ãçp ×þζäh#OßýÖy4Rç‰íTÕ&y¬žæ›Ÿû7zâ?{{¾j©› Çë±Ú‡kÿ9 z=»>Æ+þyLŠ?w s"¦Rê™iÄrŽîxÞò^Û¤šß,ãÇ[p ×~U{çÇgxSŠ$Õ–?4.½éšÿò7'7–o‡éFö¯k++©S{J“­Bq ×þ ­2£4!¼‰7è„qoÆ,¬›^œŒšZý‡D~EǪÉCÞF¹•èqü¸»¸†k¿ª¥„¨+¬Ô‘y-LÛ>‚é‰_Ù·zš–L^í áµ¥xé«dðYâ’ô]¸†k@3È`kKgˆUžUÒw#hN*>EùÌùîI3Á ùx/h=¯«Sé�Èù@ºÄ�l<�kÿÙÍ=;Ñÿ‰—V[GþàSÝV97üßé=¡ÿnK…É^×�”Q[}7”W7¬œ%r…ý'WS®µÜG²´`Ñ{«³�owzÆÉÁóKª~„ŽšÓß årÍkÃ6~ÒÒ˜Žæ�áMØQTØbê“Ͱ¤jŠ„¯5¡¨Œ5<ÇÆ�yÉ à2‹°ÚÊà‚Á…Ð]½­ØQÆË‘ X‰NæÎ ‹ŠóÝ·ˆ^8õéÿ"vô•TÃÚ™ ºá3˜Ž¤6°ÿXÙŸ&„ Í;̾‘Ú£ yÔhüÖŸˆÍXÃ`Õå½�ç¯sÎ@Û®M�¥$µn�òLz2b1½’ZÅôÂï§ZD­õ@Tãa�J¦ë!¶Ñe&d&”ÛâËâË:ªGgDg,ª@ ïúù\½wÌѱšÌ(Óàµo§™ø9SAæÞÓèrÆLíQb9²˜3œØH‚19Œ¹ó^R� ¤ZÕ”u>í#à²äW¯®,Êõ‘ÚHl(V¦<ýå ó[­7­7�&±ß*¾å}RÂh‹ `Ìè)Hyð%wÏ�äJ^^ýIPë¨^©ÄÄrQú*’« €k êœÛ„�Ó'À¡ÏþûÝüAʆÞ!ëþÔÊØÐ—Óèì®ÐòR=J*è?Ð&$.Z·½“” íg7Îî?ýµFs-­Ä1‰cüõõçÒ@LWŠs½Ð]Yº²Tb/E*E*mù9ùsòpÞô3"p�øví›Gh~¼ÍçRØéŒˆÖâFFM™ÛÕœLD€ �¦ñ¼“Æ\ä™dv�•Ã_ëwÈ€ÇYŽô“ôBd+Vì zFD|›3"u”˦™G_GWrG­²ÝµÙiÖ^æ]Ã8ºKev³(MB¯!Òë>ö9e˜Þº½¿ÈlîT¹IÊ� òé�@ÑzHðI³t·éCl® @ïh–%ÎoeÿÙþ³%KÆVnœ(»Ç�*n>'„5±”�NïåQ»Àñf31Uäƒ4Ìð@£ÔH/£�Ç~…ù·Ø�³ K"Åž] ¼zs�²«fRØÐt¯ú’¦×¨¹&ÈÌMCßwtì¹[š»=•&(^ÐÍ ›Â’ <›ƒèNà�Àã—à—ÐU"è² ]Äò—ÇÁGWúÓ¤áÌ»™w/èg(f("�q!gŠç�ßK²(Ö³n6Ž´<±çV*b¼ÓôYÿ»Î¤^dR�&\Õ‹q aÀßøÞy£ŽV+ÿÛÐó–sU¾T…gcäÓ©P-\õ¿Úðn])ÿvþöw(�¸_x‡'Ì…6[±°QWÑ^~.„±Ø/1hªó®áÚ¯jÎ,Ê»îú‘è÷3³m~8=3:Å0Îø`,ý~ËÕ©ðªdc ®Ô‰4Ý^h;®ý^í+e(çú˜ÏNºv̳ Ïõ]á×rGùvS|#?C#Ó@àœÚ†k¿W3àE¬j*¸}XfŠ‹Ù7WS”.ØuÎ0\õ¿ÚÞ-š9ëÐÁud"VÜ]¥ãDå_SñÐïº|©0Í>PŸ:­ Z IUÅ5\ûÝÚME�(I=é¹·%�ûoÓ±ÉPõj *tinHduÍòݪÑ59ι÷wjL_ a¹K†£N^�Ka:õè»—©ˆý‚}ÆËyI!­%+2;í^„ xx.ûò+ÑÉ幦£ôW7‡ßÐ…~ÐÄd“E* �{”Ó!8…I­Ø� @i˜¯ �T ½ƒrÝë^*6Ññ›Ÿã­Ï·òpñpa¹1µUwJ’!M;ð98}‡‹J„ "•Ò6ŠÀS§6‚ÇAú. Hk‹I�|Y/’ÄC€ÿw€Eaa&6>ø€°ÍÅ‹7Ažªò3|µÝÖØ\ÉW a}|zCù{\�® •0ktðÈö^ïèjâjrB¯z8�˜µ˜µ\Œ\Ìù8VÕ�!=¦ã||žè_:¾ÌÕ<$xHP MÉSÉ&�‰¾g|¸qÑ'F½ßÚkÔ`­X—vy§=ã’'‹ ÑIFíÏn v•³Éæç¼3�‡öuÀKúÌ6àƒz§ÅæØñ;ÅÅT –ÓºÆFgíÛ�k¿³fÊ]ƒyϘmÐmˆ¥v ê%ÇweˆëÛœácJyþÚGOPåN˜®áÚÿ¦q�´}�5X'ÊN*9žB¥!€®Ý»Ý;Ù‹�œ�\Y‡Á3‡‚Ñ÷èN$ kö?¬�RvK.N÷¼Úö=WÈ=zÔf,ƒÒP¡Ÿor>cµþÛLSý‘Ö‚¼>GòãÚ—ŸB"GÕ;nÂWiÒ-;eccöüùýè6{tÒ5³ÊD¦™¤´ÚðD.Ým÷ûÈYýy–¶§Dè–Np£¬Œ=ñê9ÆXUü“�59@„\èÙú Š.LñÚ×GÅ"Ôázoþ™VÝF)€s´æÒ[Íí›Ûcô=¸Õí[(�^ ÕŽê%NÇD�nJ¬Õr žÅ9Å9Õ±€˜€ü³‚AôiW¥�”ò €¼ñ Ø,�V:ð jA6b™ëZµ»°q#§ð­›��Ä7©©K v÷rÞÞ¦{w*$rë°UBg%:ÁÁ…‰ò‰røÓ€�—'A켘ÆyO¢S«Q«ÑoŸ6š6¢înnÌõÿŸ�§Ùß eö�“htM¯òêÄïŒb�í´óDŸu‘årÚƒb‹u”>£âò�ß°Gåý•6á]C§z\Ó1)¬ë<ÅÊh;Ù²U«ŒÃ;„z¦Ç•]¹Ïº¾KÄ‚}©×p hø*�ìDVc�«‰Í‹.ÔK~Z‹øÈ¿B÷Æ*QÌ¢»7�êc¶r#<×þÿ59ê[QÚÊÌG=8+©˜(ÙÛ’¸jåîØ?é(6f.ÿJ°IU™áݯ½ŵ¿¯½\éTzñˆölجÆLsÓ¾® §åa]„c.÷Jå\«)y“ž€ÄN�k¿W˱\É»þ�öÞ›äå3çgÕÝëôÇ ;OHTÔ/äÞ÷J«%€ ×~¯VÓ`CUå—û¸/ÀôUÿ5G©Á›R?.<½ßÐê¹×›Öùô�þ›ê°ï„jÿnóL×cž~¢€cüL«?5]¼Úˆú}‹sàq ]Å&Qs±V�ö{;Ý·ˆý¼o9Ö§¥†î.tÒ eÜ=£–¢ü¨l‰3&á\VRÀ˜Z·}qçå#˜ÊJ;Òo¼lR×a®(§Ž¸¿Å†ŠE# Íy«p«#©GRw[=ÚªUÅôÒ)O‘ÿbïÎá^ûŽ#K–B„H:²Êž%[Ù5’Ž5¦�=BY³VB¶&K¶ #‘,¡$!ÉVŒJEÙB¶��ÉÓ÷÷=óÌÏwÆñÇó{ú�s®ñúï}¹®ùç3s]sß÷Ü__@¾È© Ñ»ÕýˆØhÎhÎÝ;@þb ‡'š}@Ùnôñ8B÷!3û=ùψyä 8wøƒÄ|,H²Rð¢¨w.91 É�ý¤*ö•_Õ+Ôn³—£Kcmw¥�gCò_É<¯Vå™ì™|'òN¤B¾~�´—œÐ,�„ ÔÔ�©IÎg¯Ÿ½NfƒŒA¶OS @g*¯" M�KRä¾â�Úl¦d~Î+ö¥ …€,#ž\~ÂÌ�mÇœóÔÍ )ŠÙ-´¢R¨e=Gz¸Å€è¢ª9¼§j£.İŠ¿0yõЭGßAßqE¨hq½F9<¾\…[÷DZÂdŽ Ûö¹¸Ã,ï‡={ÀsÛ Rƒ‡ž%Ó„§àȶt*öô~'Æõ€Ï :�í-èVc¸MÁ¼úGbTo47O}IÍHÅTµÓ/“§‹¶P³=µß˜È*§àþøýñR°*á’F(Ý/º_úÈúÈrh¶(�¾Ø¢µÕæ‡ÒcÐcè¼ZfZfÊN/ù]ò»½‹æ^躟N|ޝû�ï‚òHåÀšÛ7[÷¡’ã’ä¹ôðËw^J•êtõ¯…Ìåº,ãÔéŠfò*NÓÂû¤‘uÖ2‰ÏyÇ$Dþü.© Ö}Æi0/ñWçkîw—ó(W?ßlÖeÎúP�@T¹Ý¼xáÀ�[„>¸½$üpÑðº%W‹±gk-¡=µ÷€þMK€\–ø+¼%x81VäÚ\°õà(8ŠÂG||=»‹xeÿþ3™±n¨&/ž�š ˜UtÚ.´½A Ô7 �û$Ryó`çaàñ$À{§ðMb|ΫËþ*H–\˦SØÒÝ+Þ¼®!ÒÅCK ‡Sl(dF»À1¤öÏi¡‰Õ^ñ~N]fE;´r2 ¾W:ßÉÆ‡Ðâ“3ùRz:yQ‚ÃHj¤öWk3vÃL£&‡TtÔhwt7~nÎJù\l [¹ë*>è_׫òÊœ®Oj¤¶Q³w�nF=Õ/A^|q¤á¨üI1ûŒ;ê…XSƒe•—EAuEåqRû{¶Ód«onëî~ryKv'Vø±ã4_Æ]΂ótƒ{Å xþSu›àCL¤FjÿiKPÔÊm¾·TzÇeõÄÑŒ�ºµ]Á‡3ìŸ�eÜç~Ä]«ûMùªò ©ýµš„ç )¹ËD•yê}½çjü6uWì®)Gtx?>î�iéC§Öö~îP©ýÿ5©¤çÙBò:'W‡¥sÙtÕk?y=¡¥Hx‡82#—éù#ò…`’KCõ<©ýšfiøÍ]ë~±Æ€«¢†ÿ‘\Ö�å¡ÓÇ‚Ê̇É2êi…�'ûg6ÕH’Z�då § N‹Áô�‡Q?æKNOuŸ½Â]»'·@ÒF|]Rq.°åìÛðùÀ¸µûƒäddÁÌí P[òE·á%qåÎóŽgÕÙ¾#tCPŠPÜq©Sá U¡Û/�nÁÿƒ×'vO‡!I‰z·%€f°,Íz0O˜§ê^÷[ëEÂc–Ç1Z5r £Ø*@Ì«ZK¶SÏÏ㎕ÞU$ÜÓí5èÆaò Dœ¾£Ù x[«}³ôh%ÎæR� x“2”î›®jß{û7ÍYú›¿9·–£òI=ec‡zL]©2_yÕUÊ_Ê¿´º´êiÉ‹¦5$ «n‡êöêö œKO׋ ‰ Ù2Õ׈›©ñ?ö©âãÅŽÓÒ«ŠÌ²…ÈRØ­Il4Sp+GWàÿ™þ˜Eàȧu¥:*Ÿ6Aþ.{�ûï¬I"lÙ°ó31s[¤ö³J0óÂ&íä$„éW³¥mŒþpÛd¬† ±Ï:ú -ˆä›ã›S6è´W –âq:ª E)L)L/ɓΓ.Ù­¡©¡9¬²¥zv c\V%£ÀÆ—i—ÅÞ…S% ›�€~î¾~Òôt—ï®Ýoäm¥©^™<ñ×G›“Åð¾�xMö´Á^#ÕgéÿfDv@<; »ÁÙÝkª¢÷Xn5�td× åf³®Ü“c=Ÿ5ýnú:žE…MÆž­ì˜l-B%;Jbž ŸƒSÇŽ,:Ç]¿ Êâª0x‰'Ê ¦7ñ �2)|n½‘„‘„‡^›õâñXªpv쟽øš6‡É(çLÄ)�ö×§Ô§|f™^-�–�88:ôpxFŸé2önÄ$¦B™Ø„hóA&BÊ{½h9ïó .T–˜�.¡ AGŸ£¥ØÎryÄic, «i«iª… ?-X>  G—Ë„&e€r‚ ¹Ó~8ÖÖ7;±R¾Rþµì¾ìþf1Ä7Sá,àL­ö«'²øo)õ¾|Kš2qÂk³³ÐYÿ+ÝÕ÷+Z˜waú[”}OÃoªûû¢Žt¸6œÈÚÅ*°í[4+k9k{ŸÔþžmèuõí …`n_ë«nû�Eªªî�C½ç½^’Ïüólk‰Ë€1ÝõÆ/Ó¤öÏnÛÚÏ<�ÊÚM“s¨Ü\ºòè‚íãwwò%†¢VÇNE"]­Âm¥H�Ô€6ëöºAM‚i¥]€¹jw­ÒÙªËE\6¢šv”oÊdë[)çÇU¸`%_MØI̱ñx·âò·TfÛ²añ¢¤Fj×fzXr¿£…ÉõDY{%>:麖kõ#7G«{=aöcµ°²£µ¶¬“¤Fjÿ�6îÃwYÝrw“ùó™â|ÄÌà#Áÿë»3HíŸÓ„t�ªy7Oœ§4úH“~wùþõNèÚnñÓˆ g £+=:n5s„ l¶¶«HNFfW¾3êj–@&·®tÄmß9« u÷û\ÎשUÕxÆBÜÐ d »}�~GâMrP$ÃsU% Ý˜½ž°”°”Ø¿µõ(žàUâŒd³:*fC~9\õ9‹äjÞ‹¤DR&¯�à” ®Ý�ê@+Ù/ã´¾ Øe cxàb-~£”äë@©éLôïŒÉ5F3jÛ«.mòú-;•vÐuÅåmìëâRb€G€‡ó9c—˜A(¥b¥âfÓfSòHt­-dÿƒÐí2?U(D4":€nEmE-,[ƒ­9 Ãóº�amðl�ÚgÅÌ©}¬‡C2 ´òœå](xË%á­{zƒ)‹`¸z ô×sq9.eqo=áxTä8 7¬òª˜z�Á+•µîÐýµ±R±RÛ¯ƒ”Ü@¸½>í’Î|œq]€ Ì7]FL'àótv¹ˆÅìvKê#YbÐFw¥Š—¾Ì›RëYS¬¿·èDÕûycmZbì†1†1iÛ*b « –Ú—Ú½K½K+ÔŸÑE�u7ÚmÁeÆgƇ+zYô²Ï ë�õwr‹6†ÎÔ�‚gÍËöû�sƒ,á>«7SJ?g*yÏ”$Û€î0»c­ºùý¶VqB‚¼5ـ㜲·Š%/JÙÔø &+ (>‘Ð…w³wØz2X«|Àª[Ï×õڌڌ\sô'×Ûû/³ç›oÿy€]¹“#ˆùmKVäà W=W} T ¨úy‚J”ƒ^àðiÆŒÚ7÷!Æi;àÐÌ©ïCAÍ¡gú°×"‰qÈ4ºüŠK÷ÕT «bjËÒÈÚX'K©üèòèòk6 ¦\¨üÓù§»»0˜‹dï[@BÜ„Êf` Ê—ÖDÕ¡ê.8bj1µ7ô®ÿûîÀ¦?îSÛ¥jœ£nÃÒ4=æù0ÌÂÅt³½1èççr©ýõ[¨mÊüÅ‹÷oL3Öß=l©Òa¢ �Ñh}v-¢+ôËÖ*×o__�%5RûU-°Aí,Éëvo\‘aº��jEÓýt¬NZ±‘ŒdÑl‡Ïj¤ôeêVR#µ_Õ®q[ÊÖ9û^y;æÂ†’ÜÑžè²Ðs¥Wšº3Ùw¹�ˆ¢+úi{<©‘Úßµù¥Þù(|Âì8‹ËVÚè²óØî_ñì¨<¾L1¬hMŸ½ìDA±ˆsõû#ÐïFû¶Y=³ÛYŸ¨5ò@`ìí‰m›}7RþùÝÈ2Ñú TwäÎ[x�ô X¹[µXBì'Ž•æ©�P}r›PótÚmÀ· ºÀoƒ�ïð”ýÂÚˆÑÖ§1øiTYÏ*Æ*†Ì0wr=E<›38Á k6§^�I`¾Tš¼}Æ*�.�¾Š1e€š­ô^ƒŽ¨ÏàÄOxjþŠ#Ĩ.LËr G˜A¥ó¶û2ÃǦˆ‘ÿÒ²¬’Œ\¥‹íUØÎ_¢óüBá$uùÆxÈ™3øªøª&%Î)iB‰‰‹þ^å‹ÕdRx.¥ W…SùYxYxùQŠ¡ÄP¨$‹!èÚ’ÞXP©Xº‚&ôJäëó=›­-A«Ð{Ëç†ÄºŠí¨wòÑJ„U¶…™fÍôX¹­¤S“íDüùÚ’äkKsï˜íŒ¤“G ²Yf§7›u•Ÿ/cváÊé}~ ^,—íCcódÂBÆâŸÍÓóvžÖ¿òâ+¡˜ÞI¹PJîbÇk)G'þ‹½;�†zÿ8n)e_¢¢r¹"ûN”¥±EÙ™lYBvY¢ˆd+ ²ïKv™²eMv"eÏ�ìD¶ˆ¸–ôës>w¾ó33®ß9ßßévï�Ïã¿ç?óÏëÌ9ï×gæóÁ~5·ë¨Ù)úhôѰ’ Ç�Ô´QØÃ‘¦GbÓUC„×@°—•tüÂ:¶:¶ìn�«ÈÇB? H³á†tW š ðÑ.ÂFÓ€à7ðß©¦ôQ¾)ø†M3) Wļ¯Ó¨q5¼°i˜¢ìӥݕG­ÏZæZæŽÝ”x`�ï¬ï,™)™©všj=D”‚I#àt””ÇÞÛÁì`&Pþ,þ¬Jå»Kè3¥ÍyZø^Ý +­¾á‡Š½fêÜ÷™ZŠ;ëƒn˜ÝP%”IPz!þ΢Ô0&þ g€­Ú"ÃãÀ)& Èx ¡ ò<`K=ReMãlÒtÚ€�rá�Øl‘•M��âߣxþç&|>à8?¢È\eû¢˜Óíàãàƒ_ z¥5”Ýe~jŽ$õ` o˜ÈÂæZ š–a?Ì”£;sþî>òlÊÎ Ìi?œsô�,A„zäŸkà?Ó™Ü�êj¤AgLgLúád_+tFF™ö™öñF6ݺ þLz¥èºC»Cå�D[D[È�ê\ѹB—°ØÿŸïOrp¦4S¤¢ÏåSì\æåwýß r·„þýOÜJ¹™FòÄñ‚‡’ƒgÁp®ýÿ· ÷©–’Âéæš|ÐbæS¿‘på:7úËNBíŠå.È%ówÄÆé2lÙáÚ¿¯qÛÝr„¦ø(ÈÕNèÿRÝn)­vý’]ËT¤—ƒR�d¾\̧¹a˜×pígk­©ý�·Œ_½óÎ;~èm0ãuý8D$çz¹ìðÏbÑ}·Ì{#ÍyùqíŸÝ’NoÚ=�JMäîhº¤¬žD³0ü…åYU ¾ÒóDe3óž¢þG\û÷µ»¾òÂÅŸçì?ËÆ8Ôk—�o_ÍíÓ”m~òA^+쮘‘bÊgJ¾C¼E¸†k?[㥱{4+ÚW³ ž’TÔÈÉÃ9qUÿ¾‚×Mý ¨Pƒ/ÂF›Ò2\ÖEÐÏúÖýù.‡{å2 )iÛ½<ÅÛ÷:ëC¾ŸõÛ¨bÛÐõßo™A™Ý�¼ãXç¡�iÀo@®Eô^÷ ¦Ù¹Š€Ï×1@þùb”/Å­Øt3¹Pb{i³“à°àp¨ÒáNRŽ(w�„ð|ç'®ÙU‚îÏŽz™é—öåhçhß„ƒ Aâ“•\gK¥‘­œñ€Rˆn+6wM~Ög¥íAÞ�DÌ£]V×±™!L Ò8H+£òâ äa]#aùG!ÞñÝyŒ%³&³ê+f½h�CGœIœ‰‚™j%g#•`êØÄ[A\\bûövÛ)l)ìí Õ9ô]émJ¾Zê´ë¶½L¹Õ¢á^»Rôç¶ìƒTØø6ú ^œsõדÞX»¹% ,¼Dc=Í�/e‚ÿç»Rþ]v¥«_¢$âN-Í+ZÅF¸Lƒï5ë2ß?†YñV%ºÂܘ$µ ©_9LjÏ4Ï`Zy! `î7¹mS¯�É%c Vxòà8wÇå0çal4ñ¦Â’»w*[/[ïk.Ú©P%=Éõø„ÄH7hÍLŠ7à¼+‡Õ÷++äÚ"…稂–o•!]I°¶.l<õƆéÀl ~h@tÛªÎT¿ý26‰.…ý©©Žô‰vdÙãæ] ‚>|¿MíÎüá ±ñ¹Æ÷5”OÑ‘é‘éQP8ŽÌ®¥Ô‚ò®a èá>‹Z ­nT``AÄŠ–‹–ûPÓ#gŠö�ßLµ›_GÐÞ1Ï<‘át,�¯½ú¬ðé},ÙqtíþÖˆM^ê:ñ†=®áÚߡ݌oZbˆªeMNaUáþ2õØ�üÚU±:ñ^UýåDþô‹ 7¸ösµvŸ“ÔUø°ý¶WUcòz�Ö‡%¿ökl%¼zÝz>ûÞ¶„ôC��9\û1m¼Wašç}JZ�°� ¾i�XW^ ‘çôM/öGt|&U¤4-:ÆõC¤Ë¸†k»5 håÂëv½~ùSW§·ÓN›æN&Ô b´‚U�·9’n~}AyJ…q"¨×þ»Vr~̪ù~$¼žåÝ>ŸBîR=Ù6ôsž½©©qu�ö|餾Éì^ç Ùïç ^7}%t[1x(û†Ô=+À l>bšãåÍ0:8ùýÆK€‰Í´¾EÉ• ˆ>Óv%R�¨›\fb L˜3`'::qëì�®ò¡ÀË�&Š�V8ÓþxíÞáë7“.o1ŒI™„˜„Hꀔ7A5¢Œ B˜6’åÀ¾@)ûÉa'Àš[ôCQ=¨.Ivü÷`<6]³ìBüëñS]ÕCø´ç½*Âcwg Ú¦Ò¦2ôtp%’]º÷w·Óo X ¶�Ç!Ö—˜è7#´Ñ•<*IZG §„#˜Æ¬Æ¬œ(ý×Ñgj„�Õ3}&*a½O(h‘jcx¯™’û>SÂËçcшŸtE‰q¿!¹nÂí®€‰PÓ5 Æ ÒOÛðLsŒ0ºÄzðQÔÞ E1æ÷Dl`qì&€Ã} ž;¥™¦™ÎJ‰@v‚’£Ø =;G8k] …í�t{^Žï9ã9sȤ÷Ô{ÊF ¤×ñá’Ì" �pV¬%*aÀAªË)‡&A›åÁ‘©$úóØðùþNÈÔ‡ùq46“Ö=°J¡÷dw«‘«ÜªÜ e�î#F§8¦8¶Í¾ÍÞ¾!•²œrìÆ4ûΧ�F„FÄ�Ê´¬´,kàxàx•¯kúž¦UH¹LÓÛЄ_øMRÆÃë»þv ¹§A>îæ¡a# 2žM6_7ÚPç÷¾ûCmIõ¿¥óz ÑQéŸþó=�ð.{šžÙùÄövŸ©º‚ Mæ{ͺü÷�ÐËGwÐT7 ¥Ñ!�Δˀ퟿q^ø€ÛâWËeO` ÈY°Ü|UìôGItæUÇ&S•ÕÐŒ_L²÷~îý¶GÈåwÒ‡2–…$wöwv@“£$/è¹ØkåoÁ:ºk" 9EЩÅ�mPãRB& û`ùQöElë?Ó³Ûÿmm"!‚j¬ëd˜óÕ¦18´õÊ£7¼#:Ä—ð'u�L˜¦òŸ[ĵvƒ=m,b:ëVý[¤[À˜’ùòú—°>E/~‘‹¤$=Ô>êU�IM®ý\mppÏ8LÕºOè±ÞÖ‰×\UÖVôÒýý2“õÛ~l%ûÞ8ÇSÕòf <ÁµŸ« 'Ÿ$"¨)2ƒRrX¾ç:ã6E:ý¤.[Ѳ‚Ȉ]ÈDŸ¹ŒÛrXÁ'\ûç´õ熉Ÿj tC&Õ”øïW‹È™A«Þr _ã[M>z–‚t�½·'bP€×þ}ÍAÈÌÄ–Qéq¨ ½ZL뢶è‘Ãõ�öetÄvòsïåˆYt•¦ lp ×þÊv䣥c®LÔÛâç]N¥ã�FnÔíå W7ÞÍZ‘³|“íÊÛEƒkÿ]óˆ8$|Ýìõ:o]ÑÇS‰J9軜—#Í,¹ÏºË¨|å#ÞÍGíµËQÀÇë30&Bwî6üJ¶¥röWš^½}¾˜îßcm|¾æP\8ºŸ“¿—§<àÆQ¿4@‘MÊ ŠËÖ«ƒØ4¹â~!’¸S›f›æC2›�B5Q~F2¯¯ÖØFAï�lL�ãs?å/l.lÇ�âäAñÕ¿&€¨î�J õ´Ì4„H 6Z/¯a||üœ "DC’V)6¢·­Ôñ~U£Ÿû®2È­×õðCêîzß;xªªvGxТ;GtŽHkFkFé”8—¹¶…r±–ä�‡|_4¿&»$¢q@™úÅ�ã 'j1Í©“S†>kËì�JŠQ•ž`½Î„ s¾09öìÄ5Ã5Sƒ'Ú‰Á eæ"RQD ë:K¨ü©Y£„OtiAGA‡9¨ÿ(í¢3 ˆï–*Ò¢ @ñ@.‰Ã›b2€)ç0‚ôåE$wícÉ@l’OLë8Ašª\í³÷¹"ò¢†&e>e쎊1Õ/çRÎ%Ç­ó‚ªè2Ö2Ö RP©LC"xÕ(QÓøòöt7ŠoWÊOx RN´N´¾4þ~}¦¤¾xß �¡m2(Kj•<(¸×L)~Ÿ©±mc/tD*d($Û㯙:¨}²Y1yfë«™Iª•Ozaú�AH˜°ú³¨¢¬dizacH �¼›Í~¸“w�wÍôæ;AcQDˆ�Ê$ŠkLÓÀ½8sÞ‘Mó#•„‰r‰rB_AÉY`etÙˆ´]D:e øR ˆ['½‹ �¿o}bT¼ÜÉ”EX… Ū«Ïä‡,¸V§qwc€j™ÕÈYãàîxÝßqq•r•ºÃ®¿ÙG'˜!˜1ñfâ ï…;Fì 㓘˜,¨EÐÎÎÅPpQp±Ÿ¦Î£Î#ÙV0DÎT(8Sç FT¯poý¼Õ˜‘àÛkŽþýù3Ý�ÿ;¶ˆ:có‚˜ô×*-ˆZ¶õ_4B ¦Œ¯â*4 iÉó| ã+W㘊Ý“:àÚ_×*Ì}lÜòf^ž¦ñ1Åû†=²i5þtéa½JwD,ÉüÞF½,!óóRvõn&ȶn?TpPpˆ,!zc‚,AU­*…ŒÂŒÂŒ)ª:¼:œ0'K>K¾§Óÿ1òw�Ø6íÕ�³8”õ«ŸrX¥÷;#rqy;½ú�§K櫸?B¶»¯L®kÌGÈ?'<$Ã' ]ãpJw�± ìÁ/_w ÀúË3"{œqƒ­¼¹1à åz¶~ô+lv¿YWúý3„”W� ŽÛ�C ¼”e*ë%­*B5,|wÀrù^Mi8x.h·Û¬V^€¶þÓ÷³c!|�Ÿ£C�ÇÛ7]Uß-y2yRp îænôѯ}á–[iòÚöx È_Sqx·«üi h |Ÿ�–ê@¼Ÿ/��$´ù]áÀ¯£µ D …ºÐq¹ è7•¿_ ú™kó‡/6ßt,9žéŠ2 ÷ Ÿ«áMuíò1õ»»·Íþ)à‘únAùÅ.d¹¹}}wÆ #€%P ¼8�LÜEÜ¥…›�›oÑ8ûXö1hbO2|¦Øþ|¶í„\ÝÉ�¦¯C-o®�R+àÝó[€ðûùȳþï:?hJ§…»aívšhètûWÇ�ZÊ‹9‹ßŠ[º ¯ªp&K¿ýA2�¬uÓ0íï6È=‡w‹ú�_N=Âð i¿¥ãF™!—× 'çë^¢D[èÿ`ª# Ó0íŸj7N( ÷#48N¿3(;;:ulœöù�Ô§-.S!•‰&çX“'Rôz´Ú0í`µ²GL[?T©Øæ¹2Sµ£ßiÜÚ:âšE;ʉM†³H"D¬çFòGL;X͈=nCû¾´çà]L4ñ|]lt~*wÓÏó§6íÄ¢æzÏHáÒ÷©1c¦ýÝöyÙâ†.•»®XèúMÑ>9©…äl84‡lÌòR®Ý7¤HéÔªÀJVÁ4L;hmóHy.aÝꟊî7RÑ‹‘÷hÄ•ë¹sîuçgØ™jÍÑ+"L‡R£›4ÖñÊZ1ø2zÝ›´Cc%X·y÷‚»>¤:¡PºøœC «„5gf¿Ý‹2bæ; ²¨@ËP„¢kÎW‚t}åŽ?Eåy]›ÀKÔõ=hv¢Õ^¹às¿}`ý“w"Âò÷$kt8 nª"Æ#6w‹òŽò¡gº¹Û“„9¸ˆA‘m€Sá/PÎg…â—½w¡zBu¸Sñ¦å3d;Ò;Ò·çnÏ­|qá²”q+¢‚\.tC6¼:¼zÅ÷ÝÕwWS¿ÛÛ§¥:¿Až)�Þ“i5Ã,‰;×ûn¶Ç¿ Ýo¦T~ÏTœËÏÈè2øëêš2Ê^u®[NB5xê ²4—+ RCÅ«$è H7ËTPT!|æA‡>Ž[@Μ\¸ðZ¨7¥L»A– ážeº=t·óà€¸—ëbÊx}dNÉœ&Ù­‚²U78A1¸Úøp’2²û€ç†£«è¼]|ÛQ(Œàe7” Ä}B‡E’͈ógí·Ñ œ³áú¯TZ®½5ŠÂß¡�¿s½@½€øG>ñtZdb.Ä(õ(õœè÷Hx ÊËBU×°ê‰Ì?Ä?Dî•5µ5õzx´d´$>M‰)òîúŶ©O´Ú€­÷¨Ñf¡åÚ~»ë•['¸ñ$hµÇ<—+毪Ã^‰<êkw/ê»zlÛý«�,ÿ<´C€_eõKšÂ\SAÔ_ï®…÷Ø]ש¾è¯ó?U�{ôV`Œ8d¿YWýý3ÝŸ j‘¹¤�§ Dº¹0=„±ËÞxŠª¹XtÐphÊÁíçµ»¨òÈŽèÅ–`I,bè¹,tÎ6†‹kw«‚UÁ¤¿âÞÜ-©!ꜜ”‰3àØ•bЋ§A6Ǩ+«½½ßV�¼8@Š×V[@®’­epØ9\?@[üL:Sa€l¡ÉPSPꦨfTa.:f0n|�Râ…Í êåüãÛ—¼}Ùö–7ÑOñ�â{—Þ¹ÕYBd4±4±Ä Ä ™O CS@4gPé‘!‹X‹XsRëë´ ²°P(¤´�ÏÔ›?w×#�G¿ºÚ¥Úy�¾7l€}ßow�<ëÿÄ7§1 Ó€Æ@¯˜®Ü¦œ¥Uø}އh¨~ë Ûh¤˜ƒ¼±SŽR¼îp¥Ç“¨×ÄG1íà7[†oY›:°Y‹mªmþäö8é:¡qìé†vòœtIïC>øp+‡ëb¦ýoÚ©¡�3sF[x E"Iä<£„”´¥ ¯yèXÇDÒíÞµúLÃSÄ4LûOhBXÓ°¬ô> ëZ�~¡Ÿ¥î§~\dy^.U8$ÊÞé¬TK°ƒ�i˜vÐÚg³>ö«e©�kV,¯¼³PIŒçRm ¼|åœã³I¼Ç�òd9X¦aÚAk$í Íž£¯Ã&jŽå<�2›XÓYl_éé•-¢ó�6`#0\yê}kçáÿucp(á:ô¦5é4áK¨©Ü _”oQ°ÃÒÛk yIžž9ÏÚï¿ßH 9Ä»¡ŒŒò8ý#½Õœ¾m»ªë䛨òÙIÛêmV'BÈ—QÝ�¹·ˆƒ�ïþ?š'¯‹° §ŠµÖÌ$ ™eGc7{*{ª¥‰ÀÔÝhw œáŽ([¬÷ôßa©OZõ´¨¤È×Ê×bó€î“ƒ®ú®UƒðR+ËáÀûÛÎhcq5Ñ„n¿xX™y¿„žfV‰ŽÝµ¤¹�ãÜA¾]–÷&Jš–d³Þ{ïíl´‰~ç§ÎOý]ZV£?‘Áâañ®Ö®Ö=¦I*Ÿt@Ø�¨N»Þ*DV„U„EÞrøéá§Œ4.Ù.ÙĆs¡È;Ïë„Ò›×Vm¯'a -Ow7ïùN"øÎ3r'A'�ÌXz€òs!}£nq¶±îlÒÉÜì>g‘ïš6X£jíþîGR­Ú¹ÅŸDãÿõÎSp��瀧Áƒ Œð€Ó¯Õ3)_˜5ì7ëê¿æ„ÊdMô2œr±L•­^ûû=G5À;«Hb1ªŠ¯ùƒQÄg@¢vz`5ñ<3‹CUTè4jœD_}ÛÍ-Ò-òzÚ�íÝ.T#‘ÂQ  ˜Lð‚Ît$…KpÚ·z´�A˜A²‘âÎ Š»j‡áÈÏÜU-BÏÐY�¼%¸'åñÄwƒ›ÚO„ƒÎ\ðùbÉz}>ã{¬›O�õ;ŸÞWSlÚ›Vl€p™e™eT…�Ƹ²^§^'Š.Š®CmjÐ@MÐu=T]¶�žÈhi[7 i iEÕÅÄâ¹m�gª ­´]­Ñ‚Çÿ‹§,Ó‡ýfJã÷L-'Ö�!óuHŒ@e[Pm3IýU-3y@å�ƒÌî¨$Ó©“ïî¨óû¨/Dv¡c„Ã0(Jº¼›¢´¢tÕìT×n3BpÛ=€XûN%�3É…ú³2Š Š Ñ ÙPqÉafPÛ3ÃÏp"UW7Iyâ tpÅ^gŸ�Ão† ¥�Þ&º*Õ�N¡ÌT%CI¥ˆã«åóWbô'ï/aÛgï ç}ˆtšt:=P´àž²E½E½5Ý5Ý÷Ôe�„$@�ŸQ‘TkÐ"n&9Ke®g®“}qbubíŠ&]†Ï”ÅŸß¡=î#Ðà‘ZéÝíˆ<±ç34ð=:òÿ'ïZ%3ÿr-™Ï¨€ÔËÞÓ'M"³ÿN›€US©ˆh:'wê“®�¶­Y·úé0‚(f»=”úlë:y-VÚ1 Ó€ÝVî`À³þñ²Šàjþ¥:¡‘ÍÐa®u¼˜^ëx~Ë®žgäÃJïhÝC1íÿ_“¤¸ç©­t\Ћ©‚œŽŒáck�dص7í…&ÇËfpvÈ+ÒaÚ+Z˜öïkï×;JÓ(ƒç4f›‰;'°˜¬8ô✳N­WÌ·š“4œÆrt§À´ƒÕ2¹×³ožÔ釾{ãmU×�n»³Ž0³œacÈwâæ‹-D˜v°Zu½y¥_Ö˾óæWgá¯þ«— žÖ·:a=îIé(`1ì­ þ…«ú?m·R ŽO¿1¤f—oõ⢠ŠUâG¾nI˜}•§/!Xc¦P;éýųßu‹æïë–˜6INd<Š÷¿!$i‘]2\ò>ÌÌ…Jo‰†ÐÓéÄNF_vÕvqsÀZ*j�ñ#Š�Ûq¦FÜŒ—€3­+$»å4å4yX%ì–щ� wcƒ¯P}†ÉäÀmæÌ s=»qv#T? &ØlB´ü#,ã~£‹ŒØâåñ2in+IëµÉºq+ü%ÍXeÇô³Î0ñ‡Õj\ˆªaüÉÃù×ïòçÛcïSdœaè¬OpÎj‹YÄÞ׃z¿Y×ú=ë]c"ȲFßâ#JßN(õ‹S6¡@•Rev0wªu¸!¿Õþ9.uãÏ9ÀÀ×-.Óøt¼Ý­ùís»q˜r˜ 2ÉÐï6W…PϧU@@ “¨óùºt|Ü®ïÃ_šŠ�ˆÍ@Yþ# ‚þ`¸¡d€÷@›-a:%6^…oK>Œ -߉I¹üz1t¸;½…ysD¦|Nx7xùÓÉçÚi èÞòÎß)ãæ¶}Øpb©Y-u-5%”š¥lÔ×RÚ¬GåÃî!²��»øaøa‚ wøîð‰[«ÂgÊšòÏ÷®Ûø ÝÈû‰1žvÍåtÞïyÖ}"¦ ucu¤›„Æ4Þ§{.°g-`ÚO+ØÀz x;$!*XŠM†¿á«u¤uûõÉä–H¡i…i§ÈÊ€‡z‚0íà7/S­­©RJ�0Š—ÆïM¶òé6Ü}ùs¬=–•Š5‡¾ÑH ÔuPý€iÿ= z7ªÜ-ò¦mŸA6¹|Zbæ„æ—n*æËò̼?õ>û曦…yñ0~ Á4L;hmÁ2pŒtROTœHQo„| a°99v0W—c#ÝñìÈ­ÚoâoMQ«ªa¦íÕ¬¹5'¼¹«–wYË«Qº^EØð´Ubìå£ ¡§ß×—¹e–—”jbÚf{3? ÙìHQ¢{wçPj÷{±ÍϳŸ¯ã°e4.û/r¡À�ï‘ñúku ¸ˆ§÷Ç#>u€ŒþF,–OÖÒ.|ÆÚÖÞÖªw6¢úHõqoñÔÒF =XÏ 1È-#:�ýƒ™þ��¾DªÏïËÝ—+†œÌ‡\�F¨ABbë1¾Ó)s@8¤ ûa€mÀV�Lbn.æåx´Ì÷¬~%r·JvMÅvõv…:…Ѹû¶Ô’›[C<<llküt þº)ÜããQäQd¼Nç3áƒço¸zªu~ÀyVzV6JRKRóê5dþhÏgt+¼STC]gÖ?ô¯FP˾£eµU§ ~vJƧRÎyDrë]MèovZWci÷âš6îd*®ÕÔ¶åârjyø½(:ôÊw`¤—SÃ'¿¸qìO@m„B¢�<÷&K6й�e�‹1ñ«†. Zº‡"h+«¾D/«¹{|÷ø‡8æEÓ“·Mì!ÌoóÍ1:ž�z€Ëh >Ã퀫Ö{y&HÅ.¡–Q&%|z.>×D|�d£ÖV÷¼ Úk“JZeœÊ¿¹Ä(y©Ìó™ç‡L��pl†ë¤é¤AF #Ð(µ&Ž“Ôv\=66špªeªeAr³¼³¼iòs_æ¾$"D•1�šý}ï3%EX—‚JQp‘%Xj›ý�M÷Óµ¬Î¸€ÿ§û½‹àȧu"·”"Uök6¥«S† �aê‡ñO樞[1Û3"’‰ß^¡Fe;Ÿí;ÄË ¿7~°æRí¶mùiŠ5£½Ú*Í9n’œ¯rûf©9Òzø^üü(üÁðç'BÕ,ëÇGŽßÖ€©*W‹¡­žßÏOÄÀ��pñæ(G¬,AÆÏ|N¬¦�>¸îtT‰Wε{˜¨Ràz!f Ô¥ç •Ò£Xõ øô—þóbzù#J‘–’–6º®lT#�5Z„Q¯â ´p.ÖA †N˜3’˜'ŸÍ<›É¾ bY‰Jï†ð£ä†0Új�6àˆÞ¢<>·è€{†Q¥ û å¦÷i…Ékñ!æ ?³rÚªmWJí�Z7I·ÛbüÊôü›K’¥ B]A½ÕÙø3Ò]û´�ý;g�¬�$i—qm€vþ)¢xÞvñn¢†Vå,ßoÿú›qìÙqèì€Ô&gxÕЊè9:/V*Ê�Ô}[uÝèçÇŒ}™Qƒ‹³Ù†5ßy4Œ2à…¨8. ú�ÃÀú§¢èÊÞÁ¸"å^?,ÔÊ?¹Ï«Ë±8hS¸ðy=] Ô•-"¼‘«¨«¨¤Ÿ÷ã�Èk°hÛ0’ �Q~‡â ¯ËÆš\:zõõ5pÒ| B®»�‚ZÐň<8<˜×‡áSá ´§5jCVü/®® ñq®m}3Ð`9¤1¶Õø}{ê2ã6ѵÍí·°-6µ7µwlØ�rm .D!Da‘b‘‚‚7,ÜÙ²ô—5Ù¸ ª ªÉå‘;"¡Ð·Ð·hãÐðN¥¿²rJý²öåtU�‹´Réí:eü³S+çTdàPãvŸ±æzÙ'Èv!p½'+Ý\È÷Éz)xu oƈ°gZú,`PCC�u¬¤ ¡à/º@`þñ–�l m C‰½7z€µüÃŽUµ¼'óǧÚÅ¢iíî>!ÑˇðQ33@æΠ1 ’càþu |Ü}€3Þ˜8)d?¹r¯}ŸNº°˜BjTŠ#·opt»6ÖÌ–†úÜ\cR&ã;Æwòi»«œáÜrÝr}C|C&Ú†iµg ´Ú¸æÚ¬�Ḃ¸‚ì·g�e�Í\^êx‰éT#Ô©ïãˆ4Æ€í•>¡×$IÒ>œßê< üûó¯tÿ㟑Eú sz<ìr5¨Þ´îQ‹Õ)ës¹Ôj»¯€�iÍ\Ó­5»rBöß™½ë~d«š'ÄuÁ:ÂMDç²¢¢HrîobE)=Õ¸£Âyˆ2±íí'Bö÷Î>ÐôÚ6Ìp’É?8%Y§¹lW3íîNü�º]ÈJÇÔðr’ ­õr”ÝABFÈ@¶èÖÝzLœnµw}=gÓ‘sõ¡w8l„TìIzª¥Z:I¾ÌL*pT¼õ d„ì?‘=T{(²Ë�­E›j°ñ£ïãîÓ‚õ×€È"Áº�ª«iƒˆë6ŠNÄbšÃPH6 ‚¿µ%CˆO”ñ^E&ŽÖÖfn‡TP@(ŸYÎ@ xŠ0.ÏS™Ñ�qG|øŸÇw½~•“@wŸÈŽ^ÆGÏ­Ëðl'GI‡Ç5ÏÞøæ÷Wž ¾7f}¢ñÙ©«Ç”¥(½ëë;·ÚƒïÿîUw¥Fï›·CjŒ*¹;�½äY¿þ˜ÍŠMv°Õð´bJãï�Él²7æýøIÒ¥¢ô�"2Ë2y[¾/åäÏ�1)Ö™�»7W‰åU[¹óßËó‡ïâ2‰�çbüí³¤½æq}´ç ÚâÕ[ÖB²kX~�Îîøˆ2•.³ZÇ7²ö³ö ìøÑ¾Ñ}k¬·1wèWžìTzËMÓÑgCICIã ëÚ�>¶€5 gã7'à�  Hr? Ÿ% @o7�´K$$2n¹£™£½ŸÙp¢RçÙÔ0y±N²+{–ÝV†%CPD›ë¶±o¿™y3óɯ·ó%íàý4ã}/ÒÌÙd«} x×ÿ?÷&²¿~nwõ‹¿¿cù•O´-7g~S2Wè3V׊WÝ×ÙÝþvG½ËÜûšˆBFÈþ¬ìÒ] 2' Žð÷ÈÛ³‡©?!©IWUÜ-Բ³Øçûý²d(Y'!#dVÃe†”jvºöjÆ™%W‚¡7ÍyùMب$ÙËÌ +Ïò-b©z„†w¦2BößšùeÝ< R—ÑyE\õ„ï©„2®?ãÝQ%|ׅׄ²ÉǤ>”Ýtz4p\¾6’@F¥Ç4¤u4±Ìès÷oµ6:õsmä�yYΉ§„Ë‚(¶½ðHD$·9®ìÑ�•¾dt‘™Ï�1àL– ÐàÑä„•Ôó`&­¶Fà��õÍ�oW«oJ„5�„q§§~ °<ÿB²wš†ÑøðÙäÅK‹—� ÕK� µù�Œ“ŸH1îrDúÀX¢þ |æÒ¥ ·ÛvAß:Ñ è?§JÞöbð$›ÒÑ”·Ï¢ÝÏ~)œÈÓ£Û:T¹¸õZëµ@/Ó'ýp;”v( $ $¥¤»º‘A&gqiˆJÃ�Ì�Ì×2818•î=¾x|ñÌ»«#ðN‰­3¾¿ÌñVÚ2gZ=ƒ´b«N™þì”<"6.\¯SKùºïb^ésñ{¸T‚—�œéwU5sÔ¸|ÄÚ÷'|Q€š9ËÐìJ">¿ÆÌ\Þí%šÞ¨¬¹¬Ù&(dÛFc1òaÌy|Uä’h¾AœÙÄg‚Úß8íÚ?¹â éèÊ … ä.áåE&øìá¨ì�9dézÙºwÄç>=ÈVš¢ÓCԿ攜¢ßC-N}éüÐæŠJM"¿"¿Îeë̪€[oZoJ§L§Œ^“ê›M�T+ã ¸ò\ ®¸¢¸"7ž]�]0‰Zúçß½I8|¶¤1X)œãgAv¹»ì÷V³%øoÞ¼âóˆLZsf¨;ëûkš@Ý‹H“‚…7VÎ�«9dDÌ<[’Ød¶tH/X_Þœ‹óKo·÷”£ÞV]7ûù1×iÒXáÜ[�”±|¸\Q\ò7•Å•ó~õ,ðã™êøâoˆ \ÚĶ@3wC&À¼¦„Eú©u Ópê�@¯R?÷F ² ²ÃΫ'7Wê"ˆN Z„\‡X† ÕûèÈ2O7Oç| ÒÇ 1a)ž�Ðèp}Ä8)ØúŽÌŠ?ðAsŠœqNd}wò´ß´³¿ã“²Ä®òÂÊÑTËÏŸÈE?z‚ÏI/1ª|s _ç¿¥|KÙ¡ÛÀ0¯ÇßÏßß‹êEínÛE): ÉdÂu½seNCSCS9À»Å»¥µ^€[€»�ÚÁáÿºNuÊ ïh™”¸[�rÞGïÊ™[Í–à]Ï¢Š‘H»Z@‰tW—9 ævñîH)!û÷g…¦Ú«+¦Éí Dµªöð÷S –xµD«åR…PGäŠug^5Ùµ~Ú…�ýïeB.þî'·ç…¨ 'Íxºt=t\Ú§RÝÔ.)w`Ž“ ik%d„쯖u\åo…*åd|Ïíavµ,U€•Qœ¼ “^ˆö·U}™j/"FÈþÞYŽôªËí±©ëׄº[u4ôr>Ž,ÑŸÔž—ÒŽ·ìCj¯–¯F«š!Ý Ùÿ^¦,Yµ0ëºp<Ãí‰Ñƒ‰u»´Áñ6ä;eÃ+¡2§UóThEE* !û«e" .ù3RèÇeór*[„&íÌbTýÌ.§%š¿{tep¬µ ÐûÛ!øZÿ¹U ßÝ’—Û¨´ejØI�[­õÍ®õù{":àÐÅUÒX<¤ƒ×û¼^Oþâƒ+f~¨8c‰@Ñõjwàªg_;P{]ˆdE °¦hŒð9wkŠØ—û¹p£ £ £®SI”µrb)Üǘá«Õî÷ž“…PÿBΰ›1!üiíÓZîý’1ÈctÄ»D$à (2G,ðyþH4xë$ÇÈLú6|ãË>L“ÖzÆÁ†ÌºTD$qªïú‚ÇG7÷yÐ8à óf=çµúR8VzVúS/¦ȶ“¼Ô‡ ôàªÿfÇ¿�_•â Ö Ö+t`A`�õ‰xø\ëíIbÝëÓç×]•j\èæ-¶škÁïØ 9öð\XKض7š³ç#LV–ý¾K]�4‰—üÄà4-T~Ôšø�çZb›ÌµêýRY4¬œÓ8KX?sÓRlÕu0>Cª‹]„3 Ú†•!P”[p6p}Ì �2™jª`l�Y߉ëƒážD€ñ`h`ϾZŠõ1:PŸsn÷Šc!\© ª ®:�Ú¨P ½„áaîòð•L”‚ì+N\‘¤›ÊïÉïQ1�$óC žÌ(CĈíbðvŸ…©ÓŸ†ðÑ·¤¹s^þ(�8ú£„ž†±øð¬Pݺmd­À@«¥pøœšfGä<-Åæ<¤Qçæûæûj$nõŠÃUTVT’u�uüƒ½;�¦jï8nÈL$d ]™.!RÉXd–¨ ÉXæ¡ )CæLG™Ç %ó”)‰Ë!Rf2Ë\9¦ã–)~íµŸó;?û�ßZw­nÏ}Ž×ïÎZÖg�µöç»ÏÞõ^þ¯º@Ìu˜ÄxI“¡ž(<±�éïîïž–•“•+LËT…ΔÚTÂ}Ä£&âÈ|¢þïù{Þsjôc¦NåçGAI»×È¡És–ö<¹ç ñÓäÀ9!€=cU�Íïq˜¨næY"nê÷daǬѦB}Ü±Ñ ûzà5Uͺ��–5�TÿNº¤hBK(ZÜ¥$€å›í DvåÁÜ$Æ^X2,Y¦tOTÔ-· Ò´—æGY[Ýøê”Š`# ŒÃô˜)A0zfQ?—_lÞ«Ÿ°=£m�8oõ†œ¿”(—¬íï>éÝ =?ùt+n+î¸6¿zûYö³>º>ºÙ ŒúÕ á«˜œ…¡™™�9YÕYÕ?ͯ®¬® 3FÍÝ¿îÃk3wÌ£ó¾!þôp潇,éÂ{íJ¡ßŸ$>=9RíŒß‚7%d¬sŸ¬ñ“­Ûá®ý'4÷„FäðstWú`X*—špõ›',.…u_Oÿ!Þ£A«�LÎPQtÏõ_«µù•<ð ÿ Ѥ�Ù�؆ÜÆúÈ”w~ðB3G+DVЖ¤4Ìc}×~N›èQœ=6”šÞ}Â@ߤètgn*ñ½YwOÞ4z¡¯(h›u�ëG(�¸†k»5IÕ—óïÚ® (ð˜Ín¥Ÿ2Éž4L¬Í‹Õ Ó`mu Øø^CÍ£Æ6ù°×þZ+3 e¹ÕZÏٿϧX üš\+ô:£ü�Öà|3O.¶¤ôS饽®3®ïÑ3ŸN€zA“ ‹c2â*Žœnëz…é*3Ùk@qÙÃÅ\eð7:;ÕÍ.Ô²š“×U~Cë“V… ì¾S$@LIŸ}'å íb;=«GóòG± tà¬è3ƒVBR&Ý¢ŠùÜøÜÚ—@ú‹ %w¯9P…V€+Š…|ã½åÈL6fúN‚.ÿ�ù¹‹Q*{614uüAÃKß<#ß>E3ÿ=…ú”êrìîÊÂº¹f¨¤Q0®A¹(¹(õ|éùbWï<’*ÐÄÄY�üJ&X&ø�aµa5kW”h”¨"�ètOÓ"z±â’—á áï“3aŽK{íi Ï2%922j¤MylƒÛו.ÂyÈמ(†B;ƒÅó�Œ®Ú"ìßïiNì²§Éb œS>¢!–ØgXòœÝØkÖ�|Ì}5S[(Dç3u´éG‚¥ŒÄª‡xNcÚn Tì_šÎ�XHÅ$_*×è3ŸØ\`øN„fmâF€�ß¶À±cÛ;qÆsƳÌÍ5î¤�–HƒBjŸÛ ¨Ÿ^5'o>sYó'!—'—/ Ý®Ï)­<ŠA�µÒ9í±ÝØ´©æýlk�@-!!¾�™AØ”Ýë©xaOµÏš3`¡¹ðdU2%WïBãî6вæ©]¨]†ŽÌU_†Zõ[õ{Ëô–©Í†°xÜT»‰‰£ƒì.â âŒzº Û&E!EA7(ò¿Ï2w¥gJtN޾Í�)ô2x)9bÍi¯kjè¬ÿJÏnÿok“‰�iÆ;�Fž>bö™™chäz ­2Ñl�Ôûã³yË÷Y>Âq�´¸öךÇãÁƒ'Mß­ Ñ—|âIRzÝå˜ÕfÚ�³H¬tIËÆ‘Øk—s/‰È8jp<] -ŠÇž³†�kØ@©T/F?Sé\�Àäíø • \ é]WDóú|‘&åèa@ïÒ£Ä�··Xa´/vJjG;…@)*ÛÜ?Úª§¾ü�½­­®v¹v9Tä[ :§Ìõ;èBs\ Šú€Õ1@Î’&l_”_:Ïä �î;LmÏwk`³0zû<ÌÙ ñ�·�Ù«P�"^Ss°9ywQ„$ñÏ®>»ªàï�W= µÜ»ÜËVÌV,hþv†ŽäÇ‚©Ë!ù5ÔÁìƒÙщ¯¼_y÷ô“^ ½p;�1:S�r¿äbvyk3ìëìå¾×L™ü˜©“ÊråPŒöìkhBCjÑ‚}}*’û0ùŸ+p­ †ùÂcZ9€Ï· èKIŒ¡9aÿ¿÷–uĈuF½wšx2ñOŠ’k'v´ò�(Ͼä'ŒÏ0ð€z¤‚}TÌØ¯O¤O4�Š Ùšo¥ìŸAIî8}Lèhfcó¢а€lwñÁÎë•buEÏÖ_­å¥^¨zw2¾tn¥Àg!7îÝ©O nn¶µí<:Ùe'e'¨¨{t�I´U‚i��ï3T�g�'‚½×£×ã0�‰Ž‰Î™:ÇÃÐ]x‰š°K ?§!ÿT“6]Ìý½váÐ÷tµÉWE°Ye™¦“ÝÕòuw²mL\28Ù){ÍGãD‘5C)ÁÿÙ…‹ wá"à.üø.»p_‹y„ß•l÷í'QyºH±×¬›þ˜õç¬ !P0ñ¤hê页•EÚ1¥Œ”$èšEm&a˜˜ˆ*sŽêž€Ý„hþ‰«ØèW™ ?|ßiÒ~Ò~HÓãîN•Ãh�æ(†ù¥³€¡{­s u×s1-L‰wº+º+Œ’A§eA�aL¾ ¤ÊU7”· }BøÛlœ´°n“[‚äq·eð6°¸Ï Q_ŽŽÖ•+SNúq§;v&î®fˆ£¢ƒ¨ƒˆ/•ú=]!Ôo§~;U®T®fr�о4–Œ‰æ…¤%É-’[�gÚ•Ú•Žñºz»zgÓûå f*‚œ©scƒ×gmYÞ„'ÉH íµ ‡Îú¯tvúŸØÿal^›ñN­9¯Ž{�];\Õ„ím|Õ%B:ª\Ä—_ã9JÝr(ìqíïkUæ>Ö®¹_Dß>4rÂîýó°˜özWùó¹õ¬ãã*í÷ /̪ã®ý�훃•,Sct¿óԣ˥ÖsµÛÔ±W4û’¼ôÄÏxz¼mm˜ Çë±Ü�kÿœ¦u/s?IóDD€'ððË„˜×âå&kyº³kTÖ)RšH‹øÙV\õŸÕ*ã|ø |ÅÉÓ­Bã2›oû­!ÝØ� öˆ¦#ó›ëëésTöU©–¡¸†kÿ íõóª¤ðf¾àÛø,TÏuº™Ä(T[=YXÓ±!Dþ”¯If=z– .×pígµ'!jrë ”÷WÖÏ\Æ®ˆÙìßP §”U=jpû[¼¤%�ËhŽØi¦.\Ã5 é?çhËdŽU^T»æFÔ’\&àQ¹sä2kŠÃƒ“´â‚Z.q¸†k?­=õ6ôª³¸H)`!I¨í¾"Ë¡y-áãÂvkÕhrA#Sh³02\•I×~N«"°¿üèñ¹d#ýèؤ$k‰¾!#ßUíʆ†‹½ŸòF)¾1§>4BàÚ?»¹ç&û•žèÒnë(y¡û^Æí.Á¯ôœÐÿoKב¾§ûå¬êÆÀXAÃG圳!6ÌÐ3Ζ4Š)ꈮwø¬Å'>ËK´ìuÆi†�‡§HŹà)�æpxAf&ÓQ×­SÌ4a0@Såò›ñ‚gÒ˜`ÔV€J%W€Ó™H´­¾ý—°QV<pPøJ¹“©‹©KÿÙôk;±W åG¢ÈÔÂET…dçA¼„> 7ÌéîlÞÙÌY©V‚ê ¶€xôVìPZ¾†·¾F�ÆÕâ×ñŠ[´ò™l!S·Š›œRòc¹çsšÅ ª-ïntoÀ¿5 ìn\_ÕX£I£ V“bЧ%ž%ž¥Ü Ü�«Ìâl‰O`b"ØšƒzAò‚$"ê±Ôc©OÕW’®$‘sHÐ@Ïó]4âÛ/­n Ñ7®örËíuž¯ýçÖó?^º9åe'øû�óúe-;j,=:ŸF9J(/*C°vbÈþ¹KœÅøy/¾tͺ­?þ¿=ÏÛå<ß�„Ï`Ÿ(¥~®+Ÿ k€È^³nþãc8c6l .iq³£–F‹Ä)˜éRa’½¬’‘Ü<œNŠ�éŒ-\àaq• ²ä9ƒÖ–ÿ ›©ŽVÀý”°O;Q S —6jõî4o„–F‡2sPƒ�q‡z”­85áXn³j¹j) šÐ¥Œ\zš×±B½¸`�Ý àp sèÄFª mC�œ…Z5Ü ¤€g`Ã{}|6ŸLB�½u}%[Ð9JªwvnuwwèNsÜ⸕Æx¢úü¨÷ˆ÷ˆf…f…çêuOb�ƒR'1­çuA!·‘Ûð§×Ë®—1½žhšh1üÓ:SoÛ¹”-ò¤3hW(¹Ç´YÎí5S?fêÐrÇ1(íÛÆÏÑdSžVÿ>ø` ïW @>å’äšÔ`0&-.2/“q$À±$p Íë|Õ 6Ù¦â_œ>臘f[¶òi§ú´›Y(Ì\ø‚h>‚–= ä¿É äÊ?Äl¢0y �o·œ‰ k™Aé­àߌÊÉ—a3{°4CU4XRÑK&(° ƆX·Å¹¥¬ÿÁÙhߨ“¡‹ÅÝ·�oœvç`7'ÒÐ@¸þ*BЊS•S•ö í›b‰X—4�)¦ò:Ïe¨¶´¶4«u¯2¯²KYml]¨™âý×ï%ÙáìÛ-#ã­¥v_ÂÆ¥@9·Ñ5Ö¸˜ýKðø˜’LÁ–/<›Vg£ûF…d‰9>¨q†á®ýÕ6ð§©óe—Ëg#ÖÝ]%ãDeß•Ñò1Þ4.ΰ ¼v0£Kë5~º ®áÚ¯Ö6éjŠDÉáêý�û›‚8ÎÒöj$ÔèÒ=8™ÓµÈúCsêÆNª_©±~6й›ÿÍÀxÊñ>M§Æ·°Ëpèî%O>þž~�;âñq—bƽv/–øxx–aÎP±]¬hÜÍâv¾yÖ-I˜6ùláKŸ‡cï‹0UòÜ�ˆ�ÀæöBWÑ\’E£±YØ/ܨ#îmÚÉÚÃÚcF½®q§)<´ôó(Iȇ¹€"â»x G©·’­®n]ÝÔÁ‹@O$ÇÍ@zÈœ{(cpÀ­hgÂwlF­âÎz• q§{ïä Ù°©.˜åÓŸOáV÷ÎW¦e"g¯Ÿfo]Ø�…qâi¡ÿaïÎáüûŽ£dIÖ�-ûRd'’É.*²‡ÄØ·„�%’%Q "K²g«ìûY¥ÅV"²ïËé>wsÍÏ=ãçœë9×óôºü*aÚØ†mÿ›Æ=Ô15m°A�•øR*™RCh”˜š¡««L1Sˆ‘ë›T†uH€Å{:o%lö‡f&�;é=…›�0ƒÕi|�¸ï3ÿÆ•ûëEÎ'²ÅC'�t»…)×mb¶ýií½ âȵòÔ(»Ú%ó$ÓR3Õ”ã |j-ANa¦âv�Ç ¢pîP>=çÝ‚mØö§5²ÎÙV÷ÑÌÖïµôy1xW`Œf›¦}ïä_2úNêò鯌ÄßòÜ ù¿n¬¶¯ùŽ…¶'ïÁK<Èn|NšÊº›{U-&k×-Ôg -òyÇßìÈ=�5.ÍXœ6”ȇM”é;ËË,ô�ö{£{`åðÐWÍþÒ“PÖÝÀä›À79îeÀ÷Ö‡z(øDη1Iäs²„\©õßÎë׋R8Lq»Û (ÝrHìÜ2«€q�~ s5³§Ö÷ÝMoHÞ�Ü? "ŽI/NK‚"åyO!™†’ó^©¸˜àµè¥îzƒ‚h®x/~¥ÔÅİŠâ’àÕ§öá£97óÀé­÷|Ú™*Ý�U//<ÓL{Ä9(�.�.—"—¢·¥r•@”øè¼ž! ~¿€Ke\e\Š™88³*"mÐ=º±Üºý²•Sò^‰…ÉÞÖïs…Ü£Gn%jePÊ 0àLÌf¬ÕÏýl®LfÎÏE8’I jZá>Uïôw];˜jÑÉ:&šðï÷èÇwØ£ß�»5"Â]ñÎ9‚æP:$¾Û¬Ûüz’/ÏÆ f˜�JPšìÉzü›Û©sÕÐS�®³¨ïiÐB'6‡Ð~‘M˜öhD¹;l…‹‰vhÌ@ýÚ²áv„„=ô:Û}è@ŒGº×<‘0n<¬j¹­üÀˆÞÕl3m3�ŸTLª!»SŠ×CRÈä<š1™:ˆ*Ϻ*V*Žo€�›øQb’u’ý`V'·6Q³Òí½Y—å„/�kÛYt�åÒ_ÖŽ‡ãm€êïèï�~*ýtéÀ§µ%MPT!ºÀiÇ n Ü”…õÃúû<{2{2oÛÖ¼GΔÙïg†2ùÆÊÞitK­ºÕ…×yXk·�'tÖ…WÊ©9Dê(|FÅdÓßc¾™û�´ïÞ54ªRšŽ‰aÝ:ä«£oIV`í~ZlÞ¡T?{ÝX•VõÝÂæ¬K�؆m@ÃÛTéb%€}M¯&ºV W/1²>Ì·Jû– jÞÓ÷˜r8K¹”Á5Ûþÿµ3T�‘—”™Ž{°WR2R°v$rÕž‰°/ì,¾ÂT>…¿EY™á=pié¶ýëZÓj—bYµRØ´ÆÏ–fÒîï¸ìG/Ç9æp¯Vδ_%kÖ=&‰kçJ…mV˶ã_Íõú̬õÁ›¸©äzIuÏ�Ô¾NG|IŽsú/Øî’¶^l»C‚mV«i°¦¬òËIGܹÚ:àâ(ùÉ_rY¯(¾¡Ý7ª/¥«ˆSÿ]uØâ>µÿióLÕeš,Ô?Ä6¦ÐîÁGEóHmHú»¥:TÍŠ`y9í#Ãü>õ“б»ýn±ýõ»%¡`Õ5¹…�¢ s0�¡¸gj�n$xàÆz5üL;:Õ,&àGlÏ1@Võ”(Š’Ý¹aLܹ¬¿.™Õ n—»‘»áäUub»Mu”I$ÑÈsÁ€‹î Ïe"£<©)3Y3Y�@½� µ …QÐðƉ¤šÀr<`3ík&ld�Cø e: s˜?EUâ8&¯bÖ„‹ŒzÓyS»òîhˆW,%ZxÒîì¼-w³L³ŒÕi¿ éCPF¥F¥Ê%Ê%®�éÙS^ - ¯b{1¨'œ\Ø?´¨Û»u«u+¼cOt¦(´Â�76$ÉŒSNt®+ªî6SvÀõÐ™ç æßßÓEqÙ³ü˜Ê¿É“ÝúÍ{³€%¸�\gçd"ºôµj€•+g(€Qpå|ÔÏ'˜àÁ¶Š®jâÛ•®”®èµÚÜ.¹…c Ékn  ×„‰€ ˆe¿}L!™00êhý�t‹±“ÔZ@¤�´¸0wt8JŸÀäÍ1@Õì'!85è‚ïÚ¥;æý¬˜ø¿<êšïÏ÷œìÅY–góÑN ¼oŸ¹½3“N¦fæfføÝwÖcEPNÊNÊŽ-Ž-*iƒ—"@ŽAèNGÝN„:¼yx“ð©!©áÒÛP–P–¥8н‡Rdš»ãƒ9nɈS·ªRŠvÛûìå‘`áó+�cÛ{º"álÚ�¥äÕº§ÚqK¢¯[qËéurØE#ê4LÅàµlB¼/‘ö>kkŸe§çRUé—åäÎÔ#v›uû_³^ÏÖ+ À%ÈŒÂ=­Ø~…æÀø™$tµ—º§ݽ¹6Ñ1þp‘°±ìà¶æ£h©+kbò6Ärðñ™ñvû&öMä,вoב‡ò^)†Vp pñý„2h˜éΉû?^ÌÍÏÍŸf½¦­å¾¿âëàGZ!Øv®‹�ÀÄð=€þ •Þ (ÚÖs:8Œ±“/÷G_F·O”Ĉ”·+7PMu1ÖŒ³íìP}m·–³–sy`sxªô¯¸è¹èÅàbðÃ'‚³/€„íÑ‘w«P@-d.d|=/p^ Ax)q)Q܃¼9S0êß÷ò·ôºþb'zÄpÒ%Ÿ×q·½tÖ}Nêk?Ò’k‘ø¦Ñô*Ã}öHÎ,¶ýç´¢5B‰àã^÷áa²º–a'8âY÷åt‡ç�CjêØ†m;5 ;¾{­‰…ê/Œ.x4Ë5¨Jê³HzdD›Ø�w¬©Á°ü†AvÅë2Mlû÷l…3Ã8ë])ÊŒ¥·÷¤önye9Ñ4Mœ¶d=ÓàøÚÌ@-«òìUŸ“䨆mÿh{Ä%¥�Þš¹RðÌvý¢j’oÝ��lò&ÿü<»£Ü…'5ÊŸŸìí(ë¶?« ¹Œèà*PMæâëÅå©Ôžá¼Zço|*hÀËõ•¦k²¡ñ™Îþ…“±í_×DbjSy$•ô׿‰¦Ó(Ÿ­ùt£’—/ê�‘ܬD²ËfH3÷Ãyglûç4à ?òòå‡í¤äÍ9åÒm¯~5>ï]¬÷ '©žèˆf¬grƒw•0¶U —5[y÷Œ$ …n.¾0ž°ñç„îî;`‹gmŸl¥éT•k‡äí¶»wÀÅÁ‰p�å‚âûYòECý )•‚IŽ]ýì!2€MO³å÷|èDUæï²|²¤{ÆPÊÚ1©4'Ó¼’Ù{};yyN¥Ä¬í¸fPj”‘–"ªÝŽþ [1ãñЄÄöì?H¸ƒnµ‚¾'³“‚Š…¥ˆ‘ÚØaVkn˜ÌÇܬb`z ê¬ïÔ†‰R˜ gêÇïÿSEFÓ$Ú/Ã;Oã+Žg¾%´ÓL©™XÚý÷³ Ï"päÓ´ìlbQ”dm<±í¥ƒ1¼ÌZQ“C3¸b$óGÛL¨Í©Î>Ä}@ò&ÞÖªGŒ�z�;ô~­ª ¥xxOà2¯¾t«Ÿ«#J8{xoÂóë æuâÁ'ðË¡ÿ7€ž…>#úù‘1-É}¼Ö™¬'Úkú&Õžn·Ï�ã¯ÏÏó WƒPÎT](qÞ¾îçý-„s+ÐÉÒwÖàÚ§÷ÆÁ6*Ðy˜ÄX-&i–½Íø—;Ÿl0‘|é0,|“·]ã|ã|Éu1Öí¤ªP†Ù�T¢Ýe!ˆ¥# Õ¦ýd”ä+GûŽö±_½¬˜ñƒ2È‘po¨=q¢˜p°èMêi Î�àL'³]Ö�19›Ì¦–�§³$×÷*8#]á#“Cç¥�ÍõG6í“Û'WÝ~ÈD  J¤X¤Ø^À^ Gåî·ë +t ðÔF¨&Ë&Kü]R]R à�¥D÷<„Î%ɾ ä哦K®Â"v›)§_3õŒ)"*Oë©?Ê ÛðXÓ|„Y %º™}Ú7¡Ï‚àûY³ ÿ|­pÁ&BPÊì‹’{š‚“îÐ#®5›ín¬ÝX=gÿl»ç(0J$~ªýÏM8ó‹ ð­…�îÙuÎEÎE9^ $" ¹Ì ÐAÚ­¤.3€7 ,®èÀt> ˜¸ó0ˆO¨Tž“‚/æŠ1Õ~ xÔz- :ncj�ƒkwfðÃýÈXÂXBP_‘“8®®ÞÛñ·ãî|¦™7™@ý�Ðñ8B k kfË6iþ²& &Sáp–‡žHú!~:)ûª;9�ËÒ•$»�€~ï¾-mª¤s§cì’¼&Šßq¹ÔSý‰N[³Ð[œÊ ù8·•¿^3"„:; žßáìÃU¡!ãpM§û­°áһͺó¯·Y³cƒ:ÀìR‹’wrÃ]ñJOG‘:ý5Çhój�Gc1: •ÂfÀ�Ç:•š©6(&šI˜Ð_mϸytNl{*öÔɱwçÑT®{ÇMÙ„Ìe2$3™¥2E2eÊ”!cD(ce RæP!¡È”Ìål…J¦2„Œ·w½gß½¼{;þ¸÷žuι{þûþóþó[{­çyöûl¯�µQì[�¸”ù<‘ÏA¤× +õx¾õá5á5É�‚äâ@¾Äƒc öWßž Íl¯r߯b¾@CþÎ#°�Dç·�2¿6v úç?½„ÇÜÔïnPõ6I=�á0'ß]“ÜaNÙ‡²ñÜØšN@�Ûwn_øRø•Qµƒ+;H°Â>*Ê'Ë'kª²Ö‹#äðåðÕo µCÎÔMjp¦6>)%R_Ãìœ.F�8»ëL!;�õ¿Ò]}F ÷.Éèu·¹§A2ÔÌ./8zK»ø�K@óEîzn²oÑ44UÏlÚ”bÛß³}î®»¨š)s�ùªu˜« v”¼¼`½÷‡áåE”ˆŽz¢rç1ƒýð–‰ylûg·Y²·_|Ïa‚=<^e,V£¹bólÒÍ ÷'ék~+mý¨8rë•›6ǰ Û€¶äÚݬ B±þ–›²–©AΩ6øã~[‚Þ ‰¦N‚åéñ“Œ¼åîØ†mÿ‹V­V-ÈàJפ‹§zðnã“k cß*Ÿ<#>-³§º:ë ç@‘�3¶ý³›½?Ñ’‰ÃÛO�*+ÓÂdmnßláPá5éО¹-ÃðTX:ýäRO.ïm~lö¿k;¯(*è`jO”°“ã”Ù/ÖØÙ4™4y³nÄ‹wÌnº�·BS¤Á†fÛ°íÑf|8ƒ•̘Z�_-”™/ŒWªQùoß��mÿœÆc¯ç._�¤ëA ?ËÈ_+…÷A÷vgeÎ|,׺.›þ[~ÈoÄ—÷ÚÛõÄÅÁM§c‡â—i7A±l¨@ FI]·E§p¸I`onºœ½–Žnš�aPte|à3–D€BrëU &?/8ˆÕòìwêÐïÐ'PáÛ‰'%Bé’h / ä|,/èZ¹ÔÍæS=ª8ª8~Ù —ÐÝêr½rÔ¤èZ€éGÀ:—~&Kf€¸U?¦EK�Áõ|¼Ûl˜8l$PhÆgäws–.±jyº&ÈÅ{²ì.ÒLë+Q:QºÙy>ÎÙ`¨PŸP•Z•ZŸ¢äã-â °yt& P$Ä$Ä©†ž­ž­TººÆâ}¡çÖgë· �S”%_ì÷ª­íÜëzþË¡~™ÁýÝj´DcDyÐÍŽ°�u+ë%��ô@³¾…üí.ê?>Ç�ÚåÞUqo0ú©kR= L�i¯Y÷úõ˜Úm—U¨{®V›("ÕäÌu-Í">èFSp ä¹Îzb­AèœNÒê¬;›×½dŸŽ¢hÆj aò‚eà ða`óÁNNBNBO çvšˆ@!«A*) „ª m“sÀêì8'tIýS€*ƒkæ3ãýûЉJ¹�ÖTòáö]D(FŒ—ã0Éô¼c(.÷ÊÞ©¤¿¤Ÿ�ùXÇN_(Q6Å‘î¾VÎ�=¹ÿ4ÿA‡<Üab ²¯²OÛôVôI¯|ÝýÌ­~K$ÇvÝ( ö0“&'òuëV‰ˆ¯ h%.Ó6�¼eLRf§Ÿž~í[|ô Ž˜@{^Ýl%~Üîˆí)tqlqlÙF2ü€CÔÔ0Æ0Æå ØJ~·‹.À–ë(Ô6ý6}Ë[>I>ɲóµRµRN^Gò‘3Õúû}jôò•.P·ÎO{= 7u>¿×Ùôûó?¹‹Ûþú-Ô&uÙÏϾ4~ž¼éÁô”¢ÙÉw†êgbT¹;ë##úC'ˆj]¾}}‹mØögµ€2sBGQÆÐX·ðÂYÒùÒ}ë*n–±jieúâ¢�–ÞùlD‰vb¶ýY-’Ù´D¢ÑñjÈoÓÎï‰R½Mt^ #ìK¹ºö&ÛüIo,ÿÇ·± Ûþ®Í÷îƒ�£ºF:ÔÎDÄÑc>ƱÅÌÆGpf lò§ÁFí$f‹ËøëÞŸ�®�ʪÓ·ªš*+Çœ%„ëÖZ÷ZyÿZE²Må@qp” ÐáÚ®–ßÃä ߈á&m=œý¥ñ|…½3ϼšù¥"½ÝT2Nq1p1Ü�UHá9 %œ$œÙÙÂÀˆvÄ"�îC ®5TO}O½¶ÜnTðäHù‘rºŽ:èÞ’Ætàc� _sXhHTw±1Ë^{KÐw†xãt�Ût ª¾äs:‘·¦'ü|ÎÂ�•sàz!­ùï-‰î²·”³šör�„ºô9§AütˆYê^³îóë1½—¡<ž“¡ÜfÑ vy4q„¢ÈÉ  [;ÍÌB�îç �Û€† ‹/Û´ ”u�«A˜T}ËäòÅhìԸܸì[™f¹[ŠV>Rgê* ï�´h–Wû«KÜqÕuÕÕ©?R_L ወv"-  ê,_Û1ñi„ªJ¿œæ�ê$|/Ë#¤L¯SØ�Ƴäýa ü·Zúsu[bu»óŒH�Ó�éÀrbÚ§NC]Ó¼¦¹Q¹QÉó3ÿæ’5èà :yÂ(cc¼ŠöŠv÷—uCuC8°ãÿžu2p¦ô2OKˆ¸Ö(gιxÍ*ïzç%r:ëwIbzàäë9ûKÜÔ¥Žª¹ú— aÛ¿å^ýòº¢|f«'tæ û‘þý|žMa§&θ¾¿^ÄDý[ ‹»ijñÞCôJy RI¹¿‹ª}wl…±íŸÝ2$×] G¿d¥ów7kkœË šþAitFໄVŒå»­õÒõUÓ7lûÿkÁ!ÊbOf./œJv}eP5¶eS€Ð;ÕRòYY?>XÊB5sA…\ˆZð1¶aÛ_­ R¹dOK ^ÎIgf|mRës‘dàfkøžgþW­õ/¨\m†’7jåF)ܺˆà^PKN¸Œ.X ¡ {Çþ½ã:¡ì@N€�yy àÆÚ)”5ÓaL~lrU¼ÂÙvÂÅÇÅ¿…ólc'YZ”æU$Z-‰.@,w¨`@VsXà…å¢â¢bÑïŸö,�ÈE ¨øYÝ Rz K 5ôè &Dz/„—ƒ×ÆAS´Ïj/y·‚É:o)Ýߥû�°YÍr-Âñ‡w÷ù¦KNÒ`Òà›²ñ=2¨x�x¹§rO5’ÞŽ€ì»Ñ¥{Ä8@ýXù±2餮î.”o‘oq0Nî+t¦JíN­–˜ÃÓ±2&ËÛk¦|Í”ôÌÊ5¨×R?¶ Ó‚UûIRÑ�ÈêÃÔ™çÓyX «}¶% �4yþà7nû‰�È �yÄowÃ’”ª[f[fn"m£ñ‡ Ö¼Ö¼žg?ÏNÓ:–£i b\B7;Ö¥é§éã?ã3ãsfùé�§¢îÌ„î•�áêdM^Ùº¬øÌ…â»ù^{¥Ð{[ª�BšBð†4g®„™œ\[ñÝ�H ?#6Oå8É_zÂ÷�÷J…wÙ+�Ù÷Øù­òy÷ú0VnO˜ã^³î÷ë1–"¶cPw]¦¼PØ„϶-1Ö¡KË4²8k{|º×Ò€ÎajBÐ�ÆH 0’¯û„b›•ÉŽÉã–<^žñNýÛýÛëpÂö�”’PNV#ÚêÉt|kt¥å¤Þ.œ Q QK¢áv€F¿S8€ð †É�ª�Út†B˜¸åatÝÇœ@ÅâCŠ,Íg1ATkèv‡DÈå Í{¯tÙÐs=ÉŒqw‰²‘ÓÓ Ó ¦Î¹I�n@ÑâÑâ!ôz·nþ°þÊâA÷}Cÿ=ÔqÅãŠ$õ  ¾¬óóí:#gŠæ÷ßLuÙºÓܰ–~ÀœëŘ#¼×^)tÖaA}…rÝt+‘2 NEY?ùˆ×.c¶ýšïÝæÅ¡� ‰õ\91™\ZÂ5­YŒÞ¥õËR Ò}g©LÓ…ïkªøcÛ_«uq§¬Å5Ú7îl£z6¹±¨�îUü½ŽÐ¦6|wÇÙ¼ˆ­ã'ã®­Í`ÛŸÓÆúT&3sÞ‰™)â^(“ê-Ê$ôŸô 4ãɦ²®%¡zmhõê#É"¶aÛníø™çs]&”�ØLnåH^(7O{Yœ¬s–©Ý�d}³ŽüˆËxT9¶ýg­Â&šñRKä�èWï ‚Êù+MNµC×GÒæ›Y�W�¼oâZvMßk�qí×:c¨¶E!AÕ…’Ö¨é%NœpÂÀݵ–² kÐŒãÝ1x:¾bªZ]ŽŽàôÄœ;Ê­�ÔHLž§‚ï|ÇvfïÄWÆWÖЫ§¿“âS”¹i¤M¢ˆÀ:}»%Èr•ô1ŽYêðÜðœÒ4H\d:ø4tÔ­éc`Þ Ï�ɧ+ó(wáxÐk¶¯—²»ý1iú4w.ï{\™Å ‹ŽoiuÑotÞ¹îîØ©Mxq1¥óa¾Pvv:ó:ó’ŠÝ´óâ Bst>"A¥P£‹£‹tºmÙmÙñ¾mîmîºÔ …Ð5uÛ1�*½ëæÖÂb�¹qîó{­©¡w™ÂØ?[è’ ¬s‡øÐÀ=C\÷Á�IL·ï3¶*j}˜�ùã5µØ.kêûíÅ>U”#™øt=ImñC÷šuÿ_�I;C µÍÿ#eBž?Æ›8È G q‹ß`ü S¿0ç­Vtä«% €ä}¤zî1ó”­CûÝ0!¦ØÈ䛨¬ìTäSä3ÎŒg½Sq?Ê{"¤¢äˆý€@�r�/Cµx’›Ïgiiò�¨W]Œäö©0ðb`-“è�ÉÅz³?�FC¨òÔø¢~ûÒ&’Ã’WÛ’ƒx…𯅅i`ìçvçö‘]d®}®½z^�Z«Šö5íëžž8éªs­ úGèØê«½ V¬þp= œ œÀÁVî]î=ôòÛ Ú»Á*jÓwKÈè>3IË—í5S¿fê}lªOÁ»¥ÎŠ@7Y¯¾€ÝM¯f@d!,ÅÇ/§ Ý ª #w]>€eˆ� ¥(œa �l¿p@–²ßå�:ò:ò¾zοکM¥ÀÉî[Û0 ¿ƒ'´íãù¦W‘7Ø~Ö~öîq�ª:¨ðdž;È� C¢Ñ$fœöÝ9� â_ìÝi8”}ßÀqk"{£²”‘=d‘ì";Y’¥²"Ù×,II–,Ù²—]"Ù%d—,%dŸ"»Iˆx®ó8¯9æ63nÏs\ÏÑå¾î™Ï»ï›yó;æÅïÿŸó4DùHjž\™[Ù¬ õœÅÄ©>oªxü×UQÎØÈP^�äŒÝÈÎÖÅ[,HÌHÌ\�|½ ù„*üHø‘›‘7#„|›nbÁ.£ËWޏ‹J’L’ÌGtŽaŽañ¦ª±ª1Ž÷b¦\)À™œ‘¥ygŒç­¸¿ø$líÖn{ÔßϽôìöÿ¶6‘I9ÖÅ!Êdþ�:¢ÚbšÚqR{D�X7¦+áꃫ)|R ØöÏn EPqך¾(×»cJðÓ´MÏùðìs2“.I³‹níñ$y]ˆm{«}þ<‚s9BÃú£`ŽáÆÑv®*ëë´gûûe`u›wØJ:ã)kOfòçcÛÞjü“Xöá½.2S¥à´ä:í:kz6�EŸ­® T×`WJCÜitcB~fPŽ˜Y_ék¡ ¶aÛßÙû¥¸™-ý¡¸²ëÖ«ñ Wªwe æ?÷ûŽ>û.gÕ‘éÆÛE�m­yFr0k_ã=YHS4Åž¨”uu—ãUk#5à”=ð“T«–tf·]Žp¿Ì�¿U�ÜÊm$§—�ªoR¿ÓwG·êù‹ óô’J¹­ºÓ¬G�J²&Tâ‘ÒýHDµ A˜(¾Â€^4—ÝŽº•ºÕ×îÕñí4,�Žx!žÑ)xe‚†4b?ª/,KA; ¶â ¯‹ ë÷› AÿˆcN@ßuÀ%{ßLºæM²ÞÆÎ ,"c£|9»jLrÓ¡ZëZ$ò)-pÍ7ÎJ^´bc;óXß (yPòàbþé¹®(TééÀ»Õ¸BÉ¢ÅALÒèŽ=¦4@á†póD[·:>¨mGoGÏì ÍFÝ…©ñ¹”q1sÁµ!1Þ»íÂQßÓõN®<Œážu¦Y±‰‡V€û­o�¨"ºd ý4„ mãýË.\¹ wáü;ìÂaŠýWC?3¦ôeÖ/ûQÊî6ë·ÿ˜õ�œãµ¨*ï” #õߥÈÕ^«·µ¿‹N0çA/ nQ¨ß½:ŠnYøðWÑ ö—ý”€T&GF$ƒ«”k˜ˆ¹«–x‰ð·S5P5˜¶ÙôÙn †„ËŒ ât²àœø4 ¤œë2$(HQQßTß”_š*½pß�˜Ó"ȹ²¯òЏô1qK Ñ›]?\Ò¦ *Î 0SĦg•Ñ÷ u(c-«ózó˜D¯»Oâ¦ÙÎØ›^$%$%ê�¡ Y'Z'š ™ �-Öµþ <ØN9ÅE•‚¥‚%Ía]Ý›=Ñç£Ï—þ¸G…:S–rþö¹™³ÖŠåSúqv»Î”ï3uÂÚ‚ª"�Ÿ I‰ÒßêŠmG]o :_ùªg€¼ýs¯$¿ˆš¡“òg2D±¿hˆó¿éCJ¨6¨Ã$ë�G+àµiÒêv­+­+fs¹�Û é#¥Ð#Ôig&¨ˆ§Aí? �‘�á2ÞÁÞÁùs #[PvA€&è\B­‚aà~ á“�*&©)Ý:½ŸG\A¡šì8û?9bbq�ù4ôuºÔ›£Ö¼/¨‰ús¨ •š;›]×Ïe‘c‘3½TÕ<}U#G#‡2TêU›É8êÙ�nÚÿ• ªàçÁÏY!o…Þ …M]g¿Î®<¨#…˜©0:p¦¤ŒF4LO0´,m4$JKðî¶ GýýÜKçñÿ‰-òÍe‹ÂÇéíjÍyµlkŒÚ¡ªW�µÆ•ëàCÈrýŒã+~ÄA‹ÝrØcÛß×Ê-ül\s§Zƒ�OQÐãu:ÿýE íâ~êÊÛâãVS žéáÁüØö{šúÁeGÅýÑ�\Kjå-&!»Ž¬‡1�u®rйu çâbËì >ÏOªc¶ý�m妵 íÛèOްGºÅ63¯·(h~L¼�àß÷Õdzµ­~&§×ŠÛþ9MË+·!Æ;N“"ÀÍt´">¦FìÕÕ°µ<½É‚52›¤3šp˸É6lößÕÊbý¸ŒÄHÒl¸Cb3š�î¬ÁÜŽÁãíg™æ6~þL›!³/O¶ Á6lûOh5Y剡͜÷�péɲ.ôÐ “<¨¶*ò¼úý:/ÉSÎFéŸÑ“x±؆m¿«¥ôR¯CÚÍo/={öÛÒ.œõÒ›–T]ï)¨UΑ|`K‡zÆIÖi#Rìÿ’\”t8C k}c·3N?àŒóø7STñL-æHAÊ×¹n‹›¥ä¡£+;–8Z˜„_´…îžÏM.€ÑôOÀ„}e« u&Cúê?)ŽÛ‘Ë�Ëø<�±ÝŽ�)ãÂ"î™qË”6èÁÅÒ¯oØ µï6ëþ|Íá8寨´TÔ‘Ä$¹!–WJÔuÐݺ;þ@Ø�¿Ú¡p5¿ÿÀKì¨ (h.¼‚ôz*‰‰ž²Ëw@ÐëvÚêÚêi6w ·;,„ÔºŽ@£O™�öc|úú¾j‡_%+›0=b]Æ1+(à àËXœKÎÝ|˜pKJ–—¸Ç߀z§8ERõV£1IÍ_¿ïü&<Ö#Ðyü™ngÕ0üpüÑ�ÙÉU.÷÷Ø�å)†êbÝź”Ò”Rû R÷µÇ G7téH`hbIbq†�÷ÌYHWtTt´SWü@ÌÇŸÿm;¦ÐÀ¸Õ24ÖVlÇ®öRÀd·ó|ÔYÿ»îš2¨Eï[7ˆqæ!£ÃÛüÑå_O£ý>RÖÖKb®Â•&ûê Ålš–6¶aÛ_m8wm+„áú÷>³‡ û…¾÷¼àL“«ð¢QOÁ×¥6Tý}‰ß“û3]áØ†m¿«9SÆ�ð#1< Ý–Ÿ‡ÍÐMÒ§~ÉHh»5ú:ÙD„-m*]ïƒV'¶í­6GÂüë‹ê!ŽEî¼ �˜W4<á‡:åÓø¨áŠÉ·„Žiï°moµKœñë:A²nÃk ±1ä‹ q1E'[¦O³oXKF/|æ•ÙíSc~ˆmØöW[ÿ²™£î!]ɰŸî®±‚ 2í%Ô„´ø×.¿H· 2<˜Þ­Uƒ›¦‚mض×Ú¤ºP�¤á€ú§Ò òÆ{‡ ’Ô4â«õ þ"9Ý \á¼o4aWÄ™ÉöRcøftÁ#Å(ð3ÌÁ›²Kcå¡nêîåÛËÏpiÈѪð-¢¯†ÏrvÛ½àâàÌç]ÏDe}ªi¤cÐÀÚYŸ²„.‡¿Üo+i¸FJ†Ž-^Ü€k¼0�z;‡”%ÅD Ÿ¤ÐuÇÙn»±Ëc—©?ål§ÌŠT¶Ž�©j•È;媊móMS>íO I 9åJ; ªðú¨’:a+‰0j�"h¾�æÅÄOðóGÿ­ïë 4Ž#k÷Or–À~%y�÷»+ì6ëÀŠœaQ:Uâjò¿|#r¼ÞÔ6[¢ã�ÛJ”Â{Õ3µIrÐ…$÷Ö¡Z@KÓƒOH̵߶0Q£ðádº‡ogl̨|La;o$ g„t<š@À€õ£)�Äå‹[_2!œ·únõÙ3ƒ–5@œ7xŽƒ¸„X!À)ãñ€ÔŠ…)L¨l—Y?Š]ºúZàG/ÂdMÓ»ÃV”ÛßãBÌ8_ñù@Ù �/;›Ïf)g�e�=ÓsHâÕETCüCü r rZ35!–# ~utöMáü¨¸¹ÇÓ™c™cO½ÍšÌšT ¹á‹˜©â?w×͇‡œ¬3¬])› }FwÛ]£Îúïxç4¶aИ JYç;Ïçk•Œ.𓎽ýõ™)iɤhdÿ\ù‰îx�ëãèòÃØ¶÷Ûu¦‘ü� >óf›‡6…ÒÞÇË6ˆNÜÏ6´VäbHi m¿mpò|øC]löÿKc{7·péQnR©x µ?Œ„†¾««ò\?ÛWñ,ëà;–ý´‚>J؆mÿ ÍLwÖg7«Ï̪^c@4ôö÷vö/Ú¬©Õ2%cœÝ.÷*×oíÇ6lÛk­ÿr§yUFÔ�º‹ä+f*é§žp«¶ÜsxxEäFâ7¢(œ@ê4Ÿlö½Ö(Þ/µºÁr™¦êèž?Æc1±b0Û¼òá£|)ƒï¬±áÚD‚·çVðÿwc²-çæyPÜ‘‚�—a 3U8sÐuÔ¡d¯Ü>KI—ÇŽ›\Á¬:±Ûè..Î(ý$*�&C¤J‚çËÐ4ñgyèTlû˜à' „2èZ–Ϧ—÷…²F�¼uVbbqMÐ >€+¶�É “¤òp•íÎ�Bê Að|š1 ˆ¾TâJõ# *ã|ѦخØÍR÷}¢Ô<šJÿ¾�Î €ƒ¸¾²®ŒÉêc-^·] !¨Ùû‡RÒ¹ RLüætsýlõ‡éFm6`ò_ÀØÚÅõvv?Œ¨Šw”wt|&[F%A'A'TªÒâ�Ã'É jG'ÂÆ–†Š®‰®‰–нž½¾SÀ…À… fHÔuçé@"»a·zÝ!…@ty¶·uÇg!vž‘[I²¨Œdéq¦—²ÖàóÍ |)Œ…}7)ÄG5¯½Ä}S{ÿ?ìÝy8•ëÞÀq³’2«Ì¶©‘yžg2—™2%dΘ™’¡�9ÉQf’±Ìs(™ç¤D†8=ûÙëZ¯g-Û{]ç=çtö»úü÷ýgýó{–kÝ÷Ýý¹m“fYws‰ý~ÿÈ_¯y^8`Íóë�ˆ¢ÜŠïøJ‚rdÆÉ´‡ÍzèÏ�©Ãâ냊V^„›QÁ;Ú•ð"š=Û&�‡Ô¤}ŒêDÎm5tµr€Á§L8cÏYSdÞjר2 ?àî×èÐè08 ù·°GËã®M Ÿí"åÐfñÕH޲r³ró©Û‚&íaoü‰,×t…ñ H‰ž1?�LM,àÎuN¼¨…?ùŸœ¼�$Ï‚ ù÷SÔ?hbeÒªCò¥ ]eÍšvS¦C6æô¨±êmÕÛ«mCZ—¡Ü0Ý0ûcûc«ä)Ö¼A‰”ˆ&ñ0o@ß6þsR¬“çAQA›_ξzS:^:þ”ôlèa‡ Òx1`Óĸ³ÐÜÒE&€½÷R�LÄâûîµ@ßJdŒ++<†gÜelƒÒä•Ç&vü5=;¦/{øò/bA' ‰�’j‘jáŸçŸ_¤jÎ5�Eô6YÅŠu�umQ@µWµ·AX‰]‰½üþö'ØLYüùZZÿ’ÁÍîYu·z0zâNé¶ŽýþäÙ¬>ÉÈû­á„ß4ŸdÎ çé+q…ÿL›÷­'SÒpJ‹îÕ#ÚšîÂß´éС÷�$Yéw§SºÖØËcE·Ñ�j¨4Œ]¥:\›™œWG-Ÿ4 LíÜ�äØÂ}0h“ÊkÕ7�B<™§XIívÕþÿ5 ’¯8mEÚ ^ µÄ4'è:Ó˜_KÄ8–t¿¸B[ý {�¸ö‰ï¨ö†&ªýçZËV�|UöI…èÏê+oZ zçѬÙt“œ X¶jW;Ì [õ9ÑÜHPí×jù\[…>c§uF|ñZ^º¼|Õ÷ƒR§ÛI[�QÖ°˜þÎ8Á[­¶`|TûµZ}“-q]@AÎP°ùÛQW'ÁA‚ß J“›:®£Ç<ê)e2|½Ž£ò¿mÞYú´Ë%†ôsr^$d‰*¼Ðß-Dщã²8=̢ڣܼwö»%8?Ùë' •8YÏçü† ˜�í£ÃIDÝ�‚u³Û^ê2æ;äˆØS¿Éîmñ�øæ¦ûÀ â#““údÀ]˜�¶ß"ö"¶|¹¹ý~8JpT0 Ë3€‚é¢D7U º‡°ç ¯6¯ö™�(>žGÔEà SbxÏh|SH€Lâ@Zˆò|�n6Ñîte2úvÞ ¼U8Üó9¢rW?ãóc‹�Û¦=~³ZgdXdX./O¡-Ô‘´#i1›1›f·¶#b@Šˆl‡ÏäBÙØìÙÈ.É.Ý=rIõ’ê¢r1Â]þŒ qÙN÷¾²ƈު{Tzغ«5ïÓ\@éôWz,±šTéì›·2/%mðV¼E¯¦Ò+8ËÀÓ nÆ—ðš~‘›ý¯ïò?Àº�ŸCŸøÀü+?ÓManÂ[2‡ÍzÄÏYÇÕ?³¥L½A G3#"È´ ŽM 3šösÒqÒY¬5ÛÏ� ÎĆvSgÀñ~8 dßþº‚ˆªë̜Ŝ…|èE6ˆ`:E ôfûÌSz €…‡èæ)dÄš�B4sÕ x¬… ¸Á d¢èú®NVEÅ߉³]ÈÛÒã|Œlýæ¤5^WlW¬¹çÂS¨ú ú ¡¡6ãf¼C ŧˆ–˜%ø >+|Êlëjë¢XÝJÚJ‰%‚Í”ÍÉ?ï]¿0áR¼ŽvÊxÙµˆÝé°ßèÐY÷‹]6¼”¨#õF`V½¥ü‰Ç—ß ¾ Úß§•n¿às'-!Z’Uš·™”Ù&ΦûÆBf[œŸÀ²üòõ¸ºàÝöHTûõ›—‰æ�¥ª“î1$9Æ-W~<§Ùv£wðç-šÙŒ—‘L4Ç(QvÉ^¥Õþ> ãvBÍÍ8ÏkCú…ÄrÙéùó"ÎýdŒ—åyu‡ýŸ›dÇxqÓ·¢ªýjí‹UØ,Ñ‚®°¾‚îñhóØÛÌı¢KlÛOÎMy7|ëô^¢PQE5T;¨Y;pD½M+¹­Z|YÓ«UªIYÐ�Ó:=ñ2yZ'gK“qõM£üšŠ* Tûïl%«“h;=�i*1³úüV~u•1ý3^ö†íj“S……‘J^­´¹Ÿ0ª¡Ú?Û™…ärÞ>Ý|þØ~GK9Ý¿a�ÒOòá.×Ú!ƒ“”fF½âXVgUªýZ�ÛuJ]Žd¹Û é™Òk &ó† «pѰQ·r ·‡ÆîxÝï¾ Ç¢Ú®�ÿýu« ‚áÎ,o™¢tý‡›µìG1â/K}xèºÑÊC-#îŒjÿžf¬¹â$÷¬HfÒAHÆŠI*ÇžtrkÆDÍ÷…Á,ZzãÑß4x?lò­ãAµ:žªÖk¾ýFS©“¥‘»ëÅ&ŸG킘 k÷ü”æi™2º÷÷*Æ];lí> mHÛzªäwg-8ÆÔ—m©Oõ1 y•X·lï»Ê\�EÔš±ÝДÔ�¬\)‚ë6”ÐF&å¹È5Àˆoyà~´ïiß3ØÝ�n/ ¦a»ÈðNÞíÈ’³ñRõ¹ZÜBÜ¢(Ð=;PÂÕó® �Hùµ®s]§™½JKÉm²#, Ç"’³NsJ±È=Чn?yLÏ0­{p³níq„HݹƒîœÁöPöP¡S¼x*Jn@n`ÈjÈJp…0dt%‘ÑÇGšPͦͦ”ÌMëMë‰RXRXâÄ*Y 3uæû¶ÑCE=ÞS„„·››©¨Ÿ3“;E¢¤ï ·{âq¾Rvù¶ÁYDÅ„Äd€[ñ—S|Œ÷\õ>QÍÈëddü5ó‰àŒ�EfÆÄ¸0—ðÆ¿LþLþô¡ákû�ß‚û�Æ= `AVZ Phç˹—ÓÌÔÌ4;rliðzu€,(Íøa¾Yð*ÒTÒDÈŒ†:.�Wû rør‘¥âI@12_×êÅÞL­ ƵbR/|Z¸:p.¸ï`ïŸõ™_¿nÁ¦ÍÀª UG\G\n^nΓ¥ÇÀ @ôø3K(”݈݈ÐdL@L@’¤è{Ñ÷£QŒI°™Zúsï3.ŽSãè1qö52~ «=îƒfJÅôªÃûïÎ"päÓ¬J:-ïh¼àòd<rmÒßÙOëÄ/O¬¢óᯱµ™ž´"‘ŽEŸ¾‡ßžl­��žzoô`åo• âå{UeަJŸÂJÍuIŰj࿈] Ý‹‚ž…¾#úüôÌ`jÏ?mx¢ü\Å2jæ°ç'úçó#T/ŠÅ÷CœáFwŒ¼cu¬{ì¨y´KùâþD†áo]Ú%¤€Ëõz7áV÷ÂK�9¶rfà“›¦¾_A\AÜE±ýœZàhµa²ÊÚ©¢•ø} ÑgÒò¢X=ýèýèLA eÖ´éyÐ��ó0™øL-›–dTî*×qøŒ@ GÆÈ¾o©e £Ð�SéFü^F”.Èfùô5¢Ù.Ÿ(3æùùfm]mï4–ÝË×PýŽýŽx?§õ˲ºéz'H¨Ñlé T÷‡î�Œ::Çù)E)Eó)ç8¡gÒ—øÅÒóÍ=ˆ(�Îl\)Æ?ììôéªl©¥ô ¤é´äÅîÔ­ôVÍ0@‹¦oåîB«m²–IrßüŸÿg„~v€<;ÀÀÙ§æ/÷ãì‹“µ#˜Þè}4h8lÖïüü˜¬IŠ%(4ÎÝN8qò3Ü#íÈŽ¶+^xÉ ðº,¦]$ZƒH‘‹Šà{ô�C_Ã׎ÂÍ—èö ³™þ!—Ò–ªÛ/,*,нõû~�éàÜô`^Fš¶ô¯zH�Z´p§L¾ST  `ð€<©@¯|>1€Žõ©•Ã4'‚N Ñ"s� °^…‹ƒî"ÏŒlqˆòJG¦±›Ç;×p5ïÕsB�A¬Õ²Z‹×£©9¡’¥™¥ÙM‘ß ÕîØî(+&«ør¤Dg„èŽÔféf©<}ÒO“Ó˜˜dtN¿Áf*”œ©� éoÌçn�)¼X Ë7;;�õ_鮾G q+Hí¹a™¦tì}�8×x¤Z~ŸÃ­& æLJRæã+Q¤¤ed*?,Ÿ¡Úg›éª±�O¿èGëa|�K-B\œ+6íýÝâ¼ƒí¯ŽÛO^»Û<½Šjï¶|¼×¢ös& n¶p™o•ò†eùœ“ú&~+‡©š¡NDŒ¡ÙF¨åyTC5 ­]ïj’à&Úîe>QMS/bWXHmÎ!k…Õó‚¿±k}qJŒš­xúª¡Ú¿¢U(TpQ]§hÔÂ�÷×­Ù™p:]EÝÿ�]œó$­‹¢âé Æ‘"ºSäw$Oݽ ‰ÉìŽIÊä¸5¹«7à2'\‘¡—èmøC_9Y�T�ôÞüyÐ~ †p …0œnÓÖ€Ç8Úî žˆ ŸgÚ_'SSH-A2³ Iï» k¯ˆ)`þØH xµ�ÁÂE†_0j/?õ”¤ÂAÜ9|†è¥´€>”¾>õ`žižé:Å'áO„o 3eS—ò<¬ÅʶÌ@`ÈÙ^ ä°™Šù9S¡7½È ¶çúÛá‚�–îX¾}öì""*NÛ>sù5Ž.“aDyôê–Íëîôâ™Q¸Ów*|‘9¶½å¸‡b´_1_1îª Ë~_©á¾ãÁ4¶ñÑÊ<nƒ”ËkÌîùsæ¦å¦E¶ƒÞ©‚<ÖÂ#@ƒÉZ0Iâ_6@×™c§�©ã„t^ ®™LŸ0vòOA&p‚¶ci\lŽáá8SôR\Ýiœ�كٺÊi \¸,¾Ó|S™ ê[ä·H)9)¹ù.M7�"+éj(ôyôùlY e e¥´±´±œ-=lèÞ˜™ú«=ƒD ™ µx®ÕÕ‡í�A÷ñ™?›Ž(}”u²Æé?½û°ŽÂ”Bp¤IçŠx\'É_ï� °7&ò0Œ@ý¼¶Jd\—'Cëa³~ïçÇä»_ƒò¦ô‡‹Q´1´ ”¯G”û¬ÓPYF3±2Ò¾ƒˆ¥;p‹U�„÷ÎãN« 2\¹¼1ò»Ãûm?Ú~4bB½ŸëE¸Ž2òñš=@#!‹!ˆ½7v…]åž¼•‹• Aè¦6¨ÁÙµ$æ=yFÃà9 Ð$fRCÆ“ðôìÝi8”}ßÀq’-¤„²FÉ>ö’]‘-K–BY†Jd,Y£,YŠ��ʲg YBvQ‘�%K"»§ó9ï¹çvθ¼¸žãzº¯kæóîûfÞüŽ9ŽÿoÎã?é4«U&xá©ðÉb³".«íj9øŠÑ2þ=œ]Ⱥ%»Ñ›­g{ˆñRWÇǙݡõŽìP©C©C™¢™¢ÊñôÆ 5 7L^ÆæP|î|îšìøìøü&/U_ªâ%4Ä£fªñ_w_ÑÉè¦)˜hœûêøÜÏÐZ§ÿÆ ³þgîMÀµß¿ù"bÝÜ.? ›£¬KýúEÎHºCïŒZ°û›êÀ€nß1’ ›™Éwîã®ýUÍ#ϘÈJˆÁ÷>Ò/sêù\9áê)ä¥ûÊñyçàB¹?:œ×îŠx½Á5\û«Z “aŽh­•‹Ï‡¯Ö´�…¨ÞGZÿì÷!êŒqYy�d|�¬ý>ïÀÞp\õÿÖæ—ÚË¥m yÀš„4¨è“óùûÙLÅ»£2Øaë¼ñÄ֢߲óx¬^~”„ž� SõRó¹K>3çOSÞ™YØölÔÙèÁ¯³Ñ•5�d(¿/çö¡iÅܽDFP;)h„éfò+_Àñ¢rÓÚúãö˜R8éV-�•É€ogshÉê'=±Qk\z�Û§¼UÞDÞÄ™Óßã¶ò—Ds�BQ>8­½_Dùüv£ñ•¸žGPÔ9Ý’é~Pµ<e½�U ˆ@Šbóê9”¼�ùTº^ÒÉU<õ æ+îÑ,e�óxì?#lŠJÍ¿Ô/ ÅþÜÞËà0¦¦ÍH­gÚP´±´±òÃòÃ+Äiú@:ݘìÞŸ� %%žØ%� �pf¼Ä±ÄÑgiOt òÕ³öÈÕ˜Ø×çn[öyæ�öÐçÊû¹?°Ùù…®ÛÀ¨*®:ŸŽä.ç§Ÿü½ßÄÚsõ�ñï„¶Ù8: í¹z¾ôsy½lÍøüŽ;¯pà]’‡Ÿƒ:m¦ÅŠ–ÁÌMœ’¨+^…i"ó'€{¡à<ɦ€&æFÒ!@è @%ës_4åÜ#ÑØ¨Ü8çp3{qc+:B:Bš•¬}[!¾¢‘z¢0åQ=\.á´UX…*nʶð  ö-‚(ƒRFÂ@ºÙ=ïPœ ¹'ý5U¥Ød®ã§Þµ• e×ícÝ ÅF(±š²‹„ìby<6TÇÃÁ)`¦†ãþö¬;o+¾ï~ß-«Ãí¾¥˜©˜¹¾ž¤mÓÐjÞÄô>Ûþ'TYeY¥xë8Ù8 ò ò`„ât¦²ý¦‹$i=.X«t<Úi¦"~ÍÔ­Ô0y(]óhþ.·r_N¥Èº¦bê<æÇ0I�ÙÉp¹>ÅDmí˜áQmpRÄ¡eÝiðÀF�ÓM@��Q°Õ¬ä¬$í%ëÊ­ÌÊÐߣÔ,_H4„æù€öJâéHÛ•Î7Ã7#Þ2 ÑÌK1‚òõJá(„€ŒI@¢…”%6Ö™€•EOEß1PµÐ”³D·'6µöAÓ>qÑ.–«xÌv³WµÕßtÙ^…QKD„Y„™\y³ù)(IOIO&m&í&–Q—‘ï qnLlKõ«PKÃKÃù$�ä�ä·.Ù]²‹o5ôý÷ï'8S: RÙ¢‚¶åŠ Ó6ŽßcvÚ-A?ãȂ߅P®&ïÉAžãR¶½™7˜…kÿ÷-Åe¼©(‚ØB‡_­�•£{O†CÝù15›B…3 �Úbbõé7.ÚàÚ?¯ñÚ¸! ¼N)T�®|{YZÓNæi<ÂÓVùîÉg–4Ab^ µƒü¸†k¿[kNìñw3iøx+‹ñÀ‡`f;ÃØìîƒt O|‹Jér3WꌰàÀµ¿w{t|Õ&sx<ñ!o[½†ŠÖ#ªéÁ…ýj°YQõàK9ê«ÏV” s�¸öÏkÞ>Š"…ß§®—�¶­Ñ-ù´�ÈèÒ‘oÈù¬x.Ì[ì¢RÂ÷S”üø p ×~·ÆGe“ôU´«jZ<áQA7Œ{axÊÓÕðndˆÑç—a½ÃõÉ)ŽËpèY_æªÎót½ÁÕЉ¬/0o©W;�õ#�õYÎY%BIù¸ÿÇG»Â¿\HröDP3¦cù=–€eç4VÄü{sL�àt€OÜf\£‹ûÐŒ®wwa““>ˆï•ÞjÓxÓØµ˜ui«L24‰yº{¹Q„] Â ÜtüÜ ƒ?ƒ~È¢æõK9ý`çByo ÖdÃs[°‘5¶à}RÔµå%ʉWÈa³NpS2Ñ©k^þ`S±ò³u÷§RLÄöÆ×éþéþ“‰ ÖÆTPÒÒ‚?2ï&VÚ�qÔašÝs¹**.*î¦%|¾p^�ƃv@w¥”øš‰76®Ë½°Ù7k¼Ó®zÇÆnÙÒk>u>»úU§nܹ ½òÓuM4ÖO?XdŽÊj‚÷™”)þïJ¶Ù••v Oh0kY(âÓ" ßiÖ£~}Mëª=7T¸šº>Ú�©ú,!ÂW¢70Ý&(¶gžõ¢"LÀ$`àF (=áÉ °t–G“Ž)|‰M0#øô[ ålØVœžœžeþ¶Š9†Æš‡2A’d Ò^¸’}jt£þ+ûs÷Ãî‡o0€šAðò›r Dåa7ÕF@®  ÇÎh›Š,‡ŸƒNº;È…=Ÿ]”9¤›J‡ìzjJ»<µl(qRÅ&Cq¹=¡OŠ{)¨)¨Ùf� [tCÙ'Ú'Ƴijì¾ÂÙv¤�ŽéŠ­ï¨ªÈªHÇš¤Œ¤ dÆ(Ï(�–L t¦ª{YU¤:Ç×õ®ù¼["¸c¶ÓLEÿ𩵣C' t³¢5Ü"ÒlŸ¾É‚I�¸Ù¤?技@·pá&§³š©ÏEÙ@ðÏðM´‚3ºØœv$‹i|nßêpÿá~>ÄgÓ­¾žA{j‹~æ›8@Kv‰äù^âAstÊcär,T´PÚ\E›~áBéšä0^÷–Jasú6àSÝe±�� É% QM‘Dlöò s^pæzPÆÓ·éμ'oB½½0nmËZÆZƽ�›š.w¡´ZµZãFãF;¼[ñš,AS�1­ŠÄ@…ä…äM>åVæV~ólN~N¾Ötj5SÔÿzï­…]6õmSñT¦”›w’vÚ•B?‰½:3O¶ú¸&!{-+q™‡tå:®áÚCs�«Ÿï �¬>–ÜœpL] ¼1‘ÁéYõ¢Ø+ñγT†óž¨žrÍÆµß«½õb“Ü_�o@8j�P:]›Õy¨&ìq«o]3ÂÎêÛÓ€ IéP÷•)\ûkÚ§ÎS°¾„ä#9|³<±ö¬¢›®žFœI4ü¦dTMz&5dó¸†kÛ5Iµ²éÖ·z9ÉÇÍ2F�㫲£ÏŸelA’­®¿¤äPg½›�k®!‚®6FÕý¸Û+Ÿ·ø‚| ôœ¡>W‚t [Ó’õv‹�›\?³Ó9#æ×9£—Óo/”A§¿:Z(²„IªzÜÇŸ“žþº0` Ö(Ú_šö ¦M±µJ@–ÌZÀB0]Z8!|›¼× ô€Â–é{[U"+‘_ ˜oEæŠVe€¢™ØSh´ñ�ƒä—©VãÅÝ%¨%¨9v�@, 7Œ@îŸÒÜQ¼šàÎæa,›ª4€*?¹Âƒg ïŽOϦ¸ÙT°yªö�‰ ÃF¹OϹòNõcOÒB¢tùíñ®h·6¶6úÁðaðl”ÕSïùüÇ{‘mö4Ep+EÿÝu.‡� "Í+æ;Íz쯯I&:O Uèœ{ m62IòµÍDF“§jwÆ=pVñÜÓaæ™qÀø¹Ï¯³‰üsh¤½j±q«»\ Äïߊ&—&׎īz«p4—„KÛ(àŽ‹d1èAüzµ{„�QˆQȉÐM[q’&¨²Òç=ŠÁCÀµ‹€©›¯°º 0´± ªyrÉ&²¹±aƒGBÿ#n&ݸ/±ÛóxíùŸ}C?·g2Í7H'�edœw“�¢¸Hq1R5Rõ¾™iæ‚ÈÇ S¯‚T”÷iïÓ‹Ñöö¤x¬Í¬Í±ôAÿ¾wÚ™œ)á)yš·Æóüe�s�B–íw:SCgýwº»ýŸÖFãÃ÷�´³…‰±"¾Ð³Œ©5_Jzç=¤Gª�ï?¦oovÏ,Q@f×þÞÍ ·®€å„sew„³ßˆ²Å¼]£A—’§€‘£¹lÑ“�둯;Ü÷TåáÚïÕúû‡ðLÂÎZu g^Xcjå©°ºJ'ÝÓ#7V³áË^´û�Cܾj¾§‚9¸ö{5ÁàÇlD»ª ÌÕ(¹.÷ñH8»$ý„MŸ½`þ|Èæþh—…œó|XÞ ®ý}Úr¹ñÙª<ýûcš*¶�•psµŠ¼"Wø:±—¬Ÿ³³#¼_†kÿ¼f+lnjͬœ"D§Ý<«+z�¶¦îz i›‘ͨâTŸéQ}åñ¼k¸†kÿŸíàmf1Jd†\ä‡ÂòvûâOþ�÷¿}�X!¹=œöCáò›§^!1íT¸öçš{xï;óÖe~¾<š‚IއÊé~Ð],Ÿ µ½FÚD¦ÇVÎøÕ¹©�v9qøxxL²Q†PÂ-9bh#ÎxêOŽ©Ã4“Ghªœ%YçéÅ{Ì&ÐY}m(_`ÏAûñ�à ››Ç€«Ñˆ'[YøYø�|k⸕âQ4Ž”Smç¯Î:À¾‚®Ó­Ü(eÕ`Õ�Õ9ق“‘/AVts(óä€Â*ÀÉŽ~$6tœ€S‚šŽƒžDšŒ+=·Ä¦ÂDº�t÷ÝWîqµG�.š“IÃj~èoO0$Lq"}"�3ñȵ9Ô~Ëý–ü…ü…þ�æëW<@¼ä˜¦ÞðB-­.­ž�#8FpÌèäg™Ï2†b Йrîã+\îœj/Ö ‹4«åÙi¦âÍ”„Ç5(ŠEW´œ[õî·/ºôöžÆ4/ŠgÈù(EÎY4X�i– !6�p”¤f£1.qƦÓÇ9@_þ¶`+—e—eß׋k[ d¢Åæ ¬{¸üF>«€¾(4Nxsá½[x·¦ âûêó7}évˆD!äÔ4*¸-°É¤ĽþضJbw¾pFáÓb 6¦!Daû>¨Ï„d)Õnü¼®.]9»«`{“„TmÂéÂé§×Úgß‹@=?ùüä’ý’}wrÜlT#ˆCÓÙ*P²4²4�Ê€gÐzî¤i¤i¤Æ‡1AwáêNEÄŽzÓ7|c¡} Ms˜²[´‹^Ÿe’ú–Ý�hqV“4Ø\­ÐöTsç–l¥[¦[¦—.p|«I4<>”[ƒk€EŽžQÐ;%½r_ßGL�˜Þø*beF�§�ÈõÇçQ_ BîQÁ¦©0ÃLyBWtþ-yö �Q6›'-ÙzÊc9á¹<š‘ªA‚£/êè6¶Çk±.˜y"óÄÕüðËZPÒÊÒÊ”f”f¼ã3C»¨A �0�“ZÔ‡.¯ÃÏ^àXàøöî<ʽà¸%² ²ž,YR–’";EÙ—�•-ÄFQD¶È¾ŒlÉ®(û>²…p,‘’]²%ûö;÷s7×\fÆñü®ó\�ÎóŒ×ïüás¹®ïç;sßíµ¦•¦•_6›�3õ˜éÇg¾�ú4M�°4~[¯�““ÜñùÈ]8ú¬ÿJw§ÿÄZ}ÙâEdr³zCV× ›N�ÚUÖ¦èâó„t™ž—bJ£Ùóof�CqíïkÅž¶®™“B}M~—NR1t0¨|é}}Ž„¦ôéA«³w’ƒýqíç4 Ú'%’pï£ßÔé”·8„í[Ò#ÞÕ¸žVʬa9«UÝÓ?3®�k¸öw¶%yÆ7áï�FžèåÛ~­Ü¢Š4Ðꎻ{¿3zÌýNÓ[Ä× ¼N+J\ûïiÚw3k#Ü¢ç©"„ø¸}”ÄDTˆ\}¼’¥?ž³Ba/¥5o=þ×pígµ¢(Ï£ÆÄÉ’lù¢Rœ½Væo²ÎÇ@§ê8¦×WW“¾R@‹ŸZà®ýZEZq\Pï#g|fŠ´YÝßE ´´êË¢¹åmkÇÉžñÖÉ­†�D…à®ý¬–௮°Š€¸}Ÿ²M… ˆ\§\;C‘W;dì¼-y²ö)CDŒ±×p hFiì­)L‘ʳʆ7‰Ÿ>z}šúI�SÈ7–xï*cQq~mX®áÚOkÏ<.Ý«²T�ðYJê8}—g×2Œù<³õ¶ø<ç c@ƒÁ|�£&®ýœVLÕ{* 71 � –dÉÓÅ÷ÎÝÏ{Q§�PéšÈúD¾ÄôÔÏd ×þ»Û­L¸W¾(_‡Nk[îÇWú-r7oüJÏ ýw[’®Ì]ýIiµµÞ�Ägå iÿëLèwœ¦üÖ¡…+�ñf܃³…v»ã„ããáÍ@¯�¡ƒ©Ú£�x¤Œs*/9Naºo¢ÀH‘3)VÓ-qÃdá•S Ð+<¾÷_L­+P²öÊ=ÇÆèä¼0`*µ§~;û>û¾­Ö)�í6”Q2/ At€§;ïiªN=ø©s«EɶãÃC—ä"ª·{’-}ŠÀ à ¼’] ÀF¡ ºŸîœE (7Œ§Fð)S)6jvÍÒ"“Ö‡:{Ú�P^’zÈ`Ë)ްÜ›Dþ¥sç òUî êCÐ=ˆ}[cSc³Å’[I RÄÔÝš‡î­×[¯ùj™ù‡”ä”ä1±‹<è÷ù0Íèwç—·ˆèß,¿ÏåRØí>_ga3­ºäæ�¬ôoO2¯t“oŽšsO”!ŸOŸ�#XþMƒEY~ ë—)_µóÆÿÓû|‘îóõ:•ó4„¼XXóº$W•ï6ëñÀwÛ ¢o¢K¡ÁC):¸iÅ@r�Xê&Åj–p€húX·ÝÐéQLr‹£‚€ãb‚¥€´¢”ÕQæ\l²b—÷æ#Ö¶»¶|mùp0EÁv^_Q€¿ ª;š PíÒ>2nYã•5i™�ž�Æû’©­-kû�îŸRŒ@ª´["_üŒMKÀ•ŒIÏ:Ö^|¢Ùbl ›V„cÔe†5Ê&ƒ§·“Ã|þÚs<Ť;‹¿àÆÍ}øJóÕÄtÒç¤Ï=W®¾àѺÂ:ĉ)ÂR �Î!Ð!��à;Ùw²;Ï´â´â„ê¨ÖÑgjIÖ¿!DòÔúôb"ÔŽéáËÝfêé3`~©•@.JN¢�‚óF†D^&þ»¹‹€Q‚󷓯Ç+br7¿Ð ¨Ë¼ÌxÑe㉒¨y_›@‡"ÀÑV�Øíî¶Üm¹Muk»næ¤Ò¤~Àù> 2 xw¨ßL_VPV�OÕÄ +gÇI@éY¤H´§Ô¦"�BlÆéµvü.ÐìÑ;õÌa~ÅØˆ¸ë?¿u1Û­’IJK@eÃÜ[y?^öή5Ó××ßX^´Ž»‚V+‹FD#”�ÃUmiAEÒ˜È�¯Ñ ÓÍÓÍÑîêÒ?iÖdÖTѾ×9S#‚þÿóïúLª)‹z8ñšA„Ë1È Áæbû}½Nîü@ÑÛN2sÕ£I £TSIÚ:¸†kµá=¼^"2Á·Ÿ;€HÄ3¨íŽ® }¦âË:}EXU�†?ókOø£¯íÁ¸†k?«9±*†x’~8À¾õéÌÌÈW¦qæÄєط7¾U>5åJšHÖïÒ~‡k¿V›¦àÜUcà™ãËJ9Qà¯ygƒ0È9›yäèj¢y*%:é7DNI­¸ök5#Þ˜µó> 7?­°DEPÎÕFGä¥ð7Nžâ^·‘Ÿíþt\ž˜½G�3×pí¯¶Þ3'=˜žôãÕ[®’Q'å›_Óð1^»ü2ÙÞÇ�6¹C»?I×píWkëtå/N�Õ’k¼/ô¡¬óe`—¦éÒŒ)×§»/šÑ1{4øxµÖÈ NŠ_©±|1Ö½�½dìÝ?â趯]s)P¯}÷ÒfrÌë±ìDh'\¼¨¼¼š{·ÝK>ž£OmºßýNH£ߥ… \«(mPÇ$·å€pK*D›”¦×a*Ϥó ¿þp*îKA9âŦcÿ{@°td;ÇÏŽŸŸ¡?x›5e ‚Ä›”<�²—-)‡§ÉO]”\66<3r*Ešžx¢�Öã!•6h»‰Ø�ˆ¸Ø·îm��Ú°gz—… ß¡+Ûœ‹5£W>�s^¥\eªàÎ&ÍÙy´÷jïý<¯žZˆ.[5[µM«M‹d6Õ)”1ú®pÇ�È쬈ôšÝÅ„‹ ƒcìg×еLµL f fÜuÊ?U® bÆÝÏG§F¦FÆ“jêkêËðÞrÅrÅ|(9Sù?öŒÃ š¿}t¶I±qÝWoXçþy·=#ú¬ÿŒwNã®�ƒý\šÊ;•líןg!ƒo6úyFB¥-9”Œ¡¹Êp½¡2z×Èð Êßpí×oÖÙëºî3f› ›ÂIm1 µbã{¥‰Ú(eI¨j¾gÀ¯¨‡k¸öÿi܃­Ó³F{3ã %h4GÈè™ÛÛKÏf²p�I¤ÙøyYö2žp?‡k¸öOhfbøSîÓøi=fVÍ>± {ß›aÜ£:‡Ëå_JòvÀ|•¤[$¸†k¿Zë½ÜÃk^–fW³dñôJ‰™jòI8ŸZ£¯càQ»¸/{Ãð¼i’Ýq ×~µFÕö­éæHF0ÇD Sn$Á!+³Í+]Ýg Y<¦ xH W†cÝîlùý§Çõb¾cþù- „ñt‡›*JÑz ï�NÌÉpÔ>­y}êö)||�ÎÝö@Iøxx³“ èlG¨ìPT$µ§Ã+}yK0ef‘ &ïÛšìçĤ¬Ý`xC!¾8o¹RŒ¢öA›t‡V-€ˆ„2d»æ�æA±^ªíŠÉPœæ�žÉø° ±05�Û»¨&}úï¤á¤áS@qU .˜À�Ð([#Òñ@¡ à·—2þØpò˜÷™ÄJ¥�V¯>['{ïW† ä ‰¯oµQsŽÚ«Ìùw$m‡­3fwV«á UU`×_d³/C×ß?Ì0Ì}~ƒÄ Ò·Âä§2‚®¯¶¯Vy¿³Œ³ •èåõËëã¡• è3åiÍjà/åvïŒ`}ù9mêÝf*ù�™2(«µEW¯Bé…R7wEsJ¼8�ð¦p-È5µâDèeª JL,âwk!<�ÛÉ(xDɱØdÎp¬KU‰·#ª"ª̉´ß®¸%ÅÉÛ‰ˆàõD‚d飮rËgš<-+-+€”’!~Dê=5�äòp¤àzéV6æbþ:šVÐëf’w:G÷cÓ«õî `Ð\AÈC£Å…y‚B®’äP{��­Kö‘[‘[µ®À‡¿d¢ceí©ì©¤~åšÏÝbÇD(5u>>Ýdg$BsØ×Ú×:�òä0úÝ‘LaÝ~ÙÚ1a�ØÂTgӎϹBîÑC·âuÓ¨�>0ãM~K[«�Ÿi¨H`{‘Óã@%ñYëÚ+ü'#êm`kt)–mü2‘$¾G?¹Ã½�¢p‚\è¨Á…�œϰ®î6ë)À»|*l¯¡ËX}�¢æW3Ñת4Œ‰íÑœ'@6”ˆCÿ ›¦_Sn€Â)2]€õÊ@ŠÓÜ6—žµDRû…â¶ËÑÎÑÖýÍQw;·”q6$S˜¯*à2u) èá)ù9IÇ�/ÙÊÙÊæ+ QGPØÉ-*­´©}0@ò_?pT`ƒ'°/ÔˆÛ'"7,/u 4ÈÃ&ÈÙæDÀ1Ëš&[ÉîLýÒ¨Ãj"p“�i„iÃb�ŃÛJËÚ:£{!ôB¨úcõǰ%cYþ¡J1ùä””¢+w.wtj~Ðüÿfawa7÷D1r¦Ì~¼3ô€G”¼w�kJ¥[;A{(«în{tôYZ)£?$¼€ ¾7""ÿ¼û›IhÎ_iîÕ ªZñ�ö­Ž¼ƒ¬Xµxêt÷§�étåPî±®í²àXjÃ5\Á¦J;Ç^«ÑçU¤æykņ×ñ­î�ê¶‚ [üÞG3”©\ {Œkÿ{MŽöáíÐóÊNÞæ¬ a¡æh�窑 ¶Ïo{mr lšh‹¦"ÍýÃù%m\ûûZýjûÙÒTús�³š3� ”øœ–Gôc²¹W+æZ®R5Ç·ƒÑâÚ¯Õ²ìøWsî~bÓís'«/p*¨ú}ƒQ‚¸ÍA–Hü�¢á˃AŸ)›tÞzCpí×jÕolh*=³Ÿ÷x_múàì þñ�øòÅW±oZ øa]Éí¯vW.«ý»íNŠÁ�©|ÃýÇ•ZnóÑ2D« £Ÿ[Tb=¨ö³÷ÍÔÂ;B&v|/=òÜòì�sË•~‘6tfKL(êG&ŽX ç4¶bŠêÚ÷ @ÎZd9%³ÈŒ ~äH `²±œ°åz8…!¾8›Ösû ÅvöÛÍÎZÉY<Ù®iÅl É&¦µ@'ü�Ä ±é™³ oåjåú^¢ÈQ"6ÜAgH^§#Ð&µÑ]pl¸¹§KíŒA�¯®Q5°RO`P7Ô¾^°Ÿ» ÿä|<ÉP¿�«�<ãÎÆü/ ñJóJ[0Äx†=FG(F(¦¯/ZÖS‰¶cr9ñx Ýd ÂÔ9Ã1ÃÁ›ååqµ�¡ýŒ~è\hêM‡�ynñ`i·ÊäW»�Ñ÷ðˆ1 ÷|52p�L9ütªËRÂ*"I/fI¸¸ ¿ŒéBöqNá`„æ‘𚃓‚Gÿü¹ë'v8£+AÍ,OV¾«2„®³çÜqw€œõÔ?f݈€‹�‘f/…_2å‹Aï×XÒ^LM¢ˆK�ÂVD0¦î{4P€Þý ( 8Y^ …ŽÖ‡�Û£�©ó ·þ�½;‡²í8nß’%{DÙ²‡$[ûR¶e§„BˆˆdI!‰û^¶d‘} ÙIÝY’]–B„lo×{ÝóÌãšñøãyžû½ïûŸÿ¾‡ã˜?üfŽcÎót^ï¶óŽôŽ|òXÂp»ÐZ´R”¦3éI€ñ© >»òÜ=4­_•$”$Æö€ÒH@%y|æ Ï+uÔ(ŽÃ2@FøYlL{\‰íº_³@…â —ÃfF¯‚gÆbˆêU²ýÓ\™Oœ?÷蟉ÙY÷’B¸D¸ä{à%|I¨½‡÷Žš‹š ¯9Þ~¤Љ´m¾Ššœšœ.7f5f•Â.8x#$s:Sµl<åÌoG¦ÓÅ2kLÈêv›©ì_3%'œ[Õ8¦€æ¹¾\`eO…‰Ù_ÿ!ÀòšEDËì2¦¯ñqµ‘ÕRfÀ…#ÿôç]ùÀµ�MõÊÃë:óÞäí‚^½Êïù‚Ü.Ô�ˆ e¨²£  óÓ× ô:_"îÑ�××­«¬«ØgA‡¦@ÊLAñb(Þp€g@éÃÆEl2xë–ýO$Ag®„åýfQ»‚ qÙ¼ŒMYŒ7ÛÈSë™Ǿ>~û­?qgJá\<#T#T/�¹Ëü�¡T•U•e%e%9ì›{D%@iÞ˜V|ç¡t‘ºÈz�>¼>K£"1- QÑ´`Z¬•= å”ê”ê»ÆŽ`Gdà1Ó0Ó\]d€žGI�‘”OE\¼IÃbrpÙ¼�r·ó(ÐÏ]dEs ËM¶·ÒÖÄo +ni?6Â{ÈÙ"†Ä«i²QIðXýçÿCŸGÏ£Hîpe\7iĵéÒzî¡å7'Ù£w›õÜ_/3h´Ïj…J8m1ù Ùz»ß˜ ÓûQ fÀ�Zs×nL 0C=À€FóÿþÄ ]aE[QQˆÆfí–ë€öŪîv=½=½¢{õ-¶£ûŽ¶Î…¢›�Ì `Ëv¥qsž¾°y壣–¦� ÔáëÀ zY+f�R"X™D·ÒŠ`CްÓT ˜Ñä4P;yúÇa3^F\Ï@áhm%7½�\¾®,ábx—8rg²·3\‹‹}"Ý÷A O OõŠõŠ3SÚ·ä€ØÈ0ÙQ÷%Ae3g3[çujuj)[�»“»gØÃ‹Q3DÎÔú°r4Ý-Â"÷;IDѳ7v;;�õ?Ó]}D tÏK~ëb�rjÏ@Ó!˜ÈÐÄ;ÇÛM—xŸ°ÐóîýJO_ʨµaý×þšmY}I=UÆ÷ÀM«{N":!0˜HdÊGÎðÂ\Úud…#á¯ÇæqíïÝf÷v_ª™{ÂFš%Wj$QyzÙºlÒÙ•²EÈRÇø\È#Gj«å 룸†k@[tB6)ˆÑ¬uóÒV±ÕŸ°¯º“ÏzQHõ2ÑÛÉÆN¢Ó£ò¬…c.¸†kÿ�V®Q.²ß‰¹ñ,�ºŸaõú°3G%kÏŠ Œ•�ါ¦&Ç2w_® ½®ý½›­7Ù¢±]÷p§êò´(•¬5<è5—ª€q‡Î \f±¨t’übW†\×pí¯ÚÎ+Š‹Ø™†GKÚœà–¡�hh¿ß83TýÙM`Äfº^ ä´X½5ýW\õÿF›ñྣlÊÖlôj¡ ×laô¥Ýáÿôݸö÷i|¶�\`91g¯�ë#M~úóyxtm7œÍ�C>Aû•¬+-¨T}·µ]>^~XêBÙõ1´¦n—÷-.¢?)br'®×��ªEÇKhÅä,>I  {Õ ¤f§EëBT`£"®b�í:ôq;ZZ¾!o—턂ІiP”Í´ë6‹‡@dÊ‹^÷Oûûµ‰·‰·�Î2‚RŽS�€\‹­xQŒX�M€µÍ@l,‡¾¶C¼Å­ Î3懋°Ñj_–àžñ¦ŸÒ¦cïéwÌ©i¦H"Ú™öþù «•«•‰Bå-3_úlWdW¤*©+ù’$I„‰pÚ¬J²P²pÊÀø¥ñKÍ9//‰ògAÐ} +ݺ-£x•ã5nUU�»íc@÷¹4¯Q~à�³Ê;õY¥ßÙ†¤‡c3­–Ù’Yº¯éœ9 þ†î_ïcHí°�ïÅJp)@^äàÁxÓB›ÞÝf=ï×Ë æ} à•GÐ|ü?W7zò"V1)ÀÊñ�w››\Q÷Æ$r�€PXÕO Ø>¦�&Ê9÷›»µ¼g÷YGú· ¹rÇ Ä¾};-m4öT”9��ª€!IÐqÆSáÁGŒ:Ž9Ž} IéÊÈ�z\)µQô­Îûùñ~×°1¼H5:ä9"¶?ç¢Õ‡ «jZ­‰š@ú��w¼²Ÿ&̼Z¨gYwÆÒ˜<ß>Ñ>av�ô>, *æMÌ›®²®²éþˆ�yE�¦GȨÈg‘ϞѨûªû³v·v�/kð‚ÎT᫸Å|Ú±Á­7§,02í6Sù¿f*¡á<%ë�>4dƒ£L¯Û< “�k|, ó%×y]f2L§(RÜ­d〒«\´Ffî(l$D#ÔŦíÓÛ1Õ1Õ‰Û‹¨l'�Æ(€ÒWã(§z Yu˜�ФùF… Bhk‚J&@EžÏÃ@ñÕÍoP¤+"‡ÚÏ?E`3xoî¦Û³”À¯j±´õ„6·—rò„ê6¦7üóoQN–¿:«ÝYùÍÃ�Õ3Ô3L7 µsê `~0¿Í¬Í,òã‚Ì�ñ@3ꘌU¦ HÖIÖÃÌœ¶œ¶ž„'Á“ô�> fªù÷ûÔX`YÊéšç§ÝŠMÎï¶7ýüüwîâÀµ?»kÿÃËËöyÄÛàòé+DË,ŠŽÀ®”~  ÚY_º� ± ±=•-ÿvº¼hêÜ(e]'#ŠäI% wA†Ã«üU9kòkòsS b�H¥êuPsQÎJõYE= /‹"›|j€SÕËo’‚ ¦ã×=\=°¹å‹wÔ»´¹ âYw;õ¬üÄJ§a4|gsŸÕè¤é¤dý¨¿šC µ µ¹U¸U MÈ,Ž€®aê,*}åÅçÅwÎ$ô[è·}xüYüY‰Vе¥SÓ>EÂÉžf¤wB�#öÝÖ– ÿ«0 ðžÛ%ðц£ð¾*Ñ+jÑ•]�çŸ, X:ø¬%“à1˜ýëµ%ñÖ–¬™Ÿ¬ ð9·†ãÉ8ÔeÞï6ë¿^ÆÕšˆJ�„$M£ MÙái="ÑÅd‚ ´ªo]|niSÀÒæIìUb€cÔO.´UõØw%ìh„d#·£$¦$6쎲ÛÎŽæt%òÝ—v€xµÞP°Pù\$ä`ÙÁ2äï.v€jµé Au f×PèXÞÅ€eajl`á€|yüœï d–8sôæ*6ªÜ÷rKö!3¡ßˆm( tDw¦9îÉÀHÊHÚ/±äþê‚ׯ8ù8yÑŸÇê×@NF˜B|UM &•&•xVÅüÅüe€‡G”'ÚüǬïgJ?õ$BRÌ©R%õ«£Û¬JÜnëÐYOØó°+œzí Ež³¦¿†“wÁ`.®ýç[ÆÍ‰–’ÂIÒËúG´^:ü…`Žkã=¥1-ÇÊšÊ)¢È¸øóû7Íqíÿ_rôr¾@˜ê¯ª\7jÂQóÆV^ÏEDZe"ÊÇI#äÄs†P©ÿaï.ƒ¢ÜߎÓJw)EtEBAJ@@J)9tHƒKKw§"©„ ´Ò%%"‚ ‚ÄŠJÉã=÷³³»Ëá™ùÏx<ç¿óy÷}³o®Ù™ßµ¿½oŸÖ¦ILô߭udŽºßêžö*d¢~Æb¯›TËMÏxñQôšXüƒ!wc¹ÁXS~ALûw·´3[ÖÓ󙩼½-Ê ×Ò¨>O®Sj+ò­ˆ*…Ý|]¬´õd+HN·ØÓþûš/ô’pùڢ͚L‚mãõgï~˜ä©Ë´¿¿¤å+f —±&K.@Í_†i˜ö»5~*ë¬O¢C ŸÅ3ÒÊš¹ù¸gMtƒeï¹é†ÄE软‹�nÉ~à¸!‚|Öÿ.g %ÈÜ—Ý{ÆÛUfÑæ ³~éϳ~«_»4 fî!z¯FÆTU¢ÂryTUÕ”ãO1ˆ§l(ª0çœçË ±5Tžy*ªÈ>õ}ê#jg»Ëv÷¼+‘‘tÆšy¦b4=KÞ¥I[ty¾Â}tÐL•ýœ©`«³vÈæÚ$ HÕ. jB_묛 jvxóP°u´¾ŠÚÊ´÷‡&¿EP°>ÿ0aZó�åMUÀÿª'×^ ) )mö:›Œ`I ·+Å XÁO±óïúQ뺭Ë«  'J 5˜øw§¼ÐÕ8à”/à<»²;:^å€êò³óž ~ú?/4-ë(¡C�?êvxPU¦T‚ÇgXr§Äç2ç”°ÔþD3M¡TP*ÛJV(WA.]:ºDg@g0BÉúÀ -D•v�  Ù&Ï&ÏãÊàéài¹œÏ]Ÿ»¬f¾ö!ïJï’kc«f.8ý°‘~nM±¢Юù¹-xRU–Ðf(ÎøÕE'� ›ßܶE“´Â„W©,xŸHbÿõ®TpŸ]i2‘²çvO÷|–²K±ÎA³^¼ƒòÒl²q-ýx¿|Êœï Q=LXŒ̧î³K��DUíee”çc¨r²[ Œ0é,¢#M©¨˜õ{½—ìqÙãócf{Q"ÜŠ…sè œ,8�ZUs#?í?e77[Æ âÍe›‡‚øél}á2qÓâ€ç>L£cÆ(«Wë…¿›X¬�i;® £��S";¹Di!^÷ÕSJM,«b Ûr½¿îïi�¢É´Ú´Ú�Ò‚¬Œ[ÈBâCâ››eè •ñAn ¨Z�'I"  ±ÕjyØò°R_,V,ÖXc… >S4ÿ{gªÇÔ¾ˆÆÛPü!óÏ�#Ùû¾¾+EžõC>ƒç{¾oŸ•²,ÌÜà!Ü´Á4Lû'4·äØøÄq/Žg�†eW¬iË<âüäÅW±—âƒ*Tº°TÁœ«²nE˜ö{µe-¶6þ¬•‰œJBSá CcTz·_s®‰½ÅÒ£ � ‘›‹˜ökÚ»AÙ¾±Œì×ÂzÒØF%bý…ž n÷ôNfÑ ÖSµkÞjœ †a¦í× ŠÕŸ»{tF.qš,üÈ>c”?«ŸÒP” ¦ÂÔeG¼µSGΩÄ2RŠiÿY«0 =bÞÚÈ>ŒçSÊ[©#Ó…|ÎPwôÉe¢0ìôäún=A»~Ð9ãéÏs†×ûhddö£×LãnÚ|,µéª@Uç�¸ç.©ìùòœª¤»þ€ÝŽgÄe ‚È”:†8¢«€ºa׬½Þß_R«\a/îe„Ân¸ZZêm4ôA"Èøâ¡·6GVaVá0è ¨Øù} ($"¶n›À¸¤Ö€ƒÎMs€ð瘧C6 J—å�jH;:)3åP<�—Í‘2'oÕQxÈùF"Ù_4$ñí£ÂG…š~üp‘aða¹»¹»¶$Î_g@I¨î4¾*@q†8sðsðÓ¯j�h�+&—"Ÿ©;N+°ÖW¯™¥™¥è쑽¼w®2ÁÕ²të„kد‚”d§tõ·ƒX -�–è,�ç Pì—« Mæ¸OçAd“{×/ “/ 8iÂ"¸¨R¥S{Ë1ƒ…Ž÷ôºî&l¾�^Àû8eoXÀÆm«ïþÞ{OøW”T”Xœð˜JGV8]8mhh\ì%{Z¤Aƒ ‡ÇÆ™cŽcNèb*w*·çh ] ]°¿„òLñÇ�3øu¦ââõ¹Kᱩ$4S•?gª¸�ü² ë:_l’½Z炤 P¹æÄC ÜDGú˜Y†QQBN†{·8UªfWžæZN¡sbG» ªÀ`‹ä ÕÆ0Úš½”Œ4%áïϾê>{ ²m¤>v»TÍDæ�Ìð‹}Ãø8¨.�b Ä‹Wé yXôx|Ç;„þ àP÷eZŽ^�S~]-nE:PÖÑ|+>òtÂv¦`©,}«óáTöçšö·#BÓð¹á3ávý·ÈFúGú'&º:nÞÆ™û Â aE¶+¿+?oŽ«…«••LoDo¤ßŸy>S.äàL�^”¡íÑÇ… T¯¦El8´§Aþþü�žÝþßÖfSb(fú9¢ÄŽš|üƒm&T±ãfÖ+~µ)MBeìÀ9-‡£ûF™‚’+˜öïnÚ�›ËØÎ¹Ô¿�u ˜¹b ;ËØ¦=$wOP›ÀÑXª"'Â&®óµQC ¦ý^m|| ëV”ŠÅÐé�mænžZ sÆ ##Òs�?üNTེ“Lñ‚ÿ‘P1¦ý^M(,�ƒ§¡ÌX‘œËlŒç¬ËÒÍ 9Z'Ê`²"SÖá³C¦Ò.°¨’eLû÷´�ýÔ冭ð9U[Áàz‘‹ÆŠµox…ÿøšÎpŽŒxüäàë˜q!>Lûïk¶§� ­X®DœbTMèX¹.JOרl󌖰WÏzöÒâØEBv­+ó%–˜†ig£÷f#·Ë—Ž{S^ÓïPù.ÐÀ…²çyŠÉæaïéÜ/Í^=ò‰Lì§Â´ÿ¬yÄŒR Ûwoð—Ж}àL½’€¼Ë;”÷áR�÷DÅG2+–?Úå<ÃÆÂ:A…“Œì-—²$%iwý\§†»ãaTä­¹¤²OáØ’Š*¨tßf ªýdµ‡Kª;ƒÐ 5¸÷@Q Øk>w>×_ŽùË^#o�Ãu½6ÙœŠ%.}—/…­ÀÀËÀK ž�É„ê�û;átnv’YŽIqè„G ($4@ØÐ”{b_åÐqS„¼¨‡°¦°\Qvð�ô›¿ôâ±þþìnÚý ûûNàqÊÔô1²ãÅNj٣٣±�(Õð]u¡òÌú¨…,¶)¶i€‡¨Ÿ¨?2o[s[³É.ôò.¼LIйâ»>Ï\«Mü݃váÈïéê¹XÁdñÈ8›ÐÀýÔÍÁº%eU�2ª_ZÇGE¸Ä’®çÿìÂO!vá§À]¸Ð>»p˜«øT0ñd3i<ùíÐ$…®ƒfýùÏY74§)FFÊnŸ… ì;o> ¹Ø„ê­µÓ `Äe C‡}L•ܨ©' -²�PÇëɆÐï¢#‹Î}&ï&ÀcÑõ{‰ªˆªH×*L—œîî â©çµ]‹,Nú¼C¼CìÊ:çÒõSÕ“{ÂIÔ˜ Ñrh¥G¹ýž¼õÄEx¹©_lB'à“sºëÀ„À²Ñò—Ë$jÆÉƒGØbö^0à0V7V7”2—Út ó0ó0Íš;«ìô•äÉ |lT#P½>dÛÎÛÎýó““›$ä«ä«3øVà3ñ8S’zS£*7¹™:Ö¶›S¥ í-‘gýwúíôŸØb^Þ2-IÈéVj/zqbƒU-\ш¥3©J—†´ÐG?¹úk[¹k±-¦ý}­ÊÔÇÒ¥ðÓ©ÑÎý3äGpè¾”ú[­¦ªñ¢!ï%Ñ)Ñ©VC÷q/šf¹,¸w¶Çè�Œ«@Uq¯´_hÐ�åŸáŸñÂ�_IE€–hßåÃ] èiâÏǾGgÆ PÊÖ5?CrÒ¶«n C‡BÚ«œð8,S•Olg^ï±7Çþ®;øXY9”§'s¦"$$4Ö1Ö¹%3à3ç òõGu_*‘ÙËË“§-Û-Ûlç[fZf(V‚š�ïˆ8«$õªßħmù>üä„ÌAwDÔÖ佬vu(ÊOö÷!:é—o°f¯²}9‹d÷âi)œ á1Û<çÄÛ3cDo°/ÔmZûcÿå‘}îˆÔú–¸„ §µuš?8lx©�ë Y¯ùù1~ަÒÈN2ž»‰À7ÅD!¦q=fÌ ¯ pâô§(Ódú T=øË~€ìë–9®EØñÜtÜ¥K#2ÇcCöš.™.‰üÜU½×ÿ°wçÑPöÇ-YoÙ)YÊB5R’5ûV¶!É®�Â�e,¥ì‘,²…HÈ’²e_“QÈZö²SÉ6ž®sÝsæ13nÏsîçÜ?¿ß3óúïýÏœã|Μóýœ¯ë"@C&¢8P;É(L$þ ¢ñ*¬hë5N1N ‡€òÍ@k�Ÿ‚ˆO8k¢$3>ì]�Ä%¡ ,LÒ» G«RyëÇÙ}¸¤&¶ïŸÍ²º,³ä¸ðV´ƒÚn�D§-~{vùõÝÀߘ諾h&ÅŸŠ?¡ç¡ç×=9?è�ˆ�°ÙhÇ4’5’õ…H,D,¤³ÆGÑGѯ*„š)þ?ÿ·�C©îàfóàpk¡ŸfÑ1³�îˆ`Îú¿êþà%6ÍÒ5£X7aªáDÈŸˆ€Z&½¼¥Ï¥­)­ÔSåKÆifRuõð ßþn#¸ãðFrÉ0h€/ŒDÒ?¢Ãë‚SŽRAƒ�’ìm„V(k±bð4"ßðíŸj.ªÄQþ”Ð~öC›CŠscÓ&YSÆÓ·Þ˜Ž¨zbvüpê×4ƒ.Ý÷ø¶»Ú,]÷Ƹ3ÿ‚Ðóôó±%¡Ú^Ä®¹¬c‚{èH–h”eêI\RÛñmw5�GkçïÊ{ ­°ÅÇR/Ô=Œ}™~´yê$ßú™˜ùî!9ÒC=šÜáø†o·õþ°tÑg†éËÜ[½é~*^\I®­˜žŸ„…ØÎ¼ Íé.”!­S·’0Ußðm·µuÆŠ|qʺ?´>½ºKÝÄ|H†¾KûQ…cÀñìÎyÁH‘j�±ËÒÜ{wScûfzÁ3wÙ4p`ìº-B{9\¿s÷³r¯¡aöí*üV~Уʾ�v/優„F†˜x¥¤ÙÑhnse¬‰¬ÈÒ5`Û[,%@Ü­æCÈH\ÅV2;(èª? ðc‚¡åM'iàBÀ @hØVne,o,/­¤ºº]ZM ÊKKy1ƒ‡Y5èÃI3–}jíjíq h¨JüÙŸgòê“(™€»Z€á7õ¸ø˜�ŒªžIU¸ê‰ñsQ¨àÒ�c.¤÷ºLÊ�UwÚ2D·¡õyØ]Ñíñ™,^p¸>ç;E7¦dÓdÓòòªÓ|œ  Ç[ØRö¹–b¢½M{;K$Š8ŠxÎ-Û Û€€�¥sÏøyÉ7V³ßÞgÌd½Ø€ie§=ã²ÇQ2YÖóß+çŸXiÁŸI‡õtÀ^õX@Â�%8‰’ê¿2ÎÍ7WRÄüõžQj›=ãçO—̯2šyȽÛV>d™±Ó¬Wüþš»I~L)r*ç µG�ÞLº�Eg*ßÏJ0µ˜µV·4×T'š|0ÿE�3�ô»"Âûcš·`kŒé6GÏÄÅ’ÿõýÄ6{ôåW©ü×ì®9fÊ®û¬Â5všõ·¿¿fÁ¨ê¦�›l´IŸž¡6z½Á‡löÜ�‘€ÎÕå�ϾŸÄ¦½|à }¸%Kcƒ6ÒÇ ëê"@ËãMÙVwnÞ¹Y\DQ°ÕI4ýÇ(_µ&Iº"É xçû¹bµ{ê{ë{y?�òî€DÙ)%AiKçP6 å¶ly\n^ðI°#AÔ‚eÆŸŒV qiú\Ú"´’Ó:ÿÆIðcì‘_Áy)¬Û£_VÍNÊNºð’tɦS'¬–Í€Þð–ÕáÙj+ÂÆk ¬‰i-l-,i˜)š)º¯ç˜ñ1c«u1Ì™b;bµ O䟉õ¶Lt|T´ÓLUÿž)é\ð¶þWŸ+€6•BH‘¶Ç°ØaÛ‘êK€ÂRäypRl³ðQ€fãWNÀ K#´‰ôà$\èjÁ!Ž$ÙŠvšvZÍ­®u«‰`4w9h­VàêÀ?P]T«°?A·Â!È!¹.È7T÷ˆdDíã„"Ãà¹xòÂК?Ư\2'@™®5ï{GÓ¸¼)å(.¿xÿtõàùfŠD{î×S§¦Z¶÷ ñü“÷ ÷ UAýàYL ‰ ‰üœüœ�—Y ¯�ô¹±‰�3ÆôÜì¹U¹B¹ÂÞ¨¾€¾€ó¶1ÔLYþùZv¿x¹À÷ô*"šãÂN{tÌßÏc+åL<?jé|Ç$å2»…šE¿ø;í+¼šY]ZÇ9)¼Ó�vuì=ÕŠí;ÿ \ðP†¹�=öu�Ǭ9—;ð ߀F„TCp’ÙŽg¾¥°zi\]¿7"´Jßm›(aý¡+�~$Gõ +ì¾ýÿkgîxFŸWe?áÉ]IÏFÇÙžt¸æl¤SaG±{ù,É&}e¼ÿü².¾ýëZã*â\Y“Jø¼ö\suçWBn›#�œsùV+ÞYÐ4 K:ÂðmwµçŽGW_x¼Ð§l,q)yûaƒEš´ÃY–DŠG ZÀñ…ºE¯5� ßvW«®¿B_埛ÙhÑÒïê,5xKê—qÑãúw×t¥!Šx¡ÝoÃ’jüO›WºûL!t?פò;O!æ‡Ã˜çϧ�‹gøI{ø¨VnŠiîtn©ù}n‘é7¼„©†¶°Í3«$aüË ñ½eØ„867bÏÝ`ÃÖœÄl(Ù£8ðç BÛ¨©qÄÅj¤qÐ~W/f+NNÝ!¿­”lÑ„ÍQöi©4ŒÃ@ÈDɇÕF½>x}@­D¦ýA�aw¤Yæ&Š`6 þu.—)c@ÕAsSkP¿v´¬gæÓÓ¸è3º7‘ÞsÕm×�—i/$í¢e¾Ï»=qdž$r$rë?ÊIâ1)Š)ŠÕèÖèf… N4�4h°‰@]À”v#톃úy†ó –6LH&ä…d½ë˜{•è ç¨%>©HŸª´mϨ½Ï~«Ä(ï¤ÑØמ3‰ nËÉ«µ©ú�–%^·–0Ìá–ˆ¬Õ¾,SÃ5%&ø×ÏòßfïóŒ�þ;ò^JÒ@(‹nËèŽï ­ý=ë" ò¦˜ü¾‰&£6c=Lyû~3¶…®½=€S ×ÇÎjgbsBΞxÑóUJß0£qå¸dãb)¾©8ým‚t+¤=ÒÞ57�o+:´^�±IÀ‹ã V ç‚\³{ +aaÆú ª…õ$� ÿÝ(”º€Ã㫞Ƨ¸$~”äšÚqƒÊí§D˜6qÉ¿¿Qtµâš ÔÜÐõ>¼œ;_òd"d{ÖïÈo©ˆ«ˆweÆÓÌ,bB(#”ó y�ÎJM�µÐflã å˜ è èƒáûµökq­.¯/¯Ãî8¹¢fÊ–éÏgùÛù»ü$ˆ5�qÍtÞ錎9ë¾÷g ú/È7C&´K³<rñí?§­‘C‚OxG$Å„Ëñ+H40¶�¶í¸þ-µ5Ú2snæZtU`ˆA[(¾íþæyIwcºŒÉ=’!Ó´Ñlã%ÛŒËÑO"|å�¢ÜC ¢Bíä }�6|ûÏiD·c*Ü¢oÚ÷½ WÎxòü«Îé™y.*ó›2èõ{y)#ÒSŒ«�ßðm·µEë  Úo§ÎP©œ%¥ïojI}8”¯d-ËQtÔ«öó™v¯éýšø†oÛ5G¡°–¤ÂÛšu=›äëÕ¥ Â6O^Ü—ÔN$ÜXoZîfò¼âu™¾ý{¶Â…‚uDš*Û›âô�¥v ‰yØ JÊ�^<½ QYK»}sý 6UnâO*l¯žü\D@ÍÝ$ãäv2bkL‚=>d>d‘GÞ"†àÚWÛWS—R—º25 TJ˜ IwTÃÕ—Ö—^à-¬/¬Ç-—+— ©ü.ƒš©™?ö>oÜ8r’”\îðý%q|›B[Í”–¹ü=峎|Z”*¥æ�ÆI=d¸M¦Æ O{ó0Ûé¸Ù‘<±]K¼Mæt64J×ñÆcw5ßv²ïã`€ß›¿XóË |ü;ñr%CÚ*Õ¤)J¬„)Yn);%mªÅÃŽ•Á÷¢àçGá¿; ÿü0r,ûYõÕ¾W†¬2(7ÝîóS÷óóCäí|nîÔ>´ôNá°†žø^ñë˜ú7?%5çVöÅ䲨•,t VŽ�TÐâÜê\± yóR(#à7ßL7[7;�ÍÖx3Úš8ŠÂ4¢P$v‚hˆœz©—ÔÿV:^:Þ2BôþÖ Q{3£ŠB Œœ îõqc#ù õv\¯H€ÌQœK��ö›Áæ´âLN¢Ò²„ñÂFkyÕ ïüqA‰[kIšMkKk‹�ä!™‡Ó6Ô6¤ÛC·§‚²–^ó*do¦R #¸Š Š Éî4›4›–I.I.!÷nÃϤ͈˦åZzR2³¯˜îÚîìü3Òö¢¾‚É“i_»”µ(Qëo/|´ïîˆâhjÛQQk«|ëâêÿÿŸ!ôÙ!èì€øgX HGï \ÆÏš½Ú±B¸Ý¬×ÿ| …´{\løk9´º„¡5Ïñ [LäçCô€oç ¨™çz<1Í?zÔÐNôWtMÑ ,±Ñ`‰DŽhl–O–O¶¡É¨²Ù’)!Š£OÉ, @1‘Ѷm¢4ìÕ’æ”æ$Œ„dáA8ßÙÖCŠû{\Pºs�·¦À …k 6,�ÊËÑlŒu<[Ë•»‰‚Øp"ÏÐê>!ŽŒé?{åå¢{1CìÃIÖ­[j6®®bRºší —“ã‡ðCøµ>6ò…ÄYa:ªó ǨÁ¨Qi1Ó=Ó-á”l–lÖzƒq5SWi ™ZQЧñ!(òJ%ŒŸ½°ÝÙø¬ÿ•îêûíŠG^J»«uªyí~9þá�ÜN„_­W-×îùHZÚgôZß­óqíïÙ>´•[©¦ `ñ´¸ì¯.'Ç=µ—ãZaUOs%I¡Óè²kuã ¸öÏn³»;¬*>eìÛyÿø3CÑRÍë’I$ouWŸ¹ŽÑéð…ÅÊUk\Ã5Ж\Újå…(×:¸¨Êö½’v, zÄlɧbCØ^,^ÓB¸<=&ËÌ[8îŠk¸ößhÏÕžóïua¬ÑÃW½ô[ùú’­”¹ëëa9f:7uu¶Î÷9)i�píŸÝÎû’,ÙuŒ´¨¬L î9f}ãjÝ^£f�™G÷>”J–]z“É{ƒ×píïÚ „ù팻/n+Íy”L´º)¬f2aòjù�;ï¨íô+ÞbM¡WÖ´s¸†kÿ�6s‘3HÉd_½aÕbAŽéâØS5šCÿé{píŸÓ¸Ï«Å¸Êe%èýNxúýΔ‡ßò¯uÁ×v�’*�éÙ›4ö6;q“Û4}Ýnm·oÇŽJ‰•b8¿wªh'>¶„ éÕ\Ú‰©ü€ÖpgʼäÑ81¦29«À!µ‹‚£ÆE!4…÷õýØ„?p겕ô%6[}»ú¶[áæÒf.Nh£Ó(l^­ZÀ;Rވ̉;|¡R/¦#M#MÝ3 ·.@äÚ«û!‰öL™(õBÀñ5 Êðé 6Æ|€tÏA.>HZ”H¾SƒÙ l2Mö°ÍÙŸZ«»¥xÜr)wo𨆦¨îÖ*ýÍk'«'«ù÷õ1Ù×ïÓïãÈãÈS§CO7Å q™ÂÔ«M×:Ö:¦Hofcfó•µëz×uÂüºkð™š0ÿ¬œÿª#0b™ÿ[”¢é�ífêõÏ™jIþÌGÞ&¡‹&ªS;ñ•½¶“$R0gˆÐÿ=#ô&öO/Ä­Lb`¢."-“¦¾ ›µ‚ õ�ÏföEöErW–7ëŒE£ï@É~}éÐà�B13ÉcÀ¿L7â6âövé1›#|™$$VB †,€�g÷&°9LH~Ü= i®~Ðâ?R‹�M@µ…/Ï åë[Ìþx­f…Ÿ¤È íÞÚ{ls"açÕÂ0à §k¢kÒIÕIµ.sdæƒ$å¦Ò s¸b—b}?¡v¡ö3ß߀ÇÑgBá{cº•?ˆ “ä•%*ÈÜËÊZ¶ÛƒïÿPwÞÕÃõÉ|8OcH¹iKÜŶ‘þ’ÑœQê}íi3¹­4¾7&¹ÅÞØÇ±1ûu+…ø¾î¯ÍSî2û·›õÆŸ�QP§~ gòàðÚ@åÜÚÎÚ^˜8&­‡‚>¯€Ã‰õ³˜„|ÖŽq4Afï8Ð2¼Hð±yÌÑÞ èÒQòlÇÇž£%¶ºÙ4F9 óoç�è[ ¤‰WB1òcêê=ê=l„!B:�Fž)ÈØÍûPÆuW`�”^›7l‘yG'äU$a‚:yT76©)é… …³çó?tí1ˆQ9Yý%øäÖ¾d1”_’_Šóë£uv… ¡ ¡óåòåÒ}ðba±[ÃÔRçÓëÓëÛ»¡µ¡…�ôWñW9‘€g�š©ú?î¾b’;s_É’¦~aÚýÉc'ƒíöÆà³þïÜ›€kýb�´ìí}>?v�¢æÞô”‚‰lçoêZQª\-•a¡oCÆIÊóK.Gã®ýªæW`Jì Ì�¼’=sl×BÞ.¢5ä¹hµÛ§Å„-u^\ "nÁ5\ûU-ŒÅ8O¼ÚÁ3¸{Ú‰>U˜º#Þi¥?xH”¸+Ñó[ãÓòöh¾�=7p ×þ®ÍëÖ½÷|ž—°µ´ËRÍì´ì´Çº§ÒXßÀ�å:;;‘ê0ž°§�ðeLò6Åep>Ï}ž/"T„U„õ-&,&¼/ÈzŸ©·×ŽÇïñ.×FÖ{ñd2Ún7S-?gê“îœ:7Zþð’ ýªñ9¿8LbÇ"–�È„õúW!’˜^S‰‡Ô�g �Š¡‘™| Ŧx¤À&·c3ûDûİÊn‡Íª>¡}�E!ó¸pp¢ž²‚Œ/?|Õ7–,"i.iÞt ¢?éÏZ·�ŒÌ·š¢”ÊRŸÙ)l¦fE¾ê�d7ÈÑ5gõ¢°Ûظ•.Ýc²FZtÜ·“¡)ªô©ŠlŸ‹ÙšdO?�*�*ëZòהǾ®ÍÈt_ƒ¿ëדííë;1È{ŒÐ“¢KÎöêvïú­?ßõ«‡J5à"Ïù[ MSét„œ²ÃÔ±ïÎ}@“eл`vñ1¦ñß=敇‰¡ºý‡Ñr.Ô…a3m¡h°”ÏuoV^U^E_{ƒf3ka´þqšïyþÀBÖ¢DÕ‡(k‚zí£²›²›u6„ø:„ßsx-�¥70ªæ�uýŽ�:+p/ÐöÉYOˆs•_iy‡6Ç7=JŸ&sÄß¼Òy}Õ¿çMBƒ¤âÖÆ ©55%>Š<þ·"º"*A)Aé<´F6¸ ™×ÄäÙ×tŽKŽKî�¼ž¨žhwÒë®×]I•kûák¥~gñN¦O^ØpV(AP~ÚòŽ ÔZ)üŽ BùçŽÁ5Áøýš3.É~[ñZOºb%º@í0É—/c�÷çk¥‚[¬•:­ôUˆ5"ÛÅüsšÄ¿l7ëm?Ó”Yö îóq§´Ú‡Ë‘ïããK0½IÈ˺äª.ñÊ`Šqg¨?8® Y3ù`£{P±Vlü¼™˜³˜sßE™›9k ¹¸£ÐoT<æ ‡!T�:ÕILˆ#°‚Žg|AÞÚÓ¡cIä+­Xisš‚YÛ=%=%Iݸk2ÏCiiyy5Ëéñ§µ€`f¸ü>OAI0I0Á¹}]}]cƒk?Ö~|âÀö:S>±dUõÉÚ2ÑžL$4’è­fªãçL…ùL,BíÙ�%Š7Z;ùøÛAêý"¸n Q�užÇRãÊa×™ð”E¨¯ÐXaÍ»ˆŧÉõü€¦Æ1~#™4™´Ù&Õ¾�¾c]9‰QÉØÍè@\$ñØQ/Ö®w®v¬v€Ž‚Èxƃ@Yß—•1<*þE4" €ªñÄòrÐâ!ëÜ>“CçðYäõg¸¹r.Ò¬4ÔŠªzôUD·˜ÄæÞg÷Ü'$L0½µã”Ö Ö࣪GUTþëßn/�(Uq †�\€šÖžÖ– â·ã·›¨~Óý¦ÛEÒSº§i–<õDßÏÌ\Lª5ýN¬óüV{èw™Rp #ô¨¬ì ô`ˆqt"‹±ßa²žÃêûü\³&êÏ÷4R›ìi²‡«Nű èÿ09 ¼±Õ¬wþ¼ÍµNUw(a=ý—Xñª5I>JRuÏLqMî¼ XëBÞ¨4ÂÕXC—°Uh)ìüá~‹±Ùú)>mó×xì§`ÉÉÝ�´ÑèA¬ã$a£"§G·µ€d øš>»™ñZðZ¸Ùƒ¦FA~c'@Î…“­/Î Ì�—û#ð1Þ�úáºã4 èΣ̋â'kñ‰g™ÙõÞ=FN6ÉLY’ðò˜wà¬Ïæ2›ŸŸG¨!ÔæÔ¸=¡sÊI,¬FZÅRã�na)[ѯ{ähv t½I?@hÿ}ÍIÒÒÜžýäƒ f�[Ís†2»™ž9>a¤|mê0®:= BÉsæäûb;B#´¿³íög—¥½|_)±»´ªÃ¥|,áA×V‘záûvÿ‘ÜE›Ö{1bÈzBûkÍ;áí.)gË–eQ‘bÆ’)þ´“y7 »œ¾'ä­¹¶E‹^òR ;òoµËyCLDDo[0 ÕUo&‡Å"æv4CÅð…‹ !š0ÿðÄ9�Ü…ë2�I<àaÙcà|�–VvÌ%|”*œî„…†7ò¦ð¦¸ÌqöÒFá¡X<©·š‡ú23þ‹ ^•n*�«¾6¾6†^ r P‚K3èîÁ½¯0ï‚ý—9ªñÙŸ BÎ/Ðjƒ¤œ›Úë"èÌð¹p ¥‘ºOô@#ƒy>Yª¹Á#Û=Êú¨Í)ïåKiG´#fÆï‰CÄćՇÕ{ö÷]�•Áq!½­š¡##¹®ï7ÚoF5pqàbŸß°t¦¤zmZMŠ*rÉè|2#†¶š©®Ÿ3åcí ÕȈƧY‚ÍÐOoãÚ�ëm˜ìsÀT¦¬á·^N.\÷)GÙ-Ôº}€Ï…rϱtÒÎqâÃqìái@ÖönŸ�vØu ŒT¯}#ci¬AFÀݪWU�q§ÑJLO�z½¼7Ää êµu‹sÀ0†N8ø5ùÒÍø¼Ô>LH¢D´w'£ð)I5Gp÷Ö›[9סuê­äÙEøòÊÅ7'®ëò*ñC⇼qg>û^(w÷À’Àu6 QÐ[3\öÞ6(u˜:Œ�?O-OMÀDY]Yý¢ÍýÐ]x‰¦˜{…�™ÐD“C’ÏV»pèïtµ© bØB/ݳ̦Dxé^uqhL�7¥‹ëP2Ж*¶c*%ù?»p ì.\Ü…‹o² ”Zrt÷m<-̹0úVc«Yïþ9ër ÂP³¹IÓX<¯8 �{9d©P\ÒOá7Wµ7­ |»qey¤³|Þ7¼œ=°> Ãç�ò:?€@&üíF oÞ0äœÞˆ–KWàᓠ@>5$/o[ ¨Ew&×)×éy)H�dwó¢D»�Ç<.ì’„ör…∌3‚zBZ?^žU,Åç¾]ƒ¾®w½xì„D‰ÿ Ç‹¥gÛÎOJo.¨ç0oÚô‡E-“pÄa(¯�^Ú´oÖÔ z¤ú—WÀçA(]j]ê(m„?‚üýLàL 5ú°-f¦bXÀ™:júî­ö¹ýlÍ «ÏÒŽÙô71»pè¬ÿNçñÿ‰-¡þ¼Uñ­œÍuû–9ô¢5,Ø_&£ôI¨óÌR*¿&s–z>ØáDh_CYØyä’xû2Üì -+I'Ó©ÅGÁöóÛé«ü(¹m§æ¼sbÃÅ í×4­]_\Õ¶' -h2¨¯sI9¶æE%½nðPQËo`;q<Yá´mpöƒ¡ÚßÙ–._RbnLìs�ˆ7,µ›®]§½e¤Ó“æ—z½+ù½¯÷ËWO§£‰ºlhíŸÓt¯å?KòIFÓ&Ý–æÙ[™’Ts¨Ü"f¹þ¡p™Ú.C^m�üá¡Ú¯jÈ!ÓÀC°l;áHä�nAËhgOvtŠÓL×çÕïß³§©�P™6‘„Fhÿ ­&•ýB0Ì�˜•:oÎà ³4Õ®]šßdŠªÛWDaw›Ž}Oü@‚Œ#4BûUív„¦ò÷§T>‹3v¹îíiVT©”4xMÝ–’�¸Pít~ -ËÜIh„4“<ζ;,·ÔçÔß{’5g†•©ÐÅ—»Æ-°e×1]1•¡?$¢ëŽ$4Bûeí®¿™_�õ)*aë#¤z®Ñ‹Jœ:Æ)#³ë¯PÃé…�Ì‘/ÄHÐÑÌÚ„ökŠÄÉ0>áh:Â$1%vü[‰qpÑÁ³zOŸžêž*ޱĒŽ˜!´v»šŸT*#Ü©×Ö^4ôÞzÌÓ‹äwúžÐÿoË6P¼ÿ¤ ±Òÿ®ðéˆú…{èç¸‚Š¬»2yûÅ>µëÛÓ[¶:ãì!&"ªŸóö…Ê”1ÅÚWnæH­ø%K×ÕQ s@§[äKz$®}Ö΀²oÏ\Å— ¿b�QV‡sOßÀ,­fÉF4‡h…VömtÖë#}�ás€JøÄkÐ6±BáÌS�}ù  ¯D F{_I�yÒ× ñh€A€h,(Ÿ #€¿2åŠç^ÐõO¼Ÿ¼ˆY�ð¹^[QšB§43%qÓœ~$ωJ§m¤fs’%Úåì%Ï-Ïí�öFç ß�½Mê^Ƶ|4á+TßÏk�!s"s¢0O|^|>;bdzžï®�üZÿÛºcã·¾¢}Ê[�çë}YË«¯ôt)¸Ÿº�XpÖž�WË¢&U‘«6þÐrãõw@´ ú)>A£Þ/�É+A 1%Éó�jŠðé?“÷.ˆû‹â ÿ)[úœ¸½Rá±›£æí¬GÔ#*óªÛåÚ Îò�åcöcöS‹ÍR3Þ Ú§‡ fïj •Ñ�Ñ 1~|ìø˜¶A#¼n7—z:Sý)ÍìÛ„*WÕÊVÒ›%7}v3S}?gªÈ¸_ŠüEÖUÖí<Æé¶ggq} ÔBúg5Fg,8Úqù²<–\oõüè!!oÂâµ³yˆL—ÉPˆ ¾´‘[…[…,|tv£Ö,¬" ^¾É뀨[;)A.šéê Æ‹&&ëA—y@L÷)õ@žD×0r•a€¨�ðKøXw,—DE“-A#3�w5¯ÔDãc«ðÝCÙhÍMQ(W²zYÕTGÛ‘Ì·9îZw“V¯V/�Ãw4¨ ¼È¼È^Û½¶³ã¾°§=ĺ‚‹”òJ ”†¾†þSGÇ.‡X‡Ø�/û­03%ðïÏK²ƱÞ<4úªÔ‘_ó±b«gD ¯Ÿ×3©çØ4ÉWŒ’® e!YûÚqý)£^ú]Å«.Ø…ÓBÙÊå“´3Ùºz„Fhµݰ¯”FŸ ä�$“ˆn÷6¸Â˜üQü¸¿{]´VkY@zØtG,¡Ú¯j®ìê¤q0ã�½œëê³Ó,X³&菉r™Ž®ÍDÈìËžÊ�wë¾&´ß«}¦‹äù1©Á$0/\pG?©Mh„ö»µU†êbIسZ}OBhšB™8軵Sªá ×etÎ ÅŠÖëL˜ËñPÿN�í£©�×Ã%ÓàÁ gŸ�ÚKQ†Ï »—ä�CÁ2ËYçÝéË™DR¼·Ú½ôÝÜsyTbA+d˜Ž–éÌã '.·Ð™ €Ihö@½•.“äÁTÀÎ,£>€u=YÖ5W²8|ží0Ód·íÞ¨ª«ªëËö¡©�Éb}ýŒ‘e0\0}?¥ âèðR;pd2EoHohôßWUmÃ*ôc2ÄXŽèžôz+‚O¥àsÓËHm�Ê~ï)飴“ø<¶ŽõSöþ˜�ò®SY‚ñó¨–oN–NÙ8b8âMX}¸/TrDrDöOk7‹ªàé ¸%\‰\P©U©UßNÇéÇé+È0£˜Qf%SRÐÝõݵs~Iš}&LVËàŒË[í®—¼ÙE(޲ê¿÷\t¨™Ë¼ å{_.²·ÝýIï–5÷!#U©y.’i©ÓßsOÌ5×P&þùîúÐ&»kök|×®d®]Ëéq±K&þV¹Õ¬¿ýyEºòPÕK-qX_PÂûÛÍs’¸�R5d€ÞC»Ø^�¡Àµ�%n È�'-�e4Ë`}×F¾ÀGkØ xÇʶ¶"�޾%¸QOÖíŒÔœì“€kî‹ ýªeÓÃHa-q-ñ÷« óç ##ýY ñ·&Nn!” ÿºËm|Ü稱wçÑP÷}ljYSö%¤d™,×(c_²Ë¾/ÙST†"% ²…lQ(”õ¢F‘½²•È^4²Eáéwÿ®9óøÍ¸=ϹŸsÝ]÷3^ÿ½�sæŸÏoÎù~ç{¾¿ƒòÑ6Ð'ƒ8»È„ò0B4¨è"ÅÕÏjÖZ]ПM:°ËÁ°ã çÖdàˆËÀ•v»ÎV(ÏBYèXè\S¼¦˜Ã"ø.¬tKßùԂ䂤uÚÏ�É1Ñ,Ñ,û¢mìL•ý¹Ï8Ö¢Ë2xÉíž›]³ySàðvûŒÐYÿ+Þ9MlÄ4n.õüS§Šô+†gÅhF×>ŽÇŸtâVµ<ÿX#Ýh´šÉçvâý,Äöë7Wî�E? gÖ™×aÙ�©Š ÒŸÈoæ7wSfËjŽn 29‹2"6bûß4�‘ö?f-Ö( 2*áYôºbãÔL»ºÐjÅØMÂóÝ"®9½c•T'6bû;4iRLà¤ùýÎõºï¥£ƒZ‘üwŸ)TŒÈ u#ÃQõT»ˆ�Ø~µöζ_èLõ½�ºeÇL»§š9RéG´^†{¡ì$=Ò¦(HÂè³U_±ýj�¶óë+ßñ‡±ÜŸë<¾MÆgíÌæ°n÷¦O¹’-c*He¾2vçŠÿFÄÿuã>ûäÈÑȲ¶¬dŒü16*'‚¡û@S e©Ú�å\O´ôdgØnh€”„$¬"yjrG]Î ÷þÚÈ F|iéÉpÀ#}y¿>®<| Æ–¦ŒxeNA•�£ '-$$«c¨@7[ÚlÅ{Å{ö^×�ÍFcp~7ÄâM�Xñ Í@•"Ÿ¿˜µÌ?G. Î(�(ó@‰_¿,�Ì\Ç÷båzº ”-„œ9 ¸ Š ;Ç  übÓ]w�F9K®Ø‚¦,†|» êJ“*Žè­0�/ŠIˆIpñ†­Û@—.¥K§K¿¿ÆÄ´ÔGŠfßèõVú­´ëÑ;¢wf÷{[x[,Â�< 3µ•äÛµA‡Zö„E¹ûùn7S~ÎÔ�Ì/\Pìâ¾\8aú÷“Å›Yž#ñQ!ØùŸØƒ{é 0øÚÖRïÝÉ…r$‡ŸàÌP}¾Iˆ!cÔ  Þ¶³+³+ÙªAÏfÌ38RþXþêV¡“T‡?@.9·-è9×PMQMÍÝ•Ń1é äž�Xªy€°lÀ±ª¦¯„\àL´¼>}nvÇ´Z:&råÖ£9øØG§¸×»ƒÑdäê{d^þÈØÚêÝ|!Ñ�¢;yóºÇÜ€B¡‡ò–ó–O#Ñ¿£/‚ü¹ð]šÒn‚"‰"‰r§}úrWÍ Í mŒ6tÝ‹Zñǹo®^YäÒ‹˜ÞW[Þs…ÝG�ßÈ0Ìßg©8p�dúkþ÷†ù™–Ñ,ÎâGýž´ða=—rÒ¸qíÎPäwÆ{N�"r·“výó}t©-öѳ$™_¼iGZëv“p;ýd»Yüù1öÆ ôhëêqÆÊ¯|ÿ�C³@ä¾ 2¥EÀÞÄx¶ë�cœøvû?C8Ó)׃oGLqR�qR>Kš[TQÚ,æQÌ£_êÍ”âì°ÂŠ:õ`ñŠ•ˆ¶%b+=Á] P àù $RzF2d Ê’=÷ËͰq ]Ù'EÈÉZ€MHØ”'¤¡z2¸†ƒË€�©úOØTI™¼F«ÎtO¿Ëd´Öé|¹µªøàɬ†¬†ôq>Fk(¦n¦n¹ ¹ iT”ɨkß*u�1£-£­AgŒgŒ§Ì’fµfµnRÕ ìL9üùZöàd…°&Ÿ{5WºÈºâ9 ·ÛG‡ÎºøJ5l±~_Ðøq…¼¾£œÖñ�þ•ö9ð³&\Ï3ÕmB·:ÞA³âÜvÕ�'0’a¦×‡[£ßµ¡[Ü‘{¹“؈ hd맺¸)�'òj©Î”š5H�ýˆ=²J™Üçœsìy“F?Z ñô 2†Øþÿ5y†ë~ñ§5Ø¥üxŸÓ³íãnÏ8T'{®¬³Âš½úŠ úçù�§—õ‰íßךW»ÔйLê¨YÝ™—-{»?“ò:6Nõ,X}>×fOÛbzT†ÔÉ@l¿V+ôY}0Äiø>�ºù÷‹¿×ö¬±Âwvz"(døTÌKx¢‡÷¾2xFCl¿V{ÑèF_sµ(¯?ÌþÕÀ%O™ÁP™ofåwÛΓ&¼Éé*ç7ï«E-íÔúŸ6ÿ{¦ì˜2óý<ŸTÛüŽ00§h�À ë_×ý$Ç>¥zÉ6ð’—ß?¸ÝºeèçºER-AªÕaºgcŸò¨ïÑÏÙøN\ •0¦Õ­Y¶W¹âC£?øöxÉ´�—¹{pf¯v#„Zû�6ÀÒ¾[Õ›¡TQª67÷Nl¦ug.Ë,O¡bu&„ú&l»³&¯· ·�˜:r[N`é4.¸b‘_¼×8®�¥æ h’wY�[ùÎt’ÔŸ‘"ø·ûÃÝ"kË«ßodÏ¥ÀGhB×{Ó¶V"†é�µ‹µ“¬©ÕR8Çý„ûI¼Ì©&¤;èßô³©~¨ÛÍ·›'¤¬‡­‡''””Ï.\‚®ÑùÔãs}=oÍ ÈÄž¼R“S¾Ý�\Pú lŒÿÓÕòñyr¹géJ¹ÞËY«õÙF©Ë°'¯H«˜ã…ÅÖëÚO¬ã™þç÷®Kl±F7Èýfj–ž{7€úø¶w|Þ10øŽJÀY•ÇrçcuŒAé>…#œú€êyö7Ágèð]c }¸8år�zÏ×òËP&e&e‡ïw.u.•j}Rü¤x¢szdÅ2£äg×]‚v_¥“èÝn¦†ÎTÌõ®¯P»*Gqòʾm\2Øq µÿìÀé·N~êªIø¦¨`‚€TóÅ»�[ü8*§N¢:º0ITØìüÜÊl€w³[Ù8ŠXB+Üf•rH‚ÖÜüæK-Ò®¢®"–�ò!‰uÑ;�7«h2–T-àò=ÙÆ +!ÕÝ€ÉÂäé86P}E%ë›Wi„ÀËî+£;d'Wy}ÃJc¦Î ÈÛšÑJvTªƒ!Å}_`”z²zòeÏËžHo õÈÈ_sŠãǵuã ÷ ÷1òtÝt]©'¼±3åÌôç]þ.WG.–,‘$�Yb. {n·ïýþ ŠÃ˜¥*¾”žÔm®Ê÷ý*Tô•ØþsZù÷]Ò7¥¢3Q ‚J°&ÆCÎñÎ�^Sٯヤ1j˜óñ5aÆ­‘Äöë7?ýµ/h&ŸX†<ËfëµR¶ïH�`XñÄJ‚²BŠ=Y™nV¸ÑY­VbûÏidןyÇ_ví7}D¯š›YøYïÄ…^f>+U>ñiãwÁ¥6¹±~b<­´ÄFl¿Zûê>I7e,+G£.O9F?Ð4ô*;e¨Øèð÷|Ñ1ÿú�ríþ_öki±mÕœ<ŽD½Ê(»¦]b¥ïעب)c~Ô)3ÅŠ%£�ìhs£eµ·Eá³'h=bû{¶²¹Q’]9lOCvÜë]ªr™ãËœ¥Î]v›kô|â`¡Uð\É>H–ŽØˆí_m)‡àªy¯®”Þ?ûÃ@33¸~ƒ5H!k]da�–×SQÿî �¡»äíè.bûµšØ¥1RUÌ# ³ÔǧêäùíëCož @Vé!³,}¨å;ß.ÊÆÛ¿¯IÜ®»'(£nþc–Ǭ¡ôbÐû¹0YBŸ•âWé¬Kë-q±•ˆí¯i–ú3žª�‹•G=àÊŽüŠygGW'lt+Ì&I2¨„ô’ý³kĉ­FÝâØk1–>Z¹¾Tb3;àÊÝ»G2eë·Î=äí§Þ{XOÞi»½ûR’äÎÏH¨›¤Ïp\çšSø³zí[—ðU)½R|»s5µ?ø’/¾Žs^m€­]!€â”8Ó±A„ø¸a(a_PG7³“°“X^ iÛL¥'® �¢sp±'Ytu8ó8Y¾dÿÜþ¹ÐRP»U4膗1 K¾ÐÝ ˜£ïí ¤Ù pOeý4d'wêQAáïJ„t êꓳÖÍý˜Oÿ£ÑztÏ�ùÖ’¾0 ›=6[Þ¹Ê] %òNäÝÃÀ‡�æFŠÇß¿iìÀçý“5‹žE ÍÌËÏËß'×õÑõ¹ï•u;S_þüí3>þ¨Õn„ðs°$™ã†ØV3¥eëâü?ÝŸ³ù´C+eP%Èä³Ü¡Vg9Íx[˜Ó032Gzœfáðk[&G¥8Òñ[4­wκöça�Þ›½¯Usñ)ÙÝDDÕÇnm•zªt%òôÓ)¥ë%oþFQ ýÝz~úŽ`èóóz÷ W5ÅA›öï7 ºá/¶{~F>?I;S.B¡¿_™_I]íS^~¾‡ŸËÛLÀät�b¡†ÏÍÎ8 P9¬ð@+fŒ£¡#ºAHH„½ ÄÞ,}3à×[ gu÷ÍDÕqo`U ìŠö;I‚¬÷)¶ ž~t‹Ã”ÔIÔ¼j1·(å�¯`MXú¦í¬O?"Ƹn¤ú¦ä‡B\^§ýAHU±·@œ-…DÚþ…lK+êi„Bs·6ïïD§ p_‹Ÿë{#T‘l‘ìlél)eóz)(Íß‚U*<"<¢7gµiµI‹²Œ „žÈü")—YhïKÇjÁµl]B³ÝÙè3Òñ´ù9«/+[—ÌE»ñSí»f$(ž±’ç�NÊ©>+ÿý|¿îì€xv@r‹³ ÷÷Œ¨õ1ùÎôÉ Øy·›õ±Ÿ³7�¥ª‡ñ\އ�,�°_ÈÌWI|¹çõi!œ©–©øj~ÜBèÝ ³$qY÷qz‡õ1„´$æ8²ÏÝ_ÞlžnžîEŠtÚféŽ8è«X$Ì]ÀŽàƒG@œë'öµw4“<&É2bª‰]ê:jŽðÃòÿ‡WCZ?7GB„þáÐúgZ"–OÄ%Ôÿ!Ô±íÅ5ÓáN#V×ó«"OvF�®JÎn-*f'w¢qÀt^õÉ[({´=ÚÂÔ´év³o-H”Ý™À(%%ƒØ®ððì|úÕOЙÑ(D´Z8•ËË=�Öé¶/yñݘx¸ šq–¥~Ú_ÃÛÝ•µõ8ÀÓâzi¯Ë}„ð铌¯ÓÅof¨i¨‰øh¢»YD Ž-)–ž-ì TÕš”t7à)ŠÚ›K„K„Ô¤ÉzÅ zóέ«9I 8•Ž#äv' AÕ“d Š*]´S>ÜÚAH?ËÃÜ^õžÉVÅÜÌÊc™µ�ÕÑT¢[Ó‘>­–£–ÃdÜy[ËêdîÉܽ>{}äÄ.Û¹~ ìÃgæÉ õÞÿ½¸ïÌLO¦¬„¬DöÕÏVØ™ºÁÎÔ�¥Dÿ¥È�4y"Æ{»³ÐïÏ_鮾¿¢]G¥wy�É8µûC#7Bd8R§°ÇãJ£Ã¡lVÆC{f¢+™µÖÎ<&¶¿g›èxæ –ù[»¯]Øy�B$.ã-OLIÁ¾¾ÖÚ]%gG�¨cšÆçˆí?»ý{wåÞ?p<{¡lq’Ñ”}„ìÙ÷D!ÛØCe—­TdÉš-"dßÊ’‰([Èž¥M¶lÊ.’ýqÿîg~sÜ3Ž?žç9WçœñúïýÏýÏçr]ßÏ=ó�ɽï/¾œI=D’)ö\�¿ìÌ¢ù‹1¼%òFN5}­ p[ ÓEs>\Ã5 ÍÛ¿©“â¥\y£*?T-n]îý„ÁŒSÞ‚ð]Ñ©ÚVÂãà ìO¿8â®ý/Z‰R ÷AûµøŠ·µ+V?;)chÿÉ!É@@Ë褬|d‘µ'Ç�r¿ ®ý½Û¥›»çõ/¿ÿÜ*¿8ß'jé_Ï"Ϯߢ6)rð\ø¡ÄüÛtöHN\õ¿jÓ‘>É}¡vÿ”¥8«)Ms`íXô˜Å€3û�åx5{ÑÞjóýS¸†kÿ‹6áÆê-kp¨AïÕ2Çpn¸X‰æøûî \ûû´—”Â%Gk\%Ôê!Ix´œÖÝíÖÕ¿ \sh¹3=£²ÿ-ÁÅ�v»#x»vÁÃ(ó¡ž~b\C‹õ�ˆüȸ¸ŠÄ"CZµð�|ž�â  “ý@50ù˜UPææÌ‚–�á¯�Í*ÜH [2`¿pM•¢Èv«šÓhç]P(óáêÄn™JP¨�ËÞ7k'ŸÑ?£ïRyåƒÆÈË�Ö—ÖèQ”£â•€ÜaتúË Ö‰ôA烑žÝ\9جãÕy:¦•Í3ÖÇw‹ÞK?Óã¼½�úxÉzÉú¦Š÷�2Ü¡ŽÅ‹!!bhÕR%­%~ÅÄ%qj(p(PIº†º†ZT¹¨­¨íá�eôݘ©zÕ±^¬”œàKRçòòÖ�Þ�Aßÿ²(Û‘wÀfLóTä>9X·YO®<`r@¸§NËH2²�æ�ß� mónL‹ ç¤6J>ÆnøÝümûË�f}tó1m².YPŸ^ZÏ¢éL6­îIÛÇ¥� ¾G�P=±Ð°·Ü öwç.èšÜ"�‘h¬3IæØ\¹·¢°¨¾Gû{3ßf¾5] SßÊ¡M¤ %Öå%€^õN Ð©´®'atéUà«ÀOÅ Í« ?igPw̳(“ €k�*i¨_ÓÞª‚ ÐG™wôÉ Pxq„¤ÊHH,6�²[æl«F¢Gé<ñî[Û¯1olÏ:’Ž³Ã¨ÃˆbƒÝCn?ÔÂòÂ2_'_'‘ãŒÅÊa�ƒ¦ê†CVPHg¤s•_f[f[u´w´7‚d 5S ÿ¾ûŠ^òB¦¬MÃì¸ó3?„�ÎNï1 ³þŸÜ›€k¿~ó5�ýáî~)?b–¢6cü›´�ÄmeÕEXkU`@§ï—Ýå¶Ó__Ü Å5\û³Ú-¤!±ÕIßP¿ì QòÙAorõï´[‚~W¡—ý#«£_øš-u9üŠ›Â}ö²·~:©s½&6+ Ä»h ÿx·tr›ÝRíÐLÛµIµYš´„�²ˆÇ;Íú·ÍÇôg^˜ƒúÖ«û�—_!ì¦Uô]ÉHLÇú;E÷ ‘YÆS˜ú|SõŠ´Mžž´ob¶¢Ø0¹€÷•õ#ÞJWNW®e£@w+g"4ü(”õáÖ÷—dOP6w€XÕÚË#–G?‚Ö$@ŸÝ¿�ÚãIÄPVNÈ’ê“V±!ììåSÜPôå¹=äôMÀ¦î‚WŠŽ¨ä³£U–Ú”D±õÝ[é¶wâÄqj�p�ð¦BÞ<#¨\×\W7C7ÃuqÅš(ЮG˜ìŽÁ� W®"M¬‰©‰"e¦`¦ÈXÍþÿYß Î”fÒéÜS¼öerIS¶Î“rvÚ-Ag=Ž,ämÅJ*ižƒ²›’ýMd®ý÷[úµÑÆ¢§c$š<ª…ÌÇ;I9;ÕÞ‘ù¢j[(«,›ó Vçຑ-®ýó§­»ƒ.A’—¼lÕ0âÈ˶KçÕlG£<ì•‚Äó-iï yÕ×ôóà®ýj­)¹Ûßݤ¥¯Ë3çÍÇ�ÃŽˆØÜ(ößèe³îÍ E§w¸_Tl�²à†ãÚß»%®ØfŽ&?ä|S§¦r>�zª�JW•kæÔÙãygWòWy¸öÏkÞ>rü…svs21ö¯.<Z7Ü¡)SŸ7"§á-d¤˜4'OÁCÃ]€k¸ö«5njÛ”ñS•SÂI µì\ìÃæˆ@y�눠ûa#=ƒu©éÎKг~t¤“JHÛ´úòyëôb©ÐNgýñͳ¾‘¤k7ÔtøAC´ß4„p�vXüþ ”Ûµ`@3õ´Á±ü5L0XgÀHN 0¡=Q�æO.|–;�l¾Z½©[-E/E'¦ÌoÆŽvPE¿ªà �ól>HZ ÿmãLÌÅÒ‹¥2gA*| Ã2% ¦˜·ßQ.5<¤?ž-Pbct ÀÞÈ‹`ËUø;9âÉ*»`Ã!ui žØ)ÎçÎÝ\"3ûåÖ�¸H‘¥íéÎ!ßh¼Ñ¨%=Q‚¼EÃAÇ¥Sís– e`âž.¡†ÊòÊò�ï�ÙÃÞ)Ò+Ò{þ],t¦Œ%W½).eŒ/ Pí‡ewí4S›354Ü¿U™¢\ZKúöw¿eFaûRïÕþþ™ îÏ•§1ÍÍ’ä2ÿæ ˜£p¥G3• þŽ�ªøü(€Ì�Ðj«ççIArå­X˜ÐEP®»Üûˆt3º⫟Ÿ �òÊñÈõÈ·Uš‚•܉ü´�"a`>  Kézƒ rà¤Cì¥ZeŽÖ0Þ;�M¿Úôå03üåÝ VÃh ¥Ôº¢½{¶w;‹ï#c`‰ŠÌo¬P¼Ž¼ŽÂ¶Â¶.œøÉZ À¤y1ÀÊU×U÷Ðruµ3~±J±ÊªéWfè®ô….Þ¹ä1—u;é¶”3†;íJ¡÷¶J•XûÔúà÷ž™p¹£/±¼x}õT¬ŸNÿ,µÕgþiS¼?Þ•Â·Ù•Ò ÚeªÒÚõKš Î%7ï4ë“›�‘¾, E¿Û‹ ÍH¢#ü(‚©Æß “I~† €Õ¿GÔÐS9“¥àD.à¡»p¶i¢M=XÏÖ§²Ì€áleù­êjëj«Ç¸�[!œÐ2«P’žÄÈ^sð�+ˆÒ_d§ßMÊFʦÀzà :åXê úàI¸Œ¢¿à�¸ú•‹›`!@éPq�ÐSP‹˜Šhæ]lT=“ɼ5†Bí|ýëRoõFX ùUÜÚ^Ò‹V™6™6’ËWÏk@ff”7—7g|ß]�mR À§›-Åý™ûséÁ$H ®”3”3ä(#´Q3µÿߟÃk³pÌÝÛT8ƒ1ýfC*|§])tÖI¼Ú³ÅßX \‘²ÎI^âØ³l‡k¸öWh×ãê¾÷ö¼_u,µ'$éØYxYC2ƒk~Õ¡jávujÄ÷‡ð´3ò×sqí×jm^¬bTåxºDÃ6æŠê159í^E$¶øÖ6˜;ZMf¬‹I„ßXžÀµ?§ µË�q}JJýÀo �g†z—“D|s캇Á‰ZÓr2êFm“W}dßq ×¶kbª¥S-múÝrÇÍÇÖSÍÆWæÆh…¨jv [Y« 8~öðpÐS\ûÏZ‘ù]†+õ�Qw_±tz=å,Ö—i†ž3柾••¦2¯IÚw&#ÙN‡`§sÆÔæ9£øjÏ[¨Æ”æhÑ4e,:ïaÆç`˜<Ú¹Ö1TÁ^-ò_Ç1ÝÞ3ÐJ HN~£A¾ýV›>}J€ËäÓV¼ö¼ö«<·šö@ëèA†'0¸:œ�@¦�´Ñq†š¦â¦âd® L ƒ±1󠜇ø(%&òl@"Cùlê÷ �͘ ƒ „ìõÈFþÀFÐéýÝg*%È[¤F®6Sr•Ak*ÛûyO«Åf£ó>ý\ j¹w¹—­„­Ä•Q ÑÞ:wÓÞ‘•b(9=9=µé�é�ú/’Ï%Ÿ«˜›…ž©›øTžkzšÂù[ÒÃgw:SCï2%aîë7Ò çZ�ù¸ísúäcOfC†ØHcðh�Ò>Û=òÇgjþmÎÔŸÎô0¤ ^8ãPîdõL³f§YŸÞ|Œ(Í“P¡*¬Khµi=¹mÓMzº˜Uð—øWlz]‚19M,T“Xo?ÝE/›xŠMoW] 1ýuØVZ¯µ^ê7·ò’FS~‡’®¹�ðeÁw/)?ñèæ;Òr¤eœÔæz«QIÀ”–Q˜´w&«Ï[±aLœKAh_ÍfözÕ-êÃæÙSÕ]™¹ÑÙ©,B±³œ…r†šÛVm/Ë’n_OjOêBŒ]þ=¨þöþöÌs™ç¦ïgU¯€Žˆb`BBÉLËL“2$ó$ó„=6Ï5ÏÝ«ió:SHgzÞ”PŸ ã5’¾9û wš©™Í™ò6H‡ºïb@‡F)PÆ¢KtØV"S]«ñi@Ñ4UõBõ ¦3°küƒ4>`\òê 4ò¬k»{?><¬w´Ûʔٔy×Oá[Éu µ( Ôº:Ô|øk¸A«„Ó'Ï.–i/g,gØ;€68@‹5’) — ¡Õ(÷O¬Æ7ÎßkÅ&; À1\¤.›ê…ÉZ7-Á±¹ #‰<ý½˜üs)uðå4†’…U|žÒí²^‰ÎÍ­¤Î÷ö „2:jt´*·*WO`Ä:½ ¤áŽ �'ÿ9”øˆøˆu¦Ã¦½–��1«Âꨙr£gŠoB†¶Í�à;OiàlBØÒÕ�ö4ÐÿŸ¿ÒÝíÿ´6Iùùk„³ù·ƒLŸïª6§´rk hïQÃóÿ¢s5Þ,Ø,.9ƒkï¦û¤¶€IÔíeg”›ßg%‹ï"ô ºŠp]bç‹REiav÷_¸AZ‰Äµ_«õöì2‰P·êàËÖ_elá(·ºB/ÑÝ-ýåÕº/¬ˆ°Õ)޲Š;‹7×~­Æ’ÈJŒ_YpQ•‚íÒ'·Ic‰4VXÁwy��±wçñP/þÇ-9öÊž%Ë‘5‘�Ù‰‰lI–dK¶,Y’-‰²“±d Ù²K…vc‹lÑ"†j’ìc+¿¾÷{æ1×Ì8î}œûètÎ�yþ÷úgþù<üñž¯·¸O¯Tý�‰U3„öïi+�V™3OªNÄ! �z¼öXZÝNÿဈÔY±¥ì= ;©‡û_%‰ ´ÿÍCÒÎÖ•S§4^‚Õ0µ}ÖT†…ù9Ìý>e·¥Û'�É÷ꔼ'tƪ\�ÐþÎÆÊ)·ë|‰jÊ@mc¯×½�‘Ö~t]nÚ¯R„Ž.¨;½, ‹?˜ÖKOh­&2HyÚu®ˆ‰V1ÕŒ dê_ÅÞrª»d[ÆÞÔ\ðš¬éEm·åÌUÞpÂö…jŸ†]Öº‡êû}ڸȜÈEˆp•C9N¸ÌkÖk'.ª2l!…æcªk±ø¤DÜé¼®÷fÙŒ%œ%üe)ÝÝÍBÅ1®C g/¸¨É©»Š)Lf}£vÀ¥úBõÐåxÐz¼ãhÒÌkMT`\ `‹¹|Ÿ4@¯?…‰°¨`w´1Ï' j|ê{Éâž~¤ö¢_ôÁiøê“±K[sjA®û‹û‹›;RFÝÁ¶h»hÛèÛèëÈ;¸ÚL¢,ÃuL`4 Ûu£ëF’К¡š¡ ˆŸŸ I4{ ¯�ô­#ßÏkµÑbÄ Ún Çþ�®.õúxލsEvy”Ö�‡x¹5ßœ³¤KìUµ3�ªra®%ùo[¸f —·pñ-¶ðÉ;œ‡;’¾z 2?$bÛîÖçܺàåçUØNªIbL@âkË”PIçqMŸîRT¦œïêâÝ¿€K=lt�ºã2P~š„#qÉ�íç½Í2£•ͦ˦Ë(ëõÖ6¶Âèú„ÖëxÚi— y²Û­ç}%û6öí‚H9ÄÑœR:j|•mdø< ™Äç0Ð~ÉrP£ãß'„>­Q– 0ÞyEòPâ¬Ã,^ñ,…Þ[Û`ø–oêhêHL+oys[ ªõUó«fö£_'Ô€ËìzŸÅ ¶¦¶Ö¢�FJ#Ãl5R5Rc+è:Ñ7ÏÞ”ŠåÈ ��0Gûü:,óˆ¢Øv»%ö­ÿJŸ�þ[ò³ÓU©ù��¶²§ü+\Fqúg8_¤×“2ÒÞ ³ÊhXJç®õ/¥ö ´¿¯Õ;„¹øÝ™�|qÝJv;IóÑ…ê×9 úÆFÊß�ÂÇgó®‹ÚÏiǽµ(R"öÏCu7x¤Ü_ÇB»Ÿû©kÝyΡ­™žöÀcÇÐÌ—c„FhgC�?§ÊÚœòÖ‘dZë2ùdcWª¹áëÌ�›—ûÓÇ‚_t4MÆõ;í$´O;~é ”ŽÜÍ•ˆÜÛ�},ïLüJ™Ù—ŠZ—ìÆHÇô/„Fh?«=H Ûo.O•ç"“VÐæseééωÌð˜já™^_]Í›¤õ¨ÏqŠ!4Bû'´ÇÅõ™qmB×|ˆÙi‹gM^±JÓ00@–e*õ¬‰QÝj9²šò…$-‘ÐígµÜhˆÚjMДK¡ïˆ¹´ëÎ5 &Uý}–>¨tE/šÝ¾ðRi9Ö>B#4 �*æî*`KÕ�Õ±ð'kϹV§N—tÏ;qž#;â)óKzyÑã¾i„Fh?­Ýµ yêx”FÄQ‘ÔÈ;nA•ÛÐ"ctf££žUÑÌÓv�§Ïj@h?§Õ“x˜&%«dYŸJÉHø¤ÈQcBQ¹Gè¤Ñƒ¦¦£ãepj[Îuë)Bûw·€;YWjeDúŒºz*‡ïš½<â‘äWúžÐÿiË3Q¾d6¡¤¿ön¤¢iT·T)Ú• û3Î<íNOŸ 1æJ;ÚYƒøí>ãDÝŸÎÑŦ¤k¿ŠA4fœ~ƻ깈˿\¢�³cjŸOÖ¢®ÛÓ¨1Àݨ> ãV‹=)S >S|‹å~I�ÍÖm×mã5‘±›Ql`¨Ò¢Y„ò ž•#f@ÇòR§B¥y(¸Ü¸Ünƒö€ú¼ƒ¦SµÑü¨–ûÄUYñ�/Î<©¸ÛÄr=2.=ôÊs1é¾µØQåËøèþt¯„~¹Ò`�É­…_K-{VöìÃóy~lÎ Î 7NÜ8Áµ#ÇËP´K—iù19lF»�vÛòfTgTqšš2;*È`ßÔÁKŽ /Lx/G²ÍIf‹6ßî¦~ÜÔËî&l;�a½/úÀò ÍqÆUpPàY3VÎÞó×ii}À¥ïÃÊ bc‘䆸0ì/"D.7‡nF›H›¸‡�¯t3�SÍ3h.éÁg»•³5@A gi®Ç³ ±µ²µ¢ä@Å5 ÁSWQ Hè¡.´À€#﬇—ñ à@­ã[@{ظ%µvú¨á*¯ôPB}( `PÊu#áŒæ\±\]ûÖ„×Ýïpìpœ¨v»ç뉭ƒ¿ƒŸz•zµIþTú{¶ðýÃošÔØF…F…P4(E”⫌іÑçlÎNìgD| Ò»�—7’15/¿­äWÛî£ÅïÅÏü½ÊJ2"¨¯”XÏ{Ì%iÝ¢�“ªK!Y‘zïQì›æøá=Õ±ò£U·â?}FDz‹gDĹ…“a­…^\wï�|y¯g»[_üñ6kó‚>ØÊÇ&§0 &A®Õë5ÕߊpÙÀ7ð$�Iš´tÄU¦ž €sMqŽ8N�` Œúñ!í%: È^t°Ý¬ókçW§“.k›åucLÄ£y]›h-|ë­¿Ó3lQ¹,-™#™#ÝÚ8ò°ð%¹Q§¡­}´Íüe àóz€UÒcÁ ²Ê¬:—9õ*ÏÁ=­ÓKE$gzÌøRòm‚úœLëe·6“ÿû¥iÛiÛKŸÎ_…`SVvuvuÖiSWIFâò@¦Æ`»¸rqEóp¿l¿¬¸È$|.~å´)ú¦ÿøß6NM×Fûð‡ŽZwÈ] ëížÁ¾õ¿ëùAHÊokæÐ h>°‘|_ê½ÜÄdT‰yÐÑOe¯·?OíÞç]SyÇ��Ðþj#ºêÚ �<5$C&×hr�éŽfu‹™f¨ïÓ¸cÑìuaY×&{�Ð~VóæÔ%M £²x¿—{®1ƒ˜dûÂ~ësÁͯɸ'9Ö2üyãùfÇ» í×jÓt1¼ß>ë3 Ή”CïE~#�ó)gGìßAG†Ü¥Å¨ÔLæ�×Eh¿V;%”±f©æ_áHƒîœƒ¥Ck DÛ' ¬ŸSJ™} Sý�û „7–Ðí¯¶w‹vަ̾¦Jñ«~Ši’šª�uô‚d¬¤gOWç»GZ0ä÷Lœ§Gh„ö«µuÆGU’T0êcoïGîl‰bæV¢0ÈxdÆxY¦´ov‚Ø3C„­/í¯Ô8¾Zš\,GYF !<ƒv÷ bMaØÛËìB¼a…ó²SV z[Re×ê•)qS£¥ÿ×Ë+ °÷[+> ¦€ÝuüùA çŒ*„¶ÇCu|:(—ž‰Ó˜j-‡H2È–k£Èšë@·¦<ªxRÏSÏ“•£ÉÆ–[_f_fCC~yrºàÈOWGÏx6¶)¶)™�½ˆ^ÄÚ7F%F%³ßcÛ±oª“'–t—dºqÄ�AY ¾ÝM-ÿ¸©HøÕÓØ8m›ô1º.9,NÒE½²Âu¢vnÐÁgmÇFŒË‡â€iWR0)- ÂÛ/ü>zQ]@äÙf6±6±»�oæã…¼ˆF)2Gp¦ü¢Ël‚ ‹»¿“ê‘êáÍ‚”]­¸@°" ´½° @êq’L|F÷¢ ²æA *[eÂÒžãC\€_¶¦á´¶ ƒ ëZZáãþ¶&Uä"¿TºT*ÚÓcØV†-�)�)È0ÈÐ…Þ½—94Á‡ rCW [ØlجÒËÝݦÞ/¶_l!§cž¡oªö�íúS›˰Ϲ‚s~»[-Z‚G·Û®±ÿ~þŒß1'4B·NñÑî£åÇëFgÅi>4D$+9òhYzTêf™~|Èä—šRº“…Ð~ýæÌ3R¾nwýŠã;VÉ`B#´B³“#ž ž&.~cçÔd0(²Ðé+ðÙˆïÖ#ÕºŠB}¾Q±ºM”„Fh¿Z{wú��ýÂnÏQ9¶ vzù²Y"úíQž±¶2n™_ÉoEÐçi·¡ýjmWÏü DiÏøs¶ÊT’}ÖNvßm^kÜç�2¤´Xùt3(pãúÿuãq­9]û2—”$›‘/ÞFó0C(ö”¶à,|û„›­)ï�2Ó¯;Oo·­Aé$Ô°Y¯jaèäºÞ›ä'®™ÅeJÅå žôê.†ÈãŠaìŒsNVÁx›šˆÂg|bì1€†n”~3V&V¦È'¢¹›eòb„g U›š×»`j ‘µsÒ•�1ž>Ù>ÙŒã /l ¶»úK ½B'y´©SÚ—€ ~¤>ÂKYç|›¾Ç Û�¦–°æcøpùôŸû팈Ê3¿Ø¢"öEX­A}_¹]+»Vv4‰D'… ~ ~K¢R¢r‚¬6ÓØÔà�Kû6m¶Ï�Ï�~j…„ó%%,¿)kcïèžTjëîËΞ¹;ä§ú_lù=Wè=y#Û¤˜ÎRí=;ÑÄ|ñ 9Ó;˜ËUUñæü.…Qów‰“�žpß5ÆÇQåT(ÅŸïè²[ìè|ñãÓÊ}IŸ¶ºñžµŒÛîÖW¼MSi76!Cx%†‡ƒyÅDùã~o\©v�ïC3z^;ÎÂóbÌ�ðGåÊÔºïa„Þ§ôkN*ÚÓ´t:XÎ�X¸™ý$Æ¡4-ŸbcÀÙ˜ê6ÐQ¡kûf¿›�±;³;›€œa ‚ó7DA0ù�0´ j@§$àî¥Kø$3ÄBCæøY@s ªÝx�O�Xl¸NÌÚçÀÀõ�ó;N¼º×1K#µµhZ•Hw¤;Â4hŸÔ‚-'4'4y6yÖÆƒS¶µT͇«¡ž‰mŽ}Ž�þîk�×ÉB”f”fÜ{ì¹Ñ7e÷Ço†þ‡½;�†êÿ8nM…"T²‹dÍØ'•‘}²’%û’,cY²´Èš�,I({–ȾSÊÞB‹-ÄQŠðu¿÷ã;_wÆÇïœïÖ§ßÜÇs<¹Çë˜3ïyÏ&¿ø“A-îµÞÝDÝQÌZ[­yBg]èG‡È×Fjß1Ñ“Y/øYÎGåÿ+mÒ§~¯²¤*%´ç,ÕâX'Å«gW´Ø}nÒ|îsgC¾¼ÐÔ#dÁ¶Ð…oø4¢•SÝldV²êv˜?<×$1ú3|„o‘,þ…U²ˆEoÿí=#9ÈÇ náøöÿ¯IÓ\õŒ:ƒd÷š½ *Ã"ÐÇ-‹íÂú7›PIFm‡�(Foõ¸eiíq Û,³&í~{Y f1»V×ïE–°Pú &ó}ˆØWã”ÂÞt€ôf�øp”ð“1UÇ o>íÁÇQ¤Ù—6W6ýEUJUÊ@¤nö® T¨B¨B9o9¯ŽÕRéöp�³:¶XE2¨²…²…ž:Æ Æ ÞVF)F©KJ:ÆÐ™š8ç,f2FÕ•;ϼĵÕLý\›©[ÈëQP<õ‹1ÊKly&&­&”°í6Pb°¾±fVfºd‰­4š@�ÀÜ�„{KõaøPW¾Áå�&êÀ“<ýØFü†ü†„H™7ªâÄÑ]—`9»ü¢¼Ò{3Yj¬âÁ¬Á¬±`RbÑS±‰€NùÓ¬=@Ò:‡äýpésôT°�R³}nÌ™»¬=¬ˆ‹÷hä,Õj}ÜÏ„pÎ7… å‡íl›s¿W{é{ù÷r[~Ö:(t$:²Á¯Á/!t¡pWˆA›+ÓîSP–}–}WõåVåV…iV„W„GÉl ë>JQ™¨È9.xÄ ïÚ»%[­û�–`圸R26ÇN"U�,›éº�¶Ø˜®�¸ Rñ„°êÀÙ¼#E"ÕMDcا`¼~-áMÖ}Li®Õg“3}k¸8‹|Ì#µÕ¬/¯ÍúpÏÖñô…Ä4†¾–þ› F „Ç ¶ê n@€À˜JÎûò¯ØV8¼‰Èmœ€Z… º®Šì}¸¤–pPÒYîÖm¤‘§‘'¥côp#®Œ$ùurßH'O³½kAocª¼ê§_“××IË‚©@Ë-Æa en†cë¼€S•â‹ê4¸ Ñ�¯Þubåæ§¾Ü3€‹ «éY˜öþŒZ»’�)T1EVv@ÄÏèÍù�Þ`¸”{)÷�ó¶W¥» ¸G¹G£å£åÏù ôNÊ�„˜°%7…Aµ [ÐYÌãáãáu«ÁfÁfwŸªþc�ÓŠî�kù[_v.úF;j€v)äEmµî�uß[h=í-™v‰qõÖòl�/Üy_ðí÷i%KÛ%nˆ_K‰ =yXV¤…ö�U”U—ãÇô§Q¾hE´CTmP°NÇM|ûõ›§‘æòt%�{M–Aëù凌Knìv~"…~DË�L0%*VO»®m«Ò�o¿O# Œ©v�ºtá¥nþ…ÌÔÜI�ãN}{9 8„¦t^û=4ÊŒð„±wìÆ7|ûÕÚ‹ëãTuŽIQ(I“�îly÷$=á]¡6ÏR¶�à¨Wã{©ç^ÓûUTñ ß6k–v|!ORŠU‹ 5=Ûdš•ázü–© †ûRžñ·6T¹êçVWTjàÛ_³ÏŽü쾋d|ìOœÑ·Ì]n=Ë‘:³3sÁf¶Ua¦¯’S#kê{Œ ßðí_m ‡$²ž<øñðžíÏÓÊ©~�«ô¾'ÓVæçwDÉhÞ©G¾»Cò¼²ß~­s=K¨@ƒÎ'=—XpªAšÓ´1ÀâÆ‰ëƒ—ÝÊ5ÜÒ ÜwJw½úzì¾ýïšp\CÆa¸’ÞÏq‘¬½HÙú·®5¼;ˆ¢_Ê|‘HsY nãºÁ ‡p·ÿN3ÐüŒR((”±“”³à”ɲ¥Yü`¤æSznœ µi·F¼WZ³O­¾Õ U¶]ðéÓM)¹¹ò­Èhfðb'tí^"þ‡Ó“~©n®’à2µí[­Ý¯»T×CQÏPécЗ–p?…«+as®—t¼Jíì=ñÀ¥óq_f€îeT àzù&F ÂF—œa}@Ó ‡ñFÀÕÒÂŽìÙHU¸.ãã.e@žv™ è™ÅÉȯ3ÆÇ;AJ^ ÒT/]Pê<’]ø.ÀíÀôn·F\È;Žaüè–vÂÒýÌü®j\¬¦:,ѹ¶Ü»á;à2¾ãe–3½oôæ4îaa¿?ýîU#_#OCÓ6žnSÐ ’Æv?ŒˆŠ£�£�©9/8/¸@<+(+H¾ðäÐúLMÿñ‚¥ü›îÅ–q47v¶woÍÍXM^ÏÝòµfkçµGsAõ\Ù‡!“UmÑ6^³t½›Š» Œp?Ùc¯[ØöQ^:‡Â15’Ò¬š¬¸ÀÎJ¤y=³6‚ W¦Ïnôö+›úº«ü¯O>¦¢à ™ÁÜ=gÞô¡ï¡ï¥Z�’š@.îée [½äuògüp{ì]7.‚ž€×OÆ®�âX´ØIKC‡q¡Ÿ=7¦9ô~Ç�)mgòøf“�[6†›ã—’~ϧ’\ü¥êUì«ØìþìþÃZZU;æ@Õ!Øv9ΚB‰½{•?*)*)¿*‘3‘sfŽüt¦ßR…0ì@ت¥´xž=¼ÕL®�wóѾ ¨Öî ?¦ù‡Ì§¯?äÄFÔ¤x|˜0Gšƒ’Û6M�Ó€FÓ€Ø``!2 ?U¡èmiIwÅ�ºr»rãâ56Z ÁH•^G•1_ ÈéÐj©_—yÈdwù@ÿ�þ 7 ¯@‰êK ê=)mëÆïTÍ3Â/pqº8ޟظ âö‰ý”Ôß‚ÂÅŸö ß �4©2­ìD§—ïkÄÏ¢÷ŠÔ›kß/fòYÿ³~úÐù–·LPº­º­ÞsÞs§ç2Gƒ@/C°‘èGB-8-8…�×�×Ä=*|T¸v¾º�-uZL*5×ÔƒŠ^Ÿuá|ÅVûØ �:·ÖÐ{Ð3vÃÍEHŸë<öR½sŽ ”½ ÖIPÓl)—èþãŸ_¿Ãìcƒ�ûØÄ6ÙÇ6Íý–¦�Ï’)ÎÙBj8uÊe«Y'Z;Ï=†Nª…k¥£KIõ%ê•Ùl4Ÿ^ׯ Ûž9TÉ8c‹K6͈J·\ìKQÁ8ÊeU‹Ë §Á¯�†þ�ÐQè¨t…N•�d[1Ž®ã EùŠ^z €^JžbZU?Ö!.).™h ÚË ëÞNJ-Ž3^w° G èênwÆ…‰€Ž¬û §åùÚÕÀnjZâ–€xÿ(äÚª®»AîiºÌ‹\û‹7×Q›Ç»÷ôÞÓšq—ì5¡ 9 9ˆùˆùú]§š]A’fØü'‚‘P##2ƒ0Q˜h ’2‘21;t™:S½½ÄÆÃ�’É.tãUc·¶š)âµó$ã=wB5õ#e0eë›û¼P‰^LØVÇ"b‰t»�hãxlBDprÀЀO$ ¢ÀÛ#š›û .�öOR²�Ö�7ZÜ¿¸ç���²ø1j}Öq^ $84‘¼u£#­©3Œô?Å~Š•^åM‚Ô¢#‡AìÉë¾Ëfbnó ±¸¸eî¦Kí°ü âã8a«iØÁ‚K€˜Þ odD£½aÏIfe6/ËÔìF+ùÍ™Œì¥d½Ïz?FÚ�3 ¡‰ÐÔ±Ò±š;¬Mv¥ä#Ž�™^6Š•…•¥›T/]/�“{gÅÎ /6OÃõ™ºFÎÔÏaÙ/â‡nþ·EHbЮ[í�„þÿü•®EüßhWÝò’»ÍSN‘¿ifC ÝTËíµón6;”NO{ˆòs-í£½*Ëæøö×l:«ÍS�ú2y˜9¨#·R^±‡åP¿è¨Û^d;¢½3¼elß~ì1«™Ig$Ë<öèœH¥ò‚yù Eøƒ¢�ÏXMO+8Ân·ÉÂ5sa|Ã7 Í;t6Kè–zQW1Ö¿XåŸÏ`Ê'oAÒ]*ÖôŒäÛÔ¨Oј#¾áÛ¢U(UpØßtšHÑO§úç0Š¥’¡ï;/‚�˜ŽÉ‰dYàÈq§¢µÅ·ß»Y]Þ>¯gÝ3üL~aJp—¤yÔµ–ƒò¿ã÷ý˜ïü åþe>Àö•ñ !õ õŠ�¿ T©†w Ç¥0½È\pر]¨ã,"£$£4[…ôÕBb?ŽøA´zCœp�æ@ÿp:óÓR„\�Âþ›ù2(ˆÉ5æ¯iªΤd×™…- ëœ<5£@U_†Jdb÷´:¶¾îëÆŽ’Ž’ò�†…NpBBÓžÓžýÞ‰\ŽRagbf,{ánŸ¾}ZH¡ðwáïm�FúFúŠÛ®ÄÁ;5Ÿûqbš#M<öC¥’»/ûF�"_›ÓP–‰ƒ“xÐ:‡7�Dþu˜UA!6�ORð3‰çøy;žØ Yà< £ÅLð9 JàéOR»‘ÒÖý¨P¯–xB(Ñ'ÑGd±¬€�ìsN�ˆ, eN†ÄDñº—Í*í@X ,½!ì×!v&q{¿~*œ•zà%ðíHŠÉ*0u~É´x7¤e$>Œ¬�5Ÿ”Œ¨Æ+N1éjo’Ãû«‚ BÚµLÖgK‘ÏÏïÁïÁ©jÓÆä‡(C”ý˜ú1…§èåñƒt¤kO÷V…sE¸" ©©^Žoßšcßᛨ¿\%×�‘–}Ai_UÕ²Ñþ¸GÏYïé>6c<�«Ô/ÿÑæyçÁ•äjfc擽uZFRaoéÿ~‡/¶ÎßxoF¼eú;ÝÈat…ö̃�ºN±6g•|ŠN÷¨¯Þ¸pÉC�ûIó‰aTÇRUvÆÂT”¿‰e÷­r•íÆ(àÍÝ~<«F+1R°O €o§ YX𯈠ÊÇ‹,Á jÛïÁ6¾Ù“â{fs÷ìXR°¹|6._KX0ï{‡Ó²¿�yËf¶™ýS™»A®H­¥³w×—Œ‰‚tí7°ÞýBä�Ñο0)†»ß#>Q‡mf›Ùjæ›Ñ{\Cï<ý��»K�ôƒŸ°ÿßá›Å‘Œü�ˆ£¸&2õ$Ÿ×òù{Ùðw#»ÓÏ>ÕœHúæ76="j´Ñ»Ñ®µ9ÅÎr8ò_?¶ãU"”9ßw1¼$æR—ä^´Ó¡ ö!öºR"IŒwð•9œ\®\nY@Ä�ˆïCf·Ïn×:(ï[lÜèÝ÷J¹9œ­FißoÔ©Ýks'ÉÊ4àŠ™î‡âõ)I³ÐÜÂlѹD¬¸ûÃyàž¥¦Ñ]«¢­Äd’êw–ƒw/Ö÷žqâ1U”?&å2'›8Ð'|�›]7]÷îþ–g„~â]/ÇiZdG‘Ú�Î;Ej»ø¬X¦–§–™@…@êSdo@”æ5åq ßš÷ �¢Ñ0OÊvSÀb×s³ž ˆJÅÉ£×#­¤,=¼R X9[Íx¦òåeñø?Ò¤óÀ§×ÃV±[üÏžST´Þ�+­-­MO÷¬uMÐã‚ÈÒ[ºN��û¨øQ±ù۪ܪœ�í�Ä�DÛžO³ð3p¥/…ÈC oÿÖ'ú6:‡ßm�åéâ@û>ø�BÒU X8�‰à©lóÕM�ÃßðXJ ßÂ`ø÷gà‚ëœ�'K·-´±b�¸xî4O¹ä¶Q×÷¬Í Ûß3€‹¹ö, O=ôí~E“9̹hbMÉO/„ÄÇŸX[bvXîõU=@¦õÌâ-ÍYä’D÷} ˜ÈEyy7öQD3!ŸT¼fgœx£& ™­KÒzs$륆ÙȨÈ( ~H¦d9ò:$âAÛ>gqzÄåû“bg $QÌ|¿‘S(>;Bÿ4™¯ †ÀŒ)ÁoAÊôÊ7¶ú„zõz:ŽYŸ—€RÆI�“:©×f(¤ÃqÈqÈaø0|Èàh´Q=�KìH¿ùE8Ì8fœ“ÖqÒqRpÜ÷³ïç}´©DçÝg® ±î£×Û{öÖà°ÓÐF�¢Z›c /l…spgÇÛÕüK+0 ^°’ž¶ÞÍpfr‹OØÕQOLK*E>?Á <ÌüÙŽ—«GI "ð³8à$3�PçÞνtì ÕXâ½û‡‹&›Pfd×�ðºÏû§³Ptt4ÕBdÊ!Söl�vŠ’ý8 ®Àswàê‹â@Rl��åL2CG¥†”éÒÀפôF´4<›6‹�¾â&w…çql´6wç'ýõ¡fÆg¾Í|;¡ò3òú^8eå,ò,rÙ³ˆ‡õ× CÄ.¡›ÔáòBóBÝjFçGçm’ÉxÉx+”‘jÿz~RA�ÒL:ýDäÄÍJù¤¯(û)ùè�ÎÀáÏÏØÝAm!4K©”¹6çÄŽŸ½é–ß—³™ýßgéΣ�%cfšü*E‡¹z(y³ì^ß•VAÉ�“Kh�ŽÑe]1Bmfÿ}åj£G–ä© ÷rÈàà‹·æ’çÑj¨ÆÑp�›gý%ž^có¬¯íãßÌ6³·¬)ùÃ=Wã7ŸÞßÎa£ï :€6ˆyÎÃÄ"÷èáœXdz·«©bg¸ŸÀföÿ;K]BeŒ&Ç#ZëÔ”.$Ð}íûA«§‚œQ ºÜ‘«ºôté¾¢A®Íföß—yyË ÍMZÏÉFݬÑ.\¹šÕ­)[Ÿ;"¯ê%f¤˜4§@ÃOÏW¸™mfÿn*å‹HwõדI …¯y�á‚Öµ/+-+E†q@xYÙ>B uGÌp¬�˜UÀ‡*ã)esÀþÖ‰XȾr‡ÏfåMWHY´¼,õ"ÜÕ^¿ÿüÖ›lçá3–eëó?ý+«‰½‰½K«·A•î’ß%¿W;_íñX¶w‚xt{°@ g¹öó^{{eÅщ׉·Ü‡*Þ)Étÿꃉ-Q¹•ñSŒ.4uŠfm®[‰ª Ž=uO Þö($ês#GÕ-mbJ wŸE!�z’?3 ynP›¶b�¹|Ù<š×KIQ W¤œ…âNš®™®áEJJÃã.Â![ª¨,”@µ–5£êZ|É|É4¿@~ÒBŽKJ C˜¯V}Ã)Šä«C“é}¤¼[‚öR‰¦¬Bê^í2U:§ù†&S$+÷b�À}‘S»s²¥³^«‰mÕZSb=f3©6t[ø¼3¦SðÝý»{˜B[?­dº‚X ëç8f43ú¨ø‰�'>f«êóéóשÃ;õ¤ôYµ[øpÞ}fM¤Ôò†÷µ�{¦UQK?àf«5=ñöOzÛ›KØ‹”SpòC¡¢™Q¬ ‰¡R(ÿN|aã^½1NÓizAŠ‡Ô§€á‡/¡Á5áÑYå„ ¼ñÂ{q÷gF‰U‘�̬·:¥u!"Ã"ÃÒ�!Ç¿B|ùk\!g_>ìÂùX äL¡£be¤äHš±ûÌY^A*ø¢ª˜>ù'¥�åÀ¢Zó o£¶Hy¯-|ËæUÃ2¥ëC]ý$Õ¤Ù¤ù+NtG½%\3_3Ÿ™¬™ììóÔ”(=Il2QçÂæÂæ�$˜$áÕàÕfiX ßé¸Óèm=Ÿ<æ°b-SŽÚ;c¸ÑN~ùvégVÞ¯½·a•'î^”üµà²,ã«$4Kg9†xzÚdëßïtÖÙéT$¡­8n™r¶^øÊX¾Q×i׿§îÀ½m?û ïÌÓøæ£—Ä=B¯»% }ssB]¨k¢]b±â_)þÀÃsꀬLˆ;^,O/)ƒcWbÊãìû•;—;Wdøø¢ìÁ3¼ŠÓ)=Ô\´úb+6†ÝT´%¦)¦Éì Äj „Étü:„_CÈçè `ÏÀ°ƒ[–åû@¢_Lg¥9„'@´38:X‚”‘À OÛh«{5Ԗ׃ëG…<4ªÞõ=[ßçKä]MLML [N#Fàøøâ¶Åmã×wrþê ±î"v6‘s;\=c=cgº]z&sxqxQ¶¢ ï”-§4:¥3Í"»¸Û‡¹Q§èÖæÞDÖn…«“SÑÄ£´o Ñ4ñ¦ÛâDÌõæ7`’$Ú*b L¬Û8b Ð68åí{ŸˆWT�=DÊÛ �j€‹Ì<��­íõäGÞ„~ëáÁq<,h„;Öý‚è2Æß’YåzøÛá·ƒ| DXÎ^á ‰“›ÄñÚ ÈÛŽØ{¤Ô«§g5¸!åGnïʉî Exl'Êä*ö—wB‘æcªjê.úC1�‚ëSy—n?%;%ÛÃAåRçdëdËÕÂÕòv�éXv ä±€“’ÑpššqÓ¾ú¾úrX-^-^±kùÿÚîûës oÍÐOöÝ19™Ážîæ¿?U`£�üùIáÙ™-Ñʼà·|JÚ*'y‘w×/ëÍl3ûOÈ\bë¾a?±F¼üöî<ê·oàx¨Ù²ï”-‘%’ ¡²f !k–’=”-Bů,#[ÖÐÙ·ìY¢ìÉV² CD(ž®ó½ç™ÛÌx<çÜçtwÿî™×ïs®ÿ>çÌù^×Ì÷âA †&ó¨‹T5¥°¸å×-I>?Ö£Im´�(’zVÁ3ßþ¬ÖéÏ-µ÷�Á®q{+%͘†ìÆúð¤ö;/Zˆ¬œmg2î®K�¼cuß~OëQ˜<ô.ñFÜXžÀ¢@²+;æ=éyÓøÀ#:aóg{¨›õ.ÖíYÀ7|ÛªI©Uζwœá³š\GµÈ7I¨Í‰Ñ Õdm»ºgíg5%Ÿ:ûxP!¾ýk­Ä*„Ŧñ^TH=WÿNÿBÁRÃSm˜ÏâÌÉ)jk“§èÚ2àÛ=gÐüZ—#©Ä$¼<³­¸vE<�ÑEª^›­êý‡À£Fuù™^©jl§¾ï<¿ÝÞæ]‚Äû†>˜j“Zã½íNæúî¶Ó®0û=F©,7›äôÔfBÿï½?ñ-öþƇ|:%ËkêS¦Ë,ÜnÖé~­ËcÛ8„éµ´Ñ8ZS_5‹‚g&S:¶#‰ª£èkûÙz]lŒ§c�îïÃΣèS4Î \ôM™Ù�…{vR›�-Ž-îèØ,hÍ¥¥G–Hh9®© ©0®¾iÂK:öe!—¼! éÇú §B�O£ 6;€À`©s¸Ð4Ä"^# )¦Së¶óþ\Æú¦-Ûã£ß7UW°•Ѥsk‘n aB}5úGôþÄÊ~_1Ýž¹=sy©ZbÙ%aXÄ–õ}W3W3Ü-Ê-J¿qèêÐÕ~¬wšðÅñú'¹êdsx¯T,ù~Ûn¦èÁÙIý¦ûˆA´ÑüýVI+º Ø ¿¨Gbríiù±g†|º¤v?J¨¿�@Óú ºK¬9 ×!.جc²c2MpâÙf3ÞhwhQÜÿ$ü|Jë .”쯿†ÁÝýÜýJm ô#JÃ:UˆwMçi˜ àg¨½ãÁ…8�Ñ­ã_"†ôõ9/�.ªá²ãæòšÅ-BÛ®sSC5*d·!S_S¶¶ü©+_¡W¡—sG�^k ¦G �ÜÛÝÛýRŽŸA@Èç±½ãò Åô¹øs±éDÞ½¼{¥Ü‡16«Äœ)…@ÝÅ2ò1ñÊ¢‘Ûþ”á׺¤FÕL6¹BhVM2IuC+þ±Ø†š)wJh¦Ä¦OÑuš-WÞ›¶²å;6QûɘßÉÒ}ÜÿmmÞ{IÞ}!¼‰oŸ¶Re’ˆ¬-ЇÔRu¹Wsä´¥Ú³·‚âW„—’OPìy çMä{ÑCøößלÄ,ÍíÙ•³Â3iÅ´Ì�—` ¯áXFGòÊØaüÌô»Ó$\úÊvø†oÿÎÆàÇ.Iy5S>úmqU—KéØ_¦î{;ˬVwû�¤/ž¶îÈð‰í¢Æ·­Ýˆ¤w¶l_* +šâKT~ˆ¹—ã(;b°Èx…ž/IöêBgßv{9Œ`ÏYÔ>S$» ÚÉWmAr„„g°’zž»£.; Va£šS ¼¼[ °=ùç[!xÍ$+qᩤ+FÇ4Ol®þµ,Ú=±§3šÙ+”˜~êR@AÙ' 2gÛÌënu«V¬V õ¢ÿ†£�¸R²$ˆ‰‡ñ, r(¦¸äïãbž �mØ}muƒ\4ñ"”³%dÂ%y¿‡5Ûu¦\xrJåË/¦±ÚŸlȶÆg8H"Î.ÎÞ=|3%í¦¤¥¤%X'¬S©“(Ó�"߆ísä9Lš=š=\:ee1¶##G¤¬&1g !»”úÔ%£OtúÎJªô{ÝífŠé×:ù 7L.éCgÑ Bà Ùdå*¡Ø¢Ÿ'²o´z/¶ÔÅÆ™]ZºI‚�òîý+h4¹âOp™³_tÜv4ßÜ,µ0µð–„žØfµ¼h !(w­«\�€†óÏ!Ãqkמ¥®*ª*Ê�€4@,š ‹ý2QÖ-x3p�æÂ.çNºgó!Ò•JUœ!WXp±þ8æ•ò’C9°§HÖYäÚgªÊ©œ/¨ÿ„£ySýçúÏ2--”0yMyMÅ»Æ»Ž¥ ø«TB:Ÿck4z�Ķ2I¥üÒüÒª9‘#È÷�t ˜gvEê"n%Ä\&µiølwf—uø¢(1i8i°)¿¹sgçéŠ0Ö»¶–S¯s·=]^&Ìï ï’7ô×/°£/&ü§3»Ãè3»ÃЙ�ègv�Æ2ÃÚÓY±éß(c z·›uæ_ë4Y41yqL�AS¸ã7ÊH}ÿ›5•ÐM ßéÑ+NÉ^lÒ%_®ïõ¬_D&FÑt˧Qè7 Gâ‡7[½»z×ÍOÙ{3Í·h5™(8’åßÓ/!97Ö–ÎK“( * ZµCì­ z\¦²�‰;i|(þ€…$ t˜ê.yÔ€†º†ã²¤’”x÷°‘1‚©r1'Ê3TÝzÍÍô¥Â×mÏtm-@V””Áõ`““MœML&÷ޤO¨�LLá` ‡%5:5ZêD+o+ï›å7}oú(|VcÎÔUt4Óþ¡ñ¹œdl#ëv3Åòk]0C¥-¦x/�p4ª§#ÄD �§°…™QOCL'cwÅ�bÛûþ„ beZÐFK룞­ Á…™û=  KÜ̱ñã¾LÏfÉhÃf(&‘ä§€¤·3» ÌŸΚY§Oÿ®Û 1Þ ¡»ë“ I{&#�ÂQè²Ñ’<¸ôò?ŒôȈ„³Zr“¾4.Îæê42êH¾féÆ¿!?Ì"ä¦[7µ5Góúê¼¥¼¥ãe/|)/bš­�­]b^b.ï<#Ç~bX…ívSWsWsÖÇ~ÇþÀª^ª^^"~$æL}Ni€öÝàch¼øÊm»™býµn=“GS$û»a4rëw/Cìr%tº±9[L|j ºä´H�c3YɯîvYiÂÑ>JáÂ:`â (˜�ÇnæPêPÊs ¦¾™­b ååÔ á–ð^HZ b2‘‹¶L«L+) â(ù.Ê* qià®Fa;œoæ‘þæ¸p´q7Ú´é dOÞíæÄ%!ØÓíhÔž£”áò  ÷g ƒoemmŸøÍÙÎN¹ªXjž*LÍÍ:/t~¥§sÑÑ€,òb£´;—�éåìËY‹66—`ËÉ]“»„ò¯ÝAÍT34S²ÆÃƒšfY[¾þx‘('%¼Ý™æwòŸôûÆÿÄùü⥂˜Ôvõæœ:Þm¸š{k\…-y¶¿I|åRg±GÖ'|û÷µŠKþvîÙ_¶™¥d!ì¦W], °ŸßM]åKK²ßúöÔÜ�ÔûA¢øö{šÍ7WÅÝÑ_ÕiU6ö‰;v< }ðªÞý´bv=«’B\l¹ÓÎ÷ÈI |÷g[¾j+Ïô2ºßõcÄùb»éÚ�_—Z½‰¾ ·zâ&nÞhmk˜†ï豦À·¿O;ç�ýâ�OÜ僔Â|±UÆ?¨9Vj¶’£7™·Bn—$­µp9n² ßðíwµòXãÛÇHv‚!±�›¯ÝYYpö`_ˆwšiÜ7ûcu1MîT‘l‚oøöŸÐjžT$›ùï]#`!2§û†é �úw‰üê×k¤iü�r«Ñ“„±áø†o¿«¥«ŸZm óYœ±Kw68bO±v†ŽL^�ÛøÚrœ” •Û‡¬#’LÝø†o =áì|Ì£2§2l豫%ù^Éé½¥®á_Y“êè¯KP:ç‹oøöÛZšŸ‰oÝeU2ÁËRDÚ®ðEyN-ÃøäF[҇y/™BšEàjLšøö{Z¡ÓùˆHÙ‡¦FÑñ÷Ç¥X‹t òù/h—74¨¾�Êù°g™99ÈtßþÞÍ3ûá�b ÁníÎ×ùCOõ:ä<¼ÿ¤;Gþ¿ ¡{Ò[ÚÚÀp^ÈJ–L°=3Ö{î(¸^ìœÖ :'9ïÝH™¹Ý'Û¯u5u”HLfçX‘hZ=£]®Š•AGé°uü|E´Û´]ÓQ<�íÓ¼+hæ³ tªYøÐ>8)ÙãBà=‘È›ï¦Ý¬Z¶Z¶'_`·—Náý ¥¥½¤Góûpy=šd¢;ؤ™ä°V¢õé2ÇFÓä§Ï­QeÇw�«¯œÚéŽÝx‡É¢Ø¢8Å&Å&#L¢4‘­À6|ò’&ÆÆž‹®RR†³•O*Ÿ¬¯(ÍcÎTÄri+L,âÂ[Áq�DR¦ÕífŠý׺ó©bÏ0ÉÁehÐÜ�wÏzlHø` �° „ò$hd´<Ž�鬉=pî Ü1žâA 6P¨ÂÅ]TÏð¢šìÝì±Ãc‡#¢v›•� 1Ñ tvŠB‡Î‘BÔzNPÖ ?Ó˜v˜vðùLJ…"Ù_~2¥ƒüßï1àù(0Ä�À…•Š7âQGBr¯gDÐæårã2l ­ó5b-­¥ËçþXR"ÁÜÏ=ŠR[‹-/ÖÚ`Û`k™ )aÀ¢{]÷úÿ°wçÑP·Ç“�RÖ²eÍr ÙŠH–ìBÖlY²…PhD!D QÉNH–,¢hÈ’lIHT#n;ÉÎÏu¾÷œ¹}güœçÜÏóüzÎ3ß×ïs®ÿ>gæœïuÍ5µ$µ$ûBJ¾—iA¼±—õc„°°œò ¤4:áúÅõK ›ÑUøY6„ÎÃVý…õÃÄôu Ÿ x·;˦7·–]SqÅ=÷I|pß�'3—t¦ï©¤îúBxRL~ç¢xŸ[6"ÎþkEÁ‰ª%—à¿ß?�}–Mb‹³l ¢™óë”]UĈ~ÜnÖÙ6Ö%>•¸wAÀê)Æ´IYâãk�+x±å½†ˆ®1^õ—Ãö.•™ àÌ\¼â²c,9ˆZá‚*²t>/7§nfâhâX×Èóe³‡×1;£qÈ[pÎ Š@»bû´¾Q˜R˜šèAšÖ AÔ·•!¨?SÐJÀªU ÀõF6.á‰@ÙÞ’¢QiÈÞê ûVª&\ÎÓõhêÇ–ÒXŸO•œ¾š¼R­òÁakÍUÎReÁeÁL�O5ÓáÔâÔâÈZÉZCÒ„x@(lOï.À‰ÇˆÇŒ°¸ä¹äÙ? }ú(yÈëÜ‘“è­ø Ùú�¹z;bOÛ¶l7Sìëü�QŒpaî>G‘B9)ˆæ_jÍØ†ýÛ½€µ@UÃä£"ØrÅšõU†¦,€q }>0{÷„+.6HD÷lW7KÊMÊE�ö�߬ï F©Ú�� ¥fáOˆÒåÏî®N2²æ�¤¿8-›B¦¹Æ*Ñæ‡�Öàk 1.í–€!ÕlìøÍ>5?_h陂”õ¶‚P¾lEvœ¨M®á¢P<}ÝØ»X‰¹ž¢Yу s´@:Ygåäê-.ºˆÏˆ÷õ±u*Ο¶¦QínkXgXç¯ÈK\` ‡ C�QR¾OòL^BBXˆ°Í¦®�£¹Ns½ÁŽðá·¶.¢¢ïckdè™âûëþ‰ÊH¶õÆþ¯ÍÅ®¼Z%¢Û�eƒ'ÿ§~ãcÉ¢uŸdÙøÁeÁ]_™v®ýj|C¯W0;ð¢ù…­¦@šbéОñ4]=|÷Úv„\¨�˜=ú™7œX"àNÛUƒËôO• ë�”¯#^ßÑc~�xk¬= ßðí«yP'¼@aÚÇʾþEi5Æ4Ìœ:”ñ¨Ù}ìΫd‹#-ÍI^u€›qžq·ì×°Ÿ ·?¹y ›Ť4ÜØÌØ ‚GjJjjˆ¶Ë«Ë«Ä´< >S¶ïbR|O HÔ°³ˆn7S\ëŽé¹{Â= s?‰±>¼·”ñ]àJ�1¶×dì„À'¯¥OCnLóØ^�¡ü ,s¥ñ§™ø1¦Pæ­¸„Iî�L�›lVÏXÏø�þϤ31º¢é s&Ù:!öw„gŸÜóêóê3S€Øè@~[ºûd!�ïIÅ ¼Q�JÁˆŸ{∠ɫM`ÑäÕ�ÍhËhËxEg6 ƈdF¼E*´!�� ±Ç¸:Ü[4êTëTÞBÂË ¦®¦ �ûlrÂhá»�µw€_”^.e€‘žCžã(ÄâÜðÀâ'1.�Ìå,÷ [¬._5|]´¶S{™ÝÈBpkYßkOòæñæ±”±±ï;§5®5>7'ÖÚPçca½ˆmÉï±,UU‚¹¦¯¦oš•ã=Ç{n;ªˆÐ3Uü×Û÷�}ýžNN^{ßšÖû n·ÇÿNÞÏcMV~ƒ%çRQ§mcÉâô÷ˆø†oÿ�ƒ]-[£U#O÷ùà”È®¯u«ŸùPѲö*ænꉆß^Ò{ÅÞϡڇo¿säÈ[1ð›´YcXOk‹WDJÝÊ–0uR`Iy{ç�¿±�FT„!¾áÛ¥ñ~}?1e¶Jú4©L:…FGEAÏÜÞ^©š#ÂÂóC:Ûéö ûF1?5|÷ÿ ÍF’`Üo‚ »ÛÆá�N¯äÿŸï¼CzS«ž•áï@„F¨¿!_'Ã7|ûÝZ�U7¿íËŒ—Úy»dë Íô£‰‡N5†^а>â’ð'iÌŽ`š4e¿F|÷߭íi›iº‚ʉâ©e*ˆÝÉmáÀb³fÝõQ©Œåú¸1¹éâ÷G¾W×oÿw7Ž å‡Ê[Rw&ÑŒ´T>N{ë.ÚЬ1†£% Ê'r?ú)“µÝ{ Þ�u¬>…ŸàÖËõþöxîˆ+6¹Vòn[Ñð.aSf»W6ä¶ñÉ] |õK*PÄð0cï¨ô .#f•@‚¯Ífi¤i¤NÕª›‘�ÄÈ0G3L‘j–OŒAòK Óïe*GÕÙÖÙÞЃh¿„´¶~w†øü. -Ü °SNMÌàÒ|xÑÓý-nB3O@yL¹v.¾Õ«=¥e:¨ì'®Jˆ •:49ßîØÚÁì°g&S¯Ú;ä:;ܤ夥&¹&9…ðá[¹É�CHl„7ˆÁ?*~Ôì6O>O®×©=ª=zºþÔ<|¦š&Â8²�ÇmRºoY1‹èl7S|ë¾}|Á gvñÍ2Æú c«B]=¿°]¿ÂT ØŸ•üeý'6WŸ×„ÂWé6 ÚÇȉ1ä㸆KTQx)ïz"ûžÓf=º=º´ êQ›Eçc¤Œ YVÉÙ$: #�vçá ù4šØQ/¢^uCŠ’!¢æÎ�4}im´SHÀ…ðæ®¦À%…p%Vy•ìùnëôÖÐ�ö.EôIî?•?Ä“Ëö�s•Kq�8ýJØšªÎúŽ ä äÞnOé 8‹~‹~ëaëaVfÙ=¼ÉwÇFFÂw.$($HÀµ\±\ñ~)ggÑ«#%|¿ï…âŠë‚ã¥"ɹñM[ÞE‹Þï‹^O2Ȧ6WìcÞ1:“½Œœ�l@Na{–ß}q�ôàéó%÷PZmAˆeº û6¡±Èþý~ßÑ-öû4øå³×iHÅy <¹?¨ÝÛnÖù7ÖM�Y=@’ê‰‘Ëø†WÒn‡ÜÎRl=ÒzÀBöeU¤“+6&±% 6TL¸\Ûµ #xÀÅ—ÊáÉy€†Œ‹y³yëyë¼>”úfe�½-h¢=ú@ëÙeÈ[…ò ©I‡O N ö@×�÷�BÂnweAª&¯ú¢­ö÷oWvñ¯áâü¬yÕfç QRW?HÕà-ƒËô'�†Ù'4V2E©ÑܹóNµ“þÂ[Ëõ”’¼[q·‚¤±È9ÔŽÔ�ÔÍÆËÆË·&§5y’v[Ç8eœÒ¥dq]—».ןØwb_ØØ¡ýð™Z½œ¢¶Ëùq÷%ãr/…ÛÍÔëâ#ÈÍ಩«0Föþ‘Éø9ý ¶fá£Y€Ìr�\öIlËl¬†À ]c$ M¶?£à‰”.”Š¿N”eñfášáš±ñ˛œG³Kz9ŒzóRŠŠ~yvP¹uŠnŠîØ7HD^»òäT–Û(ZÍn@p `É�JÅ…tˆ8|U õ×söü^F«)¹>\lèÒîYÔ{$�iºÂcMQé{;ÍBiÿÖ~É2÷ó÷óÏí®ÿj¦ ×OÖOføØð±HÕÝBúç$6ÂãµpÔ”Ô”½‰jÉ6¨gоFÏ” 4S¬×ã‚ë½2^ù¶ïl�>°å¶ ÷fàŸŸ¢‹/é¹ÅçÞPû£$²> ²YDçÿ“6âWà)}úbRDÇ™½K¨Ö]‹-œ~a´“¼8Ô»‘¢vómø†o í\Óhç uÊzMn[d‚”ü¾ùíÐiÜG‡Dq»Î®šoOÕ+˜‘øöÿ¯ÉÓ†øD뫳õ᪦a¡æxŸÄS+åZÜöÜ‚õåñ:Mu¶_Ÿþ¼.¾ýçÚÛ¥vÕÊLzµˆ)�ÉÆªŽ.û?Œâ/æñ.UO·œÛÓ`,(Eà‚ Å·ß«åº-å_ûÂfÐëGñ/öî<êöß8“%e+"…4!’„±%K(){²/YBdÐb'{d_²F$‰lÙûZ²$J¶’<²¥ÐqŸï3gò�qœë:×õ;Ïù]æõßûòùï=ƒ{îû{7ß(®~³Â$NÖi/M*Æ~F¯ö‘ºùB‹?åVöÏÊj0Ö»«¼ó²zýM›nÚ‹ úŠýÐ-JÄ´ÙǼ}ÐUÄ¡×Sº@¦ô?ÍÜ2tX¦žéíENÈ·¹¥cˆWFáíó.¤&åV‹ÌŸÈú™û”‡rp³ÿ[xÖæ}9¬ç0Ç"€su^øwjÿä6{|4A…Æ@Ý6 :w¢B|ˆc`™ ¼nÛŽÓ òø!Gf_QÜô,'×sãuãµÿ¶º^[Žn8VZ*m;€èø±8Öà[XJªW/U/Å Ù+Éґ‼PZÌÇŠŒÒtyOÞ)Bl–�²Ô¸'b¿4‰¸׊ÓËÙ Si(¼Ò %ßpÄ} k—È,JØ›ðÙ£‘c‘cÍ/g®4À-•/•k¢4Qß¾%î:yyŸ;­+Ü[Ù·²TÚž;=w>ëëç�<ïy¶¦þ”Aè�;�úÔƒ»Ä›uêèÚk@Ó¸Av^o¤a¸Ÿ–ƒÑB›’ãz œVÏýài•ˆï ‰å_€•(q�œþçn`N•mU„8rª|=1ëU3U3m/P}·^YŽZ3VÛåg5ÀgƒS‘åŠÛ&„æìøØøØ3ˆ?$…šÌb“RìƒU¡ ÜkÆ“} IÏ’2«¤Œ »¦x|<œ A(.˜œ¢kcc ‘ºç›“YÖÜæŽˆ4ߘøMfþÏüŸóÕœä3Äàîž½{V%ŠúÁ�¹úÄ¢€�Šôv#Ý%cûZûZgMËQËQŸ±=à�2b=¤™‘FÖã„x8b¦‰Ú¬S¼ksUŸqÁÍïÅ™‘Êd¡ë×nÉLJÈÍ�$V)To‘M¿ÃW=¥ù ¸}ö9ðáÍSIöýù‡©*T0¨�õD¥E¥•nKíY¯’gÒKrÿÌ40ª•è ÉûË%®ó{nx__o?¤ËÂNW;™ãµ0ÂB´sÿ)¸{— !WŽóç»e÷B,W–Ð7óÙîoÓ-f§{éIn�f­ÊžAûÓÜ’SÏ7î@  NT}>� §y[óv½P½PÂŽ!Ý#ß Ô ø«ëÑpereréþìáìá5ýOHŸ�ž‹96_ŸfWˆ~èl9{X,BÒ£êAÑfëÓ$\¢ûQ#ÞE£³H©Ê$¹‡‹©?ëÒ5Q¥ÍÄû´óø¡"êTM„bk‘“ü<ÿýý¥‚¬O[ñÆh7Ê0×&q‡_XbܬëÇÖæ®Ž=N€K¡øó¬�¯c€ý˜û²õîD|½d«ñ¶ry´Ë ¾¸~M} %Dø pµ��R&¤ér”�}cUi½ §/œîç’ Yï€3ÎpV¼îD9PÔò}„}Ÿ?‹©Ö>ž˜ 1¼ –™vˆw…¹.Vž�ê $ÿ,Ï „âðÃ6z$“Ò®«a-TBÈìQ Eþp?ËW‰ä�ïÇm~5ÄW7Vú•þ†¼Œ¼L¯gÛa :¸Ò‰Ò ñ5H^×£Ã��||b¬p b bÏÓÀÄÞQ¹£âYûïþÒÁyÝ ¯]ÇŽ�ÄË¥ôø½Y§øÖæ/Œ„ë2óü�3énÛSÈO‹ÄwÏ«�8ï°:X×°ý(¾J¹y6`éÚ. ‚Øü�×x S2!QawÙ¡bðwÌŸJKÉ�‹\\/×Çú¿ C…:a…\H¶5mU>U¾Ý÷!ÚÝ9«£.�â›yAX$F@Ù+ 8ýE'!ñï�dž|±-û!Uô^¡”óï$ )'ên\ýZ•©ê>°ýd^ɨ„©Õî»[2¶ $‰#‰‹X9ýªí*íj[›ÎùþšÊž¿}÷ü† §ß§ßçüñ:ÏužÈ—ŽAŽAÔ×QqØNYî�:%}Å{øFÁÑ݃©›Oyì7[Ÿ†~zFMéiÆ_”mWmx‘íü�;ïûVöï“ýÚ.zGÄ=,96T†KUOÏimÙyíKzK´§èÔÙ)»è*ÿ ­Öà­ìŸŸ¹^R_ùZ¾Ç)‚.Ë Áh¥�ù—#í…z:¶sZ&ÞñL55PÓF©u+û÷É~±•Ñ.V½:OvË?LÉý¬&q½›�ÝPž]`R«ß«ðÒÃW~d+ÍV¶•ýÓ²ïæ�ã´_´NJQ*œ"Ù=P?Ôœ?ôTóȯlôñ·ºRín_÷*)oe[ÙF™úhHsò3?åCu×FYŒ¢˜¯EJ¼!cr;‚·cPá Ÿ[YZ®¶•ýÿÌžÍ|"Zîzp޹Ìg[F÷ ÷‹+3ì)íx¸h=ƒ±/5ÓWzüRÎÔó$íV¶•ýo³xNqù¬æœ¥ÂL›å Š)^u¿™ÿééOhñÓæ²Y6ôŸ~Ž]R¹õ\wœ(å·Ú=·TÌ­*�­¬J ¼ÑêV·þHÒ§¢àÕ…‚K \õ倯ÝØÒ÷Ì^–~î/P¢$X[¾ÙÚýqð}ºß”œN±Èû[~ã!~–éÝøŽŸ2¦ J™c> 2�á‹%� ü\‚_TO‚JpX²¸�„¨»Y?*'ýYֳ˱Ë™bkZ�ñe,¦§UÀ£ìô�^”NFI!}‡€¾€¾îkÈARÈÂÅÄ$ˆ;s(–Ç"@Ë HsŸ�$DQ ‘Ïw¡¦‡Ü^ '³C°"¤.ì1Ç ÞÅD—kC*µ¼#ùÜ™4Ù+¤Ö¡TˆWˆ�ño3b~çòÚåõ9�s5™D¯Åõ!VøÞr††À ÛÛöYµ|hù`)â±Ýc»æËœx§¨2tÂ1ŒÛFbÎ t:!ºY§ø×æt!1p4¿�4âè5šõxêΕ·ZãK`[ü8s§²þ\¾ Çó§€*–Ùj€Q·ä'Î=+—}„4TÍ®Þ!^Aë•ÿ(ÿa"ïZ°Þ œ‚T¬âZ [Âö3D±ø~]ü?  ‡tˆ"ä½tb9dâH%'ÖHÐ×Ði}&„ŽPXÉIÝ¡bhœ¶Có yƵøº¶³B™à›¿Úw®Ì£Ìãéý#zÙ r$9ÒöÔ¤"¼SÖïæ­�¾šûhxî¥Ü3Òqx³N ¬Í½©~â7{ï½!α®§{üZ‡u¼Ïãó÷ îLcÇoùî§ÌÎ6DÕ ½`f# Äp\¿„Ø¢–ŠqÎ-s%­W³f¿8 ï7œÈX6‡è£šVwˆÏ!ƒE>}YÉ¡’Cu¹�Èèµ´`ˆnñpV 9�ct†EòæЧcÍùbÁ)ÑÂX#MAˆòö‰6ô7Á’ŽŸV9Ë])ÚDõ HÝÚ�=4РÏ�È�x3¬ÏÞwæâ™‹`çGHMÊ;u*ˆ'¾à6.¸T¿T?éþôþô²Î › Î¥ßØN}ý{�Ft4¯ÅNiž9/a„ùoþ�:¥d| ~žöï.‚#4&årÉ�)bIJw(0jÐÇñ¸35 d73$ÌãÈ8¤×ýA0–üCÀo7 ’{%œ*q`äÒâ¾iEH¸Kqöã¨}«„ û»¥Þ5gaZÞ/=ï�E�[_­Ø˜¯ò…3ƼƼšvÚ Q8w÷ÉðÉðöo/†\í!ü£øš¸hçàFeFeÎÖz'z'ÆÑ،یó†ŽÃ;å�š‘@7ê¥emyŽ#8Âu³N¡Ö星½Ÿ‡;8`5‚Ó{ðµªÌÀjjµ¾G¯4,Œ£Õ¬)>Ýø~ø–u—óU�ÓÒ~ƒ8onR«¢¼ï!°wJ¾y½P‰P Tÿs�õMpí ]JSL^Fü‚P{UöL`¢ÜÜß‹Cd>B,“öCÞ¦NbA§GëÐÉ™cBîº9NrõKÝ¿…Ý稜bùJñFæDâ©DOÛ^U í°(Ž_Æ«ã^ ..ÿ„l~«¦×ÕØÕhÇhÇX qY±wrß÷²8QQ�j³Ö/­_^Ï[ÊYÊõø§™Ã÷Í¥|–JÉ5u¦eÒg[4* Ülßüs·£¬á%“3s—Øei»V™›rš.Q(²‘¿ƒè%Æât‚ÓÒŸçºùqûæø¡}sÂì›ó¡kyu?ØC_d0F?.÷±òf]Z›+|�åä5j}œšþ§Dw:(Œzðõ'ì¸|ng[ çïÃÇ`¢l< * $J~ÚáP;øR5Ä[èÁ^÷ÏÜ?#ÿÑWi½þÖ,‡}bAÀUR5gˆ“sW#Éq–JããÒHŽÄN-SòÉw8 ëÐ<àôœÉ&-|¸¬¨‘q Òû‘Üo‡Ñw BŠXóÄÈLÝû¿5I¦.ßA ïâäe42ÛX¦Ùáf�ß:¿ù~SYG¹5¸5tVuV¥Åïâ¸ÇYìÅá O�Ý«:ŸzŸúQ•½*{¥�ðN-Dûû­˜–Ûì]›“5±Y§„׿öí¹ä ×`ƒ4Äq²èZ z啸çy|¬½W2irM†´uWðaîö•œ„ôøúq¼Þ#Ý b/$ÕïU¯—¼-yÛ¢ÿ"ãz\ïp¾—b)£b€a ¯�—îÅÀÆ,VJ4%:à ò9«ç¦iKKÇŠóózŠO”„Ø ÌÖ‹NÙBžÍ‘ˆr—¿NM®z—±4qî­«û¼½‰Ue‡ˆê6–j¹_HˆJˆÊËŠöŽ¥•¥Õ¬Ð¬ðËò‹°Ÿ�¿vãëŸÕö†£Ö¦Ö¦ôœŠ›Š›¶˜9?s>îºp¼SK«'¿dmÃ�•(}ë<ól³N‰¬ÍÝ÷ìa…+I~�ÁÉ:¥3l¶ƒµ¢ì&>½¯˜3ÀÔò‘F&1-|‰©\€Éà£ë€Jû9Žh1¯!ÊY�þ�ö¨õJ‰J‰DÔ/ä­g!‡3ž�VÄÀ”‘>b„¨Ô_a¾{;ØÕ”Ê”Ê*òå8$mE?â’sé8–H*@ñèqÊ !„7¸Çš%^þøóûÜW.]aBnÊtÏÙ2É–éL˜ †]¤]üt€ÈkcßÍ ÓÞ¦¿M¯ÑþáP7î8î8Ç:ÇZ!÷ɮà r�Ÿ(’vnÚdÚd䕘©˜©äÈ4Í4M\Te>¶StP§–‡åbéܶ:úÜG‘ÄN9l¶þ;ùŸtçÍ¿"»í˜—Ôuíròù�ï1¥�} VÉ}ƒöÀ˜q¦3ÑsRM‡ÐÓ—0(­\þöî<êöoà8’di,%;E*ÆÚ�HÙwYJ²‡,%{JY³G);ÉNJ({dÍŠì**Be)Dñ¸žï=Ïœùθ=çü–sÿîßÌë¿÷9ן3ç|¯kæú>!´ÿÌö¹½êœrŠ„ÛUó@GÍPii�Èä·{ïäÐöµÖ’Ø Ÿ¦¸óbt–ÐþÞmšºë\õL:붬£O Pê‹–eãNNÄ?©š‘fš†º¡áöóÅ`ËC„Fh }wlo”¦Yéâ¡­d}.u±Òï1‹RÑŠ´³D¬¡�tarä8 oÁ¨3¡Ú¿¢•«” 0;26œ$Q¾®Wõë“GKÏŸ4Ë–]l—TU9¹ûsÜhvÚÚß»Ùx’7<ßõ©MqqRh‡¤eTð .E^ÃVÍ©( æb¡#‰Ç¿wdòF! �ÐþSÛY�óFzwbĬ¥¸%(Põ¯BÆcǃ«]y‡­'Ÿó–¨ ?·Üù•Ðí_Ѧܸýä�Y› êæòsLæFJUè÷ÿ³ïL$´¿O;`£î,�{Ò…T·[ÒÃå'wzà{»³‡ÈxnÕˆ„­Eõ1eÛloWœøõ­À=þ@Ê�q(QQs?Ž&g×=&/ÀþÓÑ4CºÒ&\P,@¥ï€- X’‹±SUÇŸ û*Àõ§úØ-ˆ–_6­Û° ÓcD¢¹ß�`´ÚÎÞ‡4¿4Š.Ìíõ.¸[p÷g¤¬á_i] �á÷­ÑLJºc@Ó[5W|dëž„äxÇz›Òøô£JúI|¢®ê2« #M\Âi¯ñë¦[N¿iܘMêlÒBÒB–áê·z1¸·’o%Á�á«Lg¦ÔÎAÚqí§¦ä„£Ÿ§ŸWïìÌëÌ£2³Œ²Œ¢Ô¾œ Ÿ©œœqF²ŸÆ¼{šlB‹òÉ7›©#àý´Pûàj¥L 0ÂOH«ëõP—*㢩*<} ¾¦¿¿‚WòÄ�b �CoÈWúˆ¡XH‰ÏÕëÁKÀ�zâdl•ü•ü‘Aq�±Qs`|¨B#md¼#ëŽA¸ó}P´+,ïNéN¹Å 1a€„ôݪ„X+þvAËŽÎ…Ès,ø|¸øœ£g´‡°õ6Ü" ¥¸ˆÏ¹yãÝÏÔ=BF¤„Œ–¾4±íqÞ×U³±¹@$‰¡§¡ghâ…<�a8JwJ÷S\§¸ª_íhï÷ƒðÝÁÕ*.;×ÄÝÄ-ÀúùÀçcá|>„EÆø¾¹Ví™Á]…ÃÕ®••m›�áÃûÄ¥ê@ÕÇ3c6”§6¨0àdMÖñšZÃhÆx¤¿Q×T:ê5ýŸŸá‹op†?7²¥m'ã'-f›låR§Ùƒ›ÍºÄúº²•w>p¥ù-�1¢³bÚR]|i~¿ÄõºvÏ%@•½RýË%²p\´º>ÍQÿ``°Êé�á| ¦Ÿ-H>Ò”E<ØLLNõ˽ÃV£Œ!Í�æÇ.8¸í½q�(|¨‘ e>j>ªK±W„ ZÅì„ð-,G¢•×ÈA`)Qq¿B`D”©�62<9òBf^ ¢L§–7)ÎGx|“49Çí ¿ oÌqkŮضØ6Ñã<®Ç=áòèóè݈܈>U´{*¦Cø/ᚬõž�{Àû€—¸MTLTì©æbábáy�\øL‘±®Ú×üu¤oõÈÞݤ›Í”äúº$Á®på/B1º)�IÉ8›ÃÜp±U¨�ÃßY¶z»ñ¢ãa¸<³F“�n2? ÎGá,†Q%>fG£|€ 4ÙQØHªIªOL¿Äv¼c¹­(!ð 郌º8’–Md˞˞˛…h@®s߃\RΘGûÅh7‡¿ˆUâó¨ X´ºÏä0yKr5Y�~ß^|º¹Uw¢œ%u™әĿ¥Ýg\Ú˜AÛ®UŠU 'ûçUúäp£ü£ü‡~ú-m�g—KQy‰ëô�²wpDýDýFÖžÖž$Wª"ª"h®P£gªé�»Ù™¤OgÉ[Ð7ÍNºÙ�Ùì¼þýù�ÜëIhý`ywÁÝÝæIÄ,¢áþäYããÝzªaÊ_ÜXŠ0îÀUGþL8Âø^çÕî¶ \ty¦Wéb £Bá4FÍê»||ìoÕ�Ûd±…Ÿ ?8¢ç†m›)†'-šZI‹0&V•™²EÝ÷àñ"ÏçÎç. �4�CºÅOúBÎt°´£ vxVÓ.ø´"*q3µœ È'·ž½ûMªøœy¤)µä&vÝÑK¡A$moŸLzd~òÆX¨·7T%V%n£qG–þ„+Ê)Ê1¡6¡®[ÙZ#á¶Ã¥á•ççÒêÒ*œáÛæÛv%åaùÃòO»{Ëà3Ujœ]O­ iDAËe¦¹ÙLI­¯ûþQ‘á¦á�Áý ðÕÁLÎ,\íÐCù¨Ëý‡onàÚ¢9´¸¬fÍWÓ1ôâ¥÷+`ùÐ[�MÛVÛöbVŒ*¶•EŒ g4öµ'`.ª§òyä½ÝŠå»šó5ç-¹ ¾�L»Èù’;Z‚20ݰV“þÂG#°F=’²z!2Õþ©ó–â>ÛùØãíP·(QÁAï'Eä–‹�™S‹7&xeí’ï%_û ƒ¾¥Ãp™™ttr-â̼0“a×®+ïs»àˆˆ·ÉïÉï¹*kSlS¼”~½>S#ËîRÙ½²Ï³#%u-Í%ä7›©cëëzù‘]pnß½0¾«Œ\Ö0ÜvÊi×CÇG3@íÓ�[m\ïN…¾Ô|~²#¬o<1Z M'ñÑu²ô£XɰÉsËs+‘Η`{3†ñ¢mÒ•Â ØÛÄ ©ûšùöIØBp·p·°N=„¡’è[� ¡ñ¢G¡‘œNˆN/N‘áS÷xUf¼’+ ÑRiR=±kŸ%eØ/Ž3ü›+Õíw§Ä”©\§�ãÜXZ«+'xA¼³BZ9\8k8ëÀÌÀŒT£¨™ËÈ�\¯�¹YáÄĨ â˜â˜®‹œ±9cS¬B…„ï�«Mzò']3ÙàÚžkÀ¾Ù8üÿÄïy{¹�ƒÂÛóÓU ]pSŠá­è:“>÷ÞÌÎ{%‰Œh—ÉŸï�‹l°þÓ#6ža{²VZ‰­*q½Þ¦ÿ£?¾¾Îÿ[L\ØÑ*Œòå#1 ¦!¸|¼ü�€ÄÙӷâî⪠6ax3${�V QŒƒÖÅø�§´½$È,ä±  ò.À�•^GbxìAcÞ̸\r¨ò±ô»„COìT*AR"¸òHµ×Ì~Á�Ïx£ ÄWqLá3|pÜ�Ÿ‹ €Œ2ñò˜íHº…O«CµÕsbEñÀä$\2—óʺ«E=¥76y/~²Š±Š1+´±ã±3ÜÅo¿¥¤¼u×V⇮Âe•NGfEf5œnšcšo~ùä哪-SEð™2þÞdA‹TÛ-ûc�¦¹f³™’^_'­™¶îW†7Æ¥Ão~ô¼ª\<‚+”ÐèÔMKœu‘×Äëd@KcìÐb°÷6ÆÒ·_røð½ÿ´P÷Fa ��¿½*�…­Ûãíݾ.°oùµÄ2$¡ ‘yP8.;.;<¢ã10—ô„”:-Ñ£!„�ëV@á¾�wð±sxë$Š" ÇÌ"žDq'DãÓäŸ�KéÅÃá‹T»tv¢QÍoªyc±/"·“K’Kr¤tmƒ›«�«•ð•ð�{G£/5¡aÁõ³¦O n�a�!h| ±„¸êåfãf£=Ç¢ôߟÔÐL�J9–+&ìX¡�òÕÞuZ!~³=pø÷geXÇÄJ:Ež“ªøAGÏü�9„öÏo™WÇšK Æ·Y�Ô(Ú³ÿ _ö¥†@¹Q û"yUùd¡öø»g˜WMí í¿¯!íÝ�ô·¤ø*Ê׎qT¿¶9®í¬iß<íí¨*õÄz×-qßõ �Ðþj­%õ]°»Y뇷>9¬ô½aìÎFws£yw3É?ˆœ�Íìs?§Üm% Dhï–txÅþÑÐXj"²½QSM'‰îëÇ´úü3b'ÂÎvç�Xy²rCÙ(ωÐþûšŸ¿ªhnÊaN.αîôÓáUËì¾Sr/ò>+èFø‰›*§Ì)"é �ÐþjM€Î>mR¬¯æë‘”¤Â^~ÞK£EïkF¡1wŒ?WEô5¦gºþ…?ë_Q¹SôÔÎElG,åÛ&þôÙÍžõeÖב ŸXÃqÜlKĘ#îØï)Q‚¤µÀEêPñ`p'–Qq­ŽÃ?Óm <ÓûßMj %?Þi_Ì:ð™ bO:˜cëíý¨Í‹­>ãiÚ®ŸˆIàÛò²¤,¤6XÁ>C}ÑmÑM†²?2ö<2 ÂÐ܈v-hédEøˆ*C{пâI3v Û›{Ÿ*‰»kËṪ2Oß»{`�öy-µ(�©�1Ç‹´¹¿t9"Ø|¯®¯´¯´ цx¾#qú)¤› ×LQุÃq‡¿ñß,¾ÉumfýÓ¾“çn­×1Ï:ΕСԙO1yÄŒn6S²ëëìd ©á¾Ž¥saDÜ^4x£÷Á‡í.bÎòJ`Þ¢†3í Ã.»µË�êw^ÂÀˆÖIŒyï&|>si�2ãŽ!ØFF¹Å °Ý Ä(ŸFcDqyŒe-{ :ú”Ã2þòmòmÞB 1Èù}ÄŒ�5A4n°á/ßš ˆ á¹Üw]_*€ÖÝbùÙž)ZûFŸ†ØCQÈ<Ò ßËG¼(¹mŽÎíÛXS,g1gqZ¨›àg¸Ð­¡[û­û­­¾”þÁc Wšfa9Üõ×OT÷4ô4<åÐRÑR¹Òh¡ Ÿ©ûykÓl•Ïi&Õ(y•]/l6Srྶ½¯kà.‘tsaˆPÆÊY5Ó-çeY63Ýdº¹m¢š™/æý ¹Éu^Mð@Z XÊ�­áÓ¨HrÓtLRCö)ËElYòçÃDz(Ôçe±c–ó±Wߨ‰d·ÌMÄL¥oŒ™ÛCÉ%Ò%rQΕgp»w5 E E>iˆ{ê=!Áå4yŒ .|0|°KÖCÅCeB‚�„�$i 9 ?ÓñBèk§Ž_^u�-³§™1ÙìL~,©LùEÿ’÷êS— �//^û%v7èLj–Îvùä˜9ñŸŸémp¦sSÞÑÝÂ|öqŸÒxó'£í›Íºüúº®•¾ 8…Ÿ§¿cLëz¸�+LìlÀ•}D`®JÿÙ©d[€K`ÜóØúå°Ç!càâ�ÒYŒÖäz]| SèØ�±¶i2l:‹:‹·Åö˜cð(šßÀ‚:PP³¢ )ØZ$Ý):`ɗΗžÎQ„ðI¡ßÊýìfýW´O•@Á `Üþh/>‹úÀî‡&�óf ~+°Šñ&áckÔ¿c›6£‰Îÿ°wçÁT¿}Ç‘}‰,eû‘ì‘ì„ì$!Kö­²DˆìJBQd'Y�8ZlEÖPÈ–lIÖPIÖHiáqÝßçÌÉ÷�gæžé×ý»�×ï™kÆŸ93纾ç{5ª±¯úM|ö½¦ŽØû›¿K«J« ÍÞ¥§+ÃU=¬zèÐíÐ}}€�X"ÒMŒéí­(8"*"*�pâZâZúëÈdÇÇ@ïOð™BŽ\Ú¾ÏÎ_/åEIBa«™R[_§ôX¬ ޾'ømˆ€d•ÿÕ»{1Ír7¦øúDuÞr‰n˜BŸH•ƒqÀ á›;hš·ÌŸ`s9”n(ôI٨ɡÉ�/Åoy£âëhV(CÎmLsx^ä lØ©]ûϺoçÞÎ]%1�‡øp6DAÜÞÜGi¸ dÆ­ÊÖ°‘ã"kv›>i‚ð2+¥ûòH½ÆæC�›ÿn¾Ì{?.O{JgøgyŽmÛœ÷--©ä¬ä¬ÙÒsr‹p¾£¾£dñdñÒ?+©¨!v˜:8rEáÀûÄ-Jy[y[«—o�Þ õÀë—DÍýÿþ®¡ÓÞ½€>èä�Ûݺp�)¼Õ™üó“$¸7ïàsÆ/á?d”œó3WȾ¹â®ý'´s©M‹CÃ̉uÜÈ�¨›Ü:ÂÕO3Y| ë–¥ŸèÕ¥µXLÎÖR?W€kVë æ’Ûñß”hÂÅNC7©!¿—±>.£=¤ñÙ6;w§™»a«r ±þߦqí÷´ñ^õÉ}ƒ7‘=â–Êø6EÒÝù7‰/Lž»hɗŰÿä# Úãõ˸†k›59íªÙöNó×j¼v“«H)›Ü «´Ú‚$Ã(]Ö¶³ß>¦æÕa›¸ö×þ½VfÉrº9üzd=g?aðÁrs•6ø÷ŒÂH�e=äá%mžÒde«ïêëëø²êá¼Û'Ðüõuý#$Ûl‡¾`’QÁnŽzšQ!®×`ºBÝ{ (vÿ×O¬c³MÞ¡ üÔkÆé± �¶¨tmd­n­>Xÿte£6 ´ C”ÎÉî1 2�Vÿ•dž¼t §Ã¯ÃOÇbxBS^)× “$±¹„;Åãá¥o5S‡Ö×É€§Ì7zuè×-Ü—y Ù5_^×(b’4{µXš ë›*0YzG²! ±´Àø”z-Ú•��øØ#fb�óŠrN�{{îm˜B­îFÒoѼ×PZ8›OVÞ¥Ù½à¥ÏRÇ(sß‹¾Õv€|è�°³ÓÅBü޽ú€2tNjǰq§ÆOÜé�³‡¸”?/ò‹—ýŒMäñ!ÚqËÓ™„,™®F&fÕ5Ã¥âU››÷ÈÙÝXßXB@ƒ^V.ægÌO>Y>Y‰¥Œ÷^ˆ}8&.Wk¸«‰W¹.Ú#ì}‚4Hä²Ú{Œý‡4cK2³lÃMW"ÛŽð­fJc}Ͻ¸)S~{4a�XùF ® LœüõO€ ™Kôññ{1}¼ÐÌÄ­Ý’VÿªA“Ñ 1ÄFÞŒCø./¹c#Å^ÅÞnò©þ�:éÑ®K¡)[ïºÞ™ºÇ!Ƈ’¨vhÎJÆ®3‡¸dCð.åBÎwÆsð²QŒ …ÅZ6ËŧJÆ:¯g¢þïýdñMö“ñl¹ç+¼ÞUî³½,ú:êí¦wð fýðú:�SíypJ�NDh‡¢è&®ŽÛŒ“`R:]™HHk|Á=œ�é’ É8 /ô“xp-óZîýà{ØÈ™:Gä͹©EEDEô«¨ÒmD¬„61‡b䯧 ¼YÎɀЪEÕéJîñïñÏ‚h�BÆøG!-g—QtÙ�âa`;ëš6êGá¤kÖ\£K–²¦Ñ« l|§¼"ºiYEC]×(¬«Ç«É|’/Cdo(;Ü=–{,½½„;:v�4…„êa*;Zðnï罟U,eFdFÈ÷ý,ùYò±>a5S¾ÔÐL‰M«0tZm[Ü_¾€ˆYñØj?þùù'ÝÕüßÖ&Òhƺ¹â¤9즘w�Ej?;žÕ!d0jLvÿê[�4››LaÅy\ûg7Óû�Å»e}k^]÷½2vØ~Q†é©iŸÆEaSb/[¥²ì×ÄÖòÚ"\û³ÚÐÐ(Þ‰8]§>±<óµ ±>1ÄÍïJß•ˆwúÀgªç–ÂåCœé+ �§½y¢‰¶o5SZëëÞµïyWQ|ÇMä©ÆÞ”™K à&o8/f#)Àýû@¿òÁ_0= 7»œÊê–ðkÐÜ›Ò9°éäÚ_ ô Ú„6êÒêÒ’.„_ ¯¹†–œƒ¢HÄÊØ·½$†øí®ÑŸ¶y¥v ä@H*#$Âr€ÔE"‘È€@ešÂ·UÞlD¼�‡¢ò"ŸCVjð†¿„ccÙc·oR«øÄ%3’¾;Ó+gHgs496§dfª¹°²°2ÜÃ{²þ*Üûð÷áŽrŽrD3+�‰·Az¼1ñžÉLJS(V(ñzWý®šHŒY€Y D!ã¾�!_1ƒ"�,cı)�å­fJ{}�ÚÃ3p÷ÈŽ/£¹¨¥&7i1Ò©`ùóp1YðŠŽ{±|íÀ4åx_È*M ÌÊÇ¡eìø*Œ +ÞÔâ¿Ìv¼ØètåéÊWƒÖo6:g„Ögˆ¢n & 8Ûφ@ ŒÂI�ˆýûqå4¤ò$P�Ÿâª€z»ë{Àœéd?6–YÀÝÞiÝ(+µ·u™0ü¿„¨*.K ‘�ضì•{ŠDÚaï�·{t7wÎséx¦U¦Õ ÄüûøY¸öØöد _¢�HðžAÎ`ú`N|®é]Ó»Ø Î$Î$ ½÷wæ7àgvÅ:Â>e$œVo› èoluf—'zB„„¿<Ž<šÿdsg§je k˜Ó][$™õyýËç<Î4¥-XîˆëV6Ö/rÞYBðË™�(úÌN:³ÙäÌîÍ®9ßÏûŸ*‘k³”KYàOm5ë:ëë$FLZáìdŸ¢¥<²3rJ:J——†É¶ã]7 t¯ù~±r5¦qa¦§@%‘p4¸ÚM¢ÎÄ›2«ý¢S°ŸÔFî´î´ŸÃå?lT“�¶k¥¦à¼/ ÑtjBƒÐj5O™bf¿Î~½¶B¹){®)g}±€2Xˆ·štß°a¬:�E¹Poƒì{."§�M˜óµdJ2<Í×AûÂfçn”ÔnŽÀy_µ‰Ž‰Žér‚ƒ{Üï¯_‡_²¥78TBí�I•�«.@.@.^±0¶06jEõ¶êmAEözøL%+¨ž‘r¼/G#Å8&‘¹ÕL]_ç…ùZV[Å_/HÚÕ„‡×b°OVí¦ Iˆ@ñCñ4{ñòLø•"Ã@a„pà­^Ú…6þú×§І¦›Ër«g©ùÖûÖ{fœñÚhïš|<Š Í‚@¬/n Y)‰Î¬ b±h”i”¹ëéQ‚ðj·?‚¨e¼ËF‘ ´›þ¥þhlÖÛú‹ã®/!V­¯ïõGa£>?m¬ú!¬*ª¼¬šPŸÂõ^éô#ËÍí9;Í\áPá vÿ �á0\ãžÆ=QQˆR¯è=�綘­n–À¹EºEZ::&tMÚOÚg“U¢f*†š)EËÑÝã{YŸ}úј®$·«3;øççŸô|ãbKxr¾()»]§¥ Žg…Ý ZÛ†­5¥òØ6zªü`«Ôªå”Ý%~yn¸ö÷µJû`gßü�¢­×¬¤¨Y^ì<²ô Ôe�”¶:�žl�ÃåóþÙ±×Dpí÷´£tŸ=‘&† |Ò¡×\ãwíȉºñ¼ÞWõP~=«†zJòC7¡¹É£¸†kgûrÖI™©)±ßóm¼Q‰ótíu’©^_z`Ú¥Þ”÷ý[Û¦£ñz¶ãÚ?§é_Èo¼�²H}#ST�÷ê_U©7j”ÛĬOÞ_¡rÎ8¨·x*e² ×píwµ‡ÉÁ–—�#�#“oµx…¬,ºû±-¦ºÍ4sÌþøö 9MåVyÓ!×pí?¡ÕäT¦G·ð‡{á³PåÌö0IPÒÑé|•,|Üõ}?ùmþf¥o‰“Éq¸†k¿«eFè¨|k  Xšq¾ã3j*á²ý»¥²6—¥×—9JŸ‘< i¦¸†k Yäìî¼Åœ¤9¯9jîGôìfx™êŽørϸO¬¡u;½-%iéû$ã®ý¶v;È*°îÔJÁSrÛ <£—”wë™§¾™[k«AÜobŠl&XŒÖfÒŵßÓ* ÜŒâÖ‰©±r¬Å†ø¡…Œüf޼üP0Bñ…ùæ5ë\ûg·sùˆ�IÁ�]…Ã¥ÆJ~ç þ¤;Gþ¿ i¨pÁø£¼ö÷×£÷ÞhæÉG¸0ÃÏ8e–÷| Úµ�SÌM]Qrj•o«3NÝõuÛ+8à NÔ>F»#uhŽ3Ï\(œ“B6Ÿ; ìغ+ž4SÙ‘Á4@¸–£˜_<ŒÖ®{Ë›;ó݃@×ÿ°wçÁTöÀ³d ÉV‘ìdËž²d Y²“5K)ErTv!²ï;îPdÏ–=²µXCHJ–N²ÆÏ÷¹î3ç9×9nóÌïYzfÌë¿÷œÏï™3s}¾ßëj6‰À¤å©åÌH~UJÊGVÀò�t„5Š·ÿÆ@RÖùÊó•TÑ+È»‘Ûrâk×;P"xD 6-Ї‹QàÖxR]rÞ;èÖã ÓY\Þ ž g©RY®x¹ÖÜ;ËÛÔgÖ%º5'¥ÀòÐòÐy×Ãçxá:ò;ò›¥š¥¢<²S!wF°µçRÂÕž¬=is\�åÔ ÔÑâÓ®‡wªõ~’ÃØgÖìï YLŽ =ÛuJgsÎe.EnjN¶Mú\ÏlnLl|7)¶#‡(ûêå¾ðý¶g°½ÑäêX³Ýš¸§ hÏÖ†q‰™)ir×ý;1ÍÝ›»·¤øbS^(ñyÿ�ߦ@–)§Äø[…Çlåòû; „È’ÖºwR¯^ÆŠRCPÜ?fYÃ¥ñ8 i«^Jyq¨óhÞb—.…?(™y­Æå›P;nfï¾�Wá¿5ïl±'N rÞúwÓ馓۬Ûl4ÛaJ -Hâ-lS³-p£*£*½T ¢ ¢žÂ'N*¬«­ÁÏ!´ã;õ—6„vÓ5.õp)nwîHoa=»®âæõ§9 ¾d<þ9?œµç#TÒ÷ œ•Ç_¼–�ˆ»øi�ì=ÞɪǼº& §ŒPFh¬j¬Rü¶ºv¼rÌ[Î¥'œ}š}ÚôŠU¾U¾(»I‘IQ|ò׳ðN]9®%Ö|À¿ŽÉqânBðv�ÒÛœÛØ-�×SV„VªšN[{„HÈô%¶Áó²ÀOë ò„þÒxØ:½ijé þß@‡²ü$š’ž$.£{º^?Ë£1‰gŠgú¦ÌÚbúÀ�öÈÅg]eh®4º q²ûš*vîE�ñ[ã·)G ! %y†·!g‚þÚ@1M„i€ÊA%\œ¦�¿ž{�Ë =•·ˆùw)pãbH“!Cá«V©Ýj¸ºïœóëSƒGŸk‡mmšK�c±|±<$ßîC^8\™E™…u¢u¢ÈiáÖ$u±¶ç*¨·¡ñl¢KÒMÒ¡��ÿÐ}Þ)ªö‚ªsüô)¾=Î'˜\·ë˜cš—3ƒ{®\T…RJÃl gŠ�CÌM0WR V/”À†Ÿgxg?}‰A›¨=6Š ý‚“?�6{± Sede$‡8ñML�ýhï�PDŠ„U€'O nAŠ ‚)¢£Î[8¶À¦QM€¨|cÔ‡¸K�ú�â ¸%µõvK¸€w »�t2¿Qðƒt¤/~^Àg=‹ËËýÏ)¬ªÞW%)ã©L籸ò\¨lkgœ¦žª”©”eIt¬wÀ�ëýÈ~d¡èòª±0$VÛS©ó¶pÒuÒu¾TËË©\\±Ñά¨Nñüýþ få†Ã­?µ]åÖ|!b±ÝY6øòÿÕK&Íh¢UãW�=Ÿâ¯ÿêö«§Ó+@Ž”µ½#³ÕàËP,ùLõ=CWo'ÛÉþÝlWà• q¤QÐwðnqßÐ.wWº¿”Ÿ7�UöAÔ†j=`,öM¾7ݶ“ídÿ[™ ³A¸/™éà!–�a¥Ù‰éƒ_Ó?g%¶]Ÿ­Iµ�àʘÊ<û^·s'û³²ê`öߟÏÐóÌó?ÍÒ�)y íþ› ôFã!õn$• ­lãn—ŒŽ�ìÏÊÌŽ$¬êßU¼9¼ÌC9ßS˜%Øúí÷šƒlô܇ᣠD,½šì!;ÙNöïfý 6.†ôCÙ‡+·Ü¤ãD•Ú‹÷ñì>@`oõ<óê]SšÌÝj¼ ��l'ûÓ²5Úªg¢d äZ}¥w)›‚èYd÷½×N¨:Kë'‘Û3Çv´NgÂZŠ�âOʘ¾šÜÎ[4špöÜÛ­½bØö’‚H2êDÈï] e¼hñc×vÏ^ 6çH ^ŽÃÅk´ÜB£ü•ÏãÖg¦P‹M¸)�8ô„4Hœ£Ó­µàuùl°ÒƒT@+tõ.Ç%±¿ lç¤Çàê‰ê‰îØó±ó±s �":µÂP« ï”—×½ëñ3¼)§ƒ*~¾.Ø®S†›s‰Û­p‰rÉâhÞŒ¯z*¢ç”±½Ò2µäÈDð¯©ÖpbS§sL¿ä—Ü«øÑë'árY]Ê °±C`¢]¢]JÙå„)¹maE™“7(a�P-yõ(ÛåÎ=,÷b+ QyGñ "“‹ú=›ˆZpáð%òU?.êò€oÓ _DlQK?O?sóÑê©À2š.§à‘3zü÷ꔤ.so�´Té{1w1÷¯Ob‚“÷á4Ü4ÜT5U5™O G?­ƒœ ÃAî£6£6Š5GgGg &R&Ra^¦(øŽíѺ¥wŒæà%Ï ³µâ³t[~‹µc[tg$–cÔŸ¼ùÓ±z.ÕVË+G*¸· QÚk{pñÑXIlž¿[\Lcièñé¹ÖjÒèÞ±ßbÇÖdäû ïáXÔs‰ãŠÎi„Ûuýìæ\â+58Žº {4¶#e’‰%IW°­]ê7ðH_¨¥Óc«öeôVoÑ*YRÇ­ÐŒT p‰®—c8Ç»aÒÏÒÏ:õèT&þ1´¡{(“\|,ÿáªÍߌs~S'‘ÍÙÈÙ v…Ô;BÄrÞB’ðë Ä-*j€Û>*\l/ë ™N-o!/Þø¼2—–&ÀÅA€ÁÃìBÕ†RöqE‘߃e†¼Î¬ÚšSÑ€–�¬�ìC+²‰6y8îLîL#A#Á*Ëú [ ˆõcloFÚ.Ã}óûæ—í !/!o/[3T3´ÿ‚b-¼S �8\<ÚíK= \îµôßß®SF›srÃÂ3pwûhéÐì[ZĘ̂�b°1«êXÇ3HmÕöàa³+fj,ÂMÇTh�æk¸¸‡W‚Onpb2+7+/u.öÁäá‚6úå×Ç' À¨Äù�µö#«ÙTÞÑÑU„�s£�Tü�ôëíV(¥6€S cÝ} ~ ²®Ñ™n’n^ò©±Ô<“ª†Ë­¬¡Bž‚i’6zs ¤É[›*n^"¤!¤ |üø§$\�k�+ssÓ”·Rž#Ä7›î e¸1¢1"Û�‹â~â~F„ÍEðNyS…‘œ«;C]F¾*Õ®\¾]§Œ7ç8’y8áðûÑH/(^<óËü ¶†éÏ©Àk¼ùÒz{l55-#Feã@2[­?ZÝÚQM\&®fí”͘.è\б®ŠÅ4µŽFÍ„¢ó%�H}ö6 Ò` Ç,ÙÀ¼�¼-ñ2%!·Çÿx=ì�òá7À( ”ÄëÓãÂj à‰¬ö5VBö”î ){M×…K¢Dh„›ÁÆ ÏžùÑn�N¢!Ô¨áŸùO¸†x?¥k¤kD}µŒ}Ò ¾C\\;NËû ›Ò(€M’=Z.boÄÞ(ò � �ÞK&+&+SãÌ‚¨Ný½coÑføxÃ!ËÁmo³i“×èv;6øò~.k’r¦\ç·ª4­/–çÇCÞíd;ÙÿDÆÊ¢š­Þ©ž§[<:'¼çSãï!ž‰HÙ‹¬*æ× Ô’ Ç^Ò¹ÅFçR2ìd~v‰u$oÍÀkÖf�~],£+A±Aò á½lqS>¦´æÐvocAõ°Ã�l'û¯dÜŸ:fæÌ~ÿ•R*•¶O[x‚ŒŽ±»»òt®0פT¶Ã}ÿ‹ýD½Tw²�ìÿCf#‰÷Ýk/»×Æ®^{@2Ôûg;‚û³gz•Bñ'é#=ˆ µzÒ ’�l'ûÓ²~«Þ#¶/³¢_-^Hµ®°ÑÈ<–̦5È9ÄZÂ1é+qÔ®€}Ê^­;ÙNö§eT]?^ßœÈ c�zu° ŸÃÂŽÉfÝúý¥R&ŸïÆ<¤¦Ë㉞î÷ÿ»3Ö+åüŠÞ¤à§Ðr>´T–¡ñ�?r[”Vz6O“¼ÀÝDÝszÛ;u&›sË",p)‚µkhdÞI¶J^­òga;áÞÍ ¨ÏÌ9O0w›ðÀa€ìpð@®ãÇŽFrÎò.™™ eÀtzîLãYãY§…b+1m  ¶¢˜Ô¸ÊvëTZîkÃCó…/Lâ:â:’‚ ”‰�z5ýHÈùxÙ/(ºaÀ› éF…K@^’Ø ¹i�¨·.‘ „ ©�öÃìË#?þˆ~’×}�©§ok--kririiÚ¬6•“pÒÒù‘ù‘A&#QÚÂ�OlfÇØàŒå�å_BîCî{ib m ­[c#ïÔQ U©²áêK�2-5ÛîûL7çê|ßçL¦¸vué’s¡äÂ÷w¯·|-jß¹‘b�Mm®8ȸëÛ�ìÕälKƒPÚágù½NTR£:ö/ð"&4»î Vi³.v žŒ�!ùç}ß±-ö}í÷·,×—»®·y6™l n×u³Í¹j‡b'8<ÿtU´J‹é‡ß.ú"ž`㥬¨Êú†ªÒ?bË5ëun]Ý ÎÐA+¢Í¼‹ kÓà] $!¸ S { ûH%>&?+´k„(RLb]@·Ä¾)H{¨%oŽ×q % ¥´½)Hâõç�w¿ÅPÀ·Hó÷EL“-¬¸ "~ÁÃÞ{!Þñ5m3b¸x#l#Ôõóc Õ­ëlœðh¯-|–ÝÚ{wa2¢ÓD§¿»6 ™hÁ•”ÜGÜG”ÎK�<9[LÙ¸¨Þ¨^]"]¢Æû¡¡¦•Á6ðN…Ù«0dÓûðw;ÞIŽÓ:´]§Ì7ç¾ø’óÂ!Ë9iÑ&Cè„¿ëòjöj`{F~˜%_z:íZj��p÷"@!Ã3 ôU20¢É­ sp™Y Y÷GüÄ„LE¦šÿ‹½;�¦òkônžC¦~2e&C¦ ?ó”ˆÊ2ÏŠ ‘1S)cÆ„2•Ì”y̬ %$oæ !D¢ä¶ïóž{Þóœãºk½kÝ÷wßk}þû.û¿ï9γ÷~ö¶•é@e©�ä2Œ�?\Ó`‚0Ӭ̗ܤ²©Ì¨Ì(a�¤ÖA|'lŽA"yõFÔñ€É6à]÷Ó^LÚ€IžÎ$eÈò•GYVB$1)?r»á‡R¥¯¬‡&‰Æ|Ä}:-uÅ„ì½ùqû°kpipõU|ùq�Î$Ú$:À+À«yNè‘à%ˆ4>:gîÇp2ú2ú^SlSl¿`G`GhÕ À;E�–ËX?g*?­J;'¶_§Ì~�[e|—ÔÖíø>ž¯x@â~ÝUGm@Þ5öÂÕ#׺Ñi3= Èð5I€Û×Yú‘ðÍð0¡R)xpbñPÉ6È6°]9¦€Š¬i…ÁµnD¨á–¬†”xa«LúÎ] ýúùjdYRU~4 ’(•z �3PXþ�0—Ǥ›È Y¡ƒH>ñ éÉ»r<EÉR܉ۣä}XgØ£U„Hy ÷ö¤W@#·*·ª,õøñL¸ìlp;ÁKlV*d… �Býû¸U£U#Û&iNiÎ�¥J/,عÈ!:eCuŠ)8E)ì¹wNóõœ�DfýýÖûàÿ“E¶i9Ä6ÚÍœTÊ`1O,ýg²ùÀV:Mim·Œ˜Á ”Û3¯É¶^…è³FQòfÕxçÔ1(bǺÙ�d Ãùuf€•ÐáS^ ±m¹q‡äôÏØ)þm”a‡t1»7oPMiÔ3\‹=ÈþÿeŠÔ·üõ4˜$üØ›¨³öepµ)Æ]©è¯2gj\Æß¥jÊÕÛÔ9ÈþuÙ‹í�Ó ¹´ê1+ç¿tw‘Îc³Û7Ls+áÞnZ}eMÑe$ …ír�ú ûkeÅ.‚Û¥c,ú#�$/ª¯V·¼Ù¡—&èwSÀ—â8eRÆvg‚¼G·7Œì ûke­�—¨šCJòÞ…Y÷ŒzºI}¼!õݸò~ç+W줷�*9M†[b¾hýO3ÿ#¦¥ “?ØæÔ^ùñSÓ¥jMŠÁŸ[2ý=x¬¬µ¸ºÝ�Ÿ»ßs‹ùïqSçüiáR,Ïi!qÖ:*�3úÆý©‰Î§€ì PØ;ÿ%,V\]/?ô`Êú "èm“iùßñ1J%zV 0Ý žDU¿T¿”Ï€êAR¥!‚£¬Ê4€CØñ òq¹ÌôTÒxÎJÕJV*ç,ÄÌ/dò ÷|ÂÆ ÊPf«brWHÞ¦öJ…8ô¶°½|A‰IˆÛ­©ÁÚ¤¯+ؘ.gqÏ„¯Xõïm¸\ÒÌÃ×Ã÷Qƒ|Qœç–çÉO’Ÿ¼úÚöEô�wýè0OÒÂeýÈú¡v><+ëÈãÝþûà8¢Ù�͈HHØiˆNU½PB/Y8bòýð8Pº™s"›zÍtb–¦“Š�ÜŠ,•÷a—Ø]­ü™`ß™*›±·¨æ†AëdëäÚµ³™F82=2=©E©EÆìô3ùCRt¡„šÎp~,~,nŸB×C×…«""�Ù�ÏOs¨'æú¸Åå–Š“»Þü¨r¿ùi<I±iι�Ê™¯lxòÏÒUr½6³¶Û¤mŠÕõ`7½Pr‚],®ý¼ÕÉ»mlŸ…ùþû»&E÷˜Ÿvº±ÙçZiÉù³)œµÃŸp¿®[þ'5üiîÁjPRéÑÞïÍŸZ”.£Û}Æ<Ô;è¬Ù SÙ„&�jæ"�†o2H¬g°09.žòÐÿS‰  ^Fp:*ê ¤±(„j†œ }lÆ’c5wŸ�ƒâîm²Ûdˆ•feÈðB¨D|PAaБ :m30·¾•áX+BŒ ýsÏ�EcÒª# =blÛÔü0¼OE5*òÍ]Yá½}ö®³Lú`¹Ó›ÌÌÿ¼þy½Wj  ÇÄâ6ºäðçMp……æ,y±y±1tUtU~Ëòhç°šòÈ?©uŒ$¯ºA£È¦ð~¿NYýWX'˜ ·³¢ÂˆÄEÌÂmSÄ…µÂ‡î¢£É Puâæç¹Ê7è>…³Ê^ÇÁ¶¨|$U1>SL̘ó¢KþèuT»ü»ü‰Û/ ÒWC¢ÊFàÁ�ÇF«Gç!N4i¾·¤°ÏŸ->[lýÂ? ‰ìøÞ©iìtC8“ðº$„'b2‚°”YÛ­C²eœ™r으1iùi�¶:ŒoÔ7{*Õ:FI.~f5¹mo¬¬÷ɪ¯U_#ú|*»d�÷ë%V\|þ2Þ&¤4 ­lK9V VÍØfëLëŒ qÌzÌúl]S¢S´P§C&¯–}ÃJž6]ò|Ê·çÙ”ˆ¹Dø÷gPÂ’‰Aª¾r·äìùµù>k¼%kÙ¿OVùƒH2B"àNÆÝ%±ç4\‰ýî {ƒ$—N/¹&6‡E¾Œ:Èþú™Ÿ…ÎÎb­wužé ó�rÆר\‚Åž~ÚJRUJµÆ©8Ÿnà¬õò û÷ÉpnÞ}æ•èëôΨ”J-7³x^[ÖcˆŽÃL�Cä³á‡àr‹Ü8?a¶—ÙAöWËÖìÂg) eäÉÔ §©FŸ�õÈþof«SX?i0Ö‡âæ íðÖ:®rd®�än^Zít«³¹¨UÔ¤b$Cy�dÿl–Ê%­–×S¸UþØù§®ffpû.}�RÖ/Áõu v7e�ìV�±l¼¾†�ƒì¯• {N_ÀV£^*Å7N{r¦M‘Óºý†]„\øhÀµZíkY¦Þ$Šýï7d²]&z¯-‡GJÝäç¬X�†JëG¯&>bœ¤a3å5É,Ï_‘]Ü q ª ÙÿNfªóÅMíÉSÕ)iU;Nå2v6“øÉ“»Û¯Sö¿Ç‘ÜÏ�óüW€T¯ßí¡štUJ]öy&п|¥9㺀º%+`$ÞU(Ô'ŒT, ÍŽ K¬ ÕK?ŽêЉC'NG˜£ ˜DîB˜ƒn°��1…ÜÍ{':%EY}èÝ¡w¼>�´Âÿz3­ÿ4ø=a§n2¤ kä˜x‹~¢êâv! /,¨‘6ócB±Müé¹tk»ö¬€Ø3¡åëóÚ±u{ûb”É«ÞiOkW¯*Üðòð2‘Öë§_&X!:ª˜*²ãîÁ¥l¹(]¢_¢¿ª>é3éC%ãØŸ)‚áé}´&”¯É[ÎD¥•î6S—ÀYÍcp£\„+hV]ÏIÎNÓ63c 9—p@$^¦î§îIÂÔ7¡‚XÃx€ämeM´WÁ-w±Ñ³&.JNõl§t@é@ï•ÃÛ…7¢õŸGñyC·PÉ> ¹fþrº+àW•}•½ $6rÊ©Wò­zpÅ©¸ðè�ÞÛ�MÈ0�¨ÛÙ(rRWñ®|s‘ì6E™T„ñ ¹åÏY3Òb§¼Û|'ÜYoê>ùù‹¨wÅeWá¸�¸�t¦t¦Ú†OÜ^/‡Ð{aR¯õ„[z´ôHH,K5K51‡0ƒ0ß›+5SA”ÐL­ÊÇRÞÜ_àî—(†;½ã÷wQïb¯É¥oÞü-Ð='é“«u²êÁ$‹œÀÀÍì6ÄoH+Ž´#T¤³aTTÅ4ê?­_àÚß³}k.·RJ‘òfð°¼í, *''�ÜÉ™Ÿu¸£±’0ßiH—8²vd×þÙmš´Õêí\=ÁӓņboÔV¬KÆ\\ö®’ÔóYhé„F!È-W‚¬Eq ×@[tnFž>´ÖÊq¸Œ¾ê”c™_îÑ‹|Š6xŸŠÄkšð–'‡e�òä�¸â®ý'Z©r©�3mÍù}J>zåëƒ.LoŽ~þ�Wîè~j†+**L+ìÝY×Q9áÚ?»ÙÝ"\4²olR\™"“¶Ž ªeSä1jÔœŠ‘¢+:‘(»Ø’ÎÇk¸öwmú¿ŠØëEÆŠÛžb—"{÷!¤f,n,¨¼ÿ*Ï�ídO‘šp•5Õ ®áÚ¢M]g÷“7¡¯3¬^ÈË2]~¥LÉùGŸo‡kÿœÆe§å*—wÞ O§› )ãÇ‹ÈÏð½]Áßiüù �E+F\ÔÉîË»íí:l­kaAÂyZD£1›·oþ$öªIÆ3v·° ÿœnc°‰IGåI ýÃ"ˆØ¸UŽöE/`ÑA¼ÛÀÔ Ûvscsc† ·‹Gc¨B©?w_ ðF½U7¶jxE\ÙÓ֢Ϣo�2B ±Šµ/€<<óÕå2+=lš¡.¦úЬn�sk„Ø�”¹—-�›�èÂÉwŽ1­ƒé�ÒO^Ô’|õJ�QÜYºÉHÖù+òÜÌÞ¿X‡ÛTÞTN®H®¨:o1“1Æ‚´’|®L¾L¾;b­c­ã<=S=S}^ú}øL¹IXÍé8ä/L¶1 Ћ:ì6SŽ[ëä¿·€£I~޶±ÈdÛL’L¢‹iãÞÌ�û’^›ž1÷¦Šª çü 7«`ŠÆê®N„Í͉B ýô¬úvÇÿ1íC¹w;Ã`´(y9à0ûïV›Ê}�¸‡1> ¢ùqµµû)!sda Ära’ %¸ÿ_v4õØøÑÕô™ûßpCÌs¸ä®Wëa3ПÇzŠ,Ë„íìíeiÇ»D=ân#x ;z¥ÇÖÆÖÖÕ$.ãø.´2´2óLæüSJi³Â�HfLÚgÛá„é„é ®ô zêÏÂôÂô2G6üàÏð-ÏUnâÆŸV�xK|µ¬¬i·gøðwŸØT.“tpÌY ä¨ö+|u±ÅÿÌ´‘ZAkA{¢©c&ó‘òß?×Üá¾óëMÚãÏŸª¥‹ 9Jtx›î6ëN[ë2º^àÃ}–?zÍìÝ»�àÙÄñiBLGG>©…�ôÈÒØ3W1Ýe‡Þ…vé|²2 ûßøˆ�,“PFÍ—¿x±]Õøûv.«hö(‡´nnÅÞø‰!Y;Ã0m¡H¡HÔ‡œÕ| F~óRóûy«(�±€_)P~§Ü›13`˜sSÊõ"D†üÄÙ šlo° üÄ5½‘%ý1¦ç;;b<ÖÒéi¸XßÎ6êDƘœ™œ/ÆTófÃé4è4<«~V}æäå!M5ˆî¦›¸ºÈºH‚€l®l.?7-7-û$>øLu:Õ2.’\(SU¤íÝõìÄÖºWÖ›ÔpKJ}ÑÈJœ¼P8äxß“àót-€F?(¯‡®%Swy4 pñ�}00é“}í`fE 6I×�ÉñEÛ½Ž~Ýõ Ïóí¨?¡Ñ³ Œ%¬{UZx —ÂÅfI×¥Œ7�7E5!mæ�å99uH3kIÊ‘ëÀ*PhŸŠÍ¥r@ÉÕHÙ]’˜s‡³Ÿ‡ðlÊ—¸æ„átÞ;==T`_mƒ%ÛÎÊý¾R›Q›ù^è”ó‡{ú$týÄú‰µÔrý’ÈèWL ?7~…ËõÎõ¦žª¿\¹”BkIk‰Ý°&>SC'¯%¹Ý•²ucŸNn»9»ÛL]ÞZWKtNïË35´u;£ÁÔJ‚qL›øGF›ò¢D1ÑÇQ˜Ro®½œdfæ€Ha¡´ÃÌSç°ùúŒEhÔ=&»�]—]—d›Èåíê¼ÑÀ›fÚ÷²@qØø"¤Î•ÂÌèûCÿ·¼oyŸéBf# ¥£òŠ�/ß$¿£|z ð§IÎ}­ØÜwNk×.‡Tò4Y_3ó&ÅÆ†Â´Ñ£cúc ž½ò!_®*ËÈ|$wö;‘걺ãuÇ 4ºè^Ü€«J­J½:|uXgM‡� $å+&-çQ8ee‘õSÉÈdä›í¸íø`Ñ‘ÔLÕýëlö#rºOå/RÖÍO^- 4vÒßí>üšüÿ9××þú-À:~ÙÓÓîÅÝyòš'“¿šÈ¶é©¨‡+q4U† !,CÌŽ—ÜŽÀ5\û³Úoy¦ø"G"\ŸOI“Ìç�XSt1�P~˜§s\$w±íúz¨˜~®áÚŸÕBŒsÄß9xø·O:Ñ$‹P´Æ:­ôø÷‹á~àñ£á‘é�ƒŸ"øzÉbp ×þ®íF“nîóZ”N„DaEC× #²h9, K蟻´)S¾/\�ÿüG·LöTþŸ| lŧ³óxÊ;ÏÃï�| ûD˜h’Üó_æ5Ø��Uívoä¼µÎúl‘\f_¦=Ú†aÌ‘Ãë�a²#¸ÅÔ…™Ëš­àÝÃô�7Åh·¿e DÄxŸAc£ªÀÆ—ÿh�Ø ÃÉÏÉoáì¿ÝHÚ£=(²É÷¨Óè†vÁ:6ÒÄ·0”0”ð9rç.DGÿ_Ÿ’dEZ )P¤�$ðÙÿ´-6îúÀ¸`1þSFÈDЄìü|f76âUP·îó¡Ô¦Þ¿6ù"°SŽJUÀsgÞÏH„}}£†Oï=’ ÛÛä%ë%ÛMyŽíÖ§& ]¶Y¸“\'¹Š{«û«ûÙS%ú%úÃ˳¹à3ÅßóR-Œy¶Ô›Ää©QljÂn3å²µ.TýÇc¸OH“0´º³SHâ˜Úê>L¬Á‹Ì@ý­ºÏÈÒ L þ瀩a.B ’�û*š‰y 6{¾;æxDÛý�û!gE ¿s CS¿…B\=2 2g¿©üé—Ç­uµómÐÛ oH¼/D‹QêÄôhš9JF9@q0�›Æ†/àà./©„xxÄ+üæ/õ ›ÜRßј6+·²™¾7ó;H e¸vFD/Lt�èàáV�_šåà$µ%µGÈFÈ~Œq&*B®�`"þê~îUÌ«˜<3är®{t}x}8=È�¾®:éUÀŸtÔ À?´9Û�q·=pøÿ‰{xÚÙ]£~"ø)Ê„.]?Ëó¦%P?m¡ÇÂÉk- µé¿ßÙaœ‘f"qAÕ�ôô>¥Â×ù6K»Íº+øÏ椊&œ@«D<šÝŒ¯¿ý·Äp!¦Ûá&Þ€1¥$y§œ¦Š>N€Êb…˜øBŽ–kâ%�ÍsÖ£€¯ÖÜvH¤Œe�ÎÊvŸŠÑXÞ£äƒ> ý˜=k’|#4'É{ÄՋÕË%âÁá?$Ði@°‚g ¤óUîuåØüæ ɓƤ‡8kU{JWj`s‹ã|ϲAm̆¯³ãt½,½K�‚ïΦ>Œ Fˆ8 àîœünáæÂMüHüÈ»söaVHˆ$¦'ËlážÌ?™çÀ×XÖXn•;×p®áŽŠ¾1|¦Ü§ækê«8t–×Öv½&»m­#�8÷n\P°mèôS³s|_›š1Ýdq¤ú¯XVíç�#Á䎜II”*€1ÎÜËhªô³Ø�nÛÆ¦ˆa?îPîÐþF�ÇÛ™µ¡áO£$à*xâ!uÇŠÉ# ¯ñ°,±,…‘@„ŸBLÔ< �%:ë( ào²¼¿÷" ×¹±�ž§r\�rˆZ†xl|RéTé�Íœ¹¹­Ý~ÏÒÛ¦©¢ŒåJ!Óã’Ì;{ß(«Ã¼‡yÏÒ\^ïO8ététç÷Îï•%?møBF1=¤\s€Ó(Ô(´hèýÐû�ªÇß¿„S¡>Sdû8ã‘�3ôsüqê"»ÍÔ•­uû„%8àºýmÑr$(™Ž%þF,W�)”^Ñ@ˆóv*ޱöcr£•ÂEyö¿fOÏ¢iØ›•a“”Þ ôà­oW5Z5Úf¢a¶ÝØC4“R”ZùjÀŒÇ.Hê^#g%7WŽ Ž‰ÊÝbˆÌwfR'³qJÎ"àêŒIãÀF$Àk6�"]†ô¤è•N˯¬bc“ª^ѰÒóôÆ`lÁwÑšöMg��?îLO­kº+·+WÛúˆiœ&܇7ÞPØRØ6ýä}Æá yé„)9ÂÁN„§‹Áþ_EùÊac¦·ídµ\5õ£÷¼œ•CO½°¥“ô­}×'ˆk¸öWkïS»‚<-{;½³è)ÛÃ]�ã³ïñürDþYô‚d\z‡§•Òç{6B¸öÏnIkˆç£©‰|ÍHMUí$Š™¾¥Ãêüsâáæm9k/Ö‚•Œs\pí¿¯ùù+ˆ½\˜º¼pæ¾sµnñІufÇ…3µ9ßtîúIš)¥,(’ R à®ýÕšâѤxGÅ̉”¤‚~žakãE¯Æ¡±‘&ßÊïv ÓÒ¯®‡ßëÏŸÕ¿7ýÊÛá`—b@n¡ÿn÷úW·ÖMSÙåÁ”Ûn¢}ÚTY‘4dzrn“ÜŠª7‚Gn)€ðÄ”~ ^`‰Ö]ì½(ûјL†_acz¶¡0Bëm§A¬Aü�˜+g;’_ÑÔ Qô·©I#ˆ}•8ÉÝ,;Q;ÑõnÈ¥bˆ@Qû#O/úð\GI€‚°'ÃÇÚu¥3ŽŠ/0…d¾Œ4a¼QMŒMŸLNš£u¨¨Û±7$ßøj(<MÉ.;c¹(“¿Ô²Ô¢õx$áúi¸–“-'IÉIÉ÷qË(ƒwÃ$x˜wî’Í%ÒˆÁàÁàðŽ8¦8&&&~ŒoR®øÅÅÓ+•–ôߌØõ\ëk[ë\Ø{ àhü÷ í c ò.1qªÃT°ÉJ ”†6àÓ ×šbš�¯Ê$Y$NÒ$×Ñ´‡»±ikÿª „½Ê'ÙÎÍßÍ?îØ»Óh*û½à’hSvdÈ�È\Êx ™‰Ì3É<—)S’LI e3fÌL¢�„dHIeÌP”1…Œ�ÿs=ûÙg_{;^œµÎ}ŸûØŸwßµ~ï¾kïµÿ¿k(²’ÁÔ²íöÊ��R àýÜM È)1yf÷ì…ê¸ê¸ÐuÈsOHJëó§�Yæàh‚ÀÂð›·øŽ t“ލ¸ãºO)äž­øÛI‹H\ÇÕT§ø=H©Ë§l{ˆÚÊÒUñ¶v'è�‹5‹õ ­‡pJsJsFFg÷ÓÜ¢=q¶ÁÆÆrÊ înÿÝ~/² ï o]ÎNÓNÓâèÃ'à;¤þ.�Ôq÷õKÒUŽf·¼µÓ�?–@ê‰}@c~¿ò¤{ �Äò¢çª`|й»sävã\Eâæ»þùN‡g‹�NC‘]ïù•®<¢W63oãˆ:¶ëú•͹e;8æ ‡ÑÈSlfò+°uZXïÔW›?rxb[öa0Ô[£.»y"�£Íà¿ÓÅåZ�è: cs<·#·cÔ¡ÀhL‡LÐjUSn#@xKrĺ¼�[ŠZŠšR‡,}‡d]›�èîó‹Fºˆ~R3°ïƒ’Z⩵ów }·N¿WN-Âeöñí$=ó™Õ‘R1® »²úžÔ]Ú½5�¤¯ïn‚@$ \=w=7u/u¯]ÉOëHø6Ê„áwp�&Mf“Ì‘ÌEÑô1ö1.ò|R‚wÊdñ«^á¢A‘¢ƒ¼«lÅv�òØœ#¿§Hw#Há(šÚ©Ï«„¿é±)S…Æ ¤\¿�†Øâ¯/Tvƒ-‘@Uï4ßÜ×Q¸ì¹?» ÈQö}ÇT˜P˜@V7E�)®mÜeÖz¬wfІ!äLi:ËÁ‰‡ÌéÌéÃC�ˆjȈ­z(Ä>œoŽ(㔞»ÊãBL „�Dè B(ÿ°e*ÖãÄÙ¶Vâñã[—ð±˜!S§jò)š ºõ­1r8µ}#úFdŸ>m\" ç:á:QTPT0!uîË4?¤Ó›Úž4G#GãñgêÏÔÚˤ\¤\ iýâ¨NQüß5èÖ.×Í…³gz‡Ð¥ólwþÿþ$òïÎë<´¼*"eŸŸúû8bùÒN¶“ý'dž /çûh£ëYÓ{ï>`Uå©iN¥»RT¿ ô\¸[�Üp>‰'CYγ`'ûkeþ,¢dOwéïu°:«û"¿ûPý”¶›�¯v[¹ØMeß^•ˆðZžÜÉþ=ÙH·Üø‰¾éwY uå? ô÷ô5âH£ä6JBÞ¢gÖ0@2¿“íd[e¢*ÕÓmŸÎ°[�¯§Ÿ²È5N¬+ˆÕ¹«NÿÚ™deí’]•a4¤d'ûײ «P:Û¦à¨Ðæ�þ%\•2¯áÿ3n¨{¨¥ó‹/©Ñ:‰¸í׫›s�»½àb}�h»rÙRÌ|i?bs—̾œ"fkJb5*À¦PžphšI„—IJѨæ èqÉ« ´H„ŸcbañF˜§`âÏDû%†ûÈh¨áÿˆ_=“Y2+Þ!Ý!Ýç ! ‚H*WB ¿*Éý¿&๠pêa .Ò¿ovJÈeÚÑù®Ó݆¸ìªqOÖF>{ÍR£žs3YåÇÖ¼°5ÍnÕƒt-t-)œ�—$,áÀ¥ä"œ"œ~ù6ýí‚�}âØfͦuáîÌß™¿ä¥ýDûÉõÃááÙF— à�:ÙÍþæ—ì95jW—™æ¨í:å¹97xó¬\>ò šŽówz¶=ú‹ÔØî‡¼žâª'íH¾É·b«�¤ó42îgù~4’=&\v±1�ÑLŸ0­0­0y0ea’§F«³GQpa¬eš _4ŠB•d2(X¿°~A~„°ý„´ŠT'CÎ\Ã3E 9 ”²Ô¥ÒwpÉø¾ ,Œ" VÊžÉ ¹9Õ¸\.sø$­¦ ÌM“¡·1ðåûcäÖä×}clblNu–º—ÃEµGµÓÓ5žÕ¶‚hæ`{µwB®M¸M¸Iò�Ø;1‡³nn�¸šÖá�2?_W>áåØ~_Îü™i¿Ÿôv�º¶9WýYjîÜ¡ ÃhK�‚Õ"/Þ†·as6/Ôš4ÅH žJaKUÿÕ$¶4Ü«&Т^,Õá"§çîœu1‰Æ4+2+Bçl‹©ó3šE y’–.@ÆúÂàÿ†=ã´8…‹›‹Û…K�XEHŽ€ä‡j[ Á " ¨f áR¾\]xîØ<ñŽi½äjË�‹îïÁà™÷iBÎk\‡XyVÓ^Aw®n-›c_Ü·„o îÃj‹à~ÆýŒÓîÕî%|û™²;rØg-ÜÁ¾ƒ}íµTsTsY¥£i£ik~ÁÏ“_ñ+=Öö36çhOÎŒp™Ûî<þN0"¦�A­}'VØ<(ÂÝúœö„;�ndÐù6Ké©~šºûÏÏ“¶8OFzãkzÒZhp¼¬ÈŽ`Ú®ë^›s©™žºp{ÃìјgT\ÕÏ-3ÆÄb“k6·u¾Mòz…íˆuP^nÁ øÞ§GsïůÀEDRÅÈyͨŒÉRÌRL¿xÄy& ¯c �ý 0ÂAu^�‘驩ψ^¤:&éÄ<\ˆEphгqÙópœë fø1±Q0Ì]švÃÅ�+ßÔ—LYP!hl·ak¥�FYy ü֔𧧎M+.·ý#N§\§¼e¤e$s—LâÍaHÙ(¶¤iÓp”r”rÃCÖCÖ÷]DˆÜ8v³Þ©`ß÷.‚6�:]Žz¥gUd·ë”÷æœÐìz$œƒS%Ú <�|Âñ]œO°•L@¿ÍøÄ•!–j±¹;îa’£%Z'4ýA«T\�±š¬À¨ø5RLajaj:ïr=0uj¡µÅ puÒŽòLåÓ :§;‘«ë‹\‹\©ž�ˆçû'ÉaQ }€!ȪG=[ Óþ!€÷ëwQ5/ˆp�¬¢fr¡.Ÿ,¾Ð²¹ª¤zÝɨ%—`qúáþžgk"S=5JîJîÊ>äQ¼pûê÷Õ'%E§û}Q'†àïǶ1Ì¢—é�é=pæ(â(‚�jEmEM4¾^Õ)$Ô)þIÊãÝóÜÕÁsÉá¿]·;O†þ•ÞÕüß–�&Fîb¹'Ädõ�–q8Tå•iZûI­!=„Ú®[cç\-îX¤òHÎîdïL¿°±”ñ´Gí‡(� aëyšfýž³¾<ú„—-¥*2Â/E·¾ó"®+ÞÉþZYÿžÙ=u»þ<ƒÕÃmÇŸÚÙÒH|ú$=Ö°~“­‚ Ý-á@ýÉlÞG;Ù_+ã½›ÂBˆ_Wj©‚ä¼Ðw\ÄcÊT"ƒå[é¼ÜCŽa£=ÖÒó÷Šgv²¿Oö»Æ8i¦®ø\ؘ†’Opí²–*Oßs \ä^H9tš”¤Ÿ£û]d?ï‰�ì¿/sâ·4w`PÈ ç£Ñˆ}5«+HMÕÐxé1%¢ÓÈqôÌdŸ,‚ùœÂ×bû�l'û33êë BHç\éè÷e5]®•#·L<È:ª­–÷^ÿüð§ì…ölÿpž¸.ò�ì_˼"{ ¸X¶ýæ>YLY:Áž¤�?Ë'fIúZÓxò >ÇÔ§¤ÕùíÎr|6çf\iÖà~ëuº µŠªH”ò·ÂfO_áè˜m0I¿èÍÃV?=L\<É–˜¼Ž}†Æ–šìŽKY“upa´ÊSõTõÔ~ÍALUhR(4Ñ €‹õ HþsJçŒ�}l6„î'ˆ äÛuê[�•£ÍQ ,�Ïö@XΤ .T’€¹”qâ cˆY‹Ši´gòy\D¬›ô/û°ûÕQ.ÖÖÐï}ó�â)Ýç­ ÜpD2Ò0Ò|^ô8‘_‡—�—Ÿ?�?ý!��ýú7ÈEilA%ïàÜäÝä¯{”Ì”Ìì"òÎðÎØP@�Á;UÜEë瑘wž‚bZíýÚv�òÝœk9ð=ñ0åÚ}×Xy �¢á½Ø.H˜�7|YÓðú±¦ìÖ8­ãøýh*Ê‘¸T}$3˜_\ÄôjÓE“æLch‡-P2þØ�ÞË«„|íµ•yQÖ·B¶Bö2r\ ²$wõ"Dû×Ú%”œCੌûX˜ òν)‚êd>zJ�‹ýìÜ Ã–n^¦Ò®ŠÜ«—×ù–¶6Ø;š;Î:Îj[zˆÚ›N�V�¶Û¬Û¬iOO6ÁQˆI=¶¢CÜ@ñ@q­A›K›‹î\²y¤èÌ>x§ø-¦¾ ý¿oÎðÈ|mØ®S~›sNiÍüpçßL=BãQzª§˜Ó&Oàˆíbÿx�Å¢X9è$i…�CäG@‹PìÙ²Ñh9æ)qùCEÙ Xɤñ¶¶~Ûƒk?&é\´ûx(�ÞjmÀc[UCÈÈ¡Yª‹o|ßÜ}swñ„® â’òÎ2ðá€<ŠÌK`Y x6ßk�‹MPøãrªL0dlõ¶1{C.Îø4þvùJCÏÄ.•¸{e•d±Åˆn�ßqãµ[š[šÃUYfh“ù�¦§cƒcƒo åPû@ocË8_wÄåˆKZ«Øw±ïZ½��·Ö¼à;»RUž+DÇ™���5iQÄøl·³Ëã3ã%⬼G|Ç„Ó܇¶£CöI8ým»lËt„É5ÍOWÇ—‰sFd÷º¤ üÕŠí©ÊðÿagLJÞÙñA;;Þ-vv¢¹íø„MçãÅ r›„<Ó·ëúõ͹RþÓXÙÁZ´³ÈšLö½·Ï“®ak÷/} "×§RžªÑas�x2 üZû¸`O”Aã§«éÄ…è–Z,ÀaИ�IÛTÛ4–&³Óâ4‘g(.­e€—?¤ñäs£¯?®Þn¹Ýr¥r>òüã@4D-Jâ'JO)PI.kVÁåÓÿ~~åž°B½ß¦Hï °ÝE»4\4¬,H2IlrÍÓª^Õ-]3:Úc¸µ7#ò¾Ê¾ÊgÚ2Zkdà—ƒ–ƒX͇ØúBöbëˆ!‚ë9Ós¦ɞ˞{ºÄšÛš;‰g!Þ©ãfBùÓ$÷˜èÎáa“¾¾]§ü7ç-iÏÁ¯¦"ÐÈGš�®¾íÈTÂÖOE8 \>:PI©ù†›rR¸n ÞÏ@i"ðPþ šE|ï \„ñç›ÖTL´´�ö4VašD[ŸEÑM»q0¼Fñ0zGcët—t†«)©)‰�°�±�Ù½’µ’e/WðÕ©pZ¨S’FC½ê¦Çè_ýXmL’åÞngÿþü+]ßøŸ˜E>7³.ŽÍhSm)¨gû}D+LÅ‚¡5þ‰önŠýùþÆ Õ ñŒeWóHœv²?/{bíoï‘ÿ�¯·5Äø’ÿ-•ÒÏ’@‡¹½ä5~ˆ£&f½2"Bxw²O¦vð—›üÞèÀã?T)7˜.µçÜ�élð�•Ïo ?+WåDÐ?3®¶“ídf¶èl'Mó2ú£ÛØ}Ý2ûɺ d¬¾FO’_â�îø¯¾^­¯_L†áu_ ÝÉþ>™¦w~cŒOü<2&•�‹ýÖáꄘZáÿaïΣ©lûއT¤„ŒIÈTRÚ†�Œ)‘‘d ¡$6™2dÉLD†Ç<‡‰Lɬ„(lC¯kÝï>ûÙ÷ÞŽsÖ{ÎszÏÚ}þû®õûï·´Ö}]÷½ ¯-eêŽg/íºwâüœYÔx3±ÛßÕŠ"½ø ¼�S&^ˆLn´÷Yš³uf›‹¶™ªçø¶‚F'~ÝeS-€Øˆíß¡•§?A5z`O²oWêŒv³8rQ"§¬mYˆòÙ¡úÓèðqÒÈGÄFlWKxˆ”G×PÝžŸºžâøIOÜj÷²=•œ—�ýB”Ì-ª=Žéâ’ÌíÄFl é§²¿Ify¬<£üé’3ySüƒ‚34!…v�¾³ÆùV28HÐ?¢áIlÄö·µgžxTš©P ˜É�iÚ¡æåØÏ_ŠœþÕ\<›]ÇÐ(L:‡RcV'¶¿§“Úè„„žŠ5Ô�–aÍÓ&ñÍa:tQ³¨¦F¥s"s`çK¼¿á±ýÿn.±>ùíšoÚrú_ê¶žvv%ý�~â¿ÚµOºë~‘U[þø)»fP9]ö¡ üŒ“Öפ|[¹ëá{9;ÆŸsÙô½Ä»ës 4nWàf¸ÿú ‰~-&ÃH$çó |±¿¾Ð²ÑSÂÖy‰øÔJëôÉy ¹jÿ–秺„xɦrÕOp¥»¦»{‰[âÚ�Äê‘ÀpßzƒðÕ͇ ~ñÉck˜ì–5�5蘆8\‚Å0ËC*óòE1&ölàÏÊQeB´ÉGFZVHg Ýày…{BÌÖ¾œ�|J­�‹˜PÒy½¸\[­¿1Æ@=+ûfûæAÎ×ÞV‰pMiMi« « ʨ]ál‘�‚}ø½l ‡E�’tSiRiv²ýzñëEˆg/|§h4SM[ƒÜ”êÎê�D\Vßl§¼×çHXÙ+áî…Xa ÊÑ8ÉÌ Q©ãËÝë{Øs`4+Ïa¾][>:[Ýœm�~Å4¬Çµç… Y)PN^Hãʥɥ9ÁôbK>câ²j$ ë§õ ’NÝñulPÝ5Æ3ÆÓÀ "yR_/\I‘páÄ(* wf£zS´ÉnB¦å•ã» -ú);Í´5c#¹s7W:cQy5/Ï=ðúGð÷�ÙrÛ$•&•~¾kq^_Îá‹àgàg�º/éóg¤n?¾CQ p]´]´ž¨••°$‡t‡ô4·Vy¼odwh½¤@× ËУ͕Þl§|Öçx·kûÀQûšaYÇh7Fóäôãc”zVxuæFŠØ\-ÇwaE�ÜuÝHx(þË*ö[8!ywƒUò×?™qU•T•¸Z_Á寅¥–ˆáb=Ì Ô‘ÈTC\órZD·*x x tš@(!Ïk…Í!BtÞ2Ð ¼Û?Ã2³VB”¥5~2‹THÝaóoœ%²Œ„ÜIËY z‘püæÎä�¬ZW®m•à=º±Wß‘DsEsOu—É"uᇇ†&‡&kE¹;A~Ìâ˲=ÞWîVîVöP Z ZÉfDsDS‚Ù5~—ÍQ=ê­Öâ/arúºÅîùÍî²iþXK­*q¾•™íëEÉç“føÝV}6Dé)ÕÙÑÓ¤Kb½6©Ž‘fŸ{);IN–¡­}ÿúý ü»lâÜe+ô·õip’P7}Ñ—¹é½Mßõ9ñ´)C¸]TÍXÚKnŠnI%ˆýø˜/ázcOÕåÜ¢ðI¡vJ“΋&@ÔIãH¬ÖP_&BlOM×ßKpiEiEås~ÀÅ#�5q#ϦE 1P�ƒgdû¾ÔߎÎ@g$eCŠ!ežB=�†òpŒ”BàÚ0°�Ó´Ž�Š2 …ƒžÉ"åÕ¤Ù˜iJÈUµ†âv2¶²{2�·qRì‘qiŸµÞØ9s§�0±01JÃlÐίϯO�[�»jŸíLC!äì~|s'ªáÈEÈEŒ'ÃáˆÑ‘F‘F½{Gìá;ëìFºå®™Èyd vemÜf;uo}n&0F.ÍE…ˇyT&~ÇI´D¾?ë*s.ö«L9oñUÔ¿Ü&¥øxwŠaeÔJQò4¸¬ ®ÎNÅô<è¹^sk2®ù}Xa‹qçÔÞé7!}ì¹Qª—G9G9÷6Bz 'ÜK¥ ‹ñ)âü:£ àTó‰çN`uÅï™ÊEHsÏ‹?¶�¨$H—D—·ÁÿÐóoÍwOªH}Ù¢Ô|zcÙáFZϵžg• ,ñÒÂ!B¡»mvÛ éTß:k¡ïÅ×� …  H);z2´JS-‚Në­JÆìß?¿?Á¦X{àWSÿçæü¼È—G 7»ËÿûùõŽÏeVdø¶e½AªÏ,¤k?ßÝ­¡×Ì™ûTÔüžòª*¢|á(õT¢†&±ۿڶܳ*Ÿ»à×Ç@.î…jsÓv ÏP|Q¯«èéX‰:÷p_�W샯�Øþ®fǦLöÈ‹òRï~ö_ Ó#_YÆ÷=MŽi¾õUo(Á“8‘¤Û©ñ–Ø~¯ö�&ààê¨߬@f²VDáCu·U2”}Ö¾þ­4äsÔJ{eëÈíßÛïÕôE/kÝ—wXb�ŒØ=[‘—|¤é‹løÌ‡!¹mì]ȃ�ÄFlÿjûøÃÄN‡ÁQG6íâ$)ª(×R@ËGÎLfnô"éÆýKtIíå$‰ªÄFl¿[[Ù[–+JY»ó\÷«û»ëýØei;Õ£Ët÷Þ•HoŸáª:?b,}p×ïÔX' ´]³ |ûFloïy§¾¨S öâ7ÛópDy€Ã$~¦K¤tÿ½Íž½Ü_ŸÛZ§i ×¹ƒ‰ k̾„‚Ãk‡éÇx|fEj½@Ÿp„¥ùƒ4|fr¯b€·–bqÀÈ»X-· äÉLRu�‹ùãJL$¥kŠÅÕ�U2Š¡,üíà¿íìDïËÎÀ ׎1º")]�ô%½ß I¶Á€Þw| 8•þDbŒÜoSGÍ­A:XrUÛéBßÖÿ´\¦Ã$ì°kÿ’M^‡Q:%êdÆÆóáÚc—Ç.ÛI丒�€{”ó(GhJhÊW­*Èîdï>þçEæpåÝåÝÕ3&3&*â”Ü”Üv,âà;õù57Yr–;Áâ }a„w³�ò[ŸCž-ƒë1z¨†õÒ³}�㤗‹“0¾k¾}³À¶ÒR÷´|Ã^|Á¯Ô¥€m·-ÀÏÅF¬åÁOÞ„˜s|¯]—ÕٗÙÇà¯�+>ëÆ3 :•ây€VW Râë�bqÑv…d…ä̈ï $â¼Å89áÿ_à4õ\%Īh}öB8÷0$ðË5åFçvBèë©KöW�Øê[´FóvA¬[?$„tcgiÛ{ø<øÜÒ4@ð2jˆ4’¤~$7¼S©4ã³Ö…*©÷-= N›ãk kÛCívJnîgÉÏ’Z»Z»�ÂÞ�5|Zæ (¸>DbÍÀœÑœ‘VóÌö3Û oV<�ïÔü%ï¹ý´sˆ*©ÙÖ¡ÍvÊ}ŽyiÏ8éç’±ìöÜé$Üý2&.·yÞ  ŠO´Jõ=ÙW|““ÌV@»]#;ЯO1ƒe\!?DHROk H¿d©ÄϚЀjñÐ;¢¨ClÄößi¼Ÿß|›Ñ_Ýž÷J:�V]d„’~ß»w¥gÓEXyƤS-ý}Ì>2‹ÞA±ý;4I’©;ßHR»L®Õ¨÷H¢<æ[yG5¹Ÿ–É|–9Ôîè¨\Cñk±ÛïÖ>uºúgr˜uõ‚i¼q‰‰jÒ±Xµ&?Û@c ë'“ÛöøÒ&*Þi"6bûÝuÛ÷×Î#éÁÕ,9�I¹ ¯±š¬w~PxÅê9¥ÇGqii8æ¶Û/ÿÿéÆaU, ø0¿5�Œ4n/wÐeÅtžðç@$Ëì çm sôZ>'RQ¾Ùs €õ9·Ñ¶|¸Rƒd¬@*Š|«mVäñ½ýf° 0¾ö¹XìC§�Oµû€ b}ÜU1­Nkmµñ!7ºO75&þ!¸BìBìdÆovâŠLÊïÇè®;Z” Ü@BÞeP‹Ä;ˆX_¤¾H�2Ɇ^˜c·�EŠBm–?aHÎsy@z(U !i@|ËË�¨—�-ã¦\q·y ¡è âHºà.îÇÔÔ¯0–~ìÀH¯uåã�I³p‘.V.Vjè>ÍRr�ãyÌóø`ìÁØ6Úç?‹B*¢ñÍ‹?ù‡ò@y�/¬(¬X  /©¼w¾S�GîÒ�µQÖ–ÿ¶Ê+ºÙN®ÏqõtõpX;b�uºwä}~ÝŽ�OSRXúÂåNi0T€�6Áñ3�%³øxeŠëb"J��œ#{¦‡öoh\V§¬NENfâúëíï·ãªÖ·,®�7;%GîµkEú3ù3Ý�„¼8Q¸pÆB§mJŽñà"`¯Œ½$D£8]õŠ„±¢Ë�¼û•âAABäŽ ø»Zfö%Æ9¹M¸Ï&«Q]ÕØXùáúô šÑ8ºQ%îMÕ›*¿$¿¤ôT«A,D¬ßøóš›p$:$:«U6h´¤wírí²ËÄ´1ü¼Ï–R~寢…mÂVɰwçÑTµ}ÀQf)3IeH™J¢L ¢HÆŒ !2œHDÆ2ÏS!™§2�ŽL™‹ÔíN¦"dÈ�ùq­}ŸuÖÙ總k=k½Ïý>¯ýùï»Îï¿ïYg�ëÚûÚ S=ï¶=‹µß¾™ ‘A¥±Ÿob.cõí¯éæ·üIG^çõ!ö‹ ^»]„6ªÜõèþ*mŠY×É ÑQ$¿ßwn›ý¾aÓÕ—&*ÝêdÌ.}Õ?ëwêzÐÖ\}H.#Ü)±%%´>ÚȪbÙF!l¶}Œ Wùù´žiËlAäßÑWZÒ§chf‘º½¸\¯€Î|6x/S‚‰ÁˆÁHh]é¦h9ë(nº"2@aºµ:$eò±öÙ¥£MöMöIJ�¤�ö�XHG«HÊ´" Ú <™õÃ¥^�‹gÉjþ)VèÔS ý‰K|áÍ»¼Â‰ßm�íåd‹ò—R³tiɶǧvs±�`:Ìq£� .>4>´õHë‘>½òJW 4mØlÎuùÀ©d©d݉|¨õPë÷Ç–è–èO×Ç™à�*4¸ýË㼷Ѹ�ŽòÄ=÷�:¼5WÃáøÎÛи­Ì²ô±Ë¦¤` ¶ZŠ>zàJœßÝŒ™‰¯Ø8õ3­¥¥¯+@ØGbe´€~·w¸ì÷½Úäh·«ajmµ)61Æ?‚¦Ô†²É·q6“ò‚ˆ‡$»›W"p�r�J±†Ì†èü®ü몳KÿŠ2¥ Çn³ªwp¹/ ‰Ûׯo@ž�4ûÓçÑb .âã<ûª;ˆ_�Ø91ÙÛ6WÔ”4€÷oÇ�² ÙƒìIÑ8˜àgm]BQBa¨.\¡Q[Ãf@å~ ®� �€Û+w2wÒûdƒ]ƒ�ï]/¼SʲŽ_8ïe°çŽÙúø-“ìÔ©�­¹TÃD18ÅÃÃÁh�J5o…³¶]%Â&E¿Ø $ó9zH4ÆæÖu¸pøá¤ L†ô³£9M*âòbÀH ~µ)‡‰,�,�üz`&„ÚS"O:Ca Wlñ¤7!»dø¡E·Ü–JHU¤ºîçCÏ<Ã}ýy ,0|˜ˆK™8pJóWÍ$dm�ãFƒ‹ý!\Hº<¬Wb#n2e½{ö§ßäæï‡�¯í·ÇYí¦Ð¨ÐØ‹÷6�ã¸[Gn¡FP#HÏR:¦" …W±ÉÒ Â±#Øy“¼©¼©ç¹‘�Èd¤QªS&dP§X»·V"÷øJõl»ñþfm>|ëû4»Ù?+˱>¹’÷pàˆÆndM%ö%µ֙Ĉº’„"rºùlAƒ”ïÔZ½)v³VV×`I]ã™›Þçmü®ÿBäË#‘ß:Eñ í¶ø½/»‹Žé~¬ \$RúŸf.)Ú,S…ºŒlcòíμ4ô±JC‚ðÿ-Ö—âlê'K8ïJ$®ó¾§Ûo(6˜1˜ñ²ÒÈÑ=È”qÂÿÄŽbF å–ÍåpÑÓO‡µopC" ³Ol Uã"iζ"TÍô*Õ›m|šl–DY$$òo®Ð¢W"ˆD€GZöƒâv¸2’2ääÂUž4&L�‡­küŽœòšòšºÏú¹õs× >%Jsì‡wŠá%K�çpŒ �åÍKÂR·vêTØÖ¡»oÜ#réd4æzä�Í5�œalŸçcâAæ¯á™Øšj€+Õ=-àróšU6‰?.:Ô¬�åâê?0�g>ÏlÈ`ƒ‰ ÍPÅ@võ pQß}bÃÂÎ`~zˆ7A,AŒ2Â’‘u‹+�¬8\mAIšÊ•¹ÅêZ\nYi‡ ­žAæžZÖÑòrØâ"î'¥¼©&ÙRéà¬n’�JòX¶ô Þöž“­T�ž=ž„°øB 7C9CÉPÂP"å�ºeIéÄvô„…5)5雌(·(7Ñ“ºâºâDMCžðõi…ð4'Dè¯ã"!®5/‹vZŸÞ{B˜YpäØ˜gÑè/¶½Þ<—IsXJZ©OÖŒ[,‡_uðzî)vÁ�z#¡H$ÛÄiž¿×ä™mÖ§½¨$†v—¹-£g„'»ã}Þá[s}Ú‘­pÝê´²hÂ×+I³hOgaã\~ XŸ§:¶áÇ…­¶ýô ¶ò”3�¿ø)íÞ¸Ã-\6+»™€¦ù¡`L ó óÁ�tl˜:ÉÑ$4QrtÎ0ªFj_ ¶J–É‘=÷K-ý-ý—à ªÆ�‘; tC¦¸Ï(Î �ÀE]*� ò°æu#ÛÓR.´Í¥·Œ‹»¤kÌhgr½¢a{áAkãñ�ªçÌ.ÛCRÓ �WŒWPÖ³?^Ï‚[�]�]^nŠà~DùpÛÉUŸ2899j]æ%楣¼? ò ,²Á;%a4Z9 )ãîü]/ÉzÇgD#¶æ µ˜á˜¼“ö¡i¬Åpë<³Ì †§:‘ üö%\.úSû36Áá E@™š¥àH%Ù‰æZÓš€K:Õ¨ /ûFßXßø‰j÷¦Ìy4Ý›(óÖÜ*@^Ôç>Hg×ï%½Lü É3É3"ä#ˆ†¶û'Hºn: ^.D XYO�á¢Ø ¨W�£T€°Žþ*u~›‰ËãŽï{ŒÒÿÐjçç!P’4ÖyÚݹ=‡�ÝKÝBÝB~Fú�‘paÂ>ôNöN®³|Hk†¸0`Ó¶ –ƒ;/jDêÞkÄNëÓðßd÷°)]ÍX�‹-ÂßUšÊ2œæ¸rçv³ÿž¬h•DØïÜà„È@é2‚�´œæáæ]w$·†» O]š² ¯ñ~ªÕæ¿›ýó3gCÕõÉJ:Çštý¦ë‡Vï³Y{¾þ¶!+kLP¨’ä«i¥Ô¶›ý÷d�#ß8„?°èÓΣ–OKÌ¿vÞ®‡žÃ@žC`Bë³G�aZˆói¶¶ý»ÙnöOËæL}¿ø¡%~�BAŠx„º¿qà]rìÀkMîÕ kþ—ú¯:\&•”w³Ýl»ÌÌš7à]Bácå|Uçæ‹ WDtùÌc :øšô«ôrÞ”W^ÛÍþof…³ÃxkÝ/UxíIéYç*»=Ë‘8C–¶d9Û€(7ÑSÊ®–1v?°›ífÿnË)&Ÿþ.k¹ ÕjMíJ¢Gý&“»tÒÆÉùùý숋ª/ê^ìí¨ìÞÍþYÙé{#×ñåi¦òuâ^]FJ3®dê'áÛÿð~ÙµûIúŽdR]ŸÄÃv³ÿ\v&™rBDAwí»`:½¢L݇jR‚ˆ�ç„“îmÂ,+i·›ýïdúªÓùW¯e‡­ÅdM�]L·¢^ùfxÕ­Xç;^â[R®k1.I n5»Y�@e³…[�ÞÈóá"ÿ�Å|Ùþ;�ŽÁ×î�=}¿½t0zIuÑ)ïäNk÷Q[s&¹ßká´l&³ÑŒ Ù$Õ Ôž˜Ìcûð´èpèéri<ŽMž¾^èi}ä|–~‰–'J4‚KJ1!À×îÉŠ©’²’²™S½Sôi´[](™œ¢€Š>áAÈhó¢äØã;¶A¶A¤ü yH3{º $…ùO `¢è°¯AâÒÈ Ð$FÈ©BêÕ âŠçGq^›íùœÊš—ÞgÑn #‰ÞÜ ÎOÚ˵½n9ßD�*�*+fÅÓÝ/á:: Z(•ò>¦ù2„í§“íW8µµ™S‰�Æ�Ʊ99#Š.^ðNµ?�_´xVnc—†'äE”µS§¢·æbš[�à Vɶ£eHªÉ;? LeãÄF…—ʰ”—d‡˜âzæÈ :/uŸ–¸¹g6m%µ3 —7g}»�%ûœhLididtcô=˜¦üЬ,Qd¼ d�Ó�†U�eª_ùB|ò¡¿BM/A–H!æŸÕF—”H`Ä Pœ²VÂåÄ�ÿ—rÿ»’G�§K.޶?\–“î;Qñ-]…»§@2´3s{\ÊD ››ƒø×›C½à"'"'RRtÌÖ4 wy°$^}7{qö"=Ҿݾ݌X¤N¤ŽÍ'tÕ©É¿îÑç»FJ.É3Oïq–Àtóôv�RºyÛ|þÀ_]�;UÊ$d“Fˆd0Ä“)0¨ÓFóш˜šÅ¢˜çn½IgJ#†?JÑoeñAˆ�~¶ü}BW*^DJ–}}¯,WOú\æðÞç™öω…MëÏú‰VÁ÷¢àÏNd Üj§ïOÌÖœŸ%Ï>¸E–R4'[Ÿ‡îâ½â#Áfú%�hµ+¡È,­ÀØ™DM3ûìÐòÖlÛqÉvÒKNyÚz`Zü¶øÍnªå&‚X4yz”ÔÁZ@mFHR2<Õ_ð»BÊ{Î{u×ÉQˆ%U¯!Ä©uïÊå€ÿäû®—ê`NöeXùmýŸý‹GŸá2¾Òt`-t±ˆ�ÃþVoÊüô*—•®h×öö$‹šÏäÍä=M ›½Ë ŽW,÷.÷^ØøÊÄP‘x‹- ÏŽnµjµªw¥/¾/>þ‘•Uñ‚5¼S’©óü7¹-λ0ç(ÓŽ~JÜ©S±[sû^ŠÂÙò| Dsîæ±3m!“‘溸xL~Á[&4a[iÿÄ' ÐãÓ% éP¢ZçÁ„«¸pÓ�gš‘¶aQþ˜>K–Žfäø�‰Jí–J[ãjàÉO…RÈÛ¢cÓ⽩¬©¬Ç mz�»JC<†%ç)”™ç@-) cƃK‹ðs/KÕqFÕcÍšeP.·F%;EUžtÅØ»¬÷êÄÆ?·bxÚ9ÎJ´å‡`{2*U¨Ê0½{ÑBÿÅÞ�‡C½öO„"„²Wä(Œõ K–,e²‹ÈØB(²d-²eß)•5k9‘}ODJ’Ê2ö5RÖò¸¯ï™ßß�?~ç9×yÎ3óúï}]Ÿÿ>×Ü3÷jÕÏŒ ÕÇn Óû8ì#i-i½2µÙ3¡4§6ôs¤—ámäÙ¤�w…ò�.].Ýߟß=ç´ bxÉÇ’£jÂ�& ÈÝ F¹ ãr˜xžÇõ©,¢¬Št{Gþ½—û~:<4Î’ yئFvýŒZz‰ô ÜšÆù€»aVaV Ç>Á‘ú�úŒ„Œ„ÜÎÕj�xÉVÇö(ù׫p u u©³$Ê$Ê¥o} } •X3èà{1Ó¦D¤Ó_p§b0>¼hZD¾Ý^LøXÞñ¼¹ŠÁ��¹S )´«]ïù5õû†;ÂØ^tì¨j´RHt[þã]˜½˜Ð^L‘-öbK^,tzù1q�V ÅÏqy»^OÚ¨[2#�«hd[Â8e�Ja’…í‰Ú<5ýb)'´Ôt[1ø¶?¹�à·Eà ÍÁ` JÞÏM¸i×Xçm´D6{Ð÷ /Bž/s3ÁŒËJhÔHå@0hØâ}FÀd¢eYc2d2„]²210˜€w(Ò£i1�Àmr]q\Ò«€©ÈnÿµSþèÚN ¿jM\" Î"Æu¦ù®wQér®Ž×<Úó,ekk©q¹ƒDƒDד'»ñ®ßµß5€*€Š¯´îU_$˜Ûa«œGžGÞê9MM›(KÞaÞábƒToxOí™Q¥@†¸K ::&El×SÉuÏòßQ±ûÞEaô¨<ºÈ°Ï\ ú26ï¥mÀçÀhÐ¥ê`¶ðÙ´àèË1" <ã[òž'Ú¯�‹ŸÅ`¯GÀ¶Ù ï o@βùf'Ïc0Ù¢Ýй4ìz#ãq“INþúå„©ÜÆçP $&â>Q8IDÙ …Ÿhç€àüAv\ìõû„u_!U^²ëþEå¸D9#CËø§ï®%Åv’þ`ÔoÑm@níêØ¸€Üq¹ã~þÝÇòáî ß~ˆzˆbbH¡o‹ƒðdcCÉg6™|3ùVTZVZÖEÌÎÖÎö€²úº§‚h žZ”�¡¹FX|õz²QÌ´ëvûæàߟ§7oþŠìæÕ¼”Ngdª Ù§FVÞ�[�ß:x7Zp¤3Ðrì�½MKûì€Úd>ûïÌF:*-ÓÄ}YÜÍy5Bedx#S{Øîåîën«!-²Géî¹Ó4<‡ÏþÙÙôÞ7U_Ò™I2N<3*W]D–Ž99,“¿@˜ié„Þu 4_ BþŠÏðÈ;O P­¾áØWÁ\+iWq=Ÿéâ”%Qg‰HÃ+¢ï“CÒL\EÃÎø Ÿý'²2¥2^FGúí�Š~z•kƒN‡Ê™º–¸e˜÷³\QV>´ÈÞ›ëFEk�ÏþÙ™µé‚‘Í›ÁW§'ù)$�QAMGNqµiLE‰3>åK–^xý�+ �ÏðÙk¦/+Èkc¬w'FÄJ’]|�P}kHÃXìXPe¿ Êj²–«DU I;ƒÏðÙ"›rc¿.Ž¹Ù°n¾0×d~è7%š£öývøìŸ“³Vºë,“«}™H§—$%k¥àN|n·¹G}jGì �aCm¶çªû»·›ÛMoô�ˆlƒ@£Áˆ·{X¨/fBh�í}g Å}¶çýíПØZ•9ííWÆ#ÀBäM=Œ´½Ù¤¸ík<¨¿¦&ÙlÁoÁ¯#]„v3’9Œ$?4®Ë«t€p&düèôýݾ�à³À0Äj?„ÚÀ&Bþ½›ÍL˜Ï§-‹p¹,”ÄûtðA\Œlƒýåõ¬q™x‹,t~¾ª=ÎpøV‹¢×tŸ�7ÝÖ’¤*úbbæ²Ö&pÂY²Y²ÍÌä'.v6˜Cì3±¥›µ£àžïz¾+¼ˆÀ�À�H µŒZ—�÷T鋦»¶Z;î´Ï:i©µ–m{wCêFÝŠ„\κÏM  R7çîÉ�ÝØâÖÂ3€[cãgWr ذí#�_ªÇŸé¡´_0ž]p˜ÅÅ©!d¸»n¸Y�u�uîû,åÍÚßcôŒ£y.o¥G!üñâÜÓO^_-¾Š¾è–¥ ’)Æéyo¯À‹æß(„I­¼�¸tß�ã cï õÂ¥ýŒÌ;Øq‰#U¥Þ«>÷ùƒ�+ÁÝ—”GÉØhkã^壟­ƒ­�š gµàtkuk%£$£BwŽø]ölL2ìípbŸÄ> v y yÍ && •ŒÀ×[ÍÏÔ¬&œT8^µÇ¥¢âÕvë­ð½OG”/‘ws|1ÈSéWøèdEÜuèç½jz3z±ÞFS™¨vš¿Þ*ºÅz+Y=Qà ½ÈkŒÇ¿’Io{çqÚF]òA A8“lVŒÇ)#³âï+±Ý`Aª·ú½ƒÈP`K_jèÌ>û/ˆ¾&. Jãõ\RW ¾í÷½å¿Yè`è ùµšC›]ÆXáGÿñ­�íµƒ|»©÷½¾|öN—O—ϳ�¦PH�|¼$¤ôtCZµ3`© 4 çàrUКñc.ï‚Ðô¼\èýj°—1�éo�µ%$9K$$]Ñ Bk [s>úsÔgÔ';Oã€g'\\y\9Û#¶G-¾ÜõGQ�VlŽ™Ã±;³;ïgs½íz›¼ž�‚�â ͵ƒðžò‘È?é�Ií"J7m£wÿÙv=uo£.’í[ ñÞ§�ÝE}¸’½½`{)ôt°ÒŠ8«X«Ž�ìuÐäÄ= èµÊ¨b,1#*qq36®bÏ~Ù¬µ¤µäÈTþÁ;—b]G[«~Pô”A|m*‚l‘çËÁÞôÜÓEaØh4dP#<mJ ¨¨Ó†âÒ8 ø“M s<‡ÐwÑ´²è'Nâr\òA¡Õ±§ êgn…U2ªŒ��´•¯Úš”']=}}œ©ó�Ž )m/moQNQŽmǼZd2›gñ9U8b~b~ñùÞÀÞ@i-ž{<÷ÚµxÀ{j_à %sxN%ªç;Q¯ßv=u£Î³7­ÎòÑ•�4áºí Ù)’‡±è\Yè§Ëö.>üð[,9Ó {Írà(KÅh¾ö�‹øÂÀEþǘº�u*»_³lqã›Úk o`í73zˆu`n ]âsU‰(‰¨º5HõÈ�ʈfÈÞ=L�ÑÆü�¢5à{Ä9\&i�δ«}”ïÔ>ÍŒC.¯qYš›ÙkeWªx”J$ݨ•8¡ûŠjÖûÂÕf™Ð‰Ð‰ô¦ç¿f—ל׼(¼(ì,Ñ“b¹Rx [½³B?+’yò®s«s«Fµ2µrdû¾~tO5ÿ~7;ƒŒn†üšæ¹I—§7�íõ·[Ç�ÉÿŸ{=ñÙß? @&|÷ô´.ˆ˜£lx49!{Nú­ž²Z˜"Ç«š�à÷ä³ã¥�áø ŸýU™w¡ ñEA¦€p§›9Säsyä»VO9�WJ*ÔÌ_xë¶*t�ø>ÃgUÂbœ'RÑýÆ»Iû©‚Ôobì?Ýè"îŠw_yyßäYg8â3E>Ãgÿ­™Gâ£^NmM{ÒÝ·KPn†á�Yè9ÌI˘sœ‹ß*Ñ´<]ž ëú³³lö{ÃÅñÀ@z‰:G"éè}1gªP¿ÓáŸÏ˜]O±é=¬gš¬pGÐ*#n®2éSÌ“âaBp#´ã±áÁíæÀáç‰?q½cw¾y÷‡u¿­Ûé®ò×7õÓç?™Ùû¬¦ïØoòïçÀ·˜?i6á]ö!Ÿ#Þ–BqkÛ÷�nÔÑpSºÁ­…æ`Xû—+Çpç·eN`›m‹Ÿb¾I÷ÖÐÐbs½Ì+M¦Þ�áÆE q™ ŠÝÚÝ7X”ftô6[wÅXìC;ñzý@�„32“&qb_ó“�OÒ9¹D¬¥�¢I0£�VuHjÄ¥¸Ì1¨åtUGÈ� ¹ÖÅâf\vÄÕK0Ä#2†éÅNfži°øÐÝdb±µ˜%§ÓqYqYrÙšqCp~‚~‚ oÛ͵bE <±-1*ÏÀ±)²)¢NjEiE-×U<¨x ?3R ï)±póªiWù§ßË>2ÐÏÔEo×S�6ê$)ráÂ?‹b”½¦¿ùà�Ku?6)!ÛÃÿ¢Òâé‹9±ñ-§Î ܳ�œ{³ÓjÆà"Bž§ ÜíHäÝŒG—G7:¥çÄfú1•=haÇ< �¯ZC‹�z­uëŽ/v~FFá÷!Ò^ÉZâçÆ$74èÍË b`wu,./vngÈ>°Ÿ‡$ú¤í 0*Æ¥E=ƲË[lºÙ9¸JÛ}®Ë�Ö"QÿûÖÞ7z½WW,¬?¦ö|ÇŽëŽë>w-šÍÖÒ±†í„Ç’8œg©g©¨n¦k¦«ïlbQbQ²dË:¼§´¼Ö½”€Œ½Ò�Eéåî¾]OelÔù¶‘À­:ï¶Ç¸\îGÞAJÁ÷rg `Wäjx§Ï¥9³&0³Cî ë S€�dl¹Ž ç bv …Ù¹™ÀM�›µž�i7ë Ã@ 9øK˜š3¥Ú�¥úN3Zª!!N!N„» Bš•”ñe•/G‹ ø¿q/µ'¬GßïáξÒ(7¬æðD^Y>•¿#>AŸñ§©>ûßËžN„iþ§äk†ŒUµ[Kk:k8¼�öqT •,°Ú[Ô¿©¾�Ÿá³¿[ÖrïC�§YÛçß\fšwa��GsÑ1ÈgF΋Æ>ìö´P슶äåÇgÿì,åøªCÎÀè½dDG£†ŠV õLß·}j<_DÔÃοÍS_-X V4ÎsÂgÿ{Ùõ BOæ§.ÍËÅ9Öý‹½;�¦²í÷ŽD›Gì&$:ó™ è´ìâ6C"4ŸÔgÇ­ ´�qo„¶óD‚Txà÷ xÝÛ¹c¥øê p,µ±V[Q@Öjˆº»[4Sáìéþ”þ”W‘„*„¾ù45d×U¦ÓXGl€Þ5ÀÎ]æ1ü.À¹>ÿqyHO7_Ÿç`81úÉæÕœ¾Öô1U׊óì” ZÕóM7wkˆV‹ƒœƒ<ò|ÆTx.\ŸDŸG9Gy]ÇñÊ×z�7j„ŠÙâýáXDYD©h‘ÕÈê€Óà¦Hýø§CðN)!‹„ãT³›ýhg2{¤r·êÔÓ�9�þ%3¸*�oö‰‚¯eÊÜ9U„"”¿kĤ­ eÊŠjFä�Æ–¡ûΟÄ\ŒûåبØ7àk l ¬{Og…OZ§ã*÷ó}æÀ‹òþpÈ=û¶åè<GŒ#æ‰Ä,’P‘6±c§šÀ²WôFVTk‰QnÄœöÂ{ts¹ô!îªã¡Ÿ8‰~±äŠÏ,Å•~^>tÓ*�Ï÷šž‡Ì/¾Íѽ Lkhjhš²áW€kmM<œxø¶J­_Bä/kBK”ôÆpÎíÎíüãã¯O1L1œ”o‚ït|i�HuSƯ®»(9ÓÍšoµÓ�ßK.ÿÆ1¨&ˆl@ãëÕ›&²+Kžkâñ!†‘¢s ãü/NZ‘þó�j“�Ž2²"ügÃíûEÏîúÅtÏnÕõL°Ï£»—âÄG‰#€©å¿áÁÏLhÐxj¨øbäŒ`-÷$¤7³ t–xÖ�‘ù:8¥ÁÛ? Ù [_l©“eñqÆrƾvðoÆóÎ$;ÖKŸ+$] å)æJÈWvÅ7˜RL)梀 9¿§‚R`݃ÕÀЯ?­î�“mÈþZ¸K)¼ñjÊ®e–š˜9áÒliõëm _®í¨z§ÛŒ”eø¶9 FÊÆïŒß»MÐw=àІhC½u½uM�Átƒ�Ddc¨‰�ˆ�Ø_&É#É3ê¯T«TóÖÎ̃wÊ�"€â!Í”Ÿê]ƒrî>æ­:•µ1ìÐ@Wé[˜Ž“øÑ+}Þ+4Ц‘PöŽ¡€wš¼ŒD[C��ÎY¦z`aµ¹h$ÕŒÀ!Ëœ;IÌ7[5 *T;““ÜŠ¶>'¾ˆ.œ¬Ì§m€R{1YÈS©)®Ïçë~ÖýôI‡8{AäÂEBô÷<|Šõzp)N“ÿWˆ¡H€¡ñ†Þ¾�T‰Œ¹I©w«Ä¤WD|1™8ó—³FÖ¢ ™ÍáªUX¼¹:ª7œ?‚~ñÇJúÁÉVÊV.,оäZ;~ ¢ÂGH´ÍHÎuÒuÍw�þ:ý Q;3;33 '3¼SëeŸ^!Ÿ(Ï?èqç4›×ãߪSÙsM‰cüp—Z•psíŠæ­”Òé:GèÃÄWA@P Ùù®ÃNèпi ¹£H@…ªîÄù•6@ÌBçíY`>ŽßŸ—‘—ÑEEŠL|–i8†±ìˆg&›±/ øÝ—óøÏ¡Éííw k{ ’=V½²buÓ<·€î˜f41;‚�ñ®þó �¯ VŽúZ#s°h.uß.5潬-2�ž1ãeÑéC›û˜A]øóÔÏS<“ÆØ[ÚqÀÏY'¦ceá›ñ%â}��L[Ó~8MqMqƒÝlêlê>‘`?Mç²üßwP3ý×çZí\Ÿ1Xÿó@šO82µÕNþ7™2°3ëDÛÞ¥°5)yÇì”e>ÄŠËv¶�ýÈ<ÖÎ|bÅTNí‹L>¬…*©OA^{QñC²òx§ƒéü#Ô eÏgÛÙß+k ä’¡/%5Ú9ìd«ª[�ݹ·*:©9¸¦q‡­«ÃtÆ­uÙ»Þ+_·³ÿ�l¨Sy\ ?9µCÔL�Ô:W²=;™ÂgÜÓÏìÈcf!«Rj†ƒsUŸ¨ç·³íl³LF³ø[s«ÉG%ÛñõT ëÌaó„òg±g#uö¿»L½ú«Œ–G‹m8ÃK�’Pbß‚ ©&í.aOHòl ŠP.&�/¦áÈ�t'&Ðøž8pÈ•&_IFIF•ä0¾¥qÁU,ßÁs&õÀ„%dÞmÕÄ`œ¥_'R'²»rMRpŸÂewû+7ð©L´T$†]( ëizBƒnµTÔìúJŒlÿŠIâúõ‘¬ïkö´y[ åŠ(7w#Y�;+-+�²^è” 7œp�pM[K[K镊àî$ˆÞB£¬bá2äΟWt¾3Üm§à1�;³�ýûdË%æ�fÊs ïŒèª_B…½;e£YÚÅ/j/ô#i¯ôÔG:;bŽ lgÿyÙ%+'6tV”ð>ÝØÆY}ñ=,U5.…̈63ça¥¯ý§œ†è±\Çíl;û¿Ìö°IÒ^ÎTÀt½,iw{=jáAßZ”`»²+àsú© -�Q¨¸v†íì_˼cúE]mš—…s™ó'x¡Ÿ†ÀÏrÜ÷š-Ws˜ï,qCº4U{lu–“»17£—Ç\¸Ú‰ó}¶¶d�lMßÙ‡�bà­½€–Ü•nöTQBô)¶ «õP°þf¥ ‡4ÝÕ‹˜Â¹³¼ÀÉD7>²%²¥Ë’ðýˆÁ™ù+ýÌu~`çýŸ¼iùƒë+hÏ$ÿ$ÿ"GÈ…W�a²Ÿ9VÕ}-X½"€@9`ójL�ä@øD3Fø+dØýaÜ#ªo”ÄTê½×©àIþ£®/†gñ%Ã.Æ+ÂGönNé¹õÃÞäÞää%ò;ìpuu4Y4Y£ýߪ²!”„éR›ÁÉ£äQ‡oxSySý~ÑÖæ©°¼­$Yá›ã.EÉöÈ÷6[Þ£�·17LC ·8ɘŠI“R–“XÑ©:L(Sw¥ð½xR Lƒ:›�õãq`æ)¿(€|áŽÓõ͹ˆE¡ÁWÀÚÎgÕøÆçÆçÎÔºwáÓ2ÁÑ1ÅòmÑ|F=ü oZâî¨}ˆ5™=5{êV=„zBº~Ô2?†Æ:G¨Ý¢]'¿YF¼¾ ©ZßzG±PœÏÈC£‹…—äMu‹(Ì8¹ŸÄ©®lÝî˜4‘4A]¢`ž7pqàbéíÒÛ Å”ÍOe ý*„”üáB¦C¦WUÊIÊIœw×f×f3&Ý€wªÊË iëéêëÍ£Ñjm¬«±U§ò7æ”ÖÁÕ¿ÏõÁ‰Ò`•ÙùÅ3‡Øç˜HmÝ¥ý¤Z± Ú(þÉ$�'�XÅY*í²#¦m@5(³ÌsÁ‡æAóH¿QªÂwàŸ –‚Æ]EÀ¤ý"˜Íú¬ß)�ÃÙÂÙâ«d‡ä'ƒ4d·ÇT–=à"LŒR ‰é@y1Twj!�å{ª×ϰsMøA0Ý1þ›ÓÅ’:“y$K:ª®is*öó§ö6ìíeÔ„£H£H;‚>‚æ=ÉspÇ'Hè¡ÌH. ¸�3Ò“®-\›7w4wÔ¿§ ßÙåk¡®Pòqšó�Ô�azà»ÕÎ.KøÜ1Ê£¯£©",ŽZù²¶¶žzµÿ–C†M*ÂÂët�§›smœ}t»‚I Žh®#ËK²ÿ±³Æíì„¡�ݱMvv�L¢÷¢Ì,(ìË C‹oÕuðmØŽ9Ãíü¶ò Gk1ìmq›j£ðkBK̃ ç{mhé‰Z„&j«Ï:�œ�Ýc®Ã8O4¥cç}Ç(süÚŠoÕmÕ­Mgä->£6œ�ßX–ý—Š€’¾ø+�÷_¾Sß28�Šõˆõè,…`ož¢(œÿ qH{9�Õ7$$“údW‰™º„�Fð®€äX’Ùñš¼j%¦è8âƒZ0/_ë›;Ùn]ôõû¿3ßÜò‡d“D•D•ì�‡á‘pþÑþÑ(c”±ß»4Vºzˆw<¡Œ\¹>¸E²E26J]Jݶ÷”JDå‚2¼Sb|í⟹ì2{'Ä"oÕ©WsëÞþpŸ~®àÐä¥Î¶¢ 8t )×1–g ÎpNvQ t†ÖÌX\�öþÁÞ�GCÙÿ ·$K–,�]$[ŠT¨H%û2¶�}ÉÒm/²”l!…¤dŒ±…Ñ-kÈÖ�d+ŠPRöÉ’"c)Æút�ëžgîYúyžó{žîî߯ÿÞç|ÿûœë×÷;ß«Ç2kŽjNg)_Ê¿ùzÒ¢ðe»g»'Ã_4ãSTÀÑóÀÊènÐ{Wò‚.^ð¹=Âè´Üo€'¼µ¿aú£1 ±OʰÄèõ N¤ÃR6²ûeÕì Îg�‰;‹¤\CBÑð䟾پ´ ·âq_žúŠþ±Û¬g<Îôi§Ò…ÒjÖj¦\¤\¤™yú$¼Ô?Iì´«©>!EKEKÚ$+«®jd&2S£äÑ'ìLÝâgê„ÕpŸ¾í¾Ö¹Õ¦Ô“ŠÒ›íÙ>?¥³hÿÄ–ðÔÎéaRöKèó‚zQÌN£8ݳmÉÕ§©9˜òì�¿% –ämó"·¿¯U;…¹ùç>Ð×m-ÏÂKÕ Ñ^(‰tŸ¥cû#„ƒ~×¹ðIt`v|´ ¹ýœ¦ÇþÕG�.1RrÊ¡µ!tȳ=÷&ìUƒ¿Šz~Ÿ†Z2¼ÊkËÀÌG=r#·¿³-žwUænN|ç3vǤÌmêÉK’™ÁÛÔ�”«o’'‚Û^4NÅQ¼9ÇLnÿ9ÍðJ~,(yžvïÀ^±(þÇXÝ‘Š³·0¦‹0LnéÇ æ�“?¾ 7rûY­ &i~„!Ëmo,ùübfþB€À<ÂkºEèËêòrÖ“WuƹXr#·B«Ë­N�{.qã"%/S.Úø5·,#;;tI®¸¶sEš!G¢åärâG*ømr#·ŸÕîÅ@O-72-L»Ý÷6“ug^QÝÁ¨¬»Ûêâb²¢7ãv¿¡<ÙÃÜÝäFn@³Ìì@ò$i¡µ†-hZ3n”«°Þ©ð¹=Ç—Yñµ’c;"eè'7rûi-'Ô:¤ÞY›q¯³"µ‘OÜ‚² �bdfãEõPZQ3wìóýTóqºÜúäösZ5•—É�„i6–‰ˆøQE¾RcÊÈb. s£ªÆFížÉ‚¡m‹<Ñ6ÓäöŸÝ.å§E”Éíí6êè,|dÚ~2à2Õ¯ô}ˆÿiË2>~Åô³’îÊûá¢Æ­<¥wÂ=Î=>û0Ž Ôy³£G»º_Wm¶ÇY|ëÖƒ»„ô¦›¯àxº';sטaÛE,𦯠€+ö$URÿþ0bsjo¤ËŒ�O”Åœô¦´^RZ’.0~÷üÃ_zKzK‰ˆc>L1ΕkXµNÏoh¹Ü zÄ�n%• )WNWÎ  å“ fì�påÙÚXº‡\;Î7v]#e¥�¦;˜Ä*,sϽ\{m7)¨¡¢£7*•:^¿"züá)TMLÙ�U1œ½ÀÀŸÂ'užj+!Q.Q®ö“í'ûX£èüæ@JMÄ`ò°@B6‘6‘!{ ç¡ç-”ûçúç˜&×ógÊv}Cïš·Hì`ÇnkÅÏí›ÍTÅ÷u¥”l‚„¸—„›p:à•–¾n1-¬Ûˆ}�«äøïñ—~XO¬rÆù) þyÁe€š·ÎÆ{_RÂw©v¸8¥2ñISJS¶i¨<Æ.�£ ‡µÚ{ܰ +â©nÀKî¸úÁttl÷�  “#H�u`«Õ GPÞm¥O % Т:8f.b.ýâômêM)Ȭ'z¾¼_â›*KØ’‰zvÀz¼ÈíÇ®uª�͔̈́¥k¼™EʰȰèHèHP;ì}¶N´LI gÚJȢ̢,‚B Qæû&öM‹ŠÚ}+tÔÿ€YÆÞåƒvô�Mü¾3Mè•Þ $Nx§ÿC£³ú³¼4Þ¸�’¿VÅ?Bì£ÍùGuî{€Ï#_qøc©}H9B±o+`eáƒ+>à„†3&9 _ƒ•–B&5@›¤]zÇ\º²Kív¼jˆjHö-Ð �ßL�3¡Œx‡…”´ÕÎ]–` M xµ‹%¼Ã¾õ¨÷Êý~PÉ'Íá¶*JRR®=X+ÈBG=T6<ûáò'?X­gú�ål$±ÆkÅkÉ£ >·¢ £ ;'yN²G†ß<äÈè%1…»ã[=µ~j­ Á¬Î¬¾²6;1;aÅ�O8Sï²'ËÎ3Ôó£Î)è–°#7›©jà悔ÝÝ¿6‚“^Ìøæ¥úÈr— 1ÿcš�€k'L´ 7'±>*Í·ãaÀs¡Æ=8‘Ì*_HmoùP-²¿ô ôÌçÊ:n|eù8¾¦X¥Ëy�zÛw »W­ôéîs¥ }úäA :^*±ýF £8Áˆed `>Xó¶æ#E7ð�C]%JÄw€H+i|#SýDv¼vBibÃ+_µ]œmþ¬Çuä�=í:#gm=7yòmA!m]mÝ É É›µU62ë $]b…/é„­ßX¿‘�1ƒ˜­&:':WȲ3`gJüÏû'Ôšvn´¢^”yŠA°Ùì,áóóïú��-4qëŠÌw#Їjý[×ÕÆFÅóÃU/Þ08êHf�ªg™Î24"7rûwÅ5÷Dzóg®ˆÅÒȆÅuûîÈW+i1U õ«�Ó‹á-K»1ÕOnäö³š�€õí0‹~~Á�!Õ™±)ž�¼™ãÈ”ÞSqO2läD³&³M{ _‘Û¯Õ¾°Æ ¯�ëBÄg÷ OÃ*bôרã.òŽIna¥™gQçPj¦ñÉê ·_«YJ VNG� ÂðÁa̳MɰR¤Tëç£b«®J‰è·CÒÊ[{¡Â7É�ÜþÝöþ«ƒ� ÄÏDéÖò%EøA5å—ålâ4ÜÔ¿Ù•d{FY°gwÖQfé�¹ýjm•£öáA†¦mzï*£˜[®C•Øzôµ¦WåòºÑ’ñÒO Æì„™~¥Æ÷ÉÊørá¢UäÀØ… í]ú‹7Mšß½X?|¢¤ÚsÜ0Ù�çV‚yÇfï^_'Ð÷þ7BcÇy8u¯f¶sŠ=Š›¥&æÓÆh¼’�I²>E,î`úº… àAü 'ŽË•jYR¾`Fy/c�²á3°1°)Å ƒñùJã˜Ú`±J­l=”Ú Zz˜{íKf»8»8E8(ö*ˆëhc/ˆ­Ä|+o°Zx{oJÊ À»›Ún4”Äâðng�u-){ h¬Z]ÊÙ¾ÿ·VÌïáí±O›ò_üa$Ôœ…µ„µµ¿Qˆ*E•¢––t"kh"AåmIJÙÒ5 e|Êøt…¢%´%”5q÷«Ý¯¥ˆöØ”º8é'”rŠ_O¬õPÆÖn6S|_çΨ)BÈŽ…ZçJEW)º£ä^0±Õ8…€ƒ¬e7�šë,Ä’èƒf8ÔõigH‘Ø þJ½`†ŠÏ©Í©Í¼‹â>ºFÍÿ¦ ·GPãÝé Jó½Âu•ÚU€*@­'ƒ"þ4MŸ_¢Í lÇrí0ôŠ}ý—HùÊ ˆtä(R‰–õ”uTÿ>IʈxÏó£+GhÕôU÷B_ç¼qiŒÍ®#ü÷_”ºï»‘,ž,>UaS„B]E]írërÓ(êeæƒ�&%ˆ�Ã<›!dÖgÖçXI«L«ü‚3Ú0Ú�»� N8S*÷£Z½j¦�7l𢠣Úl¦j¾¯3x@KhÉDÓÃû4‹Î¥Ù$Œ›X ý¥g€%á¸Þ¦Êb-Ü~ªOZ™€cB58£í¤8FGr&ž0áËÑÌÑL„àë;†óQ+>* аob »3{¬g‘ÒžÒ>§déB£†€n9c�_÷ZTl§ :EŠ1@ˆ9WµDT3c‡‰aH©K4|_Ÿ#gæ,,Óº?Œ‰�#!âuù£›U ?l®`®�vBÄ*b+¡Ò¾Ò>ÍBÍBóå‡g=•@œ$ˆ8 : éØêØî cÊdÊ c“e“e¦}½“p�-gÝ6íw ³\-7Ý�Ùl�m1P@Šöï鉀�:t†£^ð…ØÞN¿Ê^Gžu¿A3ÕC³BT]²‡t–îk [ëèÿõÛ‘ì±Ý¼¤OÑpužmÏWö‰˜¬Íf½öû:}1ÍHB‚ú Å8¾�F-jscý”AÄ"_:Ư³Ç·Øë†&¼‡{rÑ÷ÕpN1vl�"­�>ð¼h™ƒÏÅËÅë|°;=¾‹¼8'˜°úÙ®Òšöµ%€àÞ¿ <¡8¶K2Z2zÈ4wÔ"Çi *TQ÷ÇÚ; é ¤@øH¹n XkWiÖŒ¹Ý®àÑcr¡#Åìè2k\«J·ÆŠþ«CšvAÕ®é¬þ˜À�tÿ4ÿ4¿vìJZýBZ Z D.ˆZÄר‚.O³=ŠÔ!4ž0žÀÁŸh�hàÁ�ôCúÉHU•ÎÔPZx7r‚¾ô’²Åt÷’Ûf3U÷}³²X,¡}KvÅ£[ÙCê,Æëj£„–^ ôßNì8½Ÿ€S’¯ WóPG #lM ê·ÌR€£|g>*"ËûX4>ØmKA¬fÓ.y@hvXȬaÌ–q̦£¤£¤ËDm :"Å�í:0ñKÀ°SpD�ó5)Š€cw¶¥Ûñ�*mÕšR¼gà¤|dõ0 E_Îû=jk™¹0ß¼I¥ã�U° 8Û§Ú§† Óbd¼[t·H 2íkŠA_“ƒÍŸ'´ ² 2î«ã«3h¦£#pé@/v¦ÊþÜc}®Ï9xÑéê¿ý™EKðÈf{l„ÏO.Q{ºê¾¼ ¥¯5Ù[afGo¾!7rûÿhB‚š¹Ú¯´ ËGÐ2Œ¨æµñ±%g!u+¯b­4“5;ü“ó˜9Éí×o.BÃ…«ÆÁ3ë�õCY�ˆSM‡?n¹‘+káª.ÉwïYÜË3)íø›&äFnÿ›&†êø‚¶\£ÍO¯T¸Ç¦/3ưƒ·«ë�<>Ñ …\×èç÷܃5É�Üþ Íá0åtðÊÜ^‡s�ú}‡ãB^ú‰�‰dÖ*—£%ºý®ßÔj¤ß #7rûÕÚ{»^ Çä]�†E§ ûÇ:Ùòi{u[¯_¸i/ç‘ú‰ö.E$[–Zp+¹‘Û¯ÖX:çÚÆòâ…&xŠ“¨vÛœãsX·ïy«ZÉ:m&No�M ܈þ¿nBîÕ{÷Å”µß£¦Jç¹e«vŒ=”ð=”}ZYªÃ4 WbG¶ÆnöèÉ÷ug˜ÂÆ±Í â8…°\³‹˜9VKŒuð6nVn‘6ÙL,3yÒ€¸RØHßî�Ó–½=‘”PI=-Àñ€gôøhúiúƒî·à3>‰c"�Å]ª/XN: *í²÷Ì{š¢ý_ìÝy4UýþpD†„Hd*SÒ#c%9È”!”1Cæ™gi0d¬ d’y’)D ÇT„Le¼¾¿}Ïï\û�ßZw­ß}î½Îk�Þë|þ{Ÿi÷Þ_ii‘¬ï�H[Èù{ R�^2ö €{+Юd¤‹MjÐtØSªc’õûCö–BB6lŠ"ÞÉÞ“zêT>GOMaÞ[™Åﺳ¦#§oÕߪïŒÕêÖ ‡ãðçðªªÑÓyRßµ²ÀdÏœ}.†/†¯Ð€ÕŠÕJÃŽ±…±ÅèS×)x§”Í%¨î2�×ñ«ñ5�U³îÖ©Ê­¹p?º'pÑú“7Њ5n(Zªºy}Á”ëzT@´°tò¬“`ºi²™ÈHã¿6 �ÐØŸ®Icsût€€;¹øÛvï8Þq|šñæÚŽMÍZ EÿÍIà�\ÇDdªO÷Öòð€e˜e˜”8äë;È·.ÈÏ[âe(ç�y Oc›ã�@À©p²·ó�ú±äMÑlÊ…?8¹¥-ïËýp4Þ‰ð1ãl’ë ôÎ 1•33W zÙ&âÃÅúÇú‹ä‰ä‘¿¾@Ó‰¢ÁÄOœ:×&Þ&.D@¼I¼¹_ŕؕ8xœÚÞ©®Š·XŽNFŒù�ïÖ©ª­¹R�Gmpºã-hT5fºŸR7mîaêÛ—u0ׯþÃÝpqÓjŸ 3�Ý D4]HD ‰®ãæ`Ãc¬L„*xl·¡º¡ªß¤9¿�FÚs=�ä±0àZ§‘„ÞW·‡ÇÚýe6c6ãõ5È©8 _ -¤¨÷-Ê‘ Š Xz3‚Í¢@#d6N<ñ ·rií©¯Æ÷Èâ‰Ö>C—Ç÷ñˆ  •béMÜY”›¨h h yXý“cp´4´43Ȥ… ]!.äº &…‰^8××—…ƒ O~'Š$ŠT¡ø_ï³#‘\»ýÓÂ._xqº»yÇû£Öû"6ãÕÓéJÐã|û‘¶Z;?ÓX{:�9'«×–\lHż7|ôJ»ŸÓêádÓöSâOŸýùzŸÐë}‚øY ~~¦t—R—L±¸kíÖõê­9š8OãÛAh•Vz:‚¬xZ˜ˆ„RÀþ¼9‹™h-LòMY¦€ 5‘<ÐR°î�Ö¨Å�ÍFJ„pmdÍq;RRZA ýíØ©Ð¦ÜQš T³�ûíA�Ä” ùƒR¯ž"� U1�3V�Òë:ë#ïF ”C€àϪl†Íyjàú¹cMH.ë|^‚+ 6Ò­—Y¨’zÚïjœ‰Oͽ¦Þ¼3®òÚìŸÙ?çøê”LMÂ1�0�ðËóËjâ{m˜ I%Ádø,L޵‰µ)g¨>£>ç ”´”Ôî6¾<¼Sç-«øÄéØÞ<ñ¹bµ±¹[§j¶ær�ðžÁyæzó¡õgýÒ(:ïº:…éÇ]‹T ûžñ�€i[L¼ñ€C.Ï2`jH>ж™RâŠÍx“>€#_S¶Ý[Ý·º­ëyÛ=ÎDs’DñG^MFN Bü*•“å˜ÚÅÚÅô!Ž7!å< q¾öå(‰*£tîS56x‚À†òþœL"HÓÀåy‡Þ§Øøø™QJ¬=Õ!î©$É=ÍÔ㉤S´Ü™¯1ËÈ Ì L9#RÇŽ€’€²JºJú§]ÂÕ‚KLÈÎŒ}p[Ÿ'!wŠŠXö÷G÷G+ "½Q�ºIuŠÑ'ê’½sr…g^G“únë}ðÏÏ3¿ÞR³ ,Öò={)µ‡—ùFDÖ?“MzUQS±�î¼N±2úžô—Ù;_õc^�T3Ýάr½µ�gLX—Û÷²½ dxò¬„fc©•ÄÆyZµÂȵ�ž¨³8“®Ï(G2äÞÐ;…ìeÿ}™Õ=·59F!7¶rJ†C¬mñÇ«%Boç·Þ`|û�`“²<Ík@mYu/û×e +—KS¨eƒg•gšÉ:'qÙL¹®Åؾ:±R>÷Έ¼Q“W×Ú‰j/ûke™Ö§V²<™Õû½H^Û¿®ìZ?*¶¿Ýö"�»´vî±GCdÍW[üI÷²¿VVUgIYáû*µ×ߨyÀÁV䳟ÈO­‚غw6¸‘’: 8´{*ƒ—ö+þ_3÷dMÆé|mÚc2ïÜx¨ŽD+ Àÿ·ô_}WTu1™0�8õ\`Ënÿ[j·æâoK¼†{<ìv MsyL0ÏE¡V)Ó€P·+ HB¤IH©�ÉÛ·]ˆÔ¾� ¤d÷+£¥j •aãs?b 0â= ƒ#Šc÷Ädb;†Y´Â ”…<‚À/vÝ÷�Ã×ÊkÄ_pd*J)Jå¹Bð§!잎�¸MÂ~ l?¢aà‰M=ð1ˆÅt@RÎÆ;ž2c��Tú˜ª=QÐæú½¾R þ>¯¶DIü�å´„ßÕŠÑŠa.ÈVg¿j¿ºB½B��w~Ý•¢M„ÉÙ=Ž®)¦)æúÛÐÁÐÁÌÜß+¯ô”ˆb�w*\SD2�ë@ÀãÏ|¬xø$»uªnkî|Þ ¸¤Áxä�4.C¬—ÍìÄP å4Ê…ò¥/oÀĽÀî ˆ>B|‡UÐjƒÚ°¹L,öðÛd³ÛÎ@À@ÀxÎ0u»Òh~Í(ÞrÕTÀç£ì�2Ñùpkî¼0ánáîîGd?¤¨P¾ Šp›@M¤-«¯¦°±Ô4Fe�ò_!ygqnÎ�[0Ǧ]AÊø½–8s²á߬d¹ 7bY7ÍogŠ•éé넽�:p¶J¶Józózv®™”u1�·æ˜¨�·Àq|äøxU×:Ï:¯©ßi„¬wç‚Kd—�Hq± ›?!zÁ³"©`·c‰ø'…é�¾£óÇðÅËâ)ŽË +5/4b–JšqßÒ]ÅÇ&Z£lxöqõ±oüܾ×äo;KÌWò#·�|˜ÖÉå;�úd×{)Õƒ}?Ñ�ãˆÆYEKúr,Qyøbªd&&S^¶hÀª+p¹ã©Š¦—nŠ@Þ¸˜"�ê%¸‰v;h‚çùǤÀ}ü6³íŠtŠtÒ=z·‹ES«@IËûN4[¸)ÐõüÚŸ•Y3ŽGŽ$AîUCÄ)÷!á?óYPNíˆè�£QÓ6Ø´˜YIöTrÑ‚ÀGH\lòf)ž›l.½¨Î¹ïxþIØÜ !Y��ºuJ§I§ÑŽy/­÷ .�6�–í Û¾äåÁE½ &¯z®R¸%�%�N³ßf¿ÑjqJrJÞ¼= ï”_T!Ãò³°•¢ò°Ñà¬B»uªak®O®c.[ÎÄ-K�?(1E´Á„Ó'›|} #Ž#Dý™¾¦!î±óYi >pÒ �v8Úõ®7$ö¾¸¹�l³l³©´¼õv�ÿ�JUÎq`!­Œ2L!AÝYñõ{ë÷V¯yHQ+ä�ß:¤(Â7eÌH”ðKZ°éWx9Y<�¼ *¹lZ¢±ùêÓE·P•ÝAxÍçøSeé‹uÚÝÚ/vVXBvŠ©”©T:½ý…%ÜÔèÔ¨½š½¾Šæ;Ô†Ôkï1šž…[ÝXÝx…~2„)„)Ć޳c\ã„Ôê]r�ªýh˜ªxË{Õ}·N5nÍyÑÎZÂkç шD¼²ŒÊ2'“/bJ{…‹*®$_ºê°ø“.£x@ÇÙ8Ü(y(ƒÖwX›+³R gÜb~;óC懥Ƿ{3‹føÊwãUB ¢…I B÷払Sè~_CYCYÉaH-)DÝu'OÁZÇN™ èwàL©U:6 ‡ê À#÷îCL_•8Ô��,%1]žo€TÁ©2i~ïYü1D çÅ�-ýâHÊdÍd5{fÀôâ%‚u0ê`Œ³ºý HO¦•×u¼pãxãx¾FkÇ׎ÏÈSS{<˜~�ê”5Ô©‹æ¾Ãö¹K8O�ºÓ9ܶ»Ÿ†'{‡OkkD«K6 �+7§¹üà|õc/ûÏÉ V‰„ y<Š|é$B þðq³³v»¯/Z"¼…§/OÛDTø\k ÜËþú™›¾êúT)µs(UªnÃ�õ<†U§cÖ>9c¿"¥.Eáå+'<аRlÝËþs2¼»�Ë#\-z5³(eRžgNªœ¿Ó}„]O†ýÌ·k}òôSBÝø�µ’ïe{Ù_-ûaò`œâëµs⤲„HÊ�úÁæу9\«iÖ§‘î5_ÄÛܧh¯ìe{ÙN™©5OPs|þÝ+¹zªn�’u "Ú¼¦Ï£õhâÛðxêtß:êd–•”ªìeÿžYþÜÎZG’Ûß÷%w¯s›Ï±?Ÿ%IY¶œ«³-¹©£˜QŽ0ò>G±—íeÿl}\L&µ9ýWÞK«µ« Ï}j6�z_JØ8µ°@Îf+©šX%7˜ˆßVÚ±—ýµ2~äu\ªé,­˜lùj £?“‡ x8«8%è:“H´÷-ž ßËþuÙoO«“OŠÈj¯� ¤‘CT}v,ç&Æ‹ìÑ“ü!œà°Ðx"<”^êâ�½ìÿ'ÓU�±•ÉΑ±“2á�Lµ:<²2¦¯äU¨5Žó¼–˜S%Ê=¡Î«âÌ^Vq¦´Ñ«[7R¸±”«?;pË�c=è�àj•íÌ,QFoËÞÛ»îË×´5Ç9ñö!\O‚˜Ú™f2o“ß®LcLÜD®e ½\0QEÚt¹DÄ@[§¬šØ’Í#l¦ã.¬œ†…Û]нÛ:a-¼a šL ÷ƒ�RvþäCŒó�Î[”¼t¼tÝ�ãb�eÈGÕ§R(^²7�­>˜Ž�ÐK€(ùÑØÑ6ˆµ•±Rì÷b l,®ÏõUâ×¥ò}˜î½)´þî‡3MÙ��¥f, Þ`¾ÁL¬mÉK÷<åyJmíþ©gŽ\A�ýV˜Rn½�€S Q éøø>ð½A——Ò~º £S�Ëë6œ�Ê?—},~îÖ©æ­¹´y¡d¸\· F´”Ī™@²ݘðl €Β—¥ßl1.(ÚBê©yȽ’ó°KÒºŽ–žÁ;ƒMúQ7$P°17³�œÂ\ýýtÜíN¢­×¡œ©éöe¿ !\WŠ\�×�׺¨!?Ì!ÏY“@ 2|fQ²¿÷†€vRú*lœ¾íeê9‘a®›.§k¼t°Ñx-gam R¼(ºŸV©0¨a­�“ñO˜}:§))+)+£MΙ 7¹4¹T\^\þ!‡®Ì ƒIÊIÓκܺÜ8ýÄЉ!+îZçZgå•€ÿ=GcêïçhDDðª¸È½pÄGÏd“§N)˜[ƒ×S ®‘Þz–"â3ˆ#EÒhbIdiÔ?åfV�œžÃ=KºÀÕb@mB…Ç #m�µ²è:{Œ~o3ø~B ‹oðð_,þÒyEº†8Á„÷‡}¡°I�àCQ‚·ðµ(øµég ø 9_‡‘Þà4ô¤kƒ¿œ‰Ù)6ç½õÚ‹¸ŸÄíöþiÙš“ÌzÅ×6š@ŒÆRr€,¶�ß"x Ž5Ëÿ<Äro2-o˜bRóîvØÓik[V+<´‚ÕF7lzô4f€BŠÊ•íŒ%Œ%¾è(Qm÷º�ùJú©ÀžÚ¦ òÇ}ªûÃùš¥*¥*&Ðé-d7?G 1¸"–ƒ2x¦¡™’7°�–¡‡šFbð/C¾L¦½N;!–„ Ï OñÄÔ‰«Ëé-&þÆÞ�‡C¹÷·g—­L8ÊžädÉ^¶dÉž�”-!YR IZd‹ˆ8‰ÈÒÈZȾ²N#M‹-{¥dkùùvŸ¹æ™{Æã�ßóœë9çr¿þ{_×ç¿·ó½¿÷÷ž`·»­á¼*EÓTb”?™^FO,�{º¶Æxï06•¤Ð&UÝÂKíû …é„éx<µÒ&$pOU'Ð)J ¨{Àw B�}«v»Y'м’¼2"ò{¤Äb›#¤�ã¶ ŽÄ;Àʘ(¢O#e“À-ÿø<ƒ3Ä¡v†r½1)s:®"™¹±;~¦E;þ¡üT\äÆõìµù ûÞrpupu÷´Yt„›™±x`ñ HöÊ1 Òú†ØÒôó3p§GO�Xhõ±ò±Ê*N: ß‹™:-«’ŠrôÛŒ°Ý¾p´�q½½˜ðïò®§-Õ?O�‚³ õs‹§iÖdQü­’]dÕM.šIÈ¥}®[¿SÚ‹)»Æ^ÌqñUíÏV¶|üYv‘>ëuý9ØËŽÉÓ‚ÓbI À›þ­®:e¹¾ ÑŒ˜ÆÄÐ'r«Aâ1ê1彦ÀÅ×A4fn¹/$"*‡”l3#à°öNBƒ%ƒ%Cˆr¡s“xÜ+æ=\€}ñ‰¾�£W{ôÄóÑ{%ÏIž{Ö éÓ€|5¿Rz~ñŽŠ+`h °uV““ÂüëòéÝÉú¸bÎ5ARˆ;%ƒ�ÀbX­P�>’ì�é%vŸGÉwä¯Å‹¬Í§¤$݃Ƀ©_Þ)qš .ðYà³~·~· WG© ß^Sé¹'§‚PAPÅŠbE¹Ož4œp‹‡w*æe–©loØ)CŠ&4eü¹õ:Õµ:·ëËB&ܬšêÞ[Å¡MãɨˆŒ7Ä¢¹Fm�(—˜ì7Ek<ÖB œM’+z¶‰¤àq�”‘Ææ|Ü¥'Mè~Òý¤Ó�þ¼„”ñö}Ãqöq÷ÿ%»ôOûc¾£gSYœYœC iÇ ™Gf¶@bƒRÙqDJ�ˆ`¢“¾†';@>S^ÖaâSN-{ÀéR)¯°÷Øò(XeLè«_þ]EZÈ(-Ë·¶.ŸQl¶,s¿´›f0œn nà…Ü ¹57ã¯j@Ò͉õ]5Q„“”dN¶ÃØa†Õtuƒ¹4vâ:ÊuêÛÐ�xöÊ¢sW’e¨âgή·oþùù¿ôΛ¿" 9——Òãã|÷¶i‡ªÄ»ë†¨¾S�MNÂéa¦‘¥[ô¿;çodÏl¬«ÊI;U1ˆ×Ïáš—„a„ªªDìÝþ臬/:ji =†Í飛G?mdÿìl†©×©úc:ϦÊ¥Ö2z ÎeãÞÞäKŒ­âö†6f1§XB�¥7²� d_¼ºšÔ$7¯ô ³VòÔí;Yyå·£øÁãT=�e;©¾N�¨p‹ŽúldÙ#+×)—ØæÅÕx˜Bû’EÕ·!o¾ îþÅ]ªÜ”œ¼¾ºº| ‚ƒ‘›9<6²vvâí×ޡ΃ S{˜•œãB›ŠÙtNÇ)n+Ù£�¬ò¥;C,N|#ÛÈþ®™¥º”„«­Et¼¬Ë>AEz™†öðÆñ„ñЪ·gĆ]¦êÄëIÖ9sÌndÙ#›F ^9p„§Åº~®à¡ÝÜÈv‘ÿôùvÙ?'=¡㣚“pø4•Ùঔìåüè~øÚnE±¶ãW�NÙ{Û}'Jë1ë­ív¯Î9tæhÁ%r5Ïàù×|mí¹Æ ÎOì�ÅC ±0DO÷¢þSb…�i+—K%°Ì`Nƒg�©“"¥8œ'¹5úVœ_¡PÍPÍW)µ„”#ðÊFp¦Ýº·Æ‘Ï©!e[͇¨Du“t“†ù!ýõ߃1¢Ûoeí8’€º_ü›ØIùX¼fÍ6Q€üh8<¸ó³)á�VÅO%µÂ£}5öÜ,Hʹ=«\·6‰¢1 Ž�;y¨—!pÞ<Þ<ˆD(¶‹Ï1 "'@löVVœÇ�B¶VVšr¯s^ç <¬„wÊ8èß óæzšßöôÕÕ[¯S=«sŸ¹åWàÎ’³ÞÄS—]±“c{x4£ŽXö ÍË@†fO�H€'±¶2, Î¤Ì øÉ‹½Æ+¶Mp&…kÙlv£B$üNèÊ�+7£¼( iFàewâ|ˆ •ºx��òÐvÁñSÖUtUt¾E�%;ȓӜ�–>DŽ�ª› í Åj+à$øîæë.ù~ž[¾^ûI¹ÝyGKýxï@J¶ŽX¬}65†g¥ãÞÚ¼.nc),-,íT`¸¶‰NnLn,_+_‹þpPå‚=Dä'1kš›"píÕíÕLäÊäʉ OçŸÎ·lÉ„wªÅÈ@1à RÈÿî>2ylì�õ:Õ»:çšõF.ð6îoýªØMî®1ò1™ØlëoH@�"v*‡#C¬ñ¤3xqI;`e`ÐÅcEEk’’í~ú ÐQpº†Ðö²íeœ.~ „^áÅïÁ1²ævZ\�ŽC,�ݶ?»õè‰A»A{øäøwHÜÄïGON�€EÌ�‹†¤P4˜ÔÓêÂU�mŒ´3»?gˆ�b]€� ›”|¥kå·œå©S×½ây½Úfm.»:â¸*¹*yX}´kŒá}}—M—M¥Øž|d[�Hß!æ)ž|.†#†#„‹!Œ!,Vl®õ‹º ¿‡ï`Tû“Æ:QMS®šþLeeçz÷ðáûét=_´—wè­æ+oš~¾÷j¸ì¹›ÌŽªÆ=gÿ÷÷ðå׸‡ÿ3hIêá¼a`r %óXYy½®÷­ÎfJà„‹r·3Á³`çãøš¥z4ˆØ¢­w7 ‘“~œKåBì]˜Á#`AF_8¯¶ÿ>Þ IÏ*RÒKßm" ˜ �:äâíJHÁÏ<‡ûLkÀ¨.[ 1ìl4Û¯žÞMmMmÝ3 ¹” )�&ÿóÊ¥è\ÁÙ’ ´ ì–Ç’"upû#)f7d"|ÂÂ×xÜ—Þ"#'ŸGòg>½Î`ÎqTk×sÇúµÝUÊm‹ºuÁõÑĬ�\ßrß2z =åº)ýÅÏÃ�e-b\òôp‹ÈE¤ õ�‚;õ5NN.“£ðNÍÅxF±.û;NÉÊK�[¯Sý«sGÏŒÀ)›Á‹M0™‘MϼaGÌŒÞ9(E/Sm¯á$fokwˆ´rþåË!þçxÂÕ¥¤¸Ë Û3—<© ¨ \Û©'CÈ%/„ gÇ­Û×'º7©Ú}ç‹�Ÿòý ú!:áQØÖ÷’n0‰ƒF €åð¸))�”€)'k¸“$º…Á-Qß"Š”�BÌY¹�«Ùt/Ùv»}ôàÑ?ó(PmqmÂ¥Y÷V¯¨YNKÿB8©Y©Ù÷ãïÇ…NñT�}€ ²»¸µ\NhõjG‰¡Äò“åRäRº{»Vp�jùólv„ªùƒŽì-Ÿ¦Î”„ØzX®wþùùÿ9×s#ûßÏ‚�¿ž?"ÿæ'–ÆÌ©Iõ#*}ºúQÚÂ�µáa˜àQÚÊS&Ê®ÝØÈ6²¿* ,°£q—â¾á’;­Äø)�‘zå ÷±:w ÌöJ=úÒ‡ü!s…¦s#ÛÈþª,œ×6O¶ÁÝï*zÊcË])¶Þx�ìÕ·24ý·ý–Ÿ¥Ù]gè¹!þš9n#ÛÈþ®™RæàÎÃVÆì´t‘�‡‘Ö7P¼\´åÁ<¹>E}:ìm%KŸF¢úÿÓYŽà½ÝßÅïlzç";ƒ*Øå^5 ! ÿm$�äuñ¨±õQþW{í<×ûm„^�ã�þ*—†Øýoù¥=EˆË¥-ɶÄdëËïúUÝ"ûY’b‰µ,I}Š‚z¿1R[ñø™åýHé‘ýF ü>ëmIȦ̦L+H‰—ÒïœNánÞ<À 'ñèÙ“wÞ¾þü‘�#ï6Cl!†÷§ ‚ Gøp¸è€!àæ€&)dŽÚ&{ÉLRÏåÒæQ–ÊAÊÈyƒÙ€½#� [uõU…�ÐížÍú/vûeúÈÎÉÎõñ¼IdS‚›�íðéða¤¿ìkî9¸“XâOa¸/·¿ÜžsN«O«×pýãÈGl­rxà�útùÙ»ÌSnІüQã‚uëuêÅêÜ­² \«SÜ7¼Âó_Í]ÅüÝ%Ú‰�îeö _>BØ„ ú»`“Ó&c{%o^+¼ûzª^¤<üi_ Ì1W½!$J&J†mÌzCцG9Œ“šøë¢“{ ÁTŒ ¿öcyÖz¼õ8W¤k âÏî!)§h{‰c³`¢¶öçí#%‘¸\±­Æ0‚ô{²w˜Ï€”㥎5yU»žõ°¸‰°a ɼï³sXÛ•Ðd²|²üãý™Ý¬á P¨Q­Q-Ú¹iˆñbÚº|›áZ Z ¤BÀej/¤2u¹¾^yhêbÑî»MÁW#ºPÖ¿­·^ ž+†ô ‰ù~j7[å7¤V¼XEwˆeúÖÞãâJ §Ý¿_¯”Zc½Rs ñ©q�P%MÂC9Ì0Óz]ǬΩ9\ʆËd¸ Žwî®%REïç{6rbˆ Ô}`It²ýŠo'1ËsÐØÉßk�ÜÞ°¼D­·—IÜd¿ 8ÁÆw“Òi¢ò©MÈ�<§–é”@g¡šÉú,P·éÐ S›|›|å%H¿D‰Qþ ä½çU*­x€šÀl^´ …ò ó üº.ÄyÞ¼`ªø˜)Q˜Ábi”þå…ÝÕ˜–{£|Kñ‹ieÊks,’k{!ôBÈhùÕíŠçp¬�¬�ñÝñÝ F´áˆ‹±¢ïå p�Å�Åœ‡b®Ä\QÎ{"ö¤ùnt3¼S_j3Cs¸ä~�ÚÓ7±^§Vç”;y¿ÁùyyoÇ;¹kœ†CD=TS›XpÅéE ÎD¼\ÔÊæ1¤­p"FÚ @Dï’Áã×˵'åãÑ—£€õ˜¤*!úú˜¶œÏ³„Š1x#þ8 ;®õ>�÷Ô AƉ=õÙƒ2ƒ2mU ìB�Ì�,�[oñGËÓE»Vš×z¤È Ÿìm�©�¼½CÅq}îÜ )Ò–g:N²hkàD{\E¿Tkþ¦¸Ä`´6I™±Ï Ï bëðŒ\ï|ï®i‡nH„v“ÑÓ›`w_xè·˜�ïŠO]‡ºXWP´ºëïþ¶1_þ¥¬ºñºqÄ’U:+œ¿¿e�e�]æ{ÍUˆ-#¾›"4àühühT,ÜÜR š„Î_kòN¨§ôÓŽHЏV+¥M9ŸŸTJÜl_““)Qoc¨—3) ÝÔ¥øÔ\/÷äoeÿóY¶ÏÈ˲£d¶úš¥<íü¹žõ¡ CšÎ¥ŠêŠ©È7‰IÆLk§œ·²^&àìçfB’¤¬øtÐ|ß“{Y]wmç—#qþ®j2EvôQRA/êz„·²­ìWËÓ;®úY6u ÈgÙýÅænžTw€�Q1çúœTBv›Ÿµê‡8[!äVö÷În\vÎëI¿%ðæ¹öq½Û´S=ßv™h ÎHj¡N·j--‡©šºmeÿ¼ìr°’xé܄˜ÂM×ZÃò�5›Ü6}……ÃJ±—¥N©¦Í)S ï*Ùʶ²_-¢uΗlCOJ»]R@ðÀ �y¸²¿¯yD|ŒÅpMìç¾ç™Ùç%àÏú(sŠD×j†«-¼�>ê¼›=ë^¯+2öa�Ûýås–0UZÅÞåŽû¨ðÕ‡ž™Ž×•ÕJIã3Ø'¯슱aü–fX±RUE ¬�‹^3',ẟ}?;ý.©%®sÆX�?aŒ)>¸X(:”A.½ 3®ë¼Ë¸¶&í9i‘WÔ¨€ì2­�ØCæä€w%õNBÄ3�³_!ÈO@J' G�´Û©ï)hx±ìÙ»6s±~Çìʪì"1ݧÅ�©Ë‰©ÅªÅµJêœÚ—¯‘¯Aï@ï0mðÝ·Ñ"?�O8Þ §.¬.ì•c;k;»º0I>IþÈüÑ ¼§ö©]NoÎþtr»�©ú9^§¹Ízªs½®óЪ Ü^}×CXÂz‹n )^;zíñ‘Õ¾ÈÎÚ*ÈO¼òÂwWþC8 ßÆ·¸0Åôa]•4!„Ýé(ÞKÅ•i�i�}_³W7+ØãÊPšPû¸ZÒ®AâŒ4Ïjwwë+€®…ì¸PvRäãN…z¸È¨»½M÷) ®¦$ð–äÕØoŽä~3„¬˜¸KcâB¨™ìÒ‚ïŠdÒc”ø,­Ó¨@ÑQ+Ä¿ßÓAn°§c_™îUñ¾’Sß�³zÔFïçf½Þµ^ÇÞæ?7/ÊU‚Ř”Aö“—#˜ Ÿ˜˜ÆKÀ—­ªœ;Æ+Ÿen< +]"”qÔŠbéº}Ë „œ¯– p&É™Ännu¾u�..KG¬.ŒÈؼd€,ºÿ™“óE6/Œ”‘_‹Z�Z R…DJ@†Wë_BXîUü%h£¬Qn‚„¨ ?I™E¯ƒÔxu„—Ú§RPX¬2½'|õ¸‹ý±l“Ý4z#v—u7v¢ÈA%[2[²Pû…Ö <ù)ù)r’r’åïšîîs†¸£ñ%¤)6Á-2/2ï6K#I#ÉP!s"s’³ž„÷Ôeáö¢ƒ‘«1Ž7'îl¸‰é©îõºC÷Ñbp¯DkȰx}sˆõf|Ôð�mU²8lw õz0ã³cMgs?’Rhl°ŠO?»IˆI¦§p€q) W+]+]Jbì0®ÏfX�2ïÇŽ¶ñvÊ�‘ –ÉZý¥ý¥ùz�߯BäÞ�…̧˜•‚ЀtÈ2!hKA"Ùé è¸Q ²b¼‡�ö7sÎzûêOk Çù½gI÷8 oL¿@æÑ™’3%‘¥÷eàVήœÕÍÓÍÌ•\𠇘à£`Jj…Ë)Ê):}´Ê°ÊÐþ1/1oÍ(Þ?¨ƒZŠGó9õt~wòdD)oø:¦§zÖë\¾Žÿ÷‡¼‹$V^€YñÓý ¼[úºŠøµç€½DT¥Iˆº>åßT�2)@òÄ#¬{l ÷ ™<Ü• (:ÁÅDÂDÒ(<‚+| ³¯âÐÍ"`Vøpo„¼ I_}|l0¬}_û¾â�®(È®¶¸�D §p§S%v%$–˜Óè�_@B¦nj0[ù©ÅB©%QhÇ“*¦5Æpæ‚/óóÆ’Ã]ÿú¿F¸róÍïšßu˜^÷d‘†‹ŽwôûQ:™i�.$>4rF N»R»’®ÅÃÇÃgá’x¾x~ ©4¦§èþü®¡ÅÖ½€.ÐêÐÖìKÌ™ÈÍötàk2YЇ<™7{ÂW¤åÎæ§/ò“/¹le[Ùÿ‡Ì7ùù|W7SüS®ÌϨ4.-duC:³WÑÓïRÏ}С5Ÿ¿…ÌÒPö-ØÊ~­¬%hÿ‘]�&ÛÏÙ¨êܬËÿ°·66µ)¤¾‘ÄÆÝi2'líˆìµ‹K[ÙÿN6ðAyT°3-³UÜBq¦Xê]~ÚöK£¾þ¼ôÂV�)i_YÖvSÎoe[ÙFÙͪ©¦³%›ÑµÌƒgrO¦  n tX^»Q.¯ÖPóh± F<ØÊþ³¬Ì&ŠÙñEx\T-ç'Ò �Ì^ß3þ03äS2ê äŽ*R=ܸÙsFïzÝhY‹ œ×A&#,™¢]‹(ï´”¡�øæXϹ…´ï?öâÅÇÔ ´‹F}ÂÄ æ°ú™zP„ØSVÍËì"·q]¹22t²Zõ –—+F ¢ä�KA« ¨¥í£ŠÚ­k¯kÿ¼òiR&ðçLÓ¼ öù«p]“ž„¡!àY 7ÍžˆññɧþJ¹„ J¥ ;õÐ19£Ò*À´®‡6ëÁžá�ª6‡–—SÞ½8(G4I4ÉdÂd&ÖàÂ{Ò‘‰�Öèt\›c›ã­%ðò�΄>Z�%¬=ï)u¯0c›¢ßF�Œšúš%]ݬ§úÖëz&MæàJt¯¼Ç:?Áš$˜A܇OÑ£õ  …²ÍScw•Ç÷åžÕK€(:œ 8vè”;VÕÂRB¬ƒººþ§¹J\¢�¢�ŸÑ.*¸(â°Vî` ¯•‚ÁG?ê© ¤"€Jˆþ«°VŠVŠû5ˆ 3¤ýkûAHÀàÇ&€(! Ô\t”�ààêñh«…zÈõrÙ•$NB®_@‡$ú„\‹]=á—lØ2Dl°1§£Å¿%G&GvwH½uz ÊÊ�ŒHFœ‰”1† ~àÓ¬Ò¾‡ˆCÄñÓ %�¤÷¢ïE7Ô;ËÀçÉ�bÇËõNZ!Å›og_sŸÝlž ?ŒŒ£»çÔ *Áeî`oºÏÎ`×m1ç(Íf1û7ÈiuL¢þý!„#°%rÂC¯>‚v1¶M€_²àòK�}Ûÿ%ð[“c“c¾dpø£#p~‚~‚=•=•»N5ÄÎAnÅâã^3�‚ã å Uã  A´ÎZÌZ ëÜïÁ{Š£@LÎ?ØÕëÒ`¹—lâLÖf=5°^w�*ñ\Ö�à—X$N´”Û „¥­ñ�Ý} H¥êQÊ ¾Â÷-Tf;ÐS+ë¨ È?ÃJHð`ñjv-®·Úoµ_×_xŽkÙ˰C°Õ 8¢B© é+¨¤c(4¦ª¢ªR;€Üw;øç¥,¯†ñž>ùÞyHˆÒGÀß*±úª)Äó«\Fß¾ZB¨ù* ׇ֥èÄäÖeïTùâÎÜæÚÆbÚºß ö¯£í¢Mr‡3ö6öŽc‰c‰l!VØv "Ç�¯s[ n\y\9Ž(¤>¤>íí¶Û~„O’ëÁ{jég?²Ñú|YVj×f=5¸^÷]z¥Î$ª™KãâÒAª\}&ÿ@|£$Ò €_RÑ-�wDøodJ’�)ÉžŸXæ¢D; Ù±x{DZ—Þ˜ÞØñùÌ{¸ž}Á²GaôùôwõtÆ�%b7m¾çœ41Ñ1Ѳ¡�Q$dàôþW>Ë"z w2`1P·“¨#dí#Bý=rCFðž×lñvB økÚc½x]Ôr¢í,áW«°6ïuŠÚ)z°ÏvÜv|œžsŒcŽ-Š-J T ô�y"ýÀˆ– >��<ípƞƞÒ)¹¹‰rtŽtŽ1ì ´˜žò¦þóûâ ú–“$óÂUá³·c=6›'Ã×ä_鬿Z6˜rƒ¦ÿÝþX)›/LìýQš�§3š…Nô‘k#®{¤œ‰<“Ž<6³•ý½3“ûõ%쇽Ÿ´Çy_éW³�—fl0iSõGšl?o-W–ãÿªõ"ºx+ûµ²®®^"ËX§6±<³Ö&þÇNŽŒ²òCµk!Üe¤ÍžÉ4O…rD ·²_+A¥îßNŒ.±Ö¤æ³ïä—öž<-›µß˜»d^Y¢×9z°ÍVÞ{>¶xz+ûûd‹Õ'oM£‹�£‡t�»"ßH(Zk>þ( î ü=uïáß(»x?´ÞèÜÊþy™«˜µÕ96µ¼QFÝ›�3†’ {jë]ÊéÉßX8*Mt*’s«�ŸÝʶ²ÿËŒ!�MŠÚ-W>þciõ;�GWOyïj©H±YÚØw÷«¢}sNP 2ñíVöŸeo|Þ-înÝ´(,TL_2ÆsKíÞ¼ÆGj(ðéÖv\§:Á¼Ù,gh½Žêù2{¯+/–÷ Ã�ƒ¿•Lâ«ÈM–Ì#&P[ŠãS0y™ ÔM¾4ÊíZ±ªnTk²ï²²à“;¨Ž+/!/�m/w3®�*XEá¤ñ±ÀƒzwQqŸ-ë´ZiÑi…$›�_ƒ\çÎ@cˆÄ¿=’Ò�‘‚žѺ·Mœ!*í wmXz a‰w¡N�WQlU‹8U¡Yuu|n›_ËÆ–¨Þq«s«�ÓR¹ñŽs€s Y¡Y!'’§ðAäÉQê”ðÍ<šé-ŸšZ¼=¤,¤ln?ï1xO}E‘xFÌ<+¡ö•T'éFlÖSÃëuäžãSp‰¦MsXO$lvE¢moÇ‹áK pqòÅï *ú �&îsõYÀ0ÿc àÔ�ëÇŠÈpÙMˆµ;tÌSüš ®sç,né$DáZÃ"þëZÍ x(æB¶™Y…*X2GèGè{UC¦�!3ÈH¯�Š:Æ[àE90Àû(•�±Nàý¨LÞÚIòÞ)W+‰ï„,²;¡~ØM·$=§b›¹}˜¬W½Ú{c¾ÊbfâBâB—E_6ÜP�3e1eñïñï¹â<°‰0Æ÷ÃÉ"ŽêÕ«�C^‰^ÿÅÞ�S½ÿ·$’=)ËueÙ¹Je×¢Ž�«ˆKe_²Sd_Êá8„lÙ×’%[ö�Êš)kö%K¾>ó¹gÎ÷|Îñó›ùÎtû~çÌã¿çÌû/¯9Æy}|Þp£î©�©–«I±Ð�]LÐé1/Û ÞñFuÚh÷ývvY ó”<" Òç1tgèì”/ c 4v3ù�þ]5W;«†¸=êG=²×½TD ,èŠ þmg'ŒÚÙ ƒ;;¡=vv¢ã�8D¹ˆc'òÛ;ï7ë_wÏ¿… þqðŠu£³mu� 3ÓsšÖj€,QoÞDP4¦÷4z€…ã?«o¡˜$ó8bÓo¾ºÆ;i†�o—o�ìëèÂQ2]‘\3³àG¼á  ªè´E¡g£éΜΜ=i ÐÐÃHCrs-’±àæ;€ûEßDlܦ$§Dã$Æ@ì´ˆ·CÏ�<° ÿÜ#y€µÆn´hûè%ÑâóB‰�Wö6§Ú¤PZ^Z¾�Ì"ÞÈ URr­ðZáÑ�Ç7ÁFÍk~Ã4åi`ź̺ܖ.½"½bðÍ Ï ¯â¡]t¦¸÷\8ùh§Qs`ÿ’ϾwMìž+•R‚zÎÈŒ21`·*Èe× ïÂäS:\(ƒ¹óaéÕALŒC_šeaœõûr}(ÃÊŸ±9§1wЗEW�¨FL¶]¢DWÇ�bw‰ú�­Ó€îv*mÐů8“Î>¿„oŒoü÷€^2í�¡µÈÛ¾AzEp+lËQ¶bSëHíšuì4•r2Ò=n¡Ã&j„;‚×�OLßýLô�·.½ÅfÝ Ù½ ä�¦o¦oÎ}¢ÅZÌZ,*,*,œçÆÐ©b«ÇäÓ�Â{Œ÷X5ø‹Ú5Ê��/[Tžz�©oç§yä“tëÒíWBÌJ÷›©ÉÝs—Tb ¸$ÄQü•;ˆOõ®Î«›a2’¾2àú03ÔWÍÓŸ/m#óõ1¯=ZP¼?åÂfE²Ü ­™¥‡ŽÜžÜ^r΄N‡EK黯 €Çé; GóøŒ/®•–²/ƒ<¾�&ï Pæ#±´ظ¢ÇU}°QÄ×ÐÆ*�Y\•ªê>} ››2R!øªM±kCø‡Žn“zß³xpÅyoç\…Óî Þ,ÍyéU’_’?%>%N¥ó¶wª 4²Ži¨™; ʨѨñ™e{m{íBoZjZêaoµ2äL…1€3%­÷qHÅà$SËâV}¼ÌY�ývvÐßÉ¿Òó�ÿ�-²ö¯Û1)í°æœÎï¿«‡^5bn�-Ó ¤%Ïöº�(_�e)vÉ:lƒkÿ\+»íeáœ=-<ÔúðÆ”Œoè”– ý,Hh*‹‡ÊµOº‡rcKï�ÿݸ6YILMžø€×ºÉTö˜â ¬®T˜ô¿îtD©Nýƒ›yÝÅ%@˜$ÌÝgšÏ4ÕzJSèF:Pz�`OsKn9‹| ãyKÍž†}O--¤ÜAã àL¿:Ðçg&iHj€E@Ñ©Š0lØÊý�ÎUT‰ ?n†Î�šilR“½�zŒ~~±ÃÞÂár7?6?VooEÉf9k9kp•ïa™ŽPUÜUÜ�å�åê�·EÉrAL#5YP¾î¾î;c|M|Mˆ»îžîžV÷É•¡3u›Ÿ^×�_ky —¨¾½o:c¿™šÞ=÷¬¶Ljµße¥w$^ß<ø…IÄ8¦Kóº€ÿá~Æ0 Žl„jØ#,-Ñ;˜ád6ä°#¯z2¬è¶Ó¶ÓÔÈx„ѹ[¡ØV ÍFÓŒb*ÔA3 f�öÔrš¬š¬Zí 3ÐLî�# Å‹±AH—g•Ê­óØœ@ŠÛ-6é€ÒoÅÕ?ZE„a#ë•w¾¾ãë–~ãU­;ôTJ'ŠšÒöö•ž‘h“hS¥ªìÎ÷ ŠÈ�È}4p4PÇÍPcdý“–£a-;?;ÿ�j•&•¦6NCCÿ�{<ÐgÙœTb»4Öw‰Ž6¬äsÊí÷,›úÊ�ŒÚr»œL„Ÿ)·o¦þ¢­ÊBÄ…§d#„ò"2ßEßÛd8Á�Gß“öâKUnXùýûû'0ŸeÛëŽJ“c¡¦|?ت]X(…4ï7ë3»ç„›Çz "’ŠQZ…h2Ï™+ã¹`²¥ÌÑ|‚sL†ô1�bêÛé/$�רÃÉ{P‚E­*°Ñª| оþÝ3âgÄd‹Äè¨]QâÉ‘èŠËν”,Û¬L²åÏÐ76Ý›‘k%S¨k¨«CRÛXŠ$”S’SR66q�þZPu &—oÝ=PYüYü0¾ÊÂÊÂÞIgçt¸øt¦®Ð³ÄÉqÑq?«Hs56½»ßLÍîž;ã~xê}RRÊç»sƧ»í0­R×Ñò7 D“—d0 m�'ÚÒŸ\mt>£”²¹bƒ�)lSêÀÐ¥?H Öð�S4ÊÙoH÷SÒßÞ›'ƒ"iŒNà[ÕŸ3�3ýò$©:å°Ó ²Xm,GêoðéD?’²cs²à¡ê ·Pù¾®­?[¯Ô…MÕ‘Òè¤(WÒ3å’)³B-ëxì{[öp–îbíbýD—J=fÅ.Ë.ëièih.sA¹tã&îuª~(mm�ã gÚδe7x_ñ¾R7êÞ�œ)î¿ßÀ¬XÿûNˇѶbk.Øsaýýž;‚~~þSÿ�aÀ‹:¸©íxŠl”�àÇj�wÝQõü¥�¥mïHo]áM–+ùB9›¬¦Žk¸öŸ6<Ër±¥?‡¹‚‰Ä¼B»ïi:ÍV,lÔVôtª Ub|áõäÁLO8®áÚÏjöÌ— y‘^ÿËΈÂÜø ÃãÓ/©qmv3¡Õ‰úâœÉ“)Ú½j]¸ökµoÔÁlÛ_®Òq/ðå¤jD—©ÜÛ& uÈeç=@M´Dy�ö|‘}r'®ýZM—±© ç2ò� M±P]”Êß2}†kËü|Ô|߈€ìA–~[®áÚÚWnÚkÑ9i�Ûpu> Q”mAÃMDOhúWaŠuÀõ#)oÔªð“¯à®ýjm‹¶²@„´þ°òÀËŠÆ@:–ó4½*ˆJmZoñ¬7ó¼áµªã†’lä¿RcšÒÓ¼›»¦ç7J»�çüPR3±! 3_ÈGd« Ë�É�a´ø³ ÷3”™'HùƇÅí§ÇH@„ô\*V� Àí�™ [Eú!Бó’½H¦cò«€awlFW¦ûýA4*ºU2²º؈Ԭ—·Gò¿t3]£ûÚ;õšÇWéõâÞþ8^uðöÁÛ|&2ô&kPÖ¤Ö¤.(4¨§&®ƒô`ÒaÓÓ‚ ¨¨§¦ µÛéuíu’¿��)ËΜuÖÓ —§YiZú’ûÍÔüî9±­�ß¡¤,#Q*Í"bü‚gÍ·1 k¶‚¤:ܨç21]cÖi(êƒ/âÿAR~…n>`›´µBŒùºâ?Äê‹çÐQª¡P« iÛ¨7\ç²ø@ÂA$‹tË=FéGé“¥@+y éùØß@šË6Hs}Øo€Éº[—°qw4˜4Ù§”€²áéíCf񻯯 ´Ïyµ&­»J�Û𿥦8÷yº·ïÞ!–»ÎX>< ÅÉ©¾¤¾dr,ê¯ÌÓ zILa·ÎTCmm22Þ ¿N¦äµâµò¤DPºcKûaà {oæ>®»õBûè÷ývlk÷˜ù‰¥5¾º,[UÍ'ÞR¾Ÿ)Üßíô²ÿç: ¢ 'zÄD¯¬§_œo©:õïØNï±ccÝ2b7²eÖJ íPQ;L»ï} »ç&Í¥¡| Ü)P¾Whuµ3Vò`ºOð1 Íu½IhÝ›“›Ö6àÜÁUk€J+ñ%”À”†)l‹æVòí¶èL”L”˜:tjѽBtFš<= ¸�óè<èØv‡Y@ã«Ú¼Ú¼Ö« Ï= ðîT!�Ó¬Ò"’ê6¼›7!¸ S€|õè×%e�èÛ\NÎ#Øh¥ÑLòâàýãËá2†I%Øg’:2·½i>sÎo{ÛöVäõ‚"{ÔŽõŽ5ù*ùêS¿¸›2È“Pé1(àó �*äiÈÓŽ‚A·A7»  èLDUk¬KÇ ê0oc7Øo¦wϹò�äBÝ�Ï @Y’HkØê0ÄcÃÔ÷QNPJj&áͬˆ‰g£! üV ði ¼ƒÒ™@ĉÍWN‚DÀ“3i2è¼aÞ°B«QSt\Qn" ¤Ç[º-Õ@ –õóm²F„Kç–Î%t‚�ïÁ‰ÒÂ#•d(©#9ê à€B�%l”B'{—ß’�â X©¹ž �c#K¤äEý!SÍh‡Y©8¾NvR¾ fʽ‡NoNoÆúÿ}Öcíï—g¿íV¤lÌ__ëÁ5\ûßhL§3•Û•s4 FçH¿Ön最_°bR0tÈSz~m¬”Ú=úI„×þüfË4’³¥ ûi¾C³M鈓­›$ ÊÖ¿©ÀCŸTÿ¨Å[—O9"ì®áÚ§q|m››7Ø>ü*áƒD…šÀ õÉÎÎ’ËYôìß%2oû[ ž‚)â®ý+4s1üYØ~f¿¹uµÚ'±GÞË-nß4Ù’?Ê|•äêr Sª&þM„k¸ö§µÁý\¥iQöU«–‰¦Åæ*©¢ÏyU�ÂLEìãŽÂ  H‘‡5â®ýi�¬c±Éc"+‚iªŠ./š€ÕØšÞ|Ç´·Oî½Ï¬.'±þúø³û^¿ƒÿ§“]ï™�w­I¨ØÂMäÏSú Ÿñ~ƒ%nÁyU>>X—:½ß9ÐÒî\ïaHºÿ_îHxßÕ�½‰r0®Ç¹T|ÏX´ú4©`âbNNlGÕ3n—”Í ]½Ó—ƒ�¢½(Z£Þ„ªž¬ž,ƒ®D [8ÒùÿüáâÛÄ´ôÐ=^ ÜN&,c—f—d™>m®·ƒžÛ@!“YæA™ø@ 6Õ!€ÍûUƒ±¤ �L—³‡A°ùZþC(îšÖ*¯Aí›S27+µ£† rïmÆf�­:¸:˜¯Ä=p†�Ô ©Çä�ÉÛ®t‹Ñ–cZÍŠÆG7xyðr™ÐV÷V7ÄÈ4×4·.Òõ+úNsÎä*²&F­¿t׎,[Ûo§–wçœz¥CÑ‘Û)F’ºæYP×·róý&~þ[f€ І¦Ì°Ë˜߇ Â%I–1Û±RH|w{±©jô@óf¼P5kþVANhŽ*®É«AÜY¨ì+�.>ºáaÒ8٫ܫ̙Zs�QÄ}ÔC€EÊÍÜ¿a•µF¼Ôïí!Ñl|nOÒWfŽ.Ðõ7^N3,ÅCvÜ<[&{sæ/Ivvö›´³ò@GåAåqŠÿ?K°×RHü&Î6ovtDñDñ’ÚJ±J±=¹P"(Q;¤Û }§~ÆÐÑ~<û‚�¼`¯ÏË‹e¿�úµ;÷0;û3:×Ý"$á/ÕÑç>¬^QãÀ§³9 hûðÚòîI«4LÆÉK€ù(€o„Æ ©gÙ ›\�¨I@…ÔÕüÜüÜ}BwT&kHuÙ­N#Æ5>¦‹ ’˜¤¢ˆÏÆ!Y�,ˆ©ï9Ȇ5<T©PÙŽp–À �Œþ6‰Mº €ÚÜ@q‡Ü§¨ñ’n|qž…¦ŸgmœÝòO'­¨?UâeÊô-lÞ›`Ϧg4o4ïw^Q&tú“ú“Œ„Œ„ÌvñvÅ îs˜²ÝÐÁ¢aÑÃNÎtÎtªÛFŠFŠ .;Äè÷}N$²[·×l�’Å~Íö4íù.ZÄ}üw‚væ1CÙ¡“xÓ‹™›5K?jÎ&1¾Îíw$“U·ÉÇ�œ¸Òáç¶I•fÕÁw1ú)Ñß¿ïÝã¾ï™.ü‹Ü½ä�Y*ãè<Cžýv}ewŽY*¾]ÿÌÐR»Æ¹|*Ú{Z ¾˜>�z9»V‚zÏÍZcz¬ »(БõÄßSWFZZÊ,Ćü¤, Õ=¾•ß”ßT"Ï‹g¨JW�~F"<~ø!pHCÏ´qk»Š�ÓïVÍxÍ8ÇH¾t£ð–è´ñ}„P€/À´cj›ŸS€Š˜fÕÌQ�û îtÄcB lŽ,˺s[¤ÎM?SîÊ�ëéqZÒ1`oæÑ­é™V™V9…ìÀ;ÈQM{O{O™8rëå+Kg#ÐL&ÊG.èBÏï">`xÀPóS‡I‡I8‘c>úN=·PuÎkѧíhOòùïĺûíÔêî\_}Y:nüX¤Æ+%’þ;mü˜‚Ûrô®ã©º&ÄK˜äεÐd"—¡åHÛŸÂY°)ÊÕþPl—¼ŠŠÖ�Öpzœ² Õíf¤ GÑéça€e¯XAì2©£cráÅkkã T�- 4Y�Œ0šÈ̈zÉÈa#úú?Eœ6%1úôç§àz)5+ôWõ1ï a™Œ¾3ŒÆðܤMÁ*iT$Ôº®“oL´“®[·þ¥Í ¡üÙãΤÔo[Ó%hÉ´Ú�k¸4‚åN¦ÃÖß2*ˆ-ÞêÕˆ�o…�ñnŽé³~µìî�§{¥T|Ò-×þÿ5iÊžp-%QO–2 úcLm ìUÒ·ßu3”ÎüMQ– ÒZÕÀµ^«ßè¼\’N­6¯ö³±Ò5…ÏbÅ­ç˜Ã±Q¶ÐjFÖ {FßÞ�×þ¬–mÏ·‘{o˜QûŒ¤þ½óûŠîí‡:¥гÊë¿a~4 iÒl ŵ?«UÖÞ¤(ÿ+'£?À¬iÈÅQü‹Ÿøš^þ³ÚVü¨ÞÔÎ|6ý¾Š°•CªÿÕæ•¦Ë0ûNÿ8ó¤B«'/%M¬êW(úç/™‚Õx;AC& ®u-lÐý>·¬íÎÐÈGw¦*á0’cóôpý{“årLKÔ;€·ñbJã.ÐbzÅ(Û `P,µ#i9>|„MP ]àÍMfaTlwÙîÂï}[Dëˆ9ˆP"} ðØ-dTU5<•ç\$3õyê³V2¨ÈDÐ*¢9§Œp­úÞ¦‰ Qu\ e”ë�ßêh[F‰ ÿvA=�Ÿ×³ §AÅó>Ë$&lç²BööLœú0ç9Îsuãm4] èÂ}Ã})ŽRýæúÙä=ÈÈi·¶,º��iÚ›�›�¦+>W|L^.k¢ïTÀ¸ÁÔc©@^˜l§)œFd¿�Zß�óêݾ‡.<åQ1Òà8w“#k¯ûYL¯*Á×ÄÑ<}rûÓ\e#¦¸ À-"g-Àš£`+Òêqx6SåY�зP…¹„¹­ Õ JÝ@OA0I~q��çU ºÚõ¾D¿óô¤Räªh}²'lÍõ<Ax¯Àƒaò©Øày–B߈ڵƒÿÀ£y;5›4aÕ¬™\ªñ Y'ŽèIÍ.¬Y~êÝÛ1ÿwZ$™$™lzïÌ£ûñúÇkZ9Z9 áBuÃ�Ŧ'iŠ�èà«ðUw% b âÆ~›8›8Ö²�ãè;õu»½š0ëêgú3]!-饇öÛ©�Ý9ÚEAtîš¾ ÝU £ÙRù‹*SE?+/@ODä�&³0 ¦¼Šž0@Û)ð w 2w ‰òÞ† ¹‚] à:™°*S]Sݯݶ¨ ‘ÈNpÐ�¡f‘ ä¨T;ØqË¥]SAg£@Ü9Ó ˆUOÂÛ‡€äE@OÄW~ln×EíS|‹@ÚŠ9ô¾r°±‹�Ý6³4¦¯êËÉu1Vy–Å8×Ô½·3$óY›Y›æIs¥Âê踅¹… é éO:�jfÝ ibj£;6ŒîädÞõDî‰ÜSÍ<<‰=Þ/ÐϧYáéŽ�—8Ä#.Ü/OÍßï|š�Sì$tœmò¯ü‰%f‹Ÿ_Jw]MÚ¨N¹· -jÂ/¥»žÃÏ�¨V3~RÅ<-Àó÷¿¿Th�óé{Óë–ž"ÙÉÓBÆL/÷ý�¼¹;güèÀ3tVo[Ü�HzO­‡${êbrO§ HËðÑ‹´ˆaJнvQB#ªûhŒÒ´us�ÆSšuSTššO2I¹Q©¸"!ÿ¥@éŽ"? Å)AT]ÊRäºÙF•L•Lx „86L�a4™Kr[#$@Í+€‘WØ‹î'ý DêFlüJ̈ ›*ÁÙÂIÉN†ä‰0óÑÏ3ätC‹Î{›!„²TU­;šº‘á£c÷a÷ÉÉYž \%°c*8jÛŠÎß_ª(/8/øÅçöáöaÉ#‘0ô�Z¸D@îû„åìq·^™}ŸŸ[»spX6: u^9¤;‹ÂfÊy¾LF¥G'ÌUq‡œ‹t1áù–hø–~kQ"…Ô!¾­UÕ!ö÷›«â¨”ß+¿'ï¼a�ê ’›/7gÁwÀý—ù† ˜\©Ñ�ß›&]é]éAù %U¨è^‹Â�@?�[àA„ õg@òÀ—ÏD ª<� Á A|ØtßcÅûutD¬È*�ó�N˜¿­…×qý¥1¬ý¸ßp¿!þrˆšÉ*:öeöå‡òåï9ó«3½bÆô¥,±=?=¿…˜3­3­×�#:GºµêD;eM î””Í__�߬à=7œuyÍã¸ßù4úóÓ;rVÿZ¬¶l£ØwµúÂL�E®œE\û÷iù›DbA¢÷%< “á¼­£b·†[w8ýHi†{‹Í^žu€—ë´„àÚŸßÕ¿OxË$íð-/“±8Êj$W* '¶•tâÚŸÕ\Ưã+PÎæÔ‹ËS®’f3«ö³ º8tÏ­PÝ-ÉÐ�Dºcà—d$®ýóšPtU§¸¢þÖwh�Ò¥Ê/®e<ÄQ}F²‹bI.;Á ‘'å¤îàÚÿM3Ôøé¨�÷ZnÌ^BÎ’M6ÃŽjlã›ÉUX�Þw¼Äb.õ¯¤ZX¹ ®• –4ØÂz ÆŸ�å‡ì¬¼1™ºådž~v¯LÇzA„D¤«aû�æªSIû�ÝoïΩ´¿¬@wÃŽT©£µnËMäÁ¶&˜•w SÅ>ð¦äX¦g³gG¾OdB�ŒH‘ÃL¡Ø¨à-]l§Ê¢â¬à¬èÓˆèCeL‹tƒ AZÌ¡pˆd“t;Oa6:OîüÆÝ�»Jf Ðø³¹1PV幄¥>@µ€½€à,6~v€UhðPèÍ©r§Zˆ<6.í ~Fß·äLM¶ÊBUÇÌHŽtéÈìm늓S!¤Ò&>pÂ]S[SyyOtg~Îhø» t#—¹ÐýüõóWí”É”ÉiÛ�”ÏpǸc”.1Þò̺Îa×OiÊÙf»ßNíìÎ-|{ƒŽ±û87Òù““ÔôôF1åRÌ3t½~;wK“¤˜¬/`óAÛ wS=IT³œÃŒj€¦š^ ª£›G7%øê+Q¹Ð"Ñ>F 4aÀÕ²^‚Þªß=;©›òEˆRˆRÖ´xd}ºE4쟌û`˜ Î_ÆæoìÝy8”mßp»0”¬Y³D¶BšîÈ’]e É.ûž­l%{–ÆRd+JJÖd�$IÙS1²¥”m$¥’Çy\÷¼óÎ5ãõÇû<÷ñÜ÷a>ÿ}óßwÆqÍyž¿³t/z,퀻<$ßS@W5TIŒ¤Ð¨ýÑÄ©žWy�jyŒ òVGíýæ×w,Ͷ¬¾¬~¤ î�ÜO¸|Ï|Ï•o+ßÄ+Ð3[† HBŒ÷µÁÙ6Ú62 ø|ßWFFü4Æl°�šþs=…’8NC§(¶È†$³_•Z¯S:VŽnàï·ýÙEpÜÁºN%û.MŠl![&­›sº¯aÊ̆t?bQ´ÃŠÅžIå éûdÄ‹LW§¾ýülðÙfðû„´¿Ö’‘å¥*V�ôꪵÐd©ðPdÝñÉ¢>hß‚Œ9DY_‹‚Ÿ�(’¶’¢©J¦�;-bÌÑ ÿü8Å–œ:>V›UúCM!I«íîFŸŸÕµ÷!‚y¢áÊ$Vpš’øBäºBç žX댫£Êµ Eé‡?*§æL�}FaæÊnbÜÓtä€Âž*A|¿¿C6•ñøö{âèjaéX.ôí”™{!¾Ž9—Æmümü›s!; ,·ÌvC"1;vcy¯º¦€êÍ¢|bøwA•÷ŸD!¿sÌ$³)uÄ�žZÞU­{¦"�þHDSä�ï5 ×W�yaê’Õ%«;½&Rࢭ£­ýmýmÃT—R_ÍCÛ ÑÇÖªÃUXVXÖH³±å“)V8ü2êƒÁÌÝe9?µz&öµPïXÙñ�:EBNB2æöÜnˆ¥½‡,�&è×tùá—ûIDÐ]ŒŽ²rÉ~’!àwûÐk;ÇP^‹ÄxšVCÌó¼¤/€øŽÐ|ïíÞÛ¥mWÄ'q gàV'+y�Ï£AIÖ%­u2ê}Mÿšþóí±™ñh€ XX÷bMGœ€;é¯Ãˆ¹› ÔÉe§\´�xç§Òf‘èúólu{fçõy©åz‹ðP©”–v­—ñîõ‘Þ³=b•m•½÷´ž¡­=\8&s»ív›XC¹î¤¢˜ˆáL"L"Û|w‡ìá —¸/q^cï]x§hßË7'uíÞM7÷Q�Kº{£N‘®uÊ)H gþÎg籄é·Þo¼:ºÔ„bGÞØg²ßˆœ¼r™ÐóÇ*±@åÛ‡Y�óÛ( z EbÌì4ùœ#ð•×”×|�1Á·¸‚ól cð#`n'/€¸Îl¾Õ`lQr¡ä‚?’J)õ†\«¸‰g„¸èGI1Ä|ʼ-ÊD.¦Ar¼I�>|Ô$f×�Vž-��&‡›T…x†l[.!iÞ¯O1bûä9Þs¼û)ôáT�*ÈüŽüŽÉÒÇ™áo £¿ }P –‚ëÙÛ³7mî>Ç}RޜƜF7ö2ø¾¹œiäáœ{6Ûv˜ïüvº ±Ñ¾9øÿò®Ú¶Æ;¸zdíd(;�kÏéæ™’\æ&ÕEÒØê šá¿ü¿ÏuKáöÍIAûæ�ëì››Fö ïí'-÷£›"ÙÙ!•¾Q×ÉÖº®Ø‚¨€c=¿ÕGtQÀj¿‰Ú–‡„ºvΗzxoÖì 0'¤ØÉj ݼ h—ܵqŒ†%�ˆáù"4Ä<šÅçXëX›’ºœ‹oŠgô-Vö4"@¦—fAÈSîêä{Ÿ|R¼P¼Ðƒ€ Å ƒU÷CŽ !±þ®T±(¾cĘõ/*­K²!Êy3*?3Dã<6¯�žö¹†Ê=yÛ*½æÝ»Ú«ëK³åèfsasÉHSÚ]×]Ø]xÈá�ƒn 7-]Ä:�Ð1Þ:8ÑW ò òÞVêVê†�ŸNÀ;%›šDוeZäVÀðÉuGeßF�"_ëÔþ“;áx…}q˜>u�íîn‰ºÕCèiò¥ ~ÎhÎð÷ãNBõ�Øô…Pi; )㬎ÏÁTfb¬Ïu~T 'ôðÍ��;{�Da_ Š‹uP ø­ö•2÷kÈá•öö‰ÀåÀeK ˆ;+Äm;uŬ}/Â0ÒŽ7.ÓÜL™—9â 9“"·�LM»”˜$cÕmbª�_vO=¡j…:=0Ð.t|}Ζ»ÒÜkÜkø'5-Juáî×ݯWÁ3ò‡pß�X5RËP†›¡Ÿ¡_ocnc6÷ûÙý³{T|ñæ8G1A�ú5¦’Êt޼ÜïÂuŠÔ™³훃þ7ÝyóWd‘~ÅY=^vÙZtèV>Å=£qz÷úÜ‚[m…nì`¢Ÿ‹gf~Ȫ³bW²™ý=³É®[õœC¡ÜÖ—<öèÅ**î¹’ý†?±ì.ãÀ‹¦-e®ãF´‰Oßc6³v6CßkÛ8ƒ‹ú–üCS™:íovÕ==I—ÏÄ­ôÌ c“ܶZ‹²Û·™mf [ôèjU’Úö³Wˆ±ž«YÁ¥þÂ}Nq5{ŠžÈ'/)–>Oæ-{ïµ™mfÿ‰¬F£f‡û}2õ0ã†_cž¼uœýßÅ9ÉY¸}45y¿ ÞõßÆìº™ý³³3ç·,š9ö޽TûöY’AÎõT@MÔì…Þ4êG¥¤ìõËÝù¢(ñÍl3û»f&G¤÷8š'¦"ÑÊ´tÄ<ù˜ö1ªaÄWtÜás³èm©f;æÙÍl3ûOdÓþ‚TNqµ™>^(½k±0Q¥Á$üïžo·™ýs²Ýg4’¼ï¤é{SRgþ(Iì‡ÿ¶k^äÎZ¡ßª5ìS0öýÑF¿íR�“�|ÖPN€»]tò:NBÚål'?¯‹Ç�Îm¼ˆ�v~íûJÖKˆŸve�k+(ùûq¨w©!ˆ1ÍŠ'ÈÔ¢ ñ88Õ/I‡â~„c1ˆµ�#Yh ºY ùÆ|èJÜ�3˜FLc¢# vút•À-Œú¸ghtÉ sûðº…ïö¹È�ÉüBR51“£?٠ȥŸ*Iq¢ëG&ž5¯O\_õ»9ªîæîæF�"T θٸ9²2²²{FkD.rê¡Üs¢Zpb_ľ„|˜¹6s-5: �†æ0È*†wj>G¾QС`kNèb¦oìÇKuŠr­S"¤QpïFåuqX§<ë·nKMy$Iˆå†¤1@wkœÓ4dö¡é(Ó›À¾9îó€¯. ÎD¨¯(1úš¬ÝMH%ŸØ±Híbð ã„ c *Ýÿ ŒÎL@R‹ø^0pÖõ½è{L÷b¶Cšß]‚tÝÙ³€uµØ—ôìd&ú7}vôEñ%-ço…($yÍìÔZŽ#F5šÊ«7ñ+ û�gV9S~tÚM ÆõÕHqq_E—XxÂ]A]A)T:Hþ ¾Ob¬M¨µFyN8T8ôjð©£§Žú¸?F,ÍÁ;U7ÿ"ï•H›QîS’Ë9Ê¿ŸmÔ)ªµNíDð|…k@|µÄé‰IævÒ± !ô‡Ep °íÆpÐdÌœ¡üDÖÇ€µHv%p½A8çÆ�¡Ib VuçñåEæE6»ÖàÛ=†³• ílî0¯r…B.äòÛÓe=Gç£óY ·Ø –Ǹ’ 74 I°b%�Á>@kÕž„˜ÏMÀžò(öZˆeÏ„±{ŽÕEb’I/º‘ùY£�á ¬}(ÃÊöÌ4e}-±RLLþô–{¦uáλŸw§S¢S²Z‰³æ’‡ødšY …‹�‹�»ÇÝû¥÷‹ò[—].»í›ûàkøÖÇšV©L¯)©h¤õ­¯¹Ñ>|?�€¦;b@hÞj´XkDuÈÓ�ªŸ÷wî#v+vÙÁVÃÓŠ¨N¦ÿ{ ÿà:køì˜|a½¦ nÜ= äv½}±Qש׺žð¨¨î8yäqœÂûO,(ÝÍözÇ’ì)´_ÞÊNäO'd„‚.ÈNŠÖ¦ÎmgÀ Öó�$iåá ËéW𹻸»ˆå Kâó•À÷ÅÚ›j"Ô]}ê‘·9Pi·]8B8‚—2 ©lׯ‚¨u£¬°�€ÓNãj81g¾#-¤bÖÍ"‹˜k úw‰iáÜ‚I¢ááx…f{Úg-ßÎ.­ûaçúN“[ÛÇðÆðÖH+þ:W%V%VÐVÐÆ¹Ô ô9]F¨ðe2\1¢ñ.¶:²¼R �¥ä橱¢8µ³�~ÄD31­ž¸éý�®º®:ÝÙú|­^8nŒXACd.@¥ûH ÄcE…ÛM�ñ!âÃg!Hî3º„0ë‰Åw ` �cˆÑž~j6Ù†èCö=‹æù’x[�˜±Qó²Ñr!5�_O„óŽ'®Ê¿zÙK¿>Î�÷çY†Y†ûxlZ®?€3xkðÖ‹Á‹A7íG>·dz/!/ÍÞpߥ¿K+%'-$-d©þä^͉íTÛŸ³Ùw(ÝR±ajÃ|ö­Œ4w5Ùh þýùÿ™ë¹™ý÷gv×–‚‚Δ$c¶>)øüéÈ©Ã}Æš:—Õ…^6ÅD¿Žx¿¥ÞmnªúRÂf¶™ýUYp©•³4gD‚gdÑ´SŒ ü©æi™ ‘Yj¸_úþbŸÿ¯X™ T/7³Íì¯Êb¸Í‹‘-Î_}veÍ–ÞÞ›êú }qD†ªÿjÀ�çyqt= âà ¨Íl3û»f�ƒ"ú'�3¹n¡‰0îošp�›]ÈzKMW‘WyŸS{å2fârÿ¿;»#˜+±"žI=ꀜ¹W*æÜðFY þldx»ß\þ‡È�°¢-—=´6z6¢Y{6¢Xx~®ÖorGY9ƒ^Çë ]ú[B,¡@ÂÖ7ž£ã"¡jùp²x|Òb7NÅö9ab¼k�m¶öìøZÅ[Åg›Â2ñUžÁñ§Â:›xÔH§dwƒì4x|KbÌŽaÇ`Ï%¤Aü ®ñB~—^iǺ dS—KµMˆù" PhOE| IÁ,ÏRp…Ý!†½+…Ì¡À®#¤pÞ ªzüôž¶*1òõùU‰Rœµ;kW´}Öp(œl”l”r§r§úÛïot¶B”½ É;/ÚÃÑpÐpy^é_éϪU–]–�8•NïÔ�EYNíCöÂ%t2Ï·o¸®B»Ö©§EõBp–þ>Œ8ìa^_LÙ9„Ú yhw‡aNêu}„ôo d®¯“€2Ç�/pJ·’“xb"¸<.«‰/ðMà ÙáX|ì8w±âI€0H¿ZùÌ|™Ï‰×'^Ï\�üT�˜ñ»2@È4R÷a)Ç[ƒ�`'î\bL}ƒU¹-£M�W–3»Dó,ˆQTµ- E „&þÐ[ÈçñªLåX�ZŸ%ÕÏ:4úž� C£œ¹‚¹BÈË�—Ýú#͆ž” ¡oº 89#9£“ôòôr¡œd¿d?F}‰Ex§¤ ’ÑŒwÒQ¼ázACõMuŠn­SUÛÌ.Êzã”ÎgÊçt4£è ôˆº=¯È¥]O•A(~ékPlsâ*PWùÇo=–Þab~ŸR ÈÑ|Æ—¼”¼Ä[äcŒï€=ÎõE,‰±qÀð°ø]ˆn1yÕÃÒAL1¦x . Qî8 9k²ó4–‰-àhº÷“èÈñ~Jž3„ø)�"'÷Ûž%Æ#Û¤Ô•—3Á,5ëÆk ³z ÕjŽÑ§ë;ZjÂ+K)K‰l¸FxØ7æ_ìÝy4•]ßp³BÆ"$s¦ŒeÈLÉ” ‘"$„P¡»È!BåÈPd 2¥‰�!ó!ó¡D¦L�½®÷¬óºÎqûãy×ûö>·õùïû÷w�³öo_{ïµÀµ.é.ißA]uˆq4¶È“'©à– — ÃdŸð>á펠.§.žÔ? Ÿ�ŸœðÊ;ëiNêçÔ”y–m»8üŒz—‹تãaÚ";wõþÂfãÄ™‹+^˱$xôæ?Ûb^ÏfÈ‘cÎfÈZT×L;e»®Sltý—4ŸÜ ²ƒm*R¤ì¿øÛÌ °=P ýX_+*³TE`»y¾‚ˆ¿0A ¿ÈqÄØï÷ñ._¯° €×áéã›±>c}fæCÖ´ÙÅ âA´,nE ¼Ÿ@’U÷k—ž ¿$§%§å 6H÷Hæ8^äâÐW4c!Àì@¯‰s™*g ¤œÑäZ| ˜ÐhÐZÉÆEéˆÍ0W:ýù<Ò„X¼¼Æ¥‡Vº-Wmͨ(m>ƒ'ƒÇTû¢{9ªÕJ>B>B¨GÚÚ Ùû[ýÛ Ip ¨”4¯ÒºÒz—¡š¡Z¹$¥$¼SŒ®C¶6ó’§ûñâÂs-‰·ëÔž�Nù©á€c}·� #õ.uó´�„½/6Tt³PG}½Í¼tî6}°‹þ¨‡?nž�mÏ À@<ÁEáÛü}àû¤`ÈfÌÌG]IŸlæ�qWíáø¼ @ï˜{r4(ÃÁqt—s!O!Å^ˆx%ä|¥«8ä~Su-Z‚7`ð |Kô —Øj`ß)ž“/ù ÅfÁ̼Édu¸¤ôúÕÕô‰w6•s¿ó‰:TŒ*æôþ­µ°û¬;È;Èd—(O)À9�:�ÊÈhÚÓMAR_c‹\ï´�#–#–‹5V°R°òru*v*v«Å|?¹ê”ÁSùLIQçBէ߯M©Fm7‡ÿ~Æ�#›C©–ɲ®ž�æÓt¾•Ó—±“ýÏgÉ_« rÇHm „Oåsðt� Ëû„w²�ìOËjâ;nZÔ÷~ñÎØO׆ds1‹ÎDñ32©¤>œ‘~”Ü~ÓJã3ÊFHd'ûÏÎb¥–Ó¾Æ?lªÔ9©Kû½oŽÆäÔáiImä…Ö,íåìå{fYWw²^†ðUÏŸ™tšQŽt.3|=´fý¼Ý@ùcÖ¨ê™éóOgÔ¨„é„òv²�ìOË„h&$ÛK¾Ë<�Í«à?Ì?lm¨æåiznôýƒ®�ÊÄäkKðµ>}?an™�AÄ ºëËŽdC+Û­õ)7ÖúLž)µpõ'4s0H©hËÕ4bìÇ&@müt[¿Œtý‰Íúb»(9Ìà£*0š²È“q)‹½}ˆŠÌ³Û <¼Y̸‡z³O×0.=G£¹>i |rCü&õdÔO›F°E°©’BÜ TÙâs�B‹´³h{�u@¥4_— S í`s™¾!5rƒÛq]—™žr õß#tÝ(ªë:<åì×)9±µ~µrñrñ+ÄYÚßájøkø´´÷W¯F Ad°%W‘ôÀñXóXw¦_S¸¦ àø…î ]¸Å×Ux§Xôc^uê¼]}ug`nÙùÍØv�¢�:këgÞ÷ã FÊz"ÓÈÔíÞQl¢„@P\&ú¬ª 6ÁËÁ6@ê‘By ®ÅØ #è°S.Aj)/�€�Zn›IÄIÄù^=°¶™“!ÆKY´âQèµÝ¼†Ð+!ïT ‚Ÿ§ž5Š5йÎBìŒ §�›èC‚ÿ²E»ß 0!€d%Î7¸@[H ‹-£Í1�C�¾R¦Œù~¸,xÆô[à§è,™¬O8ÆVМñ¯pßZ_˜23131âî‚Á·F¸7Âo„CCÇ›=û¾BZ¹±]¢êÌ€sWpW`ÕífèfPdìbì W‘‚wŠ£0)º–É�ƒˆÎÀ­0âhðv�¢ÞèÔ<Õça¸7– 1>Z°.~ßõ�†A8Ÿðªœ"Î(T`[µeî0P|ÀH`‰QØ¡;„‹�uå=ÀùÊlÖfÚ´?¨UUÝÜl¡C'�Ȧ-ei9 yH•oïíH§‘BœB앉e…8'š… G.*¡Q²âæ@÷‡’.\À¤r•ªž!©>�(¿c½¼ß'p!âh<úÈW¢ñæÞ;‰s¬RtºùÜ�Ò·6öá�¬‚³‚³W°ïñËzpœo9ßÞÒ¿¥¯›žtVÛ"3€ÍX|)î�Ë—êw U UˆóÉ—’/¹&˽‚ïéܦ2Á׋»¾æ¤ôÆ‘zÚ|»=ø½ÂDŠo|+| z´&¯ß5Uø½à¹"íoŒÿIk?&˜-o‰ÿ÷{:"[ìé(¿•×RâüPGSÍ5gr�u»®Óltýs¡OœjI�Æí]Çé�oEW´Y°Å—§JËkv»”ÍÿûKÀh/Šýs€ÜÒj'`Ÿï9AŒkþf�¸tFƒË ­LÒ=6++3}§f½Ù±IŒi´ê ï}ÀÙIô°ÉL : I3ñ³Ì³Ì¦#1ˆû #d‘c6­>pMf¥l‹q‰i¾(äɆBõ„>´/ÞbÆ%èVÕçR¿Ór¯®·tÛÇeÈ­Ð-ãlíreÅ�âhÿ¾F@Wë]ëíêìêŒ:ÁGU±áÂÆ™‹·Ä²ÄÂýðŽî]ÓÇàK‘‹š¯õà�BådL~ OpbÀÓ›ZÞvO‡v£Sº^px�WI0„W¥Åvk Ô`ëé ÌZ(®²7Õ¨ÀÖ'æÎ ÌT¯[¥¼$Å,¼pQÙÕ •ænfÑaÑ¡Ñȱ™ã5Œv´BÙ Éâ­b„Ô^jA;Ä ŒLqì8.DÞ W„³X3úBÊ ,’“¿R5ãR�ó†éd¦ešÞ£;AÇÜž�7!Ì/mím!Í3îFîÆÆ`r²p8ÂÂQÑ»)©Ó¥G!|Ø.�QrÁÙÙù„õÔ÷ÔëŒ"$”ŸêêÐ�Úû_çm\2÷Þ±”yÆš|+ˆ%Qd»=øï'©Ïçt¹¦} �+G2â—vÿvÚÉv²ÿ™gLålO/sDé¡Ä.äÓCÚ"…Uñ,7²Kç¥?È|Ö¥5›}"’¤¥æ™¹“ýYY£—,M¾ ñðk ÝÈòŒÏûÊÄÕûUÔZ»ØO¥Þ[“Uûë÷äNö¿“ }V;Üý4±UüœþÅéOOIn�yz�ãM ¶,"§­6²(ë%ŸÝÉv²­2ÙSï¾×7švªòX�­%J]|>lþ¸$3ò RwÝUòåÕ÷T<ÚlÃA¹;Ù¿—Xßg±ûˆº_vð ‘O®à+Så:ø:CòÇÇ«VR“½åø‹”|kóÛ­3è6Öâ/„^ÃÝÛ#j�ÁÀyº^^o6 r?6É/¿ˆ€ŽÑúb{Åó§±Í�óQdê¾kyöX7Æ„úð.WU�o:ˆØ�Íl‘¶È‰si—6ÏÂÈVFóÁçÊÔ¦Ö‡ SõÝqk‘¬3_¿}ývQÂÅ ÉèÕC@ÞMåw s¼ÞÀe×1\øö¡¯ZЗ D)š Kgqµãrû@û±]ñCW)l É’Š*�´<¥¶ÖÑO�MÈKÈ‹2.ùôcŽò åd²ñ¨yب²»›k+>œ³¾³~B ÃÕ§»;Ч�Þ)w~sÍ;Hw¹Îñ–à¡îmßOÚ»Ñ)‘Cì•p{:M� 4—ÎÞXô{.…-ü¬)1P®t¿Aó/¥9lÈ¡ø@X@=' ÿZíB?Ú´â¢XCÕŒ¸ÕnÖÎÑÎñ#i¹™P6F§šJ‹(ì»F‰Âc1MZב�FE£äd Å©IcH°¤ÿk4=i@HSÜ=Œ‹Ä!™{¡C+âÕölt‚ ~"Ã^1¦q¡ÕÏúÒŒ'ªï}Ëtœú²5‹ €/UUaÏ DŽÛ‘¨’¨6Ñ7ÑW|²6X€tZb“(’Õ�[5Z5úàÄÐÁÐ!Yh o ŸÁÊRŸýÕ9ùÚÀÛÜRD¼!69Ìåçv³?ø›`¤½}çOS^æöußêÖíëLz…Ül=‰Å«JÑH»s ù÷³?ñ-f»%NùŸõ@—úMÁxÌ/o»®Óot}Uo÷#8¥0zŒ]¥7C([zÃõ?a; þ~ˆµc!­Ÿ ¹€m�PJ PÅ6zx¨I_Œ‘Ø6ž‹‹Ç…Ì8 m�¯Ì‚ï§Åß’›éšbtÞFÛ+¹”ðÜÔFB„“Šß›UêœN;�6vrf ‚XDïèý¤%ÒFy� Õ²:5¸H:|%W•Ž»C.Òô|Qv?—$Úöæë¹9,�Ĵᢗd_{úk[…l­Éöy†Ç¬Ç,ç#Þ¿Ôá\u\uT:L‰ò‹ sl·‹ÎˆÃy˜x˜($•$• [«¥©¥�Õ •Ã;L@>”áI›z�;Õuíƒóv�bØèT-‚� ÎÁÃÒc‘q…T&X£ßE[â‰ú¯Àgm¼É{s�1Ø´ÄÜv ì ¡À·££?)×àâ%“$ ˆhi¼Ø¬­²­’�XÁ{³—W0"ÛÑz¢­/ÆÔ©šC™OçÛÁ'ÿýÓýó� 9AÈñœÉP´š½tû óe G\Z�Šô2£²oÝ6s¢/”p¡äÜ×ùÖ�þ•=í�.—S78óØe�’Š·6èyý!!ÁjÝÃvÛ8cCcCÞuÞõR:óÎ#Ý)l’óTñpÄ͊ЊÐw.//šx¬÷çüž—¥f¨ÛÉd¦Í¿–páÝ®SŒ�:QœÓ ÷RÐL£Ë�‹Ù–Éj† ñk�1€`_YÌR.`Àf«Sx¿/~ Dó_Ç0^8ŠÄ¯†«8ï]a·YŸtŸtiþ8ñf!âHg4µV«ƒÀÙ¿RBn'DòKÍù‘<:öèØFƒäÌ@“ÄNɹ-”pa&Ø9fp‰)´ì²íÜ ÜŽî{É÷åáBD=x¶÷=ËD2j))”ÙGèÄ#ÁÖøÏ i@5 Œ˜kñ~Á!\.·ºnu™Ö.j–—AÞ0c»¦î0Nµ„Œ5[€SDnlB5èN¹SA�:2©LßhN8+ü.ðglè’ëvódøòŸôVó?-~N=ø‰ë�4‡õ7föÁû§j.$4�î7Ú­ƒ0bìúøbðÅx‘ãÓ;Ùvfò¢"�ý˜{qÊÝPÓfö(S•I»†—ˆ É5+Å‚¤P§ˆÚÖ¿ÈJrv²?+ëéédzx kß~$Ýt…µ^ ÈÞŽI¡³Si¤lÍ�»€¨Á-†ºT(U4k'û³2Qd AIžÕ)*>Ûn�£îS’¸Œ¹ófÕ$úC†Ûm”ÜgäüØÉþs²¥Bó'?JrŒCFôN:‹K¨X�*j¿,<·ï%yïçÖðÑÃ;Ù?/s>bey…M3=TŒI/²fÚP’‘¡¬Âé5ýî¦sŽÃª“Ý*»k~ÍqØÉv²ÿËŒñ›4ÕÕçJmù…Ÿ\_ œw§i|óØú÷®;)¿TlR}BE¢>Ñîdÿ^öWx�¸‹Uý’°P}Þ8ÏÍ4ø,'S.+‡ÀÄ0{¢©ÝToÏô‹íf9ûñðìÛ‡±(\ú}c|z¯¤ÙýiClGçÖ„û ×G¦Éyذ•*¿{ Ü[›Û¸EuÑ`ü‹½;�†òoø8>Ö²EBû’H©dIöQHYB¤,¡=²dÉZö%e_CÊš!T#»l…$$âg$kÜ}Ÿë™g~®·çœûœîîû̼þ{ÿý9æßï\—Cª!5�)­Þ}9ÊkUVÚÏ28¯U߆ó£«\9W Á„€¨©êÚ7Vê1FŒEŒ1ñB ¢æo—!ÜG„…°Š©�ë£@`�Ó^Bøâ€­£Y+¼•côÎ+4Ôo‰’ ˜S¹ÈCAÃñà¬}üé]¶yÞèõ1HØÑúÐú%zjÜ„StPt¸ðôÂS‡¸ï£æÖ¾q|Qæ”7à¶ômé‹XRúE½òéÒD�­�ðM9‰^ù$0CA›ü3& íà‹ÚhS¬¿6õ®YÙÎ4A.'N«7x”làcr>ÆR¦ €±ú\—=Š_bÂ��?C¸$ðÖõþß>rL¥„˜q ÊyòÆ:k•j–jž:9,»–T&Nèÿ}ž}oE\3Õh[ürÂé€U-U-{rÈé�Vµ«u�gGD°Óï<@gÄP”þ7@ïÔÞBRÈå�£q…”†n„<œå0|,–. Ì•h,ðP0¾¥dÈ–*a}¨ä² ·9·¹YRW”ž"TuuF^â1‘Cn�›ÒøŽ:Œ�CEÅtóð´V^³¸f!ŠAo‡ŸÙåkìw,Ü$Ìg,nñرÏ@ÜrËÒQfZ”:¿‘ý\ŒÌ ZÇÞLñC¬mÄFl ¦s7=BF©aÔúÎ:QÔ%Ùz¿È.lš=Ñ÷5‹ƒ‘£”ˆ¶c4±ÛokiÆ·__:N»ç’ ™Ž]Èw÷ɳ±_&WJzžV±×î'� QgÕ"¶ßÓJH­õî?PH01Œˆ �aÏ?Eâ›»CèŒNqeåñö¿²{iæ�IwLÆ‰í¿»9g%øHìiÓijÉíy®ÿNÑÉ…ôOzçÈÿ·¥œ’wÓ•S_êê{ZùE-S.È ?ãÜÙ�™SÜæ­·sö‚N&b£3N2Bz = g¤a¢„^®Êí$DlÈõ–Tš„ˆOYnçNïyEHÓ¶«‹“_…9›êÚ|^8žÕýËIt$·s}ö†Š*—_]~Õ[,_7à8àh;b;ÒŽQ¯FÑ@zÕð%ä²ôá”PJL{\æ\æÜ_¯R®RÜ ñ‚o* Ó”9âïð^ Á<ŽøW#mŠóצæ5Ê)á7¨q\ äoiäsQy»â;VR¬NN_Ýü’ÇŸúƇOóP/¤s§ÝøÌVB®¹Ø¸êó ökùÿ28­•ºÖ×›8*YXE-�´=š/ÒñÐzÆÑ½'¯o¡o¡ödÈÐ,ˆ€LðCïƒH€¢€” !_�E²ZY†c�• }®ª¯þ'䇆·iÒ�‚gn>™ŽÛÕH 8… Û®/å*úêÕó'sG"×}´ûèû+±R»oB]øj%ÚMà†/ _ á.Ó.ÓfîBÒ#ém¸B¥àwÙµbšuçW÷S0WÍÌPÚè.›ÎìJú›R§Ù±¾žÔ‚>&Ó¶ZS÷U’i{ÉŽT$]ë¶NwŒ¾ÔßMÝN"_¾xÝ÷ïÏŸÀ¿Ë&¾Î]¶3ü™�Â’ #VB©éÚþÑ©m�ë×ÖÇÍüàŠW/²áHXPRIxr½}Ú�/Ø¡úÝEÙ¼dÂWERPlC–º8ì}»ŒIer˜ä¤ËÖÞ9¼³/´™w-ËUœû™X“´´ù@J7G?d×B£ÚüÄîŸÌ?™ÙÊ!jÙ�Žö4ˆŸÂ«…š†jG éÝ ¼—/_.p‡lNý²ÝƆŒ…å¦%ïÞàfM­Û8«G U½1i$ëk£*�”+“+3 aì1Õ‡KpJpzÉò’å\ã|ÝÀ}ÈÍ.| ǵLáÐéèô‘Bò\òÜ'㹦¹¦…ù&IðMQì-eˆžª ²ûjŽj­iÙhSÜàù=Av§àêUãoàœÖJå=çžkú�ÏØ»¾ˆü\ý"?¶Îß’¥ÏU€É)X[܃ƒŽóë&DR¶}g»óÞZ#ÇGŽzgÔ²ÖÂ1œ7®XŒ~Ã@'ïñRÈÉ>æ�Ƕ¿ë}×Ëô2iÙì­ê™Pž:…u: ú$Ûð°b?pÜ�nè‡ððDQðKŒŸ'$ƒ§œ2yB#–ãeì-Õ^ºèÜ–ëA[×'kÌXq8ùprJ+?Âç'y)y)wwƒþ¸ç�.Hd¾-Hõ¸zÖzÖåF¶N¶Î+ò–Ê–ÊMHêø¦<œ|›ªŽ\Ö²7q L}¶Ñ¦x~mJïÌó8ÉÔŽV´WxZǽ/™žÛñÛ»d·öð&^Újî‰�c¼ÃØÚ9Ató|Ø�côÂÕ‹Y_µ÷@œfåZÔîÔîl?'˜ÖZšÅÙî€%wÈ =ütÂ÷5ܧùËÉd³³‚%ˆÞyÈAÑ)KHÊÔ Võ5 ¡�?oCCˆ’$´zèD5¤ºÉ­9#éÞ BrâºÑ}íŽô¦ˆérÄh‡9ÒÜcþŸH?éþÝýûðÀçëñóp’’ÉKÉKÚÂ>®˜AÄÎá›A“[À™™�ñÖÊÓÊÓ, �9“®�Ý”àÿ>‚Sù-×j]OC�Õ.�ç¢&Ýeƒ'ÿ»~ãsŽ]#‚rÉ Òa/m?’tåG«W%³NîL_qÃê '„S”оÑ�§hë±ý« ágY*>s:àó®` qÏ�×SÌYÊyÕúÊޝC4ƒØ =ÇZC‰�Ø~W³ãT# ó¤>ÛÍÁ½Ú{trp 9Ì–üíQ\Ã�±�WI&)¥ê·k7ÛŸÕ&¶óýü¦Î"8µ'û‘ndQ�–ëO²û¶Aaò­3ô*LrUv)MÄög5C¡Ø%]%§ÞöèÈ-Soc"ó‰Ô�Þµ|M.ÓÑ»EÉÝ©Áw—؈í_m]³çíôXõäî-:ß”‰>¨Œj,d¤`%»bš—jåv[j›vIÊ b#¶?­-3•?;Hý–Fóã ÿ-Õ,ÜrŒíZ±åúL^™máÐ}oNšIóÑýI�}Äè”KΜ‘ïçA[w†V­¹»zoáÿ{1ô_]¨ ³‹·WÊy¾Ñÿ^xɈʛ~up´‰U8·27EÛ"Š+ðQ‡Hßv9úWÐp¾½Çéj€‹ÔíhàÍñ-�q¼Âý®"¿(xx^Rú~­š5²ä+�¬õCG@ëúéÙ]€ÊTBÎÿdÓ»;y4^Þ—[ GwÉõ–Rà­ ÜpGªÒ¢ÄW_fà„Ø'¼gÃ{IçÿðR³�¼¬1ñ0'È¢†~²ì¯ÇŽýµë+g çëfêfr¯WòÈs…˙͙}ªýTûÚ±žÊanˆÀ'|ôçUÃää`†§»¦»’lÇÇ}ƒÅà›*ñ¢d̽¢Û�|'b… òßhS|àÅ\^ƒp‡ #‹q0_|ïù&d…/Õ$9X̈N ÄÇæÚà œ×ó‰dê‘8 Ur„|œªîŒ÷Âׯ€f@Wf7¬EÓŽƒ<‚õUy{!@"›!1tãš}.øÁ9Ì9ŒÎÓ9#ﳑ™}]‹õþ90¯��FzâQ4Þi2 Û1ôÜ|ÂNƒS•�|ôæ…‚wÃ�IðÓ]&Kµ26å[_º%/â½Ö{-S…ªˆr;86¶Õ»«w+£É &º ³—ñõ:çÐÀõèõèÝû®X¢Xbh›j“jãóº ?cK[9w;R£ûªû ár¡>óÂFgls®œ"›Øt‡œ¾_¯À$]м•!ÜÙâø¢órűÇà¨Øi«¸Ø‰ùÏ�U1uTÿüŒMj½÷;šwY¡“w]F¿ð££Z÷ì»uþ_[ÿ&6 wg÷“]8R˜;”zßÞÌÊÃw!$ó`IíôUB¢ÕfªZ€Ñs$óÔ<ÁÉû˜º�Ù¼@æµÔZ/˜_0�êK¯U”Ž#µ+ Oi ˆ˜¢…Ü—ý{wõ¿èqÜX2¤²d E–²‰‘­!ÙIÓF–,¥"*ÉR“¥PvágÉ®…R–ìY²„&K…�Äís¾wóð�qÜû8÷ÞÓ9wÏÿ^¿Ã|?óý~uòÓlþlþ�,�lKH€ÇQˆhá¥D-�"ð²?\‰’*:`ê¡•Yö"d²”½írY%Þ]Oe¼ZóÖ=ZšaÀ\Lƽ^ ¿V¬š�šÝ>î|�ipŠ?\t¼èèÃs»39;L.ùfu2xÔNœ§Ó}§û[7 `0õüaßá›ZjÏÍ7iZp3xqë V­cµM‰þÞÔ¡°ø›pss¶$cJh<ØÆP^?ÉmÖ=¦ LmT«:âcImÞÀ8©lÊ™†LIp²9~”Øo=úˆWàw[N‹Y‹Ùœ]y~¹Q’ "|I|0wæçHHÓ%+×–))·¯�µ´�ë¹ÌƬ°ÉG"–3ÀúL@`¼y%µ½Ê(ë‡zÈÑóÝl±2¢(J|?­�6Þ-L·g‹q“Ñ|øgÞ”—¦+ãmˆŽéÊîÊV°*À7ÃÍ Î ¾™y3£ê·³BzRgNN}»ý%8÷3îg\¦WWÜνn[ßÔgß±úSN�˜£��qíÞ9¶Ú¦ÄÀÿyi[á^™¾¥%9þzWµVà¦yþýä´ns%¿Þdâ»ú‰ƒÜÆ�ƒÅÀå¾[#³°Ú'd#ÓJÞ2)ÚcbMÁË…h…håòhÊ.÷Ò–dÀ‰h6‰xèºS‚è+óØÂuôi"Á(ч8"þ€`¥Ù‰ž1ì‹€šJŠ®5€w;÷âáãd�Bª�g%%ëk¹ïþT*ñPáëPûöþqY2ëjЛ•m4ÑÖÐhc’íu‡;×x®q*s*ó¤šÄ< 2ô–ÜÁî;Ãp;�;�}w‘mȶ¨¸1Ö1Vî”qSEÿyÆF¨3âî÷tJsòa­E¿ôXíŒ þ7™GÌùø –{ák]ŽúâŸS„ðj£¶ÿ�&´E7S¿E?פdà‹,Ë`ͯ·Û>DªÙ éX»æéÅ[ •sú܉ÎZÏMm~szŸ»`î7‰YäZ”Oi�Ó¬F�Ò_ÏÜ�vÒ‘äOª½Ñäo%£�· 6jûï4ñÁW_ŽþbÌNx¨œÄn$û�™sS[[Ù�,Y~±åL§�+ö=¼»üt©�Úþ…÷›@dvcªŒzQ7ü¿6y‹›Š&?Õ(TÙÞî®WÅ´„¤6jûÓZωîí'ËÓ¢\*¿cmŸ`¦*ÆKÔ»‡Û*¸ÜûÈEs•=EÛ¯žÚ¨íOkZ§Î~È �UòåÝ¡9æÀ�Y´íìÚÿ�ÿÒ¸Õ6&ôOÂÝ‹ç—Bþ§›î±”thQsmÂFћǵU9.Á¯=$fäé ¯‰«Aj¬vHœŽ†æB¥_+\i̳^’¤gø³Ó*cÉ�w’)ªÃÙïÅ}µ@“Ó¼©²Ð×\‹"%Å’Ix¤w»SÂÝkÅ ] ZX®0¼0¾çÇJì7$–hË‹«_þV}M3«e¢w±vâÙÊB2cƯ�_;`"6sì\vxvx:w:w}(3Šb:L®d€6Žñ"ãE?oK3K³{4¹½¹½›Ô�¢ðó>wfÍ…Ó?Ý“èQ³ã +>‹–xÞ¹”`žÉf­Ù·‰æÓtæ|õÌd]õΤÍùºÝ6(Ÿ*FD|8ÔzÙ{~cš}«Œú�Ûȿާ¸ÒóáS™òƒœ—úƒæN»ð„=6\mëÛoý03=c]Ë.’þ8KmÛÅ^œå¹]­5gNuq3fÜ §#²§ðè© ŒSÛ½IhzPhJÐ6 ÍÀ§0çäåRüSüg)Í.w)š$&�Híž6+àb·²§ùE¹\{É馧MO !›] Õv‹Œ�´bº D6‡€ËÝÀwÝ/¹”\Ø „7Š,„GBbÏÏËV(†¦QòMÇ#líœõá‘jBòišîàÏëG„º·¬,V¾ÔFBUBUAÕ#ÑÜNÌ^ÌþVà­À,>åê ™äâºõà2c2c˜Ê^U½ªÒ"¸áÜp%¦< ðMu5.Y™™ ²N6aíøš‰«mJâ÷¦Þ³o-„{/ŒË%)ó™T‹fõ, ÷I¬3°塇EûˆœxYDà`ðTõ1P$Ikö£„3j"8¬º¤³ÜüÍù›ýl/—cT$‰h!rMx4ù´yAúšïvjïÞS¿§þË,Ä$ "Z_4ö¹3MÄ7ŒþŠ>æQ²à Ôtï¢{Ï ‰h6±–¬”GQ"ÛŽÛ(ص+râæNÆv{±5³½• ¾+ÈYk¹Ö’€ÀÌøáàpßpßæœçœQÎ�gÆF!IñäFhíàb1„ì�d©d©Ú+ (ÖlF—¸) 3´)�K1W_ú¤U\l£m‹4_ílþù)÷³œSD~¶ŠÍÿÃn�Œ.éÍÇ"ü#mÌï×Aec·„ðöìsZX~:4˜ û…rLvøéu;V·Ëa…¾·Rµ�F»¨ß&Äè0œñœédá‘jaáæ�ÔcL—C¼<öuç=ö¡l½'›¼oRÛÿ¿¶�#È7ÒLO@Ñwë3v~6¡W b•ûð§‹ZKŽ ”O0,±?Ëôë3ûnBmÿ¼V;×v ,�S7ü‹Ñd}Ýúö1ÄV{ Ë8·\ñ¹gSÍvꬤ•.ÞÔögµ™¹Þm6ïõc®-=Súüõ/^å5­n{”D´ÑÂ7Ö7˜6^e¡¶?«½¨qb¯ÈÍè¾j×Ðçé¦ÔYéÇ‘â»5Í®ˆ¨ÎÔ¶bQt×óðok þ«í|š•ÀxšGxT§ÙWŠƒ+Ö`�ìwÞláS(Ññ@Á¿bY‹ôVûÞ"ùû{ þªõýÛý$ðcë’éõ}•ÈåÉ;ㆴ¹ ¼Ñär7ž›b.¼vOžÛL2¾>›�U!ϽÀÆÅÛËqr™–ð.gìD’Kä9$Ð ø¦IOCòS�½Ú?:ë;ëÚBJÎ@T¬íR ï Ž_#Z44o©†’ë)¹ë<çu‰¿=1×fqî[ª ¢Äà…,Ï^rÔÿÊ{·§G_@ÎÌn&`eú;u6ã7ãj¸Þ63Ãffârp9KÚ¼ª-HˆX'9ô-™B8aažœ)‘ "~d�r?åÖfM¶)ŽøÚA!6éÂND’zÚø…Õ6%î(âu€ë3Å I°kƒgÃç»JÈ¥­©´²¶–`°7„–È)eŒ9£R}�«ñº~§Ft%å:Úw€:�É¡å|Ûf—“ˆ 9·DTîŽy øÆŽC†çeOO—Ðî«í«µ= iõ…DHœg‚ØœìH'êcN;gËCŸQ’? Ì‹\I)2„Tà:òÄ»qý”à–ÜøÜQºÛ0lè¸ÌpL§¬¤hŽmàʦN­£[G'+jf¡#÷üÁó¹Ý¹Ýûne‹Ý‡°2�ÛþQÎ.Â2ÂRëÅlìl¬Y°¬›¬[‡G0/|Soo–âñ^FÎ�èïR ¦C«mJú÷¦|xçá0f<÷I²Š�#=ï ¿¦'÷«¹b±a/&’ÆV€œ@s@°ø! ä´ÕÓ‘¬á0)§ä^¦U1ðóš¤Çrà]�-=U^ËåÙ’èž èh£¶H|î… þÚu±ª]qŒ–8 Yª‚”²Y…Ð-°ú‰Ætê_”Æ+Jî·7<ª‡ŠÞU’¾¬OI�ÔLE–ãÈ›vWŒ)›2ÅMcy¯lï€*‰˜°ŸÌ±÷ƒ55R-Q-éÀ)2“wO¸wHå�JqtšJšJ] ››Ó¾Z9øõiÝÈô³n·fÄ•ðj+R‹W»>M¿ µIž :PüaF˜^ýi¼Vº×÷¤¹ª‹¸ïò�å|‡swl•ÇWÙþ$+ù÷ß_ºk¥ëÓ³Ó UAv¡æ|Êt´)«m]æ÷Ö¯4w‡ÀÍÖ Il ‚9Õ²|ïRÉ!K \€‡û¦N†»0‘«åúß_dÏ© �D»žO£DãÉ"4Úgµ® ×…æx´´\�IjQ»*6X“(‰[<Ò¿Ž~ÌÈ7Å7å5»¢8Wî ˆ˜›%’nù›ƒÀ©)6 %IÀ !6qèÂپɪ¼ƒï}¦ÄF5TO²p²ÿ$ªª‰¬«9õ®Dje…j–Âêcêcµe�×-ÀÅ cÐ7°7°ZÓVæ9Y�ˆr|®œp®ƒ®ƒ™KØOØOšçìLíLß›HrÃ7Å~)Ãgd�^žQÖ/l«ÎoµMíïǰ�Àɼ(½Gº˜&a~Cxù=†:éI'dÙç�(«s¦äì8«R€úŽI:çÅi(IQ² \‘¹Ë‰4Š4¾Añâ—ãà'‰ä"âˆkú°ÉÝýùêUïÿNU=‡ž+Ø!ž},i¯³…Ü•J2 "|–j€‚áû6”¼ÒzÞŒžLþ™;PÇÐ�‹§DJiâ¾å™«ŸYS›ñ¥KN欹½i+ËikvàùÂóåµO'A. ? ?Ð5ÐÕuááP‚2är¹íÕOád×È®1�z‡~‡~Á˜KŸKŸï¢}�¸)NhS{O ž)øFs›`=î™/é¶Úõiøç§Ä8Ú"Ö\³5bTû(óìôöÜijû÷iÅóHÔuÅ 7¢Ã5¶iÉ¿Ü(æéÐêþ1¥1Ò5~`Ü5²âjˆeS(µýùÍ÷¸É¯Ïeœ>xŽ ëÚc¿ ùç½…].ÉçÿŒÚ¯kG[d”l�3h¢¶ŸF{%ú©Wä9Çn«ì:é‰9cƪ\"6:"rŸ,{.OÇûÊ 7m 6jûÓÚ46x„õ£¥Š:‹î>F{ßËw )±ïò-$æ3]vÎW½Wuþ3�Á!j£¶•š½‹TXCBÑ•C6&¾uš5•ÐÒö‰±6Ü ¯h¥kk¬Ë½Žæ<}\fLmÿš­hjˆf¡-U�ÿI ]Zǯí�NM‰$~aNÿî4UãösÔ û™–�¿ +µQÛ?ÚbÅ”u2²~ÞÇ-˜L¼TµÄ믑´(óõ놭nš&É/ôÞ%Ó¿*k£¶?«Éz#t8Æ0‰ËÓ¯Ü'jWu{]-¸ï‚÷#cï$kæ}­ofU"¨íŸ×vÝ©LÛ¦¤‹^‘ÏàÒÓzÑïõL’‰6ªËFs•ä¹R'�ß´¯µýß4k“I7�¼üýC.Êû±¢š¸�CsÃÇ ýJŽŒÐ$V3m7Ž9ŸTãW!GmrÿÁÞ�‡C¹ÿ}²o!k"[LY˾dMÉRY¢(ƒlEBÙ²5v!IJ¶$d…H²$ûq²„DI<¾ç>óÌ3÷ŒÇs]¿çw®ß9—yý÷¾æÏ÷=sÝ÷÷óýÞ/^9úu�M)_]|zf¶ÿB üÙ½²üÛuduã¥2½#fDÓN›=»#!"Iå‡óH8‰Sq"‰íÃå<ö|¯M¾ÞPõϤ{‹HðÅñD–}ùŠÀâØ²¢«xœ� ¡Å$`ÿkk"\Æ×Œ¯ÍèJœÂU*�͉Ñ蛬õÿf©˜/”nŸõHÔaÖaf%†t;@jk’¾Bú´90(_þ‘@Ñžl?B.O¼õÍ{ò ìb�ÛÕØÆ¢½3lGAâ}ç‡J‹å±Y\ÒQ‹Í¦+s<ÝXX±˜®oë‹ÇÅÖeäÓÈ'×¼ï§øz *­ø ?�=„[£[£3dLLÕÒÒxU4 Xw/õ�´_†IüÌW\�߬Sâë�Ú›ÁR÷£Vá-–Lj‘t׋›žÔ�€c «+ÀRYbŠ%�4ÇHÈã'ùoÅ w)qí§ÙO#Bñâ9®o±Žsc<Ú¯r†Ü�&%w¹cIoI�ÙùÑâ7+,!_‹þ‰¡Î ¸ÇrÚ’ Ù$ð9M°ÐC~pè=¯$õ&¤Ÿ„'@Ñ6°t`äÒ¤”€LB cïÆ$µÒbbœ©E¿ŒÂ¥Ì¦Ì™™ªœÈúEä)jć &ž€ã×ç×o¦o*k*»1|uâêD;Oñ¼S¹+ÞÊÇ#ï³üf“!eÖ¿Y§$Ö;õ9)ƒ®jZ­ +lÞ1½ùÑ!•7%ødfÚ€s: �f2©ìí“ú ˜d­µTé±"‘L„0/�£qc·p-®,®�‘þèÁe0�5®†Qym9øqÓZ ’l(ÌI:o Û¤Û4ñ"ôbzX¬róz´'†—ê]‘%!Ž€ù'Ü×Ð"3ñ§Üî$³„hžmærº5™ãnoèè§Ð!<ªå¹1ií}úý"ý"Äæ{µÀ‰TŠTèè}ü.$Ͼ"ìƒOÊ¢t Ža/Ã^o¿äëÉ×ÇÚUU»_šý÷¾ª©?g4ÐhÑ£”ÔJ ,þÒÄvkâuJÏÊÁ|ŸáÏ.‚-4Ö/ÔÒr)ce²¦Pi³gNæ6Ž�žÛ&E³€xmµÓŽIíö¶±š7)NŽï¤xYág›Áß'¤û­œ˜8#N©l°S_£Ž2Um7ijŽ[*¹Œ]�t¨Üö øú&|?Î# +qr¡ÒªðÓBÖ¾mðëçí^ö[GûÝ:‚kéïT6»~¬_?×O)wÀ)îÎ6Ã2/Ñndn[”H¬ÅçþI8 °Ü>$‘Xµ| _~…éiàT¦CÐS÷äVZ´sn:]¿P_ÄE%N%n]ÏtW VR3†ÉˆA'àÅ÷¸ BZƒx6…²aµdµ´ó‚”˜Cr^T(BöVB'þíæ€\=0AÝÀLH±€¤Làww„Ìô,%«sÞNH<�Z;½~ÁÜTZOOªqSVE.z�zcUô¨ïÕ¹Õ¹èçâ ×Lá(�)�]¸ˆ˜§ÙÉòqßíEëopêUêU/…ë…ëúS P œ½ò ¯S_Ï ­Ãß¡JÞÑrõ.Õ«mÖ)ÉõN]8ö îðoªg°LÒz]Îõ{ÿ_G¶ÛЕ)íC=c�ÀWU_¬ h{•K‘﬇°¬^}ô!äagõ' ˆßc ××®¯]·QR†¸>da5 `DLÊ ú2—ÈAËg»÷·*N¯”¬”<3ƒœ†Ü~rÒDÑ5ƒ1ݘ R÷¥�ùI xžñRÖt‚”UV}ö/ó $S宲N §ü”ºí͵ÜQ­¡Ëè»-³£¿è½ZºZêòáŸ,\¾h¾è ì ,íùÐY[ˆ>ùï’p†Î†Î·Qè ô9âÄžÄ9µ³uð¹¹ô)éÃéyg½ØOñ,�~J³ÙÜüw·½¼©ŠÝ‹}W‡¬­äö6“ò+úæD¼¯ÄÛ‰ªìÕ“=üÏ}ÝâØ¹9qhnNzƒ¹9Dû·ŸÊ™â® óº‰nÖu©õ®[xè„À­ÊÕ/`e#>®-’ׯňï¢n `ƒ¼Ë”Ò‰¯ýä·ËÀ¹ Ïe€rÇ/ÅX2ô]Ý„¬~–F¢�pññu¿Õ0ÆU&ˆ•ljQ¥àm(1˜°@†$j^f¤ôÔ¢ãÑñFù:QËvS‡;fcì ’€r¤…åB`áéà8H‹ÞM7½™9‚ŸC¡±qwü©ò×Þ¿)ø¥NÓÿšSòøw¹�e×½¹Í]É])š×ËÆ»·¼¸¼¨á§á·kL5o&Âņ/]0Onσ={û÷ôï‰Ê0 4 TXê8ïÔñÓ™i¢!ÏÜóin÷s7<Ó)éõNÙ4~ô…ë ù±ŠÅv?ÎìNdYƒ¾–;@ßc‘Fµ*|'÷Aã_4¨àÉÑ*$V'"j˜&u? , å®’´éÃ'¸vmÇ"»†QPòVàñ£†|S�z66<çPîP¢¡y!o�+Á ¶(1•¸EBÒ¦«yÞpÍ@ˆ·¥Ê,}1%!Û߆É-ç»Õ ­Šy«ÝRÎï´š¬ÛØ€D´2Á^à^kTG.D.dÉaÉqTó@f•7$ù >¡üj¸"Î"Ϋ]žeže �u;êvô¹KšÀ;Uy‘›i!”(ȸ;lL4Ôw³N\ï”J›ü^¸§¢]¾X6=ÞãÖkC?gñEÅŽ–Èò‹~“Ä…ø,šç…€Ï í½@›ª¡V­š9%!Í¥�ô;Osp‰Y‹YËó9òâšúŽ…ø†177Z Ps�N@>‘Û¨ˆ‘V ¤ ¤íæƒ7CÊÈÚ ²zÑÍóË€cpLvÿ-B:ù�‘µ!Ut�ßæ�ÉÅ„„^$/M™Üù˜Ê2Å}…vÀùœ“Ëtg7F%GLçÙêÙºâq=+9ÎDØDX[E[…Sv‡‚fDK_˜72ÎÓÞÓ>°qþòüeÆ3DÍDÍáZ’a˜N3A�ZV‹cºBRèpG’4núòf³˜ðÿäÿ¤wÞüÙM�üÔ”mšõdž=JÈ¡pƒ¼wξ 6‚÷Ø™i¿Übf~Æ¢÷ËöÉVö÷ÌÆÛ+m´Òå®qyY߸„4SRBÞNëá�zš»£ûM5ÅS§‘TQ�cs[Ù?;›¦í´©š½·‹ü�Â3sɺK¶e..Û~м±28iíLo½l{`+ÛÊ@¶p©½AYœág§àŽŠ]5Š*sžѰ#í(‘®o%]œ=̉x:†Úʶ²Gö\û9’ã[ý1b-“Ê•aîœ]ß…•8Ivr¹9½Äß—ëÉÀì´•ý³³sW)N:t·j,MŠÑÉÛ¢ƒù4'ßL¡å8ŠÅdï^x{�Ùʶ²¿kfª"�t8e'm¯È/G%Y÷:´~"~"¸rÐ1b?Yƒ(ѯ±ežÙʶ²G6åÉ f±«É¼v¾ ×r~´T›iïÿ÷™‰[Ù?'ÛwN;¥”̕Ը�<õáò“¨.ø³Ýžƒ¿ßN÷—Ë?çLJüòÕh³g»2$DD5äæñpä <±XUÏúO”$fràS1½|˜¥£ÍÒLƇ~§o Œ Y£�eÒ^>¬)^œ„0} |kã¿ãRü øAç`+®^Q¬óli�O†ƒ<�!ó¶ Œûˆ÷�o‡ß… ˆs BÐ�®Žal�4o…b/‹ùÍŠOý*ªaYU¬÷ùuL•i÷’(mKÄ –CÜIiŸ­ÄrçOmløÄ´¢îKÝ—î6íFËpƾƾ3ô3ô!Êxoî„èÝÂWííÎgŽ2G¹›úÌûÌ´ÑÑUj%¡á�Rà5w°š^�¥�Q�0”+GmÖ)ÙõNÅU¤XÀ]%&ÅRÌ®²53/üÕI@ïÂ(d^øõô�³âK p²ìw´ÇòƱ,—úY»‰ê.[“ áÒ½«{—cê/®#¬Ëg0ªW¨É€Ûãs9Ôù§®Ù?1æçæç^5†‰‚˜9"oAüõ¢\1¨|:€Ê"�”7và|õBµ‡P³:bìs‰�v² ½4™„èX=QcÆd²oLs÷”7æ~ŒþðáÙó¿“)*íØW�ªGMNÒ‡}3aƒ1â+Uw[‚gþ 3S2S «µîù2_÷6¬^#3ORV?XEå^QѺÙ>|ö‰ïÈEšnÁY«¡|�Aõ~{².îÕ»/Ù¬ØdûŒO+¡Û˜þ÷5|™ Öð‰*Ó¸‹if&)«btX>†nÖu¹õ®ìõ¥€»¡Ðêˆõ+CM€È§#ºFßWƒïZ@¬Fß‹“æÌøª9„g€ãåŸß¹6ýXBgî~ $Ó*' Ê'IÁÕ6Û6[à�ú;.“n,1}Œão)rÞ5æHROB¬TÙüÌœòœr\6ää…—µä�èÙ+dS@ïà`ãÝHÈ~`JËîÜö'‹© ¨~ ÷EB|Ênûý¼”¶]¾òJV$"J}��xUfÓÆŽ”t³''~a’èµ§€³ · ��‹½&}…ÒˆO½sÑNJSJÓ^àþÏû?Çr í íúx;Gá�ÊL9T®Þ[ë»íÜç±c2›uJ~½SafÉ%p§_«‡`…ýBQoiªçÀ‹ÏÐt` p±(+)8=åƒïê\`À¶_<òé?€¿¬}�”7b¨åbÅÕOÛO;v=U—Z)©ƃùLAàÐGˆ¢A`TN®»ž¦ ¦`o:$Û~ÐŽâ¶f�‰q+è>ŒkÝ2 šo®‹� vU€ ñÑ^�“Q]"äg4û�Ä�—D–R¿”÷«ŸsµHÏ­ÝXïM!Ï +Vù¨Õ´àxèyèI¢I¢»uÎë?ùùú ß·ÓJ¸÷MZ†›†›RÊôyôyð•½þ‚éTÓŸg³³+�x v–©inÒ½øæ)'ÓÍÖ[῟ÿʹž[Ù~d›´èãsîIÌ}}Öäg‹ÃïLŽèEh ¶V‡†|£¨pþò{Ù�È­l+û«2ßK²óœA‘.7MÉÓÌåÓlÿ©ár&R;¥ÀXJâñÂ;Ï•0ɲ֭l+û«²P®SùÒuç½ßO:±¤I0vÆ9-} ”$ëJôZnɰ §îˆ Coe[Ùß5óNÎê:fv”ɉ‚òVɈ§yd×ÿõ�÷ÿJ–ÃWô—H ù�½ôt^�ðùÊUqø½‘ØjÔBィY_®�¡s\6Ê›Ý)¬ßÙ3·™Á�D±aý¤2;Ô�ÐÔ¶t߈{óI@ÈeMvÞ�#_JP¶'àÏ�oðY<�•å©7FHþžeY@öÁÄ8.•+*W(®8îÇ5«ƒõ4ãZÃWIyã(äìË5WöF9A” ªË ròªÓŸ ¢¡(ƒq Ð2†;·#Ù!�^Þù¸µ‚hfù,i}g?!6=6Bö¹uü *�ßåzÅמ¹1¤røK~~óñJËT8µµ‘OÏ?=G,,íf„ˆ|Ç'L9çÊíÊ�V,�’GÑM£O£ì.³ƒwʶÒf×¼ìÙ¦“êw«¾§ ܬSŠë�z™.¨ W¬8`ŠÕ©›u2ëÐ>d=¾‰ûÑÀèñL3ïOh|ÿÅÞ�‡CÙÿ{Ï®…,IYRQÖ‰JE©ìÙ²/ÉVöÈ-üDöuŒ}ÍN‘�PQ$ÊQZlSLh(kö8¾ç~æÌ5÷ŒÇç\çzÎù¹^ÿ½ÿ~_ß¹îÏwîûsé Rw�ú1paåD1^§�-)/…¨­€ƒØ_b„rrŸ¤,÷¢×ÀûL…ó3}iÈ÷ö鄼\é³O–J–N]ƒ{•A« ’äí¬ 1ê¡´Ãñ$€ ¹å(R†G2.HÚ®ÞãÇ|ÒíHéL*ý—©¸¨z&åíRÙDá7W»“–X×W.’qôÅ5 �[oô=RáèÈèÈXôYôÅãDZ-O!tÄÍ�à°þXÿ†‘6�6�§ )1)1õG›<à�²òÿ-ª‰,½™ä_÷L¹ÞÓk£N�3ðÀs?࢓‡ðŽG¹úÝQ�'öTWó)°U|ÏÑõ³ZÄrùv#�}Ú“ @óÁ“¼ÏËy(Rdü2É�›��℆¼†¼,ŒÉ�ã�‰áh¿?ãÆø C Ò|¥#îå>aˆbˆšÝÉÉ„L|Œ‚È9��À¹ V†ì9 DäMí$¥Xp�n ÅmöC –Qb¿–'%n1ñ¢Î&kûá‘èíf×Ý�îXŸí¶c×�¬�¬‘ùhâ œ›[ÿÑþ£–>çÝ+È �.Ä4S=ÄáNo=½õ)ªƒ«ƒëôR³z³úÙï«Zð¸ò¨g"Å͘ÆÏ7ä]Áå}ÍÀáï÷ |äqˆøc�`ª±¹}!V º#àRæTßU;Ï¥ê-,Æ??¶Î œ÷­aKKØþ½îÅ£èöÎ�º~~­ë»ÃØpƒ¡ú·ð¨=d”®0'ðN3KnÚ �ý¬ßÌÝÜE,ÕÚeÎX}°¸Bm�÷§RÌ–” +7€m¾D(éWÒ¯ãVgK }�Ä´Ç9qDÏHùy3 éléï÷ָ˸«Ê âÿ¢cëâ¡ 2³ÇPhŠ€€� Rå�ÝÞˆr*ä_>³Иðª�òCZº¶0ŸvPq¢dÌ99ÚÆÆûð�X�õ½Þ‘”†}‡}GÑ8Þ¶®ºº>5årô‚Ôç»ÇÕ± wIë’–M Z ­¶eÐ3Ð30œú57¼S“ʼ+Yäf'°hÛ³²Ñ~Ç7ê”äZ§¸ë®HÁ8³¯OÇ!¥uüFQGŠX »—ð•Ï$ É¢~–˜8Õä6€Ü|ß0ÏI5Œ'<*™HÊDIOp˜2Ö��F±Fñë·©\ÃÛe…ƒâÛ³<“CE@NÍa©ù¥$”|}£öCfx _{ T!Uºø»™˜÷mߊ“&Égзtã@è_t_5ÕÒÞ‡‘B#d!¯g3%f¼0ÐPùþ•mË¡ú°¦õå&¸cè1ô=Ó“ÇF_ÂU2V2Ö†Ô†tø +°�X3£>]g2j2겻­Â�–½­µ­ÕöÔÈžÿ:?éþz72í\ÁÉ£ŽÕri¿ì]Ê%l4‡ŸŸIÛ‘¨�K™Û �”Äø=JÐù›Ùÿ|–}g¸©¢t„ÆR[øbùÞÏÛó\üe¾_´/—U’My—�x‰mÅÄ~3û÷Ë„ìÝ�ô)Ò¼åeë0†\/Ú­Ïk8«Ù7 Çx:*†œ-¶b ó~ý -¼™mfÿ´¬9½;ÐýêÛþ/^ùÌ‘ûœ  bX÷Ê>Œš‹Ëþän®ÐcyDd3ûÿ�¥œZ²ôm8ý¾Ð»F5eͦ_èߌú'U‘W>ª./):mfÿ~™�¯œhùԘÔL¼c½nÕàŠEÞ'm™×…Cr:‘>b& iSò;…™�”mf›Ù?-;ÂdŸ1zòSí/ñ´”²„ÆÂ0XÞÓÍ0$e4ô<²ç[cf¶ë ø³>'GÒa‰§ŒûÄÔxÐE® ¿ù%µö¬Ÿ~Êc?œmˆrÞON³ëºMï»ì$öðÓ)z€i©¹ê‡â²91Æåç¹á,€[÷é¼h#cRª+�@——R-¡¬�¬.”!´ Ó9dµP aà yoE/èx½ŠS «†å¦�ðšB~Í ¤A\c™½q õoû �«÷÷·“²%8|ç;ÅÝíNƒ~›]èR†»VkbËãr«>uòùz@¯îÛ™õ…ú�g¥s¥s…«x˜³·ÂÙùÙùñçòçæ¯\ôƒHº#?C¼Fn¥h¥èyseLe “•v£v#�š\3¼SC*¾”÷Ì=ö ¤V§ V7ê”ôZ§öÏ:ÐÃ5_éÄó +0©qÖ0Ô&vxp–ˆ¥ë=-ÈgHìÓ·æÀH$3ðÍ=…k`®GÊ"9ý€«7¢‘Ðȱ‘c•˜JB–‘xÎÚ8q»ÌïÏò*SþqÌèÞm¶}hÌ��…B2Ê= üÌî“8M–€( 4%w’M ÷Eä Š2ÛàÚ Uö‡:Þ΢*$õx*GÍç½…u—GX5?¬ïBÆwöÔ†ÔÝ¥ó'pUû«ö« ª ªöè,(ÔB´�ˆM;/Ã�·T,È=È=’vÕvÕA”bD{¢—^�[¦—tÖ’ý~•Ë¿á9%³Ö©@ñÂpué”%x¯&—}O)sÍ'ž#†ôŸ{ï»Ý¨ÈBŒG]‹ðÓS_xÙË#ñòc„4H¡ºñ®(n.ˆ"$"("¸rƒb’�ç ^!NõƒË=ÍyHÑrîxBbùÊwóïæ¸ýçÞÉsµ@:Hðµ�r8[><^MeÆ()o­€k&l3C�Ü Ž»å«�’Ž�/îç‰tòé=ÏU*ú«BŒí‰ë³Tm<Âûœ÷ùÞá§³¬p�"E–`K°Ç�Qsôño;bM}ö põõ:vSç§Î30öÄõĵ½t¬…ßéÜÝ©O¦‘>rsÅAú‰=ÄñFw:ðoÀRJ=½îÛàKÞ§2vÓßàüâœÛòÉÄ€KHÑI&Û¡âs¦d§#²Î�Ιl>ž´g”«ü\Ýÿ¶"z6êºìZ×»êÆZᄃ¬ðØínËd•�úâ]¦ùí2@²;êd‘G^81îÙB-`0å�>p(8³ï©zÿ6Rn/d™n3ì„æ æ |­Ê!tcÏ“ g!ÿª ‹vŸ…œ“ÖôïPmûä?ï?a ÙAÌ_‡ôoÀ¹¹8d'íÉ åg:p¬Q£�öÄiV—Õ§’É�×ɇbÑLFÖ1Aáß´_4Ø+£ÐY¯Öwû{ÙQÔnÔ´�¶up®®ñ"ñ"ÊwQ �³ŽÄ ´ÓáËË‹øf5f5¾Ö®=Ü[Á>Bô›ì¨Ÿñ-9¼x p˜Ò„Αn£NÉ­uj6PU N4Ußï¶¥Ö}:�—ì�wc¤@KQ?¬¥åx[k‰9|ï; ˜‹ð¬ß·òâ‘'%‘¢w¯m çŸ© ´ª°ªÊ,5CÈ–/=§a©�Ïïy«¬ç³â_‹c›ÙÿN6Ø%?‚èMËü j$MfV"Ö™ŸFí1âæiÄ—Á"lZ³�©Iïj}ÿöéÍl3[/“¸øì×Ûvƒn9^‹‘•ÌSfyãäÚ‚x¤:G«Óö¥?ÏwòªîÄ”nfÿ½¬Â"ŒÝæupLX=÷JïR¡J™Vøs†ìJ§ï“G‰–EFC޵sf9=gȯ=g Ñ|TpæVÔ_ðŒ3Vg2?��t»·½ápÑÒ,éÉW%Zb‚´&å@Äóm¥€Kf!O´—ªš”¸š=@çïœZBv#v#Ë,Î.„¸%ñ 8¢¾Ïú�ã£ï IÊÃ%n2aj05C¥ˆð��\È“^¾k8£8 ûaE )·ª€èéLK��ÆÒšÝó¦,s¤hh}]ê´cž'â³¾U¶âXUïK�õ½b=�adfdVW¬™}ù*ÜUÌU̱êcÕç¯Vh=H„T¹{öäçv8ð×ùÁ¼€É€É[=—©/S÷hÒöÀ;%—��­dá:¢W;•ô[ð ÃF�º°Ö©¸Ø¡Kpd´ÓAx‹–²­j¿YURˆ•Å_árÈôŸ× FÛ¦ãŒÅ|"ËõZðîœ#Es,– äܦHèPÍ¡š@}CeBT�ñf*q’÷‡ oBs úêþ6d±}ÕˆjĮȋ;�‹&Y)�ˆDÞW8²e€€`$ÈCJøPi½¯Ú!rÄæWŽ#;å)úo$iBTóWYÛƒÈ/Îy¤åu¼°^_–üåÒ;Öw¬›~©­¶úÁ-û/û U U-Ð޺塉g%ÆÌJ�§„VB‡éÅÄ0•ø_ñ¿bÎ6j ïTðÉ•á‹È±K�ïBõ÷ .(oÔ)…µNY”ÓêÂu‹ß݇7ÜÆÂó6m_DCì�ëÏjàK~ijæKbšBCc@XS^ rYj�üʇ)†œ fà–!ÉvÉöŽêŽ>BÒÝxq^R"€4·�iemÇ ,+–÷nÀÝeÈãZHŸ dß³÷)8ÐÁÓ* ˜ÛÔ¼ Åë5p‹™Å¡F ’9ö⬊.‹()EýûÕý1¬¨¹‚†dgÃÀÚ|”ïú¾?¿/2Ã1ÃÁÇu½ñÏ#¸tçtgT*Kzz }ñ,„y•˜¿‚—#ÜÄÁ‰ƒÚö`+ ý[q?q¿Å™Óáðyróqå*m/cSѶ”ìçÉ�æÉð�`4úÑ&Z;K‡}oïB¹ôú:R¡ì¶®f±{¾‘ÒSíþ‰üûy²è:ód)¶�úÇÙ~‹+� œêv]q­ëIMºÅpvV‹ñ>Ø}PæS×RY"f›i–¤�cQX¡?bÂÂçïe»< Eñ”)^ì®Ø1R$_)y­JC�„r09¡x‘pBU…xN8¸©O6!É2Ѯ뇹ŽHÑÕ9®9 Ù[™>UàI¾¾d‹Ó¯@OšÍ�‡HI¢–:~G¿€”²¡/0×(?&E]aGV÷€O‘m^ë/S!›ñ’G®âúh_ˆj=Ðz@|Täž \~K~Ë0ÿ0¿ë5�ð„Hö(1�¤@v¸¾>KÎÜŠÜŠ9áYáYZ\¡¹ðN�—¡&e¼°·ègØa£N)­uªá ¥,Üu¾ìH¼n ••¨(zÍœ·Än*N»ƒË¾%[?ì”!Öá"yx2ê( 4øÄöâ©¿±X Kñú=P~­D�Ð@ñ@q�r ¡òR¤W“O—;ûN,)ÏW¼5&ŠMNˆqð\y“Aþ%åcGýúÏ×�ï4„˜ä�ɼ‡›œ|yåå«”¬UÔeˆé ±TN…r¸ååÄ8mNmΟPòPr�H\§nï„:u|L†¥Ý˜bZøYðd jáÆFódøùùìÝy4ÔÿâÇqK‘5}m¥ì�¬ñÍ’eì2ö¬IY+²¯%ÙCdÍ>R–²–%$Yß”¥…,-#²g áúÜÏ�;×gÆÏïœï9}»ß;ÿ=ÏñßëpμßóùüJïjþ_kŸÓh?¾äŠ;vÐæ+ ÇÇ(DÛ™;‚úCFÚÄahc·t«H«ÛÂòÓ„ö÷n&÷›Ë8¤½ëzoz_û¨n;+Åü‡Éµ«Â&dÖ Ù1N‰Ï^ûRÖ—Ú¯ÕÞ½":§cÿF¬Àì{;ì‰ýf¹þ~8ºi-„§bG‡{mƒà=‘bBûµšÈ�[\d$õeÖþsoaRÞgä²¹ŒyÊfUć£?¿±…{ÏÆ•LÚß§-ÕœFNÕ—G£uO8 GÔ‰+Y#žô=/´pë7é=»ßñu¿Nx'r„Ðþ÷š³˜µåÅýê1¢ÌºÉmÓ†û˜šš�ªöRt™;~V«DÁi¬þ¥Ä�Ðí¯lûö£qɇ'ö”×¼t«üfáM×ù(ÝfyWÀ‡»sJç:îÆ§¼¤'´?×|ŽºZ·/ –ì-åEªç]ÃùˆuÒ -¥@£?””œl‡ª´A-žÕ¾ºÓ×Yñ¹04ôÚ5‘2­|ÒÊÇUD³×¿ÎÐïá±­q8I‘-´/´ß^m*¢-„RäPäÐÔÕÔ½Ìg(kÝ 2/Çe\9î õ´õi+IûûÄUa¸,\ö²Úìmè¦Lžy�Fîñ(yd�ZÝi°Ý¦476[ k€"‹õÊÁÒÉG(9˜5�«6z.`ø8)»‘R¼ —©Åa€¾éY€�7‚Kþ5ñú @©¹¡ÈfùSùS£köþ›åvc¹òa¨;±."ÆÐ ŠœÖ¶AâZñµðµpÓZÐìwÐ…'wúAèÀñ 2n@ZF|“Ÿ=q€ÈÛrUܧ@-õÑU¾ï+ná3(ì/g;îþ=;ëòÊââúÅݬçLÔ¶–ž´¼×•Ü•|‡�™ è+W,èEéE§Bø.WO‚´ùqUløÅø™ñ³’OO„7ßM¾›l/¬3 ›ÚçX¤•á½Fëÿú÷ÉBö×Ûm ±±©à™*PùÔW±"²µ¾U—OÚ2Åã´3CüFGrv÷wàZ»æ& x÷I÷€’úa;V;e >Ê—ÎM‚´§�lfÂmÂ\(7a‚õ£¢NÈ ¡Ýœêº*°ˆ®W�àˆàHE€Æ3A3.Tj LÓÅ `÷À^¨Œð¥ð–ˆ}’“ e#¤wµš9>~�¾$Þ4iÁvuu8êZ4\Ñ|Xª¾µ"›üé‡wÞ�_È’zAÕx¢ñ„ ‰ Éú®3S©H�s.Óxš�P®‚®‚'‹hhà§­­GÂOõAÏìÊ´„½*Èaœ§aèV}Ƥ-߯Ž9³+=+BÎ_GiÁoéÇÒÙ©TÃnÏ:‹Ââ²^ð%7Ç–ôsº¸—p³@�£%Lå$ÿqf'Š=³ÏìD¶8³é¿y¸âqéë[ˇŽSÕnû­�­£ˆû@%Åš^Æj¤uD\K¾žZ!Žëô]ÍZ€QlSÔ·T/E\OV­yÝy–$¿´±`¬g޼þø,R_–pùŠnvˆüy\ùÁœÍz°T0xe$ö¸”‘ûApß�sÍ­14cncn½ÿ¢ú$Lµd4úD£e è ó‡æ7|ŠƒžÒãC1 9;•¹×í‡tñA ‹ ¶‰¸XR—þ™Ù#+=3TÈ©uks�\’Ž%Óu>¦à…„:üýð÷?Р‘}gœÔ™@E'qÍôʆCyé{éËÈæ¡òPµz0=˜#mÿ=覿u>Âv•ÏϯjÌT',s»MiolꛢPÔÙ”1w¬– Zþ!ˆç¨"\†­»ôÆ Fm悸XeŽ„„çÓñ3eÌXÒªŸ}ñ¡ë¢nôqïzµÙbèb莜ò¶Íˆ¥°¾D`´Žd‘ø|UçA“s©±rH#9çbçâ<(‡ôõ9õyи0jÜ �}пºäˆÏL ½•T>Cô~ö%U—(,ŸðýGmÌæ;£¯¹Å±ûåNò¬m�‹ì‹c°P°Ðµ¡WS"PÅÅŒ]Œ]_缌ŽSƒêXp1Ç–Buï8^©ÃŽdG2ž£U¦UŽòû÷³âbXÀMÉ› èœ9ÌÖöíG3RAFh»3;èßÏ_é~ãcKhùšYœŠ�Aë»ÄƒÚ+B”¹ü­ ˉ#$)q„Fh?«ÝŽÔR\FQùÍM8Üõ2¿¸gEy/Áe*ãFEë5X ~Œù¡ÐNåqtæ°$kLk ™ùìlËŒ¨P¢‹¯t�ûÆv+´�ÉÓ\‚^RPÏ+…Ðí§µÜ€Óþ v'¨ìdHõÝ£çàºfi¦ÖŸWfÜoaŽz*L2�`Ö!´ŸÓªIœ ãä3,N%¦Å~–a+;Iúà7~SýG(Ô‰žÑ¢ÁÝ‹,™×-&íïÝ.f„”K¼Òï|ñàýC£ŸË$¿Ò;Gþ¿-ë¤Ü£1YÄJÿÐ}Ô�ÙÈ‹,Ð3N„,A³†/÷ Õh㤙Múvgœ:¤¿ôxz*!³1 ËíË™*[‹È²w¸�ƒà�3‘‡3šù‰¹¸<Ÿ8 è}Ú@ hRЧÅZ=ljŠGÆp~º«}3—F—Æ6OGÛÍTX±°_Ú+Ü)2¥…tsËtšÎò¶´ÀüA¥! ƒ«Ú C’V •€k£€S øäì0¢ÒX˜[@ŠrËûˆðAJꔺßü¡vÜCeåº&µïÕ -ˆC[ãå�êdG°#ž™­³‹]„r¨q¨Yx²ðd—;éy´H#ףݕÖPùÉùÉ1bUU5"Ä"Ĭ§£�ÐMK3¢H?Øq®• #:›§`ÛmJwcS'¤»d¡h¾ÊX ,ZÆ\_ Ô;qñ{ÆëzÜ=w­ãºÄäìȵ ¶d ƒd°.Ì‘à#ÞÀ  ªLÚ¬ÿ}ÿ{›û-Ûåqae>ÆP•‹õH¬}rù�Ÿ¥ÉÔ¥³¤³<ÏZ½[äi¥ua�N—, ÚðþÜwÔ�ÌPŽù�k_[_?æ¥Ág±@/ùþ„ÛÛè%ÔM»Ð?vfþHÝÚïkIð/ë_ÖOFµ<�šƒòœôœdSgSw ÕYô-‡ãÚÔ@Åp’á¤]]ÍôÁ•7*ÅõYæ¡÷޼tR» ¾¯ ïÜÛò½ï�âv÷Žôç×òû¸å§…Rò…ä[|sÕ™‰W½C5Hª$¦@²tô­sžWŠÝÇ·”=ÄrµËŽ¡Äÿç½#ñ-î�“÷Ñ$>™)Ì gD§ZþØnëz[ßêãÅBxkÖÃN¢ (Ï�û .U /I×ã…cHb!\’š¶€›c4h@œ"ë…–¶>vaö оÍ:é:é¬2m¢ˆU¹Šq.´~�ìà ’ÉÖ9z퇂_—_×R´|¤¼Ò]øJƒÜ `GŽþ“^Î¥‡ø€÷š¿íS>Ò»+ûº…œ¡Ÿ++×<;?Eq¸mÆ6³×iU¾WËE¾rkc–DÀ}çnq�€—œPªcªcð2xÙ>©Kâf6 ò0\TQÌ‘P;4vh|¨]]¶l—W’Wjä±5„njeáÖpãÊŠ$77y+ýí¶Ï„Òߨ”N~Ö”lU k8öÅ̧&éÂg³¸RÕt.D̃¾›záº6eÔÞ.©ðq¢°ä¹}æð‘M#ªÜÈþ²™‘­‘m÷@äÕÍþóm¶á,“ÉÒº€Oº¶/@‚Æhú'Fï%¹ó¸ó„@™ –uÌ¿ø{éëû1¼g÷¿ê”­ñI^Tñ_¬\i­TLz‹OÜ'.TeM#ì�Û¸Ú�âkÁæÞ ÓY[c0ŸÖ|4÷hμ|@õL<Ԍ͌MÀÆ�þ®ä›ßAÍ¡¸²�¬-¼ BíÕ0;ôèy7¥�&,K±r˜f"KOŸÐíÏ6¢k‹Ï‡¿ã�Ú)ýÂ÷¤çÞB•ÒV#•¯†híHÖŠÀŒˆñ—±„Fh?«¹ï× � ¤4{Ëα>¨<…ga½3œ“þÜm<º>ÓB‚'k4Û¨G¯‹Ð~­6IŹ:Œ`â›(Ê1HªŒÔñ]%�ö(fEÃvÐ휥Qe”mÙéžÕIh¿V;ÅŸ¶b¦è3¸Ä–’´g¦95©,G°mLŠ÷‡½lâô›A!8G¯ç B#´?Ûúç­Ý ™¼ ec–/yˤˆ©ÀÛ+èùv2“ž?[šífÆ�ýJ¯Ž8K“ÐíWk?kKÄ(›wk÷U…íi gâ�¥ïÑI«5b ’(x5 ‹jÔE[JsRÿJ�í«ùÉËÅ‹æ¡ïЮ~´/uo6C?{ YŽå)hQq™qþäS’u�x»Ï^N’9Õqá¤ýoÄcµ „þ>@w¼D¬WW/o= #Êr˜ÞÄ®WŠÇŠ# ?s· €š»¢ uëÌ0>gÕ¿ —m¶Ä²ÄÒç÷8f³H1¬¯3ë=¶‘ç…¤ ºÎÃ’OoŸiš›ë9 ’l}6ªÐÁÖJ=0&•×ßv7á#Pùd@Ç~”×Cë5czZoúæhR�Ãïö¡ fþ°«þ(¾¬­™¯J¡ÛÛ.È+¿:x*.>.¹‚\)«Kî“5šã¢¯ž ‡Ò÷Ð÷°Ï ¢ ¢Mø<2ãἤ‰#/ŠôË- Ø52 ©Ò”JØÊ{c–{–»þ+dô,ä�íNH½c® Ö8 Þ , [Ä +€²g¥�ý�¡´ÊKçdĪˆÙåɪ}œ¬p¢biJ¼0XPíÌ~?oæþõ½šoø:”5”õ=/JÐUμÁ¼!z5zµæÃ‰Þ”ß�cq„LŸ¿'…códó¤ÈP´P´ÐLÏíÉí¹‡‡ïØc,îœê9ï7lò;OŸeq£Û¼Ç¡- l:£^¿˦“l4ýŸÈÜènñ(è¶aÅxô*#~p‘µJ 4>§©Lוm½ý¯wlRëìØ:”z¶õGUìý:ÖÜÈ«¼;s£®ë¯uý“SÜйJŠäÝÊÏ|þöû“‚'–e$!ðN¹Ý�¡Ü=8Òvñ õð¡‘�ú�:e°Ö)•ët4p;ß$8àtOÈ9è)' <'R ,©uµˆË¹+*�9îLôi Öô¢8 Õá=Ä4ÐoéÆgÛ;ñKKV_íeÅwôŽ|%–Înè€ó�ïhˆþ—Ã[sÞøKˆä‹äÓ¥@4y §âÏRA¦G3±ÞOÙ€3Z)ÄTdKFš–åa+Œ„ÔL~ 1á׳™î³#Å:ªEÊ�à"Õö‘XƒYû|Ð|PèÕeÅ2 œ‹¢‹b[Y[—»N¢§#´5ÝdN:R:Í\FSFsäÏ)žS~Nn}ðNé£ÊL&èKlI®ŠEj~:ʱQ§ ×:eG%{NIÓöo:Êÿ…Æ gd«éÑ-¾bã%�PŠÙ.ÚÊpØðþv"x$ÁëŽãÖ7jLÌ›|ŸÀ¹äf|cÁcÁ®µ¦éø>’â8G`ýUŠldÓ; :WY÷˜žÿâ‡ôCZ~‚å@ÆäÚä!‹¶»°Hî\ À¾ÈBbDÜËÎŽ,EHŠº0oÌŒõ21…ÆöÊZm9s)óÝ„ú.�—N¢�ÕE¸×ÇMÇW×[×{5ÐÉÍWçVçæVïVŸ\j®øbTCˆÿ©O8©©ÝžjóHóÈÚЈ[·hɹc±�ÊýçŽmè�Ö®^7ûGöžôµÆ5þýíØàïäÝ|VÔE!{3]_¶«2Õ½Zü1ѱ™mfÿ×>Õ õ÷êÙ§óú§E· ¼]ù,0#Žë„©ósµ½ÁRÏ»·3wìÚÌþüìøº%–$”1å¸Ýf¶™ýi]ËL½×pf×x%ëó»dûÍÑ{­1V�]Ê{¯L l5^ºïç³zý¿:ãr(>žÛ”LN–ÈÌiq\Žé Á¼º]°/DªÎ¸ð  u8�ÓFs #r„ÚX/Ü/V‰ œ•Åe†5öE‚q„tæhº€7vÆé–¹%!„´¤æ³“½ê]÷Tâ,ð]`$fÀ}?ÐL1z‹�¼œ¼<‰«k+;ÎÑ`¬ãê—Å�·{ž @ò?ç|Jºî¤Ð®Ð^¯‘?a:Ùôâ%ðªË p ‚a©öÄ4´©<;öÈANÖ4ÿdR�zNÌRmô·Î~ña“±ð{#çH‡h\ž¯^ŸÁ¡¨È]U»ª"¹ø‹-àÊòÊò’ “ G#§Ic½!¼³„¹áô8õ8ËßÿöøíQ´H¯@¯€þ¬L ïTm¥e tkñÏàÕ {a§ÂuïúÃvÊx­SΟè(á˜hGÿö¹aV_÷W= )åKÈb’Ò0oNÍ*Ü)HHÃÜØø24c ô…éØâP|)´&†!ç˜5ð$žý¾ ©Rw³ÚîÄç¹§œ Ëc»¹�ãGɹ·lGå:¯zr¤c¤C("Ö ÙNq12ΉðÇr|ô‡/çù,ˆIg޶R½ªfNŒ´öŠFÄ(w¨ˆïÙd›¾¿ñGAÖgkÕí\�X�¨l”ûóê*\ÄtÄ45‚áž{á­d_ ¡èrR+8Þ^ÞÞý¨‹¨‹·3m3m�#“‹àû>Wšc¿�λ&S g';ê×=‹»ï‹YMÔÍ`0=ÖÃFòm&c¹úçÔ»êÃÉœ9Ϻ]èdúµí^‘FŸj öXf~t®åÐÑ»w¨ÿõ¾Or�}Ÿ¡u^{û¾ø�mj)+—˜®Ú¨ë&àù©ÿIîApì}…ë±ó­Y‹NÓ„¾´®T2žZˆ¬V,2?œR 4ÅC·¡ÿêžóÇId¦`#FþgÞ,€Ñ…ÿØ}›û6=;‰0|õJ³‚u™¯=°u1×€ðRÿxû;KüñxÑxò d.ÂÅ)A I#íÚ[ŽJFy;ˆQÍf„|< 1ÂØªí#CäCï;víÃêÏ÷ù®UaV2çõÖGötù¯ÀâÀâ &‡/¾1pŒFŒFõòõòhýL‡‹-MB¿‹OJÂ%`0ާ˜N1õÿêªëªC*¶œå­}ùèÖ&FYòåæ'¾•uÊt­S‡ÈÄá\%ÍqZ¤lïÜuðS²l#„>wP psÖKïz«ÞA¨CeÜ`PšTÇ‚08îœü”ĸ¦ZtK=ñY¢-Ñ#ÛZœðI=Æ 2ÃJ.IõòX£ æ~jè±îoS§Îu…h¼„¤Ý yöó[V? ÂTÓ Í“x87PeÒÝÓ¹ëVº 41>é¦íºŽ´ï™­Ã²ÍèCOʾ½>*ÇZ:ùÒ/kâງ»‡û2û2ç”MŒƒöAH÷š«ô�…sr:wí…Á �� † †§ à�Òy®NÆh#’Œá–µÎí·Ú¨Sfà78»'4à(ÙÒþf.“ 5ó4kiI賡ÈM¦ôøîíÓAh|Àé#0mp†x\fªƒs²î})1«1dÜÀ‰÷¿ácóeóͨ™Y§t'5Ë,L¢XuË…”"žÒDúÞ_0g4gLh†ŒŠAž^¯§†kîü„å1 ô-Lém5ÄÜÜR¥œ¬@¦Y?¯.èË æZ{´ÝËC5r �6ƒÅ ´éÁýë³j'+dQdQ´ˆÛA{Y .d j 5•œFy�)R O“&Ä7Ì8ÌXÇlm`mðäV5}5ýy;¡*l§¬i N±_‰S ­ñ|ôƯ•¬5†Cw£}ü�,¶Xʲ1[Å0,¡˜Þu�Ó<æÙ&÷¯Ø©!£í’Ñf@¿4ü~Û"º)P—Û?œiªÃ“K­û|u›˜-×|Ëf¶™�Œ £Þʵ=’^¾Õæ¥Q5rèwä ðÒ–¸.t¶½óã`–Z1›Gäföÿ/C1…yÇ許Kzó”1îeàjNä«DE9å¶ä™³—~§\e,ËðïÑ™?½™ýÏeµK­*%i,ªÓZSuïv´�“òœÒ¿ç’Í¿Tö£é,Ý;ÃR¤ŽL›ÙŸ•=u<´ôÌ÷ §î'šÚüKùåí+{d¨Z\(¥ö7~Á}³Gý™†Ðm›ÙŸ•U¼µg|˜�Þz¶¾ÇÍEª7XjÁèÕý·MΤ±�©­¯x�»Ê#æ¨Nþ{3ŸG†ì“¹Æ»¹ÇN4y 3íŒ?9€ ¸×*:øäŠÆr³à:Øæ¿Ñ÷óµï-ON½ ‚ËɇN��¨o›õ’ì º|�PÑ þ9`»xÉñ¶2æ>B²×Ú»€€m�ž€×€´'NÅ�ÚDb²ÚxÒc]Œ>0 ÿè㬉¯©‡å:V|’­3`ÚðKò9C…YIøé5ÌvÌö¶8È…DÈÄY5$rgj5Öœ °-h¹9PKÌLPë�p7û�kªï(ÔâM £ûÕ€Ã_ÜâWW3¼Žv% ¯O—×Ã;È;(&‘“±;®»©»‰ãÇ;LÙ#ÈÊEBÎ6Zqp¨aÔ°§“SÙà–,úL‹ðNÅú…uÓ�ß]ø1ÿZÜ‚|£NY¬uÊ]@ñ6œª5g!QòéC½íˆ:fBáõ®€ m‚|ÅŸ†�Ї-%.«°sŽ.âT°$ÊCþ¢1 8(ɶ€OᚇÜî_Ý¿–„äš-ªÂ=ŽyƒæBsý˜Ú›àó ¢üžP!ÇA¸ … “„¼ä¼ä–$ÎÒ�¥£n9%ŸOïW�Iór¹õ“_*JÞïMê«�æÓH6ÄïXà«áŸÜG_'(¥¹Ï'/U¥èÝ›GÕ“–²d‹ð ¢ª´¬$nWr=ð¯ïš_g>]Ÿ÷­dj˜*ËØdH8•{ˆo£®[®uýÇ É÷p œ¡Wpâ'Ég_“™*FB.¹ªÒ𮕫é.²„Èw´z�´,éLrÎM¯mbŠîK4’µøQŠ(µð!î•Xœ¥~,ëâÄ@à�ƒ ¤AèuÜö–⡪¡ª» ��bÈ™3"hˆV¾y–Üà> §IÛ¤&³ VØ@21ìcåFœ�‰¡£|æ:ìõugPK>ó#+æ ac7—õ�§tQí`ÝÁêªï=–"ììlŽ2G._Uø|ra‚Pª:áòµ6½6]ö¦ÿCÿ‡fE.Š\³ò¼Eðü´YYŠg¶÷>2¨vÛ“¤„j£NY­uÊF(¾ Ž[9ŠgÿÃÎ1Ñ«>y ÝüZbÔªÞ"»¢Úy‚Ъœ+æ'Iñh—×äâä‘ûÚgß{{ýñ¾Ïóžs®½?ÿ}¯ýç÷Þ.÷ú­µØWÎq¹‡ˆO,'WJ±#y|23ÂÈM§ƒ�ýs2’ÐÄZ¿ø .ý¦v«åf~Ò;êÓËÈm©Æ-:eü{È#ë\ÔE®!#dµì›cÄ$Ígc9ù�Šc»‡šß·ÝIy_lÄ·’ç~x, qX¾+`šYç!#d›eNîÑmé�CO”Xê_lUnÒ–6tÊH±dJï"li²¨ñ3/¬­¬Ö#dÏìñÜ(Ñjw¶&{ÕeÒœÞ5Þ ç9îŒYªÜ%×¹&¯J{s�ûu*vÁr4„Œ�ýo³Yµ{mË�žÒÎiÜ` VÊ\ZX@ì÷RÖϪ×|ŸEÖUÝMÈþZ™ˆï˜ ±Ý—Û�·j5(°k¼ây,b(ð\…Þ¹L *ÅW‹rq„ìÿ/»Ù�sHZÃluRü£¦Jý;¿:~J’„>KåoR™¾ë×Zơ؎+ø²ÿNf¡ÿÕKíaññQwÙ㎔ï¹Ñ�þœ°Öý­9I”ñœ’W/9 ³é·§¢„ì©hu«Ëo½æci£O¢Ö¿—XÏ�¹rþî¾!°ÃàN B«b±Â<i¶Õ»{;R""òfû¸ÆÌ?�¹Ò[HŸDtÅ&ð<ÅõåÌ)^ ý‰w³¬åõU\­‡ ˜€$߯V@ÁõA š¡�6|&]ì�º4ïü±  &öP[`³˜ÂøâЦ¢ÖúR AF®3ýìÎô{�x�@¥@òZ c«JN�¨ñ'´ìjÀp$ÕLJÁ(ü2„>pRI4òêÇg‡á³÷(ßu_ë¨ù‰X·¦âÄ»º'L6VxÏnο\L]¶Y¶Ù4ã]Qº#©;©{ùhù¨l°³F²0¤Ë×�ÒÃApîyîyÌüq/â^¼)m,mŒ&ï—‚wJ+¸·ßáÔò»2áÃæ“È“­:eÿ«S¯OOHÂÑ߈0Âp?8¨\gµ¯\w×z_¥ `QrŒÌ†ò�®ÞP] �ØCàÈÕ‰ÀÐ/®JÃGù7=pE‘²[[Q[Q±+]&¶o Ï%´b®5À8ë°ÄÀm[áãp�5á5aw¤WòÌŠ4ô»Ü š° ®Ø:¹æáÓ¾ŒxúVí*ƒ(Ç:Í$¥çàCGvÕíÚÁtæòJò¥«.Óî/l†nŽ_mÏ­°À°@’fªðÚ�p©õ©õ�m�mɃÛÅ•!aޏb·ÄÃ�ÝŽ_|ã&â&ÌOÊhËh{y…DÃ;uh~C¿~VÁøë:uó-銠­:åð«S– yp¶>¼7Û4õ’>ö•ã²óîbæ„LI›T¹p�c‘Û¤qÊÆJ91V¢-$ð™]"Ê­�b[;°v@+ìÅ(¶Uv ]K4�ܸn€ãáÛu #ãA»!”´Ž´Î¸%äp;Ĉ¨BrMÀ=m�xŸÐ[42ã3@ øˆÐÒ«iA¾ëM﯋à Å'éÕyqã×™bjÕy7+߸5·9�ó1ÙòÙò©ºn’'àD‹D‹†Ö†Ö, 1 BVÇqí|ÃgÍbÍÂ�h˜k˜kÇ@Í@ݚʲÝ©é?f4âãõ(w(ð/0†H’8nˆlÖ)gwð}š?º¶;ØV«¤ß§L�ÎcJ¥Ò`2 ¿ÉÏi˜ðedŽXbç_» ƒ#�Jñø��©n.¯%¸˜àg›ÁïÒ^¬"!ÉJT¨î9¡ÚH™¦²‡,-ÿl…”c£d¤Ì¶øú&|ïD�¨�oÙ ª(+^Û Ö.øócûìZ‘,Sƒéçê6¯Ô¨�ý[=?Ž¿žŸ¥EéP¸Ü8æ}®«ö#´Öݤ¸XæWJ�ƒ† &b´·¯âªÊ­“¼Q%ÒMºZ ·ëî|2ÖUKÁ³ŒØDTDT"Æ U±ýyk©p1Úl¶d@½­û6Do×Cû‚“ÔŠrúrú7?Ct^B;žM@žæ/‹£)å�´@™‡U8>ï�ÎËt2aHÐ4½Dz >¯Ê¨e«¥óÒäDßÉ”|øB÷„oާuýÉÉÔç¬ýU�gá,ë-ëe8e8ݬ&~ˆC<Šp]è/? §…ÐB¤V¬Z¯Z/ÞkmåX±…wŠö¶÷œ³øñ#~æÒd× ¶ê”˜û ßÇ‹ KĘWXu>êj—?®Å\ÍL@¤'&Ü'‘ÿ3®»l6“ÀGf¶àÆÀ÷ OÖ¬I|V;ý¢Çæ±ÍðÏðŸTHMÂ&1€1E‹–|ÔH8~¼'B²T1V¹�õŠˆ�ˆáâ ¤¿ò&ˆÖ¢íT‰–n| f¼ÊRðËö ž8æ~‚œà)3�·}��F�ìT¤œ ÅI:±…”#UËfêš›‹8ÁµÛ°Õ°µÙãju%9ÜÚݵ»ÖÖFwêÈ”f!¤ž¸‚¾uôÀ-<š“ÿ¶ámC�³r�rÍný}ã𹹌iIùŒB»ó4,æ{—¬Jvn57ÿÝ}YÕRÇrž…½[ÚA|[—qUÀ‰,$Ñu®V‘—DuMNÇoù/ÿy_·fnNš›“Üdn.Æ™¾úrzxGwà5d2‰BÊV]?ý«ë·¼ËIàŠèW0D–[Vi™)™æqÍ&Fê$~.·¹âJó?FÌ[MªM F“YÌø|=;°¹2xbó�ò�)ÃF€aNŒ&õ™0/þP…s±o³¸HH®#ÙP�X%ö߆p_ó©FséÈKm© W|êïÜfëšüògÍ÷ÇváÃ6äR ‹*Ij»·�[ÖÔÔY~–nasGju†ffÆckö†]�+i.i&_$_|ÿ¤sr�‚XÁÅÉßn7oDé¾vj²ç¹ÃBÏCý5šž¾œQgÍá!!û{f/kíÕ3d‚9ÎÛ^õÒ½¦  —>À[rŸ¶¯ãÙö·Q#ªØæñ9BöÏξP÷Ø×ÍÞa§È•+GŠWk/9T|ôò"^ÞÙ*`£kfx 厰] w#d„ d ž/›EhVzxhkØë�ž©¹ü€ÍN@Õ‘¬»Tòy'Ù÷©1y6¾’qoBFÈþY¥F¥«'óóS$ê!Ƶ«#^œÕl½?øØH8Îjjr.qÞ÷§¡w#dÿììtàö3çž‘NÕ¥©Ã»dâÛ÷«ò™uèNÇ˰>9,}[~áU_¼!#d×ÌDITÈÙÜ86QÒé(· •xc{äó�IÃk‡}ùF�¦êùJµEêèg!ûOdÓþÜ—U,Ø[� ߊï[~+Ó ;ø}¾!ûçd‡Nk ¼ò“Nù�R¤åý|Û ·Í[ru²0„‚/œ–å¼3ÇVïv]I‰ˆÎ÷À寢žc ‡g¶FSÀ5]Üù;�k*êJ¾6Ó‹+ùÛgmÀ„Ã8ø~Y�Á&|%Ÿ˜†}õý鳑ؒ5’5¸¢–R±5*b„?Có�ú Úa 鲉@&Ž&·,²,r5€¬ÿ€(pïS†ä÷ñ[¢‘®ñÙ©×1ø¼ˆÞ ÝH‚ðßù¶n}w ¦Pª0á4Ö‚NJ1AbN(Zc/F…Íå“¢úÀ•Ão ­G¾£à¢;¢;šÓšÓ¤«ýüU!Ç…p�r”µ‡#&®°+²+z½1€h¼ô­Þ)®Ö¦`©÷.C á¡<“= ƒ[uê̯N%|b‡û0&�ñôàºdÛ½ÎÜ*¸úHHÜ€yμØçŸ¾Šá¢ŒL2P4B@¿¼ôŒTƒüE|vß[©=’Çf¤o¤OöÆA{7Æø$�Ìç@iÏ“K“£Ë?4‰^ßíIïIÿ”1[„0ÕY}�lø9Ñ Et%瀠è§ûñé¾Û G¦(?RGå[S³éè5|øìÓ~M��}<³6Š´†�y9‘÷r®g>e¶a–l2´Rˆï¢ûŸ×ð¥6Y÷Fv] [Z˜Ÿ›Ó˜}´U×ÝÀ¬³ÆI Æ�HI}^òÛ¸:e¾v�ç˦D!/ãºusI 0zxnàˆöÎÁ¨\uØ�Oêt4;Pó�¼›iºiú7Ӄǰ‰]Á� FSˆ¹È |ÒT!R?;vÇœ §�¬ËBv²A^KÝ’…È5 N Ä9@´ú$>×�>¯{>ùòVû ñºÓ\øÊ&��G�Õt¨k驯ÜK.iÔ±9Ï�mºöºöüo�…M(8++ŠÍ\PæS¥!œ¹Wx{{ÆÏ½Ño¢ßd² îܳÔ»Þ©[oÕ²l¿sÛRꃳãˆÎV�rÿÕ©f㺸 -Œ‡ü�tÕÛXýy:-”4’ÈÏ�2<8öae,Jãc'§\ ȱN(b“‘‰,�íç2F& š«y3€Ð U€ô/-»êŠxxjyj½¢‚øÕBbZI™!~³ü¶hj÷}u Æ<� Ÿ¶Tàtiœñ"äÄç— >>QǧBuî>ï�€1„ÍêͤmN?ëé·xoî)‹ÇátÁtÁCÁ=¾ã|NΜœ1Í1ÍQ9(²ø Qâǵ_Y~NLYL¹ŒœU‘%P+Pky•_Þ©¨†Aî¯9kÖôCŸ¼ª,·ê”ǯN­0KÂñ»•ap˜�R¿{ѾO¸—RíÎ�€õpg±LЕQ\MÚ1÷¹Çó&ÀAkT†]Wò1|R�”QÀO éCØh?Ð&b ãÆ¶bŠÑÿíJeäÔ¿-$üÁ~D4ÖÉÒq¶Æ½Æ]\ rG’NEúÒé|Æ­-0¡|œÃñù{wNåº÷œMÈ�’yI©…2'SMÆLÛ’PBf’!ež‡J™BfÙ¦X†:D$džç©b¡Di`›�û}öz×»žµlœsíkŸ÷XŸÿ¾¯õ\÷ï~îûñ£˜ÒuZý€¨r°V¡»ö²_DÄþàÃr9ËĵvŠ|U¾BT‚LÆÖÞè/‹}Õýªkë,;`Ç}‹û–;Ú=qmXàè'Ès/|ƒS÷ áò)ó)UêD=E=yeÛ"Ú"hÍí1�zûÇÝì,rºOÏ]Ýÿv~ƹ$ÐÐfË3˜=|ø3ù_¹×s'ûûgþf›K·Û‘ó´µ™3ŸÎ\–í¾¨¬¡ÈÕZÜï�¦¨°ýòñ÷v²�ì¯Êî‘Y #üï9æ|–¢žÏ§Þµ"ï`|O)¡PGTøÙ�n×ÕP_²Ö�l'û«²�†ùbo¬Üüzgl“„麢mGüÞ‰�õĹ-7¥…QuÞãÝóh'ÛÉþS3÷øÌ¡cZúšûm(v‡—Ž»ÜË;ÀÌeJQæÏ–ãXÔ­´¿±di~"¢çß�e#Sø×øÈß›‹ÍæòZUœ=_‘þæ»NØÅíÓ6¹oÔïçÒvk#û͵Q¤Ñ=i¸™7İHØ‹Ì쪭)'ñ�6‹g?Íö”š£êÏá Ö”¾lxÒš®A>X*õz„ô˜SHV=)²¸*ƒ*ƒÒ5ÿÀõ…埋qÙû'1@šÞ5¹œ¦!úó4ñžÐ�Ð�uaH‡6¤†WQÐ:x£¬ kƾ3ÌBº(M^¿Ì¡‰v æÊ%Ä”Œæá…Jû�v•Žö€Î^)^kfÅ­Í(S3sq 1 ¬#åà̺ͺ—æ–æZÒ»8‰, ÍÜøtŒÑ(8}}þ�j�jÁ,SSVSßx§J rúX¨ThLHDÇ\¤·ë”Ãf§.¦œä‡«býzëêë¢S—#àû2ýAè¸ÞÜdTfÍ‚O\ŠØ uR]ÔYÍ4°ªÎš $#˜ÿ=P3Z›…+x,xì*U¯ .õt¬;Bï“�—¹Éa¼뛯ÒÖ÷ijfÝ€D}‚0rÞ} ãšéÀÞôïdZ.(]%dhHšî%÷-‡�=sw©¹ÄGˆ=µü¸öä±ì–Ü<-•+Æ^ôT“æÖÑ[Sëæð~ÎÿœÿÜýGöÀÕ.×.s“p“8QWÈ*ÿƒ)¾� …~8q{q{þ êêìZª·ToùK´ÆÁgà*3žEüOÜ�ÈýýBÛó Ø·›�ÃÏ�ðô"¬ÙòÓUÝpUˆæyÙ¨—ömÄÄÆså ƒÑŸÏÀ…·˜�~õÂsí:©ÇLvóÜàbñv]wÜ캿yÞ.¸²~9O¬7Õú:ï”Ä7"ñí}X*¦UÒw’À—GÇ1¯–µÅÊZŠÚ˜´í:å´Ù)Ù¸&¸W´XŸã�Ð+ºùÒák&2X»°ùœÜ»êŠO³¹gˆâAi/Ó»´±ž¦Çd’…üŽæÚ)q%è&èö+PwâZkÁªÁ�?h ·“BŠ?g2œ¥ÛŸ¬Ÿ¬ÿûäÆeÈ”ƒ½ Ä[|ù&Æ�q Ê xz¨ä#!Þ„3 8!ÚŸ2F>›æ"¤Zç|´½ù�ï¡ù åžnü&o¹â(n ô£ùG3çA”îO8-­EÒER½c“ãd}[|’{Oágѳñ_„¼™2–0–°F‘â��4ïE×E·Ï;î9i‰â]ûøn»NÝÜì”ñ¨x<\…Ù~,®ãeBñɪïà£7D˱e;ÑÏTðÉ",'IC̓ÀœÔ£x¬ù+¾e„ ¹ ì�Âhz=\ýûú÷eû�.þ/5,"Œ!Ž)À¯Gz[ �±Ì“q6æssI#�èFˆž¹O D�µ°ƒ Hè#ìÇœ©ôrýdŸ§3Cæ�Sß:èü›;!­Ë,'.PG5ëT¥�P¼ò®}®�’´5é´rÉ5¢5¢S-ß‚Iˆàª¼«¼I;I;ys_Ë‘@¦•ñUuÃ!,–å z z,·›o7S°=êøßg2 Ô)íd™<±ãö/Ï'ÏÙ:Ïž�Ûn&ÇSEtܧ]I£ÌwP–8¦d§p,w'û÷gnS ¥¨iòëÚ‚ªÅÜý”¼Ù7k΢Um‹Ï)ŸKj�{¬Çº~Åv'ûïËølo;è“$ûÈŸ«ž0<øªÍBVÓQݶa*ÊÓ^)ôT�9C¸„Oý›1Á�l'û»e�)ƒA·MZF¼rÙö÷F°;>΋âab9—õð›DLFßíkŠ=Qׄv²ÿßÙñÛœ÷S)‰|íuê*¿>¡›û¹O_•ÿ«˜Z„qw¾ÚJÁJ°¢a¾ÃNöß—ùú�)þöÙîÛÙXûÝãëfÙ}Úgëó'ÏëDúJ\QLþ&O+¸_ h'ÛÉþn™�mêŒX_ÕÜÉä'Eµ<ü<f†!òžî†¡Ñ÷/OVF½¯KËp^Â{ßm”<µU8‘ññm§Ž™Œ¬ìÚíÖúÎànÏaO'8æ×Ö7±”)¤>ž¶cœÅw‡/�Ðmæñ¼tˆŸÒºÖ< zü9 ð½Ò&+Êja!9s.€€V/.î¯Ü_xÂ&p¦bÍ…bDEÅUûz@.ºåèÔ™®GŒ#ŽÊCº6 lrü~�ßþ=>£àpêîBã�Âé‘À WÈsŸƒ9Jó­Â„øü¾{”zߺ×Þ.uv§ýg{™ÒÖ|Úš]Ž…wSHSÈéöTm_8VÖûÈûÈcfŸöŠ.B¬à3ֻЂãsçsÿuBeIe©ïþºÿº¿ä G x§DÈ•çXJÒJØÞ;ÿrd×v�ºµÙ)×Äß$áL­Þ"° zŠ>¤ó$¸à;œ©í¼;Ð3¼ÛWj ŸËw‰ Ý²»X ŸÂ²pQa%ÄkÑ„œögÅe^j^ú¤ŽY —¹ V-FÁÓJQà)Úÿ¤‚Âç‹¿•Ð)¥SJ_ Þ�€CÔªqR« †ÿQêç{ûb¬ �e+·ëBäœQ¿kË2Â*þËÇ…ƒwÇ>çû$Ûúµ¿¿¿üÏ~œ ÈÈ�‘[ìà JátóuóQ(þliKH'¾g›;pÈ dE¶[ G G~Øp“¿.HßÓ¹K«O¬™2}kÝîÌ?l÷~5ÚnO~,éé2k¿Z¿_F.|¾pIvyÑ}Uìq ^„È<�Õ4_�Œ)ñŸïém±§C_µÂHLÓq&Z9¡tïú®Òíºî²ÙõX�~c8Ö[E±œ;,×gKQÚñ?ð鲄–›„˜Œ2 nâ‹LÚ°46\ë£Xž`¬ñÇ$ß ù¥L ¨OÓ{àŠ¶‹¶k:Tôô? )܃1òíº$°ZÀÐQ8uÊaÉÁŽXË…x9B†MÞÈATD¦'0œ,�8eàiR{!~ÀÓŒÂKhˆ×B²J¾“�¾Ùø°ú;ZÆ$‰eå⨇ t—‡¶æ!dGò†ö -¯FjªÞ¸±Õ±ÕÏUŸ«~!.’§©‡XúãsYÏR‡wEê®q1s1Ç:èfêfZÅWºÃ;•]Dã^Ïœ¬¥^ªO&wtn»N¹nvª:WW«Ì€…Vøåí„?šE) ßÇà…/ÀGƾ¥ÁÊ,c|ˆ“½��‰NoÀ˜…¤KÈ…Í��«D_h€=Â÷à2Úü­Paöö0Œ‰±0o’“,[®ï> ôe�4q;Žºù Î ð<†¬‚0k5ôBê,²…0¤:àµT*!ñ‡¡¿'f‚Ÿò:A®uÍ(“ä*‹Ø­ŠÀ×ʼnÆ^¤ …áh†±²½/·Ö£ �s&çÌH=9§Ú™CV%O[ç¦,ñî^¶ÛÉv²ÿ„Ì=¾îûÈ(kt5gÚPD2§šÐË·)—‚ê‰×'{4è ¿' ¥_�wÏÛÉþ^Y›Rz_±þ® 3E�Ø7¹=Ì5‘I-þµ�$fŽV³YÁëÒ²<–?ïdM6Þ#?Í?œœÖ-rù ñÕB‰ÎÜd²;Óîž—�¦2šVPÑ5\4©¥ú¾“íd[eÒªås-m—Ïs›M¯§‰_Íž0J¨Ê‹Õ‰Ð`kv ZY«¤åVcŸEídÿZVjޏQ^sd€ÔÅ÷üÒY¼û'ÞÝ=“xH•>œw‘¦|´ Ax»u†Ûæ:ƒ1¤( nÆW¤ë°`H“QÈ©KàãTcx±é½N ÈõÄ'šÆîx?AŒTC)ÌXUW¾�ò%j˜ØW¾ôW°S°Óe ´).Ö6¬Ž$Œ3žBÂÀãæ_D!c¥jbÃhæâ¸â8T?$]Rú#}Ò“X«‹‘V¸{ó׈f ñˆ˜Jé™ gÌNÈ�ïrh#äœ_Å !‹Ã§â‹5N%úÔ¤5«Ô[ã?üf7XïýD2ÚH¥ÁMIMI‘Ž’Ž ,>°hs„|¶ÆÇú¥BΞ֞V´®ÅªÅ*¶í^ѽ"³WÒaðN�_QC‹ëdgMò …7Õù}Û®Sî›�¢Tnk…Û³Þ�uMñÔ±J5OUý>|åb¯ €´bº`á/ƒaøПž«�\@�pã;,·’Œ„XªÊ¿œƒòq5060fÅiqâêEbmøcØÕJþÖEQÁ†�]Çód ý\ü\„&!RW ¹t»E!(ñdn g ²(©· äy6°(Ê)ö´2¤/¹áyòÃ'BŽ!�˜l æMÃVÔo)*³+Q7[Ål -óìýŒÒŒÒ¦Æ‹²p+n+nELELÊÕ—unpCÚJð!(Í�áˆ^½`‰išiš{à*á*!Ù%Öï”ã…Â~Ý©Lû$›KH&Aõí:u{³Sò/—~‡ËÒœÀRT8“P<ÝB„kÂôØ`Íój½d¥ß3h fØø {‚õ y׉�«»€Ùšñ»¸ÀÇ,R�xѸš&±îë`­•6¬ï'ñBvGçy¹¿Ê*Ó(ÓȼÑ€ šü@� r÷1VýS=`FÆ-ž�}B€(ã�aÌ7öRm úÎÌD�&ÅX²?\Eá5ccb{F„jópÈF¸üÖ�VêLþLþÕ=E‡áP¼(ÞȮȮ�²Ô¨‡�ñ^|'†d§á„Y…Y%ÅVyWy�µºKºKúKÔ[ÁçÉ�'T^h{™ ‰´>Éxà8¿Ý<þM0rŽÑ±+ZÔü+\~®ô÷oûÙïºoCe¸‘Žð|{ú¢ÚàlÄŸÏ“E¶˜'Ÿ:ôânLë³ë ·]Ãtd·íºÇf×DbHà~¡÷ÁJz¤ÜÈW/„ÏÙñ ˆª•s8µ—_ëãŸv@#›a�;Ä͆5ÂX¢MH^N� ˜m#Œ qqGÌo™W€³"¹Rßu€Ù•!!ïü©­7pz¡b¡"Yû9ýø„Bºcƒo7�ìŒþ“½;�¦joü8nˆ�›2Ï$×�!2%B$áš3‡ ¡E†Ì'ÊrÌC¦L!':dÊTÊ’!"êó<Ü<íß¾žsís,¿µžµº=÷9çõßûïÏÚÖÚßmï™llîîì7MõÎ}’ùäÓîÊŒÍJ{�ÙåŸ0ÞÏ[EjÆkáÃØÞ~¶"’9Äî‘U©™§vÀ-çkMIs&‡£:å�aš¢%ö´‚¿œÙ�@ŸÙ�Ïì„w9³#ã«ø† ³“÷‰ëò?–¶çwü¿o�:ÈJXt¡ -{½ÞññíHÏ©L€¯$ßgÐË’x.>î H»Ô®ÇRrÝ·íë8 Û Yå©…Í�:@¹Ë/^, £‘Ó�½ G±ñs#ÆW‘�ÕLû¶Xw\~–5MNά´;iÒþæ¬æ¬ C¯="P’Ç$�Yà[à}²êPa�Ç`2†oÉA�”�”1Á¦æÝn†K„K8¿ªã‡njð%ìÀkžÉJ&öKÙ^M-ª{m ö}SÁT>~Pa³CÑh~uŠ/¬GP+Ó˜²†œ”‡rO]b¾�)3¦I@š$z áBÙ�fáÓÀ‡Mð3£€WÝN}7ûnn¡Ä¿ìt~ÍùÌ6¹‰ì Äç“ ù%Š¡CÖ”pA¸ ‡H=¤ß}m”þÅ~i#PÇ(ŒðR†XP&Ï ÁbúLø;eZ£²6~9á�iˆHžF ‘c“0îæe„gQÒî^\ÄW ¢ C°©ðÇA­ ¯ _W¼®¸œÿÐäb…)NþÊLÀL`Ý5ƒš !èœèœ@±ÊüûúÉnJÎäãÍKǘ[æ7“ÏHßëÌzýü™žoüol1/Ì­Kâ2[Õ_Öq­±éD¨Y²¾N¨¸@HýKÌ4±r9�á‘À ×þ¾Va ³w/øýć×÷L%(˜ºhUŸ:Ì‘P>÷£&å° ø2ë•yÿž0®ý˜¦Aµä¢DÈ7¯N­²uDÔ±-7ÞQï~V© žùü¹„x¤Ó¾Á™I \õ¿³­\·“ghŠ}ï2­‡°GÕnQÄjõ&û%ÝîN˜ðõzý¦�×m{×þ9MÛ» î“°@O?ÁÏÌR™¯‘,·Œ\+ÔŸ,ZûÅ>õ´Ö‚MÂä\õÕ�ñ0>“I² {þ°ø¬W7ï¬-Üð`]Htšj>2½¹¾ž�úÅ©"Í6 ×pí¿¡ÕäV$G¼â½{Ÿé—ÜYÝw bäTTê«âÅÕo7Ž“eó6ŸY��$ˆ�Â5\ûQ-=T]a½�ÜgqÊ>Çí£¡˜ÃÁ Ery5N“›+ ÒÎä‡Ü†óÅN2tá®íb.{{cœÊ¬ÊGc¢–´»egG—»DÍ3§ÖѺšˆSJ j»Åã®ý°–íoêWg£JÎo#M¨ã±(Ï®eœ82³õ¦b8¥¨‰!ì•ÁB„ƒ&®ý˜VAà¤#—bv16ñþ˜4s©.~`1=¯‘²¡AµçKáð�Æ´{fS¸öÏn· Rî Äù»tÚß=Õo;ãáIð3}âÿÛ2te½õ—QÛèÿXÔ0¢’/êÀ=ã” ¢Æór± CžéX˜‚¹ïuÆy›oIh•þºã,šuù„¥`C±<¥ÅXÀ Ó|@÷ ÀãØD0?Ôë4ÚÌBi56�«7²i9b};Ýõ»ëÇÌš³SÀ$ru[ö˜Ýk}]ˆ;ûp½öñ)QNoNo)Ð7P=…” HÎNMv›Uà�àÒ#Í�Øà¢©<:“ÌAqûy¥ŽÚ˜…`Ã3K¤^$¸asMšòbýÏÃç½fο;™«ž©QÔ¨CQ¯C žä?É7Q3Q«ÕüЯ:âbÆôàe·”èKÑ—_šüûüûF”¯Û]·‹Ø$�C7¥1üÊ‚HŸ]EÏóš­²‡}ó^› ø¾)_Ù;P ©wÐ ìH‘YußüÌÄ0U�³½\Ì}Çü6fPÓW¥1Àgó 9 Ú%gmlÉfñÒcþúU"]?]¿V³­ÏN§h=©Û¼R˜lTéZ” Y–áŠr§ñ!é!iµ\Pd>È ÓO 4g2»íàS7 (G|›š8Çi1‰eBP8í•,žyúYlÚJ‹–zÃÖ¸î­G¿—�°tJâÂÛÕÆ«Éq¿q?†^Š��äPïóÞçiÓkÓg%G71É�¦˜L=‰ú zºzº†tØ2Ù2�‰´>h]gä3�njã³ü�pÅúÚùŸË|쵩;ß7%™–1Åš'u-‹V“Sêô…-éiL57ŸjžÄ)ezmÚ®bª¼U°øøÀó`u3_­#Çp#�è ²“w"þþ«�½ž³Sªšæþm5Á·AP¨ew€\‡;ù&¨óò0ò0 Š‚$_‚*(¹ÿä�úoúv€*$ 1Ú€Í7à+K ¼ ªöñ}{u@‰ 3QúÙ[—·Ü¸5Û¾¼&ÐjCZÐíîHÝ`³>BAxLšÐ*³6³ø,ÝjZÖݨk %,,‰3¡ìsís¿ºÏûÎû ôèWéW hpÐCŸesÓL踰º%DDÓ´ú¾˜Ka¯gÙt–¾å¾¨ôp.ÌK „‘ñÜÉ3›¿¡9­ô�|˜ð¬È‚5ѧ\·x›Ñ²|Ùêõk�}ÿæ³lb»<Ë6~ƒÍ±[)¦Ä†ZaØ NÑh¯­~ßz^WË(bÿ7h¢\JƒKÍ^kK˜z‡L–ì6Õò’lç1É6×{T‡Âîð?°ç¡é¢²}°ÙR?ÕXNÖÙ)(&(&€¯(~§´“lÛôó„;'Ë'€R{]™©‚=†=D€Þ�€Kdo@ºU­Û^¤ÚB uaüØà�ˆFk « @gœtËÂiU°qTMy®=eÆ|3ÞÈšd$Ìù¦;Ã>úÝuûÓ &]']E¯:–ŽgB‰‰)*ê¦ÃÉ‹;@Æ�0•<îI„ÒïÓï{{¸ ëªÙ}°û $J´‚ñ7YS¿øÕâýÇzTž’c{m*èû¦Ø†H¡JäÇ Ï^yc«ûíáx=¦TùR€…aaú¯7Pq˜6·â‚×¢DÚéjûJÑZ‚Œ‰°”­{hK¯Ü©É´É4% !t'~´Œ²mé&€~Ò~Ð)&é€FýlápáðÊ~Ðü�º5£&¨ú Ñ6qÀ93“úilþHDÙ“¥ê>½Ÿ÷s8è Á¦&•ïEõiSA‰bAG^«Tâ¾$Ýb»‹¼=6åèëè{Zü~ú±-¨[¶·lå·ä·²Vh¶N·€.ôa BøˆA-Õ-Õm�–š–zþ¨E¶E6‹ÅYk{S<¾‚õ\#ÛVËÐè„#·úÓf{=˽~þ]ÿãs‰Y=–xÃî*@>ÊHðm¹óv�NñÂGä›n²Ë¿ñe(”¦˜ÊÐÖÁ5\ûO^�C¥Ø‚AÈ w‘,â­—®+MÁ¹'ÍúçüÝê"4B™Ê`)wQ�÷q ×~TsaU!Œ‚‘°°o +ÎŒ£'™~ÎJz㌊¨M3çÊø’©ß£Ý�k?W›>vô�Ïj´B^.%€’Z™iJóB¬a¬ª@Çüy ãÔhÎØÐâAbtjR�‚¶·Žø$ŽI{úúD¾51œþ<¬Õh% @b0bT­¢äØ™ø‘õ#«Ý0$Uâì„ø‘I6ÅbœXD€c…‘1ÄÄ~f„èèÌCØ‹zî¡ÞªSý\‰�«Ÿ<ù�ÉõÜ2!6 r¡”$ú�©¸ÞPôuñu©µO2K_€Û§·OO¡€Pæ  j¾ qT'tnè’ œù²ùr¾[kLkŒüKGnGî¢wüð}jõlpªÑ€S æÔrÅ ¶ÅÍö! þüÒÛÕyŽ�ù͹>û’ekT¨Ó×áó´Ï–{ÕgÐ\ñU€´Saøócþ¡/ÍϨSþ~²ƒ}ˆ%=“Ol O óîÞSUZ?6ëzäz×y]ý)á*ÏNŠáˆ–Ïݲ“[oq%T'¡úŽñ �fî¾e¸)°é™ËÑë�âlxO§i�1¡rÏ®ò¢·^+'T#3Ô(pœ ×UHH{§z0zQb/à˜½êŒóɂċ ¦6C ±yßóÓÏO'ßú„Áçå„óÚë¾'û°XëaQV’ÕÜMÅÌ|Õ 2\©òœ�‡˜6ŸÖÅâîô[¿×“#ÄÌï쟔®¾ï‡¨Üº\Œ0b8OLÒñ6ù·'†õmß,çh¡ÉSU‹Ö„7&wy:_/C/CbÒª‰+®a¥aEyLyì½Õgï È>#B3·kyà(8(8¾‹ƒ·fšGJ•>B� øç™¡eÿ¾cC7™p z9ç9ûîxmù*èÓf;6ø=™SÔšª2”÷¾Gi—KsùâWtl÷V¶•ýOd»ô Ú ŠŽT|ú"C7ürå£8&IÕ^@×Ê­X?Ãl¤†Í÷fÊ}Ž­ì÷Ïœþ*Z>4k³Ê¾ŠÈ鸭٨8NY oé¬+É›ý:îm°¹´AB¬ÙV¶•ýg2±á¶™/§V¶?È|ª”Íl"ƒ¡aãéì¬>t_†WtL©À9*Ô¾ŸK.Ho+ÛÊþ/d6Š$ÓA3$}6 &ã‚çÞúˆ�¹[«Q1¬,ñÎ'"V¿�z�j+ÛÊ~·¬ÿ\Ÿ„mM^²ký‚]–u•�a®B†Ôáæ�Xë}®éÛ“·…1çè5oe[Ùï–1v|kñÃÜOø\Ï]|“TøŒ¯ÍªuO¯öSÞ+ÓæâÔ–‹è;�þkQÿÝ™ÀùJ©=Ñe­Ùd¤™¬"ñguTX®Àç@×KxTê{ ûo/g 䎡7›Å�mÛvïÃ*|¨'òjï)ÅŒ4…ò„¸¸²+Ìì·ïŒ‡¢ )þeVÌ¢Ù>»Ùc�8¦êò·ˆ¡.FÖwõÙßã{Zø´�I�š N‡Ö�ÊŒÀG1ð$åXµ}æ´³Ÿ¿Ÿ?¦R(‰h¾ ahÁÒòÆþÈex%ˆªÆŸ« ^&@줗5hÏ£‰áÞ­zÑpx­Td2_Å~HÀÊEÎ÷Ê��ùÜ÷B´x·x Ê'•Œ'Â9¶;¶ÛÒÛÒ£">sTôA¾Ü#T>b4g�¶GŸw®ðªðº²$»$KÁ!½ïTÉûJÎ¸áœÆÛJz²À}6ëTìz§ÜÕ>¶À5—ÑâÈñª‹bön¤'´üÙ¸`øªÀMj˜@(³úÊȘG£°Ö½^‡#ä~Ĉ§lò(Àüã®}ø¦”¦”¶çÇÑác×Á ÍÀÔyÔÜï𠇱H%*§‘¸Ô]©»Ò€†ìÈ…¨`J�Œ¦<ÉÂZ –‚’Åxb¨8�›.3k{>@¼®¡~íY¥W#Ɖ¹0MY½véñ=§Y¥YÞ•ssÖ”Æ3Ú™zëââ)¿»·�-Ü’Ù’ÙÉí'·WY”Ê_„¼§!t`À¿®6¡6!¡®0¤0D¯)±#±£$µ�¾ïó Ñ\¾ðÓÉ#›\ñÇtwˆÿ¢Åîû’Ö2�0Yiðl›üVð«ñûlSãÙ;?êsgTúdêXN’ˆ1ê¸æó‹5ϾCZíf*Õßïû6Ø÷ÑVå6¢�O¬š_C¯æ>,Ú¬ëqë]¯v]%УK‡C^ÄjµæLŽ÷!$K)V”å¼ d/=_BhÍ­?P Z�˜)S^àœiÎÍ!¦©/8hØ‹/üTø)ßSAWðÉ/âŒÓcÍ÷†Ûú‚Óú­A–1ß'¤wÝÜöÿ„øGA®\‡°Ï]ìÅ@)´€NéZ01mÉÀ¥ª ¶“j�%#þ/÷}WˆÉLAõ¦Q'ñªZ"”|üŽ›'%ö>¡Û˜ÏZâÝéÎéN}�©©p*ë­2­²ð•‘¶g ´„®•WÛÂÍÉÏÉ3¼q1w1?´çgÚÏ4¯Ù<‚³XC8gTô‡® §J!mºï‹_ï{öÁ.¸Ã­×Oáx Nwì.õ#T#k:ôò¾T<›4ÌIHØB×(�?g ü‘þðŽÅêGG †£–ÐvT.ÅÇ€aÀ ÉžÇǼg5kñô‘r  &ÌR�¼û�“IF'!4!”Lr# ’Ö® ‘é•VÁ¢©t(�ƒ—�â‰ñxo§Ö;ZùöI°;^Uõ1�o18–å5RøcIJ*Ÿ'­`àZ¸±z�·#‘#‘ólx—á4l4l�vH»ò¹oǵ�ów„üùÈpÝVÝVHk Œ&J×jÂj‚á!ß ¼SY~¥Ñ9íÂÉÊ{h&^ilÖ©„õN):픇kì7‡3R™ê�áø…ë5¡Šô΀‰7ÀG�—]ŽPÓàB9ðmAŒXø³…“ÖíNÌW1]àÖ‡!¾°¼°¼”_Äñq¨à4¾Áò4“XÆÏê@¼øÅÈ8k+¦)¦ÑšA0Z�6¥|)ˆBm +� ð½È4ú “1 <ôæ¥î󃨘ül¬U™ºFŒY’÷›”Í®ãt¤F¹ Z©'¢z�ô7vyºkzWõ®jQÞ<Çkìpºë×´ú´ºfµóàý(ˆg¡Ïd¦H¸&Ï&Ï<Þâ7Åov�ÑsÒsŠ+{ÿó;M¨S|Wni„½òÍ{ØIÚ™Ä|³}üž,»XÃ&ŒøÑÀŒ‘׸׻g癤Gÿ•ìsÐ vC%S÷ÌØw'w,aÚéZ¯ Šf™íöÐïsj|'k'°Ð±•me #]5èØî0z¯ŽÚ¶Ô¢Q½?"µ´ýV¯C®«'�yä�~�OüVöÿ/;ÈrýrÒ1}>…ËBϘy™Ú2Eë&\(ë¨8ÃW3C±Æü¬ hàØÂ‘­ì/{½Ôy¨:ŸM/ö‹ÉlsûÏ$Bö»OÜv/[zöµÉØd¾g?‰«ËVö{e]¥— í<þ!ˆæõ“‹OêºV¸”(;ÜÕ)ö ëX–Æ}bh9ú&Œn+û½²/�™Ÿ_-º×†lðrß?xmÿO‹ò;/[ÝH’{r;ËE,{ëbç)ÿG3ÿ$$Âjuè�ÓN¥’õ�ÀÖç%Xe�¥�ÀÀݰýÄdfì¡ý‘Û Â¶»¯Q1É#&UH;z¥ÚXZ=³ŽtÌ±à›„×”i@çÆüžËíÉJÎJà{e1ù N4S4³;¨;HBâ´ƒ„>ä<'!ÉÇ(*8�P�PŠ“ÂÖN_�¾®¨RQÃ;ewëP¯æà'j2wd úy�Mgv‰ë�Òf k…«åi‰½ßs¨¥ e²Ì’P®jÀmb»¦¿æ+NH{‡Á ©p©È �ãÃ)C¤ý$&‹^ž0¥Ç'rRäääYïa|šwpÞìÆjy{I˜zS9DK«ÿA>ŠÎFg‡æ@V) äa£¥Òã‚(¬ƒk€q à�Ø�BLä+À&2ë£S0¤·5SJ E�OŒM¾Ù×è©`™;&NÉÒ6ë=�åÌnÌÕ½’�Mƒ~(¤V´gŽÊ‹Ê‹n]÷ ÿqFHK¡€Îý ’C“CsŽ/îdÜÉŠöf›fÌŠËø|ZX/)ßÏýÆw±ý ª�ÏsË7›O“‹+ò Ð"ãWË1ßÉÕj3´ò½²—rÌn/ *[Hj¸OíB$4˜XË§Ô NÊHþýY“ŗ $=´ÈXsæ…^†/¬ÈlÖõ¤õ®×¶N!á¼öêÑâT~ÓŸÔùõSÖ=�P†,ùs`TîÚÕæJÆ0B>gÄÿ&ÛÃÖ€eêQ&œø�+Äü±s4Pˆx�Ïóƒç‡dû|Æ´8áMX‚†uå@¤$Ù(„gJÞ‘é t¿5�5�ž(DV¢0Úv²–û^+ä¦.žQšRÄøÖí)Âù$:�K£(«Q5b¢Í_äò˜äýqXBírÐà8=¯&†{vcñ§ÁyijÊ=õ$�p}¢}¢ýÿÆÞ�GSÙö{G¦ QæPB2 ÛÿŽ€¦�~Âä›u* ¼§¾hwú>§0FêÂã‘”«Ü\Ô¸BÊç‚�Ü$Ô¡‚Kĸø—Ö–ícñ§¹Œš˜ˆCøpÄi*:c‰?°­­®­rk“aãïÅàòC”áö¶¢·“8{Õ›•N3` a €,ËBv ^†¸IïTE³éW¤k‡÷çœ×ÈóÒ3š3§‘Ï"cÌZb Ùß? ²3\›®b ŒgÈ·i²]+çø°Ç#L¼tb%QM9Õ‘äÁÑì(SwÝBöçd$IÕþȳ'ÞYïÐÈ˺ÿÉ@Þ§›™ç˜�Ø”Y_X¹]^|�èž:BFÈþnÙœsÔGúÏf‡i´”(Æv 4½ÊI*5üYà!2\?¬Ø<ͪ«GÈÙF™‹‡Ð•W™"ôÊŽ½TiБ±:à’•zŒ%³�ä@Sƒ Êßú~õ“*BöÏÌ|%Zí¼­Íñ4|Kn÷š@¥Û7ž¬Yª¼¥“ß¼ž·Ö-¬Qu<˜ž�²ÿm–Ê'§‘ÿêÞJù÷U#�¬°úu¶óÊÙ¿„ççéöz©ÞªÓºEÚVÕIÈþ^™¨ß˜9±ÃL1™eZÉ‘çJ¼Žõ�£¢B* ²m©”:z'²ÿ¿ìPòó\~-«Õ�âùÌÚªuƒþ5û·’$öS™“Îöûór_B<»‡�ýg2ï^%¥j£rjμ*ù?&ìôÏ=´üH”õb«€AJpvùgb„ì™XÕË纭Ç2F+b-–ÙÍœºÈ _»¯^ì¸SÜìÀ¯ºÍâþÙq³µû[ˆˆ®o!ÿÇ>õæFâõ¦ƒ�te. ¸¾+žjâÝߢ¼ó]²peLPøR¦T€Owí1~f8ýÂ'Ì|äð®�² [¨B¨Â�Ö`)¶ê==_Ñ"«Ž‘ßÕ � 7Ômu3«=~xü8“½ é-ÜF yýñÅ54³ @ù@™Iý£{@å�|òÀRHG¦ØwZ:‘u|Èbžw{kLó#éú„,Œ¿î³j䩺º1EzzÃÛé·Óo(õ�»7¢6¢V™^™Nu…Ãä|$dvW»»y8œ§¾§~¹ÁÂêÂêN#ÇlÇì»ËŸà�r_�¼(Ÿ8qÊÓCÔ6X^if³N%ÿîÅé>¸R;ö, ^ÛgÝÇq)>ºÌ(->5]Ôì`ÅE™äødäÍ �}•ï¨gú>Ž£W§ð¶-ÎÛ’ä’¤ÿYíSØ”(1áhÛN)9ÚO"ŸBŒ¬—BX”Ôꈯ¹�d�–ì+:Å5ÏghâCÀh‘.ÉÆÇ+¸³Å%Ú†ÂoŸ]ì”ÙÃ�OôgÞxúÜêϵ)æ³Q‘æ¬k{|Â7æÃmÖÝ@ùie.l±¤±¤‡£ËÒ°=y€á_�¦«“ÝèJA"?…ú)ã�nsÃ:Hmeüˆ¦‰ÇpCD;ã³TíæPÎ�$è8õ©)}ÁçÓ‚ר–“ÁßeŒŠO–� ™×ˆØé6–-Æ@…’GÉÏš0 í�ËuÈu8œw8�›*ð²Lâ_¶á28›5§×¦×6%û^ñ½âà@�G�G϶¬ux§¤Šœ^’êwöÒŒ©î·ypv³N¥þîÔNõ¦"¸‘¨€EŒŸ?Â>´¤íû9„k©¢ß@O*HÚNÐâ txhô¥?Í’¯ ¦a|¢™ü�K�Ê/ yºü16�j�jÏÁ³lëU>Íh‡¼c«i«Ý �Aú�$ÖoZ$í$íX !' D‹w!¯{Qh%­ÀJ1pî-×~|O¾ÚlÂL_!KvÚ= ÍÑð!>>7“t•W½ámPÐ+2Uæ-Σڻ±¶W¿ñ‘ó‘'‡?1·+ˆÄv\’MAgáÞ;› M;Xu°Ja¼ºV–Sm Þ©²)Í×ÛÌãžd �ÉŒg 6ëTÚïNÊ�FÂ¥ñf`<Ι§Ê{á’•�ë#“¼0”má[ëoùW‹2…)0˜ºúl85�±Kv¿ >¬_x^™è;àÑbõcõ#xwQb{ 㩚NKØOàQÒêYȉ3Uf%Û}ËXŠYŠíÜ ì>�;Ì �èO¥�hä·€u Àu ¹ŽÏË­Àöž•é½é�·Ž j-]*|b"%�¦K4­�Ã|J •â®U„,o,9…–9‡œ# {´¯ŽN"O"ÏIÜIümY\OœD‰+‰õÎ"Ù"¹)w°l°Œ|²×µ×uDËc>‹™5-©˜ußñ =›5×’mÍf³˜ðßòö§M5lgØ8:eœÄÉÚÌžëݲ$ººç¥h;QMƒ‹ZZàÊ¿Þ Š™Å…f1%7˜Å 3v ýö½<Ó]ÇÕvJAhb³®ßüÝõZ‡á ÍfbäºZjÊêPð9�ëãí \Cç¢Ãµ7a¸,Þ;5k¡ÑÖÀ;b& ž|þ0|¹D5€Æï1غ‹»‹E¿>âÀF6„1¤‡¦Õ0¦”‘ ¼‚4ÞØz€¹ø óŽÎ�§x » ÔËE!4�üWÑJ¾×8Ö«}©ø´‹—>R@rÎSëÔ·/ããi¹›!k°Âíx„ßÛs>5Ó#Z'diÊ7v¦óf"··Ûõ7U§«®ÀÑ¡èPGyŽòhݺÌ:Ô É«Ä¥§ �øWÎ{�÷:ªº|qùR}¢Ù·ÙwÁ¬|Þ©i“⨤<¿ëÏ {Œ«ölÖ©ôß�¢×¢k†3|`P�1C¥–àvSÒ[Wê·ºI€7™H+å`Ýk\ͤµèáRàè€æv Ù]o]ðI»¦!TLî#Å&Ï,ϼÆúÍ›C>Mˆ¾o`ZFß«’ó©‡å{ôŠŠ#ˆT $šfÅ’uÌ  íå @w 0ÒbÅÇ¿¯ÉŒPƒ8ÕE¡ôÊëïáã�â¸vcØ3ßÔ�mx2×Üc%á̾ö� 2íä-p)pQ¿oiÛE ÇVÉVý�Kb‚” ²ë:®õËÈ*8ætæt oVNVNú…`õ`õP”Ü6t§.3@�Zý šÄ¼¥< <]œ4iƳ¹9øÿÏ¿Ó;oþÙ¥€¢ŒNo§Ì#Ôï¸Â#±ú÷»@^1ÉK¡É-*i€_‘³2>»z�h¥yÝvÈ/¦­AûÝä&ñQµç<Õu>Q•ÉþëAžè„¶6EA1¤íÆ8m™¬ê»ê»ØW‡oüJ‚³}bûDt›è¶\S¦xñDˆš ®»õã’pÔ…Ô…j¹Mš.Lž¤ˆ ˆ ¹èÒïÔ°ïGk¹×ݶò¶w„îozß&¸›½¹ÓŽÔ°ÖƒèÌl»Iº'1®3^ÍT€+1C±­~e?.Jõá—À!í½ž@[�Ü(†„õ�T|êg/©TêóØ„Z„ZÌ9k±‰bÄŽ¡õKYºFîùHŠE‹ð|äc]w]÷ViÈÙw�>Ž˜lˆÅ¥Ìd´å‹Àº.ð౩>×€ººªZÆ@ˆ¬?B2Ü h>/*Ne¿~í·öt¢ÌÎ~k­=Ûž¥o ñʧgGòŽäÀNSÏ>pÎaÎaÚÉÚÉ/“­n¯AZOá"™x­ çÛéÛ™š¤a¬aŽ0³1³¨Íßou8Z»Nn™ª¤&UCå‡Bµn¶ß Ÿ}Ú«íIÓÃ7k?RtdXmÀË…¼{÷¯ìg¬ö¬2ý &¶dÃÿ¼ß*½Á~ë-rdÎ}Ki™A²ø4Äf]Ïï¶Pî�„£î4 •âqñp"úÒr׈n¨ ^Mß›}2í!®…Lh8"é}`6p©€’ £À§2Ÿ¸ÇÆAÀèpÈ#l1%1%w>Ö‡`›åưÕ@3¬H¨æÂÎB©…¢®¬þô1121Ê~ 9ðRè»&$µo¹­¸ö¿ÑE\óÕøwWÓ©¬z?BÜ;oþÔúÅoŽO‹M�Hâ÷žŠC©Æªs"¯R›VnŒ9¬ekÎjÎjYr–—b7\Èí�ÛMtMtº+EÝÉæW\õ†¨A8ÿNÿN†Ã(èȽ_µ¾jM¶¦Ã;åàgéþ_ìÝw8–ÿâp[¡ÈJ!‘Tö^ J$dWd¢ìÕ0BöÊö$›¬²¾F¢Ì’YöÎ.d !?Ÿïý}Îs=÷ó8þ8ç:×÷üŽûõßûï÷}Ý×gÞÊ£{#ñXåï$»ìÔ©Ä­NÉŽ æá$(K†PVŽ:¹ ðLªb:Fìi3™K’uè`r~û (Žç”ŒûÅPì½‰Š° ½�9L3´³ #('(ïäx.ˆnZ%ÐÉ09‹p4=ËÉ‘“y ;ÐI×N×NÀ‘ㄸ8C?+Ÿím©A:gˆš'+Ú±qV4i›%%k sºÄLJže`£¹dÅ“~´P„_¡ÈÀs�…‰iøn¦5åö>.ÆçS S ÛQ‰e䃻ºõÖÖòrùÚ:¹Bž°a¢ó„›IžI~w٣УP†óÜÅsMñÚà�*�SÉÏTØipŸdóQ8îŽûBžouêvÅ�#\bÒ̔Ɠv{m”$zcw?é¼o¦÷U‘È™Ætíá% ªœª84)´ŒB߳РéÃ@HcR S?S[U�)ºÎ“(>\H~�Ž=vˆƒ ½}JJĤxdêÈe6d3¢H=yÈ]e�äÅ LVòÍc±q7:F¾@þ†|yµ�Åæõ Wl\u,ƒæKeâø ´£n;/Ó?|ÓÌ·½]µ{O'žò¼eñ÷Á�óºãu'ühøQ®®ç½Åc˜:¯-VÃYšXš(¥èÛêÛþPýÞý½{ßÜžìÕ¬ýënöC’×Ò.PÕÎOÝ/ðÖ6רi þMþWîõÜÍþþ™§aÔOGÇ»9¡óäU©S“t$Ú¯Ë] ”ek|ççÛí9º§Ôbnâ�WÐn¶›ý§2ç\]"S~zÏ kïŒéÓdóÙd„k2Ö·‚.Çä^âÿãG»Ýº¿ ;Qãn¶›ý§2?Fílá¦ö�Sæ´ñü”mOÍ—û=†‰:"í}|®û„´5ˆs`øn¶›ý·fÑ©½§Ô4U¨Ì÷ì xýÕîFP#›þž·ž 6ùí—©ê VçG;þÝY:k"×g ñðᙬ\Ó²)>øØhSÊ*Õ¹Yrå¾xz^¬žØNc£¤­±Ñ> ©p¯D Qîµ~òð—ﮨåÀ$1ÏL™›%>HÄTä ݺ-ÂxÜPS3ÿ„“ýd3ƒ±: ³Èû º¯�_ãªÓ¾¡c×@y·„ôÃ[°Ð&"Š€pÉ_˜ïTQvRv"�€„8Cô&÷@zËÞ#±õ&d€ÙXJ6ÒSÀ!DÊ3^Fˆþý}WÝ´/asJÇ«‰_ºHÖòy”ñfL‰ý¢ìå÷© Û«»Â ±t`é@°¡êcµi¸9œ9œÅÒÅRRV у©�—¦˜B�CÇà L L˜F6¬6¬æ”¹H¹HqHÌ*à�z¶·‹º3�¯r�0ú:s§àN�JÞêT!U€+Ü÷йw(1щ=›S±KÄõ˜¼ó~‰wqTÅ…`Òéè“h)ÕòS‚û­(Ü«¤°Z8– ¼ìŠ BGDÉØŽî£4JÌ’Fô¤p©Uâð=ÜýâÜæüüðü0ò?j™�Ö� c�™YÁf$"B¿÷u=‹ ÁG€û@3žö($Œ=+?»+;AW›aíý]RvÚ‚*f�Ïú<èZ‰¦íØž¼m&«N“N“4eïØ[8qqš‰¡‰¡.ò3êt— æä˜DÉýmáĕĕ”(ŠН·1þ"ut >.?å’Ïç KìéáßœuãÈNsàðóÄýì�¬6Þ!\”¥¼&v—ž²—´xk$-ôë™»¬ÅáÐèþó9pþmæÀOÕL�ñý¨WÈ)å±üùèùå�ºž²ÕõÁˆŸ¦p–g PÓÝÏ*I�}ØÄT°ú�ˆáZfªýš—†éÂÀ|ÀõÜs@‰Y'…�Óݛ̲²=Àòc±At÷f„ö£‹PD9.ŒäaN „Dµ /’6Ö¥àêK"$òÍ�§+¾J±«�¶AÑI¤7�@À ,wÄfÝ ´ÈöŠ÷�„¤�á<’óÃÈæ�ֺɧ;k¯úyåˆõ%m Çnϑ˻´…¯…OB$JkÕNà¦ÀÍîn×S-¤è'¦£U!¾p½Í½Íþ?,(,(yV“W“íŒUEà�¹å˜MênÛrŽ_5¼2˜Cs§N¥nuêX-ó'¸›:Ñ$(Ý­<æ ,!bLˆÛKx€ »Æ1+‰¦ Åý¸À苲?‘¸O^(ŸmÉ­±1¯¬¨ .˜ “à•à%H÷çG ޲ �äS#·èPÕ]‚ˆ}võê©­xUñÊ¢`©Ió‹‚„½T]D2Uøn1Z—±éÆÌ8Œ]ߟ†|›ò¸ÈC=¸‚ ž}î9B£5‹Ùóñõjß·Å-«ÀaÚ^—‡œþð¥áKønÇè_Âq]çºþ^ù½²†lŠ*tZyõ�÷ø˜ Nð Â�Ž;'r­õxëñËÞøÞø7óbgà�Ê–,ϦsLvº¡Œ·S§Ò¶:%Ôgä ×Bù8Ef¼Öççãô«ç�0K¼ÔB’Ý ϽaÅ”‡ë�t°¹{X�SQÔ?é”b#b×õ´  ;;vvÌÀ5mrE¨G 5MpO�Ä ssÔ �öýÞÈÜÈL0„Ì…Üa¼çI,á‘Er,Å�7“ò™Øt§UV6Á׈ åΚ+×h_Á&M2èew}Ǽ·A¦3OÔ(هƑÈí 1?dytëÑ-–0›Yz8ù4ù4uu›sŸW¹! _1½ç¼WÞ^ÞŽ_TlWlÇÐ2¤=¤=+ ñ� <ÛuJ=á\–0ŸU‰t¬ÅýéÈ�æÀáßähÒÀ–`òµ$’lk9ÑS—­œr3w³–bÿ­îuÞ8±‘:Ï•WÌ'ºI8ÒïUyI�^±xuQîbñ³�£^Ã@ÏãLªÎÀ#6ÚQYöƒ‡.¾[�Hér¼-Û�0âæÝÍþgq"kÃßc9›«•äUã(g—h^áú.¬x«=[q-gÍWV;Ûz7ûßËÜ=¤_-L[.H=³ª¼Vôõ·az—ºTMö˜ôÕPwÑ›² 2ä'ŸÓXÿÅÖXÿ$N œm‡É%�CåÇ¿ï# Ó·Â$4ñû ›ò™BÒþ&ýìŸAy  cù¥0bì>6—ÖÊñ�Q)Kt«W?º—…ÜC7%ŒRúÉIC‹àAEBhdìWz¿f¨¾¸9†éùëj&À?$àËiG¡?’¯�M‚„ò/@.úæ t%c%cÔd>èü �«!ñ“;û6L[ c§OµÓÖl¶$·$_w‚< €|Y ±…äµFX!)LÐMŠã„slèD€ÖI^]oH…p`S a665ÎòÖ¿UêÓÆ¼)‡YÈŸŸ,jeßÕJ¯p²r²rK݆¾<œx™xÙÜÞ¹½­ÃªZ©lïLiSa„pdBdBû½RÖSÖõb+W<£ÿ¾¦ãL®‰«’8þà·å…7ßuwZÓ�ßKpþ­™G•^¿Âô/-‰_ËëÂQÞ�‚ó”¦ãœ9çôqÿùšï6k:oÔþ Ö�4 Oyò"t]goØN]Oßêz3ñC¸Ú{(ŒK,‹/�ãe0=é½Q ð+d–Ú‡Ò&aŠO³ÄhŠ-ø€¾è˜ß(om¨&°‰ˆ;¡Ts¤½B·ä³ä3Ùè4Œ.ÃÅ&ÉÑîüU /ãàQÈ¡¾·ô“Mo›7^)€åAˆõ!z>ÏÅ‘ÚÁvuºÜàÐëXlü?Æ<üO!>œ¼ã¸*¥Ø�›Å¿Ó)¦_¢h›õL»�ó…ù³Iñö¸/Ptüpøáð9Q²àçÇâÇbm}QÂ0r8RF�)½ì]0\¬U¬ÕÊb¥b%üBšiÅ�sðNe,¾œéñrª�V}€“f`§NeluŠ4wì8j¯ûì(-³Ž)/É„µÓ 1™YkJ §êH“rcSøÂtN33ÌýF(þµxDب¨…ß&OÃ…V…V×¶ÌèÎ\F‰ý†4Øñç!ÍÍw!5ì­ Ê™Íφ)†)Ø¿Ce�"á5„úWÖ$è~vîÏ@ÕæulòeÑ¡}÷ê œ–ã²’ÚíØ¨à<üqoßU´˜®šãÉn�ºà„íy­sâ—´–´Êj÷±…Àik3¹3¹g¼÷n‡í<‚΢ëeò€àà½Zk™h™hþ­þcýÇ”QõZx§âÝòâHu´8¦D?œ µß©S™[�jÍ프;cƒPD¡òð4Ѱ& ·ÅD£#ÿç#³°<ÒHMtÓ ËãL@u½U6@Rý-¥ò5.6î<3â@ÂÝ t•8•8L’t‘èZ®¡t±#U’°°+¤ùi“{—\ìGsð’M“M»ARŽAzKzý!]5ý\Hζ@ùO …>j›µ?6ä ßš€œ¢üĵlr·|�UŠ=�Ϧ>Ù'%éÂ_>Àxs{5ÃIÉߥ¿K7v¬ûé=„ksisûO~ dƒìkÄ„óÐn^t^ô�ñ€ò€²>½å�åi÷7d§¨ÿ:×Ðdd“Eíª/–ʘâäOŸÄ»Óšü›LìÖ‘q¶™nÙo]ü¼Yfâ*ÇÞ_–»Ùnöß�9DW/ö~úîxRo`ÂqEÞ’ÚDú‡9ï~оëP¦Ô^ŒåMV�qÈÚÍþ^Y“뙥¸š„#憲ÊÏ>dvÐU†Æ7xVÕãژμðý}F"äѯéÝì?“}í�çêKHjÔ¹€k�+Úš™@ä4îà¢sò9 �~))eÝu½ÊÒÅÝl7Û.;s¥x¶¡Ië³ô ÃñßI"é#º1YÏ®*3|²&]Û(#?¡xdÄ?o7ûײ׆ô&5~ˆ€Êc=nyœ…ZRŸàãŒZ*úR’Àa3ýY_&wgdm�3¦&8Zàê•ØPt®ý.6‹{MÛÌŒiâ¡|%ЭËÆýI$“º W'ðjè¶€û%Ýå×þ§Ø´ªÍWTÖâèJWKW )MrÐ¥4¢Ü¾Š”?®É ìQ"2�¸ øûV$ïãȧϧGîÓ1€07–ÔA¨å(⑞›"ÔÀ™ïµóØh<âöÐÙ@6^gǾPŽ Õ>B?;CM� GNžxù É0?ðÁö2(‹ïÞº{‹6P‡‘<Έ׈Áˆ`´²¾lSñÅ´bÍ×—Û—;š–š–J۔Д ØæyÞ)’?äIÙæU�xÖt÷t®ËíÔ©ì­N•š5rÀ±sï÷@¹%̽"Ã�~QèÿØ»óh¨÷Ç�ãv"\)[‹5‘u,¡lY²Ed/K!S×N²$Jš“µe+%$²Sö}«ì"d—�Ê ~}úœ¹sç3ãçwÎïœ{ï÷~Çã¿ç߯3Îù¼ß3\U®ˆU]퀠ó٠ø® ÿzi�òc£Àjeæ0FÆÉásø˜pî€$hWü°—Mé"¨=°u„aÐý�X‘„àmð*t…¾p#ú³g¥ù%óK¥´ Ù|YÜØ>PSAŒ ÿÀ¸£°Ÿ‰À¾'e.PIªvúRÐn=|bB\Ü’»ïÿ¾ôÖf�¹ë…è›C-/ßkl->’tñ:ßu¾#ObʲwB�$:©« ëf¡v„Ü…‹ï?T½^½^ëโsð�·Æo�'²X³AŸ'7ˆk\·°•hyü4Ìua»çÉÐw‚Qr~°Ôß)´Æà¹;ôr_€3y¨�Ùæ“½~uÇ�uzgîýïÏ“%¶xžÌñPqâÓ~â�  >²Ùh¦í¶žùsëǧ() ^? ÑÇÐ~iªN¼ÐRí5‹+2¦] `ÙξsÓð3.Ù‹'à€6˜À4€²ß;ƒ¦J–Ÿ+Jz …‰4¶âÅWtc±}Ƙ‹{êª= xîhÈÿ­x§‘`hÏHÏJ¤Ì ’wI.1„öf Ù\Ä"ü]áSøXVè÷wû X�¤Œ"4>e2fàC¯“Ú6XÁ5wŸLtÀ̳äÕií*ó…®­½�tl×ZÕZõQ ;ÂÎ¥A¡AQ¿Q¿µ_MÙª$¢‰«}O\=T�x�x™ßsîgÜÏŠáe»¡›jfá»�Lr¸m aÛíºͶݦ^ýÜûÞï z„Ò{0rö¢ˆ¹^÷P+SàRc Õ÷8±éõ¿óÆå%]ï°�LEU-ahI™Œãó"@Ä@fÊÊáÅê%yy Û"9•ÚÒ׃ün2!ÐiAþð[5#_Þ¿1”Ml€Fˆ—AéOKn¢‰Êüì~A?B„˜ 4­e 4Õƒºé}7ÛFÒrð)¤4 Kâ(ØñiÎôÆ#xMÕwk¥ìJ#J#% µ<�/ ’�IȺ‘º‘vRÆK§ƒA«>¸äŠÞ…‚Gãao:é:éJÞØÙö½Boʓܔø´òžV Ò%‘â» �CQnÛ=ûƒ~~þ“Þ«ûßÖFâ"ûü�'\šóÂÇg¤vù¤aýA㧈¸ÅY['Š*ÎÚ¿»™fV¿æ8æYÚ}ßóög Û¥£¬u¦]ê~¢¦î6Çóž„:=hl÷¡.Ë"´Vëï$:®k×%žvv}³À»ßYz{•F+7nñ摵\Žý­\ø9ì%¡ý³ì^<IÙkmzþ‹}G=gÎ)<á1á}½tBrÐ1d¤ËVÉs)•Ü&ãYö„Fhgc¾q@šÞå…҃Μ’nùÃw,=Z ã.¬RÝz¶¬r±å¹¨ḣ]„öÿk>‘%\mšQ"ÂY{^Oz¤‘zú,ǃöIA�ƒ©¦ë÷ùÓmzÛ=ËÉ"%"²EÞž„2kºÑŒai�n0ä]�«A¡ã9€FÿÓÌ"Ê \Îw�ÄûÇ­ ÅÚRÙšl­ø´¦�w˜ØíÀ·`ÌŠÏŠ�Gea³àÆe@cÙpO†®=½ˆ‘úX8'’(’HÏb”iÞy‚7#ÛÑÊ?|ã‘æµø$t:wðÆ�f½ûÈì˜z74Ù3¯:#ÄEÆäŽ˜EXTML,IÂ|·&Hö¶ >¸>x" 1䬥–«–ÛÜØÜXËÖqs) ‡ëS¿8 *q=qýËÕ¤“I'Gî'ÜGr¿!�nêÓˆUV%ü˜Ù!i)rodöv›Êþ¹)×5G¨„¸ÇEöBìäOܳ[ÅõCgáÀ]$ÔSEC~×J  h‹á³ (ÃÅ0B¥¯îÆGfP€pùU íÚ3Ì2»Þc#žÅÐøÃBŸš/Àrü87¨8y žlÓÏéžSD ¨‡Äqú…7è[ Ušã/ÕÌ€‰ÒT|.¿üh¢0þmT(ÛÛˆ¦kÅÇpÑG=8o¯EæÙœa2º{Èû’¶öCc5~•v•6æ¸âûj¨vùvù™Ð™Ð ߊû¼@$T¸H+,P°Mئ¯EEÎ"’nÝŽ—õ—FqÎìVb9 ®•ûùŒ ^v|¼Ý¦^“‰Aõ­ýùK;(ÊÊ·þ�v®±¸î#ß7>Ó’§Ýæ ÍÃÕlþUDì¬ô/¾)^»¤Ãœñ¹õ„ h« Û¾Þ}½®†g³°�¿‚!C‹ÆÁ^¦ X„K|•“pÔÜ_L¡k<ØxðÆ19ˆ>�ZÔR?€¦"à™xÚòáóB@CÓ¼÷èª÷ä™ “¯LøŒ£¦’\Ø“Ñì2ñ¯sHš—/½×˶µ‚ð£’ÀO’Ï´ŒéÒ¥A { {ÇÇú4Ë[k�¾À•`<Ç%ùEòKU~Q`Qàb±r•rÕÓqñyè™ÝkQ�èà3ºÔ Ð!+Fƒ­Â¨Âh�™]›q+†à´ÙaÆ ç‡88¨íž\zIY\B !–{äá‚í6cmJB9È>HñoLJ10Α¤HÄ’î£1‘LžgÂ'QûÃj¾@J¶‚ÖGAcvým—c*Ãí ÔˆœˆÔŠÔòÔæ›š“mø¤%DÊGÝ+,Y[0°”ŽŠÎ_ãìä7Ûšv’ù{*"*"†/TYèïb ­‘Öã‡Æ¹_‚ë>RyìÅ—)KUëUëå’Ÿs>ç|O¾Ü�ÜÐMi+ô¦BÙÀM)š~Ô=wx_Ãâzõ£ã²"Û�ÙA??ÿIwÑþ[dÅyÛ¬è'Í:õå¼(výmë�‹ HwÓ¦û[Ä{È‘ã•FãLh_+²õ·÷Lÿ"ö±1ÈBŠ~/I“Ör6Âa�jWÉõÝ;¸.LÎû< ‚Ú_ÓN1~½¬Fõ!°¨³[s“S©%õ^Ô»JOµôÊ}ê'Æ:“õÏMœ"4Bû;Ûw;%Öš=—G#Œrì§Ë6é£Mõº]�»ÙñpÜϧ±©j:„¨ã"¡ý{ÚékéÕQ¾—è£ÅÝÙ_U*“oŠÊ0žÈDÑÚÇËé-ÁN4¡ýU­0Æ_À<@†:Ù^ó´ÞýjÉÕëÀR¬óL-çìúêjò4­sQÂE$¡ÚB+M-zRÏ×�x/mê¼a;«äNFF�•#¯Þ¾_¡Ná¯=¾ú`‚$&œÐí¯j‰Á:Ê«U;}—gìŸy šJ:Э©îÙ©¤Ícîþý¡¬ÛÎß<Ò$¥YÛ�Ѐf–ÊÑú”-Zs^sð¬yCÂÝ<†ˆüËá‹ûâåLWÌ�ì’>íCh„ö—µ”×ËáZ;Ფú—C–•8ôÎÆÍm6 <άaEÖ‹’,…h³êÚ_ÓŠHœ�""[š=ˆ ‘Ý÷Ú�ñŠ…ÿŒ~aU•VçdÆÍw¶„ ËBûw7ïôÇ·r޶鷾õ)׸å¸×U’Òû!þ¯-ÙPášñyíµÞÁ̪!Í4ù`6èçæ±o–¹+?,rÏ&s^W"ÙîŒ3�”ˆ¨<¯nTñ¢Ín dzš¥GmThªpÝ)Û¿ ˆ¹°ñÍBÿ-®+6¥~åOAe~^e ‰•ôø°_)î¨Ï7Å`S<¡xÓõ›‚?FyšÿÎW®€£lb´ é©�1¦ƒ‡¹¹ @^R b14ÛC®Šv^°øë�÷Õ³^|À÷àÝŸ\R�:“VqÚßWŽOªÊVËiÚÝû‹vGðd­¸6éW"פ­Á4ËF¨x¨x–ºYÈÈ?B¦¦Ã+à2͍¯ »V¸›æ{ ææF᪎ªŽ™‘‰‰\°fè¦\vqé|_¶sš¸õ¢ò@�¥Êv›Êÿ¹)âF‡¨jå¦.� Œ·/T÷ã“•ÇV`�mvÁf¯l¯Í+�„Ía£ó Zǘ  6šhTæ†ò!©+L­+¬+ ›%2�è’3o‚Î9™¹¡¡ÌT‡Öµñ#ø”\�©»TºŸ&-®18�ëÆg9ÀžKî˜X?ÙžqK;e Nzªl×5æ­!/x 4 4]ãu·×+€bªfª^I^IþD{yúZȆ—´'?T·W·×Ñ@a.a®;_ýÆüƸî}M‡nJ<ðT>Ê›ÿG-Ÿ ǽCÛmªàç¦~|3¥æy�!#.°û0ݰ‰#®TX€+ ÎÛáQWŒë Ž7 TƒÂ?&}#áä >¬Ë|Îãâœ*lÂaQDN16Å £?þÍF¯%‘?@¨NR� Z‰e‰eƒG 7àåîdZYûS´g4€i@´�ÖE|îâ?ÁÝ/‚¤f /Sæ¶åáSë\þâÃXøü zçáé�”€§[-\^É[É;óqqz ª8¾8>)=)�ní´VËqPO.ªg*×.×.æ§í§½€ˆ®‹®S÷ ¹½Ëæ¡ûð�Áʦ(ùžš•žW¼ÊÛÝeÓÿº‘ZQìå–ñ"áOÍwë…墫îB„ZÒÎRñã$(‰>çT�øç>êNb…·«Žˆ?ÿþî]6É-î²e¿ã¡-™»�¹hêq#ú¢›ðv[/ü¹uòø(«o”äÕ7` ŠöTr‡qM-Ø#e†ø‚o㊗Ë^P]õq8¼d»ŠÑ¨0ƒÏÁ³£ÉGÚ lïíßÛ׿‰÷Â68�az-A–¡ ð»Äõs %·ßí¿ÃXòÕUÕU­/€�ªÈA'$ÃÃÐIJN®€]¾"–øPÒ ²*&"@m=7¬ Ç/Æà#òNê{;S°¬òÍ3û$2¸5ôuÓµ¬Z¶¶š:6€ @6Ù>aÕê‚BM¡¦š¸›¸È[«Ó—�F×q�‚g?†’·”·´.È|™ù²K´µ³µÓì›MtS½$b_Â×Ïq±qžénPªÞnSE?7µ)Îw*ša½ƒãŒ›ö˜°Û.šêµcwq‰ì÷�š] 좬óÃø½W(Ÿ{6àŠab¶žâB{lq…oãј¯‹ÿ‡½;‡ºÿ÷8n�¹…Æ– BRÈ.!eɾ�,e»“)¢$‘=eß²­Ö”=k‘="KQÉ’,§ÏùÞsæ7ß?ç\÷9ç×¹Îxü÷üûuÍuͼg¾,šü ÞCÃæ‹'N¼ih¨b€pB|w¡N@FX”c°žd¶é€Y’ãybÊ?7.P†ÊB6ûtIíû¦KÌ÷ÄCÚ–i©*©Ë¯m{m'îìÛ±>´�m]–Q–‘¢Sçób!¸Ã‡-ä婸#..BÜ<ѱ\T‚ÉÉõ;8ñnâkÙ²'uñ7í±›Úõ×ó'¸ÕxÖZß?/vÔ/‘<¶ÑwÙ௟ÿªßøX£ô¯Óü4K¼°‡~xÅê|WàSV£û³ï=ïEØé g«–�1~Î>lDj¤öwÙÕ3�ef�† FPËDuz›\`-TØtDÝߣ6Ê œ³4 -ôSW ©‘ÚÿV;Ï­M€°àÚ¾öNmfôÓ¶qά±Ü›ÏÏ}ŠªÉ8¶wgöDΑ¾Ã¤ö{µé-ü+czl»¾ŠÜÉ5N, G{¯PF¹ßå¦ÚB=˨Ár ‘ú|ö Rû½šåÆ×T=ßý@%%2|mHN,Êm�’\v:pýËËwb*4Ûûõù#I�Ôþn{=g{Þ”ÍÃô@ôÒ¥‹û“¤ÔUÚJ‘»¨9(�?Ìq¹fÁœÓ}¸š<[—ÔHíwkË,U¤ ¼*¿ÆÐ¶ý²�Ru„%p/¦û‹pŒX�á¨�ÿæß©¡&­L¼î.XŽºù0u¡"MàŸ½”nEt닚v­ù³Ï;íÙè³—Ç”ddÚ|œTp¦óK¼8È–[l5N{¥ß ä=XÐì)ÜS~!.5�PÜé¶Û€åÌ©5 퇎+NP÷ü b.“å…a§ð�tŒtTÊ-Â÷ª‡.+5Êc7` ÕÃÑyEvàËìØ»ÉÁÉÁ§UQHXÜc~È*›Ö§T 9¸6Ä_AŒP @™çã�çi©¿ú†Ü.ù 1«v¸…tò´ïÐ4]:TùÓjÍBºHy}ç͵BDÚDÚä‹O”&X¥ʥÊu;êv™ÞØq“%T|.®T°T°Ö…�‹� >#‰€*ÓygB)½E@ÄRÝ�¶�„øzΗz–-²;Jä8L³cšÄZò>Òsá»Á|ƒ¹a•G_…<ÎÞt¬T[wJq)ÛòÄÝ­Wí¶¶°mÂL ÙW}óÈLÌÈ,Ã1à+3Pñ•‚Ì$U>ÙÁý²'Ö©$ˆçD1ê²6ÜÓï¸ùPÉé*/{¯r©·%Q¯oô¼óšd¶döíF½Pð?°ðY†X†¸6¹6Ù‡Q‡fêBö«bõP� ˜˜—ô”Ÿ“ŸóÒ*á,áÀì½ßTpð!'¥vÁ3=†#Ù¬7ÚTå¯MÝþxn+\ïÓÝÁ8ʯ_ª7Ïm“Aš3²Ôæän]ѺÂ!@¨töAÛ¿ó(^ŒIpá ±w-|žéQRÀŸI�ð¥Ó¥ÓI¢ØðéFâ”ÃRŒp.&¿»@æ�ý ;f’ÚõÅôÅ̽ )u�¢ÎúOñsûQX�%À”`uò21'�¯|3tQ2µì–‡‰™BŒ~q,­8ë0uŽîÊs[[6�à.ôúÆbŠÈ¥É¥»s²ËÓ¡cѱ55ß?œjl�ŒIº¨ÐM­­%uË@Û@»PÀHÑHñ£©×ø�íÖªµ_¢þÀ)ŸQËåÒ#¬?6º±-xs‹nRâ4þèùݹúK†��ïm…ˆþN�ò~»m«oÍÔ¤¿òRtÉHë.æi~i­¦»þÏolrëÜØ Ÿ�r94‰|ß^D)yárîF[¯úµuù” Ü5=­pœæê}"»÷÷?Ë$¤]2ãÈÅ-w¨1±$ô2nY(U£Êæ7Ÿ|ƒ3™ÕQCÌÚ •�ø`ú¾ØM±›ŽŒQÚá+0ùÀƒõ‡ÇaS :¥jnÕÿ"|Ož,¦Ó/6Yœ„Pî‹î„ØHØÖ`u¾DF�înqSbÞ oÑ>ƒ�R�ÑfOÊ !]bЙ¯�f®H49=ß<—©±ýÏÝÛ¦¸|Öç>´#j-j­Bf× =qþÉÊjÇhÇLpÉוÉ@L ÝP…ÓÖVj²²JtO3I3ÑÁ< …oJíPŽòלºCbünçJ¯R°n´©jpcSœˆ„{ÛÎÏŠÓ¼ú‚¦VÁÈSƒ�¿J°¯-xL(D®\ `` ãNát«,G³Y§‚°{ÛQˆ<¤h YT: GÇ«©{(ge��$\IcÞŠ\£-Ó*Ór`†¤Ü‚pÝå€,°×za9¶1[�Ó”ª·‰)îŒ ˆ/÷A,ÆUYmn.�!&äÚ’‹uDAjÄ.q1¶™CòZÚ=Ìúž±KjútútΆ¥{¼�£¡ þê˜H=JJ’)AHùYõq8s7s·e/Ž6Ž6•6SS�ЙÄÿø~^ñ_7¶-hö·îN¹N™š-š|×ýÞ öÆýܺӆ¶â ãVÔ£ÅÜZòãë‡È^R#µÿ‰Æ»]«@§CçîáÒ¡/ôÃ�+ƒ»FãØójX�½¯�f:RÉzñÆu ;©ýþíïû»Ë&¾3¶«l«ÒÙ�)ª ûÆ©B d,œ4„Q™ÍQm~f¢:1‘¦¤Fjÿ•&8übú‹åʦÂôr…L$ZbÁÊÙÕõD#�ÚùQ¡À)ìŠýk)_-R#µÿ Ívùgßiò‚~[‡§è7û¢ü¾·yŽ dU©”ïßÝí©ý”n�–ÔHíwk¯�÷ï¶«ÌMp®_8™aóØV7G6MD¯5Ä-Òf¯sê䦲`d¶ºo+©‘ÚïÖ;¿=óÅÄðNÔo»ƒbÇ1”íªMßKµr”ÿg³]t?>Üôñ^ ûïn¼g*Dö„·gRR¤³D[«+2ûÃ?Jb¨Ïùõúhc§\û® Ÿ»\CIFÁ¶í\Þ8_ŽÓ˹²¹³ ßòÏz3ÞÌ̶«zœÑ$¤õüÑ{±%BP’ºd�Shp‹Ž˜áîu +¿ã¾)û)û ÷Wh|ÈDœ)7¬9:¡rÀ `\²B¦éØÇ�Å�e£™¦‚è‡f¶CÌ<ϰca^Õ»�T6µb˜s€JnYÄ“ÈÏ'i{/8;Æ“­ÉWzûþƒN¢"ƒé�¼ "î1b}bL»™©˜©ŠƒŽÓÑ2±0°0,û-û%dlvÑg‚Vb:Y! ÇÌœ”¬˜¯˜¤ÖÜÛÜ{E?Ó¾©”æ+!y2¶�j?å$„|ÖÜ7ÚTí¯ME[zRÀõò àøHuE­Ô›)»²ðÚT‡œç?M•L¨.pé!@FcŸ(¤êxá¼u¼lHÌ ž�»ÀŽúny|%R%R«—2Êðeûá¨`ñ~Û£ŒÐº‡Bd9•‚Âä™DD„µCÚ£!ú’#w YŸ£«±™A@`àîbÂ'õ¤y5÷BÌ}Œïi̸Ü'æÑ‹!¯—¹91*ú?uiÏr«Np�îZ_Ѫò�B¸B8?b¬|+ÜŽÀ�öÒöÒ Ï"t áÁ„$­Ï•Á Û Û0+uëuëå…ßò»åG#j|¾)?ßý®w»zw¡ óý$''=7ÚTݯMÝsPBÀ†ÑÇáäûR•éêù[çcÓ ¶pg[OÙŠPræŽ]vž!Ïö¬ÌÄ)|šMŒÆPüàê„ý!|ƒìƒì©<±Ýøšq$M°FR�‰iG!"ƒcò'‡zÕÇFÇFoAbè!:šïÓ w8Ò±"Z™6 Qm…‘˜ÕÓ@#óšåΈ…Ä#ÅhŒ©915½§Že¥?²¥�Z}™QIÇ-�A'üv}¡‰ì�5§jN�=ãá}ZŽ¿‡¿‡CƒCƒ÷}³üøNˆv<¡{¡áýý�Øw}ßuÑfd3²2^¡~ïsC¨.»,žrˤÚ7÷¹÷ÙºÏ7ÆÞûâ×ÒM ¶X©p’M}+øÙ0;ÓÒ žÉóà^¿+£Â�¡c yܨ~g�ÇO–\ûNу7iÿù½Ov�{_Y¯Sž;=ÆÑõÕ¥~(Gh£­×ÿÚºkm;Üïüq‘tÜOë<gùQBGƒ\‘ÀÓ4wYjÎÏÇ yôd"±ýÏ�Ð^~ƘÖbÂ*úÆ�Xá«ø45}xªgñµûãXb�íÚlݪZq9Ç›ìíðtÿ/ÈíOvˆÎU•x‹ ßEpÛ 0U¡w'&u ݵ«WÊ ¢ò¹âRòMWcbžót"ÊB§ê‰<§ëN×åþdi9 ·<¹<É%Î%’"'¶xâF(¶W4®c¬c¬{ï~¾ý|Ž"=è´ÔŠávø¦(r­¬5�$+¨š²’гf'6ÚÔÓ_›ŠyÏònGQÌCœTZI`)A‡œP£Sr"PóA³ÐN‡:„�–Õ€P*‹ZhWy=q6ÞÈ'æô£rEàöp¾!>†� �õ\ð‰˜à”`Ùù™4Ñ‘§7CŒâ ¥™¶¢kk%+ LºËÏ‹Q�‡:,[±†6¥ý€`Ÿy1ôæ€XÈu!Ö HãwsJù™bJ>Ö¹èÆ…÷—2þØ{ÙÓ—Š)Ô~ÌéMjÿÿš2óU¯xcm.Y/þj$j ï‹ô�õÊ1.Å�¥Ç¸*§©×�Õ¾Æ ‡Ií_ך—º4Ÿä±jE~AÏ´¶0tO�óÛ Iq½+¸Týµýc‹Ù9rgfRû½ÚgÑ¥{—ßñ˜¼ñE4—�/«íYáP étU¢–Û¡nñ�/jˆá™Ñó`zRû½Z]£²&àn~ð‰gî®roƒäÍKn6¶Ÿ%OèËé*°xY9O£÷ŸmÞ¹f\Ÿ‹-¶ò�k´{‰0³%ë KÃß·t|gÛTHa×?,"sF­[ˆa£÷- ¿Þ·lÏ =·í’¾#Îû�Õ5÷Ù¥zÊ6áGjÊ5'’ Œ0„:n^¸Ð\íúOêâ”V(‡sX‰þ ÐGyŸ{ª{ªSå =¾Ê8}/±ÖBLµ�ÏC¦_!ç )m-­ÂVÂV#!ÓÛ #&�1®·XçÐÀcA {9â 1™â@I#}ªÚ_÷^Ýé‹É|[OÌ‘Ço¸¹ÍUޓɋ}¯z�äh)Në_ß=¤–†Ã{kA5�eNÃðt H«;¡zwÉ£p×R®¥x dDgD3jÒ\ ¹°É"Õ¾©Ài;¾7 }†ñÛR(« ë7ÚTã¯Mݘ7FÁ­8*àhP?w¹R4;tœ�ØS1u`“0wà�ŒÆ»„¬ÝSNÊ~._k+{œJÅ‘Dbz”Ð’€8RÍóó˜´Ö3]|%8.ÉXÙ»�¯S}é�;&öcïN£©jÿ>€ %‘dJ†Ì2D‡Ìs2fŒÈœy.“¨nSÊ�ÌC!SBÈ”yE*ËÐmŒ"=]kÿÏ:�}ŽÇ‹çùÿŸû¾×YŸwßu^œß}ö^¿síëz J"J"ÚO ù`É í½ S ÐCyÿèͲ/©+a³¦ Õ�¿FMˆu ‰×#æ©°É=ÇÓl’48zpÒŸ¼Š@lÕ‹ólarÃΔˆ >~2þdÜO mÒ¶Wc\cŒçƒçSYi3ÝÇAäbzW”׳ԳÄb{~ñü¢nü¡ùCóFÚNÃg‰ì*±Ù>nÑËÇÅ¢¤¯×f<Ûm–HÈ%J�œàøôlr™•P¦&Y1ûÊZê�ÆtýÄ5deûžj:“lȨF- á¸ÖYïÿ|֤гÄÄÆ‹$ã±ç U�bHï,�Ý­ëÍ`nî™ã ÷+ º�ÌÛL¾ÈÛ´~à&™·¾ó€íÔcQ!2LM¦È\€+zJ(í\—D‹n$óÁæ™Y•+0ØßC²][ÛâmÇáí$¢¹— 0{ì�,sI· ô§¾‘­÷rå/ç/sœ„0«A§úL!ùI/£PŒ÷k€}Œ6š�Àí}†ÞÖ�LÞŸMaO¦µ±A†yŸBN¦= 8!�eb¥5µ—çªþÎt®ÑMPNP zz :òÁ z zT¥V¥†.�Ù�φ„È`ºªW¨ǣʣJjAlNlNËv¢íD›0Æ1v-êý2á,¹ùüW»KÛ¾íÖ©–ß�’{À|ÎÝ­Ù �¯Õ¢ÇÄ·Ú6õ0¦©áR ³þb�ëùã˜Z„su‰ºƒã@gDF8Z“îº6O™oºOVŒ·:#—¬»�ž7š0¥ûÄ3g`ß©¤æ"�oçðLknGnÇX$ÄÂ_G�¡­s{†¢&hr#êЩÔp ~@‡ì‚ö¥÷�ô<“7"b±a/ e1—lØÏç¤û˜ý¥îÒcuLŽ;[r:ÜdfF8Ö²/Dî1Ñc"_i_é~½ã¬º!м˜N=—Ò‚kãmãØ¦¦ä"%:Dth)‘ãLñLDñ IÝÓ‡×;§ ÃoíÖ©Öß�Ú/¢¹Wõ¼Pm~NóˆÎEõñˆo˜øNŽÂudK�¦ ˜ìGï2e¾çÞqüB»vTÚ «´†PÁ°¡6¡6½åºÚv´›(œM³€^yì*D@¾0M�gKpUoUO¨ "êyÁV×Qó A©�4  ]Yá(rE ‘"ëNH!{×F¬K 6íJŽî·ê2†¯qr»&LÐÒé!…w–HÛÏÁÅUûçp­ô­ô²a²aU^¥CRŸbâŽONƒcùÂò%�ÄzÄzä\â™/g¾üþú˨NÙRC�’µ ó,þ†wÂdþr¯Ûnóiø=9 fÞX?AO¡MtZ«¥"×g‰»` —ýs²gûEÃOùýñ(î®<—"²™ŠÓ6Ö¶×}&½#6@t^yÞ5¶64 ó6.ûëg×ÌÎýœ«¢öŽ¢Ì1i¹ø³„aËÕ9Y4õýÞiùKüR­Ô[úNê�¸ìŸ“á߈«¹{Õþíù§JÙ)ù_´¥<hØM•Øg †K̲£®!X;á2\öWË–lnM“ÏHÊ�ªÈMPŒ4lOOøX¤Ï³‘ë,0áÛ8*Óí;G«®�ËpÙNÙ%çwÚ•ÞÐ(6=w­U¡IM̘ïRJ‚é‘GÝø|-M&ÕW.ä×TVi㲿gVº8Ž·Ù—¡Êð"˜ sà'w…Ý"{ÊÂ�ì5‡Å&·J« êy/-$Éq.ûßf œJ9íO¾—d9mꨥ6þ: ŸºÅ¿²rˆÍMá\Z½êÇ4Âîª>\ö×Ê—' ÷(QÎ?Ýk”Xx¶AŽÃ²1Ä&\úÖˆŸW…¶Wª‰÷¹Þ¡UÉ\öÿ— =hÈäS1ÞœFæÐ¨*Ö¸ò’—ÿÞS…%ÑÔË[­Çc¢èOËzà²ÿLfrîO7¥Â¢ÓãΧm8rœ¨ÆL™iú—M㥼"æÖŽ÷Mmò¯Äeµ‚U­öþ&’ÇŸÝÞúVl¶0âŸÝ�~äãU2NçüLORG³Ûì¾�¯'�~ γ{>Íný¨?þ|©ƒP¦1!d2 cóÖÞø¢'&Ã3Zò€þûfE ‹ÆoíµPi 6'ñs6�ùôíŽ=9ö$—\qf» ´žM½ÊÔU ¿¦¢%,¡dh•h$”'”'¬Ù€ ´†þ„ü!_ç‚âM ZAÞÓñ؈Ñ[¥ë7= !I'ßßã;ð‚›Ä2!Ã'åãTŽñ+ºå×é‰)õÚ§væz”¡wCbCbÒ�¤Ö‹î=å{J©©‚ï?:Ô—B>Ûbj~ÙH GQNQnؼ ¼ <–9¿5¿uù=·¼S5�&Üû¹´mŽ×*k*KÜ­Sí¿;U|•­NF7·­”Zåe�¿ÖÕ÷KÅ�Œ@~Ex—Ë£,4náoáŸüÍ+F""Š Q9©��f’¦,Ó|Ä|ÄãWqFqÆç7Œ‰¨NÍýk�Fl,Ÿ61‰,ï M ¾Í/ÄN�R7·sŸ'ÿWÁëUŠ�òˆï‰åI: rD—ê/“Þ½ù±Å=¤+<æÔ6”Š1{&£I;“œìû…Y�À÷6ƒŸ'¤¶ú?-N¶bôµÆ™FâdÅc„É�=“‰DmEÂÅ÷VÃÿ‹‚¿;ñDÐAÄý<úÀí‹Ü×éºá×�WI½¶«ÄBó¡1šê‡Wöïvýtü¾~dîhÈÁ D¼kD;å~½ãM2­=éULö˜�lÆ}zo¦¾˜`b2–Z¦;*€Ga¤éhÕ‡°‰Ð^®lôîòm7:<:|5Xv|»•%´g¶(LzŠyÀ„‚/*4²ðþg¦e¦%+ÄJBÍIv b(à6ÊŸ…@R>�‘DU†Í°ë~>7l a‹ö!‹ØÀ¶Ï^*âf¦ˆtèʲs’ËR°IRLsݼÌìÎìk»,›WšWŠï[í}4 GêDêTáRá2¤úiIÚBóÓ݃åàÄSÅSzÅÌÆÌŠ�éÓëÓ7›Ç±À;eàbûËYýqQ“âçéµ´»uªów§t´Þ<‡£i2¼�&vŸéîÉ6e©û˜Ž‡j9ø_¿R^â×Ä$ªqT ¸Þ¢÷¨ôŠök3H}¥1>@R׈» èYXÒ¶KÙB;]�ÒÀ¤0Ԝ曃¼Ýoo7£{¹R“Q“ѦRm©ðˆŒ‚le;+ x¾fH�¸ÇžÔØP½8CÉûê† A†QG¢;4±c G~úµ:F+ÁÄýêpr ‰€ OõΔªc8 8 œðioøÃ1°0°|ÚóiOKY­¢»D€SܹorpK.K.{efxfx†…kójórn‚wjÏ�zõD¢Ÿe×÷޽ƒãÓ»uªëw§Äöù™Â]év7BãÝHÏš-�+YÆ$Ý*( 0Ÿ>ä²–E‚ÉÝÿ5P«õkP'“ËGcömÀ&x…@Ч¨ÜŽN’NòðìàÌvìhúÙÀž`À\êq1„ðTßþn�ó…AâAâ ÒóH…]«8ä Y¤Ê1m`üÀ>èçƒ Ý@ò:89É L›98g‚ÕÃ/bÃmbÎl]þiÚËI.²M^;ûãlø´ƒ¸ƒøàS×¶ž 8½B½Â“ä'Éo8üÔv ‚å!_h±Òçœm¡m¡¥¯�¯�5]�l�ìŠGQ |-fÊœˆLJ¾¥ùÑ Ìk‹Iw[‹ ¿—÷¼hyyÔç(CŸ˜5ro·Á _�4#¼»¬­ˆ¼—M—N'zÿïïu#Ðk1ÐZL‘ÖbÒ!o—$Yó!ÇÛ9ˆNq]Ø­ëÝ¿»¾fÁë çß_‹6Aë©¢áù“Üñ&žF?€ÍÿF⛿ &‚Šû€­Ñï@ aë8Åù lZïò¿nøMvmž‹k_$on‡B;žŠâSØÞ lh[´@öÕ~3u 6iÚôØôe€†Cg¸H!s5Éé(â9À¹a@9ÄÕ› à°Î‹$Ÿ5HÑÊ=†kBdØH¤S�;åhÉmê<°šSHV¹I`\½gvAî ¿/Í &yg‡7NpG¬�X³à³àï¥Ýp‘ „¬ŸÁd_îág…°B8PÞ/¿_.]_v«ì–4Þžbx§tDF]â'xˆK}¹cBØõc·NõüîÔ‡ËfpÞ9kh‘ÎW+/2ZS³cR‘u9 Xª°½* r ÆÄx+%8:¿oxªø”Í-ë¢6Ì‘F@³lÇ«í¤Í¤Í" Ö¶3OEK B‘ìxóèO•¦„š]ZjŽ”�‘�ñP‚P¹B~ø!d!Êï˜ÓQˆZ{) ‹TZ_`IÑ�FÊâ¥ëlL`Á‹ WA÷O+ü——Í þ0ÀÆ—]ç‰:~bg&ž¢-ÊÊ‹ätŽDvp%%öâöâMdœt�× «E˜8÷Þ„‹GÄ#¢¿ ëë1&L'L·ßPÑFu*ŒêÔæ˜b¥/A‰WðC$aÜü•ÝÖÍÁ?ÿJgÞü'²›^É}îÖ�Î’¼ob‘åÿt[3¿ßùz“gúQ*΃Þ¡¢*§Qÿi]ˆËþžÙTO�•rŠx£�E¨+¿f„¬,Ì£!ÖÈâ¼Ão:ëö;�ëˆlž\Äeÿìlþàk«— é DÙ’åFÈ*µ5ëŠÏnn{¾“¶ž0×4Ö‹ˆr>d±f-„ËpÈV\{šää¯9W3ÔK9V?¥·¡rü9…Ñ±Ý þ=Ý!Mw*$÷œÍP‰Ög•Oޤ=œ¿²^0Û0KõµžU¼ÛIÿ×3|É-fø’ú>£³æ³©LÝÑÅCŸ�Ûu½{³ëÞŒ?ŸÃ5麛`ìÍ Î1¼‰HY ÂåÓá]ì?&ÀDLÈi‡KÍ|E�3„>™£}¿!€AšçoŒ�–²e? K&¨…MÀCÀ#÷ôÅ%l!qæUh¤ÒµK€m€v8$éRŠú ;zƒ–Æ–Æ¥Șd1ñK7$Øð8Ú5aÀù=Pol)Œ�g&p[ßT9,²·BvÀ:-‰ŸýÄò·mx…ãy×_,ù´µ+0äçÆnmП�ªãMÇ¡r#V{-¸³‘g#Å Ä Ê«O†@¢fq5æ)…ÿ8&ß'Ø'X@µÖºÖz[ÄaÞ©ì%j×dÁÒÕ³_Ó£Þ±´nשžÍN9SŸ“‡#O4ÇPñS{p">§ñ 3®)"ûr ÕfÊïa¸7.6«eB€²F9 ²¢)ÂÝ8h†�©RK.0~(à ¶VßV_û×¢¡ØØ;0"ìÑ=ó0Ä®od@¸ýõ¯Ív ËË?g€“†°ˆ>�„,½ìIA{z8jÔrêáÓ`ˆÚÕ1»uC¾.ϽJ¢9„W$Ÿ¥�bhJÆ»Í×��ô¨ªÃÇm?ÞÜÚWÞÊ…„œ„Ã$.ùpu,u,ääN1–r”�Ç+¸¾ø´Â!5�z7SfSf[—ÓòÒò®ªe¢;õòÏ»Ù÷+å)Ÿ£ù}Ú«"Ìâ‚Év3|øïç?s¯çNö÷ÏBì“—ýý�Êâ¿Ó4?œž:i©Ðm¬©­ÎÝQñ>dŒáöíKuhÌN¶“ý»²kåV¤.¢¬!1a…32TßK¨HPªÖ1©å†ÇDK»}Ön‰‘vìd;Ù¿+‹d·(‘hrñ î�¾À˜!JוxáGðgqÒž$ߟíÙV·)ÿˆØsw'ÛÉþS3¿”‡}¼ú¦gè/�ñ1‹)fgæ¶%¯ a+ô|Ò­AÿªbõûhtÏ¿:+àÊ\H%r”øZ\ÎïR÷AI¾62GdZ™¤1ê4<è~Ux}»µQïæÚH0&Ù.²JQã ©CÊÁ�+½Ñ¸Ìº•*�y?ÊcRäqÝ¡,]øƒ´F³óƒvÖüø°H»Î†!¯£°ULTL¨Etú`àÂ`PE#5JŽ8û­B,¢Å[V�Ëiœ/:_4q€T…4ìËl…Èy"VÑ"ÕòI@³ø‹>GŒ€¯ÝNý0†ôµWŽvîû.‚OÕ”º~G·óÏ}q¾VïžïqβlÜZB’FÁ²ç²g]ì‡Æ^¸÷“ï'  ~ÏœŸò,‰«óËn.¸iŸiŸŠ%£M¤ü›�ùRÕðN�õ0výL{Y{1­‚º“W—r»N!ÁÙâ]‡æáRd21‰$ÕU×øî]ý × ª@< äÊNwÅ+þ.“#Á @1ç©o@0 ³†xýJ3>õ :@ßÇù5lë�rz9/¸âLú„Ïãâ»b|lf™ž|tæ7ñO¿¤Îò!.·m-ü°Â‰‰žŸY¶ñ-j¸A�A�=¶{l³^Ð=T†”œÃ5¡Q —(’(²|OÁBÁ‚@¯˜º˜Z3?l¾_©5}ý‰`ºŸYHð­·ÅfÛíWÂÏ÷óõry†Å­» Ò!„�}Ôùjß…™äÌ÷Û\¸ŽJ'ÝÅ`õ×û•¢[ìW®”]-Ó#—‘%Tïoë^hß®ëï7»¾²h¤ ×.k€ÈÜGìFùAÜWÏÞI.à4ÝzÌ™�x{\¨{«÷�ûéË¡€½P'†ƒ¿>ó…ï,�·áâtØÈÈìÄ{Ö°’aDp£e/ذ¢¥´!4µSm'w›h›h—Ü€tAz˜Zz !iV#h–­;`QÚfƒO¾"@ñÁº“�r]7¬@y>¹:žóló¨…[ZæïFd³¿56+ÙÚÝ3¡âSâSëS{‚×à2îeÜ«w¨wHkâãXÐ…„Çã²ÎEÖÂeEeE‰=H�L�ì½×ÞÔÞD©Ù ï‡l.�4’õxÑ%Äð]ãkÛuêÃf§Ô”¹À¤å>ů½z×çÀÁ·ÉL¸Ú{ï#—½éN‘®âº|Dõ �¥ÄËWbdOÐùãCàwï9pÓúÔ:¶Ö©Ö)ÖÒýÞØ”L1tšÐ"Ããy€ðoÜd»À—¡C?’’Ö¾BHU!d¿]“‚„3Ü@ q†åUÀhóáj|J†U«ÃÌü¥�¶’/eìÔK3ø<£`ìmsÙG÷©ÊsOŸÑÄkŠ ¨)¢­]T)5è¶ê¶jü%a›g×ó£ç%’yÊ5曼$da®ø]ãµpA$A$†E&é&éá•Y!Y!\þ¹±8÷È< ­&àã¸Óè9QlO™µ]§>nv*¾lñœ�6G/F-B†ç‘Ë>²B\%í²7B?Fc–y]1\ÓOß3%i²µ ôbvÔøL�3ªNe�R¯�aààù~Bé¶“O1PhL·£íF-b¬Nn>¦fÖ$nÓä¡&dÁ\€âãÖrí�@»xôÍ<ŸìZ`õ7Gá+ˆè¬ðÄOê+|J|:˘ �´oÍgú+Üõ u¥4|¶5©¯ÇøÕ?«¶W]þ4X÷Ìö™mBRBR×tíž}5�w<¸©ÝÎÙï2ß•_&k,kœèPŸQŸñ¡é²íÿ¿“©¡NdÊKˆ\¬UÉœuóúª’´Ý8ü�œBý.–•CQâ¡)É«q1 |°h'û×g¹¾m•�'É Žê<=Èóž‚¿àrs¨Ò˜ŽÛSeMå á·IÉ&,¿Îºídÿ{™€›¿‡)Qf ªrý¨çóN'…3ž§ÜÚ&®_Ô¸%WæÈ%ØÚ4xt'ÛÉþnÙ«¬�áþ6o>Ü(b£ï�æð´H.NàcÚ¯œg^ò^.ÒßN½'ÁAHx'ûïÎÒ�£Ü ‡&²ÒÞ¶œÒÒK§›\¢5Õœ“Ð�¶î.ÑE•¡"Ô-JA¾Q{‹HÕë~·c-Çëâû†Zrr½V�Á×úncrÈc”Ö.l\É"}‹7¶[ë÷m®õÕ"ÇFáÒÍd„0ºêRö’Ü"N(ÀE~o�tV——q±…+Ð}¨h±â­`èE�VÅçªÙ+ w:î6îfîæÇLʱ�ñcìwD ©<ÜPxÙ‰àt~p¢ö#ƒý´ý´É%Bö: ÂI‹9Õ1²ä¿TÛGòð S„õ » ÂÒ¹¹¶µ<ø„9õÏ•‹ÝžQù�üó5Q~o¹¯ÊÖX,R¸—¹—qIT |Jáº�º�ÊÊÈÆYý…E!I,¸¨‰‘ÙpͦͦEv‰»w�ÓTÑTѾ�ƒwªé‘×Ò—±Ó!£‰‹i·Ý?ú´Ù)ú4µ/p<ÈÁYŒÅÝŽzA•“¨w ¸ˆEl�¹ÅÝúׇ5nàRcõ~  kSbè;Ϊã£~Æã$0žÂªŠ­’±’1­âˆ¶Q ´±úL@"9ÒÆÉì·y50uoêÞ�¥ß"HUr›dýW¬<šø ¢'r™ÅDZ `� Î>A!ý1#ÑúÊ)¥Q†s �«wŽVÞ¼Üù!O’ÿÓ¥¦­ÍĶx'ÝNº=ù¶‘µç¡;Owé„t¢y_ÇE²É�Ƕæ&çüÒùe UQqQq¡a5aµì(›|¦s�Æ”àLÖ¤÷/÷“Õn{笶›éÀï€%>QãÜLد=ãj®ðó‡ßšDr˜I´øw:—I�2y[‚¿žéo1Ó±¥p”ñí®- T"cQmÒwÛ®ëý›]OÕ–¸ש붂AÌ��~5Üàá‚+mƤˆKáû}8* ïA'ÀÈ«k�vþC(ÆRÂÃ8|ŽÝo èØ<¨Â6070gz.i6V* Ú£hGÔŸ­Ñåß }Ô&˜ŸÚ›ºšºÖXAªØ!üÃæA�}íìh¾ÀŠ.°à[ƒ�Ó(ð<¥\ððo^‚§¶úœ·Xð9W®žOZs¥�Bˆóï°ìžÑ8Sã­yV³Aù |.Í8 KÅàNöŸì×`Ö`v¤ßà£È€ßÀ¥uadÎ9Æ9&&µ¼¾¼^—Ì2Ð2Pb&ŽÞ)Æ4Êç—5}i’þ²ß®S›� OJ …û)Ï6…aØïxˆbÉÉ�‹)/iøÅ§”½�/,‰Kpù([)�>«ÃØW݆�7Ô©ˆ@¢(l%ë%ë…]¢û°=ÊŰ@[޽ œ?úzâULî7knG¯M¬MÌñbsÒ%[�ñr_­G£4ާÆ,Hâã°ܹpŠFæ*¤‚/ ¨¤(í>ˆ§WÍ4'ó§ª)øÌúJ­W‚ô†Œ˜·–s[ÍŠuŒu¬Q6£ö´9}}Þlìlìµ ¤â‹?ñãò¬(t…C˜#Ì‰Ž§\I¹â þE·ìUR-¼S3<„Í)ƒÉ{i–˜¾Ø®Sƒ›�º1X. ×õ›ïRDxf(áþÈnO\j—Æ}Þ¨Éâ'¹ �¸ÝOðn*•€·ú¨Æ›”|ЬïM÷ØòWòW[̰½˜Ä°ZC“`Ó�jdVk!§4ÄõeɤÆÝºÜ¥ 1u€Ô4ñ}…d[FSQìoÒY¯Oâã_ ´%ªô¹QxB/—sà»>?.¾&I7cŽ™Ž?wNõUÔ^R¥I¹¡­é�#fc/Ç^F~BQ¬Ày"=‘ý1ý1‚.ˆ½Q? gfpé”hŠÁé1é1IéªÝT»éÙ’’|7@á:ºSûþ<×ÐéàY¼ï¦­ÔCöÜ€[¬9ÂÛÍtàïd²ÀžB¹·Ì?"פO¸e­òïþ龓ídÿ ™_JËBÿKbý᜾èÌúµ/³X¯”Õ/K6Hõœ¦³XH~ ­êW¼“ý½²Î@.YZ�)Éè{õÓ÷ÿÁÞ�GSÙî —1y”LIDJÆÌR¦ ÉL™‡Ì"cd ‰2Ûæ9C2dÊPBd¬ÌER$¡AJ2o×¹Ï~÷³ï½½ÞµÎZ�çü)úÿ^OÞd=9ÖhˆÆ�7jÃa/ºs=”h«YókÖå¿­…ëÕ¾¡…¶(U¬¿?sýöø]lV …çË$¿1³Ilêkw‰¤¯Öå#u=hU뮸¤sAû|ÅE!»1�z�#Å0y$¢}Ü‹¢Eáî¤ÐÜÔ‚ör„·3vNM6L6Tô@ì#!ÈJä2d�'ò1ŠØÐ. ?¾� û5à„ÚÒ¡4N©™¶¸ë’.¼Ï&¼( §DÊ�<�NåJŸùsbÀiêÍÄ‹�¢¡¡£¡sAy<.î¨ÝQ;ËRËÒ¯EóJH÷cl·5.ÌÃígßÏ–CoBobÚ"Æ.Æ~ÅÇ/ >S‹ê¶/d忢¹Ž}ñX\1îßj¦Þþš)Ë–j38�3Ѻ/éä°;å†n/ƶ.+0 ´‹uEÄ"b ã!'r!¡JžT�ˆpµ”þ#À?¶‡?›ç9á’ß TÇܽ%_±Aºg¦Káú¾R¬•¿|‡g™…/;×U Ÿ‡TÏÌE»›K#úégnNFœÙX¡GQOQZí´š~äêfÑ l•yõÜpͪͪ�sLsLnÌÂäÂäŒO‰á3åê@wbÆ–’OB-r}{=ñV35ùk¦L´ÀÙ ýé*¸å ½C3NJÃlk�B¥�ƒÏUN¶/ÓO`ëÛ– † �²�º]цï‹5âÂÌrë Àåj.ŠÉù­óÛ`Ý?1寢}òA¡_Z¾Äd}aƒ°Ÿ¡)Û±G㜆¤†¤òC©6¤Ñ¦EB&ÖQ�²Ïà:Ù¯îÂ…úÐÔN?òÓb‡0ÐÝËüñ.ÁÚŸŸ;,tÓ\·a¼Sðê]Î¢Ïæ<Ìd&5šˆ™žbg± 8ï×Þ¯ Ø Ø'ÿ= )èÁ&ß9Ð׌hF Þû³ú³æ8HH ¬ ÿ÷ÙçE Í”ÐÇ»ûL‰øëÿ\G®lzÇ&j=þLþ+}«ù¿­Mf$üñ¦Ÿ#NœÍú=ë›(µÎ³¹½|:ãzäÛB§ô/dXFZæÈÌãÛß»”·W±Jz=x‘èuí�²ÍÂQÆÇC' H=¬dïæ!�“ºžù!š*ðí¯ÕFGÇ Ìã4†„Š�~ìíánp°g”–›j]á¼KÜëžþG3_á‘2|ûkµ#ÑY¤„MUVjÔ\v¯¸�z}:+�Ç¡ÏYµ (2î39d#çµWñßþ>må¾iæç¦ ý˜)-�ð"òVj Ïy„ÏñÏb�ÜA1zhðYÂè^|ûïk.BVŽ,ÊÅHAF­”Îy]QzºÖvç{»ÉŸ˜8M*||%Oή¯<]qßðíßÙè/³ˆS»Þ’Kz^}¿ÿBÍÛP3/š¾Ú ëÕí—' ¾ÉÛõ!RûwâÛ¿ÖüFv »Yõ¬ðóU쮚=˜©\t ¾–ón8È$‡†a±ˆN¨’.œÉl«µœ)"‚›Ù§®ÃõuöB»Æï"½×ßÝ60ÛåÒ‡@ŠXLd‰nâ´Ò)Àû^ æ^y)£ß\ÚXè �˜…O˜¬x¬xx¼WI1Iè£�§ ΙÄ�Ëü!Œ³åûê�V¾V¾ò [~ÈŽÿ0UÙ¯²ÿìý��F?eqøL%G0ò²ë= ²óêª2ÈÛj¦Þýš)uÝQ8W’m…hª÷Z^iþ”›Q�ÍZÕé> «xhÑ̸­Û5Ñ™“À‰}65À“È»îhˆ¤2G\^½«Î2\¤0 "‘³¾²Û1y¡)ïAÑò©iºÌœÆ!RÑ·råˆÙHî$ÞI$§„ä¿„�`ƒ�ùî“D¹â�È•àf\ÞË�iyMÉ.@ÄrɆýkÖ•ùݯÁIȈH¡-“ñw[Ì:Tå‰�òó ½Êôh2i€ ¶7ï�̦û§¶ÿƒÑ=´¢F=\r速Jo%0í¹·ç™hw1¦$>´i”ËJ€Q„–äR‘JÀ ®7Â<Â<¹%�µ&ˆ¹´—$ûYîi”q. ±hdÙûCY@÷Í ÔÇÚ¯n¯áþr›å%. 5gZ¨—Ä•„J<Ô¹/(_t¤ê¯Ûœ¢gƒa#m#­5oNï\{;XØæ ùD¶í$DÏõÃ]½p|Ú|ÚÒzgÏr¾K~—¬±P €u/¢÷õ’àöL²Íq…—…·š©™_3õQ�!Îjã¬Z”÷­KRªú‰Ú°…Ÿšÿ p³”Ù]/7{„­°ga ¨{Ñ›]ãGäs=’]Mš!L�Ã7|û]-'RýÄj¥ÿ·Oç <Ç Dw¬)즔Sã0ñXJ;v�òϱbqÆ|Ã7ÐŒ‹Xûn2¥œš?5näMÒ™~Wž&¾Æ=î+sÖÕfº‹&¢;%ø´=Sñ ß~[Ë¿lØl«BÉc{ŒHÇ=曫–QúÄç�ëå£:bÔ5ñí÷´:BÝø™ëfÆI鱓ǘ«Îl»z›�ËP§¶­MåùléÅSv„Ù'|û{7Ÿ’ë!Õ¢<:}Oo¿¾£×+ëíKøWúæÈÿ·Ý8#}IÚÚðxyÛÄ©b©HG&øç[Ñõ{.χÈW–UÉ©'Ž+nµÇùžˆ€`¼ÈM.aÃþ3ZUaåûîŸ�½aØÔe‚#J?öŒ™a (�ìØ´_lBÓ)ÕÐÔ?¢Nÿ`}P:Lä+Å4Ú>ÚÎ!ÅÕ‹i'?š·/ Cdº%² ñµŸú6ÜsæCždž¤õd—"d[莃�ÝåÑ/Q¾æ‰À…�¡P\x‰³2úÂÃr�ަ/¿ò•ÁEáh¦5¥_ë÷W$aÓcz’g·‡ )Uo®øíô˜l¦læ·o‡÷«ï‚#Y#YëJíJ½õLžÅú!Är7¶™ { ¸q£q£sò“ó“ó§¸E"D"®D§nÀgªÁv]]Õ÷xx¾8±.•ò÷µ­fêï™úd G˜mU�V:–Ù¥e ½zƒÛz­÷EÀábÖ—9iÚVl…r倃ëðîõaN´W«|\œr©�wheØ0�­Ž­ fƒÛþÌR­AE12\˜l8ðO!CÛbõMý - -–f!?ä!ÌFÇf ? ;ÝP^Î@W^øY\˜÷¥î‡ çAÎr^£ ~�‹}~jÌÀEÛ‡ÙUâxl˜ãS6'+۩æÃÖçùÒâ¹5\TMT�ϺÏú¤ç}Ö'�Q{l3‡™ÜáZsZsÒksksÇÕÕÇ;U“àgÙ<5Óžœ^Þ ùöî<êÿÑã¸�di¬ eù†²d�HJJŒ=[²FˆH+ED¶„��-KÈ’%k‘}ç›TöŒðEC2v·÷ùüæÎo_çžß½÷×=w<þ{þý:ŸãÌû3ïa­_ú”' ²Ý»lº?72kÊo\ÍÉŠó÷¡ò˲˜wÓž‹PK¦"?)uœlYºÿJ¦g¬Ýh?m/鱪gÿ¾ÿ]6™-Þe#™àm5ø6-ô£·¢ŸåÙží¶>ýkë‡pI[:c ߊ¨Å«° sà›â“´æOÞQ_Ëä:ŠOÀ‰ÍðõðföJóUaœç?^G[0}?p!d˜iiΘK¶úó§XÐ|®—}VüÐ?A:MzþîÒX[ƒi¬il‰'¤ 2~ŒÂ¢•ºŒB»: Y!S#w ” K¬ ;¾RS=ñMŸ'$9ØQóš¿6lvRÂÕ(Ìசӧ„ ô­5íÓ_Ì͈5鰴µ"µ"%%¥uÊYÕ6ÂÙ‡O8ÉPu´[ [`ëtítm�UµÞ}Æ·¯‡Ýuf¾v�Yó©ÎÁ`Ÿí65ókS—»ƒpÙËXßÀ_ª©ÉžX‰èÀGé¿t(¯öÖ]çÇw•\… ˆC¼gªiUnb4M[%DlÝœÐIÉfÇÆ¢À¢@—Êr›Œ;Æ­p4ñF/JÀsέBÍ8n»�WáèáèH„»@Æ&¦¢!(DæÑöG»kR6KBìW�B�jžâPH«¬i�~§�>!#Ç®ÔõHåï_ ]`éÔÍ‹¦³tú£nkÝÙÃÁµÕiÁ1¸>)Rž­š­bÛ 2�<Ñ÷Ìic‰ Üä¢j˜ú õA#-Y Y͉¬Áÿ|N ý㮀½ªuû6›G[_»jInù�ô{G¸ÏÏ×÷1.pi=¡Z5޾&J7º‡lc±Û÷=«nÞ�á7­hmΧ¨”Œ3ΤÀu‰�ØþÕFòÀ©\æ‡Qà€`¥ŒOX×mýk¬Ùª †ª÷<ß…� æ,öIx8ÝNlÄö¿ÕÜ÷j�?ö¡5éçæÙ:õ1½g‚3y<íYëÕé°·Ï-dR&S {á�Äö{µYXÿúøY6¡9‘œ4½è’`íÛëäa¹œa åF5¥zJ÷”bû½šé�¸U½•CË\±Ñ suO£ ÓÄšÿ:"¸æ¨ôùqèÐ *ž>-þPb#¶µ}þiínÀæi ôhåæuÅX)ÕmÅLB”ä—, R]L˜S{àÕ¤)gˆ�Ø~·¶ÆR•/E[·óܧ҆†@6%¦^í¸*C_Ù—=HáðC5:ˆ‹ üô¿Sãš2Ó¿•‹2ó@¸yíêÖF…Ôá~ö’5!\qÀ5üÏѦc^:²²Û}ö2 ~Kê1� ®)ÿ@ŒÕ]òSô—Fï?žÅwÚ&½ ¸7™˜£¤¾ ßÏ«ú4@v¾É= û$K.†Èû†YBÆ{2R€dû©8l(”ƒþÎÞãØfu1Ð:²ÿÂÒ./CnËÜ ‡Éµ^ÎξäY=‰ðÿP‰ûC ï²÷£ÑÈxBö5ý*´±1' /šÂ›4¥oò=•÷IÞê\%K’–y¤ìVÇGKÅ™­ÅÝ]º4 3 Ã!ØrDk'.ŽnŽî9é9iGn…S<ä³¾;2"¥¸²ë³ëßzÐOÑOíV¼|3XVtawSc圬悓Â~¿ÆÝ S°œOiðj;>.>~#À\ü 0ž,Å@M'rt®Áx(®[‹M‹ ó;ÉãØ^`œpFã0>ò@Ô_‚˜º¿Îš*æ:è{зí&„JRöRÒ!‡@+¨»€iVÅ*BºåŽ�N¢ˆHñÏ+«ªß¸íð:8»�„Ù˜ñ GÂÒ�[ŠÒC¿¨nm¥âÀýúo-Ì\ම$•$•6Y6YžŠÕ GCnLá3‡â°°"¹.¦(¦XU,©.©®€jÀÝTF¹¡YÌÓyDÓ»}Oèã·Ûòצ®TñÔãï-Æ8”wöWóÐÕ 3|Ëçž:‰÷Ÿ$W¬Ù�ïÙ9}I °qî& kÞ‚á£Þ«LHhÙBàë�Ì�-3+3«!Ûî4¶`y X4šÅI-@“T·Öd¡”IÿºðHÞ‘¼ˆƒfÈ› & ˆ*w@Z6pÕè}¡IÈ9#@¬ŸÅëñÈàÄØš8G!�jÒSohÞ&úi�n?»˜wwœr)³dkgnüðøáq†c^[)×øðø0’™••� Ò„”RáóØôÁU[›ð5„jXùfõÍ*UöÊÜ3¶îFkõ;x!L׊ Y—·;cCÝÞ+F­Ì©÷íÆ‚s5ò¹Í9ï,…�¾.ÏÒ>›=žƒÆ§¤çxɺe¤Ï, ¤ŸF6Wïxò÷glò[œ±ÍD¬¬È%È· ü<´ÇµmË{nÑ[Ÿûµõ‹•ÆŒ¸‚ëÄ1âjOÔ}OÈ0tÃ÷u(8˜´ë¾Õ:iƒïÕûƒw€ÕÒÜ;@W¢ †FžX%!KÒºnl=÷2¶ÇGë¶á l ä{¦Ñ6Å™î°�QÈ:»ìpOšTº ½ =“$­4d ùô ×í+ଜ÷ê«"äò:Ò%UhÅ))ïé6?-ïNˆ�mñPÊl Æ;阀¶8ÙCHd…ËÇ­EI½C5‘7‘ë)š—L(â"i"i¢w¥we'lyIâÃw‘îó ®OzŸôŠ´CzBzÊË  ¨=vã�±UÂßßàuæ•=|ܧ›D"p»MÍÿÚ”ò‹Ý¸lÞy2bì0£ó²ôöÅ7H?̨PœDF¾N Áwáf�%�ÝjÑø…”4a <\9LˆP²Y%¡S£‡�̈ÌÈ!Š�›@?ÆÍ4j'ÿ3Àù(oÈ}þ²¯}«‰µµìµqHÍ…h/íÓ/04 þà’Ã8NȾ{€ãeªð䕳grr2ò;) ”èt0«Ñ™¶4¹¾ŸÿKÊôR™˜ïÖösÝ>ÕNÓNã.™[ïƒK%ƒruí &MVÞ„T¤áCˆÄ–áZ1Y1Q‡gÏdψzµÛ·ÛÇ<Ù•‚ÞÔ뜱�5i³z8¦9^ßÕhÒà=²Ýîós·ÀEš2?®—n…ª37-Ï�…~ 6bûŸh¼<Ꙛ�š¹ðâ¤Ýhýú€"RÉŽWÍìJžF‚Á×JÖë1O^2°Ûïßx‡s×ô½¿[o°mH§tÅ©ÔÉMP<Ì”1qTæJj k»k,¦j@lÄö_i‚£³HÓuêìÄR…$&m -+gwwÅé—\ß2ƒüì>sHy«±ý_hÖr¤3Þ³¤™}ÖöﵿȅÝ]hó×ÝŸ\u¢xTñ@�g`¨Æû›4ÄFl¿[ûlÙwÀ¦2-ʹeûüb¹õ™Ôà "g›ÝB/Ê:ÇOQG‘ø3¥¨z7±ýn�±k¾åâe8ïdíž¼²?,칬7.ö~bðS¿¶|mym}S?U¿T#äñÊ.4éË@ÔàPL!wz;ö—úß!¶/vŽGô-ò¨Ø¬éø…tãr˜¹Á×,‘Žßs�i�n�»¨ï 5%5¥d‰ääÎ \}Ì}ÌÁ“Á“ÍAo6ë“ ßôð•+E¸à¢+¥+‘�/Á—‚w~Úø´±ñs8÷¼Ï�VeÍeÉÁ-‰Bîç̇–-ï¢EŸ÷En&êgÂÌTú9IþšÏ\­ûñ½©NWF…�KE¤­®ûž«,iv]bÇb¢iþþ¼ïðç}Ñò‡×K²†L¹’Ff4`ÆÛm}ñ×ÖùΈîÃuk×e vi7ÁÆ“ú†î øþ²Ö¯u�B�Éñ]+ËNÓ}nØ=©1Êõ²Wa´¦Ê¤,INbs…»Â¥^Šhb£0Á"AÛxfÔ“Y…p½Ïÿ*ãy„z‹z‹Z<¤9 ò×ãA7ÈO[T ZÜ Ð¢¸)lRÒ« ì ¿#û ò¼}bHîj+!k²]ã¾^ÕÊwÔL…˜ŠìíÞ0©~ÙÚÔ.†aCùSõ’¸¦ § }é|é22ê¦ÊïANÎ ìƒg.l.LÞQõ–ê­n-þ þ v¸µ9î¦DÓü½EâûŽè>õqõ ~5»Ý¦P¿6%Á]ӈǎÑc€Qæ™Ýæ—aÃe|Þº*éü2½:|œî^ù@Nrxy»è0†ý¬o&!üU@"z[ÆhÆhibý¶ÒK?ÐìS}MŸ ~9±›¿þqï¥r§rÎ�xÑ@ìú[ÞBx-†Ð…�#M@Ì„I2!pm@„º(|:r›c.[¹û!Îi¾~]1“Ú�ƒª–öqR…]�jlSþæïèí¼"¦N¦N�¨Tý+Oq½¡~C=Â7ÂçÐe¬M¿¥ò ¾È1SA\ððVú¦s¦s)<éiéiLW3Л²¦…6Å}/ö„Ãõ´·^ÝdÝ‘{õ·;ïÃ}~J.W²þ!ýó=ì.BæDÆGÑ}‘¯þ•6é]ÃvFAÇ51´Çh× ¢“nÙ¾ÝGŸÏ;˜ùû‡ë¼}u=’¶¼¨.b#6ÐÈ64»y©íÇ3Þí°)<_'7¶öè«È uìGûiÛ?{㙾fk”sz>"¶ÿí8óƒ[‘z܇oñW3qÁx;j�‡»¼î*¶à®œ¥ÜdªÎôî×CÁ‰íß×WºOW¤³ª‡"µ¿771ôL’òÛ4ŒsÍ\©žk·bl2•'uöd&¶ß«å8‹­¼º3´Oÿ‹7mc‰{É»?×9¨º\•)åÿP5)à ahÑmõ§#¶ß«ÕÔ;2½õÉÍèó·jé÷p•üöî<ÊöáøØ—<¥"{–Rv†Kö-K=”�D";c/ÄS!’¥Hö­Y+kö¥…â©�ìQBŠlù¹Þ»ùÍ;÷ŒÇ{Îûœ÷ýý~Çõùã>¾æÌpÎ÷ÜçÌu_×}‡Éü0-MizîF’ГÝUÊkög]ô<¥îÿ4 Ì1á˜*1cæù¨ñ<@h÷ždÝ!Á³ÒÁ}|_å#W�2~`ìrÞmö½åÇú÷–�-àn_ÁŒàØŒÖ_ÚéâJ¨¼øæ}Àëþx¬paãBA†Çf€Øp5~àÖüóœ¹ÖåýÄd,ó|Mqøx÷ðîI½�®Âw¯ G¢ ëÕä´°ˆ™ö‚ˆ˜é;6,b8<¹<¹°Ïš4V‚0|* ɾ(ò+tȧÌ£9i‰y˜¿-XììƒÈ7“Ç눼µ'Æ<†ª6åÑ¡?jí;p8eø]ÏýÝsûÆËB'%õaêOóF¸d“d‘1‘1ÁxµnV†�Õ4™?œ#“#“¼áÜäÜdÛOmídž RðNÝ´~ïÍïìrU¿R õuÒor³N-®wŠ«|å9œ?OÞ8/Þ\nsólª%t®:ŒèáGÓü:aMh:ŠkP¼ž6Hô¦á°æÓR„<pÄÓ-àûêøÕqí–ì¾gä8lFX¤Î-R@‡è ä4ƒ’¢ì¡âÑ©÷Sï;>C°=¶Rzµ!k”ŸÇê'l陪‰$bæM²)ÇÞƒ~�…Ú”^Ž"b†ûGµo¹ÊV4_Ó=aóàÏ;1_ÞVÜØ¬Pž·Ì™3qª�™²à2Ù2Ù4H4H„HKw ! —9)ÑËÁ}°ø`±ú±4·4wé÷þÚþÚ´øx§¶Ë݉e» ä‚qü¸1¤æVº‡tÕIyW+ᬬ==k³Õ& ƒÑ„vu¾¯†ÓAë _DЧˆ§¤ª�ùÕºÔmoáóÓûµâóüܯÍ”‰U8W›]ºÙü49Ÿ4j„÷chéè¹buªZf!c©!Ëøæêq;I뉢ûP± ú'щõ<Ÿ�‚ýüR‰ æ§Õ/Fo æž��³° Nˆ7߬ëËë]Ïz‡Z…³.×ÄÉ©;Ëì®Ñ�^’�‹vù[- å­Q›@BèõÎ2UÀøŒ 7àž¾ç NåÓ,YbN(hd—ÝÞã[ÉZÉRë­ðÃÇ�‰3y«¼òž'@ÚÁrâðÙ;îÐÕ}V{)öRè�A¨¿@„l;— Œü”(¬]ókðt‘Ã�˜´6 ÎìœäóVȉ~Ç´t47/1§—ëò÷Ω¬Lç:ÔðôÍÙbÔ‡h7f`0ú&r r@ȾöSÎU¸áŠá p›NÕNmîÒ�„Pa×�àÒlÓl3‹n,ܸ«¨ç¢ç’­¸dï”tly¼Öþ Áç–C¯‹ê¨7ëÔÊz§DŽê¼…»^ü q:¯—£PCôI !´ðv[@ÓÎù’ã»S„4ûµE y@ÀÍôΟKq”ÄÄä:Ê’”|þø2S2SfÄåÁá(Gb™j„#�6»#³„¿#ƒõíèz��‚’\HV4¤’š‡ BïPÙ�å°0™tÁõóÄxšÍHú»} gŽ[ÆÅéŸ0'Æ7ãÂÑ‚0wv$g¿iÍ¥’c÷’x­n ¡·{V•W•·ML0!‡.´3´³ƒ§ƒç޽sZéiˆ”)¡èÄâ;p66m;ç»ç»»غبéÑ$ØN90B�R::äõpq}ÄbÊ»HÐ}³ùiøù38nÊÌ8ÙHµMz\¿åÑm¿¯ü¾neÿ9Yé2µt„TPLZb´ Ÿª™á€C¼C§ÇdVG|°ô”æ”[|í‘ÇŸEmeÿúY€µáêçJFߨÝù-V«ÅìË><.!¨¢±Åu•d[ÒýŒËÆÎºÏ¶²ÿœŒ4<±ïïøÆ¤`—F^úý yÏî=û-5ö‹:þ.¤Ø:/6ÉólÇV¶•ý«e_í/�ÓO—S¤ÓR¦ÙÕ×<О•e®{¯FÍ6XŽ~+ÛÊþ·YòY�üö»‹Å¹Î+ÇtÒCÖX‚U2~Š|û¶cŸ»ªaæSí�Lò•][Ù¿V†ô9A¢±{ª€Âôfá‘ze^Û†0û…Ë}A>� |2,|i•;ß~—‹ÛÊþÿ2‰õ9|2Zf+ã¨ü=ÚjOßcjiHþ´Tý*�áý3²õ`\,›º’çVö“YN»k©»ÈªÛóªæ;3 /�Y=_f:ŽHo¤á7H Ìh:_+¾•ÕŠW¶:žï6I.�ú9ÿÐz¦ïl/ÁÚò:VŸÞy¹A]ßä�³ÉÔT›Íݯ’!ÅÔöp�Kyœ8ËIW¯{ºk‡÷2</°1_»cÂt€œPÔËvÀÔ_–˜)YY éK\%¦šå��)éoŒ/‘'‘çvK< ¾²æ«XÃRÇ>Ý™å�”‘"s¹¦ì’ßüþcÞ ’ðY6X¡Ê“ðÅ:VÈ »òUö#x`¿‚I€ˆîúS&Ë„˜Ás\©¨>#!Z.U3ßW£GRTM ~vmŒ¶aÙM)X)xÉÝe­CNÛWÛwØnØÎ‰_ûFèHs¡Š˜¡pSBSB>²#¨Ôç˜Wr¯ä(-Â;åáYBrYU$lÿ)Ö}»2dX6ëÔÏõN•µÙÂQZJzàhI[ [p¹mcñ$]ëüËþ."±¶S’�`üØöw-õÅ5 ç|fqʇdP`6 ¨ùC¿¿Ÿaè“|Ùt8ù‹XLZÞ@ñáô ÄW˜1# hxêÖ©[Ì�$ Än{Ê*$±­ÁË÷ °Æ¤æ¹²S H‰Û]™!½?I]õG1\©¦÷ôª“E ï(çl8ß—„®•ÝXS“¹â¤âäPNÚý18†N†ÎFŽFŽ9Šß/5�½l„\ªÚ>Âqrsr¯ŽW·U·­™FO£ùvK`;õù×õôøxašmJ‚ßö„H’Ú¯!7ê”®Íðzú_]ÛNVª¥Ý£I�¹Í”B«Åô;à AN£„©¡Y4Ý7�FûÝjq$£×螥8;¾Fó0Áïmž�Î÷'¤¤™‰J�>¼Ò;Ü@“ª¶—<õŽW*•´}ƒdÄ!Š*øµ(øÞ‰»â6H*þòk´QVü'ϱ¾øçµ¯_ÿ+ßáŰ�£=I݈eVa· ÷¶©zØÙx¹z@G»S\'ý¸Ül<Äm�O�=ãbÇ…±óð<ãêÂ%&")‚DŠ þ¶!"êagëºþö~"׳H1q AIiðÙÛgˆ­I꿎ëï(!‰GKˆ!�âh$ø-&ŽCJHI¢\bÛ_ðÃÛÓËÆƒ‹ ááêêõW¯Ûì÷ÿ¦~¾ï5x(xTor¯úOËÌú ªM×”¬�ûù”ì…KŸ¿„³rœ=ñ‹ñÓ™Û*„˜{M€•{ׂJÉ*Z©?sœ–üT�ðcÖ8ÝÁ»ƒˆÉ=º/ ˆÝNŽ�†‘†�fŒ/ÙçMÖÒþïcÀéS¡�¢³ß"¦C1i�i�Jû 'à 4¥(ÈÉéKX�W±+Û’#1ì*€w¡ŽÓoB�9SŠgy·¼‰q/˜˜ÞÙùm�õlò÷±Ò!Ú@.žh¿�UXߎ=[s¶F7fûš+‚Á|$èH©Õ!§û‚�Üo„Î…+Ó.Ó6 U9§rÎ vöÍ2�2À;ÕÖ˜Rô^¤:°ü¥=-#—Àf�B�#ÔáyàÌçùq¬„Vd‹W’N:ØÛ PëLÆê~o $«‘xSíNdîŒÆ9çu|;1±ÝN#À ç£&|ìÖìÖª¯¹¥ðe”âð3b)’Ñ�Ÿ¨¨C iÔå™ikÊE·Õn«Ð@ª!‘ì§½ÙÎþOT­@öaàû�CýĨ�{¦•‚„ Wéô¿ÏW Æøæ±àí¹çF"‡ìÊ_›•^{ìòjc££ß~ˆ‹÷Þ|ÅéîW{·ön¢W¢—Á ýÒ¼!Äq˜P°šÎJÈJèhüXÆX†uZ-êP5âïTˆê´h]½ëL#sú&!¡Í:E²Þ©È¸wQp´¯'qγš|xl“Ñ@È]}< �æ’Œ}¤©ð”PN-´bÖÿf% u²Ù'µ"D„Æ${E@e[ô |>š>š�Qè4|d.8i>X‘ÙI€ÐQË$WÆÃ²r¾™ví®{Ý�9=ȗߪ;!È} sXu€‘,°ÍzŽƒZ€•ª¬oì—Þq§#Ïù¼F‰Ñ³L8¡ndÖ^VoU{á²üZ@7ÏÆ^Æ÷“úúžFŒ“½ €ÓeÕe•œ’œª÷|L«™½CH~Uä\ÿrÿòa½Ï|Ÿù" :);)Yhå»á�ú"3ÇŽþtÑ\m°U†û$Ǧç)ÒõNÕ´kÐÀ={Ü.†ã6ó ¢JÃôØ"¡¸¡ˆ\ ë²áw+gB}yoï˜ó©�üá4Š\ï&&þ·75€²…O.>òò�5ZÛ|qïqVô°:rxä€üYŠ1£´Š¹Õñ¶Â¶BwKˆR¤*ÚA²æÿÑ«Ôx\<°}¦K c @ê8žäÉšt[¢ákJ"F¥ øÜvý�šWjŒkzØ|âæË¤�ÍŸ6ö,ºˆ iŠ4uŠì-�µ€‹@F I H ¤#ô V „r(¬á � �Îóh«h«H����ËìÝ¡ ï”­ëòÙ#½=•&©N&plÖ)²õN}äT†£Ü©”‹£ÿrl»Ñ‚dx1¡•|†—Àè'äxÌë…VBü1­þ€¦)Ù' ë ò,N(ãÌ01Õí’u@>uô|k¬k¬ }�ðià<ÎÆªBû¿ÌýZ!g(N6yrµ µ´dAï…DwYPAî«L§a}e…€HaM;b ‚ÑÄmýY �|õ—È Û \‰iS;ž1““éÏ@×eòòé�/”9?´»nlLî„f½r½rq¹ÆPvÜåÐË¡œcœc)#"%R °#î­g?d?4%VXxÁ.0<0<²Y7¾=ý³¤bú}[?zs®«‡t›­G‡G~ù¤¥†Å�…½KÆEñâø“@½LSD4O+ò%¢¦é´úMßÅÿ~¿$n=:Z�.¹Ázt-�ËçbZ$f� rr§š«e6ë:ùz×�t_ZÙÍ2$âì À§ç€Óá‡%LÎ-`ʳÆ!KToiÔ�ÔcCÖõŸ‡$ˆB.¡~�âJ‡,­^@„óþÖ@ÌUV€jD.Î"bÚweÖóš1O5 çxó¬É ¼Ñ§I+%©~õ¢GüÆ0«Œ…�˜@ŒÌ$ã ±\2}2}û?Ø»óp(ûýàöe²d‰,‘}yì{Š”¥e§(¢‘�­$»kÖ²–x²“5»’ )Kö¬e‹²„"ßsŸùÍ™{ÆñÇïœç:ϹܯÿÞ¿¯{æ;÷çž�n³®PփŠ#ˆE%.ÝÇópÚÚ/'»‚º‚Ö#÷éïÓW+²q†wjÁf€7“ϦÇð<©×�.%Åí:EºÙ)ÇøÔ³pA4ù¥¯¤í„L¾ðÕÖvá>žý÷ëPµ� ªWS^«4@öœ¿0@‘ìÆ(Pá¦Àçë£ê§€/å-[lŒ}Œ}¿¾Ö›a{£†AM‚–¾Ûøž4 á'z2<ÜÃmëHèHè’QørÃyÿEˆ—›w+ÚSU@Ìí*$Ä'äpmOW”ñ{È�ïÓj]Êbø$T™KþüÃÃMÍØ(^”D~”\•JÌI|kåݹI¬Q¬Q"ñŸŸ{‘è’èj'i'±«^U㢅,Å%æ }–ü3°‰]õ ÊeÒzq¡:¦M ïT×o,dg95+8,æXH[·ëÙf§¦<š{á.¿ËëÅÐbu’ž�"éêÃ…L: |^V$—u?¨Œkº˜‘¸ltQ :™CsI2ŸNáÎc€³Ô±3ؤ¤Â|zä?bË•Äè@Sþñœ(ë÷…dI¿‰ÎúòTê‚úõñTHà?®¢—7ƒ!‡�jо«Gû.e½<|¸6OÇþ†Xˆ|̹¯´ÉÓðI—7QŒ–6xu$â¼»ýS+[�­Õ‘’!óØòØ,{¯5º¹ÃMÙMÙ¡„QÂÊô3Ç_?€´ÄÕõ¾–é‚t‘ª¢b§b¿:CíEí•OÁ,ï”vO¼á`  ÇyEd›Bz»N‘ovÊþ¸á58ÿ»„·0„íw]æÏ°víÀu=Þ°¥ò¢©æ:χ«4,Û]˜WÆ%�1 [˜bðáÑÒÙÔ5Ób{¯ñ^9%u›íbKh¢ã��•‡*¼qÒªW£þîžY?²šß‡ÌÈAÜç z!u¬‘&hf”À™V 3f‰�ñÀÁñ¿Oâ›1�©·Ü8ŽO£Žü‰î6‚\jŽ™/dÉç»|3oÝÝZhxÖu"U"Õ(¯ÿ %%ÝHÇHÇ·“e… �Ñ4\÷3êÀ ¨ ¨Ÿ`H(K({ͱȼÈ\þ»g-Î}ʹlú†ô`{ÑѾ kÃ/·ëÅf§,ZßÁÕ/fb,¼•¼§a]ü—�c‰$`ýAÉ+ƒ<W¥…b: ³Q œÎˆ6¸jä‚�ný½D B¾Û ÛbÆb†ãÛ¸il>öV/ÐìÒWCÒÒ#�B·ÚçÙD7f ² ²…µ WBšNFô£‘ÍZ@VÆÛóøœý»(äÚ´j"D@1Çn°?ïw|h>ÇÝæXð¥o¦pÑe˜+-á±'¨åØsÅò€,B1¦JàuÎÔÏÔ¯F»F[Òdíæ~„e—=‡œâ‚âBq×â·ÅoÓ¦eeôÆ?Ð� f€:µ>ªËp�ø‰›_’ IììïÛ½‹?;ü7íQý3² ·¼ävgë­]ƒ/¸TÄFP:¹�Þ/.ð?daä§þÊÈXÎtâ§uÁNö×Ì>½­¹p�1\ß~e‡¿.~ý€F¦_¦ß�!õkêך׭»qælQ¾:§?ÌVCvõí¢»±]§›�šÑÏiÁ5oŒ‘ŸK|z$%Û§2WAXy80v!ˆÓØá®&Ѧ:@ÃHeX« “ˆ/V.ŧ}—¨�Zñ  G\rÉ[l‰,Âhëwæ>»žŽwCH|ä¹ÈŠ« « ·# ±u�dCûhˆ£f?IÂ0b´>±+ÃÇpxäãœH/ÓU¸¡<ʆ�vƒ¤U|¸‘ǜ ]¸Æm§ �˜­�Y[ó*ÜW¸ïÏ!Ÿ \[T[±$±$™¾qï dÕ×åv9B¸`©`)dQQÙÝå×˯s}ú qæ/œö£‚{êÙt¹ßÔæDµ�mש]›�êXJ„›ý)Ô‰q˜!�d&½Ùé¦.Ä€ÀI DªSé�ÿR%®œ8‚ 9•)8Rïà†‘xL³Ÿ²OöÀµl$675752~†Ylž/1\ ÑVŽB“�Ôc(]ˆêZoñ·N‹9bfbf¶ÇsKi“‰%Äw®’íƒ?@ÇÄxPü�O“?ð(^£©ý„ØO‚¨z…�n饠‰ô„žýákB6«"½=cÙ·ÏDÍÊÂÊ’Q«¡ö ÷lêÙÔrèr(]4õWpBœq}¤ì­‡ã`ç`çýy`åÀŠsÑþ›ûo 5êÂ;etঃ&m°(…Êñ6â†í:EµÙ©{¼}p²ºaz$^-î§Iÿ°�Ë\•Ô7dNøÆºŠ‹Bó™ø«�ç5˜ÈÁ‡­›'Ð$EíÆ&÷XîqâL9=6£X ÿWhaR»sÃáWˆp~÷£)*¯^$‰$†(êAÚ-ƒ!²{ºÑvßÚÅZ1%[|F{„djšT Äõ—VhzÙ~|úîé·Ø¹}ei‘Vb­f*N&*�Xc‰ÝÚAòÃ^$Å$ÅLN’ÂÒà‘ŽHA"A¢ëó͹‘”ƒ8\#lpÔ(j”1ÿ\î\®€#% %K…¸Y|&ÒJ·þ™é½#êòµ×êê-÷¢g"áïýñh^¥êæÿj9’§5¬>àt‰¬‹s#­n¯åÞý/Œ,T¢ÛþõL¤Â3‘ÚÚêQ¡“G<…Ï»õ~l×ujð=�««Îïs_á�ÑFL®¿”®�_4z€ö®EcÄÙ"\“qŽO€ty“e@×n÷,†^ªÃ>º>>CÅsá·bvQ7ó¢¼Iˆ`éÖˆJYÏ[[—ND†îMƒSmUm]e_e�˜ ©òš† Eá:ó5ÿ5ÜØðØð©Ü`ñ`qbJ  ŸRÉõ»ðN�æ$Òÿ¤êá¿Dµáû�æùv�¢ÙìÔ²E Ž’AoƒÈøÜ¡á±«W'pÝ�°ƒ ˜­>›Šã’T�gjF«F£ŠÏÞ…•ª.øÌ™üT:ƹck~ÐüàíD`$69Æ¥ÿ»Íjª›ýï/Bħ÷V³·ÑxŸå;Ë×î )î…Ìpªû@J"j£¥4Ή€P*!+>¢€£µz·•D­m<ŽC'eŸü¼eù憥ûw�ÃèCÌ]4îž/ßóÚü'iiyƒw%Œ¿à*G+G’Håò÷\…ˆ„áRÔBÂ55\’‘@zz N)„À;Õ–ó(Ð!I¥ÞåóʆËÈÙv�¢Ý씊ѡx8;j»>ŒÁ=ªßWhÒŸ |p­³YŸ.×›�)¨Å•j­Ü:®1ŽU¤œŒ uøVŠDZ?ÔݰÒÒQ"/b#ìÆhoAc¥?ú�‘~ÆNgiBÉO]! & –v€,äAˆf&>AnóÜpE#zkÍ”ïíølHévʧ?ÑBT%äEÈĽǧV¤ÉIg Uéâr%ÑPD،҇K¿ˆ·Æ)ëÜ"´,´<Ü‚ðÎõê¤ón`è÷P;à“î`Ì0/±ib55.M¶9‡mä$F¦!š/4–½¬åó ’à?ûë>mïeÞËÝœ�}' æ{\è!9Çî Õ#�Q)XˆOÐølÚ|ä"ÄÈG¤¼Ê°ªÝ!”AÙñ|›swnW~˜>¶ä‡4}xxkü¹Kβf²f³'¼[ óà××§�§�íåÃÆý Ì­¸â“8OÀ�¶9mÃÄ"ŽGÜšnÔlÔ$ç=% ïTCŽ•à ¿£Œ”BìsÇŽ ¯l×)ºÍN‘ *¨ÂÝvTú‚‘©Ú8ªiDtàf<.T®p°[äaxGÓ§!\ ÙÎì€�ø R€û¡g#F|Œ(>]~/fe™vl±+±+4>k-Øþù“ºh¤k1îÀÓ=Ä!¢±o¿ÔEº£fP3'¡£´€,!D¡·H RÖµF�V7 H†åÎOºñ;æ;’}Óâ~p<…¨%ö[#Y®Øãó�^µ¸|�ȼJ±TSjI‹ÏóðQž!Ê­™s�† † ŠGk3…«ª®ªvqtqœ`ûò’øÄõ$®Ä›§VáÈdÉd_x&ñL¢œÅï„߉…ö½šèN½üÇþTãLµó /çg\K‚Î\9µÝL$üìðÿÙ½µ“ý÷gÖ÷–½¼l ¢æi3f¦�ž=Üi¢y"ì8ÿ›úÛ!=)ª¾LU†ïd;ÙŸ•yš“ÙI±„;e>H5ŸGEº¦át.™Xh$+•¿Ôé¾~GÆ�ìÍN¶“ýYÙí}gòäžÛyø¿Ÿ¹Â”"Eß{eeÐX†¬+ÁãGósÔ®öp‘4Ñ;ÙNöWÍ<ïgô œÖc¸BAZ:ænž»o/¿ÅÓölç'�H†×%ßçÇúþÝYošèO‘Dò‘Kr³¹…¿ÙÕôªJâ}_R¬éÂ8€ë~€„A§¨ÑCFî™hƒhCŒ ä"5ÄÿâøAH¶õ�|¬×—�JàóO÷ĨêÜ’ä‹Ã»!Ò;i¬ºz— ©å¸;UiÿWý(ã´`=‹ëü×àã­¥ôs�÷ìéÙ³ƒÔ&ô(\.W.8»¹gvçÒD¤IiTéY?œÊ •Eí}Ô}Ô˜vaŒ0†%rvÞ”±À£Èîw¿«OŸücùh‰{»¦˜6›òÎËH„›a?/…¼ÄsTÏSBN‰Ô‚“ø®²ÿ[ÚQ5¤\×@îï·ïCE)8òGw’’�1n$á+)9¡Ë¾ŽÏý+Ö�f+ ¶Mñ8ä]«6ïpÍWúúÒÈþoqMµHE5e*VäU ÙH¯’n#įÐa*l†Þ¬6&ÙJ•a[ÛèFˆìúëg¾�%Âdžl±\½´ñ&$|k”nbó>ó>õÇ8Ãà&º&ºÞÔ¾©-Jr=Û‹†\dC¬å…Ó6Ó6{B‹VC«¬QqPq4Z’Á›Òäv(àVxž¦abÜH´¶íî3øNHµ€ÜјŸ)8�DÏ(ÅÒ$Ki#E/^ôøýü¬3dª�PŸsµ�Ëÿ#€ú5ÓXœàx÷Bzh¯…ìÄ\øHÒHÒ”…’©ñ)KáL÷b©ÑÔ!=­‚LåäV§šN5Ý´ƒÔA(¯¼»é %îÂjò �øø�$B ˆ€þ«§íNBv¬¹g~¾ïþ…�6ó´óÝ~דnW«Ö‘h4± ãÏn­%2q,Ö(ÖHYÚ$�h.›9›™œ’œ’uøµ„9ÄgɆå]\£g£§¬þû»~€`‡`é¨åYxSãªç%÷IR–SËÖÆl×ËfS®Å�p GÌpn]¬ŒYn«nÙ…$q)nxµ¿1–©–¾Éf¤� è ¾hgÒ<À©rCÁ—0ÿÉõæÓ;€ =Ÿ6¾<¡<¡�£bCødÊpJS±ÌD£€+ë¦ã�ÜeqzîF+Œ‡¥‡ex9d‘²ÿ‚¬äjÂìs,Ó@¶ ø:BÃLˆ*; ªåÎeÚo<¼äúL˜=Ó¹ÕÒ Æ�eþúÍé›7M÷—äÖ.ÝæÑ�Ö�î Ô~¶awæÔ™S­æ­æÓ÷|M8aÌGjn ñ‡[XP%"5ÈÈÏÈ?ò$ó5|OåÔô�R‘dOS²À€ð×…F\Ûí©À¿w= ÔËïµî ÂP+në®zO¨¦+Ø c~ÀâÊ�µdR"fÓ¿§"±ÅžJ1ݧlº¨šžvôÕ¼¶ ۵κÙú»ŠõL¸¬º2œã.Ø—·$;¤ŒôfV=°q«,�_¬@²å7Ø @×j6å�8÷0JĤR}d(òÃÖñY;Z;^JmTÀ×ÙŽÓ†)�¢̾÷¾é+¡mú¥ì£77–ƒ‚0BPóÙñ�ªy¢¬¶Rà…�oìªKÈу€t’¢EÐ$û]ûÊ" 7!ÉY¢¢õïR3„-üo%µúz;¯4m͵§noÝÞÅïábÊcÊ/Ì]˜ )B§ôABr‘j\²ŸÀ�ܹ£üãzíõZÞ:ÿFÿF³�xSwyîÝíé üÞ�aF±ªº]Sl›M]x<î'ãT?Î(ï+gää¿äBZ*]tí«£ù⤉Ôtë± :œ@dtTãµ°år-áÁPbq<ßý·÷ß*NùÁ7#�ó8 ë^Ñh>Ðõ‰¶‚fBÕV¿4|Y£Q£Ñž ±©€˜Œ°°CܯW?ÀB)L€>ê!Ý ÀýÐ9'n}ˆ¾@�˜Wö !&ƒ˜±2‹[ú’÷6Ròu’bÜI í¶¦>úñZl_lßÕu^§q8 ) )ç§ÎO¹¸—xL!ÆHÍóáâpª½ª½ 'ńń‡­|<|<´êò7NœSø�*é÷Œ²~ÓLù°]Sì›M]nþÔ §"ôMG¿�«Pº~Ñ%ü-’£dð,ð€Mþûç‰"_¤Ê©¹i`<]ã!ðÎVç NT–ãYBøoJXM©oªñ—;.‡J”Å×oŽ#]ŒÕùÉ™ ˜Iæ‡_/šîddå:Ãu†Ïâx²7„RrŸ3‰kæÐþO(u¾O„ˆ«o¾|)b•…Ða0Ù¤˜‹þ„Œï÷ àÌ’ÏOz§S¥dùT¡à­Dέ)wÜŠz¥÷JO Ýßfaçßæßs,æØ߃ŸN3CbN!Åi½‡kioi_Ððö¶û¥æ¥æuJ(ÉÞԷꬓM¬ºõGún±•Ål»§‚Þlê¼|{ \¶hA?N‚grÑCþ=^+(¤Õž§Ö@çSÏUS}u¤b™WÙ©Ù <ã_÷½iÉ{9b²Ï¨<Ü«ˆ�ƒÎÉE%¤ã³/À¡åÀÒj¾G¸Õ´²@˜*¯UŽ ¦]»B~…<®òed}½ÎRÊ·¢�ÕöX”.ËPò“H­Ñ|$ O–SN¿FKHÓ\‘Nåéb&s}"CÕÓ‡ùj,ÃH ·6[SùțΛîêÞ‘±ñïp¹è\´êKÕ—"�ïÛ$!NÎHâô³]u…�¤«]bXÊÝ€àÁsâ+!?¯¢¥´wØŸAPaú‚ýÔlYáÑãwké ²t‹iTŠtÌLßZ7ås¥4'hH­±¯ìƒ ðð~¾ñ|Óä q¬9DÌi‡¸Ñœ�³�óÄÓÉ'“Oø%ÁD‡ãk4¼©R23eÔ^®ì½4¶vïçvMqn6U¿ëÀ8£²ãÍ8aqŹ!¼{uª‘&×Ú]�ÖÇ‹ZI‡‡›‘ì§Q¡@×úà";el„£àÆšá…ÂÀðóØ%|üñüñ3¶éøF-p\ø±¾é]’ªwAøÎUi5ˆ‘]´Õ±Õq ‡ 7 <—!d'¨±•€É.@(¿´‘=`ÌQŠôN8Ç>UŽ&)zÛ”OˆÛ:ú›k�“9-_ú£QU)tb‰··¶ïÛ€·ç.Ï]2óü ê�pz­z­SO¦ž{õ§(@h¼‘ž /…Ÿ²é5XòXòðÖ}íðÚ�¸Šq3ñ\%ºüP6¦…3à_ÈúáòíšÚ½Ùƒxü¥XcŽ0±?m[¦ŠsR»Õ @ÑS›7²†é’ßayZ€S‡Æg²Þ…£]ÖfHˆ xf9ÀªØzq(qè"gs|¥8ý¼XsÉOÏQ³‡ˆ )LO~xŽ{-{-K©Aä: ¯¾õ°CF4œocQJ÷âåV=B%�Ù‹&ë´3Þ® c©;ùRù’±·mÉ‚cjUîG�ÎGt£RÞ—¢¶–·Tù6P,P,ùÜ2o œQ¶Q6­­OqøMYÉXˆÀ:R§hâa¸xÓxÓé*G*Ç“)(.P�Ýφ7e²>›í8xîfRÉ�BÍn××fS‘�“Dp»fþõ½åJ�:–É©¾Î¤4¥9€n�ÈŽ¨—ê‹Haf|@땊K€_Z”Žï” !ÞÚf<€ŠÑñ:|m+m+É'§òð=zˆ£ñë uñ`ýáÝÈ8æ¡ä9Yå}ÚÚ¡6�l/H¸ÝKˆ:C�–£=°Hrþî#$à1`úþU°³äù É‚·ý,!”výé|?¸~HdÚªßânø½ä•$ \¾µ…nê|ÍiÍéôÝ,ç}$áš›ëÙêÙ˜eoð§ß†\­G:½T$×÷¦ï�(‘‘€»Eepe0¥²]/¼©�|kV^1] qço{~ÏfSg–—Eà(ØÏ�ã¼8*Z€Û¨eEr~“J¤Ëë„›‰ŸFRп™„ŽÑ¾Úënã¤ó÷Ü%äb¶Ë߀Ò:[.¾#G&"nRÖá“‹Áù¸†å¾ðøÐuûž'ª÷\ÿTfCÂõ–ë-mŽacˆ�Û™o�Å›Æ5XÝZÀC[€*‹8ž�x ±/ZÓÅ2ÈVÓÄ¿$Jï°È�o…ðR0Ó{‡¦˜ø½!Æ–Ÿ·–à'°šºš’‰¨õ�‹Žöžõž�‹›ê7L„´AâÒ]ƒ UêŸô›ôS«÷‘ñ‘ɉ ¾ ß‘ñ¡5Di§Mºm`ŽW9Ð}7ÝnG~ó}DZ§öÍħ¿º+®þðü%l!5Ç`7yà‘ÂÔ¿ß‘ßbG¦¹w|Þ*áví¯ƒu'FtãY¶k�{³õ¦åÜr¸WÁÆ­8Ïçe)]š_afÑHjhrà®O™k8Zµ©Õz÷,ÐGb�ì”Ñ+ÅQŸ×Ä‚â‰/œ~·ñ㋉9­ºtŸ­ NÐ^¬ÑÆÖJ`ÊÉÏRñ­�‰øqdΦC†�”Eȉèç�OËâXÜîÀZ ÃIõ…ÑÝ@·ñ·žCȭÂkºÜ;é¡¶g-<l®C!þo1âˆ+¨Ë�1n[kdL‘‰áŠá ¨äé 6‡“�’�bIaI±‘ÿŽžn‚°‡"�-£‡’’Zžaaþ(Þ9Ð9 Ñ¡ko*¶‚mdÏ; vÇ¡ô[·kŠ4%E•w½¬› §.LWÝÆ*ûÑ@1’~»î{ÀW€gž 2•¹’Yd.‘!É\†�yž2„$Ó6ËÔ–TfŠ�L-+S!!¡L!óÐF(T¶)Ç}ž³®uÖ³–ׇs]çÝç÷ïÛÿóÿºÖº‡ç¾ã·:à†ö©ó©ó0úCýÒĽ ¯ ¯(\Âû„÷éd¾–¾–\¥àÝrÂfHx§œFNRv•’î×¼MRƒ¾e·NqnwÊž�ÞÎ�½LMó›Êu«6Jc¶�¾Š6 èVÄçùNÓ l)g>6ÆEù.ÀE¶µÿ¤b§(:R1±Éׄɸ’ñ¥zf.LÍâh›§Q´ùðs¹dñë�OÑDAµkÊÔ4Ô4�ô� fHãÔ½:H½çkR”ß©€…9``œ–—M!ÀÔñ8Äâÿζlò‡*.“J‰ú×d9îÎísR¶´ú]öø†ëþÃ;s)ÖôPP”—âm2H‚Ë"Ï"¿íxÛѽÝ!…6ˆ‡-C‚æ.œæ¦æfš’f–fVx8÷5îk-‰DñðN�~ºÎ;ûâìTb�S@žü®ßlpmwj%Á¦ .!+êš�Ž\Ðæ¢Óyæ7ØF5žOüÍ)*)[°5õs KO|€Þó EhalŠþ¸x=•gJÒ—û1±n²nâmu¾ÇÔ/�¦-…’”b+ Ü£Èë…¨só¸tG °°OQƒ|i�(Ê]R‚DK×Fù`@{òžAÂ¥’ð@öÝ…\8ÁàO¤Ý^‹ +u WÈÆ¤¬®'YJ(§ÏÙ›JÏz·ªw–Ñ;ÅÐ7ß7?ú\*½ôMM›²‰² mÂ8YŽ äÎ9l,Ÿ*ቈDz‹r«r«1:N;N;ÍïP�¢ûǽ6îOé‚,¤yt+š%[x·32ðÿy$Á=§ß3®DmHË;f®ò‘­¹îe{ÙBæûðÍòÐ0sRÝÑìO±G5„«›3Y¼‹ë~JÖKõhÑ/§ ç\Tö}º—ýµ²Ž`nÙƒ5x†D“ÎÖçµ’_ö06ÜIo m|K`íî8ŸùKV.Áomn/û÷d=ÊÓƒÙÝb& x–%’�…Ä·¦}Lx²è…,j(hZô͆)–÷²½l§LV½j¡­Ãh@é¸õô¯l ËüÉ«)¯ž&_ŽÕ:üÎ�b}³–ê¸ëdté^ö¯e뇦¨»1 \ý„Á¥üFçÞÁçG^Ò+|$°Ïÿ}ýÙ½ìÝæÜÛóŒN®c#pÍ_ž¡ÅÙ/¾rÝcé;¶Þ_�S¶ä¬ÉâvØ~—ðIâz.¬— äËÑÂrëHq‘ó©Î�>^Âdeõ“¸@Óg_4“B‹œk@½ná0¤»rÒUìg[2Q2QŸ>¤­"wj�âb8±…Bs8̘‰KEâ¢.èçKòZ›@dŽ U^ãxV|ÛWÉ® kã¿ØÞžO QçÒ¦ ,½{³³à¼óÆjûÔö4© Ù{àSSíìrñ>Q¹M@¨©°é±Y<†SW7³[bYbØ HÙ«ðNíO4uB,Ô/éa±ûí »uêèv§˜†Ë‘pÑÌ7VÑÎ¥Ë 2óªÆHzc«¦e«|ùÜ ì¤ÅfRW¸Ñ|œsÑÔŒ,:puÈl–¬’H0UFUFÑÙ¿ÁÔÚ�&Ú‰RjvÍ P=ý3²Õ^8Ný%.JZ@ZàK#äl%äÅ s,ÄwÕÀåà `ñ!Ô‹ �À`(˜¤bQºS!>8Ù;Œ‹ç/ÏüÛwl¿g’\PËlâb²�_îdÔŸ!"Ñ.Ñny„ö�ëQ80ûÆÌdŒëSì�”OØ=!¬…× #•eŽÈáx�ÆŸÆŸ�O°ïTÍüù™�IVÛÉPɱŸR»uêØv§4$KbàógÑæþÜì %ä­Ÿ Åö'~ª!`É}ƒõgõý_Øâ®PDnr @Ì´w2šý’%.Å.Ãx¥‘˜8 8 B‡õt1Y„¢}EQ†n�wÎ¥”€?y ‘¡T/Ñ Ñ`kÑeƒÌ‰k©@öMd ¤æÖ›K^.š‚Ào75®£®Œx36¨s•µ—Ì5•2ÿ#-Õ-ø—ôó|Õ•ÓÃY¹³c_,_„i‡i?�! V[…“™�™II _cŠ|5éÔÄ&ßd×ø¨ñÑfÞLßLŸn@ÂbÂ"½¦-Ö];’¶ÍÁËÎxtq'1ã$2Þ­SÇ·;•zDO î6¢äŸF¦~üIRÇ%2u7l ’æÜq׿ „G±½·Ò¡ª¦Ô®mNq’hKQn8^ù»Ff[L::Ÿ+¶b2©Ck£GYjgþT…¸ŸjfGP�WŽWn4BJñ!Äô…Ò^kÝd”·Å´Í0ÞzP—làëL㋈üA×’öƒ—Ïá2²J´ $rÿ³w¤à�®‹NÊϨ•†¢w|) Q½=ªÎ3eOûÀÙ±Ú±11T5ÎNw›B¯bÓ ;GIJIâ÷àǃiJk›§ÇÐeÿòðí†i šÀy\N® vm☔³Ø’1 È  Ú£ÌivôÇ yÎBh"œ÷›Júhøh¬†A:-! ô…9 ”¸y -0¢ô‰Áʼn˜=®M'qjä%áW-Ä劈Ö÷nÍ^*ž}ÓÒÙòp�K…¹•;Û¸%ê ÞrKÄßß‹7(Q$QÄBRn¾Ô¡©ÂC¿R Gu™ê²‘#M+MëdI%S%Ó}6ã+ðýù·¢jÈK�W-„ÅÚÓ%¸/î¶?¯ÈJ˜–ï™F"ióZ”+æ› /¶¹þõ[Àž% ÛAÚ{Ø\½…�ŠP6Mà"kŠ Zê¿9.›±6\@›ñ¦.ß._ZWB>LH4«1”ð4»0à¡9j�³µyöĽE:.Q.QUÈ Dû�z-DôªWÊi €´ x´Ô=Š‹ägà�©½�tD õä‡!¡X\Θ=ެ4ŠZ£�¾Íwèøè�`Û¾¢�]ók²~hý�ØÒqù œp°p0- -Mјµ\:ьə÷;\óXóX^ârâr8{ÃTÃT Wn,¼SÚ7½$;ʯJ¤Rò±îz^œw»SÅin~p‰ë!h¦Y^É � ½ØÂ¿gS�Zõ·O,8ã¢gkNg}CÜ.)YO´¯ÒbU¸TÄPW¼v„1��K=³z‰©�ÖwetþA òI2ôÙ‡˜?WãÎÔ‡)κ�Ec²Êí>ÄL~AÑ:ÜlJ7¼îââãè]”Yf‹†¸N4*Ÿ§9ŠÀ¥OÀ;„iÖT\a>¯ð̆U2¯öÀÀΈFø¹#¸#žÊ-<ÐÉ�C¬#Ö��».ߤ _‚Ü<ƒÍ WwîiøÓp³rròÆœ6í6íºá¨¬ßäÙyÎ^•bÇn%){/¹ìÖ)¾íN½‰s�sôŒDû–“ÉþªÒ«#Û»GU€HºrÂ…ü~lÒסçï­÷Zk´ÑN""p) û0ë±Ä4ýzúµÿ°ü%LT?ÑôdQßÍ.fQB&Šçžüfs@û€vþ,äÚ)ÈÇ[Æ#�—G{N£4t#H@jFS—YÀN°“akâõ8æœ<'ÁW\Ä­)eê/Sq;\ í¸,?Mßb×ĸ3<ò®‡¤Hep•(榞ð;á—)x:ÉÒ7ƒ­­WÙ¹†\ã»æÜíÜUŽü�ü±ÕnïÔŸtƒ?(ùùG[¯tïÖ)þíN©N›Â9xr ©³J_ù¥e´%½›åÅ�¿�-æ*î{j: ؘŒ«€oõc¶;E„2Ú�$º \R´×€«iÃ�˜33_ ÅUbê@wBÉ%wÃ6~�‡—Û\¬ÒËržtž$q‡¼Ê‡ú韇üÖÖ˜‹²°”ÙFÓ¸”†AG¤„¼=Z•Ëïà=\ÌÊÅüuòÍ”™»'M¢š„¨ÞQäfýÚ·N‚¨…¨¥øpç[Fq¸€‚€Û Û ‰Í ]�@ˆq,¶ë¢rßàúú6šˆþ‹~ü~üTæZÏá�:aÛ*^£üU×�Á–Ь�Gz·N lw*.™b®ðy5%Ús¿L�Mžð)lÖñ‘‡¾ª ¿X¯âDlfÏ®¤ý¨¬©å¿¡ Z —qQxn³x;—bòôܺ0í†iô Úi:[_|@®A£²?'ò·Ãï$û¦]§]9h "�‡T© �æ²c(´õôòŽL,ï<.äù€ï%‡ÞHˆÜMÆé–ƒÖqqûX¼šuV¿¢ìcmô”BQ@ÈšÛÜÎö·ß)uupuÈ)1y­WîTîÔ ß ß¼r}Ö7Rñ› Ãi¸››>梕¢•žÔ§-O[ù\TP�ò¡‚:%:w޾ã*Á²PUÔbZüªÇng>às‡Ïfšˆ+ìËh$;¡}ß/óMÀ«“{Ù¿'›LI¤ïä¾#Éa=ËÌ>£þÖ,«]PwTŸL/bÊÀ#Åò¶e¦ðÙo{Ùwfø¬±Œ]Æçeß]ŸðqU›ei¦fÃ�ç„ ‰¯[É#râ]“Z»ýÈ_•ìe­lhhtŸù-Ç�¢FGÚøj˜ä¦~…C¶{>¤®Ì)ÚËþZ™Hl:71þ«2+uªvƒ|Ò>ófr9ÜÇÊ–•O�ºÄM~´QðY¾Sòu/ûïÉV«¯¦~}Ub7¥­vM8êå)E+õš^~1{¡ŸéŒ2”C<=݉C"{Ùÿ^vMÔÊ™Uµ þ$“vòÛozâ ‡]‘ôdïM\&•æɸ Tÿ(qÚËö²ÿÏŒ!ˆU’Ê-_!©·¼ºÓ£b"ÂÔç`Ç‹ë5Ò ±ÜïŠvíyÁñÂ÷;iö²-óKüD+ænÕ¶*$XB_6sÔÖ1Ê1*&Õ Ùc G–C–îˮK.­ ß7¹PIh×qî~¸yòyröâDbd!„ö”r< ïÔ;K*í½)üƒ·÷bä‹7ë”øz§¶%2yÃY0¤ßÅ ·ù0å^¹wè1¡(ú�'BsŽá±§ ¥²Ø »�À#NÕŸpj[ž>"æú/«< #‘¬{{Èá�ÊøvFâܱÁRqò¾š¬A®–¼tÖV»11Ñ0ц\¿t6 BZ&L…å· “‰¹q 0IJ܉(…ˆÖ1`ÒP@Ãý̵Ù(cB�Ã’c§uAiåøŽ\Y³¥:&;;[ʾPi¨ g;l;¬‚QÁèæ·4†D@r, uåH‡Á!“�I•³Ú³Ú—´†·†;œÞŸ�z¬%æ[I.Èi.8Ú¢Ç�à¿Ù T�„•89U,U„¿µ?ó›7JÕ1‡n8åÚfRZ\ѽvÙÓ¥9uÆŒ.öÝ)Ó`D’±|Û_f $p3PÐ ”ø3P©tÏ_û­Šéª™KV`š26ëºÄzוœ%"àüå¹³¤[7Ý�Z§8J(µÑ¥`7ûàJ3 OH‡~{ `�Uõ·º„ÃAjÑÄÓö ’¤1 )-)­ÙìZ&¾tEœýƒX?ºÜ€��_�oµ�D=¿æ">#>ã i"…ü©Þr2ûwЧ ÀËàÉÔŸ5Ä`þ„ŽÓùÏQCjÏ.Õ+MtËÓ;“'e~âñèòƒòÆ’Õk7§µ*ËÓoÌÿÎüòLòLïö¥ {R8J %¦P»Pûì·V£ä€!óŒ5+ëÈvYY^£È¯‘_û#Â;%0\n½ÿô×C9Eî‡7ëÔ‘õNU"ã{à>¼ÏrÇQKžKþrĤb’PÞÛn `fÇoÙ?„è?ú)À1pË�U¬N¥qŽŠWð“}Åè�wü�¯ÿbÿÅÕ5-;|Q8Ïbå8?É<Õ‚÷@PÕŸÚ÷^ü >Ù;e …‚��Eq>ÿB2úo}y€öA@xÛ{jbÔÜ€ÆÜð Az{D<8Žÿë+ûµWÉÙýûÓò6X¾sí|cmI¶1$M0Mídí¤RóT®è\A~AþÇâ�Å´¿V¸nñ@(} i<*„‹LˆL8¡Ð–Ñ–Q· E…¢b Ñ´ƒwêý¾S<&’aCëΉÇRY›u Îaµ6z wጋ&NÀMê€8ª©ùNB‘åîºõ‰üŸÓN$„FPOóæÕ @«ýŽMbí"1N£K€ªqp>¤ÒÈLBE_ÿM ÖÐi&à¦5µ(ÄÕWŒ»¼y�²À·À7Ärì_y‰³ky¶ U¬ø0àAðgÙb4&Ú�Ü6-Â�y´Džˆÿt<1ߦ،b#ŸóœÏA2ð7óiØ™ýa´±€§ŽyÁ®Á®²ìvb¿*àP¼(^O2O2šán=ÞŸ�ÐtBž—ràìícV¦W¦û–¤å¤å4=VÑðN1/´[±ŒH–xÐÅ–Ó…Úp¶Û)IðGÏw8K¿Ã8áºrVHé…¿Îíb L˜µüÈÏÌmH:BŒ® ×€¼2¥T`ô�+'·NÇ•˜å/ûY€‡½9ŒøÂ”Ôs/hâ‹éÀQQÄJ01—” k• ËEù¦ÆÃéKZ”Z”´ ë"ˆ—>ªÂ1™üËÎ`Aâ‰1©ÄÔ£€í6ºµãb‡ÃÙOe>m'¦Bìä;-ïÉ© §®ªù¡ûÓ×e.3QlhŽˆŽˆ>Pg7žã°‘°õxºj5^ˆ †ë²Ì\&u&µÕ˜Ë¢Ëb—ïbÚbšÓÚ-‚=/äý<1”Au$fAþMpÔ¦;9Rë�B°íOƒÓŒe�3ü¼Nl$¶/TÜ•�ˆ6Ú3 âÍ÷Pö"d©ÐœÏLѾf}`ÂQkð¡#&ÄM¿{q|¾Òßè•Ñ+;S|Bð ºá´~ÁÂÊä燶BYwÑÇûÑþP8ªpTò8D¬-�Q ±>2î‹%š dÌŽ6bºêq„>•í9JŠïJíã9bJ’œÍyÎ9\^Ära”ì¬È$°±½{&yUsUsÇ‹”Ú™à²öeíÓ×÷h½lôÓ¢fJHo�' N;@;@䎈±ˆq˜�h¦h¦U�F¶S1ÌP§Nš èX z=»ÚtOA^t³(øw‡ÿ¦�îÿÅ,¾ÁÊ®,1«CëUQ=Ï›^´¦ k[rµþvšÂ`ó”š_Éì娂]n[Ù.«¶ F^*ü!1ÐvË\zÏÁmÝŒê?…9ÏPÐ×2Pv¸6>}5ëö-ñ­ìïÉ´÷Î{�¡¸&8«Å ö›áÚ™•Ðõò’ҙ—‡T”““žº‘ M}ÓÞʶ²ÿd¶àîtŠ©ùnŸ×hœa9r¢î÷žD“³Ü L éI ¸ÚÖÞ8MÒã°{+ûÿÉtý ›ü“çö$¤Kñ†³Ô¤$¼�­²‰Y*2úV²Dƒ|pììœ}ò·ö­l+û»²§IÁ‚f×d©2‘B‘IÙ¯¼C—æ}èSò0³ss:Üâ=± œH‡5©a Ð�M;´rˆ‘R»sîï,†¹-&ø}<×JÌ€;½=KX9Û+Ÿ½,#ƒÜ¤Ï£+}Úš6Ö7RÕiÀhÀø¹Îú¨†)\YYˆˆ¿àTýå:MÈ©EB ª¶+pe»Ëv£v© © -x�G�G?.Ñ 8s7(±ïÔ#Y‘©â;S©„¯mÖ)ÙõNÅ*Σá⟳øãL4¯’zK× Èzò{f–P¼!“cz�Oç› ¸w˜Õ²5â€î�^»Ë¿‰©;‚”R›\ñ™G˜GT](øŒ�ÁÇñ3–´'@ÕxRYž*`eÚ¤EçNç^Ð ™„<Иð‚üàüÞŠUÜHd·õg‰9í R½“œ!‡œ«§énFçÜ$FG¸;ÃO±ƒ´¶Â¸pj¼Â"AÁÔ½±—#1{Y÷²vL$1½{ÇÍÀÍ�þ6ýmgcpÿ'ˆ%’оbky8£“F'«¾ $¿ïYû¢(?À;úüYI/›LjêRÃqw™ðMïJ;ºÞ)tÀ�ÏpoË;Ûqž ©íù^â8¹�Ÿå�vFà¶”YÂ9‹:BNu…$Àióø`àû8ŽÊ¶5bŠ ¾8‚û³vâ{Ùÿ²÷ÐS|ue8]XSY{‹oÙz�*æÚ«¬�ví Ë„\$…¨={5‰ËIÆr)Ú›ý™Ïψñ<ü6kˆ¹< ˜ŸqKî:1~4Ýåk;uuÝ�ú®S¥Ší•ÞØ¯8.¶ÎÕÎUåö…o-¸*µ*5ƒƒ�‹•/úr!o‚ œîƒ{9ørð�‡ÖªÖªE�¾ƒ¾Ãy‰Røn€¯Nr—þâo±ûšûJy6<3» 7ÿg^C ʳ(?%,˜Š/4ßbÖCg&îL5z»Ò…mKˆA·<ß$ûσT½¤'ž/»„ýõ|TÂÝÉ vF/'Åøè–q’[“msÒA#6ëºÜz×ò0¦p®¯™]pÜËù_HÒ|†… 56}óPŠ^žCN¶3„v)[¸\…�¥^2c•éô^bBâ8ζ׻ñ9?q~rGuŒu3Ž£ Ö�ç9@gê­'¤fÎlÉ�gÛâ&âæÂä¤má éúñ@‹í ð… p´`Ë$ÆU`¹“™ÕÎ é0OqùÑÕBOŒ S‚îëcW—h‡늭¢Æ_qöº´1Ò×7»²ïeßÓ ø¤ªI7�?�Ÿ¹œ¹Ü®É¯Éi éùBH�ùJ-\›u›µ�±«¥«eõ�%«%+‘y-9x§líú\,ÆNÛîöÑã—ºY§ä×;5:’ûîpk »qÐgÆV¡[A„4–Š€pŒJí;%g+B\·Nb/�«€nS?ŠþÝÄüú“/`z°à‰OÐWзÿðš¾oÛqp¯žß³ª#ÀïôÉ��O˜�׎5u–ò¡ùÐD Á­ÎinjÈŠ�tVk=0pˆªë¬%æû`.•ùöNôç55šzRB–BÙ*”­²ïd©|E!»È$ cÉRhµd‹h±o!ûZ![²„Y²„�=[}‘,Yã¸Ïó›3¿yf×¹~gé\—yý÷þû}]óÌ=ŸçsÏBóØu²5ç2Ë]Ùú³:-ŸŠQßNSSö~%²¡¸�(:»Íy>°¹”ÇÚj=j=7­i3xFáhiiiyÃ�ÊÐ!!Þø~!êÇà««H©«g«g)~jiõŸØƒ÷œ·lEVB?ÓQ¶ãc¹ªƒ}áV�’ÝèõÍ{ÉpO©¤&°”_¹–›�téM–ã›ýÍ WdüÚÜ„&ksj¦7w §Sðµàkâ`ú]=H8�0�049š\R,. ¡bÃ746ËŽ©~©JKIK™úæ¼Êy%¸ÈiŽé÷?ö£R¬f]¯ëjȳãÒÈ5ÚêÝøo‡ÿ«4Æ,Ov®èGÜØ=Ä´cíW«×{�ìÙ�7 í”æj|É …£4“Éçt¶³íì_Í®½•˜½ð¨—ËŸTÂ3°Ååü†—йh¤â=‡Š@M?æϸÇ­ÁÛÙvö¿•Ý:¤BâIiÐs�m½ÿÌ�‘ ¦qæ¤ÑÔ˜†›�Mþ–‚ì8×¼�ýYÙÔ^ÎߣêŒÜ?ù3Su# ý´\~ÞÎbá#ÙK:K£D/[Cz+¹i;û³2Cžè݇ NýK,QÔ?«ŸF¼N¬û[†kÕFöÉôç~!ù�l�œÛÙvö¯fÝóf·ôôdƒ–�OD‰)Ê7Ðr“ ¶2ÉM±{h@—òé\9Q²Úv¶�ýiÙ*}YŽeõ.Í®¢‡ÔèGŒl²´ZÑeHz¯cŸ¦ù‚…*µGPÇ9©þ¤Œåû¥ów³.ùôŽÜpÛÓªµ W ?{±3_ï­”ä�•7­l2”ícÙêìEŽ�0aÿ®ãÚ[½ó8VíCþ>kâ1W||±q�BëÔ.÷�åøšåi¤Š—|�3%ÒÆXvÊÆ>„ÜP8¿Xn‡_¶°¡øÒÔq¡—°21kI}é Æ7ykˆ?•o ïòן̑̑§!拈ÈTïʃÿð 0’î¼ê"Äú*ПKÉîŸ QÑ'ú^¥{½‚�Ï.*vß÷:|#¾rðà‘™y”hëõúæÂ©IÉó£ò£Ö‚À$ .G”#*ž1žÑœïÐg3c¹?¾Ë§³ÃQ$P$”¶¬µ¬U‰]4Z4òbŸž‚wjñØ-òG›³¶´”ÔKWÓ-÷™žÚèÔµf0\RË£�X_w[Ë]˜Q•¼Á…O®]ÏhDjxvªú?ÇWl Ý*ôÈÁn? ^Ô…uþ�‡ !¨‘ ¦@^óC؇2–2–Î{©™'–F †¹�p1«$RìN_nÏÊ£àÑîÑ~ád¢r¿TO²W�Ãcþ(`û}½ÆDHh 4¿‰‚„õž^¹b™CÈõÆõˆßËr’Î/H<6ÿŒZ.«®aÙƒ¦½GEEŒõÝ.�xzzÌ2Í2ѤR%ÈEH‘¾ÁâßüpS"  –ëùÎùÎL!ÝsxûL™Ù»ë©PÃ’òl ¹µ[uJ~£S<+Ô”pÃDñÃXÄê–Ý/[Ÿ‹ûLà«1º *Õä{ìôªÁwD7B è·4OüpÀ*`á~LÈ¢+µàÿ2ª—t¼t|ÛPÜ \wµ°”#0bS_±3%!;'c3ÄÎj´Ô¶ÔŽ@&h Ä5£U­ù3Á†@'ðl6s�âS¢ßJòT¤òÕ›¿Õ9ãR.3®2‡¾+Ò0NBo»4vÚ}.0vPns "äNNmñŸ’ÂðL5L5ðìãÙ7`nÌ5¹®‡ï{³³ ¸õ²*øœø9q’±ižižŠú¢Lx§zߪ‹b^™zðºy«N)ltJ"žN îí;C~,–¿Í l3OÍâ�hîRmŽ™2’Ô=Ä7GÒmDV§®ÁÊÉX¦Z>儼¾/Ó d3�’á2Í2ÍJ¨¹,Œë�)ÖýHŒUZõÙ>�Ÿ¢Gv¶^---G—£Âr?HF‚r$\˜ÔÃ=�ÎJU1û›qÉÍJ-ªíh!ï>Ô]ñ2±÷!$ÊÎ{ükÊÅí#äµ Ñ·4ØXd­~tnާØTérýåzSùžWÜ%pϼžyåšåšebr|_è΄sÁôëæðÉk¢¨'oùkÿül±“ûíBØoW;ÈõÒqq$r$.í׿Ååë…¥ý£êä‹) ¹Á~²d­ÈÑcóà®W…W…ˆ'½ÉœJ<Ó€r¼QwЬ¸UÐm×V]?³ÑuÚ2Y~¸§UÏbå]–ûžû¹lå;|N¤/FÕHäýBó%Š™S@ÐÕ¸¯ÀÔ¬ÔO¬Þì „\Ôj#ºIã  í§ÔÂõ¾«‚#_•] ˆáÆLmÏjµJ~ðܫijÄ3¸BéYäɧ…Œ+=~ˆÁjä:Ñ)úÑ–Îù…Z¯£!îç ¿‘Ó•¢ÉZO>.Õä¨Næ¾Ç/õIlÃí͉öµe´eœ°rh 2„› ž ®J¯JsõG*AòTñ]µªÿ7«2«¢f]iWi§ÙÐ-Ü-|Æd’Þ©'º¡>ÌÄŸ^pR~¿óÆr«N)ntêÐp•œ¦è­@, ¥Ë¶†ážã(|Ú=@î¡Ó;ߨü…�“­Aiël~Ù`¡Bo¢yÀôðm·¯ .o o‰¹`.ýY¬ß2;=Ó/3]c¢wþI/ßQ9UÞ«¼÷è$¤ý0„íij_òo5Ÿ1‚,�‘E`@aâ>!M«€â蘘b¡£Ò.àÆFˆ(B»j·ÝŽžœ% k GfGƒGùd‘6›C…ªg�‰W�¯×UH¸Ã¬‡Y%c$c>ÉóY-TAæãñ95XeÁñßá¿ÃšºZ¿ZŸa|Nøœ09ãØx§,†Y"Ne+NiVLM`ܪSJ�Êòœ‚cùˆÇêëj¼äÜ®j]ª‰Oó=‡€~º"׎ķ+àÖ]€NĤ¸§TvKNà×1B¨õ‡$æó>½¸Ðöhûåq]R\GV°"a”÷P&ï£!u²¡(™¹¶·RŸ¥>ÿ8á’†ìJ ˆ€Èó—zb°ˆl@dÕ¤!‚UÀÔŽ(o_HHºÊd~dîaB^#ó?$í³�`a°m3ZÎ^O]b2·Ûœ&BUÐÙÌÙLQK„“ÿ/¸ëy×ó^¥¾J•õ+•„<¨Àwm”ïÜ5ô5tgÇ<ý<½úÊQý£ú/&ˆÂ;UèkÀ­óÄ5ÁÉ'aŒÜ£ýàV�RÞèTÎ1ø¾Y^õ2K5¬´Ï9V,ílÎ×àÛÛU¯$§Œê¯I�á£Ss×zl|]oM’³ÄL=š›47»;Ñüh~¢lÃ$L§òþ1³4üAk_ßm›TÇ=µh÷Á­f–àÏyû�¢È‹½Y2n¼n;KW—¿ôs8 };ÛÎþ'2v¶³éªÍªYç §EvÕüîå “½Â®tÉ>[%Nïk)ƒcä“ ê}ÛÙŸŸY³d­žwÿa¶Æ¸&žÜ­P-5Nò8]ÂÀF‰�%±6°ÑC_P58@o;ÛÎþ+×PÓÔ´áo²—ñEÇiµDF(˜[[K”3DXŽŽO·ñõ¾Ò}@Ìýìv¶�ýÈ̤ˆ&ݧˆÒ;Í,ßk}‘ ô˜ktàÕ9’T&_0t‚ç“ã•÷ëäÛÙvö§eÝ&�<楩á¶U  ¨·fj)’qüêu�n ŽÙÆ~' GøÐ&+º×mgÛÙŸ–Ñ´ÌÔ;�d³«bÊŽÜqØÈ’Ål ÕñùL˽I}n ƒ¥á7—ußÿîŒýZ1¿€_ÞÇDâñôG‚ŒOÒ݃Ÿa3l3¢RiÊx#…ºQw«s ³$‹×?¿› 0oªÂºËÃÍ 6¹³_÷}ù  .¯Y[±=„ gÐ(+p„ÈËøJcŒÆŠŒ<ý‹��2(€’xî%.pÈw[ò…*.£«XØ1�ÝK,s.ãHKÞ•ÆÝQ1O­­î�‡¨E@\Ö’< ü«3¹Þ7aàjÆp/!.âÀˆ¢Ô^[ 3—ðœ¡wȨØÜWå¼¥RÑT%|¥žÕ6~ç…,Ißæò$DWxWx�(K³J¹áLþ2ù«8¥8¥ƒk>¶½燯"QF®üvùí´u·R·Ò¢Sæöæöò­y!ðN5\Èfœ°¦ן2­¼,¹U§TÀ]IÕS…p“i|ÃX¡ï'ºÓ(.µœÁò)"Pq’μ„ ø‚ÏÇ´¸ˆf�ôØy+XË… ±„„h ‰j¾ßqI°K°WïïÀuƒ ü¿ñßÕ¨Œ*A¾~B!ŠÈÇÉÇ×[!ZF�£¥TH–69†^ p™8€ ¤Þcš÷u’~z�"ä\Š/¾b^¡£Ë�}IÁñëb kÍõ¦·›«æ¤?û|áù‚¬JÚ»8².²®ÜéÜé’2]¦^½&¾%_ÊópÅ…Å…R»¬(¬(®}° ² rGä¬Â;ÅèÆ³ªeí¦á¦”}Ñv«N©ntêZPô{¸¯"ùæXï�%Ÿ 0~ãÛƒ¯Àax¶¯kˆíp#Áwú8óI ­c� °ÈfÑŠu=ÿߨ»ïpªÿ¿�ãÙ#ÉÞB’ e•‘yìQ4”M){t�(d�ÈÉÈÊJD ¡¨#«(BR”·÷÷sŸëüÎç?÷uÝÜ¿ëº;�ÿ^?ÿ8Ÿëýú|Þ'ñ9Ô7Œ,ÛîÅfÖlÖ¼²VC„-Wc–mõ§…3à…ÈŽ…¸z~Z¤,I¯K¬KäM‚ÐIC>»øAÔO¼Z@³¤]u$O%>n·�›IÏÃ' šñ*QQ£lø�ó¿)ÓùLžµ˜a¸Â�z"ÿAÂÍ3âÛ3åÊ4Í4õ�—ñ?¦W±V±V(S(³W륆ã—Ã5×d´·R±R!pÜéJý¼%ÿ8¨FÞ“í¬ÄZ]sé S°€ª”q§¦´·š2;–ÍÇ3»xÙþ+»m¾Eç;\S±a@óùéËܲ ù¸ ×[Oׄ2g1¦y ³ñ9ïõn€<£ì26ýqýñ' E™ØÌ„1ZоŊ$ˆovÆ�{«ñ»k GlB¥C¥QHȼ;„ô%¤3�Jm?П ˜bÁÇʸœîý,é7äzŸù�޳Gã£ý5¸ž©quwÿí»ù›Ej ’�®VØžâBîÈÆÈÆ¤�t\’B’B>c>#Bz—=úFWK\þœWàD×E×O�®.¯.¸×9Ý9ýŽ4\ ÞéA�ÛÔuµ¬ÔV›©;Þ»¬³ÕTqÊ\&œ­7F‹¿“ÌBq™)®µ–ëä€È9dërí•n\L¼Q[èÃÀ¥{¥­µ±öøÌDsMÍ£jØ"«"«¼’—¦{ £& �Ù„ è)m�ŸŒËζ¦7³ì·ì?è ñ †tS½Ëƒ8:zîGóQ�@œUÈ>|„ Ÿ€Š�HÈó3 ¶§Rø|›X'sMO>¸ùȾž�S…é¤èL´Ûö”í‹B“{’{Ü2ö*˨Â�v�vq$s$ó¹UªWøA^©áâm÷‘‡£· ·PÑNaMa½ÈÜAÕAåÁ&á ߟºJybýò²ÃÕ,b™ß³½�ÛÞˆÞŸŠßÌ0. µ<1ľkz¾`­ea®½E<‹«¼tÀu¯ü¨¾}AÜ„îÛ`Ï5†<Û·‡ï&‘ÿûý©£ÛíO íaf}TÕ:~¨�L}×N­ënµžr—ÎŒW$ã’NU —†4+m .ëÎõ Ãës&æŸ=..ñžL@"Øù50ll´C=öœ)>I'Pî@cv~56”JN77º›]!†“š¶[0°üQÝ Ò\nOW<]¬F°¥k2™ ÉP<)±ª¨°@{hÉŠ×j�øØ®›qmÇL /¦²ÃWúÇ}ña×^i·ö*ç›Íea©õàÔ Nj%Úžé¢ò4O$Oä ö_úZÎpÃÃGtŽèÔ-¬¼^‚ Tp95\‚S¨W¨ß—+þDüÉ7Ú F ¤]áMQüêø¾ÆðŽŠÆümP¬ýÒNMém5e/´>7­Û�Èq”}Ê8Yµ�Ë‚ÜgX¬.ÑvÊ4¢Çu麗7@Çð#×û‚Q]Bn…�e×õ À·ì6?6ö0ö°É§±·±Ù`(µ YTëYwÍ_B›´1^ÒÝ-Y.Y>S™„8½— ‚„é&¢i�™²x|ý€Iå³c!ÍÙšMÔ‚c)ø8…ùêÝ\L¬$dz�þÍÚôjÒçÁö"x©Ý³*²*d–o Ý|‚#åfʳÊg•>©cˆ!OÏàÒÖj¨ƒ··ïhuÔvÔNÊ”K’Kêm.–„7• Ðë |žêÆ„£ÛxDÝNM!¶šï¦\ƒ#n2¡Åˆq>1uI%5[|—Å•pGï{…í|5®ˆcs`R•ñ,`Øxš#ú‹M>·žk–aœûù°= z@¥Éò$¯$Æ@ ýîh]À†[ä¤Eø+I|°ÚAÄAÄIB"¢nh ¹¬J)�vcÐ:œ²èöÀÇNcœº*V¹ë"Û6X8®‰OÄYŽ®´%”;r�™â™©á,·¬¸=²::½¾°¾0úµ~/z[8MÍš1k×nñ.Ý\rû„ወE:[A[ÁÅÊþ” „–òÁ›z‘ÝûS×ûýé�°ˆ»&lvjJ«)–v ¸sþÚ-»fº2N7ÎZíÁ•rÜ� Z+=O>}—èÍନ )€´Þ8�áúFt>*¼æÀn©;<ØdIeI׿°E�a°¬¢!êâZrÛúdHou…Gˆš| W ×½aÈü „º„Îü‘ÜmýàL ,�ª*â“õ(Ü@Üðz!ɱ0µLáªÅ‡z�U¼�ŠÆ&`ó}™(Q·”Ó²€°ÂÓíé>å2W0W°ˆ³æQ>§@ª@ZªTª”?±÷ÌψŽ$.‘[npL½L½ý÷„…Óú¦*¦*¢d ÐM]¤„šâ LV ióÊkºŽ"DÅï3Þi þ?ïðJãÉß/h&¤Tô‹r��/ýß̦�Ï™´åõ]3"{ÌhV'ÞP­ØuïGFÐÏõzñh8´ô¶áYzûwöwf„Z(2»/žQ\zdÑ"3¾=&²J–Üo—.ió®/�n¬Xó »gôßÙÿ¿™2}¨o¼‘&çQ_ÞF:ZžîŒƒÍÊ1—+ßVŸåløN²I×X€2Z2ø;û¿›½\EiÔç3žŠü�˜ëh§î™"àµ2½çZÂ¿Úø³Ëzo»¹¨,�‹'ýßÙÖì¡Ë¡ÕRÿO\Æ�”/kÜjž½ûÃ*OúÖU‰Dö€ÚéŠýQ£Ô�†¯B¨þÎþ³fÏ[éš‚J „Xw¹»Ê~ –]¶¨JmíºB�З‹ªâ;Ýÿ,r‘Tç:óË3眭<Ͳÿ«z—¯=SŠÎgœgáËšûZ‘^d› Äü¶vzn1ØznáR¶�#PrÄHêîKNü²<í±†«è1`^ÔYç¹[—ç^¦2Àkm5 ð´E`(»XüÆ'õûýO•©&¶ž¸ž8ßЯØ(T1ÄrÑhß´Eíæµ�óϦ+–óûX¼Y¼®C¨†!⇠@F¹×kÐø�X! yW>äý@Ÿ‘'C4$‰ƒ¢Yóõú-|<(&õÔ"ö}S+©p�h­�IØž!Knø‹q£þõ¤Gp|Î|Î)9)9÷'sLŠ!´¸ÞØ%TÀEGFG.&û–û–³^“÷—÷×`Kï€7傸ý‡;‹޳Óùc}£ÞNMn5U4G÷™d‘ƒs’¢m´ûUh.Gè½WÃ…Á(ÿ \c+²M@ %¹!@òAÍãÙy>$]ï­“T¬Ø4t5týž%Ä6Qˆá°€68eª É_å1µñ¹èþè5 Ál7ˆ�f–fVÞ0®Û¿Þ¿PƒvW¡é@{q½r;b¿æ’h_™L“LÓ¤ ÄŠbPÝ\Q»;Ô�vÈ�çÖJ=¦ñ±ý4¬ˆbõ„¸w/ÜbéËþŽÏ|xœøY[8gMDõ£UæÆ=¯·ÚžßG‰<'#'#”Ç�CÓp1�1�µ_j¿´"ÿ0nB>âÛGÇLÃLs2ÿXαÎÇníní9TßÎÛ’Ýôq•ÏÓYm;Þœª¤¿SSÆ[M!EFîÃ5ˆ¥¯c¨åw-Œ·W1ÁeªÝóõ5ìüëQkä)\Em_üÇ ·­õÞüË%§ó#™öã“sõd.à’V¬�-Ù,ÙŒÄRI[ù8GZåonà´×…3�"©^ï™^!“û&÷/²@ŒÛ7à+@Õ9´HÀ“Ðvfþ��Å/ÀÝ–±Ã\ òy¾°]Ɉ3 #rî©pùP—Ñ+Ïü ÷j!þ›"Û;_h;��%)ês)Æ.e6eVíŒÚߺí¼�‚¸�æ\§àº»Or¦Ù¥Ù]iˆµŽµæÖ¥–†7eöT%XT ÉÉ7Æì˜i¿SS&`/©Aw·²#NT}ýÅ$s_ìI\« %Ä@½¿UƒQ£.aíþoÀ´¹ú?½ß«bü.~ɆO‚¨x,­X�ÍÎÆÎ¦7�¯ Ûã` ‚2´ëo»‡²¦´£�ÅÎ�‰gìÏŽŽ/ËB¼OC *» ¹äíUhFÀµËÀž›*LøŒènv{SX®BÌ-™]¢²ðZz8oý‚È}J9î.£²ç†s¯]kèöÊ3ÂbÅTÅT�µƒŠq— I„I„  ¯(ü …(Ûã2›(‡›DL"‚œ4C5CǯV¡ªP§ì2¿ÂÏûœŠÏ÷v�]à—�Q¸Þ”[µÓy?±€ »ä8ß× ª‰…ýÄŠOÓOæ{,e­¾È1¹·$Y×IÐÀfV"Æ+óqA*±yÿ´„0á¿=ï?²Íy?±ë�:z;3·ïÇbnX}8½Së¦[­ËÌüÇ­%Žq­QÇ÷cˆ¢Œ&WÚ'2`x‘~Ï¢4 ®ß6¥]@�«¥�Æ9á‹Á©ø^3™ÞT@U?Œ›mˆmˆG+¶ÖÍ,h ÝÃ6À“®HüòÆ¢Âéé‡üùÅÂ!³g!¬ƒQ�½•�ÇÐþYè´Rùç'¬< ‹�–P§è·X/ F¥R6‡'ýÄç©XÒL½âë¥ØšÑäI ¯SÈ6·WŸÒóEBVB6ôÉÁOuRp§lNÙ4l4l°ØÝ+‹×€@›iØLG÷„Àù¡üPæåsÖsÖ"ô#K†ð¦ú ¨¹ý›çd_²óÚqWØl«) ©o¼pÅ¥L.¿BÄH¨†|ÌûpmîcތϤô4LÐ~Æ5t©Èg|L¤̰zwè >±O¥Uo½]Ø@ôäG–«°å0bµ£�ÅÍÙvZ¬�;“ŽŠ]`{OLŒò‚HAîß¼‘›ë‹F® %€¡¦U|ÞîˆgvϰBü5ÈÕÂlĤð¡$º#dâC”ô4˜Á æ(ƃÐ72%Øž�Ë“»"wEÎp•~U…»…¼…,|[øöî”éÌA¾Û¸äœ=,á,ø,ø uÓÈÒÈú'L«M«M®ÇÛR¯$Šç¶OB%U‡ñ}Ú©)ó­¦ ¸}Záò׆Ì0©×ˆ–cÝ�r=p‰Ü=‘T.”|ÖðW¾€KýÃp ðCÅõ;à}žËC™ºü>zÐÞ÷Æ! l·-o[žË0eÁf“‹!Žv\Ÿ��äW‚||û2®0)ê>è>8Æ 1‰�Lèä@,/v"Ñ6t7ZàœG«>i¶@ú�cuûd!ÕT†–•‚øü|9úKúúLÙ¤\Ì’�ûÌÇw(—«EëÛó [©ol TÑàd{wIð’ !!]E’C´ÖYHâc\µ\LpyyÆüóŒóŒ+Hð}YÅÄN7xSy#�ßFŠÄ#52­tzX¨×wjÊb«©9…uõÿbïΣ¡|ÿ>€#²Gv’-ßìYÊš}-[ÙKö²¢,…P–ÄdMŒ­�%Ù¢ìM¨”¥E– )Û”Êþs=÷wžùÎ=ãøã9çy~Ïï¸_ÿ½Ïü1çxßsæ×õ¹àzïuµà0®¤Qïqö+jt&ôfÊàp}‡‡¦5Mó4!ÓÅ7�ªF�;À¬À.¦³1¶Äüš?ó8Õ™L�Oè©ÐSæSEø:Hp ¿0`Å<µÃhB¸HýÈt”ï üø‘j ¢Ð óÄNÛuÖJë€5pŸ ¨¾ñá-1¢@FgF}r3äQa�Ê£3b0ŠJ._nï˜þ,é«!{·;Ýb×õVŠ�g¡@3&1&í1òpQô‡1Ñ7Ñ×å•î‚VÉËy1;J§ó—‡ûøúãkÆÖ<Ö¼–A°^ÿ׳Bx§ÆxD…¸MGïgJÐù(µY§lÖ;u÷¾\{vÅͶ;Êaè/eô愤ªÆ-�”Ñï¼bèS„¼ÂûÉnõ@àH$ÍNœ‚‰Šb:–5ç€Ê}±-øL¦—1òßðõ_ÇÉ‹Á*}c}›�˜IT'ÕÿI1ÒPÖPOõ@±d…ƒ ±r*ýïË’(~ K ‰ñÌFäk‚�!÷üƒ?X°Ÿ!†>4Âýû‘£ùtóR™�h9jŸŒƒ”߯”ø™É«X«X‹b“U8_Á¤¤ÅFÆFRó“{£ª!ËÆ„4ÌÎÈÁMŽMŽ¥�ú“ò'åÇÍqä82“^~VÉWŸ·l‚vz‚2ßý¡ù �Ò/¶²­ìß-øD�3N"”ÕèkPŽ2 ¶ ½È½5ôà˜èR¡—Ôhú“ZgÐw#ã­l+Û(sõ¿þUa\ngøL«ÕPÑFÂ5ë–;ª“L¢½Õ¶ÞïxIã:“­ìÿgV9÷™d¹'OŸûñ•mwÞ®ˆÔºÏ fÍÒäÿ>5×zîщãFÅ�ÚÎ!ÊŒ[ÙVö?Íní=¨Wð¢h¡â®ç²™aV(z�3D3{ußÏŸ {Îi™æ´èå�wÖõleÿ^™ôùQKR=æ©ûÖéeO4þrF‡»D«F ûךøgÛ^ Ñèî›W¾¹•ýßeûSŸÜVSƒ$fZêÔ*õÐ;¶Y·Îo/¢\ñ%>d3¡-Hå¥ç¥ŸB¥y=< §$«$+<+<;ˆ¼¤›ú7ZBwâƒ?Ã�èŒèäK�st¯¡ŒPFƒ•¶ñðNU«Í/!TÞdI0Žzë˳Y§l×;5Ö¾Â7\‰)ÃéRØç>»ÖûŸ›�¾UàR†R9uÖ3„Ð}ŠgžÀuÃsÀ5©�8æÇº$ˆ)«IîÞÄWJZJšôp¾Ö>œ#KX{mÏš*Ì‡Š <4ÖQÜÜN‹üîüîyN:O —$#|«hhJÈúPÄ vçd§5ÑW _Ä”^­@*óø2CÝ™̼äÝNåÝË*ŸM{gv0mlšÝbMŒRŒR‡vfFE.Z1Z±¡¿¡ß“åì‚‚:¤¬œP2ò&5ÜgËÏ–¯‡¾újDÁÖÂÖ2/_Á ïÔéÊÎÊæG6 Zo~¹ØåïÙ¬Svë�òöyJwç‡ýUœ_‰çïЙQÇm#”~»LxqÕKe�L…œ�p*‰0á)R \dö4Ä)ýBFLcâªPYÁ5…¯~¨~(jÍK ßüNœ$Ööï¼ò€.ݵ[Åc âfMÃ‰æ…æ…÷ %!÷ !&"Z±f€^%à¨^6@ À.àtZ�’’ùEõ¸öb´“sç{ö÷¼ZSäÿ µ 4R%c;൱Rót›t›è5Òc»[àªØ«Øµã´ã8ižì{Ï©K( 1ô Y‹¬mÐî í 5* l§lÿ‹ëÞ0¼Svm]rhö6[Gû�‡¯ëëÿÚ¬Söë�ª.JŸ†+1$ãÅáôír?šÙû]v/¡jg'+€ó´éW­ãš„¢#ÄÆ îòÀZÛ„(“·°1‘{¤¯ÔÑløæ*æ* Ë/õâsãÇéžÀ:{:,ð›ï9Th•-ù°2ŽÏ-›…˜@„*¼OA<'UžbÕw–@ÆŠ%bžLÕysЉ­�Ã<Ñ•;QRD¯°¸jL£öZºG…Î00Íûí¢ÛØÏ�¿ž‰(ˆ(P5.wòÃ…­„­€µŽÙ†í.´×!`V#Éûô8;eÖIÖÉŸrVdVdG†„Œ°�úþ÷š×ÄD jZu±Ÿl¡rd.kÒuÊÈÑÝ ¼žñï.‚Ñ NuÚ¨bê$ÅBöÛ4‡ÙÍYRÅx-’¦FæHeé~Šv8²º0kß$ý‚¤{yÛÓã�¬;üܳùÕ–Ç}Jî¥G†ÑGÎ?&#ËIV¯ýôÚXM�©ÍCžyÏ7“RÁ-­DQÿŸ9|C‘Œ£4¥ÈC$M¬½ˆÓ%®NøýãI³’òûÛô¶Éè‡jï£Îm¸¾{ÿ8¬ß?ôÍ踦‡'/àwwT*i†U\I#tÒ½¼8Ú*³öû�C>¡ó¾Lh í^Ôp+0`g‘ƒ+ž˜Œ¥;©€Ððb>á@á@ùNÓOøJkq¤°¬ƒ 8•ïuø ‘�"¨äCæ²æ²Œe ;Y!ŸÍwPAøù>$c ÕŸ2€¹ö~b&¿6'¯rsBHÆÎ#÷º3î~5÷(Gh¶jŽ# s°W:¿äö»¨�µ Üï'sû£ümÄ÷Ãåùäùï4ÞCvׯ½B[Mˆ>}Û4æ曀U&29wxaÿÂ~¹Q�px§XCÞöµTS 0}7‘3Zk¦›uÊq½SÓaIpÒ+Êš8ùoÑ Sªˆíßí’œjôÑ‘Ý'÷ZÎ÷¬XŽ×Ò Ô'qÈP™Ä,v‹œÉ] ñ ÑÑÊt1àk ¹l†å–>O ¼k Í„° —tu{SèÌIÎI^Ž€èþ�<&Q4ƒÜVÒHÇ*™ÞÇ®äJFÄT¬³êU—_Ë@¼’ÝK÷ÑÅs‘É8$å„ „£Ù_…í¶ýõŧ°»ˆAps¼��—�ŸÌßGÞ7>^9^¹ÅºÅ:ã¹Æ)5ˆúB=Sîªp’ü’üÈJ)e)åÙq‘\‘Ü®Öx§l�|Æ+™òϲ9 ö¹¼}®°Y§œÖ;%„Î(‚[ex€ƒ™9ÒËP™¿BhUöI.ðk9Ç>êã‰BcÜOk�—cîÀ�Úx-œJ�KÄT²ï8‘Ôrøb­b­º–åKðù5ã¬b°¢ ÿëàgu±ä}+�>K/Qý.—/ÌÃÌÃL��±\ÈÒ,HÛx–”`:ð¹Zð£„4å*§�!Ãr’_¾|û’A ƒZÍèrÆrê�¸âUƒ]<ÅN«�­Â%ókãºÊuue×~kú8××NN1êËå7 ‘æ„ �v×½ë{×÷«aÏé=§+ž3Ë2Ë*�9ôÞ©+’LŽl$NWvt«þˆØô|TçõNe±¹µÁ}¥"{‚Ã:o13ë9ðÕA�ÐQ:W€?}|Vü¬¯;¡ÙÐ÷¸ÝndY€kùa5oÌ=b4Í—�€ò4Þ§ø¸*¹*Eǃ.áSÓÄáþ�Õüõk)�™8+ ~´w±Y™þ W3W3µd÷„²QÌâ]m‡õ< pcÚˆ&£ôV,¥ l‡LˆKhëé%säÕó©yѪtÃʱ}áõT“Ü×6v{­HÆêµÕë ÷qßeJ8ëkÖ×H‹I‹k÷I¸bçJïò"tžªê;œ÷˜÷Ø—IŒILQ÷Íõë…nѼSÊA+»k2þøÒ1ö玓ŸÙ¬S'Ö;êª Ws~§-BCs-ÿS´ÿSBÂö'ꀣï;Ù‘•„'ÛOáp@mq.'2w~71MƒaÀ˜Êù`|q¡q¡N)r½ø&xqn©b•ؤ‹ïÐ ADË®|µP�¾:ý:ýGHÈû4J‘}B‘Ÿ·ŒÅŒêʹLb ÍŠ ôÜ�©„Å5^b——^:LÈX��ØÐž˜8¸p§Â8zcÏ>Æ{ï8°ãÀïá7;{œáRRzÆzÆÊ&Þíh”…(Ø¢½*Î;Ù;yP)L*L*˜#$#$#l»{4|^Öw9µ¬狌œÇù~Û—o¸ÿ»þÌÑõ¸½‘ó"'w�âÉ�ˆÇAÆ9Ö$qϤ»H[]uÒ/,üsæ®4nž4´Onƒ=x<¹�ò½‹¬Y¥WþÜ{ÆíV¿Y×O®w=À ²N]'Ög2�ä�ô#ÇR/B‰³〜á]ó"ñ•w„*gnµÔÆÀ#Ï'&82¡ñ-ĈjttåY©RøJî–Üõzw�Ÿõ4Nà],4Y¹ ßeÚ «R¶ ãŸ.þüd0Ä/ Â]c0¡{¢3Še„Ú´€Î¤Œ½Ä$—ļÓ ¢š×ùÅûöóÔ�vå}ÄêØþkûN.»”Cd¶çyóÆn}fähÎiÎ9yÖï� œª�ª_2_2ÚÎBŠ;r•‹P'“¶'†ÃGs²ôLé#ý?¦LÑ¡Û=à�š4’ýùZUD~ñÕ¦kBF›uÊe½Sa©Q|p6ŽÿÜÀ¢s¹_vØXÇqE�×ÈT. 7`T\ù‡#‚Ð>Ó¡`ûn5p\‰£%mE ŽâÝçļd#G~ )ŠøŽ Ž 8T&<ñ™œÀé`йPf éö¾‚|3²ÂPv6‹‘s‘s„B1A‚L?…¼<Ü«Šu-È‘¦¥°#% h* R%OA˜,1=œyÛ]ˆQÖ¾¤¹”^s…lz8Q4¸[aYVÈÒÆcc§¯&%&Š%ŠÍÐ~°q.Ý+Ý‹ë7×ï~ù¬ÌgÊ�ƒ\„ú.[-À¡kѵÜZàóóh_#_ãáìŽx§8ÄIÓ®ÔõhO†‘Y§\×;Õ–ÊÈgÏ›§…ê’]8¹·÷D ¡�þ]@X_cEœkÉ-B¤Q àƒMž™ÈÐ�“@öÏi8ªãMÙËÛÒp| .¾¹�ІïÏKœ0–~ Úøš,J9ú†–]u:l1ˆHí€`GñÐ ¾‚h{ ‚÷aɬœKˆ)ïP ˆUmHŒ-ûý¿ØïÓÇÛ‘“@C•OVþ駇õkŸg .!EëB4µù»û»ë 2Ô7gÀÙbl1ÒÁÒÁG;u_�‚„. QÞŸ÷­ñ[#/õŒËŒKÑþƒwÿÅÞ�‡S¹õ}7eŠ(’ I$©D¦P!lCƒÌR¦c(Ê”MÑ`æd8ØH”b—1Ce,Cæ$3i·•c(SÉ”·õ¬k_ûì{o¯?Þçy®÷œËýùïû÷÷�{­{ýõê‹#ÛwŽ9_Le4À=&brÒðç@Êj�²ÿÕ)�Ž/6H‡Ïú;uz-H�Å\Õ~¤C®ŸUì.0V.Œ¥â¦I"‚Òh´.ºÿëÑ;×|—H¯Ó´Š  @¢ñ¾©¢wEïNhÔ%’¢2 ’!ðȘPZ½kƒp]õáÛÞfTy…z…v$C/˜!,›ŒôŠù‹�A 0?ŽWéQr&0Nùä%5®¯¼T[$HI³ˆNýÂ¥ÇÚh“÷–Fª-¢"FÙoVf}DBÝÙ×ÙWæªPMN­9­yUÕ³“Ì?—NẢäBoÄ2!E$F$úÜ1æ5æ}=ëßìßüJÔ-Ù©ÜO"yjÇR-§g7Ý[­S¿:õcªŽ)Ûw—3ÑÈãI½æ˜«�'8‡Úu$«×oß_GÎ`Ô¶˜[N¯ìK`ˆäJNèRÒÉ4ædYД‘ ðz`ûŒ”E+Ñ94�¯Gç+@×d$zèfy#?wy¿AœAÜœ1ÔÔ 1Ðu;B^RB†Ïm£›@=#?%�-ZÕ#š JŹîÒý¼+œ’©x½ AQIF%|Ëd*xAÕ_˜ízee(Óâ?Âî„ÝäsQzúi:d:Äý•û+®5¾AlƒäŒôÙ«‘šùšùª{”z”J2ăѝö:Ì;µˆSÃp\¥-ðôK’¦ÃŒ_^m¹v8•XfÌé'›ùvbOÔþ*Ý!+E!Ör䙓ܿj{÷ØúþAeñ¿ëd·;ûÖØˆ<ØÊ)Âúõ'ç3®K¶¹kÙß3ûÔZf£yOá:¿—Uà%q�0eeñè»Ý;"ó³6v6U2æ;}4bެš\ËþÙÙ8ë[›ò‰| =3•~q|Ö¶xØÅ…zŽåõ^K3ð(g6«Ù`[©µl-ÙÌ¥ÖIö…·"Kùª_(õ{Ìk½õ][‘lu3Ý÷Q¼¯Xþ�ëZ¶–ý'²­qžKÜÕú4š7ŒËq./xßýØ£ÌK»™ß][[`V¸7 ÍÎé´–ý³3{Æ3‡·¸fÔì¨ÄEÛ˜àZ!”˜Y“ÎXŒO¡„|’ÒÌ›4±˜½kÙZöwÍN= î`n‰‘µ;,¬À,ýª1´z8n8¸lÐCì£Ýh•XÑqÉ*[Î/kÙZöŸÈÆÐÂ~jgøêL_NåeYLáŸjqìúwßgµ–ýs2Q{­(WåŒ8}7:Ã^†äôùÜÈwȽ]M«¡ãà�*gÜ…ŸÊ_mo×‘ŽŠÊ£÷ iéò_o¡üóÖíÔL±©t]äNØÒû*¨Ž–͸Ü>rñŸK€ô¥7Â@ÅÒÂ8‘ˆo�<%÷¾!ÚCŠd3Z¸ÐÃsOùõ]ÊOÞpu³¹¹Z§Îƒ­¨Ç;‘zⴉС•ú c3\ÉYä¿Ìñ«ä ' ÙðR'í_cX‰tdýE)ê÷;4Ê(Œ‘bfn–È­&5|�h7žÀ5”QpÛï{Š´IëÊ üéRÂZŠƒæ² È‚OnPè,ñ„Ým1À (êb· D¼õ_°ŽûT bÅJm»B%÷'T.$8íœR©È¹­Înéçd϶-ueÃwöluuÔl³£/ Cê¤é¤))/)÷è>ÎuR5!×tþÌN$FFNÎKç/�ùâºÀu�ðô�ºÈNeÏ|+S:Öö܆Gj¿ÒlÞj�ºð«Sq¹¦ÚHW/{Q½ù�«WbÑd¤�Üùbøý7j³ÇÉ”3QÝäÖ©™ão1ì-ÀXÆâQ·šè.J3sÖò“R!¤â’ã’í©wø“jb$¦#È÷ζä¿ׂÐ/#Ž Ö +¸*¸Ž—Cµ� вӔ�ñ3¡är�zð26|)‰$‰¤ u�xR 8¢#æ?•é€ì‡ kñ¡§Gsé5¤Û¤Û2E!óhö¦ 3´%ñž'AÃ, À¨tŠdPr�¸#¤³É1T;ÂiäFɦ0We—ªû©ÎÕç~¯í¡.Åœ”1]Ù÷Ý-ÆM¥M¥£ÊR½F‘‚G‚GFFÌbe5ƒè<É=7Ñ`G’ö–öÎcâ/à/ÈZoéoéÿÈãLòL¤Õ©ÊezÓÛ*êråÌ¥¥Í«�‰DÎQ i_dé™°ü�slP½ÏÅŽþ�ÀÏ” nKnùÞóÊ1-ÿû™Èƒ+œ‰¬-gGçÊem¬w -Ù «´Z×�uýÝ´U6Ro_~žÎk‹[o!JnGo¬  |J!ýéÉŒErJÛõ¸ó‘·é€{Kz=Q¢ã{Š�x¾ä$PÌkKª<½<ýHðÅdR†ÅDÛÐY=_?ßýÎuCguƺ=¹ÅegdgjqPP$FMó¬ïÀ˜°ë�ék ”œÚæ³ 0‘PhW©*új–%A|¥Óœe<�Œ»±åÂ2ž[ׯÔKue]>®,X{¬}û“Ñ&—e¤B©B©¤gIφk†-&x!Î}䤼¥¯!‰ò‰òå7.6.nXÏcÍc½9€ì‹Ôô ³Äù¹Ñ ¦í�ª¹iVëÔÅ_�‹)»„Ôôùi2Ñ&ïB&®B¼Å€/¹­VºMÀ—ª¶Ë{C¦Éi‰K Ñ¥¸>#®+DTü<å>%/u[Ï}L7Iyy p|Í!uå6ÑcSƒ³(?àu8‡DSú‰#|�#ñ ûvõ^hG$hGe ëwâ èZ�o“À �kC”0#­Ÿ$ù·CÕ%Ooñ¨áy(ÙRm–!#É)¾çr§ëê•‚]W=EVöþO´š‹K3úx0oÒ·;à pvÏvTÊAÃgÈU9Är#yYyYõÞt0w07X®ÜT¹‰I޵Ù©$wö‰;ZŠÝû¼´ ¾9äÙ®Ö©K¿:õd¹�´Žc¢™g½éhi­çî<r» «”­EæÙ §§Ï‘Šª¨¸£áeAwæ"ÿâ°aŠ%Ñò@Ë=>Ri™i™AŽ)�H•"¢$<O ñ�ß…bž($æ)FÄÜl¸Ùp� r�Œp…2�YݺTÏ›@ômà*ãÁyJx§€ÀÁ¶va]¨)êË�¨8ÔJ Û…7&—¼õ«RôKÐMç͕׷Ó+á7}®»ä²äÂ6€ÚŸæ„¤Y«YkÐjкý0JÆðROîêçKHMËMË&,5²5²c•è\tníiv?d§,cÖ¥þàæyÉûÖLë‹òÎUÿâò«S 9ÒH5©cõDq÷­ç”êâøÆìÉå¢q»�:ß²2*ø+äœ:¤Ý€=+]À?·�è�Bi1%O÷jªÁ®*¤¦m¦mÆOZ/“²‰ âúI°+�å>À¶ôJ¢OÊ;)ýdúóŒæŒf£/Ô]¥´, Aœ©ÌØ;—?ÀC?0FI+=àÉÿ>}W/Ôš†ùôIÍ0�’Å©×7#Ü”¨z‹t¯¼yÞoê�»²/£Õ4X7¬[’}ôÄm¤¯j_Õ¤—¤—88Ž3 �FòÉÉmÄ!�×È ”¾—¾—èvkwkw{&­Ad§Üz¢‹ ÏÚ ÕöŠþ&6¿Z§\uªø¼ß=¤ºöãvD&†…ü7PŸŸ×yDi{Ê¢�àrTÃIMKr×�˜o4§x*€VQ†H"%oƒS”ôxëI‘î ¤R³R³°Œ…IUòi.H:nz¥Nû@÷ôp×vß5<¸÷à^Æ<èTTæW}Úð¤˜^‘Ùéä¼J‰Ü:ऑHäsaÈì!jZ Þ¹’3aï¯æ·¥H¼c8,wKß}œqíÏpL�~4¹ñís³Hº�º�x.<—ƒº ÝØí—CèT3ìÔVe£‡jÖu“£…AæN§W;‰\;ü_îE^Ëþÿg¶·¿_¹bŸûÇ$[5vtäè¥vcíáš"Í•¡!]CŒ¥Î_ÿ,ŒXËÖ²ÿVæ›gAþo@„KPæ˜"Ëd˺”˹­;y†2Ï´£äýè›×²µì¿•…ò›çȾ:ïåß1êÄu÷À¦·§Ù~ÿAiúw ^ó ÷-~_ß±w`CÌZ¶–ý]3ïDlïn}]'F¦[EѦÙüÜ"VŒ%|™®íZõ…s“øðwÿî,C8eßÒÞ; ìddzóöœ/ëV•$›A+R¼ÈW×Y¢ÜÍ/¿ÚÚÈí×Úh¦‡aRÖ×ã¦Dó§m*g©ws‘K‰J1˜�X¸ ûRVd?˜Pa“�Wr÷©/+—QR0 ÷�™+ž%Õ!Ù!©sí{6©ŸDKï 2¿aÁ¸¦âŒ°*¤Ù~ms/c¿l¿œ-É@´Ãëº ›‘F6"Àæ1à³ú£'”˜Ä~§°u aP*¡ObA“’C,{pi_[Ÿ³q®*ó6kÔÝ˼÷LW¦ýÜŠ«•«¯üGÞ+$ùù† /˜wFålK‡ì‘ÓÛoç‚´µ•ðÃg§ÏÎ)““Æ�KÈN)¥~ž, ápöŒ’¸üãçµZ§Üuêè|]=R¶YԢݿ1å†ÓÅܘxF® çh*�aÁXZ‘N£O_ºÏ éM.÷Pëu'Äm¥ä¢O0ð¡Û=ˆT²W²—¸ò®¼6K"u‚Þ‚cÚ@ñÒ0 Ä–Iý»£Ì—Ý—�e–@Þ…f�¡Ù–6Uµ4 ž ó®ýA Xïúî+¹Äp�ç;tÎßö¬•Ö%W›Lªwxö›u Íïˆâ?2ÃæsèÒʺҥp± ± ç’Š‚\‘ð’xÉáÁáA^¹pSèâr»²Þ"•o-ßjò¯€W ´¿e‹‘·’Ù©…â¼ÙÇ´�ðø¼Éœã[­S¿:uå´Ê$j#†ÓDO¹*¦ è_}Ô!g‘Q¤6»ñ`Dl%Éaó Ô€gz!‘ÀóGÃ]D¿£¿ÒRrçi ¨¶u� w w«Å´{’úë¹,­ÑL4�¡ŸõËûÇöÓ.^ž§Ÿ§—8aÜ¡MèÍ[¡Û*›£Ø™€‹Õ@ùÏ€&Jø�Ìœßd l죄ž\%|zâZrëxévS;,•;ï™mr¡Yþú†CÅ�Å�§»<Ç6Aâ©ç©Ï»�waʵÈf+ÄêMn›ÄËoHi×þ‡½ûާòï8.%É&+¤(¥dedÏ�ŒÈÌ($:åXÙêXI !e�Ȉ$JÊJ¥dϒ쑽%º}¾×}¾ç{®s¹ýóûã~üî®çãá�÷߯Çyøœó¹>Ÿ4ÌtG�F�FC.80¶ÖÙZÞ¹m½´ã±NÊylÜNDö›žyî²ÞT±Ò¥»pÔí¹ÛpÆŽ;"8ØÉ%AÈ̯5ðuýõ‰á¬à!µås9@gº£p÷àEvœÂ¹ÎHr–¯´)«ùøœŠ�ŠÛH3�ãÉÄQ#ÂZÈb= �¹óCö%·í0J,%K'Kï©…øh@,G)!Sžß#°¤è�†ÛÀ¡ï…4HœÿzdÙ)Í¢ Ñ Ï�¸u= ÙžSCGkyÞ¢IP#Æ2 +רµ¸¶qyc~†.Ú\\ÙC�_CÃiIjI*–*–&²»» Ñ¢&oòb.À7À7nʸ¸bé®´’´Ò|§Ïiøž‚S?0Gã=ÌHoøß®Ï9»áïØ=ð³^»·îw¼¶Š>JW*€rS¹øUÃMÔ™.s[ÌJüv"³ÿ¼§@hƒ=ü©\..“± TÄ×8µŠ6kÝu½õR¢©pŠ©UÖ8q¬á™ÃM¶ÅJ#„B¦§î÷ä^×½ ì$äò{¶à”ìð–MQé8bz®H×bú�o=vøh¦h¦´ƒÍºñÕ˜àXûam3†öHÒ›ö»C.ë~ÝÙ<¥ë€âÄ;ÒmB!^x}‹ßˆûëY<�îB"( t*”Ãà OoÈçѽÖ?‡Ä¡²´Z@"Ñ]J¹<Ýân¥s JÕBpcæ¡7 ³W²WÞ¾p}>ÉWæWæG£C£Sjã÷^'Á˜HƒX›�=Ò¥j«l«tÎ\í³…»Ww¯N¥]¥]DPu¤Ô"�Iˆ«iÕΨÁ¨A#Ë~Ð~�›nþëü×îùØŸSnï5’V;¨JÓ©Pu¬›5å¾ÞÔš˜Æ 8v’9vÃ:´qÝ´ÍÖú^ëký$ªG‹pžFû¢pV^t½"!5àœ!dü¢¯Èö‰º÷mkîGB»Ó '€J†ƒ •Ì¥8£íï�+w*,\"ñUÕWÕŸ3øœ‰ÏG Ç€+¨„áÐeYuÒ›`›âyNžvŒvìkÄð$ÀáB äA£¾†P:øêtX"a6X¼JØšAææ~¬% Ù#9À”„1_ ÊX8“Äw4‚"ݪ´F»1é׃äyäyC…‰ó2Fpû ÷NéMéå=�öj�¸èR ªƒ“•õþjˆ2DM»pHsH[¸ gÀ›²4ÂÜл^úh�Ë–·«.Ÿ6kêÚzS)Ž¥wàü5\þ¡šB]óÆ€²ö Ò’K^.òö,ïm {Chž‰Zpzžò0©©XÀ‰8 H„¤K®›0×YÂ÷ýͼ¿ü¾›Í8,W°V‹'Où7¿ý„k\ ct^~..±‡ ÂöBìx˜ò<Ú5+NX´"ß7V#9ª($�o}(MÇãhµlBB+Î,×è·çÝ^Õ¦aRYó¤ºè(a®�µb=„™„™$'hžƒÛðÅxÆxêgégÙH]ðv‚^)NW"Dôùq\q~q>9ÓúŸbAZ~Z~Ö®ìxStÔÞlÝS�$r‡š5Ô²³H7kêúzSlvQWáX‚Fq¬ªÂK‚¸ô8Z¹ ±z¸¨? M[nÞyù��vúaJ ó­PÐ�âÀ‰9c>ƒÄ8HñJ%6Š�í7Ûïê´%2|— pHk±®ß >±Ê·Aœjó"ܬ¶�€“(ò¥!‚Æ� 'Z& {œ£°ö£?4p¿7W s �xfà~(„ª•s:¬‘ÅIUàÁ:—É7•Ã(µ‚I«à*”i‚ºŒþÆ®ýX�Š”Š,l§¸}CúO:V:V44ïÂJØ!³´„´uöÀ5cš1Yk2¡2¡žRnbnbÑ"sÞð¦ˆ;õO¦¿wáÔ|Ü®lWwr³¦0ëM�_%€{~kb7Î-ƒë�׸:ü í`éñV}ΓzÄlQ&Dn{b0»ÂW\ÒñËÆ!Ñþ–�„é°…"`ò9__]sKv> *œòb¬ÐBÎ7€°ü¨"d¯ð�@QB*¯÷ˆ÷}D7òÝÜ] ôÕîÙŠ•缪锣�äóS"a”VOwSѲ#$g¿˜2ÖMÏrPsï$gå÷1[–Ù;H¼1ƒŸÇwugug¹8˜IÜ; w&àL@ó«æW§[ÎT¦6@b–é¡o–Á¹G¸G´“i’in—H´H´�D›Á›²a~Òr½»dž·û¡  ÑÞÍšò^oÊ®VY îeÅžJ&1¢NƨÝÆ%BËÅO €…3šLçÜ,¹ e_峿³óE�'LãÇpÆì;'�ÔXËÑý©�²ðÙ,Û,_îî°Åç–Š#‚U�é÷�«\�̶ƖyÕ™¥´˜·˜W€P„VË«@„:$d°¬T€Žc@&§ ‰‡ P2³³Fˆ’xò[Ö´án$*…â±£ÝçsyQe$-ò�b<òìæÆ¶ó†>›x6Qý�8Oõ\¬Z¬šJµ{Ì®�ëäç6B�ñ5•p""¤º´ƒ´ƒ*©œ(NÔ‘­¼Fð}Wש�¶h' »¬Ù)¼@ÓL™m¶ï ~‡ö6ù—Wüßúw©�¹Ëþ\ôø%{Ó0Dxšîò0ožŒÅ–ÿ¼ïJ`£³\^Ÿï¿\ÂË\vE¿×2´i~³Ö}Ö['­Mé€ ÄˆgàØnåôÒhŸ…_ÿºÅ$ª ¸®zѧae—ó-À�¶ÏN$3G�^-žKûX!%�Ý'›+Lœ‘ìK+óg SÙB±»¦HŽRç`|ä]�œ�Q]nL ¢â›÷Ì<*7”1”‘‘Ú`¢~•Aòž�ÐÅÃóApGÂŽ„=<7¡?¡¿+0£&£æššä4¼)�̦3¡AìÎ3åZšèlÛÍšò[oŠ}¤] î“B1GåVE»«ú×wiúr‰ßà°{ç!Òw>œ·d–/pëNÝ ¥;‹CA]„DvüüU`’4l߲ײ½tf(ÎË4œ„^,ÔÏŠï@¨Àå@HZþ˜g}l§8[:[zn+DNÂÑ`m ‰^j¿†õæàr¸3çõ‰s0Ëå±ë"ļûóŬ<ãy$ã’Dç˜d*êŸòEÓKù4ˆúÚ?T;°±¤øŽ2õ9õ¹wZ—ª… àÔ´Ô´‹‹dÂ:.ÌBôà 5 ]€óÓöÓ¼uúöéÛ‚1<1<_OMÁ›šÖ­£ýem'E¤·=Úãqä¯Íšò_oJ-Ýiî\܇·8IÑ œI“á±Hg¹½t ,>©n Vh$'T}L– © ²<÷£ºpžŽ“Ú"™ãâQºÅ)Çðu‰v‰J´Äà3Ù�“ÿ÷Ãkß¾HEB¨Ìo^¹þÁ/jDfD¦n ò¨¢]$Z‰”ʾ }8Å„ô#¹ä Õüî:ÞÏHþÔdW™‹¤¿¶í½)‡K4ý)‹8¥Nnù3o�”™7vÅóiN¨[¨› [ÿáÑ0¿‰~5—4—›#+4Êû7MBOÞü‹½ûާòoønË()¡ü�l‰pPöø™Yág'{•¤d”q2‹R’™™¬Œ"{d�"[JöˆŒ„”»ïïzÎë<ç:Çã�ûõºŸû¹×û¿Ïߟó:×õ�>‡àÀÁ(R/9595åO�û‘û\59�îÝ�»�²uFço)ñ”%ý:òHªÐNkdàïyäÝ9ÒoÛDÈ:æ&¯óRl¸ìf»Ùÿ…ÌçQãò‡a¦¸ÎÔÁˆ$NM¡Šæä#WòkVÅk%ºµ\X~,”¦®äól7û÷ÊPR´•„F¤cN6*Úês»×Ååãgz"…^в’êÀ‹ºaªåÝl7Û.“Òx5ߎ2Pä²™ú•*f•=f–Pýì�~„6s›Õ�Ÿ¯i¸4YÇ�…»Ù?—•Ø„¹Ô^ÇÞOPÈWj"ßÿÎ`°tß÷IÑ$þè Ÿ}ß¾¾ßé;ãØÛ�½ô£Ÿãã–=Òñ'.}sâY€HXi]=tõ3®g¿þÞ°¯Pè³t ¨¢¶“Áø0Gg‰O–ÜK.@Á¿ü'6}R}Òý.Èbó•ÂP^F{<=ªº½ýÙw•¬Dƒ”G\fQfñ!9¤URßRrRÏ漢v;˜ˆ-ÇâC_ ðE_®k&€TNe¾4qñÒÂgs£Ò|©<Õ1]<ûÅnÛÈG‰gF¾ÉlO҈δYŠ4›ï°_g�#ž'ž§©§©':žsoÖ²ª„+|Q —c˜c8;[=]=�j9s&fët³.¼S9Ú’¤ÜÜW$ß/ªÈ%Xìx�öíß�:ÕiË÷$̃ãéGAÛý1|¸ë Î%>2ÿ èmé?”Ûâ Æõìú‰>à�sS:À™õñ5Æ|ZP*>t9Lz@™_'¶I›I&ÆØt~aú£ÙöŸôÕ2!¦¤67(u2t2ÚK!¯Ô Ò_Ù;ƒûhšuÀ€ÐZí¥ƒ;�øÈ4EµZAòb+/”%»FâS°�‹iÊ'@mEÝ«WqñU¯ãl°üÊö”ÓÙ9Âá9ÊUõ…H8÷<÷<ÞjÞêÚø.1.w:®|Þ7ëp¼xý¤bF0#6/f×f×¶¨×Á;e”ÄòÈ^o„a@Ì—×àO ª�:ü»S_ºÆ„á ,?Çb´ü>Ú^"úã=.[•n/ ŸÙÆén^3/.…Ãé€Ç¨i°âÓ$�1áÒtŸÄ=¾‰@£œv¶Ô¬Ô,ja%jlšƒí´hʼnÍÀ#öˆé’gWÊþQJ¤!Ò�¿wòøºR7¤´¶Óí«+ ±¸ÆHúáCA ðyŒKYÜ�ð ¦tH¦)àsÜp¹G~CRâQŽöëÜUfbQÃýÅÛkŸ´ªÐÕÓÕc«ând$†£¢šlœla=_W5y/Ыܡ[.c c`©Œ oÐ)%(%ˆôq\…w*¢�È­×àŒ«è9Oj–­ÚN� wBY’\…aüoôdÔ[^Ñ~Çå•a88ed):Z5?Á…Tkz/XïB¾Ucœ”q3ÅçcJ "œ?ˆÍ©Ä©ägS˜8¶ªAŒÃÂhùþ ž|¼qSFXïËòV{åðÊáN ½Xä]@íü/ -Ôµ{�ã³E0�¿It¼1;á6õÖñL+>ÔÄÇJ|˜�†ÏK‹œZ&ÙtàYUÝžû²Ã=0x,œ´·=Û‹Á©Ï©?á6áFཤn aQÅÕƒ$뀻z;TÑÒâÂÂî„Ýý§—á� ZÊ Ë¿uWï ODÙ@xÎN� ýÝ©×÷H_Á•ÒrnbL·6±>žÿ`/ì‹‹P5Ý N:kuº7È—öCç¯@RmƒÓŠ©c1¡T¤O¯MU‹Ps�ÞÏîALmÏáð¹ ‰ïÑÏ#G›86!é*é*Óºæp’½×“Ûp¯¼^y©Z]³ºÖ´ÇKÌKŒ¹Ì€>?ßrJ­L蓮¥�HGbz´ûâNóó ¬$‰Ùž‰äâ¶õ§Ã¤•älÃÍu©ùò¦‹ò r%�r¢º°•vįYÖ@sàKÄÿD—$Ï â:Ðú ¸ãÞ~šÆ=‡×l¦Ž5ð@.l8'÷ô+Æ2é‹«øH›=²˜Ô7±¡LQ¦üå|g±å™`œ@£þÆôpÊ”a€ !¦?NÑTÖTþi™½¹cÃúÄ|t®�› x©ˆÅu^ÂÇr|4:*§Ñþë�Œl¼>w©X‰oÚa‹$åÚ3¡¥ä1×/·Ðoïâ^Ù˨e§Â¢¡48ggãOÆŸÖ[]‹œ¿@¾òáºWøç‘¢‘¢1×ÍÖÍ>èWSTS$ÅOFï”9IàTLaA#•ƒ)ª6§sÇùyäïN©Q §Â©‡ŒØcÈ/RÏMQf¯ÇUV›)ä)1wÔ[ZãB\,ÕÎeÄZ�ivŒÚA>|I,@ßäÜClõ'ëO^µ`"ÁF,ƒÁŽö¥ò¥-`=§Â9 I7òDë¸Îm�Û^sOH†ˆÓÈ¤× K4}#@¥x»Î¾Àµö÷#a|UÒùäÔp«A!9ûq|, ,H­©ZD|®ÄzNög%y«!{Þo/=jÏõ.ç.ç”/ÒPE¸ä™ä™"ƒ"YÕzî A®µ|—a8ÃÚoœ·&oM2Ó3616íŸ3 ÃùO&ÇWÎfhwîÍ%Úå›ÍWvêÔ�ß�Z<ú¸.(³ #°à9+¡vwß\wŸŽ_O�«äóéãuÚh‹R¤�µæ¯nVø(4qêjIJMØFûGû×4à¯ïZ�òhíÏ��gÛ>ÅAšŽne·ÞôÖbŸcŸë¸ Ù„¸øN@t’Ü΢ݽ�}¦Ž%¨ã3æ  W¦¼!DF¼¢ÇðQì.¼Y^¸Wp–¯Õ`Áœýó¢–\�ßöÖB’ž�Õ»�Fý©(i¸�à�à!�!�ýü*c/=!v¸ž¿º ×%Ð%Ð&©}MûÚ§#7)oRÚ•¯Æ™Ÿ?éÀpÙRãXìí2măÃ;u*üw§nò ï‡c¸Ô[ŽÁíQñC}>®ªØWƒÐâà~o×µÉþޏ–ŸØr´é�­×Y(Œç¹ ýøúTE¥±Õ jPlo>Øêu0fšÑPòß.ÃLeß ?f¯DjaskyÙòA Ñ•†ägåBªŸ"²ÐlG•¿ŸñN­j|º)€<Éš7³=�òS<L­øtQ}²dø,«&¦òø•«ˆWžßÐyÁíéýÑpÖ:Þ:ÞØ’XÚVÎñ÷ÃÃÓxþYxì&„ï®ò½ù¢p,²,²Šk¹ò¹ò¤tIæIæ‡lhÐ�ò¦�:ujNžeF¼,ø*l11jÝc§ùyø{ÞÄ_Z~%Æ“I Üçâ}“ýª…w³M6–poÿçNŽq6›¦cŸÃ5ZþJéÐýd@¡E2nè‘`uÇ*YHæënöŸ�=o(:&é]ÕëüYÕvÁØlÔ«â'dDæe-[’å×úÞ—²º`7û÷Ê>|øD`£íÐ{*Çd“¥�·ÒáãÙ�¹ñº_·Ž—�tx>Ú_#�y2o7û÷ÊNF<á #ª.²Ö á¾8Ä‹ðþò×Ù4ÃãEËJ¢Ÿœ#Çzmå¼—c v³ÿœl½ÂìñBu�aäø95W¡°*Qk�Ê>{ÁÕ'‡%÷Q}8ÑýþÞ‡“ü»Ùÿ¿Ìõ”µ¥«jN”0ã¹-_ÏŸ>ÄP×àRFOñÖÔyLqnH�‚ÝPu²Àq7ÛÍþ7³Cþ¬â4nÙrq=Å�¥£!æÞ´¨ò›�=þ#+ ;2¢„â;ìfÿ\æ{o𠈻uûº @}Ñ4×cÕ¬`øXÅÏuJu·R‚OZúvL;�åD€{suýhàHKxc1Öf®…¬µ³f}ÀåqÃv h7¨s|“}—š‡±2 Q1o„%±·bT_Ÿ°ÁÇ�ß^˜é�Ç–Q—QÇHä×�mò<†ÔÚÑÓº—ï5ˆ`V19õú›46.6®€? +HL¤£d:¯mMùð@ 0Îø…�g10÷óêeH]Å•AÃ_ ×ðI¥gzßε·Æ£r<¸v¸uðv•ëÉ�øí¡Ú²¤ Ç ÇmHp á á̘¡\ŽÄ.j@ÈŒpµ§pLÂåÐäÐè/p/p'µÄ™Å™­S‹kÁ;5œè{W³­Fƒ˜®âE1Gÿ¶ç‘¢;ù»S'_ɽƒ3îp’?$[ûfúfVž;…<…”4¥ÄÙ»JÉVð=ÅX=³-øsÇë°‚�:õ»SŽ&Ãíaî'À`"~ܽ¢Ê¾…Kí ôc¿*¬L§™ ‚Kƒ4—P—ý(ô$TŠb�Øe˜àS}KU`޵[ÄfPaP²D�í�9F­š1’µ è++3²Ã5•1 Õ Õ¤!Zž�Ù‚q$dõl÷ÚþY “ ˜@Îøã£a lZ¤ôÈCòÒ–ÒS”ò„ññÎ@�\´#Pvæ úSåÐݧžŒñ†Û»À/·à¼à¼7ŒšÚG Î<Ê<Ê’Ï’/EYIA¬ âk‡«\Ȥ.:>:^zkÞwÞ7†?8&8FÏ9ÌÞ)/Aï·ô�oï¬Þ¨oŽ*Þ©SÑàŠÞ±%¸ ª¢ 䌶ör³Æ@ .æ%U}@¬P}<ŸŒ‹e0‰ˆosù,žñÃ:z±Ÿ_¿&<�=ròØ^„¾í‹^j¦´„±ÊŒF° ¾0Äš )÷?½ÍÖÐ4Î9ÎI' ù² IܸÉyΆf2$Ê]E‡¨ð™2.$±®G@øÅE÷?ˆk¨ÅG¬0Y~΂ùÒ’ÞR6Ð>�Í2b®j{¼™|•ü+ü+‘"Ïnh«Ã‘x‘x•].»|×õû’ñ/õ4.¥ëùp™ ™ V|á|á÷ºU®¨\12̨„w굇ÝÔ˜„²W0ËÍè£ gvêTÌïN •®Ý„»&Ë3ƒÁÇž%£•d!}ý\šW–7^ð$_ǵ´rЗÌXý+D1šÛ«ñÑ|º±Ü�tŸÅp8à°ës63lÜù'ÑÖ7Kú¢qÉÞ»Ͻ. Ö ÖºNCêµ á>D…ºâ54ðqOøŒONÐU°²Å/™_ñÑi"”û�Ùóûˆ3F ºÈb�ÃJ²v¾ûÚi3·—~á™§r‚rÂ˽GÓL–àJKÁ\Ë*SþÁÞ}‡Sù÷qGV6e&#‘MRYG{g‹PBV„ò“Y"d…2²²J…Ê*’2"Q¨™™Y™ñø>÷s®óœû>.ÿýžq9¯ÿÞžë}�qÝŸÏ÷;‘�Br–¤a„£§?Õ_¬Q¬ÑÀ*$Tñ­u>õDó�W)… Ÿ…àÀ½� ~›Í@å‹�¥@=½En‰²öãhiQ.‹â¼~þþ™Œí–¾ºA>îÎuw¦Ìo}P4 ЖxäÈRLòo3Pb¸(1hJtƒ¨¨¼ /ɸñ¦D”ë? ܬë1à."�<8!“ÙnÅ]Æ�ôì�Ñ¢SH\S ªÀ!Çîå·-¥:H¢‚l'Þù³@™Æc34 ~›'dTÀ tªá308ÀŸ2‰¯;gÒë^¢7/àÓBtR›ÎOZ°¯E\Z\ÚPâž©ñ™‚ˆ”^Âr.ò:ý¯koQ²Ä®…ª§Ý…´­ ëÚœ{o áè*’JT:èOˆÉÉ7ó™ç˜Íï²P–ÙG�Ú»vé™ml·‚°GÔjÔ*ïùêþ3%p-t-t�”�”¢\¯FôX!®#­Dr³Á}«ûV7Òö½í{uÉɉ“²/­_À;uß–¿F(�,á¯ÞÛkh¬ô7ëTØÉ!Y¸'12d�óÌîb¬WD‹(Óu¤åp꾜1…ê¤]H˜ñoC€…)4Šþ0gõŽþ [Bdœe�lrMi|Érë^ZÁ°žÃ±>†eA±×ˆñ®Ü )=b"DéÈReEoEï6 ù×(T3úÚÁ1ƒAê3,Š2à·pEŽô1!ÓÙÀÍWš}·“ <Ô‰a£Í=¹„|Râx!aFý;òmóïŠ}}þ2d l�;%2¿—‚›‚ûtÖâ4¸±Ÿx�xøÍVF®¯º;2¥ŽTçù�®!¬!Œ$0G8Gxvñɯ'¿žµS!¾ûVκ¤ìÓô8§.ï5©µª°Y§â×;EêpÒ®e@s'°¤ ¡ BJ�g©5þˆb~7;àvN©qh®Ø¦î™ ÜaëÅ!c÷%'DD© ˆÿòU Ÿˆ©ˆ©EMÑv|5ª8YÑXcáЉ'k{ÎB´»Oéhÿè4´´Kúy0 ÁXûü€ŒìGub‰ÊT4@X$ !ÍùÀá2¬×;!®”ûwú>½&NH’»Ì�7<†ÆeÇÝcPŽeÓéW ®m¬þõƒ'¤ž¤žQ4ÂyG³àúÂûÂùÞñ½+*úvC bó‰Sm—JžJn¹8»6»æ· º š=y?Þ)åÁfÌ®«á©4µšß‡7ëTÂz§tk[¯Á�ÍUäãØ2Ä=+‘äJÈ@’Í‹¥ióþ²Y®‘C¢ÊaÐúšˆŒâÓq:xebZIòà]¨ÒÅWñ³â§½X!¾JnÕ6¬#‡ß8õj�fΡ½¨A[º¦MT ”Štæ\©L_+–i'˜p-x¸b�(]XÔ"O€¨¤F_hHo#df^̪ïùÇÑTi�¾·•m³*]Ǧ6&yÞŒR­_­ŸY�X˜¿Îï®ß]NENÅꚯ�Js�f#¤£ÎDOà*,*,ú*lŒlŒh¨\\äîç`;Åuê¸yÏm+Άé•×wŽˆl6Wÿïðß´Óý¿˜ÅÖœ¶{t;ó�f}aõ¾En½H ®Æ¤2ým;i ,’Ë'ñ{çS»leÿ¹¬Ì.ÀñRÁ¨Ø—ÆÒô»HÚXÔf‡8MQ2UøïܾçlÐÏ_—3£oˆneO¦µcÎC•2>DpZs'f�WâBsîÍ„÷¯.)«¼â<�NJ|îBÚ=9¬µ•meÿÉlÞõ¼"{]|—Ç@Œa±ãØË5úÛÆ:wýï~LúërcSíX$Ñdzt[ÙÿO¦{¥àu‚_Ò }Bº˜Ðþk»Ë“^È>µ‰Z,4~¸Hë˜*¯3cŸ4Ü´•meWö<1@Ð)ÁÅRBmz-­EßJŒš¼}I’©o¶FÑ/gP=pÅÈ Nº\yô½à¿=Ë08vÅhô¨Æò瞇µ½˜ü£áNðgœ‡Ó£o¸¬ ðœÖç*È£ÝìçmR"¢Ø^)¸åªä`3ÃãLŒ7“ÉI�lÓCãMÌÓÕRef$ÃIÍb@Ř“R�¾‹Ã/B44é<äY:’E‰“\ G GÖ”zªzêšu|u|õE¹�ix§¤)QSŠ‚Éb½ƒZÁÔ¿þ ߬S‰ë�ºe£Ø'àn�3åÒµ#>¯aJ )­²=°a¨ú\ÄõiØ�²8û5r�­~ ‡ÃÙA��˜îx€ÕÏÜ_>y>ù RÂ2>=œÐ3X®Œ<ÏwwˆÜ‹ºÕ'F¿µ,”-”ÇÜ v”úí)ˆ¯Š¥9Vr0‘(¤å¥’¼`ÉièâDCâò¯ÐÄ­O&$ ZÓ#43±—]êóÉKrãú–Ï|ößXýUseç5çµÁù M&Ápbh1´oµoõ¯·Ê '¸!Ûè�¦Žì}×ÑALJvG»Ûæœ;8wJ\•Þ©Çü .ÔÏÒ´ª½<´§Ç©u³N%­w*gÔÈ®3ÝŽççom¥ÊÛ±)fWp ÀõÕìíäŠÄÁ P‘QK‰"ÆpÆv—72–Ù: LŸq°ÀHHÃq_® Žb–œ±/°Oã> $JZEëF¹+Ã3ÝgºZ9HDÝ·kþÓù°€ØLàGð�,BK€ªoG„}’ ~¹ö~¹Éñ„Œ¤Ä”1 ªEšfÆ�ŽýÈ*¸wë~›�ÕpÅ`îcî3´QÍÓ ÂÅÒÅÒ1a˜0ÅJ¡Y_!ÄËHk~Ÿmá&ú'úm:$%YåN,žX —9&ïM%&‹–vX#ç¬×ùi©”û›u*y½Sû†ódàJª†pŽÏZ[q¡šèÞ¥#‰ë?¤SëO.þ »ˆtoòŠ Ôz ¬É„¶1]oÇaLxÿ…�³ }�ÝSU|ì¶ì¶·ŠteñÕfáP;c5º·Knþ1ûט„ƒ´l皥›¥÷¢ N•½Å7 çʼnNay6­ì=Í„,†Ë˨k_x êÊášìª¤‘„4ß òÖPkÖ`l2"¹µÒõ±ñ_úŸ�½s¼ºƒu�umÚ÷5ËšÜÒí¥Û33Ç^µòùBL鑎\f+�£V¥V•`03›±ˆ²Š²jùÓ: ß ðÒNz¯¿°vˆŒ¹n¡«hŸÒf»zs«¹5åÞî…yÉ!T‚ó,§Ý´§bTïÑ|ߦ,®@²(ñÕ%×+ÑþÇWªOÄǪ–œCþý|Tän€ä»¢Äª“GãÜ´ÿ §¼Mã7Ý+¾ö`^f:ÀÉÖuÍãä³I‰¹ð¬¢E*É¢ÍPµñ»QÚS2H耼K@Zî ‘H!‡Ú0›Œ¹„;œ@!cý9|Ì!Ì!äüâ½øˆSpd›°RvìLœ¸¹í!Ç.Sœ‹QÒJmG·£÷ÔA¬µ!žUÚM�ú¼S—°¢¹*`²­Fˆ^/ ¯Þš²2éenoûþ\܈§FÝÒVçoÒIMê~©ŸîɊܵe1ÙXµ¸óvô2zy:Ê´óü\Á�‚òò‚ÏnèóUA\f‘š«ÍXà0Þo#=ÚqÚqÆF7C7CÚhfWÄ�â!»êéäg’M‚öJ߬Sw×;õ€¸� nÒL"'0Eƒ†¯`—dÛm¤ž¯`Ò»\‡½Þá!Ò$ç„€Š¸IØò1¨âÈÏ–;¢ùðX ðbw¬0¾õ7}àäã·ø:~ãpbí¼8í %í‡Öd(ŒúJý¦ûM÷š$dÂ’9˜&Ùïs˜K{ 0Ù ôÔ� d´8dkÊ?A9¾=éC�q4!íŸs÷+^Š^`áÕ|R¡sä0V»1YkV!´:Û¼³z.¤;¤{J|J¼¥¦HÎðDB)õµë=8£Y£Ùq·«KW—¦…‹ê‹ê—–ç°�ç®z÷E¬ŒmÿÑ4HO�Ÿ“‡¾£êBàB`;¤O2È)¤ Ñ{bU…íZYÎÙ'�Ä|è&iï^…0¿=ôaîõBògmúsÒ�„;‡éÑ$è ʾݘ~Ä*¹Y¹Y«&uÏ�—à†R‡RÜÜÒº¾©„5@Š¢�–ß“ÁUÈTÈ||°°Â¹|ŒsÎ…¥Á;µvÝ,ã­Þ‡ï»”³vhŽoÖ©ÔõNÉYÖ÷ÂÙ›°éá¼üH9[ããrÕ×É:àR'°jÉDÛ/ã�$d»¢ðÕ—�p’ÿ:ʇ“{9û,!¥U6õÀiˤy|•v•vksaÌøf{qPùXWË�4Ãm<níÞýRGÐ"F>F>é *å›Öw� Òâ®X{“€~à4©G$!WÞ¥–rþK�˜×3Ü5 1VÿÉDÁ&|„·è•ö¾ ïÖøÓâ;æoŒm^€†—˜—˜GÆ1»ªŽÜƒÜãDê‰Ô¨Z÷Ìú!3·�Ä®[èÁÕ—Ö—†~ dd¢2òuäk³�P0¼S…§FžØÖ¹ýéëj m4×Ù¬Sië�ªç:Ñ÷£ŸÑgÕ#(í{‰È@©*’�àp´üò±šû-’‘Õen (ir`Õ{L�SXUMˆKôÕB a¾ó >C2C2½Ý+Ÿñ±ʼnZÁ&sù .»�@X�sãæ'‰…ˆ…dœ‚\šƒ¼ù#Q´îÄ’ÜD,L&Єä”b¥g¦zÉ {ÿÁÞ�†Cùö}·&YSÆ–�¿ì’¥EáOdß){!ÉI”ì"¡�-ÂØ²„P–„¬‘d‰È’5ÙžÎçjî¹çšq;žã~–žãp}Þ}_Žï‹™óú9F¦üs^¸h4…‹rÌ.3]ûàæ†ïºzL�×öèÒÖ¤Ù¾ ggs¬TÕxÎÃùiúiŠæ‹æ·ßq¾£Î›ïáLµÅmà*~TüظìmêmjÔ¡¿¦¿#h¦‚êÏï;w™êX6†›Ÿ9pŸ-9¿ÝÿÀ;ü_ÝkdŠ8{ךAÌ5òáƒK~µtZy Ÿž7w‘Y©ð§œ*ùB9�¢©µ“ídÿn†wÛ¾\|A?°Ÿ;„XüfX»—Î5ºl…‚×z ¾®/ÃÔ‚‹o&Ü�êˆØÉv²ÿ­ì*³2aäM2£>&ÖÍAùÙÑ©ƒãŒÉ_Ò6;O…U'�—àJ™HÕëÖlÛÉþ¬l†*„}ý‹*=Ïü_9iÚ1%Áê^ë„a.HÆQ~"*âJEÚcõÄWSZw²?+3æ�_Ó¾sÊ}pC1_S˜v¸ñ«÷O»c÷çÞ Êíbí9˺“ídÿnÖ»hyU—ÞU÷Xø7™XQ¹·ÅÔ<ÄmÌ RîѤvjV᧨ìd;ÙŸ–ý¤­Ì%«Û£ö¡ôÅë@zÖcÔÝêñ•z´~Y�sü‚¯4FÍ¥Ù÷þIbÒDǹlÐ?ê佯C}9T·~öòUßqHT¦ùç C‹�È]‡^nwöòìú[I3†;¿T‡–ä_¤¶WPv¼sÛê^k/`¯ý~¾}¸NüêÝ¿ €¯c&ø€Ôu•[hR»b¹pa#½›< _·Ädc#ò@å¦ôJ4£K(R?z¶s­ÐÊSd ^¼�•NâˆJºJz1'„|bû­…¢¢÷q…m¦¬´œqAòýîÏ_Iu@˜¥­Ï­Ï´ªâ¢Ã«©dý9ù��Ãpб:çÒ)•ä×\[‹5,ó%%;Ëw]Õ¾Γۓ»k±k±q€;€ø Ī }•¿>ܪ٪™†m}_}Ÿè>525²”&e%¬3bú1Í.uº‹§ŸðS.0l»+5ùW§èîMjÁårr± ÙQÐ?˜^>+�M滢°pE˜ ë ¶¡ÈÛ“�Sº6°Ô=Á‚&•ÁÀ‹‹\cõ P!]Ë�é­ù[óG/varêA“6D¹k×2ôðˆñAöJüxÎFF',+,¬ ! €�nØý~ôM_�A�ÖC®^˜¬Æ…ŽØ[Ìo× ‘6·Z=ghì‹‹hÑ»VUëï|¼ú—ò…2mW¹lËvmí”È£QœQ\W´ÛG.8Í0Ͱ9“9“¶EÎò|ˆñ 6 ¯ê—pŠÍŠÍjóVo¬ÞT.…×†× H~�wªAvµw"Ìo–U7ÕéýîOÛu*ì�Ô‰¹ ÷ñ¹2Ú—òΙ¡Ú“l„ØL?Ë*2*mZmž‡cg¢•ÎñY~:n¢}·8ªƒ ^ �,°tÎ#“£š£Ú�§3µ˜:Ÿ¢>ƒÒwFª hìÍ!�œjÐ>ÿIâåXËXK° Äö¤…¼Žï·›0wÀ´™ˆB ³‰.bçÚÒþM)Hœ¢íñN†WL¸„*Å;Ü',>½öcÊ�]wS9†AJàø¿x¢}U%J%J/µxNí…¯c3¨2¨hæx n" «7°�¿í׶ضxÏm)f)Fõz‰}‰}¥š¼SíüS‹,Ý»‰gƒ¦…‰¸¦ù¶ëTê¯NÈØDÁåU©^Ak�ueQ’™Ó£Ç&•U´ôÝi'.·g0Ç6×^ӌȲäÈÖ‘h’E—}q©ž: |£ XÀTÄ[ÄKakâ�éÑ šÐ3×d!€vºÔBè|ð¥a|°_q]qÒï!!9. Ñœ©*Ea±ŽHÇKqQÝ4~X>½ÿ¤á´¢…ÕÂ.?‰»Lüê”)ù#ß½zÐÈ&ݸµ†=Z´…´…Îù\nÃpü~ÄÅÑ‹£ÊŸçœ€P�c³Ü›$7¼:¼Zì„ÈCäùxsÌpÌg‡;)v²{­{�?m3ã§DH›:-­ÜâµÅk²S‡øñ¦mvmv�™'‡wŠ)1ÿºPñA¦Ê‘„×�C§z·ëTú¯N•E»¼ƒS¢}Ô„&"¢°Ô~¬Åéh.¶ûÏ!³ì¯Z�°¿{ 0ÍŸµt¸¢qŽàbA2$èvØ"0ùæúæê‘µ©`ªþ‚F¸Œ".5Ð ÜϽÔñ—�4“\?=|z8¬bD ‰îª„dUTÉ¡ŒÀã‰Ç.uÍ@ã ¿§*$ÒéJ* '.üÔ9Ò÷2Ô•}kbßù?)” äL×ÃÚÚ�À¤ØÉ É .üñÜSÙp««+Z+Z=Lœs›�}QØòô…áR¿¤~9qŸÉ�,iˆè�è'u@2`Í,UoE‡¨¯µ–i¼žnUÙ®SO~ujP;¯Ž1fá(Kww�áaÙ¤W'°M¥ ƒ€ßÉL:Å÷|Ø®1ˆ|vû|<¨Z@‹N×Å%Dîa1àñD “‘Ñ_r‚ƒ˜2|ÐôÏ Èïç¥tšß8CLüûzš TYUY¹¼“JÒ¶yH§EW; TO3 ÒB¬— `s#¦¥O"R9öРz}ï}”|4Òg�\Ÿ¿<¾It3™»kkÔzB¬¬«FšŠWcáȻȻÔîªÝ�`÷Ž¿ÂÁÄÁ-K†n†® Õß_—­¿�¿�éO†ëðN±©r6ìj£¨‰µ wÍØ/¸´]§2~uªñÁÉ)8²¿Êo£eÔ¿Å÷èJb¶1?h›É Yçܬ™¿°q¾ÉOZ XC�K|´•Iä¸Èî"Ä 6%0MMÝd·ÀDØ�vêÊ|FÀœ8éQ¢õiÉ|gó÷þý¨Ë žN�¤aÔ×L©[ÕQ(bý@”6@£ É‰Ë’20&Ã|Ÿ�òy¿-s¦&i!.˪™ºÇ'kf©êx Ëñâi ö²xl�™,åÐÑ‚£ÉsKØ›˜ff×fÖföÑ”ì4‚àú;\à…  AÌPÎP*Õ¾Wz¯D¹‘šï2ÖÚóKo~pâšÒÖˆEƒí:•ù«SWÕŽòÀ¥y¡E|PiŽ>´üüQ(¶1*–�€y =G�x6!aÂ% ½KÛh&š7A#Ó¤ÅEÞvA ˜TBÝyŽ’'–'f®üSÓ›h4yO”�âú“@m­ä6«s³áßl�ù ù Æî Ȧ…³.¤üq£.ÊÆ~@ÑlwÓÂe]Ð$PU³£‚,_ˆ¤Ø¸è�Ëšk[ú+UßÛw¿?0Ô_¸Ð˜³²Â¾5ßç&å5Î5Îö5àHZHZëëô]¦üò%!öâØæ$OÁU{W{§;øÄùÄ�%˜u˜uœ¥˜@uêÙ‘7êû\ìÒìÜö5½öÚnf þÛ��Ë|w™?"Ë©ð�McÑêüHh×N¶“ýOdl¬J™gÚÎ 5‹‡æ„ɇë×ûyF£Ž]`S4qÌSNÐýü‚ÎíÁý,Šý;ÙŸŸÙ²}BþÔñ™µÜ ßKi�?U'9Nt7SÜÈN‘ñ¸!ìí ƒÃg"Buw²�ì¿’q·Î̯“d'–J?¦V%£cìè¨ø;KÁ5&�iä¡÷€¨�ÒN¶“ýÈ,%ñ§}fð3{,/Öª” »ñý­+÷-ÎäJ¹âaÞN×ÀPåZÒÍÝ;ÙNö§e½f=¼V/Ò¢/×,['™—[ª¤IøKµ1Ð)Ô\âò£I’h¼êŸÆ�l'ûÓ2ÊöoMî£Yl5ópœ¿ˆ°Ü0ï~/_Šð�6à!5Zyèíµôß�±Ù—ý%ü¬å1!A"-g¸©‚,�/üÈ9ªó‘EÜ#›Jó Ž¢ÁmïçyJ„‡§•ìR §Ÿ†Æ¢LL¶@dg<�íªÑ‰]ÀÇËö„›¢vêØÒ&™‡ÏŠñ@­âib´L©Ç#¸4‡FõÈ^øÍ" .d\/<�ioÚ”%JÙ(¼båO¥>�QëNèq!¿ææ o Q‡,êš CƯ×Ú¢t%%ó@%ô.\Tf.³z¥ HëCîl'A÷\‘ 1±Ê¨¦ÈyÝ¡a$|ʺªº5á¬K _#¾F\Ö>Àø).š=š})d)DÙ­?È Úƒ­ÔN'C'#UoÞo¼¶{m÷8�DŠÁ;eå¹àØtãîÕ+±ÃƒÍ|´Ûu*ëW§*D “àæ?ƒVq�‰?"õŒ¤Ûî‚ä@ƒJ+"ëaù3lÈDaAàÃ#�ÏÀXdÂ&Ú[ëZ\ÌÄB£�éDüO˜Î½>÷z¨äÔ&›Z´ú`2ÉM M |òÀç¼u>Õ«‰lŠl ¹w�‚ߞąß�œRÚååu�Ê� Þ)¾·5Á&Ò"ì¡U)ÚUÛu*ûW§.Î=ŇË1î G[L#v´Že}Ù2‰møÞÇ ÚœÔKú¢4¶Åwɺ@ÿ 4Å£¢“�Ö+8Š‹×Àr-`U¿Ýi8l8̼þðYL,hMçPÖd¦’…³Á�”Å_˜«-äUäUDÅ 6þmQ_jˆ…÷!”ij@0úÚÔ¾oÓ«ü²ãx� ô/Ôlè‹p;=–q‹�ž”jEÁbz€&—ãÓ̦ÇÖÄcºŽ JJn^ʹùÎÎ(ß(ß~Î~ÎÓô¦�MÂo2ئæïUÂ9^r¼¢BÍ@ÍÐN­:¢:ò‘BëˆÌÓ6¡7§/÷E],Þ®S9¿:uKyÿ>¸›B�×ÑbCh$)mÕ¸Cm°5-ŽmÇ´Ÿ¿½';‡m“ È0cñ+üKmùÐö ™ãÂzÈYÐc!ÆäýÌû™ia ¦ÇÿôXk¢,ËE±¬ƒH²®§¯qâ�˜»†»Æ“MH…d 2Ò5‘ðEθ dÆ›àBw ÛKBN ¡H°{TÄ{C —wôªßë ùH,ÛPð,Õ?!w/JÞÿr–¶—×Ú÷=Ä—á&b'b­i­i‘ B5a�îlÑ'Ÿ‡›˜�˜�¤ÍQËQËÜ'¦$¦Ô´®†5ç)ÃÁyG…»NsWª_šŒ’fÁv�BþêÔJçIf¸œ©}/Ñ&"h‚L•ÇwóbËýÆæÜ  f”î‹ÆvôòB ç Ž LÍy@ZÒ¸Äåì&È}K#1]u¼êèâBüÓ°wßñTþÀÍd4�e%‘UöHÇ&*Ùežì’=3SFF"²*┕�QÙ;ã$"£"D(dDrûÜ×ïÜç{®süÜ�ÇýÇýýý~®ç¯?Ïãõx\ãý>×%:�EŽY1DÔW×Þ!ñ�·ÙŽú¥¾ñ££\&E È7ŰJH†0kFÀ ÀßxŒJÔòU 0xdøÝ|òžÂþ3 ò()!¨Œ9’ËâaŒw&â2v^\ñžˆwôÛ˜hnNfÄXĘ…³“íN¸¾˜¾6Q6Qs6×�ÀrÅE|‰ìžûà„f…fÿ,Ýí¾Û­RWÐ_ÐÏçw³¾“çL¥ðÛaé²s*™ÄüTzÃïbvòb×Rt³h�ú™‰¾Íf­4Ì}on8–Êú,¯Çi—ôgÍKÅÄ1#gÛ=Vö<¶n@$Äoÿç;yâìä}?v«BÀ?zÆÛèHiÀvj¥Íºž·ÞõÉçÇá]Ø±Ž”þæÒ“âÇ÷¹”{À±ËýÙ-“!3|b¿ìcy=1R@äHK–û•¹xBdÙÌoö4'ájíkí3×:;‹‹n‹R #’?í,¢Íë)=V›Ù6+M�¦æ_„ @ü£«Â!.k š¾R@• À;ã®OQ/È(µ`+9ÊÞ— ÃZNˆ‚x˜Ïj·™µ©Byzs¥’Ó';Ò�uÔð›JK'§Ôâ뇤ñ]®Úg0ŸöwXNoÁׄL‘dî�¯Ê «±²¯3õ"r½-¸Ü}¥WüRü’Ë@”®ï¢XYhŒ.A·(à\Ø B–RNìwÈ/ß/?«ÒâÕ I 8óÃå¿�£e@ö^’dBÊv³�ëz÷AD~!‚LÄÝ.r‘2øÓg�¥Q m¼ƒ‰vÿ]öBš²ø�Õ´?OWCª!«´Ë|m‡ ‹ ‹sssÒq¿“Ëɖç”Áǜ̜,a£Í©ÍYTä>ï>m)„é”Õ?öÑåƒ=Wûu�tIJèn¶?¿ÎúUÁÀ)2_O{mDT>ó=?«ilÞÿ%÷¯Ý{ZZÓ)%òÝùÝË#oi~Ù¼¹®ËáAÿ½Ë“]­çrÃ;!+öÅö­l+Éõv ›ÑÌJËBƒ‰/¿£†ù–)ßÛ$‹Xuv? ÎQ+cöˆÚÊþó29úïXµƒâÞ‡ªèв·¥pÕÉE;µ?7=X1M¾FW•å߯³¨µ•ýÿeMËªå §"œûÞÒ¼óÝ8ñ!ë£ú÷œr�,Wͼ1ßÕ|�_’ØÞƒ~+û{eOí–ó|?²êöùS5½p}QÓ¹º_z[»“,¹$§²aÇíÏ;ÑÚ¯ƒi¶²¿WVûÊ–®úznfO°9ºßÍIr0PrÉ øþ«7ŽÄw»u6|_¹°íÌÿ6óy|áàT‘á>ޝ*o¼ùè÷&�›ͮ–&ÔþIß½­h<Ùñè@ãf÷-…ë÷-,ªÎkp~’ŸþâƒZ—¸ïÞEº>|v?®¢kŸeÒÞØà“Ê‘æwI½Ç/ay6:n'Ä0¹Ï ðãã¬Ç¥º º È|·רy¬|~ŒÉ‡‡f€§í!cCL<#×T•+u*u,þq|J…¨LJAH¨±t¼Ž¯Ž¨„l_B8Wßɰc&‘ô�D|ʬ„´YðêóyD¯†ÅÆëW�ŸzOR°ƒúëÆ4ìLï­Ù[3ö;³Š¢.;.;®Ä»Ä»7€QFÚRT�ï� Ï"\E…¤µg‡gÇÃ922—I³~Kx§æ_î¸ê>ðúüÕ3’j7ì‘›uªh½S‚\§8ਠí<° (NùÝF~?Н÷@ó€a­›²ÄnŒßkƒèbà,²yXxÛ„Å8Üÿˆ�¡#užÀ�ü�׸Ð}è¾+‡jrqæc•¯aˆ¿bÖ—%È!ÌQ®âDgl.5/5/q]…±BŽÄI‡ìNÄàœ4º€++„ä ®ÍÐÍŸ9ÞñM•„þ°Ì÷bMÎädj[ íÙköû_Ðl¬ªpGwø¾ð}‚ ÂËM·àêÅëÅTTƒœn6v†xœÂ]s’N¾F¾Æ<ôíZÝe*C*Cúávx§n²üŒf±V²k>ñ뾩Ïf�*^ïT¼«O0\ÉuÛY,ÙZÇÒºD· §øèŠ R�™‡ÒIN; ™.Ô±ìYÀ—;€ `fÙÝŽ5ôÄÏ€Rè9ü^ûÏ\¸\î¹ÜsH)Äõ- y£qIÊ ˜,§X†„{4¾ÄÇ»#vÇGÈQyˆD�u.„¥|­ã¦;ðM °¶¦%'$dpSVè"†ùQóÌý–Ö"$ïe‹�‘öòqiRñÝfËI«¶þ÷NlLÁyëNÓ�&“Qs-p÷4îåMæMV–ðç´W@¾ëà[Tw¸ ×ú©õñÃ4ô©ø3!â>Õ.x§:4˜õ¶¶ëwÅ0p+nÖ©çë�ºúµs · a‚åÜñH,šstJNßH5j H›´|K‹O²¯®Ø/f•Xìyl†xð¦!ò÷­€Ï¿ªVpij6ü¤ÆÅ¾‚5’„ñ”ëÎ@¾¯æ+d[y̤sgé6Ëm–§Ã •|�;¥CÆ�ÂÀƒ._£ù\f}B\ܲ·‰†ÔN�Œªì\šù~B2ž2¬0ujÌ|qÓ²i¿S- *ñ±Ãeùu¶Ã;?ÒJÀ}ŽüÉÇGÉv”ñ„=Ä9šŇHE¤¼±lµlõ—!–!N ‘€wJùd­Pîžå±ƒ;9/É~(ݬS/Ö;EO¯·o‡ K¬ä«oJ9ïŒÂ)|}«SÏ€tYƒÁ÷=¬ø.˜CÛ_Vã �Á�ÚX:/»´ ¨,ÚÔq$áÒÔ X#÷Å¥€Ââ½�!ÞË©ˆšY†Cêr¸×tKý�ü�î'B¸ b¦J+�7«:•ê@d q�Ñ€�D- üjçâ�3„ò¤Ä�¨¾#¾„¤Þtvc_�‘¦^=9”šY?`äï#¼±ŸÆµ‰“‰“û§"¬\áÒÓÁ)ufòÈáN4¤EŸå ó 8MÍm]ÇW�¯Ò4 48Š-¤Ãçýœ§b3®:Ý™;"}Ò¯úQñfó~2n f‘/‡¿^/™ã CT&+f¸/¦.×£ôî-Š”¢‰+˜Îç ‰®?g&WÇñí8/É?�÷ o0ïoЈø6h¢”Æé+ÖK?½Y×_®w]5UÝ ®[û¯çÍOÕuûý\Ð¦éø”µå(IªÝaÏÕTÉñ}ŸWóBÍ_ú·EÝÑXn:~£„hÕ«r�çÙqõ*õ*¥ÌÒ¨ã:d�…ÁØŽ¢ÔÆ|ìvCä“eÕæ[Ô�êœêx$ Ìm¿û-®/]CE òÀ¥àñš6!ÄX @å8Õ"’ ¤äsâH%ÑÒ›êw^Ù¯ÏdmÅ÷%Üó£…­º±¼¹4š.FWǸ!.ˆ1ˆ‘y‚yBÖ°ÿ®;ä. ¾ªË¥ÌpâÄ!î> |Jså´þi}ŠÊDk¼ýsÆJƒ)ŽV#"Ò“½*i›uªd½S™E¼pR™ŸvaE­Ê�’Ì,þ¸C_óÍÆ»À*›n¢¬XO¾}Ï-fQ¯ <¿K‘%1˜�Ýû¼*Ä-w\âjâj�æ’Õ¸FÓ°Ðfc2ñ€Õž™\ˆÿËÐæþ‹ÕZÏÛž·q¨CZ& ×¾yBbåú21$ �•µlº!Ý­ÀkñvQ¾1Hà·2å,2è{Åpžç=¹1¿ ¹sˆÚ¨ÄÐÔ*(äJZkc9ìô| OžèÑûÚÍ ÀqÏpÏ„v‡v?p¥'÷îƒ<2ÁÇVçE÷âÖ‹[¶S3}3}#‘N�’+ÑXÁ;ÅÙôÄÔYùEÍ"TyâôĆs4L§J×;eš©» ·_þb–„®…ºïrß'I|w(4ü+‡/ž¾D>|î}ú<€mŒ·@M5‹õ!¦·š�w¨(®í_HqõsõsQ†°¸àúéŠõT #Ÿ¥ó ð[ëø.H¤ã²×1wªÁÚžÚž`2æ%�L!? H‰WÉÃÄ€m$ðÄÀ—…©'€¦¦Û~1ZÈÇZ&•"B¼X†Æu/1eÛç|ä@�°ð�ñ ×oìBìh z€z@l/k�·œ¿¿B Ѭ4žQ¡éÇwÒÐx®­°­P6�H”HT(ØRØRø\ˆ+¼SCÕ¨&��kÈÊn…üõy¨Í:U¶Þ©mZ×÷ÀE¡PRX/ÞT]â™ö$Ãwk;  ­…³ÈrQÅgX­ùÐ*YÌ|u>`Y�/&$áÃ|2�±þ®ðâðbkê{ê¸*2°º)0/œ¼œxò;ÝV4“ý‰‹]�]�ÎOÈ¢ ä¬}¾Ä{zä Æë—À[èT˜L¡Z©ê§ÜÌB4ÝÍŽÖ´_ xg6‘ñ©üÎær‰Å°c¨ ü»ûöÅ– rçûuЍDk“÷|Ô�±ˆu^†KëöëÂÚw•Çè4êš­;¾on6À°ÊõŸÏ”ðe‰'¥;¦�˜¥_ï±.\Ð'äî‚·�·÷G9®ñ ñ Úªø>\ÝÕX—µ0b¦MÕ�!%FލÃm}t,ÞñÞñǹ /–!ýÜ÷ 2>ØuæÀ¿yE#u3¹ aíxhKÒ8!¬æòëZÆv¬„Ü$Í«½•i¬”T·ò.;#¨Xí™pÑö"Εu<$x›H¾7Zލˆ¨¨VµVµÓN‡|@òEßãGp V Väî=å=å*—‹PE¨ô^jJx§DOÏ’¸ö�¾x×»ž¶,º±S§j·:ÕÙNÁ Ç©CŒ%Uð‘9÷”SKÑI|&æÌvÀÁ(Šüýy|Ǫõ9–CzÍÀ¯ ÚXn¬2-„ô�ÕXfÿÖáÇÕçÜçlSi‰«*ë·†£~, ö0¯Âáîh¢LOnÀhÀX¿y?ARšØ@¼Bk1ξÔb�¬Wz(B �-•Oˆ…Î$BjÎzø¦Þ¨ùHs8³ÿ—U?®¥ñÜ’K\4ôƒ:>ç¶÷ñ2›¼ÿ�ÿP¼3ÝHœ3�3uužäŒ�;ÄÞ_lÈŸnp¼^¼^—©Þº¼u‘5ÿPô¡Èb�“)¼SÒS}·ngÞ¶ÎT†°i.6ìÔ©º­NMÊ:Âé¬ÛaY©P<Ÿ‹ìŠ·_Áw ¶Ý° ¯³‰&zƒ�QÉ« �ŸVðÆ�â±æSß$2ûˆ‡Èñj0†ai`1¼8ú×þt¬¹ƒ“RTl@ϯAˆyòqΛÈQVUUƒ7µ�gå�Ø,[#ˆ{{:tÊfÞàsYr$dO�N¬%¨\‘WŸcBî·ýJÈ™ë-é•S‡ß-¹ÜqŒ�þ®5sé8¡ÿøcÔ Yå‡. ]ôyd¹¢'Ð'ÐסաE3�|Í|òñ=¾ü�¶Dp  ®¸¯¸«j²£ÙÑ9f_"à�*wsñÏRw4~ìQ%FËW°S§ê·:•æØÑ'¢)Ÿ‰ux£Y‹èf:g|4¾~�»rÀÁñ4–º°ø~Ç~™lÍbR€žRìXŽÒM „Èú6Z9¶á¢zEõªð³ä)\ª6X|×0ÚÉ*žß϶µBl‹…O <¹}êüÖ��Då/H(ÿg'ˆÔí9 ! ñð6wï&!ºž@’uÚQc®±>w¡ËŽ�a.…¡TF¥ ôË;©¦”™Ý?úS®mレÁIØIX*G]ZIÎÀÂÀ‚T�T͆Cé¢G5¤‡ßÛ–¥i8ó׿¯Kíìbíb]š""ž¦-†wÊÁ‡9Ìó¢¯×q�š�¬v§N5luʇÕSnªˆÄ‹7¡hVb±Ï—ÐáÔÃî/;€QY�íwøºFoÜ8[? ¿räE± ]GhAîu$ÄÛ<q­°¯°»1:?Àå¶�´Žaø¾Yøš`A9.ª$:võ6j5éÓ‰ ‡ÜZîñ€„ø;Í`„hS`ÌwrŒ�Ø" }“H¸Ç2ÙöR&瀩ç‹]A'*——“ 'ä²±­·| ün ÉrVàY–]–]W¯’p| gTdT”B�B}^•r_¸,„¤Ÿˆý+XÿãĤ«›<ž¡—¡Ì €éÔÜ?g^ããÅô©h”E™ƒdH�¿%¶ë”®¥½3x=Ã?]W'XÕ¨eR%+`I£Öb1dJå>Ÿ0?þ7±4íâ¡NËýHFµûÄ“q´¯Òœ®öJó±À÷Μ[Ú,hªöv+zœL-rKg©š„$;QùùØÛ3-Tj\d�Ý3rÈ™Èãäµðsð{žµ”@¬Œ£¾sù •ÿ�.øó#õ0’¸ì„ä§ÈO%–Ó ’wz~·žŸß£MUpþßÒí°êÉ;2¼ÖèF‹ð�ß`¥d\“Ôoñ¥íóJŒ� E„ßn-Ã2Œ¿ëHË{þD@«Ÿ÷=®+ôWè駬nàº÷ Ë) c#mÎeÔ΃¼×l[J*–�ðö6‚Ô‚DÙÆ<‡h̶bŒÒç€ü6Š“„0ÚÁZ6_ Q.KW×ß¿Z$„JïºAç×”lî)ê†ÑEµ©))G¶÷L¾IL¡$ž8g/ÇàÍà�y"ó+)ji9"ˆÏ¯‡Ò®*³*󌻊ŒŠŒÐ*X¸¨ò% Þ©RÊ ¯4ṟܕš÷­=vêTÓV§‚š à2OžÅZ;É×,ãn‡/È€Fàj_ÐÍùÊøJ¥z@ Ó]¾Ÿx?ŒEHq��#ek'æ@\“J“J%žù¸öÄJáÆ8®ü=àg¨€¼BÔNŸ­ýãsÑçâ¤ÄaRlCŠ€ð.IÉb("�o€qjùMB 1ÒƒÁRiDf�²Kqö BD¥.1y®åÞàénðÇ<ã¤ÙÈAt¸áö$¾öçIEHEd?H`x ÷nþÝøU�}0E˜"Š9g8g¾ TáÝã,=æwä7ï¥{ODj.“öíÔ©æ­Ni+ÅxÀ©\~:‰•YÓÖËÐí·üÓ²«®ødÞ¸^¼§ßI4«?pK’¯°O¢IÇêÿƒw‰vÁ'üÀH¿® ·.w:Gæa\§ù°žicœ_1Lä7CB!)BÇ&WC&öjìÓØw–âky4e¶¡=ôþ†è>à¬ÐÙbÑCJ°¼;ÚØ“ áadöòïØL&­™d%ð¬•Û`5Í7'4J]äUÜÆ ·íE‘Jäé¶è¶øI©4†Â>,ÜkÓk£{1!Û|rN_½KÅ8E*E*õ¶¤‡I öWiWi¿ÞÔà‚wªD÷—óŸ\Gx´7;WôvêTËV§ìk^Ãýla=†ÅrL' ýÆbõ‹D|âšä]€è(…rÃw­U|êµÙÎÇëéBs –7Ùp$!’‚ÚýuÃæ®®]'–û¦­på•bUˆ`X´Ì~N æ·ígLRu‚¨˜Ñè觯½v(H硊ÿÐ œ•L«ÑU„¼&êG¾ý^ ‡4òÕ!ñL'ä®§~©Ý§×ÖôFý^�zhC7¨îO m¯�…×_WDW$×ÃËQÔ®�·�w¦x¦xêgÈ>Ó!Š0¸šéši¿›¼e¼eW;H(H(æÇç9á�ê!Êå0“¨Ê¯£/êõñ±Ü©S­[�²æz 7XÉŠ5ãðå‰üQw¼ë^·Ü‰ÎLÊäÅjÆCœgðåmHQñ› tOƒE-Vaz›$!ÓÙ:€Sœó:.‡ë×Ãîèá²æÀ’ÏÀÐWâî5÷ZCÂòC^PqÕM'O'ë/A®EADW ’d“*£O�Æp`®/B‡�õg@3ŸSc„D¾yU×+Tì(!¿�r‹ÔÓë”ƽ@þJö²­G£Eöm�¤Kª—ª—ʾsè®ã7¸¤ü¤ü±ø±x k=£†½�p9|Nc½ïàö§ìO¡ˆª®Ö¯šµ�µE:ä:ÃgðPs2J¨"ko63žŸ—KhwšÁƒÿÍÑ]ÝVÏæÍÆñ昭y—qõÍ3Ù&D1|íÝDõè+ê©^«ÿùÎ] ì ž4ƒ'³Í žÄ“µ®îŽŠ×îWÐÕaáÆ;¾¢·º~±zÁn°Øz‹»2;z³#1ák >9Ú»Ú@[§ÑV|vЦÜ(m@3„©k¯†`!žw2Ù�uǸŽ5V ZÄu^«ì F%2` FñBâ÷ÆÕp´«.�F�F-uA.«@Ľ‰© õ®•ÙnÀÄ0àÇ¥ÙIÈMF òÔÀÉ,7È�[¡:Á# ô„´ÌO”µùŽQòøÝiuÕ²òÐB†mO3½az¾s¾S6÷8U˜"\ëjë*øbwNÔs1IR%‡/=Í>ŽR‘RQø1øh˜ÖÕÂÞÂ~ÜäýQx§ºo�_]1ôè=О“à+½S§^lujÙïÝ"\áš$–y z2Çg¶ 7N|‘|¿å5Cßó�ãû,âš ŽFÇit4–X�J$ ™¥­E�Ÿ qŠŠ=»*‘‚KïÕ_1&JÇ€üRÁé7ù¹_Ä'Î*$*$J»C!÷ô9¬ '©7f0œù�¥DÀ›åLtEzEPRtéHæ­¥!½Ér„ä÷«ž1±©EÔ­It\9|Þ‰Ïdß1‹í}墵£ýHûñºMqŒܺܺ\ÂZÂZM¹oèÅÛ�€½øZGÆáø­ø­f(g)g£¬Áý¥ ÉóðN ]@(^,ÛÈ�‘`êe�÷Û©Sm[�b»FÎ÷€•ŽeÃtÜÖ¹ºìS(>SËãÍÀ…–ËHYÕÏøØóQŠÍ€}; ^¡2†ÅÂÝÕCÈÊ»§�ã´v\S¦S¦Ó‡N_Çű‚½Ž±g"pøÆ¾j ‰›zàÜÖy:ò´q¤@ bCr)âÿñz-‘2P^dh¸²ˆüq‡fÿCÂÈP~…§YƒufÉYÄàå¨Ó§Þ°s&ê$ÆÓdÚ1€ñ“1ÛÄeˆz:ÔŒè\„SRò5ð5xìõí›a»‹�‘t- nàÌÀ-ɤú¤ú–y–y»�ñxw-D£Fh¥f‚rÎù%7 uìÔ©v0.\úN—ªD kF’^�+6W4ËÊzdVªš 4ÂW‡¬ä®=N. Gayò”"§o–�y)LãÐÐ1]»�‹NË£¾<ëðIöR?$UÛq°ð�¡9Ž9ŽÛû ôL£Zã2H(²y ãA7ð*XaÒ%䥰§çÒý�Lí²#Fí�G ‘õ±Ë ÷Q@¦üv+–ˆ¥ßïÏçáƒØž`[L~L¾ß`fþ’�(Í(MZZ…¿âm” ­#øôߦzÀ!òùTëß¹¿s³Ÿ®ê¬ê$o䥯t*‚êÔ¯qµDÆ›¤¥ž!éRd‰ó7všÁƒÎ;›ZgÌ"óäí‚è½ÃMú“VòütÿÊY¸gqƛ붙§iFмÊâïèõ:û£m„rؘ„è¾E31ýŬ»aûl7ûÿ™}ÑDäô¶ s׋RV¿Ÿ9È[R¸·ÿU#e‰Ó'#êØ“ïfÿÚÙ<Ý[›ú…Ä£™HÕèü´}>íêJ¼JÛþ‡¥žéù¨{ÎôV?#l%w³Ý d‹.Ýh †õ·B{k9škCž²[ÿ¡�${S!ÓúšlyvB‰ýPÉäõÝl7ûïȪ´ªÄ¸°¶ž#Ñ 2®û5îÊ]ÃþnET™�t?§»¶6÷O�¡B/&§Ýì_;³ó£\4ý7öî<žÊoß8 B(Ñ@” !óJ…v($e(C2…J¦�ÌCf2…È&%2„2ËP¦ÌÔ¦"C¦ë÷üöÝw?ÏvüqÏ=¯{îËóþïó÷gÿ±Öþ®µ®ì¯WœÅ Òž0 ñ®âTä½X§9"¾3OP,æäTS2oßz¶žý§fº²Â×õtÂŽ›Jr‰o9ZQ‹y7>ê]ÜkÇ;`Š+ã}yJ¨Ì„éûz¶žýodc\îòú»ªÑ哨g“ƒ¯TyþÕo­gÿ²×Tm¤ÓÃÏÚn:ßI›6ŸÐ ßÛÅx›§Úd$�˜ËjüvsâÙ–µöv?€ÿ5;2XáR&M› TOç�wÛQ[!ÝŠmØäËÝä£)ÏB²°6Òhü@#Óáég rHqI:I Ìì}wŒ–Ëy—ñ-±¡'Vx-\е|›•ÿþXw–Œ°˜ý1ß2¶elÜ’‰…ôÉf¶Až|r½‹·‘¨b<6Þ %š �Ýõ'Y*R†uNxY¹¤OJ/¹ï†ÈCb#ä=#©7º™9k„* ¬îês™�›�ÛÜ•W_õ®ÂQR–‹–‹JVŒŸÛ¢´i‹†É \¸¸Wèþ°ýaÅÏÏžùÒ!òÞ)·à×­íî gU¿ Ø#fÖêTÍJ§R†�'ÂI%¿øHЌʭwÓ’VCÚ¿µuÀ_ta£Ž“BÊt¥ª,bT~OÒ«Üdb=�I J�|´Ñ+§3.0.˜T¿ÍÓCPøo²ýò/äãë+”UÝîÚiÏfÏÆ™ ±)„,÷RiC„öVQãq+”TÀ^w=iRŠn"¾_ÆÆCFt‹­Û;H~•¹YÐIÞšësc‡~ùo]Âے«kå`fƸ`\ôïO£éÇà„ =ò›ñ›âA�ð…¸°#å$v•À 8 8‰Ÿ@ ÍßZ-X-|¯9sÞ©�ì¶æ³Ç]Õcút/ú|°\«Sµ+�Ê£ÈU„óá ÿ`È äuÇØVok²"uOuOÊÈ5 Ècqå9ȶüd¼KÎ@0–0ÒEÊÓ?€Äô l$`|$±iðövR µí?ˆÛi�;6áˆ3MÄ56¤9ýذ:å"þÂÐòÐr!ra)ƒÓp6ØŒñÆx×n¥3�8]Az÷×Ǭ̬¼`e¨h¨Xˆ‘­“­ã;&àï”ö)…'Ü.}èS+º,ÿðõZ�ª[éÔÝ‘[Up_ú1Ú•¶›æ­¤âË«ï#IÚ¸\–=«_<d‰G¢{èü<¯VÄU±tþÜ–JJ¼#õ ÐâFFELaVav�ɦ»Äö*´þ—“Ó€ÿõv=ÈrG CÞ.çV�­=<'ÉÓ tÂ3úƽˆ|Rœ1@o‰bÑ &¤„EfæÂ(O)=_éw$dš*3 ܳê æbâL”Z]Ã=îÁlt6š!@¼ƒþ \ù\ùŽ Ç:÷ê½Ý8äŠ<’Þ츞ž‰C“&?,wteuem�¸Tï”c„e9?•{zÁìÛ2<ï×êTýJ§²{à~ÐzìºZÙø‚.ml-Òç7ËÑ€�³óIGޱf¤épð �­ë‘ìÒÎ “Ü�‹¨ E‘J×`¦p‘#æ1é1ÉI9ÇF,ì(j½œ‘ P�'áó¦ÌInÝÓº§ä+dc;ä*æg2$À7? �Æ8w0ò0"%8  K¾8h éå³:¾x>â)ÜÛzt O±Nòäû¥^‰VUN �ðX�¾ÂáâZëZëPV*¿O-pe¢e¢6é6éll;T[ŽB&ú‘ Nm¼÷*ïUždèãc�.8ØÈÝÓ˜Ÿ‰4:]ºŒBGÊ(ˆ”l±+*ª_k&~ŽŠSõ&M;÷Oþ,µ^….kSTëî? oY YÅ:+Ï_’i`üç3‘¢«ÌD>•»k ±8ã(<¨F^]–·°V×VºÎuýº‚õ6^‚¬¬�3#Û¬zf‘„~,³C ÓÏöFŠ»bkô+”†ËÎB|òÙ–ûHÙôkÿ" tªÁŠ˜ûc÷Ç:}ç‰Ý²# ¼)ðÙ Õ ”17PC<9;�.,Nóeóe_s‚0í�œ°+L†´ÏG|Æ> ìû1<í!åF'�ÝËŸyبªbhrÙ¶Ÿ”íò�Œdµ­¢•ßIų¢…w¼ñ 1ûIaÛŠ…0í±wÂótX­y IRZÜ�£§Ç2õ!¶Ûgg(¶:�âSÎ|—¬?dãoþø“ ¯œ1ý¾í²»V—rýåo Œ&‚émƸ”ž” ‡’RòrƒHÆ ËϸÂÝÁÝÁÉÿâûÅwG§Ñ«ÑkÛÉÑNÄÛ‹¥ É–W>ÍëFYéWi ¬Õ©¦•NÙë{FÃ)û8]$È�«ŒPˆÏFº;úƸ8\¦êyD1ÉRëu°Û<.¸Ò„úoÝ m')6ñàÜ”úî"nÛ>bööç¦,žS1&ð7ÃÃ)m–$ÒôÙ!¯_\›Ž×yrèÉ¡»ÍûtÈE^ÿhHò.EK¼¾f€ó!ðQzw );��±œmû( mU:ô•zÈSÀÁ# ¢Ìßj ؇Ÿ›\àòç™Ï´‘[]«Ïi óyóy¿‰ãÑ:½pa¨0T¬s¬sÒ‹¥¹ 3�œoHB÷jÞÀ)Œ(ŒŒ_¬j®jNgëjÛ.òJx§.´â†Ä“¼±âʪììkuªœÑcÓ¸×5ÄíF`’yH¶rÌ')™‹„˜]é5¾lÚç/ˆXR@ ,²›„Éd™Aæáš)¤˜R©žtiɺˆÅ¼‰yãîèæ” Ø‚`52G ö‚;-:í÷šhMtÊ$*"oüËÂî�;ˆ×n|»Ø,:d“âWTóÎÈæCÔ䮡's±r¤PìpuÙ³¤jöÝ5®ëåÞÂþ—Øòj:ôêrß=ÜÏx“ñ¦Î/Ú«îúp©/R;S9SùíjÐN€˜• Å‘ì„Ûû‡÷~¯ø˜øXï±%±%Ú¬1ðNyñ�êq(_ÏxNÇÔ¹s÷ ÝZ�ú¸Ò))Í —áDx8( ¾U\õòÒ.©ŒBº’½¶ôjž› n“FòØ©ÉðFŒÑnŽ_oLK.Ä“ÂmW* àŽ°…§§}�M[&ÖaG øÏJ[P‹xdçn¬iš–6–6FiAÒAÚ—¾†tUâñNÀ¦}bXR0û•¡Ë ãç!a8 ›¿Â”))Q~ SJY¾;‰©?J_~~_óRØôêòsuß¾jd[<ôî±ücùٺٺ¢íI 7 J”H­h%¸=b{ÄŽˆðròr’ïc®c®ë–«íÅwªz Ô©ÒÚ©òÆŒÕ8»hÃY2Ç 3| ³œí~Ð{Õá8_óÄÀ—ºÙŸ¯‡6d=[ÏþS3§¨”΃g/œa´¤¤zôrÀíŸÉÎÊmDYà±+Ã&·E…ñCÞÜÄ _ë¿:KçJà_⋦è3=>ž‰=d^üYN¾6®ëÿæ÷þ:õ “ºþÜæêµÖF-+k#>.¸Ï¸Qq‚{q‡DP•Ò§m�Þ�Ó²"7?¸v‡RÏ Éæ×¥N`NFq3�ÑÌF�:}Ÿ–™zQÀÏ!M¬Ú¨ÚˆÛäNìòC‚ÎOx/4öÚ2ö@„6 Oë(Ù'©©êŸ€øÓC>(ªÒ@^¹Óðâ�dŽÚJ”ó¤H¦,Õ¿)¼Ñ� Æ>?¼¹I.þ„¶}Ëзã!ÄZ›�.¢þâ¶:ª]‚TT ŠQ"êp¯R^¥´`Z0ÏJuÌ!–ÌHÓ—Éùà¦r¦r2*–—–—Tv4ìxòìÞ)ÓX]³¨*KEëW×|·u¥Shö�Ipù÷É«ò6JÇvŠÄ©7t"ÑÞ¬Ë0‘yÁG•î’!Õ¾9´™k,BÅã =eHyÃÚ2 ÌâPôÄ:Ê;Ê'Ä9Z‰i�˜â¡ÎÚFýE-ñoS¢•�ÂE¹…ÐÅèâ–ȉ9ˆˆmÐ;ݵÃu@À‹þ6EJçV æ¡èݽ�QFÓýúIR¢XêÌC=7}šISû^)Ü7a’öÖ·zunÃ489œÜÆ­uLõCp•þ•þ¦¦î} ¾ðÒ€ôÞÁã=œo’oÒ¢Ž˜ãŠÖÐ=ãƒ;à�2¶¼ÀW²¤üPµéåŒçÜšû‚m+� � ‡’˜Àè©Ìx,—�HAÊÍáötø_g1¹”,"%¾Êäºó¾`QÖâhÇiy4)‹‰÷È�š±Nb½m½mf,5dÄÄ' gðÜο¸{RÅ ™?ßç(¿ßüœ©ÿþ R2 IÍxÌÔ^vÇSPØOÜ–ã¤D(ûD÷Wï>¹Y9yyo� )†6\.¨PˆÚ�¸™YÈ~ôêg‹Jnë^]~fò’ð=á{� ´Ü4àìòíò C Ci°®_sƒ I:Hû¨ugà¾ö|í9Ý«å§åw†ítÚé´ü ² ðNQì,�ØMž’jZ¸�`9Œ{)b¦£•ŸÔN0L0¼!ù! IüI1/ÂkhL~¬*Á×Ha�,N4-D@ry7Ȳ*¿;BÊT«QómÆ’›×%Qî%±gŸTq¿uZݦœG—r|r|’R2’$OÁy&z&ŽVŒVØq´6‰C4l�Rž.bᜑ‘î—î¿»Ój§Õ�éû¡ð™5œ[.¬“…ǃ‡�™h޵f àw½vó¶qÙx.Ýàg(4sP ã-lòÒMœì6´t[ˆE‘m7øç3«ÌlýÂC«êáMI>2cmôÒ½V×?­t=©!ƒ ާµ…ŸàËÈ�iʺhq¤ƒús�ܺgáAòˆK€VÌ+- u§i~Ààé¶ãz lK¤ Žü"≽ ~Ç ÙƒØ;‚ ›x�EËzÀ¡}aÊ�FTsr€OêHdhd¨–äûélÊÏ4@h( �vƒ‘J®?.�˜X|õõ)®q}çú.‡Âe ¹·¬Õ¡hd²ÃY¶¨R3TÆ01Ï´€À߯ ”Y â5iV»ˆ™¶0Ú·m¶2{IÁ=ùDÐʱ ÷Ø6kùC² ¿ –Å Ürðr0Ôó‡´ºR�*¤3hÞ¯p�†�†ídŽrŽrÚÖaÖakç«ià�²"‘—‰µ$ý3ù:æþÞm/nlÖ©ÎõNùf2©Â¥‡ûâ�«°>5X^,@:¨bÐ |³¤Åz1}�t ý¨¹ÀÆLÄÒˆãØÝt™KëCOºµ¿ÝDßDW©×¥ò4À÷Ĺ®Í¡%$A”ÌùSH°ô±¡ØÐ=.„–rñ2ÕqœµsOk¹ØÃ�úÏ$ºŸ~Ê911×ÅB Ó 2î&F�J™œž“ÀÀ6>†& c4{Œù1D»�4›ûµq1Q—GÏ04©ž8t'j&Œ2`)2²kcµoéuÀ °ˆ*$÷á¼ê¼êHHŸ >’À<ƒøë ŽÑ?‚ãæ–ÓS S ã»®?¤ɳùÏÙ�ê”Fܹ,!›2™¸oVS2O7;SŸ¢¨‚ÿ ¥]IÜ•m{A„GÁæn^_æVö?Ÿ%ßk,ʧ¸®Á¯Tpˆ«c×ñtû:©%«é Ò±èO1Úì«W­¶²¿ eåj«Cç%+]=|å@e³¹ø%;«Æ±pw…±\3¦ ¯†Ú>þ­l+û§eoâ;¸¾ëý쑹—ñSð~»+˜¬ðc,lÒØ°9‘'Éí®&òmá×ùÐ[Ùÿï,FxÅ*c`,þêC½ÊEµ†o}?éu”xg„”ƒ¯µf+¯ä®øÉ_ɶÝÊþý²{Þ2‚s_­ç¤"mj4K†VMÓÛ5¤²Ge.?º'rU>nN––Ÿ‘ïùV¶•ýÓ2>«„/BíUßDãbž×ã=6lzÅ_ÖÝåJ@D¨þhÅ£®�úÄd‡¥Sˆ},·b§Ž{Ã�%|X§ù™ÍfýžõYÿC�@œäR�CFš!5ÎÓ …€ó‘8л–Q£cì—$bZ �šww&•› ªn3»\McˆI5+§¥™+Vn=¨à[>šÐÞ{í¾¥ûÆÞ×% 8 8+™0u]6‡›0ÿ ¤¢¤¢FPÍW:ߊô†ï œ;‹; ÿ³QÕQÕA>'§*.¡^x§-z~zU7]îVðsW=—¼Y§z×;¥ 6Ç@Ëè�'3„55û©¸Æ(¸q‡Ñl?ƒ íRÑ2à-áD P™)Â;›¦õ�®dÕ€úñk B(”‰3nÛ:·F<Ö$¥ýÒF€6¯Z.„Œ[qÛ£�É~ƒ~ƒäa�¾�Ü-!�3U,ÎPáÐ1¿©^÷-pµnzLDBnhávî1¹1‘ºjÆgÄ©Âj2¥�ì"TÓ×*N{lÌ?E°OÊTÊt¥»Þ�Wî°ðaa4�Åöî²¥„l/EúÔæR W»î³R˜Rk¦Ó[óÃcq?ÐKú«Œ4{üi„ÍѵƒŸ7ëTßz§¤×*ÏÂuÏ_ôÀ3¬èÌm¬pYEê Yú<`[ë¢î‘E¾ÿ{1À•®¬Cö@W•±=ž~­J1eÍ®q@;õ­zBå4å4¾c4„nÆâáßx²ŸÓR>íZÝ é•x¬9@Æv6Q-Q ·€ÀNBýsp;dtßiœiK`éàúª÷:1]ª€Ö\Q›˜Ä¡OxöÃQNb^’dùëò g–ÕþÌâüLBâu[m×1Ñ�©)p·»¥¸¥èé2ߦd€cf¾)pSàò½ržþ6ˆñ$2¿¼^¸|l>–{E×û¬Ì¬ÌÛl7„û¶í.U)M¯Ò;ëyuÈnÖ©þõN©´&ÄÂõ·]Ç+×®$-áì+Šd.ß\ ÜûØÜHÍ1jŽ´ïî�xÀnY‹ `9�ù‚—pù™;1ã}—¬%«uqÆsÆ{+_Ô'4&‚çn†Óâ¶b, §:!%Ž20RÏ¿�›u}.-ªÌ°7e�ã"½Ô8í]ÀZ0Úôg1WÔ�ËçΦa" Uì’C¯ü+‰þ uÊE“÷Oöùpîæƒ(ŒÝèŠáÆ$5*knxÞðüáY½+ŠNqMqÍÊÂÊ‚ýûîöeˆ{)’™Ü¾{p£§FO�ƸaÜ&ùJ\K\uWPð32n´:$—âÇW­%_XÑÍlvF¾ïx‡D©…w�÷öůŽ>zâË .¿„0¾ÚÁ‚³ ·ÆQ¹çŒHþë32è ÎÈx/’“ë‹0U7V 7-ÒžâÛ¬ëë]·ïPà†#­ÁÛ_2aíÑ8KYºéÒ£·¢I¨ ª$Z)‰Îò4�íý/ XÄ‹‡^©"'Æ?øZ@~Lœ•Ðë€×S¿þEÈ…e‡C•æ‘ „¿R±ƒÓ¼”Î;Jž_+_+Т7)èêš‚¨„?‰ó¸ÐË~ËjÃâD¡øâ ‚ûNðwfUŸ%Æ\$æ¶:‰Ê_L³EKnîMcVÛÝAºwc”ÁJ×/¾¹øæG’ü”×M8°�²¹±¹1Ì1ý*ƒ$$ƒTØP®wÐà A{Ì­C·•¤¤s¥sÙ~Á^‡wjðø­ŽŽ†o‹¥ËÌçm¦#Œ6ëÔàz§JT ŸÃùiÙâå·ë I%¿Q´™Frfß™(:\˜’ØÖŽt×pù<`Í)æ¼:?âŒ7ËrU”˜¾ +2 U{9…�~¡~¡!écBHñ)qfÞÓ�ú<†ô¿^¾x q”=m2mòk:Dåȶ §ýçç_p:¨€–j LˆÙ„˜q{`¾±Ø)¨R^õü…�\×-bÆ"tFÈèì0i©ûÒ9S4ý›ã'’o ›ÅÜ%%uAAp8ÎnµjµŠZšZz¾0»6ÄB]ŒT¼ù/¸pŽpŽ|lLaLá™/6/6ºÈÒðNÙÞ¶¡»ÛkÒl Gµ²?zÓûÕ†Ö;UùûëE8'Êw¼Ì/�©˜«�q~HY1~“€bê/5‘’žJ$ÝZ»TÀÚÌÞøj¢†—óA<œcúäóùìëRB·;n“ =BÈÀOËg)²\h÷¦…8?rÕà]�HH‡–kd½†d»±¢!óœrÊ8¤!mð§öîJb²h€ ßĈ܅˜r¦22Ó×ÃÑûé¸!g?Úä¾”�º½ iDIñ(}ß§rRõRõ¼kù•&pà÷ÚÂé…ÓØ[dÑvS�Ü5¤°Fáp¸™Ò™ÒªùÀòÀrCÖïõßë¯yË^‚wJQ#ÔR†VI´0ï¦ä>iÍMχ¯w*¨2�.ùà6¼Î™nÛ´é?+V"9MÙ˜z³¾3‘Z«ÔO¢/n�ÿí 6/î!'1U Û¨�£¨jCB;Bv„œüFMˆÜ Ï9Ç›CL,àJëeÄqP4¨´öeôeœ¦€ˆ¢!W%S!º‚âm8;¨ßÀÙ½½·ˆ™ºù7ºei–ç�Il©¾|¿ª+1>h#dÖ2OðdvÚ„iŠu«èçÜXý}ý=j=ê†_N•¡pàG¶p¶pc!_¯hˆp’'ò¢këÏlÔSŧŠeÛÌ·™3^nãƒwªe)}?}ÿs�‚zSåZÏWù›ujd½S¦’G áŠÕñòôÌ1º}Å)'ž"I•Ó9�}§õH¹¤‘&SD#€×ÖñÀéŽ7MxÊB·Çˆiq Nì)£$dOaOáôåBèÉ3<î9œvá€áSþ¤’T§3•LóòóË϶l��z�+OÈ-œÂ`z@�‹Â“œ,fÆÌ8á�‹}¯ªåHJ ·|Õ©–Ä•@R~wq?öù¤Jó9I…óqÍŒ0ì3ì;¬H!·û#\3e3å±™c3XKÊú…ˆ�RoBe:¦ Sö�ú-ã[Fñ>!=!½ç²ï>ã:µç?îÝh¾n—µÇÓH4e_òÝŽDôfgdà³…W[†ØÖÿ_§%,2ã—Žï\¶Þʶ²ÿ ™KTý÷ž^öˆê#‰]ÁqG”Ñe¯ã9œr«çE^‰¶©2\ùþ �¤(ë’µ•ý³²f¯ÃgéËItȆ-MåU#k3ÛXkž»_÷†ÔÔîÖÖoõ¬øÃ?—¿neÿ;ÙP›ì8ow\b« ¾$‰qžHKfùÝqw}î&~£r*†F-Ú^ªï[ÙV¶QvVéå·wÍz�2\¦ã«‰ÂÆéÃÑUY‘—ƒU÷6ÙR­ü® åRÞ?�¿•ý÷²"Ó Ž› þáA5|Þá•�*Ö“j‚Ïe?²&ùUºEb½×ÎÕ[l6gŒ®Ïu¿ÄàCâhðx4²n³ô‡ìëæ@jvÊ|?­êÈúY¨"é¡Í%�4•=ÞÀ¢ãM¼92WbªÃ&‚�ÖÃÛÅUñTñè¸/fÂ8â�hÆ9@> 41œ†Ø‘ÛçÔ�g8ù8ùh…B8!Id× Lj£8ä÷þ. âê�11O¸�mQâG µ;#´ Ð2¢Ä(¶¤®‰°?;*vJµÇ? ¡!Nþ½ÉÆšÞfDÙ lrÖòê<ŸÁ™è˜èÌõÌõXK{Š…÷@|£‘(ž‘2Á10<Ñ*l*lÒ–‰‰|jÉ©ï”aÓ)K…:)Õb©É¦÷Í�­wêå\ân¸~º¼V)†Æ±wßñTÿ}ÇýTF‘QV²22"#2JöÊ)#™©ŸIQRöÞ”•UI"{$Ù!3{eE¢Ü}Ÿû\ç:ßs\þ¸�û¾×Ýyþ÷þûõÇ9ßïû|>V¤F¤f°…3$Ý8ÈBC#e°}Ó°rû½ó=[»h´án’\$Ö‰üµ6ML²ø²øî„bN˜ª•о?F¡›dú œ¤u�‡X)_.W—ϵ³l°l”ÔA~žPj…G#t>@Zå—3ðJ8y»V—5@~Ûf=ý5hÆöFÕßµ'™qI}ôøÝA:_Òœ’]‡7zÊÞ0Wº°Ðqm�¿lË[Æ[æU�åm:$šš�+®\0äÝüæÈÆbc~ªO‡DÅGÅ'ÆlÇlêj¥`¥P3¢°†lÊ<='q0Lµ¯û÷f}ˆú™�ššüÝ”ÉðÒ&’ÃÝo¾h%T)üêo­ø©°©M¾6ÄÓn`s܈®e~ŒÃ£] ÉòÃ%ÍÞŸ¸ósÔ “B B Ú*û¦“�h‹1(¡Ökë@Í®¾èMžÝÛ8™ˆ \�¹ÓhC6‡ îÔ1¨Ðp0 ųP‹ù&qyÊ8Šj°¾ö…Ø ¶*Ï.ÿ:‹Ëí3¹ï¡ªA ‚¡1B[§MݳZ·wˆG/n.|.|! 'ðsÒnáÝÂtítí¾G&.ùA¦.ز4�ôºõº/ΤüLù)¤��cËx�Ù”¥Öß„Zæ† Ì/�„K”ïÔÔÔï¦ZŒ"¦�Ìö²–¡ÙÇû¸ù¥Ýœ¼Ù„-RÎÖøàsYÑÄXÛ<±F$ : Y›ÕXBËbiPÅ¥ú㋟O–W1¦öÆöÆÙp3]LÚ‰háÒ(ŠÎck@]*êoú6bÎÏûê²U™T™>õC¹|PÏ¡´`(–úC7Êç " ¦�ÄezØZ2,›¢„G¸Ô< òÝq©ÌL‘8WTjnöðHôTnÛŠý�ô`*¥íå¹]èhÜ߸ŸÛÕ%Ui(z(ÚËÌËìK^fáõPÜ[À.Ïu$¾V¾Öå6pLÕѪžüž|Æ^CȦVO*ש•Ï­ˆãŽ= ×™Ù©©éßMe‰×"i’Ï MK=k´IÞ]V �Í-oâ ðäX–•ŒŸà¶æµ J`bðJ/�~*¾�ÙÞJ�Ä9öÜ —œÇ$â#âóz€ø6¦GÑ^i¢Ü¥v+ÄJ@Òãj†JôÑѤÕЫHÙð«'”e³b‰_ا'=ÊÙ½¸¼/ÊŠâ)M$!«ûÏÕH°oÌÂÖƒ$„«˜(‰ŒÒV,”úH'yXÈ]·—ŸEáí`å`u¬øý | ¤ÆÔÆTB2B2³©ƒ}…ª�¢¶NÝ�|½|½&ŽëÓèÓ´}QXQX!XQUEî|4�-Ôñ06å?Ñœ˜r}q§�9ÆÝ‰YN‰„¢–ïD|Å÷”² ^:G»Ááår0Øé³—ýž`›}†[©ôîuÒçÕ{çÿõÎljmv>–�w#*àtdá^ã›:±Së3¿[ÿ9Ç6�”�[[‚6ƒçkµ)Ž7¤:ƒ­ÞuæðCIî]ŒA9¶"·La §|ŒP B;Ó1=…‹}‘l0úÚ±Ó± cA¹¦ÖS˜X&ÑäùPâöP/Ù™U�� InùASk^^ɈÂ"×±„¸W>¢HFºÂ@AÓ@'.ö"€ó¬äÅЋôÊ0Ÿl2\°¸–è[—JŸj¯7–yy”›CV¼{ŠÞ=/+Ë+Ëå-�s œFz@ü€ÿ þ“t<ßoÕÐGJlOó™#�ØýØýΨ{«{ó¤ŠœiðC6•0ÉŸ¸9ÿÖAF3\…áɱ�ššýÝ”bÔ‹z$ÉD=´¢·uj´µù¬NØŒ>(êŸÚÜkoÍn`‹™sÜVl€zÿ|ÃÁVëa/\*Mh×_žaê¦í¦M?zSx*Ú±o(²6D4ÅOât¨ÑM‘îd°};}»@=´F yÄ3B:Ýß•PŒÉ1@§„ í]Àá>ÎÚS�§B Gš^Z.®“Å ù�¥çJÞÄóhòY2ˆÜÑ~¿=ÃÔËÍZçµÎïå6 ÖšArvwv}4ú(‹�Ì¡;úb‡-¡%Ú‰œ›œ; Áâ€ÅwBÒ¯¤_£iÔ‘M=ùT5PtÄkî¶Ô‹�ÁfC$;55ö0 zI‘²ë§/£ðW5«Åz°Ë¾ÆÆí;ê ,·Þ~mÚ+ò›æ©‚kÀ0ü&Ü@öä.Z°{ø8.Ó¼^å€ôi L••³¼’\˜DfÐBúQÌ÷�0õ•)²�“¹Åj£À……Õ…UOs¨Ø":Ѭ™/§íEùù ØŒÞ=%Ã¥µ(IŽ+??‰ñ±=Ñ{v ™Ażh·¥Û‹ ¯�]NêÆ¸íÓMGqmäDʨ¶BnÅŽ¬o (eú炴ͱ¸¨© fP ŠÙ´*N¨½ïý¶“éb2ÃöÚÎr4Í Ì äïúp÷Õ ÒgëÏÖö]ö]Ò<’“‡é m%l”78‹�Ø�Ø�”'ÆíÇíKšðð·HþâE6EûÓUqNÚ_L�Z€Íüüž±�šZøÝÔR¼ÌQ¤ÃL!¶hf/I)¨r* %c«h Ë^Ä¿”¢LƆMü»ÎS È6Ü p]É6FÑØó?‰Ò×Â/&%|%|×4µ@LÎÿôÑÝ�âºzdV» õšwLý:®þ.­3­Óˆ"~ɸz´Có«6”(lÀs<€ÿŒøk\‚.± ’…o¡©³ø#AÊ”¸¤„Ë%5ú3Zx´kêÈ(H¹î}«â\ùöKߎëEéEy[ �s'#™’›’ûiúiRv)=‚š¹°uºW#1R2RFF>�|.ñKVVIZWÙTÜÄõÏ�ë½OÓcøw•ZíÔÔâï¦rõ¨! ¹XM£ÉžÚÇšà¹Á¼Á†í¬ +p=£æb]V[5¶„ ÖS@“¨a EâUZlÀþ�¸Ütç! f0¥g¦gV?ÛÓ�©£-u¥n&‚8]ÁqâÛ%ÎÕJ˜#$ùDò êÆ÷[—!m�Pˆ¢]ï4Jüà�@«@æ‚Ëóà2/ÙÙÂiH€ZÚMhOt1.¢ûN•öïz·? ?‰¥i0ľáæ,á¿øÈÊO�…ØCyë*óUH¤¤ý”ý” ,螺A'£°Ùr±W Í‹Î‹Š°S\§¸.Ï0»5»%ÜÙ¦€ljèÀÛÌ_©|!«Ó!3,mS;5µÞáïKjDÚß^¥�A0äÒáÉòh춈··¢Ç{BÅK—Öû°Ñ,&&•tRüÀé›%´+¢T[¸\•%Pf2`²Ž²Žr[:�ɶíôÅŒS ‚‚3JZ¤é¦Ì‹QºYu³ªPZ™€ÆC:F ‘ª ^”wÝ|¿7%C�„‹í4�´õŒÊí¤¼»¬í"·W.ëQ k æE¥4Ñ?ÏU¼ï9j±=�¾úœˆÞˆ^yÎzÿU¤êÚêZæ6æ¶§ê³: é¿°•k‹";;?ûŽª¸¾$¸$øQ’ ën¨2íÁÂÏ•þÆ»TæâG'ÌvjjùwS�ÕÑ#ùå±ÍÿHkß%E;+eql•ÂÁÀ>qé€ òê{±ÑáIkâ39ûMŽ4oçõd\Hç½®w»^Ædhx�ÖÓ 4~2z;@Ã3[ºÊ¦H¡è'\:\3\ów; }èaÚ ë3]@a˜ö?²¸ë©p-s³•rB¯³ »º)ãÒ{»Þz?6ae¨ÇY’i�±E­œt®Àöš['’V“VÏ>wˆûŠDÍA͑ȖȖUÇÛ’# =»� ¯ÿ�ÒÀù�ó™ºjºj£,`�‘ùkOr*O�ÿf!«1ÏXí¹ƒQwwÚ�ʼ,@Èõ&t¯ÿ%.Ó»‡ZZ䊃?º–ažB|ÉUÛë¶£íûøE#ŠÐ6ƒûš'rÿ¦~�ÿO;P‚è(A¸%°Í”ÉÇÑU¢äØK-—L¨oíÔúÊïÖ™*Íì�<¼D{ç™Ì¬ÆÿhÅ›ÏæCzà”½¹F=“Q6‘&AÀã@×À:Mt Íú�k .¢$£À¥w0å<Îyü*?£“0š¯.JÓ}O€&õ^<”4[x�²ËuŽgŽç¨ § ±|_º™$8¨£ô“ÒÁÀpZw5.ôÀ[NUuî+�Ï&ñ�®!O\,m$(ܯ'?»¿êhómå…ónmjÍí™2lX%Y%}’ûJ꣆”ü4ù©WˆWH‘ AñõD¨¯[×ê»ûH&1&1 ó4!4!k?¢5£5»²úß#›:©(;»à'ŸºJö׳z]E¡�šúö»)}O÷p¤cߎº£µÑþ”Ÿ0£(Š�Ö%0°aO¯£]¹‚­JVŸ òÑe4ÈëÜÐÖúïÆ%‹ž¬¡k¥óSFSFÓ°E…&_´di”‘u#a`¤ o *$ o%êüÖ0`6`Ë„[ɳA¡âK‰ÐÏ)ý\­h_ x~]]—FQ€ÆÙ 1¶zOwUHKK'Ëð‡,Ê%.´g9C «�Ùêÿ‹½;�¦rmü8nž‡HdžB†Œ‘"2%2ež Ùæ)T2k@¢° )*¡L‘ÌStT Šˆ2Oµÿ®sŸýßgß{[^voÌ0Š«Ì}Ô}ô3�¾gƒ#œŒ®ŒnŽRŽR¹Ò�Ý^ôs¶Çîr÷áØ÷³ïÏï`~ÈüpD<ýuúë2ŸðMµKÑuL R¥ÊgXå.‹ØlS ë›zò²KNýzé{ áx‘ÊèV9�S¸r3… �^›­t\«dûi€®«A€öâ"ãËŠÞ2>Ö¯Lû�hǯjØ r rT»y±Ù=Åà¦Eë+퓲|Ž…B†¤4�ϘܓšÍëžÈ™W´{ £ÛÝüÑÈ)€  _ÉŸˆzÀ #ÎKXR×ù>ñ¡†Ÿ±[Ž®T²{Hd ¯ʾL¾F½1ñè,±rÇrG?é”g—àÀë¦55¯YIžzÉ÷Çu?þ|.œ £ £."y>yþaz\f\f쳟µðMq÷[ñRUøÆMgmsÌÙlS‹ë› Ö¾~n×rcgŠdqÝB\`C(®œW“ƒÀs¤çE‡Ç­/q±ø3‡ÜõiÔ§$Œ�Ûteøˆ”Ë[—‰u¢°%½Kz·Ì�|Û'Œj´?I3L�aQ—'c;/Ÿ€Ìpî¦ô¦t�DG*æ„‹yÕÍ„€N{ð%&Ìã#¼„\é[š©†Äm{ª®È��Á‹~ñóýl…LlP‘sôþSå4Y?nlHw8Ï�Þ�~Iáj{¹?\§q§±ó€óÀjÕõe¶2ˆB:®ë*­p]â]âBímÈ6dÍB#4Ðl ùºò9Òt¿éŽØ“·æ\(×dJ®ð¿2Ãu=¦ž5ÐN�y¯¤qP:¡Ú/k·ÂíÏÕ»¦“pQ&5ñOœSç;b“ñnÕ^5œ}÷9{|‹4Él¢>»¡ýšVEâmžœr û¨íµŒ¤�Ê\̈cîmµ6©ll<<0^2L»È‘sñèWBûßn!ÅÙÑ$úLºzî =²èT %É Mè¹Ì¸šKS꣫(ªã}æþpñïÞrÍTÏXL¨è¯¾¹ÛøN·Hå’üoœ!…d#K}¤-·çšmßÛ‡Gmö7Î%2"¢ùÊY[ÓmEŒå}í¯³f3Ù<Á5d»H!?ùÖ‡zí®8‰> ÃóQ&¹Ã…‡<ʼn�ÑžŸ'�I3ã+ؾô~éõm.ÄÆŽÁr퉀ß"Ð;9‹j»+lÖÂzŸõ¾Í$Ä�Ò®Ÿ¥ ‘˜üî„6þ 9¨¤ñ[â> ø¿ÖL²´†tç�K]=¿S Ÿ¡–@‡®×kæ Ê ;ÒÞŽWï¾¼ëÕÆœw N N0Ö¨Kâ>ñîŸñÛí·»å}{V bsW¸óǸڒڒêIûRûÒ§ÄHb¤Bïçeø¦æBó‚­µed©‹ÃüUL7ÛÔòú¦†�å«Á½>«!‚¡NÞn6f軣n .Í&s€R <�Ÿ‘ÿ®ú>Ï`€ÓzF\]åŽÇPyŸÃRC�¶ð�÷°ñðPÖ|øˆík:†TZ@¥P–€~Î G½æzqóÄóÄÛ ÛÄ —’ );ï _z5y_¸„>¯ŒÆÇ‡°z¾Ä› ¡6q ²¯:bŠOËìd-)c2±õE5Æ�`eÿŶg§>96vmìš’zÈ3UY8e9e¹V²V²êvÕ@›)ˆJ ®ç.‰Ôp““qüA=A=û'e&e^¾mÅy¯UùÖ$ò,åÒùNßõ¬è m¶©•õMÙ6]‚k± ò¨ÜõE8\…áê< ½î­€L”‚»â;í!\òLì®ÀÁ{—éì1$F;G\ >w�!–@ìÚ¬W®|ZœÙ‚MÎãôÚr)èšXI‡ ‡›¥yQVîã½ã½ú¯ Ç¿@�Õà&^ ~7åc4C5Ày�ºð”3!àÎ� ?ßdˆX,‹¹Äk%|*û5º÷N)ð2§pñR2%¼ï’´Ü[Œ¾/*¯Sf60×Ù)à)à)\|¥Ã5‚¸ŒËêÛÅR¸†Ë —_‡î;ܧç\œPœð°p)ç\Ü… §cbOsz½ÐÝ�@múlëêú¦hÂ(�­+÷bˆ,xqÔ]*æ�Ã58ÙØ&¿tŽ–<Š+ìñxàxìN?Ð“íæ‹a÷‰AŸ½Ù½“—©R6±A±ÁP¤N-¶®÷6Òh ûÚÔsm-ˆåqãά#¡þÁEÁE=bp2 rx 2ÈÓÙ�¶JØ+Ó\O“ñ1¢‚)›Ew„CÒíŠCÉ žàãÍx0q¨ˆ¾Wæ˜E†™�½�1}‚š|c�k_yŠyŠ�-òþª§   ^×t˜'uI—bD‡«f¸ó\¤@¤@~8³³K¨ƒƒ��a|SWS#ö j×G†$ZEóÛl¶©µõM)8„ À™†ÅÃPårù�½×Ä÷`#nyûºjÀ�¢ôÑ9G›i\¤uÅ/Òë³›á¶S)_×ð—ë[^ª?ÀfjÊÉ|;ÛvŒoBhËÁ¦}örhéA¾¾ln®(w b bRl€D¾…<õdÞ ùQRvÍ+Sî¦>ù‹ ×Ëo 9á„(å¨-ïÁgàVNT�7ŸoËÐG)O¹èJëÍ�Å·ðUPTPDÎcç�;’}$» Y…ô쉿)nÇå¼ã¬>\ÂbÂbœ´,­,­glÎ@Î@;Y@(ül@�²Ût %M¾íùÒà=a�ÍΘÌÿ,l¨ö+¹“A³3úÎÑ_£ïÉÚ7é†I5åÔH–w¿õ. Jwyÿ–f€XµfÅ3æŸ÷£âž �ßàl€VÇ]Æ¡C+mé‡4úo¶õë[ß“&š W·‹¡ £RöðîŸ� ædE¸hu™�ðF–‘[FÊY¸Ú¼ƒ*•)¹ÀÓ˜Lw yÆ\M|sÄó€q¦7bØÜõÝõ…Ï +bÛz�ˆÑ<>Øijöbùt(æY¨›/ÅEŠ‹ùT�?ˆ)Šs+„äŽÎ7´üF ‹¸úò£ >¶ïúå*߈|Ïþ=ûî”nLJ”ŸFŽí ]xä‹Ô›Ê—úͽx5’6Ö¼ZΪc©cyOaçóîípyÆyƧ=N{Ôjs—Þâ…¤*áZXU׆3ÿnþÝꦎ�Ž ¢€¹€y¡X$ ¾)æGµž3Ô™ŸÛÚjÕSwÛlS?×7EôCÕ.vÎ�ƒc!þi(UÀ'£9\UŸZú€-“'“ºãpÑsØz":¢ý�\]  +}>ÄcŽ$GiÚ6úú„AútlŸÙ1ºÐøÌþ@B‹ß[Èá>‰TU{*"r_rßë»!Þ�@²{ˆ¿±ý]´�Ú@Æ`ÕF<¯zÀBRZX«r9Ú…œÏžå >7f£G KD”Ù˜Ã�–Œ–€]½ SX„X%áR f„S¤P¤¨©ñ\;°ÎR^†¾)ºjã0¢…Ûªê#ïœ9fÃ26Ûj}S‡r¾½ßÙ‚ÀHˆ}A­JvâR’).Ê]6·®érÃË£Œ¸öuˆßV›ÿ: ›Y()‰1j¡«ŠO‰7pÖ3Ò›Z³Z³�u(?¶HŒ¶,´4¥RYÀIW,¢üù.ÆZE£Z£Úäo-}–ôÑÓhŸ·N,÷ zY|æ4€¤WädáŒ�ø³”f&.ü‰iýÄqwÑgïO±‹:ž˜¡$-aY'sdcEBu´íÆíÆjl² _ᨠ¨ *U+UïŽüšÔùP�«FçËü}þìüYÁæìælÏ•¥ûK÷éZœlà› ›½Õ¾¼0ÕïÑ(c1½s³M‘Ý(ƒ¾sÿÓ›Ž2 ÖC»|ŸµãyÍrÎM3µ*àÁÀþY!Ö%\™ç¢Ræ Ÿhà�ä?_<¢=| Ÿ[$õ!@箽jØ2Þf¼-Ï[UÁò'†çG4)ŽN@ÉmšòÃe›ÇuÿaIRIR©þ�“ \�9ÑòPLE{´ˆÉÌÆ¹áS& L[uLíƒØ‰º™Z© ÜðIVG](<‡0×vŠ\¥žÕÊB5˜Õ”oÌO™½½Ë²Ëò¼vÙÏŽ}p�{÷¼É~“ýŠŸÛœé ÄWWïOç4Îq9(” åg²ód祻c¹á›Ò�xP¦Ñ¤ZKæ£`Pûšb³M¯oª&€©ÎVÛýFl¬`¬�@Œ2úßëŸäª~bÌ|ž$ŒãÊ8~ó%àu7í:`¼’”‰ádªŸ��ö ÝÉ£›�¢�b/ê�56²Œ'Bh|´6€^éØyŸ±=­$›Û¶¹msª‚�ñC�ÔÖˆ,È©)·b´:;€fp»–E�Ï4 P'2¥' Aˆ2w¥ÉSâC§YýÍP/ÕyKEqw�mÍ v>dÄÆ4úÔYØÕÙÕ× ò›žyÕx–xN-M-Y$°%;*CJ÷㢦v�‚“r•r ë5Ûn¶5q’ù$sµß�ÿWÕοïÜå9ØÄ‹jzßþÐKÄà‘ìÑÍΛÀwø·î5:Æep�bÕ*5pÝ{’Ÿ ½‘�ÛLîÍŽT¶÷Ó8ë‰çjT|büšklBh„öŸ6¢X�jùYËóŠÄ“ËG$öœ6 ÜV|°¬Ùâ`xP}¢á%Îòˆì “½I„Fh¿ªùóè’^‰ ±yË͇Öš�äã¼ù)?³Ýo2±.稂pîxžÅ€q7¡ý^mŠ)^ðÇ'}Ö�ß%JòMS+.�þAšPÊ9*NÆD>˨͢òœÜ?·‹Ð~¯f+š±j§<¼Ì•žÊð½ ™ú _²ubŸÈš»Êµo¯†¥Ô)øþ0L 4BûOÛëùãþæ¬Aæ*—WBN)§ËTï(gÞIÎNêæP–çg³5¯Ï¸–8W�Ðíwkk,5÷åhšh Ç14ŸgåSa0ʨ±`‰T(êû&ž$ÕpdÔQI�þwj\_ìÌBKíbþõ=»¥×h1Á¼ þ/²CûwÔ47÷›Ï"œzõ²6½?†„œˆˆÞÈA îeåãrŒVU[†ã?ÙpUï8µHªj›`O9ˆ«vHæ¯O yý"ÀbÓÍŠÁg‡8‡Ïª}€.0n¬@‹ÍAÊAªðêUGl¤`„°¡í¤žèø>AŠvu%—�]¡ ++ü?öî<šêýßã¸yŽmŠ¢-C$"e:Š*Ê�$’1•!!ó,ÇG¢ÌÉJ2”Œ!Qa›“Je Kæës¿g¯}ö÷ûõ³îZ÷®uîZíǯ¿ŸkYû»ÞÛ’õò#üŒ6DîßI¼‹•Àk5À¯î|Y€—ûþbJíuk{:šG&K¡"çŒq™ _£Â¢&£BÓýÏ6fͦÚÅÈÊȺæ2"UY7"7"Wu¬ê˜Ïþ±þÖ�“1Hu™çàR”R”pºv4v4}Ê/Ê^”5cKIáM¹~kT×h¯Xùâxž!j³¦È×›ú•‚™€{) ú‚ A®8É�‹c›ÕR~pc-0…}©{‡Þè’¯ô,Ó‡³ŸH¾{KP�9±�ßs“«@ä=¦Nb¹¹òÅÌÄ”böã-‹¹Ø^ýƒŸ!þ&4uÓí{Õ™Õ™¿þ‚¤�‚Dœ=¯ÁØh§ãVÚŽ€Tæš[Êë3ê 9ó^ƒ"óšÓ6'®®4ÛFõe«©”—í5üž¾ocÅŠ”c‚‚ ¼.³ØÂééé×è×Ô ‹ïv‚$Ä"µ–�¸Â%P'P[HËJËòœ ˆ ˆR}Û o O]¬¨¤Wæ<¡6âHNºYSëMU»0cáj9•ûds1ì{]f²–�\ Žî¶ÿå�Þ(.pIé{Pp7 ú,p…ãc3�á¸ßQ4¤ÄÆ€>;ˆÕ³Ö³>z…¹FL÷Ag)Þn›Ú€·â©$¯ˆ“ë"÷x›ù6ssÈuo퀬-d.ß™/_èÏú ÎïBSÕ H¶1¦ì(�œ3[äPš#CS�ÝXç½’({(w¢fÂÃÐcô±¦ºHÌÆp úîg3ÏfÛÊ^W½ײԲ$é ép5LnÂS¢Å€´70¤Î<Ñ<±Æ�߈ߨßÔ!Ç!;iÀo ûëJð"{»ß£í5ØUãC›5E¹ÞÔ%Å8ݬ vý÷š0Ï'ȱ‘º"C€³1s¦î3†�’H{��âöÀ !3—;= hž<ù3 p¶ì'v)ýRú.SñJb"� ôð^p^a\×Ì MÛn6N¾(ZŒWŽW:!=™¤×¡„ˆQ†ÝÆ[`ö™%aÁhâ{�'‚e±š�<õÊÅ¥’ *4 �6�O£ªÒ{Å=Þ’ö'·bÀŸÙ¿ÄØ—:IÿKÍ5ÀM%!hOÚC°ý�zæýÙË@èDà 1ŠІ„$vybŒd… x»ØÎ�×>‰A¢³¹5šŠ®‡wŠwŠ“kCn:A¨�“t!"ýÏñÞ´dR@¨êÄ[4̽—¿&fIÒÆ¤ñ]r\M䫟/ªš?s‰ËY•žž0ˆP>|$Îhc£ûXœ¥œ¥R­ö1”eÀÑÒÑÒyMzMÆkp“ü±�Aâ`á‚»eu˪õ¦ò9åsT00ìùõÜÞÔ�u¡h­}ïš ¥ú%«Íš¢YoJ¤7pŽ9Õ�Š€JØY‰Ž3+æ Ò/–2àãŠÌdðx†2RÀË�&€Û[F6 L‹ôö?¼>‹ŠR‰*`”wL VSÓ¢s‹ R¯õ¶ ¸ŸÖ+ÉÞÝs¼œëA…h•héÄ>B³³•Rìu/é`B ÈoójEÓ¨ˆ|•1� Å»1¶T䢱°0vw°­n,qw |@âzgüÇÁ�q}´ ¿—z/õ¥}ÛÛpTT&ßM¾·‡Ô8ÎAè~!:ŽVÂÑÇÐǤ‹c§±ÓÏ•jk%ü>GÛºyÞ‘Á‘û”¿ãŒx€ÎÐ|òfMÑ®7Uè&[ wĬ+�àç�ËBý–€N´ú+ζb$GÍMìpËH_ïq' ŽZ¡ËU¿N¼rcGãqëŠ ÀžÃ’JŒÿ1ÿãØ¥åbÇ4æàj}6ä eECvóV?l)ô2ûd6Ùúño¡LV�ÌŽ¡<è Mè9àX¸i4šcàa€XJ—DëÖ9Ӌݪúhvœú^xK�okùþ‰Å#…Ý7ëB�mÌ+M¬„äɵìkâ©®‰pRtRtBóBóØ-§ [ßB(‘Nnÿ³ΠʠŠñXÄ£ˆG‹-ÍŽÍŽm.R9ð¦DC‡‡_¹(–îæ±Qå.b߬)ºõ¦æX¦âà ‡M—B.Í1U³zQ"5ާW´C‚¹ž³DTùßê³5ø€»³œw X÷‰¢ÙbbŒEM'–œŸœß¶Rûž˜g3�Ë<ÒÏÓ¦€¢:»+dç÷{5¶–Ý\Š\Š˜BÞÙB’s‡Ú!�Õ®Íx-^À~;àW*øµRŸ+p”ƒnäÞ D˜ß¸.xOÜ4rªÊ�Ý÷ôfz¥?µ…³7Ü5HÙ¹º±‘ÀÔ*özöúpÞ”Y®;p *Y(Yàl<óñ‡y×· �ÿF*'9$9tðíVέœiÂ…Â…q?¯šà›*úûfi Q‡ãã5» ;7Ì+ãŸÏ›Ý,Á¿;p šÓ”qç:=é8ÊÚT¼0=Ùù{û½ý_l¼;�æhµj=Z>úÚ0þ÷ûx Ñ"exä|Û|€µtJÈ¥‘Ã*fa´««,º«:HÒ,þžaéL©^Õ<ð¦è*®‡Æ^=RA^Î y÷Sià燓lhöãRê c>U,º.N]<@{Ûz‹96qcûü$˜–ü–üÊ߯¯€“^•^eOcO›lñ“쑇øÐ#q“DÃéŽèŽdôdžņ}rQÞ¥¼+÷3âÿóÐ7ó%fñ¿%ÖAþCyx³¦Ö›ª2&ƒcò¥J$`ìäïø(ì®ôà’\×ý@a~Å'Õ7á4’‡�v ‹Sxô+—ñ¸«ñ’¡y+Ö XÍ' +/./.ä.ï%cD0S‰gíÊsÐ*v5„t¿ Þ–#]´F¶FF!aÔ‚ø¦7ÆCXJEƒð–:ì ¡)"�^1`Û3V.aá³ �°Õç)DcáQ%nË©µøýBÿ܇?v¶E)¬¶ÈlLGÀçϱ1ú¼¦æÐ$8% %�A‰A WOæN‚�Û‘¾\×[†3›^—ÁgÍg­ÇL.A.¡+ÖrÞTOj í¡Yïô®¥z’Ö¶ÍšÚ²ÞÔ.½-OàÒ8è4ædVׯDqÊþBÚÞÙÊø¦¶Þׯ݆D>¼–4„ݵ¤ãv8Ðd[r¢Iàþƒ°áG,Œ/Œ¯C˜¶‰éY †í|30á€a�x’vSÕžïw·´œr†ÜÿÛâT2#dÜé*=ôVè‹ÂÀƒ]÷Ï£™¾ P~ïpÈô‚X ÚE;ì�ÈF#có×�“¯�ÈÙ9*ÃÈ”ÜNÏC‘®»7Vâ\•Õ�Õ°oíô˜´*\”G”Ç>õ}ê%ÝÞ_X!SQH�§V‡ádoÈÞw¯ò¯òoz¬Í¯Í/å¬Qo*Õoú·�q½){íG¶p'Hƒ*½%Frß ÆX!‘D]5NpÈ[ŽîlBn·SæOÿˆbŽijì‘7âD#ÐÓ¹(b'ÈiNkN¯}=#E¬]…Àí ÞÝ作@Þ¥lwȶÞqºpŒ.O$OÄs+ää˜|q ä¶Å#Y<³VÀ”¸kàÚ‰Fç1n?Ú!d9á‘WÁ}jˆ ©;õÌ$[`춼䉒Ò�L†Ò«½cñÁ�¦ÀP`¢ŒyV|«à<=I‘>ò,Ñ;ñ·sÙH<¡ÚïáÂ<Â<Úºøð‰îèIîIþa|µ~?åD§²lÿë¢S…ì�‰Î×¾'?uk-E?‡ÙD¥�‹dl&g©~v²±~_ÏãG=ŽL Ÿum‹Ic�ã]—Ø2¬qbÄÇÑüçû)™ î§f]DžÆ¨/¡µˆ¶SäÊÊÛ¬u¦õÖµŒ¢ôáH*¶Ö„)%0WJ^½ƒ¤#êêàì^œ2‹¬FZè-µ9ú¼�œüç� |öÈ ¹ìô1àgÏž"Ör´åhRq 13‚EY¼ç4 g€³HÉ#½§™ŸÓWÒTÒ¬½‚¸—Cº%>=€ä‘¥à­jlêÀÑÉ®�hb÷�ªG(¦!¦¾ªZ«h* c¬_|0�¥Ö3Î$ùe^«åIÉ��u ð~Sÿ¦¾û½á“þÏp‹A‹A.Ö.ÖÞRRù"‚�~¤§‘Y­p t t1¥£{G÷š\À‰àDŒ^°Á›º~ê//9ñŒÀrOMÙê’͚¬75Ê0¹÷2ˆd”ÀÍjúmöñ‹‹O?"�vGÏ!o¶6šq¦AÚZ|Ù]Ú\´¸_MPWS÷�èAG!ÀKQBìríåZw‡Äqbúj²‘xÇu×zÖºÏï>×yý÷þ×ç�³ÏþÚû4Åq "ÿ¹ ?z=ËA}º��•ñã€È…£œ¸Nˆœù”'sWmÖ“Ç¥ôç~»îgÚBòCŒ™" FG/E/]l€ ;!â®ó¬Æ”€[V6ô\2¶�_´!O Ï¥úØB^EE¡jÐI†„†íu§ 9Ö�FCĤ*¯Ò“#)°b¿¹¼\ÎÙÅðÅðkÙƒÑü†pRR”” ñ™TI3’[ø³&÷Áõzôzdt°³§ÜåµËkMÁF¾©ª:oÓŸ9Qgºunª&úrwmµ)Ú?›zÁ 'ƒ|†u÷psWï­¯Šûð­í3z „S9Hº‡±ôá[[Xàv¼CØÃl¢ÁXµæ‡ IUE{¼+3š¸=8ô@?òG®ö8¬lu ÷èÁZrÌf�z|×™jѵh›d%úD›Ì`%Ò“®q„Ì·�¦3Yêo!Ïë;®|@‹J"às÷»ù˜Ùô‰C)wNn„ýÅeÎdº¹LYúyúyÛÄ/Yhi¸h‡h‡¢Ø¢Ø¬Þq> È29¾(rÁ83³°H  –ãñ8S„KrÏí¿ˆ�º³?‹Q` ¤ýós¦}ÇMBw~�p¦#!efŸNPºä×8ûÜ7SÙ”ªbÐ<ý<¸ï]ØâæUýj(‰)‰›ý…t~ÆÁ5Ê5Ê57DÉkÓdB|Á—si¤ Î@Ê@J3)€ø+$¹.¹Î{× ¼÷†¹ J…xœò¼köûzï×û!¾Õ¦èÿl*"8!n%¯ÈëWßðs)Q7$¾§4Qà"]…ò7�˜óø‚<-µ�®.7Àÿ¼C )e4!9þäoŽf8ªa¹ˆd8[(1A§}AûÂäÆä†�ÿ½Æc#ƒy|ù§ìCáúÙûÙ›U½.z]t•É Ê "+ãý ¾© ™ªü\?³Û…GQ¤TÙí[mêÀŸM¹#“<á>8JŠb};¥Eõj_ µ¾_Ð@Íú²Ò|{ ¾CÏ€ Ä©_@�›'1'»È7B,4j~n)†Ý¸ø²ù² \v3à ¥Ç2ÕÁ˜Þï`HÙ'XC(¯wHKÖ».RvQvIdBÊîBƦb„!º¢¼­@¿0âÊ_BBØ­ú;@¡bÜ2:×P)ÍIˆ¹kŒ>¹DKõj¶yÓÂAA!´G׿ò Ô h4å;¿_ÃùŽùŽÕÕ9év{–CÂ/ã{ð¦ó1\�s�³ÐÞ^þ^~]Q“r“òà‚É8ø.Õˆ´›Ža‹¼¡2ž¯Ÿou†„”OœYdŒ{Ò§øó")âU‚BšËÏÄÕÚäsq?EJ›ˆ+˜.äüÅ)Z«}I4ª†cúÄ1’ÿö ‰ð&gHìbù„¹‚y�Ó×,Y�§J·ÚúAð\<óO¸O9U-X¤s3Z/§2|Z{[‡�åEñ扃;ñѾm©ö>É ¿Í©Æ:g¨.JHKžx*ð^ôå® ‘ ´€v .[i,ÙIŒ*y&=Àü}:DŒµ¯òòþ°`V]V]Ñ\ˆ·)Dí±õ°Â¨äP¯Ý�ì*BPÀt8’�¯Â6þëvU›¿!ï´4”�4|v2 vaD¿{ʸ´¢±hs‰o | |=Z¢µ:-àOž@ÜBÜRÒ¸¥pò‘ßLU\‰i‰)"аذØqR+F+†sín|SzÎmMD¹³.}ã¹Å¢¶ÚÓŸMåþâ^�Û`8ƒµwB˜Lñ‡LÅÔ>|Ì|o>aV/5w|«Á'+ô9h²|6\㽕Ž%ýíh!òT7ˆ�ê%ƒ¸RYSYKÌšqeÇcñ8cÄwé«%Þ— “¯™¬ £,.ÜŽ¹3d ác†pz4!ë¥@Rl�’– ÄŠXõói�,B’íéøãç~Ô«ê#:µ4y´«gϹãÉ›dÒLJêÎóÑ΄ë\è\ˆ¨‰¨I؃Öqƒ”=Å—ŸÖ#§{A÷‚¶’e°epZ°Â„ÂÒLо©;Ug÷x«Ür¿q’ˆT)ïû–ï7dþ³)¾Ÿ*‰p|~�XƒC:¯3¿0V´ùâ»~«L ø2Õéë}Ãg=vÿ @¦z® ˆïKoÃrá’l'D¨áÓ`s‘Ò —s£scéªÁ8.² XL³fÙŠÖ@X¼ŒDjRïÅÒs�GIâIâÅD�¡ŸQêhRH·U�ÆsOÀÉH�ÈÝ Ä£PÔ8yÇÔ2.WùÈüè_„è<%�zEß)TC_�öW�`á3éù·•›;²�XgRgR§?Qz9©îTñ©â0ý0ý´óB÷N+@>zàvª_‚³á³á;ýdcx.VO¾Q|B»þå³› Gr¶ÛN+^Û)þ@ìvðã(4’OAäí~››v§/ÉÍÞâ3*3×"^ß 8߸ÝþþÍÝLç××rz·PºtãzÓ_…‡Ö\9ìQ"ùã+‘ŠÈXs’"íÄûçì4Z¶ÛN#¹õÊ%â–m¯~.­rÚ“ì©3Ò×»¸L”¹„¦ÏDš¥…ºŸàh¡ÞnÛíïÖ¬îOìûr^ ±WUŽbŒ¶ïí`Srì`þ¹£kÏìÇÝnÿè긙–W‰ÁÑ“7»Žœ‰ñH¬óz-´Ý^ •7Øzu�%Œnü(0›ë»êÇ ÿí>ÒAÃ_K†eçÄ�gŸݟÜÙê·{2""ýS}»à,óÅy°£«g—u8­ð)¹{E¢Í�ö~j/ð=uãv´sâ#€›:±!Xr±é„pıfžSh\¨ZTm»¡Ú®�X‚Ï0NÛÆÊ*/N@ÆNÐèT«ÔY‘:"¥z B¿>Y) II<¯Š±”è$ˆh9áJêµÃe2!Vƒ‘.bnïb Ñ“Pp ¹³†äzËù¸äÁ«ÆÔ¶ œ›“á:6ÏHÁH±BbjÏwN!€(l-l•èËZny ¡bÂGÚ‘®'Ü ÜÀÛ‚EŽV…pfpfðœ6MÁ»o(¶c l�9±Ü'�²¸¤†­6ÅúgS]sq)p? Dz½çÁó& Ä�ÑJêPÉ?UEr×Hð\Â×JÅÁ8œÝx ˆü{wMUÛÿÜT¦2ܦcˆ2FNrˆL‰2ežNE¦“™ !š”ˆ„ÈÔˆ<ŽÌpdJº ™çTŠ=®gßçî³Ï±¼ù?/ž{ÙŸwße-/|·µ÷^×õ»Ð6çY�#QùC˜ŸØ@̆߆?LÝd/1AÁ/^‡ab7Ð_ôaò«ê�¹X™ó2ŽÇCYYJƒÄÜÁvC¼Sç¢ñf÷0Ãùšœ¬HÀYoœN/rÁ×UåÂ’AŽ‹ÊGîÇ�÷ SË¢0V¯÷ݵó}a¡!·¾»r1åIåIŽSÙó³ƒp+¼+¼¬F¬FG…=©W�!.“:od𠧝£¯#Â'¸¦j—¯oú¿zà�¸u¬Í„�^ñÈB�/£Ù¨Sk�2O£l…�üÛòù·´¤¥ïdd7©Û�ü,÷Øw6ÞFéRRRO2ù€*èÏË\ì'ÁB�¹&9º3 [€‰?ê¬‰ÕØÔØx¥¢ˆ}›&óÀÛÓ+Ði—:Aµ)ËKUÇUÇ%^„„ë@´m% ‰ûð �ƒ¶@mXöar®Õº\c!î/\ïëvÚX�ó¢5Öh_{C§)åÇOç¯ßêz’܊듞âg(o*oðÚí ܯº_uÜlÜl·mY­q]R—û.TíX®Xº‹3‰3�¦��÷�¦ƒwêtŽàÙ3«IÑI;Y¨'�ŒuJp­S¡�ЊͿËy麟 †óËå‹NHR7£’þÎÙ$Wj{Rñœ!R@ËPQ WÝ$O0ACÎÖZþÀBaî=boEÞŠ„þôª'æ=K@Égrðä<À¦Cc1¸ÃJÕ|Ì”þê*£"ÄaT`D@ÆU£‚ð’h€Yæ$_FŸ ÐÿøÒRÁH˜¥¢ö A7rıۯMEåøwÄCùxRѶ ±~ZÙõ%ÌŸãKϪ¨Ÿæ_€cDZã²,²,0;ôPÊÑõiREÌbúpííÍÝ®’®’¬­]s]s¾!ïÄá�R?Šàkõß!Õ"¿€œ¢ô±Ø¨S;×:u/m7ÅW¶‹À7+ yZöÌÎ05R¿…Ç•2óS¿ƒâIY‡-tWVàULº ÁŽgäp™ÎŸ�0#æ³ä³ôè…¾1V‚c÷ñ0•Úb€ôüÿ¤/‹Êö·‚®^Ì�‡ÇAB¤i2 Ǧ|Ëñê…�ÛŽòuµ9uÅà w�ë÷ôêTõÖrÌÌž>ð_=Ôͽ»çئ_{˜•nrq×ú¾ðd’è–èþCŸÞ…ú!\ü›ø7ŒGr²ZØ‚D� »í> 7Õ6Õ¦œÅÐÏÐ_rÝe‹Â¤³ã;5óך×ÄD©£ôŒê’ œáJT.¿×=ßÑÀí~žå¯.‚Ñ •Zéoªp¥1èr™²ß’0»9;ô™RqÛ‚D³=‡ ›Ö ÊÑëÛZÒÜOu* qÁÏ�9ömµ ¶"ÀçÑýÛÑ »/è« ¢ÊJR>Øa¨]OŸ®ÅO“~ß7�VÙ¥^)nÿ,||Ã9{YZñ²ë —lÅB8øýs¥Án+‡©«ÔgÍ?ù[-ßéntÿ­Ý?= !?á´âºÄþæÔñQ4=gDê'ó3K@¿k5Ìb�&¥aü;xy…jøÄiNмÊdBÎ@Xt;6u�Š*•­®vz‰X3#Á¡U¼ãj9¢s@è»-ŠQuXuØF2s ‚xÝö’xà^>ÞgMÀèàjö•Žl!P˜Ëtÿ®&$çáNw%¿Rrd™•ñ¿ðä¶¥úüPãë¬ÑËãs%ë+àÚæwRé¤Rù÷Ýe;àZ,Z,ýýP§Ïð½a„Pß%Õé¢Uç~Ðýà"c m mš9Ø’A¯k ï”ÉÛ¼?¤iÑ5Æ8IKmú‚ž�:%¼Ö©smÏàî«þýR¹:”pƯŒ_ysEE^»€šCÍ�-È©ƒwŠ642B/ŸÕʪEh;b_÷F�YëÔÉÁ›ïáV¾+" =gxU¹÷ÇRÞ ­XSvXÎ"|Ï4)zWC@àv;0¾Âù„ l«(=9_k¯( ³¯‹‰�7Î`…¿Ïo°-ñ7ð’ã •Û5Ñø‡ûÀ]ÜÕhc©g4Ît>‡¼>™bîó†hxSºâu%ÍŠ€{j‰9'xf^šÀëï ®ïë„ú“ƒjÜC+s«¶Ñµo‹Êá´÷"¹<µ)BëÔU¾Ëu—+«ý«]Ò\x@xU5Uõò/?£H­)zŽ.¸Kz—ô2O îÜ+F§;¬;\ÎpJ Þ©”•´[º1Êsf˜È½Ì6½uj×Z§j£VáBú?õt=UäcP½üôÍ©¼ž^ÀeZQFÿ«ÜöÜö? õ·–'Àù¯ø¯h*k*‡íXÞ IßM �ø÷”÷)ïìòKš—4\o33­¨©á�J6(Žçûd‰�ìUÚãú6èÓF�]ëÓ-îp Æ#e±nÙž(¯}át¤t²çrùBZÁ3¤R%€#8¶i â°S#�ÆŸSßȹŸ³‚´šìˆÉÉ•~å¨$f>G°xïªFC€ô N‡$›Üë.ZQ×uÕu½BYÜ©dÓQƒ°Ð^Åóß°¸qQ#ä¸Öãñ¦JÎ9�C}�¤/jõg““/NMtÏ*6qû=l›Á FuÕ¾|Ïôõyô:*f g sJ §p¦LÇ�Å�½}&HÅs4KJ镨œ÷;ïw:ôÝÌÝÌ©«¼ª¼ZÙö¾„ïÁËœQRË|äÀÂm-¸h[¼m£=xðw޶З/¸¸yÛUœ¶àNTfYR\z%ÛFñ¢ÑuÛÿÇßç8ËöàÉB{ð”ÖÙƒ'=/¾{Voˆ²*™¥Ÿ&|£®‹�9ÎC"'áž+Ƽ#¸ÒÀó U`ç7kRûZµsnÓä�æ»K}¤vOñ¿®=ã,þD×(§<&{)¸dlngt"æ¦ï¦¿úÛ C¬,‹ÀRO2ù‹5 ¶Í ù$âvwO·=n7`ú×åQÙá› ùîi€—ºø†Òf±Cä­JE‚œ£Ø _šÜbLNÑ&§}Øöªì¦…Ü1ꪪwÉÉ^ð}”<4­&Š Å\ºoOLP• ÓOª´Nhõ«¦†¯rý%3E7Ë0ËPk±¾é[NT€„4jàå†oÚK¥îäTÿç ½*°q„,•6é7Þû† G4�I´Úv+ÎAmN9+ü½Ã®BJv}‡f1m9m9ôÚóÖpܡܡÅüÅü':‘ʶŽ]UR7�¤gx¤X¦XÆí¢°('ô3¿g~ ²¼ðN¸ÎO%¥¤7ׂ½ý\;2b£NI¬uŠö¬W7Üyß]‚„')šï§Ñ©Š¤Ðój@!¿þ„ÿMd )³k3€>ß]a€˜l �šíÔ 9ËãÉL@±æI bì™ì™yN‹MÄ²ä ’:ñ�nc @ŒÚÉHÈáñ7òWèéÏ"·!·Í{Bç!DìÏò©R<Û?�÷y@OEÑ.râ8€òx—ï.}�ñQ•]µ£ýäŒf,þ½õ8Gµ¿wW€ur,C:zúbÐú¬�3««Â¥4¨¦Ã©Ø«Ø$$>ѵêeð…l�$Åô¬ˆ‹Ä"ÿü)…�B|0ž2žzd²ú3abÙ NýÒJb ¦~êyG�&iöÜF{ðàÏyÆ·«N°G*=蘗L�©=:ê *¼ýŸœÅø=No÷vÎ8ÂØ×¸S]úã%£G�¡�N¢ÙÜì¢Û?]fgÆi°â\¸™ýofcmUN‡3÷Ÿç pˆö”6ŠWW—¾‘ñ^èZñCÖw-5tÅîÃÇ®5�~ÞÌþÙÙìö§óÙ¼´yÈg– •ú‹ÎÏ'¼¼(l{µÇÞÈÊ,>ÁƒÙa1ÖY~3ÛÌ@¶àÙÖ¨!˲Ü!ÊŠå­=pù„Çq�¶ M{©RC+Í÷é5‰âQïÍl3ûodåºåÒÏ Ǩ‡Ÿ¨ú5ä%PÉÓµ$©ÎCÍÁç«§'°(òá¡? »ûföÏÎÜBè¬ÐC­Ú‹Ó{™T�c›„µ%¬ZŒf÷#þµWåŽÚÂÛ‰Ä=›Ùfö¿š™kÊI£­O\KRr= ²ŸA¡¾9®a"y"¶j#1ì:]+Qª/[ëÌ>·™mfÿ�lÆ_$Rë$ïK˺/Em¾Œ”鲉ýŸ=´™ýs²Ýnº Þê÷“�ùИ} M/øYx­ þm—?`T½ÍAoÑ®ƒñuú8µÑ·]É-{o�™Á) ÌõxK÷§†îÉIñt%•Ðg9 4Ë7ÔõÂE“bƬÊ{ÂN;_ ŒÀ•�óôÊÆ«É&·+s›³›³3¯Ìë!†6$¨Û‚'fô ¨]ñùV<{ÄØ�BJ+I+éø*„’réS)Ä4�Å›TDC€ÇtrJ€›‘ õvÎ�Óö¾ir^ dåKå3«xiŸ�÷Ö•8+åd{áIÙú‚F­“5º4ºp†ß) {àRySyeBdB°ÁÈH=Õ©òAQM¸‘¤‘$ØIô$úB„¸ž¸GÌL¼S쨦fîèzš­êuüV-sujÏZ§B5éáJQ'ê ®/›æ%[»¦¸‘Br-–‰ Ú¦Yï{w’ ¾þ)PËTÆh|¿$6?v!G>íð£ÚG”s!sá„#ZˆXù‚ã¼…Às{¿PýAÈÇ;tÌgc_=ÆaqØžl«ö_ê)CþÍÞ�GSõþ Ï<6%Jæ1SÈР2g,‘YQH¦T¦e: E†ø2eÈL¨ˆŒ™#2“B2•\ÏÝ÷¬sÏÞÛÏ÷®ßºw­¼þûüý^gÙk}žç 4e¥Äyu`³tË’ž¢±œ¬îr=.‚¬Éw×ȓŠї}poD£2§wüŠ?Y­Ç€g¹¦ks'¯&VÒü¡ùÃÖióOþv8g)g©#lGØ2o}üJbÙé�$ÁmçÿÚÿ5?—Ñ Ñ ×w2wòPDî ¼)ŽÀœþ–„•8LûÓaǪ¥�­šÜhªë{Òi¸ÐºîD¼zÅÕ ƒY†KŽH´7Æ�t�Tâ÷]v#å˜G6B"Ý´@[ä¸8žLâb.q[·X@ T=™ÐLßLŸ~×6ABGLñ^ãŒ÷ÈËiWò !OÅ)<õ|äýühø!Þ)�öž�Iù®/8eŸ�éd€éçÁ4åG�Û;‰ßf€Ì”§·Ë„¡q‹žÍÃ,|¿¶ï‘.k ŠÁUÖ@jÿŽÍUXÚ„ Ÿ>Ÿ×À{ý®\ÑdÑäÏèŸÑ&ù*Ò!z£HÝAocᆇ“tÀiÊ›ã�F�F‡¾)‚7•uò{ÉÈÞŠœm…xÏ­šÚhê˜Fá%86Æ/üxÉ_£_$Ï8&½àE²«ÿEœ\Ÿ?bðKÒ·®fi`Â8ÿ6ÀO¾� /íÀ®F4£¼‰ßT’YBüëüë—é/z2bùozq.•{Çn‡hÎaÞ—ä'ׂ·9© åi�7cTŸÈ è^å H o±RÍ£`}B=Ao Ò‹íÜ“öž©ÍÂé=ã�æÅ vüŸùØ$¶»j•5µm.û9îÖÓ[OˈYUá‚‚~¸þp ߣàQ ™¦D’wžP…«ÒªÒbKóyæóŒë>] ]ŒÓä;Ä;Ú—k¢¹¾Úô'Œ­+Fº3�¬mÕ”ðFSy˜53¸ßª/Ôð0éiŸœ¿¼ HoBŠ:»¶ (ðÝÓ{÷rR:{\<°/ô °éW�7•¤ �iÆr2�-« A¨òGåU=Î~BÑxžÏplú<”rHÛûö;tC!sŸG>�H@jé Ä>¿8!’Ût³pÂú€æ‡ÀPî�h4‘V@‹¢Åí»B«K÷Œ.ä¡ù¾\à7ET?]¸]Á±Wºëù+ wÓæîä ‹g´e´íÐ9¹¤±n�Ì&1&±Ùj{ã{o ¬kH EØ,8¯¯q2©©ìpÉp‰ÊÐC3øN¤Ù¹×ëäú12 ’•ÔÎååM[íDÂÏQq¨\£íâž5ÊRTøä`EÞÁò'¡ŠÁ”áhßÛ Æ§±Ítÿz'Rj“�Èá 㪗§ï�ªÔkÚk{9¶jýðFëv'cúá°¯ËUñRu¤:‰”åê&‰‘(~”¤ÜZúU‹RH+yñÓ€ãûé³€Ï@ž¶×5O4{½œ¼¶“>"4×4×´Ý‹¤�ÐA=¼:#‹ìçåÀwÿjE}ýG�°]í%í%ÖD�Ñÿú“ûÐAÉÅØZãœãb*€æùU4Þá€ÝŒMÉ{Èí#œý2z”‘îA"ÿȬ×™×™G#.×"×R´êÇíÇÝÆÇ†x'oáÑOáÐS½ñ(½çxÝK[5%²Ñ”÷ïC·áÎ$[Èài <Þ_¥žÒ)maf`ɼÄr>üsMüÊ{À·I HuTîÇ«ÚAJ‚fº0@¨!ûü‚PTjTêKÙãb„âI—âøõ™ºaiŠ7 g¿=¯Ü+_£ý[ûw}2Ä4"qXP Rmp= ç´PM¼ÃØv �ßqäýñcÔ„WãºpF! Q}¢Á^ù㦯¸¤ê ¿œÓriú ¶9‘þ¤ì ì ‹ÊŒ6pããn7Ll¦5rµiD6Ü nÌyÌy ²Õ©Õ)‚~×â®Å‹'…UáM X·ËÑž<\ßß®�£4­¶US¢MíîÁ<ƒ[ ¬�Å+{öI—:±a%ÒG/fN`QèÅ�p¢ J¤¸%3%@å´q1@ß]‡ÁÓ§/~ƒF³·©˜4ÍN ´_s¿¦ÀZÊnB‘çñº^á¼r(/ÉKAR†&¼ ¡ÞÕZÑZÁ˜ÑÜ bÅ•wæ­á6â»ô ÷ˆÍv4†�êì§yaHæ»x?Õ"4ÝŠù4˜«NœuŒÜ;‹sJË{®¿<ä½9Íù˜ªî’î’ëÖœeBpš•š•REREÛ¾Q©sAè­�rS¸øáì‡í‡#·Û)Ø)ä°�ZŒZXÎ#Îè‰/(/Y]/!Îr¢ÅlÕ”ØFSößsfàÚlwãR?Uú8`ä„Ò‚ T/ðÜk!?¨'5ÉR‰ý  VG{ à è1Æ UsÎD³Æ:wX›´üDèžô=i £ g q[ãa.âôv´²¾•é5�–£»13ò«N«N±•�æ£�ª?Ýû\" û“€h`=sNÍ+ æú!t† ²<MbY]ðÍ+Þ6Ò)ɉü»ö¹S–«¯h�³ÄXÝ6×'ÚSgÎaÎqtþ~ç  9 ¹�–�s/¶—�!Q3Hö˜‚¸1ž1¡ ÐÌÐLz‰Œ†Œ_q®k¸¦ê¨¡¦Oëü#oNW77í\ào`wq«�Høÿyÿ“7lÿÎþïÏü,b=<®ä„Ïí|“2=%kx꣮ŠúÃ3ÜM¯ïwû�R–ÛŸ,¾òwöwöïšÝÎ5"·=àâàŸñõ8í\-Ù/E“å§¹ÄE³>ºþ:âCÞôwöwöïš4È’¨µuó휶£&Ši�´[ê÷pJß¼ oª‹S¹ûl¨³_—‘Gh#EàVMIn4Åw¡Nî ëñe<‘°ç²çl‹“‚M�N— ì®,º+¨U,¾D îzx Tìôõq'zɱ4žéwÞúôž„ÆÏ�Ÿëµ‡ÿ²Þ�ÄÃLàÐ8™ñ{©L_A̱=¥âî,ÉQÉQ "�Å`UCg:D¸5‘ çÜ) ë"À¾,úM�K¡3ÓJ1Á~–9R]Œ¦A0kÛ…ì8¦@¿šK,‰ ¾ß¸µ ›wÐ;gçP0Q0ù'=@`9n*x*X[O[oá‘mo`6Dv©=éG5Ü]ì]lÙzáz¡õ´×´WáÍŒGð¦êvNË^22ûuø:s„ÌVMIm4ÅîÆb Çy.^oúg³³‰ '’é? g€x®)fõn»»(tKþæ>ûOàǟݵx¾jå7ÐT[�\¶•¨Œ’ð’ðÚ[T1B¨ÀoO*No£Pê…m€$Äœ÷þ•B«Í«Í›F  „|²ÂŠ@fÍMp:;“€]àÄ43>@˜nѽ$ÄõbtZY�Íå¨Ô þ³èüÎÐÑ+Ÿ":ðÝCÒ<}xsdÚf¡æ¡æÆVAÚp‡jÕ®å®åFK‡9@dÞ!™ïÑí„ûÒø¥ÑÍÆfÕfÕ"kxqx‘÷£r,|§@uúNž`œ»…ŸoPK¦>óV;ð»^ûur:ú‡­Ù bÊÛ¸*E*kõ¿˜4ßojwçWù¶½Fÿz§@t“�‚óuAþ»ÝS”oÜŒ¶4&"Þªõ£­ï,3r‡Ëû£�{Ή”£´™Äþ,RÇâ­1`÷àEæìÌ{$ó²Wó³yÀ«E6ŠgÍ>9…Æô}ÕP9E(º1º±tÖD”�»0ž¥6Î˲¸NàçƒÊ,È\Ó:9Ûž@ã@c§³�"yHIÈfˆBHr:Žl+ÐvÐa«šEØ Ô™Þׇ¨¨T¶ �¢ÌGó¹g”è›\¡ÃÅç4Cîz=b+¶´›3ñÿÒíñÛãwfÜL÷66¸%Õ%U&!&!ù nWìô �.H1‡j hkië­+]*] j\û\ûÈŠô{áM9�¬ÇÅ$iÚy ~£+\ýb«¦Žm4u¿Ç÷œP,yžùø± †‰¤f+õ@|ÁÄ;¿°z%¤«™¢´@¤g¬P.°‚§§6�æÛÞÀ»i(Ÿx¼ÿ¿(¡®x{úqì¡›}“°rÒ�.¹óº­vóŠªûU÷Ÿ�…DC˜ÛRŠ!¥1Í8tZÉÀ'écJ@”»¸ódÖL\õü¥sHERþú¶lÁØÆ”3JÙã†)ûϨŽD¾Þ©’º�ºµºu¡Mba)/x |zqzÑ"0×Hã5ädR¯—¡#œ(¹(y`[IIÇÅl×l×Ы%zð¦¶ïn4M1>ªp³3ŽÃWКu«¦Žo4UT[ gG>Iƒçp{§£ð.E—õA¤üò?×�»¯’ò¨‰ž"Q~ ªäÔ˜.˜Üh<­ø_EhJZjÌÓÊ„ÚÚII›r|‚—Í…s-¼·=}™‚á ÎNŽ ‰{÷wÜI5ÈM½Ýý�ò¹�ž8d–uÀoã¿Í“àg¹ÿ4„æFHrçè?F›2§–mž Y˜Jö•†º�Oœ\Ü7wÎAcËdËtMs�R>.¾"¾"b×°wçñP¾{ÀC•-*KÓ¢’±/Ù—�QöÉ®FBI?’$²'YÇ–$4–I–P”PÖʾ†Ht\ç>óÌ™{ÆñÇó¼ž×yžã~ÿ÷ùûób¾3×}}£Øï¹á›�IC\;¨Ñ+9g¥b¥ò@æ•Ò+%ý{&&BÂAðNí•;�™=+ %.f“û'•c¥N)/uJ¹3ÇcÂG&Tév�Í˰ùHmí[ð�þS©`Ë™£Ô°tx€õíÄ%à.–,P±³–y‹ÒÀø6vJñNñNóè|Jó;Éö2�láˆVjð§ Oœí*ÏH`‰íØvlo&¤ þùQ "B�ì"iÆu³€ qåVZúS bzù_ýóícʺ†´äË®)ˆúbÑt&P&}×¾�esI¥vÊòÒw;k:k¬‘•ïíÔábcUzTzê­ï'²ž†œ¨‰ù$¡áZð-xV¼:»:{^x_„]mŠê;Žõ†OjÏ%°ðÕÔ~ ?½R§T–:57—qÎ"%¤ƒ¬ôÑvtóéoý·{¨ÙHÞŽ˜dެ³™r¡vE¤é& ¼;I 9U¼‰¬^¿m’–êáÑ!à w‡R—c—#‡g«-%fA2)"‰úÌ5€Áéw¤X±ºÊçòsáLáL;¤â;ÄGù\#$§Ü«ƒdâ&ÐiówGGiÂM‹sëO\„Ô–­-õÊI¢…~ª¬ÿ´êó/ü­'ûûF¼¤´å’—ÇkÖa >„lC×÷}i€KÖJÖ’BJ!U☴èõ!u\ÔFÌpj(5Ôñ}f}f„¡œ›œ›¤²&þ¿f‡MÿøŒž¬š#+éRr(yÜéâØ¡Ø•Î©Àg‡ø ¡ïÃÙˆi,¹¸ÃòBÚ.ÞyÝÙ«Ùÿ|vïòÀ›'ùƒL¶ÇÄu w ~bÎr« @õé:jÖÄK4ÆÆ�ä]´tZÍþó2§+8†d?´fy¯Ù޲;5CW}§7Ñ>.ÚÁ*„³Ü!ò~Õ¯»ÅW³Õìß-«Mi ¼bý¶ë³o6ÿæ–P„«Y\N4r+�ffÔ”|̽Ö+g0ÍѶb«Ùÿï,IŽèôðë@J¢Hc•þ£$Îñî]Ñ Y½P«�¹zDñ&Æ,·šýçe×üÉN�:O¡îºTœxÖ³ˆÍj=†ªÎí?t<òš¼%&y Í&¾Y¬`5[ÍþÝ21N§ÔÙÖ—ã ÉI•HQd/Ö,íãi|'ܼ¿4²ýkUÚ½‹¿Àgý":€á¬µîvÙœ”îÝ•f}Õ¥Y_ý­Ë38î°œ ²ƒ ÏÞ\OØÅ�¢C-è«$+pÀ…O@²¤PÛkÉ6üJõ> ¼Î›¯#³gã£Í]: Ø!ÎPÊÏgä¾ü’’[=YÐ’ŽyN`Ñ8βuê‡DÇÇ�ÀH7'DîÞ¸+Dý–S>I¥ðÀ�Ü:cJËíÀwrödæcȦ[�7#Z¿Ò|‚Ï�ýh ‘«yò�m`$þÀ‡"aíå±í�l)ò*òúvf¼«â=\üçøÏ×/]¿dÂ@Ï„‚(ÚRËh;Õ‡êGõwd‹d‹¤*°ÿaÿ“X?–ïTȹÇÎ'ñ�´$™�|Ý€»Q¿Œia%cÜͦ¢ 泬Ìo3å‡i¹-ÃöÌÞ¯;ýÇÙ�² ©ç¿.ogÈÆˆqÄø¡›²Òûáèé7ªlT±ÿsð©„°@�ߺr |?^Yoîbî‚1km­?—‘ïÔ_çñf5Ïûœ:“Ö\Xñ.õ¥NíÊ«‘‚ eh #/ªÉœ]oö™Ú/æ!Yà†ð�J÷h:jÞ¾^±ÀÓ�ª@�®=“ìƒa›-�1V^€ î‚’‡Gòz½6JöÞd­Š$VrJo«`)IH �ж ù5Ü7ܧjÉ›ƒ\<¯ð²Ñf“2 ´hý`ëMKõ Ž~ζ‹’ä¯alW—y’–ÜHiRÁÖŽVMŽƒÚÚk’¦”�ËsÞ„VRÔRÔÂ#\ËzÜáw6îT°Q°ùº%Eér!ä÷µæóôçàÜyÜy¬Õœ×9¯óhŸÐšÐç¿??#ó› �aÊ û¢³F‘û„ÅJgdàûŽ×ª?wô¯ô§ïÔu0U››õœ—�»q2Tf’ÓaP„ jC÷¯ÏÈH,sFÆK_<÷²_Éüþ¼Å·WsˆÓ+u]c©ëüc»áŠ %ɪ qï\Ü�ùŸÞ¡¦>À¥ì ÀJ²„äéQCXvY—$v„›„L$ÉX¯6Ӣ©ÓÄlûIéɾ'û¾"‚õ(=é'S#17k0Œ“þƒñ¿fÎèÞ‚ö44’ã„<´…àùý1�ã­¥ž$FU€s?€Ämò¤Å-8®#]™0�èud¤ezÐìbq•ca2c²õáœUA¹¿“ÿò”?$‹ßâºÅõE%t†p\;vÈp¸ÜW~÷Fí徿Fàô1úæ.ŸÙ%áÛ–ˆö Ú-O(9l\­›^¤ßšk¸ÉnÅßžQK�Ú�ô îh2ôî9ud|Çt‹ÜÕÊÇ% ÓÕF¿MK5œLMêVüF 4:®Hb–X ¹—C‹œt …,± Ô0Ô0Ôe+F©XŠlÔ™¤‹îX!Àû¡ã$ì/#“ �á*áj�'dÍCHÊPt$^§,ˆ$Âø‚>¡¥~ ÐWh‘è¬ aÁ}’º¼#Ã�–_ÝßSqÌê–,YÊjý²Áqô�7°!Èåqž0ää{_j°ån"a?aÿ'†O Ƨ%°!©G¨�*n…ãAò Ñ�v; onn‘^Ñ<¼SjÃ�>Þ×· ÆjÒ‹õ²4¬Ô)Í¥N¥²…ó­È &›‹´O”roë=¢å7‘HgÆ=_2ô¢÷±?¢tûýëB7±Ë[{'é“ä“äâÿ¬ãN Üà�Á;&v&víŠ:_ÔÃ! {©5ú¦?‚Ë·É·1øëŽÑ£XŒ!»!»ÿ‰´[ðNÝg÷ÖºXöüŠ* —ÊÙÛå¿R§0K�²“{W '÷²%•Œk}í&5Dº›!µ�¶/|6ÿõ’K1üÔ²1c�@a=zˆo7n&ã³Ó¤å{úx 9+=Ié¡ÇCG�Ó·(¹K‘& ñ,´~VAŠ/ Þ ,_ógÍåÈ_;!Ïä}!¦N;IÚK�Ýi@´±\->Ó@׺r?äZËPÞäl‰ÞZ6¾fÙ34¹§¤×ê•q¡D{o·�óñ…åÉ eÖ"Í�fR¬ÓÁp3Q3QÒÒžk Ï›!y£Ô¢ˆ§àâoÄßx! ì/ì_4�@ çÌMÁ;umv~¦Æ�þQ·~–æidæÜJ�Ò^êToÊåp» wÈ<?x´_þ4B­ÆÌKØb~)|ìXÐ5ƒZn[À¹Ýõ7P×½¿‘Ìbë39šx£ÿŽ…š¢tèÈ¡#[,¢Œ)Ù$S?@Òf›l/¿Î©›°í?8ÍÎ1™5™µ¶Bzûž³×oÑ-ÀKrp7`ŒœeÃùi±ÿ¼:&ï!‹ƒ8Ô\ø‘fúAŒ–x‹íek³L¿V2í<0ñFøoåÌ¿Àþ-F¥‹ÚoSvCÃnoÑÞ"Õ£ªG¿Æ14JC”©,^¢ƒó‰ö‰ Kmî2[¾³|§ËÚÂïTK_ùž##ÞhË—Øêß�Y–Ýa@êÔá¥N9 >È´�Ù÷Ù˜Ú੾Šy–xjA%;0Àߨ»Óh*ß½�ã2“�)C¨¿93 ”)CH†¥ ÑÀß,s¦ÐN…(J$‰Ì„$É[†Ìc™šP9®çZ{í³ï{{¼xÖzÎYç´?ï~ïöZßýbß×p˧Ï�0<�fãZühªšê¾ÏÑÕâù”QÎs+ Þs?¨ÐŽ…8…ø"ãd ¡·Ýxϧp¢j䦫�BÈÓ:ÅLD6±Öà�Áƒ¨h.Ú;)ôj˜ Å9%¤§§ ¿ÓÎhNÖÕåûCÉÉ×I‡3ÚÔ‰I{êÈä•þ]öDyŸ¨`W�µ_€ùéõ± ô‡+r+r—.J†‹ %|Jøä;ï;¸6ç"�TËŒÆ1ú£ é æ ÆÉšÎ“ÎÓ¿Æ@Ð@p¶=Z¹>߸çH‰q€•­¤LKjæ5÷ù�Öç÷ó�§f_H¥Rp¨“‹T¢¨¤Ú90hmD'¶"ìÉw¡/Ø�"Îyó‰Õ .ÿ†}¦zïgbþ÷õy™uÖç_¥Í�>Ù[¤þÜiF©q£Ö�€5 Ò’ $í>‡±[V�¸jç&ôNnCnCw>ôqÞSÝ v‘PãˆÎ§^}¦b¯âݦd}ÐÇà» ìK‰Ä«ëZ65ù÷ÖIyëŒ:¬]ØqÏ’õ5jýrÏ=•{*yÁûkõ¤:¶:6Í|Íü­ç2o¯@�xÑê8…#EÅFÅ® ›š›š`£¢Z³Å‘Mõ½»ñ^Öâ̯måªê"¡�šÒçx•uS�®¿®ÌÀÃÜKûÜ�VWóMüýaÀáæé{¥¤RIh¦‹<Àèº Øïl&ÞÃsWȉÑÈ8 ¼ð 9KÛ�í¯'{T@ÈïÞB?Nó´¨`{º-Ê1Ø”Bÿ~ØpØpó+ˆºº"ΓÝ•ô~ƒù€wc%ž $ÆÁàǾ:’ ø/q‹Þ·É!¦�3Hˆ7Ó£ç'�e3 Eñ·Éö~ë ¤5ÏåÍåUj*íÖÑBr—t—lmí»Ìuü/hé<šÉSì^¤“òôíÝÛ»cu"6EljΕAÝÓ™bÖ@cW¾¤ÌîËçÊMnÔ”îZSô—ÃÒ‘ Ï/´á]s ˜Ý[Ωé‚&˜i¡ü�M‘ÄÚJ¡å œÿ >ˆqÂÍWñ|5l鈹əT8¶,“ÌÅÄÖÄÖ˜ùNEN¤Î¸Î8íZíZÕ75ºKÌ�Án´â“'‘äçäç J„°BXšïQƒQƒ—Yž"›ÂvQ©_©¾=þ›ÁÑoLC•b£¦ôÖšb÷:Œ”qÛ¥¯ÑñKèÕåd4ëà—+†7÷jš×I“8 í8�&c ‰7õKØ.càঠEBZ®Z®ï—³DýóåOñb8Ϥ—å�WO.YB.ê,^«VÔFÔF¶—¡†Qˆ™2›]�àÁñ­ŒR�Ο”Äüϣɮ�îν aÍ9Ô‡E<ˉñÙDn&e¬eã´?£Ç¾ÕíjÀø—Žºõ�žÍ¢–Þ.½}àï Ãi¤R†Rp;‘òî Ö«¥�È#´<�3ùHà•½™lÆÆGòž< hÛýJÙÔ¡61A£wÛÃ5ØcãkèN�lÔ”þZS—œ?"=Ñðë¡£}S|¿N­!×õP/q©·‡î>Úà @]ei `ŠÚñoh¼IMhË“L€»l0š�zžzÞ§·aÅ„öãyÅiq-úXt@K$‡�—}¥�“Œ“TŸ‡TF ^v#(ÎOåΣ €ã8 {æ 31 �ÀÙñ RC!ç”�¿×“è+¦h¼«L§±jK—d /6ŽÎRe}†a.!‘‘Þ¬]†™H¯_36858q °^ ä�Êߣ9†ùZ!u9u9½ 4 4UvuvV™ê0Å5åÉ›Ú3­ÉÚjE¶(Q9Ÿ·ä±Ñú<ò¿Ã„�¾Ññ$i/iDŽÞôI¯÷¯–þ3ûÿ™�%'2Ž´óÇ+ì<5Źc$Z·Ñæn‹¸Ñ�)�þ¦ðq3�d»(»tIõ¹?³ÿì™yÞË‚ʞϻ¯{†�h;,*q4˜wiùKšS^´ßW”çŠyÓáC[�ÿgöï5ëï"9op¶kOŽÅOîfÑʳNjïßkŒ¿ø"XDÞrá6c�x–Ôã?³¯™TÌ~JÒê{]‘Ó}¢Jž36jüf‚‹e‡\bǺ4<ãógÿÌþsfKV)³Õùf±ãG�¸IF>—Ýo¯[Ù¹[æŒÄ·;ìÊô›û…ßu$öK‰ý™ý÷ÍÜöØÛ:óhçÄIsMjœ;&·�íÅK×Vš·–.c¦ûöÓð™iÈ?÷gögö¯œm äQ`8Ÿ­�é,¬h÷( ·öÜÚZš|j™:pøÁ—ý§[²‚â$o¶3ý™ýßf>‰½Ì2îöÍKâù¬“B)ÚÃ�Ïr¦>°|Ë~Óµ4¦Z_#l´Åz£g9$$so¦‘(ŠnHái8eŸ§›_,éâFé¾ \R%cùÚWˆÆS× d²`’¶·ÛñDÒ™ó÷•ïQÀÌfÇiBÂSÂS.—:[ Iãšà>õ+øm”4 Ütĉ™GMÍJÙJyà ¤ãi‹¦@Š%F@Ù ØI¯8AL³�ãýQmê!¤;ð5Ô+dg51Ÿö–ù”]|.!¼p¢�«O‰„Û¦n}+T™ã»°»°52Òwv9#)Ø(ØŒDŒD°Pë}or‡¼'ÑrÏ!ÑMÐMÌ}$]%]míx7önì§ŠüdS-×o>êêyw¥L›Þ²`³QSGךòV*û€´òäÖ¼¦¶ªß+‚C÷9¡©-Ñ8äÏïgZšI�¢Yu7‘ÛwUW+éäñ“ö?$&…å--p®«ÃŠÐ^¶½lÎI×Q†à½øˆc÷Ýÿðãvúè†AFêʳí]»1»12Î?$S­þbø|ëoœ§û€GõÀ©;­ßˆ‰Ø L¸ÞP¥ƒZ„_Ó¶•Ùí°"¡~{U´¶ãRrµàzeâúJ0!$Ì$ÌäIº5ÜüH==ûZöµ\Ñ´vþa�( m3¯×Dòõóõ#•ì­ì­tÈ7ï0ïHç‘AÝï.ÀÀ†±6â|Ô±ל¿í6jÊp­©Ã¢R¡H®©ðBZ%¦S¾6eaÑL4æ>IÃO¹<È¨ÑØr©¸�Ó ßy€½ 'õñV[¾³BZ% ´½‹O"T£U£u)ù3tNÃ;Á€s¾íÓÜfW™_YÂf?³Ìe¹Ír;Á²Ü %N>ƒžšœÅ�—F…û:Ü3$Ää¾¾²uejÎ@)ßãM‡�¶sÙ…®ÁÖ�é‹N8öµ=�\ÒKúúèõ †Ø š¬}ô÷©>\Ü„dWkWÛêÒê’2¨´ÄŽ�·¡½©{ÜŽdªhªX5}:úôÅs£çFv,yG‘M…ïŠI+³'¢Áùi“4ùFM­5õ ”: iµ! ‹79üCì�ÞäEZýUC_@å5Oì^R¯“h\áL¡€ë÷Ûß«B•^<çñ¿ª‰¡|VL H¨Š8šmœm4u?û–�¥&þw§ØüÐã”Þí`,¾Ä6Å6õá8t½ )ÊZ€dZ´zqÈïðåpaÖS#ÄpS+N=·¡&Òò´£g‰ñ)pcé÷jä#OtÌøÙkæHm_¦A½>9¦%ìÅ…ÒõsžÃHª'UO®z¯zwœMg½¿½7FSÔ.<ŠTRTR4]”–›–›*QåVå¶³Rõ²)mÆ_ì.�¦S?Ç[æ#S63nÔ”ñZS>lÙ9Hß—y“ñŠ* ž|ížÙTP‹��»èóim×дD3z0v­ÞWïâíßC!AŒ›\8¬›a|’Ð ß ßk#Ë B¤x�Êp$æ¾4Çvàp+ Ô‹¸ñT'èéY§AT’P—{"ÄÄ.†s,pr2“ý‰±1\Y#Ívï�Þex]L§ÚoG Û´�76!R<ÎÖG\ÇZ¡Þ®±AFÀh}“¢qWqW…¯z¾RaEÊRËRStVtî$­² ƒhŒÐX³rd‘²1Ùý-dÏÈž­>¼›z7õ[lÅ侺=ÉËET¢|V¢ã¯ŒXnøm´¯.Gú¤•Hqm5¤—w]¯¯†/Ö&÷LîÝ[l¾†lêåïe¾ù\‘]ñ¢´{•²Ö=§�kêØZSEYE HÕšŠRxÇSÇæ$ùMù¦ÐÔ� :tΘ§—ÊÐ(‡i1—²ƒ�P¾~¦¨�æn{ °$!Û7%ƒæl|þ@ö¹'PIϬÇ+ZæV#fa Û*PY}m�PmUmU÷Ä=!3C¼wÌ8AR '�¦ÍäÆP�¯²cÚ #†››Õg�ëOˆí›w-ô¤!+Ç‘ ˆ%~\èk$ÆJ Ëã<jR©ðWh�] '†“9šv'ýt…¡¾Iiv+Íásœüí®¹ë;k43Pý¡úÃÍ(*ÎyV¤nÁnÁI®I®XŠ€ÉìZÈîZVUê ’ÃV‡­ÏL›IšIËC‡B‡n³×!›¢ÚÛ½0­�̲�„‘ºi¦Üb£¦ÌÖšâÌ aGšPñÒÁ[Ù}€Aå±üUå2´^jç»À�ãËǸ¦¤æÑJžlaØYçŠìeµ�x–)›ˆé±Í‚ö~Ž"ô²õekE5¡Ñ-x>!8)\î€òî–fHÆÓ‚ý£­®Tv\vœá#ÈÆêÎë…½~÷ç¸0 &x\º¶™ÿ0  (GDβü1=§¡ÅIÌ/ƒm/MJûÆo²~Z‘Hh×5·ù{weÛøq\„$k¶¬e¯ÜÖ,MY"²Ë2ÊNT„Ð�¢”%ۘȞ”(²‡lEvE›B’¥²e'!Ô¿ó¹žùÏíšqxñGwÏsÌ|Þ}çíïŘqžWöÚ:´]¨èÆèưeW²“°pÇ<Žíø°ãCJï–Ææiȣ̈́*«üùàüüíÈ*‹*‹D�'z'zË©ëq›Šâø÷�o}ïõ­E¹žÎ,×ßPVÚ³Þÿ@Á?çýIçoÿ�Íñ‚ø;­ºÍ9OyŒ0:vÜÏË�P0ÓeX&U|Kä-ò¹OãFjÿ\+?àì�=*ùþY˜¥='yëᯅA.Ó›+/2oæwº22uþ6ì/Rû=M�iÎScSl�ØŒ.³ÖO>i×癑q/k½Õ4²k¹©'&”¹mü09¬Gj¤öO¶y÷S*ì ±ï<¢MŠœÇªÒÇ£ :n\L¾ü6qÈÿü³–º1 Ù[§-¤ö¿Ó /d×Çù%ÎÒÇÝ’ Ù^‘W%ÿÐ.j1Çt8o‘Îùæ>ƒYÇÄáR#µßÕÊÄ,®È#ÒœÅ#Ò›½gÏøpÏ&¹�7òM,ÿž6FçVžêAj¤ößЪ2Ëo`šEB½6pÒeN¿a—¡ebÒ]�Íüji"C¤Qù{ì0yÂ5R#µßÕn…ëª~¯£õû:î|݇’qÙ²t�…VEg‡…×|¢’íVtï}™½ìm¤Fj Ëä}‘ί5¥ÕwÔ‡òijh‰CôCÏk3\7ƒž°žµ�e”ßmˆN 5Rûm-ã’åÅ'އiÅ•(Œ<1_Ux Ž&õOþl)ïMÉk`�h– ŸÅè°ë“Úïiåän&Ñ1R¬ŽÅ&a?+q=0Þ”Ï&bnTVWw¸}$§—fž#5ÌjœÔþ·Û¹ì”À"Yñ6£¯ò{ŠMŸ+ûø’'ÑD¾Š¢_JCäºkíÑt»PЛý§·4ãýLG‘:K]}yuýZ÷‘á.ðß8Ë"ïU¤¬ŸN°Ó×Á®÷'Š’Œ,ë…ƒ<\¨Àl 2âNßÕ�ß „š£Êr€à �û'È Ý­­KÒÌ9ú¡'ârxNõVúD=*ü¹�Ê�V3Ùj²ë‡\mÈ/ûŽÄÖG”ÀLI ?¤T?£àYq(››ö'¤5¢(“ýB?KGPx5¸0µ3B7ì H„<´xÎ Y›GLÚ›wßö>¯rל|é:së½]FÎC>�¦µy…-ŠöÑôÑÈõQ÷»ÃQŸ¤>‰Áb°'�¨°U;@¤j ÛI¥ÀMúNúª_й£˜vb׉]ÇʵOÃ7•‘Ít� 9ÛÜγõëH‚ŸÓz›2ÿµ© Ô°9œös%Y¼0Ô eÀô2oP¡ÏqJ ÀÁ”�ø´`BÜþ9E‘‡àY•PŽw¢ØÆ‰˜q–64p, ­¸Zš|š<µV±×jÖŽxõ"8"Ý)É€¶÷!GzféGQò5l9¢±Ø1”‚H‹I'@ØÃåYq¦Æ çy@ ½`y™ÇÒï,JíµÄILDù¦Ë‚ˆÆ» 3Ó.×¶®|м¶;s¦¶�î�îöæ�‘=÷àj©j©œî9Ý“÷±oë= á'ôIá ;77Ùð¸E•ßà¥ÁË‚í|7à›:ÊUü lß]Uo—åÙƒuï£9úkS �|=p�o¾ëã=Ã0¯Üa‰ÐÞHè@Æ ÛãwÃ]©{ˆ�ÖXøøµ � ^ºŠgͰ›˜ú\æ«@ÉÔwËÕ\z]zC=à÷=îý†—GƒsE¸ ˆl1¤ƒ '_�ÏÊNimÒÚdÿ bT¬wzQV²ü‰C¿¼Ðš{ý³ˆÙ0˜ ˆTÕ‡„ž>r²Ûú} 1�³w3bã/+oRoÄôDukw¡­­�/ß ‰@"LVv8¿ÕƒC ¢oËÜ–að;ì¨* I$4!ª7e;ekC;»v¿)\J†%×Õ„o*&¤ÀŠl3‚­1Q­çÇu®õ6uìצdæÀ}œOÄ µøŠ>gr›¶­è<°+ P“Žÿ!&‘+­@àÛè#À¼„)5ÞÇÛSžÄ<-ƒ.Y³™ªZXm/ß^¾e!ØkïßD©âTʸ $ÙŸ¾ ‘4K5Ñ ¤9*U!U!þ¤& Âj«¡iÁPýÿ‹šxù@¶Œc885¢Ë«Ã n—ÂôÄßñ:ÃwÒäëG!ƒ[¶çø�™Xväéò»Èa×v¼!CÙ@ÙÀÞha3d7dϕ̕¤8Ÿ‚�¾ iL'Tl‘»®Ô§Ô‡¢@ÕJÕªL¦]€Öcí…o yS½)'Bm4÷í§y¤ôÅõ6eñkSuæÔ¾pû’Åjñøº*’c;‘„–âÃm–1�îXB“ÄGnÅ�ÓÀ¤Hº^Ê+jMb¦Òu¢�Ö,Ôjà¢eÞ7ŽÕâåðšNãSÐ…ŸŸ˜©CšÐ÷9ŒB-g™ƒ™ƒïÏAø¿@D¾¸{@\·§gãÔE¯éMoÑ b¶íŠb+˨h!yÙᑉӺþÄõ}v<îÍÍo¼(þìâ…>ýx}î’µé»ËÚ! �ŽuÔ†ŽípUQUQ’’-ó¶þ6Ž�”„Âï™*ÃU%V%:|NŸKŸËïqqâ*$›�Ÿ @ë'¾<²ðS‚’¥aá]¾ êzgŒæ~dÖTøxäd% „³¬fÎèOGkܦí¥P“R&_”îvËD'8~ìF´oØÿøûé ¿ß¹Kx6@f�³�ŸrÅ¥¶¿& ú+á ƒØÂûõ¶nùkë"ͱ^p;ø¥ðœ�xl%¸¯”‹�ÀÅL?ÀÙЧï*ÍçOÔWp�®7ØISq¥1Å�˜ËÏÉPs­dÚyj޶�ׯ ¾UésXÛ†Ø2“*“ªyWƒ8‹~8µµprÈutÁË ÙÒBH,áE>8?sÒ?´:´:ïà à]Lá$|S�Cü¤�‡Â}{ÌÜYã&̬·)«_›N²‡SZ1Á{²�Õ¯_Òè ó¡‰w©I¯=wEbì>#B'J´ŽþËÒ£ÀfNáÍx‚Gº¯ãáv@è±mQXmŸÞ>½ÂmûW Ç‹?…Sšîv +hˆ‚¸çEZdvŽŒôîìÝ™¤ɨ„,›ØÆ@ÄäÝ:qÚV€@ˆ :�÷Ȱîd¡ „4e�H9Åz�Ÿ•ù%ÖãŽãŒŽ,Óo9<)¾^Ó·¶giìÎBBÈÆsEmp®®#Þ#Þ-»æj¾B¸Å½øj�‚;½rz%]¾F°Fe)—*—ú°³k7|S4'd ¾oTÜ$=Eû¼œ»[z½MYÿÚÒ×F¸QiSF<]çäYvÍŒ÷iþ„Ô L€]E͵ïîŽòœüxØT“v¸æ¼€×wõõ(1nÓ!ÀÔ�GÙj²²k<Ý$8>8>Ý�g+¢"‘JèÊô¶28mmjF³@³ÀËBäBävìíOž+4ãhF©Þ„õ ëÊ3O­ÔXoS6¿6•�º·«<›Or®û~1ýe矄´‰wÊÛÏ&-ç—bVè¯6Û¤&�Âx†Æf)ļ©}z pWkq_ <»µ{ËvÁÕŽOáí–ÆIé¸Ðh÷îì„Ô¾b0Ú¯¬�a“ac9Û)Ï-| ñ——Ãi Þ¡r=± Ä Ý.ÉÛÓ…¿‡4Ôrd•jи“ÍsŸ;Æ‹«æðŽa«�aF¦U‰nkC—¦Zt9v9ÞßR\Ïyî1Óc&îpîðb²ó“m|�,VB¼^ÒpàïûN¡ÊåÊeš26U6Õ‡öly¸M ÿû~TnõzžŸO{>¶¹ éK®yO îlüsÞ?u�5—n,Õ*îì.Ú�ä?¾½¾\Çb”?ÛWÖòá -–¦úp�~<ÍЈÔHí?mdÁ.2³fW?EPÊ`^�7>Ë’­^Øhª~ ý£ÎY�:öKj¤ö»š'·ŵÄÑîí¼?{NŒq sÞLOnñÃT§ZÉ ¦�Ü1m7|IjV›`ˆXÔažÏI?÷0\ÿü Æ+—s@l#å,½3²�Ò3í©ýYí˜HÒÒ‘UŸÞE®„¸-Óõ‰qÒw?UZ>…Œ�êèÝ£BÅÛ©+Ij¤öŸ¶®9{OV´ 2êû9o¥)u•ÖFaJvŠ6…w\CŽ2Ýi3¬Ú�¦Mj¤ö§µeæÇRˆz½w¥![¯²ò"Ûõ“›2_–½ß6%†ÝSc0`«(@÷'5®/ƾ¹óAÎøm}­?iRÿî¥hœÚHÀäðÉ>¿¨O×)|û×ûîÅ–’Œì‡¹áK¸Ãž©îx‚˜¤ÒD©·ï¿ Ú<ùö$Ð÷ô“ê2ûðsB;ÆUÿõR,ßÈ  ê¬mñt�¶{sbIªXá(ººšb”b”×J­ÕLÏá5ãä]ÓºDyq½ƒØQéqoã@ 7�6�~r‚UB.VO´Bžm|° g$Øþø4r`†3 )œd5\ ‰æ‰È“£?mFLÏ õ<£ôÜÔâ\_¼†fm'RÖÖjam%›u�$G%G?ªi£»‚áÄÍÅ͙ݘݴ ÕICîNâGx„³ùió³ÇíõÐë¡’ŽƒÙ³Õ'Vìá›b•÷Áh es†¥¶Nóp®·);ð}Þdª§fO-9‡¬æ=C¡Öw&÷Tgpªo/!ïÆ¯^€K­B5pƘ9¯:yÃ7b¬ªŸ>"&3óW ' 'ÛÄÞÞ´Ú¥ýx%"8üÑÇd€OýÙN×­±‹q=½ ] ]‹š�؃ûÙärÈþ…/â8|΀r�€á¤'¦{?`Ú„ÎÊ(€7ŽL·š#ÆrQÈ1·‰ý£ÍÍQMîÍL ÷‹]Š_›ˆwæ"梬»¬NN3K3 q q ÓxJ¢à d¡œPP§òa¸C‡.|FE "ŠY�MœMÊtŽÜ=ù—„\A€j†Ë[Y¥¹–Ù®õ6eÿkSùÞ¢ pË;Ozá-9ÓZ]íL¬¯"Ôôêz:À¬žz¹/â‚/¡¼æ•v KT„úôÙ¡òx716¹’õ@ßtºÜj<»yv·ZÛù¯ÖŠÂóxŽCµ”Žmê÷‡<þºÌ!Îï°HŒÒL�½û(� J¬eÏŠÞø¡CÞåå)‡×Ö¯åZ~jß©}L[(À‰F‰FQESEÛì-XXX†¤h:sã˸؈؈ö ¦ ¦{:ÌõÍõk‘3Wà›âu�3r:ŬÀÍÞq(¼7b½M9üÚT”ÿm)¸³{©áuSLUØ6^DÈŽÁ®¸´T0z=Îö ¡†Œ� @Òú`¹°$O²¢ý$1bãñj@ô%ø[¶2¶2l?V;—Š×å‹“na¤œéÏÇB¢ ±jŒ]Cq¹��AÈÁÿcï΃©|ÿ>€Û÷%KY")Ñ‚„S¶�}O–²$‘-„ì*‰²U¶B$„„ȉl YOÖPvÙ¥ì’âqÍýœ9ßsßÇÏ<3Ï3ó}f:¯ÿÞÿœÞ3çÜ×|îë#~ûä¤>ÊÃæ9pjp ½P‚�~@ÉDw-’ róù“a"ƒÊn|®P®ú—ŒÜaL°h4�—î™%¨[ L1Þš Õˆ²,™,™?ó¾G:spïÞ)0É2Éžÿ0j Ñ¢G:ÞyYŽ � �²U%‡Z ÏÉÊÉzD¯�ïT˪¹k_‘¸YE=k+û½í:eµÙ)ƒ|·ýp×¢/†býâþº˜Êrd¨I i7ÿùE@`eܸìKÐ[$R™Â* f½8Ø0`½€µÖ?ýŸÔ¥ã€p‰H#.RR”ºm®õXNVô©逃ƒ: „�zônàð´"uuÈ0äÂ;ˆŠkV&¤ë˜©%†±'Pö°«t ÄÇ1 ˜(ÊœÑo…]²HLlìÂgp¶•Ëûþ ›ã �tF:úkêùN¡Ù­™ÍÏ´œ08Aã}+Ñ#N­E­%ôJèòÎùÌÈK$ý¦#pgQgQä}ú}ú�®t\队@ Ãg–ž¯_¼õH«×öæèùß…çv®n7³´rc� ¹ìn½q¯E‡ŠÙ§–§}^H†t·zu[²¯{ô*ŠÎqµ¡D5~ö¥©Ì6TPFÿç™%ñ-f–Bä}Ï4è v«ÒJlÄm×uëÍ®«XEŠÂEó–¡°l¦eèn¿æê¿‹$Ýkï¶2øEO'!ýÒº”TnþÜ^ýã#«iXŠÏ“ºŠ@Ãýl\ŬŬ$¡ð¯Ù�ˆevÃq…âàÍ1 ÙáÖ<zÿù€‡Ÿ‡Ÿ'¤ë!¤Ð?,²KŸ<#Ò ×NöÕ_ÅGËèqê*ä…,*Wµ�†¸Ž�JvÎÏ%qÑ©"rIÓÒ¦w¥ö$º'¶FÕ¸ß:Ñ(Ñh Wø¹\{»˜¢˜¢³ëJ÷á�4’ƒÂ¢\@L@L£É¾3|¾N]ò]òÔAˆÙôñÇ;¼mî§$3+07ƳޮS6›�’ðã�;ä^gˆ•‹6ø®z‰Ðni©U;m°èdhÛË„t²9| øªÝ Xf Ä’*Û¡ƒOMôs@vÁq7.• •Š–9Ž2\BäX㊼7 _ÔLÕ¶ H“œÄ½®ýd ²¥²¥J9�7L½¦�Ö�)i« ¦Y€,ð�Æ·ÙöPVå0py/‹×Uˆ…ãÑT¢ã/çñùlZ +;£ÿ^tà.Kü˜øµY%ljé­uŒÖçÖçÆèP{ˆ àć6-ˆ/\‰8…  ƒôF!Ý¿ìÚG3E3uNÔ툶Ÿî7ì7tWª‚wÊI¨4¡Uiµ):½àÛ¥w·'¶ëÔåÍN1Œì‚«ívuÄ¢ìô©u?™Ys5©Yïím §Š.X²1k©§¼–(ÙCØ,Ë€÷€0>*Õ·áó�Và Z1¡Œ‹/ÿÞT õD\‡c)¬bŸï¿ ¢|!¿‚Wj‚òøòCCü‚ œR¹¢�ƒ�em ‹»€� ÷l¥ Ÿ¯±À÷¦” äãŠÜåâ9e|4æs eFw£xb«g§�Ž(æ–2po-¬½Ë}5‡:Á$´­·Ãs‡§¯Ÿ¯ß€=ûË��££HâiÆ©pMíMíªLLÝc¡q¡qhН¾ðN�¨[léÓ¢Ét£ÎçÚ®S¶›�:°’­g@ý°ëöí·n5a%‚‡$�Œr Uí;_ŠÒ’ùž!]0³aþ¼’»”–Á"êpÝÀg‚ÿº8 ü¤ý7. W ×®;ù|¸¼r°n cd¿7�¼³j SïJ4•mª>&s%sÓAžfCèͦ ;l?`ðF³Ÿ€–_«Ìø”üʹÖFÜœ!—˜ý«Î «&áC]øë,ëñòä�Æ2†e©¦9—BK›8Û­ÕÙÏSÞL¹™"‰ý –'øSðçò¾å}Qk(v2#ˆÏCú’œs‹s‹ébAbAÑò•¦•&Y⪠x§”«õKÛ•5LšžTÏËÕeÚ®Svà½,q8†f3,ò½ŸêJ;?Wú—"¢ë÷ÆÔ&¹js¹‘\´îC Œm@�+VÕ¯>|ÐráT@º2ôä�Õüºùõ—WÙq‘a $a¨¥pÙùAÌÐA0É7BZiyªºPCrCr‹�ÄÈ.½ã=—¦ŽZ †I`í�8ì‹ÏâA€yúQ($Š�E/�¿„�”åõׂg;–æÉø“ŽdzÈžAѸ{o­Ò'·,Ó'ÓgöЫ‡.Epž7u>uïµüÛýÛ'ªÑÐâýÄtªà¿çàFêµYúÝìRí†ü‰*à̤md™A§Ys¶X¯»¥»3š6+ 9|Pø$Äsü†·ðÚ¨è VŇéWþ*A|dì4� EØ«‹ôµü±:UÍÝ‚÷Uë#’»;?‘mvÛšõë—¦1ý1ý7Ú ¹„{žð<�&’&òÄ�ú5q>HÎa$†.u¸Aô :z_êBê­p�b�âû´æà�Rÿ8MÐsé ýÝgïŸ_¢Ý»]§6;õe"Nîr#'¹ò\�ȵ½äÖÇ�Ï}VµŽ¬ÝZ¡Dò­´NñR„ª„šX–÷´ð¡ïÐ!vÒ‰êâb b ZËNüŽëÖ#,�% ·ýrô×b»$D»J¡áþHfeu5Øø¤n@Τ‰ @N+º¬aô0o´�)ˉø¸¬Š{úÔE!I® fë_|�¤³]§7;%¡[z}­è*VÃÿ#§N±™p¤Åp²ÀU…D]Ñ;»i£Á÷`yX%ˆeHÁÊÒX2Ãç°jë>àS]ÛY\ÁÁ:\ð+1l¤°t¯`èù~·žÈ�“„�wåvOîËYÕ–Õ–•žƒPƒpê$„H1�æÅ`¡Âdû ©q|ªÞP£u• ã´~½ùcàÞ¤±§“¡;.éù²e[ºÙ\6Z ˜TC'o-¢�)¸ « ËLâÔGúu¸lÕlÕÃÃâãìÑË£�.¤Lò�_áò ò ‚‚ÌÊÍÊýz�ª�ªû+IÁç§œ©ä;þ´uN"[šùÔ¸åž@ÌüTäF¢~ƒ‰|ïn‚éùŒµš…õ5BI\y9ÝWé%‡Î\~MøpT«õŽÇsªu« LÌ#Šÿ¥š@Ðú¾¼< mBm¼ýÐ>Å7»J¹ üÖ¬ì×>É5L>m\l`Ú¼µåv~Iö9ö¹1q†­bp¢DÕQÕQ]µ¤B <…ð©#iërÌÀý®ù]sg�ž—žWT_­ƒžâ>?ï”àµF+í}fj3æ–z²4¶ëÔÕÍN½LCNš0K¤ÚaÅ7yÓ XÏ1\­CJRtŽ„½øì€”tŸ­ ˆÉ2f¾ÝçÀ2˜ºr ¦Ìx1€øv.ù£òG‰æ²SpýŠ&Ž‘¦§B 0e¤1A’xÄÍG¹(»Bªt�ºæ]€{Ÿú>5õ¶ï‚ïÂ’CºyºyEâ-x§Îæüd]â¿8¬QIý>õYÆv�rÞìÔaZ\¹f'VüŽø¢IÓ8¥Fj¤i!À©³Û).î ’L3´Ä—í,4†ÉÁƒe¬Ú¿‚Ï£›7€‚PÆe\±q±q#²tf¸ü²°¸s0ÂV\άCï!Õñ¯Lt½]6VV¼ê!‡y ì¯AÖÇüQ}á4Ðô{ª Ÿ$2@f–¬Wê'„—å�lQŠg>cĆb„ì&——’}««)âÂSÿØÚÁk/xécècÚ_•ÛõÃí“Ù'ÃAÆA¦-cï'I@òÓòe„ ~ÊxFõŒj†ûNÖ�¬Ò{Ö®Ã;å0^âi¶÷ñ3·‹BA¶KŸ·½+Ýe³SשŸHÂ)æsüÂ"fäJ߸~3"˜))-äÐÑ«wÒäð ÒAí¢4àá‰xF`§óá`,J%=v|´z&E€X> "\üüaGrp}·Á®†ž*œY¼¾f(Bª÷’µï*¹Ùö@þ�üMnȲ;ähc;ä‡lÄ*FÉ´z×â“b\0ºqϵR÷¶ž¤OjÅ¢ÛJ±kw # ‹èïéxq¢R6îT˜níæŠRìé¢ÓEWŽ“,†‚³=j{Ô7Ù7ùvàÑ�uI R »Ý#¸pËpËßË^Œ^ŒmCÂÂCôkçá� ªïª�‹î]«CzQmujÛ÷y\ÁÄÄ¿à2ÝþTb©¶PÍ|+¾Ã:"ÿŸÉÆ|«¹ôä�Ýn·›±.|x½ù§SK€‰ ï-Ž©N”€N×Ùºvi�ù¶�l#ÍŠ.^áô1³ŠÉ¾È¼NvdéÎðÞDô[§x‡Ž7qìÃ9:Ïy¼îldÿÿ2Ž tÄq¾Chä v^6�Ö„Ý5*wÿ.n+µæ+ÿB¿Êþ"Ë·÷øüÑ�ì_—áðZeœÚ·¿M56°´�Q#EMcÝóö,¼˜n±ÛÒpR\ŽÚÕ‹c#û½²\W‰…ü«ý;LÞùnÂ=ñ|RÕ±¼Mž¡Í]™^NèˆÅcÁ°A–¦c¯0›7²ß+«®wa¯ ÈËìÂØ5õ^t—ë».÷üäa}‹õý7©ø’]o«ngÐÿŸfÞi'ù&‹-¸?i¶ ÷rpÅèÉ�½³ nnàZÐ)¢ìkåz½uËÅ_ë–ù¬þZ8U«äl¢~–ȯ9‚™'‚ðä&BR3�{©ïz“Î…Ë’ãDl^œ1À] ‘à`¡ %õb÷�öHORÇê�ÕG� Å©Eä¨@àÇSÈÙûd@Dæô©Ðè~>” Jðöˆ@PCEIôw|:«Ï«�é–(d„*ÀÖØØzm a¾'|O8� {Põpñ‹ñ‹×;®çÒT,�|.$g‰¥V†ã å B€U�_#‡‡�\m¼S7Ô~hœ¦–ŸSùZ«„ÏbZ¯S—~uª——Û îÑáÏJDKþØö«Ú‚ËÞäÊ+쬌/hH"×S‡Fg{;€Ð!/"=FÔJJå°Ïoûï¤2W3WW "}H½ò$jä"°¿!Z ÊÛ‘ ©›LŠHñkù òAã)¤m2 æ©›8“J°¿ èêcÚ)¡Ébê/Mæ‡üÕtpúä"E‘ÎJm]Q×Ì=êÌn g¤M ™×–�¨hÉãÊã:œž‰ûÛÎÿ�ÿOgOgû»Og Ø“äYÅá’£’£¤vÔ®9N_I]¯S^¿:õ=�[Îcº±²UîV¼ú{Þ7�ñä¶Ó꽚½+Þ+I.N-ö I›k °= ©#:øŽ§‚’¶š&n ŒÖØ’Ô,r‰·«$…)!B±ð·gm• b—†˜\md5eoÊÞtzñ „üäœa€ó•`p6fÓOüE‰Û`îÁ«Ï•E�©dÔ^êNô&JøNØQWÄ0> Æee;¯üüó¼½ÇÚÐÜ)X0¡¾³ö^¼r܀ŀŪòª2»¸Ëø@)„u™\áP×v8fWfבI¹N¹NW•L¶L6�Ò<¼Söt^n>\i ¯Pê¸úƒÍë¾FýêÔÕóÍÏáôìyljl£c²¢Ž:»B{6¤Þ‹õºk»2†'ÉÕ†�Gª¡ìg�V&‘>Ó€'%7Ùxù� ãG(R4ô4ôŒSAn¤ò‰†ÞEÄOz*¼V�2*Íãe"ýèôÊ´D’¢hÝñ’sCÝ• ‚ ¸·À7r0P"# Ì.¿|f IZŒdXÒn)§d±Lkè¡Öà [É©gìŠIœ¢Ü¹iU×¶·N;,Ð=Ðý¼p±Ô»$8±F±F0*ifi!MORušÜ��í[à¶Òn¥åÜgm­ôP¶A¶a—ß,ðý~!툌Ëî÷föÈÝUô©L-Yo¿ŸNX–Gfd×§€’3‚tJñê—æ“jSNÄÎË`›¨Ë·›åíCÊÜ­5²=Y#øYJŒæ¿Ýïß¿Æ~@ú‘�/uc Å[±+ëuýò¯®Ÿi|–wY84€èÒ…+âh É±F©û«Î8Ål•"×y0mØ›í�|‘PÅ=æ¼BÉí*¤àZ>àEŠ6�6�3�?ˆT†èN �“ Þ?ž«QÝ �ç�ÍÕz¼zéCÝBÝrV q¦�ï£/ ߎñ pLÏ[æyW)Ñ7²÷DæŒAPã…©³%å)9*,ÙÓ’rr‘ÒA„¹&°c© »¶MŠZØD³D3áFùii\„Y„ccZ»×ÈNõTs59DÊNm¸¯²_eƒ³_¿4n¾22©ú¾�ìîEª”$ºË†�ûx|ó­{Vø ¸7ÌrbnÔ{Ë‘È_¦vÇùÏx¾h&gI¥ä5¸hmãS%÷öå^`§¢Ù G•0� ó{ÚDÉwïÁK@X•ó©9Ž9Ž)œ$)±p¢;L£‹*€*wÈ£ÿ¤~Mñj¨ýQQÖ�숊Ž2Ú]PE€XþL—s²Sý•)øët� DZÛ¼lGþ+0µûÜÛ¯:‘°yr‹Ém£½yˆ?ö`gÖæùè۔̰Ìðñ™Ä T¸ž='¼¼{ PÚnãG,¹§»çõá8 8 BO³~býĸøPé¡Ò$�ë ¼S±;‹]Ú¶”¶% �HL¬Îú¬×)ô¯NÑîØGW¦d_L”Ńwœ�?åòɆœ #Ëy@C9íÂs<…ëþâäe$]€VgänÇÑ�!Ê–hGR2†n» 0äx ‘ªá®áæR[|BêÊY"õoÔú,G€w6º�ÔzY:,›_%_å”ä�,dâ§ dåç_ìîY´æÏ#I”-lêsEº[!mCÛì¤$ö•R28Pò#C k×�Ñ™u$Ò¨#lòïµ9<άè¬èìgû;÷ÅS8��z:zº2Þ¢Sc±röû´wÁÅËÇËk¥ØöÙöá�O)ŸR®æÉ%[�úßN|¬*²Ù6]�›sß²^§¼ÁüNÅ;?à„ŠMrˆ¼郑›¨4E‹ÈžÛ} Áöq>£{ÂLN€:ŽÃß¸Ê ¸3ëNMMK¶PB­¼ª 4�]>NŠ[’[2Ë5`�TÈV¢äû·û A{ ¿L™ =ãî“O˘˘‹C!Ý Ö»=ßC®037D7ˆj`\Ç$‚’Ý;€ó_]0¯G!—JÚn£±=”ŠŸçDj±å^ÜìØr¯káØü�ÖøµÕüø�ËBÅBåt¿¿úî¸ü§ùOõKõKe÷]K„VJ-ÅïõÉ­ìcñ€3<™3´ ´ úÿL‰K‰{qКÞ©˜üjÔ|^Éõ+aµîûæ%e×ëÔUpVXùå8\0õ‘†ÿöw­ÏL-û<ÈѦ ŽosšôW“Ó­rž0ϸ"º‚Dqj}ô”<òâF´œÁ-¤--’¨™tH™ï&b{M ~ˆUàÎöæ†ìÉ0/½ò€G¾&¨&È>:1ò, …,îl�$g~xü›5~JDÇ�pª¶ûá\�&©×çŽú9=¤ä‹“Â}Ýk×õ´t•¥ ¡bi'¨Ó¯m¯°rþ.Ž]³Ú=#߆ࢣW%œ…>0Cj\ÉÍb=pp~ ~ ìq\¸ìâ�;whšG4¡SNœP§”�†<§z0rjòb¡˜ûzûýðµƒ_ø¤Å‰µFÙQ#ܳ¬ËßDò¾mdÿ>YÉ"£lð¡«a ‘·U…Õe^nÝíáÔva<åU„Ÿì¤Ö¤[D%&Ä´ùÖFöûgh›£Ëeœ¨»™§pÖËE¼‹^‚®þ2…Þ×P�±£)6Jºyâ¼~óFöï“ÑFV\Џr¶ëd>»fFbî˜ña�N.!+M!éϦ=þE6wÑR‚Í[6²�ìw˾9Üe7UPÚ¬­‚aï}Ùß”Ó_xBt1ËUrÄ»v@©Õ{‚[ß`#ÛÈÖÊ]÷†6%<¶:ŠnP«×“³wLŒ±ú3¡•FWªü’en¶Ìx#û¿™OS-áSuxŸ_£Më\yæ<-”øuSƼËt½;öŒ¥~Î u;?Ö�l#ûg³˜Ýòš™MÙ?‹ÒÏ/ÓKô¯]Ýæ§š´"1;»é®v4¹Z§?™®µ ¿‘ý^™ÔÅ3jMŽÉ|zóØÝ•]vµ×‚oö^õzfì•t µI¥­{N!|#û×eû£jÒ„å´-–Fe2¹tÔ«û.½c¢¹ÿÖJí›lÒÅ•�†=áwy4”=6²ÿ�ìÔÑ)wÍ‚B�aWy ‡]j™ç·/|´1ô-5¥J¬c1ŽöNª÷­”ÞÈ*¥ËÎúvZŽÄ—ÜZùþØækï¹ëd³cD{JfÎŽ�M—4¼Äæu½w÷>ôTTq0pÙÔiZDûk8QŸ?Ü0¾ð’ÜŽxOà v-{ b_7¹çæKÿxlñ\B@– w QÀXÓMJd•øŒ€?½úФLLq±8R˜t¢­AA:] úº¢ê“õIL�QhµŒr©„0ŠBê‚} ×R#ðûU? èóI'J\�qË´£sòï�»FV¶n$UW”‚5‰?ªm—1h—}W¾:eèKÛ˜óÚäzfb{b{æbÙ}_;Â}ÂÂ�Ç�Ç{KÕYFAÎ:’3ê í…;4shF¬D¯Z¯úøä’È’ˆ]Õ’¼SªÜ£N/{·jëŠ|v¸‡\÷ûOß_�r4’€kˆX0 ¢™KÚf¹xc9JœÜX» 70ƒ™ä:84Cn KtèÒx Ädü×9BïîØÐSâµM1pL-"%N%NuåcK)©”B"‹\�qê�À¬˜¡Äré•åÙ” Ø74bE ¾‘ÝëÑ{!ï~ŒqÌÑ«@ù!¿·”pGï‹ ¤ez �¦„WÅì9D RzÄ¥ ‘[ð|ÌÇ–!ÀæLSÔì„©øÚ¾8%¿‘ÿ,ÿ™qÆ¿«W.*2*²b¸b¸ž5 ¥ðtÜÂ?€kœjœ’°EV"+jŠÇ‹Ç+Ÿ¹HÃ;ÕâÆõùX‹ç¼�÷ûeëýˆõ:å÷«S˜³*Vp ’�á«rºŽ¾õÕœÜ5ê, ¨Ã6¾¶ùa"9ÔËn@ípY �þ‡´ÑÉ”"?Jl™ãÒ�ù‹"n¤zª{ªkoI&å�&RÁXé£lébÌ(dNÇ«}“—im;s;³ç5H×m×›Ÿ±�Ë9ºBQi@r€žøô�’cÀÁâΜº-¤ý©ÂŒiâ%Ø×þüÓÕéï²­È�}@%%©tÑãµ¶sÍ2X¬ƒk…¥;\b@bÀ€ø€øÔOÕ�¯5!7}ÉáúxnÁñ'ñ'ù<£ë ëØõöÍÛ7±´�Ã;Ål%�“ùõ²î¤5�[?Bb½NùÿêîÑx7Üó="Í#e×]è‹'všZ0·h¾î“ã°›\[è^/€£ß TÌærÕÜ¡|æÕÓ<~ ˆ •ÝBJ§Q§±f–ɘÔ�DÚùXÄ—ÿ`ïN£©êÛ?€g ‘È”!¤2”yˆJ¦Ì$BæyH†2§ÌcHæ¹� ‘d&RDæDBQfº)2ýýî}Ÿuž³Ï¶¼ù?/ž{9Ÿwßu^~÷:{Ÿµ¯ëˆeœS†HãJˆIh¸JóHóô=ƒ Ö±$âœ;9Mœ†²r �b¨ŒxÌ�Hz´ø÷¯A* ø2SÒß")>6i‘;¤^úV×?ÿ¹íuàM‰–ííÁ'¸›ÄœÄl[[½©ç.é.ÉÔËÔ[ 좊·r›Û ÛT"xiðOž˜½˜ý¥+%GJŽœ kà‡wêæ…7eÇF]ÌL�Kù¨«²›wêÔ�­Ní]…‹®¢2D{·È~(ýgóIlgJô]€�+ŠGÝéä±È} (æÖwðH3Ñ|ƒô�˜Ž1PKuL˜Š‡‹‡Õ÷-Š`ÂFKø‚B5 ©ØËúl@\¼]Ýñ'‹öð®ñ®]X†ìë€ÈxâLB†'“ΠH0TY€¬ï*’�a ô¥†bê$d†r?ÕƒôÃñHÝ×›Ø9">ã\\vŒª›ÒûaRe~Ñ{ÇÇNÜÉ´Ê´";(˜ø¹.#/#/€+€kÁÊ×½DBí|J¸Ci‡Òöšæ¶ä¶xjñkñ7ˆ¸$¡:5÷Ï{Ô±±'Õ‰I¥�/ÑܵøÃ¿]§”�­À÷)þé"X�`R#“^@|_4ïP ‰Â!-ê„ãÌ—îÏ�-âî[â~k|ЂJæÎx̾ö{›w‚¬‡àçÎh.oæ5V»;>N¼C ´\�‹›']ù¹WE¶‰8M† ?í±K‘ˆE“P¨A-ü= ø†üSÆüDÇÊcH �™øî„_?©d‡Xò²ÙÚ^œ¾ç|öâN×�ßÖõsò�Äi¸•³õÌhÊÆb]ßXbRt±…ËEóì¯:êbï: b½öXÔž�ðìݘÑüÏ|%F­íÙlݪK`ZÃ[Ãó¿ŸŠ)vm! �¸ŸpñHÿ?ŸèŽrÖqu9ó óŒ{mÆxÈÁ©÷!8£¿EQÒ Z@èj´’ò1@¿ªÿ´�ä£å7u³5…r$fÂÝ…ªÏ¢º{¬%ïmç<Ôîá$ßžaÜ£ŠÊ-]ÒýáÝpa×î—Ü+¹7B9XYý B®†�ë�Ô8]>]>e· þüñ[Ä’Ä’JøNåÀ;5èÎ0"Wó8[PÛ‰ÔÈ„a§Nùouê´Å�q8Maó=hìæÞ†÷ô Z°í}”4¦(Jíq³nĶA3_ 4U­«Ë\Z�h¼Uòß�ô2�$û-í1ÑêÑê¹å‡À>vChàŽÂkœnPO£6ŽÕX˜Jm¸»"´"ôé¤ð+$y­áÄ?À/Å0Pþ¸1sžERÆ ””¤Þ‰ ±8D¹té’„;ïž®7EÍ|K�UK~K�hü»ÕÍ€y{*ö-ü&ü&™§VÚ�µàjgkg¯¿þ}”L…)  ²î�­žÞ�îÅä‹I½[ºËºË«Á?8–Vx5Á;eÊHÈÚG,škP‹gz4`}§Nlu*ÃRú6\¨Î^-´ ò…m]ÖœŒš´ØtUlº� 'óÈžDw­Ü+ã˜ærÝ]eÐn��Y á t"^:,�bÊ Ê *[VãÃdцF| EíRãK Ä-%²0þ�îù#óÊQ‘QE6ÈB<$é”ÌcMÄ»Ã(¬ÀsÀ$‚lI`à\.ÃqX²‘kØþq± É#«»›Ö˳L•^ Ôì?}ÉæL¨ñm¶×ìG. ¦TÓŽÚ6OÃÑ–Ó–· ´ lùf{n@ĉ±1Þ”�ƒ«_¯_Ÿ(4µ4µlë§§ÿ5d"ïÔÜÏÜò…´ü êÉh·­ÇŒÂ�:¸Õ©ñ5¯Ûpöâ>Uh×ô­7¥¦§¼Q×õ"9]ð5†÷Ûê%v` ê–0¾(ÙÚÎÊ÷Ñ4<íµ�DI¶Çû.QÀô�ä!É„8ÿGLsEhòGQZb½€[¼6³áü8¾Ðô«IFIF¢í�>_HNÓ „´á½Ê< àëÜ 8S�DUpe~eKÕ aîŸÿzk>ÈɨÙàéáO§—¢êmƪñ]Êâ+hHL¶Ç;$â‡Ç…Ç%ªÇm°Hg™`™ÐéÞéžGØÜ©™Á†{Üì7\�s�³L‹xŽxŧ[|·ød˜{‹á3xsBR…¦îtúGV ŸîÛi~ØUÝROçNÇÐ#j.@Ðy¹ÚK%ëÊžHÖ7ü]{ê_[^Hv[ûÏ�»üè<~hOh›<©³Ë,ZÔrxíV¤Vy*µ;u=h«ë{u~À`S­BË,¬n¬áJ´8×�-›‘]üÝogf+ŠÍˆV�pñHs6Óøþ  F É §ôX§Fœ0YŸ±>cfA~Ó'C4*”�»~À!ùe9d"±!/³ f}pmpmÌB ™ÇEM®³ŸNÕA�fwh �rË«ºH\&�X Ý¿š!G•WKΧïA²ª8îGÜQóLÒHqC¾õ%ÉíÅ›ùÛ‹ûBÞúÛú·µ#…¢ÓÚœÇ�#¹k¹káÃa-é�©§ØœxÃUᘙ‹\:·è©>œ~8ÍKv£ Þ©5·ÙÑã¸ü¬ wãhµ;~íÔ©à­N}ë\á‡ë,Ó¢F«ô#OÄ5mú¥ŽÍ™¬H�ª\òxoÃ2‹�Y™þ@Ã¥—Xd¬� eô´ÿDÂÆ¡¦´È2b²è´èä¸ò,Ó!2´ºL]‘w@\<Ì’/rb"3À•TÄXÄØ°¢� ©ôtl†$4¨CÁ{w¯›2‚�pÿ¬73UCî.ÌŒÍ]yˆäÔólÎÜ�ÞYƒ|xëNsyí3ç‹«7·7~!üÓ€Ú€ZÞ{Æw¸Èó‘ç­³¬³–qå-ÉA8q±q0«Ü†{—ò.åcµé²ér8ÝóÙç³×EÄU±ÎV¸%*Ú|•&¡ÒINYgÇ=ø![�êªú ®¨öJ5îÐzÇC•¾„w±ýéT�òä²G«ò{Ïa“r“ Œs³²^h¦7 ‘Äòa6o Åd°n°þfŽ^“¢6Ú›jv¦ç/óä6È %RÍ£Nî´`Ï,Ñ1H}?äI§ðaÈQ›r~”c¶@%;EÞ ÉU ¢u†»(òx¸@"m¯ñ ’÷5²wFJ-›gE{�H K¯ûŸßÞ5råÖV†®ÔA8|:|ºâŽâ޼Ð$A^ˆ’:6>Þ28©`©`:wóó™‘ó–š–šMòÊðNÅœm ¿ò+ìâ�®lþ·uá;u*üö¥s†Á½°ÕBÓ®[‰V¹�=B¡€Í±ó略ó�Äz ‡™°õ©P’�"Äó_™ hRã_†�¸Ë—%¤ ¥ ¯ºÖ³B‡œt#=3{ V ǙřUw?!0!p¼~>m>Íóò ªSÁTP§~�ÉÄQyá•ÞôKÀ�›¿±Ó üÙA-¹î2µŸP~ïÂñhÞFõqq6²st³(­ÇÉ<ý"éðkižÑpÕÂw>¯Í8ÐQs�ýAM]A£¼a^¼›ýof]ufòb¾Œî&�Ž<ªaÒÒ<÷Ò?°F=- ìooØûÔþ‹6ITóøânöïÎæÉzÍê0åJT\¨QZ1¯œº~gmß›ƪz—¢ÈMV‚ÍOïf»È–»^Ÿå§øÕËAYËÐ(iWë÷„Þô„¬~Ïs¡Wø?g¿JÑs?wÚÍv³ÿFV¥PÅsØ‘ö•&®üíËu¿Ç®3×Ð÷­—¦Ç;È袨ȼÂþ±À�‚Ú~7ûwgVÞ{—ô¬{Ç:dWfùö‹›Ç7³Ér뵫ÎÅŠ.ãM•ZêÎæŽ=±›ífÿ«™Î¹S<Öú—£â„,%ÙÅHšÞ†¾šŠŸ ®ûìÊýÅr¶‘û¹£9õ·Ýl7ûodsnì~2 -W^~/)¸úýk¹çÿ÷ÙC»Ù¿'ã²Rˆv’~¯éŒé#QZÞzqTü¿Ý ×\qBƒst3ŒáÃþ߯îôßn8Áž=9´pù¡lhÞuâžDxD?ë±á9ùXV«õ\ÌH­°ñ+Bo»nØÖ¢i{N_@ârNö p»£ÿ¦!‹!‹` �bL Qhõc(„5y¾@„Fò8Äʧø¦ÄJÿí2î2n é„头,d,çóŠÈy þ ¦B‡ƒ„'¨ÎfÏ(�´¨~×":’…d•ëË%ªýOõut7‡†åÞs*§:ðp{5¯i®ÙÐØÐ$î?`¼Ø§á¬áÌìÇìG^{µ��r· Û#vk8_O_χºï#ÞGp$ É ÉµL{`í�ôñ¦xÄ�p½?艱ƒÚêN�ŠØê”ÈØA¸îð?ühøû]b(µÒ�¹Ž�Ÿ³ìðÀíìô)š lnÄy²@!¯" 1}? ÍK€­ «8à®è#É$É”u-ÓÔ"šeŠ0Þã `p¸6"*Mà÷³ÚµÒ°Ò°â<äµdám”(d2›—Z�ù^ðµÌEÒÍ ¬áhš¦Å.»ïCË^dôFtYøo¬÷JÏaZÖ[Ö[�`\Ãd%‚ô å4;…°Ù´ü¢µBÂrK_Â2–.–Nê.¯ =­¾»vœ”iu iÐÇ'”G’MÜ}£¹dqÖµc¯šó4CRԟϹîÍü0M‰�ÏîRƒŽóTûööÛ™I5i8 %Ð ’w8ðp`uNuNx­´‹D6äà 6+‡¼Q8³X³X/ƒr·r·±ôåôåÃwG¤°Ï�Ð[¿ÔÍu´û¹|¾ÖN�º»Õ)Þþp>‘”hÔ|™åáIî#ÀÖË>§hë÷ª�8†�b˦ß< à�ø\ŸhÐ2ý¢)� Ç0=ò³¼l0Ù Ú îÑ^Ĥb‰¦w Ås½ˆˆü°9©Ùe;ÔèñálëÙVñˆ{ $ï×}H‘0w+J\>@1 Q±!©[ÒkVC­!ûN¥xÉU‚${¦…æ…"ï7£ ÊÿcïNé\=€Û"b2+¡m¦­”¡M(S†2 Eæ!S± •̲Ìc"eJBfeȘ�dHæyÇ}ž³Þu­g-Û‡ó^ïõžóZ¿oÿÏÿ÷³Öÿ¹×/³­¢Nu„4ü»s7XyÇÿŽ¿ýq«Ñõ;p%–%–£Ü£Ü5ìÊyŸx!‰Øh•9Á��?;?Xá-à- òWk~k¾|¶_>¼S§Ø¯.– D†h“ ON¼£Þ«S¡;�Z7ßàƒë]ÊæE‹½,5NSéÛ—Œ�Kí|2`ððûþ~ lÏ¿²17%³}�”@ð®-J¯uÉ8.EÓKÀéžTL©k©kAÄýÇ0±r¡ÝÓ@éWº üX�t†\gZ˜£#}ûÔë©W”DöD=Ã�Ò7;~å½ tàç=�‹š  šsÔõª¤Â×ÞÛµ’b—�¿ððë¼=£>…ÄŒ�Æ»D�ÝHêçîÄ;ïÓ´‹´‹¬zó/äÀEúDú þ8æÄœ{ ñ�ÀÖ@HYGŸNŸ^°9³9c�š7�7}•Hƾ³5Q­Ü&Ô�•’© q*+û¸×ÎþÕ ›ÃÝœ³ÆC9Š_e¿Ø™v²n¥¼£3¦;×W«a(ÑBõ÷;Û³»ìlÕU…ÓØåòÛš 'MölÈìÕõ°�®#ž^„»ÞºEŒÆ�5­ÇF?ûÇ7lc®�•Óóø‘Õã ØÚè®Ö)ü‡ò€—–!·Ñž½\ŸÆ…õ¨†ðGjÌ&¦H¶H¶RòOL_�h+&(l “Ó€e^D !½ÄFµeYYPYPý"ƒ€HW)܆°ý`sAYA…’Àeóø(\n'£—Xµ/óCê^U|k?T¶�Kßñ“Îc]´EÉæäk_'5½¶òî¬6ìnRu�àEðž¢%_½pn99Ÿuœuœ4RóM¾8¤µ›1×J:¿¿Ga¾�º�úÓ4ï4ï– Ò x§�� Ó•d$ò?ßÖ![¼W§Âw:u›rPnzdõ74âeË2d2;›ÒÂï&@�ÜóFЧ7±áãK+d±º€C ƒ šòcÿ{¸¬Š5ÎÁBa4˜B~†üMØPÄ4›…æ—ˆÂs?Šp ,…̳fзH<->�<�DÈA¢Z!oX †! Fí(ÁB€èm=ÁŽË—f ñuô€ø$„Gì›èY„­(.BOû—×ÜùÏD¹3SØ8(q_ˆõ,ÙÝe-êEÞÞ/ä)ín¸ÞÌÞL‡ ‡ ÿË…!¯† MËØDŸ2ŒÁá à ´é·Ö·Öꌲ�²ÍÇz‰_ JvÄ?Gñ>ÝVKRä®[#T§ït*Ü„YîµõÔ6ÚÛê‘O…âzQCØÂÞühî×'¬Õ�êÆ†W'ù øl'0 ¨ýF,ƒvR<à.Ľ�Ã@– lfû™š�šýÃ=}L)Íhêý(Ùï/tmñK�oÓžNm[_úeúeþt†\§�ôjͲBl+JQ�™%@Ü·ç .²AéÆˆ¥FXüÜ`.ÌGÿàTf¥£du­îŒn¢ndÜì6IÛݱpj‚CÛ'¾58Î'Ã'ÃPØPXÇ‘dþ—%D+›X‚‹\`A`A†¿Û’ÛRO²Í„ÍD‡ý±Qx§r èl±kö,ˆ¼ ÍÜ«S;�²èåQ‚ÓÜüÄ�ÆÅ{õÑ$5¹[ËlcŸ§]ˆÓ/*.ÂØx4{ !w©b •ÇÓÍþ–3.‚ö½@Gæ#ZLªòªòš¾cÅt°-denÕÞ°4‹‡<3Øú­Ý['ŒFv@„ 4¹¶/!œ RÿÀ Ø�¬3'Kp‰YHûxÜßœ†d’ñÑDý»#¦Tž£‹½$—Š.±w°ÞZ)÷C°�SÏîŽÔ/‚AÅGÅÇ+@;ʵŽœ€œ v´v”Æô”þº¤�›íøÜ�È�ˆM/%%׊\~T~”R½ÓMT§êI NÑKj>“¹NU?÷Ó©è�¾•ö^›Hø9ïó¶ûÙ¿æg»ìî~3/|îHMúω vh)\–ãüXùÈ¿Ço„¸ÌzæGÉý�ýl?ûWe÷ò¯Zžbô ±{�9)vx.çðÁ�‹vF!òñù§Oå.v¸ü ö!ü¸Ÿígÿªì³~Ι÷–®¾]?­h“N!>EZ­ôû~&ìŒq]ozr-�´=„w€gXôa@ÃÛPOD(�¹V¾XËO�Fc/×ïÆEbÌU[ù5†I,Z,Z+œAf-µ…š6d¨ 5‡¼Öu>àU@ݞܞìA ì†|pVY…LYǰ£HVø/�Œ�®\h/¯Ì ޶CXñ»67‡râB|â¼ÖËF>ûuÍNÕGÉ„WõNÒ�ï®Z.¼îúðõáŒêØû§à\k]k­J¬J˜¦—»LÈ ÜØ¾û†àÁ•s”s »Üˆ»D±µ¥@ð"Þ©Æf’÷:‡ó?K—z\É�©Ù«SQ;�ò{;+‡,¼9�v0#%R·ØõØr.¶'¿ÿ÷×w�Ò†ÌÙqÄd9ØR>‡jÛÉV O~Z¨ŽÏ!\¬Ë¦®Úƒv4˜33#‰; 1Q¼C[ EÑ6i¸œ[I‚¨¾#öm$}æHìH™éŠK›B`yÞØ_gB¬ô.<½…J4©Íüµ;½R½ô�αÜ1¬¾WåXåHC#ëò¨êÈ dí¶ê\ûçpÙmÙm7L^•½*ó`mÖmÖM:üÞ©çÉù)"Ö³?“[ë×ïÕ©¸�Nm’é˜_”Dcs!Ow/˜QØ*À6Ñwa ÈFDÏš^UÁ–ë´vø§_(E¨„ =,cÄ¥ØùÅUà¬KD¦£ÌG™?�³ô`º¾‰Ö2€’´R ¸{¾¥…¼oK>ôÖ>͈ª�ªíH¤F ²Õé¹{ƒ1å’3 { h6z>�‹¶p|RñIŠ<ä&í±ð¼Áe©-¿«$‡ã/«Qj‚_¨ƒÜ&¶Ýq°Xü°øALvŸä.�;�;ÛÛÚ‰|;$Ý Ä. ÏB\r]r�þä2r¹µŒ§˜§˜ös ÖvÔ4ÉÕσɿ$êP0q&Ï5ã½:¿Ó©ZGY¸äžehÄ>e[ÌŠ·kÔ±m¹Öâ« 9$TòW°}*Ôì2¹]C€s·^Ç£² ÛÂŰáƒ"Ðkõõ¦‚¹‚9¤W¡¦*´šÒ·‰ç+¯K3�—,âÛ$_ïµ*¶*�$Ÿ�PŒ„܃|oÕ[@ÙNx/µgä¸d¶¯I{.hC6Š>(|&zÕ‡Ëô¥mîÖæ®ý˜Z­M0ë9ñ5óçî²¶îhtwŸû9—ɱǹ̹œ`–`FAio=*M ¼Â†dÕƒ;´yhóÄ¢Îo:¿•Gºw»wO´´Â;üN^|;›ÖÕföaëÛ†ˆŸ{u*a§SÅjÎ)p:2ÍÔhtRã…Ü£K^ؘêr$%ÉÛ­JšLlüUWt�4r>f I±[­c4N3?^ÀÒpý<¦sVç¬ôð;É0-¡‰2¡ßò"5Ì@èÓ¹ôÝ8¹4¹4ƒ ¯/A¢¿�S…ü"bñEwãV¬¯eM1 ¼¸@¥ ˆ3 ™Ç‡x÷Ù¯„™™àÒ,:_=ÚLàØ;j8F_hMf¼Z(ù¦pw:"êÖaýaý¢±£#pbbC‡>†×Ï)Õ@ÎØbóžH‡+Z)Zñ.¶$°$ÃóÂóº¯A²ú�sÙÿl4“ÏgŸ²-•Mž¶vš’�ÙkS?çÅ‘·…ÙH%ɱS8Ë%o{70k?ûçgi®c ÅãDfê— �Ÿì!áyáXs_zä²u¡Œ‚L’`kL¬6Ö¡õ~öŸ—ñZ»Ûéà'{_”©ü®ÏZÑróO5{ë†1¤§­|€Dž9MÐYïº÷ƒûÙ~öï–5¦|~ènüa ×+‹‰ª+˜Å^?6É}”^&ãñüÙ¨´n÷r�H3~Áýìÿw–(²a�94–’ÀÛZ«¢x%1=¸D©s™oöŒr°QGŽòFÞ†¿œ~ŽÝ~öŸ—ùøÊ ÎOÚÌKGÛVk¾Þ2}Ñ­.]—3*«îó_ìÝy4•o»pÛXæŸ4SÊœ1!C)sTÊT†È2 b‹L™’¹”ŒÉ!Ë2FIeˆ„ÈPŽ{Ýï>ûìçÙ^œµÎzÏZ=Ÿÿ®¿¿k¯uïûº¯KÆL=qZ•ItÓÞ¼¿µ¿µÿ´Ú^Çäqé®—“²‰ y5‚"‚ÃVÆAª^îÆÁ1á&_Ê#ú>Ö¦¤¹-ìCžõ·ô©)$²”¼Îò+ÛI«Ê½ÞY?aõ¬¯àojŽtZ.e‘àÄÁ“I!açÑS‰«™:¾\üIQû°ÁGJ%ßê6~Á@´ÏÔ¥lõÔôTsÊA{4y ;pÖöF,0ðû×E‚¯“~¤(c²€×]×Dˆ�¶ r+,±%þZ¼Ÿ�@`g¨/¤çåxåÒw#�t†t†®èü8ÄÁ4¤ y7EšàÍ2ôŠ@¯E*/)%�s–y:AIΞdn×ôH 3œ´ó×éXü¸ÿ-C:¶^pÇ¥ÐX#¿µiÜöpÞ¸eã–?ÔbµÒH`Á®®º®ú] ½º.(]-:ñt;Ò±ÁcƒÏm²ç²çŒ;8:8f5Ä�™R§Ìò{Mí´©‘ÒmP=xݹI«™º@×ð )ÛC„‘ /8'Ztþ ÓmA4\•¿+ ñA“«ÖB3ÍÆ3ä+ÐPé<Õvh&P‹`ð$…¢š“À™~%ee˜ø ?aÏÈ�ࣞ2îˆpxÛÅ÷N±ä“öh×鈅Æþ@·8E¦ šÛìð J€Í@ù£­•¤°—?.ˆT0à M¿qÚ|�“þÝé�Å]úø³õ—äø÷‹‡2V,T·O¯-Õ <ÄÃÆÃ¦mÞåó¾D$L0&¸º ºÀ|¼33¼ ŠÞ‰æ‰M²A¹6rmNÏFÕFÕw*y$yäåF'Ud¦f¼è£™æRc”ÞÔÆ_p]/SÉ«™>R+Šd•Ý-@P¸0M�íßpÌÄ ë»±È ^þ*kéŠ6Úë²àÔ^ب)ÿÏEždW‡n“bå-3ˆyðSëãëã‹6P1!¶g…€×„"-Е å>àÇt™”‘‘9M@¡^ïÂL#tòì25çeN}QŒE¿±`c"·ÍÑ9Ö+P¶Ï>›“_ìÒH¡Âu·a�×™¸¯d, ûÐ&‘þÛkm™l‹lªWU¯4E&k`�p8ð`·Ô£Zuk-t] M–v õ5,6,æ\}!ûB6í]qHqÈõ¥ÍÈ,“æDÒÈå?NÊÏ™§Öœ�‡ï‘Aî;¦|$¨?éüɇ$Ö#ÖójùÕòÖyÓñKNPšh£}2’a�aA³1&_"G'H'Xí¾!™)ÎwC§]Þx°vZ”õÝÚ?½^¦RW3U:,ˆ�(ÉÔ!¨ÝcmiH–i>UˆægÐV´þz½Â&õ1Möi…(½øk¨sO£"ð°þ~•&�Ó7�טÌÄd&d&ê�±ÞÄêô ÔfðêžÝ�J~n™�¦ŠwÜ%Ëà��“�Óù ]°‡n¼äO„Xm²ãQ†é@ ³ÇmRè°@U’cì«KÐfw‘fr RNIìZ>_øÌð7¥aæô| £0å(£~èÚr,·eëaô0déì�UÎHäÅäÅØ|lþõK×¾WÆ@–âhãîW2�À¥•‘#‘#ÖG/ê_ÔçnU’@fꙕög´†Oæ®ÛÜõ2•Σd9HçÛE ZTxj$ bDãýtá00+â“ò8õæ=´Ï‡8¶×E9¦L„>óü»œI™�‘¦—,©ˆY…Z…ú)ëŒÛªOÐjˆWæ£8ÇhÙ@�tXaM->°ƒ.ा2ë-º¥«öÎãÝÅ6ÀÈu5)wµ€it¬B/ ¯²ÜÎ_}”¤|I¾|Lwr4ÝæìÀ‡°€ y¾&5å×g×ááM}Éë’WÍ©&1‰<$\?®?–%–åV^¸Yà+¨r�As~i²j²êËÝÝ@6û`É`ÉÃ:L02Sý]&þŸ¥Z¹æ_�’»¾îÛ²G«™ >i©™R!‰€I¯Òãåv.jæ4÷c ÓÀ™Zý›§¶ ñ¸?T•6ÐÓèÊÿ™[…wmg§g¤ïÜȪ¢Ì)ÊD¢�¢�R¬R¬:Eû{>R&ñ™OðBr-q-9À²ôŽ¥”¥ô©NÎ.|¦Xÿ5Ë¥Åúb«·…ì#Î4Ï`ö±õú®�gŸNœBë¶ù e¹C™I B�þÖþÖþ?ÔÜãkgÞ°ÅTîNé KÜ­#ö¢>‰ýJNåœÌ+ÙÎã,Æ3ÄR�ªºgý­ýgÕZ|xåÿ)ÃQ _°R?W�Ù¹­*âa“_Í «‹öOný‘Wºã±øíoíÿ¦ö©SuD¤?1¥CÊDsî™ÌÛÌDjÏw/þäÍ¢et,¯ Ì«èfþÖþÖÖªÉk—N6µœéUá³ù“²ÿ\ưéý—YqzaÇ9]è–~—3ñép çþ­ýïj…V¡ìvuAÑ¡U»z(}r…‹ÎnDž3$öš²VÇyªŸ[´M[ïœñdõœÁ¹ãð/¤�ä±Böfþ®-U)ÐÊû-O§ÂŸºžÓFs›Ž±Xp¥’@ÐfþV%lä¤äþ¨åöÆw#6�?�O±|­”Xe8{*_#}P{Èì”,å0¾å|%ûpÕp•¿ä\}ûõ±²2 Ĺnb9u1¤tsva²–lШh`azwÚ<)vÛô(Û0Ü£**ÏŽÿLT¹/$�Í~um»Ÿó/«´©´�é™·5›C*§*§2n0nøÇò@±à~HLÍÁÃR©Ù®ÙîÚf£1£±àOËËo‹-Q÷ów+í¿¶XÝšb.Ì6ÔàX/Sé«™ ?*‰$(6z‹@5©kâmMè¹ÒF4a¡x%s”Oq;]Zš¸g/°©Âà€#£¬&P˜[R&%SŽýy°Áã±·�Þ>Ú›s-€ØerøO2 'Xé Ìí~¥Ÿß³ñN�=ï¬õ¬5Óˆ¬j;óJ ò¢Þ‡×3 Döûœ_œ#…#UêϺ¢äÊV;îEžCŠöЛ˿Žl§ˆç3»ÎÓ.|0gߦ+²µõK)r?*{TFsìf·ÒÌØÌXühü¨Y}ëÍ6� ;Zü•>HÍ"Í"�7šÞ3½ÇúÌž¿�™Z�ú�zöPì}d`>­õ“H­ ÇOëe*c5S›œéû‘¬«w\# Š,:ªDé,Ö»­”éK|Ö\º\s“>ÚïF yøãw€Á:_œ@ÇÍv?)Þ²îå@Oð}Gb˯–_=ýAÿ‹Ø­RÂð/wG טq+�J”Ý;¥éÒäÒdCUî�wj¶AŸ'6´ãÝ`8–…÷H™`~Y³O•:@§3þpæiù:’’W•ìI]#=³¸qㇱ¥H?–$ïµÝ‹­ © ¹:¸­$^ û ûÊ×Ó׳j¥YÜ»bÓF‹îì¥BZÒ]Ò=Ïãåèå8U°lµlõ½åðAd¦*R‹BÜ„MgÏ48÷í ]/S¸ÕL9æ‰Ó"]Ó¹£F §¨èJ¿¶¼_Z�M å2¾×DkŽ ã.pˆ•‡û{õÆXt¼ì Å�ef;ìöubÛÈ·‘Wï&v¿�à÷2^bÐG 0ù_O§©Û½p³H�O�Çïø’…´N½‡"Xaw0,xbƒ+ ԤܦN·ð)ƒ¢R#"毨'%‡m ÷Iw´ôBAÃm;ª˜ßBQi:ïÉÖæ<}åÑš4º ž¹QíH¦ ¦ [Ïm=·Ë@+Dõ"t:­»ÆõÅÅØR±„±„QègUdUr¹-!ïçßHjŸºaj!&Õœ�vçâ�õîç�pQ&d¸&ÐÈXWKÉQ•Ñð š�¤YÚã{•5ܵß×™*ü�ñJ*»Wý!�Þ‰°?/µÆý|]ñй§½gJ¥IDN,(®—õÌÕ¬ûç9K!1Ÿ•"ÈÊ"K½Ÿ1þî%íNÏ=+Í#!åöšM¬Žv?PGoðP˯¨$8ˆÑó%e¨vNØÖRµ�ƒÅãþ9OìH$A©2Þ¤§8s±¿úå«eÁL‹ÇŽG]†ÄOC~¡�¯ÉO7<Ã_@Ûf uá·=)¶ÎÀrtj¢þs¨(˧ÀKѲ‘”åzNÞ¶óÚûïžw{uß'f ­[bfms½Wsýsý�ï†üHMDªÝX»‘óç3swv ¾“Е24;�fA$.s¸Ë¬Ëì.‡û÷-—hQ½½Ò<%­ÿÅÞ}ÇSù7~G²e¯BT²÷ʪl)»lJ„"„"I(3»’U”M²GF¶²GI!#«¬’ŸÏ}}ÏãÜç:ÇϿǣï÷¾ç<ÿ{ýá¯7ç\Ÿs]a{æ8Jw›Ù�ltï´©œ­MüÁï÷Ò‚¹éLr]€û›ký_ï¢#å¤U\oäqhõ0Ú¡kše&£{á7;ü�Œ¯\êÃDˆÀû`�“r•‹¡‹ái;TõH·ãý…šƒó)Ù}iÅ ! ;"ééÄ=ŽÄ¦ CÎ3�7MçU’àÙuÖK˜œJÙ½+ÖC ©žù½ÙDöJ˜Xpˆêhùâïñ¸qŠVñµ‰Ç,gôÏí…-ÐÐlØlØüh“Ò#¿ wSê¦TZÚš]ž³äÃ-t'ðÅÖád—e—õyyxy|çÉKÎK~zž힊ûuyŽÊ¤¶Ž-‰Ö·U6ìxÝëùÖ¦¨hŸ™ÀÍ͇ù"†•~ùÅ÷âÊÁt—ä,>x÷¥ãÏO¿œ@÷®Ýݨ �î;`¡ðïÏ-S¨)øŠ‰_IX�:ŠS�êù¯ç¿úõóŒQé, ¥Ô"Ø>WÄú¥ÿõš{oýH‚öCB€C€ƒ»$„ÞâMýù¤Å§E!ò àÂÌ$Ï|Ãú‹|7Ÿü %7„‘?Ô#ùlÎ*&åUÙìÚn—Tß7ØHt«¢9Úý¿pœµ±·ÿÅðzН.¹ ¹üç>Þqt�6 òÞݱ¤{#p-A-A—7; :  (D(DSíçá›ÂÏÐŽ8M"Žï¢[ª„ÛA^µÓ¦r·6µkÍõÜj‰¬"ß|ŸYWïÀ„?ºÏ‚Ò€K߯¨!i:—†Ûm�öj@™ÌíRú4÷Lø†Ö€BìP¨¨Î‰­¡*eAÂiD¸S f xÑØ‡ôÒMuH_ÐÀåÁåIÖ„ð³A&÷S­@:"=ÖØËíQ 8öæ2&‰Ÿ¢²ç¥Q�KFÝ_èNc¢n—Xö¸AÎXëí\x^ y$›åäêö®G3o‚[�)ùò3ÈhÁíÜ=˜d’dâGq|è¥ä7ºò[p�d�d§�‚;ÈŒh«k«[«ŸÜ�öüÒþ»!iý.Æ�¥¶ØiSy[›ê{j7š½ä†¹næÍ$qÈIëºOru@ U†ù^ù‘ t1™Çº�Å�t&¿9’‚—&ÊÜBלW7ªwYï² Xš¬Q)g"‰�Cˆø6Ô\=¥Ù|_÷(ß)~äbÄÅcCˆ™8D·%_Rq· á÷SÀj Ъ³åÇ„ä2àz�ª‹… "ᳩ;иɍªkŸ«Z‹ê •1rõ¶å8›³TÆ×ÖÈnÏ‘Èõ8Ͼ�[øalŽB�BP¯C¯£ŽçT´eÃã{ |%äá(¥(¥/ä-ç-—„ƒÇ»yˈ\ClÊ�â¯Ï8fé:Íw- V/<ŽXuÙéú<ü½ÃÄ9­[%Æ“8I�ÄÜ:±žOšnÕˆ`ÛŸic ÷)G{Ea¿0½—m4T£åÜÓ½ab-ÜÀqC—ËË'BÇç±í¿»å6²É¸W¿à0zÂzIšéµQŸÚ-!#‚«Vò%)ŽÑ­o=Ijò±íŸÕ‡q,¢´íúD³M~±´óVÙ]b:Ö߯0^ÿÛïp ~‡k:‘ÿ,§jŸþE?�ÆÕZÛ"¢ñ{wú,'7NB E%\Ù§BU$¼wOGºñ$éÐÍŠShYa6+V�B6èJ ìÙø‚}aIR Ò`Íì&¢]Ý@‹QK *cc’Šgö1¨Ú"‘+ö.Ζ.áÔ6ÿ7Kâ î¦!c!cŸ!ɵÕ"ÈEn#9 j �’`ŸÄ¤Ü œµI¶®€x̸´·¼êçÅÄÚûî ›LŠäj±âS»^e'�V}“îßÞ.ÕÕ™SŒ¹LÓ‹p¬*¬*¹5¹5é �Ç6蚟˜-À½"zõ¡g”t”Trúë9ÖÚ;Î�hÏÇ�5Çë#R£Ž ±}ýÄcXe§M€kc^»ñàª}�#ñÚ)‘“9ŸNwÖ…;­¨óÀ�Ê ²¸!�Ž'§Œ0ÍmL²Þ;\Cj/�·ÄD5|VH•N¸‡êûéï§}åë7Qó"•å"h+K›6‚‡! ‚jE‹g³hpip3 ¼v�—3„šáéB{o`W)�¹@€‰�0àIOÀ‚oñ3¦[´ª$ÇDQ.­¬Ü•«¿zp£›Ñ4sÁ˜ŠÛk{¬\ò?œœä _qj ÃåÔçÔ¯ŸY?é%JÝÛ BwÉ­ÊnÂlÂL|ê$ÝI:n�г¡g»_Ÿç‡oê@#×�ÅÉR¶wRtA–Ä:î;mªpkSÁEïᤃ£d‘BB³t©à™DwÅe¡Hnÿù6—æ:Òy&1àMø7©´‡ °´ÿ®­"�n¬Ü0yÄÉg˜·‚Î^ºþ^?dŠø$ uÜ£%Ä„ŠÓ8~>>ΈÇW“�ù6t‚Í«OáhhNÜ«:Wu.Ѐœ˜œøæÒ³ ø¦ÈËÒ‹ÔÌ5µ¸kEù ¦«ní´©’­M½®sÿ gDÉs Éþþé™óßòG…£#Yn·¬è*+Ípö¢ûmì£$~ çnz #ŽÇZ`¢¬!pL'Ù‡ªãJÇ¢‡�i¨*ñ�†V$AòŽGì~3Ãéh=c=óŒ"ª9qÁŽ‚ßJ’�€Chi·Ò½194 Tß;áw\òn|8"×}“ Ò8¥×øk‹Æ—Ÿ’…áÔáÛáɱtmÏZ×÷×ãôÇé?Ê÷eÁ]ˆ¸Ár•媄¬ñy��ÑOè4¼—šªéy@ë€ÖG6™<;Á$´ó*‘ÍND]}Of?_ý—ŰӦJ·6•31’‡Ï—kŽTïþxÀj•CSÙÝÅàš0€mªc⚺P*º‘�™kQRT5`žyã³ó¾ LꉾCëDU¨Ú‹Û‹g½³æQUK"¥"8éutCRÃ.qPI±Õf4e4U B<ÿRñõó0Äa^� áóI x(^·’ÆÄd�”¨né‡ÔPÅRk³Ù‹É\�A_6õêMC1×e§E±£Iû^×�lïmŸ¡aå£Åø›�pàw¦ùHó‘6uÇr�9HÌMt"�p“®“®G½šš“Ê#š#šy£Hà›:}„BFŠG©ö°¤qP×óÀ�6U¶µ©” #8í$~õHöTW¾ytj¹oÿõJ•´­& PB·o#ê7`¬Oý¯—ë뛘øEE~“/Pqµsµ¿\~ê…Š² )’¡:ïe `Mìö4í¯d§ÖiZhZ`Ë„¤ZC¼ï–sC„OªÔ!˜t#éÀƒÐ[>˜Ô6–8uÍdÙ]×Y×™´g˜\5¤ýpm#�Э¿j5xŸÌEóªKu=xÛc|ÞÉÉÅÉ%µzJ�#ÎÔÂÔ"3.3.>z?­ãGÈð[ti6ÂCpÅû‹÷Síâïâ—¹ÄÄæíîÑßÔõ/›ÊÞÆ´4” Q�ùï=;¶Ó¦^lmª+)s .ñö¯f¤C¦)͹bú•óÑ9¾Pjrˆ¨<½;‰ùÑ‘’¶qodk)�Ó�H‰ëä˜t�áÒ¤Y ÛQõÑõÑíi@å­�¤„0—_¨¼¡ �œJ§Ú³ææBNJNúq‚xÀÔG:Ä=3cË«!°U­‘ã†y˜ðÙ„jk·Ùž@žN7°Å‹Å¹bâæ¢šsâÊ™ŠtJI“É “Þ#]uï3â¶÷•IS/t4ttúÆ¡‚èV8Å*Å*ÆÆÁ o9¬�¶ut{ºšÊàÒ&Ó&y¦Ì<˜QÚӛܛL›xª±©ˆ½Ð¦Ž› hŸãanYüÕøH^Vp§3Pð÷ÿ¤ïßþ'¶ûuÖù1)íšÍ9µ‡W÷ë…kX²¶Æ•ŸÞEKþÌ×<¾b%Ž­èz6©¶ý}­ÜÚ×ÞýÙŒÈ@ë]sIŠ}xoèO.ø_^ ¢®ô¦%>`{gjÞ3%ò®0¶ý™¦EóÝU•(ÚŸwQ“V}“]̱#3ìaW½»’ê³zf5•¸ØNøƒß¾ha¶ý�íÇ;¦¦è®ã÷ô‹ìgk6)bŒtúy'Üî�›¼åÙÚÖ0ŽÓk»Ûþ{šîÍg�½â–(>áã d©ˆX-Uj±šcð%w•Ü>QNgÉ&îK¶aÛŸj/b}yÍîH‘$Û󅯦6_õ[]r¾Îºï4÷Šý믵µäYr§ò$ÛPlöÿ„V�Yþ(¼™;ø*î>òÌù3o™ÄÉhh4Jä½ì^$Iã~%¿ý/6 Û°íOµ'!šŠk d^ËsöénÃFâ—÷¬+Ó‘)h2»ú#NÖ…ŒÒíS¶ø¦7؆m ™f²u¦î�QŸW6¹¾»%)¸D‰ê^©kÔ"s¢-ý53 j)]·Xlö?ÖÒ|̽kmN’ñÙÈîÒs _V`Ó1‰ù¶ÙVþéqnSh³ÞR¸“6¶ý™VŽç¤ïþñÇgM£ã#Çd™ Ïàúç1rë½hh8ùnêØ»ïpªÿ¿à²2²©Ì¬d”ȨÈÈɲ÷&duŽ]dd«�‘”ò•QF"›¡ Ù YEöˆÛûûù�ûüÎç·?~×ußßë¾:�ÿž?Ïu�Ïù¼ÞïWÞåKz„åôŸìÿwæ�›ü\òp»nëÇüþbÃ÷§½|S(£?ÆÒ¬ePŸ.ÆÚµ8ë@_qŒºá" |¤ÞyN4×±562Ûµb»ª…¶ @Ìé~rÙÆ6:�†¥«Ïå¥K { {i.@T!µFâÑ�Óîh�b€02àH­¶>¦„â’n þ2ÄÚæ!¹o)ŠŸè·êÖûÈ”‰6•ÆS®�3õ(°2»xulOnùª¹ Ž ÎÙ¼»�<¸óüçù·ün)hYDªB2¸[ü+ಲª5ÄCÄC¼¯<[y&v>é¼SKû£ÆFÚשÌÎéÍ•ÝÚ©S[�º['“ '¥ÍÝAÚV©WI“šõ?pí»D0 Ì‹ð_ahp&Å%#wG !éf®j‘×bŒ–«©âãt©_p®„ïÁt*t*¼uÙ¤›p.†|šµO-%àÌR~é«„”ÌØÝ+W u!ýÇ!õF2�…ò! 4^1À} —,xƒÕ1ÀÖã–(zî)P@Wy†½QŸ[‰¢EügÏÉÈ÷$Ä»©:–õا«¦±o¦¼"µ"åfIøÙÓ î¢ò–ƒ") l ~B\šq•°§À M MFkóêðêø�/N,N8³¬Â;µØo§—QM—yN%™\ä™pÃN�ªÜêTJîf®Ï7Œ"ËÛLTz³â_pín ”Ù| ùp)½DÅ£û$»É'1:|¦xñéfÕSÔ‘â0Ö_­¿æÆþHÇ&…±�èXý ¼¢íDý%ª7r)Žþ ݺ2UˆÄ2Ä(žô%Ä߆çZÈ]àX'@”Gž�OñM€ÐLÂâ‰5äø®‰ò6Fú$|�Iµ¾Òö "Ó´÷ ›)Ÿ�ÉTÑ>þ½½zaeÆúõúõ£¨êöW¹pQjQjííæ²?‡”k Ÿsp¥8]þWW|SÓÕÛÕ›Í_�_�?€ÇVÞ©þªÇ'¢4 ˆï?ÒHAMïÔ©ª­Nݱ§'‚óä%ÂØœ‰zÐ?2¾�ë¢alpÒ*î÷³‹i\<©¶•@Ú<¢X’_�ÁøÈ~5Ÿ¹äÕ´t›§�§™|!6=Fd8Ú´á™IÀ>Ýüd€ n­iv#uu½¤Ù{ÄóüMOÈ ­ƒ#Zjpü405aÐ…OË:ð¤æ¬u݈Z彜O VËøüÈØ7MØ#lj­Uï—Âtpq)7¶·„i{c OŠ5Ü4ܘ˜2Á­Ÿ]?AA¡HÂþ;éˆë�[ôw8Z)Z)d­]­]ÑûÕ’Õ’x¹å`øy¤vò½åM¦7ËÝù|ˆ�Λè.l<©+÷rÏËN ¤àζüå¦={[ùអ3b§ WÄ{¯ÎÖéßé¯üæ1#¼Sî�ûm#'Fý‚&¨�¾ÕíÔ©Ú­NQù{MÀ¼Ð¸†áÝËßa™é±’&�K.jÓ7Ë,ú•(¢‡k¨Ò—ØuÊçà^õMcVÌ<Ÿºƒù�€Ñ¯} Øô3ô3ú#J±å`¼wCK­m23túõóm‰Š»W�FŒF¦æ!”�'÷V­ 7‰}¾¢A;@D‚€äcg›ñáî ^ 5HA˜}ߊ¾¸&j„O|äµ"Û ‰8‰x³_}{dšp; l/χÓhŠxŠ˜Ç<ût[Ü‹�‡7 Î ¨èd!rpEêpÎÂÑùÑù!«Ë¨ËòÈß—¿oú̓ީï¾&'¨Ÿº}&fÙ,n8I¶S§ê¶:¥c"NGñþß÷—?­ä:øŽ´Vì& W òd@ÂÛEã÷ï›IÑÔ3u€’¿Ë·9œßƒñð¶f*>�ÊeÀJ—“¶‰ä‰dd7|µ�šÇ²9³(ä‹#ƒ¸Ÿ£rÉ)/'%�4‹B8Ø8Ô!áYyÔh_u€ÙX€%dÿ|¦Í€ZJï�}”�S•ùš¦~g®ãSû¹½îÆØ·ùôÁ·Ï7ä—ùÜYMomél§fÒjÒjv½sa nšbšB•Q•ñi—<*øö•%Ã�e§�bJbJ�†£]£]ZÆŽgÑ�âÿ×ý¨J¯l6õ·ÕDþÞ×®´º�wujšykˆó!ue4èÞ™ä¯À¤á |ºC�ØC4Æ!_žVúM¼½‰OtYØKߪ 7ÏP)A…ªºÛ ùv'¶·¤©°:;b„V®Õ‡¢¥=ek_%¹ñâÀ•<þ{NºBº‚¨ô„í [Žœ9‘9‘¬SŽðN�šÖɰ‹�šê´ñºáZ¥pc§NÕouÊ-ûtÜ:%ñi ãÈÑÒg¤_Ä.Ã4e€Œp:�†b½WDü!@™*âoço4`¬TÝ禥P¥Mh`;˜y0óå`õ¶f_ŒÝoÐBîú@í©|ˆƒ‘hïXäx3;3»ð!HÑ-ˆ·ËEˆ¤§£+šQ(à8슼„�E5к\ßnÿâÛõ„Šò¯ï´ø89ZûsRW¿Û{wmJó8÷�jOºûö”Uî1ÅñÆñŠÞ‹Xãw‚s÷r÷ºp# –‡Áýmd?�þ`REREµOMçMç Ôœœìç(´á�RL‰þ¬ÂÿWy6+©'1Ãê™�:õz«Szî àÞ]:هѴGéAÜTν¦w¸TRŸ¼éì#¢�Q¸¾­ËŽ”™™tÀBÐ/VŒÒÆ|B˜~½Ú¿ŸƶZ´Z4!ÏrÛÏ:Œ0´5ý+…@sÚR4„ueo ÛóáhT<*þ-ä/~ˆe~H;$”ôÐ]´;eÀ¹(`09� Ÿœ±kìøujˆªç*³0¥¨>~Lªbœ»Y—ã÷ Ðf~X¶~\'ÍRv{wë̯Ç\�Q³/äÌ©€S”Q”™¢Ÿ¢¯Hao:94†+•Þ‹Üþ¤Ø1I;I»¢ Ê¬Ê\�sÞ©÷´ÉF.uštŸéUW¼ÃwêÔ›­N¡üpå×§è0jeª†­zKÚYp�×þ¹zDìWÓµ„+~î±:0/£$NG.`ìzhe�OE ½3`†šË¶¨±¨qÁ…Ü[¼×(l,ÁuÂQÎw)ïClïf;YóY´4µ4)IBÈ�}‹Mˆ³�±Z  q ø¡î‰O  ‰’Žý±ùb+v�#ËŸ¾kÅôïŒ�v3( ;E6>«/90Ù³=¢¾©¾<Ž<Ž3*c­äúp�L™ˆ ‰ -7äeÝi…RÇeÔLö.','Ì×7þqüã��cˆc±x§Ø/˜î?#ŽâΩ«]Öˆ¹ê±S§¶:gîÞ§ÜAŒAµK;_AÀ?Wý®W ’Ù42e`ê$®>Ù[€3Ù² Pš>Ü�qy6� Ÿ=#ÐH¬Ž[¶ÊJ$«è¶VŒôL4«L›á¿1'ý »ô>"µÔ,·ŒùŒùÇÖLjúÇ—�ö¼£´h�fÀp´ï>{è÷҃¾g š�δUð™ziªðñbÇŠú5njúµP9~Jº…�Û;s¥ŠoUzUú^+˜Ć C†©þTýÉMºHÄá‰ÀÕ˜?Æ g‘h‘è*g×h׸ìAlMlmã~r>³”¹au-Q³÷‚ÿˆÙú C¦•�f––|9„w˳ê�yÍ;WϤÛkdKGu}D–vÙ³l û�Åg¹Û$Ä5–ûþR™iª&OøŸg–Nn3³d%jC%9Û2AXxœËÍh§®7nu]ºT#Î;„9ãþ±tUI¯=Z¯Zp]b»Ì 0Ç4H"\'Z%Zå3ÖÒ=Ê‹ � ï}®�ï”ú‹èÎ><ûУ4À]~ŠŽÒ‹ËT©@îĈs¶÷ñØÃ�Ë…&…&ãæ�Ð[ÆÓx�*iæp¤É7ÀŸË—GKƒ°ßrè%`/ý[(þÄéêúb÷ùœlÂ;ZZší”sÓýÙŒ'}#ƒW蛿l¯8Â.7a9a¹‹IZ©(n!x!¸H´HTf\¦”2 Âþ“ÆøZt’·zoõ8؆í†íd§Ô§ÔãŒÄ ;•õ×ÌÒ—ZõýwnÆÝt¤ªÑ­vÞif þ;�žËpo¾7S²íû%šºìÕù/Ÿv³Ýì"ccUJÚ:}¦^Èþ.@6RµñùðX°ôu6=ëtå(ÍÑ"„cXh2ÅþÝì³ ¥®k¸Íÿ¦û-ÛúR®Rl‚àq’°îM…£L15��÷µùTžhîf»Ù'ãižý~eƒ(%úƒD µºÀ â@[[¡b²×W‰¤›¾Þ×{Ž»)íf»Ùÿ…ÌX wÆm7©ÛجB½O,ðþb£÷øÅC¯‹OåŒHiwx \A¼¹w7ÛÍþnYïµî#&Eq!–å˦¯ ŒU߈FñªÕ=² 0±Œœ" Áy@+ïV·›íf·Œ²õG½ÓXò¶ÉrÆô0<ΫfLÆ¿ ;»Î|`rŸÑ>L¬»ú%ÂÕeÓ÷ß�±ÝÊç=æ—Õƒ�M{(È@^ŠÆãžÕ×9v–΃¼ª:)þ«áZù;ý¨�gÁñ³=œzk§ Š¥g§ü~º×·bštôìru»=–ÎZ|ÀB'àO9„=þ€Œ’Ê MRIl~U1Œ¾ÒªèÔÆÕÆés¡é*”Š”HoÚ7F�Qýµ9H4±y'aƒ§ YY˜ $ú ¤›<õ$üùW-$Ï(à  à?ŽMÃ`¦9åø8‚¿—^ds§J*û§KQ“Z×G{V�ùŒódnmvmo´âŒÐÞ ½_iÓÞJÓÁõ‹ö‹ SSäê̇KAFÓ0›}'…“õ•õýr/h,hÌÞCDODoV_ÍÞ)*Ü �Õ“ RÝþ’²‚Ò¯;uªìçq#Iƒk!5-A9‘f1B(-eÓ‡u=J`¨¸ú‚Fcþ&‹z{à†ôUnàËÐC÷qlœ¸ÝèŸ_¼‚.Å(Å(•„ ö„˜ LDºU,*HU êB¾g°®™×î�WòQòq} y" É?\ 9 Bu ‰yÐÔ\ÝرQ¥n) å8 ÇÕÍÎ!§ÍÇfÀÆöíÙË©œ´g‚.ã(”±äÁïÒügŒ…u”G(�X™S$X„ã)â)ZZúþª¥äBä+&‡¾ÉÓpssF*žužu ~�ýS±ÛóãŽqÂ)6/Í{Ñú5õ¹ªÎ^‚;uªi«S… AüpúûªBQð]$mνPôlÇtÅ…u?€OŸ²r´Ë°S  È7�‡Œ`(ïIEáåFHaCÔ�ã ܱMòFAAøã·(ºæz³KH³¤ÏꥂV§¼€¯Cù®]/Zâ %¥�¶t¿¿žºó½Hæ ÀC. 9=í6 ·€ä½$ÔVÚ�ƒyµå˲7°9EÔxô4.ž\Iíº’ã³xüS'f®;ÛKL*Š— —Í£uS<ºþŒ’’sº{bØG!Å¢˜üߺcBü²¢©€@Rsp”€ÇÌEÄØd6r ¶¬jòqÃo $’±¹SVRßóîn¦Ö'öOÑÈ^†Ð“�×·—·ZX¡�¯�Ÿ6íú£¸n¼c¼Ü9:Ÿ…ûR²Ô�I¦F•®Ð«ÐK­¼³þø»økñ×lfA+ðNU=w·3·éýLseŠ+±ãÛN�jÙêY´D&œA9J¼�³y¼úÒû²YLªGKº€�vWªUâ0…éQáKy´ï€ži+fÅVlÖ? †ëЬ�èö8ïq.•Œ'G×wå+ÒͶµt`ÓÇMÒã÷Žlç6×"Ë"K‡¤f2v‚x’*ÂW€ä2È9·-®-aƒ plZ¥€œ=e¡³NëŽÍµÆyë“8ížäªyÒ‡Xèo.ooåîãg~Õ~ÕÓ&*‰á&�'�ñrñr™ Y=¹þ8Ó?’~U.ÌÕVòǰd¤uÛPJ Ÿ¿‘�ûlìl«—Ã/Ú¸ë­|2aÏ÷þçóS¢ÛÌOyëüd}“e°q‚¼íõ¿È�ºÞºÕuï ½¹pQ¾ÒÕ(ÉY=Å|Rº …{0É„J§ �ýo¯)dœÂtv•Õ8ú²xhºmè�BR”΋Í;ç:G`8ù )º°¨°¨J²4tŒQhä‘|qΩrüN½—R½FŽ"RN-N­}�>AHä�Ÿ&�’°,'¤ìi`Œ ˜=ºÀƒ ØCÅyøÕ¢’¶æ„ÑI­`Ó´“ãP†dfÒîÓZîûÂù8ÇÃÎXöl/gÁde ±„à~ç–ÉNçÎæÎvÇôŽ)¯‚�x‰äµ4&UÙ'¼pJû”ös¼Nz�ÔðÊè´ÑiÚüFŒÝž#?Ò<�ç°ºÐXΪ|¬y§NµmuJgcÎ\±reØWìQUñi¾ç˜Æž/·O·ÒŸ›Æ½�? £–Ì©/Ë /À†ãcQ uhÕØÙiÖú�5 ò{±ÃÎ>O{XŸ¸¨Ѱ«4ü).ØaÛa›`Ñ“„¼= T áóÇ3Aª‰b)�9IlBÈ�ºš«Q÷!&eNå¶ÁÜ�Ø´,¼©l È+þÀ;*¢ÂÄgðÅ{{ãóÌ‘�ñ�ñËõj4OÃ™Ž™ŽE›F›>9JQ8ÅÑðÅzc$.Ø/Ø/^…£�£AíÇ'ºOt«F�1ÞSì d�+ ¥ëÒŽŠûÉže°S§Ú·:5Ãï\w©üšŠŸMŽ{wJñ¦Š˜ãÀ0ÿpá^ÊHLáǽI�g=›m@æK#”ëa·²±Y^é TŸs£+³(³àSÌCG探'†¤A<”p/JéB ¼é�çh³Š²Š&­!«Mµ¸÷�öÕñHªtÀ#_ É3á6‡O¾ký*ä,íãkD7è?c£ÒTSÀ)²§8ÑW?=؊̧=<³>c{ýn?„ÈÉ_VÒ¶²ž‡S¸«p÷®ã]G¢Ëã$O» ˲˜"Å»à8c9cíñ i iÒEÚûÛûŒ¨à�º8^qí «âÝlZi>]‡�;î;ìØêA1æú4!M3ÙK>÷�´W'1L`Ò:ø„n8 ÅǤY×L4¸ÏìnÇPþD`£Æ¬Iñ§ËW}Ðé;Ò29L�ŽC…x éÑãoxsz{“s#ÇÕÕCø!Ç/BÜñÊ ·‰>"U¦ ,nt6¢þƒ BEŸR”“{ ©a›^B "[æ2uD{?_²îã1]ü±}3Û³Ï Š è§è—XMIX”�ÃãÁ㉷ˆ· Ya&@^ÝÝ¥�ŽX_Ž—Š—ªtÃï³ßg¿*ÿ*ÿœ€¹x§Þ6—“ï7>Á–¬qd(Éì×N�ú´Õ©5•æ7pãW¹_£ØXèž²®jY®LÁ4dí¯ dÔŸ¤*ñžNÁtk•™(æZå4½o.£4%s‘`ã³NDäµO¡[Ì\Ì,.n™A×#…rœI�ÔèÛ'¡vOGT]õæäåä­Ñ‡„lB„qk‡ VÊcÚH_x€?ð�€Y9l¶—õ¢Š‘+Ön¯æ%™a#½²—\ÁˆW=v¾Jp#Ñ–=h~>Ö{{C§z“ ( (­˜‹ìr…àhEhEìzìz&º|¾B\ù0IKÿó|5äJÕ…ßëìëì"544�ÿq5&ùë}÷§T;Æ•º¶áµ3kì4“?;®!8…–*öÝ>•ØuŒåjpÚ¿’Mº}¤S•8oÐ~™jm¬…lÕ¬ÉCƒÝÍ�fî“#›r·ye» )Ûrën¶›� ï·J‘Ùxb±É{�J±/ëA£¼kD/ºÌ¢„L;:#©GS” 8ífÿÿ²“4>ÎÁ—”Š:s”P3íckŽæ*?ùÄ*«5çêÁ¢YÂMê’$·þKËv³ÿ½¬f­M±0¡ð]}®®–¢}—ã:�ÖK›Tîµ’ù&#ÊZíc⸖4»Ùß+{gÉ·–vo�E£Ï�¤&×.·¬cƒAbO«�,¡8§¼n&{à0Eýņd»Ùß+ûXu“ºÔ#5±û�Q}ÿñ/ñ�숪&kÜ�Î7mÙ‡t»Ê~îQû¯f.qÚg²téÙ'šœyièÂÕF„àç÷‚ê@æx*û©”»‚�?v:·tn�[®ZúÂ9½×cAùCßhªy²S &ƒ `‘°‡ ¶ù&"ºÿ`ïΣ© ÷=€›2‹È�!™ÙÉ2•dŽm"´™ÊeJBB™‰P2$DH2¤ )cÆ$CE„„ÓsÞ³ï^ûÝÛõÇ]ëÞsÏò~þû®÷Ïïþc¿ÏóüžQ ˜è[ÀQΰ¢ÑV¦jáó¡• 8‰k `óöVbæ?‡Í]C; I|+ SùÎ ¡Ø÷ŠhyMkÏX¯¤'é­ÕTòsùçòe1ÈÌnˆ¶Íº‘ÉY‹–ü 0ÖIãs(³ô¼Pé © mÖV%&ÍÃg±œVµyýh�™—æÌÛ³jF$Ñ_Q[Kt!ͧv¡vi—ù>Æ §½¤½dqÖâìgòÑÌ™|Èõ=¸Dè†Ìà„â„â3ÜIÜI¨=lala¹Öéá�*'¿pådÎ�—ËŠ‹¼ïcVnmש¾¿�J38¡ GfºB‡a£¯ýÁ©?$ä .²ºƒ{j¦Øã\^¶¸Zâg‡+é¬ €]�³ƒ×–+ŸM«û €^C86cc�œxô¹X4§(Œš£hÍÐä�Ó›ÓN�ò w×–úe‹VÂVÂÈv‰Dî=› dù–‰Y$`»è�+ùâsjH�mu¬S€$}øtËM¾ŸêµBR.“ZäÌ8÷ûa:Ž©gÞ‡%b¶FÜð�ÒeÔe”g­™5IÎ/Ø/X¾Q¾Ñ,¥#¡H’5‹KV>Ò®~¦~æq€±ñˆüÙ©³S»ù^>…¯÷óhÆ?ðAÝþÉ'«p¥.{Ëèõ~’Ã2û%'x§‚Ë?ÿxž@§sÉ@mÄ)�B;N=\4¶q€�aãðUÀx?†Ñ¡ÏðYáQYÖ­óü°e4e4­X$4cc ÀØD;–«– èù�@ˆ�ô|i- _¼OyŸñògb?ML8nve˜Š–qh•Èróïàóš `Ë*|U• Ѿø"hCqDŸÑ=e1§åŽæp¥4X²¯i=…¾Ÿk¤ ¶÷ÞhbbysÎXÜX¼c­cÍÈ4µ�R„kDÀÿ3QQ]¹IYÙS_>_>c³óðN©ªvæŸX¥õç=ÂAK6ñm»N üí•-îh2Õz¯÷¦’æËvÒ}“Á¥ÑÑðšºMpr³ã¢©¡N‚Ì„Õ��D•yŒ]NUÝø„~0fdŠ?N`#ä#ä;ÀÝF�-� Üö ±¸-<¼°î+�tÛß ÏeeN×N×®ÏéZ�$2'  ƒ7{ÜМéõj ‹{½Ÿ~€É]sPö'd_‹r°–%£>’—ìw-¬US‹i-.*ûÞ…íÝšÔ‰O»¨©©Ø?þê;×ìÕì•y4ó¨ØÕjTl Ä…ËçÚæ"œ˜¨˜¨0"m*mêîÙ«%WKúD”OÃ;õ"õÕ…Ãû5*³‘çÏžx´]§ÿvJàmÈ{¸Ë©Ý·<§#ûHêCÛýpµ±}–k%³Q‡Éœqy_Kî Z÷DáÁ¦íÙUŽø¨ßŠ”^õF—bë¦í¦M 5ÈÂÖÓ‡¡ÕŒ–Ylš(§XÍA6uÉ<ÓYeïkžÖ<}ø1„ú"Ä0´KÛ>VŠ6�ÆsÕT.>¬€ªÝ!»lŸB„V9�ÆNúŒø8®ÆZ‡Z¢&ƒ™JY/<ÙÛogÄEªik¬ó¾fIIBÅÝútôpž,ž,.Ü.ÜéüþZTÖJ\Ã�Dzp““g†R:S:?>Iz’ĬÙ$ïTMÕ8ŠM¤…ôÃ+6Rr›m÷º ýíÔteþ œÅñ0 šÍô´¥#L¸Î½älH¢,"ê‹jp1þ’ ð¤–H– *›Ÿ,%ó²+œÛm·Ûà.*ÿZ™ÄJÈ .ʧQ¸V¦V&¢@JJ�Ä•‹=*®R1Á;!éÚ öÛüCTUG�!âÐv�úô·SÏ8sáäªËZ0žLONší?±©]Œ‹å0„t²tj}¸…+¡@¾¨¾ð£ *Ùx„‘�‰ÏMú3+€²�Ú7lYYT&¶‡°Õ_Ƹñ-ÏPºÈ­{”Ñau¾¥[©Öáán°9T A¾~|ÒMû±M!h[ÊS}hðyßÄ�Ç¢Ž÷@WôZp¼JÂç|9�¬”K€¼z¼†óìpÒù~OJ®ò­å¦M٧ا°<’,’†  JM�¼£™pkòâ-®S$85Rú–Ú�Úí5M…F…†QÙWt§ÿ5+ì|ð˜gÉ/‚Ä ó¹KOQÛ­÷Ãÿ;ÆÍ™%ª´Ê|Ñm®Ì÷Yà´°“ýçdåkä2Ò1iwn?¬*ùzï!ÇxÇN÷é¬7ñ�2ssãëÂ"�Û£v²ÿÌÏJo}ö9ãåX†<ófËõR¶5A’O&WÔŽ'Û•éf„¹œjßÉþs2¢Ð;µ^ñ¾N½gÓ«?H/úzFÞ£‡‰ÇB�1cÜTjõ ÖOü`;íN¶“ý»e öá_è¦��)Rk*“MоnËJ~b$°–ï*6áß8¢øÎ–å”ÎN¶“m•9¸ E·¥•…ê”Xèùµ¨4�”5vHO¶`N{G$ÜÜd^ã…,ª­z~f'ûÿ™•Í�üéÊÖb«!ÎéY篛~7ö³àÀuØ¥„æ™uH¿'ÉÃ%õ•ä0~ÌdÂq¬ CÑš°e[Và'Ép6i¤4ò#çãlŠJ“.h¿}™�È·œÑ�\çsÂåÄ™g›Î6E߀XðBŒ^¢w ñ·Ý´C›OâDü…$|„l€«í{#]!äú­9ɆøèÛÇÑd+�»®ºœA�<ù¢Ì[Ÿ¯Áµµ}T‡õRõR5x ¦¼…+`*`ÒPÖPž'þÜen i+Ä5À~Þ Îì£ÙGá‚NÒNÒgy“&T•¤Á;%2I¯wŽézƒ"ý¡šv)Ûujìo§ÆO®žƒ q{wÃ0BêWánæ~j\¢7û€2±Ù²¹B* ®A1ú@§»þ°fÆÎ‰ñTé>~œË@“ü6b'b§U�ÔØ ·!ÆGÐ8owi7§X!*/ÝnÚD\üö«üWyŸ:„ÝRݼr†©¶-… x¯¤­ó‰ác+ÌMÎECŠ+ªåÖæÛáóì›*™å†<« ñô-ÚîÍÚÃ0Ç{¹[{×üvøáðóӊÌïtà|ì}ì9«8«\¢™‡!+r¸~ÌeZÀÅäÆä¾c&3&3&Ò-I,Iœóä�Fwjö_{^ãã…ÏPP) .2!²ßߪS§¬Ï»þsÆè¿º޹Û$as°Ã\w7â-y‹DÓ%[ \�-Õô˜äåFÊÃsëc×į •é $’â%h¬tŒ�jƒÏ»É9-9-‰ì|éDn€žD;”óûŒ pô—xD›Y†ßjLðU2Ur÷#ˆÜ~ÞÈ”ràwþ"SW@ÙÄpr¡1fXUY"3& $~¦‡u£é¯çI.–ܱt+íëpná‘*GŸC]ÏVöc¶¯R¸W¸÷zêÎûîCpø|KFRF’Âü\{$;é5{Žþý·î+IªIª"Úµ/fÕ±Ã;eµ1ûRu_Âë©·ãéL}+¾ÛJìa¹S1SNx¸€ è$YL\”¾JSè ᢘ¼€k—��T£^±! ¾y«T=d—š½Ü;I4ŽCsÅnB(-Áó‘›i™iÙä mÔ�,í"9¥I”,Ÿpxºyö*䋾zìùí ‰l‰ìÉÓÞ!ÈBIð)H¸)÷C"kc@Óà­ð­CSæ i›3Az>‡Î7K[£ñÍ;qš=—3ÞïØ¶Hn鯠Ÿ l£‡VøÄ©néôÒéæ ø§Ú£pQ‘Q‘ÙÙyy©›ŸBØ ‘Ì$rµáú»û»g9]¼]¼Zv ì>Xsè8¼So/ä}¹`$¦îøPìA:Ûj�Zîw!¦ Ž…ñw Ý¢¾8öàõ´<¤¡ÐyAà¶F‰Ã/v ©!’ÛÈÈ’|žýó&±Üø-¹h|TŸý_¹âä’Ý“Ýó.Û’£ò# u âþk· `” ¥ÉuëpnѧÚê`æ`†��\Ù9Åp¾ò¾„p˜H(?:›–„æ¼ÐqÛÏþ+䜊ù¢[­*úBz¶#]V©²"ré—¾,¸7öÌü_Ù‹n}>ÅJÅÊiê^„g!ÏBö ìpädºRšŒ¢«·ÿÑþGâsX?¬Ÿ9OÂpÂð½qx§ì×ÿ:“¸· ?;R¬Jè5\õÜäËr§¶kôÀ³â ñòÁù¦®»%¾Ï I^¸|ËYÔ¼_sÌ)9ËR š­¤Jò0’tLñ¡¹±Ó˜”k5'w$þHü“„ HrggI‚˜‰ZSc ¸´³�…‡Î:aY5Z9ª9ª †�·žëЂTyKÖÕÔ„`½ü‡04Ú1@Á„òù†xH»›°w¸¤m4‰!Ár;Ü`U®‹È‚:Ó¹óÒ÷¥~æ·­,#½7ÓÍÔÍtK×½_Úƒpƒéƒé^ǽŽÓúäã>©C Ï"ípßq nnÏÜž7}7}Ï)>ÚKXø^옴BìsKF“sg27­¶ƒÿæh*|[ÊáÁÁÙ²ßZj}£A¡×±§F˜;<5{›0¥U6‡_ùõÏ;w÷’vðöB;xÒ+ìà¹q°FKŽš{HQü=Î/¸Zׇ—».ð©ŒîWìØɱT¿,_w©ƒ©H¡LXJ ·:')�aH ‰m¿Õ 0·Ø¼HhÊ$™µ¤ø‰fëíÍæÀ½ìÐSäbËcË㦾\$·XLbòˆhì8Ÿ P�ÿ<2ÿMö�të÷LåLåzgÈOÈQeÍ~ˆêô¤Q##ÀÕ pΪآ‘H„x2®MAÜäsÿ<¯JÒFS3V9ª‚Ý«42¡¸/r:Á­©¸^@~eã‡0™ïíßÛo×KL¢°‚‹Ê�ÊuºìtyljÌ?- 2›€tõ�î ¸�eN4ÔÔ':KTJTžñ(!v[†û¨wÅÖøLxTGÔJj|^­S_—;Õõ…/œÔ^fYfŠIǾƒG¡/DrŠYw1v–™‚‹J‘HƵæ<À�]]*@MÛÞKâªøNÍÌ"^ð”è‘3’6’Þ|‡jšÜº$»Øˆ~˜–:Ü›½í w nDHî{·ïÝl:D1î^ûÒN÷”�ˆ«˜•²îäß@“<ØÔêyz¾‡°Ö¸ ²1ð£ÿ¥�Äjg–DáÚöà�Mìñ} :‡2gVÖ/�üP&@& �3EïðY¸mÊ۔߸¼q¹ '8OUi=ŒŽ;¦WÞSÞÔ_ÐSУ”'i%i5$G(ƒwJI—Æå¸-ǵVÊ$q—si«ujd¹SRbàz–ìBIÖÍ?:«û8BSü!ÒfŒRà9¤éýkúz*RÑÞ$,P:4™ P=®>K2Üî�¦Ôä£!ðr§C-9újúêý`rãv$jLDÏ_qm*θ)AñÌ)¾wŸhlÐØpÏÒ™ ÉÛTÀñ—ãb$:ñ ØcÀ'¸nZ@ó%°ô~Êö÷µ £sáÔцžÙ¢ñR¼\’•Ê~†.âR‡›x„˜âö´é+ å/ºÞ²Ð²ð³¤³±`\;e;¥~�~]…¿OŠ„9)½Ù–Οן×Èþ•ç+ÏìM9÷rîÉÚ�À;e9öNáÌ6Û^‹Œµ-‹Ûj�]î”ÅO!¸ñ:—H´m$(ÙcªŽ Ê U>ÂŽêø)Þ±/~H£Ö‚€°d·�•Äcÿ=RÐ8\¬ûøZLˆÂˆOˆ‡:_ WN†'ÚÆNXæm2Ô!ñ}OvD›x›xŸª…Ü¥ƒ|Ut‡0 Ón$zõH­îî­ÙŠfã;`_ž7åt$©Êrñ÷—¶,44˜…NÑ-¹W©œ¶z]ë•´l‹¥ÿö{eêo=øÁOæn~vã)}¸ŽÅŽÅ Žï¼¾vȲRVf'Üõ¦ëM¶uVÓVÓzq/—^.í2æá…wj§WvH»ô‘N+žÝµm5 %«ujl¹SúæürpGo/’ô·Ñ©y^®™JëBº® ݺb€ŸÔÑätÐA2Ë–Âyü‰’ÀO}ŒIy\G šH~ºK@ƒ~‘9š š C‚·¹Ñº°#:­áœëÖÍ‚„Éþ帱þ¨=€‡8”A*„°�­í>6D„g@¶@ˆÑ*DÍ4�ÇÚ~j€8¨Í7RàìÑPSà§šî³+t»SnöûÜÛ™7ëŒø¯ì!ͼ|Ñž¢=´šÇDMnÀuvv…u…UwÙ–„€D¾Fª£÷„«J¬Jœ•HñJñ:uGÀææ[×;u‹åï³ØÕH/ʬËÑRT‘ãî«íàÁ¿t—°H§µN ‡‰•ë,äyéÿÍÙÍËø˜kÜQºžª�Š¢ý韢 ­&L­eÿîlœ¾Õªt2žsCò�<#©"­9ëüagçu¿6Õˆ˜ëŸ sÜl1wËZr-[Ë@6ãÔT¥´—ñw+?S1gùAûâ€XKµsT-9Ò• T³£ƒ X¡L‚ËZ¶–ý'²�ÑmN[+õ)Ô¯”, 8saÛ +b)·p]ÒÔäžãëJ¿ÂÈê°–ý»3[ošc»Ö�µ¹Qqyëû·ªyÕ„ŒßéŒÝ—ÛöJ|´ÂLs¢Ð}‘µl-ûoÍ •%DíL B#¥mòÉÑJUÔUG ß*ésúl3Z.”£µ·Üšub-[ËþÙØ¾USηFo¦3Òͦs5Xþ¿ßZËþ=™ ­F˜‹bj”¾+ÕÉ® 1)ó/CÛág»6�Ö>Ó#Mœ› rXåÝ>­v¶;¾ƒ±Ú¢wèEƒ#‰A\.�ƒå¯pc¤ÌMTÁ@½J,Ö‹îüs¤“?–@mÚà 3È¿“D9oë4 },€%Ý:rB…>J ›?"7»ždA‘Èy�P3�à“"ኡ§�¾ÊÊPPÔ? 1�ƒ^ È@ä[ÅÞñKìAÀe™º-h„Ž÷ôlÄ ”\-QÏ6ÞC3—bŸ©kœ$0õƒ•‹ƒ^Î#yû kÝ÷+còÅœãýÊûup·S`2#œZŒZŒë�ëPŸ"c�5äN7’×1šR¸¶Ä¶D¦ëÚ´Ú´aÇïß n\¬Ñ…w껿Õ':� jÖ‚ ‡[ø™WëÔÄr§¢|èºáb6Ã�„þø€S~_jPù)Æœ± xütöÊN·×ÒH9}J¯�qfE-€›ö”D••o�kQàÖ(TNN4L4,ÛC�ƒœó8‰ïI"l¯~"�ñQز¥¥J¯©‰BÉÕÌÕ¬£âG)y_I¥”xFÈ Üùœ´�1Bøà!ØßPy ©ÀÞÈ5s³�^—FtÇ0#ÿ&ãÉÁ±œÎ ™õ‘åWvŠ}{§?§½)³cž'ÜàÍÁ›Æ¡Æ¡÷Þ¹^°[‚æ!�ã´`ƒ;!|BX"­çtÏéÄè/ž_<Do@ìýajž©=ÿv ¨Yj$}æàj�úîÕf¦”…ûý­÷ ×ð›†~Áa‚’†˜';oúF»±þr•’%K^&p-þ-�,ÏE‚ùýÝ�B}›àŘ�ANBJBêê½3ãäÎÝ")À‰Öð^Œ˜õA< ßKÚÓ3]OILIÜ•yAxý>RÑzáQ·'@s 8)A½ˆ†FèM®kòƒ`¥bŽ,Q.) ‘ÿ­0¤¶p7¨úäÔÃ�1!“Îs?ÿ¬7^™`­zŸR°R°{¤ì è¸a§a'¹r¹òýEBÖ¹pÏ>ÜVŽä8iziúªÃ» vKÏôÌôø4"ß§%4ž»ÒI?ä‚£zð9ðöªïÓN.wÊðd®ì›U. .†q{ÙÓä�¾=H ”OžÞi¾Åì'âHÒZ"¯€8›Î}À¡|>’.1ñ�hn–Kȃî‘caá¡NÇ‘c|@Â¥Iä F{˜—Êú i3Ý'ÇËPöéÇé§[§!_Bô’7B>V°ˆA3}·‘ÜSh•±€²±“}Û—2�þä»"šêoŸQÅØ¾·Êe›…_�%ó([¼^g˜sÎ¥¯—¾ª¶zjžî�3Á™à2‹2‹´þ4²m�hP"I5wLÂ�8xâ {äq¶ãl/÷ºäºärS³|„ÏDZè–-Q=R:,SJëV\ܰÚL$|�ŠWóâ¦þIó~üѾÃÝÎ6ÔíÜâ^o5ߺ¿«êäÅû�,ÿ÷L¤ì 3‘"vÑâÅÝ'êLËoüÜøJ«wµ®O-w�C›\@ú<5‰·–i{-•Ò�@‰f')'éÈÅË%פ�´ÕÁf¯Ûг‚04y.€¤�²æ=š[þ Î+ð89·íËOý¾¯&!±Ô´™e¶^ ÷ÔÞŒs¼­<+”/”_É ‰z ¹ó²b;Ä:ï•"Q°4ðÄøŠŸ@óÚp¬zæOe é['÷&m£:/üŸ;‡3D¯d5í6Ñri‹šf?üà‰ÅÊÊÒïSˆìÙq–—g}ü&¸|º|:ÍWË0 )í#&¤ªf?~8p©?óîÍÝ›»¯kc*0Y …w [Ÿ¢¯Roõ×úú˜K.ÚðÕ:5½Ü)�S<®p~´Ü$ë ¯àã}*8ñlHÔ¥‚ç�'¸Êó®N#¹†?—†×ågæ#7Hôµ±th¶>ÁбVµ9ä¦*§*µüe¿�c(' ³#ò6˜è5ê öünÄ8rZ/û^† €˜°Cîb !—öm$’Óކ‰:¼hÌK�oßujqþÿÃÞ�†CÝ·}G²ËEdÉ.Y³•²‡¤²²dÍ2Eܶ Ù2²Ê2¶PB EÙ#I!—R)Ë•‘É’½l¹ýŽÿ1÷\óÿ�Ç‹ç>îãzžÛ|Þ}__ÌiN粫£[p(Dò!)µ’M«FA眒øìd=ôLh­ÞS;®�ei*�AˆAè{‰®§}6ÜYú³ôÆQÆQ—„§/?€Ç!]=[r®æ\Í9µ›¶Ž¶ŽÜSyyO²ï§À;Õ§˜Åµ�öyXN<mñ2݆óèÌZ§®ì¾ ×`‰©$¶üÚóÞ׊« ){À<³ö™J¾ xP9ùRúÂ7'ÀÛbIx«V@0£ôx–”a ö*À€a&ƒXœgœg¡ëqb«ñþõùÔÈ?laÚúbQyÃó}�Ù¸ÙxßD� ÒLávâ-g‡'s  pL*ŠIQ�¦-•…!‘AÒœi½i¤(^ÄÓíU \}I—h0¼µ{R¿Ïx}B ^Œ'N0¸qE‰†Á1ë3냵tµ´ý!²'Z$ëÎQ8=g=guV n n×f“YÍ‹ðN¡Îù`´®Õÿ¡PP­zœ=ßr£NÍ®uJ‹ï¼ \ù¾F‚g\¢4äב/#ÕÞ’ÄJ%q‡0HãW³“�Š™`NÈÝŒ Aýu2)iš‘V§6Ú‰„Ïÿ›7l7³¿î˜:èRš8ÅÔœ?ú]ãŒz·¹þÑX=áötÔ‡p,M ê®*"n3ÛÌþSÙ•‡ÖTn²Üáqž‘÷ÇT¦J¶.éxÚÆIhª û`¶Ûo9Z>”ª}3ÛÌþSz—U‰b“›ØûQ�홲¬${üü6 Oõî¶ÿb[Žõuú®8ɾm77³Íìÿj�–ß+vòôq6Ú˜Ç_ý,âŠwq Ÿ¥yÎsß«¬ûÛ«Š…©¡Øwÿî¬P([jE2�zÐYq¼ø¡„[íGMølÔ&Ÿ÷BúeXeû}z6wÓ?7š�æ×f#¥Š;±p–ÝqóŸ‡gËÔî =š°ÈŽó2¼ðba|‹Cmˆ îÍÄTM/†éö‘‚û\, vàã��û÷”<%vLJ wog(×i@9#v¢�mó]Rþ?`>`~­¢û BÃæÉ–‹,Ãøb´Àíy§o¤D„õBFÍK!"åÞÛŒ�>"¥³±ÂBå9ÍÇTÖûqôçGhCsuUù„×÷˜2"�Q•Q•µAy¢ÎNó˜æ±ñŠñ …g®OE;!­Ÿ‘Øj9XáØØÛp¹¹ õÛí¶Û ùïmƒw*#@ö9{ÜGªP«Gy�ᇹ6êÔϵN½à×BHbê$м#úNº>qàéÜáoÕÀƒ³U¾„+„-X€ELu pñGm#¸X¾ð„³bàð�ÈÜtn±=Ø=X~qÉ‹Ä2XöŸÆãª£ŽŽŸK†äþpÏž®iœ‰r�ru¬„LéC2gŒ±�¡íï¬ñ>$)ÂÀh�<)”I€ºÂP³Ý? <©Z¯µƒoW“rÖ4=Šlò’�÷bATHóˆ5£ö—ëë£~1(z è@‘x�» óm8òò‚PçPgV[º¼ H…ÒgrÏmp’.’.®T"«"«ÛÜ]¸>Ð0)EÜ}å½·ó3¶Á“M®�Râzþ ž�:õk­Ss¼œæp×Qï£ Ì½ 2.Èú;gd#=¶³�pù Q¯Ÿ'±#ýl{Ù 4A‡ŠWËz Oðô�r¾J xs_5ˆ˜<µ<5ÅQT6±¿^È=€Åá) Ãö@æNòØ`?x+âÌq泬�8Eˆ¯ŠäÙÑ)¼¥À?�œN 'p8Î|¶ã$pD;;àlˆ)ýf¬úæ5ößNšúÊi/›t�â¯OÒý§šÍO׆Õd…«z_õ>�>�Þiß_sˆkÒJ^ÈC¸h·h··}AíAí&MM%�¯æá�òýüÞ€„¯<—•f*Ç•”ƒ–Diw9úŠrÓÁô´)nëxMßõÙ¸ÓÓggcÐÜïsá Z ZO²ždáxÀé ±[@2y|oã‰ñ|ª™Ï“Ïó (z(Z~Îd;|OÅ`4¨L `MÝYlÁ»Ñž ü~ðñ÷B^‘ +()Öš}®~ºÉâÕo#OåN±óZÂP‘qXÿÏ{*²ëì©0'ªÌ5ÞÊɤ ŠHú@ß¹Q×—Àï*¬9LpLš\Sn²;ù‘·ô¢‘^ž¾žPÙ—ÒØ‡Ç ]½çÅŒ {øhÐò,^¡a!eRå” À«÷Í�˜L¹Lùç3Zb÷÷ ˜ñ~”©ådÞ‰ÔˤαjÇghglÙ+Q|èé ‰­åÁ;ïÌâú>œ%)ìÉÀÁšÝµa<�Ø&ÞÈ4œÁRU&W}ùÀ¨vj7‡g“êb²™ž~ѨÌúª‚Y+¥…¤…$vt W€[*[*{dÿÈþkª’G€Ä– IsP°Ž Æ1Ðå~ÃýÆJb”a”Aÿúwx§¾ç±ì{ÿøÞQí±FËü¸ çÑåµNM>㬂 y�©%¨±Ø•oaQM]†L.@\™·ÑEjÖ�ü¼RæsØÌû\Ë™—!%o50�;lI,mí³ex¹�ØÎ--xK´w€ÆÞÃ×!mÌY•;ÒL[ôõe¯@ZG!jüÃ2Ë{“¯ñlhveÎ΃”z,�ážû <éŒ+[!…’¥v”�a¿ÒÒâ×?°{ RØùxÊt¬�¾ØPœ²–²Ö5zá¼Ëo¸fšf%U%ÕÅ\ÛŸRÏ!…|Hé¥ pεεÔvàd¶‡è£‚G‘‘#ˆ�‚ù ³3A¨(Úô�$'ŸÜ¨S+k�b9� 'Z±Dà«Þ“èյ쫇tyô™7ð‹SL'€mˆ¤Ì½X DÙIëö´µ¢{èXfI‘9‚.tûmäˆyõþš  _×`h& ìI LWeÊõ »ĬjÓÇ8¯_ Þ"IVƒíó�‚„Ў໼¾ e޲‘¤(WÙÊJûÔ þFœ©¬–©¤ŒP¢³ =Ó|ò{\\ÔÍèÎwi:­í)®2š3šÓ~)Ûô©9\wOwO¸T¸”€á“°°K� $®{|¶p©©[{ëêdü¼·=kñ†wJ^&2¹³CdõóÃù@r~ÜÝ�:õ{­Su>óap­cê‰Oå°²¿fÝ®!±ö Ö;i°¯(ü‘žÛ»d¥vüq‰»úŸ0�¢F' œvW~JŒ]˜]8R�E ãE`q/ªpT¨(�yѵÒpnϲúÜÂÔÂô†òé)d‰u:Öv £¼ˆ'à hïÂ}¢$%§ ˜Œ§x³0 ¡<Í�A�|;MJŸ²~ŒQ}VéþæÛ¼‰Ét)÷ †ôd?¯ï\ gÖÄ݉»Þ/}ïN‹Ã�d:É´²ge�}ݾç“' 4HþˆÌ…‹èˆèPïäðãðËcìäéäáµn:õ¯ïyŒP§L²+Ê\¨ÖΚ@ùŒkßÞh§þ=/�>öm<ÓR.]‰§¾’Ø‘ —ömfÿþ,Ïÿ[ëãG#ÔN&ÒGËùE>ÐIz7Ghb�¢Êµôµ2÷uÞN=µó· j3ûïË$Q�ž§·d]ÕÑj²â«ëpQ?îu Õú-)è‘è¥Î1JW[šú¥7³Íìï–½Êþt-ÐîMßÇà"¶÷±¼^V©ÅIâœ;´îÞ˜VJÉë tÐ{—ä´wßföÿ;Ãì_BÝü–�!Ùùâ˜Á ëDÿËé£R“ŠF±¶Ý%FK¥KQzV%ž›Ù_¦-_>=v~ZóÖ…çf•_;ö˜h¶” k›&†*ÙèeMë0I³í-ÛÌ6³¿[¶—•3ªØS?¡œ…)k—r´BëXE'ÇŸ®Mì|‘›ç³€xO@kI–xL¥h˜ŸªÌëãžð�fýÕµY_!ýÎÿ¢…�›¬ì¡Ðaè+ÔHª#çœ Û¥'�‡¦�¢¯ ¼ŽR}9 ¼f6"`1á'…9¦Çpª²¸E,–&–Æd¾Ý‚˜GA¢7Þ‹šVÀ;ó¡iÀ- ñÑ>¢.¢ÿvÙH–Ðï.ˆ ­ ^� ÀF,”L#¥î@Æoø»bÚík~±‰�”3‹V¢f�¤Z÷ψêλexGª{}©[_Cë1­n¦n&Ì[�«4WàÀk½½~—Œ¸¬-!ÕW‘¦Ý«�àäºäºÜûÁ+««Š‘ý‘ýó%ðN劼I¹ÎÛ:.²Oż›ïÙ†ç&£"#K4á)…kŒ°%ø¾�ߟÕ)1ð¦Òü{] ö^83cÂáV¤ž»µÀÒ�K@ µ#-¹E?)ä6þY@}Áã@bqyqy˜…rfbŸ4 êJñ\ì&ªµ¤I4D˜2ñ{mŽqwxex¥®1$p?D4M¾ â&fü %쬔}ìÄH9ŸˆY]6Ü!¹Á¡u¹Ÿ‘™ŽœÝNÊèSj7Un}kKÏìy`ôóüúbó4~ œ83F93¡ÔggHA1Õuäþ„^id‡)9Ü�Ò�™håpåð³-u-õ†“RÿdïΣ©ÚÿŽ›ÃA2eˆ4˜’¡HDèP2Ce*Cᘓ9'’’)ip¸× )ÊÍ™RfeŒk(”¡“ˆ~¾Ï¾gíçì}\›þH3ÝŽ4j×â%8ºžsu{ ‡;x:x>Z¹ÝÜ�d~Îü]]�› ö"…Ö¨nH�„µÃÚ-ZtÕvÕÖ1} úâ'"\ˆÜ#´þ$­áƒ1ïe7õWίVkí‘AÞ¡Íp¸Ô9ôU(]ïñ ï0sÕ…ïþ?•’¯žˆVœæÂ�í|tȆöß÷Èȯ²G¦Ä¹zSÜU ^+#zNS®|éµZgXiý>߉8¤û¢»aßil6”šX¼ËÓFëYïë ìu•\nDÓÿ!T „ÊÊI§JI0~ú 5réC†öƒ<¥ÔžÔžï3Jƒv0nY²ç5mÜ€[ðd,„�U?ä­þ±™ø›ñ7ÉÿþF¦ ÜQXM*|²RŠ š ð^Èa F+˜®®°Ì‚d_™ul·E5q>x’íÀßã{ .רϊ«ŸÛm¾¸:Á÷¦gÊ]Ê]¹®m÷Aòõ½Ó§±ŒÉîF/€Ö¨ß\‰4-=-=Öi4m4ýÁæEí‹Ú/S¡¨ç¼�Ò·33¯ Z<ýóhÚn­ÕãJS¦¥rH×ÔJLaEûðÖ3�KggYÐ$å6 —Lþ;íVc�¦ 3½Èã—Æê¥1Ç`34á[¨éÆ�¤¹o þfŽÏw”¦¤(ãh ›$©M¸³Ç‰�ªÒG… Zd,4-4•»!‰™�» ?ÏBdw'Ë�iÄ[Ô6~Ûj„€.†y­‡8ˆGBn]HÁÏFj0½:Ÿí•óDSRû?•Žnæ�´bYC<¯£è=Ñ{wRúNÇÐ Y{Y{yöyöUÒ'†ÿØ ¡ŸB3ñ—DR\R\bufçbç Ò.È/Èg�5D6u‘pã‰;YEõ/qB‹øìZM1­4eØÔÔ�䩚¼öîÖ;£o„­&£³h åϪ�ôòWÝbÌâÐÆéûÚ¼M0 @ã§sÆ6»Ÿ½D=€woÚmJ6(XšQ¤úöОÌ5Éý+àSÍ+Ù=qGðM©eÌBåBe/-dâä öâ)H¹k-†ìÓ^: ¦"ìšCS´ª??ž=Îáˆ7�~$G•Wœ†Tì!Éql(Ý´ÿÛ^%3ïƒì¦²«Óª¹]³'mOšmžöiey¤é²é²×w\¿7kÚ6­ 1C»ôãƒô†ô†Ô=¢¢ýêÈm›Û6=À�#›*Û:ó¾l�7ÅúéûÊYî†k5µn¥)ÎHR4Ò·Åǰô¥ä\ÛêA[Öh4ŽœñÀ§z&Û1÷ �¹˜&ØþçÖh`¸×ÍÖd"²™ÉÂ4k +Á×™’Á�pkç†,J[Ø`´X²óo™²€OC‰�¯ùZ=6âÁÔ]Ô]Ü&!uýÇ©¥\ÈÙpc²¸ Àƒ€àûÏõÔD�=× ’½ŸA°š¯��Å,+RCS‹ë9áìÐhwÿªŸ…‘ú«å{FFÞ«ó‹3ÿú äA 6D®jé’õ3ëg¶²¶²VA×cBõÐ~>±eFâ1ç1èëiéi¹Ê¡_¤_”’ðGnŠçŸs7šÏzæòÛìûC8ãb„Q~­=2Èç¼u!í9*où¿_ÿ¹ÿ°óÃ?¤YÜ~Ï~Ïþ?ÌüSjf{û+Ĉ¢ï‹éÉ¿xý@ÈçQI¹r_»—Ålª|úq¬îïÙÿ­YsÈöƒÊhO2»Øk$U?l篺y¯éÊ«zz{OüdføòAÕØÀ…‰ß³ÿ�ÙP;vL¦ç>±MÑR�Öö±rËÃûLÇü –’i¼r6e®:³3U}˜Ù߳߳ÕfuŸO55›¿?"a?¶LÜk›=lu§<7É$Ú`S£fqé¯õz"ÿgÿ³Y±}”�Síõ„¨ªmÝ !;Ÿšk4"ß3âºíù¬ ’…½wéJÙä;$­õžÁ¼òžáœV€”\Õò æl}|�†Ó¹üMh;…_H$¥Ô ¥[î¡9d¤k—.?'…ã`‚ûÿ~G�gxðwXöMJ!6!6mø… J&ò0ñ.2Kõv>à/•PÈbgâ‡Ì(o3Ö4Ö4÷�ÉE¾¥Ó òI"£ž¬#}Ðú¬Ù`HÍ¥L`Ùný|å?x…³^îwþLÍ'ÌN{àãÀY'Ö7݉K­Æ˜ µÕIôÈ>OO¯ VâMUBÚÙ½³›u#ëF wcL äÖÚsÇ $pÿA>iQgQG@¾n¾n¢âÀ&dS)¦œwŠ’vò×H´iE\k~ccYiªµ¹ï<Ò$ÿzØBg‚q%~wVš”Zík áÔ‡½þ+%´º‹@f2t*È`¦(ì{—7 5§Žât�3L”¶tnéTá*‹¡D”‡©~'+é+Þhà.…`dîÆÅæ˜eøÆûÆ¿-…”§AŽ ®ÿ1WÒl#SêZ€—85j.ÜäzÍ4ò” ʱŒÏÔùít¨!dGõ�FI~Ë„ã1– \mj«à é—ï+ßw%î^W’’”’ÔŽŠG;Žã–‚DAk²B»4v験(–(–)fÿ$ÿ$Ž«¬AȦ²kv¿Üe–9.ïÝ9=µVS¬+M™pü@:è(è ‹ˆMÙ5¤1 iôísš0h+é0Iú’€Ö˜{vÐ05’´²{,aº¶4tÔ¸ëâz÷RrpØvbc¥Öë°±²â�YN€WxÆÈzi�¡éÁ² 8œí"d_¤{aDÊ‚‡�Lž”¸Ë9ÅÔä{>iJ¹eG axƒü§ Ò¨qœ$°¹7±�«Ú5¹û¿ 6©'üZ�¤»±ÅÓÓ'+–²Z¤v÷vw:"±>…™O) b8ƒv®‘ ŠôósJãææ` XÚ¾À•«„lJú´ÁžE‹‰Ùøó�"ËÖj ³Òç^…´·ÂÀ6—Ä�³+�íek3Z߻٠àq ±–¾©ü6špµçe ØH\À�#`<†I9Ô¼ùZpࣽA©•±•1Ìá¥MxØûJ²¦´ùCÀ'/u9ÈV,gÅy/ú¼‹Ù4!äÏiFy}�¼�¦~dažÀGu ëèJM›À¯Ïç²O’âíà+¥ö��^©˜•ÏÝ›B#õÃÃ]õ­íxìäÕþÅH¡¶h’W’×õ?ŸÿìDz*ñTÂò‡å�úÎ.¹ó£�½5hÏ”cÇ�ÎdœÉhÑ×™Ó™ëH‰äŒäܶdÚ‡lJþ0ŽëA• – íše7†ÖjŠm¥©åí™X¤>1[,¬ó »Wó8gËi4×âe] ”+Û„ó:ŒàS,PW³« ˆim¹ÃÙ5{RÓ3[¯4~ûƒÒ=ß{¾Òf3”¾vÀ*ÕȦÚö¿*„„k!y Cfþ_¦Å¦ÅÛi cö�q½ì.ˆÞ¦ã_È.IC?€èŸ%ÙÔpÞÂf fçt!tS'™x�¨Á,++eÔüµÇ<¢‡ö«´rwÞ]Þ”þ³U�U�Þ žQw:$¢ÑbKå–J5��§n—@´›Ñp‘ô HÑÚÑÚý�ÆÆÓûãRâR¯�G®Ï×+è<3¾de#¯øænF¬çôZëóš" w³½î®S>[­t}?cÙº-}ýÖ86™EñP_ž^=¡îŒ7\0¿Ò…¯›é½ŸŒþ÷õyÅUÖççŦ÷ÍO½}l·]ŒhSK³Vëì+­ á“�¿•]…I²íy<“{)íu5ïsàŒl¶¾…±ˆš¤1ó3@d|AHøJƒÑ1‹HQ3:Ù. L0O³SK·¢©ñî”èaiídå-=@Ú®¥ Èî£g[Èsd‹Ï‰Ï‘€�ƒ|7ٜɔôl!;çÄ G®éà¨q N>þ˜è Ù«/¤m¨8FÍnͲ]sŠ¢»X".Ó,Ì.D¼¼{e½ËêrÝTÔG;F;ίwÍ:€Ô Ø Ø…ïÂOoWé­‡T»¡= èx„r¾ã¼ægÇAÇÁнöãöã_i½C­{}aµä¨b½é+ÌÃp[p­¦8Vš* ÿ(�TM æÃT¶Z&'¸5ßýkZÉCG-€ùQjîìç3háU­ï[©‡‡ÍàXC�Å05KbÇz�Vly#%Û)Û)‰ëa›)ùh‚Èž�;:×úAOÿÈxèè?©q‚8cXÞAî\&<'SQ¶F.NÖËÔ¨ðß·gé!É;Ü^ùß§5 FuF5—°h";5)7è+VÙŸ‡·$®ÎK£òrºeºeW›§Ä!$°ñ*L3LsdÔ\Ÿæ4¤R­šPÈŠÔeÖeö¨�ÈOä7ˆ06>)!ƒC6õ’AÌÍí¢Bó1Í{Ïû�ÖjjýJSDZõOH6 —a~5-–_¸ã.ÌÛ }š»›äDDmãÎ �¦Ô¤è p1¤šá§ÓaœôMjÄ¥Zo_x?¥T·¥nËä“2:Jr7a¢Cd†¦q©€á“ä^ˆÖ¥ë±AÝ)Ý©–rÈžlÈ—_cLe=�‹dŠñÀ¯< ì o15A�mj�¤¯6§y�¿šKÞc¨¹¡Zã<—ui9õ{Ö;‹èÂx�›�¿6_\Ýç²�Cy‹y‹9�Ì|"�dd6ðlàÁË¿¾yòËíÚßjæH£í£í�¡II$šašaᶨõyÖ\aY©ab~ö¾Z\¢íöµšâ\iê+£ýw$)™3œ°®f•Â7�ø£å`/EGcÿÃÞ}‡SÝ?~·¥HŽ·YF"[fiØ3”¬Ìl!#…cf'e¯ˆ²WŠ›’ ITd…PVÈJõë}®s�ßùœãòÇ÷ººïïý=×ã¿çŸ®×oŸ÷º¶ûºÄØŽM¨ §aí4yˆfi•G»)ÀL;Ýo/oï±;Š˜ÜÄÐöˆ£Œ¾»šÄ �r„ð’eL×ï·1°1p�€Ü€0é×î€øY ë£Dsÿ\å‡x÷¦_—ó¹@4…OZ:Ä"W-*8+’¢7«A«xsÍ�d¿ì'þ�¢øö{ÚxZž¯¸â¥8­?1s|ˆÖxf~»SPoÄ�B‹0|ÂÈ=Í2Ê2[XaßþÝíLik%‡¬wÃÛ›ÞaTl–d˜žžysÊ_ø ™§•bunœË­ç¯ýv6–ãÛ?« ŽXÄk;¼+4Þdíà¯w°g’ïïWšhþÂSMÒ鑺§Ið®H ¾ý³šHL&Qc¥•5ŸÝ{~ïYsù\.#žÊ¥#αãol”¼—âËçñíßÓÖëLÓçË�b'tÔ\…#$”­4êûÄ/­dî•ݽkð@ïë„A‘Cøö¿×\ŬÎ;±©Ɖ2é$=[08ÌÈÐÜêò�žâ¥‰óøñ™÷Êû�T&Ëñ ßþÎÆÈ&EíV t«¯ªî•ûƒ±p3oš®š4ë��£ùËÊv�w‘qÂɯøöŸ5¿„Zñ‹VëB‚åô•Ó¼é*÷°Î@é~R‰è–Ê•Uê‰a3ÕtØî³×»/‚p껓|Ђr�0ÎPIbÓúòÞ #•º<甆-Ü®‹(4й |ïÒñB“YËÀÅýbtàÍ8©„ɑđ„.’Õ Óe3´e”=?Í)QÏ’®Cëœm6ïˆ÷Vì­0×…8LAØÚ¥¸ í|Õö(Ÿ¡l îÈ�.¦q€çBREtdT]QV“ª‹‹8I¥LØÒU®Í?oæy¿’¥•d›ÞÚ•É<µÏjŸOV‹iUÃU×W×ß&¾M¬2T™ÔU ŸÑÀWé„SRâCð!ì3=F=Fµ�—±ž›lùbY�+ª~w?™+}ÄÄ×í6EûkSCìÈV8ÑÁºH´å–¦A¶Ý½ÑØ[7õÿHÖf¹â»ØŠ‰oç§ó[Âùd¹Óh›ô�tp1oÓÂ��Ý0ñðЖ…§`(A;y%n�–HÞÕÃa­>)œEg'Ûô¢éE€¤cbwáº(dñ[‰Ê=E@uù/>m8-�ú7ö ñƒV=&shÕàÂÅò†çŸDáÞJ©Sò5…SŸSŸ³q´qô=hÛ�úÛzþ>6òà 8p/KùìFËFË5µ¸¢¸"UérOø¨JMa¯jrþý¦ümzt‰W·;U(j!BÎ÷ ~g”ßù«Ì]]ʵq,×îZåP˜]Ö öuw~’öÅ„&þ•’1R[¼Ü‘¡Šèÿ��EŸ�…Î@‰lqJ×øbcSŸ"GËL>PïXëv[gøµõ§!Šp‚Ý•hoK7ÂO_²•¯Çvþµ3€ æÚ¿®È_…�EªYt,VŽ~:†DSmÝœÂéÚ0´pÖÑaªb®b–pñÆD–†v®…Ô�óPÂ|í¤Ý�ì/‹zþ’ô%iÁÈ�%È÷Î4ZȬÁp:JÐ8�1¼�I“ÄEY°Nf¶~ðRœ¾êÒG£Y€‹dÌÈŠ[Úœ³“5½isºqŸ‹ãr¼ïÖ�—kï¤^I5çžãûWç^çNØIØ™¢݉zYš�m^.¾N„R„Ò©!c!#°:º::’…œ¾)Ö§múwV›{O®ì­kÜnSŒ¿6å«ïË WÒƒ˜Dë{7øÓÿÅQv_lwd�§$¨˜2…ÞcÓp‚^ÑeÖí£b$Ámp(ì^»Èp™9µ@ô4ù°cjTiT¡§€ÿdåÒÑÈéQÔF~>öU AL~Ä9‹˜0I²I²‘ÇA„�! ³Æ©ÛÃ׎£,d"…@ó€.õ‘€ÚK†;½�6¿ SÒ‚ƒÆ¸Ä¹4�º2Kítꌲޭñxúƒ7’÷=éÖè×G­õ´õ´g´�2y«Â•\*¹ô5äkÈ nrµYˆË ¶Ç¢pàÉTM‹Â´Â´ò3ˆ*D•¦³S+|SˆoŸ’2ö ®`¤VJÖØnS{mêàŒæ=8ÇCâhwß~+ÖþÐöþÖ$6Í�<€%‡Q»h,­6�ÐJÀEç˜ß{d�ü‹Ê*.V'¡£ÜË“�1¥¦§¦¿ÒûT�‰¢íû0 Q^É~@�tÈBÀqKæ^ùü¦Ö¦Vÿ(De?¤©¯.¢Ý¬„r¤ˆ�ªÜtq© Þ¶~Ù4º )(Š8Uàùƒ—ëA“ëÒD|²=A¢¥djÜ‘¼òå<ÑE[ã–%|ãkák!ºÏvçI8�Q�QIRIÒ\'ÖT‰ ¡¶”ÃOá¤t¥t_°Ä²Äz”urvrjîˆÆ:«iünB1h°ýú…O˜»�ôv›búµ©ˆ‘fN8Žð×ìhkÇJV…÷qeßÀ6ÄÏ�Y^¼hÉÒ­ˆ­¯ÚËxZsÙ�¶OA Ð%ÒÁ傃Ò) > ~ ‚Án@�‰nM¡åG�, @Ù0Þq�C†vúFgyeyQDBÔÌ fW ¢ÈR”²›@®"p´!gÄY€Úîñü{ˆÚJ¯%Oþp .Š äô!ÄSß¿êÚ>´whn›•-£ÝÃå yH[¤-ÿ˜ÉÝO6pÈ^dï§¡OCQQA2’�vol9Qb"p{>öÔPÐyÑyí.`.`î¬çx ßÔUO[i™îZ9ÿó Ö*Ûž«cþµ)Æ$k{¸@§´Ó•ùöÈ�]Á}ÎØšw8§c©n•îhÀv†*åÀÝ.܈‰ DSÒ‘ìÁ…ç�:PÜ<„Éø¾ñ}ײַ›˜îÖ =ÊBÉ~G±txÄ^€è–ÍÓN�ŸÏ4=�Aô£¸7 våŒ(Ïdè 훈Ç2¸œ¼¤Å„•{™"£šç3®ÅÅ:råu"q7ǹë+æøøfùZ�G©)o�Ð(ÂÓŠÛŠûD¡Ð…kyp2f2f’÷%ïÇûjÝà €^ÆFsû—ÁÞÉÞ©w­q°qÐõssÞKºC¨MÅ1C›R0Ð6?Èòlq³5]QNh»3Pð÷ÿ¤ÿéþol �-lÊ“r;4Û‹›xÖÙõb5,Ùž§ÔêÓQ!MSÿ\Iá¨ò)ÜåŠo_«µA:z}xi*IýQƒÚrE¨Ó—ˆº:Š}vÁÓ ~¹×#Eðí÷4-Ú¯'wÜ å_Ô¤SýÉ)îÒy/&ñe³·òÉ¢f–S'R’k\Iç§´ð ßþÎ¶êæ ÄôäÖ;�‰UŽ3�?©“Îè¼IH êM™ô÷{þ¢e&– ×n7¾ý{šî•¢ÖÄ«)KÔ‰Ù¢¼á¬¦&6H?°Œ[/6œ*]§rÌ<¢³d›2õßðíwµšd$¿I°ôÎG�èä;íž!ëK}Ø–R]gÛ8ç676rf¨\k³ì¢ñ ßþZýÚôØv¾OÂ?¨î-œ~Í$AIK«¹v¸ìQ÷7¡�y|mŠ·¦ˆ’ãñ ß~WËŽÒ<¶ÑByuyÖ1ßk䌄ÓîoÇé)•4¸L—‰RwÅtÇQËÙYâ¦*ŧâz¥|¸èŸÞrNË_1ü|Tã[ÿHi˨jáÑ('¬ûb6tª—sèÚG >7¿íÛî;Î?Àý¥a·åáÚŽ<ñCã¸bã�¤£=1ÿ›by ÐäÜD\ÿÌÖò4‹°��:X:ûöc÷l.gù¯† Œý˜Z*Z*Ú ØöaÚã…Ö‘‚wÖö&0nøÀ RÝIñ}ªJ¤¥¼¿¼_p2ÝqÏKÉ…¤ HžAɺØ7ú™³¸\(S´ö¿ÿ1²åu )JÆe‡+»ÑÍ"¯9ŠÑE)j šÁºx«Ì…­�Æ®×/*/*sêå¼² €ó}îûœ½�½°-F×)H rmÛ�ø8_¸Ë-—[¤ò�yÈgq™F™Fy_IØá›RžiHœ 5k:å[tXEü�-ÏG¢6ÅòkSîŒZp› ŒhCÊ?jY-ÇÏc;éßQèè̇ž°Þ-ˆÏ_rÌç�Æ1k´ûM‡©q©SŒ7:¨1w=îzþáF=¦`Z´k (÷J×€„µ@sH§Â“Ñ1]b&õJõJ²KëtÈ=å5Hî‹á) T0NÎÂ%\¨ 2•Q6€œ"ßÓ�ä8ƒËû énå šá®ÂX/ÇÉå‡òãnÙ[#`!PP¬ÕžYË€  &É&Éþ?vî4ʾoà¸%Bв“$²eË%‰PYÇšTö,Y+J¡B¤PÙ…uaH²•,c ![&d+Döåñ¿Ïgž¹æ<ÇãÅ}÷}½èü¼û½�ï1Çpþÿ¿ƒ˜—V‚Þ�¸R$ç´]TpAªAªÅ™å™åLßNòœä¹§ÔÏ‚Ø�š¸o—œÑ·ÆÏ½ú6±S²Ï×kŠwµ©šêü“pó¯îHíbÁ|oóx“jƒd·­t àÔß–ï›.éðP%°xRÄèz‡%JÚÿ×r–€Ÿ �HÉãåñ馿ÂHaˆ”é8T˜¶~‚VS�X¶¦bW÷2ƒg_Ÿ}°‚0O@¤™¦i ”™ 1µ·€$Y`\XÚŒœ¦ ™z“¸/í™2e¶Ar¶È•+G2¥8^NqÈÖŒ)M�õZ›_ÛÀå>å¾´˜üŒÀ8Ñ1ѱ�çvž»ý¡Àgù(dG’¤CÈ8\uWueßA¡ƒBß?3 2 7Ë#ö£~sRJ/TV Pœü™A/p}a½¦v¬6ÕíÈûNT(á5Q(í”goˆÎ¹áH¼M6€~FÇÁl $šœï@EîÒE«e NtS¿“ƒœ�iîfàÈ�ij¤:Ã;ÃÃÕ-H… ˆ<Þô1JMì¨]A š¬§ß�¦ffuy Œ§ Ê{¶/@šm¼À=<ç …@ˆ¡Š>9LÀù’oŸ®C$—ÛÒìb�·.€à`Œ>#~—«]%ï*b¡°hí#·6ýãKüžž|¾?s<ál™l™& & +²&ç!/²‘Þ¿òn¥j¥ —›y>ó|ÏHgog/î¯A7øÝO½¸�F³+Ò4l•³YBªëÝ 0ü½œZVèíž‘x�A$ Íâ—›ÞÄýc�»©ÕP‡©æd¿œOõŒµÇah¥T*žw üû~TäÝôwTÇRêìº>*Ù—³tÜíž^¯u¾ÕÖO-d¨Ãa©¸‰Þjˆáb¼Óz¤Å�Ý ��ï;Ú®=î@ÒM*:„[Ëc‰tD5¾W’ãò² ð¾ÝÓLʉ͉M·×טT)‘áen|$Ð"+|²½ÙÁ\ÿC–5ƒ5oÄôdŸî-$÷é%?*G@Ýè”ã¼BN™;Ðù‘áéÖˆ«Ì’'zã~yr¼5½836j/2•^š|¼—j”clô]Ëw±¬÷ç³Îg�q’ÊŒƒ_T¼LLË�À�@·ˆålÙ éÕCÊ:Öj Ç‹âEUÖy©z©fÒV+W+�ó™í‚75óEå³K•Dc§`¾þ+‘õšÚ¹Ú”ÛÖ8Ý!f^¢Ç��§®kÙnG¢³UEqO#åthQH% �8 ä‡Ø3 7ÿÁ"AMËÓä$/o|œÉŠY$Å/Î/.ôtV—”Ó~¢wJQZ©€å¦O}�ºó\|N³2F2Fì¢jIÚ^ñ ÄÕ:Ù‰;äqTm[’È ›ødŒðE.� YÁÜ!r\b’*z¶-%pì­�e<妽Šõk³Þç!;,;l5Ôi“ÇéÃé#Í$ÍĽ§êFr!d)‰ #]'l lЊ6F¿x-Ð!Ðqñܰ:¼©Ð=o;ÍX]/ œ«I¶�Ì]¯)þÕ¦¶†&ºÂ¶<·Hd·$�SÙj”cÞ�¤îS{ ¸´2Û½pßÝé¶&» À5ÁjXc¾] r=ÀRIŽe÷Ø~`ëyšÔ#ûGö5ý'+I)�-p»ðÄ.î¡‚ÄÈ<XæÑB/ >;C9@’sL!±®‰SXà4¸Ú6äþkø9‘€dÅIÇ[³�šô‚Ã"Þ•ä(( v7rÅ GÏE—9¤'g�±/måÔ\›èªÓ2Ó2±obå·¼àø[ù[íÓìÓŠ¶ÝQÔ¾ nF:98­Ç?Â?¢Œ»z?ÔòöTßTŸµ;âw^ù5¹³#ç™T=¼ºX¾^S»V›º5¯÷×½Æq"ŒU`+Gš{Òf)Ô[ aܰÖ{&WÉu»®$�šõ3èÄkÌÑùQ7‘Sá—÷X>®µ™T•C•Ã;õ­¶¤ ‰dø LÝR£�­ŒxÈ"J¸R¡M,«<«Ü…R·âü1-òÀ`p3A³ –ˆ`¯ð“s¼¨•œáW‸,Ã…,ë¾$Gûó«³›OÖ3 ÆUF†y£ôØü[×V|†·~°~P†Û_Â�îrõåjíí�¿ûb-�GÒH´ÌîáBBRõvûìö¡Óalcl;›!ô Þëy§¦–¹’Jv µGN_ë®×”ÀjSÙ*ÇඇÝ@´”G!ˆ?«Ž¤Ò ì}«1³’p é&…Ú{€ZØÅÈ–ÉŠ"êâ³Ó Ç!Þ¡`1{iOʈֈÖ2LR—”š QO ÁÛ¥,à2_ø ÿ£Ð�º(Ô(ûföÍXNÈèkÈDêà ä™Aº ÿ –ܸöMŽÔ¿´x(såå@^Ùx÷À\›9blžo¹«gc¿†eˆÚSŠ|–â�Áïå\NPR(é}Ò{UþÞY‹y8J4%ZÆ_ÆÍÙ,×û’ñ ióK�6¸ˆ/”ÃTÃT½çû ú Ƈ­šM‰üï~ÔG+øVj¾â?äœÆäÊX¬w7þ·Ãk�åvLíÂÉèKŒxnªåé¦ïÙ ³&{^ha°ÕÞóD5€éÇÃ?³?³wFäRˆž4 î¾Cƒ¾Öèsüöh6îÄQÏwaº¡–þ  ¦ ¦‰ r¢â¡Ý6 ±gðç!hNá]sëŸä°5Ü_ó’ú!ƒÒ53.“´�»×ëb¶lY¶ÿì6Ëߣ&![bÖPa‹Þ‡Þn¢5ÇÑçà ˆD™ I¢Ù¹ #‘Ü;¤"áЙèÌaíòðòð¤ð®w]ïvJáïÜ…2°Lü8•æî„â–›të5%¼ÚÔ±f“8aêÂÃD‘|Mg>)«¾qAjp·éb®ÞÌE}<ƒ´µ È¸b¬Çĉ]L#Úö\Ý•Ϲ}ût�ßkRq©q©ì&O�²úÛÃ%L°C\o)‚TÓ5Ç쪢¸Mq›Y2¡LáyÕ³‰€òõ¿œhÊÈ.玷Ç~{}|ýS “3ÓöÒræ©äTʺ¬}Úñ k•_�Å�Zßß´kö¬-t×f/fo¥¬ “ œº¿º¿D¨Dèé1æÓ¡ca—^æ etßP�«”¯”ç_P¸¨p±^X\Q\‘3þ£¼)Ç®_;trêmÎØ?)ì0ÿ¼î9ðÎ=Ý�î}�™'Ñ@ÅýÙT,ÝöÇHž½»Ëü°PK¼Ž!-gÏ�°‰ž®`w{‡&j¸ÖONdv+páGÕCRqÞÏØHÉ[�øI¼lþ:ØÎ4±ßP±Û7JøÔÍS7/CÜ!ÑwÿzÁÆ¡Ë èÝ€àv€r8»‘œü@ùÔð“©Tˆ‡¨¾]fen9á¬óŠþ‰+ñ‹Œû.S¼?yÇäòëµ]¼Ç)Ǧ˦›2B9¿Ñ. * ªÆ­Æ-±Ã9y¢ÏƒÄ²²•îFÅ� ã�jõjõ\-hn4wÕ�ò�ðspÏ–-ý¢1_¯õ›.æ�`›[ïÜŒÏÉ�Êêÿ?'¿Æ9¸ùþ"Û%ίBÏÕØ;­y>�кèjëIÞJMpÊZí‰l:Åð>y˜ÃñHo}�[�¦ —_›q!í<†ª#,Z'E»¿ÉÌ(8E¾�r°ÚìLª.».û�Är!©Ð\¢I%‚FFðË£÷Ä㣶” Û§�ƒ(!ª��PžŽjˆ"•ôŰá6 Qß 5Uú×Vj©û;Æ3ÆóÂG�Yepã“㓾ܾÜ/]›CøE!‡6#ñ{<ƒcécé *jk{Ê('%'U®¹ojN-\ø-V¥ÄïĬrOf½¦ÄV›Š“ø• 7«]=D„“úŠm1›¤ËFŠðZ©ÌgØá÷Ux Y¹¼6+f¾µ±ADÖã�äÜÔ«0v›Ã¿)Wî¬Ü‘š>^AÊ«–¨�“à½%�Ýw<"5þ±XKÁï]à] ™YØyeŽŸ†ü,M#x“ ¢Nµ’ èeqM¼[€<§U4Ÿ1n#çCÛ‹|YÊüç;·�7wdé¸sø.1ŽÉ¯í¸ëfb|b\¤{æÝ,\êõÔë-˜ÌüÛS¨#õ�HVdáì®Ú] ûevÔì(.ÊcÚcz“öÞxS•¥+òºAN^\ÞÒK,ýë5µgµ©Þ ½’p;ó·% -õ*Ñ{÷í‹CŠ6ë~gPéoU=t©V÷Èqà ºº`ŒO¼AÔÃX“DŽuç£-€cFÉCRÛ4¶iD·¾‰%ÝDdæLP7¢Í xf¶ËAŠwM]*ÛݦÏñ?ìÝy8”ý¿p;�,YCTd‰"{Ä�¬‰ÈšD–,‘h±¤ÅeËR¶ì*ËXCˆ‡�Gk–¢BÈòÈ2öµøùþîßœ¹æžqœs�s®Ó¹Žëõßûï÷\ó½ïùÌ÷3°g€ù¢ü/=Ü%�£¼=† €Ñ �Hä¦J41WÐìÂuñ5$.TcO÷Ú uB$÷ÉË.ŸÐ~ý«v�B¯‚cɤ™<íèüÖB?NP¿Õy«ó©h<‘NNÈSÈ-‰–\—‰c[BBDÑøX->À}Ïøž±Á=?ßà&>%>5ïûE o‚aš¢OC…bg¸S�矜¶Ûuê8ç¹í‘�CÑð·��™BÔþ‰crŸí5ˆÔá>dTÇAB*&õÖ/ïz`|>2]ÇÅÑMXÉgã‡bkÚÙ9^:(TîšçÝÊ&¸R¥R¥>Ú>ZÖtj¹Ýòš)|âªrp­O[ŸJÛS P ¬&¥9§9¯Ä"îc:õê_3KC(Ý=}®ŽiŽ»ëMß{ l7³?ç±ñ[Q•ûsf_/ê<ÅÔP¼23úq'ÛÉþ'2î§�§?œÎÓ+˜£|÷«÷Ðp¤‚·º™ËKÍ$£ï•,±ÑÙt{v²ß?sàîÏûiè…¾´Îº.ù¼-^¹Næo² ¤”©£úaÎÔú°fo‘Ó¡F;ÙNöŸÉ[§¦/ü¢ÌI~-—ʨ+6LͲ·½½B#[Œ“Téìo÷…]ÂëÔN¶“ý_È.ÉOzM#»/Ùÿ¥ûU&Ì{¾Ù]`DŸïÙ›“%ƒò‚î�¡šý±Aµ“íd¿[öŲ[Ц2-êjí’mŠÕŸ—´^K:¢Ýx=ÔJújâÊ(¢ŒÏÕ¼v²�ìwËèÛfo gGp�Õr¼Œ%á½hÏyiÝêS—êkNŸI“C˜® %Ü»³üß�q;•yÕ’JJ’ÌÌn¡†`ò�¿²¬»õ�*.ñ§úWÊžô“Û½¦ "B�„ã&ålÁºc.àÎô~à&…*¾˜]Yµô°o�>Y¶ W X/ñ`‘o‡Euã$! #§9�2a\5‘5‘ ­/5q‘šc!¬1RŽ7ú)Ñ”Ä÷œ„”_£?K¿–~UU„ ÖÑ!]Þíl¬À3)ÀA#¢Š�̃ÀW‰›}±�Š¥ÇeÙ �±²—ä¨Ü0[£¸£¬žø®\Â4L¡ô¥ÞÖVCªR?Z}´J=gj`|î@Ä�ˆ»‚wµTNЦ/@Z¢ñí"ò�ËÏÍÏ5ñtËpË0Ÿ Ê Ê)Ø…·ݯÂÑ\Ù¡%Fû¢zðËv�»'û‰)áD¥ª?c‰j¤ÑÜ_-\ƒO†Ùä`D½ñ‹¥A5 _­€" �Ð FÐnÖXÉÖ“„D%B¿1ŸÑ TÀÕ7Õ7µ°�iWóm,QY wæ]€‡Ÿ‰5äÌ—ÿHCû¾¡}COM!Ý��µ¿0Ý3 ¨#!‚@¬'µ!Ð*\¿ fiB�&*š…2éÌ0Bœ$.½ì~×5€ú`3�<îµÄ}@ik7ž¦�x²x²HXê*Þ‚«ýVû­œ¢œÂL©Ö ¹Ñ¡ÇÇ+¼‡Î`Ä`$úÈ|ï|oºh^F^Ƽ;¼S±o^\S—~;/„j7\~õç¶{ë�nvª3éb1±Ãn,Ë8.wt�ß™u/|ò÷ŽÑsËÆëÕø JTt€p­˜5€åw K®åêCBºÉ<,€=+¢ª¸4ô4ôž0Á·Ðñ�bå+cÔîíéÈÉx8 •ï —F(xKìJìÚ!–¬uÆj1H%uéa âÓÀ|*PùÐÉ–O€ŠžÍ†T ²&lo½ŸÉì!!%¯"ö˜Ø•GA]ÚE=AX1­bh%·µeƒ{•)!)!Ý5L³·àHéIé³ïfß�$_Ua „¼ý„�Ñ[µî Ë£üëÅ׋DŽ,:-:ÏìÿÞ©"íðâÓ¼—½¤;î0²¦1l×)ÑÍN͹��è¸ÖnÇ4?�à:<çÂ~ßWsFi@-\Ä[1¦ÉŸá,Ý =€$(fÔÍÇ"»ÉMÈàq“`n aW…y…ùܸB6°Þ7b´]2üeâi “üµ~¡q?ˡ̡„¹¢%�Ô2¾ ÆAjpy´y´þn‡ÜiižÑ:£•G†ì„wê‘&¹ñ1‹U陀 �ÛuJj³S÷Cå¹à&»”±dP‘U\Ž L7Nà‹«™R|le¿ÒãsŽ�ø 0>ÿ (á”QÅš«d_&¤£º£º£ÆV ÅqŠã“3âçqo`�¿ÇðÍe{,°y¼ƒØ4mP�³W}ÿõ}ùUHe$é¶I¤Œ�³Üñ+ˆŽ]ؼì$¤µðç—t)¨ƒÌÖ%ôޱª òü ó‡Ü­O¨ãe#—Òª§¤Yn-È9É>k*kJAãÂTš<[[Ò²Ö²–”D¿í“XˆÖ >[ñ�ÊpɡɡvkËŠËŠ]ÒÔÞÔÞmT‘ÿvλD uŠËçéÉï=Ҫﵓ´Gî3Ün~ ~Î_©dá•\ø‹Á{Xêdf—ðþ‹‘ùÿ•lÌë-«–ÜÙkÉ¡çv¯ Y±oñ5äñ aBôàÖìv¨ë·å^jÛÉv2�‘¬Ÿn禴ɬùæè|�ÌÐÏðïGV)ŸvÙ'IÚv~Jdüž£ùç^÷ð�ìÿ_¦Äôðv¤�&×±Û«9¸[“ùk•"œ_µ•\䪜"ß`¬Bzõ,éídÿ{Yýj»FEË©Ði]tŠ®cŒø ��qüµ<�Õª™kz”‰°,ñUw¦�ì÷Êr¯Š¬æßý¶ßð«u}éÍÒšÎ_ìrm×N�Ëòª™ò„ Ð5ê7= ÙÉ~¯ìí;GÆjß¼ÌîÖ�=®×dûüd—Ï'¼kq!Žúô¢½˜Ï´«&t‘Bû?šÝI3áš|eÊÆó·zËí#L¬qÚƒ’ðç–®…ä&G:l¬-tU;Z·{n‘Þ|n©q¿7· nKÀ¨cZWÐ]]lœÀǵ"Tø²‰¯£›âðÝ8oÉÌe¼u½°‚�"k„tÔwZ]fRZ¸ÔøÔøÎ’ò$ãªûˆÕö ƒÃ0e7@bRQp$n�>Ù.*"*2¯9ª i>ŸÃ ¹@z§c`Эt¦Šk±(–Æ¢?B†÷wÙ{\.å%Äò:‹äÓ¥{z~§E�÷N¶Ï„ı@¿¦É&è&&†ˆòȼ_ 7 4 „fB3ùgö’ÆZ@ä‚ð…?Ž_€CžBžÚˆÒçÕçõeªySó¦´É ï”z½–ìÓè÷ ¾çº¿¸ësnשc›�º[êCwÂaµ kc6!ì[HËÌi|| @ö¢Å“¬Á‰ø”‘(€š¶âàáæŒõÂñÄMB\/9l4·˜á ûö­\ß�WN7VÁ/ŒhZi*àFg¤ùIWdÉ�±µM·¸!'õ äÓHf‹ŒW-†¹!@ÄÎ¥²»x4Þ½8©H¶Ëkψ'$^ÎC#VÇ[1Y­�(Ž�XżdR%xtkÄýòÓýJýJÏ×üï&ÂÅ cÐGË�–;0ªr‹èC�êø&gíàÊËÊËæ†„ =n¤æQàQ¸<ÖÞï+ßÊ|IãêbyQ¤Vi»NÉlvН.‰îÈâÜ}¬Åù{Ý:Yª?› 0&o¶n3,&òÅ›xà'>ÏÜPë¡K Äa©½d£!]N¸Ü-•Þ�ÞýÊjB—kÍã êZ/Ðÿ. "æ�Ò+è(èè%¹ Q?è¡§8H‚᪠tó!®ì1„Ð"€ ~ !H€=Í­/o²t 1r6Ó¸zM%�ªÐUÛ ¬�¸ÞœQofkÞG|%D&D®'°>†ËZÊZB“¢IÍoñ6³ƒ4{àËC4Â_ ¾òó=êêãOð�}Réb‡÷ÎN€Qk17ßùùPÔh¤Ù¶w[ÈnvÊ‘_í \àëV¢ƒpËDî#Ôª3>�ð]€M¿°Þg»t|}uZ+À~àìÝi4•í¿pCË�$¡'cæ2Ïã&’1Õ6$”BŒ™#’!SB‘)„�Ì2eˆ‰”Y %óìï:÷³×þï{oÇ‹³Ö9Ïù/÷çÝwí—ß랯ûú]ˆiKŒŽ_«ÞøÈä]8 ¤³%8bcYgYwûuò5¶*NŒ½ŒhHKƒ�G\Ý�…þžÝ‰T‚îNîN§æ Ö¬ûàVAò[ZÂðÎ8¾zßÓ öá‘„k"Å·þýÇ¡ð=õÔ¢ç<}‚;ÓõËsï7=ERöÉoíðÆ«|D"ÎênÝ[9¸ÌŸ™?�i�iMVïÍ‹@(ÏàRAÆ4Âéo>e¶ÈFd#Áò.±]b1õ×[à�º5¹nôžñ”�Ëío´çc]·ë”ôf§†’ŸéÃ%H6a4ð�ÄÎ,(erãšLsç…½œP7-›<Èq¥v­�Æò¯ŒôšßÛ1â²>…àcFÞ` Ì,$asawa¿­_üªîœ–hҿ̪ž·Ÿx "—%s~½ðæA š‘“ˆ‡};¤UP�V®ØXD5à¦\åî@p¢ 5äs[•Å—[¥ø\¸Hª@ŸFEõjÀ˜¬ÏÍ(µËì­ÉÒÖj…Sä{¹z¹Ä�¥=¶ÒpÚGµ�"<6�Õ¥û÷A ³¿ØdÍdŽÀ1ç2ç6–EŒGŒ·O¶H¶@žÉ_�ï÷sœŒLsqŸ9*&ïQ•²å½7èýþ]Ü’L¢ÃœcÞ…#3l»*TÒž,×&>Z-i&,?d”sŒ]4¬V÷¢XT ۸ѻß/²Õ~¿,²9|O`yÕWesyß›¥Ûu]f³ëÑoD&à‚‡Ì50*ö·RK’nþr Wûä=mûBXûr¢ëqñ–^út1ðzL¾ª§&Gð©÷Í» ðuéŒÂTêT½ê¸Œ-8#H %n”‘ n‡T›Œÿ–JøMzF錒¥ $ƒ¢øÅ„2r|øÚ-9€¾(!î”Ã'ìÐ:änïy:}]fåf§?>y#‰™µ×…-úâEÕg‡*ÂOHlM$$Ò‘•„•)Çæ­mÇ$À$ÐiÚiÊ4¶âBuòõ®W<¦‘pÈNdçbÿÐ�¡½KÃ’Ã’Ý�DðNye-*îñø‹ÿAVxOD`¹Êv�’Ý씵ãÍb¸P9· 3SkÛ {ó÷ àb¸Ë p]Õ%·U46Ç5¢ZPºÆ¯òK6œ–\øDzÅô\ MK˜ÎÉ^þ�Ï•>àÒ‡}×tõ ¡JìŽL¦�øŒfÈUîp�).j´­»¾°wŸæ§eß­Ñ1*+ä‹ä‹¼x�úx­n˜z˜¥…ÒÚh¼jìÑèÃu?—5ŽKŠKJŸ{C`Càs0O O`I×·`x§.´ ·ÆPL œš ¤£¡Ù®Sò›�Jš½o ÇGšýƒãH‘¹"YWKž‡T:öÐrîŠð\ýû1@õžêÛÀAÖºŒ! Ç0|ÚÞ{N%|j¯± ¨ ¨ø_寯¶�A܆ö¸B+X7è…8½¸SÐäÝþr¦n¦N”B…‚„Q†CŠe¦£¹ŠÍ�|Ždg¬’ˆÈvAÊΞRÿoŒ×ƒí©¯ HløÒ‰SB–„cÃé˜noÍ«i¥Žv�výa‘çÒ0œ¿—¿‰‰�¹w/y#D«Wö9Õ)¸Œ�Œãe†e†ü·ÉƒÈƒNyoàœ“±È“pBª«±ÍñO¶IUo×)…ÍN‘¥™>€; uL#^¯z2HKº¢VâNÇÀs*³9E �+y-€(¤ÂÔ:obx×ZGâcó‹=xoõí0¶hýhý WlñìkhêMñÌ@‹É~ÈÝ©½&´´‡{H½I½ Ì!*!…47D {Ì¡IlW¿nÎúã}Tœ³ðNÂ’ÌwÏ#»ŸgŠt·ƒr�sgæ~pöרÆZn-©[´“D�D¯W¬7–òœ.�.ÝpÓp“s E•ψ€3®™]<à6x7x[”*?U~ºÚ’ŸšŸz£(¯Ý©ËôP§¯xÞÊŸ'ˆFNÞÎãsØîø‡;“ç ã M’ßuß¾Îp™æÉ™ÞÉþs²Â2É ÷ÐĨûÊÜ*¢ û¹.G^n¿ñ3¹%òŽä¤úäõÈ*ÿ{gßïdÿüÌÍìôÚD½s]:ò­éÚKæ'6;/Ѽѥ‡ªÊqDºO mµÞídÿ9‘_T…c¤«ÍgãûÔÒ’²èÉÝì<Àa¢Æ!<~¶Çë¥YZ˜›Û;ê�l'û§eÓV�ßi~ž•UØsR‰tx_oC_sr\_ž!ïJ†ÝñaTm¿Bjâ –öN¶“m•YÛñ‡4'øi盜vkDÔkJ�°NŠ3aHl#x[�,w¼�]QR¦·“ýÿÌ þ ¬~HÑ`.õ!~Ö¹ÆóúÊޤ)Š´…«êJ.]ÐʪT±¸#K³“ídÿÓ,ŽKF-½ùùÒËTÛU}Í$¯Ú Æ;ÊOÖgg©Ù§Ÿ¾Ñè{º«­ìÃNöÏÊ„nªÑM¾Ø}îQî©%N‹Z_« ùÀ^w§×zNO�ÎJíÝs²;Ùÿ]&SóŒ[êäùÕï¢é4TÞ|s¬ä#'zØe‚˜–|r{ý^ãш0&UÅ›;ÙÿN†<ýÛA-7OuÈNFÕŠ‘n»hyÔLdzèÜw‚¤:r½XÔ“zÏ*á�¬J¸¬ÑƳóÂpÂPaðú|¾ÙTï5_Nø»û·†þ¼iOœÔ59> >�mì7FÍÚ«7ê­@æ]r*HÞ„Â|@q•ž³£³ãˆ‹ äùd¢¤ñzZ«ÀÏ(Üøó .€7úú—@£œïý=|Ú¤_УÊM§Þóþ¸Ú¯$s�&M¯C×k—]qަަ*x�%®çÕ”—”§Å§Å‡~ÔÈŸ&„Øzá ÑT…+0)0‰ÐP¹¤réMGGzÑ'x§¸=÷kK«-U^“:yϤ2}»N)mvêyEœ1\É5) ×Á4Æ?aY�Z¸ºýÈ£�F•ÛFOâÊ[;› Ô¥jØ:»†0Š\[Õð©þÜt”!°ÕGÕGyº^<�íß/[)ŽD#«5êBVè©!/W¯+�cÙÑq_ ‚…|&up�<(ç Dcôαa×?ˆá#Wd¼+Ú“báq @-EáÃì¬DßN8—H)�B{ï°nº™ÇxÐÖR9\\ ˆÏu: ‡lG¶¯,­,ÅdY28/Cµq½Tl±Ä‘Ø’è-ÕµÞµn÷\FmCÁïÔÔä糯HiJÚ÷+M–_â·ë”òf§˜§:œà Èf0Ƙ÷[�¼lŠÀ5áõå°ôÛ[^…~×`Åò] ¨LPp²r8…1·p ŠÊ, yE~[iSi;�³)¶ bŒ*.4‹‘=À-™ãç ¶ž!7ýº)O³1³1Ÿ5�xAúDßÈ@~ª3Ñ£Ù„+‹€*¿ø >ëÀÕ;­÷Ey!÷.ׄ& ùà“ÃÞãËÉrFÑ:Úþ=a_ºŒÐ…ª×g—·–à´–“óeëY� gtËèVÑbÑbÜñc¬{Z >¸o·ŒÂñ£øQA5.n.nsOí«ì«Žu5>€wв»×˜)6çÒì9gÂOVQÛž!BlvŠ£ðÞu8î® â¯i¨§d£¢¸~ÈŸw> —ñ¯[¾`ÁÅê9 ˜Š›vu“ú`X·‹ÎàC¹›·xÌÿñ%¶_k¿ÖúYÒ¾`“.ÁøÚ‰6ÞóF¸;.Q ¹¡þSDñ8í\ò\òɈÑ,Äí9Å DžžªMj�+Ô ÔÂñ¹ÔûêHÞ€ &9éJ³tTà#®|¬Ö8ç›ë‘•—ï™»·9û¾ôÖ¼³ÜrZýZý$i�AAR0+È×ÑÞ9ŠK¼;¶X ¥²3uÁEÖ½Ü:qdpúÀå‹‘úfDŸ:ÙÂå nlÔ÷©ïÏÕ~õÇöa#{í·hcÀšßðR�M¦ùâñ-¿E¿Ed¶’@5-9á-Ù„6U @�¤x¡†� _º:õã4$Žf#ÖÑö×]|äL<ú¾s.“–Ú©è³ ;…�3«5ÙoíÊïG4º…º…�2£~+Â=ð{à7o2urk7…Hʘ˜Â*?äç4ä£Šà ¤Ì8¹ g—0çP§ùæÓýy�ÎnÔƒP~ŸÞ[~Oõ&1:òI©u¥¥žb¤†þÇNGñjÙ2[ßr~ƒgÄþˆýZ•�®…ÏÃ��|’b’âs¶ÚÌňX-R‡D´\¾f¾fûùÔ¦Ô¦“a~ü>ô8}8ßौRHyqÖg«éÞ‹š�6xðkŽú‚%¬>¬ì_ŽØ (ê .k?4&¹ÅóQ¢ž¤¤ÊN5Ñ{éÿÿç®~ƒ'mð­³Á³ý¬dôdB‘6î÷ÚÇIyÌx£®k¬u�Ë6*޳õϼ‚B…_}½��ç�FÉ‚Þy×ǹ=�(T.ʳ§™�ËôÌø›%lO–|î3ð§r°ÔÌñ"dRiR)»mi¡[ÁxÿúÙÿ9HþÝ 0¨i09ª¦<&?øúÃ3Ô3”Ô ˆÕȌاEÈ)µ¥\œgŸ€€œaäqb„—͘n)ƒ_�9¦¬€¨ëÊŸˆ©3á8RÊ$r§CÕæ¶íXÑ£HMŠ$ÕõURg�4Çšcå-2üŠ>Â¥y§y;nqÜÒT2ÒÉ1Û…”|«¥‹Òeü,øyþjhèζ6x§Ô„y˨äÅ0T†žå ÷ÔÇ7ê”æZ§´hfá¤>iã•_]Þy§°óR£®¶�wz¨ ;öÄ9$Û;?û€^ÑÌ @9ÿižé¶�—Ä”Ä ¾гv^!$) ) 5¢×Oˆ¦OÃÇ/ñŒ ÀzE6ûrø¥ÖÑñXqgqg'H·=ä¢h戠Ån œ«€Û p™;DŸç`•ŸzTÅ b©èMâR»«”˜$›ýã÷ÒÔÒ�yÄôâ’L ŽwíMË\ßAgÍoŠŠ^6{l­÷=Þ©?I¨–½—µkØ:í|,½o£N_ëÏŽR¸e¾�|<£‹¶v;CAíÇHö94O˜„Ü‘�Ò$µf&ð³Mòo /ßÃk—³#æ7§`xþ[[ò—{S ùJà�ýŠC¦·<äʽ|)éã”{‡ëÄ2b•!÷oBZ ¿ºBlú1\8;å�í;�ºf¡~b4ߎZVÚ‰Ë�iï�'ª³ëI‰ñ¼q0—Ñë0»hÈJÐû` ÉO&«�1]ëÛ¦së«ÉˆÉ{­ý•œv«vëß·º'‹æ£´!$ÍHñéÈ­%½½ƒo�s�óq¯‡‡¯B3ðN5†¯ <¡ÖdíæËÂ:VÞ¨S'Ö:õô!\¬Þ³›xì$Ù-Òúl–m7‘²Ë¶×9&nf/çWß!í=ÇM0¤kS¹þyÑx=Eêo‰i4Èž–‹ÌêêâŒTY$ôˆoÒG{ >Ph.€ˆ_åãÉ¥¹0×oÔo´»òØrðTÐä.çÁœ†L Æ(¿á×JLº ÃÞãu‹â>2j�îÉ'FŒ¿¥oÙÛ(:æ1æ$Jûº C“ùväOÖ—�Ù®[Ue²7uWŽa‚a¢"·"wgù-ÿº�Œ¤×^fpƒ–ƒ– ÎýósÌsÌ> ˆ ž^ÁÊöÓ¢êG”Q?éæä7üO­µN­eIƒûË„d¯…%ò¯†Gôª$HµWD�7f?½â¥“È�*¦"îRMÝ}Àíå¼÷qAbô«ÑÓÀcÃçã„d?Ê~ ïôƒï2Ä!�mf‚¶Ž‘Z�¦ µ‚TÎW…Ïø‘}䪳‹Þ¹>QÑ�gÞÔ¾©-uN±ŽÕ‚s`u`�̪̊Ñ0z×V‰¼ˆTÜQ GíKí‹¢¢H¦Hö§þÒþ¥}Pá迾§B¡N-÷ªÄ2^ÞòÚ+0 E;qq£ üÚádb±!Sà¡g�Ó"QÊO XËòÒþ“³^Y¾¸Û$§îªâF‹õ„ë¼hr¾RuŽ?�•‰Ÿv*‚‰)w—Ö›W›Ùÿf6X_|N=Eæ‡�u°«˜N-v7ù+OdÎs†Öš2ʧ>ªÈ÷3›Ù?;› mš‹ _AÊášAîWã(�·<�Nx‡cšä‰© …Fr©R.„óó/;š¢”û`ŠSQõè®Ì±€ÐcG£)—ŒÒI¹H¹¾2@bê!2B³+Ͱ{¦8¢@ùðèö(1o MµÅ]j¥O5¾¾Ã?ˆ™hºÌ˜uW¢�‚»Ûej·ªN#M“éÌúŒ¾Œ‹JÆKÆoÓ°ÙÝ~Îþƒýp ÊÝÇ߯¦¢2�¤~ÿÜE¸ ¹ ¹H¯�»w…/rÙsÙŸÓCl´¬æ™²„¤džÖæ\— ßpOsr­S¬µµ�áÜx¶ºâÑUrÖ~ºRW!ÎŽ$}ž9Ø¥SýmÖ¿�©û F ¸Þ?8�0,ãUÊ-'¦u[™ÐË!.EÈÃÁÃ�Óœ•’x¦„ó.ç:}8ZƒÎ…¤Ižµ aJˆˆØãyß yshÀòà›H(Nµ*`(pÜÜb£N�Ú ¾ÜDæàdÒŽáñ¶š]3Ÿ²EÊ »0[›cµÈž"].¬; }w9 \â 'ÅãxYZKŒ¯mÅE€Çfð!pž‚véB>!§A¼Gœ�Ü��RLj „ž§�?Ãö.j¨m¨íï¹ÊEí´4įy2§z`U|öï 'ú 0ð“°õ\„\•˜¤¨#2ÊYã—šHq&øS¨Ù‘nwδ~©^ë(pNqaqa)LÎâ ³�ÛU¼«¼w€|¨øFzÄà+má 'Ð-Ð�ðΜݜýUXÐPÐP»ƒÈ%ø™Hë“e«[�U¥K¨þ**ªÝèL$|GÅ«éBÓÊ?mÕ“u¼[µÓÍnk3×Jj)‹Ë‘Ž*} ttã¿?yx�3‘´ž÷õ±Ûý~ý”CFüBoÔuݵ®cK©#83�Ä æ¶.K#ßç<‚t¡ÐÞh×õ¬xk1‰Ä¶Ÿ#`é4æ-ÐExkQêÄ(�q÷ TiÛiÛQZ ·Ê£Á[òʝÅþ”¨�…”4`JÌhš�X‘Y‘e¨@Bå ááì‡!¹£ÏšqœC�2V ("%˜˜d>Àæ¼ò>ßPFv«û)�hbúw{ºÒmÓ÷;G¹ #FÒöA<„ãaÃú|]‹^?%J¾ûŒÏÑ#Êpš¼š¼(, »Û•ÏúÙ He RQ!_%UUV~ü8Å8ÇEv)v)ûÔãðNù=³ûíðÊîÞ>¾gnœîë>ÃÇuJo­SÁZ45pÂÒ¬(ÏxÛx[»³åÞ\rpèHt$¥¥FdKº=îd.Ö‰ìâ}=}ý‹hÖ|Öüûmm七Óá�J•çÉ;¢#b¿ÜwØò@×F�Ò_ëÔŸ1ÝA¸…令x»dŽ�Ì̾<'‰$,;}˜ü¾¯íú™dHämf��ûåßöÒn¼xKý%߉q¢3e‚ï ¿'„™ÄLOÌ�ÇóÏÀÉ•ì°,«™�–Òà½Ö‰•Ó`r;b éµ…$4kA*O2óPC€š¸»1ø�S©[¼ç!!Ñ%–“…ÊÉÄ�1ÿ:–œ¨ñìÝi8•ûÂÇñö¦BQ™"‹jG´ )"D„e’¡ÌcÈXÉLÆŒ ™-S’$¶9"CV™ÊX"sBûñ¿îg=ëZ÷ZŽϹεÏ9|Þý^ßüïõwßßܽûÝ“ïÌVXg^O³¹fï»Ê–̖̪bÉ?ÌY஥\Kaídíüo’ŽEA–'ˆ™y™Àõ.÷. ØòEòEú�Gð"xëV½äàM0´-RÎæ‰eo¥I,@¨lÕ”ÖFS‰·£,à”0´ªxÌ.\Ÿ_ |èK,°¸P ëp’5S)=M,ÐDNàrôžJîþŒ—ç›ëN KWY¯ô�PœTœ” }&¡ä ¼ñ8œaLðÚSQþù¦¥G`"í>ò>Û 1±†0?~QM 8‰Ó9¸½ê�¡¯%À%ð_$êßí„8ŸšôCÞ¥!¥„‘FGòxŠT×G¶±/ïhS�,y"›ó¿È.Ó$Ó<�ô)€NF[F{|ïøÞ¢…}‰9U�Lb¹fjÝp?üüÃòhÁÑye%e% µJ!®©F*¨)fI­lSºÆÙÉ[¥Az¶:[݉„Ÿþ?ßEÞÞþþ[€yÒ’»ûµ‚èÙ}¯NN\Ð?ß¡­¨!¼¥.$¸'à Ås»™ñŠ@ôö¶½ý«6¯Bƒ]6§YÐŽA¹Sb{gó÷î\E9¡0…—Ïœþs¡Ãe-TÐoWËö¶½ý«¶V½|¡W6®þ]“¶Œi§iÛãl—ûýwu&ºþ|{ß lÏ{4Ï'š˜ím{ûwÝÜ’öž¸¤«NgKA^6ìr�ÇÊtÜ„âY"ש¸C�îMéÊìHDç?{{ÌžÁ»ÎƒÙ=d)ô-¯�Û¦úƒô)øÙh² ¥Éãéœzö WÁ/×­ÎFÚg£¾äœt¸Ëƒ*Txåá|-ÊcIÓhfbdêa¢ŽqmüÓWb˜Ö€vøQqà${p%Þò{1)Rrµžåâêl„¾Ç~�ÕA¿¾BÈ|¯ï#–¹:=^æ‘cËežÖ]Làœæœ^d‚à>¢Ù÷ná:ä ßµdœÛ2@ä$ ÿ³Ï�ƒv`×üÑõø@ÈEBZ8¢.‰“‡X§GOΤ·/KñóO'r(Ùש§¡6§dCBvŸìþd3yÇóh¸4ý4}Ó%Ó¥¶e­È!’VÄÍÅsá\/¹^bèˆ8qÎÁcƒ±yÈñäÑ»»ºÅ)~ÝâP´ãÐ_¡°ŠÙª)��¦2r†Âàl,óøðÚ©äd5~+Ê æ¹c/px kº&©±Hì‚ÝGfà‘`vÐÊx½ïø�eR¹µín‡G–„LÐ&èÆµþ�„ÔuðPä8©§c±oŵ�Y{ZËo·ñIÁIÁeJˆw1丧á9ÈÂ+²8K@å€Sÿ�<)ŒõÀµ úåª!H¿6ЧÊÒž“”œžÛãZ‡ÅWRoOÝæ+åËâYŠîIÞœ¿Aÿêü‹ùœy¡ oÅà$˜$˜FRFR´p'¤?†ô»Äé�€c`d`ÔÈ`bÂvŽ×Œ×hUÁ›Ú×öÕõ»¢hÉésû�OjÎoÕ”îFSêw_sÂ5r¸&âÑÉ9µ˜KYFlÞßú°´ÜŒU'6v9î-ð¢¼ï0@%%€7z òORÔò/M�4º�„> ¶D�!´@�'â„£úgÃ@_â€dÒÑܺW�<ëkÖ׸Ã��Š�ì†×Ù4vƒ+@Âða°¢ˆ” @<·„ßá#Äsôû]=‰qCRì¹Å»J‹Úñ½­Ó¾q¤�s¼ÿFïæÆÎïצצÇÜ¥m¾}.’#’Ãí‚f±�›ÖÝyJâ�QK W±!ÁÆPÔPÔÌ<÷,+“™‡7ÅùÁ±s¤R–†C4•rïKVõ­šº²ÑÝlÕœ±¶Ì<еƒOô DÍè‰ÉÿŸg=€Qk�i½™ê@좣hp¨�ŸW ‰ÆC‘Ç<&e0‘.PÆÔÇ‘ó4ׯeÞÀK³Ç±àìéLCÀ¯=’ÙÍ�¦ænØž°=†/!Ÿ!Ö¹1ö�[Êœ.8Ń‹3ðÈ„«Ž”¬&`}2HêäMH—±Ã@ëãURV"O,z�©ä%Ø&pã^Ú3G2ûÍý<¶¬ŠÑÁèèÈ]™“„Ãb 3‡3‡Óye–g!ìW‰EÇzÏÂ�7æXäbM±¦ß„=}<}*Ë\'áw ”&½‹ySÝ vø‡¶å]aÛêNü]¯ýÈ.v§ ¨u;^ÚçüÖ.rqȪwA:™sýƶޫ©»v0üã;§7¹SÐÝGqRkT×â|òÊ_×=[µ~u£uwL\.œVBš ^3õóZª9‹¨8bçò„k€ÙgÍ=�Žç»ˆY²É�à×oÅcìm>x‰±n7I9¿Êä$‡þ"Ä[Î[>ŒìxDhá žT ùLý ý‰­bnèî¬xðÕ›Wo>üá¸1kšË‚P®ÉÁ¹ìœ:9ÈH± É£üF¢ ‘ßL*n�0$ÝÃõ–=.‹Ÿ5Å'ø€fÍ™Ÿ íW„7,ŒU³^·^_NÍ` BÀa×°kòoäß̽sÿÚñ $¦˜·ËnÐqÐqÑÚã�Ç;¦ô/ô¯Ä÷MÑð¦:ʳe¥i#nó£½lLM&·|‰ÞFSž2»làüg–ýñ0ÑB.}ˆ€Ô³ÄÊÇ.xr\t¯éƒªÛ‰ÍŠ´ä%{#4€ mÞxæo-XI±§ ?œÕ>'@¨™¾™ÞÀ%ý ¡ây¼}s8ô,€¼AØMíQu$V“O€Å‰Å)² R}²3ûrd|öÎRpê0N¯CŠÂàíJÝB®0äœtPìÊDx+)ma¤û?�É0÷fºÅå..žy:cuvsîžAF¥ý¥ý?‘=Õ˜ÝpŒ^Œ^B5B5*‹iUŸs!Í5Äœ³½žÂ%_O¾¾|8,#,ÃX¡:¾:~Åy¸ÞÔÑ-º_ç¬^¦þ2Ônoò+ݪ)ý�¦LòRƒáþBYçâµ/² |ü»Ï4±®k€gαT ûÚ,b?¸D;Q‹ÀOã¡9<&~žZRÞêíd c_Êþ-û7ÄÄo„êãÍãx?÷”î9ï>iæhºÑݤڢÚ"À ©5€hYv‰@ж|«8®K€G ˯ïOŠß00Ñjü’Ãògµ7õ$—äuRΟÚ9øý¦N¼%ͤ‚Õ½@ ñèæî¨ç#´´ã²ÍôàöÚïµ7Œ7Œ¯;5{ð¹9„ò ±·¦ÄÿËà‘¼î/ä/žÒ]Ð]à�$|ÞT({ù)ËÝÇÈt›ÏJ¹gi·jÊ`£©BU…2¸¤þ=ÕxÇëÜž„)\–�#VÞÔe˜0ÅŒK^Ý™E,b²ÓxöVO`SS4Äk¼ƒ%E±A˰÷L!4xsðf‰´l¡g÷ñnûâ4=Z*ÊE úÉ3;#ÏÒ­¡êQõ‚Ï Ë¦²lð6``”1X‡R˜V2yæbHùy 9¬ÇNû2†àÔÒ(}ÅAJ]ö‚QÆUä’y‹*o?ß댫œl®ÓíhÇdǤœ…Ž©…**²xeñ*R]‡òª#„籿g‘p-K-KþÝÝ^N�0G˜ TîV‡7åQõÆ[¥œžnÒ)îõþ{õ¶jÊp£).wöOpºþQƒxÚd«:Væâ·o£ðã‹Î¤¤Š£Hn§!e±Ð pdÆ{ÊŠÌŠT‰m #tÏ/EçZ”8‚é¾ ÁzYÜ‘¯i8éó—Ï_É^Ükp«rí ô’aY8ÙôÀ­@ãZ€-)§ß—⃭Ð!« +XçqRƬè)’d¼±žŸ�]ôË*«^®Ætþ"“ß E)E)Åw›OÉ”ÀYY^»,†Ô6U¨½aýA,˸ü%ÙÙB‹bkvk¶Áªc’c’Ÿ‹ö¯ÿ;;PCMi¦Kä �r¨’MŸ¶»õM6q«;ð³Còžˆw‘ûV3©òÏžPpð,x²½ýó·,×1lYÑ×Ýš'UJŽröPq?¾ù:Pú‹Š]‰Œ¢L[b’Ρ_†vÛÛ߯cçî¨K–î‹’©Ñ;\Ózí¼ºÓE;ìX¬·ƒB¨x�%CøY߆W'··ííï¶½Éøx×ݸùÓŸ'º®6'½¤¼XäAf™G÷æÎÆgu»›ÉwÆZðñooÿÙ[ªðª]îÐXF O[ýE%�TÚé�ź*¼ß…T#Œ:òUW Vƒåõò··ÿ¾ÍÏ_V°dnÊ~N:Áá¥Vùð/óÇÝšÒ ù£²—£ýÎʧϡö�¤ã+ÞÞ¶·¿ÛÆGkwR¨»vZ$=µø5’9b®‚òvÓ �‹Ô­ŽîªÏ̺µr~Ö×wa‘�j­87w~HÈ7øòVg}£�³¾Ð—dz¸Œ”ùJ<‰Y©ö3.á²ç6ÞhÊ\i˜ NðíLÞÂÅ{‘®~>Âu'ˆ¥!ôº,:NÚ_zÄÊÆ}ß=¯›€2ó64ÞÉÊ RÒYÿ÷ƒ&-úî„ЂhÁC»Î:óo‹[KÅ ¨ž¿÷‚5VÞ•¨PöýÐ÷C1ò$Èg=qMˆÎSj œ¹§€Ås€áA’4)‹å›@Õ}¡4ˆCY{øÝ#õÙ¤|ú£o4š³üÔ5 ÍéÆ!r³F·èŽÍUup—[ûZûÎ×¢hû+àø˜ø˜äöÉíëc§—×…Ðä; w'âNDx^¼B¼‚zÿÈÔÈT¦U@¼)wù¦Ú /$‹wžÊ’ÞCös«¦L6š’lVkƒ“Rs˜Ç [¢ØwPï rí±lø�»†Iw×RI.*$6ˆš{Èκù)ä/EñZ(Z=HY¿Nù¸`Z—IHLRL2,žÚ–Ps^”§oÛ(�¤i¡£Eîï{ sÕ(Ä(¤ã¤TìÙ–y»CΧ\�)*± ʤ \\‚þ‡-!¡·ÚØì ØHqko£8Á(ú¡~u5Ê™µihÐùés¾o›»«'|e>ȋȋÞ#1ÆŠßbÍ^spûŠöQˆvûuû}Á*y(y*0ä›bÿöî<šêuÿ8ÊL$”©RD™CdÊ&ó”Dæ(óL2d(2e:""’ E¦M”!;d¬¤„d>eL™‡ë¹ß³ï¾û»·ã�»Ö]çwž×ï¿ßkí统g=ž¯‡+W^H5¥jQ©Òn×)ËÍNùúæS ÐyÞÆH«¦áжVR?�‹tâ ;Б3†’ö«Æ¥˜}ÂØ59à dÛÙËcP=ÿ•„�.ß >#ŒbÉÿô[[8†Í´+cþì@c1• $ß/2ÁÜkÕ¿ígÛOUˆª=ä¼»%)Ä__Š­ûQ,B-â³^(Sì2:'ù*A{Yã†>>7y… \Ó_RJ'ψ öׯŒ·ÓF¿ûºµ«k/«¬Ë¬ËLY2l^€+Z(Zè6ë6S;Ùͤ¦!åÃEïÞS÷$øIð­YebeâéþþÆÙ¤)ð{W×i µ3Æ=×�ä*igL¶»wŸ¡½Qi³á&QŸú„gÈÅ3Ë Þ«§îݺ%2Kg7Î[(cAø×÷®·¸w¥�pfä@Ñðv?ïñq«?ÿs»®[mv}ê`ŸÜÍoàöšÖ}ë0m£ç­úÏqY+”7¼µc,4p•L‰æGÂɨ�œøf~ y‰Ìûø¸{4oÛÅıÕhÖhVÅáÁÖ8ŒA³ mTî|pêkç=È÷ЖʼnµÐ<¶¶¡ý�P ˆJöu-ÈèÝâ÷hòŸ= *ñÖ~|ükG‰_×÷ˆA>¯.‡~ÿ^,�OÂúp7«:7#ýÍ’ Ój‰ë]lï~ßš‰‚ÇÏk¥×JËÝÞÏ.Á½"{E¶»ëû‹As£ b*ƒ‹IV~ .¬#¬#â^·V·VÏkóbób¹ˆ¡GðN-îþM“²¼ˆbU§^b$íÂëí:uy³Sœ‹£Žp‡¸JX0ZýÆV ƒI"4¿à —É; t{*õÌ“ô2Ẽ4tjætF•Á¼B4”Àô5|öœ! Ûu°™†š†Jé]Ea;é‡Á=ŠÆXžì ˜l„<™ˆ¶÷e]iòËõË%쇌µB> \õ…TJ½¡BKFQUÒ.f|öÆ™IÕLgC!îfÄ.’9BaøH„�˜ôÿ™`"Gh~ŸÓ›µ Œê™ÔÖâkµ“,“,+^³'­„“M“M;.{\öVEÍäybˆ5®µzI80o]¦<îhÜÑ´[Ûh‰/à�ZýòÇÔŠˆšSlÓ�{‘Ÿ¶¼·ŠîÔ•ÍN¥ïfÚgÁø‡†Ì}Gûü‚È�¸Â†¾òƒ”ccÑåY(ssŠÁñg¬¥6¡z¥úA•[ÓSW‹Ë2Ê2ò Õ¨V „ck`k`ˆgˆ?1_áÝùò@W$±œˆ�ˆÁZˆÐ¡ÊQ|ó|óŠßÐ�¢ÿóÝ�öË®ô�§³ÙúE°d nwG¾Ï# êÊ“î8°¾*�°ÏÏXâ!_vÚÉv²ÿ ™w2j®¯Ÿ9¡–3ósT:§¦`UcËÕÂÚyñºÓ]çèŒæR³Ô½ v²¿WÖÄ!µ·šÐ€xØÁJùÜÝWù]êãî·74ï²rµ›Ì [—:ë»<±“ýw²¡.Åq¾ÞôÌ÷"Ær„—ŠÄßæ§“ø�{ûs?`°¨¦¤kÒ7¯ï§œÛÉv²­2)�çS­í{¸¬Æ×3Å.囤ÔÜÕ�:ÇÚâB¹²ö‚†Kóàpij�ì?Ëʬn³Ø¾¿s»þè§ÝAÏxË/Ê·À¿3Þ0¬ô ‘Šr]Ur…¶Û}gØl~gÔþ‘ƒcm¬ŽÆ¸ôdŠÁh}b5^ ×=Gú€ùÌ£KÜJi¸&»ëø�¿ŒZ€òiõŒå¯ã(|üã|Bn>;$6‚(‚¨D OlÓæ>hT¯Ö½éuôs}’.ë%.OQ¼(^ASȨ>äh'× dqùD,Ú:#pë5pvã/|²=�‡ÄÔêqÉ™Ôü�Ku®fø›q¦‹9¸?iЙœ{á^Xÿ…!¾5ùò&].]®›ú|†�pŠtŠtÈtd:JlO›-„0«ê‚ ÜÃø‡ñdqJmJm\ý§VO­*» NÁ;u˜×V\‘¼@}6Ñ Ia+¦³]§lÁ\Œ7{ýá¢‘Šœº¯èϳTºáZ¯aÝbCžÊôª\ Æ5WN¼àç–RüSÇ1®+ÈãããÔ¨ðÛˆU`RRè>’¸†ma£ó=ÚiRÛƒÀ©þ’hˆkMã`´ý½“ÎAÎAò �:MÈàǤvÝ$§%Z`0àEì}nT‚�T;``GÍXÅñ,k}J#¢ƒ�Ú‰A®Q³[ê�[¦•¾Øüœ±æ~Wbšµ5‰Är·ÙÖÙVáÌorpJ%8¨÷'Ñ•=êaOÃÅÀså;\ISIS*‰S‚SÂ"�‹ˆL÷Cx§$õøïÕ"è“̪™ÿLU•Ú®Sv›�ÚCÊÈ¥=��DR)ô‡Ä“Ûãj@|# mTéâ:p ]'Ë ‘@é/%[fC>éOXÕîÏ %Ø®Š_Š�8‰­Ÿ£ÍÍh_}  :”ª9-©æ9BÓôÃ}Þ}þÅ1ÈMˆ$'ÒR$ÎÉ€6‚…€7|5³øK$by5} O–Ý“¥CÉñÑ»i,÷Â4©ˆM:ÍØéÊÀ´힢­Y–°NNÉ^w5­€ûHø‘�#�#obd2M!¤e—(× œ³·³7KÃõꦯ‡»†»œ5ãüo;çþy‘ºŠéj‚¨r²ºcÎv�²ßìÔÀˆ+ÜxNŽƧ‰AaoÃÛ:Šþ¸âew>챙ȺG¸fŒ¦zíè‹J€}Ñ/¹ªu">Vájë@‰gál¥¥ñV7m°™`ø]F#fZݤM¾ß„l8ÉÅE.XüªOªOšµƒ¾ƒ4U-€èܯFC®Íê9#|èù€-$»¾7$8ãúgåÔ¡}øPfœFòµ´"•ºk•b%ÆÛìœdš·¶|èÆ»i—i—Ça-×áÈsÈsÀõ¹Ô•ê½æ�ÂJÐ-QP¤%9ºcHQT¶ÀvÔUR¢ùûWûáEàՠՋy�Û=�È5ÄÈG‡-å�ÔÝ>ë†Ï{w€Üâ�n99„äÚ*jq?Þ•x·#‹Ñ¢¯Nôœþðzó‘@Ÿb½å¿XEZl'š|š|ü4ˆÏFÃù}ðûÞ ¹,ÛõUöÏõ«=cÿ8gg²¤¨Q¸2ß�¿¿¡ „3ÿ,ÇÔνéqìãƒ/ß©½F·ë”Óf§¾”Ð;ÃÍÔòµa̹~!z£ûÉØˆ—é¡þÀ¥¨¢�2¬ù®:Êx$ðMD\HqbpÄpè» ‰O˜Î�u€‚ÈÐÛ7ûoöÕ9<‹Øj0‚ýЮS3u—’Ôu Ѩø€ÚùåÂÏ„Ÿ•=€œøs½h!ƒDÏ G¡•:|ã@Ëq_6|Pþ€ë�¦*UH$ig„د°¯øu»Ž˜ k‘Ü•#ãH2½Ó‡ßtŒwª.§.gLy¹HÀQ8„ ÂDL@L`E¦×¢•Bꀋœºí Ü™Ø3±_E¹ó¸ó†Â;Ú;Úy³KÉà�êÌæ²¨/ôè¢<Þ™ š¸]§œ7;å˜bpîóèo‰2JÞ!3cÊOb]pI„uNlAŸXôrŸã:|`ˆµNVvŸüP�á®`KƒÏ§î;î@ÁwYl±¨X”ÌÓ�Xlÿm‘)üKÞè?ÝH!ºù\aØ«Õ\ûÚ1Ì1L€BØ aZ^Í„Èß/ø€RÔe¦Ý,Fø0‚­R”ÆÞ©þXȵ�åȘA|ä˜<>-DKl¤àý0×… ñ.—ymk7U+ºêºêƼŸ·KÒÂI1I1e|ÌøØ²¬¡]/¹K�ë,Õg8¹³rgi$ � �ÍËß2¿eü¡U„pø�Jòºåí—œËy϶ë”Ëf§Ä»îXÀÅ]n÷à v0gÓ¼ÛVz Wí,j (û¶ûT°¨Ô2.qGG1@8©§ ð,ü÷—bPöôÇð)ó =p÷ÔÀ6dKQ8éféæ'{ S S—ö××ëë¥ÿk&” Ô)á y†v“]sÏÃgÓb–ܶ;Ÿ‡ïóFÍ´üË ÇÒÈ�k'ùf ükNîdÿ�l8%žvð-Gœ8»Õ7æÃƒ·5šÍ´ñë è“k†Ž\pK¹y)CPvf'ûßÎ ž6–ôzùñŽ×­A•ËsL�ÝÊþ‚$–ˆ²¬§„7ï})jŠv²¿WÖ×7@`wή[8ïâ*[+Oµ�-Ó™ž¹‘úõàce»ÛÜ“ikùs„žìd¯L(ê> QM±¥Íqë^ ¯I³3YŽÏ)Š8Fw_–óš‹+šÞÉþw²¥*“Ô隢 Ñ#Új΂á/EÏZjTౘ¿@rew×ûø>!¾�ìÿ_æ,liápP%/æ$“öÝæ½Sûëœ� äÆŽÃ ½gÉ�^P+²ßÉv²°w§áP¾}À™Ù³fI–²d�¬“-)D1èo'Ù¥)&KB…²FQY"KÉ‘5{¶²•­"…Œ¥h»�ÏõÌ=Ï\3/žãøßËáü¼û¾œãûæšëwþ®eÆÈ£Àpî¡FüëâÊn�Ò‰kÖÞ;:ËoÛ¯RŽe-j:udEK%u3mfÿ¿Ì/nˆYöüéöI‰"Ö'Ÿ„Rµs®ÂÿËîøÓ4ÙxA�œÃ6�_°Ñ9ç·‘‘Õ^–²�CÐL¼ÇëO®œbj¾ ß´œGxc�´øÅrŒ`.±ÇÓàÇã_W~…w·ð|úm�Iq°V*ªœr˜ 9é:énÙãOIh¾ Ïå<Îæ]W^Ë—…�w‚L2‡R;ü88ê²!®Ã��é)ò�û!/4q„†�R @`W)²Ó€{ÍWÑ7HZÉœßYE‹$ú ô)­ÚÓÝü,b/(-JCum¤×÷3ªŒŽ=�=ÐÆzzlJ®gí¼T}©:³˜˜¯¸ ©&ö.é×9¸¼[y·*û8ú8^5–‘—‘;×–Ÿ$ÚQÂ(óš] •ÚK³ä]’)A½Q§<Ö:u6St nŠé� ^_<۶㱚p·Ž‹çÈ4pìpßj¤V.‚XI®d6†©™Ü«<ÅÓ³åð&Åö…• ¯Lsˆ�¹ù.˽£„N.á=x‰Óì.œ ¸ê1Ë@"ÇG& ‹Í”Å”Å:•!ä…�!QÜo-5œ÷' rQ²LGI�.;ÞÖ èšƒ¬VîYí¿»ã1)êK}g‰*#�ª©�ózÙìùÓKîö½ë[p_åÊâÊÿÙ,½®ÛŽÍàÊàú=!þ ÷%kß>b†¬ŒGáB¹C¹û§*Ù*ÙnZÌ6Î6šÔYiÂ;…X¤½ÀÔ\ì<ä¬Çü³6~ÃÙϵN‰°ZÁ�çbëÇ›é’ë�šýX¥fALöÈœ.ÐvÚAæàT±‹& ÕNóRiXÆ3Ûcq…•ò÷¥À=*¥7„ʃ˃Cmž¦òKÃãý穼© É:[!AÁ±�Y’ aÑNÑN«úlˆÝ¶09ÈdÁ±œ‚S@Ñ[ @/å')w;þS‘—Oÿïɦ E»Ç‰�ò'Ò¹ÀV8ü¢?' B"Š)Óæ!Ou¾Øú¨¹µuñvñ"w(uFn�s v ö·ñ·¡¹5}²b;DQ‚X�pDœ”›”Û¾,??–åZµ>µ¾î¼æðNÕÆU�«¡lÙ÷‹ûømÕ²ž�:…Yë”S©#Ü/Åvx-ú;—•EjÉÏ{ÏÉëÏýZ ÏÞA¬ñ4k0v°b°<—ЇVÍJ'eü úÀ’Ü»›ê êKÉy!³<ÉÅ*9ó?�;'BV¸„<>…JVˆ81‹„¤†A(�Ej ¿·Ûtáì” {·öy+£¤g¾9ö°?ÕáP6p~£®{­u=Ñäžœ¤š0^çë%Y¿™¡ý3ÄŽS'‰ÖÕ#Qµ™½‰Ýke�­9®À³ã¹´x®�ïHùuè:`Š%¼>ŒÙy}r-uŒå{Ê÷4yI¿ïR…k?s•s•ߎ.ùä9@{‰±aJ´àؒؒt“L^™¼úóI6C6Ã7=ÉÞ)ªÏŸÌ�ôÝä– Sàã_ÌÛ±Q§|Ö:Uü}îœün,^�Êõû~f¨7Ú‰ q‹wºÉaæZ¿%£X\IØO�0¾Ç££ðNš¼C‘‚x}EÖÌÉ܂Ќ÷ŒwÆVÜ^œkH¼¸¯8”cÁyÀ¯&ûjȼB'ãáãI¢Ø ì…­�7N�þ€û�áñþ'8€Q1p=+{””¬@‰ÃØiyˆˆ´vJÔ.�4R¬D„) …íû¶¶&æ:ePUÍ9: ®Ï{ á£Ò¬Ò¼w†)åäA8” ÊEbVbÖ÷€_DcŠÆcŽ'•'µÎ|[ø¶ðVzoôÞ02¾¥†wJ'÷î¬Zß j”ý’ET÷ÊF�ò]ë•”Ü{¸ß5ŒöxÌÞqöÒÈ*6H;«H^0ÏԶщ9#¢Œ° ¢�"AìW¼ Kq*Rî¶£¤�ü½K§Õ××GjÛzŒÅËÄ1ˆéúLYTMAÜ'ÿº43™0¾&yò—1$¤ÅãĹ5Sçª@iØ ïÎ"å,°x™ÿ…³4$Õ4ª­•lEÊÑ(Ÿè‘舴 nµ9¤ïLC`çk&S�õÑ�ïXè×î×ööÔb¢v€›á›á+V.V~Ä¡™eÄ ‘Hl¡ÉjŽ»�»íØÞô ô ÷Ø‚¨‚(ßcˆBx§Œ3®–hZ­é}.ñ¨'Ót£N]\ëÔËW²Áp×Dñ>6;"]o;?˜�'fU@ö¨WäIç8qà!1!ov ÚñÓ ð%LâžØ®ÇÒ¤˜'P1×Ðѳ„öõîëÝ̳Lèi^÷ œŽSÂGÝm#�É}ÅÖ&<ݶݶy~ˆ2ßž9ˆB± ÎÊ7€[ˆ°oN&Åkª¦Dù¨Bvôð_ Hvõ%cŠ�ªüÚ Ø*™©ÉcDÙr%}¬»v}á¼Jb!b!ýSh·¨¸tŠt ðØšÞžÑax ò½”XÑN¸p¾p¾CžŠiŠimÙ:�u+î<ˆëT4'Ô)5ËÑ¡6û¸[°?RÕ‘’ÍÕÁŸþ�îtÿ'fqµ¶E‰÷Ûõ›½\Ù�ŠÒ³ãiM®0ÚÂB—d•òl9™·Ø'—½™ýë² ‡ 7ï¼Ïû‡Zíä¸=lº‹�CÏÌS1U°lçw þôÕïþÍpéÍìïÉŽ3/y¡ŠÅê³èüá“=Û‘™ðªÎ[óH^÷Q­ä¤r4ÅÛ¹©ã›Ùfö¯Ì¾�sÕàhŒðükRìö¥æC¢©Á›Ô€ÛWú’'/ûµ¶Õ‰"ës¢ßÌþ{2Cÿ¼†„KÉ éûÅ„®íz–’P­Xj½òèäTÁ �Û�ƒ ŽÉSm›ÙföweåIA¢–ÁŠÔ÷ÜÄn$=hÆ„¬,œ÷áYHAÏ4ñÍþ\]½÷…]q×éÆf¶™ý'dÕ9©QÍ"ar.ºœ¯Æ½h™™õ¿Ë>ïú!I�)Ò¤¾?…HŠÙÌ6³¿+K�Ð?´ZO{iqÆ-ËkÔôÀú‡Yi5ôöXb¾%#=h½Fr(pôlf›È,rx;p&ê|Õ5÷ÙÚr7¬DsGl©g –ûNè ¶ –rLІ^I›Ùfö·e™�V/uiÅ‘[PžQ‹¼æ)csÚ*FÒ 9n4K!¢ô8NlfOV�@›ÄÆ©¥Y[ħÜ|�ä~bLZ¸SÄ U^_¯ûúÓ£šoœwíg6³ÿîÌ7/-¤XN¬ÕÙUøîéÉuŸ‹ˆšÈ®h†÷¨óÏé(ˆh£ý‹Fòþݳ{ƪþ'?«èý-¨ÓÉU‰8à Ç©@âM ƒwñt£Ð »ÑFï8ý¶‘‘uíSúÇpJRÏÌ>–k±ð… r±6hycAaûè„U‡!±s“lùÀËÔñFà%¶³“�#…¹ÎÌ�u"Ä�áǰ.6…*<�WR„“p³~ @]µ�…¼}-Ögï­ÃjÇjG )FCô£”Ü!6êÔ8žb@ÞàÓ6¨@ÊÈðÕ÷£¦I4d0/B?M q˜C¾ýÉ=~N¿u[ÚUÌt/[ß’©ô )\kÈÍœ¸œ8£K2q8ÌnÌn†!†!{×ÌÙÖó�Pb“Ý”p©ŸS?Gk‹QŠQ¢Ïš©˜©ÔÌ ì�wŠÉTøþÜeLtè¡{öÅ×ÞÿÞ¨Sþk�"cëvƒ;.?ÄŽ×âÓ¿âÚ:ÊIj¦ûì¼³J—Œðø±0­Õ@,Æc’˜SJ ÏÔ:â-“™Ô�Ò•Ü¿dúXIìÿ›ÌW/'”±ÏÀ Çññ#+ ™å¡º�~ðîИ•èÑ;Jã�ä�3�δŸ±„x6 €Žðp}ø�}6 nËa mȇÜá}ü’—I±ø©ÍÅ6Üq²Ã&4­¯‡jP8'©#\}}ò—­Ä«K«K'û+ÔáæÌçÌ­L¬L®É—³#Ý!g‰yFd¥ÁÉ(È(P˦¤°�ËýžûÝ…Ü¥Þ©Åw‹ßˆ?u½ŸH1¼ŒÙ¨S—À~?¿i¸Õ~nm!ÞÅÆúIŠšÙ˜QÚïXHeå–�:uy­S-£‰§áª÷¨Ìàµ~áW0Tg!¶²à”Û]qËöô æc�—¤V_s¸Þ¼;€wæÉeFR®ê™ c¿éE1W3W3ÚýÕEhþ3žý­-FÖÀkŸBH¸‰tD$"çH¥F¥ÆC>j2Ä@ 6¨ïǹPœÜ 0tƒ™Xbž[)Ý:ÿ!WˆN*9æzäR„K2Žéqdos¨ú#ò–›Ý§Œ¢½¾à² E.†.†ÖzXæó½p{l÷Øbg°3γŸ.Éiýƒ½»ŒŠrm÷.)� ]‚¼""Š ­"Ý)”‚R" ! (áfÙ’’ ¢(Ý)á¦K%¤ûå>�³fÏ3Ãa�õ®sÎþÀóûöÿ6ký?Ì3s_× yׄ)0¡ïœê‚ê‚I‰±™±Yžr8"Q—wZ>àªñ¬U{eû$mõJo.—ü^³Z‹[éŸÞ»;¿Êˆ}àKÂ�aöËIcî©R"Ù ž‚ˆîªhßÍtט«#}$]8gJ×ü}?*æl€Ø.³¯�Œ p4_{KÑ='‘Mðzx¯®ûìtï@öM¸?Íú»Qô}ÜBÊ)ã{�0QóM“«Ò‘Úaj˜X&|j€Ü¤èËÀ§wÈÙK 8ˆM›¬g©À«ÐRtË+Ë+S5á†è¾­¡TG#QG ln#š�/!.†ã]7*oT:þf9Ø™ôû™^õ‘C <¯5§ý°á-.ö!(+~‹ç´Y>Ðn�ÍYÆŽzgÜ+.eq‚—/†3ZìŽAÃ9C€G€Gú”gê‘ ‘M&M&M\ÌLró;ˆ.&¹Á6y8òò”�ØøØø_uÚÕÚÕ -§Bá�rÔ^vM´£%àí�zw£Ýƒx¯NÝwŠë߀“y=뎲I�KýÍÓ¢œX“nŠ�"p�7Ã?Ãï1¦An@颸WÀË'0éoÈx°ª ¸kÎ}~Œ® ¹ 9…\‘±9Š5’:ITÐÞáÖéúke¾³×‡ ‡mQ¢÷µ5* átD]Òê'dfJÁØD7V÷¨Ì£¯BT´é'éq(=°©uúxÄRTÜëû’ÔªÀ™;d.�ÁBM»“Î]Ë�-‘-ñž4zû(î¹ÏsïbïbvoÓ È™©Q˜Þh. ñE°E¨�0Y2YÊ¥¶j´jŒ\Zã„wÊ”«šÏ’úUÕů]C„÷ê”ïN§dWxᮕL l.|ÕûfþWÈ&Ÿc¡N@PgFØH™¿6¦ Üèo@ é`0ï›ÁŽBûJu ›™QãsÀ¿h¸ëÑ-,Œ“h¢3Fñú…tÙŽù pæºòäqD²i|œö¡��ù@W8ä©nô*d` ÿ*’‹)` 0(ˆ%cS/p©ªqCV$p?¨ÜÚZÁFé¶´òðhüÍß/}ˆ[×r<ûvbwæ×|qõôJ%¬¿áeÂeÄgÄßc¿Ç~ŸÀöƒâ<$A“°lÎO¸óÏÎ?«¤ m$m¼7íÕìÕì8jiïÔTg^9Y>¯N©ØRNÓÎ^�ò;5Zäqá_¸ÜB±JçµlÐo«žÆ§<(<`CjoŒéÉ˱R@ˆ6xm'ë‹rèóÄ&6¥­‡{€áŠ?ùÐ9J:JªyÕÁž#s(Ô›HËôÙÀKÍbÈ•Îç4ź#S¸S¸8„ºë–žA3ˆ£$Ñq¤ü@UHdËÇfì¿üú:š¸< 9ý&µPõ68iâÃÇVóÞ‘*sWœn|íqèVYséî6rœº¼ñ¼ñÜEn(.ÎÃq”p”¼7yorݰÿš¹Äþ0¦`¯£�á†,‡,ÏdKuHu¤"äsäsø…Ýüà�jâ¯Ö9¥�cm1O”CvHc¯NùïtŠ|¦ð\-»$Jmû·æÖð㈦LøÊ€Ì°¾£º¼&Ú’"' �¬+X aèBñ�¸+… •ÚÁ%ÀŠâÁgtV®V®q&ôŠèæP Hcwn�’æyË�/]6-R¢Rrê;" J ¾®¬«�coã�ºM�'õÀüYe ln®xäµq„ �“29× Óš‰±i§ �8ÌoÚLÏA@И…¨ârX2_ÕÚÝcíŠb_G_Çúö…W9-pÉ6É6C„C„±³"øíG!.)˜DX¤éáäZv,ÄÖÅÖ±rÊwÊW®têDvŠç÷Î]6Ū#Ûõ#�¯¹/¾6Ûk6þîðÿµ×Èœå"‚pÝ ÊE€l„ wk©Ý¯’V+w~¨¸ñ3‰µ:_’|ÑåÏ$M­ýl?ûO³�öïÅæõƒû¹ˆù†¶yê¸Ðf)æ×è)Þwýz)„¹Ð÷ùÃíáûÙ~ö•ÝfSÅ‹ð%1êceßTšdjcš,sþ ¤µ’Ž=;ýïƒnuÌÐÈÆ§þ\oÀÝB)”)¼�MÓø" $ª‘ŠN¯Z¯:­ÆóºâÖãHe >¥@#9„3âÍÓpF+åÎâÎb•dˆ=7ä ¯f0„„û_‚H·Ã€/×€¶û<>ؼ«þê Ïl%†|¬+8¤Þþ—Vuáu#s‰ŒÃw^N*ô�"ʧë-ùwGæ¶mœmœ=µþ GG.Ø"Ø¢—º—úZ~HªMij“ið–\©t©tFŠN™NÙ©»ññ÷lDà�BDDDu\n�øÁ°éœS¾çžÀ;�bMdŠ„3جÿŠ2Ð{V!n�¶¸=“!Ó`‚Z®`ôÑÔ*¦»9|À{3àû±6Þ°ul¨æoèMÙ)Ðmqmqõø›A—)Š"³ŽDiN D–\‘‡lD)p¾Tä*ç*uÒÀ©‰ h‡œëFí~³ìV„»^ZlŽ×³Ì$t*a�€ÄX‡\^Á)lH³2FŸ¾z޳·‡òcFŽ Oédÿî¤Ù“ðäñä]êöbc°�Ë­Ê­úû1VœŒ:Ë‚’Qƒi„¶àœ›[q¢^°^pßú{§÷NR¢ÍðN¥j 8.¼(:—� Êã—Z±W§w:5yzá œÊ–Çßá7ÉWϻϦ–a â,�’ù;Èê‘÷Tÿ]Ö¸ƒ ïö‚ ýœÿ¥ ä56…µ†Ç€žá yt&&£¥±×ÑUüDI\FúêØr8*w2’Ë($jw´ö(1+1k¡$µ boY aÔ.Gš~ÈVëJ”°YOÚŽçs^ùI<ò&dÔþÛ-lØf’•þ¼{Í1Šóúe¾¬“ê>q!ëYT»cúôšã;ÕwªTzÖ£ÕpóŸç?‹4‰49”04'èAæ¼1•úEÑÃ¥S§Sg ‚�é8©à¼ãQ®JðN�‹ç4qä4LþÙ�¥-8Eh´W§‚v:erîæ4ñµzS”‘Oó´W�$ ‚²1MO‡Û¿ÊõW$j0)³E¦ä*ÜÀ%Ó¢0”OvضÎ?Úbùf¸$tKE·xpñ`¶WE%º«s(¡UH®–Zd@ÓüÓzH"—’WÖáUÏcŽÈÿýü(†˜ÿ”ö„„tä#uT5ú€ÚZF46iú€o™­ö6äPðU½7‘‰IØLÓ2Ь§—;ô¿¶¶)º®ïR9µî£$·»ÔÒ¤òbœbɶèE#8°z c c­šüªì¤†“Z÷â¸6‡6‡AFsFóâ%þ0þ0áZ…3ð3K/·Ì}¢.öÝð7Þ(Ô£]ÝëÌÒ²'Û‰ƒg™µ¿º/8”Í&X_òÎ8õ¸§Íõm�5Ó–ë€ÁyÑ9Üv1Qõ•þTåÙú2bÄfIj—3KÒ®+K'»ÔœíÜ·ÊÎïÕõà�®Û‰œ ‚;næh�²YÔÇ+µÜVÓŠ)ý¹œ0ÛX}ŸÆü!&%]|!`äÑd@‚�•Ê…SұY[¨ü2 ²BGÔIÔYž&m†Î½å¢9’No8 Sö¢bô>òê�ñKÅþöþöþ�ÉJÈûf"WH0¹3’ pÛ` <„ y ÌM„� ƒ(x[åF¤”å`ƒŸÈ˜oùüÅ;Å/ ‰ÁgF‰·Õ;ïN?ùë†%�%ÁØœ8Ù{¸JÛJÛææNÎ/tzM+LªâÑ¿à>~2Ä`ðg𷛃¦Kßóf}ç�^ISeòMÔ¬‰}¹W§îtÊ8V,Nàí¶;Š âñ¹#Y=ϘÂÊ¡ÃZ¦;Ÿ*mÓSº½U(°"Õôp]Jì ^G96•3¥Î@“¥;ºÂîÂîd�J tê…(ÖZHøî†UŽUA/„žêëÈá33’é”é”´Û*"ïÀH…ê=Rú-€OPä ÇæÊ0@³öÎÿ¤ äEòjZÜ”ÈØH�ÞÐìh¹“bå!áÍc3¤â*ª|±±;²‡Wª=§Ðfy¸±1õõ•ãÜ6Cw!bʘت\p:tÌýÚÎØÎhŠaâgâ÷~dù c††JäåÇóZ,âòOé8&ÞÜ«S�v:%¨•[ 7­¸ÝŠræ/ÏxÖ°Ž0çL'U¢›�åd8——ú1mÌÙo™_½Ü/–Ql…ê'±Ñxáö(yxÈ �%�%�E=Ÿº¿_ÁñL‰ƒŸ[xá'é1•” ðMu™Y·]·5À�^€°Ù…C&«{ �Ó�Y%`á6�6¤„@‡Õ"äB ìăîø:lš4òj&iD­}J%Î�Däß{ˆ×‘*³;â‡Aíßy¾óç½óó¦†[#Z#"î"îzW¡º•$¡ÄtíAñ#¸èÂèÂÓâ2®2®AF6‡moD Ã;Õ˜%çJ>c%ÞSª.Âî¸W§BÀ™¥c^¹peí(R¡Á"±r~ᘖ*ét—™¸G-ˆuL.*壀¥[R 0UË)ƒÒ¢¾I†MǓٗ@…Ñp:�.�.f–'èl§Q‚i�¼¼T€U¦M@h¥³hœyÊï%Þcy áŇÜþg/D¢qª�´b|ؼ/œ[.ŠÉÅ@Œ#l;Uû&Y±‘r¯]9¦lØQ òt›Ú|Ó%øŒJÆÀôͦ+¬(¬Ð·2¢ô„“ñ”ñtw¯�¯¤°rƒÌUb:–õ¤.­9­ùÓBÙBÙãké‡Ò –bÜÙ’�¦]ðü�Íý³j¢n÷ÍíÕ©Ç;�ò:î ç?x<å|�À…"ß ÆÔEL_¹…§I}‚Áˆ4}]LýÞßú¤…TZË(xj�Y±Y(K©’ìþ€9Bw„N:W Ý|”å`$#­ÊA`$?ã8äHZ?G‘Ê|sžQžQädŠ "¢&g±¼í‡ä̼º dÞ ¢ÀFX pµ m'ƒÄO4 ø û°!Õ)ü9·ÝÜNy+;’òׯjë3ÁÙ²Ý%º¬yPxP0+r¯‘·À  [r[rÇÈã~]Û‚° aê5ž…“´•´5þììáìqöü´Ã´ß©ô8d§^ÿ>³4V§A?pÇ6ÅÖíP­Q�÷®sÈ3Kðw.K¢w,™N�*‡ë߬Î�=ù¼Ÿígÿ»JºZ«Z¶fáð¬ÙHõf?Ïø²W9”Lnæª>×ý@ë�Ȥ ßÏþùÙ Ž¡ì ï™+[t[¢Im±òU’ßð¦‹Ù*ñ±¼¨ mò18¡þDw?ÛÏþ'÷HËô¬ñæÁ¬ø·§^Pk�“Ð2ÿ›½;�¦rÿ÷nÌXæ2³CR"Qq„Ú!óñÇ>‹ï]ù¿jó½(C¾>'Ðé¢TC±M¾—íeÿ´¬×ü“€uiJäõê•«Ï-J¬T’ÏÆ ª6:‡Xœ¹÷�,’ÀŸ>IÞ»i/ÛËþiMû|³ûXfb²š5/Šˆ×Ì–Ýê§EW·ÜvßiãFk£±^w¶ƒþ§3„C±à‰à¢ÖDb¢F¾Ð+òR ¾8óSºVRa殹~WR´efŠvû²�€`]6MŽD_Òƒ YÿýZ J{?.×Tf:@n85¬¡˜ˆWéÅS”@âan}`4«^ƒ9–sRêéÛÀOSUlöùöù|O^Äb Ã¸÷ mÌ·A @,r¸@*š‘m¥7ëÄPWPW(»!ù�‡‘ý· �÷¡Û�€ÀåÐ3ÊÊ�Og0¸¼°xQ¢ÞÌwÛdz÷6>O”¿:teÞŒ‘R|ú£L{)Ô~u–ÇÆÎèì'¼JJbL§*ïâð¯ôÿúàëUûË…R²\VÜí€s¼æxÍM¦)ª)êl‚q¶9ºç{õö|Åè†õ‘�UW˜|wëÔc0?UG±ÇÙôÓ_¤d¦-Wû .;–°làþføLÙþ5\7Òî¬D�PAø5 w¥Ì |N¥4ºã‡�‰aËË‹²½w[ÞÆU.4™.âó€S(râáçeÀ� hòÍý›{^3„Ôr´CÉÒj6‡&+Ðõõl¼&øTMFÊ «n¹³×Z×Eïâ#Äxè¼–Ò$+WaTjí) †7 ;»PZ˜éGìG¬ùP•*V®¨­¨Íà¤ÁIßâªmeˆ¾®¢AÔ*\ýTýTl`1U1•×s¦R¦ÒÂ~_œ;ÝÞ�2ß¶M%÷,¹Veywmk·N…þêT$2˜ÎÈgì-’7ç¸íxN'5®nA9`Ûfƒl¡cè®c‹ÄùÀðÇòÀönjFÕíBB|/2Ö·^Yc+æ(æ ¯ScÀ6€q�ÆxSã>ñ’ï׎p!îÊo£m£•š„dAîÔiŸ…48V¢½ð–þ~ö9ì'ÂçÎwàPÁ�’@ˆ”^`Ôh@?;>|sħ&�ÏÛEl8x9¹ýg¼‡üévÆ®ø¥â¨ÀQ�ƒä‘ú�á,|,|‘‚È–$þU'iÈÍ-\Ô…àDnˆÜø£4¯,¯ÌšÑ}Ð}pÁ‰ì¼S©mŠ‘ÇXu<t¥2ižîÖ©°_�Z¥é}'ÔF c)¾µZúS©u).§æ æHl׬Ç�P\"éë@°\1€¢2²ÁHÜ2,Ç'(:à&>a…˜·äÿ!ŽíþkŒ *4ƒ¹¶À²lƒB©�Ìdòò)›i…iÅAqˆrd‘]92©·ÌŽ–õ8ýhKw®ÅçÔ  òÛù êq.õ;¤�iŽôø|ïy5"Ä–Æ)%w Ð÷¡îe2d–ŒúÎ,5’ìø­ù­ã^•äz ••_0X0 Èš!¹ yC…kN=+�‘[–[vƒO!Œè£9t2è€|E%¼Sf÷4hƒmE¿ Éq캯þ«S,�p’Ñ´“žmœ+…RÆO·ñøñào‡÷“´Ò•ÜÀ5£±0 $îû½�:ûCW�X£v•@êø£Rl$I>rhÚQaÓ·Ç`}‹v\¤ó @ŸŸÉâ{�͂ӒВ ꂬ" Ûû/¸A$—;ΡÝôŠC€ÒQ_|Vû ®”õ�Ã�D5³êˆj™P|¸.6e&VÉ ðPXëÖÉYøÁ¨ÒDʹ³LGs3žž•Gs+qjp)Èd_߸¥l�Û $ê.”Þ‘wpÔo©ßò×&'ÌRéSé –­×Ágòœ)/n:®Ú9'’ˆ/MÿÕ¼ã=�è™<Ôv‚n�ÉÅÏlSóµ ?kO&råç~r¢‘Ò¼ö’0bL­ýžëcŠM»�LÔSò?“wv‡™¼²ðÃÂ7¢ÈPgŸœÜ8ŒÚ­ë¿ºnÆÌÑ'ïcÞ…¡iO»8ã¶Àð®îC@vv6AÊ…Á \[3§�íºZ€R�‘Wúû0>]§­Jsvá«ØBËCËDýÓ°¹«bÔ©¡‰pˆkcd!Œíæ }uØ…7…7�@–š!Öº—oCÊYo¢8>�—r lø¨Eɱ¥l÷× FQ)ËÇ.ÁçŠÀžXŸn�”j‚bQ¯¡hYn}½ž�Q]FÚ§ð¦ð~(©é"…³Y²Y2~cüFµûnÆE'Hx.YÛl!¸Ù–Ù–ÚsÁ†Á†¬fBfB›†~ðNiÐbzÛ-ö„–qmÉ|·N¡~ujDìy&œKyxwtÛxO\*Qw;.NJ^@ó`ÝPBòþ ­l3ÄH~”•Ühh4Æ(—¿wŸØœN; ù7-Rl*‹*‹\¥uEØF©0¢­Ðök\“|ì{ .•+ȈD·tžtžìzëûz&O�2y­ú#P5lÒæªãC- Vošœ†\Ðyý¬<;Ÿþã-Èwûú×·þ4}ð2%.…wŠEOÝCþQ°wž{ø‡}Ýö»u*òW§¬\œáŠ]öcD ˜±«÷š?�‹:é·7@±ØÑ_P²pÍM­æJm³T—Î_.Æe74<\ÞF`Cù¡ü‚'̱‘›bøü‡Í÷Š*e#H[î|Ñ�[únY3Y3'ˆ!s®�þ¾ýC !´ zÀý'Ð{NŸ*%@køczøù›ÓÃSMIÂbø¼NMû–QÛgµcI0ü”=Ñáûõ¾®�‰>øâËiÁi±õì‰/ƒ\ÎhÎ(3 3M„BpzýYð�ÂåIõùœƒÃOW{WûÍ:YuYõƒ©NºðN»}ÝoIcåx8ѱë}åôn�zò«SéÚupÆGüM0‚5µ¬³XWmêáZ¾œP ¤ôg°PðÈxâ"<3q P”j¬–3^i`TÍ%másµoɘÍ�|‚­W°Wðéñäl©ææh·f�¶‡§Ý +Êâ«F£µÎóÊóÊs �Î÷�/×-² &´gÚÑ ®à7¹è"§§ðá&”gÃRõ «¹ªíéÙSðé»ãbhž¤°¢ÐËh²>ø¬q[æ­ ÝÎ<©ãÄn‹Ý6iß×_Q W£^£ÎÙÏÙÿåh¼Ð¦3$ô-®šqcR¸,­,-5�cÇjD¼M¼MŒÉÄO£;eE uŠÃ÷Ò¿Þ-¥Â«ƒ¨Å©»Ûüü=ïÔZ)¯ØR �ÏØidz÷ .3Tî'›ô®:¨"©é”Òi@»>ÖF½fÛê§{Ø;˜áÇ_n¥Ovµ�§®"VÚ÷²½ dD?•;d¶_Ó+)¬ /׊�n†Ž®“=ë¶�»ú±+Ž~$K©„Í5t/ûÿ—]`xà�ÒQâ8ëÁSNÏN‡ø�p¤úB˜cQû+3ŽÒÒmúò ïÏ:+Z{Ùÿ^Ö°Þ¡ð.�I1dVãGSã�ÎIB›cú1N9üëås­–4�†'$¯»2ìeÿ¬,ûºÐz®ç—nŸ7eÃ뛯+?n±Hîkw:O*Á+oTpøñÐ�fíê½ìŸ•UÕÙÓWøå¤ò·lþü‡“Dÿ=‰ÕË/cëZoFv%w¼ä3ê® YÞ§ú_Íî¤rL1ž¸Ôê!Èp0ZuX ¾nÑ—dOc±�Sù°N¬ªíøŒ&e¾5Ûfg$ÊûÏÅÆÖŸ"LfÊ€{~çùƒƒ�UþŒýw!åó¸Ó´*àŽ˜1]ëe–f–&R NÿüìXÍ ¼Sa6Ò1‚R’ŸGµˆÿ\˲«Û­SQ¿:Er|~N“žß £ÀUÐZQ~J?Ç ×L™°3�çþåͨôê$.K«Õh`>è-Pœ(j‡QÃÛG�ÏùíBÀVù‡¶)‹)‹KEűVcÔÍ¡!¸_˜qå(/ÈÅ›„ÊŸ2ãÿ°j±j¡ûí‹tž‰ü¬/ bûV…Vú`(â¶Ü ññØokÝÙ†Ðv¦Ï_e_ÀGl™n,OßH¦Zê䨑“ûª¦§I5ýÎÖ~—|µuë¾³ÚõøµF8pòF¥W¥×Y‘í JaÈl5®·Ì¨5¸>æ>æµ3ªõªõ’W$¯Ør‡wJã· ;›‘©—ùnp3ÏÒîÖ©g¿:åøÂÔ®…Ê7Ã-÷�à ò�ßËqé1D3Šv——›�gp ¬ØÒmäÀ¨a £X‰vŸK_¤"ìÆ±1¥1¥m1} ÆÆõ#‡ Í]Šy P(â ��F’–Öÿä·å·uÅòsbÇznòWª9Ͱ0¢´fŒ«ñÑô„˜Ä´LBо’kò°7]ÆgÄ¿A®q_£p&ý¤'B3(•²!u£Íugƒ„͵[÷. <‚SÈSÈknö^”qÚô�”á2áPì…“Š“ŠSyÇuŒëØTf®p®ðpj{¼Sj–fVÍ÷NËî P^z\²[§¢uJÖÝGÎ.UÅ Cs¹ òèû–ÙcK¸œ‘rJ@Ç÷ëti•U\?¹ßiNîfR@ܲ†,?…ôk|²¹ÓM²êKØôœôœ¢õW×°q;bô¢Q[.=òW­ … ã­›‚oiÀ³ÛsßW�àdÝÈ6%Çš„ @˜ yâί!“YÉ[K�€òo6iOD1âÓÈLú({HøÌ³t5Wó JoËž�½ÐR²e´eôão£'³…#/$/LB&!ˆÝÇ·!�×pßí €£b¦bn’v©r©*˜™›óuaÀ¹£D&$ô�À-™J$«rãY‰ÕÝ:ó«SaÓž½pÝ:v�1r”¦d椷–t´qõ(,sÚÃÖç)äqÑGù¼t;R $pcÆx¨Ï‡Ï•º¶¢¿ÍÆyaë³ì³äNZñƦ¯‰Áz;cƒHXÊ �ÌpÇg0mRZʪȪUµ€NÍáÙNHô뉂Ú�¶\|†]û«Dr¸KòfÍ‚LÊ"êâo>ØÙÃ.Ζ°Ga�¦‡jMQCp²(Y”¨µ¨5ò»ª–¤pW~�÷Üçgo¸4­PeêÞÔ½}3Ý­ðý~^ETš»Sø¿D˜´WEòËÝöûIŽŠ³‰�òMø½[8L"S/›vk%q½&I/fE¬¸™°”Õ G˜G,¬FÃâô“êÃS"ljþí~¿èûýJåE¶/+ÒdŸ£tÓO™½÷ü{weß÷œ‘d‹,II%bB¶)ËZ¨±KH£Dö-Y²+k%²%kBLdZÈZ$*YÊ’H„\–KvYoÿëlŽyæœñxñÇóÜÏ}8?ï¾Ç¼üžÇlÿó÷[«ë‰+]o™Îô†ã6a’"êTÅѾcr>MΡK„ 0ˆ:~+ØÉœVR ÜÍpÀ­ò]fDiŽ)Ñ*@é’±£¤¾nÿº]�ù;ŠTl!˜Ò‘¼· ¾„ð…êÍbŠFC8Ü"Ü"œþÀ<„è#¡o9§£/„Ù^ ȾˆD¶~ìŸ(©½\Ù½¹ÝV Â1÷ZìÑ…¬iJÅó?c—®úz¶#yñVÒrõ*‡håÕ ‰þý¥¢¡¢¡òPyhÊ%¸8d2Ö*Ö*oS½mP$ÚŽã†gép©õ©õ­fG4ޤ¨ÅoŒß¸õjT¼SKOªÞÐ(¶°ë⎺„¯Õ©û+�Bé´ãàlÊ=hýlú­€×9r {†p£ßÒ!MÓ°rœ¿ÿ¹ÔfhK€-A59DL–,®”üäe¢xiòÙHEÇFÇbY¾e’j@©Xpmk¾ D {Aº®¿‘Ö9ˆ`MdM¼(iøÙ‘òöD ÷ñ)A»3@ë°SÂ…Š ½ïœ …Tß›P\¢½ÉAÉœ�–ó´‹œXƒ‡uß·i�ÝO3}w.v®ÎZ«,·åDË &v‰ò¶Ýp̡̡Ý9Ý9ÚÔF˜›%�Fr:¥˜£p}"}"y0¼Þ>TóTó{lá�ÚíB++àm�Ÿné�Å5Ýxu­N%­tªêE3œ>¾u€(Ç÷ÀÎó�iÑ{r] ¹uÀ³0ϡƲ]Áä¢ñ/å½!î9€–7œ‹h�™…%A?ç��¬î?HíeßË>ùŽ�W9Ñx?AO`À0º�yÂ8DÆÈ5¤¼åhËQËßö΂cÓ°'Øk Ôeãì‘M”à¿Vó�›·zBZ={ãÊÛ |(™lëŠUR ºÅjz\@ðŒ³gc §øêÊ ¨}_Ä¿ˆ¿×t»åÌ+¸hŸhŸøûñ÷™=œ– 3©ä†B®sÀu^ì¼èx@ ¯„OôÞš¹5Óâõ$¼Sr[›õtË‘»÷ïQmò¤]s7zòJ§Zû÷ÃÝ(éM"RÁV.Ôå/ì'g y…`|~Úù€ÛŽ\·ˆ¿ ”ò{ɨ‹DêܳΔÜà”ØPE\Ÿ&…MÀ&PqØm'Å¡Atfžà, aTÚ?}j;ç¡(IÝíPæP¶ƒ2+ Ù¯vºý³×íl± ÁóTç”Ó šRB�Š–Fì6ÌCzMÐ'J—(¬“^�R¿�ª¶ê/–K§³Àº¾½=î¶o`uiÕRƒí˜v̰FK ùNR¼3Þ2ò�]0#l5»@ζôF-\BSB“yòñÃÇ+iTŸ¯>ï�æöŽÐ)KN¨SJVþ=.ÓT±½&#®O„×ú¿þ9Ï7jä¬~‚êÝ¡Ÿ˜š¢l÷qäãñõì?'{6¿éP¨ìµ[É17U„T¾åØgmÙè4˜þ!Ú÷Ðȱ‡èŠëauáëÙ¿æi¦½8\Ây5’=ˤæÜ"žgÞ�ÏÎïà“þßwÑ* 戧˜Ô}[ͺõì?'CÅ”]‰ö¸Üv&�M=3÷—Öçæ­ü¦êü’Cí~x³ÌHO ¾:–õl=ûwËÆ-B~²((2W¦ëeëxÛõ>=¡ë‰þþùl;ñ^¯ªïŠõ^ÃÛ4O­gëÙjÙ%;‘ˆ÷ÉOƒN˜j{Ö¢ª5äΊ^JI0åJ®GˆÖT›”^1Æ•½,ÑZÏþfOÇ~P-4=8ÁS@“Ѽˆ,²ãOùÅ�9c=Víøò‚±fn¹ª¹¯ëz¶žýO³„}‡Õ³ÞçüÆ?´]ÐÑHñ«ZæöUI]:09ɲ×¥�öúDWÚ†ú’¦õìß+“pí5¤VgÉ£5º—²RYÀ¼*Ð"ôhHÇ5·"-·T“« Ê�_¦¢Ö³ÿ»L*®2CHîøÙ…Ÿ³¶žP}ýíJ¹0=ân«)jüPªëRX­`Tä´’ózö¿“™h�:ªç?Aÿ°;Œ¶@eÙrü˜ë7;íóÜè'UÊz¤V¼WjµO…äzV!YR{Ù§Ù¸7édzð¥é³_6�ðßî«#�¥P}>&º\z̸”~­ßîS6RQmª6ƒ +³ÞL”+ÿ(‹9÷vŽz=9ÙJ¹@‡·H|>gˆÜaíg@•Óñ ©¾‰¨#¥ç!%õ½µ~UR--;ºò}IÙþï\J‚®/Þuû@XUï'B•˜ìÃÆ(É»*�l¡jˆòLóLó²�ÄóÍS„õX:1f' >°s.À�iûDJš�ÇîúvÝz�K1¯Žtd?¦dã±æ¦ÏeIJ§÷}£jäHŽ?Ío÷Õ18Z;õ:õkê^üýN²F²æbóÅf«ìÇÜ{¡Mälн pü~„yb£K£‹ÁÀç'·£¼Sª¯Å³åu½œU•ïÎ~\^«Si+�ÂÜŽŒƒã1ÙyŠèÍÂrÆf;ù´Þóä M÷d/kÑG‚lyÂÈ ±•*F±´]‘C|²¤´â5<çq—7’é̱?›TÃ+",A‚êÀ0ÉM°a›!báhvE•F•†6Âb AϤ@"e8M^@ǯJD÷·DZÆRC!–Ç<º=pVì”ÌRÇ›�iX š´dà¦eü¦æÝT½:�ÌTîlîìŸþ6ñ‡Ðp`Ã}†û¥AÔ¼•í"Ñ9¨W>W>wœ¥'¬'¬xAî²ÜetG˜ ¼Sœ#žqŽ™Í¥Ûáuðáï×êTúJ§˜jÞöÀ ˆËúqUQ/áÏZê?#WÏ&' °zð^a«¨ºL}ø‚(ða>ˆ ˜ÒË'âpϦD=Ðò> ôŽ OŠ¡�¡yò©#߈‚ã ¯sèW›< ÛCŠ¿%ìsàØ»gïž2ˆþ$ä], äø8Á5àî<@]?fE‰o€™e’p„ †‰àNÖ´Rò7’—&‹MäK•Æ´,ý�79^˜©±ÿæÒ«ø–?«5«UÒÿÑy33\›u›5~?s/Óöq2DÖ�œP�jöö«?¸‡»ëðŒxFÁK‰Êdg^ÔQE0Ñdò䊾Æ{1¯Õ©+�ú(/H·!ä—Bç¬[�š[*ÿÁ¾}"iLè‰ 9‡½¿� Mû73m Dïc—R)a£G#-IыӋÛ}mb#õ÷w"|)A9ŸE Ë%¯ ±àK£RÚié$$vü¤Ô"q…� ¾ÛþAO8 " Ü–±FRR!¼9 ûƒ÷'DZQÍcïŒ3%[¦ÙgcßW¥ÐiHŸî“f:³k¸¸ºÃ»cFbFzªk"pC˜!LŸbŸ¢’O„px2¤Ï’Üö`1f¸9Ñ9QEw &.Yù¼òy¹P/_B§†ÿœy�ŽÕ¢gTžÜê'ƒ°X–X­Sšç­ìÀëYÿtŒNÀ–¨&çÒß•ËæJd8Î¥Ë'¼KïîHϵ4Óäþç9-ØU£¨ûî0Õ%Ú^þ,ÍÇß;£3µ”ýºØÝ÷èÞu¡ �©b"-F©èû§SjUôIª¼’¹$Ѳ¨’ •§-…ŸÃ€ÏaÈ‘N�"·xxZ Ð8Z] D»bL‰vg}^¤Ä6£*¸qÂ�—ÔôÀô€²qúCRgF‰¸T}»$d�„tjÝ6Éê£æÝ¤·Iï$3q²5Z¬ÒZ&Ó@ps#Pý0³ˆu¥¤V¨0¦]|q p~¨awÌ–’ÌÊ. }½Ä¤|ž@¥V”ê 9¿kj>ŸV7u}Ë| ¾&�Šï¾C?\¡m¡mæ†Ì ¬ç¤_d B¾T’»mY·Ì·Ì×Qí>å>%åÕ&Ö&¶‰Þqü¼”aÅœ¹;+·ñî™sLk=ƒÿÎÑP\SÎíÎÍÓ$wñ m½A±×©4#ª›|µ TåÕÿbïNã©j÷>€W¶¡M!C2‹$J¦Pˆ$"%)Bd–™R†”±”)!’1%ÃŽL™2$[ÆÈp’2ÏSÒq�uﳟ½Ööxñœs>Ï}¬ï»ß‹ýê·÷g¯µ®ÿu™�ˆvYüŸ{î ãgð„¡<ñ5fðr¤R{ŸÝ”IÓçí0ÂGº^×_®v�e‡Ž"Ü@!m4žÿ¥oå¢rÊ‘NÞd žøÌ³biåD¸Óš�©ÜdÄM§ðä+³ì‰ÉWh .¦o%88Æ–QßO(N�«KÕ¼8ÅÐÿ„œ—æ?Å>ývyzì MuF@VÜueqZ0@o`ÅGIÌk &÷K+ýŸ—¬Ãr8ãfnsbæÞ„¨qjDÓ^î§ñq¨o{7ÐÁOæ±6Löè¢ÒW¥¯u´÷ôŽÁQ™R™:Èž×""ñá¾Ix34ƒ#ô¸j8ËE2Ó>p ^.6ÏC¼fÓK•­Û”‰é½±§®ô„£‚,Jd¹P³gŽ?+[cÞbmÔƒ‚¹´³´³ñ»Ô(„à«V»Mw›Nçç<Çà/HÙ2RNq œ+‡+Çd`FiF©§ð§]Ÿv¹Ä'ùÀ;E“ža'{¯'5rn³ÈƒÝ/øÖëTØUwä<\îèÙ×x–áÁ¿ãz F‹‘4Н´† ròÞ2ã™Hz¬´\ù)ƒÀ5 ;¼ðT9'b$ôTú�¤£;9 ]\º¸”ü zÚ�ÇMŽDƒCëØ¤<Öþ†‚ÄTº³ =‘NNæ{Â{ R§Ñ ë�¸‰së P$¿ÌY&FJ`Ö/öÞìéhâ”ö�üÝAŒ¢ë©[¼ít"¨Dz÷#³õy÷kåékãÙrGÝcÕ—à÷˜ªl¸Y³Y3ðz -Ø>/¾rŸ)�¬à;œñ¨ñ¨U:µ$µä¦‹à”»z©.ÄïTÍýìBUÍG—.$ÜÙ1ø^§ÒW;•N_‡…cj-À;¨$uƒ™s?‰e޳Ðê<íx`³)RÀxÃ,`ð¦êçà\†g¬éU@ m­K™óš�•˜•XŒAã…p:7’××½bÄPá£×Ö›ÁƒÿÏÓˆ.Ѧ÷Omš9XvfÀHŠ{Ûß9ó»žñ´ÑÁ$V•²«’KN°÷þéôf�JcÞÄ]ô¼ÛÆÐÓç3ªý2yµ‘ý5³oŸJŒ•âŽx²Ý0òµ< ''ø0¶}wpVíçºwYÖýçÑÁU“Ùß;ÝÖdüv"‘•ü¹t¾ŽXÑ©y“7ßíí7/RÕì7<­«bCm4ïo"º‘md ›±ûTyL˜æg/m1k™ÌÕb/ Ë•ýЦ¨Æ\ñ÷XÔÜðWYþ¬‡�l#ûOdÊ‚ÌvLï5·(ÝÖ.Yî³ç(biY�c!a`sRQá˜çéHs¡¡·ÞÈþÞ™¹;ÅŒ®ESVq~Xh»”I˜·"¿nÝé‘°#Ì9B‡cdgžñ‡íßÈ6²¿jvA^DÐâ’vp¸¸™ Ï´XÅÇ{ï¿G|÷/éqæï7.ãÏ=%\fB?¶‘mdÿ‰lÄ…ÇKA�µZ§|*3Mêkž2ÝÞ÷ÙCÙß'ã3Wq�{¡éˆÒê š²ô*¸þlWÅÿ-v+;ª˜Ô\·…£Yo½g»d›6}ïºç}B- ¯Žöõ Îߪ”ãnHCeý¤@ieÐÊ™nc[$sly·Ý�q õÁûgû‚˜†é<@ùeÕG„ªú«úI7£,•UãáßÛ±G÷x‚ Ó7!/Ó+4b³ì´’°’ˆ �d×Cú<e O)uq®9€ž]]ŽO7€Â²j`J¨vÞ(gÌ4–˜{ãùW9½ŸQó˜N�»¸Úœl®íG^tñ¶âma+*Ô/àŽ  íí¸Eú*²•‚„mP…{vãÙ mý0¹0¹&�Ðë¡×?íB¼ƒÒWc�õ1?Ú7^s>GÁu½NaV;å–&¹-/¬è·$�íÞÜ $ï+¥FÓÝ"oôVö HŸÆË¬!͇ËÀÁFÇŸx•5Ç9ˆQis›X9iNŠ>}~À/„žPê<Íj.¬0‘5ùÝÐá©.! 6øbð…Ó"„·"¦v ÚtÞ GGÐÍNöj»ó¡ »{ÙòQcénh×ô&b~ÐG/wøÊŽðH+ت| ))32ôÍ_[dn¾µ~µþi=·dI8#a#a–0–°½¯ö©�‰wH×BIlárEsEë³iÎÒœ½ÈÛQÕQʰ¥Þ©n.G›)Û‹Ûl´Ù#£×ëÔ«ÕNUQxl�ó?+�÷½%AWùf Iޤ߇Ó�‘¦(¥p—ËÓHdË©@¦m'p" Ž×ºø;1·ŽÓ œ“„>ßú|«¾c„ƒÐ¶)¼*œ3óæo�ÍŠä�oê~áv¦Éo’ßhµBД�I“hˆUÕ#†> Ñ ¸8ãGL|ôÜH·øéu¼�MR1âí±èÝÛïÚ² Wб*9áùYq•}mËŒviyÚyÚjgùiBmà˜Ú™Úee[žÍ÷–üQ”B*¶ü™ GÏEÏE{ª½´½ój%x%ØKïóºG�µš—êÓ™m¯®×©ÌÕN=Ò ’…;­Þ÷¯64R7i„­Ö$ ©qúýV Ëxt@â‡ç!¤®×WÝ€=óÊŽ@ì�¡`<“…/|ÄxÏ/ÜälÎì%¤í¨íøUûÜ !Y¼k¶85õ…¾@X¢ $Mª×ÓFrA��€ ŸB ò$æ!ì­Õ 8zäÀ5 °tïÉwb¬I€=† ž°@úw{‹¸,^"ææõRµKªñîAö‰2XÎùñìÁ^ñ³k{e™æCM�ÁJI±NHNHÕŠjZJt}9òém8y;œ�¼�<™Ly}y=•÷~îýò†ˆýj)1èÙVéLEF:�פ8u¬×©,pæñ×äSp”aÛ�ñ¢Î”(Ÿš SR°FJTh#>^mÜûƒÎ_©YôŸ#ÂFeÒ…Ë€�¸Îv¼ÉòƒIÄ\¹ÐíH˜“Û:Œ9Œ!»‰*$ô¹ooŽKjµàjYW™ß›Ô?1TbkkØC1d�Ô¦ØåAŒ9E¶ã$h´:€û2%1Ú;>f•¢vˆXaÒ5 ÓqCb¨÷�ÔIňM†±Sj‡O¼ÌGû ­­/,Ã&Â,ÂLfÃ' z8öíìÛ¥ç¤çª•E÷QAèª�øBÍÑp9L9Lµ¤Wý®ú…Yÿ"ùEÂk_i¤ñî7™NÔ±oÑÎÅÅØõÖDÂ稸Ul©>óNöf¨öœè´7#káX‰/e2d:ÜQ©e VO÷¿¯‰”\cM¤~$7Y•isQ=K×ÃýÈõºþzµëÌÉïþ€óÞâH‚7?~ìöl ·mÒÕšÒ]À¬YÂ-K5s¤”ön~ që'y Iïe6^ÕxÆbÜ÷¹¼ž·=$Ôt´éè'évBcKxâ18ÝŒ-Ô€leÄ4$›_¨ša—«ƒžƒÞæí�¸“ÿfô4ä ú ŽÕ$Pnh¾~pŠÞ2àWéó¶t7È^¹úНîó¸{%ŹÞyžm‘Ëš+°,�ìãþ>Çkc«¾w:¹>¹ÞN*Ùý„ Ü�É“llö²ÑÑ,FòL¤�™pVV�{¢öD=Ý+*!*14ºi ±¦¼û[ Å@²E‘¨÷¯gög×ëTöj§f™Íœáœ?ç_ÅËÝ=¡td¯j§÷Ò¬˜Âo 0ÓÃlOBw&RqŠÐa€îMÃ{àvîÒe¼C_ ˆ ¦¤U}ÓŠ Î?œŸi=pž�ÄQ<á%œp“Kßaí¢Í�Af¹á¯¦ †·Ûn·aµ Üý�9£Ï—!Fƒg…q ÃÚX€a®CL�8pfZnLÈÂk§õÍ$¬(œï˜íy-ÜS’+iN$T4?ý™±–Öæ4ÜÖ í„Žz”¼8pn…f…fgÉÎ’¨£rùîv�H3ª¸'UOª„¯w^ïLØòaîÃÜC̉jÄ<•ó�ƒEÍÆx ]Ò¯/¥Ó­×©œÕNm;«÷EÆ�'T™fðü1»;k,Ò7¦ �?òCÕ¾ ‹$FÛ :Qf<* ¯Éð»'1ÅœI¨Ò:îJJKJ[ÞÒˆ&r¯ê ζ}œS€zF¶ D43E—SJˆ åŠrµÆ@~ÊAœ öù@zßê)áðXÿüNMfŽ>b¶j*É Ë¼)�•O"9-ÄÐ)Æi},ddS¥Ø–â£úÍîÙ´ü¥·lkëŽ`«IÈNÈ^ˆ¿ï#grÎ䜿� ­)EŠÔØT ×`Ô`4æNBAB‘’lh`hQ~¼ Þ)»w­®4yÊ+R…¥ü–þÝëu*wµS£Âñïáâ²íÑx yÜ*?=dÝFl°~D¶D£µl0 H. F€¤#÷e@Uç)ÞáŠÄÈ|L(„±Ç, 5t6tR�R¿$¤®�7’�³õÎýq€�‚ô „¿ëÜ ‹Ö�ãLãL{Ü!¢�²tÜ*Ä’ƒ…‰8Æ|ÀPð¬Øb1ÜÀ;õ,É!ˆïû©JÕ.6ib(Ì¿·�ëE“˜ËŽX�?«™*»%\P·6Õ›þÆyy Ã�E’þpwúïôûû‡G“àF’Tk‘š‹®³À©Rÿ„êýÖûmÏÏ…o ߢfc\á� hôÛõŽÖöa]²¸Xj~}Ìz�Ê[픥7ÃE¸3­Ï•ñ˜<|¹êí3§ÇH´÷³,€`Ìd:cf©ÒŠ’êN€Çg©� ä¤Â‹r š"ÆÁ¢«XT¼@MhŽtŽ4Š£ê3¡P¼Nœ «-;Cš9O­âѦnN²H²Ht>þidt(ýdyöÓ¿®g`W€m¬@#ÿˆÈõ=™¹¶O³%�ËAÌ´ì@ã=…ç+32¾²èЬd>:ùGq|k[R²è£õ¢õbþ˜1À§P®Pnª<Š•øo-AÎ]GRxT g-m-­²Ãó…ç‹�\(rùÍ3ÿš§ªFC�Ú%wþ¹ÂºêÉaç¿KÖÖ[g ¿wø¿œ‹¼‘ýÿÏ|L¢æ\]Í_…NR¿O’דmÖVQ Tâž»w·Íg€¢ØfüÇß �l#ûoe™údV",>Aö~©#RT“T¤?í/)?ÉÔ:$‚™ivYó"ÃndÙ+»Çv)C¼Âê†wë°5c¬Èަpëù.ï1²–Ç7–jôïS6íïÞ¶‘mdÕìftrÇ>Í‹gè¬)¶>ÈíwÑ Jgcâ5¢(ðaMuxݬL÷!gqòk`Ë¿;{Éà×?Ø»ÓhªÞ¾àBÉ,CBˆ¤2‹Ð`Î�H$óEÉ|„"ÉT4�e ež;¦’cHÊ2ËÂízö:ÏùŸ½·Û›çŽž»ýy÷}ý]g­ß>¿}]B±½¤ÆÒ²íJÚ•Åá³QpônÿÔ7§ot-tÙÔFµÑl”·6Õ>þúnÜ„hÞ³š|¼�ŽeëCF¤8®Ü¶]ü§®N"ÒN®¨çÀåêG��8ò¢«?sH<Ñ0�Ì ªpÔÄ´“´“:úèÓ‰ ’oÇcná= ,ɦ„ÌE]ì)i7ë�]˜]pùi¼©=ßd i|û=¯ë2п8ÌðÍ RàÕ–øü˜mOEaÖ]chŠ5÷WÛ=JÇEÎ e ™Vš–»;œ¢ëX_7o[lmlíf·“/zeà8Ý8ÝÂsÂs6ÅßÊ–�Y!Y_>–G•I•d!î î�É’G–GV\ $ïTÙUçê~'eAÉ=‰udþÌu*­Sü'ŸuÀ¥½º¼� Fí\¦•aÀéNY% \AKE¿{ĉŸßl;Àpexq2¥Oy“ ʾë ¶¥>= Fÿ†±hÚhZž"f.bQ7 üeñâ I:Ï~Yȼ$ù·+9ñ‘!‘!õ�Ùˆ�Èè È�aë&¼°n``?ðao¢>Ã0€y"‚b !{Ú2c³åš�¤¡?ß4qP¯öðó¤Rì$¹‰Ë#]ßÌßý}RÖVêP~¸ðæðæ;*<ÞYizL@,#ù-5÷ÁÑÒÞ INN=ڵصX¯­º ïT61”ÆOrÉÙ?ÂÉãwTçF�*Xë”j½NܶMê¥çqg¤Eï½!±Aê¥\•†¸¢k“?!鈩—{gɼæ[t ¤gz¡É`áXs_Û;õúÔk ýzb i}|xjÛ²E€Ai™Vˆ…5ùt º]}JhJ(y8¤�òÇL É29ˆwExE<hBóŒxq#Ž…rE.Ï»äåC4ÛSé#]»ì(Åã ß *oñ0Ñ^ß‹² •‚’‚’>ÙÈ×Ó=p"gDÎØ.Ú.ŠÒ_ð^„˜�#q{¯ˆÂýHù‘"q¤׊[:Wv®ŒÎ˜ÒÞ©áØî:º &Óc‰·“dŠnԩµN1gŽÁ`²Sx\­qÓã­JnHu‹UåÀ£§%YC×Çß!YÇš°žÑƾ°ó¦®ÌŽAhX)­]êx“MÄ|0>˜½4íäļö _Â+ß!®œý£™¨H›¼ÊÀT—æ‘æ‘|Ârâ_ýñ;„§N�§³h-IŒOzÐ,f«4Wã�U ò=X‹ísgÑ,Wk`]#Oð°ÿþü. Wyh�W+ü–ûúÚ£¨uuo¹®ë…  §ÆPcnï-². †”Ì -ßaýNÜi2°³³{×]Ù]Ù¦ó“¾SpbÄ'[8ÞÓœ"àfhcš1×F;ð³^;>óaï-; 3‹]º¢öP h˜<Ýié೿…„ÅüßïXg§@BðµùC)×iö“» ÿnxnvÑZ×C+Ãñ‡•>&à�½6ýh{ÎQ R„„îp“»®º_ïpÒŸ®Ú  "‡aHM·þM Gõ%ÍLxèÿ<û~”ì"ÆÀËÀk*ÌHMLb;�æ¼ì­:€¯_Ï „.õ+u‰¥~°Ü]¹»í¦I ¤x[!-„&yÆïí ðô 0çŒDcs0QxT©–ÿÖ½p}�Æ¿nâЗ⚞øÆyÃpƒl~Žîlë J𗘙¡»3Z`ÁGµ¦¶¥¶e¡çÚ/ÉBˆÜ5$‰}z¦p�"�"µñ6ñ6™f¤f¤—hEÿ«4?‘½:×Ö~\p§p—Õû�:U¼Ö) �½‡áz=vdD§( sH¨`D±H¿$ü*“-Óc�H—¤ƒõ€#»µòî°9‚ŒÆÅ4vÞïwòöúÄ´ µ cˆýóÄM#¼)yšŸÀo«Üˆ£äÖÂg£_TÓTÓ"Œ!{~@Š"ï­BüIc�ð�åh gÿY4¥À÷¨æO$Y�½·0&…ú/¹Ð ìöÚoã«4Ô+ÏQ_Öz,sèupûêúNu+ñ…ð…ì^© €··ðZS幬´¿ Òõi›�œe—eWíÅQŽQŽ; B!Ì�ªÝðNnæÜT¯•XiŽ]”l˜IÚ¨S%k�²qÖÜ÷9ï†ÁðÓ9VŒõÓ—WŠ‘þÜ¡6|{ãjJÃcqHoi¶zG±�€Ò÷m<÷IDÑô|H:ƒ¬�sAR.ž¦›( sª¸ò„D<_ˆ­Îì•ß+¿i H Dgç-^»ÖACÁŸ7lRhøÞÞ7ÊÉO­Ûd¿É~_óYbõf ¬x´7Ì7%�V²ß#­ªÎ~bùIJ[ÒháÎLj�ôŠGiãiF#ù@Ó¨«!š!}(Êý ©g¶åÝ’S�ƈ3«r:oŸp�%y©|,%ùý©äIø¹Qÿ¤_tPâKì—Ø&s·reA8sNsNî\îÜЮCµyu�’(¤Û$®Â 8"jàÑäÑtÔ!"!"AŸæ5⾤Ù˜äEã'a´_qvWÞبSek�òÔßq®È¾ˆ—àFÚXS”R}Ò‰£(”¥¸Ž½PÊF¢+á³ö‘8¼X å4‰ôDs¢ˆÉ˜KŸ²'&°ö ™ûH‹Ñ"�/Ä£èì™rBél!ƒ²Æå‘Oõ‚èuéu�±9H{]@1DúÁït<Ÿ4@ý# lò �íW€MÕ¡•l"¼{þõ½’+îh6¾¸øªgHc„²ôì¯n7¬ò•ú9×| ìÐu¥ëJ"Ï>ry—ÂIqJqfˆdˆ�+þÔ÷€lŠdš"¶×7Ð7@7z0ç`Ž—œŽ¤Ždò5öÿ�h¡Né%È¥I‰;©$Œ;º�©Do´SŸS‡áîÒ/%S¥»hÈì?îì�Õ�ú7û¿Ïž]¬}ûfˆÂFOT+‡gï*Á”Ëïo)ÿÐrÌ9¦qì‰XctŒ!ûŠ…ãßì¿/rôr1"KðS=VÞoÊ]ú颼FÛ±v0ÒÇùx¨læ–;2~ÕUÝ¢³¿ÙZV—ø5ÈËòcW»oêN¦Ïa\Ó˜´HV¶c/LËD=kó:¯Þi#"ö7ûÿ�ÅK/9¾îLŒjÄjŸÐ�gïžÝf¤%<)u2ìlKúɥ̥`uÓt—¿Ù_æSE2gzÔiZù‘s¥~^ߊuJ›žruú€Ê™ûþ2ê Óªô¢L"Ù³¿ÙZ&Âè˜4"ÕV6~(!>û½€°@¿µiˆª�§ièûf%÷¿õb“Ÿ¹-„Ïú…*m£Uâš>ö>µXšÙðÛãòµYÿƬØm¸ º/#" $×¼Úä‹��>]pbK�¥H�O�`§6wör�nÛé½€·yÏþr®w®¯Ï(]{Êlá�:Ç—ä!o9Ç÷í}Q|ßF�ªw#œ†ë®«B,Ÿ%›ôµyWë"¦äœàèuL˜{âš)’-™_6À¯=Lx†L!P]ôåDÃu|Ĉk6¨#¦‡ÓÃåÐ;>#v\�àQ ^ÈåQÀ—ŸÊòÔŠ´+þ£ŧ®O] …†ˆý�<È&ìEj¼#€��µ]<MËC ºÏç3¹0|ttó‚>õÐ¥šk‹›Å¤œ1a$Bï5>­o‰‘rޜɜÉ-¡Q[h®^¹^™Ä”Ä4k ƒÆD‚eAr^Í g-n-njsÕäªI¥Ré‡ÒÕ½©ðNIþ¸Pa@=”ßV”¨Zw9>y£NU®uJVb6ÎÛús4��d¹Ï]ïfÜw$þ· €·v×…[ .®HKÞ‘—€JÓ–^à‰£üG‚�ŽÂÐ(ê��ŽÊ ™KjOj?UܤIÌì �¥.ž ¶3x5Œÿ,¨€é§Óý–©@iViÖ6ˆb&¤b&}7¤ï‰Ý^¼Tc`Ž(¾4ðMÿ ÀE.öƒ|ıò°â±R–/hÈu–òò_6qßœã‘j¸õòò¸è÷²ëÓ�Úã{sææÌÅ4×1ŸpþjþjQQüý÷ØX‹ ^HI¯U™àhêhê$EÀ+Ëq6  Gª�9x§œ´_|Is±)£³Åk¼|n£NU­uªò4í\bÆóC±w3ã2Vµr—‘¼Ì½;÷éŠfçM§'‘Š9f=€4ݬÀˆ<¦œ@’Æ,�ðêµÀbزŠXXIX {]Š=1%j‚Ø<¯œ3³@Hä¡Hœ›æL¾Ñƒ žž…k· v‡ {íN,C\̲Lð~š[m'4Ìá€lò:üµ[9–³Y'¡)7à}åY'<ùàÔ7ãš�lícب÷¿è×—�Iš[å[å;vm Tù\Ý|Ý<#cc²~¹�ƒ´G.÷R÷¥nØyN'N'ÕR¿Í~›=…íÏÃwd®ÓmÒIr_qRÊwd˜4ßhG~ß1¹b�ýÍ÷7I;5GÝo™È/Î{þ‘Š 4 “œb´Ê”³ÚôïwdÄÖÙ‘ÑÉê ›—¡ˆV󔜱ÄmÔõ÷k]¿½U¢îIÞa{‚ìBZ¿©V˺ϑªÜ¬­K RX¾‹H}r½÷€D ƒb V^\”@(:%�¤¶‚;à*a¦Kì]Í»Ñî‚Äš* Þðà9Ó–Z·ºkì ²=e§Õ…ïîÞ-l5©L„hœûš ‘3"MÁsM|g�¨•Z+4T§¿e…(oȾ*öi’ëfJhjW3�®º¦7ùÑq¨=ºÁœž*� ·´>ûOš†¥J/v¿‰Þ —£œ£ÜÝÍcPŠ£,‚$Ú"ÉËÕRÀe‹e‹)Vi²h²àÙ2Ù2ñF_Üï”�Û©#â#’f¿yÊR>-éÞ¨SصNeëœö„‹Î¤ ppÚÁÑR=ë«ã†´¹�Ö ðw¶ÔaÌ*A²«v·Þêu°l[æ& žù©…¢ ¹ÖDp¨†S!Q!É­tá"ÆrŽ`ö ÞÑþ\@$%— r�^rå̼õ��‹�‹Ä2IJòG¢¿2ÉÛIƒ×qÀFÆ÷ΠÙû 8VÀÒÊèq$ëúþ¹r;-šå6‰kÞ1~'÷äž Ëë«Â‘ó6ëMß^Ÿ¾ÝfÁjÆjƯ¬ÌÌŠp+á+áJöJö¯0Q]\�‚ ¤Î¡�”ܬÿ¼’(öLa“‘©8£¨‰íG†q-Ú7·>% *çÄâMR†Ù2­T¹TYñ DL‚hî‚,±µ ¢ùfw¶z|è�eU–½}H\T€=�Ù9Y|FDHòÅÛFF\%èP‡ÆXJˆƒ¥<ü·çšVÓ”û ÷Á­Ê×òapûSk�8ÔÔ‚0ôfkKE>:ˆ»Õ43Bàb`g3rùX€,Ó†£ý¤µžðª{M#><:¾þ5¥tUåûHË(ûäÄ©§›m¯9Ù%Ö“Ó“3úØ[‹¥÷pà5¨=‚=‚–Tç´õÎChip™å�ÃYZXZ<ñõGú#�mZ�Z�Þp ›¢û×s7šoØgÑy™œO=úÂ=�9Y`§32ð{2ïŽ ÉÆŸkb2·2Wx)~Ûîn»Ûÿ…í^tõbÿ—ÃÏË8’{Ÿ$p¨ Ö&2;½-[-?ß¡q@1V EUñ^Öîö÷Úš½Ù%h‹ö\'±6SÖˆ¨Ìì`¬�oô©ª'2³·š~é¿!!âöûûîöŸÙ†;'øú’Û… d÷˜f‹¶e&�ºOÜó0àJ¢ç7)¢:P§c\ñ…jqwÛݶÛ$.Ì46#>+pšMl$Ÿ3}5‚Œ)ÍŠ¸öDãÈÇÛT«ëÅÔœj,#�9»Û¿·å™=f¶¬ xö¸âD±wΩ|„ÜGø}FÙ^éŒ5^âÚrV:6‚ŸïW¿uŸÑÀÙ_ç4i‹!õ´â¾D¡O[.®0‡N€´©0ßÌÙ8Wâm ¸I»@0ù]Å ¼Wú{WEàþnvlÞ¤Þ¤Õ§y °éQ`dŽ£é2”�õR�Ëö1Zuú‹ƒ ƒ “¿!NSá÷©d�ÇÍZ¬hÇmóT eµw>à§¥TU½¾ŠA-êq˜�¸‹�D4Aî«Ù>žvº?•IÒ&óÒsSe¼˜¶·¸íI!E!å!ÃjLW 'i#i;;›a«Ón<Y×ÃÕ#ê—*ž*îpÑÞÇÞçË=Ô2j¹ô8¯&¼©=f£®—ì/ø#ã‡ëK{Émÿ�ÝTÃVSÌ,( ¸÷ü…oX•ÉÜó�ÿqÏåë=ä¶”­ûZÃ@¤®,Rñj@0CþP be€ÑïÇûë™K:@¶aÔolW(®PXð"ßa›û€Ñs -²VŒ¨i=é  ¶1)Èü™ZèYèÉy2ÿBx¶úä£ýè4Z5�Ë<¬61Äçs5�`Ë!ì•!soÝ4càÁg2ÌHrXÉ]}NòN‚EQ$­Å„œ:p{élH¡#BGžÝé»Áæ~>üü9–s,—òÆã5 •Ó¸2ËH4àj6k6º!}‘¾RµÄŽÄŽó1ã ð¦x*_Pþ’|êâhpÅOÀzôåNM}ÜjÊeß \ö‘茸s<ãAZçìSq•§Uä=mJŠziý]¸<úžÿózô®m é~Ê„‘sÝ‹yWà¿›¶éiƒ'N<Ø"¥0RÆÑrÊ¡€D—뛲ÌüS‰íQQD�^=ˆïEšAÈ•ºXn4Ù5@î,à>¶÷=>‰VnXC¦xå;š„ÎâkA“Äós]ž@Vó!¼Í™�kÙלtúíÙŽ®?é" vj½y«õ2ª 8ÚiQ —O\î5Ú‚>&�¸†û*ë�ÒÞ÷Eá2÷!&æ5¬Y�ÉÞ[Ì·‰ÏâãÄ·Rœà�–ÅÖ±Ù±yHT© ÛÕnŒŽ4Z%à81Ÿ$óôûã„!o²K’K’…ù!]$ágR„þÆáhiLíA€‚öQ>’ €?Ý'�›Ï!ûˆƒË/ZPøâ£pwICâK·ûÛå–ßá°Å˜ùòÛ3úvvFßWß—EótvÊ ii‘ã>Ç}DWͲ3!‘÷q}¥+‡³Œ¶Œn\«p¨pðB^,¾X\�$ëƒ7åÒÓÛtzJ„p´äÑt}шôNMµl5,4#7/üF㮩&ë,ÑZŸÇ\7‡4ïJ^, â른âƒùã€O÷)Wª…õsSUçkðùÐ*9d5#Z°�áz•'ì°qvaØŸBûpÇÌXÚï1ð`Tbäõ Ê§Êo�„,gBJ¨ˆH /5gEÐ^‰$†€Dߥ›ø¨óôµüY!R®âfúo"ð9Ó'§ã}:«é>mÎmÅ­ic ýÔ-áÛ3KÖBÜ@Üxd2ð�GEÕkÔkTR“ê’ ÉTÅ•qq5N�V�vNpªtªt=#/=/]ü0¥ NSˆšSžZš°qhúD[¨WïÔTëVS£$¢jpÏ3>¬­‹ËŽ÷ä[`ÞHdÂémE®1ÇÀô³P@öPcc/C�">î9&@m·  ¶–Õ–Õrж+Ø\ˆ1j�Е®Åü�t!NGQüe“�:W‰¯k6@8 ôì/}!¶K*zh_¬=`qº:¢t 0×¾¥i‚JÝO¼ÙðïǤÎókØXğدҲhíòcCÄöÚöÈ…î•Ó¨Ò¨ª6øG�–Â5&5&­»®»ž¼Ó-8@9æƒëí£›9pÓ¼Ó¼æ·" # Ͻff&ÿ oêg‹z˜J÷™•úfN«?™�šjÛjêí7æëpÖ¡’?0®S}Z#ï_L·SÀeCéS„œ*~òuô®[ꯈ€6«+ÜÁ‘üT ¤Ô™¿ðùòÂk0>ÕŸŒ-ú^ô½ë\ÒØ¾Qb ìÑiošáŒf+”ŽŸžp‚ÂQñriþqwR,:ÙŒ•°üø¾%•ãsM8ÑËGÖZ 2%å­G¸ã£¥6².ùª�ß:¼A3JnåF uM‰éö"�¶ó†ü>”Þ7‘4‘ôªöUí4ç!ĺÄ3’Q{î’á%CDkMDMÄ8‡~ƒ~ƒGª*#º)gê=gî»}3’h‘¿ `>.xÅa§ßçáŸóÆŒÔ=òôÆ ª(¸5#Ý«=JÏìnÿ™m$&Œf¨�=Tô¸ÙäaÖ¡Ç—ë�’šNk êP¨ïñÕuˆ1}dš( =·»ýwo×ßT½cw.é~æì;¤rcQŒ©öz—²‡ÀuÒ;(™¼”`Ûç ín”¥Ù»Ûßkëï$0Õ°êÊ@¬mä-²²d’úüYv´bÃçdq“c4MÙé—‚¯w·¿×&ø$ž�”°ôê25÷Í>^1çi#©vÝ“ïÏÚ�tÝ�u^ ÍžÝÝþ{¶•Bdìli¶nШæ%;�€’³ò¨ËE�§„-ø—ãÅ÷Sõsu´‡õ òínÿÿ6;!”‰5‹JFð&͈ú9m†CU¶ÑS´ØŒ(|ï“§8¡«2ž}kwÛÝþ77/QêÛ¯dŸwæ¶9äû:Ó6¿�1ûMîõ5í‡üͦ—ÞÁ‘mv·os ë=(l�j\á?�Mÿîg¬Jº/Î÷ƒc‡††Zµ‰+Éh�¸^ÚñûÁO¤̇cà“z»04Þ‡LÊ]A†hµãJóÚø-Oí½öñ=.þΖ&€òÕ=`•i´ ƒzMºŸÐaÝ5 ³»<[×z×:¹›¶bkŒ&´á½æœw‡ëD/P/Ç4'êZà‹ÀÝW Ôj�Ï�§.@&f~-¢5´„þ'wñ)¨>�ð”Ì@PÌoª^ó' àC"|œsá� $Ïòª1q Qƒõ׊ííI¶_ò[òK²9t!ïÜ Ä Ä†Ø†XZ�ÀápBˆ2®ü¥0;¸…ʅʦõܑܑè?øø*ߨ‘Ûrt 9VUuÛ�“ØD=1’IÑòz ÏÍÆÍ!ys“<ö®ç=xrxrÆÞBÚ‘íϪ�ýÔ]³hzû�ù>@«ëC,>´@8íÉI HóDŽŸÿw|6ÃþÔ䲓 Xªï.üUÔmnï¶ïÀö> Ñ{. - %×ýƒ½ûަúÿãn˼ٻа•HêëkfgD ‘¤²"+»�=C—ì]+‰B’‰²3Bø–™U™ùõþ}Î=÷{?÷:þûþÆqÿ=ÿsÎóœ{�ûz½_ÞäŒÄp{©öR³³_L|Ý’ cÂUå' WdZdjÝÝù¦¨¯¨ï¡x§nr¾·bM¿^hº”Û0±j±S§ºwêœt©6\Üýó%¾æÒ‘Z‡nÎÆå}Ϩ�Õ4m2�ìÆÕ¢Äá’¦ „¯Úa°NGâ£/6p¸™‚M^T^Ô/ñ¶w=DhfRàîQƤøìé0È×�µ®k‘Ý|ö|öïƒ ÷^A&,Ã_B˜lUxÐö/ÄÀ%Ú0^|’Ú€ã{"jÙoB©«­ß䊖ãóŠÅÆÅª>ýB£÷�$…@¡S’^1Å)ð?óo¨ÅÞ¸´¨µ¨©Q'K>ʇë×ÿ®N«N+¾£k 6""ŒkKx¿8œÛ·7œëÞw½ïZÅÌëÏë7P©EÂ;µ)Øe¼´2j0e“À©:¿ã»7=¿;•Ð50wÌ&k Cm1Á“Q‘J},—E³ú0ÐÚyŽPS÷V®Xq7GÀãĪÐHi&�qžÒ#ŸA1‘* M9 S‡¬û#4ú5¶7w1ž9¡ñ~ûûj¨)36�¤Œ/™ÖPÓPóð�PŠ@P‡ÜG!^1­oÑÂ)�Å@ntvŸWùá«´†*&Há-í΃~#øˆœ*)Û`kŸLô”‘þÈVhØ{°rQðÔö ÔóÌ šLd àZrZr¢Ã¢ÃʺkËâ 䱸f«2ƒá££–_;696l(%(%d’4À;7[sB®fh$½#ñÛeÂßmèýÝ©!Ö^p…ü‘œ7èOé6Ѷ’ኡ«äNð¤Þº%Š‹ŽîÁ2@° ¸wvqbxœð£Àç¯..à,WÜ^lYõTë¨k¹ÐS¡‰&=Æï�f PÇÌÅÈÊc(ÃÌ,¼ÙÛÛOWDqßȵ̤0óÐõ¿íd×øpÁ„.¦CÁøŽŽÄæR¢¿Í@ÃÌ@ƒf Ä¶™�ú–®ô@°¨6Èáç¾Ëee?Ôvêz¸ƒ&ÏK§¤¿êŽaëñG¶�w€À!R\r‚��ê±âކfu\ï¥2À Õ ±y£üb1ŸÉ_³Ö€ê黄ØiidÈ>7a›MÄø�&ÈŸÍ P•�ÒC®z«|é£HÝ<Õªßè-¤�bÞlßùÓËb ­M0<;•,ñå‚«ŒêµÓ!2ô²�kR}ßñé¸!°ÌY¼7Oü©j£YÞ•ãsLÓymÏÁOÈcLwL·Am½Cþ)Ü ÷ · âß‹ž‹|† yÒ/îeûËv{òG!�B¢Û÷µïKïê„wŠ€«”’y(Çw¸�¾êšý4ËN�úø»S UWá~…3|ÄxAž_™7ßgK“ˆëR#mðÚSeuQJã#.-å~à…âÞzàšE®4ùéÂÛøxIf•nÖØž»=w³ZÒ Ã6Ñ�‘á„¶Òzø+PD\œ1¤ 8l@Ì¢jìoì_Ë Ir…ì-ä$‡([¡xÀt}Ò ›­•­U›ã6«G+VhzâL熆ôbˆo~I£´Ò˜t�t�«"¦ Y>ƒ¾Ã5~ϹíI6ÀXØ\¸U…�3€ú¢N_žY³Ë‹‹´¯ÁGô•¤%Å÷&WŠ�àK1âYDL}ÍÛ«´}»5L2LBÜÂpo. $ Ä;Ã;c…ÑýÊÝ0j—5Õ%8cEcE‚ æÌ?:2UªUªù ïî‡w ¹²ðÕ>¢…ÐÆb‘VÿpçN�øÝ©#Ù,Mp4Bvf“kñìñîçpUg ®=$±�^ y[¸,j´ݧݞ—Ñ †DƒÜQ|Œ|9ú�œ.ÁlŽ5Ž5UÏá—xy1RÛÐÄÂ{D=Õ·ñZCŽ()á®�®’‹[H1O5$%Cg-78¼ ØKètãs�Ð|?œJÉ·3l;Wîo„OD"?©:YDOý™0u!§ÒÁ1„ûörnŸº®�Ô@¶·špQoÁ•.ÿìúÜõ¹¯öýC¬ K\7¹Ï†«ã¯ãïé22Ï¿}ïö½’ Ô ºSQìP§äLFt. r¶,n4$ËKo{W=ÿž÷ß´û¿˜Ý¯5·zò ë�VsÁëëûõ"5/ï{›XqŽ˜‘&ÿŽiRå�DîRw•ÃnöŸË*¬îظåOxjzÁAÔɬ±\h»°‡¾Ê—‘‚×ÚrÞ3+:Tl7ûg2m†ï·TöÄ -j1ªoñHØ·åE$¼¯s;­’_Ç©ªœˆ|á@2ôí«ön¶›ý'³Ÿ7o(°5Ƽ5«_j3S³…x`t¶7Ù÷áÝîÄ/>žo[ëg" º­iw³ÿŸL×+¿!Á;q ‘�~L˜/ˆ«2)áÕÉòËQ«_‹VilRÿ<»t5ñkën¶›ýSÙ ä!ÿ“”™6ÂáÈìfç€Õ%G÷}KI³M¯ú/5fU!°)›*›ÊJfiakìà E30˜P’ý{- ë\~Q „uKKçƒ �ýÍ�ÍOh¦R@�`/O€�¸ð%oì:úÑ¥ ‘ûüÓåÊ�øÜ:ä…4Ì@]²šó.ò=Ð!Ç AƵ=_‹#Oèèd F¿M2ÂU6T6Ø Ú ¢²Vœ�ŒC^ðáŠ*œ³…+N-NmWõññEY¢,ßøR_„wjv«ýîÜy¦ÐéÈo¬ýÚ¹&;uêÓïN]zkøΛԠƒq±™”qâ™{5®ÚÊ^À·Y\ )µ †«ppV8²"óo³ým#Ьáãøx¯,$¾n§Ë±=¦}L;kÕ%�-«£å='w›Ðp Šü™Ÿðåê1×/®_ ‰ þ*�'už…Äo„þD£ýWé˶yøv¼¶ºkl�Ì¡W3ú§Yð‘RY�&²¿JB-n¬m†éH7à0;·½ú3åN…N…AtÜïB'àøRùR= < Æx¾¿�ƒh8ãâ¾&¢÷aðàHó—ê/ÕZž­ž­ÆI�Ïà�rêLêN{v½›ÐŠ®¬üSçN�þÝ©p95‡µFZdà¦Ñsb”Î ®â'“Q6×hŽø1!\,y}�Ï¡d߀ÜþK<:Atø¨äOUQ±ªØl›m›ë/f²`sz‹á|Í‚ÿJ)`êugr Ø‹×ÙlnA¡�Ðã€#…Ô ¡Çc©§�˜£iÏ”@2’ߟ^[`fºÌTTR”bxÓ¥ÖÍŸ8š�ƒŠŠvá9íã¥îçh]ŽsilïrZäg¦n¦n§9É6ÃpͽͽYY„Üñˆ”IÈÏ4\]ªÈà�vH;vf‚‚Ž‹}¼ûxå9޼ÄÙaê¤�аC-ø0¯{O} Üñ½ù‘ß�м('/è4†AÒüLë‘Ê‚”®ÕR;  ‰E-ºl.—ÒC¹u@/gý@cþ÷Ï�^Å>|‚TÄ�˜9}lÖÖó§Ç÷`[ÞÄÀ¬­ÔI Ö ×Ú!È5çÚ5c"øü­1ˆU„ $Û2µÇþ!š�"ö*†îdÁUW¥‚7 9Æ�8”ÝE*ðùz�2Ù�ƒÆ¶e6Þ©;zfßÜÔ§Ñö¾‰ö„ü:ñë„p¢y@®0Ü(Ý(]”s”3s@x¡=3ä¶!®_óÑú»ëÇßmî�«´ú5�Fè¾™¬ay}yZp#6ñµNßð\ä­Êg€“Ëá_¿žàÇ �žuøä”>c†è¹È±±+³+û$1zc3lňkBÓÌÏÎ’¤~‡yd½¹?88€~tŸÆr®#† rø'Ù+41`Ÿ<àGÁUˆON:ÀC7«‘, Q:û­»c�ù>yÓ�3´e¿Ó{Ò$äØŸ2/¸½÷>Ïo™x˜xXë.Q¯Âѩҩ^z~é¹ÞmKŸ`HL%.6õÍ:¸=ä{ȩ֬PG00ËتÀ;å2O^r�BU|d‘%p!Ôk§N}þÝ)Çñpe8²¾SYïí¤"yœ¸Ä'q×6�Jÿ”¶;ƒÊ9�+1ê t[þx<0WïÇ0‰¸H�Ïk…¬fà%Ã;il3Ì3Ì<zG±qÇb�]G#•«\|{žhArå™…6‚²ä ä \›!è5†ƒ¼Ðm{1‹.hºí€™!`rüÛ¿Ø»óhªÞàD)*2Õ1‘™”é‹rÇ�y(ó”H3ä�Ì™B” ÉLeHߤd–’BÆ¢BæÛ³ö÷ÜsÏ>ǵîúÝ¡»–óúïýßYë½ö^ûÙŸý<ÄìiÞö<ýÕa(�ö¥ÛyG‰˜{[0^ª•±Éš¢ºÔ»¯Ó`÷ä'&6Æ]r–s–S/é Óv8Q[Q[D4"zÆ@þ¡ü4äÕ!«4øîoÁ‡Ùá)¿0¿0cWVש!õ5äΚQ ô¹…°Âf�úÝ©ããL�pKÆbqr hÛB\Y9ȱg$) I» õòØ®‚óbz@¿ì_hœGmEcÄôź�L™Œwñ‘2‘2ÙÚâÛ7€£Žu€a 8R½-€¨ HÅå×ǹN/œŽ¾ ©‡,XŠƒôQûWb=&�Ö[&ĘÔÔ’s•è£vaûYOY bÒM²Ó Ù›5uÅÔò˜Äd¹Ñê8±o쮲Ø]//Iî®ísìpvÞvÞÅÈbä˯·ÓfChò ¡tÈán(ÝPZüF’E’E%,,ý¥ñ)¼SÒn»\vWpäû4¬ïä(ˆÚ¬SÃà¼$SÜ~ƒ…œã*cÂYÌŠ£„—’]�ÞÃWï7ªʨ“²QTä€sQ®Ú ÷µÐ”‘äÐD8FãÛÝ·»¯c]—ßÄN¨ Ö›æ a€q‡ì"qÃu]>gîøÈ«‘WÇ÷CM Â,u!Ÿ=´Õ°dÌ ðâCT1+¹À¹d.KÓˆ¨’lL(û‡pb¬_^’/“yS¥3úA«ôºÞÛDÔ€Òkë�eß«Yÿ²Þ�Æ "R N6O6O¥B¥ñƳUê!UM¨¬—[î÷í.ð[¥X‰X ;ƒc¦cfE—¼SWó×G��{RUäÊÒtsí¥6ëÔÈïNÙwö:Á‰ßY‘4Ó—ëG6uú2Ò�¦ Ætx4ïŠ!dp. ö[Î ôOÝp¤üü‰yø¼ù%@+/P„O¯]¯Ý�GÏßðN¢ VkNe°âw€Rl%*¦þÉmtÓèfV#ä'$¦ß8"�XD�5,0ÚŸŸÔã› ÔKi\P�äF¶äÛðÈݶpų¶v¡måÈ4{òD|lRgc©2{šašáδcÂØàSS´Œ´ŒÐ«ªKN�bRB�¶… p½ë½ëg®é_Óÿ; 8 áwµÛ)¾öÜeCÖ³¯7ö 6•:R/7Ýì{ø³ÃÿÕ¾Ff,ê ;– Ý…w2m[›ïxÁ ]øãóã¦.Jk”`¦bÅ(õT¦–öV¶•ý«I°ãS‰¡½‡"·K\�j÷ÑugÈG7è#ý=ê¢4"˜Ë¯ß ›ìˆÞʶ²ÿ­Ì•M…,æ:¥ñ'VŽõ~¥o#“LcÌwGï¥4¹LF=K7•äÍÏÒ§Õ¶•ýYÙô¾HîÕQ5F¾Y¡‡÷t+"4}VÉ¢Ü ˜GÉ÷mÿA­Lìåv×ÌÖ­ìÏÊÎñ'/ë„(zö/²ÜJÜ;[;±äžHã׿­\<–0ó¾_TaG·:7f+ÛÊþÕ¬gÎÊU�ÑCïØÍ%¯«r·Ž šËiù¶#È.˜g9…ÓeujÕ’f¢¶²­ìOËVèkŠŽPÖSi|¨ ÙÛÊÈqŒö�fr�>}€d^çŒ`´èó³#²Ü{þ¤Œeâ¼®wÁÂù Þg_šÍŒÁžn²y«l•–~‹Çåƒ8NøJFl¶ö2ºƒ„D(¡ÒNOo ƒ#9Æ–˜€Œ›9/K(¸Æ†h²Ë'—jÔFˆCúÑw@eGv.дËà>N€—úibÔLZ'�¹P#|½ïzßÕtÅ'"†ß‹¥h:„ä2ô!ñÁ‰1–5º_¨¨–¯B:é š,_!:Ž´±^H�’Â}/‰AÚ“ˆrMQH0æàîô‚E[bè.[+¥NJº« «…ýxKIöQ"Ñ,¹±¹ŒÙáÙñÙqÄ“ÆÌñpÒ?¤DZDZxvþ`þ‹¸s–P‡ôœßœß\o+{+{æG::�5kx§þ’(ȇ¦^@´�ÕôáÓÞ¬S_~w*õ°X\¾æ2Ž®aš×üÌ\*f¡ô¦Öa€:0^ý˜˜¦(!D•Ïy .LO¨�¨SÀIòÑž æ¾w°9ðÉ}Ò ÙÙDÈçÄ øfÚppcåÝ 2“%I ]�†]En¤>yø$‚¹ A},Ã@Þ‹$r`êNÊ·Îgb:xEö=öû@ŠôFoœxï¾�”½¢Ã•¬†*Á¬Ro5¿³Îï{ö%¿ØXôÎqçP�P�þJjw¯b8&>&¾äóÉço+ˆI}p�Ì Q &BéÌ~6ü\1¯2¯ªyìÃJ°÷¤sÏ•« lâ™78Ñ/|õ7ëÔØïN)jø÷KølŽß“z’Šs~2þM„(®Ýô4Ÿ…™=”OÉQ“ ÷�4) p¦¤™öÃ:™KˆÞîTÀ7²0²Ð5ÕèŠïi$Nk.Ööç”`Ðô âûJóF]•Ž.™.¹gÂ' ɉÿáq^šÆb<<�éø9ebÞÞâ³Ç[ãŠ!Ñѵe‘í�ĤJ‹°M+1çÚÆ‰+ z~áÞ]iï‹áߘ�^kûEê‹Ôaµªá¹bp÷)î£(D›ºž8JòY�ê4Ù ¸,Æ,Æ5Ãõ¸õ¸Þ‹õ9õ9Qh9x§ø¢$LJZ+,<­r§í¬oÖ©ñß�òåKR‚»RŠãåÐW;bÂû°Ši†¡0àøíã$מ EX70"Õ$ ÀnpF7–ïa~b­ªºÚWRcø É Éåù;µðM–àd$aÑèä|$‚ùc Þ9jnÆ<–ˆnD÷¸ Ž3íGƒHñ±!A9BF߇dWñòçwܧ¦ •Ù?Üž­ósÖ?q¼Õ­×‰IÚ§P ”�{Œ¯N¹NY͉w¾Fœo¬XcI².€R·ê?¿iÊýír‘U`Žsj¢å9ÊÎ1)|Á‡ÕÇ�©tO?7#î0Ó…xŽ{Cò[>Ó’Cƒ.=Ùhr³Ê'麛Ydѧbµ$Ö�µŸ;¬Ú¯Ú¯IëÙ¥g{Óö&M)M©Á�ïŽ R2*BIRůᇇøÎŽyŒy¼¸eŸjŸšuIÉÞ©4KÓhËÛ‰‹Á’²ž~éŽ)›uê+Øcœ[Ì.êÄ ç¸vJç)Š{”1¡éÒ¡5àµùÌè@IÇABô4¤œ€/¿+-àɦèŒî1YîkÉÀQ†;ŽøäSäSèªcãñ‰•á”»a;Ú^• º Áj9G�éi.¯]^`†ô‚PÎÙUC¤"Û/a}.ôhź“ÄîÆì½„t ¤<’rÙ¯(cèB†>…Zòÿ;“ë:IçeÞH� [‡�­Œ¢×³Ö³ü¿Øº^€›�ÍEæ";&”›t!½T„â3á†m‡muûÈÚÈÚßß³½g‹Fu„wŠ])CS£b–ánÖ> Ī›øf�šüÝ©æ ¸R~�ã8š¹WÝYÝ9ê!óx§îi®! Øf½ {DƳ¸ w³NMýÙt\¢Œ@ŽêiÕùÚ¦<;ÓBJ רŽ·òT]QÑ„DOöK?ûÔ�ŠÀeOœ¿3Õˆ±/:¼)DÕàóL÷Lw³ž�‡y„㯅U!ôí Àç‘å1xMÇVxA³Z³úôuÈÈ(¤�w’Ò2Ý#„å ù Þœ}BÌ«;—wKÚ‹nˆÛüéäg2]¿ˆÑXSqI²ù–�lrh ?|öZo�LåÆJ½cN%œêF]F~DÁU£«Ñ—N^:9^Ô\5Ó A õi„³y`óàûŒËU—«Þ$Á%Á%j/Sà�jLÖIZ8iëÂEÅ"â\}|³NMÿî”ùÑ’1¸G|šj8ŽË§t/D~4Œ¨&t½Bô 0çS„ür¤’ŸPPWw Ø�Ü8ôWÕâÜu~ó71»â«V�ÞQ‘gø*ø+øΰzãûÄ�CóVf‡ðä[¾/¤E8�“²>)‰K•KUó;Ä(²ÐÎ yÀ¯s‹ch¥4ŸJ°CsÈï[þÊ>‘•vYV¿Ö+NLKÎs‡ršrç¹j tN4í¶dÈÜØ5µ�ÎÅž‹Sù±­;îŒÏ9~9þê¸''Ø“!¬o mßkÐW³\³\Ç£­¬­ÃÇÚÍÚ=´d>€Od‡VkùkŸ°ü¥®rÅ$%Êë,ºS…^…~è(Äê3ä—šÚOHÄNŠ,åÛ€£ €©¸þˆÚyÀõÖ>µÇƒ�A‹ñWú‚Vˆ¡¢ïS�OÛ–"`P~G,ü\©Û�'C×ÔÙó¥ò¥Æšù^Ž1…HHë‘î‘γ˴.ê„Ø.¢æÑ)…Ó÷Ò÷úa4£4£d@@ýv�?Á^*bT–�ôwÚ ªå¹/§÷ïÚ¬S3àìÉçóÙp:‘Ïpr¨îå“sy_š%¤¼*wð~np‹ÂüZ¡•*zÀ¿±wçÑT¾íÀ)!ŠB$2g*I©�±ÌlCd,•©v¶™¤¤¢LI·L™“Œ™çŸ9DÉ�B[frÜïóî³ßý<Ûë¬uþ8ïZç÷|þ»þþ®½öµî뾯Tm6'@öÌiûO ¿I©.Usž{Fÿ&–„K ‘É VÔC n‚'–.àóèÖʉ­;ÄûÍ×Դʹ IÂÍ태bÈÁ3h”âß\) m@ðŒÝÉ‚2­Ñ¾2çaRŽVìZ–ÙÕœ?ò(%¸3ÜÛHN,Ðecd�EªºªºzÏDÇPpºêºê~L~Lyç“qY}�§Ÿ‘Ž ¨âࢼ£¼ÏôF`#°©ùA&A&hœ â¬6œËIwïÓìx呺 ÉMwOþZÏÔÉ@hOó¿zAÇÙE Z7cì%øôKÚ Ò)aC Pº!Øëƒä¼6Ü(vËßLÄŽ>ÛéEJ©•D LQOÌàœÁ¹7^ÃêÄŠú .ùã }t¥VF�ï�|Õ˜<U¹ü½¿º¿Ú%Âæ ¹¡×è¡·ãAãQZü§�›+¢v¤d {{ªvªALŒ~�²ìýHŠíù¨ë�‡Žâq».Vw¸ïèœrm³ÞØ¢ù ÇüƒùÉ{;J»á$K$KÀyyö‘$¾@–ž!�ßóu€ÓÐHL;«|VYÑ,Õ)Õi_«Ù%x¦¨݃Gª¸¹˜×È‚›Ÿ×õm–)Üz¦lLÇVàDßz} °P¼üˆ�uï6§1¤›Ó¯SãïVâ}¾ªw�Dú™.:V™+€ÎŒeAWÏ�bR°(v]à’hg ±ÝݼØ8bÿº¬ñÙ ¼ÉÌóA@º;=Ä‚Q´ÐoJòjõHõˆl9„ÊrŒñ~=„uð´7^ó  ² P«Fi�øÀ<ÐÂ^åé³Õ bÿð�S·×:l¨-ѰçùÁ+Kæ'†7Ʀ\Âz˜õ°Cr1óO8JJË*˪K3ÂBÛ¸!-H¹ZñªpôZôZ÷÷X:X:HpWW½~⟟r¦Q\q\¸êG!=ûóCã†{ñóS¡k1)»Í?±‘�ãR–«g¦ê«�Äqfgö\§—ÔµÍ#Ñjó»½Ì”x¹í°Ü³ê??%µÁüT ­P«ºË_Œý£Æ6i›e}f=ë2�&¢á>b¸r ‚•4[öò ·ŸFR1ù~ Èe¸]µüºí*Ò>q]4@[Hå tÓ6(,`ø›HÉO‰«ìƒRO«ç©çéPmÍ$–±Fðý^lÙéïÀ�Í…­�–›b!èûÑû))Þ/@V= ô nÔ�wú·ñXfÇ8 øÂ½o¤L÷”»Éc‹É ÌݤÄÐ)¤8½Õ¨t{Ue´bõ”M9-¨N¯ur\xc"�ä‹Ô‹Ô#m�¿á"¹#¹}½|½\Ãzû¶ç@�S�ó¯®úÃ…ñ†ñð  &?@i£´¥ú'»{µüqv*ÌHÑÈ=c;çµY¦~¯gJã8ú \ÑY9ïô›óiÇ2N"Ý‹ígø|”ˇ±4LH»—&’šÀ§L A©›Q')áá @_F1ÁW‚¯E÷uÛ™D jŠ×e”r x–à�…D‡G¾þi¥�óÂy­n… 5!\Ε�$÷(<s & ÓÐ,"e» €u•Ë6¾q¹÷ƒ÷ée:#ÍÝ_ä€ë²ï²gbÆ9ãœ+TŸª>µ}³í“b}Î`Àµ½µšxÕK†»f ±4ÁÝ<^«Bgຶ9 D­«·P×6ÓšC�™^…XCå(µh3 \—]4ðœí€¤I@‹Î4€”V 7ˆâ•ªDÚÞ\©EØË–J×zÅk7ãŠÄ¾E±<»Ô‡ Ëë~5½±€C±ü©/R7ç³h `áøù‡4‡4©‚…}ª× Â#HüZ�X¸éÄéĵÅŠôÉûÐ}hŸ¡x¦b‡oµôÔ1Kë…àVZµ6ËÔÜz¦òwèsÁÙµ=ö$È­Yöc9†�nCûs�©Ï2[3{äKŽÔ(´§ˆž¾+è6'T¹a¾’¢þ°VxÓí7EŒ‚�‚}Ùܾ�X—í¼Ît¯€£Íã$;Cûçë¹ðk×ì®Ùó€XuAN–6†J`Þã±ä8rÀˆeö-)<#@mŽrD 伫û­4W… {Mv)ë�ó…Ïý|þ—•K¨þšä/ÚNþe·j‡j‡-óÎS2Wá"9#9WÞ­¼sëÞÿP)2^€4÷#| ®Ò®Ò®7“J–J–=ñIÇ“¡íiˆ»RœÊ“2b�öD.¢F3£7ËÔüz¦Rô¨0p»…Î6˜j_œˆ”õ±›@Rt2jcc¨–:OV %³•ñkãÐèl‚L¸9Á½A-jRL?µýPÄ  nÔþÖ"†S"ŒÁ{÷–ì%@W9¿ ÂàŸçˆ­÷8âpÄa8²*9>d’9Ìl¶o(€Þ@›§+–!¥¾Чýª³W Âö>XéîÙ¨tR¶3è–÷ Q‡°YhŸ’Õ·hÏÜùrbncÂo(« « ƒ"�P¬p±ü±üß[¿·¦]¡ÙF#úy®©¼©ü´|ðºÙìTêù®ÄÿÎÔE(Sû}"Oû׺$–y¶oiå0Øl~ Þ;],ÙÃ'1[µÛ{Dòtr·§Ehæÿ¦öë‚YCV÷zÌãã]K#­;¯4ûðx=dœúàÂ}¶çjuÇÑKÜóm×þ®�Ú–?êíÜTW¾%—o·É5©–þº<|h‰*²ûJ´Ä¥Î®— ïϱÝþ»öÿ¯¦ÀxÏ-uv¿”ï{öÝÜ-1ü• Oß´½µØ_2¹m�á}Š×'Ô¼Þßµÿ»ZÝR»ZqÒž3�§u¦êé:~�ó^6Šºž!°ôþWóúús"2ä·ÿ®ýgÕÒ/ez|á4èó¢©Ë¿™_Þ¹Ê*KÙv]~› ŸŠiOÐ ]£~“ÿŽ¿kÿYµŠ;†2ߌäÿ �Ÿn]—é÷“Y0É{QÓìDÖ…mÏ;`Ú]þxŽRóZsO<·ÿçÓ½<£ªÍn‡™ŸkIÀû–á;­†¤±ÉkÅ"z'—&6ë[Öûï•”R¸³z“9‘*ç±¥«éÉfZH;PiÀ»ÂÛ´ÍjìËH5®À=j‘xàj]=�§¿x)2¸_@¹oï{b.¼.¼ʯ}‰X²à™|kÂÅ�W It~ý5¾+s£Ó£Ó»&ÿIR_³"”–Þ‚gJ¸º¦«\¤dø^¡Y­±'ÿñE/*v’ÂVÆß¯ù(Øü×#IÑ'æ˜%Æð‰Ã|³Œ­ÖG]D]¤7º¯!‡áÀpôô ŠöC†�Ž_™… ¥ ¥¹¶ä¦ì¦,›6`µM …gj61iRßꢤ|ü“ìkùF.›ejq=Sך¾ ÀÕQÒ¹½™Ü}çÓ:ÉúŽO:ðÌQ�™�…{©®Äé8�S�ºÚ'½ý@Yr€–”P—§ó@H§K%±^ù^ùÎôKÄšÄw³™ø¥—€ðBç}[în´@œHˆë×çÞCbª!ÏZÕ2 «:QxÛo»Kó_Øè^ѽr4\/ŸØ®ÏT‘øåãUæk²WÔwªÈ‡n–©¥õL�J‚»¨»ªNó€á·y"«�À"’”òý£€—åÑSšÛ„×�nž`R¤˜Ó�9+:OcR>/Ž‹…bœ;ˆ½4}iZ5p‹{Á%)¼/¿ÖjVe�7ÚŸmi/µn‹—Š—â̓€7Û:W3mH� +?^Ä?>ñ`Ìä�)Ðr©ú˜Š¯‡ø!>¨ Š•¬uR"2+ü·hÌÛžj xp×)0‡7ä®ÊÆ~ß°Ñtctct vä1è€;)~R|3ŽiT;�ÐZ±AR3Ú G&O&ÅŒOƒO£µhHnHnšZ´ž©íEÖ6ƒ¥}¹_üä§ú#nn–©åõL?Ë„ ñ� "�’VûãkÅØÄ�´"ô+ Z“÷©åðÇ"YX €Ú+Õ}Ø®&¾7Ðî8tåÜ~ ø�g81j[jÛ?ïhw“”&xA�7„b©©äj ³KL÷lSÐ÷Ñ÷«»!—!EŒÅ i�Sxvgÿ `»µN)Ðov§æÊ¨ú¤öS÷Û‘Ø RDÝeãÉ8/š:i[^aS䨛ccQ๱ÌÀà ٩٩‹TÝ.7ÞÁ‰ ˆ Œñ�ñr÷ã8™G²l·�ûXø±ðT1™#™ãôí©Ô©ÔÅ#s_g —š÷+%Ò­™b^Y`©7ËÔ ˜Ÿˆï†SÙ¿‡ÀãsñŸÒ“R¤«ŸŒÞª�·Ä�L|²A:óÝõ Ðz;-àT[$ˆÓÛCJçmjU�`Gl+ÙV2å‚2bÓ(ÓèI·Ãyø ß™Ð$Ìõ§32ONy–aó6›!¡”f“øz`Ô7od†‡B®4Z) =·T•`5/QØH^²Ï8C”WâI•޵dx%ϸØÁ-ÿv†D|ƒ’yúÃýÑcú˜ŸúüôBo¿o–õÕõ¬7~2ƒ;¿ÜHÐõ¥ìlšgr}v+RÄuÆ1ÀÕŒÆ!'΃„ÍõÆÄW|�ofÔfqö÷HV™ ¶ø�¿%†þ�þmÊóö3\ÇcoøY <µ€ä.¤÷´“*ˆå‹åKH†TŠ@•?s…pá�Ù´T§Ül`JÅ„…”†hàj°½$ù¤ƒ7«¯§v—)fhýf�ù ¯yÈÊéÍY:mŨ&®nLrÏEJöö-lµxò6¸ØXË=–{„«$‚·úB¬4‘ö©Óq‰,Š,¾b2737ÛW"'('øÀÓb ž©…Ëæwç§ÚùÌR—Y½7=›ýz޲gp#CN+3¼7;Í–�Ð_GfY=p“™ù*êçÆ#…qÔSþ†ŒƒYÄ>‚Ã'ÈIù–�#YvÒc7d74ýä½L슀_ïqÛ  º ß î·B=Ä‘™3š3ò�BZ{ ÑR3�ÚÅ,¼0C@& <Ò²“”ˆƒ€‡1ÛÏ HÜHıϥ[­H\Šqß&¸€»¥Â±šMöòÔ 7š«ÚqcÝC[,„û…û/7æ»þ€SªQªqÏrϺ{rÉ0�‚kAâÝë�—ž‘ž!k.e.EÝTØT¨ÂúUž©; eØ]e5A¾Jêi7ËÔÚ±wçÑP¿}À‘m,Ù’-’]’¬)в²$D¦,Y²KY²KHÖH¡²%;‘»d�¬QÉ/k ™D(=®óýÍ=Ï|¿ãøã9ç¹÷}Ìë¿÷™?ß3ç»\ŸëZëTEBhK�P2žY9«k\dw ÒùýçG€Ç™ô6¹zi$ÌŽíyÀE-¹s€·ú‰=xÏz¦ˆqæ‚îŒÅ(²² ]ͽš‹mfÙE(P/‰çðq¡ œ²8B£ ªÞÄÉ>ªÎ¦ÎVe o†L¼/†µØÔáDkèÓ€¬Ds 1t� ‹EV�c‰�c‰¾ƒÄt1zÇ ­Xf¬Œš¿®\að]´-_�\_Üë€"NNŸ´c M²Sp³J³J¿Å‹·š¸’E@^ JÑiÀ�Z9µ{ٲòc@¼:¦:ÆçüåÃðNEu…§¸ñ�tmùyñÖ–•�:EBEBâhº¬'5æµoћሕnŸ©×Gù'pë‘E’Fª_7Ò¹†BJÀ;T�ئVÉ„7ˆŠ¯#FKº„â` ‹&004ú¤ú0!=<y~�àÚ̓+í¹ûþ§üs‚×øì€\ù ‘4×ʆ°L~Å¡MøŒ€„Eö{Ä`1@oè«~MH̨½ÿGk°§»/'ŧÑã½¼-êž­_¢÷;×zÛ/.¬¯Ê2sE�¢îü±ý…ª\�f�fÞ�¼•ÏHyÔ_B\¹�¶Ç¤½ƒSaPa÷��Ëy©ÿRŸVíU!®Sv¬P§”/�^*] ¹=ŽÆ\.sÛè}?ü:/0sÆ(ÙPå•ü½–ò\ïYÑ¢ÙÍì¿'{‚¥–�Øï“š}TDU¦y›�]‚]÷ÅÉÌö„@yÌ1ŒkB]è ãב›Ù??ó1?¹2UÅêÇ’ƒn9·òxÖ“Ï9H¦äóâ-µ£ÉVdezé×�œN¼ÞÌþ{2²k‰5 Wìß™3kd§NèrïÛ.pVC@ê›ñ@Ðcóì8I¾× ›ÙföOËfm®aœ4VT¢;~„jœy°y¨-3y¨Äh76×y߸oðR§ïû �Íl3[/³uÞÕ–ZvM§ôìIŸV•&ígÄmӒϲ¥v’‰·4¡«=Ì k*ªô7³ÿ̬lfŒd¹ç�æŽÊ«[²úVDË/̤ý Éþå0ÓäVqÞìDA­ªU "ãf¶™ý_³d!�œ¶üÅÇ�– ´Ó‚þpM_Ý;7ÇÀï¦r2£^s(ƒ¼³ªg3ûge’—ÇO“j°`Š)LSi½<"hÕbqøú Ÿg¹¾g:Ú‹æH÷ûyÅøÍìß—Ißy™%ràø™å/29Û5Uë?zÔŠ¡Èn½=«2+Ÿ~yõF«p|—š²ûföÿ“¡ON»i<*QsVP³TÉqÚ6¶ôÙ\7à©é’´F”¨~’ozS@�ÔfV'UÕjÐg6~ìIäêB©ù�AÇAø³û'JÌ|ï 5¥OgF}ÏhÝèÙ=) ‰³IÄ"\5©C ^Ù-Lp¾­¸tÂO¤å¾sªÀ—jVÞŠ¾ŽY¤nί²À‡oür€øç$ ¼–j•;ÄÈKÙvþ‘„½<ôRaj¡%G<^ra…, ÂTV2}}OטÐrJlYl Ä1 bPÿTµKYç™&ê ”ó߉cG0àM¹»…ÂsiL%:þ+1sU�ÎHÔ ¬ V”L¾¼s<鿾`4‡Ø k?%å‚a ܋ɓáÕáÕ_|WP>�cõH‹©ÝŒpEþEþ;mÁö)˜<×^×^¾rë*x§8^jîh¿'Úl�f™OväëF�"[ëTæ“6œEû'û5s ‘†h1¦3úl)¡zHäì9UÀ †Üb@kFGïIš˜ø_ÏÛ†²$vBŸÍ?›‹‰észD‹gâ‡3‘D(}zª‰ëÒ:›>kŒ½bpÅ@+ò€²ÍãÑä¹�sH «÷F•ܘ;ÎSÿ0Ñ•öôû 17�Ï~@ÍÍFŒÖ9�8Y¬“XûížÓs_—°teo÷®/ûãû7c¹c¹TeîÎp‡±‡±Å Å Šv†ô��îvqÀ•Q”Q¹d•g•—ÅÌÙÌÙ„(§�…wÊV¨Ï¥QÁ9ï·Wkusüàó�:µe­S¼XŒ7Ü^V9u¼ÙEzÅÑÐÓ][†�îR„ýMäÌ)îú6H쮿「}ØN€;¸xÞÖên5b–˜ž¯!Ç< 1ö3öSSë·âhÃvÃ1رÚ�+Qì6,vGÃî'CîrCÒœ“ÄþÖté_ù�j õ–˜–ÝÀÑ‚¤¬Ÿ�«¯¥šK=ÑÄ)59]ºÃÑ©ö›ÿ9þ:‡ÁžmÆ ÖÇÛu—YzDz¤×K§'¿¬j©l©tyØ;ßâ¹þ )àbû\oOo�Ë«V–V–ˆÈÐÙÐYêE_Rx§ø¬šÓù/bfÚ„=رQ§È×:U+oæ §pàê$žE„†�y‹˜ RAüô î2õ{oà7¤£øI^——]@‘þà8^"'ÍqbŠ\�t�SÌØ B!!½Þ|¢„”ñ¾¾Âáxi4z_˜ƒxÿúù±¢uºK­@­Àkr�â~œ¾2_P„“’ ÄGçÝZ4ˆIŒýžkþ}<®„š;‚6°í 1OÞ0j$ß�9I!;¢ú-FëCgp@óÄúv}œ¾�Ÿ�Ÿ=ê2M* 79™i˜ixÍ… ó ¢té/á«épgŸyLòŽºˆºè¼ØÃ±‡c¾ß‹à�2Ü’?Y7SšíŸp´røâF�¢XëT‘ U?yp?Þ“#>£']c½G�ähQ©@OB»¼‹K(Ò¤y� ùà«PM«�'6ŸÀE […p p ->B(212qð{š!!;n<†�8/Þ[�~ý¸c9»÷vÍÉ·¶ÌvÌv_š!7ú!¾1Ÿ‡„ Jãp¿¶*§û'؉Qˆ”å�K.  ÍŸ[VRl˜U‰VŽãiÍÞ§T]T$è}Ï‘ÓoÔÑ•l}_”-titiŽÚº&X¡GÐ#aŒðάE¾NH¥4’ΡÂpa¶a¶¦gw&î•tt9öæ_�šú{ÍkB‚¸>ŠVYln{�™ÍÉõ:uÂâ‚3ø>ãß]['XV©¦ nÈe»KsœíÔ¶;b; oaFgHeéæv·[°Ú°¨Æ“~ºI÷ú®“ýY>6ø¹3ó«¹õ•Þî…y)¡Á4"×´ç+ÉÈ2•ˇ{uÔP÷UyÈïç]ºO%oÓ q�¢¾¾C¾”…$•è³›4‘çD-ý9s?4õ¶%’³úNqEæ¨l¸æ‘rí÷sÝÅ^®²'JÏpZ‘ŸB\P²siÈÖ–�&—®[|Ë„„y§ú�K³2&j¹´ðBh ˆñ¸ÅŒˆ7Úrþäü õÚƒœPáž^Îá¶�­,5,5Þ)Hä Â݈»÷”ò)¥‹÷÷ƒ½�Ú%$Õ|Æpà¿2o¯·7½˜½Úqtk#¼SÉjI»ßõñï¿%$°óšæF�¢Zë”ÏD?/ÜѬ#åx‚¶—™Ü~D¥—#…Ù¹ÿÆ·šíý¥-�‰Ôå™à›ß:�`XÜñèÒ¢‰©¾œ} ¸sΑ–�tªtª•\G¡mfxÒpPY(Eàê èøÀ˜Å@Ý;—–%këËêË2‚!Yya?UH³ß�'€ÅˆÚD̲0°JSL¦zrê¬ÞòõF‰Ĉ°é-糑ÜÔUòÌ›/EmWļVŠ^ŸTq‚�@‹@‹Kg™¯>œ™™Ô¨Ô艌N×Y1ÈsW¤±.c{8V?V¿-¼ffî½ýÖýÖvö[Fà�j?|›ÜwÒ°E¢á³ŸqÜF�¢^ë ÖCŽtø žÏ•á»Æ»;#Õ¿¦ 8ÒK˜f±?«E²œK%¤¢œ›zÎ*Ù“¼âÃèþ?·«Û¨ÄÖÇœÓWößý.ŒÜ2nÞpÞpuiuIo/«Òv Hm2’HÞ±¸X�XÒ=ö^ö^(ÎÕˆÕˆWï_sÂgðÒ¦ä”Ò ­¼9Ìx�+¥Ûh~ÏÑUÙRËáͱ£ç€µ E§q¥¯N†)I4_«dIm“­ZŠ×âÿÞÇY?ƒ' ÍàÉ­3ƒç4öÚíb@ÿöÕ 4'•Ɇï2h׺>óS× NÑ·ºï‰[˾ ï˜* $µßò@’õžâ³iA²H¾+�§€�<åµÀVéþ¼Žþ½ÌÄ¼à‡ŽP­ocm$ÔÙÝÙ�u3X‚P±eιgÀÜv9;ˆÛó¬ÍU,æžå=Ë4$l’Bid sVÅ! ˜Ç�Sßšˆá¦xèV®…’B¦"tî³”.c«ìPÆ4ßL…^}}î†_Tƒrc›£ç§õÝ’:ùm³‚±{�Az, PK³K³žž¬Ž¡/ ´HÒ7‘GÃ�Ô�ÔO<×ý¨ûÑ©!–2–’/Æ.Þ©ûTß0b�¢ŸIKWŽc­¤7êÝZ§ŽL)o�»¥‹‘Ákìg3¢Û#Êfž‚4("Ú ä¬Êqú%íAçhæ<´��íÉSx=ÏhZˆáž¿|(zö6šÐ�û�{æO[mBYnxtOq"‹â„€K’]fE®¾�.ºaAaAm!†tˆá5·;o>~®àû5`×��)bS¤A\¦ÐM·•úü¢þ¯Núbì1βqÅ+�²eýC?<ó2Ïø3á¶>öÜC±j±jÆÂvUpÜÿ¸Ó&Ò&¾c¦myœ1DzóÜ+îÚÿ°w§áTv À‘d̰‘1Ê�)Sâ1e–!sf™©‘ŠR*ó<'s!!cÊ��!C ™¢È˜#3 9Ö¹ß}ígß{{}xÏ9×û<—õûöÿü¿î}¯µ×ZwšoZþ+üHüȲàQçQçÐÓýðNÕmiûl"8tXÖD̬«Y»uŠl»Såæ/à\.°¢ ²B¬#ê/�.ÖcêX¾š $Ón1î«ÑÂÇÄ“+¢ H|³äfõHøQXM^b#àZðø¥›Š@ÇæÊæª±už]`0 ž(Rb[ `c£¡m’oÃõÿ‘BžB i0…X�­AÒ¸Òh‘Ë€~A ùHn6I�KŸÚn&AN&3»k/asu3If¾44Ÿ÷G~„3MŸžž+Âvgå,¡5àžÚæõ°Gy8 # #ãZãÚ¾£:C§!÷F09=,[‡›H›H•·P°P~’êšêê1u”Þ©ØÙÅ9„FbÝ*�Okóìzþüàv§°Ã™ÞXA9ÓšÃ,PÕ–É€)}Ëç)�e•jwÑÓynèþeN:«J ò4oJ% Ñlس�Ÿf‚¡g Ï<X.4¥¢‹ÕCñVDb¾­ \‹ùÚ !4ʰˆÒ˜¾Áv�íàÍJHîgEpØ}µ\é¤ÛÀѯ€j×åUlrè¼ZßJEÈ kГ,•lld­H? •Õuºqz>4lî]™o›0nÝÙ]…ðö}×x»ήޮ¾ÇµÇ•·qIDO ÂÂ�)–Ù¤ ÎÁÂÁÂâ Ãm†Û-Y?$~h_ò½‹ìTêÔÆˆb,âö¾nÞÉ"ø±37v;ƒÏÓN¬2¤öÍéœã�¨Õ³–d#û;gþnù)¯Ú=R'l8"Ë?¢•×åäÙ`Ë™NOÍI6JM]F«±iW¸—ý5³ñŽ*[•Ç÷˜oZû9ókËÊòG?ê;Q”KÙÓZCXäøÍ€8¢ql~/û{g3d�¶oæÒ™dJ•™ˆTœYµ{5éâ‚»FúŽÏJËT?8Ò‰Üz5ÀîÄ^¶—�lɹ£ANˆb½““²’©Vúr¥w£ Ÿ²=þÇÑú6ü•éQFž¢±«{Ù^öŸÈÊUËùœéêõðTîVmŒ¸°T0vÿä•eÜGÃ|MM�e•} ×�‚Úq/û{gî.™^ìiS^�<(iÐȦÌcÚªõ� †bAñd™¥<1|{Ù^öWÍŒä…ù/šFÄŠž—f— yÛT?ùp2 êëužoç§kyJÎÕÚQÿØËö²ÿDöwvoÅsLM&u ÏsÍFKUÇþÝßÚËþ>×ÕÈ«²Ïê¹âëHÉþUÑ _ÛýL˜-ЧY/ƒ³ÿBÚnk»äpp²ð_¬„·¢œ­Ós4Í~ŸBÉ„©¹ÖÅ ?ke/B �)\@èð˜w$è­WO@ÙœÉÄf_ô]àxü‰”­Nj¤šAðOcªO]‡ãEð"š¨Šg‹gƒ›ÁýßÞºŸŽÁ;õ]×&~õãÕf—{m\U$¯wëÅv§HL{ àŽd¼E‰ 00‹×•.Ħúí;ðl­€wÌpS+®‰ üøE1Ð|Q1 å“ö¬76u÷ïûf•Jè¶2·2_*Ë£[þÓ`ÐEj[È‹\C«Ý!º2¿_ˆÉ )éÔêÔ6ÄA"¿CögXA†ï –‘V‡ÉU€ï1¿6-�@ŽPñdì{È5å.Yùýšç±S;åbx˜2†ïd`C”æf�¹XÉÓÎZµ..8(8($‹¾Âq9ç׿×f*a*ÑÊUÓ�®¡>†éŠ)Übñ=œF‘FQ À;Ì;,t4ãnÑ+ƒï‰½”~ÝæhfUyÓ¿[§(·;UfÉæ—<Φ…’qsê~ÊëøÍ˜TSdNqf2E2Sݘ^½ D¸ƒ—ò R(Þ¹3Ø zHe|îÕè ·‡µº<º¶»(ö!H>ºoº€¤ÙˆÚËÐ�H½óû9ˆœY:n¤2òéIÉúò’­ è¤Ùš”bó H Y­‚h–;u�ÄFçñ˜P�V ‡~”„'Õ2cÂBï×¼èÎ>Ñnɧɧ1dΞׄc�c�KÇMÇ­¨�*úÂÉú�ièÙë 8oFoF5ùùÜÑò„ò£G“DðN¿á˜T>[s.¦$Ï4õ}qòn�¢ÚîÔrõñûpT� l(~?p½ fp6”j1 †4ì È,á`bMÖÖÚ½€ #ßP*ì'°QÖœz Ø'ž³F×cÔc„ÿ–L ¡ R¼é àï†ø Q oô»Ü$ñ™ˆŠˆJ Ò;i¨ Z†02úÝBŠpTÎ8‹ì!بœL^J5‘ÈAf'ýìb8ƒMúA aû&Ž¡[¯”¨4˜ ôãàÚSîlÃøÔfòïäß+1¡¥ñ>pU-U-ƒ�ƒ�ßâ> ¥>‡”bâ'a†»¨rQ%ÐdkÓëëA®pqÛ–é—„`39v4Ž®+󒥑·@Neþ¡›ž§ŸîÌ4B¨KBWB7ƒ Çǧn  ¿·¢·¢âÌ'’@ˆðYLƒ‰ŽÀ1¨1¨1M“y’yê¥�͆52ÆðNÞ8o?˜SbHéP”Ç{«}·NÑlwª¾‘á‡×mq” —Hvq´p±HLâ%¯œ!ºêó÷^c’�óšl$‹ƒ€Y=Ne”éì“ñ؈|Æ—�·FÑEDTkœêGgûEj‰%þ_…¨g8%Ö‘õ£ˆ'9j°^&R&ó ¢'©�:{¢ÎÒ+ˆt} ¸Ï H²ë<Ã&š0æ4/8ÄiœàÛÿ fÅÏ#æµ´ù/^7¶]­�cÔ5vóÚYaº�%•<•ü„–‰~ª4\mmÇJÇŠQ_Æ:ßäØEL…QŒ~pg‚Î=Nbîgî?ðˆÝ�Ý-X=)Þ©“ª4“šŠª§)û §ïîÖ)ÚíN)}ó|g?ÙŽ24&dfÂuhäi&ŽÓ'ïr¤š"’ŽQE˜¬£ã�ÊdÉàp¤¥Êåc^MAùu|˜¿ý= Ý3®g\ë3ZMè†÷¡è¤!ÕsúÞ~5\n†Ü}¬•è‚WK#W"W"À ‰n‚hNv³A4-S�}Àr ÿËô6&£@×�_U¡%�¥h#ᓯS°á-|b/}-TÊI/â}=½0);›Ü»�ÅÈ3/)O*Oæ)PMVƒs&w&wUrUêìNxØ/ ‘RÁô½^ÉŽ@˜@¸É|™w™÷). .Mœ7+¼SÅ]õžBÑÒrso)2îÖ©CÛ�Â#òh€ëx¢™‹² ÉEI}*€Ó£4ÅS@iFýÝ�Ú)L)ÆD�šÃœÀiœ?÷5ïV6ŸlÎÌ]ž0 ›¡›¡ûI¡øÝè#Ûn¤vuy>À¿ê±4„Ö,€ÂŽ»2(‘8‘˜*r(BM믡ÄuFŠ. ›€ùþel +ŽbmÈÈû× Âéé^Þa3#÷-3?ð‹¾4«¤H®¸¦ú­Éº†C;‹ Šˆ¦�¦Gð±=Éó‚“°—°7r2rʱ”Øç<PÄT|®]n®}®�¸Æ=Ù=y‚¶ìyÙsÏ wÞ";ÕDü?wÉd*Ú šæ§¯û›9í¶'þž÷ù†í^öÿ?óµKXñð¸P5O^ÿtú»ü9™.C5�0ζš À^ß1ÂJ§Ù©W~á{Ù^ößÊ<Ÿ›\fô wñÏù‡$é|>éþueËpÕ¤çú'… –ºÜ7‚E¼ Úö²½ì¿•1›å‹¾½tÓçÓ´#í#aªÎXÇÕAŸ¯"Ýñ75§™‡�| ç:³—íeÕìVâÓn=c„#!QhÉ7w“ð¾Û܈n{nÄò3çœOKÊLKqÿ9~¶ý˜fŸÿk¬¸ŠQö·abïxaè+/FLYr(&•ØÎ�ÕþñКFâit&?L~8ÈÖô¡»ë„b,…DAúi¸_ý;b¹rÑüÎχÂ>Â>x+�gÃzoJ÷×*z¤ûe@Üi€Ç—¨ ›Q% ·ÕuÓX’ø ¸œê$76±¹>îš!å•ìÜÓ×Ï)iYQ¶î½»³¡?HeÌeÌë"Îd~0€ lÌnÌf� |!9€Iºú3ÜÑËG/¿ 4|møú\%¥4›V6¼SOB|ñ™?3?[�C² ^­Ü?ù`u¨ed;æ±,ñ ÏŽ»†ÍYM–nÊŠž ÒþŒõ†—ùsJvý¾.‚ª™ª9)ëÜø *¸¢š¢šPßPߔćIÚÔ�tEL™óYpþþ©ø8Ã8Û­c¶c¶F‹ÁŽðNI+1ÚWª¯;XXáÙÜ"Ýñ "²S Û�*üØBgÑo+‹20?Q›s�@Dð¦ÏϹæÕΡ*›­é@L �œ>€­ØõP ÍTþʶ‡ëؼ'<Ø$Œ¸+¢÷÷¹vOñtF(BŠHÜïY7êTC$Çgg9|;ð&è&èp^B´9 ¥� ¶o ›‘f’�k¢€Çâål’È€çMÁøs*�lÝïN‡–°/¿ô·¾dJtŠdظŠÑœ\3ƒ:°C(‹og¬n4_§Ì§Ìo‰Þó¨í†‹öˆöˆ?æóœèö ˆ®,¦#ÿdïΩîúŽGÈ�„F$3Fæ¢h£¢ˆÐ$c™Ê�2�e*2$S”!Ä�1¤ÌÉ,Š’i“2gnÉüZ÷ºö»Ÿýÿo�“÷à¹Þ§ý9û�8ù:X×þíµø;ë‘ZZþŠÎeÏeï'ÏaËa;Ì|§ÙTþ°ˆ¼ì»”á¿ú�í0¢šÚ¨)浦bÞ¾DR3»0„ª¢Ywó–.Ûó´öšÐ§À¹‹å|ÆÖ*ÛѾXõ2–¬1Àɱ}€þó¾�$b¬T­G€Lê[BUU›÷ZÝ!DÁ…—žŒ£=½Cp×`¸µ>Ùm£8ú44)4I†JÔ€þ*š…jåä°8'Í€ ,xS1œÞ€\H·Î ÈiÒ>�+ƒE�j[ûÃíAi�%E…Vtª�NæÞòÎëË3ÓUÖ{§÷Î&K’ÏlI-@- †ª†jAȹ°ø Ä|í2 Åy¤_n¿ÜT·OmŸz3óÝí»›áû�¨ûà†mDZ¯¨W)媎éQdYªoÔËZST>n«H}‡6ÏáQn=f`æö¸:©÷wS€rïž¼“Bf†hú‰ymí_�»»›©ðþêPY$æÀ”ÚàÊx›ž´²´òLò¡ø<\È¥ŠP|+Þt NÃn#`›F%”m¢½ØA*¹·zouÁä›-ut�C9Âø[®ó‹FÀúx¦ 1ª/¡ž¤¯�lÐLè™�“3†ÄŒGóD¦Äcßþ&c±büdÑ*{?dêÖúZ¤Î4Ï4ß~Ðàö<’§­§­“¶“ö~êËÅíž� Úй‹G�víßµ¿‡Y0M0�rb¡j¡j.Eê²)÷É‹íW^–97 ˆQ+ìØ¨)Öµ¦ô’¹�j˨äð¢5†µ‚>®\+ïG³]*.Ž`×Õº¦�æÈOaó²}kúj Þ�*{bÃmb€Ýó…F„ÄëÅëõë¿dz£‹G£�æ½)àýîËÕùgRE�Ê9T*W*×1@'ÎB¾˜ùÇ��d׎(�/°cÃÄìíFß4R’·@Ã¥o‡2ň¡^ &©mz}z[F/ýsúÇ|¤Që›õÍ?pñÑÅGs/÷…òH"}Ycéjé:@7òîC3iÎÖ@jãjãRHP W åöÕí«ÊêñCȦü&x2trÔ8ä5ðŸî.­û]®©ý`§@“ʼnû�^ÔJZlchïD{o0ÐIŸVdªÓƒVXœ·$¿~Ó¨/°*â}âìx@Ìݺkà˜©ô¡¢mEÛ N6&¤áƒ÷ú9õ½ß€d�#FmMuÚJÞpi)ë´JUßtØe6¤Äabecéb\8~�£˜éÍPIˆî�~¦¤¯Äܸ"×Þýp{8íkÎ×£äÓ}Vã‰rG×7•0÷ñèÇ£$:yrZaHmŒmŒÝÝ FVôq­4Z§ñÜ$aIaÉýñ®J®J½ƒ½ßz¿ Ï{�!›JoÒ› Àü’ûI£Çh2¿›o£¦ØÀoq.×#‰ÎÉZã17‹p�=r:7mL41  q+=n^D[ƒöa¸ ¸— Ï•öƒ­xå]´æÄ´…‡d"Ô „d‡e‡9jeWãÍóãHDjy±VsÐ¥*ß' y—ÔÔp¯ Õ섪hx°P¦þ Ž9�9 øj&RórÀø]‚ëm:¤={ûlÂyCb|uÄÆYzcicéÉI'‹e$õ êFSFSä#±²tW!‹khoJÀ6!OvOöï_†Ø†Ø[Ä[Ä]ƒPï�0Löù 3¥Ôq>T?·»ìÄFMXk Û4X�tˆñ€ÞÇ~ÇrE}3×™´V¡˜'Àt¢Ý%5QçR4yV�=À¦Ï®rÀ‚Ú›t¼�y܉©ÚÏø�ëqŒ$ԙߙôìh(!=¼s|8ö¥Ù@[}Ý-HëödJ,•N¬Ž™ŽÙT-t@úXPïqè6§áTv@jÚÞb&$�lêÄ ¨�“Æy†»ü%1—®ýM6s¼²=5”’o´¸XuÚ±(¡ê¯õaD“Rßx¼ñeÓœr'Cêåéå1£6£.åj¨É«„ߢñŠê›#QP¨F{{�hxE{E�šýÕ÷¿gZØ”fܱt ë"ŸqKÛ1Å'í© ÏÑ4�MÁt‹ Ô·”¥xO[»¾êNû3û¿Ÿ%9Öæem1Ö˜þ³–¹ Ê ±Â�O¢.2­èYþ™ý÷Í,�o]ÚwOI¡¬Ogé'Óãê6j–µƒaîÖ§ýe³LvHÝ«®è>ôgögöŸ6«‹ï¸ïlÐð­Ý#�…±%�ÕF'*=Œo÷^…”ÇÓRI­Î×N} 3þ3ûÿ=‹‘\´Lý1ÿL ±JME#†a¼{–þÒYÁI Õ@ýæ ÕŬŧt2ný™ý÷Í<½År§G­¦1‘ÖåÚo{W®¿lÕÄTg (j…xJé�Š›V¢;Ä(”ógögöŸ6b°|>"Ñún\:.&§’O�¯ïºŽŸ’»“ŽxðÕ�’ì�ª„$ÛyqäY?nò¯ð޾¥÷%ÆuÌY¶±�õÙ×Îú2rR+H-EØyÄÐD^rœ=ꀠ‡ G¤ 4X -½¸5�ðY‡k8B´M~°#æ,p^V¡ìß åۥ˲ò’&×ß¡÷}»2©ã­¶“ÈOj’_[_å(ÖÿÛ ¶�Mü³¢H?÷ýÜGÇHÇø¾Ãkñ°´é=šVY1ÒˆÓˆÓk�_�—šOžO^ÃjG†Ñ¢;þü¤R�$¿_ç šß5ŹÖT¤^B’÷¯� x«Ü [{-³Ë‰|vÖÊ}� Úsî×§ õº¯°Ü|Ùç,í ¼RÓ`-b"µX€–yl!òxòxÏׯNJ®ÃÃ0á$&žêLh¯BÙÇN¾°* ›ÎÏÊÏ:À=ƒ¨“œ„ ²töc83ÿh›î6«� f%8ìî"×Á ™:*UÓ¬ä%¦áS¦ËCʇ|Œ�»”ÄÑŽü]}Dã´>…ÛSædd‚�_?]EÊŠÉŠá à (Æ4 ‘í„t,Ñd¸ì¶ …Ó„Ó”²¤Ø¥Ø©Í=Í{šwͪXÙTÞU…¬Œ ¿,9—(FÆK—ÎmÔ×ZS%©¤ HÝä|xY‚?T¼í)-‚Ð~—Á—ûln.á"ó¼�ök3ÿ#`ÕŒÉ8Ö&öïHd¨.1b$¦&@†–ô3BKW—®æY È lÓ(Â)¸-Aèød…RZ' ¾<ë¸'–)–‰}íÑ‚ÒI™B<L8§<¸ö·-°1J“ÀWßÜ×dh‹câÄó�^TÄ4Ö´òé„6 ˆ{zÁùˆ‚3•tÖ‰#në“upmމiŽ:VÄ �äeäe„Ä ^$ë—Ò\…ÜÐ&ǽM‘²ý²ýÇÅ1âŒd˜dØß¼é3È7ºK$êñCv+V'ò-·Oên´#ƒ|ï˜L¾à¦W¥i×™Q;Ÿ+Ç朖$¢|/ŠM1ÜÈ:fHòïwd„×Ù‘±\�ê5:a3|Àª$£ƒ£âüF­sƒûÕD^š!%|Z©Æ“–ÔÍ‹©·¿~Mû~uð°R×Ê«EŠVý®5�=ò�{Vjx÷J ˆñw^KÁÿõ¿µÙéü,¡‰x’XOÇ^ÀhÛ%ˆ-è÷¶¥@�±d�d�œH¸ºíÌÐ ¥ímøˆs"X4„55Óm”­DèÝÏ…®Õ’TÇýX�%&ª‘JÜÅÑ ³[Õ5“Ï5XX¤°ëèãõ�>÷ºy¢w¢W¤*[ô6RpYp¯¯Ÿá¤™ó(jm1|Š) 8 8œµu¨uHcv¹`¹`ÖxËVdS­¿nzMø´œÍÙ‰yi8¹QSJGhŸÌ>¦òœƒ„¦oáÉvâ\Q-úhEÿ†¢téÝÓí:jÙfÙv©ªe†Îi0„®�‘ã0�¶rºjŸÛˆI%.Ð2éô?ƒÚ>JH——ð¾"æËü|¡ÿRì¥Ö÷iƒÑ9‹�Ü”ë«eâìt w ÷»q¾Üwiëß[ÿÎZû|V¾|²$¢UFÏòJùöî<žª½Ñã8™�cŒL!QdÜØReH¢PŽ9™Ž9 *RæÌEd2™3OÇU/¯‰F›MØ=bþ4LŒm°ƒW m­¿C#÷¤…ô:u6TZ£fÕfÕ„!9È>–nˆ÷SO´®i`™0c o§¡Ð÷I~¥‚‚4_<t…;hŸù¼¯”¯¹<|fÜGKÃÚ'ox_ÚYÆ¡°l�M�Í&êI‰?àä™ä™´PZ¨D‰áȈ.ÝEc¸{/î½ðèóP÷P—Ê  üJ}¾ÝÃ?ßåÒvÃ!ƒÁíÚÉdö—ž°%îøÝ‡~F~í@ö¨çõévæï¾›§dÿH�_ X·ÝÛö¶ÿ ›sdjè#kXÕ‘ÄqGT¥ ñl·³ªVNüy²ç2½>*‘¤¬àœ±·ý½¶¶G§úlIIß_ŸßÛþ=ÛX�´Ð`\b7Ò@Žðzö‰Îô8ÒÓή| Œ"×Ê(鵌«?R¢ö¶½m§MJ¥d¡µMoà¯éôV¢äõWãW£*3Â5.l±§ÜøQNëÊ1þ$goû×¶·¦þl–õ¾¡þÕÜýÄ�r ôζÀ¯3Hè.¬«Ë$'1½HUaÚí:CÜ·5ù¸‡jÆèµ×²µ�`Ø”ŠÅ¥–Óÿ;@ü‚þ·®Îã¸<-„K€ÌªFk€-¼‰q9¨ƒŸ Òw«€ž­üØFØFØJ®÷öcóhÀ áB›pçÊ»¾ÉCúÃI&¤¥´«¾’%o7€8¾ƒ”µ­,Bxsi8к€ Á›ŸÀ âÖ¨L¥$ó#ÙÆm |Ä­6ü¾»q2†Ð¹YÒ žßÉÈÝÏùûÎVP3õD=D=&ÎQ¹/«áHH ü ü¢×ƤV O2qÑK>˜€;­tZ‰YÜ{8|"i4iÔÖ) oÊôjŠô[ÝÀªŽåCo8wkJp»©™^– ¸¢C�ö²¥Ìù]·¬¨Ïâbòlb„´®}ï(Ç¥âTg´7D>J\M�bœ]+º†Oå]>B`µ^9ÛÌÙ‡Tïna{ì�Á�Šæþ1E°ì…„>´‰Ó¹¯Í"Ä"t« R_ 9'Vs âR…º„VXLnŒÉñ¹ °íçš`/†trÞÚŸÕΙ†Ïë®ý‘5¥ Jü�JyÒaRo l"/­_ÜwÃ%•hÃhC[ÄdCœ�±�ñè½Ñ{²LF(¤!dBS!¥œD·D÷” ÔšÔÚ¬Ž9§9§ö'JxSú�˜’Œžª‹¼*ÃàYìÓ½[SBÛM5^.®€ë8tGC#ŸaCi]Q�W~ƒ&�:àïh¹)ýWq‘À Ð`{ÔU¾…AU×ö ŸfÒHC@MWÿ 6OqOqrÊ�sØ„ò0ûÐ*œµ§—Ž"Åî†aV’Òn lDBÄ_SDQ;ËAˆÜF˜"Ló’rœì¢à­­¾}+òM¤µÝR€¤”ãÓ²´…#Y"Y¢;ʥƥ&»2Þ=Þír~輩ãÔsE¤B*÷CX"6|z½[SÂÛMµ26ˆÀ=»Ð›‹áò¨g¼J3ùÍÖ/¸xæ“e¢àôiúû®áê,/^®&ê­™�B1zyßëáCûÜóÏž�|„›‹¶‹v×S>7l�£ç‰Ð4�{NýCêù:ÀoÚK�–ééß,ƒÐC{Ì- ÏÞ[~B;°$NŸWÿ‰ý$ýrcÔO2ůíû…§ÀíÉS�ýg=æ‹ÈŸÐ�!QŠTIwÖìIa‘ › Ë¬e×Ï©çèäèTÉ\É\q/k%Òà†Ë7ÇP ÎgÐg°á´ç{Ï÷S}Ñ&Ñ&®K:ðóù&ñ‹…¯^C ßż vØñ];èóyyâ˜W7cÈNܨ9î{ФŒŒëã°¡ú¯BGÝï0Ýt·# ²¦Ôÿ™ÄæÚ «¥:ð9à>ŸGîp>/i`BE™ÌâVŒJçºöm×ÿÅÙn�åRÕa8©¼'1Ú÷ÑО}M<Ù£�kžJ©p ˆd•òÆÕŸ{hè<— PÛ&b³<ÇçˆÅ}À¿ÆÙÛÚ�µ;âÚ7cÓ•ÁÐ8Žæ@hôà3¾ÌI!ÐÞ´¿Ëp°~­~Mß ã 9yr:b£V–‰´\�Pkõµø òž?­�æ[!¬SKŒöãø$p}�{êñí.-�]þ·¬ãÆ_Þ½(+ÜY„÷wºÒmµªtNep��±ü±üOÏ´äÅVBŽ0ãŽ�†ãkäk\XŒ>}ÆqP,K,«wøi¼©ß­û6–ÇÔcßdýö#¤„z·¦ÛMqqü´„ÿõdFŠˈr×(ú‰²¿šÏÒ:¸7jñ†¿ ÃåÌÖµtž? œOŠTø¨vÁÿãÀtPÍgl›I›IÎÔHlè·týC9Zšê=à9A‹ „uš‡õ湪}¢Ý¢ÝIe�S�BŠ4¤h©K�NPz¡wŸÁÍõŒ…Âuéq÷ÇJ!‘¤J¯ðq çœM(>hML+¢>Œˆ·Yl=õcg¼5Eg&;&;^pÒÆÅ�ÃYúZúZ­X­„#Ó‡¢N@P渖ô¸oñ.°.Ô³^wºî´¥1;<;ÜBÿõOxS©Å(øýL�Ù{‡¸:íÖ”èvSÔm±«p œ’ŠQœ±k½Ê.M-ã¸Ú.,¯¯^)Š•ò´Ç•R¨B Wu§o ¤©pJ$>¤dó?�ƒúšÑØZÂ[Â)õ#QØÊÓ1¨éÐ~N:¿t»øOCÎ)INÞ‹}�ñGß}T|�K¿B¾y]w… @³g2*€jûסø’­-•W!‘Æîn«~¢øÐ”Ó¹oxù9:«©QŽ’|m_N´3ŸÃK†�†� .–¹‡áê ë £¢¹’æ_ €ÜàÆõ`1!NÔQÔ‘x ÙŠlù ‘-‘�ï][ oÊJm¹ëRÏÛG3zífì]ÉßwkJl»©39K›p.¡º+Ç 5D¸Ä$Lp�>öíÀhñ†Cðâ®áÀö@D£¨@÷äó(ÆÕ¯Wð‘.6ëæf’ưѳг”ÐÊc;:�Ñð M=ÑÁý¤Í)—t؈¯1HH+ó†4æ@$?¦CÖhÿû#æLέ„ ø,‹«Òò¨>wHM½´ò¯—žmâ3hZÇúN}¶ïVduyÔ�Ñe©)ñîN¿�¥"˜äˆS‰S¢žxmÁ™«š«Z‡[‡·êçS«Ÿ‡è´áÒü@& ·&´&¤>³H¼Hl¿&T)TYÔ2oê@A¢Æ}/µ}ž§$¿îÖ”øvSæŠK³pT«c/Ýejœ¿U.âj— �l=´ÙÝ¥Rq=­\nrþà,�üõ[~ä.rŸ\ñc—Ɔ|›«Dóúº¨ûrXãóç&�­@Æx:’|žáãGaŸ`|¦+»EQýb!&{�'€ÀêˆP¥•éΚY“Ÿ éé„2/ûÆÂUV++¿õ÷zy¦�ëÜ÷]¸aÍaÍb:g:çƒï"‹#‹õP±Åè¦îÐ@M‰ÏŸel»J„)ñ]Š ZsÜí|~í0itÉõ­îA\-ű+÷ãë\+Åö¶Ï6õŒv´“'ä—é,ë¡Q•&£„wÂê#Z—½'´£®û]�GÈ|ÙÛþ³7�ÌÚÜC¿Ý©è ½ã5ªtuŠ¥A§WÑ¡Cêd"û6)È6¬¹ûþ/•Ù{Ûßk!0¹lÕ+þZo“½U ÌÊ’Ez`@n¢zËãè[âw7#i«„SEßìm¯M4 –‡t_e®‰ Í1óA�Sw>I'ñhÍE)HŒØŽ÷Þ�»ƒ É^ÜÛþs¶µÒ«Ñ‹•ÙÚ�W.Ú!|+$äMTÊÞ "-DVb™£¦âëé~6$*´·ýÿÛìÄM®Ys(½c¹Þôå÷ãLªkm )Ú lÆÏÍÊSpk+Meÿ±·ímÿ›“Ç ûWraïóJ; Ƽ ïеE™®“»}Jù&oþ.õQ"¢“~oû×¶ûÏ>ìG:˜´®‰g3æÎðF+¥yÁïå<¡e H înˆ„¹r8>-N©GDؼý¼ý,ådk°5›cÌx£õ}n�¾Ää8B¤[þàcæú0ÿ�õ!kŒ1Ä`BeÄ\é“ç%@“yäç©‘áøh—ïÙs(æ!·—‹²-hjñqoˆ’�Èô #Ÿ÷à—pó™b*ŸÏrÞ™;»ë/ËÖËÖJþ‹·n܃ ‹ ‹±&¶&Væ7¢‘«�¬/ãRä�㆛[œ[ žñŸñ·KHµKµû™ßS oÊ¢ëÀ`p^,#›™îêbU”×nMIl7åM±NB÷W- Ájr]ʃÃYMó¸è†Å?ûeΟiÏ9™�«9[Tð0/È8øn›c\�P/ÀgÕHŠ xUhc†m„b„"ØË\[Î4ƺ=Z{¨Ö8 �ܰá5�XO²§uÑrÑÚ†tû@êþ ‚ =ÕhÜÒ€-Îí’Œ�Ái੊óáóã�eÚeq½Gñ¡gé¿,`ñ€™h*Ï"«m‹/ó"�}ÐÎtÓz+^!_!™´OùÁ—9.sŒî�ãAég¡Î�Þ\¶‚Npõ?ëš28K:KÚM7Ýnºí>6žo*äidíaj’øŽŒ–›±–»5u|»)Dܘ<oˆ\ FªÁŠ`0ÉKûsf¸Øï¹9Zž¦µ�Râ ¸�7ób�%e €9>Q c@Y‰ÏCÅ¢`«ûö6==7ö›vØ&c0Œ£=F�ñ”sû kGNð}* ÖÜÆi–‚0÷ç^‡¸–OÒ¢5מë@.ó˜>.[€Ûy¿…iYˆ £Êð„ÞÅ|ZZ|*ºx…x…žÝ:íªö��Õðç!ä;S°]_³°(Ùÿ½Ü¶ .Á*ÁŠ^ˆ^(reéš�dl—<¢© n¼¼‘;²8²Xk¶©º©*-aoŠÉòF]æZ�”ü\@Mœ�{önMIn7¥àa‘ç³hu#õ)ç ëLEÙ"\ýÙê?æ#½$©!}²¸ì¨Jú€7669€cdÅUŒ·j]ñù³zlÌÂõË"¶Ç%�K" P†Ø,È0¶ÚЈx[€os –�¯Wæj(ô}çå5;é?Yú½à äÁ�2)ÚE-€ÖxþÞ!ŸLi@{>-Ïì,äÉlïÝBÉ/7ð1œ'îü! ö’í[™w¦n,!Ý�ì ¼ÙÎï¾K(S)SY3ù/öî;œÊ¿�¸MFFÒq²¥¬ì"![)22’qŠr~ÈÌjý�•c%³aKf¤’Œ2öHV<}Ÿû9Ïù�û—ÿ~ϸ\¯ÿÞÿž÷uŸûº¾ŸÏýÝ>=p ®u¼u<�‰~Ç£m?Q&V.:GJ:Vj:e:égßnßÞòî!¼SKut·Ø·hiŒÖîË)¦ÌߨS ¿;E™3ÇÈ!×�·”!•žÝøî¾“±Ú÷ˆ@ÝÒ'Lv³ß*±h‡+ô€žÂg^`9‡U/°ý¸)7]¸È€3ÓšÍÏóÈô$$>‚{ çz\|+ð«06"?Ÿ+Øb‰°CØ)ñC˜ *#Ç_B¶÷Ú.â8©»E¹6©8RŽjïÍe?1C¢X ì¼¾í‰&…õ‡g‡l’™¦ßQù“ßT(öy¿^Þ¹>¶Ô]‚ « «Iìq ìFp/¹^r)ä+ä—Eß±{Ï 1f"&Á/K÷Öï7M„Âg´ ¿2¿Ò�¹û|®î±¾”W1­˜ µØpƒ1{BÀFsu92¶Ò´"%1ô‘6"vȶ6Íò›\×\²ì3¶Øø…^ºx®>uÚŠ5¦CýT°�\¡+GÅ_æêdðsu2Ð\�ô:su½†W�…4=ÛOme¿ßˆþÈ®�º~àw×{}3šá$‡ Wñ ¤SxÍmeÏæ·hÐm䜰±“U.\ÄÞ\:- ¬Zem‘µ¦xWÒ;pqH—µÞBˆ³„³D^f’PÁ<ÞUaœ…ÞD`HÞr°‚ ¨5™ÿžg“g3ó’< é`œ‡LE èq²0€t °ü1„–³?ÓÙAVH¢ª�y‰jõ-RÜOÙ dœ¦N‡6÷<µ+˜·2õGï\_ì]y“ë&×—[¼è{àÎEž‹'¹h‡Š€B�yubìÆ(8¹[r·Èedz|,O[žö»•·ï”@SÞÏ–þÇdz—¯wÎY‡mÔ)Åß�JÝQµÛËêˆ×£˜žÓ<ÓâDŒ™Ê…ÐÎêx¹zc�Ø=îØÀÈŽÂÿT>�÷s¦A—ÌÓEs€ÜÏ­€�œ¶œ¶=›†ÐþQ<ª÷8.géY€onThÈC•~®Éˆ5ë5ëѧÿr²MÐú0äØÝl"àQÈ2:�‘‚ÎÜuãÙ© ©—ÐFÙ¢¤øÄ…>@; N·K:ðéØi«9¶À¢õÅ Tµ½m{;h·Õ��+* ¯ ¯baâ[Éù á>AÌ]Ì##w„ndedEáœìœ|’{K(¼SŠL†šØý*¾¦ <17êÔAZðGþZN�q(¯Üñ¯@ÀJkŠ[Í @+ð${ÅžåabÚe"�_ôrºÀÞ“‡#ñ²~õš‘Ò-çíÍÚb † †ºx"ÕJàaóqÚøoŠÏ·(òCqÂ_ =Š]K]K§Â Tw!^=üµ�1K-Wß#v0ó R&åæ`’²¨»×â†Es³Þ|ð˜?ª‚¬Óo®ŽÇ\Þ�Ør9�kˆ®ZÇ;Œƒ.ƒîó]Ž3:ค¹„ºº}î‘ѾXƒLKc’0æ„£:Ju4P`Ë>c1]?]¿ ÁVx§|ËÕ›úŒ¸«ÚûÒÕèFÂ7ê”ÒïN-Å>s€{D�§”)ìN[êUò0‰Øwq—8àÚ²ó;¬Já=bsîñ¾À<ç@`pÊDOtXâ+)Øâ£¬Õ„¡Wʯ”¥¿Íì#”Q‚çr ‡ÜW«X’î÷†Ì%rgtîªL³³X4�<¾I<Ð÷ÂÖn€ . dUÍ*oHdT%SÛÏB®X=Ñ>ù&ë()ŸåÖ¥ýr>°/è&„·ÈáCÌu¬/üŠb 1­ë` ݨ÷W � �®¦®¦Ýùä1á2$1ÉUÞÃpÖ6Ö6ßQCÚCÚ‰RÙÑÙÑyçòÿ½�z uJÕj Çà´(׫™•ºÛjJ’Í@Áßóþ›öoÿ³¸j[Tabf‹~c^ÕîE^ãh½3¾Ûs8Ö´Èu¬r�9ñ¤á»ÛA©!]É_ýšškǢɺœ¶nfÿ?™‘n]B@ò,sÂ]ñ=W¹+R^(9ss1ÏìkÁ"“kº²á¬cò׿Íl3û»²²¤`1«Ðô®â7’î7¢Ãg/øð̦¸�7ðO¬,-eŒ1¹—ßqº±™mfÿ Ù LùíèF‘ëhò�L˜)“7œû·mÓ_Ø�}þzY’þ�HƒÚRüWФ˜Íl3û»²»‘úKµŒs㮽NîsÛº¬µ�Q]o—úg²ÒEF¯þœ} œ�›Ùf2K _Û}d¢î”îÀ)êWw®k²Æ–xÆÌp¥‡WqüaµŸí€„‘WÒf¶™ýmÙƒËÖAUŽGÅ•(�=£çÔù O¥|š\k.ïO+¨ç¼Ñ(E1­Çi°™ý=Y9…»ilœjš�e|ÊŸCJ\�MÈñ ã²ÚÚ£o¿åõ3üDÞ‰°ßÌþ¿³K¹iaEûÅ;�Û^cûž˜µªùøR¤0D½¾É¼œAŸï¡« rÄÝ¿°?÷¿=Ë09äo6ª¢·üa  ö“nŽJ¤~ƉŠÞS3‰p.½*xŽ= E³Ñ§2-™p—S;œeHu ^bàˆÁ¹Oj>†ÛS£ñ8R~hçÊM 1S© rÀŽï¥@/ªŸƒ‡šxFŠzØ¡-€Íƒ¼÷„Gö j¶ÀCªàœñèßH®ö BDª†‹ß"Šš®Ô]©Ã�Pž�ììãp€|ÜÚÞ…Ó݈K7/ܺF Ó/ ÀÍÐKŸRH4Ü gwŸ”(ÔÃwB+uRÉkFu2Îù_hÇŽ¬/ƒ y uu/‡Á’© ‡ÎFgÇ,Ä,På‰%èyBHM²2?Í.†›@N +�M:M:ÛÏtˆwˆGX¬Á;5E+8˜ú.·Ì†wëVïF�R3·®ÀµVÿ Æ“hÁ6‰ìš2ͽHÌ—ãH+ÐT÷QñòÓžYbÛi5ÃÎÀþy`òüÞgx’V¤,͘\ï»KȰϰOóV…¡¡×x]¶8ŸóüûæÆ%,„² É­¨SÝÔr¿å~øsHSăӴ Ò_#‚Â+l)�Â�Y¤\¼„……| k†¬N™ ïñË}HÊKŠ|Ÿˆëª± 4KŠýRnTË’©ý)²¾¾‹ò‡Z.·\¦=’Ã' W`Y`‰MÂ& žÔà�‰ƒ$¶ÛoM¾ '¤"¤r¹,‡3‡Ó¹O¯X¯x!ÈÃÞ)>_… ÅtEdÜ ÅÚó/íuêÐïNiu„ ™{ýuc®Î�µéø“TÇ%bö3×µ–¤âW‰�©�Ö ÄWžRkã¡y%tI9e_9¼ø!p—PTUTÕ6›Ò7„TÞ㕸áØ~œIæîŒwA¾×*4·wj©pÒpÒ„$Aªx!9ÃAÒº†ÀÛó@ðcÀl‡Ö ),PèUº„R†)3³È*í!¥îBH[-ùçjÜm–È 2µª‹âë« ©Yê~Úýt+A#ß —êŸêï¢ì¢œ~Õ°\Õ â)GŒóŒß>¸®„®¯££Ì£ÌJ˜�w²üƒðN¡·)]�ž¸Åµ¸\Ÿš¹Q§Tw*~v»\aEFžíõ‡ïy�°ò/ÿ"f3ô¼Ç;¦4dNŒÛ³!(ÔšÉðìÊZtHqËÞ§]%´[u·ê ;j–Ð^N¼-Š8,aVý€Ò‰š¯�ÏŠdnA&eã±ã±&Û!_E!ß)›÷BtFÅpZƒ�*E ±pd)òF@§É+§Ù�ÇÜí‡k5ÓHA¡|2kÚG÷?>Ä›æs[Ø\?âÅÇõÉ»ÙO™UšU[= *÷Þû½·µ˜µXàt¡=eÅHL¿ÈóÏÏÚ5š*™*™½“� œ©ŸÙïTgó…üÕûYwf›‹žÚ¨Sj¿;U^¢û n¯z;5žÓ¬=ËA*ュ.ĤŸYò¥¯ùUE”ˆ¥qA—1úï¶? < åÇKÊÊ'E¸áÂcÀÙ;Œœ�¾‘¾‘©q{¡r¼K­8!#V@òÃ@:ÈÙj/ùGreN?œ8ž†|„>©?܃ð…以lÁY~ `…€ÑVvORº €>r}éyZc5!fòÈ�”k±Æšø€d6Z¡‚�æž@F ƒ"r}¢3µ«µ«ïŸõñÕ#á0¥˜Ò±±Ra½iJ3H¸±L «18Éû’÷ƒÕùêøêØÏÍÂÍâõý›™;œN›N›ù ùàÁ(ºÝg �¶«Ê›Ô…«¶ª¶¢ù´‚]ÁNT$$0¦ª‡wʉòy11={ñz9•Ì!•�:¥ñ»S¬•(g¸¸ŸKx­;tÄOñ× w¨¦†.ÂðU¦fO•O·#¶ç»Øa Áa0*<‘Ác±ýYIÊnËÖi@ëÞµ)BæÅæÅ/ÆJòYâYÆ);¿—бØY`ó^»é•Cؘ֘ø‘ø )Üë)9gî‡Åù¼ÈP\NEå’b%ì­Hf¦à€ þ\Êø1Ç/HŠ[ð�Ì´x£e ‹�1'®M�]o‘4^ßÔ�еêê˜cgÊà8†8†‚ãƒãÕ1KR·!6‚Ä &ŽÃÙÙùö¯Ð¬ÐXtTTFö»_€wêIb£/+åç Q¯“‹I™YuJì› ÅÍà<¨"à}aVs™i¦>œt–˜—ùˆÐž"ýÙ�ŠêˆÞ]ÀîGÊ7 .¹g ÏÛíB)ºÖÐÏû­ME‘‚A§3x‰ŒPžé,oP²-àã¾à ‹ì=ø]ö8ß×Ë_/—ñ@H@˜1<Ï!M£Â¼8wØîK@·)³~À§ýôßÿ^ é̽’\¤ÄP—žVk÷›ê�pÜYý®ü�:š­qQ¯×—Êy_ L£s-u¹ŠçÂ•æ•æÑ–Ò–·Œ¿™J„¨éSqk= 7292Éü½³¡³A¦T)R)rëÉ�ÙðNÝF�æ_±ZÕþàîl}gû£�:¥õ»SÜ‹ïá4 ?Æ+þÓÀí„Töé'–/A7(b;ÂŒ~ÿ@Ì’µ |ýçEA>Òûê[ð.¤…ìðÃgø@ŸÎ>Å>åå‹.—.—Äî„ ,3Ìg1Mñü}?*›bý?Ö‡Ðï^\Eh ™nõßøç¼ÿ«;hÌX5îí\6Œ»q„ͼcíW»ïkúsùsÃeïºv[©ñ¥)”ŒRM¥iŸÛÞ¶·w# ´{)2gpgF*âÑæ¦{ƒ>Gñù[}Eo—ÚÍP–bŸÁ“íQÛÛöö¿µ9±©�Dûì6þp€}ýãéé‘Iæq–ÔÑŒ¤w×'#j™ŠJûš®ß­Ýº½ýYÛ÷}a\«£êûyfùs3tâJBµÜVI"œóXFøþÚG:G¥D'û†Ô)­e{û³6ÞÄe� …[YïÇQÎÖ'Äf4~“D¬ØÊÞ›éùxT~'{¯Wøö¶½ý»[ÿ¼¥“Þ~=ÙÈ¥Û7¥ïW”o.¦á!e"±1ž~5Ș6½C»š8Mm{ÛÞþ´m…®ªàøîú=š}¥A”oïìg—¥éÖJ¬Ò§óÍî˜á‹:ZwvÄBŠk±N u]ó�ƒ#ŽÔíZ ázxï;šj¿hjµÄ÷B<¤'ª!s«g/ŠdDDl½Õp&Á™BX¶=÷©H.ùE¢Qøô„­Ý‘ȲöèúSøL[Š“JÉ €œ¢Ý«º®)†�ð–r •ŒÃWWW¥"‹ .™×X¨a æ‡þ^@£ñëˆÑbÆG=£lꮲ®²€ȾH‹z„7d 턆԰œ†b^1òù'�lž¢<ü²ØñN¸½êÐ!o,P÷ ÷<“>¹"/¡=ÊYÜhtmsJªHâ­Zåe÷’9“©¦©¦ T Tÿ•z4,‚ÈÇç!L• g˜o˜ÿäòÕçWŸß+±R²Rú8ÅÖ‰wG®é±\žÄQÅ%¢…»¬[6¥´Ñ”ö¥Ôy¸z¡5=,^¦ÔV3•5|¹§N“’­+B\‡ÇñÝï>î D¨ˆŠˆO ŒXèƒYƒ„HØ„ÜÄèØqé#ôžêqÔ¸v‘`ÅÎbL–ëÔ’Ër•ÕÐÔw«Ε͕½â‡’ƒxû> bu|R#TØqpUŒ”%Dê@…?¿˜ŠD¬£öSüs2^B–¹§Ôê³N”»E=r×l¥rT ¯lÛœ-Zç–���P׈0“Ѹ–Ü–\û ûŠŠ 5Þyë�Æø|LØá¢Ë£Ëù8Ö–Ö–ÔV²k³kÏ÷(ì„7µÍÍ”ymܯLi|¡^¹èãVM)o4•E3 GMÒÍŒ•¬£m•|ƒ²Úî>÷3U²Àå;cVÖxñѼ*÷�IÜÄÀFÈ�XþŽ1Ý„Mýr‚H¥'q!Õ‘ê�ÂAYÿjžë¢F�>³5àtö[„—á §*3P)I)©4â× AwÚ�…¬H`(zý3Àþ±Óg “ÖkÆân¨@Ö…®­§Ô_V%¤.ÂÛhºÁÖ?—1ÇþaÒJ‰É–i9ÔæJä$—›”›¬ rIÝ„×5&[%[= É)d_�˜3à;*’{NËTËt …F¢‘ò%ÙmÙm+òzþð¦|„ ºÞª-J�ÕŽi=¥¾USg6š £­¯€ jaÅâW~3pðÔ½X¾&| {²€„u>Æ �k^øÒ�Py@ÜAµ0àê�®e,Ç‹åßY•Ÿ.P1úáÒÐ�2ý‡+Øk:#¸ËMà{çŸ)0ø¡ît¼##.ú2Ñ7)„xÖ_ÇX΢�£&ܽ„<£:æ-8i=wR¸ôüZ0!\©#ûÝ„twœo­ì¸åÛäÁxQºþ÷æÒlcœøIùI£wж9LÀ�‹‡Cž‡<§øø*9rÂw ߒ˃~8[*[*R•<ËOâ.T�¦à¼­¹_À÷蕾Í1ÝØU<$5$eÀ =‘^×éÑé¡N¥Nõ®¡øÈUÈËv|õoœtá¾™}3»ÔÎdÄd”©ßÚÛÚË[„އŸYz¼fæ§ñá²ÇˆÉJ±>ýâVg–ÜØÈN²èŒÝúi_=óÈJÓó©TXo›Ki¯óšË�áiáYŽí"Âj¿Ÿ(Ï4V“ßûÏÏ,Ilrf)¸¾ÂzOñXåi�’%#nö-[WÝh½Œ|‡ Ü2¥8/VÀ~ŽÂjú€E•N| ,ÌÀÉ鯣ú§y÷à›4¡üôšÎûL¡%4Xw/ê$$ð0U;Pþ�K"P"° •š�‹6‹…ãq,ß à`Ú4áRî_L&Ô¨‹ÐEäçBbé Õi–Ò�ÈD .FÀaÐâ†"$„˜MJS8ú7[Ést,â!}.´WÂiȉPÙÚ/¨î¢}Uz{usm—¿ŠúõéÌÝ*Úoêp¨Û¨Û×d®ÉÄ9Ñì«(‡�_ÇG‹þ².A'Agdêç/ΙHóó‘æÈ)cxSâ½R¯kçé8¢N£bߪ)µ�¦ÂÓ÷Ãí7y�5.Ö†4?;Æ{ŸøŠ7=�‚"·¸$‘\‡OWìP �ßsjÐè"•ÊÕżß×pk3ÐtèD"®»oï¾­í—PÇõæ1Vw†Å‡† ¤òÂÖ<"ùÈdÀˆî‡ÚÜ=>�g÷‹��Û$�÷ Xš¬�Y„|óøV È�¸*âZ,\,,£cêÅ•uëå(†�µ0À#óˆ’K²n`ÙV±Ê´Ê$× á€d ¤§BöMŽKb0ÅŽ@UÀ=Bî^\ä‰ÑÌCæt™+›¤‡ ù<üu•,ÅþÂU+_Ç3sÏx*P]af>›ã9Ì,åìåìe_!×èÏ ×ŒhFxå{凄vd§A Dð…“$œ†wF“X[ÛZÛ¶'*Ñ+Ñ»]vö„7e=ôñò Ë;Æñè·¼�7‘[5¥¹ÑÔï£Ôïá(,®b½úš'ÖLyÑ_ZO�°2~m÷4ö ²xi©–.ö€_½ñŽc¸…¨}òY,QMš¢gãö¶½ýiUÛ�¦[#ÙQ__1çÇïà6µfµ\³èî9]Êê=eÈCn¼ø%ÉÃm=ä¿{ã°+ç?úâ} ÉŽ‡t#Íeh½áÏ�¨~zž'õö@ˆo@Â7‡Ø-1$a¸5›CÈãAÿ0ÊV™¦…”ìÍû(‘euâq7gK•-ó¼þy}ª"ç±r 8šVšÖhd42¶uœì'ä*¾½…Εpˇ–­?¶ª·ªg|àXíX�ƒ°Çû­6Å/úÝâcÞ¾Oî+,oæò¦¶jêìFSZ¤*"pÏ%Æë°ÛçD[•Oõ®8à “}1˜åN¹�TCâÓByéq ®v€`ôR6VG2ÍyBDɲó� ó!2¸’“9ÄÌÞá²èÃÎLjˤ†d-C!�ïiB¯Uvdr£¹Ñ L�(iH‚½:D÷c -Æ÷u f ~çJH—?p¦³ã¬Ž=$¥/L?ý'›*!â͉z/›²b}—ÔÜŠ©>:h8aƼ¹”ðO™¡.¡.7Rk‡%êá Ø Øvíßµ�óNø R…O3 ÿ½ãÜJÜJ‰¹ñéñéWj¯Ôòñkƒ7¥D,(iàÎÇj"Ú±‰�¢ |%‘·+àØ\Ù\Ǩ‘þHÿ×hAÁ‚§Ñð¦jÄ;­—‚§WwfYû°SlÕÔ¹�¦^/íÓƒ»nª<‹µ`wAØIñdIàK|·§ €å “Ú;ÏþÉÞ}Gcý÷·’$!„¬ì™…ì2’22*B‰H22²W!22Ò¶•({dd}³úšI$q{ßç:×}}>—Ûïœß¿ûœ_×ã¿×¿×óŸÏy/á ´™Øº6 }סvÀ«>[KÌ«Ÿ³d)ÀKCéE\eúeúßÅ.·âÒÁrôÂÈr.�³�‡â^ï£u«~r Z.ZîÂ($k9PÒdA f>No(Ÿ[€gçÎ4|£ÃáHEɽÓÇ©ç‡ �ãJhâsïĺ*±÷z�ÈZÍ »qŠ›+øQO”âžâž ïMv¿ i�e�eÔwÔWDßP|Çmȯm¬õÁ^¤Wï_½OW[¶[¶“)MvJvúN^Ï‹Ü?u™\yÕyÙñr:‰ôâtgã¦ïböOE¯§åP[(÷3üý-çWÝÂìû:Ñt¶¢ÂO.»å†õžF�ê¶xüÚ“i×*¬wŸì?ÚdÿcÉtI_]>W¿ZÁø–÷^‚÷ í[�âBÜwc¹ìɹX’�ÝÌ�¦ZûˆüõNÓOû¶ Úù�â�@ ‡S�ËN޵÷¼I/>ìßV‚�ÑáŠS¸ä´ä´|ņë�–Ö †÷�-Àí«_5Ëò?¥ÿÑ_Ì^Ìnk�ð‡úko�@Ól„‡1;€}GË m?ð9,¤PÇ–´A¥Ö;Õ¢W•xñ‰Íé¨!Ÿv¯Ý¥Ïªíü)„V'Ú�ðŒÀæD¼³òD¿‰~;Ò&œELjDKu#êÆ±¶ey¸–u!6�êž„3RîPîŸ2ƒƒsb…K…Ë'±HÔ¾„‹(£�'­ïrf£oN™œÛª)£�¦ø£ö!IZ?Áj>Pœo±C‹âš�e"�úÝb÷£G~hW]�«Î”(@èe !%Ç>|N(vüó[–Ï«ÄÊØ÷—§9®ˆ=XðMs@"÷¼pU‰ô1¤Âó¡úÑϰå\ë\kÆ^èö^¨á—Nà7ˆ1c |–ˆg}˜ðIÈ&V³¹ ¡›Ú¤œÏµsñ¯àQÔ³1¯!ò°+àÞ'çp#_/Ã`s¼>’9õVõV¾ÑƒNNÜH-é-é¹—r/±ŽûÇ©ÍCfh¼; .!�’9%#~´ñh£c—7—7�†v²©�-¤¦‰mê#ªÌmݳ¶jÊx£©ËõNµHD†|»±øƒ¨4®Õ™’¼°B[²=î ŒHíÏ Ÿt/Fã½ÞR 4L©Orþýš±óêJŽøÈ«ÿ*lçˆpùsûs?™í�ëR V­3Æç ‚’À#¯ý� ¤ž¨2áÍ‚Óv§í\¿@—Š „¥ÚÐC“R cÀ¢ˆ™ÑdÄçõ`$×ü‚ 2®íÖ6OÄ'4¿QŠºh§Õy·g-HÛj»šxW¾ØÜ é á*Ï*O»Œä¢ 3¤ß¿…ǂǂ<|/o€Ê.¢¥.}“@jŸlŸ´�WÏ%xZzZîYOkD6µš°—À*K’žxÛïzƒ‹a[5ur£©Ô«i¦(w¨Ü±Æ–óÞZ˜˜ª<¿�¦<@N0¤Ñ ½�¾"‹Ö_£, xùt,úF#1X½~z�ñ‘ëmº+2mqùxøx7.èáÊÁ¢x�1’aÙÌ&¾ †—/¶ŸY`¾òiå“u”¬ ’S„HßÅ’c˜Z*€OI¡%>‹e‘Úž¦$h0ç¦JYÏ·q||•ÏJúM‰×ëÍ7Ý[wœ”Û;[ž·9jûqÚ3]gºªGi ƒö!�Œt<ëxƦ`$HÄå:¡[°Gbìbìrsç°ä°pþªôUɹL�Ù”Ù¬ŠTqµ]¨¨wT…Õ–w›l4åÔeý‰NëC Öþé¾[¾oeó<ìÐèÂYü€�¼t¯A&K4QÓHNÀ¤Y÷0üä‹Ö�º+>±Ó÷³ƒKǘp%I&I^N¾:�‹Wëú+Œ#O—�]ž;z!cA±¸6ý�{÷&µ¡‚2H+­ö1Äc¢¢ˆ!Þ0ûÅÃ1øìýÌé_íø 5ÈSMîbíù‚éó;ívSS‰6ÜsŸûÜŸÎ{j%<Þ%]œ¿±¿q¸ÃM–µ_HjŠjŠìëìë\d]? k¡3ÐÚËÍX�H–H–t¤©U¨UÌv‘T’Túººwbš²!‡M±øÅ+Ý~ç™YéÓFÔÍj´Õþ)ä·ÃÁŸoè¸$k©oŒRzÔ-Äf]ø¿™MúVÓëÈ黤†µ›P­Œ¶Pü´oò7âð ¥�íôd×úäX×~ðûRëŸÙŸ˜­i·±o·{TµÃ¶Ä¬NúËjÄ_‚+Ûã»íS$Îut%Óü•§õŠÙ#âÏìÿßì(màµhC-©kœ4û¨Ù›SÔ�t.m-³dy3³m�¦"Ç·ßpÉàÏìÿnV¿Ò¦ñ:›N3lîølÃ{ÊöIBN;þ“‰.<+óMֻߛ É:yÐþ™ýwÍò�„W ¯²õù’×?s{VÕñ›QŽ´ÕEq› —šy1Gø0e㉷)þÌþ»fÕoÏÓTú<útÛº±ßÝEf @fÙìiÒÛ¦K„1]Ûžr›wW…ý =ö?�ygš²L—šïå˜Poº&HKŸplDùÝâÌRuj¶b1ü/j‘¹—�/·ún1Ýøn™2 ªA’SóâÀbÏ0I\-k¦kEûÁ+ôäh F?(#G‹˜ÑwÊ…é2�îσ°Ž¾¼¥…ÏÞöU ŽY¤W²M²��´éU\Q³Xcë*Dp%ªã^�ÔD`ì™'16¬_¬_Œ¹]äÓWˆ�ŠAŠ›I‘Çè+hÞlbªøp–Ï’¼å»u aúˆ—åéF=ø«²DCª%+ÄÑP�s¼ÏúZ¶Ó»mEí^OªH|Øch:‚Õ7-ª‰AáS ÌØc/®òÞòÞÀ£‹¸¬÷`u«`ÌÇÁ[yæ‚–Ç “2 ª ßÒ+3æ2æh« ÓPjxj”l'�±,üs$IꄼÆ5|2,€´À¾1ÌÉ/ú�bžÔXž$|td–™üÕϺTš—F°Æ|™òZ»Ýïý›³�råï(ê(ª·8[™'�¤‘¬‘,š/šïìú™œ#²0Bëzo©ˆ4?ÿpÉEÅEEwèûv¦udS‚õ¿eK—Þ6¿ôËH§Úª)ó�¦ ÷ìDZÙ]]�U)w�Û*¾y×]6´ñeU ØðCÉÁ;é¹h´Æ”ç�±R{€}Ž~«ù®V>#Dß»F=%\Š>ì�¾1b©]ÅèP¥ˆ~¬ÿ~9Ë_,³¸ïEéE™2ÉpB<Ÿ#ÏBÛ•ë1lv\Ó€óMz]|x€ºå ¥Ò (òíßAe»úuð ËaÜoÙd Ÿè½CèÍDœµ{É;‚ï›s95^èèΰGœÜ�4Æ<Æ<Ñ9ÑY­;ø`® 2²Aã_;³€”šjµœNŸNosK‰T‰Tèñ×ÇȦvй•é¦É×dò›D¸PïŸÚª©SM•±TAº•¹£‹ß÷q¢ùAnÙhíŠcïW%rÚ‹œÛÐXëG¹ƒ‘øn vß‹,õˆ‘|¤\½�,ßL\·œo9߉lÁõÛ +C¥5È`﵌„n�ˆ¹Í‡ÝiÖåÓå“ì‚0Ç… CÁBâ%‡�ë?€üÌõX|:�ñ�k�öByŸOìÎj¸“�Ï—ÈÑwÉ_/Y¹‰Ý¿v̺<â°¯Tßæ˜ˆƒ»]õ\õÌ žD4"õ©ö©¶+·+¯¬d û@gÊÐÖ{Õ¯#ñgògri^4¿hÞô¤Ø¦Ø&váª,r½ŸK3:ÛËåÞ�L¤¼Oåç[­÷“ðJ3K|ážð:ºÀA¢Pž¢’}e)}¥ö�qâ’ÄËFÂ7L&"œ‘µÇ­ÅÖpü-&@ô×ûÅ7Yïz•i¢4��dNôléV­[l´ÓÓá‚ÄG(U‡E^$nxSñWô*ÚØ5" vþ¦w–U*š;?ð2ì�7PÉa¥Œu‹åÎ)|®„Âk>ÕSp ¬}ÑìÆÅkŽešŠ‘mÜt àm�¢„ Ùšõîùë^Ô»¨÷ýdX 9±ë¸Cv ºO^á Àgš#·ð)|ÿ¹V%©�¦u>¹N¦Èƒ�½çSn_÷W±Êº6ê§HR„£CŽv?æÜ\ðp¶Ò¢Ö¢á^)vs$ð"®fªf*�ʉK¾ò�š½^25ŸŸ‡ä"¡3¡óˆƒ›‹›Ëiá+Ȧ(~ùäÜÝ¿}pÒò1‰óø�Û[5uz£©W¾ì,HOnc1/Z0«_£ÓDkììrúT Ħâñ\ÓqÖl<—ðO§óæ»L9±¨L“žãsNe™ ªNaÁÕ™Ö™Ö{_¡—d9ý‡]ÿüŠ´žAăUa®cF·hYiY­º¡˜³u«Z ô�š’œ¨6³â£Xw¿Ž�s�o+ªô ªŒ¦yý“+@Ÿ•¸…�Bugú¼JóŽ÷ͨf=‰>¶¹Sº'y=•<•Îü:­ 8ˆ$’*’Jö‰ìÓS:r«S�2Z›Þ¼0R}H}iuouïro\\ÿ¡ã¡©¨=$£–1wÍ"×þÖí%SŸa ßª)Ë�¦8Ì- ‘(…~ü›²n9ašú¯çѵ¶ÙE5…t±yãh'–Â*€²Ï!ÀÒHLë^R™>E‰—€¸¯ôÕ¸dÕeÕƒ®s⪵ÄZºŠ!QO%œ¡Ø=lùU'} \þFÍ�š{ ƒÄI~d:§_ó7|­Œ¯HkvÂg¸, ÿѺòY«Ê¹5ÒýŸ7–{ôÓdƒ…×S%[N~{³9úö&»ÐùÐyéûIƒœHÄÄ,©,©i¿'SBÉ­hêWƒº�ŠU‹UãSc c ]+\+ š¯ÓÔI멾©>gGȉÒ¸€ÙÉíðµ ãÉNÀf�õ,Å'CˆÖ¶šñ·…æ¶}6lî ÷Å'ÐeWuîéòÇ&é{JJZ 4×så7÷�BjšJ–Jv=0Ú�±éÊð•áïUß«´ŠÂã¢j F&4­ñ$ö�ìï¬ œ8©HNÁGÁW>Zʆl*H€[ÙµÜèt÷6Æib«-ÏÉœÝhª}yMå˜Ü^¬�Ö÷¶l'™Ó ÑȶéöïØÊ·ó QOÁÿ×ö®Ü7@†AþÖûKjø°NÃ+=¦{fÕqÑü¦ù]©y—aVœ.†±@l0~Eï ôbÕ6óš·³q€g€g® 4¼:Ô–ÐÙ‘øåc4��à êi|†�ãCŒdâ Õîz»dY“~|ö �º“®½ p9ÚSâúŒZ—Ÿk�C¯ks§R¿ªÎ÷Ï÷+Œ§ÛVõ#õõµ®´®”êHèv½…ŒÑEô¤‘À#u/±.±3KK~ Ç4eO›Rtðqû{wåßïÜÚ"²e…±“!’ÈNÙ2T”=[ÖìKýPYvÙBd)Š´ [Iˆ(&*YÊRI¶Ç÷ÜÏœûÌ=ãøã\×9Ïy.óúï}ÍŸïq͸¿ŸÏ·âIêˆÙ´w¹ˆûfÏû‘¿B§MN§ŸRm“×o©*öŸ*›ÝÊþ}²K;d#ÅÝH‰UT;øbÿù¤ó¯=&o¶'…ÈN›vKjˆˆ2êˆÞÊþõ³Kƒ•¯O˜üâ‹ÌZ,Vîs.ùò¸†,[LVWI·&«ÔϽvÚE·c+û÷ÉÈÂSê|’.:ö�¹Ë Y˜S:�QðÄ2ó™kòIN½½oY€æé Ýʶ²µlÖîÚ8ݤ‘¼"õqåí# ý/_ÞL,?-¼Tì*1Ø4¤Øø•UWo+ÛÊ6Êì]Ec^Þ¨ ׫07hUmÖ9l"fŸ“nÎr£“L¬¥Ù¬ÖÇ´´®ú f+ûÿ™UÎ|&Y~“¯ÅYóyvE¨Êa†/çUá‚ÓL³{µ�©î�z5ëyº­l+ûŸféüG4‹^Þ^¼ËeÙP''´i�-D%wU|nŽ–×]Õ ï©Ö`Eç“7[Ù¿V†ö1&Õdœ¾Ky6ãžö3e”uS˜]äÑkýA¾Uß\3?*å×ïæå·²ÿ»L*íY�àáã&Ë㋘µÔžøÔ‹ì$Kî5W�•Íõ^�jHŒçPWòÜÊþw23ƒïîš÷ÊÕ?»Q·C©¹ìùügÌòDðóã$9Ïw a®æ67Hne ’OZƒ±¦#ÙŸD¯þª°üÑï†"¸'©Âr2ô7m~|Ùé.¹vQËÍþwÜó1ÆY‚ÔJ‘`›Š3úN'Ô0#Ehs~�Ëz#5ÄÒ@ÈtÅGè³0rxÝÈ2`=õo‰Ù£ãt�÷¥à MM–Â&|Á×b+ÐÃÙoðç/ ÚEUR-ûÈð»€^xzPzP1+)¤µÑ‡óÛˆã‘d ÇÄɉñ�~Žùîµ,€Ö×X"Æ÷F$¹¤Ò⤺˫LÝ�†jM ‘§câ™j³ ± 1ÿ­±*Ø„ŽÅÞ§¹O£{žæxø6HP!!A�6¤ëèëèž’üKù—êœÛÂÚÂjÙHë‘�Jêd;R–œf!éæ.Îõp³NY¯wª×Q§©OO\Özi[\·jˆ›¡ªùhpÈ-óËÐd1–ü1!”Ùh3 çÈôL¯�Ƈ=„=±ðv÷)˜·)ÎÌ{è©3¦gm2í\ݦ—n{<çVέû ù�ž³Œ–�aužJíA`Íx3¨GŒX9ðè‰Ñ}[WHãc–2åˆ�¼Ä˜ùö¸0Ë›½ÄØY+çÌ�IXŽ1ÝØE.27™2йd“�H–�–�T>T>4ud´"®�_‘„ö ag�ÀÀâm<7xnÈH›q˜qèE[÷#;5§Ùï)t@1µ-wß׿8ÊÇ›uÊv½S¢ ¤%H¾WÃõaeçØÝî}Ûá_Kèd`ÎÀ-•ì~ÔjaŠPscf3@ñÌÛ oÃÀlÕ =ŽH6c³—O‡>T* KgÑ���ÆŸ‡cÊþW�½þ‚9ŠjG»\]¸º0À‰�,>‚$þ»„ÝM3 œá'²lp�ýN@‹ìfY dѾÓñ„—81˜Ý7ȯ›ö.?¦2ö]*,Ûåã~mfcRä¯ó"…#…}B3~9‰äÔåÔõ+üW¸bïlXœä#Š�Ç�ÝÒŽC;-ô½Ç¼Ç\åæ½Ê{5•ƒ¥Ù©ö‹‹ ;vWæÒå�b ~enÖ)»õNmCQb‘ SêH`1ƶ_l±¥\·©Õ�%´èš–ö´N-¡‘v6ÀÛÿ,ж°ôVl›=KŒBÁŠ;�ç¨)ŒON\Nœâƒa¾R]ØYZ´ƒ†Pj”¿ ¡eètÜ»æ”ꔺ¬yµÂÔš$ ):<®…Sx(ûTœ2h!Æ©˜Žû|GQV`›ñ¬§'Æ‚öyiwòhKª¬èÜ;u_UnÚ‘O7(:Û>Ú?Úÿ”D�ÒFérßå>:+:«F�†&ˆ£¡¬Q2ÒJÁJAhTi)ÏHžcžãµoÖf¸N}ýç9ê¤$1ÌÎ]J"sÌ¡2dvkè�:¥kåà ÞO÷Ï.‚Õ çž¨Ý¸³3ùp1K&Õq–“{ÒD¸O%Oš!•¦žn·b²cTK$M îÈtqì‘æaAÞ;c8¿Zü´Æß³´$#â2•`¸Î| Y^ŠRÕP·žFÓÎl5.Šì¯ìí²vM2‘r”µÈsÈ= ·%­ÐÛ…%PE[�»ÄÞI°w�$âo’oÓî+ œšònoöù±_ÿü¨™²9 �2¾ï ó5r<>&;”í@èGQªÀþ½»Nq±V›Ðr}pÖóx 0Yà»æÛæI ¿§�p^ú{{û,ö)“h¾ EüU^N¥Kð²h¶„ âßQ-¹Nㆢ!V¯ ÍÔÐ�Ö¿Ü’×â.àäÄÐtAÃ1¦wÄ€[ gN»ÿõ`|;$ó™3çhßÒ^b*Òý§üI’>}°ó ¨á�J¢¿¥Ô¼±lW©Ý¾2¾2šÕ¯xíã�.+\Vðf÷f/axàì »N¨-Ø9©}¾}>•#éOÒŸÏ®¼]¼]ú¥;��Ê‘Ù/âÐy¹…sµ #½xúóf�:¿Þ)úL}g¤D÷Âǰ7—& æÍÃÊ éï>×aEnFŠ ú½#mxtå@2õ²¶mGº,1úóHàÝL.>‡‡úc6eø®g¦þóåYQ´ Ž%Cj„ èq/ÄÜ�¹[¤YUƒ<꘧†”þù0‹ƒ¢>w¾Í�-‰ñ÷¾§ Zƒ z=ƒEìBˆI)¨ô»9tvíRgÜt¢ÔŽ2ç‘/÷6¶½ZŸ´”´ÄÀðñ»Þ>$úDúD¬ ÖdxEà{„´€Ð^×ÄŸHñ‹ñ‹ól‘Æ‘Æ5Q¬Ñ¬Ñ»éx‘� ÖúCï�–î-ò{èÝžV¡Í:å°Þ©·’ô®Hݯ:ÃX÷¶]¹Óù$¥s’ZÐP èüDIñ%½˜’ÐpùÛW@ƒòjPsì‡L¨D´’þ^màe8M¾;EwŠ¥gñ]ƒ©1âD¯Žï”SVÃ!+U^(λ°Œ±Ùrx?$ïJ$âÜójÎþ8à�à˜ëÜFL¢`ÎoÇjäij<Þñí’(šctšÂ˜Z¦i›wS»pÝõ�b±Æ·e#p£d¡dñ®ýøEy©D³D³Ë¿Ë_¥Áô÷½ƒ�XcB�YÎHYâYâ/Ì9Ó8ÓFÒmçlç¾^zL0—äð®—R@‘½lѺÇÃBWdd³N9®wj{ö}šÅiX”áRH�øvŒr¡Œ£z @²‰zæïŠýœ„zçÙÍ€ok—�ª“èǰßu4½ÄèFph«â¶øT‚T‚z<×ñ�íåÙJð—ú»C= ÚîyMŸTcƒçÍ?:’ù’‰*NÉ‚La˜Ýp< hŸ™Z Å01»Ín‰#ž&)®󺃦ãÄÜì×=#A‘äÿѯJºrÏ-Ë‹‘ûô3¼6VµË#ÌxÂx‚«À‡Ý�dàeàu›þ6½BÜãfˆr!ÅǺHnwÝîîwzðáÁ‡*ƒLƒÌ1éC¹È¼œ¯2Š9¥Öþtl¦û,*6Ü㌛ÁC~?ìªi©gógã|sØö e§QM ^ÞY’XžVtI}³½z†ßâݹ‹†gðÐÐ žÌ3xŒE‘>½×Pºr.@že¶Y×�Ö».sÕÿ9–ù,'ŒÛ÷kÈ£!�‡Á#„ݾí •ÕÞsPß%ôÀZľӸå*À¶w`Vq/ß�˜€9h„o‰)ÔŸkƒkƒ¥±E6¾¹»°Q>œ¤ßŠR€%kÖ$w© ]?ù•S¼A¼�þ ˆZ.¤W…ñ6¤›ä¢Î×Zàpî¨g*1ݲ€y}T®ûw³*&,€)Í3µLiŠ1{ÞT䪼(XÚ?¤‘$±1Áåü÷àþˆªGGx‘C=kŒ"Œ"`MsÅUh»±–*ˆ�ÍšÒRëRk2OFcFãÏ(yvyvÇÔ~d§ÚØÑYû3•S­â<Äœ=Ë6ë”óz§|kìd‘òF#¢`ÏQUú´O/_W0$Ô‹•ît¾ªhÍýúƒ�í9òuÈ…N@�J[Æfšð’½1) óÓŸd§dç™Hšb|aã8*Ư-m1:ˆªÝh1Uuˆ”Ÿß=%H¡¤àJéËš·ŠÃžpˆ³º6mÄÄ74GÄÅMBx«½¿_(YU!æÎÓÖSVå’ûĵIÅ™ã~Ê¥È%ýo`ãªó»ò»^èv~'ñÅ�;þÙþ³½ÐT'g×yˆ[,¡½ZSœHv‰v‰œÖ´»hwÍíkYnYîRã&˜Á›`Z¦h=´¨E£ÂرY§\Ö;•ÇyæRï#÷(˜±¼Å›pñÒd/B‘”þãÅ®-Œºžv¹‡�¦†ås m":àa²§�í![&fÙ®9Æš]Áw·înÝNùÛðíV„ÕVâ��ç¾ØŸã†Ü•f÷;µ +›%›¥  † Ý;X Ê'•epTµ�ž, .+C€“À= Db{6¤žù’Äán7b&<¬rß8»*ukÿ<☣h¼Mžï£ÅÆ~iŒ¼ÍÍuúÍ„Š¸†ôzþõ<˜QyOÝ:”Â!O!ôæêcGG•�›º™º™ôdH}Hý d§uȯvu ¾ß]Hß�_}z³N¹®wêq„S%R-MfŒ²¼ì¹Ö˜š0…=!gèG+‰VÇiqñBäTÕ”g€cK¼‹0w~írbH?ÒÆZ—'“ðuîêܵ[áÄ8¾§aõ?qŽ-Ñw·1ƒsž¡oQ‡'¬ ] ]Ê« eù�W‹?ü …ÇÉq Öhà‰¿1 r—ns>]"¤­<;¬)jEÌ6²??=ö³�(áþ“«Ä^DÙÅ­³¸±žy rmíÆ‡!ç¤_ò¿ä¥�¥�Ÿº7¾á†h·ò�õ\AÚ«µWë�É.’]žìmìmi&‘�Ò3låóp9RU-½š#Zm¶ûËV¶•ý;²ÏÎÜÞh#öÆ 5ؼ,cìøK5¦CÿêÝC[Ù?'㻦n§�ùPמ\ÿeBÆrnX/üÝnï¬óŒBÓö’ë ªuè»c+›½Ûµ¡$!ÙãY‹�á§ÄCY¶˜eTÿ˜?}©ýÇ ð͈¯ %IkÉgAŠˆœöŸNŒjgᥱJæ#p…ï,àöx^ˆÐ‹Ü¹æºðM€�mxªù8'/Åðâ¾!#�y’cnÅÌG#ë½ê½”þç£Å AÝã3‡¤LJÝÄ1AÍi@�O=1ùa@¨¶ö×_ ì �ì¸[YÄ,þüõÝϯ'S›�ì�ñwÁ´½g²qìÞ˜mï·£ÒLÒLØF$;yàî¡ï¡54¨¥�h¾¦�P‘# ÕñÛÁa“±É/ú|Ð>èÓÄ Ä ¬ÂGJðN9²ç¶³Ò ú,.^xaDg¶Y§l×;åuµÀ.óÉ_ïÕÛaYÉš"LŽ® ébÿ=I@sîš§a�'R¹y{ Vhr`[ÅS+Ñc#æƒÏ(�B`C(a:aZóFåBÒdx28Z;;íŽò �™á‘ƒ4¨j^ /FHt|@ ‰‰�…¸Hy$àìëÜ €�8‘wÄèþ·ŠØø›$�næ‹ÍjcGš‰õˆÍ5Î÷dæR ôÞK12ÑØõògÝÆ¸"}Æò,ó,õäru÷0Ãõ­ô­XYa]ØŸƒXE i|’£†›ôžôæ(50ộˣs¯2'…wªß£qû³�›n™¼’b’<›uÊn½SöçÜ)átMK"ð*Œi\Ùº}ß™Ž$¢]e>žèïo­&P�tíô¯GÚ§@9†Ä�ôOZsbê¾¼ÝX4δÂ|Á|)»¢w’Ф+ Ní+À§ÛŸùXÏS¤h©®l£d£ôi?$;‚–'×�}.èÇñtìå�½êI¢ÄÌf>�Â.6�”ác¥˜{ÚÄÄå>O@)|‰SÔkô. ñ ©I”pߨTd‰p‚N‚EêøÅñpªKªKàv|£XÓ§aHmM0Ï—QóNbRLRGºjÅ•I~lcbXeO£ˆo˜ÖòܘSDø0ñøŽïy«› ‡‡Eúúǯõ„êDUIü¨¾)Üjôjô@(©©ÆíßÏÊŸ•ox0ð Þ)…ŸýÏ_ zd¼ŒâKسY§n­wj§t: îRî_ƨVœöô:*Ÿ&)FrÉ(£Ø#˜U»Ñ]©H˜mÉÅ€3c¨*@/ùïܧ Pb‚�é&�÷mõd„ÆPc¨¹8¬¡):<#œ*®?C�eº8$�Ê�<{êa^ÎËœ—'¤!{T!úS“`æFME “ø(zä1ö kŽã´‚-Do>ÇŸ>Ûæ1súu'?w;ɉ øg¸¯ï*¶Ø˜ôjˆ$šMþ⛺ñ8‡R‡RßVßV†Syn?Š!³7‘¢’×DájýjýäPM¨&Ê3*+*+ …¼Qðs¶&Zo~m¿ðHñäÑ×;**Ú6;g Ÿ£B©ß¤éç�¿2’ssrÐÖb{ï�ŸIU,WXŽ}¨×¿¬ÙÎô¿Ÿ³•Þàœm�Q]`x†—áÕT‡©wÅñ›uÝ̾ˆ˜3Ã�/”âEŸ¬”ëðÿZUE’¢ÝÝT>N#§ã6µA’˜[©P5»¸�Ñ0¼WjdÆÄä?S tÅî&”,�,ÀY¦ÇAHPo$ç§Y�:À&5Z ‰ÍfkÒR%7'7¼ R[ ±éQÏ�¸ReÓáLðóL€…’ù9bÔwL[Ÿ±dÛ•k}æ¹+1üÔ¯³Ö„«“íïËœáµÙË6Wp£¨tcžâ¬EzÌzÌÞ3‚bפàl^Ù¼¯¯x”ä<…†Ä» uQ;ÅÃ�³È‡v'4&4Êg êêè®r-"vÆS=µÊ±Í¾tÄ]ö&vlÓ]AŽë�¤£x ÜmG‹§¶SR(ˆåq=“?ÒÈš 'ìŸá*Ô2ŒÄw�©ˆ©ß ,JY«ã…šöN�ÍÚcÏÚúüéó'…s…„ ð¢SpNù0óì¹ñI÷$9î˜Æg…“…“WM ¹e�½ñö‹�k-Êe8n�ÀOÀ×–ê!1´Àð£=3Û EŸæ%{‚fˆiHxª+¶ K)Âb+–o¬šîøçÈ|éøÆtM†©}Ò}ÒÅW”?ì�Ãb Áòø·÷'ùÙÚ!ñ:H‘ý˜e8^E^ÅæªÁÁ= Ì×™¯×½çó€wjm,(b¥£×÷ɱ׉Ú.›Î8­wê‹Nk )ég<¹É݈FŒ’ RÆ0÷-ÀcZ`©ì #+R kF$ðTúÂx*šÝñ_M53ùÓYøã‘Ð,!¶¶�å6BIêxÒßp–t=5�ô‚HÕû?,¬‡ MŽ›_ ‡<8é:ËA ‰68uG\М¶Ù¼;GL�"€AïªJR†ì]ýJZ©|ŸÁ“WzvÌ×…„Œ˜ÎeNh U§ªÙX9g,æfËÍ–%_ùæ}GáSS_ú¾ôíeîŸ?-Ù¦‡z¶OnÙtÙ´SEjRjòu�‹­‹-Môˆ³Û b¬²ºÔìùò¥Ýo³£úz7ë”óz§H<†+ N݆ÇgW­!‘8¤Íí�Dí9hÝÉ-Š <†d%²cÓð«bú˜ñ$ Fùˆñ¡øÕ°xÌW²´t,ÛÖBèU5;NøŒˆ*°Cr¯8¤™#Ê™'®dqÔ}Ô=)‚» I�úLdõí;NÉ<�ø0­�¹OL‰ ”qot ñ­‘”°uŒŠ#†D”�š)‰îLÉTCú9þ¶]Ïzm,u¶ó(¸eɇE¿´Ä îϯ7^odœÊ²Üâ!õvHÎ×*àÀ¤Í�þò¬ò,OiT/ª—¤i6שÆP§ö)œKC›25.Ì:ù]²2ÜìL$üï¼ÿËÛ­ìÿæcö軫ëµÜˆººg³3JFò=ê!ª¼moî¼ó™ ª°þ:]꺕meÿ©ìnžñößÅØ|Bmýž–¡YÈ¡¡XQ±ý-Tíqž¾¤Ø‹ÅçÕ@ ïím[ÙVöŸÊîï¿”#Uû»Ë½¾Y«=‰bŒÝÑVKC÷0Û{c]–ß&íì ú¸+r+ÛÊþ®Ùí¸gøuÏk3YQQ�9_ÍÞÏÂkBUæÃþÜ® G�©¹èÇÂxHï¿:ËäN:¼&ô˜rÄBj.;Oð÷Ê÷Ê¢ðg£èæz£NÏDÖåé�@ÏÕÍž�\ÖŸ�†Ö¦<á\PKãxù,Ywu?…÷è#ê:âªØ{z6!ÕŠËE¢dµÀrâËv© bV”)ì�‰Ô0iBcÛǶ£H¡ q.á ¿Ä¡B‘욇dÛ2Ñ÷6T�Ÿ™ž™ž¿ Á]Õ(ÅP¬‰í´ÀYÈ‹Æ`êPb°�Œy´Sª9¤¢”ž±˜Þü513NW˜ýiÕU„š0Ÿ…‹ûåìóN„l …•mu;ìv8BC›‹nnèøÐq®"®"ÇuhYk› R��ói8÷R÷Ògc5Ñ5Ñ�·Ç)Æ)jn½ DìU.—A�£B§D(ó�óßÏÛ¬S·×;uW+ENÛƒŒo‡¸Õ�Ç‘É|êHúü“Ü€KïΠy72!¤kq¯x�ÔØÞRÀ<+��wþz%1\š ^€L/c!!‘‘”]~þï™iâ᧦µÚÈ €åÖJˆ·»l¶ì¸ÝÒ›µ7k�/!¸w+iO\�pŸ¹\Œã ÜȦüÈÏSP PÄwÜ)Q�H™e¨è³¿&ÆHsx¿½ßêÑ1¹céÞšß¿b–}7v‚=³¥½©½é°„d¾A+\JsJ³V¦V&ÝuNUæUˆÍE¤×Mk½pÞÞµbö9ö9tÞæ²æ²4c ˆ;:óÖ2ºyÏEšô±?jÓß)W°¯4åÆ\ºÇ)¼æýß|*È»„ä¯w øéÜ=Ïëઆdò]’†�0ž¡Æ k$ÆE(Ô ¦úRMhåþÊýS熲 ýõM¹eŽR¥»6€½ƒû¶BÏ`3T0Q0y~·1<¤¯Ñì(”Æñ›:_gÓÜ'F-ˆd–:Ë$ ‰íÍ �î;LÌcôýUcßÑ32F¶è0…Oo¢�³.lÌ:0`L®K®‹¿’þ ˆœ[¢[â‘°#a¦ŒäÓ,}r6¤�ÊÓp""9‹9‹o$’—’—V=åã@ÌJ>åM3ü¶ü–¸uªâ/Ôf�r[ïÔC½_ pµ²ßOàÕ¤Ûþºr©çµkÒSõ. ÿš®2Ç‘)ùiop/ÍÖ (÷kèÄsT}Ô@ M�Ñ1 ªÃ�‚PKDKDøµKi„®añ¼Iq4� 9E‡!WCÓL‡¢Lš¿zõõ…`~ƒPÞ¨™€¬^Äѹ ¨r,õÕÄpè]¿©°�CÊ�±(4a„ɉñéR(RääK&y5ÅžB&œqJ€váèÆÚ®çvjjYõ�÷/‡¤¤w:ïtž…s¢[ÎâíŠD©¸—î”îäêàæ�›£;ó“ó“«®xÁ;ÅLûån†M!—ÎÑ´¤#X,Õf�º³Þ©Ð’e=8}Û\s<Ç6§ ýká–vHo,tó�l~ÏɃüѳHœÙ'›€v.oà®%¯^ zª!1á–s]ç!Ž~ŽþàË ¹¥áITâXL?Á"k‚d>Ù]w-'Ä~W>®lúÂ,ùY¸î†“Ò$÷÷¶9Åc©øŸz6ÇYYõ’Ð�»ÌIÌ7¦'3$gü~ÿ-kïÏ‹/N“}, ¸±÷ÝÞF99™<­n•ûáŒbŒb † †= ·ïLƒ\¿ƒ¤†ÕË�cäbäÒWñkñkÙÿIßOßOý<ö¿Ø»Óp(ß¾àÈ^*B²”5û•¥lÙµÛBe*„PÙ²“-Bd_G™ì„Ê’%Ò&T(ký “”%=ή{îi®kÜ^<Ïñÿû¾ÍçÝ÷õ÷8æ:g~çï’„Ïè�ùÞ‘L÷´¤ Šh/4ÛºÒL|×k¿X— KHÌOGI–Z;wíb5!&|ÿ ßùtZ 6Ë=S ·ÌL�uS²pá‘o¼ièQ…•ºîÞKÿØâ3þs;Ñm6‡1>öçÝ¢H½':#€u‹Ðäˆ!¤P±W‰¿/çÎÛ@Û!Ú;®ð�c‘ElŠ´n!¥ßªßÚÌÛLªhÑæ쑼›€÷¦Š j|½´è³0ü`È} Ѻ a?6rÓÖÔ`[2€5BDÒÉ98ksÚ÷C¤ÃidTóNæ“SítÍYà×›¼oébýÂæ±Ò©ùZ1ÊË»xXãÎ}Ýûºë½,*áøÎð�9rçÈ,W'Úb'�ô®œ W«þÖ£aÅFÅÆûy®8W\ÓݦZx§"à �}we×»Kõ«…˜$¬Ô)_°g©_>Îé²p‘3Šë¥¡Ôñ7†ÅHU¢³…ÀºY&^Uºë#Hm:.À[¹ß_Éγ]{Ÿ¥êˆ¯'烈ú àÇÃ’L*É4É4My· ©™¢ÒrÒ¥œFQˆUáú§*¶iø4¼¬ ¤:âiO±ÒÑ®èMðë3p` ÉNT#ça2 þÌUŸ1"18Æs°A‡ZMËÑÜ»œ‡x%çÇ?_TÇåíÎèŸ^^�@àc‘$‘$ mÛvœ¢™¢ÙDßDŸÑbÂmcSˆø%$‹wé–p¹<¹<¥ ªXUìi}··Q3-;ÄÞßÉ`îÝ—eMø7`ÔÊ×­xõ[ê”a’]-Ü””;Qik–ï ?6Ç é9åŽhÀ!¿¦Âô'‹ôÕÚppÕ| ˜$ é8Æ Èqˆ ¾¥’m$¥Ý¥Ý%bá¼�ÔÒ×Á?•­!À*Î ×…SD ŠL½LIRB™B™ºn�ÈRÈ™XÈÛQú<†àé/@C›@Žp°…�ùÕ¹bÈ‘k³ÁŒ J§É™œŒO –m�l¦»á°ˆz1a$µˆZ^ÃA›œêœêÄ�Ñ“íp·rnå0âñ’-ô1Ñ­“HÎõ~epêêo.ÛÐÛÐg¤S¦Sæ mê€wJþ˜¥)~œ¦‰j ¢Æš­xÅç<ÿ¥Nչ侇“Ÿ¼ò�(×ý¡¹F‡Ó‘É$¹5'íie™îâí*ÌHUÃኀÜÉkšÀûSÍBD2X¦2rp yQÀ·”i}RØ>lŠufŒT£6ï-‚¦ í!@eW³?är|¶ð‚š†v²vò§­�ÑÓöB±ˆƒÆ×S›5®€o†œñr òöè�6JÈ® ƒ9 !’”äÉ3®7ªj5 �KÙVÞuÛZðÅð�Täò޽6z@uŽêO�ç·]h8L"&QtTt´‡kÌó¢+ä{'Òn�°H¸b§b§ï®‰×¯/`©_Q¿2‘÷Ïç<&¨S‡3U wÊž¯ÑÌüâxñ³fÒJ3ðç¼”µQÑæ1ŒEκ(Q�óÞ¥ƒ«Ùÿ}vÓcäIeÙGºÓ‡¥ Êù„ß0Šç]h¾¢>dàX®¡«‘!Óž”l¹h帚ý÷eŽ^Φk2´4pÛêÚΪp1r|2ï{^'B¹ä [$* ¥iPz5[ÍþnÙÓ¬žP¯­oý ¸7uEmu±H.ŒÛ¼E{�J¸Ùíe³¿3þ´”ÌjöŸ�¥+Î;æ¿ÉJ“hd¤w0�åËà7fSÉÉ�†QÖ¯‹ çKæÃö[9¯fÿ}Y`�¦|9~Ü ¯žxþáÑ{Ñy݇Õ[І5�Ä¢¬ögâµ6Ho’º³š­f·LŠÅ1{lgwý¥Ìô;Íb’b8´E¸–¯§EÄ�èãÃb{ß?Âܼ8«?뇳Ëí·½®È^̾Ї~»³|¥³~ة̗_ '·0K$”åÍæ¨-¨‹ÔhœGˆõrÇdsHq!©Üòë(øÓØ�ð«¹îDº}o©ÈÉ.âžzÒ �2.6.ÖûFHêM!ç®=�È\#ˆvLÑÚ†«}~ïßµC6«Cº)ûk Ò¡?=˜‚�ûG~»jMG ^µžn";”Ö™[–@MNŠêp皪îê ;�¨)kYÏTdoYÞ·Ê]syŒü'Ã)ž�F¸˜¹˜¹,L¦A-¶P„â㌤J�: g³ÙfóÆ€ÀîÀîÄÞ�Â�ÂÖµˆ÷C:ÛãÑ*7Š9=æ±ìYŸÐ©À¥NÕÞPúçr&v�h. 4°ÂçØ+ŒTZkDos­ÿØ `„¤×fh T1�]TDa Æä$)ú¨›ój¦HqqÑÆÂÿ¾øóv9Ç ‚Á³[ÿVCÈþº¤ˆ·Ûeì‡ì‡Œ©!±}-;“õÁ†b·–ßj€y!>mrÒ:�×{^ÖxÉaï¢D3t™’#hÐUó@(Iä£fºøu½zÕ¡‰m殺Ç.“{©ôRé±0îYh+úŸ”º•º%Ê$Êø© p–êZ-¤²¼Ô¿à®½¾öÚcâóÌçç<‡:‡ºR.ö=ðNÝ7±+>ÌcT‡ö¢k”¾Á9±R§‚–:ՠ愆“ôæ:@tIN»²»bÛ'¤Kò¿Ä6<°¶7ð›Ñ³=H×Ãoë¼óÖuŸ[ˆ2ÝÅëÉ¡5W÷)ÏRU·“ÒbÐb8ªÃ¦B w…Há&�gV¾ YëØ‘Ô7ÝŸ¦Q——Âw|/ÄA b‡’„ä×wgd'ò*€%úÄrî®”5P(~?ÈâUkÛ|‘l9/(Kžèè›=°Na5Ñ̸#jg¥sÜvyZÜ]ª]ªxæâv78  ¼Þ@Âi7®û6$‡IÏþ{\�i�©`þNÙ�²,²]Wº®HmÿŽx7òHbež4Õ4UÝ«2ý˜›+u*x©SéT>‰imþƒghEWçŽòz^$\= z¾âQuzãRÿÛ+ èh]&®TF$¨õŠ—œCG —S»´Íy’ÚÚºµõ˜‚ékRvDç$’»ŸVçÑz³Ÿ©–[�¬Ž±Ñ°Ñ,ˆ@¢ë!¨äöÝ�iw×6�{À±‹À�s2ÉI+ök?ÊÔyªü@xo_f9EvÞ0²¢î1ÚŸéV£ƒû,ócÃòlãÒÒRÓR»qmk?' Ç6Ï6O[L[|¢etüiD?iãÞ˜�pI…I…TfÑg£ÏnÓMM¦Ò6~ïT(úG‚¸AòÅ#).o7Úa#WêÔ•¥Nùéô—À}ú1!Ft#™æýšzÿ¤³ÓH˜Äþߟ³Ñý)Æu"H=±]n€jd8*⽟ˆ÷]�49•ý“À/êRÜÌÜÌ”‰3©8¢I^‚òCÐ²Ž’CMŽݰ(ŒÇ&Û5îkÜÏVC(BðœZl�ÔLƒu?�ÕݺstŠœV)€e mˆ½’ðuZ,‚å9ì/‡³RècO?è5ð°(.‘Ç-oqö‹öKÜKÜÕ ŸÇOá~Œýc ` 8‘[3Îg‘ÑA:õl¦"eÅcÅ#Ó &—F혥™¥¥¯7DÀgd|6˜RÈúxiÑiß}Ç�“–+ÍÈÀßwL½·ê\PsU¿þø¥+æªsß=v&‡˜DÉO±Ø”(Q9Iù¯gdd–™‘òßì²-¤÷Wꇡøâ0õ•º²Ôu5ªl-8·@Ô"tÂ9ÝCÔó™éH—Ì9övþ¹ÌíšØõH­š2™À=nW !Zð8QOlE9¿ì}Q@ÙlÝRFÓFÓ•6íq¤Tä‰üy ÎMÄÉþ¶=ðN¹î8!ÔÓ'ß´ô©�€,ÒB+¬Û ù˜žë@ý7¢ °×¦.’C¡lô—ÒÀŒC¶õ˜¼õã)P 'ªA{†ONCF­ÖY»Þñ‡{ÍÚrSÊHÊhr—@Û!&8ÉpÉð™Å™Å êíŒ{9!/ƒ‘èÒóìà”•;ÜüÑþèƒÃÍÃÍ«äá�êéŸ4hU³–u¾úT›ul÷J� ]êÔ„‡¸ªyî‘—KyATC/žWÉò»Š ð«W0®þð_HÖrÊ7€LE7N Lqh„¨£ÎЗvq@b&Kƒ”Ÿ„ŸÄa» RUDœ $Ÿ�<ürq„<ÒaüÚb5¯=¯mt ‹‡о!ñÍåá%øà H86#Ç] èWÀë—@LÐù}Õ›b!Gò¨Ôµà�QAu•iÝÝF’Üê�¶Ì/¬—7k]™«š«jÙpTVZΕŕEpNp®á.WåJˆA2Rc 2ÜšSkNñ^å_à_ØËÇPÊPúìÄO/x§X×bÓxÓl.ùg«p?»3¼R§Â–:…ÆIÛÂmU_$ÊîšÚ]eüIÆ鉜z# må;Õ{ï é {X%�II‹êÛ¶t¥©TL�³=¢ýà”K˜~'0K0Kxbþç¬!ðR–hS#«×|4 xoð$4rÃù¬M&úàh‹«€ÌC6ðÓŸ†Ø²Øˆsr·�‹Êä„÷°©æ�´­‹u ©Aä<`ì~<^&¨í0Å·«Ñ}£õ«hWÁ¦}ËëpÏ’m.j.¢Ó¥àg�‡cêcê+å,åÜ�ÞÁi61ÈFºÕ}®ý}ûûƒÌšÿt™¬ž¬ö¶Ã€wŠbDûÂôÀºÙ[{·¸ÕÚþZ©SáK�Ú$nm'7D”exÒ5�åèöH65L€TðíÊ;¾* ñŒž¸\ä¼ ŒªyHd¦â÷žœñÉ* Ü÷y‚Ôí“·O¶'5ƒ#2ÝE`ä¸û°žwÒ")ì"œÓäZÄPÄpÝÂKñ§�j†ø¨-¤¨Pþ6À‹bÂé‚Ô…/FEóÓ÷ H耠õœ˜9AÊ.i³Íº»yK^O߯†ý’�Uë`_žFßs÷��ËÓõ-¾›à²ÏdŸIêOê§§á¹vÀ2¸É[ì§5x7gQ|§ø®ÖÈÅÄŤ|øj+b¤@ü!骶ô'ãsscöÑ+u*b©S—54�á”×6ÓåšÞÓ¤c©=ö¦)ª¿h€>úþ2…k ’És s22˜2u3'zªœaBŽ^ïÚR`ïÖuú¤’N'�ž(¢�"õç}·A>«º&E ~bÏSHVø Æ›l•b•òÌ¢v "óتÂÍÇeEp‘õÆ_xV“ƒÎ˜°¯êé ·oÁÅÏ�#§þòEêT—«‚^œÓEÝÆ§óü4ÜËûÞ(‘BïMïmîÒä•. & f�Û7ÏÀ}b/w@ìÏ ½q1í€7+½›Ù6³m/íú…õ ½ÂL �býÇ.—¶Ó.…¬þ'•nñÜôŽàÂȬ4w?;Ðtæ+·s|_ص÷\AÖ¬8ÜÓj¶šý;dž)�¾öpÞhÂôFe ÊÔ<Îâr+i˜A5*u³X|M“ÉÑ×ò,\Íþ^Y[€àæZJSœz¿qbSA'ÇÃØŒÖàæ§kÐ.öŸ±a‹{Tc.Ï�¯fÿ?Ù‡N­�’}™˜×òÇ÷Qž*E½,Ȥõþèé{\$›MúdíZ–'ÇN<Xûu5[Í–ËöTim3ïÑF\Ä(žÊÃY¦Ö&‰2æ~î¼vþçƒ Â†[qe«Ùÿ.«DGrÙµ„ÇG>xKP&q×\ý9âwÛõ1Š<“VjM”MöKù´Ò9ãêÒ9ÃljœîØ»Óp(û¾à•2‰²D)K²�%L–R¶ŠKQ‰ìd)’-4†\\²´�ìû.Ke‹�IdK!Š‘-.CiDH‰Tºãñ¿Î{Žóšó�Ïq<÷}Üwóy÷}3o¾óbþÿßù;=ºwÚÁz‡Néúìæø‚&éaUt^Åõ OîåGíNQ¤§ �Rÿ�õ°²Ÿ/ éQÏyV—Œó]Ó(¢•Þ•Þ5%ÇlG«Â–‘L5�ï×ì˳fƒ~›LJIð™ù1ó#¤BŽ„\²Ð²‚XÝôÏ¢Z ¬-‚Beˆô@ožð8È)ùϵÍóQ? ¸—éø$&‚õ,eõÊL!õ¹§Æ0ÜyôN¦xy�Š¿�²?eÿÂ2X-E ‰)‘)ÑÖÞÖ>ÀçîåÛ‡h'ãÓ7!‘ëÉõWk“’ V~­üª)u~Ù©© ~Öá�þ}Óš�¿{f¿âî°¥NÍ4s#½?G®€ Ø êŽï áѪS¼ï0–꺺\´¯ŽvÜÀ–ί ÀlÛ+Œ ?D÷cÉö†(ÜÌÖE«—¯—ϱäK­’iØ*,ÓÅ×@Ÿ@µ?¤lììU‰†¬� � %.ÈèÄå²ø3ˆ).ë,•©`Ϙ¥(HÓ3ìì;šÉÙØB�S˜ˆ¢Çmëë÷1²Õ[CSŠõW«Ç¼‰NM^³¼[EY–õ–õŠ9~3C›�ˆD‰ð´ð´³/n‰÷CTšÑÌ¾à”‘N¿?ýž«:V'VçšØ÷5î;žÌz!;Õô­p³Nù,sbwÇŠç¶áK�Z㮈Ä�£Ó¦Ôr(i�|S�6ì–ã ˜9¥Ž ‹£±;Õ­tweÔ 妼0µÌ›sô„åSp€¢xŸ0-£óFçgv(ÔÐjQ…Ý}@eõðÁ ËÖa¸µ«v˜ 3hSfSÖÀ ©xÊ<å i~VëJÅrxΨõâ+èÉÿØÏÂa’±±‰ÈÜ%èHObÑ>�KÝ¢“Ǻkæ|0£—£­—wl’ý`)G)GL—hÎ+$——l(6´ŒÌnì"± C“)â±A² Y�ž8ºyè¦Ë‚Û¼Û¼ÝX(j‡E]’Cr%ïßÜÉCº­y„3+u*b©S’Du¤š ÎbXWRIÕG­R½Ü!4Œ¤ ðãó;Üúzù(41  ¬ôr'õam±âôì‘èµZ0¦Óº“u'ËÐýL ­Öƒ •Ú½©`rT¼rÓw†2ÿ¡ì÷ŽÄŽD—fˆª¤yA§ ¬ô†êÂp®è�>¯MÏû6 ×jä‘ÃzÈ ¶T$á•)=½<‡Õç{öwOˆO³Ÿ±½*9èäú¢ly±ÚîÞ›¼7¹Ê§­x‘J¼J¼øÈ|äì¾Ëï µÌh²n~¡H?mützøå\:ìtØ©’7ê!ò~¾Eîh…�¿åœ|[ú­(üôJ÷óükÓó éE»'{Bö¯«Æì²Òg‘ú!zÅ‹3’0pÅm]äyæS‹9<~Í�uú?„ÿï÷óòËÜÏ{5:jó�»ì¶X,Ø–¥ºR×#—º>©­Z€´¿Æ cÓ©°iôg—ÖÎF›P÷­šžϨ:yÊ£=Vdq’$Sï;swÃòK‰'èQÑÝÛl¹±m‘Öñðãá±9çi >‚m?OEbki†6äWBªÌÚ†ï¦ÔÍõÍõsú ­7 ¾^nê� É*®‹@ Ð"¹‡­$ %ɸq’q"ÞÎ<]àC�ÙV¬H� ¿C‡jÍmV%ÓH½KRË;#»˜³˜3ÚÊÊ*…Zwqq•l*­�ܰDË1ðF*)ÑHÇ1D_¾’Þ’ÞÚJYÔ]êô¬Þ¡œèµmìo:[š%¬W|/FÔR§<•kÓ�¾0t½…V«ì÷pW®iB›IØ>¯û.-Ÿ`†ÖîãâÈ:öUþec)+ÌÙ4µ�ž¸pÍl Õ~‚ŸÖtÜtœ<çªZÊü° =*ƒôM;€˜àÝ fGþ{n«¸HˆJˆÚA´*! !ªåqóx*¯MÀØŸÀåEâ=öd wn²c¶²†9$tûv zjë‰÷…§¿,6¬ã!“Ó-Õ¿#D]ž€×ª}łłjO÷çq#íêÞÕÝ1Þ1þm«ëžŠjˆùšîþ#’´½´}Ú—íí­”ƒ”ƒ]~¶ÈNqò:¬ëÕ;y°æõœ¼šAf×J�Š^ê”›ä`Rzók5Xr sªSaL{è4FýkÀç}÷… ŸcÐÔyX€[{ñ¾€¾dO¬tT*•æ#ó�Å:Ì—Ñ�è.d^iC«ù9,Ù›jx·L/àÀQyˆ»&“Múféké{cr‰ r}6—¢œoÀBe¢Tèî^Æ*ô(H† †‹ƒ�ð×wØmÓô¡Ç?ŸÔý|!Mf½æ¥YßÀ«®Gââ—÷¤+y¦a¬a̱½öJU&’*I•dG¶#Û<¿U°ö:d�fuI—iË /„îvà;ðµ:"ù"ùýa‘yÈN)‡ñé6a ùÏ(¹µ_©S1K� ~WÙ‡Ä Vü6’ö&¯{áu–ëï¶ÌyEœÍ¯¥Kz^�C“�{Ü8©É&¹9ë`®•˜)zš"rZ�Rùó{iqwswGÿý®–†}.¡òìïgÈ“Ž�½j†Êíî €7tHo‡<Š€\,×§@Ú6³$R°"ë›ÜQvzÎ9뇺™þ94²þ@“ Î¤#>—žÐ9ü‡ÅòÚà Òæár†(Ä!,Åõêò~Þ˽í�÷ÇW_övIdEªË©Ë1`2`úF!}ý9r -ÐS‹T…©ÂDú»Ü l#œœ�³JÇ��š¹Czj©rvQݤ G~maüJ�Š]êÔëÎgvHê,3°yI†?>E.ôªX«å›ˆ–Íh*¼v‰ ôÚòš‰.ùø+ûÏɾ?²LûXWb1¢wÔ R« a{¼ºg—¼ƒÌ\·Ò&f²XwW,y·Ô¯ì¿/s“³=sž_« Rv›^bË'£=[·4 ˆÓÁÙ>8+c^bÿ=zŽnMÆ{‹²iww_ßHˆ§¥? {×BENJY [ãÛ ’£‹ÑZßT¤ÄvŠíüý¤¯Bhí‡øEuQ�1êSËGé9Ð Dp¨XàÖAŠãCŒ¦}7äÒÏáŒ1Ô̶xoAôŵݒSßuiËéå�~˜vmcñÆâÇ¿}3='†„ãÃñMMI¹lØ8Ú © @ Þ'Šô²÷e/6õZê5Òû…ö…öWWÌPûÝu®×Œgzt¨Ï�=ÒžÙp]j¥N%,uêt¢†8ÒŽ¤ Xrêˆã"ß¾a²šÊP±ÐÝò¼¨ÇĹ-nZy5à�" °ö» ÂÂoVÑsÜ Zyð•áÁqZ\\'´=]h©KÁ”ò©¼Mæ7­]g;!<±Ìî׺«ÊªÊ*5Bÿ„§SÎBJ%ú)Ta)yÀæ„ÓãÙ0-DÔ<�äI5×—®£ÇIZADý‘ãž™p©CÂÓv?ãE¸„â–W£Ëߢk©kyGç�úØ?*,*,Á9Á™� ýXG"¡�6H4E"Pó‘k¬‰2~óüÍsF�cCÈNuÎ è×Tñ`ã¯ÏWuZ©S‰K�:to„$z › ¶�ñÇÇJâ ß{4ë+Ê·ýV•§w%çÐŽèúÔ/I±ý@v�K¬yµ=Ï.)Ø•z´n»Þv�®BÎZ¼P‚�„SÝËéØc¢ô!AW7ÛT6©6©RWél–�ŒzL\…d$O¡j3,…ŸãzØöVÌŠ³)ÜxîãmÂzœ<ò ä·ÛïÍþà”+7hdzîÑòƾvfwf µßc<‡Ta[a[ÌUÌÕL.øS âé€v¥¥^ ‰ÀB`ÑJfKf+˜ÄN`'еå¸�3Pe:¸‹DŒ¤�¥äH“>gÂ¥•f  dOïÆˆ?ˆÞj%~æÒööv�ÊHÞëN¹¶ÙLV>'¯x»»4¦N[°G¿6–§¥”¤”ô[Ð'­Øµ03 >Ä·¨=Z'1`™5ËT.üaaqñ¤Á‚Mó.‚¨7á©â?ØÀŒsL�ž§}Œ4.Nz©ÈïK¯ÚGv]�ùëÛû›ˆ bIE®g=w­š€#&,O!ë2Ó7×o®…Fú÷×k %“’IßG¿�­]ÿXÂ2¦Ž¦YwÚ‰ M�žÍS•Q•Ñ“OÒIÒ1­Þk‰ìÔüɇŒK1¾açÍ;9ÒlWêTòR§Dù¤’²ÀØÎØ�ŸÙ'÷º[¢É6åŽñ,(ÊÉ £™0ª´†ÆS€P³ìQñ>‰ž‚X£`fM}-fCfÃú7ZïwÃÚQÝ%™FÕYZz!LÎÀ›|`óÈæ?/HôUF�úký B¿i òôöǪ²1ô¤ZfÎ'C°n!˜pJ6=ñÑ*š!}Ÿþ‡½;�†zoà8žõ Ù"E(ÊVn–H„Œ±dI([×.kÖkK’5®edË’5*²f)²eIZÈÍN¶J–x|ÏïΙg~3Ž?žszzž3¿×ï¿?s3¿ß÷7–yí®Í Ëñaû̓>SKöºs¨äû|ƒyÒÁp›6ÕŽizizI•9ò9ò!Duá›:l�~ £øÉ‹Ï®µHÊí6•´¹)ÓG©ªpKRh�Ö];±xÚ²^ò‰Qý0ÅY3�«¹¨¹H©X ײ=�Æ=*ÑÓÀö HÈÕ J�GHp�^Ð(ä©ÄIÍGB£1…a= ÜXï„[wžù½ö?ÑÌ·ËMé:ùŽ�O$“Öe‘Ú½ešá$«- “=bgúß—o�ÃB3ØoÚoZW¿–‹}nnóBY£¬e'ý;Ê8!{Yð ý@ðÀYMXM¼8Û±Ú±ªü­µ­µ­+µ\¾)íE $^æ¾ÉßÃo^“޹ݦîlnjŽõ¦/œ§ŠZ!–hP#;Ÿù'ñøôœŽ’üyŽˆ #IøxK=Rlé@©¡’:–ÎWºû„\õ‹ ¤Ð´"¸ Ó Óå˜Táb~ˆezÃefï,0t\d $SÕ^á©J*1(1.iÓ€äÇÝó€Œf«}Á°¥N÷Èü橦l*öK’ëC�ŽÌü;ÚB!ÈìðZ zÅ£¿W˜�Ò5ǯ蠃fûÖ&ù*b³Û²ÛvYW�u€Ó³Ð³RRO,: Ê;ùFƒ¯Ì½ü Üôûé÷fsÅÜÅÜÎSœœ٣NðM ? <ªYš-#Ñu¤JjÑúáv›JÞÜT5uK9œª±RVŸ»5}ãdÎl>‡Càøïu_µŽÛuà øfG4‘ˆ_ Ùù¼±vþ–ý€E-… þˆs.·§nOU¼�«pE’`!]0òó››«ä8è�0™Qý(ópÅ�+r\r\~ç ×ê ¨XHèåqŒKYÀCa@¦–œž�×*YŒ «5¤lÆ?T˜“ô#!4Z*¢T¬RR˜^g ײ¡,�óqÏnͧŠ!/Q6QöÓ…^ Ã¥n^¡%¡%Ú"� É þFøúZ“à ­ ­Õƒ› ƒJjÂkÂ%²d½1›Šâ€6uÊhè-ê’ ¢ea­1Y^Zd»{ àÿ;üJÏßþ/¶ØúË–2Û�/ ëø–÷iGª›qµ¢+tȘv'U~Cs—xäÓ8Û¯UXØ^+˜}ÛzËøøî½¤Ý,j_ÛÍS1>õcÚ¹ÿ� ‰9ïÌè[Ljíç4�=_]”©â‚…�Lª<âí¹ñ�Ï®)*±¿»äæøÉ¿×ÙPEi8»t;Fok2©;ª/U\ª8!-+N§�‡�ŽýÇùç¦ë8Sþã¢>V¿u8žD·*¥*%+Óª*+A¼û¸‘+ %UZ�0'ðZÓ"&жÛTÚæ¦ÄÙÕÇà*{Þ¬cÙÿs`’ô�Ýá>|ë¿u°ªwq/óûâcû„’ÖM^Š;ËÖ±®h¾0%dˆÝv¸øìÁ\º2º2‹è¡“¸ PXš­g��²lžÜ׃pH¸4ðr»÷œ‘<#ùœÒ« 9ySõ,¤E«wc xœôEÌB£$\=íK™Þ×hÀüLš�••çÈO_‹Ã>2�IùžèÜC™= [cE®->y2RöÁ8XÁ.Ö$Ö„}ˆ}Èìé­•Û^¹Gø’–¸žÃ¡�ÑÎ;=cc#-;é;é•P%ÚðMewÙz5~š�;Oob­Wº´Ý¦Ò77õeGåI¸wÑLX«ªQ\·_½ˆ Åw¼q÷2 Ö£Åm®Ðú ŸlåX: “Ö (ÿ1Ì�å0½‡�Ö•Ó€7�œ/qå|Îù|1l• Wöå³€ÁkG·¨ÞÃéÚùñRøòn²R²ÒÏ#K·ìIõ„´TU×aL<¤4±@4‚>à«÷2Ó[ÈAEÅO•„¬7�w8�2çª?ÀæšÄv{áf�-ÓÒÖ±�%¶iµiÝÎ(=5¥__•¿yåÍ?4%�úâ;:ó°.V8V˜L$Í&ÍÆ¨å¹Ùs3JƒÐïðM]v.7¸r×4a7M åÑKÛmê.8s7ôX5ÜIóâ~,‘IÎüOÃØø|È€Ì;·¢1×çL™£øô¹×Ë“{a*¬A�ÂB¸oŸ²4äRvà®®ìèêÁ%·†å§ƒ6(/$ÓþÝ )Û³QŸ{˜óäÕ“WÅ@ÚÅ ã~3 �Q!A ß^à]`<› Fß1�jb‹‚øÏô ê]¤&¤¯ß¼Cs@Å66ðRý‰™}Ž>)$òv[‹èèrr+r+Úèvw;Ë×ÅßÅŸ6š6ÊýÚQ¦K Ò‘Ž/Úð9œŸ�Ÿ�£ÜãW�_™)ž.>]j&ÔÞÄ…îÔù¾q”‚¹éû›b¾-ß=‹yÞDûëzn}¥‡sa^Rpõ¡ëy& N¨ùå»´ƒdŠbò¤Ëâïsݯ ¿£î#‘«^±þ÷3wñŸ7‘ØâyéÆ2�sy•KÒ ‹?«‹Þnë›[¿nHËgßünË®Ï_Ž1ƒü» Ÿo2t—°�laœàÕ%|+TüÀPj±-ð´ÊèÖÊ1‘§„ü5_õ'0¹K·—Q‡QG æ-‰o±‚¬1òI¯ú_ó» Z#EWØÛõYÓYÓ§Ã Æù�íùHÊ-¡yŒ'€á.°ÞkÂOHm!POîüHFrÏ( a¿cD!áúŸ&GÇ&MËêÊ\ÔF7t hjðn-T'½%Ô5Ô5î:/…Ü[þ·üöÉöÉßL³^ƒŒöá+½î÷Tà©À÷sË›W‚!r 9fhwú>|S·ÈbPÑ»í§ÒîÝFú d»Menn*·„¾j¯…õ±ŒŸ Á¬õ =Ÿ�  è’IIcð•ÄÇÎdûp©½ |QNpÂê•+¸AÈ�á5/€R»"—éEÓ‹m š"¸6ÞcñªbøÚÛ¥R¡=@*²¾O¡hr´�eœe¼'!æô�p«ÇZÇ‚¢dŒšWÀu%@EüO4!!i_LØJÛ7ç£h=KßÛ„Ô8 ä®ô�«ýÈc¬ÚK¯,cíÊ5g¸¶µ£’>N¨T‚„á©êúJ¸ÔÀÔÀUæUæl²î/GX ýøâŠ-àÌ<Ì2ÀD½hëTñ !JÒœ@JÕê(.±~±þ®hV\ù~X%clyô|€2ùqÈT\Ü›ñïâ-ò{ä÷ÌAúo@x?±IéªÄP­šäõö×Ê„< ι¬¸²BÜŽæYýfÅÝIˆ]þþ=Yf�MzûDËD�ŽÉ+²‡£®oÍGpÙ%Ó-ÓÍhúÂfÎÀÓÀS©�laÑî2U…oà Iµ*… ¤¤ÎÓñªöªnú;'8'Ø»Ž~¾)#_{Ý¡ê ׿ÃÏilÜnm·©ìÍM=BÄÐÁ &mˆ`׳à81çÃ"ˆo#ëÀ^àŽXЄ±r¹¾º,;�–ø†ç@IÍÝ%¬�&B2¼;ƒ�¶%Ûr\5gkÎ>ùpMW�1Öµslñõ¥Ò¾�2s2Ò…Ûs­•š‘šQ#ÂøB¯un"µ�y #½°Ö2<|è ¡ª¢BSÜv@üWÂèš«¿²RX¿Ü23hSÄnö€º,�ó{‘áÜ0ýÖZ¬$i§LÖ—Ja4�³4µ45¿k~—uøBGð1ˆ|%¾�£5~pÚ×´¯!ÓþšÿkþË©ckÇÖÄ|Q˜Múç|T.¥Æ}-†_–8ð#KEM¶{6þwÞë šKdåªA¼ÛÚaÒõo¯˜µ‹‡Ê_öR[œÊ8]6º{&CK›Øˆí?m;nØUJ,êß|ÏN!Ùå}Þ�¹@éa³ž’¿{]¤FØÞÇ)¡Ó¯¢‰�Ø~VsáR%»@møŽ“{cðÌìÈ4ÇøÞ»£Yw^:OGÖ¦™HòeLdêõiuÛ¯Õ>3„óþUg94¸0K'¾, åýƒ,ÒõþÞ!rŠÅÝÊL²M.Äökµ‹I«:!§=—‰ñtó�èøGYÂ-S¿ó¯ÙÈÆÍ½Q äîGòF±ý§mૹ‹.‹»®lÔŠç5éD1%…¶ÇŒ‡(ØÉ¬.?Ìt1ܓ٭UC’qŽØˆíWkkLÕĨi4Þ< ¡k¾ÉÂ-ËØ‡JªÖc ”Ì©×1=É»ëWjˆI£ó^÷—Œ‚ß�8ùÒ¿B-Eè6¿{iÛ¹t:¦ÂÍð³5kêã¶wäÛ}÷rüÆæ-y nÍ¢$KôO›œÈ±Ç¢óøñªâÍɤ¦ò#øœH×€o>|À2ZŒKchÕ„� ëÀGŠN\jSjS.ŒGpõaEý†vSù_ìÝy0ÕýÛÀq”}+ë-ʾ$”}K¶’ìÊ’8‘ìK‹t“­ˆ YBÈNÊ^‰²¯GÖ”%;-"ÙÃy|~ßß™óœï÷ø™gæyfîg&¯ÿ®¿ß3çŒsÍçb(þ.˜�DžÏ»~[\3äyÈsªZHÂ�ÖAé»�ñ‹ú<àe H˜%œ"¤.ЮŸJ„¼í¬Ë:’Á,LH¨¤_kÔ˜B�Ÿõ½:¶¡Ð^‡¤tÂòÖØOt´ó�ò�,ëù™uÃ1 1 9f8f¤ËH±œ†4ö#…,JÞ�ËÍ�64,;|}ÝBG�ø-ËçÃìíI;̠㤠:ÆíÃvM=Ùl*öÆè!¸‡êá’8ÕÄ×z ­©ÜÕ‘¥þ~ T9/Ltó™˜"q²f/˜ª.z`Ì™›Çr2ã!‡:=¿Ö Tøôwéï2Ü1Q€¯­§DˌۿX‘¤¶…8Qsbˆc7N2NBå@ÀÍp€¸>›",õŒkJX_Æ¿¾ðhs¨ÙÏzî@ 䢎x{ïQÌ2!‘åáW|:Ѷê4I6]Ëg¥�Ëš–µë·&À{r:ƒ3ƒómNµþCN8SSŒ(F”§ôMfYäÁM¤rµâ^8p%=q�ñIã“už)ž)#'²òáMÍÎ겉£gÚuu7v++ÿµ]SÙ›Mí"j��3üúy ‡òL«ßBžZéò¤æXæB`'ïåŠá…­HC î÷Âü`5éó+œb©sÁ„”ÜÒÛÐq)©ãëäïä�•Iø�¯['p'VŒ¿­À&8[éhNäJ+úŒy¯ò^EˆrÓ 2ßàê )ÀtÆ`éÄê@ÿ‰Ê„ˆû+ÑŸœì�BDÄ0LO"옙8Ä<Ä5·g†ÒBÛƒYdÚð]’­Ìþ­¡¬~®[4Z4.®§ïü0—›{gèÎ�L³�Ö7Ä—)ÖãR!\ºPºPÖÁtÅtEÏδ¨´(ŽK2Rˆ;· s:¢ª®ý;n4ë´ÝºŠÙ®©œÍ¦èÞ›¿… ÒPÑÆéôÕmÛ-Ùrþ¥’=Kq °êÜô¼Å(éÉ×”àìÙò@ –èÄt,Á�¾ßÝ?+'"®ÎïøèKéKÕ¦EŒñÝü�ƒbÅRh~AèŸ+8 ¹ð’_9(P%l/×^®ùÈðoH µ·äó9jf,åû@ïG €�)“�V°qRïyš#dâ ÝäÐçôG„TÄõ¹õ%)¸öN£o H|C™h¬mÍiƒäÈÄÈÄ÷Y”Œ©œøWñ¯�Ä�¦Ø_ QYCâb€›ñšño§zÍ‹—F—FÅÏ7î4sVǽ$“�t>QøR�÷vM=MÝ—p„#/µ8‡ceüAËá2ÍðÃÓHY5ÚÕ… Wއ ý Ç®+ÝÀcNZ YyØgúLÎsBÜz)¾Œb øBBì~ù®â#îÁauÄÂè¡Lò�¶O�gŒõó¯ï×Þ¯µ°†LÛCnõhºCæ÷ Žc}z Ћ‹7 B a-xŸ™…$jC ŒÑÃþÙ„°üºcL!ùöÂb5©=ªÇrPªè˜V‹ßÖÞ¶Ü;ŸŸ[Ãÿ¨î 5œ¥¿¥½|½ü'Á&÷NÈ_÷�^‘ôhÂ=szæds/N6N¶ì�Ò ¥ëheøÎRæÆyß½~û›ãk%¦Ì[Þ$Åî,-yí#Wa7šôœw®œM¶Ñ÷ÉQ¼ßÛîQÖk³gÃcÐì˜ÔOn’i)�å�,ÍÙ¦JʇÿygI~‹�%L$Eî÷E—¯”ÜC—YÚ·kýÙf뜹#ùpü®8£Ž±L ÓO¿@oîá£B£…P7ºvšq$·q• öLx;pþ¥Èœ#•Ec„è_ix¸Û$°ã»—²i­»×Èva�· �¸Þª1A.pŠEPI~§þN�!»q¿sé&d™-nkœxüXjô(ô(t$nõ¸¾ 7=íªãªÓ&�ZÔ¦iÕ@Ѝ©„cLaL¹paœ~œÞ¾€ÈŠÈêÒ¾[·áMYUñ�Û8ÆÖ(Ê»'WÐo×TîfS:Õpɱ.µ8Ò½«â­KÐ%ŠHî1ûB€’Õ½±©Î¶JHí/¯ õ©¬û€à*ÊjœéXWBr²iH�ëb¸«ß�Ûþ·ý�ç×ãKÚ�CZŠÅdx« ˜´Î›‡$E©gH{y%:x9xÅÿ„ð CDx7d »8ÁÖ6Dž ×§ÔÊâÑ 8Ð\w^‚�›LØŽ2 Dá sùy#¹WeD›p„¬I€Šdkw•oäœÍ=›[ÅK#3¦†€CÙØüÎ"'ϰ…Ð]FRÙÊ ÷¬ãY‡�}PPZ¬c´c4}ôŒ$¼)ý…ÊC/ßRìÑï;ÐB—v}»¦ò6›âï¢u‡k¼г&Craô~´GB"R$Sƒ�y¢˜ÁõV¸Ò„?u*°3X ˜œêÁ¡SÍ %„¶(ù< L??$ë^¯þïìph\°è}¯H(û¹lHzORòš\qK©h©èEYˆ²Äú à:c€Â éÜÒ�3©Zº„´ú˜µu^†VH×RÞÕ}ªež„¬>EkWR OMGp­È×0ÒVÜ ÜÚŒÞ[Yt&:óèÞ$ª©B8ÌiÌéú/õ_¤»é­µÑz$ÿpG8ºt;X½ì²ì²~Îò•ó•ßôË€7EâR8( ×TæVƒZâ§Ú®©|ДèeK¸ww-:pì:-&ÚœçøÙJ‘ˆwsu”m gø‘öÑÏ–;*§ª§P-œ³YW‚ ™ÿ�8×s�7ŠE]µTˆo£‡a +"`Šàl]‡´�“é E§ße°Ë€æD†RÕt‡‚Þߎuš¨òL�sûÂ\¾jS,­ �yb¦×çBÈ Ù}ÕW”<fCûwFšw6�ØÚíÏÉ>ɾ–‹é£dp� � ì(v”7¥3Ý�o�ìJ¤ÒT38¥x¥xïÆwæïÌûåÂÈ%‚±Mý{gi¬Ñ€uðªC†Ãõ] æõ>ÃÛí,Á¿çý%`Eñê6ÇS÷®ŒMÅ+?ÇB»ÿÌþÌþ/fÜ\'²µßkç�,ž§©[�:bË}åú\ë±Éèæë±ŸÒ±þ™ýógöÜCykÆ>3Ö,RiíñêµrS;C²¥ÍŽàHikõ5Ó~jògögö?™ Ž´ý˜µX'–T¦˜Â` >NÅÌÞÑQ®ùTœC`R1ÛáîmÛOl’>'þÌþÌþ?̬刧}~g÷Z_ª1è“ ó�oõœ8ÅŸZ¡V2rx§Gp¨V %†âÏìÏìŸ6ûdÙ»ßæMF´sõÒÅd«×Ö:é²�Et›‚ÝC­dœ¿’G2¤iø4ý™ý™ýÓfôísÍžãOp©Þó<–„ïÜ%ë «žÇÊ8ü¦Í„(ÍWÆnzaîþoϸ�^‰ˆÞ+B§ì Ibâ?¯¡Äè‡xŸça0ÏcÕ¡žGÂañÍõ?µ·û?Ðsr"¢[Æ,Åpü¯q7•ýï.G‡ŹéœÒDÚ{.Ç]¤ˆ’]@#)_X(¤ôÉt�éwÉå8ï’òÄšú/§xK_àÛMº›ÔíÉ@>uœ/,9_ÀÒ € rõ/Ó&+ ùS×¾\û"p²WÂ)¬mÑ¿T.Žåô7ðó*ðUyW8& <¢éõt�”3]2Â$TòTÓ]�ÞÝ‘ËC£:¢à^¾^CݶµÑè�‹ÉɎɽt*ópbbœ§9OSJ’ì�x³#é-J ÀuuÑgµfµZÿ®¡­¡Ula1ƒ7Å3³0Åžñ�A6G¨v§šþvM½Øljc¨ÒîÈ_é‡p¼ú)D«eÖk …Th�ªÌ/$Lßjh#‰G¾lvŸ<øOÍ÷áܶüNÈêð0'`Q{-ŸÐG¡�+�ð©Œâ„±a ¤2Ò'äP�”ÏyÅ,Ój5¹¹ R�3Ñ�÷a¹J¢¾žF¬Â@bPd™‘Jˆ ÊÃUïÆ¹ø¾ûU�îÞ"Bòâ™åH×ÿf¯Ìꦚé0í:Ùý¼‚skGÎß8˜�Ý{WÅ)ÿ&\ãBãXaLöÝiœQÎ@úEÍ–—&š&ú•Þ–Þ&ÍííM’GVoj"ÙYÄîðÅ´Fùc—·Èo×TÁfS&œ÷]áÊYŒnà�Ùçax]ìÿž3Gbô:¦ ¤6 PJý<`‹Dõ±>`\òºtæñ”ãÄvDZ"¢;³¸x {u˩ө3Àî)>Î&œˆ«X3ï쇀ÛïÂ�Už&Ϩ¡%Ÿõ™õ¢'öpHÿ°ò„$ÁÄ ëÕ`ûH�˜!DŽ8‘@&s%ò¸èÍ/†ÅùBZ\kÎT Ñz-®°÷çÃ…€åt>pó|+RŸÚ}—Ú—Ú}”ö{;Â�û“"C"C;%J�ïA,=‘´*â á|6ÿ®:SSçL1…2…^^vv€7õÊHHµëa]¡(‡þÑüor'·kªp³)Ïl™E¸�z.T8?èn$óô ÉÝFâ½<üjjã¬h Bb?Ö\(9­P‚׺EqȬ?�r¡ 60:ÏR†o�~�¾£áX+¾�24–„ Ç$0Ai¯ éâÕº¬hÚ¡¸¢¸â«d#bñ›lRÙíð‹q `ºÌ÷º’ò 0:Í$·¼±>Î,|¤ïT!~aNáµgçç>�;ëï¥S]ýí²5 ½¸:ZmÔÅ®)¯‹P/_?Ó8ÓHaE“_D YFÒx©Î ÇbÃb_¦7 7p½<‚Àè/ž oJaÿÊͨ¥M\kþ‘»bÍÛ5U´Ù”ÐãƒIpöU‰!8슉Y{šÛ5#)&ä¼ÓTùü�(›< €R“®ã@à„š ŽI¡j"!öQq@HXÎ{|+ì+ìy'[ñáÞ¼dCÙÄc¹rªä¶¶+HûÆ“îùsö¯ì_‘>€»@"}  ”i‡9‘oXÏ:�Ö]€Ñ”¹!Õ\@»€Ij rVâË4‹žÛSBt�˪ÅO'O`² xÜeiø=^±µ¯5Ž/¢Œ¢ŒœrKƒžÃµv¶vj`40u²-o1@z‘¾,²È•„•„ýš¶¶êÓ‹ÑŒÑLr§e€ïO¹S©¯¹,Û»§ì”[˜înÞòN v* “dœ½¥ÞÏNôm.ûwí¯™ÆÚC)œ/ò{Ýè‡ 튉#ÇõÚoyüfʰmSŽ�¡øÏûS²[ìOi+]+álßC¬9l埛:)·]ëÅ›­»ºWÂíoXÀñ4pö7¶a(¿æ†¤XÔD¬’ËǽöΕF2%"RĦn tbf+8q‚Ç.â�I ¼‹øK_ÆFÆÆP)[9>qœj4)ݘ2`Íüï¾DRºÏ}Î)ÎLÎLÄI.oÈܰßuH\]2 Ö¿Î]›™ì8oµ!dR þ"G+ yâæFÒ9ÕGÈHÊú‘ÍC–‡¹)úî„ö’qP�EbÖ·&–ýQìUfÝ̬W €s,p,ÈŸÌŸüPmÙo6É*ABÍ{—ÀÅeÇeË®û½õ{û™²øJñc‰È×ð¦þÖº(²šXøÞ9Õ)ë}fc»¦JÀ�UFza¸ˆïßÖpÚ\TS†T;S¿"©›–rmܬ ãÿÅÞ�GCýö}·d­YJ C’T¤"û’-û…hÙ"kö%²d²DdM~É:Ö±Sv%Ù[‘´!Ü®ó=óÌ=ß�çœûœçþ=÷ãûúïýçœ÷ßë{}溼å‰5°�bì«?Øz¼hÿ—IQåª &xÔÈ %‹%‹R±¡ ¡]ñžŸÁY uH¤žc fÊãÖƒÆQqqþ÷!™®�ŸQ—à Ԯ18¬”ÀŠ`‹!~ÏTÎ;¨=’ÅB|C°ì»°ú¶¤˜ñ¢'nhó$Gôó,µÜ+–´asv2XŸ¢d}˜5Öû�~»’\…|…|ØÎ°�n=T {0�K>ĽZmá´´®Óz¦z¦ 4 4Ÿ0¡„wªG6GÖ“¯{úpëaîiÎ�:U²Ö©«ˆÚKp1¿”Æð®Råßö;~%¹Ñ€ÒW€ @Y+wIŸŽ&öɧ_à`¬V_SàE8`H¡Úo ÄÅ·ý"$1!1Q÷ò~4¡‘t<ì œ†áU[@´#}Âö[ÔLÿ¿] f f³d»dßnYH‡TÎüEà'�6'EÊ®ï@DÐómÁò�#„Rr‡ÍÅr;ØÜ‡ã ÐXÌ’šŸæœíx Ìpx�R&A~ÜÐÆÐs¦N“òyTR7N–ksåq&ųº(ëêØëfë3kD \Å\Å´»ø¥ ~‚ëNèN°{b÷„&½Ü“‘ RNÌHÞ½®W¨Wh¨¹ZìÙãÛãË�ìS$ú/«�–~{oµ¶^VÛyÑ\Íê�:UºÖ©Õн±pæ™®ÞxñGÝŒoUÿ¾ÍJ̯ÈÌàÐm©iÙAÉD,sˆÚÿèÞuS/#Ú)�”™©�ó@4ÃÖlBA¯‚^™±]§%t‹Çã„#´ó@8ð:�]bA{Ò¥—:ñ�÷šñүϯïñ7ˆT„nOÊ9ˆGþF¦L >À²o%Eɸ¾ú¶�[¢’v G®ø¯ R§xohûš,ª¿§Þ[%nóÞ¿³iq}�éó�æY9h¶$ÂääjYhY¬p¨Ë+ÏBŒeˆ=uO–„{Þñ¼Ã!!”7”÷m|žKž‹uo /¼Sß“>y«RÔžsîYîÛ¨Såk�’}ŸgÝöÔ�rkÎ SÊQCjb‚¾À*zí±øhb熠)­öp,c£8î k`·�ð0)Ç %¢€r „J_”¾àó?@OèÍ%<ûï8 6ÉÀŒ½G(¤T¦Þõͪ9r¹h]Që„|͉ˇÜ3:Ëã8 ´Ÿv„©“R•ˆ¤ëg B Šv‡¢e¬”HÀ òš 1sŒ׆FÕôÐíTü5ÖWNÃyËŽÉŽ©GßÒ�½ .P&Pf’r’rt^òæ¥ëG„®«kÁ-5,5„³rÏpÏ“©²¨²Ô!cDá�’F¿LŸå»>YÕ�ékGglÔ©ŠµN5eq:Áµ¸æ‹÷<61êø^ÍxŠØŽÞ1À/ó]”—­Üb¬}æÙ€0]ÐÙÝà�•ç§AŠ£< IÙ0@(„3„óí”|-!‹l¼ùW8¢YRN@ÿ3H(�Ö$Ù›†ŠÄŠD ­ „ºAK‚ <‹Óò ðY‚ó�jHQ©(®F´þþy°Eó Ü)]Hªà…‹_eÚ¹Îe#¼sb ý_È®�ž® ¼7xoïçýœpFF‘‘Þ(².ÚxHl?1&ž¯D0<î³uüuü²M1«1«_"!á�âqûò¢Ô’ÎöAZñ(u¥àF�ª\ëTÞ½§-pßšmðžþÆfè?ÏL$¦—¤ÜøR°þÙ§6LÌ…òó ÀÝÀ½ 8UÓŽ÷ðç/R¹VÓ€Ÿ Þ„$ú$úZ¤ õéiãe9ã ò¯Î&7i4 Ÿ?íåzï©?½ez‹ãKÈÙ&H¼MŒ¤ÕDSG(à~ x³©‘¢b˜ÙjMÿþÊ;t6å�)äËô´$ÑwÿPŽ5FfäÚÈ?Cµ7q}|߬Qó¨y¶—ræ‡àÒ;Ò;l.Ø\àYL¿iÞÑ‹ ¦(Ò'Á.Á.Í!è,è܃( + Ô‘�ï÷ó©Å¢<£ç$¢d|ªo´ß¿å€8§Øÿ‡€âÉyÞ-²U)J(×_é‹õgþ+k%¯Ümœw!U¯séx\ïg!Šÿv¿ÿØ:ûýµ¤WWB8±_‚Ë—Y!ÞåYµÖõ#ÌÁŒpÇ^þñÆ[Ø}ºôÉöÛY¶ÄÊÞ5wòÔL=ÛÉ#|‰±U·¤%ýåšµÓ1¼Þ€93RÜÙ‹€Vó'ô„$%“U™x€gŠÁÙgf�ÝFžB¼ü—Æ[üo1¬=¸KëòŒ!>ÙGȳÙ̃8NóÀK õ<ùNR†•äRÆEAHá{ Rt¨…64£Ãa›q´ ÿ þ­:ª• »hÔ¿ë®/*?g4'$'äuQ‚ûÃ#p»Gv�è u�ÌtLâ<' AÄÞ~˸×ËßË?/AÕBÕr À�Ã�C*2û<¼S <),Ú*›-¹åtÞÙ–ßݨSp?¬t¾0\áÍ(V¼GÏf¦å|ÄrH˜*º|û ÔOܺl÷jiŒÐÓzvnÇñ-|ˆÏç;C¬Ú+¢¹ pF�þ:Ù949¿G=í‘Üþ¤§Õ P�¦\I1/æ’BMô 7OÎ�Iÿ¬à!…©­Ñ\óáG=ãE¥îѽo¥&ûá_rþ¹Æ‚V`^`ÞDxœ‚•0ÜÚ ªK®KîäÑösÒÓ�d$±ˆÖ*^8#7#·¥Ïµ¡µ¡qG?v}ìZ–?s”èœáìŸE’'GNÄ?'Ú®”¸Q§j×:õxùMÜdí Û)î“ íäF׈bô‚šL^oí*ĵ÷/žw±Gƒ87-–:–úã­sÈÒý�O*Ä„¶±÷Á�QÕ=ÊÜIÜI Kö“ö“ØŸ‚¸NY±B�’³s.üI?a6íR ä¸Ñ~?|íà3mr6ÑP±Eü½NSéS�o‚yß6³ÿœ¬x‰V<ì¤725.RဒXãÎýV±V¯œ>e´Åú‰O«N߈­7j�ØÌþþ™§…Þò— V÷(–,³&óå¢=Kn¼öþbS ÷O+$^¦@뤇žµÓlßÌþs2ŠÛqU®±·®œËgVA¥å~Ô•¾ÙËÆwA…Oô³Ñkÿ" T”§o;ãf¶™ýݲo–¡ï™>IÉnS“§™`j|ך‘ø®àìÁ¥§öG'¼êGd;½¾phjmf›ÙzÙ5ûCw[SÑ·µ /èy6+b5$L„¯¥%^`Oí¤nšUºšæV•Uènfÿ73ôÜ8ÙŸ®Çê{Ê)3{—K­çøÒ¾Ò£~ÙÌaË®˜j>Ã(]ö“bÚÌ6³5KÜ/©’Õš³PôÄî�¾Fšýê.?…ô•Ãß¿3"õÕª¿{´¥³¢k3û{e".Æä*,ÓùTçþu¦Nžÿr}�e˜Lè�·[©®[º™;½ü«ÁR1›Ù¿/;ö .󀄚ɟ÷bYlêJµÃ®!:Šûý¿‰§»¬„7 ÄDqž–»¹™ýïdfz³Ž*œ·—}Ýîø»gâ][üÊâW–}ê§^1+rÍÐk†N9ùö3º>Sѽ¾öfn³È¡gÿâGÇß>þ•JÏÔªâ35vç‹îêÚ×·¸£w/®ßzàõK~3dÝž›¶ÏäR£'~Ò½›Žn\·åãÞÝ¢ÔQG>üf©Y£^ŽuløêîzcúŠ'J5½9unçf¥f¥žZØ®so®îè+ í]²ê¾?–:cÙY;–;nÅ¥“güâ°gG>;rúŒr“w*·×–~Ë[©s¯¼ûŠö®K•šp[©Ù­6w×%ñRÍÞÙoÁør¯¾öâ™/<ù|wÍzdüäƒF·ÄÞ:}òÍ#¾vûÛ[õÿðšÛ¦¬¿E_ÞãýyïÏûèø…/ï}n׎^zôÒcÎ9朅¿ýù}'¦Ê{׺=|ÃnOumõÚÕkg�¿kÐ]ƒ~wàŒ93æ,¿ûßïèúLÝ»ÿ#ï$o~°!;êýUN|rA¥gê®â35éÚ%£&^ÞQì'?znÕ²9™~G¬Û�™'¥J¿õ/ïüõ#‡î´nS·|àw¥_Ö¾¥Ží?½£/qkw=>}Þö¥šž°¢sÓ¾9í›ßýé?й5‹:ZrZ{7×o±i©MÓ#Rå†|òê›Z'Ö]Ÿ½>[þéU ÿìªrO<÷Ç-ÊuÈéSÚkl(uÍÎ¥ípÐ&ÝõÁðRcþ<å±£ç”Ûíépþ óßxº»¢ƒë·?dìØ­ïm=r÷oß}ÎéW~é�³Öß·výÃ¥ßà·÷kᬩ‹»¶|Íò5K,Y°ù ¯^ùÚ¿•Ûcçu|֌Ǻöä~Oîwö˜aˇ-¿iÂ�çÝxÞGÃïYÒþL½ôñ{^çέ;jà–ï»vç33ý¦}¬ï™ú«\ó©¥õÛ~ü,–>æÞpû„˼pÿC.tØ�¯ï8oß=¾qáËO¿¾Iz«µ£ïËí4m‡ lòçó·úí¥§|çéáCºþÞ™cÞúpÁonû^áºk/™õ÷ƒFþøˆ·në×ïÊ:ø–?ý~ÒÄ•/›°{ÿË® /°ß´•™Ÿ°Ù¿výžy×ÏÌÿ*‘ ŒZvþ Ÿ?ªaÆ®k>ùýÇÿב:h晓ºøÁÈïZwÚzž×ø|S.lÉ—gSc´á{ÑÓrùÄ §4žÜ|jSô»MùBsË©Ñx, ‚X¤fÄêËo7ê{n�xQ6�n›E]gÛu�HÅ™LfНÅ¿Å#ÑtÏ}IZ a.�Fò--á†ÖUº_£:Îÿ“wžWýQøôçŸ,rþŸ‡nϿ퓙�?yðÙ•8“JuþÉl*�-��Î&3™l¶tþéÒc�WcóJúøù×Ô¤8TA@‘(IЫ¥Øh¥ ïÉôEYª-²‘ˆÕZ›óAi¶_†M…°n¿Xc.ÌUc�xQ&•j›E�g"²A6$‚t6Yúhkñõ �L'#Ñx56¯¤µæòÑh$ßÒnh]¥û5jŸ—6N½ÒÁð…:€žù´bõ…Ö†Ææ|Pší—aS!¬KÄsaîSÿƒÝˆeR©¶YÔy&ÒÙâŸH�ÒÙd&“Í_ÒÉT6�WcóJZ a.�Fò--á†ÖUº_£¶èµ¶z¹jÊŽTÑNÐ7í lÔ†ÀEè+bõ…Ö†Ææ|Pší—aS!¬‹Çsa®{Ä‹2©TÛ,ê<ñx:•ˆ‰ �Mf2Ùlñõ �L¦#Ñx56¯¤µæòÑh$ßÒnh]¥û5j€®úÐÛm @ èÕ³‡ÈF-V_hmhlÎ¥Ù~6ºT¬1檱G¼(“JµÍ¢Î3Ï&ÓéH�ÒÙd&“Í_ÒÉt2�WcóJZ a.�Fò--á†ÖUº_£öú€áðÿðe€ž´@í|qö€ÿmàÿj$À'"t«/´646çõ=·G¼(›N·Í¢®³í:H¤ƒâL&³ÅuAñoÙH4Ýs_R‡ÖB˜ËG£‘|KK¸¡u•îרŽó/Îz>ýù'“©¤óÿg[€îlÐKEè#bõ…Ö†Ææ|¢4Û/æBX—Ž5æÂ\5öˆeR©¶YÔy&ãÉ �‰‰ �Mf²ñDq]�N¦‘h¼›WÒZsùh4’oi 7´®Òý5€ªµe4ŸØ '� fÕ•Å೪€>"ÂF&V_hmhlÎ'J³ý2l*„uûÇsa®{Ä‹2©TÛ,ê<“A2‘ ¤³ÉL6ž(® ÒÉd:�WcóJZ a.�Fò--á†ÖUº_£z±¯5g<ô´ …¯@o6€*ùK€j‹ÐÅê ­ �ÍùDi¶_†M…°.kÌ…¹jì/ʤRm³¨óLÄS‰D6$‚t6™ÉÆÅuA:™JF¢ñjl^Ik!Ìå£ÑH¾¥%ÜкJ÷kT ÏÛ€Þiè9@í @5üŸq@/áó«/´646ç¥Ù~6ºd¬1檱G¼(“JµÍ¢Î3•H§2A$Hél2“�'Šë‚t²¸<¯Ææ•´Â\>�ä[Z ­«t¿F  'íð ½Ý®ÀcP#vè+¾µew€^g€ÚzÔžPK"µá?wÆ0Mpar2cmdline-turbo-1.5.0/tests/build_unit_tests.ps1000066400000000000000000000106771524160147200222320ustar00rootroot00000000000000# par2cmdline Windows Unit Test Builder # PowerShell script to compile unit tests using Visual C++ compiler (cl.exe) param( [string]$Configuration = "Release", [string]$Platform = "x64", [switch]$Clean, [switch]$Verbose ) $ErrorActionPreference = "Stop" # Get script and project directories $script:ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path $script:RootDir = Split-Path -Parent $script:ScriptDir $script:SrcDir = Join-Path $script:RootDir "src" $script:OutputDir = Join-Path $script:RootDir "$Platform\$Configuration" Write-Host "========================================" -ForegroundColor Cyan Write-Host "par2cmdline Unit Test Builder" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan Write-Host "Configuration: $Configuration" Write-Host "Platform: $Platform" Write-Host "Output Directory: $script:OutputDir" Write-Host "" # Clean if requested if ($Clean) { Write-Host "Cleaning previous unit test builds..." -ForegroundColor Yellow $testExes = @( "letype_test", "crc_test", "md5_test", "diskfile_test", "libpar2_test", "commandline_test", "descriptionpacket_test", "criticalpacket_test", "reedsolomon_test", "galois_test", "utf8_test" ) $ObjDir = Join-Path $script:RootDir "tests\$Platform\$Configuration" foreach ($exe in $testExes) { $exePath = Join-Path $script:OutputDir "$exe.exe" if (Test-Path $exePath) { Remove-Item $exePath -Force Write-Host " Removed: $exe.exe" } # Clean object files $objPath = Join-Path $ObjDir $exe if (Test-Path $objPath) { Remove-Item $objPath -Force -Recurse Write-Host " Removed: $exe\*" } } Write-Host "" } # Find Visual Studio and set up environment function Find-VSEnvironment { # Try to find vswhere $vsWhere = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" if (-not (Test-Path $vsWhere)) { throw "Could not find vswhere.exe. Please ensure Visual Studio is installed." } # Find latest VS installation $vsPath = & $vsWhere -latest -property installationPath if (-not $vsPath) { throw "Could not find Visual Studio installation." } # Find vcvarsall.bat $vcvarsall = Join-Path $vsPath "VC\Auxiliary\Build\vcvarsall.bat" if (-not (Test-Path $vcvarsall)) { throw "Could not find vcvarsall.bat at: $vcvarsall" } return $vcvarsall } function Invoke-VCCommand { param( [string]$VcVarsAll, [string]$Platform, [string]$Command ) # Map platform to vcvarsall argument $vcArch = switch ($Platform) { "x64" { "x64" } "Win32" { "x86" } "ARM64" { "arm64" } default { "x64" } } # Create a batch file that sets up environment and runs command $batchContent = @" @echo off call "$VcVarsAll" $vcArch >nul 2>&1 $Command "@ $tempBatch = Join-Path $env:TEMP "par2_build_$(Get-Random).bat" Set-Content -Path $tempBatch -Value $batchContent -Encoding ASCII try { $output = & cmd.exe /c $tempBatch 2>&1 $exitCode = $LASTEXITCODE return @{ Output = $output ExitCode = $exitCode } } finally { Remove-Item $tempBatch -Force -ErrorAction SilentlyContinue } } # Find VS environment Write-Host "Finding Visual Studio environment..." -ForegroundColor Cyan try { $vcvarsall = Find-VSEnvironment Write-Host " Found: $vcvarsall" -ForegroundColor Green } catch { Write-Host "ERROR: $_" -ForegroundColor Red exit 1 } Write-Host "" # Build command $clCommand = "msbuild.exe -m -property:Configuration=UnitTests-$Configuration -property:Platform=$Platform $script:RootDir\par2cmdline.sln" if ($Verbose) { Write-Host " Command: $clCommand" -ForegroundColor Gray } $result = Invoke-VCCommand -VcVarsAll $vcvarsall -Platform $Platform -Command $clCommand if ($result.ExitCode -ne 0) { if ($Verbose -or $true) { $result.Output | ForEach-Object { Write-Host " $_" -ForegroundColor Gray } } Write-Host "Some unit tests failed to build. Check the output above for details." -ForegroundColor Yellow exit 1 } Write-Host "All unit tests built successfully!" -ForegroundColor Green Write-Host "Unit test executables are in: $script:OutputDir" -ForegroundColor Cyan exit 0 par2cmdline-turbo-1.5.0/tests/commandline_test.vcxproj000066400000000000000000000047741524160147200231700ustar00rootroot00000000000000 Debug ARM64 Debug Win32 Debug x64 Release ARM64 Release Win32 Release x64 Win32Proj {e2e11769-76c3-40bd-bf1c-a9198481bd6e} 10.0 Application Unicode v145 Console {d0a94f83-495e-4fb2-ac33-9a3ec2cc263b} par2cmdline-turbo-1.5.0/tests/crc_test.vcxproj000066400000000000000000000047521524160147200214450ustar00rootroot00000000000000 Debug ARM64 Debug Win32 Debug x64 Release ARM64 Release Win32 Release x64 Win32Proj {48aecf41-79c7-4739-a80e-b4cd22cce099} 10.0 Application Unicode v145 Console {c4657dcb-7b83-4608-a1d5-df38d37c6fcf} par2cmdline-turbo-1.5.0/tests/criticalpacket_test.vcxproj000066400000000000000000000045761524160147200236640ustar00rootroot00000000000000 Debug ARM64 Debug Win32 Debug x64 Release ARM64 Release Win32 Release x64 Win32Proj {862b6aba-d1c6-4db8-a893-747cc8b5d0f2} 10.0 Application Unicode v145 Console {d0a94f83-495e-4fb2-ac33-9a3ec2cc263b} par2cmdline-turbo-1.5.0/tests/descriptionpacket_test.vcxproj000066400000000000000000000046011524160147200244020ustar00rootroot00000000000000 Debug ARM64 Debug Win32 Debug x64 Release ARM64 Release Win32 Release x64 Win32Proj {4e77ea22-b1fa-4fc0-8e13-74953de245d7} 10.0 Application Unicode v145 Console {d0a94f83-495e-4fb2-ac33-9a3ec2cc263b} par2cmdline-turbo-1.5.0/tests/diskfile_test.vcxproj000066400000000000000000000045701524160147200224660ustar00rootroot00000000000000 Debug ARM64 Debug Win32 Debug x64 Release ARM64 Release Win32 Release x64 Win32Proj {6612248a-ab2c-400b-a879-89ca63dbfcd1} 10.0 Application Unicode v145 Console {d0a94f83-495e-4fb2-ac33-9a3ec2cc263b} par2cmdline-turbo-1.5.0/tests/flatdata-filelist.txt000066400000000000000000000001701524160147200223420ustar00rootroot00000000000000test-0.data test-1.data test-2.data test-3.data test-4.data test-5.data test-6.data test-7.data test-8.data test-9.data par2cmdline-turbo-1.5.0/tests/flatdata-par1files.tar.gz000066400000000000000000000054021524160147200230060ustar00rootroot00000000000000‹íÝmlT…žàÓ" ØèÑd/o^6‹R¦ít�pWn W¹µbµK·QÞJ;RDï’k*ÄÍJ@Ü â’$(PÝ% âF   dV[oÜ_VŠ7A@a¦îÀU‡ mg¦}ž/ÿ_rNçd¦g2sÎi'wD¬¬*6-‹æV„ò‚6j ‡ÏÎfçÏ‚‚H(?�ŒDò#…¡¼H$åå‡FCm³;ç{¬*­80¨œ=;–l½ -ÏP%E[RVtÏ>3jÈŸ÷-ÿlĈ÷ÿ.ø·pÝüçŠkWÙôù™µáЧëvLÍjY»gË|¸eæt‰Ï-óº7²ÏÎâDûYS³âé²¢Í3jvÔd7NørîÂ)cNŸÿ]äÅE“‡›zMÿì¦×o‰eAU †¡ 7˜D›sôGm?leÏØÍKú?3ý•ikz”>1±f~Õ¬�/5=xõsûn�òTIxãŒD[^’¶kЧÆaûo¨\´ôûYÃ{m =:o|í°·êM^s¬1:sÁ©UÝ‚D[~’¶¼ãû¶j캹ÇëNn_sïÊãáÍïgmí7yÈ!á¥ÛK¦Ö¾;ø‹D[A’¶¯ÇS÷A‡—Þ�3üÔКy½—Äj*º.™yÅg^¾~Á®¢IÅ&ÚÂIÚf-Œ§õ¥Ç*Kš–�_�s¸ËØ‚¢ìᆊW«W”ÒÐsÖ˜·O&Ú “´Í;O{·ìÚÖ÷ñ¾ý÷�* wÝ3i˓ūïÞ�·7ض³|ÜÊD[$IÛ —ÇÓ7_ïÞª°ñµƒs®}ä®GÞÌZöiq}Mõ©ÞkËësÇ,O´�LÒ¶çšxrûìœC�F�l¸ããq sÊ»}0àtÝ;}¢}F}´óžÒß=Ÿh»9I[�ÚxºsÁúÑϬ¯Þt°¬ßéêC÷� 7 ÊÞWžðmãºÛ޾·-Ñ6ꜶÙ�Þí. ´ƒ müÒXª�H'©>:µÊsÌ€öW �Y— :‹T¿go­ó@¤úUàKõE©Ž/ÕÏ0p RýÀ%IõÇJÎz²ã;ÿ_¥¤zo -2Lªß=𓞀45È �@§�êïG:œTßÈC³yé"ÕoŒ2PªOðÑjRý«ÔîÚD\’n@ÆKõyF€_,Õ—ÜÛ@ªÒN+ÕO<�Q—t‘ ü2©>§¤·Tâ:žî@§•ê›Í/JªÏv´¯TŸ¦&£�~Öo[ü.`>@Gõé-Õßæ@úzÒOª :ƒTŸ°€Î#Õ÷7ü…TŸ.!ÝÍhWÿ�™¦@‡¥-ý#d¾¿.ÂmË)‘êK��nn Uýà©~o´»T¿ì\¬~h8�Nr€äF@&¹ » €NçW?åj€*H©Ü±²ªØ´h,š[Êo›m„šEÂá³³Ùù³°  Ò¼áÐÈH$?RÊ‹D‚P^~hd8j›Ý9ßcU±håÀ�AåìÙ±dë]hy†*)𨒲‚ {ö™¿º¹híŸþü¿ÿüû__}bAyñÃ+z¬]qdÓçgÔ†+ž®Û15»eíž-óá–™Ó%>g´ÌëÞˆ¯Yœh?kjV<]V´yFÍŽšìÆ _Î]8eÌÉãó¿‹¼¸hòâpS¯éŸÝôú-± ,¨ bÁð äÓ‚hsŽþ¨í‡­ì»yIÿg¦¿2mM�Ò'&Ö̯šµó¥¦¯~nß­Sž* oœ‘hËKÒvíCñÔ8lÿ •‹–~?kx¯­¡Gç�¯öVý¢ÉkŽ5Fg.8µª[�hËOÒ–wc|ßV�]7÷xÝÉíkî]y<¼ùý¬­ý&o1$¼t{ÉÔÂÚw‘h+HÒöÕâxê>èÐáÒ»s†ŸZ3¯÷’XCME×%3¯xàÌË×/ØU4©øÃD[8IÛ¬…ñ´¾ôXeIÓ²ñ«sw[P”}"ÜPñjõŠòOzîÏóöÉD[a’¶y'âiï–]Ûú>Þ·ÿ¾Qeá®{&my²xõýÁâÁ»óöÛv–�[™h‹$i{áòxúæëÝ;Bu6¾vpÎU£�ÜõÈ›YË>-®¯©>Õ{my}î˜å‰¶‘IÚö\OCnŸ�s`èÑè‘ w|<®aNy·œ®{§O´Ï¨�vÞSú»çm7'iëQOw.X?úÙƒõÕ›–õ;]}è¾qá¦AÙû þm\wÛÑ÷¶%ÚF�Ó6 Ó» Õ•í €´q¤±,àÿ] @êäŸão ý�„Îl —à·ÐYŒÎ|£ZE@¦ ÑÆ �Ì•@&Kõ�Iœõ›Žï†ó .Zª/+ÕÑÀOúHSƒ€Ì�꫆Ð>†´®Á¤Þ�é⯸X}è(t6Ûh[á’¼d¼2UmÇ󝤯Rhw«ÒÅrà—IõÁ ¤·çZÙ�Në™Lò/�ÊÓðËU?ë±ÝàútT©þv .àZø½ ýü ÚÜ•@;é �^z@R!€vÕ 3u€#‡¶” ™ïcà"|Þ±ü@JÌÎó ­*Õ÷JéåÐÙü à È@/éä% ¹å�Iútb¿ ÓðStPAJ厈•UŦEcÑÜŠheÛl#Ô,Ÿ�Íþræ6/‰äG Cy‘HÊËÏ/Ì †ÚfwÎ÷XU,Z9p`P9{v,ÙzZž¡JŠ&¶¤¬ èž}æ��\÷ï7ÿwãù}õëo}þfE�µ+ŽlúüÌ�ÚpÅÓu;¦þðs=[æÃ-3§K|Îèr~q¢ý¬©YñtYÑæ5;j²'|9wá”1'�Ïÿ.òâ¢É‹ÃM½¦vÓë·Ä‚² *ˆÃP�L ¢Í9ú£¶ëÞÈ>;÷ŒÝ¼¤ÿ3Ó_™¶¦GékæWÍÚùRÓƒW?·ïÖ)O•„7ÎH´å%i»ö¡xj¶ÿ†ÊEK¿Ÿ5¼×ÖУóÆ×{«~Ñä5Ç£3œZÕ-H´å'iË»1¾o«Æ®›{¼îäö5÷®<Þü~ÖÖ~“7Œ^º½djaí»ƒ¿H´$iûjqn¨xµzEù' =÷g�yûd¢­0IÛ¼ñ´wË®m}ïÛߨ²p×=“¶wÌòDÛÈ$m{®‰§!·ÏÎ90ôhôȆ;>×0§¼ÛN×½Ó'ÚgÔG;ï)ýÝ󉶛“´õ¨�§;¬ýìÁúêMËú�®>t߸pÓ ì}…á ß6®»íè{Ûm£Îi€ÖòëæÜ par2cmdline-turbo-1.5.0/tests/flatdata-par2files.tar.gz000066400000000000000000001347371524160147200230250ustar00rootroot00000000000000‹ìÝy Tï×pŠÈ¾%’B…ìÃЬ‰ˆ¢,É.û¾diOßTÒB"!”(%ÊVHö¥„ìIE"„èm~“7�Ù˜™õœÏSgÜæÞ¹Ï�™9çõ´öð´2÷4q5w'!Dˆ})(ô·ßá…J~¿o�””¸”¤"N"——$á#ÈÞ „—‡§¹;‰»‹‹'º¯Ãtÿ< Åíâ$:[ô~üÝ›²{1Ucµrz{)õG«Þ’°ý7h2ÄèÓ‡†]i;üýë¹ÄEÄH6Ù9Z«X{Xn‚Ô…æ@S©!�µ+Þ‹KG«$z�ÄŽÅíŒ�>('Í]f�*º z®HÇB2¬�ç=DpÁÿ¶ê„%D` ïÿ÷Á~‰IÀ�Á¬¼F]ZúJÃÄM¨öA}“®2ìë÷A×´�”NZA•õiÕ˜»„T5ó3·åÈr/JM'8„Í ‡ŠôÛ_ùž¸a\ÝVVvjÅj¨§¾p±fšVd׋¦„G-êw¨. )ÉT£tç)5dd_%ã”Ü\ÇÍXFà�÷à:d¹•M½Õ9I·êv¯êýÚgj/|Ô^Mö‘kÅ�ª¢ßÞë ¶¯N:es= YN�ò’Ìêv/VÉÁ OØHݯ®²Nøl`w¶lEÂÎU›ój³»¸Ô·#Ëín °–í4÷Þ9¸·ðnbú» ÖÏÄ–ØhßwÒkÔ¨Lïê-MOݸ³YW0Íà w¤’÷~½¾�äŠÕn\çWYûg~Í_ºÕ‰&Wœô{p^8²œÜä3æê*zɃ›„UV{wÊP , Vš8²•ÓÕëj”´6¡G“�—D•&¡¯ÐìÏõ{'ô¯©”GGí\¢ Xªe×¢’ºmrûnºÒÊ6d¹ðÛ_ߊª�jÝþЋ‰Oä¶ÜÉ›_?}©$s§dPìx—EaUFq|ÛÙ³Aþõy+½µ9ùG‰¹'j~ƒ:¬süfè›®b¨½…ý�áøzÄõ>Ö>Þ_¦ŸµDo¢ ºK$z¦õ^{\˜Ñ[ß6Ö�Å`Í–óy9Õ*Î.?á�d·ØÔ{€Ÿ‡sqÔ§ÝŒçŸ*í:¢½íÈzwÚz‡üºÞ;¬÷·œ‘�ãI*»þû’o|(n?¦õޏ=YÖÿ)»úú$ûzÕ -9x�š¬­�mÜ_NæJÎQe]ÿÉ«Ï[Ýßv·å7)Šì¿v2k£¾zvá£Ñ U{vMNªœÚÖØy“cÜ\«Õ–ÙꪆFȨZ(­rL�>…L¿íK%eÍKìñ%¢w&^}ØÏQ`µIýatÊý0*r1ycÈÓz�a¿S:ÝL5Èr%\ƒÏxw׌Òïuv¼,Ì3¶¿?À¨Hƒ§«ôV§+—èÆMñmÈrPî6½ÌWûÔ¶÷í¿ÌŸPò�Iœ B’þÆþ(gsÌû´ÔUOJè4ûwÄ Ë)sfŸͬ3‘Ý}PÑúM™Ú‹ &:Ÿì<ÃðÊöÒ–¨“Š,÷®žÛåÅCƒm®Ãa�I5´K÷Èr®†•ŽGú.“¼³|™žÁ †bIÂÙcž—K£¤(‘å\HÛ|<Û$$¡Ø’'FÌú’jl(OíÚ™9œª«w噣ENf1²œÍÓ›ôýn)-<­åëÅò0cçp€¶ìÃà/ÁW7—˜]nv~¸>ɱ­Yu+²M]bÚÕ†ù&{èöÑò^}ÈzøÃƒûmm²v12mŸS÷8d_Ýí5^t¨Çèµ«ï ˆ¦÷Ôýw² YN‚BMí£8+Ë*û»”Í”5ê7ìù‘ýb—®²îIÚV+ã—�ŽË¨òò@<¯þ%œRn) ü‘ýÏ76`:¯»ŒB’ͽ-ÈÝ“JX÷®üXúX,våí´F7úõ/·Ùe�†tm­ Ø;Î’`S+²1ü"å´óºùyu°™,cðÝ«íºlP6)[ÓyEÜËÉ•}1É#£�‡Œ¾õð_ÜË;Öq–äž ÿa2'‹o’UFg‚ìUÊ÷ ËYT>§ N§NbªÜ¾6/]ò±…‚f“åVy ¿O*nFº½�xèÿÈJ#©||©#ãóÓ¬ô•“ÿ‰e ônÛýE-“'>ªúåãž½ªutc»wì_˜Å5Ìݵû O�z÷ÞnF©¥M/^ˆRFÔùOžŠnæTpøP¤\{¬~•L²\ùɺV/ù—Š7V½¹mÙ«Ü©½LöJ°�1‹U�°}àfÞo|*eÂï6zÚ§i$½gîX`­VxíÉ"eˆçuQtßʇUj/2²V|¦åÕÁt^©rúÒŠ»±~{Aáêë¼JÃ…¦�·ßüeê–Õ7›EÏWNÆ>d3g“i.ÞaªZÍ<í¼Jÿz^mœ×±E‰1V!'i\I�1�WÄ}8£°è¥rL&•ÒÒ¯U^mnøø.e5²­(É-ÿµl/;v‰¦™‡¯H3É1QÔ9äêÊ¡ÚPY“&|ÁX÷´I ²_ _«ñ$ÓW—ó©5ò‹õ}©—¦õ2C™7L\ºº—‡e‘ 4ÎHñËÍv d9£Q³ŒÒ¹ÉÛ—{ âöæRVÜΠ’\—A¦öQ?ÞŠâ·ôŸÈta›^¿ô™öú"Gh€]Ufk]�J‰Tå#é‰ÂÕIñ°’ˆÀ@C‘áK½ÝˆçšJ&<�12“±W�¯÷q»¼+¦s-?jÂÄê@–'m+Ú£n» U ~µûñsÎÂL¹bö>ja9µÇ âZÍ�ŽG/"Yb2í\‹ÿz®ãœke…Búqa£®ld ýä™0�kÄ}8k«¼.2‚$ fïúÂÓ÷_8 ,ë¬ÿòðNØÑÞM/\=Dh,½ØcdÄﶸœ¨Š¿½´¬x@üqæµaûYM�åºöè’Ÿ¯mz¸Ïܾêfyì~Ÿ˜2Á¦Ð� ù¶÷÷Ë~ýVì©-·ûâYd9:Šç‡$_›TÊhû½ÝŸ;ºñ­ùý=V$N=·C;DsÜ<ª7¯€¦Ý=Š,wÞꔄ³q–X)Ç£ {òcŽí¤Ÿo=K¡² ‘^*5>åºØG+‘,t�²œæ>¾êcÐcGË¢˜_­[^ôä`lÜAѤ3wi<öÄ{‡Óêe ö?E–KßÂ*ï}ˆ‚óuEmg¬ÚGÛ½×Ò׉æð«§•º2Œ�Ê3¥®ô©`Z';.p¯ï—ô"Ó6Ðdš}ÝtÀ]çSˆÚUšö…*Š F¡-®É{#l^µPÕ“nÌsþoÚ:‘üu�TüX'{2Š”eu0‡¦·Ç*Õ@1­Ä}ˆä�Ée©7©"—c6jã«M±X§"-Í^Åí'`šcö`´èéƒ�ÊÃÈr�ÛrE8Ù [¬M8X�Û²Ý^ßb*'Ó-c×ÁåPêùJ‹aäöd¹þ]Aìêá«Y×”·kÜMõ_ yâÖÓ®ʺ+9�í²Ô%N«kÞdCšc¸å/�]“°¸¬!éëU‹› ]vJ»N.$3‚Z´ç)§Ûøeõ]ãR:ÅÆoÜ9ú‚'âÔŒ\Dºüëfg±²$.Õxù($ñý£ÐÆ?d97¾ã½E9"EÏÏ1Þ¸&NuIç\«õñÂÆØÝáÂC¾!çïÜÛËŸ¯?€,ç.Iõúу;ùå+xŽ$�£½{ì½zäÝOÃç.¯ç+º»¯ ñŠèÄõô¬¢ßÂDÏdÈĘœÀl�i=UD—ŽfP¶(eäÉHôh|¦ànk7Õ¥ç ða9ëÙàJ~Ö‰Úø[<ÇÁEý­M½ÁÓÖùzRoçVé‰ð½¨Ô÷V÷€¹Á+Lë q�½îìÕ¶áoѲЋà ßJß7Øj@q7<Þ›i�~Å6Þç&¾NÛ•9is�åŽÄ©¼´×â¿“ZVðF“£©žß`i\— •¤dgO\çÚH¾‚È[ÔAîŠ[m?yFð—ø$XH‡¼îðnÙÕ{^DäÄÅ›þ~Vì“=ÇŽò¼ ÷®�ÒòI ¦Šã Œ¹d¿Z±.Fð£ý“ôG”÷—䨇kÓk¯Ê9QÀž…,W#æríTùÕOÂ'Š|J.Sz‘¬È£[}JØÑvL¤ùI‚@× dÂ{±$×4�˜tÿ±V¹gE§…Vœç|L¹4þì¥Xá|yá³�ަ§¥Š>f?‰mŽ»%Í·Ïâ–kop›S®Cê×…‡eeŸm19¾…åÊòST=A½ªÿÕªr2"®'þ‚8烂 ñ£œ�Ã2Cq(¿‡L­§Ñð>÷º}ÇßÔLŠ4Y§}ðúúÓ�µ{³­—Mîm3T…~â^ðTªù¥5qsYþâ°iëIæ×õÔñc=‘wT/5‡>¿Wû(°r¿}x¦õ„¸Ïo§¥¼êæ“^S|½tyë'í¯ÝY‚Øæ‚ž¿Œÿ6àxÔØ€òÐMÅ«Ñû¯Ç¶Ó*ŽZ/öVh±|È¢pH#î^À79m'ãÿ"XsSw$8tÛŸSo^=r³‰Ù,u“s•»-ãû˜r'd¹çK¹ÎK.¨Õó5J7üb­_LjuÁ8ÎDç¨b‚l̽î[ÉE¾êívÈr~¢Nq¦'Ù¥=Å»ŒŽ¾hW;|¡�»™J™ÇoÛµÒ+ dÓÆ7é>µ3IÄ6w~“LÊÞÑÆ•{YãlÜx_[æz2n,£à¹þÔrÅÅ E�¨«×ÜœéRD‘å©L¸¨2‘ú›œH!ó”»ú-äø¥�Èy_ì>yUVE½ d¶�ªŸG\c;å&‹F4bÜÇ¡Éí4²ß/ZERpõBѳ/ž7O“´m<õ¦&»$ŸÝ—}ùSk(yµ~ö¾­W�H‚yJ!5$ùÅ6ª‘>£ÓÖ˜Ô¯kLåÇûE�Ñ¥cG5´ŽiˆÜ¸ÒÁ mÇ´Æ÷Á m㎵-}猅Iôz³�^©ßyfm�‰tèIgÎ…ü¥‹Þ¼±«¦ÙÆqîDëõ*H€Ç�¶æ½&{㙟š�K‰×ú¨MÛÃý¥Ob û“ó4*|"¦glÙ­]éíé[ Û#ËÙ%‡½'c‹©Íáêîë”ØÐóB™S«gÓ‚ÓÖo$CM-Þ„÷Ý3c'{õÎcÇZ_­Â� ¡E;[ÚŸAJlTÙžß“ß,úag¤ÅÆRî+ûËeŽ a›sˆ³¦àWâh?”øÑsÐÿJ£)»z M QÕ· ¾l«ÈÛû¦†5çøã6wi†o¸åëÕEóz¿nF]Z¸¦AVs‰þâÊ]ã†\¤¼oúÞ`›³½;z�wô�”„û×Ì•F1"TJN‹Ç Ü÷®":šñ»W¶^|åŒ,ÇUI¿–Ûp²À«MƒdÒÊîcÇ*®ýj O›*'OI5czØÒ•iƒ,w˜×âÚ‰á|É‚!ˆãëõ¡KŒ¯Ô¦ÖЇë80‡^îî�mkÚ®×6Ä£ZCZævÎÿÛ`É�× H~öF|=�øâë2ÄŸÉßÏD|ßqý"~F|ÿêX ~ë¶Èá�‹#‘Gî°źÆëAP«²»µ¹§‹;üÖÚŠË—k›—�¥ƒŽ¹;—˜”äo ‘ŸŸÿy»8Љ ŠAðþA úÏÿÄ×A¤Ä>ÿ“€®“ŸÿýŽøÿï-?®o^ûŒÅŒ‚á÷õ¨¬iõDu­l·¶ôÖu´³„m³s>ƶ™ñ§wifì@XÄn<„Ñ¿†?‚m*8@ü/àÏÁ‚ u�,f<¡— �г ÚïAEˆ &ö Ä‹ [q u̱™¡6-T@Ì*”‘‡&úpÆ"\PÖÛºþ�ùîÓ‚ÿ&êÀ×£ýAtO�1†øÿ[Í0†9Ž�Íu<—˜õµï {„°›{ Ú•Yƒ/>Ãg¶�×GÿÝ1ë£%ú'ÃcøcD}¤Èóñãã‰!dàps;¼< ±²5²ÿ�ô%êïzg‘Y0¢ ¤[àhrö!33@è¡= ‡ôP€ ÐCz(@è¡€è¡= ‡ôP€ ÐCz(@è¡= ‡ôP€ ÐCz(@C ô@ÅÄsÿ‡¤”8ôü©@ìÿ0úÈÖ|ïýkú¾&NVLý°ï´¬¾óOÆíwÖˆJˆÍ³Lt®Ä¬úl4 ‚¹¦›v ®Þ€a±€¹ø”PâMPY¶òk a”-îúU§ ޜ$q¸<Õ¾ÙÐ8ù”ô“–(#þʼn·ô6tÖ”<\ƒoÎÇì×ÌÝã­]1±À¿{‚÷¦ÜIí°wKêÞ9d†,ÐIQò­ÃD¤Ùã*>—Ð ù8 %¯Ð3”Ïg7éÞûIÕ?‚ŸcƒG €ûöPûøL·_hü)É5襅«ü:‰ÿê»í¸H%eí!+Í]¨xìC¦˜¯˜ï³ñt*®åÌ•*tÊ-÷騄±µa™ð0þ(:ÎN¦UdÅüµY¿’øþ´xAL†±uà®�*×õ‰Ó�¹Øš}œ0ÓàŽßCé=¶ž—†þ½•gâ±À7‰ÜKz3­0ø=“Í$e4.‰ÚŠaB`öÃ' Á‹äˆ@ÿèÿý ÿô€þÐÿú?@ÿèÿ€èÿý ÿô€þÐÿú?@ÿèÿý ÿô€þÐÿ1_ú?¦êÂË XØ,Ö4*|Ê?UE…©.v™•xÏ?*ÆÂòˆìè‰MËGt>«`æÿw—%ÿŸj·³Ã˳€óq`La>ØŠ�*,çödÆPñ²S¿Z‚;f–ÏL„pRn»NnÍlD°‡¦jFL²ã/q{’"ŽÎ’±¡D|{I´fîOŸ:„‰wþiþ<…5ÈŸÀ^ÄrÏKÈÐê£ãø"̉Cܨ<@ﺫwÌ‘ÏþƒÑ~iûy> Wÿi•~lɆî!îÊë,­™"Çóÿ”»›Ð[( g¶�½¹!y¸PÒo#Ó»,P9�„ÌËÈ—‘MâÒÓ½5ìš+Q›)ZÓq1a+vÒ‰?¼g‡”íFÞüň_iÿ´~9L/`«ÖŒw5*›ÇˆSí·¹ò£¾ìH N×à.¾J‹['ïÛ³þ½b¶Ìä׉oÛ� Åfêþ=8,gRïßhƒZ� !ÈÁ§%«"I�ºpPêÂA]8¨ uá .Ô…ƒºpP PêÂA]8¨ uá .Ô…ƒºpPêÂA]8¨ uá .|¾Ô…ƒß ðwÂü A1èï�ÿ�¬[»ï×ùÿ’(˜ÿÿ;±Ï#]Iª®â–ÞUÁ½-Íaw–cêóXø}›‹ùg„C¦ÑÃjb£ª„ޤfv7p·qË¿À‰®2†=w²îÌ#æ S ¡°'£òj½M7aT/¾Öò«ÔnÜ©é�7‚Î;¸µr´ª³q¶˜WËþ^ÍYüÛ)GÜØ–žçDÇ>vG5¾‰…µ{ÌÝ…LLôãß+² ³)Á”Ôö’Ž®êB&à:ýägcbÞÄx= Fäß¾ƒI¡:q&0|lÑ|týOYqøq¡Òû¸o¤ ©3Y'Fü)ª…èEhÁ5K(?CÏZ­®¢Ë&‹ !¨Ê&•Å�ácàc°®W•šN%èÓ\íkºngl «\¿‰?¹³“¸ŸÂ~þrMů=QÚ5cL˜Ÿ`ëÈ¡{/Qyu™8ÕxÏU°ÙzNb`ºw~L ë±µD�\öïu€j&v|Ó+ûì>Óú�ßCªc&k2FZÔ„ëáØ0>-,^²èó} Ïôy€>Ðçú<@Ÿèó}°} Ïôy€>Ðçú<þÆ>�©š±ò\Ï»Œ âOº‘émEY—?U3Fö}ηó=)™"Q2bÓ_ŠÎ¹PÌl pG+ñ/¨Û¥© “wL.Ó|æèBá´DÅ%I­–0„)®<ø•“ îNøÐ�"„ n¸ì>®ÙÐÒP ,H;Ž6YÄmÍF•vtjÔ‚^â{˅ιûØ{˜“›Êø§Ëø`ÊpÎÕ {›¿U"ãæ„Ž\qC&ÑTGÞ£”Н†#ŒCØ«70;”¯ÝŸ�øý´E?¨…°q¸€SZ,ûm&%yòÆ?ʼn½åÞp…µ™Уiñ«ÀŦ·Ü‘„ÐÔ~b!*aãÈdde1m3Ÿ.ùiDÎ\ÁgŠÃèQN£‰-�‰ñwøÃ®5;ò‹Ëæ/�øužÿO;Ã�Éçl±\^±•·Äi5õ\Å0($Ÿ¶á.HíÆlÔ½²ø{õ•ÏÔ…o t9bg’aþ=l5g2Vºp5Û¥„ñ Ÿ:ÇÛ›�Y9`V˜•få€Y9`V˜•ówÏÊuá .Ô…ƒºpPêÂA]8¨ uá .Ô…ÿÝuáSµ‘çöoÌÕ3 MÉb±>ò MSm$ù÷m æŸw‡ès|!6_¯ cŠ…+Ïq×ÿ/àÕ�HÃ|™¨ …[hÀ¨Ã>"”§kPÙ }ECkÕ¥cˆ»[æAå„ÀèÇ5T70©¯×.Ò.~€ôãÄMÒ»Ñ� S7|ë´ªÙ1w~9Cª˜$gá_:µÕ³‰·mö._¯BF[�û™Ì+1¦Ò±A%Ò =ƒ�½10& Õ‹`¢»é æ£ÝÃ?­UÇV l\÷à¾.Í1ÿÎ¥?%£ =§ 8Á«æèÝ|Ǧ‚ cÆŠBh¯Z@�ŠY/R…f…œšqNÓítèp›+Ñ]Sèc¦KÀÖÁʈIüYñtv<;ðiþò|�_òÿ4*L<Ȱõ±Âæ*­ÄI´v®È "3‰AÒKÜ•j°c뢬 Ðß«iÓL"fø–$ÑZ5Kþï¡Ï8ÓÕî¨Å_$„o|êbi`Dfk€Ù`¶˜­ñ/ÏÖuá .Ô…ƒºpPêÂA]8¨ uá .Ô…ƒºpPêÂçC]øTý#ÝäE•Îþ#‚Ýó:©?`ª\ô}AÓùÇzßoD�ò‰ }$:Í)˜%uãîØÊÁnþ�I05ý¦¸J+¦à:LÄ BY-� ¯õ%u¸Z˜Üó+Ï7¸}NéBM8îüÚ’Ù /òÊ•%U¿â³ÄÍNnÉBt‚N™âÛJQºes—÷Zm“¨OøÇYº£} Ÿ �€½4Á�d¬kй?Ô,„É’K¨QÉêG/QòÎ27áU˜3Ö¹ó‘Þ¾ŸÒEñãq6<8Ûg[%gâ§�ÖùSÊ/£w&îñvRôÜ�FÓp¡}Õ¼˜îµ¡@%o2•œ•œg«½H¦{“Y86WæS†ŸNgë„-¾NWü .›cZ¦ù+L¿^ŽýiB㘴4bË0õòKTtɈ[Å\ Xƒ‘E¸cz¯ù¶„¥Gý½b¯Ìijßâ}»fÚ}æ÷`I™©ÔN^µ BÐÅ'ϼ'TˆÀl 0[ÌÖ³5Àl ð;A]8¨ uá .Ô…ƒºpPêÂA]8¨ uáw]¸Á�cÝ9rq$òÈ– X×x=ªcUv·6÷tq‡ßZ[qYørmó²³tÐ1wç�’  QØ »\E¼]ÅÖ ŠI‹¸š»‹£Ýh–!ö=¤ ÐÿÝ~�_oÅŤÖA¾ÿy�””¸”¤"N"‘�„@I¸Äð¹¨ÂËÃóûÓÄEâîââ‰îë0Ý?O±^óÍŽÔÔ³u½¯ëTW° ­AY=U¯Iñ})­ùGéšÝuD·¥‰Í!1t51»B‰;É5ÿ‚ô•Íû`I¼m†«`‚G`|4 %-¨BaaœjtNü•t1îÑ;éÂë8ÛFÃÙÝ.ÌyÿÝIMü»_FÜ>ð¥ïB§“ÿÖ| ÙžA7wÂEÖ�˜¸ìÿRùÂSäC¥Rìª,HFÆM�ná„DLî‰&¿Ce ) dÿÓÓÎH ³ÙåÙè|d¡ôÓâTü áÃÆµ^.�÷ÝLß¿MùSÖ)£©…{áý€Þè�¬%¸8½�Ղ¿õ Â¡�LMMŠ¹ÇÆéRßnI›«�oSø'¦«Þƒ-%ª,ü hœ þŒ‘ùË|~½ÿú§µ�c²~ ¶Z´OÒ¡¢¦MœÖ3ÌU°ù18 …;yÆ­Øjýl±àï—5Óg/|»$çùb&ž·¿Ç±‰™Ê�*tPf%„·ø´;›Ç ˜çæ¹€y.`ž ˜çæ¹ü­ó\@/èE½ ô" ÿ=Ÿ‡õWYN!¿-ò!îFÌã�˜ê&(¿o#æ3ÿdùË* ’N 6ý>èlfÄlD wN ÿÒH]Ön²…pnŒ¸0LÓFB¹bƒÊʵz±„ñÂB(úW·WâîCåâ„ Å÷P¼úÒlØÞa‘ߨ߽ÿD¹‰ÛãÕ±Œè�y>Ç{TŽØJÌ]8{F&ž]ø—f-¯?%:¹ÀÞÁ;} È<ۊΞ KL$lË¡RЀ^RÐEŒhÞêå0â§�ž™�êm’˜À�ò0lTšpÛ:ÎÍôÜ~ÌüOa CχÎ.è¸5z]«qq·x¸•’êIn "勌ܹ;Ì_'ê¦;yù⪹J4š¢U:[¶Z5:Jñ'Ü|vVU^i�¿ì:ðKú§]âÇDr%¶F…‚� "PHœ¶ï›«eFùkˆµî¬ö„-ÇÖ;ï¢Ò¿—ïøL7âgöžë3ñDþÖâ3Y2ZZ¡&_I$Tø4xø}"0ÏÌsó\À<0ÏÌsó\À<0ÏÌsó\À<—¿mžËT�ˆi¿\¨ˆ‡‚�lÎö1ëlZL5"‹¿oÓU?ÿ?Ê‘Bd9Nl´›ÑìÁì£îªIþuOHnÃK®‚‹À<‚Yº›P¼êQùY[I»ìõÿU½.îŠ}úè áh5œ]ìžÐÙh·{¶c¥™sþUÒ7³€aèØ'V“á›”f`ÎÜq½ƒb"ŽÅæ‚eSš%ÖôØ»¹a’ªOèäßWpÁdóÐÎM¨Q wìúø#Û™B»=ïïÏGOný”æ„N‡°AaÀ%n7œ)ðk6ÇŸ²éz1‡à¶‘Ä)£gá"“�‹::ƒBˆ%ýï*6½Èðºòº¾fH›îàãâü¹z™=e­Ìt×ò°µP‘ØÏŽš†èºù+Ü¿Ä5þ4wLžbËïC"Êàë%N¥YsuÆÖ¿–ˆIâÎtÛ[Al‰6�ôú{:Ïĉo¾"µã}ö÷X›7SŽr¿?j �„ÐÀ‡O7²\)�Ù`¶˜­fk€Ù`¶˜­fk€Ù`¶,Àl�g¶Æ—ÛùÍŸ½RYKíÔ«T[0ÎÖ€Õ†´§Ì?ïÛMW"Šw'6ÝÎè0®Æ¬Mw�¸�Ë¥¡n˜f¡Ûdpw$x_ÌNjBÉۃʇÂ=Âhk½ÿ«Ô[¸;˜OÆD5pñ¼\³aU¸yçfGwt"nŽ ¯Ñ=,›Œo«e8æîɺ-B˜\€àŸÔ†ŸÿCzeì9ä•*#3ö�SÚö˜(;§¡’ý =W�)˜øÇçu`¢›u!óQ噟ú^㇠6¸…¸=J†Ö3), ÿSÊ.£ç>÷N½ž½�Ü`*\\ˆª'nÕÃT¾°"Óý¸û1UÂnÿérD#8æÊ½dÊ&íéÈ×aëDœÉ#üi™�jQzÒùëk~ güi¶˜”ÅÖãNrTø…‰S¨È\U𪈃:Ü‘6¤Šb«âέܿWÄÈLd²ø&ÉèÌ:Ó±ìßÃHm&ËqAmÔLΞp|z“óŠÌÖ³5Àl 0[ÌÖ³5Àl 0[ÌÖ³5Àl 0[ão�­!Þ1™“rvÝN¾':Ï’®oqÄT#Bý}››¢óO@@£"ò[Ä&.�‰ÌÞ=ÀÝÖÝÿ‚kÁCa$Їàìô˜ûg`RYå“*…¤„å;6ð«bCÜñ»ÅqBÔQ8¶gg̤Y›& Ðð?üã=EÜlöö¬AÇðyr¾­� О»*Æ%L "ð/2S�{ÊÛÈ~{rÊ×!sò>: ^¹…˜T¯.ß�Ê$%z«OðÂÈ™žk‚yj7°t>rü) ?>Ã�)wç¡iìLµG·Uþ)ùqèí¨ƒÓiÿÀ†žðáÂ]¸H;Õ&„èSÜQ ŠCFQPQÐÕxï®éÒ(}çJÙfJRëtÿÇÞ�GSµþW©4ÊÐtSW¤AæJE—DE©h�)SˆD$Ò KÒ¤KÒL ‰TD©P¡”© ¦dHQýìßùžgŸ=œsöîìÃó¼þ8ðXX‹e­Ïöþl9‹×D­ â–±f¹«™ï²ò ÖganË0Â2b&^û‡TE"ŸJMEŽìzuòøer®Øï¼.^»¼"w_oVÁ¹U-l¢ö.8Mé?#ñ6\ñ!Ï“ÈZ…ÈPðšH©ßƒ^2m ÐÖm ÐÖm ÐÖm ÐÖm ÐÖ€hkôœ¶†Ñ}�ì¯Í·?U�=oª|¶빉ÁÐßèY¼'Gö]£ŸšT£›‚ÆQÛø7œ‹¬ë ¶n(‘„$è¸DÓè)ÈÜZ²ÈÎF²FùŠ>9Lý¦Ww¥ò�sÉ¥¶‘a�MDè’2V¤?K{YÓ@¼Á—¨ímòC4æîžO´�KÓDz/á‰ÞY,£‡/±Í?‹®î³D€ß�9­ÌDlE3Îöø-,õFú"±MBäßç=¤íѲhÈ‚‚‰çx‘lÓoc] ÍM�Ã’pëŒÛc¸åq_týѤš–ÌBhqF‡RÞö6dðÝw»Éñ4ff<Ì8_äÛ™ãè9:ìrŠ¢KÓêÌi=^WóÊž§­˜5wß¾ä]ÒZÄÊuä6~Lwöàu¦®æ:’üÉÔXîè¥éÛ¨Àí.çä6·â;Ð^¿ûj“€ÛÕ‡hÁÖ¯mád¶ý“®À­}îh�,_– ¥YDú0ÖçF ­Ú ­Ú ­Ú ­Ú ­Ú ­Úݵ­aîàP% <ÌkõI•ïÒ­Xψ é¸3ó2ïéofÄÇH,ŒjjF¢9*…ÍoçþÊë ZŒjô jz¦4ÍVd†8$o%YNÎ@ò+ßÒžå9s5»ª{ιsQÒsÉð]œfwìq VæõÒrïöâÕì 8ÁpT|†eD“•ñácß:�¿ò±|Q%ÞîOÐ5˜ÜÓð;¥,¾„™üµh*§H;c±¼<ô4’/Áèl2&k@~ømÌ€ä¾?oÇ‹¶®ú­J—¶éx”hçŠÖÂéÖ{IrËCt…ù47ß ØŒîÖXᕜ�”cD†Õ™&AHNW0s±åbˈø‘Î2�zU±ËF–.=¸³d¼š ôåˆãWÇš½#ûïæ]…êÄòæ¶4,Ê{ðµnÒs$KÔ)j »¾‘§‚@ Ω‰Î¯ÇkIÞÉwÝ×o¸ÌwD›Q¾& nJ蟑Ü7Ò>y²X[2”É)¬úQ0#ÐÖm ÐÖm ÐÖm ÐÖm ÐÖm 耶FÏik„ÍSŸÒz7cõCki“o ˱ž›Úq'Eƒ÷œÕÊÈñ>Õ¬D=×=±E‡sîöÒž`³âÆ[�˜ Ñ4ÙÈD6$T˜, fHfèÌ5 Çíú]ÅqN¦¯òF2$î¦qð5ÎbÅ×€C÷¬î“H¼^C©mpÈ…4•~yQD»õQì ûÄÂ>c®G¼î¦óéËŒøÕðndFúo4B�!æX2OoðA¹]ŒÞE}ˆLÎ1UÈ�¦„}¼HÍã·å³‰Ñ_ƒ÷M–ÈÎIpŃ?\ã–~Mè–l¢Óæ`�În~ËNNÜQÌ'CùfÕ$É©ÌèDëDò±9ÛÙ<÷ËïØå¢O7þ[grWñл¾?q¦h±&ÛqEoÞõ<ŽX½u¸íË",Áïñzèvá-’O1Ô$£À.¥£Z¨@°€sJ»'|Å«NAmK÷µcœ¡Ñæ¤z'Á}Sø3Jäár²ÆÞG±– ¯>éбÀ,F ­Ú ­Ú ­Ú ­Ú ­Ú ­ÚÝ­­±ê_ëÒ-GþûzÂ7qøþ(§Ó† H_«–³•ùGgÚ«ÕzI‹m’K]m,í Ì�%åå”ùØ=rÓ ŸfèGYn«£½‚ÊdU9'sgE¶? “#ßqT••ÿÿµãt}UR‘WœÞñ¶éªªŠª*ò Š|ò J* Óù$å‰ü$�Ž«Ë–Žo¡$Ÿ³£ã´÷Ãz;�Æg––øÏŒ<è]^k>eÜšð©Ú/±žYì¸sH˜÷ìrî-ËÈØ†j =ÐÌnÅö!˜sÖ=�ÄÒ-ü�Iyš 4s«È±H¤,Y¦æ"ýqªˆ²Ò�.wUPȹ÷\üÉð2˜fÿ’J%Vä6Ç– E _O¼;j;ð\MÅ‹àMD+“ýæÁ>Í_EõX^‹ÏÕ}ÀXºÊ�e2~O^�¹ÌÌþhäÞœºˆ%êš,?’—Yè”ÝÓÎB²åDBšÝÄJyÑáÍ¿íÌ%ÆËR‚D!‘šª·°kÿШûT ñ�s>Ó²,ñ²4Y¢ûÊk�Kh$Zܯ÷pÈ1bỸû9#s*²IÑd°m&’nz¥#Ðz­Ðz­Ðz­Ðz­¼­ú̵"Ûo–ý^Õ¢èõÂW¥G!>kHŸ¹ uÜyü–÷ä;¿¿Ãh~ÕLqDã€-Æ„ssþë òþ ñŽnF³É€4•C¶ !˘·HªÎ$m#ÇÓA»Lºò+âÜ‘—dx!Nseè”Vd%ŽV®X;T‰x_©m°'“´l'ü�ˈVÝø2Œ}‘‹v+aÑ,%Þ„|ïtÓ‹ÝÎø•é¤f¦ßA4§é¼Â¢úf’²ÕèÒþ©y}"²÷]ø[^TáöÛ§QÄðþŽÇçaÍêêå‘pOë­â–g¢è>ÓDöžW‹N¶¡ÿ9N”Èè‹’áx‚-âYÎLkqk±òÚ¯��µšìág—Æt:7ÿÎB ñòt]¸‰8N•¬Ñ¾÷ŽwYí#Ö‘$®óÀ²6/W»µªH¦PÓ+)v½¹¹IŠ †{s.B39/…õ)¡ÝWæ~8�R¢E¿XqÎ+äÏ“÷ùiìdw„ɰû‘<}nõezÙ — zÙÝ£— Z/ õÂ+­úÌÎS»oôY³¡«’×ZWÌ8Ž5³î¸ó+…÷膩m`´÷Õ¼ï�ÆAŸ0çVÔõñ_¿_ƒDŠ™+Ò|Ÿ@R!{eÉr!ɳ٢»È!y6¹µ«½ÙœÓúvσ Z i·x¦³BM5cýtã©_ˆ×žCmj3Ñ,ÛZp�hçnù†³Ï^p­%Û¡Ä{yâÅ ºõôÑ~ѹ +˜q>„&7aÄ,Z³J )ÚŠ®i•.?¤¯¶ÓÈ£>|x‘SÑoÛÇ#Í�¢ãÍ]«ØH8ÀöJny4ÝŽ-4-6¶ËÐi|R>ƉüÞ¾ d(õóZ�$o3ùÅùÅÃOŦwæb¹]€]fFt‚�ͼ…—NCœqBW°Fá®”0ïªO%–Ò¿Ü&·Ëco¼\œõÅ‘Ô)SÓÁ v]}6É‚ ¶krî&_û<¼j¤‚–w_»#á„l‰¦¼¨ ®ôóŸñqœ_S“²IÉPq€H B�^6èeƒ^6èeƒ^6èe÷ø^öÿ戅5¦«ŒŸ:Q®lÐŽt>�¥XsD‘Ž;μÇfðGF“ŸSÍ�{hFùc»éɹý²=�œÈ×U�¸æKšsÁ乤¹„,}ï"YR%˜DŽ êBË®NÝãÜõ¬ ‰dùEcéÝÍŠÇJê*ZB+ˆ÷O4µµ¤Ýš‡Æú‰®4Ѥåöå°ï¢v¦á â­–_A×dmìàçÓjoÈLz¾XfŒªŠGò—+ºÙÆM!� CïCîþ­ÓÊ‹:§†%Ô‰QzA €¦ÍÖ®n€Úeni´BçA³ïœÕxtö±Ãvr¢Õ]ô)27Câ?€íCÚ‡‚=¼tvìäÕìZ©F'ô_gýÒð2Ÿp©†8ðÿ·@7çó#wÞÕèK¬y¹Mþ%–‹æx�‰MmB¢=�šF°íè‚ÇITP¹œsÏkZðr×,ト;!@´-BànÏü3~ž…»>zÙ,d¶bdh$’T½ó(F`ç Ø9v²¾sô‰AŸô‰AŸô‰AŸ¸»õ‰éóôV»ºêÏÚ¼ÄÜš~:>Ú§ë¸sÿïy V¸˜Ñ>ÊñÔC#ž„íf2ç²+z‚Æ�Bæ�Ãb½hôTȧ;�Þ…dZ…dùÑÁŸÈQõɯ¬«Kó8—,êóƒ I+hìŽ š³"©hÃjƒÐk®ÄéLm69:SÑ(KÅÜ!Zú�µìKßm‚e!?ñÌ$¾ž§ós]% à7_¶:„­YhªÌJ±d Ï:ŽäïJtÃd@¾›)^… üž•Ï‹UÿÖRG ¯x8ç4Ⳍ^ÃÕ‡=á–{£3§9å¿Ü]zÀ�\Nä4G“áÔ>$ÕÌ„íÛ1ýÒלÎ~�¾t™]º�é&8tÖx¯eSÇ”5ÒÏí´xW@+±ì>rÛ�‰X\�âµ2»v’[ÑÔôO!»JÕ\¦QAøiÎ�—ó؈W˜ð£ÇÝWY%Üm¢ Kl‡sÉû3ÔæÀÉZ¼=‡,ô&Úu‰ôªmÆOF`Çy;Þ@Ÿô‰AŸô‰9íÓç[ÓL.†¾s¿1ÇÔÞûI…°.fwvxÇ®ÿùÈÝÒÙ[™§RÍ™b4ü¯°m?ϹÁ=Á‚»£½!E¡—ÐdÖ�‡yûûdIŽGrºm›:94×iïÊÚ–s�%ûâÉpÇ—&Ê,l)+Ô§§z½ò8�xÚû©­¯iþa4{¤|V­4tò ö=8{> Kdñ*F¦Ó)gÕ×øIþzWÎ ¿š´í¥_°ä)ß‹$f ºs±©�½f|r�¨$=}^¤~ð·eÄhÁÃà@c¹}þJ¸f©x®Bwz. ÿù èFzypâµÛ¼h2<)س‰˜03j>Ô ý1c|g‹ÏWîcWœ Ý×ÎrMñÊ Œ_DœÒ©¬)[£ëƻƯ!VA3·1Y�Ç <¯)Ñ'Ó‘ä}¢¦�|v0oJDüâ.¹îR�—æU›Äîëá¸KªDk¸4±®òúŸÁ.åZ�>2­ 2$8éjŘCŒÀŽ7°ã�•o O úÄ O úÄ O úÄÜèÓg½á©ÉÿZ×ô}µÀsëCƒ´,¬Y/t­üïy¸ød+#ëªá‡¦n¶eqœûò±'éßz rŪm$��/‘m†hÜ'KÁX$‹/“CêFæç®†+pn—g¨#üJiž½RÕcE–¨ ‡ß,>âަ¶Aÿ�µE3ÊH\žhµ{gÞeßzÝ2Ư…92—x|âYÆtOþð“ZK�™Á©hø“‚úaY~&y;’CÂèÆñÉ CÔRZd +G�)çEá�¿)»c¦+K⯬Z'¸¨m͸Eøºo-—<[t—”‡©qb¶Ï2U2|´ºèŠdàf.h]Ðz}iý°În«È®Ôçtå½;ëc�—̃ÞÄYÁ¡ÍF¼Ëk*±ö}á¶öiXÔ›ñ’�©¿‰Df5eF±+wò•~T -À9Ï(§Ÿxµ¸­öï¾|À­ÙG´Ù›§ÀÅ ú3ªEà~™:;!³šI†ùNDÚ%c~š¥v¼�>1èƒ>1èƒ>1èS´OLŸ5Zoµ®É1£È±-¾ÁeÂ÷íX³F±Ž;Ây�ƒÞ�*FU ¨æÃq4�n`3Šçœ…CO°QüB>Äp·òTš—×Hšdb+Yž8 ù'yàwrø_^Ö•wçDOL“&Ã]+š`ÝìM¬xU—š´Ó|î7âñIPÛÀØWJhêL‰öÕ[T™}ÉÎÃf`1~M<ç…t7F¯ð‹ÎΈgFäš�åC°„Ýó[ˆÄ¢ ÝÈÁK>AŽˆM̃4;¹OçE©ÇK¿B …8<¼÷4±¢‘Gá*æär‹×7tƒ¿ÐÜšÝ/Ý]õ‹+8Ñè>±Ž ?gòFr¹3vv›åtL;ý1}9»‚LèÎówöú8^žÂó®gþ=Ö[¼Wä]Ï ‰UÇm㫱œºŒW̬ÇbHJr¨)(œ]1Î>YTpÊ�sÛœô4ñ*è¯Ý}R„³‰hqVŠ÷à¤ûþÇøàæ.WEfñˆ M‰4¥=T�Øñv¼�onÇèƒ>1èƒ>1èwíÓg¸Ë–Y©/JšwïU�S-ëAX3\ñŽ;7SxO­§™)#?ª9pÍ)Ml‰G97²°'PÿV´òÃ:eÍò¢ b–C–7fH^˜@ŽøÆò¥]¹_àœ¥Z¹×Ѥf¿«`…Áx·±ûó ÿ�½;�¦jí8N”R„”º‘[iBˆ”¤B…„f’’D*JD©Hƒ’ôÒ qÑ`º)ÝŠR’J)¥”å6HõÚï~Ïê°Ïœýlöáy>kñ,,–e­ß9ß_wðŒO°›Òœ™yD:Zí Í&9,ž†Õ¤>¬o{¶�7‡ž›cDÝk“Çëx òÆ÷Ëp2·SV¨àQîIL¾«o!âÂÉ‹ ˆüù?g ¢ëþærŒl+*C¨ZÃÞo°”Ü£«[K¥±OJ(Ã}cb¯T®ÅÐñ�ù™ &x¥Ù‰ÇQ„—…• +3ž‹pÓ>fÃ/ó?9¼$¸•9SåWñ@œG²ÍT°h­à’TëŠfkû6šÌMaªÝîާ:Ž�¬vók²‰› Œ¦ÏTÌu Ub—µa‹±ì²@ËZ~`#–žP˘oƒq•è©:žLØ>¤»½„ú6Ŧo°O ûİO ûİO ûÄ‚Ü'æÌ# ®6sÊŸ0ï}@¯Ý^óUÈæ‘² w¶Çž�R~6õ‘mžö%ò¼†\­}ç¶gg¬Š˜í �Š…6¥WL©®Ã3¾bíxf$Ö˜4¶¸Š>‘§G]™�Þõô}½gs|Z;jÔ@™ìðv±Û¾˜‡ÆDü´Ä¢@SïÚO‘>û<Ö“™1<‘—§rÜ�“7¢NûÒË@^î&2xAN ™%�fžÇ£ý„˜Žº}-B«sÎ%„âúî5‚È`çoA¥`8ÕP!ÕBÝ2›9K¿WW‰Ö2É“ØOM”“b¡1¹Ë]è8iìÁ�/q<¼S…1Ñ1Ñ7mã7s;3½W ¿öjs̾Åíî{ª<«�~‚“$Ýì䡯/Õ®{Ø Ÿ1}i�ÿ‘¢jy¥áý¶ká,?KÐrÞ¾Ø�õÚ²e|?Œe¼Oo >ëh&Ü·Éãóë½M±iÇìÃ>1ìÃ>1ìÃ>1ìc_§ZÿkÞ±Åïì¯ïö3ž°¦Ù|³_Ã�·ßÏ­Ò+Me_`±™Dþ“IN¸}]·áö!6a�‡ÝQWB¹9ˆ¸QLI;‰'Þ¶K3¶ ‘l¬ÖŒ¾EãN3¡ÒÕçæ·ÝÍQ6!.pì2ÍDðò³[’�é,"ê§/€vjHq7þÍ+˜JæÄ¿à… Kvæ¸Z·K¢.]¤‹5/çºI« M$sÆHÓÏ� b¿Ç!nnŠÈ@èõ¾?[Õ)ü¶H m*„'A¨þñгôi-´‰ÚŒêôAo#±`ÑÐX:Ê•LD™`½ãô<º›y‰øñY£ÇCnf5Å'øõþ9‡f(·?ô¨RÚûØ œ=G›'P2©Xp)…‚õ}dkSýDæÀfª”,s&âÉ `'­^üu‰L`ƒÚïô ›yV”ªš~zöm×=¬ÅF }x¼TKqZË0ä!d•…+>cy&iÎlSîxkÙo°O ûİO ûÄí±OÌ™Óygt{ûMSc]æçŽþ–½Éætr wìŸ ž{‹¶6e´ŸmÞí!rk$¹¼ÃôíÛÛÄç©tDü?V¥á!¶–"¶¼eÊ€-x~ÙRÎŒ„w»46<—¾™}F~d›$”zw± æX�pT;éÆÞ àEìb·×‹œË‰tpX šVÇíåü³ö>QD¦2¼Ye©b×jÝŒ!êʦ yòòé+‘?KN"“ðjRo<Û‚ˆÙ™g}Gì?˜µq}C/æfXÁá߆:€Ñ{ßâ!”šp�>ÖÞX�±­åº41ñ=¨}‘?R‰e›K^¤ãÖ¡>˜ þ´r.ž\u^ž?}þ4Ǧ`7�c¢søå{‹#u·ƒ‡©Zÿ¾“8Kš§&Rq�௫Ӏ֦aAæ™;U>âªþx<ï±SöI~õXñÓ’ œýé&ìBU@h]tÛÅë?>7{Цýˆå[Ú2Ü“±r/½+Å—)Ã„ã… }êºmmSpÇÜñÆÄŽ7Ø'†}bØ'†}bØ'†}b^³Ú…Eãò÷L<ÙSörå8­ çd³Úþ wR ž0K·¦Â]ØÆr£,r¹ÇèÙÚÍ};qÚwêXTðfÑÕ¡?�) öxÎFçW3Ãö�âÒÆô^Ò'í=±ô”Q‘º)!Í¡¶èqÌß›omï¯v»ü¾s(ÿ±ç;€¶Óàâdþݽ�«G&ixÑ—¢<8Þ¯°^ Qgo¨ ÇKp.‘ñ_‚ɸOUß„‡l÷§_ÞŽbD~]¹&¢ë»‚¨úóogV‚q¶ŠŠò@ubu÷yX¾¢¯j[KŸ bbËQZ]d܉™ξD‡K@`V SŠ'Ñ„ÙS²§b+K·p»ºÔï¿Ìor,æ¶šªËs5RÁ)û·yîtßõ�à:¾¬![[Õ2—÷P•¾§^�y;ºÆ¯§o5°A·Ëô]Xeû”ª;gòç¶]ƒcͰ­\.¤+–IX˸¯�åÐqŽ4¾ {&x¥€4dýÖYMÁopÇ[Kïxƒ}bØ'†}bØ'†}bÁíëÿæºt‘ZÎSGIÿ‰ªúÃÆÛ¬$íØ@.<ÃNTØ6uô8ÛØ)Ì&Ó‘¾à³íAê×!3²;6• T¯@ˆ)qL9Ï…DÉc̘|ÔkpcVÏéÛXëÜ� Ò®¨|�O›£bÒQÍ'IÃ+À{åÀnVf_>ùãRì8ÐòŒRøç\×ó9™± Á{ý,åGq_ƒXˆº­�â宑›RÝLÉÄ—ºÌÆSò€˜Ù;­]ˆÚ»ã!o¢¡Â¿�OÃ]ŒŠ¢ ªÀ&!ë‡ç½Õ­å°1‘rTÊ¢…LjÙLRþD‡œ­î8&xÜMvƓɋŒ¹ŒyŽÎ÷çÜªÌ²Äø•߃c¦%·ýJTMž ¸œø~Í3M1×Tp•h�e˜ØÚ6ˆ�y´†ª˜ÈÈx<•~ìdW˯�#m?²�V8}¦µÅATyZ¿½Ýví)ÂJIÍ\a£ V^RËèy « æÐ|!w˜ û¤1'Wœj îxkÛ;Þ`Ÿö‰aŸö‰aŸ¸mö‰9³Ï“Qýó¯ü\"“ÖM·ç´·žd³Ï?î|Û'x̾_Olj�Ûˆù™r…ÜÕô‰¥·AÆ#•/ŽF~AÕÉAˆ Áˆ¥9LY{�™†ãfTI?�hì¦}£ï|΄Š"T·±=›#`³áÖ÷¦É�'6žÝ;)L#"l1à"h[íO¦òﲌüc2uKÁË�åæÉ¡Ùëˆ?D]í/%9^j_©ü�÷e2¹SDÒñd,'6OdŸ BÖÃå'Ðy¼� :õù7Íl0²S¨�Ò‚P9?.uÅšg³xEkÑ@ì£7ÊóP 1YÇíçéYl–Ì„3]æ«âeÇKžzžzý™ƒ²Ü"?ÈùñkIŽ�/¹yN§jÙÕ�*à¸nožéq/6 ®D °b{·¶)¿È8GQ¥™1N�t;Uæóë�רžlÐÇ”¾ÎyÔ·¾VIŽ™ÞvÉb©mLŽcg¬X»–‘,�唩‰/ü3îF€t\ñ»eSlÚñûİO ûİO ûİO ûÄm³O<ÿÿß«yØçý¿„ù�“ ŠZ}löh¼ïuŠÛò%î.nèãr[ù¥žòæk—9™-q“WUÖ‚‡þQVAþ²!Ö”×¹¬T=BM[yõ75�ŸCµáhjhüï±á4~£©¦¡Ùð¶–¦¦šæÕÑ£Õ„TG«�QS’WùEà�µkÜ~�ä…Ü\\܉>Žìýzš>�Âí?QËÃ<~©g½~_ñDz(Ùó(6ÜÙõHðlð]—ÖÔ}#¶ñB$Ä�\•#}ûÚï�ÆsÖg·Ç£ìV@ˆSƒ[†0%ãŸ7ž˜áp§Ï¸ÆF¤¯l“�.’Ÿ¢‡%Ê5Gmüö±w§�Ñoõ2vS�ß=„ˆ­þèbÐ\T4-øwë‹…™dðf¾ªŸÄÖçÈcˆºØ™»yyåLdvÞy]2‡Œ»à©Ó vó«E BƒË`">¦ödDS†½Ã3e1ïã!ƈ)[Y!$R · ¢b�ß²†‚±Õ€Š¸ÉªÚâþ¬PõwÚ­Åì1_T†³ûBbý´KËèȼõ¼/r2Kâã¥~FýŒÓEv~ÜL�kòËî>ÇY]n¢aT9UnYÎØšæù¾ ï¬àªJkÐãÖ&ÿ�Œ…U¯S_öÁ#²€�ò^ðë`½+Α‰ôÍÓë-Uæ!–WÚ®UþXÇŸ�æ5ûÖ\Ù–®‹¥,þKŸ¨6žÕ�¤ÿÒ³¶)¸î_„ûáþE¸ÌþŤ7_WëÛ‡ëô}ëµOì(Ù J¹ÔYðdë|õhêÈH¶Y®I¤ãnrƒîÒwý@{ÐKí¸ÂOÔ4 õ¤„Ø��ëÅáåxdÏéT1£oØƒäÆ®ŠÑW;IeNš¢äÒÖI5‡iå„¿,ÕÀÓ’d7å.׬‰ìy3À´'ª‹æóon˜„™¾ªà¥î5ëϽïŸeu#<&™ðb¹�ˆøíeêdŠLäà9àM¬0GâbÚàMç~˶W "“^¿¸Fx5ÛÜ!”tÊÔoX¾Z©µ–ÁĦÍBÙ&”Æ[ÓûÌk:ßøâȽN~á‰/åÅè˜Ñ±È¢´—Üz?+)ã—ˆ8G¤ 7�—Te~Þ}ÑæÚÐDÁU¼,òÿ+˜Öw/™$Cª~fÜ…‡‰ýÔ (»ñ«ºÞ7„ ѧ#SªMUáí.wÚ®c±¾9€æ8Eÿ"V�Ù-Cc2Vñ¢ôø|˜PUÒËž™×š‚ûáþE¸‘þþEÎ ¢wG÷W‘ã]Ó•1¯yõã,Ù bPÃ�êÁÓ×ÉÆµ©#Âlcô‘à·ä^dÒ§UÚ¬Úv¹"aÓ‰lÔåâ¦¡Δ²xä¥~\bFt§•�)ÓwûÒʱLè`…š8Ê'»9âG×SÞ¦3ìvtr¹%ãM>ý@ûóãýiü“Ž.ØGF®<Ó„­E;çj@Ô=Ì.;‹ìb"�^gU‘‰\ñÑÏnSb2ãó÷ŸCÌužðN™hþ¦ôŒûªT�„P».ê욬¯\ÒZd;›ð%jÜSšXL‚õ :Þ¥½—bÂm«exxü0¼I~“,»Ö¤·'…‡üø�Ê!”È-`U®*ß'�sH¡yt.Øo\Ç%ÁrÎhmVždŠ]©ÊŽ?9�òRvšõ„_Ï«}eØ Ó)úÞ]z'C•‡a�m×L%¬Ø|ÐvÿL�Àr²o’/±Âçî‘ÅwM˜ ÿeï¾Ã©îÿ?€[EÈ,‘”•½…Èž•-³È2BR!™Y¡È:fVF¶Ìdïl‡”UÙÙëwûªß­ãp”ãN÷�ÇÏëú\×û�×_¯çu¼è*aÉæ>8ð}9*G`vP&öˆåÈëžó&Ðöåà÷WºiZÈÍœ½—�éqò™ôo‰øÓä58+'»5�ìCÂUÛ°/gù~_ùu_.À[‚ÙËB¯Üï‚�„hs~ËÛYßöåàoðÒ8ôαÞê\‰Gv»Íñ-s…iþ#Âí&7ЯYà†q°¤wÝp©�L9VY6Éò:ó‘HŽ¿ž¤¬ÿºÌŸºùŽÂÛšúµ‰Uá9T·Â*i;ü|¹ t³í8—VËÌ¥¹U¼ e1�ßÞe{¯VÃ!m3d—?Ï3¤™}] Îh8ů—1Ïôf�èI@rºƒ¤ÌGË�ÕX%‹©‚°¨Zÿ€“aü—M ¨z¾ìÇ*n&‡nIÆ ù!(CÊ$nSÖ9œ*ƒq=ók>QâþÆ>hÏû(ýæõHËÀòîYSã��²Ô xçmCî"½¯nø.2¦k� >'3}�Wkd8°‹ª2Ï„Ž B›ð;;ÏÕ'Í.NøŠD ÷ ²ò!̺L⬞èôu¡¶Àó¼Z0~°aNØ ßË»þòu CeV/®_jO8=Úœ€¿!ˆ*,g¶E­erú7®2ˆ²!áêYAvv‚Zõ<�œùÒÆy�HÙÃKù DøÌ´ÕñT@¹fö�Y.¨3¹Ã9ôz‰ *Ìû$±2§Ü�”�_q¿I HŽwºªG<=ÉAÂåEcJsÎ)"c½,1V1‰Dl&ˆÖ [šÜú¨C•­±KW±úõø û]‘˜é×ìõ }K1xæÈÓU*0øÚVIòh_ºE”o0FõÛ6æfá‰9&þ®È7悲_[” ¤Ì”Òy¤4�¡ô­7v|4 êÓ‹ÞÝhÎ%m᪽�ôÓÖ¾>iVT “�236Ô÷E9iU'IïÇzc¾W]ø$”>1óRÑÇàÙ9Ê*ºôÛÅm¡Œ§Á»IõÐͧ8ˆ./ÍîX™ßw‚ÖÝ�­Í†àï§ÿÖ+pQðûMÇvèÝ óÉÙ=Ž¡ÿ'uóÈ5mK!ë¤ÈþXS§¶æ>Í^qöÚÊÒ¬ po¨™tÄ~¯§z÷‚ÈR2öBSêº%�…–qá…"Ñ+º—°W”¾¿©¸È"lçºîP7¬1´£ ý¼6�;Ð\a‚=# B÷oàš/Dü±s…ø7¼!‰4ÙŽè½Å"hHU¥¶‚ö †çÿcÀköt Î)îßÑ8êßÞÀ†ÜN 5ÿ±Îê�¿ðfï…囕óÛóOXØ.~j{UìÁ »á´¾@yΈ[‘:ÉE÷‹îLçÃ7Âo’ýY‹BßÔFo”ɾS ç³Ea§éÇÀSÊ»þ¾Ò`üG£÷«�)Aã1±S¶d§·r–z¢IÿY3YùšûÁjÆîõ‘‰ï”Í;ô¯>’Íø{`m4¯œi³¾ÖíáÍÚÓîñoí2Â^@F‡%œYUpà;ù¦êq]fL%ì¸(BO}h;yðÛõÈ$ utúE Ç[G¼Ì»Mx¡©¬FÚ—ó)HuŒxnØÉ ïäÅzH‡ŸXð�ÉÜÑT샶“¤;#Ò:T]’Weƒ')¥0G§ºµ‘Ó#-q®+T_¢x«fmtY€�öp¤ì>Pð�¾$UZR©ñ€aG •â1`¿ *Û‡ÌpL·ìá¾ÍÓ|à¨YüçAë{‘‰±Ajg¥íŸŸóhk°ÊjÓ>¾bRL� 4²$æºcDÇ+ ùo˜'Žïç©÷ë<è­;¦ x›ÑPô°ÆN?0Ú<�¿ámJrBß %ûé²ç'º'¤—³hwš¹¿}¹:iýÐAEån"_DˆÝóðžÃ|óÚ‡,y»t§Ú#ïª3óÞf8®rK¡«›Ø�«‘$¬Œ[k¦‹ý)¬ÊRöö±B £ì‚µâtªÒœ¶B¼Öc ÚE¾(ΰŒÁq¥Öb=z�2F# º+»9K¿²C{�Ƚǭ$�¨¤6—¢+Bh8“…eõÔbvšùs$XÍ·�²Âê˜R¼¿–oŽ-šàˆhScŒFHY ê�åB8ð¶j. HæÜ«¾ÎO'ƒä^Íé�•ZÔÔ=Ä�шù€÷>K‚’wBÜû&‡ãÆÝ‹X^oÙá}ë}ÈÿúæÄÇßbHt ¸ƒÍûM�ãvDI ;B¶{1\ÿìÈ­akÈ"š®ËaûcMqüšöJ»ðVˆ�uöÆ,käè÷Rrv�Rzöõ^ðÇZ§ÛWò#jð¨)®¼³„=×…ýí´²¬Övüª8Áš&®áÏK(¸� –(ì‰s©ãs<Ž0â��»>w¸úÔíUä*B“¦Æ<²Óäí½ÏhY#ßuf�}º¾ÆïèÉßt-aÃãÝN8ü±îš=iØf±ñ%y¿ÊjÅöÜO­MâHÛ^Ì,ín " ÞÞ ¯Ë–me¢’ÒøÒø0͸ã=WÿYo†¾ÉMßÈ©t§|¥8$`ç èÇœ©!–ý}Å[ÃÖc‡_í/4 ;ïñšn+•ö§É¹Ÿ%Û}©v?hÒÙ½ ¼¨� }�¦ñïõŒs³©lXƒËnßLàÈ?C;i3TQ–­-î…™.XÊFHõ¾§—ç^)�•˜ 3[Äõ sB½ANWñ¸´iÎ<ÑÄã6PŸ[^@`Mp¢‘Cp N!÷¶T„2œ'is=\A™ŽPЭù {ú3`÷¾ÞÏyR±à .é$ÎÚ‹ è�¶§ƒb2�uר· =œìpëÃ\‡Ð® GÔÍjì~®ÆDˆTôêÐ/Q>ñvéž&E#cv¤#ŒuZ©YEâ6j8<ñOˆ”“>Ú®;3ú�2½8ÿOH¸La yă£X¹†Ûˆ$‡…<´‡îÄÔ¯Žfh õ}¼)Gm-Y2†åW*ßÕÓÄ\®#„ÿ6ã¼(ãg9¢ «.©€>cHq &5‰ÒJ±HnEKo¬—ŒØnR¤˜·±£f9Æ�}I§°«?óZ¤ìÅÕh—™¶âifÃ÷¾bÓO±ûþ¿¿üüuŽæar§s‰_: zÞЮX¶Õ Ijêÿ*„߀�ÿo<ð^ü¬�ÿ6ü¾øðùï1…™›ýòIhÌÌÔ'?±°Ï€÷rZ<Ö€ŒOyÖ]É�aö—¡õ§ÿúÛò÷³øÄ"žÆ~ÓÝ´åÃÐQ¢î^×£ÿe”Åé5ÄÏ�ב4ü±¦ lͬÆ^¹í¸&É,ƒ½Q¤ŒHú=²èÝsf¨ÅÞ OS×õãýž/âÄI¨üó°Ç͹¿½¡K3ÞŽ½2¬U7Æ?ûyM7¡Ÿ{�F„=êËʾáË©þcçFÙb@"3·r†h/hžc-n% }{ÀtÓ5²:Å7Ö´ÏÈÜýMý-Ý6&bwâ Æë°y¬7{ìz&äWaÌØž'Ã:ê4Þí5È‘_Ù� zÊ•½Àk듺•—Ó�LÍOÍŒ«ndW:¡ò³&M¿± ÛÈk§¬Éhñ`§úÂ�!Ï‘þ¾–±akÜûWËO„¦xy§Þ{ô.oÅóõþTÐù³ç…&öNŠÝC¤]Ý©Qç³qÿ^�‘7�‡5."±Í¨Åÿèø›…¯ZŽl-"w/``)—1Mxïa‰2xµ­N µ§mLkZモ Œ±œ _(ÊÍrªàó�+&1’¼K/^eó/!ýÄL‹ðwïÁú}ïaøµ÷Ps¼3•õª ]æ0f+ŠRŒ0´Þü 2ê­ðì¼Bx�µ f¬gêp›LO@ÊÚ+Ô— é5£J¦Kzú¬]âUê@þ•n'ï£ÌèË$’%ƒ‚‰Û;¢ŠÆ®aµÈ ô-ÏA1#­P™" ã0ŠëlI3Uá ùHj9uNñ¤ìTÇH]žAì‹fU²‘¥Qu}z}Î"“ê´Ú“Œ«ŸdiAžä±n:σ!e²(O9È{,ðغàh¿Á‡75Œ ÓŽú¢¨çUy2JžLôUCn?±íeH™j‡£6çü5Kù)«’ô˜Ô�\ÚMLGu¤³�ÚÄkRûG*R“xä;eh“H‚ø-ídGÇ0#“›û�iÛf~ö+8&e„žÏŸFàù*RƽòY·­“Í^˜^�Ürpâ¥àÃbzþåûRD&­ø†¨a , 8!ô¨Ñ�"Òç. Ñ‚U!ÁòGyù*$õºÄ|}“.­\VµÅ¨¨AÊS–†Eܺ/ZàP2¤p»&.MÌ5O!™¡`ñõ~ÌBÖªô‡â|É Òoœ Î3M­*ÙF¦`TO÷t|TZ<>ï =‹ã• YGe—A€+ !P{>ð£N0Çë„‹A¬ð�ºíeG››ÆeÁªØ>�üWî_¤â¥o˜wæïçýÃ×y" j[ €«é0W rhmÞÁßéÆ=¨Ñ–›#4ï(£€ŒíJÄÛn³¡AP^Yƒ]´¿k�‚XnIѼ;™ýð••AWºKm 5%»uqµ"ÄÅ}çEü „5+ sŒë¾»Å/ ñ” ²œ1m¹ï³a±–°XaHÂ#ÔLçU˜flÜ.âÔ;BÊʉ§Æ¼&-›‹ç1­Œ ŸÑ“.Ø�;*—Š“öW¼ø`BÌøÛQ‚å’8¤ @’Íì»-ryÔîUTy! 3\ꀾQgاä$²7åãrÀbH™Q®×|f³§ª=Ÿö@¥H;×ò‡7ò�°útŸ^vå;’á}Å‚}§Y¯Áuµ:@¿ÌýÄ­.üÎAÖÇY§²«ŽË*N‰ó•Gy9™?«>ƒ)»²Æ2DZ²¸°ðã–g5Fcë tPÜäèä3g’ddC› ¯æe–AÊt1l^ð#zHZ[)|)?ã(ÍYè9ç!Z®ñ¬Ó¸ð\¬!¨SH R†Þ<“¯T vãöaŠˆB¼{Ÿs²A N½0З¤ë¹ª‹¥w«<å�.Ôß4g¹–\Ö N.•isá÷9âyÇOòZ¦iÂQÿé{œÚøã,ÈçPÂŒ‘R’èR#©Ô˜ƒ½q³Sòq¸�[9ƒ’ø3x °z”òàÝÜôI™�B}A£{ÊÍg”ŸAëæ(þú¦Êô÷Ãr(o\ä«ýf¥s;N kjÜ=´šÿ¼›�&k®Ü.r]çÿå�5ÙQk=÷ ªþV’ÙÍöFÜ ôƒï îWà!ý k²îÈ ûúáÆùÊ× ö†ö·ºÇŸ½¶#…G£ký‰¥)?/`Liš� °—N­'ûM’ò—é?v®ŸüÿØ»ïpªÛøàH‘�Eeo‡ì=R¤žÈHd…c:f”]FFvÖ!³HDF){S("[Q$JHü~ç'¿GÇYq<ñ<¼þ{_×¹®ûºîû¯÷Ç÷¾¿Ár¢Çrœ2d. îå€Çº1*Z^ˆ¯GôE!rNmE…VèA6T´Ôn[RÆÓ \­ïƒ�ÍŸ2 �Øò岘±ùmˆ…›3__±ØÛœá£þjx"`ÑñÔñ$8ÎØ½ù¹ÛÏ×*>q™ÿ�•F4PU⬋>xgÏô¡³w·®+Ð+,éOKTC†¹UsC´sð ޜԥÖÊ´X``3è¹¶~ß;HQÕlzNöß Ö�¸£èÖì\6¿ZCô?ãöŽÕB‚ásÆØ9èäÊŒ†=«öŒ1g¯Q¹Û˜zF Ù¬úû l©Bs� ¬n¥�W¼ÎIÌ}sœˆòÖ|&1{Ïž-®�¹â›$î_gª?ï)׌5nw¼ZÍÈn6åƒlV½†SÂíE]8×/=~ìí¬vãÉ�ÓÌc>¨fvîÙöÞ\µO¦}Õ%bz©#«hÓ?æ×;àfÖM~S9€ai»KÐqÙ|šŽÈCNë$}^ªsdiŠìª|¦&ÉsäA„wä­b…€wY/ Ê'„æW©»™B¿'­­“[HŽržÉÆ<–åp.+WÎH«×�ZXŽ‚Â'^ò}‡€¹¸op›3€Ì)°æ0¦9²G«²Nj÷bíœáç5ÚÙ@ï+ŸS5­À¥ÌWÌÑmR¯�í+ôw8SŸj*¸<Èz}‰H¤ï´ifÈÐÉÐ÷}ÉÆ-œá¸+öõ(Ô·f?ûùQÕ"ü=~æ´™²ìé�t�õóL�{ÆH·žj>®)hÖ"›Í>D„�Ãÿ±~Jšÿ 'µ 4ªGk—Æoƒ°Ú �M¾Q2ÂàP›—l ×g¡Ø¿E¯«Ñ@úF`Û³¤¬ºûw�°‘[žfËG¿ä�›ÛT=-"“Sm˜è–¬3³{í,�D>##Æ„~GiM®/›TÔbÙ†:χõ¯aI—D¤-u,,q•zx¦FÓ;¢8 aóXû)„£‰ÏÔVDiò·ñ2ôàAEÇ�mKJV«Ô ý)WÎ"v¸~É™ëç .%È_�k/FmçÖ*xø>Á88O@Ûpt%Ò'¢'Ö*˜j™©òJ²á¨Š®'MAŸqêß“#öÊ|ëb¿�^jš]2Ѩ2½t� Ñã›cùZyrnÓzë¨)K�ªG£Ñ4ÿ^`ºÕbìÑ�ÿ»löjyéÿŒÝƒ«•Šã:Á÷Ñe#`{ 1>[!4ènÜÌx¡v¯HÅšzJ8µHY7Ýã,�Oû6ëã¦-¹8Â.šÀ8×{ ãó5l ýEþF­@? lÝEX™~Ca@ÎîT’†¿XžäðWèK*uœÇq,¬ª¿}©ƒ¯Ô>é™áñÔºïæÄmþäD ^Üù¬c§ÏÏ(ä3$Å4õUŒ€øäZ÷Ì�WsÙQppš~èü ƒŸâ;P2=±EgGnd«ÓÂÍØ7´’fËZ<Û �ÃÊên´vÛ‰÷IÝsm~`0&3¨B-`¬½Ï°•ÆÈçã"Sžl-Ǩ„-0ëxêÒV,#…ök,7:8k¡»ñ]±ãq¸¥� yt_O!ëÆ¡ï :tÜŠàã„^ßý½r]—ŒwµXH(¥Ô£zS©¦+ÚDº¢üµ7ù¹¯“Ü»Røâ qB4nJZcZ"ÛWè5Jî꓉ÏÇ—¦ø8 ÛìÕ§ÑÌð2B.Œl'ʾÞs\YzÓtY!Å:R§Ü¬­iä^54gñÜÖ>㯓 +cªfêÖ^ ™· ¾ß,Ž§î°›"kŒ@*ú#*İo—¬%5s¯GV¦5{!ƒX0œ~g™wX¡Ð>…á¨ðY¿ê«)’žYGÆúÊ÷WÕ«„†PͦE(^ªˆ”›ªXòž¡Ï±K¿‡Ü¹së«C/õwÚUldLûP%7Kûž��6'©ìµ²ð#öÙ ¬¿­ßd ·ª&þ{)$¯¶¨�n„°n+6ÿgDb®ö2�z>†¼�Pã…N�¦ ëЖ;Ô¤Ÿ}¹ŒdQ//‡Ö�/%öGq¸oœ/÷åÐ=î-™£Ñ‘Í ‘2ÿǬԃí3¥ÃÜÇä;¬m8 ì(Íã…xs»¬|“PÔVNòVä*†¹�ëÀʆ.žÙÜ4ÛYê¬l¼W—PÈl_ËÖ"úÔ䱋ðüb¥­ŠØùð[°²S{pÚÜøt„Tß»”ÌJ¼×{|ÑÃbäAh/Wñ%›¦ct€¬\÷PXY°áM>KíîšgõÀ�žæ=˜_²_f⛆Rp´oZãÙ+§`‡biÁÊ”œ™š<žîµ1¤xwB[÷—ùU¹&€]¹Rs l.&]‰ Tõ+˜šx+Ë9A.îë†C;Pß2˜ ðÉt7 ºkWšî¡ßpFˆøY]¾@ܸ,²®ú-�tÝÉ˧>‡($ôì�哚tY§�"�û»ðÛ1%žÌYz­èÚùíÚëž“‹yeœµ½¤¡9= ÒÍpß)_>'ÐkˆfŽ/!ùÖ®Ó>ùu§©Ö[¦–Lý£²‚‚T�ôެºÅ gË_ž•™†•ùœ.ᤥä9a¤CC®ý¶è²ëmÞºœ`±øwB¦½Íjlû•÷îâypV6qÎφJ1â0ù‘ºžã¹÷�°”|³_ eâ¶ µ4-PäóWTºGÌ 3Û›íÄZÔœŒWû*u>QÿÞÞ!SéÒ¡;°¹5Ø®@š�²ï{$fçj×ì‘z½H_¬Î–ç VвâJrj--* ß—Bq¼ïYHÊ,­Ð×ÉŽ°²KLÞcåÅœåmAÄwyñ£Nu_Øí]ö:á|oÇW‡�à‡�@ÌOÕ'ae—ùñž>|ZGÇp=5ˆhàüÜÅèÜÏÓyÁfwD˜êØs�Ÿ¿Žã:}ž^ÖO˜ð�‘h’§%Ó‘�'è·]pèßöèž!àøÎèa¿ï–m—‡õÎ[»µ“h\«¥ÔOvެ8OسQ5LõÇÍé£z†±ªÂÈf7,ÿû›E«­Øäô )Ãf­‰HÝ}äT×O'ô¿ D�"ãÛƒ’%¥ç·A¸!ôé6Š‚¬DÓÙάA’Åçç,f²D3=�ÎÞíwYê¤ÉgÛHæjûd}Á�¾éÞ+]çÆ‚99}Ãï=wr4¤ZñÞëÎÐq¥^@Ùþ~>˜Á'> Ô�gû¬Êy†û˜¬dR1B…HåP±ïsªXY3·MÈÝ›u‰Ÿ9|ËíkÌîLãÚaÐ=Ùsø&‡¹É盪dÖ¡)þäÜ©ÖY§âsœæºÅ^N–û³ÓÓVàR$ÝŠJàx*Îqë™{NÎ<~¬'pÕŒ¾+Ëa\?Ûz,à­E‰Ùýùׄ…_žÐñ>±/nÿMü¿±çr^-r´ÄÐ�<ós°¥+[rÒ,íà´ÐW0Ü9Ür'ýž»ŠkºˆÿëPÁk#êÐ[M9Àgz¬ü¥™î”cµOñÂVtòB¿vò½?ÏÓÎÞ& =@Û£–g> .ÀˆTdç z m²2ûß1 ©L¯ÙßýYeþ]ª™_[_Ò⤃�»¶®Û=©ÄX—ô„B©Y#¼+’]&SInº<’nÇÁ�<ÅT,´½"ÉKî«%›½Iò¾9üí^'é…ûòZ¤�—Mˆ?Ä×YÀÊÚ(ócµs©Î9h|ÍÑœ1R¯Ä4¼­ Ö9å.•,ÿè]vZ¹ƒb�)¬Ì‘ˬ{ƒJЖwH˽£GáÚíWôoðeOß­‰ÃbÎú.æ…©N ªY°¼P&höõ9Øøã€A‰-±üT-Cú ºðz)֘Ļ—,÷drÁÊRð¯þ°’#ÁtÒñÍĶK\ ñŽšŒV{2cú©Ü®¡1æ½é´1@1zæÒò Fš§Mšfü¾‹�‘$²™ +dŽ×¹õy*= ÍÌk³Ù›‚¯*rQG×Ï%á¿ "†ü3DéÜHñ’+/¶AĆ�y¸QÐÂs̰*tcÌUƲý**mýâ¿ÆLm„D±%£Ó‰¾¿#Š;‘šOKýln&NzŠˆ\6­ÈD·[cúAkçËÈê�ŒóSô³ÂÚ÷ÿv�mû ^Vö °„ïFÄi¡þ 2šXªÂð¸¹"ÖhéjáWZ”¡ØÙɶ)‹üͪ=ÄGPa)¾m ÿQfÿÕDA8šЇ:b‹K:GeËch$Œ\�ØÆsî�Î?Þ Ý3°´€[À*5%+}Ñ>ô`­Üä—ù|]);U”ƒÄès°ã÷âû¶.Ylôºëü§©ÞGæ€(ª‚> &Ãñcsæ¬Õ—aÌžÍàqéúê¾DUÿÂ�Ô/<âÕܾ Û)œDÀjÙnÿ ™ÔÕæâDÁð™Ïn„ÖtJw-ù º§?+¶PþMi2þòw@Z�0Ò7Èa™¨…ÀPÃÓŒñ´ÒX.Ú~vEO/õ¿ó?ß ÷‰­™s?®ìyœ3#®—Ѓ¬§‡^ƒF–„K×x�6†êÈ+Ÿ"÷¸vÑè@–VÁЖ´;˜kv ›6œfŠ òíþʰû�;MÆÛ7 Pé‹ î‘a™IÊŸTGègÆùȨª‚ d™8uM¨Œ¬‰€{¤Øº®Nae¦ia°I¹ã[оäé�¡U‘Çò7z5  «?1þèvÿ¨�‹ƒrÙ§½¡åg»z^òTËQ¶=?ÆõQ�6Z_"“>Î¥NÈ“ÕÌ l„Ã,MÓã–òÉvÊ)îµ.•b&��Vã¢ßx‘�aô7{“ǺšÍAÌàcCJMf;Ø  ¸œÉkÍŠPÒ(xã�¡Ž×pî»æALÆáɉ½Ã¨f&¹³·g‡ø.ÏçЊçÄ­ö箳»:ÿ{÷MõÿÇ)ÊÞ$²Bd_eoÝÈÌ’‘-›HJF²¢"[(#ëkËÊž%++*#Jv¿¯Ÿœt}¸7®o|¿Îã¿ç9Ÿ{Þç¼ßï?îëuÞï÷‡šÐPzç²½|2A½æ@E-ÖQJµ…bÛ.I„=£Ñj çqp±ÐËöÚùXO®9mÜÂŽþLÝp ì­Îc÷ÉçœÅ_ÙLûü%¾>Äé/¯¡O?Öñí<,þt>Iù#]O["TËÖZCÒç�Ì—.ÛúqïÀ0È»ñ ûB�w¬Až jtc±S1Œ°ÄW=rÚ¯ òÈõ ÙÇ<ÉÖ�JBcc;Jþ‘�krÏÚ¡ì?ÐZ/šÚÝŽˆ6ª7 mÏBþ^¨X¬Ý·ˆ™Ò(åào œjÄüƒªI,Ô ßR9ÎÀª�lŒH?÷,ðyü³{£®ïŠõ~:‹o†2 Zï…ñïohXvŸ§Í}�ªÊ·§ñõ”j@‡* Yÿ¾ï¹@‹rÇFª–„yíZTÄ´H�u«„w¯å�•×ÀÖøØàIò+7áÍc™ÂaÚ  K4:cù~‡xƒ”²¨KüÅslo¯BH•×£úyÞô«øì6î–Ãð$4�Nð÷j(üŲûJî.»`÷"[$ ‰Àz“ÊÕ ±Â¹S¾–“ˆë£() Xd¯ß¶H12Éz'ЏõÓ%\øx~˜»–Ô²­ÀW5N)ŠXÀú¨ë—hˆ¡H¬�¥93ìõ·Bþ¸ôѵ\‰Ò1Õ1uM‰ôáJ8³¥ç» mx%¼Pv¸}¸>Ï$îY“&õðÜÈ9c¦Æ`ž"‹š´:r–ﻼiâ< ž„eЍ¹iºm 9;ï•#ZšFRëÇ|Q5ò©"�Q¦>UИÛOf<”i¶»êóL¿Ób·Sž°/I�MýÀ§ÿŠ•À@6ÛLe¦U²6µ¸25IPù�c²ê{Ê`;gőѽl(4–~ÔúN™Ÿžɘ¡ç³#¦‘xÜÊø>iãU Õaqºœd£±øœ!v»•Idþº ™…md ±1fH ›A=f¤D»ˆêÉ_î*�ŪCC” „„+¥�:$üý“äÎh:aVÖve÷SæYÀž�g mqé˜Sø=ç>O5M [¡b ÷|ÈBÑ« D|à&ïtÆÉä„9ëÄw5§èÌš¯Ý$Ôfy!{3ݳcU*YŠó] ³Ì¡Pû|�=Œz±ŸCî&qzQûÏ9�qu´6/ ù¬‰ã÷Räìu9PŠ)aúŠžÛ¯=ƒw?Öû YpëlBmÿ­©çW£œ¡­wÈ1½qßÕB<ëÄÏ–GÀ"ªà´ùºÓjp +¯¬]˜Ùùq G– ŠDnIÑ´µËÐÙ…1�cò­ïIgÏKwâéEJJúOƒ0DÛTP¸Ç ß:ˆˆJ=$‰®`I›ïýäLZ¬wR¢04á®Jà�½¬l/›&=åp\�² ЉQŸq»�¦âi,{sÓGLT3Îc®ê¥’Tý•ÏÞYP°ÜÅq•b——Ê@”]Š™½—ÁgFœÑÇTâ²#³!¤¾7¾Aö&ücruy¦Ô˜RT1P&J–ë3�٤ţé"¬ÿ¾ ÜÆÇ7ÿ®\ù.v¯áÃÓ!ÂøEúžµ¥B‡5ë1¹ UêW¸~ˆ¢Å=HÄ-øÒAމìÄꃊª’Â1>7mU†GÊ."v]¶ÁéâàñaÇÏÓ‰k01@õT:¦œ9™¤ öÊT'/³ (3x™ˆäøLdÏéK¶ø…Ê“®²<…ÞSÞ‘§*´½1/ä�3íz#.”¡7�Å&G>U{®uó2md!áµO9Ù]]Ý`mî›5¯M‘\ªÐê>,â‡ï}%@Z7Ó²‰ ðë5}â1v^Ôps䔤c©ÑôZl!¾xÙ)ù¸ü®n-<ÁI" ‘à€Œè”µ!÷™ŸßÍSú  ¥¡Çuq ÂÐödoY8ÇÔõ…+R§Ô'»[gg¾9Îè¦ê úŒk2x와âŠ~:+poÎûrÚÒ;®”×ÍöWò¿†Ö›;ö÷7³_vêÑü‹�2{¶ÙáõtA‡P¸y{ùÿ ÔïÑØ-ª#)<¶D0k×"þÉE¦O· ÇäZ°óVo O9Ñ_kn™·ÝV°#_’ )ó;NuðŽYqIµÁ_åÍí�ãuÆzäTŸÃ› ב77†{÷=4áÈð7ãÿó…p‚ºÐ€]°{úÝ*H‹ûzrQ¬ê¡¹Na<¿–Ÿ•s` ±I°J/:òpf'’¦ÿ©ê1|Ü¢…EÞ­]KòϪYMS6�ìOið\Ÿ‰Ð’…éÉ¢õÝö4 Þ Ôtûº­�›y‹d-‡€ r#r�ý…ñu%ÆÏŒ7 «}ÙÞŒ•R `EaR�?H¿ÇàŠuðÎ¥Á _æÊ[<4GÜ`•ìÀzq-7Ç·'ËŠ�˜ºÞ8M6oŠÕVÝþŒÿ^µ4«¹ŽÃ›�-‘ëjUÖÿ 2ŒÕøi±+ÖF\°²§à©Zõ6%¤åªâ�»Ã†JÕB êG¯TÐ3™p �Ö«€¬ãÊñ4çv \·ÌÎv»¬äQðHž~ø6¬™-ˆu𯿏›.KUÁ¤»Šà¥�žƒÊÉž|ʬ¹„šP=þ¹ïî‡aÙÃæ†ìû¸1 æâµxÓ˜-¢uØIÎÄKSä02T�™!ôÅx„~òbh·ñc+®“™åJ§¸ùÚQ�6æ*È~¶ˆ|Ú$#bû�£—“ŽÒ·gÐú L“§¼ó¨ÙVC*$Ûnò³×ƒ•](åæQÏþ܈é*YÄ,í¿¤Ôp×"“Ç‹xA[g-A³ª[ãŒ"äŸöCâ›ÇÁìu+·.ÉYõþ$OH�L˜9Áß܉í­:~ß›õ äyÂ1þIÆ�S @㉠³ò9ÈËÌ.¨ì‚]ïÜ + ÙOÖ#`ö¹'�ƒkq_Vv,ÊÿiÌýŸoŽÂN"ñ“L|ìÓ†Å}¡]KüVKé»cû§$¯�ÏwIñM»ÐõMìo>¹­ Æ÷¶Â�>½µ éðíðeÀ½“³’WwˆðF‘�.c|½R+?¬bއÁ�Òï).ÊÐÞ¹8¿ÀW�ÿŸ6©Í;lX}Â5ŽX Íöäöd£æ)q>n§é6/Á&‘VX�ýÿ^ƒŸV»áo>˜–Õ«�Iü3âìW«D®ËZÛtßVx�Oñtri«@ÔÆ÷…Ž„¡Ö�Û2²È¿`ÐÊA«�CÞAE-y½…vìüÛ¤Ó=â–û^^ˆ($>OÌý¦LéœP@=ÞŠÚ8ׯµqõñqÖ}±áz(þªBˆæÐjã�c¸+´ï­hxæ¢O}b½§ZF?$Ðe,ÏœŽ¿í9Ë’|~ò>y²ªž–°ÜU Rñ–Ú†dvï{ w´€2º ºN�ܹ‹~I ûU.¡%ã�ðøæFÚSáïãE© O%vëeêÓÚOq¸‚(÷v¸æpãƒß?ÌŠRöªÈ¿8�Û=íH[S6xE¥œ»Öl’—è•,o©)ÈÕ¨.³³©I¬âxm×|Ižø{`Ń۷՘'ót5!çú÷ýœàLœa ºáÝÐæò~²N†f+7ßys&Ü|Vcp C^£›jÔxçy3—ÙÐ}Z+æšý×¹Žþ1×¢B%X=ìLêýîÄÈ{Ö|Ÿgy®!Çàc(z"ø‚kƒ=oÉ�ì63†ƒïš§ Óo Ÿl³°fF×µ%6 çfOï¸è^�BTU6Îþ"ó.8'ЙP (ë¿ °×¯~º½ðòyãºÄêˆz‡ð*Æö¾ç†ÙÎ hpŽt ¬Ëy}•žä9‹ÊSø’ ¸ÐJïDD}?uSÂGX,ZÉw-!m£\��é{ΟJ½>eþ%,L5Jë#MÊ´ÛŒÂJç­PÈõ}-iJ@ö�í!;p]/y¥ø#¸¥>¸LÐh¥HSXñy9gÀgúïqè=¨¾s …ÂWLÕŸÆWMd#¬ø5õgÖ‚pv{:zb£08j]· ´Íã=ìÐ «/çuþ½zrVko€·WJ÷ÕÆþ¯XVÃm Å\h+ÜK†§³„àH�µv©ÉÞ—:µ Ü8EÕ™ÇÃFÄ ÕÚ!ßòxrnÜJî³?8½{�‡0Ò4¨Ã"Þþ�AoÇ�fDÁ‚ó[+j휿ÖÚk~ÔÚ/d¼(a®ÊêÁ HíŽiA«µCŽ!˜><÷[³Vóø×½üxê]t� :'ĸ¸Hê(ÎåiçL—¾ÌQ�ÊnËç3“³�Ö×"%Ôèʵr¹Ç~úsø·Q…I¥M¯4ö>¶”+@ÙØY/k‰û4„Gª»%Ó“œ�¤ÜŸ½ìO@mÊ9Lfn”%ÁqGB*‡0Ã~æÄ�Û³¿ª%n.R'»ßH¤°ßc2«ê1�®‹1©É,¦àMºF%¦pëwÊ<Æ ÷(°úE–˜~§¦ÂÜ,BüX"É·Eþ±‘ÔZc�2K:·áÒ<æÒ×¾8O³x(çÛ©�æVÒ¡ÙsŸéë%¿´¿ì韫ŒeVœúŠrÒžW“S]�óÅêÓœù(œþy2CÕÏä/]õ±ôËÅ­a,G ×Ó«š1C6\,\5\œøRochë òmÊ®îs èL³´®ø>6®{}ÌÐ4¾G“ºT«È´{¯XO àû�|ò;N_‹dŒ—ëužO„Ö`ùû›;íÿcïΣ¡lÿ?€£zLY#Je/ûn‘�È’ìY³dMÈ.$*K©Bö e‰„²Ä$kÈ–�Èš-”}ù>~ê—Æ˜™O<�óúï}Î=ç>ç¾î>ï¹îkûYЮ¾ÉÂ`«y“‹ |õÂg~à¿`@-´ÄþÆ™¼e>™;–Œä.±Ø,$_Öbu¢Þks ÐbœÿUÙâÆ]E­�Ý Œàe­Ýó\¿ã –†‘šêiä ;¾µ%ÀÞ^Ä€–�lƒ{‚×ÏúŽv<|Èw±XIã‡ñ}¸Ow ®(ÅËËXXö¤/À“bm¶AØ š? ,é;3.¹$ÀÁb; ˆüi$9ŒëÁj½c™e�eÐj¥”ß\ÿ”£¥°iÜ_Öxe. ¶j›�àá�™Ù ~¾%ukу¦¢¿¢ÿ=YÎý•ºxÖ«33+1±#ª�.oy~÷‘Ï:ÀÛ­Ph¸OÞù‚J'¼™<äÚ9C²4-Ò: ¡cTA28Ãã­zîèiA16x•ßÉQÕiÚ_:'|„+Zv=Z¤ÃXšæyRA¸GêHÓ•ƒÑÝ"û88º²)¢»hC¨Á!Ï0n[ ÊŽZ=¤)¶épùuL|´iQòebò L;:è-ôßÂu£è ²yÇ)m—ä³/šÂ#"ØØøîDýˆqQj>à%AΘD�,Ž,e¶'˜(ZöžåŠßcﲨQFÏ»“Gk’\ìcÞŒ¦†3LÍE ºîqÐKœyòÙˆTÇ™V¾š±‚; $¾ÄocîG2¾>Åx/ß-5un_Ø ãD3ò–dûa�gæC>m—rL’æv¹òðԜѼuæ@øQï}ý·‡À¢7«D‰÷CÎäiÀÑf.ô ˜iâ® îoÑkîeø1“‡<Ï]ÖåÉÉ; U¶™ ú‡lÛTE�£ähÕ@©©ÖØÓ_J_ï X1“çþu&ÿñûzÚó±òà`]zU¾G¹“qP¼õyu)É �½Ô\Ç Ÿ”m•�ëͤG4»]׳8fï᦮¸–(æô$²KpZ¯�@‹áxcÌ5-V�k’Ñéî‹|²—0Õo>$ÌIR™ôß`k>6™Ø„¯�$v¿ÂÒpÿ@DÙ%hYÝA2_´Ì 3ö*ßRU§ô• Qõ¨GkžuñD¤÷>‹/°—h7‚–90_ŠÖò"â²bë>ïÖØ.îú ž¼yŸ0…ƒÜã’p4:žäY1ùj#ÍXD3_1îÛéR[Âh ªOº9VûÅÆKÑ)žTë’¾¤ �zla†�À -‹Ýç<YÕQÓ3a·_Ԣ߭à±ÅÜ)£‘ëòŠÐ>ü  „/äSâ[(˜”‹°œÆ·còÀ=?‡õ  fÊ*ñJ¿wÏû¬â×DöDG«¹õ�{*•³®ÊD�Gñ¡(a}�òºÐ@4ÄnzÅã„Þû(„Ëa�›Ÿü.pz�½åw€×û°ü}ÍÀâöSô´&R¦ÈV³çVø¿m\�ÿA²WçÔôç‹mËoîX"﵄J|³ÜZ‹I4måæpFÏü*mhãêîµ0lÐÑe‰Gi“àyï4�‚#ò¹ßßÚŽ“´ôÀB“FŽl¾Ú³ëç°K„‡M ùÔ¸k9¨æ™—Ý�8ðÁ&h®¼…ÅÓ\“ NʨԵ¼ã†-ßWµgÉɳ—4—Tëñ0nG½¼?ÍN"‡ßD€pw,cûJ…yÒŠÛq´e ‚Gº`#p¯ÚˆÐãjÌ›ËÙñÙZŽ?…f6`6À¾è�îJÕ‡°â×ëççæ¯P…¨W¡Ï‘‡äÌïa®.¬Û¾¦r‘ Tÿ§qøÀãL€¨1†Ïk¹}jkª\/ýº٭ÀãÐÆ™·Sµ÷«Ñ¿WëÀjóï‘ÍÅúTÕjGÿ&7WkE>¶¶Í9–tž™ø¹{!ýÿ õûäa%3n’Ò7$™ž†Ä¶Ã›ÓCÎqU’ùi[†ï«3¢(ô×{d¹…à ¹K[«ÉåïeF¼‹¦ä¯ž£JL9ê‡÷=[¿Q`P²º3yÚÖl«iƒ_­íö0 !FzD«Ÿ|j˜�€¨ÈS„šIë®!‘¾9Ž1¶ }‹ó„1´Ì(>``7>KDU6Yïp;o£0±t¿Úý>çx –NOÐpº6ÑîÎÏWií¥ßŒàú(µ´×°ˆªK?ušyP‘8D‡?•<Ü©Œû¢™I´>:�Бök±#VãŽá ZD ˜ç+og]Ñ ™´3|©¥úþ>MôiŸn© scÏì­»1?9É¿¨M’RÉlvGQÞ[®6«J†JÕ3ö·ÑÌ0múÕt'»å\éù¦}¼ÅwX £\®~~FãTø¹“W&°Ó ZFVŽCK®º¶n“DYÐ3ùHIæ4&¨n*Ÿ�õæšÓÆËkéÎÐ�€–¹Ré<öœxÍþÆjúÉOâ[ðþNñkhð{à‘�ׯ+)w¼íIU}¤JáZkHú‚‘Ùÿ]ð}~¿Êw´ Ï�ì… ¿±¹7¨êã~eÃH‹*ÇÏøæfCžC¹~!{L1ÖZÿl`++-É×dïaèÝ»¯¡R8µ½ cDo^ïù{a"±6“‘3ÑJ!“ÀWe¨9‡U’˜)�÷ Îêp¼¡`¥GûÙ{°ÿÚ{˜~g5Ý�Ç3s0å±pꪱbðÞYÈ{�תGÅæ%¬®˜±dç¬Ä¯±8 -k,Ñš?Âxôæ[�r{§½çSõʶ’€Ro’ë@+eÆB©dé�P²Æ&Pþˆ.îEÑ¿üŠ3Ä–%ªxãD”Ü—â›?<·Pç¦ûLa3~Eå´Œ´i¨2Û$îY­åÐܰ–1£›±8O¾ù»ç$Ì‹ ôm>Çâ¼ ž„BËÁÜÇÚ­ 9ZPèBµ0�¢Ô}U1ºWJR¢<�[•ÕM&NZ¦Ñä®Ï3Ý¥Éf£4nû&-6õ3¯~ ��ìËKÊ3 ’å©ÝC%©IüJÍòôÉ*=ä!B6N Ã#{XÑ�Y�ùRê;f ú¿>(s 3‡ õ9‘On´ŒoaP¿£‡ÃEŒQä˜Mïè 0€Qhþº ±¹uT=µ Ô/…K…"Š ~£�Oñ$ÝSù±HYX¨�€`‰´Q‹„Ÿ_’ÜÂ9 Gì’ò6hYPÊ\³¸w빯ĹѩÚñÝ–\Á�Ÿ3ÑõJPÞ’»­Ÿ79aÆ2¾¨ê“‚ýî[{ ÑgÕÙ“�›³ª¸ëͰcjl1¼Ž�õïkÜ4¶Ÿ3v}w!÷ßj‘ÂrJ>Þ�³¨ø/ˆ'¹¤•´Y±òŽ%®9KjË6‹ßÁµ°„ÐËnìÓ™~E=±qAºít›A`j™á®òß1Ü3Æ5V¹g¼ñÙÚ²Ê�éa!-¼é€lNÍeèëWC*Õ š(òYJÙý@>#4¶q.’£±Ðxƒ¬rú%ê%x =꾚5&¢ÙG“‹š•ÀnùëGÉê=…n…Øf™XvXAe\R°tï†Õ£’PN´ì2j›=®Õþ6v /î¡øùIíá¸÷&oE¥Œ‰$y…ðS�ìŒBh™Au"N Ã3¡]w¤í­ä½Pšp—åÉó™ò‰:]¬ý¨Ù,ïdœi[³¨ ´ ³öKlrÔSÕך±¯bQE庾zÙÖÆcÁÝö5é¢IV”†õlÁµ2ÅÝgÞ_±bÓ͉ž×&K.�oðò=àãì/­›aщFðÍ•GÿÐ6ô“€³Ý)I ©14š¬¡÷ñ_¦äàñ¹ßªç IJ Ú4¢VÒ†|Ï|}o„šÒû)ö?®ˆ“„÷žAvƒ»_™º¿uGk•´¹©Æ?3é0Ç|KÅ8ŠgÒÇðì”êŠ=I,Ð÷$Uøº‘õ�Œ3ïê+×+�È%ÀëKØþ¾f×öó×u QHÇ̶r^Xià ÔÛ8¦¶ÿ>Z�Á%ôª¯í—)`ìXÒå±$[t³8¦­¥ÆúAÄæþÊ‘ú«s—Nß 5×–õH?ÄÿF:¤¯1ªb‘¯ÙokËÊò}‹vTŽ<²½¤A±X?Z_>9x-‘¯†·•ë‡�>âÝ;‡Izaþ=°ä¨£LÁÓayXl-n؈sô–;ÕØ-é³lG†y?“#c3"Ò3w,«òÌXÍÞæó×?e¨6á�Ë╜ua“¦ lÄË´´G›AnÈ÷ÚZ†ê éËîËæ½ùvp¥>Ô'ëu©áœ•x5õÔ•úòìRú=üùô¶¯ó‰ÈUCð§}m� €(²×�k!ÚšŽÇ®—>ßÔèV°(¿q'2ìŲ‹HûßË$~5˜ïZñÜ<›ÕP¤ÿ:«ñS—2¬í#÷fÀ¹€L¸%F=�~ÌP¾;¬¿@5Ì rØÁ¹˜ŠÁdÜ=^W9Ç=Ëó!«ýºÅË—·®*zå>’£ò@4³²L³â¼¥Ë\š;á©ÌoúñðÃ"â'ƒïì ec£Ÿî~’%E13dû‹Ë›`.^óäs&ó6"5‚x v#CÐ á}¬G˜b—Ã*¸�ÓYr‰Eúg)žöŽ%ÇŽ¯kbá=4G}Å4ŒöXsjíM¯Rh;º¸øáJã4@3à½ÄScšXh=ŒQªÈ‰¢d=õŽWh{¦£_TX_�œ�³;³sZ$ÔÓ„|©䯇7‡Ü‡3>Rò–%’4%¹Áçd‡œÑ T¿n™*wÛÙ ƒ*&þ @ÀŠÙø‰_gã?ž«‰ÁB)®5³­¬ùáqž¸,.xÏòtH‡#â'§=®© ,öÓòFRÍ|¼‡’NOãºû’Î"GÅù»·�EÊ.BËtÊë°|R1âðÊÏÑæ¦r¼Õ�jÒ•9…îðªè]bˆE#{ž]L¾žd\ÙìAÓýuwqÊn²dÐ ÉiL‰gPÄ„Vv¼í·e­ÅžÑPtÚ•I6AÞ­1Eq[¢×D¾Ÿó`Sc#3àa­ã‚wX3±€É`�¸OÕ�”ÜÃв2¯ÚVëS‚‰.=)ºCÂ]²‡yÂ} ÔèÕ2^Áñ8MµHýB¤”ñ3¿•q²dÜ~?š¾øWZ¯F¦RÈçúWØp8 ¯B¼ñE&ÉW,ª³ðž+äþ)JÉËÿcïΣ¡^ÿ8€#"”PÙJ¶¬ÙÇ2D”%!•]"¢Pd*…H¶d)al•-IhdMÆN¶EÉeùÝùɹ³Å¸q¯óúï}Î3ç{Î÷ùëý™çû�7±u¦(wÈCmÎnlØ=�OkD l-Ñ4” ®¦^ð^Å‘Ï<¾Žè?–Œ ¾yŽ‚“䦙‡ð_k"_¬=ÛDÆYµX¬62è„’c&ɸ|§ƒþ òå®úÃ�hÖï�™³.QÉÑqÙƒŠhmݶ•Q.Ìhþ«ËŽË§ {©`%´ŠÌ0µ¯úcµáoTc�/áÞŒÜê–À$š‰Nˆ_ò'\žl]:Ë ‡¨1émÂ=&|"³ya“‡ú×aÏÄ]Ù™@:W'�Ç`²ŸïÚET ½èí׊��ó�>�»5,¯¾ÕJüíÍ1ÜP³ÁFÜŽushù¨•»àBÿúOá´COo¾QB4z„aOT—£v˜Lb%°÷æÛ¡Òp__ްˆ… ô”KõØ~^‚ïBI‰Ø"¢S8Ž;<*¿Gƒ¿ÙA±ˆ0<�'É¢ÛÙï,¹é?4Nä? qPxgmÇG~Ú�ö|P(zÁ»*ö)MYɈÐëwsB.ï0@–uŸQ' ¬žlÉ¿ddQ•\�Ãy1ªŒ§%8h_žYöe‰©Ù{5©“÷ü‘eG·7\yoP Tsùt9wrÿ'£ì3&x–½Oƒ;øÁ6vÕ‡©îÁȲ@a+ý,CA…Ñ�ó0ü¯io“H̓Äiøú>Ö›.ª&è!ËT.qTßÜp/»O½éApýÎ"ß7nÑ 7þÄ;ävgbC7køf�×!ËÒ•wH»F^%Þõ¾¢öC´â�™S|*â>Qïª3®TR”¿}8(‡iŸ ~‡î±áˆíÑ/AŠ1ä° r²“¨õ#§°³]PÒFüý¯¾[Ý\°OD�ÏUúw VjGnÍÍÎ"Kº¥iíˆi®øk Ë­µ§C¹�‘ýjsó:b0›éZ¾=Bÿ^O˜³á$AŠÊs®[ÇçG#´R(ÃQ¹¾ÙSfeTÈÁ¼¥æ²|�ïˆWB_÷œT£Á¯¿Cà ¢æL–%îÁ&W7‡Øt:>&ãã·tâ¥KäìÌÇ„#îuñý`œWí ¸{7S%…‘9჎œ¡¬5&_@,é¨vC�-Cé(3É'¸c@‡ÔµOäo–ø¸a ‹�ý©ëæ„W±ZÌ‘?“èO1³@o‹ØœÎÊÊýè9|àVX†ô‡ÏW±¹îTŒ‘ñ~àý (|Äv¡€ûŸÉ—Jÿý<)¥…<ÇV `±9îPnÿ=>ƒÔ~ke7nyÅÿi¾_1™ÍÃG4˜±ºÕI\~©¨öÒž\ ã—oè”ЧDÿ^'8Ã{€kñ°âŠÅ<�þ3:ê3|7÷ßUäœÆV‚a0.�ÜôÑ|‡Zñ³k?óüu_YVup:,ú@ S׎ØãFpFåR}k4h#’¢Ökç¨M2“§«bvá6ŸÊ™,®ËÑ:8Ž,ó:–Ë·‹VPÙÔ€a‡~ûK[·»Bʆ| ©¨�@ó¦sû.Õ­Ÿ^A– Ÿðµ£S eÛ±§v8#Å•@Å;­®;‰¤>g÷.+ó,%áÛJ*É”H³­i®Ü/kâ6•5%NÅ'oí6?�ß}k¡€Î^Ài7 † ¢[öO°eèC¶È6Ï2ƒµyž{ƒõ.ðÇu»Öç¿ÌÚ±-�æpgAPB�^psœ ²Ì†Ãs ÌWÜ@ù$^ˆ4üh@Û)2Ï¢æè“¡¼cÎA�Ï2�8ó´G�e¶"¤ï ržå•3²\O  xò{ŸRDÆ—ñç:�çHr”ï͸TØü�b'ÿ¶bØL�Š‚J—ŠòQƒŸ¦Nñnbæv˜¡:9ïv�‹Ûüí¡ÖDþ–dú³± n¥²ÚGZütò€_;ùùý¤c–ë s¾w`ð“ú#�.Lû ñ�ÝÃ1 v–ªj¬q„=ôÅàh›‰qFh¬#ÕíŠcì ΖÇ2ðl#Ë®ƒä:-T9Ÿ¥‡ö¨0´4rêЀºåHED>€Y@¸"8 #ÒÈ|me�˜}±ã,½g,Ô9Þá=1ÈÇç}/¹ÐÕÅ„n¦×s«;KW¨c…¨êÅ?R‹WT¸… B,ŠgÈâMzIööÜ¥P5 5V°w!]²¬FÀ.(Þ§<æ ¯wñEȹã$xŒ¯¶°ùðž7ûÎ×ú&Ž»{T$®O Ñ:õhTºë÷6©·#Å·÷2îzMBëÍ›'Íë_àžž>EyÃbÛŒšê~ Ôce¸H|àúÕ)²å³ ÝP´Ì™Vî5ÿ.ït‚÷æfâTru£ƒo£sEKA×BhŸò,�:£{(&Üwp¯@ÒÈ^y`ê¹uØ;0Öǃ A:ÓC˜8Hj¡bÍ…^ÞA"C8©Êf¸ª&*ðZ$Òú·kf¸ú ,�us»Zˆû”�Nþ§ÐŸ@ïÈôÆ:sô&k¯,Gïʼn•ÐáO E…Ë‚i‚éÖíEd uFÚ/Õëãóè/$ ÁVƒÿ5Üq‘û=LeÕƒk—p=n]kùÓ¯cÂ;…-.sT5«“$d©”ÒLW|‘å{÷*‚­=©J†ÿ^‚/ãÓÄ5! CìbS6ÿ e‚Åâ@ Õ¨™ð¯ e\bJÞ�±“ç,Y¹ñÄÅNîú0¡<Ë0ßÉ#Þç®æöXòvs­SV³)ýŒS»®<à 3A�@e¢-áÐpYÞ¦��<ð×N¾ãg'OÔQMchȬ-ðª¼lšˆ©“G|††§©I]9Ä÷”<†ìlû¢6õ1‹ÛÌ·¡3vvÄÙË]_‡äj²lLäåÇѰͲ“¦›e f£ïb¯ Ê\= Êô˜•R³$׿¶#7E3îÜG‹¡V¶oÉ-Ô§Rô¨«lÍ(û¢Ê-‘e 4L�"�üß�uÆÒu'LµKðMîêƒ ŽºËÆIDe~L{Tì¬3G–¹ð[‚ oÑ‰Û u빿ƒ)^»ÛÄÜJz�ÅåX<ä!·Dêõ:sƒl³@`’Ódón§ ³6ìïOçÚS*Œ–³<®;Íx¯B–û~L¼�Õ–$~dYé•é òTø®ÞI„öR1³Ažá#š¯&̇Š*«îò¢? P DÜcZR3ÅßTF¢lÁÈ%0ޟÊWs·øí„}òm¼öý>=5/KóèœévÖMDÕÚ//‰ÑÃóc�Öà啜•�¸8¹`�‰"œÅøyŽW$ä»ûaÕ‡ùž<ì À0í1ÄgÐIݯÉ ÐçÅÓèmòzéþ°q_Ä®zñà[V»6pB6öô˜W“ã ðnc!côØËð¤½ÕÉÀ)–ºî”{XHR¬ê�Úæ^æ‰AáítoÉå8ø ï˜Ñ™ZSXl‘å�^·@–™? é#¤ˆª3}ü ¼¯÷ÝÁ]ª½ ·M?]y04î Ì5TE'«ÕO{S剺Løì=#Ã[{°ÍÌ2&ï²Oöˆ ÛN½Ø­ÅGº¯ô¶@ h¯Û¥Ï‘‘œ—K>wí;r¯Ë YÆTIÁŬ;SèÐ~oÆÄ|¨ƒ•éòˆb¡L]Kåt‚�øÔ)ª|h÷‹ÓQȲkìÆñÞãy"…c‚çß)�…Sv)"Λòž†©\¥8æa:á||§"¦y“è_kDakS�J¢àjcF�ÎŒfFžË©ö_`¯7"'?gÈnœYé«•ró*åWF£„ö£_íø¸|S~__®„KÑs¾µ†ÿíx‰Ùú%=p¯.musî¿�ŽÝzQ\{$"²tã•<˜ØÔãÞ­3Bó²Í Öaoû™çµÈì›Fdz4¦V¦'¢¨¼ŸA¯oà’œ{åëCpN‰Žw×¢Ôº¿Ý–Å�±BlT¤¯›Óß÷Œh±Êä|é?…°½´ãsš.¥L+ˆ �ôê4.¶TWåêLV¶�Ë× äc‹”ý½Ö¿—nÀbQ‘¸Æ QYŒ{üŸñzçb²g§3Q´_ ‡q‰_ß÷.¢ùµÿç,À L!•±ïð±=í�k›¢uJPu¨ªFæVÿ_ð³{%Eò-ÄûEçBˆßXC<TëÉKé¨mm³Mg�rà+0â=4ˆ3ij ‚õÁ`@ ™  cŸ�ø8âÜÑäã&Òæêƒé°|²!“LsÄß‹”Kpüý½¤ñ �SŽŸK¯“ÂÏ (>j,RÄÒ'ÈCð÷ÜCø×¹ÇùŸs�+£Y¯šÉÕ7S4‘è&(`š{ >ƒºaþqùuUßm…E«©ßÚìD–½ƒN3ðÅ�kúœ½ŸèW·CBÊ|¯“ìµyKTRU#î3½k‰+:½µQS~cPé E[ˆ.Õ(+ÐòQkã3} ÷gÇQ1<�mȲÝ-Õàs‰iõ'Y¦ -xÝ-% ¬+žU1òÏöið´û±%úœ}|Y¦Adƒ9ì�âñÜ}C‹os>†Õ4¹cœë¡Wµ/»™yŽ#ËN¶x˜JL~0rÔu*ÊHHÿ¼Ïô­Àö³jÙ–Úß›W¦w@ÒSökµªó¤êô0Gp¼¬18D$HÌfÃÈjêú¢?8�æˆ%y®þ3:¿W¡È2©™þSÔ¥dU"n ¼rlŽ¿<—ó*$á=0}ýÈ.k‡˜&~m\¯ÊVv¢+n«�U:<Θ©O/åð�ÝpÐ Ü×w[ç8ÜY§¢·af¥´4¢Â_Y»¡`Î_mëY¾œ—V½Ãœ<÷i–ßa}£Ó¹¦”²÷¤ÂV·0éY|tœãnáZ³™ÒÒùHOfbrø î5|T•ù{wLõúǼdÏž)äÚ²Å!‡„pe ]D¶Ù%dBv ?”}+u푵PÊ.û–µ•=²ž~÷ŒL:ÎÇ�.¯ÿÞ3gæ™yž¯?ÞŸù~ŸUGge´w!�±®ö}κ¶Þ“˜{¯~åø°qVÔp�ä€Ï6˜k3ÒeEîn…¬‡GaÁd‡f†j†*‡(¿k-rí´�Zæ_åur- :²ˆgWî°B »›?‡IÁËzçâ§B-Ë¿Ú "¶µÈºW€} –"�íI}£‚?yyl.6ïr@g(²RRŸøÿ¾Fo¬÷ ÕÈÏEU®7úw€FÖÓl7y›BÜV ¤G%^Ò©XH�3ƒ…Þʼn*弃ŠË=5öh„ïJ@Î0^‹ö6NÖMÀ¹äð—»½¥Ù«ÈI â Æ3j7å™&dÙkf'~œ |› SG´/†í©¼5W¬î’à„hf¹hwÜ÷´Q,:cŠrˆ*8€â[º-†‡zŠ^uа;ÝõÉR–,|Q:ïwÌyD óa=ß>�Jµ¨}®Ûà€n¼”Tð¼D¾hl³2p ßöŒ¨Ì½C‰�—ß~r¢z®û§dItÊmåP\ ÎÓê'[Yfí}å‡HêÝ¡e4Óã�SÖCÍÏç mÌL¢Øèœ&ÜUˤè+3Ìi8n»Ëp�—‚–h{sß:Jü5æÅ”TQBÂ…~bOÖ{#7ê7±ÓÓŽ•WÈL(%<‡–‰RÎç6kòk8‹è½¯’è8ujy üÂm¢·÷¤#}DHŸÄßQ»N‡‡lÖg|Eó5`Páæaš6ï°3žv”ÜÓù©Õ”Š*ÓR"I�VQ•‘¼ØÐ²«{{숬ˆ{¸y§ˆ(.ÑK®7ÖÇöUb½�;›¦ Ód¢S”û Z¦ß˜JfŸqfŸÿ9»ë¤%9fÝåøKæâÏVhE½1+H6éy#. -Ãkžx�ÿ÷ÅbÍ+Žø ñ%d®Ÿ ò{zø c�=ŸÓ®Æk\_,s©PB—®·´âºü4aY‹&½L¡Ý{ôLiÀ��s—s¯½E;:ãʯG1Á…%€k†ž™Æš•Ȥy"òÎ�ü̧$‚îžmüigž"2^Ђ|΂‚<"M˜Â*‚•Fî×%+ˆ zÎ gƒè"&î/ÝѺe>YßRZøb¿Ä{ÏS%0Ib<ÌšqZgïšw’8|ο½÷6Rv1Zÿõ˜ý� Vãi÷HDÏääù[ »°n^ËÏ÷tTòyužiÔ Ùì:€sžÞŠ×ó2GÕ³Yoe!»È>Ê»åÔ�>åÖØa§TOM¾»ýaTîè3.L>{‚ƒK5³›'êpR;øP’U‘ÛÐ@%i�ì~ÞŸW£ë€F÷Y,øþŒ É-W:ëû€–àaK''Pœb‰ÑÒ$š™>›…#k¤ù–O´ŒKBbœ‹Œô˜Q6öìzÉ¿�˜@ûb˜%v²<]VW½¿ cŽ-!§îº%ä jD–a>ù“¡¡½X²LÁ”ˈfP|ÿü†üÆÎsz@�Í›íÆÁ#GÄÞ¤n^Ò£ÿ‚®ÎZ0:+;ŽOî ·£»³Uç`¹òyk4K›xþHÙd󨫲¶‚ß áòEßAk*RêѦP…zãšÛ[ñ}Qjx¬üž€P­ÒâÎg(C倈�êQvÝñYÕÙspòš=ÎB„ûGå*&ŠÈx£i,èÌð-Xc˜‚É 8€ &¶PïD4®ß 塆àd�~ص¢äðŒõzV˜VD¿ÊõøœV”‚t˜á«ýZUºJ��[ÁhàÈ ,ŠxÐäøçøß:×ve-QÞ¶À�#Y•4·–6)²j8ÊQÇ„âçtæ«tï\®¾¨õˆ÷Wû(Œƒ²˜OéÂ펑í 3f£¢Æå·ƒIµÍÛëÖ£‰¬�t¬¥ß×Òéõ$P­ÜZ˜o=Ö¿ÃÏh½1cB=ؘp·B*éÝÙ�s;TpSó^KicŠ˜hjCÔ�C¾‡3=^ù’3îhfzû5B�þó†9{ƒeÜmI“ôØ…Âð×tã'¡wãÆú *¢ë6ræ”ÓüÉ…|ˆºqÈ5\‹}øeÞËE]øëSØ©8†…¾À=OŽ3¹¢›ê|å©S½íg$V}Z¦SÛ‚�µ?™¤ö/ægYÇž fŠþ>5ŽtíÙð#é*ÁEš"ò.ææTâmµõé\ÿSWð×L�–1V0v«ƒH–®¥ÕŸÆQ¶ÛOž>zpàÔò½x:RL AUd.µWZ¦:¯õ71_-FïAÏÐ ©Äû{y ü*ž^�&é�·g¨y5|C¹8ˆl6+@Þ$'Pfp7¬Ëínn«à­-å[~Q$â ­¸ëåu‘}¶è²¢äDZ®¡%�Å“|´_‡òF“.¢9ü¾`çaÏf/‚t>d»!Ńçübè<›×$ñ_ •r”¬‰-Çm…vÉ.0V°˜ù­Âš §~ÑÂÖ�hpÀÿ‘Fãæ.?¦Û !Ž+Šîçÿ ™8ž½tURÔãÓßÞø¹o…'=Ž\ÕDÇèñ6NíÛD¬RPO”>üª,–Tµ]Èkéjæ‡fY7K+½…ç�e36’§œF¶¡,E ž* SÝڦ΋ј{j®é˹~ìË¿õå¢Â/û¸ØT½)Ð÷ÙŸ†y?Ïj_¹†@Ñ“w÷¸×Û¼ðÏï0e¡h�+yê6úg‡¹%;Þåë&±@®ì®«Þu‰™äU¯¦¸^æÞ–(u"Ó„– ^QÀz=ßYâ¨mT—ZWÀd¼3$øT±A¾ÿÒ×WVr‚a�Ð2y¬žwšµ@9ûa§§óBÃÚùWt÷˜Žd†ôq]³|}ö =Û-Z¤ëËm¦žÇYIUZc„áaÒ»÷sFS ®a09;@Ý×ÇöÜô4Uh™Œ#ãk€‡[U䜨�æÃ/üÊ�ãœ9’ogãY^I´ÇWôË›žh„–eI“�vˆvÁ¢~WÓ0'1n`s?òœÈ̾mÔ©U—VçòÆŒ‰!:'�ß¡{tiÊB~2X"¯wŸ·Ú< Ëü¡Í]ý·]¸­{…ž-˜ÝZsNx î·Yý>žùsv= L'Ý‘r.&ê)ZD}?ÿ?¿qvÜyžå¢™B 8ºÝTMÀó9±ÇÊ›7ãú_ -o5 †ÿ4çå ï]`2¾`‘•[%à8,ûۥ¶†£›ìÕ}òÝ<"«4Ñ­°ŸeÅGœš„ŸÁ¡åhûõ‚° ê‘$mo*žÒðPj[Q�´‰^rãt¢ï0"’«‰z^xøµ«Ð$‰w!oyzecZO¿Å"Dp†þv€…$ ¾RÓÄO`X�i˜`m‚GÅw¢'9ß•ŸE�wd8sîZq¡SúÐz ÞŠO)|+uèíá~f@´i™[A¶C˜–Ù(h¨¨t�‘«­5nªºo£&yV�¯å›„,²)+;Ôѳú9Z~Ò;W_1jͼúÕš‰�D¾=¿,JÛ³÷Fɧ¹·n˦›‡Ïqv YЏ#a¿/1‘õ„ö ÚÂBŽÝzbXÿïàõ\dà}òÑÜt+|ü•ŽËÒâBZíPk¾uíWr^¾`¯Êë;’Õw¦€¨k‡ìq#˜bŸ’|iÕl�šÁ< ÚÃØ�¢sRŒ�ïP­=Ë¥"­‚ù²Æ‚ ¢³Ð2¯óOÙ©)NHëiR‘©÷Z8ÿ�Kú{‚`ìа�ƸÒêí9"Ì™7 ej~–‡$ÃéÉþ¨î•ÊNs@“ñÎhLÁn.8Jmf˜'Éí/)“JÌ 5#Êp`)¬O©jK^Š×I%4�’ —#”;VäýüP´¬žÓ2ø¾ouü$›w™m¥qÔ,öõ=GžÐû²™,°¿)ObœæIúÈ™lž.›å°Ð-Ø4UæÏz$ˆú%6ybà½8¶âÓl�¥nYYK¸ÑF d3Ú®t»1� óÑ€Ó§ÆiKû\ùù›¤5=¥IcûâŽø�>¿Õ NM yž˜ž'˜9OJœ§˜Î$ÀœÃ­ž'È»ˆäœ ø·7ØäµëQ‚lz.Š&iÑy2sÝÎNTã„®9O@è37÷‰Cz¢ŽJ™Âê7ʳӈf<ÿü¦�hç©j2Їä=²ÝäÀC>ƒØEþÍã´ú/(³ÄüöZ>¸âéÌ.0"°Ä×[¥ž –\Ú¶á­auòÔ»ÑÖnÞHµá©­0[¶âÚUo¼ŸA°ø(|²2Ûõêš¶7ÀcÞIxº-¤:P�¡ÁðÐÆ½—·uAÄæ ê=èò_eúBÜpò¼˜æ( 9|že" zDøj‡h`‰9 Ÿ^|A˜Œzóg°Jy …�è Öw¨áŒƒ Ó+»V°×¬w·ãįR+Ó×#þŸ”áÓ<Ù‹»cÅÇó¶B:Uu,§Œ¡á5ä5žëÅ_+Ѥ�o£ü«W•‹¯5pYÝ�±¨ã6ýs’¬›w.Ýó¨¥wñWëÇAD„,žb½HX6±å\uó]…«ã:×°”Ø.ú?¹}Ö§Ù¡û~d¾?RzöÜœÂßÒM<'¡�Ó‡Ùþ;òÝçÓ‚¢ß&+ïóX¼?G™áТ©G.ÿ(YÛËpϾûÙ…Ý'öKVJÊ\²L5a=¾»ÆoQCŸÒIà û�¥»Î®ø‰4No†6N½?§cÞÉ_Í^¾­^z«ç?6¹O(�¡»!b½}¨æ�wctB^^ïØÝ<ÿšÍì~Í+qSºòd™5N²={–yž'P}æÄλ_•¸• [t¤Wß»]W¾DøRBóÌik–ø¾÷ç}©øã�±¨äñI<.êzñý’©üY|ŽÚwê¾eaË\9í5‹°Á‚‹{ž¿{blóò¦³¬ïK7¦ÞÔu+MⓞÍx·-A’åÑ«âPÍJßÃï¦ »sÿ²á‰tW‰«Ûì<ôß„ÊÎN²_À¨8¿ö´e«±bÙ‹SÙ5œ¤ï7,_ò¹zþ�xIÏ5<Qçþ÷¼Û]œ2û{EÆÎøÈ 5{ô=õ™ôiCeéSžÇµÁ[¯¬Ÿá±ãv C8çÙèß‘ ŒjÏ>}xF¬XÆ–ŸSÕ~>33.ú³]>j�—͉^ƒc‹uêk^�™7O£öØ«G6~ÓåaS8˯©ùïPé=/†)™ï(+Ô~r?äpéÖÙ¿Ë»-þ$¸ót{òlb�jIË:¿í7=ôÕ0çñdϯ³¹ÃÒÐh:îØÃo»ÅÆ+PõÞª‹×FÕ†|3óÀ`û€°ìC?½LC?c }^ý~'ô{hÐÓ/ú<¦›á•){LÖqjʽ6²øókÔ¯�³¿Mžþ}vÓf‘ž…KB qùÕ¹(5±$¿B§¦($U*–f&g$)è™0Œ‚Q0 FÁ(£`Œ‚Q0 FÁ(£`Œ‚Q0 FÁPJßÇŸ0par2cmdline-turbo-1.5.0/tests/flatdata.tar.gz000066400000000000000000000036051524160147200211250ustar00rootroot00000000000000‹íÔYÏòÆàiÓ%]Ó¦ûînéŠ3Nº¥mºüKplÉþ]¢:j!_ú:`¸. ÝÀs£y—Û|ó&–‡.waq’šæœ“yÖ1î›:Ä6¥z*í›bUµ1…".´ÏÌiÌÝPaèû|©wm¾RŸø Oðè^`>/çÓ܇p×Êm>ŽyS•‡.w �'©iÎ9™ç~WÇ:…ئT§fßÖuˆUÕVU(âBûÌœÆÜ E†¾Ï—z׿+uëÛÀÚ}€[ú,‹xþ—ϯâó÷é ¬Ù€ûð%€çòexoðt¾ðß|àAžD¹ÍÇ1oêòÐån¡3â$5Í9'ó¬÷íô ±M©žJû&…XUmCÚgæ4æn(Š0ô}¾Ô»6_©[?i–ó&ðྰ*_à}žÓ7€»ö-¸(ð,Êm>Žy³+]î:#NRÓœs2ϦÞ7© ±M©žJÓ‡«ª­ëPÄ…ö™9�¹Š" }Ÿ/õ®ÍWêÖ�€÷m€ø<ºï·ñ=`%¾ð,~ëòC€‡ó#€õ(€EýÖ$<–r›�cÞ4å¡ËÝBgÄIjšsN湋ín¿±M©žJû&…XUmÝ„".´ÏÌiÌÝPaèû|©wm¾R·¾NÀÇá'ðü`I?X�Ÿ·óü§_Ö/Þø r›�cÞìËC—»…Έ“Ô4çœÌswÕ>…ئTO¥}3½¯ª¶Ž¡ˆ í3ss7Eú>_ê]›¯Ô­¯$À#ú¬Ë¯xßo–ô[Vk\WÀÿk O"pgÊm>Žy“ÊC—»…Έ“Ô4çœÌs×6ûvzߦTO¥}“B¬ªvW…".´ÏÌiÌÝPaèû|©wm¾R·~"|4^@À“¨þmÀCk¸[{x> ർ´p'Êm>ŽyÓ–‡.w �'©iÎ9™g›ºnClSª§Ò¾I!VU[W¡ˆ í3ss7Eú>_ê]›¯Ô­ïÀí½ Àcz–ó;XŸßðþÀýù#ð€�r›�cÞ¼]ºÜ-tFœ¤¦9çdžuUµUb›R=•öM qúªnBÚgæ4æn(Š0ô}¾Ô»6_©[_t€'ò'€ûô.ð�þ 7õ–^U¹ÍÇ1oÞ)]î^ù×Nœ¤¦9çdž»j«*Ä6¥z*훦Ïmµ E\hŸ™Ó˜»¡(ÂÐ÷ùRïÚ|¥ný‡–ôW`uÞ€¥ý à.üÙ?x!ÿxi€5ú<¸¶V@par2cmdline-turbo-1.5.0/tests/galois_test.vcxproj000066400000000000000000000045041524160147200221470ustar00rootroot00000000000000 Debug ARM64 Debug Win32 Debug x64 Release ARM64 Release Win32 Release x64 Win32Proj {263deccf-470b-4bd0-b21a-d349b563cf6c} 10.0 Application Unicode v145 Console par2cmdline-turbo-1.5.0/tests/generate-block-count-wrap-fixture.py000077500000000000000000000053431524160147200252370ustar00rootroot00000000000000#!/usr/bin/env python3 """Generate block-count-wrap.tar.gz from a freshly created PAR2 file.""" import hashlib import pathlib import struct import subprocess import sys import tarfile import tempfile def rewrite_fixture(path): data = bytearray(path.read_bytes()) magic = b"PAR2\0PKT" main_type = b"PAR 2.0\0Main\0\0\0\0" desc_type = b"PAR 2.0\0FileDesc" main = None descs = [] off = 0 while True: idx = data.find(magic, off) if idx < 0: break length = struct.unpack_from(" Debug ARM64 Debug Win32 Debug x64 Release ARM64 Release Win32 Release x64 Win32Proj {73cfcb2e-19e6-4adf-b825-d2fa87458f3c} 10.0 Application Unicode v145 Console par2cmdline-turbo-1.5.0/tests/libpar2_test.vcxproj000066400000000000000000000047011524160147200222230ustar00rootroot00000000000000 Debug ARM64 Debug Win32 Debug x64 Release ARM64 Release Win32 Release x64 Win32Proj {bf86226a-49ba-401c-b6e1-dc52a7d7965d} 10.0 Application Unicode v145 Console {d0a94f83-495e-4fb2-ac33-9a3ec2cc263b} par2cmdline-turbo-1.5.0/tests/md5_test.vcxproj000066400000000000000000000047521524160147200213630ustar00rootroot00000000000000 Debug ARM64 Debug Win32 Debug x64 Release ARM64 Release Win32 Release x64 Win32Proj {3c50aa0b-8b10-4bad-85f8-953861327d0a} 10.0 Application Unicode v145 Console {c4657dcb-7b83-4608-a1d5-df38d37c6fcf} par2cmdline-turbo-1.5.0/tests/par2-0.6.8-crash.tar.gz000066400000000000000000000206431524160147200217570ustar00rootroot00000000000000‹ì� v�Í}{Gê7²(÷ËRW‰�©&å§+ÿõõŸdGØÆ_ÿ%¤°ðû?¬VB\ÿ¿GÑQÒÃ’éhd~~í,~fÀd)öñ:+2”2-^ÑotËHæ•©µ7SŽgïf�ÖGcÅ1dj{kUkWËØðY§~±Ù¾'èžä�“Ô;Crf®¬*½‘öéäSøëö/Ûù72K»ÿ­kØê߉#¹üÉìQ®i™ø)ÑPê¯Õu�š¾ i}x]Ë*õ&£”øœ»z2ë–w/'åj\þÀàÑ8bÙ‘ðI½LèUÛñL‘zý‡�ktÝ7§ùe=˜=»/$|LÅHÓ–ŠXœË]_æ¹`|†›]”Ë{­ý~¦Dßã…(©·GY�h–¹¦Ø¼ËtÇ‹Õ?*´ÍÕ½ÜJYi1ÍÌ/Æ0$"N(3JeZ[1±ë"EøÍ†ŸŒc9õ1œ«Í–‚{ŸíÇÖÝe>ÌZíwÅv"9W)Œ0˜jÛâ&‚Ï»1¬–­õ5¡Fü°!7=7ÐüDº‡PŽt>ísÍ6n·H‹À.=bÖöö5“qÝCÝü‘4 ½sKªZr¶n­‚62�né¼=iQ"Gãy)ÅGà 㡳šæäÙ›Š’EJh~É�r¶߻¹·oHi>¿f»é¥vÑ×vÚ‹B›¸œÌγÝîFv:Ÿâ“Hþ’ªhñ¢SÁpg½CÑLŠÛü{zµðÇPQ÷[Ê)Þ¶x°VÓ« uÚÙЄ¼CgÛ¹içÉ54ƒj,Ã×µRôjÛS½|‡N®½|4ÊAG²í…pŠUXÊ‚êióÌn—6³¸å¦$7ö‘âáî©×c7¥›™Ÿ»MñVqwtô\?ᢲ“Ÿ-,/WµXòœ²�µuRÉ‹K3è™IÊ“º÷n­vØ"¼þ@Q3sDÖãã¶ÇXž‘¿©ôâÝZb�„n¦sÚ~ÙÙ:çÊû’¬üK}hCC%Nõr‘#¹ï½Çº.–+TÆŒ•ª<Ûõ>Â�Ÿå"WÈ\<�¿×>þ(kãÍR;w2=ˆÖõó¡ªØÑwCÞZ¶¤ˆŽÈYˆ;x¡Üy®gï�Àc8Î…œ¦UÒi¢�ŒñVùäc62¢Ù™œÍã°;ÓŪ�Ó«�p¾=@Ùq�üÎø°c¡ÓÙ¾g¢lTuó:,óÃ&FS�»Š{ÄŒ“£ 4¤—òŠŽl d‰èByù²æžu­;ÃüäÙâGìQ~âùTaNŸ÷ÆcïJŒ„ÔRUë\Ínñû×ä5�/ðxb#ÄÑë‡4ò~TÃc"ú):z©5¾ÖrüÆÁ‚§Ís-YÊ•YêÚq6&/b‡o§e£JP‡|ñ�Ñ÷Sââö _ ä–'NnMiI9i7vOK6·àMúãü© Yë«dõ_SŠb äzl+t‚#åš{mÈÚ‰Ý;èÇššÕï`ç|^¸Ä¡/ï_¸h—>£ÜͤKË&ïa‹űÑL”žY|'­mpÌfþ¥:×YФô¡KY4ƒ~ì¨E�ïlƒ™§¦a�µaj �’°wod9$¦FißÑ•©;˜‘ÓZºMЬÔ|óù^á ^™[›SºÞPF¯«/ë çnÐK½S![+Þ¨ªí©»FºÖÝëê\bñpgx¸´èš¨5�\6I:w?0æ³WDd z¤Îb4N±™C¢Ûyìùë9�‡ñ‹kJÜ[:}/g=‡÷™CÑF‡Ú‡Oo•rŒŠ¹î¯†Ôg:�‰áDùçdrz³ކçÉ8^Q�ê¡KœE™ô¿�‰„¿Ö\ýŸô™¿ýaþ¥®5,¿1r¸N'8ä)=ÙWs‹ZMëRŸ ¯ëX�Ï‹öô�Ijz[áSø=^ý¨ßí3›–ƒU„=°'Ä&¸ž½q±àìQÝ4  hßUû�{7  h@Ѐ4  h@Ѐöm´föÅç™tôSë­+É"„ï鯗T�Ƕx–�ªø›)z�£ór3‰û….ý¹ñn!îpÅ+TrV¥n³Úê½|É#*†_F¦DÇ„ÍØ,(ªR“]Ö!ùX ÏÝËåÞB�Âö½¯DIUt8Nï¾ »?ÊZá¶»éù†SvUN5æís%÷8DrÒ±—Ž›úcÂîÍΞ ™JŸ_£h]PÿÅ·]ôݤCZX�n‚Hò¢°)£övϲE³®· §mµðîËt2»å�êT \Û±3uÊTa:-€Ap;ƒ¹CÎ)G¯Í×ñÒÑ|‡¹Æd}ïFm:ôŽõèËX®ýçqgÅtá‰ÃËëï2´M•ØÇ¿6–»×œàHZÿó0ò¯aø¸.|nì˶Ž~ö¼_À°½ýô@&jl9:t¾òkÛRq±6wsrùmim…¶ðD“fˆ-¬ì ŽÖhwkW‚“#ú×ùfño=™ Ê¿]þëùw'{ #‚Å`¾øÃù¬„$ŸÿÇâ%q`þÿ{”/çùîϯo$æ·²Ðû¾¸ué�ÕP»nì´í™im|…ÄYyFäŸJÀ9oå•RQ—‰ß6*æ«´9H*ÈgYåçx-별Ú(ؾ¹â*8˱‰C yL‚2PpÎ ÁÉ–uZ7£Ò"ÿ$ü‘.g-äAͺ~y�gy�gùQò,_ú³òýœ1Ï ·öv®§ö`JBêÏÖAžI­¼n8'v/#þä3[öAÜ ã’�ˆ$ ä9ÿú­œƒ•¯îÙnÑꊹsÄ;’½û-‡òÐÚ>±…sÈŒxŒW½â¥/±íUŠ(F⬇<Œ£ÖÏàœW3ÔÌ<Õã%æS#"U/ qèH÷H�ôð{€Ÿ!7ô¥Í#WÜßnyVß®ª[¢<Ò¨�Ôfä9õ¨CÎÙ–#š`yÐQ3É¥¨¿Ç&‰Cy|x[/Á9®ÎV¢/…ø%¸Í.ì‹ÁN#q Ïæ6;8‡N‹N²Œœ¼©v‹jáPó$#äi,Ж‚s, ƒ�( Jª™·­FRfÝìͱ±²Ü.ÖHvÈs&ݽà¯ÈÁ}©sÃdð�yÜò,cöß´ê0R�7@ž i‘.8çÂÓñ »Éû|õU¸®RK#q6Bžºò3ÔpÎÍò\-3EÜòžó;Bs-�§¿MÈΠî^^JsOZ—z¯ºÃ‰Ã yÌ›f_À9õ(æê)öPÅé÷ƒCz‘8\�ÇKuºøgÎÇ(Þôä[à!˧úÅ‚ùå0âyÎMúìÐÑÉpŽóôÛl™E§ kªÛ÷‚³�8<�'º5µÎ ø@?_CEãþ²|“¿DÔ¨ y$ËúVÌ�¡4dåøróãó¯¿6mÐl¼ŠÄÙy–œ'¼áœJt2›iX ÿš,mÝ})áÎH^ÈcÓ-aò1 ò1 ó£åczÌ'‡Wg?Š«Vš¿D…xíæƒ<³µ>x8Ç®âœ"^ù‘êA?•Éñ¡$ÎfÈSèX¼"{@¸å–L™ž ›棱À…Þ�Äá‡<É·YüàÎ^½4¾“"�Yö±<ØR„˜µ€<�9åFàÞíBB%¨½žkDŠ/#q!OoBEðÏœ�y(jš,'>rŒÇ펭¸©2R›…H×îTËù˜Š�¹ Êsǵ¯2�­Qk{‡Ä†<2j—ŽÃ9â�Ò—Ÿ[Î]'Ü?¯9wI‰³òœo2ƒsôcx*£æ–UÍ%6+$ qD �ˆšÅáí"öx·%Hù{íÇ 6³HQÈÃlü*äc€4 ýcµhÌh@Ѐ4  h@Ѐ´¿›ò1~>¦K+½Ái97"ñedCÆînc¤1a1ȵ�×Α˜îx�£ã~õ¨Iÿº:$é{‡¬Ä;ᜨ“&±«GtF—7>vS“Û‡Ä!ýRb“Ú,œC{ë`5£‰³’ŒSß<*èÆ]$é{nzE2Uà‘G1÷¬êÔØïd¶\í«|ŠÄ‘€<»L1Še>&”«%Ð{ã™ÑWø€g·[Ư!Õ™ô…A»u}iá §€} èÛCÜ3®v±{$‘88ÈSE‡†sèßÉ[ÄñŽm�Õ ºéçA$!Ï<¯¤œ³Ô¾Ø„`¾7èÙϹ#‰CúíJf‹x&8ǺA�–÷jUB°ŒÎ_ùG òܾV¢ú3çcrCœ68ऌ¦ÆØÝ):° ©ÍÒ�GnKÓ8'Óç>“@Ï.­…¤{ÇÕuÏ+ÈCìõ>µ"£ÄÄ–áë»åå§®ägäÝHYÈ“˜9µâü”�Îcåuþh¸Úç c`%â1*yÞ%W•Ã98º�ѯG JÓBٌߪU!q¶A‹t‹�ç ò1 ò1?J>†ëIÇ9BêR å‚jHˆ£'R&yhÔ„=᜹�õŽÕ­Uñ×<ºÓ¬¼5‘8 �çâ¹§•ýë‘"ÞÐ%Kþ®„ë¶³©Hœí�§œµ<Îq!’²›¼3~¾ý¡uFžgäé3[x ç°õ(³ ÉœK+³3utà@â(BžŠ³9ð{€Ÿ)C Ì ¤òß_g9Ýp˜€Ôf%Èã}CþœÃ¢0›,·§Çï¥Sæíkó1ʤÏIÿh6œ³^`\÷#ÍVÏÆ®òcúf $é‚ò(»ÎñÈùE¨�h=Ú(SÍìO}´‰£ yî�“…s^«?�Ø`Ë×¥åÏl9°· ‰³òØ£@>h@Ú?Vû�Æ �4  h@Ѐ4  h@û»i óççc ² ºNWM¤IÚånÒ¸Œ4&¬y î»ÇÃ9̉÷EúÎé´œªðEkÑÙ!qvAž ìÊ’pN™!W¼ž¢ø‡*��:,LGǺI¾Slq¸ß+Áʨ0UC>ŽVø O»ù•%gäñQñ²âJòëGÛïé·?�¬"Gü]uÈÓ:œÁóWæcè¬*„É$"×ÜÜo(ž‡³iFª³ä¡ä_‘=0ÉO¹¸h+ïÚœÝ/NNg�ÄÑ„<ŸVûÃ9dÅÑ[™¦xTPœ«¦Ï ÎËì…,Á ûáâUŸ�õµ8ªÀž®'ª:‘8Z�§I"ÎY( W‘Js¾�$^ò0ÛŒ‰£M:ÆÒB#æ|Lz@é T¿¨d¡uÈ­Ö‚v¤6ë@Gç­pN[™N�»�'.\Cä~­ÔG—t^UDàœMÜ!õ9–ÒVò´ÌmRI¢H=ÈãX$çLÏ?c¸w"ÄpUi�Q}Á~U$Ž>äÙ‹?~Ρò’ÀØ[T¨¯Ë”1Dœ/5€<�.Å¿€| ÈÇ€| ÈÇühù�§û˜ Í­ºí#‡çã�ú3CÒ¼~XËŠÜsQ~äõ‘K¯¤ˆ‰5UÑfˆ¿9cyØ>=¼ç,rÜ™Ây®ÚÎúQ0{öÚ;óh*×¾�Žá')ôtâ´+e£’¡B™g ™‡L±“c¨LQ„8d.c2ÍEJ¦L•ð*RŽá˜ŠˆÞk?ï:ýqßë<×ZïZ=Q¿ß?ÖúÔ÷cßì½Ý뺿ûºë·ìÁyLQ&ÍoöÑ£­õOîcm³¹‰ªÔ©~?ìû´í¸ë“‰žÞˇ(õŽgkúÍNEçÇþ’†ó˜£ÌÆã”r?FôsßÑD��³®oò «YE°ç…»QfÈ/z–èé·Þ'%;%Èù´¡êÌð,v�Ç=´P/©ëd�›xÓ9Û–c¢ÐÕ¹ë\=Îc�29²¾6D�8…SºúùôqÅGŠo¹/Èêá<–(£#—fAô �4ñWX™–Üúþxí#ì}7­Pæ’ó—Þôc€öñy´f 0`À€ 0`À€}o ú1_¿“ó�³áöïeáºÇ+ÍÏ”?Å­ ïE™fcÖOD�n›ÑŒotGJxæ3 v~k”Ñp]åFôŒ-Ó3µŒàÎÝ|šá逎ÎUœÇef¦ž‘®w{�Ÿˆ¼Ïj¯¢¸(a"7oOÎc‹2®sS¤{úHsh.VúéEì`D£iâï8�Êð·ß·ú–ýÍx%Ñ;¯]Wïm8ÔšÓº÷˜íQf[ÄÇj¢‡ïnįݖ±c<:JǺcq”9Àµ†tmlGöøÕRžœŸúK¸nv”Ô^ÄyQfCÆg^¢g¤r›ÃÉ@7Ê2z^¶ Øç˜Ê´ÙÌ|&zôyG>xé!ð\T¬Ooƺ çqF™é[ùr?F9›ß­ÐWܶ©�y¸"Ý¡wÌ.(S»VR�ôœñ¸±"v�בç)ê»›ê2pž}(ÃÁÎaEô(­¼¢k²ÎÎÚíWæÇãkÞã<è�è&‹‘ž[:òüò›ôc†YL’>HŸX…óÐ^�‚ɪjD%|ÿÓ+ F‘œ°xÖ÷<8�;í¹Î”³ú1Ð��~ ôcæ[?†-!3!žµdEC•ß#霬IÜûí¤£{¦¥•è1ûÕÏFL^Ä)ø(•½3¨¶çñD™[îg6=¶–TñúÇk=Þ\s4ÛkÙ�2«�—“þvë¼<=X¥�GÙ›òBTçñ¢ýís«ÞLôL½>­2Ô•qCÁçíœü¸$Îã�2÷^Eö,ä~LÎDý(edÙ•¯ÈœêgâØ~ eŽ9½XAôxÖ[Ľûscz•›ù�¥ÿxÌ{ Ì‰‰¤^ËK}ËÃr[Æy·�礋4%ã<>(SZ|:“詳 K¸¾´½ÝUжËåôÉM8ÏA”¡Ÿ½Nºï¦ÄÓ óa J€¯`<ûàJüy¡/ʘ®¼Áý`À€ý°l­ 0`À€ 0`߃~Ì×ïÇÜ|.¦Õ¼Ò—%ÒÔ.i�ç?^ãÿ{M˜¶î~§¤ýésÆ ÅCÁJ ’I‡zEM]°{�ø¡ŒÌÊ}‘Dcpm‡÷àÝ“Ñ!+š¦£-q”Qb�­#z¶'ÐÉäÊJ=¡øÜ»{èã-œ'€vý@JuŽè™^£Á®ÃÔË#�à¥j,Ò‘‹ó¢LBÈŠÑoÙ�™ð¸ÚòÒѲ½Ñî‰Ñh *î1¢]w$]Czôrm³Õ 6†Ì×7—süŒóFÕà×»HûÙ,ølaSË#­ÝÉ_|NHç9‚2­‹/=œtûÿ¸±N1òä¢`¾ Ææã8OÊô{ŒN=í®‡ŸD¿íövg/p²²kÂÞ§)eÂr:Ž,ä~ÌÌNŠ¥Rýó;"ëÆŒ>•�øÇk6sÊ<©·Î!zniQæâ  Òô{^ék¯µÁyBQ¦ÍÚG•ÔƒciLÍþÛ°HGGê®&vì¾/a(ÃTSÞHô4íÈȵhdW¼œîóg�ê6œç(ÊxªÇ]&õ~ìÛucŒ3§ûCÍ8mÆyÂQfULø—× ôc ýèÇÌ—~ uô˜—ò襼7á|Ï­"qïg´s�x�¢g½ðLE™Ãòµ ãæ\ŒÆ+kpžc(“®ÂÇJz¿Ï—+³uoèÙ<2Åß2ä…óG=CqÒ}‘LD%d7q3„ó±³ã<‘4�žÉJ¢çT>5ågƒ_Ɖƒ\û{±÷�B™˜Šñ`!õcD¯x¼9¦ÔÕœ¬ÊŸRÕŽíŸ@™êgʤû�1ÊR®mz`DU™�S12Ây¢Q&õ¼6©“zœº.ê¥QÃØIÿ(ÖÂWØ{,Æ ŒA—G4ÑÃíÕ•]ÏRÞCÿâˆ�îûW8O,Ê”Ÿ«!Ý;²£˜î¯±]ž‚KÔ"cª°Ý«“(ãr}ì0ôc€öòy´f 0`À€ 0`À€}o ú1_¿³Å�Ú`Êϰ¡&o‡aC#nM8e.éo>EêdL†XÄ×M<1àšõrÂyâi×:vU‘ú1ª¼ÛkŸ‰u�‹10aSßteçùej�u·=ü‘ã~F¬ÁL|‡¼ßNÕa×ÞPF%q¨7Osni¬�¨8…í�B™¥ÒH{ç(™]ilè”ÝYu¾ÅZŸ÷ΓD»~Q.dFú�Ïœ÷ <ùöÃ[:]ó�’Rœ'eê$n³=‡ò_y–YHFqSƒ™].*·â<)(S¶8Ó„è Rn �“hZ|Î!‹¥òÜ'e~e8þåäBìÇ´•†�Þß,ͨú@ÙaMv vÿ˜4Úõ¢ˆ,I¢§¿Z2ìÑ“Vßý?7lg½Œó¤£L‹ÖmÒ}ÔJ]Ö«»ÇŒUTY¦V Oã<(“Ð`o@ôøÅëÿ±œÒº]gXÈ®þ4Îse,׸“útBNKjãVxûS3|Œµpž3(“¥8÷åµýèÇ@?ú1ó¥›ÍumB>HAHÜ]“G‡aîý,“v^×,oJô0½‹0/öÛ:SÄíWÍf¯ŽÝC. e„r„¶=VEçó•Ÿq· ™,�µ_�ód£Ì�½nÑ#õð²^ãûî®ÕrîtcQpž”i´ú@:Ï,W:ÄÝ7<£V÷4'n­ΓK;KØ›L<XHýÁ 6WU·ËŽMgè¥ZÙ›òqÇœ‡2AOkH{<ª-V|'K¯•Â5$æ½ô%öüò,ÊH\ÈJ%z"TG´�dÖ©UZoYyÛwÎG™b‹†k¤}_Fo¼P6¡Ž±y¯�óœC™{ÿÃnNꂽ^rdPz6T£òæ]añ +œ§€öšqÔørO2èÇì‡cóhÍ0`À€ 0`À€ûÞôc¾~?f0Èá¾JÛz³Ÿ–+Ô)ŠæmÁ­ ÒÖÌÛ< z4�Os¼Ý—º6prTÎS„2Q!Vb¤5üÖüמéßß}žz½ˆùO3œ‡v�¢O=.ˆèIÕò -©ßé4¬j!æîŸ‚ý¬l ÊH*}ð z(GõÓ�ƇõTúoá\Ó…óœG™}^ÅK¾e?¦7ñ“B|›!%ã½Êj�—úp�ùí:�µ.éghçð[ ?KnÐ�‘E·²�_à<¥´ã¬œ$õl–ƹS¹=47«VþëÂ�Ç8OÊ\«î¯%z2Õ—vúXætžKJ�{+„½÷ÖE” ˜ÜGô¼gï:9hró£xî[^óNœçí÷±xÕÏ ¹ÃH¡îÜ[6Kïk8óAÛ¯:wÌ—Q¦µóÞïD�Å`Lõk�³¶Õ£åKÒ#pž+(c-hKô|v|XÅ}Ðj2ÖA9e®G»OÔU”Ñ�=LôðUÌ ÚMfz/»DñÙaˆó\£½7øÇ/&=ž”»¡3g'¬ö{ t&â<×Q¦EÖ:ú1Ð��~ ôcæ[?¦ñlã%£ö¢ uj§¶jc÷l»A{_Ôñ$Ýo¸Ïç_­œŽFõ ñÌAõØ¿Ý7Q¦ê8ó(Ñ3ÖkÏR “÷LÌäsën�Âe8O9ʼьM"zädÖûjÊ™>Š¥?¿»§]Ê4¸t#ztk3¯è[æ˜Xôê·@ìyæ-”Q ï¾³�û1BVÒCïB&´{·Ú¥ G_Áóm”Û¢MôÌ�v¦t4P×mVßUýic� Îse.&õQ~}“ÖÈ«,;øKjbß_¿0á¯I,ïš)—�þësLÄtÝ?}¯mÞ6<½ÿ遲½€­ŸÀ~o);w{7�ƒÞTO 191y1ºù;bâ´‡-úïÇ)jçmCuÿÿTJþãH ‘“‘ù÷W4įÒÒt’R22²’R²’tR’Rrrtÿ�€õ€�·€�·§ç�ÿôÿpÿ¾@G/k2N+ÒFÓ[ÁO‘‘ÉM‹MànbŒ|Ìïý#3»x™ÔØ®ù·>ñ ˆÈ÷{¯Æ:µLBí©^~GÔ¦P&K1G΢ҦäUkf.tŽ(™éúã¶±áíJïYm©±£ûu ½Ë ãLQ4ê© íMPÿÈùKtoCù„Yæ›­ôQî¶%á^%{G¼á;#:Øæ4Α¾»~nWF¾žߨáKuÛ%÷¦G¬œ™ívmšÍ}£ÙR`–f�R{-áúCk™RÙs&›î|¼Û㯔)Эªc1ݼQ¤@³xÓÕÀoýs…�����������������������������ùoÎÿÁ)ø‡hpar2cmdline-turbo-1.5.0/tests/readbeyondeof.tar.gz000066400000000000000000057240731524160147200221710ustar00rootroot00000000000000‹Ô½c°-M·.¸lÛ¶mÛ¶mÛ¶¹—mÛ¶mÛÆ^F¿çDô¹ç;Ñßíû§ôˆ¨¨œU•3gTÖxÆ3P3éè]L�]èL ] þ¿†„�…å?÷ÿÈ¿î™YXY˜™˜™ØXYÙYÿ9@ÀðÿÙ/úoâêìbèD@àdoïò¿»îÿíüÿOEAê?[5åtÿý $€ƒ¡“±­‰�¥�)­“© --#½ª (à(|'ßÿÝâ?»n>‘®³ÿó‰÷Ÿ ûßtTU‘�WRþ¯o€– •¤Ur š”™Vv˜•œ‘�¡¦T«§ˆ$#~‡+©ñy/�¨°|½¨ðò¬ uëÖø×�ž< a±ÊÅÿýÀÂò š’râÿ5pŽŽ¶ó–X£\Õ~é³QE”šÑÙ5©"•jŠˆæv*ehñõ¹­   AÆï��oÆ@:¹¹nV‹(//¯ïûÓÇ-w0?¾Xüé� ÆëÝôÐÑÉÎýä~߀Ó¹[ïùýY2­®Öñ©ïÜWÕl�çë’ü]gŽÝ˜j–m_•³—kXüï»r| {I‹™MÕZqóiiù“¨R ÈÌÓ;ç.Ï×™=F…®=“5^£‰�·™RY*+ÿÏ›ðœZ-þçè×ýÏN—»ýÞ÷ÛŒgö³ ý½Ñ”-à®’9[«N™ª)z)Õ4M&‰~ºèe%SÎJ~¸¹¹�¹¬~éêÁ_#ËJT½™ÅŽ™Öh#½:[½¿0z OªIüeïM’Ô…yè©’�Õ-ÑÎHCîDåá‹dWšfšLf��¹™ÌS…,Ö÷öÙè�ßmõt¾³¡3TïAðúÉ5h®74„ý¢ ¥uÛQúýhéð6 \ì§NзO•28éÕõyÅ3¶&§¹†7vgrmÀ¥KÝ�ïBhÞµÉLsЙ÷´¢{¯Üx¶ì÷3X.­xħÂp a½Ò_¡.¤Í­Àg8É ‹œ²¸�2¤Ù²`ʦšbÞhl´C;sÄÂwÛ%b8í)&ÚJû¥K6RFœ3ªg®* ][¨¤À%k =·*rpHÚ¹rP¬«îp•×WNAYÀ‰²m»pé»\ÔÈNVq6t2»&É¢Ÿ˜�s£6§“³_»X'áð˜nDé>žÌLâÔ@Ê(‰¶ϔ֋±rfóÓ—@|*Þ»�öQ�?H1'µWÊbWö¬h�³Ù6•Y>k­F²Á’·¹7å’nj–ZaE´D´ns¾71ö|‰ ç qm�H+ž¢ŠÇö1í#;ðþÉÑåÕÏ–ÆÒÖd²çW£´ÏúŽÐÔR8,±j;SQEôJ RƒƒL¬³X4mb*n;3rûzŒ³;Ê¡ÅÖ¡·Ð-¶|û³­7/„p)Ì DnzÒ/l]‡Áyœ–^]÷“j$~±^yCˆ©B­ÜsèBÝåÈŸµänŽÓNÒÚZ�{ã&·—'Ãà»’NáÒS«4þ‡äämjšoèž“Œ+î Å»¦ låŽSâ!p”šêì{ZPÉ…‚­ ÉxJ½z‹pЄw=圫lÍ…ï0¡ûoC'¯ê®ó�ÌðÒ)(D Jqk7Ù]=n´ÑЉÄ!lñuÑÃûæ"›3%[¤ó[”Â05E´c[ 1/OýÓåß׉p?­Æþ‰bϤ¿õ·QF!€õ§ÚhÑ^t1Êa•H 71*pÄD`ö—°¹ë˨àuœìÏ"­7\ [D­•¨õà‡Ü€)"Õ i€ðùÙŸ}E0¸$ìÒ¾'¥éÒÃAßg”ZcÎPƒƒÈ§Y7ÂÏ¥¸%ŸD?’謌¦P˜Ýè¥ø€:æ—8³ðÃ+TEÀý‰¥6 Ÿuz(S‚QÀÏf¬†ƒôÉ¡…xÍr7DЬ�]ù;ñäÂ_‹";:ð�ÆÂËÎÿ6xò¥‡ûÇÄÞCpþ]}xû0uß·û!Nàá~©ÔäÐ8[ˆSOÚIúK:©Ã/€E$$DÑsXB5ýÅøQ욨˜ÂxéÖ¨ˆ5€š¿#‚. Ä’±µpÇñ‰ßcAÀËV|”¡¬zà8¬6 àk„‚|òî,M"°Yio'ìh ›É­¸^""ŒéRzÎs¬dÄ—,^ó‰«9«SJçàcCO Ó²É"[6щ�þràOE4! ¡,‚=|êø§Y�{Ðwd$ABA¦à†Õ 扛g4<äZCHÎ×AìfãO5äÓ2Ö¨L|�¾YСÅ÷ôd�od *`§G+Šë÷¤ õÀšÑ d�?È«·|:¿Ñ‘B%Ò ×éÍl“çÉVÀÕ¢²*ôtÃïLUÔi�è) žuÌ� ¤(%³¯rß-à¢n ÊcÇû˜Q®_P†Á�ÑÙIiÅ̧oý·¬5&™¼©Wn_›e÷qn´g1`~1ëYšù^næë—€¹sËsA¡2 m�d rÃ85GEJëg…õ|RÝÜèÝÉ6¿R‡W9H^GZ áp\£Ç ­KÙ7¦±ŠÀ­hˆ€6À™Îm’g®Š]2«áØFìð¢£äØ�>"ø6!�!�˜ü¢"Ý'Ì‹¾ÓM$ºÂ,û[CÁÐO#›°˜AAvâ»Î|ùˆJ…4]'x¤î$€$ÌæÎ4Âp[ÐÍ�yô ®l”f!h›�Áb÷vÝMK¡$ÔÓ@�™cïブ’…Ãêˆð:÷VWÔVéms¯&Œ#Áڤɵ4l—nG€’¢±‡�êyGÞÅ5RϽŠD#Á2Ê/jx«¸w’+®Ü‡÷3‰Î´4ø®‹¼±­…M´“z}7+¯YÀ†f…Ø>à sà)(Z@ù½­jÏ¢l‡6(Wþh‚ÉÙ¬ïC<9&ø€&tK2‡W8DfïFy&•~BÉS¦Ü¯TSº<‰ ÷~–‚™V<®·š7 ƒ•RF!Ä‚"VV™DÉCä\uû_¬C-�P yüÎHЖöܽŠò÷Ñ1«Ñ¤¤Š´o }‰çL�‘ƒÔì¡ ­sÍ:,&iq ñðÝ0§æxOáÄ÷áqŒH Hz#áOP•Þ©�¢”øô€†{ (�Iƒ�i Iƒµ¯ó&„Åa�~"I†¦™ÔÒ*ÝT裤ï³túRˆùÅM€ÅDÕV&Ÿ Ö ˜ŠÄ¬ZÿP³€ó¡<'e,Q�ðóƯ–ËR�Ä6• –p¿*r\މΖ‘‘¸ÁJ×Ì0áïGäw0ÐWøî8þ*. ®sž’»6�¨©×ãÌ¢õ•]ÂiGÆB�å¼�M NHÞMò–çÑž¢…½9Šø­YRªär ß|Ǽ¨¨¾²¦Tt‘7–�×Ñki@�5€`܉,vT³æ¤!�”xÇ ”§m!7Œ–Âd>$q…sÒa CPeʷه佦±ID‰SsÀí%¼@—:¢jŒZ'9 €Äjy)u}0« í­n­ÂÅù›<|C#7rÓ EßlXö9Á•£gn>¬YÉ�+i©´Å!Á þm#ÏZ‰˜§r©½Ko‰É,!x9-ë*º(…ÇGüô&5â¾`Èq „þ˜Þ|ÊAÔ‚êÓQu]Ý<'Ù!�bÀÚ/}šzØ^×)û`E)ƒÐ¦s]„­jè˜O‚ŠŠŽ¹Þ)½Ð¦fa§¡„ *øž”ÛÅÀQ�z†=£•�nh­oKIÙL?!ÙyI¸!˜(Þ�®y6ž}ÃSltK µ ï,%¥dI]3ñM:7GB#¯ùDºyŠPagŽžÖ°u ߨ>{~6Ü�¢)ËBJ:[K%ebzy�% ¥e‡³Tý,Çx(ŸCIÍqÂ.n´¿öÖµµ¾H^€dË«àå/X�þ-(Š¥ï0Æ8{勨 ع•á�ì3¦ÓÍÓ7@û^9R+é b‘¨æWÞC¨l W&”gúGØ�rÅ:.ÙZª~UêÒ}ÊõBZþ;€ý¸œïv»<°¼‡”ÏŠw„sõªXÆ®…ž�U"Jh›Ž`Ld÷Å= Ø8{—™^ò” ]ð^m{c™÷Öfñ1šbrCŠ}à eŒzuª2³¬ÔNG+ ¦€eðŒ9 ®íÅC‡½Ú.Þ˜%' aõEÌ]®â ‰UÄ�µ¸ãŠ óïŠât<¥Vf2ΰ·ˆ'ý‘fìŽ�‚[¦�ø‹¬BX´“$˜›Óƒ3Þ­²&¬t­Ü)ˆÎD(ÑÕuî[ˆ¸(‚FŒáFž6³}Ç@“¤‚€Ôa–•˜™ÒœÏyú!HÄÒå<-¶O­N¢°ÝT€MDë,æ>Ú!m¾áÀG$�zÓ‘ Iý¶0êPÈ‘w>Y"Ú¾ÆÕÑ0[ÞÓ#ý`×Â,GՈة"øçŒ¡Ï›Í©Kø`.‘WÌìyjÅAtf0ºà¶„¼Önò&QHÅÕ™êñ_eÛkD×ÁAÔØ7)…D�/y`‰‚âV’üâx�Zôaì¢,´}‚{q-éJ›>»r­é‰´AÀ»sb a^ÕJMA^¶u€¢u°øE°¸º9»T,­Âøí")«(„Ô0®(Êóªw¯€;òõtæ;;1ÐGP^’ þ€¨"ÁqN¿¢¸’åËŸêÈjÚ$êØì=¦ ›\#¦ÜO%H£¤ëÜ+ fzo.kL[º…|�›ÄðÔ£n”xÏŠ»˜¥¦ùxbÎPm)mGð³5Ù 8¬�†6+6ýŒÂñlGkÉz«Ò}9›2î&É/}éÓ‰Ya"X9˜a™ä±¹NÄݰ‹«XCœå Ã1Öb¾æ—=»U™rÖ‚| ÓK�Õ´náåWvðx-èù¥ZЉhÇx<ËŠñ_ kûÓ¥š•ËfîrÙH¢zE·M �wAÀ¬�oG´…ªÿJÚŒú?5ƒÊƇWØ�e�ÉœFº$Ì÷-ÊNè*dJmG]Žê½oäY2 %§\^Fë@]Å}SÂïL…Ä�"žÔ@×,®fÍ»ŸzÖÝ¡‹Ò�Õ XhÝ;Ðćb¶ÝS 䫺@\{Áaƒ—ØLZÈ`ÝÏ*—pœ«&Reßj(V7óŒŠO/ -Kí+V«Ë2™'„ú*z§o|k�9®©zÇiîóÏùêÛ·�>ôÈÝÝr4.‹ãn×Ü×f«¤O± �ÖXʶÚjY9¶Òïr ÑzËÓrÚ;Óʽ4�;¾L¢Â(�g6•œ±Sßžµ¹až\Jb'4×:´nÈÊ›I'W~Û]µ§„;�B^E° "˜+qëÒQ˜œ.¢d‘#ùÓÇNçˆ*+�FÖÅ·‡ ûÞ(uå55°¿ç—}.qÆ_âà6�;¾7$,öo ÿ)*üAïð=ô( øÃÅdEϨ@¯‰þ3ŠFÞÜ—±…tEñ�áñÃÿê’Õzäé¥×ál4ñ­ @ˆ¨`‘ DGCëüùšÖA¡Gã/e JUq”3žŠ—ƒ‰êP‘)i¹TÛàü˜öÙ­7g³Ó’5%,=ûᎷ;%0*F€#¿^³¤¢y!™ýœI’0Ô‰�g9ù¬Ø;0$‘u§àÕµ8ÇØ¼ú¾#ƒ¶ëø w}Ów‘�Ó^\¿•¿˜5hþƒ+eÿä|¿‰ßðq°,Ë/†­ MÕs€�·‡<·�UìºÉo³ñ ‡^sdÆš‘m;éÂÀàŸO�ƒHÔ,b|öj^ß´ÏøÙ³oM5²™4ÃIw½Yp1øÕª'Z€1vxæƒxÙgÑ^@ùvF41¼½�6…^„»f…) XšÞ�ÿþ)SC-$U©�Nø·,ZŽÉ®!`ny× >ÙöèS·Èû©ƒïU|‰|%ÄýìÔÉaÅ?fúÙÍoôô;ތ㡩gíÔŒ#ýÛÙu ßãù¼ã! ×B±Hr/¯ë,¼O¼¨Â#†®L9¡Ë‡é;\áNvZ÷—9„ëíÛêž�5ϼÈî,í�D<Ù2o#núìÁ� Ç× ŠEžϯ='së³ëj =<®oìñ«Ðó<¾lh x �´3'>˜1„#ó…>Ü]˜FŠyž}è"ú¾ØE?½Ï«ûÊ?þ(üs"JˆDL!pylh¢O?Kùâçe>…Àá}_÷Áñ‡üf�g‡_Id`õ®ö ‰_p+ýj`fߊë+Dy´HÃâñÍ1_(OFSÂÝÝŒ¥hìû!9f4/L�$ÊΜÇãÞ‚åž9ã3ñ•ýnî¡€>X¾&¾ˆ{óÑã~‹˜ÍU€4Bêø9N+Ç¿íÉì¼Ø­%ìn?Z :7_áõÔøWl&OE>b…!jW ÞB¼¨ü{Êi˜”‹ÉØ ´XˆÜuçwý—!Ý`KÛÃ1'þ.cbhßJâ·ÿUA(û='ŒìïqŸUi¼ñÉN¢ÔåB¢hÒjlw£Á_]j^[´½µ„®OÈ Ü?/°Ì±}ôàÏo AÓë­êêñÆë˜¼‚öyÄ4ö‡Éns6ÛC-mth­ðwxcÞ›a%w„b…Zèr¤å[ÇÕc•aì×—jsóÍ1oÛ‡oßéYp¨ÿ`…Àbà}_¦�n³u2®p½G;Ì4¹î¥gY;r}kââ©óºwe°ºÓæoLcà�«Î¨"vxß©wXc9 �6ó>û¶ÂwÎÅKÞBZãµnI�ÜbMÀo-i¢ ã%¸?2ìé0/˜‘®%0ã¹>#W„ÌEŽÚ1„Çü ÑäiPkzµ+º’ Uͤ”uÔûS�yíÆx4—jÄ%¿8c+2·$žƒ–ŒÌÛ˜ÖB#zý~ÛóíKs°ˆ‚†{„„J¹æz Úe#M¶²è«£qº‘¦%²õ“–fÐ×¶†Ij)·òÞq}ƒf† k†Ó|µ8Ìey$ôüIŽ&® Ô]O�]ÒÇw xBŸ€îýý.Û�KLŽÍj ¼ëã'+d·úLKþäîOé*ðӯ÷+·J·‚öý…×?óõuÆË˜¨M¶BƒÊZ"ÙÅÍ#$yÓ¤�zO¹%Òsø!3;ÙŽ_­nÅžDí˜Z…iôÆËˆ½ïµjê‹Ûî[š�×ëéÒw×f˜ ÚsSßqñòÛÎ+;‰:\<}þøÃ¶N>°Þ °Ðæ| Mj�µ†�¥ÛÕf?1ç¬v{©â5}�F²ÅÔiŒGUœµù…�!×0]ö³r`åëo;ÅLì¾SÀ7 ˜á¢á„¹\6˾Clå?Z”|*'NEÉ£)×§Ø?q²¢�Ó'o1ìæCˆ¬ÿ…TQݧü¨b=ÂÖ¶{Oé4ÛjH‹ilåaMÈRtëy$-8úE¾øÁ¾œwd)¾^–=;{N;sÙÞ¤P?dõK6mËôk$í×7^­>(ÓÆÐCôÛb¾ ¸“j9Ú·Šç³T¤ï~¨äßs£ÌÕVâ3L~ûR“Y I©ì³ªC@Ù‡‹ã'.|þœÚ-Un¬ƒ¶ÌJN>Ü—Hœâw,‡5Óód«�4×MÕ �rÏ¢Õm¢2ánèöá ³«^6¬Üý¡©îã q^�ûÆJ(pî/?uù ø¯é´kF¿Œz@€Iœ“N“5´65³´1ý¯|ZjÊœõ ÊØõ³ÿ¸ax¤Ëà(�¼Ü6ý(Õôc¬w�$±$îuŸ¾^skÅ�!ÞfšýîgæëcAÕÄ¡c«”ûòö°"Ž/Ï Z“Ks› k‘S3"èåÓgÚ†K‹L†ZZ hßjæi^öŸÍkŠ)Ï‹µB”Ú“æbló´®7ê¸ñ‡4Ç+%÷’yÑ*›^T¤™‡‘€¦íÛÔÃQÊ=+CÝüòri¬8ª.g —AW±>®lÍöü_W˜¶MŠM§Þ!w =M•©þ!‡RÿöwÞœi‡\MÚ–EÑóóÆáÕXmp+À±`8Ù§�‹>¾=ú%‘M&ã!B¨¥¿®�í$”’§må:}ü3{|é ”Gã¼:ž-�mÜý Šë�2½åËë�Ñ<`íôÑKV.¹ Ò~¥_ø ½+{þ(8bq9ËšëS‰2<ׯH¸,J7�áËyËŽÐ d»ûah»ó£ØXÂOIŸŒáXÎCÿÜ]î¬ãà1\ þð{¹:´'„ 8ß|w¯–õðßs@¼Î€ð32NW|‚_"c÷±HÅtqÿ�r,,îÒ¦üèßgPä•Tþ{UWI0n‹¦|ÿ- ßrIùµÕºY`‰Ž-ºU]´”–¨‘$BEç·7%¶{E(|(£@‡Q‡‘y !Øäq®¦,`f“1 V˜(ž6}>ˆ Z•® zw,Q~kö�çèHȆDÍ}1.0¿ ûlÿH_DôƒCÒ¢’�Ÿ�g xe³£ÉÛ“ŠcOË}gÿ–²c^©^Á}ï£!è7¼NÁ\åsâ›\ÁWhüLWå�6¸2 wÂÛåmì_$­iƒü’Ú¡A€¡T'¯Õ#ÃÒu»õ‘CmFÍ}žÀã -½…8»¸(i©\•ù�ú%¥&¤¥¢mn†³ôw¶R7¸DPÝyù„î�¥;^¡6Š2»þŒybúæ Òf§•ö¬Ã)í;Wé×6YËUg!4íTž_Ÿ/ŸEZs EÏÚ<,J¬«KãV4éViø`¿òÁJ©¬U¸�èmT}YYëp†YÉJ«d%1éR?f­ÌéÌ!7eðÝ@ÊTW—•ú™B 9Þë×h6Ô%cd…—ºõSü�gnÿÛû?UtXÿfž•DEdEÿW¢\KÛ»Õ=ÿWCcxC#оƒM›¢µÑz¹HzÃV…‚UXRyN”;»¡�ï¹íu{ü †„ÜG›~î„[Ý©fê‰"z‰„�ªAªJ¾ÈÛ•�GU1±Æ5uZ¹ ò˃ŴQ‚è­|ØÀ7@¤Cñ쑺¼øPäM©”°ÌE‹ƒI”3@×ié<›•3“3«¥&°Á€M\5I-HØõ¤rhÐ)êÃɸ­Ç:Àº@øã™fÒÃq¶­™ï•ET;…˜)³QXå¨Ð\,Š€ù;�;E©…4±ºèž2lv7ˆ�sò(÷=HØüWÅÃCÀ¢Pû5“\• Åo®ãÅÉ绎ƒÙæ^Ñëë+>Oc¼ÀšºÎ™>}͸’º€$1.�øè®¢"Í‹D°.=ááÀÌ0ú�bc†[Ôùã˃´ qäQ®›põ�¶ŒÄ…UâÁ´ÄÛ-Ë*ÎÓ1 âØúÇ 7ÈÇ@¡ò«¹´\5˜��œSОÓ/ÇCÄ�ÔÕÌ÷)îÕ£6�VÂäèõ‡á�±UëGÞ·ØïDxE"߯Øc4Á@$“i*$ÜÄ?¥\`)&´5 ‚¯PºçBÄÞm-¢os¦IÖÅì3ÒxÍ@… ÷OPž®™ñÆažñ“ß,k{D5MœÌãAù &üY1Ù nÛîŒY;? kkË–V6Î×RwÐ�=*uÒ) ‚„¹ê¹ü–=AÅ¿H&qùp9ÑwØ!6¥ø†DÍØÊ#šÇÓ,hãñÈÉ›f ñe+pÛrµt$ 2kÑ�Ç1Åæå!ñU .M*¶�_æA9¨³€„-tŽçúá�‰k=Æå 8êÅúÜÇq¤è •Ö£ˆ™M•˜ %9;¾]`1×´“¡5 bW¤ø“Â`Hî5ZËTS0s'&p]hlÕ$C$gK†N öÁù¨.î°˜¶Âë5ˆÛÒÿp‘[4ÑÍH kx® †Yf[°WŒÚÙš2%=g>¡%öæTî!CS*ÈVqÉA±vcÏAèw|¨ÃVAÑhÜÌ—ØJ—‹„½£Ë"–kØkN«ÃqD²ÞwÒ!×;÷¥¡)í"@¬Ló©hV%˜Ê´€ (Nzvèþn†ïÙ%uÿ`=Æ~A …sù_½Ž«_±¦€æwi¿™@@rD Ð �&†Ï-ñî§;nN9º~ôgÿi‡f Š>³Ô²Y—gï‡BÅE>Ϋêkº¹á_ž{ez‹þàæ<ä‚�Óp¶ëóö”±<ÎÂv˜‚8´Žæw¿ã‰ž<¸y­ýuÊ­v4Y÷¸ {ÊÖGñ79k2ú8àÂÐ!ò]_m½‡ºTAu“€]ÚÄYÀâÕŠ–+][{0±Fú"ÒÖvòfxa5+‚Ìgo¹Ä¸Änx©88óÁÊ#Æ¡?ñQ@ða¥ý›\̲I×3-¬I@"p‡u®(¡cõ#Ù Ùðº&â§¹�æz\6ílúÔÉÊ)%—9 7Äbô_#œÇ~<™|z{1eËãí&ñëe€«L5×ËÅvos6÷}Ì#þJ]…‚- ªëpHöÔž@;M=.9˜ÄrRiûU¯ÎKÇÏÔ9J9Jñ@RŽ»Á,åèÄ‚‰¹F©’'Y@])�!Rº�@,2îÉN�¹s¥l�NíÙ¦ Ÿ©G!÷³¸Ø†N& úáÇšÙ[±Ì®Nž�ëž7Ã�°ó)Cƒón[¥ý•†²«ÜËÊöCASœ$¬ëªôTÆIÎÁï‚Ð:÷ˆ·lX4øjÛ—(î@zz)Ã?`U×I­a¤›ÖÊÊÚú¾µuý>¾t@t˜ü¾û ‰b5ÃŶ|PãAL[KÑEg{êËž4ŠËÊèåæÒ÷ówê©gO1`Ý_òz8xý�~=ÍûvŸW�Aô|“û·ÐËîr îoµAfõú8¼ŸR v}¢G6¢£ËRdi»;<^(¡ìÝ)Á@»ZTÑïVôù ¤Œá]¬BLw°»6‰ÙþØ‚ÝùÝ­TAoƒòù¼`ÝÓÿík¨Y—–p(%㵉@n7ä¾c4ÕLùãK":ÜG_h êjX·SÖñ¬˜2ÁøÑþ ¹ äEç#‚r1¥b·Iˆc’âßz:«ÂC5$û;müFM’ì°”f öEj÷˜M(ìMRÂ5 Ž6S4¨Ã(�LÆ®Œ™ªŠ$‰ŠPÊ–K¦@\¨Œ}¼•Kq§æªÒŒ_]7ä,Q‚žïÔ¼-ué™I·v½Å d,O�³½Ôv&�©Á>݉xçËA9̵i‘yÑÃí(¶ñøÁvÁ Ò{ûjñ�’ B€^F(K~5xÌ�NFxû ²”gmxF5ÑÔ>»‚ƒ@_…e ¼Oi¿m& Ž}ªªdën.壣ˆëÄ"ü–®ÍÇqþž„ï$ê,s+ô�šôG‰ÈðQ= õD0ø-YS‘àEÀºd¾yÿµËÜ.K3´n %°Ú‚˜ ´£i…KŸ¸ƒŠ'LHú»>R¥øB>Ï<)‘$Î5àrd¦³kGj(¯û7öAøÀÒ]NŸg_t®{L®eÒѸA²89Ì*æ_�C€Rkp6Þ1 ×jÉ Ø2Íúãcâ®yˆÓŠx‰ñàí�‰ÖÒ}½TÑ˲ô*£!P}†k¢ŒzqGSè3œ@ ÝìõJÛv4óBé8,ðô¢@OŠË‘A‘•_ W�ÎÐø |ŽÜKã¨þ#ŽƒH±,Œø÷ hs$®PÛ‡UéH 1IÆ�úì€ÚTn2é?Ôv¡?ð½a«·…¨› ±NOBŒÂb>�ì,|·c“˜rU<_¼oî�Kίð;dìÈ�iù_¿ Ðʹž*Ѻ5À Œ8ŽNlJHÿ –´w�ž¼ ÅT:cY~$¤!…›Kº–G+â“¿^¾<Í\,ÍhèÆšåw(Æw±pÍϙ̈Š3;§¾ гV_Ój'pñ¨#v4—�9GæB›w@=¥Á¦¢¥aºQ¿¥Žîê8ãjá˜ÁscÌÓ85ÜF²j\&AW×oWú Ï倊âÊ5åôˆ4Ñ‚écs+ÁžõÎô7z&bk&Zƒg>%éùáïéû­âíèV|>”-üåý:��B�OàÊhNÐÃXRs>BŸ]î03‘?è·Í<Y #>‡†­¹ÅÛk�e •½†¹`HC‚ÓF­½Ÿ,Þ,ƒX½Ï&_wRYÚQƒÝß­]Ö(ã†ÕUMв(µ†Ýôpæ�º**ͧƒú敨À€¾“©5›Š!�'ÑóìuºÕYwRÅ€:Á̓¢ˆwLÄõ„¥|ò 3Q”as>¢ïýÂ|éÇÔ4‚ �¥wp:çˆÃ@åòD|{� «uÅSÎÜPFæÍĉž 0“¦²½Õ̲žN.uÈ#¶[ä@Aê £ · " «œ»¶ãʾׅ?ûó¹%”é6æc�¼­5Ä-ëŸ÷î š™|ûÙ# ôô(êLJ¢·¾wú×{6jfZŠ=Ѝ֑Þ:?Fìw?7®‰ tmi%ci,@½7(%³u}ÜàÏÉL*•åå‹WöN\Å©îÞÁÊ܌Ǫ¬�­�ƒpÀ³BI'¨ºí$Qúiö8…3xƒŠKKÐ P>—í0zY3Õå<”vtÔ T‰­Ö­Æ)Y¾Ñ­_¼¼øßËJ¦�ÌÅ¿¹½ìqný‚Uªt7¡‘Èa±””Sw'­AIQ��ÂÔo€7³°z PEà@éÐDŸÈÚuª2G“íéwçõ3óÚ!‰O�[ªˆ¼ðh¼ºü+ONì“HÎíŽ�†k ãW¯$ûõ—ÔŽr;SA³ØÙëë&Ì)Á£a 4P˜�Y€F¯/dhjÈ~jÈèºìn$¼\ÖÄtlžZ8N!>Hô ¸a'¿úcµßkë"Çb8Õ�ö�!ö%$ع9ˆ½óu Øë�)Éq’ñvÔ_µº‡â¥-|z±/²Õ[N»^au“Ø{¨¸tˆ;RkNlåV.d¶ÿàµìf© £S‰Óu‡S;­ÒßÓéž2ù� íVÝ(ã½ù�³f•WE~µ=ä|0½W‹½¿�ŸFý´c £tåô‹¿MA¢8ë/‡gMœèë@o¼Œ¿¬î w%Ú²ÿEü£OЇ§@´¹ª`ÌȶXЙ§„ ÁÅDjzäs¦$3ŠèvžW0¾…Ÿ»3݆·;|Ÿ[Ë �!ˆ4BmD*Óº•\�E|Å~䉆g„[ôWû"KSWZ¡hIÜ£mdN�DûæØ\JÇ�gÞ/[ðÒö/‘?wª_ëÎÄÆ*f0¤™nè…8Nñ«.9N/:Ï?Ï$?O?�ϳ ¿÷]Ÿ#/ÚË‚“ûH‰ì>²O­a¿ª7­µ#9œc½€Tô ÀY�RGVô¨ÉãÈ,G�¤ýÀU«n ´“‡ÈQï´ß§ÅrúJ)Ôã# úú«w£Iì�„Ñ«R�t·§Þ†ËvüJeÕ)^ ²ùxÕB�v®lp6]¼`¼,@ »€øç€Ëò…›ð2ÎÄS†IG¡#Yó5©\H¡ªâ½�¯!ÁL›;û8×c²b·îY%ó"› >uçAi%`Ut6þÆÊ1û®s,ž¸€•{†c¢d‹ò}Lj=®Éà ›Š‡¦³°ÜFà�qËòšu>0”’)¹Ëk¹lÚî4ÿ¶1Ž·P ÌÞ‰�naÐ]÷YøÓNn´“zß‘,çžèâ'ÿéŽ>¤CÏp \ûÚ¾&Lƒ÷´óÒÄ̱›S¹:Sa¾%r\Ç2ï¡™V±(}´†Õh ¥åGŠÊºy±bN£ƒð߆ï],`Ð^{–*ùŸj@ö“VäÜ&xÜß÷¹ÄLAX}2�±,dð`8ðòãx/ìé¨å,ñ9‚­ïó«²×Ògš)>ïÕ»oúaö¬†Æ¡N/ŒÌv¿÷<×ʧð´Gå`�—“—ûŸ™ýÃCŸöÊÆç4¿»¾ kÜêW!YC@aþûð•’¼ ˆ¬ ÂÅ5J4lí·Ù�~¶ÞáEà(’×…wÈ(öåg½–h°Ö6× )à@Õ½4¥ ©¤vmü¿y™…¥RÔàœÜÃSߘ²=Oo ˜ÔÿtNBkgŒè}+›Nx«­Íåñú¿¨ªYÜ­(™ñœ¿õmi×™ Áç°wXåTb§a´x#—P"•¹8稜ZõT6„¢ KÔd=U§¯hߨ–âÉ»³-Õ¸¢JÎ⺠7Vø¬í[Öi›V‰ë®g7;Ÿ¬ªu¯S·)×þ�-Iµ¥W z½±1ìfÊ«¶G·]51âð+Øq?³êÐü©šuµþã½Ó]ŒXÍ¡¼OµÕ×™Nç¥Ý~m¨qr³w¯†ZÚiÿjPðXã妾gÓµ3Ëò›¢èð羨B&¶o“Ê=œ»‡vzêvæõ²ÿn�HÏ�Öžv¦÷ãûëo–?bæUH�¡ð†JFå—@X1¥(?è‘D&º(…ÉÇ&DÉÌÈŽ0ŠÑ{�ûjShÐaÖF÷ÓÌ�ÉûÈÄxKmøàn:y,[ÙÁ¿SOS¯šaø±û6ü;eÕäצ§·[cï÷Ç5T½jëÄìÛÑíçÃÉ—«}»šîÎŽ�ü(kå¬ìûåehæ±Ì°õ„`Š#³Ä¦aã4™ìqÎíïH†4•<!qpø3:=ûc†ž kAÿsú_ಜè…ßœ8•2Ž«áßdŽ\Z=ùS@2Š<øüVßí< öä^feyí/QHš-±nºÐbÜwsëò‚qöž{R: Tå5ò4´äíÊá.ÿ£ð| £AÙðhlÿÌj”Ë�ôMp·[·„AEÐÊòERòs졤?§%PQ]‡‡ìÙ°QûAù¸Þ稉/áNæ RµÓª¿v–^íûâu{~"™�^‡@¥öÄÌŸëW‡**ðËSûLINÍGŠ[Ò8BjäËŽÒJ:ÌܙϢNÙŠØäëŸÕõfÕ Éœ�91–°Qt«Ï�ˆÚFÂøÉ r©�&BÉ..n`Bi¶¦@Y.Å´ãÊãäŒìÌÞ,ÓûX^„Tе�Üc!iñͱ©µ0¬n£} … ;ïféר÷^kI°Ü¦!� zQ}ã�ürî�/ž§É~çCne%V_Üo[iõ§�ªJ0ío|}@=ƒ}ÿÊÆÞåñÂÿ+Y©ô&܇ þ7dÅØÞÖÖÐî?�Ñ;8üiYÁ¶–ßñ.ù oÒ¤FX¼·è’•PŠ–&±±·§Šã%C‹Ëù œÙµõë7—�¹ÅÜ (P…­:‚7—ýjÍ3V§#fwŨ߇ÌCèp~ÆÚÊ»f®À~Ðì†=ƒ¦1àa4z‹@þ„ÊNã‚»6XоԦßëŠ ÌÆ¸ƒpHpCöŒ¬ˆ#¿Y§G¨b}¼[o†BR0’MÐm$›7 nдîÒQ/í" D.p –ly®kT® fÓ¬•å0i„6(wžÉwíe3ýÅ1‰^ƒàO¨„*çcV ¼D½:íVÄá.³ddt€šÄg³–%À‘ùÆf%ƒp”®,ÁŽ?w@ü¤iáå� û$¼fä7Ü/"¹(ÁbÄCJ¢Õ$ïòLŠ[�O`A× Ç€žN²Ò‘h”H€�$³ùƒYÃ’pNéa–Mo7‹"<[[;wùÈ*”?~QsåÉ`’ 2-Ù¸tð4°¿4ñà5¦¿ï|w]íÎó¶8pñ@Ñ_vipëqØ�Ý-ËŸK„ 4º°»qK®³¼ÅÉÁƒá#hfðkàнv7ô3�ù,q¼ó$¼üuñ¾q!é_¹í‚P àÞŽ[ËŒRÞL(  ¯°„ˆt±ÁÀd�aµmdÈ–n1�|ñ݉b C_ÇÑÇ‘óES+ä¼ ¸È�í€Ýi!䨰Ú�PÕ Þ»bÓåÎ`@AV–kYô ¸¾mÃj@a”é¹ la[]WWWcߺ ”ýêM¯ßíóPu¥­gÄ\Nùagu˜aÌ NÿÑ•æ›sŒÿâ6ËH«Ù,þ=õ<Ô“F_ˆqÑØ�•aÈ÷õ·Ð{‚žŽž»"-òý�#{ê¨gŽcÚÇ%åën ½kÀ#FÎ%"yë¦ÇÞÑâÖ8[�îŠ=Л^¿Ùàa†±êH7xOôÖ_³'´Í¿ÏçÁ—ÏBm_œQe.¸$@GJ|4<ó¢&ŽË_¬íu±�ؾ+–5ÓÁí¬þA@ŒÈE�¼1™�´²¹ŒežˆòtTò|JÓü,ð°(=`µGd+¡{h¢�¨­±Љ*_ÙÎ)º#~9xÂq:@˜¾¾–Ö%>ýJΤUcˆâ4؉àA÷ù�±¬ø6]� À°Œ¥vpˆ@¾÷L[™S@®HŸ8Âã‹Îd*9E(Âܨ7êpñ-Ýð>Ãëv=–õ‰´×u‡<Ñ3u"Øz§ð­£ÖVá3^?YýŒ¥%gïL�¨2XS̸7JA·ŸÍ_À§;¼.;Úbˆ.OQ�'Z*ßî2e¬ì5ø#yY�A2aÅÄ@Zaˆ«ø6Ü‹ì2Tª\1Ä«<‹[Ä2ìND[Ç™˜Ã{Kólºƒ¬� ñÉÜ¡žmûe8ª$>Ñ4—é»E·ÑÂVO…³.Þ-r €á*A� JPÓ:‚¤²©ÞÃØ Ž1ž±À;kŽi-ðþËK\n—üu8cð}¤òȄǤ€�¿:ÛŸ®›ÝY]Q2‰Û2¬ãTú E±¨fž<þä˜ø6JaìðÔb,ß'¦$†ÍY6‰‘€x û–p½áâÃÄ5ªN 2m4B ›ÇÁÕ3𝠑- S`8 y<3’�ù-LŸ�­ÁÂX#ñ�)Ï)ÁU žzÝ`:œF�ä>;¾jÉ‚ØI;ž­Ì ƒ´SO6ñ@ýþãôJËëòÙÅ{'«” Z8Jªå Š›_¢V K(ý>ªK³È3ý·'Nƒ ~Êç¼KBÁ"Η4ºÑ©š(�)ŠLr_¹` +#ý\¸Qåm ¶V”èàuIbÓZ—%åL_૦¦$�½ª*'›d˜!P+Ù׸EgxºMy!…,þ/Xw8­†VšKW6‹5OEt �6³TÝ*�¢úC¹]µ-¦ìUR¬0jƒÌßËÎ? E4´îÃÕÖrFã…ÃÑ.(š¥*W$§ŒŒ¤ÍQù4œÊ‘Œˆ’Âùg‘|æýh Î~ëDÑÅÕ;�Z!ëï‚Ñ*J ›äT_öï·¯ö½í‚°ò½(ø»‡~'ñ*~P ATÖ©0æ§,Øa GМr¡W&2ùÔû»CX‚¼pÝûB+Žø…˘ӧV�¸C©"OšÖè# оžâíF2®–‹sŠîX`>`^:‹ {=i¬,Åš©Ý”c¹|þi›ýG[Uä›·-RÓLÙ”ü'öÂÐ7½nÉ »ÝVâñ”ù£„‹tÙTm˜9„F-¡ŠCfqgè&B ¦íâµJZ^¶¦?f_³¨?]>D¿³¾»µ:’Y4kQ�$ë×½×áÏA�~ù¦„2]›h@Úâ?ÀÚ±r‹«)éOÒVWÁ5�òr§õ_gïü‰Šhô 4‘"¥Á~-ÀE�ÐÐÅ�wƾp(få_””ѶڑÜ�^šfó¬ÎP‹âNUÒ”ÁÊvòyy¡?r©RÈÌ%+ltP€EOVwCç£ìGH�è߮Ľƒ[S£í±. ÒªÝê~/h5@Á~,š¶?±HñÈ7ÌšSJÕ@hÆ…fü"¯w,QųU%,)™ˆx¾ò$ÞånÍY,`è¼ü•Ï>�ñøwoÛûy+wènÙ³g�#ÂKÌßFµ³¦a¹½-vW;YmØwxw·�#z~ß"³qSÊ¿h�ð A·+>ßM® éiÎvXîN›£’(K ¡‘ê팅¯—íá»^@Þ¹Ô—!¡åÆq¢.)kñïê‡aØiR§¹<”çyÔ”h÷N “F‰ç v5 ~±xoáj.+YäN–¨ÝÛK‡úö-x=¨ üôžÜØ’Eûe–_ EÂÔy}¨_‰qÇ&×s§ ï‘cDp%H_ÉxižÊ¹7ƒÖÏøBIIÏÅgÝäì“àÔ÷�©¥ðåâÞ«Ò0m¦•ªõq¾1ˈù[‡ä�r_MÅ/Ü’ŠdÞä£RâË™£‚ÎÕbx5W…È¢ãÅQ±L+~»-8é8V(ÚGpCX“Ê>!óNA%y$zÉã†?yd,¡4†EHQ�f£m+»Ý[ºÈÅaŽh‘oç˜Z¾Ö ƒìnJz™<”‘TÞq»F}÷�IrÉïŠ_Ùœe¶¥÷D·c`¸^5ÃÞfRJ…ôÜ2tçµKŸµ§œ‹<´³qúÂS¯aô“¹?>9 äçŽZ—E—�-µÍ,œák0t{7#ñ©õíºZ,øYŒ­EÆB¯¥W£†5Šøí´ô4ÙÆ�¤�üiæ8–æã¹Q�6<>¼÷ ;:Y�1±”àÌöþÞøîªòèÑWH©Ê¢²±"WN^ªÈéxóK.œÌ7×*B[T©îÙu5œ��m…Áì'èvøé†&Ù©{pO‹h×Ì©@æŒ�ó™5rÜíÑ‚lÒßÙ1 HòȳpV[ÑÂ�òRÉtœó7b4 íwý¹È!‚¨G£§¢k±b/ÔÓg’o <ðd»—Þ!†Åzˆ…86ºŒšÀnȼ$i´j‰¦³Ö¤è3¢�<¢å̵ÁÏCÚ+'u‹fÏ®ÆaôoR2ò¨¾¦¬··{¸(ºÒÖ*Çê{�ðR™kn„j!{Ð¥.퇲Èÿ‹I…–.LY’z7x-ûñí’Ø�V-ìIÕ‰V`Ƈu�WRh¦ê AEk'È$kê2=ùénöƒ‹:Fôš¾ï3˜®k„¢˜ÒSîáŽ0¥ËáoÏ7íç™àf¾¦MâY|›Øè?ï÷9óg“©fD©3Ÿn";QΑS´‚:¯—"l ¦Œ‘ú®j©MiGÕo×|{ºIk7.)Å]Ût“õ]ˆ-èAÍÔ“‡X Kt‘ŸjˆV4¢À{¤lªÖLá9R¢‰£i ¶j'¦=)L§„Ìr}¶ƒ²KÙóCæ þµ´¹£sµÏ�y’9ŠêŒ¹«°ª¢­ª*N_pcÚIVËÇÊ™IàÕåz:Ñœt)£nœ~»l ·¸âøœÅz’&§g àe¡ù]ažF2êD­½ðWr¢3I p-m�«B¼6%YŒFê{"ôȤ÷jH×òäÀÌ "â.›olQç# :uv‹î\°,Ÿ¸ÆdbDÑ©åäq²ÇÐ�¹LËÑkC‚+xÍtÍÞ.í¢�ïY`Ö’1<ó‹X—KewèJi«’M¹5O­VÏ{'`MܺHç—B.œÆGÎ�^P/’Ä“|庉pH›JâÎÇR#ôv ™ÈtLP cC«©ûy„ÝÁG˜–·?�ÞI„4Ö3ºŒzVIaÄRØD ñ–´þósH7�Õš’f®ºI%³Ü˜×eåN6`Ó«(¡¿ÙÂKþP p'±MF牴Æy8y%;ҪזÁ‰ CM¸¿&è[þÐR}_™kq:¨ò­T6¤P_VÔjɧrœÆmâs2çxR# *Õ õëÏOEzÐ`ù8"ïÁ{©[ÂmÿÕÞ1{¡§�2ˆÇ,=R+r÷lbe$×PUߌ‹Á÷Ì‚ëm¥z¹e柼h?>ŽÝm„7 *Øñ 9ñ¥ˆ]ÁñxÅÓ½¼89¾lüÛ�óyÜÃ`·OÛn¸‡ÍªµZÍsf{ç"Ko=ZTbìêIΠ¢P¬ ñ™ m(FþÁÑÌ®ÔYlÍß:ˆûæ�raCW“%¼fÉ-VŒŒª/vFòìîh€!>ÂlÔ*ãöÅ’–d¶> ïêˆ5»”|�ÖÍ” Ûä™ô££=@Y„JEëö^¯�sÀ{™Cã�¥±çfYßâÎ×¶,)0.‘#¯˜6±‹+¸ø47-@þ¤‰á) ¥£ ÊMl ªV\Zšn„îb ]j�Bè2Å3&çNÁe6'ä÷éì-’gJ+vÑ–SF](‰2Ñ“@Š ©CaÆ\b!h˜ÅÜb„s›Ïk†ÞE” } #Ör`_¡lßôH·5ÜðöšÍäfð¬¨�uú]a`Ù-v ç_r~c¦àñU³”R–4%Lfºñ„‰X:‹žxŸÙ [{}öäÀ‚­#GhcŽm{”ôbH�Qµñ0±Cw4ÖÉùçA.`áémïNßÂäêJ×É‹sqc.$,óqrtr�œÞÛ�µ³-óuZ¬÷ ÞŽœÂÂâX†êçeÒíg)ÍðH÷ èOçÑïΓ†'VÊáçò'œu5z.BÜ@¬q²õ~¶A¡0ùëô‡W ùO÷X±Oœÿ[ 9ÒC²SV4$^:Œƒcýj¡�ŽFZ6òìóó“ÿÿú[È…ÏÎÎÆÎG’"c~hhbfeåþ#~*új)ü)¼{�‹Ü{„Ú|ä4çœx‰^SNþ71ÑÔCsÚUïíPL÷ Ztmƒ¶Úl�+¡uœ8ñ½�Œ‰n2(}Ûƒ†j&.{NȯAÌàªòV‘b�™9QU@¯ Ü“sÕ×�@JT±ùfoû­³ã@Š–k{;ÿ¥ê†¼æ0‡X�xЯ­~l!2ÊéÖr“Q:}l‘5‘¯aegêʦjûq«\|Aã¯/ïç£ ô;œê´B£Y;ýu®6> ú’ðŠÁÈv€› {7zŒžÏÙF¡vôU[½z.éŠU¨‡–c½\ ­5ºÃ$h¼{úí�ú—ð\Ïúú3ñÅke02Ñ— ÿúP�"mN'¸#v´1À�HE%ÓßéN¿™õ;ê ½a¶¯iE!fwø­u0›utšÆØ!FAËY×C¨7ò9Ö®2Ÿe«�š+Ê“S¤{¿¶ì‰T¨1ˆ|•r*O°;N3Zk¹»yI7V�¯ÕsW+ijcéôHê`%`»1q³ÇäBñý)^¥üׄ·i”U¤ÛñصËR:¹ £þg�½nˆ¢šl± ª–º]ÃvÀß�­Æ[ÃÇÊ4 ×Ü‚:!;›"I4ÐKb’ç°µ–kׂr7JÍoURü¬õ¯ðXÖ‡r‡ªz<¼Hýë ¸ÇXEÜ�nÔ,ÒnÊH%à�Á=Ú.$`R}0zúw1æSd’x4; ,í Þ~†P~¨‘ûi¯L'ó^Û¼1㜚ǮÆùH: íœî¯n¤wõm9Œvõ}Ï mOúQaø1ïºj‚:ÒÑС’©•©Õøtd �ÚŠhy0;ÿ:øÄ>Íòädýcþ*­ÒoîÖª=îæÚÍÁ+­X-¾þh¡�›l}Uƒò„,"k‰"6Þièéø€$Ž6Ÿãú³/J:í¥Ûød‡_iÌ™Š>ýŠ›{À|ÎPÄi×86¾Á@¹© 墋 ‡;cëaÀj*iùy)EZË&ÖsO~¨wXdщ\ôY•à:ø;(1²˜’%åÞ©ËÚC Ÿv©áœZ;Ôyý[ ê¢.f=¥˜B›cìZÜ%WXû:ûÄZˆxt±˜.57Ý‹�¶£!ÔÀh¼šGZUï@ùFã"î˜{Ñ0nwç\�:GŒç®‘�E×1yäߣæf÷ò_¹÷VÔv?�†Lȉ“ÛY”0úÞÍž¾6_À�UP�]-;ž¹3wÏWå"H`4¼ ýÚ;–šÒQ«>�°Ø…¸0BqgÌ ‘•äU®Õæø/¾%®×Ä@V^ÿ¨Ð»”Íš’3³ ÒðµªY„äZT’C GÛ{]Ä}ðIððß)EùÚ‚ŒIz¢à=Ç*M[ÑKßs7Æ8î¾'Zêùüh’ZQ47L0‚£?^ ÖC*Ë/c¦ŸóWoÇ“Í1f‚ƒßŸXÙ79ÂÒºÑñªGÑLc7†Zd�{?›2à§ ñßÇš;¡»\’ðð;ïÐíØsY˜_DÕåðHi!îZŽ=?ÿ£n7Ù² €âß'¸��Œÿ%V«jhÈñŸ6Ðc3YMDš0ôJÏÞÒ»PÓ"Ñ"š@GUU÷˜LîÈ.‚x,P´¬gÏϘ¥ùfW—ùÁc7+ƒÝxÉØ�ÆI„è ŸÕXJXÌìdŠ‘R<Øp1¯pÉ qÜt´ÙƒÄsûÈy9Ê ¡)›‡œ»í�ÍšÖÆž©â;p‡‡‡ƒ‡ë¾²ð]­Yÿݤ'‚M":öh[ÛSûªå‰Â3td}Bó‡+å:xÿ j5Ë$~K+Ú0âÀ‚¿lÑQÖ J¯Èyÿ9p1äG‹Æ „0£8±ÖÈù»ÿgš§$ºQÛ¶‚’`"í©f,—ýÑ×C¹nK�èd�(Øì9dÙ:ª÷3–Akk.ìÓöþýë­}ËqL®Žè¯‰T²6Èæågf4]»ÎfÏ`�äò� Y– ¨ôeK*ŠáŠÁ ív[ÔáÆ;«áKìëŸÅŽ;_‡Ë–¾KÖuĦ] 2‡Š;Nѳsˆç÷ƒ`à#c\CÎr¦Gd6_cï@þ´{óìýô?´Ï 1P› S˜p¸>‚C·»Y3øÞ‡È:E ‚¾{b�{Ñà‡ ¼%Mwu.&ö•–µ¢XR¯ÏÁVm«z/k“öä˜='æ™9X#rr’uJµì+›±ÖÚÃðŠËæÂ}”ÀèA}´ûjÆà ÏüœwÆbcsëˆX£ŒÃ¿ðõ¢-+?ð­2'´¿¨Õh(¯¹ûcÌú¼$¬ª�½H^‡YC½Ÿ½µlJzˆ¾rµQcó=-¤í×Nëãfêì‹\†1cr égQ\sCÍö/¬Ø¥œ“É¢Ý⮺-´qplª¼ ß”F¨e;,]›�¾€ÿW–í×]A6`0ÿ7¸ò¿˜u‹º¡ý·]ÿïAPhjgãaµ.1(N‘%l±¤7D¬Edc„B¡˜¢[OÁ÷M1©¶Ü¶n«�ÉãíNW×XÑâà4’¢ øW³­ÀÈs~i" f8\pÕȇ@�”³Ù0NlÍX’5b4Bš Môf ‘U.sÁ)/~i¶°‘Ì�w]x¹!ÑŸmz• a<êž}¿QØ}d‘mBè(½Ð'ÈYÁ8•ÞU£DŒó¼çà}ˆÚö,¹ÌyO³¨afÀIyâh¡³ü~­T„¼ÓDŠ´§ÅüŒ/ RÕĈ58õ)šA ²ƒD婽]]�!î\Ç�TgJ!tÂ9(8jIjÑAâtu‰cg1žRTxeÛhv:}eQh*³¾8%A7AKð%ð7kNO/ /ؤŒš¦ß&›¦X4~EÎÓT ³N$¥ÁlaÍûöÝðÀSæÜž¾îÜ�ûC4»°ä‰{#7nçdŠíéÛ~‘LéÀõô³ Mc$¸£¡­‰s^.Xù±³£ Z2`ó£�‘­ ”Y:r†â?s£EWÎ×_+�/�>VÁ©qC\ö(Ým¼Ã@kX–)úiÝ:’˜‚Bh9ÝxŽËû!0¢8õÛÓàÂ$Simz-äÎDªBÍ.D`2˜t5,‘˜.-Ópû[Wt1Ì öBÕûbŒ{8t$ÑŒ‚ËHqpAu9TC §à…òý=<Þï)ÞP÷½¸lÚ6k̉Ä$Güù3cn÷ööŽ�z•“±¥Ùîi4òCUœ§ièš(P.‡ÈćÓáX/òÒãÅŽ6`Ëá ‡Â e®ÈfKÝ+1È}ÖÅÀ·@Nc¬°%62�UD#Ð5~R˜©™p�qL±'X5ò$—/‚úk�]ΊB.èr&n)ì…ú�[î{EDã¤MqœE„Š*PGj*6ˆ4ª‡ñK ðfåD©L¼ü‚lÑi½\C¢bõ ÿ#ú;yû©à sœ¡¸Q ŸÓ]ÂÝÀÅÈghþ"¶Nœ3±°B_G¨\L0p´HÝè%>!”1¤ªO¸–* ˜tµ¨U’Ħ’¼bv¸J olºîrÏÑ¿6ü^þÍa/Ç€y±m£R*€‹ÿXYÔ¿AcAà ½·XËìçã“¥‹ °éC€¬¿¾®, ãÖƒÝPä”Ä£*e-é’Îðå2‡ CÄøÔâô´åÒC+ÎqkÑ&jrNḱX&‹9ט6n~­Œ²°“‚ÙºØGëöÃã ßwF~9Û–‡%ê•nRÆó6‰×Žœyõþ²ڛ§ÉÌÜ›ÛÀ+¤µDºèœh •ì¤ðCÁÓxÇáHá"lS6 Õ0)gƒ‚7¬`Õëqbêõ�3„ÑáW‡ôesÑ©N£?€‘õU8%¿¯“^­Øèö8Øa5Uiªñ+,Ü!æ×îëTû5.䟵áæ^ß�<²!m”8¨)’t4^«R|øH›¬ÅC¾½Y¨÷`ªVRãéOšXÔ‹ ™{pQc'FõJÝŸ·nkqE^ý ø‰ÝÏ 4 Õ�hY| ¾Zp¹±È­$ý›Âƒâ0_n ¨Boêsòž¥dkŽslIäVé y0`‡© æÎ¿‚ˆ5dˆ8ì´h™rÙÍÖ¶Té4 ¾²Ts‰üQ÷¥¾¼{ LÜ/ŽíÏ� — ²Ã¹‡ãŒ³™µªZÖ»öäëÏ=Ÿ•°¢ÞT=²&ãTmÔâÖ(Î/{Ãþ�C–¾\TôÅzn¢Û-èZV N<_¶Cws½îÆyowd÷„·Í+t¯©è`k.÷CÙ„žëÌÞajÎ3ô«V?:cß×÷?ÞÏ^c‡Ôcü´ë Hÿ-h›ºØ;9[›ºü -ÌQ³ýÿÁ#ø=H \æˆBnÃV£Å³‹áŒ0ç:XNÔ Ù¢ä‹ÐK¤¦£,wC[* „xgŒ±hñ¨ƒ�„8„Õ�P£MnZ’µ˜(Á›Óµá/ÎŽv€øœ&X§ ”x͈‚"Úi8¦IjR(ãĈrß«¾ „,²ºé?3™´”˜èÙÔ¬ÆÑ(n xÌÆýa+ dñsô„G§Õ8=Xa·,ŒË*ûÛ•@F$Ô‰¦ö…U‹'µà€G–,üœûÒ…ïnùþ–.íî|D’©¶Oåµ#{&B�ž³$›Å rÄl 4ûKõT-x°ø÷pdîÁš1cìʈ“æÅD3ªù5¦ËÝšи"¬ ~ w"k3ËXÌä€ð”H»0EšÊãPã9šÀÀLèTÿöü� 3•¢³í¦�ó-\Qjê†&¬��VÓ"�ùðNý¾—i1&(,ºî gõqÈ0£ëû›¢¸rÜ kU,%[Áç{9øùùyïšû€5¦½þ¡‰à{˜¦ªÓe½‚^Ç/Ié仳òÁn^-o}ç §ìEš8±ÿ\]"ØG¡TÚ6Åÿ넹Ïp]ˆT‰J¢8y–ç�!m“r“UßÜ/"šÉ,ÚRÄç»I@Ìáyú ‰*®«4pýœ*2BÅÄæ�}$š×™�–yô'iëÍ~Ü52 :¯ë è=MÊ€[ÒBÊ”÷¾h”²:s„™”½ b(%•Ò£JE„ÒVZhjpO²yòuº½´�ƒsÿ¬?!>žã.ÿ.;oýïë�îs®+ˆ]ÝÞNˆ1 ½Ñïý~ü0@È¥iÆ a”sXˆ>uÊƬø¾’êÔ²“O2æ„“\å÷E>{_žœ×7>¸³‡ò•^ЫÑІƒ�gÉ[NÕpªMØ«9xÜÀU¶‡êÙ`Ý ÉÙûÛº�¦z8 áåBCÆúsÏá½f%ª$çò<¥9{p6m¢nÚ_' ÿ.X'Ì4i›ºØüO[¤âJ×f_ur+ÛF×àê£MwätÍ£·®m“Ö—D´6Â¥�&ñéô´D4QوγªŠcžø¨–6F”‘B6ÉX¡ãâ3{ôKš;,C[Ã@£RÝb¶è´rw¢×6d­$š¨ôr÷í”ÄU½¤”1ƒ ìqHñŒ{³ù.<m:ûÕ¶´{á@ÚsÖ3äˆÓÒE ]Eº¾U]5š]Øi7 <é<}[ÂÅûZE# ö8vi÷x4•½Þšo»�Ü-‡ëí�‹zÅëe8ç5õæxæí-òøqŒ5bïœãO;Ƽ#i 5§¬¼º9Ðí¶°×üÎTÇåyÎ+· È8ݸ…?RL�ʬÓön÷Íüog¶^?EEsÁæcºs¹N0L† ø,¶¬CUÈ®í=xëÆÏvŒxiýHÊú1z^_þäɸ²¯…¶Ú}¾6Ügº™LÚy7ô­Â³°rü2ˆÎ6ƒŽäîñªë ty²sSfþºNȆOÏܶl7]pÐÿ ¾‹à¦ùÖÀé`ÿ›ê­ßÿÅ�CUuí©Ø|Åùc\J¨ËÏ…$ì«ÂÊ`±—}òMTsfÕº_V_� ª^ÚÜÍÐ… O[åx�O§9� 9@$ OÕ±ù¨€Ö³ùǧ›™ x§8Y€,§¤@ZJöÉŒãåN¤Y dVo`  IS‚ jnÅë…BˆB.­8HT4ËyÅvWåŒìvàˆƒϱM0Bs«ð§DaÖ„äl]¬ÔAÎ'øbÄ‹¤5ŒÀ×ä �•cI3÷ç í±÷pîÙàé@àZÁ$=á˜O‚•·¸4öÑÂDJš3&áirVÉŠ¤ ò£L‡ü}|5†ÔYÎCÂL{V¤s’,x‚H߇ÑÓ^"†9�O¸:HÏź!ó ½Ç¢¼Ðœ}*�Bp\ieäANïúÕ²7ÈÁ牲“‹ð'nÙ€M±¾Õ–Õó—/¢±Z!ZƺWƒÑ‚¶ˆz|uÊøyÚ8$ß-… ê]¢½mT4-E×—s�ÉpÊ#ÑŽüþÈØSRöêmÓ.’[��F?¶j |1¦ÓÊ£/ýÅåìÓ!Ÿ[¡ 2s�h }ƒïxeFzæ¶ñ *ãM\ÆD1Š?nÉì‡�uv}ó§×Æ(¨Ù`ýVâèC6w—KAVàÄÀ»?D‰U¨ÿuëåÐæ M\èý‚£LÒƒ�¦%Áì®Ä<|tb °¾ß(z™CO+ÚX­jߺpã«Èc Ÿ1Ëœ>|fÔ]â7»8uk*�î4ìâï¶/QäB 4© ñ)—hÔH{_—–ééF‘B³™Á y·JÞ-fƒzlUh\d`ñ 7£±‡ÊQ ¯SÈuâ·>™gwR}�aΖînÄf!–8’L^'0)]gˆÀD4üÄ,“ômKºÆ6É�Tºæäø+^ôNo=ùSƒ¦~³•êR]Î[°õdwæÝ¶´«ãÊ  bmÛS¦ÖkŒÑ=vuS3ùqÿ]©ÿý=Ô…lVDæÞ.騔èuïRêQî è]`}üE[³M,$ÏÄÙÞ÷î4E˜GéWÔ;ö:·r[=ÎW~bó^‹ý5ÇÙƒ}’wö…~�|“bÞ‹/ð}E_ìt»Ñ°4?s˜¥ ”�Ò,Üá°uIÎÒl”1nüñ?J.m’¿¬þQÚü”–ìß*­¥‹¥±¡Íÿe U1´?ûÏHZº©‰\añZ¥ ç!Y>H %Š*ªÖ5£žéF‹ÛÚ±ÅÊï®fV¶°Ü�¯Ö�Çé�·½YÛp„³ÁPàj�%4•óÁFI�4Hü�N?Á¹p¡h“�ð„ê뜇!iàDóÎ%báh�#¬å¬A$DGˈi�x¹äì+†ê%sI†D³€~B¡©†ûÇC{ÿÀJ±*ËÞ)Zw1t°ß/Щ…âP˩̠Ä>\ «ì€6 \š˜éK¨%Π`j‚BÎh vÕ{isŠYNžâFEŠy8VDa‰ÌIñ|dWTÁÖö¬šC4+2={¹Ãr X`b2�‘“Œ¡³ˆ«ñ˜±ç1 ±è|ª§°€Üo‹ó23x]¡¯BgØCºëkù ª[ä3 H“¬ã}‹•ò~ãàœª`§i ½Ä:A X“Ò+XÉÐK.Oµ„¹ü=Ú�–Rç ê÷ïª��:„Üz±³%nP áÏØmõ%&¦Wv;�bl" å±Müòˆ%�²ËôÈÁgOµaº‚“öE‰‹»|ó¦U+6МÕÕPô)‹�šïÖ V¾e ¼rŸÏªIÂiéò¾éÝŸµ±î©/Ä<~v^^^Žþ³? í�[ÕÎGâ”H å`8û7ì#üß>š˜Õש…�W‹»Â«ZÛsùÒ©¿^è-Ú£Hu IÙd_cyêW—Æ=xJˆ©íˆIo@¨³^h¼J¤º)f¶ml.g†"zóE§4žbÞžïçÝì»°ìsƯ..hy;ćÂïOò+Î…�Óù7JÆÅ 7«{7h˜ö0VW¾3aøµùð9p²­CÄÒ] %lîçà´©Å3‰¿Ù-~ c„߯¯QåûÙN“jß5G°níùdÓ' „ëynr+ßðÎæÔ ÞôE&³Â‹ö =x#³,|W‘Bã9™^t,?ÆìœgçSW<Íó¨¥RôjÄ%¹•ѽ‹“–»*ïI�ª¡„Dêœ�ܭгoν!ý|-JŽyé:ÆC^£2“½õuÑÿUm%l]WæþqtžáHþÏÔö¿¥€Õmå±9~þCi+‘Ò.�ö½èEx)A(#’B*©œÜÌ5£g¸ÎþžPݶíÅÜ�tyž [ò�e¸ËÃÁ„ENþ¡úÎ�²ùz¥È©˜F°òºáÕ…X1¡ŠÁInìyÑe*&N /ÜÉZæ@U V¤ªgN¿˜,‹ô$P…cTû †��ÿ%"6Édî*ƒÆ˜t[v)=6ÊG[=(ßà ÃÃZv¨,ÏO>aN¦§OÁ5øeÑL¬Zç�Ž¥M¯ê,cLêXpÒÁPb¾Ì`RLŒ1‡‹�‹¦!"K&@8Ö×çÓß4ŸVˆFñáH%Ô™@hÂT y'‘gj?äF·ëßD�Ê·½× H:Î$Îtfˆ?¥Ák”âNÏd°éc=Éreò«`˜šXe é‰0CãWT~¤&Tx|Ö,¥ŒAŒÂ9"²å€Q ﺽˆ»•­(à › ä Ÿ1;1Î$ÂChÊ#RÙ‚úäòâF‡#¡úbðMêz‹\ƒ×œÞ,0š@¹`N[£5׬QÚ ¸Cƒuÿ�A4]�•€ÄC�qøÖ¾ œŠ½úµf�‡‹‡çÇÁc÷æÀmqw{}Û�ƘjS¤X¶WRßRçu3«6´pb!¢„äØË.]ÃYTˆVJ4§{ ‚:¤/‘[Íî&ŠdˆgÅI ICä ‚JÈáŽãQk$r:ë´ßˆ®bòò{¢í“d`í”2šA/‹E¸¼”ÄmLanÞ›¤k9§ì¿·Ó�ƒ–{}ÛÕüRl¢bß°ßG›4iËô2[Ú …=ûìi÷D†‚UI€ w™uYu” [Ô[ðþÜ�žû*s�îc¯õ�ˆˆ¥ðõ=âÄ~5œs2ºi&Û‰‰}àÍ:#n0R°âôN`ÜAÄšÌ�¯¾°iYIQÃCÎϾ&0±´ÉBëTð‹A{Îeò¢Ð¦Ó%o7“Øm¾²ìÄ~ŠÖñ™—¯©Ÿé@ÈŒC€ær„©ÐamäРœ´@�X-*džáë ŬîÈ^3¹H×2ôB¦¹v0µ1&¶I}ð±lmÊP¬iѤÿ5 PW_¡.Z…£å~½M<-š�‘S½rÈŹ¡bÓªR󻌰)w$¸¤Ð‘ÌÕ2ƒúç§uõq\ñs(M}�}õ#éF™Å­–ëÅêQ“Ò K¿O�ÍT?UõÒöïÙk¦�¹uÍAç¡Vè÷ƒõ»gd“»Cø×쯉Çi{'½û3s¬Çjé@Ðær¥c©ÀЮ)þ ×íÒ,#æçŒÀÑèéW­—x¡/tŸ:÷bÜ<ÊHU€�w2ju߀քɛLÉ׊å¯Mjï‘q°•ô ؼ´òjÖ§š¤2绉혜á&<^Äs&•-7Š"V›8MYYýg1LtJ6”¯ÒTݨÏÞþÚÒ=\A¥û)±Ú4¸Íù™uý�(Ç\LnÏ�Fê É.>­8#µýÇ}çé�”ݶJÄN‡¶{›œ�œšö¼—âP—Ú“H´1¸5°¯ÿÆéûÔÚS*qgÔžw°[²³j�úÚ«ìŽõÓâd»—å ¿á^­ Kó¢±£¥xÍ·Å™šB¿ŠÌ ''ó5¡Ë^¯ û±Žiß–Æ4ÛO×hƒÚüf‚”×àXû—I0a_à}¨Pv´€Kï6‹€Gó>$øÎGJQcç z!%O’š6ìEg§FR¿õ0æî'cÏÄ÷•‘LŠ�®�Lœ%¼ßÆ×ƒ¹FÔÏ©Ä}i—“œÃq›ç“Xt‡�Œ¤››¯¯Â\Cü7÷Œé`X4õv4´Þ±¿¦ÝS|€ßÿ‘·Ø2ÈœCúÇ2°ÃþûÊ ÿXÐÎÈÆÞØú_¸\�š­ü–Âå¯áfre1ºP€·mœT X„¡Ô amea,ïhÕ¦žuYZáÏkÖ†î V{W¼cw®çiFÛØÆ.XúHc€„ËL([>Qï-˜eú8L©Oz¿]x ”³áqPLͬæD@œ tV¬­Ðr:tÅEjsƒhÈzú×Ì [XC÷€]�®Añ3«3‹@�±‰’ƒ ~í”ܣ 5m�1pM>lWÏ.^ÌB~0­(X8dizF¡ÛºLÀÓÒp¡B¢&T¬¯FÐãÆä El¦œaVy1UÊÂ$à‚eF(ÊÄ0 c ÌûéÛ5P£0-FZ´˜ð4ˆ`êq2Ñ(^¤o\úØòS±è|«‡¯€ä«zó¾Ñ­š"� xŠ­azXj“y–Db©Û­_Œk+áøôáUY·P‰L“¤A Fªä˜a§Nœù:3F¶îÀ‰föL퇉�‘¨ünºÌ“›i™¨™ZJÈ�6NnÂÒ¾� W¦®"“Kfl™2W^€66®^¶ÒÙzòûË:(7È¥»‰·è_æfÅêKA’d#ÇàåK a–é÷Ë =.ŒÄòëÍSéÓnr-]ëÄA±ŒB`É!1ÞëFàrí�@E4îû§;áJôAD@V-¦á]½:`ðJ›w?€ù­����Í�«o(F\ì™Qx&è$&�Ž…=»¯EÞh¡ƒ?/Ž_gŽ ø]Xxº¸‹?eœA\üX9pY±ƒuAçoCcßߌy¯‘:!L:A#y°ôÌZ)Vʼsß ¡¢@”û>Ë¥!4H¨Þ†OЬ”@+±D%` _ÍŒ7ïÆofv» çWc“ »6ÚmÙpµYfòl¾}Ï[ÞSZÆR¸‚%H@_2t—jÚŠ�Zî6±uÕNŠ_^žŸ£ç„D$e”ò kâˆÆŠ§U kðœz›MŒˆõ¯è˜±�¹(Š"ÜþÐ(è2¾}7s"íµNêûµ¢º�C˜ûÐ#¤­ŠÚûB½cž�êq½8”º(ßvð ÕxÜ\o™WS0£I¹â�ºÅ�¶Td½e�ZËí†3.ò$Ø vãf¹R×(iŒ2Eè2Zš�; \ÑÁ ˜g…îûjKÿ5ß I×]âèÕ³æïtådÆ÷ZyÐ6ä� Š‚j®ƒXœ&-6 K?~¨Ì_3Hª¦!Kcvuèõ†9R|¡nÇ_ù˜]u·�|¼°î�§u_—3]=T´èúyÇi½Äñá´r“Z›Ð»Ò¹†Ød²eÉœz,Äó~±_IáÞm5®P½zZ m:¯}lÅyk¼R§r.>ÿ1tæ²¶çšëö7¤²2†z‹Ñ2\¯ñÜrú6Œ>ËØQ±D‹ô»BU½m[³åoÀ_?0—°Þ0Ÿ:=æ¾¥�F^ý�©x‹Ò¦›Ò uŸ:;RQ}‡{žÂµ|0Rž˜(ñuýç­8v[¥Çq]‘ݦlPdkÉU¨ôÔýý¡Ó,pwûn½|ì¬|¬+ïѲ2­¿©€UR¯t2�êjúzdûÚôT*§�±5¹óµÆ}Ôl¾ò,¶þÆ?íJ™ú™qÊû­Ð±#Ä“JÛû幋üãú]iÅXC®ReE—Å×Ùúû?ÖRüˆÖ$FøY÷ÿAVüÿWdý_t;G]×þ’ã?c[Ó—RÔåù7~Ñ/�‹/h¶ö‚ª!3†-«Ã8sˆn/oí÷0· !SZ7?�8˜ÏbÌg³Ÿ_¼¢5,"Dù™KaÆ#øæ‚\Ó#R„£\8‚›ìð�:fÓ©aZ1ët"%@ø¶DHë 6ú›Ž¢8+ëSµÁCnÂä@szÁêx Ó–Æ3’™ÛÄN‘íúH¢Ö—†™G†àC)v"Iýa‚5ÞÉ?ÐjÀÁ‡Þ– s—·ïÈ‘{‡. ÃÞ0\ö•ÊÍÐ0‹¸îÁ=¢Ô4"Íc¿Ö´@KK?æ~4‚¬f7ýyõŽcGÆŒ±8Ž~´0„+ç÷Á�%wº¦[¿(¨þ ×EÌÍlS¾¦P(Ïa+JF8|�z4 X�Þt3ÖäÂ@“xÑÔC¶”Kñ^½î@¤’ g“"‰éÉa ^�í >j9Óoï?dÜÇ!ƒŒ¶pÆ)˜�÷Êí@ÙR0n/ð³qqqA_vöÍ€w:dV´ñFD”b2u²‚ íÅŽùÝÓ­K÷˜»X�Ç‚-8ØF] oçà îâ {… – £'A£öBÝJZ þ6!`ΓÏR6·¸JQ!ÅÂ)²ö[½ñ§øÄµWþX©†–Ã:2Egˆ MP†9™Â¶MŒN‹8¥?2�01“[µŸ¨7HÑ­CZ4–fgœÃ© ’´¬�Ã3@fGŠq×­vã­l£_‡»Þ{Þ+•ÈþüzohH WR¼}SÚé$#€ÖÈöÆXÍ׫¾oñP¥°„ý¤¸ �@•Hv>gwû B3vEÕYÁ“j)n×ÅéºÂ6p,5AáÑÈ>—’ÿGBX’ú[g@Ãè&Çzé]í‹E‹€è{ê®(·ñÊÕÓT)þ�¶‘xãñé¤ÕT$ÛƒcÔV�K(#Y›}n ¼B.Ñ$%F@ø£²vxå»S’§Q­7±Ø n é¨&ݘC-­?brôm¨¸Ð[¦Î�5LS CÛ]¬ôaÆ[–isNQ(æ§çµ[v�"’$æU2V>²Ñw>–×âc–§&©âˆê¨½âWÉöÈ\XHðŠi6l'Ä\ìÏT–˜÷Ob’C=Ô5 [KÀ7ðqÒ5 v½0!+ =ðQ‰�þr¢À�äàÐÇxkÊÙrQ)Úiœ\бÍo†Smµ¬TÓk|ø$JŸ…ô9§‡Fs.ÕŠ€(m¡}ùöèÛÑ}o%W~?÷Íê8š'/ÈÅŸjæšÐéƌjW¥mϵgôÊhWsàö=7awõ¸�G�vñÒwñḴÀW9!S/« ~â?vågZŽk´š·›,Tv¤©Ø-'ìÔëýöçsµ“©Y ÃòZt ¾‹ý½7}‘ëT†ç®\UÂê©÷‘Ùî.,‡]'…·ê�ñb^�Ük‡Ü…sªèžéyF~k+PÇ�ëFŽ|¾W K™÷ÂÝhæÇ‚oG® ã¢P�ú Ó.œÌ cXаmXÊÌÂG`�Ã|ë,b3�mç—-M6¤‰åŸ˜})2QbT…�€Ta]¯DX|òªÙ äVQ+ÈÿЃÕý‹ZŠs4bˆÂŒ�Ì3!)Ò¤Y7P2Í¢¸Û xy+vÔ¼Pý Ã�Õ\•juBžøæˆçàÑ“¦OïeÛ oèÇ|1ý{玮¾3µa΃”)œ®÷Jþ¤ç?_£Æëö¾/.sSûûued§wú„ÆD-Hq`Íàt:t‹Þ} ‰6y»Ö¾™DóÚ):ùåm=Ojúhé%>¨¶­íß.Þ }�î0¬|�høýÖPÄQ¸Exl'µ‹uŒ¿›� éP•Z·pi?Ö0'r‡õ¶§ÅH#8à œÌ›U †cØ$(¥ XÊM÷7L(“6 ÀÄÉ #ÜöIÁƒ¢^d T•°bÿ–I´ ûRŽëèÇb³7n3g¯KÙC9Ý pÄî".6LxvržC×z¶O–°L²Îói{'S¢8Õ㬕¢´ rH­z“ ‰1¿õ…ùÞ¹¤>|»]þ˜‹ò3XõXÓÏ›ãÅ1ŒvA»�¼¦íÕÙÙ—P$ú�i/qŒZKLŽ0L)«ÉÐ_ÄÉkÄf=¡ öõƒq©(™ú!uC_;ÜNñ’m¾¹JïåÑtE6¾í6?š&µF=ŒÈô¿K±ÊJ[Zëd;yĸîw¥‚5í³¨fj'$wÿ0yjx%�1ª»ÍÍë7•E翹tû!:”гžHí«מÓ;^ñ»é0è™yK[Cå?òQ”‚ôËÛ àeÆðÁkð8…T¿ëô�æja E·JƒNC¤j¯%Ä„­ ˜yY¦î9ÆãVIÅ ¶jGýB”g¾2©v{4±Ày=CF°ŠÊ,ÄsåM1Œxÿö¨A¸Å�ûj³¬•±ØNÎk `GÜÚÜF†ŒÌŠvš~0OXDÜ­8o¬Éâ`šP¾:rŽìÊNËÇ£#ëæ•a_®œEÿm[í{wmó]Á%F�5ßÀæú¶ño¤Fò z2Ésu€ûÜ·GŸ ß¾«‚5R¬'Œf¶z¶�..i·;ŠÀfå¸*,YR×ÒáãYQ5Ùpsg'ä·Û½xZ ·X¾ð,ÈØ ì6¯6V£c”›lÇ)æ[Û¾Í7SÇž †Ñ(�¾ùì¿þµÎÏŒäZ»„x;=`(`3ÒsKåmb”WL�öuÂ� )gš¯“òÈñ#â;„wG|Îî‡^æ!}`1¼Ø}ôñÒ©»Â“µÊ˜ë¡�u!·ºVyoUt<ò‡Ù&–ŠÇ—e ñ;~Jswpzô`¬Š¾;½”&xÙ‘øŸ2ÿ÷êSÑò'ÿ?6ÿ½@sË›Á—}ß?�H€4ŠfK6jÓPó�MA�?æ2Ýštº”N­.«E_�ùøŠ®”2ˆgäÑÉt§9]±¼\ÄhÅ$¥¢’ßlˆ« Ò�'š¬q “$ª`ðiÂì%lÔ´ Yvfÿºw·DêAò„„ÉÃÃ$BM6¤éfQ•+–¤d…sSt2r¾X…Wâßm¶¤ÈùÆ\Iñ7ü‘EÈç8½°*f�›Œ�íʲeEÒÊEÍ"G9à‹âê*1ZÚ2&ç÷IÀ§¦q"öHoT5½Åm”�¹I�“ÙJɃÓôAH¥ŒL Ò'€�:Q4â$iRÂÃeóñ¾íç» 1³E(Ù`£BU^Ô š4’|ÿ eÌ¥b£<¸3Fª§ü8Àfô»¤âÁSQg´'Ä’�êÄÀR"œ3û‰éõ¦¨â³âPmÎ5øÉz#ìäI?+³ýT ýÔU–D•c&JZƒþl>÷±6÷Wc«üsgg›—1ø4÷Š� ŸD@Ys-@ìëêñm Ñ²—zWè²SÕ¶5\þ×Î#?o–ÂÙ�„L�GÇ6×=áðס��r]ò=®XýDîÖà|SøÈû©3 ¥±”(ôÈ(q$\Œdæ¹Ó_Ý)âæ‰\ýô§l�'“‘ç$¡ GV¯(Úãi»TàþÊeÖK3Å1|¿’†½$0-Šûrƒˆ§'±ØZ™ÛõGåärG7/¯�Ÿçîè…ïrOŸg1R‹‰<üº­¢Õzn ÷»�`³«ø—·‡—D0Ž“$|–{ÉXe5šøêÇœ³È\Ƙ„ñu}¸ât‡XÑô·¨I"Ýa(+Š4e²R¦fÉÚ p˜õ}µcJknF=Fɺ MšØPÙB›Ûó磧B­g§D4O¹µªm0–h5Äö—8¸½øø^üÐäè#b¢â%&L­žˆlñÜT³æhMOFªÚÅ´>ú÷·¼º\iyø•&§‰HQ¨¼Å_r�Ø}ÆÔ\‰ò÷öúj҇³{ê-u_|»f‘Þëðõ«/"§�p ¹�,�c©á‰Å²+øÝ3Û(ÿª4lµ¡+a3éQ¾zsãj›VÉ(q¾HVe’à‚ì°hCâÓa¤Jà5;•— ’û?«sCTYTÀ¬zâ׃\M^gÝØ¨7˜ƒÔs-ïm@N˜1*ƒ�¡]ô…_ªtª¾2Žæ¹¯×ÌùàYY$“¤¯ÃFö[²ÖnIR�^%]éa÷¨´Y&Á |qîÒÅ:WöSa”÷Tü¤·MWØ_7ám3C5 {-‚sú©žØçÑ.g«uu®Õ¶æØÐr¥¯¨¢Uæåû� �6¢R½¹wô¼Ízªj³«îüÏtT§iZ%lÜÙt�QZ¹oÅûG=œ.ð�¶|›¥�F¿©«MmÞZC JÖó}ê” ߈ÒN� !oð¡~„P—ûîþòàõÅ© ™ñI`HÛÁ=W¥I-lî¯D5;Á%žäÍ L? еû}5�´A„O¼‡™ž­ÍœDÕy´ C©§-9SDZžJWùøÙT�4z�¨àRì¿äû M±§$lôUýäI1ÅJiì�7–aÞ§,t_8qûŒÅÜjcñWpÊùÇ¢öi} µøáøHù��Ôø¾c-ícgØÃïÙýý+®TÈin! *ü;\µt¶þ�Umþ…yßðX+oI´î)§þÎZ €ÃLïT@R39Ö4Pnɰ‰*õ ÙÒ6¯‡È®ïõž=kÃc?ÊÙÉ&EÕ¨½^ðÝ¥×Ð ‰)óæâ+å9“ËIœÅqg�øIDž$<­\³dÇš9“ÿ­3`Ò~ø3Ú{ÖÅ€: I.Ÿg8œ>‹ËOf‰Ú†©$Ujɵ·µ T~»ì/�-™2B÷·ð-“M(éMŒŒÅõ‹``gÄ dLOü©k½/·tØÉÚ¤lc›ôŒ¥„‘3Ê—œd ðÿbìƒt “¶]¸mÛ¶mÛ¶mÛ¶mkµmÛî^mÛ6¿™÷ÙÏÌÄ7ûÝ+*ê¾£*"óÌÌó:2w�Aö p˜>L™$1}‡‹q›Ü]QLG})2¿¤Á?µ”�V¥u�¢ÉâÀÛ!ÆlÄMêOJ³›P7ǵn‚2Öâ丧êÝù,²NI‰2¡:R­å!gØN . …X·¯�o;>±(2ÉIÜ–h@u2ʼn ùÈãIÖá$ÎGˆ\%:;Z’ 17¡ßøž|1ç+hAÀy >ÈQTM¡Ú2'L†œž›ý:ñâE½v°`»W üÒ’%ˆû¹ödà{“ç°M?�Ûà\ÂÃìÕÀ=´Æ2×… w±zŒ¥»¯7ÉõO@sÂqñì½(:‡¿#Ç-ü5˜a°géÑ Æ\@�P P7�¹Ã¸�PÙ¬6Ž;¥Ä^ÁôcW¸çć Š³�!×…$ŽîجMþdq³œ�1¾Eì¤Î KÕe rg,×{þ/)1ÔSÑ�ƒŽÁƒ0BW× gTŠy^ „å��½½½Ý-›?ù‘Ñš×ÇÑy²þ×Ré:q1zî~ûöù†|> eÎéÍräóÝqv0ã'Þí‘FÊ¢öà^Œ÷‹4F!EÔË‹ÿúùõ ÁÅîpIH4]Þ᰼݆ÙëËû¥í‘¼•|~·ÿG4s'==Òïn NvÄÛù)œ "€Ž»—kgn2cùd=8� ch/ð·œAÜ)ä`Ïþ!ê)b+Ç�ùßykŽè„žžC©3h†$€Àšò ^�áxc(±ˆHˆGXƒáþ­­YRæS°i{4héà´¸ub,±õçZù“+D«æü <ý@dB,àÞÈP5˜'GI òõ]¿Ãt ‘ÈÌd9P'pèäæä‚¯CÑEìV,ëe¯nK&©<4zí4  ‡1Ÿ*5ò?nsx.qcÀ]®B|åSéÁ³ãµÈ À=Ñvmrqû?ãb±ÊÁ-ß<‡hûaM;Î7¹ÝWðr±Æ4y×)eºä’¶8õ$ˆކ`ž?9Õ8ÌÙ�­±í8#«ÔÔÂûf=zëÄ6œÅ’:ÊÑ×JC† 0�A¸K,Ѥ9![�ÜáE„–Yc`HÁèí‰i¨{’É´²m»Ü¤‚.U*£�=­• �ïf»<¡ FëW×ìó’›…¼l÷Ý»ç±W€‹¾Ê&ž b�£9ø®¾Y\š³ÿBjûšä»y±ª͉3—'‰F@ãÍŸ<¾7+ü}Ÿ‡I qž í£ù$ã"­Pp"lϧ;áa:]ßÁ›n’Ü5ξ_úÝ6]V%Q“R¨·™L.q]…8ÐÂúN§¹’$"a‡«¤Ü°ï߲֮)™nVc‡JN) &ºTÏ<]hŸ=ã‘“ìç±*ÅÕ?*yiaDÔ�iH·TDÓ†æ|W’e³ÐyÒÏ„§ +x�7‘÷`™ÁÒT;¼2H&È•´ ¢€R¥°rT¢TÕQÝù¦ Õ$雇ZÕ'’ó.fNþÝÅÙNM'b�€0C¤Ž‰Î þr ðäBBßb'­@L�Àý£CMª›I»lÖ(W²Ó +ÐŽA€hâ“y·ÿ9µHôe� .²Ð„ÇCn m$b XÝšüÝ1žÐqK¥)Þý[,Ò’�Ò¥Ìâ³€µf ^÷íÜÅÞú»€ÇÕ³d�ÐO–PÒ¥LdBhެK^8ŒólçêíËÐ÷½3¡wþãiýTä’Ÿ@M0Ë –ðé™Pé�Z„O¸ÊOn4* Ñ ƒ]ëÝ WÎÌèÓ†.Þ$ºƒýç$÷UßîsÌy“‘É%³Ô”æç÷°­�©—ZF�oÝžÛð#a³7NéºùÝÎ4?ö0•›  £sôáýi•?Á·d¨¶Þnš Ó”xº�¯ðìÙÏòøRñ|£‡#ÑáæC¦?јÈwhûÌ ¼V©Ã` f_sbêt0�KÍh•Sƒˆ0†¨Ng3rAjãPd¹ È–ÒàWD8.}7z’¿�T-’~VIÒË"Q]~¥H&7ו•^àwëŒlN0�ëâGOóN’; L—Vœôƒ°£“rÍ›‹³±dWXtʵ¥°i%r4l£­p¤ùŒÄ¾�îzHu%ó€)‡ÚL>,Ežlf†�Õ rL�¢»œ©íýÎýÌöi9ŠmD§ ;) ©¦'Y2”F>g‚Ï¢ ?âñnr‹‚”ýfáØzäô£lxé=‚¥ö­”ËÈD}¾Ñù¢ ƒÃI2«ÀcY¬äÄê?E®y ªxýmbÅ‚§gF&ñò\ÀŸËøÝ•”~ !Y6x³M&\½N[ØÒpý©ogHõ ›Þ–O£¼ <0G“ïœ÷µªõº6ô³¿~á£Wô(ƒœËæüÎÏFžæíŸÀ/Á¼x“Sò·ß^DPvPëÏ:dÒ;òK»Ï" ô‚rðÖlª#µ©›U¨¶ªOiSÌ*;ܨòµ Og³å\ò1Ÿ¥“n¿©�ö �&cÆÖ ó¨Ïä&pÒ6¸> S2¶ü'œW˜šHRöŽËXjÊÑlm—&›þcXROŠ<Œå#9ðW×#.h=´§¤^3IH� Mí~�æ¦Û’ÃجcƬvÖª…šä›Wùꣾ<ç¿87C6òx[[Ç�´¦)¨2ÚåmíR¨I¥/Hâ“zÅ-rJv„l?ëâo—>UdÒ2Å—ð$ iÓ G÷Á‡Oo¢}-öqì?/Û7u$”‡áÅHø­§Î´³îÆþvùcaÿøÎ¿S‰}]=Ô£Ž}÷… þòyøì›IòI§ õáLž­{ÛrjYJ™?¢|ÿmñ(‘g%Äíÿä«Òm Iwkâô' ü«�ÀéŽIíX›DÑŸÎW”�…Á�6QÉh…ªÏ9Ë ^Í”ÿǧBÑ‘ !¥…Kµjì³ZÖÝàΩkEÖZÕè ½ 9Z^¡ÍO³JÓ}©”r*>hõŒ¢7ñXezuFË­$&" Sc&ÂÉ.ú†³îl¿Ÿt÷%%|�K-ÐÛ$¼8Ôõé=7àÈòºÑAepð¶eæš�Â(k°}Krä!•vÿÆ©Xõ<‘¯°Ã±h¡ Ÿ]m™.š [†Î ¥u‡G¡Và,<}S‡ËÚĽC!Q¡Š€ý'§�Ù(ÔûFÀ¬éïÚ¢³�ðüZ®-‚ Ú\Úme­;>hÁÆ3¶8€wÕšѳ·`¼�ïò¤ûk,¢Ë,æ‡î¨¨ïКꪵ"ÏÐÉI/gYe>“ÑX;¹Ép†¿¾dÔ•#¯õ 5;›©úOájejê¥I”L‰Â„QƒŒN— dNý˜ÛÄ1¶òOÑãúçnÇ\ÝË‹‡Më¬6Í1¦`Æ©¦Û˜Øx†+ô¿¦õå¹·[�@è# 5ÕùÛÞ?ÕJ¶¥­N\4P²‰zùï # ZÊìüè °ó¦4[ôåDçÕÔZ9jÁzT¬í6/×9Ì8—F3'�³8•Yè·Q)Øùh¦¨©³sG4@È ¹Iè›ö¥`_è<"¹|“TËÈ»h#ó:ON ìXIjª,uBT€Ü¹´[4â-¼QÖ›p²€�E<Ê–¹¡P HνœºÓ ]¶�MK$Œ²w¿U·žI»ñ rÙdY½…ø}¡ HÉú|RTÎÈêå^_w„ç~к9BmC÷¼…%©¥¬¹;˜Tô‚bYAQžú6æÜ7ÆãÌÀØo RƽUƒTzГóˆßßkD¡UÈŠ8B:¼"… V«ð}‡É¯Ø8Ó¾¡~–ßÚãÃ|˜Q)+Õ ‘¦.¾�rŒ0hµ&†»¡l§ÈN"UÔ*ÕÉdd£Q’-JR¯zËÆ€vÕs3D[‰î ?Q¶†–ç¼¾ž®5úÉטŽ,:ø«Š×(¾éUÐ8Wí¯D$8ìð1`øÒå·�W$BZŠ,õ›~‡ Þß½êr ÀÀ|fì�Ó“¤ÊGKµÎˆ$*.Í™ªª2,^O&WþøV)±LM^�€ÚEiU™é™J% Á¼ TçF=Ä·¾™JÏè¤C¨:’5Û{�”Ï<¥D^.åDÉ ©™"HÒ*Ž›fðKYlš¯ãeYÍ¡±üè‘lý=Sãaò(/{Vöái³‰Æ½Ç µ·fS£gìjLîîŸ@N7™Ó7=þOO0\öRÆÏP(˜ë-J ‚Î jˆ³äúƒ†dëZu¡å¦(é«´sU5C«LxqG¥5;;¨ ÔžaêWâhÍ¿ }j½k#V˜-—Φé™bì�9:.Ê‚e”žrnîõƒ@ú„9[;ï=Û ¨¥£Q ²½¯ûrS‰ŒÞ Æ×ïz~{õõê8”pÝzÔq_úŽ{ñý^Ž-w…š8ÅàTåF'u}Tø_¢'uf¸íRZâ좃Q@|8|š 0¶(|¤ßÛÕs1Ý€/Ë”?jaÖ„Ððñ’vï8/®Í`YxW²¬Ò�Å´¬³7?8ƒ�JT}¬(á¥`2ëŸ ex1Ù©RŸc•Ú"Ö™˜£ÌGIKÚª_¸Òà{ìm'�À˜`á²{§Òuø@À=·%Ñž§Å·“àNži$sËu/LŽWKî/MJu ª�½lŒ™{ÒY¿�‚È„7}Lw�oPÕ ]”¬ è.›%Š"À«\;t³®�3 hsyO–ð]í?˜Ç;2…€žd•|ÐȪýP ¿¼+ ; ~?ï×'€iTjÞâ½g£yäG“–æzXŒ»7š¦WÝç~¯Üå$ø¥kã™ìõ‘›pGÞ¡h«¶ñsZÄ™½9lr7ÕÚ6ùGñq8;-ڮߠ�7‚Ö=Þ¬8ç&Ù¹ÿôüðy {3`­´°Ò~Ò‡ÓuO%hû|V?»wm^äºÉÑ|a¼^E/ü­IÞAÄæhج‰¾)oÅùˋ֢*™7œ=•H’^´g]x¯UwO©CÞ�Þx;²ÐäÇ<[<µ»\klÚ<Ìû—iõÍ _ÔY¬­Ðã{jÄcíÃU Øx´Ô¬ÏA«á 0»¦E ê$“yu®q0Ô°÷VúñG™QZÃY1¬–:QŸŸ%HenÌŠlK°'h]5�jÚ3-_JMTq@ëõK‹¸pÏšüsÃØóç ;*·™I˜t¬þaŠ�š¢ÐÐî(fFXg@¯ì œ-¯Iw+A»e‹þ�Økö £Ùpn8–4ôÂcCxpÃ÷íÐÑSèíkF2…KX·¦µ;¤ÊR­€ ö 8z7NˆÓmL®7äÁjéK±!ZI*ç-9ì˜\ ß ñìd]¸H¼~1�»RÐvª Íb4¢ÍsÜÀP#ÙøMÿß;d:á2Í ºpxÿ·Ù¿í7í6ÅþgàP$@ˆE³ÙS ˆ-°0‚h5D²z—\O~†’¾¦»®˜ü´ÉÝ$µLÛ gg>·5;77hÖÀ‚0˜—9�¦2<7e€IÆ$Z‰áNæ°n#X�–Yï$8y3ÌüOC¥hbØòÓ�rFd¥`Uª vÃ(ˆ†–õÍGg!X£÷Ùb5®~‰sr›2‹ÀŸ „š„HÃËŽ²!ÏñÚÉ-¾4+A\:íjŒbQØÛJd#+YÏ,€±?ÐÅDŸD,­†5j󜱅,jS#“IYdz©¥P¦Í/$º¥„š�Œ@š:\ðïÇ^.ð«Eh�1êÿtTËÀÈ4c ‰0¿g}‹ÎÓyÚ H/;0ÑCSsš§¼0°®ûÃR&»:yÁFÖïŸ,°¤,„(‡ãWÅDA¦ù&JA‡¤X¤²ð€U 9¼ìßø�å.ó¸�%ÏZ¼¬‘¹bSDÍ� 1I“*»h•¸É zÄlþ”|¹îÀÛ‡5‰C�� ­—óçîÙáÒ½Û¬õôNÆß’vYöAÆq�\ö&ÞŒÿ�AÊr.O ¯l&$OF0º�Q¹ˆ $„ rnýñ£å�‘Pù8:ø?6û¼f�VA±ªÍtÚH!µkõuà”R»~Ø,Ø·c÷ Âch܈(]Æá¿ªU€·© Õž›€ºz::ÝíVß`ü×9y9y_ÄE& �žößÖ ÝçsüÓ§$ä„ê^ê7:gÏü½¦7Ê™™œn²Ïh8:S™)�Î:£„—(„jsâS‹—Õ­&ˆª²lÈ$B特�ƒ¸yß}¼><¼½€°=¯5'êwÌü½™Ò’:è0‰‰?E}!Á2‹À�dòm¦­ ±:Œb=eQ�®Uh(³«ôýÝìÅ~¢Q·ÀO»§xº��ÙÃ]¸XÁḚER—5 Ð÷m¢ˆ–a ö:f¶+4Ú§ÌÖM,Io”ZßÜùðc«°�ï‹Ex1mqöjÿÀÉãZf0Ã-ü=�O‰;Vô[±Pç ͘âÿ‚ZØÍÍ6´—ûÞ$[˜òíûN`Ü!й놶~ô|½Ï¢™>u}{0%&£ªáû«oÌ2iÛJ¦·Ou?”ïí¼_ÆÒ?ežW ùØFÓsx£W¨aYõRWåÅ®Ö6¿ÅI¾süÂʘɊY…!0BÙ:™¿ØVŒyŒs ‡‡l‚N /wö¨(Á§xEÉB~‡¼�� óü>ƒ#âUÄìØÞ˜c×mÙt �ä;2ŠŠ@]•ÆBœHr¹m îUv‡�Ü ~åéYŠ�Ú`B³IÉ$:q¥RjãIcóEü.©~N¹íã–@}ÕfK÷¹ò§Ý‡šÛo3s;/ìöÉ8€¯C“½nf 0é’iˆbv"ŽÜ9ª»Î³Ò c¾Lü• |�NG\Ä#’´B¡ôÅ2¸p'FÜci±ø9!sGd¾È$ýýþvµ‹9Šv}SVC›“fúÈô螺ÀåÌ&Ô;ûVŒ_6ÕéËrò6|ò·çùX>~ôõÅÓ#»#ã›Fª½G4UTh^vÈ&ÖqFr…éj7ðue+óL'u�åéÌiʦ¬I'»ôÙ)êFÝ…-…–{f×úÚ‰µ¾u©ýÆ}HËÎÐv øx‘W—˧5·¾È?ŽŸò[DF"½–ÂãÒÞƒ •�B´ÿx7¥Î´äQjÎm3yWnX�&0ýrHeuq~ì6„ðT:AM3ánü «u¯:Íü½dU€Ïé-}ó«ûk†v"®¶éÙR¡m=ÃYK�í ·ñî:¬ÿÚ;ë@©×h1WèûˆÞ凥ObÑÔg…¢Q·±Ê[ÉBØE<’¸â›´s*¥ÿ±Ó)ôÅÔÔE—öéï¿þi%HpYŒÿ>rþgÐ7¶05¶vvµµ5uú÷­ÿÈHÿÌå¹ @“ÄSm’nìXà ¦Ü/n0’; ³"€R“ÍKÁŒ§ ¬þ]májC"<÷z”UDG 4xô§PwìíFD´]®«ÄΣG ³ùÐ÷ ƒp87·ø°êÝÉBõ8a”sµ“'AùÇê(¥1ƒP»áçƒnQy�J©†«•5=jü\]éÒì5 ]›×_B‡§Í`{ 8¦W CÓ Åð–{ýøl¨Ûê?p¿eY�5ä ¯Ål-t0ŽúqÅ?ƒà#z}?4$ÇÁ¾6×~}t¼oýñ¹ý32Ò©grϳ¯o«bÌ=ø¬u5þìÄñ^Pîª>4¦ö.×ëJÍJ‹P‰ÙP,›1ì& "ÆŸ ¯3¡¤©Ý‚ ]G7’�SÀe-4W¥ŒMÆêµ2žíGK�Ìñ:ñ­ÆÂö—T©˜â»õœY9=u¸«�¤A§Óʹ1‡ÕJV\¥ì‚(çí¿c=�ʪ�-hJY¹ìÂö/%y74ßzèh›ù•oÿô5/³Ò™”ékmèïj»ªý(‡™Ñ•çô”}™"sí·5Ôlä"wTC!khi�á ééIĺUk s<[ÁåÊ:·lŠÜí/@âä†sÃvùºòxµœ«úÆS¼i²C_ƒõÏy©‹_>5ª1r8XïÐcø�§Òc\pÓX48ÎÏfÝ»gͺP rØE‡°ÑÖ^ ÙíiÞô¬JN>ˆÛvï—á Ķ¥îöæ¤ÛCní™.«byÙH#ð}“,< d‹7)¤ÚµZ‡-¾[A6K0%„¹øZŽ=ÓT §œÂS­ó„O¿55#Ž Pc¤ÕV$³‹ÿ~•>wJŠõE9]fÖ_˜Yò²Á"äú-âçA¾¬¼›W{¸Ð.>¾516¬4ØáuP$£E˜Í•Ùnƒ®%mÑh²k±é¿Òüûx—«F&œ~ÎdΠ›‚% |jç™ÇH™Š7`æ3ñ}QÑGè¯[u›˜îµ·ð1Õ¾îÎil²ò>êy mÉͤÕͶ¾è×…ÓbéjyéA‹µ²½l»æÊRƒ SUCî“…ö¡æûóÔâöÖRÖ¬ e*MÉ[¡\ü[¬ñí%gRæ¶ø­æmë®Ò‰‰Fô±èbró>T¸z^*7á ð7.kRç[>6UwWìr„ˆºoIbu8s9Á‹½ÿ>8† ö¤®`‘íG½@@ÒxÕê4²õW‘óòßE òLð28 ê§Tý§¨øTŠÆÿ•èþͤQ>ÖJ,•ÐQº]®HCIˆ ¢ÖÕã¥íŒ¤iÒ]V ~Þæféìº:ükHî'ÓÓ™›‹ààѨ"@?3¡ ÄÞ8%†EL�À€«KØxøBK:-"†+ b¢Týâ\À‰¡ß;€DX™Ð¦ýV¹0c éHFÖ�ìààXÂqкYbÕGÉhwÈ!‹P©(&ÛÙØÈ9Á9ç>¶ËT­ a>@«‹RÀö±H˜ÓH™“Óh±BÜQsè¡qWÅ N@ÖºB^ba•õb´ÒÑFiBêJ¸•×w–™¡£HóF“x‹éúü[ƒuLÉb$ºtȨý©P&jã$¼”F˜ƒ‹Ä‰³œïŒ¯~ýbdö@Jû„bÐD�í�„â±Á˜Ò?Øóœ–p ç¬$ƒl“‡=,, aL£ñ®qŽ#Q‰|•$�¥!� Š™18`QC¦FFÆ6Aeø}Âä—²³ÏÃGN!£65+|àdJ=‹°‹™‰š¬a »ù»2u Ÿ®�ÿ0ƒýCGDÛ?ræøwR–ú8rvõ NëïîèøçäÇJƒâ#»ˆç0“,¯*DÌeœåÊEŒÇ€#Q3€ŽäÔýò§Ã‰‘pi;þ“Ueô4áD$³‰ÈƒJjòì–†+�|�¨c6àRç*ÒK¢CNÔ2'ÄÁɉ3 ­«‘äÃÊÁÃÇÅååéâôFÜí³qûì½[!ÍÔÕõ8UÕ´>²~õú~í}ôvspƒÔ{š�{Pën{¦µ~Ž2ëïÃmêÀO¿„r)Eß7PE¬&(cr¼¯õÍ8:Œ¾&™)äb28@ˆ>’¶—§v ?UA^A& ÍrK`H±Ë[Tæ÷'½Œ¼±g.”XžÀ‹ªÒ@2)@'N2›ÄR%UõU¼>S=Éìø¼ú±\?É4)5e“.·lX0U’…=œWž˜R{�Ø™ÁHT¬ÌStšm›ƒŸXi�òz«7Ja’U2ß‹6 ¼ª Þ±h­möË=:v qJ<Œ±®t0$`žÈT³uOoš…–Š¥´ÈP– ÇôÞf\b¤“êZN­ÙÛO@»>ÒÚûU�ôªƒÃW�¶íÖ,šŽ˜_:¦¡®q<ŒÉ`qqöìK:)4‘aa òä-HeÔ”õÙS÷�'º'Ûž=ì^ÙþÇàçô˜×<„Ýr•9_7³ÊßMšèõÌÑÓ &ؼv¯º—ëëðíï%¿»q±Íó!‹’â<9ÉçmÙ¼V¨‹HøøBŽRP°\Hå6ü`©9¥zÔfjIz{QîÙ¸½�ˆa s\v^ºzÄ8�fUòQ@{¹Wíxw-],±eGk£©ÆI¶›} mìeb X:Š•b‰`÷ô—ûŸ‹q[³Úòv‹i6Œa™$ ;Û'ë¥p( W0¤ Ø1äj§�j‚ ¹ íaÐUa¢¦ÔXÝE*ošI1÷ÏÏÛzØRmõH�yEåC19¶pÙ’ÂÞÒbX%�Ô‡ ÔìuÙ ¸•3ÔE5ü÷Í_¢úüj9Fͧ ¬V?)­�`éU%NdâF ^bÌALÁSD#ÍŸaíH®<Þæ¢óågÝ¿ósÏ¥¸ >Ï¡J-ŸGØ…‡qm<§2WXЬÚÆ‹»K/É•­›[c+`dÖxî�ãäÓ¥VB1ÍJcÆ R»®t(º"k#ñ�>šb‰,ÉPédüü†1V9wVUf“d@; Î±Ò›ÅB¦Ñ/5âC¥¥ ö7t!“ ÷Õ‚ßÅ'« «j%ÑúÒ©/æ"›ê¯õP—#·8Ðg>ÁtZ>8·dKOÓK:Ôôy*®a_�bÑiºWéÛ+EÖh9ø8Ì±Š…ò* O�XÆ�§0-d›#Þý3'à›ÓïÑîY^ïvÝ3‰Å•˜”.è7ãéLSo\˜€Çû³ƒ'oN1dvëõûvô7a³é„TDVE^‰b×Óm‘}%|0¼©÷Þ°Š= H»Ýë-$�Â-¨Zšï­»yÙmt£­²GfS'yŒ›¬Ù•6ó[h£~ë–‡û­ÊŒ‡è"T ¶îoî}�KqÖêÔ~]½7;ºê›÷0û§³.ÞA�³'Qu×¾�‰…³&Ö67ª<¸ö¾«wlæQÏÑj$Ëk—A$ºÈ­æ8½G°\³ýô\OÂn~N|ãį̂³ÅòÃà]H­ì õòo_Žðw ïme=R­ž‹•¿?÷ óõº=6ªêf[jç-½3ç­� ™mï£õ!åèR)K«¬ü}dqÛª¡�ÏD/³)q¼˜¬Âª)s�íY¥ÛÓ·ûà™|H÷Ø%£Úš©eõ-&¡qLËÊÍù F#¶m¢Ñé³B¢nš!Cã{ÙuFZÁܦŽÍ�‡ôŸNØÿ¼Î` Ás‘§þãVLÎ.b û�•\¥v²{î }Ãû2“ò?U.­å¿˜yœyÚÔöíÑb^aôœHöw×Ó¹7‹ö»�®�tÝ(µpÜuàª=ªSI�ùàšèÆöö¤Ëïç(hø×UMn¬½<×Ó9fú]×Fw¢ö›²sðö)^q/Þ»Æð„å}§»D¿ÿA±LÍŒ#ZXÿïÝfsC{Kçÿ`1)þ“jþÏsP1/%È–œ*]Þ«)à“‚Ñ (‚kPª¼G$pŽ&WãŽZ…¨¯›öW!°:ÞmðŠ9™ï½™ïf9nØýÑš`ˆ‡(w¹H¥‚b'Û°n„æABÁýÝ}vUÀ�[¥"ÌøÁ´©Th ²Jˆ†=+bb¢Êƒ(”KA¤¥Ö¹;Í›ãXÃW©­L™UbJ¶–Ò °A Vƒf�éçZaµ8ã.ukl+ó8gn\« ²¨Ú•c 0:‹…ÌQ÷š—ò©˜0ÏÙ‹Ê¡½3…8D…Ó,G¾tŒ3Øh›Rra4›é#æ³¢˜Ï3€Ì¶Ö¡fƾm@_UD9¦�ó›Èh ˆŠ$�'Œ°‚ô™0§Ç—h.E¬¨ó S õ1E™‰Í^3JKl‚T@eƒ-”û€2±J‚Eo‘uµ)…ÿÚBÈhüh”­©Ç”¬�câø@yŠç°CÃÁ„ÿix½k(à×Röo8›ën‰ÞçJ;+­k&0îJa>½AAôŠ—EÁYÚ7º (øÙö`zYYƒ‰ݱi×}þsÚDc‘ndý9âà,Ÿ²EÕè(JPb7˜mÔ.¤Õ›ï$¨Û iŒØœu÷Gq!j8+¬wvðѹÂ�i‰Ìy ìÒ©®®Þ§«ëÞ T�öíU£÷pJ*Oþh;’¥�²Á¶tlðhÛ^ãw«öúfÙÊ tkؽ3šlØ“fYM@@VÉÄß÷ÄöR¿Þ!¡I(¸Ûÿ`c6D΢ˆ^굩®´—tتäÐÁÚ…?3­‰üå™ñIá¾Ò×RdÝ´õ¼Á;9Í4²µ•ãâG �ëuíÝ– ï>ާÓäök|Ôý•Ö„»äÑÞí³iÔ¿|Õ—�,„½ 1WÑ&_1´=¨¿ò:­?ûí— Z¸µƒ¦9ƒ>Û³?T×.Ò1Çõ{¡Ú³–! ÈR’럨•ËUÖ‚†üWð±PeQØ—¤Òî)9èÖК”1åš™Wðö)3@!ÇÞÎ&Ä»+ylýÛ…õ~ôqâ"sÏKÞ¹VsòÕü£Ï9g¦("0º(J�s»i "Æ6ô{{T&bûÃ;V°–ü‰�çœ=ÉØC)ìÀ'£PbÀ®+¿/ã~òbH%r€T2P: y iR�ž¾a³è̸sþí;ˆN§FRI yÌ‘:hè^òû×Íÿ×#üëç?è)m¦’`Qè8ÿï¡á+†k�ÿ{üï)Šð6u'1Å¢0H„D'T”ó…l=ù0öʵ=©ïÛÌmÕžP.È˶o =iú†‡ùqz³õ/•€ÿ´0†S< ŸÜµ@Æ¢ùPf;Þ+fŠÍY«]�bE 1™²ö ž3Ú¡»‰O½¯»wUT`öeˆ¹jÁFLižjUÄEÌ{Œª"(v”Á0_rÀn¿é≞ÄJlÔ€å83c.¸Kš‚�Ųø¼i¨–Ãf8s¼lý� !6Àzz!Ƥ8·�lF4Î2tÆ”0æ� É}V BåÙ¤H»ǪE¬:í#p3‡"Þb|t•v»´ |çBÿ!œKûÐWB`¬L 3:X¤ËìD|Þ=ð,¨õCV?Gø°…„ ›5X# Ñ<©vÒ/`¥¥ÖÙ�vÙdªÖ¢…î^ï ~4å(«˜BÌS¢7 †!¶˜ž¦ñžëÛâ�oïµðå\o³��–úw™^ºqà›QŒ|Þ¸5 ]ƒO§8A‹˜)yvó|Å ×�›æOw ˜œ¶Oõ|/^޾Þ@´Òî]¾®kƒ“®6öíË�?På‹‚° A7…“˜HVVÂý¸f\"ä¼è£/1†£¸a¨gA±#<¹us¥a ¼ûñ*ݹ$Åýy,�ðè�0ñ€cHI¦i¬YL;”ÂÜû„ó õa:ó® ‚¼qp–'¨„$ÙéµZÄzôvëð—w€·^´6µ7µíߤ� àáÑkf]»^ïÞ÷K)ŠxNK'»/·]:Ÿÿ*ŒÅ ì7`|�àlGÁ•ÙÏ2ÈÔ.¶1vÞ‡H–€N�t/·×áki�¹D2ˆEqGv¶ô]>k]7Ñ´u+`X�{ö3¡}²Í ·>qœÌb8ƒ}#ð0J�A©!©Ib:!R§èdŠäi8ŸC bå;^Uå”°qgŒJ×0ë[ò³–"4Æ ‹µHÒ|ìÿd›—x>O|"ø£„Äš!›QJáÌÁ ÑnjËoj[ipˆojs�ž(‹uÄ^„ß…_‹VÇ‘U©Õ° oµÄäÊ~øñ\ãk›~ol$“¼ÝÆÅ,"Ë)¹vê³/²$Ž9Rý�hbLm�|W>÷³=�§Ðí®ÉŽýb$þüã‘Þ1pŽÊy¦“ÑXðçÔL,�‹¹I C‹¨Rd‘ïÁÒØÄÅg †Ûj�à*&!ú¹«È�5_¹7gR¡<1ßÍ2¡è¾á¸3炊5Qk�º¾ TžÑDr³kn£)«~ë²ÇÕn×þÄ�k¼ß-Jg÷°ööW¼VÿÄlœéÖ]ÝsWçbË.ÐÙ’Õ�ÅÙ*sàâVmë*JͤZvĘò¡yÙZ@(0qy”צ$áJ¹^†t)™Í+ÆZÙ<&kÉÇ­’M¾>©Œ�ÖÞjÌ„u)ËòµÊ¾ªŽ|Â6£y®žGK<¦QÚ¸îù�#o¦ž#ÇÃÄì}AÑŒflˆË½6Ú™Û]’9k—éÐðFqG·õ…&…�öéŠIM›>símº p«£·³½ûúis{V×/¦o­,Ú¹gO«±àGÓÝtÝ/[Z ºVeq2‹'þ––ƒ3Ø:pRIÒÚ»ŠÞÛujÍZ£cÆ,J—Þ¯§[¡øþFá7}]ûä�N"ôóB÷Ó`E⋹+…6á*S°G@"€ ›;¢b ¿ÀÌ ïp4Ì~·‘Y~¢Úãî/Êa‡LG¼ë4êÆºÔ%µRf“ƒ×R²è"7çJ‹…éÔfÆâŽ4€ýmU–+åã™m�ý‚‡äÚ,Ò(TØžõø$*yµÚÙ‹{²¦ˆ¹á³éŸÑžåY§J3´“´#3×N'mÚ?|êÉ.1¡ �)²cØ�é*[S"¼¤së¾Q‡€Vö,QÕWöJøhPEåR¯~R®è5o¬(c_rY3MçæŠºÍ—ízÊ×ut�©s$Ìë«(¯dÊFꇣ]šº‹Îû"=˜4^?K·¸Ìd~ë4`k64Õ^´?s›Q|ô,u'4›Ç}m±hám֝ЩÓhx&aÃ;dþ!�b:ßVôÁ°ÃÃWæÄ±ŠÞË>ÿƒA8Èos)  ‹ôßs‘�©‹§Ã¿Z"®Óuÿ!RQÂnßàű*‚§Ä%–ì2ãD¸]¢– !‚Ä,Z„,XÒ„bpÂé6r{ÇÜ(P’X,ì6£ÙÖN}}z}”´h¸ ßXHüÕáÐû}ÞWÒõ$ˆ�XÁG¿!1fØÚm:œ@|…ŒK5�å|/�¢û#»­JCEäÔàŽ 0 /e3�€ªªÔ +ìVK0›Bº†Í¿2Yˆ‰òû‰ iäåã­¥rÄvÿ†-� ÌÔ/عÊ€ì; U ØJ¤‘ ÝËÕãÄÄ£3>ŽDI³Ѣ»æx° åð‘Í„À†ÖÒdŠÇ‚í[!yz$A@ìEJ~Ýù²ß’mAæð„.‡‚_$Q�í�Ká Àç)%-oIò—Uà;Œ!Ô$­ 9æOÅŒ2e޾¤ ¬Œ²–�@œóƒ·&MrqõÎ#r;2³ÃvYð$€Û„:‚BŒHè[` "’�ù!±±ÏìŸÎ÷úç¬ÏãÏì›û3�Ç_yÂψö;¤WG†-S•Œ�žµ#G‚bòƒ%oz£<Û‡Á {Ç ôoÏãÁ–)·{çè§máíÌâÕ?®›|qಶÀ±l÷Vb’±\ö€L7,2raz!pX¡ºCº€Ã±=Z=úѲŽBj>Uˆ:{ÊsxŸÌ6‚/‡GD‚u;DÑ’¬9¦²¨_€Á·­<ò�eÐÎ;6ô/‰un»ÛiДÇó lž¹pù»t^C¬7ëרPç—ÇÓžÝ3ÔŸø5ô«ê$¹úuUV;^›ÙÁ£Å'ÛCêèKgÚòà/´ú“Ì ›‰’°œc! }moj7Ét˜eò‚’NK·„ÉáXZïZ‰>w{«ÖèU×`>_H5é:j¢@Ø˴voÉ»ÏÕÿi º¿ÄV�œf4±¬³ bRÝÔÐÔé&¡B¡Ôã6r¸Mßø“Ø©pQ_UÕ£ Šæwœi¢R£cé&ëkWyŠ3½žörám––‚Á‚Zk_Å4)á’oŠýºãú’¡]Eª(“OÜ-d·w7÷Ì|ý¨ÝwßÜ–ýœÝëê†;[ð{)tlÄ5’1•„QŒ±Ô åÔ9‚3´uÚ­ßö5~ÙåI»Úæ©Î%ëE1ù˜N?ö[âø¡œ"ËÒKcnCq§:ÛYU ëŒ}´“Ñ2Ãh�nŒ¦®w wün‘™iü»OXNr‚ÑX5±2óÅ}Ðý�{¬hl15Í“•Þ©‡¤,5�Ýðß±�_æ×�oÆ8ÆñÁAqš2–X¥œf£9ÍÖY´o&OÞ‹2œíP»Ã˜´¸ýž¶Åw¿ÍvS³½=ëB‚WYn$ß·5æ<´Ñ­¹´œ=£F糆ÜÝÊ«DÃ<£Æ—‰¾úî@:Ð2É�¤DÉI„¢gklùÇ‹n ï´o6íóþ“wÇ®ž„MòEÜ�@ô_¢�­¡åÿ?pHªºí?áÅÿxwS)æ éånËA„„¾LðôèŬz# ^¸RÞ¯»ÜMÖc`9Öƒèw'ëžžfn,d…ˆà_zL¥‚`O¾´_Ã88`C³r²wGFÍ…� GR ƒÂ‰1�#??zÀˆ¨úL…Ò˜®Îp…+SMbÀŠ= <^DÊÇ÷•œuc:À?@ùÖdE!rsqUÈ9¡W“ÇZ‘žå÷:–lò†ã¬ê… Ñ…Ø÷ ñ®J)Ào(^‰ãu´S(<ÍÊ[è‘jFiV*K(BÀºšú ÖÐ!‹,/÷$¸NýÈè£Â^o>ÞàùžÓ¨Ñ³Dû-w9’I$„¯†i„‰²ù_æ~úDÍ’zÐíý¯QLY LòÊLãX¦†8eþ N’it\=açƒí?6XQ¾ ðÇH‡Pˆ(ĺ‘A˜á,û‚XiÀ*‡VŽ.¦¶A¸Ú^ïZ˜±\íÈ_iUV ‡Û¾µ4Ä€¹FŒzF hFeí—{„ŠgGö¼:Æ ø3¶^F�Ïü1Ã¥ø0]nk†ºî¦ÚÕÁ…qCZø%Ü ¬Â g8T¤úyÕ¸ɉñ…^ÆðÄÁ>ú¦§žWë%F�‘é+•ó)8Õm€h\aÕ¤B›·jA)¤tƒ¯þZßý°g8L£‡óÐÜq�F,-™ÁÒ™I>–ÏópòññqñÙú�´c»¿¼¾¼ú!5 —ò…·•~¬ µ½èî=”±Þ<Åï”#è¼ÐÝð7pLü5ๆ¯õþôŽëã¹*ƒºÏ÷oùs2æ²!DÌB5â fîµùe„g\Œ²K¶\“hRñG– ƳÕdص# š¸ùÚ^LBˆ×<¤I >!ŸpÆÁ£ >öz]SÝñ¨ýqœ—öïÂQ[¥XX ü¸¹}‚lš�à§!zÖv�Ë›Ûï®>ñÉä5J˜?瞘°¶Õ¹fŠ’{%Èí kå0â6‰"Èeš©á,2‚åB˜\ÐÑp<;Ø@¶gÑãM¹àeÉBâå×ry²g÷ÜÖÎv²û ÍæÁþи> Û„á<€‘¢¢ïØ‚»Bt¬R§…Ôj¿ñášJ'Æ Ê5B4]Õí¦Uù˜hø�OÿpqÁ+†W}Í$J¼ÿÉíÉÃr¬â?¸ÇI®/µ/Uý ìÜòd×Ѧ±t1§Æ­¡–Aª ÝõJ�Ô;¡�"*T×u*‚R`Û0-ü&ºi±u–ŽC³ñ©$š€â‹b{,ïú“�«ä!h^ím¢h%>4½n4͉Óõ4éGP"T–še4zJä¶…•Ê'¡²^²6Ñ,Bá7“<ì¶ô:è*«œã³{GK®Wá;¾7Ö´w5],É2RXy¦;!ìlµä`¡!Št¡ôE·‹H¡í$ÁÏ»‰ƒ ®sÒv§ÙÝI©¼Ç[½»z90 Ù¶»(�Ÿæi«ØÊ6ÕsªÂ 2Žõ'媉Á‘Èú§ l :Ï—ÀTðÛî|)€w�ÐͶ˜~âv€–ÝL¶#²¶+z�1:§r…¶À A³OÄp7¥x-á*D‘ïÊ4ѦýT G3–Ò-æ€KUB3éo¯9úa‹I³ÛÕVLé«CühMȤŽçwbƒ3e¸ÎÑ«A…°{,0ö¬CÏ…+�71G}Þñ*žƒ„ÔÄH.âêíØd—¿3ƒжt©Ì"Íl€(ä®Q /TvæUÊ™S�Y{ÑA¯*§[–ÇÚʹ¸êŸ¡9nõ5kœIã±_2¶Ÿ‹þ9ê¸Ñͧ§£Ãp}jº…tO…“¶ÌÆÒv¾³F”4[»òëm�i§Ž“Å|«WÒHk÷×>¿¿å<+Û�×Ò!�ü“Ñ`MÖa‘³èwNÂ��Ý™~.rnq¥\+DÐfÁ§<°k5ò5¼ÅØãk½49+ùÖ“ þühާ'ÙÏÏ}¡®o}G¹y˜‰¿-@-L.©Zz÷Žä¯ºÊ4¤'Çîîø»#}ÉHVÁʾ½ÔÐp(£ï|‘î\Á,ÿ'Ð4…aù’濟”ÿ—dó¿²7UÍÚK埜üvÙRš F;-ÔE cì¿ð ‰ªªk=—¸žëš3ÓF‰ß×=îf�¬o‰oÑ×™§yÎ7Àpð€eÿcö3ÒV@üµ�fH¤’í/gsk Ô2œääuC”^fJÄ­@ÁR£ÿ+pDC‹æé]‚B°]ƒ¥J-pLJï˜YÚ=ÄT&Ƭ^‰5SNøU•M鱯M!Úrá¶î­Ç‚Rɼ¼C`ëf@#ÀÊŸÈPÅD_¬®z%N”?Œ)£Vœs´¼M4û å4*Å©àEK<°”ɱˆ‡ƒŒGþ³uöû8ÊËD�Š|ò&éLýËNIò21„ÓÐ$qœÆxÉAà9”An'®€¤ÛÖnËõ™×®i@�€RÞYõÓúÁ“�r%ê ]°v½Cj¶L®o “ê2%OŠd�ÓˆNÁŠy,<`¼áôCç#3×(^«îw¥ìx¯µÜu½ìŒEÛÚEàÉÐ5‰ ³—-7P#ï0Ôƒƒ‚¼È‡¦öŸâ†û×¼x3dö®Ì`xéÞ]ÖúzJ&ãíÆŠ³' k]!V„»�Ü�¬ÄÂÐxU˜öâ¨l#L�„hÒ$Pá¸@grjvjKÃ#¥nsõ¼f�‹þö EÓ�C(™bß•“¶$¨~ª¾l*±d€Í€ù|!—IøÆ !*’s ãà·a9ŧ«ó¨}ž�� -8^ÂlJÖiU¨ù¥"¶˜€4­«Ú{ð^<ÿâɘ£7anÏ3®zýŽ.d u„Lšyt4!ÁZJ tœ@K€È:+é`/:Çû„‚& Ë+V;ç•ïÆ|]¤œŠ’ž€¼¸0£èöSÝÅt˜Ã0ˆU‹�Z Öyt­ˆÚ úW®³lÄWÌ>Œ�F4éóŽÓÖ©Àrb9 C£”?Ö¢¡¹”.#ŽoèS) ÌÁá�ü÷›=ƒÓN¦æ„Û-]êNâ%û \n? |Y®Ôs¯ÛA ú:ð›.4Š(˜%åòÿIÜØ¿¸­œßø‘Ó+˜ÊäŒüŠG'ׯ�ÌO¾jn¨HéÆjÊ·û�™s¿2·ïÜ }>¬~4¯Í’HTx¸féÓ§+ø_.uBZ>O’D8/õ`t·¢÷‹uôݲ7#ÙšT KZ7ÀмÆYy–zªšckb粦ò¡ÔþIQ+µÈÄ¢…Hùst¢5yéœÇº[~c�eucŇ›³_ÿ'h¥óœeCç�|†ÿ.á~j“6é†ßº db9SaÛä ó–“uxYS§È‹k}ÛÔœÂ&õ-åoh¿‹l÷M›‘%ÿqÛ’�ieëA¶ »ûæ¼¼¼æêªlšjª ~.ø3­Ó÷�9?_Ë¿ö´©º‚ù–æk+¶7vyýž¸óçõj *ù�«ÚÇ`¥ïê1nÃoê¾ÿ¿‡Æ™âçÆch€mÒÿ¾‡×Ö„õßøŒÖ¥ýr;ÚoÜð¯Ãð_Qf ǃn QªR]ªûò�voÄ‹šœ5C"³$ŤBZšÏ¶]cî¼î°”¿~ëRÒÝsy€:ÓKHI.„ùÔj* ä–cҽ̀È`ÀÍ nµN§P«!"QÇÔK$±Uò§Þ†ÀçŒÕhh &G\ÐgC\5-¢O˜æ¡¼ŸѾÈLUan¡P†)¤Â÷Tƒ²Ôæ H¢ÝÎöÃî ô€äÐiÄÀñéK#ÆÏì©ê©%=l˜" å!�=ÒÍÁãñy¼íé[¢Ñ¯èô§ù»ŸÆ?i Š­ÞÎÂ×ý:»¬Ètóy¹¾cÿ¤,äô�d'?^&·‰Ãã§ Dæ5eþ¸´ø×€­®z�‡Ð0…09KÍ>ï:j™dPÌ(Wxe˜c„£fuå ©·jD+m˜ÒÙ‘R©A´úÄ,D�Ö>ŒDKò‚ÇC+Ö¢[LsÌMBíô¸íJ`ÆŸ.…Ã÷òû`5Ë!)ú8åTñR"è Zª‘"÷0sšÿà}o6þ~ºÿx³XGgßJÕð!¾Zµb.­¬YÆ^WÕT—ˆ±"„›áØ?i£èY_µŽºPÿY*ª×6^ÄÒV_ÚÈ -_ ¥‰]D¿;µuÐù&„4P)Ï}üê`ú9²Î{¨xÙäU�ýƒÅϪ·qQ<*ë�ukó({˜9J«Þú^r/q?Š­í»ð �õƒ£¬Æão'¶ñÕ²?'BY9±¬`,–gb™Ê´«Â z°Ÿ’*v«F>+3³ƒV~†€rìzù¾Ü‚}ÅJ-RArB5¸U£>H`Ä#'b=²@=ìd“þ¡}u 5UV)áHŸt¢ªeÛÛEˆˆm°Ú½AÒV�‹M_,ŠçŸéG´“º©ï¢U"Ý }Ù‰bhI—-å.CÖÖÔµÞFùôKÆ�¹%·Ï(sS¦üìÿÙ÷w˜ÝGF›éêÓÔgsü�mÂvÊA̤ âWîý¶�×p &êþMÙQj'ìójH{‚Ï„­¿�ʦ9¿º‰é;§‚>Ê**š^p¸!%ª¹T¯×ŸWÒŒ�ÔöÅTm¶R¥÷,xÍmÙÛþ.㎻@çõ| ®ÊìX…<ì‰Z˜9ÛÛŒiC&ÉŒiGfc†dWÆ®2YÌCÆ¬ß aŸ�8N2›é�FýÆ;F‘?ãÆµÂ3ð޽�´ˆÿA·N· €22ÉVyó�ï¹¢ ˜ƒ¹>õ*C„Mè©‚»½b ·Ýφ”säk«¼ß› {äs‹Æ�æÑ¥ÍÞ�<Ç«Ð:Qq+pà:4Ìgk§pW$…ìGaŠÍÎs ò§C‘E`qT6b7ÄnúÛbyI4–ŠVÈÆ†Ýæ&$|/z‹�ù‡×:ƒµo¸EN}Îê{A½ÛÿúU8�¹³Çä*nÅ à’¨áŒòFm2µß¥�,Ÿ·Gⶺr’ŸÀ±Õ#£½‘×§¢^‰¬5Ü…°‚iûªY:bFs™ìMÂÙŒí• BA¶Ÿ“Éø¬Þ‹20€ÿã­ßÔ»�r¼ÅüÕÆ:äk+¶`‘ Ö ËMÈx¼9)ïh‚¯öÎ,÷nÎl÷.ÆÜá"Å?Ñ$µ£v•«;1øôq¶ÊÙ«Ë´ñxˆ, »È¨ݵV^ö»üòzý%9ÎþCߦ¨‘jOäž%ËEͶyš,ýæjX`•£þƒ©nê�;wÌŒTŒ8©³kp�+³S¥½lç^XPº‚ñ7²ûÀ†�ùù» É{„cl²}u»tãü‡Åbu; ¯¥Ñ¼£”¯¼!Zi‹¾èq]Ñþº î°WOzÁQ»Çnœ‹ä’ËÎC †¶«rS¶ÀI ʬ—åêP]HµLš:'‰“¦55 Aÿo¨ÜD¾Ùä½~ÐåDY›«·Ï–àm,Ó‚u2÷¬‰­iQ±ŒE+#g± Ûö¤I“Qİê~<5B4Bš 8M4›;¢ü-äŸÛš•‚ñN0˜9·Ö—ã»ËLk…ð¤YZb°ûé#Ú ‰þšlgW!æó¤&›“ŠET ëíñë D"Ñ/¥Ä{š¹*¸|)� M­ñ0ŽdßÑ8C(ÊßKX3°S˜�‡â–0¥%Fäã"Ôžh†¤É ÒÆÑ 8:ò@ç9Ž(� ©„Üé†ð,ý“î­æ2HŒáE²ÈIŽÇ;ùR1ùÂÿž.Ü¥D °§Ò‚¬.Ÿa²ò?CRÆj’‘qªn£ÀÓìK;7 B2Ș¾Á‹bàš³ÊC€ež&&}Ï÷dÛ ýVÂ’•Ïâ�騯�“¤žà±æí ¾ê˜ÐÀZ£láßÌ=–Ž0˜jÉ'²±ë±±Û‡K °&µÊáae© éWCCc´vD�g#Bá•FPÝ=XÉzcàHY\9\q� È-­ ˜Û¿q@LlM7ÐJ6¹µt�üžÓ¾“ÆÇc¾½ íò‘ù=áýÐ�sìÇD3«š ú/ªUƒŒe ç)æÄ¶Am÷× ¤ÕÅZ*ÌË ßäí-½å ¦I›&à¯!um~{í’ðué;¶f�\ìn9¼‹º‰�ƒå1.“×ún)VÜóê»ñ¶1é»/¹ŠO:•ÒŸ9ÍÌØ8Ê�ÜtÅ9VÎ^úÔ¤ÙŽCÝ¿zIaÙxàq¾*Œþã¡ú/·èWævt7Ÿ'·—½ÀŽ×ܧ�Í×ðÛ†˜µÑÁé´¢}#ª«ÔB&ÐåÅ&ã l3ÄÕXœe„Çž3¡³â3µ6òàñh¿àÊYüÐå®—åz!Z¥nc”²q£)´µF0ì}Q½ã°)tw"¢ïë÷6·T‹fiñáÌý„6 ¢&ž*Ô°T²UEâÎ2Û�”©î{¢ŽÉUÓ¬úéSÅ’ނĻûÖý¦dsͦoa�Ê7íÔ ·ºÌ� ‡ÛÓ¾�çf'[Ç¥–ˆ™=k÷¹Ü<>»:-¢à/gPf"ŽDµ‡œþÍññsùÔ$Æ �³?õ¶­ÔvY[‘Þo.0K¬ÑzÙ7*9I«¥Ú�±ÆÓJ3Ùv÷©z/ûì÷Ã…=«ì8Úþc©#i{‚5|I>¼ŒúXžÔTëú\û£ù²ª.žÁøn}hcl–úoœšŽF°˜_NâÑq§¡áúEÿ£ÕsÐþ]Ñ 0ýß=ÿ˵où¨ýïÌUªà AUu¨4‰1¬àPvT'DŽÜºaÌÃuTì’âøa—ûÝÁ‰„·å[¡d¸‹›ynvš™Ù­ Ôà�,âi‹‘�ða¹éÐf; BÌy&D® V®y›qbµ$GëJÑ!žÛ%´_èõ£R4È=:Ae9«^Dr[·J´ŒN©æ·>ìÞÒUOÌ÷‹€y&_v�Ø’á»é«Ûl—fªBá\fÄc9ÅV%5_ªÂÜ‹±¨=/z™ÎîŸX-¤S ²QI‚H”ç³Jägqâê鉯¡üóÔ¿Õøªä+VR·”� ÞîéÃ6Áµâà9Y8Šæ€nÒšY$/díýÔ~"@dø>¶îÏÿŠ‘üÁG7bÀõ25•büËP¡¢ïÁ#ÂImS™ÙE®®ø£ç�{í(2¯›øüGù#>S¡‡ŠˆèB…°Bᛂ7W%<¢šû�hÊSr™;§1‰Z9LôÈG}ªù¯]¨ G]A^ôHÈn§ýØ«¦oînÄÜtïœN+éÃÖ“4�¦n™ ¨úÈŽ>a7ŠA¡ç ˜G FB¹GìûR¢ÙÎ×/Q*Ñûi ß)nž(eÎÀ£22b^WæÓÒ²MUª¹þ‰„�Aÿï ÿ5úý¯’=ÖØµ?lGôƒOø5L†úLh1枰;Š«!³«O-£„C°ˆlô Ž’$=EûÞå&!•nMý¾WØþFàÚËŒž…éÒ`7BBSî¿��åYÞõå‡4JS²@Ô€IŸ¿Õ ˜KŽ¡h3e>L…BcÂåMûC®+‚ÂB,pÀcçn J)"eêî†ø7~�úZ":?LÇÆ‚¼êDMºÇ«AG|Hsq®5È–”¶ö;:�¦¼È”˜2Æ(k^eÂJhð:_€šþ/6âX+8þ)$Cˆö)Ôß·Âè2ƒý By`IQ‡‘a�òߎ|þ^Ù Fš×iŸ ¦ü²$ A²1–×À’Ó-KnµP\‡1Ä�wà”ýöù)Y³>�Òp:™h Û>€¼óL[/hFÅ¿G³],*;`ýJÁø÷0ßQ(¼¾ÆŽ0ÖP%†xùÚ0*á§‘ŸwoGƒ?@sCÇNîúv º¢8âçÔ-4Fakg¹EÈhÆ'4âð–Ü™r[è.`7d7[š5{7Ž�Â=Ç7&O,#¹ú<´èñÔ€É\V„|Boæ¯0‘´†bз,#ÅFEŽRâ>Qˆ‚rlûzÒцy¶1üuó‘؃HØû…$:¸ÂÙBPøwL¡lŸ9e”úœáÔýÁÒ‰ôQÐïƒÕ;Â0`èf÷Ó¤KYÍ…¢ýêV?ç±u¾€îš±òþI‚™@à�·Äž]šØºÇã�W¨~ýðθŸ^ è“Üò柦‚MóÊ›ÿ¶ê|_Íæê`ωïÁü™¯tCûzžt)š£(¥ÄKò?–{­Ÿ‚äºXœ9í„€ß@îVÒwl —’h}å�dÇñŒKšK Uº©²«a密%ÕjÙ¬6,Va“”—˜djÊpµ§F•Ý1µß= ¸N¦�âɽ6Lv¢îÒ¢Á>RBt=ú $xRFÅ�HQYËü{2Å"Ì�¦þ^Å]ˆó›…ɲ^RhŸùõšlO³."“gÄâO¢ ˆœÁß;9+'*ñh¾cóÏãtüTW{áyBžùóYòÖ”eX¾ì/GOÎßíý‹®¢Æ.㺄ƒÛµ]>1’˕nj/æ|ö žþ¼°9áË’?%Ø×æn‡Þ²0`ZW'Ü•õuÀµsètE¿Z!'ôM€ãÕšÜìò×ê÷>ŒÝÁÛ+IMBRÈ4,Ò˜¥�’®ŸE¾þàÑ5dk™:)Åì XáãÍp†�ø¥öºm÷éÙž¦„d³$ÃG_2GY¹f ¹Ú ј‰y„äÄŸ8lObÜGãXÞY{­ ã9¦ Ù6  ¯Rô+‚‚ï},[ —¶~�ÖÅkuFŠì5]*ØOrôÙ4X9w’R7¡úOÌ?ê�h­�A£k̳+¡Ñì±�Ý\ÓbÀ¼ð¶»çRÖ½�3tÁ[Lm �‹¦'„KÝêéÖŽŠ &œQ`ëVt?@5F1Ô)ÁRÌ((põz«Q] Šm ÞaœËG‘s(å*¨¨ù Pš‹*fÞÜðšÌ´ ÓŠ¢¬¿1º¥FÍçP­*òçÚ¥–Í1šA!NúC!žÔÚWxŠíUñjÉþ\y—±¹ÜÕÁ£Ü²wwí½ÕoÖFZÚWƵî�åšb¢²mòÇçÜ�î{~8Ëjä+¬Øb­ÝtèÔ¦´¯¦û÷gÓv¹¦ØZ´ÑËaü-Ó_[½þo:1Ø!CU-A¿”ü·ó#öµVçÉoÎ]ª´»Uiáð 1¯ׇS=:¢ä!©MMúþ¼U%C]Øgyª«wû%7ÜÎ4ß>4¯Æm+üªÙ¢÷X"¢™c ßŸO µN»”„–N‘ur¬]T´³f=JYxŸµnqd1�E§K Ù#%ÇÅØi< žR«°9a_pñAŠ)çØí¼9ܵE„¢t‘ÐΊzLµñJšNçrªÀÒùý÷à¥Mñ¦Í?ô¼ÆªnŇü`»¶ƒ"ÉÀÉ)õ–i0îA´ ¢ P²·ºY ‚�/ ¬»=†Êô�ºG‰rùvEj ¿£}º�2ârS¬¯«+r𠉇}�°Ý`·Ó¹­+A*´ÜË!r²l´¿ ÎÙæ²ÔóZnÞd[k_ZîÃÛÙçÄ7Ã":‡r‡8ß|‚¨/‹T™êÿÚc^'÷îÂU<ƒO0I‰ìK ájêºCpzº„ì@ ëhW1´(øâ+[Ø#ŠöN�™£ç>À>f/ Ü C³/D¢9IpÑaÇdNôßf>-ñœœ°Î™Y_OùGy_–éùÊ៾6ý©àÖ”Ñ�²v¸Ý>k/äÞ�-vhU?γ•˜Îd9�¢ €%‰÷ šðòFÿ $�¬…#Ù@šÑQ<ÇX[*šái$5xˆÎó` Ç²Ž Gþ:1\ø Å«5�@TI'94…ì1çË«=Ye,AKg‹÷Œ=|_ }Àª†Å˲«cû`Ýl™�/ÿ=�T{×g$"bZ$Á3^Ö°Ú«c)Ê3|�3SôÈ¢êhŒÃ¢Ý¾¿æ} ƒ¶çÈå‹{ÉR+ r]ØAû0>}9ßÉæž H5™Êæ§3ªp�Fþuƒ»29Þ–-Ó¨9 ³¸ñÐëÒ›ß}nÞdM�¯dW¥®”_¹Þôÿ�Þ‚Õ4J€YÀÿߊ)g»ÿÝ,š(/Ì€1:G¼Ï� Ǭ)ù^<8 LiÀc#ý4½·­´Ô2X”éç>5šcÞ¶}ö˜²ûØm�¯©(Mzû<©’íl½ÑLš¼¢òÐj¨¤�yÈÐÀ¤Iïì nõ7² n´ì^gÊ�"«¡Îk�N¤Ã.H1£�n0ëc¶Ûþs²³éŠª®ÇHÓ‰¬?&n¶²œ¥Ay’L1!”ªèTóŠPÈ_tX¾B¼Âýpl·Õ²¤èJ;c”7½)'{Ôâ“ñoÑ ×Ž¬PiF“¨öéva•ÒßúÇ'ùâšßú�� Yƒ:8õKú~BõÜ\^ .©›lR…@ A˜e2õÊù»ŠŒÃáÙ³æRÎ윢uê‚Ç»å:v2Ÿ[¹-&½t7¶RýÓù:Ýé w.’ï®Ë§bÀµÇ»šè›~BÓw¹¡/ª²ûÿðQª6îþ£ÐF ûÿðmÜŒœì­þåÜ�â?k]¿YÉWüWxõ\$$‚U±°¼~�((@@Éå?K�xwxzu-zζ¿Þæ¶È ¤$—RÔ.‚“Ÿo^gf§g}h–ùk:ôµc2 °VþŽ”ª@¥ƒF+›ð6ö£ê?VMºŽ|<=n²?ƒ£� ç—¯™‘Œ \\g7Ù°l‡Ì×+IL¼ß –†×ÜãÓÓÑ?ãîC@EV+Ü|ÐX›ï½ô®ÚiôµÑg³·ÜÈÿ}ܘq=í^±U�Í–kñò[ªvˉ:TáSÓö·Ú¨«§*Ùœ�S£Þˆ•Ëû+ΧèLèY²ëV÷AºÉO¨q ¢;;pqbƒ(]4;-dg7'ƒmv¿¬ÁÄ£ŠQÅ–Œ›� “Xû š<t±ÅfÉV׈/!”Èø·žJ2ãlU‚Óô‡‡Cn‘Ç„O¢'-i.¬Ð(ÇWzš­zÊÆ�„0%Hr=ŒZ‰‘ì�»zÍZþfîÊwÍ÷:æŽlØ·œA ²Œ3>3?î®}º‰‘ x;:ÞµíŸÅéüÐwP¸­#Ù%Þ‚¢ûS¢²9[nÈãEòn¤Œo_cs¢0‹øŠ«Îm3j½Ê ¯ k½¶Ì'­dK–™Q•„{c°”œ‰¬†·%Ë1¯í�¬Äv'ÿ ^*ðÄŽgº`9ú(¼™Æ4‘·šñ¤h ýàé*˜E#½ŠL® ç c9烴24•Ÿ‚X�oKV!Þ·×£±ÝwßÒG\¼túʨ‘¶`¢²Å–ò^@k/BñMæ5ô§E�ëÕw|“êìOà_¾åUüz¾æîŸµíl_ãË€›dâÜTAÊ5ñžuãñ‰x8»DÈ‹Ÿ×ðû঻Ó??$îæ9þÐÿ{¬Ô°GÀ�¶ý¿ä1'SCû§$^óZÛoJ$íñ»øHˆ5šhÆ™7:§•†’ Ë­M€ëÌ£˜"JÐJ®ßϘù}ª>7}Jʱ¸ƒo�e´H¸©»óvUvvº»§7¼.5%³Hc|力ÎDAþøbÍ�jf‘W£64;¿4¯š;2f‹»z�ÆzÆg—È�[ÂÔE刾¿íëh�=RÐjê¢hv�Ñ%…È^zùÕwA+Zz%?U)ŽN”PÔ%ëå-Ãø58*‰[ªíŸ9µã!ÄG¿ëfêÉ[¯Dm^YöõÍÍ&qQ®?2Å:¹å�6‘ÔQ/¼¥2DWf,·)f¬é60>Q';jý5õj)/ÔŒ¥¸T1áÈÝ‚¸sKŒ7,ñÊbÀp5�€ïëùî÷“~(‰arkmŸ\ÌÈ-sLR‡ŒHz+Ë"3v#%4ÌW爇æ„©˜ÏñN+¹ë‰R“˜þc…Ù8¥`)Ê:Ûg2‚ãÝj¸èNmµÔ±*|�QÊÎO{°ŠTÖf™ÖPB[iÒ8Þ ÆbŽ/¿Óç÷ºÏËíõÉýéáâç÷ôò} l¡'ý–µE¤Á•mNÙv5IQw x83õx¸:~ö>q>ñ¹ ˆùrqô½™ŽŽ~õ·ËÙ-„Æßßék…Ãÿeÿëj{d ï°Ø4‚ô(Ï!P°è .§Ö i=C¶8„�œ Ð-�aîVíQ) ²‘¨ïäMÈy9¹±�®x= 9 Ý5};�2BA÷M ¦ªëŠ$Þ[÷eª¯éržÚÐ\8˜ ÂÈ¿o×t.ºr4Í>ã’{sss}óö7¶]ŸÇçÎÞÏ<Úq°Âß{‰öÞ–IŽìêafäþØ¿›‡�^¯ÛçgŸÝCÄ2¯þµNžŽN?7§×ç­ ÒP�1ú�¢¥žÿO÷?=øýEÕˆIRʬDÆ7”¾4�ØäJc…ÇT8CÝ=p}Àu»3wù«\:]F’J¨ßßz3Äiƨ>’J[’Û;ÚÊ?Ь¢Å圷ÚÉUHwcCà»<^ߘ,&TÀÆâ`x m+gÀ •ü¾ÓZÑúm›!eÁýæR�{d‘€'„™ó ä×Ô»/g{$-Ãm!ð6x•;ªN¹'5lø·nQ»Ú%×Ä]ŒãòUÛ£e8ú¼C¶K|.\³UöII§’-ãVfКÒª-DuVÂfÌ w(Æå�Ëa¬>°«E-áNLÈÒš%5§1,£fš€�”á?øÆäÑ)¦€ìÕq°½pœ;�u‡U �Ëá'|àáôüj¦ *ø� Ž\÷ÏÍRYAi_æ‹[Öü7ؼR3é}HiUñvßççžÙ×”«ð@ÈEŸQ§o?¡6)rTQÛÑêiþŒW€Iù èÓjõo€«áØ’¹Mk„SÔ©ÿ…§pÑlÒ²žÖM›]ȲSþ÷– ä:é̇(Ü‘‰4dš/ÂÖ°~»À <š[Èäüp< ¬.KQŸIÆÀ¡Óè…jØ›Ôd Í©ÇiÁ›laÁ;6&2{:Lˆ~.šÖtJÚÑä"srWÑ£o76eð ´[…qµÐÚ ’:vT¬« Ú¢ÜP4=¡QdIêD´Q ûÕ Aý Ãô@Á¬�Ãò¦óJÓ�X–¹”-hX´^6¸ŽkŸò‰ä;¥C!P¸ôTQ5sSD£ŸÇM[!â¿y’‹¾dñÓLíÀ+ �¶æb_ £ØvG$©9Ñt—5’Ç tø€ƒ__q¦]·�ÞÅ8„€'[ï·¢GCDävØ™²«MÕZÉ,�û›�±nànÜmÂnt¾wþgŒŸõ¹xÑöÊžZÀ#âŒD 7AÇ gQæ½6•Ðê¯êàD_7Ø-ðÈóåÛWàúHþ@ 2¤Â]~jTÐB®·\e»ŒçÕ@È’"æûP¦|¡–‘ÍÝç·øI|èz?fAñþcØ.Ǭdnœ" �¢'’ˆÜ˜0ø+A.ä® n±sBmjȦóžû!^�üC³œà5ƒÐÓy,9î.¡Ù^š0M\|;†ÃçP:\úñM3È{‡™Ú«`Æ´GÈâ$Áý¾6b•XÒ$ǘ\à<ŽÐ�V” I*xð=7œ²¨nG׊WwZ NÅ:DôdÈ©Ö=ƒÂ´y,cfî4ZÑ.½™Ô¤óÂ&qªÆ‚®â5—¼d;E£XÀJƒLŸ—ÛÛ¬>�À¢gRa9!T¬Ù gÆÙùÐ$3ºµÓ‰Å Þö¹³÷€÷ɰQd›/p.ƒ® ‘ÎÑ2· Å–\ñÜ3L Rý; Úœš|cnVäÓÛ9y#G3(¥óÞ, ­sç'i�&¢@|¼è;¨éÍ\K[ÝR¦bËéh``€np.¸F·m0£e @`+œ`—Y·ÉÅdþa28 òGø�ûóec Úª2!ºE3Í rª0%Í¢²à<ÅH§ËŽT@ZX“Ææâ•ZãJi¼’`‰˜ý»õL‹|%1aµQ‹h 'ƒÆC3R¤ë¢27Žò'ù [/š-/)$U+q�~-šAz;à`€6�Ká³¢¼pÀ¢C"áWåÔ£I…FèH:•�¹ ˜rm!£{“*J0þÔmÄ底¯a¥gç0=7®¤>ŠKâ0ÀÍE)w1õn�ðŒYÞúÛE2»Þ KB2 ÉˆkþïÍ&ý¤F—"èiÝUÐ7f„1<îŠuZùs£áŒ´È»Ò–ßnÒÑ[ÍYDå¼PçST‰•;•H-OåQ¤³IÇ» nÈVN½“Qü££ïe(g†›éh,Ü™j§Ä;”‡‘+¨€5ÎÒBX¢Ziœ¯¥˜G‡v4!rEòdÁÃÉŒr¨Â¥‘ôŽs‰=ËLˆ7í¬ªºd)�ÚjU£YÜ?ÆÓ^ªvÍÜÙŽôI?;d«ÂŸñZ áÌ�Kë ¥tË�”7a|&é®�2ÞóÉ çV.8™Kû‹Sö`vYS0³ÃOÛ—�ïŽ[éà!#w¾ßSó0hÌb_A~x öòZ0t¬ª –3¹�Ù”²�axak�«ÚJ¢!Rzj;AèZ�å–Œ¹gg‚T2”€M�­Þ&ƒ¨r=N²>5ÏŠ”¼ó±ÀÓ»xN’’�g ÆúÏûŽJ?ÚAâü0îÞãwŸë;L ›n'Ö7Ô¨º‚îÌß~ûà®E<㮾_t‹£º?Öö” h÷× �îLÃcÛ§Ö—35h†í†–Á³á%»çÝ3›3•…ì”èk�këö·?1W«q�ÅôiNü7ç t±%} %·Fk¸·C�ävÜ_þ›S "ÆÎÁp_ŽÓf‘´Ò]GNj‚�Ûâ[弚ê[1z¿Ò[?¤vvøý¤ÝR�åÝÆªA®¼gƲJ)”OýBA¤ÉB£.®/ýKŒE�N,àGh¤p7l_ÏûB~Ó:›•R¹ß˜ThÕM3�’ßÄ=£_1ÇœJÕâ›"1µQ’LTPH}Q€Y˜iX­¢–z"Ï5’ÿøh bdD2ª Øô LŸ×31 ÿ–ŸÆú·ò¾~fÇÜÇãtСGJqßë,”½´Ýötmg„BÙ¸l†b À$çï¡kxs§ tõȲ‹s_¥óaÕôô>„2kÔúÀk–j7 Ð °àUC®A�R°ì(œHb™5‘ƒ[žñÍù½›þbÎ4[úè£ÆYnx�Aî±'ÿæ�ts­'‰ª^¨aB'Æ$QbÉ4Üih"–»œ‡(àæŒJb…¥{æZzñêb÷¼ý:€ŠaG~ea�àsòR×dÔ¼hÌ—íÅÑM™“PK-ñÖœ­ -ô”6¡œa&j`EL"› Èl-&^)p‹üñ¿i"�As­ßî/ “‚ý „Ílù6„¯p­½0}¡4ŸÔñzøÅ•œª6™’35Z`É$ _µrt®ûMþl*Ì=E•Í U8ñPÕm8;Ž`š�¸Ž[=¾*¯½s0óXÛÝŒ>•i�Ë~Jó>9õ’«`Wá�:«fEЦ¶¸h­È{læ¥z‡û¼)µªå@dØ S{Ä7 ëµ>±Êi�yèæåö'9}«bäX@b„¡¾Žš?öãcÕ¢ý”Ì’WÊ�‹åòµ&“¸8ayçC7e“8Úñ¥º]’‡0Ù­U#m”M'xpf'tÒbÆ‹P'z~cL6mǦünT]¢ ìô³µêK@²ÍPm‘_áÌZ‹¯1ËË´wàÃHëZØpƳ>—Í¿³VÙÎù’]C‘h·[¢Š~í|oÏ(¯´¥ön¹ pS[ïyý¸¾³»�qÏ‹fÏ�ž¸¥�U63�˜$'SJFi¯“– µŠAd “°z¥5�ºBb5ÓÛ›¡1oƒú�^/éèîAޏ…Äþ¶]|¥T°Õ¨ók•ª9ä&Õ8V|nã4¸zåôså[Ê(,çÍüOQ®¯€†€ªÂ¯aÔá É'sñg@Éò|8„ ¦ù±ðŽYööYQÿøÓ$ÄzϪ¶Rɪš­+%¡¶éý¤ûå‹êÓî8½®èÝÝÁÐn›r\Càn[Ò46ž¸{XÌ%€žœ¶:¶ÉÑSóˆ?£ 0}÷é"”±  ‡™> Á.?lëi3²ªt(Zå“"ºá§;³ªÐ�_0M s½c]†™UG�e›hwu]ʽ¡«}QÊ=V ŒŒW/¸¸DÊúqX‘~øoܾþ#‰VaÍ…å‰pß} 5´qöiÅ…_B1!ëiV˜9µ§ù°eÏs‰œ8Ó°W©K}/žS0ùÝZ ¾3ÉÕ-u"AܼÛT„G«Å‡y÷g{¡ÿ„”× ž1b®à?®1Ü”�m^ÆzÛ˜ÖÒòP;”?z-6š¶Oµâñ×z±‹¾¼9þÞ{l!ú{�‘ٻ²ér p\Ü¥©‘`zÛŒ‹XËÐò–`A`œÀEéæ-PNG»¥wœ-y ëAo$Õ¨I¾?¨Éýk,#ák: ¡å°^ãâÚÙ5ÔJŸÝ±ãØYx‘KʆkæI(x—Íq±{;eJ5?Ûí~]¸Š”€‡Ó$P-†¤&ú$@•åZÄv$U1O‚‡“I¥‚L–„Éf°Ã"Æ©F´`ö%FËȦàDH©þ+Äå½"ƒß¡ÌÊ�÷ ðV—]Äy34)ÝhÃO ‡µŸ›ˆ?mÀ$Š[ud‡o4.Ûqzž£˜÷=]Ý”út�ªÂa‘(lìÍybz=úYýÅMÖÔ¡gw²÷¾[Ÿ05qõ¡Câ%àq\ÿ~Lxj–<@“Z‘ºÜî¹{«%ßZ¡à’ {ïýSœÍg¹ùGz“6�œG»ð„›øþ0ÿëé,>Ë�Þ¢+E滹jI‡piýQå-QGWÓyf�K£Š²;@ƒ ý+¹æ²Ÿ%Dœ 2˜Y³ûTܼ!T�|eÛ+h ©ÎWí×V!XecUÕB³€ŽF)º‘[žzÀd“â †kïøÝ~] ¯–ô\âB9Šûù§ÞÆy\†VX|B9i:7|{Mïð)/¼ênåݪ!Úª«÷ãCÊ8ewx‰m£f©!Û;{­±.jÝÉÑ$�Á-Lª´•×’ˆ�ד¦�A¬‘¬Í¶ík¨Å® t¸}"f×ýo½øgŸáyKÍ.H¹kÌ÷k†w—p‡{¶"䤺©¿s5Õ»%yû¨ñ�Ý<6Ú·­Üý­~M¶fwͶZtt˜ÿlÜU’éÆÎj¶'ÿú»¢ÙºcfH5µœ4ϲ9në+IŠÌV't $ú±+zÚ÷3áIrƒM'—�o½¸Ã#ue½ÿWºútÏe¨Kòâ±ÞçÁª|ç�RÈêSذ@±AÇùi`…që(Fc¾œü:ÿïyêmðß¾±Î~�[ÌI½ !~�•Öµì“Jy×�Ø&׺EB³©Èä›2È÷j/Œµrÿ©^\‘RGLýlØjKÎ ù«”¨.ŽìåÞ–5ï•—×£›uœ‚ÒzùΦU½¸Â‘è× Â~6‡Û½ƒÁ«�-T¶^�ù.›œ©ÀÎÀK U˜µ˜$3©��Cu§³Ý¢‹ES_'wÀ ¹§‰�m2£Õèô)ÒJ¨¹ÎŰlM¿@™’x±QÓéü²nù bPÜî‚dþº]u¯àÆò»¬øRÔü†{ ¶=R]®ãå§dOé´Ì‚b9sk%(k´Q ŠÁ¢ u$ÒÜÂθ|ñgo ªZKwm°³ú[Õ.ˆ'*çœA WÞj•¹±— “v¤5Réû"F*Ç2û¿Æme±é;«&º&Wº;&ue|#ç%�Å•R“�*ÐÌüWÈŸaU…ÚúÂ\u�Áé4÷rºsàtE-¢!ãƒË½MT ä«LB3-2�•ú Á€¾¬â©­±T©þ ZQ ¸´…¤îßQ’Í(à$e(¥u­½¶ƒ˜áÂ]tŽÉr7µ"p6³“w�½ßXÂðÿL.˜x¶¶»‚XÇ%W´Ð²!6Kåô(ÿv8�ÜæÒùAÔêÒmÎîˆOûýû÷Qi¥”ò8€ÚÿÅ!øÿŒBþ×!˜«amȆö�Gð»ErÇ•i²92* 0&›ÀiÈ�1ý' í,Cr9J…i§èsóU'Éë}Á傾•òaëµ#�‹—T‹dr^ª4éN7b1IïþÕ3e¤b’2+ÎÜ…�§XÂ<´Þ*ræf¸Šæ¯”¨Æ"g$¨%t¡T£ÖŸ1á,iÉÈ–‘ãsJ…b‘žÉÂỦT:ý#†ô´»h#ËP)Xiøƒ0˜SBòN�ô ÒÜ¥÷õuPÙÒTRÝt©#IS2gë `]àµ^$-ŒžFû¢b­Ë(¢jÓêÚ¿��kfë!ÊåIç5+xUªxÂI²$‚F',Gü}¼< öL饖Z´Ê¨ â¨[Hw$u"£Í0>'iÏà¼gjÀœö"Jûžx¬WÓ�ZR8 t¼Ó‰õÕþ’�{Éc ^²õ×ûûzìÍ+£%Náùg@n¤¡¥öT²–”LNª¥Àñ�×Oï~ޝoÍ÷CèŸL¼36!Ç `u¸²[ÝŽô�‚0NØ÷@q,òŒÑäpµˆp1D ô$~F´«7£ áÊ'43ºV§œäÏä�ðåHGðgUÊâø•-…W›rpç<±!ÀŸg;Mñw©Ef î:ôÃÃCkþµMõÝ ig×߃¡0?ïvö/´…%oow{÷û Mµçoè¶9S¶£‘£ë�ÛŒ¸úÙ�݇ó{|Ɇg‰roÊÂºÅØË Š�•“ÕÊFòÛf�Z<镃ñƒ�»0pÚµ¢©!àK^NÏJ^܇Ë?Wš'àöQš®~óã»M(´êÙl:•`¥ñÁA÷yöøÅÐ"RÙûÑlI¥’42R8F±„9XP�öY¼�z¾Ðdïþj@ÍŒ‚"Ú`!§ª¨¥´qá-G�ÔÜÇ&UlíñF—çT/z)¯DÃ[Ž™}„1Ú�ÆfOê þo©åäéoµRó4Ï™&ÓŽÙc·oÁ# N\¯i±3iil{Ö¶TŸ �vg3²Ð¾&´3ë|¾EÑ%aMcö–b¼ŠRš4BîÛ¥§2f+BJCÁI�¤Š´ìõ´hB¸5aY¡3�˱ +#gþ%TíM ˜%¤ØCt9DPcîòFnȶ'‘Ì•éØíŒ™Ý»½?–Ô2Ê•ƒf=T>K›ý�39¼Õ½_h“¹.üâ‰K„¶ÙWÕi¯#sÒ&e…,¸¦à /šp\ó©û¯ö2Jëårp Ûþ燤“>°ºÈõ·áŠähÙqkÕu ÜŠz´Þii\6JÀwÆi±¦q8çƒâ‘ñž×BÜK =í+ áÕýóÆB°ç+•hû«íbaC׸*‚e3‚¸�Ä€Qîƒû)ÚÆ�E‡í©wWàB ÇÉ£-—›Õdo3£ ópH“kª˜'›y»�BeȦˆ(¼k³ñ­þŽ{­�v¿5vƒÓùr8P«FòI¦Í–”àxÈÖrJXz��¶ßtf6`·†‘õ]{$'ýK ¿›¶õ÷kW#Äzýø™†!V£á/+ž.}þµW„ÛþÇrA_eí¦¸@ù*dôu‘�ñÃÑsŒí òŒu "ÇOïû¬”ù�òÎоÆ%Hártå@Æ.ÅY´=ÛüªÒ¹)l*‚òU~§á¼‘òãf&�c4*‡—º÷}.ƒ kûÆæˆ±f¤aT@ç gÍ•/Ò‰F}®'#Ër3»ÀŠ`ŽÿÔ:s•”z‘ÍÆ2½ÿ®cü+Úk):c›�¨ƒGò‰*Ç•C1ýñ„›üË’8½#�ÞI²÷2H~–!Ëæ96�+euáÏ„oFáíæ¹|Äù´ÿÏEÊV~oY½Ý7¬‡{€ò¢‹Éì6n›¥Rºeðgß4 ÷h4òåÖíÿÉ÷_¤Í±ä Àš€æÿ›!œì\�LþÏúáÿR?©i£´%Žø+‹òW�TEˆn„ŸÕuT‰.^Nb TA,6±ˆnE$U»ðo5kæ÷õê6#A´ñ¸¾¢îLrdµûùùji‡¨µ –LìˆÕ�I�R|ì¹Izˆ]Ä�WWo@¶N€3çƒóÀp×�Θ9[é>ÉÞÅŠB’ቂRæH.T°_¸bcwU†t¡çÜÄ‚˜Aö$çœDð7Pžœ/’‰s{�È1ó?gÆÄ™MagýâÍí@‘œà $ú¬!=RØäL QŽMƒS®ù‹^ÎéŸ}²A2FŒcÈrD}Hµô=æ öL¼œ" ûa2Gq˜š�Ý~Šxð³Qû´˜r¿r81Ò~©qV8¼h(â oh(»T3•žpðS"sf£Û5E¨1šbÅ„{/á/I1Óæ†@éüWåö¶•Š…Í?…Ág² è“L|…äg‚H#tˆq&†Ù£ÚÒ€©ƒŸ�—+7¶5ûïWàn¾ÞNN_¯¼´*‰È¦C]sÃgT1q¬’$ßÂSòàÒ‡ÓgË{L6œ>î>ö¾_ÿÁþ��—­¥øÙ]�†ŒïOo{§€Ô¾îŽNo6îÀ.ØÄâÔr¯iV¡LfŽ än«�×±Öš¨ u»3ÒÇÂ&Ê·ŒÒH… ÃYIy-y2Õe|ÒŠQ»á®Ü̱ƥéÛ¯Qt®9¥Æ©Ä(‰ÄãN祊p’ ' ¢ú�¨zxä€ÑæY{ñ¼ÏÎq X§þ¨Àñø”DJéÈ¥JÅ®¹mnŸY‰¼4,|,Qg›�çnÞÆƒçS‚²ò$š¤¼;›°~!Üš ñIôCÏüÄ—¸!¸JÙ«EK{‡ùkCM–™ÙÔ�ákÅêuÞËkõxÏ=cãv…i Y ËsŽœLr˜:ø8È^8Äþq:¢…gÇú¢Tú7£ÀäÍ1·güÈà›þœGìôz 'ÜUî%4É�„LšáѨ/òIþ A!>ZÂúñÎFü½�CÑ·�ÀcþA£dš>ÄÊÍ#&¼8ƒÆü-çEJ8Œ—Ð9¤Æ)Ô!¨VÒ£¨×Oô�yŽ”ybr@5ãúÂÍè'ô'òó2È›ùª"ÄN2ÞæžÎ%ÑaºÃæä·aÚô îSÚÈ`ÖØÈ)Aš›3œ],CìËÓ¯ª&gq4‹¶¡†À™O•ãÉÙ‚:·�CZ 2á.r �R±Á•>'ö¹8 ‰(û qrZiM},å­Šz¹‰:Ë¡Tç(c¨5»h†XïÐ]ýÈjÛ²‘‘·“k:ÏNÉUoƒ¾IÛ÷!:äJ¯ ’¥ÊñN5)p¦sfâ§pfƒpÔµy2H�/²d¢17h¼Aëúó„µ²Z•bk~�ƒ}‘NªŽ}Zi cÉËŠià¬u Ì­v Õ}>MÂÛ\J7ˆî�¤V"Ø÷–‚ºÄ¼Lè()©jÊœ¤”´RÞÊ\ÝSÓÊá¹L€y픑Ù^f3x†ƒÚˆcCO²}膄>ížK/S �Cïù\q·@Ó©ÑÙÔ{’Váð‡®ã›‡fënDfèBjç¾?1A %IÙ¢éX»·é2Ä2fÄÅé�[ÃÞXäûºÇC׆ivÕ[ 3r•Iƒ=daWøºÞ\¹ît»7$•çÉcit߃%‘ÅËrm®Ä_ü,¼+L;ÞÖ2#d6Í’Ú‚?éia¯™(&jUWO)Fm/IjˆJ±IÅ¿QÉúeN1*Xg~v@,à&ƒs“âè 9¸Œæ¼bcE qbLÖɬ’a;ÂcOcÁq3é™×…b¾|—Ä×TV”ë(?n3%wDÍzÒ¸ž{ùi§ È=Pÿ¬ÚÓe³yûò¹¾„¦¶è� "œÂvÄ¿ëaú5K! £- -þWÉÁnŸfcófq¬q§asHÆóð\&÷Hñƒ>Öqt¼‡êÕŒtÍùÏȬ¤‹œ­=²Ÿ“ò°Rÿ¶Ž RI¸FY)qYm³åæák}ýÇëèվɿÁ’pJ4ØjˆÉ¦;µ´JÍÆÏb{!;˲eó:0Uµ=ÿ+‡²¤‡ˆ„u¶>ÅŠw‚ÝXÉa� §Q–5ùί£’Òº³¸Ü£½ Àð·ÏòJAڧΘöÚ Ó“mù•Uè 6¥M Æ4ICö<òîñë¥?îÅÄöÔଶ2èJ¬5Á á¦û›vÈ„•v7„ÙëY ÂIÅr®>ir«ÈÕÝ.À‹k0LÇj¦ÕN½Y­ Æ¤.~ü½-}o:«x4ä*ŸlÍ�AUÇ}Zò T,gH¹òåf¼ Ö¥”gÃÓäÉ<"Ï žñ§$ªú;“ HÃÊ&“¾ký¯zæn2ê‹lè–È]ý´îd&×dxn¾�–›}`Õ_,öõ•PMS}®ÎB„±wm÷Z#Eiã®#�&ìççðM@# % «¥ËîZylA'v^Ð�`Õ�³É@-˜&”oèÒœ”è2:ZQ}˜°C é+ÀüÀ%T€P hÖ ­Âu÷°E ÷mc³’ù��ŠUyvª¯D¹…Ÿf»1X÷å´Æ{¦cÃ7ܹÅõÜ1Ôôþ»vì|ò”…­P÷FpF”ìN¯­¦¶C{QŒKá‚ùM'v+}qñ0ÞTsm¾MM³)Ug–eÅ*Õd¨ªdA¾Š§T¶ªØîÉÐW"³˜ÆÏŠÀÔ}¾‘¥W­¨�ré8#° YÔ0—´&-V¹&}�ÓÒ‘õ²vUŠ­Áú5¹-R÷ÊôöSg%ËXÍNÑãöæÉ26&3ça¦HUÈw­ÁåÅ{‹´×É»Ç^ç‘pÉ¥l0‰òšn·EV9U}FÍbŠRY >å^ᅳaË*QP€hªÿ_æá>EƨnÙŠÁûˆâIjN „ëc™!�²&Ї²$®‰j7>&­L3—žx.ïU³îå*í0Ñ÷šzzVʪäpªðˆ‰ ?µ46+F{› ²/RýÞ g±+T‡æKøIæ¼2ˆx&A”¥Ò¿âjY,Kа/RD0×®Åú›“&”¹8®—f$7»Ò^áâ²hVÕXkåd‰×6w$Ý(sÒE– Q6`÷ü[3mà˜ß(Rp³‹9�ç+cN�Åäd’,f?-�½Å©µ÷ÓPïq„Çå¹Ì&|ÇÀ ºŠÖ<…5�•b¤Ä©Z1´È ?^M„w8b:æË«C}Ö(] &ý`T@Щ/UMHò6\c,5 æ%š5R= ‚1—Ó�+tŠÖ$mR¥À×*–ñ·ø7ö�µˆá…Kx!&¼ÅÕ¶Wl g#Mùòn•SP˯p$‰¨)9Y£}"A¥ßŸÝ{†¶ÅñRg{nåÇy£7cçIïfSæHœ¾iÄZÉDèGN¨ï�! Žf™C7ö„…,TôðmÉžµpî)écûáÍ­®]ø”4âìȃÕ:!^xˆÓ©Ök†ßº¶ öÎí½�™°¸î£œ¨�Âï]³´³³Ý ßû¾˜Åj?܃÷™Ðo6¹j{+�c]ÔΗ6¾× ÷‚b|4 @$ 8xP122k“Õ� 2d¾ã–~–œ\–ߢ„ÊpñF—°ÊtY@=Ý^ưaî¨9#÷–×³í®¤5MÈHî¢Jr:ÿk½´>r:Î}�õqIó+�K”3,bÇàè'‚”߉ªä5™y%y3!£µ@4úŸÜÓ ¢Ï +�ä¿:4Ã’Zœ«#daÈzj¡}¦»…õÉÞœh²ïI|]:Õ"|ÜÎðöܯL *‰ÚÆ…f1O†Hw<¿Æ7'½Rî¡æÇe9ú8–TO¡3&½ša½!¹Æžg«)Ø¢”#'r(il3´%:ËúZÂ>¬hŸ¬ÞhÞ£š›öÀ*eìm¹ª³ëN¬ý&G•ŒEv¢�ÛÅ€¤‡c=w¾Sè7üíÑ?…Pð,THhÄ{O3zYãúûàW'-3—Ù©ê*åj§ëF)oÐ7|2ÝÛMJuŽêú<Yg ‚cr(Ÿ+^–1I�lrwh¸ŒCjÂT(XÍž¼#a©9•øéó�£Pð`ª½¾}ñ¯wævH:­8y’VQ�¹Qfà*£+ª!ô²húë*ÀÚ«ë'Ëуpݤ½ î¢#R´§£¤Ñ�ÅÙl|– xpV9É:ï·(?¥îu¦Ån{ÿ½½O’ˆò ìÿ}ŸðŒbS;GƒÿÖW¢´e¹ÅïÃöŽú<ÑÞh¤$iõ™ßîjéˆÔ*M�<éÉÒ˜ZÝlØâH_ò·‹1¡pkQFdáv–ÍÁÔԃ˟^dX‚pžuÕ?ü�;μH)ÄŽ ÿî„îîO:¢dÅ©-b½P©.¡ÉˆNmÙæ9l΀6È$ŠçQÏ<ÜñmU'Vͨ õ ©¤ÑЀõÌè̯_€$‰VÝ›ö”^[Š�åm¶Bê`O§?GÀ†*[�ˆÍRšÞqÈ»_øjF58|«ªŽ=0›ŒO1kX i¶Òéì<Ý‚[’˜)>Ò•®:EMH’†o¨i2ÎW–&Å>]3ŸlUCœM¡€_žØ­HŒ>à97Ì 4kÔ0\Z^u€r£Uk>0‚½]qMÑ¥o-ãDŽ}f7pŒí!,qÇå†wÝ£êÕ†P^}('-Û‹HHRÖ&i¥N” :Zr»ŠíŒ]kvWeòï÷²öçc»Z�ˆóQ¨«}$Sº¤CuXæ¶z|;Vz-éãôƒ¬éI£��‰>'$-i¨TÍé¾ãäÀº›»l|Êþ%Ý]>vaÙ.™«ÖStgn>¨º| ”¤‚H|µâшžyúãv¯§Ú"˜u£ôQjì#W½©�' ’€©ªMuáÇS÷Ë€OUýTñZˆœ¾p%š`~H1�d):ì—;CÈQ/¿Ÿ½·÷÷ƒûút½öû�j׋€‰bÂà@Яçà�Î{Yƒ²í1L§^Åz|ÙÛû§Îù;´S(àМo™–]6Cp_‘+Õý˜Y½6hÒå&_÷‹L[…g¦a\�`ÆP²Á½í0ÞÔ%êbåwÅû×2•ÁH>Fü�ד ý8,·‚\ˆ'õ‡+�žZŸ>¼ 䆟GÙ‹òÇŽ&–ÇqŒ[ÅV^¢ÁÖ3?Ï- ¤ÙuÔë^‰.Ë&+…²Š=téÆº—]ÛïË[¹·™8[ƒˆÁ þß»4ÿ“bz4´ä°&}ã’ÿä§$!„yÁ²¬YÉPáb ѧX»³ÿµ˜mJG=êõmŠ � ’Ä[àܶ�’€h úmî‰)ÓÉ¿5æ\r?+’µ5âL@ßc½3"QJ[¸tigíCó�] ï€a\{zÍó°³GLå!‘¢;’QÓ Tbåÿ�˜‹T¦m‰ír‚ý ^T1K-ÎÉSÑ\QPÝT�l,q?:”PÇûSÕ® ~>˜xCè#! ëO1�L�§àÏ'=ÃÃAE s’�Mo’alxðÄCî‘/$go¸T©�£ž÷_GF_Ëñ�w„‰Ö kTlï^†:¶ñ–‡?ãõ�Œäð–Ó‡s§Lq[c@#‡ñ‰=-EMq<�©Ý›ý‡jâÎÔx�ç€bìNz˜õ-Q Ü"ÂYlõ³áÊ‚””/ýpsbNÕÚ1Ø1fƆ6 eiKçËâçÄ‚¦˜¢¿�9;Òa¶ú—Ô�¢»Ò°™œËOäGÕÐ/�c }þ ÷ ‡{!bœñ3Ž]¥Yè —iíÒE*å²"Tá–“sZ Æ fìF7’ í*·hÝoõÐ.è!’ÜÓ÷7eãÃÂÁiÞk”aHä¾ÂvæÈžéå íÒšý¬Õéö}ªÐ$$Jµw´¹È‰š 9zøù:y:Ù= Œt}Ðd)�v'ÈlX;IÚ:�ºiÚ¨D‚SpÒJ&ˆ—;àœ}稻»1J¹AçÈC!ÌAÓÚæ@¯)Fû9…@ˆË MBPR¾§HMf2.¬ èUÓL|7ôo,‹µnŠÌ”;;ƒˆ`û]ƒ(êŸÞö åw÷c$Ûª[›Qygx¦ã ž, +g)ŽOQjò“™l/²û÷b!¡GN£TBÈøÒo™@7É)1–ìÙþ ¡ðO‘‡o˜‘ThB5¾B>€fuYÓ<µtÁ”ª#ŸÍ»¶´—%È@�§Á£FèH#x=’ð»waoƒ&ÅŠó¡å†!WM"wãΆ)-šðvVÆaX… Í4H”@Yì’zR‰Pü0bÇɉû)#Wº°x>Ú4d¶+” ‚îøôvex× A'VÔçÏs A—ûùY¦pú‰h×�€µÍ.€âôbeà ›3 ÂÒnM„7xwm@ZàëC Åì›üÇ%2£Ð+èë.þ㳊biH1ðŒw”’“kÐÞ›û2î¦+Qq‘8ùà M"b�·ÛÌ$éAúX>Q�ËÞSq„d¢ÜÉP‹úAZò@Tª7lT/îC¬_Ze÷eÌ®§Ï+$üaûÛ’Ñ!°÷Ö›ž°û6ÞÈmŸ[V‡ÐNc…7ökìødl­þ¢w¤RoÅî1686B‚š8‘$® h4ÝÜl}SÍÏvf¹™Xzi‹Öæm4<Ô^™BžãÀ¾�¬‘ŸãSgôz •ÃY÷iB9¬¦™ãÐø¼t'Þ±Vˆ¥K©ÎiÆÚÇÑÖ*aŒXAýäøZP¯ ÆÚ…@‘c ®qî ;X™5§ Éuõ Ü DÓeLÞc'j,èüobDkÂq5<; Ò«žá4R&£à8ò—nêQÀ”µ�ÖO‘„rÐ/\¾&{V÷ùq,ä' =쓇;°Jsáç/!ãW™¸ nÛ¹Çכ.•.RƉH×»÷ Zû º'—ë2Ëô�`]|…ÅZäfdæ«)ÁrN�­ÌTñŽÅïé¬x9QûúC¿J…pÍzÒ>áò.ŽZ7Ч. 2u6¹"n§Ä´öQ:“F–9n¡a†ªkY¡³te³Œ,ÔmèMôA,«7é¥ ›êÈQm™£\)^µy)ñ­¢œºZ˜ùI—®VóçrÎ%Dë Uë+ÜîЪE©ÎßH'•îvôÇüu) 7)&ÓF˜ËGÜæ8„Û�©Ô�”0 òíô<7ó¾z íY$7ׯ›¶§36áUE­`bò›%ìBí|Ý9л%Á�AÎ,Ttýi>õÅê®÷M¶*g´oå¼]²˜)UB‹E@å–9Ûõþ.ÎÑç~–Î"dw]îi›WÉDV –SBEê}.O�íi÷ãŲÿP;D|O#¤÷œHSãã£<:áÊSžãóߣ`¨-Žeòè^ê^¸=1ÆÌÎ3^Ꞔ:f:åöF ØŠôÓy §–“¶A{…Ū_ “@$|g¢šéƦöæý^Љ ïص “tÁº4 ¯½J#„S܀ˮä÷r¹ÓöÆ2S–Gr¥Öe¾·MÞ&”—ãÑ —oÛÁb¦x�›^ïE¼T€ÒÀ©ŒØÏ£ð˜«:Ã)¹"·ÉïÃ32/˘G¥`ÊRÅZq aï¾®9N`+½½³²1šUßÀóX’Ö Â_Ú`îKÏÖí'j›ô¡—:ú8/ÓãóýLÖd·¼Ús…ó»vãʺžïâºöàÂB­ƒâ­ªgéáÌfäÊÙŸOÙ¢�âo•ãz±ã{Q»ÆY72Òõ∴òÍÄ®¶œÊ®*j¢͘jH�Ië„ÚiJÚ°E²·ÄèŠp­Ä–ª ÚÑô¦¿Kõ‡é/ø%DùÒм~&–¯ÿwBt4±7°p4ùoÙ>VN[£�ûoÊ'|Ñ-.8Š…æ²ŽM‰%J±Öd›-8iÄxj”d'�â⃙ÄíæYY_[mxOçÄ$#cnoå” Ðžÿ9Ÿ,<øàþGUQ�Üvµ�”{Jk'‚1û]”xh.J(fQ`™,ìÁàþ“ÍØhgkÐÿriM�Î+:¦QžÙI âòtûTøNšº'I/g­£—§ “ç.µMø%¼õN�\J Øèàã�bÂ<€Ì ws'¡ÜõD¬ˆO‰–¢À8äMFô=5‚ÞÕ*³�Ò|ø?5eG}¸­I‚°nÔQ˜ý4f ´Ó�E=U¤I/©Õ¢8ùô¤Á �3«ÜÄÊøþ_•y|~ª<ßžßß/®–ôÞò=œ4·¾�fû#/¼¬ÑuRf2­ÐA†Ü_¾ßïÍÞÏ/âÄèâdýBÊÑÄÊêòò²ËÑú°«ÊØOÊÄÂìô§û<¼¾OӒ΄Dª�õ1„Á;æ,fýó3Ã@}C2j'&ÔuLñœÒ`±ÙU1蟾=?´Ó­giÍ»ç±×$Tt•7œåPÎ,UY�]TPúe0æ�í•xäÅšìó{¿î.™Á=O.gˆ±@ò¨á‡�Ƹ€_Œ4ØÖW”J\qy¼ßí¿ŽrüÔ.o&–êú>?«þT§E“FØÕ° }ÃÒ°¾o½³óªÞêda÷þ~>¼î¯?âìüù²æV.æÄÈîô°{¼_Ô\€Ýc–Ï«¶�ö|÷üäúºýúÀñÈÆ›¾%²ßêòú‚Æ> Q#¿Þ®êvxÇš¿Ÿ,ÝÔ~W¾ÔQ�~×ô~^Ô ƒÅTØž¬ŸW{-+EzÃâÊ4šäÜÎÊ'›J«»ËÞ¿­cy—Gþ&l¤R)ž½A†c±Ì�ÞÉ„V÷ÔÎ6Šg_¶®‰î¥Ái>Qé)/;Óuˆ é³ýá%ÎýTNš¬3ãŽÐެ3uŠuÏ}ÑÞ!ÅÍgQÏÎêûeœÔ�†øŒÿ̨~Æ8k}¿t^Pù¬_Eм"ÖÙb–™³ø4¸}™ÙÁœ.µû >6¸×w@qkíG•YÀ§)rÏàz1sOÐFª×Ê|ki"žóOz”•ö+uûâ` ,¢Ôìš2ßÂXšóbXx%mlTœ€>ˆîWšî|g/§Ї & ÎׇZyÁ­[4ÝhÒ«¼ šþM9ÛY.ù€é¼°^91€1p®IG×ð¦-Ñì8&4�Ö ¡�yô¤3SªçªpL^u‚³/Ô¯_ ?ïIiŸ½‰}ƒO¦p‹ÔŽ’T¹ â/û ÎÀ¸¯Žß”MQDðý4 ÖY˜Î^D4BfYåûŸþ‹‡oAû¬!å<Õlö ŒßÚñù­¨`´öÊ¿={ç"@j¾±*oð uB‹h_åØ$Ö_Öæü–�ÎG\�¼ˆ†¼DˆQ�þç@"�‡ò~mîö‚¬o4FÆ ïs®°<ňE•Ë(0Þn$ÏÖãµžŽ¦ý”ihÇÃK¶k¶[ñhª0£üÛØM.:WUYÝéI3ñ¯AgµúÑÝw®ÓØl"³Ī:½ U;t—î_¢™@â‘é{A Ò‘»F B¿x¡†‹B>O!LCH¡>ò˜œvÁÅÓq ½;žîiœµ¼Á˜×0ÔF:´ 3ó:–ÉJú¨ðM :ªЈ9n¦œØZ|C‘La: À;ü4|ýÙ\#©{OMÆF†º¤Ò©�Í/B”Å äê”Ȭy¼á§%þˆ´[Q#�Œ­`ˆ)CŒ0-Eý÷ öš-9y²#ŒÞ ~a@±z¿^�ÌÀÔ êÓ9†*쓘â­1°!R�¨|^™¨¤L4ÿ è?lI0Ï÷@q&Ïã�sÅÀ`ÏJƒûxô~I`CIÿ�‹Ù´üRe!ñ#~¡™­w4r¼þCJ3(U§þœbY‰Ð¬ÂÕOù'¨˜ØÊ ÂÀÿâõYë…¼ƒ€ú&ÿh3óYyD¨Õ°(÷[æ�]�ˆ^3‘��óÃÆÂ‚ îcuÞ§ÜF¬µukÖ ´cßïÀ|cvÄy×wâc¾[¾š-ú ËBøƒ;J#æ—¡3"àOx±õƸýåâ|ÂÃnÞ‡)žn‚ŒÆ†Þ?Xïm¢ÍëÉöggí«‰ûS¡SÀ¢ôâ¯ôÊ=sãô[s²áFÊØne;6UVÑuû¿ i dÏS2iýùD&©Ë�üŒ–ÚœÜo·˜dëܦñåÆš™ýǦ*ƒp¿Ù6,èG¬zh³ØHÄã˜¬Ú ÄT8®¨Û­â‹M?ï"qäåSÅÛ¨î;|”ׄ7¥ÃŒ¶�!¤`ñ~ J©„`¾ÒmX±Ã_õçÄòB¾±Õ·WB@ÃN¹ ü<$ï~^zD�ÇÄyÑUvôµ¿ÄƒCuBJ˰”æ‰]>k«yá/Ô�³ ly§¼HuyqëKdm8õO RÁe‘ÄÎ1V‹>³(óN‹gÅOòý›°§Ü…ÀåÍ—X+i‹¬,ã›og›1…sYxøÙÒOØçHÀÂDO°A‚Ám´óEè;Xá_Ñ=üÞæ“ïñž¼Rÿg䥿ÎT8ê ‰|}e')¨õèõ+•„‘Àœ¼ëx"¿ "„DA+¤¶n!΋xÅZÐ Òû�¿îb¯_Lõí> ÓÛü&'Ì5\§ÿFq) šàfUçí§§ ¤ȾsJÊ¡KOÂâùÁVã ‹ÐØ¥êÊÃÒFšûSDàã.‰q/lmÒe(¼�Ò14Æf6fÆI‘‚ÂXKù@BxwÐJgØ;›+<ìÏùoÊûHE». ø²·’ÀŒnÌ_‹\uÏ‚_`=´õ“®NÈéu½ÿhø–j|†]‚YÝEçͼ¬Á´ÇQò•¥ÃÍ9(õsGê»ìwk†ïSXäÕ“ÒˆŠdf•®}†öhÚüõ^Þ-ð¨¿táÀVñthMƒ/ú zhÀŽ’ä¬Hîa[TBË¡© A…Uhii-ŒÇÈ4M×[~ÝsÔ‡Òúó‡SŸ±ÇÞ�ÖŠVjT'8¯Œ3Ò!V!¥’ƬY,§2u˜�¦„ˆRò${77Ó’ÕEjA_Û ¤f”c˜ý*rŒÅò’ÿ-Ô>§<¨+Œßo>Ÿ¡•Ó>b.-Ãä…ÍîüÞÔÑ'MÛÖßTéúwºMë³³ÛNÀ¼ Ç¿§y+žáü¨“.þd8{.ã¿ðÁÖ†\[»~e�6[¸7¢pÓ7(#¥'à`5:Á"‡A‘»^†é$pÁ’oî§C5æz“ŸÎf…q€L¸d†ÉÍ$áÏ™É`„�fAÈ¥­4Å3ø÷ù€óHvA�Û fZ.õ5È|ñ}†89úf\ÝðÑ ònñö¿ÁôÛqpŠAù s97!:烰Ê�Œ@³½Š«tâ#Øò•:4L,^+%Ô:�ëž¹³ˆ²ªÚ€j¡_ÙĽvŠ×á½ BÏò~��5Ðr¨¾ãaÒq±}˜)·Ÿ¿P_f’‡^�Kõ"Æ>>}-ÞàKÀ›¦�°vMft«Ø¼c1@ð›�€Ú’Naˆm ÃÝ�wtˆf÷ Ñ<Ä3Ywç!”ôdY(¡™¡~dÛÀ@ l¶¢O,Å<ƒÑ©{"%ò ­þ�¬S"EÇë ôue%Ä&fö›Õ¡Ÿ±ôÇ�zÀàM@DN€ ÿBݵ=ƒ7+ÄRsO90˜ªr>ãÌë`ጲ&e[ eˆÂ¹õþtùýùêCX»[>m6{ù·3£ñ}ŸòÿÐñØE·@5ˆ©]ºÌjéCt$0ÈOpÏÐCÒGȇd£²° è.€yª2U|ìKä®ÄdÐ a-;9B4åZQ·ØXMÃjyìz==ßûñòùü==•Íåâ½­$ùˆðAgŠÓã=¡*Ò?÷e«m„ ӣݗïyµ75¿öþÜ 0#}ÓH lµa¾,§µ×½½’äËžT™LÔ*özÞÛƒçy3}“º?Ø}íý*,°�%‰Ðа@E7*W-¾Û'(jæª~’šÊQØ>sÙ} jä«ì1�½ùØrÑ3ÍúyÞ^`<ÿ ÄaòP9ÝDKO>e"ã�ïæ)þÎc<øÇ8cA¿O|Y¸*DÛC¶—üäd�Ú[Q1«ÄA‡9MKÞ·ž¸!&wr4�ÿãlˆ«Åõ¬sÌ¥êJj$<¨R@f ˆÈ¶w4ïZáó [b9ÛöäwöÔP=EW:·õBìBqc×$ö¾gÈ¢vü•Ü^Ò†,ŒO�‡!E X{ûø±c�¿9¦þ½õ©"ÛíÃ0»«ŠçòâÍŸéý-ïóÙw²´î¤h°E³Ø-h�”GòÔŽf�‹¡5Ñ:C±œßÒ­ øˆ&È6ZßSä8޲ÿÖ1:hnÞµ&§¤N JÅ“Ê~e2§Ó¨—J³ ׊Úz“µ�§ŒdµÝšB].é¶RœâÁ)ÿˆûçÒ"˜ª£Vá=S:ìоðóÓã¹%‚¿#E˜)…^)¦8v¸Ô‚ØÊŒ–£nûH%ZW3F ”Ôàšª“’©I•�Žr}2/†É@µ!gãÔãù’=`­ˆBW¶[ ”á8ô£ÿy‹‡IÉUõâ/Aƒ”‡Ú±bÑ|ûêåmÖôw"–r1z¨îÞéí[–^müš…à‘É!þ»ž�‹F_Æs_2Á e¤S4T]•—1Ú –ƒ.A޳]/ñ$"ʤ¹Sê+ÀÅ óÞ ·ü\*vÏíÁý(NQgÓ7 bì§Ã¤!M&³ F6>»âÎËì~.”Á½FËqÛ®þb õ|Ÿdó«6sVâÂXYàØ XÕª±´*Td~ L.ez\®l�… Z!F@ñ¨’Ày�Œ úEÿÔ¨#e‰p£)i¯>šÎÚlÓqióí£ÉÊCÆ™£F¨•ye“ *ÕÇ|Ñt lï³�†’jгI˜«5ûn’é#øç¬þ�¬€U�In€IÔ'tNÙŸª@ù³½örª ¿ÙìügÇ+œÁlŸe°ëŽNhìð¤ÀíÄÏû…¯­üIšÞXÇÇ5©»{#SÏk �þПçRMf‡ÉAÄW2NÜÆA›M„6ÑwÝ`0EõçO8´·8³kh³€AËŠý(÷äªJ¦eYÂDè踽غ«6uö™ íV†rò†<,¤)‹Žk/P’ǰwdÍcÁÇ"ˆUq7cÍëh¿�ø T&„‡ ( x“aÃLùÃj/Ê sÊMEêZ*]÷é,Z/âpIêÑYîÂíÐ�.¹Ù (TFœ÷ –3Ѧc'¨¦�6Ò‚xõ¬U“òO»^»ðMï:R`Ýúê©éhlû ÍÐbžô§ý g—œ¯|D»Ÿ¡7ac4¤ßaƒº=°%Ù.[S‡HØÃ±â„^ÁÞÙBS8,mv¦”ΈùzE–„¡ú�ì…­¥Èµaä5ÀíRÂÂÍU3ÔÌt0öQ퉳0C[¨}1Ú–¹¸Ûç^iw8zWÎò'sMˆYrôä:+4ˆp#z.mÿB~‰qD böR’ÓV7MÈe1}ÇšŠmH ‹îØ_VxQ‘fxÌÖºË8T»³.Æ|´–kÍßÞ‚Fý5oŸ9îÆª^Xˆ<γF ¨B/T¸€$A_˜ÊÂxùÜŸ¨J5(;-s³òH±jµó Ô!È-R±Ðê‘^«Ëde9ÞÕcšÖÖO†*�*'=ìHOKE‰’ÖI¡Áor+$ ŸÚé‚ÌfƒÞúÄ_Ø&’e�Wâ{ElØÛàq©¦a�eIz)"�ìYNÞßã¤?²³Iá,Ct`UúWlHM/ö%X JdLÍ#ÇsjvÏ`�ÊNzhœþ²¢ðVì‘ùû1ò:ÊMR?’Hªƒ6bÜB¢(œ¥†‹:8s%\cy‚éQU‘dp®Šû`žÐ’p&ìc"úãÕ ¿f]` F€Ýé‰e(í"Ý|u˜ä¶å8äqáÛ`ïÁÊP"'ò…õYÎÜ÷O7løÔáÔ‡³gø€Ü-÷3j™­m©:ûK†;üë7*ù$DŸÛ(’qM—ݯe8 „t™iYvN Š A´ZIë} J™’9|Kñxf�� ȹ„H}ôºÇÍ#¡êbFèu»}?3šq”*�O ¹Â–#R¶å"m^áÛmiÏ&'¹G? `lz†‘¹¤w›\É2ÃËÚÔ(½Z&œ<ó~Ü$0f7hÊT#7Óz6¼/Ü‹Ÿ6v æÜÄåÕp62 üœ¤DáE+çJ`Âpިȗ|qÃXÈ\,[InÁêyyýñ çÒí–ò”«ÄZi{-Þá ÆÚCCÃnCd¬Ÿ�G%ú•@ƪr™Wý1�P²¤¡x…Ò8\>EÝ™=÷ÖfÒÄÀòP®£n’É îë*pA#ìˆXÚõXMÒ¿å2t,ƒ# '*�ï�'REÁ}¾&LI •âÞð]AtVŸˆ“Ír)Æo´D˜9…¿ñ*‹ó-¬ÒšÕ++ñ,.�IÑw;!�äý‘GAìÆ–¼ißÕ,|¹†ú€ÒÖµÛ„�VŸmP²qÉ$%�÷ͱùZ°¾²¦+°/ó ›úíÖñ‹ ¬TvŽ Ç²€¸' ~hûFà3RbúÖZZH’ËÔ輟ž‡µ¤ÚŠTŸ¸68!Á¥tXaxT º£ÒÒuJ4?‹SÆ2Ápó þ|8 NI>b^›Sré#ÞÚ°'Ÿ�_èrZ.-Ü®Ž!ȸÛ|^[Cb«“É•y…Î=3Ï.¥U3 �½ôº <ÚaÔA}&›(iU„uwg.gÄËv}oóXQÔÉí‹•YÊoÊðž–»û¨Ì .Õ�²Ãu.�ôþ Éù4Zé'@*U� ù`„Ʀ_Ý0òÈNùFö\n µ\ù%--[Ý €h^+Æ[m#\ERadµ®‚nòß)^'{m º\GMß2†…\Úëk[[ -ýSÿ:*/2(á×°^dÃï0ŒZ„_ÓÉŽÙõÇVZgÑwˆh˜Ê[^XNô ¼ó›,/© £µfÑá·¹.ÿß—˜zŒõWüN7;L„ÝÀrä]ÁÕŠSÆóz$ºÃŽÚB�érÛãF€ ÿØ«OÅv„çÿ9Ü+[–nÒDµbvö%wòN`ÕÄ ;ÂŒO˜OÐJ— +ô?X‰¯²œ U€KQN¤D[%Äk ¶� íš ¤û$Ð%ZT€Že컇EmùuH�ÃÉñ€/8A·3ÒÒÿƒþbÁ9Ô÷`¸ævFNFÓºÛÝoOü†³U ý°Bø ÆYш继…¥“Ú®šzö `ýÙ>_wô¿‡éA,ܧì·QÄ1ጴïzÔM†öö<Å]£•˜¢ªw¿î´‚Y*¥©Ï3,³·9²By²ŠY/š1Ðæ¹á„ÆIˆ0@Béé•>Þæìáuº—Ë!ÏY X!„R‚ÆW,M»+?7¶Ýõ:RŽO QHaü.2<åÔšiB4N5h{WÿsŒRÎÇï=¤5>ö÷O´ùåüsâBIó�ƒàèrˆ+Õˆ�[û r_}:mˆøœeÇ\�Ð`9‹Æ««9Úju&=Y῞ÍcEO)!H…ï·Åéu㦰ÆìƒwêíÁ‹àˆ¾HPÇË6â%ߣ;¸2¬ =~Sy‡:(æ$Ãy\HûË¢Éè€ 5Ré‡Móß6¾¹ì¢ªsñˆ£ïfÖØ·œ–fœÐ»I«£èૺ³¾˜§Pæü1ä J8Éhñ-Ô¯]´ê�HL0Õãg?y�÷Éñ� x°ë�.ŽÂã%¦òBÌÝᘶíüêL¬wñ¨zq"ÐÛ.ršP“t÷ÞɰÉß ¸WST*SÊ£&¬Î¶©O9<³”â¹&—ÏYe7æ™°ð4�æ~-J¡7GëÔ<¬Å³ùp1Jvüä®*o[æ„öü«Z-ø‡sŽœlÄÂZ¶Vþ0(í�ÝB2S¼Ü¶ïm&ƒvëåÓÜJ�éÄÓ˜W…¼öšö]1ÀY¹ãŽÃ=UHF(Ÿª¨,´¦‚+NÛñ¼Áñk²´÷;! `š;‡?j,�ú-›ý¯™lÅ>±IÁˆ- -§ìžÃUõMÞ L  �1G�`gÜ÷EÌâf¤>’¦ñqBf²¾²áÝ6ôj×ÝP‰ʧ0T°ûà]ì9B¹¢Vµv#ˆÏÆÅ‹¹^Åî{0ïV«/˜X¦J£ëTÜ6?�ÐF.+ò“9•­ó¾‚òž�KC8j[T0üÊ©e_¡ëž†Q¡sŸ‘ODºœÞÁÎqK«ªæËCÉ�¦ŽÔÑ�Ä3‰‹d¹¦æ06ÑŸ¦hãªÃ…Ѿ²5—šJtbà«fbàí®+¤ë:ÉÙ±=Íh/ïñ”x Üê°0õ¥��šÔ²Z ÖJB‡u¶ ‚ìD<`¹€f 1WUMF•Yr‰ÿœ„ %�¼  µ‹húfQìpsÀÊ**ë"Š6¦¡pvžÂ–"¤�ˆKÐ÷¬‹}Ü».(vu qÇÓÐF¦!²V¼´¦Tˆ‹›ß,QÛ[³k.•ï?Í&œY'P×ëâ2�sD©"7Wn§é”1G”-’a,8Ë‚•”5©Dc-i"·ô٢вO'I�÷ûw(÷ò=‘ªù±ŠÚJí¸¢ÃZX8Î""ß““ A2:t\X zÊâÊÉexˆžüà.ƒždWC_Äþ†–|Â:Gä¢Íð•«)±…fÞßn3PƒQt@ 8^í$}̘‘]K¤¦*­.{ºúÅ�](xwuuº c¦±•> ¸EPkû¼JykXÂ+’ ÝfŽðŽªBA5(ÞC1ër%È–kÀiQòÁGß×7·Ç¹˜‚ƒ£n"d…Ì °�HÝM&Aæ{÷÷_Ö›ZšR*ˆÁàu*1éÓ6–ç9ŽÑ#© 3#Ë\•“´<¢ç8HìLk¬¦N€O¨{H`ý¶Ô§ƒ�ìÌáôÞk|DG™Â�Y*ÅÝPàò•Ž»¹í¡cša~)ŸPE²Êïkª6\Ÿß÷PÛyÅFV8'ø×w© É+Œ„×sC�Îá/F‡P˜úád¼ÌprQxŠî„?ß»$r-8D­õÍ¿^¼8)ø!hLo){œà^iQØO7h¬´W»+æ ³Õ9ÔŽ‹Ü’„rÚ³ Zlê{ |ÊŠêïï[•Æ |×GÕ '&6¹@0M`XLÿ�·šO"Ô0'w¶~&( ]6mÈ5GOv÷Š.Œ:7,‡4ƒÂ;k¥«ûãÖØ«Yʼn¦÷‰/ηöã^ã¸jпú¬ÕÙ¸äzN'Ý9 s]DŸˆ 2@_ä$2¦×¦>¨j“½eÄ :¤\•V¨ºŠ7~"k`ÏšÐ]¬6´*Q?Ôç¦VQô®pœµ¯š[{ }­Ø·’c »ý‹äUœ˜œ$áKväÆúKÁ�÷µ‚‘ÜG»íw8 ‰Dñ§°B�2Hîi“ÎÄŠ"ž³\’žBçBN¯·p >—Ò²[M=L °¦™ˆL’:ð8‡+W;c³˜}m]PfÉõ…¬Øxvú?¬ñ¬ý§Bhbc[ÚœâµÌn— zÃåk<ç÷€î€MPÏ¢ä­þ�HÕÌ™á3x\8s¥Ñ úòZÂÃ?Íæ®.z¢¡Æææâh?O~·Sêó‹ù1þe2µ÷g½Ñh;(ÜHJšÀ¸`/Š|o·ÅŽ÷¿ó¾�0OŒø¢H ú�2]�[„u¥ñyfËí|ÍÑ�Æai¤–'Žt±Ç½ «ÔŒ€þ¬[$Ï_#¤HŽ,ó©×ƒ_àêÏöO©U5vš &ÖůÌ:Œ,7†ª"=é²#.™Øž#˜%…ùx…°!’›YCtrÏiígø$I²öØáË¢n+Ï=ÓñŠÕ)á²…( BF§(Î~ea¬\cl¸Hëì¹Aw{¬&Ó+;i´á7x^IyãžÔ»¾Yn7m2 ‰oÁSÁ>°|Y3ÜŠL²mãø–·VÇn.Ùû3f~ê%Ñ<äÌb”@ïN´M¥r¿÷¼Žé›¿Ù³Ã¶³ç˜bß*ØÐÒ{Ú39²—¢¥Ní„v=ŠØ} Ó�PØÉ‚™š5‚:žÏ—kRd^[Nòœ´™·™Í1e}ÅQ)¶Å­ªÅ3¦ü<œEWåGÞ¡\�…œ´˜álmê¶‹²×ý]7Ôx&ê/…ûˆ6&4««óò>w¢u¬µ[Ã6á4ÿ.· ërév&Ö? ņ¶.¬½¶!H›®ô÷o¨AŸ¸íÏ==¾jà Û,& ¹¹þfÕ£´Ýi¼7¡2ê…ãG±d% Z¯xl¨{áÆ€ï–™câEÂî/<5œôÒ­HKu…$ÚÃ�©Š3ÂöÏ�‹'ÔãÝñ¯Ju�ì¡È™(5´�‘º,Œx eNâžAÅt5âhçmPdÞˆ+€÷f•$³¦âö@ûšñFç‰S‡WÔÞ0“ôîÆJÔgÏŒàøÑxëøŒÅ§¾Ú°kø 5cÃ/qKu ñØ ß:Ý›QVÄí<M?3{kåÃùä!ýû»`äWÆðBV*5;4/Pxàl¬±éÄ‚ˆƒÜH�©ï‘½Ne[-HSúâþ¬Ü‘ràe¶�ÏižŠ5ÞùP—<æÀc°‘0ÎgäX]Òž:oo�ËÆlËèë©d†huS�™:Ô+D7,‚@ºÞM‹Øø u2pƇ‰?–š‘š�Þ”�¶x©nÅц%mõkð‡TÚQÀŸâeóh1†$’漪Šp¯ ³„"ÎâÿŒYi…Ùõ0 îødŸæšÉ¶�`}ê“N¢�]]ƒó1PGó,«Œõo5j±Ó£/Pìßúqöšô]_øÕ‚ñëb%¿µ M眂H@-½(IwøÞŠÁC;•ÂùùÞ5n¼Kü(wª3Ÿ��ʧ\ ˆÅ»<æcÎc‚ÿ;ÎÉ,⊙#×’—ŸLœ"ˆ µ &×–¸ÝRÈ'Ù ’Üv=kvá-0€:á%Ox½ªYŽ/™(‘8µ™2ÌÊ]‚š¹Å5Y¸&Ä�oÆJéûÊ=t»šÅ¤©±�TpH½ÄÕôT‹ÉfÅ~IaÞB^jÅ~ËKL$©Â>½‚ð!UÁ¬Da-âZ ëÕб¥ÉÞnb{qAè×±ª+A¯{qÕ#ÝÉÿûmUî‚-Íè¯ư üñ›€ë^ß½ _aÕ­c ÷q |—Ëyò‹œÿñs+,éØ9­ÔHZÇo9ö"Ì+úú§Þ©Û�>j¼7Y(GÊæJÐgXMø¨¹¾‡˜°mÔf•:?«Ú…8·ä´h(ý½$¾FÉÑK=ز›¿ÑÐwi6b$òôMïá­^lŽõµò挞áD‚³Ð€w7Öàñ°Ú‘3 º%€Mq‡  Äë½JPÍð2uÅò©*ì¿IéÒl—æ;•N6Áé Âä#;^gBîLºPí MU b�s#6hì�šõ—XŽS!·Oz•(&{£†R³ãð-¸¥óµ#÷¤çúXÖZ¬ØøOÂ�uúõÝ%-;U +%h|‘#ö0¹†�nŽÌfïxÑM!TRù:™iH=³“~L³‘øt6í"#þç[n¦Ž¢n’»Vë6%Œ pQ«ôäòŒfî&#”&Žf’ÎÐÇúá,iµ ¢†¦î“è�ŽÄíD"Sô–M™õ顜÷¡²¹eZÀ³Qµ¼/áX¨Î^4qA0¡,/D�êW™ÒžÐpŽûÑ ­XØFYÀ�K¤±ç}²2gMpÿQC…—ŽÊi�϶¯Ô2ãVߢ .`ÐjÆ£+ ø¤ÀS½"¿ j]T¤ú�s‘ä÷J¼„À«jÏcØüRåãO·ÝÈ-ˆV^R©M¾°Í8n?¯§óî6aQíM?"PO"ÛoA«Žûb^•.ÍPšœËój TE””D§« ˆ¬B÷Pâ­Sâ^˜=ôQ¨0:.§Zo T)i³X¸žîºŸÓõÉE»ht£­_k� ›ˆ’½u=€Õ„ª(|fó^³‘ÙtUÔjq™P ôæG %óÙvÂY•KK°¬õw1™<R¨X�Qª¢Ç-Í~UP± – u\·˜Y½ÉÊå…ñ èTüV~x”n34§ðüªýT·ÓÌMCp¹iá@!›rŒç¼–”ƒ|¤\Ûýc¸yOV{c$ ©Ä9ôŒ0 ª0Ž}ÒEÜãõ§¬5�QG­ zšpÅYœl9q)Û5®£ÆVßJ &•k1š9¹O#Yùzã¼wôúVÝðßÁï9ÚqâErý8eÍ@ßlúuÌÎeÝÇ)ìƒs˜PÊúò+N£|c—!574Ïb,í÷Ž �m˜Bê-ÇlYýº'l£Ô6ÏPŒ`ä'��f‰¢|e×ì¦ãݹ§èö,HêÙ—jMf™Y¸½óN Úú­ñ>LóÞH‚º‹U p<ƒ�ï3¢Eï4‹)m•J ÄÅ%𥮉”j*”Üû™å\Vuk 7¿ß æedöÓêZ�±@’{‹ªÆdþóIãË Ñ�£æ¦9p‰>†há<®·¦YOéKSÈb΄a×>õØ +$=•©ñ’ Áôq÷#ÄPê¯ó–äv&7‰”-�žêALZÍ[ëRK_G² u›Ñ3¨T©rŠ ™çm b²&©Dট'hµÖ{_WUÒÖoE[j��«ƒ“îr~BìŒÃ*¸¾]ÄúçÓT{!ôáæŠÃZR�Ø —] dÑwáðÂgê"Pf&¡­!¯zÙÈJ»ãan¯ln—‹°DvoïóØç­â«¦æ´:ä+7vä¶J6Þé 3¹¥§ÍjìjKY䀰¢ØÚ÷*B Ô¦¨pTˆmN]ÁK]5íÏ–%�i(QŸ”“efx_ô$;4Ô,Ò‡¥Ž ›sUwÁm>¹.}+MÁÐfòL%`Ú#Z/'9É’w•ð£Bd�!þÉöX�“1HmŠÖ�Ip”ªþà4™RDA®Ö:²¨ï5€(ý‡'4šÐ.ÚŠ¨d1ù p¬¡…Y=‚V‘#+Õœ":Ppã ÂQŒ8„$tÂøç[>•PRá†B*/… |$9Áäá¨0}_Æ¿¿TÅU&*�RqüÉ�€m. ¿}çb]dÔu\¼”¥ ÆOÏU`¿²íÇEç­íÒÄï¦íçã>Ï‹��Øß@!½J½¨ºrrd„„RF-途9©4ý¢G¿¸" õºï—¸ãJ¦®îÛG¬C'Ê$>$¼URÇaÆÐt¤Šþ˜Y¿²pû@ÂCÔ¿ +ù|¬y{äÕ¶ò)Â/}™ô—$�Ø€Û ’Jù›ì‰eÚ3 TjÖ[©úÉÇÅOi¾ß²W¦-¾!BŸ‘!º†Übާ9¯¶qhWV¼�˜„)©ˆ&Ñ]Ï$äŠ" ¹éZaX~™CÉ)lN‰·(¼5\ îìE¿"£Ïâà]#)®)×7ŸIfæ�ï¶÷&.ež¡¥µÂ­þ©}&0uÀàב)ͱЊëÚÙ”ê#ùÂênܾ¦Ö¥ðávtp§yÈì0¡ê#…ªVËÀFyt÷({ÒÜbƒÿ;ï¼ ã˜f™ŒHû|73pIJ¦¯•8GB&øø&Ú©'cCê ¸{¬è§Àv‘%arO|†L“âz‹K‹ÖÇiþ˜·â“_TŽKìÚ<#<š”\¡É•nûÙCå—Uµ(ö¤l|±7ׇáßš´÷\T_íé^êO¯¸qå¨÷?~¾’ä2¼<9ÑŒn_9‹7IušêR•š6#a‡x†çßÀR¢B¦¾~÷×Õ±pþ˜¤E·ãv›wb|À nD¬Dk¨gT—²2ófÉ×€ÉΈln–ß_½`Ë>V#ÚÖ“þ³XðŽ<'v·Ké¹Éne%+š‰ëêÁZ»iY¡/»lI�y’ãÕù<"• @Àé‡dZTÞ:Ÿ�·¯ÚÕí�*eh9I£Ú„ÂüIÎÉœpê-öooÜN[%æ)XÿÔ¾ÉLŸ6¢ÐîxUs’F Ö€²L\‘¹þ–œÞ¾Þ}2USí‹��ql,u™'ü3¼HXÈ}¢ø,@B{>£ŒU3! «NðƒÚÊøFÇ`ŠÚ>wE•о¾wþwxÙĤ?ý½½¶1ˆ'§¬Ï`ÁÃø¤‹½ÅSN�h±±ý�cˆÕ!]o‘pxØà?ðaNãQ×Öª™¾Oœ'_Є/Èæ¦dè0Æçœ øCãP«Z×önÐDg¢ÿÇFñÂÚç•,¼Rkâç„‘JŽ%Þw=Â$Ö¨�¼3�wÏM9ØÜ †ù[­ ƒ¸�*`óµ+\‚ñÄÓ‹haƒó.eoج?Y„MWìJ¦2Ç�ûçd!=0“MY|MCaþ@óØvzÉHÉ!#_9ûx¹øÁ‘�B…z³—/2±�j ²v™¥"\£Ì$5R�|´ƒ¸¢×yuQ×µª�SÈÿ,ðçFS¤u~ž:;ñ(¯ó¸¯º¨ŸAÝ^B¬®ûï¶�q?æeãVúŸ;Ÿª„¾ÜšÆô®E› 8œ£©Ëù‚F®DŽ…ìòw88ßY—Yªæ8•�Ò¶2ÆXç:D[Ö…~¯‚襞wc+Ø«5‘¸¦O„IMZsþJdTæB쪓!M[�R8„Pž€×© 2 ¦‘Iõfz†�¢Ý¦ÃOWÇF®”ìµÍÕžû}q:}“Š›v÷Zê‚Þ;Û~ä xD²^É?˜3kƾi~ðÃ’ŒÊêÑi^g�¶õ˜V7·(3+í[Ê…ÊãòcjÞ æ… ¶æÄUi©HWÆ<§˜A„ö·ö,ß!mBkß(mH<{N�tj&»ØK|Ñ«’4yEäöO~és”òûH�5ÈU>û¼X¨½_ô£X†HÕU’Ï Þ!…S�—Åã˜ç�Ízpt—�¤ëÌÛE ³½u­•T37�û†#…wö=ÚXcbø¢i »×ëúE55,‘ë�Ê0ÒUf¹Õñs_{µ2é ’[jÍu%×Ö`pµ>—�“²ªm¸Ÿè¦™à} 7_‰�*›Ÿà|1¦!bÂ7ÚáÅšà¢4>ŒÉf-ñ¸}Íמ›àSjèÝLå�)nIþëä@nô¾£�[':‹ƒÐÚ™�V$ŠX o‹ä—_ 8¢æ“€Ÿÿ–|s©•Í}üŸÏ&BÂÿ�U ÿ¹*Þ¢ae·Åþfo¤‘ÝsZtÞúg� §3X›Eʃ4 ‹ /Ä—ïŽÜÚí}åO&î\ý&ªÎõtÏ9]œ&ÌŽ(ŽIöï¥LWÓK}{aT+‘x*J‹*9p²#H¨.^‚R—âÌQ.Iáô%Af„~y�ù§W¤,gÔ�‡3(I ¯ÖÎÆÆ²„?7a—޵0oaOB¾ËOJ✑ïD`ác åf­p.Å% ôìËgçfw£ ™¨�òšh–r«FHÚèÚÝÃùŸMñGmSßDM/ËWË­§UÈŸ±.E 2F‰±ƒ© "]ždì[$„âOˆJú3Óõùô¢õU(›0¢&"\ñoŸó—t "RGÈ=ЇÄÛÏ¡\28y†SÏwÈcîš™/`ÇxhJ:Äû0†^HD}š VÛŸ�÷ 64¿œ¨2-—Á„ÈBð1R±«�äÛ/¢áŒ'T™ ¼a§FÑ}¼ìühGóú¡è‰.]œ?}_Á§n�÷k½T£K“U©³fÓ&Uè  ½:zúÂd‰æ�²}¨±G·cÎñéÍš^ÚRŠž?~¼ÿ‚qóuäÉÞš¦ ×C7 mK=b /�Ä›ù×í_`'G !L˜�âÂ! 듃ŸÞLè·çż¾½¾ù®Hý›(qwhÊ‘¥#+zxvü´ÿ¹¸ÛõìºÚùÕ…ŸâFC �¤ ©Ìÿûŵ²oí#üóœ òþ®›={7­|$l5LÌà?ñ £·°%ÐKI¼cáø÷f G�O>o£M_ª8LL°š©Ñ2ÉÀ_Ñ[Í’ŽûÚÕ¸Wÿ~lF�·º‡Ž!X.7iX™Ü_§ °á3å@11:‚¤ë*U·¯×48Pʨàm лHq\nEp`Ä_Ñ’´ �Óé½Û5ÿ�E4ÞI|uø“Gp˜Úž=ëחͧ­KK[vˆ¯ˆX9í:¡l'”žQÚ}·¸_èûƒ”bŽüKó{Úó‡a™o‡TÁe²7ø”GÂ4žÜ,oÁ9œûTõ§ò¸jϺŒE_ÀñÜ�hP~jHàôÏat�?i™µÁñ¦µ½OH|™ñ.ò·&S¿É £|°öµE,f â¸QOÿÓNéô±k†˜jèX³ìg%¡©ÉrBÌ!ÿÞñæÂ·b?‚ #’¦EÔ €@°„ꂺw�¥®™ˆ\õ®{³Kd÷,2Kò‡ìÀÙ^fJî".ÒÅpsHÔ ŸÓ…‡ˆ _#F B6y8�ò'iÍÓp½£ Ð–I††ÎY~TоX¤€`þ‹¶8%ωûdYØ!‚ÊQB7lÐI�Ðh��FȾœåíG\Uüþ\,Né‚×½šØúrö,¨s‰œ#!x¸¹ïz²�~ØŽ.,€.²«Ç‰’Ÿ¦áOqi,ÕJE¤02ô³�Û[ã�t=‹ñ$­×JÞ)V³U”yÖý…�œ×PfåÔÛS655ÞÒïi–ŽfFŠìu\sÙy›k‚û6:k—XZÑCgL~ ‚‰x2�2ÙevÙÅn'å$úçOÜöN;ÞB@˜1@n‚ñ¨2óŠ=óšSõQꦯZÁ«‡¬ ŠÃ±(êûž’U!ã´Ï¿ØEºc¬„¢…ì *Š9eó�¨YtuÁ²|Æc~¤L'ÔHr2ìtIÛ­ Bµ0K3{ (º$U^`šQ÷ëîàâÞD]ÉcD9iLäAÈ]ø ðͪTq ˆäO™Ë§ê‘LÜ_Å­K´lþ|S‰lK @RLŒJŽä ’ðÁÄ ÿ¯%R^ëükbÅÏ€È Ï‚Ý¸Ê´c÷6\ÞGGyÎBe{ç#ÝÔ0P!¹Bm¥”Â÷¯e\ޱÃ5¶{xCËÏ1ý?C ÆvB}#iO/–JoÀ›&"y*dæeœ¼¢tK™4íhwõŠ-¹xú!ô´2‡G‡NµCºßt÷{Ý~‚慨H˜C ª®Ghvr]¸GË Å¯öä�÷W`íäYzmh,Aƒ`A6 ÙÈñúÈ5&jQ!ý’·j÷� „–nLbò¬èΣUScÆ«-¾ÛÄ$uðL$‰ü*DÉÃÃýêg¼p'Æãbå¡Ëƒ]§ÏµM0Þ HÁT°iøÄ²ÙÜYõsÌŒ,LDö9½ÔXÔ{E0ÓþÛ—Ò$‘ÙBÐ@V.m 9ݪYƒW+µU°Tz(£½Zñ”Ì †èé)§Ö ÙòD\Qk'ápñó‘'«²ê’ž!ß¹Z�“¥ÚÓ]“̘–‘_¦¤¬ ÀÄ–¥}p¬\¿Î£tš7½Ä†úLÀJ…ý…$ÈÌÿ¦&0ìÈîýnYÀ0î•hŠ…?†»¼:~»<ëa™V#ZcîúUh‚‡Jù“øvñ6È™FˆÞö.¦sJýk×5wFG…àʈe9(9TÎ1ê÷İ<*íÙÜ�{K9ÄõL�Au)˜w~Ò­íîq œ ™=ïK‘ (ª%jÜ—Øi8ÌØ|Ÿ^‡f qò´n.$7Í×½`�1vxi42çç½AËž„NR †ê�SEyÂIõljç³uùBõÃ|¥_â±;kÖ‹^UÆbÑl‹Ó)¸`3 I¦´°iÿ¨ûÃ$Ž/�“zÍwÛ±}ªkÍÜ9ª±Vo[<|„<‘"?{�(���eÕÉy¥\Rê dÝtP©JÞÑ¢v‰ÅËc²Á*»tÍ�ÝòYë³5$�¨Ô°0Ó®G™ÄAcª&ÖOÜ# ”W^]soì8ðDdå#ᢡF•1¯`–y.e^ ¨Çd@³àªô7°�uC†Ÿàgq‡¯ïW *ª¶üM•Œ˜ô.í…[0öeõL·Úõë±ÈÃ#�±æ]&D¤eö&ý}�(뉷GÃ%�U Å„à|w¸úÏ6c4\æeÖMˆ Ýßf”‡_t\Öi€: Ú‹jÚè­.mâ(ñîÈ7"Ô²7SìŽr‹V{7oB Zî�ÒžB­r|ƒ Ôaƒx²“Â¥>h1¶Ï�0Ö3h~}�º}v0¸÷{FðÊîvý¬†å]²vŒ¿ñ}Ñé>”ºÒw%ÝèV‚·nTç:¦1*dÏ&+Õ:¹_Ø%§8& _ª “7<ºŽ&ž)(eé[“£6»› �ý€!ó£pTªÅ¯�X ‰f¨c€B® høm&”à�­rW„!Ãú]Lšvæ1ZRëCºA;A~_Å7BoÝ'îEA\¡œZNY—Ýè9$l�ª*¬â1Q¤WÊ¥²"¼ÿCJñQ…TqÎË÷Š/)…¨þÒ…P~]¸!‡Vº�cE·†Ëˆ°¬ñ!òûÍh‘@0 DÂHE�SDµ¬qû…k<Ú*M^kgá7rMòS¿Ü„,§Twø=•~x·¨ÓK© È ±69„à ] ¸¿áów«ü(šªO`2(]{øhZÜû«´ˆÂ¤åF>g¬S|øŸ*%º‡­µ{õ0ÿ–Jä—|Ahàhÿ7`ù2_£fc·Å ÿkÛÿw° X•ÝÞšt Ú”kT¶8\Ÿ�:Àù¯YXDØX¿ÂX7ëç§‚­ÔÖÐL ¾ñî¶£-L¬r T]XZpÜò= ±À?ìóm^”AŠœÄtˆÛÕsÿIEY«°±¡½(0dzŒ$@"д(*<°4B>{¬¶=Y°XyóÎa%nçF<"/T{{^Ve DUê¦Ç~mÁžã8¼ÌjÀ–4v/pH÷² Y`ˆ(ƒÎ‚ðÄf¿,ÿ=ä„�‹N¦Ù~QN>`’d½I©¼Ìr'úd$8µö{&  §"ès;#ÂeZS{ q¨FktÜÙtYD1}¢§ˆ(³¿I@± )'l[80)v�Ì?ÆdHmùò7ur¼Í>a˜CøâÔ~E«µÁ¼UxDe —\jÁ,+@*úwxYºZp~úO”‘ºâ81LS{ŽQ>§w6í®Ž.�¾» ^ØÓǽ¡¿ ŠCò"WfPƒ &Óðè5ˆÄ2fÒ8ÃnÜY‘›93wF®ÚZ:´tiTTÃÕà±#¬ÐÎ㈳³KlNžÎŒYÚm;p(ç¿,!n¥Ûùgh(MûqÊ~WMÃx„Ž¢u‡cTÁA¬[P!HŠÞ�ì|[¬Òˆ=‹!¹¾Á@ÃòiÃC£ i!lœ—MûÁ’ÅÌ»0€ž¡   6p±=€Úmƒ¦kï9D¾Y Ⱥê_×Bµjhó»^nÇ>èsW!K+½–¬aõîl.=ÏÞÛÖâ!ûbÂËS}×àsXù™æ�$ϸбn ¿áSÌ1ЬXLÑf¶­|(µÇHÙH?¿mk9J”>ÐqfÃ}#õg /š–«ñ¡÷�}p«ê•ö7)Àm™1s˜\Æ‚•&Ó?[ÄZ4x8BvùM€ëÿÀL²`›/I{Ww´YÆ3[É …çV6ÛÙqQ~�Þª‡Oâ‡a-0ú;XÓ°‹[Þïµù~} ܲAM4€*ؤèëƒçŠß`b(§»M…¸‚Ë �+6õÇm³+œÖüàº@š&¨ÎB”½%ZŘK�ÈõÐ9ÏK  csïÙ«î³c%ëÖc™ž…+—JÒ=3i 6×Ï<ŽÈµ;7›ù«˜ã’'¶¶ÿ€Ìº—ÉæŠã9±R|žZ#«V(ÝcÚÃ31é8¥¹s>.ø[Î|õûÊËVÝ%wŽ3î²;e)äiºŒì£Õí’�Šƒˆ¨î SÆ„Î^Êäê´hÞK²IéZî~Ùžx3Ûšΰ*ÍMšHOÅ¿Ài’.ƒx ©‰”Ú&[‰¥êÊÈŸPÔ¦]ÇnÉQ””M?&wj¿ŠDÝ$Sûqw9lYä%FÅ–ª�Sq%›zÈv²y›„€è |­Gkš†»¨Ž‹Þ¶WØgñ$í‹úXŽ�¼¥æãÚBx(IÿR+ý\ø¿«:ù_Œ[ËqÛ¾±íÎOí{âÒñ~Aóé¶EVõaõ-ô^V8úl-¨ƒ _H(�êûé �Ïb"‰ã‘ïŒ(|!È1ëÚÒ®‡Ý‹„î«�üÞ¼Dm.ŽZnAÑ’¹.©h}¹H"Óñw_¿ÜÏ�@Ц¤Ó `þàLu·€œÞ¾}ÌÁgwÍl%\_¦ë+­%f²6?,~lw¬,A¿zعž÷Û²»Cry”\¶3)9­eíòDi%sé={}#è±?öé¿ í·±Öëú46†~{g˜¼S¦TcŸ;¬%Oð|ûï@ Ÿ>rµU4c&2âQ¤²+Un(¿ØRûz:SP•OŠƒ¸·û9P�«ÆŸ ؃îÿðþëH§Ó¥åjþÏHÇA þÿ7Òÿ-djÿWôoÛ±¹…^½À‘6r’ð µ{B7:àì¤\y7ÜRyÙ¬†M/�Ê =p–®5›J™ÜŽlK–Œ¿±’ú$z€omk~êwNõ :é?À£[�ÍTËTQÚñuÏîÂT)ŒùI~âƒ�$x–Ú�eýäH:Lz‘àñô™&‰rb½†„JiðvåO ,Ìü=|a"ãìÇ›ßN°!Žñ\M»fïXèå@(ó6Í5zÑ LÛdˆgCmÃÅít€±²‘ÊÔSóë~Qøø¼QùRÑ)Óñiû2…�ŠÚ¶Øð9¦âlÿlµ5B¿ÇvÎnéh ÑÍ¢ÔÁì逥A2Ž“˜áQq#|À¦�.=úùšetÁåß2™2·¶´¸�q’]éY ÒûÀZLç {ÔÓ·;˜a<𠯇Å,eD@$z'ØCAS£®`ƒ¦–ì_Àv�¼/eIw®+„NIŸiz �“ª\¨!² —°  ¼¯å<ñÆ+¼¸ºñfsÉÑѡ͊~�!ƒÂ œ;Ž› îr)ù|³£ñJÀÖW ÔÁw¤´˜$Ëï �rË)¢…‡©G€‹a¡ä™êØôêJ‚$smº�g� WšP«`ÇIˆ'—d¤, Š&U\<*®è¥Eq|?QLÅ?ÑÇó�ä˜BÛ{mWTKBiø\5oªªªðjkµú¸e»ÎÌÎÌîŽ5!ž8Jjx.⺆$ü}ܳŸ?ƒ|ü~ xɨ:óZ9ù†ˆµÄ Í[5�væÎÌØ_ÿù†©îàFK`‡ßTpa7|=}_K…%�Ïc„È¥ÞD¬,+q]£Bµ¼Cوߠ¦[Hpð$Ã×á¢F/J¼(rnG©Û÷AT)1Ž XD,½žÉ—‚R¢t«KÔÃze×`J³„‹dâX*韱µðCä—!ffGŸ3uÇÛI-à„¤ƒiÖº)\‡´ @5r$`YÝ9½5°€µSósd½åñA½yO‚‡Ù/„ûÅÅ»«0vׇ43ìXÈR :É[+úLÈ–(�K?‰rÏaÊ”"‘‹¬} Æ[K:é*Ê*p‰­«!ÕLr4}O�¥&7uá €N·¡M€38ìÜQî“áŸ4¸GϘÌH´Ôk€"8)¸65ܬ¢'™%2"ò!Âw#S£ƒVZÜJw[ w¶ ­4^±N×à\Œ¹¨¨�²^èšõ.‚Jþ½æ Ö÷ûmoÇ[„Ñ»]뻼ëÚ�ët»¡tåù=k$ýél!%]Þ%}é–Ò©¶]+o*ý”°8CíL¾V[ ËmM7:(õ†t‹|†Úâ·�µþ@¾†´VF¼Žð#,�9Î!]]Ná¤G_v~g¥újš.·�µ€ö,vÇÁÝÂV÷Óéñª,WòÇ…§çÉ’äNeP’»%èÊ=¨2¿ßPl=•O¢>_68·‰HCþ˜¾×fzVwËU> EžÆåŽ%�ÃÁNSnØhtJýÈoå´�ô[-­&”M¹úÄ…U)f?n)p¶‹ñ ] —ñô­ìCŒù4]¹¡ñìqí×Ýœ]©zt��‹ ƒ‚»ÅÜùï £M ùÎîœ>V*‹•ŠQ¼g|ø!k;ÈÉ“K&ñÓ‰ …£ï*ÛÎJ§¬i�[4Ù)Û�DÒ$©Z×øLOêtÔü.Èì= Áe½­Ñ†Y¨Xáü$oVøv‡¸¥q|–M¶ïQ€?Wq½TÅ{¥Ôs_s�-MÞ5Ä99Xê€ü»  Ž·ø•¡äI� âž\rp†‘)×Mzµo†Ü°­Ôƒ>p§„Ô»Áž{¼Å‡X[ÿIy„AüxÍÁ–ý1}ÂýW GåÙÆ¨…ÿ_ ;šÙ¹š8zØY™ü× á–ÿ›èqÿCôó€!;“[�/ŒýÙ£åIè¾ðÐARÊÃ!¨ ‘’—(;v{8h}囿†J‡<Ý^·\Ÿûú˜È‚ûnƒÍ€(‹o }ÐÅáÌÑ�F쯰jSÁ ý3«‡ V�xxèêØÌ¯°ð OÁ0¢�úƒ£Äw°°ð+qÃDoŠ)ya’{Nt§`÷h ÛôJœ<|³DìàJ’Q_ãüKvÑ혳Íú ÏÄz�ëÅ)žÈy¢tŠ(™d¥ઔÀx7Ìp–ÍêÆ`m�:•üÁTàÁrMìýIÒÀrÚšp¿ž`wÓ,Iô“¨ŠïôȼqJ°ÐÅdÃÀêÇâÆN¾ÒŽ|û‚Í$uÀÚû^2ѥ§’°`%8ÒI�zA’ã�!²uüŒJ^zÅ‘¬Zßâ$èÿazô‹¤xDTìÆä° k.èmض ‹“kÈ�+®ö›Ø±�« ð¶,ñ­ßqœtuRE|VÑ2 kUôà¡öË8¯4óe,hð%.h0Z°¥«_c 46£sÅɲ ]ë𠼙Ѣ,‰=`*œ`ø¹yœÍl‚‚ŽÐÕíCÒeçÅÐø†qØL·NÊúÐ#ÙÕº³%AŠ#o¬ºÛ².…+=¦S°áð†&›÷Å ’ãå;Ô\þ”+6èýk¡m|CÉDzØ¢‰éû¢ðdda6ìJ9j:þCGEEE?EICy¦I¶Fu o9á> Øº5'kQºnýBéz2žO{ŸG—Ö¯¸iŧð¥iA߆ô×l¯ŠA¾ÿAziµ8¿¿#g[¿é3fA¤Dùé¼þÃ麯¶÷ô1uò7#»iŸJí˜ô¿þ™.·¬«Ó"D�ª†·Šðâð-aÙOVl×ó È!ä­ ìMÃo¬ßå/Þµœç7'1‡ˆC¤Úþ�ãgæ±G‘sl½ �^L”QxÑÿLðUˆ$©éd›(ç@m­äÚöFå|cqX‹ÔõÆzuBÑÚ©X ¦£Õt¢TÑ‘»oõé„V‘.mÃ)CçdµNÓ·´’¬üiñ½ŠTZtÞ‹%ù”Jõ¸C¢Bý,1‰'l'gŽÆ<¶'B3|;ï ßo7�ͪå_!Ê_Ï�ö¤#¡_†Ù ´kyÈôžª§¶´áý+ŽOõª9Æ[™„S—pi°†r`Ë0Ï›@N°°0u”™ÖâžùÖ³çcš žT|ÃÎ1§®ÛëÛ$îÞ1\gHá(Ȭ[¨^=£ªÑhäÅZ]*#žH•«ðlãeý AOvšªÜì/º5›Hiö^¹ªeåbñMyeìOÝ5hñ�ôN]�Y-­W¿œ EóÞÚˆ{“ã娝,ë|7³¡¬Ý0…¶·>››®èµ>›¡OˆšUÍpt0㨅EõeF’ÊaÔ>+zqàˆYH„šê„0v¡[­™Íi—pÂue‘ª&+Û—¥êáEÍ« 6×P 2¡šÔÕÔPç…-ÀdXÚû̶%>êeŽ[[E2JÛg½8Ž'à¿ÒË) Vœë˜§ær]è±’?ŠNró l*“g.éùÖí+²šè¤¾SÒ¥Ì7 ÚñCu«î¬XëePÎGE Úš�Qrám(„£æºvCQž9øLú�íŠæ“ÝÔ_ëãÈ�¿[[T%ºù×Xo@JÖÐHPT_+q® Dg—«,ß&.âŒáÔêmûŽþkȱÍ*õN¯.«ã×Ðiï$†ˆL'Übäƒ@.£ìzgé�[ÜŒiw–©¼(‡h·Ñ¥€ŒoË áhµ¸ �Ó‘[ZX @%�] y³Zl4?Ç=˜gMxŸ=öÙ>“ô®Xö¾k·¹/£ìjZ¬?ƒfØÅîÔˆxè?A 8W;—¨µ‡So'ÕßFj­æ‡¤'^5ÓqãKîwm›DðŒÈ¸ñvàŒ°ãª¯—¿Ö/J½�k+;ø/–ÓšÒêæek¸£Ä�œLÒ&Ó§��šÆåžËÐÖ‹Qß�]”?Àÿª3Õƒó¿éÿ±š°ÿëäÅÿ¦3ÿÓf„üÇfl±ÃûÀÅû¡çó Õ:mÝ‘�9`Y®Ï‚y@š[";E‰�8 ýGd0O¶TéÜ9²9œNå98�ÒI*ýÕKþ=³¡�Æ~ÜUh WLÂk�þ@d»Æ \ŠÐVg.¶¡ÄD¦äŒ 2§C™ô[æ´výÇe o~Ÿ‡Ë›ê6h�/ŠG·xŒÚ†¢ž£ ›‡HBñò`¯™°ÃqÌ,–Ÿ Jµ<¿¿C�š/ô‡( DBM[7lÎKû?1!‹}‘B¿êWHÅ7ÏéCZ-w77O;BŠ!O ŠQêzâcÒ4…Ë6Bå´Û#¿ 0Nù"0PšHü¸ ’D "xâSï�+MOô„Ëë�©©¹h_VÃ`¡RðÝhB�¸zJpÑŒk×ý©MT¾Céàdudaå„¢cV³ÇmÔ°„/Ÿi ‰å¤] Mí¤¶`gÅÝa\†&}Œ%ÀçKz÷…‹÷ÍåÞA ØJ7¶ÿÞ€Jò˱Û7#•óD‹!Ér¡h†U²!Ódkòw ®¨u‘eU™•ò‘·¿SÚ¼j™1ÝQ,"^:ž”§Ðt‡�&ID\À†Ìõ`N#J\h¹” o.†ì…Ç•å9V›Ø¹ßÏîû5b¸ù¸ýc6V«TºÆ�þn34¶d`Ú5שÍð•jJø�(Ý<�ˆBlj¤Tºµ>vž"®OCÖ\°Ÿ… �W¼Kè)Q!vÙÕ §O•~µžTÆ–í÷鿈ù_iù:ñÞÐòk}C>Ï[|ƒD$jÕ†’$À¬rsXõ¨J”;”â±-ÒoT½�E ¾NÒ¬ˆï�CŠqÐY(É8E¸"op³ÁQ<x÷ñë^¨1gˆh_65m‡!töpG¶-S¯=¨€×Ôœ¿âËV‡RÈè/§g�/ Fó®/ÝÆþˆ§)zÐT=–_;á&‘N›ß-tG0Åв¼ª*Q£ÍqØïÝD–†YýŽ“SŒj„Rׯ!L„G©zTàɯ|ƒ†¬Ø:Únl›Ã]Yr¢jj«<–*O0wF[*?‹ þÙâxÇu¼KžØc�™~g!)Ø@ÊwylÍ#d¼s=ÂÎôß-bZÖÝÊ ‡ž}ã—qExÐj#G9¨¥Lø&;-µ~‡/VífÑm&ꛫ¿2¼,3½ä«Rà*é$Ììoƒ&ý(Þ%ëX¶èñßÞ_.ßü±»eêW‚X¿kD_8ÔÞ~Ffvö³è¼Õ;@14ßi—+‡{¯H-½¬ [à{·PPp…?r‡JMäkªx‰½… ˜ìo)ãº:)Ôàð®,Wµ¢<Âr};;+¦}Žk®Øv>>xg:»’þ´J&(}>Ï=çHÙ/\‘¼ÓbÝ€Ô~ê#:ˆös]šï72Êcµ|[{”…¾³ÈlÙ†>ðÔP Òñè‹þÚ»ø˜þþ[g‰n?#=€5ÑÿrÄ›;ÙYÛÙØÙþ×l], 'L±×®Êo¼MÙ À„ü–5*b›‰HëòÁFIq‰cèSÖ¡çkìAâ×ßWŸº»þ֤ʘ¦OüÐÛµº=Ÿgf.®`mw_ÁS_~oQÙlDÖ±¹Þ®tP_q‰!3±³â½ Ä4B²—2€iµí…õ¼/Zè†xöƒë�UXýh‹ãw ¨LÆ‚dw Ì››kÕµ§;s2�ëEŽ(; ²bŠ2Æ¢Š#pˆ[Ú¶+|΀Çt‘ªõ¾ÅEû¬â½›ÛD¦ÌÅôîh2â1@�yz™i ,Àc:0JDV¹4YipãÆÃÁÎôÙo☋T õHêk (Ö§3ª€¢Mö`\%¸$õG�Jázºyº‰kÌÅ HñMÖ˜ï´_´0H’Øñıĸ9 ÃÁVº8Hà#,h»þòx§FÉæ�ƒ×U:Ä“¬ üKöŠÅ|¤Ôƒ)2øž"@d,Q\-†ôÛ³áxŽß¸Qþtpñ@eR|ÿÆ“© ž¨Í¡°d}1u ÷tuã‹–ÜŽËŠžžŠ–¢Ü€äxÀšžc!� !½ûa¶GdÓký!Žf&>àQqz°cÄÐîü1-�<3âÕìæ&*¿ �½9Àfòtrózr²�ÿ±áðSÉW#¼e_AƒPÚŒ#ösÍ; ƒ1r¸!3ß*Ö÷c8ô§­˜ê@2ËöjÍÒùå _³º¢ÎIŒ/²jŒò¦ËONj¢þ‹®Ü2FîÌaõx…sÐMÎ�…‚Ì57tkÛ"¥ÓH$<Î"ìüÑ­{knÛúá"HK*ׂkí}b7Mæn|ÞzÀ�èøˆž�˜Éšx˜‰#;3ÝKJK«; Ò|ÊÖ†KÊR+z˜ª!íÔ>ô”µ­«…³}š™@@d.ˆ§…srò|D‚^‚Çñæ]ç,sf5Ôª··›û\l7ú­þпj×ÚW4H.¡ýGL^ÌÕïìoŸM^ ±Rdh}@ר6Fœ —í]D+'�C�Ô„�Nßd²ˆR\%ÊĦP S¬M ™ŒQþý ¶Œ;–á?»ŒkVÒ:j'§××�­=;zÿȪ¾¿Kþ·¦åËæå�Z�ZôØ_~ $�ôW¡4 /:±â"QôØ<#2Â<ÙN¯ /áá #I”í˜pOžWÒ¸ÃÛábóí¼ ÂWº r–¾šË}@|Ï ˜ŠKÊâ%(7Af¹žéPé€+nyœä™�ø�¼_—CøMf€’οD¼‰HþÑ,ø¢[\ð®ù�i¼´?ôªbœT‘Fn b ¸ˆÃ1'xX¡â_,°ý’‘¢0ò¶Çm6>04ü#†ƒÃåìÀö?UÐqr(Ã;dD¾‰ íìç¾Î¾ö½ŸçÃÛÞž–6Û™ùÕôªêU5F�>7!~ˆxe?ok\µ=P\ (Î�3˜‘«�/¾ªgO ÏÁ#BÿN�³1‡Ÿ�q áTó·¼ËI¬X;ªp�¥¶T´ºŽè,*Õ¬ÅtÒW RST6̧¾µ)Žy—Ú÷" ã4!“HTš%±£J`Ö%ð É‘â,ŸcF�a%R”ªüq'íoå×%)‘…•§Ö]„‘ùÖp>X#oÖó ªãæC«¦ôÐG |éÍo“¯öwê­W˜Ð-sƒ Eãú2Ô;ô*»cðì§úß72ÚÆ­#)7i.­ ¹Ž äµzaëOËŽˆ´B£ç>šqF0¨%xkù¢Æ_�òk?ÆD]Í4 h¸p�d{›ÍFê´jÌŠRUIEô—½´úHjÓ; }½§à^v÷$P ú„‡XAõO[Œ.*íØ{^ƒ:ví¸•x°Ü.'²ã•tq£îçs>fÓ/4ö¦¥_K„Ø+>Á¶8¢mFÚ#IŒ_c‰D´\ëû¡âl¼ÌpÒé’p#Íåm”Á¬•ú/4ÌÄÁÁ`Î?åÔXƒâŸ—2â0uwKÏBÁ5µ›zðV¼z‡»²<íså3è}ã‚gb¬uš×A3šX–«7’ j²*…ôboŠå¯Ú^ß§žŸN ÞNnßS…¦�K}.§.Yd¸÷x~6Ž8|®U–„º(è?Êa寭.vWM–„¶MÕSˆ �¢ék”¸“ª”Aªæ§ïn�Mzñ—�Ú`5ZêB²PÆÚ~4šO9A«ž¥!^µ­†ç6Î šf¿cýòáÓê ÅhhôñÇ0úM)!’ÇÜ¢¶.9CòMÂSGn˜àܤ†ž]im ¢4|�R—ÆUÐl�q 2ÜÐÈ9�eS=ÛúøKØS¥«É_¤‚çÅî¾³¿qŠíR3\$öKÝú‰«h$�û0ãðí®Í¬‹ð`­Ò6¢Å,›&røèÛëCÛ™ñËg·YÒÔ÷U¯C�âpæÃ4ª_ÅÊg\Á�©û£“ìp‹Éjy  ¢üìÁ¨¾•^°lM›�ªXjWy«ÐË”Œ’–?Ó���£—éE~›¡¿Jðqk›Yª.Ð-”#€oRg\/ÔzäøO� hœJÑÏ!ÔвLÒPÕö ë£P&îí}ðo–H-dWi%žŒW rrUkDfq¼Ì¹NÐÁv¹®|ЗŒîp§,è–¸Å#·a>öj^Âcò³�.$¢Êó{)7£$"îÈáŒe‡G z¤+NîÜéÝH’�0BÆ3)òˆ�pÏ©õTê ‚mv’Gte¼‹£ñŒjû9µ¶¯•ºMUr<ÝÅ~ «ù”óÝKG#bOǰV~#ˆ±Ïä¡(á/ÜĹ}5d¾(û=­ô‰h<£Ô”UêyôËèºÔr¨QÅRÑ`º­€L¹‰÷]ÅAãx2ÃÀ^BqÞRŠŒÙp„}‰Ì[r ³LÖJgøÛO=ƪè»ÜLóG{vêrÃÝkú‰=Ïnñœ˜#°duOkD9{�Óßü+ÉÇ$c%=ðÂú:ùíg‡gk%DãéÃÛ}hÒ�²E/¡¢zÁ‡¨¸ö·SþESþå÷]>êfôA[z<Ë'T<½´=Η6Ø:Ýw]kG} t6¾Éê˜Ì}¢ºCÑ]FXøã�T@¡N'ƒMöÐj N8= {›å·7=Cê¤&–lÐs áÕ^ôc>ÖB%E–J‘ ^#±oo*(š½¸ðB'½Èòîó ™h¿\&€0s[R–@J}(a§u,¹ÛŒŒÉ"P(î –æå¡ÃÈ¿ûα%Xe '[£�#‰„ÃÓé"QPÍ" týO{‡jG ?�|?�¤¼djKáQY.|UGJ:·”Qö-ŸWzœ |­46ÛVT-�½��ߟpЯù~Öžy½«†Úª5à|§“½pQð¤/¨Yy;•^xP¥78 ;£1Uªc¿|�“Öô®ÝåƒugÓÌpŒ¾ÏLäÄ[óòN9b5/^ÂSê ÄÔµU0vÇQ#©Ø�¤QFx{¥ˆ^ç+ß--Ú^å=”f¶jha7²I¦ß,Þ$@o}žäàyTÒ]S«EVs"Ë cDÆ #o’,A<µûáêpg½Q^?Œ ~0 ~2Ó F††Þ³âf߆ËÁv8J)eXÜ ‚)¢iO!À$H«•õ¤Þ¸ûEýt Å>€<õI�7–§ƒëJ6*ÕÔ‹á{–4;ÐËéHk¾Å çÛÝW‹¾rù^uœ™ãîI—äv­ӹ؄ô£q"öÁGï>´ƒ¥ùÙ9=ŒÞ`eÔoZWÝËòì0bçN£/”QÛE4QAL+…@Vä5�¦ä¬�,Õ¦ØÓ2GJEéàŠ­“‚Ê­¼_”vmàµX¥Þ„k?bPׯóüz¹åÝ�ÿòsGÛ,¯Ç¹=úÑü{…n¸ x ?wà¨Ôù'sE¨I£;Üý3Ò,¼á[¤H‚ä[ÂW9Ø—Û›œ÷Òɨ²ð[®pí× øºÍ†¾¼®ý&X�~nsæ:tŽž#Ô�UK`>)E`[p¹}#FÙs|‰�Z¯ä€‡›[h {}hÿ…³óœ= Rîí>O@a#˜‘>—hZÁ,ösê`Ø…FÍS;¯Eq‡Û=M£R¯§�´¸!yÁ®ˆ2»§l6T’B†ÕÈúïf BÅ+×3ƒ3ØçlGX)6Ô£¬RÔ2“ÇÆBsÂäªÝ¥s-‰äs•îØ¥¢jMÉk)a#"ÅnÿJIm€¿~‹3Pÿ­ÿ:(@àŸÕ7á°òþç•Õ"5k["6„/<Êo}§äaM2Ö‹ò*D­$¡Â€³”œÚñ«�&›Ë#çÁ%ç¶×Q—Þ»¤­–t žG·LLÓQ“§”=Ôˆ‚=Ó¤ó`ÊÒ9èúXñöf Ïdv³�òER&@ÑUÖˆ‘)Ê`Ô‘1±²ˆ ÷¤ÈXQŠu›þ”Çqõœ<" ôˆT[£*yBxTŸ\˜l~ß°ÈŒ%óŸö¸Žql­³{ 3Pëvö..�†6-!–4ê`l %ÜLî—30~{ó#Dj¿5˜&Ûk@ƒNJÜI óéÍL(‚” ÊŰÁƒ*DÐv%ÈvýÈ‹z·âóöñL·˜ F €hLùë“™“ʹ�@Ç óºücG– YF­�ÿ{:cº#ݘ·€$W*Ó€n f‚)¶„-?£—«Ž´®5QýK¸¦ÁOȃBKBRjvŽXhLvæÐçÏÕöÙ}�~r·í i�þU%ôI™|»”š`äSE¨�¡æñ °@; øæÄ ד…ö+ø·zr°«·úÝK'(×ȇ҃ú¯É}ªìá›_‡S?%¨ t#Ýü]…I¶`YïG^éCb ©e_é6¢à�H�rïpÿ¨É‰A¦òdµ/âx†\•Í"ÕN`0’©Wõ�»wŸ?¸üÚêk‘{b»{¢ »Ø£H¡÷ÌÐÒMµ¨¶އâõ¬¾¾¾Â§˜òsËz‹ ‹m‡c�bö{ñ¶vzsáŠÂì~lzÅhµÈòÖ‡OÄmÝ›•J*˜ZÜ‚ÃÚ[â)&ê xäÛäY#SdÉ¡ ¤‹£¥"K— nZ몼�¥·›óãNÂÜ�%ç=EÌXA>T#¦Ñèw¿ÀPFé1⢚h¤†k²©kzqgINi¤ª'á©Nvå0F±”ÔÊ/ѵ!iå)§âw5ÒWÂQ&QOgãã{óòÖÁâêàâ 8V4*YôÓmnFƒÆð¥Ò±LÛ3‚Êg~ƒ8~™‡çêí¸jIpù9´/Ò|S°À5·l ãIŽñÐ"$þi›ódXТ‹||Î3^ëy�¶—¯AF$S§�š%ž{»q¢¨/q¤6Dé|3ÚªêADÍÏ÷)ªÚÞyg|¨T£ôEôÀ¯iéèA£­|þÂß{´ûÕ ÓŒžT—|�D4¯I0vZš„¨À,�‘ôsUkr D+Øþô³¼Uù|®Ÿ†Äí”…�û{¸—õÈ ¾‹íÒǵÙϰJ0¦œ"É¿ÑìðèY«õ%rvF¬6C9¿AnЧ°Š¯<žÆ¿Çý‘rE*™z®²#‚>®Êè|Ú¼ß9²™b/õÜÏ®ú²Û( žÏq>ꕈPíW4;nHÿ^…5&4Ð^¸¾î¶ÍÁ©´‘q˜»íGE \.Ê•†V`l‚¥büª„zò�ÍœhňÃmæêû:Â&·O†é¼äÝŠ^1¼ÖÖþbÈüMPÔÏŽšôU±*-p¥ ìJ–]Ÿ•NàðwÄ\¹¯àJàq�Ô‡UÞ$i0"Ñ…¬*eã„i~CDÚ¯ã?W3”zînµÌƒSƒ�]9­äHëÙ±…Tÿò:{º²•�ýtsb;eëm€ëÓ £;�‹27["“7—å :HÎßÄ{ð×c¢ûÅ·<×F>]¬ã´|,|c*°W €T}vC†Ñ·—ñCËOðŒ³%|¹²6‡¾h=XA˜Å-Á"¬¿_—¶Eyí¾ zƇNË`C®mQ²ñ[ªƒâ‘Ò‹êt¦{µ±§p†¼sõù«…þçÝUÍMÉÕ@ñò•«�íÛb„rj ¸Ž¸°¾�gFZÊje F¾Ež­ž�Iÿ<ó<¼äm¥jW m�%Q?eoûÞÁ�RýýXšn…êW™*À`¼¾ôt¦@E"v’Ë8õµnÏ÷»£×ÂN‚Áý}Ñ¥‡p º‚°i£®Œ–4Lê�ÜpÝñ@&†Õ£pø¡F…¡®ìô]Sÿ–Τ¨ € 殈JÒ½ÙG6§Ë§6Ÿ´9ÕôpIG výµ(â0Щæ[9äK<7Úè×P¹Ómmp ¤ µÉ˜ü:Âi3’ ñQ'ÁÓq—?#‰•ƒ*R¥·“Õ˜;ô£´�*U ¶‹K®/''7mâÏʬì^�’ñV«ŽôÞHŠÕ_R[Tm"ËãW–c®ø÷ÑÔ¯ Ѥ*ÁWÎ=�ÍcÆË S�Ÿ¿•+œ­ Zµ OB�ño¢�3Y¹E¡ø¤‡AouJß4Ñ£w¢nÄc'AŠ ŽøçÛ2&¥‹™db}C9�îó'ß,V´!¼yÎÕ<ã jì.ê@£­}ÈLe¬OsžŒ$´¶Yi@h±L!z2M•a®9�ƒJ‹ßÉ͹ÅZÞ_ïðƒÿ<ñ˃¤ÐÇÄ€·U{„”ŒiL³ßßèytÊU¢2³·�YS"s+ïfc&U>c^y¸0�»’±¦²MÜ5?ÂL~mø,$M_»Oöˆˆœ—Ú9pöqè“&kÉØ¤\ÿbr±JIeOcØ¿þ1óÌ6àºóÔ¦ôl³‚/; �ÿ8εÏ2†•nâ iÙa›lýÝq]‡��â©y¢Ö…¬*ÜC¶ÍN8e“ 3?³Ñÿ.§‹´ëËÛ¡†IEÚ© Q¨¬RjôI�–Wa®ÝœÙœ9[•Æ~˜˜þýªV{?.o,0-_÷F·gí¤QE�™£Ú—M+¥þÅñ¶kÞ¾ÂÞ|55µ†a�ù,Q7$ Ayÿ _¡ugPR܉)gÜ´pî£í§kÞÕ°móbºº&ÿ©RÛÆ½<üf‘gÏ[èKiª’§ãÕ{7i™]Qùô$iå갮騵ýê7ðý ðßãøo Ñ•?1œŒ€êÿ(ŽÿsÒ?¨õ-‡Í…ô�þÝ»˜ØÌ¿îéÊ©G ŽT1§¦R‚ìÀ wû{uòÒctŸâ¹y{âe|-c“t扖/ÉÈz:Êtˆ)Ó¶¹[ÖxŠŒ ækʽX�³·Û6•ýW¸î-íjÆ\äÜj&GÀhÞ¬‘±[Yùþc£unj8G ¦’9–ëû…$«ŠEW{'¬rAYò'7M�¸ôÜ…èr†—¡a^K”ã�ÍÊc|&™{êÔ5“;“J%²ójFVVó… Eüïç´H®¨Ai’tè/Ø=ŸÆ"Ù² ¦=Wó"µ´È†iÒ1P ó(6úØÂiE†­ËA;æñQþ‰éP`8¦$„_/—Lï2$Dû í¢¿£VÒ¢„ ‡_Hr"°1%[Ž0[j÷QÄïÀ¤Å1¦å 8~ÜGˆ?©§›3âVËE9þ\ͻ֘PimÙ. qh6$CÎç“9®­¡D΢5©�ס%Ù˜gÖã|wàä~}p�›ê®£OI?î¯N­.¦ŒŠàÊ ]åþÅ�í’r+¼ÙOÆ+–J^{²óyºzzCe‚›7[]½r["åâG†Ÿ�çà <®ëÕÕñâä¼`zÀɯšh¦ðdÅÂ{@¹C¥Î N¸Ï�qLj â¶“jowôú9ß´`ä–IÆÖ ›sL"eËÈ‹MÏ¡/Qîa/aG˜L«¥�L!³iX"±pý[÷{(è�tEd‚˜þFÅŸd«kóô÷³yµÝÑ0ð�ËV‡Ï§ÇùãzV7ãÓ뙞·µ÷%:`Jfíùùv,­\¬<|HIΔ\µ,¯©Ø2ùò2=¤IîªyU�ô£  �ƒÄ°ª‘š{ì®üÅÍõßî«Óˆ³¤'v_Lr R²¿ƒØ7JüØ,/“¢tB hþ”(ã.½ˆ¹X{p�øB�;ŸPµnÝäHÙ|a_kèÎl’? Ÿ}¦hóÒ»Äqigåü‘_ÏR› s:ºžêºLx—Õ5¿ß$²<ë&-‘vÅàÕ–}yýZ®%Ö&-Q²HlÓøüÆ«ÉÇ•” ˜GQqz뉷9b¦BStýÓð—@m #“ð˜[�š†;¢aj‘QÄ6á™ÔÇB éH¨"íŒ$üª¼1„‹s·B$ØÌ òõ²e±=©�™’Ø}wjp‰žJ�¿J¶<\ËpÞ¹ð#1àfqAäÂD^ Z_©{:e Óù]Dš##¨�ã«�…ØÓ%!Éðý…Jú¥Iü÷0ˆ²<|·7êÛ�‡$õ¦Œ³~ ˜¤ ô·”Ï)QΆ çÅÔcª S?‹°Z<—¡Ì×^4LègÕàQmu Œñ è<åÔfßßö×°°ÆE’öHÅuV˜àäc�òýB�ƒ&ŸchܿЦڎ®´tóðI…T1‚ÌJv¥>ßß¶Ý~˜]eêfc}`èµw¤A­ØxîŽ|ÿBÞxÎÙéj~Ö¾Hy™ d ¹V5~Ñ[験zæÒp•/éAWòZæ¿]Œ¤ àd‘Ø�Iå»±ôFêvÝv.­˜yä /ÓV\é)ܨф2~¡{v�èvOA6‹††¶x·ûA`«GïW™)š@áLý3(¨,ý‡óŠ6»è, WŠ�!`÷Ñh1òM[AåB,â%m'˜‘èS²2'åº�/–�[ÂÂ^˜•À¬°¡ÿF:� ÇȵׄH„®¬áA²O“�ðQæòu}v/‰›iÅm~ÒÿÔ(/s 6A„Ú �#ž+c­,G´°Ô�vj�êÚ=¡wn²š�« ÀR ´-Dy\ Ìi+W1ž Éì g1SƒçQ�³}^ )¨m¼&žû�gyΘîÆëS {©âi?‚]º+78‘aƒ|„1æ/hŒ Y3ºÂ¡ô³ñ‹1Ž¾Ô´×/°äÃÞÓùQ6ƒeœ ¶d ”u6yÁÀT3Y‹Wö‰*î�"1ÉA¤H×gñ��¸@èfˆgX¥ÈĩͽìÚi +úøg:hÎþMA\3àì‹ZÍ×�æ!ì£>™ß"�‹c¨ÒÌšFm"L‘‰S—)IÚkû0¸º�¢A©?\“oA+ ïLkÊL~óybU\Þ:„'7Œ<c�lžv\øÇ(a´"[Ê %¾a´3¹'qÞ+n ƒ5åIÄ´»•üÄ#£šs|@¶ó,IÖXcg”]|âô�t9œ‡÷Ÿå àŒ‹8EsX·ëÑÉnÂ�OÊòUþAÍ%Ñ7 w¶ˆêPHqÜu¡èŽJ;¥¡Ö� Y’4iPèLJaŒ�äÎGW×ý×®xpΠr®;7Hµ.ײÕú/·N:„}h†ç¨ðêÒeîé�k˜¾Ï\dæÂÑCb‡"ÖÁÎI÷ôc§Ã|s'««Üôö¢�ø2C‚u´ö‘9®pX�ˆÁ-(—á}ÁTÃÞ¤‘ä›$zÚ#N-?|ÿ¤§�sk tãuoþI~T‘ÄðV „­L$Ö]³‰2ó¯“Bq0pؽ©�yªèùt¦˜^ |…ܧ��Ÿ•EÖm³(jvï¦3�Êv:æBÖnªžp¸ƒØSšú*R¡Ü�ƃ™ÑìC�Ì·ÊÖmÞUƒ‡ƒ†„²Éo„ Ni(@ù¤Sû–i*+•qkj*2†ðtÔÏéô\SjG_ÀôB ãAÕóÌ1i·K¨’¤HåàüÆj÷ƒ¹I}ïW6U,0Õ-z"÷½‘õ—©cÖÏ×Aäxß³õYëWÛCþr—_‡ô_ð ÇòêjMç ü çî>4ï “5;w{G!‚¯±J —÷ù†ë%¼kdÁR¾žqŘ) ×lˆ:×ê³’ ‡�ت8[üÛÎØ4œuÙGšë$dªŽèªñûBâ¬è~¶ÒpE:Ù¼~G¼^$Vv+ú5Oê'x>™ü8•†Œ^:€Yf7<ùí`⪈V UHëjs™‚dZï Á�uJU’~ç�V~´[Ñ1]SøÄúÇDÅQ"ò˜*xmRÝÓfÕó5ú¡Gû#TZ½Nh“¦ä!¬‚?¦â4› ¸ ”Äz”û]ÀÊ+Hº:ªæ¤Ú\F…N¿“/ãr¬µ+h­ÖVƱg´fìbq®dÞÚËIþ,sfÅ]´ŽHMƆj:°l1“ŸrkÐżkDixÐõFBP$++÷Oæù¬V" V±¸QS¹•�G¿2qL[ëÚ¶þ `p«˜ìÈ­„;–úµàQõ²]86‘ZkÑÖu�@¥9U¯Õ¾è¥Ä²‚¢ $i+Lg·è¤—º8ÃCqô —îéi¬½K°(‹)0Ž9l~G^$EXrï™ç£…øf'¤‘ø¶Û<™ÙÈ ¯:Yôr6FIªšÝü¾‘Ô˜Š(­‚±e¹aj)ç5 kBöü+Ѱ®Q®Ù@§É­4ÛvRÀâ»¶æm…,Ö»™Á �ª¥ÏÙŠ› Ð ôA|–m8Púì—¼”ÊÝ]¹Ši®��"_ßG{€w.b¦­ÜäÑɋǟºD2h¢+ èÔô†Rnªèß0HP‰„©³™v«ZÇ Cçè¤ ¯©$±)’v²–{£D­M’’†z9‰�5ÌHT@ÿÓrê\Uô/=nß�VÄék’)öQü-¾ ¨é¢+?%Þ ÁÞÖím >'ñÎvª#Ü]Ù~ΜÚ^CO?z†{r+‚Æî{~F`gr_®(ñºÐu ’­¶–þ´©“·áí:¡à…}f‘¨3É/Ë#›6·ÿmNîè1:œ¹^½†Öê_ ½]ÿ‹ùÜXŸ¦�+¾3…ùu…I”~ůª+¢žž‹ï0h(±ý Ï„2ãBÅäØÚª¸Ô/›@xÐ-át=ò<kJðiÀ‚æ•Hu„ÖiíR #Oò8¡Å’–AEÃYoð2‡--l�8q%¸q„0×I(›rô¸•ˆ©HÛ 1¹½¡‰¿!½„p³Ð¤ÍÞã,å¹_Ë-–RòWE9·ž^:!½¢b�C=]ÜCšÿ¥[?Bb ôˆ¹®…�IIG‘Ÿ•_Ú�¾ä} �ê[¡Tár½ ®ÍURÞ+H6Ö‡zåHM*ÿè¼X6 ½ØSÔ]¡>ÃïÛüxÆ:¥[?×ËIôð–�Ç2©#*ôÚ xƒžW«$»~¢kB‘…Œ¬zÔùW‹«Dh‡ã÷XÎV<ýMIÿ—P`ƒç�R·«§H<þfŒ[¢²ôBeðKÌF|8&¤æÁL€+Êi”8áÀ å "XHEšÚùçïzjÄÓ¾©£6ÙBuñ¦  XÔrÀØ%(Ê[ë$~Ô3°ó«ž >½ˆBô> }@P·˰ùyà)‘â†ÃFð™«ÌÌLœœÌ¦m€ ÙŽþÀþÀw,÷°â®É—àÍHÁ(=žÓIÞ‡áÅ>‘ï�'žÎ3«=�S9àïr_·8Ê=T~& ß7/V&øz�¸YÄ,AJÞ€Þ4Øw|sL¥IgÛ-k‰â£âoÕêvr�Yôå=Ê‘+Â’TIUô¹Söâ÷‡™Š){ôrÂv9æIÎp/µ³Z¢`g—Z‘—%¸©˜÷~F*W»½Ý¡à‹P™ÖW®,dö÷Hš“1}èÐc(“ò{Û)f“m¸�Ø£ %X )NDUŸþÛ÷Å_“v�_gr»¥-û0™‘ÄÍ$F¸NŒ_ðf¡�ÐÝ6mn \•ïý§/SÎT5Øg?’-Çt²F žËܨ=ýÍþ޾60ZxH—jÊ] €¿x›èpµ„A–FWÆ)Êó®bŠÒ@s…­Ê“�²Tfù…ùÏ%ǰli¡ŸYŠ'‰µ@¹vé=çPºlöòÚÓÅÿêªn¡ I…VB*íܳëd¼· ofÒç„hå§nG‰ÀNÑ¡’ ã8cÒØo”Rkú—S˜5lÂ,ŠÍ+§‹‹ÞtqN®Äêg)B¨KñxïòÒ)g$‹5¬§!¥2ë2æªm§ìÜ* Ì ×[s[`ä¯ ñOMÜ Ö“Š:�Ó.,c h0�3þçß¼r-Dt¼Öµ?˜ÄÉæ!§H¼Ë)³Ì Šæ¸26“õò{ë=³ì„ëßu†Ã’¼>± ÂÎ ­]Ô]k? “4R†)"�L³vlŸ¹¬ù§Ôk÷øf_ZP‰ ;Ga44+Þ !ßL7©®_çVu—P2.ë¿d7WÚcÖl†]¶ÏÖ°æK«ÂO�©Ì|IûÑ N¥Éž´èú!»ÎÕôAQ=H£e|ÂÚ3T{õìà ä=Ý%ôYÊSݽÞè}È÷ß#ñj:i²€ñŸCÿy$þç»dU}Û=v„ϘßÔE Tejy�öàM Ê`4k)ÄÂörÙ’1vd–�øKù¼ÅMÛî߸’ks�WäénG“l¶™.œúDÌD"¹Û™”ÀŒMÝ<]1Šñ„ÌkÚ;YLÄ¿P.YK…©Ù;0k©Ë—9ƒJéMýã­›ôý!ÂÜ»ç •³Ã`›©Q†ÕËQ›˜˜ù}‚B•×ÏŒ[›‚ïã„Òl“ÕIÁ°: ;mžQLÌä{Ó�¨õ#,'¢¶È•±k?) òŒ­ðÒú­Œ3ïPD±IçÑj� $7F w<ò?4�•!�”·¸À\ö> ÑÒ *¦¢Ž+Ûµ á0E÷ˆK¼‹’côÖ ×qŽ*Üùý&1#ß�Ÿi­‹° 2±U+ ²òWÆ+î�:¬á?b­—(lŽc¬—³é¦ìïZ‡>ºANSÒ…ôW,‰%’Ñ—7‹Šl8d Àé’éû‚Nq½ �îõ°¶`)6Hdíñ¤+ï•X�KÔMš‚†[ð&CS’P2eªÉvqY€÷%ØqiÐè»Ò„ôÄðdCšÕ˜_W/½\ê1{5Bõxàb6'Ägæ„P¯ÌæÒÅ‹I¬™ícz 0Ò8¶¿¾©y`¤Œ›>[6‘IÕ"ªÀ F Í{ �Œ‰uåV�/Ä6$†Öi^¸‚Ä='‡Ì{"û3³]´ìÈÇ/ò7»:8ÜÝ4¼c÷\•.Ÿ5ê KÿŠÚýú:7ãÅ” `oM› ØMQpóu÷•Ct²2ýr *@% Eã0ýðÿ•@A± çyÊÝ7§Ì›àLôQAÀ€FicKƒ’�Q>gÂ\Íð¡Á„ ic‘ÐD‡(߸È£‘1›±j×2¸o‚éä�f�žÄù”âñú¼ñú1�ïtÙ@Ù“‚ÉÁ¥7zž�®ÀÌ�Xd!èúæâµ›n%�ªð3_GÒXQ]�,ReoÂ4ò §õ²Î ³Ðš„ÇåliÖX}�9b>›o×j~cY#÷ضˆû©Í¹‹ªÕ‡3/ܬZX'M¥Þ‘ÚCi€$_ ¤zšO›1«'^Œ[~ì6w1— ícL¬ºÅ2ò2}ϧøÊI7‚~ê[‹h$׫ÅvÒr&�Û*m…¢\!Ï‘4M{TˆÕ©³>¢£)…\ÂÚ`ÿç ø:Î<è³ÞtÙб®9ÐoQÍ©¬k±ÞW3Y’¸Ù`�2…ˆÝÆzºœYÞµð³¬Ý)ò”¹Õø5äõ%S³íŽ,ÍÙ�çB‹öÆìŸÑåÜé!÷íû¦_x«Q)È¥K…Rãä|�® Ï´…¶nñ­±ƒÐ€:5Ýßš(Í©NÑcÌ™ö¼€›Y[P2yŒfÌ:M%NÇ,|_§Ñ–«*#g¡¸Kï¦ê<èÉxש}1ãžä÷p._¾?†¯O²ê4ž!¢�t“#|ád}‘ÌIá”Àz›Æñ‚þ~¼[×MÿÇ-@ €,€ÿ°þ7Cù°þËþï×¾þŸPõOÔžµ{Ò¶?ïxþübÿ?¨×ß T”Åå•þ–x{ïN‹ P*öWbÃß…ää5$dÅþ–xÁà“V 0ö'Fãü7"0ο&Êè[þ¯T8‹ÄâÆâ*þƒ|ú«È'Ü�”—STþw"¹|¯n~ý©‚Š?µƒõ߈[øÿš¨(" ,#ò·À+Ý $Kˆ?G0ÿ*±‘þo€r€òK,÷"Ü�ü¯Àþiÿšhhkm­oó¿Žý·…Ç_ÉÁÖ׸}`ÒÈÿµÁíŸ%þ?“Íþ–»•h^�ö§Öy þêƒ_rÃu0ü·JlVœÿ¬ºVÿ¬º0ÿñJép™ R‡á¯€ô¿ñ 4þŽg¬ïdëð/–seÏ�çZ¤‚ýµ¾tÿöß«¶J°ÿ°øCÎû¯¬"ÿ´Eƒ¿#›;ý™þXý²Å­�§ÿ¸äþ¿%ÿ߃Éÿ{ÝëzéÓHÐl°mgÅVÿm¤ÿ�»«¶†–ÿVò[¤1ÂîÎ.þã8üOÜ¿WvçÄø�mŸKú壪ºþ ÕØñ�/ìþf¹ÿWþüã-Ô~ãÕäÿ�ïïýŸòÿ^ýn™¬Æ:@ŸÂŸöößè«C7w´üå”ü+ög¨ôÞ?òšiÿq Þþ'ÿØ¿×:¡h þ'FÈ`üÕÿú ¡™±¡¥£³µµ±Ã¿•Œ‚<¸ƒú×>.QøŸÑÿ^yrZ ÑÒŸž¸þWw˜Wþk¶©¾•­¹ã¿œÔlì'ñ§kG ÿuÀ ªý·Ð¿×ÙÇgu.ô'k#ý‰Ðü¯‘VÆNîvÿ®ÒØÔ°Iþ¨lEø¯ ÿÿ´_íÿi­oþŸô ãdú…?Zñ`þÚr�ûþGðßë�,x¬;üæ7Iÿ:á ÿ Öˆåß åÄ�j úÓ†àÿ:‰Ìÿ=ñïîµ|–5ü9ñè¿�«ÿš÷¿û÷.U®äüG“FÿkàßúŸÉ¯X ’ÚNñÏ<,ø¯ŠU�þg®£•Íß’(Uê¶ÿøbí¯CÜÝñÿLv1´s°µø[¸N¯-jïŸX#eýWÙx—ÿþ_£ó¿u4i¹¤ÒÇŸX`ƒöWGS‚þ�ä¿w4H³CÑéŸfaEñ_ûKÿiÖpÿ#÷oÒÿµ Xa‹ Ñ?Í9æ¿ö>ýÓʱþOÊøû³�$f€:ùs$çÿ5o$øûþ5±u°Öÿ÷aãÆzôxù3ç¯óWâÿþ÷ºå‹Crz˜XÞÿŠN£ù{ôÿóÕ&ÿNõ_¿'åŸV¨ÿ ÿM×üKNéÚ¬Õÿ þ›Ì_³œþoêþ� ùûóøk½Z…Û¿.âßäÓû+ü¯i“þiȾÿüïuÿ5]Ç?í)èïÐÿ:yÇ_É}éŸf—ô?“ÿ�§ÿ²‡ýŸ–˜þ¯¹ÿóŽö¿–ñ×ý•ÿ4­Üÿ“2þþ,þz_îŸ\ý?—ð´™¿^nþ§Á7üÇüïúAÁþñÏÌ~pÿÌκZÿ`ÙYXÿÔ»>«1»‰‰�¾�>›>» «!“ ›!£‰³‘1Àÿ-�“±£í?œûÿYôŒ•™ù½þ±ÿþÊÀÀÂøço ŒLLôÌllL LŽ1³ÑÐÿ¦è3gG'}[[§÷¹ÿéïÿ?jòŠŒòRÊAÿ÷{ú{ P“¤ò4\ðGE04€Ê9¹üyý�nE¯�?Ÿ'`¤¥ý3¶ÿY4×k ¼fj¥¢´^ÔÌ‹«Ó iÿ¨ó°¯­›/.à¥iÉhv'µÄ{'ZL&Áü_åü¯V÷�kÿ›†Ÿiÿ¥¡3zY:ØnŒÚt’ºÅSýï4Hˆ* ýãóÕ ¶ Cû=þ¼Gí¤©?6Š)DO”¼jb«l\é �™�1C@ošb¤æ6öM,Òâ½LŽtBâT <æO«yjÌxVš^H ê×ò‹7¿ù¼ïg÷.2aÃ× ±ÿÐݾK·#¬£Ÿ»ª!«A+-¢Q ªCÛ8ÈÏnà`@እ(„Z¸a…WÂý©óÈl‰yÖN ×ìbí÷`Ò ¢T$LŒ™~yýÍN’zÉ–™ËÀü"×$ZÂîÞM[Â�l-!6$œÃÑ¡¬æâ»ñˆÓêM+3¢Îc)g»«;ZyãzÉ3زø‚XòåºåsAmžT[ ¤ú(¹@Ï„9Þø�"*ck�<Ю q“ùñùܨ+Áð ÎØVûºÝ w*ñK‚?­»ì°q“Õm x6à% Ñ‚C¦¦®iAx I÷#J‰‰ ¢Åa±A€T}RO_A™ DS¾RHRÏI† í»³»á‘r¡ð3’1'’ð< qñúƒü4è,hÞ(GW=à·–xö_Sò2б½jÆ,Q?,ç4�…Ñ÷ª¤D KXÏå˜ìïù;÷yœÞtH— ÌRÒN�òi£ðBöi:®+3×¶�wûÅ¥ìåœ1‹p÷cG)3Wí æ ÈÜðð±€X²*…5!²;²á• nJž%›ywŠ( Íï܈`7$À1ƒжSÂú„>k§±sVRX9ö^V©4U²Ša3¯EÏ�¼èÒ ôF5Jä…{Oƒw†X·p&F8âæ¦+,{³Ž’¼Ù“6À«?Ékbl£“}tÓ—n ã¼[˜‘jÿ6ÊÜFËå7¾ÆÏ­†«Ÿ bë eI¸¯ßyØm@­™YgÄ?+Κê(=÷£ãÏî×âv§q] ”ß4bÃY\F„Gª3p &hÀrÑr#ûü.~?þ´}¬ðJ�곃—e @dnYµH¬ÔŸe!RÜܧÎLv'Oj´^†vi�9ÿèÍú¹>+ ²Â>×ãÂé3FN=öª?¸ßÒgÔ,ÓT :àdãLá͆ü{7u,.< =´ýDµ3­�¥â.DR¸háײà+36ÂÀÞ¸Ž4~+Z;f²oL¡‘pÉþP’îmLâS¨4#Rö—ŽZŠ>%©ó%i÷Êþ6ªì*ñe¹ÞÝ0¹ÛjT– ø©WP¥«¿³P— ‰—-x… ãÛï{ýI•nú¸¸rp[øBÍ©ø±…عEÙ;Ô�Åß51~M,?Ê¿ña¸„�ÙÆž1í+ GYÎ8Ƕ›§h�—¨œb�µìµ0j›ol溧ôl`¦5šMu¢·³1²‰v©Å ÓŽ �à\×ÈB§5 //¢‚=äßk’X3Ñ~pH˜&£­¸jÎÍøìw߯³Šqwœ©Ð#Óæ}þŽS&ŽùhÝ·[ÈD§ƒ<þ9„¤è­9`ä}=¼EõXޏþ“” QáÛÈjž/ b§B\÷F¿«ú[—Éu©ìdÁ’Œ€,RË«Ü¡Ž¾¾zÒ‚ÓÉ0‹Q‡V&vú[`áÄÏ:ë–ÌÖ¦áqç­w–o…vý§Êõ]£):®î*ܨk5]—ö\Ù2¡ÃVSUöJ"C‚yÆz0ég�*O^˜ Ý¢- iÃ÷°êªÙD9‡ÉÔ4ÕÃHc6}�OŸe ²“lè–éÑ8¹HÀ{-ì¼x}ÆM”g?g­[BMååPò9~}d'ñº&üÌwǬB8¹`õ²»;«˜ÊY²ë�\ÌJñO¬ |šRI H¸ï/]VÖ»ðv¼ð¡æD8ÿX_K–J¾�g.`ƒ€×ph°)"§Ÿ9”NÅ� Ϫså´·c:™¸HP®¤×’üg5ÕlljðæÖŠºÒ+#™E¡c­Ùß/´¿ƒŽßTÉØÆ:•ˆ‰/¡uM}B›GÔCæÌJ¹jhõû}@ÉÝãÊS£î'Ó„(’¢niWO[�ë)¥�e¸ÍŒÒ ‚ó›ú_` P¤|�霌–î(zƒ¨%箊‰”Rhª¡;UwjtØÇðœnÒ웓z 4'ÐUÃzvbiÛ›ò_Üt3ÊÍO²°@(<Ëõç¾Z„㬺žéé^2ìŠJˆxηOA46#à5Ù!áÑ7�À¹ˆtÞÖ·è8J‰J²m6 ÒŒÑA±„L1=p�H6³Âày|Î;húö»m_,˜8:OòOÚ^Og[~�{¡K›Á:Á6ƒñH”b9ÁMÏzZ& N�3ö ÊÞp(âR½r5õ†å¥Ò Ið¡4%²Õg¾OUaš‰¶O¦tw}¶’�Wà] ˆÞ²fT^Ô)Âi$¬Èn*qyD êN¡«•æéÄUVÖÛs˜‰¦ì¢3×Ó’:C£›¤?_íp©½‹‰„tÊz,ŸN]r­/éZÇœèl�_ƒ—R»ù‚DdÍú*ÃÍo2?vR~êt� ÙÈÁ¤£ `µ¡³EÅŒ‘€×ýbŸÍÈ#†H~ÙŠãV�h”§UR'›ÅÁ$ ¾›ƒaœÛ0Ïó-çñ”©_T”„)î2 o¹,"»}TÏÂ4KÍ5C,ïþ¢3…ñŸÔ^5�RyÚ¡ŸV—Å'·`eàx\ô—ñË.BÀ­+(·Næˆ|xº^³D›Ë�[e‡TÑ ÊK²àþT`e¿ÀWÌÙ™\áÒ 5&Èkº�É7¯*»É[˜¿D6 ÚN� †;ó7·„£ìÁÏ)F;×;¥€t¤ßÄßòécÒ�ÎN%iÇüqÒøõ:¸G¤S%¡Ö).Çósj£¡†·ÑXúYc/Î�I,/µ1¹ðð­(ÃDkíÛHqR"™ä'ÑÚo”xUËSëA¢Yußì�_|ÊÁÈ*Ù÷NÐQ >ü1üEœH|÷žWÉ ™É”;À)zµÓä £Hç{ë].ŽÌîÀĸO± Ê{O…óÌ’! Av?L8:{. Æ/—4X܆¸Lçλs|ÙHxD_ xµgÞßÐ@˜3pÔ:¢ÏÚµBÎ÷£Oçõ»èŒÝ:¸aÒIoI_Sd×ìr‰>VÂZL㟋Φð hÞ �оó¸žl½C¬uAy�të�Ñòµ½:h.iÓ@JCÁLÉ<ùW�±ñÓp½‹¿qâÍËUùô¯áLªL`ULÍCŒœTÄå�ŽOí£’Ùl­%¨ ™bšP{(]¡U?ëŸcf[+1+�V–0§9P)’ò^"áñLBd-™ËµcU#;R·|„ì@^~‡Þÿ¢òºx“O¾é鸈Œï6Kw2E ¹ Ì–Œ®v¡‹ù¡\jƒúü´0‚÷ÖBAýöLL\Ë*½¾ tNÓ4€ÍËq½ÖS_57—Ø}dœ¯Ì±WÑ}vÌRþñ$œ¹ãui“/|Üþ{eȨCòˆ™/ȽVgH'™]¼a­ŠULê÷# áò/L(,‰hƒ×YÏMƒÏ»œw°r­žNç1k!Zàxûë`m¬HÇåé¨aÅ5ÖΙg¬9û|ƒO´Bü ?H{ WlxW€jÂ7:`«òˆƒ>²4ÚWb×çcðü÷}’ ǬòHb–ÆÈõ'ÜOŒ”Ì$c\)Þ�·z�â&7gã­Þ-ºdã•bxÔ¼Ùæ’‘‘Û ü^̪/ç¹F²ÒÛYüë­­ ¹I"G[9¬óîN.qÄ61[·Ù,ì ÎÚ ({=[É�G‡šf(¢н‰Qä7óß2’c³„žÈÁ•ãÊUjü‘«Eð8P@l¼� Ì]½½J’o“ê®ã)O`ŒD9ºåîJŽâæ'ÒÃç}ïþÞûJîÐE�¥‹p§>¾´ƒºœ×ý–÷ø„C»¬fÔJK™ÓÂl@鿯Är7rAÖDhà-þJ %ê°�÷V£Êg—s3ðØÝuÀË'À\:,[ï¸ý²w8 …ŒS�¸LZg‡îqTÕ oÏç»Ì{ÓˆÞ¨¾\ØÒ{ »h¬«è§ý\¸1J³ ÿEâ…QÏÌÔŠÍuèádäÛ'-´ z0vüc;'I°cáÒû4ýN>µï‡ßü:ËK›1½v;–Ó¥ˆIAmÓÁ²È¤áX ¿0z !B`Ž”®�­âÎôõÞÙýdè{B‚”‚1QÉ8h¤)Õ 9W€a츑 G›Z§Ò ]ö:>G²Ä¢Nw:ïs�òÛ%Wò¦¼¿Ñ’ëI–fbÃ�¢ô¯>BýÓ-`ýÞ&@ï»÷}:> L Ñ‚[o-ƒ¦&XAýîEZ&8xÏ {iÅ×Jif”p+¯’ýó’fŒ @¢ÿ’®_ÑùŒûÑA±P2•2i¿¤_gÁ{n`Ýxséa:Ú ÷ wÖp6n�çŸäežxå|s¸^èõÅRøäE“%UÇ£–H”a§°¯ø|ÈŸÁØ9/¦~£KÔ6H“(­öÞ.ÑËGª•¿ÎZ�¢-}CóÿË�áÒ¦m�eð·&/aøL«{>YÓD4ðýí Û¦šÑ ©Ä=HÁizGªé†ãw‡Z‰·¬-ˆÁÌÍšÖZÑà¯=çSOH„jù¿�Œ:Íx”Œï[® œ7ó¢GI«'}µ$òVzDxX˜%üÕU6Ó6áÅŸ #ÌiH!þöZ‰^Ûª&²ÙZf�æ�I_xf]Å uï<ÂC¹ÕAZvr¿õTÈWœ­ÚrYX»x²xÈê†×¬�g ß¤ƒ´jåÝ„'邸4vÜ�üÖŒTï÷(zÊ5S™ù.ðFiW›-p7`¡m. §%K�éú M†½ j;£=aç¼]Ñ–C l¿ †ÿ¨P¢%*lä¤ê†L•7�0ÈW`·7Ýtèø*$ÿ¼—­¹› È6åfPLç™Ì|s7FK�;” .ĤxTÿý©Qe†o¤ÅÅÉ»ë6ÚxGòwƒŠ"á9Æz]0Ê™dÚ8ÞO°op žŽ�[S Åû"Prð`0Þ›´’6"žCvvyƒ³ä¼UzÜŠ0ÞÄ9+(\àů~‘¬Ú‡à]Büwš OÁŸ9Âε‹à¨Ê™zßPUĈ)-t–a`‚“ºÓcØC�]y’=oµYâöNKEP²¦2³”‘SI-3‰X™c®F^¬;ŒH«„7¤!™:Ùª"Wº��••—7Áâ;½µœìUI&¢'¢k/Å´?I¿×º;4»‚C±$.ò¢0×Ã×Gƒj¿TâÎZ¦Îa×'Üüm”ŒN˜âA±ï›BbGS›Þ‰î»l�ÈhÙ'¥¼i/&†”R½ÁI4Ï o–M;_&†#U^ WFÃjœÎÞ·ô¼U‡²*uf] ¹7¿–¨×s½À›°<úÖrbí¤¬1çðÏQ,~-ž¦ew¿ó6Œ …çlˆ°È–µ‡@k3Æ»ûóR`C4Èj«¸-à‹5ôm]F Xô$@J½Å&Š~A­—3��ØT&Qw£åÛùŒ~3>–"È•‰‡žUã®|gëßg[þYŒ�…—:@A|É�J@µ† dÉ{ë7ÑÛbÎêaFZ=”*.[%Oëa>WZ²™…ì(u͆õªfüŠÆÉðDÞ´­ð%X¸ïäsK OƒY ;Íè~dVm/àAÀxQMW¶%ÍOÔÞoŠj%eÌV‚Dã)Þ¤ ù¥ÔàøÎÇÊcДÖ\*¥u_©ì¢¦b”¶”×y�ó£ãÅ—} O‡¾Ì¤EÁ÷—}l­nòf…¦$ÜÔ‡Ì|§KN&í­;¿ÒðÜF–` Ÿ ühÌ¥fdÐv:IS9é; ùÙ•ßÝp{ÿcØÝ÷ÇÊ] "ïŒ3@ ÍͧÛ—:¯”íSHG÷zâžáJ½?‘ÍZüHå%å”kFÊš¼Œã–,2€=Ãl!†6§æ„ØÙØbêôò$Š ½ûªcØvì³""ŸLmÚQ´1ùÏþüé*“vºÉ0FÂ( /êG”(ÐWÊÚ‹ëˆîèúò#Ñ¥§€…‹ýŽ’ÁsÉQ¦ N[¹•l úrEè¼k+ƒµ9ÊI­”\$0"L=®`ÓYa¤ÊÉ«½ä]p'ÉÀƒò.…HÄ å]*5;«< nì OÔjZÜw¬üˆæ°íxe܆ 1*Œ‰#O=âˆóQ¢BUsó‚r•�»øW{¦Úê{�«ª3‡ÖýÍGø�™$ÔÉôeغ3 ËÅwà�œîñ¤]Ô»Èp%“ˆ‡�™Â!H ˆÜW¨UKISbù¥5�|lé€m½]7à`s+®Á¼¶ÃfÏ?Ç"~°¦/ï%å®ò�~ß @ ]Š�3º“Z6½iz”-Z¦9ŽÜ›‰„|ív±I;×!0Ïú+–6¼&[U_a¼ýÜ€­vßñ©7�«øQŸ©ÙäÌŽA¶8ê¥;¸?,®�,¾,ÄwAðî–W1½j(Ék÷­I¿¨Cê ¦�P™ÆOÔ#É]uºÎn?s"]*¬Z(t4˯y_!ó&�ÔBêmí»p  )¯;®(¥P�l˜Uj =½iÊ@2›TIrzqéªõSr›W¡ ™Œ©Ï)§VK„kî7È‹Ÿ9á¼=«˜10_]™¨ $J­ò ‚¯æ–“P²ê�Ó�°R7‚Lkø­Y@ï:¨‚ÎèÆßAkhYòã ™·Åœ ƒpBðݺ¦œ ¾7q'$ÿT,Ò5F�Êîï}Gô0Ý^Ø)¨P/Ò;.ã¤é¦�«gâ(í±&�ù³š(}"] ýƶLC$­ïÃ9¼_ZðÄe8ç�e“p�_ˆªn�Ý”¦NÒ;§�T0>Þ%3Þ;™TûŠç,ÇíÉÞiЃW•¾–dÄ©êk]Í Ïä´Èz#pQUÐ~§þp¿àÕU²&L„ËЬ®îR€õûš êÜLsSF€GíCÊŽÛvW|@4«$®†Û½¹‘ÎkÝ” ]õ!º�cã¡aÄÅt,��ü8ÖÎM¾;2ké-4ÈŠt0n8ƒ!Ó`aæ¡õ"ŒÎ Ó¨Q€ÑúY:ç ?à ϶h=–A„§ü,G‡¤›eFM Ÿq:ƒÏ¥t"Ëóæ ô5OŸÊšTûˆ¾KDê >¿,“¯rVº úv+­CCª§ƒ6ò<ÅÇ?�¤LÁ+xaLÞ$kãûDErÀ}ô”Kº ÍrËÊ¢ÃîޔDŽTî‚K[AÊDÀKNîIܨ+öL{ mCf6VáC©&(-ÐÔ�Ÿd$“;ïµXß"rP,OE£ ÚÖìÿíÕÙ ‘.er” ø=IŽ…â+g¿ZŸæQž™/®à©ø9_=Á"Uøe•–¾�w¶‹A¥ììc€¾—ôÚŽ©Yc·YÔXéêWH¦›OÂê„×å�öýÂ~ghûÅõë”ÅÖ�þL±cs¶ ÕF:ê}¦ ©j,ÅtT9Zm]VΓÁI¬‚ŒbÇ5‰…X⪺iCr½N«S-Xx¶'GÛÙÒ"]ŻّG�õ&šG$'¢q–2†èÈ0&ÇǨ˜êAε£ÅËŠ:…9ëðói® ”Š„¯~ë^Ø™§±s�#æ—òën@±½äfb \÷«—¶†$NË'Öj`‰ÒÇäóÎ\è—øü›E…zož 8”bE•ƒ‘®ùz„aUŒ—{2O÷ùï|}Æ)‚øVê_ Ý Iïrv‘Ï‘‰FS¾{ŽQ¸¹öó-’?mæS¿)ᤄA·¯eÅ}…qsûç²Ó‡Ý¿¸ÔØ�½ññ|Ñ['¥ÇF ¥{>ÄËðfØÚâ …ÓšôyùŒ$±°Ã5?hß“mW掮ösVT7bò•�˜¨¾ë‹ã~ªŽÀ–Y²ÍFx8Å $†ïܘ>ÊV)Ñånå)ü‚–á""pPi+N…ïmâB=iƒáfšSü®Ž‡Á%º^¥‚åÙk-rŒ!¾®×iéiÏŒÝÚeÀÛîŠYßê NBºªô¶éjŸÛð À4c;´˜•Ðgr ™Åoãk_\`H/:R™�ðU!LBj! ã�Å?Óò\z³­65ˆ‘5ïæ<²3‰B¼ß 2G˜¸å½E r¦L;:µ×ý½C2ñe¾U­HV ñ™©{nF�8@;/nª‚·øó9½fÅ®_Ÿì³.*z Ú¸o�(¶#t½Jq£þ¦‚q¹N\jÁk*Ë£:åÜ�í-Žu^ , wñ÷¤�Pªƒâfͱ,®J‡ó®÷k\t ´©†tÿëk/Ÿ†ú'¾þ�áϹÍ7‰Ÿ*®-t¹™bf°!¹2šÍ’ËÁubþèˆ×nc}¨áqMýq_8�¹U øóÊŸÖžÁ@¦bdJgZbì'üXû—æzTÔ�ÃQ¥ûúXkrcÖârÌ�6¦‚èeJ–_V[,Ý_}o=ÑeƒÁòrf‹ìc¯§ Üš¢åbMÙHë¡N S +r‚ ÑiÏy>Þ¿œ}ª;Îãµøeef¸#£›û}X~Oª~rã/¦6‹W9?©þ$ý}�¸+Éh =&߇j"ùÃöpÔÔ»aQ ׸÷J†‡Ž»íØ„0 þÈîüõ"~ìux]°Ý¤JP˜žzÆJÏ$/xœqÚ†9ˆNP%PUíAÈ˹¢ëC; ZŒ†FSº­~ÊfGÐÈ.a® EÑgŲþ &G�ðÏDɳ¯hßWÙ‰y6sd (µ‡apT¢Jt¥$…X³a1à8úZж°¢[;ˆìÒšüp3ç[p™fõ%H)æ—{ņ¢i¾Ã¯êpYÜ{ïÛÈ,ß� q‹Ù´£&Œ¢B¥@WÒðçäqÁ4úÖTÞ‰ù'êÐ\(Á´‚tÞ­íŠÆ[3ÚöŠ•“_¼]J�ª“í¤©8ëìX²Ûù÷¯ïi…¡õ£§‰ÄÍ¿îíÚ=Rüh² ®+µà:ó° ‘ûYPë¢~k %T¡Œïü°õ+%íçF5F{SMp^Ëóa/ÔÓbä0èpÁŽØ2“ðˆaKiß`]û,a¬ù^Ö30HsûûjúÝZ´¬{fK1w¨I‰¢XשmËw)©Ñ§x¾/¥UÑ,ñ�ùQVÞPÚ w5bmWœö)X}›ƒjË—,ë— qÚð¬SºNÏïG© h”ñ9VØ”¡G‚•%C/‚”‚¾¶�¹ÃD'ùWž}‚yx:ìÏ‹áXÒ"úNË©9óI½O�‡WT[39#Ï8ÄÊG5³kÝÎt„«f|ã÷èVUÍõÌl=‡iáÄ«÷ñ‘û^\D 0ð¶~`YãœOáúå¥W(°[{RÐaÂ6°ŠTùåÒ%˜”!¥@€ây¹gîÈÞüMQ.H9ú }S﹊c—T´¶Ò7|žß¯F¾ÓÖe—c4›"*̦„Ô?Ÿ¡ec*½5ªI`vá};�ïÁ>4¦Ë‹ Gçf¦ÌÁ§öÄ… UÄ{>×$¬“? Ó¶Ñ Àq03Aï!T1Ž@S’èß>@1°Žç¬é|kîú%xéá™Í”:ñ ¿�““À”¡†�ÙK×C¢¦»íw©Nä ͬAW5 \÷Yj¤Æ=ó÷/@zË8|Vñ§�)a³EgÒ˜Näƒù•`°7O�6*�lÒŒ:øi¶lo«³äÆ]o/À™,XÑt™WaÔ1‚Êæ[aÔdšHáÏÀˆS�ä¾ ˆ°B¢Ù›`Ì‹‚ëÏS¸*p1·–Š×Å{…Y‹»,½�^ø0¯J<˱voV¿b[”Bª”BÅÝJÁò�°­(˜u£¸­Åz¸Ÿ¦TÜË“ÇVµ�Ø�y]Û¿9Nj½Á´‡^Zh‹È¸(Í�~̿Ǧëá^‹gðê1†aDÚ+*æû ìeq”—–0Ì?ê+¼�ÀLBªí˜þ:ÿÌ&Ü/°V¶Í l”î“Q`YªÖå<O?ÍXsxqãQ¦À2KåN,`¥È'G¹ øÙfñFf¿VMf_ìÆcn÷XjÂÉ�„ÀãjXל°ÙÙqGÈÖ&! óClîP-ü¸þEÒMÐ^`æ1�%�§)!ºìRˆ~KUÔô.[0�¤rQJß `p5ˆÆ?bLvEx¡ €â!AN‰‚ÀÕUwÙŸ1ì‹¢®s&à˜‰ÜàèÊóèºJTƒT‘A>{—FI|ìjò6÷ YMÜMä°–+õ%CQiŽZ‰ÍåG¼]`^•G·ç®ÕoTrœÉ¯ÂS?²ÏáÀèwŸrš™�¡ƒ�a1,n‚¢‡ÙL0@ß黥eØ2l¬Q'ã1ƒâû�Ѷ€O�‘äú:§W†·÷ù_Uyše‰#víMÉïKp´Vó7›EÒ£?§ ¸üÈËÄ´Í¿#a9¨„ÉÜ«� îyè.¼…'¾gÂÛ®že5°T€×ØhRL¬³CZÔú’Kã×w8ku²/ÇweFΑaW;¿ 0©TTƒõ0ZIÖÈ«êöÍÚ&^؆�ñöâÍÖ‘‰(rÁÂ…©´ª†Fo ¾DxÂuù�‘ƹà×RÞ>ðp -¦î`ÌvïoŸ·ü<õ"$µêM'@½'*™i=N�m´”K£³n¬¡—Ý#þñ Ü#ÝܪãU–þ<Æ §1=ÇbH™#á+ò4ä>Œ²5[nØ*°Ýh$¬•�‰p`u@x ™Øg)(fp)ŠšíuOÿô”�Uä2X@H±Tö»F¨"ȼ Bd4°jcÃc\ÍÛsê�Ó,¹Ò›²8ÜQq¨ìAeÄFgÓ�IexT iݳ�ˆþ“óëÏLu!J¹�r)É×­¾›vÙq  äA÷7ù°å7àÈ]*ée~m\Uü¹mòé hïDàà"Ä�EGïÕ­ü¾Ûµƒ½À¸¬f\šÜ:"Ù=¢O¢RQ Úóʽx Y¬*ºU¥ Ö3i¢¡ïþÃlØ÷Þv®iò’!içŒ[$ºÛ„æ$*¯!b€£"/›±°˜%N9dÎSwŠECãDjPf34ø™ì¾4ÈÇæQ¦=jM¹œ¶µ€…´À†Ò{éìãøÆD�£¸'ðc±)Mc•èKª û2J[©5�±¨<÷;ÑÍú‹6äÓw–�Œla[§¯¨ÄFþŒ§1ÆÎ¥ñÄÎñ�¥}ï°vi°X‡½ýOT˜v6p+;º¬>ÔƒÎñ×Å鵬Yý˜‰ ªÍfeJÖRÏ»ê«Î;8ÓÀÊ.$o\±é@;Ì«øÚŒ­ã×+¹üà|¶ç%œ�&Ä�¬æXÈ×HoR†]¥D™ô U�q·ÅÀšÇ™æ_w|�§½P,†øíㆡ÷ °OZ0™0a“®ëx3/|ÃÊl\Ë{'΂4)ê3_ÌÖ°yyë±É–â ü^u,8qgX<ŒQ~ôÂxÑÅ9ÓùîÕœˆ'ªtElm´³ÐªòØ^_5i0n™õù1}B£ —3?-tÉ7�WAwÒY¸+G”(SÃkÐÛOÄ Œžš)£&€’é\"5O~eÒJ�6�Q$ëȸfƒ§ ¬™«lij}¨»žÐ¡³t°Å!ÿ\ÆÎ;v­„8pý|8ƒüb†Yõ`EˆBJ)gèq�i½Á].ŠrÓ<_ÐW gQ±œ!Qœ[à�Y¥<ŽÍK ° P´–J4¶ôRx$Éç$ˆ¾°Øs…‹K9=yÒéR�|7¯räOÔ#Šù å™B/‰ÌrékM"A0@X>Ÿ¨‡ ¹Ñ-Z;ÒLš�*ôþÔ/ý¨¼év"øpd0™Zâ3…� ”X†í£ZÌÿØ/à’L«;Û׽¥õäAnQº †ÃV0ã ÒȾÖ3[Ùd°É¸4Ë×g3HPó)õ1ôì¸{D&}Me ’Øo‚¥A›^à²àP…{Ò.Mû3€ñ’^Ä–瘑ǰrA—´¹‡N-z„ŒÒÚ™uÄ—%UkOÿ(gr Žb)þ—cgÔ£¥"P±8kÚÃ%Ç=kOu(Òn>sÒAûà*jø´ÖÇâ­÷ØÔ½A~ÄÁZ˜`C0Â꡵\ù\ztº²¡HƒÑTéXtó0Êt�°­Õc[�UXϺABÓÚr´Z+©•3ã&wc*¨È•ÞûóPDdJÁ‚l?Î(ý“¢F¥û;v§^]'<í5Oÿói"¹%„ ÞÌÈTÞ�™ yø[ïÞp¶‹Ýõôî´§#KDÓ¶xª’GïÂѯxh­¥+ÇQ›8º«=°ñ¡½F:€¼IL ìt8�”+K CQ†¤J>ç·ò»Ö+í¥»e Ü"AÝ“§Yc-ïíßòph¶ÜÁ›eê©î»YÁ^?Üó{SOljY‘ŸèiïÁbÓ+6^¤óíÐ&Fÿ„äO®<º¬ÁÅ#÷§'¦øfË}Õ7v6ja¨àTÀë¢Fûåa–§qXæ4@8Ð#ž‡kŠh•Ûzm M,ÛnÑ¿ÞdÓ·¤¥'êç— Ô÷U Qâ"Ô}øV°hÑÁCÜ<�V¡aÿ|­“ŽýxsX/Øg¶8t†%@oÉÖ55/áÐfM ÐÎÍ÷…Ÿ²³,5'×h�û*l0ÌÁ¿QþnvÑ[ñceÛñFwÜûŠH ¹/IÄ”ÔLŽuN�ÛQ!Z€å_§NG.zý ËþóÂàXzo ,Ë„,àéü˜/·(!{#:Û�RÆQ™&ÉüHf¹ÒtèÓ`Ц+¡=éL?ô$NÛ³3ÆèY�_N.à’äŒýPÓ‘ÄÕz=Ù�[ýˆ6¼Tï\ú ¥ÜN``üù©²$Ü,•½Q“Wª»�Ù0$ÝdDuSá!ÎI´éÑ*§ “SŠqºç:ŸaÈoÌ|çБI÷.øœl73ŽÎ@}g¦¶!ÓZjǶx–¼œŒ-Å}ƈéõÞ1ö† X´Äª�¥*òP„ HdÀî|<= XT"re‡¥H~@YípÝgxl0$·‰t£êü”:û;˺‡ú`3duãu¯ø�õúTµšy‰‡ 8ŒQNËêl9±¢‚5që¬÷ÖGÑLr”5™ÿ¹©¡eP™E6>Ri¸Žù ¿q{Ë@\IBûÞ.sªœÄèWg·kýŠ¡H)Qx2îsM1 Uõx£‹ôùï @.OŽ(›æßdø»ô£o/}C�‚+h¾IËèl¥‡4œ˜³íB¿Ø&C£f°‡To8pÆíbÎÓ“�­ÈzÏÙż*Ÿ“R~—£Óˆ™C8ÿ™yìWjx(‚zý�kÒ 6Þa¼G‹Ý½ÑøÂIeDâDeôŽoó½-óÍCíT¡P RÁf‰uT‘A{ ¯û!ÎUTÃly–/ÒryS9Ê6mÑ£çGþ¬.‘áÿö’Í"ô@dÝh3N혭¦œL‘ÇPŠ Y9ò rùŠæ+ïGEsî¶ÚÙLƒôÎ] (ü�P@ðèâA¨9^Ѷø ú<íÓwZR�Þ¡a}Äà- 2[níØ¥—H2ëñÐXˆ‚eË)DKÀ?ŒÕŒi…‰©UfŒÆYËq¬Û¿#zçs¾ÃŸ2S6 BW©Ó‡†IŽ¢bífðúâa�¹Lå’K´�C¢ÎÞ+°úTË. ‡ETó˜ )"Ë×çÕÅ®EŒbÕÕè¦$·/óPŽyãÝõžV0RŒì�s�˜ÓÒ­f›;<ùÊjÆÅ“Éâš&�Éà—í®�Ò¨Úóò•íxÓÚ)dYàX„J‰ì´gø€­×vâîŠa¤D&×ó[fö<3(ÊÎõC¦�‹É÷‘àdÈ÷æÐ¸Ëgš$BM�ç©1ÃÉ2§¿,/ßãưõŽÛCµËÄkÏåo2[Ї_U©¥%î‘§Õ%T÷AáÛÒyâHÏŒdŽ&<ÊêåäýOYÐÄbBët©€ñ"�çËtoR¡*¿½'9øœ‡ï5_i#úhÃJ‰V®’ë|¢ë¾ë‘2Ö™ÐAÀgr&í3ö�ï€�gnIQ4ÙOu¾™9– Wø‰×û±â�ŒmU}Mä Ê):ß@½!ºP‹Pèyø«~XÝ’¢ÁÁ¾8M÷³xΑ—Yv.ã—ë¯ç6(lLHš^ª*N)¯ï8�±¤gòªmguÑœ?ù/'Ö›)�ðøúMiÈV­Çb‘ˆÐÈnkS*iQ„Ú!�²QqÔÈ=–ŠF/”\åH4�)™Ò[‰º+5G@‹UhŽ@ª ‚,`1ƒo[Sw‡"ˆ|Üù¾Îó`ÕãL O�iB¥-Jb íŸÏùÃÕªÇ�’M’{kUÙzåý¾•jZl¶±�Ýåg.‰©“õë„ê…Ų™Ç´‰³C0‚ë�zéÁÍÎø¹VáD¶ë¡^/»;P aˆp¥/hB¦ êÄäAcTE¨nRž‚‘J‹À@~h×mÜ©ƒZMsso˜år @| C@~�¿4lÕý`¿UÖv„é{[° Zò>Bª¡~§ÍÒ“!nßV£F:$«0þA;Ó�_ƒrr¶6[fŽÏ­¯h³¬ØiçÇl‰ÙŸ[) ì¶Ó¢i!¢x–xâ½è‘ei.ó4¯wÁk¦0Ôà™p ãššâ¯\U‡OöÀ +2¬zÈŸ§ ¸»S äY뤔U`îgçpõÙK�‚MÞºÙ&Ó€·$oDð5ƒnÅH¶˜@µÄ¯Ž/Á)…rÀìì,2Q‰G™ˆœuwl£ 4¯p%Ù!¸ùÈù¼!Ž®Bò ž·~sÙ¦¨ï,¦kóM=´€¨*£…h‡sÕfº}¨d%Ö�­LUd¶rÂyJ�¬ë·;Âòð³v¿Œ*B•„Ñz¸· ß ˜ZdKl)¯¼³�¼ M|2ý%’eVKì¢7bK;ç¡@sÆV‘}s ÆïÐ bgŠ÷ë�¾õùäÝ€ÿ!áj9yBNpM22¿±¿ùn$®Eb6ƒ’𷻟.î÷†¯«[ì3ϱ4¶!5Âè'eŒ� Då{íœÿ² J»%ÆêðõZïüZv=ß¶(Î[³[E\ïŽB G¤]Q¿¢æ kÅ^ñ¸Ãµ]èÊã’P¹ºþ#™G-ÁÒ{ B¾L#ýòÒömæ~ë�oL…ú;#rõÖa¨é»ÖOïÊ%ML‘æV®p‹7pÍ©ž‘¤¾.™°�–爼%§˜Θ>nâQg<Íþabý¦vƒVVxÕHºñ7Dª¨yoòj�÷ú¥ÍÔÔ¬ÑcV�´ÓË´Ž-©æ´\–d¥t”z 8h<åûçÜ `û�4;¤e1EÑ^ÈÏ<²Ð×Yä8†Š•»øV!� vm×Xa%Mp däp¶Ô·Ê–ãQÎLñÍŠmÖ1¡DŸÐg^®Ÿá_ñ/ÈtCýH¡5ÑÇ3÷>šÈž�@ƒÑ^å Jí¹õì ÃçÈ &¹*!T‚ûÓÒ_ ©R;dã×/Üì½°¶™Û]®l.Ûj3÷y’Y]î¨v—ó«"ùË÷Ûì6Ý"þ¯»p­õ¸ §ˆªúž Ë$M‰¼cÙ%§Xú²|ÚBOH*¸–Ú¹)ŸÏI+©”9ßOÞQOökˆ)1ª2G$Ájðôí|ò‡ljš·ö“´É-°ƒ ¸Rîƒ.oŠý†Êž‰Ø·{»�)‡¹òŽ…©�ýŽ~ÎÖʉ¼Ê!>ééxžão•Ïve4Žy5�úÓ¶ñ!0ÛãÐ?_S¼-o_’­˜§¶èböNñ *ånbV}åi‰¨~Ô–ññ(q½SËR'bÂö¶Ì^¾È$õt?×Óq­«åŘ+iÞŒçó€ŽÁÄêçüïóQï4Å>EO9¹\’F²:FÚ⌯„n7.2‘m½‚ŽÚæ¾]ã¦ýø‡¾¯¹³´eµ%å@z#¯]™}9ë9³KäV«*òÆ×§k‡nMÍ=¹ú`Iè·�Úžšìi޶©ì^XoµY¾ €Ø4Nå“�I5ýÑ£&U�ŽÓ7XnÚ.< 7‰�îíÖ¸_ýÙj�‘]ß•cÁ-}:…©X÷~>Ïpç©„e'd?•­9æ˜uƒ5ï1uÞ™‹y9K_>Râv‚J"¨žÚ¯Ï;7zæ÷ç´]sÒ A]Ä[î°›¬˜önÍ )ô§^ŒÑ ÿ¶Vx‡¯°]ô0]Å[ðØª«-4ˆ¾Q8<©àÚ©[3BþøYxƒ\…‹±{ø³r+Ë �0_�saüÚ^<Á ´š™˜¨FãDCò÷ ôKj©5˜²¬‰€àcƒ�Œ§Ö úÕƒÜÎq�~û>š¶ BÇÆX–¬Y£O©0Æ•J�¯dÎæ-Íκ3»¹ÄiŠkšwN§·v_täUXJ /�Ï$tA!"E¿ã¤˜$”ÎLè…–;žA:›k†æ�Éðz:¬Šê1£MẰí E£.”ŸÊÕ™àõPž ”d$`vùÐUÖÅ(î?ojnPÙ>Þ'�¯¦I{Ú)µR1×_ÜŠú¾A ›í�çŠÝ3JxÞ²]žßô=RÎŽ� %ÐH‰KÅÔD²¢]¢ïÞ1· àÕ/Ï8´ßësIè¡ä”îà˜ð„¹[œ—â¸Ö^Ÿð Ê®õCü¼^Îtz¨fÝá·N“—ÁK']°¥ ‰r£ÂŸÁõ?ÄØ!N ç!S çW3æ^v¶^Û‰ý äLøëŒûý—´Dã\�kûää_¨£ÂJS¦6̷̆ˆMªÐw—|ýI K AØESUpP©Y¦µvDç ÍRå*¶C†KqÄ�aâoÙeª° ‚Ôçq¿�7o(ßîä×�mëÆ§Þ̵,[|¢Š,¹wî{&XG“+˜³]ß)àJä—R£òxLˆHžF)/˜ž”½º®¥›ß}r@ÍÖ½F—{¡â1ÏCÔs4Œ°ô±;é 4óo™Ù­ú¦T˜û§Q�¿|0W²Énsò: ˆú5vy[jG $n\°7ŸÃœ3S/ðMùèKø{¢&˹‡yÜeå¶ÈB›í¼.%ŸÌ’hYï]aÐçY¦+Ç1ýÕ‘ÝB²8ë–#Î_÷–g3ªˆ{Øb1YÞdïU—îp~xŒ¾}±hËÆ¼W]9?'SO��_ŒÌ ÞºÆfÓgƒrZ}ƒÜžÔÏö~�4F%~©Í`sFð¤.ß*¿¸Œ €ÞíO¶(¾°o@¸ý97’¶¸*•š,yRÊN/Cc´µ '#‚ål¦]˜ñEѪeþ‹@*þcÁÆÍ•2V6¨1W‚žbî§„¹sÄhY}+€ßm(oõ´Å›xrU~SÛ“d÷Jà�¯þL<à Ъ–¥Ç˜îqw¿ä£[ßêÖ¸ÎsëórDÔ1ÇmÄ�Q@² ˆ—ôˆ¥~D=¤Æ& Æ‚®»�–σUš,�kT±Ï8×^G°³¯¶ïk5‘¹x*ÞDØÝ²‰ U¿±ß‡Ï¸}¡…Eã¸LëA@ÚB`ƒOoæ× è4É)” †mñŽ•¾ìY¸Š¡sTiÿàthvA$¯^$r·îR0Qü¸µ‘Ó–C¶u9 ~Y²0×Öáî¤ „‚6·#ÆïkE,ýè@å¨>Úê# be{Zhfm`�`‰G…Ðt·��}ªý¸K.§¡àArÓ/ÅÎ[ŒyÔë�Ïh�fiÇ úžÛ\#·0ZÒ0�ï)�^ã¶ŸëµSY¥’v•E8çdæøu”²Ó¨3©(,ñv@k&¥Q€µêÌg"ª�wñh¥ØG‹Ž>öP»Œ�¶`G XÓ•c{ud, ÌBÞË>+`ÿS0rMUÀZnë¼ Á*¸gø)v“Öü€ð­',ùM ²³·Þ8cä.uHuF9ž]æ&qHJŒT¾�Zžÿ®W©&ùG›$”¡ÌSÝ�ÑÒ/ÐÜc«õp‚q*u�Ï OÝ0.Ë-ùY‰sÒË™|a�žþYR:=ô�Bë–¤íÅ¥ÝO—ã;¶2•¨1n&q¸°W¹Êß�Œ§Üî7”gm¨é!Ó&ï ¢ìÂuŠ]¸æ7Àñ4rì•…={·aÝ«ÞP* ¢úr8$!BÉk•Ü&ꄵLù»å§ >ÈžW†·E—à”ƒæ¡�ã$;–’½‡¼çøãæ¾v¼ þØ¥&„óÈJ ß}pòlÊ ^"šùIä9J®Ã� •)7ë¿WÜÝĪˆÊx¦ÊGãawùáˆcâí9ãÊèšÁ'7>ôðÏ.’‰îÍÏÖR¶Z–«�ŒtfB‹²Ë<ð©x7Ç7Íàו;Ré]Y¦òñ°JÍOÃ1 ›4äâ Øfîçdiܯ/“ˆ¥]ÙL 4ÑûdfÅÊ"ᥒ :æ•_# í_Þ6¿›Ї˜ë£ëjª4íX�ºÎÚfr––a£*µ]{×Р�î<Fdl=盽”Ý”žýNñSÒÓP[à5¼h†-íü4PZ½8ŸBÑœ Û“sf�µØõ»-wÕ ¶š©) ²kxTªŠUÖõÈøÉûa‹ù¨ðQ¤Ä*Y—¹ÔC 1»1â®IÞ6žÚmèÚ+W»á¢Ÿ÷50fYÔ‹Wó[‘²�í.C¼�Àù¤˜Yp’S˜�VBDÓZ4DÚ-NœÍf÷bõ�>5§õ¸åq@xN©ÍÕè� cÌÁ\º°`Xøh&o›@³E?ŸûC…ûÆk=4«)XºÐ]þDÜ.çó©Šr¥èAîóÕ§¢o‹*óødëš™…\0nV‹ÊõG™Ë‰QˆÈÃ&L­õö[ÔÉHl]†C‹;¹¬1ÌÑä`}k6µcÜFV`×Åüˆ|.’2D&üòŒ|£ãp CàbiùU´“W›{I�ßÜ¿ík‹CëûãÓ9ñº(œ÷ô*³›q¼û4^G):�Œ:˜ÓqúKÁú9‰ªÀÛùeD©ˆÀÕŨlhqªí»÷‰á3‹dÿæ ¤Ø»©„žUîe$ûf^Žu£ïw2ù/}É^<«N‚7²kP‰ò—},üÒlÜøós’:èÖƒ¯­:dÔòt£Û[!-é¥luÙp2@/ƒ0Wxqª8»yôÏ�ww¿{ë¼h~¾«îi>v¿ö>ó‘$ΖöÅ8h�ìLÕqoù¦®Ý™@KvÇ8¹+´Z4>‰ðO8U»»Þõ@eàžà2”f°~£0Eæùå€A£iäœtZ06Ç|Ñt¿À!æ“;AÅ—²s¨F‡x‡�eT‚aÅZ ´¥-ë+møÔ²äïûibÇÉ7OÔA ú7 ¯½†Ž¶\yïÔ-™•ž Øâb6-Ùµo¶ B&&›7‹5�¬6õ{~ùå9¬W.ù'ú\ò?Ilˆž™t¤¯˜Ž2† "BG>¢0k)2ª©riU×ð«fs]Ë”Ò>%3–êø>Ah.èbé¤fã½þ]S¢¤¬cÒûwr-aéZ?3Å dAs”+Ö Öë62�ƒ¯ùÊ~Ã’€c~èJœf½4yu½£"pMØ”õò‘ ÿø™ÎÆp@µÝ)Â7l–‚lüe¶Gbw¬ï¢¿詟³Ò¥P¬»ŒÄ{˜òp–ÈÆÑX¸  çÈ#¸xÒ-Ʀ„jÀfÀ…Ô±ÂÌ̤Á$o„[³Ä/¬Q%[Ÿîêõ=°7|bܺlŠEk"Šü\Q« o¿�QÔÿj,yË�Ibz9 ¯@X&C«*j€ó“8ª,ÔsΑ*ÆõÇvbs�®6Rž&ˆœK › €õô�S­û¨U~ňÐò¦÷åPÕò¶Jâ[ò+<*sŵÐõ’´\õµì Q…O…ï³…î”BºS…ùÁã5rƒ©h�â3R¹îZÛæ0�:¤73¸CØ»ÔÇwûª±»–‹ÆÀ³+GØðbðŠuèЫÎI© ×v:Yy‹l;%�%B›¥�’ ¢, >AˆPæ�„‚xhä!�èÇ=5ËàÔ™¥�«}RÅ0·§^Lƒ ¢2„9jn“ΰn¹ã˜ÒÛ­^³ÐZih¼!uFä;7Œ»{˜¤7¿ÐÎ1ÈzËŠ¯>6‰ç9—KôÊW�sbv�„ÖnüúTõ!1XKþy¢ßA—Ø‚PͽçÇñ 5c�\z¥a2µÛ\›weà”S8d3*LIa� ÛV·o�³rpKûLS® �¸0íï–:;ÆÍG<«ØÒJŸÇ�öÕ+L+÷ŠóȈ0mÔã0hÀÔcÃŽ0¬à|Ê)Ê œÑTÀÉš”¤5?ÕÇõþ¶“¹~I6yÆSÌcÏ¥„ů>õº³¾Ø´8ãáW¢å»cì—5þáÞ½3†Ë%†}ŽFˆ‹Ï9øÄ'bBŠ"ÈEê‰Â”æA»Ñý®T¢Õ‘Wlœ ã�[Ñ 7C`'æÔ+צôÞ­ü4ÊeÔGÿöÙ/¶€cÂq"´7€jl aÙ}!·¾ˆõ#�,O†´/+lÏÿI *¥ß1‡ˆt"[P'­æªl"3Kñ¦Dƒ¯B–fù¥ð³·]¾r×êS’™FâõØMœ{šj†á‹¦¼©ÈÔÒâ�”%‡B¡O8w ¸Þ � ÏÆKJöãYéišÀšÄ˜—s‡‰;¨¥˜ÞÜ÷aªÌ³ÍûÏŒìþ§öfqàU…áD´”¸ø<µÐЯ‰¢ãÑ¡áÕÉ—/Á:g½_I�’ �_>¼ýNÕVO+ üv�¼—(šshLf€’ÛÌ¢™‚ÛO¨µ¯¾9cäÚJ�CsJ,ߊÅ´yžÝ„ú`ǃ(TÚì­‘<*ï©ê¸fˆÄsQnËà>Å Ÿ?I™Û$?z}6®÷T/É=8û‚ée�ºy�yòa¤qùÈÇ(¬ Ž_L!®\3‹2L8êÀ³[*�)ˆ]Ž í+Û"ì„Êãáñì“ØÎçFT™�¯ZãÑ•®V;¶ÊÍ÷¡U-D Äî`ïœû·�Å®¢õô k˜24ïŒè…°‘¼‘÷n ÜP†§šÖ±R±HÌüçÆÉÄ@êÝœá^ ‡8­Mä½7|>OŒ'rÙn¦r–Wïøv§ü^Ñ€¼‘ˆªSc+Tï¨IÑêVzϪÿ zä…ºS©¯†¶•ðÏF}¨D©¼ŸFaYkX„á‚®íÆ#…=Ö_aª˜òñ#<†±Ñpu¼cÆÈݱiߨýÔ=¬B_SÌì/ªâò SªWƆíL¿óßxZO¥vC+$ .q;â Øö*i™S½X| "Ys1”¥ï7‚ å¨là ,à¦Á¬Ø�ÇJGŸÃGªæ&3ÜY¹9¨˜õ•Ë» ã<":Nø…QfšwEj.¹øXAçç™æà·Z,âû–K\8ßEò^q�†§DH´C2ðÎo[©( k§.sG`®†zþbùžÄ˧ÚÿýÁ�©¶c¦›7´Ÿ—‰ë p¡æ7$æÅg÷zÌFRåY Éù 4NA�üô3ÏVe°ÑçK§“�÷°Àb7Áç|@ôÕ&ö †æZ„›Ä´†ÑïÖˆq°§*£çˆ¸ü´}A7&³~^÷ÿb¿cÅžh±kÛ¶mÛ¶mÛ¶mÛ¶mÛþ]Ûöíÿ)i_úÚ/í‡&=›Íd³gæLV™5à˜u)§Óðáó…ðæR¦p÷T+Õ®”Àø‰ã¹Ãì$l$—Æ*኎‰B#óK�—`L|%]µ‡œòS0껊®2í €»ך—–h†jíé^¯CpŽ­_^cþ5“çÂ.£œ¼oEy&«3*&F[Ö¿hgøFÓ¯ƒRpi#T„f­X,ùÔJ�Öž>ÄšlŸ¿º@æÍVøîR�ƒ)‰D&ú¢üGG:<þrþ÷èft™þ®”F,Ö�Ö/—‘Ñ5'«.7¯Êbø5aÜQh¹ÞÉCÏiUw8ƒAؘAÌ!Qòô²§a¾aauÊ&#y£s;7ïÒA±‘ª&=­iÒJèí4ój<;Îê_»ýe>nò k•�è�]-¢TÂO¸\¿ˆ“þ‘,§ÝÌá6¼ÛÒŽ ÚÓ#& S˜Nd"¡v Ž�׳HÛM2<åÛïű‰ÚÔ“¹Õå`.Õˆ©uå9u£Øœþ †I`Ïp€1�R|Êš3+E^DùƒH?ÐD�%A)†è¡íÝiœòÁ;¡I·ÖK“ÎsJµ‘Dç>"Ÿ¬ªidzŽ©$§µÚü[ö ‘º;ÓÚx]›Z]Œƒ˜Hî¿?ÈYÏtÉív¥ =�f7fƒ$vƒËOlò“™ˆÈ*�Ùô>ð$'wÅà™ ¬Èi™6Hx7‚÷eÁœÊ˱eÍÍß‹K—ÔyºŽ5ݤðˆT-‰»}•¯§ ´�'¸vhÅnyäc)aƒNÃ.|a×ê@¹,§çoííÔì]’&Є‹L¯ò×Áð©AfÝ1BÃTÁ…hY:>%.(éÁ­D¬*�\ÖÁe°Ü™Y›St<Τo•˜Q)å­,_k ,Q€ËF›3y�„G©Ó;š›ÔáüÕIc7?€5·´f8Jl†Ž:'çXG€={<¨æOáïïj݈àž\–eÀ1„�£>²T“ûL3z"Ocà Õ¦ò�~l{3¦±ÁËèþ�œ'»h4c”‰:‘óçL�ï´ ì°ù)áïÓFˆ¸v) “ÒâãN\{ßn“zFOE0qY <ÂÊê·+’ÇD€”‹Ögýaø†SŠþ‹ÚŸÍ»[~¯A¡ºôã¦ÞCX¼]Ö9a àŽŸn²¼é{^ÇŸ,¯ÔÖ¹ >0ØéˆFú[he^$Ò<1h"•îc âýÏK_Ýòû+ªeSfË¿>iE»ùC€«ˆÝãĆ=|ágý×oYŽƒ—bQèçÚ;}å~óÐ> 0r¸€7E¯ Q•Åé[r3ròÊ&æ6U!Ì(Âa_í3+û,?�+ 9àf?޼Õd~�‡SåöÍ{εÝí'-OM" HS"ÂÒ�P¼àÊr×ÿ…Ÿ&†IDá¼;E·ßD¦HZö-™ ’6n~½#Éš–e$´Cò_¼7þ¯@äÜ8)Ð÷<;ÖY-Á°«~Q¬5ò?„9ˆ¯",¦¹(¥Y–Ýê¨ß×T +T´y/ �xZ‚ýWšA7M1xÍM‹×�û;(…ø>ÓTgá—\o²Cm"Y±=‘tÆO¸¯¢‡ÐKŽ«NmêZ'úzm¢tMø=wÂ.·úF@-6Òé�>ë’ÀǪ3nE”…ûÌò²ïVô¯"HaU2ÈCÿñ�>çÙPþ"¬„'„¡ÿõj¾O•ÎCgh©uƒž¿/»ÝºÈK>Ëßj¼q¨õ b)µ' ÂÇg¢da}m[%§2´ñ²a  3åyá|ıƙ¨’„D{& aõ%;pÊÖk sÙu°hÒ�Çññ…¼  ûmåçÜvbd*TÁ=[¬d±àW‹RêÁë|B{HôIœaR`î©7‘ ŒÒü³sšïÔ”™Jà0jÔŸçQ.·e^3›ŽÃ3äc< Pëa=:MDœÌÞÏ^î­Ö×Â:ÃŽ~b޲¤ úb%Âh&2I¼ä®ë²¶"RŒyäЗDé I•îA]¢’·ºf¬0]Ç‚fQˆÍ©,ˆæØ‘º�õFFA5(Õžÿ1•ƒò™v¦²ô{®#Ïë:C€×ÌÚÔ>¬w„äÈJt¾šò?‡o*/HÊfĤLãÔ?GÞßÇ‚‹Å·Åš¶¹Í¬lšÂlé¥úÀè;!ØÏYŠßo1à(‹öä9ã«GÒè|g].¥�Ã\�£r�¹Ê1mÇn{¸�v« $Í€l2€“ˆéòÓ'AzQÂWääBâ–ª·˜j½{·$~õ«8¸žU4I†¨=íõõ4[ŠñÖ1Þ #Km«Àc“˜W:€Þ O±Þ¼@ä¾ð~T ÆP.ÿ`�·F&2 ¼;¨uÁ¡ƒÈ´ýI\¡Ì軞Ua9ÎJ‚Jõh˜6ÌÄkØë¼Ò)crðÝ a Þ‚ñßU:§·ŒžrèhÞ$0¦ ÐvC‘/Ñ™®ß‡YÖ¡X¼ˆE'£ST�MPÁ‘ yz~ŠÐËŸÃÔnÑ8‘ähŠ4ØåÄ”ŠÝmŒÝØA4‡ý/y[¤„ cß·Æè1ÀVý秆n'ËGÖ}—]ÕRVyküÂvžT ²÷¦ø4Õѵ­Ë9ئ„,wÕã¤y¶ø–ðý}»ˆ±ë®]c™‹ô #tPPžô@óvÞÈùKB:´Ì± ’ŽÝ€Î¬ÞÓ¼à‹¾ctÆøò;��Bîl,ý'§Álåy¾ŸÁÞK#4�aÏ©‰Î.+5ºntòSî%)‡‹~#%�ðôé%�†\‚�¨MnK_Ôíteå›S¤n׆†v¶��Õ"2:]v·¼¯}m©”‚º€È¼ñM£bãcyS¿å{4´Îx¢k”ÓÿÜ)©vì[ ¯iÈ&€¿YöP" ´¯‚�Ø—ð’#Û®Cµ‰å�Ùc’rÀñÐÄÞï† y¸�Ú½!¥Üø›,©"@ ˆ1­Å¶?Ú-,iR»� ‘Þ£«ÿÕ$‚°ÊLC´3GÙpÂ+Ö¹E"¹ê:Œâþç7Š´ê;D-âÓŠ~±IÛ˜ Š^s„î jø†/Ä�É]j†ãN&"‘·¸ÚC ‡¢Œ,•(DÑßÞip°“k.¹ «d²™5/æ„@-È%öÀŸ{õ¸~¥U_KÄÙüÌm=ðïqƒ•„fGu•êýU؃僰çeUU²èBr q2u‚Ça$mµ1œÓN%Æ5š �“=°A·È±“¶_í7ÚÎÿVØ Ô¤Þ3Í•t‹7³2dWÑ›ŠèTÞØQ¬¼5kSŒõ¤²Eó­Xo7ÅÙ"Ûz›­6·œ/‰Ç5 …Ëå¥Ý§Ÿ~ÿîl5zcä€QÝq¼ àe¯×šÿP¹ßû’+ÄWa9œ0Û¼‹LÃúK¹ð™±Ø±` ²¹dN6Aì95ÉßôÁU•ó—Q5Mv‘á¯Iµ›!1öj�ü• D´ãsèOuF“�Ëß …,¶SlkÎðm ø'[ —¬¶5¥ËKn�.Öuß„wh“Šj˜Ð½ þ‚�<’%�\ÄèœhQ9Ób]º‚ÛñóÍå lð Iü��Zd�ä½t ÏpM<Ä2´¼š¥£a*ÛuµH÷_RÅb­‘6-ÈÚÇJ\ðö¤å(‡­š¼È™/m�9ñ”�Ø�DÉOÓ ×ñ€óf°Ù´W2²eÄ´�³ I>ù‚ðó}á ‹ÌÕb?ý–Ê%Íré)ÙÅ®j%pù£$å±—NÇ»Ío˜*±x¬Ži´à‹ª´gÉòœA‹ŽÒGÊ•¦¦¢m=„tL²SÙ¥…>f•^+F±•”õ�Ý0ñh"÷Â^à*§®òˆ¦×å@Ú›²â¿-kív¢ÇíÍ@Î:¡óƒ- ±ð}—h'PMd-ºiKÙOö _š 29“KÏ0æ¸];§u¦uUÁÐ ¦¬L`Ô]5Ÿ\|V��‘Í�¹]üC“ü)æqÈ.‘úÓ0Ud­KØTÍåµ!Ú -£­ èËç¼Äsß|¨1‡™ë�ÉÝáµý:í¤Iz§x>.ääü£c9`“ñ]ìļ¯ƒÞÆŽË†ïʇ{KèçиÇQ¿‹%xÖêMt=¡Q¡|\Ú©E~»%”Þ#¤-/:mù-÷C ’ë„û�öèLò‘x¹³ ¾4Sœ£ßÄŽ�«ÓGîhÀ§ì~ppêVñå»ã@CùÎÅ/¬xF•JW³` rtF¤ÆKXöTk ¦NZÀ^aÏÙ!™ÄYFS��¶ù§Ìëa#�`-é£î1ü9ÒFÆÌ�Ј�ÓP‰e ‹†�¢¿>_w5ú.·Å‡C�ß‹¡ˆU‘ÎþÍVû DÐ]ËJCý~«=‚ö4 {»±N ¯IýÛ‹ÔOº^·À­Àpî.€:r*ÁöÁ/&c±J+p#íXšðSvÎmèn{± –ýÐ�%rõýbG/s†Lö²q€¹¿አÖ�\U Ì~ürÂÝß!ô‹~×’°‰ðý ÃQ)B†‘HŸ8Œí×ÌݸTîÜëЬX;ÜÏ¥^ÿ6Ë1“>ÑPäPÜ¥jठ¸H…¡¾›3€«ÑŽfü…XX*­4¯;¾1£Íóß]]À”úWófæsî‘/Š›®ªX;šÂáhÞÌÒ6ÒÖ�ìl×=?]Ƶ£¤mË´'Ó©Ò^Éì}ú ªÇ∤<;~ôžÃ}Ø•l¶.L<J"ëéP†?Œ*®Gl”$÷l.Ô·:¿‚f+…AÕ°>—Æ5@?§G:™~JmËG»}§V`$��Çíà/ãÜxu¥˜Ó©‚íè倖mhÏÓg�ôíÁœ²¶gÝiØ�åñ²Ü;œ!áÈo~ðÔ'PB:žÏK‹D´%A¨·%⃠'‰TÞ÷K8‹®´²Ç!M¼ÿÒ#ë5#9õßoé÷d¾˜°¼ï¦Iøž‹÷\—o¤®¼Ä?AÁaef[“bïÉ�™FÅÉk»pÇë%n@H!k–÷ez=TÓ¼»‘Xéü4ì…îƒ!»!¿oçéó*�ÈÜA„†Ôõº|£P_òÚ¹ª�»ÅÆ·n|ÆN·¢ÚRd  ®óqÖhM˯¢—iQ3g‚ì¶e0™Â±v`áò)\±WéÙ �°<1"XEùàw0©G¥ÐW%?¸�g~íxxékü¼�Y|ŸŽÖ»€f’•×rûw:�¬Œ¦;¼c¶¸Åê€hæsŸÅ?Û÷à!&¿ÍáyàÝïs(_º'ÝÀ*ö]µ4`„@<Ýx ¾EµS|VÄjÇÐÎ&ëgƒv ¿Úo,,VëU» œëÈVç÷êu´§ÜÓô½Ç¶ão�p›-›Kîÿ²µ,òyÄÖm¢Åô�¦ÞÕ´Þ(.£É‰èZÖß:Š3ÜêþDê~4©ŽÇœý×âŠ1%³sZFh°ÆÀ7ðHÝÇrQH…€«¾èÎøÙ &wR³h«G)F@ÿ±w€Fš]ÂˆŽ¶Øv;Ä¢OÄ"¾õÊÂM‹�Urgý§æ“$R©Î åÖ·‰­�! ôª'ÔÖ½xË‹²ÆgWT�Ý ~nRaP ™c vL“*)Rmë5*—_¬ÍTuD¨™@XÌ4¦â+ê-ú\MIß¾ Ž½ê†Ü6°2gþMì-”�A$‡ÅVp‰š÷·xæ>~ø1íg6óÕN*{‚jÈŠÂ × ô?Q-�×Uìñ¦‡ý#94ô{ÖyÄ Ü³Ÿê9Ö{�ñi #¼w»füv€âö:?QÅÌ …|FîdGq°Æ ¬ëß*}SÎØN�šåU ††ãH™Gió"ÕȤÔ­xzá™j4‘…Ö¼üôˆ²²züv®£úË¿Tÿ<û˜Õø¦BEôâžÁÇ÷…5'¦~15¥õ– ÕTÿ,¡ ™·R1ÝÓV=ñªqäR3oÕžÍpc´<· ‘«ãG±R��üÊšÓö,RöÉÐjx —©ÿ Ô© •¼ý"§ ׺:FzU÷2}=¶· -.nüî�ʰ‘ Þ{ïñy†«ëÉŠjr"§*±$Œ®ù, cš 5Bea»žpÐÕŽZë¦!¬ø»<·ïÎ&Çâi&Úý©YÒ|štžÞ<¼ ¾¾ZnæÆ±ÿy*æHØ­«ø7ZX9&d˜‡' ¢�©_�o}¤³8§”3Ä[} µFîR¾v¯ŸBì~SèD!ŸcŸ¢%�à5‹¬/Y5?{œŽU¡žB˜uóØOªVÆX¡iýƒüÙñox­�×´D ÝøÏÁ/-[�ضTÅ킽"ÌÔ; ÆÂä­±Íp{ÃÎ"Ö®ëÄLÖ>•Î}`ÿ÷6@l@™—É&À\Oµkæ:¡[Ò¸ú×Y^ôEGÁ¬…ö;¯õù¸!—{s¨ô�üX<ÝAÙ\ë<�zæÝá•‹]~OèŒyA§N‹>}6ækú¤o…àí—¸’ú"ΨŽ)©ó9êA²�ø »?¼$§ D\ç0d>?Tk÷ý·3½M`MF*K\Hûõcã ÑZ–dÖf¼¡Ó2¡Ží¯ð¨Ìj-+aÖ ñYÏ¡Î6ùÔ.Ô&JÀoÿ0M@@ït‡Ã†ïbŒ(j.WÁÒ³R˜}�A0íÔPž��_ŽW8EU²¸2Fè׋ئÊ �ñ·ÿk~ðÜŽù…;RÓ¸¡�#„{¬¹êEÇHç_Z�;ÑJúåJ…ä øEñ£J¾ýÖ þ+ï1ývncec�Ä—cH¾Pس1Oöx“AØz¡<œP€ŒÅ¥j¹»]\3vîˆV+Vè^u°ÏÙíZ]zjäü`½—êÚqUì>áƒà›ñ“uµ¢ëì냢ó´Kÿ°^féóvqe–$&O´‚Õº¾£þN|…R=5¾æv ßKòL—#ñåîZÄØl†¯úöBçèüéÔèîŸí$ èâ·ø³­b†*Ð 5 ù6~^™îôw2#&Dõè^vÓpe¥µŒI%½ÒDICó¾÷ó›ζc�È4•]aþжlT¾ërÇj£š�å˜oÆ Ýd{Tø rdëŹï­ªáp73ß’Ø™UqË"ó|=Á´b•‰ ÿ?%éE)ã6û¬6ºÛ".^ò÷ܺ åÕ£häBäñ³‰Ý ^F¾;IwuÉÔÑÆDï“oߥšHqAŽhˆÎ7œí'¾²­J0¥f¾ŸÉ�ùLÚE1H+±ŠÌ‹)¿Â¿Ý\‰°Y½ Œúü³„M•{»“Ðfô@×¢ŒÅI%Àz%~Å a#rÄ\0-öVžÙt‚ÕìÓ.Û€íY¨2C³ÆüÐ2±nÐÁªðõ‰È}­Þ:ñ.ˆíºç¬‡+ãìÎ_Šéú",Y¾ÂÛZÁüâ …t™œò.Ôu yÔÁ6Qôœ,ÇøÛø=ŠùwºJ§jÙIi¨µx0íav�T}ꎻ{§U8n9AÓ€ô…5/ˆnnÏÜ0„7ÑãZÂèéK§7¥¸½"Èåöy[¢n24‘›áÞ�ì@Ötê‘gS'¥ÿŽôÆÉ¨¾%Ï9¶µ¾Õ ÜÂrãEÑÚŠ¸‰ÃήE–'«e1€D¹¬ g! ô›Znž1OhdXÍð³ÇWž›ËÃÛ,Ya88<õa˜9»÷ þ&0˜#Õ¿vŽ¿@SÔà/zl*¦2ÝÜÇ`w^<¼çþ½3þ,Ã>Ïæî6em;g,FFÝÂÅ@ÊáÑ8YÕþˆKÃÖú]NÕô`á O¹t®ë­ìÎøˆª«Dú&'ËO¯¾ãÖnÖF$®@üèbϨ˰�Ò£$=IíŠa(Rq¬*ûѳúS­'p�¥ ?mWÈ€ò“tÝ>#`Ÿ!½·h°V§ÎåA<´$�lC`Þ冂57jö¢ï†…ÌøîÜ…r ùƒ}Ö3 ’R}D-¾Ñ£@9žøÄ§3SdLÞ³”‡§YKÃùöŽ)b4Ìâ )ó[«JQÖÌ1s9¡ýÞº�:Ú[%‹ÚÞÄî fûµ„g JJ-J蔡½,~çíoO0Î-EÉ3ºÚìîþ\ û3]‰³p´ÄR/ÅÝ–ýq6>(޼J %y´Í{€·Ëqàæ TÅj­çRlÂMâ½¥“a”Û jDg�–QÅP“) çJ}#EM›³nOÆëm�ˆî”ui¨áÛšÌ6Ë‹RwŒŠ¡�gÙcï&<�žš,–Ínám�‰÷&ÒW¡zÀ$‰ŠBv¤ûšWhÈ6ß\N–uš]ÒÌOU6×p\·½>ÃX7*¬5ìJ4ò\ŽÀÄ�<Ê ÈþØtÅwËjƒòø^cëÍG¤ØÏ%A‡”z5LuZ:±VD¾æÕ§qû:…³¯»#µ2žêGvᇠzõ*mJäøÍà Ö/=aŽt¾]…Ç£ÈXf Ø�Æ¢s†RM¿Q‘­Óz•]w‚Ù˜ +7ÂàÂM)žkt£Ñé[9Tßov7§Œš.¸�j}³‹(£&ÖÄÄ OŒž£Œæ¥³ ª”«j9u*=ª¼„Ðrknóµã®›Ë2 p™`EKÙ?è-ÀUÑ�"f¥ûßZ–z=Lu/ˆH½âœ¶@ÇUÏ�\AFÏ÷’°IšL˜°êÂU’g«ö¢ÍÇ­ⱚ½B–[4G+S¦|zÌd+"牳x6׺Qkü‘ ],«+(�^C¡ n�fËòÇ*È(Ëd)‚‹3(ê«°Ï_ü®Åszˆzï`X茧¹·öb‚µ“7.¹3ƽû¥éš,{üÃÄ_¿°A2è î1)/œØFyAÁHª­ 4ûN½‡]´ ¾Iu€¶>6EÁÏrõo�òàü€µžz兩t;­çÕ×Ý5¬}Ü !7cÿ{ÃÎj?Oážä‡·O#èfÓó Å9§vØàáGÊ“ …–d©ô&‹èæ‹ÆžcÀd†'²Í`2 ³•Á쭎ɲҔþ¸ë`ÐJ‹-ê¦Ì:]ë ·ÂŒ{RdÀ^L°$t( [@ ¬˜Ô ãáù\ëÖ€Óa‘|ýB«vÂÝYGaø¾ä/Ô}ÈoÝ)áÓð`ÉÅ4Ac#­l~áÜo-lý—ZˆqÜÃר®b‘,ÍÃÍê±*}‰ëÿØÓ¦€íR´ŒTKMqÁ?¹˜Å¹¢ÂéÉ—Hä“E¢Ó› ú8œ‹¸Ä/0óºéD ž½%úö¦åšà70ŸyðøÙb*]¤…y)—y 5ùKœ°_‡|Œ.gn C±aœ"¡½ä³tßþ"?ˆPî c˜}ëÑyUš Æû° çþ{ã—GÚuº/1 Ù_Ãõxl¼xeˆ, pôš1æN�x=¸¡,ð ŠÚü›OùWñl¶¬¦µoc�})d (¹ùm½Æ›ÄocK‘¶ü}ɶ�æªTÂZåúŽ/’“j"NS¦áÁ¹Š~Ø®N�|$aí!%$â2SÐϨÜÞ¯#ÚZŸ0 vÓhh%gl°n®�<óù¬ú:HÚËÔ€aFçé0ñÀç§ÂH-x>,‡Ã ‘6’r˜zκ·A>âéÁì,êÉ2†­ux†‹`ÍàqnÊ/§+Y¨Þ¥¹I-1 ßô?/VͶåSõŒœv~¡®üž$Òt§ÇEF�ŒýJaˆV¡°üÏg³�ÞæÀ¬ÝKùyúr…½•Þ©ÃåȺÁríïU&}sŠ'Xp²€�~z‰›*ã[ 9ý[3YW€51¦j‹âu$âGNÉÆÖ$ÌŠBE‘ÒGçÃcD¡Þ8g¡lÙ¼øM3½„>B…üÒ!(`‘=òŒU^[OûMå£z d5Ë,ÔË3¼™!�ÐK¶@6]2€² �6×�w‡ë¦?`©è¸\è>-ˆ¾Yq)÷ˆ*öI 7S†®"Ÿ¶1¥µÎ³pœF‚5üaþ�Xìr®+¥ ±Þ?F%¶ï…{dP�6{5ÛÍ��Ì„iîPù+½øoÁ{·ZÐlð×HûLSšãø avåÏ~“4çm{iÛ?Ê’GÏmUì¸0.–­u9¦Uñ(ò²©sœCš-G�Ã{%,YWYÉq_:&ïØ§u’ìP®˜IгÆàµªÃ0[å‰g;�«¦`vÀ�[ÖŸ� LK«ãµgEl¾ž|�J%yZgèéëO‚ãS°#G_cP0gŠíôI�ÖöØu…–ÏÃ]cêH�hsmµ°“ ƒì¡,n(¨ ¹ßã’�o œ”±W}0ÂÙ€¹e^‚yö¶ii?Æ'\·$™ ¨4^^nüåÈ#ÖÏœ¹jÊ/qÝp~0W?)Ù’b‰¸[óöéT'b++ˆæJë«Í”eÂ8aŽÆ1‚èzØQ¨®¶Pì¹=&¨êã‘óÎ}Ži#VonèçŒàhjßA¤¯‹¬%_ZY0¦1‹MÆZWLæÜ"6ŒL¦zb�>'âþ—4iÈF3:ªðl‰jæ{ràgs”²�Cá ¦Í‘Zô=Õç¥3MâwÖ´ž]¹‚É�°Ú: gO ºYà‚®�)cÞÇÏÍ3;\F?à?Ú¬[Þ˜�0¯vËoVõM�*ž\5dÅ"[µ™r�lµ~ƒãNµuÂÇÉYU+(pÄô¦p‡3ºž÷£SâFYf,§±™–²� ùõJäbÈð¸o¡Ó–;Ä *ñsš¼?‰àωu…F3æùbæ¹]îMiž;o„ÙuhÍï ¿¥®¿lFÑö§x®<¹l»Œ$šŠ{Ç 5rØsl‚ÔbåШ «�èÉš–¨I;iaMï0pPJL\DéèeØ&h›*Öÿ„[p¼ðš|pðÜÁGUü Ÿå¿Í-°³îVÞ^{ªð؆À>¦D” ³êá íÊ{È8²yVû;€üi´ã>m ÑÎm~£».ºì§Vi«ž÷{>ß«bï]¿�ìNþég`øn•ùëÝ {ggNøb#é,d‚ü¥ÁWA ÆGP;ÖóÓ"¸·…iç[-(Í]Û—ùAÌ¡ 0F9�ˆR¤ü8&ÔBŒ•òVÏpqWµ¾»™]KüFx¥Ú''B ²+¢pœ|)¯a<&×3à‘tÚ8ø¥0"–4D+ÈÃÄz0Ñ0ÚdAˆ÷ÁMÒm.�|9ÄÆ÷¶WŸÑŒô›Ëí s=6J|J‰ñÓ,I2�< ¶e� ‡¾ªê(dÞŸV¾¹.ª¢%2‹´ŽÁ_Õ^S£~‚=‹Å,á74ˆVö'1dGB¤�1‡±èå¬ÅámqG‰ºÂ„óŒ¯?ø&‚Ð ZZD ,­ëzÉw 9ù]vÜRÜcìÜOî/‡•%FZÿY`Ä\×ô;´¿A1:´µ¦bþ×�F~x¬ }Ï |Xœ;W4›(ä…C}ó…h<ÁeaB8¾�dÔ‚õàXë‘c¤ii}:’xDßùåD�Ö{ˆÀE)©g×ÑbåUšzÿ‰Lõ˜8¢ÂˆU%ëÌqúâ,ò™ùµÜH¾­E YíºgÜÿþ-^Z´ÇWÂ2®hŵ&Šªás©,‰ªâ¤Ýö¦�sma`¢–ÿR§Žò}14{€l�Îf’:ydâ4ûñ#½ï£o:°œÅQ*�ð'“ÍfÔËw¶N$ŸžFwNP1Ì�â³¼s�'Á ¼±bÀÅæâùHÇ– º;6ŒiUoaÊÇ›¥„!²Z‡z²yE£ø!#ßq¾ÈcŒH¼óI.ð\‹ƒÌÁ›jGæšS,}¯cz˜}WÆÅaþÉ€[$ì„æ¯¯’ø§¦ƒPwOãcÉ�Ø›Jv×S@ }Ìÿ§‚Ï•e.Uh¡©éÛðâìºÃs€=!#ƒKê%NDúçbƒ³ŠT}ù¾ÌÛì¢<Åæø?6nþ±g¶¹ýÏ{¨Iö>ò.šSêy©& ’¥}äFUηµ_a‹—x™n%�L‚~¶è¯$u€O¨ þ~H‹¯ :óD�±£^Bï°ˆ1¢ï{2øþÖ•ÞMèYénÛ¿€ ´"ëîE$Ö”Á´cŠ–÷áì߈[`ì~²Ï…¬§Gt¤ ñ[¶l‹u…Å dÝ-¡4§>ÁéÏz�ïá©…�xV¢y© �ž„”–ÚÀMRö$ÌoÒØg-AõšÆ~|hL²&—‹“¤5lÞ¡ A§Fî|÷Àá^g`\EfÂKÝ‹ #3aìȹ¸äC‘H‹NîãXœ›œµÌœúÓ Æ8∳۰B­*´ö]0^…<ÙïÁˆÓÝ GîÎ6NÇË…"Z*EÔ½F2˜¸�ù@�G£ª?£n,øE 阌b_1XîTŽ€ìÖæàqëS5_  ÷ø µˆ±Q]ŸýÊvnB;km_p“š@—ÍJ ̾˜Ôuàr¢rÇK&‹Áegh›*„Ôr“ô܃¢€­¹ú£�]ØqeßG>×Ð~N‰=9|2T&èÚi)ZMVžÓã™<ÂP俤d5¹[ÇsôeyM3æëÌ}±¿>�¾œ?¼ø²y¡>xh¬2GeàBÇ&1vPp`Ç ‡1ûâj{e‚@Lt b yñ€ H¯ãðY±Åö÷@'„ŠŽ ,ÎUÒÍÉ´‡C±óÏ–¡÷܇3-æq�Ð5õ(t6B­œrRi$:»yÇw>Dñ7ÊIÏ1.pclXŒwsENŒ�> ›~ð/ú1B>ÀbÆNûîsª��mŸ!þH—² Hl¹z4ßMÖñ/ÍDdÆ¥úÄEìŸîa´2Ÿƒó¥Bã(¥–�ÁAž« Š#=¨s)Ì'(•¼~=+aÕZ`"›·Ž¢Ë‚Ùñž ‚MR n,ha©ýŽW»…÷‰®m�•5�K>-ÑÊšýÌ¿ô[o¿Ç7�±§ }I‘ÞG~ÏœÞÔºéQ5JeBuáÛÀôô$¡èSΤôÕÐ@Tà6Fêëù]Ö\÷Ô¬]ÞÐÅAÎl‚Ÿ›ß�(å F(–lÁÔÇ˱ d̾�ƒt~ÎN8-ã€c@þö‡$ã1—¨õUà’ÚÙöt¾L³®A¾1g0AAuDÕ‹I‘sPÙå67ØÁ á®Týºg…6;ªq‚ügÃfüY3 ÐÝÝ™ûæcªF‘äͦÝ~PtÓŽ§#NK.ÓöÈÂ$´›b!§ytþjˆÂ^\²§èQ!s ‘µËÏ–oy?â{j°.àÌ18ݵëpV— ±Äî\Ë­Bï òEæû–Ò$E_l39­‡áQÊÈ?EÖb3>Nz Ì„�’U‰n°Qo)-Ï�oõa(anCUP�o'æh«‡5�‘:9°àçtŠ?¹ |ÄUØÁ””+;‘ ÌçMb\ ò‹tÇ_B3ÃþÕsÑ�2¶Éºõ„[¾È‰šVGö{ý�•9\Ü?W¶-°ï¾Øë טá.�ŽÉ^àæ¸�1=o·RÓÑÒïBõ&Qbzô”‰¹é¼&_mîÇ%°Di��;tÄ5¥µ××ôáFÓ´kÈ]�膀n<Ì ßZqïømcMº­áFfr1ÂÀº‡BqÆ}Ô¿ùvêì #YCÙvÀ)ä`*(vë?Œ r‚rùÂ̇Í:�¿2gAZþâ´uÆÆÄøe‚¡™™Ä]\LÒ�’ƒù¸C8Èh¨fªü¼�)ög¯ÿ,‘HÑx;›7ò¦öÎ8k±Á4k¤‰à? „—}@]™i™�2›¦—¢±p³¶Uב2ÔÕÝsúÃÀWé¶�ºíjgÏ ‹æ&}13*n)‡¡ñW~#Eº/†`ôDMQ�Š´!Ùϰ™‹ö“±€>”L§^i/,1à´(1èû¥>®ÒÕÑ‘ÿ…!awˉ·k¢HÎeÊG\+èÕBÖ£\3!œîæª+ò(çö�ZÇ#|ÇzÂJÀœH¿õÚi2‚ÎñÌz™]§B² �ë�ÌÑ)•’q�Sa´­·È=gÃåjÆÀëQÄE+SØ~„(R­Eïé?iøœ‰ÏÜ/þÃÂA)ZX7ùYV‘zè½Õ¡r* nƒ X_ÌÞ ×odÐÍMªhyôúÜsÅ^¸\P1{»$‡Ñ�-–6¹•ÂSºÂÕÌxÿ„¿ß†AõU­<3EEš&Õ*€GZ¤Ü´’r�tF x™“{m]›ÿ{D»‹ÙüMŇIö­è¨r’¬š ”ŽÐrÁÊòß=žÊúá‰Xö3Ê/x¦Í(�T6Ó U-[ʽ—Î4 0œ´Ïx©ìšÆ_°”sú | e/Ó„0Ûއᜠ…×”$gi‡¿¨–“f�A|3âzYÆŠÍã³ÇS_¿nKRÓ‹•-³ÖûñòÄ÷m¢ƒLo†~W¥ øn+n}p¶Üö1Ü<úm_¸c1‘Y áôŠ>×Ü•Æì›¥°V±ôLYÆ2Ϊø,x«þ\Á¡üc¢I2˜÷ìÁ\ {Õi‘V7šRžnõ3Äp¨‘Ýû:þHªúã ÕÍÕv{:¢›u‰SЙ•"Å�M¡ü†ÔËs¦ƒ[õ#¿è·ìnÌhLÚ!\Ô ­_§Ëj¹•:Ó‰¼œõ)�HFΗ±„Žw9ÖZ(ïÓz�² ÿ ö£ry�wß¾½!¼Aù¹œ& ÅGeô걯¸Ööì’SjQJ,{¦A²4Bdª\çûÊä­624®0l5þohrRD8n.¶·ì9.·úó¢g`ã1<ý€îë3{�®Å-k(m¶eÂLç½Êâ™2hkðX:S =ó»H»˜ç=ߢ,*bl\Úf6$‘îÓ¥z~z‹˜ä/Xü¢^Ôǰ³õ‹»Ð4iRWrDfÇ÷¦\ãx`Ù܆>°ã©6­ŽòVªÌ(5)åƒ8ûa“D®6$¨½&ò"Üi}†K”hoéUs^.¹ÆGËÓÕëxƒSœP¿�ÊÔûAšÌçWg–ýÞ�° ÷&À ¯`¢ùvª45ƒÿø„â9g• öÃj[›À`ZvÕ³èÙF|צ0†í t;ý=�À+ÚÕé% ïæñ5œ¿v••f¿9òèÑæ….jvm�Ðm¨÷>Ö .z H^Zš.! å’ôi~ØbãI¤~±åîù¦ÿb±\þ«; f2Ÿ�ÆDÅkî®B ,RÈ«¢KêhtÅ„žÄ¿SCÈ.X¯Q`g„‹×ãþ`<‚ÖwÕµwe4è{¦¶G+Œoj²6—4Í ÜiË‹Áåâj8Žê WuòqS!*¾Zke²û-,zØ�K®FEã8Oñ¾; ûMÊÄ“³þRZ@]Jj‡G5•Uê¡ gÞ€ã÷ /�é�`/Ej­'cÂÅ=�æh^˜ij> 4ûy讼ß;@W¶Ï›²“ÉÉÇýk3Ø3ü¢++}ØÈmE›©{ªûÕï{Ÿ‘ÒÐ!—�I1�•Ùãc$DYçJ\Sõ1ì?jëáh«±jê’¤Ùˆ½^UpV½ üCöH.Œ8^ÃkãkwOá½JœâÒ»$nvªÅùo”½¦¯gýEáêq÷rà ”s+Ã<ø±&v`–ý±‹’‘ú�'S›©N1°s15‹.{i�ݦ‘…Tw@¸hÒ—”^¥V»å žN!}¢û\Øã¿”à5o©~@¨g9 W‰¬fDJ$""™��³£ z©:;‡í�f�•SýÄ›Oɇ6e¼a%—~ÍÅa¾€+^󺸔f—H”]Ñx³EØc«"éØÏQ„æÙPMÓ»šûöó}ñì·a¼ëïmÆ>åÉòÁOªÇÐŽEšsÝ NYU3tµ¨iúcgiïL›¬ YDìN°ˆò#^ê8çœN];ãâjò8B]§L5ƒí^Hž7J€ú¹©¾Ø"["ªUÝíÃ…>§”–‘�Ëd\Þ;9hÑ:KÖzºWÁ_Ütâ×ðhý‡‰�÷‡½˜TÉ@ôi`Ëü óþhÚ]U¶ ·fsƒ®Ï8yY~8-ü“®~{„„¶n:žI}Ïμó[FþñEðÛÚ�ì,Ê}�[¡Qz=å$6@±É�<‰Ì½gàõÒêþ¾‹CÐ7o†ùB3l´áÊf|Ÿ�t+eÎD‘³x JAo„׊Ün¶FÛcœÕ{Á(�~–=¯Ù7yØö<äY!- YÓŽ/õ¤ñÑ]ð±Uª5ÂNÎÞ�™O½e±I²÷E¨È6°÷NŒÇ€aòû0h¯ÕƒDçýÚ'á×:_mÄ|Sâ¹l¥¢ Š ×§Ûiåh�"UýÃ̦V‡£œ£äÌ!ù—³ GS%fÅv™"¥Î´”–M÷ÛØV.VüŠðCùµU+Þݵ„"Bu{¶X âÃv[ÕêjPöZ_™%ëDÁK”™�Ö½ÍkIŸm8Ë©éœ\g\UÙw¥”µß­[ J Ò:h™eÝæ°�F¶ïéNF{3bŒ~Ë7ÖmıžÕ†l²™âÇ f� õo@ô=º°ß$lWš»"¾Uä.þ=§&fj@Ç«-«1*b�©ŒÉ1]¨�—;qZÙ./f`AùÁcÀ/1hù1ÞUuÅoPh-€Ï±õzï{ÅüP]ßyvr¡2–˜©d#™l*Sé6&÷0o†+˜ÞwbgO·UícèÏ�'½Ùö+š°š¨*œ…è‰|†÷í y0cÄÏ—´kÙÁSá"´‚‰²VŒy’¯)ßb<¡‰»kupp²øÝ Åϯ¬êˆêY^ �ö…ú…DŽp\ œ[êܸªAF!&&ÞµdÀÏ1Y¶ÏÒZÁ©-“óå¶1Vï¬îQ‡�“¸°Xœ¯Ó¿$噦´�æ‡1]¦VZ3ýåe ”Ç5|ïãy0Z²þV‰HNîäZÎ’Âé Mý#ûꚟê¥N¯¤ôÞ0¨Úý'\@]ŠÓÈé³\´p-òŒ´-ë:RµöfNOl‰m¿ÒCEZÁÔôMÕ‘ÜF#ÅiÀvÁì}FÚE»Ê+þkÁ“0>—�äñؼÔ3jrYXY–éé]=í�bOT×F3¼v²½�0G Ä-=:aHòÄü‹§sç©©@Üqâ E3,\FÔ­4ŠSe—Ù[øá×n¿�)êÆ)c¤ôGÆñ5KÃåLa{ø…C«þ4ĺ?6›^$zØÅy‡©t,T—rÁ‡tøcB|ö…U=j76´ÓôOÃ’sQSJ½À20¡“‚0G\/*ƒX�ЈJkVj»hQ0�ð¯ó¥3¯LNÅó::|¿{9eS�<Ý4ØkÊ¥Š�ëŸ�œ¨óâ­|Y)…Á]<¹ã/3 (.âÁç6ØKâ•fÍÂgv9×Ã(T¹~hÍ‚2®†GaÄcc1¨º1§L5ª2êÛRŒæ RS´pH9ü-Ž�yýõ|Vüjw�åj´h™ÍÈêm:wf›ÀêPùIÔ0|lHTÓ´Þ+É2—«GfRÔÎÁzÂÓ  ŸRÛÝþ{œe—�…ŽÄð!z6¼ÈÃ>UÜÁ0™}n^ÍÆQÇÏ µsØ“-eñV)>|GáDj£•X?ºD·ë\vý·_’=wdèQÃ>™³°ô Ê-›IsUƒžö…<§`h›õ–>¨>«pj™r¤›}ÓÙØ0 ¦Ý�Jùñ %L”˧a“³™ŠžŒ`ó•0;Zh‚ôÖjNÜס¦fߎú=»$§[Hí+øPæÒ˸}psRªób¹²r¼0mx\}ZÆ4{­ò½ 4&`iüjZ„i‚}”í[ìåhÁÚÎJ‹l/Y;‹—@4õO±íEÆ9{↰K¡ž?C³”ekŠ6�LÅ«¥¯D¾¦FÂÖIÄå�ž“=6¦´ã Ý/æèÇ6ÃLÕ(vWL~‰¨…ç:ö߈ vRÙ²kk×W½Û’(5¯á˜ÂrV‰äÁì1W|£�¿ ÒINÒü:‹)^KƒZN¢`îÕ ƒ7?>CºSU�C/~^h=9 ^‹©Rg´jqÂZ&&gÇk†f±¹1NÝ«`_<ÿ—fC+ŠLðI3ñrNfÒióm%&™[‰òëñ…Ì0�ˆìÊ;–u˜ø—¶xÖá%z�†3øøM©8Ë&+za²ô¬~¼à):²Åã` ²�  8„¢'4«X…ê±²Z‡¡×V2üè yH|²Ø¡¶¼�1"_‘ŒÖö³»ÊJÚXëÂo"£x7�jÑbì²Ò¬f:(™CY[#Ë6«�†¨¾µS¤@èa¡s¨– ÝH·Ú¦æîf[†žéêö:ob’ð`­ÒL²<ÙÜÂJ#ÔQKûyÄlVÅÕç*:Ý$Ôwçf¼€Ø+hFJIÂ;¡]d Âȉ>!W)¸Ï;Öx9½�=�ì+Ð DÈì±ó*‹2ŒÉ,ÑkÌ“AÇÕMÝ[®å çÙÿÌÕÈ£ÝOròÊ\bÚ”orÁ÷ôMt€b# vVõv–wÝÛfç 7hú\Å ØÚiòMšÿº]÷ªë1�§o’Î'WÁjVU¯Ãí×jŠ'Ç<°ÑÕü(>jiˆãîB±3kX ÷6cûªŠˆÜ· ôÞæN¢où¾c¥ Ü©·Õàpžc8S.Iiz„ÚÛN¿—w‡õe`Ã!C½ÓXF;Âcòb�M¼6{ÑNB°Zf`š¤“¹Ë ä}llÁ¶ +íçAÁ¬L唉ԕez\åËrd˜ÞàÃÝUxÄ4ÚíqîP.ÖÅùèû‡ô5ž 8Vžk5ž*äãÄzï&�Wy†‚}™lAxõH^¡Ù'x#vEòIÏ‹1pBy~4«<2ÙþÝÞ³¼ÖÍ_�ø×£>\$üòªØ}˜mn­�dÎØ"á¾Ùj< Ó ñ„ 9³ö©µà¿Ñ‰ÙuË‹¬ßñ„K"õ1à,$$AˆglÚ£�–Ò´j>ˆ"ê'Tõ†'�Çýe¢GFÈ÷F…% õ|ÇÇ6˜ˆ£ÎÆÉ†H;ÞZg»4U\NŽ \Î‽ £” ز“›¨ï×!ˆ¤rR¶þ)½qãï´ ±Ö”¾V''Ç”pŒ� ILU!Q­&s¹^ȼ’, º`¾Úªk±ç¡Õˆþa%1Ú ,B@ë@þ}ò†CÝúÃv,GC¾ç(ÊÛ!^¶ùê:uæ\¹�Â(�ˆ½›Š*Z­:S—«xõ4^ð(}ð Ÿ ·5ç½õÄ–¯33 >¤( ßq¨/”Ìn¥“Bà䋌ªØƒ¬]7ôñzg <”V‚ åØË&Õ¿Ú¡œ­Þ—à k¾¾º.½Ðâ*c³ˆüy®Ú†_‡ ʧ GÑï¡_ŒiÁ‡§æ[™ys$Î#—ëc蟠¤·Óö×é�ˆQË��RÞ²œU–Øq¾Ò¾ážŸÈ´"DÙ8À^86ÀSYH��éÛ�J¸É|I©Œt•Ô@‹j[©¦<¢ x M¢šÍÊ x›‚ÍÔ"Ü}›Þ’´Ûõ÷’]�öôDgÀMR¡Ìÿ£xD†b™Ð #YÒLDà‘ù�Í×øªÐ�7�Ïôëê�êÛ�3˜„p5MtVžéçið¤œÖ8 �¥´x!62pÏ,ãÔkªoĶ—œŸ“ÏÙà<8”cήo�úÏçŸ Q)Ô!‡üùÜ‘…+iHi‹Ày{²HLo<„iÆbö´XäG¦�E¾¾odo`þôÆ¿I’²þ=K—p˜ »¼çÆq”÷Âzì"] �wŠÃ†ç“½ÙçD.cìÓï<ÜŸ£´ùù=¨è°ÆB å®Æ Ìo!‚ø<(š§H¥FBh¬£-ÈŠB—N*}D öò…@g³9rˆWÕ zT²ªÖº=¼1j˜ÜîÊ«jäžÎûÊ)Ÿ5’¶"”�Bz¦9ç~OxgÝË©RàJ-äA<ŠcÌp‚£Û±@Ôç¸oY (þ%í# IÆpáŒþÅz˜Lnºú›5s”Ež±NP¢¤D¦^ÖB•[W}Θ×xg�]æËÍ žä=Wüõâ+l-åúìJs·=ͯLg&! ¡ÀÍ�t±Òd!Ñ�‘€sˆ õ.:‚ÞÝiª/“\Hÿ¬ú€PŽq°>9iG|‘ö7ý�™]ŽˆwSgËý@@L²ÛÛ¥ŒC»š±wÓç´/Æά¸•<†.;"BôÕ6S¶S�jdûR‹åÂs“mÇ9€ÈØg íÀß håߟö’}¢²' ÏBZýU—g¯™‡Æ¡n)Ûç&p¯b<¬ª/¨ ÌzXðŠ"¯µ !ý¬ÏPyÓð¡qîãJU܈#ËNŽtM (kÝjKìDúɘ�¶Ô¬¡\ KÞî/ûªèªX•® þÌ&<´ßУ׉…Mst‘’�4¢ۜÖ}}¡À %ÌîVЍ~òJÉúnOî ¬œOä`~¶…ꦿv� à_Ý«”"чËüjäÛ”KR~¶ñ—Õ+åy\À Á““al¹MÒ•Ú”élo4¬b  xߨ‚¼ýíø+¯#tçU0ƒ›t9D×ä¿×‘¥â ´Úy%£EºwT*%¾€ÚqbïìB!�½˜U»6h‹ÑcÌ9GÊêKâLa*Ý õ:ô&û8[~0~Pña2G™™ÌÓ4d `Š5}õ¾�‚ SchNÓt¶‚«ƒmoa“'¨ÔKyØ¡éjã%Iè1ÊÚœ²g¡ô�’×IJvh ëf(Ѱ8À8#hˆl‚N°yr¾úuRǀ狣fÒ–‘:o3Ž4M�H¦�â‚^¸wR“…O –F [y“M`×OüŽ{ºN–5™o‰\¾›o¨|/';ÂEh�BV¢¯&�ão`‘e€Ç¹Ê‰Vû ¿êwÁ.-)ö¯Lgo]R`9t�@_Š×ÅÓ¿Z�ð 粘9üÐ"æø¿�ž¬‡(Y?)ˆ j‚Ø µå?™ ‰ñceEíCO˜³ CR»6söE²ys�¤KË…¼ÁÞ)´%ÎGæ©@X±"WÛâ�ï¾9ĺ1deWî_�˦{ýÌ®Ìjëä9lµzlh⌟±ùYr£ÂÅâ[ÜC�¶¬gô÷óI÷ÚsÏ  6±w!h.´6üÙÌ0xa›ˆ æþ葪˜.BÆ�P§®9»ûƒãqXɽŸ^ºs2¶0b´¬RT×fÃ2µéŽCä½w¯3¶tnã Ž…~îÿR›­¡ZëPI#¹Û«ù½©Ú4¾>í*DXÔn§æ³@MPdµ‹™%8kx²X@P‹¼”ÑÞðÖ^ÑN¾¸í^%F›îÓ^aF>Õe}1Ê ÷L×Rd"â!Tùno[ä%†óʈa¿¶¡­‡q‘„EÉ]@“u‹z[Údê< é�8µkæv°éà‚|Ø–_ 3Øæ.JÚë>�½¤ûª†Á³�»€©Åï˜÷Ÿ£A€%B…Î$#?ä…K‹éŦü¯¢–3?ÂþeN 2U`Ä–ZüÛϺ¶�‡Aò¨K†ñB†¬ˆ[ÙÕâ xÉåYìïÆ+Ÿcúd¹)]�4r¼ÿÁÛ3ိ¾]3ŒÉ¡iÿK;yã*ÙËž¿Y$D¥ÑŠc ÷x·6%Âà€FkWÜ!ðý‘µ§r°Êß( µ*i¶ëõ”Ñ, Ná©Ã$9Òq;Ø kÂí}ଦ˜ÆýÝõªL0eÜû6J^¼y„ÖŠ}v&œ-XƒõDH ƒ\id'£ân›¸å¯5/…ÕæO¾)¦¨Š.Ñ…£¯ÿŽG‰¢Ú“°ó�ô-ì-]§lASTbP�VÑøo@:w^ ÏÒtb@Rî“Cã5¨Y’/Z6ÜïWò ÓüŸ€‰Ž@ÖÐÒî¿ðyþ»àz}¨–àGŽvJçuóȲ„Æÿˆmñß904Ë´—Ké2“�ÓOƒÿ«ØÂN¦†.öNÿÍššy8:1ÛšØXÚ™¸™:9[ÚÛ0бý§üÿøtô.¦Î.tnö6 Ô Œtÿe'þÖøOd6–ÿjÿƒÿ£eddeùÏ#33 ;;3#3#;+ÃÿÃyüŸÂÕÙÅЉ€ÀÉÞÞåÿŠ÷7ÿÿQü�;ðßÇ»G|åkÊ?˜&h§+cÿ«;¬djì¦lciü_|Úѹ͓#à£[‘Â΋ ÖÁ ŠØÂF¯{|QŒ ú²i]V ›Ž<ú«l åRÅI) ý ñ^³Š¤“|þ‡~È×gx2²¢5›@ªÊÄQû_é‹YÚ˜Š˜:ÿÏoƒ°vhÚH“· cCÓrY1mGv;°'©5Þјðj* æ4àÕù¯§ÞÄÐÅð·:™ÿ-‡ÞØuCèP‡)óHšo�ÿU’bÊÂÿ…ÿ?ç ¾¢G÷7ývH㢥’¸6 Š)L”H”ºif¯bZã�“�±@À`žn¢î1õG,Úá»NŽtNâR,2H«uaÊtYžUB БƗŽß~5¤Ó€LØò»ÁM8öxäÖï ëà©fÌfÔI‡h¨æÔ5 ¢Ó (R½F…B¨�»Qr+2œ±ŒÌž\hëÒrÇ!ÞýD&³"F-¨IÂÌ”óP8Üîb%e�jÝ“³Þ“í, zG¢-âéÛ¶'ÌÞfGÄ5Îf)q�ˆ8¯Ñ¶± æ:U�~¹s°¹¯]8m�º€-‡ „¥P¥_µÒåM½ÇHjˆRôF˜ï‹ß*ª:µÉ íÞ’0[”Xăº ÏèŠms¤ßò¨šèµv-¤cÛwì€�›ªaÁ»/eŒ67wGÂG¨DzUAL+�‹ ¤æ—q¨ôÊü !–Ñò›N’qE2VâØŸ×�T…Ÿ�Š9“‚çeŒ‹7 ÉplEûI9¹éå½À�,_ÌÍ-¤Í*¥×yôRæ%Gè%Agmöü%vŸ~ÿ ‰¸·Æ{ô‘^˜�ŽíS?e�úm½¤5ê*‚~X+- YÎܸ”ovtè:äuqß#S>²HI7ʯ‹Â9¢åôR׺½¹Ž·t•QÞ%^«ºi Û¨gœ1‹>Ëšú,W÷·üõÌnŸnsD3a, !0GÎ7ræGï¿ »6ëӉ蛷]õ﬩pÊR×~NdÚ#�[ÅÇ5{á,Ac_)§@ýæÈÒøä¥˜Xª6�-)º?ºåƒ nN�5�å`Ž((3àÊ„à ,È9›Š®WÒöœ!w¿µwQJX%þIN¹"Cª–q·°Ã €¼ôÆô^-Fô�çP“o�X¿d!F$êþ¦+"o·‰’¼Ù›.Àg8Ågfj§—crן~¤ç¼_„‰úè6 ÊÒNÛ­ßCg¯åVg…‘S|[±2÷㯻 ¨ó9'÷’X§ú²­‰Òû(6ñòi‹ á`×�@åS3>’ÕmBd¢.—`ö™¬­ z(àºñEÇ^ìS¨Ú'IzÈ^Ž)‘¥cÓ*¹Æp‘•Hi÷ˆ&'Õ“<¥ÕvÚ­æê{0Wg{VPuƒc©;>Î�ËoŠœfêÃpô¨cȤ%T¶­2|ÄÅΕÂ5–¹ñ c*!2=¼û\­7³›µú.LJ¤tÇiÐ ²ø7'>ÊÈÑ´‰4q/V7nvhJ±•p-þDŠþsJò S¸"#Z.MG=Ý�’T“冴ãèªÜ&ñM•Áã8¹ÇfT®ø…wH�{ «pŸ,‰�xµâ;ÓûßWóy­~Ö´„ ·02ûÔ›¦c áÄ*Ûñ%×Ô¿ö9: Ä5j—x`mGmŒ†ö{»¥þ9;˜yÍvs½Ø“yyD4â�™g„§pî[dáóšÆ7×1¡^ _õ)l9hTœ’æ©hîZK ~GýOÛlâ<=—ª Èt…?� *ÄqßÝ“G+9èô�Wo:cH*Á¾Z#&¾wã{Ô/UˆÛ:¤4`ˆŠ&îPËü1ûÕúàú÷†}uúÌîk•ç+ÖddÑÚ>UNM õðu³V\.ƹLzt²ñó‚+ç¶¹döž0-_ˆûŸƒ‹ütÛ:ªw�­æè¸’ü¸›p“îuô}º#p•넌{mµØÉ@ŒI–ÙÛ¡¤?õj¼…6€ô«ö$¤-ãj›3UœfsóÔÏ­y ~CÖÁÈ.r!ì` {æ§Óä¢A¯ °ËÍÙ÷1ÞÃ\ Ùõ57c©WøÍѽHÄÛZð =‹Š‘äBuëNžpl⪗©î�òq[(e:FX;øª´Rš’�8p¿‚úll�÷àÝx‘cíÉp�ñþÖ¬5üûoÜ ÀFA‘Ð`sªD.åf~Ïò(½J# ÕÞµW*™Ÿû¦ô² Ѭ ÜéHåEoFêjyÎ3‘íçlÕM·&²«ÂgÚ‹�ït�!gŸjBdìÞl‘¶í\ AxÛ–'•Eyo’ ¶ï¬àNk^T¯ع;0ý‚€(ÉY{Exú ßÿhß‚´%!Á/Y¡rƒ­8¡Í3T;_â]ÊÅ%ÖÐúæ~ ÍD¢š!ó¥Ý5uÿ€†�C¾¡äŸphP��RiÔHQ÷tëæ­È ”3Á²=&éGÁ̯1F(Ò§ôÎ'+ƒŠ•¼CAÔS 6ÅE+ƒ)´ÔÑ]êz5{ãxÏOöŒi�,I½ZL“èë`½{±4MËÌ®ïû™ä—gYY!”‚Þä‡ >¬"q6Ý/ ôoÄ$E½—»gN!ZÛðÚ�ðÚ@à<ŽE{š;ô\¥Å¤ØwJÚ„h§è¡BXÃæ˜Ÿ¹A�¤ÚÙ`ð¼~F—�´üŽ�‡=þ] ®˜9»Î ÌÚßÍçYÿ‚û ËXÀºÀ¶ƒñJV`9�ÂÍ/z['!ÎO3 ÊÝs*áRp· F�eÓŽIò£´%³5ç|Í™ÔbZˆuϦ÷÷ýv’OWá݈=²–d×\7)Ái&mÈ–ì*ó˜xÅ éÏ¡«Wê%ÔÔ4;rZˆ¥ ³43“ºB£›e½Ýîs«‰‹†õÊy­_ÌÝpo¯éÛÇ�ëí�ß�WÐxøƒDå.ú«À-ï²¼ôRþèõ]!Ù)„Àd¡ bu¡³G‡ÄM‘€7¥q,fC¤�¿ï%ð( J¶*Щ„¨ F’ˆ/â`’FŽ?.Á¿3-íXúWñzË6¯*IÁ”õ‘wÜ”’=¼häbZdƒ!VõÿÒ›ÃÎê�oZÆh¼¿î3ÌkÈá“[±1r¾¬ÊäU!à6WÙ¦rF?¿ÞmY£-%lr@ªê‡¦Xñü(²qÜ â+åïÏ mp„…›¶=ÄYÖVÞ®,ß ›„üËŠ�¿ ´´†£ÀÏ›-C»2¸ €tfØÅßóbÖ�ÍË éÆ¤:oýý =$Òk¾•Tï•�çÕ™Ûi©çÃm5•yÓgúpuˆKÀ?a.à•Í[FýðüÅÕ›)‰ž±¹ëHR=A ;q]xuu�ôVVÊÊ„ {”¬†Û$ú‹D“ /.O=aW\t.cHÖF^W;'€öÂØå�Î�dÀpqü—º¾²=XÒÜå°ïŠ.‚i®Ûntó™+"åÑÁ^�vÁ@2ôz±i÷cÏNÈ>´ôWÈP“$éÔš¶Å%§°Ÿ%¤q<-8Î&zy5:�q¥ë=�Ö]gôiˆ—±\sÐÅ™.Z²üûZÎðJŽG8Ô¬[7è{žÒº9æ/;‰�ÏxòÃÁJ¨*cXôà +ÎØy"ËVÝ>FìÐ}XVψ'Äê%ÝK‘,ˆð5Qþ ¨«æ !ä¸Y*Òª‘°Z°)âp›’ ¿w?ÝÜ^(kµ2h§lÒº­aÒó|þÙé>e2ȼÃs7JlÿHÉ'÷åü>h§Å4ì´Ž:[e×OÖ²wæÃFj=–ô ÆÐôÔ–;¢ªÝUH—ß4e+�=Ew«êˆÒà—Héʯ9ÜIJOJåfr«dήh.{§MÕÜrVCŒ”.w€Žƒ_œÓÅWÞ74’&íž2´yOv¬»íSIjÐb‹™ˆU©ÍlDT¿@{w¼ÊKye ÷K´šž}Ûš.„›nwFÌ:ä:ÿuÔ z6öè£ú�Ž´ñY�ô• ùIÚºù.S;ü-÷ÄÚ„ÉVQ¿W™e¤ßÛK–u+¥Sp`Ãù&»D™m2õŽ¡æˆñì6j¬—š7ÞVêrX °‚èèÚBQ¼™¡@hAв»ßÇUçdõHDß�;á3îñÀfå2´ê.ÌÚ7ÞL‡YEF§ •´Å‰\`&MùŽˆý¤ ¥‡�Ûýfµ÷ vêÄÉ…÷ÛÔœýô,µo÷Õò;*TSC!¥?ZN˜'*ì–çnÿ|°!¨îЉmþ�Q`i|„£kì�C{bY·›�9Ì©ÁÚŸöLÒpúÏxõº’+ñF”0N¸!Ã{w'w[åeoÿõ%*c0.áè¼éCr°C.ýB|åø³HØ–Dþ5´ÏpSëº(öW1æ5s‚äì à̤ë8ޤ[´fõR'=äºnW?k¢êûU$gßçÆ¦H䬻qe̤Gê”…?ijAoL/™C¼e«–MLºñ…•ð9  K2Öè#LÎ{×èç1ÿ ¬J{ ×uBÜV˜8Ññ.ÔO+Úy}>fÜI©G�ížk_öÝkɱÈhß­Ä ¿:ÒHÒÞ ŽðÓ‹ئ*êxH•,S‘nß�Øýí ¼è눤Ú9·*š˜µ5zû÷#='ÅWš—� òÁàEÂìárºÓ·C€lºF�†/ÏR*š"ú_Kµ€Ï7‹ÚûU�‰œÌ¿\�íÎΕ‚ÑSˆ½ük¶eÏ�c·b »¸½‡pºŸ•{“L+†4„¨fæNÌXî/ÿ!I µã °3ªYìü¡bŒ•wHß‹¬G…ŒáCª€åmÖ÷ZvSÝn,—Q³â†¶ãuÑYã©r�Pôr(B„À|i \uZ{¥ý9è»Ã˧KÈЯ¤$iES¢òiÐ>Hsêg@rî ãøi!¯.õ^å{ú¼m|ÎTÉU½þ,¾C–b•ÏîÔ]m “ $÷ó\­ä–c%™´!BË=`ÃÁ6U@;ßǯrCz~MLZ ±â_m£¶6X3¡@#Ãþw%:f8xïkGZ¥�YA”HŸò£«òvŒ�`¢çÀò¾´Ø"¦£Ø�x(ÙÙÌ4™�Eð�{X¾˜–žî’£â“ý-œç�‡×e*‘óœsŸü?N÷kƒa x ¿ÂèP²”º¸2ÔrÉJìtŽ ¿o…KâÕŒ?tI€†åÍÁ‡5S…hõª�EÛI´µ?h‰ÏlYn]ºÎEÆ@[òrÆŸ$ñ¦©‘s�--!#ÿFoØ.µì~HežQ .óG‚p-œ€GÔ¼£P]! ¶ÌÎê–@Uè%ï¸fB"Të�Ä©¸áó±L§©øþUZÀù ïº ”t2·k¢Ÿ§ÔÁ�€%¹"¿}• ]³Q>P0"\ÆŸ5è ñ�ê¢G���•¶hN9 %—V±µÇÒONÀ3 ¼”û1=¤•çO{¯%üeyj§�% «ç«×€ü xíÚ±pF†@zH›6¾mxRnˆ¯‹gÈÀŸíHÍ/bÜ 59_‚Ÿ” y‚�#Vº–‚Á�pÚr ˜îih²mPÿ²»“ö?À»•ì9#ކGêNK$;b"&ÎkïÉÔø‚ CÜp¥óÑÍÇÎnÊ®ÙÛ«± âP�ìÓïG…ÀôÞÈ,�0â´‰±SA ’àÂlÁ‹bs‡«´rG8ƒíáNe„$¼_³ýØIÉT!usU)} °fþ\�#iö9ABN>â6–èNaož¹}l£âÈL(P®� ޜʘöí°Õ{ŸÂÊ& ¿^[Uø':Ü\|û‚¡M÷¥»U•Ø ¯0¶›BQ.¥2§ñtÀþÀ�zöÌ­”žJAÉÁCEqÀøòí2Ë»ˆxO88ŒÂ,R 7pŸ)"ø’—l@ pÝ€W”~‡Esž�Bñ¿h³!H¼…tòE\V¯ÁQUr þ ŠkˆŸ{Ò;è­#ÀF„fõç§°Ç^ú ¥>Fr%]Ž×J¡äÌe)£çR:’±r¦ÜM|Øö™�¢6 ïIî£rôòÔDoõ{_jjnîC%ö¸8jSÌÄÎŶÞËètHÿ¶ú{´ú„œFBñ$¯ c0·_"W·'C~U.;æ®`·g<N씟MΙA±ŸÚÂâ'O2Ú¾ˆžúìMÈè8f¥}é®gÆ”3|Á™H´.Kî×Í{ßgÆ£Uß!7&#ê].¿ö }ÕÆžskôÝ ‚yvר[· }ÀÛ°¼†ž·òイmO0—ð¯P¬ÇV/2óú¿øZ&Æ"ówÄ‹Yå*»Ã� u™=ù(°!ZätU=VðÅ[†önbF¬’ ¥?ã“Å~¡¶«X¦§ƒìjRhz€ÑŠü&ÿ˜žC�+ä+%Â/ëp7þò ŸòlOþ󛊬p‚‚ø•%•„ê CÈUð5lc°Ç\4ÀŒ ¶y®P&\·I�7À|«±f·Û/Vî[ŒTË>N‹ÅÉöFÞµ¯ö'Xyêå÷HŽÌ„Y¡¿ÈîaQë.æEÄxWËR±'-JÖ=j‹é$eÊS†Dã-Û¥ KSnqþâL„cã5jËl¯�Ö~ªQqSW5É\+ì½Ã¡êy7Æå˜ÃÓc¨4ëPôOsaH$ª; Ñ)&¢0r�oùŒÜô†¸ý�Ò)oËiYù”Cz ]%¥b«9~ÅÆ]IrÒœ‹(™¡ú´` zOG•yù7‘e‹pöL"øëÛƒÚß ²£Æ�9ûâ[¥!“ñWoó®í]’.ÙÚ8Ö£! ´°‹~©×Ÿk—qXÀC�¢_72o_e°üA-û˜§A0­˜âĪE]ª\T�³ÆÞ“^zSîd'àn Ç�~Àa<ªÊÇ]! ³&/V ²’Gì©•_¾®Q55ð”‰/ z>*ª»Ћ£!…xI|‡yú ã\Fº*Ôo€âóñ�}0‡O¨úp¢Ü#ñ‘yöyos—/7<=%è¾9lá/ëLj6åpÛõ�Væ"º[°ìB�ªµ€†‰Q×Cøûq‹7�©(*¶¬õÔ‚M^Ò¿'AH“±‰i&Oò`ë¶O-¯ÊUëLçà‰' Q€°ßƒ>v×&–Å@¥Š–�T›º[ŒO�Ø:ÏC¿fóù©jªæeÈ6W ²ÕIýÑÍÄq ÅT‰µPaþk‚/�ÂêùMc)>‡?-ÊÄU=P0C„šL0¢)žÚ‹mpÇ…s™ µáÓE­§jÙOÁ”R_[ÿ•ã E)ýi%iÅjÌPãÜ sèù]sÎ ’Å”’óðó¨{.5m©Cl>ÅV(d2æ<—ümyî¥F�÷K<ÂeG6qS`þ¦J17H”•w„>­=áTµG—1å~ÙL¶È‹ ÁmPE½É�5þãáÎðÊä—{2_«c¸ZF‘¤ÐÇm-y!C_â^H�¹x¤;Œ ÕƒÆ#gôý^7>Ø9¨pÒGnÓ”ù¶°c›0WâVÝ©6ÍåËúC"} ÃÖöc$í¿“%¼4mxbÍëJœ+ÈJŠY8È_D5�—~Js™ý‹^j?ßòßýœ(ê#¥â+Ö³îTßLèÑÛk2â �­¾v‘•7r:dƒ ¸˜Z耋@¸4x ÕÜA3‘J4›ÛÇt`áö$ç½ûyÊ(ð˜#H¹iûþj‚oˆvÕäÍH‡OÒeíû £‘ÒÛ�!D7rl<4Œ„¸žõ ª3ÝBÐÔÇS‹ŽÁ£ÜhOÓ–3q¢)íæ ^:ÂØœÍzÅ] �Š%oø>xöUÛ©l"<��ÐO`a8z$=Ø(›Jøì‹|Æås9ÞOwX ße† ¶”†W@ô"R_ðåuÙ"å°ËŠuÐÏÝ8ZR=´‰·9~�Ì š(>¡kSÚÈ69;ÿWj’cžÓ×Ò±¬'°lÜazžm…ÌHUn°tÕ¤Ì|ääÞÄ­úâoÄñÐvdSÕ~”êB2‚-!ÃøÉ!&²Ë>«Í¢Çe Ôôqj ]í�>½ýÉàÒF §Eá€ßгäX(¾ñòŽ›Í™ÎU9EŠÞJ?ËõÐ3¬Ò%¿6™YGx—Ô¡®~Fè‡)ݘZõ +�õ@­5îeÁdúE$l.ø }^X?±ï�Æö¿Üi¬öž —J=»‹Åv21_è µHµSéæ“*±êÛròÞŒ.âÕdûî)¬Ä’·um;RÛMÚ½ê¡"‹ù’Ø®®�VYª¾íμl÷±¼¢ùQ­‹”qD§Æqù~&e´ P7òƨ=>64é,¹'?_HKÅáÔ$üÍGXO"®<8­½hœqi*¿ìl eŽR»Iˆpý>ºšR8I¬?XרÁåÊß³oûKá¿ËŸV)ƒ…ªàPJÕµN&ú–ÛQƵm0>ž©¼ýW�E†Ls‰�4i+ýI)_òÑoÑÉ&sþ‡Î1¸ŽËR:vË”pÒ" Áÿî”ä$ü…�q †—ò²Æ=„~¹Õ9L}ññüÑ;ge¦'Ÿ¡¥W¾%*ñØ»K„…2Ûž ùøM¤°°#µ¾é¾Rí7–Nƒn� Ž7Ôv⊔‘˜©ÿœ›ËtTK&`+­Ù£¼\JFŽ“Ã��FîÍ_äj•é ö Ó e¹‰œT»Ê2àÛ¸QÏ»`x˜—”þêap‰î€×ƒÄ¨ay;K�ãˆïšõ:ºsâ÷ñþ Åmï„ô§ ÝÖøÚõu/íøaZ°ŸX-J2»‡-âGvñw¯®0f•žª.Îø«¦ u�ƒEðBOâJ\âI {¯}Ú7›ÅÉYös�:˜Å >‡X"ÌM=ð= „¸Rfž^8ê7nÄ‘ÌüZîÕ)‘kþäè_Yä�Ð-K˜«â­ê¼eÕO 8 ’ý4ÅĎԙ͠Å÷„o×*í4ßW3­7IH@­øÌåÚaÔ¥ƒ;±&°- O¬6ÎÚ g8)íÖŸÉáª&pºø~$Äv@›kÊ | òkjüPàR�·x/í~J꨺wÐä| Š[À†ÈjµK­‡6qŠ¢#ÞyL ¡ÎD&´ 'üF â@Ô®ã/«üØV{‡™‹“)\j‹sœ `ÝXPÓ´ŽÇôTbmÉOÙJ|˳´Ú™ ¡W*[ÿÚì±öÿ}ÄVކ*ôÈ[¬ ‚t˜ ÕbíS-Éu«Ð�£Ä@›‰Ó¨Ç ;jÏBÒ[0Ž=½{‡m‹ XÒTë«r8'o㇉ÿ¼måÍí®¨*‹9!�δ\\õª¯f ̼òØ·æ|¥s©ñäÒœ%øÜ¡„H‰ªÄÀÏ–¤mê·±sVÐÞ¨Z18fèã „Æ)hz Ãç7(ÖÙr‹-½ýã�³$<‹…r/žñßYj ˜ ÔøGÅvXÌ|¿ãõ¹<¤åˆ-èF²&„ûk}„ô´wÑÓ5È`%§ß&þ¼Ë*%¬RžØB&#ó¹B¨€2 öîÅéN5’=B¦iR�ížý}`]®ü´ûÃu ø*³š> à&Œz2FHår'Œºl{É ü%qú’üaöHX,GŒeih3àU:w5.æÞAÙ¶Ä [YŸµ��É;?fòm¹wÖÁýæo|‡rXíˆr¸„GXÑÙŠR¶ ‹~ �­ø`Ï뜪gUêÔ¦® ;2Ÿ{÷çyƒÏ(˜îØ{Ç])¥Åª ÕòW|–î�XY6ŸSF´£’RQÀÈa.gUE9ãò‹¡â×Ì,4¡ú¾yÚÕOáQ±­Š}np«Ì�¬"ëZ�î¤Àè%xÖEö¶¸Ó»¯ –EOÖK1E9Êm�N—Õ'™ãV™c™¯e¤ÃK…c ¯»qS{ÒnKtÏ#!{—¤ f•(>ØÒ‰zäY󻔇�£àÌK!ko RRlå�&Öš˜ùcž`'Hͪ´¡=Àèfm`Ԕ܆ÈB-Ås’¼2�»»þz SÄ/ESïBÐ3¹Ñé­÷é];”˜&©£BÞ­²ÄÔíìCÁ-²º„‡èIwÆ{¶’ò�2»U¢Cð^­W¿÷�M#*9ÎìoÉEÙÏ·Hpô—_íÂþØñȸ¸(Aéáó„\ ÿüãZ½ l%6Ö¤‹é€¸QÙÓþdWPœ7­àDjs“ËãçW‡BZm¡Veò„Cw[ê×�Íòýn©Ìd6çŒÎ\1w` y¥¸®å¯s4,'M£Q„ì“ú…С—>áÊgdòW¼ýæenkñ7@5x½�ŬÑ6ë¤Uƒ?¹ ~s�«v/Çzb_Nôv�ë‡ ³juØ“�T½‚šþТ}òµaäß Þb™¨7,\„j§Zxìâ{”7\_ÀùÙhÜ©ç7~åÃ3/�ðjÆ>ÆbñÑñU‡Î…!©ÍÈdêQ…èBçY:l«µ|&½mk=ƒÜ!é8U¸W–¥MχÃUœÑ@kVŽÕ˜ gÒoôEØ|„Àlgž,ܸMp·ÉH!X'3áÈæ8€ÈH*±ÎZHÜèZ �ÀÖÇ¡áÅ…À6›èM¨ °R3¨Ü_½$PuˆeqµèdpíΎ״º¯÷ Ô3—Er�/e1p¤=¢ÒXå³êDŒÞ®)³êø¤`Û¶w Ã×ï*Õ•• ʵ�æ~ºuç5€ògýFòqë9@*Èj™u]\5ü¥äóïоÉÀ¡¥ˆ;«Î¾›{EC[LJÁ ¹í¸´MDr‡D?vDb’tW5‡‰rXµô›Ê!�—2DcÃ'ߨ°_ƒÝÜß2ä$c2®çH(ô+¢ç,HÔ>cħ¥>vSÇ`qk\œòÈ´\ž«�ƦÉn4 ,h$ð yC™�/íQḃœ4Zòù][A+™Á-OŠ2yg‰­É^§ ¯àgâsZ¦ª±7Ô3Ž•”öÒ[‚Çâ1…ž�b»ÍåV]¢È_¬aÙùØ"ö¬.¿1É­Ùù.SL½kÓɽÓßkG¾Ý2`ñN‡G?N¨‚‚0Ýìà6ô¹C¨Ç½ÓIJóêï$X‹†q33Ô»í*”lÞ�u·½�pæÁ5}H¾¸âóÁŠ0˜·‰ Ù{g·òE¡Eìï®k8;mˆa¹íñ�Ѿ¤ŒFÊɲY!›zšÓ«Áõ/ íi�ü½ƒP¬ÆøÝÓÆáO °¯Ú090³îÛx ïüãN*ìÜë‡ç®B´é ¿,¶°×…Ù…Ûñ©Ö->M¬8N —X¼L1 "x±eùóEžÇAu\ˆçjô¥ì]t‹Ðj Ø>¿õ™09ÍEqC“Š7= :Vúä»®› ûY¬<5ÊJ‘õèÝç&¯í”13@©ônÑZç�¿y„tÒ m D©z²îyàé[–ª‚{ZÚßîç Dèã¬=쉿È:ëØ…gî5Çî?Ï—�¿,0›^l1HéUŒžq�÷¸ë¥1ZW›#†ê‘à¬ªÖ äïJK+| › cBgñ…)#VJVÀÒɦÖ>Š/d¢E\±×V‡îp é ç¯z}qB_–µÎÉD±¢�!1Þé䉢�È¡¬7þ¶$’#„UËÉZ;ýb s í¤yÂ_¯Ã2/*{ÑçBϧF³aþqsØQÈ ð@É•Ø~je/Ân©tú |…ý{Ú¯�×Ä‘‘‘V{±`8Ì`Å Þ ­[‹5mF»Lk‹ Cv£õ?Òßs!oÎO!¤2wÔ¦ ÉÃfXštYÅn+Nµ¸çà²Ðt:AL7 ¢Æ°¼gL¼Æ5+ú¤íôêÐd”¶®lþ¬Ú‡†§ù³Spk‰iε\1/ÖJÔ8 @elChÏ7œOluáHE,ÅHÇÝ£;¨¨‘SÐÚß«¾SsOFIøÅÇ[B-IÀ›'¶òUKY±Y*Æ¢MŒ&sS±íT´`”YF I`{›gö ›°ÞM£„æ Uh 6Ò—¦mž¦ÔPуOW須ȔBÅy\÷P†ç¥­Êq²Ž��.ƒú.xº[Þ�WóDòk¢3|9Ñ0|ß × ^²ð¾ƒ‘ì=VÛûèýIh¯§Öˆ¢æIì‰Ôå/n¾%“¿‰ÐÚk·Î“Fv ô·‡`ÓÅÂÇ­ô…³˜ØYp‚é·Ö’ÆbŒ)5ü®ŸU��6º=Ê�뚸T¢!ý³¹S_Ý phö<¡»•ž¹¡>TžEƒçvõÎlȯôBt�É`ñYÕ;ï2…BŽTtɱ:°€)"5§7 c¸xä� ÄìÚ¦®&,AÕ\Šx}4hi^&…š'•.#„#…¸æˆ6]áwæÐÄrÝ–ÃÛmvpkÚbp9@Ã�¿ånÂýW1€ŸåŒ«V=¼Äí#™ÕšŽïÀwz)‘Ø/÷'ÍBC«c·X‚ Öì=PsË’N]¶´±Ý<ü¿øéûëÒó ò ­F"Fãœð;U_׃ÕTÿœïõ§}o‰”‘‡RDÍI-äÙ–4ˆ±�cÕXßñõš4päc·o±®�Îd·ð§rÍÈ‚^¯Îø J“òvbó<)e�Uh‹�,Oe×kÌÇ~æhû’ºS.À ÃÏt½{SaLÞ äåƒnH.9N´œIÜm·S�y4Né"+ ®d^QJÁ—!¦ß^kÊ#-28Zµø¤û[ÑXŒÃÒÑÍ&ÔvŸ\ÄÚ^lòÛz¹¤™æîŠÇ¦,÷Oœ™õC¯Èr áè�4ö†a[rl¥÷íËÉ«ÈØÓ=L˜?žœãï©�ÅÊm†Xk£ODÉP€DG®¦³r1€Å$£7ö9QJÆTÔO¶ýƧFòqÛHwj¯.hòþrmhn0vÃ6w>PñʾØ> /Ôê�×x Ê"˜4á´m.ד{!ªÙ’÷.üt-¤&ÙRÞÚZ:FUXå£õ‘Æ›X^±ð[ÿíH(+Bè>9DaÎU‘˜¤õö»7o‹Vu�§â¾UÓ–‘±R׃·ºÉ\5Vr{sÆØµ7’á0M~¾� m@ ù§¬£³WœÐra.v §±Ï†Ç,`�'©8ßsâL;Ä]e¥ºÚ¶� ^qˆûÔ¼¥¤7V¡ÓŠ[B¸þ§ò8ªÑ*öRõ!jœ€kÒ 5ÝgzB‹?¸Ñ úÅÉ`BâBeòMìò¨ ˜,DU¥P$RÅf�wV•Eÿ|‰l¢’à.­ç µ¾,í¸9Ž«™dŸ·0 Ó�Ìü|Ï㈠~&²mµ[§qÎSWI%‰Ê†c¬@Ъ™ø R½‚ü@óWp†#L<Ž¡½òXím§Å€úâ©ùC(&xqó"Ôš®îZMƒ¾ÊüñŸ—RgpjÙžð2êʄ̓ß:s$’‚Ì}91&…`Ár EÑ Œ`³`Þ`fîT�™¢uÕöF\«Àì‰ÝÿYî ¤Ì‘ ŠÒWîõ£e–瀨޺½KC<©·” £\³`�õsJÖ;cÖ˜ë8€á´Ê‡jŸ2Gdýýy¾U§8°ŠSªý¤žÜ•âñgË·l}¼;ÆÓEŠ“{twY{Ì b÷dH$ßØÌ¾~µ"YÝÒ¢5ýµ?ppBÚU[¿µŸÎdÞº@ƒ¬ žŠR-—›÷ޱ÷¹ÅN>Ø0Ž–Ìá~ûÌÉ{„gEÙ¿{Îv3û;š ûÛ›vûÉ”B¨oò¾0e<#@æ ”ãã™Ã·=ÆñØb¬s›ù¸i$!³§xN«Í¸öª(÷Œ¾¨+§~ ‰ü'S¸#�ôÆDælÆ«¢QE>üš M,.¼MŸ˜(ÚzµDÿ)®Úè;ËÕàw^yØ~«‹è§ +-VK¸I®÷ƒ®ÿe@ÊÔdFŸÃ•rÄ4:Pzµ6�³$MÑæ8×{òiá\Ž\ ÑÀ†?1µWû;“?*¯äzõ‰èF#zLaà¨ömó@Š_Fûaä2?Ìê½D^iÝ»jŠ_e¸]Т¸3#h~£¦4§²½ï2Åš•çþ/·�öê5p=)¸ÙBer„×ßOxNwD®v;‹D”VîŸ.¥²6E$¡);5g½üK…XìJùmѱdû”²9ƒ�˜§rëx´xµÖô�Úñ(Áúß7 øÎ™-M8‚è÷£ÿÇ2/V3μÈÜ¥a0T檖ðÑÕ2�¿)\ƒªHÂÙ,¹7±v­½OaãƒtÛj»�ýâ�Ky\“\@/Ô ,–Ý2¦H‚‚1\�ôûn^¶ÎVóµ iÄ�—Fm¢ÜZüH„1þñ­¡p°™>¨k³­I-¡†YU:FR8#ù‰C¿p¯jíý“qrŒÛ±8ñ ù5þÚ¸Mÿ³ã^e×)¦ÿCñŠZùש¦Æ£.ë@¶„cW½:é4�H¼âô7ÝB~=ÊIØ=ØÖb¥%>�¡b°ÝºR¯C‹5æpA�d(°Ø~‡–•¨Òeò¹ïªW®µ¥ìë²Á5Ÿ…FÐX‹wÒ±¬{Fz Jmyv"Ùo£œè¸Ú) @¡àÁ~�wƒ‹Pn±e€ƒÓíÏ 6yçn—l Þšt¢ Áïº Ùjõš€¾$—4rØ1‹««èBT5$e2rîã™�v�ð²â­pt�Ðî ×oèŽ 8º*Éxáöý d—’¡«˜¾ÝÍØ ^°z|¸ Œ6¢QÎí˜ù¿eɈ~lêR‹�s®›pdeØ€ƒ Ö· �†£JF¨(5DÛñÁ6T|£2Ñ=5°µÂªÞòZ`4‰Ù¬÷hÖEmñëÁ¨=Ýü;„bÌ{%ŽÝ=˜€ˆý9¾ßg†Î·ó/#�ç¤Û%äxäy¡-©è¢Öáölj„ÉÅlJÂFÏ \Ü%žw�&Ø7Þ3lc„É.ÊZ?!ˆš¯†¥ÀuaV”nkŒÍñ»­Áå­¼fþb8ŸíÕ ƒŸŒ8ŠœÑÊô¥JZ£lÕ‡!ÄÓNwá/kÂU†/d^ k_ådE²­ ëkÿrŽ:Çüãª5¾˜�siöNÂÍ¿´u|kÖ´0EÛ;¹#­>Áµæ&R†ú@d#ö‹YߢðÖ\âʹâ†xˆ']ñ´:ÞEˆ� Ûº�:ÙàÕ¢é§Ó=©; –y}É뿚×v32r'ÏPؼžÑ.n2{ö¤Û3 XS•³Pš1à ñTžÞ î­€G2�ÖÅ•Ä6pø [¼ ÉÂ?‘«7;…½®9tÝ7`E”µÀ5‘‘#Ù3>k&XÏ&¹r$v«ÿ±ÑŠ 'û…¿ñqëDþ&¾#Ó� [!…×Çž-<ùi!{CÍŒÆúU�*w4s´ŒC\!3š¨†Q ÍËü®dHì“ Nß½óp Â~Ûçüësgwû§¾ðT(•Ûç‰êp³¼)Z´þô�î_4ð㮳7éñZÍÐt�¤-™Or*¯üËPŽ_×Jø‰B×Z· ýç-e#ƒ2ÿïÕ7æÕq Q2=ŽBMö”$T>ˆ¡›_á„]BKRóaÆq–.µv´ WÚsÔíSixÆXEÒ;*ûáð 8ý¤@Á¹$rØ9ÀÕV%™O% bÆ/+ Ï{ú³æÍ¡’Ö¹°¾ÕpžÂ>1 æŸàt5´ÎGº¯õÃ{ê‰ ËÜ}ÜÀ~ “S�ü}ܦ¿<"]+5UC%?¯2÷�| M2&ì`ÇâÍ»lÊ@ÿ[3=÷¶zaœ¥²Öýt/èij×%&F›k'—@†œu%MŸ‹ï„˜°!`öAœº´é¿8Ƴ6Pg!ÍÊ—Ï(€s1ÛÒÃ.:­ú˜H„‡±!D>†WçBv}"Q>)ŒjÉÿ�ûvŠh¢¯mÛ¶mÛ¶mÛ¶mÛ¶mû»¶í»ÿ(Ù�ìì¾ÌËîét*�>ݧÒéªT�3Ð*0�íÑ41¸œµ6pÓÅyÀ<Ã|ç™æäòx˜��Êfô²l†Ï§23|ß@E€t²|ðÊñ³£¨>çë¥ý≟Éîl¹°ðSýí ‡s¬J4ˆ9$ÙΪ)ä08dc•üóöf‡B4!yaöŒöú3Û8ªÀÉ‹ßvbôbþî†ÇoJìvA+\A 3ˆÛ­A‚†µ3Ýíî­Ghû.Q8Ëó•âLb©S®�¤”¤y:l\sú‚#}›š¹¬/Ô™éÕxu­P:÷õKÎ+�Á-ãˆîN^Y +¾g�€uzùþ;ÎNa²4Û͉�š}„ÐÍPM¤dßÔ70âŸñ·TŠˆnª8´Ô)·=ôå�™µ¸ ŽÚ§˜º­,Äñƒ`0ü¥ØêåE¼©°*ƒI®HØBPO2=^õé–Xd S×N!ŠéA5 ß[�¡S4–‘n¾ÁéÒ:ð W7>¢ñcŸ`)øtç®ÿÈ8ýâ¢e5î(ƒ»æJ^¡y+ú»šôÍTRò–—/ i%kb¢+ËþMÊçñàö"ýgPÜÓÐ>t`Úv”Xî”nÄÿ»t†–¤¢¾¦Ì`ãs {$o»dqƒÜióN-KÞúñzçÔ¯¥u(ß*ý%Ø0PŸ7ÏÙ5‡=뫞Ä*ÇŸÉ¥rþ=«n8yÚ¦æÕsñ ËCׇ'é!9Òÿ¯œ-!m8O½w$ºï¯f*´cèZ¯$ë)Àï î*ƒ°òœL�*XÅ–s‰E?Të Sï‹¥Œw”«âý›ñ9=a?¤<Šúµ»q{ÙµÕ»Ðt8¿ëŽ‹ùê:ѪdŸÃlÃ|poa»wŽÃup¿)m7où ’<·–Ñ6üRT oP•„Á¿O‹l"éÎ駃ËžJézáûd Ì…ž˜Ãe-³ê¾o¿\Wy�ø“¤÷ûÍÕýÐ åâÔ…p­´„Ìi\}4!Ú ,úÁ#K×^óú‚S÷“!·4�ªQ~á>Ž?@„§íñUE Ž{ÃÝ9¿�ÜÖ0„ÎÝzŽÇØsÛ!ƒm˜‚,^ÉäŠ=eXŒ5þnà Æ>qF$/™r¤€º)Ϻ°íÖ~¼N�²+aÚ%Ï zšŒdëR½{÷ìì7¨:?“ ÂFsŽ.Ì/�쎈]†ð_ŸBóy=kAÄu[mhH…EŽ­nT.×=íZÍ*=¶S¶[YÕ¸1•Øg^¥¬¢ÍUB£)bëîË=åèç£Â¶«}Óôܧ¥¶u'‚_DL©5ÏþÓÀ ëêdj5Kžû\¹ÂZFL!¯ñ1Éë$å5ó« #¢Oß�´sû—_>¨Å¶Ïäú T"æU˜F¾¦ –!¶b/ƒ±‘Vѽ ‡ÍМ*Ëð¼Ê1ò¯æFÙC~a$£"Ѱæ_GýÉDI±ä½öî[„ëhNÆ5¾¹À£iCErÒ±À@ìólÏ8¯¢œÂÊYx»ƒÏ�Ô«Åq Û“; ú2k+£SÄÊ|Í4`àª:á(²GX.WÓñzÔ•3"ÓÇáúbv-1Sò{<&ë§Ü“ÚšÓ#•×äç/«®<`|ñWõé­ë[²)Íø”éõÄêƒ{|C(—ÍÈÃÕwóâà7IkLòœúFW oÆúƒÊ»Û¤ èãÑl‡2à{Çd�G£è•‰ŒÕm…ôlùWˆr^V%“½,W;ÝÊ‚?ŠvK ,©P$Õt„RLб®Ú XWFL9�µç^-å<0^µm É Gÿ6ra]@0Êf¿ !-Û©ðÖ3�‘®h䳄,a�;‚o@kHÈ2íÐX0‘�ƒWûØbØAwá�Ê‚”Dëå<óz†ŒËÃùµ*Žœ¦í± ¦y4Un?¾œsé¦Ò+&¥Mso3Å_öOýàA¶�w˜‹Ùj©²•?ŠbujJ»�ç:±ˆ“Í«9B}&ËÓsK1¤:‚ÛöCþ£¢›^˜z1ªL7(Δ¯“3¸ƒ óÿævYØÊŠ�/9ŽÈñœáý1w¢#Ig’q 0}‹OÐ>¸Dµ¡f€£rhf‘Ãr骷êêg ý©áìÁT­”OR‘i9ˆtÕ$Òsï?�JfZÓú==_$M,ÓzÄÝ¥Þ§‹z6m \.$[oD¸3~ñ.•rXšÍVËîàv«Ö~ø’h‹/®äPˆÐRⶱʋ2:>�ƒ“¦ÐÉBa‹õ“ä?M« c ìä3œ¿\8q&ç¾ß»Ú#$¥Õ�}Ÿ¨¹ÚAZ7½ÒO3›ºÙ äN‚´R¿PÓöY;Ô¸[!oqÏ Â‚%b´Ü!ˆ À¿.”Ïfº²]<ùÚ€k€¹³dOÊàßÁ�#̼àAŒNÐjÖg˜Çž A�i 1B�ŸM[Ü—„Í…ù¢ê'˜ÓvÀ( yŠÄëŒÄÒ+TÑcÏñIˆñ Ûž“UË`5fkWÚµ ® wQ[Á݇¦ÚmdnÞJ÷Qìb¥cuŸO‘ ¿èD±¸Çnó�öPÇØàó»Eõ¡À‚zí§òŠå¨{|Sï‡Vîâ蜵ºT\N"nˆäu›c€DžŽ¡}ŠfJßvòºòÈön¡ïkVFºz<½”ÁPЖöâÄãøC�ˆ£ß=¨œu§{}`„B!lì¯+íl]‚l3¬‰¨ZžŽññ¯ ß�©U´4¼¨@ÎS†Ø…«q/C“ËÙ�ó¬Ý¸!Ë`‡£[äV&k𖉱[<ŽKƒª›Ô2îr'à\,œi§éû­z³J"’ŸÇtÒšÅX›®üfbŠ…×/6ª€CtèèSÏ¥°k¡øh+4€õ}ùö·�¡A@¦bÀÌ „‘ƒ‹"aAŽ:BÑ[j‚¶ò{W]6¡ãWHñ»t–Ç„Ÿ©Ÿâ�½=¸Í¦Ù» �cj 2ȉ²ï0É‹@Ò⤠Ý4 �ƒÊõ©T]RPƲ¯M÷&ki g6#‘ÓÔz?3ÞúÜÖ{ ‹n’W¤7 E"šˤôèû%¶QHÿV×~ÜÎÙ+Uc¦x˜%à">äk_˜.x<ï)/»P³FœæÍ¾¢Å8Dš‚”úp-ï�iå9jJ"ú7}¡TÅ åqH²…S·jxÌ4˜­ŠŠª.@ý8‘½o�4KoÀ)G,Ã_¦I¼ö­¥OøŒ®ð½‚¦-ýøZ±+Ì—‘�ªg”ÿ†àØU@}DµŠRÈó•ÝÇ%_‹kÒï·7<=ÄëˆG*yçª&aàˆã¹*éÛÁgw¾ ð/¯S‰ž,/·Ò÷:VGÖëLLôÂKó*½ð©ùv§w-à·Uz2ÜYçŠð°*,/"1JÚ4å‹Ùž–äh=ïnRˆeÜZÙÍ�‚´ZчdÅ+£á¥S z–U>¢ŒVß?wÿÚVÊÆXšc›êkµØ\ú.»ò×ÖacjtÝ·Ð"��½G&dí½—Û}T<”ß.ðÓ³2Q;à5}h�Ç­#m4Q:}¸^ÃÑ\KºSóMµ9 û­4ŒöÚi( òêyUkËT· ÈȇaËø©ñQ¤%t”m+Ýš!ÆX<˜p·¤Z/vôCëüÏ߆ΟêÇ59 ] Îw~“ÅÃ4Ñs¯§�@VÌå,ë½xû ‡DMðóê&ªBTðözR.¼,ÃþË÷Üø�UjxwRüË\ÒÀ¦à&šc³0ß¶Õÿ”'•ñÙÒŸ¡ü0‘M/É—Ù=¤\å×1~m1aúí-Eƒto‡Ñ_�N2æy¾Õ㳄ŽôF¶®r<`‹Q„;²,C„Ã2VgÿË�Â3 ÇÑ6/V€ÿئžŸ# {ÈËr"…«£;N)Z3 »SmÚW¡­ï[!ØšÃ9Aþ­�_2òNÍáqðY# P…x`¸¥lCÀ$B‰ey=hÔdù'Ë�ŒÝ¹H,+ xŒåüQHé½ò ªÕ)Ñi•`\©Á mmÏöV>£2õïižÀyöÓu¨ùÓÊç°¥§«@OÁ7cOvAuඬŒ][në�ýš�™ÙîÓjK/·KãI@a} ëƒ[á•¡€ü?…$6ÄÀ=ŽªlÒïÌ;g%c5¡3?QŽ­4õ\•Œšñ†[äm»¥¾uzÅ�2„k¾_ˆ‚º¸S©ïg®\'×%޶%s¦ÜÒ×Äà:¼ßÎô``ßœ)Û”¦ÌÑ£|GD–¶NŽ8„h¾Jõ–Ñv3ÀNŽièe#, 8æ·¾äEî{›Oß*÷Œ]å ? 2• N;ã1õ¿^Qþq‹tdÓ_‹C‡3C7Ãõ`oÃü�>Å2ýu$¨¾“ôçËdvÖ0ˆÖ’}8g^¡Õó~qveT#v#n¤ž ¶PÖMfÛÜú5^xÍZ¹æ,—pŸ¿‘Ãñ«0ÓÎuGP,:3ùpä·ê}xÇ٥æR˜$æ7 �# Š„•²tjbF8:ÄñP-`áÞKΜPé0îTÿ’Ûôu‘úð´@äÝ‚ÙUlç]<'mŠ )&„×w}oÆj×ÿ©&¦~À£²Tß ß­ÉÈ×ÝÉÝUûUû¿ RèÏ)f¹T[¿Ü!1š‹u(½!UéouíŽój@ú²€;E|IÿuŸ¢šºph»i޼¹sFŒ¯†n؆�}è�WÈrÿË"«ê�ë¦äµFè²6RÒF”4$ΡJ*)N„vBŒ}9TG±ÍXXû¾=" EQŠðxÄ4ª&ªDX¢á1ë�èç”?‹«x¸×„±o¡“�ÆÓ`B~ôÀx|‚Iù ï�b…l¶®þBa—|[r»A¯ù¼"æìAèìÇoÎpÒ‡µX&ZÄ#å}Åøê¾ÿ#n>ç´l&ã ¹ÐDLØÅõĈ¤¾ïO7¶È"'ýeƒ÷Î:¨w7žîþOrB´§� Aäá�Ú¸9jãWð™- —Éaîn4ì°¡[;�ß…_¨Ààõq œ.�Sq»4.Ët¤¾€·» ·§nHŸ˜ð†ìƒ·|½ªeèT<¬«Ã+,ˆþjñ ÖÍàØ4êúË�Ù¸_> öŠfüŽüSÀ;eøH®Žø[)(›?lŒˆWw‘)¾®¾H’ å�×Aîà…m—zá^OM3 –!ªI „ðÍ ÍhÚ^—j�EE䓘Ø$–ÑÙmþc¾Xy^ó1‰hk«P–�b޼a½NÎÚ¦Ç^þ0,aþY÷Æ É:´!Rÿ«¡šÇ-p}³ˆå‡‚—Sh¹þe±«Jg)RËÆOÛyбû™`@gíÌ>Ю]By«²AŽ%;h…°Ûº N‡R£Z{—lú%;UGñ�=_nèV´‘nð·‚š(w/œk(–½òU#1Ôö5‹ ¶FOÜùŠfÉ3…w’Lƒ@Ê‘µ@íåÕî^1&üd¤DšÜ¯iì'wcÊ9Yñ™[›ƒ€ŠyîáìšKÜA7mÇ8-Z~K™ã0éÛ[³•Cu½ža ç‹3%ãЪÁc\F¬ÂJ¡¦´2îÖúpô_¥åÆžˆ–9·(RÿM!Þõ>aäÔ_°[©UµBƒã®ÐJå†hyd3ÔpÀ ÛòŽ0WxU‡"IÓîóaY³~�¢>‘¼Ñ Ò,‹Ý†n­E)ê“£1‚´&¿Æ(›wåS¤ËÆ›†rÄ-sÕÇÍ&3ô´Lí^Gzì&ü'v¿M¾.Å—ÐÁ3@ºŠÔ™¡h/ÛªŠ:ǧåT=à Ÿ31Õ^†u'2qæŸE¥K,"ÁÀ�)ˆ\¶áU h`þQ*/)ªkoÒu$W’ð§4�èXÞ´åkPÅá¨3Î`˸ –Š™ »iÁf´'i·�…üM„¶ÈH.M?š= =2eüí¯Û_Çož´öZ `Mw yí?¶«ûR¹;Å¥r¼„Ç-)}^ñE­=o<l!t¤Ží”XÈBwoB6ãyµ§žên<4,ÌšÉmô\+µ`d�â-ì�¡µíé7Òß|ì(Ñ©AËEáU�O¬¸‹ºÊ^Lk9ÉqÊÊgëD‘ã œr¤’'Q8 ž£$‰íîAþG¡¢qκÜ5ÙI†ú,ímçóÃ-ñ†@øûÖÒe©ŸÁ�a ¤Ë8¶«JÖŠw`*lUs{#ÌŽ^+„ƒ)û‚P¥q�šPB¯Ô~µ�.¹¡Vð$€ã1-fÁ ¹öJËlî°»µìÎÈ%¯xÂnR’žÎ A2õXñÎÆÉs*ó'S¥šâÚ|¸_úò ·ñ²zO;kCØß $³Ê'6dÊ+ ʼՀӨ Ó€;ʸšë5¿´ |tAK'wVJˆÎòÂ×÷ÏAöî=Õì O©`Š£€ ¼îÂçÑöz×ê’W@™Žÿ‘iXΔʳ —[)ö �Ÿkô•_ÔŒEˆ›Ô…9Ó?Šn§ÿK¹\»')®Ì4&·ºn�À(AÜeP¾Kù«_åu’ÛdˆáógX|/,ÇŒó\øpÕÔºÿZ~{‹*˜¬P–t(7â0ðI0&}Ø9Ÿˆt&OH/³þ¶r&'Wé¾\ƒ¿ZŽfý½äg°[¡æÀæGŠ…VòãÌC‚{šz�ñ—¶ª­ÔÜÚê‹”5ŸBqH¤` ¸Ù� ÏÎGZîûMùušÀ–$pœ�kŸ™'¤£ŒÁÜÿy®Ò»Ë÷?ÙüNÃýêȇ*ã¹XqÙUF‰q@ÅÆ¢Sˇ‹?’tþ$ú°²%7š€,|d÷£.ª½�vPäà ø Q4<æØ”ì%�…Õ 2O€pçP?|{öÄ��§Öœ X‘ «=hû2‡1Íñ¾P¸Œ+Øg+yLÞkíYý‰÷ªüžÑ|º¾@Š �YQìöbÂà…AŠghÞ5óû(MûËìóDëú© ŽID-œ€¸bB•V.e„H̱w¿t>s‡nŽJ®Ïàô¿^…ÃÒQ5—ÖN¨ÁI³ÒÔ½¬�M?� ôèk eæ M]�VC¨{DéÂw¿V9[X„ñâ¾­§ªŠ‡lij˜ ‰¼Æñ±pM|S¦Èýñ™¨Ã4lV¿s,ïj - sj·‚¦ÆÝÌ�E_TÞ¶sýЊ)£k<θ‚öƒÊÚ–ÔïVßÈ£H¶Ü,F•§YG­ ¥cùªF;ø‚+¸™0vÄÓñ2±Wp¦ÑjùB©Œ�6Nª–¥CU nã8/ˆÎ³A”9–}ÑZkn~V!PÀE…æùø�V«øþU2A×N"�ÑüÁ·Ü!“e™Q’݄ƌ|ËÿlT•EtÏ2Öy¢07ý�ÓXAþfñŠè„%¿Y‚ò£UÁö-ô ÇŽ sÐ`Ý®ÕÆD"< ø>ÎØIj½ ¹!Ÿ…§)hR_u íQF»ý~õzÙùNŠ­’¼üªFÄ®PÝaâa/ahïDyHÌë™L˜¶j‹vN‰«.ºWôãrš—õ 8f]Êé4|ø@T°…þl_…Obm;¼–2|‰è¶,7O°Ñ ºž\SýÛEB Ù›€ó~xÔ ­¯ª=ÎJR!¸R¡ôÆgS£Ù˜}"Ì ­ÄšrìÈLÇ+à�¬³í‚§�`ÝóKƒ‘Î9t‘~18ºZ:>Âïú²ÚaO( a9ÍAT8ºkþ(Ÿ]aá sÒ›èqvŸ©­5ôæƒV¿,ž¦kƒLŽ�R¬–Ý’+fèe® &.8ƒ–W (Ï–¶€Ç̵$Š;•i ˜ òÑÅs˜†X®s<Ä“ˆäk×Cþ4>á/ ^tç™ãWöwäìn¬‘f~ÿMcìM㚀É‘ìSµøÓ„á›áO+ìù¦1–Èóº¢KQ]…¿˜ZóФÅÂÐ0œÙ¾%0²}ê0 ÐgÕÏLq\-I92Ö�Ä›rËÏßÝAòT˜?Ã2±vÐÕÍ,‘yàÍíòxæJ Mµ)Ì…Xá®,•]M�Ÿd9ô±¸ƒµ´vý-=ï뎧ìo}[*ä‹ü Î{ë–”¢4Qê²Li[>DU²ý,)|Ž{ ÿqdac=™$ÞŒ´å¡™UiókD°]#õÆ %8¦8K›¬3Û(¦ÍYuô9#&rzÈå³>Ÿ[¶‘9÷M_—·‘Ü2+l7nÂÚÑùª�ܺò OqŒ V+sc¢WÆu½{eig¿ˆFSÿQÁi‡£v({ôõ5„”Vf§®uîìäÚ5í8Îú4‚ï@üV¶&�Ò?A­Š]ÏØémÔa IUA»�-UJ<͈ç�ì_†fžÈËÛ3Nƒ}'ˆK¥Æñ¨ÄÁG¸›�)$‡� %óœ´á¡¬ÝQÏnnää œF!s¢r@Å�»¡óÉ"ÿj¢m&{©Ô…OA!¼¹”)Ü=ÕJµ+%0~â¸Eî0; ÛÉ¥±J¸¢c¢ÐÈüä%“_IW­�Æ!§üŒú®¢«L;àǮõæ¥%š¡Z{º×ë�œcë׆טÍä¹…°Ë('ï[ÏQaÛŒ„Š®î'4Ù‚Gr&© æÃŸÈ�˜á¯R-ÞB‰¹Ú{ÒÁÕ‚ìË•dž“È,V‘ñ¯®Q}�3‡ª®j YœG«tæäS`(ÊIbHä÷šÓ 7Ä¡ ‡7KèÕÞý¥'5„c¯OžIÀjÇŒŠ‰Ñ–õ/ǾÑôë \Ú¡Y+ËA>µR£µ§Ï±&Äçï�.�y³¾»T Ç`J"‘ÉÁ‡¾(ÿÑ‘�†¿œÿÄ=º]¦¿+¥‹u§„5Ç ÆedtÍßɪËÍ+„²˜~Mw”Z®wòÐsZÕÎ`6f3EH”<½ìiØ…oXXÝ…²ÉHÞèÜÎÍ»tGPl¤ªIOkšô‡z;ͼÏŽ³ú×n™�›¼ÀÂAe'z`—A‹(•ð.×/â¤$Ëi7³D¸ ï¶´£Äņ‚öôˆ 覙H¨�‚ããõ¬Òv“ Oùö{ql¢6õdnu9˜K5bj@yNÝ(6§ƒaØ3` ¤Ÿ²æÌJ‘Qþ Ò4ÑcIPŠ!ºAh{wZ§|ðNhÒ­õÒ¤óœRmdѹ�È'«j™žc*Éi­6¿Ç…}CA¤.ÆÎ´6^צVã &’ûïrÖ3]r»FéBÏ£Ù̓٠‰Ýàò›ü¤p&"2‚J`6½<ÉÉÝC1xæ+rZ¦ Þ�à}Y0§òrlYsó÷âÒeuž®#FM7)<"UKân_åë©íã ®Z±[žùXŠ@Ø Ó° _ص:�A.ËéùÛA{;5{—¤ 4áÆ"Ó«üu0|j�YwŒÐ0U°D!Z–ŽO‰ Jzp+«J#—up,wfÖæ�³0é[%¦ƒGTJy+Ë×(Kà²ÑæL^#áQêôŽæ&ux@µAÒØÍ`MÇ-­ÙŽ›¡£ÎÉ9Ö`EϪùSøû»Z7"¸'W†ep !䨇�,Õä>ÓŒžÈÓ8Cµ©<¤ÛÞŒilð2º?$çÉ.ÚÅ͘„e¢ŽCäü9Ó£Äû-;l>@Jøû´"®] H¤´ø¸×Þ·Û¤ž‘ÃSL\V�p‡²ºÀíŠä± %Á¢õY¾á”¢ÿâög@óî–ßkP¨®=Ÿ©÷o—uNX¸#ǧ›†,oúž×ñ'Ë+µu.è… v:¢‘þZ™Ƀ4O Z…ÈD¥ûXC„xÿóÒW·üþŠjÙ”Ùò¯OZ@Ñnþ�Dà*b÷8±a_øYÿõ[‡ãà¥Xú¹öN_¹ß<´̇.àM‘Æ+hTeqú–ÜÁŒœ¼²‰¹MUˆ3ŠpØWû ÆÊ>ËÏãJB¸YÇ�#o5™dÄáT¹}óžsmwûIËS“Ò”ˆ°4$/¸²Üõáħ‰°aÒQ8/ÂNÑí7‘)’–‡}K¦‚$‡�›_ïH²¦åFEÉí�‡üï�ÿ+97N ô=ÏŽuVK°,Ǫ_k�¼Áaâ«‹inJiÖ…@�e·:ê÷5U mÞ $ž–àFÿ•fÐMÓ@Ì^s†AÓâuàþJ!þƒÏ4ÕÆY8À%×›ìP[‡HVlO$�ñǡô’ãªS›ºÖ‰¾^›h�ƒD~Ï�°Ë­¾P‹�tú£Ïú„$ð±êŒ[eá>³¼ì»ý«RØE• 2ÆÐü£Ïy6”¿+á aè½ZņïS¥óÐZjÝ çïËn·.ò’Ïò·ojý‚XJíI‚ðñ™(YX_ÛVÉ© m¼lèLy^8q¬q&ª$!ÑžÉÀ@X}Éœ²uÄZÂ\v,štãq||!oCè~[yÇ9·�™ UpGÏkY,øÕ¢”zð:ŸÐÞ}g˜˜{êMd£4?Äìœæ;5eæƒ8L†õçy”Ëm™×ŒÇ¦†ã0Ä ùÏ‚ÔzX�N'3†÷³—{«õµ°Î°£ßƒ˜£,)ƒ¾˜D‰0š‰L/¹ëº¬­ˆcÞ9ô%G:hR¥{P—¨ä­®B+L×± Y¢Gs* ¢9v¤ng½‘QP JµçLå †|f†�©,ýžëÈóºÎà5³6µë!9²�¯¦üÏá›Ê ’²±)Ó¸õÏ‘÷÷±àbñm±¦mn3+›¦0[z©>0úNös–â÷[ 8Ê¢=yÎøê‘4:ßY—Kéã0Wã¨Üc®rÌEÛ±Û^n ÝêÉ@3 › à$bzăütÄI�^”ð9ù†�¸¥ê-¦šÁEïÞß-‰_ý*®gM’!jO{}=�À–b¼uŒwÂÈRÛ*ðØ$æ• ·ÂS¬7/ù†/¼Õ‚1”Ë?Xã­‘‰Ìïj]0@è 2mW(3ú®g•@X޳’ R=¦ 3ñöº¯ôCʘ|wCX‚·`üw‚ÎéÂí£§:š7 Œ)´ÝPäKtæ‡ë÷a–u(/bÑÉèÔŸUcTðFäBžž†ŸbôÇòç0µ[4N$9š" v91¥bw#A7vÍaÿKÞ)!ÃØ÷­1z °„Uÿù©a‡Û‰Àò‘ußeWu…”‡UÞ¿°�'h„ì½)>MutmkÆr¶)! ÀÝFõ8iž-¾%|ß®b,Ǻk×Xæ"=O0ÿýàèÜÄHrï§í(6Æ”r¾æŠ3ÄZ³¦àÀWZtæ�*–ƒšÈÝÆ$ø. wˆÏ5/iÌ9Áà\2k(ÄÅBg¤Õk�Ìë�¹Ï|¤S_”ac”XË•Ö@Ĥ­� a"6ÉSO0ªÝ¶ŒéëûëkiÕ¯í¡ñއòXÕÊÇg�:ˆ^@Ñ)$˜L©�Æ%æKµaEŸˆ×ŸÀâ2°£ïÜü ø1冷•xzI<õ—Êë2…ìSëh †|ž±å|2ô@îLYMÂÑ$F YwQù%ƒ�ÂHÔT…'=м�7rþ’�-sl‡¤c7 3«÷4/ø¢ïØ�1¾üNà£�;KÿÉi0[yžïg0„÷ßÀÒMgØsj¢³ËJ�®�|Á”{IÊá¢ÆHI#<}zÉ£!—à#j“[ÁÒu;]Yùæ©Á5€¡¡�mdgµˆŒN—††Ý-ïëG_[*¥ . 2o|Ó¨ÁøXÞÔoDùÍ­3žèåô?wJªûÈk² ào–=”Èí«` ¶Æå¼†äȶëPmbyg6Á˜¤@p<4±7Å»!CÞn£voH)7þ&KªbLk±í�v KšÔn#H¤÷èê5‰ ¬2ÓíŒÀÑE6œðŠun‘H®º£¸ÿéF‘V}‡¨¢EcZQÃ/#i³AÑkŽÐ½A ßð…80¹KÍpÜÉD$ò÷@{ˆáP”‘¥…(úÛ; vríÀ%d•L6³æÅœ¨å¹Äøs¯ׯ´ê c‰8›Ÿ¹­þ=Nb°’Ð쨮R½¿ {°|ö¼¬ªJ]H®!îB¦NðØ"Œ¤ B¢6‚sکĸFSr²6è9vÒö«ýFÛùߊ";”šÔ{¦¹’nñfVB†ìª zsC@‘�êÏ;Š•·fmŠ¡žT¶h¾ëí¦8[d[o³Õæ–ó%ñ¸´p¹¼´ûôÓï¿Â�­FoŒ0 ¢;ŽW¼ìõZó*÷{_r…ø*,‡†b›w‘iX ">ó ;¬A6— ÁÉ&ˆ=§&ù›>¸ªrþ2ª É.2ü5©v3$Æ^í‘¿„ˆv|ýé Îhrù;c࣡�ÅvŠmÍ^£�ÿd‹á’Õ¶¦cyÉ Òźî{‚ðmRQ ºÔ_°“G²ä‘kbƒ� #*gZ¬KBWp;~¾¹” >!‰ÿ±S‹,�¼÷ƒî䮉‡X†–W³t4Leû¢®éþKªX¬5Ò¦YûX‰ >Àž´å°U“9#ó墭3'žò;�(ùiZá:ðbÞ 6›öJF¶Œ˜¶qv!É'_~¾/d‘¹Zì§ßR¹¤Y.=%»ØU­.”¤|"öÒéx¡ù SE8�Õ1̓|Q•ö,ù@ž3hcÑQúhBù¢ÒÔT´£­‡�N€Iv*»´ÐÇÌ ÒkÅ(¶òƒ²¾³&Mä^Ø \åÔUÑôºH{SVü·…`­Ý.Bô¸½ÈY'Tc~°¥!¾ïmઉ¬E7m)ûÉäKSA&gréƼ·kç´Î´®*zÁ”• l˜²«æ“‹Ïªó1²2· ‚h’?Å<Ù%R¦Š¬Õ`b ›ª¹¼6D´e´5Ý`ùœ—xî›õ/æ0sýñ#¹;¼¶_§�4IïÏÇ…œœt,lÒ!¾‹�˜÷uÐÁÛØqÙð]ùpo ý÷8êw±¢äBÏZ½‰N£'4*”�K;µ(Ào·„Ò{„4¢åE§-¿å~HAr�Ð#cÿÑ�I>/w6bÁ—fŠsô›Ø±suúÈ ø”ÝNÝjB#¾|wh¨â#ß¹ø…¯À¨Réj TŽÎˆÔx Ëþã€jMÁ”ÃI Ø+ì9;$“X"«ÃhêÀ6ÿ”y=l¤¬%}Ô=†?GÚȘ1p*± dѰsCôï×çë®Fßå¶øph 1à{1±*ÒÙÁ¿Ùj”:£k@i¨ßoµGОto7Ö ô5©{‘úI×ë¸ÎÝPÇBN%Ø>ØâÅ$c,Vin¤Kó~ÊιMÝmO#–Á²:°D®¾_ìèeÎ�É^60÷W \‘Áº‘« „Ù�_CN¸û;„~±Âï:@ò6¾a8*EÈ0òé³¢‡±ýš¹›—Ê�;`]B‘k‡û¹Ôëßf9fÒg"ŠŠ»T Ü€‚d©0Ô—cspÕ ÚÑŒ¿ K¥•æuÇ7f´yþ»« ˜RÿjÞÌ|Î=òEqÓUk‡@B3€@8Í›YÚFÚú‘�íz¢ç§Ë¸v”´m™ödš UÚË ™½ïïAŸAõX‘ô�gÇÏ àƒÞs¸»’ÍöÀ…‰GCIdý#Êð‡QÅõˆ�’äž áÀ…úVçWÐl¥p#¨ÖçÒ¸èçôH'ÓO©m¹àh·ïÔ Œ¤ò¸Ýüeœ¯®s:U°½в íyúÌ ‘¾=˜SÖö¬; »±<^–{‡3$ù žúdªBHÇóyi‘ˆ¶$õ¶D|0Dá„#‘Êû` gÑ•Vö8¤‰÷_Ú`d½Fb$§þû-ýžÌö�÷Ý4 ßsñžëò�Ô•—ø'(8ìÁ£,ÃlkRì=ù1Ó¨8ym`îx£Ä )dÍò¾L¯‡Êbšw7+�Ÿ†½Ð}0d7Dã÷í<}ÞC%™;ˆÐ�º£^÷�oêK^;Wr·ØøÖ�ÏØéVT[Š Ôu>Î:­iùUô2-jæL�ݶ Æ S8Ö,\>…+ö #=›¡–€'F«(ü&õ¨úªä÷ñ̯/½b�Ÿ·"Ë‚ïÓÑzÐL²òZ.bÿN§“•Ñt‡wÌ·8BÍüaî³Øâ‡bcû<Ää·9<¼û}åK÷Ä XàAž«ö�挈§Ï Á·¨vŠïŠXíÚÙdýlÐnáWû�…Åj½jW�s™Àêü^½Žö”{š¾÷Øvüí1n³esÉý_¶–E@>�غM´˜¾ÑÔ»šÖÅe49Q]˺à[çAq†[ÝŸHÝ�&Õñ˜³ÿZ\1¦dvNË Öø©ûX. ©pÕÝ¿"›ÁäãNjmõ(Åè?öîÐH³KÑÑÛn‡XôéƒXÄ·^Y¸i±³ @î¬ÿÔ|’C*Õ¹´Üú6±50$�^Õá„ÚºoyQÖøìŠê±›ÁÏM* j!sLÁŽiR%…ãÃBªm½Fåò‹µ™ªŽ5‹™ÆT|E½EŸ«)éÛÔ±WÝ�ÛVæÌ¿IÃ!À£€½…20ˆ¤â°Ø .QóþÏÜÇ?¦ýLÂf¾ÚIeOP YQä„þ'ªåñºŠ=Þô°#‡†ÞbÏ:�x�{öS�"Çzï1>Ma„÷n׌ß°CÜ^ç'ª˜Yx¡�ÏÈ�ì(Ö˜A�uý[¥oÊÛ©Q³¼ªÁÐp)³à(m^¤™”€ºO/@Á3øø¾°æÄÔ/¦¦´¾Âr¡šêŸ%4óV*¦{Úª'^5Ž\jæ­Ú³nŒ–çv¡ ruü(Vª±“_YsÚžEÊ>Z ô2õ¿�:u¡’·_ä”áúOWÇH¯ê^F£¯Çö¤ÅÂ�ßýQ6’¡Ã{ï=>Ïcu�"ÙCQMNäT%–„Ñ5Ÿ¥aLs¡F¨,l׺úâÃQkÝ4„—çöÝÙäX<ÍD»?5KšO“ÎÓ›‡7Á÷ÁWËÍÜ8ö?OÅ »uuÿF +Ç„ óð„A’#õëñ­�t!àTƒr†x«O‚¡ÖÈ]êÏ×îõSˆÝO` �(äsìS´ü¢f‘õ%«æg¯ƒÓ±*ÔS³nûIÕÊ 4­Ÿc�?;þ ¯5ðš–¨¡ÿ9øá¥eëÛ–ª¸]°W„™zGÁXøƒ¼5¶noØYÄÚu�˜ÉÚ§Ò¹ìÿÞˆ (ó2ÙĘë©vÍB'ôbKWÿ:Ë‹¾è(˜µÐ~çµ>7ä²co•¾“ÿ‹§;h"›k�çQϼ;¼r±Ëï �1/èÔiÑ§ÏÆ|MŸTã­¼ýWR_Ä™ç ON �ÄíÒÈÕõ#êuÙL´ÊÐÅ{ï2ÞuæïhO÷”O.gvyp·6Ÿ¼œ!^b�ŸžÅ!—þÂÑñÒÎJèÜÎÇBÕ1%u>G=HVãa÷‡—ä„ˆë† Áç‡jí¾ ÿàv¦· ¬ÉHe‰ i¿>bl\!zBËÒ‚ÌÚŒ7tZ&Ô±ý•Y­e%Ìz!>ë9ÔÙ&ŸÚ…ÚD øí¦ è�îpØð]ŒÅ BÍå*XzV ³2¦½‚ÊóòËñ §¨JWÆýzÛÔC¹!0ÞãöÍžÛ1¿pGj7`„p�5W½èéÜàK«s'ZI¿\©�\¿(~TɷߺÁåã=¦ßÎm¬l ’ør É {6æÉo2[/”‡ �±¸T-w·‹� cæÏÎÑjÅ Ý«ö™GΪ¸2ÑV6Wh«÷H=*Þ'»]«KO�œ¬÷R];®ŠÝ'||3~²®Vt�}}Pôbžvé?ÖË,}Þ.®Ì’Ää‰V°Z×wÔ߉¯Pª§Æ×Üná{Ižér$¾Ü]‹›ÍðUß^è�_#}ƒÝý³�d]ãã¶UÌPºa£¦!ßÁoÀ+Ó�þNfÄ„¨ÝËîo®¬´–1©¤W:€(ihÞ÷¾`~óÂÃÙvì™Æ¢²+ÌÚ–�ÊÂ7`]îXmT3#°óÍCá¡›l� aBŽÌÝWu½8÷Ý U5îfæ[R;³*nYd�¯'˜!C¬2‘áÿ§$½(eÜf_€ÕFw[ÄÅKþž[7¡¼zTÍ]Ó‘\‚<~6±{ƒÁËÈw'é®.9ƒ:úϘ€è}òí»T).È Ñù†³ýÄWV£U ¦ÔÌ÷32ŸI»(i%V‘y1åWø·›K#v!«w�QŸƒ° ¡RcoaÚŒèZ”±!©X¯Ä ˜ !lDŽ˜ &¢ÅÞÊ3›N°š}Úe°= UfhÖ˜Z&öÁ :X¾>¹¯Õ['Þ±]C÷\ø€õpeœÝùâK1]_„%ËW@x[+˜_´�.“SÞ…º.!�:Ø&Šž“å¿G1ÿâNWéT-; µ¦=Ì®‘ªOÝqwï´ Ç-'"(b€¾°æÑíÁíy€†ð&z\K=}éô¦·WB¹Üþ oKÔM†#r3Üû‘ÈšN=òlê¤ôß‘Þ8Õ÷¯ä9Ƕַ”[Xn¼(Z[7qØÙÕ£Èòdµ,�(—µá,¤�ÞaSËÍ3æ � «~öøÊsó`yx›¥#+ ‡§> 3g÷>Áßs¤ú×ÎñhŠüE¯‚MÅT¦›ûì΋‡÷Ü?£wÆŸeØç9ÀÜݦ¬m猅ÂȨ[¸H9<'«Úqixº@ÿ¡Ë©š,¼á)—Îu½•ýÏ¿Qu•HßädùéÕwÜÚÍڈĈ]ìuRz”¤'©]1 E*ŽUe?zVªõî±tCá§í ™cP~’΢Ûgì3¤÷ ÖêÔ¹<ˆ‡–$�mÌ»ÜP°æFÍ^”àݰ�ßýƒ»°C4°Ïz&ARª�¨%Ã7z(ÇŸ¸â´bfŠŒÉ{–òð4ki8ßÞ1EŒ†YŸU_I{™0Ìè<#&>øüT©Ï'€åpX!ÒFRSÏY÷V#ÈG<=8€�E=Yưµ�Âp¬<ÎMyàåôa% Õ»47©å ä›þ'cÕl[>U_ÀÈiçêÊïI"Mwz\dÔÈØ �h Ëÿ|1ámÌÚ½”‘§/WØ[é�:lPŽ<¡,×þ^eÒ'0§x‚%' é§'‘¸©2¾Å�Ó¿5“u@QcZ¡¶(^G"~ä”llM¬(T)}t>ª§@V³ÌB=±<ÛÒù½d dÓ%(ËÐisýxw¸nú–ꀎ˅îÓ‚è›—r�h bŸtrC0eè*òiSZë<ëÇi$XÃæßˆÅ.çºQ ëáýcTbûNP¸Gfi³W³ÝÜØÉL(�æ•O±Ò‹ÿ¼wû¡Í�´Ï0¥9Ž¿fWþì7I“!qÞ¶—¶ý£,yôÜVÅŽ ãb™ÑZ—ó`úP…�"/›:Ç9¤ÙrÔ8¼WÂB�u••÷¥cñŽ}Z'É劙¤8k ^«: ±Užx¶ó¸j öa¸e�ðÙÈÀ´´:^{VÄæëÉ©T’§u&a€ž¾þ$8>{0Bqô5s¦ØN/�ôhm�ýP÷Whù<Ü56±¡ŽÔ‰6×V +1 2ÈÊↂʀ�û=.ÙøF!ÂI{Õ#œ ˜[öá%˜`o›–öc|ÂuK’¹€JãååÆQŽ19ïÜç˜6bõæ†~ÎަöD*‘ñºÈZò¥•c³Ød¬uÅdÎ= bÃÈdª'ÖèsÂ!îI“†,a4££ Ï–¨f¾'¾Aq6G)û8¾`Ú©õAßS}^:Ó$~g­AëÙ•+˜«­rö¤ +‘.háú˜2æ}qüÜ\0³Ãedðþ£Íºå�ój·üfUߨràÉUCV,²U›)×É6Pë78îT[×!|œœUµ‚R7LHo w8£ëIðq?:%n”eÆr›i)Û¹�_¯D.† �ûJ0m¹C¼`¡?§YÀ‹ñ“žAñœXGQh4c~‘/fžÛàÞd‘öç¹óF˜]ç�Öüò[*àjñËfmŠçÊ“ûÇæ®š¹ËH¢©¸w R#‡=Ç&H-V�ÊÁ°Ú‰ž¬i‰š´c�Öô¥ÄÄE”Ž^†m‚¶©býO¸õÇ{à¯ÉÏ-|T…Á¿ðYþÛÜ;ënåíµ§ �mìcJD©0«®Ð®¼‡Œ#›gµ¿ÈŸF;žáÓ’}àÜæ7ºëâ¡Ë~j•¶úày¿çó½*ö^Ðõ ÉîäŸ~†ïV™¿Þ­°wvæ„/1’ÎR@&È_|Ô`|µc=?-‚{[˜v¾%Ђ€Òܵ}™TÀºc”Ó‰(EÊ�cB-ÄX)oõ w…Pë»›ÙµÄo„÷Pª}r" *»" ÇÉ—òÆ3`r}ñ7IW �ƒ_ #bIC´‚<üA¬£ £M„xÜ$ÝöàÈ—C a|o{õÍH¿¹Üž0÷×#a£Ä§”?Í’$ȳ`[öz諪ŽBæýiå›ë¢Š ZR!³Hë¼ñUí55ê‡!سXÌ~ó@ƒø`eCÖq$Ds‹^ÎZLÞw”¨+L8Ïøúó�o" r ¥E¤ÀÒº®—|·�“ßeÇ-Å=ÆÎýäþrXYb¤õŸ@ÌuM¿Cû£C[k*æ¯qýhä‡ÇÚÐ÷œÀ‡Å¹CpE³‰BP8Ô7_ˆÆ\&„ãÛIF-X޵É1Fš–Ö§#‰Gô�_Ni½‡\”’zv-V~pP¥©÷ŸÈT�‰#*ŒXU²Î§/Î"ŸI‘_Ë�äÛZÄ@‘Õ®{Æý?ìÛâ¥E{|% ƒàŠV\Qk¢¨>—Ê’¨*NÚm¯aÚ8×&!:aù/uê(ßÑC³Èùçl! “G&.pA³?Òû>ú¦³kÁY¥ò2ÙlF½p‡`ëDòéitçäÃÜ)>Ë;×xÜÀ+–\l.ž�tlÉ »cØVð¦|¼YJ"«u¨'›W4Š2òç‹<ƈÄ;ŸäòϵˆQ1ȼ©vd®9ÅÒ÷Ú1¦‡Ùwe\æŸì¸EÂNhþzð*‰j:u÷0>–üˆ½©T`w 1¤ÐÇ,ð*ø\YæR…šZ‘¾ /ή;<Ø22¸¤^âD¤.68«HÕ—ï˼Í.Ê#QlŽŸñcãæ‹ qöa›Ûñ¼‡šdï#ï¢9¥ž—JaR° YÚGnTå|[û¶˜q‰—éV8À$èg‹þJRø„Úàèðš 3AÔ1ê%ô‹#ú¾W0!ƒïo]éÝT€N‘•î¶ý X�@+²î^DbML;¡hyÎþ�¸Æî'û\ÈzzDGú ¿e˶XWX JÖýÑJsúàœþ¬×øžZ؉g%*ð ‘g�zÐHáIHié  Ü$eOÂ|ñ&�}ÖTŸ¡iìLJÆ$kr¹8yPAZÃæºtjäÎwîuÆUd&¼Ô½¨°12ÆŽœ €K~1‰´èä>ŽÅ¹ÉYËÌ©?Ý`Œó Ž8» +ÔªBkßãUøÀ“ýŒ8ÝÍpäîálãt¼\(¢¥Rô@=Ðk$ƒ‰Û™ÄñÐx4ªú3êÆ‚_’ŽÉ(öõÓ�åNåÈ>am·>UóÅðz�¯P‹Õ%üÙ¯lç&´³Öö7© tÙ,  Âì‹ A].ÇS'\sà>@Ê~0ÜôCŒ�¯Èà!m¦X= Ìõû� ®ƒM,/öû‚ £n,ß-œ³h-Vr¥ð'ÌäÔG‡íZXÙ |+á>Áaúlú4ÛÓÈ^Ó©;!–¦õ´˜IÖ± 6,vªhä?�søæaüˆ â* ΰÝ~z¸�(‘‹£Ñp³?v…Â�§`„­–�ß?BÃMmÊÃ@Tl¥Le æ �‰ëw>aÓ²þ»O—sß³Rj‹�f÷æ#*w¼d²\v†¶©BH-7IÏ=( Øš«?úØ…Wö}äs íç”Ø“Ã'Ce‚®�–¢ÕduàY1=žÉ# EþKJÖQ“»uü7G_–×4c¾ÎÜûëèË ñË/›ê€‡Æ*sT.DpL`cvÜp³/®¶W&ÄD× Ö�‚ô:Ÿ[lOñpäñpB¨(áÂÒqà\%ÝœL{X1;ÿlz¯Á}8Ób]S�Bg#ÔÊ)'•F¢³›gp|çSqA¤£œôã7ƆÅx7WäÄèóç�°éÿ¢#$á,fì´ï0§ÚÙØörá�t)›€Ä–«GóÝdÿÒ¼ADfìPªO\ÄþyàF+ó98_*4�RjÙä¹*¢8Òƒ:—Â|�RÉë׳V­ ²yë(º,˜ïÉ ØT!âÆ‚–Úïxµ[xŸèÚXY£¸äÓ­¬ÙÏüK¿õö{|ÓØ{ºÐ—é}ä÷ÌéM­›ÞÕQ£T&T¾ LOOŠ>åLJ_m Dnc¤>¼ú‘ßeÍuOÍ*Ðå}a]äÌ&ø¹ùýˆRj„bÉL}¼«@Æì8Aççìá„Ó28äoH2s‰Z_Ž ©�m?@ç+À1ëäs£TGT½˜9•]nsƒM îJÕ {VX`³£'!È6lÆŸ5ÝÝ �¹o>¦jIÞlÚíE7íx:â´äá"0m�,LAB»‰!ršG篆(ìÅ%{Š2—Y›±ülÙñ–÷#¾§ë΃Ó]»gu KìεÜ*ô¾ _d¾o)MRôÅf1“Óz¥ŒüSd-6ãã¤×ÀL(Yõñ‘èõ–Òò ùFP†æ6Tùv‚a޶zXЩ“C ~N§Xð“«ÀÇA\…�LI¹² Â|Þ$Ƶ ¿Hwü%43ì_=Ý(c›¬[O¸å‹œ¨iud¿wЯ�ÑX™ÃÅýseÛûþ狽®p�îé˜ ànî€Óóv+5-ý.To%¦GO™˜›.qÀkòÕænp\KÄ‘6ظCG\S*P{}Mn4M»F�܈nèÁÃÜpð­…€÷^€ß6Ö¤ûÑnd&# ¬{(gÜGýû‘o§Î®0’5”mWœB¦‚âa·þ3Á¨"'(—/Ì|Ø¬Óø+s¤å/þ@[glLŒ_&š™IÜ%ÁÅô Ý)9x��;„ƒŒæ€j6¡ÊÏÛ8‘bÀñzðÏò‰�·³y# ojL³Fšþ£@xÙÔ•™¦‘ˆ ã°iz) 7k[u})C]Ý=§?<|•nû¨Û®vöܰhŽaRÑ3£â–rå1R¤ûbFOÔåð¨H’ýl›¹(ao1 èCÉtê•fðÂCîA‹"ƒ¾_êã*]ù_v·œx»&Šä\¦|ĵb�^-d=Êå1Âén®º"�rnßh u<Âw¬'¬T̉ô[¯�&#èϬ—Ùu*TA »ð¹ÞÉ‘bP)×9UFÛz‹Üs6\®f ¼E\´2…íGˆ"ÕZôžþ“6�Ï™øÌ]ñâ?Œ ,”¢e€u“�e©‡Þ[*§’à6¢�õÅì½`pðFÝܤJ€–G¯Ï1Wì…˳DZ»ArØØbi“[)<¥+\ÍŒ÷OÈñûmèT_ÕÊ3ST¤iR­rx¤EÊ@+)IgÄ€—9¹×Öµ)Ðñ¿G´»˜ÍßT|˜dߊŽ*'ɪ BéÝ!ç¬,ïð�Ñ㩬žø‡e?£ð‚gú׌ÒHe3ÝPÕ²¥ŒÑ{™áL ÃIûŒ—Ê®iìñK9§¯À×Pö2M³íýpÎé‘PxMù`@r–vø‹j99aÄ7#®ç‘e¬xÑ­×)Ûð¯`?*—÷x€q÷íÛ”ŸËiÒP|TF¯ûŠkmÏ.9¥¥Ä²g$Kc D¦Êu¾/ LÞj#Cã ÃVãÿ†&'E„ã€áæb{Ëžãr«?/z66ÃÓè¾>s±éZÜ‚°†Òf+Q&ÌtÞ«,ž)ƒ6°�¥3¥Ð3¿‹´‹yÞó-Ê¢"6`ÀÆ¥mfCé>]  ç§·ˆIþB�Å/êE} ;+Q¿¸ M@“F u%Gdv|oÊ5þ€–}À�á`è;žjÓê(o¥ÊŒR“âP>ˆ#°6IäjC‚Úk" /Âý—Ög¸D‰ö–^5çå’;`Œpt°<]½~�§18Å õ ©L½¤É|~ufÙïÝ zoÜð&šo§JS3ø�O žsV©@a?¬¶•± ¦eWý0‹î�mÀwm cØ^Ð@·ÓßÃSu;~òt(DÑ'ÓœËÃÿõ¯ðH*ý]´æ²«“þá(ÜXË@yÜ6Xªð¤—ÄZvJ×ëà–Z™Zå¼¢]�^²ðn_ÃùkWYiö›#�mŽPèâ¡f×Ö݆zï`½à¢Šä¥¥éZ.IŸæ‡-6žDê[îžoúO!Ëå¿ê±³`&óÙhLT¼æî*Ê"U€¼*º„¡ŽFWLèIü;5„ì‚õ&pF¸x=Σ¦÷ªØ|\ЈM}«Ìñ´R*°`²Úﱨ¦él_“Ù}д™ÿC:e(ÈÒÆ®+y±šBmWY<ƒt]q-T°²g+rÅ”¡—ÄL“1á–¼–Y©ô¬Â•pny9�%°�mR5Ñ„½ é74<6ý)Dû‡Ìf²{Lm­Ín•¥j ²u]¼4Ãçv¢Ê¬ÁØ©­*¯ÓôÆÇPØãt<”,A†ËµJ HM ØýI$Ú]ä›�í±ÒsöÔ+…uálZñ'�žët�süöîÏð^)õ^"ÃÓ.bÞœGsƒqHªpð?©vÿ´Ë­ZR™ÅsЧ)¯UíâãÆ#h}W]{WFƒ�¾gj{´Âø¦&ksIÓ¼À�¶¼\.®†ã¨rU'7¢â«µV&»ßÂR ‡Ý¹$ìjT4ŽóﻺߤL<9ë/¥Ô¥¤vxTSY¥jzæ 8~ÏðÒ9� öR¤öÑzB0&\ÜÓiŽæ…©‘¦æJ³Ÿ‡îÊû½te›qñ¼);™œpÜ¿63€=Ã/j°²Ò‡�ÜV´™º§º_ý¾÷) r ™ÓX™=>F@B”u®ÄE0UCÀþ£¶޶«¦.Iš�8Ðë5P÷`ÕËÀ?d�äˆã5¼6n±v÷Þ‹ Ä).½Kâ†a§ZœÿFÙkúzÖ_®w/7¬@¹1÷±2̃kbfÙ»(I©?x2µ™ê;Sóç°è²—öØmY˜Au„‹&}IéUê`µ[êéÒ'ºÏ…=0þK ^ó–ê„z–³på�ÈjF¤D""’ÙÙ8;š —ª³ãZ{ØÞhX9ÕO¼ù”|hQ†ÀVré×\æ ¸â5Ï¡û�Kù`v‰DÙ�7[Ä�=¶*’ŽýEhž Õ4½«¹oÿ§1ßÏ~Æ»þÞfìSî‘,ü¤z íX¤9×­�áä�U5CW‹š¦?v–öδ©Áª�EÄî‹(?⥎ãqÎéÔµ3.®&�#ÔuÊT3Øî…äy£¨Ÿ›Êaá‹-²%â¡:ðWÕÝ0\èsJ `ù¸LÆå½“ƒ­³d=¡§{üÅM'~ �ИøxÿPqØ‹I• DŸV°Ìß`0ï�¦ÝUe«pk67èúŒ“—åg�ÓRÁ?éê·GHhë¦ã™Ô÷ìÌ;¿uaä_¿­]èÀ΢Ü×¹¥‡ÑSNb›üÈãa�ÈÜ{6ŽQ/­îï»8}óf˜/4ÃF«!®lÆçðÙH·RfàL)0‹�Ç 4ôFx­Èífk´=ÆY½gŒòàgÙóš-p“‡mÏCžÒ¢�5íøROÝ[¥ZÐ!ìäì ™ùÔ[›${Qä�Šl{ïÄøp &¿ƒöZ=˜A”qŽÐ¯}~­óÕFÌ7%žËV*šà¡HÐp}º�VŽðØ!RÕ?ÌlŠ`u8Ê 0JÎ’9[r4UbVl—)RêLKiÙôq¿�måbů?”_[µâÝ]K("T·g‹¥ >l·EQ­®e¯õ•Y²N$a¼D™ÙiÝÛ¼–ôÙ†³œšÎÉuÆU•}WJYûݺõ‘ Ä ­ƒ–YÖmÛidûžîd´7#Æà·|cMÑFëYmÈ&›)~ìÀ `Ö©PÿDߣ ûMBÀv¥¹+â[Eîâßsjb¦t,±Ú²£ò'vЙʘÓ…Šðx¹Ó§•íòb”<üƒö—ã]UWü…Öø[¯÷¾WÌ¿Õõ�g'*c‰™J6’É¡2•n`c2póf¸‚é}'vÖñt[Õ>†þxÒ›m¿‚  «‰ªÂYˆžÈgxßž�3Fü|I»–<115 ®!‚@+˜(K`Ř'ùšò-Áš¸»öW'›�?ЭPüüʪŽ¡žåÚi_x¡_HäÇÂ)±¥Î�«dbbâ]Klðñ“e`û,­…œÚ29_nc…ñÎê%q9á� !�Åù:ýKRžyáaJÛi~ÓeŠa¥5Ó_^–@y\Ã÷>ž£%ëo‘ˆääN®å,!œÞÐÔ?²¯®ù©^êôJJï ƒªÝÂÔ¥8�ü‘>ËE ×"ÏHÛ²®#5Qkoæ¤ññÄ–Øö+=T4¡L}AßTÉm4RœlÌÞg¤]´«¡\@°â¿< ãs I�ÍK=£&—倕e™~‘ÞÕÓÞ(öDum4Ãk'ÛÛs¤@ÜbÑ£†$AÌÿ·x:wžš Ä'Z4CÀÂeDÝJ£8Uæp™½…~íöû˜ò¡>l˜2FJd_³4\ζ‡_8´êOC¬ûc³éE¢‡]œw˜JÇò@uY |H‡?&Äg_XÕ£vcCû0Mÿ4,95 Ô ,:)cpÄõ¢2ˆ=€¨´†`5 ¶‹ÿ:_:óÊäT<¯£Ã÷»—S6ÈÓMƒ=±¦\ª¹þÙɉ:/ÞÊG‘õ—RÜÅ“;þ2J€â"|nƒ½$.‘QiÖ,|f—s=ŒB•ë‡Ö,(ãjxFl0&0ã�ªsêÁT£*£¾-Åh*5E ‡”Ãßâ™×PÏgův×Y®F‹–ÙŒ¬Þ¦sg¶y¬•ŸD “ÁdžD5]A+ིA‘,sI°zd&Eí¬'<Í Ðð)µÝí¿±ÇYvÙXèH ¢gË<°ñ1ìSÅ “ÙçæÕluüÌP;‡=ÙRo•âÃwNt¡Ö1Z‰õ£Kt»Îe×û%ÙsG†5ì“9Ko¢Ü²™4W…1àái_Èsz†¶Yoéƒzá³ §–Y GʱÙ7�� ³`Úð¨”ÿŸPÂD¹|F09›©èÉ6_ ³£e€&Ho¡æ$À}jjöí¨ß³Krº…Ô¾‚eî ½ŒÛ7G ¥:/–++Ç #ц×ÁÕ§eìA³×*ßÛ@crð–Æï ¦E˜&èÑGÙ¾ÅðQŽ,¡í¬´Èö’µ³x DSïðÛ^dœ³'n»êù34KY¶¦hóñÈT¼ZúJäkj$!l�D\þè9ÙccJ;ÞÐýb>�~l3ÌT�bwÅä—ˆ�Zq®cÿ�˜`'• û·¶v}Õ»-‰Róþ€),g•HÌsÅ7ø "�á´!ͯ³˜âµ4¨å$ æ^ š1xóã3¤;µQÕ8ôâç€vPÑ“#ⵘ*uF«'¬ebrv¼Æah›ãÔ½ öÅó�àqi6´¢È_�4ã/çd&�6ßVb’¹•(Ÿ±_È Ó�È®¼cY‡)Pð‡i‹g]^¢÷h`8ƒ�ß”Ê�³l²¢&KÏê'Ì ž¢#[<Æ Û©Ð‚C(zB³ŠUÈ¡+«uzm%Ã�Þ�‡Ä'‹jËû#ò%Éhm?»«¬¤Í�µ.ü&2ŠwÓ©&-6Ì*+Íj¦³�’9”e±5r±l³ ih€ê[;E „:‡jéСÐ�t«mjîn¶eˆáI�®n¯ƒð&& Ö*Í$Ë“Í-,¡4¢AEð±�±ô·ŸGÌ@`U\}®¢ÓMB}wnÆ ˆ½‚f¤´‘$¼ÚE¶ Œœèr•‚û¼c�—ÓØÓxÀ¾­P@„Ì;¯²(ØÌ½Æ<t\ÝÔ½åZÎpžýÏ\í€<Úý$'¯Ì%¦Mù&|OßD(6Ò`gUogy×½m`v®ðwƒ¦ÏUðW Š­�&ߤù¯Ûu¯ºóXpú&é|re¬fUõ:Ü~­¦xrÌ]ýÀ�⣆‘†8îá.$;³†Õpo3¶¯ªˆÈ} Jïmî$ú–ï;V Â�z[ ç9†3å’”¦G¨½íTðñ{ywX_62Ô;�e´#l1&/ÖØÄk³í${ðÇ¡e¦Ij0™»¼@ÞÇÆl{ºÒ~ÌÊTN™H]Y¦ÇU¾,G†é >Ü]…GL£Ýçåb]œ�¾8@_㙀cå¹VQã©B.0N¬÷nRy•g(Ø—É„WO€äš}‚7bW$Ÿô¼ç!”çG³Ê#“íßí=ëÀkÝ|pñÕ‰=êÃEÀñ'¯ŠÝ‡ÙæÖúHæ¼�-î›­Æ“1�°_A¸�3kŸzQ þ�˜]·¼ÈúO¸$RÎBB„(1pƦ=Úh‰ M«Öáƒ(¢~BUoxÒyÜ_&zdô‡|ÿgDPxQ² PÏw|lƒ‰8jálœlˆ´ã­u¶KSÀåäØÀå,~Ø›ð7J© �-;¹i�ú~‚H*'eëŸÒ7þN»ðkMékurrL ÇøÈ�ÄTeÑj2—ë…Ì+É¢  æ«­ºKqZ�èV31¬ Ê"´äß'o8Ô�¡?lÇr4ä{~€¢¼âe›¯®SgΕû(ŒˆØ»Y ¡¢Õª3u¹ê�W_@ã�rÑ÷Ïð©p[sÞ[Olù 03ÃàCŠ2ò‡ ñBÉáV:iQ N¾È¨Š=ÈÚuC¯§q¦ÀCi%ÈPŽ]@p°lRý«ÊÙê} ®°æë«ëÒ -®26‹ÈŸçªmøuØ |ªpýúŘ|xj¾‘™7Gâ¶�þ Jz;m�ˆµü8ÐÈ!å-;ÁyPe‰-ç+íîù‰L+B”�ì…ƒa<•…˜¾Ý¨4€›Ì—´��ÊHWI Ô±¨¶•ê`êÀ#Ê€Ú$ªÙ¬œ€·)ØL-Â}ч±é-I»]op/ÙõhOOtÜ$Êü?ŠGÔa(– -2’%ÍD™ßÙ|�¯ ýxðøL/°®©¾ý8Ó•G]l~ÎZ;´7{²RR…tÍS¿è }ƒÃT¡»cÖ¢Þºú’·*ý‹}Í1Mâ\žyCR,ý/]ò†ý[ ½zÞóâh÷“j»ÐÙÔðľnô±A6|�€4�Ø�±f‡=¯sõ�ž¤�úÕ%‹®ið-plå5ã,´úÛ[ú˜u’n‰¬k)MîÄž_ŸèƒIgPÓDgå™~žOÊi�€³ÐXJ‹b#ñÌ2N½¦úFl[pÉù9y0ðœ ΃“A9æìúÖ©ÿ|þÙð•@rÈŸÏY¸’†”¶,‘·'‹ÄôÆC˜f,f`O‹E~dXäëûFöæOoü›$)ëß³tA0‡ÙP°Ë{nGy/L¡ÀÎ!Ò•x§8lx>Ù›}Nä2Æ^0mñÎÃý9J›‘߃Šk,Zîj Â\ñ"ˆÏƒ¢yŠTj4!„Æ:Ú‚¬(téô ÒGb/_t6›#‡xUÍ G%«j­Ûã†Éí®¼ªFî鼯œòY#i ñ Bù(¤gšs^Qáwñ„wÖ½œ*®ÔBÄ£ˆ1Æ '0º D}Žû&�µ€âÿQÒ>Ò�d Îè_¬‡É„ফ¿Y3GYäë%JJdêe-T¹uÕçŒy�wØe¾Ü¼àIÞsÅOP/¾ÂæÑR®Ï®T0wÛÓüÊtf² lÐÜH× MÝ 8‡¸Pï‚¡#èíQÐ�¦ú2É…ô_Àú§å×ë‘“æpÄiÓß™Ùåˆx7u¶ÜÄ$»½]Ê8T°«{7}NûbáÌŠ[Écè²#"D_m3e;5ѨF¶/µX®!<7Ùv쑈Œ}êÐü­€Vþýi/Ù'*{¢ðü ¤Õ_uyöšyhê–²}n÷*ÆÃªú‚šÀ¬‡¯(òZ ÒÿÁzáð å‘7 ç>®TÅ�8²ìäH×ÔÐ�²f‘Ñ­¶ÄN¤ŸŒ iû@ÍÊe‘°äíþ²¯ŠŽ¡ŠUéÚàÏlÂCû =jp�XØ4G)H#,ºÍ9lÙGÑ ¬PÂìn¥Ñ�úà'¯”¡/�áöäÎÀÊùAöàg[¨®aúk÷ØþÕ½J)}¸Ì¯F¾M °$ÅágY½RžÇÜ<é11Æ–Û$]©M™ÎöFÃ*6 Š÷�*ÈÛߎ¿ò:Bw^“1¸I—CtmA^ñ{}Y*ž@«�7PB0Z¤{G¥Râh 'öÎ.òØ‹Yµkƒ¶=VÀœs¤l¡¾$ÎD¦ÐÝP¯Co²�³åGãŸ&s”™Éñã�É�?VVÔ>ô„9»0$µ;`3g_$›7Iº´lPÁ ì�B[â|dž „;!‚pµ-Þ ñîk�C¬CVvåþÙ±lº×ÏìÊl ¶AžÃV«Ç†&Îøé�›Ÿ%7*\,¾Å=iËzF?Ÿt¯=Gðœj{‚æBkÃŸÍ ƒg¶‰È`î�y Šé"dL uêš³»/<8‡•Üûé¥;'c #FKÀz Eum6,S›î8DÞ{÷j1cK‡à0žàXèç^ð/µÙªµ•4’»½:�ÿ×›ª@ãëÓ®B„EívjÞ1 ÔEV»˜Y‚³†'{Á�µÈKí oííä‹ÛîUb´én0íaÄáS]Öã¡ÜÑpÏt-E&">B•ïö¶pA^b8¯ŒökÚêqIX”ÌóI¹ûå9×d̾„ªYk^åI0†QõJãq–Ü÷cÒÀ±b«¹ã|¼5ÑcÖ)ÿZ¸Û‰r£ÿüc?y…e=LñšwÂñ3¥5Cf£fðY.A°îœ£�Ew2á¨l¡5ƒþ(ãwê²vÎîÓ4Y·¨·¥M¦Î“�Þ‰S»fn›.ȇmùÕ@0ƒm½îñØKú·¯j< ¹ è‘ZÜðŽyï!ü9X"TèL2âñC^¸´˜^lÊÿ*j9ó#ì_æ”0!SFl©Å¿ý¬kx �ºd/dÈŠ¸õ�]-‚Çc¥ ‰Ú\ñ4Á8G'‰f†]JŒ¦Î6N&5’“¶mËëŒÎÐyGÆè›ný~Ø÷À3D�eHÛ¶P äj¹ÁDð*'hö­Úsy É&[üÝ;—>�.®óÆCºYªúaŒÎ3k”^Mä4L?Õéò ýè�Ütæ“\žÅþnœ±ò9¦O–›ÒÕH#Çû¼=ØêûÐ5Øšö¿´“7®’½ìù›EBT­8¶p�wkS" h„°vÅâÑùW{j!«üñ�âÀP«b‘f»^OÍân�:L’#m·ƒ€½€°&ÜÞÎjŠiÜß]¯ÊSƽo£äÅ›—Ah­ØggÂÙ‚5XOÔa�¤‘0ØÁ•Fv"0*[þPóRXmþä›bŠªè]8úúïx”(ª= ;ßIßÂÞÒuÊÆ4A%&i€ÿD sçÕð, @'$å194^#€š%ù¢eÃý~%Ÿ0Íÿð ˜èd -íþ Ÿç¿ŸüϬÕüÈÑÎ@é¼nY–Ðøw[üwÎ À²íåRºÌdçôÓàÿêna'SC{§ÿfMMŒ<  �˜ŒmMl,íL ÜL�œ-ííèØþ3þÿ :zSg:7{Fj&ºÿòÿ›5þ6–ÿjÿƒÿ«ebfbga`dbff`aggfd``dbgb `øßìÇÿ-\�] �œìí]þŸxÿoûÿÅÿˆ¡€ÿ¾&»)³¡÷(o>¥¾òíˆÿ_Å�’©±›²�¥ñ‰KpG}ƒ€.ñíjG#ýq-¦ðHÌ–» òo‡KyP¥pŠ€‘ �DK3¤¤ûÝá‡<„*^ÿC?ä¿ë3<YÑ‚šM Ueâ‚¿(�ý¯ôÅ,mLEL��ÿçœÀ ¬š6Òä-èØÐ´\VÌGÛ‘ÝìIj�÷E4&¼šJ‚9 ø_uþë¯71t1ü?½�Næó¡7vÝ:ÔaŠÆ|’¦Ã[ã僤˜²ðáÿÏ>¨¯èÑýM¿Ò¸h©$.€MD‚b %¥nšÙ«˜Æ…Ö¸Cçdc,0˜§›¨{Lý‹vø®“#�“¸‹L�’Ãj]˜2]Ö†g•ƒt¤ñ¥ã·_ éô ¶ünpŽ=¹õ;Ã:xª³uÒ!šª9uMƒèô‡ŠT¯Q¡jãîD”ÜŠ g,#³'Úº´Üqˆw?€É¬ˆQ j’03å|·»XI¤Z÷ä¬÷d{ ˆÞ‘h‹xú¶í‰³w„Ù‘q�dž³YJ$"Îk´m,ˆ¹NU§_îlîkN¤.`Ëáa)TéW-…tySï1’¢½æûâ·ŠªNmAòB@»·$Ì%ñ n„Â3ºbÛé÷ƒ<ª&z­] éØö;`ã¦jØAðîÀK£…†ÍÍÝÑ�ð*‘EUAÅJ Âbƒ©ùeœ*}€2?Cˆe´ü¦“d\‘Œ•8öçõÃ#@ág§bΤàyãâ ‡h2[Ñ~RNnzy/p#ËssKéA³Jéu½”yÉzIÐY›=‰Ý§ßÃE"î­ñ}¤f£cûÔOY£~[/i�ºŠ ÖJ‹B–³7.固y]Ü÷È”�,RÒÍ�òë¢ðA…h9½Ôµnon„ã-]e”÷GɆתnZÃÀ6êg̢ϲ¦>ËÕý-=³Û§ÛÑLKB À‘Æ€ó�œùÑûo®Íút"úæmWý;k*œ²ÔµŸ™öHãVñqÍ^D8KÐÁØWEÊ)Pÿ…¹²4>y)&–ªMgKŠî�nù èÄ…›S`Íc9˜£ Ê ¸2!8 rÎæ€¢ë•´=gÈÝoí]”V‰’S®È�ªeÜ-ì0 /½±½W‹}ç9Ôä[ Ö/Y�‰º?‡©ÁŠÈÛm¢do@ö¦ËGðNñ™™Úéå˜Üõ§éyïa¢>:† ƒ²´ÓvkÄ÷ÁÐÙk¹ÕYaäßV¬LÁýø+Äîê|Îɽ$Ö©¾lk¢ô>ŠM¼|Ú"H8˜Çu'PùÔŒ�du›™¨ËÆ%˜}¦+@+ˆ ¸n|ѱûªöI’r€—c Bd騴J®1\d%RÚ=¢ÉIõ$Oiµ]‡v뀹úÌÕÙž�TÝàXêŽ�sãò›"§™ú0=ê2i •m«€ q±s¥p�eGn<ȘJˆÌEï>WëÍìf­¾ƒ “)Ýqtƒ,þ͉�2r4m"MÜ‹Õ�›šRl%\ „?‘¢ÿœ’<îˆÃˆ–KSÄQO7¤$Õd¹!íß8ú‡*·I|Seð8Nk~aÁRãè*Ü'Kâc@^­øÎ´ǾÆ÷Õ|^«Ÿ5-!�Ú¹R!qæE!~eUùEµÚXÐÆJU%ô‡Ã-ŒÌ>õ&„éXC8±Êv|É5õ¯}Žq�Ú%XÛQ£¡ýÞn©ÎÀf^³Ý\/öä_FÑ�8dæá)œûYø¼¦ñÍuL¨—ÂW} [§¤y*Ú†»ÖÒ‚ßQÿÓ6›8OÏ¥*2]áOc‚ qÜw÷ä‘ÃJ:=ä՛ΒJ°¯Öˆ‰ïÝøõKâ¶) ¢âŸ‰;Ô2 Ä~µ>¸þ½a_ÝŸ>³ûZåùŠ5Y´¶O•SC=|ݬ—‹q.“�lüüŸàÊy€m'LËâþçà"ÿݶŽêÝc«9:®$?î&ܤ{}Ÿî\å:¡ã^[íöF2c’eöv(éO½oa„ ýª= iË߸ڦÅL§ÙÜ<õóDkÀß�u0²‹\;èžùé4¹hÐ+Gì²Dsö}Œ÷0WƒG6B}ÍÍXê~st/ñ¶üÂ_Ï¢b$¹Pݺ‡'›¸êeªû£|ÜJ™ŽÖ¾*m…”¦$$Ü߯ >Ûã=x7^äX{2\`¼¿5k ÿþ7°QÐG$4Øœ*‘K¹™ß³è2°.°í`¼’XN§pó‹ÞÖIˆóÓLƨr÷œJ¸ÔÜmƒEcÆ´c’ü(mÉì@Í9_s&µ˜bݳéý}¿€�äÓÕFx7‚b€¬%Ù5×MJpšI²%»Ê<&^±Búsèê…z 55ÍŽœbéè,Í Æ¤®ÐèfYo·ûÜê_â¢a½r^ës7ÜÛkú¶Äqçz;äwà4þ Q¹‹þ*pË»,/½”?z}—AHv !0YhB‚X]èÀìÑ!qS$àMi‹Ù…Äéãï{ ;�²Í°¶þL”f… RItˆ¶QÕ¬/l“Ü„ˆä4ýóvÒøUB‘Uóž\ cýžãJ¹�øŸ¼oSWrR)÷�Ó æÉ'‘®·ûÜœY<�‰q_ã[$U_K–Y¤ÂVB¨Ì8{nŒ¦•nÖ4Y=Ƹ͗®úóýÙIxÅÞ!øt¾>Ñ@X²qÔ{[b/»µÃ®Žb/– ûè“L=zx`²œIH?Òå¶ ˆ¾7";ÌßJ/ç’ð h?¡]Ðþ ¹_í�}ÃlõAy‘ô›�ÑŠu}zhoh_2A*FÃÁÌɼ6�±ñN2q}Ëþp-«Ôø ïàÌjÍ`UÍ-ÃL\T%\Î.c[RÙím%iJ˜ãŸÛ©h¼TNoÑêÞ ¯0ól•Y”AkÊY2�(B”Hùn�ðxg!r×,å»±ê��i:¾Ãö!oþŸҨ}®?RïzîÀF¢û-²\CÌÑ‚ó¤¢ÇëÜèã¨T*âP¿€_W&ð>;(h>߈‰ØdVÀw�®hÛF°ù8ï¶šk—à–’ƒûOM‹T8«û/ÏX¦-e~wœª?TßåÔYØN�Ï™>\âðO˜ xåFó–Q?<qõfJ¢glîzR�TO�ÂN\^]Ý#½•Õ�²2aÂ%«áv‰þ"Ñd‹ ÅSOØ�Ë’µ‘×ÇNlj ½0vù£s 0\ÿ¥®¯l–4w9컢‹`Z€ëv„Ý|æŠH9Gt°dGA„]0� ½žAlÚýس²íý2ÔäI:µ¦-EqÉ)ìg iO ޳‰^^�N`\iÁzÏÀ£u×}âe,×tq¦‹–,ÿ¾–3¼’…ã5ëÖ úž§´nŽùËNâã3ž¼Ãp°’ªÊýxÊ3vžÈ²Õ_·�;tß–Õ3âɱºA‰A÷R$ "|M”ÿêª9H9n–Š´j$¬lŠ8ܦä¯ÇÝO7÷‡×ÊZ­ Ú)›´nk˜ô<Ÿvº†O™ rÅïðÜ�€Û?’EòÉ}9¿Úi1 ;­†£ÎVÙõ“µì�ù°‘Z�%}‚14=µåލjwÒå7MÙJg@Ñݪ:¢4ø¥Rºòk7±ì“R¹™Ü*™³+šËÞiS5·œÕ#¥KÇ ãà—0çtñ•÷ �¤I»§ mÞ“ënû”E’´Øb&b•AFj3•Å/ÐÃÞ¯òE^ÙÄým…¦gß¶ƒ¦ á¦Û�³Î¹ÎÀuGƒ^��=ú¨þF£#m|$=DåB~’¶nþ�ËÔË=±6a²UÔïUf©Ã÷ö’eÝJéØp¾É.QDf›L½c¨9b<»�ë¥æ�·•ú…œV(¬ :º6†Pof(ZE´ìî÷qDÕ9Y=ÒÑw§ÆNøŒ{<°E¹ ­º ³ö�7ÓÁaV‘Ñ©B%mq"X†IS¾#b?iBéáãǶG¿Yí}‚�:qráý65g¿„F=K­ÄÛ}µüŽ ÕÔÆPHé�–“GæÉ�J»å¹Û?lª;tb›ÿcX!€Çè{çОXÖíf`sjA°ö§½“4\„þÄ3G½®äÆJ¼%ŒnÈðÞÝÉÝVyÙÛ}‰ ÀŒK8:oú�œlÆ�K¿_ù¾Æ,¶%‘ í3ÜÔº.ŠýUŒyÍœ 9{83é:Àƒ#é­Y½Ô‰C¹®ÛÕÏš¨ú~ÉÙ÷¹1�)9ën\E3é‘:eáñlÐÓËCæPoÙªe““n|a%oŸ3UrU¯?‹ï�¥Xåó†;uWA›BÀdÉý!§‘Ðp,ÉëÂÌí—ÈÕíÉP€†_EÕ„ËŽ¹+Øí�€;åg“sæDPì§¶°øÉ“Œ¶/¢§>{2:ŽYi_ºë™1å _p&­Ë’ûuóÞwÆ™ñhÕwÈ�Ɉz—˯=F_µ±çܽE7¨`žÝß5êÖíDð6,¯¡ç­üx‡ iÛÌ%ü+«Æ±Õ‹Ì¼þ/¾–‰±ÈüñbV¹Êîp#h]¦DÏ@> lˆ9]U�|ñ–¡½›˜«�$HéÏød±_¨í*–éé »šš`´"¿É?¦çPã ùJ‰ðË:Ü�¿<ç<Û“ÿ4cS‘NP¿²¤’P�a¹ ¾†m ö˜‹˜±Á6ÏÊ„ë6©ó˜o5ÖìaûÅÊ}‹ƒjÙÇi±X ÙÞÈ»öÕþ+O½üÉ‘™0+ôÙý/,jÝżH‚ïjY*ö¤EɺGm1�¤LyÊ�h¼e»taiÊ-Î_œ‰pl¼Fm™íÒÚO5*nêª&™k…½w8T=ïÆ¸sxz •fŠþi. ‰Du¤ :ÅDFîñ-Ÿ‘›Þ·?âQ:åm9-+ŸrH´«¤Tl5ǯ˜Ã¸+ INšs%Ó"´BŸŒD@ïéâ¨2/ÿ&²lΞIb{Pû{AvÔ¸3g_|«ô!d2þjàmÞÀµ½K²Ã%[Çz4À”vÑ/õúsí2 x¨QôëFBæí £ 6ƒ?¨eó4¦3Bœ£Cµ¨ëB•‹ªqÖØ{ÒKoÊ�ìÀ „äÒïÁØ#ŒGUùá¸+¤aÖäÅŠAöBòˆ=µòË×5ª†¢~‚2ñEAÏGEu×zq4¤/‰ï0OdœËHW…šà P|>þ±æð U.@”;`">2Ï>ïmîò冧§Ý7‡-üe�Iͦn»~Ò À\D—c –]RµÐ01êzŸgªž]†éôõ·<ê)½’šdá²7’ßÈ“d¨âT‚.¼³1ÚZ¢œÕÞ@)@#‚À4à5_Aª™½=\A>w‘ >®êSŒF Y?ð¢Vw°)ÔäÁùA­ó£ÃýÂ*Šj�ø7¯‚Û"N�1sêm@<q5IT¢†b‰âgY\¥:ò˜øáÈÜðMó¤ªy[L}éÔy´[ï ¶�‚:›µÛt)i|½ú¶à…sÎ3�r`„‚ú©lEuœ#"†‚Ès‹Z»–2'^t\QßËÏž…Ø5Øw¶´áÊg?nñ¦3EÅ–µ~˜R°ÉKú÷$i2v#1ÍäIlÝö©åU¹j�é<ñd! ö{ÐÇ.ãÚ„À²¨TÑò‘jSw‹ñ©³[çyâ×l>?UMÕœ£ ÙæÊ�A¶:é£?º™8.¡˜*±*Ì AðåQX=¿i,Åçð§E™¸ªÃêfˆP“ &@4 ÅS{± Îá¸p.S!¢V"|º( õT-û)˜ÒAêkë¿r¤(¥ ?­$­X�jœ[a=¿kÎD²˜RCr~uÏ¥¦­#uˆÍ§Ø …LÆÜ�ç’ß -½Ôò`‰G¸ìÈ&n ÌßT)æ‰Ò òŽÀ§µç"œªöè2&¢Ü� ›Éù`4¸ ª¨7¹³Æ<Ü^‚ürOæku @Ë(’ú¸­%/dèKÜ )0�t‡¤zÐx䌡?ÀëÆ;îCúÈmš2ßvlæJê;Õ†¢¹|YcH¤�aØÚ�ÞcŒ¤ýw²„—¦ O¬y]‰sYI1 ù‹¨æñÒOiî"³ÑK ãç[¾à»ŸE}¤T|ÅzÖ�ê› =z[ãoMFœ¡±Õ×.²òFN‡l0S p—¯¡š;#hF R‰fsû˜l8Ôžä\¢£w?ÏCs)7mß_Mð Ñ®š¼éðéAº¬}_a4Rz2„èFŽ�‡†‘׳>A@Bu¦[šúxjÑ1Xb”í `Úr&òÐÝÁÂ0A—æµmÛ¶mÛ¶mÛ¶mÛx¯mÛ¶­ùfúïYLLWDEÔâdžÌ\d–W4?ªu�2ŽèÔ8.ßϤŒêAÞµ§Ãdž&�%÷äç i±8œš„¿ùëIÄ•§µw�3.Må—�í  ÌQj' ±®ïÃGWS '‰õë5¸\ù{æm1üWbéÓ*…Bc PJ©ºÖÉDßr+ʸ¶ ÆÇ3•·ïª±È�i– ±“&m¹/)åKÞ!ú-:ÙdÖÿÐ9·Àq©CJÇn)ã�NZ$xïNINÂ_Ø·`h1/kÌCè—[�ÃÔϽsFfJpðZz¥ÿ[¢ož½+±DX(³íÙ��ßD ;Rë›î+Õ~}ñ4èö¨àx]m;®H‰™úϰ¹,AGµd¶Òš}!ÊË¥4aø89øhøÞüE®V™¾`·P1 Z–›ˆÀIµ«,~ �õ¼ †‡yQé¯.—èx-HŒ–÷°³Ô9Žø®Y¯£¿;'~÷€oo(nk;¤‡8é¶Æ×î_÷â¶_¦û‰Õ‚¤!³{Ø~d÷Ê2cVé©ê´¿*a R9X/ô®Ä%ž”°÷ê§}3°¹QœœeשƒY *àÓQpˆ%ÂìTÐßJˆ+eæé…£~ãzÉô¯ån�Y±æOŽþ•A^ð0Ý’„¹*ÞŠÎ[Vý8ŠÃ�!ÙOSLìp�éà4Q|OøV­Òvó}5ÓZ“„Ô²Ïl®F]ú1¸ûgÛ’àÐdPÁJãŒ�p†“ÒNý™®j§ë�ïGBl´¹¦ÌÐÇÇ¿¦Æ¾!ÕX‹÷âΧ¤Žª{}Aη ¸lX�¬V»ÔZh§x :â�Çä êtdBÛPÂo” dAír1þ’Ê�mµw(�¹8™2Á¥¶8ǹÖÑ�¥5MëXLOÅ‘!Ö¦ü¤­Ä·•}@é0ªÅÚ§Z’ëf¡G‰�6§Q�vÔ®…¤·`{z÷6Û&°¤©ÖWåPxÜðíCãíÜ—­XeßÌ®RÁh›2E™¾K×®ÿjJ«_ÙÒ`z§’Eò'Ë‹œ‚±ŒQÁFÔæ®'ìk°Æ'õ®3.Ynš�@Y-ÚØ‚K–^ã‹ô;4ÊÔ"lúèK Áúª±Á8Jñà9û÷±üI²‹Â·;ïÁ<=öÏõØ;,i©¢C¯õì¢åŒÁ�×óª=¯…¼‰wbÍ‹ºÅŠ~oÂm;¾éWl§šÖVNž�ÓœHòí×ÔøÓ1.¢X x×°œiþ�žHóÚê؃#)èaXu†ÂZÅ*Lú¨r0@Ù’üOôÀq þŽ7$§'o㇉ÿœmåÍ$펨*‹9!�δ\\õНf ̼òØ·æ\¥s©ñÄâü¬%øì¡„H‰ªDÿϦ¤mê·±sVÐîˆZ18fèã „Æ)hz Ãç7(ÖÙR‹-½ýã ³$<‹…r/žñßYj ˜ ÔØGÅVXÌ\Ÿãõ¹<¤å°-èz²&„ûk}„ô”wÑÓ5È@%§ßþœË %¬RžØ|&#ó¹B¨€2 öÎÅév5’=B¦iR�í®ý}`]®ü”ûÃu ø ³š> àŒz2FHåR'Œºl{É ü%qú0’üaöpX,GŒeih3àU:w5.æî*AÙ–Ä€[Ù?k!“w~ÌäÛrï*¬ƒû�ßøå°Úaåp � °¢³e¥$l ý[ñ� ž×YUϪÔÉ ]vd>÷î?ÎóŸ0ÝÑ÷ŽaºR2J‹ª¥¯ø,Ü;±²l>¦"ŒhG%¥¢€áÃ\ΪŠrÆ¥Cůq˜hBõ}ó´«Ÿ<£b[ûÜàV™AYEÖÕ:Ý �‘Kð¬‹ì-q§w^ ,‹ ž¬—b6Š"r”Û �.«O2ÇÍ:2Ç2^ËH‡— 3.Æ^wã¦ö¤�–èžGBö.IAÍ8*Q|°Åõȳæw)!GÁu˜—BÖ$Þ¤¤ØÊM †m,51óÇ<)À$N�šiC{4€‘�ÚÀ¨I¹u‘q„ZŠç$ye wwýµ@¦ˆ_ЦÞù 3fr£Ó[ïÓ»v(1MR%F…¼Ze‰ÉÛ™‡‚[du Ñ“îŒ÷l%åEev7ªD‡àA¼Z¯>ï›FTrœ™ß’‹²Ÿo‘àè/¿*ÚùýÑãá1qQ,‚ÒuÂçq¹0@ÿ¹ÇÕzØJl¬ Ó~q£²§ý‰® 8oZÁñÔæ&—ÆÏ¯…´ÚB­Êäq‡î¶Ô¯U8:›¥û�R™‰lÎi�ÙbîÀòJq]Ë_çhXNšF£Ù'õ ¡C/}ÂåÏÈä¯xû�ËÜÖ âo€jðz;-Š£-Ö3H«rüæWí^޵Ä9Ñ‹dØu®‚̪Õu`ýL6Rõ júƒ öÉ×v„‘“|x Md¢Jܰpª�já±ÛˆïQÞpÿ&ÉÏFâN=¿ñ(žyy„W2ö1þí_uè\ø’Ú ‚Ld >UˆÎwž¥Ã¶ZËgÒÛ¶Ö3È’ŽQ¥�{eYÚô|È1\Åõ·faàX�ªp&ýF_„ýÀGÌtæÉÂ�Ùw›Œƒ‚ur0oŒˆ §{ᬆÄ�¬ÆÐl~^\l±‰Þ„ +5ƒÊýÕKU‡XW‹N×no{M©ûzOC=sYÄ!×øRGÚ#*�V>«ŽÀèí˜â1«ŽM¶my·1üpýþGªË1*”«)þÍ}tkΫåÏú�äcÖ³<€T�Ô82kº$¸jø‹{äsïоÉÀ¡¥ˆÛ+ξ»Eƒ›Ç‡Á ¹í¸´MDr‡D?vDb’tW5‡‰rXµôÊ!�—2D£C'ߨ°_ÝÜß2äë$£2®çH(ôË¢ç,HÔ>£Ä§¥>v“Ç`q«\œòÈ´\ž+�ƦÉn4 ,h$ðóyƒ™�/íQḃœ4Zòù]›AË™Á-OŠ2yg‰­É^§ ¯àgâ³Z¦ª±7ÔÓŽ•”öÒ›‚Çâ1…ž�b;ÍåV]¢È_¬aÙùØ"ö¬.¿1É­Ùù.“L½«SɽSß«G¾Ý2`ñN‡G?N¨‚‚0Ýìà6ô¹ƒ¨Ç½SIJsýêï$X †qÓÓÔ;í*”lÞ�u·½�pæÁ5ÿ�|qÅç‚a0o²wÏ>nå‹B‹Øß]Wq¶ÛÃrÛã!?¢}IŒ”“e³B6ô4§±õ×…#±#w�l£¢FNBk¯<øNÎ>%áCoFµ$#lœØÊW-fÅf©‹61šÌVLƶSÑ‚Qf�$�ínœÙƒlÀz7�š7T¡5ØH¯_š¶yšRCE¯<]¥ƒ""S çpÝCž—¶*ÇÉ:>r¸ è»àénz^ÍɯŠ"LóåDgÀð}Ï_+xÉÂ?øD²÷Xlí£÷%¡½žZ#Šš'±'R—¿¸ù–Lü&Bk¯Þ:OÙ%Ðß‚M ´ÒÎ`R`gÁ ¦ßZK‹1¦Ôð»~V=v®Ûèö(?®iâR‰†ôÍ\äNv|uÿ)À¡Ùó„îTjdxä†úPy dœÛÕ;³!¿Ò Ñ=&ƒÅgUo¿Ë 9RÑ%ÇêÀ ¤ˆÔœÞ4ŒŽãâ‘2Sü±|hK˜ºšt°Us)âý£AKó2‰(Ô<©t&î—(Ä5G´)è ¿3‡&–ë¶„Új³ë€[Õ6ó€ Èzü­€(wü,g\±êá%nάÖt|¾ÓK‰Ä~¹?i´X½�Àd°fï�š]’tê²¥�èæáÿÅOß_“žK�Oh5*ø1ãä€ß®ú²¸¨¦Zßs¾×Ÿò½%RFL5'µ�g[Ô ÆvVŒU`}Ç×kÒÀ‘�ݺÅrü¹6:“9ÜÄŸÌ5# z½:ã/(MÊÛŽÍó¤”uV¡-B²<•]«1ýq˜¥ý—Ô�rf~ž ëÝ› còf /tCrÉq¢åLân»•jÌ£qJYap%óŠR î ¸0õöZSi‘ÁѪÅ'Ý׈Æb–Žn6®¶£øœà"Ööb“ßÐË%Í4×WÄ80i¹â̬ÿzEv�SGo¤±??Û’c+½o_¶@^EÆžî9oÂüñäO ,Vn3ÈZ}"J†$:ìp5••‹,&½¾Ï‰Rª0 ¢~²å769–�ÛFº]{uA“÷—kÛOsƒ°¶±ý�º€WöÅö}¡VG€¼ÊKPÁ¤ §ms¹–Ü QÍ–¼{9ðà§‹h!5Á–*ðÖÖÒ1¢Â*—­�4ÖÄòŠ…ßº·k ¡¬¡ûä…9[Eb’ÖÛçÞ¼n,ZAÔžŠûVM[FÆJ]w Þê&sÕX ÈíÍc×ÞH†À`4ñù>8,´�柲†Î^qBË…¹Ð-œÆ>3�=–¤à|ω3åw••êjÛB6pÅ!îSó–’ÞX…N+n áúyÕh{)�ú5ŽÃµé…šî3=¡ÅÜ€èýâd0!q¡2ù&vù?TL¢ö�¨R(©b³Æ;«Ê¢¾D6QIp—Ös†Z_‰vÜÇÕL°ÏYõ�¿iHf~¾çqÄ… ?Ù¶Ú-‚Ó8ç©«¤’DeÃ1V hÕŒÿ©^A~ ù+8Ã&žÇÐ^y,ƒö¶Ób@}ñÔŠü!¼¸yjMUw­¤A_eþøÏI©38µl�{ueBæÉož¹ IA澜˜ “B°c¹„"‚h F°Y0¯33wªÀLÒºj{#΃U`öÄîÿ,õRæÈEé+÷úÑ2Ës@ToÞ�Ü¥!žÔ[ʆQ®Z°Æú9%ë޲kÌvÀpZåCµO ™#²þþ<ߪSXÅ)Õ~ROìHñø³Œæ[¶>Þãi‡"ÅÉ=ºõ‹»¬>æ±{2 $’¯od_¿Z‘¬ljÑš�üÚ88!킪¿­ÝÚOe2o^ AVOF©–ËÍyGÛûÜb'¬GKæp¿}æä=³€¢ìß=ç»™ý� Í„ýíŒN¹ýdJ!Ô7y_˜2ž� sÊññ¿ÌbŒÙãxl2Ö¹Môß4’�ÙS<§Õf\{U”{F_Ô•S?…DîÉnK ½1‘9›ñªhT‘½æB‹ oÑg&ж^­ÑJ‡«6úÎp5ø�—E¶ßê"úéÂJ‹Õn�ëý ë�25™ÑCÀçp¥1�ô—^íƒMålIS´9Îöž|Z8—#WH4°á�OîÖþNç�È+¹ÞC}"ºÑˆSxª}Û<�¢Á—Á~¹Ì ±z/’WZ÷®˜âWn´(nO˚ߨ)ͪlí»L²fåð©ïåþ£½z \K n¶P™æõ÷žÕ–«ÝŠÄ"¥•ÛÓ¥TÖ¦ˆ$t@ e§æ¬—©‹].¿-:–lŸT6g°óTn‹‚¯Ö‡þQ;#XûûÆbß>³¥é Gý~ôÿXâÅjÆ™™½Ô" †Ê\‘Â>ºZò7…kPI¸ ›!÷&Ö®µ÷)l|�n[i·³_8`)�k’ 腀Ų[´Ip@0‚ë‘~ïÇÍËÖÙl¾v!�8ðÒ¨M”[�®€0Æ?¾56#Óu aö¢5©%Ô0«JÇH §Ã`$?qè³îÕC­£½2NŽq; ~€! ¿Æ_³é{vÜ­ì:Åô(^V+ÿ'ÕÔxÔeíÏ–pìªW'�‰Wœú¦›ïÁ¯G9 »Û\¨´Äç1T ¶[Sêu`±Æ*¨‘ vÛïвUºL>÷]ñʵ¶”}]2¸æ³ÐmñN:–uÏHT©-OÀN$û b”S;(T<دònpQÊ-¶ ppºý AÁ&ïÜé’mÁ[•N4!ø�G·a"[I¢^ÐÀ—ä’F;fqu��ª†Ä£LFÎ}<³Ó^R¼ŽîÚyáú ÝGW%ù/ܺ?�ìR2t•Ó·û£]Æ V�„ÑF4JÀ¹3ß;Q¶‘ŒèÃV¡.µX?çº g@V† 8g} Òi8ªd„ŠR#!A´hCÅ7*£ÝU[-¬ê-!¯F“˜Éz�f]пˆÚÕÍ¿C(VÁœ·WâØÙ… 8ñ�ØŸåû}fè|;ÿ2xNº]DŽGž–Ú”Š.jjOè�\Ȧ$lô °ÀÅ]äÙöw÷h‚}ã=“Á6¦A˜˜æ¢¬…ñ‚¨ùjX \fEé¶ÆØ»ÛXÚÌkæßÃùl÷¨NødÄQì àŒV¦/íÇPÒa«> !žrºs_Y®Ò0|!ój Xý*'C(’meX[Ý{È9êõ�«ÖøbBÎ¥Ù= 7ÿÒÖñ­YÕÂmï䎴úךíOü"±_ÌúÕ�·êWÎ7ÈC<ኧÕ!ð.BldØÖmÔɯM?•î�HݵÄëK^'øÕ¼º“‘‘;q†ÂæõŒvq“Ù³+ÝžYÀšªœ…ÒŒ�§òôVpoì8œé€´(®D ¶ŽÃÙâ]Hþ±€œÀX½þ˜Ø)ìuÍ¡ë¾+¢¬®‰ŒÉžñY3Îz6Á•#±S½ÇD+.œìþÆÇ­ù›øŽL?:d…^{6ÿä§…ì 4=ëcTªÜ]ÐÌÑ2q…ÌhV F-t4'ó»œ! °O&8u÷ÎÃ1ûmŸ³÷Ï�ÝmO}þ©P*÷Ÿ'ªÃÍÒ†hÑÚÓ‡]ŸhàÇ\g3nÒⵚ¡7èI[2Ÿäd^ù–¡¿®•ð+…*®µnAúÏ[Êzeþß«oÌ«ã&¢dz…šì)I¨:|C7¿Â »:„–¤æÃ´ã ]jìH @®´çˆÛ§Òд±Š¤wT2öÃáApúI�‚sIä�s€«­J2ŸJÄ´_Vž÷ÔgÍ›C%­sa}«á…}bÌžàT5´ÎGº¯õÃ{ê‰ Ëì.}ÜÀ~ “S�ü}܆¿<"]+5UC%?¯2÷�| M2&ì@ÇÂÍ»lJß[3=÷–zaœ¥²ÖýT/èø³×%&F›k'—@†œu%Í?ßq-0aCÀìƒ8uiÓ½8Ƴ6Pg!ÍÊ—Ï(€s1ÛÒÃ.:­ú˜H„‡ÑAD>†WçBv}"Q>)ŒjIpZ²]š&—³öCÂnº˜ ˜g˜ï<Óü‚\2PÙŒ^–�ð¹Tf†á¨È#�N–^9~vÕç|½4¢_\#ñ3Ù‚M~ª¿�¢¡PâcމÑ"‡$Û5…‡l¬’=oov(D’fÏh¯?óA°õ£ œ¼ø-'F/æOànxü¦Än´Â�e:ƒ¸�$hX;Ó­ÐîÞz„¶ï…³<_P)ΤA–:åÚ JIz�§ÃÆU§/8bÑ7±ÉéËúB�é^�g�× ¥s_¿ä¼ÒiÜ2Žèîäå5¡°â¡{ÖX§—ï¿ãœ¡&K³�œØ¨™7@Ý ÕDJöð }#nñiK¥ˆè¦ŠCK�rÛCo ˜‹ â¨}°1ŠÉÛÊBlŸQÃ_ŠÍ^^Ä› «2˜TàŠ„MõD PÑãÿ—®!‰¦0u�࢘TÃðÝe¡‘:Ecéæœ.­¿puã#?öq–‚Owîú�ŒÓ/.ZVãŽ0¸k~¡äeš·¢¿« ßL¥A%oyù’V²&&º²ìߤ|n/2Ñ=ƒâž†öÁÓ¶£Är§t#þßÅË0´$õU•`ŸÙ#yÛE‹äN›wjYòÖ�×;§>-­CùæP)èÏ(Á†þú¼9ήÙ8ìX_õ$V9þ€øL.•óïuÉÓ65¯ž‹OXºx’’Ã}{ål iCyê½ÃÑÿþj&C;¯õJ2°žüÞà®2+ÏÉ©‚Ul9YôCµž0õ¾XÊxG¸*Þ¿ŸÓöCÊ£¨_»·–\[½ M‡ò»î¸h‘O¡®­Jö9ÌÖÍvçÇB‡2®'iÑm¿à«íW¼Ì7ð–½v›JŒbïOΆy„÷›6M�¿uJî±Ck¡ð`1NtjvsmЋԹ–§î%’|@ëXˆ‰ê5Ï5¥סß3*lÁTäÌ…^Zd½µÏÑ©Ÿå÷÷‰‹ »�Ðt…“z¶Árå,r™Ôy+D0nU›ü¥òwph÷·\9,%/ÒÝ3]@xò{}uc£á‘ °?SÝÞÄå�ûdÙCÉF Öc«û+…XæäùüÐ'O¿Zyå³Kpà8\ö›rÑvò–ž ÉskmÃ/AÅðTIüÿi‘�'Ý9ýtb™ÃS)]ÏŸô‡¹Ðs¸¬fVÝÿÛ/×Õ†�Z4S wøàïá¯W ÏQóù+fnë¾—˜/(€�Å÷re5dëk3¢]ÅÌ|îêâ£<�¶Ø†�Ô*Û§þžÍq{2ò©bglfSØ…(žòí«õ£/؃†µXZh_|,•agê" rQÇ[¤”9¦’ª(Ï<¶i¤í¯(’0¥QÀnË*tO…’ÆtÏ>Òâsfé4É1yL6Œ¬qDã#¶0µ„Ö«}|êjÊC°M�>èyQ¾†—3 EÌq¯œõàJHäÝv;ƒ‹LÞDa´qÀ�䨬üçnx >Ê|Šè`¹ä‰œÛãå¥ÎÇ9|ÊÊ6á�j:ù׊2çâÞ•x6飡Q lvŸì :E«Ú&+†'n¬óçÙw³; †«MgÐtžM·ÒÍÊËâÑÿôKÍU–YÍž÷7/½•Ô®w—¯Ì�F@[BÔ„‹I`o#e†ˆu¤DŒŠçëï€Dòï&ªKoEyÅñ.NÕøµš˜ÀZ}uj>é"RìNºYRÅü´Ax•ó%¤«¥VxáD©,Ÿ·Ó†˜ Ú,®û¾ Z,êrÕ…Q“^?ååpyvŠæ??úš¦8¥£7â�­mjû—§”«�L™PoåNj–æë±`ÿO(Á2‹}òñ'&Iïö›«ûÁÊ…É á$Zi ™Ó¸úh6B´XôƒG–®a¼æµy§î'Cni T£ü Â}3~€OÛ㫊÷†»s~!¹Í!�»µ�Ñç:¶CÛ,0Y¼,’‰e{ʰjüyÜÀŒ}âŒH^2åHuSž5`ÛÍýx� eW´Kžô4ÉÖÅz÷î™™oþ(Pu~$&„õæ]˜_Ùm#» á¿ Íçõ¬×mµ¡!9¶ºQ¹\÷´«5ã ¨ôØNÙneQTcÆTbŸy•j°ŠB4W �¦ˆ­;/÷”#Ÿ� [®öMS³Ÿ–ÚÖ�~1¥Ö<ûOýÓ¬+©Õ,yî_på «1…¼fÄÇ$¯”×̯*Œˆ>ÿî¤�Û¿üòA-¶|&Ö 1¯Â4ò5M° ±…{Œ�´Šî…X8lgUY†æ„PŽ‘ý0×óÈò { ‰†4ø:êOÆKŠ%ïݰwÞ"\Gr2®ñÍMÿ1T$' ôÇ>ÏTñŒñz Ê),ï’…·;øÜH½Z§Ð±=¹Ã /±¶2:E,ÏÕLa®¨Ž {„år5¯E]9#2}®-d×3%÷³Çc²~Ê=©­:=âPyM|þ²êÊÆUŸÞº¾%›ÒÌ‚Oš^�Ï£>¸Çç1ä�rÙü�<\}7/ |“´Æ$ÿÀ©Ïc”qÅðf¬=¨¼»M‚>Ít(¾qlCy4Š^™ÈXÝVHÏ”…(çeU¢1Ù[1�ÁrµÓ-Ïû£h7°¤Â"� ERME(Åëª�€ueÄ”X{îÖRÎ�ãUÛš,sôm!ÖC lô Ò²� o>óéŠF> A(ÀÖ¹#ø´†�,ÑŽy9xµ�.„Ôq¨ÌKI´^Î1¯eȸ<œ_«âÈiÚ¾Û`šGSåöáË9—n(½bRÚ4÷6SüeÿÔdÛy‡¹˜­”*[ù£(VÇq¡¦´x®‹8Ù¼š#Ô7ÀÑaò°<=·Cª#¸m=ä?*ºé…©‡£ÊtƒâLú:9# ŒI1¨0?ì5·Ë8ÀVV„ôxÉqDŽå í�2¸{I:“´ˆS€é[|‚þƒKT›jè1*‡&`9,÷‘®z«®~pÖПêÀHÕJù$ù‘–ƒHWMB!=÷þI¡ô`¦5­ßÕóEÒÄ2­Gœ×]ì}º˜¦gÓ¦ÀåB²õF„;ãïR)‡¥Ùø`µìa·jíƒ/‰¶øâJ�-%n­<°(£ãÓ9˜7i �(¶X;IþÓ´ :¦ÀÞF>ÃùË…grþ÷{W{„¤´ò±ï5[{#Hë¦WúÉafS7„ÜI�VêjÚ^#kc‡w+"ä-îyAX°HŒ–;±ø×…òÙLW¶ƒ'_p 0»7Cö¤ þü8ÌÌ Äè­f]q€yì™ô˜¦#ÔùÙ´É}IXÐ\˜/ª~‚9e'Œ’§A¼Æh@,½L=úœŸ„ºå9QµVc¶z¥MPË1ïÚpÅÁ±Ü}hªÝFææ­tåðÀ.V:Z÷Éñ9ïñ‹N‹{ì6giuŒ >·ST ,¨×~*¯XޱË7Yñ~hå.ŽÎY«KÅåÔ!â†H^·1 HäéúOÑLéûÁN^WÙÞí"ô}ÕÊHBW�§—2 ÚÒ^œx °q¤â»•³ît÷¡Pûër;[— Û4k"*„–§c|ükÃ÷cj- /*�ó¤aváJÜ‹ÁàÄRvçk7nÈߨáÈ&¹•ɪ¦ebEì&�ã 굌» 8 gÚiú~«ÞŒ’ˆäç1�…´f1Ö†+¿™˜báõ‹�*à :úä3@)ìj(>Ú² `ý¿|ûÛÇÐ S1`fÂÈŽ‘° G¡èM5A[ùÝ«.›Ðþ±+¤ø:ËcÂÏþˆÔOqÈÞÜfÓì�ÇŒQµyäDÙw˜ä iqR…n�ÇåúTª.)(cÙצ{“Õ4Ђ3›a�H‚)j ½Ÿioýnë]…7É+Ò›ù"Íþ¡RzôýÛŽ(¤½•Õƒ·³GöJÕ˜If ¸ˆù荓Ï{ÊË.Ô¬á0§9³¯(E1‘¦ ¥¸–÷À‰´ò5%ý‡}¾PªŠb†ò8$aÙ©›5¢ZE)äùÊîc’/ŠÅ5é÷[�ëžâuÄÕ¼³U‰°pÄq‰Ž\ •ôíà3Ûßø—שDO–—›é»+Ãku&&zóá¥y•^øÔ|;S;ð[*= ExX–‘%mšò‰ÅìóO‹r´žw7)Ä2n­ˆìæFAZ­èƒ² â•ÑðÒ©=K*QÆ+ïŸ;mËe£,ͱMõµZl.ÿ.»æóW×`cjtÝ6Ñ"��½‡Çeí½—Ú}T<”ß.ðÓ³2Q;à5}h�Ǭ#m4Q:}¸^ÃÑ\KºSóLµ9 û¬4ŒvÛi( òêyUkËT· Èȇ`Ëø©ñQ¤%t”m+Ýš!FY<˜p7¥Z/¶õCë[ú3”&²é%ù²#»‡”«ü:ÆÃ¯.$L½½¥h€în3ú«Ói@ÆÜ"ϵz|–БÞ(ÃÖUŽ¥ `1ŠpG–eH€pXÆêìùqBxô8Ú¦ãÅ ðÛôÍñstzYާputÇ)%@kFaw`ªMù*´ýûÖŸ¶æpN�¿Ek@ã—Œü�SsxxÖˆTáî_®Di[0‰PbYZ 1™C~†ÀÉò£cw.Ë e9Rz¯¼‚juJtÚ_C%Sj°B[ݵ½Õ…ϨLý{š#pžùôFjþ´ò9léé*ÐSðÍØ•�Wí¿†-+c×–Ûüc¿&df¶û´ÚÔËíÒxPX[ÄúàVxe( ÿ$±!úïqTe³�~çaÞ9+«‰�ù‰" pl¥É¨g«dÔŒ×Ý"oÛ-õ­Ó+•!,Xë¨ðýBŒÐÜÐÅ�²H-x?så:¹V)q´-™35à¿Æï×àý¶§ÿÍŠ‘²MjÊ=ÊwDdiëäˆC@È�æ«Tom5l瘆ÞñW6Â’€c~ëK^ä¾·ùüûBEàž¶«à'A¦ÔÉbg<¦Þëå³HG6ýµ8$q83t3\ ö6Ì_ÿ§X¦¿†Âw’þ|™ÌÎÑZ²¬çÌ+´rÞ'ήŒjÄnÄ�Ô³ÎÊ¢ɬ`‚[¿Ê /¢Y+לåîó7|8vfÚ¹æŠEg&ŽüVÝ ︗]:ôa*õ €Ib~“9¬ HX)K§&f„£CÕî½èÌ •ãNµ—ÜÞ¯¯‹ôO DÞ-˜]ÀvîÑ¥Ás¦¨�b\xmÇ÷f´vmO5ù3õ•¥úNønUF¾îNگÚÿM�BV1Ë¥Úòøå9ˆÑ\¬‹@é ©J³kgŒWÒ—Ü)âKúû¯ûÕÔ…CÛMsøÍ�3bl%tÝ6|ôCï¼B–{/‹¬ªC®›’סËÚHYHQÐ� L8‡*©¤8Ú yT0öåPÅ:4c~õûöˆ€E)ÂãuÓ¨š¨a‘†Ç¬7¢�Sþ,®âá^{Æ"¼…NoTƒ ùÑãñ &å3 ¼w’²Ùºúw…]òmÑí½æCðŠ˜C°¡³¿9ÃIcTÖZ`‰hY�”÷ã«ûþ�¸ùœÓ²™Œ0äB1a×#’ú¾/<ÝØ" ˆœô— Þ;ð ÞÝxªkè¿å„hO!‚Èõ~sÔÆ¯à3S.“ÃÜÜhØaC·z¿?_�‡ÝOëã8U§âvi\–éH}+nwnOÝÜŸ >>î ùÞòõª–¡Sñ°®o´° ú« ÄK$X7ƒcèë/fý~é$Ø+šñ;òOï”á#¹:âo¹ lî°1"^mÌE¦øºú"I*”7^=¸ƒ¶]ê…{-5Í,X†¨&�Â7'4£ikMª5 Y�O`§‚XFg§eè� øbùyÕÇ$¢­­BYBŠ9ò†uä:9k‹{AøÃ°„Møg̓$ëІHý¯†j´ÀõÍ"– ^N¡åú—Å®*�¥H],?mû)Æîgœ�µ3û@»vå­Ê9–ì Ânó68J�jõ]²é—ìTÅwæ|©¡[ÑF^8¸Áß j¼Ü½p¶¡XnäÊW�ÄPÛ×,ªŸzÈ=q=ä+š%ÏÞI2 )GÖµ—W»OxÙ˜ð“‘ib¿¦±Kœ\TlÌEŒ)çdÙgvu*湇[°Gh6qÝ´ãP´hé-ElxRDŒÃäßªëð4[8Xœ)‡V ãbV 5¥•q·Ö‡£ÿ -7öx´Ì¹E‘úo ñŽ÷ #—8 þ¼ÝÂpÕˆª”w…P*7DË#›¡†^ئw„¹Â«:Išö?–Uë(êɽP�AͱØ-èÖZ”¢r4F�Öä×es®¼`ŠtÙxSPn€¸%b®:à¸Ùd†ž–©Ýk¨ƒ�Ý„‚{b÷[äkR| <ý¤+H�Šö²­j H ³pZNÕý® ñ9ã“íeXw"ãgñYTºÄ" Ü™‚Èeë^QÕ€æ¥ò’¢ºö&]Gr% J€@sˆŽåM›¾UŽÊ1c ¦±Œób©˜ ²KÃuWßÄÖívlF»’v[XÈßDh Œ”áÒDñ#ÙýjÐÓÆßþº}uüæI«¯•ÖtÇ�×þ£;º/•;“\*Ç‹xÜ’Òç_ÔÚsÆ#ÁBGêØN‰…,t÷&dÓžÁÃwÓ�ôÍ£VØå88ÜÖ�kW»úaà©îƃ“Á¬™ÜFϵRóFÖ)ÞÂþèúP[žqÃ}ÍÇŽ�´\^õøÄŠ;¨+ìÅ´–§<à¡|¶N9ÞÀ™!wA*y…ýê9J’Øîá*!ç¬K]�dè¡ÏÒÞvÎ1?Üo„¿o-]–úé¦@z°Œ³a;ªd­x¦ÂV%0·7ÂìèµB8˜²_!UÇñ¨ %ôJíWûè’»jO8þSb¬�«ï ´Ìæ;›KîŒ\òŠ'ì&%éé¬$“{ÀŽp6Nž“™?™*Õ$׿C}Ò—g¸Eˆ—Õ»ÚYKrÀþ%™U>±!“^ùQæ­œF]˜ìØQÆÕ\¯ù¥á#óZŠ8¹3RBt–†¸¾²wï©foxJ“”°Xàu>�¶×;V—¼Êtü�LCr¦Tž}û“¸ÜâH±Wh„¸ø\#¯ü¢f¤(BܤÞ(Ì™þQtÛ}_ÊåÚ=I!pe¦0�¸Õí póF â.ò]Ê_}*¯Ü&ƒ Ÿ?Câ»aA8fœç‡è¦¶Ö}×ò[+XTÁ|`…²¤ƒ¹‡�×pH‚1éCÎùD¤ÓyBz™õ·•Ó9¹J÷åBüÕr|0kï%?Ý 56?R,´’g,ØSÀÐÔ󌿴Um¥æÖV_¤¬ùŠƒ"“ÀÍh,Hxv>Òrßoʯkж$�c|\ûÌs‡nŽJ®ÏÀÔ^¯Âaé°‚‰¨šKk'ÔÀ„Yé4ênVÿ†ŸÀ:zôµ†2s…¿¦®�ˆN«!Ô=¢tá»_«ˆœ-,ÂXñ¿½ÖSUÅC¶´5L…Äq^ãøX¸&>„ISä¾øÌ?TŠ!š~6+áßYŽw5 …�Yµ[ASãnæÆ¢/*oÛÙŒ>hÅ”‘Ug\AûemKêw«oä$[n£ÊÓ¬£VÐÒÑ|U£m|A‚eÜL˜u;â©x™Ø+8Óhµ|¡TÆG'UËÒÁ*·1œDç™ €ÊËÑZ«n~V!PÀE…æùø�V+øþU2A×N"�ÑüÁ·Ü!e™Q’݄ƌ|K{6ªÊ"ºgk|ž'„Í9ÊXzH¹“åº{§. Aÿü0÷ À†B k ΰâÁÿ)tÆZžFí­¤n7ƒ±-bÉ%ÓÁï5w�©p�@eà;°ÜÔè×0º•=Psæ,„ˆm9Æ€H~‡úž FÐ\'¼¨ªh˜ÎjŠZ’¦§sd“;`9qÙÕ¡åthü‰Á2¡éÈûE¥å¨Si¹ö* f ‰´Nœ9íÒ1Á¹}>ÊË8Çû×ËôlÛ\÷%ò¯¦ï5©ïD…[èÏü«°âI¬m€×RCF€/Ý’åæ b8Dדkªf»H4{ópÞ�º¡õUµÇYN*W*”€^ÿlj4µOD€™¦•XUŽžî¸c\¥‘u¶�÷"¬{~i0Ò9‡Žã"Ò/GW @ÇGø][R;ì $,§Ù&ˆ g@wÍá³+,¼aNšg=Îþgjk ½ñ Õ'‹§éÚ “#¤«e·èŠz™kƒ‰ Πåʳ©-à1}- ‚âNeæ‚|tñ\¦!–ëñ$"ùÚõ�?…Oø ˆ]GÆyæø•ý9³k¤ƒ™ŸÄÓ{Ó¸*`²I${ÀT-þ4îDøføÓŠ{¾aŒ%ò¼¦èRTWá/¦Ö¼,©A1‹08g¶oIŒlŸ:„(ôYõ3]WKEŽŒu#ñ¦Üòóww�<æÏp†L¬tu3Cdxs»4–¹œBSm s!V¸#KeWSà'Y},î`-­]ËDÏûºí)û[ßÖ ù"? óÞº)¥(M”º$ÓWÚ–Q•l?C Ÿã^ÀYØFÏ@&‰7-myhfUFÚüQl×H½~C Ž€)ÎÒ&+…ÃÌvŠisV}Έ‰�òFù¬Ïç–mdÎ}ó¯Ë[�Hn‰¶ Œ7au�è|UÈnMù†§8F«•¹1Ñ+ãºÞ½²´³OD£©ï¨à´ÃQ;”=úúBJ«³S×:wfbõšv gm Áƒ·¿ ~3[“FiO�A«bÇ3vj u/l>©*h'°¥J‰§ñ<�ÝàËÐÌyikÚi âß ââ_©q<*qðîdG Éa BÉ'mx(kwÔ³›9¹§QȬ¨�†ÇAq¿CàNè\²È^Mô¯ÍD/€ºð)(„7—2…»Ç€Z©v¥ÆO·Èf'a{ ¹4V WtL™_‚¼c²à+éŠ5ÐäÀ¤Ÿ‚Ñ¿«è*ÓÎøÑëp­9i‰f¨Öžîµ:$çØúÕ¡Uæ_3yn!ì2ʉûVijFTØ6#¡¢~€«ûqMv�àᜠ*ˆ¹ð'r fø«T‹·Pb®öžt@pµ ûr%™ç$2‹dü«kÔFßãÌÁª«Z€B'Æ‘*�Yù …r’ùÝæ4èuq(È¡�zµwé áØë“g°ÚQ£bb´%ýK€Æ1†o4ý:(—6BEhÖŠ…r�O­Ôhí©³¬‰ñ¹{  dÞl…ï.ÈQ˜’HdrðÁ/Ê=:Ò¡‘ð—óŸ¸G7£Ëôw¥4b±î”°æxÁ¸ŒŒ®¹;Yu¹9…PóÀ¯qãŽÒÀ@˵NzN«ºÃi ÂÆ b¦‰’§—] »ðu «»P6É�ÛÙ9—îŠõT5é)M“¾PBo§éWã™1VÿÚ­/ó1“XX#¨ìDì2h¥~Â¥úœô�d9íf–·¡�–v”¸ØPО1�Ât" µSp|¼žU@Ún’¡Iß>/Ž Ô¦žÌÍ.s©FL­(ÏÉ…Àæôo0L{†Œþ”âSÖœ)ò"ÊDúþ&z, J1D7mïN àà”ÞqMºÕ^štžSªõÌ :÷aùdUM#ÓsL%9­•æ÷Ø¢°o(ˆÔ…ØéÖÆëÚÔêbÄDrÿýÎz¦Kn·Ã(]è94»90ä ±\~b“ŸÎDDFP ̦÷þ'9¹{(Ï\`ENË´»a¼/ æT^ŽMknþ^\ºì ÎÓ5Ĩ©æ …G¤jIÜ­«|=U@ }<ÁÕC+vËÓ Ktvá »V2È%9=;ho§fï’4�&ÜXdz•¿†O 2ëŽa¦ –(DËÒ±IqAIn%bUiä².ƒ¥ÎÌÚœ¢ã1&}«ÄtðˆJ)oeùZe‰\6Úœ‰k$U:�¡¥Ö zþ¾ìvk /ù,+ñÆ¡Ö/ˆ¥Ôž$Ÿ‰’…õµm•œÊÐÆK†a0€Î”ç…sÇg Jí™ ,„Õ—ìÀ)›G¬%Ìe×Á¢I7ÇÇò64€î·•wœ³[‰‘©Pwôl±�Å‚_-J©¯s í] Ñ'q†I�¹§ÞD60JsƒÌÎi¾““f>(�Cd¨QžG¹Ü–yÍxlj8ƒÌ��Að,8@­‡õè4q2£x?»¹·Z_ók Ûú=ˆ9Ê’2è I”#™È$qð’;®KÚŠH1æ �ƒ_q¤&Uºu‰JÞêš!°ÂtóšE!z4§² š£GêvÖëÕ T»þÇTbÈgfØ™ÊÒ﹎<¯k ^Ó«“û°Þ’ÃËÑùjÊ{ßT^8�”͈ H™Æ5¨޼¿� o 5m³YÙ4…ÙÒ‹õ�ÑwB°Ÿ3¿ßbÀQíɳÆW�¤Ñùκ\J‡¹G峕£.ÚŽÝöpýíVHšÙd'SÃä§ÃN‚ô¢„¯ÈÉ{Bâ–ª·˜j½»·$~õ+8¸žU4I†¨=íõõ4›ŠñÖ1Þ Ã‹m+À£˜W:€Þ O±Þ¼@äë¾ð~TóÆP.{°Æ›Ãã™ÞÔº`€ÐAdÚþ$®Pfô]Ï*�°g%A¥z4Lëf â5ìu^釔19øî†°oÁøï*�S„[ FO9t4o“h;¡È—èÌ×ïC,kP,^Ģѩ?ªÆ&¨à�È…<=ó ?Åè�åÏaj·hœHr4EìrbJÅî6F‚nì šCþ—¼-RB†±ï›£ô` +þs“C·ã�åÃk¾K®ê )+¼5~aÛO*ÐÙ»“|šêèÚÖŒål“B€;�êqÒ<›|‹øþ¾] ÄXŽu×®±ÌEzž:`þûÁѹ‰‘äÞO[>PlŒ)å|ÍgˆµfM)À�¯´èÌU,5‘;�Ið]"î1ž«.^Ò˜³8‚Á¹dÖPˆ …Î,H+×:™×!'r1*žùH§¾(C0Æ(±–Ë­�ˆI›ëã4ÂDl’§ž`T;mS×9ö××Òª_[ƒc屪•%ŽÏ:ýt½€¢“H0™R9 �‹Ì—jCŠ>¯>�Åe`Fß¹ùëð£Ê oËñô’xê/•!Öe ا*ÖÑ ù<£Kùdè €Ü™²š„ý¢HŒ²î,¢ò‹…‘ :¨¨ Oz yÛoäü%!ZæØ„IÇn@gVïi^ðEß±:£|ù�ÀG!w6–þS`¶ò<ßÏ`ï¿�¥šÎ°çÔDg—•]7:ù‚)÷’”CE?Œ‘’Fxúô’Gƒ.ÁGÔ&·‚¥/êvº²òÍ)R7‚«ƒƒÛ[ÈÎj�. ;›Þ×�¾¶TJA]@dÞø¦Q1‚ñ±¼©ßˆò=š Zg<Ñ5Êéî”TÛö-�×4dãÀß,»(‘ÚWÁ@l�Kýx É‘mסÚÄòÎl‚1I9€ àxhboŠwƒ †¼ ÜFíÞ�RnüM–T ĘÖb[í–4©ÝF�HïÑÕ{5‰ ¬2SíŒÀÑE6œðŠun‘H®º#¸ÿýF‘V|©¢EcZQÃ/"i³AÑkŽÐ½A ßð…80¹KÍpÜÉD$òvA{ˆáP”‘¥…(úÚ; ¶síÀ%çe•L6²æÄœ¨å¹Äøs¯×®´ê c‰8›Ÿ¹­û÷'0XIh¶UW¨Þ_…€=X>{^VT%‹.$Ww SÇyl†Ó QÁ9íTb\£©9Ùt‹;iûÔ~£íüoE‘�JMê=Ó\I7y3+!CvT½¹! È�Nõ猀ÅÊ[³6ĈPO*[4ߊõvRœ-²­·ØjsËù’x\Z¸\^Ú}úè÷_áÎV¢×‡ÑǪ^v{­ù•û¼/¹B|– C±Í»È4¬¿‘ Ÿy‹ V!›KádÄžS“üM\U9UÐdþšT»c¯vÉ_ BD;>ÿtP§5 ¹ü�1ðÑPÈb;Å6g ¯ÑF�²ÅpÉj[Sб¼äèb]÷=Ax7¨¨†Ý ê/ØÉ#YòÈ5±AŒÎ‰†•3-Ö$¡+¸?ß\Êž�ÄÿØ©EæIÞû@·ò WÅC,CË«Y:&³}QWŠt÷’*j�´iAV?–ã‚°',G8lÕäEÎÈ|¹hë̉'}Ä$J~š–¹Žû½˜7‚ͦ¼’‘-#¦lœ]HòÉç…Ÿï Xd®úè7U.i–JOÉ.vT+�Ë%)Ÿˆ½t:ÞEh~ÀTŽÅcuLó _T¥=K>�g ÚXt”>šP¾¨45íhë!¤`’�Ê.-ô13¨ôZ1Š­ü ¬ï솈G¹çwW8u•‡5½.ûÓÞ”÷6¬µÛEˆ·69ë„jÌ65ÄÂ÷]¢ œ@5‘µè¦,e?Ùƒ|i*ÈäL.=ØçávìœÖ˜ÖTC/˜²2� SvÔ|rñYu>†7Bfw@ðMò'™Ç »DêOÃT‘µL,aS5—Viƒ6�6Ç¡,ŸóÏ}ó¡öb3×?’»ÃkûtÚI“ôNñ|\ÈÉùGFsÀ&â»Ø‰y_¼�— ß•wÑÏ¡q�£~*J.4ð¬Õ›è4zB£Bù¸´S‹üvJ(½‡I#Z^tÚò[î$×=2öíÑ™ä#ñrg"æ}i&9G¾‰;W¦ŽÜ1ЀOÙýààÔ­Æ5âËwÆ€+>ò�‹_Xñ Œ*•®fÀ@åèŒH�±ì?¨VL9œ´€½Âž³C2‰%²:Œ&!lóO™×†;ÁZÒGÜcøs¤�Œ™!¡§ Ë@ ;×Eÿ~}¾îjô]n‹û¾B«"�ü›­öA‰ 3º–”ûüVzíi@wwb�@_“ú¶¨Ÿt½n�[�áÜ]u,äT‚íƒ-^L2Fc•–á†Û±4?à'íœÛ4ÐÝv5b,û KäêûÄŽ^f ™ìeãs¬¹ª@˜ýø5ä„»¿Cè*ü®$ÿ`áû懢R„ #?�>+*pÛ¯™» p©Ü¹Ö$Y±¶¹ŸK½ö6Ê1“>ÑPäPÜ¥jàú¤ ¸H…¡¾›3€«Ðަý…XX*­4¯;¾1£Íóß]]À”úVò¦çrî‘/Š›®ªX;šÂáhÞÌÒÖÓÖŽìl×=?]Æ´£¤mË´'Ò©Ò^Èì}þT�ÆIÿxvü >è=‡û°+Ùlõ_˜x4”DÖ?Ò¡ }U\Û(IîÚö_¨ov~ÍT 7‚ªa}.Ži€~N w2ý”Ú– ŽtûN.ÃH:!�ÙÍÃ_ƹñêJ1§SÛÑË-ÙО§OéÛƒ9em͸ӰËãe¹w8CÂ‘ß üà©O4 *„t<Ÿ—‰hK‚PoIÄ@Ž;©¼ï–p]ie�Ašxÿ¥ DÖk$Frê¿ßÒïÊ|1axßM‘ð=ïº.ÝH]y‰‚‚Ã<Ê2Ì´&ÅÞ“3�ˆ“×váŽÕ1JÜ€�BÖ,íËôz¨,¤yw#±ÒùiØ ÝCvC4~ßÎÑç=T‘¹ƒ ª;êuøF¡¾äµsU!w‹�mÞøŒžnFµ¥È@A]çã¬К–_E/Ñ¢fNÙmÉ` 0…cmÃÂåS¸b/3Ò³:a xbD0°ŠòÁocR�H¡¯H~pOÿÚñðÒ+Öøy!²Ìû>­uM'+¯æ"ömw:YMuxÇlr‹#ÔÑÌæ>‹-|(6¶ïÂCL|›ÃóÀ»ßçP¾t�¸�Tì»jhÀ�xºñ |‹j§øÎ/‹ÕŽ¢�MÔÏí~µßXX¬Ô«v8ב ¬ÌíÖëhOº§é{�nÅß3à6[6—ÜÿekYäóˆ­ÙD‹éM¾«i½Q\F“%е¬ ¾ug¸Õý‰ÔýhR�:û¯ÆcJfç´ Ó`�‚¯ã‘º�æ¢� W}Ñ�ñ+²LMa„÷n׌ß°ƒÜ^ç'ª˜Yx¡�ÏÈ�ì(Ö˜A�u}›¥oÊ[©Q3¼ªÁÐp)3à(m^¤™”€ºO/<“�&²Ðš—Ÿ^QVV�ßÎÀ`Tù—êŸg3¿ÀTh¢ˆ>@ÁÓøø¾°æÄÔ/¦¦´¾Âr¡šêŸ%4sV*¦»Úª'^5Ž\jæ­Ú3nŒ–çv¡ ruü(Vª±_Y³ÚžEÊ>Z ô2õ¿�:u¡’·_ä”áúOWÇH¯ê^F#¯Çö¤ÅÂ�ß}Q6’¡C»ï=>Ï£u�"ÙƒQMNäT%–„Ñ5Ÿ¥aL³¡F¨,l×ãºúâCQ«Ý4„—çöÝÙäX<ÍD;?5‹šOÎS‡7Á÷ÁWKÍÜ8ö?OÅ ;uu{#…•£B†yx ɑúõøÖG: pªA9ƒ¼Õ'ÁP«ä.õç«÷ú)Äî'0…Nò9ö)Z ~Q3Èú’Us3×ÁéXê)„Y7�}¤jeŒšÖÏ1ÈŸ{C« ¼¦%jèÆ~xiÙzĶ¥*nìa¦ÞQ0þ o�m†[ëv±v]'f²ö©tîýû¿·býʼL61æzª]ӇР½Ø’ÆÕ¿Îò¢/: f-´ßy­ÏÇ ¹ì؃¥ïä¿ÀâéšÈæZçyÔÓï¯\ìò»BgÌó:uZôé31_S'ÕxËo¿Ä•ÔqæyC“CÀÃq;4ru}ÀˆzÝ_6ã­2tñÄÞ;Œw�ùÛÚS=åK™]Ü­Í'/gˆ—ä§'BñGÈ¥¿pt¼´3:·s±Ð@uLI�ÏQ’ÕxÄ_Ø}á%9!â:‡!ƒðù¡Z;/è?¸�ém«2RYâBÚ¯�ëWˆžÐ²´° 36c �– ul…GeV«Y 3^ˆÏzu¶É§v¡6Q~û‡iz§Û6|£D1¨P³¹ –ž•Âì ‚i¯ †ò|„ür¼Â)ª’Å•1B¿^Ä6õPnŒ÷¸}_sçvÌ/ܑ侮!Ü£ÍU/:F:7øÒê܉VÒ/W*$WÀ/ŠUòí·nð_ùx�é·³ëËë$¾ƒò…ž�y²Ç ÂÖóåá„d,.UKÝí"@à˜ù3³G´Z±B÷ªÿÌ#gT\™h+›« ´Õ{¤ï“ݮե'‡ÏÖz©®WÄî>¾?YW*ºÎ¾>(z1O»ôëe?o–gHbòD+X­ë;êïÄ—)ÕSãkn7ñ½$Ït9_î®EŒÍ¦ùªo/tŽÎ¯‘¾A�îöl'X@Fù¸ÅŸm3T�nبiÈ·@ððÊt§¾“1!ªGv³ûš†*+­eL*é• Jš÷½/˜ß¼ðp¶{D¦°¨ì ó·d£²ð X—:VÕÌ,G}3FQxè&Ú£Â_˜�#s÷U]/Î}×iU ‡º™ùÀάŠ[˜‡áë ¦DÈ«Ldø÷”¤¤ŒÛì °Úèn‹¸xÉßsëÆ•WŽj ¹k:’ A�ÇÎÆwn0xùî$ÝÕ%§QGöŒ ˆÞ'Þ¾K5‘â‚Ñ�o8ÛO|e5Z•`JÍ|?“!ó™´‹b�–c™R~…»¹4aײzçõùg0›*5vw& Íè�®E‹’J€õJüŠ †刹`"Zì­<³é«Ù§\¶Û³PegŒù¡ebÜ ƒUáë‘ÿµzëÄ» ¶kèž °.�±;_|)¦ë‹°dù oió‹ƒÒerÊ»P×%äQÛDÑs²ãoá÷(æ_Üé*�ªe'¤¡ÖâÁ´‡Ù5RýSwÜÙ=­ÂqˉŠ˜ /¬yAt{p{îç†!¼‰ÓFO_<½)Åí•A.·?ÈÛu“¡ÁˆÜ÷~d²¦S�<›<)Ý;Ò#£úþ•<çØÒúVƒr Ë�Ek+â&;»zYš¨–Åå²6œ�4Ð;lj¹yÆ<¡‘a5ÃÏ[~n(o³td…áàðÔ‡aæìÞ'øÇ`ŽTÿÚ>þMQƒ¿èU°©˜Ìts…Ý~ñðžÝ3zgüY‚}žÌÝiÊÚrΘ/ŒŒº…‹�”ãq²ªý—†'¬ ô¼œ¬éÁšté\Ó[Þÿœö;UW‰ôMN–ŸZyǭݨ-ŒH\†øÑÅžV—a!¥GIz’ÚÃP¤âXQö£gõ§ZKàM7~Úª�96å'é,º}FÀ>CzoÑ`­N�̓xhIÙ‚À¼Ë knÔìE Þ ™öÝ?¸ ;ä@óû¬g$¥úˆZ4|£G�r<ñ‰+N+f¦È˜¸g)O³–†óíUÄh˜ÁRæ·V•¢¬™eærB;ú½uq´·Jµ½‰ÝÌ0òk Ï””Z�Ðí/C zY$üÎÛßgœ]Œ’gtµÙÙù¹ögºgáh‰¥^Œ»%,ûãl|P~•@Kòh›ó6o—ãîÇͨŠÕZ˥؀›À{J&Ã(·AЈ"Î , <¢,Š  &S@Ê•úFŠš2=fÝšˆ×ÛÝ.ë6ÒP÷5™i–9¤îC;ϲÇÞIx99<44?X(›ÙÄÛ#îM¤¯B9ô€I…ìH÷5¯Ð�m¾¹œ(ë4» ¤™›¬l®á:4¸n{}†±n(TXmØ9”h乆‰!y”�ý-°éŠï–Õåñ½ÆÖ›‹H±ŸM‚)õj4˜(ê$´tb7¬ˆ|Í«Oãö=t g_sGje<#ÔŽìÂôêUÚ�Èñ›Æ¬_|Âî|º �G‘±Ì@ °�Eç$ ¥šz£"[£õ(**-ºî³1Vn„Á…›T&<×èF£Ó·.r¨¾ßènN;ì1�w.> Õúf QFM¬‰‰'9GÉKgT)VÕrêTzTy ¡åÖÜâkÇ]3—eà22ÁŠ–²)~Л‡«¢A8ÌJ÷¿µ,õz˜ìž‘2zÅ9#l�Ž«ž¹‚Œž;î%a;’4?7aÕ?„«$ÏVíE›‹[;Äc5{…,·hŽV¦LùôîŸÎVDÎgñl®u£Öø#ºXRW26P½†BØ<%Ì–åŽU�Q–ÉRgPÔW)`1ž»ø]�çôõÞÀ°ÐKsoíÅk'o\tgŒ{÷KÓ94YòØÃÄ_»°A2è î1)/ßByAÁH¬­ 4ûN½‡]° ¾Iu€¶>6EÁÏrõo�ôàü€µž|兩t;­çÕ×Ý1¬}Ü !7cÿ{ÃÎj?Oážà‡·O#èfÓó Å9§vØîçáGÊ“ …–d©ô&‹èæ‹ÆžeÀd†'´Í`2 µ•Á쭎ɲҔþ¸ë`ÐJ‹-ê¦È:]ýn…÷¤È€½�`IèP0:�@#X1¡ÆÃ-ò¹Ú­§Ã"ùú…Ví„»½†Âð}É_¨û�ߺ%R§áÛÏ4œ‹i‚ÆFZÙü¹ßZغ—ZˆqÜÃר®b‘,ÍÃÍê±"}‰ëÿØÓ¦€íR´„TKMqÁ?±�ʬÂéÉ—Hä“E¢Ó› ú8”‹¸È/0ýºáD ž½%º{ÓrMð˜ÏJ—¿=»‰¡X�0F‘Ð^òYºo‘ŠD(÷…1ľùè¼"Mã}Ø„s‡=ŽñË#í:õ/1 Ù_Ãõxt¬xy�, päš1æN�x-¸¡,ð ŠÚü›OùWñl¦¬¦õßúûbÈ"PróÛZ�#6‰ßú¦þmùú¢l;ÍU©„µÊô_$&Õxœ¦LÂsý�]�ù0HB?ÚCJHÄe¦ ŸQ¹½_F´µ>`4@í† Ð`?JÎ8Ø@Ýl!yæóYõu�´—©ôÎ3Òaâ€ÏO…‘Zð\X‡"m$åõ¬uo5‚|ÄÓƒØYÔ“e [ëÐ ÁªÁãì¤^Î?¬d¡z—æ&µÄ€|Óÿ6VÍ–åSõŒœv~¡®ü®$ÒT§ÇEF�ŒýJaˆV¡°üÏg³�ÞFÿŒÝKùyúR…½•Þ©Ã:åðºÁRíïU&}sŠ'Xp²€�~z‰›*ã[ 9ý[3YW€51¦j‹âu$âGNÉúæ̲BE‘ÒGçÃcD¡Þg¡lÙ$¼øM3½„>B…üâ!(`‘=ò´Õ?¼¶žö›ÊGõÈj–¨'–gx3C:? —l�lºde:m®ï× ÀRÐ1¹Ð}Z}³âRîa Tì“.@n¦ ]E>mcJk�gà8�køÃü±Ø¥\W"JAc=¼=F%¶ï…{dP�6{5Û�õíÌ„iîPù+½øoÁ{·ZÐlð×HûLSšãø avåÏ>“4ç-{iÛ?Ê’GÏ-Uì¸0.–i­59¦Uñ(ò²ÉsœCšMG�Ã{%,YWYÉ1_:&ïØ§5’ìP®˜ гÆàÕªÃ0[åñg;�«¦`vÀþ[ÖŸõ LK«ãÕgEl¾ž|�J%yZgè©ëO‚ãS°#G_cP0gŠ­ôI�ÖöØu…–ÏÃcêH�hsmµ°“ ƒìÁ,n(¨ ¹ßã’õo œ”ÑW}0™€Ù%^‚9ö¶)i?Æ'\·$™ ¨4^^nüåÈ#ÖÏœÙjÊ/qÝp~0W?)Ù’b‰¸[óö©T'b++ˆæJë«iÍ”%Â8aŽÆQ‚èzب®¶PìÙ]&¨êãáóÎ}Ž)#VonèçŒàhjߤ¯‹¬E_ZY0¦Q‹ ÆZWLæÜ"6ŒL¦zb�N8Ä}/iÒ�%ŒftTáÙÕÌ÷äÀ7(Îæ(e‡ÂLõ>軪ϋgšÄï¬5h=;rýaµu@Ξt%²À-\“Ƽ/ŽŸófv¸Œ ~À´Y·¼1ýa^í–߬êU<¹jÈŠE¶jÓå:Ùj}Ç�jk:„�3ªVP*à† éMágt= >îG§Ä�²ÌXN£Ó-eÛòk•ÈÅ�áqßB ¦-wˆ,Tâç4óx1~ÁÓ(žãk( �fÌ/òÅ̳;Ü,Òþ8xn‰à#* þ…ÏòßæØYwËo¯=Uxlƒ`“"J…Yõp…vå=dÙ<+}@þ4Úñ Ÿ6�Œèýç6¿Ñ]]ö“+´ÕÏû=ŸïU±÷‚®_Hv'{ú¾›eþz·ÂÞÙ™ã¾ÄH:‹™ iðUPñÔŽõü´îmaÚù–@óBJ³×öe~P³èŒQN'¢)?Ž µ£¥¼ÕÓ\ÜB­ïnf׿ރ©öɉ€¨ìŠ('_ʫπÉõÅß x$]�6~)Œˆ% Ñ òð±ŒF4Œ6Yâÿà&è¶A¾bã{Û«Ïh†ûÌåv…¹¿ %>¥Äøi%™@žÛ²‡ÐC_Uu2ïO+ß\TÑ’ ™EZGá�¯j¯©Q? ÁžÅbñ›ûÄ*û’²Ž#!ÒÀ˜ÃXôrVc‚ð6¹£D]aÂyÆÖž|Ah�--"×t½ä»…œü.;n)î1¶ï'ö—ÂÊ#­ÿ,0b®kúÚß ÚZS1�ëG"?,΀+šMò€Â¡¾ùB4žà²0!ßN2jÁzp¬õHŽ1Ò´´>I<¢ïür"Hë=D࢔Գëh±òƒƒ*M½ÿD&{LQaĪ’uf9}qøLŠüZn$ßV#ú‹¬vÜ3î÷°o‹ìñ•p€ ‚+ZqE­‰¢jø\*K¢ª8i·¼†hã\[˜„è„å¿Ô©£|G^ Í 䟳„d€N™¸ÀÍ~üHïÿÑ7�õ[ Îà(•Gø“Éf3êå€;['’OM¡;'¨æNòY޹ƓàÞX±ôãbsñ|¤cKÝÆ´ª€·0åãÍPÂY­A=Ù¼¢Qü�‘o;_ä1F$Þù$—x®FŒˆAæàM¶#sÍ*–¾×Ž2=̼+ãâ0ÿd÷Ã-vBó׃WIì©é ÔÝSÀøXò#ö¦R�Ý5Ä�B³Àÿ©àse™KZhjEú6¼8»nó`�ËÈà’z‰‘þ¹Øà¬ U_¾/ñ6»(G±9~Æ�Ž™,€ÆÙ‡mlýÅój’½¿‹æ”z^*…IÁ‚di¹Q•ómîWØbÆ%^¦[Ià“ Ÿ-ø+Iàjƒ¿Ò¢Ãk‚NQg¬Ç¨—Ð;,` ëû^Á„ ¼¿u¥wS:EVºÛöÍcA-˺{‰5e0m„¢å}8û7⻟ìs!ëééƒBü–-Ùb]a1(Y÷EK(Íêƒ�sú³^ã;Dxja'ž•¨ÀƒDžAêAC …'!¥¥ƒ6p“”= óÅ›4þ³– ú Mc?>4&Y•ËÅɃ Ò2ïÐ… S#w¾{àp¯30®"3á¥îE…�‘7väœ\ô‹¡H¤E'÷q,ÎMÎZbNýécœqÄÙiX¦VZý.«Âžèó`Äén†#wg£ãåB-•¢ê�^%HÜÊ| Ž‡Æ£QÕŸV7ü"�tLF±¯‡˜ ,w*G@ö ksð¸õ©š+†Ð{|…ZÀX¯.áÏ~e;7¡�±¶/¸IM Ëf%f_Hê:p9ž<áš÷Röƒâ¤dl|Ei3Åêa®ßïdpõhby±ßTqcùnáàœAk±’+…_?a&§>:lײÀÊá[÷ ÓgÓ§ÙšBöšJݱ,°0­§ÅL²Žm°a±SE#øÁhœÅ‡�0ãGlWIp†íöÓÃ…D‰\‰Ö€›ù±ë/n<#lµ|üþjjS¢b+e*1?PL\»ó ›’Åðßyºœ}øž‘R[è4»7V¹ã%“Åà²3´MBj¹IzîAQÀÖ\ùÑÇ.츲ÿG>ÛÐ~N‰=1t2X&èÚi)ZMVžÓã™<ÌP俨d5±SÇsôeyM3êëÌ}±¿6޾”?´ð²q¡>xh¬2KeàBÇ&1zPp`Ç ‡1óâj{e‚@Lt b yñ€ H¯ãðY±Éö÷@'„ŠŽ ,ÎUÒÍÉ´‹C±½gËÐ{ îÙó8Oèšz:¡VN9¡4�Ý<�ã;—Š "�øå¤ç¸>:$Æ»±,'Æ@Ÿ?‹„M?ðý! `1m§}w€9ÙÎÆ¶Ï� ¤KÙ$¶T=’ï&ëø—æ "2m‡R}â"¶ç�{­Ìçà|©Ð8J©ecp�窈âHê\ óIJ%¯_ÏJXµX€Èæ­£è2ov¼+ƒ`S…ˆ ZXj¿íÕná}¢k[`e�Fà’OK´¼j?½—~ëí÷ø¦±-öt¡/)ÒûÈï™Ó›Z7µ-ª£F©L¨.|˜žž$}Ê™”¾Òˆ ÜÆH}xõ#¿ÃšëžšU Ëûº0À™Mðsóû¥ÔÅ’-˜úx9Z�Œù¯ÿ`�Ÿ³‡NËxà�¿ý!ÉxÔ%jm8‚¤v¦ý�¯SĬk€oÔŒFPPQõbBäTv©Í 6E0H¸+U?€îYažÍŽjŒ„ ÿÙ°ÆLtg'@æ¾ù˜ªQ$y£i§Ý´ãéˆÓ’‡‹À´=²0 í&†XÈi�¿¢°—ì)zDÈ\BduÚò³eÛ[Þ�øž¬ 8sNwõ:œÕ%H,±;×r³Ðû‚|�ù¾¥4IÑ›ÅLNëah„2òO‘µØŒ�“^3¡¿dÅÇG¢¬_Ô[JË3äA}J˜ÛPäÛ †9ÚêaU@g¸N,ø9�bÞO®q6B0%åÊN$óyƒׂü"Ýñ—Ð̰oå\t½Œm¢n-á–/r¼¦Õ‘ýÞA¿Fcy÷Ï•mì{Ï{Má3ÜÒ1À ÜÜ70¦çíVj*Zú]¨Þ$JL�ž217]8â€×ä«ÍÝถˆ#m<°q›Ž¸¦T öúš>ÜhŠv•¹+ÝÐ-‚‡¹áà[ !m´I÷£5ÜÈL.FX÷P(ÎøõïG¾�:»ÂpÖ`¶]p 9˜ ЇÝÚÏ8£ˆœ \¾0óa³Nã¯ÌY�–¿øm�±11~™`hf&q—Óƒt§äÀA>î 2šªÙ¸*?oãxŠýÇëÁžå!)ogóz@Þäîg-6˜f�4üG�ð’¨+3M#3AÆaÓÔb4nÖ–êÚR†ºº{N_xø ÝÖQ·]í̹aÑ,Ä¢/fFÅ-å4þòb¤H÷Å Œž¨)ÊáQ‘6$ûÙ<6sQÂîB2Ї’éä+ÍÀ…%†܃E"}ŸÔÇUº::ò^v·œx»&Šäl¦|ĵb�^-d=Êå1ÂéN®º"�rî¿‘@ëx„ïXOX©˜é·^;MFÐYž/³ëT¨‚@vá~r½“Y:"Å R2®sª"Œ¶µ¹çl¸\Íx=Џhe Û�EªÕè]ý'mŸ3ñé»â…=Œ ,”¢%€5“�%©‡Þ[*§’à6¢þµ…ìÝ`pðFÝܤJ€–G¯Ïm1WìùËy³ÇÑ»rØ~Øbi“[)<¥+\ÍŒ÷Oȱû-èaT_ÕÊ3ST¤)R­rx¤Êm@+)IgÄ€—Y¹×ÖÕIб¿G´»˜�ßT|˜dߊŽ*'ɪqBéÝAç¬,ïðõ‘ãɬžø‡%?£ð‚gú׌ÒHe3ÝPղŌ‘{™¡L à ûŒ—Ê®)ì±yK9§¯À×Pö2M³­ýpΩáPxMù`@r–vø‹j99aÄ7#®çá%¬xÑ­×)[ð¯`?*—÷x€q÷í[ëÂ딟KiÒP|TF¯ûŠ«mÏ.9¥¥Ä²g$‹£ D¦Êu¾/ LÞjÃc CVc{ƒ"ÂqÀp³±½eÏq¹ÕŸ=ë�áét_Ÿ¹Øt-nAXƒi3•(ãf:ïUÏ”AëXÇÒ™Rè™ßEÚÅ<ïùeQë0`cÒ63!‰tŸ.ÐsS›Ä$¡Àâõ¢>†�•¨_Ü…& IÃ�º’Ã2Û¾7åÀýK>àÎp0ô�Oµiu”·ReF©Iq(ÄØ$rµ!Aí5�áþ‹kÓ\¢D»‹¯šsrÉ0F8:Xž®^¿ÀSœâ„ú…T¦ÞÒd>¿:3ì÷n„½7nx ãÍ·“¥©üÇ'Ï9+T °V[ÊØS²+~˜EwÈ6 à;6…1l/h [éï᩺�?y:¢èiÎåá{}Ë<’J­†¹ìÀjŤø 7Ö2P· –*<é%±–�Òõ:¸¥V¦Vù¯hW§—,¼ýÄ×pþÚUVš}æÈ#Dú8@¨Ùµ5B·¡ÞûX/¸è�"yiiº„€–‹Ò§ùa �'‘úÅ–;çþ“ˆÅrù¯zì,˜É|6㯹; �²H ¯Š.a¨#Ñãz{§†�]°^#ÀίÇyÔô^�óúoÙ°©#o€9žVJ–âLXVû=Õ4�í«2;š6sH§ ÅYÚØu%/V“¨í* g0®Ë®… VölE®˜2ô’˜i2&Ü’×2Ë•žU¸Î-/²6°Mª&Z˜°4}F€†Ç¦?…h{Èl&;çÁÔÖÚìVYªÖ ›×Å‹Ó|n'ªÌŒ�Úªò:Mo| …=NÁƒÉRd¸\+Ô€Ô´€ÝŸD¢ÝE¾ùØË=gO½RX÷pΦÒè¹N8Çoï.ñ ï•Rï%2<íò!!æÍyÄ17‡¤ ßñêagðñO;Üê@¡%u‘Y<§xš‘òZÕ.>þ`<‚ÖwÕµwe4軦¶GËŒoj²6—4ÍóÜiK Áåâj8Žê Wuòq“!*¾Z«e²û-,zØ�‹Â®FEc8Oñ¾Û ûMÊÄ3þRZ@]Jj‡G5•Uê¡ gÞ€c÷ /�ýé�`/Ej­'£ÂÅ=�æh^˜ij> 4ûy讼ßÛ@W¶Ï²ÉÉÇ}«ÓýØÓü¢ËËÿ°‘ÛŠ6RwU÷«ßw?#¥¡C.!“b+³ÇF Hˆ²Î•¸&ëcØÔÖÂÑVbÕÔ%I³û{½ú«à¬zøí‘\q¼†VÇ,VïžÂ{”8Å¥wHÜ0ìT‹óß({M_ÏúŠÂÕãîå†(×g?–‡xðcMìÀ,ûb$)"õûO&7R�b`gcjþ\vÓ»M" 3¨î€pѤ/)½J¬vÊA=�Bþ‰îsa÷�ýR‚×¼¥ú¡žåÌ_9$²š)‘ˆˆdv6ÎŒ$è¥êl»‡Ö¶7šVNöo<%Ú@”!ð†•\ú5‡ù.{Íqè~àR>˜]"QvEãÍq`�®ˆ¤c?GDšgC5MíhîÛÿiÌý‹g¿ ã]{o3ö)÷H–~R=†v,ÒœíVÈprȪš¦«EMÓ=K{gÚÐ`UÈ"bw‚E”öRÇñ8çtêÚW“Çê:eªh÷Bò¼QÔÏMå°ðÅÙñPíÿ«ên*ô9¥°Œ|\"ãòÞÎA‹ÖY´×Ó½ þ⦿†Gè;L|¼¨8ìŤJ¢O+Xâo0˜óGÓU¸5›p}ÆÉËò³Ài©àŸpõÛ%$´uÓñLú÷ìÌ;·yaä_¿¥]èÀ΢ü¯s34J£§œÄ(6ù‘Çà ‘¹÷l£^ZÝßwaúæÍ0_hš�VC \ÙŒÏ᳑n¹ÌÀ™(R`�Ai<è�ðZ‘ÛÍÖhk”³z×"å1Àϲç5[à&Ûž‡<+¤E!kÊñ¥ž4>º >¶Jµ CØÉÙ2ó©·,6Iö¢ÈÙöÞ‰ñá0L~íµz ƒ(ã¡Oû$üZç«�˜oR<—­T4ÁC‘ áút+­-à±C¤ªoˆÙÁêp„`„œ9$ÿr¦äh²Ä¬Ø.S¤Ô™–Ò²éã~ ÛÊÅŠ_1~0¿¶jÙ»»–PD¨n×KA|Èn“¢Z] Ê^ë+³d�H x‘2³Óº·y5é³ g)5�“댫*û®”²ö»uó#A‰AZ-³¬Û¶ÓÈö=ÝÉhwZŒÀoéÆš¢�8Ö³Ú�M6SüØ�AÀ¬S¡þ ˆ¾Gö›„€íJsGÄ·ŠÜÅ¿çÔÄL èXb¥e%FåOì 3•19¦ áñr»#N+ÛåÅ ,(?xø%í/?Æ»ª®ø ­ð9¶^ï}·˜ªë;ÏN.TÆ3•l8“ Be2Ý"ÀƤÿæÍpÓûNì¬ã鶪}ý9ð¤7Û~AVU…³=‘Ïð¾=!f”øù’v5;x||²_ \C�V0Q–ÀŠ1Oò5å[ ‚'4qgõ¯N6¿¿[¡øù•U1B=Ë ´Ó¾ðB¿�ÈŽ „SbS�W5È(ÄÄÄ»– Øàã9&ËÀöYZ #8µeb®Ü6Æ ã�Õ=Jâr"ÂB‹óuê—¤<óÂÔ¶Òü0¦ËÃJkº¯¼,�ò¸†ï},FKÖß*"ÉÉ�\ËY2B8½¡©ox_]óS½Ôé•”ÞU»ï„ ¨Kq ù#}†‹®Ež‘¶eMGj¼ÖÞÌIãã‰-±íWz°h\+˜ú‚¾©:’Ûh¸8 Ø.˜ýŸ‘vÑŽ†rÁ²ÿjðŒÏ%$y<6/õ´š\–V–eúEzWO{£ØÕµÑ4¯�lo#Ì‘q‹E�N’<1ÿßÂéìyj*wœ8hÑ4 —u+�âd™Ãeö&~øµÛïcʇú�aÊ()ý‘q|ÍâP9SØ.~áàŠ? ±î�͆‰vqÞa*ËÕe�\ð!þ¨Ÿ}aU�Ú� íÃýÓ�älÔd€R/° Lè„ ŒÁ׋ÊV t?¢Ò*‚U¿ÚZL üë\éô+“SñœŽßïnNÙd O7 öøªr©"äÚg''êœx+EÖ_JapOîØË4(Š‹xð¹ ö¢¸DF¥Y³ð™]Îõ U®Z³ Œ«áQ±Á¨ÀhŒªnÌ©S�ªŒú–£9¨Ô$-R‹#d^@=Ÿ¿Ú]g¹-Zf3²z›Î�ÙÆ°:T~5LÕT­€÷ò:E²Ì%ÁÊ‘™µs°žðƒ@çÔV·ÿú.gÙec¡#1|ˆž /rÿúÇ�Ow0Læ?7¯fã¨ãg†ÚY쉖²x«¾£p¢ µŽ‘J¬]¢Û5.»¾Û/Éž;2ô¨!ŸÌ™Xzå–�¤Ù*Œ�OûBžÓ 0´�zKÔ Ÿ8µÌ9RŽ�SÙØ0ó¦Ý�Jùñ %L”K§a3™ŠžŒ`s•0ÛZh‚ôÖjNÜס¦fߎú=;$§›HíËøPæÒK¸ÿàf ¤TçÄreåxa$Úð:¸þi{Ðì¶Ê÷6И|€¥ñ;¨i¦ zü£lßdø(G –ÐvVZ`{ÉÚ^¸¢©wxŠm/2ÎÙ7„] õüœ¡,[U´ùxd*^)}%ò55’¶N".ôœè±1¥kè~1G?¶bªF±»bòKÄ@-Œ8×±ÿFL°“Ê�ý[]½¾êÝ’D©y À–³J$f�¹â ü‘N‚pZ—æ×YHñZÐrs¯Í¸ùñÔ�\¯j|ñó @;¨èÉ‘ñZH•:£U‹ˆÖ219;^å04‹Í�qê^ûâÙ#x\œ ­(2Á$Í8ÄË9™N§Í·•˜`n%Êg¬Ç2ÃtF ²+ïXÒa üá_ÜäYS„—è=êÊàã7¥rà,›¨è…ÉÒ³ú ó‚§èÈ�ƒ1Èv*t€àŠ׬br¨ÇÊj‚^]Îð£7ä!ñÉb‡Úô>ƈ|ID2ZÝÏî*+is`­ ¿‰ŒâÝpªID‹ ³ÊJ³šîl deYh�\(Û¨Bì§úÖN‘¡‡…ΡZïXååôö4î·¯@+!³ÇΫ,Ê0&³D¯1OS7uo¹–3œcÿ3W; �v?ÉÉ+s‰iS¾ÉßÕ7ÑŠ�4Ø^ÑÛ^Úqo럙-ü]§ùç*ø+ÅÖN“oÒü×íº[]�y,8u“t>±<V³¢zn¿ZS<1ê��®~àGñQÃHC÷p’ˆ�YÃj¸»û¯ªˆÈ}Jïmö$ú–ï;V Â�zK ç9†3å’”¦G¨½íTðñ{igH_62Ô;�e¤#l!&/ÖØÄk£í${àÇ¡e¦Ij ™»¼@ÞÇÆl«ºÒ~ÌÊTN™H]Y¦ÇU¾,G†é >Ü]…GL£ÝçåbMœ�¾o(@_㙀cù¹VQã©B.0N¬÷nBy…g0Ø—É„WO€äš}œ7bG$Ÿô¼ç!”çG³Ê#“mïöžµÿµn.¸øêÄ¿õá" à‡ø“WÅîÃlcsm8sÎÀ ÷ÍVãIˆ˜NXˆ¯ \È™õŸzQ þ�˜]·¼ÈÚO¸$Ò?œù„$QbàŒ {´‘AšV­ÃQDý„ªÞð¤ó¸¿LôÈèù¾Ïˆ ð¢dA žïøØqÔ™8ÙiÇ[ël—¦*€Ë‰ÑþËü°7áo”RA[vrÓõý:‘TNÊÖ?¥7nüíváAÖšÒ×êää˜ޱáA‰É*$Ê¢•d.× ™W’AÌW[u-–â<´Ñ?¬$fbX”hÈ¿OÞp¨CØŽ¥hÈ÷üEy;ÄË6_]§Îœ+÷%±w³@BE«gêrÕ¯�<ÊEßýŒMoIÚízƒ{É®Gzz¢3à&¨Pæö(Q‡ XƵÈH5xd~gò5¾*ôãMÀã3½Àº:¤þíǞ̫„8êbósÖÚ¡½Ù“•’*¤³hžúEí¦ ýسõÖEЗ¼í©ô-ükŽiçòÌ”’°`é{é’7ìÛLèÕóžG»ŸPÛy€Î¦†'öu£� ²á«x¤�¬ÀîŒ5ó08ìy�­ô¼ …Ô¯.YpMƒo�c+¯c¡Õ÷ØÚÔǬ“tK<`]EHir'öüøúDHB8ƒš":+Ïôó4xRNkœ�ÆRZ¸î?ˆg–qê5Õ7bÛ€KÎÏɃ�çlp˜Ê1g×·NÝóÙ³á!*€:ä�?Ÿ=²p% )mX$oO‰é�‡0ÍXÈÀž‹üÈ4°È×÷�ì ÌŸZß› )ëÛµtF0‡YW°Ë{nCy/L¡ÀÎ!Ò•x§8lx>Ù�yNä2Æž7mñÎÃý9J›{‘ß…Šk,Zêj Â\ö"ˆÏƒ¢yŠTj4!„Æ:Ú„¬(téô ÒGb/Ÿt6›%‡xUÍ G%«j­ÛÅ¥†Éí®¼ªFî鼯œôY%i ñ Bù(¤gšu^Váwñ„wÖ½œ,®ÔBÀ£ˆ1Æ 'è7º D}Žû&�µ€âÿQÒ>Ò�d Îè[¨‡É„ফ¿Y5GYàí%JJdêe-T¹uÕçŒy�wØa¾Ü¸àIÞuÅOP/¾ÂæÑR®Ï®T0wÛÕüÊtf² lÐ\O× M]8‡¸Pï‚¡#èíQÐ�¢ú2É…ôŸÇÚÓ„rŒë€õ‰ÈIs8â‹´¿éëÌìrD¼›<[êb’ÝÚ*e,ØÑŒ½›:§}1ŽpfÅ­ä1tÙ¢¯¶™´�oT#Û—Z(מ�h;öÈDÆ>uhþV@+ÿþ´—ü'*{¢ðü ¤ÕWuyöšyhê–²un÷*ÆÃªú‚šÀ¬‡¯(òZ Ò÷Ázáð å‘7ç>¦TÅ�8¼ääH×ÔÐ�²j‘Ñ­¶ÈN¤ŸŒ iû@ÍÊe‘°èíþ²¯ŠŽ¡ŠUéÚàÏlÂCû =bp�XØ4K)H#,ºÅ9dù�â_(°B ³»•bDꃟ¼Rr„¾†Û“;+çS9؃Ÿm¡º†é¯ÝcøW÷ ¥Hôá¿ù%À¢‡ŸmüeõrypCð„ÇøD[n“t¥6e:Û «X?((Þ7ª o_;þòë0ÝyLÆÀ]ѵyÅïõAd©x­v^ ÁH‘î•J‰o �vœØ;»PÈc/fÕŽ ÚBôhsΑ²…ú¢8A˜ @wC½½É>ΦŒT|F˜ÌQf&ó (˜†bÍ¿zßFÁ„ÉQ4§):[Á•�¶·°‰“TêÅñ<ì‚õÐtµ±’‡$ôemNÙ³PzHÉkbY;4Ð53”hX`œa´D6A'Ø< 9_ýº©cÀs�…3iËH�7�iGš&H$SHqA/Ü;©‰Â§K#…ͼ‰&°ëŠ'þ Ç]]'ËšLŠ·D.ß�7T¾—“má"´@!+ÑW“Ʊ7°È2‹?Àã\åD«}�_õ»`—–û¿W¦³¿·.) °ŽºN /Åëâ©_­Fx†sYÌœ ~h s|€‹ßFOÖC”,ŽŸÄy5Aì„Úòñ‡L†ÄøÑ²¢öÁ'Ì™ùA©�~›Yû"Ù¼YHÒÅ%ƒÂ^ˆ`ïÚç#óT ¬Øq„«-ñNˆw_ƒbݲ²+÷/ÈŽ%ÓÝ>fWfµµò¶Z=64qÆO‡ŒØü,¹ábñMîAH[Ö3úû¹¤{íY‚çP›Ø»4Zþlf<ƒ° DsôÈUL!c H¨Sל�}á�±8¬äÞO/ÝY[1ZÖ)ªk³!™ÚtÇAòÞ»W‹i[:7€±ÇB?÷‚½Ôfk¨Ö:TÒHîöê@þ_oªv�¯O» µÛÉ9Ç,PYíbf ΞìyÔ"/e´7¼ÕW´“/n»W‰‘¦»�´W„a‡OuY_Œ‡rGÃ]ÓÕ™ˆø@U¾ÛÛÀyy‰¡¼2bد-h«Ç!D$aQ2Ï$åî—ç\“Qûªf¬9•'ÁFÕ+�Çrß� ÇŠÍäŽó±ÔD�§ükán'ÊuŒ¾óŒýäe–µ0]ÄkÞqÇsÌ”Ö ™õš�g¹ÁºpŽv݉„£²ùÖ bø£ŒßÉËØY»OÐdÝ¢Þ–6™:OBz'NíšÙml:¸ ¶¥WÀ ¶Ù‹’öºOÄc/éßUCàYÈ]@�Ôâ€wÌ»áÏÑ À¡Bg’�òÂ¥Åôb“þWQK™a{™“„L±¥{ûY×6ð0(@uÉ0^È�qk!;Z�ÇJãµ¹âi‚qŽ.NÍ ;”M�mœL4j$'m[–×�¡sŽŒÑ7Ýú}°ï�gˆK2�¶m¡ÈÕr‰àUNÐ웵ç8ò’M¶ø;w.ÿ@"¸¸:Ìéf¨ê‡0:ϬQz5‘Ó0ýT§Ê×õ£·sLИOryúºqFËg™>YnJW"�ïðvM8`«ïCW crhÚÿÒNÞ¸Jv³çnQi´âØÂ=Þ­M‰08 ÂÚ·‰û=Dä_í©…¬òÇÖ‹C­ŠEšíz=e4 ˆS¸Aê0IŽ´AÜvšp{8«)¦pw¼*Lw¿�’n^ µbŸ� g Va=Q‡’†Ã`–Ù‰À¨¸ÛÆoùk@ÍKaµù“oŠ)ª¢Ktáèë¿ãQ¢¨v%ì|'| {K×(‡Ñ•˜¤Utþ×A:w^ ÏÒtb@Rî“Cã5¨Y”/Z2ÜïSò ÓüOOÀDÇ khi÷ëyþ'ð¿[ª%ø‘£��ÒyÝ<¼$¡ñ¿sü�¦„5Zx‘}…ÓÉÓõK0kâÿ”[ÉÔØMÙÆÒè¿Â�´ ©”ô _3¿m÷þ|•žìJ³7Vá‘0‚G™Á{²é‘ £P F¨´Ë8¤¡·!Á5¨0NND ÿíò?þ OFV´ fãHU™¸à/J`ÿ'1KSSgãÿo? ÂÚ¡iÃMÞ‚Ž MKeÅ|´ÙíÀž¤Öx_D£Â+©$˜S€ÿ��‹©³ �‰¡‹áïÿw¾™ÿ«†ÞØ5CèP‡IóaHšo�ÿS ’bÊÂÿ?3U_Ö£û›z;¤qÑRIœ�Å&J$JÝ0³W1� ­q‡ÎÉÆ˜'`0O7Q÷˜ü#íð]#G:'q)™ $‡Õº0eº¬ Ï*! èHãKÇo¿Ôé;@&lù]ç&}!R%㊨#" �H V~˜èRù3ôF˜´þ—$˜ë$Ƥq¿ž¿  ›•Ì”zcÄ€Y0äj-ú)ÉÙz{Ð;O£;;I‚^ 5J^¹ãõ¦zN!zH.kfôûFð—ðü‰ÞÖ=ãù—¡›|¯ÊkükÒZÅuDâ­KE §6ƒ±ÒŸfãâ�uÂzéð¼L§ÄÑ).Î?]> „Zrõ®µÛÙØ‡Ò똧¿ŠM‡­UÙk ±^c˜ÍÍ5•ôN®ÿÓûô7o—lã,ÈcI@À%Œ>Äç~/Ù ÖÍ|¹}žÛªßç²£Êi]oÎDËx–;T|u›Ñç�\àUœ Wþ îicåõ£#J­—6’‹¿‹´ù ¹ÎP5ž4áÎ-‚™€ëd ᆂs›8 .½Imè0�ൽÑJET�óNS¨˜J­1Ý¡¸`€'¥íhðVŒEø<âY>Ð#_¤Ð„ DŠðè ¬ˆžÝ²)0°{.Ÿ|Ô|ÌÊܽ8ÉÝ/ļñ¿D2+ãä † in[v±|\Þ´î\Ô19GÛQ©”ùÿ¡º¹ôœ�ê#\«ê¶²){ã�‘êóÚ �áÏw TúY�‰5vÈDÈ®› Íô-  ‹Â€ì±õ\oFúB«|’KÂpN2‚4¸Ùj“¬aÑ5"RÝã,œ•y'”µm× v¸ ëüÁ�\ÛÌ AUØ8Ò»�Žv:~Ê',ÊùaÅã¸Âd´…M¶¨ ‡Ätnu(u�7±á˜Ê�‰�‡»èV½™»5«ï†JD¥ÜrÁv £þœ�Šbqe²%‘Þ�]ŽÍÂÊQµ!Ö�åJ/úÊIçC¨Ž‹N–QW—a)%Y4í%¿ØãßNÙ#íª`òÇ'xÙŠ �néh;„¬w�uC¾M$|`.«Qø2Ü7Ö>û³è­_šËHO…º‰Ô¯éHçz(Gëj©û *Õ±¯Ž€¶5*ªBÿ ;C7Ê÷Bq¬!ÈÕ6äê:Êß·Î.Ö+t�[q[°·ðnÒ¿Î`n ÏY·g^�åßžž"á,G ™ç!æwÚ&‡ÏYcí쌅zPû¯”6œ*9Ig•ØwZÒÐ~ã¿óÛ6G<¼êU0.¡ý±�T#Žü»ÉãpÔœ/ ë÷\ÆTƒ}ZÄd}ïÇÞ+õªÛ\%,Qÿdw Ó?Œà«__ða¾®ÿ_3wÖ©èÔk& &‹[|ªr²0¯®Íj:tc�2^.M�ÏÿAÔè€m�ñ&oy ´ûàúÁÑ?Ø.Û\UïòµgI?ÙÉw®/¾]Ä©×!p1Þ¶­ÀØ“1’i›Û…%ý¯V=¡ˆl/Õo$%´ÿÇVÙh̪9fÎÏ+ôȵž0À~ÂkƒtN„7ÞgæË'E‚ö8° ÓH³›ðŒ{Ã:°x›¯¬íƕ볋½#ÛZÐÿ¼ÑQ‰'B®×r8y6GUê•wòOŽÚ¦\bÜU-¨JYI ÿþA_66òð»‰Æ·“��k5¬?à÷;b‚ù‰ ÎU"t§f~ôO½RÄ«{­ëT™úàe/M�‹5;—ù§¢÷bWVžs̉·è6«²¨îdMÕCç[ѱø.±„çúVB&7 {6‰m·:‚Ûiå©¢ž÷I�mø¨5rÖz*ö�Ü ¿À A@Èñ“šÞ¢_h�üß-÷ƒá[I ê5 p�ƒj9 g˜U¹õ�t§GHÖ¾Îý fDг ŸÑKwY]ÿÃ�„ü OóP,cã•-†R%Þ]®Ïj'`S™›xÐÉ/Å@g�ìÄ(—þÊ^èɨ₣R{…W• ÙGE©ƒ(ZWt®½Y¼qŽ=èåÞc-ãi%z´e’/® {½Yeq¦g@ìð¿2OÓÍ55R‚÷Oàùj‰Ùwê`_í1áFIE{Ó»Ìæµ·¶p0¶xäE½ñ³¸^t!KFJ7ܤ¶B-Ê/ „5†Î3ô;bJ·6 zýÅÓrZ~äcÃxßìAÔfsuÍ@ÍoïÏžkþ|Lh t ·=I¨ræÏÑ{k’ÏË2 cÀNð9R+ù;¶Áˆ¢Æ˜c-ÆI?¶“7³œûÎd­hF»Í—¿¾þ¹'Ë«bíA Fñ5¤›¬ì²RY’ØM¤ÝSµeL÷Yâ�y3G¡˜µ•¤åú¹›fPÚÿdRÍB•$\"Ú±‘Vkém’vB"ÀNXQžÜ–?T…Užót ŒQ~@ôŽ@¥:?ó{î•Ôœ•)à—`°Ï'1ÉëâÛ¾vs4y#ö�´ITâö¤Ó4J†Ô„p*f9½ÀíbËRíÖY5xÆ;gÒ뿟7$=Fø>]Ðûú4›W½´�ê»[†ëã�éÓa¾/’ex¼< šs%ñ%ù—NÚp #ü؈1¸g‘÷¥êÎ’ -ú tÿ¡;öos}†m_=_²¢]|¼-í-õ™¨Å‡g&{@Ùå™}¦ÿ‘iªV?aïf­f Ugi†dtUHPtçéq�´•7omI,¤3�ô·*,zTæî®÷aëžmS4S¬§4™r(„R%>í=Í�ÖiO»®s,¸ü†à íÿ‡ó–+|ìúP•ðÀ¼ïÄ‹‘¿hšu„g†ñƒžJ‹Ç®v/Ž*T¨pŽûöÔÈú¸(,ú÷##°6LÔÝë-¶Ä>9ïÚÀ³­ÒÒ“ƒ¿æe¢T9â«¿êç4ËiLþÝpr«ùUøNW46åè2ùupŽ�å3 =NÅžÓùyþ^̤‹Ìlï¼@•Uå†åuÐöuw‰{SWš™ †òI«ÜÁA"ÿ‰L‡£¡G•å7QÑs¦0“[×QÆæÇ# zÝ?‹œ 0tqß•×ÔÛÁ¤³ºpàuDh]¸‡bíú�DJsˆ¸7 ›Š†é0$ÂöçÙnýo7!7Âàãÿ¡0¬žIrµ–ÒŠ:NPàšBXäËAÇ6EêëÅÈëZ {Ì»®búa˜Ó¬áº9—E¤Óþö§0ö&‡!³]®Á}è”µÙÆMÉ1åø 85$ULa¢ÿ{ G1¹åM6¯ì·Æ#p»ï¦¯1N‚5tƒ‚ F ½(“Aûȧþ]VpHBqÙ¥DµX�Õ ÙDpî”�׎ð˳¿‡¬�MjÔÁnSdµÛXd¼ôèú¹u‡ÊdÁ:ŒÜ<ïÄ#oò&‰>NûsøÁnZ2ÃpÕ‡ͪn¿&´Þç|6%kÆ’ú0²ó¶�ÄU[º£�.Ÿ²ÊmK›À .îUq°~–�)u?Yò4à%*vdîRg7QgMï[*³´ç¬#—KŽá¤3œº>§¾ÂÄ–Kw”ÂÙð&ä]Û|¦‰%`´m‘¦ ‰[3b"¦�Ð/ ïäÕ="‰ëmŽþ"Ú…—›î·—B—nç#5΂uÌû㻋ëÆò|Uþ‹Øú ’ñŠ� ú%µÙÿL­ÃüNó5²6¨¯Þ©šbW½½&šîJ\ ál9÷MÒ(‰›dÊøVqò€ƒvÅc^•žÇ¶¥~„娀PÔqu±„(£Ù˜P jˆ ´Ýà¾8Š®rjò,‚/»•�È|Çxñ6bŠtÂÕwC5¾Ç³.ª&.U ’Ú9 i†K)øñ‚Y ^�·‹÷jÞúær9:þ²³›õ…Š‚ôJÔ�nû´þÅB¬­Œ(J_ŧ'ŠžNHƒvžwoñáØAWp¹gß1EÒÇÄ ºÆø8[ÈÓ]»03†r´k-ðIaÑ úcÇì©;‘íA!ŽC°˜{ÝÜ�ÛTõÞàöõŠ€ÁŽ�ãè²ùIγN—éGÔùì¢Cm$Oö…¾aÙZì¢�þQŒö™È$çóçdºä€$»E¬Õê\Ž„ì®Ý_šÈªüöDœà|íd ¢Dç»±ÕÆd¼Jæ4?„y°^Æ^ž8U´Ú­6NK±õ5!ä– I�bù†N{ÝbýòŸûª[À½uàGmC.‘qï…~]‹s×ÏŒÇrR¼W6ð:àMøuÒq¢bà{¤f«€ qIww®!úz/lªŠäÂU&™Q.àw#w÷ç¢ûã$«s�ª‹#5µ‹Ûöý—œ”eK=>* ñ`õHfðê˹}¸_&ˬG,>žiJ‹(‹ß´«@|ü4Vøë dNLß�@Û¹¹Ô ”EæÞŸì6ÓyÜätv�#nŽÞñž58Y1u]QâÀÞ«•µæåzZhYFj Á‚“Œ'ðÓÿMjJÊÑ!{ô…£¬Ë«T­W@‹Ù¥ 7>µ14¾ÁÁSJúÍXwË—(ö2"Ÿ_ªySsüHiYè9LÇë«û�}ãSy9 Ìüô¥õ¨Õé~.Å_ü:ïÃkó!Æá6h,ÄSÖœÏD7š±îG Ý\9d ¯AŠYÕ–’%"¼jP}V+¢8OxbzÝFFár¢ Öå©Û¼ñþqv儇 �XŠí”Û8 ÀsXÈZ‰»¢?í¡úY�Ü®íÔÞ`ô'Êìµ²«¾.ýÔðd™j0–$|г43¹�;åztdÂLIÔVäÈç*ÍŸ”B£Ôø }éšòP˜Ãâ*€ÓÛ5ø­7e0]»tíEf£°¶ä×EÍcʧ@t@…§ !„ŸKhW-oRàÎ ïâêóê Œû’’KQe"§Ë¾ g+ô';‚c�ËdBzºW½Sð/žÛ9•IÕ^¿š>â4£Túí;•ÝP[(@dÈwè�Z“´äRL–Â!aéÞaÁ¶Un}òû§a/?Y-F£ñ}[b¶¶ fB�ba¿øR.3{ìqL-Rù¬L4MA‰l|§ãë§·„ƒ"ô�§¾–�¢2ã�„� M¬M™–LùÑÀð x> 0 ´¼»¤ã£åàÚôÜñõuÓ*D衜è|Ÿÿ9wì`Ã�(~¡‹…&”®Ž¦§I©—8Ø~üPê pt#Õ˜ÿI°´L$SÙÁñÖ0eP‹WªùÑmÉÖÿ @\Hú›M;].¹Ñ1�m'§1ý’G²ÊùDèÚZBb±{ ºV›¿ S<Å(:gò ‡Zx€ò¬ã…]B4<6™¹«´�U Ò{޳!"kù‘ß•‡Ï�2敪ZŸ�Ðø]�).`LîÖEú¨æ+ƒò¤�Dþ¾©ÐºÍŠ|@  D:c(Húù¬°�¹WEãò ¹©mrœ0¤êj�­@äKórÌ=)àŒ¼%©èóÞö¤?¦žV¸æ ¤°ÕèÕì?x·[�ba¸^Ùl}¶JvöшçÃú·³€õFé;ЬœûAú)p°žAòÄj]iAƒ [N0w–M8¶ ß›»’àù»Ro9AˆãÃį@æ¤I¸ŒˆÈè­ð&V>ƒ!„vJáÁŸgÆçëÁ7·« Žo—ðÅB^÷&iãáŽ[Q#• ’†m¢��êZ�Ä9ƒoæÁLBH{ö›7%&U°‘ ]�U)}¡Ìÿt‰,à9„åùŽØÒÀ.æ íô;|mŠŽ&d(ìã ÷r¦2ànW½ó†¦ÉaûöµUÐ?ȸvt}¾ñƒ eàJ±º1UR7!ëÛ²…êJ™Ë\ÿÀ¼àñgjRó¥'…E>Ÿn™§º"=å88Pb†h•¡Ù0ô(ˆ>“Òl vÔRþÃE�°ôr…á!û-›${B\ŸDu°ÕìTœ`ÿ £­#ô¼—¸/kˆÄBÍ_ÏÊÆõ¾¡JÀú°Ä�HqtäÖ¥ NgMÑ)‹Î”¸Ð“œÊwd|6à2ŠÙ!ð%†ìŠœ^žVEî_½õ¬¬íð…HàÁ°:8­”fFèFÚø¦.\%ÿÚ¿¼Z¾BrÄ…‡I졌Ûõ‰ÕÛÉ…°þQU�ê¸Îë ÛÌx€ånSôdè3‘ó¶†�É嘶û"ó¾od&.8ÍK}.ìÌÆS˜}2$Zê¤ð×g½ø1ÌÇ‹Uø ØÉˆ¯têûÞ`1}VÆô�¬^Ñv ƒ<ÝþÖ+µÛ |¶zÂôÚŸ�p‚KmåÒëj±ÆÕ陞¿û>´ÈƉŸÜG£5N©»‡b ]2‘y�>(´N]UxÔG´ÂÞíŒÄjÀ’ Kú�“Fþ Ûª4ËË‚n¬”,¼¢p~Éÿ2ô…c¨O©H‡ê®Øÿžaóžmåc-ÆÊ‰¨r þM%I ¹†�P}a¶0oÑ`�ƒlô¨S!×l•Ï`÷¬k7h†à£S¾ÑˆÁV›ä–�›{Ýo« Ôó½?x“‰™ Ô/雿õ4V»£=AøVšTo%¢“]ã¶Œ¹%2žS =¦Ý.†–S´sû9‘6=b¶™·¨K[ó¬TvWUd™Ö¡½ï*¼øc8Î^0©f¸Q–t0‘"®á%\£"(bw�´ú‰Ù{îýGŠ\§¶œ´ÔúNñ-Õ%*6¬äCöÃÔ’rYΈ¤ËD-Búh1€"ø—GLõßÈšmçô$Aþp�¼¿½ÜV;™Íõ}ª_L˜ÿ¬l÷[{¤›‡Iµ±Æ¼X@€RÐÝê^¿�n˜â <+_®Ä„Ïo¡Š`Ùƒù+MòžX ËQ˜„r1‹…Z+®…S¢«Ö7¼—¥í§rn@p`CN0—ð7ˆcÅU?;¨K ÖOF£Þ„ž#yZŸ§×XªÂŠÀý‚™EèÅE]Ö€½XJê#ïæñLs¦%ÕB²`|ùß7Áœ>B«âЧp�ò3ÍôÞÙÝ>�‡—”‚ð³†ÐÿšçJÍ”âÛuù-@ é‹§A¦éA*µ ,21]xCè™UèÂê†\¾¢¿´ñó*Çys*Øò¯>Ðu¸-ðý€7þX>Koö†¼¿Û“âcس�"nڑȬí)ê w›—ÚPMsÞNq1ѤK(:ZòGêÊÕ˜Æ ×ÍdqyÙsˆß�÷R=;?M°™æ�[#'\âÏÄ+f»/͈2!Œjv|,õŒŠw)°‚jï’¿ô ³ªæFÖÐt‚Ôìã¼§ÅëJÉ3„:obOØžI0ª9R ¡ïlbÚÒ)Í[Ø "`;…gÑD¬ÍîâÔátJƒäª¾Q‹„×áz+Wpl¡Y<„ý®~.û¢Š·ˆßÀT´„G+Ìæ{`#ÄëÉ"¤Vi~i£ªUÄò‘ùq3°ü,óUYî£+êr¹ãݯs†Ð”Íš× ²êIcìÕû†Ðzè<Ë”ábò‹‰SfŠ*僜DA†<î­Ö”ÎG¢ä¨¯½?7šºÁ¾ðÒØw…>oÇh÷\ÊŠ*6š×â” Ù=%ÿóA dÆíHË2y'ƒk¶úZz©Õk™sƒÈóhE†þá¾7Lu²4Ñ�R¨´ù•l®îú\Ü ®yâ~³gÏÊ«*³œS ¶u8&ÕÉ|_ÅÙ‘ÇHQ•HÖ…C?ì ûx¡«ÏÙcJ>pÿZ)‘Õ^ 0a¬™@"ÀJ<­éÛ8qÐèL¨DV¤CæÑ@Zó«MúA”¸%}mÔä‚QJP_ËRKQ«…c�¨g ÏÝg9‚$Ñ”¬$è‡èŠð:V[\Jâ>Qµ &3¸tŸ°[O;Ò±ø€i!Óq6Ge?²©Fv °Tø€>ZÞtC•VòtÆDS¿M™6‰ñh‚ÁÛQ^ÉÜÖ?äù‡©„õð&}jä€-1D’…òÛZOBa}#½ @Î�ï„Uá±ãsˆ_À=v> Î ‡|%ò;e”϶†äl†u#Œ5]ʶYÓꯌa"_aµ¸7œc[ÿåÒ–[#Yì©ë ©(Í þVxõ¿)gtLàé½+ ~}§Ð}àœŠ+ãR£ë5绕}™ Åî¬k&#˜XÚ¾·DÔ÷'.`ÈŒ­ €é�–XU�ÌAf D©lîò—a·’s¤\^ðÏ<)ŠŒã NËo¿« ü·U“Ù‰púx%Ó[ð¨bÄ¥î„Âv'�޼×È $*ç]¡•òæh¸Á¤b�‹ye´çG"Ê[Ä3È4=.|!�œˆY¯QÄ ]\¨Ò{Ð>7ÕmÊ›"X„…úC/^ ” lˆ,)›éÐ1ŒSèN=úw þÓ0˜6”°öá"%}Ó×M¢S†ê¨×úñL]Ž-%`^È÷Î?@Ì‚T,Š>Bìe-‰¶Nnö+$ä<æö %ß�5å 6;†^8y¶¡3ªv .«%3 >''{#µ_G÷#�ñ n&hÊ«~)WBLA´„Ó„dM Ó|Õ³¸Eä¦P+/ŽVº·�ÿ|½¿“Kb梇ü Í'}�OqÙ³™sªœ¢HQ{RýÓ¯ Ì5K¤þl™šãêá+`…u~bâ”ù»Z¯p�Ô ¯µ¬w€¦ƒ&_¢$6t�¾zˆý�ø8òcoþ;–é5oy0êR¼ÝÑ£˜nLŒûЭ­Ê—gÉT�WÛNO{1tG«&(àw”5#Iî®¶ÜJÛ²[½W…DÑÀŸIuu jšU}·s=X6ð�=EŸŠµÑ)Ž"æcŽŸ~d¦- íOc¼¸|l,—4�åýûÒ£‡+$?³ãóDu<µ½È9Ž–Tþ76á�¦qJÝ’¸¿ù|]YJ’5ý샧SüÍ÷àÒ‡þHÓúj”(XÁ¡U R«­rd_iÛŠc­¶ |y•=¿ë±¢a2Î ‘¹,–Ô¿’”ûOp‹÷‹“dÎâsŒ qÓ¸J\nÓ˜ÿ)KDƒßïRNHCs ÃÒžšÇxBþ;W8e}¹ÍLËAÈô KÕÀüH©Ð7º‘¤CB™¶ôa>?dJ‰Zü.û•oØÒæ‚îã äØVÜŽ¢S3+ÿs³¦�\U¤È ©k7ÑŠzt¥�Ä䓇ãÄðgõN­S/ Þ¡Q– M;" rUº¦˜Á¶;èº <3ÒRÿ®‘ "ïׂF+ =â¹¥sŽ#ï³^¸À»œ�Þá1ßÂŽÛÜ„¼#”î¬}n¾»ÒÜ~‚h7åjÑIa3w†Ñ‰º?»ÕÔ1š¥æUÑÌU!”¸'ˆ= ÉHêJC{Öúo³gbŽNi¿:æpfŒóツiÎË‚ñ>ñ„u)™æéq_±ØŽ$ÌþiÞ®R&£Yýœ_ëh žƒÄ.ÓHgUÕ\÷š¯ÈpÃa&ý²Œ�Ä®eÂÌ"�¼‡Û­Rܳð«2ײHH Ô|Î�n®—är7ú�6ÓAÃÊ‚ Õ±ÍnC˜rRݯçNU�9uá}ù��¸ gYLÃùùÁ?YXý(a*Ç´{ÒÝúI\Uw¸/ œüAGh † MZ·J×…²9G�ïxÊẨ�¶Ã�þŠA  ­Ô£ÓTým«{…gG&S ê[G8è@ãíi`+,µÇŒ¼¨ãaÚOÊmHüO4µngB©SkþlÞ5¿þÂúÀ�©Å…P¼OhÕô8 Êùé’ÌÓö,‡Ð� B™£§>Þß«µñh.»«Øè–>¾S½VÍ»%˜Û8Nߢóùû™¤‡³Éé“#·b–òsp»{—€Ä-�ï¬[½¡cÃ5²Œ±[C’­Ä‚Ëà*o€¨%Ã>hÇúV’uÚ¡~8¤`[29b¼vŠÞhI{AŽ7—»Ü6Ú*IeZû©Ã‡ŽÄÅ-ñ±îÏûmF©¿Ñ ÞR Æ¶S(¦_tºÞÖ”µ~¦Ó—¹Rh“ú4õNPcLb ÙŠÚÙH9 öžXß9+Þs&�–v @¦­ÇÑtš^À±õKø( ËÒ6 —Æõ� ØÖc| È£Âè7üäOå“tPüw=ã Ó/ýìÇø %¥Qb0½kÎÒiÍ`ýzôùo=hOd{�¬õWhï_½šî·eû�¹VZÛœž`rÏD“îûËÈóä>j�ºÃNeŸý^D³×Öù ñq%Ç!º«˜P×¨Ö —ÆSƒ¦ÓO÷<‹Áä�ÝF; 9O0„ãg}Ò«çnv˜º¨ú9=±ùdÏm©íÊ-ÝEU4g!,\÷ NŽ«Õ}Y®$ á¼óüYÏ©s¥cÉÒÐÎiÎâHD¤UHÀýÚIm•ücsš‚ÞÅR£œòõVæ—”0úüçÓ´m/¯òÂsI>04hS½cÿç•”T Çç8¨Û†ŒÏ¿qá+èO iÄmØ“Ywã5¯ˆKË{¢ã2ìÁ©9~ÙÏtÕ) RžFЙ13èP…@S ÝéæÜ«o™e’¼@-Þoð‚®�OËwñì´Õ3j6_4Ù W“„©Ó¹ WM·‚$õê#—ÄOÿ!’"Ć�8¶ i¥…³ë—;«ÞÖ ¦ÛHÁD6¦¾k|Bdø?“î§{ªáðÙþ�¸S†­ÄS‡Hx¨¢çÔR’l(4_Œw»ÿ9è°|Å]Æø¸Ä.¥&<)hÕd*Óû�š`ïF¦›>`2ˆ"‹qRR¢€Äâ�9ª¨§1ÓõaQûÈ Í !Wàg–ëýž!ã£mTo�ƒµLÂMQ5Ö®]É@Åêšé›ÛGrøx=T(h˜<šõ£6(¢'î‚\ºjú&qÚ®&q¦x=i‰põ¨f:1”=wc²·’Ý´‹¼ò!7ºIAYŽ*EÒåW‰ç³øJxBqAØ õ¡5’=¬’�©íY0ÜVFgòžJ’9¬ÕKaoÅÙ„-�ŠÊNØDÈ­(ô’OS( ww_×�2ˆþ(²½Ð‚ç3'bæî{æï· FY%R1Pžá-SHÊîÍñ îWHxEå°;˜ø›RSÒ,S7v*‘pƒÂ­z¿{ál±'Íþ¤é€&ýüDƒ¸ û~ª-ÐàÆäÄÇGE< ¥Ø!ôÈNœÏòÖ¯T ©ÉteÀGb¦óàɺ‚Ž{-AÈ•³²tù1úû¸P–­¡Z©“Èp»¶•ûÖ.lÓðÝ¥LÉ›9Ì\Σ;�´'©G]iþs‹ 9,±bˆMóWéBâz_!Ôú‰“ûœoÙê�µ‚#ü8«¯nZ(ÍbÛ5ç j°'L³¼u[½8ב¾œ‹Ò&®uùA3U«®À2lJ¯PV_ÂÑo“ìn!‰Ê>ÁѲ&ER; ˆU¹V‡�ÜøŠ{¾€Ê'çÅŽæyü°)ñô=ÐÙ0ÆBç�¡”Ä j(RjK“ek|Qõ&E¢: �ìjâw�—éèö^¾XHŽBûi­s@“`"�E±„Œ{—'‘E …5ím$I Ä!ªÓ“`ZÜ¿F°Î·%ž˜CûöÃLõTÞ‹xèBôæb͘¨†ŽÎŠ“©~V¦@õÃAv•._Ð>¡¿Þ[ö�ì#‰‰‰j¨Þ�3£Ð{µ8ÚÀѬ¶bÝ2ÖÑ@�ÂnÅ ¯ýKü΄÷sáó„%ˆLï+e“ÃfY.š£vÔr­è¸M .\‚2í0Ec =ç2=c¬Ô_%·À/W˜ È&)mu6È5˜[âaæŸÍÊ(Ö‘–s­:ŒõkR+¦H6Âôí9ó6À®‡á¢4£ä»ÅÜ‰Ê [üÕñ}ÊÎób’£äÚˆB´’ÙåmOªÒš�šTcE²1dΨÊ�·*-)šb’ÞÙçoÙ {²Å!g°ª°lKØêe¶ye+ ‹ØÁóë—)B£ž€:ð a襵SŽMqò�8tÁ_t]Ú{�ëÏ"OÖEÌ>œ‹˜ >üÐìPzMñ}Á‰7¼jáÛà¿’öækEg’7‘+§õv}¤Éþ‘ [ÖîsÉbn�/îâË£Cä`µ/¡Í(šA—îkIcF1”¬?uúªò¹Øl]¼Sò×Y*E„¿Íé�ʸû»ÿPo<…Ý©X˜yá�…|*y¢Á˜èn¯s6ö/B.ò“�š«ÜøL¡Bq*.“�\ @”D¬æí°ÆÈ'�0#(ÿ7 ù[Heud¸4‚«:Q¾,–zdˆ¡Yå©tÄ!ÄÀH¡gl º‡ïg #N»iÃÛ¶n¸Ö[`Fx€œÃòþ¨§vC¿ëŒú§1Õj¼=#·Ä™«Yqøï^”‰õðå³BÂhÕÆîˆA0k7¼ ÎÓIrºm-�»K¿´4c†—fÈVÝQô�tF¶õlŸ·½:K2ÏÀï¢1Æ€Êiàås3_ò…ë&ᜡ/bXàÐà ´œmKào¦Ñ'ª&7—yÐd3ùós�ð+F§lÂ5­‹åE&EÄpëËš�FI‹Øà9¥PÇTWåÛ~ÇÊņ›¶%Ü­ëé,žÿ�mÀ,í݆ÙÜùѦû6ù éV® Ö= ¦ˆ2Y[lêד½«6“ÞêÁñ~]hJÉ6•@÷¶´¸ÅT5N‘‹_Dz4öµßÞcHSQ]ópŠΪ$d–½¿w³ØcE¨"º•÷«-¦&5+®äµvL뱫;{9Œn·±&á0bÉúøÂƃBØ”×7¨å-:Ñ»C–7͇ŒÐÇ’Vsð9ËpŽëš•um´&Áë8G|¬÷”—±ª-Giu‚#üã¬Z£zR|"±È´^…eà2ó�áí]‚þ˜2:2}‘ºñ©€É¡ÀÅU(Q"U5�sUMúõ‰²*H;¥¯9…kê¢E¸í䎬É7ÏjÀ`€'÷XI›�úøž8ކCô"mµnÒ,sžWT•$Š›1¨Z¬Èý‚Uë ùPs!‘èŒ-ëxÔ½·-û<®Dÿ£ õvz!ZË«ºÕ– ë™ýÏJW0r´ÛÈzbº™ žOÚçvÁ"J �õåeC%5Ät…[A�ˆ6h3Ø33¹T Ê-u[{Ш�¼�àýÓ¼�)œN‚Š_S½~-3O8«ÚðÅï–å¯iM†)Öh5�~r“^âÆ6Xθá 9jŸ ·ÊBg5þýôîW(ájŽR­ú+ÉÝJ<4ÆŸiµòïä[…ŽNòuÃÀGtÖñ�œ‚7y1@‘'ØÙ›ìöj$ÕÚZ-fÅþoáprÞW÷×îoË™3Úé ©ƒÊŠU§NÏ{‰Äo|î“áØc‹Iœ;÷úœžò4àïôœCvfÿæB͆ÿÝÆËvý™J¯²{ée1èÆ :�N>?õÎÇmäxÚ1®vÌùÀí±$&o(ô–­˜ìz¨§y‹é®§+ó„‰ßL¡ÜH÷2&sf=TXª'Ãö� #GCÛ/˜‘Eµëׂ/úK‡U±}Í:±~覉â·î]~] KF­!Ù'^ý_û`%2²f/œ:”ã2ÅÀ¥ëàËœÜK(¶qνåúhs§«€H³€6ÈÊÞ­þÌŸÅORuð úv,Eä(`z�Vülñ%¦" ùbtÏÃ5{Ò'©k½ÕeªaÛ ´QÜÌLgíVRÎTÛàtÊ5šœ>Wß�¾-ëö�×’ƒ³hTÉÄ=~CÎ]ÄN­Û�$E-Nß])S[(‰!p%7+9¯Oõ¨F�Ô§î¢äI·ÊSg0lFySµÇŠ G«ZÈ ýVäÅ ×ÿü4Üçm,¿‡EüòùÓ=³ÏDÎêZ!ƒ ™ÕJCãëÓe°UD�é&Í'{#[­o|¡±ñK¶Õ·noÑá@4§Ž²N€½ Á nÓj�pc¼KøÀž›\Ú³ìt%ˆázX­‘NÖ�ĨcäîaCƒf&_u„3z-d­!Xfª—’‡.1'åp¿j½^®-ðóc“ŒväG#ñ 'ìÖÇl¿ôqÞ©ºæñ£ÔV§ûÈ%YXò]5À›Hqº¯W%ËD�QËü.м¯å†ðÚÑ©ihX‚Æ´{’äMw˜—�T­§�‘&þ‚1NEÇVæ@¡Váà¨{°tR�£i€prîýÁ,'¹ÝºM´ÖK‘d þÐl2&Õ’+Ö@XI:K†ä4uuEЊ« )“�òçn[‚CÓQîC‹¼BÝõ:þ…ÜAU$ÿ¡Ûðå ºRauH_nÿ,ÆÔƒW�‡A [b�îÂgßåSlIˆ¿T+¥hØè:í‡0S €áÈ5÷‚\°ã©1 ŠV$$mÇÁ¶b¦,EÞVÖ¡ª½¤'­HÍšø‹5Ñ[GìÁŠÞ]Ÿï£TÐoR8ÝÞ €å|àÎ>þô0¹÷èûb@ô’îÒ�ÌOBÚJ‹¢µÃ·òÈ�¸IÑ›)!±y€hÒ<Üwx² ÷=çLc,ÉÌ:)­ ~B¬û°Ò�×C5»kÙÇïÚÁÓÚž³?ßFú·x«�Áú1Q¸(9‹S/¥À@RZÅ6«â„#Ërïp‡ØõÖCªXaõ&z° Öû§&¢Mµ0×Ößñœã¹ÆŽ«Xû2�,Þå‡gû[\}¬ÖZE·¹;‰júZÎÀȔ¾Mˆà£5÷ŠÀÖtާ:ŽÂ<#ÉuZ¸@øD#ba¶»b¹6V‹/Ë—x+¸ Ó=}'®Aû³Öݘ˜�Éç6zôé홼ÞK·™ 5•Sš³ Tó÷ ðjqÄ™p×�GR FØ> ´{¡&‡ùÑ�1«Øò‘¹Czì8]wØ DSZY‰7˜ú¬È5çÉ:œHÝ«ß6‚-GC“~‡÷>;\‰þ‘ø/ÆÃj‡¯�çÐó~Z{ ÌÅ�|bªS» ³8´Çë1f U†+BãÏLþÔ˜Kà&AËïø<8Á üoœß¾w7vßWÐó¡J�¾ypíÓÙE¢×óß8n¿E�ùá¹³’éìVa{×$¶“>IÊž§éaN?]jCö(Uk] —ý÷”ؘ)Ÿÿö}ŒöqÚI—Ž(VMæ$…W‚0»?På7WZIYñÌqÍ.•¸ Å´¼KyÅvúRÃÌcTI{Š“ñâთå Ps¤˜ Ãs€umT“>T†Ì~šš{Ëú¬÷p©-s¡¯µaÏ(o‘† ßAË« \ù—}kñø•ål4ÎÞ/Žãé¤2r¬OðŽÙO.µ"+*°©?=S;û,O¤,“ Á¸ÑíøM”À¿÷³/;ÛW¡ŽiSZðË¢=Èôj:ê¶u¹:@˜Hk©,¾t}ÈZCa›áŽWKeߎ1ç¶sBY©ŒtúŠèFm¥âº.Z¯Œ‰ñÆÂ>0ös¤!7_"E>J«I0-P0&Þ,²0tç·â!°;.Œ‚x ô üžeŸ �~Êæûµ=O›¤Ñ8uÁà²�ÝžÓó '�­1m‡êAFÁU$0¾Z&È’ïrý¸!g*RìÐüåÀ†t/#8tÖ™ªð¾à§][ ŠØòfS/pù9Cȼ?¯R‡œV|ÿ£3¶»ðHР  �zu5a6¿¶b-Ö™ôºº>)è‹hÜIZ¦à+üΜvób|ª71³6PÞ Á¡äP}§ÝÇ C9²ÓWÉ× ¦äÈÌÛ¬|,üäËy¿­~/§@ß hÓÑ·ÒõA¥L72º&‚tWÒ)Lä*J¨§™áCl±-À©Á¢Hg,P¶š¡w’‡ Kw›ãZ>sÄ4¹dœdò“a‰¬q>#hel ^­òóºÄB²™Çm” á¼õSìÄ GN`-œw©Îx:�‘=Üp膉“Ú1lpÊ8Ú©¾waáWÆ3æpc‰Óy�¼zzT‡>9Äæ56Í8]€•eÊÿµÏtwº‘çÊ|XX Cfð“y…Ë%�U¶MOGc\ÿy¿íÞÊ[.`´‚è›.Õ»5=4xÀóþ+5Ц™«7žÿÐKÛ’¸^䎟X; -¤"¸‚‰)€olJfãR#}p$¾á Šº^ÕSÕqïŽUcö«# kIÖËÐ’¾ �û—f’¨ÐÌ`‡ªsê uiZ‡¡É¥M>{rÙF`4Îv7àA�ÔªéP"²fÀ)êħ›”b¾~/¬²ŽRã÷#ݤZÜ+oõó”ëÙ™L…{pS¹+4³ìñFƒú A¦hà' Gó2I{ñ7íëðÂõ)ÑÊéC’-KHL掯‹6!í áò4ºÄ³×Ðr»óa;K `bŸ¨!àf?ˆymä먤w°ïè?BNÚÃ\ïלxÆô®6â0mšPMš$ÉÔo)†Œx+Ð�åà#˜‰=&S‰@We<×xmÚà�\‚Su!–ê<å–LIµÒ¯w»ÍÍü?ŠW ?2dØ„3œ] þ¸¯åȤ£IðvÝ÷ˆuÅœ˜ìg@òe¾0¨“’ä@À�ôͪ<Ç=xNPÔÞ&‡·p|íJöhä”.6ów Ó5µ1rˆÔϬË�ÕW!Åx†�:²ä׊ës2ùâ×Ñ›­#2“À7�5úNóVÖrò*zÉúþ5]O�£û«æîu÷“e,ÎÊeìÈÐñw�ž0ž:lÿñëü³ÑÁü$µŒ“ýWЦ:Œ=˜×ñTøvÉAòã͸Sø‚8Ü ‚x±EëdLjî¨Kͧû„Sžš©2oj0&" :·.ÔÐ[°4– %B‰*ˈRŒ‚ä]V庘Œ§ kyÞ­)Ï«m€dÔ8¿Û¡®€ƒÙ¿A!-6æCÚô\áÐd²…É¡Ch×å“ÿYj‚ä(Üçÿ�G2s¾þï­ãRÕùà|ŠÎ­íA-v^¥ú4fl®Í‚¹ –¥~…e·¬MlnŽîDB{Gyé! Ò#�ÂØÿºú³.¦ÝO­€ìÎßÍ&óSüƒù�Ä3=‚1r Vk¨çäy�‚ò–PŒB¹ú²Ú;ê! ³¡ŸEWåËnHžQ#×1`#KÔ*‹Æô˜�’�ÛyɪÓ¬fÖë[ ­8Ðu°ïŠ88Úƒ»âe[¶&v{RðŠpñ7F¥Æ®ú8ó‰Ðxþ"ˆ�ävÏ` o äÏÝ¢¯…A^·æOQ§ˆÞ>ʨøâjwG9­]*:r¸Dv'®ÙÆ"yq…¾QfRüñnO]Oové…øÖjbH]^<½)ƒ ioG#ǹŨü¼9®æÞ¾!B„67öÔ·6ºA6Ì5‘Zyq��ö°üò•ª-,=sÊa¨¡ÕŽõ`ÂÉÓ›¹Ï5»„ÿÓâÅÚ'jdÖYi‘À¨�Úbëz‚Ëip>´�¨f!Ór«ÌS1ÿÂP7T|EZ¢”'ŸSwÇIõQ£¬—ðÛ±ØyxG®#Ä©=Ϊɑ á@#Ž‘q:�©/·ÍÜü`êì•"óiêÚ—Þ¸ÕÄ×®dd^Ї¥ž©z+>ÝËÝhÛT¼˜0w5΢¨i鉤¶YO‘£7ÐóÒN-yïí”#Lvµ7gb‚ZµÂMÑG©‹K• ¼ÓTùŠcpÕøúÝÿ¶Ô¦Æ4³�²¯­Zp6t¾êºÐŸÖ× Œ¬]wÁÚ‰bò{ÄÈMo{Ó¶|TxS÷€é—š™¸Y|-rQÇk‰l€Y¹|:ö‡u¤»•ŸÑe[8a¿káXbÞ·,) ž¯=U­¦UÛ`&@'à ¦?+KH\Sm©v³Æ4x2ÚJñµépÜ_qQ…®xë´2�j³H®@l%5&á×ø$~—iþj:'(iþé¬�.j´‹qÕÌêўäÃÉö·™Àx¡9{ÎUdÒ¯`DÒ í¥åv5d‚j~Z•ßf 7�÷ë~D †¦‘[ô·WQmƒv/ïå\ߪ?~­Œw(ÀÂa+0¸GŒ©züƒ7¾ÐÑ Ôe·WŒ {DÒŸŽQŠ¡!˜°}€Õ^›“¹× ÊG‘ˆèí¯eBŸZ96ú·gp2ßQ8_ü�B÷¥Kc!þ|B‹ú/9vˆå—ôê“75†µ¤Ô_s=BÕè¿G7Sb7b;¼Ø6…45„Y3Pm„¯Ö=DY­N³št‡|ÿÄâÇë†e¹×q.fO‡÷«°_qß›¥ÃùeJñ@$gí� ÄPQ!©M.VFb\#� ´‡{Òs9 — w*ß“·À_]¾ZOvƒ7UmÏòt°yÉl¢¡(ÈC×Ý}íÆ­×ßU“ú•ù4«ïCïÖLO®ïNð"«~«÷A(_ÎQšt«iäõï‚1gFº R÷ª_ÚºÝÇ=X }4rˆûKüÿ»æet8[vYÄ÷w9ˆÇÕ…Øm‡Æù^è¨M;ßš&ª¸N»)=kºkbSB[Na †Cœ*’¤£‘ rÆA�õâWk…˜ÐÖüîã %RˆxöÁb«"©Ò,HÎÀÉ#L\Ý´Ãÿ6éÔôÖ|dˆ¶¶¨SHJ3‰í5Å쓚Û/ÑCùa¤6Cý×{$šâl"Wÿ¬*Ï u÷h�? NP´ìþ4nª—4¢WF›–ÜóŒnýÈ05¹›á[­Ò÷ªl�&áµnÚ V*ÖøI²þ&æW}ÍèÓ°»QlOCƒ°j ȧw¡Î°£NÅë}V$a[}fŠÀ+Ãk‘Ø„û‹4žerI–œMh½=[¿CÔc!ú1)É଱ºG'EFÇtF2œåÔ|ÎÖÎ Œô¼;A¼BΑÜe·âE¢Ó÷”FÄÊDF8d¾ÞÖmNuéÌ6‡:Že&8Z¬1Óª”+)jc»ZùqÕ-;È‹Lèh¢Wþ”#Ý{å1:G_ÐnÑĪÅUj F;¨Z•;´ò6aXp†Ú{ˆgPöW $–[¾|4Ökõ +åIí^…ÂY¤F�Û µ­¢¾N,b k'ì¦Ïu=Q.›Ë v¤Fu\›&ayi•»×Âò»!AßFðÛ'×J>�¸<À%Õ¹˜QoMµVÎ8Zr«Àu�œÈÊ·¦ïDÈçx�š*]#DH0;™A¦ØzŠ«`gù¥OIE]odºãN¤�ÿRÏq§²Ú}`ª8qSŒÇ0e�1ÐF•�MÓÄ®ëü#k·Én6bÞInÛü"Ñ1)‡K"�Å›ÀV ÄÊcü]¿®?g’Öö©k.ä ìÆÝ]õ©ÝÊ:TäÒ;IKè¨û+[ÏcŃhBãWr‘¡4.ðd&ÌyƒÄï̱/³Æj§;k ˜×ÉëÞ_†•wcÂʃC5™;bô­JÐbk”{C_ ÛypŽÄ¿³äqH¹X-:(z¯#QÝÕ7£-iÉ8æ<…>mr(œ{™„ï‚TžH¡ÀWœRIwx ‡ÿ(T„Xè5Ӻɹ&…ôK{nsŒý;H÷!þ÷´ºi_—8e^ 1ΆÝU&µáeCj¤ îíC7­BMû„ªXä��¤/R·ëàIÞV ó@ˆËFh5 Öø-3gpÝÚÓw1:OQå7d¤——5$ÊßXq¸lryÊ™ý™T«$ìgÿKêç¢ê«Þ[šÓN`¤™ª|�„ÊzŸŠgµ`9bº`7Šc«:öŸ¥ ‡ÅÐZQ�ÍJB.iéa}ÿpMïø•f÷R Ê8 ) ®é|òmìÝjê=@S.?ò2ÃNe*y¿àÊ;G�ë!:Åö?Ef%B;%{3™Š.Ü¿ûS§[¼’„¦e˜ �«·Ð b�GtÁOºSû¿TöÉ;dÂ0úýÃGÞ†‚f9èCâÄemk¿ìOÛÕ*ƒ>¡M%Â�ˆâ�ìAŒ—ÃsŸ"%ÌžB^™¯î©Ìœ�Rð§B?«N> ×ø¤ýÁ»P¬álýJ4-IùçxH4Ë +Ð1þ-ª¶¥gkjû%5Ÿ(QÂD Ê³x4n|KNü÷Sö× m$�Ç>:à3<„¸¦0uôΩ{º}Õ^›ùý°ðÕÄùU1èF¨#¦ë˜¤c€¶(Àùr´ùt?’n ŸÉÃS`);@M‰»ò]o`[‚‰ñÔ4Á"˜ :ÆÊMÄ)‡Luúµ'Œžö­ç¯Æ${ÕOÞbï—h@”TÐFìOdPd}á¯$Ì›{W[çQ¦EŽÓýÜèÌÚ˜òÒcâƒ3/9H.n‹ó}¢=Ž{©àœT�|ÁËß½Pâ¥ÄPdEVtµ¹ ÁÉf¥ÌÞšÀÙ~@Ø‹ìXS3¨Y]lD\µa ðK¡ø~µDNm Ç£¾ßµæUQâ6–ˆVP‘È=c��²>Êe¿�™ÿ(Ã,À6jCþÎ48øVHP´ÎVîAec»3±¢û*{mΘ¿ Q”ÅÖÓßlUSD]ç˜×<ŠÙ‡{c–5ÿÍ¢.CâH±ü4‚Ÿ‹Uàh_¡Æã¡œ wìW€ÆDˆx ?pùç7$­{° ; ôCË(,•ö\¡oQÅ»~þ^½7>å£já’z~ªÄFëw � ê -ïE<$g¯2€ñd2ÛÀ­¢ÜÀæ#ªé»Ô_Žœ³Ó_`8Ít§.X|>yå!³œS^�Éʧ]ßæt‚¾~ß ı¡‘¬â`çñŽ‘¾P¹�iæŠßՕܳ6ÒN“. ß³»"çT8$ Øp4í¬_¬1v¦ñ+9œÑ„FÛqŒIü…}åˆ,ê#�õUTXeÎYEi%——8™ƒ'pr:n®�á¸XÿF 2\O~Š–œW*Zv‚ƒ�½SA˜F µÉçrÞ.2vúòOLs�¯L¼Ülì¿ ã‘=#Ö—ß²WàŠ„h_;¨j<‘­·ZV¤EÛM;<ƒB0ãA^N²¯Ä6é��f÷zsà‡Ší-}UoÔ’¡R¡H Øú²±fÆo‘ Ì-HÖS�Ä̸ï5Ö,MsmÐyB A®ôõ°b\è Ž:"_£V€þ×ÓVâ¼…!§,Ü Š‡0uŸÅ>n¡¡í3’Ð6E䛾emk ÙñZ¿MYu°LœBR�ZnÒu…ê�l0ZzŒ<Ú[@xÌìIw*e�tãéô¨XF�s�óDIöºñŸË!þ‹®&9çqû›ü‰ÍÝ�b\Ÿ’?í±�í±Ö@dÚ"Má2«GóÈr!÷aýµ èÙcDô×Qt¢®¨FV³ÔIX(ÎÂÃfài*o•ÃBúªýÌ£Ž­$Š'íH÷S´ýÿïá“ÊŽ0ç#[‚ëíÍ"g�íîÓǙԔ,«e éF¡ÝM*n¬ ~I§ äGpkK[¯î2/=öÜyMþ¯¼6• õOÁ\øµÚJQK"•ÓL¿¥¶Ÿª“oÍ%œw¬?䉡±†/0&IÌKiâfj¦%³öˆ¨n±+Øí)G4¶MJ36ïlç«‹è1ˆ„÷)ô_>v›bg;í¾º{P"NÓ5 º;�ÖÂ"èÂBx×Sí<£ŒLµ3±‘z˜ì¯w©¥¹¿DX²¿ã æ¸q^…7‹ììJZ¼¹]k�ÍÉÖì-Ç×Ëx=ÀªÚ›Y,RßA0Z¨Ýy�ËÛ߆Вª‚Ý�´ªR<³è�7`ûafyÓÛÌrÁˆ¾åÒÿ¥c�#ƒãÙ ¸”$â�P¤Ï9-‡…5»Šôvv''H9b„ÎENXxá£Àp�Ý…Ï“D߬‹þlɽ*WCæ{:S(wxÁV¥[©HýŽ;Dï¹!·�'K¤:‹ŒŠ&~�OH1“Aö%ÕkÇ ÁÊ~Pb¾ë‹ªe¹€Æì‡ZÏKH³ µ¼»×®s�¯ÖÃÖ3þfO;B¦)Éðµç± ¶bB¢ÀëðÈY7@ƒÄœÉ*χó'3ë•h÷…#:·¼—V‚o§RLô’&hÕëì�1}ä™Âªë­P¡4r1Ū \ÎO” (P§$Œ$OÞ³– ØG ÃÙ¤/VøKÉXC�ìåô$­Æb£#Ó_ê±Ç0ü_® Pt¶!Q 5¨Ñ§úZ•‹[ËçÁɰGÏðé=›PüºT Æ ¤‰'Âû)ß.%ÃŇõèýŽòvbê—øR–#F»”†³�AŽ˜˜ºÏïMWNÏP…4g�ûÈc¸¥��i×¹¬ç,´záwø(Gý2Î ¶9¡À:N½“p­®&£o"K˜ý‡}Q^8Põœu\­•Ö¹×­‘h œ,‡ð;�Ý;WØ€­æý_5ó@ùÕs¨ŠhwÌÓÓ}Ú‹þQ¡º*“Æ0¿äý_9çÂŸÑ HyaìÕª6|ª\ñ¹…¥k°^}7n×@õŸ4ÿÕ�c…kõ¥+y$ùú‘I¡¯­¶©9S cÓa† s)è¡ÏˆäXç@RHH·™04!«ê7”Úã5¤3¦ìƒE’íxääéOl,wî©ï9ÎÛ‘‰•  ï/6�h £Aû´R•áöÏ�·º‹åŽa’��æ{"l RÏÂ3s–}ÊÊf|�Ã&Šÿyã�;iž³6VpÂ3 ò‚4µâ¯,ˆŽLÆýÞ�îZûÐ×0Ü_¼œSILÑ’)Å™$ŽIÝuÓ[QŒg° ÂûHŽ%Ádª]ᮑR{WY„( C.¸ÐY¢„^,æMYÆãWnkؘ «*Þä*pFçf™SKø�q<ö×0€zÌÖÊà {ˆIÄÔ‹ŸVSßpü*z )³°™c¬ÿq=þò éÑ÷Ѭ¶ÎÙš›,¡›KÒ¯�‹ïB úÍ(þüFŠh·“Îcëò%‹Ÿs]:Rùâ�Xã§xΩÆt[q»o@À·jé`Yˆ›&åˆËÄx'æÄrA/E!ö“ßBGiUîV`é½Þÿî$~¯Õyª,’a¼·¯¯,@ÚQ�kŒ{�ÄÒ¶ÕÆÉë\{Pó�{='Ø}~*Ðc tß cÚÄÈ™ {¸+] ‚&[$u f/ºôT� 8礂¥^,2ØfPG¬7®áz—â)Œœwa ÷ƒøT ¹Ëá!Û°bóœ.,÷HÊÝ…ê3ñìøÃ4× 4z#EÉ‹•ýñUcd±¡<¼Ð0ý£ò§ô†Vî9N,¢X7NFR£wlbAv7YÃê=´JBa�øÚÆ/�ÕÏÊÃpîÈ�§Ä×}ÓuWP”ñÕ=¬~†ÜóT ›ÞÊ>YW[k1§86ÊBhݱWŽK<Ú>Ò}º°#q®ìu�3¢^y\àƒ‹�‘‰'{óÛˆ| p61”§>³¨ç­f²”�ö-3ùª4ᬉݱ’ºDwŒyÖtzKÎ Aƒ�&k Ñ¡s4Õì\™ì„å NŒTyŸæ}à c�iÔµ�’ÚØÈ,C"6Iæy*ݶ˜ËìœoììKUûÛÂǸñ§�U©¤qô@\À.½EÊ ™Jœ±Ò3êVÃQ|ˆöá|�£¦ bü�ŸØÆS°÷Ô�/IWõ©„@k¦PáæTk‹0Ÿ<ÆÓŸ&�;™MY!ÀEù1hMw4EOÒ`ù¡‰P\áPó^žÜ÷'?¤„¸Zg!ñ’ävçjø–z¢ü�ñ\Æ>Ÿ¹ã„ïliÉËmO<üôøþ�¥ˆYs è+"çê©Xºí\ŸA”ðI)âý1‰Ib_/IãÂtƒã+dîA¥õWn]MO³”JíAÖÂÂÜÛsVˆ˜¹t°°ÝÚ{ìò}m*R‚º&{eŠŒA��=•üO¼Y�Zç<‹¬S—ÿw)*Üo´ ì,&Èü4Þ‰ [ëƒ6±ÓÀ°“‰¶ì…[#Os6AŒ’œ0F÷QïÂ0a=�;b·{ Jv?²i*ˆ#kFÛù·hi,•»b ø‹«ß¬‘5LË·1‹¢l9Q®v‰u]pÅe‹Õ}Â*‹DqŒµ‡éщ-±›¬ã{a÷B8;¥fw&DHžÑÞ¼#SJ‘B(¿·¹`áÜ�oIÐMRdÙšÏFr+O�:Fñ?�ëò×ëZ¯¡�"9³ô;kÀßòÉ5$,ÜUÕ*øöBx4ù!¼õÕUI¢éIÖÝ •È’:[•¢€~ݤ){Ä%ˆ´õ\¶Ÿ´ðÂPI×!x˜àòo2O‰�͈Ð},Ê9Åü#q¹ÕËãwæ7~WjÈX�§ÝǨùŸs£õ5 b©RëÍN.b%cÒoùá*ÖPe8rZz†ô›„™#Hš¸bÊò mŸæ3׆Ĺ´—ÅwŒ?œKbc3 �Ë ‘¦Ña¹ØEÿþ|ûï¬_tî£âÂÀ±€üÑ…ª‰sp³jà" ˜ºÓR¿~Õ¼Ao,ÞÝ�rö’¿ÛÑ+ó]zîµwt\hNTƒoƒhõd˜Æ�RÔÄ·YùÊns¶XvÞX�0i¿ �¤N¯¿FãõÎa2oMŽ�þ@‡Q0k±:ª3~?XNC»ü„/Ѩ~ì€Iÿ ‘¿ÐÊ”Ba‰ùú¨¨1·ì3» *w;€×HQ5Ü;ô¥zßÙ§’ú‘NwJ¬ÀPJ0  :%C ûq³˜ªÁãÌB44©jYì¸ü‹gŸøutR¿ÕžÌÏœð飲ëª5¸@�³@‡,÷f–Ø–×ãnmבyútÇ[ŠKm¦[É–A*–õÁ&o}þá¾`«ÆŽ"Kýy¸ýÁAñ^ô‡|7RlÛÀédx°¤‰¯ò.Ãùb¨ìÄlRIÞl!ÀéWÚ¹û‚Í©C±VúÒÇXúËĹ2ý¥m§AÅ»}ÊÔ IrÇnÐêŽv=]J3—*ƒn/NÓl-è—ÌÁb_oršÛÍw,7cOšw¸s 'íýWɰP„¸ô襢D[I+ÛH�ƒ ¡Èq"TøÞ¤9¢ëZ›Ç d{ÿ–Á‰¯X‘‰9_øî/ÞLû2á{ïË$>ô£ÞuÓíJëzGú áòM0͵’�ð'ä2ÅG'­�ºÇ®1Hí% ¬ÓàL½xTÑ–{»5.~XoBðƒ »±üîÏ/žñ©&wBÂWq^»á}Šõž·:ª»FÇÚí|ÆæÚŠ¶”L ìŸ×-e§ë‹Ó-™Ì‚nÛLÁ2‡Ü Ÿ(uÔ1/6ar@yˆ05E>Ü+ÅJÕIù;äÌþn<=/Q¬~{b4Ð}óã׺Ì“SÖ�¿Ü¹rjb˸{ŒÚ;G®,Ïâ�ôFÑùQ±·ÞÉüg<wðœ)õ»ÈÁv�á¨àu[áYá Byv<Á üE[”}ÐÔF­Æçɯ͂ݡû·íhhÕ¯Uº s®&@ÕÏÞ¯\[Êw–_{ÆÛ�îä0³i³¤ðÿ›Zh€Ÿ¢½¢úÕ”—Ûé+�ë» Û`jg3þ’ÄŽ¡L %G PtŠÏhô;äñýe¿2Cf}[’¦ó °šŠ'X!åU§�]Q¼{/ ÿ Äâa{Fô\ò�ÞoʹDä^øŒ|²†!ðvì1üp Â;zèåUš… ô¹7pk‚�®¿Ú¥÷S˜Û•ŠÍ=Uƒ 8”Ͷz%X™)]¨óõ<ʱdM YêúzŠjjòüs¨*ÿŸêWúçùÍXþ*E|8ƒÌ} g#+õee-}CN…YWú¤(,ÏjTeÞ[Uåz¬q:Vgµ[͘v1ièn…N®?jU�ÉûšÎ[y¢S|˜Z°ñ/L¯þ�\®…Iîû')‡_óëäöWzbÅöäoh%£ C±ü¿Š˜lI…ÃÞø¼|ôÆ®¹D›Âвr'*¤i!‹¬ú¥†2Î…b46ìÈp]_GÊֻ,!¨ÿêèo»›'<³"Ýý¬ÒYóÉsËÙâíƒðƒëÓ³;oýó£8�Ý®®ßÅ¡©ÆBažCP“‰_¯kã\ÑÁU‚œÂ=«åƒ Ö't¯èÖð_”#wå ¡r(Oœo”Z@�~ŠÍ_IªÏÍ샗¨W”!šíò¿%V¦1 YkôŒú¸ßÃÖ°=e¤Vcÿp~–›^#m¥Tvé7¨†e{Š h÷±¶aÛØnh�nºåfMo•.wÀàþî€FÀS=2lŒg^UºÌâ �½Ic«þsOEõ\Pf´-üžµôä°�7ÙÂ¥ø'þG—pYgZèž+Ìøpö:7OÞBç3Ð\®Z/—ÍŒûËå«Ô ÷þ#©+éŽgžÃÉÊÃÄŽÝ,N®¿^»ûlȵL.�#{Ý1﹟Ü[˼§ÉÓ™ºx;µ³åõçê'æåB�ã¥þ.=-ÍH\îÏ� ®2’¹ôŠñI«#û¿‡¤œ „G\℟…ZÝõý¹—¶@ÖLJšGB[öòØëy M- Ílǰ¹i�®6ÿ¡ã¦jÖš�Ízô^p®m“æn…lŠ@~àâ–@@^æÜ8l>éÆ"Œ Î�Piy©C7Á0A–öaO>!?N=C”UI£©ŒBþz#l¯ v1ð¿ûÏÁèn3õ;‰Yc°¡ „;Ƴªõ\b\íKW;‘jKõëT$ëõQùªO·îvûŸò—îÎØÔØÁ$}8ÂO¡Cy±žMäÙ0CkЧ‡!@&4tªÓ»·DCŸÍÎã-Z�BðUÁ¾g‰ÍTu2-©³« [W¼JòQð“vìWKÊÄèá×½*ìqÕFð�ù ü1ú5Õ¨ºçûù(½æº_ñ¯LÒúîÑÔÍ$ŒžE¨5k¯¸¯ïGÔ)W•�¬îÚzIç]8‘õïìDcfÌ>«îé\ãèìübïßmÉ4ÑÆ>;GômQ˜Uí6+,'Û°¦]Ëü“1«ÅÞ›¿²Ã©©kLd©/Rᤰ³à{é3÷zÛq¼DË*n¡ŸÂÛMŠš`5Ó¸Õ±Vf iÆ}˜Æ<.ɷЇõ2‰�àUuéè}Ø-Uaû3>ÒPçj£´Ñ3į ËD&ªdL?ßRKÑJc¶o ¶.î¢:='ø�®ÈSÕ㬠;¬¸“¡ÇçÈÝí=1>ïIwWIÌÅßc "øÉ÷ü¥YŽ‚qsí9·å}MXµR ¥f}ú“ Ÿ2[¢ŒÔ�Q3Ñ”þCþ»:X‘ Øš½Ð1_?Í!²©XÞÝÉ f/ìE1£’¤^¤~£ °†ÄN#: ˆ´ojy›.A«7ËtÛ·šLÂÍc? L�ñv ƒU¯‘¾µ{\�t·X]èCá5âÔÇ7séûQ—_D4š}@CÛZƒ?G¡.™9Ot+®�ž+ƒlŠ/94äÛ¼QŸéï]RæV›’–­ ·†n±*¾WqÝÞæªvœˆ‚ˆË/¡¬õvñvôÀ; !í‹ÇZC—Òæí¥½HD§oážÚEvL,‰Ù‡{ò7k.W‰çÊå¥ßã^Ç&*üþIè8ÛZüV v†��E¶¢;#†çëòDÓÉ«ME:kaÍ `^â²´íôå,L5f›ÇÔô³Á§‡¶iq5 88y_ 39»à ÿÈ3‰WûÜäû”Vé½Pl¨Ê™vwÆ Üõx{Îßbø1ýÓ ôÎ�ݲšÛs˜Ð¡‰ŠîŒ N,rj­ýGK!®�Âêʬ¼ÃÊt¹×^ÔàúÌ~áEWT‰}““OËÕø­Ù­¡ˆ‘Ôý]ÌWL4%/’óJÝFQ*8ÕS~/5*×�;Æ—aCóÛ¨Lä`?$¹¢îôçø´X5«•Ξñ´’Ûï�…³±Y½ƒÝ†„Ì}àáï†â8ú¯2A%*ùŠÒa÷/ qå|Ž£–£3(˜Éð4§‡–kK}½ÆQ°ÍBS?kUJ)¬Î3:ráBþîvÅqoj“Emí�àA˜aÃ~´‡›AIJÑH]À¦‚õÒ!üžàÛÈ1ÎÒŠO1ulÝÝýìC2ëG48´�+ÒŽî!¦ÿ9±ñQÄöH’x¶Ï{`·N;Àž@ª�Z×�(ÙÉö—&§lÁXŠ#š�¥�ã)¢Ž€+&PÃ�JüŠËeä5ÛÉ�^ÚEܦ»bXVmdͳODâ+¸ÅFèšoÝ�óÅåââagáѦÍÚÛÆF#½‘/ªâx ’EE ¸—}g¨XM³íêɦ¹fé!,ÏÊ©³¬:â`ì¶öô k°¡PÖ°ÝâH±<êÄ Œ$òO@Mþ lº�»M[<}ì^ψ”oÎ’ „¥z±`É¢¹!ir7a¨‰öž¯–;}âr‡7×wµ1ç!\C‰º‡Az½RÙHœ~Ì@¯ÒóĹ÷ë‡�Li˜€n�9!…*Ë÷*&×-x¢¢¥¢ì¹lgCS± ÊS!èX»._k¢p«ðÙ»³–âÀÅeÐtC£á%Zü4ƒDS‘¬Œ�"ÃÈÅèÅž—5AT§UZr¹RòTõ„-;YÛ>·×gM2@:bd‹Jl£ñ^Ъ.Åâš—îi¥zñÊ»ÐDJböç!´ Ž«Îë ‹Ïä½$6ãIgáÈd5_â©'›U½ÏŽ×â5fö §h³‹S)”ú{ÀÌ›QžG4y³­v+Xÿ%BéÓWRc`Rì ÁÚæ!›M=�PLSLšQG0Q_T 4cÏéþÖ�9xExCà€h\Ç–wµ½·'±Òw1Žø~–\âdÓxß×él`ºƒ¼d§¡ÈÛõ�­¬�fü•íG Ñiƒí•p käešuµÊx9ù kÊø½(êvæ¯=_]ÝaA­òÞ„'f7ÿ÷š´Gè”;É?o–&»6^y‚è+pÜÀ<;‡žH% I4©{&ˆ»>‹Î03'Âm˜2dƒÆmND½«ŒšjYKùï¸0Z–�¢»+ÁšåÖ¾‡jŽóP�0Ñ�i!p €ÆÐ,A¨É\†<;DúÖ»X\4Iöû†«rÜ×0üê?¡]ñŸµÛD¤>X}À2Ä�d6%©³õ9ൡµß•¡éƒ¼>±WTh“K<;5xÕKêò¼¶Pt¢Óª‡�+(é?ÉÑš9ÔT9y>‘"|š$\º ›òÃ�Ò?@ÌöÙr W›ÞŠEß í´ì þ�Ÿ3ÁäôhÊ—A´3Ò‘3Ö“ûG!¿\=Æ.ŸÜÎÚQ¨Ç(�·¤ú¥àoé•‚!NûÃ7ÚòsÕK* {â²ðïÈþSüQçͦ¬ ¾ØÁ7Ò„Ò�³÷׬q$~ØÚ_Ñ-§ïÒx ·,ë¥HkTù ï>‰<*ÈŽYL°ýsª/Ãn®^'Ä�Àñ”„ˆê™A~b§o~¸‹k_0‹­ÙlÂÀœÈÁ®Î¡'™ôç«ì‚Kze`0Ì\ôâ‘ñ|ý¨bVƒÏ�œ8j-‰)Ã+Îk½«OˆóñpçŠóiŒ6µÃÅ : Ö`òÎÊxœ¾“B¯t³²Vœ€ŸeÎÒŠ¬Ûió«é N[Ÿ¡]OÞI˹x阬Loá¡¢"Z¡COýú¢3`BÙÀÍnõ§û'—Ó¨oj^æpØ)Äó`Ó­þë™/�3”y�“@B_—’$vU1÷Œ'/÷³&º€` +#j´Qì‰ùœ¤ØÚÉ ÔP¨¢Rù¹ñòˆ¡^Ç9¡M¦Êzí³/N_¨OÒâ¢oÌj¾¶¼·í©òW” «4Í ó4ôfa.~õ›@›.“SL.[:ý{¸uÙ¥\ÇN…à-_f£¥;ÄXåº;2˜]Q>[c)k\ô\ŽX�kâŸíF�Ó�u")Ac^ß1R6ü�Pð4¶oVmÙØÜ™� K;…O”j^�üAðvý-›ö‰o™@e,ä�éC7Sú¿d–L$sÛoKmÿ)¤òyÛUކ:4ÌZ×Nx2ùU GŠ'¦Êèâ,ÚqXâðRMuMIÇ}.2{�ó×$›…:ŒÉ(籃֪â†DmSÈônx벃|7Àî5ˆ|ؘijäÖôQ>¼Ÿ©RO-s$0 Ëìú äæñbq}cs(Û— Ixµ·�ùWP´úâÝcdl+‰\‹g[V†¤d‚`›Âš; ˜Nþ䤨ü$”Æö_!Í€ÎÓ|= Ï@7¶ËK~1óv’Lé –==;õS‰ã5úœÎ«)ûG]‡?u~JM¤£HŽîg·Ë•8r#jj³©këÌY”Ó!ŽC8±Æ$ ‹¯ Å º¶…ÎÞ2 á+åcÄè¹à8Ëb5{; ô˜ƒ‹+}Á¤LzéšÒ}-M2ÆhÙ1­u3�á"6™2¯#X¾r#¿õ–K ¤1f.*‡›H«3ð'ísg¦ùâCé2ÙÄ­|ÞUôÒçY#ø5¬¼ÝN ÉÀ†­®sy(.¤M ´:ùÊc=õqúÙÐfn10~ÿ-šî=ŒÀ†z·iü5WÙ@ªp<�VQ¢mV̧\›`V¿`ä¹V×\!òÉÍUj Ta�—²‡pç.¼�|wãæ#±M3rÆÌ´¦Üé@Oש£ ‡ŽüB�e´ïé4*Gè,ÐŒ~HƒÌyÈ×P±f3õO£3ÎÝ;Ù4K<ï{Í×< Yü‚~Ò :´~›1E·ó�:žNß6wU™Ý1$YQÞä¬NÎ6A+F§ 80Õ¹“Yi’Ü`–†²ø  R2:"—¦dÙTkßCµá{Àñ²|v‘ÅT0¡ôOüghšïÔ÷ö¼ª6ÂùÊDR¡š¯¡n§¼&8›<Õ¿¸,[�0úl 1Àèlþ‹ºéñºoÊÕ-«áôà¼úøª�ðAuûnåß_˜}Ú¦^îC{›™È}#\Ò€™ÿ–ª Á�ˆ+q¯?-w¶†[ŸiÐBRÎìo¦~ €Î@1ŠråE(”ýq�­Æ¥=«Ì:;¨BµøvfìHþˆ{•o“‘7Q8åûSÖô“¯£ü0$º�lp~”1¤°‹POá�x1b,1lšG¾É.ÛÁÒûpŒ!�½·«ç,Ä¿gNÞC;ûò!±HúJF?,ÒI2ôA¶›Ä…öU\P™ðæ©÷uÑTA’¡3DµÆcë­ì+ùaôFŒÒ³À°GÁ©¿’0šä‰–3†4^œÖŒ‚Ú;ŠEu ‡<Ç×ôá}‘,�ih‰@Ò×]zO»Br~ê¸î(ðÜðÉàÓ†¦‘‰kÿhŒì¬¿p·÷ 1p¶µ•þc¯Å‰ùxÖÂüÎ@ùhèp€¨³dPž‡ ü>„Xóšq÷嘭¼k^$ä–ZZúq$x‹ï~œˆ%¯xDŠRW›®-Ÿƒ‚©e{ÿDʼdq Fª“\Î9}Ñ>d¢~´íI÷ÖˆÀ¢jÝw˜ðßî£ÒÑoR`ƒ¨µEk"Ь>t©¤Šª9-ÛzÃ-Žu´02B.COûW+Š}Åõafñ °Oô›0BLåò2:Afý~%ð¾/²çÀkAÍR§ˆ&M›1^œpƒk‘'ËËs“€Ta�Ê>iïu�$�íj4À:<ù—I‚ïäaŒµT´2ŸÍ) "j× ólö(ý&'Üséž1ˆ‘ï|“§€yÖˆÅF œÊ·:ÎQ¥ø­Æ2ñÍøS3ý›ÀÑ!¹ ?¯ªHßV\®ð( |i?½•*ï°Œ % ä4ÿT:šgJ¡hYZ‰}°õsuÜ<áÈLL%zG"%ÿtlÕ«êøÓ=³tSÄŠ6qú�ÆÇgùÑŽo†ÙÛÿ�=âY&øÄøEœ¥yêR†J š[ãv*§>Úà¨mŽ‘ê—jH$çÑRJá![øâ-YÌù‚+˜ØŒW¤/pÑÄ_}ë „Áø÷º—»*r‰©wm¿Ð ÔMwz"F²˜2Ü`…žùs± cwåà:^^"ã_þ¦Ómë0Rk¿‹HRÎ_È95ìpˆyZ‘ç¤T‰ç ^ ‡’–—°;$¦óC>�d±¾kH*ú…–7äâc$ÖN�ž ‚ZÃg¸].V'sïñ8w®`cª&d=+½ ŒLÈcq9ÐÒ~Œ(‘-'|q£�“šÓ3•ý»1ÏqݰÔ+UBÖü ÇªÉ¿x1»³'w‡6Ç.=:E¥J/¼ Ö$Á‘Û™ñ#� ,U_ÌWcAû Iq“o¯Ë�§r§|†¶pxî|ªÏ£^òö ÑØ«¤?›ö6èd-Íko í•�.›4 C7Ñ�‚ºátäÊå:Î|S~ Ã9/Â1±ö„¶e¼3¯à¹0uxÁ²4õoàAPÅv4ü´89Í´jN¥Øå3'+ãâ·Zh›>Ô‡|ƒ†_6_,ÛËz˕܄i he¯-’k�°l4nU'@ý±ÎHg†?°GT�s »~^ ‰ÑÅ‹XÍýnÀ¡C±æ!µiòüý@Bò¶SÃ*6¥2¦gáP�‘×ï|†ËMÝóêÎñüÍJVѹfðÈÈgÄTï=&M:nam•B´í’ô¼PYÕý_¡¸ëo¾'ΰ·è)ÉÃå¦Au¹iE«&®šŒ¼y“Ä0¢ÒRkŠÉÝ®?íãûiì,Æ}s;éà×ÈÓ��ÃÑõÙéWÈâcTÎ*`t"2HÆá án;Íõumëd#"ìk éñA/\pú¨Ú6ó€�ñ'�B‡CKŽ:¤»92ÞŒ(Üßm0½ì|9–ŒòÐ!u•ã…͈V§)ÉRÄ‹›³Ì}Ï•KþŠr^qŽ�ØÆÃF=ÙÔNF0/ŸÎ/Áÿ‹òˆI€hÌn[ïáÊ·66à0�ã])²FÓ«ÅŸvMqÿ–{DÌn«åtFßxâ‹S>psêP±Â)Zl`ážuPq/s¥ ú"*O_¯5!ªÖ� 6{\QtÐfäÞLlª��¡¥oÜz·h{å]m jk tŸ-"ÔÖoÌß—î{~ò÷XÜFóé_ID½ò?yœ½•®ËÜE\V)S!WCî�——’B‹æ9’—Õ´�¶1+âëýOÝ5�w•š ]=õ0ÑÁ9› ýíþùŠS‚± 4›A•òêÆ¨¾ÀáÄ?9¼9ZcÄä?·ñ’cÆtŠ×Õˆ$­Í·á> DfºÁ>Æs,AAWUéÉDèMÓ¶v ”A‚Cº•_€.ôPÐ6n*Ç$ Ÿôa³Íf@ÝÝ€Lð³ä*±D“ٲݿe¸óã9i<: e·‰¡”íŒ#BrÏ?«¡½&ó‹ÅBgHDÖÌiú´Ü{O~#ð+º™Æ]Öì‡5t‚F‘»�iÚ¡{é'Ñ3ð´¥’Q}4fNZñÃÅ)‰ÿQ5£f>9/X�À¤Õ||H»ÀE{JZy„üWà C;aUür 3‹jñÖ@\Ä®Nƒô—(Ð~N¨Õ ˆA””ënD‚ôÙ#h'é—qþ!fa¿ÕèEئ6É®×�î>‰È¬µq7ðp_¬ XÔÎÿu6Úüß}×Pì‡t q“zgp�Œ¼÷îJË‹KøB¯dŠF^/)‘�—Cˆá=dû¶w`ä¤ "8–È�±Ü.#¬¥@­ìì/‡bË-Ö(º�avˆ<3°áüZŽø ¶Æ²]ùµ‡bfNŒC]âBŽc¾+þùŸnW7P̛n¨”'Txn×ýÈ1PNANŸC3â³\±þLç‚ZGñ-®cc#¦A…™™#ºH:2ñK¹IÁáŸÂpfÈU?=±È”oç8öáßiâ%=¹³Ø€žÊÞç9­Y¬K"ù CÓ|u3,±3 ˜â²ËÒ‹šÛU×Á˜WWwœ¿‡‚Õ.Ûã»n­Íèa¢Î0ÉQ}˜¨î)à Ôý‰D»é ^Eeâã¢[ 7çÐ3¢�ÞÑ“ùReÊö,ÁéiPñZ(‘/¿Jùë—W߆»NG·YIΙOˆìQ ^­ ¯êä2æÝ�WQÃ%J´·ôª9/—Üc„£ƒåéêõ <�Á)N¨_Heêý Mæó«3Ë~ïFXÐ{à†×0Ñ|;UššÁ|Bñœ³J ûaµ­ŒM`0-»ê‡Yt‡l£¾kSÃö‚º�þžªÛùð“§C!Š>™æ\þ¯…GRéï¢Õ0—X­˜ôÿCáÆZÊã¶ÁR…'½$Ö²Sº^·ÔÊÔ*Ÿ@àíêô’…ws€øÎ_»ÊJ³ßyô€hs„B5»¶Fè6Ô{Ÿë=P$/-M—ÐrIú4?l±ñ$R¿Ør÷|Ó ±X.ÿU��3™ÏFc¢â5wW!P©äUÑ% u4ºbBOâß©!d¬×(0�3ÂÅëq5½WÅæã‚þ[6lêè[`ާ•R�¥x–Õ~�E5MgûšÌÍüÒ)C±@–6v]É‹Õj»ÊâÌ ëŠk¡‚•=[‘+¦ ½$fšŒ ·äµÌJ¥g®„sËË�,� l“ª‰&ìM¿ á±éO!Ú?d6“Ýó`jkmv«,Uk�­ëâ¥>·Uf ÆNmUy�¦7>†Â§ƒà¡d)€2\®Uj@jZÀîO"Ñî"ß|l�•ž³§^)¬{¸gÓŠ?iô\§ œã·w—x†÷J©÷žvù�óæ<☌CR…ƒïøIõ°3øø§]nu Ð’ºÈ,žS<ÍHy­j0Aë»êÚ»2 ô=SÛ£Æ75Y›Kšæî´åÅàrq5Gu�«:ù¸©_­µ2Ùý–=ìÎ%aW£¢qœ§xßÐý&eâÉY)- .%µÃ£šÊ*õPÐ3oÀñ{†—Î�tH°—"µ�Ö€1áâžNs4/L�45Pšýlä¶¢ÍÔ=Õýê÷½ÏHiè�KȤ˜ÆÊìñ1¢¬s%.‚©úöµõp´ÕX5uIÒlÄ�^¯�*¸«^þ!{$F¯áµq‹µ»§ð^%Nqé]7 ;Õâü7Ê^Ó׳þ¢põ¸{¹aÊ�¹�•aüX;0ËþØEIŠHý�À“©ÍT§ع˜š?‡E—½´ÇnӀȠª; \4éKJ¯R«ÝrPO§�>Ñ}.ì�ñ_Jðš·T? Ô³œ…+‡DV3"%‘ÌÎÆÙѽT�÷ÐÚÃöF³ÀÊ©~âͧäCˆ2Þ°’K¿æâ0_À¯yÝ\ʳK$Ê®h¼Ù"ì±U‘tìçˆ(Ból¨¦é]Í}û?�ù¾xöÛ0Þõ÷6cŸr�dùà'ÕchÇ"͹n… '‡¬ªºZÔ4ý±³´w¦M V…,"v'XDù/u�sN§®�qq5y¡®S¦šÁv/$Ï%@ýÜT _l‘-Õ�¿ªîö€áBŸSJËÈÇe2.ï�´h�%ë =Ý«à/n:ñkx4€þÃÄÇû‡ŠÃ^Lªd ú4°‚eþƒy4í®*[…[³¹A×gœ¼,? œ– þIW¿=BB[7Ϥ¾ggÞù­ #ÿø"ømí‚@vå¾Î­Ð(=Œžr ØäGƒDæÞ³ pŒziußÅ!è›7Ã|¡6Z �pe3>‡ÏFº•2g¢H�Y <¥‰ 7ÂkEn7[£í1Îê=‹`”Ç?Ëž×l�›Ãûö„<˜1âçKÚµìà‰‰©�p ZÁDY+Æ<É×”o1žÐÄݵ¿:88Ù ü�n…âçWVuÄõ,/ÐNû ýB"G8.N‰-un\Õ £ïZ2`ƒ�ç˜,Ûgi-ŒàÔ–ÉùrÛ+ŒwV÷(‰CÈÉ\X ,Î×é_’òÌ SÚHóØ.S +­™þò²Êã¾÷ñ<-Y«ˆD$'wr-gÉáô†¦þ‘}uÍOõR§WRzoTíþ. .Åiä�ôY.Z¸yFÚ–u©‰Z{3'��'¶Ä¶_é¡¢ ­`ê ú¦êHn£‘â4`»`ö>#í¢] å‚ÿµàIŸKHòxl^ê5¹,¬,Ëô‹ô®žöF±'ªk£^;ÙÞF˜#â‹�0$ybþ¿ÅÓ¹óÔT î8qТ.#êVÅ©2‡Ëì-üðk·ßÇ”õaÔ1Rú#ãøš¥ár¦°=ü¡UbÝ›M/=ìâ¼ÃT:–ªË¹àC:ü1!>ûªµÚ‡iú§aɹ¨©¥^`˜ÐIAƒ#®•A¬@èD¥5«µ]´(˜@ø×ùÒ™W&§ây¾ß½œ²©@žnì‰5åREÈõÏNNÔyñV>Ь¿”Âà.žÜñ—Pñàsì%q‰ŒJ³fá3»œëaª\?´fAWã0bƒ1�±TݘS¦Uõm)FsP©)Z8¤þGȼ~€z>+~µ»Îr5Z´Ìfdõ6�;³Í`u¨ü$j˜ >6$ªé Zï• Šd™K‚Õ#3)jç`=ái�†O©ínÿ�=Î²ËÆBGbø=^ä���aŸ*î`˜Ì>7¯fã¨ãg†Ú9ìÉ–²x«¾£p¢ µŽÑJ¬]¢Ûu.»þÛ/Éž;2ô¨aŸÌÙXzå–ͤ¹*ŒÁOûBžÓ 0´ÍzKÔ ŸU8µÌ9RŽÍ¾éll˜Óî€G¥ü‡ø„&ÊåÓ0‚ÉÙLEOF°ùJ˜-4Azë5'îëPS³oGýž]’Ó-¤ö|(séeÜ>¸9)Õy±\Y9^‰6¼®>-cš½VùÞ“ƒ°4~5-Â4A�>Êö-ö€�r´` mg¥E¶—¬�ÅK šz‡§Øö"ãœ=qCØ¥PÏŸ¡Yʲ5E›�G¦âÕÒW"_S# aë$âòGÏÉSÚñ†îó ôc›a¦j»+&¿D ÔˆsûoÄ;©ìÙ¿µµë«ÞmI”š×ðLa9«Dò`ö˜+¾ÑÀ_é$§ i~�ů¥A-'Q0÷jÐŒÁ›Ÿ!Ý©�ªÆ¡?¯´ƒŠž ¯ÅT©3Zµˆ8a-“³ã5C³ØÜ§îU°/ž�K³¡E&ø‚¤‡x9'3é´ù¶“Ì­DùŒõøBf˜ÎDvåË:L�‚?üK[<ëŠð½GÃ|ü¦Tœe“½0YzV?a^ðÙâq0ÙN…BÑšU¬BõXY­ÃÐk+~ô†<$>YìP[ÞÇ‘/‰HFkûÙ]e%m¬uá7‘Q¼›N5‰h±aVYiV3� ”Ì¡,‹­‘‹e›UHCTßÚ)R ô°Ð9TK‡…n¤[mSsw³-C O‚tu{„71Ix°Vi&Yžlna ¥ ê(‚� Œ¥¿ý6¶`ÛЕöó `V¦rÊDêÊ2=®òe92Loðáî*Ì6·ÖG2ç l‘pßl5ž„ˆé„…ø Â…œYûÔ‹ZðßèÄìºåEÖïxÂ%‘úp’ D‰�36íÑFKiZµDõªzÓÎãþ2Ñ#£?äû?#‚‹’�z¾ãcLÄQ gãdC¤o­³]šª.'Ç.gñ ÀÞ„¿QJ lÙÉM Ô÷ëDR9)[ÿ”Þ¸ñwÚ…‡XkJ_«““cJ8ÆG†$¦ª�(‹V“¹\/d^I]0_mÕµXŠóÐjDÿ°’˜‰aMP! u ÿ>yán ýa;–£!ßóåí/Û|u�:s®ÜGa”@ÄÞÍE­V�©ËU¼ú/x”‹¾x†O…ÛšóÞzbËW€™R”�ï8TˆJæ·ÒI‹!pòEFUìAÖ®úx=�3J+A†r삃e“ê_íPÎVïKp…5__]—^hq•±YDþŒMoIÚízƒ{É®G{z¢3à&©PæÿQ<¢C±Lh�‘,i&"ðÈüÎæk|UèÇ›€Çgz�uuHõíÇž,¨„8êbósÖÚ¡½Ù“•’*¤³hžúEí¦ ýسõÖEЗ¼ýSé_ìkŽiçòÌ’’°`éé’7ìßJèÕóžG»ŸTÛ}€Î¦†'öu£� ²á«x¤�¬ÀîŒ5ó08ìy�«ô¼ …Ô¯.YtMƒo�c+¯g¡Õ÷ØÞÒǬ“tK<`]CHir'öüøúDLB8ƒš&:+Ïôó4xRNkœ…ÆRZ¼8ˆg–qê5Õ7bÛ€KÎÏɃ�çlpœ Ê1g×·Nýçóφ‡¨ê�Cþ|îÈ•4¤´E`‰¼=Y$¦7Â4c1{Z,ò#ÓÀ"_ß7²70zãß$IYÿž¥Ë‚8̆‚]Þsã8Ê{a ½v‘®„À;ÅaÃóÉÞìs"—1ö‚i‹wîÏQÚü‹üTtXc!ÐrWc抷A|ÍS¤R£ !4ÖÑdE¡K§•>"{ùB ³Ù9Ä«j=*YUkÝÞ5LnwåU5rOç}å”ÏI[ˆÊG!=ÓœóŠ ¿‹'¼³îåT)p¥ò EŒ1f8Á€ÑíX êsÜ7�¬ÿ�’ö‘†$c¸pFÿb=L&7]ýÍš9Ê"ÏX'(QR"S/k¡Ê­«>gÌk¼³À.óåæOòž+~‚zñ6�–r}v¥‚¹ÛžæW¦3“�…P`ƒæFºŽXi²�èÆHÀ9Ä…z Ao�‚î4Õ—I.¤ÿÖ?}@(ǸXŸˆœ4‡#¾Hû›þÎÌ.GÄ»©³å~ &ÙííRÆ¡‚]ÍØ»ésÚãgVÜJC—!új›)Û©‰F5²}©År á¹É¶c�@dì3P‡vào´òïO{É>QÙ…ç!­þªË³×ÌCãP·”ís¸W1VÕÔf=,xE‘×Z��þÖ ‡g(�¼iøÐ8÷q¥*nÄ‘e'Gº¦†”5‹Œnµ%v"ýdLHÛjÖP.‹„%o÷—}Ut U¬J×fÚoèQ€ëĦ9ºHÉ@aÑmÎaË>оP`…fw+ňÔ?y¥ä} ·'wVΧr°?ÛBu Ó_»Çð¯îUJ‘èÃe~5òmJ€%)?ÛøËê•ò<.à†àI�‰É0¶Ü&éJmÊt¶7V±PP¼oTAÞþvü•׺ó*˜ŒÁMº¢k òŠßëƒÈRñZí¼�‚Ñ"Ý;*•ß@í8±wv¡�Ç^̪]´Åè±æœ#e õ%q&‚0€î†zz“}œ-??¨øŒ0™£ÌLæi2P0 Åš¾zßFÁ„©14§i:[ÁÕÁ¶·°É“Tꥉ<ì‚�Ðtµñ’‡$ôemNÙ³PzHÉkbY;4Ðu3”hX`œ´D6A'Ø< 9_ýº©cÀs�ÅQ3iËH�7�Gš&H$SHqA/Ü;©É§K#…­¼É&°ëŠ'þ Ç=]'ËšLŠ·D.ßÍ7T¾—“á"´@!+ÑW“Æñ7°È2‹?Àã\åD«}�_õ»`—–û¿W¦³¿·.) °ŽºN /Åëâé_­Fx†sYÌœ ~h s|€‹ßFOÖC”,ŽŸÄ5Aì„Úò‰‡L†Äø±²¢ö¡'ÌÙ…!©Ý›9û"Ù¼9HÒ¥eƒÂ^ˆ`ïÚç#óT ¬Ø „«mñNˆw_ƒbݲ²+÷/ÈŽeÓ½~fWfµõò¶Z=64qÆO‡ŒØü,¹Qábñ-î!H[Ö3úûù¤{í9‚çP›Ø»4Zþlf<ƒ°MDsôÈUL!c H¨SלÝ}áÁñ8¬äÞO/Ý9[1ZÖ)ªk³a™ÚtÇ!òÞ»W‹[:7€ñÇB?÷‚©ÍÖP­u¨¤‘ÜíÕ�ü¿ÞTí_Ÿv",j·SóŽY &(²ÚÅÌœ5<Ù , ¨E^Êhoxk¯h'_Üv¯£Mwƒi¯0#Ÿê²¾历{¦k)2ñ�ª|··-€ òÃyeİ_ÛÐV�Ã8ˆH¢dž7HÊÝ/Ϲ&cö%TÍXó*O‚1ŒªW�³ä¾“Ž[ Èçã%¨‰³Nø×ÂÝN”ýçûÉ+,ëaºˆ×¼Žç˜)­25ƒÏr9‚u?àí,º“ Ge ­ÄðG¿S—-°svŸ. ÉºE½-m2už„ôNœÚ5s;ØtpA>l˯€ls%íuŸˆÇ^Ò¿}UÃàYÈ]@�Ôâ€wÌ{áÏÑ À¡Bg’�òÂ¥ÅôbSþWQË™aÿ2§„ ™*0bK-þíg]ÛÀàyÔ%Ãx!CVÄ­‡ìjq<+MHÔæŠ§ Æ9¸8I4s0ìRb4u¶q2Ѩ‘œ´m[^gt†Î;2Fßtë÷þž! ,Ë@Ú¶…J WË &‚W9@³oÕžãÈkH6ÙâïÞ¹ô�Dpqu˜7ÒÍRÕctžY£ôj"§aú©N—oèGïäþ˜ +0Ÿäò,öw㌕Ï1}²Ü”®F9Þÿàí™pÀV߇®Æäдÿ¥�¼q•ìeÏß,¢Òhű…{¼[›ap@#„µ+îxˆþÈ¿ÚS 9Xå�o†Z‹4ÛõzÊh§pƒÔa’iƒ¸ì„5áö>pVSLãþîzU&˜2î}%/Þ¼ BkÅ>;άÁz¢ $�„Á®4²�Qq·MÜò×€š—Âjó'ßSTE—èÂÑ×Ç£DQíIØùNúö–®S6Ž )*1(H«èü7 �;¯†gi:1 )÷ˆÉ¡ñÔ,É-î÷+ù„iþ‡OÀDÇ khi÷_ø<ÿÝð?³>TKð#G;¥óºydYBãĶøïœ €e ÚË¥t™ÉÎé§ÁÿUla'SC{§ÿfMMŒ<  �˜ŒmMl,íL ÜL�œ-ííèØþ3þïAGïbêìBçfoÃÀÀLÍÀB÷_¢ý?ðû†ÿ€�…å¿Úÿàÿh™YX˜Y™˜™XØÙ™™™Ø™™þ?®ãÿ®Î.†NNöö.ÿW¼ÿ»ýÿŸâôaÀ_ Â?‚…N�›õÖI!+Ýmþ¯úPÉÔØMÙÆÒø?>¤n“òæ,²{‹^)‚·«6ÆÑ°øRî~(™–]ãì;bÛt´ž'—­ÌÒQ °­ñN,Úкôj_ÿ#ÈÏÏðddE j6�T•‰ þ¢ö¿Ê/fic*bêlü?ß+aíд‘&oAdž¦å²b>ÚŽìv`ORk¼/¢1áÕTÌiÀÿšç¿v½‰¡‹áÿî t2ÿ[ ½±ë†Ð¡S4æ#�4Þÿ«$Å”…ÿ ÿ®A}E�îoúí�ÆEK%ql"S˜(‘(uÓÌ^Å4.´Æ:'c�€Á<ÝDÝcê�X´Ãw�éœÄ¥Xd ,�Vë”é²6<«„4 #�/¿ýjH§ÿ™°åwƒ›8pìñÈ­ßÖ9ÀSͨ͘“Ñ$PÍ©kD§8P¤z� …Pw'¢äVd8c™=¹ÐÖ¥åŽC¼û‰LfEŒZP“„™)ç; p¸ÝÅJÊ Õº'g½'Û X@ôŽD[ÄÓ·mO$˜½#ÌŽ$ˆk<6œÍRâ q^£mcAÌuª:ýrç`s_»pÚ u[@K¡J¿j)¤Ë›z�‘Ô¥è�0ß¿UTuj ’Ú½%a¶(±ˆu#žÑÛæH¿äQ5ÑkíZHǶïØ7UÂw^Ê-4ln�P‰ô(ª‚˜*VHÍ/ãPé”ùB,£å7�$ãŠd¬Ä±?¯© ?;s&ÏËo8$@“áØŠö“rrÓË{�Y¾˜›[2HšUJ¯óè¥ÌKŽÐK‚ÎÚìùKì>ýþ.qo�÷è#½0Û§~ÊõÛzIkÔUý°VZ²œ-¸q)ßìè0ÐuÈëâ¾G¦|d‘’n”_…r(DË饮u{s#oé*£¼?J6¼VuÓ¶QÏ8c}–5õY®îoùë™Ý>ÝæˆfÂXB`Ž4œoäÌ�ÞvmÖ§Ñ7o»êßYS1à”¥®ýœÈ´G·Š�kö"ÂY‚ƾ*RN�ú/Ì-�¥ñÉK1±Tm:[RttËA'.ÜœkËÁ-PPfÀ• ÁAX�s6]¯¤í9Cî~k(°Jü“œrE†T-ãna‡Ayé�è½ZŒè;Ï¡&ß±~ÉBŒHÔý9L VDÞn%x²7]>2€ÏpŠÏÌÔN/Çä®?ýHÏx¿õÑ1l”¥�¶[#¾†Î^Ë­Î #§ø¶be îÇ_!vPçsNî%±Nõe[¥÷QlâåÓAÂÁ<®;�ʧf|$«Û„ÈD]6.Áì3-XZAôPÀu㋎½Ø§PµO’ô�¼S"KǦUr�á"+‘ÒîMNª'yJ«í:´[ÌÕ÷`®Îö ¬ êÇRw|œ—ß9ÍÔ‡áèQÇ�IK¨l[døˆ‹�+…k,;rãAÆTBd.zx÷¹Zof7kõ\˜”HéŽÓ dñoN|”‘£iiâ^¬nÜìДb+áZ ü‰ýç”ä¦pEF´\š"Žzº!%©&Ë iÿÆÑ?T¹Mâ›*ƒÇqr�Í(¨\;ð î�÷@Wá>Y:ðjÅw¦8ö5¾¯æóZý¬i yäЮȕú ‰3/ ñ+«Ê/(ªÕÆú¸€6Vª*¡?|nadö©7!LljU¶ãK®©íst@ˆkÔ.ñÀÚŽÚ í÷vKýsv0óšíæz±'ÿò0òˆhÄ!3ÏOáÜ·ÈÂç5�o®cB½¾êSØrШ8%ÍSÑ6ܵ–üŽúŸ¶ÙÄyz.U�é Tˆã¾»'�VrÐé!¯ÞtÆ�T‚}µFL|ïÆ÷¨_ª·uHiÀÿLÜ¡–ùc ö«õÁõï ûêþô™Ý×*ÏW¬ÉÈ¢µ}ªœšêáëf­¸\Œs™ôèdãçÿWÎlsÈì=aZ¾÷?ù7è¶uTï[ÍÑq%ùq7á&ÝëèûtGà*× ÷Új°7’�“,³·CIêÕx #léWíIH[þÆÕ6-fª8Íææ©Ÿ'Zóü†¬ƒ‘]äBØÁ@÷ÌO§ÉEƒ^9`—%š³ïc¼‡¹<²êknÆR¯ð›£{‘ˆ·µàþz#É…êÖ�8<áØÄU/SÝåã¶PÊtŒ°vðUi+¤4%!qàþ~õÙØïÁ»ñ"ÇÚ“áãý­Ykø÷߸A€�‚>"¡ÀæT‰\ÊÍüžåQz•F@ª½k¯T2?÷Mée¢YA¹Ó‘>ʋތÔÕòœg"ÛÏÙª›*nMdW…Ï´ßéCÎ>Õ„ÈØ ¼Ù"mÛ¹@ƒð¶-O*‹òÞ$lß+XÁ�Ö¼¨^°sw`ú !'P’³öŠðô-¾ÿѾhKB‚_²B;ä[qB›g¨v¾Ä»”‹K¬¡õÍý@›‰D4Cæ/J»kêþ ‡|CÉ?á*Р¥Ò†)‘¢îéÖÍ[‘(g‚e{,LÒ�‚ ˜^cŒP¤ÿNé�OV+y‡‚¨§lŠ‹VSh©£»Ôõjö8ÆñžŸìÓY’z!´˜&Ñ×Áz÷biš:–™ \ß÷3É/ϲ²B(½É|XEâlº_èß0ˆIŠz/wÏœB´¶#àµ9 á1´�Ày‹ö>4wè¹J‹I±ï”´ ÑNÑC…°†Í1?sƒIµ³ÁàyýŒ.;iù{ü»\1sv�˜µ¿›Ï³þ÷A—±€u�m㕬Àr:…›_ô¶NBœŸf"0@•»çTÂ¥þànŒ(Ë0¦“äGiKfjÎùš3©Å´ëžMïïûì$Ÿ®6»${d-É®¹nR‚ÓLÚ�-ÙUæ1ñŠÒŸCW¯(ÔK¨©ivä´K?@gif0&u…F7Ëz»ÝçVÿ ë•óZ¿˜»áÞ^Ó·%Ž;×Û!¿¯ ñð‰Ê]ôW�[Þeyé¥üÑë» B²S�ÉBÄêBf�‰›"oJãXÌ.$†HßKàQ”lU S QŒ$_ÄÁ$�\‚gZÚ±,ô¯âõ–m^U’‚)ë3"ï¸)%{xÑÈÅ´È(0C¬êÿ¥7‡ œÕß´ŒÑxÝg˜×�Ã'·bcä|Y ” È«BÀm*®²MåŒ~~½Û²F[*JØä€TÕ)L±âùQdã¸ÄWÊߟÚà6 7%(l{ˆ+²¬­¼/\Y¾A6 ù—,$~hi G9€Ÿ7!Z†vepAḛ́‹¿ç7Ĭ›—AÒ�IuÞúû>zH¤×|+©Þ+!Ï«3·ÓRχÛj*ó¦y˜àÉ,^˜ÑšZròÙ ”m¦€µõg¢4+‘J¢C´Õˆ’¨f}a›ä&D4 §¡èŸ·“ƯЬš÷ä£è'ð'PÊ…Äÿä}›º’“J¹œnÐ0OÎ8‰tu¸ÝçæÌ‚à LŒûß"©røZ²Ì"¶â@eÆÙ;pc4­t³¦Éê1Æm¾tÕŸïÏNÂ+öÁ§»ðõ‰Â’�£ÞÛ{Ù­vu{±lØGŸdêÑÓåLú@ú‘.·åP@Œð½ÁØažøVz9—„Eû í‚öWÈýjïìf«Ê‹¤ß„ŒV„¨ëÓC{Cû’ R1fNæ-° Œ�w’‰ë[ö‡“hY¥ÆoxgVk«jnfâ¢*¡àrváÛ’Êno+ISÂÿÜNEã¥rz‹V÷fx…™g«Ì¢ ZSÎ’éD¢DÊwƒ„Ç; ‘»f)ß�U‡ìLÓñ¶yóþ”Físý©�z?Ðs6�Øo‘åbŽöœ'=^çFG¥Rá‡úüº2�÷ÙAAóùFLÜÀ&³¾ tEÛ6‚ÍÇy·5Ð\»·”ÜjZ¤ÂyXÝyÆ2m)ó»ëàTý¡ú.§ÎÂv‚|Îôáê—€Â\À+7š·Œúáù‹«7S=cs×#� ¤z‚vâºðêêé­¬”• ö(Y ·3(Hô‰&^\(žz®¸è\Æ�¬�¼®8v:N í…±Ë�É€áâø/u}e{°¤¹Ëaß]Ó\·#Üèæ3WDÊ9¢ƒ½ ; "ì‚�dèõ bÓîÇž��}hÿè¯�¡&HÒ©5m)ŠKNa?KHãxZpœMôòjtãJ Ö{­»ÎèÓ/c¹æ ‹3]´dù÷µœá•,�p¨Y·nÐ÷<¥usÌ_vŸñ䆃•PUưèÀVœ±óD–­þº}ŒØ¡û°¬žO.ˆÕ%8J º—"Yák¢üPWÍABÈq³T¤U#aµ`SÄá6%~=î~º¹?¼&PÖjeÐNÙ¤u[äçùü³Ó5|Êd�+x‡çn”Øþ‘,’OîËù}ÐN‹iØh5u¶Ê®Ÿ¬eï̇�Ôz,錡é©-wDU»«8�.¿iÊV:{ŠîVÕ¥Á/-�Ò•_s¸‰eŸ”ÊÍäVÉœ]Ñ\öN›ª¹å¬†)]:î¿„9§‹¯¼oh$MÚ=ehóžìXwÛ§,’Ô Å3« 2R›Ùˆ¨,~�öîx•—(òÊ î—h+4=û¶4]7Ýu.Èuþë¨;ô lìÑGõ7iã³ é!*ò“´uó\¦vø[ “­¢~¯2ËH¾·—,ëVJ§àÀ†óMv‰"2ÛdêCÍã1 ØmÔX/5o¼­Ô/ä°"@aÑѵ1„¢x3C�Ð*‚ ew¿�#ªÎÉê‘&ˆ¾;5vÂgÜã�Í(ÊehÕ]˜µo¼™³ŠŒN*i‹¹À2Lšòû!HJ?¶=úÍjïìÔ‰“ ï·©9û%4*èYj%Þî«åwT¨¦6†BJ´œ< 0OT"Ø-ÏÝþø`CPÝ¡Ûü£(ÀÒø„¸­0p¢ã]¨Ÿ.V´óú|̸“R�:Û=×¾ì»+Ö’c‘Ѿ7Z‰~u¤#�¤;6¼;@á§=°MUÔñ�*Y¦"ݾ;±ûÛxÑ×IµsnU41kkôö+îFzNŠ)®4/äƒÁ‹„Ù=Âåt§o‡>Ùt�8 _ž¥T4Eô¿–jŸoµ÷«9™¹Û��+)¢§{ù×lËž;Ç.n Ävq{y¬šŒ®ºŠ(‡{Õ©­§'^Zš(bVЃAÉ1ä÷˲VRS‹„ÞÏÈ¡Å5ÓÕ*µêÑ›¥ð8P@ì|­Œ,}ƒƒÊRŸ³îÓé¯`LDùúUžÊÎß–šçœ2ãWCÕ_�¾GÊžœÐ3ßÏ¥/«p~þt£úß\wÃÖOø„cl4#Êk9ó"ì@Y�·â»:œ&�õ‚Qšx«iI¤D=V ¾j`ÔEòF^»bbNxE˜k'•Û=¿Žn'!á� Q7)ÛÐΠZ‘ÝEü7…Ÿš±;u7+{ÏäS×­MÕ}àt?+÷&™V i$>QÍ,Ì�˜±Ü'^.&þC2’@+jÇ`gT³Øù)BÅ+ï�¾Y� ÇTËÛ¬ïµì¦ ºÝX.7¢fÅ mÇ뢳ÆSå.¡èåP„!€ùÒ¸ê´öJûsÐw‡—O—�1 _IIÒŠ¦DåÓ }�æÔÏ€äÜAÆñÓ&B^]ê½Ê÷ôyÛøœ©’«zýY|‡,Å*Ÿ7Ü©» Ú&Hîç¹ZÉ-ÇJ2iC„†{À†ƒmª€v¾�_å†ôüš˜´bžÚFmm°fB�F†ýïJtÌpðÞ׎2´J52,²‚(‘6>åGWåí!ÁDÏ�å}i±ELG±!ñP²5²™i2‹à÷°| 0-=Ý%GÅ'û[8Ï;/®ËT"ç…9ç>ùœî×Ã@ñ~…Ñ¡d)uqe¨å’•Øé~ß —0.Ä«è’ -2$Ê›ƒk ¦ ÑêU‹¶“hkÐ:ŸÙ²Üºt�‹Œ�¶äåŒ?IâMS"ç [ZBFþ�Þ°]jÙý�Ê<£\æ�áZ8�¨5xG¡ºB,?jÐâ;ÕE�!;+mÑœrJ.­bkŽ¥Ÿœ€g @x)÷czH+ÏŸö^KøËòÔ:N!KVÏW¯ùA=ðÚµc1àŒ ;€ô�6m|Ûð¤Ü_#Ά�?Û‘š^Ä.¸jr¾?)òG¬t-ƒ!á´å0ÝÓÐd9Ú þew'í€w+Ùs F �Ô œ–HvÄDLœ×Þ“©ñ†¸áJ 棛��݆] ²·Wcġ٧ß� �齑YaÄi+c§‚$Á…Ù‚ÅæWiåŽpÛÃ�ÊIx¿fû#°“’©6$BêæªRú`Íü¹ GÒìs‚„œ|Äm, Ð�ÂÞ…•M~½¶ª.ðOt¸¹øö=C›îK5v1ª*±^al7…¢\JeNãé€ý� ôì?˜[)=•‚’ƒ‡Šâ€ñåÛe–wñžpp(…Y¤n2à>SDð%/Ù€@ắ(ý‹æ6<;…âÑfC�x é䋸6¬^ƒ£ªäüA×#>÷¤wÐ[G€�ÍêÏOa�½ôJ |6ŒäJ8º¯•BÉ™Ë.RFÏ¥t,$cåL¹›ø°í3!EmÞ“†]Gåè婉Þê÷¾ÔÔÜ܇Jì6pqÔ¦˜‰�‹m½—Ñé�þmõ÷hõ 9�„†cI^Æ`n¿D®nO†4ü*ª&\vÌ]ÁnÏxœØ)?›œ3'‚b?µ…ÅOžd´}=õÙ›�ÑqÌJûÒ]ÏŒ)gø‚3‘h]–ܯ›÷¾3ÎŒG«¾CnLFÔ»\~í0úª�=çÖè-ºAóìþ®Q·n ú€·ay =oåÇ;IÛž`.á_¡X5Ž­^dæõñµLŒEæïˆ³ÊUv‡Aë2%zòQ`C´Èéªz¬à‹· íÝÄŒX $AJÆ'‹ýBmW±LOÙÕ¤Ðô£9øMþ1=‡W ÈWJ„_Öánüå>åÙžüç36Yáñ+K* Õ†�«àkØÆ`�¹h€ló\¡L¸n“:o€ùVcÍn¶_¬Ü·1¨–}œ‹’í�¼k_íO°òÔËï‘™ ³B‘Ýÿ¢Ö]Ì‹$ˆñ®–¥bOZ”¬{ÔÓIÊ”§ ‰Æ[¶K–¦ÜâüÅ™ÇÆkÔ–Ù^!­ýT£â¦®j’¹VØ{‡CÕónŒË1‡§ÇPiÖ¡èŸæÂ�HTw@ ¢SLDaäßò¹é qû#¥SÞ–Ó²ò)‡ô@»JJÅVs,üŠ9Œ»’ä¤9Q2-B+ôiÁ@ôž.Ž*óòo"Ëáì™Dð×!¶µ¿dG�;söÅ·JB&ã¯Þæ \Û»$;\²µq¬GC,@iaýR¯?×.ã°€‡E¿n$dÞ¾0Ê`3øƒZö1Oƒ`Z1#ĉ1:T‹º.T¹¨g�½'½ô¦ÜÉNÀÜ@@Ž!ý €=ÂxT•Ž»BfM^¬d/$�ØS+¿|]£j(jà'(_ô|TTw- GC ñ’øóôAƹŒtU¨ ÞÅçãû`ŸPõáD¹F â#óìóÞæ._nxzJÐ}sØÂ_Ö™ÔlÊá¶ë ­ÌEt9¶`Ù… Uk £®‡ðy¦êùÐe˜N_QËÃÕ¸§3.ÕÆc="ß‚+@íýOû¯Ÿ´ýkXOÿvò¡ñFs ‘ÝVâDÍ å%”{vú–‚¬óž2€#ãb †46—Ö#„øåÔjÆôú,Š  £ç¦sÄ¿ø7%D^n~Ù†ÌÓXmbr�á¢ùj³núÙ&Â+7š”Ð(wʆ «»$ˆþgèæªS±µ— •룞òÑ+©Iæ.{#ù�ÅhÄ�õ/ju›BMì�Ô:?:Ü/¬¢¨öˆð*¸-!âÔ3§ÞÄ#W“D%j(–(~–ÅUª# �‰ŽÌ ß4Oªš·ÅÔ—N�G»õÎða )¨³Yë°M—’Æ×«_Àa ^8ç<Ó)F(¨�Ñ‘ÊfQT'Á9"‚aH ˆ<·¨µk)sâEÇõ½üìY€]ƒ}÷à`Kî¡|öão:SQTlYë‡)›¼¤O‚�&c7ÓLžäÁÖmŸZ^•«Ö™ÎÁO¢a¿}ì2®M,‹�J-©6u·Ÿ:;°už‡ ~ÍæóSÕTÍ9Ê�m®d«“>ú£›‰ãŠ©k¡Âü×_…Õó›ÆR|Z”‰«z0  þ`†5™`DR<µÛàŽ ç2"j%§‹ZOÕ²Ÿ‚)¤¾¶þ+ÇAŠR úÓJÒŠÕ˜¡Æ¹æÐó»æœA$‹)5$çáçQ÷\jÚ:R‡Ø|Š­PÈdÌx.ù Úò ÜK� ï–x„ËŽlâ¦ÀüM•bn�( *ï|Z{.©j�.c"Êý²™l‘AƒÛ Šz“;küÇÃ�á•!È/÷d¾VÇp´Œ"I¡�ÛZòB†¾Ä½�sñHw!@ª�GÎèú¼n|°sPá>¤�ܦ)ómaÇ6a®Ä1¬ºSm(šË—õ1†Dú†­8ì9ÆHÚ'KxiÚðĚו8W�•³p�¿ˆj/ý”æ.2û½Ô0~¾å ¾û9QÔGJÅW¬gÝ©¾™Ð£·5þÖdÄ[}í"+oätÈp1µÐ�piðª¹3‚f"•h6·�éÀ†CíIÎ%:z÷ó<”Qà1G�rÓöýÕßíªÉ›‘Ÿ¤ËÚ÷F#¥·!CˆnäØxh q=ë$Tgº… ©�§ƒ%F¹Ñž¦-gâ DSÚ#Ì,¼t>„±9šõŠ#0º@:KÞð |ðì«¶SÙDx!¡ŸÀÂpôHz°)P64”ðÙ øŒ1Êçr¼Ÿî°@¿Ë l) ¯ €èD¤¾àËë²EÊa—ë Ÿ2ºq´¤zhosü3˜A@*4Q|Bצ´‘mrvþ¯Ô$Ç<§¯¤ÿ bYO`Ù¸Ãô8<Û ™‘ªÜ0`éªI™ øÈɽ‰[õÅ߈ã íÈ,¦ªý(Õ…d[B†ñ“CLd –}V›;D�˨éãÔ@»Úÿ|zû!’Á¥�@N‹Â¿¡gɱP|ãå7›3�!ªrŠ$½•~–ë¡gX¥K~m2³Žð.0¨ B]ýŒÐS>º1µêV ë�ZkÜÊ‚Éô‹HØ\ðú¼°"~bß9�í¹Ó.Xí=.•zv‹3ìdb¾Ðj‘j§ÒÍ'UbÕ·åä½]Ä«É(öÝSX‰%oëÚv¤¶›´{ÕCEò%±]]!­²T}Û�y5ØîcyEó£Z)ãˆN�ãòýLÊhA nä�Q{:|lhÒYrO~¾�–ŠÃ©Iø›�°žD\ypZ{'Ð8ãÒT~ÙÙÊ¥v“;àú?|t5¥p’X°®QƒË•¿gßö—Â%–?­R(4 UÁ¡”ªk�Lô-·£ŒkÛ`|CK¯|KTâ-°w%– e¶=òñ›HaaGj}Ó}¥Úo,�Ýo¨íÄ)#1Sÿ96—%訖LÀVZ³/Fy¹”&Œ'‡�Ü›¿ÈÕ*Óì*¦AËr8©v•eÀ¶q£žwÁð0/)ýÕ%Âàݯ‰QÃòv–:Çß5ëu tçÄï0âýŠÛÞ é!NAº­ñµëë^Úñ ´`?±Z”4dv[Ä�ìâï^]aÌ*=U]œñW%LAê ‹à…žÄ•¸Ä“ö^û´o67Š“³ìç:u0‹A|: ±D˜›zà{@ q¥Ì<½pÔo܈#™ùµÜ«S"+ÖüÉÑ¿² È ¡[–0WÅ[Õy˪Ÿ@q6$ûiЉ©3šA#Šï ß®UÚi¾¯fZo’�€Zñ™ËµÃ¨K?wbÿL`[ž *XmœµÎpRÚ­?“ÃUMàt=ðýHˆí€6×”þøä×Ôø¡À7¤oñ^Úý”ÔQuï /Èù·€ +�Õj—ZmâDG¼ó˜B�‰LhNø�Ä�,¨])Æ_Vù±­ö2'S&¸Ôç8À:º±4 ¦i�é©82ÄÚ’Ÿ²•ø–giµ3B¯T¶þµÙcíÿúˆ­ Uè‘·Xxæ ˜ú¸HâÑ"«oËCÚwY™KÚ�Ò\‰Í|+ô+öMsõ«ë¹JÔ�“]àn�ŽmöcmœUûáÁ_Íh— ­u}=UÓ!m¼‚FÜ€•b²…žR·“¢²?™4÷mYÕÃu¼•å¥çé:3#L�?u¸ú¸Nœúßê6+�a Y°1p) �fš·c ¡—T VSDöq­îûÖM�§¥•Ä”éjž³Û2qHZ*îPòÛ°n¾„É7 ü�Pò*šÆ÷WqaYÌ™ØÊhÂa�”,‡Û(O'ÖjY :‹½“´/©î× á»±%?ÙÍÿZ§Ý|QŽKó¬ÞñC4/rJ«—Ã}ò}ˆ®Çòßß‘°ZÌ ‚t˜ ÕbíS-Éu«Ð�£Ä@›‰Ó¨Ç ;jÏBÒ[0Ž=½{‡m‹ XÒTë«r8'o㇉ÿ¼måÍí®¨*‹9!�δ\\õª¯f ̼òØ·æ|¥s©ñäÒœ%øÜ¡„H‰ªÄÀÏ–¤mê·±sVÐÞ¨Z18fèã „Æ)hz Ãç7(ÖÙr‹-½ýã�³$<‹…r/žñßYj ˜ ÔøGÅvXÌ|¿ãõ¹<¤åˆ-èF²&„ûk}„ô´wÑÓ5È`%§ß&þ¼Ë*%¬RžØB&#ó¹B¨€2 öîÅéN5’=B¦iR�ížý}`]®ü´ûÃu ø*³š> à&Œz2FHår'Œºl{É ü%qú’üaöHX,GŒeih3àU:w5.æÞAÙ¶Ä [YŸµ��É;?fòm¹wÖÁýæo|‡rXíˆr¸„GXÑÙŠR¶ ‹~ �­ø`Ï뜪gUêÔ¦® ;2Ÿ{÷çyƒÏ(˜îØ{Ç])¥Åª ÕòW|–î�XY6ŸSF´£’RQÀÈa.gUE9ãò‹¡â×Ì,4¡ú¾yÚÕOáQ±­Š}np«Ì�¬"ëZ�î¤Àè%xÖEö¶¸Ó»¯ –EOÖK1E9Êm�N—Õ'™ãV™c™¯e¤ÃK…c ¯»qS{ÒnKtÏ#!{—¤ f•(>ØÒ‰zäY󻔇�£àÌK!ko RRlå�&Öš˜ùcž`'Hͪ´¡=Àèfm`Ԕ܆ÈB-Ås’¼2�»»þz SÄ/ESïBÐ3¹Ñé­÷é];”˜&©£BÞ­²ÄÔíìCÁ-²º„‡èIwÆ{¶’ò�2»U¢Cð^­W¿÷�M#*9ÎìoÉEÙÏ·Hpô—_íÂþØñȸ¸(Aéáó„\ ÿüãZ½ l%6Ö¤‹é€¸QÙÓþdWPœ7­àDjs“ËãçW‡BZm¡Veò„Cw[ê×�Íòýn©Ìd6çŒÎ\1w` y¥¸®å¯s4,'M£Q„ì“ú…С—>áÊgdòW¼ýæenkñ7@5x½�ŬÑ6ë¤Uƒ?¹ ~s�«v/Çzb_Nôv�ë‡ ³juØ“�T½‚šþТ}òµaäß Þb™¨7,\„j§Zxìâ{”7\_ÀùÙhÜ©ç7~åÃ3/�ðjÆ>ÆbñÑñU‡Î…!©ÍÈdêQ…èBçY:l«µ|&½mk=ƒÜ!é8U¸W–¥MχÃUœÑ@kVŽÕ˜ gÒoôEØ|„Àlgž,ܸMp·ÉH!X'3áÈæ8€ÈH*±ÎZHÜèZ �ÀÖÇ¡áÅ…À6›èM¨ °R3¨Ü_½$PuˆeqµèdpíΎ״º¯÷ Ô3—Er�/e1p¤=¢ÒXå³êDŒÞ®)³êø¤`Û¶w Ã×ï”êJŒJåZŠ¿Gs?ݺó@ù³~#ù¸õ ä5ŽÌº€. ®þÒ?òùw hßdàÐRÄ�Ugßͽ¢¡‡­ãÃà„Üv\Ú‚&"¹C¢;¢ 1Iº«šÃD 9¬ZúMå�ÎK¢±¿á“olدÁnîoò ’1×sŒ$ú‡Q„s–$jŸ1b€ÓR»©c°¸5.NydZ® OŠÕ@cÓd7P 4ø…¼¡LÈ—ö(1æCN-ùü®­ •Ìà–Š'E™¼³ÄÖd¯Ó„Wð3ñ9-SÕØêÇJJ{é-Ácñ˜BÏG±Ýær«.Qä‹/Ö°ì|l{V—ߘäV�ì|—)¦ÞµéäÞéïµ#߈n°x§Ã£'TAA˜nvpúÜ!ÔãÞé�$¥ùõw¬Eø™êÝvJ¶ ïǺÛÞG8óàš>$_\ñù`EÌÛĆ콳�[ù¢Ð"öw×5œ�6İÜöxÈ�h_RÆ#ådÙ¬�M=Íi�Õàú—…ö´GþÞ‹A(Vcüîiãð'PØWm˜˜ˆY÷m¼…wþq 'vîõÃsW!Út�…_[ØëÂìÂíøTk‰Ÿ&V§„K,^¦˜¼Ø²üù"Ïã :.Äs5úRö.ºEh5lŸßúL�œæ¢¸!áIÅ›ž+}ò]×MÐý,Vžš e ¥ŒÈzôîs “×vʘ Tz·h­óÆß ‰8¡/ËZg�d¢XÑF€�ïtòDQHäPÖ[I‚ªåd­�~±†9�vÒ¼ á¯×a™•½h�s¡çS£ÙŒŠ0ÿ¸9ì(dx äJl?µ2�—aA·T:ý¾Âþ=í×ÀkâÈÈH«Š½X0f°âo�VŽ­�Åš6£]¦µE�„!»Q‚úéï¹�7烧Ò™;jS�äa3,Mº¬b·§ZÜópYh:� ¦QcXÞ3&^ãš}Òözõ è 2J[W¶ Ö íCÃÓüÙ)8еÄ4çZ®˜k%j 2 ¶!´çÎ'¶�ºp¤ƒ"–b¤ãîÑTÔÈ)híïÕß©¹'£$übˆã­¡–$`„Í[ùª¥¬Ø,cÑ&F“¹Š©Øv*Z0Ê,#�$°½Í3{�MXï¦QBó†*´é�KÓ6OSj¨è�Á§«tPDdJ¡â¼®{(ÃóÒVå8YÇÇ@—A}<Ý-ïÀ«y"ù5Q„¾œè ¾ï…k/YøßÁHö«ƒí}ôþ$´×SkDQó$öDêò7ß’ÉßDhíµ[çI#»úÛC°ébácƒVz€ÂYL ì,8Áô[kIc1Æ”~×ϪÇÎ ÝåÇuM\*Ñ�þÙ‹Ü©Ž¯î?84{žÐÝJ� σÜP*Ï¢ÁŒs»zg6äWz!ºÇd°ø¬ê�w™B!G*ºäXX@�‘šÓ›†± \<ò@bŠ?ö‚m SW“– j.E¼>´4/“ˆBÍ“J—‘‰B\sD›‚®ð;shb¹nKˆáí6»¸5m1¸€ áÇß ˆr7áþ«ÀÏrÆU«^âö‘ÌjMÇwà;½”Hì—û“f¡!‹Õ±Û,Akö¨¹eI§.[ÚX€nþ_üôýuéùù„V£‚£qNø�ª/‹ëÁjª�Î÷úÓ¾·DÊÈC)¢æ¤òlKÄØÎŠ±j¬ïøzM8ò±Û·XŽ?×Fg2‡[øS¹fdA¯Wgü¥Iy;±yž”²Î*´EH–§²ë5æc?s´}IÝ)`†áç ºÞ½©0&oòòA7$—'ZÎ$î¶Û©Æ<§t‘W2¯(¥à‚ËÓo¯5å‘­Z|Òý-€h,Æaéèfj»ŠÏ .bm/6ùí½\ÒLówEŒcS–û'ÎÌú�¡Wd9…pôFû ð-9¶Òûöe‹äUdìéž &ÌOÎñ÷ÔÀbå6C¬µÑ'¢d(@¢#WÓY¹Àb’Ñûœ(¥ ã*ê'Û~ãS£aÙ¸m¤;µW4y¹¶47»a›;¨‹xe_lÐjuÈk¼eLšpÚ6—ëɽÕlÉ{—ƒ~ºˆR“l©om-£*¬r‰ÑúHãM,¯Xø­ÿöŒ$”!tŸ¢0çªHLÒzûÝ›7ŒE+ˆºÀSqߪiËÈX©ëŽÁ[Ýd®«¹½9cìÚÉðŒ&?߇Ƃ…6 ÐüSÖÑÙ+Nh¹0»…ÓØgÃc°Ç“Ôœï9q¦⮲R]m[ȯ8Ä}jÞRÒ«ÐiÅ-!\ÿ£<Žj´Š½”@}ˆ'àZ€ôBM÷™žÐân@tƒ~q2˜�¸P™|»ü*& QFU)‰T±Yã�UeÑ?_"›¨$¸Kë9C­/‹D;nŽãj&Ùç­ Èß4$³?ßó8℟‰l[í–ÀiœóÔURI¢²á+´j&~‚T¯ ?ÐüœáÏ�ch¯sòáY@Qöïžs„ÝÌþN…fÃþvǦÝ~2¥꛼/LÏÇ�¹åøø_æ0Æm�q<¶ëÜf>nIÈì)žÓj3®½*Ê=£/êÊ©ŸB"ÿÉîH ½1‘9›ñªhT‘¿æB‹ oÓg&ж^­ÑJ‡«6úÎr5ø�—E¶ßê"úéÂJ‹Õn’ëý ë�25™ÑCÀçp¥1�”^íƒMçìIS´9Îõž|Z8—#WH4°áOLíÕþÎä�Ê+¹ÞC}"ºÑˆSxª}Û<�¢Á—Á~¹Ì³z/‘WZ÷®šâWn´(îÌȚߨ)Í©lï»L±fåð©ÿËí£½z \O n¶P™áõ÷žÓ‘«ÝŽÄ"¥•û§K©¬MIè€@ÊNÍY/ÿR!»R~[t,Ù>¥lÎ`#æ©Ü:-^­5ý£v< F°þ÷�žsfKÓŽ úýèÿ±Ì‹ÕŒ3/2w©E •¹*…%|tµ äo × *’pA6KîM¬]kïSØø ݶÚng¿x ÀR×$Ð 5‹e·Œi’à€` ×#ý>€›—­³Õ|íBqà¥Q›(·?RaŒ|k(lF¦êÂìEkRK¨aV•Ž‘N‡ÀH~âÐoÜ«‡ZG{ÿdœãv,@üC@~�¿6nÓÿì¸WÙuŠéÿP¼¢Vþ5Aª©ñ¨Ë:�-áØU¯N: $¯8ýM·Ðƒ_�rv¶µXi‰Ïc¨l·®ÔëÀb�9\P# ì¶ß¡e%ªt™|î»ê•km)ûºlpÍg¡4Öâ�t,ëž‘¨R[ž€�HöÄ(':®v (P¨x°_äÝ࢔[lààtû3Hƒ‚MÞ¹Û%Û‚·&�hBð»€nÃD¶šD½& �/É%�vÌâê*ºU ‰G™Œœûxf§$¼¬x+Ý#´ûÂõº#Ž®Jò^¸}Ù¥dè*¦o÷G3¶‚¬.£�h”€s;fþïDÙF2¢[…ºÔbãœë&œY6à`‚õ-H§á¨’*J�„Ñv|° ߨŒFtO l­°ª·„¼Mb6ë=šuQ[üz0jO7ÿ¡XsÁ^‰cw&àÄbŽï÷™¡óíüËHà9év 9yF^hK*º¨u¸ýq"¡Cr1›’°Ñ3Àw‰gÇßÝ£ ö�÷LÛ˜ar†‹²ÆO¢æ«a)p]˜¥Ûcsünkpy+¯™ÿŸÎg»GuÂà'#Žbg´2}醀’Ö([õañ´Ó�CøÆËšp•†á ™WÁÚW9B‘l+ÃúÚ¿‡œ£Î1ÿ¸j�/&ä\š½“pó/mßš5-LÑöNîH«Op­¹�‰”¡>ÙˆýbÖ·¨¼5—¸r®¸!âIW<­�wb#ön£N6xµhúétDê¨e^_ò:Á¯æµÝŒŒÜÉ36¯g´‹›Ìž=éöÌÖTå,”f 8h<•§·‚{+`Ç‘L¤õ@q%± >ÈïB²ð�EäÆê�ÇÄNa¯k]÷ Xe-pMdäHöŒÏš Ö³I®‰ÝêlA´âÂÉ~áo|Ü:‘¿‰ïÈôcÃVHáõ±g O~ZÈÞ�@3£±>FU ÊÝÍ-ãWÈŒfªaÔBGó2¿+Òûd‚Ówï<ƒ°ßö9ÿúÜÙÝþ©/<Jåöy¢:Ü,oŠ­?ýã°ë ü8€ëlÆMº@¼V3ô]'iK擜Ê+¿À2”ã×µ~E¢PŵÖ-HÿyKÙÈ Ìÿ{õ�yuÜB”L�£P“=% U‡bèæW8aW‡Ð’Ô|˜qœ¥Kí€mèÁ•öuûTž1V‘ôŽJÆ~8<N?)Pp.É€vpµUIæS ƒ˜ñËÊÂóžþ¬ys¨¤u.¬o5œ§°O ƒù'8] ­ó‘îkýðžzbÃ2·Gwp�_ÂäT#·é/�H×JDMÕPÉÏ«ÌýE#_B“Œ ;رxó.›2ÐÿÖLϽ­^g©¬u?]Ä :ñlÅu‰‰ÑæÚÉ%�!g]IÓçâ;¡&l˜}§.mú/Žñ¬ ÔßYE³2Æå3 à\̶ô°‹N«>&áal‘�áÕ¹„�]ŸH”O £Zœ�V��l�¦‰Áå¬ý�°�›.&Èææ;Ï4¿ —ÇÄ T6£—e3|>•™áCø*òˆ¤“åƒWŽŸEõ9_/�è×HüLv—`Ë……Ÿêo·h8”ø˜cU¢A´È!ÉvVM!‡Á!«äŸ·7;¢ É ³g´×ŸùØÆQN^ü¶£ó'p7<~Sb· Záà �AÜn 4¬�évhwo=BÛw‰ÂYž/¨gÒK�rí$¥$=ÈÓaãšÓ±è›ØÔÌe}¡ÎL¯Æ³À¨k…Ò¹¯_r^é nGtwòʺPXñð=k¬ÓË÷ßqÎp “¥ÙnNlÔì „n†j"%{ø¦¾�·øŒ¿¥RDtSÅ¡¥N¹í¡7Ð(̬ÅqÔ>Ø8ÅÔme!¶ˆÏƒá/ÅV//âM…UL*pE‚z"� ¨èñªÿK×°Ä"S˜ºFp QLªaøÞŠÐh �¢±Œtó N—Ö�_¸ºñ�ûKÁ§;wýGÆé-«qGÜ5¿Pò Í[ÑßÕ¤o¦Ò�’·¼|I+Y]YöoR>�·™è?ƒâž†ö¡Ó¶£Är§t#þߥË0´$õ5•`ŸÙ#yÛ%‹äN›wjYòÖ�×;§~-­CùæP)èÏ(Á†�ú¼yή¹8ìAX_õ$V9þ€øL.•óïYuÃÉÓ65¯ž‹OXº> u,ÄDõšçšR�Ðï¶`*rf‚B/-²ÞÚçŒèKÔÏòûûÄņÝGhºB�I=;�`¹r¹Lê¼"·ªMþRù»8´ûÛ®–’éî™. <ù½¾ºC±Ñ‡ðÈØŸ©noâòÀý²ì!��d£±Õ•B, óò|~èS§_­¼òÙ%¸‹p®ƒûM¹h»yËO�ä¹µŒ¶á—‚ bxƒª$ þ}ZdIwN?„XæðTJ× ß'a.ôÄ.k™U÷}ûåºÚ0àQ�fÊôœÂ=üõJá9j>ÅÌmÝ÷ °±ø^®¬†lýmF´k˜™Ï]]|”çÑ;’ZeûÔßs9nOF>UìŒÍl {Pƒ…Ç ¾å»ã0œ8MËê“@ë�eÇ3Û5¸>4ßÇÓž ýµ~ôåÿ a-–Û—^KeØ™ºÈ‚\Ôñ–(eŽ©¤*Ê3„mi*‹$ÌAi°Û² Ý“ÂA¡¤1ݳ�´øœGX:MrL“ #kÑøˆ-Lm† õjŸºF„š2ÇlS z^”¯G Äå hsÜ+ç<¸ywÀÎÃà"“·Pmp§8¶‡*ûÜ ÔǘOŒ#—=‘s{¼¼TÂù8GNYÙf9tRM§þZQæ]Ü»Ϧ|44 „Íî“=ÁB§IcUÛdåÁðÄ�uþ<ûoö¦Àpµé Z‚γéVAºYyY<ž~©Y£Ê2«Ùóþ¤·“:ÀõŽãò5€¹ÑhKˆ:‚p1#)ìm¤Ì±Ž”ˆQñ|ý�Hú``¢ºôV•WïâT�_«‰ ¬%Ñצ’ú ‘b¿pÒÍ’*f «œ/!]-µÂ 'Keù¼�6Å XÐæpÝØ÷ÑbQWª.ˆšÌð(/GʳSŒ0ûüèkšâ”ŽÞˆwK´v¨í_žR®63eB½”;©Yš¯Ä‚ý?¡Ë,öÉ ÄŸ˜$½Øo®î‡^(§.„“h¥%dNãê£ÙÑn`ÑYºFðš×œºŸ ¹¥ €P�ò+÷qÌø"ó*Õ`…h®M[w_î)G?¶]훦ç>-µ­;ü"bJ­yöŸfXW'S«YòÜ¿(àÊÖ2b y͈�I^')¯™_U}úî¤�Û¿üòA-¶}&ס1¯Â4ò5M° ±…{Œ�´Šî…X8l†æTY†ç…PŽ‘ý07òÈò { ‰†5ø:êO&JŠ%ïݰwß"\Gs2®ñÍMû*’“ŽbŸg«xÆy=åVöÈÂÛ|n¤^-ŽSèØžÜaЗY[�"Væk¦1WÕ G‘=Âr¹šŽ×£®œ™>׳k‰™’Øã1Y?åžÔÖœq¨¼&?Yuåã‹¿ªOo]ß’MiæÀ§L¯'PÜãóò@¹lþ@®¾›¿IZc’àÔ0ʸbx3ÖTÞÝ&A�f;”߃8v ƒ<E¯Ld¬n+¤gË¿B”ó²*јì­Ȉ`¹ÚéVüQ´XÒaH…"©¦#”b‚ŽuÕNÀº2bÊ ¬=÷j)çA€ñªmMV8ú·‘ ë‚!P6û iÙN…·žyŒtE#Ÿ… ` ëÜ|ZC‚@–i‡Æ‚‰<€¼ÚÇÃê¸ T¤$Z/ç™×3d\ίUqä4m߈m0Í£©rûñåœK7•^1)mš{›)þ²ê²í¼Ã\ÌVK•­üQ«ã¸PSÚ <׉Eœl^Íêàè0yXžž[Š!ÕܶòÝôÂÔÈQeºAq¦|�œÆ¥T˜þ5·Ë8ÀVV„ôxÉqDŽç ï�1¸{I:“´ˆS€é[|‚öÁ%ª-5ô•C0‹–ûHW½UW?8kèO w`¦j¥|’ŠüHËA¤«&¡�ž{ÿ�¤Pz0ÓšÖïéù"ib™Ö#.è.õ>]ÌгiSàr!Ùz#Â�ñ‹w©”ÃÒl~°Zv‡°[µö×D[|q%‡Š@„–·�UX”Ññé,˜4…N [¬Ÿ$ÿiZS`ï Ÿáüå‰39÷ýÞÕ!)­~ìûDÍÕÞÒºé•~²@˜ÙÔÍ!w¤•ú…š¶×ÈÚØ¡ÆÝŠy‹{^,£åAlþu¡|6Ó•íâÉ×\Ìý›%{Rÿþaæbt‚V³®8À<öLzLSˆêülÚâ¾$,h.ÌU?Áœ¶“FÉS„ ^g4 –^¡Š{ΈOBŒÝöœ¬Z«1[»Ò&¨åXpm¸‹âàØ î>4Õn#sóVº�rx`+«ûäxŠ\ðøE'ŠˆÅ=v›7€€´‡:ÆŸß-ªÔk?•W,G�Øã›ªx?´rGç¬Õ¥ârêqC$¯Û$òt íS4Sú~°“וG¶w»}_³2’ÐÕãé¥ †‚¶´'ÇêD­øîAå¬;Ýë# ac]igëd›aMD…ÐòtŒ�mø~L­¢¥àErž2¬À.\�{1š\ÎîœgíÆ ù[;Ý"·2YÓ´L¨ˆÝâq\tPݤ–q—C8çbáL;MßoÕ›U‘ü<¦³�Ö,ÆÚtå7S,¼~±Q¢CGŸz(…] ÅG[q ¬ïË·¿} 2f!ŒäX rÔŠÞR´•ß»êB° ¿BŠß¥³<&üˆHý‡ìíÁm6ÍÞyÌS[�ANä�}‡I^’'Uè¦QxT®O¥ê’‚2–}mº7YK-8³ш$˜¦ÖÐû™ñÖ�à¶ÞSXt“¼"½Y(BÑ^$¥7@ß/±íˆBú·ºvðãvöÈ^©3ÅÃ,ñ!_ÓøÂtÁãyOyÙ…š5æ4oö¥(Æ!Ò¤Ô‡kyœH+ÏQS2pøÑ¿é ¥ª(f(�C–-œºUÃc¦AØÀlUT|PEpêljì}kü YzN9 `þ2Mâµo-5xÂgt…ï4méïÀ׈]aF¸ŒìT=£Ìø7§À®ê#ªU”Bž¯ì>.ù¢X\“~¿Ý¸áé!^‡@»óm€y�Jôdy¹•¾×±:²^gb¢·^šWé…OÍ·;½k¿­Ò“ÁàÎ:W„‡Uay‰QÒ¦)ŸX̾ð´$Gëyw“B,ãÖŠÈnn¤ÕŠ>$»(^ /�Jг¬òeì°úþ¹û×¶R6ÆÒÛT_«åÀæÒwÙµ�¿¶S£ë>¸…i„ôè=2!kï½Ü†è£â¡üp�Ÿž•‰Ú¯éCë¤8ni ‰ÒéÃõŽæZÒ�š¿hªÍaØo} a´×NCI�WÏ«Z[¦ºm@&@> [ÆO��"-¡£l[éÖ 1ÆâÁ„»%õÐzá°£ï¨Zç�‹~5Ô”kÕ,Q'`CÊJv°ñNç—nùkÅENaù{QKgÕí´:s¹˜7\‚5<ùÚž9àQÈ á=§j²To.‚±sSzâÆj„aå§•úÏ š=öíÊO*¬Ì?Qû¹]]Ñ6Ø�þîDñ_¿_mŒ;Å ð�¿!5C‡xL¥×w0{ßÂ"äŠi»zL�·8ÊR~œbT!6aFƒoÀª^vrç:̺xbÄùM½©P¾'Ûg»¹Ó?dE}Ìï¡·RicdÂ_¡èOzN·a¶‰NÑ´Òý†‚‚¢öáþö(0tþT?®Éièbp¾ó›,¦‰žóx=è²`.gYïÅÛW8$j‚ŸW7Q¢‚·×“ráeö_¾çÆo¬Rû�â_æ’67Ñs˜…ù¶­þ§<©ŒÏ–þ 凉lzI¾ìÈî!å*¿Žñðk‹ Óoo) {;Œþêt�1·Èó­Ÿ%t¤7ʰu•㩃XŒ"Ü‘e –±:û_~œž=޶éx±üÇ6ýóüÝC^–)\ÝqJ КQؘjÓ¾ m}ßú ÁÖÎ ò·h hü’‘?pj�ƒÏQ€*¼À+À•(í`&J,ËëA£&óÈÏ8Y~t`ìÎEbYÁc,ç�BJï•WP­N‰Nûë¨ãJ Vhk{¶·ºð•©OóÄγŸÞ¨£@ÍŸV>‡-=]z ¾{² ª×°eeìÚr[ìׄÌÌvŸV[z¹]O ëKXÜ ¯ äÿ’Ø÷8ª²YH¿ 0ŒÕD„ÎüD8¶ÒdÔsU2jÆn‘·í–úÖéCʬuTø~!FhnèâNY¤¼Ÿ¹r�\k”8Ú–Ì™pK_w€ëð~;Óƒ�}sb¤lSš2G�òYÚ:9âr ù*Õ[FÛÍ;9¦¡wü•�°$à˜ßú’¹ïm>}_¨Ü3v•ƒü$ÈT‚:YìŒÇÔÿzEùÇ-Ò‘M-IÎ Ý ×ƒ½ ó7úËôב BøNÒŸ/“ÙYà ZKVôáœy…VÏûÅÙ•Q�Ø�¸‘z6ØBYXC4™lCpë×xáE4kåš³\Â}þFǯÂL;×A±èÌäÑߪôáÿe—˜J=`’˜ß$@Ž((VÊÒ©‰áèÇCµ€…{/9sB¥Ã¸SýKnÐ×EêÃÓ‘w fW°�tiðœ´)*¤˜^ßõ½«]ÿ§šü™ú�ÊR}'|·&#_w'wOTíWíÿ&H¡?§˜åRmyür‡Äh.ÖE ô†T¥¿Õµ;ΫéËîñ%ýý×}Šjê¡í¦9òæÎ1¾ºa>ö¡w^!Ëý/‹¬ªC®›’סËÚHYHQÐ� L8‡*©¤8Ú yL0öåPÅ:4caíûöˆ€E)ÂãuÓ¨š¨a‰†Ç¬7¢ŸSþ,®âá^{Æ"¼…NoLƒ ùÑãñ &å3 ¼wŠ²Ùºúw…]òmÉí½æCðŠ˜C°¡³¿9ÃIcLÖZ`™hE�”÷ã«ûþ�¸ùœÓ²™Œ0äB1a×#’ú¾?<ÝØ" ˆœô— Þ;è ÞÝxºkø?�¢=…d"ÔÆÍQ¿‚ÏlY¸Lsp£a‡ ÝÚyxü.üBö­�KàtiœŠÛ¥qY¦#õ¬¸ÝM¸=uó@:0øÄ„7d¼åëU-C§âa]ÞXaAôWˆ—H°nǦQ×_ÌÆýò9H°W4ãwäŸ:Þ)ÃGruÄßJAÙüacD¼Ú¸‹LñuõE’T(o¼zp/l»Ô ÷zjšY° QM%„oN0hFÓöºTk,(² ŸÀÎÀ$±ŒÎnËððÅÊóš�ID[[…²„sä ëèurÖ6=ö¢ð‡a ›ðϺ70IÖ¡ ‘ú_ Õ<&h�ë›E,?¼œBËõ/‹]U:K‘ºX6~ÚÎSŒÝÏ:kgö�víÊ[• r,ÙA+„ÝÖmp:”ÕÚ»dÓ/Ù©:ŠïìùrC·¢�¼ppƒ¿ÔD¹{á\C±Ü蕯‰¡¶¯YÔõ°5zâFÈW4Kž)¼“dRެj/¯v¿ðŠ1á'#%Òä~Mc—8¹¨Ø¸‹SÎÉŠÏÜÚTÌs·`�Ð\âºi;Æ¡hÑò[ŠØÈ”ˆ‡IßÞš­ªëð [8Xœ)‡V ã2bV 5¥•q·Ö‡£ÿ*-7öD´Ì¹E‘úo ñ®÷ #—8 þ‚ÝâHÕ¨ª”w…P*7DË#›¡†^Ø–w„¹Â«:IšvŸËšõ õ‰ä�^(È�f‰Xì6tk-JQŸ�¤5ù5FÙ¼+/˜"]6Þ4” n‰˜«8n6™¡§ej÷:êÐc7¡à?±ûmòu)¾„žÒU¤Î E{ÙV5P$Ð98-§êWÐøœ‰©ö2¬;‘‰3�ø,*]b îLAä² ¯¨j@ó�RyIQ]{“®#¹’„?%@ yDÇò¦-_ƒ*Gå˜qÓXƱTÌÙ呺«obëöI;6£=I»m,äo"´EFÊpi¢øÑì5è‘)ãoÝþ:~ó¤µ×JkºcÈkÿ±]Ý—ÊÝ).•ã%['ŠoàÌ�» •<‰Âõ%Ilw‚ð? •�sÖå®ÉN2ôÐgio;ç˜n‰7Âß·–.Kýt S =Xƹ°]U²V¼Sa«˜ÛavôZ!LÙ¯„*�ãxÔ„z¥ö«}tÉ=µ‚'ÿˆi1 VȵwPZfs‡Ý­ewF.yÅv“’ôtV’©ÀŽp6NžS™?™*Õ$׿ÃýÒ—g¸Eˆ—Õ{ÚYËrÀþ%™U>±!S^ùQæ­œF]˜ìØQÆÕ\¯ù¥ᣠZŠ8¹³RBt–†¸¾²wï©foxJS”°Xàu>�¶×»V—¼Êtü�LÃr¦TžýûS¸ÜâH±Wh„¸ø\£¯ü¢f¤(BܤÞ(Ì™þQt;ý_ÊåÚ=I!pe¦0�¸Õí p F â.ƒò]Ê_ý*¯“Ü&C Ÿ?Ãâ{aA8fœç‡#¨¦¶Öý×òÛ«XTÁ|`…²¤C¹‡�×pH‚1éÃÎùD¤3yBz™õ·•39¹J÷åBüÕr|0ëï%?ƒÝ 56?R,´’g,ØÓÀÐÔ Œ¿´Um¥æÖV_¤¬ùŠC"SÀÍh,Hxv>Òrßoʯëж$�ã|\û̃ÓÿzKGLDÕ\Z;¡'ÍJgP÷²6ý6У¯5”™+ü5umDtZ ¡î¥ ßýZEälaÆ‹ûþµžª*²¥E¨a*$NðÇÇÂ5ñ!L™"÷Çgþ¡R Ó °Y ÿαp¼«I(´€Ì©Ý šw37}QyÛÎeôC+¦Œ®ñ8ã Ú*k[R¿[}#�"Ùr³Užfµ‚–Žå«íà ¬àfÂlØOÇËÄ^Á™F«å ¥2>Úx8©Z–U)¸�ã¼ :ÏDPæXöEk­¹øY…@šçãwZ­âûWÉ];‰”hüf Ê�VÛ·Ð/;*ÌAƒu¸V‰ð€âwø8c'©õn€ä†|ž¦ I}Õ)´WDíFôûÕëeç;)¶:Hòò«»Bu‡‰‡½„¡½å!1¯g x0aÚ¨-Ú8%®ºè^Ñ�Ëi^Ö7à˜u)§Óðáó…ðæR¦p÷T+Õ®”Àø‰ã¹Ãì$l$—Æ*኎‰B#óK�—`L|%]µ‡œòS0껊®2í €»ך—–h†jíé^¯CpŽ­_^cþ5“çÂ.£œ¼oEy&«3*&F[Ö¿hgøFÓ¯ƒRpi#T„f­X,ùÔJ�Öž>ÄšlŸ¿º@æÍVøîR�ƒ)‰D&ú¢üGG:<þrþ÷èft™þ®”F,Ö�Ö/—‘Ñ5'«.7¯Êbø5aÜQh¹ÞÉCÏiUw8ƒAؘAÌ!Qòô²§a¾aauÊ&#y£s;7ïÒA±‘ª&=­iÒJèí4ój<;Îê_»ýe>nò k•�è�]-¢TÂO¸\¿ˆ“þ‘,§ÝÌá6¼ÛÒŽ ÚÓ#& S˜Nd"¡v Ž�׳HÛM2<åÛïű‰ÚÔ“¹Õå`.Õˆ©uå9u£Øœþ †I`Ïp€1�R|Êš3+E^DùƒH?ÐD�%A)†è¡íÝiœòÁ;¡I·ÖK“ÎsJµ‘Dç>"Ÿ¬ªidzŽ©$§µÚü[ö ‘º;ÓÚx]›Z]Œƒ˜Hî¿?ÈYÏtÉív¥ =�f7fƒ$vƒËOlò“™ˆÈ*�Ùô>ð$'wÅà™ ¬Èi™6Hx7‚÷eÁœÊ˱eÍÍß‹K—ÔyºŽ5ݤðˆT-‰»}•¯§ ´�'¸vhÅnyäc)aƒNÃ.|a×ê@¹,§çoííÔì]’&Є‹L¯ò×Áð©AfÝ1BÃTÁ…hY:>%.(éÁ­D¬*�\ÖÁe°Ü™Y›St<Τo•˜Q)å­,_k ,Q€ËF›3y�„G©Ó;š›ÔáüÕIc7?€5·´f8Jl†Ž:'çXG€={<¨æOáïïj݈àž\–eÀ1„�£>²T“ûL3z"Ocà Õ¦ò�~l{3¦±ÁËèþ�œ'»h4c”‰:‘óçL�ï´ ì°ù)áïÓFˆ¸v) “ÒâãN\{ßn“zFOE0qY <ÂÊê·+’ÇD€”‹Ögýaø†SŠþ‹ÚŸÍ»[~¯A¡ºôã¦ÞCX¼]Ö9a àŽŸn²¼é{^ÇŸ,¯ÔÖ¹ >0ØéˆFú[he^$Ò<1h"•îc âýÏK_Ýòû+ªeSfË¿>iE»ùC€«ˆÝãĆ=|ágý×oYŽƒ—bQèçÚ;}å~óÐ> 0r¸€7E¯ Q•Åé[r3ròÊ&æ6U!Ì(Âa_í3+û,?�+ 9àf?޼Õd~�‡SåöÍ{εÝí'-OM" HS"ÂÒ�P¼àÊr×ÿ…Ÿ&†IDá¼;E·ßD¦HZö-™ ’6n~½#Éš–e$´Cò_¼7þ¯@äÜ8)Ð÷<;ÖY-Á°«~Q¬5ò?„9ˆ¯",¦¹(¥Y–Ýê¨ß×T +T´y/ �xZ‚ýWšA7M1xÍM‹×�û;(…ø>ÓTgá—\o²Cm"Y±=‘tÆO¸¯¢‡ÐKŽ«NmêZ'úzm¢tMø=wÂ.·úF@-6Òé�>ë’ÀǪ3nE”…ûÌò²ïVô¯"HaU2ÈCÿñ�>çÙPþ"¬„'„¡ÿõj¾O•ÎCgh©uƒž¿/»ÝºÈK>Ëßj¼q¨õ b)µ' ÂÇg¢da}m[%§2´ñ²a  3åyá|ıƙ¨’„D{& aõ%;pÊÖk sÙu°hÒ�Çññ…¼  ûmåçÜvbd*TÁ=[¬d±àW‹RêÁë|B{HôIœaR`î©7‘ ŒÒü³sšïÔ”™Jà0jÔŸçQ.·e^3›ŽÃ3äc< Pëa=:MDœÌÞÏ^î­Ö×Â:ÃŽ~b޲¤ úb%Âh&2I¼ä®ë²¶"RŒyäЗDé I•îA]¢’·ºf¬0]Ç‚fQˆÍ©,ˆæØ‘º�õFFA5(Õžÿ1•ƒò™v¦²ô{®#Ïë:C€×ÌÚÔ>¬w„äÈJt¾šò?‡o*/HÊfĤLãÔ?GÞßÇ‚‹Å·Åš¶¹Í¬lšÂlé¥úÀè;!ØÏYŠßo1à(‹öä9ã«GÒè|g].¥�Ã\�£r�¹Ê1mÇn{¸�v« $Í€l2€“ˆéòÓ'AzQÂWääBâ–ª·˜j½{·$~õ«8¸žU4I†¨=íõõ4[ŠñÖ1Þ #Km«Àc“˜W:€Þ O±Þ¼@ä¾ð~T ÆP.ÿ`�·F&2 ¼;¨uÁ¡ƒÈ´ýI\¡Ì軞Ua9ÎJ‚Jõh˜6ÌÄkØë¼Ò)crðÝ a Þ‚ñßU:§·ŒžrèhÞ$0¦ ÐvC‘/Ñ™®ß‡YÖ¡X¼ˆE'£ST�MPÁ‘ yz~ŠÐËŸÃÔnÑ8‘ähŠ4ØåÄ”ŠÝmŒÝØA4‡ý/y[¤„ cß·Æè1ÀVý秆n'ËGÖ}—]ÕRVyküÂvžT ²÷¦ø4Õѵ­Ë9ئ„,wÕã¤y¶ø–ðý}»ˆ±ë®]c™‹ô #tPPžô@óvÞÈùKB:´Ì± ’ŽÝ€Î¬ÞÓ¼à‹¾ctÆøò;��Bîl,ý'§Álåy¾ŸÁÞK#4�aÏ©‰Î.+5ºntòSî%)‡‹~#%�ðôé%�†\‚�¨MnK_Ôíteå›S¤n׆†v¶��Õ"2:]v·¼¯}m©”‚º€È¼ñM£bãcyS¿å{4´Îx¢k”ÓÿÜ)©vì[ ¯iÈ&€¿YöP" ´¯‚�Ø—ð’#Û®Cµ‰å�Ùc’rÀñÐÄÞï† y¸�Ú½!¥Üø›,©"@ ˆ1­Å¶?Ú-,iR»� ‘Þ£«ÿÕ$‚°ÊLC´3GÙpÂ+Ö¹E"¹ê:Œâþç7Š´ê;D-âÓŠ~±IÛ˜ Š^s„î jø†/Ä�É]j†ãN&"‘·¸ÚC ‡¢Œ,•(DÑßÞip°“k.¹ «d²™5/æ„@-È%öÀŸ{õ¸~¥U_KÄÙüÌm=ðïqƒ•„fGu•êýU؃僰çeUU²èBr q2u‚Ça$mµ1œÓN%Æ5š �“=°A·È±“¶_í7ÚÎÿVØ Ô¤Þ3Í•t‹7³2dWÑ›ŠèTÞØQ¬¼5kSŒõ¤²Eó­Xo7ÅÙ"Ûz›­6·œ/‰Ç5 …Ëå¥Ý§Ÿ~ÿîl5zcä€QÝq¼ àe¯×šÿP¹ßû’+ÄWa9œ0Û¼‹LÃúK¹ð™±Ø±` ²¹dN6Aì95ÉßôÁU•ó—Q5Mv‘á¯Iµ›!1öj�ü• D´ãsèOuF“�Ëß …,¶SlkÎðm ø'[ —¬¶5¥ËKn�.Öuß„wh“Šj˜Ð½ þ‚�<’%�\ÄèœhQ9Ób]º‚ÛñóÍå lð Iü��Zd�ä½t ÏpM<Ä2´¼š¥£a*ÛuµH÷_RÅb­‘6-ÈÚÇJ\ðö¤å(‡­š¼È™/m�9ñ”�Ø�DÉOÓ ×ñ€óf°Ù´W2²eÄ´�³ I>ù‚ðó}á ‹ÌÕb?ý–Ê%Íré)ÙÅ®j%pù£$å±—NÇ»Ío˜*±x¬Ži´à‹ª´gÉòœA‹ŽÒGÊ•¦¦¢m=„tL²SÙ¥…>f•^+F±•”õ�Ý0ñh"÷Â^à*§®òˆ¦×å@Ú›²â¿-kív¢ÇíÍ@Î:¡óƒ- ±ð}—h'PMd-ºiKÙOö _š 29“KÏ0æ¸];§u¦uUÁÐ ¦¬L`Ô]5Ÿ\|V��‘Í�¹]üC“ü)æqÈ.‘úÓ0Ud­KØTÍåµ!Ú -£­ èËç¼Äsß|¨1‡™ë�ÉÝáµý:í¤Iz§x>.ääü£c9`“ñ]ìļ¯ƒÞÆŽË†ïʇ{KèçиÇQ¿‹%xÖêMt=¡Q¡|\Ú©E~»%”Þ#¤-/:mù-÷C ’ë„û�öèLò‘x¹³ ¾4Sœ£ßÄŽ�«ÓGîhÀ§ì~ppêVñå»ã@CùÎÅ/¬xF•JW³` rtF¤ÆKXöTk ¦NZÀ^aÏÙ!™ÄYFS��¶ù§Ìëa#�`-é£î1ü9ÒFÆÌ�Ј�ÓP‰e ‹†�¢¿>_w5ú.·Å‡C�ß‹¡ˆU‘ÎþÍVû DÐ]ËJCý~«=‚ö4 {»±N ¯IýÛ‹ÔOº^·À­Àpî.€:r*ÁöÁ/&c±J+p#íXšðSvÎmèn{± –ýÐ�%rõýbG/s†Lö²q€¹¿አÖ�\U Ì~ürÂÝß!ô‹~×’°‰ðý ÃQ)B†‘HŸ8Œí×ÌݸTîÜëЬX;ÜÏ¥^ÿ6Ë1“>ÑPäPÜ¥jठ¸H…¡¾›3€«ÑŽfü…XX*­4¯;¾1£Íóß]]À”úWófæsî‘/Š›®ªX;šÂáhÞÌÒ6ÒÖ�ìl×=?]Ƶ£¤mË´'Ó©Ò^Éì}ú ªÇ∤<;~ôžÃ}Ø•l¶.L<J"ëéP†?Œ*®Gl”$÷l.Ô·:¿‚f+…AÕ°>—Æ5@?§G:™~JmËG»}§V`$��Çíà/ãÜxu¥˜Ó©‚íè倖mhÏÓg�ôíÁœ²¶gÝiØ�åñ²Ü;œ!áÈo~ðÔ'PB:žÏK‹D´%A¨·%⃠'‰TÞ÷K8‹®´²Ç!M¼ÿÒ#ë5#9õßoé÷d¾˜°¼ï¦Iøž‹÷\—o¤®¼Ä?AÁaef[“bïÉ�™FÅÉk»pÇë%n@H!k–÷ez=TÓ¼»‘Xéü4ì…îƒ!»!¿oçéó*�ÈÜA„†Ôõº|£P_òÚ¹ª�»ÅÆ·n|ÆN·¢ÚRd  ®óqÖhM˯¢—iQ3g‚ì¶e0™Â±v`áò)\±WéÙ �°<1"XEùàw0©G¥ÐW%?¸�g~íxxékü¼�Y|ŸŽÖ»€f’•×rûw:�¬Œ¦;¼c¶¸Åê€hæsŸÅ?Û÷à!&¿ÍáyàÝïs(_º'ÝÀ*ö]µ4`„@<Ýx ¾EµS|VÄjÇÐÎ&ëgƒv ¿Úo,,VëU» œëÈVç÷êu´§ÜÓô½Ç¶ão�p›-›Kîÿ²µ,òyÄÖm¢Åô�¦ÞÕ´Þ(.£É‰èZÖß:Š3ÜêþDê~4©ŽÇœý×âŠ1%³sZFh°ÆÀ7ðHÝÇrQH…€«¾èÎøÙ &wR³h«G)F@ÿ±w€Fš]ÂˆŽ¶Øv;Ä¢OÄ"¾õÊÂM‹�UrgýGóI ©TçÐrëÛÄÖÀ�zU‡jë^¼åEYã³+ªÇn?7©0¨…Ì1;¦I•� ©¶õ•Ë/Öfª:"ÔL ,fSñõ}®¦¤o_PÇ^uCnX™3ÿ& ‡�öÊÀ ’ŠÃb+¸DÍû[#w²£8XcÖõo•¾)gl§FÍòªCÃq¤Ì‚£´y‘jdRêV<½ðL5šÈBk^~zDYY=~;WƒQýå_ªž}ÌjüS¡‰"úqÏàãûšS¿˜šÒú Ë…jª–PÐÌ[©˜îi«žxÕ8r©™·jÏf¸1ZžÛ…‚ÈÕñ£X©ÆN~eÍi{)ûdh5<ÐËÔÿêÔ…JÞþo„·S¬0L¤ylÛ¶mÛ¶mÛ¶mÛ¶mÛß±mŸýwgf/&;ÙN:é‹zëIêâMõ9e¸þÓÕ1Ò«º—Ñèë±½iq�pãwT†�dèðÞ{�Ï3ÄX]§HöPT“9U‰%atÍgiÓ\¨* Ûõ„ƒ®¾øpÔZ7 aÅßå¹}w69O3ÑîOÍ’æÓ¤óôæáMð}ðÕr37ŽýÏS1GÂn]À¿ÑÂÊ1!Ã<`=\gw¾øRL×aÉòÞÖ æ-¤Ëä”w¡®KÈ£¶‰¢çd9ÆßÆïQÌ¿¸ÓU:UËNHC­Åƒi³k¤êSwÜÝ;­ÂqˉŠ˜ /¬yAt{p{à†!¼‰×FO_:½)Åí•A.·?ÈÛu“¡ÁˆÜ ÷~d²¦S�<›:)ýw¤7NFõý+yα­õ­å–/ŠÖVÄMvvõ(²»óâá=÷Ïè�ñgöy0w·)kÛ9c¡02ê.R�ÆÉªöG\ž°.Ðèrª¦ oxÊ¥s]oeÿsÆï@T]%Ò79Y~zõ·v³¶0"qâG{F]†…”%éIjW C‘ŠcUÙ�žÕŸj=�{,ÝPøi»BæØ”Ÿ¤³èöû é½Eƒµ:u.â¡% dó.7¬¹Q³%x7,dÆwÿà.ì�Í쳞I�”ê#jÉð�ÊñÄ'®8­˜™"còž¥<<ÍZηwL£aOH™ßZUвfŽ™Ë í@è÷ÖmÔÑÞ*YÔö&v_0Ãpد%<[PRjQBw  -èe‰ð;o{‚qn)JžÑÕfw÷çZØŸéJœ…£%–z)î–°ì�³ñAqäU-É£mÞÛ¼]Ž{7O *Vk=—bnïu(˜ £Ü}P#Š8 4°4ðˆ²(.€šLa8Wê)jÚô˜u{2^o Dt§¬ÛHC ßÖd¶Y^ä�ºcT í<Ë{7áiôäðÐÐü`±lv o{LŒ¸7‘¾ åÐ&IT²#Ý×¼BC¶ùær²¬Óì‚�f~ª²¹†ëÐàºíõƺ¡Pa­a÷P¢‘çr&†äQP@ö·À¦+¾[V”Ç÷[o>"Å~. :¤Ô«Ñ`²¨“Ð҉ݰ"ò5¯>�Û÷Ð)œ}Ý©•ñŒPG8² ?\ЫWiS"ÇoW°~é s¤ó è*<EÆ21À4�“0”jú�Šl�Ö£¨¨´èºÌÆ\X¹nJ™ð\£�Nߺȡú~³»9íp`ÔtÁE¸ø€Të›%XD5±&&žhxbôe4/�UP¥XUË©SéQå%„–[s›¯wÝ\–I€ËÈ+ZʦøAo®Šná0+ÝÿÖ²Ôëaª{ADÊè猰:®zä 2zþ¸—„íHÒü`„Uÿ®’<[µm>ný�Õì²Ü¢9Z™2åÓ{`&[9OœÅ³¹Ö�Zã�TèbY]ÉØ@ ô mpë”0[–8VAFY&K\œAQ_¥€Åxþâw-žÓCÔCx?ÃBg<ͽµ¬�¼qÉ�1îÝ/MçÐdÙã&þú… ’AWp�IyáÄ6Ê FØPmM Ùwê�8ì¢eðMª´õ±) ~–«ë”ç¬õÔ{/Å¥Ûi=¯¾î®¡`íã^¹ûßvV‹øy ÷$?¼}@7›žg(Î9µÃÎw8Rž)´$K¥7YD7_4ö&3<ù�m“I𘭜6`ouL–•¦ôÇ]ƒVZlQ7õ`Ö èZ_¸fÜ“B öb‚%¡CHÀØ�`ŤN·ÈçZ·œ‹äërXµîÎ: Ã÷%¡îC~ë¶H Ÿ†ïÓH.¦ ieó ç~kaë¿ÔBŒ øà¾Fu‹dinV�UéK\ÿÇž6l—¢e¤ªðXjŠ þÉÅ,ÎNO¾D"Ÿ,�.ØlÐÇá\Ä%~�™×M'õì½(Ѱ7-׿�ù̃ÇÏSé‚ -ÌK‰¸Ìk¨É_â„ý:¼àctù;s[Šã í%Ÿ¥ûö©øA„r_Ãì[�ΫÒT0Þ‡M8÷wØ¿<Ò®Ó}‰IÈþþ¨ÇcãÅ+CdI€£×Œ1wzÄëÁ e�WPÔæß|Ê߸Šg³e5¨}ƒìK!K@ ÈÍoë5ŽØ$~[ú‹´åwèK°í4W¥Ö*Ðw|‘<˜Tqš2 ?ÎUôÃvuzä# h)!—™‚~Fåö~ÑÖú €Ñµ›6@C(9`ƒus…ä™ÏgÕ×AÒ^¦ 3:ÏH‡‰>?FjÁó `9Vˆ´‘”ÃÔsÖ½ÕòO`gQO–1l­Ã£0\k�sSx9}XÉBõ.ÍMj9ˆù¦ÿm¬šm˧ê 9íüB]ù=I¤éN�‹Œû”Â""­BaùŸÏ"f!¼Í�Y»—ò/òôå {+½S‡ Ê‘'tƒåÚß«LúæO°àd!ýô$7UÆ·rú·f²®(jbL+ÔÅëHÄ�œ’�­I˜…Š"¥�·LjB½qÎBÙ²)x/ð›fz9}„ ù¥CPÀ"{ä«>¼¶žö›ÊGõÈj–Y¨'–gx3C:? —l�lºde:m®ï×MÀRÐq¹Ð}Z}³âRî Tì“.@n¦ ]E>mcJk�gà8�køÃü±Øå\W"JAc=¼ŒJlß ÷È,  möj¶›;™ ÒÜ¡ò)Vzñß‚÷n?´ Ù௑ö™¦4ÇñÂìÊŸý&i2$ÎÛöÒ¶”%�žÛªØqa\,3ZërLª0âQäeSç8‡4[އ÷JX²®²’ã¾tL Þ±Oë$Ù¡\1“g�ÁkU‡a"¶ÊÏvWMÁ>쀷¬>˜–VÇkÏŠØ|=ù •Jò´Î$ ÐÓןǧ`F(Ž¾Æ `ÎÛé’­í±êþ -Ÿ‡»Æ&6Ô‘:ÑæÚja%&AÙCYÜPPr¿Ç%ß($@8)c¯ú`„³sË>¼óìmÓÒ~ŒO¸nI2Pi¼¼Üø/Ê‘G¬Ÿ9sÕ”_âºáü`®þ~R²%Åq·æíÓ©NÄVVÍ•ÖW3š)Ë„qÂ�c$Ñõ°£P]m¡Øs{LPÔ'Æ#ç�ûÓF¬ÞÜÐÏÁÑÔ¾ƒH%2^YK¾´²`Lc›Œµ®˜Ì¹Dl™LõÄ}N8Äý/iÒ�%ŒftTáÙÕÌ÷äÀ7(Îæ(e‡ÂL›#µ>è{ªÏKgšÄï¬5h=»r“aµu@Ξt%²À-\SƼ/ŽŸ› fv¸Œ ~À´Y·¼1a^í–߬ê›U<¹jÈŠE¶j3å:ÙjýÇ�jë:„�“³ªVP*à† éMágt= >îG§Ä�²ÌXNc3-e;òë•ÈÅ�áqßB ¦-wˆ,Tâç4 x1~Á3(žë( �fÌ/òÅÌs»Ü›,ÒþË›[`gÝ­¼½öTá± �}L‰(fÕÃÚ•÷�qdó¬öwùÓhÇ3|Ú@2¢œÛüFw]£é7—Ûæþz$l”ø”ã§Y’dylË@}UÕQȼ?­|s]TDK*diƒ7¾ª½¦Fý0{‹YÂoh¬ìObÈ:Ž„HccÑËY‹ ÂÛâŽu… ç_>ðM¡A´´ˆXZ×õ’ïrò»ì¸¥¸ÇعŸÜ_+KŒ´þ³Àˆ¹®éwhƒbthkMÅü5®�üðXúžø°8w®h6QÈ ‡úæ Ñx‚Ë„p|;ɨëÁ±Ö#9ÆHÓÒút$ñˆ¾óˉ ­÷�‹RRÏ®£Åʪ4õþ™ê1qD…«JÖ™ãôÅYä3)òk¹‘|[‹(²Úuϸÿ‡}[¼´h�¯„d\ÑŠ+jMUÃçRYUÅI»í5LçÚÂÀ$D',ÿ¥Nå;úbhöÙ ÿœÍ $tòÈÄ.höãGzßGßt6`-8‹£TáO&›Í¨—îl�H>=�b˜;ÅgyçO‚xcÅ2€‹ÍÅó‘Ž-twlÓªÞ”�7K CdµõdóŠFñCF¾ã|‘Ç‘xç“\à¹1*™ƒ7ÕŽÌ5§Xú^;Æô0û®Œ‹Ãü“=·HØ Í_^%ñOM¡îžÆÇ’±7• ì®!¦€ú˜þOŸ+Ë\ªÐBS+Ò·áÅÙu‡ç{BF—ÔKœˆôÏÅg©úò}™·ÙEy$ŠÍñ3~lÜüc4Î>lsû/ž÷P“ì}ä]4§ÔóR)L $KûÈ�ªœok¿Â3.ñ2ÝJ˜ýlÑ_IêŸPüý�^tæ#ˆ:c#F½„ÞacDß÷ &dðý­+½› Ð)²Òݶ hEÖÝ‹H¬)ƒiÇ -ïÃÙ¿·ÀØýdŸ YO�èHâ·lÙë ‹Aɺ?ZBiN|‚ÓŸõß!ÂS ;ñ¬D$ò R)< )-´�›¤ìI˜/Þ¤±ÏZ‚ê34�ýøÐ˜dM.'*HkؼC‚N�Üùî�ýÎÀ¸ŠÌ„—º6FfÂØ‘spÉ/†"‘�ÜDZ879k™9õ§ŒqÄg·a…ZUhí»`¼ x²ßƒ§»ŽÜ=œmœŽ— E´TЍz�d0q;ó�8�FUFÝXð‹@Ò1žb:°Ü©Ù'¬ÍÁãÖ§j¾@ïñjc£º„?û•íÜ„vÖÚ¾à&5�.›”@˜}1!¨ëÀåxê„kÜHÙf˜“~ˆ±ñ<¤Í«„¹~¿“ÁÕc°‰åÅ~_PaÔ�å»…ƒs­ÅJ®~ã„™œúè°]Ë+„o%Ü'8LŸMŸf{Ùk:u'IJÀ´ž3É:¶Á†ÅN�\à£qBÂ<Œ±A\%Á¶ÛO%rq4ZnöÇn P¸ñŒ°ÕòñûG@h¸©MyˆŠ­”© Äü@!0qýÎ'lZÃ÷érîá{VJm±Óì~bÂ|D厗LƒËÎÐ6U©å&é¹E[sõG»°ãʾ�|®¡ýœ{rød¨LеÓR´š¬<+¦Ç3y„¡ÈIÉ:jr·ŽÿæèËòšfÌ×™ûb}}9!~xñeóB}ðÐXeŽÊÀ…Ž Lbì àÀŽcöÅÕöÊ�˜èÄòâA�^Çá³b‹í) î�<N%AX:œ«¤›“i+†bçŸ-Cï5¸gZÌã¡kêQèl„Z9å¤ÒHtvó Žï|*.ˆ4âo”“žc\àÆØ°ï抜}þ6ýà_ôc„$|€ÅŒ�öÝæT;Û>C.ü‘.e�Ørõh¾›¬ã_š7ˆÈŒJõ‰‹Ø?ÜÃhe>çK…Æ!PJ-ƒƒ>Ý`¢ÞRZž!ßêÃPÂ܆ª  ßN0ÌÑVk:#ur`ÁÏé ~rø8ˆ«°‚))Wv"A˜Ï›Ä¸ä鎿„f†ý«ç¢el“uë ·|‘5­Žì÷ú50+s¸¸®l[`ßÿ|±×®1Ã] “¼ÀÍpczÞn¥¦£¥ß…êM¢Äôè)sÓ…#xM¾ÚÜ ŽK`‰8Ò&wèˆkJj¯¯éÃ�¦i×(�»Ñ Ý"x˜¾µâÞ ðÛÆšt?ZÃ�Ìäb„�u…âŒû¨?òíÔÙF²†²í*€SÈÁTP<ìÖ&@äåò…™›ue΂´üÅhëŒ�‰ñËC33‰»$¸˜¤;%òq‡p�ÑPÍ&Tùy'RìÏ8^þY"‘¢ñv6oäMí�qÖbƒiÖHÁ/û€º2Ó42d6M/Ecáfm«®"e¨«»çô‡�¯ÒmuÛÕΞÍ1L*úbfTÜRCã¯ü FŠt_ Á艚¢iC²Ÿ-`3%ì-&c}(™N½Ò ^Xb(À=hQ$bÐ÷K}\¥«£#ÿ CÂî–o×D‘œË”�¸V,Ы…¬G¹�‰Š×Ü]…@Y¤ �WE—0ÔÑèŠ =‰§†�]°^£ÀίÇyÔô^›� úoÙ°©£o€9žVJ–âLXVû=Õ4�ík2»š6óH§ ÅYÚØu%/VS¨í*‹g0ƒ®+®… VölE®˜2ô’˜i2&Ü’×2+•žU¸Î-/²6°Mª&Z˜°4ýF€†Ç¦?…hÿ�ÙLvσ©­µÙ­²T­A¶®‹—føÜNT™5;µUåušÞø {œ‚‡’¥"Èp¹V©©i»?‰D»‹|ó±=VzΞz¥°îá"œM+þ¤Ñs�.pŽßÞ]âÞ+¥ÞKdxÚåCBÌ›óˆcn0I¾ã'ÕÃÎàãŸv¹Õ�BKê"³xNñ4#嵪]|üÁx­ïªkïÊh0Ð÷Lm�VßÔdm.iš¸Ó–ƒËÅÕpÕA®êäã¦BT|µÖÊd÷[X ô°;—„]�ŠÆqžâ}w@÷›”‰'gý¥´€º”Ô�j*«ÔC @ϼÇï^:Ò!Á^ŠÔ>ZOÆ„‹{:ÍѼ05ÒÔ|@iöóÐ]y¿w€®l3.ž7e'““Žû×f°gøE VVú°‘ÛŠ6S÷T÷«ß÷>#¥¡C.!“b+³ÇÇHˆ²Î•¸¦êcØÔÖÃÑVcÕÔ%I³z½ªà¬zø‡ì‘\q¼†×Æ-ÖîžÂ{”8Å¥wIÜ0ìT‹óß({M_Ïú‹ÂÕãîå†(7æ>V†yðcMìÀ,ûc%)"õO¦6S�b`çbjþ]öÒ»M" 3¨î€pѤ/)½J¬vËA=�BúD÷¹°Æ)ÁkÞRý€PÏr®Y͈”HDD2;gGôRuvÜCkÛÍ+§ú‰7Ÿ’m ÊxÃJ.ýš‹Ã|W¼æ9t?p)Ì.‘(»¢ñf‹8°ÇVEÒ±Ÿ#¢ͳ¡š¦w5÷íÿ4æûâÙoÃx×ßÛŒ}Ê=’僟T�¡‹4çº2œ²ªfèjQÓôÇÎÒÞ™65X²ˆØ�`åG¼Ôq<Î9�ºvÆÅÕäq„ºN™jÛ½�éVÊ œ‰"f1ð”&‚Þ¯¹Ýl�¶Ç8«÷,‚Qü,{^³nò°íyȳBZ²¦_êI㣻àc«Tk :„�œ½!3ŸzËb“dï!Šî·±­\¬ø#à‡òk«V¼»k E„êöl±ćí¶(ªÕÕ ìµ¾2KÖ‰$ ‚—(3;­{›×’>Ûp–SÓ9¹Î¸ª²ïJ)k¿[·>”¤uÐ2˺Ía;�lßÓ�ŒöfÄü–o¬)Úˆc=« Ùd3Å�Ì:ê߀è{ta¿IØ®4wE|«È]ü{NMÌÔ€Ž%V[VcTþÄ:S“cºP/w:â´²]^ÌÀ‚òƒÇ€_bÐþòc¼«êŠß ÐZŸcëõÞ÷Šù7 º¾óìäBe,1SÉF2Ù T¦Ò-lLîaÞ W0½ïÄÎ:žn«ÚÇПOz³íW4a5QU8 Ñù ïÛò`ƈŸ/iײƒ'&¦Â5Dhe ¬ó$_S¾Å xBw×þêààd3𺊟_YÕ#Ô³¼@;í /ô ‰á¸@8%¶Ô¹qUƒŒBLL¼kÉ€ >žc² lŸ¥µ0‚S[&çËmc¬0ÞYÝ£$!'#žØÛ~¥‡Š&´‚©/蛪#¹�FŠÓ€í‚ÙûŒ´‹v5” Vüׂ'a|.!Éã±y©gÔä²°²,Ó/Ò»zÚÅž¨®�fxíd{aŽˆ[,ztÂ�ä!ˆùÿOçÎSS�¸ãÄA‹fX¸Œ¨[i§Ê.³·ðïÝ~S>Ô‡ SÆHé�Œãk–†Ë™Âöð ‡Výiˆul6½Hô°‹óSéX¨. ä‚éðÇ„øì «zÔnlh¦éŸ†%碦”z�e`B'a ޏ^T±¡•Ö¬ÔvÑ¢`á_çKg^™œŠçutø~÷rʦyºi°'Ö”K!×?;9QçÅ[ù(²þR ƒ»xrÇ_f@ P\ăÏm°—Ä%2*Íš…Ïìr®‡Q¨rýКe\ �ˆ ÆÆb¥¶»ý7ö8Ë. ‰áCôlx‘6>†}ª¸ƒa2ûܼš�£ŽŸjç°'[Êâ­R|øŽÂ‰.Ô:F+±~t‰n×¹ìúo¿${îÈУ†}2g`é @”[6“æª0<<í yN/ÀÐ6ë-}P/|VáÔ2 äH96û¦³±aL»•òâJ˜(—OÃ&g3=Áæ+av´ Ðé­#Ôœ¸¯CM;õ{vIN·�ÚWð¡Ì¤—qûàæ¤TçÅreåxa$Úð:¸ú´Œ=höZå{hL>ÀÒøÔ´Ó=ú(Û·Ø>ÊÑ‚%´�•Ù^²v/�hêžbÛ‹ŒsöÄ a—B=†f)ËÖm>™ŠWK_‰|M�$„­“ˆË='{lLiǺ_Ì'Ð�m†™ªQ쮘ü1P #Îuì¿줲dÿÖÖ®¯z·%Qj^Ã0…å¬ɃÙc®øFA¤“ œ6¤ùuS¼–µœDÁÜ«A3o~|†t§6ª‡^ü¼Ð*zr$@¼S¥ÎhÕ"ℵLLÎŽ×8 ÍbscœºWÁ¾xþ<.͆V™à ’fâåœÌ¤ÓæÛJL2·å3Öã ™a:#Ù•w,ë0 þð/mñ¬+ÂKô gðñ›R9p–MVôÂdéYý„yÁStd‹ÇÁd;:@pEOhV± 9ÔceµC¯­døÑò�ød±CmycD¾$"­ígw••´9°Ö…ßDFñn:Õ$¢Å†Ye¥YÍt6P2‡²,¶F.–mV! P}k§H�ÐÃBçP-:º‘nµMÍÝͶ 1< ÒÕíuÞÄ$áÁZ¥™dy²¹…%”F4¨£>60–þöóˆÙ¬Š«ÏUtºI¨ïÎÍx±WÐŒ”6’„wB»È„‘}B®RpŸw¬ñrz{ØW  ˆ�ÙcçUe“Y¢×˜'ƒŽ«›º·\Ëγÿ™«�G»Ÿä䕹Ĵ)ßä‚ïé›èÅFì¬êí,ﺷ ÌÎþnÐô¹ þŠA±µÓä›4ÿu»îU×c Nß$�O® ‚Õ¬ª^‡Û¯ÕOŽy`£«øQ|Ô0ÒÇ=Ü…$bgÖ°îmÆöU¹oAé½Í�Dßò}ÇJA¸So«Áá<Çp¦\’Òôµ·� >~/ïëËÀ†C†z§±Œv„-ÆäÅ›xmö¢�„`þ8´ÌÀ4I &s—ÈûØØ‚m@WÚσ‚Y™Ê)©+Ëô¸Ê—åÈ0½Á‡»«ðˆi´ÛãÜ¡\¬‹óÑ÷èk<p¬<×*jnkÎ{ë‰-_ff|HQ@¾ãP!^(™#ÜJ'- „ÀÉU±Y»nèãõ4Îx(­ʱ –MªµC9[½/ÁÖ|}u]z¡ÅUÆfùó\µ ¿”OŽ¢ßC¿Ó‚OÍ· 2óæHœG.×Ç6Ð?AIo§í¯Ó£–9¤¼e'8ª,±%â|¥}Ã=?‘iEˆ²q€½p0l€§²�Ó·•p“ù’6Ré*©�:Õ¶RLxDð@›D5›•ð6›©E¸/ú06½%i·ë î%»íé‰Î€›¤B™ÿGñˆ: Å2¡@F²¤™ˆÀ#ó;›¯ñU¡oŸéÖÕ!Õ·gx² ⨋ÍÏYk‡öfOVJª�΢yê´op˜*ôcwÌZ@Ô[A_òöO¥±¯9¦IœË3oHJ‚¥ÿ¥KÞ°+¡WÏ{^í~Rm÷:›žØ×�>6Ȇ¯âQ�²»3ÖÌÃà°çu®>Ðó‚R¿ºdÑ5 ¾Ž­¼fœ…Vßc{K³NÒ-ñ€u !¥É�Øóãë}0 á jšè¬<ÓÏÓàI9­pKiñBldà žYÆ©×T߈m .9?'ž³Áyp2(Çœ]ß:õŸÏ?¢R¨Cùó¹# WÒ�Ò�%òöd‘˜ÞxӌŠìi±È�L‹|}ßÈÞÀüé�“$eý{–.#à0 vyÏ�ã(ï…)ôØ9Dºï‡ Ï'{³Ï‰\ÆØ ¦-Þy¸?Gió/ò{PÑa�…@Ë]�A˜+ÞBñyP4O‘J�&„ÐXG[�….�Túˆ@ìå �Îfs䯪ô¨dU­u{xcÔ0¹Ý•WÕÈ=�÷•S>k$m!D(…ôLsÎ+*ü.žðκ—S¥À•Zȃx1ƘáF·c�¨Ïqß²Pü?JÚG’ŒáÂý‹õ0™Ütõ7kæ(‹P©—&ò° 6BÓÕÆK’Ðc”µ9eÏBé!%¯‰eíÐ@×ÍP¢a=p€qFÐÙ�`ó4ä|õë"¤ŽÏ=Gͤ-#uÞËå Öý€s´³èN&•-´`ÃeüN]¶ÀÎÙ}º€&ëõ¶´ÉÔyÒ;qj×Ìí`ÓÁù°-¿f°Í]”´×}"{IÿöU ƒg!w=R‹;Þ1ï=„?GƒK„ �IF<~È —Ó‹Mù_E-g~„ýËœ&dªÀˆ-µø·ŸumƒäQ— ã… Y·²«ÅAðx¬4!Q›+ž&çhàâ$ÑÌÁ°K‰ÑÔÙÆÉD£FrÒ¶my�Ñ:ïÈ}Ó­ßûx†(°,iÛ*�\-7˜^åd;U{Ž#¯!Ùd‹¿{çÒÁÅÕaÞxH7KU?ŒÑyf�Ò«‰œ†é§:]¾¡½“ûc‚®À|’˳Øß�3V>ÇôÉrSºiäxÿƒ·gÂ[}ºf“CÓþ—vòÆU²—=³HˆJ£ÇîñnmJ„Á�Ö®¸C<à!ú#ÿjO-ä`•?¾QjU,Òl×ë)£Y@œÂ R‡Ir¤ âv°Ö„ÛûÀYM1�û»ëU™`ʸ÷m”¼xó2­ûìL8[°ë‰:,�4;¸ÒÈNFÅÝ6qË_j^ «ÍŸ|SLQ]¢ G_ÿ�Eµ'aç;é[Ø[ºNÙ8‚¦ ¨Ä  ­ð?Ž2—Éóñ(ý‰ vÈ*¯@Í’|Ѳá~¿’O˜æz&:%Sc7eKc�ÿføÀ%}1Znœû¢\vƒp2䃰¿¤Ù¶ÙAB#ZΠ å¸�Å8l÷+ êG<Œ�šµó€¨8ˆj,–”~ŽÆÍŒ:ÿo¾™ÿƒß»nê0Ec>IÓá­ñâKŠ) üdª¾¢G÷7ývH㢥’¸6 Š)L”H”ºif¯bZã�“�±@À`žn¢î1õG,Úá»NŽtNâR,2H«uaÊtYžUB БƗŽß~5¤Ó€LØò»ÁM8öxäÖï ëà©fÌfÔI‡h¨æÔ5 ¢Ó (R½F…B¨�»Qr+2œ±ŒÌž\hëÒrÇ!ÞýD&³"F-¨IÂÌ”óP8Üîb%e�jÝ“³Þ“í, zG¢-âéÛ¶'ÌÞfGÄ5Îf)q�ˆ8¯Ñ¶± æ:U�~¹s°¹¯]8m�º€-‡ „¥P¥_µÒåM½ÇHjˆRôF˜ï‹ß*ª:µÉ íÞ’0[”Xăº ÏèŠms¤ßò¨šèµv-¤cÛwì€�›ªaÁ»/eŒ67wGÂG¨DzUAL+�‹ ¤æ—q¨ôÊü !–Ñò›N’qE2VâØŸ×�T…Ÿ�Š9“‚çeŒ‹7 ÉplEûI9¹éå½À�,_ÌÍ-¤Í*¥×yôRæ%Gè%Agmöü%vŸ~ÿ ‰¸·Æ{ô‘^˜�ŽíS?e�úm½¤5ê*‚~X+- YÎܸ”ovtè:äuqß#S>²HI7ʯ‹Â9¢åôR׺½¹Ž·t•QÞ%^«ºi Û¨gœ1‹>Ëšú,W÷·üõÌnŸnsD3a, !0GÎ7ræGï¿ »6ëӉ蛷]õ﬩pÊR×~NdÚ#�[ÅÇ5{á,Ac_)§@ýæÈÒøä¥˜Xª6�-)º?ºåƒ nN�5�å`Ž((3àÊ„à ,È9›Š®WÒöœ!w¿µwQJX%þIN¹"Cª–q·°Ã €¼ôÆô^-Fô�çP“o�X¿d!F$êþ¦+"o·‰’¼Ù›.Àg8Ågfj§—crן~¤ç¼_„‰úè6 ÊÒNÛ­ßCg¯åVg…‘S|[±2÷㯻 ¨ó9'÷’X§ú²­‰Òû(6ñòi‹ á`×�@åS3>’ÕmBd¢.—`ö™¬­ z(àºñEÇ^ìS¨Ú'IzÈ^Ž)‘¥cÓ*¹Æp‘•Hi÷ˆ&'Õ“<¥ÕvÚ­æê{0Wg{VPuƒc©;>Î�ËoŠœfêÃpô¨cȤ%T¶­2|ÄÅΕÂ5–¹ñ c*!2=¼û\­7³›µú.LJ¤tÇiÐ ²ø7'>ÊÈÑ´‰4q/V7nvhJ±•p-þDŠþsJò S¸"#Z.MG=Ý�’T“冴ãèªÜ&ñM•Áã8¹ÇfT®ø…wH�{ «pŸ,‰�xµâ;ÓûßWóy­~Ö´„ ·02ûÔ›¦c áÄ*Ûñ%×Ô¿ö9: Ä5j—x`mGmŒ†ö{»¥þ9;˜yÍvs½Ø“yyD4â�™g„§pî[dáóšÆ7×1¡^ _õ)l9hTœ’æ©hîZK ~GýOÛlâ<=—ª Èt…?� *ÄqßÝ“G+9èô�Wo:cH*Á¾Z#&¾wã{Ô/UˆÛ:¤4`ˆŠ&îPËü1ûÕúàú÷†}uúÌîk•ç+ÖddÑÚ>UNM õðu³V\.ƹLzt²ñó‚+ç¶¹döž0-_ˆûŸƒ‹ütÛ:ªw�­æè¸’ü¸›p“îuô}º#p•넌{mµØÉ@ŒI–ÙÛ¡¤?õj¼…6€ô«ö$¤-ãj›3UœfsóÔÏ­y ~CÖÁÈ.r!ì` {æ§Óä¢A¯ °ËÍÙ÷1ÞÃ\ Ùõ57c©WøÍѽHÄÛZð =‹Š‘äBuëNžpl⪗©î�òq[(e:FX;øª´Rš’�8p¿‚úll�÷àÝx‘cíÉp�ñþÖ¬5üûoÜ ÀFA‘Ð`sªD.åf~Ïò(½J# ÕÞµW*™Ÿû¦ô² Ѭ ÜéHåEoFêjyÎ3‘íçlÕM·&²«ÂgÚ‹�ït�!gŸjBdìÞl‘¶í\ AxÛ–'•Eyo’ ¶ï¬àNk^T¯ع;0ý‚€(ÉY{Exú ßÿhß‚´%!Á/Y¡rƒ­8¡Í3T;_â]ÊÅ%ÖÐúæ~ ÍD¢š!ó¥Ý5uÿ€†�C¾¡äŸphP��RiÔHQ÷tëæ­È ”3Á²=&éGÁ̯1F(Ò§ôÎ'+ƒŠ•¼CAÔS 6ÅE+ƒ)´ÔÑ]êz5{ãxÏOöŒi�,I½ZL“èë`½{±4MËÌ®ïû™ä—gYY!”‚Þä‡ >¬"q6Ý/ ôoÄ$E½—»gN!ZÛðÚ�ðÚ@à<ŽE{š;ô\¥Å¤ØwJÚ„h§è¡BXÃæ˜Ÿ¹A�¤ÚÙ`ð¼~F—�´üŽ�‡=þ] ®˜9»Î ÌÚßÍçYÿ‚û ËXÀºÀ¶ƒñJV`9�ÂÍ/z['!ÎO3 ÊÝs*áRp· F�eÓŽIò£´%³5ç|Í™ÔbZˆuϦ÷÷ýv’OWá݈=²–d×\7)Ái&mÈ–ì*ó˜xÅ éÏ¡«Wê%ÔÔ4;rZˆ¥ ³43“ºB£›e½Ýîs«‰‹†õÊy­_ÌÝpo¯éÛÇ�ëí�ß�WÐxøƒDå.ú«À-ï²¼ôRþèõ]!Ù)„Àd¡ bu¡³G‡ÄM‘€7¥q,fC¤�¿ï%ð( J¶*Щ„¨ F’ˆ/â`’FŽ?.Á¿3-íXúWñzË6¯*IÁ”õ‘wÜ”’=¼häbZdƒ!VõÿÒ›ÃÎê�oZÆh¼¿î3ÌkÈá“[±1r¾¬ÊäU!à6WÙ¦rF?¿ÞmY£-%lr@ªê‡¦Xñü(²qÜ â+åïÏ mp„…›¶=ÄYÖVÞ®,ß ›„üËŠ�¿ ´´†£ÀÏ›-C»2¸ €tfØÅßóbÖ�ÍË éÆ¤:oýý =$Òk¾•Tï•�çÕ™Ûi©çÃm5•yÓgúpuˆKÀ?a.à•Í[FýðüÅÕ›)‰ž±¹ëHR=A ;q]xuu�ôVVÊÊ„ {”¬†Û$ú‹D“ /.O=aW\t.cHÖF^W;'€öÂØå�Î�dÀpqü—º¾²=XÒÜå°ïŠ.‚i®Ûntó™+"åÑÁ^�vÁ@2ôz±i÷cÏNÈ>´ôWÈP“$éÔš¶Å%§°Ÿ%¤q<-8Î&zy5:�q¥ë=�Ö]gôiˆ—±\sÐÅ™.Z²üûZÎðJŽG8Ô¬[7è{žÒº9æ/;‰�ÏxòÃÁJ¨*cXôà +ÎØy"ËVÝ>FìÐ}XVψ'Äê%ÝK‘,ˆð5Qþ ¨«æ !ä¸Y*Òª‘°Z°)âp›’ ¿w?ÝÜ^(kµ2h§lÒº­aÒó|þÙé>e2ȼÃs7JlÿHÉ'÷åü>h§Å4ì´Ž:[e×OÖ²wæÃFj=–ô ÆÐôÔ–;¢ªÝUH—ß4e+�=Ew«êˆÒà—Héʯ9ÜIJOJåfr«dήh.{§MÕÜrVCŒ”.w€Žƒ_œÓÅWÞ74’&íž2´yOv¬»íSIjÐb‹™ˆU©ÍlDT¿@{w¼ÊKye ÷K´šž}Ûš.„›nwFÌ:ä:ÿuÔ z6öè£ú�Ž´ñY�ô• ùIÚºù.S;ü-÷ÄÚ„ÉVQ¿W™e¤ßÛK–u+¥Sp`Ãù&»D™m2õŽ¡æˆñì6j¬—š7ÞVêrX °‚èèÚBQ¼™¡@hAв»ßÇUçdõHDß�;á3îñÀfå2´ê.ÌÚ7ÞL‡YEF§ •´Å‰\`&MùŽˆý¤ ¥‡�Ûýfµ÷ vêÄÉ…÷ÛÔœýô,µo÷Õò;*TSC!¥?ZN˜'*ì–çnÿ|°!¨îЉmþ�Q`i|„£kì�C{bY·›�9Ì©ÁÚŸöLÒpúÏxõº’+ñF”0N¸!Ã{w'w[åeoÿõ%*c0.áè¼éCr°C.ýB|åø³HØ–Dþ5´ÏpSëº(öW1æ5s‚äì à̤ë8ޤ[´fõR'=äºnW?k¢êûU$gßçÆ¦H䬻qe̤Gê”…?ijAoL/™C¼e«–MLºñ…•ð9  K2Öè#LÎ{×èç1ÿ ¬J{ ×uBÜV˜8Ññ.ÔO+Úy}>fÜI©G�ížk_öÝkɱÈhß­Ä ¿:ÒHÒÞ ŽðÓ‹ئ*êxH•,S‘nß�Øýí ¼è눤Ú9·*š˜µ5zû÷#='ÅWš—� òÁàEÂìárºÓ·C€lºF�†/ÏR*š"ú_Kµ€Ï7‹ÚûU�‰œÌ¿\�íÎΕ‚ÑSˆ½ük¶eÏ�c·b »¸½‡pºŸ•{“L+†4„¨fæNÌXî/ÿ!I µã °3ªYìü¡bŒ•wHß‹¬G…ŒáCª€åmÖ÷ZvSÝn,—Q³â†¶ãuÑYã©r�Pôr(B„À|i \uZ{¥ý9è»Ã˧KÈЯ¤$iES¢òiÐ>Hsêg@rî ãøi!¯.õ^å{ú¼m|ÎTÉU½þ,¾C–b•ÏîÔ]m “ $÷ó\­ä–c%™´!BË=`ÃÁ6U@;ßǯrCz~MLZ ±â_m£¶6X3¡@#Ãþw%:f8xïkGZ¥�YA”HŸò£«òvŒ�`¢çÀò¾´Ø"¦£Ø�x(ÙÙÌ4™�Eð�{X¾˜–žî’£â“ý-œç�‡×e*‘óœsŸü?N÷kƒa x ¿ÂèP²”º¸2ÔrÉJìtŽ ¿o…KâÕŒ?tI€†åÍÁ‡5S…hõª�EÛI´µ?h‰ÏlYn]ºÎEÆ@[òrÆŸ$ñ¦©‘s�--!#ÿFoØ.µì~HežQ .óG‚p-œ€GÔ¼£P]! ¶ÌÎê–@Uè%ï¸fB"Të�Ä©¸áó±L§©øþUZÀù ïº ”t2·k¢Ÿ§ÔÁ�€%¹"¿}• ]³Q>P0"\ÆŸ5è ñ�ê¢G���•¶hN9 %—V±µÇÒONÀ3 ¼”û1=¤•çO{¯%üeyj§�% «ç«×€ü xíÚ±pF†@zH›6¾mxRnˆ¯‹gÈÀŸíHÍ/bÜ 59_‚Ÿ” y‚�#Vº–‚Á�pÚr ˜îih²mPÿ²»“ö?À»•ì9#ކGêNK$;b"&ÎkïÉÔø‚ CÜp¥óÑÍÇÎnÊ®ÙÛ«± âP�ìÓïG…ÀôÞÈ,�0â´‰±SA ’àÂlÁ‹bs‡«´rG8ƒíáNe„$¼_³ýØIÉT!usU)} °fþ\�#iö9ABN>â6–èNaož¹}l£âÈL(P®� ޜʘöí°Õ{ŸÂÊ& ¿^[Uø':Ü\|û‚¡M÷¥»U•Ø ¯0¶›BQ.¥2§ñtÀþÀ�zöÌ­”žJAÉÁCEqÀøòí2Ë»ˆxO88ŒÂ,R 7pŸ)"ø’—l@ pÝ€W”~‡Esž�Bñ¿h³!H¼…tòE\V¯ÁQUr þ ŠkˆŸ{Ò;è­#ÀF„fõç§°Ç^ú ¥>Fr%]Ž×J¡äÌe)£çR:’±r¦ÜM|Øö™�¢6 ïIî£rôòÔDoõ{_jjnîC%ö¸8jSÌÄÎŶÞËètHÿ¶ú{´ú„œFBñ$¯ c0·_"W·'C~U.;æ®`·g<N씟MΙA±ŸÚÂâ'O2Ú¾ˆžúìMÈè8f¥}é®gÆ”3|Á™H´.Kî×Í{ßgÆ£Uß!7&#ê].¿ö }ÕÆžskôÝ ‚yvר[· }ÀÛ°¼†ž·òイmO0—ð¯P¬ÇV/2óú¿øZ&Æ"ówÄ‹Yå*»Ã� u™=ù(°!ZätU=VðÅ[†önbF¬’ ¥?ã“Å~¡¶«X¦§ƒìjRhz€ÑŠü&ÿ˜žC�+ä+%Â/ëp7þò ŸòlOþûŒMEV8AAüÊ’JBu†!ä*ø¶1Øc.`ÆÛ˜Ã'T}¸QøÈ<û¼·¹Ë—žžtß¶ð—u&5›r¸íúH+s]Ž-Xv!HÕZ@ÃĨë!|ž©z>t¦ÓWÔßòðD5îéŒKµñX�È·à ÐA{ÿÀþ«Á'mÿÖÓ¿�|h¼ÑHd·•8QsCy åž�¾¥ ë¼'‡ àȸX‚!�MÁ¥õ!~9µš1½>‹b‚èè¹éñ/þM ‘—›_¶!ó4V›˜\g¸h~„Ú¬›~6‚‰0ÆÊ͇æ%4Ê�²!Èê. ¢ÿº¹êTlmÁ%håú¨§|ôJj’9„ËÞH~#O’¡ŠS ºðÎÆhk‰rV{¥ ŒÓ€;Ô|Q©fööpùÜE*ø¸ªO11dýÀ‹ZÝÁ¦P“;äµÎ�÷ «(ª=âß¼ nKˆ85ÆÌ©·ñÄÕ$Q‰Š%ŠŸeq•êÈcâ‡#sÃ7Í“ªæm1õ¥SçÑn½3|ØB êlÖ:lÓ¥¤ñõêpØ‚Î9ÏtÊ� êct¤²YÕIpŽˆ`"Ï-jíZÊœxÑqE}/?{`×`ß=8ØÒ†{(Ÿý¸Å›ÎT[ÖúaJÁ&/éß“ ¤ÉØ�Ä4“'y°uÛ§–Wåªu¦sðÄ“…(@ØïA»ŒkËb REËGªMÝ-ƧÎl�ç!ˆ_³ùüT5UsŽ2d›+Ùê¤�þèf⸄bªÄZ¨0ÿ5Á—Gaõü¦±ŸÃŸe⪠¨?˜!BM&˜Ñ€OíÅ68‡ã¹L…ˆZ‰ð颀ÖSµì§`J©¯­ÿÊq�¢”‚þ´’´b5f¨qn…9ôü®9gÉbJ ÉyøyÔ=—š¶ŽÔ!6Ÿb+2sžK~ƒ¶<÷R#È{€%á²#›¸)0S¥˜$JƒÊ;BŸÖž‹pªÚ£Ë˜ˆr?‚l&[äƒEÐà6¨¢ÞäÎÿñpgxeòË=™¯Õ1\-£HRèã¶–¼�¡/q/¤À\<ÒF�êAã‘3z„þ¯ìT¸é#·iÊ|[رM˜+q «îTŠæòe}Œ!‘>†ak{Ž1’ößÉ^š6<±æu%Îd%Å,ä/¢šÇK?¥¹‹ÌþE/5ŒŸoù‚ï~Nõ‘RñëYwªo&ôèm�¿5q†ÆV_»ÈÊ9²Á\L-tÀE \¼†j�H%šÍíc:°áP{’s‰ŽÞý<ex̤ܴ}5Á7D»jòf¤Ã§é²ö}…ÑHémÈ¢96FB\Ïú Õ™n!hêã©EÇ`‰Qn´'€iË™8Ñ”öó /�alN„f½âŒ.�NÅ’7ü<ûªíT6žFHè'°0=’l ”M %|öÅ>cŒò¹ï§;,Ðï2C[JÃ+ ú©/øòºl‘rØeÅ:è烌n-©�ÚÄÛ¿À f� MŸÐµ)md›œ�ÿ+5É1Ïéké?ˆXÖX6î0=϶Bf¤*7 XºjRf>rroâV}ñ7âøh;2‹©j?Ju!Á–�aüäÙ‚eŸÕæÑã2jú85ЮöÀ?ŸÞ~ˆdpi#�Ó¢pÀoèYr,ßxyÇÍæLgˆªœ" Eo¥ŸåzèVé’_›Ì¬#¼Ë jƒPW?#ôÔ�nL­z‡„Èz Ö÷€²`2ý"6ü„>/,€ˆŸØwŽGcû_î´ V{O†K¥žÝÅâ ;™˜/ô…Z¤Ú©tóI•Xõm9yoFñj2Š}÷VbÉÛº¶©í&í^õP‘Å�|IlWWH«,Ußvg^ ¶ûX^Ñü¨ÖEÊ8¢Sã¸|?“2Z¨ycÔžšt–Ü“Ÿ/¤¥âpjþæ#¬'WœÖÞ 4θ4•_v¶ƒ€2G©Ý$ĸþ]M)œ$Ö¬kÔàråïÙ·ý¥ð_‰åO« �ÁBUp(¥êZ'}Ëí(ãÚ6ÏTÞþ«Æ"C¦9‚ÄNš´•þ¤”/y‡è·èd“9ÿCçÜÇå)»åŒ?J8i�àwJrþÂθÃKyYãB¿Üꦾøxþè�³2Ó‚€ÏÐÒ«ß•x ì]‰%ÂB™mφ|ü&RXØ‘Zßt_©öK§A·GÇj;qEÊHÌÔ΀Íe :ª%°•Öì‹Q^.¥ #ÇÉáÀG#÷æ/rµÊô{…ŠiвÜDNª]eðƒmܨç]0<ÌKJu‰0¸DwÀëAbÔ°¼‡�¥ÎqÄwÍzÝ9ñ{Œxÿ†€â¶wBzˆS�nk|íúº—vü‚0-ØO¬% ™ÝÃñ#»ø»WW³JOUgüU S�:ÈÁ"x¡'q%.ñ¤„½×>í›�Í�âä,û¹NÌbPŸŽ‚C,榃øPB\)3O/õ7âHf~-÷ê”ÈŠ5rô¯,ò‚Gè–%ÌUñVuÞ²ê'P† É~šbbGêL‡fЈâ{·k•všï«™Ö›$$ V|ærí0êÒ�Á�Ø?Ø–‡§‚ Vgí„3œ”vëÏäpU8]|?b; Í5e†?>ù55~(ð ©Æ[¼—v?%uTÝ;è r¾Å-`à dµÚ¥ÖC›8ÅÑï<¦†Pg"Ú†~£q jWŠñ—U~l«½C�ÌÅÉ” .µÅ9ΰŽn, ¨iZÇcz*Ž ±¶ä§l%¾åYZíÌ…Ð+•­möXû‡>b+GCzä-Vž9¦>.’x´ĪÄÛò�¶Ã]Væ’6ä…4Wb3ß ýŠ}Ó\ýêz®µäd¸[£cÛ‡ýXgÕ~xðW3Ú%BBk]_OÕtH¯ 7`¥˜l¡§†ðÃ-¤¨ìO&Í}[VµÀp�oeyéyºÎÌSàO®>®§>Æ·…ºÍJ@ „Dhl ÜA C§™æíXBè%UƒÕÔ„}\«û¾uS Åii%1eºšçìö…L’–Š;”ü6¬›/aò ÿ+JÞC%@Óøþ*.,‹9[@M8Œ£“’åPbåéÄZ-«Ag±wr€ö%Õýº!`7¶ä'»ùBë´›ï!ÊqižÕ;~ˆæENiu#àr¸O¾ÑõXþû;V‹™§m¥%ÊÁî¤ào©ÓB™ �A¨|3˯4á ¸�PB™Ååè8|{ÿª[,身7ÎÓøú”{Õf»I3p¶9°äþ=}|d–„7O^$·¥=:;t{¤ŒÐæBÜÕhÃõb#³¢6Å4j 'Õ¢�MïSÙT�ó�£ZŒ£}ª%¹núq”h3qõ¸aGíYHz Ʊ§wï°mQKšj}U‡Ç�ŒÒ>4ÞÎÙŠUö/Âì)Œµ)S”é»tíù¯¥´ú•-¥w*Y$²¼È)ËlFmmâJp¾æaküã¤ÞsÆ%ËMs#(«E_tÉÒh|‘~§€F™^bƒM{ $ØX3ö!˜@):gÿ>–?IvQøvç="X†§Çþ¹‡%-U4b赞[²œ5øñzþ@µçµ�7ñN@¬yQ·¸CÑïÍB¸mÇ7ýŠíTÓÚÎÉ3pšI¾ýšžx:æÃE´ ï–3ÍÿÑi^_û€{p$'ì«ÎPX¯XƒIS([–ã‰<Äßã†ä”g92÷]ª>³sË@ëªøÄçämü0ñŸ·­¼™¢ÝUe1'¤Ñyƒ–‹«^õÕ¬#�9€÷ïA~ûÖœ¯t.5ž\Z˜³Ÿ;”)Q•øÙ’´Mý6vÎ ÚUB+ÇÁÌ}|�PÃ8MOaøüÅÀ:[n±¥÷¯r–äc€g±PîÅ3þ;KMS�?ã¨Ø‹™ïw< >—‡´±ÝHÖ„p?b­��žö.:bº¬äôÛÄŸwY¥„UÊ[Èdd>WP†ÁÞ½8Ý©F²GÈ4Mê Ý³¿¬Ë•Ÿv¸n_e¶bCÓgÜ„QOÆ©\î„Q—m"y�¿#NA’ÿ#L" ‹åhƒ±, m¼Jç®ÆÅÜ[#(Û–a+ë³ö2yçÇL¾-÷®Â:¸ßü�ïP«Q—ð¨+:[QJ¶¡`Ñ�á± ây�Sõ¬J�ÚÔ5aGæsïþã½k‡Ó$UbTÈ; U–˜º�}(¸EV—ð=iàÎxÏVR^¢Qfw£Jt«õê÷>°iD%Ç™ý-¹ ûù î€þò«¢]Ø;Åâ!(Ý |ž�ËôŸ\«W�­ÄÆšt17*{ÚŸì Šó¦œHmnrù`üüêPH«-ÔªLžpènKýZƒ£³Y¾ß-•™ÌæœÑ™+æl!¯×µüuކå¤i4Š�}R¿:ôÒ'\ùŒLþÊ�·ß¼Ìm "þ樯·Ó¢˜5Úf=ƒ´jð'—ÁoîqÕîåXOìˉ^"îsýdV­®`²‘ªWPÓZ´O¾¶#ŒœâÄ[l"Uↅ‹PíT �ÝA|�ò†ë ˜"?�;õüÆo |xæå^ÍØÇXì#>Ú#¾êйð!$µ™Ì"@}"ª]è NÈmÇ¥-h"’;$ú±#ª“¤»ª9LÄ�ê¥ßTé¼”!û>ùƆýìæþ–!ß “q=Çx@B¡XE8gé@¢ö#8-õ±›:‹[ãâ”G¦åºð¤X 46Mv£e±@#!€_ÈÊ„|i�c>ä¤Ñ’ÏïÚ ZÉ n©xR”É;KlMö:Mx?ŸÓ2U�½¡žq¬¤´—Þ<�)ô|Ûm.·êE¾øb ËÎDZguù�InÈÎw™bê]›Nî�þ^;ò�è–‹w:<úqB„éf·q ÏB=î�þHRšP'ÁZ4Œ›™¡ÞmW¡d«ð~¬»í}„3®éCòÅŸV„qÀ¼MlÈÞ;û¸•/ -bw]ÃÙiC Ëm�‡üˆö%e<0RN–Í ÙÔÓœöX ®YhO{ädb5Æïž6…}Õ†É�‰˜u߯[xçÇpRaç^?— 0ym§Œ™J¥w‹Ö:oüÍ#¤“m%¢HÕ“uÏOGزTÜÓÒþÖp?g BgíaOüEÖYÇ.5šÍ¨ó�›ÃŽB�J®ÄöS+xtK¥Ó_à+ìßÓ~ ¼&ŽŒŒ´ªØ‹Ãa+^ðiåØX¬i3ÚeZ[H²%¨ÿ‘þž ys>x !��¹£6I6ÃÒ¤Ë*v[qªÅ=ï—…¦Ó bºa5†å=câ5®YÑ'm WÏ€ž £´ue›ðgÍÐ>4<ÍŸ�‚£XKLs®åŠy±V Æ�*“`B{¾á|b¨ G:(b)F:îÝAE�œ‚Öþ^}ð�š{2JÂ/†8ÞŠjIFØ<±•¯ZÊŠÍR1mb4™«˜Šm§¢£Ì2IÛÛ<³Ù„õn%4o¨Bk°‘Þ¸4mó4¥†ŠÞ|ºJED¦*Πງ26h¥(œÅ¤À΂L¿µ–4cL©áwý¬zìܰÑíQ~\×Ä¥ 韽È�êøêþS€C³ç Ý­ÔÈð<È õ¡ò,Ì8·«wfC~¥¢{L‹ÏªÞy—)r¤¢KŽÕ�H©9½i›ÀÅ#d ¦øc/øÐ–0u5é` ªæRÄë£AKó2‰(Ô<©t!�(Ä5G´)è ¿3‡&–ë¶„Þn³ë€[Ó6ó€ È~ü­€(wü,g\µêá%nɬÖt|¾ÓK‰Ä~¹?i²X»�Àd°fï�š[–tê²¥�èæáÿÅOß_—žO�Oh5*ø1çä€ß©ú²¸¬¦Úøç|¯?í{K¤Œ<”"jNj!϶¤AŒí¬«Àúޝפ�#»}‹åøsmt&s¸…?•kFôzuÆ_Pš”·›çI)ë¬B[„dy*»^c>öã0GÛ—Ô�rf~ž ëÝ› còf /tCrÉq¢åLân»�jÌ£qJYap%óŠR î ¸ 0ýöZSi‘ÁѪÅ'Ý߈Æb–Žn6¡¶«øœà"Ööb“ßÐË%Í4?pWÄ80e¹â̬ÿzEv�SGo¤±¿0 Û’c+½o_¶H^EÆžî¹`ÂüñäO ,Vn3ÄZ}"J†$:âp5�•‹,&½±Ï‰Rª0 ¢~²í7>5–�ÛFºS{uA“÷—k;@sƒ°¶¹ó�ºˆWöÅö}¡VG€¼ÆKPÁ¤ §ms¹žÜ QÍ–¼w9øà§‹h!5É–*ðÖÖÒ1ªÂ*—­�4ÞÄòŠ…ßúoÏ@BYB÷É! s®ŠÄ$­·ß½yÃX´‚¨ <÷­š¶ŒŒ•ºî¼ÕM檱�Û›3Æ®½‘ ÿ€Áhòó}h,XhÍ?e�½â„– s±[8�}6o5`@þ¦!™øùžÇ&üLdÛj·N㜧®’J• ÇX� U3ñ¤zù�æ¯à G˜xC{å±ÚÛN‹ôÅS(ò‡PLðâæE¨5]ݵš}•ùã?/¥ÎàÔ²=áeÔ• ™'¿uæ6H$™ûrb*L Á:‚劢-ÁfÁ¼ÁÌÜ©3Eëªí�¸V�Ø»ÿ³ÜH™#¥¯ÜëGË,ÏQ½u?z—†xRo)F¹fÁë甬w8Ƭ1×qÃi•Õ>%dŽÈúûó|«Nq`§TûI=¹+ÅãÏ2–oÙúxwŒ§Š'÷è:< î²ö˜ÄîÉ(�H¾±™}ýjE²º¥Ek6úkàà„´ªþ¶~k?�ɼu�Y<¥Z.7ï9bïs‹�|°a-™Ãýö™“÷Ïв÷œ#ìföw*4ö·;6íö“)…Pßä}aÊx>F€Ì(ÇÇÿ2‡1n{Œã±ÅXç6ó1pÓHBfOñœV›qíUQî}QWNýùO¦pGé�‰ÌÙŒWE£Š|ø5šX\x›>0Q´õj=ˆþS:\µÑw–«Àï¼,ò°ýVÑOVZ¬–p“\ï]ÿË€”©ÉŒ>‡+åˆit ôjl:gHš¢Íq®÷äÓ¹¹:@¢9€ bj¯öw&T^ÉõêÑ�Fô˜ÂÀ+PíÛæ� ¾ŒöÃÈe~˜Õ{‰¼ÒºwÕ¿Êp» EqgFÐüFMiNe{ßeŠ5+‡Oý_níÕkàzRp³…Ê䯿Ÿðœîˆ\ív< ‰(­Ü?]JemŠHBRvjÎzù— ±Ø•òÛ¢cÉö)es1OåÖñ(hñj­ èµãQ0‚õ¿o,ð�3[šþpÑïGÿ�e^¬fœy‘¹K-Â`¨ÌU),ᣫe S¸U‘„ ²YrobíZ{ŸÂÆé¶Õv;ûÅ–ò¸&¹€^¨AX,»eL+�c ¸é÷ܼl�­ækÒˆ/�ÚD¹µø‘ cüã[Cá`32}P×f/Z“ZB ³ªtŒ¤p: Fò‡~+à^=Ô:Úû'ãä·cqâòküµq›þgǽʮSLÿ‡âµò¯ RM�G]Ö�l Ç®zuÒi ‘xÅéoº…üz”“°{°­ÅJK|CÅ`»u¥^‡kÌá‚ÉP`7°ý-+Q¥ËäsßU¯\kKÙ×eƒk> � ±ï¤cY÷Œô@•ÚòìD²ß F9ÑqµS@�B5Àƒý ï% Üb˧۟AlòÎÝ.Ù¼5éD‚ßt&²Õ$ê5 |I.iä°cWWÑ…¨jH<ÊdäÜÇ3;í áeÅ[áè¡Ý®ßÐAptU’?ðÂíûÈ.%CW 0}»?š±¼`õøpAmD£œÛ!0ó'Ê6’ýØ*Ô¥ç\7á Èʰ¬oA: G•ŒPQj$$ˆ¶ãƒm¨øFe4¢{j`k…U½%äµÀh³YïѬ‹Úâ׃Q{ºùwÅ*˜ öJ»{0'>ûs|¿Ï �oç_FÏI·KÈñÈ3òB[RÑE­Ãí� ’‹Ù”„�ž¸¸K<;þîM°o¼g2ØÆ4“3\”µ0~B5_ K�ë¬(ÝÖ›ãw[ƒË[yÍüÿÄp>Û=ª?q;(8£•éK0”´FÙªCˆ§�îÂ7^Ö„«4 _ȼÖ¾ÊÉŠd[Ö×þ=äuŽùÇUk|1!çÒì�„›iëøÖ¬iaжwrGZ}‚kÍ L¤ õ�ÈFì³¾E ୹ĕsÅ ñOºâiu¼‹¶uu²Á«EÓO§{ Rw@-óú’× ~5¯ífdäNž¡°y=£]ÜdöìI·g°¦*g¡4cÀAã©<½Ü[;Žd: ­Š+ˆmàðA¶x’…,"'0Vo<&v {]sèºoÀŠ(k�k"#G²g|ÖL°žMråHìVÿc ¢Nö ããÖ‰üM|G¦¶B ¯�=[xòÓBö†š�õ1ªUî.hæh‡¸Bf4+P £:š—ù]É�Ø'œ¾{çá„ý¶Ïù×çÎîöO}á©P*·ÏÕáfyS´hýé‡]¿hàÇ\g3nÒⵚ¡7è:I[2ŸäT^ù–¡¿®•ð+…*®µnAúÏ[ÊFeþß«oÌ«ã¢dz…šì)I¨:|C7¿Â »:„–¤æÃŒã,]jìh @®´ç¨Û§ÒðŒ±Š¤wT2öÃáApúI�‚sIä°s€«­J2ŸJÄŒ_Vž÷ôgÍ›C%­sa}«á<…}bÌ?Áéjh��t_ë‡÷Ô–¹=ú¸#€ ü&§ùû¸MyDºV"jª†J~^eî/ùšdLØÁŽÅ›wÙ”�þ·fzîmõÂ8Ke­ûé"^Љg+®KLŒ6×N.� 8ëJš>ß -0aCÀìƒ8uiÓqŒgm þÎB(š•1.ŸQçb¶¥‡]tZõ1‘cCˆ| ¯Î%„ìúD¢|RÕ’à ´ d{4M .g퇄 Üt1A0Ï0ßy¦ù¹<&d ²½,›áó©Ì Â7P‘G �,¼rüì(ªÏùziD¿¸Fâg²»[.,üT»EáÄÇ« ¢EI¶³j 9 ÙX%ÿ¼½Ù¡MH^˜=£½þ̇À6Ž*pòâ·�½˜?�»áñ›»]Ð Wè âvk� aíL·C»{ëÚ¾KÎò|A¥8“†Xê”k')%éAžל¾àˆEßĦf.ë ufz5žF]+”Î}ý’óJgpË8¢»“WօЇïY#`�^¾ÿŽs†S˜,Ívsb£fß!t3T)ÙÃ7õ Œ¸Ågü-•"¢›*-uÊm½�Fy`f-.ˆ£öÁÆ)¦n+ ±E|Æ  )¶zyo*¬Ê`R�+¶Ô�L@E�Wý_º†%™ÂÔ5‚SˆbzP Ã÷V„Fcè�e¤›opº´üÂÕ��hüØ'X >ݹë?2N¿¸hY�; Àà®ù…’WhÞŠþ®&}3•†”¼åå HZÉš˜èʲ“òy<¸½ÈDÿ÷4´˜¶%–;¥ñÿ.]†¡%©¨¯©3˜ÀøÈÉÛ.YÜ wÚ¼SË’·~¼Þ9õkiÊ7‡JAF 6 ÔçÍsvÍÅaÂúª'±Êñ‡Ägr©œϪNž¶©yõ\|ÂòÀÐõáIzHŽôÿ+gKHÎSï‰îû«™ íºÖ+ÉÀz ð{ƒ»Ê ¬<'¤ V±å\bÑÕzÂÔûb)ãåªxÿf|NOØ)�¢~ínÜ^vmõ.4Îïºã¢E>…ºN´*Ùç0Û0Ü[Qθž¢Eo´Uü‚¯¶_õ2ßÄ[ñÚkj(1нW<9oáÞoÚ2AþÖ)¹Ç­…ƒÅ88Ñ©Ù˵A#,RçZ™¾s”Hò­c!&ª×<×”jÜ€~Ϩ°S‘3ziq�õÖ>gD_¢~–ßß'.6ì>BÓ LêÙyË•³ÈeRç­Á¸Umò—Êß}À¡Ýßvå°”¼HwÏtáÉïõÕŠ�>„G.ÀþLu{—î—ey $5؈­¨bi@˜—çóCŸ:ýjå•Ï.Á]„ãpÜoÊEÛÍ[~‚$Ï­e´ ¿ÃT%aðïÓ"›Hºsúé Ä2‡§Rº^ø>s¡'æpYˬºïÛ/×Õ†�Úx4S wøàžèá¯W ÏQóù+fnë¾—X((€�Å÷re5dëo3¢]ÃÌ|îêâ£<�¶Ø��Ô*Û§þžËq{2ò©bglfS؃,žöí¯õ£/ø k±¼Ø¾ô"X*ÃÎÔE䢎·D)sL%UQžy lÓH;P9X$aJ£€Ý–Uèž %�éž}¤Åç<ÂÒi’cò˜lYãˆÆGlaj3­WûøÔ5"Ô”9Ž`›}Ðó¢|=%.g@‹˜ã^9çÁ•�È»ãv™¼…Âhã€;ű8TÙçnx >Æ|Šè`¹ì‰œÛãå¥ÎÇ9rÊÊ6Ë¡�j:õ׊2ïâÞ•x6壡Q lvŸì :M«Ú&+†'n¬óçÙ³7†«MgÐtžM· ÒÍÊËâ1ðôKÍU–YÍž÷· ½�Ô®w—¯Ì�F@[BÔ„‹I`o#e†ˆu¤DŒŠçëï€DÒwÕ¥·ª¼êx§jüZML`-‰¾6½�Ô…ˆû…“n–T±0c^å| éj©^8Y*Ëçí´)fÀ‚6‡ëƾ/ˆ‹ºRu¡@Ôd†7@y9Rž�b„ÙçG_Ó§tôF¼[¢µCmÿò”rµ™)êí ÜIÍÒ|ý ìÿ %Xf±O^ þÄ$éýÀ~su?ôB¹8u!œD+-!sWÍFˆv‹~ðÈÒ5‚×¼¾àÔýdÈ-M`„j”_A¸�cÆái{|UQ‚ãÞpwÎ/$·5 ¡s·žã1ö\ÇvˆÃ`›¦ ‹—E2¹bOãA�¿€x‚±OœÉK¦) nʳîl»µ¯¤ìJ˜vÉs‚ž&#ÙºTïÞ=;ûͪNÀ�Äd‚°œ£ óË#»cb—!ü×§Ð|^ÏÚAqÝVRa‘c«•ËuO»V3‚J�í”íVE5nL%ö™W©«(Ds•ÐhŠØºûrO9úù¨°íjß4=÷i©m݉àSjͳÿ40ú:™ZÍ’çþEW®°–SÈkF|Lò:IyÍüªÂˆèÓw'íÜþå—j±í3¹>•ˆy¦‘¯i‚eˆ-„ØË`l¤Ut/ÄÂa34§Ê2ez=±€úàŸÇ�Êeóòpõݼ8øMÒ“ü§¾€QÆÀ›±þ òî6)úx4Û¡ øıäÑ(ze"cu[!=[þ¢œ—U‰ÆdoÅ@FËÕN·²à�¢ÝÀ’‹@*I5¡t¬«vÖ•SN`í¹WK9ŒWmh²ÂÑ¿�\X �²Ù/HHËv*¼õÌc¤+ù,¡KXçŽàвL;4LääàÕ>¶vPÇ]x ² %Ñz9ϼž!ãòp~­Š#§iûFlƒiM•Û�/ç\º©ôŠIiÓÜÛLñ—ýS?x�mçæb¶Zªlå�¢XÇ…šÒnà¹N,âdójŽPßG‡ÉÃòôÜR ©Žà¶ý�ÿ¨è¦¦FŒ*Ó Š3åë䌀0.Å Âüð¯¹]–À¶²"¤ÇKŽ#rÚŠ `}_¾ýích�©03aä Ç¢HX�£ŽPô–š ­üÞU‚MèÀøRü.�å1áç@Dê§8don³iö.ÈcƘڂ r"‡ì;Lò"�´8©B7�‚Àã r}*U—”±ìkÓ½ÉZhÁ™ÍˆF$Á4µ†ÞÏŒ·~·õžÂ¢›äéÍB‚ˆæÀð")½ú~‰mGÒ¿Õµƒ·³GöJÕ˜)f ¸ˆù荓Ï{ÊË.Ô¬‘0§y³¯(E1‘¦ ¥>\Ë{àDZyŽš’�LjþM_(UE1Cy’°láÔ­3 Âf«¢âƒ*‚ P?Ndï[ãÍÒpÊQËð—i¯}k©Á>£+|¯ iK¾–@ì 3Âed§êeÆ¿!8vPQ­¢ò|e÷qÉÅâšôûíÆ Oñ:â‘JÞ¹ªÉDØ8â¸DG®„JúvðÙ�oüËëT¢'ËË­ô½ŽÕ‘õ:½…ðÒ¼J/|j¾Ýé] øm•ž wÖ¹"<¬ Ë‹HŒ’6MùÄbö…§%9ZÏ»›b·VDvs£ ­Vô!ÙEñÊhxéT‚že•�(c‡Õ÷ÏÝ¿¶•²1–æØ¦úZ-6—¾Ë®…üµuؘ]÷Á-´H#¤Gï‘ Y{ïå6Då·€ üô¬LÔxMZ'ÅqëH›M”N®×p4×’îÔüESmÃ~ë £½vJ‚¼z^ÕÚ2Õm2òaØ2~j|i eÛJ·fˆ1&Ü-©‡Ö ‡}GÅÐ:\ô«¡¦\«f‰:RV²ƒuˆw8¿tË_+.r Ëß‹ˆX:«–hG Õ™Ëżá¬áÉ×öÌ�BNï9U“¥zpŒ%˜›Ò7V“ +?­ÔfÐì±oW~"Paeþ‰ÚÏíꊶÁnôw':ˆÿªøýjcÜ)P€‡ü ©:Äc*½¾ƒÙû!WLÛÕc ¼EÀQ–ò㣠± 3|Võ²“;×a¦ÐÅ#ÎoêM…òµ8Ù>Û͘þ!+rèc~'½•J#þúEÒsºE ð³MtЦ•î6ܵÿó·G�¡ó§úqMNCƒó�ßdñ0MôœÇë©@'�Õs9Ëz/Þ¾Â!Qü¼º‰ª¼½ž” /˰ÿò=7~c•ÞÝ€ÿ2—4°)¸‰æ˜Ã,Ì·mõ?åIe|¶ôg(?LdÓKòeGv)WùuŒ‡_[L˜~{KÑ ÝÛaôW§Ó€Œ¹Ežoõø,¡#½Q†­«OÄbáŽ,Ë�á°ŒÕÙÿòã„ð èq´MÇ‹à?¶éŸççèò²œHáêèŽSJ€ÖŒÂîÀT›öUhëûÖ_¶æpN�¿Ek@ã—Œü�Ssx|ÖˆTáX®DiÛ0‰PbY^5™G~†ÀÉò£cw.Ë c9Rz¯¼‚juJtÚ_G%Wj°B[Û³½Õ…ϨLý{š'pžýôFjþ´ò9léé*ÐSðÍØ“]P¸†-+c×–Ûúc¿&df¶û´ÚÒËíÒxPX_ÂúàVxe( ÿ¯HbC Üã¨Êf!ý.À¼sV2V:óE@àØJ“QÏUɨo¸EÞ¶[ê[§W )CX°ÖQáû…¡!¸¡‹;e‘Zð~æÊur­Qâh[2gjÀ-}MÜ®ÃûíLö͉‘²MiÊ=ÊwDdiëäˆC@È�æ«Tom7ì䘆ÞñW6Â’€c~ëK^ä¾·ùô}¡"pÏØUò“ S êd±3Sÿëå·HG6ýµ8$q83t3\ö6ÌßèS,Ó_G‚ á;I¾Lfg ƒh-YчsæZ=ïgWF5b7âFêÙ` ea ÑdV° Á­_ã…Ѭ•kÎr ÷ù9¿ 3í\wÅ¢3“G~«nЇwü—]:üa*õ €Ib~“9¢ HX)K§&f„£CÕî½äÌ •ãNõ/¹}@_©O DÞ-˜]ÀvþÑ¥ÁsÒ¦¨�bBx}×÷f¬výŸjògê<*Kõ�ðÝšŒ|Ý�Ü=Qµ_µÿ› …þœb–KµåñËr£¹X�ÒR•þV×î8¯¤/ ¸SÄ—ô÷_÷)ª© ‡¶›æÈ›;gÄøjè†møØ‡Þy…,÷¿,²ª¹nJ^k„.k#e!mD9@C‚0᪤’âDh'ä1ÁØ—CuëÐŒ…µïÛ#R¥�×AL£j¢J„%³Þˆ~Nù³¸Š‡{íA‹ð:h¼1 &äGŒÇ'˜”Ï€ðÞ)VÈfëêß!vÉ·%·ôšÁ+bÁ„Î~üæ '�1qXk�e¢A['ŠoàÌ�» •<‰Âõ%Ilw‚ð? •�sÖå®ÉN2ôÐgio;ç˜n‰7Âß·–.Kýt S =Xƹ°]U²V¼Sa«˜ÛavôZ!LÙ¯„*�ãxÔ„z¥ö«}tÉ=µ‚'ÿˆi1 VȵwPZfs‡Ý­ewF.yÅv“’ôtV’©ÀŽp6NžS™?™*Õ$׿ÃýÒ—g¸Eˆ—Õ{ÚYËrÀþ%™U>±!S^ùQæ­œF]˜ìØQÆÕ\¯ù¥ᣠZŠ8¹ÿÝí, ti^Û¶mÛ¶mÛ¶mÛ¶mÛö{mÛw¾™þ{ÓQµ8™'3OÎJ ÑY^âúþ9ÈÞ½§š½á)LqPÂb�×]ø<Ú^ïZ]ò (Óñ?2 Ë™RyöïOár‹#Å^¡ââs�¾ò‹š‘¢q“z£0gúGÑíô)—k÷$…À•™fÀâV·ƒÀ-%ˆ» Êw)õ«¼Nr› 1|þ ‹ï…á˜qž Ž šÚBX÷_Ëo¯bQó�Ê’åF^Ã! Ƥ;ç‘Îä éeÖßVÎää*Ý— aðWËñÁ¬¿—ü v+ÔØüH±ÐJ~œyH°`OCS/0þÒVµ•š[[}‘²æS(‰L7{ ± áÙùHË}¿)¿®CØ’Žóqí3ó„t”1¸‚û?ÏUzwùþGdð?8 ÷«#ªŒçbÄeW%ÆmˆN-.þüIvÐù“èÃÊ”Üh²ð‘Ý�º¨öÚA‘+,àƒDÐ\ð˜cS²#”<VƒÈ<Â�CýðíÙw6œZs*`E6¬ö íËÆ 4Çû^|@á2®`Ÿ­ä1yx¯µgõc$Þ«ò{Fwðéø)*ƒÓÿzKGLDÕ\Z;¡'ÍJgP÷²6ý6У¯5”™+ü5umDtZ ¡î¥ ßýZEälaÆ‹ûþµžª*²¥E¨a*$NðÇÇÂ5ñ!L™"÷Çgþ¡R Ó °Y ÿαp¼«I(´€Ì©Ý šw37}QyÛÎeôC+¦Œ®ñ8ã Ú*k[R¿[}#�"Ùr³Užfµ‚–Žå«íà ¬àfÂlØOÇËÄ^Á™F«å ¥2>Úx8©Z–U)¸�ã¼ :ÏDPæXöEk­¹øY…@šçãwZ­âûWÉ];‰”hüf Ê�VÛ·Ð/;*ÌAƒu¸V‰ð€âwø8c'©õn€ä†|ž¦ I}Õ)´WDíFôûÕëeç;)¶:Hòò«»Bu‡‰‡½„¡½å!1¯g x0aÚ¨-Ú8%®ºè^Ñ�Ëi^Ö7à˜u)§Óðáó…ðæR¦p÷T+Õ®”Àø‰ã¹Ãì$l$—Æ*኎‰B#óK�—`L|%]µ‡œòS0껊®2í €»ך—–h†jíé^¯CpŽ­_^cþ5“çÂ.£œ¼oEy&«3*&F[Ö¿hgøFÓ¯ƒRpi#T„f­X,ùÔJ�Öž>ÄšlŸ¿º@æÍVøîR�ƒ)‰D&ú¢üGG:<þrþ÷èft™þ®”F,Ö�Ö/—‘Ñ5'«.7¯Êbø5aÜQh¹ÞÉCÏiUw8ƒAؘAÌ!Qòô²§a¾aauÊ&#y£s;7ïÒA±‘ª&=­iÒJèí4ój<;Îê_»ýe>nò k•�è�]-¢TÂO¸\¿ˆ“þ‘,§ÝÌá6¼ÛÒŽ ÚÓ#& S˜Nd"¡v Ž�׳HÛM2<åÛïű‰ÚÔ“¹Õå`.Õˆ©uå9u£Øœþ †I`Ïp€1�R|Êš3+E^DùƒH?ÐD�%A)†è¡íÝiœòÁ;¡I·ÖK“ÎsJµ‘Dç>"Ÿ¬ªidzŽ©$§µÚü[ö ‘º;ÓÚx]›Z]Œƒ˜Hî¿?ÈYÏtÉív¥ =�f7fƒ$vƒËOlò“™ˆÈ*�Ùô>ð$'wÅà™ ¬Èi™6Hx7‚÷eÁœÊ˱eÍÍß‹K—ÔyºŽ5ݤðˆT-‰»}•¯§ ´�'¸vhÅnyäc)aƒNÃ.|a×ê@¹,§çoííÔì]’&Є‹L¯ò×Áð©AfÝ1BÃTÁ…hY:>%.(éÁ­D¬*�\ÖÁe°Ü™Y›St<Τo•˜Q)å­,_k ,Q€ËF›3y�„G©Ó;š›ÔáüÕIc7?€5·´f8Jl†Ž:'çXG€={<¨æOáïïj݈àž\–eÀ1„�£>²T“ûL3z"Ocà Õ¦ò�~l{3¦±ÁËèþ�œ'»h4c”‰:‘óçL�ï´ ì°ù)áïÓFˆ¸v) “ÒâãN\{ßn“zFOE0qY <ÂÊê·+’ÇD€”‹Ögýaø†SŠþ‹ÚŸÍ»[~¯A¡ºôã¦ÞCX¼]Ö9a àŽŸn²¼é{^ÇŸ,¯ÔÖ¹ >0ØéˆFú[he^$Ò<1h"•îc âýÏK_Ýòû+ªeSfË¿>iE»ùC€«ˆÝãĆ=|ágý×oYŽƒ—bQèçÚ;}å~óÐ> 0r¸€7E¯ Q•Åé[r3ròÊ&æ6U!Ì(Âa_í3+û,?�+ 9àf?޼Õd~�‡SåöÍ{εÝí'-OM" HS"ÂÒ�P¼àÊr×ÿ…Ÿ&†IDá¼;E·ßD¦HZö-™ ’6n~½#Éš–e$´Cò_¼7þ¯@äÜ8)Ð÷<;ÖY-Á°«~Q¬5ò?„9ˆ¯",¦¹(¥Y–Ýê¨ß×T +T´y/ �xZ‚ýWšA7M1xÍM‹×�û;(…ø>ÓTgá—\o²Cm"Y±=‘tÆO¸¯¢‡ÐKŽ«NmêZ'úzm¢tMø=wÂ.·úF@-6Òé�>ë’ÀǪ3nE”…ûÌò²ïVô¯"HaU2ÈCÿñ�>çÙPþ"¬„'„¡ÿõj¾O•ÎCgh©uƒž¿/»ÝºÈK>Ëßj¼q¨õ b)µ' ÂÇg¢da}m[%§2´ñ²a  3åyá|ıƙ¨’„D{& aõ%;pÊÖk sÙu°hÒ�Çññ…¼  ûmåçÜvbd*TÁ=[¬d±àW‹RêÁë|B{HôIœaR`î©7‘ ŒÒü³sšïÔ”™Jà0jÔŸçQ.·e^3›ŽÃ3äc< Pëa=:MDœÌÞÏ^î­Ö×Â:ÃŽ~b޲¤ úb%Âh&2I¼ä®ë²¶"RŒyäЗDé I•îA]¢’·ºf¬0]Ç‚fQˆÍ©,ˆæØ‘º�õFFA5(Õžÿ1•ƒò™v¦²ô{®#Ïë:C€×ÌÚÔ>¬w„äÈJt¾šò?‡o*/HÊfĤLãÔ?GÞßÇ‚‹Å·Åš¶¹Í¬lšÂlé¥úÀè;!ØÏYŠßo1à(‹öä9ã«GÒè|g].¥�Ã\�£r�¹Ê1mÇn{¸�v« $Í€l2€“ˆéòÓ'AzQÂWääBâ–ª·˜j½{·$~õ«8¸žU4I†¨=íõõ4[ŠñÖ1Þ #Km«Àc“˜W:€Þ O±Þ¼@ä¾ð~T ÆP.ÿ`�·F&2 ¼;¨uÁ¡ƒÈ´ýI\¡Ì軞Ua9ÎJ‚Jõh˜6ÌÄkØë¼Ò)crðÝ a Þ‚ñßU:§·ŒžrèhÞ$0¦ ÐvC‘/Ñ™®ß‡YÖ¡X¼ˆE'£ST�MPÁ‘ yz~ŠÐËŸÃÔnÑ8‘ähŠ4ØåÄ”ŠÝmŒÝØA4‡ý/y[¤„ cß·Æè1ÀVý秆n'ËGÖ}—]ÕRVyküÂvžT ²÷¦ø4Õѵ­Ë9ئ„,wÕã¤y¶ø–ðý}»ˆ±ë®]c™‹ô #tPPžô@óvÞÈùKB:´Ì± ’ŽÝ€Î¬ÞÓ¼à‹¾ctÆøò;��Bîl,ý'§Álåy¾ŸÁÞK#4�aÏ©‰Î.+5ºntòSî%)‡‹~#%�ðôé%�†\‚�¨MnK_Ôíteå›S¤n׆†v¶��Õ"2:]v·¼¯}m©”‚º€È¼ñM£bãcyS¿å{4´Îx¢k”ÓÿÜ)©vì[ ¯iÈ&€¿YöP" ´¯‚�Ø—ð’#Û®Cµ‰å�Ùc’rÀñÐÄÞï† y¸�Ú½!¥Üø›,©"@ ˆ1­Å¶?Ú-,iR»� ‘Þ£«ÿÕ$‚°ÊLC´3GÙpÂ+Ö¹E"¹ê:Œâþ·�"­úQE‹8Æ´¢†_,FÒ6fƒ¢×¡{ƒ¾á q`r—šá¸“‰Hä-î�öá(#K% Qô·wìäÚ€K.È*™lfÍ‹9!PËr‰=ðç^=®_iÕÆq6?s[ü{œÄ`%¡ÙQ]¥zö`ù ìyYU•,º�\CÜ…L�à±EI„Dm ç´S‰q�¦ädlÐ-rì¤íWû�¶ó¿Ev(5©÷Ls%Ýâͬ„ ÙUAô憀":ÕŸ7v+oÍÚ#B=©lÑ|+ÖÛMq¶È¶Þf«Í-çKâq háryi÷é§ß…;[�Þ9`Dw¯xÙëµæ?Tî÷¾ä ñUX' Å6ï"Ó°þD.|æA,v,Xƒl.‚“M{NMò7}pUåüeT @“]døkRífHŒ½Ú#%íøúÓA�Ñ$äòwÆÀGC!‹íÛš3¼FþÉÃ%«mM)Æò’¤‹uÝ÷áÚ¤¢&t/¨¿`'�dÉ#×Ä1:'FTδX—„®àvü|s9(|Bÿc§Y yïÝÈ3\± -¯féh˜ÊöE]-Òý—T±Xk¤M ²ö±|€=i9Êa«&/rFæËE[gN<å#v QòÓ´Âu<àżl6핌l1mãìB’O¾ ü|_8È"sµØO¿¥rI³\zJv±«Z \þ(IùDì¥Óñ.Bó¦Šp,«cš-ø¢*íYò�(tF×2€ÒP¿ßj� = èÞn¬èkRÿö"õ“®×-p+0œ»  Ž…œJ°}°Å‹IÆX¬Ò ÜH;–æü”�s›ºÛžF,ƒe?t`‰\}¿ØÑËœ!“½l`î¯@¸"ƒu#W³¿†œp÷wýb…ßu€äl"|ÿÂpTŠ�aäÒgEcû5s7.•;wÀº„"+Ö÷s©×¿Ír̤ÏD49w©¸)È.Ra¨/Çæ àªA´£!–J+ÍëŽoÌhóüwW0¥þÕ¼™ùœ{ä‹â¦«*Ö�„f�p8š7³´�´õ#;ÛõDÏO—qí(iÛ2íÉ4Aª´—A2{ß߃>ƒê±8"éÏŽŸAÁ½çpv%›í� �†’ÈúG:”ᣊë%É=Â� õ­Î¯ ÙJáFP5¬Ï¥q ÐÏé‘N¦ŸRÛrÁÑnß©I'äq»øË87^])ætª`;z9 eÚóô™A#}{0§¬íYwvcy¼,÷gH8ò„<õÉT…�ŽçóÒ"mIêm‰ø`ˆÂ G"•÷=À΢+­ìqHï¿´ÁÈz�ÄHNý÷[ú=™/&ìï»i¾çâ=×å©+/ñOPp؃GY†ÙÖ¤Ø{òc¦QqòÚÀ.Üñ:F‰RÈšå}™^•Å4ïn$V:? {¡û`ÈnˆÆïÛyú¼‡J 2w¡!uG½îß(Ô—¼v®*än±ñ­Ÿ±Ó­¨¶(¨ë|œuZÓò«èeZÔÌ™ »mŒA¦p¬X¸| WìFz6C',OŒVQ>øLêQ)ôUÉîã™_;^zÅ?o#D–ß§£õ. ™dåµ\Äþ�N'+£éï˜-nq„: šùÃÜg±ÅÅÆö=xˆÉosxx÷ûÊ—î‰A7°ÀƒŠ}WíÍ!O7žA‚oQíß…±Ú1´³Éú٠ݯö ‹ÕzÕ®ç:2�Õù½zí)÷4}ï±íøÛcÜfËæ’û¿l-‹€|±u›h1}£©w5­7ŠËhr¢º–uÁ·Îƒâ ·º?‘ºMªã1gÿµ¸bLÉ윖¬1𠻢zìfðs“ ƒZÈS°cšTIáðè°�j[¯Q¹übm¦ª#BÍÂb¦1_QoÑçjJúöuìU7ä¶�•9óoÒpð(`o¡ "©8,¶‚KÔ¼¿Å3÷ñÃ�i?“°™¯vRÙT@V¹¡ÿ‰jy¼®b�7=ìÁÈ¡¡·Ø³Î#^àžýT§È±Þ{ŒOSá½Û5ã·ì·×ù‰*f^(ä3r';Šƒ5fP`]ÿVé›rÆvjÔ,¯j04GÊ,8J›©F&% nÅÓ ÏT£‰,´æå§@”•Õã·s0Õ_þ¥úçÙǬÆ/0š(¢Gð >¾/¬91õ‹©)­¯°\¨¦úg ͼ•Šéž¶ê‰W�#—šy«öl†£å¹](ˆ\?Š•jìäWÖœ¶g‘²O†VýLýo N]¨äí9e¸þÓÕ1Ò«º—Ñèë±½iq�pãwT†�dèðÞ{�Ï3ÄX]§HöPT“9U‰%atÍgiÓ\¨* Ûõ„ƒ®¾øpÔZ7 aÅßå¹}w69O3ÑîOÍ’æÓ¤óôæáMð}ðÕr37ŽýÏS1GÂn]À¿ÑÂÊ1!Ã<`=\gw¾øRL×aÉòÞÖ æ-¤Ëä”w¡®KÈ£¶‰¢çd9ÆßÆïQÌ¿¸ÓU:UËNHC­Åƒi³k¤êSwÜÝ;­ÂqˉŠ˜ /¬yAt{p{à†!¼‰×FO_:½)Åí•A.·?ÈÛu“¡ÁˆÜ ÷~d²¦S�<›:)ýw¤7NFõý+yα­õ­å–/ŠÖVÄMvvõ(²»óâá=÷Ïè�ñgöy0w·)kÛ9c¡02ê.R�ÆÉªöG\ž°.Ðèrª¦ oxÊ¥s]oeÿsÆï@T]%Ò79Y~zõ·v³¶0"qâG{F]†…”%éIjW C‘ŠcUÙ�žÕŸj=�{,ÝPøi»BæØ”Ÿ¤³èöû é½Eƒµ:u.â¡% dó.7¬¹Q³%x7,dÆwÿà.ì�Í쳞I�”ê#jÉð�ÊñÄ'®8­˜™"còž¥<<ÍZηwL£aOH™ßZUвfŽ™Ë í@è÷ÖmÔÑÞ*YÔö&v_0Ãpد%<[PRjQBw  -èe‰ð;o{‚qn)JžÑÕfw÷çZØŸéJœ…£%–z)î–°ì�³ñAqäU-É£mÞÛ¼]Ž{7O *Vk=—bnïu(˜ £Ü}P#Š8 4°4ðˆ²(.€šLa8Wê)jÚô˜u{2^o Dt§¬ÛHC ßÖd¶Y^ä�ºcT í<Ë{7áiôäðÐÐü`±lv o{LŒ¸7‘¾ åÐ&IT²#Ý×¼BC¶ùær²¬Óì‚�f~ª²¹†ëÐàºíõƺ¡Pa­a÷P¢‘çr&†äQP@ö·À¦+¾[V”Ç÷[o>"Å~. :¤Ô«Ñ`²¨“Ð҉ݰ"ò5¯>�Û÷Ð)œ}Ý©•ñŒPG8² ?\ЫWiS"ÇoW°~é s¤ó è*<EÆ21À4�“0”jú�Šl�Ö£¨¨´èºÌÆ\X¹nJ™ð\£�Nߺȡú~³»9íp`ÔtÁE¸ø€Të›%XD5±&&žhxbôe4/�UP¥XUË©SéQå%„–[s›¯wÝ\–I€ËÈ+ZʦøAo®Šná0+ÝÿÖ²Ôëaª{ADÊè猰:®zä 2zþ¸—„íHÒü`„Uÿ®’<[µm>ný�Õì²Ü¢9Z™2åÓ{`&[9OœÅ³¹Ö�Zã�TèbY]ÉØ@ ô mpë”0[–8VAFY&K\œAQ_¥€Åxþâw-žÓCÔCx?ÃBg<ͽµ¬�¼qÉ�1îÝ/MçÐdÙã&þú… ’AWp�IyáÄ6Ê FØPmM Ùwê�8ì¢eðMª´õ±) ~–«ë”ç¬õÔ{/Å¥Ûi=¯¾î®¡`íã^¹ûßvV‹øy ÷$?¼}@7›žg(Î9µÃÎw8Rž)´$K¥7YD7_4ö&3<ù�m“I𘭜6`ouL–•¦ôÇ]ƒVZlQ7õ`Ö èZ_¸fÜ“B öb‚%¡CHÀØ�`ŤN·ÈçZ·œ‹äërXµîÎ: Ã÷%¡îC~ë¶H Ÿ†ïÓH.¦ ieó ç~kaë¿ÔBŒ øà¾Fu‹dinV�UéK\ÿÇž6l—¢e¤ªðXjŠ þÉÅ,ÎNO¾D"Ÿ,�.ØlÐÇá\Ä%~�™×M'õì½(Ѱ7-׿�ù̃ÇÏSé‚ -ÌK‰¸Ìk¨É_â„ý:¼àctù;s[Šã í%Ÿ¥ûö©øA„r_Ãì[�ΫÒT0Þ‡M8÷wØ¿<Ò®Ó}‰IÈþþ¨ÇcãÅ+CdI€£×Œ1wzÄëÁ e�WPÔæß|Ê߸Šg³e5¨}ƒìK!K@ ÈÍoë5ŽØ$~[ú‹´åwèK°í4W¥Ö*Ðw|‘<˜Tqš2 ?ÎUôÃvuzä# h)!—™‚~Fåö~ÑÖú €Ñµ›6@C(9`ƒus…ä™ÏgÕ×AÒ^¦ 3:ÏH‡‰>?FjÁó `9Vˆ´‘”ÃÔsÖ½ÕòO`gQO–1l­Ã£0\k�sSx9}XÉBõ.ÍMj9ˆù¦ÿýX5Û–OÕ0rÚù…ºò{’HÓ�52ö(…ED Z…Âò?ŸEÌBx›³v/å_äéËöVz§”#Oè˵¿W™ô Ì)ž` ÀÉBúéI$nªŒo1äôoÍd]PÔĘV¨-Š×‘ˆ9%[“0+ EJ��…z㜅²eSð^à7ÍôrúòK‡ €EöÈ3V}xm=í7•�ê)�Õ,³PO,Ïðf†t~@/ÙÙtÉÊ2tÚ\?Þ®›þ€¥: ãr¡û´ úfÅ¥Ü#¨Ø']€ÜLºŠ|ÚÆ”Ö:Ï:Àq Öð‡ù7b±Ë¹®D”‚Æzxÿ•ؾî‘Y@AÚìÕl77v2 ¤¹CåS¬ôâ¿ïÝ~hA³Á_#í3LiŽã/„Ù•?ûMÒdHœ·í¥mÿ(K=·U±ã¸Xf´Öå<˜>TaÄ£È˦Îqi¶5ï•°d]e%Ç}é˜@¼cŸÖI²C¹b&)΃תÃDl•'ží<®š‚}ØnY#|620-­Ž×ž±ùzòA*•äi�I §¯? ŽOÁŒP}�AÁœ)¶Ó $=ZÛc?ÔýZ>w�Ml¨#u¢ÍµÕÂJL‚ ²‡²¸¡ 2 ä~�K6¾QH€pRÆ^õÁgæ–}x æØÛ¦¥ýŸpÝ’d. Òxy¹ñ_”#�X?sæª)¿ÄuÃùÁ\ýý¤dKŠ%ânÍÛ§S9œˆ­¬ š+­¯f4S– ã„9ÇH¢ëaG¡ºÚB±çö˜ ¨OŒGÎ;÷9¦�X½¹¡Ÿ3‚£©}‘Jd¼.²–|ieÁ˜Æ,6k]1™sˆØ02™ê‰5úœpˆû_Ò¤!KÍè¨Â³%ª™ïÉ�oPœÍQÊ>…/˜6Gj}Ð÷TŸ—Î4‰ßYkÐzvå &Âj뀜=)èJd� Z¸>¦Œy_?7Ììpü€ÿh³nyc¼Ú-¿YÕ7ªxrÕ�‹lÕfÊu² Ôú Ž;ÕÖu'gU­ TÀ Ò›ÂÎèz|Ü�N‰e™±œÆfZÊv.ä×+‘‹!Ãã¾…L[î/X¨ÄÏiðbü$‚gP<'ÖQ͘_ä‹™çv¸7Y¤ýyî¼f×y 5¿ƒü– ¸Zü²EÛŸâ¹òäþ±¹«fî2’h*îƒÔÈaϱ R‹•C£r0¬v¢'kZ¢&í¤…5½ÃÀA)1q¥£—a› mªXÿn=ÀñxÀkòÁÁsKUað/|–ÿ6·Àκ[y{í©Âcû˜Q*̪‡+´+ï!ãÈæYíïò§ÑŽgø´�dD8·ù�îºx貟Z¥­>xÞïù|¯Š½týB²;ù§Ÿ€á»Uæ¯w+ì��9á‹AŒ¤³� ò—_5AíXÏO‹àÞ¦�o ´  4wm_æ0‡.Àåt"J‘òã˜P 1VÊ[=ÃÅ]!Ôúîfv-ñá=”jŸœ�Ê®ˆÂqò¥¼†ñ ˜\_üÍ€GÒhãà—ˆXÒ­ ëÁhDÃh“!Þ7I·=¸òåCßÛ^}F3Òo.·'ÌýõHØ(ñ)%ÆO³$Éò,Ø–=€úªª£�yZù溨"ˆ–TÈ,Ò:o|U{M�úaö,³„ß<Ð >XÙŸÄ�u ‘ÆÆ¢—³„·Å%ê Î3¾þ|à›Bƒhi)°´®ë%ß-ääwÙqKq�±s?¹¿V–iýg�s]ÓïÐþÅèÐÖšŠùk\?ùá±6ô='ðaqî\Ñl¢�õÍ¢ñ—… áøv’Q Öƒc­GrŒ‘¦¥õéHâ}ç—AZï!¥¤ž]G‹•Tiêý'2Õc∠#V•¬3Ç鋳ÈgRä×r#ù¶1Pdµëžqÿû¶xiÑ_ È ¸¢WÔš(ª†Ï¥²$ªŠ“vÛk˜6ε…�IˆNXþK�:ÊwôÅÐì²Aþ9›AHè䑉 \ÐìÇ�ô¾�¾élÀZpG©<ŸL6›Q/Ü!Ø:‘|zÝ99@Å0wŠÏòÎ5ž7ðÆŠe›‹ç#[2èîØ0¦U¼…)o–†ÈjêÉæ�⇌|Çù"�1"ñÎ'¹<Às-bT 2oª™kN±ô½vŒéaö]‡ù'{n‘°š¿¼J⟚BÝ=Œ�%?bo*Ø]CL)ô1 üŸ >W–¹T¡…¦V¤o˳ëÏö„Œ .©—8韋 Î*Rõåû2o³‹òH›ãgüظùÇ"hœ}Øæö_<ï¡&ÙûÈ»hN©ç¥R˜,H–ö‘U9ßÖ~…-f\âeº•0 úÙ¢¿’Ô>¡6øû!-:¼&èÌGuÆFŒz ½Ã"ƈ¾ïLÈàû[Wz7 Sd¥»mÿ$Њ¬»‘XSÓŽA(ZÞ‡³#n�±ûÉ>²žÑ‘>(ÄoÙ²-Öƒ’u´„Òœ>ø§?ë5¾C„§vâY‰ ðd¿#Nw3¹{8Û8/Šh©=PôÉ`âvæq<4�ªþŒº±à�¤c2Š}=Ät`¹S9²OX›ƒÇ­OÕ|1<€Þã+Ô"ÆFu ö+Û¹ í¬µ}ÁMj]6 (�0ûbBP×�ËñÔ ×¸�²Ì0'ýcã+2xH›)Vsý~'ƒ«Ç`Ë‹ý¾ Â¨Ëw ç,Z‹•\)üÆ 39õÑa»–V6ßJ¸Op˜>›>Íö4²×têNˆe�…i=-f’ulƒ ‹�*¹ÀFã>„„y?bƒ¸J‚3l·Ÿ.$Jäâh´Üì�Ý@¡pã)a«åã÷�€ÐpS›ò0[)Sˆù�B`âú�OØ´,†ÿîÓåÜÃ÷¬”Úb§ÙýÄ„ùˆÊ/™,—�¡mªRËMÒsжæê�>vaÇ•}ù\Cû9%öäðÉP™ k§¥h5YxVL�gòC‘ÿ’’uÔänÿÍÑ—å5͘¯3÷ÅþúúrBüðâËæ…úࡱÊ•� ˜ÄØAÁ�7Æì‹«í• 1Ñ5ˆ5äÅ‚ ½ŽÃgÅÛS@<Üy<œ*J8‚°t8WI7'ÓV ÅÎ?[†Þkpδ˜ÇB×Ô£ÐÙµrÊI¥‘èìæßùT\iÄß('=ǸÀ�±a1ÞÍ91úü9$lúÁ¿èÇIø‹;í»Ì©v6¶}†\ø#]Ê& ±åêÑ|7YÇ¿4o‘;”걸‡ÑÊ|Η �C ”Z6y® €(Žô Î¥0ŸD Tòúõ¬„Uk�ˆlÞ:Š. fÇ{26UH�¸± …¥ö;^íÞ'º¶VÖh.ù´D+kö3ÿÒo½ýß4vÄž.ô%Ezù=szSë¦wDuÔ(• Õ…oÓÓ“„¢O9“ÒW[@Q�Û©¯~äwYsÝS³ ty_@9³ ~n~?¢”ƒ¡X²S/Ç*�1ûFÐù9{8á´ŒGŽùÛ’ŒÇ\¢ÖW�#HjgÛÐù 0E̺ùÆœÁhÕU/&EÎAe—ÛÜ`Sƒ„»RõèžØì¨ÆIòŸ ›ñgÍ€@wwdî›�©E’7›vûAÑM;žŽ8-y¸LÛ# S�Ðnbˆ…œæÑù«! {qÉž¢G…Ì%DÖf,?[v¼åýˆï©Áº€3Çàt×®ÃY]‚Ä»s-· ½/È™ï[J“}±YÌä´†G)#ÿY‹Íø8é50JV}|$ºÁD½¥´ê¶«�=7,šc˜TôĄ̊¸¥†Æ_ùAŒé¾‚Ñ5E9<*Ò†d?[Àf.JØ[LÆúP2�z¥¼°ÄP€{ТHÄ ï—ú¸JWGGþ†„Ý-'Þ®‰"9—)q­X W Y�ryÌ„pº›«®È£œÛ7h�ðë +Us"ýÖk§É:Ç3ëev� UÈ.<@@®w2GG¤TJÆuNU„ѶÞ"÷œ —«¯G­Laû¢Hµ½§ÿ¤Màs&>sW¼ø# ¥h`ÝädYEê¡÷V‡Ê©$¸ ‚h`}1{/\¼‘A77© åÑësGÌ{árAÅìqìn�v@D¶XÚäV Oé W3ãýrü~zÕWµòÌišT«i‘rÐJÊAÒ1àeNîµum tüïí.fó7&Ù·¢£ÊI²j‚P:BwÈ9+Ë;|côx*ë‡'þaÙÏ(¼à™þ5£4RÙL7Tµl)cô^f8Ó€ÂpÒ>㥲k{|ÁRÎé+ð5”½LÂl{?†sz$^S>�œ¥þ¢ZNN˜Añ͈ëyd+^4�ÌO}ýº-IM/V´ÌZïÇËß·EXˆ2½ú\•z(4à»­¸õÁÙrÛÇpópè·}áŽÅDf5„Ó+ú\sW³o:”ÂZÅÒ3eË8«â³à­ús‡ò�‰&É`Þ³s-ìU¤EZÝhJyºÕÏáFvï_èø#©ê�7T7WÛíéˆnÖ%NAgVˆ;<6…òR/Ï™nÕ�ü¢ß~°»1£1i‡pQw€´~�.«åVêL'òrÖ§t"9_Æ:ÞåXk¡¼OëuÊ6ü+Ø�Êå=`Ü}ûö†ðFåçrš4•ѫǾâZÛ³KN©E)±ì™ÉÒ‘©r�ï (“·ÚÈÐ¸Â°Õø¿¡ÉIá8`¸¹ØÞ²ç¸ÜêÏ‹žM€�Çðôº¯Ï\ìAº· ¬¡´ÙJ” 3�÷*‹gÊ  ¬ÁcéL)ôÌï"íbž÷|‹²¨ˆ °qi›Ù�DºO—èùé-b’¿P`ñ‹zQÃÎJÔ/îBФH]əߛr�?à�epg8úÀŽ§Ú´:Ê[©2£Ô¤8”âì„M¹Ú� öšÈ‹pÿ¥õ.Q¢½¥WÍy¹ä#,OW¯_ài NqBýB*Sïi2Ÿ_�Yö{7‚ޛ7¼€‰æÛ©ÒÔ þãˆçœU*PØ«melƒiÙU?Ì¢;dð]›Â¶4Ðíô÷ðTÝ·Ÿ< QôÉ4çòðý+<’J­†¹ìÀjŤø 7Ö2P· –*<é%±–�Òõ:¸¥V¦Vù¯hW§—,¼›Ä×pþÚUVšýæÈ£D›#º8@¨Ùµ5B·¡ÞûX/¸è�"yiiº„€–KÒ§ùa‹�'‘úÅ–»ç›þSˆÅrù¯zì,˜É|6¯¹» �²H ¯Š.a¨£ÑzÿN !»`½F� œ.^�ó¨é½*6ôß²aSGß*s<­” ,ذ¬ö{,ªi:Û×dv4mæÿ�Nв´±ëJ^¬¦PÛUÏ`]W\ ¬ìÙŠ\1eè%1ÓdL¸%¯eV*=«p%œ[^d l`›TM´0a/hú� �M Ñþ!³™ìžS[k³[e©Zƒl]/Íð¹�¨2k0vj«Êë4½ñ1ö8%KD�ár­RRÓv‰vùæc{¬ôœ=õJaÝÃE8›VüI£ç:]࿽»Ä3¼WJ½—Èð´Ë‡„˜7çÇÜ`’*|ÇOª‡�ÁÇ?ír«…–ÔEfñœâiFÊkU»øøƒñZßU×Þ•Ñ` ï™Ú­0¾©ÉÚ\Ò4/p§-/—‹«á8ªƒ\ÕÉÇM…¨øj­•Éî·°èaw. »�ã<Åûî€î7)OÎúKiu)©ÕTV©‡€žyŽß3¼t¤C‚½©}´žŒ ÷tš£yaj¤©ù€Òìç¡»ò~ï]Ùf\%Ú@”!ð†•\ú5‡ù®xÍsè~àR>˜]"QvEãÍq`�­Š¤c?GDšgC5MïjîÛÿiÌ÷ų߆ñ®¿·û”{$Ë?©C;iÎu+d89dUÍÐÕ¢¦é��¥½3mj°*d±;Á"Ê�x©ãxœs:u팋«Éãu�2Õ ¶{!yÞ(êç¦rXøb‹l‰x¨üUu· úœRXF>.“qyïä Eë,YOèé^qÓ‰_ãô&>Þ?TöbR%ѧ�,ó7Ìû£iwUÙ*ÜšÍ º>ãäeùYà´TðOºúíÚºéx&õ=;óÎo]ùÇÁok:°³(÷un…Féaô”“ØÅ&?òx$2÷žM€cÔK«ûû.Aß¼æ ͰÑj„+›ñ9|6Ò­”8E Ìbà1(M½^+r»Ùm�qVïY£<øYö¼f ÜäaÛó�g…´(dM;¾Ô“ÆGwÁÇV©Ö@t;9{Cf>õ–Å&ÉÞCy "ÛÀÞ;1>†Éïà½Vfeœ#ôkŸ„_ë|µóM‰ç²•Š&x(4\Ÿn§•£ÇÖë½ïóo@u}çÙÉ…ÊXb¦’�d²A¨L¥[ؘ Üü®`z߉�u<ÝVµ�¡?žôfÛ¯ hÂj¢ªp¢'òÞ·'äÁŒ?_Ò®eOLL „kˆ Ð &ÊX1æI¾¦|‹Að„&î®ýÕÁÁÉfàt+?¿²ª#F¨gy�vÚ^è9Âq�pJl©s㪅˜˜x×’|<ÇdØ>Kka§¶LÎ—ÛÆXa¼³ºGIBNFxàÂBH`q¾Nÿ’”g^x˜Òv@šÆt™bXiÍô——%P×ð½�çÁhÉú[E$"9¹“k9KF§74õ�ì«k~ª—:½’Ò{àj÷Ÿpu)N#¤ÏrѵÈ3Ò¶¬ëHMÔÚ›9i|<±%¶ýJMhS_Ð7UGr�§Û³÷iíj(¬ø¯OÂø\B’ÇcóRϨÉe9`eY¦_¤wõ´7Š=Q]ÍðÚÉö6Â)·Xôè„!ÉCóÿ-žÎ�§¦qljƒÍ°pQ·Ò(N•9\foá‡_»ý>¦|¨¦Œ‘ÒÇ×, —3…íá­úÓëþØlz‘èaç¦Ò±LÓ? KÎEM(õËÀ„N Âq½¨ bB *­!X ¨í¢EÁ¿Ημ29Ïëèðýîå”MòtÓ`O¬)—*B®vr¢Î‹·òQdý¥wñ䎿̀ ¸ˆŸÛ`/‰KdTš5 ŸÙå\£Påú¡5 ʸ…Œ ŒÅx êÆœz0ըʨoK1šƒJMÑÂ!åð·8BæõÔóYñ«Ýu–«Ñ¢e6#«·éÜ™m«Cå'QÃdð±!QMWÐ x¯lP$Ë\¬™IQ;ë O34|Jmwûoìq–]6:ÇèÙð"l| ûTqÃdö¹y5G?3ÔÎaO¶”Å[¥øð…]¨uŒVbýèÝ®sÙõß~IöÜ‘¡G ûdÎÀÒ€(·l&ÍUa xxÚòœ^€¡mÖ[ú ^ø¬Â©eÈ‘rlöMgcÃ,˜v<*å?Ä'”0Q.Ÿ†LÎf*z2‚ÍWÂìh  Ò[G¨9 p_‡šš};ê÷ì’œn!µ¯àC™;H/ãöÁÍH©Î‹åÊÊñÂH´áupõi{ÐìµÊ÷6И|€¥ñ;¨i¦ zôQ¶o±|”£Kh;+-²½dí,^ÑÔ;<Ŷçì‰Â.…zþ ÍR–­)Ú|<2¯–¾ùšI['—?zNöؘҎ7t¿˜O Û 3U£Ø]1ù%b FœëØ#&ØIeÈþ­­]_õnK¢Ô¼†?` ËY%’³Ç\ñ�þ‚H'A8mHóë,¦x- j9‰‚¹Wƒf Þüø éNmT5½øy TôäH€x-¦J�ѪEÄ k™˜œ¯qšÅæÆ8u¯‚}ñü#x\š ­(2Á$Í8ÄË9™I§Í·•˜dn%Êg¬Ç2ÃtF ²+ïXÖa üá_ÚâYW„—è=Îàã7¥rà,›¬è…ÉÒ³ú ó‚§èÈ�ƒ1Èv*t€àŠžÐ¬br¨ÇÊj†^[Éð£7ä!ñÉb‡Úò>ƈ|ID2ZÛÏî*+is`­ ¿‰ŒâÝtªID‹ ³ÊJ³šél deYl�\,Û¬B úÖN‘¡‡…ΡZ:t(t#Ýj›š»›mbx¤«Ûë ¼‰IƒµJ3Éòds K(�hPG|l`,ýíç³XWŸ«èt“Pß�›ñb¯ )m$ ï„v‘-#'ú„\¥à>ïXãåôö4°¯@+!³ÇΫ,Ê0&³D¯1OW7uo¹–3œgÿ3W; �v?ÉÉ+s‰iS¾ÉßÓ7ÑŠ�4ØYÕÛYÞuo˜�+üÝ ésüƒbk§É7iþëvÝ«®Ç<œ¾I:Ÿ\«YU½·_«)žóÀFW?ð£ø¨a¤!Ž{¸ IÄάa5ÜÛŒí«*"rß‚Ò{›;‰¾åûŽ•‚p§ÞVƒÃyŽáL¹$¥éjo;|ü^ÞÖ—� ‡ õNcí[ŒÉ‹56ñÚìE; Áüqh™�i’Læ./�÷±±Û€®´Ÿ³2•S&RW–éq•/Ë‘azƒwWáÓh·Ç¹C¹Xç£ïÐ×x&àXy®UÔxª� Œë½›@^å öe²áÕ y…fŸà�ØÉ'=/ÆÀyåùѬòÈdûw{Ï:ðZ7\|uâ_�úp‘ðCüÉ«b÷a¶¹µ>’9o`‹„ûf«ñ$DL',ÄW.äÌÚ§^Ô‚ÿF'f×-/²~Ç.‰ÔÇ€³��!J œ±i�6Z"HÓªuø ЍŸPÕžt÷—‰ý!ßÿ^”,ÔóÛ`"ŽZ8'"íxk�íÒTp996p9‹_ö&ü�R*h`ËNnZ ¾_‡ ’ÊIÙú§ôÆ�¿Ó.<ÄZSúZ�œSÂ1>2$1U…DY´šÌåz!óJ²(è‚ùj«®ÅRœ‡V#ú‡•ÄL k‚²­ù÷ÉucèÛ± ùž (o‡xÙæ«ëÔ™så> £"ön(B¨hµêL]®zàÕÐxÁ£\ô=À3|*ÜÖœ÷Ö[¾ÌÌ0ø�¢ €|Ç¡B¼P2G¸•NZ�“/2ªb²vÝÐÇëiœ)ðPZ 2”c,›Tÿj‡r¶z_‚+¬ùúêºôB‹«ŒÍ"òç¹j~6(Ÿ*E¿‡~1¦žšoAdæÍ‘8�\®�m ‚’ÞNÛ_§"F-?4rHyËNpTYbKÄùJû†{~"ÓŠeã{á`ØOe!¦o7* à&ó%m ¤2ÒURu,ªm¥:˜:ðˆ2à�6‰j6+'àm 6S‹p_ôalzKÒn×ÜKv=ÚÓ�7I…2ÿ�âuŠeB €ŒdI3�Gæw6_ã«B?Þ<>Ó ¬«Cªo?ÎðdA%ÄQ›Ÿ³ÖíÍž¬”T!�EóÔ/:hßà0UèÇ€¨·.‚¾äíŸJÿb_sL“8—gÞ�”„KÿK—¼aÿVB¯ž÷¼8Úý¤Úît65<±¯}l� _Å£ dvg¬™‡ÁaÏë\} ç)¤~uÉ¢k| [yÍ8 ­¾Çö–>f�¤[âëBJ“;±çÇ×'ú`ÂÔ4ÑYy¦Ÿ§Á“rZ#à,4–Òâ…ØÈÀA<³ŒS¯©¾Û\r~N 陿œWTø]<á�u/§J�+µ�ñ(bŒ1à ŒnÇQŸã¾ d- ø”´�4$Ã…3úëa2!¸éêoÖÌQyÆ:A‰’™zY Un]õ9c^ã�v™/7/x’÷\ñÔ‹¯°y´”ë³+ÌÝö4¿2�™„,„47ÒuÄH“…D7FÎ!.Ô»`èz{t§©¾Lr!ý°þéB9ÆuÀúDä¤9ñEÚßôwfv9"ÞM�-÷1Éno—2ìjÆÞMŸÓ¾G8³âVòºìˆÑWÛLÙNM4ª‘íK-–kÏM¶{ä"cŸ�:´+ •ÚKö‰Êž(P³†rY$,y»¿ì«¢c¨bUº6ø3›ðÐ~C�\'6ÍÑEJÒ‹ns[öQô…+”0»[)Ft >øÉ+%GèK`¸=¹3°r>E�ƒ=øÙªk˜þÚ=6€u¯RŠD.ó«‘oS,IqøÙÆ_V¯”çq7OzLL†±å6IWjS¦³½Ñ°Š €‚â}£ òö·ã¯¼ŽÐ�WÁd nÒå][�Wü^D–Š'Ðjç ”ŒéÞQ©”øhlj½³ …<öbVíÚ -F�0ç)[¨/‰3„©t7ÔëЛìãlùÀøAÅg„Éef2OÓ��‚i(ÖôÕû6 &L�¡9MÓÙ ®¶½…Mž| R/Mäal„¦«�—<$¡Ç(ksÊž…ÒCJ^ËÚ¡�®›¡DÃzà㌠ ² :ÁæiÈùê×EHž{,ŽšI[Fê¼yÌ8Ò4A"™BŠ záÞIM>5X)låM6�]W<ñW8îé:YÖdR¼%rùn¾¡ò½œì¡ Y‰¾š4Ž¿�E–Yüç*'ZíƒüB¨ß»´¤Øÿ½2�ý½uIi€uäÐu})^Oÿj5Â3œ ÈbædðCkˆ˜ã\ü6z²¢dqü¤ .¨ b'Ô–Oü8d2$Æ�•µ=aÎ. IíØÌÙÉæÍA’.-FðB{§Ð–8™§aÅNˆ \m‹wB¼ûäëÆ�•]¹Av,›îõ3»2¨­G�ç°Õ걡‰3~:dÄægÉ� ‹oqAÚ²žÑßÏ'ÝkÏ<'€ÚÄÞ… ¹ÐÚðg3Ãà„m"2˜û£G¨bºS@B�ºæìî ŽÇa%÷~zéÎÉØÂˆÑ°HQ]› ËÔ¦;‘÷Þ½ZÌØÒ!¸Œ'8ú¹üKm¶†j­C%�än¯äÿõ¦jÐøú´«aQ»�šwÌ5A‘Õ.f–à¬áÉ^p`A-òRF{Ã[{E;ùâ¶{•mºL{…AqøT—õÅx(w4Ü3]K‘‰ˆ„P廽m\�—Î+#†ýÚ†¶zÆAD%ó¼ARî~yÎ5³/¡jÀšWyŒaT½Òxœ%÷ý˜4p¬Øj@î8/AMô˜u À¿îv¢ÜÀè?ÀØO^aYÓE¼æ�p<ÇLiÍ�Ù¨|–ËA¬ûçhgÑ�L8*[h À †?Êø�ºl��³ûtMÖ-êmi“©ó$¤wâÔ®™ÛÁ¦ƒ òa[~5Ì`›»(i¯ûD<ö’þí«ÏBîz¤w¼cÞ{Ž–:“Œxü�.-¦›ò¿ŠZÎüû—9%LÈT�[jño?ëÚÈ£.Æ ²"n=dW‹ƒàñXiB¢6WtÍ0&‡¦ý/íä�«d/{þf‘•F+Ž-ÜãÝÚ”ƒ!¬]q‡xÀCôGþÕžZÈÁ*|£80ÔªX¤Ù®×SF³€8…¤“äHÄí `/ ¬ ·÷�³šb÷w׫2Á”qïÛ(yñæeZ+öÙ™p¶` ÖuX i$ vp¥‘�ŒŠ»mâ–¿Ô¼V›?ù¦˜¢*ºD޾þ;%ŠjOÂÎwÒ·°·t�²qMAP‰ @AZEàD sçÕð, @'$å194^#€š%ù¢eÃý~%Ÿ0ÍÿôLt ²†–vÿ·žçâÿ»õ¡Z‚9Ú(�×Í#Ëÿ;wÀÿhdš1¢tU[JpÛ�=}î;ÿO¹•L�Ý”m,�Áþ‹±_âž!‚ �2”èí­Ëº�>›Ùâævz>ºÛNב³ÈV¥×éˆ)õŸ­Ÿ8yÌÇî`5Gû˜ÿßþ!ÿãÏðddE j6�T•‰ þ¢öò³´11u6þÿöà ¬š6Òä-èØÐ´\VÌGÛ‘ÝìIj�÷E4&¼šJ‚9 øÿø¸˜:»Ð™ºþ÷þç›ù¿jè�]7„u˜¢1�¤éðÖø?Õ )¦, ðÿ3Sõ=º¿é·C-•݉HPLa¢D¢ÔM3{Ó¸ÐwèœlŒótu�©?bÑßur¤s—b‘)°@rX­ S¦ËÚð¬bЀŽ4¾tüö«!�þdÂ–ß nâÀ±Ç#·~gXçO5c6£N:D“ @5§®i�~àP@‘ê5*BmÜ�ˆ’[‘áŒedöäB[—–;ñî'0™1jAMf¦œï€Âáv+)ƒTëžœõžl/`Ñ;mOß¶=‘`öŽ0;’ ®ñØp6K‰ƒDÄy�¶�1שêôË�ƒÍ}íÂiƒÔl9|!,…*ýª¥�.oê=FRC” 7Â|_üVQÕ©-H^h÷–„Ù¢Ä"Ô�PxFWl›#ý~�GÕD¯µk!Û¾clÜT ;Þx)c´Ð°¹¹;:>B%Ò£¨ b"¨X DXl 5¿Œs@¥Pæg±Œ–ßt’Œ+’±Çþ¼~x¤(üìT̙ȡ-§—ºÖíÍ�p¼¥«Œòþ(ÙðZÕMkØF=ãŒYôYÖÔg¹º¿å¯gvût›#š cI�8Òp¾‘3?zÿMصYŸNDß¼íªgMÅ€S–ºös"ÓiÜ*>®Ù‹g :ûªH9ê¿0·@–Æ'/ÅÄRµélIÑýÑ-�¸ps ¬y,s´@A™W&aAÎÙPt½’¶ç ¹û­½‹R¢À*ñOrÊRµŒ»…ä¥7 ÷j1¢ï<‡š| Äú% !0"Q÷ç05Xy»M” à ÈÞtùÈ>Ã)>3S;½“»þô#=àý"LÔGǰaP–vÚn�ø>:{-·:+ŒœâÛŠ•)¸…Ø]@�Ï9¹—Ä:Õ—mM”ÞG±‰—O[ ó¸î*Ÿšñ‘¬n"uÙ¸³Ï´`hÑC×�/:öbŸBÕ>IÒCðrLAˆ,›VÉ5†‹¬DJ»G49©žä)­¶ëÐn0W߃¹:Û3°‚ªKÝñqn\~Sä4S†£GC&-¡²m�á#.v®®±ìÈ�S ‘¹èáÝçj½™Ý¬ÕwpaR"¥;Nƒn�Å¿9ñQFަM¤‰{±ºq³CSŠ­„k�ð'RôŸS’g˜ÂqÑriŠ8ê醔¤š,7¤ýGÿPå6‰oª ÇÉ=6£ ríÀ/,¸CjÜ]…ûdI| èÀ«ß™vàØ×ø¾šÏkõ³¦%ä‘C»"Wê/$μ(į¬*¿ ¨VëãÚX©ª„þða¸…‘Ù§Þ„0k'VÙŽ/¹¦þµÏÑ!®Q»Äk;jc4´ßÛ-õÏØÁÌk¶›ëÅžüËÃÈ#: ‡Ì<#<…sß" Ÿ×4¾¹Ž õRøªOaËA£â”4OEÛp×ZZð;êÚfçé¹Te@¦+üiLP!ŽûîžÓ^l|§k 9ûT"c'ðf‹´mç ÂÛ¶<©,Ê{“L°}¯`wZó¢zEÀÎÝ�é(„œ@yHÎÚ+ÂÓ·HøþGû| - ~É í�lÅ mž¡ÚùïR..±†Ö7÷m&Ð ™¿(í®©û4ò %ÿ„«@ƒj|”J¦DŠº§[7oEn œ –í±0I? .`x�1B‘þ;¥w>YqT¬ä  žZ°).ZL¡¥ŽîR׫ÙãÇ{~²gL{dIê…ÐbšD_ëÝ‹¥iêXf.p}ßÏ$¿<ËÊ ¡ô&?\ða‰³é~i Ãx &)ê½Ü=s ÑÚŽ€×怄ÇÐçq,ÚûÐÜ¡çB(-&žSÒ&D;EÂ6ÇüÌ j$Õ΃çõ3ºì¤åwl<ìñïZpÅÌÙuV`Öþn>ÏúÜ]ÆÖ¶ŒW²Ëén~ÑÛ: q~š‰ÀxUîžS —úƒ»m0¢h,ØvL’¥-™¨9çkΤÓB¬{6½¿ï°“|ºÚïF�@ì�µ$»æºI N3iC¶dW™ÇÄ+VH]½¢P/¡¦¦Ù‘ÓB,ý�¥™Á˜ÔÝ,ëívŸ[ýK\4¬WÎkýbî†{{Mß–8î\o‡ü¼‚ÆÃ$*wÑ_ny—套òG¯ï2ÉN!& MH« ˜=:$nм)�c1»�"}ü}/�GIP²U�N%DU0’D|“4rüq þ�iiDzпŠ×[¶yUI ¦¬Ïˆ¼ã¦”ìáE#Ó"£À ±ªÿ—Þ&pVo|Ó2FãýuŸa^CŸÜŠ�‘óe5P6 ¯ ·©¸Ê6•3úùõnËm©(a“RU?¤0ÅŠçG‘�ã^_)^hƒÛ ,Ü” °í!®È²¶ò¾peùÙ$ä_V|° �øe ¥5å~Þ„hÚ•Á¤3Ã.þžß³~l^I7&Õyëïgøè!‘^ó­¤z¯„<¯ÎÜNK=n«©Ì›æa‚'³xaFkjÉÉg'P¶™ÖÖŸ‰Ò¬D*‰ÑV#J¢šõ…m’›Ñ€œ†¢ÞN¿J(²jÞ“ tŒ¢ŸÀsœ@)ÿ“÷mêJN*å>pºAÃ<9ã$ÒÕávŸ›3 ‚'01îk|‹¤ÊákÉ2‹TØJˆ•gïÀ�Ñ´ÒÍš&«Ç·ùÒU¾?; ¯Ø;ŸîÂ×'K6ŽzoKìe·vØÕQìŲa}’©GL–3ééGºÜ–C1Â÷Fc‡yâ[éå\í'´ Ú_!÷«½³o˜­>(/’~2Z¢®Oí íK&HÅh8˜9™·À&06ÞI&®oÙN¢e•¿áœY­¬ª¹e˜‰‹ª„‚ËÙ…clK*»½­$M süs;�—Êé-ZÝ›áfž­2‹2hM9K¦Eˆ)ß ï,D|7V²3MÇwØ>äÍ_øSµÏõ§Bêý@ÏØHtb¿E–kˆ9ZØCpžTôx�}•J…CêðëÊÞgÍç1q›Ì ø.ÐmÛ6çÝÖ@síÜRrpÿ©i‘ çauÿåË´¥ÌﮃSõ‡ê»œ: Û ò9Ó‡«C\þ s¯ÜhÞ2ê‡ç/®ÞLIôŒÍ]�@*�ê R؉ë««{¤·²:PV&LØ£d5ÜΠ Ñ_$šLxq¡xê »â¢sC²6òº"àØé81´Æ.t$†‹ã¿Ôõ•íÁ’æ.‡}WtL pÝŽp£›Ï\)çˆö‚ì(ˆ° ’¡×3ˆM»{vBö¡ý£¿B†š< I§Ö´¥(.9…ý,!�ãiÁq6ÑË«Ñ Œ+-Xïx´î:£OC¼Œåšƒ.ÎtÑ’åß×r†W²p<¡fݺAßó”ÖÍ1ÙI||Æ“wV@Uâ?oXqÆÎY¶úëö1b‡î;À²zF<¹ V—à (1è^ŠdA„¯‰ò_@]5 !ÇÍR‘V�„Õ‚M‡Û”\øõ¸ûéæþðš@Y«•A;e“Öm “žçóÏN×ð)“A®àž»PbûG²H>¹/ç÷A;-¦a ÕpÔÙ*»~²–½36R뱤O0†¦§¶ÜUí®â@ºü¦)[éì(º[UG”¿´@JW~Íá&–}R*7“[%svEsÙ;mªæ–³b¤té¸tüæœ.¾ò¾¡‘4i÷”¡Í{²cÝmŸ²HRƒ[ÌD¬2ÈHmf#¢²øzØ»ãU^¢È+[€¸_¢­ÐôìÛvÐt!Üt»3bÖ¹ ×ø¯£îhÐ+°±GÕßht¤�Ï‚¤‡¨\ÈOÒÖÍ?p™Úáo¹'Ö&L¶Šú½Ê,#uøÞ^²¬[)�‚Î7Ù%ŠÈl“©w 5GŒÇ€`·Qc½Ô¼ñ¶R¿�ÀŠ…DGׯŠâÍ @«‚–Ýý>ލ:'«Gš úîÔØ Ÿq�6£(—¡UwaÖ¾ñf:8Ì*2:U¨¤-NäË0iÊwDì‡ M(=|üØöè7«½O°S'N.¼ß¦æì—Ш g©•x»¯–ßQ¡šÚ )ýÑrò(À<9P‰`·7&0E"gÝ�«(c&=R§,ü!ž zczyȪà-[µlr`Ò�/¬„ÇÈi˜PX’±FarÞ»F?�ù_`UÚ½®ûâ¶ÂtÀ‰Žw¡~ºXÑÎëó1ãNJ=êl÷\û²ï®XKŽEFûÞh%føÕ�Ž@’îØðîu„Ÿ^ôÀ6UQÇCªd™ŠtûîÄîogàE_G$ÕιUÑĬ­ÑÛ¯¸?é9)¦¸Ò¼|T�/f÷—Ó�¾údÓ5âx4|y–RÑÑÿZª|¾YÔÞ¯ Lädþå lwv®¤ˆžBìå_³-{%cØÅí=ä±rh2ºê*¢ìU§¶žžxiYh¢ˆYA%Ç`�ß/ÿÉZIM-"z?#‡×LW«Ôª Dob”Âã@±óµ2²ô *K}Îj¸O§S¼‚1åëWy*;KXjžsÊŒ_ Uú){rBÏ|?—¾T¬Â]øùÓ�êsÝ X?ᎰYÐŒ(¯åÌ‹°e5ÞŠìêpš@Ö Fiâ­¦%�õX)øª�QqÈ{x튉8á`®�Tn÷<ü:ºœ„„C&hDݤls@8kL€jEvñß~jÆîÔݬì<“O]·6U÷�Óý¬Ü›dZ1¤‘ø D5³0wbÆrŸx¹˜øÉH­¨O€�QÍbç§c¬¼Cú^d=*d R,o³¾×²›2èvc¹Üˆš7´¯‹ÎO• ¸„¢—C"„æK[àªÓÚ+íÏAß^>]BÆ€~%%I+š•OƒöAšS?’sÇO›yu©÷*ßÓçmãs¦J®êõgñ²«|Þp§î*hS˜L ¹Ÿçj%·+ɤ ^ì¶©Úù>~•ÒókbÒbˆ?øjµµÁš ö¿+Ñ1ÃÁ{_;ÊÐ*}ÔÈ°È ¢DÚø”]•·c„=–÷¥Å1ņÄCÉÖÈf¦É|,‚ÜÃzð0À´ôt—Ÿìoá<ï<¼¸.S‰œæœûäÿqº_ ÅSøF‡’¥ÔÅ•¡–KVb§slø}+\Â8¸¯fü¡K4´È�(o>¬1˜*D«W},ÚN¢­ýA èH|fËrëÒu.2Ú’—3þ$‰7M}ˆœƒli!ù7zÃv©e÷C*óŒRp™?„kyà<¢Öà…ê a°ð°evV·ªB/yÇ5¡Z$þKÅ Ÿ�e:MÅ÷¯ÒÎOXx×M ¤3�¹]ý¬8¥~,Éùí«\èš�ò(€‚á2¦�øü¨AoˆïT=z„쬴EsÊa(¹´Š­8–~rž�á¥Ü�é!­<Ú{-á/ËSë8…,iX=_½äõÀk׎ŀ32ìÒCÚ´ñmÓrC|]Œ8FþlGjx»à^¨Éùü¤thÈ|±Òµ †„Ó–cÀtOC“åhƒú—Ý�´ÿÞ­dÏ)q4vvVt5ÈÞ^�M‡ dŸ~?*¦÷Ffy„y§­HŒ� J�f ^›;\¥•;Âlw:(#$áýší�ÀNJ¦Ú�©›«Jé[€5óç‚I³Ï rò·±4@w {óÌícGfB�r}TðæTÆ´o‡­ÞûV6iøõÚªºÀ?ÑáæâÛ÷ mº/ըōªÄNx…±ÝŠr)•9�§ö4гÿ`n¥ôT J*ŠÆ—o—YÞEÄ{ÂÁ¡`f‘Z¸É€ûLÁ—¼d…ë¼¢ô;,šÛðìz@ˆÿE› Aâ-¤“/âÚ°z Žª’cðU\ @ŒøÜ“ÞAo6"4«??…=öÒW(5ðÙ0’+áèr¼V %g.»H=—Ò±�Œ•3ånâöτµIxOv•£—§&z«ßûRSss*±?ØÀÅQ›b&v.¶õ^F§Cú·ÕߣÕ'ä4Ž%y]ƒ¹ý¹º= Ð𫨚pÙ1w»=ãpb§ülrΜŠýÔ?y’ÑöEôÔgoBFÇ1+íKw=3¦œá ÎD¢uYr¿nÞûÎ83­ú¹1QïrùµgÀè«6öœ[£·è̳û»Fݺ]€èÞ†å5ô¼•ï$m{‚¹„…bÕ8¶z‘™×ÿÅ×21™¿#^Ì*WÙn­Ë”èÈG� Ñ"§«ê±‚/Þ2´w3b5�)ýŸ,ö µ]Å2=dW“BÓŒVäà7ùÇôj\� _)~Y‡»ñ—gø”g{òß26Yáñ+K* Õ†�«àkØÆ`�¹h€ló\¡L¸n“:o€ùVcÍn¶_¬Ü·1¨–}œ‹’í�¼k_íO°òÔËï‘™ ³B‘Ýÿ¢Ö]Ì‹$ˆñ®–¥bOZ”¬{ÔÓIÊ”§ ‰Æ[¶K–¦ÜâüÅ™ÇÆkÔ–Ù^!­ýT£â¦®j’¹VØ{‡CÕónŒË1‡§ÇPiÖ¡èŸæÂ�HTw@ ¢SLDaäßò¹é qû#¥SÞ–Ó²ò)‡ô@»JJÅVs,üŠ9Œ»’ä¤9Q2-B+ôiÁ@ôž.Ž*óòo"Ëáì™Dð×!¶µ¿dG�;söÅ·JB&ã¯Þæ \Û»$;\²µq¬GC,@iaýR¯?×.ã°€‡E¿n$dÞ¾0Ê`3øƒZö1Oƒ`Z1#ĉ1:T‹º.T¹¨g�½'½ô¦ÜÉNÀÜ@@Ž!ý €=ÂxT•Ž»BfM^¬d/$�ØS+¿|]£j(jà'(_ô|TTw- GC ñ’øóôAƹŒtU¨ ÞÅçãû`ŸPõáD¹F â#óìóÞæ._nxzJÐ}sØÂ_Ö™ÔlÊá¶ë ­ÌEt9¶`Ù… Uk £®‡ðy¦êùÐe˜N_QËÃÕ¸§3.ÕÆc="ß‚+@íýOû¯Ÿ´ýkXOÿvò¡ñFs ‘ÝVâDÍ å%”{vú–‚¬óž2€#ãb †46—Ö#„øåÔjÆôú,Š  £ç¦sÄ¿ø7%D^n~Ù†ÌÓXmbr�á¢ùj³núÙ&Â+7š”Ð(wʆ «»$ˆþgèæªS±µ— •룞òÑ+©Iæ.{#ù�ÅhÄ�õ/ju›BMì�Ô:?:Ü/¬¢¨öˆð*¸-!âÔ3§ÞÄ#W“D%j(–(~–ÅUª# �‰ŽÌ ß4Oªš·ÅÔ—N�G»õÎða )¨³Yë°M—’Æ×«_Àa ^8ç<Ó)F(¨�Ñ‘ÊfQT'Á9"‚aH ˆ<·¨µk)sâEÇõ½üìY€]ƒ}÷à`Kî¡|öão:SQTlYë‡)›¼¤O‚�&c7ÓLžäÁÖmŸZ^•«Ö™ÎÁO¢a¿}ì2®M,‹�J-©6u·Ÿ:;°už‡ ~ÍæóSÕTÍ9Ê�m®d«“>ú£›‰ãŠ©k¡Âü×_…Õó›ÆR|Z”‰«z0  þ`†5™`DR<µÛàŽ ç2"j%§‹ZOÕ²Ÿ‚)¤¾¶þ+ÇAŠR úÓJÒŠÕ˜¡Æ¹æÐó»æœA$‹)5$çáçQ÷\jÚ:R‡Ø|Š­PÈdÌx.ù Úò ÜK� ï–x„ËŽlâ¦ÀüM•bn�( *ï|Z{.©j�.c"Êý²™l‘AƒÛ Šz“;küÇÃ�á•!È/÷d¾VÇp´Œ"I¡�ÛZòB†¾Ä½�sñHw!@ª�GÎèú¼n|°sPá>¤�ܦ)ómaÇ6a®Ä1¬ºSm(šË—õ1†Dú†­8ì9ÆHÚ'KxiÚðĚו8W�•³p�¿ˆj/ý”æ.2û½Ô0~¾å ¾û9QÔGJÅW¬gÝ©¾™Ð£·5þÖdÄ[}í"+oätÈp1µÐ�piðª¹3‚f"•h6·�éÀ†CíIÎ%:z÷ó<”Qà1G�rÓöýÕßíªÉ›‘Ÿ¤ËÚ÷F#¥·!CˆnäØxh q=ë$Tgº… ©�§ƒ%F¹Ñž¦-gâ DSÚ#Ì,¼t>„±9šõŠ#0º@:KÞð |ðì«¶SÙDx!¡ŸÀÂpôHz°)P64”ðÙ øŒ1Êçr¼Ÿî°@¿Ë l) ¯ €èD¤¾àËë²EÊa—ë Ÿ2ºq´¤zhosü3˜A@*4Q|Bצ´‘mrvþ¯Ô$Ç<§¯¤ÿ bYO`Ù¸Ãô8<Û ™‘ªÜ0`éªI™ øÈɽ‰[õÅ߈ã íÈ,¦ªý(Õ…d[B†ñ“CLd –}V›;D�˨éãÔ@»Úÿ|zû!’Á¥�@N‹Â¿¡gɱP|ãå7›3�!ªrŠ$½•~–ë¡gX¥K~m2³Žð.0¨ B]ýŒÐS>º1µêV ë�ZkÜÊ‚Éô‹HØ\ðú¼°"~bß9�í¹Ó.Xí=.•zv‹3ìdb¾Ðj‘j§ÒÍ'UbÕ·åä½]Ä«É(öÝSX‰%oëÚv¤¶›´{ÕCEò%±]]!­²T}Û�y5ØîcyEó£Z)ãˆN�ãòýLÊhA nä�Q{:|lhÒYrO~¾�–ŠÃ©Iø›�°žD\ypZ{'Ð8ãÒT~ÙÙÊ¥v“;àú?|t5¥p’X°®QƒË•¿gßö—Â%–?­R(4 UÁ¡”ªk�Lô-·£ŒkÛ`|CK¯|KTâ-°w%– e¶=òñ›HaaGj}Ó}¥Úo,�Ýo¨íÄ)#1Sÿ96—%訖LÀVZ³/Fy¹”&Œ'‡�Ü›¿ÈÕ*Óì*¦AËr8©v•eÀ¶q£žwÁð0/)ýÕ%Âàݯ‰QÃòv–:Çß5ëu tçÄï0âýŠÛÞ é!NAº­ñµëë^Úñ ´`?±Z”4dv[Ä�ìâï^]aÌ*=U]œñW%LAê ‹à…žÄ•¸Ä“ö^û´o67Š“³ìç:u0‹A|: ±D˜›zà{@ q¥Ì<½pÔo܈#™ùµÜ«S"+ÖüÉÑ¿² È ¡[–0WÅ[Õy˪Ÿ@q6$ûiЉ©3šA#Šï ß®UÚi¾¯fZo’�€Zñ™ËµÃ¨K?wbÿL`[ž *XmœµÎpRÚ­?“ÃUMàt=ðýHˆí€6×”þøä×Ôø¡À7¤oñ^Úý”ÔQuï /Èù·€ +�Õj—ZmâDG¼ó˜B�‰LhNø�Ä�,¨])Æ_Vù±­ö2'S&¸Ôç8À:º±4 ¦i�é©82ÄÚ’Ÿ²•ø–giµ3B¯T¶þµÙcíÿúˆ­ Uè‘·Xxæ ˜ú¸HâÑ"«oËCÚwY™KÚ�Ò\‰Í|+ô+öMsõ«ë¹JÔ�“]àn�ŽmöcmœUûáÁ_Íh— ­u}=UÓ!m¼‚FÜ€•b²…žR·“¢²?™4÷mYÕÃu¼•å¥çé:3#L�?u¸ú¸Nœúßê6+�a Y°1p) �fš·c ¡—T VSDöq­îûÖM�§¥•Ä”éjž³Û2qHZ*îPòÛ°n¾„É7 ü”¼‡J€¦ñýU\Xs&¶€2špG'%Ë¡Ä6ÊÓ‰µZVƒÎbïäíKªûuC8ÀnlÉOvóÿ„Öi7ßC”ãÒ<«wüÍ‹œÒêFÀåpŸ|¢ë±ü÷w$¬3OÛ0JK”ƒÝI7ÀßR§…2:ƒPùf–_iÂp¡„2‹ËÑqøöþU·>XÐuWoœ§ñõ)÷ªÍv“fàls`Éý+zúøÈ, ož¼H&n7J{tvèöH¡Í…¸«Ñ†ë-Ä2FfEmŠiÔNªE šÞ§²¨ æFµGûTKrÝ*ôã(1Ðfâ4êqÃŽÚ³�ôŒcOïÞaÛ¢–4Õúª�¥}h¼�ÿ²«ì_„ÙS*kS¦(ÓwéÚó_Kiõ+[JïT²Hþdy‘S0–1*ØŒÚÚÄ•à„}ÍÃÖøÇI½çŒK–›æF PV‹6¾è’¥7Ðø"ýN�2½Ä›>öH°±fìC0�R¦ P¶,ÿÆ=xˆ¿+Æ É)Ïrdî»T}fç–�ÖUñ‰ÏÉÛøaâ?o[y3E»+ªÊbNH£ó-W½ê«YGsï߃üö­9_é\j<¹´0g >w(!R¢*1ð³%i›úm윴7ª„V Žƒ™úø¡†q šžÂðù Š�u¶ÜbKï_ÿ8ä,ÉÇÏb¡Ü‹güw–š¦5~ÆQ±3ßïx@}.i9b º‘¬ á~ÄZ!=í]tÄt 2XÉé·‰?ï²J «”'¶�ÉÈ|®*  ƒ½{qºS�d��išÔ#@»gX—+?íþpݾÊlņ¦Ï¸ £žŒR¹Ü £.ÛDò Fœ>‚$ÿG˜D„=ËÑcYÚ x•Î]�‹¹·FP¶-1(ÂVÖgí#dòÎ�™|[î]…up¿ùß¡V;¢.áQVt¶¢”„mCÁ¢Ãc+>Äó:§êY•:µ©kÂŽÌçÞýÇyÞà3 ¦;öÞ1BWJƃ@i±jBµüŸe€{'V–ÍgÀA„í¨¤T0r˜ËYUQθüb¨ø53 M¨¾ožvõ“GxTl«bŸÜ*3$«ÈºV§;)0z žu‘½-îôîÁ«B�e‘Á“õRÌFQDŽr¤ÓeõIæ¸UGæXæÁkéðRaÆÅ˜‚ÀënÜÔž´ÛÝóHÈÞ%)¨G%жt¢yÖü.å!ä(¸óRÈšÄ[ƒ”[y£ ݃¥&fþ˜'˜Ä R³*mh�0ºB5%·!2�P @ñœ$¯LAàÈñKÑÔ»tÆLntzë}z×%¦IªÄ¨�w@«,1u;ûPp‹¬.á!zÒÀ�ñž­¤¼D£ÌîF•è<„WëÕï}`ÓˆJŽ3û[r@öó-ÜýåWE»°?v<2..ŠÅCPºAø)ضíÝBÄðÃõû©®Ä¨T P®¥ø{4÷Ó­;¯”?ë7’�[ÏñRAPãȬ è’àªá/ý#ŸÇ€öM-EÜYuöÝÜ+zØ:> NÈmÇ¥-h"’;$ú±#ª“¤»ª9LÄ�ê¥ßTé¼”!û>ùƆýìæþ–!ß “q=Çx@B¡XE8gé@¢ö#8-õ±›:‹[ãâ”G¦åºð¤X 46Mv£e±@#!€_ÈÊ„|i�c>ä¤Ñ’ÏïÚ ZÉ n©xR”É;KlMö:Mx?ŸÓ2U�½¡žq¬¤´—Þ<�)ô|Ûm.·êE¾øb ËÎDZguù�InÈÎw™bê]›Nî�þ^;ò�è–‹w:<úqB„éf·q ÏB=î�þHRšP'ÁZ4Œ›™¡ÞmW¡d«ð~¬»í}„3®éCòÅŸV„qÀ¼MlÈÞ;û¸•/ -bw]ÃÙiC Ëm�‡üˆö%e<0RN–Í ÙÔÓœöX ®YhO{ädb5Æïž6…}Õ†É�‰˜u߯[xçÇpRaç^?— 0ym§Œ™J¥w‹Ö:oüÍ#¤“m%¢HÕ“uÏOGزTÜÓÒþÖp?g BgíaOüEÖYÇ.5šÍ¨ó�›ÃŽB�J®ÄöS+xtK¥Ó_à+ìßÓ~ ¼&ŽŒŒ´ªØ‹Ãa+^ðiåØX¬i3ÚeZ[H²%¨ÿ‘þž ys>x !��¹£6I6ÃÒ¤Ë*v[qªÅ=ï—…¦Ó bºa5†å=câ5®YÑ'm WÏ€ž £´ue›ðgÍÐ>4<ÍŸ�‚£XKLs®åŠy±V Æ�*“`B{¾á|b¨ G:(b)F:îÝAE�œ‚Öþ^}ð�š{2JÂ/†8ÞŠjIFØ<±•¯ZÊŠÍR1mb4™«˜Šm§¢£Ì2IÛÛ<³Ù„õn%4o¨Bk°‘Þ¸4mó4¥†ŠÞ|ºJED¦*Πງ26h¥(œÅ¤À΂L¿µ–4cL©áwý¬zìܰÑíQ~\×Ä¥ 韽È�êøêþS€C³ç Ý­ÔÈð<È õ¡ò,Ì8·«wfC~¥¢{L‹ÏªÞy—)r¤¢KŽÕ�H©9½i›ÀÅ#d ¦øc/øÐ–0u5é` ªæRÄë£AKó2‰(Ô<©t!�(Ä5G´)è ¿3‡&–ë¶„Þn³ë€[Ó6ó€ È~ü­€(wü,g\µêá%nɬÖt|¾ÓK‰Ä~¹?i²X»�Àd°fï�š[–tê²¥�èæáÿÅOß_—žO�Oh5*ø1çä€ß©ú²¸¬¦Úøç|¯?í{K¤Œ<”"jNj!϶¤AŒí¬«Àúޝפ�#»}‹åøsmt&s¸…?•kFôzuÆ_Pš”·›çI)ë¬B[„dy*»^c>öã0GÛ—Ô�rf~ž ëÝ› còf /tCrÉq¢åLân»�jÌ£qJYap%óŠR î ¸ 0ýöZSi‘ÁѪÅ'Ý߈Æb–Žn6¡¶«øœà"Ööb“ßÐË%Í4?pWÄ80e¹â̬ÿzEv�SGo¤±¿0 Û’c+½o_¶H^EÆžî¹`ÂüñäO ,Vn3ÄZ}"J†$:âp5�•‹,&½±Ï‰Rª0 ¢~²í7>5–�ÛFºS{uA“÷—k;@sƒ°¶¹ó�ºˆWöÅö}¡VG€¼ÆKPÁ¤ §ms¹žÜ QÍ–¼w9øà§‹h!5É–*ðÖÖÒ1ªÂ*—­�4ÞÄòŠ…ßúoÏ@BYB÷É! s®ŠÄ$­·ß½yÃX´‚¨ <÷­š¶ŒŒ•ºî¼ÕM檱�Û›3Æ®½‘ ÿ€Áhòó}h,XhÍ?e�½â„– s±[8�}6Ø0Ž–Ìá~ûÌÉ{„gEÙ¿{Îv3û;š ûÛ›vûÉ”B¨oò¾0e<#@æ ”ãã™Ã·=ÆñØb¬s›ù¸i$!³§xN«Í¸öª(÷Œ¾¨+§~ ‰ü'S¸#�ôÆDælÆ«¢QE>üš M,.¼MŸ˜(ÚzµDÿ)®Úè;ËÕàw^yØ~«‹è§ +-VK¸I®÷ƒ®ÿe@ÊÔdFŸÃ•rÄ4:Pzµ6�³$MÑæ8×{òiá\Ž\ ÑÀ†?1µWû;“?*¯äzõ‰èF#zLaà¨ömó@Š_Fûaä2?Ìê½D^iÝ»jŠ_e¸]Т¸3#h~£¦4§²½ï2Åš•çþ/·�öê5p=)¸ÙBer„×ßOxNwD®v;‹D”VîŸ.¥²6E$¡);5g½üK…XìJùmѱdû”²9ƒ�˜§rëx´xµÖô�Úñ(Áúß7 øÎ™-M8‚è÷£ÿÇ2/V3μÈÜ¥a0T檖ðÑÕ2�¿)\ƒªHÂÙ,¹7±v­½OaãƒtÛj»�ýâ�Ky\“\@/Ô ,–Ý2¦H‚‚1\�ôûn^¶ÎVóµ iÄ�—Fm¢ÜZüH„1þñ­¡p°™>¨k³­I-¡†YU:FR8#ù‰C¿p¯jíý“qrŒÛ±8ñ ù5þÚ¸Mÿ³ã^e×)¦ÿCñŠZùש¦Æ£.ë@¶„cW½:é4�H¼âô7ÝB~=ÊIØ=ØÖb¥%>�¡b°ÝºR¯C‹5æpA�d(°Ø~‡–•¨Òeò¹ïªW®µ¥ìë²Á5Ÿ…FÐX‹wÒ±¬{Fz Jmyv"Ùo£œè¸Ú) @¡àÁ~�wƒ‹Pn±e€ƒÓíÏ 6yçn—l Þšt¢ Áïº Ùjõš€¾$—4rØ1‹««èBT5$e2rîã™�v�ð²â­pt�Ðî ×oèŽ 8º*Éxáöý d—’¡«˜¾ÝÍØ ^°z|¸ Œ6¢QÎíÿE~;Å 4Q‚×¶mÛ¶mÛ¶mÛ¶mÛ¶íû]ÛÞ´ÉNfv_öe³§Ó©túTŸN¥»R5f¾ªl#Ñ�­B]j±qÎu΀¬ p8Áú¤Óp\É¥FB‚h;>؆ŠoTF#º§¶VXÕ[B^ Œ&1›õͺ¨-~=µ§›‡P¬‚¹`¯Ä±»pêq0Ç÷ûÌÐùvþe$ðœt»„�<#/´%]Ô:Üþ8‘Ð!¹˜MIØè`�‹»Ä³ãïîÑûÆ{&ƒmLƒ09ÃEY ã'QóÕ°¸.ÌŠÒm�±9~·5¸¼•×Ì¿/†óÙîQ�0øÉˆ£ØAÁ­L_:€! ¤5ÊV}B<ítç¾ñ²&\¥aøBæÕ@°öUN†P$Ûʰ¾¶ÿ�sÜ9æW­ñÅ„œK³wnþ¥­ã[³¦…)ÚÞÉiõ ®570‘2Ô"qPÌú5€·æWÎ7ÄC<銧Õ!ð.BldØÖmÔɯM?�î�HݵÌëK^'øÕ¼¶›‘‘;y†ÂæõŒvq“Ù³'ÝžYÀšªœ…ÒŒ�§òôVpoì8’逴(®D ¶�ÃÙâ]Hþ±ˆœÀX½ñ˜Ø)ìuÍ¡ë¾+¢¬®‰ŒÉžñY3Áz6É•#±[½ÏD+.œìþÆÇ­ù›øŽL?6l…^{¶ðä§…ì 43ëcTªÜ]ÐÌÑ2q…ÌhV F-tˆ¡›_á”]BKRóaÆq–.µv´ WÚsÔíSixÆXEÒ;*ûáè08ý´@Á¹$rØ9ÀÕV%™O% bÆ/+ Ï{ú³æÍ¡’Ö¹°¾ÕpžÂ>1 f_pºZç#Ý×úá=õÔ†en�>îà¿„É©Fþ>nÓ_‘®•ˆšª¡’ŸW™û‹F¾„&v°cñæ]6e ÿ­™ž{[½0ÎRYë~ºˆtâÙŠë£Íµ“K Cκ’¦ÏÅwB LØ0û0N]Út?Žñ¬ ÔßYE³2Æå3 à\̶ô¨‹N«>&áal‘�áÕ¹„�]ŸH”O £Zœ�V��l�¦‰Áå¬ýˆ°�›.&Èææ;Ï4¿ —ÇÄ T6£—e3|>•™áCø*ò˜¤“åƒWŽŸEõ9_/�è×HüLv—`Ë……Ÿêo·h8”ø„cU¢A´È!ÉvVM!‡Á!«dßÛ› Ñ„ä…Ù3ÚëÏ|lã¸'/~ۉыù¸¿)±Û­pp�Î n· ÖÎt;´»·¡í»Dá,ÏTŠ3iˆ¥N¹v’R’äé¨qÍé ŽXôMljæ²¾Pg¦WãY`ÔµBéÜ×/9¯t·Œ#º;ye](¬xøž5Öéåûï$g8…ÉÒl7'6jö B7C5‘’=|SßÀˆ[|ÆßR)"º©âÈR§ÜöÈh”fÖâ‚8êlœbê¶²[Äg ‚Áð—b«—ñ¦Âª &¸"a A=ÈTôdÕÿ¥kXb‘)L]#8…(¦Õ0|oEh4†NÑXFºù§KëÐ/\Ýø˜Æ�}‚¥àÓ�»þ#ãß-«qGÜ5¿Pò Í[ÑßÕ¤o¦Ò�’·¼|I+Y]YöoR>�·™è¾AqOCûСiÛqb¹SºÿïÒeZ’ŠúšJ0ƒ ŒÏ¡ì±¼í’Å r§Í;µ,yëÇë�S¿–Ö‘|s¨ôg”`Ã@}Þ u,ÄDõšçšR�Ðï¶`*rf‚B/-²ÞÚçŒèKÔÏòÄņÝÇhºB�I=;�`¹r¹Lê¼"·ªMþRù»8´Û®–’éî™. <ù½¾ºC±ÑGðÈØŸ©noâòÀý²ì!��d£±Õ•B, óò|~èSÿ¾Zyå³Kpá8\šrÑvó–Ÿ ÉskmÃ/AÅðUIüû´È&’îœ~:±Ìá©”®¾OÂ\è‰9\Ö2«îûÊuµaÀ£6Í”è>8…'zøë•ÂsÔ|þŠ™Ûºï% `cñ½\Y ÙúÛŒh×03Ÿ»ºø(Ï£-v $µÊ¨¿çrÜžŒ|ªØ›Ùö  O|ËwÇa„9qš–Õ'�Ö!ËN&f¶kp}h¾O¦=AûkýèËö¡a-–Û—^KeØ™ºÈ‚\Ôñ–(eN¨¤*Ê3…mi*‹$ÌAi°Û² Ý“ÂA¡¤1ݳ�µøœGX:MrL“ #kÑøˆ-Lm† õjŸºF„š2ÇlS {^”¯G Äå hsÜ+ç<¸ywÀÎÃà"“·Pmp§8¶‡*ûÜ Õǘÿ!:G.{"çöxy©„óqŽüce›åÐ H5�úkE™wqïJ<›òÑÐ(6»Oö �&�Um“•Ã7Öùóì¿Ù›ÃÕ¦3h :Ϧ[éfåeñxú¥f�*ˬfÏû[�ÞNê×;‰Ë׿F# -!êÂÅŒ¤ °·‘2CÄ:V"FÅóõw@"é;„�‰êÒ[U^u¼‹S5~­&&°–D_›^HêƒBDŠýÂI7KªX˜1¯r¾„tµÔ /œ,•åóvÚ3`A›Ãuc?D‹E]©ºP j2à¼)ÏN1Âìó£¯iŠS:~#Þ-ÑÚ¡¶yJ¹ÚÌ” õvPî¤fi¾~ öÿ„,³8 /b’ô~`¿¹ºz¡\œºN¢•–�ùWÍFˆv‹~øÈÒ5‚×¼¾àÔýdÈ-M`„j”_Ax€cÆái{rUQ‚ãÞpwÎ/$·5 ¡s·žã1ö\Çv„Ã`›¦ ‹—E2¹bOãA�¿€xŠq@œÉK¦) nʳîl»u¯¤ìJ˜vÉsŠž&#ÙºTïÞ=;ûͪNÀ�Äd‚°œ£ óË#»cb—!ü×§Ð|^ÏÚAqÝVRa‘c«•ËuO»V3‚J�í”íVE5nL%ö™W©«(Ds•ÐhŠØºûrO9úù¨°íjß4=÷i©m݉àSjÍsð40ú:™ZÍ’çþEW®°–SÈkF|Bò:IyÍüªÂˆèÓw'íÜþå—j±í3¹>•ˆy¦‘¯i‚eˆ-„ØË`l¤Ut/ÄÂa34§Ê2�!”Ëæäáê»yqð›¤5&ùN}£Œ+€7cýAåÝmRôñx¶Cð=ˆc2È£QôÊDÆê¶Bz¶ü+D9/«�ÉÞŠ�Œ–«�neÁE»�% �T(’j:B)&èDWí¬+#¦œÀÚs¯–r¯Ú6Ðd…£¹°. e³_��–íŸðÖ3�‘®h䳄,a�;‚o@kHÈ2íÐX0‘�ƒWûØbØawá¡Ê‚”Dëå<óz†ŒËÃùµ*Žœ¦í± ¦y4Un?¾œsé¦Ò+&¥Mso3Å_öOýàa¶�w˜‹Ùj©²•?ŠbujJ»�ç:±ˆ“Í«9B}&ËÓsK1¤:‚ÛöCþ£¢›^˜z1ªL7(Δ¯“3¸ƒ óÃ~s»,�leEH�—GäxÎðÁƒ»ѱ¤3I‹8˜¾Å'h\¢Ú‚P3@�Q94³ÈQ¹�tÕ[uõƒ³†þÔpö`ªVÊ'©È�´Dºj é¹÷H ¥3­iýžž/’&–i=â‚îRïÓÅ =›6.’­7"Ü¿x—J9,Íæ«ewp»Uk?|I´ÅWr¨Dh)qÛXå¡EŸÎá‚ISèd¡°ÅúiòŸ¦UÐ öòÎ_.œ8“sßï]í1’ÒêÇ�OÔ\í� ­›^é' „™MÝlr'AZ©_¨i{�¬�jÜ­ˆ�·¸çaÁ1ZîÄà_Êg3]Ù.ž|mÀ5ÀÜþ,Ù“2øwðGà3/x£´šuÅæ‰gBÐcšBŒPçgÓ÷%aAsa¾¨ú)æ´�0 Hž"ñ:£±ô UôØsF|b<è¶çdÕ2X�ÙÚ•6A-Ç‚kÃ]ÇVp÷‘©v™›·Ò}”ûXéXÝ'ÇSä‚Ç/:QD,î‰Û¼¤=Ô 6øünQ}(° ^û?yÅrÔˆ=¾©Š÷#+wqtÎZ]*.§7DòºÍ1@"OÇÐ>E3¥ï;y]yd{·‹Ð÷5+# ]=ž^Ê`(hK{qâqü¡NÄÑŠïTκ{}`„B!lì¯+íl]‚l3¬‰¨ZžŽññ¯ ß�©U´4¼¨@ÎS†Ø…«q/C“ËÙ�ó¬Ý¸!Ë`G£[äV&k𖉱[<ŽKƒª›Ô2îr§à\,œiÿÒZõf•D$?Oè,¤5‹±6]ùÍÄ ¯_lT‡èÐѧžJa×BñÑVhëûòíoCƒ€LÅ€™A#9E‚u„¢·Ômå÷®ºlBƯ�âwé,O?"R?Å!{{p›M³wA3ÆÔd�9dßa’�¤ÅIºi•ëS©º¤ Œe_›îMÖÒ@ ÎlF4" ¦©5ô~f¼õ#¸­÷Ý$¯HoŠD4†Ié ÐJl;¢�öW×ÜÎÙ+Uc¦x˜%à">äk_˜.x<ï)/»P³FœæÍ¾¢Å8Dš‚”úp-ï�iå9jJŽ"ú7}¡TÅ åqH²…S·jxÌ4˜­ŠŠ«.@ý8‘½o�4KoÀ)G,Ã_¦I¼¬¥OùŒ®ð½‚¦-ýøZ±+Ì—‘�ªg”ÿ†àØU@}DµŠRÈó•ÝÇ%_‹kÒï·7<=ÄëˆG*yçª&aàˆã¹*éÛÁgw¾ ð/¯S‰ž,/·Ò÷:VGÖëLLôÂKó*½ð©ùv§w-à·Uz2ÜYçŠð°*,/"1JÚ4å‹Ùž–äh=ïnRˆeÜZÙÍ�‚´ZчdÅ+£á¥S z–U>¢ŒVß?wÿÚVÊÆXšc›êkµØ\ú.»ò×ÖacjtÝ·Ð"��½G&dí½—Û}T<”ß.ðÓ³2Q;à5}h�Ç­#m4Q:}¸^ÃÑ\KºSóMµ9 û­5ŒöÚi( òêyUkËT· ÈȇaËø©ñQ¤%t”m+Ýš!ÆX<˜p·¤Z/vôCëÛ͘ö‘9ô1¿„ÞJ¥�‘ }„¢?é9Ý"x„Ù&:EÓJ  nŠÚ‡÷ýíQ`èü©~\“ÓÐÅà|ç7Y[ú3”%²é%ù²#»‡”«ü:ÆÃ¯-&L¿½¥h€îí0ú«Ói@ÆÜ"Ï·z|–БÞ(ÃÖUާ b1ŠpG–eH€pXÆê|ùqBxô8Ú¦ãÅ ðŸØôÏóstyYN¤putÇ)%@kFaw`ªMû*´õ}ë/[s8'Èߢ5 ñKFþÀ©9<>kDªð¬W¢´ƒm˜D(±,¯�šÌ#?CàdùÑ�±;‰e�±œ? )½W^Aµ:%:¬£Œ+5X¡­íÙÞêÂgT¦þ=Í8Ï~z£Ž5Zùµôtè)øfìÉ.¨\Ö•±kËmý±_23Û}Zméåvi< (¬/a}p+¼2�ÿ§�ƸÇQ•ÍBú]€yç¬d¬&"tæ'Š€À±•&£ž«’Q3Þp‹¼m·Ô·N¯R†°`­£Â÷ 1BCpCwÊ"µàýÌ•ëäZ£ÄѶdÎÔ€[úš¸\‡÷Û™ ì›#e›Ò”9~”ïˆÈÒÖɇ€�ÍW©Þ2ÚnØÉ1 ½ã¯l„%ÇüÖ—¼È}oóéûBEàž±«ä'A¦ÔÉbg<¡Þïå·HG6ýµ8"q83t3\ö6ÌßèS,Ó_G‚ á;M¾Lfg ƒh-YчsæZ=ïgWF5b7âFêÙ` ea ÑdV° Á­_ã…Ѭ•kÎr ÷ù9¿ 3í\wÅ¢3“G~«nЇwÜÏ.þ0•zÀ$1¿I€QP$¬”¥S3ÂÑ!އj ÷^ræ„J‡q§ÚOnÐ×EêÃÓ‘w fW°�tiðœ´)*¤˜^ßõ½«]ßWMþLý€Ge©¾¾[“‘¯»“»'ªö«ö¤ÐŸSÌr©¶ö¡w^!˽ŸEVÕ!×MÉk�Ðem¤,¤�(hH&œC•TRœí„<&ûr¤Žbš±°ö}{L@Š¢áñ:ˆiTMT‰°DÃcÖÑÏ)Wñp¯=cÞB'�7¦Á„üè�ñø“òÞ;Å Ùl]ý;„Â.ù¶ävƒ^ó!xEÌ!؃ÐÙ�ßœá¤1&k-°L´"ˆGÊûŠñÕ}ÿGÜ|ÎiÙLÆ r¡‰˜°‹ë‰I}ßžnl‘DNúËï�?tXïn<Ý5üŸä„hO!‚ÈõqsÜÆ¯à3[.“ÃÜÜhØaC·v¿ ¿P�‡=@ëã8]§âvi\–éH}+nwnOÝ<� >1á ÙoùzUËЩxTW‡7VXýÕâ%¬›Á±iÔõ—³q¿|ìÍøù§€÷�á#¹:âo¥ lþ¨1"^mÜE¦øºú"I*”7^=¸ƒ¶]ê…{=5Í,X†¨&�Â7'4£i{]ª5 Y�O`g`’XFg·eø� øbåyÍÇ$¢­­BYBŠ9ò†uô:9k›{QøÃ°„Møg݃$ëȆHý¯†j´ÀõÍ"– ^N¡åú—Å®*�¥H],?mç)Æîg‚�µ3ûP»v å­Ê9–ì°Ânë68J�jí]²é—ìŸ:ŠïìùrC·¢�¼ppƒ¿ÔD¹{á\C±Ü蕯‰¡¶¯YÔõ°5zâFÈW4Kž)¼“dRެj/¯v¿ðŠ1á'#%ÒäAMc—8¹¨Ø¸‹SÎéŠÏÜÚTÌs·`�Ð\âºi;Æ‘hÑò[ŠØÈ”ˆ‡IßÞš­ªëð [8Xœ)‡V ã2bV 5¥•q·Ö‡£ÿ*-7öD´Ì¹E‘úo ñ®÷)#—8 þ‚ÝâHÕ¨ª”w…P*7DË#›¡†^Ø–w„¹Â«:IšvŸËšõ õ©ä�^(È�f‰Xì6tk-JQŸ�¤5ù5FÙ¼+/˜"]6Þ4” n‰˜«8n6™¡§ej÷:êÐc7¡à¾Øý6ùº_BÏé*Rg†¢½l«(蜖Sõ€+h|ÎÄT{Ö�ÈÄ™G|•.±ˆw¦ rÙ†WT5 �ùG©¼¤¨®½I×±\IŸ Ð<¢cyÓ–¯A‡£rÌ8ƒi,ã‚X*f‚ìòHÝÕ7±uû¤›Ñž¤Ý6ò7Ú"#e¸4Qühö€ôÈ”ñ·¿n¿yÒÚk%€5Ý äµÿØ®îKåî—ÊÉ·¤ôyŵö¼ñh°…б:¶Sb! ݽ ÙŒgðÈÝL#}ó˜v9·5dÆúäÕž~xª»ñÐT°0k&·Ñs­Ô‚‘uŠ·°?:„>Ô¶§CÜHó‰£D§-…W=>±â.ê*{1­å$Ç?ðP>['ŠoàÌ�» •<‰Âõ%Ilw‚ð? •�sÖå®ÉN2ôÐgio;ç˜n‰7Âß·–.Kýt S =Xƹ°]U²V¼CSa«˜ÛavôZ!LÙ¯„*�“xÔ„z¥ö«tÉ=µ‚'ÿˆi1 VȵwPZfs‡Ý­ewF.yÅSv“’ôtV’©}` Ç8'ϩ̟L•jˆkóá~éË3Ü"ÄËê=í¬e 9`ƒ’Ì*ŸØ�)¯|€(óVN£.Lvì(ãj®×üÒ‚ðÑ-EœÜY)!:Ë C\ß?Ù»÷T³7<¥‚)ŽJX,𺠟GÛë]«K^e:þG¦a9S*Ïþƒ)\nq¤Ø+4B\|®ÑW~Q3R!nRoæLÿ(º�þ/år힤¸2Ó ˜@Üêv¸£q—Aù.å¯~•×In“!†ÏŸañ½° 3Îsá£TS[ëþkùíU,ª`>°BYҡ܈£Àk8$Á˜ôaç|"Ò™˜õ÷’ŸÁn…šC›)ZÉ�3 ìi`hêÆ_Úª¶Rsk«/RÖ| Å!‘‚)àf4$<;i¹ï7å×uh[’Àq>®fž�Ž2Wpÿç¹Jï.ßÿTdð?8 ÷«#ªŒçbÄeW%ÆmˆN-.þüIvÐù“èÃÊ”Üh²ð‘Ý�º¨öÚA‘+,àƒDÐ\ð˜cS²#”<VƒÈ<Â�CýðíÙw6œZs*`E6¬ö íËÆ 4'^|@á2®`Ÿ­ä1yx¯µgõc$Þ«ò{Fwðéø)*’hüf Ê�V;°Ð/;.ÌAƒu¸V‰ð€âwø8c'©õn€ä†|ž¦ I}Õ)´WDíFôûÕëeç;-¶:Lòò«»Bu‡‰‡½„¡½å!1¯g x0aÚ¨-ÚøG\uѽ¢—Ó¼¬oÀ1ëRN§áÃçyJØœ£Œ¥‡„‘;9U®»ÿÏ$¨Ïs°l8¤±0±æÈàì+.¼O¡3Öò_ÔþjêN3Û–\2,ð~s7Ñ™  ô0P¾ËM�~ £[Ù5gÎbˆØ¶c ˆäw¨ï)bÍ%q‹ªŠ†éœ¦¨%iz:Gf0¹–—]Zîa‡ÆŸ,šŽ¼_TZŽ:•–[Pp`¯²`’XAëä™ÓœÛ磼Œs¼½LÏŽÍu?pÁq"/ñZú~“ú@T°…þl_…Obm;¼–2|‰è¶,7O°ñ ºž\SýÛEB Ù›€óAxÔ ­¯ª=ÎJR!¸R¡ôÆgS£Ù˜}"Ì ­ÄšrìÈLÇ+à�¬³í‚§�`ÝóKƒ‘Î9t‘~18ºZ:>Âïú²ÚQO( a9ÍAT8ºkþ(Ÿ]aá sÒ›èIvŸ©­5ôæƒV¿,ž¦kƒLŽ�R¬–Ý’+fèe® &.8ƒ–W (Ï–¶€Ç̵$Š;•i ˜ òñÅs˜†X®s<Ä“ˆäk×Cþ4>á/ ^tç™ãWöwäìn¬‘f~ÿMcìM㚀É‘ì!SµøÓ„á›áO+ìù¦1–Èóº¢KQ]…¿˜ZóФÅÂÐ0œÙ�%0²}ê0 ÐgÕÏLq\-I92Ö�Ä›rËÏßÝaòT˜?Ã2±vÐÕÍ,‘yàÍíòxæJ Mµ)Ì…Xá®,•]M�Ÿd9ô‰¸ƒµ´vý-=ï뎧ìo}[*ä‹ü Î{ë–”¢4Qê²Li[>DU²ý,)|Ž{ ÿIdac=™$ÞŒ´å‘™UiókD°]#õÆ %8¦8K›¬3Û(¦ÍYuô9#&rzÈå³>Ÿ[¶‘9÷M_—·‘Ü2+l7nÂÚÑùª�ܺò OqŒ V+sc¢WÆu½{eig¿ˆFSÿqÁ¿G=ìPöèëk)­ÌN]ëÜÙɵkÚqœõiÞ�*ø­lM¥}A­Š]ÏØémÔý°…¤ª ÝÀ–*%žfÄó@vƒ/C3Oäåí§Áˆ¾SÄ¥¿RãxTâàcÜMÈŽ’£@…’yNÚðPÖî¨g77rr N£�9Q9 �Ãâ‡ÀÝÐùd‘ýšè_›É^*uá Þ\Êîƒj¥Ú•?qÜ"w˜�„í�äÒX%\Ñ1Qhd~ òŒÉ‚¯¤«Ö@ã�ƒS~ F}WÑU¦�ðc×áZóÒÍP­=ÝëuHαõkÃkÌ¿fòÜBØe”“÷­ˆg�¨°mFBEW÷šìÁ#9“TóáOä@ÌðW©o¡Ä\í=é€àjAöåJ2ÏId«ÈøWר Œ¾'™CUWµ …,NŒ£U:sò)0 å$1$ò{ÍiÐâP�Û%ôjïþÒ“±קÏ$`µcFÅÄhËú—�ã ßhúuP .m„ŠÐ¬‹å ŸZ©ÑÚÓgƒX“ âó÷@ȼ٠ß]*�c0%‘ÈäàC_”ût¤Ã£á/ç?q�nF—éïJiÄbÝ)aÍñ‚q]ów²êró ¡,æ�_Æ¥��–ë�<ôœVuG3„�ÄL%O/{váVw¡l2’7:·só.Ý©jÒÓš&ý¡„ÞN3¯Æ³ã¬þµÛ_æã&/°°FPÙ‰ØeÐ"J%ü„Ëõ‹8éÉrÚÍ,nû-í(q±¡ ==b:…éD&jÿÀññzÖi»I†§|û½86Q›z2·ºÌ¥1µ¡<§n›Ó¿Á0 ì1RŠÿ±æÌJ‘Qþ Ò4ÑcIPŠ!ºAh{wZ§|ðNhÒ­õÒ¤óü£ÚÈ ¢s‘OVÕ42=ÇT’ÓZm~�- û†‚H]Œ�im¼®M­.ÆAL$÷?ä¬gºäv;ŠÒ…žG³›³A»Áå'6ùIáLDd•Àlzx’“»‡bðÌVä´L$¼Áû²`Nå娲ææïÅ¥Ëêü·Ž5ݤðˆT-‰»}•¯§ t€'¸vdÅnù/ÈÇRÂ�†]øÂ®Õ� rYNÏßÚÛ©Ù»$M  7™^寃áSƒÌºc„†©‚% Ѳt|J\PÒƒ[‰XU¹¬ƒË`¹3³6§èdœ…Iß*1<¢RÊ[Y¾Ö@Y¢—�6gò �R§w47©Ã3øª ’Æn~k:niÍp”Ø uNαŽ+zödPÍŸÂßßÕºÁ=¹2,Ë€c G=|d©&÷™fôTžÆÀªMå!ýÄöfLcƒ—Ñý!9OvÑ.>hÆ$,(u"çÏ™%Þ?h1ØaóRÂß§�píR@&¥ÅÇ�¸ö¾Ý&õŒžŠ`â²x„;”ÕnW$�=ˆ) ­ÏúÃð §}‹ÚŸÍ»[~¯A¡ºôÆM½‡°x»¬sÂÀ9>Ý4dyÓ÷¼Ž?Y^©­sA/|`°Ó1�ô·ÐʼH¤ybÐ*D&*ÝÇ"ÄûŸ—¾ºå÷WT˦̖}ÒŠvó‡$ W»Ç© {øÂÏú¯ß²8/Å¢ÐϵwúÊýæ‘}`>äpoŠ4^A£*‹Ó·äfää•MÌmªB4˜Q„Ã�Úg0VöY~WrÀÍ:~y«Éü #§Êí›÷œk»ÛOZžšD�¦D„¥ ¡xÁ•å®ÿ '>M„ “.ˆÂyvŠn¿‰L‘´<ì[2$9lÜüzG’5-7*ÊH6h‡<ä~¼7þ¯@äÜ8)Ð÷<;ÖY-Á°«~Q¬5ò?„9ˆ¯",¦¹(¥Y–Ýê¨ß×T +T´y/ �xZ‚ýWšA7M1xÍM‹×¡û;(…ø>ÓTgá—\o²Cm"Y±=‘tÆO¸¯¢‡ÐKŽ«NmêZ'úzm¢tMø=wÂ.·úF@-6Ò¿}Ö'$��UgÜŠ( ÷™åeß­è_E�Â.ªd�1†þ“}γ¡üEX OCÿëÕ*6|Ÿ*�‡ÎÐRë=_v»u�—|–¿ÕxãPëÄRjO„�ÏDÉÂúÚ¶JNehãeÃ0@gÊóÂùˆ�3P% ‰öLÂêKvà”­cÖæ²ë`Ѥ�““ y@÷ÛÊ;ιíÄÈT¨‚;z¶X ÈbÁ¯¥ÔÃ×ù„ö.�èÓ8äÀÜÞD60JóCÌÎi¾SSf>(�Ãd¨QžÇ¹Ü–yÍxlj8CÌ��Að,8@­Gõè4q2cx?{¹·Z_ ë ;ú=ˆ9Ê’2è‹I”£™È$qð’»®ËÚŠH1æ �C_q¤ƒ&Uº‡u‰JÞêš!°Ât šE!z4ÿdA4ÇŽÕí¬72 ªA©öüO¨Ä�Ḭ̈3•¥ßsy^×¼fÖ¦`½#$GV¢óÕ”÷¾©¼p )›�2�kPÿy .ßkÚæ6³²i ³¥—ê£ï„`?g)~¿Å€£,ړ猯I£ó�u¹”>Žr5ŽË=æ*Ç\´»íàÚ­.� 4#²ÉN#¦G<Èÿ�8 Ò‹¾"'ïc‰[ªÞbª\ôîýÝ’øÕ¯âàzVÑ$¢ö´××Ól)Æ[Çx'Œ,µ­�Mb^éz+<Åzó‘oøÂûQ-C¹ìÃo�LdxwPë‚B‘iû“¸B™Ñw=«Ârœ••êÑ0m˜)ˆ×°×z¥QÆäà»Â¼ã¿«tNn7=åÐѼI`LA í†"_¢3?\¿³¬C±x‹NF§þ<¨› ‚7"òô,0ü ?–?‡©Ý¢q"ÉÑi°Ë‰)»Û º±ƒhû_ò¶H ƾo�Ñc€%¬úÏO ;ÜN–�¬û.»ª+¤<¬òÖø…í<©@#dïMñiª£k[3–s°M Yî6ªÇIólñ-áûûv5c9Ö]»Æ2éyê€ùGç&F’{?mGø@9°1¦”ó5Wœ!Öš5¥¾Ò¢3T±ÖDî6&Áw‰`¸CÄx®¹xIcÎàç’YC!.:³ ­^ëd^‡œÈŨxæ#ýóE†1F‰µ\i DLÚÚ˜ &b“üç FµÛ–1}�c}-­úµ=4ÞñP«ZYâø, 3@Ñ (:…“)•Ò¸Ä|©6¬èñzèX\V`ô�›¿?¦Üð¶O/‰§þR"`]¦pˆýOÅ:ƒ!Ÿgl9Ÿ =�;SV“p@ô‰ÑBÖ�ET~Éà£0RAõUáI4oç�œ¿$¤CË›ð!éÄ èÌê=Í ¾è;öAgŒ/¿ø8äÎÆÒrÌVžçû áý7°4BÓöœšèì²R£ëF'_0å^’r¸è‡1RÒOŸ^òxÈ%ø˜ÚäV°ôEÝNWV¾9EêFp `hhgÙY-"£Ó¥¡awËûúÑ×–J)¨ €Ìß4*F0>–7õQ¾G3AëŒ'ºF9ýÏ�’jǾòš†lø›e%²@û*ˆ­qy¯!9²í:T›XÞ™M0&)�MìMñnˆÁ�7�Û¨ÝRÊ�¿É’*‚ÓZlû£ÝÂ’&µÛé=ºz¿&„Uf¢�8ºÈ†^±Î-ÉU×a÷?Ý(ÒªïU´ˆcL+jøÅb$mc6(zÍ1º7¨á¾&w©Ž;™ˆDÞâh1Š2²T¢E{§ÁáN®=¸ä‚¬’ÉfÖ¼˜"µ| —ØîÕãú•V}a,gó3·õÀþã$+ ÍŽê*Õû«°ËaÏ˪ªdÑ…äâ.dê�-ÂHÚ $jc 8§�JŒk4 '{`ƒn‘c'm¿Úo´�ÿ­(2°@©I½gš+éof%dÈ® ¢779Ð?ýy#`G±òÖ¬M1"ÔÓÊÍ·b½Ýg‹lëm¶ÚÜr¾$×€.——vŸ~úƒW¸³Õè�‘CFAtÇñ*€—½^kþ#å~ïK®_…åpÂPló.2 ë/AäÂgÄbÇ‚5Èæ’!8Ù±çÔ$ÓWUÎ_FÕ4ÙE†¿&Õn†ÄØ«=òW‚ÑŽÏ¡?ÔMB.g |4²ØN±­9Ãk´1àŸl1\²ÚÖ”b,/¹AºX×OÞ¡M*ªaB÷‚ú vòH–¹ø¬:#›!s» øG&ùSÌã�]"õÿÂT‘µL,aS5—׆hƒ¶Œ¶& ,ŸóÏ}ó¡öcŽ2×?’»ÃkûuÚI“ôþáù¸�“ó�Žå€M:Äw±ó¾:x;.¾+í-¡ŸCãžDý.V”\hàY«7Ñiô„F…òqi§øí–Pz��F´¼è´å·Ü)H®zd<Ú£3ÉGâåÎF,øÒLqŽ~;v®N»c ÿc÷ƒƒS·šÐˆ/ߪøÈw.~aÅ+0ªTºš•£3"5^²ÿ8¤ZS0åpÒö {ÎÉ$–Èê0šz„°ÍÿǼ6Ò Ö’>êß#mdÌ �8 •X²hع!ú÷ëóuW£ïr[|44Ðð½ŠXéìàßluJ�ѵ  4Ôï·Ú#hOº·ëúšÔ¿½Hý¤ëu Ü çî¨c!§llñb’1«´7ÒŽ¥ù?eçܦ�î¶§Ë`ÙX"Wß/vü2gÈd/˜û+®È`ÝÈUÂìǯ!'ÜýB¿Xáw ù›ß¿0•"dù�ôYQ�ÃØ~ÍÜM€Kåΰ.¡ÈеÃý\굿YŽ™ô™ˆ†"‡â.U7  ÅYÀE* õåØœ\5ˆv<ã/ÄÂRi¥yÝñ�mžÿîê¦Ô¿š73Ÿs�|QÜtUÅÚ!�Ð Góf–¶‘¶~lg»žèùé2®%m[¦=™&H•ö2Hfïû{ØgP=G$ýãÙñ3(ø ÷îîd³=paâÑPYÿH‡2üaTq=b£$¹gC8p¡¾Õù4[)ܪ†õ¹4®ú9=ÒÉôSj[.8Úí;µ#é„3h¤o攵=ëNÃn,�—åÞá G~ƒðƒ§>Ù€ªÒñ|^Z$¢- B½-LQ8áH¤ò¾XÂYt¥•=iâý—6Y¯‘É©ÿ~K¿'óÅ„}è}7MÂ÷\¼çº|#uå%þ {ø(Ë0Ûš{O~Â4*N^Ø…;^Ç(qB Y³| Ó롲˜æÝ�ÄJç§a/t Ù Ñø};OŸ÷P Dæ"4¤î¨×}è…ú’×ÎU…Ü-6¾uã3öo+ª-E ê:g€Ö´ü*z™5s&Èn[c�)k.ŸÂ{…‘žÍÐ KÀ#‚�U”~“zT }Uòƒûdæ×އ—^±ÆÏÛ‘eÁ÷éx½ h&Yy-±§ÓÉÊhºÃ;f‹[¡ˆfþ(÷YlñC±±}bòÛžÞý>‡ò¥{bÐ ,ð°âÀUûPóFÄÓ�g�à[T;ÅwaE¬v íl²~6h·ð«ýÆÂbµ^µ«À¹ŽL`u~¯^G{Ê=Mß{l;þö„·Ù²¹äþ/[Ë" ŸGlÝ&ZLßhê]Më�â2šœ(�®e]ð­ó°8íîO¤îG“êdÌÙ-®S2;§e„k |�Ô},…T¸ê‹îŒ_‘Í`òq'5‹¶z”btŸ½»4ÒìFt´Å¶Û!}ú0ñ­WnZì¬�;ë?5Ÿ$Á�Juî-·¾Ml I Wu8¡¶îÅ[^”5>»¢zìfðs“ ƒZÈS°cšTIáðè°�j[¯Q¹übm¦ª#BÍÂb¦1_QoÑçjJúöuìU7ä¶�•9óoÒpð(`o¡ "©8,¶‚KÔ¼¿Å3÷ÉÃ�i?“°™¯vRÙT@V¹¡ÿ©jy¼®b�7=ìÁÈ‘¡·Ø³Î#^àžýT§È‰Þ{ŒOSá½Û5ã·ì·×ù©*f^(ä3r';Šƒ5fP`]ÿVé›rÆvjÔ,¯j04GÊ,8J›©F&% nÅÓ ÏT£‰,´æå§@”•Õã·s0Õ_þ¥úçÙǬÆ/0š(¢Gð >¾/¬91õ‹©)­¯°\¨¦úg ͼ•Šéž¶ê©W�#—šy«öl†£å¹](ˆ\?Š•jìäWÖœ¶g‘²O†VýLýo N]¨äí9e¸þÓÕ Ò«º—Ñè뉽iq�pãwT†�dèðÞ{�Ï3ÄX]§HöPT“9U‰%atÍgiÓ\¨* Ûõ„ƒ®¾øpÔZ7 aÅßå¹}w69O3ÑîOÍ’æÓ¤óôæÑMð}ðÕr37ŽýÏS1GÂn]Àþhaå˜�až0ˆBr¤~=¾õ±Îâ œjPÎoõi0Ô¹KýùÚ½~ ±û)L¡…|Ž}Š–@‚_Ô,²¾dÕüìup:V…z aÖÍc?©Zc„¦õs ògÇþðZ¯i‰ºñŸƒ^Z¶±m©ŠÛ{E˜©wŒ…?È[c›áö†�E¬]ש™¬}*�ûÀÁïm€Ø€2/“M €¹žj×ÌtB/¶¤qõ¯³¼è‹Ž‚Y íw^ëóIC.;öæPé;ù/°xºƒ&²¹ÖyõÌ»Ã+»üžÐó‚N�}úlÌ×ôi5Þ ÁÛ/q%õEœyÞðäÔ0ðHÜ.�\]?0¢^÷—ÍD« ]<±÷.ã]gþŽötOùärf—wkóéËâ%ù¿S¡øcäÒ_8:^ÚY �ÛùXh :¦¤Îç¨Éj<â/ìþ𒜂q�£�!øüP­ÝôÜÎô6�5©,q!í×GŒ�+DOhYZX�Y›ñ†NË„:¶¿Âã2«µ¬„Y/Äg=‡:Ûäv¡6Q~Gizÿv8lø.ƈbP¡ær,=+…ÙÓ^A åùùåx…ST%‹+c„~½ˆmê¡Üïqû¿æÏí˜_¸#5� 0B¸Çš«^tŒtnð¥Õ¹­¤_®TH®€_?ªäÛoÝà¿òñÓoç6V6I|9†ä …=ódO6„­Êà ÈX\ª–»ÛE€À…1ógçŽiµb…îUûÌ#gU\™h+›« ´Õ{¤ï“ݮե§FÎ×{©®WÅî>¾?YW+ºÎ¾>(z1ÿué?ÖË,}Þ.®Ì’Ää‰V°Z×wÔ߉¯Pª§Æ×Üná{Ižér$¾Ü]‹›ÍðUß^èŸ_#}ƒÝíÛN²€.Žñq‹?Û*f¨ݰQÓ�oƒà7à•éN'3bBT�îe÷7 WVZ˘TÒ+B”44x_0¿yáál;öˆLcQÙæmËFeá°.w¬6ª™XŽùfŒ¡ðÐM¶G…¿0!G樺^œûnЪw3ó-)€�Y·,2�À×L‹�!V™Èðï+I/J·Ù`µÑÝqñ’¿çÖM(¯×@s×t$‚ �ŸMìÞ`ð2òÝIº«KΠŽî½O¾}—j"Å9¢!:ßp¶ŸúÊj´*Á”šù~&Cæ3iÅ ­Ä*2/¦ü ÿvsi$Ân dõ.0êóÏb6!Tjìí"LB›Ñ]‹2#$•ë•ø4„�ÈsÁD´Ø[yfÓ V³O»l¶g¡Ê ÍóCËÄ>¸A«Â×'"÷µzëÄ» ¶kèž ²­Œ³;_|)¦ë‹°dù okó‹ƒÒerÊ»P×%äQÛDÑs²œàoã÷(æ_Üé*ýSËNHC­Åƒi³k¤êSwÜÝûW…ã–1 @_Xó‚èöàö<À Cx=®%Œž¾ô醴WB¹Üþ0oKÔM†#r3Üû‘ÈšN=òlê´tÿXoœŒêûWòœc[ë[ Ê-,7^­­ˆ›8ììêQdy²ZH”ËÚpÒ@﨩åæó”F†Õ ?{|å¹y°<¼ÍÒ‘†ƒÃS†™³û€àoƒ9Rýkçä 4E þ¢WÁ¦b*ÓÍ} vçÅÃ{nßè�ñgöy0w·)kÛ9c¡02ê.R�ÆÉªöG\ž°.Ðèrª¦ oxÊ¥s]oåàsÆïPT]%Ò79Y~zõ·v³¶0"qâG{F]†…”%éIjW C‘ŠcUÙ�žÕŸj=�{,ÝPøi»BæÄ”Ÿ¤³èöû é½Eƒµ:u.â¡% dó.7¬¹Q³%x7,dÆ÷àð.ìˆÍ쳞I�”ê#jÉð�ÊñÔ'®8­˜™"còž¥<<ÍZηwL£aOH™ßZUвfŽ™Ë íPè÷ÖmÔÑÞ*YÔö&ö@0Ãpد%<[PRjQBw  -èe‰ð;ï`{‚qn)JžÑÕfw÷çZØŸéJœ…£%–z)î–°ì�³ñAqäU-É£mÞÛ¼]Ž{7O *Vk=—bnïu(˜ £Ü}P#Š8 4°4ð˜²(.€šLa8Wê)jÚô„u{2^o Dt§¬ÛHC ßÖd¶Y^䈺cT í<Ë{7áiôôèÈÐüp±lv o{LŒ¸7‘¾ åÈ&IT²#Ý×¼BC¶ùær²¬Óì‚�f~ª²¹†ëÈàºíõƺ¡Pa­a÷H¢‘çr&†äQP@ö·À¦+¾[V”Ç÷[o>"Å~. :¤Ô«Ñ`²¨“Ð҉ݰ"ò5¯>�Û÷È)œ}Ý©•ñŒPG8² ?\ЫWiS"ÇoW°~é s¤ó è*<EÆ21À4�“0”jú�Šl�Ö£¨¨´èºÌÆ\X¹nJ™ð\£�Nߺȡú~³»9íh`ÔtÁE¸ø�Të›%XD5±&&žhxbôe4/�UP¥XUË©SéQå%„–[s›¯wÝ\–I€ËÈ+ZʦøAo®Šná(+ÝÿÖ²Ôëaª{ADÊè猰:®zä 2zþ¤—„íXÒüp„Uÿ®’<[µm>ný�Õì²Ü¢9Z™2åÓ{`&[9OœÅ³¹Ö�Zã�TèbY]ÉØ@ ô mpëa¶,/p¬‚Œ²L–"¸8ƒ¢¾J‹ñüÅïZ<§‡¨‡ðA†…Îxš{k/&X;yã’;cÜ»_šÎ‘ɲÇ>&þú… ’AWp�IyáÄ6Ê FØPmM Ùwê�8ì¢eðMª´õ‰) ~–«ë”ç¬õÔ{/Å¥Û¿z^}Ý]CÁÚǽr3ö¿7ì¬ñóîI~xû42€n6=Ï Pœsj‡�îp¤< RhI–Jo²ˆn¾hì9Lfxò!Û &“à1[9lÀÞê˜,+Mé�»­´Ø¢nêÁ¬Sе¾p+̸'…@ìÅKB‡�€±ÁŠI�0n‘ϵn 8É×/ä0°j'Ü�u†ïKþB݇üÖm‘> ߦ‘\L46ÒÊæ΃ÖÂÖýÔBŒ øà¾Fu‹dinV�UéK\ÿÇž6l—¢e¤ªðXjŠ þÉÅ,ÎNO¾D"Ÿ,�.ØlÐÇá\Ä%~�™×M'õì½(Ñ}Ø›–k‚ßÀ|æÁ“g‹©tA�æ¥D\æ5Ôä/qÂ~^ð1ºü�¹- Å „qŠ„ö’ÏÒû‹Tü B¹/Œaö­GçUi*ï£&œû;ì Œ_i×é¾Ä$d Ô“±ñâ•!²$ÀÑkƘ;=âõà†²À+(jóo>åo\ųٲšÔ¾�Aö¥�% äæ·õGl¿�-ýEÚò;ô%Øvš«R k•è;¾HLª‰8M™†ç*úa»:=ò�„´‡”�ˆËLA?£r{¿Œhk}Àh€ÚM ¡”œ °Áº¹BòÌç³êë i/S†�g¤£ÄŸŸ #µàù°+DÚHÊaê9ëÞjùˆ§°³¨'˶ÖáQ.‚5ƒÇ¹)¼œ>¬d¡z—æ&µÄ€|Óÿd¬šm˧ê 9íüB]ù=I¤éN�‹ŒûC”Â""­BaùŸÏ"f!¼Í�Y»—ò/òôå {+½”#Oè˵¿W™ô Ì)ž` ÀÉBúéI$nªŒo1äôoÍd]PÔĘV¨-Š×‘ˆ9%[“0+ EJ��…z㜅²eSð^à7ÍôrúòKG €EöÈ3V}xm=í7•�ê)�Õ,³PO,Ïðf†t~@/ÙÙtÉÊ2tÚ\?Þ®›þ€¥: ãr¡´ úfÅ¥Ü#¨Ø§]€ÜLºŠ|ÚÆ”Ö:Ï:Àq ÖðGù7b±Ë¹®D”‚ÆzxûŒJlß ÷È,  möj¶›;™ ÒÜ¡ò)Vzñß‚÷n?´ Ù௑ö™¦4'ñÂìÊŸý&i2$ÎÛöÒ¶”%�žÛªØqa\,3ZërLª0âQäeSç8G4[ŽG÷JX²®²’ã¾tL Þ±Oë$Ù¡\1“g�ÁkUGa"¶ÊÏvWMÁ>쀷¬>˜–V'kÏŠØ|=ù •Jò´Î$ ÐÓן'ÿÀŒP}�AÁœ)¶Ó $=ZÛc?ÔýZ>�v�Ml¨#u¢ÍµÕÂJL‚ ²‡²¸¡ 2 ä~OJ6¾QH€pRÆ^õÁgæ–}x æØÛ¦¥ýŸpÝ’d. Òxy¹ñ_”#�Y?sæª)¿ÄuÃùÁ\ýý¤dKŠ%ânÍÛ§S9œˆ­¬ š+­¯f4S– ã„9ÇH¢ëaG¡ºÚB±çö˜ ©O�GÎ;8¦�X½¹¡Ÿ3‚£©}‘Jd¼.²–|ieÁ˜Æ,6k]1™s‰Ø02™ê‰5úœpˆû_Ò¤!KÍè¨Â³%ª™ïÉ�oPœÍQÊ>Ž„/˜6Gj}Ð÷TŸ—Î4‰ßYkÐzvå &Âj뀜=)èJd� Z¸>¦Œy_?7Ììpü€ÿh³nyc¼Ú-¿YÕ7ªxrÕ�‹lÕfÊu² Ôú N:ÕÖu'gU­ TÀ Ò›ÂÎèz|Ü�ÿ7Ê2c9�Í´”í\ȯW"C†Ç} %˜¶Ü!^°P‰ŸÓ,àÅøIÏ xN¬£(4š1¿È3Ïípo²HûóÜy#Ì®ó@k~ù-pµøe3ж?ÅsåÉí³¹«fî2’h*î�€ÔÈaϱ R‹•C£r0¬v¢'kZ¢&í¤…5½ÃÀA)1q¥£—a› mªXï ·âx<à5ùàà¹%‚�ª0ø>Ë›[`gÝ­¼½öTá± �}L‰(fÕÃÚ•÷�qdó¬öwùÓhÇ3|Ú@2¢œÛüFw]ô|¾WÅÞ º~!Ù�îëg`øn•ùëÝ {ggNøb#é,d‚ü¥ÁWA ÆGP;ÖóÓ"¸·…iç[-(Í]Û—ùAÌ¡ 0F9�ŠR¤ü8&ÔBŒ•òVÏpqWµ¾»™]KüFx¥Ú''B ²+¢pœ~)¯a<&×3à‘tÚ8ø¥0"–4D+ÈÃÆz0Ñ0ÚdAˆ÷ÁMÒm.�|9ÄÆ÷¶WŸÑŒô›Ëí s=6J|J‰ñÓ,I2�< ¶e� ‡¾ªê(dÞÿ«|s]TDK*diƒ7¾ª½¦Fý0{‹YÂoh¬ìObÈ:‰„HccÑËY‹ ÂÛâŽu… ç_>ôM¡A´´ˆXZ×õ’ïrò»ì¸¥¸ÇعŸa�ÿSÁçÊ2—*´ÐÔŠômxqvÝá9Äž�‘Á%õ'"ýs±ÁYEª¾|_æmvQ‰bsüŒ7ÿX�³ÛÜþ‹ç=Ò${yÍ)õ¼T “‚ÉÒ>v£*çÛ:¨°ÅŒK¼L·’À&A?[ôW’:Ä'Ô?¢E‡×�ù¢Î؈Q/¡wXÄÑ÷½‚ |ëJï¦tЬt·í_À‚Z‘u÷"kÊ`Ú1EËûpöoÄ-0v?=àBÖÓ#:Ö…ø-[¶ÅºÂbP²î�–PšÓŸàôg½ÆwˆðÔÂN<+Q�‰<ƒÔƒ†@ OBJKmà&){æ‹7iì³– ú Mc?92&Y“ËÅɃ Ò6ïÐ… S#w¾{àp¯30®"3á¥îE…�‘™0vä\\ò‹¡H¤E'÷q,ÎMÎZfNýécœqÄÙmX¡VZû.¯Âžì÷`Äén†#wg§ãåB-•¢ê�^#LÜÎ| Ž‡Æ£QÕŸQ7ü"�tLF±¯‡˜,w*G@ö ksð¸õ©š/†Ð{|…ZÄØ¨.áÏ~e;7¡�µ¶/¸IM Ëf%f_Lê:t9™:åš÷Röƒæ¤bl|Ei3Åêa®?èdpõlby±?TucùnáàœEk±’+…ß8e&§>>jײÀÊá[ ÷ ÓgÓ§ÙžFöšNÝ ±,°0­§ÅL²Žm°a±SE#øÁhœÃ‡�0ãGlWIp†íöÓÃ…D‰\�Ö€›ý±(nüFØjùøý# 4ÜÔ¦< DÅVÊTb~¨˜¸~ç6-‹á¿ût9÷ð=+¥¶Øiv?1a>¢rÇK&‹Áegh›*„Ôr“ô܃¢€­¹ú£�]ØqeßG>×Ð~N‰=9|:T&èÚi)ZMVžÓã™<ÂP俤d5¹[ÇsüeyM3æëÌ}q°>�¾œ?¼ø²y¡>xd¬2GeàBÇ&1vXphÇ ‡1ûâj{e‚@Lt b yñ€ H¯ãðY±Åö÷@'„ŠŽ ,ÎUÒÍÉ´‡C±³oËÐ{ îÙó¸@èšz:¡VN9©4�Ý<ƒã;ŸŠ "�øå¤ç¸16,Æ»¹"'Æ@Ÿ?‡„M?øý! `1c§}wˆ9ÕÎÆvÀ� ¬KÙ$¶\=šï&ëø—æ "2c‡R}ê"¶ï�{­Ìçà|©Ð8J©ecp˜çªˆâHê\ óIJ%¯_ÏJXµX€Èæ­£è²`v²'ƒ`S…ˆ ZXj¿ãÕná}ªk[`e�Fà’OK´²f?³Ÿ~ëí÷ø¦±#öt¡/)ÒûÈï™Ó›Z7½#ª£F©L¨.|˜žž$ý�3)}µ4¸�‘úèêG~—5×=5«@—÷…tq�3›àçæ÷#J9¨Š%[0õñr¬³oàp�Ÿ³‡NËxà�¿ý!ÉxÌ%j}8‚¤v¶ý�¯SĬk�oÌŒFPPQõbRäTv¹Í 6E0H¸+U?€îYa�ÍŽjœ„ ÿÙ°ÖLtw7@æ¾ù„ªQ$y³i·Ý´ãé˜Ó’‡‹À´=²0 í&†XÈi�¿¢°—ì)zTÈ\BdmÆò³eÇ[Þ�øž¬ 8s Nwí:œÕ%H,±;×r«Ðû‚|‘ù¾¥4IÑ›ÅLNëax”2òO‘µØŒ�“^3a dÕÇG¢l@Ô[JË3äA}J˜ÛPäÛ †9ÚêaM@g¤N,ø9�bÁO®q6B0%åÊN$óy“ׂü"Ýñ—Ð̰õ\t£Œm²n=á–/r¢¦Õ‘ýÞA¿Fce÷Ï•m ì{ß{]á3ÜÒ1À ÜÜ70¦çíVj:Zú]¨Þ$JL�ž217]8â�×ä«ÍÝखˆ#m"°q‡Ž¸¦T öúš>Ühšv�¹+ÝÐ-‚‡¹áð[ !m¬I÷£5ÜÈL.FX÷H(θ�ú÷#ßN�]a$k(Û®8…LÅÃnýg‚QDNP._˜ù¨Y§ñWæ,HË_ü�¶Îؘ¿L043“¸K‚‹éAºSrð0wÍÕlB•Ÿ·q"Åþ €ãõpßò‰�·³y# ojL³Fšþ£@xÙÔ•™¦‘ˆ ã¨iz) 7k[u})C]Ý=§?<|•nû¸Û®vöܰhŽaRÑ3£â–rå1R¤ûbFOÔåè¸H’ýl›¹(ao1 èCÉtê•fðÂCîA‹"ƒ¾_êã*]y? »[N¼]Er.S>âZ±@¯²åò„ áßn®º"�rnßh u<Âw¬'¬TÌ©ô[¯�&#èϬ—Ùu*TA »ð¹Þé‘bP)×9UFÛz‹Üs6\®f ¼E\´2…íGˆ"ÕZôžþ“6�Ï™øÌ]ñâ>FJÑ2ÀºÉȲŠÔCï­•SIpÑÀúbö^0¸x#ƒnnR%@Ë£×玘+öÂ傊ÙãØÝ 9쀈l±´É­žÒ®fÆû'äøý6ôª¯jå™)*Ò4©V9<Ò"å •”ƒ¤3bÀËœÜkëÚèøß#Ú]Ìæo*>L²oEG•“dÕ¡t„î�sV–wøÆèÉTÖOüòŸQxÁ3ýkFi¤²™n¨jÙRÆè½Ìp¦…á¤}ÆKe×4öø‚¥œÓWàk({™&„ÙöA8 çôH(¼¦|0 9K;üEµœœ0ƒ â›×óÈ2V¼h'˜=žúúu[’š^¬h!˜µÞ�—'¾o‹°dz3ô3(¸*õPhÀw[q냳å¶�áæÑÐoû‹‰Ìj§Wô¹æ®4fßt(…µŠ¥gÊ2–qVÅgÁ[õç åM’Á¼gæZØ«H‹´ºÑ”òt«Ÿ!†C�ìÞ~èø#©ê�7T7WÛí¿ݬKœ‚ά4)vxl å7¤^ž3ܪùE¿ƒ`wcFcÒá¢îiý:]VË­Ô™Näå¬OéD2r¾Œ%t¼Ë±ÖByŸÖë”møW°•Ë{<À¸ûöí á�ÊÏå4i(>*£W�ŵ¶g—œR‹RbÙ3 ’¥1"Så:ßP&oµ‘¡q…a«ñý¡ÉIá8`¸¹ØÞ²ç¸ÜêÏ‹žM€�ÇðôCº¯Ï\ìAº· ¬¡´ÙJ” 3�÷*‹gÊ  ¬ÁéL)ôÌï"íbž÷|‹²¨ˆ °qi›Ù�DºO—èùé-b’¿P`ñ‹zQÃÎJÔ/îBФH]əߛr�?à�epg8úÀŽ§Ú´:Ê[©2£Ô¤8”âìC„M¹Ú� öšÈ‹pÿ¥õ.Q¢½¥WÍy¹ä#,OW¯_ài NqBýB*Sïi2Ÿ_�Yö{7‚ޛ7¼€‰æÛ©ÒÔ þ“SˆçœU*PØ«melƒiÙU?Ì¢;dð]›Â¶4Ðíô÷ðTÝ·Ÿ< QôÉ4çòðýþI¥¿‹VÃ\v`µbÒ?ü…k(�ÛKžô’XËNézÜR+S«|�W´«—,¼›Ä×pþÚUVšýæÈ£‡D›#º8@¨Ùµ5B·¡ÞX/¸è�"yiiº„€–KÒÿòÃO#õ‹-wÏ7ý§‹åò_õØY0“ùl4&*^swe‘*@^]ÂPG£+&ô$öÿBvÁz�8#\¼žäQÓ{Ul>.è¿eÃ¦Ž¾UæxZ)XŠ0aYôXTÓt¶¯Éì>hÚÌÿ!ýc(ÈÒÆ®+y±šBmWY<ƒt]q-T°²g+rÅ”¡—ÄL“1á–¼–Y©ô¬Â•pny9”%°�mR5Ñ„½ é74<1ý)DÛGf3Ù=¦¶Öf·ÊRµÙº.^šás;UeÖ`ìÔV•×izãc(ìq: J–ˆ ÃåZ¥¤¦ìþ$í.òÍÇöXé9{ꕺ‡‹p6­ø“FÏuºÀ9y{w‰gx¯”z/‘ái— 1oÎ#޹Á8"U8üŽŸT;ƒ�ÚåV -©‹Ìâù‡§)¯UíâãÆ#h}W]{WFƒ�¾gj{¼Âø¦&ksIÓ¼À�¶¼\.®†ã¨rU'7¢â«µV&{ÐÂR ‡Ý¹$ìjT4Žóï»zФL<9ë/¥Ô¥¤vt\SY¥jzæ 8~ÏðÒ9� öR¤öÑzJ0&\ÜÓiŽæ…©‘¦æJs�‡îÊû½te›qñ¼);™œpÒ¿63€=Ã/j°²Ò‡�ÜV´™º§zPý¾÷) r ™ÓX™=>F@B”u®ÄE0UCÀþ£¶޶«¦.Iš�8Ðë5P÷`ÕËÀ?d�äˆã5¼6n±v÷Þ‹ Ä).½Kâ†a§ZœÿFÙkúzÖ_®w/7¬@¹1÷±2̃kbfÙ»(I©?x:µ™ê;Sóç°è²—öØmY˜Au„‹&}IéUê`µ[êéÒ'zÀ…=0þK ^ó–ê„z–³på�ÈjF¤D""’ÙÙ8;š —ª³ãZ{ÔÞhX9ÕO¼ù”|dQ†ÀVré×\æ ¸â5Ï¡û�Kù`v‰DÙ�7[Ä�=¶*’ŽýEhž Õ4½«y`ÿ§1ßÏ~Æ»þÞfìSî‘,ü¤zíX¤9×­�áä�U5CW‹š¦?v–öδ©Áª�EÄî‹(?⥎ãqÎéÔµ3.®&�#Ôõ�©f°Ý ÉóF P?7•ÃÂ[dKÄCu௪»=`¸Ðç%€eäã2—÷NZ´Î’õ„žîUð7�ø5<@ÿQâãýCÅQ/&U2}XÁ2ƒÁ¼?švW•­Â­ÙÜ ë3N^–ŸNKÿ¤«ß!¡­›ŽgRß³3ïüÖ…‘|ü¶vA ;‹r_çVh”FO9‰ Plò#�‡A"sïÙ8F½´º¿ïâôÍ›a¾Ð ­†@¸²ŸÃg#ÝJ™�3Q¤À,ƒÒDÐáµ"·›­ÑögõžE0Êc€ŸeÏk¶ÀM¶=yVH‹BÖ´ãK=i|t|l•j @‡°“³7dæSoYl’ì=D‘*² ì½ãà `˜ü Úkõ`QÆ9B¿öiøµÎW1ß”x.[©h‚‡"AÃõ¿í´r´€Ç‘ªþafS«£QN€Qræ�üËÙ �㩳b»L‘RgZJ˦�ûml++~Åø¡üÚªïîZB¡º=[,ña»-Šju5({­¯Ì’u" ƒà%ÊÌNëÞæµ¤Ï6œåÔtN®3®ªì»RÊÚïÖ­�%i´Ì²nsØN#Û÷t'£½1F¿åkŠ6âXÏjC6ÙLñ³N…ú7 ú]Øo¶+Í]ß*rÿž&fj@'«-«1*b‡�©ŒÉ1]¨�—;qZÙ./f`AùÁcÀ/1hù1ÞUuÅoPh-€Ï±õzï{ÅüP]ßyvr¡2–˜©d#™l*Sé6&÷0o†+˜ÞwbgO·UícèÏ�§½Ùö+š°š¨*œ…è‰|†÷í y0cÄÏ—´kÙÁSá"´‚‰²VŒy’¯)ßb<¡‰»kupp²øÝ Åϯ¬êˆêY^ �ö…ú…DŽp\ œ[êܸªAF!&&ÞµdÀÏ1Y¶ÏÒZÁ©-“óå¶1Vï¬îQG�“¸°Xœ¯Ó¿$噦´�æG1]¦VZ3ýåe ”'5|ïãy0Z²þV‰HNîäZÎ’Âé Mý#ꚟê¥N¯¤ôÞ0¨Úý§\@]ŠÓÈé³\´p-òŒ´-ë:RµöfNOl‰m¿ÒCEZÁÔôMÕ‘ÜF#ÅiÀvÁì}FÚE»Ê+þkÁ“0>—�äñؼÔ3jrYXY–éé]=í�bOT×F3¼v²½�0Ç Ä-=:aHòÄü‹ÿæÎSS�¸ãÄA‹fX¸Œ¨[i§Ê.³·ðïÝ~S>Ô‡ SÆHé��ãk–†Ë™Âöð ‡Výiˆul6½Hô°‹óŽRéX¨. ä‚�èðÇ„øì «zÔnlh¦éŸ†%碦”z�e`B'a ޹^T±¡•Ö¬ÔvÑ¢`á_çKg^™œŠçutø~÷rʦyºi°'Ö”K!×?;9QçÅ[ù(²þR ƒ»xrÇ_f@ P\ăÏm°—Ä%2*Íš…Ïìr®‡Q¨rýКe\ �È ÆÆbéy1ÎC(Ï�f•G&Ûþí=ëÀkÝ|pñÕ©=êÃEÀñ'¯ŠÝ‡ÙæÖúHæ¼�-î›­Æ“1�°_A¸�3kŸzQ þ�˜]·¼ÈúO¸$RÎBB„(1pƦ=Úh‰ M«Öу(¢~BUoxÒyÜ_&zdô‡|ÿgDPxQ² PÏw|lƒ‰8jálœlˆ´ã­u¶KSÀåäØÀå,~Ø›ð7J© �-;¹i�úA‚H*'eëŸÒ7þN»ðkMékurrL ÇøÈ�ÄTeÑj2—ë…Ì+É¢  æ«­ºKqZ�èV31¬ Ê"´äß'o8Ô�¡?lÇr4ä{~€¢¼âe›¯®SgΕû(ŒˆØ»Y ¡¢Õª3u¹ê¡W_@ã�rÑ÷Ïð?á¶æ¼·žØò`f†Á‡eä;â…’9­tÒ¢@œ|‘Q{�µë†>^OãL�‡ÒJ�¡»€à`Ù¤úW;”³Õû\aÍ×W×¥Z\el‘?ÏUÛðë°AùTá(ú=ô‹1-øðÔ| "3oŽÄyär}lýS”ôvÚþ:=1jùq ‘#Ê[v‚ó Ê["ÎWÚ7ÜóS™V„(Ø Ãx* )00}»Qi7™/i!•‘®’¨Qm+ÕÁÔ�G”´IT³Y9oS°™Z„û¢cÓ[’v»Þà^²ëÑžžè ¸I*”ù}ŠGÔa(– -2’%ÍD™ßÙ|�¯ ýxðøL/°®©¾ƒ8ÃÓ•G]l~ÎZ;´7{²RR…tÍ~ÑAG©B?v'¬D½uô%oû*ý‹}Í1Mâ\žyCR,ý/]ò†ý[ ½zÞóâh÷“j»ÐÙÔðľnô±A6|�€4�Ø�±fG=¯sõ�ž¤�úÕ%‹®ið-plå5ã,´úÛ[ú˜u’n‰‡¬k)MîÄž_ŸèƒIgPÓDgå™~žOÊi�€³ÐXJ‹b#‡ñÌ2N½¦úFl[pÉù9y0ðœ ΃“A9æìúÖ©û>û6k$m!D(…ôLsÎ+*ü.žðκ—S¥À•Zȃx1ƘáF·c�¨Ïqß²Pü?JÚÇ’ŒáÂý‹õ0™Ütõ7kæ(‹9iÇ|‘ö7ý�™]ŽˆwSgËý@@L²ÛÛ¥ŒC»š±wÓç´/Æά¸•<†.;"BôÕ6S¶S�jdR‹åÂs“m'9€ÈØg íÀß håߟö’}¢²§ ÏBZýU—g¯™GÆ¡n)Ûç&p¯b<¬ª/¨ ÌzXðŠ"¯µ !ý¬ÏPyÓð¡qîãJU܈#ËNŽtM (kÝjKìDúɘ�¶Ô¬¡\ KÞî/ªèªX•® þÌ&<´ßУ׉…Mst‘’�4¢ۜÖ}}¡À %ÌîVЍ~òJÉúnOî ¬œOä`~¶…ꦿv� à_Ý«”"ÑGËüjäÛ”KR~¶ñ—Õ+åy\À Á““al¹MÒ•Ú”élo4¬b  xߨ‚¼ýíø+¯#tçU0ƒ›t9D×ä¿×‡‘¥â ´Úy%£EºwT*%¾€ÚqbïìB!�½˜U»6h‹ÑcÌ9ÇÊêKâLa*Ý õ:ô&8[~0~Pña2Ç™™ÌÓ4d `Š5}õ¾�‚ SchNÓt¶‚«ƒmoa“§¨ÔKyØ¡éjã%Iè1ÊÚœ²g¡ô�’×IJvh ëf(Ѱ8À8#h‡ˆl‚N°yr¾úuR'€ç‹£fÒ–‘:o3Ž4M�H¦�â‚^¸wR“…O –F [y“M`×OüŽ{ºN–5™o‰\¾›o¨|/§;ÂEh�BV¢¯&�ão`‘e€'¹Ê‰V ¿êwÁ.-)ö¯Lgo]R`9t�@_Š×ÅÓ¿Z�ð 粘9üÐ"æø¿�ž¬G(Y?)ˆ j‚Ø µå?™ ‰ñceEíCO˜³ CR»6söE²ys�¤KË…¼ÁÞ)´%ÎÇæ©@X±"WÛâ�ï¾9ĺ1deWî_�˦{ýÌ®Ìjëä9lµzlh⌟±ùYr£ÂÅâ[ÜC�¶¬gô÷óI÷ÚsÏ  6±w!h.´6üÙÌ0xa›ˆ æþ葇ª˜.BÆ�Pÿ\sv„Çã°’{?½tçdlaÄh X¥¨®Í†ejÓ‡È{ï^-fléÜÆ ýÜ öS›­¡ZëPI#¹Û«ù½©Ú4¾>í*DXÔn§æ³@MPdµ‹™%8kx²X@P‹¼”ÑÞðÖ^ÑN¿¸í^%F›îÓ^aF>Õe}1Ê ÷L×Rd"â!Tùno[ä%†óʈa¿¶¡­‡q‘„EÉ]@“u‹z[Údê< é�8µkæv°éà‚|Ø–_ 3Øæ.JÚë>O¼¤ûª†Á³�»€©Åï˜÷Ÿ£A€%B…Î$#?ä…K‹éŦü¯¢–3?Âö3§„ ™*0bK-ö²®màaP€<ê’a¼�!+âÖCvµ8O”&$jsÅÓã \œ$š9v)1š:Û8™hÔHNÛ¶-¯3:Cç£oºõûaßÏ–e mÛB%�«åÁ«œ  Ù·jÏqä5$›lñwï\ú@"¸¸:Ì�èf©ê‡1:ϬQz5‘Ó0ýT§Ë7ô£wrLИOsyû»qÆÊç˜>YnJW#�ïðöL8`«ïC× crhÚÿÒN߸Jö²ço Qi´âØÂ=Þ­M‰08 ÂÚwˆÕ$ý» Ô°šÇy‰&lþk½¥Knð7ò˜?ûcäëG�YÍ 9Ò8-ËnÕè’xP>¶�ŠE�í|ž[»ÿg®Ìüoú½±ë†Ð¡S4æ#�4Þÿ;}I1eáÿÂÿŸc ¾¢G÷7ývD㢥’¸6 Š)L”H”ºif¯bZã�“�±@À`žn¢î1õG,Úá»NŽtNâR,2H«uaÊtYžUB БƗŽß~5¤ÓˆLØò»ÁM8öxìÖï ëà©fÌfÔI‡h¨æÔ5 ¢Ó (R½F…B¨�»Qr+2œ±ŒÌž\hëÒrÇ!ÞýD&³"F-¨IÂÌ”óP8Üîb%e�jÝ“³Þ“í, zG¢-âéÛ¶'ÌÞfGÄ5Îf)q˜ˆ8¯Ñ¶± æ:U�~¹s¸y ]8m�º€-‡ „¥P¥_µÒåM½ÇHjˆRôF˜ï‹ß*ª:µÉ íÞ’0[”Xăº ÏèŠms¬ßò¨šèµv-¤cÛwâ€�›ªaÁ»/eŒ67wGÂG¨DzUAL+�‹ ¤æ—q¨ôÊü !–Ñò›N’qE2VâØŸ×�T…Ÿ�Š9“‚çeŒ‹7 ÉpbEûI9¹éå½À�,_ÌÍ-¤Í*¥×yüRæ%Gè%Agmöü%vŸ~ÿ ‰¸·Æ{ü‘^˜�ŽíS?e�úm½¤5ê*‚~T+- YÎܸ”ov|è:äuqß#S>²HI7ʯ‹Â9¢åôR׺½¹Ž·t•QÞ%^«ºi Û¨gœ1‹>Ëšú,W÷·üõÌnŸnsL3a, !0GÎ7ræGï¿ »6ëӉ蛷]µÖT 8e©k?'2í‘Æ­âãš½ˆp– ƒq Š”S þ s di|úRL,U›Î–ÝÝòAЉ 7§ÀšÇr8G ”peBpäœÍE×+i{Î�{ÐÚ»(% ¬ÿ$§\‘!U˸[Øa@^zcz¯#úÎs¤É·@¬_²#uSƒ‘·ÛDÉÞ€ìM—� à3œâ33µÓË1¹ëO?ÒóÞ/ÂD}|ei§íֈ³×r«³ÂÈ)¾­X™‚ûñWˆÝÔùœ“{I¬S}ÙÖDé}›xù´E�p8�ëN ò©Éê6!2Q—�K0ûL V€V=pÝø¢c/ö)Tí“$=ä/Ç„ÈÒ±i•\c¸ÈJ¤´{L““êIžÒj»íÖsõ=˜«³=+¨ºÁ±ÔçÆå7EN3õa8zÜ1dÒ*ÛV>âbçJáËŽÜx˜1•™‹Þ}®Ö›ÙÍZ}&%Rºã4èYü›eähÚDš¸«7;4¥ØJ¸*Eÿ9%y†)\‡-—¦ˆ£žnHIªÉrCÚ¿q¼�*·I|Seð8Nk~aÁRãè*Ü'Kâc@^­øÎ´ǾÆ÷Õ|^«Ÿ5-!�Ú¹R!qæE!~eUùEµÚXÐÆJU%ô‡Ã-ŒÌ>õ&„éXC8±ÊvrÉ5µß>G„¸Fí¬í¨�ÑÐ~o·Ô?g`3¯Ùn®{ºŸ‡‘GtH#™yFøÎ}‹,|^Óøæ:&ÔKá«>…-�ŠSÒ<mÃ]kiÁï¸ÿi›Mœ§çR•™®ð§1A…8î»{òØa%�òêMg I%ØWkÄÄ÷n|�ú¥ q[‡” QñÏÄj™?â Z\ÿÞ°¯îOŸÙ}­ò|ÅšŒ€,ZÛ§Ê©‰¡¾nÖŠËÅ8—I�N6~þOpå<À6÷�ÌÞ¦å ñàsp‘ƒn[Gõî±ÕW’wnÒ½Ž¾Ow®r�Ð�q¯­v{#ˆ1É2{;”ô§^�·0Â�~Õž„´åo\mÓb¦ŠÓlnžúy¢5�aÀoÈ:ÙE.„ tÏüß4¹hÐ+Gì²Dsö}Œ÷0WƒG6B}ÍÍXê~st/ñ¶üÂ_Ï¢b$¹Pݺ‡'›¸êeªû£|ÜJ™ŽÖ¾*m…”¦$$Ü߯ >Ûã=x7^äX{2\`¼¿5k ÿÁ7°QÐG$4Øœ*‘K¹™ß³í[ð¡¶$$ø%+´Cn°'´y†jçK¼K¹¸ÄZßÜ´™H@3dþ¢´»¦îÐp pÈ7”ü® ªñq*m˜)êžnݼ¹�r&X¶ÇÂ$ý(¸€yà5ÆEúï”ÞùdÅQP±’w(€zjÁ¦¸he0…–:ºK]¯f�cïùéž1í±%©B‹i}¬w/–¦©c™¹Àõ}?“üò,++„RЛüpÁ‡U$Φû¥�þ 㡘¤¨÷r÷Ì?ˆÖv¼6$<†68�ÑÞ‡æ=Bi1)ö�’6!Ú)z¨Ö°9ægnP#©v6<¯ŸÑe'-¿ãa�ýkÁ3g×Y�Yû»ù<ë_pt XØv0^É ,§pó‹ÞÖIˆóÓLƨr÷œJ¸ÔÜmƒEcÆ´c’ü(mÉì@Í9_s&µ˜bݳéý}¿€�äÓÕFx7‚b€¬%Ù5×MJpšI²%»Ê<&^±Búsèê…z 55ÍŽœbé‡è,Í Æ¤®ÐèfYo·Üê_â¢a½r^ës7ÜÛkú¶Äqçz;äwà4þ Q¹‹þ*pË»,/½”?z}—AHv !0YhB‚X]èÀìÑ!qS$àMi‹Ù…Äéãï{ =´7´/™ £á`ædÞ›ÀØx§™¸¾e8‰–Ujü†wpfµf°ªæ–a&.ª .gޱ-©ìö¶’4%ÌñÏíT4^*ÿnÑêÞ ¯0ól•Y”AkÊY2�(B”Hùn�ðxg!r×,å»±ê��i:¾Ã oþŸҨ}®?RïzîÀF¢û-²\CÌÑ‚ó¤¢ÇëÜèã¨T*âP¿€_W&ð>;(h>߈‰ØdVÀw�®hÛF°ù8ï¶šk—à–’ƒûÿ™©pU÷_ž±L[Êüî:8U¨¾Ë©³°�"Ÿ3}¸:Ä%àŸ2ðÊ�æ-£~xþâêÍ”DÏØÜõ¤©ž"…�º.¼ººGz+«ee„=JVÃí ýE¢É„Чž²+.:—1$k#¯+Žý'€öÂØå�Î�dÀpqÜO]_Ù,iîr8pEÁ´×í7ºùÌ‘rŽè`/ÈŽ‚»` z=ƒØ´û±g'd:8þ+d¨É’tjM[Šâ’S8ÈÒ8™g½¼�À¸Ò‚õž�Gë®3ú4ÄËX®9ìâL-Yþ}-gx% Ç#jÖ­ô=OiÝó—�ÄÇg<}‡á`%T•1,úð†gì<•e«¿n#vè¾,«gÄ“ bu ‚ƒî¥HDøš(ÿÔUs�rÜ,iÕHX-Øq¸MÉ…_�»Ÿnî¯ ”µZ´S6iÝÖ0éy>ÿìt Ÿ2äŠÞá¹%¶$‹ä“ûr~´ÓbvZ G�­²ë'kÙ;óa#µKúchzjËQÕî*¤Ëoš²•΀¢»UuDiðK ¤tå×nb9 ¥r3¹U2gW4—½Ó¦jn9«!FJ—Ž;DÇÁ/aÎéâ+ïI“vOÚ¼';ÑÝö)‹$5h±ÅLÄ*ƒŒÔf6"*‹_ ‡½;Yå%м²ˆû%Ú MϾmMÂM·;#f� r��ÿ:{ôQý�FGÚø,HzˆÊ…ü$mÝü—©þ–{bmÂd«¨ß«Ì2R‡ïí%˺•Ò)8´á|“]¢ˆÌ6™zÇPsÄx v5ÖKÍo+õ 9¬PXAttm ¡(ÞÌP ´Š hÙ=è㈪s²z¤ ¢ïN��ð÷x`3ŠrZufío¦ƒÃ¬"£S…JÚâD.° “¦|GÄ~Ò„ÒÃÇ�m�~³ÚûûçÄÉ…÷ÛÔœýô,µo÷Õò;*TSC!¥?ZN˜'*ì–çnÿ|¸!¨îЉm¾Ï( °4>B�Ñ5öΡ=±¬ÛÍÀæÔ‚`íO{&i¸ý‰g<Žz]É�•x#J'Ü�á½»“»­ò²wðú€1—p|Þô!9ØŒ!—~!¾ò|�Y$lK"ÿÚg¸©u]û«óš9AröpfÒu€GÒ-Z³z©‡r]·«Ÿ5Qõý*’sàscS$rÖݸŠ2fÒ#õ�…?ijAoL/™C¼e«–MLºñ…•ð9  K2Öè#LÎ{×èç1ÿ ¬J{ ×õBÜV˜8Ññ.ÔO+Úy}>fÜI©G�ížë@öÝkɱÈèÀ­Ä ¿:ÒHÒÞ ŽðÓ‹ئ*êdH•,S‘îÀ�Øýí ¼è똤Ú9·*š˜µ5zû÷#='ÅWš—� òÁàEÂìárºÓ·C€lºF�†/ÏR*š"z¿¥ZÀç›EíýªÀDNf?W`»³s¥ EôÄ^þ5Û²çΉ‹[1†]ÜÞC+‡&£«®"ÊÑÀ^ujë¿S/- M1+èÁ ä òûå?Y+©©EBïgäÐâšéj•Zu�èMŒRx( v¾VF–¾ÁAe©ÏY ÷étŠW0&¢|ý*Oeço KÍsN™ñ«¡ê¯@ßceONè™ïçÒ—ŠU¸ ?ºQýo®»aë'|±C6 š嵜yv ¬Æ[ñ‚]NÈzÁ(M¼Õ´$R¢+_50ê"y#¯]1±C'¼"̵ÓÊ힇_G7€S€�pÈ�¨›”mèg� P­Èî"þ›ÂOÍØ�º›•=ƒgò©ëÖ¦ê>pºŸ•{“L+†4„¨fæNÌXîS/ÿ!I µ“ °3ªYìü¡bŒ•wHß‹¬G…Œá#ª€åmÖ÷ZvSÝn,—Q³â†¶“uÑYã©r�Pôr(B„À|i \uZ{¥ƒ9軣˧KÈЯ¤$iES¢òiÐ>Hsêg@rî ãøi!¯.õ^å{ú¼m|ÎTÉU½þ,¾#–b•ÏîÔ]m “ $÷ó\­ä–%™´!BË=`ÃÁ6U@;ßǯrCz~MLZ ±â_m£¶6X3¡@#Ãþw%:f8xïkGZ¥�YA”HŸòã«òvŒ�`¢çÀò¾´Ø"¦ãØ�x(ÙÙÌ4™�Eð�{X¾˜–žî’ãâÓƒ-œç�‡×e*‘óœsŸü?N÷kƒa x ¿ÂèP²”º¸2ÔrÉJìtŽ ¿o…KâÕŒ?tI€†åÍÁ‡5S…hõª�EÛI´µ?h‰ÏlYn]ºÎEÆ@[òrÆŸ$ñ¦©‘s�--!#ÿFoØ.µì~HežQ .óG‚p-œ€GÔ¼ãP]! ¶ÌÎê–@Uè%ï¸fB"Të�ÄýTÜðùX¦©øþUZÀù ïº ”t2·k¢Ÿÿ¨ƒKrE~û*ºf£|  `D¸Œ)$>?jÐâ;ÕE�!;+mÑœrJ.­bkN¤Ÿœ€g @x)bzH+ÏŸö^KøËòÔ:þA–4¬ž¯^òƒzàµkÇbÀvé!mÚø¶áI¹!¾.Fœ #¶#5¼ˆ]p/Ôä| ~R:4ä >ŽXéZ CÂiË1`º§¡Ér´Aígw'|€w+Ùs F�Ô ü+‘숉˜8¯½'Sã & qÕ8ÌG7;» +ºdo¯Æ&ˆC²O¿Ó{#³<Æ<ŒÓV$ÆN%H‚ ³/ŠÍ®ÒÊá ¶‡û7(#$áýší�ÀNJ¦Ú�©›«Jé[€5óç‚IsÀ rú·±4@÷öæ™ÛÇ6*ŽÌ„åú¸àÍ©ŒéÀ[½÷)¬lÒðëµUu�¢ÃÍÅ·ï!Úô@ª±‹QU‰�ð c»)åR*sOìh çàÁÜJé©”Tâ`°�‹£6ÅLì\l뽌N‡ôo«¿G«OÈi$4Kòº0sû%ru{2 áWQ5á²cî v{Æ#àÔNùÙäœ9û©-,~ò4£í‹è©ÏÞ„ŒŽcVÚ—îzfL9܉Dë²ä~ݼ÷�qfYìj»Šez:È®&…¦­ÈÁoò�é9Ô¸A¾R"ü²wã/Ïð)Ïöô?ÍØTd…į,©$TgB®‚¯aƒ=æ¢fl°Ís…2áºMê¼æ[�5»EØA±rßbÄ ZöIZ,H¶7ò®}µ?ÁÊS/¿Grd&Ì ýEvÿ ‹Zw1/’ Æ»Z–Š=iQ²îq[L')Sž2$oÙ.]Xšr‹óg"¯Q[f{…´öS�Š›ºªIæZaïUÏ»1.ÇžC¥Y‡¢š C"QÝ!)ˆN1…‘{|Ëgä¦7Äí�x”Ny[NËʧÒí*)[͉ð+æ0î H’“æ\DÉ´­Ð§cÐ{º8ªÌËþD–-ÂÙ3‰à¯Clj/ÈŽwæì‹o•>„LÆ_ ¼Í¸¶wIv¸dkãX�†X€ÒÂ.ú¥^®]ÆQ5Š~ÝHȼ}a”ÁfðµìcžÁ´bFˆct¨u]¨rQ5Î{OzéM¹“�€¸�0€Cú={„ñ¨*?w…4Ìš¼X1È^H±§V~ùºFÕPÔÀOP&¾(èù¨¨îZ@/ކâ%ñæ¿ç2ÒU¡&xŸ�}öÁ>¡ê£ˆrŒ@ÄGæÙç½Í]¾Üðô” ûæ°…¿¬3©Ù”£m×@Z˜‹èrlÁ² Áÿ€î*µ ,21]xCè™UèÂê†\¾¢¿´ñó*Çys*Øò¯>Ðu¸-ðý€7þX>Koö†¼¿Û“âcس�"nڑȬí)ê w›—ÚPMsÞNq1ѤK(:ZòGêÊÕ˜Æ ×ÍdqyÙsˆß�÷R=;?M°™æ�[#'\âÏÄ+f»/͈2!Œjv|,õŒŠw)°‚jï’¿ô ³ªæFÖÐt‚Ôìã¼§ÅëJÉ3„:obOØžI0ª9R ¡ïlbÚÒ)Í[Ø "`;…gÑD¬ÍîâÔátJƒäª¾Q‹„×áz+Wpl¡Y<„ý®~.û¢Š·ˆßÀT´„G+Ìæ{`#ÄëÉ"¤Vi~i£ªUÄò‘ùq3°ü,óUYî£+êr¹ãݯs†Ð”Íš× ²êIcìÕû†Ðzè<Ë”ábò‹‰SfŠ*僜DA†<î­Ö”ÎG¢ä¨¯½?7šºÁ¾ðÒØw…>oÇh÷\ÊŠ*6š×â” Ù=%ÿóA dÆíHË2y'ƒk¶úZz©Õk™sƒÈóhE†þá¾7Lu²4Ñ�R¨´ù•l®îú\Ü ®yâ~³gÏÊ«*³œS ¶u8&ÕÉ|_ÅÙ‘ÇHQ•HÖ…C?ì ûx¡«ÏÙcJ>pÿZ)‘Õ^ 0a¬™@"ÀJ<­éÛ8qÐèL¨DV¤CæÑ@Zó«MúA”¸%}mÔä‚QJP_ËRKQ«…c�¨g ÏÝg9‚$Ñ”¬$è‡èŠð:V[\Jâ>Qµ &3¸tŸ°[O;Ò±ø€i!Óq6Ge?²©Fv °Tø€>ZÞtC•VòtÆDS¿M™6‰ñh‚ÁÛQ^ÉÜÖ?äù‡©„õð&}jä€-1D’…òÛZOBa}#½ @Î�ï„Uá±ãsˆ_À=v> Î ‡|%ò;e”϶†äl†u#Œ5]ʶYÓꯌa"_aµ¸7œc[ÿåÒ–[#Yì©ë ©(Í þVxõ¿)gtLàé½+ ~}§Ð}àœŠ+ãR£ë5绕}™ Åî¬k&#˜XÚ¾·DÔ÷'.`ÈŒ­ €é�–XU�ÌAf D©lîò—a·’s¤\^ðÏ<)ŠŒã NËo¿« ü·U“Ù‰púx%Ó[ð¨bÄ¥î„Âv'�޼×È $*ç]¡•òæh¸Á¤b�‹ye´çG"Ê[Ä3È4=.|!�œˆY¯QÄ ]\¨Ò{Ð>7ÕmÊ›"X„…úC/^ ” lˆ,)›éÐ1ŒSèN=úw þÓ0˜6”°öá"%}Ó×M¢S†ê¨×úñL]Ž-%`^È÷Î?@Ì‚T,Š>Bìe-‰¶Nnö+$ä<æö %ß�5å 6;†^8y¶¡3ªv .«%3 >''{#µ_G÷#�ñ n&hÊ«~)WBLA´„Ó„dM Ó|Õ³¸Eä¦P+/ŽVº·�ÿ|½¿“Kb梇ü Í'}�OqÙ³™sªœ¢HQ{RýÓ¯ Ì5K¤þl™šãêá+`…u~bâ”ù»Z¯p�Ô ¯µ¬w€¦ƒ&_¢$6t�¾zˆý�ø8òcoþ;–é5oy0êR¼ÝÑ£˜nLŒûЭ­Ê—gÉT�WÛNO{1tG«&(àw”5#Iî®¶ÜJÛ²[½W…DÑÀŸIuu jšU}·s=X6ð�=EŸŠµÑ)Ž"æcŽŸ~d¦- íOc¼¸|l,—4�åýûÒ£‡+$?³ãóDu<µ½È9Ž–Tþ76á�¦qJÝ’¸¿ù|]YJ’5ý샧SüÍ÷àÒ‡þHÓúj”(XÁ¡U R«­rd_iÛŠc­¶ |y•=¿ë±¢a2Î ‘¹,–Ô¿’”ûOp‹÷‹“dÎâsŒ qÓ¸J\nÓ˜ÿ)KDƒßïRNHCs ÃÒžšÇxBþ;W8e}¹ÍLËAÈô KÕÀüH©Ð7º‘¤CB™¶ôa>?dJ‰Zü.û•oØÒæ‚îã äØVÜŽ¢S3+ÿs³¦�\U¤È ©k7ÑŠzt¥�Ä䓇ãÄðgõN­S/ Þ¡Q– M;" rUº¦˜Á¶;èº <3ÒRÿ®‘ "ïׂF+ =â¹¥sŽ#ï³^¸À»œ�Þá1ßÂŽÛÜ„¼#”î¬}n¾»ÒÜ~‚h7åjÑIa3w†Ñ‰º?»ÕÔ1š¥æUÑÌU!”¸'ˆ= ÉHêJC{Öúo³gbŽNi¿:æpfŒóツiÎË‚ñ>ñ„u)™æéq_±ØŽ$ÌþiÞ®R&£Yýœ_ëh žƒÄ.ÓHgUÕ\÷š¯ÈpÃa&ý²Œ�Ä®eÂÌ"�¼‡Û­Rܳð«2ײHH Ô|Î�n®—är7ú�6ÓAÃÊ‚ Õ±ÍnC˜rRݯçNU�9uá}ù��¸ gYLÃùùÁ?YXý(a*Ç´{ÒÝúI\Uw¸/ œüAGh † MZ·J×…²9G�ïxÊẨ�¶Ã�þŠA  ­Ô£ÓTým«{…gG&S ê[G8è@ãíi`+,µÇŒ¼¨ãaÚOÊmHüO4µngB©SkþlÞ5¿þÂúÀ�©Å…P¼OhÕô8 Êùé’ÌÓö,‡Ð� B™£§>Þß«µñh.»«Øè–>¾S½VÍ»%˜Û8Nߢóùû™¤‡³Éé“#·b–òsp»{—€Ä-�ï¬[½¡cÃ5²Œ±[C’­Ä‚Ëà*o€¨%Ã>hÇúV’uÚ¡~8¤`[29b¼vŠÞhI{AŽ7—»Ü6Ú*IeZû©Ã‡ŽÄÅ-ñ±îÏûmF©¿Ñ ÞR Æ¶S(¦_tºÞÖ”µ~¦Ó—¹Rh“ú4õNPcLb ÙŠÚÙH9 öžXß9+Þs&�–v @¦­ÇÑtš^À±õKø( ËÒ6 —Æõ� ØÖc| È£Âè7üäOå“tPüw=ã Ó/ýìÇø %¥Qb0½kÎÒiÍ`ýzôùo=hOd{�¬õWhï_½šî·eû�¹VZÛœž`rÏD“îûËÈóä>j�ºÃNeŸý^D³×Öù ñq%Ç!º«˜P×¨Ö —ÆSƒ¦ÓO÷<‹Áä�ÝF; 9O0„ãg}Ò«çnv˜º¨ú9=±ùdÏm©íÊ-ÝEU4g!,\÷ NŽ«Õ}Y®$ á¼óüYÏ©s¥cÉÒÐÎiÎâHD¤UHÀýÚIm•ücsš‚ÞÅR£œòõVæ—”0úüçÓ´m/¯òÂsI>04hS½cÿç•”T Çç8¨Û†ŒÏ¿qá+èO iÄmØ“Ywã5¯ˆKË{¢ã2ìÁ©9~ÙÏtÕ) RžFЙ13èP…@S ÝéæÜ«o™e’¼@-Þoð‚®�OËwñì´Õ3j6_4Ù W“„©Ó¹ WM·‚$õê#—ÄOÿ!’"Ć�8¶ i¥…³ë—;«ÞÖ ¦ÛHÁD6¦¾k|Bdø?“î§{ªáðÙþ�¸S†­ÄS‡Hx¨¢çÔR’l(4_Œw»ÿ9è°|Å]Æø¸Ä.¥&<)hÕd*Óû�š`ïF¦›>`2ˆ"‹qRR¢€Äâ�9ª¨§1ÓõaQûÈ Í !Wàg–ëýž!ã£mTo�ƒµLÂMQ5Ö®]É@Åêšé›ÛGrøx=T(h˜<šõ£6(¢'î‚\ºjú&qÚ®&q¦x=i‰põ¨f:1”=wc²·’Ý´‹¼ò!7ºIAYŽ*EÒåW‰ç³øJxBqAØ õ¡5’=¬’�©íY0ÜVFgòžJ’9¬ÕKaoÅÙ„-�ŠÊNØDÈ­(ô’OS( ww_×�2ˆþ(²½Ð‚ç3'bæî{æï· FY%R1Pžá-SHÊîÍñ îWHxEå°;˜ø›RSÒ,S7v*‘pƒÂ­z¿{ál±'Íþ¤é€&ýüDƒ¸ û~ª-ÐàÆäÄÇGE< ¥Ø!ôÈNœÏòÖ¯T ©ÉteÀGb¦óàɺ‚Ž{-AÈ•³²tù1úû¸P–­¡Z©“Èp»¶•ûÖ.lÓðÝ¥LÉ›9Ì\Σ;�´'©G]iþs‹ 9,±bˆMóWéBâz_!Ôú‰“ûœoÙê�µ‚#ü8«¯nZ(ÍbÛ5ç j°'L³¼u[½8ב¾œ‹Ò&®uùA3U«®À2lJ¯PV_ÂÑo“ìn!‰Ê>ÁѲ&ER; ˆU¹V‡�ÜøŠ{¾€Ê'çÅŽæyü°)ñô=ÐÙ0ÆBç�¡”Ä j(RjK“ek|Qõ&E¢: �ìjâw�—éèö^¾XHŽBûi­s@“`"�E±„Œ{—'‘E …5ím$I Ä!ªÓ“`ZÜ¿F°Î·%ž˜CûöÃLõTÞ‹xèBôæb͘¨†ŽÎŠ“©~V¦@õÃAv•._Ð>¡¿Þ[ö�ì#‰‰‰j¨Þ�3£Ð{µ8ÚÀѬ¶bÝ2ÖÑ@�ÂnÅ ¯ýKü΄÷sáó„%ˆLï+e“ÃfY.š£vÔr­è¸M .\‚2í0Ec =ç2=c¬Ô_%·À/W˜ È&)mu6È5˜[âaæŸÍÊ(Ö‘–s­:ŒõkR+¦H6Âôí9ó6À®‡á¢4£ä»ÅÜ‰Ê [üÕñ}ÊÎób’£äÚˆB´’ÙåmOªÒš�šTcE²1dΨÊ�·*-)šb’ÞÙçoÙ {²Å!g°ª°lKØêe¶ye+ ‹ØÁóë—)B£ž€:ð a襵SŽMqò�8tÁ_t]Ú{�ëÏ"OÖEÌ>œ‹˜ >üÐìPzMñ}Á‰7¼jáÛà¿’öækEg’7‘+§õv}¤Éþ‘ [ÖîsÉbn�/îâË£Cä`µ/¡Í(šA—îkIcF1”¬?uúªò¹Øl]¼Sò×Y*E„¿Íé�ʸû»ÿPo<…Ý©X˜yá�…|*y¢Á˜èn¯s6ö/B.ò“�š«ÜøL¡Bq*.“�\ @”D¬æí°ÆÈ'�0#(ÿ7 ù[Heud¸4‚«:Q¾,–zdˆ¡Yå©tÄ!ÄÀH¡gl º‡ïg #N»iÃÛ¶n¸Ö[`Fx€œÃòþ¨§vC¿ëŒú§1Õj¼=#·Ä™«Yqøï^”‰õðå³BÂhÕÆîˆA0k7¼ ÎÓIrºm-�»K¿´4c†—fÈVÝQô�tF¶õlŸ·½:K2ÏÀï¢1Æ€Êiàås3_ò…ë&ᜡ/bXàÐà ´œmKào¦Ñ'ª&7—yÐd3ùós�ð+F§lÂ5­‹åE&EÄpëËš�FI‹Øà9¥PÇTWåÛ~ÇÊņ›¶%Ü­ëé,žÿ�mÀ,í݆ÙÜùѦû6ù éV® Ö= ¦ˆ2Y[lêד½«6“ÞêÁñ~]hJÉ6•@÷¶´¸ÅT5N‘‹_Dz4öµßÞcHSQ]ópŠΪ$d–½¿w³ØcE¨"º•÷«-¦&5+®äµvL뱫;{9Œn·±&á0bÉúøÂƃBØ”×7¨å-:Ñ»C–7͇ŒÐÇ’Vsð9ËpŽëš•um´&Áë8G|¬÷”—±ª-Giu‚#üã¬Z£zR|"±È´^…eà2ó�áí]‚þ˜2:2}‘ºñ©€É¡ÀÅU(Q"U5�sUMúõ‰²*H;¥¯9…kê¢E¸í䎬É7ÏjÀ`€'÷XI›�úøž8ކCô"mµnÒ,sžWT•$Š›1¨Z¬Èý‚Uë ùPs!‘èŒ-ëxÔ½·-û<®Dÿ£ õvz!ZË«ºÕ– ë™ýÏJW0r´ÛÈzbº™ žOÚçvÁ"J �õåeC%5Ät…[A�ˆ6h3Ø33¹T Ê-u[{Ш�¼�àýÓ¼�)œN‚Š_S½~-3O8«ÚðÅï–å¯iM†)Öh5�~r“^âÆ6Xθá 9jŸ ·ÊBg5þýôîW(ájŽR­ú+ÉÝJ<4ÆŸiµòïä[…ŽNòuÃÀGtÖñ�œ‚7y1@‘'ØÙ›ìöj$ÕÚZ-fÅþoáprÞW÷×îoË™3Úé ©ƒÊŠU§NÏ{‰Äo|î“áØc‹Iœ;÷úœžò4àïôœCvfÿæB͆ÿÝÆËvý™J¯²{ée1èÆ :�N>?õÎÇmäxÚ1®vÌùÀí±$&o(ô–­˜ìz¨§y‹é®§+ó„‰ßL¡ÜH÷2&sf=TXª'Ãö� #GCÛ/˜‘Eµëׂ/úK‡U±}Í:±~覉â·î]~] KF­!Ù'^ý_û`%2²f/œ:”ã2ÅÀ¥ëàËœÜK(¶qνåúhs§«€H³€6ÈÊÞ­þÌŸÅORuð úv,Eä(`z�Vülñ%¦" ùbtÏÃ5{Ò'©k½ÕeªaÛ ´QÜÌLgíVRÎTÛàtÊ5šœ>Wß�¾-ëö�×’ƒ³hTÉÄ=~CÎ]ÄN­Û�$E-Nß])S[(‰!p%7+9¯Oõ¨F�Ô§î¢äI·ÊSg0lFySµÇŠ G«ZÈ ýVäÅ ×ÿü4Üçm,¿‡EüòùÓ=³ÏDÎêZ!ƒ ™ÕJCãëÓe°UD�é&Í'{#[­o|¡±ñK¶Õ·noÑá@4§Ž²N€½ Á nÓj�pc¼KøÀž›\Ú³ìt%ˆázX­‘NÖ�ĨcäîaCƒf&_u„3z-d­!Xfª—’‡.1'åp¿j½^®-ðóc“ŒväG#ñ 'ìÖÇl¿ôqÞ©ºæñ£ÔV§ûÈ%YXò]5À›Hqº¯W%ËD�QËü.м¯å†ðÚÑ©ihX‚Æ´{’äMw˜—�T­§�‘&þ‚1NEÇVæ@¡Váà¨{°tR�£i€prîýÁ,'¹ÝºM´ÖK‘d þÐl2&Õ’+Ö@XI:K†ä4uuEЊ« )“�òçn[‚CÓQîC‹¼BÝõ:þ…ÜAU$ÿ¡Ûðå ºRauH_nÿ,ÆÔƒW�‡A [b�îÂgßåSlIˆ¿T+¥hØè:í‡0S €áÈ5÷‚\°ã©1 ŠV$$mÇÁ¶b¦,EÞVÖ¡ª½¤'­HÍšø‹5Ñ[GìÁŠÞ]Ÿï£TÐoR8ÝÞ €å|àÎ>þô0¹÷èûb@ô’îÒ�ÌOBÚJ‹¢µÃ·òÈ�¸IÑ›)!±y€hÒ<Üwx² ÷=çLc,ÉÌ:)­ ~B¬û°Ò�×C5»kÙÇïÚÁÓÚž³?ßFú·x«�Áú1Q¸(9‹S/¥À@RZÅ6«â„#Ërïp‡ØõÖCªXaõ&z° Öû§&¢Mµ0×Ößñœã¹ÆŽ«Xû2�,Þå‡gû[\}¬ÖZE·¹;‰júZÎÀȔ¾Mˆà£5÷ŠÀÖtާ:ŽÂ<#ÉuZ¸@øD#ba¶»b¹6V‹/Ë—x+¸ Ó=}'®Aû³Öݘ˜�Éç6zôé홼ÞK·™ 5•Sš³ Tó÷ ðjqÄ™p×�GR FØ> ´{¡&‡ùÑ�1«Øò‘¹Czì8]wØ DSZY‰7˜ú¬È5çÉ:œHÝ«ß6‚-GC“~‡÷>;\‰þ‘ø/ÆÃj‡¯�çÐó~Z{ ÌÅ�|bªS» ³8´Çë1f U†+BãÏLþÔ˜Kà&AËïø<8Á üoœß¾w7vßWÐó¡J�¾ypíÓÙE¢×óß8n¿E�ùá¹³’éìVa{×$¶“>IÊž§éaN?]jCö(Uk] —ý÷”ؘ)Ÿÿö}ŒöqÚI—Ž(VMæ$…W‚0»?På7WZIYñÌqÍ.•¸ Å´¼KyÅvúRÃÌcTI{Š“ñâთå Ps¤˜ Ãs€umT“>T†Ì~šš{Ëú¬÷p©-s¡¯µaÏ(o‘† ßAË« \ù—}kñø•ål4ÎÞ/Žãé¤2r¬OðŽÙO.µ"+*°©?=S;û,O¤,“ Á¸ÑíøM”À¿÷³/;ÛW¡ŽiSZðË¢=Èôj:ê¶u¹:@˜Hk©,¾t}ÈZCa›áŽWKeߎ1ç¶sBY©ŒtúŠèFm¥âº.Z¯Œ‰ñÆÂ>0ös¤!7_"E>J«I0-P0&Þ,²0tç·â!°;.Œ‚x ô üžeŸ �~Êæûµ=O›¤Ñ8uÁà²�ÝžÓó '�­1m‡êAFÁU$0¾Z&È’ïrý¸!g*RìÐüåÀ†t/#8tÖ™ªð¾à§][ ŠØòfS/pù9Cȼ?¯R‡œV|ÿ£3¶»ðHР  �zu5a6¿¶b-Ö™ôºº>)è‹hÜIZ¦à+üΜvób|ª71³6PÞ Á¡äP}§ÝÇ C9²ÓWÉ× ¦äÈÌÛ¬|,üäËy¿­~/§@ß hÓÑ·ÒõA¥L72º&‚tWÒ)Lä*J¨§™áCl±-À©Á¢Hg,P¶š¡w’‡ Kw›ãZ>sÄ4¹dœdò“a‰¬q>#hel ^­òóºÄB²™Çm” á¼õSìÄ GN`-œw©Îx:�‘=Üp膉“Ú1lpÊ8Ú©¾waáWÆ3æpc‰Óy�¼zzT‡>9Äæ56Í8]€•eÊÿµÏtwº‘çÊ|XX Cfð“y…Ë%�U¶MOGc\ÿy¿íÞÊ[.`´‚è›.Õ»5=4xÀóþ+5Ц™«7žÿÐKÛ’¸^䎟X; -¤"¸‚‰)€olJfãR#}p$¾á Šº^ÕSÕqïŽUcö«# kIÖËÐ’¾ �û—f’¨ÐÌ`‡ªsê uiZ‡¡É¥M>{rÙF`4Îv7àA�ÔªéP"²fÀ)êħ›”b¾~/¬²ŽRã÷#ݤZÜ+oõó”ëÙ™L…{pS¹+4³ìñFƒú A¦hà' Gó2I{ñ7íëðÂõ)ÑÊéC’-KHL掯‹6!í áò4ºÄ³×Ðr»óa;K `bŸ¨!àf?ˆymä먤w°ïè?BNÚÃ\ïלxÆô®6â0mšPMš$ÉÔo)†Œx+Ð�åà#˜‰=&S‰@We<×xmÚà�\‚Su!–ê<å–LIµÒ¯w»ÍÍü?ŠW ?2dØ„3œ] þ¸¯åȤ£IðvÝ÷ˆuÅœ˜ìg@òe¾0¨“’ä@À�ôͪ<Ç=xNPÔÞ&‡·p|íJöhä”.6ów Ó5µ1rˆÔϬË�ÕW!Åx†�:²ä׊ës2ùâ×Ñ›­#2“À7�5úNóVÖrò*zÉúþ5]O�£û«æîu÷“e,ÎÊeìÈÐñw�ž0ž:lÿñëü³ÑÁü$µŒ“ýWЦ:Œ=˜×ñTøvÉAòã͸Sø‚8Ü ‚x±EëdLjî¨Kͧû„Sžš©2oj0&" :·.ÔÐ[°4– %B‰*ˈRŒ‚ä]V庘Œ§ kyÞ­)Ï«m€dÔ8¿Û¡®€ƒÙ¿A!-6æCÚô\áÐd²…É¡Ch×å“ÿYj‚ä(Üçÿ�G2s¾þï­ãRÕùà|ŠÎ­íA-v^¥ú4fl®Í‚¹ –¥~…e·¬MlnŽîDB{Gyé! Ò#�ÂØÿºú³.¦ÝO­€ìÎßÍ&óSüƒù�Ä3=‚1r Vk¨çäy�‚ò–PŒB¹ú²Ú;ê! ³¡ŸEWåËnHžQ#×1`#KÔ*‹Æô˜�’�ÛyɪÓ¬fÖë[ ­8Ðu°ïŠ88Úƒ»âe[¶&v{RðŠpñ7F¥Æ®ú8ó‰Ðxþ"ˆ�ävÏ` o äÏÝ¢¯…A^·æOQ§ˆÞ>ʨøâjwG9­]*:r¸Dv'®ÙÆ"yq…¾QfRüñnO]Oové…øÖjbH]^<½)ƒ ioG#ǹŨü¼9®æÞ¾!B„67öÔ·6ºA6Ì5‘Zyq��ö°üò•ª-,=sÊa¨¡ÕŽõ`ÂÉÓ›¹Ï5»„ÿÓâÅÚ'jdÖYi‘À¨�Úbëz‚Ëip>´�¨f!Ór«ÌS1ÿÂP7T|EZ¢”'ŸSwÇIõQ£¬—ðÛ±ØyxG®#Ä©=Ϊɑ á@#Ž‘q:�©/·ÍÜü`êì•"óiêÚ—Þ¸ÕÄ×®dd^Ї¥ž©z+>ÝËÝhÛT¼˜0w5΢¨i鉤¶YO‘£7ÐóÒN-yïí”#Lvµ7gb‚ZµÂMÑG©‹K• ¼ÓTùŠcpÕøúÝÿ¶Ô¦Æ4³�²¯­Zp6t¾êºÐŸÖ× Œ¬]wÁÚ‰bò{ÄÈMo{Ó¶|TxS÷€é—š™¸Y|-rQÇk‰l€Y¹|:ö‡u¤»•ŸÑe[8a¿káXbÞ·,) ž¯=U­¦UÛ`&@'à ¦?+KH\Sm©v³Æ4x2ÚJñµépÜ_qQ…®xë´2�j³H®@l%5&á×ø$~—iþj:'(iþé¬�.j´‹qÕÌêўäÃÉö·™Àx¡9{ÎUdÒ¯`DÒ í¥åv5d‚j~Z•ßf 7�÷ë~D †¦‘[ô·WQmƒv/ïå\ߪ?~­Œw(ÀÂa+0¸GŒ©züƒ7¾ÐÑ Ôe·WŒ {DÒŸŽQŠ¡!˜°}€Õ^›“¹× ÊG‘ˆèí¯eBŸZ96ú·gp2ßQ8_ü�B÷¥Kc!þ|B‹ú/9vˆå—ôê“75†µ¤Ô_s=BÕè¿G7Sb7b;¼Ø6…45„Y3Pm„¯Ö=DY­N³št‡|ÿÄâÇë†e¹×q.fO‡÷«°_qß›¥ÃùeJñ@$gí� ÄPQ!©M.VFb\#� ´‡{Òs9 — w*ß“·À_]¾ZOvƒ7UmÏòt°yÉl¢¡(ÈC×Ý}íÆ­×ßU“ú•ù4«ïCïÖLO®ïNð"«~«÷A(_ÎQšt«iäõï‚1gFº R÷ª_ÚºÝÇ=X }4rˆûKüÿ»æet8[vYÄ÷w9ˆÇÕ…Øm‡Æù^è¨M;ßš&ª¸N»)=kºkbSB[Na †Cœ*’¤£‘ rÆA�õâWk…˜ÐÖüîã %RˆxöÁb«"©Ò,HÎÀÉ#L\Ý´Ãÿ6éÔôÖ|dˆ¶¶¨SHJ3‰í5Å쓚Û/ÑCùa¤6Cý×{$šâl"Wÿ¬*Ï u÷h�? NP´ìþ4nª—4¢WF›–ÜóŒnýÈ05¹›á[­Ò÷ªl�&áµnÚ V*ÖøI²þ&æW}ÍèÓ°»QlOCƒ°j ȧw¡Î°£NÅë}V$a[}fŠÀ+Ãk‘Ø„û‹4žerI–œMh½=[¿CÔc!ú1)É଱ºG'EFÇtF2œåÔ|ÎÖÎ Œô¼;A¼BΑÜe·âE¢Ó÷”FÄÊDF8d¾ÞÖmNuéÌ6‡:Že&8Z¬1Óª”+)jc»ZùqÕ-;È‹Lèh¢Wþ”#Ý{å1:G_ÐnÑĪÅUj F;¨Z•;´ò6aXp†Ú{ˆgPöW $–[¾|4Ökõ +åIí^…ÂY¤F�Û µ­¢¾N,b k'ì¦Ïu=Q.›Ë v¤Fu\›&ayi•»×Âò»!AßFðÛ'×J>�¸<À%Õ¹˜QoMµVÎ8Zr«Àu�œÈÊ·¦ïDÈçx�š*]#DH0;™A¦ØzŠ«`gù¥OIE]odºãN¤�ÿRÏq§²Ú}`ª8qSŒÇ0e�1ÐF•�MÓÄ®ëü#k·Én6bÞInÛü"Ñ1)‡K"�Å›ÀV ÄÊcü]¿®?g’Öö©k.ä ìÆÝ]õ©ÝÊ:TäÒ;IKè¨û+[ÏcŃhBãWr‘¡4.ðd&ÌyƒÄï̱/³Æj§;k ˜×ÉëÞ_†•wcÂʃC5™;bô­JÐbk”{C_ ÛypŽÄ¿³äqH¹X-:(z¯#QÝÕ7£-iÉ8æ<…>mr(œ{™„ï‚TžH¡ÀWœRIwx ‡ÿ(T„Xè5Ӻɹ&…ôK{nsŒý;H÷!þ÷´ºi_—8e^ 1ΆÝU&µáeCj¤ îíC7­BMû„ªXä��¤/R·ëàIÞV ó@ˆËFh5 Öø-3gpÝÚÓw1:OQå7d¤——5$ÊßXq¸lryÊ™ý™T«$ìgÿKêç¢ê«Þ[šÓN`¤™ª|�„ÊzŸŠgµ`9bº`7Šc«:öŸ¥ ‡ÅÐZQ�ÍJB.iéa}ÿpMïø•f÷R Ê8 ) ®é|òmìÝjê=@S.?ò2ÃNe*y¿àÊ;G�ë!:Åö?Ef%B;%{3™Š.Ü¿ûS§[¼’„¦e˜ �«·Ð b�GtÁOºSû¿TöÉ;dÂ0úýÃGÞ†‚f9èCâÄemk¿ìOÛÕ*ƒ>¡M%Â�ˆâ�ìAŒ—ÃsŸ"%ÌžB^™¯î©Ìœ�Rð§B?«N> ×ø¤ýÁ»P¬álýJ4-IùçxH4Ë +Ð1þ-ª¶¥gkjû%5Ÿ(QÂD Ê³x4n|KNü÷Sö× m$�Ç>:à3<„¸¦0uôΩ{º}Õ^›ùý°ðÕÄùU1èF¨#¦ë˜¤c€¶(Àùr´ùt?’n ŸÉÃS`);@M‰»ò]o`[‚‰ñÔ4Á"˜ :ÆÊMÄ)‡Luúµ'Œžö­ç¯Æ${ÕOÞbï—h@”TÐFìOdPd}á¯$Ì›{W[çQ¦EŽÓýÜèÌÚ˜òÒcâƒ3/9H.n‹ó}¢=Ž{©àœT�|ÁËß½Pâ¥ÄPdEVtµ¹ ÁÉf¥ÌÞšÀÙ~@Ø‹ìXS3¨Y]lD\µa ðK¡ø~µDNm Ç£¾ßµæUQâ6–ˆVP‘È=c��²>Êe¿�™ÿ(Ã,À6jCþÎ48øVHP´ÎVîAec»3±¢û*{mΘ¿ Q”ÅÖÓßlUSD]ç˜×<ŠÙ‡{c–5ÿÍ¢.CâH±ü4‚Ÿ‹Uàh_¡Æã¡œ wìW€ÆDˆx ?pùç7$­{° ; ôCË(,•ö\¡oQÅ»~þ^½7>å£já’z~ªÄFëw � ê -ïE<$g¯2€ñd2ÛÀ­¢ÜÀæ#ªé»Ô_Žœ³Ó_`8Ít§.X|>yå!³œS^�Éʧ]ßæt‚¾~ß ı¡‘¬â`çñŽ‘¾P¹�iæŠßՕܳ6ÒN“. ß³»"çT8$ Øp4í¬_¬1v¦ñ+9œÑ„FÛqŒIü…}åˆ,ê#�õUTXeÎYEi%——8™ƒ'pr:n®�á¸XÿF 2\O~Š–œW*Zv‚ƒ�½SA˜F µÉçrÞ.2vúòOLs�¯L¼Ülì¿ ã‘=#Ö—ß²WàŠ„h_;¨j<‘­·ZV¤EÛM;<ƒB0ãA^N²¯Ä6é��f÷zsà‡Ší-}UoÔ’¡R¡H Øú²±fÆo‘ Ì-HÖS�Ä̸ï5Ö,MsmÐyB A®ôõ°b\è Ž:"_£V€þ×ÓVâ¼…!§,Ü Š‡0uŸÅ>n¡¡í3’Ð6E䛾emk ÙñZ¿MYu°LœBR�ZnÒu…ê�l0ZzŒ<Ú[@xÌìIw*e�tãéô¨XF�s�óDIöºñŸË!þ‹®&9çqû›ü‰ÍÝ�b\Ÿ’?í±�í±Ö@dÚ"Má2«GóÈr!÷aýµ èÙcDô×Qt¢®¨FV³ÔIX(ÎÂÃfài*o•ÃBúªýÌ£Ž­$Š'íH÷S´ýÿïá“ÊŽ0ç#[‚ëíÍ"g�íîÓǙԔ,«e éF¡ÝM*n¬ ~I§ äGpkK[¯î2/=öÜyMþ¯¼6• õOÁ\øµÚJQK"•ÓL¿¥¶Ÿª“oÍ%œw¬?䉡±†/0&IÌKiâfj¦%³öˆ¨n±+Øí)G4¶MJ36ïlç«‹è1ˆ„÷)ô_>v›bg;í¾º{P"NÓ5 º;�ÖÂ"èÂBx×Sí<£ŒLµ3±‘z˜ì¯w©¥¹¿DX²¿ã æ¸q^…7‹ììJZ¼¹]k�ÍÉÖì-Ç×Ëx=ÀªÚ›Y,RßA0Z¨Ýy�ËÛ߆Вª‚Ý�´ªR<³è�7`ûafyÓÛÌrÁˆ¾åÒÿ¥c�#ƒãÙ ¸”$â�P¤Ï9-‡…5»Šôvv''H9b„ÎENXxá£Àp�Ý…Ï“D߬‹þlɽ*WCæ{:S(wxÁV¥[©HýŽ;Dï¹!·�'K¤:‹ŒŠ&~�OH1“Aö%ÕkÇ ÁÊ~Pb¾ë‹ªe¹€Æì‡ZÏKH³ µ¼»×®s�¯ÖÃÖ3þfO;B¦)Éðµç± ¶bB¢ÀëðÈY7@ƒÄœÉ*χó'3ë•h÷…#:·¼—V‚o§RLô’&hÕëì�1}ä™Âªë­P¡4r1Ū \ÎO” (P§$Œ$OÞ³– ØG ÃÙ¤/VøKÉXC�ìåô$­Æb£#Ó_ê±Ç0ü_® Pt¶!Q 5¨Ñ§úZ•‹[ËçÁɰGÏðé=›PüºT Æ ¤‰'Âû)ß.%ÃŇõèýŽòvbê—øR–#F»”†³�AŽ˜˜ºÏïMWNÏP…4g�ûÈc¸¥��i×¹¬ç,´záwø(Gý2Î ¶9¡À:N½“p­®&£o"K˜ý‡}Q^8Põœu\­•Ö¹×­‘h œ,‡ð;�Ý;WØ€­æý_5ó@ùÕs¨ŠhwÌÓÓ}Ú‹þQ¡º*“Æ0¿äý_9çÂŸÑ HyaìÕª6|ª\ñ¹…¥k°^}7n×@õŸ4ÿÕ�c…kõ¥+y$ùú‘I¡¯­¶©9S cÓa† s)è¡ÏˆäXç@RHH·™04!«ê7”Úã5¤3¦ìƒE’íxääéOl,wî©ï9ÎÛ‘‰•  ï/6�h £Aû´R•áöÏ�·º‹åŽa’��æ{"l RÏÂ3s–}ÊÊf|�Ã&Šÿyã�;iž³6VpÂ3 ò‚4µâ¯,ˆŽLÆýÞ�îZûÐ×0Ü_¼œSILÑ’)Å™$ŽIÝuÓ[QŒg° ÂûHŽ%Ádª]ᮑR{WY„( C.¸ÐY¢„^,æMYÆãWnkؘ «*Þä*pFçf™SKø�q<ö×0€zÌÖÊà {ˆIÄÔ‹ŸVSßpü*z )³°™c¬ÿq=þò éÑ÷Ѭ¶ÎÙš›,¡›KÒ¯�‹ïB úÍ(þüFŠh·“Îcëò%‹Ÿs]:Rùâ�Xã§xΩÆt[q»o@À·jé`Yˆ›&åˆËÄx'æÄrA/E!ö“ßBGiUîV`é½Þÿî$~¯Õyª,’a¼·¯¯,@ÚQ�kŒ{�ÄÒ¶ÕÆÉë\{Pó�{='Ø}~*Ðc tß cÚÄÈ™ {¸+] ‚&[$u f/ºôT� 8礂¥^,2ØfPG¬7®áz—â)Œœwa ÷ƒøT ¹Ëá!Û°bóœ.,÷HÊÝ…ê3ñìøÃ4× 4z#EÉ‹•ýñUcd±¡<¼Ð0ý£ò§ô†Vî9N,¢X7NFR£wlbAv7YÃê=´JBa�øÚÆ/�ÕÏÊÃpîÈ�§Ä×}ÓuWP”ñÕ=¬~†ÜóT ›ÞÊ>YW[k1§86ÊBhݱWŽK<Ú>Ò}º°#q®ìu�3¢^y\àƒ‹�‘‰'{óÛˆ| p61”§>³¨ç­f²”�ö-3ùª4ᬉݱ’ºDwŒyÖtzKÎ Aƒ�&k Ñ¡s4Õì\™ì„å NŒTyŸæ}à c�iÔµ�’ÚØÈ,C"6Iæy*ݶ˜ËìœoììKUûÛÂǸñ§�U©¤qô@\À.½EÊ ™Jœ±Ò3êVÃQ|ˆöá|�£¦ bü�ŸØÆS°÷Ô�/IWõ©„@k¦PáæTk‹0Ÿ<ÆÓŸ&�;™MY!ÀEù1hMw4EOÒ`ù¡‰P\áPó^žÜ÷'?¤„¸Zg!ñ’ävçjø–z¢ü�ñ\Æ>Ÿ¹ã„ïliÉËmO<üôøþ�¥ˆYs è+"çê©Xºí\ŸA”ðI)âý1‰Ib_/IãÂtƒã+dîA¥õWn]MO³”JíAÖÂÂÜÛsVˆ˜¹t°°ÝÚ{ìò}m*R‚º&{eŠŒA��=•üO¼Y�Zç<‹¬S—ÿw)*Üo´ ì,&Èü4Þ‰ [ëƒ6±ÓÀ°“‰¶ì…[#Os6AŒ’œ0F÷QïÂ0a=�;b·{ Jv?²i*ˆ#kFÛù·hi,•»b ø‹«ß¬‘5LË·1‹¢l9Q®v‰u]pÅe‹Õ}Â*‹DqŒµ‡éщ-±›¬ã{a÷B8;¥fw&DHžÑÞ¼#SJ‘B(¿·¹`áÜ�oIÐMRdÙšÏFr+O�:Fñ?�ëò×ëZ¯¡�"9³ô;kÀßòÉ5$,ÜUÕ*øöBx4ù!¼õÕUI¢éIÖÝ •È’:[•¢€~ݤ){Ä%ˆ´õ\¶Ÿ´ðÂPI×!x˜àòo2O‰�͈Ð},Ê9Åü#q¹ÕËãwæ7~WjÈX�§ÝǨùŸs£õ5 b©RëÍN.b%cÒoùá*ÖPe8rZz†ô›„™#Hš¸bÊò mŸæ3׆Ĺ´—ÅwŒ?œKbc3 �Ë ‘¦Ña¹ØEÿþ|ûï¬_tî£âÂÀ±€üÑ…ª‰sp³jà" ˜ºÓR¿~Õ¼Ao,ÞÝ�rö’¿ÛÑ+ó]zîµwt\hNTƒoƒhõd˜Æ�RÔÄ·YùÊns¶XvÞX�0i¿ �¤N¯¿FãõÎa2oMŽ�þ@‡Q0k±:ª3~?XNC»ü„/Ѩ~ì€Iÿ ‘¿ÐÊ”Ba‰ùú¨¨1·ì3» *w;€×HQ5Ü;ô¥zßÙ§’ú‘NwJ¬ÀPJ0  :%C ûq³˜ªÁãÌB44©jYì¸ü‹gŸøutR¿ÕžÌÏœð飲ëª5¸@�³@‡,÷f–Ø–×ãnmבyútÇ[ŠKm¦[É–A*–õÁ&o}þá¾`«ÆŽ"Kýy¸ýÁAñ^ô‡|7RlÛÀédx°¤‰¯ò.Ãùb¨ìÄlRIÞl!ÀéWÚ¹û‚Í©C±VúÒÇXúËĹ2ý¥m§AÅ»}ÊÔ IrÇnÐêŽv=]J3—*ƒn/NÓl-è—ÌÁb_oršÛÍw,7cOšw¸s 'íýWɰP„¸ô襢D[I+ÛH�ƒ ¡Èq"TøÞ¤9¢ëZ›Ç d{ÿ–Á‰¯X‘‰9_øî/ÞLû2á{ïË$>ô£ÞuÓíJëzGú áòM0͵’�ð'ä2ÅG'­�ºÇ®1Hí% ¬ÓàL½xTÑ–{»5.~XoBðƒ »±üîÏ/žñ©&wBÂWq^»á}Šõž·:ª»FÇÚí|ÆæÚŠ¶”L ìŸ×-e§ë‹Ó-™Ì‚nÛLÁ2‡Ü Ÿ(uÔ1/6ar@yˆ05E>Ü+ÅJÕIù;äÌþn<=/Q¬~{b4Ð}óã׺Ì“SÖ�¿Ü¹rjb˸{ŒÚ;G®,Ïâ�ôFÑùQ±·ÞÉüg<wðœ)õ»ÈÁv�á¨àu[áYá Byv<Á üE[”}ÐÔF­Æçɯ͂ݡû·íhhÕ¯Uº s®&@ÕÏÞ¯\[Êw–_{ÆÛ�îä0³i³¤ðÿ›Zh€Ÿ¢½¢úÕ”—Ûé+�ë» Û`jg3þ’ÄŽ¡L %G PtŠÏhô;äñýe¿2Cf}[’¦ó °šŠ'X!åU§�]Q¼{/ ÿ Äâa{Fô\ò�ÞoʹDä^øŒ|²†!ðvì1üp Â;zèåUš… ô¹7pk‚�®¿Ú¥÷S˜Û•ŠÍ=Uƒ 8”Ͷz%X™)]¨óõ<ʱdM YêúzŠjjòüs¨*ÿŸêWúçùÍXþ*E|8ƒÌ} g#+õee-}CN…YWú¤(,ÏjTeÞ[Uåz¬q:Vgµ[͘v1ièn…N®?jU�ÉûšÎ[y¢S|˜Z°ñ/L¯þ�\®…Iîû')‡_óëäöWzbÅöäoh%£ C±ü¿Š˜lI…ÃÞø¼|ôÆ®¹D›Âвr'*¤i!‹¬ú¥†2Î…b46ìÈp]_GÊֻ,!¨ÿêèo»›'<³"Ýý¬ÒYóÉsËÙâíƒðƒëÓ³;oýó£8�Ý®®ßÅ¡©ÆBažCP“‰_¯kã\ÑÁU‚œÂ=«åƒ Ö't¯èÖð_”#wå ¡r(Oœo”Z@�~ŠÍ_IªÏÍ샗¨W”!šíò¿%V¦1 YkôŒú¸ßÃÖ°=e¤Vcÿp~–›^#m¥Tvé7¨†e{Š h÷±¶aÛØnh�nºåfMo•.wÀàþî€FÀS=2lŒg^UºÌâ �½Ic«þsOEõ\Pf´-üžµôä°�7ÙÂ¥ø'þG—pYgZèž+Ìøpö:7OÞBç3Ð\®Z/—ÍŒûËå«Ô ÷þ#©+éŽgžÃÉÊÃÄŽÝ,N®¿^»ûlȵL.�#{Ý1﹟Ü[˼§ÉÓ™ºx;µ³åõçê'æåB�ã¥þ.=-ÍH\îÏ� ®2’¹ôŠñI«#û¿‡¤œ „G\℟…ZÝõý¹—¶@ÖLJšGB[öòØëy M- Ílǰ¹i�®6ÿ¡ã¦jÖš�Ízô^p®m“æn…lŠ@~àâ–@@^æÜ8l>éÆ"Œ Î�Piy©C7Á0A–öaO>!?N=C”UI£©ŒBþz#l¯ v1ð¿ûÏÁèn3õ;‰Yc°¡ „;Ƴªõ\b\íKW;‘jKõëT$ëõQùªO·îvûŸò—îÎØÔØÁ$}8ÂO¡Cy±žMäÙ0CkЧ‡!@&4tªÓ»·DCŸÍÎã-Z�BðUÁ¾g‰ÍTu2-©³« [W¼JòQð“vìWKÊÄèá×½*ìqÕFð�ù ü1ú5Õ¨ºçûù(½æº_ñ¯LÒúîÑÔÍ$ŒžE¨5k¯¸¯ïGÔ)W•�¬îÚzIç]8‘õïìDcfÌ>«îé\ãèìübïßmÉ4ÑÆ>;GômQ˜Uí6+,'Û°¦]Ëü“1«ÅÞ›¿²Ã©©kLd©/Rᤰ³à{é3÷zÛq¼DË*n¡ŸÂÛMŠš`5Ó¸Õ±Vf iÆ}˜Æ<.ɷЇõ2‰�àUuéè}Ø-Uaû3>ÒPçj£´Ñ3į ËD&ªdL?ßRKÑJc¶o ¶.î¢:='ø�®ÈSÕ㬠;¬¸“¡ÇçÈÝí=1>ïIwWIÌÅßc "øÉ÷ü¥YŽ‚qsí9·å}MXµR ¥f}ú“ Ÿ2[¢ŒÔ�Q3Ñ”þCþ»:X‘ Øš½Ð1_?Í!²©XÞÝÉ f/ìE1£’¤^¤~£ °†ÄN#: ˆ´ojy›.A«7ËtÛ·šLÂÍc? L�ñv ƒU¯‘¾µ{\�t·X]èCá5âÔÇ7séûQ—_D4š}@CÛZƒ?G¡.™9Ot+®�ž+ƒlŠ/94äÛ¼QŸéï]RæV›’–­ ·†n±*¾WqÝÞæªvœˆ‚ˆË/¡¬õvñvôÀ; !í‹ÇZC—Òæí¥½HD§oážÚEvL,‰Ù‡{ò7k.W‰çÊå¥ßã^Ç&*üþIè8ÛZüV v†��E¶¢;#†çëòDÓÉ«ME:kaÍ `^â²´íôå,L5f›ÇÔô³Á§‡¶iq5 88y_ 39»à ÿÈ3‰WûÜäû”Vé½Pl¨Ê™vwÆ Üõx{Îßbø1ýÓ ôÎ�ݲšÛs˜Ð¡‰ŠîŒ N,rj­ýGK!®�Âêʬ¼ÃÊt¹×^ÔàúÌ~áEWT‰}““OËÕø­Ù­¡ˆ‘Ôý]ÌWL4%/’óJÝFQ*8ÕS~/5*×�;Æ—aCóÛ¨Lä`?$¹¢îôçø´X5«•Ξñ´’Ûï�…³±Y½ƒÝ†„Ì}àáï†â8ú¯2A%*ùŠÒa÷/ qå|Ž£–£3(˜Éð4§‡–kK}½ÆQ°ÍBS?kUJ)¬Î3:ráBþîvÅqoj“Emí�àA˜aÃ~´‡›AIJÑH]À¦‚õÒ!üžàÛÈ1ÎÒŠO1ulÝÝýìC2ëG48´�+ÒŽî!¦ÿ9±ñQÄöH’x¶Ï{`·N;Àž@ª�Z×�(ÙÉö—&§lÁXŠ#š�¥�ã)¢Ž€+&PÃ�JüŠËeä5ÛÉ�^ÚEܦ»bXVmdͳODâ+¸ÅFèšoÝ�óÅåââagáѦÍÚÛÆF#½‘/ªâx ’EE ¸—}g¨XM³íêɦ¹fé!,ÏÊ©³¬:â`ì¶öô k°¡PÖ°ÝâH±<êÄ Œ$òO@Mþ lº�»M[<}ì^ψ”oÎ’ „¥z±`É¢¹!ir7a¨‰öž¯–;}âr‡7×wµ1ç!\C‰º‡Az½RÙHœ~Ì@¯ÒóĹ÷ë‡�Li˜€n�9!…*Ë÷*&×-x¢¢¥¢ì¹lgCS± ÊS!èX»._k¢p«ðÙ»³–âÀÅeÐtC£á%Zü4ƒDS‘¬Œ�"ÃÈÅèÅž—5AT§UZr¹RòTõ„-;YÛ>·×gM2@:bd‹Jl£ñ^Ъ.Åâš—îi¥zñÊ»ÐDJböç!´ Ž«Îë ‹Ïä½$6ãIgáÈd5_â©'›U½ÏŽ×â5fö §h³‹S)”ú{ÀÌ›QžG4y³­v+Xÿ%BéÓWRc`Rì ÁÚæ!›M=�PLSLšQG0Q_T 4cÏéþÖ�9xExCà€h\Ç–wµ½·'±Òw1Žø~–\âdÓxß×él`ºƒ¼d§¡ÈÛõ�­¬�fü•íG Ñiƒí•p käešuµÊx9ù kÊø½(êvæ¯=_]ÝaA­òÞ„'f7ÿ÷š´Gè”;É?o–&»6^y‚è+pÜÀ<;‡žH% I4©{&ˆ»>‹Î03'Âm˜2dƒÆmND½«ŒšjYKùï¸0Z–�¢»+ÁšåÖ¾‡jŽóP�0Ñ�i!p €ÆÐ,A¨É\†<;DúÖ»X\4Iöû†«rÜ×0üê?¡]ñŸµÛD¤>X}À2Ä�d6%©³õ9ൡµß•¡éƒ¼>±WTh“K<;5xÕKêò¼¶Pt¢Óª‡�+(é?ÉÑš9ÔT9y>‘"|š$\º ›òÃ�Ò?@ÌöÙr W›ÞŠEß í´ì þ�Ÿ3ÁäôhÊ—A´3Ò‘3Ö“ûG!¿\=Æ.ŸÜÎÚQ¨Ç(�·¤ú¥àoé•‚!NûÃ7ÚòsÕK* {â²ðïÈþSüQçͦ¬ ¾ØÁ7Ò„Ò�³÷׬q$~ØÚ_Ñ-§ïÒx ·,ë¥HkTù ï>‰<*ÈŽYL°ýsª/Ãn®^'Ä�Àñ”„ˆê™A~b§o~¸‹k_0‹­ÙlÂÀœÈÁ®Î¡'™ôç«ì‚Kze`0Ì\ôâ‘ñ|ý¨bVƒÏ�œ8j-‰)Ã+Îk½«OˆóñpçŠóiŒ6µÃÅ : Ö`òÎÊxœ¾“B¯t³²Vœ€ŸeÎÒŠ¬Ûió«é N[Ÿ¡]OÞI˹x阬Loá¡¢"Z¡COýú¢3`BÙÀÍnõ§û'—Ó¨oj^æpØ)Äó`Ó­þë™/�3”y�“@B_—’$vU1÷Œ'/÷³&º€` +#j´Qì‰ùœ¤ØÚÉ ÔP¨¢Rù¹ñòˆ¡^Ç9¡M¦Êzí³/N_¨OÒâ¢oÌj¾¶¼·í©òW” «4Í ó4ôfa.~õ›@›.“SL.[:ý{¸uÙ¥\ÇN…à-_f£¥;ÄXåº;2˜]Q>[c)k\ô\ŽX�kâŸíF�Ó�u")Ac^ß1R6ü�Pð4¶oVmÙØÜ™� K;…O”j^�üAðvý-›ö‰o™@e,ä�éC7Sú¿d–L$sÛoKmÿ)¤òyÛUކ:4ÌZ×Nx2ùU GŠ'¦Êèâ,ÚqXâðRMuMIÇ}.2{�ó×$›…:ŒÉ(籃֪â†DmSÈônx벃|7Àî5ˆ|ؘijäÖôQ>¼Ÿ©RO-s$0 Ëìú äæñbq}cs(Û— Ixµ·�ùWP´úâÝcdl+‰\‹g[V†¤d‚`›Âš; ˜Nþ䤨ü$”Æö_!Í€ÎÓ|= Ï@7¶ËK~1óv’Lé –==;õS‰ã5úœÎ«)ûG]‡?u~JM¤£HŽîg·Ë•8r#jj³©këÌY”Ó!ŽC8±Æ$ ‹¯ Å º¶…ÎÞ2 á+åcÄè¹à8Ëb5{; ô˜ƒ‹+}Á¤LzéšÒ}-M2ÆhÙ1­u3�á"6™2¯#X¾r#¿õ–K ¤1f.*‡›H«3ð'ísg¦ùâCé2ÙÄ­|ÞUôÒçY#ø5¬¼ÝN ÉÀ†­®sy(.¤M ´:ùÊc=õqúÙÐfn10~ÿ-šî=ŒÀ†z·iü5WÙ@ªp<�VQ¢mV̧\›`V¿`ä¹V×\!òÉÍUj Ta�—²‡pç.¼�|wãæ#±M3rÆÌ´¦Üé@Oש£ ‡ŽüB�e´ïé4*Gè,ÐŒ~HƒÌyÈ×P±f3õO£3ÎÝ;Ù4K<ï{Í×< Yü‚~Ò :´~›1E·ó�:žNß6wU™Ý1$YQÞä¬NÎ6A+F§ 80Õ¹“Yi’Ü`–†²ø  R2:"—¦dÙTkßCµá{Àñ²|v‘ÅT0¡ôOüghšïÔ÷ö¼ª6ÂùÊDR¡š¯¡n§¼&8›<Õ¿¸,[�0úl 1Àèlþ‹ºéñºoÊÕ-«áôà¼úøª�ðAuûnåß_˜}Ú¦^îC{›™È}#\Ò€™ÿ–ª Á�ˆ+q¯?-w¶†[ŸiÐBRÎìo¦~ €Î@1ŠråE(”ýq�­Æ¥=«Ì:;¨BµøvfìHþˆ{•o“‘7Q8åûSÖô“¯£ü0$º�lp~”1¤°‹POá�x1b,1lšG¾É.ÛÁÒûpŒ!�½·«ç,Ä¿gNÞC;ûò!±HúJF?,ÒI2ôA¶›Ä…öU\P™ðæ©÷uÑTA’¡3DµÆcë­ì+ùaôFŒÒ³À°GÁ©¿’0šä‰–3†4^œÖŒ‚Ú;ŠEu ‡<Ç×ôá}‘,�ih‰@Ò×]zO»Br~ê¸î(ðÜðÉàÓ†¦‘‰kÿhŒì¬¿p·÷ 1p¶µ•þc¯Å‰ùxÖÂüÎ@ùhèp€¨³dPž‡ ü>„Xóšq÷嘭¼k^$ä–ZZúq$x‹ï~œˆ%¯xDŠRW›®-Ÿƒ‚©e{ÿDʼdq Fª“\Î9}Ñ>d¢~´íI÷ÖˆÀ¢jÝw˜ðßî£ÒÑoR`ƒ¨µEk"Ь>t©¤Šª9-ÛzÃ-Žu´02B.COûW+Š}Åõafñ °Oô›0BLåò2:Afý~%ð¾/²çÀkAÍR§ˆ&M›1^œpƒk‘'ËËs“€Ta�Ê>iïu�$�íj4À:<ù—I‚ïäaŒµT´2ŸÍ) "j× ólö(ý&'Üséž1ˆ‘ï|“§€yÖˆÅF œÊ·:ÎQ¥ø­Æ2ñÍøS3ý›ÀÑ!¹ ?¯ªHßV\®ð( |i?½•*ï°Œ % ä4ÿT:šgJ¡hYZ‰}°õsuÜ<áÈLL%zG"%ÿtlÕ«êøÓ=³tSÄŠ6qú�ÆÇgùÑŽo†ÙÛÿ�=âY&øÄøEœ¥yêR†J š[ãv*§>Úà¨mŽ‘ê—jH$çÑRJá![øâ-YÌù‚+˜ØŒW¤/pÑÄ_}ë „Áø÷º—»*r‰©wm¿Ð ÔMwz"F²˜2Ü`…žùs± cwåà:^^"ã_þ¦Ómë0Rk¿‹HRÎ_È95ìpˆyZ‘ç¤T‰ç ^ ‡’–—°;$¦óC>�d±¾kH*ú…–7äâc$ÖN�ž ‚ZÃg¸].V'sïñ8w®`cª&d=+½ ŒLÈcq9ÐÒ~Œ(‘-'|q£�“šÓ3•ý»1ÏqݰÔ+UBÖü ÇªÉ¿x1»³'w‡6Ç.=:E¥J/¼ Ö$Á‘Û™ñ#� ,U_ÌWcAû Iq“o¯Ë�§r§|†¶pxî|ªÏ£^òö ÑØ«¤?›ö6èd-Íko í•�.›4 C7Ñ�‚ºátäÊå:Î|S~ Ã9/Â1±ö„¶e¼3¯à¹0uxÁ²4õoàAPÅv4ü´89Í´jN¥Øå3'+ãâ·Zh›>Ô‡|ƒ†_6_,ÛËz˕܄i he¯-’k�°l4nU'@ý±ÎHg†?°GT�s »~^ ‰ÑÅ‹XÍýnÀ¡C±æ!µiòüý@Bò¶SÃ*6¥2¦gáP�‘×ï|†ËMÝóêÎñüÍJVѹfðÈÈgÄTï=&M:nam•B´í’ô¼PYÕý_¡¸ëo¾'ΰ·è)ÉÃå¦Au¹iE«&®šŒ¼y“Ä0¢ÒRkŠÉÝ®?íãûiì,Æ}s;éà×ÈÓ��ÃÑõÙéWÈâcTÎ*`t"2HÆá án;Íõumëd#"ìk éñA/\pú¨Ú6ó€�ñ'�B‡CKŽ:¤»92ÞŒ(Üßm0½ì|9–ŒòÐ!u•ã…͈V§)ÉRÄ‹›³Ì}Ï•KþŠr^qŽ�ØÆÃF=ÙÔNF0/ŸÎ/Áÿ‹òˆI€hÌn[ïáÊ·66à0�ã])²FÓ«ÅŸvMqÿ–{DÌn«åtFßxâ‹S>psêP±Â)Zl`ážuPq/s¥ ú"*O_¯5!ªÖ� 6{\QtÐfäÞLlª��¡¥oÜz·h{å]m jk tŸ-"ÔÖoÌß—î{~ò÷XÜFóé_ID½ò?yœ½•®ËÜE\V)S!WCî�——’B‹æ9’—Õ´�¶1+âëýOÝ5�w•š ]=õ0ÑÁ9› ýíþùŠS‚± 4›A•òêÆ¨¾ÀáÄ?9¼9ZcÄä?·ñ’cÆtŠ×Õˆ$­Í·á> DfºÁ>Æs,AAWUéÉDèMÓ¶v ”A‚Cº•_€.ôPÐ6n*Ç$ Ÿôa³Íf@ÝÝ€Lð³ä*±D“ٲݿe¸óã9i<: e·‰¡”íŒ#BrÏ?«¡½&ó‹ÅBgHDÖÌiú´Ü{O~#ð+º™Æ]Öì‡5t‚F‘»�iÚ¡{é'Ñ3ð´¥’Q}4fNZñÃÅ)‰ÿQ5£f>9/X�À¤Õ||H»ÀE{JZy„üWà C;aUür 3‹jñÖ@\Ä®Nƒô—(Ð~N¨Õ ˆA””ënD‚ôÙ#h'é—qþ!fa¿ÕèEئ6É®×�î>‰È¬µq7ðp_¬ XÔÎÿu6Úüß}×Pì‡t q“zgp�Œ¼÷îJË‹KøB¯dŠF^/)‘�—Cˆá=dû¶w`ä¤ "8–È�±Ü.#¬¥@­ìì/‡bË-Ö(º�avˆ<3°áüZŽø ¶Æ²]ùµ‡bfNŒC]âBŽc¾+þùŸnW7P̛n¨”'Txn×ýÈ1PNANŸC3â³\±þLç‚ZGñ-®cc#¦A…™™#ºH:2ñK¹IÁáŸÂpfÈU?=±È”oç8öáßiâ%=¹³Ø€žÊÞç9­Y¬K"ù CÓ|u3,±3 ˜â²ËÒ‹šÛU×Á˜WWwœ¿‡‚Õ.Ûã»n­Íèa¢Î0ÉQ}˜¨î)à Ôý‰D»é ^Eeâã¢[ 7çÐ3¢�ÞÑ“ùReÊö,ÁéiPñZ(‘/¿Jùë—W߆»NG·YIΙOˆìQ ^­ ¯êä2æÝ�WQ˜ÒêÆµ¡O|µì”ÛöýTêðŽð·ÛØC؈)úÓ–K >*böxàQÖ¶ôtœ¥h¥#MçX$ÒÆ"eS®}õ2{VÄÂÇPÃjÇßÂÉÉDCŽÎ�½¦ôŽ�«úé¼ÙØò‡—á.ûú�Á.´v‚–ͩÈf\øªhô)‚ØÁäK™J™ü¢[£<øŸh¦ŠˆØ ÇKlÍ„‘.út  ÏËÚ#$ÿ…Gé¯E|a¹©û;¡d’Ä ]IÄLÜ}í§XÿÀÓ|s /�¸ó­–®)îJ¦b•’Žù#ˆáÙ$N­„‚·¬ˆ é‡Ò×Ì:E"ÞÒöYÏN“¸ b\yuzþË9G!_¡*e{ñK&|þ\Í7ðv! ½í€v°È³îÊ¥•˜?äå ôœÕ* ùjÛS `ËMÕ~¢ïlPÝl¡Œ6õÛ—ø‡•]¹ñýž\(EÉ–s§‡ß¿ÔlXȨö�ÝP�M¨öQt†Å‹¨È^Hßæa º zÅ séöäž+/z¨ÙòÐ_÷› •Å÷¨œyjR iG€2jà¼h«,¹·ÖLÝñYlÏÿæ0£@š[®¤õjÊ·TÑç ÁuÔu¡Pjo6¢uL/I–Ld;IìLÔ©yªHs´õáM l ²UdZ é,¿baäeý¡ß6dÝèƒ+k[7jšUkÚì£ÒÌ>våU3X1¹[UO\²÷>0¡¼ráƒÂ“Jˆ&:Õ++-»ú"E»¢}ŸxÔ¼çó½Jðˆse¨ÿK�réä÷øt�0ø©Jø¤L<·O„„g³ž#Œíâ%Páü�ÉW†ç�óÝ;W…¤®‰š<æY‰OZ«t|pú±.Ô¦`s"‰@Í0RÈ‚÷!ìQ;vmbÛÆ9«Þhƒò€~i¼ö›@ížo<'š„´PšËqõ¯%�‹º�ªU¬¸Crs{ ™ó½¦�’Mð¢xl ðr1ñä†Oà ö«Á˜"˜è¿[å‡ì\û¶#>ÊG�6¥E�xQ °ìæÛ–§€ò¸Dª¿Ã3ejâÅ9Å'3„Ÿêͨãʤf£n™D¥s-)i²ùðÛjtj?QˆŸ­ªÔ{»­!DB®ÞmPGÃnÚ(«WV oZû™¤×"H`ƒÒ)™¹k½³Ö’ú¶Ó•—9:ç:ª›ï¥)­üµÚù�R0K\™¦»g ¹bmø—rbÞÌF1~Óík(¶#�y«a6M™Gäp0@f¹P¯÷/¼] ü$ 6ëYÝD}ª't¼ædfVäHÕ´ÕŒTÿFṕ1“ŒºòêܸŽZ›tõf‚ŸƒÆõŒÿŸŒ{ª®£÷ ´ô�¯^øÞ£?Ø ºüžnN…Li•&Ä™6TÊ—h€ldÀð ÷aÔ{ïFç¸óÆô�å½›oÔY YT9¡‘>að·�ž Æ#ôê-Ö›ƒÈÈÊÀ@‡XD-A‘M j1žIö”üF<…‘ÝÖÿ®M˜À»P£ôö5WˆWšz¹o¡é_¡"q:9HÚW;U‚b„dd{­&`ùôŒš`môKZƒ•´ÉϧmŒjø5wŠHâ Ɉx H9öËþ$§™éxe-¸ g⌺ejZÌ¿§¦�)ä¬>øÇž ZMjˆ‘rw'ZsIˆC—°²¿ÄàWYúW¥rö%/{ [¿å:ºQËù—Í:-´O1-´×\JÈ­ofrXùó6‘¶þK¢ÈZƒ+é/²«‰;bÄ£–nƒ7¾b[¢ÝXS  ÔÖƒÉ |ê '�=+ÌVNšpši—é—º¼·±Fó*ìbÌ=nM½± ãP#´h¼\†O#?ÿÑæÎè••;ŽG¢Ì 4:b+µ,Qʦpê›Ú‡ìvþò”ùWÃa”Æ%/ãc�¬Òç2†Þ¡ÂÕ,#]ýlÙz$^£žâ•.4ñ*ê Nƒâ.ÆB>o¡ª¼Víl-ñË/óÃIΊʀR½L …ÉA `ã:õTÁ� ÀRÖjÀVÝŠ �öÏ¥Ìö2r£Ï\\>þÞœ¦Ê�<»,ÈÖS¥Q ×ú¹9ÏGµ>(šÿ”¡ƒº<�ÇõÌ tGƒèlÒGH˜©f³CçnœìÃ*�~³ALuaã†#`Æ@ÆŒx]Œæx2¬ULWÛJ1gJÊ-œ?´q ž¿¯>j?Vï¹§V-™³W¶\ïfÙáW Ÿ’+ ˜>6*˨-@{ÔØ(“Lê ÕãfJ+sƒ^CË0@°úJÛ»ØÞ9¦ê±¡q#„^l=ÀØùÃ|ª;ƒ ™¾vz³cŠäô0­ÎÉ´¦�j”|>ã‡"éV¸Å©ý]"î×:n¿îûI¼ï&ŠÃ|™Í€ /`S´Ù’ΪÁ€xyo¡<æéÙ¯i|é|ÕV™ N%8پ˛ Ðe»€òRŸñ��¤2)Óæ† ÉÍ™Qy1Ï© ÜZ`A/kˆVr@;ì…efüq_¼Ý$æÚ·Ô gpKӾΠJUÏF�MN= H¶¸:¾Zcx,ÞµO½°,dáù–?pVZ!–Ax¾)·Ú7€ù§ƒH[sRÑ6õšÜÑê,¯pó�·¢cœÞGa Ò…yýÂÍ)¦ÖQlùò2£Õ¥ö"}ebHCk’#§òyɼle-ǰ»õgÈälÃ2«në2~‘¡ˆè\oü�nJ›€MÿÖÖìë½ÛI¬ö‡ñCNj‘'ƒ7Œë>Å�þK’rØK?\Ñ”zÒÁZrEw«˜Áíý|Â]ÊØª±Âõ~z€ᨼœHzÑ•Jç-VˆŽCZddçäÖ8af��Œr»Õû<ß òÒÍ…¨¢dA%˜âœåÌ—-ŸmHÉ3µ"Ÿ1¯Bfs"n§¸Ó\2�Aý?ÒÚ<×QH½ãÀØ>?e*p9¦É¨½ š^jý†z(¸›GŽ `›r¡p8B‹ÈYª5Bp¯šµÃ ÖÔ˜~/a<$|š7 Ú{ä‰õ‘bÖà›º¦¤¶p5®‡í‰Š=Ùr¬‘�†jš–j̹°)3…4ѵ‰Ñ¦ÙªÂÀ*ü[”J/ œ*Òâp¡v%Ú¶ÊÎïÍ´Â0óA.®Þ¸!팒 j–dšy6v†�¥ˆ°WAò°1¥þ¿ü�Jw+ÛVôŒ9”ê%,¼B·¶æAòüÓÝÃ_L ‡ …{–4Ÿ†ÑŒž�cdzÙ½å„Áýp´Ì ²JÁ“;§ O|lmÛÀ ©oÏjeNS"WSL¼uO¦œL2÷‡wT/¿Ã€_Xô 8Ôô­QXó¨N�ŽF½ïÉ@Õ<ƒ}2m=^@$ö 7È=ˆÝDŸ%è£ñ…<ýYªx™6ßîð5Àö®Ïƒ£ëå¯ñé’ý#ú=TnùfÙÚ×Ä™Ï`m÷mXóB#.CB> ‡Bs5¾W¢´÷.Fn»OD×ï<‡I¾0Ð�’E#˜ÙoŤA,µZâñE_�ª½‡’èŽÿ™‰‹ùO¿úˆ‚‡¢“A¼ü��°dG¡ÍŽM„Kqîk›t²ªêÉÆÀêÍ ÷Cü¥A`m7'e Wà®D•9)µÿR÷;Ü·CÂ5¬¥ö«““Œ¤8ÇÄÂHʪ)¢Õ“:uéLö$ÑAtömWZ4£ž¬Eÿ’3# dÑ \ ÿú=‡ ía ¸Ó‹ øŸ€QOnê¶}]r¹œëwÅ RFøf�D!QjÕs+§Uáz¾€±é¨ò@, ¨¹�fx`â¼öί�yé% _«¤Ñu–´6§¬Ç4-_xÛÚ_®Iv‘á5Ö”²w#yùûúÁ’ç Ë"ç§™~y`óS–±Í RÑéFÄÀá�3Lr½e_b6Ú“Ÿœž 9°sÁÉ‚œg7_k•ß|ßl<"¥ â8OèÎãhu%„¥´@Ò'·“DŒ½�e˜Ñ˜ËF‰ù™`hŸ_}‰½�ŸËØßÉ$¦¿ÞitÄ` ØPnžô±Çø¡”/@œ"]H@ø(â°ôåÞÍô‘:cÐe´{žýã–ÏõOÞ ‹†±¡Óº±‚Ô{B �ž ,ó‰R±d! ãÚ ¨¡t¹x*_7§Ð�sfÎ'öU˜/&ªµ®ÞÆ+ �»©ë«¼¹ð©Ê|Ö$¶„x"ù¡/2ÎsÔT?tys]êÊ¥©ZÁ(Œc‡ ÀbîÆ�ôŽü Mh ?ýR[ãXI1‡C˜¿Ñ¯ ™;.¯íÖgÑ<ƹ"’‘2½5¡Tîu_9Œö�s@Ý3êÙé<“Þu�W£ë‰oí¿¹™ºqïÊçÓ¿2MÛÛ¥1 ÝY�ïËè-õcˆs5©õåÜC¢�BjEöd±Ç÷‰¦hÿä�S‘jàþWïƒt´”oÿö2çÿ÷ºJX¸œ.¹ûQì£ËþZ±0è@Mœ˜? XDgéþ±y5âš8ý”ÐVA�­§Èýp™0‘�Ʀ¢·ÂóÍÐÂJÝÀlÎo¢MžÎ %ÒÓ`¡ˆ=ƒ{”-¤sãg•�ÈDëÛG¹ø}`œ#]Œ&¦ëwû ¸ÓeÞ¿3u3`V׈'œ6­^6G1úp˜�ŸšNÅC£GÚ; m5ç/ðÏ’ð[Î ô�l�ï„t-l?›3 `†Ù0g‰áUtBc( æuœÝàCÁÇŽ“½úz]ÎLm F- 5áJ*ìfÃL­—qÂ'½ïöhÌm.vÇ�q¡~w ß•³k µ®%‰;·«�?þ{*·Xûún¨D4VîÊÏqšdM[£3H9¬<›Ðp4¢zS÷Ööåû;nöHŲïÁ–ö ÄpúWM}ñ§qaÞeÖ”Lˆ��U>îî´ÐOHÞ¦# ûÛ jòÃCE&yíS»õô�dÆo¤*³@ÏTóA„·S¬0L¦ylÛ¶mÛ¶mÛ¶mÛ¶mÛß±mŸýwgf/&;ÙN:é‹·êIW%•·bU¯4gÉ}?& +¶�;ÎÇKP=f�𯅻�(70úÏ0ö“WXÖÃt¯y'Ï1SZ3d6jŸårë~À9ÚYt'ŽÊZ0ˆá�2~§.[`çì>]@“u‹z[Údê< é�8µkæv°éà‚|Ø–_ 3Øæ.JÚë>�½¤ûª†Á³�»€©Åï˜÷Ÿ£A€%B…Î$#?ä…K‹éŦü¯¢–3?ÂþeN 2U`Ä–ZüÛϺ¶�‡Aò¨K†ñB†¬ˆ[ÙÕâ xÉåYìïÆ+Ÿcúd¹)]�4r¼ÿÁÛ3ိ¾]3ŒÉ¡iÿK;yã*ÙËž¿Y$D¥ÑŠc ÷x·6%Âà€FkWÜ!ðý‘µ§r°Êß( µ*i¶ëõ”Ñ, Ná©Ã$9Òq;Ø kÂí}ଦ˜ÆýÝõªL0eÜû6J^¼y„ÖŠ}v&œ-XƒõDH ƒ\id'£ân›¸å¯5/…ÕæO¾)¦¨Š.Ñ…£¯ÿŽG‰¢Ú“°ó�ô-ì-]§lASTbP�VÑøèÜy5²HI7ʯ‹Â9¢åôR׺½¹Ž·t•QÞ%^«ºi Û¨gœ1‹>Ëšú,W÷·üõÌnŸnsD3a, !0GÎ7ræGï¿ »6ëӉ蛷]õ﬩pÊR×~NdÚ#�[ÅÇ5{á,Ac_)§@ýæÈÒøä¥˜Xª6�-)º?ºåƒ nN�5�å`Ž((3àÊ„à ,È9›Š®WÒöœ!w¿µwQJX%þIN¹"Cª–q·°Ã €¼ôÆô^-Fô�çP“o�X¿d!F$êþ¦+"o·‰’¼Ù›.Àg8Ågfj§—crן~¤ç¼_„‰úè6 ÊÒNÛ­ßCg¯åVg…‘S|[±2÷㯻 ¨ó9'÷’X§ú²­‰Òû(6ñòi‹ á`×�@åS3>’ÕmBd¢.—`ö™¬­ z(àºñEÇ^ìS¨Ú'IzÈ^Ž)‘¥cÓ*¹Æp‘•Hi÷ˆ&'Õ“<¥ÕvÚ­æê{0Wg{VPuƒc©;>Î�ËoŠœfêÃpô¨cȤ%T¶­2|ÄÅΕÂ5–¹ñ c*!2=¼û\­7³›µú.LJ¤tÇiÐ ²ø7'>ÊÈÑ´‰4q/V7nvhJ±•p-þDŠþsJò S¸"#Z.MG=Ý�’T“冴ãèªÜ&ñM•Áã8¹ÇfT®ø…wH�{ «pŸ,‰�xµâ;ÓûßWóy­~Ö´„ ·02ûÔ›¦c áÄ*Ûñ%×Ô¿ö9: Ä5j—x`mGmŒ†ö{»¥þ9;˜yÍvs½Ø“yyD4â�™g„§pî[dáóšÆ7×1¡^ _õ)l9hTœ’æ©hîZK ~GýOÛlâ<=—ª Èt…?� *ÄqßÝ“G+9èô�Wo:cH*Á¾Z#&¾wã{Ô/UˆÛ:¤4`ˆŠ&îPËü1ûÕúàú÷†}uúÌîk•ç+ÖddÑÚ>UNM õðu³V\.ƹLzt²ñó‚+ç¶¹döž0-_ˆûŸƒ‹ütÛ:ªw�­æè¸’ü¸›p“îuô}º#p•넌{mµØÉ@ŒI–ÙÛ¡¤?õj¼…6€ô«ö$¤-ãj›3UœfsóÔÏ­y ~CÖÁÈ.r!ì` {æ§Óä¢A¯ °ËÍÙ÷1ÞÃ\ Ùõ57c©WøÍѽHÄÛZð =‹Š‘äBuëNžpl⪗©î�òq[(e:FX;øª´Rš’�8p¿‚úll�÷àÝx‘cíÉp�ñþÖ¬5üûoÜ ÀFA‘Ð`sªD.åf~Ïò(½J# ÕÞµW*™Ÿû¦ô² Ѭ ÜéHåEoFêjyÎ3‘íçlÕM·&²«ÂgÚ‹�ït�!gŸjBdìÞl‘¶í\ AxÛ–'•Eyo’ ¶ï¬àNk^T¯ع;0ý‚€(ÉY{Exú ßÿhß‚´%!Á/Y¡rƒ­8¡Í3T;_â]ÊÅ%ÖÐúæ~ ÍD¢š!ó¥Ý5uÿ€†�C¾¡äŸphP��RiÔHQ÷tëæ­È ”3Á²=&éGÁ̯1F(Ò§ôÎ'+ƒŠ•¼CAÔS 6ÅE+ƒ)´ÔÑ]êz5{ãxÏOöŒi�,I½ZL“èë`½{±4MËÌ®ïû™ä—gYY!”‚Þä‡ >¬"q6Ý/ ôoÄ$E½—»gN!ZÛðÚ�ðÚ@à<ŽE{š;ô\¥Å¤ØwJÚ„h§è¡BXÃæ˜Ÿ¹A�¤ÚÙ`ð¼~F—�´üŽ�‡=þ] ®˜9»Î ÌÚßÍçYÿ‚û ËXÀºÀ¶ƒñJV`9�ÂÍ/z['!ÎO3 ÊÝs*áRp· F�eÓŽIò£´%³5ç|Í™ÔbZˆuϦ÷÷ýv’OWá݈=²–d×\7)Ái&mÈ–ì*ó˜xÅ éÏ¡«Wê%ÔÔ4;rZˆ¥ ³43“ºB£›e½Ýîs«‰‹†õÊy­_ÌÝpo¯éÛÇ�ëí�ß�WÐxøƒDå.ú«À-ï²¼ôRþèõ]!Ù)„Àd¡ bu¡³G‡ÄM‘€7¥q,fC¤�¿ï%ð( J¶*Щ„¨ F’ˆ/â`’FŽ?.Á¿3-íXúWñzË6¯*IÁ”õ‘wÜ”’=¼häbZdƒ!VõÿÒ›ÃÎê�oZÆh¼¿î3ÌkÈá“[±1r¾¬ÊäU!à6WÙ¦rF?¿ÞmY£-%lr@ªê‡¦Xñü(²qÜ â+åïÏ mp„…›¶=ÄYÖVÞ®,ß ›„üËŠ�¿ ´´†£ÀÏ›-C»2¸ €tfØÅßóbÖ�ÍË éÆ¤:oýý =$Òk¾•Tï•�çÕ™Ûi©çÃm5•yÓgúpuˆKÀ?a.à•Í[FýðüÅÕ›)‰ž±¹ëHR=A ;q]xuu�ôVVÊÊ„ {”¬†Û$ú‹D“ /.O=aW\t.cHÖF^W;'€öÂØå�Î�dÀpqü—º¾²=XÒÜå°ïŠ.‚i®Ûntó™+"åÑÁ^�vÁ@2ôz±i÷cÏNÈ>´ôWÈP“$éÔš¶Å%§°Ÿ%¤q<-8Î&zy5:�q¥ë=�Ö]gôiˆ—±\sÐÅ™.Z²üûZÎðJŽG8Ô¬[7è{žÒº9æ/;‰�ÏxòÃÁJ¨*cXôà +ÎØy"ËVÝ>FìÐ}XVψ'Äê%ÝK‘,ˆð5Qþ ¨«æ !ä¸Y*Òª‘°Z°)âp›’ ¿w?ÝÜ^(kµ2h§lÒº­aÒó|þÙé>e2ȼÃs7JlÿHÉ'÷åü>h§Å4ì´Ž:[e×OÖ²wæÃFj=–ô ÆÐôÔ–;¢ªÝUH—ß4e+�=Ew«êˆÒà—Héʯ9ÜIJOJåfr«dήh.{§MÕÜrVCŒ”.w€Žƒ_œÓÅWÞ74’&íž2´yOv¬»íSIjÐb‹™ˆU©ÍlDT¿@{w¼ÊKye ÷K´šž}Ûš.„›nwFÌ:ä:ÿuÔ z6öè£ú�Ž´ñY�ô• ùIÚºù.S;ü-÷ÄÚ„ÉVQ¿W™e¤ßÛK–u+¥Sp`Ãù&»D™m2õŽ¡æˆñì6j¬—š7ÞVêrX °‚èèÚBQ¼™¡@hAв»ßÇUçdõHDß�;á3îñÀfå2´ê.ÌÚ7ÞL‡YEF§ •´Å‰\`&MùŽˆý¤ ¥‡�Ûýfµ÷ vêÄÉ…÷ÛÔœýô,µo÷Õò;*TSC!¥?ZN˜'*ì–çnÿ|°!¨îЉmþ�Q`i|„£kì�C{bY·›�9Ì©ÁÚŸöLÒpúÏxõº’+ñF”0N¸!Ã{w'w[åeoÿõ%*c0.áè¼éCr°C.ýB|åø³HØ–Dþ5´ÏpSëº(öW1æ5s‚äì à̤ë8ޤ[´fõR'=äºnW?k¢êûU$gßçÆ¦H䬻qe̤Gê”…?ijAoL/™C¼e«–MLºñ…•ð9  K2Öè#LÎ{×èç1ÿ ¬J{ ×uBÜV˜8Ññ.ÔO+Úy}>fÜI©G�ížk_öÝkɱÈhß­Ä ¿:ÒHÒÞ ŽðÓ‹ئ*êxH•,S‘nß�Øýí ¼è눤Ú9·*š˜µ5zû÷#='ÅWš—� òÁàEÂìárºÓ·C€lºF�†/ÏR*š"ú_Kµ€Ï7‹ÚûU�‰œÌ¿\�íÎΕ‚ÑSˆ½ük¶eÏ�c·b »¸½‡pºŸ•{“L+†4„¨fæNÌXî/ÿ!I µã °3ªYìü¡bŒ•wHß‹¬G…ŒáCª€åmÖ÷ZvSÝn,—Q³â†¶ãuÑYã©r�Pôr(B„À|i \uZ{¥ý9è»Ã˧KÈЯ¤$iES¢òiÐ>Hsêg@rî ãøi!¯.õ^å{ú¼m|ÎTÉU½þ,¾C–b•ÏîÔ]m “ $÷ó\­ä–c%™´!BË=`ÃÁ6U@;ßǯrCz~MLZ ±â_m£¶6X3¡@#Ãþw%:f8xïkGZ¥�YA”HŸò£«òvŒ�`¢çÀò¾´Ø"¦£Ø�x(ÙÙÌ4™�Eð�{X¾˜–žî’£â“ý-œç�‡×e*‘óœsŸü?N÷kƒa x ¿ÂèP²”º¸2ÔrÉJìtŽ ¿o…KâÕŒ?tI€†åÍÁ‡5S…hõª�EÛI´µ?h‰ÏlYn]ºÎEÆ@[òrÆŸ$ñ¦©‘s�--!#ÿFoØ.µì~HežQ .óG‚p-œ€GÔ¼£P]! ¶ÌÎê–@Uè%ï¸fB"Të�Ä©¸áó±L§©øþUZÀù ïº ”t2·k¢Ÿ§ÔÁ�€%¹"¿}• ]³Q>P0"\ÆŸ5è ñ�ê¢G���•¶hN9 %—V±µÇÒONÀ3 ¼”û1=¤•çO{¯%üeyj§�% «ç«×€ü xíÚ±pF†@zH›6¾mxRnˆ¯‹gÈÀŸíHÍ/bÜ 59_‚Ÿ” y‚�#Vº–‚Á�pÚr ˜îih²mPÿ²»“ö?À»•ì9#ކGêNK$;b"&ÎkïÉÔø‚ CÜp¥óÑÍÇÎnÊ®ÙÛ«± âP�ìÓïG…ÀôÞÈ,�0â´‰±SA ’àÂlÁ‹bs‡«´rG8ƒíáNe„$¼_³ýØIÉT!usU)} °fþ\�#iö9ABN>â6–èNaož¹}l£âÈL(P®� ޜʘöí°Õ{ŸÂÊ& ¿^[Uø':Ü\|û‚¡M÷¥»U•Ø ¯0¶›BQ.¥2§ñtÀþÀ�zöÌ­”žJAÉÁCEqÀøòí2Ë»ˆxO88ŒÂ,R 7pŸ)"ø’—l@ pÝ€W”~‡Esž�Bñ¿h³!H¼…tòE\V¯ÁQUr þ ŠkˆŸ{Ò;è­#ÀF„fõç§°Ç^ú ¥>Fr%]Ž×J¡äÌe)£çR:’±r¦ÜM|Øö™�¢6 ïIî£rôòÔDoõ{_jjnîC%ö¸8jSÌÄÎŶÞËètHÿ¶ú{´ú„œFBñ$¯ c0·_"W·'C~U.;æ®`·g<N씟MΙA±ŸÚÂâ'O2Ú¾ˆžúìMÈè8f¥}é®gÆ”3|Á™H´.Kî×Í{ßgÆ£Uß!7&#ê].¿ö }ÕÆžskôÝ ‚yvר[· }ÀÛ°¼†ž·òイmO0—ð¯P¬ÇV/2óú¿øZ&Æ"ówÄ‹Yå*»Ã� u™=ù(°!ZätU=VðÅ[†önbF¬’ ¥?ã“Å~¡¶«X¦§ƒìjRhz€ÑŠü&ÿ˜žC�+ä+%Â/ëp7þò ŸòlOþ[Ʀ"+œ  ~eI%¡:Ãr| Ûì1 0cƒmž+” ×mRç 0ßj¬Ù-Âö‹•û#Õ²�Ób±@²½‘wí«ý Vžzù=’#3aVè/²û_XÔº‹y‘1ÞÕ²TìI‹’u�Úb:I™ò”!ÑxËvéÂÒ”[œ¿8áØx�Ú2Û+¤µŸjTÜÔUM2× {ïp¨zÞ�q9æðô*Í:ýÓ\‰êHAtЉ(ŒÜã[>#7½!nÄ£tÊÛrZV>å�hWI©ØjŽ…_1‡qW@’œ4ç"J¦Eh…>-ˆ€ÞÓÅQe^þMdÙ"œ=“þ:Äö ö÷‚ì¨qgξøVéCÈdüÕÀÛ¼�k{—d‡K¶6Žõh€(-ì¢_êõçÚeðP£è×�„ÌÛFlPË>æiL+f„81F‡jQ×…*U㬱÷¤—Þ”;Ù 8€È1¤ßƒ°G�ªòÃqWHìɋƒì…ä{jå—¯kT E üeâ‹‚ž�Šê®ôâhH!^ßaž>È8—‘® 5Á ø|ücÌáª>\€(wÀD|dž}ÞÛÜåË OO ºo[øË:“šM9Üvý¤€¹ˆ.Ç,»¤j- abÔõ>ÏT=º Óé+êoyx¢÷tÆ¥Úx¬Gä[pè ½ÿ `ÿÕà“¶ ëéßN>4Þh$²ÛJœ¨¹¡¼„rÏNßR�uÞ“Cpd\,Á�ƦàÒz„¿œZ̓^ŸE1AtôÜtŽøÿ¦„ÈËÍ/Û�y«ML®3\4?BmÖM?ÁDcåæCó‚åNÙdu—Ñÿ Ý\u*¶¶à´r}ÔS>z%5ÉÂeo$¿‘'ÉPÅ©]xgc´µD9«½�R€F�iÀj¾(‚T3{{¸‚|î"|\Õ§�²~àE­î`S¨ÉƒòƒZçG‡û…UÕño^·%DœcæÔÛ€xâj’¨D ÅÅϲ¸Juä1ñÑ¹á›æIUó¶˜úÒ©óh·Þ>l!u6k¶éRÒøzõ 8lÁ çœg:åÀõ1:RÙ,Šê$8GD0 ‘çµv-eN¼è¸¢¾—Ÿ= °k°ïliÃ=”Ï~ÜâMg*ŠŠ-ký0¥`“—ôïIÒdìFbšÉ“<غíSË«rÕ:Ó9xâÉB ì÷ �]Ƶ �e1P©¢å#Õ¦îãSg¶ÎóįÙ|~ªšª9G²Í•ƒluÒGt3q\B1Ub-T˜ÿ‚àË£°z~ÓXŠÏáO‹2qU†ÔÌ¡&L€h@ЧöbœÃqá\¦BD­DøtQ@ë©ZöS0¥ƒÔ×Öå8HQJAZIZ±3Ô8·Âz~ל3ˆd1¥†ä<ü<êžKM[Gê›O± ™Œ¹Ï%¿A[„{©ä=À�pÙ‘Mܘ¿©RÌ ¥Aå!€OkÏE8UíÑeLD¹A6“-òÁ"hpTQorg�ÿx¸3¼2ùåžÌ×ê.€–Q$)ôq[K^ÈЗ¸R`.é#Hõ ñÈ=B€×�v*܇ô‘Û4e¾-ìØ&Ì•8†Uwª Esù²>Æ�Hðµ‡=ÇIûïd /MžXóºç ²’bòQÍ㥟ÒÜEfÿ¢—ÆÏ·|Áw?'ŠúH©øŠõ¬;Õ7zô¶ÆßšŒ8Cc«¯]då�œÙ`.¦:à". ^C5wFÐŒ@¤Íæö1Øp¨=ɹDGï~ž‡2 <æRnÚ¾¿šà¢]5y3ÒáÓƒtYû¾Âh¤ô6dÑ� #!®g}‚€„êL·4õñÔ¢c°Ä(7ÚÀ´åL„hJ{„y‚…—·06'B³^qFH§bÉ~�ž}Õv*›O#$ôXŽI6Ê&‚†>ûbŸ1Fù\Ž÷Óèw™!ƒ-¥áý€ˆÔ|y]¶H9ì²bôóAF7Ž–Ô@mâmŽ_`3H…&ŠOèÚ”6²MÎÎÿ•šä˜çôµ€ôD,ë ,w˜‡g[!3R•,]5)39¹7q«¾øqü´™ÅTµ¥º�Œ`KÈ0~rˆ‰lÁ²Ïjs‡èq™5}œhW{àŸOo?D2¸´ÈiQ8à7ô,9Šo¼¼ãfs¦3DUN‘„¢·ÒÏr=ô «tɯMfÖÞåµA¨«ŸúaÊG7¦V½C d=Pk�{@Y0™~ › ~BŸ@ÄOì;Ç£±ý/wÚ«½'Ã¥RÏîbq†�LÌúB-RíTºù¤J¬ú¶œ¼7£‹x5ž{ +±äm]ÛŽÔv“v¯z¨Èâ@¾$¶«+¤U–ªo»3¯Û},¯h~Të"eÑ©q\¾ŸI-Ô ‚¼1jO‡� M:KîÉÏÒRq85 óÖ“ˆ+Nkïg\šÊ/;ÛA@™£Ônb\ÿ‡�®¦NëÖ5jp¹ò÷ìÛþRø¯Äò§U …Æ`¡*8”Ru­“‰¾åv”qmŒ�g*oÿUc‘!ÓAb'MÚJRÊ—¼Cô[t²Éœÿ¡s n�ãr‡”ŽÝrÆ%œ´Hð¿;%9 ag܂᥼¬q¡_nuS_|<ôÎY™iÁ ÀghéÕ�o‰J¼ö®Äa¡Ì¶gC>~),ìH­oº¯Tû�¥Ó Û£‚ã µ�¸"e$fê?gÀæ²Õ’ ØJköÅ(/—Ò„‘ãäp࣑{ó¹Zeú‚½BÅ4hYn"'Õ®² øÁ6nÔó.æ%¥¿ºD\¢;àõ 1jXÞÃÎRç8â»f½Ž�îœø½F¼C@qÛ;!=Ä)H·5¾v}ÝK;~A˜ì'V‹’†Ìîa‹ø‘]üÝ«+ŒY¥§ª‹3þª„)Hä`¼Ð“¸—xRÂÞkŸöÍÀæFqr–ý\§f1¨€OGÁ!–sÓA|(!®”™§Žú�q$3¿–{uJdÅš?9úWyÁ#tËæªx«:oYõ(Æd?M1±#u¦C3hDñ=áÛµJ;Í÷ÕLëMP+>s¹vuéÇàNìŸ lË‚ÃSA«�³vÂNJ»õgr¸ª œ®¾ ±Ðæš2Ãüš?ø†Tã-ÞK»Ÿ’:ªîô9ß‚â°a²ZíRë¡Mœâ�èˆwSC¨3‘ mà ¿Q‚8�µ+ÅøË*?¶ÕÞ¡@æâdÊ—ÚâçXG7–Ô4­ã1=G†X[òS¶ßò,­væBè•ÊÖ¿6{¬ý¿CŸ±•£¡ =ò«ÏSI®Õ}ߺ)Ðâ´´’˜2]ÍsvûB&IKÅJ~ÖÍ—0ù„ÿ%ï¡ i|–Åœ‰- Œ&ÆÑIÉr(±�òtb­–Õ ³Ø;9@û’ê~ݰ[ò“Ýü?¡uÚÍ÷å¸4Ïê?Dó"§´ºp9Ü'߇èz,ÿý «ÅÌÓ6ŒÒå`wÒ ð·Ôi¡L†Î T¾™åWšðÜ@(¡Ìârt¾½Õ­tÝÕçi|}ʽj³Ý¤8ÛXrÿŠž>¾2K›'/’‰Û�Ò�º½ÒFhs!îj´áz ±Œ‘‡YQ›bµ…“jÑG‚¦÷©ì*H‡ùÀ€Q-ÆÑ>Õ’\· ý8J ´™8�zܰ£ö,$½ãØÓ»wض¨€%Mµ¾*‡ÃãFFioç¿lÅ*ûaö” ÆÚ”)Êô]ºöü×RZýÊ–‡Ò;•,’?Y^äŒeŒ 6£¶6q%8a_ó0€5þqRï9ã’妹”Õ¢�/ºdé 4¾H¿S@£L/±Á¦�½l¬ûL �³ËŸ$»(|»ó,ÃÓcÿ\�¿Ã’–*1ôZÏ-YÎüx= ÚóZÈ›x' Ö¼¨[Ü¡è÷f!ܶã›~Åvªimçä8Í‹$ß~MO<óá"Z�‚w Ë™æÿè‰4¯¯}@�=8’‚Žv�Ug(¬W¬Á¤�)”-Ë¿ñDâïŠqCrÊ3„™û.UŸÙ¹e uU|âsò6~˜øÏÛVÞLÑ²˜Òè¼AËÅU¯újÖ‘ÀÀû÷ ?�}kÎW:—O.-ÌY‚ÏJˆ”¨J ülIÚ¦~;gí�*¡ƒã`æ€>¾@¨aœ‚¦§0|~ƒb`�-·ØÒû×?9Kò1À³X(÷âÿ�¥¦€©@�ŸqTl‡ÅÌ÷;PŸËCZŽØ‚n$kB¸±ÖGHO{1]ƒ VrúmâÏ»¬RÂ*å‰-d22Ÿ+„ (Ã`ï^œîT#Ù#dš&õÐîÙßÖåÊO»?\·€¯2[±¡é³n¨'c„T.w¨˶‘¼À_‚§� Éÿ&a�„År´ÁX–†6^¥sWãbî­”mK а•õYû™¼óc&ß–{WaÜoþÆw(‡ÕŽ(‡KxT€�­(%aÛP°èÇðØŠñ¼Î©zV¥Nmêš°#ó¹wÿqž7øŒ‚鎽wŒÐ•’ñ PZ¬šP-ÅgàÞ‰•eó0EaD;*)ŒærVU”3.¿*~MÀÌBªï›§]ýäÛªØç·Ê É*²®ÕéN Œ^‚g]do‹;½{ðªP`Ydðd½³Q‘£ÜétY}’9nÕ‘9–yðZF:¼T˜q1¦ ðº7µ'í¶D÷<²wI jÆQ‰âƒ-�¨Gž5¿Ky9 nÀ¼²&ñÖ %ÅVÞh1ì`©‰™?æI&q‚Ô¬JÚ£Œn†ÐFMÉmˆL ÔP<'É+S¸»ë¯2EüR4õ.�1“�ÞzŸÞµC‰i’*1*äÐ*KLÝÎ>Ü"«Kxˆž4pg¼g+)/Ñ(³»Q%:áÕzõ{Ø4¢’ãÌþ–\�ý|‹w@ùUÑ.ì��Œ‹‹bñ”n>OÈå€úÏ?®Õ«ÀVbcMº˜ˆ•=íOvÅyÓ N¤67¹|0~~u(¤ÕjU&O8t·¥~­ÁÑÙ,ßï–ÊLfsÎèÌs¶�WŠëZþ:GÃrÒ4EÈ>©_zé®|F&åÀÛo^æ¶sTƒ×ÛiQÌm³žAZ5ø“Ëà7÷¸j÷r¬'öåD/‘a×¹~2«V×� 0ÙHÕ+¨é-Ú'_ÛFNñ â-6‘‰*qÃÂE¨vª…Çî ¾GyÃõL‘Ÿ�Æ�z~ã7P><óò¯fìc,öí_uè\ø’Ú �Lf >Uˆ.tž¥Ã¶ZËgÒÛ¶Ö3È’ŽS¥�{eYÚô|È1\Å ´faàX�©p&ýF_„ýÀGÌvæÉÂ�Ûw›L€‚ur0ŽlŽˆŒ¤{ᬅÄ�®ÅÐl}^\l³‰Þ„ +5ƒÊýÕKU‡XW‹N×îìxM«ûzÏ@=sYÄ!×øRGÚ#*�U>«NÀèíšâ1«ŽO ¶m{·1üpýþçTWbT*(×Rü=šûéÖ�×ÊŸõÉÇ­çx© ¨qdÖtIpÕð—þ‘Ï¿c@û&‡–"î¬:ûnî =l'ä¶ãÒ4ÉýØUˆIÒ]Õ&bÈaÕÒo*‡t^Ê�ý Ÿ|cÃ~ vsË�o�ŒÉ¸žc< ¡Ð?¬ˆ"œ³t QûŒœ–úØMƒÅ­qqÊ#Ór]xR¬›&»Ñ€²X ‘À/ä eB¾´G‰1rÒhÉçwm­d·T<)Êä�%¶&{�&¼‚Ÿ‰Ïi™ªÆÞPÏ8VRÚKo ‹Çz>Ší6—[u‰"_|±†eçc‹Ø³ºüÆ$· dç»L1õ®M'÷N¯ùFtË€Å;ý8¡ Ât³ƒÛ8Ðç¡÷N$)ͨ¿“`-ÆÍÌPï¶«P²Ux?ÖÝö>™×ô!ùâŠÏ+Â8`Þ&6dï�}ÜÊ…±¿»®áì´!†å¶ÇC~Dû’2)'Ëf…lêiN{¬׿,´§=ò÷^ B±ãwO‡?�¾jÃäÀD̺oã-¼ó�c8©°s¯ž» Ѧk,ü²ØÂ^fnǧZK´ø4±â8%\bñ2Å0ˆàÅ–åÏyÕq!ž«Ñ—²wÑ-B«)`ûüÖgÂxä4Å O*Þô,èXé“ïºn‚îg±òÔL(S(eDÖ£wŸK˜¼¶SÆÌ¥Ò»Ek�7þæÒIƒ¶�Q¤êɺç�§#lYª îiik¸Ÿ3¡�³ö°'þ"ë¬cž¹×@»ÿ<_Bþ²Àlz±!Ä ¥W1xÆuÞã®—Æxh]mŽªG‚³ªZ/�¿+-­ð-l2Œ �ŦŒXQ(YK'›Zû(¾�‰qÄ^[ºÃ%¤_€ž¿êõiHÄ }YÖ: $ÅŠ6„Äx§“'ŠB"‡²ÞøÛ’HŒV-' híô‹5Ì€´“æe½˼¨ìE{œ =ŸÍfT„ùÇÍaG!ƒÀ%Wbû©• ¼ º¥Òé/ðöïi¿^GFFZUìÅ‚á0ƒ/xƒ´rl ,Ö´í2­- $ Ù�ÔÿHÏ…¼9<…�FÈÜQ›‚$›aiÒe»­8Õâžw€ËBÓé1Ý0ˆÃòž1ñ׬蓶Ыg@O�QÚº²Mø³fhžæÏNÁQ¬%¦9×rżX+Pã@€•I° ¡=ßp>± Ô…#±#w�î ¢FNAk¯>øNÍ=%áCoEµ$#lžØÊW-eÅf©‹61šÌULŶSÑ‚Qf�$�ímžÙƒlÂz7�š7T¡5ØHo\š¶yšRCEo >]¥ƒ""S çpÝCž—¶*ÇÉ:>r¸ ê»àény^Íɯ‰"ÌðåDgÀð}/\+xÉÂ?øF²÷Xlï£÷'¡½žZ#Šš'±'R—¿¸ù–Lþ&Bk¯Ý:OÙ%Ðß‚M ´ÒÎbR`gÁ ¦ßZK‹1¦Ôð»~V=vnØèö(?®kâR‰†ôÏ^äNu|uÿ)À¡Ùó„îVjdxä†úPy fœÛÕ;³!¿Ò Ñ=&ƒÅgUï¼Ë 9RÑ%ÇêÀ ¤ˆÔœÞ4ŒMàâ‘2Sü±|hK˜ºšt°Us)âõÑ ¥y™DjžTºŒŽ Hâš#Út…ß™CËu[B o·ÙuÀ­iˆyÀä ?þV@”» ÷_Å~–3®Zõð·�dVk:¾ßé¥Db¿ÜŸ4 Y¬ŽÝF` 2X³÷@Í-K:uÙÒÆtóðÿâ§ï¯KÏ'È'´|ˆ�srÀïT}Y\VSmüs¾×Ÿö½%RFJ5'µ�g[Ò ÆvVŒU`}Ç×kÒÀ‘�ݾÅrü¹6:“9ÜŸÊ5# z½:ã/(MÊÛ‰Íó¤”uV¡-B²<•]¯1ûq˜£íKêN¹3 ?OÐõîM…1y3�—º!¹ä8Ñr&q·ÝN5æÑ8¥‹¬0¸’yE)w\†˜~{­)�´ÈàhÕâ“îoDc1KG7›PÛU|Npk{±Éoèå’fš¸+b ˜²Ü?qfÖ ½";È)„£7ÒØ_†mɱ•Þ·/[$¯"cO÷\0aþxrŽ¿§+·b­�>%Cq¸šÎÊÅ“ŒÞØçD)UPQ?ÙöŸ ËÆm#Ý©½º Éû˵ ¹ÁØ ÛÜù@]Ä+ûbû€¾P«#@^ã%(‹`Ò„Ó¶¹\Oî…¨fKÞ»|ðÓE´�šdKxkkéUa•KŒÖGobyÅÂoý·g ¡¬¡ûä…9WEb’ÖÛïÞ¼a,ZAÔžŠûVM[FÆJ]w Þê&sÕX ÈíÍc×ÞH†À`4ùù>4,´�柲ŽÎ^qBË…¹Ø-œÆ>³€=ž¤à|ω3íw••êjÛB6xÅ!îSó–’ÞX…N+n áúŸó8ªÑ*öRõ!jœ€kÒ 5ÝgzB‹?¸Ñ úÅÉ`BâBeòMìò¨ ˜,DU¥P$RÅf�wV•Eÿ|‰l¢’à.­ç µ¾,í¸9Ž«™dŸ·0 Ó�Ìü|Ï㈠~&²mµ[§qÎSWI%‰Ê†c¬@Ъ™ø R½‚ü@óWp†#L<Ž¡½òXím§Å€úâ©ùC(&xqó"Ôš®îZMƒ¾ÊüñŸ—RgpjÙžð2êʄ̓ß:s$’‚Ì}91&…`Ár EÑ Œ`³`Þ`fîT�™¢uÕöF\«Àì‰ÝÿYî ¤Ì‘ ŠÒWîõ£e–瀨޺½KC<©·” £\³`�õsJÖ;cÖ˜ë8€á´Ê‡jŸ2Gdýýy¾U§8°ŠSªý¤žÜ•âñgË·l}¼;ÆÓEŠ“{twY{Ì b÷dH$ßØÌ¾~µ"YÝÒ¢5ýµ?ppBÚU[¿µŸÎdÞº@ƒ¬ žŠR-—›÷ޱ÷¹ÅN>Ø0Ž–Ìá~ûÌÉ{„gEÙ¿{Îv3û;š ûÛ›vûÉ”B¨oò¾0e<#@æ ”ãã™Ã·=ÆñØb¬s›ù¸i$!³§xN«Í¸öª(÷Œ¾¨+§~ ‰ü'S¸#�ôÆDælÆ«¢QE>üš M,.¼MŸ˜(ÚzµDÿ)®Úè;ËÕàw^yØ~«‹è§ +-VK¸I®÷ƒ®ÿe@ÊÔdFŸÃ•rÄ4:Pzµ6�³$MÑæ8×{òiá\Ž\ ÑÀ†?1µWû;“?*¯äzõ‰èF#zLaà¨ömó@Š_Fûaä2?Ìê½D^iÝ»jŠ_e¸]Т¸3#h~£¦4§²½ï2Åš•çþ/·�öê5p=)¸ÙBer„×ßOxNwD®v;‹D”VîŸ.¥²6E$¡);5g½üK…XìJùmѱdû”²9ƒ�˜§rëx´xµÖô�Úñ(Áúß7 øÎ™-M8‚è÷£ÿÇ2/V3μÈÜ¥a0T檖ðÑÕ2�¿)\ƒªHÂÙ,¹7±v­½OaãƒtÛj»�ýâ�Ky\“\@/Ô ,–Ý2¦H‚‚1\�ôûn^¶ÎVóµ iÄ�—Fm¢ÜZüH„1þñ­¡p°™>¨k³­I-¡†YU:FR8#ù‰C¿p¯jíý“qrŒÛ±8ñ ù5þÚ¸Mÿ³ã^e×)¦ÿCñŠZùש¦Æ£.ë@¶„cW½:é4�H¼âô7ÝB~=ÊIØ=ØÖb¥%>�¡b°ÝºR¯C‹5æpA�d(°Ø~‡–•¨Òeò¹ïªW®µ¥ìë²Á5Ÿ…FÐX‹wÒ±¬{Fz Jmyv"Ùo£œè¸Ú) @¡àÁ~�wƒ‹Pn±e€ƒÓíÏ 6yçn—l Þšt¢ Áïº Ùjõš€¾$—4rØ1‹««èBT5$e2rîã™�v�ð²â­pt�Ðî ×oèŽ 8º*Éxáöý d—’¡«˜¾ÝÍØ ^°z|¸ Œ6¢QÎí˜ù¿eɈ~lêR‹�s®›pdeØ€ƒ Ö· �†£JF¨(5DÛñÁ6T|£2Ñ=5°µÂªÞòZ`4‰Ù¬÷hÖEmñëÁ¨=Ýü;„bÌ{%ŽÝ=˜€ˆý9¾ßg†Î·ó/#�ç¤Û%äxäy¡-©è¢Öáölj„ÉÅlJÂFÏ \Ü%žw�&Ø7Þ3lc„É.ÊZ?!ˆš¯†¥ÀuaV”nkŒÍñ»­Áå­¼fþb8ŸíÕ ƒŸŒ8ŠœÑÊô¥JZ£lÕ‡!ÄÓNwá/kÂU†/d^ k_ådE²­ ëkÿrŽ:Çüãª5¾˜�siöNÂÍ¿´u|kÖ´0EÛ;¹#­>Áµæ&R†ú@d#ö‹YߢðÖ\âʹâ†xˆ']ñ´:ÞEˆ� Ûº�:ÙàÕ¢é§Ó=©; –y}É뿚×v32r'ÏPؼžÑ.n2{ö¤Û3 XS•³Pš1à ñTžÞ î­€G2�ÖÅ•Ä6pø [¼ ÉÂ?‘«7;…½®9tÝ7`E”µÀ5‘‘#Ù3>k&XÏ&¹r$v«ÿ±ÑŠ 'û…¿ñqëDþ&¾#Ó� [!…×Çž-<ùi!{CÍŒÆúU�*w4s´ŒC\!3š¨†Q ÍËü®dHì“ Nß½óp Â~Ûçüësgwû§¾ðT(•Ûç‰êp³¼)Z´þô�î_4ð㮳7éñZÍÐt�¤-™Or*¯üËPŽ_×Jø‰B×Z· ýç-e#ƒ2ÿïÕ7æÕq Q2=ŽBMö”$T>ˆ¡›_á„]BKRóaÆq–.µv´ WÚsÔíSixÆXEÒ;*ûáð 8ý¤@Á¹$rØ9ÀÕV%™O% bÆ/+ Ï{ú³æÍ¡’Ö¹°¾ÕpžÂ>1 æŸàt5´ÎGº¯õÃ{ê‰ ËÜ}ÜÀ~ “S�ü}ܦ¿<"]+5UC%?¯2÷�| M2&ì`ÇâÍ»lÊ@ÿ[3=÷¶zaœ¥²Öýt/èij×%&F›k'—@†œu%MŸ‹ï„˜°!`öAœº´é¿8Ƴ6Pg!ÍÊ—Ï(€s1ÛÒÃ.:­ú˜H„‡±!D>†WçBv}"Q>)ŒjIpZ²=š&—³öCÂnº˜ ˜g˜ï<Óü‚\2PÙŒ^–ÍðùTf†á¨È#�N–^9~vÕç|½4¢_\#ñ3Ù]‚-~ª¿Ý¢áPâcŽU‰Ñ"‡$ÛY5…‡l¬’ÞÞìPˆ&$/ÌžÑ^æC`G8yñÛNŒ^ÌŸÀÝðøM‰Ý.h…ƒ+tq»5Hаv¦Û¡Ý½õmß% gy¾ RœIC,uʵ“”’ô O‡�kN_pÄ¢obS3—õ…:3½Ï£®Jç¾~Éy¥3¸eÑÝÉ+ëBaÅÃ÷¬°N/ßÇ9Ã)L–f»9±Q³o€ºª‰”ìá›úFÜâ3þ–JÑM‡–:嶇Þ@£<0³ÄQû`ãS·•…Ø">c †¿[½¼ˆ7Ve0©À [ê‰@& ¢Ç«þ/]ËLaêÁ)D1=¨†á{+B£1tŠÆ2ÒÍ78]Z~áêÆG4~ì,ŸîÜõ§_\´¬Æ`p×üBÉ+4oEW“¾™JCJÞòò$­dMLteÙ¿Iù<Ü^d¢ÿ Š{Ú‡LÛŽË�Ò�ø—.ÃÐ’TÔ×T‚L`|d�äm—,n�;mÞ©eÉ[?^ïœúµ´å›C¥ ?£êóæ9»æâ°a}Õ“XåøCâ3¹TοgÕ 'OÛÔ¼z.>ay`èúð$=$Gúÿ•³%¤ ç©÷ŽD÷ýÕL…v ]ë•d`=ø½Á]eVž“ R«Ør.±è‡j=aê}±”ñŽrU¼3>§'쇔GQ¿v7n/»¶zšçwÝqÑ"ŸB]'Z•ìs˜m˜î-Œ‡(g\OÑ¢7Ú*~ÁWÛ¯z™oâ­xí55”ÅÞ+žœ7Œðï7m™ ë”Üc‡ÖBáÁbœèÔìåÚ ©s­Lß9J$ù€Ö±ÕkžkJ5n@¿gTØ‚©È™ ½´8ÈzkŸ3¢/Q?Ëïïv¡é &õì<‚åÊYä2©óVˆ`ܪ6ùKåï>àÐîo»rXJ^¤»gº€ðä÷úêÅFÂ#`¦º½‰Ë÷˲‡<’�lÄVT ±4 ÌËóù¡O�~µòÊg—à.Âq¸î7å¢íæ-?A’çÖ2Ú†_ ‚Šá ª’0ø÷i‘M$Ý9ýtb™ÃS)]/|Ÿ „¹Ðs¸¬eVÝ÷í—ëjÀGm<š)Ð;|p Oôð×+…ç¨ùü3·ußK,ÀÆâ{¹²²õ·Ñ®af>wuñQžG[ì@Hj•íSÏå¸=ùT±36³)ìA +ø–ïŽÃsâ4-«O­C–OÌl×àúÐ|O{‚ö×úÑ— üƒ†µX^l_z,•agê" rQÇ[¢”9¦’ª(Ï<¶i¤¨,’0¥QÀnË*tO…’ÆtÏ>Òâsaé4É1yL6Œ¬qDã#¶0µ‚Ö«}|êjÊG°M�>èyQ¾�—3 EÌq¯œóàJHäÝq;ƒ‹LÞBa´qÀ�âØªìs7Et0Ž\öDÎíñòR çã9ee›åÐ H5�úkE™wqïJ<›òÑÐ(6»Oö �&�Um“•Ã7Öùóì¿Ù›ÃÕ¦3h :Ϧ[éfåeñxú¥f�*ˬfÏû[�ÞNê×;ŽË׿F# -!êÂÅŒ¤ °·‘2CÄ:R"FÅóõw@"é;€�‰êÒ[U^u¼‹S5~­&&°–D_›^HêƒBDŠýÂI7KªX˜1¯r¾„tµÔ /œ,•åóvÚ3`A›ÃucßD‹E]©ºP j2à¼)ÏN1Âìó£¯iŠS:z#Þ-ÑÚ¡¶yJ¹ÚÌ” õvPî¤fi¾~ öÿ„,³Ø'/b’ô~`¿¹ºz¡\œºN¢•–�9�«�f#D»�E?xdéÁk^_pê~2ä–&0B5ʯ ÜÇ1ãˆð´=¾ª(Áqo¸;ç’ۆй[Ïñ{®c;Äa°ÍS�ÅË"™\±§ ‹ñ Æ_À <ÁØ'Έä%SŽP7åY÷¶ÝÚ�× Rv%L»ä9AO“‘l]ªwïž�ýæ�U'àGb2AØaÎÑ…ùå‘Ý1±ËþëSh>¯gí ˆ¸n« ©°È±Õ�Ê座]«™A¥ÇvÊv+‹¢7¦ûÌ«TƒU¢¹Jh4ElÝ}¹§ý|TØvµošžû´Ô¶îDð‹ˆ)µæÙ˜a]�L­fÉsÿ¢€+WXˈ)ä5#>&y�¤¼f~UaDô黓vnÿò˵Øö™\„Jļ ÓÈ×4Á2ÄBìe06Ò*ºbá°šSežB9FþõÃÜÈ#{È/ì�dT$Ö<àë¨?™()–¼wÃÞ}‹pÍɸÆ7x4íc¨HN:ˆ}ž­âçõ@”SXÙ# owð¹‘zµ8N¡c{r‡A_fmetŠX™¯™Æ \U'EöËåj:^�ºrFdú8\_Ì®%fJ`�Çdý”{R[szÄ¡òšüüeÕ•Œ/þª>½u}K6¥™Ÿ2½žX@}p�ÏcÈå²ùy¸ún^ü&i�Iþ�S_À(ãŠàÍXPyw›}<šíP|âØ� òh½2‘±º­�ž-ÿ QÎ˪Dc²·b #‚åj§[YðGÑn`I„E ФšŽPŠ :ÖU;ëʈ)'°öÜ«¥œÆ«¶ 4YáèßF.¬ †@Ùì$¤e;Þzæ1Ò�|‚P€%¬sGð h Y¦ &òrðj[ ;¨ã. 1tÛs²j¬ÆlíJ› –cÁµá.Šƒc+¸ûÐT»�ÌÍ[é>Êá�]¬t¬î“ã)rÁã�("÷ØmÞÒê|~·¨>XP¯ýT^±5b�oªâýÐÊ]�³V—ŠË©CÄ ‘¼ns �ÈÓ1´OÑLéûÁN^WÙÞí"ô}ÍÊHBW�§—2 ÚÒ^œx¨q´â»•³ît¯ŒP(„�ýu¥�­K�m†5BËÓ1>þµáû1µŠ–€Èyʰ»p5îÅ`hr9»sžµ7äoìpt‹ÜÊdMÓ2q "v‹ÇqiÐAu“ZÆ]ᜋ…3í4}¿UoVIDòó˜ÎBZ³kÓ•ßLL±ðúÅFpˆ}ê v-mÅ�°¾/ßþö14ÈT ˜„0r�cQ$,ÈQG(zKMÐV~ïª Á&t`ü )~—Îò˜ðs "õS²··Ù4{ä1cLmA9‘Cö&yHZœT¡›FAàqP¹>•ªK ÊXöµéÞd- ´àÌfD#’`šZCïgÆ[?‚ÛzOaÑMòŠôf¡ADs`x‘”Þ}¿Ä¶# éßêÚÁ�ÛÙ#{¥j̳\ć|Mã Ó�ç=åejÖH˜Ó¼ÙW”¢‡HS�R®å=p"­5ßîô®ü¶JOƒ;ë\V…åE$FI›¦|b1ûÂÓ’­çÝM ±Œ[+"»¹Q�V+ú�ì¢xe4¼t*AϲÊG”±Ãêûçî_ÛJÙKslS}­–›Kße×BþÚ:lL�®ûàZ¤Ò£÷È„¬½÷r¢�Їò[À~zV&j¼¦­“â¸u¤M€&J§×k8škIwjþ¢©6‡a¿õ�†Ñ^; %A^=¯jm™ê¶™ù0l?5>Š´„޲m¥[3Ä‹î–ÔCë…ÃŽ¾£bh�.úÕP S®U³D�€ )+ÙÁ:Ä; œ_ºå¯9…åïE D,�UK´#ÐêÌåbÞp Öðäk{æ€G!'„÷œªÉR½¸ÆÌM鉫I†•ŸVê?3höØ·+?¨°2ÿDíçvuEÛ`7ú»ÄUü~µ1î(ÀCþ†Ô â1•^ßÁì} ‹�+¦íê1Þ"à(KùqŠQ…Ø„ ¾«zÙÉ�ë0Sèâ‰ç7õ¦BùZœlŸíæLÿ�9ô1¿„ÞJ¥�‘ }„¢?é9Ý"x„Ù&:EÓJ÷  nŠÚ‡ÿùÛ£ÀÐùSý¸&§¡‹ÁùÎo²x˜&zÎãõT Èj€¹œe½o_á�¨ ~^ÝDUˆ Þ^OÊ…—eØùž¿±J ïn@Š™KØÜDsÌaæÛ¶úŸò¤2>[ú3”&²é%ù²#»‡”«ü:ÆÃ¯-&L¿½¥h€îí0ú«Ói@ÆÜ"Ï·z|–БÞ(ÃÖUާ b1ŠpG–eH€pXÆêìùqBxô8Ú¦ãÅ ðÛôÏóstyYN¤putÇ)%@kFaw`ªMû*´õ}ë/[s8'Èߢ5 ñKFþÀ©9<>kDªð¬W¢´ƒm˜D(±,¯�šÌ#?CàdùÑ�±;‰e�±œ? )½W^Aµ:%:í¯£Œ+5X¡­íÙÞêÂgT¦þ=Í8Ï~z£Ž5Zù¶ôtè)øfìÉ.¨\Ö•±kËmý±_23Û}Zméåvi< (¬/a}p+¼2�ÿg$±!îqTe³�~`Þ9+«‰�ù‰" pl¥É¨çªdÔŒ7Ü"oÛ-õ­Ó+†”!,Xë¨ðýBŒÐÜÐÅ�²H-x?så:¹Ö(q´-™35à–¾&î×áýv¦ûæÄHÙ¦4eŽå;"²´urÄ! ä@óUª·Œ¶›vrLCïø+aIÀ1¿õ%/rßÛ|ú¾P¸gì*ùI�©u²Ø�©ÿõŠò�[¤#›þZ’8œº®{æoô)–é¯#A…ð�¤?_&³³†A´–¬èÃ9ó ­ž÷‹³+£±q#õl°…²°†h2+؆àÖ¯ñ‹hÖÊ5g¹„ûü�Ž_…™v®;‚bљɇ#¿U7èÃ;þË.þ0•zÀ$1¿I€QP$¬”¥S3ÂÑ!އj ÷^ræ„J‡q§ú—Ü> ¯‹Ô‡§"ïÌ® `;ÿèÒà9iSTH1!¼¾ë{3V»þO5ù3õ•¥úNønMF¾îNگÚÿM�BN1Ë¥Úòøå9ˆÑ\¬‹@é ©J«kwœWÒ—Ü)âKúû¯ûÕÔ…CÛMsäÍ�3b|5tÃ6|ìCï¼B–û_YU‡\7%¯5B—µ‘²�6¢ !A˜pURIq"´ò˜`ìË¡:ŠuhÆÂÚ÷í)ŠR„Çë ¦Q5Q% �YoD?§üY\Åýö ŒEx � 4Þ˜ò£ÆãLÊg@xï+d³uõï »äÛ’Û z͇à1‡`Bg?~s†“Ƙ8¬µÀ2ÑŠ )ï+ÆW÷ýqó9§e3'`È…&bÂ.®'F$õ}xº±E9é/¼wþÐA½»ñt×ðà ўB2‘‡?jãæ¨�_Ág¶,\&‡¹¸Ñ°Ã†ní<<~~¡{€ÖÇ%pº4NÅíÒ¸,Ó‘úVÜî&Üžºy |b²Þòõª–¡Sñ°®o¬° ú« ÄK$X7ƒcÓ¨ë/fã~ù$Ø+šñ;òOï”á#¹:âo¥ lþ°1"^mÜE¦øºú"I*”7^=¸ƒ¶]ê…{=5Í,X†¨&�Â7'4£i{]ª5 Y�O`g`’XFg·eø� øbåyÍÇ$¢­­BYBŠ9ò†uô:9k›{QøÃ°„Møg݃$ëІHý¯†j´ÀõÍ"– ^N¡åú—Å®*�¥H],?mç)Æîg‚�µ3û@»v å­Ê9–ì Ânë68J�jí]²é—ìTÅwö|¹¡[ÑF^8¸Áß j¢Ü½p®¡XnôÊW�ÄPÛ×,j€zØ=q#ä+š%ÏÞI2 )GÖµ—W»_xŘð“‘ir¿¦±Kœ\TlÜEŒ)çdÅgnm*湇[°Gh.qÝ´ãP´hù-EldJDŒÃ¤ooÍVÕõx†-œ ,ΔŒC«�q± +…šÒʸ[ëÃÑ•–{"ZæÜ¢Hý7…x×û„‘KPÁnq¤jTÕ JŒ»B (•¢å‘ÍPÃ/lË;Â\áUŠ$M»Ï‡eÍúŠúDòF/dH³D,vºµ¥¨OŽÆÒšü£lÞ•L‘.oÊ ·DÌU7›ÌÐÓ2µ{uè±›PðŸØý6ùº_BÏé*Rg†¢½l«(蜖Sõ€+h|ÎÄT{Ö�ÈÄ™G|•.±ˆw¦ rÙ†WT5 �ùG©¼¤¨®½Iב\IŸ Ð<¢cyÓ–¯A‡£rÌ8ƒi,ã‚X*f‚ìòHÝÕ7±uû¤›Ñž¤Ý6ò7Ú"#e¸4Qühö€ôÈ”ñ·¿n¿yÒÚk%€5Ý1äµÿØ®îKåî—Êñ·¤ôyŵö¼ñh°…Б:¶Sb! ݽ ÙŒgðÈÝL#}ó˜v9·5dÆúäÕž~xª»ñÐT°0k&·Ñs­Ô‚‘uŠ·°?:„>Ô¶§CÜHó±£D§-…W=>±â.ê*{1­å$Ç)x(Ÿ­EŽ7pfÈ]�JžDá€zŽ’$¶»Aø…JˆÆ9ër×d'zè³´·�sÌ·Äáï[K—¥~:†)�,ã\Ø®*Y+Þ�©°U Ìí�0;z­¦ìWB•Æqºä„ZÁ“ŽÄ´˜+äÚ;(-³¹ÃîÖ²;#—¼â »IIz:+ÉÔ?` Ç8'ϩ̟L•jˆkóá~éË3Ü"ÄËê=í¬e 9`ƒ’Ì*ŸØ�)¯|€(óVN£.Lvì(ãj®×üÒ‚ðÑ-EœÜY)!:Ë C\ß?Ù»÷T³7<¥‚)ŽJX,𺠟GÛë]«K^e:þG¦a9S*Ïþý)\nq¤Ø+4B\|®ÑW~Q3R!nRoæLÿ(º�þ/år힤¸2Ó ˜@Üêv¸£q—Aù.å¯~•×In“!†ÏŸañ½° 3ÎsáÃTS[ëþkùíU,ª`>°BYҡ܈ÃÀk8$Á˜ôaç|"Ò™˜õ÷’ŸÁn…š›)ZÉ�3 ìi`hêÆ_Úª¶Rsk«/RÖ| Å!‘‚)àf4$<;i¹ï7å×uh[’Àq>®}fž�Ž2Wpÿç¹Jï.ßÿÙüNÃýêȇ*ã¹XqÙUF‰q@ÅÆ¢Sˇ‹?’tþ$ú°²%7š€,|d÷£.ª½�vPäà ø Q4<æØ”ì%�…Õ 2O€pçP?|{öÄ��§Öœ X‘ «=hû2‡1Íñ¾P¸Œ+Øg+yLÞkíYý‰÷ªüžÑ|º¾@Š �YQìöbÂà…AŠghÞ5óû(MûËìóDëú© ŽID-œ€¸bB•V.e„H̱w¿t>s‡nŽJ®Ïàô¿^…ÃÒQ5—ÖN¨ÁI³ÒÔ½¬�M?� ôèk eæ M]�VC¨{DéÂw¿V9[X„ñâ¾­§ªŠ‡lij˜ ‰¼Æñ±pM|S¦Èýñ™¨Ã4lV¿s,ïj - sj·‚¦ÆÝÌ�E_TÞ¶sýЊ)£k<θ‚öƒÊÚ–ÔïVßÈ£H¶Ü,F•§YG­ ¥cùªF;ø‚+¸™0vÄÓñ2±Wp¦ÑjùB©Œ�6Nª–¥CU nã8/ˆÎ³A”9–}ÑZkn~V!PÀE…æùø�V«øþU2A×N"�ÑüÁ·Ü!“e™Q’݄ƌ|ËÿlT•EtÏ2Öy¢07ý�ÓXAþfñŠè„%¿Y‚ò£UÁö-ô ÇŽ sÐ`Ý®ÕÆD"< ø>ÎØIj½ ¹!Ÿ…§)hR_u íQF»ý~õzÙùNŠ­’¼üªFÄ®PÝaâa/ahïDyHÌë™L˜¶j‹vN‰«.ºWôãrš—õ 8f]Êé4|ø@T°…þl_…Obm;¼–2|‰è¶,7O°Ñ ºž\SýÛEB Ù›€ó~xÔ ­¯ª=ÎJR!¸R¡ôÆgS£Ù˜}"Ì ­ÄšrìÈLÇ+à�¬³í‚§�`ÝóKƒ‘Î9t‘~18ºZ:>Âïú²ÚaO( a9ÍAT8ºkþ(Ÿ]aá sÒ›èqvŸ©­5ôæƒV¿,ž¦kƒLŽ�R¬–Ý’+fèe® &.8ƒ–W (Ï–¶€Ç̵$Š;•i ˜ òÑÅs˜†X®s<Ä“ˆäk×Cþ4>á/ ^tç™ãWöwäìn¬‘f~ÿMcìM㚀É‘ìSµøÓ„á›áO+ìù¦1–Èóº¢KQ]…¿˜ZóФÅÂÐ0œÙ¾%0²}ê0 ÐgÕÏLq\-I92Ö�Ä›rËÏßÝAòT˜?Ã2±vÐÕÍ,‘yàÍíòxæJ Mµ)Ì…Xá®,•]M�Ÿd9ô±¸ƒµ´vý-=ï뎧ìo}[*ä‹ü Î{ë–”¢4Qê²Li[>DU²ý,)|Ž{ ÿqdac=™$ÞŒ´å¡™UiókD°]#õÆ %8¦8K›¬3Û(¦ÍYuô9#&rzÈå³>Ÿ[¶‘9÷M_—·‘Ü2+l7nÂÚÑùª�ܺò OqŒ V+sc¢WÆu½{eig¿ˆFSÿQÁi‡£v({ôõ5„”Vf§®uîìäÚ5í8Îú4‚ï@üV¶&�Ò?A­Š]ÏØémÔa IUA»�-UJ<͈ç�ì_†fžÈËÛ3Nƒ}'ˆK¥Æñ¨ÄÁG¸›�)$‡� %óœ´á¡¬ÝQÏnnää œF!s¢r@Å�»¡óÉ"ÿj¢m&{©Ô…OA!¼¹”)Ü=ÕJµ+%0~â¸Eî0; ÛÉ¥±J¸¢c¢ÐÈüä%“_IW­�Æ!§üŒú®¢«L;àǮõæ¥%š¡Z{º×ë�œcë׆טÍä¹…°Ë('ï[ÏQaÛŒ„Š®î'4Ù‚Gr&© æÃŸÈ�˜á¯R-ÞB‰¹Ú{ÒÁÕ‚ìË•dž“È,V‘ñ¯®Q}�3‡ª®j YœG«tæäS`(ÊIbHä÷šÓ 7Ä¡ ‡7KèÕÞý¥'5„c¯OžIÀjÇŒŠ‰Ñ–õ/ǾÑôë \Ú¡Y+ËA>µR£µ§Ï±&Äçï�.�y³¾»T Ç`J"‘ÉÁ‡¾(ÿÑ‘�†¿œÿÄ=º]¦¿+¥‹u§„5Ç ÆedtÍßɪËÍ+„²˜~Mw”Z®wòÐsZÕÎ`6f3EH”<½ìiØ…oXXÝ…²ÉHÞèÜÎÍ»tGPl¤ªIOkšô‡z;ͼÏŽ³ú×n™�›¼ÀÂAe'z`—A‹(•ð.×/â¤$Ëi7³D¸ ï¶´£Äņ‚öôˆ 覙H¨�‚ããõ¬Òv“ Oùö{ql¢6õdnu9˜K5bj@yNÝ(6§ƒaØ3` ¤Ÿ²æÌJ‘Qþ Ò4ÑcIPŠ!ºAh{wZ§|ðNhÒ­õÒ¤óœRmdѹ�È'«j™žc*Éi­6¿Ç…}CA¤.ÆÎ´6^צVã &’ûïrÖ3]r»FéBÏ£Ù̓٠‰Ýàò›ü¤p&"2‚J`6½<ÉÉÝC1xæ+rZ¦ Þ�à}Y0§òrlYsó÷âÒeuž®#FM7)<"UKân_åë©íã ®Z±[žùXŠ@Ø Ó° _ص:�A.ËéùÛA{;5{—¤ 4áÆ"Ó«üu0|j�YwŒÐ0U°D!Z–ŽO‰ Jzp+«J#—up,wfÖæ�³0é[%¦ƒGTJy+Ë×(Kà²ÑæL^#áQêôŽæ&ux@µAÒØÍ`MÇ-­ÙŽ›¡£ÎÉ9Ö`EϪùSøû»Z7"¸'W†ep !䨇�,Õä>ÓŒžÈÓ8Cµ©<¤ÛÞŒilð2º?$çÉ.ÚÅ͘„e¢ŽCäü9Ó£Äû-;l>@Jøû´"®] H¤´ø¸×Þ·Û¤ž‘ÃSL\V�p‡²ºÀíŠä± %Á¢õY¾á”¢ÿâög@óî–ßkP¨®=Ÿ©÷o—uNX¸#ǧ›†,oúž×ñ'Ë+µu.è… v:¢‘þZ™Ƀ4O Z…ÈD¥ûXC„xÿóÒW·üþŠjÙ”Ùò¯OZ@Ñnþ�Dà*b÷8±a_øYÿõ[‡ãà¥Xú¹öN_¹ß<´̇.àM‘Æ+hTeqú–ÜÁŒœ¼²‰¹MUˆ3ŠpØWû ÆÊ>ËÏãJB¸YÇ�#o5™dÄáT¹}óžsmwûIËS“Ò”ˆ°4$/¸²Üõáħ‰°aÒQ8/ÂNÑí7‘)’–‡}K¦‚$‡�›_ïH²¦åFEÉí�‡üï�ÿ+97N ô=ÏŽuVK°,Ǫ_k�¼Áaâ«‹inJiÖ…@�e·:ê÷5U mÞ $ž–àFÿ•fÐMÓ@Ì^s†AÓâuàþJ!þƒÏ4ÕÆY8À%×›ìP[‡HVlO$�ñǡô’ãªS›ºÖ‰¾^›h�ƒD~Ï�°Ë­¾P‹�tú£Ïú„$ð±êŒ[eá>³¼ì»ý«RØE• 2ÆÐü£Ïy6”¿+á aè½ZņïS¥óÐZjÝ çïËn·.ò’Ïò·ojý‚XJíI‚ðñ™(YX_ÛVÉ© m¼lèLy^8q¬q&ª$!ÑžÉÀ@X}Éœ²uÄZÂ\v,štãq||!oCè~[yÇ9·�™ UpGÏkY,øÕ¢”zð:ŸÐÞ}g˜˜{êMd£4?Äìœæ;5eæƒ8L†õçy”Ëm™×ŒÇ¦†ã0Ä ùÏ‚ÔzX�N'3†÷³—{«õµ°Î°£ßƒ˜£,)ƒ¾˜D‰0š‰L/¹ëº¬­ˆcÞ9ô%G:hR¥{P—¨ä­®B+L×± Y¢Gs* ¢9v¤ng½‘QP JµçLå †|f†�©,ýžëÈóºÎà5³6µë!9²�¯¦üÏá›Ê ’²±)Ó¸õÏ‘÷÷±àbñm±¦mn3+›¦0[z©>0úNös–â÷[ 8Ê¢=yÎøê‘4:ßY—Kéã0Wã¨Üc®rÌEÛ±Û^n ÝêÉ@3 › à$bzăütÄI�^”ð9ù†�¸¥ê-¦šÁEïÞß-‰_ý*®gM’!jO{}=�À–b¼uŒwÂÈRÛ*ðØ$æ• ·ÂS¬7/ù†/¼Õ‚1”Ë?Xã­‘‰Ìïj]0@è 2mW(3ú®g•@X޳’ R=¦ 3ñöº¯ôCʘ|wCX‚·`üw‚ÎéÂí£§:š7 Œ)´ÝPäKtæ‡ë÷a–u(/bÑÉèÔŸUcTðFäBžž†ŸbôÇòç0µ[4N$9š" v91¥bw#A7vÍaÿKÞ)!ÃØ÷­1z °„Uÿù©a‡Û‰Àò‘ußeWu…”‡UÞ¿°�'h„ì½)>MutmkÆr¶)! ÀÝFõ8iž-¾%|ß®b,Ǻk×Xæ"=O0ÿýàèÜÄHrï§í(6Æ”r¾æŠ3ÄZ³¦àÀWZtæ�*–ƒšÈÝÆ$ø. wˆÏ5/iÌ9Áà\2k(ÄÅBg¤Õk�Ìë�¹Ï|¤S_”ac”XË•Ö@Ĥ­� a"6ÉSO0ªÝ¶ŒéëûëkiÕ¯í¡ñއòXÕÊÇg�:ˆ^@Ñ)$˜L©�Æ%æKµaEŸˆ×ŸÀâ2°£ïÜü ø1冷•xzI<õ—Êë2…ìSëh †|ž±å|2ô@îLYMÂÑ$F YwQù%ƒ�ÂHÔT…'=м�7rþ’�-sl‡¤c7 3«÷4/ø¢ïØ�1¾üNà£�;KÿÉi0[yžïg0„÷ßÀÒMgØsj¢³ËJ�®�|Á”{IÊá¢ÆHI#<}zÉ£!—à#j“[ÁÒu;]Yùæ©Á5€¡¡�mdgµˆŒN—††Ý-ïëG_[*¥ . 2o|Ó¨ÁøXÞÔoDùÍ­3žèåô?wJªûÈk² ào–=”Èí«` ¶Æå¼†äȶëPmbyg6Á˜¤@p<4±7Å»!CÞn£voH)7þ&KªbLk±í�v KšÔn#H¤÷èê5‰ ¬2ÓíŒÀÑE6œðŠun‘H®º£¸ÿm£H«¾CTÑ"Ž1­¨á‹‘´�Ù è5GèÞ †oøB˜Ü¥f8îd"y‹{ =Äp(ÊÈR‰Býí�;¹öà’ ²J&›YóbNˆÔò�\bü¹W�ëWZõ…±DœÍÏÜÖÿ'1XIhvTW©Þ_…€=X>{^VU%‹.$×w!S'xlFÒ!QÁ9íTb\£©9Ùt‹;iûÕ~£íüoE‘�JMê=Ó\I·x3+!CvU½¹! È�Nõç�€ÅÊ[³6ňPO*[4ߊõvSœ-²­·ÙjsËù’x\Z¸\^Ú}úé÷_áÎV£7FÑÇ«^öz­ù•û½/¹B|–à C±Í»È4¬¿‘ Ÿy‹ Ö ›K†àdÄžS“üM\U9UÐdþšT»c¯öÈ_ BD;>‡þtPg4 ¹ü�1ðÑPÈb;Å¶æ ¯ÑÆ€²ÅpÉj[Sб¼äéb]÷=Ax‡6©¨† Ý ê/ØÉ#YòÈ5±AŒÎ‰†•3-Ö%¡+¸?ß\ÊŸ�ÄÿØ©EHÞûAwò ×ÄC,CË«Y:¦²}QW‹tÿ%U,ÖiÓ‚¬}¬Ä`OZŽrتɋœ‘ùrÑÖ™OùˆH”ü4­px1o›M{%#[FLÛ8»�ä“/?ß²È\-öÓo©\Ò,—ž’]ìªV—?JR>{ét¼‹Ðü€©"‹Çê˜æA ¾¨J{–| Ï´±è(}4¡|Qij*ÚÑÖCH'À$;•]ZècfPéµb[ùAYßÙ �&r/ì®rê*�hz]¤½)+þÛB°Ön!zÜÞ ä¬ª1?ØÒ ßw‰6pÕDÖ¢›¶”ýdò¥© “3¹ô c^€ÛµsZgZW ½`ÊÊ6LÙUóÉÅgÕùÙ ™ÛÁ?4ÉŸb‡ì©? SEÖj0±„MÕ\^¢ Ú2Úš€n°|ÎK<÷͇ús˜¹þø‘Ü^Û¯ÓNš¤wŠçãBNÎ?:–6éßÅNÌû:èàmì¸lø®|¸·„~�{õ»XQr¡�g­ÞD§ÑÊÇ¥�Zà·[Bé=BÑò¢Ó–ßr?¤ ¹N葱ÿh�Î$‰—;±àK3Å9úMìØ¹:}äŽ�|Êî§n5¡_¾;4Tñ‘ï\üŠW`T©t5 *GgDj¼„eÿq@µ¦`Êá¤ìöœ’I,‘Õa4õ `›ʼ6Ò Ö’>êß#mdÌ �8 •X²hع!ú÷ëóuW£ïr[|84Ðð½ŠXéìàßlµJ�ѵ  4Ôï·Ú#hOº·ëúšÔ¿½Hý¤ëu Ü çî¨c!§llñb’1«´7ÒŽ¥ù?eçܦ�î¶§Ë`ÙX"Wß/vô2gÈd/˜û+®È`ÝÈUÂìǯ!'ÜýB¿Xáw ù›ß¿0•"dù�ôYQ�ÃØ~ÍÜM€Kåΰ.¡ÈеÃý\êõo³3é3 EÅ]ªn@A∋Tê˱9¸jíhÆ_ˆ…¥ÒJóºã3Ú<ÿÝÕL©5of>çù¢¸éªŠµC ¡@ ŽæÍ,m#mýÈÎv=ÑóÓe\;JÚ¶L{2M�*íe�ÌÞ÷÷ Ï z,ŽHúdzãgPðAï9܇]Éf{àÂÄ£¡$²þ‘eøÃ¨âzÄFIrφpàB}«ó+h¶R¸T ësi\ôsz¤“é§Ô¶\p´ÛwjFÒ yÜnþ2Î�WWŠ9�*ØŽ^hÙ†ö<}fÐHßÌ)k{Ö�†ÝX/˽ÃŽüáO}²U!¤ãù¼´HD[„z[">˜¢p‘Hå}°„³èJ+{ÒÄû/m0²^#1’Sÿý–~Oæ‹ ûÀûnš„ï¹xÏuùFêÊKüöàQ–a¶5)öžü˜iTœ¼6° w¼ŽQℲfy_¦×Ce1Í»‰•ÎOÃ^è>²¢ñûvž>ÌDhHÝQ¯ûÀ7 õ%¯�« ¹[l|ëÆgìt+ª-E ê:g€Ö´ü*z™5s&Èn[c�)k.ŸÂ{…‘žÍÐ KÀ#‚�U”~“zT }Uòƒûxæ×އ—^±ÆÏÛ‘eÁ÷éh½ h&Yy-±§ÓÉÊhºÃ;f‹[¡ˆfþ0÷YlñC±±}bòÛžÞý>‡ò¥{bÐ ,ð bßUû@óFÄÓ�g�à[T;ÅwaE¬v íl²~6h·ð«ýÆÂbµ^µ«À¹ŽL`u~¯^G{Ê=Mß{l;þö˜·Ù²¹äþ/[Ë" ŸGlÝ&ZLßhê]Më�â2šœ(�®e]ð­ó 8íîO¤îG“êxÌÙ-®S2;§e„k |�Ô},…T¸ê‹îŒ_‘Í`òq'5‹¶z”bô{wh¤Ù%Œèh‹m·C,úôA,â[¯,Ü´ØY wÖžO’`H¥:w€–[ß&¶†$Ы:œP[÷â-/ÊŸ]Q=v3ø¹I…A-dŽ)Ø1Mª¤pxtXHµ­×¨\~±6SÕ¡fa1Ó˜Š¯¨·ès5%}û‚:öªrÛÀÊœù7i8x°·P‘T[Á%jÞßâ™ûøáÇ´ŸIØÌW;©ì ª + ƒ\ƒÐÿDµ<^W±Ç›ö�`äÐÐ[ìYç/pÏ~ªSäXï=Ƨ)ŒðÞíšñÛvˆÛëüD3 /ò¹“ÅÁ3(°®«ôM9c;5j–W5Ž#e¥Í‹T#“P·âé…gªÑDZóòÓ ÊÊêñÛ¹Œê/ÿRýóìcV㘠Mш#xßÖœ˜úÅÔ”ÖWX.TSý³„‚fÞJÅtO[õīƑKͼU{6Ã�ÑòÜ.D®ŽÅJ5vò+kNÛ³HÙ'C«á�^¦þ7P§.Tòö‹œ2\ÿéêéUÝËhôõØÞ‚´¸@¸ñ»?*ÃF2txï½Ççb¬®S${(ªÉ‰œªÄ’0ºæ³4Œi.Ô•…ízÂAW_|8j­›†°âïòܾ;›‹§™h÷§fIóiÒyzóð&ø>øj¹™Çþ穘#a·®àßhaå˜�až0ˆBr¤~=¾õ‘Îâ œjPÎoõI0Ô¹KýùÚ½~ ±û L¡…|Ž}Š–@‚_Ô,²¾dÕüìup:V…z aÖÍc?©Zc„¦õs ògÇ¿áµ^Ó5tã??¼´l=bÛR· öŠ0Sï( �·Æ6Ãí ;‹X»®3YûT:÷�ýßÛ±e^&›s=Õ®™Cè„^lIãê_gyѳÚï¼Öçã†\vìÍ¡Òwò_`ñtMds­ó<ê™w‡W.vù=¡3æ�:-úôÙ˜¯é“j¼‚·_âJê‹8ó¼áÉ©aà‘¸]¹º~`D½î/›‰Vºxbï]Æ»ÎüíéžòÉåÌ.îÖæ“—3ÄK òÓ¡ø#äÒ_8:^ÚY �ÛùXh :¦¤Îç¨Éj<â/ìþ𒜂q�Ã�!øüP­ÝôÜÎô6�5©,q!í×GŒ�+DOhYZX�Y›ñ†NË„:¶¿Â£2«µ¬„Y/Äg=‡:ÛäS»P›(¿ýÃ4½Ó¾‹1¢T¨¹\KÏJaöAÁ´WPCy>B~9^áUÉâÊ¡_/b›z(7Æ{Üþ¯ùÁs;æîHMã†BŒî±æª#�|iuîD+é—+’+àÅ�*ùö[7ø¯|¼ÇôÛ¹�•�A_Ž!ùBaÏÆ<ÙãMaë…òpB2—ªåîv paÌüÙ¹#Z­X¡{ÕÁ>óÈYW&ÚÊæêmõ©GEÀûd·kué©‘óƒõ^ªkÇU±û„‚oÆOÖÕŠ®³¯Š^ÌÓ.ýÀz™¥ÏÛÅ•Y’˜<Ñ VëúŽú;ñJõÔøšÛ-|/É3]ŽÄ—»kc³¾êÛ �£ók¤oP£»¶“, ‹c|Üâ϶Šª@7lÔ4äÛ ø xeºÓßÉŒ˜Õ£{ÙýMÕ•Ö2&•ôJ% ÍûÞÌo^x8ÛŽ="ÓXTv…ùCÛ²QYø¬Ë«�jf–c¾c(¸A«Â×'"÷µzëÄ» ¶kèž °®Œ³;_|)¦ë‹°dù okó‹ƒÒerÊ»P×%äQÛDÑs²ãoã÷(æ_Üé*�ªe'¤¡ÖâÁ´‡Ù5Rõ©;îî�Vá¸åDELÐÖ¼ º=¸=pÃÞD�k £§/�Þ”âöJˆ —Ûäm‰ºÉÐ`Dn†{?²YÓ©GžM�”þ;Ò'£úþ•<çØÖúVƒr Ë�Ek+â&;»zYž¬–Åå²6œ…4Ð;lj¹yÆ<¡‘a5ÃÏ_yn,o³td…áàðÔ‡aæìÞ'ø›À`ŽTÿÚ9þMQƒ¿èU°©˜ÊtsƒÝyñðžûgôÎø³ û<˜»Û”µíœ±Pu )‡GãdUû#. OXè?t9UÓƒ…7<åÒ¹®·²ÿ9ãw ª®雜,?½úŽ[»Y[‘¸ñ£‹=£.ÃBJ�’ô$µ+†¡HűªìGÏêOµžÀ=–n(ü´]!slÊOÒYtûŒ€}†ôÞ¢ÁZ�:—ñÐ’² �y— Öܨً¼2ã»pvÈ�æöYÏ$HJõµdøF�åxâWœVÌL‘1yÏRžf- çÛ;¦ˆÑ0‹'¤Ìo­*EY3ÇÌå„v ô{ë6êho•,j{»/˜a8ìמ-()µ(¡;P†ô²Dø�·¿=Á8·%Ïèj³»ûs-ìÏt%ÎÂÑK½wKXöÇÙø 8ò*�–äÑ6ïmÞ.Ç=€›'P«µžK± 7‰÷:”L†Qnƒ>¨EœXxDY@M¦€0œ+õ�5mz̺=¯·"ºSÖm¤¡†ok2Û,/rHÝ1*†vže�½›ð4zrxhh~°X6»…·=&FÜ›H_…rè“$* Ù‘îk^¡!Û|s9YÖivAH3?UÙ\ÃuhpÝöú cÝP¨°Ö°{(ÑÈs9Cò(( û[`Óß-« Êã{�­7‘b?—RêÕh0YÔIhéÄnXùšWŸÆí{èξîŽÔÊxF¨#Ù….èÕ«´)‘ã7ƒ+X¿ô„9Òùt�"c™�`‹ÎIJ5ýFE¶NëQTTZtÝ fc.¬Üƒ 7¥Lx®Ñ�F§o]äP}¿ÙÝœv80jºà"\|@ªõÍ,¢ŒšXO4<1zŽ2š—Î*¨R¬ªåÔ©ô¨òBË­¹Í׎»n.Ë$Àed‚-eSü ·WE7Šp˜•îkYêõ0Õ½ "eôŠsFØW=r=ÜKÂv$i~0aªWIž­Ú‹6·~ˆÇjö YnÑ­L™òé=0“­ˆœ'ÎâÙ\ëF­ñG*t±¬®dl z …6¸uJ˜-Ë « £,“¥.Π¨¯RÀb<ñ»Ïé!ê!¼€a¡3žæÞÚ‹ ÖNÞ¸äÎ÷î—¦sh²ìñýÂÉ +¸Ç¤¼pbå#l¨¶&Ðì;õFvÑ2ø&ÕÚúØ?ËÕ¿uʃóÖzê½—âÒí´žW_w×P°öq/„ÜŒýï ;«Eü<…{’Þ>�  ›MÏ3çœÚag€‡;)O‚Z’¥Ò›,¢›/{Ž“ž|È6ƒÉ$xÌVN°·:&ËJSú㮃A+-¶¨›z0ët­/Ü 3îI!�{1Á’С$`l�F°bR'Œ‡[äs­[N‡Eòõ 9 ¬Ú wg…áû’¿P÷!¿u[¤„OÃw€i$Ó��´²ù…s¿µ°õ_j!Æ|p_£ºŠE²47«Çªô%®ÿcO›¶KÑ2RUx,5ÅÿäbçŠ §'_"‘O‰Nl6èãp.â¿ÀÌë¦�zö^”è?Ø›–k‚ßÀ|æÁãg‹©tA�æ¥D\æ5Ôä/qÂ~^ð1ºü�¹- Å „qŠ„ö’ÏÒ}û‹Tü B¹/Œaö­GçUi*ïÃ&œû;ì Œ_i×é¾Ä$d Ôã±ñâ•!²$ÀÑkƘ;=âõà†²À+(jóo>åo\ųٲšÔ¾�Aö¥�% äæ·õGl¿�-ýEÚò;ô%Øvš«R k•è;¾HLª‰8M™†ç*úa»:=ò�„´‡”�ˆËLA?£r{¿Œhk}Àh€ÚM ¡”œ °Áº¹BòÌç³êë i/S†�g¤ÃÄŸŸ #µàù°+DÚHÊaê9ëÞjùˆ§°³¨'˶ÖáQ.‚5ƒÇ¹)¼œ>¬d¡z—æ&µÄ€|Óÿ&VͶåSõŒœv~¡®üž$Òt§ÇEF�ŒýJaˆV¡°üÏg³�ÞæÀ¬ÝKùyúr…½•Þ©ÃåȺÁríïU&}sŠ'Xp²€�~z‰›*ã[ 9ý[3YW€51¦j‹âu$âGNÉÆÖ$ÌŠBE‘ÒGçÃcD¡Þ8g¡lÙ¼øM3½„>B…üÒ!(`‘=òŒU^[OûMå£z d5Ë,ÔË3¼™!�ÐK¶@6]2€² �6×�w‡ë¦?`©è¸\è>-ˆ¾Yq)÷ˆ*öI 7S†®"Ÿ¶1¥µÎ³pœF‚5üaþ�Xìr®+¥ ±Þ?F%¶ï…{dP�6{5ÛÍ��Ì„iîPù+½øoÁ{·ZÐlð×HûLSšãø avåÏ~“4çm{iÛ?Ê’GÏmUì¸0.–­u9¦Uñ(ò²©sœCš-G�Ã{%,YWYÉq_:&ïØ§u’ìP®˜IгÆàµªÃ0[å‰g;�«¦`vÀ�[ÖŸ� LK«ãµgEl¾ž|�J%yZgèéëO‚ãS°#G_cP0gŠíôI�ÖöØu…–ÏÃ]cêH�hsmµ°“ ƒì¡,n(¨ ¹ßã’�o œ”±W}0ÂÙ€¹e^‚yö¶ii?Æ'\·$™ ¨4^^nüåÈ#ÖÏœ¹jÊ/qÝp~0W?)Ù’b‰¸[óöéT'b++ˆæJë«Í”eÂ8aŽÆ1‚èzØQ¨®¶Pì¹=&¨êã‘óÎ}Ži#VonèçŒàhjßA¤¯‹¬%_ZY0¦1‹MÆZWLæÜ"6ŒL¦zb�>'âþ—4iÈF3:ªðl‰jæ{ràgs”²�Cá ¦Í‘Zô=Õç¥3MâwÖ´ž]¹‚É�°Ú: gO ºYà‚®�)cÞÇÏÍ3;\F?à?Ú¬[Þ˜�0¯vËoVõM�*ž\5dÅ"[µ™r�lµ~ƒãNµuÂÇÉYU+(pÄô¦p‡3ºž÷£SâFYf,§±™–²� ùõJäbÈð¸o¡Ó–;Ä *ñsš¼?‰àωu…F3æùbæ¹]îMiž;o„ÙuhÍï ¿¥®¿lFÑö§x®<¹l»Œ$šŠ{Ç 5rØsl‚ÔbåШ «�èÉš–¨I;iaMï0pPJL\DéèeØ&h›*Öÿ„[p¼ðš|pðÜÁGUü Ÿå¿Í-°³îVÞ^{ªð؆À>¦D” ³êá íÊ{È8²yVû;€üi´ã>m ÑÎm~£».ºì§Vi«ž÷{>ß«bï]¿�ìNþég`øn•ùëÝ {ggNøb#é,d‚ü¥ÁWA ÆGP;ÖóÓ"¸·…iç[-(Í]Û—ùAÌ¡ 0F9�ˆR¤ü8&ÔBŒ•òVÏpqWµ¾»™]KüFx¥Ú''B ²+¢pœ|)¯a<&×3à‘tÚ8ø¥0"–4D+ÈÃÄz0Ñ0ÚdAˆ÷ÁMÒm.�|9ÄÆ÷¶WŸÑŒô›Ëí s=6J|J‰ñÓ,I2�< ¶e� ‡¾ªê(dÞŸV¾¹.ª¢%2‹´ŽÁ_Õ^S£~‚=‹Å,á74ˆVö'1dGB¤�1‡±èå¬ÅámqG‰ºÂ„óŒ¯?ø&‚Ð ZZD ,­ëzÉw 9ù]vÜRÜcìÜOî/‡•%FZÿY`Ä\×ô;´¿A1:´µ¦bþ×�F~x¬ }Ï |Xœ;W4›(ä…C}ó…h<ÁeaB8¾�dÔ‚õàXë‘c¤ii}:’xDßùåD�Ö{ˆÀE)©g×ÑbåUšzÿ‰Lõ˜8¢ÂˆU%ëÌqúâ,ò™ùµÜH¾­E YíºgÜÿþ-^Z´ÇWÂ2®hŵ&Šªás©,‰ªâ¤Ýö¦�sma`¢–ÿR§Žò}14{€l�Îf’:ydâ4ûñ#½ï£o:°œÅQ*�ð'“ÍfÔËw¶N$ŸžFwNP1Ì�â³¼s�'Á ¼±bÀÅæâùHÇ– º;6ŒiUoaÊÇ›¥„!²Z‡z²yE£ø!#ßq¾ÈcŒH¼óI.ð\‹ƒÌÁ›jGæšS,}¯cz˜}WÆÅaþÉ€[$ì„æ¯¯’ø§¦ƒPwOãcÉ�Ø›Jv×S@ }Ìÿ§‚Ï•e.Uh¡©éÛðâìºÃs€=!#ƒKê%NDúçbƒ³ŠT}ù¾ÌÛì¢<Åæø?6nþ±g¶¹ýÏ{¨Iö>ò.šSêy©& ’¥}äFUηµ_a‹—x™n%�L‚~¶è¯$u€O¨ þ~H‹¯ :óD�±£^Bï°ˆ1¢ï{2øþÖ•ÞMèYénÛ¿€ ´"ëîE$Ö”Á´cŠ–÷áì߈[`ì~²Ï…¬§Gt¤ ñ[¶l‹u…Å dÝ-¡4§>ÁéÏz�ïá©…�xV¢y© �ž„”–ÚÀMRö$ÌoÒØg-AõšÆ~|hL²&—‹“¤5lÞ¡ A§Fî|÷Àá^g`\EfÂKÝ‹ #3aìȹ¸äC‘H‹NîãXœ›œµÌœúÓ Æ8∳۰B­*´ö]0^…<ÙïÁˆÓÝ GîÎ6NÇË…"Z*EÔ½F2˜¸�ù@�G£ª?£n,øE 阌b_1XîTŽ€ìÖæàqëS5_  ÷ø µˆ±Q]ŸýÊvnB;km_p“š@—ÍJ ̾˜Ôuàr¢rÇK&‹Áegh›*„Ôr“ô܃¢€­¹ú£�]ØqeßG>×Ð~N‰=9|2T&èÚi)ZMVžÓã™<ÂP俤d5¹[ÇsôeyM3æëÌ}±¿>�¾œ?¼ø²y¡>xh¬2GeàBÇ&1vPp`Ç ‡1ûâj{e‚@Lt b yñ€ H¯ãðY±Åö÷@'„ŠŽ ,ÎUÒÍÉ´‡C±óÏ–¡÷܇3-æq�Ð5õ(t6B­œrRi$:»yÇw>Dñ7ÊIÏ1.pclXŒwsENŒ�> ›~ð/ú1B>ÀbÆNûîsª��mŸ!þH—² Hl¹z4ßMÖñ/ÍDdÆ¥úÄEìŸîa´2Ÿƒó¥Bã(¥–�ÁAž« Š#=¨s)Ì'(•¼~=+aÕZ`"›·Ž¢Ë‚Ùñž ‚MR n,ha©ýŽW»…÷‰®m�•5�K>-ÑÊšýÌ¿ô[o¿Ç7�±§ }I‘ÞG~ÏœÞÔºéQ5JeBuáÛÀôô$¡èSΤôÕÐ@Tà6Fêëù]Ö\÷Ô¬]ÞÐÅAÎl‚Ÿ›ß�(å F(–lÁÔÇ˱ d̾�ƒt~ÎN8-ã€c@þö‡$ã1—¨õUà’ÚÙöt¾L³®A¾1g0AAuDÕ‹I‘sPÙå67ØÁ á®Týºg…6;ªq‚ügÃfüY3 ÐÝÝ™ûæcªF‘äͦÝ~PtÓŽ§#NK.ÓöÈÂ$´›b!§ytþjˆÂ^\²§èQ!s ‘µËÏ–oy?â{j°.àÌ18ݵëpV— ±Äÿ‹ðvІ Â4�mÛ¶mÛ¶mÛ¶mÛ¶mû;¶í³ÿîÌìÅd'ÛI'}ñV=©ª¤óVw®åV¡÷ù"ó}Ki’¢/6‹™œÖÃð(eäŸ"k±'½fÂ@ɪ��D7Ø€¨·”–gÈ7‚ú0”0·¡*(È· s´ÕÚ€ÎH�Xðs:Å‚Ÿ\>â*l„`JÊ•�Hæó&1®ùEºã/¡™aÿê¹èFÛdÝzÂ-_äDM«#û½ƒ~ ŒÆÊ.îŸ+ÛØ÷?_ìu…kÌpHÇd/psÜÀ˜ž·[©éhéw¡z“(1=zÊÄÜtáˆ^“¯6wƒãX"Ž´‰ÀÆ:âšR�Úëkúp£iÚ5 ä®@tC@·憃o-„¸÷ü¶±&Ý�Öp#3¹a`ÝC¡8ã>êß�|;uv…‘¬¡l» àr0»õŸ F9A¹|aæÃf�Æ_™³ -ñÚ:ccbü2ÁÐÌLâ. .¦éNÉÁƒ|Ü!d4T³ U~ÞÆ‰û3Ž×ƒ–‡H¤h¼�ÍyS{gœµØ`š5ÒDðÂË> ®Ì4�Ì@‡MÓKÑX¸YÛªëƒHêêî9ýáAà«tÛGÝvµ³ç†Es “о˜·”ÃÐø+?ˆ‘"ÝC0z¢¦(‡GEÚ�ìg ØÌE {‹ÉX@J¦S¯4ƒ– pZ‰ôýRWéêèÈÿÂ�°»åÄÛ5Q$ç2å#® ôj!ëQ.�™NwsÕy”sûF­ã¾c=a¥ `N¤ßzí4Açxf½Ì®S¡ Ù…ÈõNæèˆƒJɸΩŠ0ÚÖ[äž³ár5càõ(⢕)l?B©Ö¢÷ôŸ´ |ÎÄgîŠÿaa� -¬›ü€,«H=ôÞêP9•·A ¬/fïƒë€72èæ&U´8[nûný¶/ܱ˜È¬†pzEŸkîJcöM‡RX«Xz¦,cgU|¼U®àPþ1Ñ$Ì{ö`®…½ê€´H«M)O·úb8ÔÈîý $Uýñ†êæj»=ÑͺÄ)èÌJ‘b‡Ç¦P~Cêå9ÓÁ­ú‘_ôÛv7f4&í.ê�Ö¯ÓeµÜJ�éD^Îú”N$#çËXBÇ»k-”÷i½NÙ†ûQ¹¼ÇŒ»oßÞÞˆ ü\N“€â£2zõØW\k{vÉ)µ(%–=Ó Y!2U®ó}eòVW¶ÿ749)" 7Û[ö—[ýyѳ °ñž~@÷õ™‹=H×â„5”6[‰2a¦ó^eñL´�5x,�)…žù]¤]ÌóžoQ±6.m3’H÷éR=?½ELò ,~Q/êcØY‰úÅ]hš4©+9"³ã{S®ñ<°ìî CØñT›VGy+Uf”š‡òA�}€°I"WÔ^yî¿´>Ã%J´·ôª9/—Üc„£ƒåéêõ <�Á)N¨_Heêý Mæó«3Ë~ïFXÐ{à†×0Ñ|;UššÁ|Bñœ³J ûaµ­ŒM`0-»ê‡Yt‡l£¾kSÃö‚º�þžªÛùð“§C!Š>™æ\þ¯…GRéï¢Õ0—X­˜ôÿCáÆZÊã¶ÁR…'½$Ö²Sº^·ÔÊÔ*Ÿ@àíêô’…ws€øÎ_»ÊJ³ßyô€hs„B5»¶Fè6Ô{Ÿë=P$/-M—ÐrIú4?l±ñ$R¿Ør÷|Ó ±X.ÿU��3™ÏFc¢â5wW!P©äUÑ% u4ºbBOâß©!d¬×(0�3ÂÅëq5½WÅæã‚þ[6lêè[`ާ•R�¥x–Õ~�E5MgûšÌÍüÒ)C±@–6v]É‹Õj»ÊâÌ ëŠk¡‚•=[‘+¦ ½$fšŒ ·äµÌJ¥g®„sËË�,� l“ª‰&ìM¿ á±éO!Ú?d6“Ýó`jkmv«,Uk�­ëâ¥>·Uf ÆNmUy�¦7>†Â§ƒà¡d)€2\®Uj@jZÀîO"Ñî"ß|l�•ž³§^)¬{¸gÓŠ?iô\§ œã·w—x†÷J©÷žvù�óæ<☌CR…ƒïøIõ°3øø§]nu Ð’ºÈ,žS<ÍHy­j0Aë»êÚ»2 ô=SÛ£Æ75Y›Kšæî´åÅàrq5Gu�«:ù¸©_­µ2Ùý–=ìÎ%aW£¢qœ§xßÐý&eâÉY)- .%µÃ£šÊ*õPÐ3oÀñ{†—Î�tH°—"µ�Ö€1áâžNs4/L�45Pšýlä¶¢ÍÔ=Õýê÷½ÏHiè�KȤ˜ÆÊìñ1¢¬s%.‚©úöµõp´ÕX5uIÒlÄ�^¯�*¸«^þ!{$F¯áµq‹µ»§ð^%Nqé]7 ;Õâü7Ê^Ó׳þ¢põ¸{¹aÊ�¹�•aüX;0ËþØEIŠHý�À“©ÍT§ع˜š?‡E—½´ÇnӀȠª; \4éKJ¯R«ÝrPO§�>Ñ}.ì�ñ_Jðš·T? Ô³œ…+‡DV3"%‘ÌÎÆÙѽT�÷ÐÚÃöF³ÀÊ©~âͧäCˆ2Þ°’K¿æâ0_À¯yÝ\ʳK$Ê®h¼Ù"ì±U‘tìçˆ(Ból¨¦é]Í}û?�ù¾xöÛ0Þõ÷6cŸr�dùà'ÕchÇ"͹n… '‡¬ªºZÔ4ý±³´w¦M V…,"v'XDù/u�sN§®�qq5y¡®S¦šÁv/$Ï%@ýÜT _l‘-Õ�¿ªîö€áBŸSJËÈÇe2.ï�´h�%ë =Ý«à/n:ñkx4€þÃÄÇû‡ŠÃ^Lªd ú4°‚eþƒy4í®*[…[³¹A×gœ¼,? œ– þIW¿=BB[7Ϥ¾ggÞù­ #ÿø"ømí‚@vå¾Î­Ð(=Œžr ØäGƒDæÞ³ pŒziußÅ!è›7Ã|¡6Z �pe3>‡ÏFº•2g¢H�Y <¥‰ 7ÂkEn7[£í1Îê=‹`”Ç?Ëž×l�›Ãûö„<˜1âçKÚµìà‰‰©�p ZÁDY+Æ<É×”o1žÐÄݵ¿:88Ù ü�n…âçWVuÄõ,/ÐNû ýB"G8.N‰-un\Õ £ïZ2`ƒ�ç˜,Ûgi-ŒàÔ–ÉùrÛ+ŒwV÷(‰CÈÉ\X ,Î×é_’òÌ SÚHóØ.S +­™þò²Êã¾÷ñ<-Y«ˆD$'wr-gÉáô†¦þ‘}uÍOõR§WRzoTíþ. .Åiä�ôY.Z¸yFÚ–u©‰Z{3'��'¶Ä¶_é¡¢ ­`ê ú¦êHn£‘â4`»`ö>#í¢] å‚ÿµàIŸKHòxl^ê5¹,¬,Ëô‹ô®žöF±'ªk£^;ÙÞF˜#â‹�0$ybþ¿ÅÓ¹óÔT î8qТ.#êVÅ©2‡Ëì-üðk·ßÇ”õaÔ1Rú#ãøš¥ár¦°=ü¡UbÝ›M/=ìâ¼ÃT:–ªË¹àC:ü1!>ûªµÚ‡iú§aɹ¨©¥^`˜ÐIAƒ#®•A¬@èD¥5«µ]´(˜@ø×ùÒ™W&§ây¾ß½œ²©@žnì‰5åREÈõÏNNÔyñV>Ь¿”Âà.žÜñ—Pñàsì%q‰ŒJ³fá3»œëaª\?´fAWã0bƒ1�±TݘS¦Uõm)FsP©)Z8¤þGȼ~€z>+~µ»Îr5Z´Ìfdõ6�;³Í`u¨ü$j˜ >6$ªé Zï• Šd™K‚Õ#3)jç`=ái�†O©ínÿ�=Î²ËÆBGbø=^ä���aŸ*î`˜Ì>7¯fã¨ãg†Ú9ìÉ–²x«¾£p¢ µŽÑJ¬]¢Ûu.»þÛ/Éž;2ô¨aŸÌÙXzå–ͤ¹*ŒÁOûBžÓ 0´ÍzKÔ ŸU8µÌ9RŽÍ¾éll˜Óî€G¥ü‡ø„&ÊåÓ0‚ÉÙLEOF°ùJ˜-4Azë5'îëPS³oGýž]’Ó-¤ö|(séeÜ>¸9)Õy±\Y9^‰6¼®>-cš½VùÞ“ƒ°4~5-Â4A�>Êö-ö€�r´` mg¥E¶—¬�ÅK šz‡§Øö"ãœ=qCØ¥PÏŸ¡Yʲ5E›�G¦âÕÒW"_S# aë$âòGÏÉSÚñ†îó ôc›a¦j»+&¿D ÔˆsûoÄ;©ìÙ¿µµë«ÞmI”š×ðLa9«Dò`ö˜+¾ÑÀ_é$§ i~�ů¥A-'Q0÷jÐŒÁ›Ÿ!Ý©�ªÆ¡?¯´ƒŠž ¯ÅT©3Zµˆ8a-“³ã5C³ØÜ§îU°/ž�K³¡E&ø‚¤‡x9'3é´ù¶“Ì­DùŒõøBf˜ÎDvåË:L�‚?üK[<ëŠð½GÃ|ü¦Tœe“½0YzV?a^ðÙâq0ÙN…BÑšU¬BõXY­ÃÐk+~ô†<$>YìP[ÞÇ‘/‰HFkûÙ]e%m¬uá7‘Q¼›N5‰h±aVYiV3� ”Ì¡,‹­‘‹e›UHCTßÚ)R ô°Ð9TK‡…n¤[mSsw³-C O‚tu{„71Ix°Vi&Yžlna ¥ ê(‚� Œ¥¿ý6¶`ÛЕöó `V¦rÊDêÊ2=®òe92Loðáî*Ì6·ÖG2ç l‘pßl5ž„ˆé„…ø Â…œYûÔ‹ZðßèÄìºåEÖïxÂ%‘úp’ D‰�36íÑFKiZµDõªzÓÎãþ2Ñ#£?äû?#‚‹’�z¾ãcLÄQ gãdC¤o­³]šª.'Ç.gñ ÀÞ„¿QJ lÙÉM Ô÷ëDR9)[ÿ”Þ¸ñwÚ…‡XkJ_«““cJ8ÆG†$¦ª�(‹V“¹\/d^I]0_mÕµXŠóÐjDÿ°’˜‰aMP! u ÿ>yán ýa;–£!ßóåí/Û|u�:s®ÜGa”@ÄÞÍE­V�©ËU¼ú/x”‹¾x†O…ÛšóÞzbËW€™R”�ï8TˆJæ·ÒI‹!pòEFUìAÖ®úx=�3J+A†r삃e“ê_íPÎVïKp…5__]—^hq•±YDþŒMoIÚízƒ{É®G{z¢3à&©PæÿQ<¢C±Lh�‘,i&"ðÈüÎæk|UèÇ›€Çgz�uuHõíÇž,¨„8êbósÖÚ¡½Ù“•’*¤³hžúEí¦ ýسõÖEЗ¼ýSé_ìkŽiçòÌ’’°`éé’7ìßJèÕóžG»ŸTÛ}€Î¦†'öu£� ²á«x¤�¬ÀîŒ5ó08ìy�«ô¼ …Ô¯.YtMƒo�c+¯g¡Õ÷ØÞÒǬ“tK<`]CHir'öüøúDLB8ƒš&:+Ïôó4xRNkœ…ÆRZ¼8ˆg–qê5Õ7bÛ€KÎÏɃ�çlpœ Ê1g×·Nýçóφ‡¨ê�Cþ|îÈ•4¤´E`‰¼=Y$¦7Â4c1{Z,ò#ÓÀ"_ß7²70zãß$IYÿž¥Ë‚8̆‚]Þsã8Ê{a ½v‘®„À;ÅaÃóÉÞìs"—1ö‚i‹wîÏQÚü‹üTtXc!ÐrWc抷A|ÍS¤R£ !4ÖÑdE¡K§•>"{ùB ³Ù9Ä«j=*YUkÝÞ5LnwåU5rOç}å”ÏI[ˆÊG!=ÓœóŠ ¿‹'¼³îåT)p¥ò EŒ1f8Á€ÑíX êsÜ7�¬ÿ�’ö‘†$c¸pFÿb=L&7]ýÍš9Ê"ÏX'(QR"S/k¡Ê­«>gÌk¼³À.óåæOòž+~‚zñ6�–r}v¥‚¹ÛžæW¦3“�…P`ƒæFºŽXi²�èÆHÀ9Ä…z Ao�‚î4Õ—I.¤ÿÖ?}@(ǸXŸˆœ4‡#¾Hû›þÎÌ.GÄ»©³å~ &ÙííRÆ¡‚]ÍØ»ésÚãgVÜJC—!új›)Û©‰F5²}©År á¹É¶c�@dì3P‡vào´òïO{É>QÙ…ç!­þªË³×ÌCãP·”ís¸W1VÕÔf=,xE‘×Z��þÖ ‡g(�¼iøÐ8÷q¥*nÄ‘e'Gº¦†”5‹Œnµ%v"ýdLHÛjÖP.‹„%o÷—}Ut U¬J×fÚoèQ€ëĦ9ºHÉ@aÑmÎaË>оP`…fw+ňÔ?y¥ä} ·'wVΧr°?ÛBu Ó_»Çð¯îUJ‘èÃe~5òmJ€%)?ÛøËê•ò<.à†àI�‰É0¶Ü&éJmÊt¶7V±PP¼oTAÞþvü•׺ó*˜ŒÁMº¢k òŠßëƒÈRñZí¼�‚Ñ"Ý;*•ß@í8±wv¡�Ç^̪]´Åè±æœ#e õ%q&‚0€î†zz“}œ-??¨øŒ0™£ÌLæi2P0 Åš¾zßFÁ„©14§i:[ÁÕÁ¶·°É“Tꥉ<ì‚�Ðtµñ’‡$ôemNÙ³PzHÉkbY;4Ðu3”hX`œ´D6A'Ø< 9_ýº©cÀs�ÅQ3iËH�7�Gš&H$SHqA/Ü;©É§K#…­¼É&°ëŠ'þ Ç=]'ËšLŠ·D.ßÍ7T¾—“á"´@!+ÑW“Æñ7°È2‹?Àã\åD«}�_õ»`—–û¿W¦³¿·.) °ŽºN /Åëâé_­Fx†sYÌœ ~h s|€‹ßFOÖC”,ŽŸÄ5Aì„Úò‰‡L†Äø±²¢ö¡'ÌÙ…!©Ý›9û"Ù¼9HÒ¥eƒÂ^ˆ`ïÚç#óT ¬Ø „«mñNˆw_ƒbݲ²+÷/ÈŽeÓ½~fWfµõò¶Z=64qÆO‡ŒØü,¹Qábñ-î!H[Ö3úûù¤{í9‚çP›Ø»4Zþlf<ƒ°MDsôÈUL!c H¨SלÝ}áÁñ8¬äÞO/Ý9[1ZÖ)ªk³a™ÚtÇ!òÞ»W‹[:7€ñÇB?÷‚©ÍÖP­u¨¤‘ÜíÕ�ü¿ÞTí_Ÿv",j·SóŽY &(²ÚÅÌœ5<Ù , ¨E^Êhoxk¯h'_Üv¯£Mwƒi¯0#Ÿê²¾历{¦k)2ñ�ª|··-€ òÃyeİ_ÛÐV�Ã8ˆH¢dž7HÊÝ/Ϲ&cö%TÍXó*O‚1ŒªW�³ä¾“Ž[ Èçã%¨‰³Nø×ÂÝN”ýçûÉ+,ëaºˆ×¼Žç˜)­25ƒÏr9‚u?àí,º“ Ge ­ÄðG¿S—-°svŸ. ÉºE½-m2už„ôNœÚ5s;ØtpA>l˯€ls%íuŸˆÇ^Ò¿}UÃàYÈ]@�Ôâ€wÌ{áÏÑ À¡Bg’�òÂ¥ÅôbSþWQË™aÿ2§„ ™*0bK-þíg]ÛÀàyÔ%Ãx!CVÄ­‡ìjq<+MHÔæŠ§ Æ9¸8I4s0ìRb4u¶q2Ѩ‘œ´m[^gt†Î;2Fßtë÷þž! ,Ë@Ú¶…J WË &‚W9@³oÕžãÈkH6ÙâïÞ¹ô�Dpqu˜7ÒÍRÕctžY£ôj"§aú©N—oèGïäþ˜ +0Ÿäò,öw㌕Ï1}²Ü”®F9Þÿàí™pÀV߇®Æäдÿ¥�¼q•ìeÏß,¢Òhű…{¼[›ap@#„µ+îxˆþÈ¿ÚS 9Xå�o†Z‹4ÛõzÊh§pƒÔa’iƒ¸ì„5áö>pVSLãþîzU&˜2î}%/Þ¼ BkÅ>;άÁz¢ $�„Á®4²�Qq·MÜò×€š—Âjó'ßSTE—èÂÑ×Ç£DQíIØùNúö–®S6Ž )*1(H«èü�ƒt¥èÄ€¤Ü#&‡ÆkP³$_´l¸ß¯ä¦ùŸž€‰Ž@ÖÐÒîÿÖóüÏ8Àÿn}¨–àGŽvJçuóȲ„ÆÿÊð?5jý®B>HÆB.÷:qNÀÿ§ÜJ¦ÆnÊ6–ÆÐÿŤ¯2ÑÓ„[½Dƒ Ê<̆ú{²\OkÊ£9c÷ž<”gðòâé‹/!ƒ,$(m(_¨£u™µˆàU/}�/üXü/~Èÿä3<YÑ‚šM Ueâ‚¿(�ýŸøb–6¦"¦ÎÆÿ{= ÂÚ¡i#MÞ‚Ž MËeÅ|´ÙíÀž¤Öx_Dc«©$˜Ó€ÿÇÅÔÙ…ÎÄÐÅð¿÷ÿÞ›¹Qb RWâ?“ƒ?úÖÿ¿ÀüÃ}˜]òíaH÷º^0¡¢dUvpèø­ Ø^<3ÓÉl!Æý[h0ëåªΑv±«¾sx êÁ·È›ÂñÿÎ7óð{c× ¡C¦hÌG i:¼5þO|I1ea€ÿ�™ª¯èÑýM¿Ò¸h©$.€MD‚b %¥nšÙ«˜Æ…Ö¸Cçdc,0˜§›¨{Lý‹vø®“#�“¸‹L�’Ãj]˜2]Ö†g•ƒt¤ñ¥ã·_ éô ¶ünpŽ=¹õ;Ã:xª³uÒ!šª9uMƒèô‡ŠT¯Q¡jãîD”ÜŠ g,#³'Úº´Üqˆw?€É¬ˆQ j’03å|·»XI¤Z÷ä¬÷d{ ˆÞ‘h‹xú¶í‰³w„Ù‘q�dž³YJ$"Îk´m,ˆ¹NU§_îlîkN¤.`Ëáa)TéW-…tySï1’¢½æûâ·ŠªNmAòB@»·$Ì%ñ n„Â3ºbÛé÷ƒ<ª&z­] éØö;`ã¦jØAðîÀK£…†ÍÍÝÑ�ð*‘EUAÅJ Âbƒ©ùeœ*}€2?Cˆe´ü¦“d\‘Œ•8öçõÃ#@ág§bΤàyãâ ‡h2[Ñ~RNnzy/p#ËssKéA³Jéu½”yÉzIÐY›=‰Ý§ßÃE"î­ñ}¤f£cûÔOY£~[/i�ºŠ ÖJ‹B–³7.固y]Ü÷È”�,RÒÍ�òë¢ðA…h9½Ôµnon„ã-]e”÷GɆתnZÃÀ6êg̢ϲ¦>ËÕý-=³Û§ÛÑLKB À‘Æ€ó�œùÑûo®Íút"úæmWý;k*œ²ÔµŸ™öHãVñqÍ^D8KÐÁØWEÊ)Pÿ…¹²4>y)&–ªMgKŠî�nù èÄ…›S`Íc9˜£ Ê ¸2!8 rÎæ€¢ë•´=gÈÝoí]”V‰’S®È�ªeÜ-ì0 /½±½W‹}ç9Ôä[ Ö/Y�‰º?‡©ÁŠÈÛm¢do@ö¦ËGðNñ™™Úéå˜Üõ§éyïa¢>:† ƒ²´ÓvkÄ÷ÁÐÙk¹ÕYaäßV¬LÁýø+Äîê|Îɽ$Ö©¾lk¢ô>ŠM¼|Ú"H8˜Çu'PùÔŒ�du›™¨ËÆ%˜}¦+@+ˆ ¸n|ѱûªöI’r€—c Bd騴J®1\d%RÚ=¢ÉIõ$Oiµ]‡v뀹úÌÕÙž�TÝàXêŽ�sãò›"§™ú0=ê2i •m«€ q±s¥p�eGn<ȘJˆÌEï>WëÍìf­¾ƒ “)Ýqtƒ,þ͉�2r4m"MÜ‹Õ�›šRl%\ „?‘¢ÿœ’<îˆÃˆ–KSÄQO7¤$Õd¹!íß8ú‡*·I|Seð8Nk~aÁRãè*Ü'Kâc@^­øÎ´ǾÆ÷Õ|^«Ÿ5-!�Ú¹R!qæE!~eUùEµÚXÐÆJU%ô‡Ã-ŒÌ>õ&„éXC8±Êv|É5õ¯}Žq�Ú%XÛQ£¡ýÞn©ÎÀf^³Ý\/öä_FÑ�8dæá)œûYø¼¦ñÍuL¨—ÂW} [§¤y*Ú†»ÖÒ‚ßQÿÓ6›8OÏ¥*2]áOc‚ qÜw÷ä‘ÃJ:=ä՛ΒJ°¯Öˆ‰ïÝøõKâ¶) ¢âŸ‰;Ô2 Ä~µ>¸þ½a_ÝŸ>³ûZåùŠ5Y´¶O•SC=|ݬ—‹q.“�lüüŸàÊy€m'LËâþçà"ÿݶŽêÝc«9:®$?î&ܤ{}Ÿî\å:¡ã^[íöF2c’eöv(éO½oa„ ýª= iË߸ڦÅL§ÙÜ<õóDkÀß�u0²‹\;èžùé4¹hÐ+Gì²Dsö}Œ÷0WƒG6B}ÍÍXê~st/ñ¶üÂ_Ï¢b$¹Pݺ‡'›¸êeªû£|ÜJ™ŽÖ¾*m…”¦$$Ü߯ >Ûã=x7^äX{2\`¼¿5k ÿþ7°QÐG$4Øœ*‘K¹™ß³è2°.°í`¼’XN§pó‹ÞÖIˆóÓLƨr÷œJ¸ÔÜmƒEcÆ´c’ü(mÉì@Í9_s&µ˜bݳéý}¿€�äÓÕFx7‚b€¬%Ù5×MJpšI²%»Ê<&^±Búsèê…z 55ÍŽœbéè,Í Æ¤®ÐèfYo·ûÜê_â¢a½r^ës7ÜÛkú¶Äqçz;äwà4þ Q¹‹þ*pË»,/½”?z}—AHv !0YhB‚X]èÀìÑ!qS$àMi‹Ù…Äéãï{ ;�²Í°¶þL”f… RItˆ¶QÕ¬/l“Ü„ˆä4ýóvÒøUB‘Uóž\ cýžãJ¹�øŸ¼oSWrR)÷�Ó æÉ'‘®·ûÜœY<�‰q_ã[$U_K–Y¤ÂVB¨Ì8{nŒ¦•nÖ4Y=Ƹ͗®úóýÙIxÅÞ!øt¾>Ñ@X²qÔ{[b/»µÃ®Žb/– ûè“L=zx`²œIH?Òå¶ ˆ¾7";ÌßJ/ç’ð h?¡]Ðþ ¹_í�}ÃlõAy‘ô›�ÑŠu}zhoh_2A*FÃÁÌɼ6�±ñN2q}Ëþp-«Ôø ïàÌjÍ`UÍ-ÃL\T%\Î.c[RÙím%iJ˜ãŸÛ©h¼TNoÑêÞ ¯0ól•Y”AkÊY2�(B”Hùn�ðxg!r×,å»±ê��i:¾Ãö!oþŸҨ}®?RïzîÀF¢û-²\CÌÑ‚ó¤¢ÇëÜèã¨T*âP¿€_W&ð>;(h>߈‰ØdVÀw�®hÛF°ù8ï¶šk—à–’ƒûOM‹T8«û/ÏX¦-e~wœª?TßåÔYØN�Ï™>\âðO˜ xåFó–Q?<qõfJ¢glîzR�TO�ÂN\^]Ý#½•Õ�²2aÂ%«áv‰þ"Ñd‹ ÅSOØ�Ë’µ‘×ÇNlj ½0vù£s 0\ÿ¥®¯l–4w9컢‹`Z€ëv„Ý|æŠH9Gt°dGA„]0� ½žAlÚýس²íý2ÔäI:µ¦-EqÉ)ìg iO ޳‰^^�N`\iÁzÏÀ£u×}âe,×tq¦‹–,ÿ¾–3¼’…ã5ëÖ úž§´nŽùËNâã3ž¼Ãp°’ªÊýxÊ3vžÈ²Õ_·�;tß–Õ3âɱºA‰A÷R$ "|M”ÿêª9H9n–Š´j$¬lŠ8ܦä¯ÇÝO7÷‡×ÊZ­ Ú)›´nk˜ô<Ÿvº†O™ rÅïðÜ�€Û?’EòÉ}9¿Úi1 ;­†£ÎVÙõ“µì�ù°‘Z�%}‚14=µåލjwÒå7MÙJg@Ñݪ:¢4ø¥Rºòk7±ì“R¹™Ü*™³+šËÞiS5·œÕ#¥KÇ ãà—0çtñ•÷ �¤I»§ mÞ“ënû”E’´Øb&b•AFj3•Å/ÐÃÞ¯òE^ÙÄým…¦gß¶ƒ¦ á¦Û�³Î¹ÎÀuGƒ^��=ú¨þF£#m|$=DåB~’¶nþ�ËÔË=±6a²UÔïUf©Ã÷ö’eÝJéØp¾É.QDf›L½c¨9b<»�ë¥æ�·•ú…œV(¬ :º6†Pof(ZE´ìî÷qDÕ9Y=ÒÑw§ÆNøŒ{<°E¹ ­º ³ö�7ÓÁaV‘Ñ©B%mq"X†IS¾#b?iBéáãǶG¿Yí}‚�:qráý65g¿„F=K­ÄÛ}µüŽ ÕÔÆPHé�–“GæÉ�J»å¹Û?lª;tb›ÿcX!€Çè{çОXÖíf`sjA°ö§½“4\„þÄ3G½®äÆJ¼%ŒnÈðÞÝÉÝVyÙÛ}‰ ÀŒK8:oú�œlÆ�K¿_ù¾Æ,¶%‘ í3ÜÔº.ŠýUŒyÍœ 9{83é:Àƒ#é­Y½Ô‰C¹®ÛÕÏš¨ú~ÉÙ÷¹1�)9ën\E3é‘:eáñlÐÓËCæPoÙªe““n|a%oŸ3UrU¯?‹ï�¥Xåó†;uWA›BÀdÉý!§‘Ðp,ÉëÂÌí—ÈÕíÉP€†_EÕ„ËŽ¹+Øí�€;åg“sæDPì§¶°øÉ“Œ¶/¢§>{2:ŽYi_ºë™1å _p&­Ë’ûuóÞwÆ™ñhÕwÈ�Ɉz—˯=F_µ±çܽE7¨`žÝß5êÖíDð6,¯¡ç­üx‡ iÛÌ%ü+«Æ±Õ‹Ì¼þ/¾–‰±ÈüñbV¹Êîp#h]¦DÏ@> lˆ9]U�|ñ–¡½›˜«�$HéÏød±_¨í*–éé »šš`´"¿É?¦çPã ùJ‰ðË:Ü�¿<ç<Û“ÿ–±©È '(ˆ_YRI¨Î0„\_Ã6{ÌEÌØ`›ç eÂu›ÔyÌ·kv‹°ýbå¾ÅˆAµìã´X,�loä]ûj‚•§^~�äÈL˜ú‹ìþµîb^$AŒwµ,{Ò¢dÝ£¶˜NR¦ÿØsø„ª Ê0™gŸ÷6wùrÃÓS‚î›Ãþ²Î¤fS·]?i`.¢Ë±Ë.©Z h˜u=„Ï3Uχ.ÃtúŠú[ž¨Æ=�q©6ëù\:hïØ5ø¤í_Ãzú·“�7š‰ì¶'jn(/¡Ü³Ó·d�÷ä�K0¤±)¸´!Ä/§V3Æ ×gQL=7�#þÅ¿)!òróË6džÆj“ë Í�P›uÓÏF0ÆX¹ùм Ä€F¹S6YÝ%Aô?C7W�Š­-¸­\õ”�^IM2‡pÙÉoäI2Tq*AÞÙm-QÎjo  �A`p‡š/Š ÕÌÞ® €»HWõ)F#†¬xQ«;Øjò`‡ü ÖùÑá~aEµGü€WÁm §Æ˜9õ6 �¸š$*QC±Dñ³,®RyLüpdnø¦yRÕ¼-¦¾tê<Ú­w†[HA�ÍZ‡mº”4¾^ý[ðÂ9ç™N90BA}ŒŽT6‹¢: Î CAä¹E­]K™/:®¨ïågÏBìì»[Úpå³·xәТbËZ?L)Øä%ý{„4»‘˜fò$¶nûÔòª\µÎtžx²û=èc—qmB`Y TªhùHµ©»ÅøÔÙ�­ó<ñk6ŸŸª¦jÎQ†lsåÀ [�ôÑÝL—PL•X 濆 øò(¬žß4–âsøÓ¢L\Õƒaõ3D¨É �⩽Øçp\8—©Q+>]Ðzª–ýLé õµõ_9R”RПV’V¬Æ 5έ0‡žß5ç "YL©!9?�ºçRÓÖ‘:ÄæSl…B&cîÀsÉoЖá^jy°Ä#\vd7æoªsƒDiPyGàÓÚsNU{tQîG�Íd‹|°ÜUÔ›ÜYã?î ¯ A~¹'óµ:†  eI }ÜÖ’2ô%î…˜‹GºÃR=hR*¾b=ëNõÍ„½­ñ·&#ÎÐØêkYy#§C6˜€‹©…¸„Kƒ×PÍ�4#©D³¹}L6jOr.ÑÑ»Ÿç¡Œ�9‚”›¶ï¯&ø†hWMÞŒtøô ]Ö¾¯0)½ Bt#ÇÆCÃHˆëYŸ ¡:Ó-M}<µè,1Ê�ö0m9‡!šÒaž`á¥ó!ŒÍ‰Ð¬W�ÑÒ©Xò†_àƒg_µ�Ê&ÂÓ ý†£GÒƒM�²‰ ¡„ϾXÀgŒQ>—ãýt‡ú]fÈ`KixD? "õ_^—-R»¬Xý|�Ñ�£%5ÐC›x›ã˜Á R¡‰âº6¥�l“³ó¥&9æ9}- ýËzËÆ¦ÇáÙVÈŒTå†KWMÊLÀGNîMܪ/þFÿmGf1UíG©.$#Ø2ŒŸb"[°ì³ÚÜ!z\¦@M§ÚÕøçÓÛ‘ .mrZø =KŽ…â/ï¸Ùœé Q•S$¡è­ô³\=Ã*]òk“™u„wy€Amêêg„~˜òÑ�©Uï�°YÔZãPL¦_DÂæ‚ŸÐç…ñûÎñhlÿË�vÁjïÉp©Ô³»Xœa'ó…¾P‹T;•n>©«¾-'ïÍè"^MF±ïžÂJ,y[×¶#µÝ¤Ý«*²8�/‰íê i•¥êÛîÌ«ÁvË+šÕºHGtj—ïgRF ‚uƒ oŒÚÓácC“Î’{òó…´TNMÂß|„õ$âʃÓÚ;�Æ—¦òËÎv�Pæ(µ›„Ø×ÿᣫ)…“Äú€u�\®ü=û¶¿þ+±üi•B¡1X¨ ¥T]ëd¢o¹e\Ûãã™ÊÛÕXdÈ4G�ØI“¶ÒŸ”ò%ïý�l2çèƒ[à¸Ü!¥c·œñG '-üïNINÂ_Ø·`x)/kÜCè—[�ÃÔϽsVfZpðZzuà[¢o�½+±DX(³íÙ��ßD ;Rë›î+Õ~cé4èö¨àxCm'®H‰™úϰ¹,AGµd¶Òš}1ÊË¥4aä89øhäÞüE®V™¾`¯P1 Z–›ˆÀIµ«,~°�õ¼ †‡yIé¯.—èx=HŒ–÷°³Ô9Žø®Y¯c ;'~ï€ïßPÜöNHq Òm�¯]_÷ÒŽ_¦û‰Õ¢¤!³{Ø"~d÷ê cVé©ê⌿*a R9X/ô$®Ä%ž”°÷Ú§}3°¹Qœœe?שƒY *àÓQpˆ%ÂÜtÐßJˆ+eæé…£~ãFÉ̯å^�Y±æOŽþ•A^ðݲ„¹*ÞªÎ[VýŠÃ°!ÙOSLìH�éÐ Q|Oøv­ÒNó}5Óz“„ÔŠÏ\®F]ú1¸ûgÛ²àðTPÁjã¬�p†“Òný™®j§ë�ïGBl´¹¦ÌðÇÇ ¿¦Æ¾!Õx‹÷Òî§¤Žª{}Aη ¸lX�¬V»Ôzh§x :â�ÇÔêLdBÛpÂo” dAíJ1þ²Ê�mµw(�¹8™2Á¥¶8ǹÖÑ�¥5MëxLOÅ‘!Ö–ü”­Ä·0`T‹q´Oµ$×­B?Žm&N£7ì¨= IoÁ8öôî¶-*`IS­¯Êáð¸‘QÚ‡ÆÛù/[±ÊþE˜=¥‚±6eŠ2}—®=ÿµ”V¿²å¡ôN%‹äO–9c£‚ͨ­M\ NØ×< `�œÔ{θd¹ineµhã‹.Yz�/ÒïÐ(ÓKl°éc/�kÆ>(ÅCçìßÇò'É. ßî¼GËðôØ?×ãï°¤¥ŠF ½ÖsK–³?^Ϩö¼ò&Þ ˆ5/êw(ú½Y·íø¦_±�jZÛ9yNó"É·_ÓOÇ|¸ˆV`�à]ÃÀr¦ù?z"ÍëkP`ޤ ã„]`Õ ëk0écÊÁeËòo<уÇ�ø»bÜ�œò !Gæ¾KÕgvnh]Ÿøœ¼�&þó¶•7S´»¢ª,æ„4:oÐrqÕ«¾šu$0ðþ=ÈO`ßšó•ΥƓK s–às‡"%ª?[’¶©ßÆÎYA{£JhÅà8˜9 �/j§ é) Ÿß XgË-¶ôþõ�CÎ’| ð,ʽxÆg©)`*PãgÛa1óýŽÔçò�–#¶ ÉšîG¬õÒÓÞEGL× ƒ•œ~›øó.«”°Jyb ™ŒÌç ¡Ê0Ø»§;ÕHö™¦I=´{ö÷A€u¹òÓî×-à«ÌVlhú,€›0êÉ!•Ë�0ê²íA$/ð—`Äé#Hò„IDØ#a±m0–¥¡Í€WéÜÕ¸˜{keÛƒ"le}Ö>B&ïü˜É·åÞUX÷›¿ñÊaµ#Êá`Eg+JIØ6,ú1<¶âƒA<¯sªžU©S›º&ìÈ|îÝœç >£`ºcï#t¥d<”«&TË_ñY¸wbeÙ|LDÑŽJJE#‡¹œUåŒË/†Š_0³Ð„êûæiW?y„GŶ*ö¹Á­2C²Š¬kuº“£—àYÙÛâNï¼*X„¤6C “Y¨OD¢ �gé°­Öò™ô¶­õ r‡¤ãTià^Y–6=r WqF­YA8Vc*œI¿Ña?ð³�y²pã6ÁÝ& …`�Ì„#›ã"#©Ä^8k!q£k14[‡†Ûl¢7¡‚ÂJÍ rõ’@Õ!–ÅÕ¢“Áµ;;^Óê¾Þ3PÏ\qÈ5¾”ÅÀ‘öˆJc•Ϫ0z»¦x̪㓂mÛÞ-D ?\¿ÿ9Õ•• ʵ�æ~ºuç5€ògýFòqë9@*Èj™u]\5ü¥äóïоÉÀ¡¥ˆ;«Î¾›{EC[LJÁ ¹í¸´MDr‡D?vDb’tW5‡‰rXµô›Ê!�—2DcÃ'ߨ°_ƒÝÜß2ä$c2®çH(ô+¢ç,HÔ>cħ¥>vSÇ`qk\œòÈ´\ž«�ƦÉn4 ,h$ð yC™�/íQḃœ4Zòù][A+™Á-OŠ2yg‰­É^§ ¯àgâsZ¦ª±7Ô3Ž•”öÒ[‚Çâ1…ž�b»ÍåV]¢È_¬aÙùØ"ö¬.¿1É­Ùù.SL½kÓɽÓßkG¾Ý2`ñN‡G?N¨‚‚0Ýìà6ô¹C¨Ç½ÓIJóêï$X‹†q33Ô»í*”lÞ�u·½�pæÁ5}H¾¸âóÁŠ0˜·‰ Ù{g·òE¡Eìï®k8;mˆa¹íñ�Ѿ¤ŒFÊɲY!›zšÓ«Áõ/ íi�ü½ƒP¬ÆøÝÓÆáO °¯Ú090³îÛx ïüãN*ìÜë‡ç®B´é ¿,¶°×…Ù…Ûñ©Ö->M¬8N —X¼L1 "x±eùóEžÇAu\ˆçjô¥ì]t‹Ðj Ø>¿õ™09ÍEqC“Š7= :Vúä»®› ûY¬<5ÊJ‘õèÝç&¯í”13@©ônÑZç�¿y„tÒ m D©z²îyàé[–ª‚{ZÚßîç Dèã¬=쉿È:ëØ…gî5Çî?Ï—�¿,0›^l1HéUŒžq�÷¸ë¥1ZW›#†ê‘à¬ªÖ äïJK+| › cBgñ…)#VJVÀÒɦÖ>Š/d¢E\±×V‡îp é ç¯z}qB_–µÎÉD±¢�!1Þé䉢�È¡¬7þ¶$’#„UËÉZ;ýb s í¤yÂ_¯Ã2/*{ÑçBϧF³aþqsØQÈ ð@É•Ø~je/Ân©tú |…ý{Ú¯�×Ä‘‘‘V{±`8Ì`Å Þ ­[‹5mF»Lk‹ Cv£õ?Òßs!oÎO!¤2wÔ¦ ÉÃfXštYÅn+Nµ¸çà²Ðt:AL7 ¢Æ°¼gL¼Æ5+ú¤íôêÐd”¶®lþ¬Ú‡†§ù³Spk‰iε\1/ÖJÔ8 @elChÏ7œOluáHE,ÅHÇÝ£;¨¨‘SÐÚß«¾SsOFIøÅÇ[B-IÀ›'¶òUKY±Y*Æ¢MŒ&sS±íT´`”YF I`{›gö ›°ÞM£„æ Uh 6Ò—¦mž¦ÔPуOW須ȔBÅy\÷P†ç¥­Êq²Ž��.ƒú.xº[Þ�WóDòk¢3|9Ñ0|ß × ^²ð¾ƒ‘ì=VÛûèýIh¯§Öˆ¢æIì‰Ôå/n¾%“¿‰ÐÚk·Î“Fv ô·‡`ÓÅÂÇ­ô…³˜ØYp‚é·Ö’ÆbŒ)5ü®ŸU��6º=Ê�뚸T¢!ý³¹S_Ý phö<¡»•ž¹¡>TžEƒçvõÎlȯôBt�É`ñYÕ;ï2…BŽTtɱ:°€)"5§7 c¸xä� ÄìÚ¦®&,AÕ\Šx}4hi^&…š'•.#„#…¸æˆ6]áwæÐÄrÝ–ÃÛmvpkÚbp9@Ã�¿ånÂýW1€ŸåŒ«V=¼Äí#™ÕšŽïÀwz)‘Ø/÷'ÍBC«c·X‚ Öì=PsË’N]¶´±Ý<ü¿øéûëÒó ò ­F"Fãœð;U_׃ÕTÿœïõ§}o‰”‘‡RDÍI-äÙ–4ˆ±�cÕXßñõš4päc·o±®�Îd·ð§rÍÈ‚^¯Îø J“òvbó<)e�Uh‹�,Oe×kÌÇ~æhû’ºS.À ÃÏt½{SaLÞ äåƒnH.9N´œIÜm·S�y4Né"+ ®d^QJÁ—!¦ß^kÊ#-28Zµø¤û[ÑXŒÃÒÑÍ&ÔvŸ\ÄÚ^lòÛz¹¤™æîŠÇ¦,÷Oœ™õC¯Èr áè�4ö†a[rl¥÷íËÉ«ÈØÓ=L˜?žœãï©�ÅÊm†Xk£ODÉP€DG®¦³r1€Å$£7ö9QJÆTÔO¶ýƧFòqÛHwj¯.hòþrmhn0vÃ6w>PñʾØ> /Ôê�×x Ê"˜4á´m.ד{!ªÙ’÷.üt-¤&ÙRÞÚZ:FUXå£õ‘Æ›X^±ð[ÿíH(+Bè>9DaÎU‘˜¤õö»7o‹Vu�§â¾UÓ–‘±R׃·ºÉ\5Vr{sÆØµ7’á0M~¾� m@ ù§¬£³WœÐra.v §±Ï†Ç,`�'©8ßsâL;Ä]e¥ºÚ¶� ^qˆûÔ¼¥¤7V¡ÓŠ[B¸þç<Žj´Š½”@}ˆ'àZ€ôBM÷™žÐân@tƒ~q2˜�¸P™|»ü*& QFU)‰T±Yã�UeÑ?_"›¨$¸Kë9C­/‹D;nŽãj&Ùç­ Èß4$³?ßó8℟‰l[í–ÀiœóÔURI¢²á+´j&~‚T¯ ?ÐüœáÏ�ch¯sòáY@Qöïžs„ÝÌþN…fÃþvǦÝ~2¥꛼/LÏÇ�¹åøø_æ0Æm�q<¶ëÜf>nIÈì)žÓj3®½*Ê=£/êÊ©ŸB"ÿÉîH ½1‘9›ñªhT‘¿æB‹ oÓg&ж^­ÑJ‡«6úÎr5ø�—E¶ßê"úéÂJ‹Õn’ëý ë�25™ÑCÀçp¥1�”^íƒMçìIS´9Îõž|Z8—#WH4°áOLíÕþÎä�Ê+¹ÞC}"ºÑˆSxª}Û<�¢Á—Á~¹Ì³z/‘WZ÷®šâWn´(îÌȚߨ)Í©lï»L±fåð©ÿËí£½z \O n¶P™áõ÷žÓ‘«ÝŽÄ"¥•û§K©¬MIè€@ÊNÍY/ÿR!»R~[t,Ù>¥lÎ`#æ©Ü:-^­5ý£v< F°þ÷�žsfKÓŽ úýèÿ±Ì‹ÕŒ3/2w©E •¹*…%|tµ äo × *’pA6KîM¬]kïSØø ݶÚng¿x ÀR×$Ð 5‹e·Œi’à€` ×#ý>€›—­³Õ|íBqà¥Q›(·?RaŒ|k(lF¦êÂìEkRK¨aV•Ž‘N‡ÀH~âÐoÜ«‡ZG{ÿdœãv,@üC@~�¿6nÓÿì¸WÙuŠéÿP¼¢Vþ5Aª©ñ¨Ë:�-áØU¯N: $¯8ýM·Ðƒ_�rv¶µXi‰Ïc¨l·®ÔëÀb�9\P# ì¶ß¡e%ªt™|î»ê•km)ûºlpÍg¡4Öâ�t,ëž‘¨R[ž€�HöÄ(':®v (P¨x°_äÝ࢔[lààtû3Hƒ‚MÞ¹Û%Û‚·&�hBð»€nÃD¶šD½& �/É%�vÌâê*ºU ‰G™Œœûxf§$¼¬x+Ý#´ûÂõº#Ž®Jò^¸}Ù¥dè*¦o÷G3¶‚¬.£�h”€s;fþïDÙF2¢[…ºÔbãœë&œY6à`‚õ-H§á¨’*J�„Ñv|° ߨŒFtO l­°ª·„¼Mb6ë=šuQ[üz0jO7ÿ¡XsÁ^‰cw&àÄbŽï÷™¡óíüËHà9év 9yF^hK*º¨u¸ýq"¡Cr1›’°Ñ3Àw‰gÇßÝ£ ö�÷LÛ˜ar†‹²ÆO¢æ«a)p]˜¥Ûcsünkpy+¯™ÿŸÎg»GuÂà'#Žbg´2}醀’Ö([õañ´Ó�CøÆËšp•†á ™WÁÚW9B‘l+ÃúÚ¿‡œ£Î1ÿ¸j�/&ä\š½“pó/mßš5-LÑöNîH«Op­¹�‰”¡>ÙˆýbÖ·¨¼5—¸r®¸!âIW<­�wb#ön£N6xµhúétDê¨e^_ò:Á¯æµÝŒŒÜÉ36¯g´‹›Ìž=éöÌÖTå,”f 8h<•§·‚{+`Ç‘L¤õ@q%± >ÈïB²ð�EäÆê�ÇÄNa¯k]÷ Xe-pMdäHöŒÏš Ö³I®‰ÝêlA´âÂÉ~áo|Ü:‘¿‰ïÈôcÃVHáõ±g O~ZÈÞ�@3£±>FU ÊÝÍ-ãWÈŒfªaÔBGó2¿+Òûd‚Ówï<ƒ°ßö9ÿúÜÙÝþ©/<Jåöy¢:Ü,oŠ­?ýã°ë ü8€ëlÆMº@¼V3ô]'iK擜Ê+¿À2”ã×µ~E¢PŵÖ-HÿyKÙÈ Ìÿ{õ�yuÜB”L�£P“=% U‡bèæW8aW‡Ð’Ô|˜qœ¥Kí€mèÁ•öuûTž1V‘ôŽJÆ~8<N?)Pp.É€vpµUIæS ƒ˜ñËÊÂóžþ¬ys¨¤u.¬o5œ§°O ƒù'8] ­ó‘îkýðžzbÃ2·Gwp�_ÂäT#·é/�H×JDMÕPÉÏ«ÌýE#_B“Œ ;رxó.›2ÐÿÖLϽ­^g©¬u?]Ä :ñlÅu‰‰ÑæÚÉ%�!g]IÓçâ;¡&l˜}§.mú/Žñ¬ ÔßYE³2Æå3 à\̶ô°‹N«>&áal‘�áÕ¹„�]ŸH”O £Zœ�V��l�¦‰Áå¬ý�°�›.&Èææ;Ï4¿ —ÇÄ T6£—e3|>•™áCø*òˆ¤“åƒWŽŸEõ9_/�è×HüLv—`Ë……Ÿêo·h8”ø˜cU¢A´È!ÉvVM!‡Á!«äŸ·7;¢ É ³g´×ŸùØÆQN^ü¶£ó'p7<~Sb· Záà �AÜn 4¬�évhwo=BÛw‰ÂYž/¨gÒK�rí$¥$=ÈÓaãšÓ±è›ØÔÌe}¡ÎL¯Æ³À¨k…Ò¹¯_r^é nGtwòʺPXñð=k¬ÓË÷ßqÎp “¥ÙnNlÔì „n†j"%{ø¦¾�·øŒ¿¥RDtSÅ¡¥N¹í¡7Ð(̬ÅqÔ>Ø8ÅÔme!¶ˆÏƒá/ÅV//âM…UL*pE‚z"� ¨èñªÿK×°Ä"S˜ºFp QLªaøÞŠÐh �¢±Œtó N—Ö�_¸ºñ�ûKÁ§;wýGÆé-«qGÜ5¿Pò Í[ÑßÕ¤o¦Ò�’·¼|I+Y]YöoR>�·™è?ƒâž†ö¡Ó¶£Är§t#þߥË0´$õ5•`ŸÙ#yÛ%‹äN›wjYòÖ�×;§~-­CùæP)èÏ(Á†�ú¼yή¹8ìAX_õ$V9þ€øL.•óïYuÃÉÓ65¯ž‹OXº> u,ÄDõšçšR�Ðï¶`*rf‚B/-²ÞÚçŒèKÔÏòûûÄņÝGhºB�I=;�`¹r¹Lê¼"·ªMþRù»8´ûÛ®–’éî™. <ù½¾ºC±Ñ‡ðÈØŸ©noâòÀý²ì!��d£±Õ•B, óò|~èS§_­¼òÙ%¸‹p®ƒûM¹h»yËO�ä¹µŒ¶á—‚ bxƒª$ þ}ZdIwN?„XæðTJ× ß'a.ôÄ.k™U÷}ûåºÚ0àQ�fÊôœÂ=üõJá9j>ÅÌmÝ÷ °±ø^®¬†lýmF´k˜™Ï]]|”çÑ;’ZeûÔßs9nOF>UìŒÍl {Pƒ…Ç ¾å»ã0œ8MËê“@ë�eÇ3Û5¸>4ßÇÓž ýµ~ôåÿ a-–Û—^KeØ™ºÈ‚\Ôñ–(eŽ©¤*Ê3„mi*‹$ÌAi°Û² Ý“ÂA¡¤1ݳ�´øœGX:MrL“ #kÑøˆ-Lm† õjŸºF„š2ÇlS z^”¯G Äå hsÜ+ç<¸ywÀÎÃà"“·Pmp§8¶‡*ûÜ ÔǘOŒ#—=‘s{¼¼TÂù8GNYÙf9tRM§þZQæ]Ü»Ϧ|44 „Íî“=ÁB§IcUÛdåÁðÄ�uþ<ûoö¦Àpµé Z‚γéVAºYyY<ž~©Y£Ê2«Ùóþ¤·“:ÀõŽãò5€¹ÑhKˆ:‚p1#)ìm¤Ì±Ž”ˆQñ|ý�Hú``¢ºôV•WïâT�_«‰ ¬%Ñצ’ú ‘b¿pÒÍ’*f «œ/!]-µÂ 'Keù¼�6Å XÐæpÝØ÷ÑbQWª.ˆšÌð(/GʳSŒ0ûüèkšâ”ŽÞˆwK´v¨í_žR®63eB½”;©Yš¯Ä‚ý?¡Ë,öÉ ÄŸ˜$½Øo®î‡^(§.„“h¥%dNãê£ÙÑn`ÑYºFðš×œºŸ ¹¥ €P�ò+÷qÌø"ó*Õ`…h®M[w_î)G?¶]훦ç>-µ­;ü"bJ­yöŸfXW'S«YòÜ¿(àÊÖ2b y͈�I^')¯™_U}úî¤�Û¿üòA-¶}&ס1¯Â4ò5M° ±…{Œ�´Šî…X8l†æTY†ç…PŽ‘ý07òÈò { ‰†5ø:êO&JŠ%ïݰwß"\Gs2®ñÍMû*’“ŽbŸg«xÆy=åVöÈÂÛ|n¤^-ŽSèØžÜaЗY[�"Væk¦1WÕ G‘=Âr¹šŽ×£®œ™>׳k‰™’Øã1Y?åžÔÖœq¨¼&?Yuåã‹¿ªOo]ß’MiæÀ§L¯'PÜãóò@¹lþ@®¾›¿IZc’àÔ0ʸbx3ÖTÞÝ&A�f;”߃8v ƒ<E¯Ld¬n+¤gË¿B”ó²*јì­Ȉ`¹ÚéVüQ´XÒaH…"©¦#”b‚ŽuÕNÀº2bÊ ¬=÷j)çA€ñªmMV8ú·‘ ë‚!P6û iÙN…·žyŒtE#Ÿ… ` ëÜ|ZC‚@–i‡Æ‚‰<€¼ÚÇÃê¸ T¤$Z/ç™×3d\ίUqä4m߈m0Í£©rûñåœK7•^1)mš{›)þ²ê²í¼Ã\ÌVK•­üQ«ã¸PSÚ <׉Eœl^Íêàè0yXžž[Š!ÕܶòÝôÂÔÈQeºAq¦|�œÆ¥T˜þ5·Ë8ÀVV„ôxÉqDŽç ï�1¸{I:“´ˆS€é[|‚öÁ%ª-5ô•C0‹–ûHW½UW?8kèO w`¦j¥|’ŠüHËA¤«&¡�ž{ÿ�¤Pz0ÓšÖïéù"ib™Ö#.è.õ>]ÌгiSàr!Ùz#Â�ñ‹w©”ÃÒl~°Zv‡°[µö×D[|q%‡Š@„–·�UX”Ññé,˜4…N [¬Ÿ$ÿiZS`ï Ÿáüå‰39÷ýÞÕ!)­~ìûDÍÕÞÒºé•~²@˜ÙÔÍ!w¤•ú…š¶×ÈÚØ¡ÆÝŠy‹{^,£åAlþu¡|6Ó•íâÉ×\Ìý›%{Rÿþaæbt‚V³®8À<öLzLSˆêülÚâ¾$,h.ÌU?Áœ¶“FÉS„ ^g4 –^¡Š{ΈOBŒÝöœ¬Z«1[»Ò&¨åXpm¸‹âàØ î>4Õn#sóVº�rx`+«ûäxŠ\ðøE'ŠˆÅ=v›7€€´‡:ÆŸß-ªÔk?•W,G�Øã›ªx?´rGç¬Õ¥ârêqC$¯Û$òt íS4Sú~°“וG¶w»}_³2’ÐÕãé¥ †‚¶´'ÇêD­øîAå¬;Ýë# ac]igëd›aMD…ÐòtŒ�mø~L­¢¥àErž2¬À.\�{1š\ÎîœgíÆ ù[;Ý"·2YÓ´L¨ˆÝâq\tPݤ–q—C8çbáL;MßoÕ›U‘ü<¦³�Ö,ÆÚtå7S,¼~±Q¢CGŸz(…] ÅG[q ¬ïË·¿} 2f!ŒäX rÔŠÞR´•ß»êB° ¿BŠß¥³<&üˆHý‡ìíÁm6ÍÞyÌS[�ANä�}‡I^’'Uè¦QxT®O¥ê’‚2–}mº7YK-8³ш$˜¦ÖÐû™ñÖ�à¶ÞSXt“¼"½Y(BÑ^$¥7@ß/±íˆBú·ºvðãvöÈ^©3ÅÃ,ñ!_ÓøÂtÁãyOyÙ…š5æ4oö¥(Æ!Ò¤Ô‡kyœH+ÏQS2pøÑ¿é ¥ª(f(�C–-œºUÃc¦AØÀlUT|PEpêljì}kü YzN9 `þ2Mâµo-5xÂgt…ï4méïÀ׈]aF¸ŒìT=£Ìø7§À®ê#ªU”Bž¯ì>.ù¢X\“~¿Ý¸áé!^‡@»óm€y�Jôdy¹•¾×±:²^gb¢·^šWé…OÍ·;½k¿­Ò“ÁàÎ:W„‡Uay‰QÒ¦)ŸX̾ð´$Gëyw“B,ãÖŠÈnn¤ÕŠ>$»(^ /�Jг¬òeì°úþ¹û×¶R6ÆÒÛT_«åÀæÒwÙµ�¿¶S£ë>¸…i„ôè=2!kï½Ü†è£â¡üp�Ÿž•‰Ú¯éCë¤8ni ‰ÒéÃõŽæZÒ�š¿hªÍaØo} a´×NCI�WÏ«Z[¦ºm@&@> [ÆO��"-¡£l[éÖ 1ÆâÁ„»%õÐzá°£ï¨Zç�‹~5Ô”kÕ,Q'`CÊJv°ñNç—nùkÅENaù{QKgÕí´:s¹˜7\‚5<ùÚž9àQÈ á=§j²To.‚±sSzâÆj„aå§•úÏ š=öíÊO*¬Ì?Qû¹]]Ñ6Ø�þîDñ_¿_mŒ;Å ð�¿!5C‡xL¥×w0{ßÂ"äŠi»zL�·8ÊR~œbT!6aFƒoÀª^vrç:̺xbÄùM½©P¾'Ûg»¹Ó?dE}Ìï¡·RicdÂ_¡èOzN·a¶‰NÑ´Òý†‚‚¢öáþö(0tþT?®Éièbp¾ó›,¦‰žóx=è²`.gYïÅÛW8$j‚ŸW7Q¢‚·×“ráeö_¾çÆo¬Rû�â_æ’67Ñs˜…ù¶­þ§<©ŒÏ–þ 凉lzI¾ìÈî!å*¿Žñðk‹ Óoo) {;Œþêt�1·Èó­Ÿ%t¤7ʰu•㩃XŒ"Ü‘e –±:û_~œž=޶éx±üÇ6ýóüÝC^–)\ÝqJ КQؘjÓ¾ m}ßú ÁÖÎ ò·h hü’‘?pj�ƒÏQ€*¼À+À•(í`&J,ËëA£&óÈÏ8Y~t`ìÎEbYÁc,ç�BJï•WP­N‰Nûë¨ãJ Vhk{¶·ºð•©OóÄγŸÞ¨£@ÍŸV>‡-=]z ¾{² ª×°eeìÚr[ìׄÌÌvŸV[z¹]O ëKXÜ ¯ äÿIlˆ�{UÙ,¤ß˜wÎJÆj"Bg~¢[i2ê¹*5ã ·ÈÛvK}ëôŠ!e Ö:*|¿#47tq§,R ÞÏ\¹N®5JmKæL ¸¥¯‰;Àux¿�éÁÀ¾91R¶)M™£GùŽˆ,m�q9Ð|•ê-£íf€�ÓÐ;þÊFXpÌo}É‹Ü÷6Ÿ¾/Tî»ÊA~d*A�,vÆcê½¢üãéȦ¿‡$g†n†ëÁÞ†ù}ŠeúëHP!|'éÏ—Éì¬a­%+úpμB«çýâìʨFìFÜH=l¡,¬!šÌ ¶!¸õk¼ð"šµrÍY.á>#‡ãWa¦�뎠XtfòáÈoÕ úðŽÿ²K‡?L¥0IÌo G +eéÔÄŒptˆã¡ZÀ½—œ9¡ÒaÜ©þ%·èë"õái�È»³«ØÎ?º4xNÚRL¯ïúތծÿSMþLý€Ge©¾¾[“‘¯»“»'ªö«ö¤ÐŸSÌr©¶<~¹Cb4ë"PzCªÒßêÚçÕ€ôewŠø’þþë>E5uáÐvÓysçŒ_ ݰ ûÐ;¯�åþ—EVÕ!×MÉk�Ðem¤,¤�(hH&œC•TRœí„<&ûr¨Žbš±°ö}{D@Š¢áñ:ˆiTMT‰°DÃcÖÑÏ)Wñp¯=cÞB'�7¦Á„üè�ñø“òÞ;Å Ùl]ý;„Â.ù¶ävƒ^ó!xEÌ!؃ÐÙ�ßœá¤1&k-°L´"ˆGÊûŠñÕ}ÿGÜ|ÎiÙLÆ r¡‰˜°‹ë‰I}ßžnl‘DNúËï�?tPïn<Ý5üßç„hO!‚ÈõqsÔÆ¯à3[.“ÃÜÜhØaC·v¿ ¿P�‡=@ëã8]§âvi\–éH}+nwnOÝ<� >1á ÙoùzUËЩxXW‡7VXýÕâ%¬›Á±iÔõ—³q¿|ìÍøù§€wÊð‘\ñ·RP6د6î"S|]}‘$ʯƒÜÁ Û.õ½žšf,CT“@ á› šÑ´½.Õ‹Š,È'0‡30I,£³Û2üÇ|±ò¼æcÑÖV¡,!ÅyÃ:z�œµM�½(üaXÂ&ü³î ŒA’uhC¤þWC5� ZàúfË/§ÐrýËbW•ÎR¤.–�Ÿ¶óc÷3Á€ÎÚ™} ]»„òVeƒKvÐ a·uœ¥Fµö.ÙôKvªŽâ;{¾ÜЭh#/Üào5Qî^8×P,7zå«Fb¨ík5@=l�ž¸òÍ’g ï$™�”#k�ÚË«Ý/¼bLøÉH‰4¹_ÓØ%N.*6î"Æ”s²â3·6óÜÃ-Ø#4—¸ƒnÚŽq(Z´ü–"62%"ÆaÒ··f+‡êz<ÃÎgJÆ¡UƒÇ¸ŒX…•BMieÜ­õáè¿JË�=-snQ¤þ›B¼ë}ÂÈ%¨¿`·8R5ªj…%Æ]¡”Ê ÑòÈf¨á€¶åa®ðªE’¦ÝçòfýE}"y£ 2¤Y"» ÝZ‹RÔ'GciM~�Q6ïÊ ¦H—�7 åˆ["檎›Mfèi™Ú½Ž:ôØM(øOì~›|]Š/¡ƒg€t©3CÑ^¶U  tŽNË©zÀ4>gbª½ ëNdâÌ#>‹J—XD‚�;S¹lÃ+ªÐÀü£T^RT×Þ¤ëH®$áO hѱ¼iË× ŠÃQ9fœÁ4–qA,3Avy¤îê›Øº}Ò‚ÍhOÒn ù›m‘‘2\š(~4{@ zdÊøÛ_·¿Žß@”y«§Q¦;v”q5×k~iAøè‚–"N�å…!®ïŸƒìÝ{ªÙžRÁG%,xÝ…Ï£íõ®Õ%¯€2ÿ#Ó°œ)•gÿþ.·8Rì!.>×è+¿¨)Š7©7 s¦ÝNÿ—r¹vOR\™iL nu;Ü�Q‚¸Ë |—òW¿Êë$·ÉÃçϰø^XŽç¹ð᪩-„uÿµüö*U0X¡,éPnÄaà5’`Lú°s>éLž�^fýmåLN®Ò}¹µÌú{ÉÏ`·BÍ�Í� ­äÇ™‡ ö404õã/mU[©¹µÕ)k>…â�HÁp³ ž��´Ü÷›òë:4�-Ià8×>3OHGƒ+¸ÿó\¥w—ïŽìþ§á~uäC•ñ\¬‚¸ì*£Ä8 �bãÑ©åÃÅŸ?É:}XÙ€’M@>²ûQÕÞ@;(òa…|�(š slJv„’ÇÂj™‚'@¸s¨¾={âÎÆ€SkN¬È†Õ´}™Ã„æxß‹(\Æ쳕<&ïµö¬~ŒÄ{U~Ïè>Ý_ E…Ǭ(v{1að Å34ïšù}”¦}‹eöy¢uýÔÇ$¢N@\1¡J+—2B$æØ»_:�9„Cž ë7Ï*âœÚëùåò‡ØÁï^L…Ÿ¿NóÅ�¾A7¾ÖÃÿ¹ U-L°ÄáøðЧÑÈê@Évþ�­ LšoAìZØDÁÄ÷ žn(Û[]ûL©L4nùgç|f ãqÉø0˜™žS‚Î.úɾˆ7ιr7G%×gpú_¯Âa鈂‰¨šKk'Ôà¤Yé ê^ÖÀ¦ŸÀzôµ†2s…¿¦®�ˆN«!Ô=¢tá»_«ˆœ-,Âxqß¿ÖSUÅC¶´5L…Ä ^ãøX¸&>„)SäþøÌ?TŠaš6+áß9Žw5 …�9µ[ASãnæÆ¢/*oÛ¹Œ~hÅ”Ñ5g\AûAemKêw«oäQ$[n£ÊÓ¬£VÐÒ±|U£|A‚ÜL˜ ;âéx™Ø+8Óhµ|¡TÆG'UËÒ¡*·qœDçÙ €Ê˾h­57?«(à¢Bó|üN«U|ÿ*™ k'‘Çhþà[î�Ɉ²L€(ÉnBcF¾å6ªÊ"ºgë|ž'„Í9ÊXzH¹“SåºÿN]@‚úü0ÿ€ ‡4&Öœ=`Å%‚÷)tÆZžFý[MÝic[Â’K¦ƒþ×ÜMt¦ÂA= ”�ïÀrS£_ÃèVö@Í™³"¶í"ùê{‚AsIœð¢ª¢a:§)jIšžÎ‘Lî€åÄeW‡–{Сñ'Ë„¦#ï•–£N¥åØ«,˜�$VÐ:yæ´GÇçöù(/ãï_/Ó³csÝ\p”ÈK¼–þ¯I} *ØB¶¯ÂŠ'±¶^K ¾Dt[–›'XˆáH]O®©~„í"!ÐìÍ Ày?<ê†ÖWÕg%©\©Pz㳩ÑlÌ>f†VbM9vd¦ãŽp�FÖÙvÁSˆ@°îù¥ÁHç:Ž‹H¿]-áw}Yí°'�°œf‡ *œÝ5”Ï®°ð†9i�Mô8»ÏÔÖzóA«_OÓµA&GH)VËnÉ3ô2לAË+”gK[ÀcæZÅ�Ê4Ìùèâ¹LC,×9âIDòµë!Ÿð/ºŽŒóÌñ+û;rv7ÖH3?‰ÿ¦1ö¦qMÀd‹Hö€©Züi‰ðÍð§ ö|ÓKäy]Ñ¥¨®Â_L­yERƒbahÎlß’ Ù>u Pè³êg¦8®–$ŠëFâM¹åçïî y*ÌŸá ™X;èêf–È<ðævyǽ€ÿ8²°1Œž�LoFÚòÐ̪Œ´ù5¢Ø®‘zã†Sœ¥MV ‡™íÓæ¬:úœ9=ä�òYŸÏ-ÛÈœû¦¯Ë[�Hn™¶ Œ7amˆè|UÈn]ù†§8F«•¹1Ñ+ãºÞ½²´³_D£©ÿ¨à´ÃQ;”=úúBJ«³S×:wvríšvg}Áƒw  ~+[“FéŸ ƒVÅ®gìô6ê¿°…¤ª ÝÀ–*%žfÄó@vƒ/C3Oäåí§Áˆ¾Ä¥¿RãxTâà#ÜMÈŽ’Ã@…’yNÚðPÖî¨g77rr N£�9Q9 �ƒâ‡ÀÝÐùd‘5Ñ¿6“½Tê§ Þ\Êîƒj¥Ú•?qÜ"w˜�„í�äÒX%\Ñ1Qhd~ òŒÉ‚¯¤«Ö@ã�ƒS~ F}WÑU¦�ðc×áZóÒÍP­=ÝëuHαõkÃkÌ¿fòÜBØe”“÷­ˆg�¨°mFBEW÷šìÁ#9“TóáOä@ÌðW©o¡Ä\í=é€àjAöåJ2ÏId«ÈøWר Œ¾Ç™CUWµ …,NŒ£U:sò)0 å$1$ò{ÍiÐâP�Û%ôjïþÒ“±×'Ï$`µcFÅÄhËú—�ã ßhúuP .m„ŠÐ¬‹å ŸZ©ÑÚÓgƒX“ âó÷@ȼ٠ß]*�c0%‘ÈäàC_”ÿèH‡GÃ_ÎâÝŒ.Óߕ҈źSšãã22ºæïdÕåæBYÌ¿&Œ;J-×;yè9­êg03ˆ™"$Jž^ö4ìÂ7,¬îBÙd$otnçæ]º#(6RÕ¤§5MúC ½�f^�gÇYýk·¿ÌÇM^`a� ²=°Ë E”Jø —ëqÒ?’å´›Y"܆w[ÚQâbCA{zÄt Ó‰L$ÔNÁññzÖi»I†§|û½86Q›z2·ºÌ¥1µ <§n›Ó¿Á0 ì0RŠOYsf¥È‹(éšè±$(ÅÝ ´½;-€ƒS>x'4éÖziÒyN©62ƒèÜGä“U5�LÏ1•ä´V›ßc‹Â¾¡ RcgZ¯kS«‹qÉý÷9ë™.¹Ý£t¡çÑìæÁl�ƒÄnpù‰M~R8A%0›Þžääî¡5Ȭ;Fh˜*X¢-KǧÄ%=¸•ˆU¥‘Ë:¸ –;3ksŠŽÇY˜ô­ÓÁ#*¥¼•åk ”% pÙhs&¯‘ð(uzGs“:<ƒ? Ú iìæ°¦ã–ÖlG‰ÍÐQçäë°¢g�Õü)üý]­Ü“+ò 8†rÔÃG–jrŸiFOäi œ¡ÚTÒ�moÆ46xÝ’ódíâƒfL‚2QÇ!rþœéQâýƒƒ�6 %ü}Ú×.$aRZ|܉kïÛmRÏÈá©&.«�G¸CY]àvEò؃�’`Ñú¬? ßpJÑÿaQû3 ywËï5(TW‚žbÜÔ{‹·Ë:'¬Ü‘ãÓMC–7}Ïëø“å•Ú:ôÂ;ÑH ­Ì‹äAš'­Bd¢Ò}¬!B¼ÿyé«[~EµlÊlù×'- h7H¢p±{œØ°‡/ü¬ÿú-‹ÃqðR, ý\{§¯ÜoÚ‡æCð¦Hã4ª²8}Kî`FN^ÙÄܦ*DƒE8ì«}†ceŸåçq%!ܬãÇ‘·šÌ2âpªÜ¾yϹ¶»ý¤å©I„iJDXŠ\Yîú¿pâÓDØ0é‚(œa§èö›ÈIËþ%SA’ÃÆÍ¯w$YÓr£¢ŒdƒvÈCþ‹÷Æÿˆœ'úžgÇ:«%Ø–cÕ/еFÞà‡0ñU„Å4·¥4ëB À²[õûš*a…Š6ï…OKp£ÿJ3è¦i æ¯9àiñ:p¥ÿÁgšƒjã,à’ëMv¨­C$+¶'’Îø ÷UÔãPzÉqÕ©M]ëD_¯M´€ÎA¢ ¿çNØåVߨÅF:ýÑg}BøXuÆ­ˆ²pŸY^öÝŠþU)ì¢Jcè?þÑç<Ê_„•ð„0ô¿^­bÃ÷©Òyè -µnÐó÷e·[yÉgù[�7µ~A,¥ö$AøøL”,¬¯m«äT†6^6 ƒt¦¾�·¡t¿­¼ãœÛNŒL…*¸£g‹µ€,üjQJ=x�Ohï‰>‰3L Ì=õ&²�QšbvNó�š2óA &C�úó<Êå¶ÌkÆcSÃqb†| ‚gÁj=¬G§‰ˆ“ÃûÙ˽ÕúZXgØÑïAÌQ–”A_L¢DÍD&‰ƒ—Üu]ÖVDŠ1o€ú’ˆ#4©Ò=¨KTòV× ¡€¦ëXÐ, Ñ£9•Ñ;R·³ÞÈ(¨¥Úó?¦rC>3ÃÎT–~Ïuäy]gðšY›Ú‡õŽ�Y‰ÎWSþçðMå…Iٌ؀”i\ƒúçÈûûXp±ø¶XÓ6·™•MS˜-½T}'û9Kñû-eÑžÒ©/Ê0Œ1J¬åJk bÒÖÆ�0›ä©'Õn[ÆôuŽýõµ´ê×öÐxÇCy¬je‰ã³€ÎD/ èL¦THãó¥Ú°¢OÄë�O`qX�Ñwnþü˜rÃÛJ<½$žúKeˆ€u™Âö©Šu4C>ÏØr>z w¦¬&á€è£…¬;‹¨ü’ÁGa¤‚êªÂ“hÞÎ9IH‡–96áCÒ±ЙÕ{š|ÑwìƒÎ_~'ðQÈ��¥ÿä4˜­<Ï÷3Âûo`i„¦3ì95ÑÙe¥F×�N¾`ʽ$åpÑc¤¤ž>½äÑ�KðµÉ­`鋺�®¬|sŠÔ�àÀÐÐÎ6²³ZDF§KCÃî–÷õ£¯-•RP™7¾iTŒ`|,oê7¢|�f‚ÖOt�rúŸ;%ÕŽ} ä5 Ùð7ËJd�öU0[ãò^CrdÛu¨6±¼3›`LR 8šØ›â݃!o·Q»7¤”“%U1¦µØöG»…%Mj·$Ò{tõ¿šDV™iˆvFàè"NxÅ:·H$W]‡QÜÿ¶Q¤Uß!ªhǘVÔð‹ÅHÚÆlPôš#toPÃ7|!LîR3w2‰¼Å=Ðb8ed©D!ŠþöNƒƒ�\{pÉY%“ͬy1'Djù@.±þÜ«Çõ+­úÂX"Îægnë��“¬$4;ª«Tï¯BÀ,„=/«ª’E’kˆ»�©<¶#iƒ�¨��àœv*1®ÑT€œì� ºEŽ�´ýj¿Ñvþ·¢ÈÀ¥&õži®¤[¼™•�!»*ˆÞÜPä@§úóFÀŽbå­Y›bD¨'•-šoÅz»)ÎÙÖÛlµ¹å|I<®-\./í>ýôû¯pg«Ñ#Œ‚èŽãU/{½Öü‡ÊýÞ—\!¾ Ëá„¡Øæ]dÖ_‚È…Ï<ˆÅŽk�Í%Cp² bÏ©Iþ¦®ªœ¿Œªh²‹ MªÝ ‰±W{ä¯!¢ŸC:¨3š„\þÎøh(d±�b[s†×hcÀ?Ùb¸dµ­)ÅX^rƒt±®ûž ¼C›TTÄîõìä‘,yäšØ FçDÈʙë’ÐÜŽŸo.eƒOHâìÔ" $ïý ;y†kâ!–¡åÕ, SÙ¾¨«Eºÿ’*k�´iAÖ>Vâ‚°'-G9lÕäEÎÈ|¹hë̉§|Ä$J~šV¸Ž¼˜7ƒÍ¦½’‘-#¦mœ]HòÉ„Ÿï Yd®ûé·T.i–KOÉ.vU+�Ë%)Ÿˆ½t:ÞEh~ÀTŽÅcuLó _T¥=K>�ç ÚXt”>šP¾¨45íhë!¤`’�Ê.-ô13¨ôZ1Š­ü ¬ï솉G¹öW9u•G4½.ÒÞ”ÿm!Xk·‹=norÖ Õ˜liˆ…ï»D8�j"kÑM[Ê~²ùÒT�É™\z†1/ÀíÚ9­3­« †^0ee¦ìªùäâ³ê|Œl†Ìí‚àšäO1�Cv‰ÔŸ†©"k5˜X¦j.¯ ÑmmM@7X>ç%žûæCý‹9Ì\üHî¯í×i'MÒ;Åóq!'çË›tˆïb'æ}tð6v\6|W>Ü[B?‡Æ=Žú]¬(¹ÐÀ³Vo¢Óè � åãÒN- ðÛ-¡ô!�hyÑiËo¹R�\'ôÈØ´Gg’�ÄË��Xð¥™âý&vì\�>rÇ@>e÷ƒƒS·šÐˆ/ߪøÈw.~aÅ+0ªTºš•£3"5^²ÿ8 ZS0åpÒö {ÎÉ$–Èê0šz„°Í?e^ékIu�áÏ‘62f†„F œ†J,Y4ìÜýûõùº«Ñw¹->h ø^ E¬Štvðo¶Ú%‚ÎèZPê÷[í´§ÝÛ�u}Mêß^¤~Òõºn†swÔ±�S ¶¶x1É‹UZ�iÇÒü€Ÿ²snÓ@wÛÓˆe°ì‡,‘«ï;z™3d²—�ÌýWd°näªaöã×�îþ¡_¬ð»�üƒM„ï_ŽJ2Œü@ú¬¨Àal¿fî&À¥rçX—PdÅÚá~.õú·YŽ™ô™ˆ†"‡â.U7  ÅYÀE* õåØœ\5ˆv4ã/ÄÂRi¥yÝñ�mžÿîê¦Ô¿š73Ÿs�|QÜtUÅÚ!�Ð Góf–¶‘¶~dg»žèùé2®%m[¦=™&H•ö2Hfïû{ÐgP=G$ýÞN±Â0A˜æ±mÛ¶mÛ¶mÛ¶mÛ¶mǶ}öß�™½˜ìd;é¤/Þª'U•TÞþñìø|Ð{÷aW²Ù¸0ñh(‰¬¤Cþ0ª¸±Q’ܳ!¸Pßêü š­nUÃú\×ýœédú)µ-íö�Z�‘tB·[€¿ŒsãÕ•bN§ ¶£—Z¶¡=OŸ4Ò·sÊÚžu§a7–ÇËrïp†„#¿AøÁSŸl@Uéx>/-Ñ–¡Þ–ˆ&€(œp$Ryß,á,ºÒʇ4ñþKŒ¬×HŒäÔ¿¥ß“ùbÂ>ð¾›&á{.Þs]¾‘ºòÿ‡=x”e˜mMн'?f'¯ ì¯c”¸!…¬YÞ—éõPYLóîFb¥óÓ°º†ì†hü¾�§Ï{¨"sRwÔë>ð�B}ÉkçªBîߺñ;ÝŠjK‘�‚ºÎÇY 5-¿Š^¦EÍœ ²Û–Ád ÇÚ�…˧pÅ^a¤g3tÂðĈ``åƒßÁ¤•B_•üà>žùµãá¥W¬ñó6BdYð}:ZïšIV^ËEìßét²2šîðŽÙâG¨¢™?Ì}[üPll߃‡˜ü6‡ç�w¿Ï¡|éžt <¨ØwÕ>Ð<€ñtã$øÕNñ]X«C;›¬Ÿ Ú-üj¿±°X­Wí*p®#X�ß«×ÑžrOÓ÷ÛŽ¿=fÀm¶l.¹ÿËÖ²Èç[·‰Ó7šzWÓz£¸Œ&'J kY|ë<(Îp«û©ûѤ:sö_‹+Æ”ÌÎi¡ÁßÀ#uËE!®ú¢;ãWd3˜|ÜIÍ¢­¥ýÇÞ]iv #:ÚbÛí‹>}‹øÖ+ 7-vVÈ�õŸç“$R©Î åÖ·‰­�! ôª'ÔÖ½xË‹²ÆgWT�Ý ~nRaP ™c vL“*)Rmë5*—_¬ÍTuD¨™@XÌ4¦â+ê-ú\MIß¾ Ž½ê†Ü6°2gþMì-”�A$‡ÅVp‰š÷·xæ>~ø1íg6óÕN*{‚jÈŠÂ × ô?Q-�×Uìñ¦‡ý#94ô{ÖyÄ Ü³Ÿê9Ö{�ñi #¼w»füv€âö:?QÅÌ …|FîdGq°Æ ¬ëß*}SÎØN�šåU ††ãH™Gió"ÕȤÔ­xzá™j4‘…Ö¼üôˆ²²züv®£úË¿Tÿ<û˜Õø¦BEôâžÁÇ÷…5'¦~15¥õ– ÕTÿ,¡ ™·R1ÝÓV=ñªqäR3oÕžÍpc´<· ‘«ãG±R��üÊšÓö,RöÉÐjx —©ÿ Ô© •¼ý"§ ׺:FzU÷2}=¶· -.nüî�ʰ‘ Þ{ïñy†«ëÉŠjr"§*±$Œ®ù, cš 5Bea»žpÐÕŽZë¦!¬ø»<·ïÎ&Çâi&Úý©YÒ|štžÞ<¼ ¾¾ZnæÆ±ÿy*æHØ­«ø7ZX9&d˜‡' ¢�©_�o}¤³8§”3Ä[} µFîR¾v¯ŸBì~SèD!ŸcŸ¢%�à5‹¬/Y5?{œŽU¡žB˜uóØOªVÆX¡iýƒüÙñox­�×´D ÝøÏÁ/-[�ضTÅ킽"ÌÔ; ÆÂä­±Íp{ÃÎ"Ö®ëÄLÖ>•Î}`ÿ÷6@l@™—É&À\Oµkæ:¡[Ò¸ú×Y^ôEGÁ¬…ö;¯õù¸!—{s¨ô�üX<ÝAÙ\ë<�zæÝá•‹]~OèŒyA§N‹>}6ækú¤o…àí—¸’ú"ΨŽ)©ó9êA²�ø »?¼$§ D\ç0d>?Tk÷ý·3½M`MF*K\Hûõcã ÑZ–dÖf¼¡Ó2¡Ží¯ð¨Ìj-+aÖ ñYÏ¡Î6ùÔ.Ô&JÀoÿ0M@@ït‡Ã†ïbŒ(j.WÁÒ³R˜}�A0íÔPž��_ŽW8EU²¸2Fè׋ئÊ �ñ·ÿk~ðÜŽù…;RÓ¸¡�#„{¬¹êEÇHç_Z�;ÑJúåJ…ä øEñ£J¾ýÖ þ+ï1ývncec�Ä—cH¾Pس1Oöx“AØz¡<œP€ŒÅ¥j¹»]\3vîˆV+Vè^u°ÏÙíZ]zjäü`½—êÚqUì>áƒà›ñ“uµ¢ëì냢ó´Kÿ°^féóvqe–$&O´‚Õº¾£þN|…R=5¾æv ßKòL—#ñåîZÄØl†¯úöBçèüéÔèîŸí$ èâ·ø³­b†*Ð 5 ù6~^™îôw2#&Dõè^vÓpe¥µŒI%½ÒDICó¾÷ó›ζc�È4•]aþжlT¾ërÇj£š�å˜oÆ Ýd{Tø rdëŹï­ªáp73ß’Ø™UqË"ó|=Á´b•‰ ÿ?%éE)ã6û¬6ºÛ".^ò÷ܺ åÕ£häBäñ³‰Ý ^F¾;IwuÉÔÑÆDï“oߥšHqAŽhˆÎ7œí'¾²­J0¥f¾ŸÉ�ùLÚE1H+±ŠÌ‹)¿Â¿Ý\‰°Y½ Œúü³„M•{»“Ðfô@×¢ŒÅI%Àz%~Å a#rÄ\0-öVžÙt‚ÕìÓ.Û€íY¨2C³ÆüÐ2±nÐÁªðõ‰È}­Þ:ñ.ˆíºç¬‡+ãìÎ_Šéú",Y¾ÂÛZÁüâ …t™œò.Ôu yÔÁ6Qôœ,ÇøÛø=ŠùwºJ§jÙIi¨µx0íav�T}ꎻ{§U8n9AÓ€ô…5/ˆnnÏÜ0„7ÑãZÂèéK§7¥¸½"Èåöy[¢n24‘›áÞ�ì@Ötê‘gS'¥ÿŽôÆÉ¨¾%Ï9¶µ¾Õ ÜÂrãEÑÚŠ¸‰ÃήE–'«e1€D¹¬ g! ô›Znž1OhdXÍð³ÇWž›ËÃÛ,Ya88<õa˜9»÷ þ&0˜#Õ¿vŽ¿@SÔà/zl*¦2ÝÜÇ`w^<¼çþ½3þ,Ã>Ïæî6em;g,FFÝÂÅ@ÊáÑ8YÕþˆKÃÖú]NÕô`á O¹t®ë­ìÎøˆª«Dú&'ËO¯¾ãÖnÖF$®@üèbϨ˰�Ò£$=IíŠa(Rq¬*ûѳúS­'p�¥ ?mWÈ€ò“tÝ>#`Ÿ!½·h°V§ÎåA<´$�lC`Þ冂57jö¢ï†…ÌøîÜ…r ùƒ}Ö3 ’R}D-¾Ñ£@9žøÄ§3SdLÞ³”‡§YKÃùöŽ)b4Ìâ )ó[«JQÖÌ1s9¡ýÞº�:Ú[%‹ÚÞÄî fûµ„g JJ-J蔡½,~çíoO0Î-EÉ3ºÚìîþ\ û3]‰³p´ÄR/ÅÝ–ýq6>(޼J %y´Í{€·Ëqàæ TÅj­çRlÂMâ½¥“a”Û jDg�–QÅP“) çJ}#EM›³nOÆëm�ˆî”ui¨áÛšÌ6Ë‹RwŒŠ¡�gÙcï&<�žš,–Ínám�‰÷&ÒW¡zÀ$‰ŠBv¤ûšWhÈ6ß\N–uš]ÒÌOU6×p\·½>ÃX7*¬5ìJ4ò\ŽÀÄ�<Ê ÈþØtÅwËjƒòø^cëÍG¤ØÏ%A‡”z5LuZ:±VD¾æÕ§qû:…³¯»#µ2žêGvᇠzõ*mJäøÍà Ö/=aŽt¾]…Ç£ÈXf Ø�Æ¢s†RM¿Q‘­Óz•]w‚Ù˜ +7ÂàÂM)žkt£Ñé[9Tßov7§Œš.¸�j}³‹(£&ÖÄÄ OŒž£Œæ¥³ ª”«j9u*=ª¼„Ðrknóµã®›Ë2 p™`EKÙ?è-ÀUÑ�"f¥ûßZ–z=Lu/ˆH½âœ¶@ÇUÏ�\AFÏ÷’°IšL˜°êÂU’g«ö¢ÍÇ­ⱚ½B–[4G+S¦|zÌd+"牳x6׺Qkü‘ ],«+(�^C¡ n�fËòÇ*È(Ëd)‚‹3(ê«°Ï_ü®Åszˆzï`X茧¹·öb‚µ“7.¹3ƽû¥éš,{üÃÄ_¿°A2è î1)/œØFyAÁHª­ 4ûN½‡]´ ¾Iu€¶>6EÁÏrõo�òàü€µžz兩t;­çÕ×Ý5¬}Ü !7cÿ{ÃÎj?Oážä‡·O#èfÓó Å9§vØàáGÊ“ …–d©ô&‹èæ‹ÆžcÀd†'²Í`2 ³•Á쭎ɲҔþ¸ë`ÐJ‹-ê¦Ì:]ë ·ÂŒ{RdÀ^L°$t( [@ ¬˜Ô ãáù\ëÖ€Óa‘|ýB«vÂÝYGaø¾ä/Ô}ÈoÝ)áÓð`ÉÅ4Ac#­l~áÜo-lý—ZˆqÜÃר®b‘,ÍÃÍê±*}‰ëÿØÓ¦€íR´ŒTKMqÁ?¹˜Å¹¢ÂéÉ—Hä“E¢Ó› ú8œ‹¸Ä/0óºéD ž½%úö¦åšà70ŸyðøÙb*]¤…y)—y 5ùKœ°_‡|Œ.gn C±aœ"¡½ä³tßþ"?ˆPî c˜}ëÑyUš Æû° çþ{ã—GÚuº/1 Ù_Ãõxl¼xeˆ, pôš1æN�x=¸¡,ð ŠÚü›OùWñl¶¬¦µoc�})d (¹ùm½Æ›ÄocK‘¶ü}ɶ�æªTÂZåúŽ/’“j"NS¦áÁ¹Š~Ø®N�|$aí!%$â2SÐϨÜÞ¯#ÚZŸ0 vÓhh%gl°n®�<óù¬ú:HÚËÔ€aFçé0ñÀç§ÂH-x>,‡Ã ‘6’r˜zκ·A>âéÁì,êÉ2†­ux†‹`ÍàqnÊ/§+Y¨Þ¥¹I-1 ßô¿�U³mùT}#§�_¨+¿'‰4Ýéq‘Q#c€RXD¢U(,ÿóYÄl „·90k÷RþEž¾\ao¥wê°A9ò„n°\û{•IŸÀœâ –œ, ¤ŸžDâ¦ÊøCNÿÖLÖ`EMŒi…Ú¢x‰ø‘S²±5 ³¢PQ¤ôÑùðQ¨7ÎY([6ï~ÓL/¡�P!¿t Xd�ÅJ/þ[ðÞí‡4ü5Ò>SÀ”æ8þB˜]ù³ß$M†ÄyÛ^Úö�²äÑs[;.Œ‹eFk]΃éCF<мlêç�fËQãð^ AÖUVrÜ—Ž Ä;öi�$;”+f’â¬1x­ê0LÄVyâÙÎãª)؇pà–5Âg#ÓÒêxíY›¯'¤RIžÖ™„zúú“àøìÁÅÑ×Ì™b;½@Ò£µ=öCÝ_¡åópרĆ:R'Ú\[-¬Ä$È {(‹ *Bî÷¸dã…'eìUŒp6`nÙ‡—`^€½mZÚ�ñ ×-Iæ*�——ÿE9òˆõ3g®šòK\7œÌÕßOJ¶¤X"îÖ¼}:•ÉØÊ ¢¹ÒújF3e™0N˜£qŒ„ ºvª«-{n� ê€úÄxä¼sŸcÚˆÕ›ú9#8šÚw©DÆë"kÉ—VŒiÌb“±Ö“9÷€ˆ #“©žX£Ï ‡¸ÿ%M²„ÑŒŽ*<[¢šùžøÅÙ¥ìãPø‚is¤Ö}OõyéL“ø�µ­gW®`r ¬¶ÈÙ“‚®D¸ …ëcʘ÷ÅñssÁÌ—‘Áø�6ë–7f Ì«Ýò›U}S Ê�'W Y±ÈVm¦\'Û@­ßà¸Sm]‡ðqrVÕ JÜ0!½)Üጮ'ÁÇý蔸Q–Ëil¦¥lçB@~½¹2<î[(Á´åñ‚…Jüœf/ÆO"xÅsbE¡ÑŒùE¾˜yn€{“EÚŸçÎav�Zó;Èo©€«Å/›Q´ý)ž+Oî›»jæ.#‰¦âÞ1H�ö› µX94*Ãj'z²¦%jÒŽAZXÓ; ”Q:z¶ Ú¦Šõ?áÖï�¼&<·DðQÿÂgùos 쬻•·×ž*<¶!°�)¥Â¬z¸B»ò2ŽlžÕþ íx†OHFô�s›ß讋‡.û©UÚêƒçýžÏ÷ªØ{A×/$»“ú¾[eþz·ÂÞÙ™¾ÄH:K™ iðUPƒñÔŽõü´îmaÚù–@ BJs×öe~PsèŒQN'¢)?Ž µc¥¼Õ3\ÜB­ïnf׿ÞC©öɉ€¨ìŠ('_ÊkÏ€ÉõÅß x$]�6~)Œˆ% Ñ òð±ŒF4Œ6Yâ}p“tÛƒK _1„ñ½íÕg4#ýær{ÂÜ_�„�ŸRbü4K’L Ï‚mÙ#衯ª: ™÷§•o®‹*‚hI…Ì"­cðÆWµ×Ô¨†`Ïb1KøÍ ⃕ýI YÇ‘i`Ìa,z9k1Ax[ÜQ¢®0á<ãëϾ‰ 4È�–‘Këº^òÝBN~—·÷;÷“ûËae‰‘Ö1×5ýíoPŒm­©˜¿Æõ£‘kCßsçÀÍ& y@áPß|!OpY˜Žo'µ`=8Öz$ÇiZZŸŽ$Ñw~9¤õ"pQJêÙu´XùÁA•¦Þ"S=&ލ0bUÉ:sœ¾8‹|&E~-7’okEV»î÷ÿ°o‹—íñ•p€ ‚+ZqE­‰¢jø\*K¢ª8i·½†iã\[˜„è„å¿Ô©£|G_ Í 䟳„d€N™¸ÀÍ~üHïûè›Î¬gq”Ê#üÉd³õrÀ‚­ɧ§Ñ�“T s§ø,ï\ãIpo¬Xp±¹x>Ò±%ƒîŽ cZUÀ[˜òñf)aˆ¬Ö¡žl^Ñ(~ÈÈwœ/ò#ï|’Ë<×"FÅ sð¦Ú‘¹æKßkǘfß•qq˜²à ;¡ùëÁ«$þ©é ÔÝSÀøXò#ö¦R�Ý5Ä�B³Àÿ©àse™KZhjEú6¼8»îð`OÈÈà’z‰‘þ¹Øà¬"U_¾/ó6»(�D±9~Æ��›,‚ÆÙ‡mnÿÅój’½�¼‹æ”z^*…IÁ‚di¹Q•ómíWØbÆ%^¦[Ià“ Ÿ-ú+Iàjƒ¿Ò¢Ãk‚Î|QglĨ—Ð;,bŒèû^Á„ ¾¿u¥wS:EVºÛö/`A­Èº{‰5e0í„¢å}8û7⻟ìs!ëééƒBü–-Ûb]a1(Y÷GK(ÍéƒOpú³^ã;Dxja'ž•¨ÀƒDžAêAC …'!¥¥ƒ6p“”= óÅ›4öYKP}†¦±“¬ÉåâäAi ›wèBЩ‘;ß=p¸×W‘™ðR÷¢ÂÆÈL;r..ùÅP$Ò¢“û8ç&g-3§þtƒ1΃8âì6¬P« ­}ŒWáOö{0ât7Ñ»‡³�Óñr¡ˆ–JÑõ@¯‘ &ng>ÇCãѨêϨ ~H:&£Ø×CL–;•# û„µ9xÜúTÍÃè=¾B-blT—ðg¿²�›ÐÎZÛܤ&Ðe³€€³/&u¸O�pÍ�û)ûÁ sÒ16¾"ƒ‡´™bõ€0×ïw2¸z 6±¼Øï *Œº±|·pp΢µXÉ•Âoœ0“S¶kY`eƒð­„û‡é³éÓlO#{M§î„XX˜ÖÓb&YÇ6ذة¢‘ ü`4ÎáCH˜‡ñ#6ˆ«$8ÃvûéáB¢D.ŽFkÀÍþØ  7ž‚¶Z>~ÿ 7µ)Q±•2•�˜(&®ßù„MËbøï>]Î=|ÏJ©-všÝOL˜�¨Üñ’ÉbpÙÚ¦ !µÜ$=÷ (`k®þècv\Ù÷‘Ï5´ŸSbOŸ • ºvZŠV“Õ�gÅôx&�0ù/)YGMîÖñß}Y^ÓŒù:s_ì¯O /'Ä/¾l^¨O«ÌQ¸Á1�IŒØqÃa̾¸Ú^™ ]ƒXC^< Òë8|Vl±=ÄÃ=�Çà ¡¢„#KÇ�s•ts2íaÅPìü³eè½÷áL‹y\ tM= ��P+§œT‰ÎnžÁñ�OÅ‘Fü�rÒsŒ ÜãÝ\‘c ÏŸC¦ü‹~Œ�„°˜±Ó¾;ÀœjgcÛgÈ…?Ò¥l[®Íw“uüKó™±C©>qûç�{­Ìçà|©Ð8J©ecp�窈âHê\ óIJ%¯_ÏJXµX€Èæ­£è²`v¼'ƒ`S…ˆ ZXj¿ãÕná}¢k[`e�Fà’OK´²f?ó/ýÖÛïñMcGìéB_R¤÷‘ß3§7µnzGTG�R™P]ø60==I(ú”3)}µ4¸�‘úðêG~—5×=5«@—÷…tq�3›àçæ÷#J9¨Š%[0õñr¬³oà`�Ÿ³‡NËxà�¿ý!ÉxÌ%j}8‚¤v¶ý�¯SĬk�oÌŒFPPQõbRäTv¹Í 6E0H¸+U?€îYa�ÍŽjœ„ ÿÙ°ÖLtw7@æ¾ù˜ªQ$y³i·Ý´ãéˆÓ’‡‹À´=²0 í&†XÈi�¿¢°—ì)zTÈ\BdmÆò³eÇ[Þ�øž¬ 8s Nwí:œÕ%H,±;×r«Ðû‚|‘ù¾¥4IÑ›ÅLNëax”2òO‘µØŒ�“^3a dÕÇG¢l@Ô[JË3äA}J˜ÛPäÛ †9ÚêaM@g¤N,ø9�bÁO®q6B0%åÊN$óy“ׂü"Ýñ—Ð̰õ\t£Œm²n=á–/r¢¦Õ‘ýÞA¿Fce÷Ï•m ìûŸ/öºÂ5f¸ ¤c2€¸¹n`LÏÛ­Ôt´ô»P½I”˜=ebnºpįÉW›»Áq ,GÚD`ãqM©@íõ5}¸Ñ4írW º! [sÃÁ·BÜ{~ÛX“îGk¸‘™\Œ0°î¡PœqõïG¾�:»ÂHÖP¶]p 9˜ ЇÝúÏ£ˆœ \¾0óa³Nã¯ÌY�–¿øm�±11~™`hf&q—Óƒt§äàA>î2šªÙ„*?oãDŠýÇëÁ?ËC$R4ÞÎæ�€¼©½3ÎZl0Íi"ø�áePWfšFf ‚ŒÃ¦é¥h,ܬmÕõA¤ uu÷œþð ðUºí£n»ÚÙsâ9†IE_ÌŒŠ[Êahü•ÄH‘î‹!=QS”ã"mHö³l梄½Åd, %Ó©WšÁ K ¸-ŠD ú~©�«tutäaHØÝrâíš(’s™ò׊zµ�õ(—ÇL§»¹êŠ<ʹ}£�Öñß±ž°R0'Òo½všŒ s<³^fשP�ìÂäz'stDŠA¥d\çTEmë-rÏÙp¹š1ðzqÑʶ!ŠTkÑ{úOÚ>gâ3wÅ‹ÿ0‚°@PŠ–ÖM~@–U¤zou¨œJ‚Û ˆÖ³÷‚ÁuÀts“*Z½>wÄ\±.TÌÇîÉaDt`‹¥Mn¥ð”®p53Þ?!Çï·¡GP}U+ÏLQ‘¦IµÊà‘)w­¤$�^æä^[צ@ÇÿÑîb6Sña’}+:ªœ$«&¥#t‡œC°²¼Ã7F�§²~xâ–ýŒrÀ žé_3J#•ÍtCUË–2Fïe†3 ( 'í3^*»¦±Ç,圾_CÙË4!̶÷Ãa8§GBá5åƒÉYÚá/ªåä„dߌ¸žG–±âEó8ÁìñÔׯےÔôbå@ Á¬õ~¼<ñ}[„…è Ó›¡ŸAÁU©‡B¾ÛŠ[œ-·} 7‡~ÛîXLdVC8½¢Ï5w¥1û¦C)¬U,=S–±Œ³*> Þª?Wp(ÿ˜h’ æ={0×Â^u@Z¤Õ�¦”§[ý 1jd÷þ…Ž?’ªþxCusµÝžŽèf]âtf¥�H±ÃcS(¿!õòœéàVýÈ/úí»3“vuHë×é²Zn¥Ît"/g}J'’‘óe,¡ã]޵Êû´^§lÿ‚ý¨\ÞãÆÝ·oooDP~.§I@ñQ½zì+®µ=»ä”Z”Ëži�,��™*×ù¾€2y«� �+ [�ÿšœŽ†›‹í-{ŽË­þ¼èÙØx O? ûúÌŤkq ÂJ›­D™0Óy¯²x¦ ÚÀ<–ΔBÏü.Ò.æyÏ·(‹ŠØ€—¶™ I¤ût)€žŸÞ"&ù ¿¨õ1ì¬Dýâ.4M�Ô•‘Ùñ½)×øXöw†ƒ¡ìxªM«£¼•*3JMŠCù ŽÀ>@Ø$‘« j¯‰€¼÷_ZŸá%Ú[zÕœ—Kî€1ÂÑÁòtõúžÆà'Ô/¤2õ~�&óùÕ™e¿w#,è½ pÃk˜h¾�*MÍà?>!€xÎY¥…ý°ÚVÆ&0˜–]õÃ,ºC¶Qßµ)Œa{AÝNOÕí|øÉÓ¡EŸLs.ÿ׿Â#©ôwÑj˜Ë¬VLú‡ÿ¡pc-åqÛ`©Â“^kÙ)]¯ƒ[jej•O ðŠvuzÉ»9@| ç¯]e¥Ùo޶ÇJÏÙS¯Ö=\„³iÅŸ4z®ÓÎñÛ»K<Ã{¥Ô{‰ O»|HˆysqÌ Æ!©ÂÁwü¤zØ|üÓ.·:PhI]dÏ)žf¤¼Vµ‹�?� õ]uí] úž©íÑ ã›š¬Í%MówÚòbp¹¸Ž£:ÈU�|ÜTˆŠ¯ÖZ™ì~ K�vç’°«QÑ8ÎS¼ïè~“2ñ䬿”P—’ÚáQMe•z¨è™7àø=ÃKç@:$ØK‘ÚGë À˜pqO§9š¦Fšš(Í~º+ï÷ЕmÆÅó¦ìdrrÀqÿÚÌö ¿¨ÁÊJ6r[Ñfêžê~õûÞg¤4tÈ%dRLceöø QÖ¹ÁT} û�Úz8Új¬šº$i6â@¯×@܃U/ÿ�=’ #Ž×ðÚ¸ÅÚÝSx/‚§¸ô.‰†�jqþe¯éëYQ¸zܽܰåÆÜÇÊ0~¬‰˜eì¢$E¤þ@àÉÔfªS ì\L͟âË^Úc·i@daÕ.šô%¥W©ƒÕn9¨§SHŸè>öÀø/%xÍ[ªêYΕC"«‘‰ˆHfgãìh‚^ªÎŽ{hía{£Y`åT?ñæSò¡ DoXÉ¥_sq˜/àŠ×<‡î.åƒÙ%eW4ÞlöتH:ösD¡y6TÓô®æ¾ýŸÆ|_<ûmïú{›±O¹G²|ð“ê1´c‘æ\·B†“CVÕ ]-jšþØYÚ;Ó¦«B»,¢üˆ—:ŽÇ9§S×θ¸š<ŽP×)SÍ`»’ç� ~n*‡…/¶È–ˆ‡êÀ_Uw{Àp¡Ï)%€eäã2—÷NZ´Î’õ„žîUð7�ø5<@ÿaâãýCÅa/&U2}XÁ2ƒÁ¼?švW•­Â­ÙÜ ë3N^–ŸNKÿ¤«ß!¡­›ŽgRß³3ïüÖ…‘|ü¶vA ;‹r_çVh”FO9‰ Plò#�‡A"sïÙ8F½´º¿ïâôÍ›a¾Ð ­†@¸²ŸÃg#ÝJ™�3Q¤À,ƒÒDÐáµ"·›­ÑögõžE0Êc€ŸeÏk¶ÀM¶=yVH‹BÖ´ãK=i|t|l•j @‡°“³7dæSoYl’ì=D‘*² ì½ãÃ1`˜ü> Úkõ`QÆ9B¿öIøµÎW1ß”x.[©h‚‡"AÃõévZ9ZÀc‡HUÿ0³)‚Õá('À(9sHþålÈÑT‰Y±]¦H©3-¥eÓÇý6¶•‹¿büP~mÕŠww-¡ˆPÝž-–‚ø°ÝEµº”½ÖWfÉ:‘„Aðef§uoóZÒgÎrj:'×WUö])eíwëÖG‚ƒ´ZfY·9l§‘í{º“ÑÞŒ#€ßò�5Eq¬gµ!›l¦ø±ƒ€Y§Bý}�.ì7 ە殈o¹‹Ï©‰™бÄjËjŒÊŸØAg*crL*ÂãåNGœV¶Ë‹XP~ððK Ú_~ŒwU]ñZ àsl½Þû^1ÿT×wž�\¨Œ%f*ÙH&„ÊTºE€�ÉÀ=Ì›á ¦÷�ØYÇÓmUûúsàIo¶ý ‚&¬&ª g!z"Ÿá}{BÌñó%íZvðÄÄÔ€@¸†­`¢,�cžäkÊ·OhâîÚ_œlþ@·Bñó+«:b„z–h§}á…~!‘#§Ä–:7®j�Qˆ‰‰w-°ÁÇsL–�í³´FpjËä|¹mŒÆ;«{”Ä!äd„.,„çëô/Iyæ…‡)m¤ùaL—)†•ÖLyYåq ßûxŒ–¬¿UD"’“;¹–³d„pzCSÿȾºæ§z©Ó+)½7 ªvÿ P—â4òGú,-\‹<#m˺ŽÔD­½™“ÆÇ[bÛ¯ôPÑ„V0õ}Su$·ÑHq°]0{Ÿ‘vÑ®†rÁŠÿZð$ŒÏ%$y<6/õŒš\–V–eúEzWO{£ØÕµÑ ¯�lo#Ì‘q‹E�N’<1ÿßâéÜyj*wœ8hÑ  —u+�âT™Ãeö~øµÛïcʇú°aÊ)ý‘q|ÍÒp9SØ~áЪ? ±î�ͦ‰vqÞa*ËÕe�\ð!þ˜Ÿ}aU�Ú� íÃ4ýÓ°ä\ÔT€R/° Lè¤ ŒÁ×‹Ê V ô¢Ò‚Õ€Ú.ZL üë|éÌ+“Sñ¼Žßï^NÙT O7 öÄšr©"äúg''ê¼x+EÖ_JapOîøË (Š‹xð¹ ö’¸DF¥Y³ð™]Îõ0 U®Z³ Œ«áQ±Á˜ÀXŒªnÌ©S�ªŒú¶£9¨Ô-R‹#d^?@=Ÿ¿Ú]g¹-Zf3²z›Î�Ùæ°:T~5LÕt­€÷ÊE²Ì%Áê‘™µs°žð4ƒ@çÔv·ÿÆgÙec¡#1|ˆž /òÀÆÇ°Ow0LfŸ›W³qÔñ3CíödKY¼UŠßQ8Ñ…ZÇh%Ö�.Ñí:—]ÿí—dÏzÔ°Oæl,½ˆrËfÒ\Æ`€‡§}!ÏéÚf½¥ê…Ï*œZf�)Çfßt66Ì‚iwÀ£RþC|B åòiÁäl¦¢'#Ø|%ÌŽ–š ½u„š“÷u¨©Ù·£~Ï.ÉéRû >”¹ƒô2nÜ�”ê¼X®¬/ŒD^WŸ–±Í^«|o�ÉÁX¿ƒšaš Geû{ÀG9Z°„¶³Ò"ÛKÖÎâ%M½ÃSl{‘qΞ¸!ìR¨çÏÐ,eÙš¢ÍÇ#Sñjé+‘¯©‘„°uqù£çd��)íxC÷‹ùú±Í0S5ŠÝ“_"jaĹŽý7b‚�Tv€ìßÚÚõUï¶$JÍkø¦°œU"y0{Ìßhà/ˆt„Ó†4¿ÎbŠ×Ò –“(˜{5hÆàÍ�Ï�îÔFUãЋŸWÚAEOŽˆ×bªÔ­ZDœ°–‰ÉÙñ‡¡YlnŒS÷*ØÏ?‚Ç¥ÙЊ"|AÒŒC¼œ“™tÚ|[‰IæV¢|Æz|!3Lg"»òŽe¦@Áþ¥-žuEx‰Þ£�á >~S*βɊ^˜,=«Ÿ0/xŠŽlñ8ƒl§B¡è Í*V!‡z¬¬Öa赕 ?zCŸ,v¨-ïcŒÈ—D$£µý쮲’6Öºð›È(ÞM§šD´Ø0«¬4«™ÎJæP–ÅÖÈŲÍ*¤¡ªoí)zX誥C‡B7Ò­¶©¹»Ù–!†'Aºº½›˜$WÁ_1(¶vš|“æ¿n×½êzÌcÁ雤óÉ•A°šUÕëpûµšâÉ1ltõ?Š�F⸇»�DìÌVÃ½ÍØ¾ª""÷-(½·¹“è[¾ïX)wêm58œçΔKRš¡ö¶SÁÇïåÝa}ØpÈPï4–ÑŽ°Å˜¼Xc¯Í^´“ìÁ‡–˜&©Ádîòy[°íèJûyP0+S9e"ue™Wù²¦7øpw1�v{œ;”‹uq>úþá}�gŽ•çZE�§ ¹À8±Þ»IäUž¡`_&[^=’Whö Þˆ]‘|Òób œ‡PžÍ*�L¶·÷¬¯uóÁÅW'þõ¨I?ÄŸ¼*vf›[ë#™ó¶H¸o¶OBÄtÂB|áBά}êE-øotbvÝò"ëw<á’H} 8 I¢ÄÀ›öh£%‚4­Z‡¢ˆú U½áIçq™è‘ÑòýŸAáEÉ‚@=ßñ± &⨅³q²!ÒŽ·ÖÙ.MU—“c—³ø`oÂß(¥‚¶ìä¦êûu"©œ”­JoÜø;íÂC¬5¥¯ÕÉÉ1%ã#CSUH”E«É\®2¯$‹‚.˜¯¶êZ,Åyh5¢XIÌİ&(‹Ð:�Ÿ¼áP7†þ°ËÑ�ïùŠòvˆ—m¾ºN�9Wî£0J bïf�"„ŠV«ÎÔåª^}�<ÊEß<çÂmÍyo=±å+ÀÌ ƒ)ÊÈw*Ä %s„[é¤E�8ù"£*ö k× }¼žÆ™¥• C9vÁÁ²Iõ¯v(g«÷%¸Â𝝮K/´¸ÊØ,"ž«¶á×aƒò©ÂQô{ècZðá©ùDfÞ‰óÈåúØú'(éí´ýuz bÔòã@#‡”·ìçA•%¶Dœ¯´o¸ç'2­Q6°† ðTR``úv£Òn2_ÒB*#]%5PÇ¢ÚVªƒ©�(h“¨f³rÞ¦`3µ÷EƦ·$ív½Á½d×£==Ñp“T(óÿ(Q‡¡X&´ÈH–4xd~gó5¾*ôãMÀã3½Àº:¤úöã OTBu±ù9kíÐÞìÉJIÒY4Oý¢ƒö S…~ìŽY ˆzë"èKÞþ©ô/ö5Ç4‰syæ IIX°ô¿tÉöo%ôêyÏ‹£ÝOªí>@gSÃûºÑÇÙðU< Ò@V`wÆšyö¼ÎÕz^�BêW—,º¦Á·À±•׌³Ðê{loécÖIº%°®!¤4¹{~|}¢&!œAM�•gúy<)§5ÎBc)-^ˆ� Ä3Ë8õšê±mÀ%ççäÁÀs68N嘳ë[§þóùgÃCT uÈ!>wdáJRÚ"°DÞž,Óaš±˜�=-ù‘i`‘¯ïÙ˜?½ño’¤¬ÏÒeÁfCÁ.ï¹qå½0…^;‡HWBà�â°áùdoö9‘Ë{Á´Å;÷ç(mþE~*:¬±h¹«1sÅ[ˆ >Šæ)R©Ñ„ëh ²¢Ð¥ÓƒJˆ½|!ÐÙlŽâU5ƒ•¬ªµnoŒ&·»òª¹§ó¾rÊg�¤-ăå£�žiÎyE…ßÅÞY÷rª¸R y�"Æ3œ`Àèv,õ9î›@ÖŠÿGIûHC’1\8£±&‚›®þfÍe‘g¬”()‘©—µPåÖUŸ3æ5ÞY`—ùró‚'yÏ?A½ø ›GK¹>»RÁÜmOó+Ó™IÈB(°As#]G,€4YHtc$àâB½ †Ž ·GAwšêË$ÒëŸ> ”c\¬ODNšÃ_¤ýMgf—#âÝÔÙr?“ìöv)ãPÁ®fìÝô9í‹q„3+n%�¡ËŽˆ}µÍ”íÔD£Ù¾Ôb¹†ðÜdÛ±G 2ö¨C;ð·Zù÷§½dŸ¨ì‰Âóƒ�VÕåÙkæ¡q¨[Êö¹ Ü««ê j³¼¢Èk-HHÿë…Ã3”GÞ4|hœû¸R7âȲ“#]SCÊšEF·Ú;‘~2&¤í5k(—EÂ’·û˾*:†*V¥kƒ?³ í7ô¨ÀubaÓ]¤d �°è6ç°eE_(°B ³»•bDꃟ¼Rr„¾†Û“;+çS9؃Ÿm¡º†é¯ÝcøW÷*¥Hôá2¿ù6%À’‡ŸmüeõJypCð¤ÇÄd[n“t¥6e:Û «Ø((Þ7ª o;þÊëÝyLÆà&]ѵyÅïõAd©x­vÞ@ Áh‘î•J‰o �vœØ;»PÈc/fÕ® ÚbôXsΑ²…ú’8A˜ @wC½½É>ΖŒT|F˜ÌQf&ó4 (˜†bM_½o£`ÂÔšÓ4�­àê`Û[ØäÉ*õÒDvÁFhºÚxÉCzŒ²6§ìY(=¤ä5±¬èºJ4¬0ÎÚ"› lž†œ¯~]„Ô1à¹Ç⨙´e¤Î›ÇŒ#M$’)¤¸ î�ÔdáSƒ¥‘ÂVÞdØuÅ…ãž®“eM&Å["—ïæ*ßËÉŽpZ �•è«IãøXd™Åàq®r¢Õ>È/„ú]°KKŠýß+ÓÙß[—”XG]'Зâuñô¯V#<ù€,fN?´†ˆ9>ÀÅo£'ë!JÇO ₚ vBmùÄ�C&CbüXYQûÐæìÂ�Ôî€Íœ}‘lÞ$éÒ²Aa/D°w m‰ó‘y*Vì„ÂÕ¶x'Ä»¯A±n YÙ•ûdDzé^?³+³�Úzy[­š8ã§CFl~–ܨp±ø÷¤-ëýý|Ò½öÁs¨Mì]š ­ 63 žAØ&"ƒ¹?zä�*¦‹�1$Ô©kÎî¾ðàxVr輪-Œ-ë�ÕµÙ°LmºãyïݫŌ-‚Àx‚c¡Ÿ{Á¿Ôfk¨Ö:TÒHîöê@þ_oªv�¯O» µÛ©yÇ,PYíbf ΞìÔ"/e´7¼µW´“/n»W‰Ñ¦»Á´W„‡OuY_Œ‡rGÃ=Óµ™ˆø@U¾ÛÛÀy‰á¼2bدmh«ÇaD$aQ2Ï$åî—ç\“1ûªf¬y•'ÁFÕ+�ÇYrß�IÇŠ­äŽóñÔD�Y§ükán'Ê ŒþóŒýä–õ0]ÄkÞ ÇsÌ”Ö ™�šÁg¹ÁºpŽvÝÉ„£²…Ö bø£Œß©ËØ9»OÐdÝ¢Þ–6™:OBz'Níš¹l:¸ ¶åWÀ ¶¹‹’öºOÄc/éß¾ªað,ä. GjqÀ;潇ðçh`‰P¡3ɈÇyáÒbz±)ÿ«¨åÌ�°™S„L±¥ÿö³®màaP€<ê’a¼�!+âÖCvµ8�•&$jsÅÓã \œ$š9v)1š:Û8™hÔHNÚ¶-¯3:Cç£oºõûaßÏ–e mÛB%�«åÁ«œ  Ù·jÏqä5$›lñwï\ú@"¸¸:Ìéf©ê‡1:ϬQz5‘Ó0ýT§Ë7ô£wrLИOryû»qÆÊç˜>YnJW#�ïðöL8`«ïC× crhÚÿÒNÞ¸Jö²ço Qi´âØÂ=Þ­M‰08 ÂÚwˆTKð#G;¥óºydYBãåøŸš L¤§F°ªÏeÐ]ïŸÿSn%Sc7eKcØÿbÆ¥@‡“”Ÿˆ%µ0‹Qhô½G%=¼¸Ê,Ün(ÛK§»xÎgû½óÔ*KL_ •âš0V û›Áÿu‡/-Œý/~Èÿä3<YÑ‚šM Ueâ‚¿(�ýŸøb–6¦"¦ÎÆÿ{= ÂÚ¡i#MÞ‚Ž MËeÅ|´ÙíÀž¤Öx_Dc«©$˜Ó€ÿÇÅÔÙ…ÎÄÐÅð¿÷ÿÞ©×(”ÅǽòQ«ÀP¬¼D×ÿ¿Àý£§(U[#8¦l¦ãA« é¹dmÿ;j¯¢êÙ[d¶?“ƒòì¾{Öì¹`îƒÚ·ü§»$25‚´ÿÿÎ7óð{c× ¡C¦hÌG i:¼5þO|I1ea€ÿ�™ª¯èÑýM¿Ò¸h©$.€MD‚b %¥nšÙ«˜Æ…Ö¸Cçdc,0˜§›¨{Lý‹vø®“#�“¸‹L�’Ãj]˜2]Ö†g•ƒt¤ñ¥ã·_ éô ¶ünpŽ=¹õ;Ã:xª³uÒ!šª9uMƒèô‡ŠT¯Q¡jãîD”ÜŠ g,#³'Úº´Üqˆw?€É¬ˆQ j’03å|·»XI¤Z÷ä¬÷d{ ˆÞ‘h‹xú¶í‰³w„Ù‘q�dž³YJ$"Îk´m,ˆ¹NU§_îlîkN¤.`Ëáa)TéW-…tySï1’¢½æûâ·ŠªNmAòB@»·$Ì%ñ n„Â3ºbÛé÷ƒ<ª&z­] éØö;`ã¦jØAðîÀK£…†ÍÍÝÑ�ð*‘EUAÅJ Âbƒ©ùeœ*}€2?Cˆe´ü¦“d\‘Œ•8öçõÃ#@ág§bΤàyãâ ‡h2[Ñ~RNnzy/p#ËssKéA³Jéu½”yÉzIÐY›=‰Ý§ßÃE"î­ñ}¤f£cûÔOY£~[/i�ºŠ ÖJ‹B–³7.固y]Ü÷È”�,RÒÍ�òë¢ðA…h9½Ôµnon„ã-]e”÷GɆתnZÃÀ6êg̢ϲ¦>ËÕý-=³Û§ÛÑLKB À‘Æ€ó�œùÑûo®Íút"úæmWý;k*œ²ÔµŸ™öHãVñqÍ^D8KÐÁØWEÊ)Pÿ…¹²4>y)&–ªMgKŠî�nù èÄ…›S`Íc9˜£ Ê ¸2!8 rÎæ€¢ë•´=gÈÝoí]”V‰’S®È�ªeÜ-ì0 /½±½W‹}ç9Ôä[ Ö/Y�‰º?‡©ÁŠÈÛm¢do@ö¦ËGðNñ™™Úéå˜Üõ§éyïa¢>:† ƒ²´ÓvkÄ÷ÁÐÙk¹ÕYaäßV¬LÁýø+Äîê|Îɽ$Ö©¾lk¢ô>ŠM¼|Ú"H8˜Çu'PùÔŒ�du›™¨ËÆ%˜}¦+@+ˆ ¸n|ѱûªöI’r€—c Bd騴J®1\d%RÚ=¢ÉIõ$Oiµ]‡v뀹úÌÕÙž�TÝàXêŽ�sãò›"§™ú0=ê2i •m«€ q±s¥p�eGn<ȘJˆÌEï>WëÍìf­¾ƒ “)Ýqtƒ,þ͉�2r4m"MÜ‹Õ�›šRl%\ „?‘¢ÿœ’<îˆÃˆ–KSÄQO7¤$Õd¹!íß8ú‡*·I|Seð8Nk~aÁRãè*Ü'Kâc@^­øÎ´ǾÆ÷Õ|^«Ÿ5-!�Ú¹R!qæE!~eUùEµÚXÐÆJU%ô‡Ã-ŒÌ>õ&„éXC8±Êv|É5õ¯}Žq�Ú%XÛQ£¡ýÞn©ÎÀf^³Ý\/öä_FÑ�8dæá)œûYø¼¦ñÍuL¨—ÂW} [§¤y*Ú†»ÖÒ‚ßQÿÓ6›8OÏ¥*2]áOc‚ qÜw÷ä‘ÃJ:=ä՛ΒJ°¯Öˆ‰ïÝøõKâ¶) ¢âŸ‰;Ô2 Ä~µ>¸þ½a_ÝŸ>³ûZåùŠ5Y´¶O•SC=|ݬ—‹q.“�lüüŸàÊy€m'LËâþçà"ÿݶŽêÝc«9:®$?î&ܤ{}Ÿî\å:¡ã^[íöF2c’eöv(éO½oa„ ýª= iË߸ڦÅL§ÙÜ<õóDkÀß�u0²‹\;èžùé4¹hÐ+Gì²Dsö}Œ÷0WƒG6B}ÍÍXê~st/ñ¶üÂ_Ï¢b$¹Pݺ‡'›¸êeªû£|ÜJ™ŽÖ¾*m…”¦$$Ü߯ >Ûã=x7^äX{2\`¼¿5k ÿþ7°QÐG$4Øœ*‘K¹™ß³è2°.°í`¼’XN§pó‹ÞÖIˆóÓLƨr÷œJ¸ÔÜmƒEcÆ´c’ü(mÉì@Í9_s&µ˜bݳéý}¿€�äÓÕFx7‚b€¬%Ù5×MJpšI²%»Ê<&^±Búsèê…z 55ÍŽœbéè,Í Æ¤®ÐèfYo·ûÜê_â¢a½r^ës7ÜÛkú¶Äqçz;äwà4þ Q¹‹þ*pË»,/½”?z}—AHv !0YhB‚X]èÀìÑ!qS$àMi‹Ù…Äéãï{ ;�²Í°¶þL”f… RItˆ¶QÕ¬/l“Ü„ˆä4ýóvÒøUB‘Uóž\ cýžãJ¹�øŸ¼oSWrR)÷�Ó æÉ'‘®·ûÜœY<�‰q_ã[$U_K–Y¤ÂVB¨Ì8{nŒ¦•nÖ4Y=Ƹ͗®úóýÙIxÅÞ!øt¾>Ñ@X²qÔ{[b/»µÃ®Žb/– ûè“L=zx`²œIH?Òå¶ ˆ¾7";ÌßJ/ç’ð h?¡]Ðþ ¹_í�}ÃlõAy‘ô›�ÑŠu}zhoh_2A*FÃÁÌɼ6�±ñN2q}Ëþp-«Ôø ïàÌjÍ`UÍ-ÃL\T%\Î.c[RÙím%iJ˜ãŸÛ©h¼TNoÑêÞ ¯0ól•Y”AkÊY2�(B”Hùn�ðxg!r×,å»±ê��i:¾Ãö!oþŸҨ}®?RïzîÀF¢û-²\CÌÑ‚ó¤¢ÇëÜèã¨T*âP¿€_W&ð>;(h>߈‰ØdVÀw�®hÛF°ù8ï¶šk—à–’ƒûOM‹T8«û/ÏX¦-e~wœª?TßåÔYØN�Ï™>\âðO˜ xåFó–Q?<qõfJ¢glîzR�TO�ÂN\^]Ý#½•Õ�²2aÂ%«áv‰þ"Ñd‹ ÅSOØ�Ë’µ‘×ÇNlj ½0vù£s 0\ÿ¥®¯l–4w9컢‹`Z€ëv„Ý|æŠH9Gt°dGA„]0� ½žAlÚýس²íý2ÔäI:µ¦-EqÉ)ìg iO ޳‰^^�N`\iÁzÏÀ£u×}âe,×tq¦‹–,ÿ¾–3¼’…ã5ëÖ úž§´nŽùËNâã3ž¼Ãp°’ªÊýxÊ3vžÈ²Õ_·�;tß–Õ3âɱºA‰A÷R$ "|M”ÿêª9H9n–Š´j$¬lŠ8ܦä¯ÇÝO7÷‡×ÊZ­ Ú)›´nk˜ô<Ÿvº†O™ rÅïðÜ�€Û?’EòÉ}9¿Úi1 ;­†£ÎVÙõ“µì�ù°‘Z�%}‚14=µåލjwÒå7MÙJg@Ñݪ:¢4ø¥Rºòk7±ì“R¹™Ü*™³+šËÞiS5·œÕ#¥KÇ ãà—0çtñ•÷ �¤I»§ mÞ“ënû”E’´Øb&b•AFj3•Å/ÐÃÞ¯òE^ÙÄým…¦gß¶ƒ¦ á¦Û�³Î¹ÎÀuGƒ^��=ú¨þF£#m|$=DåB~’¶nþ�ËÔË=±6a²UÔïUf©Ã÷ö’eÝJéØp¾É.QDf›L½c¨9b<»�ë¥æ�·•ú…œV(¬ :º6†Pof(ZE´ìî÷qDÕ9Y=ÒÑw§ÆNøŒ{<°E¹ ­º ³ö�7ÓÁaV‘Ñ©B%mq"X†IS¾#b?iBéáãǶG¿Yí}‚�:qráý65g¿„F=K­ÄÛ}µüŽ ÕÔÆPHé�–“GæÉ�J»å¹Û?lª;tb›ÿcX!€Çè{çОXÖíf`sjA°ö§½“4\„þÄ3G½®äÆJ¼%ŒnÈðÞÝÉÝVyÙÛ}‰ ÀŒK8:oú�œlÆ�K¿_ù¾Æ,¶%‘ í3ÜÔº.ŠýUŒyÍœ 9{83é:Àƒ#é­Y½Ô‰C¹®ÛÕÏš¨ú~ÉÙ÷¹1�)9ën\E3é‘:eáñlÐÓËCæPoÙªe““n|a%oŸ3UrU¯?‹ï�¥Xåó†;uWA›BÀdÉý!§‘Ðp,ÉëÂÌí—ÈÕíÉP€†_EÕ„ËŽ¹+Øí�€;åg“sæDPì§¶°øÉ“Œ¶/¢§>{2:ŽYi_ºë™1å _p&­Ë’ûuóÞwÆ™ñhÕwÈ�Ɉz—˯=F_µ±çܽE7¨`žÝß5êÖíDð6,¯¡ç­üx‡ iÛÌ%ü+«Æ±Õ‹Ì¼þ/¾–‰±ÈüñbV¹Êîp#h]¦DÏ@> lˆ9]U�|ñ–¡½›˜«�$HéÏød±_¨í*–éé »šš`´"¿É?¦çPã ùJ‰ðË:Ü�¿<ç<Û“ÿ>cS‘NP¿²¤’P�a¹ ¾†m ö˜‹˜±Á6ÏÊ„ë6©ó˜o5ÖìaûÅÊ}‹ƒjÙÇi±X ÙÞÈ»öÕþ+O½üÉ‘™0+ôÙý/,jÝżH‚ïjY*ö¤EɺGm1�¤LyÊ�h¼e»taiÊ-Î_œ‰pl¼Fm™íÒÚO5*nêª&™k…½w8T=ïÆ¸sxz •fŠþi. ‰Du¤ :ÅDFîñ-Ÿ‘›Þ·?âQ:åm9-+ŸrH´«¤Tl5ǯ˜Ã¸+ INšs%Ó"´BŸŒD@ïéâ¨2/ÿ&²lΞIb{Pû{AvÔ¸3g_|«ô!d2þjàmÞÀµ½K²Ã%[Çz4À”vÑ/õúsí2 x¨QôëFBæí £ 6ƒ?¨eó4¦3Bœ£Cµ¨ëB•‹ªqÖØ{ÒKoÊ�ìÀ „äÒïÁØ#ŒGUùá¸+¤aÖäÅŠAöBòˆ=µòË×5ª†¢~‚2ñEAÏGEu×zq4¤/‰ï0OdœËHW…šà P|>þ±æð U.@”;`">2Ï>ïmîò冧§Ý7‡-üe�Iͦn»~Ò À\D—c –]RµÐ01êzŸgªž]†éôõ·<ê)½’šdá²7’ßÈ“d¨âT‚.¼³1ÚZ¢œÕÞ@)@#‚À4à5_Aª™½=\A>w‘ >®êSŒF Y?ð¢Vw°)ÔäÁùA­ó£ÃýÂ*Šj�ø7¯‚Û"N�1sêm@<q5IT¢†b‰âgY\¥:ò˜øáÈÜðMó¤ªy[L}éÔy´[ï ¶�‚:›µÛt)i|½ú¶à…sÎ3�r`„‚ú©lEuœ#"†‚Ès‹Z»–2'^t\QßËÏž…Ø5Øw¶´áÊg?nñ¦3EÅ–µ~˜R°ÉKú÷$i2v#1ÍäIlÝö©åU¹j�é<ñd! ö{ÐÇ.ãÚ„À²¨TÑò‘jSw‹ñ©³[çyâ×l>?UMÕœ£ ÙæÊ�A¶:é£?º™8.¡˜*±*Ì AðåQX=¿i,Åçð§E™¸ªÃêfˆP“ &@4 ÅS{± Îá¸p.S!¢V"|º( õT-û)˜ÒAêkë¿r¤(¥ ?­$­X�jœ[a=¿kÎD²˜RCr~uÏ¥¦­#uˆÍ§Ø …LÆÜ�ç’ß -½Ôò`‰G¸ìÈ&n ÌßT)æ‰Ò òŽÀ§µç"œªöè2&¢Ü� ›Éù`4¸ ª¨7¹³Æ<Ü^‚ürOæku @Ë(’ú¸­%/dèKÜ )0�t‡¤zÐx䌡?ÀëÆ;îCúÈmš2ßvlæJê;Õ†¢¹|YcH¤�aØÚ�ÞcŒ¤ýw²„—¦ O¬y]‰sYI1 ù‹¨æñÒOiî"³ÑK ãç[¾à»ŸE}¤T|ÅzÖ�ê› =z[ãoMFœ¡±Õ×.²òFN‡l0S p—¯¡š;#hF R‰fsû˜l8Ôžä\¢£w?ÏCs)7mß_Mð Ñ®š¼éðéAº¬}_a4Rz2„èFŽ�‡†‘׳>A@Bu¦[šúxjÑ1Xb”í `Úr&B4¥=Â<ÁÂKçC›¡Y¯8£ ¤S±ä ¿ÀϾj;•M„§ú , G�¤›eAC Ÿ}±€Ï£|.Çûé ô»Ì�Á–Òð ˆ~@Dê ¾¼.[¤vY±úù £GKj ‡6ñ6Ç/0ƒ¤BÅ'tmJÙ&gçÿJMrÌsúZ@ú"–õ–�;L�ó­�©Ê –®š”™€�œÜ›¸U_ü�8þÚŽÌbªÚ�R]HF°%d?9ÄD¶`Ùgµ¹Cô¸L�š>N ´«=ðϧ·"\Úä´(ðz– Å7^Þq³9Ó¢*§HBÑ[ég¹z†Uºä×&3ëïòƒÚ ÔÕÏý0å£S«Þ!a²¨µÆ= ,˜L¿ˆ„Í?¡Ï â'ö�ãÑØþ—;í‚ÕÞ“áR©gw±8ÃN&æ }¡©v*Ý|R%V}[NÞ›ÑE¼šŒbß=…•Xò¶®mGj»I»W=Tdq _ÛÕÒ*KÕ·Ý™Wƒí>–W4?ªu‘2ŽèÔ8.ßϤŒêAÞµ§Ãdž&�%÷äç i©8œš„¿ùëIÄ•§µw�3.Må—�í  ÌQj7 ±®ÿÃGWS '‰õë5¸\ù{öm)üWbùÓ*…Bc°PJ©ºÖÉDßr;ʸ¶ ÆÇ3•·ÿª±È�iŽ ±“&m¥?)åKÞ!ú-:ÙdÎÿÐ9·Àq¹CJÇn9ã�NZ$øß�’œ„¿°3nÁðR^Ö¸‡Ð/·:‡©/>ž?zç¬Ì´àà3´ôêÀ·D%Þ{Wb‰°PfÛ³!¿‰v¤Ö7ÝWªýÆÒiÐíQÁñ†ÚN\‘23õŸ3`sY‚ŽjÉl¥5ûb”—KiÂÈqr8ðÑȽù‹\­2}Á^¡b´,7�“jWYü`7êy ó’Ò_]" .Ñðz�5,ïag©sñ]³^Ç@wNüÞ#Þ¿! ¸í��â¤Û_»¾î¥¿ L ö«EICf÷°EüÈ.þîÕƬÒSÕÅU¤r°^èI\‰K<)aïµOûf`s£89Ë~®S³TÀ§£àK„¹é ¾”WÊÌÓ GýÆ�8’™_˽:%²bÍŸý+ ‚¼àºe sU¼U�·¬ú ‡aC²Ÿ¦˜Ø‘:Ó¡4¢øžðíZ¥�æûj¦õ& ¨Ÿ¹\;Œºôcp'ö϶eÁá© ‚ÕÆY;á '¥Ýú39\ÕN×ß�„ØhsM™á��A~M� |Cªñï¥ÝOIU÷ú‚œoAq ذY­v©õÐ&Nñ@tÄ;�©!ԙȄ¶á„ß(AȂڕbüe•ÛjïP sq2e‚KmqŽs¬£KjšÖñ˜žŠ#C¬-ù)[‰oy–V;s!ôJeë_›=Öþß¡Ï�ØÊÑP…y‹U€g‚©�‹$-±*ñ¶<¤íp—•¹¤ y!Í•ØÌ·B¿bß4W¿ºž«Dm9ÙîÖèØöa?ÖÆYµüÕŒv‰�ÐZ××S5ÒÆ+hÄ X)&[è)…!üp‹0)*û“Isß–U-0\GàÁ[Y^zž®33ÂøS‡«�ëÄ©�ñm¡n³(!šw�ÂÐi¦y;–z @Õ`5õGa×ê¾oÝhqZZIL™®æ9»}!‡¤¥â%¿ ëæK˜|ÂÿŒ’÷P Ð4¾¿Š ËbÎÄPFãè¤d9”ØFy:±VËjÐYì� }Iu¿nØ�-ùÉnþŸÐ:íæ{ˆr\šgõŽ¢y‘SZݸî“ïCt=–ÿþŽ„ÕbæiFi‰r°;éø[ê´P&Cg*ßÌò+Møn ”Pfq9:ßÞ¿êÖ ºîê�ó4¾>å^µÙnÒ œm,¹EO_™%áÍ“ÉÄíFi�ÎÝÞé#´¹w5Úp½…XÆÈì¨M1�ÚÂIµè#AÓûTö¤Ã|`À¨ãhŸjI®[…~%ÚLœF=nØQ{’Þ‚qìéÝ;l[TÀ’¦Z_•Ãáq#£´�·ó_¶b•ý‹0{JcmÊeú.]{þk)­~eËCé�JÉŸ,/r Æ2F›Q[›¸œ°¯yÀÿ8©÷œqÉrÓÜÊjÑÆ]²ô_¤ß) Q¦—Ø`ÓÇ^ 6ÖŒ}&PЇÎÙ¿�åO’]¾Ýy�–áé±®ÇßaIK�z­ç–,g ~¼ž?Píy-äM¼k^Ô-îPô{³nÛñM¿b;Õ´¶sò œæE’o¿¦'žŽùp­ÀÁ»†�åLóôDš××> ÀIAÇ »Àª3Ö+Ö`ÒÇ”ƒÊ–åßx¢�ñwŸ!9åBŽÌ}—ªÏìÜ2к*>ñ9y?Lüçm+o¦hwEUYÌ itÞ åâªW}5ëH`àý{�ŸÀ¾5ç+�K�'—æ,Áç%DJT%~¶$mS¿��³‚öF•ЊÁq0s@_ Ô0NAÓS>¿A1°Î–[léý뇜%ùàY,”{ñŒÿÎRSÀT ÆÏ8*¶Ãbæû¨Ïå!-GlA7’5!Ü�Xë#¤§½‹Ž˜®A+9ý6ñç]V)a•òÄ2™ÏB”a°w/Nwª‘ì2M“zh÷ìïƒërå§Ý®[ÀW™­ØÐôY7aÔ“1B*—;aÔeÛƒH^à/ÁˆÓG�äÿ“ˆ°GÂb9Ú`,KC›¯Ò¹«q1÷Öʶ%EØÊú¬}„LÞù1“o˽«°î7ã;”ÃjG”Ã%<*ÀŠÎV”’°m(XôcxlŃx^çT=«R§6uMØ‘ùÜ»ÿ8Ï|FÁtÇÞ;FèJÉx(-VM¨–¿â³ pïÄʲù ˜"ˆ0¢•”ŠFs9«*Ê—_ ¿&`f¡ Õ÷ÍÓ®~ò�ŠmUìsƒ[e†dY×êt'F/Á³.²·Å�Þ=xU(°,2x²^ŠÙ(ŠÈQnƒtº¬>É·êÈË?¿:Òj µ*“'ºÛR¿Öàèl–ïwKe&³9gt抹[È+Åu-�£a9i�"dŸÔ/„½ô W>#“¿ràí7/s[ƒˆ¿9ªÁëí´(f�¶YÏ ­üÉeð›{\µ{9Öûr¢—Ȱë\?™U«ëÀ˜l¤êÔô‡퓯í#§øñ›ÈD•¸aá"T;ÕÂcwߣ¼áú¦ÈÏFãN=¿ñ(žyy„W3ö1ûˆ�öˆ¯:t.|Im†@&³PŸˆ*D:ÏÒa[­å3ém[ëäIÇ©ÒÀ½²,mz>ä®âŒZ³‚0p¬ÆT8“~£/Â~à#f;ódáÆm‚»M&@ Á:9˜ G6ÇDFR‰½pÖBâF×bh¶> /.¶ÙDoB…•šAåþê%�ªC,‹«E'ƒkwv¼¦Õ}½g ž¹,â�k|)‹�#í•Æ*ŸU'`ôvMñ˜UÇ'Û¶½[ˆ~¸~ÿsª+1*”k)þÍýtëÎkåÏú�äãÖs<€T�Ô82ëº$¸jøKÿÈçß1 }“�CKwV�}7÷І¶ŽƒrÛqi šˆä‰~ìˆ*Ä$é®j1ä°jé7•C:/eˆÆþ†O¾±a¿»¹¿eÈ7HÆd\Ï1�PèVDÎY:�¨}ƈNK}즎ÁâÖ¸8å‘i¹.<)V�M“Ýh@Y,ÐHàò†2!_ڣĘ9i´äó»¶‚V2ƒ[*žeòÎ[“½N^ÁÏÄç´LUco¨g+)í¥·�Åc =Åv›Ë­ºD‘/¾Xòó±EìY]~c’[²ó]¦˜zצ“{§¿×Ž|#ºeÀâ��~œPaºÙÁmès‡P�{§?’”æÔßI° ãff¨wÛU(Ù*¼ën{á̃kú�|qÅçƒa0o²÷Î>nå‹B‹Øß]×pvÚÃrÛã!?¢}IŒ”“e³B6õ4§=Vƒë_ÚÓù{/¡X�ñ»§�ß@a_µar`"fÝ·ñÞùÇ1œTع×Ï]…hÓ5~Yla¯ ³ ·ãS­%Z|šXqœ.±x™bDðbËòç‹<�ƒê¸ÏÕèKÙ»è¡Õ°}~ë3a´%L]M:X‚ª¹ñúhÐÒ¼L" 5O*]FG$ qÍm ºÂïÌ¡‰åº-!†·Ûì:àÖ´ Ä<àr€†+ ÊÝ„û¯b?ËW­zx‰ÛG2«5ß�ïôR"±_îOš…†,VÇn#°¬Ù{ æ–%�ºlicºyøñÓ÷×¥çäZ� >DŒÆ99àwª¾,®«©6þ9ßëOûÞ)#¥ˆš“Zȳ-ic;+ƪ°¾ãë5iàÈÇnßb9þ\�ÉnáOåš‘½^�ñ”&åíÄæyRÊ:«Ð!YžÊ®×˜�ý8ÌÑö%u§\€†Ÿ'èz÷¦Â˜¼ÈËÝ�\rœh9“¸Ûn§óhœÒEV\ɼ¢”‚;.CL¿½Ö”GZdp´jñI÷·¢±‡¥£›M¨í*>'¸ˆµ½Øä·ôrI3ÍÜ1ŽLYîŸ83ë?†^‘äÂÑiì/ öäØJïÛ—-’W‘±§{.˜0<9ÇßS‹•Û ±ÖFŸˆ’¡‰Ž8\Mgåb‹IFoìs¢”*Œ¨¨Ÿlû�O�†eã¶‘îÔ^]ÐäýåÚÐÜ`ì†mî| .â•}±}@_¨Õ ¯ñ”E0iÂiÛ\®'÷BT³%ï]>øé"ZHM²¥ ¼µµtŒª°Ê%Fë#�7±¼bá·þÛ3�PV„Ð}rˆÂœ«"1IëíwoÞ0­ êOÅ}«¦-#c¥®;ou“¹j¬äö挱ko$Ã?`0šü| Ú€@óOYGg¯8¡åÂ\ìNcŸ �YÀORp¾çÄ™vˆ»ÊJuµm!¼â÷©yKIo¬B§·„pýÏyÕh{)�ú5NÀµé…šî3=¡ÅÜ€èýâd0!q¡2ù&vù?TL¢ŒªR(©b³Æ;«Ê¢¾D6QIp—Ös†Z_‰vÜÇÕL²Ï[ �¿iHf~¾çqÄ… ?Ù¶Ú-�Ó8ç©«¤’DeÃ1V hÕLü©^A~ ù+8Ã&žÇÐ^y¬€ö¶Ób@}ñÔŠü!¼¸yjMWw­¦A_eþøÏK©38µlOxueBæÉo�¹ IA澜˜ “B°Ž`¹„"‚h F°Y0o03wªÀLѺj{#.€U`öÄîÿ,÷RæÈEé+÷úÑ2Ës@ToÝ�Þ¥!žÔ[ʆQ®Y°Æú9%ëޱkÌuÀpZåCµO ™#²þþ<ߪSXÅ)Õ~ROîJñø³Œå[¶>Þãi‡"ÅÉ=ºˆ»¬=æ±{2 $’olf_¿Z‘¬niÑš�þÚ88!í�ª¿­ßÚOg2o] AVOE©–ËÍ{GŽØûÜb'lGKæp¿}æä=³€¢ìß=ç»™ý� ͆ýíŽM»ýdJ!Ô7y_˜2ž� sÊññ¿ÌaŒÛãxl1Ö¹Í| Ü4’�ÙS<§Õf\{U”{F_Ô•S?…Dþ“)Ü‘@zc"s6ãUѨ"~Í…&Þ¦ÏLm½Z¢ÿ”Wmô�åjð;/‹\FÑ(çvÌü߉²�dD?¶ u©ÅÆ9×M8²2lÀÁë[�NÃQ%#T” ¢íø`*¾Q�èžØZaUo y-0šÄlÖ{4뢶øõ`ÔžnþB± 悽ÇîLÀ‰Äþßï3CçÛù—‘ÀsÒír<òŒ¼Ð–TtQëpûãDB‡äb6%a£g€.îÏŽ¿»Gìï™ ¶1 Âä e-ŒŸDÍWÃRàº0+J·5ÆæøÝÖàòV^3ÿ?1œÏv�ê„ÁOFÅ ÎheúÒ %­Q¶êÃâi§;‡ð�—5á* Ã2¯‚µ¯r2„"ÙV†õµ9G�cþqÕ_Lȹ4{'áæ_Ú:¾5kZ˜¢í�Ü‘VŸàZs)C} ²ûŬoQxk.qå\qC<Ä“®xZï"ÄF†mÝF�lðjÑôÓéˆÔP˼¾äu‚_Ík»¹“g(l^Ïh7™={Ò홬©ÊY(ÍpÐx*Oo÷VÀŽ#™Hë�âJb8|�-Þ…dá‹È ŒÕ�‰�Â^׺î°"ÊZàšÈÈ‘ìŸ5¬g“\9»ÕÿØ‚hÅ…“ýÂßø¸u"ß‘édž­�ÂëcÏžü´�½!�fFc}Œª@•» š9ZÆ!®�Í Tè…Žæe~W2¤öɧïÞy8a¿ísþõ¹³»ýS_x*”ÊíóDu¸YÞ-ZúÇa×/øq×ÙŒ›t�x­fè ºNÒ–Ì'9•W~�e(ǯk%üŠD¡Šk­[�þ󖲑A™ÿ÷êó긅(™G¡&{JªÄÐͯp®¡%©ù0ã8K—Ú;ÚЃ+í9êö©4îà¿„É©Fþ>nÓ_‘®•ˆšª¡’ŸW™û‹F¾„&v°cñæ]6e ÿ­™ž{[½0ÎRYë~ºˆtâÙŠë£Íµ“K Cκ’¦ÏÅwB LØ0û N]Úô_ãY¨¿³ŠfeŒËgÀ¹˜méa�V}L$ÂÃØ"ës !»>‘(ŸFµ$8­ÙMƒËYû!a7]L�Ì3Ìwži~A.�‡ ¨lF/Ëfø|*3Çð TäH'˯?;Šês¾^Ñ/®‘ø™ì.Á– ?ÕßnÑp(ñ1ǪDƒh‘C’í¬šBƒC6VÉ?oov(D’fÏh¯?ó!°�£ œ¼øm'F/æOànxü¦Än´ÂÁ:ƒ¸Ý$hX;ÓíÐîÞz„¶ï…³<_P)Τ!–:åÚIJIz�§ÃÆ5§/8bÑ7±©™ËúB�™^�g�Q× ¥s_¿ä¼ÒÜ2Žèîä•u¡°âá{ÖX§—ï¿ãœá&K³ÝœØ¨Ù7@Ý ÕDJöðM}#nñK¥ˆè¦ŠCK�rÛCo Q˜Y‹ â¨}°qŠ©ÛÊBlŸ1Ã_Š­^^Ä› «2˜TàŠ„-õD PÑãUÿ—®a‰E¦0u�࢘TÃð½¡Ñ:Ecéæœ.­¿puã#?ö –‚Owîú�ŒÓ/.ZVãŽ0¸k~¡äš·¢¿«IßL¥!%oyù’V²&&º²ìߤ|n/2ÑÅ= íC¦mG‰åNéFü¿K—ahI*êk*Á &0>²Gò¶K7È�6ïԲ䭯wNýZZ‡òÍ¡RПQ‚ õyóœ]sq؃°¾êI¬rü!ñ™\*ç߳ꆓ§mj^=Ÿ°<0t}x’’#ýÿÊÙÒ†óÔ{G¢ûþj¦B;†®õJ2°žüÞà®2+ÏÉ©‚Ul9—XôCµž0õ¾XÊxG¹*Þ¿ŸÓöCÊ£¨_»·—][½ M‡ó»î¸h‘O¡®­Jö9Ì6Ì÷ÆC‡3®§hÑm¿à«íW½Ì7ñV¼öšJŒbïOÎFx„÷›¶L�¿uJî±Ck¡ð`1NtjörmЋԹV¦ï%’|@ëXˆ‰ê5Ï5¥7 ß3*lÁTäÌ…^Zd½µÏÑ—¨Ÿå÷÷‰‹ »�Ðt…“zvÁrå,r™Ôy+D0nU›ü¥òwph÷·]9,%/ÒÝ3]@xò{}u‡b£á‘ °?SÝÞÄå�ûeÙCÉF 6b«*…XæåùüЧN¿Zyå³Kpá8\÷›rÑvó–Ÿ ÉskmÃ/AÅðUIüû´È&’îœ~:±Ìá©”®¾OÂ\è‰9\Ö2«îûöËuµaÀ£6Í”è>8…'zøë•ÂsÔ|þŠ™Ûºï% `cñ½\Y ÙúÛŒh×03Ÿ»ºø(Ï£-v $µÊö©¿çrÜžŒ|ªØ›Ùö  �|ËwÇa„9qš–Õ'�Ö!ËŽ'f¶kp}h¾�§=AûkýèËþAÃZ,/¶/½–ʰ3u‘¹¨ã-QÊSIU”gÛ4ÒTI˜ƒÒ(`·eº'„ƒBIcºgiñ9�°tšä˜<&FÖ8¢ñ[˜Ú AëÕ>>u�5eŽ#ئ@ô¼(_�@‰ËÐ"æ¸WÎyp%$òî8€�‡ÁE&o¡0Ú8àNqlUö¹¨�1Ÿ":G.{"çöxy©„óqŽœ²²Ír褚Nýµ¢Ì»¸w%žMùhh›Ý'{‚…N“ƪ¶Éʃá‰ëüyößìM�ájÓ´�gÓ­‚t³ò²x <ýR³F•eV³çý-Ho'u€ëÇåks£ЖuábFRØÛH™!b)£âùú; ‘ôÀÀDué­*¯:ÞÅ©¿VXK¢¯M/$õA!"Å~ᤛ%U,Ì„W9_BºZj…N–Êòy;mа Íáº±ï ¢Å¢®T](5™á P^Ž”g§aöùÑ×4Å)½ï–híPÛ¿<¥\mfÊ„z;(wR³4_?ˆûB –Y쓈?1Iz?°ß\ݽP.N]'ÑJKÈœÆÕG³¢ÝÀ¢<²t�à5¯/8u?rK¡åWîã˜ñDxÚ_U”à¸7Ü�ó Ém CèÜ­çxŒ=×±â0Øf�)Èâe‘L®ØS†ÅxPã/àž`ìgDò’)G ¨›ò¬{ÛníÇë)»¦]òœ §ÉH¶.Õ»wÏÎ~óG�ªð#1™ l„0çèÂüòÈî�Øeÿõ)4Ÿ×³vD\·Õ††TXäØêFårÝÓ®ÕL€ Òc;e»•EQ�S‰}æUªÁ* Ñ\%4š"¶î¾ÜSŽ~>*l»Ú7MÏ}Zj[w"øEÄ”Zóì? ̰®N¦V³ä¹QÀ•+¬eÄòš“¼NR^3¿ª0"úôÝI;·ùåƒZlûL®B%b^…iäkš`b !ö2iÝ ±pØ Í©² Ï ¡#ÿúanä‘=äö@2* kðuÔŸL”KÞ»aï¾E¸Žæd\ã› <šö1T$' Ä>ÏVñŒóz Ê)¬ì‘…·;øÜH½Z§Ð±=¹Ã /³¶2:E¬Ì×Lc®ªŽ"{„år5¯G]9#2}®/f×3%°Çc²~Ê=©­9=âPyM~þ²êÊÆUŸÞº¾%›ÒÌ�O™^O, >¸Çç1ä�rÙü�<\}7/~“´Æ$ÿÀ©/`”qÅðf¬?¨¼»M ‚>Ív(¾qì@y4Š^™ÈXÝVHÏ–…(çeU¢1Ù[1�ÁrµÓ­,ø£h7°¤Â"� ERMG(Åëª�€ueÄ”X{îÕR΃ãUÛš¬pôo#ÖC lö Ò²� o=óéŠF> A(ÀÖ¹#ø´†�,Ó�y9xµ�-†Ôq¨,HI´^Î3¯gȸ<œ_«âÈiÚ¾Û`šGSåöãË9—n*½bRÚ4÷6SüeÿÔdÛy‡¹˜­–*[ù£(VÇq¡¦´x®‹8Ù¼š#Ô7ÀÑaò°<=·Cª#¸m?ä?*ºé…©‡£ÊtƒâLù:9# ŒK1¨0?ükn—%p€­¬éñ’ãˆÏÞcp÷ :’t&i§Ó·øíƒKT[jè1*‡&`9,÷‘®z«®~pÖПîÀLÕJù$ù‘–ƒHWMB!=÷þI¡ô`¦5­ßÓóEÒÄ2­G\Ð]ê}º˜¡gÓ¦ÀåB²õF„;ãïR)‡¥Ùü`µìa·jí‡/‰¶øâJ�-%n«<°(£ãÓ9X0i �,¶X?IþÓ´ :¦ÀÞA>ÃùË…grîû½«=BRZýØ÷‰š«½¤uÓ+ýd�0³©› Bî$H+õ 5m¯‘µ±C�»ò÷¼ ,X"FË‚ØüëBùl¦+ÛÅ“¯ ¸˜û7Kö¤ þü8ÂÌ Äè­f]q€yì™ô˜¦#ÔùÙ´Å}IXÐ\˜/ª~‚9m'Œ’§A¼Îh@,½B=öœŸ„ºí9Yµ Vc¶v¥MP˱àÚpÅÁ±Ü}hªÝFææ­tåðÀ.V:V÷Éñ¹àñ‹N‹{ì6oiuŒ >¿[T ,¨×~*¯XޱÇ7Uñ~hå.ŽÎY«KÅåÔ!â†H^·9HäéÚ§h¦ôý`'¯+�lïvú¾fe$¡«ÇÓK mi/N<Ž?Ô‰8Zñ݃ÊYwº×F(ÂÆþºÒÎÖ%È6Úˆ ¡åéÿÚðý˜ZEKÀ‹ äõ P »Š�¶â@Xß—oûd*Ì B9ȱ(ä¨#½¥&h+¿wÕ…`:0~…¿KgyLø9‘ú)ÙÛƒÛlš½ ò˜1¦¶ ƒœÈ!û“¼$-NªÐM£ ð8¨\ŸJÕ%e,ûÚto²–Zpf3¢I0M­¡÷3ã­Ám½§°è&yEz³P„ ¢90¼HJo€¾_bÛ…ôouíàÇí쑽R5fЇY.âC¾¦ñ…é‚Çóžò² 5k$ÌiÞì+JQŒC¤)H©×ò8‘Vž£¦dàð!¢ÓJUQÌP‡$,[8u«†ÇLƒ°�Ùª¨ø ŠàÔ�ÙûÖøA³ôœrÀ2üešÄkßZjð„Ïè ß+hÚÒß�¯%»ÂŒpÙ©zF™ñoN�]ÔGT«(…<_Ù}\òE±¸&ý~»qÃÓC¼�x¤’w®j2ö@Ž8.Ñ‘+¡’¾|vçÛÿò:•èÉòr+}¯cud½ÎÄDo!¼4¯Ò Ÿšowz×~[¥'ƒÁ�u®«Âò"£¤MS>±˜}áiIŽÖóî&…XÆ­‘ÝÜ(H«}HvQ¼2^:• gYå#ÊØaõýs÷¯m¥lŒ¥9¶©¾VË�Í¥ï²k!m6¦F×}p -ÒéÑ{dBÖÞ{¹ ÑGÅCù-à?=+µ^Ó‡ÖIqÜ:Ò&@¥Ó‡ë5͵¤;5ÑT›Ã°ßú@Ãh¯�†’ ¯žWµ¶LuÛ€L€|¶ŒŸEZBGÙ¶Ò­bŒÅƒ wKê¡õÂaGßQ1´Îýj¨…)תY¢NÀ†”•ì`â�Î/Ýò׊‹œÂò÷¢"–Ϊ%Úhuær1o¸kxòµ=sÀ£�Â{NÕd©Þ\c æ¦ôÄ�Õ$ÃÊO+õŸ4{ìÛ•ŸTX™¢ös»º¢m°ý݉â¿*~¿ÚwŠà!Cj†ñ˜J¯ï`ö¾…EÈÓvõ˜op”¥ü8ŨBlÂŒ߀U½ìäÎu˜)tñĈó›zS¡|-N¶Ïvs¦ÈŠú˜ß Bo¥ÒÆÈ„¿>BÑŸôœn<Âl�¢i¥û… 7EíÃÿüíQ`èü©~\“ÓÐÅà|ç7YKèHo”aë*ÇS±E¸#Ë2$@8,cuö¿ü8!<zmÓñbø�múçù9º‡¼,'R¸:ºã” 5£°;0Õ¦}Úú¾õ‚­9œäoÑÐø%#àÔŸ5¢Ux�V€+QÚÁ6L"”X–׃FM摟!p²üèÀØ�‹Ä²‚ÇXÎ…”Þ+¯ Z��ö×Q Æ•¬ÐÖölouá3*Sÿžæ‰œg?½QG�š?­|[zº ô|3ödT®aËÊØµå¶þد ™™í>­¶ôr»4žÖ—°>¸^ Èÿ3’Ø÷8ª²YH¿ 0ŒÕD„ÎüD8¶ÒdÔsU2jÆn‘·í–úÖéCʬuTø~!FhnèâNY¤¼Ÿ¹r�\k”8Ú–Ì™pK_w€ëð~;Óƒ�}sb¤lSš2G�òYÚ:9âr ù*Õ[FÛÍ;9¦¡wü•�°$à˜ßú’¹ïm>}_¨Ü3v•ƒü$ÈT‚:YìŒÇÔÿzEùÇ-Ò‘M-IÎ Ý ×ƒ½ ó7úËôב BøNÒŸ/“ÙYà ZKVôáœy…VÏûÅÙ•Q�Ø�¸‘z6ØBYXC4™lCpë×xáE4kåš³\Â}þFǯÂL;×A±èÌäÑߪôáÿe—˜J=`’˜ß$@Ž((VÊÒ©‰áèÇCµ€…{/9sB¥Ã¸SýKnÐ×EêÃÓ‘w fW°�tiðœ´)*¤˜^ßõ½«]ÿ§šü™ú�ÊR}'|·&#_w'wOTíWíÿ&H¡?§˜åRmyür‡Äh.ÖE ô†T¥¿Õµ;ΫéËîñ%ýý×}Šjê¡í¦9òæÎ1¾ºa>ö¡w^!Ëý/‹¬ªC®›’סËÚHYHQÐ� L8‡*©¤8Ú yL0öåPÅ:4caíûöˆ€E)ÂãuÓ¨š¨a‰†Ç¬7¢ŸSþ,®âá^{Æ"¼…NoLƒ ùÑãñ &å3 ¼wŠ²Ùºúw…]òmÉí½æCðŠ˜C°¡³¿9ÃIcLÖZ`™hE�”÷ã«ûþ�¸ùœÓ²™Œ0äB1a×#’ú¾?<ÝØ" ˆœô— Þ;è ÞÝxºkø¿å„hO!‚ÈõqsÔÆ¯à3[.“ÃÜÜhØaC·v¿ ¿P�‡=@ëã8]§âvi\–éH}+nwnOÝ<� >1á ÙoùzUËЩxXW‡7VXýÕâ%¬›Á±iÔõ—³q¿|ìÍøù§€wÊð‘\ñ·RðQßN±ÂM”àµmÛ¶mÛ¶mÛ¶mÛ¶m×¶}÷m²“™�—}ÙÓéT:}ªO#U©.›?lŒˆWw‘)¾®¾H’ å�×Aîà…m—zá^OM3 –!ªI „ðÍ ÍhÚ^—j�EE䓘Ø$–ÑÙmþc¾Xy^ó1‰hk«P–�b޼a½NÎÚ¦Ç^þ0,aþY÷Æ É:´!Rÿ«¡šÇ-p}³ˆå‡‚—Sh¹þe±«Jg)RËÆOÛyбû™`@gíÌ>Ю]By«²AŽ%;h…°Ûº N‡R£Z{—lú%;UGñ�=_nèV´‘nð·‚š(w/œk(–½òU#1Ôö5‹ ¶FOÜùŠfÉ3…w’Lƒ@Ê‘µ@íåÕî^1&üd¤DšÜ¯iì'wcÊ9Yñ™[›ƒ€ŠyîáìšKÜA7mÇ8-Z~K™ã0éÛ[³•Cu½ža ç‹3%ãЪÁc\F¬ÂJ¡¦´2îÖúpô_¥åÆžˆ–9·(RÿM!Þõ>aäÔ_°[©UµBƒã®ÐJå†hyd3ÔpÀ ÛòŽ0WxU‡"IÓîóaY³~�¢>‘¼Ñ Ò,‹Ý†n­E)ê“£1‚´&¿Æ(›wåS¤ËÆ›†rÄ-sÕÇÍ&3ô´Lí^Gzì&ü'v¿M¾.Å—ÐÁ3@ºŠÔ™¡h/ÛªŠ:ǧåT=à Ÿ31Õ^†u'2qæŸE¥K,"ÁÀ�)ˆ\¶áU h`þQ*/)ªkoÒu$W’ð§4�èXÞ´åkPÅá¨3Î`˸ –Š™ »iÁf´'i·�…üM„¶ÈH.M?š= =2eüí¯Û_Çož´öZ `Mw yí?¶«ûR¹;Å¥r¼„Ç-)}^ñE­=o<l!t¤Ží”XÈBwoB6ãyµ§žên<4,ÌšÉmô\+µ`d�â-ì�¡µíé7Òß|ì(Ñ©AËEáU�O¬¸‹ºÊ^Lk9ÉqÊÊgëD‘ã œr¤’'Q8 ž£$‰íîAþG¡¢qκÜ5ÙI†ú,ímçóÃ-ñ†@øûÖÒe©ŸÁ�a ¤Ë8¶«JÖŠw`*lUs{#ÌŽ^+„ƒ)û‚P¥q�šPB¯Ô~µ�.¹¡Vð$€ã1-fÁ ¹öJËlî°»µìÎÈ%¯xÂnR’žÎ A2õXñÎÆÉs*ó'S¥šâÚ|¸_úò ·ñ²zO;kCØß $³Ê'6dÊ+ ʼՀӨ Ó€;ʸšë5¿´ |tAK'wVJˆÎòÂ×÷ÏAöî=Õì O©`Š£€ ¼îÂçÑöz×ê’W@™Žÿ‘iXΔʳ —[)ö �Ÿkô•_ÔŒEˆ›Ô…9Ó?Šn§ÿK¹\»')®Ì4&·ºn�À(AÜeP¾Kù«_åu’ÛdˆáógX|/,ÇŒó\øpÕÔºÿZ~{‹*˜¬P–t(7â0ðI0&}Ø9Ÿˆt&OH/³þ¶r&'Wé¾\ƒ¿ZŽfý½äg°[¡æÀæGŠ…VòãÌC‚{šz�ñ—¶ª­ÔÜÚê‹”5ŸBqH¤` ¸Ù� ÏÎGZîûMùušÀ–$pœ�kŸ™'¤£ŒÁÜÿy®Ò»Ë÷?ÙüNÃýêȇ*ã¹XqÙUF‰q@ÅÆ¢Sˇ‹?’tþ$ú°²%7š€,|d÷£.ª½�vPäà ø Q4<æØ”ì%�…Õ 2O€pçP?|{öÄ��§Öœ X‘ «=hû2‡1Íñ¾P¸Œ+Øg+yLÞkíYý‰÷ªüžÑ|º¾@Š �YQìöbÂà…AŠghÞ5óû(MûËìóDëú© ŽID-œ€¸bB•V.e„H̱w¿t>s‡nŽJ®Ïàô¿^…ÃÒQ5—ÖN¨ÁI³ÒÔ½¬�M?� ôèk eæ M]�VC¨{DéÂw¿V9[X„ñâ¾­§ªŠ‡lij˜ ‰¼Æñ±pM|S¦Èýñ™¨Ã4lV¿s,ïj - sj·‚¦ÆÝÌ�E_TÞ¶sýЊ)£k<θ‚öƒÊÚ–ÔïVßÈ£H¶Ü,F•§YG­ ¥cùªF;ø‚+¸™0vÄÓñ2±Wp¦ÑjùB©Œ�6Nª–¥CU nã8/ˆÎ³A”9–}ÑZkn~V!PÀE…æùø�V«øþU2A×N"�ÑüÁ·Ü!“e™Q’݄ƌ|ËÿlT•EtÏ2Öy¢07ý�ÓXAþfñŠè„%¿Y‚ò£UÁö-ô ÇŽ sÐ`Ý®ÕÆD"< ø>ÎØIj½ ¹!Ÿ…§)hR_u íQF»ý~õzÙùNŠ­’¼üªFÄ®PÝaâa/ahïDyHÌë™L˜¶j‹vN‰«.ºWôãrš—õ 8f]Êé4|ø@T°…þl_…Obm;¼–2|‰è¶,7O°Ñ ºž\SýÛEB Ù›€ó~xÔ ­¯ª=ÎJR!¸R¡ôÆgS£Ù˜}"Ì ­ÄšrìÈLÇ+à�¬³í‚§�`ÝóKƒ‘Î9t‘~18ºZ:>Âïú²ÚaO( a9ÍAT8ºkþ(Ÿ]aá sÒ›èqvŸ©­5ôæƒV¿,ž¦kƒLŽ�R¬–Ý’+fèe® &.8ƒ–W (Ï–¶€Ç̵$Š;•i ˜ òÑÅs˜†X®s<Ä“ˆäk×Cþ4>á/ ^tç™ãWöwäìn¬‘f~ÿMcìM㚀É‘ìSµøÓ„á›áO+ìù¦1–Èóº¢KQ]…¿˜ZóФÅÂÐ0œÙ¾%0²}ê0 ÐgÕÏLq\-I92Ö�Ä›rËÏßÝAòT˜?Ã2±vÐÕÍ,‘yàÍíòxæJ Mµ)Ì…Xá®,•]M�Ÿd9ô±¸ƒµ´vý-=ï뎧ìo}[*ä‹ü Î{ë–”¢4Qê²Li[>DU²ý,)|Ž{ ÿqdac=™$ÞŒ´å¡™UiókD°]#õÆ %8¦8K›¬3Û(¦ÍYuô9#&rzÈå³>Ÿ[¶‘9÷M_—·‘Ü2+l7nÂÚÑùª�ܺò OqŒ V+sc¢WÆu½{eig¿ˆFSÿQÁi‡£v({ôõ5„”Vf§®uîìäÚ5í8Îú4‚ï@üV¶&�Ò?A­Š]ÏØémÔa IUA»�-UJ<͈ç�ì_†fžÈËÛ3Nƒ}'ˆK¥Æñ¨ÄÁG¸›�)$‡� %óœ´á¡¬ÝQÏnnää œF!s¢r@Å�»¡óÉ"ÿj¢m&{©Ô…OA!¼¹”)Ü=ÕJµ+%0~â¸Eî0; ÛÉ¥±J¸¢c¢ÐÈüä%“_IW­�Æ!§üŒú®¢«L;àǮõæ¥%š¡Z{º×ë�œcë׆טÍä¹…°Ë('ï[ÏQaÛŒ„Š®î'4Ù‚Gr&© æÃŸÈ�˜á¯R-ÞB‰¹Ú{ÒÁÕ‚ìË•dž“È,V‘ñ¯®Q}�3‡ª®j YœG«tæäS`(ÊIbHä÷šÓ 7Ä¡ ‡7KèÕÞý¥'5„c¯OžIÀjÇŒŠ‰Ñ–õ/ǾÑôë \Ú¡Y+ËA>µR£µ§Ï±&Äçï�.�y³¾»T Ç`J"‘ÉÁ‡¾(ÿÑ‘�†¿œÿÄ=º]¦¿+¥‹u§„5Ç ÆedtÍßɪËÍ+„²˜~Mw”Z®wòÐsZÕÎ`6f3EH”<½ìiØ…oXXÝ…²ÉHÞèÜÎÍ»tGPl¤ªIOkšô‡z;ͼÏŽ³ú×n™�›¼ÀÂAe'z`—A‹(•ð.×/â¤$Ëi7³D¸ ï¶´£Äņ‚öôˆ 覙H¨�‚ããõ¬Òv“ Oùö{ql¢6õdnu9˜K5bj@yNÝ(6§ƒaØ3` ¤Ÿ²æÌJ‘Qþ Ò4ÑcIPŠ!ºAh{wZ§|ðNhÒ­õÒ¤óœRmdѹ�È'«j™žc*Éi­6¿Ç…}CA¤.ÆÎ´6^צVã &’ûïrÖ3]r»FéBÏ£Ù̓٠‰Ýàò›ü¤p&"2‚J`6½<ÉÉÝC1xæ+rZ¦ Þ�à}Y0§òrlYsó÷âÒeuž®#FM7)<"UKân_åë©íã ®Z±[žùXŠ@Ø Ó° _ص:�A.ËéùÛA{;5{—¤ 4áÆ"Ó«üu0|j�YwŒÐ0U°D!Z–ŽO‰ Jzp+«J#—up,wfÖæ�³0é[%¦ƒGTJy+Ë×(Kà²ÑæL^#áQêôŽæ&ux@µAÒØÍ`MÇ-­ÙŽ›¡£ÎÉ9Ö`EϪùSøû»Z7"¸'W†ep !䨇�,Õä>ÓŒžÈÓ8Cµ©<¤ÛÞŒilð2º?$çÉ.ÚÅ͘„e¢ŽCäü9Ó£Äû-;l>@Jøû´"®] H¤´ø¸×Þ·Û¤ž‘ÃSL\V�p‡²ºÀíŠä± %Á¢õY¾á”¢ÿâög@óî–ßkP¨®=Ÿ©÷o—uNX¸#ǧ›†,oúž×ñ'Ë+µu.è… v:¢‘þZ™Ƀ4O Z…ÈD¥ûXC„xÿóÒW·üþŠjÙ”Ùò¯OZ@Ñnþ�Dà*b÷8±a_øYÿõ[‡ãà¥Xú¹öN_¹ß<´̇.àM‘Æ+hTeqú–ÜÁŒœ¼²‰¹MUˆ3ŠpØWû ÆÊ>ËÏãJB¸YÇ�#o5™dÄáT¹}óžsmwûIËS“Ò”ˆ°4$/¸²Üõáħ‰°aÒQ8/ÂNÑí7‘)’–‡}K¦‚$‡�›_ïH²¦åFEÉí�‡üï�ÿ+97N ô=ÏŽuVK°,Ǫ_k�¼Áaâ«‹inJiÖ…@�e·:ê÷5U mÞ $ž–àFÿ•fÐMÓ@Ì^s†AÓâuàþJ!þƒÏ4ÕÆY8À%×›ìP[‡HVlO$�ñǡô’ãªS›ºÖ‰¾^›h�ƒD~Ï�°Ë­¾P‹�tú£Ïú„$ð±êŒ[eá>³¼ì»ý«RØE• 2ÆÐü£Ïy6”¿+á aè½ZņïS¥óÐZjÝ çïËn·.ò’Ïò·ojý‚XJíI‚ðñ™(YX_ÛVÉ© m¼lèLy^8q¬q&ª$!ÑžÉÀ@X}Éœ²uÄZÂ\v,štãq||!oCè~[yÇ9·�™ UpGÏkY,øÕ¢”zð:ŸÐÞ}g˜˜{êMd£4?Äìœæ;5eæƒ8L†õçy”Ëm™×ŒÇ¦†ã0Ä ùÏ‚ÔzX�N'3†÷³—{«õµ°Î°£ßƒ˜£,)ƒ¾˜D‰0š‰L/¹ëº¬­ˆcÞ9ô%G:hR¥{P—¨ä­®B+L×± Y¢Gs* ¢9v¤ng½‘QP JµçLå †|f†�©,ýžëÈóºÎà5³6µë!9²�¯¦üÏá›Ê ’²±)Ó¸õÏ‘÷÷±àbñm±¦mn3+›¦0[z©>0úNös–â÷[ 8Ê¢=yÎøê‘4:ßY—Kéã0Wã¨Üc®rÌEÛ±Û^n ÝêÉ@3 › à$bzăütÄI�^”ð9ù†�¸¥ê-¦šÁEïÞß-‰_ý*®gM’!jO{}=�À–b¼uŒwÂÈRÛ*ðØ$æ• ·ÂS¬7/ù†/¼Õ‚1”Ë?Xã­‘‰Ìïj]0@è 2mW(3ú®g•@X޳’ R=¦ 3ñöº¯ôCʘ|wCX‚·`üw‚ÎéÂí£§:š7 Œ)´ÝPäKtæ‡ë÷a–u(/bÑÉèÔŸUcTðFäBžž†ŸbôÇòç0µ[4N$9š" v91¥bw#A7vÍaÿKÞ)!ÃØ÷­1z °„Uÿù©a‡Û‰Àò‘ußeWu…”‡UÞ¿°�'h„ì½)>MutmkÆr¶)! ÀÝFõ8iž-¾%|ß®b,Ǻk×Xæ"=O0ÿýàèÜÄHrï§í(6Æ”r¾æŠ3ÄZ³¦àÀWZtæ�*–ƒšÈÝÆ$ø. wˆÏ5/iÌ9Áà\2k(ÄÅBg¤Õk�Ìë�¹Ï|¤S_”ac”XË•Ö@Ĥ­� a"6ÉSO0ªÝ¶ŒéëûëkiÕ¯í¡ñއòXÕÊÇg�:ˆ^@Ñ)$˜L©�Æ%æKµaEŸˆ×ŸÀâ2°£ïÜü ø1冷•xzI<õ—Êë2…ìSëh †|ž±å|2ô@îLYMÂÑ$F YwQù%ƒ�ÂHÔT…'=м�7rþ’�-sl‡¤c7 3«÷4/ø¢ïØ�1¾üNà£�;KÿÉi0[yžïg0„÷ßÀÒMgØsj¢³ËJ�®�|Á”{IÊá¢ÆHI#<}zÉ£!—à#j“[ÁÒu;]Yùæ©Á5€¡¡�mdgµˆŒN—††Ý-ïëG_[*¥ . 2o|Ó¨ÁøXÞÔoDùÍ­3žèåô?wJªûÈk² ào–=”Èí«` ¶Æå¼†äȶëPmbyg6Á˜¤@p<4±7Å»!CÞn£voH)7þ&KªbLk±í�v KšÔn#H¤÷èê5‰ ¬2ÓíŒÀÑE6œðŠun‘H®º£¸ÿù�"­úQE‹8Æ´¢†_,FÒ6fƒ¢×¡{ƒ¾á q`r—šá¸“‰Hä-î�öá(#K% Qô·wìäÚ€K.È*™lfÍ‹9!PËr‰=ðç^=®_iÕÆq6?s[ü{œÄ`%¡ÙQ]¥zö`ù ìyYU•,º�\CÜ…L�à±EI„Dm ç´S‰q�¦ädlÐ-rì¤íWû�¶ó¿Ev(5©÷Ls%Ýâͬ„ ÙUAô憀":ÕŸ7v+oÍÚ#B=©lÑ|+ÖÛMq¶È¶Þf«Í-çKâq háryi÷é§ß…;[�Þ9`Dw¯xÙëµæ?Tî÷¾ä ñUX' Å6ï"Ó°þD.|æA,v,Xƒl.‚“M{NMò7}pUåüeT @“]døkRífHŒ½Ú#%íøúÓA�Ñ$äòwÆÀGC!‹íÛš3¼FþÉÃ%«mM)Æò’¤‹uÝ÷áÚ¤¢&t/¨¿`'�dÉ#×Ä1:'FTδX—„®àvü|s9(|Bÿc§Y yïÝÈ3\± -¯féh˜ÊöE]-Òý—T±Xk¤M ²ö±|€=i9Êa«&/rFæËE[gN<å#v QòÓ´Âu<àżl6핌l1mãìB’O¾ ü|_8È"sµØO¿¥rI³\zJv±«Z \þ(IùDì¥Óñ.Bó¦Šp,«cš-ø¢*íYò�(tF×2€ÒP¿ßj� = èÞn¬èkRÿö"õ“®×-p+0œ»  Ž…œJ°}°Å‹IÆX¬Ò ÜH;–æü”�s›ºÛžF,ƒe?t`‰\}¿ØÑËœ!“½l`î¯@¸"ƒu#W³¿†œp÷wýb…ßu€äl"|ÿÂpTŠ�aäÒgEcû5s7.•;wÀº„"+Ö÷s©×¿Ír̤ÏD49w©¸)È.Ra¨/Çæ àªA´£!–J+ÍëŽoÌhóüwW0¥þÕ¼™ùœ{ä‹â¦«*Ö�„f�p8š7³´�´õ#;ÛõDÏO—qí(iÛ2íÉ4Aª´—A2{ß߃>ƒê±8"éÏŽŸAÁ½çpv%›í� �†’ÈúG:”ᣊë%É=Â� õ­Î¯ ÙJáFP5¬Ï¥q ÐÏé‘N¦ŸRÛrÁÑnß©I'äq»øË87^])ætª`;z9 eÚóô™A#}{0§¬íYwvcy¼,÷gH8ò„<õÉT…�ŽçóÒ"mIêm‰ø`ˆÂ G"•÷=À΢+­ìqHï¿´ÁÈz�ÄHNý÷[ú=™/&ìï»i¾çâ=×å©+/ñOPp؃GY†ÙÖ¤Ø{òc¦QqòÚÀ.Üñ:F‰RÈšå}™^•Å4ïn$V:? {¡û`ÈnˆÆïÛyú¼‡J 2w¡!uG½îß(Ô—¼v®*än±ñ­Ÿ±Ó­¨¶(¨ë|œuZÓò«èeZÔÌ™ »mŒA¦p¬X¸| WìFz6C',OŒVQ>øLêQ)ôUÉîã™_;^zÅ?o#D–ß§£õ. ™dåµ\Äþ�N'+£éï˜-nq„: šùÃÜg±ÅÅÆö=xˆÉosxx÷ûÊ—î‰A7°ÀƒŠ}WíÍ!O7žA‚oQíß…±Ú1´³Éú٠ݯö ‹ÕzÕ®ç:2�Õù½zí)÷4}ï±íøÛcÜfËæ’û¿l-‹€|±u›h1}£©w5­7ŠËhr¢º–uÁ·Îƒâ ·º?‘ºMªã1gÿµ¸bLÉ윖¬1ð WSÒ·/¨c¯º!· ¬Ì™“†C€G{ e`IÅa±\¢æý-ž¹�~Lû™„Í|µ“Êž ²¢0È5ýOTËãu{¼éaÿF ½Åžuñ÷ì§:EŽõÞc|šÂïÝ®¿`‡¸½ÎOT1³ðB!Ÿ‘;ÙQ¬1ƒëú·Jß”3¶S£fyUƒ¡á8RfÁQÚ¼H52)u+ž^x¦Md¡5/?½¢¬¬¿�+€Á¨þò/Õ?Ï>f5~�©ÐD}€8‚gðñ}a͉©_LMi}…åB5Õ?K(hæ­TL÷´UO¼j¹ÔÌ[µg3Ü-ÏíBAäêøQ¬Tc'¿²æ´=‹”}2´èeêuêB%o¿È)ÃõŸ®Ž‘^Õ½ŒF_�í-H‹ „¿û£2l$C‡÷Þ{|ž!Æê:E²‡¢šœÈ©J, £k>KØæB�PYØ®'tõŇ£Öºi+þ.Ïí»³É±xš‰vj–4Ÿ&�§7o‚–›¹q잊9vëêþ�VŽ æá ƒ($Gê×ã[é,BÀ©å ñVŸC­‘»ÔŸ¯Ýë§»ŸÀ:QÈçØ§h $øEÍ"ëKVÍÏ^§cU¨§fÝ<ö“ª•1@hZ?Ç vü^kà5-QC7þsðÃKËÖ#¶-Uq»`¯3õŽ‚±ðykl3ÜÞ°³ˆµë:1“µO¥sØÿ½ Pæe²‰0×Síš9„NèÅ–4®þu–}ÑQ0k¡ýÎk}>nÈeÇÞ*}'ÿOwÐD6×:Ï£žywxåb—ß:c^ЩӢOŸ�ùš>©Æ[!xû%®¤¾ˆ3Ïžœ‰Û¥‘«ëFÔëþ²™h•¡‹'öÞe¼ëÌßÑžî)Ÿ\Îìòànm>y9C¼Ä ?=Š?B.ý…£ã¥�•й��…ªcJê|Žz�¬Æ#þÂî/É)×9 ‚ÏÕÚ}AÿÁíLoX“‘ÊÒ~}ÄØ¸Bô„–¥…™µoè´L¨cû+<*³ZËJ˜õB|Ös¨³M>µ µ‰ðÛ?LÐ;Ýá°á»#ŠA…šËU°ô¬fdL{5”ç#ä—ãNQ•,®Œúõ"¶©‡rC`¼Çíÿš<·c~áŽÔ4n($Àák®zÑ1Ò¹Á—VçN´’~¹R!¹~Qü¨’o¿uƒÿÊÇ{L¿�ÛXÙ$ñå’/ölÌ“=Þd¶^(' cq©ZînÆÌŸ�;¢ÕŠºWì3�œUqe¢­l®.ÐVï‘zT¼Ov»V—ž9?X梁v\»Oø øfüd]­è:ûú èÅ<íÒ¬—Yú¼]\™%‰É­`µ®ï¨¿_¡TO�¯¹ÝÂ÷’<ÓåH|¹»16›á«¾½Ð9:¿Fú5ºûg;ɺ8ÆÇ-þl«˜¡ tÃFMC¾ ‚߀W¦;ý�̈ Q=º—Ýß4\Yi-cRI¯tQÒмï}Áüæ…‡³íØ#2�EeW˜?´-•…oÀºÜ±Ú¨fF`9æ›1†ÂC7Ùþ„™»¯êzqî»A«j8ÜÍÌ·¤vfUܲÈ<_O0-B†Xe"ÃÿOIzQʸ;«�‹—ü=·nByõ¨š»¦#¹yülb÷ƒ—‘ïNÒ]]ruôŸ1ÑûäÛw©&R\�#¢ó gû‰¯¬F«L©™ïg2d>“vQ ÒJ¬"óbʯðo7—F"ìBVï£>ÿ,aB¥ÆÞ.Â$´=е(c1BR °^‰@1AC؈1LD‹½•g6�`5û´Ë6`{ªÌЬ1?´Lìƒt°*|}"r_«·N¼ b»†î¹ðëáÊ8»óÅ—bº¾K–¯€ð¶V0¿8h!]&§¼ u]Bu°M='Ë1þ6~�bþÅ�®Ò©Zv@j-L{˜]#UŸºãîÞiŽ[NDPÄ4 }aÍ ¢ÛƒÛó7 áMô¸–0zúÒéM)n¯„r¹ýAÞ–¨› Fäf¸÷#;�5�zäÙÔIé¿#½q2ªï_ÉsŽm­o5(·°ÜxQ´¶"nâ°³«G‘åÉjY Q.kÃYH½Ã¦–›gÌV3üìñ•çæÁòð6KGVO}fÎî}‚¿ æHõ¯�ã/Ð5ø‹^›Š©L7÷1Ø�ï¹FïŒ?˰Ïs€¹»MYÛÎ …‘Q·p1�rx4NVµ?âÒð„u�þC—S5=XxÃS.�ëz+ûŸ3~¢ê*‘¾ÉÉòӫ︵›µ…‰+?ºØ3ê2,¤ô(IOR»bŠT«Ê~ô¬þTë Ücé†ÂOÛ2Ç ü$�E·ÏØgHï-¬Õ©sy-I Û˜w¹¡`Í�š½(Á»a!3¾ûwa‡hþ`ŸõL‚¤TQK†oô(PŽ'>qÅiÅÌ“÷,åáiÖÒp¾½cŠ ³xBÊüÖªR”5sÌ\NhB¿·n£ŽöVÉ¢¶7±û‚†Ã~-áÙ‚’R‹ºehA/K„ßyûÛŒsKQòŒ®6»»?×ÂþLWâ,-±ÔKq·„eœ�Š#¯hImóÞàírܸyU±Zë¹›p“x¯C@éÀdå6èƒQÄY �¥�G”EqÔd ùRßHQӦǬۓñz[ ¢;eÝFjø¶&³Íò"‡Ô£bhçYöØ» O£'‡‡†æ‹e³[xÛcbĽ‰ôU(‡0I¢¢�龿²Í7—“e�f„4óS•Í5\‡×m¯Ï0Ö … k »‡�<—#01$�ò€²¿6]ñݲڠ<¾×Øzó)ösIÐ!¥^�“E�„–N솑¯yõiܾ‡NáìëîH­Œg„:‘]øá‚^½J›9~3¸€õKO˜#�o@Wáñ(2–ˆv ±èœ„¡TÓoTdë´EE¥E×�`6æÂÊ�0¸pSÊ„çÝhtúÖEÕ÷›ÝÍi‡£¦ .ÂŤZß,Á"ʨ‰51ñDãç(£y鬂*åÀªZN�J�*/!´ÜšÛ|í¸ëæ²L\F&XÑR6Åz pUt£‡Yéþ·–¥^SÝ "RF¯8g„-ÐqÕs W�Ñóǽ$lG’æ&¬ú‡p•äÙª½hóqë‡x¬f¯�åÍÑÊ”)ŸÞ3ÙŠÈyâ,žÍµnÔ¤BËêJÆJ ×Phƒ[§„Ù²¼À± 2Ê2YŠàâ Šú*,Æó¿kñœ¢Âû:ãiî­½˜`íä�KîŒqï~i:‡&Ëÿ0ñ×/l� º‚{LÊ '¶Q^P0À†jk;SoÄa-ƒoR ­�MQð³\ý[§<8?`­§Þ{).ÝNëyõuw k÷BÈÍØÿÞ°³ZÄÏS¸'ùáíÓȺÙô<ƒ@qΩvx¸Ã‘ò$H¡%Y*½É"ºù¢±ç0™áɇl3˜L‚ÇlåD°{«c²¬4¥?î:´Òb‹º©³N@×ú­0ãž°,  @Æh+&uÂx¸E>׺5àtX$_¿�ÃÀª�pwÖQ¾/ù uò[·EJø4|˜Fr1MÐØH+›_8÷[ [ÿ¥b\À÷ð5ª«X$Kóp³z¬J_âú?ö´)`»-#U…ÇRS\ðO.fq®¨pzò%ùd‘ètÁfƒ>ç".ñ ̼n:¨gïE‰þƒ½i¹&ø Ìg<~¶˜Jia^JÄe^CMþ'ì×á£Ëß™ÛÂP¬@§Hh/ù,Ý·¿HÅ"”ûÂfßzt^•¦‚ñ>l¹¿ÃžÀøå‘v�îKLBö×ðG=/^"K½fŒ¹Ó#^n( ¼‚¢6ÿæSþÆU<›-«)@íÛd_ YJ@n~[¯qÄ&ñÛØÒ_¤-¿C_ò€m§¹*•°Vù€¾ã‹äÁ¤šˆÓ”iøAp®¢¶«Ó#I@{H ‰¸Ìô3*·÷ëÀˆ¶ÖgŒ¨Ý´@É™¬›+$Ï|>«¾’ö25`˜ÑyF:L|ðù©0R žOËá°B¤�¤¦ž³î­F��xzp;‹z²Œak…á"X3xœ›òÀËéÃJªwinRËA È7ýOƪٶ|ª¾€‘ÓÎ/Ô•ß“Dšîô¸È¨‘±?@),"Ñ*–ÿù,b6ÂÛ˜µ{)ÿ"O_®°·Ò;uØ yB7X®ý½Ê¤O`NñKNÒOO"qSe|‹!§k&ë 0€¢&Æ´BmQ¼ŽDüÈ)ÙØš„YQ¨(Rúè|xŒ(Ôç,”-›‚÷¿i¦—ƒÐG¨�_:,²Gž±êÃkëi¿©|TO�¬f™…zby†73¤ózÉȦKP–¡ÓæúñîpÝô,Õ— ݧÑ7+.åÑ@Å>éä†`ÊÐUäÓ6¦´ÖyÖŽÓH°†?Ì¿‹]Îu%¢4ÖÃûǨÄö� p�Ì Òf¯f»¹±“™P Í*Ÿb¥ÿ-xïöC š þiŸ)`Js!Ì®üÙo’&Câ¼m/mûGYòè¹­ŠÆÅ2£µ.çÁô¡ #E^6uŽsH³å¨qx¯„… ë*+9îKÇâû´N’Ê3IqÖ¼Vu&b«<ñlçqÕìÃ8pË᳑�iiu¼ö¬ˆÍדR©$OëLÂ=}ýIp| ö`„âèk æL±�^ éÑÚû¡î¯Ðòy¸klbC©m®­Vbd�=”Å •!÷{\²ñ�B„“2öªF80·ìÃK0/ÀÞ6-íÇø„ë–$s•ÆËË�ÿ¢yÄú™3WMù%®Îæêï'%[R,wkÞ>�ÊáDleÑ\i}5£™²L'ÌÑ8FB]; ÕÕŠ=·Çu@}b¸IºíÁ%�/‡ÂøÞöê3š‘~s¹=aî¯GÂF‰O)1~š%I&�gÁ¶ìôÐWU…ÌûÓÊ7×EA´¤Bf‘Ö1xã«ÚkjÔC°g±˜%üæ�ñÁÊþ$†¬ãHˆ40æ0½œµ˜ ¼-î(QW˜pžñõçßDä@K‹H�¥u]/ùn!'¿ËŽ[Š{Œ�ûÉýå°²ÄHë? €˜ëš~‡ö7(F‡¶ÖTÌ_ãúÑÈ�µ¡ï9�‹s‡àŠf…< p¨o¾�'¸,LÇ·“ŒZ°k=’cŒ4-­OG�è;¿œÒz¸(%õì:Z¬üà JSï?‘©GT±ªd�9N_œE>“"¿–É·µˆ�"«]÷ŒûØ·ÅK‹öøJ8@Á­¸¢ÖDQ5|.•%QUœ´Û^ôq®- LBtÂò_êÔQ¾£/†f� òÏÙ B2@'�L\à‚f?~¤÷}ôMgÖ‚³8Jåþd²ÙŒz9àÁÖ‰äÓÓèÎÉ*†¹S|–w®ñ$¸�7V,¸Ø\<騒Awdž1­*à-Lùx³”0DVëPO6¯h?dä;ÎyŒ‰w>Éåžk£b�9xSíÈ\sŠ¥ïµcL³ïʸ8Ì?Ùp‹„�ÐüõàUÿÔtêî)`|,ù{S©Àîb H¡�YàÿTð¹²Ì¥ -4µ"}^œ]wx°'ddpI½Ä‰Hÿ\lpV‘ª/ß—y›]”G¢Ø?ãÇÆÍ?AãìÃ6·ÿây5ÉÞGÞEsJ=/•¤`A²´�ܨÊù¶ö+l1ã/Ó­$p€IÐÏý•¤ð µÁßiÑá5Ag>‚¨36bÔKè1Fô}¯`Bßߺһ©�"+Ýmû° �VdݽˆÄš2˜v BÑò>œýq ŒÝOö¹�õôˆŽôA!~Ë–m±®°”¬û£%”æôÁ'8ýY¯ñ"<µ°ÏJTàA"Ï õ !�“�ÒÒA¸IÊž„ùâMû¬%¨>CÓØ��IÖärqò ‚´†Í;t!èÔÈ�ï8Üë Œ«ÈLx©{Qacd&Œ9—üb(iÑÉ}‹s“³–™SºÁçAqvV¨U…Ö¾ Æ«ð�'û=qº›áÈÝÃÙÆéx¹PDK¥è�z ×H·3ˆã¡ñhTõgÔ�¿$“Qìë!¦Ë�Ê�}ÂÚ+¶ØžâáÈãá„PQ„¥ãÀ¹Jº9™ö°b(vþÙ2ô^ƒûp¦Å<.º¦…ÎF¨•SN*�Dg7ÏàøÎ§â‚H#þF9é9ÆnŒ ‹ñn®È‰1ÐçÏ!aÓþE?FHÂXÌØiß`Nµ³±í3äÂéR6‰-W�æ»É:þ¥yƒˆÌØ¡TŸ¸ˆýóÀ=ŒVæsp¾Th¥Ô²18ÈsUDq¤u.…ù$¥’ׯg%¬Z ,@dóÖQtY0;Þ“A°©B Ä�-,µßñj·ð>ѵ-°²F#pɧ%ZY³Ÿù—~ëí÷ø¦±#öt¡/)ÒûÈï™Ó›Z7½#ª£F©L¨.|˜žž$}Ê™”¾Úˆ ÜÆH}xõ#¿ËšëžšU Ëûº8È™Mðsóû¥ÔÅ’-˜úx9V�ŒÙ7p0‚ÎÏÙà §e<p Èßþ�d<æµ¾ AR;Û~€ÎW€)bÖ5È7æ F#(¨Ž¨z1)r*»Üæ›"$Ü•ª@÷¬°ÀfG5NB�ÿlØŒ?k&º» sß|LÕ(’¼Ù´ÛŠnÚñtÄiÉÃE`ÚY˜‚„vC,ä4�Î_ QØ‹Kö=*d.!²6cùÙ²ã-ïG|O Öœ9§»vÎê$–Ø�k¹Uè}A¾È|ßRš¤è‹Íb&§õ0 %Ìm¨ òíÃmõ°& 3R'‡üœN±à'W��ƒ¸ !˜’re'„ù¼IŒkA~‘îøKhfØ¿z.ºQÆ6Y·žpË9QÓêÈ~ï _£±2‡‹ûçʶöýÏ{]á3ÜÒ1À ÜÜ70¦çíVj:Zú]¨Þ$JL�ž217]8â€×ä«ÍÝถˆ#m"°q‡Ž¸¦T öúš>Ühšv�¹+ÝÐ-‚‡¹áà[ !m¬I÷£5ÜÈL.FX÷P(θ�ú÷#ßN�]a$k(Û®8…LÅÃnýg‚QDNP._˜ù°Y§ñWæ,HË_ü�¶Îؘ¿L043“¸K‚‹éAºSrð wÍÕlB•Ÿ·q"Åþ €ãõàŸå!)ogóF@ÞÔÞg-6˜f�4üG�ð²¨+3M#3AÆaÓôR4nÖ¶êú R†ºº{Nxø*ÝöQ·]íì¹aÑä¢/fFÅ-å04þÊb¤H÷ÅŒž¨)ÊáQ‘6$ûÙ6sQÂÞb2Ї’éÔ+Íà…%†܃E"}¿ÔÇUº::ò¿0$ìn9ñvMɹLùˆkŽZÈz”Ëc&„ÓÝ\uEåܾÑ@ëx„ïXOX©˜é·^;MFÐ9žY/³ëT¨‚@vár½“9:"Å R2®sª"Œ¶õ¹çl¸\Íx=Џhe Û�Eªµè=ý'mŸ3ñ™»âÅAX (EËë&? Ë*R½·:TN%ÁmDë‹Ù{Áà:à� º¹I•-�^Ÿ;b®Ø — *f�cwƒä°":°ÅÒ&·RxJW¸šïŸ�ã÷ÛÐ#¨¾ª•g¦¨HÓ¤ZåðH‹”;€VR’Έ/sr¯­kS ã�hw1›¿©ø0ɾUN’U„ÒºCÎ!XYÞá£ÇSY?<ñË~F9àÏô¯¥‘Êfº¡ªeK£÷2Ù†“ö/•]ÓØã –rN_�¯¡ìešfÛûá0œÓ#¡ðšòÁ€ä,íðÕrr 2ˆoF\Ï#ËXñ¢yœ`öxêë×mIjz±r …`Öz?^žø¾-ÂBt�éÍÐÏ àªÔC¡ßmÅ­ΖÛ>†›‡C¿í w,&2«!œ^Ñ皻Ҙ}Ó¡Ö*–ž)ËXÆYŸoÕŸ+8”L4Ióž=˜ka¯: -ÒêFSÊÓ­~†5²{ÿBÇIU¼¡º¹ÚnOGt³.q :³Ò@¤Øá±)”ß�zyÎtp«~äýöƒÝ��I;„‹º¤õëtY-·Rg:‘—³>¥ÉÈù2–Ðñ.ÇZ å}Z¯S¶á_Á~T.ïñãîÛ·7„7"(?—Ó¤ ø¨Œ^=ö×Úž]rJ-J‰eÏ4H–Æ@ˆL•ë|_@™¼ÕF†Æ†­Æÿ MNŠÇÃÍÅö–=ÇåV^ôll<†§Ð}}æbÒµ¸a ¥ÍV¢L˜é¼WYüäéPˆ¢O¦9—‡ÿë_á‘Tú»h5ÌeV+&ýÃÿP¸±–�ò¸m°TáI/‰µì”®×Á-µ2µÊ'xE»:½dáÝ ¾†ó×®²Òì7G= Ú¡ÐÅBÍ®­º õÞ'ÀzÁEÉKKÓ%´\’>Í[l<‰Ô/¶Ü=ßôŸB,–ËÕcgÁLæ³Ñ˜¨xÍÝU”EªyUt C�®˜Ð“øwjÙë5 LàŒpñzœGMïU±ù¸ ÿ– ›:úV˜ãi¥T`)À„eµßcQMÓÙ¾&³û i3ÿ‡tÊP,�¥�]Wòb5…Ú®²x3èºâZ¨`eÏVäŠ)C/‰™&cÂ-y-³RéY…+áÜòr K`Û¤j¢… {AÓohxlúSˆö™Íd÷<˜ÚZ›Ý*KÕdëºxi†ÏíD•Yƒ±S[U^§é��¡°Çé x(Y ‚ —k•�š°û“H´»È7Ûc¥çì©W ë.ÂÙ´âO=×éçøíÝ%žá½Rê½D†§]>$ļ9�8æã�Táà;~R=ì >þi—[(´¤.2‹çO3R^«ÚÅÇŒGÐú®ºö®Œ}ÏÔöh…ñMMÖæ’¦y�;my1¸\\ ÇQäªN>n*DÅWk­Lv¿…¥@»sIØÕ¨hç)Þwt¿I™xrÖ_J ¨KIí𨦲J=ÔôÌpüžá¥s ì¥Hí£õ„`L¸¸§ÓÍ S#MÍ”f?Ý•÷{èÊ6ãâySv299à¸mf{†_Ô`e¥¹­h3uOu¿ú}ï3R:ä2)¦±2{|Œ€„(ë\‰‹`ª>†€ýGm=m5VM]’4q ×k  îÁª—�ÈÉ…ÇkxmÜbíî)¼A‰S\z—Ä ÃNµ8ÿ�²×ôõ¬¿(\=î^nX�rcîce˜?ÖÄ̲?vQ’"R ðdj3Õ)v.¦æÏaÑe/í±Û4 ²0ƒêMú’Ò«ÔÁj·ÔÓ)¤OtŸ {`ü—¼æ-Õõ,gáÊ!‘ÕŒH‰DD$³³qv4A/UgÇ=´ö°½Ñ,°rªŸxó)ùТ �7¬äÒ¯¹8ÌpÅkžC÷—òÁ쉲+o¶ˆ{lU$û9"ŠÐ<ªizWsßþOc¾/žý6Œwý½ÍاÜ#Y>øIõÚ±Hs®[!ÃÉ!«j†®5Mì,í�iSƒU!‹ˆÝ Q~ÄKÇãœÓ©kg\\MG¨ë”©f°Ý ÉóF P?7•ÃÂ[dKÄCu௪»=`¸Ðç”À2òq™ŒË{'-ZgÉzBO÷*ø‹›Nü  ÿ0ññþ¡â°“*ˆ> ¬`™¿Á`ÞM»«ÊVáÖlnÐõ'/Ëϧ¥‚ÒÕo��ÐÖMÇ3©ïÙ™w~ëÂÈ?¾~[» Ð��E¹¯s+4J£§œÄ(6ù‘Çà ‘¹÷l£^ZÝßwqúæÍ0_h†�VC \ÙŒÏ᳑n¥ÌÀ™(R`�Ai"è�ðZ‘ÛÍÖh{Œ³zÏ"å1Àϲç5[à&Ûž‡<+¤E!kÚñ¥ž4>º >¶Jµ CØÉÙ2ó©·,6Iö¢ÈÙöÞ‰ñá0L~íµz0ƒ(ã¡_û$üZç«�˜oJ<—­T4ÁC‘ áút;­-à±C¤ª˜ÙÁêp”`”œ9$ÿr¶ähªÄ¬Ø.S¤Ô™–Ò²éã~ÛÊÅŠ_1~(¿¶jÅ»»–PD¨nÏKA|Øn‹¢Z] Ê^ë+³d�H x‰2³Óº·y-é³ g95�“댫*û®”²ö»uë#A‰AZ-³¬Û¶ÓÈö=ÝÉhoFŒÀoùÆš¢�8Ö³Ú�M6SüØ�AÀ¬S¡þ ˆ¾Gö›„€íJsWÄ·ŠÜÅ¿çÔÄL èXbµe5FåOì 3•19¦ áñr§#N+ÛåÅ ,(?x ø%í/?Æ»ª®ø ­ð9¶^ï}¯˜ªë;ÏN.TÆ3•l$“ Be*Ý"ÀÆdàæÍpÓûNì¬ã鶪} ý9ð¤7Û~AVU…³=‘Ïð¾=!fŒøù’v-;xbbj@ \C�V0Q–ÀŠ1Oò5å[ ‚'4qwí¯N6 [¡øù•U1B=Ë ´Ó¾ðB¿�ÈŽ „SbK�W5È(ÄÄÄ»– Øàã9&ËÀöYZ #8µer¾Ü6Æ ã�Õ=Jâr2ÂB‹óuú—¤<óÂÔ¶Òü0¦ËÃJk¦¿¼,�ò¸†ï}<FKÖß*"ÉÉ�\ËY2B8½¡©d_]óS½Ôé•”ÞU»ÿ„ ¨Kqù#}–‹®Ež‘¶e]Gj¢ÖÞÌIãã‰-±íWz¨hB+˜ú‚¾©:’Ûh¤8 Ø.˜½ÏH»hWC¹€`Å-xÆç’<›—zFM.Ë+Ë2ý"½«§½Qì‰êÚh†×N¶·æH�¸Å¢G' I‚˜ÿoñtî<5ˆ;N´h†€…ˈº•FqªÌá2{ ?üÚí÷1åC}Ø0eŒ”þÈ8¾fi¸œ)l¿phÕŸ†X÷ÇfÓ‹D»8ï0•Žå�ê²@.ø�LˆÏ¾°ªGíÆ†öašþiXr.j*@©X&tRÆàˆëEe+zQi Áj@m- &þu¾tæ•É©x^G‡ïw/§l*�§›{bM¹Trý³“u^¼•�"ë/¥0¸‹'wüe”ÅE<øÜ{I\"£Ò¬YøÌ.çz…*×­YPÆÕð(ŒØ`L`,ÆU7æÔƒ©FUF}[ŠÑTjŠ)‡¿Å2¯ žÏŠ_í®³\�-³Y½MçÎlóX*?‰&ƒ� ‰jº‚VÀ{eƒ"Yæ’`õÈLŠÚ9XOxšA áSj»Ûc�³ì²±Ð‘>Dφy`ãcاŠ;&³ÏÍ«Ù8êø™¡v{²¥,Þ*Ňï(œèB­c´ëG—èv�Ë®ÿöK²çŽ =jØ's6–ÞD¹e3i® c0ÀÃÓ¾�çô m³ÞÒõÂgN-³@Ž”c³o:fÁ´;àQ)ÿ!>¡„‰rù4Œ`r6SÑ“l¾fGËM�Þ:BÍI€û:ÔÔìÛQ¿g—ät ©}ÊÜAz·nŽ@Ju^,WVŽF¢ ¯ƒ«OËØƒf¯U¾·�Æäà,�ßAM‹0MУ�²}‹=à£-XBÛYi‘í%kgñˆ¦Þá)¶½È8gOÜv)Ôógh–²lMÑæã‘©xµô•È×ÔHBØ:‰¸üÑs²ÇÆ”v¼¡ûÅ|ýØf˜©ÅîŠÉ/µ0â\Çþ1ÁN*;@öomíúªw[¥æ5üSXÎ*‘<˜=æŠo4ðD: ÂiCš_g1ÅkiPËI̽4cðæÇgHwj£ªqèÅÏ+í ¢'GÄk1UêŒV-"NXËÄäìx�ÃÐ,67Æ©{ì‹çÁãÒlhE‘ ¾ iÆ!^ÎÉL:m¾­Ä$s+Q>c=¾�¦3‘]yDzS àÿÒϺ"¼DïÑÀp¿)•gÙdE/L–žÕO˜éy1ÎC(Ï�f•G&Û¿Û{Ö�׺ùàâ«ÿzÔ‡‹$€âO^»³Í­õ‘Ìy[$Ü7[�'!b:a!¾‚p!gÖ>õ¢ü7:1»ny‘õ;žpI¤>œ…„$QbàŒM{´ÑAšV­ÃQDý„ªÞð¤ó¸¿LôÈèùþψ ð¢dA žïøØqÔÂÙ8ÙiÇ[ël—¦*€Ëɱ�ËYü°7áo”RA[vrÓõý:‘TNÊÖ?¥7nü�vá!ÖšÒ×êä䘎ñ‘!‰©*$Ê¢Õd.× ™W’EAÌW[u-–â<´Ñ?¬$fbX”EhÈ¿OÞp¨CØŽåhÈ÷üEy;ÄË6_]§Îœ+÷Q%±w³@BE«UgêrÕ¯¾€Æ å¢ïžáSá¶æ¼·žØò`f†Á‡eä;â…’9­tÒ¢@œ|‘Q{�µë†>^OãL�‡ÒJ�¡»€à`Ù¤úW;”³Õû\aÍ×W×¥Z\el‘?ÏUÛðë°AùTá(ú=ô‹1-øðÔ| "3oŽÄyär}lý”ôvÚþ:=1jùq ‘CÊ[v‚ó Ê["ÎWÚ7Üó™V„(Ø Ãx* )00}»Qi7™/i!•‘®’¨cQm+ÕÁÔ�G”´IT³Y9oS°™Z„û¢cÓ[’v»Þà^²ëÑžžè ¸I*”ù�¨ÃP,Zd$Kš‰<2¿³ù_úñ&àñ™^`]R}ûq†' *!ŽºØüœµvhoöd¥¤ é,š§~ÑAû‡©B?vǬD½uô%oÿTúûšcšÄ¹<ó†¤$,Xú_ºä û·zõ¼çÅÑî'Õv ³©á‰}Ýècƒlø*i +°;cÍ< {^çê=/H!õ«K]Óà[àØÊkÆYhõ=¶·ô1ë$ÝX×RšÜ‰=?¾>Ñ“Π¦‰ÎÊ3ý< ž”Óg¡±”/ÄFâ™eœzMõ�ضà’ósò`à9œ'ƒrÌÙõ­Sÿùü³á!*€:ä�?Ÿ;²p% )mX"oO‰é�‡0ÍXÌÀž‹üÈ4°È×÷�ì ÌŸÞø7IRÖ¿gé2‚`³¡`—÷Ü8Žò^˜B/€�C¤+!ðNqØð|²7ûœÈeŒ½`Úâ�‡ûs”6ÿ"¿ÖX´ÜÕ„¹â-DŸEó©ÔhB�u´YQèÒéA¥�Ä^¾èl6GñªšA�JVÕZ·‡7F “Û]yU�ÜÓy_9å³FÒâA„òQHÏ4ç¼¢Âïâ ï¬{9U \©…<ˆGcŒN0`t;ˆú÷M kÅÿ£¤}¤!É.œÑ¿X“ ÁMW³f޲È3Ö J””ÈÔËZ¨rëªÏóï,°Ë|¹yÁ“¼çŠŸ ^|…Í£¥\Ÿ]©`î¶§ù•éÌ$d!Ø ¹‘®#@š,$º1pq¡ÞCGÐÛ£ ;Mõe’ é¿€õOÊ1®Ö'"'Íáˆ/Òþ¦¿3³Ëñnêl¹ˆIv{»”q¨`W3önúœöÅ8™·’ÇÐeGDˆ¾ÚfÊvj¢Q�l_j±\Cxn²íØ#û Ô¡ø[­üûÓ^²OTöDáùAH«¿êòì5óÐ8Ô-eûÜîUŒ‡Uõ5�Y ^Qäµ$¤ÿƒõÂáÊ#o>4Î}\©ŠqdÙÉ‘®©¡eÍ"£[m‰�H?Òö�š5”Ë"aÉÛýe_C«ÒµÁŸÙ„‡özÔà:±°iŽ.R2�FXt›sز�¢/X¡„ÙÝJ1¢õÁO^)9B_ÃíÉ��•ó)‚ìÁ϶P]Ãô×î±ü«{•R$úp™_�|›`IŠÃÏ6þ²z¥<� ¸!xÒcb2Œ-·IºR›2�í�†UlïU�·¿åu„î¼ &cp“.‡èÚ‚¼â÷ú ²T<�V;o „`´H÷ŽJ¥Ä7Ð@;Nì�](ä±³j×m1z¬€9çHÙB}Iœ‰ L »¡^‡ÞdgË�Æ*>#Læ(3“yš† LC±¦¯Þ·Q0aj ÍišÎVpu°í-lòä•zi"»`#4]m¼ä! =FY›Sö,”RòšXÖ tÝ %Ög„í‘MÐ 6OCÎW¿.BêðÜcqÔLÚ2RçÍcÆ‘¦ ÉR\Ð ÷Nj²ð©ÁÒHa+o² ìºâ‰¿ÂqO×ɲ&“â-‘Ëwó •ïådG¸-PÈJôÕ¤qü ,²Ìâð8W9ÑjäBý.Ø¥%Åþï•éìï­KJ¬#‡®èKñºxúW«žá\@3'ƒZCÄàâ·Ñ“õ%‹ã'qAM;¡¶|âÇ!“!1~¬¬¨}è svaHjwÀfξH6o’tiÙ 0‚"Ø;…¶ÄùÈ<+vBáj[¼âÝ× ‡X7†¬ìÊý ²cÙt¯ŸÙ•Ù@m=‚<‡­V� MœñÓ!#6?KnT¸X|‹{Ò–õŒþ~>é^{Žà9Ô&ö.Í…Ö†?›Ï l‘ÁÜ=ò@ÓEȘêÔ5gw_xp<+¹÷ÓKwNÆFŒ–€õ@ŠêÚlX¦6Ýqˆ¼÷îÕbÆ–Á `<Á±ÐϽà_j³5Tk*i$w{u ÿ¯7U;€Æ×§]…‹ÚíÔ¼c¨ Ьv1³g Oö‚ j‘—2ÚÞÚ+ÚÉ·Ý«ÄhÓÝ`Ú+ ˆçº¬/ÆC¹£ážéZŠLD| „*ßím à‚¼Äp^1ì×6´Õã0"’°(™ç ’r÷Ës®É˜} U³Ö¼Ê“` £ê•Æã,¹ïǤ�cÅVrÇùx j¢Ç¬Sþµp·åFÿùÆ~ò Ëz˜.â5ï„ã9fJk†ÌFÍà³\‚`Ý8G;‹îdÂQÙBk1üQÆïÔe ìœÝ§ h²nQoK›L�'!½§vÍÜ6\�Ûò«�`ÛÜEI{Ý'â±—ôo_Õ0xrÐ#µ¸àóÞCøs4°D¨Ð™dÄㇼpi1½Ø”ÿUÔræGØ¿Ì)aB¦ ŒØR‹ûY×6ð0(@uÉ0^È�që!»Z�ÇJµ¹âi‚qŽ.NÍ »”M�mœL4j$'mÛ–×�¡óŽŒÑ7Ýúý°ï�gˆË2�¶m¡ÈÕrƒ‰àUNÐì[µç8ò’M¶ø»w.} \\æ�‡t³TõÃ�gÖ(½šÈi˜~ªÓåúÑ;¹?&è Ì'¹<‹ýÝ8cåsLŸ,7¥«‘FŽ÷?x{&°Õ÷¡k†194íi'o\%{Ùó7‹„¨4ZqláïÖ¦DÐaíŠ;Ä¢?ò¯öÔBVùãÅ�¡VÅ"Ív½ž2šÄ)Ü u˜$GÚ n{aM¸½œÕÓ¸¿»^• ¦Œ{ßFÉ‹7/ƒÐZ±Ï΄³k°ž¨ÃI#a°ƒ+�ìD`TÜm·ü5 æ¥°ÚüÉ7ÅUÑ%ºpôõßñ(QT{v¾“¾…½¥ë”�#h ‚JL Ò*:ÿ ˆ@çΫáY€N HÊ=brh¼F5KòEˆûýJ>ašÿá0Ñ1ÈZÚý>Ï÷üO¯ÕüÈÑÎ@é¼nY–Ðøk[üwÎ À²íåRºÌdçôÓàÿnma'SC{§ÿfMMŒ<  �˜ŒmMl,íL ÜL�œ-ííèØþÓþÿ:zSg:7{FVjF6ºÿrªÿ�5þ6–ÿjÿƒÿ§ec`ecb`dbff`aggfd``dbga `øÿxÿK¸:»:8ÙÛ»ü¿ñþOóÿ?Åÿˆ‡€ÿ>Æôi^^0”Œÿ¾‚±óôÔüßŃ’©±›²�¥1ü|xC}xþí«Ž9-Ïæ ;ë ,lzRoóÇyi˜½ˆ½ “Ðæ£Ê˜NÕ™~Oଟ‹þ#ŒáíÓ‹§µùŸõíSèÅ\vv�dM=ÈûÍO&þOúÿñÑvÙ"2m˜ï ÊŠuÆECvdJµ[á¸cn�ùõÅ6úSSé )«A� ““�³³¡à”ÞOÑ“úú!ÿ]ŸáÉÈŠÔl©*üE ì§/fic*bêlü?çaíд‘&oAdž¦å²b>ÚŽìv`ORk¼/¢1áÕTÌiÀÿªó_£ÎÄÐÅðñã0EP²�¸�[ÕØó}îÿ§;@ü�Ϩ.Lí‘Çùªi¿Ø H+x™ðCàF? bKu�P?Ø RB m0í‘z›KׂE‡r˜ ÷8�¸V×ÿ�o3ÿ›~oìº!t¨Ã�ù$M‡·ÆÿN_RLYø¿ðÿç;P_Ñ£û›~;¤qÑRI\›ˆÅ&J$JÝ4³W1� ­q‡ÎÉÆX `0O7Q÷˜ú#íð]'G:'q)™ $‡Õº0eº¬ Ï*! èHãKÇo¿Òé?@&lùÝà&{âbçJáËŽÜx�1•™‹Þ}®Ö›ÙÍZ}&%Rºã4èYü›eähÚDš¸«7;4¥ØJ¸"Eÿ9%y†)\‡-—¦ˆ£žnHIªÉrCÚ¿qôUn“ø¦ÊàqœÜc3 *×ü‚;¤Æ=ÐU¸O–ÄÇ€¼Zñ�iŽ}�ï«ù¼V?kZB9´+r¥þBâÌ‹Büʪò Šjµ±>. �•ªJè†[™}êMÓ±†pb•íø’kê_ûâµK<°¶£6FCû½ÝRÿœ�̼f»¹^ìÉ¿<Œ<¢qÈÌ3ÂS8÷-²ðyMã›ë˜P/…¯ú¶4*NIóT´ w­¥¿£þ§m6qžžKUdºÂŸÆâ¸ïîÉ#‡•tzÈ«7�1$•`_­ß»ñ=ê—*ÄmR0DÅ?w¨eþˆýj}pý{þº?}f÷µÊók2²hmŸ*§&†zøºY+.ã\&=:Ùøù?Á•óÛÜ2{O˜–/ÄýÏÁEþ ºmÕ»ÇVst\I~ÜM¸I÷:ú>ݸÊuBƽ¶Úì�d Æ$ËìíPÒŸz5ÞÂ@úU{Ò–¿qµM‹™*N³¹yêç‰Ö<†¿!ë`d¹v0Ð=óÓirÑ WŽØe‰æìûïa®�l„úš›±Ô+üæè^$âm-ø…¿žEÅHr¡ºu'O86qÕËT÷Gù¸-”2#¬|UÚ )MIH¸¿_A}6¶Ç{ðn¼È±öd¸ÀxkÖþý7n`£ �Hh°9U"—r3¿gy”^¥�jïÚ+•ÌÏ}SzÙ„hVPît¤�ò¢7#uµ<ç™Èös¶ê¦Š[ÙUá3íÅÆwºÆ�³O5!2vo¶HÛv.Ð ¼m˓ʢ¼7ÉÛ÷ Vp§5/ªWìܘþ�AÀ ”‡ä¬½"<}‹„ï´oÁÚ’�à—¬Ð¹ÁVœÐæª�/ñ.åâkh}s?Ðf"QÍ�ù‹Ò@Ã�À!ßPòO¸ 4¨ÆG©´aJ¤¨{ºuóVäÊ™`Ù “ô£àæ�×#é¿Sz瓇AÅJÞ¡ ꩛⢕ÁZêè.u½š=Žq¼ç'{Æ´G–¤^-¦Iôu°Þ½Xš¦Žeæ×÷ýLò˳¬¬JAoòÃV‘8›î—ú7Œb’¢ÞËÝ3§­íxmHx m pÇ¢½Íz.„ÒbRì;%mB´SôP!¬asÌÏÜ FRíl0x^?£ËNZ~ÇÆÃÿ®WÌœ]gfíïæó¬Á}Ðe,`]`ÛÁx%+°œNáæ½­“ç§™ŒPåî9•p©?¸Û#ŠÆ2ŒiÇ$ùQÚ’Ù�šs¾æLj1-ĺgÓûû~;ɧ«�ðn ÄYK²k®›”à4“6dKv•yL¼b…ôçÐÕ+ õjjš9-ÄÒÐYšŒI]¡ÑͲÞn÷¹Õ¿ÄEÃzå¼Ö/æn¸·×ôm‰ãÎõvÈïÀ+h<üA¢rýUà–wY^z)ôú.ƒ�ìB`²Ð„±ºÐ�Ù£Câ¦HÀ›Ò8³ ‰!ÒÇß÷x”%[èTBT#IÄq0I#Ç—àß™–v, ý«x½e›W•¤`ÊúŒÈ;nJÉ^4r1-2 ŒÁ«úéÍagõÆ7-c4Þ_÷æ5äðÉ­Ø9_Veòª€p›Š«lS9£Ÿ_ﶬіŠ69 UõC S¬x~Ù8îñ•ò÷ç…6¸ ÂÂM ÛâŠ,k+ï W–o�MBþeÅ‹À‰_ZZÃQàçMˆ–¡]\P@:3ìâïù 1ëÇæe�tcR�·þ~†�é5ßJª÷JÈóêÌí´Ôóᶚʼi&x2‹f´¦–œ|ve›)`mý™(Í A¤’èm5¢$ªY_Ø&¹  Èi(úçí¤ñ«„"«æ=¹@Ç(ú <Ç ”r!ñ?yߦ®ä¤Rî§4Ì“3N"]n÷¹9³ xã¾Æ·Hª¾–,³H…­„8P™qöÜM+ݬi²zŒq›/]õçû³“ðнCðé.|}¢�°dã¨÷¶Ä^vk‡]Å^,öÑ'™zôðÀd9“>�~¤Ëm9#|oD0v˜'¾•^Î%áAÑ~B» ýr¿Ú;û†Ùêƒò"é7!£!êúôÐÞоd‚TŒ†ƒ™“y lcã�dâú–ýá$ZV©ñÞÁ™ÕšÁªš[†™¸¨J(¸œ]8ƶ¤²ÛÛJÒ”0Ç?·SÑx©œÞ¢Õ½^aæÙ*³(ƒÖ”³d:Q„(‘òÝ áñÎBä®YÊwcÕ!;Ót|‡íCÞü…?¥Qû\*¤ÞôÜ��D'ö[d¹†˜£…=çIE�×¹ÑÇQ©T8Ä¡~¿®Là}vPÐ|¾7°É¬€ï]Ѷ�`óqÞm 4×.Á-%÷Ÿš©pV÷_ž±L[Êüî:8U¨¾Ë©³°� Ÿ3}¸:Ä%àŸ0ðÊ�æ-£~xþâêÍ”DÏØÜõ¤©ž …�¸.¼ººGz+«ee„=JVÃí ýE¢É„Чž°+.:—1$k#¯+Ž�Ž@{aìòGç@2`¸8þK]_Ù,iîrØwEÁ´×í7ºùÌ‘rŽè`/ÈŽ‚»` z=ƒØ´û±g'dÚ?ú+d¨É’tjM[Šâ’SØÏÒ8žg½¼�À¸Ò‚õž�Gë®3ú4ÄËX®9èâL-Yþ}-gx% Ç#jÖ­ô=OiÝó—�ÄÇgÿìt Ÿ2äŠÞá¹%¶$‹ä“ûr~´ÓbvZ G�­²ë'kÙ;óa#µKúchzjËQÕî*¤Ëoš²•΀¢»UuDiðK ¤tå×nbÙ'¥r3¹U2gW4—½Ó¦jn9«!FJ—Ž;@ÇÁ/aÎéâ+ïI“vOÚ¼';ÖÝö)‹$5h±ÅLÄ*ƒŒÔf6"*‹_ ‡½;^å%м²ˆû%Ú MϾmMÂM·;#f� r��ÿ:ꎽ{ôQý�FGÚø,HzˆÊ…ü$mÝü—©þ–{bmÂd«¨ß«Ì2R‡ïí%˺•Ò)8°á|“]¢ˆÌ6™zÇPsÄx v5ÖKÍo+õ 9¬PXAttm ¡(ÞÌP ´Š hÙÝï㈪s²z¤ ¢ïN��ð÷x`3ŠrZufío¦ƒÃ¬"£S…JÚâD.° “¦|GÄ~Ò„ÒÃÇ�m�~³Úû;uâäÂûmjÎ~ � z–Z‰·ûjùª©�¡�Ò-'�Ì“•vËs·>ØTwèÄ6ÿÇ( °4>B�Ñ5öΡ=±¬ÛÍÀæÔ‚`íO{&i¸ý‰g<Žz]É�•x#J'Ü�á½»“»­ò²·ÿú€1—ptÞô!9ØŒ!—~!¾ò|�Y$lK"ÿÚg¸©u]û«óš9AröpfÒu€GÒ-Z³z©‡r]·«Ÿ5Qõý*’³ïscS$rÖݸŠ2fÒ#uÊÂâÙ 7¦—‡Ì¡ Þ²UË&&ÝøÂJxŒœ† …%kô&ç½kôó˜ÿV¥=Ðëº!n+Lœèxê§‹í¼>3î¤Ô£Îvϵ/ûäXd´ï�Vb†_é$éŽ ïPGøéElSu<¤J–©H·ïNìþv^ôuDRíœ[MÌÚ½ýŠûƒ‘ž“bŠ+ÍËGù`ð"av�p9ÝéÛ¡@6]#ŽG×g)Mý¯¥ZÀç›EíýªÀDNæ_®ÀvgçJAŠè)Ä^þ5Û²çα‹[1†]ÜÞC+‡&£«®"ÊáÀ^ujë鉗–…&Š˜ô`Pr ùýòŸ¬•ÔÔ"¡÷3rhqÍtµJ­º@ô&F)<;_+#Kßà ²Ô笆ût:Å+Q¾~•§²ó·„¥æ9§ÌøÕPõW ï‘²''ôÌ÷séKÅ*Ü…Ÿ?ݨþ7×Ý0€õ>áØ›͈òZμ;PVã­xÁ®§ d½`”&ÞjZ)Q�•‚¯u‡¼‡€×®˜Ø�^æÚIåvÏï£À @H8d‚FÔMÊ6ô€³Æ¨VdwÿMá§fìNÝÍÊžÁ3ùÔukSu8ÝÏʽI¦C‰BT3 s'f,÷‰—‹‰ÿ�Œ$ЊÚñØÕ,v~ŠP1ÆÊ;¤ïEÖ£BÆð!UÀò6ë{-»)ƒn7–Ë�¨YqCÛñºè¬ñT¹€‹@(z9!B`¾´®:­½ÒþôÝáåÓ%d èWR’´¢)Qù4h¤9õ3 9w�qü´‰�W—z¯ò=}Þ6>gªäª^ß!K±Êç wꮂ6…€É’ûy®Vr˱’LÚ¡áŰá`›* �ïãW¹!=¿&&-†Xñƒ¯¶Q[¬™P ‘aÿ»3¼÷µ£ ­ÒG� ‹¬ J¤�OùÑUy;FH0Ñs`y_ZlÓQlH<”l�lfšÌÇ"øÀ=¬_LKOwÉQñÉþÎóÎËë2•ÈyaιOþ§ûµÁ0P<…_at(YJ]\j¹d%v:dž߷Â%Œƒ ñjƺ$@C‹ ‰òæàéB´zÕÇ¢í$ÚÚ´€ŽÄg¶,·.]ç"c -y9ãO’xÓÔ‡È9È–‚�‘£7l—Zv?¤2Ï(—ù#A¸–NÀ#j ÞQ¨® [fguK *ô’w\3!ªõGâ¿TÜðùX¦ÓT|ÿ*-àü„…wÝJ:™Û5ÑÏŠSêàGÀ’\‘߾ʅ®Ù(�(.c ‰Ï�ô†øNuÑ£GÈÎJ[4§†’K«ØZ�cé''à^Êý˜ÒÊó§½×þ²<µŽSÈ’†ÕóÕk@~P¼víX 8#à =¤Mß6<)7Ä×ň³aDàÏv¤æ€± î…šœ/ÁOJ‡†<ÁÇ+]KÁ`H8m9L÷44YŽ6¨ÙÝIûàÝJöœ‚GÃ#õ§%’1çµ÷dj|Á„!n¸Rƒùèæcg·aEWƒìíÕØq¨@öé÷£B`zod–G˜qÚŠÄØ© Ipa¶àE±¹ÃUZ¹#œÁöp§ƒ2BÞ¯Ùþì¤dª ‰�º¹ª”¾…X3.È‘4ûœ !'qKt§°7ÏÜ>¶Qqd&(×GoNeLûvØê½Oae“†_¯­ª ün.¾}ÁЦûR�]ŒªJì„WÛM¡(—R™Óx:`à@=ûæVJO¥ äà¡¢8`|ùv™å]D¼' Fa©…› ¸Ï|ÉK6 P¸nÀ+J¿Ã¢¹ ÏN¡„ø_´Ù$ÞB:ù"® «×à¨*9PŵĈÏ=éôÖ`#B³úóSØc/}…RŸ #¹Ž.Çk¥Pr沋”Ñs) ÉX9Sî&>lûLHQ›„÷¤a×Q9zyj¢·ú½/557÷¡ûƒ \µ)fbçb[ïet:¤[ý=Z}BN#¡áX’×…1˜Û/‘«Û“¡ ¿Šª —sW°Û3'vÊÏ&ç̉ ØOmañ“'m_DO}ö&dt³Ò¾t×3cʾàL$Z—%÷ëæ½ïŒ3ãѪï�“õ.—_{Œ¾jcϹ5z‹nPÁ<»¿kÔ­Ûˆ>àmX^CÏ[ùñAÒ¶'˜KøW(V�c«™yý_|-c‘ù;âŬr•ÝáFкL‰ž�|Ø-rºª+øâ-C{71#VI�ÒŸñÉb¿PÛU,ÓÓAv5)4=ÀhE~“LÏ¡Æò•á—u¸y†Oy¶'ÿùŒMEV8AAüÊ’JBu†!ä*ø¶1Øc.`ÆÛ˜Ã'T}¸QøÈ<û¼·¹Ë—žžtß¶ð—u&5›r¸íúH+s]Ž-Xv!HÕZ@ÃĨë!|ž©z>t¦ÓWÔßòðD5îéŒKµñX�È·à ÐA{ÿÀþ«Á'mÿÖÓ¿�|h¼ÑHd·•8QsCy åž�¾¥ ë¼'‡ àȸX‚!�MÁ¥õ!~9µš1½>‹b‚èè¹éñ/þM ‘—›_¶!ó4V›˜\g¸h~„Ú¬›~6‚‰0ÆÊ͇æ%4Ê�²!Èê. ¢ÿº¹êTlmÁ%håú¨§|ôJj’9„ËÞH~#O’¡ŠS ºðÎÆhk‰rV{¥ ŒÓ€;Ô|Q©fööpùÜE*ø¸ªO11dýÀ‹ZÝÁ¦P“;äµÎ�÷ «(ª=âß¼ nKˆ85ÆÌ©·ñÄÕ$Q‰Š%ŠŸeq•êÈcâ‡#sÃ7Í“ªæm1õ¥SçÑn½3|ØB êlÖ:lÓ¥¤ñõêpØ‚Î9ÏtÊ� êct¤²YÕIpŽˆ`"Ï-jíZÊœxÑqE}/?{`×`ß=8ØÒ†{(Ÿý¸Å›ÎT[ÖúaJÁ&/éß“ ¤ÉØ�Ä4“'y°uÛ§–Wåªu¦sðÄ“…(@ØïA»ŒkËb REËGªMÝ-ƧÎl�ç!ˆ_³ùüT5UsŽ2d›+Ùê¤�þèf⸄bªÄZ¨0ÿ5Á—Gaõü¦±ŸÃŸe⪠¨?˜!BM&˜Ñ€OíÅ68‡ã¹L…ˆZ‰ð颀ÖSµì§`J©¯­ÿÊq�¢”‚þ´’´b5f¨qn…9ôü®9gÉbJ ÉyøyÔ=—š¶ŽÔ!6Ÿb+2sžK~ƒ¶<÷R#È{€%á²#›¸)0S¥˜$JƒÊ;BŸÖž‹pªÚ£Ë˜ˆr?‚l&[äƒEÐà6¨¢ÞäÎÿñpgxeòË=™¯Õ1\-£HRèã¶–¼�¡/q/¤À\<ÒF�êAã‘3z„þ¯ìT¸é#·iÊ|[رM˜+q «îTŠæòe}Œ!‘>†ak{Ž1’ößÉ^š6<±æu%Îd%Å,ä/¢šÇK?¥¹‹ÌþE/5ŒŸoù‚ï~Nõ‘RñëYwªo&ôèm�¿5q†ÆV_»ÈÊ9²Á\L-tÀE \¼†j�H%šÍíc:°áP{’s‰ŽÞý<ex̤ܴ}5Á7D»jòf¤Ã§é²ö}…ÑHémÈ¢96FB\Ïú Õ™n!hêã©EÇ`‰Qn´'€iË™8Ñ”öó /�alN„f½âŒ.�NÅ’7ü<ûªíT6žFHè'°0=’l ”M %|öÅ>cŒò¹ï§;,Ðï2C[JÃ+ ú©/øòºl‘rØeÅ:è烌n-©�ÚÄÛ¿À f� MŸÐµ)md›œ�ÿ+5É1Ïéké?ˆXÖX6î0=϶Bf¤*7 XºjRf>rroâV}ñ7âøh;2‹©j?Ju!Á–�aüäÙ‚eŸÕæÑã2jú85ЮöÀ?ŸÞ~ˆdpi#�Ó¢pÀoèYr,ßxyÇÍæLgˆªœ" Eo¥ŸåzèVé’_›Ì¬#¼Ë jƒPW?#ôÔ�nL­z‡„Èz Ö÷€²`2ý"6ü„>/,€ˆŸØwŽGcû_î´ V{O†K¥žÝÅâ ;™˜/ô…Z¤Ú©tóI•Xõm9yoFñj2Š}÷VbÉÛº¶©í&í^õP‘Å�|IlWWH«,Ußvg^ ¶ûX^Ñü¨ÖEÊ8¢Sã¸|?“2Z¨ycÔžšt–Ü“Ÿ/¤¥âpjþæ#¬'WœÖÞ 4θ4•_v¶ƒ€2G©Ý$ĸþ]M)œ$Ö¬kÔàråïÙ·ý¥ð_‰åO« �ÁBUp(¥êZ'}Ëí(ãÚ6ÏTÞþ«Æ"C¦9‚ÄNš´•þ¤”/y‡è·èd“9ÿCçÜÇå)»åŒ?J8i�àwJrþÂθÃKyYãB¿Üꦾøxþè�³2Ó‚€ÏÐÒ«ß•x ì]‰%ÂB™mφ|ü&RXØ‘Zßt_©öK§A·GÇj;qEÊHÌÔ΀Íe :ª%°•Öì‹Q^.¥ #ÇÉáÀG#÷æ/rµÊô{…ŠiвÜDNª]eðƒmܨç]0<ÌKJu‰0¸DwÀëAbÔ°¼‡�¥ÎqÄwÍzÝ9ñ{Œxÿ†€â¶wBzˆS�nk|íúº—vü‚0-ØO¬% ™ÝÃñ#»ø»WW³JOUgüU S�:ÈÁ"x¡'q%.ñ¤„½×>í›�Í�âä,û¹NÌbPŸŽ‚C,榃øPB\)3O/õ7âHf~-÷ê”ÈŠ5rô¯,ò‚Gè–%ÌUñVuÞ²ê'P† É~šbbGêL‡fЈâ{·k•všï«™Ö›$$ V|ærí0êÒ�Á�Ø?Ø–‡§‚ Vgí„3œ”vëÏäpU8]|?b; Í5e†?>ù55~(ð ©Æ[¼—v?%uTÝ;è r¾Å-`à dµÚ¥ÖC›8ÅÑï<¦†Pg"Ú†~£q jWŠñ—U~l«½C�ÌÅÉ” .µÅ9ΰŽn, ¨iZÇcz*Ž ±¶ä§l%¾åYZíÌ…Ð+•­möXû‡>b+GCzä-Vž9¦>.’x´ĪÄÛò�¶Ã]Væ’6ä…4Wb3ß ýŠ}Ó\ýêz®µäd¸[£cÛ‡ýXgÕ~xðW3Ú%BBk]_OÕtH¯ 7`¥˜l¡§†ðÃ-¤¨ìO&Í}[VµÀp�oeyéyºÎÌSàO®>®§>Æ·…ºÍJ@ „Dhl ÜA C§™æíXBè%UƒÕÔ„}\«û¾uS Åii%1eºšçìö…L’–Š;”ü6¬›/aò ÿS(y•Mãû«¸°,æLle4á0ŽNJ–C‰m”§kµ¬�ÅÞÉÚ—T÷ë†p€ÝØ’Ÿìæÿ ­Ón¾‡(Ç¥yVïø!š9¥Õ�€Ëá>ù>D×cùïïHX-fž¶a”–(»“n€¿¥N e2t¡òÍ,¿Ò„/àB e—£ãðíý«n}° ë®Þ8OãëSîU›í&ÍÀÙæÀ’ûWôôñ�YÞ4½OePA:ÌŒj1Žö©–äºUèÇQb ÍÄiÔㆵg!é-Ǟ޽öE,iªõU972JûÐx;ÿe+VÙ¿³§T0Ö¦LQ¦ïҵ翖ÒêW¶<”Þ©d‘üÉò"§`,cT°µµ‰+Á ûš‡¬ñ�“zÏ—,7Í�@ ¬m|Ñ%Ko ñEú�ez‰ 6}ì%�`cÍØ‡`¥xèœýûXþ$ÙEáÛ�÷ˆ`žûçzü–´Tш¡×znÉrÖàÇëùÕž×BÞÄ;±æEÝâE¿7 á¶ßô+¶SMk;'ÏÀi^$ùökzâé˜Ñ ,¼kXÎ4ÿGO¤y}í ìÁ‘tœ° ¬:Ca½b &}L9 lYþ�'zð8WŒ’Sž!äÈÜw©úÌÎ-­«âŸ“·ñÃÄÞ¶òfŠvWT•Åœ�Fç Z.®zÕW³ŽæÞ¿ù ì[s¾Ò¹ÔxriaÎ|îPB¤DUbàgKÒ6õÛØ9+hoT ­3ôñB ã4=…áóël¹Å–Þ¿þqÈY’�žÅB¹Ïøï,5LjüŒ£b;,f¾ßñ€ú\ÒrÄt#YÂýˆµ>BzÚ»èˆéd°’ÓoÞe•V)Ol!“‘ù\!T@{÷ât§É!Ó4©G€vÏþ>°.W~Úýáº|•ÙŠ MŸpF=#¤r¹F]¶=ˆäþŒ8}Iþ�0‰{$,–£ Ʋ4´ð*�»so� l[bP„­¬ÏÚGÈä�3ù¶Ü» ëà~ó7¾C9¬vD9\£¬èlE) Û†‚E?†ÇV|0ˆçuNÕ³*ujSׄ™Ï½û�ó¼ÁgLwì½c„®”Œ�ÒbÕ„jù+>Ë÷N¬,›Ï€)‚#ÚQI©(`ä0—³ª¢œqùÅPñkfšP}ß<íê'�ð¨ØVÅ>7¸UfHV‘u­NwR`ô<ë"{[Üé݃W…Ë"ƒ'류�¢ˆå6H§Ëê“Ìq«ŽÌ±Ìƒ×2Òá¥ÂŒ‹1�×ݸ©=i·%ºç‘�½KRP3ŽJléD=ò¬ù]ÊCÈQpæ¥�5‰·))¶òFˆaKMÌü1O 0‰¤fUÚÐ `t3„60jJnCd¡€â9I^™‚ÀÝ]=�)â—¢©w!茙ÜèôÖûô®JL“T‰Q!ï€VYbêvö¡àY]ÂCô¤�;ã=[Iy‰F™Ý�*Ñ!x¯Ö«ßûÀ¦•gö·ä"€ìç[$¸ú˯Švaìxd\\‹‡ tƒðyB. Ðþq­^¶kÒÅt@ܨìi²+(ΛVp"µ¹Éåƒñó«C!­¶P«2y¡»-õk ŽÎfù~·Tf2›sFg®˜;°…¼R\×ò×9–“¦Ñ(BöIýBèÐKŸpå32ù+Þ~ó2·5ˆø› ¼ÞN‹bÖh›õ ÒªÁŸ\¿¹ÇU»—c=±/'z‰ »ÎõC�Yµºl€ÉFª^AMhÑ>ùÚŽ0rŠoo±‰LT‰.BµS-“Þ¶µžAî�tœ* Ü+ËÒ¦çCŽá*Îh 5+ÇjL…3é7ú"ì>B`¶3OnÜ&¸Ûd¤¬“ƒ™pds@d$•Ø g-$nt-†F`ëãÐðâB`›Mô&TPX©Tî¯^¨:IJ¸Zt2¸vgÇkZÝ×{ê™Ë"¹Æ—²8ÒQi¬òYu"Fo×�Yu|R°mÛ»…ˆá‡ë÷?•êJŒJåZŠ¿Gs?ݺó@ù³~#ù¸õ ä5ŽÌº€. ®þÒ?òùw hßdàÐRÄ�Ugßͽ¢¡‡­ãÃà„Üv\Ú‚&"¹C¢;¢ 1Iº«šÃD 9¬ZúMå�ÎK¢±¿á“olدÁnîoò ’1×sŒ$ú‡Q„s–$jŸ1b€ÓR»©c°¸5.NydZ® OŠÕ@cÓd7P 4ø…¼¡LÈ—ö(1æCN-ùü®­ •Ìà–Š'E™¼³ÄÖd¯Ó„Wð3ñ9-SÕØêÇJJ{é-Ácñ˜BÏG±Ýær«.Qä‹/Ö°ì|l{V—ߘäV�ì|—)¦ÞµéäÞéïµ#߈n°x§Ã£'TAA˜nvpúÜ!ÔãÞé�$¥ùõw¬Eø™êÝvJ¶ ïǺÛÞG8óàš>$_\ñù`EÌÛĆ콳�[ù¢Ð"öw×5œ�6İÜöxÈ�h_RÆ#ådÙ¬�M=Íi�Õàú—…ö´GþÞ‹A(Vcüîiãð'PØWm˜˜ˆY÷m¼…wþq 'vîõÃsW!Út�…_[ØëÂìÂíøTk‰Ÿ&V§„K,^¦˜¼Ø²üù"Ïã :.Äs5úRö.ºEh5lŸßúL�œæ¢¸!áIÅ›ž+}ò]×MÐý,Vžš e ¥ŒÈzôîs “×vʘ Tz·h­óÆß ‰8¡/ËZg�d¢XÑF€�ïtòDQHäPÖ[I‚ªåd­�~±†9�vÒ¼ á¯×a™•½h�s¡çS£ÙŒŠ0ÿ¸9ì(dx äJl?µ2�—aA·T:ý¾Âþ=í×ÀkâÈÈH«Š½X0f°âo�VŽ­�Åš6£]¦µE�„!»Q‚úéï¹�7烧Ò™;jS�äa3,Mº¬b·§ZÜópYh:� ¦QcXÞ3&^ãš}Òözõ è 2J[W¶ Ö íCÃÓüÙ)8еÄ4çZ®˜k%j 2 ¶!´çÎ'¶�ºp¤ƒ"–b¤ãîÑTÔÈ)híïÕß©¹'£$übˆã­¡–$`„Í[ùª¥¬Ø,cÑ&F“¹Š©Øv*Z0Ê,#�$°½Í3{�MXï¦QBó†*´é�KÓ6OSj¨è�Á§«tPDdJ¡â¼®{(ÃóÒVå8YÇÇ@—A}<Ý-ïÀ«y"ù5Q„¾œè ¾ï…k/YøßÁHö«ƒí}ôþ$´×SkDQó$öDêò7ß’ÉßDhíµ[çI#»úÛC°ébácƒVz€ÂYL ì,8Áô[kIc1Æ”~×ϪÇÎ ÝåÇuM\*Ñ�þÙ‹Ü©Ž¯î?84{žÐÝJ� σÜP*Ï¢ÁŒs»zg6äWz!ºÇd°ø¬ê�w™B!G*ºäXX@�‘šÓ›†± \<ò@bŠ?ö‚m SW“– j.E¼>´4/“ˆBÍ“J—‘‰B\sD›‚®ð;shb¹nKˆáí6»¸5m1¸€ áÇß ˆr7áþ«ÀÏrÆU«^âö‘ÌjMÇwà;½”Hì—û“f¡!‹Õ±Û,Akö¨¹eI§.[ÚX€nþ_üôýuéùù„V£‚£qNø�ª/‹ëÁjª�Î÷úÓ¾·DÊÈC)¢æ¤òlKÄØÎŠ±j¬ïøzM8ò±Û·XŽ?×Fg2‡[øS¹fdA¯Wgü¥Iy;±yž”²Î*´EH–§²ë5æc?s´}IÝ)`†áç ºÞ½©0&oòòA7$—'ZÎ$î¶Û©Æ<§t‘W2¯(¥à‚ËÓo¯5å‘­Z|Òý-€h,Æaéèfj»ŠÏ .bm/6ùí½\ÒLówEŒcS–û'ÎÌú�¡Wd9…pôFû ð-9¶Òûöe‹äUdìéž &ÌOÎñ÷ÔÀbå6C¬µÑ'¢d(@¢#WÓY¹Àb’Ñûœ(¥ ã*ê'Û~ãS£aÙ¸m¤;µW4y¹¶47»a›;¨‹xe_lÐjuÈk¼eLšpÚ6—ëɽÕlÉ{—ƒ~ºˆR“l©om-£*¬r‰ÑúHãM,¯Xø­ÿöŒ$”!tŸ¢0çªHLÒzûÝ›7ŒE+ˆºÀSqߪiËÈX©ëŽÿ/ÂÛ1V&ˆÒ¼¶mÛ¶mÛ¶mÛ¶mÛ¶mß÷Úö~»3³?&;ÙN:éuòäT%•Óà­n2W�Õ€ÜÞœ1ví�dø‡ F“ŸïCcÁBhþ)ëèì§´\˜‹ÝÂiì³á1 ØãIjÎ÷œ8ÓqWY©®¶-dƒWâ>5o)é�Uè´â–®ÿ%�ã­b/%P¢Æ ¸ ½PÓ¦'´øÃÝ _œ &$.T&ßÄ.ÿ‡Ê€ÉBÔ�QU E"UlÖxgUYôÏ—È&* îÒzÎPëË"ÑŽ›“¸šIöy«ƒò7 ÉìÀÏ÷<ޏ0ág"ÛV»%pç…�Òm«ívö‹‡,åqMr½Pƒ°Xv˘V Æ@p=Òï¸yÙ:[Í×.¤‡^µ‰rkñ#Æø'·†ÂÁfdú ®!Ì^´&µ„fUéIátŒä§ýVÀ½z¨u´÷OÆÉ1n'âÄ0ä×økã6ýÏŽ{•]ÿ0ýŠWÔÊ¿&H55uY²%»êÕI§�Dâ§¿ézðëQNÃîÁ¶+-ñy ƒíÖ•zX¬1‡ j$C�ÝÀ:´¬D•.“Ï}W½r­-e_— ®ù,4‚ÆZ¼“NdÝ3ÒUj˰É~ƒåDÇÕþ ªTy7¸(å[88Ýþ Ò `“wîvɶà­I'šü. Û0‘­&Q¯ hàKrI#‡�°¸ºŠ.DUCâQ&#ç>žÙi /+Þ G÷í¾pý†î‚£«’ü�nߟBv)ºJ€éÛýÑŒ­à«Ç‡ Âh#%àÜ�™ïŸ*ÛHFôc«P—ZlœsÝ„3 +ÃN°¾é4W2BE©‘� ÚŽ¶¡â•шî©�­Võ–�×£IÌf½G³.j‹_Fíéæß!«`.Ø+qìîÁœú@Ìñý>3t¾� <'Ý.!Ç#ÏÈ mIEµ·?N$tH.fS6zXàâ.ñìø»{4Á¾ñžÉ`Ó LÎpQÖÂø AÔ|5,® ³¢t[clŽßm .oå5óï‹á|¶{T' ~2â(vPpF+Ó—`(i�²U…O;Ý9„o¼¬ Wi¾�y5¬}•“!ɶ2¬¯í?äwŽùÇUk|1!çÒì�†›iëøÖ¬iaжwrGZ}‚kÍ L¤ õ�ÈF³¾E ୹ĕsÅ ñOºâiu¼‹¶uu²Á«EÓO§{ Rw@-óú’× ~5¯ífdäNž¡°y=£]ÜdöìI·g°¦*g¡4cÀAã©<½Ü[;Žd: ­Š+ˆmàðA¶x’…,"'0Vo<&v {]sèºoÀŠ(k�k"#G²g|ÖL°žMråHìVï³ÑŠ 'û…¿ñqëDþ&¾#Ó� [!…×Çž-<ùi!{CÍŒÆúU�*w4s´ŒC\!3š¨†Q ÏËü®dH� Nß½óp Â~Ûçì÷¹³»í«/<Jåöy¢:Ü,oŠ­?ísØõ‹~Âu6ã&] ^«zƒ®“´%óINå•_`ÊñëZ ¿"Q¨âZë¤ÿ¼¥ldPæÿ½úƼ:n!J¦ÇQ¨Éþ# U‡bèæW8eW‡Ð’Ô|˜qœ¥Kí€mèÁ•öuûTž1V‘ôŽJÆ~8: N?-Pp.É€vpµUIæS ƒ˜ñËÊÂóžþ¬ys¨¤u.¬o5œ§°O ƒÙœ®†ÖùH÷µ~xO=µa™Û£�;¸À/arª‘¿�Ûô—G¤k%¢¦j¨äçUæþ¢‘/¡IÆ„ìX¼y—Mèk¦çÞV/Œ³TÖºŸ.â�x¶âºÄÄhsíäÈ�€³®¤ésñ�Ð6Ì>ŒS—6Ý�cáX•h-rH²�USÈapÈÆ*Ù÷öf‡B4!yaöŒöú3Û8®ÀÉ‹ßvbôbþî†ÇoJìvA+\A 3ˆÛ­A‚†µ3Ýíî­Ghû.Q8Ëó•âLb©S®�¤”¤y:j\sú‚#}›š¹¬/Ô™éÕxu­P:÷õKÎ+�Á-ãˆîN^Y +¾g�€uzùþ;ÉNa²4Û͉�š}„ÐÍPM¤dßÔ70âŸñ·TŠˆnª8²Ô)·=òå�™µ¸ Ž:§˜º­,Äñƒ`0ü¥ØêåE¼©°*ƒI®HØBPO2=Yõé–Xd S×N!ŠéA5 ß[�¡S4–‘n¾ÁéÒ:ô W7>¦ñcŸ`)øtç®ÿÈø÷ÅEËjÜQwÍ/”¼BóVôw5雩4¤ä-/_@ÒJÖÄDW–ý›”ÏãÁíE&ºoPÜÓÐ>thÚvœXî”nÄÿ»t†–¤¢¾¦Ì`ãs({,o»dqƒÜióN-KÞúñzçÔ¯¥u$ß*ý%Ø0PŸ7ÏÙ5‡=뫞Ä*ÇŸÉ¥rþ=«n8ù¯MÍ«çâ–†®OÒCr¤¿œ-!m8O½w$ºï¯f*´cèZ¯$ë)Àï î*ƒ°òœL�*XÅ–s‰E?Të Sï‹¥Œw”«âý›ñ9=á ¤<Šúµ»q{ÙµÕ»Ðt8¿ëŽ‹ùÔu¢UɇنùàÞÂxˆâpÆõ-z£­â|µýª—ù&ÞŠ×^SC‰Qì½âéyÃ�ðAÓ– ò·NÉ=vh-,Æá©NÍ^® a‘:×Êô�£D’h 1Q½æ¹¦Tãô{F…-˜Šœ™ ÐK‹ƒ¬·ö9#úõ³üÁq±a÷1š®P`RÏÎ#X®œE.“:o…Æ­j“¿TþîíÁ¶+‡¥äEº{¦ O~¯¯îPlô-²‰¤;§ŸB,sx*¥ë…ïÓ�0zb—µÌªû¾ƒr]mð¨�G3ez‡Ná‰þz¥ð5Ÿ¿bæ¶î{‰…‚ØX|/WVC¶þ6#Ú5ÌÌç®.>Êóh‹I­²êï¹·'#Ÿ*vÆf6…=¨ÁÂßòÝqaNœ¦eõI uȲ“‰™í\šï“iOÐþZ?úr�}hX‹åÅö¥ÁRv¦.² u¼%J™*©ŠòÌCa›FÚ�ÊÁ" sP춬B÷$€pP(iL÷ìc->ç–N““ÇdÃÈG4>b S›!h½Úǧ®¡¦ÌqÛèÞåë(q9ZÄ÷Ê9®„DÞ°ó0¸Èä-FÜ)Ž-À¡Ê>wÃCõ1æˆƑ˞ȹ=^^*á|œ#ÿXÙf9tRM§þZQæ]Ü»Ϧ|44 „Íî“=ÁB§IcUÛdåÁðÄ�uþ<ûoö¦Àpµé Z‚γéVAºYyY<ž~©Y£Ê2«Ùóþ¤·“:ÀõNâò5€¹ÑhKˆ:‚p1#)ìm¤Ì±Ž•ˆQñ|ý�Húa`¢ºôV•WïâT�_«‰ ¬%Ñצ’ú ‘b¿pÒÍ’*f «œ/!]-µÂ 'Keù¼�6Å XÐæpÝØÑbQWª.ˆšÌð(/GʳSŒ0ûüèkšâ”ŽßˆwK´v¨í_žR®63eB½”;©Yš¯Ä‚ý?¡Ë,È ÄŸ˜$½Øo®î‡^(§.„“h¥%dþÅÕG³¢ÝÀ¢>²t�à5¯/8u?rK¡åWà˜ñDxÚž\U”à¸7Ü�ó Ém CèÜ­çxŒ=×±á0Øf�)Èâe‘L®ØS†ÅxPã/àžbgDò’)G ¨›ò¬{ÛnÄë)»¦]òœ¢§ÉH¶.Õ»wÏÎ~óG�ªð#1™ l„0çèÂüòÈî�Øeÿõ)4Ÿ×³vD\·Õ††TXäØêFårÝÓ®ÕL€ Òc;e»•EQ�S‰}æUªÁ* Ñ\%4š"¶î¾ÜSŽ~>*l»Ú7MÏ}Zj[w"øEÄ”Zó< ̰®N¦V³ä¹QÀ•+¬eÄòšŸ�¼NR^3¿ª0"úôÝI;·ùåƒZlûL®B%b^…iäkš`b !ö2iÝ ±pØ Í©² Ï ¡œ ÿúanä‘=äö@2* kòuÔŸN”KÞ»aï¾E¸Žæd\ã› <šö1T$'� Ä>ÏVñŒóz Ê)¬ì‘…·;øÜH½Zœ¤Ð±=¹Ã /³¶2:E¬Ì×Lc®ªŽ"{„år5�¬G]9#2}­/f×3%°Çc²~Ê=©­9=âPyM~þ²êÊÆUÿ»u}K6¥™Ÿ2½žX@}p�ÏcÈå²ùy¸ún^ü&i�Iþ�S_À(ãŠàÍXPyw›}<žíP|âØ� òh½2‘±º­�ž-ÿ QÎ˪Dc²·b #‚åj§[YðGÑn`I„E ФšŽPŠ :ÑU;ëʈ)'°öÜ«¥œÆ«¶ 4YáèßF.¬ †@Ùì$¤eû'¼õÌc¤+ù,¡KXçŽàвL;4LääàÕ>¶vXÇ]x¨² %Ñz9ϼž!ãòp~­Š#§iûFlƒiM•Û�/ç\º©ôŠIiÓÜÛLñ—ýS?x˜mçæb¶Zªlå�¢XÇ…šÒnà¹N,âdójŽPßG‡ÉÃòôÜR ©Žà¶ý�ÿ¨è¦¦FŒ*Ó Š3åë䌀0.Å Âü°ßÜ.Kà[YÒã%Ç9ž3|0ÆàîAt,éLÒ"N¦oñ Ú—¨¶ Ô ÐcTMÀ,rTî#]õV]ýଡ?5Ü�=˜ª•òI*ò#-‘®š„Bzîý’BéÁLkZ¿§ç‹¤‰eZ�¸ »Ôût1CϦM�Ë…dë�wÆ/Þ¥RK³ùÁjÙÂnÕÚ_mñÅ•*ZJÜ6VyhQFǧs¸`Ò:Y(l±~šü§itB�½ƒ|†ó— 'ÎäÜ÷{W{Œ¤´úqà5W{#Hë¦WúÉafS7„ÜI�VêjÚ^#kc‡w+"ä-îyAX°DŒ–;±ø×…òÙLW¶‹'_p 0·?Kö¤ þü8ÂÌ Äè­f]q€yâ™ô˜¦#ÔùÙ´Å}IXÐ\˜/ª~Š9m'Œ’§A¼Îh@,½B=öœŸ„ºí9Yµ Vc¶v¥MP˱àÚpÅÁ±Ü}dªÝFææ­tåðÀ.V:V÷Éñ¹àñ‹N‹{â6oiu‚ >¿[T ,¨×þO^±5b�oªâýÈÊ]�³V—ŠË©CÄ ‘¼ns �ÈÓ1´OÑLéûÁN^WÙÞí"ô}ÍÊHBW�§—2 ÚÒ^œx¨q´â»•³îß^¡PûëJ;[— Û k"*„–§c|ükÃ÷cj- /*�ó”avájÜ‹ÁÐärvç\Ë{àDZyŽš’�£‡ˆþM_(UE1Cy’°láÔ­3 Âf«¢âÃ*‚ P?Ndï[ãÍÒpÊQËð—i¯k©ÁS>£+|¯ iK¾–@ì 3Âed§êeÆ¿!8vPQ­¢ò|e÷qÉÅâšôûíÆ Oñ:â‘JÞ¹ªÉDØC8â¸DG®„JúvðÙ�oüËëT¢'ËË­ô½ŽÕ‘õ:½…ðÒ¼J/|j¾Ýé] øm•ž wÖ¹"<¬ Ë‹HŒ’6MùÄbö…§%9ZÏ»›b·VDvs£ ­Vô!ÙEñÊhxéT‚že•�(c‡Õ÷ÏÝ¿¶•²1–æØ¦úZ-6—¾Ë®…üµuؘ]÷Á-´H#¤Gï‘ Y{ïå6Då·€ üô¬LÔxMZ'ÅqëH›M”N®×p4×’îÔüESmÃ~ëC £½vJ‚¼z^ÕÚ2Õm2òaØ2~j|i eÛJ·fˆ1&Ü-©‡Ö ‡}GÅÐ:\ô«¡¦\«f‰:RV²Ãuˆw8¿tË_+.r Ëß‹ˆX:«–hG Õ™Ëżá¬áÉ×öÌ�BNï9U“¥zpŒ%˜›ÒS7V“ +?­Ô}3höØ·+?¨°2ÿDíçvuEÛ`7ú»SÄý*~¿ÚwŠà!Cj†ñ˜J¯ï`ö¾…EÈÓvõ˜op”¥ü8ŨBlÂŒ߀U½ìäÎu˜)tñĈó›zS¡|-N¶Ïvs¦}dE}Ìï¡·RicdÂ_¡èOzN·a¶‰NѴ҃†‚‚¢öá}{:ª×ä4t18ßùMÓDÏy¼ž tY 0—³¬÷âí+5ÁÏ«›¨ QÁÛëI¹ð² û/ßsã7V©áÝ Hñ/sI›‚›hŽ9ÌÂ|ÛVÿ<©ŒÏ–þ åG‰lzI¾ìÈî!å*¿Žñðk‹ Óoo) {;Œþêt�1·Èó­Ÿ%t¤7ʰu•㩃XŒ"Ü‘e –±:_~œž=޶éx±ü'6ýóüÝC^–)\ÝqJ КQؘjÓ¾ m}ßú ÁÖÎ ò·h hü’‘?pj�ƒÏQ€*¼À+À•(í`&J,ËëA£&óÈÏ8Y~t`ìÎEbYÁc,ç�BJï•WP­N‰Në¨ãJ Vhk{¶·ºð•©OóÄγŸÞ¨£@ÍŸV>G-=]z ¾{² ª×°eeìÚr[ìׄÌÌvŸV[z¹]O ëKXÜ ¯ äÿIlˆ�{UÙ,¤ß˜wÎJÆj"Bg~¢[i2ê¹*5ã ·ÈÛvK}ëôŠ!e Ö:*|¿#47tq§,R ÞÏ\¹N®5JmKæL ¸¥¯‰;Àux¿�éÁÀ¾91R¶)M™ãGùŽˆ,m�q9Ð|•ê-£íf€�ÓÐ;þÊFXpÌo}É‹Ü÷6Ÿ¾/Tî»ÊA~d*A�,vÆêý^Qþq‹tdÓ_‹#‡3C7Ãõ`oÃü�>Å2ýu$¨¾ÓôçËdvÖ0ˆÖ’}8g^¡Õó~qveT#v#n¤ž ¶PÖMfÛÜú5^xÍZ¹æ,—pŸ¿‘£ñ«0ÓÎuGP,:3ùpä·ê}xÇýìÒáS©Ló›ÈEÂJY:51#âx¨°pï%gN¨twªýäö}]¤><-y·`vUÛùG—ÏI›¢BŠ áõ]ß›±Úõ}ÕäÏÔxT–ê;á»5ùº;¹{¢j¿jÿ7A ý9Å,—jË“—;ä Fs±.¥7¤*ý­®Ýq^ H_p§ˆ/éï¿î¨¦.Únš#oîœã«¡¶áczç²ÜûYdUrÝ”¼Ö]ÖFÊBÚˆr€†aÂ9TI%ʼnÐNÈc‚±/Gê(Ö¡ k߷Ǥ(J¯ƒ˜FÕD•K4xË׫Z†NÅ£º:¼±Â‚è¯&/‘`Ý ŽM£®¿˜�ûås�`¯hÆïÈ?u¼ ÉÕ+eóG�ñjã.2Å×ÕIR¡¼ñ:èÁ¼°íR/Üë©ifÁ2D5 ”¾9Á MÛëR­±H È‚|s8“Ä2:»-ÃlÀ+Ïk>&mmÊRÌ‘7¬£×ÉYÛô؋†%lÂ?ëÞÀ$YG6Dê5Tó˜ ®o±üPðr -׿,vUé,EêbÙøi;O1v? è¬�Ù‡ÚµK(oU6ȱd‡­v[·ÁéPjTkï’M¿dÿÔQ|gÏ—ºmä…ƒü­ &ÊÝ çŠåF¯|ÕH µ}Í¢¨‡­Ñ7B¾¢YòLá�$Ó �rd-P{yµû…WŒ ?)‘&j»ÄÉEÅÆ]ĘrNW|æÖæ  bž{¸{„æwÐMÛ1ŽD‹–ßRÄF¦DÄ8LúöÖlåP]/€gØÂ¹ÀâLÉ8´jð—«°R¨)­Œ»µ>ýWi¹±'¢eÎ-ŠÔSˆw½O¹ÄõìGªFU­Ð Ä¸+´€R¹!ZÙ 5ð¶¼#Ì^Õ¡HÒ´û|XÖ¬_ ¨O%oôBA†4KÄb·¡[kQŠúähŒ ­É¯1Êæ]yÁé²ñ¦¡ÜqKÄ\uÀq³É =-S»×Q‡» ÷Åî·É×¥ø:xHW‘:3íe[Õ@‘@ç8à´œª\Aãs&¦Ú˰îD&Î<⳨t‰E$¸3‘Ë6¼¢ª Ì?Jå%EuíMºŽåJþ”�æË›¶| ª8•cÆLcÄR1d—Gꮾ‰­Û'í ØŒö$í¶±�¿‰Ð)Ã¥‰âG³Ô G¦Œ¿ýuûëøÍ“Ö^+¬éN ¯ýÇvu_*w§¸TN–ð¸%¥Ï+¾¨µç�Gƒ-„ŽÕ±� YèîMÈf<ƒGîf1è›Ç¬°Ëqp¸­!3Ö'¯öôÃÀSÝ�‡¦‚…Y3¹�žk¥Œ¬S¼…ýÑ!ô¡¶=âFú›O%:5h¹(¼êñ‰wQWÙ‹i-'9þñ€‡òÙ:Qäxg†Ü©äI¨ç(Ib»{„ÿQ¨„hœ³.wMv’¡‡>K{Û9ÇüpK¼!þ¾µtYê§Cp`˜éÁ2Î…íª’µâš [•ÀÜÞ³£× á`Ê~… TiœÄ£&”Ð+µ_ KîA¨< àøGL‹Y°B®½ƒÒ2›;ìn-»3rÉ+ž²›”¤§³B�Lík8vÀÙ8yNeþdªT“@\›÷K_žá!^Vïig-cÈû”dVùĆLyåD™·pu`°cGWs½æ—„�.h)âäÎJ ÑY^âúþ9ÈÞ½§š½á)LqPÂb�×]ø<Ú^ïZ]ò (Óñ?2 Ë™RyöLár‹#Å^¡ââs�¾ò‹š‘¢q“z£0gúGÑíô)—k÷$…À•™fÀâV·ƒÀ-%ˆ» Êw)õ«¼Nr› 1|þ ‹ï…á˜qž � šÚBX÷_Ëo¯bQó�Ê’åF^Ã! Ƥ;ç‘Îä éeÖßVÎää*Ý— aðWËñÁ¬¿—ü v+ÔÚüH±ÐJ~œyH°`OCS/0þÒVµ•š[[}‘²æS(‰L7{ ± áÙùHË}¿)¿®CØ’Žóq0ó„t”1¸‚û?ÏUzwùþ—È>àpîWG>TÏÅ*ˆË®2JŒÚ(0>�Z>\üù“ì ó'ч• (¹Ñdá#»uQí ´ƒ"VXÀ‰2 ¹à1ǦdG(y,¬‘)x„;‡ú1àÛ³'îl 8µæTÀŠlXíAÛ—9ŒAhN¼ø€Âe\Á>[Écòð^kÏêÇH¼Wå÷ŒîàÓ-ðRTxÌŠb·/ R`ØpHcabÍ‘ÁÙV\"xŸBg¬å¿¨ýÕÔ�f0¶%,¹d:Xàýæn¢3èa  |–›ýF·²jΜűmÇÉïPßSÄšKâ„U Ó9MQKÒôtŽÌ`r,'.»:´ÜÃ�?1X&4y¿¨´u*-· àÀ^eÁ $±‚ÖÉ3§=:&8·ÏGyçxÿz™ž›ë~à‚ãD^âµôý&õ€¨` ýÙ¾ +žÄÚvx-5døÑmYnž`!†cA@t=¹¦ú¶‹„@³7/çƒð¨Z_U{œ•¤Bp¥B è�ϦF³1ûD˜Z‰5娑™Ž;VÀ5YgÛO!Áºç—#�sè8."ýbptµt|„ßõeµ£žP@Ârš‚¨pt×üQ>»ÂÂæ¤6Ñ“ì>S[kèÍ­~Y·l#s.o"¹eVØ.0nÜ„µ!¢ó!T!¸uåžâ¬VæÆD¯Œëz÷ÊÒÎ~�¦þゎzØ¡ìÑ××RZ=˜�ºÖ¹³“k×´ã8ëÓ¼Uð[Ùš4Jû‚ Z»ž±ÓÛ¨ûa IUA»�-UJ<͈ç�ì_†fžÈËÛ3Nƒ}§ˆK¥Æñ¨ÄÁǸ›�)$G� %óœ´á¡¬ÝQÏnnää œF!s¢r@‡Å�»¡óÉ"û5Ñ¿6“½TêÂÿ@!¼¹”)Ü=ÕJµ+%0~â¸Eî0; ÛÉ¥±J¸¢c¢ÐÈüä%“_IW­�Æ!§üŒú®¢«L;àǮõæ¥%š¡Z{º×ë�œcë׆טÍä¹…°Ë('ï[ÏQaÛŒ„Š®î'4Ù‚Gr&© æÃŸÈ�˜á¯R-ÞB‰¹Ú{ÒÁÕ‚ìË•dž“È,V‘ñ¯®Q}O2‡ª®j YœG«tæäS`(ÊIbHä÷šÓ 7Ä¡ ‡7KèÕÞý¥'5„c¯OŸIÀjÇŒŠ‰Ñ–õ/ǾÑôë \Ú¡Y+ËA>µR£µ§Ï±&Äçï�.�y³¾»T Ç`J"‘ÉÁ‡¾(÷éH‡GÃ_ÎâÝŒ.Óߕ҈źSšãã22ºæïdÕåæBYÌ¿&Œ;J-×;yè9­êŽf03ˆ™"$Jž^ö4ìÂ7,¬îBÙd$otnçæ]º#(6RÕ¤§5MúC ½�f^�gÇYýk·¿ÌÇM^`a� ²=°Ë E”Jø —ëqÒ?’å´›Y"܆w[ÚQâbCA{zÄt Ó‰L$Ôþ�ããõ¬Òv“ Oùö{ql¢6õdnu9˜K5bjByNÝ(6§ƒaØ3b ¤ÿcÍ™•"/¢üA¤h¢Ç’ CtƒÐöî´Nùà�Ф[ë¥IçùGµ‘Dç>"Ÿ¬ªidzŽ©$§µÚü[ö ‘º;ÓÚx]›Z]Œƒ˜Hî0ÈYÏtÉív¥ =�f7fƒ$vƒËOlò“™ˆÈ*�Ùô>ð$'wÅà™ ¬Èi™6Hx7‚÷eÁœÊ˱eÍÍß‹K—Ôùo1jº9Há©Zwû*_OèOpíÈŠÝò_��¥„ : »ð…]«䲜ž¿´·S³wIš@n,2½Ê_ç™uÇ SK¢eéø”¸ ¤·±ª4rY—ÁrgfmNÑÉ8 “¾Ub:xD¥”·²|­�²D.mÎä5¥NïhnR‡gðT$�ÝüÖtÜÒš à(±:ꜜcVôìÉ š?…¿¿«u# ‚{reX–Ç"@ŽzøÈRMî3Íè©<��3T›ÊCú‰í͘Æ/£ûCržì¢]|ÐŒIXP&ê8DΟ3=J¼Ðb0°Ã椄¿O!"àÚ¥€$LJ‹�;qí}»Mê9<ÁÄe5ðw(« Ü®H{R,ZŸõ‡áN)ú>µ?šw·ü^ƒBu%è?Œ›zañvYç„5€;r|ºiÈò¦ïy²¼R[ç‚^øÀ`§céo¡•y‘ðš3 š¯C÷wP ñ|¦9¨6ÎÂ.¹Þd‡Ú:D²b{"錟p_E= —W�ÚÔµNôõÚD è$šð{î„]nõ�€Zl¤?ú¬OH«Î¸Qî3Ë˾[Ñ¿Š …]TÉ c ý'?úœgCù‹°ž†þ׫Ulø>U:�¡¥Ö zþ¾ìvë /ù,«ñÆ¡Ö/ˆ¥Ôž$Ÿ‰’…õµm•œÊÐÆË†a0€Î”ç…ó'g Jí™ ,„Õ—ìÀ)[Ǭ%Ìe×Á¢I7''ò64€î·•wœsÛ‰‘©Pwôl±�Å‚_-J©‡¯ó í] ѧq†I�¹ÿ¼‰l`”懘�Ó|§¦Ì|P‡ÉP£þ<�s¹-óšñØÔp†˜!ƒàYp€Z�êÑi"âdÆð~öroµ¾Övô{s”%eГ(F3‘Iâà%w]—µ‘bÌ ‡¾$âHMªt땼Õ5C(`…é:4‹BôhþÉ‚hŽ«ÛYodTƒRíùŸP9ˆ!Ÿ™ag*K¿ç:ò¼®3xͬMÀzGHެDç«)ï;|Syá@R6#6 e× þ9òþ>\,¾-Ö´ÍmfeÓfK/ÕFß Á~ÎRü~‹GY´'Ï_=’Fç;ër)}åj—{ÌU޹h;vÛ À ´[] hFd“œFL�x�ÿq¤%|ENÞÇ·T½ÅT3¸èÝû»%ñ«_ÅÁõ¬¢I2Díi¯¯§ØRŒ·ŽñNYj[›Ä¼ÒôVxŠõæ"ßð…÷£Z0†rÙ‡5Þ™È,ðî Ö„"Óö'q…2£ïzV „å8+ *Õ£aÚ0S¯a¯;ôJ?¢ŒÉÁw7„%x ÆW!èœ>$Ün0zÊ¡£y“À˜‚@Û E¾Dg~¸~fY‡bñ"�ŒNýyP56AoD.äéY`ø)@,S»EãD’£)Ò`—S*v·1tcÑö¿äm‘2Œ}ߣÇKXõŸŸv¸�,Y÷]vUWHyXå­ñ ÛyR�FÈÞ›âÓTG×¶f,ç`›²ÜmT�“æÙâ[Â÷÷íj Ær¬»v�e.ÒóÔó?ŽÎMŒ$÷~ÚŽð�r`cL)çk®8C¬5kJ|¥Egþ¨b9¬‰ÜmL‚ïÁp‡ˆñ\sñ’Æœ#À Î%³†B\,tfAZ½Öɼ9%�‹QñÌGúç‹2 cŒk¹Òˆ˜´µ1A#LÄ&ùÏŒj·-cú:ÇþúZZõk{h¼ã¡ÏØr>z w¦¬&á€è£…¬;‹¨ü’ÁGa¤‚ê!ªÂ“hÞÎ9IH‡–96áCÒ‰ЙÕ{š|ÑwìƒÎ_~'ðqÈ��¥ÿä4˜­<Ï÷3Âûo`i„¦3ì95ÑÙe¥F×�N¾`ʽ$åpÑc¤¤ž>½äñ�Kð1µÉ­`鋺�®¬|sŠÔ�àÀÐÐÎ6²³ZDF§KCÃî–÷õ£¯-•RP™7¾iTŒ`|,oê7¢|�f‚ÖOt�rúŸ;%ÕŽ} ä5 Ùð7ËJd�öU0[ãò^CrdÛu¨6±¼3›`LR 8šØ›â݃!o·Q»7¤”“%U1¦µØöG»…%Mj·$Ò{tõ~M"«Ì4D;#pt‘ '¼b�[$’«®Ã(î¿Q¤Uß!ªhǘVÔð‹ÅHÚÆlPôšctoPÃ7|!LîR3w2‰¼Å=Ðb8ed©D!ŠþöNƒÃ�\{pÉY%“ͬy1'Djù@.±þÜ«Çõ+­úÂX"Îægnë�ýÇI VšÕUª÷W!`–ž—UUÉ¢ É5Ä]ÈÔ [„‘´AHÔÆ@pN;•×h*@NöÀÝ"ÇNÚ~µßh;ÿ[Qd`€R“zÏ4WÒ-ÞÌJÈ�]Don(r úóFÀŽbå­Y›bD¨§•-šoÅz»)ÎÙÖÛlµ¹å|I<®-\./í>ýô¯pg«Ñ#‡Œ‚èŽãU/{½ÖüGÊýÞ—\!¾ Ëá„¡Øæ]dÖ_‚È…Ï<ˆÅŽk�Í%Cp² bÏ©Iþ¦®ªœ¿Œªh²‹ MªÝ ‰±W{ä¯!¢ŸC:¨3š„\þÎøh(d±�b[s†×hcÀ?Ùb¸dµ­)ÅX^rƒt±®ž ¼C›TTÄîõìä‘,yäšØ FçDÈʙë’ÐÜŽŸo.‡eƒOHâìÔ" $ïý ;y†kâ!–¡åÕ, SÙ¾¨«EºûI‹µFÚ´ k+qÁ‡Ø“–£¶jò"gd¾\´uæÄS>b‡%?M+\'^Ì›ÁfÓ^ÉÈ–Ó6Î.$ùä ÂÏ÷…ƒ,2W‹ýô[*—4Ë¥ÿÈ.vU+�Ë%)Ÿˆ½t:ÞEh~ÀTNÄcuLó _T¥=K>�ç ÚXt”>šP¾¨45íhë!¤`’�Ê.-ô13¨ôZ1Š­ü ¬ï솉G¹öW9u•G4½.ÒÞ”÷·¬µÛEˆ·79ë„jÌ·4ÄÂ\¢ œ@5‘µè¦-e?Ùƒ|i*ÈäL.=ØàvíœÖ™ÖUC/˜²2� SvÕ|rñYu>F6CævAð�Lò§˜Ç!»Dêÿ…©"k5˜X¦j.¯ ÑmmM@7X>ç%žûæCíÇe®?~$w‡×öë´“&éýÃóq!'çË›tˆïb'æ}tð6v\6|W>Ú[B?‡Æ=‰ú]¬(¹ÐÀ³Vo¢Óè � åãÒN- ðÛ-¡ô!�hyÑiËo¹R�\'ôÈ8x´Gg’�ÄË��Xð¥™âý&vì\�>vÇ@þÇî§n5¡_¾;4Tñ‘ï\üŠW`T©t5 *GgDj¼„eÿqHµ¦`Êá¤ìöœ’I,‘Õa4õ `›ÿ�y=l¤¬%}Ô=†?GÚȘ1p*± dѰsCôï×çë®Fßå¶øhh 1à{1±*ÒÙÁ¿Ùê”:£k@i¨ßoµGОto7Ö ô5©{‘úI×ë¸ÎÝPÇBN%Ø>ØâÅ$c,Vin¤Kó~ÊιMÝmO#–Á²:°D®¾_ìøeÎ�É^60÷W \‘Áº‘« „Ù�_CN¸û;„~±Âï:@ò6¾a8*EÈ0òé³¢‡±ýš¹›—Ê�;`]B‘k‡û¹Ôk³3é3 EÅ]ªn@A∋Tê˱9¸jíxÆ_ˆ…¥ÒJóºã3Ú<ÿÝÕL©5of>çù¢¸éªŠµC ¡@ ŽæÍ,m#mýØÎv=ÑóÓe\;JÚ¶L{2M�*íe�ÌÞ÷÷°Ï z,ŽHúdzãgPðAï9܇]Éf{àÂÄ£¡$²þ‘eøÃ¨âzÄFIrφpàB}«ó+h¶R¸T ësi\ôsz¤“é§Ô¶\p´ÛwjFÒ yÜnþ2Î�WWŠ9�*ØŽ^hÙ†ö<}fÐHßÌ)k{Ö�†ÝX/˽ÃŽüáO}²U!¤ãù¼´HD[„z[">˜¢p‘Hå}°„³èJ+{ÒÄû/m0²^#1’Sÿý–~Oæ‹ ûÐûnš„ï¹xÏuùFêÊKüöðQ–a¶5)öžü„iTœ¼6° w¼ŽQℲfù@¦×Ce1Í»‰•ÎOÃ^è>²¢ñûvž>ÌDhHÝQ¯ûÐ7 õ%¯�« ¹[l|ëÆgìßVT[Š Ôu>Î:­iùUô2-jæL�ݶ Æ S8Ö,\>…+ö #=›¡–€'F«(ü&õ¨úªä÷É̯/½b�Ÿ·"Ë‚ïÓñzÐL²òZ.bÿN§“•Ñt‡wÌ·8BÍüQî³Øâ‡bcû<Ää·9<¼û}åK÷Ä XàaÅ�«ö¡æ!Œˆ§Ï Á·¨vŠïŠXíÚÙdýlÐnáWû�…Åj½jW�s™Àêü^½Žö”{š¾÷Øvüí n³esÉý_¶–E@>�غM´˜¾ÑÔ»šÖÅe49Q]˺à[çaq†[ÝŸHÝ�&Õɘ³ÿZ\1¦dvNË Öø©ûX. ©pÕÝ¿"›ÁäãNjmõ(Åè>{wh¤Ù%Œèh‹m·C,úôa,â[¯,Ü´ØY wÖ™O’`H¥:w€–[ß&¶†$Ы:œP[÷â-/ÊŸ]Q=v3ø¹I…A-dŽ)Ø1Mª¤pxtXHµ­×¨\~±6SÕ¡fa1Ó˜Š¯¨·ès5%}û‚:öªrÛÀÊœù7i8x°·P‘T[Á%jÞßâ™ûäáÇ´ŸIØÌW;©ì ª + ƒ\ƒÐÿTµ<^W±Ç›ö�`äÈÐ[ìYç/pÏ~ªSäDï=Ƨ)ŒðÞíšñÛvˆÛëüT3 /ò¹“ÅÁ3(°®«ôM9c;5j–W5Ž#e¥Í‹T#“P·âé…gªÑDZóòÓ ÊÊêñÛ¹Œê/ÿRýóìcV㘠Mш#xßÖœ˜úÅÔ”ÖWX.TSý³„‚fÞJÅtO[õÔ«Æ‘KͼU{6Ã�ÑòÜ.D®ŽÅJ5vò+kNÛ³HÙ'C«á�^¦þ7P§.Tòö‹œ2\ÿéêéUÝËhôõÄÞ‚´¸@¸ñ»?*ÃF2txï½Ççb¬®S${(ªÉ‰œªÄ’0ºæ³4Œi.Ô•…ízÂAW_|8j­›†°âïòܾ;›‹§™h÷§fIóiÒyzóè&ø>øj¹™Çþ穘#a·®`´°rLÈ0OD!9R¿ßúXgqN5(gˆ·ú4j�Ü¥þ|í^?…Øý¦Ð‰B>Ç>EK Á/jY_²j~ö:8«B=…0ëæ±ŸT­Œ±BÓú9ù³cx­�×´D ÝøÏÁ/-[�ضTÅ킽"ÌÔ; ÆÂä­±Íp{ÃÎ"Ö®ëÔLÖ>•Î}àà÷6@l@™—É&À\Oµkæ:¡[Ò¸ú×Y^ôEGÁ¬…ö;¯õù¤!—{s¨ô�üX<ÝAÙ\ë<�zæÝá•‹]~OèŒyA§N‹>}6ækú´o…àí—¸’ú"ÎoWfIbòD+X­ë;êïÄW(ÕSãkn·ð½$Ït9_î®EŒÍføªo/tŽÏ¯‘¾A�îöm'Y@Çø¸ÅŸm3T�nبiÈ·AððÊt§¿“1!ªG÷²û›†++­eL*é•!Jš¼/˜ß¼ðp¶{D¦±¨ì ó‡¶e£²ð X—;VÕÌ,Ç|3ÆPxè&Û£Â_˜�#sT]/Î}7hU ‡»™ù–ÀάŠ[™Gàë ¦EÈ«Ldø÷•¤¥ŒÛì °Úèn‹¸xÉßsë&”W�k ¹k:’ A�ÇÏ&vo0xùî$ÝÕ%gPG÷� ˆÞ'ß¾K5‘â‚Ñ�o8ÛO}e5Z•`JÍ|?“!ó™´‹b�Vb™S~…»¹4a7²zõùg1›*5öv&¡Íè�®E‹’J€õJüŠ ÂF䈹`"Zì­<³é«Ù§]¶Û³Pe†f�ù¡ebÜ ƒUáë‘ûZ½uâ]Û5tÏ…Y�VÆÙ�/¾ÓõEX²|„·µ‚ùÅA é29å]¨ëò¨ƒm¢è9YNð·ñ{ó/ît•þ©e'¤¡ÖâÁ´‡Ù5Rõ©;îîý«ÂqˉŠ˜ /¬yAt{p{à†!¼‰×FO_úwSŠÛ+!‚\n˜·%ê&Cƒ¹îýÈdM§y6uZº¬7NFõý+yα­õ­å–/ŠÖVÄMvvõ(²»óâá=·oôÎø³ û<˜»Û”µíœ±Pu )‡GãdUû#. OXè?t9UÓƒ…7<åÒ¹®·rð9ãw(ª®雜,?½úŽ[»Y[‘¸ñ£‹=£.ÃBJ�’ô$µ+†¡HűªìGÏêOµžÀ=–n(ü´]!sbÊOÒYtûŒ€}†ôÞ¢ÁZ�:—ñÐ’² �y— Öܨً¼2ã{pxvÄ�æöYÏ$HJõµdøF�åxêWœVÌL‘1yÏRžf- çÛ;¦ˆÑ0‹'¤Ìo­*EY3ÇÌå„v(ô{ë6êho•,j{{ ˜a8ìמ-()µ(¡;P†ô²Dø�w°=Á8·%Ïèj³»ûs-ìÏt%ÎÂÑK½wKXöÇÙø 8ò*�–äÑ6ïmÞ.Ç=€›'P«µžK± 7‰÷:”L†Qnƒ>¨EœXxLY@M¦€0œ+õ�5mzº=¯·"ºSÖm¤¡†ok2Û,/rDÝ1*†vže�½›ð4zztdh~¸X6»…·=&FÜ›H_…rä“$* Ù‘îk^¡!Û|s9YÖivAH3?UÙ\ÃudpÝöú cÝP¨°Ö°{$ÑÈs9Cò(( û[`Óß-« Êã{�­7‘b?—RêÕh0YÔIhéÄnXùšWŸÆí{äξîŽÔÊxF¨#Ù….èÕ«´)‘ã7ƒ+X¿ô„9Òùt�"c™�`‹ÎIJ5ýFE¶NëQTTZtÝ fc.¬Üƒ 7¥Lx®Ñ�F§o]äP}¿ÙÝœv40jºà"\|HªõÍ,¢ŒšXO4<1zŽ2š—Î*¨R¬ªåÔ©ô¨òBË­¹Í׎»n.Ë$Àed‚-eSü ·WE7Šp”•îkYêõ0Õ½ "eôŠsFØW=r=ÒKÂv,i~8aªWIž­Ú‹6·~„Çjö YnÑ­L™òé=0“­ˆœ'ÎâÙ\ëF­ñG*t±¬®dl z …6¸õ�0[–8VAFY&K\œAQ_¥€Åxþâw-žÓCÔCø ÃBg<ͽµ¬�¼qÉ�1îÝ/MçÈdÙcýÂÉ +¸Ç¤¼pbå#l¨¶&Ðì;õFvÑ2ø&ÕÚúÄ?ËÕ¿uʃóÖzê½—âÒí_=¯¾î®¡`íã^¹ûßvV‹øy ÷$?¼}@7›žg(Î9µÃÎw8Rž)´$K¥7YD7_4ö&3<ù�m“I𘭜6`ouL–•¦ôÇ]ƒVZlQ7õ`Ö)èZ_¸fÜ“B öb‚%¡CHÀØ�`ŤN·ÈçZ·œ‹äërXµîÎ: Ã÷%¡îC~ë¶H Ÿ†ïÓH.¦ ieó çAkaë~j!Æ|p_£ºŠE²47«Çªô%®ÿcO›¶KÑ2RUx,5ÅÿäbçŠ §'_"‘O‰Nl6èãp.â¿ÀÌë¦�zö^”è>ìMË5Áo`>óàɳÅTº H óR".ójò—8a¿/ø]þÎ܆bÂ8EB{Égé�ýE*~¡ÜÆ0ûÖ£óª4Œ÷QÎýöÆ/�´ët_b²¿†?êÉØxñÊYàè5cÌ�ñzpCYàµù7Ÿò7®âÙlYMj߯ ûRÈPróÛz�#6‰ßÆ–þ"mùú’l;ÍU©„µÊô_$&ÕDœ¦LÂsý°]�ùHÂÚCJHÄe¦ ŸQ¹½_F´µ>`4@í¦ ÐÐJÎØ`Ý\!yæóYõu�´—©ÃŒÎ3ÒQâ€ÏO…‘Zð|X‡"m$å0õœuo5‚|ÄÓƒØYÔ“e [ëð( ÁšÁãÜ”^NV²P½Ks“Zb@¾é«fÛò©úFN;¿PW~OiºÓã"£FÆþ¥°ˆD«PXþ糈Ù@os`Öî¥ü‹<}¹ÂÞJïŸÃåȺÁríïU&}sŠ'Xp²€�~z‰›*ã[ 9ý[3YW€51¦j‹âu$âGNÉÆÖ$ÌŠBE‘ÒGçÃcD¡Þ8g¡lÙ¼øM3½„>B…üÒ(`‘=òŒU^[OûMå£z d5Ë,ÔË3¼™!�ÐK¶@6]2€² �6×�w‡ë¦?`©è¸\è-ˆ¾Yq)÷ˆ*öi 7S†®"Ÿ¶1¥µÎ³pœF‚5üQþ�Xìr®+¥ ±Þ>£Ûw‚Â=2 (H›½šíæÆNfB�4w¨|Š•^ü·à½Û-h6øk¤}¦€)ÍIü…0»òg¿Iš ‰ó¶½´íeÉ£ç¶*v\ˌֺœÓ‡*ŒxyÙÔ9ÎÍ–£ÆÑ½‚¬«¬ä¸/ˆwìÓ:Iv(WÌ$ÅYcðZÕQ˜ˆ­òij�ÇUS°;àÀ-k„ÏF¦¥ÕÉÚ³"6_O>H¥’<­3 ôôõ'ÁÉ?°#G_cP0gŠíôI�ÖöØu…–Ï£]cêH�hsmµ°“ ƒì¡,n(¨ ¹ß“’�o œ”±W}0ÂÙ€¹e^‚yö¶ii?Æ'\·$™ ¨4^^nüåÈcÖÏœ¹jÊ/qÝp~0W?)Ù’b‰¸[óöéT'b++ˆæJë«Í”eÂ8aŽÆ1‚èzØQ¨®¶Pì¹=&¨CêSã‘óÎŽi#VonèçŒàhjßA¤¯‹¬%_ZY0¦1‹MÆZWLæÜC"6ŒL¦zb�>'âþ—4iÈF3:ªðl‰jæ{ràgs”²�#á ¦Í‘Zô=Õç¥3MâwÖ´ž]¹‚É�°Ú: gO ºYà‚®�)cÞÇÏÍ3;\F?à?Ú¬[Þ˜�0¯vËoVõM�*ž\5dÅ"[µ™r�lµ~ƒ“NµuÂÇÉYU+(pÄô¦p‡3ºž÷ãÄ�²ÌXNc3-e;òë•ÈÅ�áqßB ¦-wˆ,Tâç4 x1~Á3(žë( �fÌ/òÅÌs»Ü›,Òþ8xn‰à£* þ…ÏòßæØYw+o¯=UxlC`S"J…Yõp…vå=dÙ<«ý@þ4Úñ Ÿ6�Œèç6¿Ñ]]öS«´Õ‡Ï=ŸïU±÷‚®_Hv§ûú¾[eþz·ÂÞÙ™¾ÄH:K™ iðUPƒñÔŽõü´îmaÚù–@ BJs×öe~PsèŒQN§¢)?Ž µc¥¼Õ3\ÜB­ïnf׿ÞC©öɉ€¨ìŠ(§_ÊkÏ€ÉõÅß x$]�6~)Œˆ% Ñ òð‡±ŒF4Œ6Yâ}p“tÛƒK _1„ñ½íÕg4#ýær{ÂÜ_�„�ŸRbü4K’L Ï‚mÙ#衯ª: ™÷ÿ*ß\UÑ’ ™EZÇà�¯j¯©Q? ÁžÅb–ð›Ä+û“²N"!ÒÀ˜ÃXôrÖb‚𶸣D]aÂyÆ×Ÿ}Ah�--"–Öu½ä»…œü.;n)î1vî'–ÃÊ#­ÿ,0b®kúÚß ÚZS1�ëG#?<Ö†¾ç>,΀+šMò€Â¡¾ùB4žà²0!ßN3jÁzp¬õHN0Ò´´>I<¢ïür"Hë=D࢔Գëh±òƒƒ*M½ÿD¦zLQaĪ’uæ8}qùLŠüZn$ßÖ"ЬvÝ3î÷±o‹—íñ•p€ ‚+ZqE­‰¢jø\*K¢ª8i·½†iã\[˜„è„å¿Ô©£|G_ Í 䟳„d€N™¸ÀÍ~üHïûè›Î¬gq”Ê#üÉd³õrÀ‚­ɧ§Ñ�“T s§ø,ï\ãIpo¬Xp±¹x>Ò±%ƒîN cZUÀ[˜òñf)aˆ¬Ö¡žl^Ñ(~ÈÈwœ/ò#ï|’Ë<×"FÅ sð¦Ú‘¹æKßkǘfß•qq˜²à ;¡ùëÁ«$öÕtêî)`|,ù{S©Àîb H¡OXàÿTð¹²Ì¥ -4µ"}^œ]wx±'ddpI½Ä‰Hÿ\lpV‘ª/ß—y›]”G¢Ø?ãÇÆÍ?AãìÃ6·ÿây�4ÉÞGÞEsJ=/•¤`A²´�ݨÊù¶*l1ã/Ó­$p€IÐÏý•¤ñ µÁß�hÑá5Ag>‚¨36bÔKè1Fô}¯`Bßߺһ©�"+Ýmû° �VdݽˆÄš2˜v BÑò>œýq ŒÝO¸�õôˆŽõA!~Ë–m±®°”¬û£%”æôÁ'8ýY¯ñ"<µ°ÏJTàA"Ï õ !�“�ÒÒA¸IÊž„ùâMû¬%¨>CÓØOŽŒIÖärqò ‚´†Í;t!èÔÈ�ï8Üë Œ«ÈLx©{Qacd&Œ9—üb(iÑÉ}‹s“³–™SºÁçAqvV¨U…Ö¾ Æ«ð�'û=qº›áÈÝÃÙÆéx¹PDK¥è�z ×H·3ˆã¡ñhTõgÔ�¿$“Qìë!¦Ë�Ê�}ÂÚ~ÿ 7µ)Q±•2•�˜*&®ßù„MËbøï>]Î=|ÏJ©-všÝOL˜�¨Üñ’ÉbpÙÚ¦ !µÜ$=÷ (`k®þècv\Ù÷‘Ï5´ŸSbOŸ• ºvZŠV“Õ�gÅôx&�0ù/)YGMîÖñßY^ÓŒù:s_¬O /'Ä/¾l^¨O«ÌQ¸Á1�IŒÚqÃa̾¸Ú^™ ]ƒXC^< Òë8|Vl±=ÄÃ=�Çà ¡¢„#KÇ�s•ts2íaÅPììÛ2ô^ƒûp¦Å<.º¦‡ÎF¨•SN*�Dg7ÏàøÎ§â‚H#þF9é9ÆnŒ ‹ñn®È‰1ÐçÏ!aÓþE?FHÂXÌØißbNµ³±0äÂëR6‰-W�æ»É:þ¥yƒˆÌØ¡TŸºˆí{àE+ó98_*4�RjÙæ¹*¢8Òƒ:—Â|�RÉë׳V­ ²yë(º,˜�ìÉ ØT!âÆ‚–Úïxµ[xŸêÚXY£¸äÓ­¬ÙÏì§ßzû=¾iìˆ=]èKŠô>ò{æô¦ÖMïˆê¨Q*ª ߦ§' EÿãLJ_m Dnc¤>ºú‘ßeÍuOÍ*Ðå}a]äÌ&ø¹ùýˆRj„bÉL}¼«@Æì8Aççìá„Ó28äoH2s‰Z_Ž ©�m?Dç+À1ëäs£TGT½˜9•]nsƒM îJÕ {VX`³£'!È6lÆŸ5ÝÝ �¹o>¡jIÞlÚíE7íx:æ´äá"0m�,LAB»‰!ršG篆(ìÅ%{Š2—Y›±ülÙñ–÷#¾§ë΃Ó]»gu KìεÜ*ô¾ _d¾o)MRôÅf1“Óz¥ŒüSd-6ãã¤×ÀL(Yõñ‘èõ–Òò ùFP†æ6Tùv‚a޶zXЩ“C ~N§Xð“«ÀÇA\…�LI¹² Â|Þ$Ƶ ¿Hwü%43ì_=Ý(c›¬[O¸å‹œ¨iud¿wЯ�ÑX™ÃÅýseÛûÞ÷Å^W¸Æ w�tLð7wÀ Œéy»•šŽ–~ª7‰Ó£§LÌMŽ8ä5ùjs78)�%âH›lÜ¡#®)¨½¾¦7š¦]£@î D7t‹àan8üÖB@ˆ{/ÀokÒýh 72“‹Ö=Š3î£þýÈ·SgWÉʶ«N!SAñ°[ÿ™`T‘”Ëf>jÖiü•9 Òò ­36&Æ/ ÍÌ$î’àbz�î”<ÌÇÂAFs@5›PåçmœH±?àx=Ü·î¶«�=7,šc˜TôĄ̊¸¥†Æ_ùAŒé¾‚Ñ5E9:.Ò†d?[Àf.JØ[LÆúP2�z¥¼°ÄP€{ТHÄ ï—ú¸JWGGÞCÂî–o×D‘œË”�¸V,Ы…¬G¹sW¼¸�„‚R´ °nò²¬"õÐ{«CåTÜA4°¾˜½ ®ÞÈ ››T Ðòèõ¹#抽p¹ bö8v7H; ¢[,mr+…§t…«™ñþ 9~¿ =‚ê«ZyfŠŠ4MªU�´H¹h%å éŒð2'÷Úº6:þ÷ˆv³ù›Š“ì[ÑQå$Y5A(¡;ä‚•å¾1z2•õÃÿ°ìg”^ðLÿšQ©l¦ªZ¶”1z/3œi@a8iŸñRÙ5�=¾`)çôøÊ^¦ a¶}Ã9= ¯) HÎÒQ-''Ì ƒøfÄõ<²Œ/šÇ f�§¾~Ý–¤¦+Zf­÷ãå‰ïÛ",D™Þ ý ®J=ðÝVÜúàl¹íc¸y4ôÛ¾pÇb"³Âé}®¹+�Ù7Ja­b陲ŒeœUñYðVý¹‚CùÇD“d0ïÙƒ¹öªÒ"­n4¥<ÝêgˆáP#»·:þHªúã ÕÍÕvûoD7ë§ 3+ DŠ›Bù ©—çL·êG~Ñï ØÝ˜Ñ˜´C¸¨;@Z¿N—Õr+u¦y9ëS:‘Œœ/c ïr¬µPÞ§õ:eþìGåò0î¾}{Cx#‚òs9MŠ�ÊèÕã@q­íÙ%§Ô¢”XöLƒdi „ÈT¹Î÷”É[mdh\aØj|hrRD8n.¶·ì9.·úó¢g`ã1<ý�îë3{�®Å-k(m¶eÂLç½Êâ™2hkðD:S =ó»H»˜ç=ߢ,*bl\Úf6$‘îÓ¥z~z‹˜ä/Xü¢^Ôǰ³õ‹»Ð4iRWrDfÇ÷¦\ãx`Ù܆>°ã©6­ŽòVªÌ(5)åƒ8ûa“D®6$¨½&ò"Üi}†K”hoéUs^.¹ÆGËÓÕëxƒSœP¿�ÊÔûAšÌçWg–ýÞ�° ÷&À ¯`¢ùvª45ƒÿä”â9g• öÃj[›À`ZvÕ³èÙF|צ0†í t;ý=�‰Š×Ü]…@Y¤ �WE—0ÔÑèŠ =‰ý†�]°^£Àί'yÔô^›� úoÙ°©£o€9žVJ–âLXV=Õ4�ík2»š6óHÿв´±ëJ^¬¦PÛUÏ`]W\ ¬ìÙŠ\1eè%1ÓdL¸%¯eV*=«p%œ[^e l`›TM´0a/hú� OL Ñö‘ÙLvσ©­µÙ­²T­A¶®‹—føÜNU™5;µUåušÞø {œƒ‡’¥"Èp¹V©©i»?‰D»‹|ó±=VzΞz¥°îá"œM+þ¤Ñs�.pNÞÞ]âÞ+¥ÞKdxÚåCBÌ›óˆcn0ŽH¿ã'ÕÃÎàãŸv¹Õ�BKê"³xþáiFÊkU»øøƒñZßU×Þ•Ñ` ï™Ú¯0¾©ÉÚ\Ò4/p§-/—‹«á8ªƒ\ÕÉÇM…¨øj­•É´°èaw. »�ã<Åûî€4)OÎúKiu)©×TV©‡€žyŽß3¼t¤C‚½©}´žŒ ÷tš£yaj¤©ù€Òä¡»ò~ï]Ùf\%Ù@”!ð†•\ú5‡ù®xÍsè~àR>˜]"QvEãÍq`�­Š¤c?GDšgC5MïjØÿiÌ÷ų߆ñ®¿·û”{$Ë?©ž@;iÎu+d89dUÍÐÕ¢¦é��¥½3mj°*d±;Á"Ê�x©ãxœs:u팋«Éãuýcªl÷Bò¼QÔÏMå°ðÅÙñPø«ên.ôùG `ù¸LÆå½“ƒ­³d=¡§{üÅM'~ �ДøxÿPqÔ‹I• DŸV°Ìß`0ï�¦ÝUe«pk67èúŒ“—åg�ÓRÁ?éê·GHhë¦ã™Ô÷ìÌ;¿uaä_¿­]èÀ΢Ü×¹¥‡ÑSNb›üÈãa�ÈÜ{6ŽQ/­îï»8}óf˜/4ÃF«!®lÆçðÙH·RfàL)0‹�Ç 4ôFx­Èífk´=ÆY½gŒòàgÙóš-p“‡mÏCžÒ¢�5íøROÝ[¥ZÐ!ìäì ™ùÔ[›${Qä�Šl{ïÄøp&ƒöZ=˜A”qŽÐ¯}~­óÕFÌ7%žËV*šà¡HÐpýo;­-à±C¤ª˜ÙÁêh”`”œ9$ÿr¶äxªÄ¬Ø.S¤Ô™–Ò²éã~ÛÊÅŠ_1~(¿¶jÅ»»–PD¨nÏKA|Øn‹¢Z] Ê^ë+³d�H x‰2³Óº·y-é³ g95�“댫*û®”²ö»uë#A‰AZ-³¬Û¶ÓÈö=ÝÉhoFŒÀoùÆš¢�8Ö³Ú�M6SüÄ�AÀ¬S¡þ ˆ¾Gö›„€íJsWÄ·ŠÜſ矉™ЉÄjËjŒÊŸØag*crL*ÂãåNGœV¶Ë‹XP~ððK Ú_~ŒwU]ñZ àsl½Þû^1ÿT×wž�\¨Œ%f*ÙH&„ÊTºE€�ÉÀ=Ì›á ¦÷�ØYÇÓmUûúsàio¶ý ‚&¬&ª g!z"Ÿá}{BÌñó%íZvðÄÄÔ€@¸†­`¢,�cžäkÊ·OhâîÚ_œlþ@·Bñó+«:b„z–h§}á…~!‘#§Ä–:7®j�Qˆ‰‰w-°ÁÇsL–�í³´FpjËä|¹mŒÆ;«{”Ääd„.,„çëô/Iyæ…‡)m¤ùQL—)†•ÖLyYåI ßûxŒ–¬¿UD"’“;¹–³d„pzCSÿÈ�ºæ§z©Ó+)½7 ªvÿ)P—â4òGú,-\‹<#m˺ŽÔD­½™“ÆÇ[bÛ¯ôPÑ„V0õ}Su$·ÑHq°]0{Ÿ‘vÑ®†rÁŠÿZð$ŒÏ%$y<6/õŒš\–V–eúEzWO{£ØÕµÑ ¯�lo#̱q‹E�N’<1ÿß⿹óÔT î8qТ.#êVÅ©2‡Ëì-üðk·ßÇ”õaÔ1Rúcãøš¥ár¦°=ü¡UbÝ›M/=ìâ¼£T:–ªË¹à#:ü1!>ûªµÚ‡iú§aɹ¨©¥^`˜ÐIAƒc®•A¬@èD¥5«µ]´(˜@ø×ùÒ™W&§ây¾ß½œ²©@žnì‰5åREÈõÏNNÔyñV>Ь¿”Âà.žÜñ—Pñàsì%q‰ŒJ³fá3»œëaª\?´fAWÃã0bƒ1�±TݘL5ª2êÛRŒæ RS´pH9ü-Ž�yýõ|Vüjw�åj´h™ÍÈêm:wf›‡ÀêPùIÔ0|lHTÓ´Þ+É2—«ÇfRÔÎÁzÂÓ  ŸRÛÝþ{œe—�…ŽÄð!z6¼ÈÃ>UÜÁ0™}n^ÍÆQ'Ï µsØ“-eñV)>|ÇáDj£•X?ºD·ë\vý·_’=wdèQÃ>™³°ô Ê-›IsUƒžö…<ÿ.ÀÐ6ë-}P/|VáÔ2 äH96û¦³±aL»•òâJ˜(—ÿ…LÎf*z2‚ÍWÂìh  Ò[G¨9 p_‡šš};ê÷ì’üÛBj_Á‡2w�^Æíƒ›#�R�Ë••ã…‘hÃëàêÓ2ö Ùk•ïm 19üKãwPÓ"Lôè£lßbø(G –ÐvVZd{ÉÚY¼¢©wxŠm/2ÎÙ7„] õüš¥,[S´ùxd*^-}%ò55’¶N".ôœì±1¥oè~1Ÿ@?±fªF±»bòKÄ@-Œ8×±ÿFL°“Ê�ý[[»¾êÝ–D©y À–³J$f�¹â ü‘N‚pÚ�æ×YLñZÔrs¯Í¼ùñÒ�Ú¨jzñó @;¬èÉ‘ñZL•:£U‹ˆÖ219;Yã04‹Í�qê^ûâÙ'x\š ­(2Á$Í8ÂË9�I§Í·•˜dn%Êg¬Ç2ÃtF ²+ïXÖa üá_ÚâYW„—è=Îàã7¥rà,›¬è…ÉÒ³ú ó‚§èÈ�ƒ1Èv*t€àŠžÐ¬br¨ÇÊj†^[Éð£7ä!ñÉb‡Úò>Áˆ|ID2Z;Èî*+is`­ ¿‰ŒâÝtªID‹ ³ÊJ³šél deYl�\,Û¬B úÖN‘¡‡…ΡZ:r(t#Ýj›š»›mbx¤«Ûë ¼‰IƒµJ3Éòds K(�hPG|l`,ýíç³XWŸ«èt“Pß�›ñb¯ )m$ ï„v‘-#'ú„\¥à>ïXãåôö4°¯@+!³ÇΫ,Ê0&³D¯1OW7uo¹–3œgÿ3W;$�v?ÍÉ+s‰iS¾ÉßÓ7ÑŠ�4ØYÕÛYÞuo˜�+üÝ ésüƒbk§É7iþëvÝ«®Ç<œ¾I:Ÿ\«YU½·_«)žóÀFW?ô£ø¨a¤!Ž{¸ IÄάa5ÜÛŒí«*"rß‚Ò{›;�¾åûŽ•‚p§ÞVƒÃyŽáL¹$¥éjoû'øø½¼;¬/ê�Æ2Ú¶“klâµÙ‹v‚=øãÐ2Ó$5˜Ì]^ ïcc ¶=]i? fe*§L¤®,Óã*_–#Ãôî®Â#¦Ñn�s‡r±.ÎGß? ¯ñLÀ±ò\«¨ñT!'Ö{7)€¼Ê3ìËd «'@ò Í>Á±+’Oz^Œ�óÊó£Yå‘ɶ{Ï:ðZ7\|uê_�úp‘ðCüÉ«b÷a¶¹µ>’9o`‹„ûf«ñ$DL',ÄW.äÌÚ§^Ô‚ÿF'f×-/²~Ç.‰ÔÇ€³��!J œ±i�6Z"HÓªuô ЍŸPÕžt÷—‰ý!ßÿ^”,ÔóÛ`"ŽZ8'"íxk�íÒTp996p9‹_ö&ü�R*h`ËNnZ ~P‡ ’ÊIÙú§ôÆ�¿Ó.<ÄZSúZ�œSÂ1>2$1U…DY´šÌåz!óJ²(è‚ùj«®ÅRœ‡V#ú‡•ÄL k‚²­ù÷ÉucèÛ± ùž (o‡xÙæ«ëÔ™så> £"ön(B¨hµêL]®zèÕÐxÁ£\ô=À3üO¸­9ï­'¶|˜™að!EùŽC…x¡dŽp+�´('_dTÅdíº¡�×Ó8Sà¡´d(Ç. 8X6©þÕålõ¾WXóõÕué…W›EäÏsÕ6ü:lP>U8Š~ýbL ><5ß‚ÈÌ›#q¹\Û@ÿ%½�¶¿NDŒZ~häˆò–�à<¨²Ä–ˆó•ö ÷üT¦!ÊÆöÂÁ°žÊB LßnTÀMæKÚ@He¤«¤êDTÛJu0uàeÀmÕlVNÀÛl¦á¾èÃØô–¤Ý®7¸—ìz´§':n’ e~ŸâuŠeB €ŒdI3�Gæw6_ã«B?Þ<>Ó ¬«Cªï ÎðtA%ÄQ›Ÿ³ÖíÍž¬”T!�EóŸ_tÐ�ÁQªÐ�Ý kQo]}ÉÛ¾Jÿb_sL“8—gÞ�”„KÿK—¼aÿVB¯ž÷¼8Úý¤Úît65<±¯}l� _Å£ dvg¬™‡ÁQÏë\} ç)¤~uÉ¢k| [yÍ8 ­¾Çö–>f�¤[â!ëBJ“;±çÇ×'ú`ÂÔ4ÑYy¦Ÿ§Á“rZ#à,4–Òâ…ØÈÀa<³ŒS¯©¾Û\r~N "{ùB ³Ù9Ä«j=*YUkÝÞ5LnwåU5rOç}å”ÏI[ˆÊG!=ÓœóŠ ¿‹'¼³îåT)p¥ò EŒ1f8Á€ÑíX êsÜ7�¬ÿ�’ö±†$c¸pFÿb=L&7]ýÍš9Ê"ÏX'(QR"S/k¡Ê­«>gÌk¼³À.óåæOòž+~‚zñ6�–r}v¥‚¹ÛžæW¦3“�…P`ƒæFºŽXi²�èÆHÀ9Ä…z Ao�‚î4Õ—I.¤ÿÖ¾> ”c\¬ODNšÃ1_¤ýMgf—#âÝÔÙr?“ìöv)ãPÁ®fìÝô9í‹q„3+n%�¡ËŽˆ}µÍ”íÔD£Ù�Ôb¹†ðÜdÛ‰G 2ö¨C;ð·Zù÷§½dŸ¨ì©Âóƒ�VÕåÙkæ‘q¨[Êö¹ Ü««ê j³¼¢Èk-HHÿë…Ã3”GÞ4|hœû¸R7âȲ“#]SCÊšEF·Ú;‘~2&¤í5k(—EÂ’·ûË�*:†*V¥kƒ?³ í7ô¨ÀubaÓ]¤d �°è6ç°eE_(°B ³»•bDꃟ¼Rr„¾†Û“;+çS9؃Ÿm¡º†é¯ÝcøW÷*¥HôÑ2¿ù6%À’‡ŸmüeõJypCð¤ÇÄd[n“t¥6e:Û «Ø((Þ7ª o;þÊëÝyLÆà&]ѵyÅïõad©x­vÞ@ Áh‘î•J‰o �vœØ;»PÈc/fÕ® ÚbôXsα²…ú’8A˜ @wC½½ÉΖŒT|F˜Ìqf&ó4 (˜†bM_½o£`ÂÔšÓ4�­àê`Û[Øäé*õÒDvÁFhºÚxÉCzŒ²6§ìY(=¤ä5±¬èºJ4¬0ÎÚ!"› lž†œ¯~]„Ô à¹Ç⨙´e¤Î›ÇŒ#M$’)¤¸ î�ÔdáSƒ¥‘ÂVÞdØuÅ…ãž®“eM&Å["—ïæ*ßËéŽpZ �•è«IãøXd™ÅàI®r¢ÕÈ/„ú]°KKŠýß+ÓÙß[—”XG]'Зâuñô¯V#<ù€,fN?´†ˆ9>ÀÅo£'ëJÇO ₚ vBmùÄ�C&CbüXYQûÐæìÂ�Ôî€Íœ}‘lÞ$éÒ²Aa/D°w m‰ó±y*Vì„ÂÕ¶x'Ä»¯A±n YÙ•ûdDzé^?³+³�Úzy[­š8ã§CFl~–ܨp±ø÷¤-ëýý|Ò½öÁs¨Mì]š ­ 63 žAØ&"ƒ¹?zä¡*¦‹�1$Ô?לÝáÁñ8¬äÞO/Ý9[1ZÖC)ªk³a™ÚtÇ!òÞ»W‹[:7€ñÇB?÷‚ýÔfk¨Ö:TÒHîöê@þ_oªv�¯O» µÛ©yÇ,PYíbf ΞìÔ"/e´7¼µW´Ó/n»W‰Ñ¦»Á´W„‡OuY_Œ‡rGÃ=Óµ™ˆø@U¾ÛÛÀy‰á¼2bدmh«ÇaD$aQ2Ï$åî—ç\“1ûªf¬y•'ÁFÕ+�ÇYrß�IÇŠ­äŽóñÔD�Y§ükán'Ê ŒþóŒƒä–õ0]ÄkÞ ÇsÌ”Ö ™�šÁg¹ÁºpŽvÝÉ„ã²…Ö bøãŒß©ËØ9»OÐdÝ¢Þ–6™:OBz'Níš¹l:¸ ¶åWÀ ¶¹‹’öºOÄ/éß¾ªað,ä. GjqÀ;潇ðçh`‰P¡3ɈÇyáÒbz±)ÿ«¨åÌ�°ýÌ)aB¦ ŒØR‹ýƒ¬kx �ºd/dÈŠ¸õ�]-‚Ç¥ ‰Ú\ñ4Á8G'‰f†]JŒ¦Î6N&5’Ó¶mËëŒÎÐyGÆè›ný~Ø÷À3D�eHÛ¶P äj¹ÁDð*'hö­Úsy É&[üÝ;—>�.®óÆ#ºYªúaŒÎ3k”^Mä4L?Õéò ýè�ÜtæÓ\žÅþnœ±ò9¦O–›ÒÕH#Çû¼=ØêûÐ5Øšö¿´Ó7®’½ìù›EBT­8¶p�wkS" h„°vÅâÑùW{j!«üñ�âÀP«b‘f»^OÍân�:L’cm·Ã€½€°&ÜÞÎjŠiÜß]¯ÊSƽo£äÅ›—Ah­ØggÂÙ‚5XOÔa�¤‘0ØÁ•Fv"0*[þPóRXmþä›bŠªè]8úúïx”(ª= ;ßIßÂÞÒuÊÆ4A%&i•€ÿqôWÆõV�e²ÏãJÇ.´Á“Ñx�j–ä‹– ú•|Â4ÿ«'`¢cP25vS¶±4FúOšoÍ™~N¹ä%ù‚ùDïç‹]¼˜:ï¶Ú6®Ÿbd=ìŽöù�æÃ�Ö95­ýŸ•Ô|½âñuþ'èÜy5 tòº¸ï‘)Y¤¤›å×EრÑrz©kÝÞÜÇ[ºÊ(ï�’ ¯UÝ´†�mÔ3ΘEŸeM}–«û[þzf·O·9¦™0–„€#�ç9ó£÷ß„]›õéDôÍÛ®Ú?k*œ²ÔµŸ™öHãVñqÍ^D8KÐÁ8PEÊ)Pÿ…¹²4>})&–ªMgKŠî�nù èÄ…›S`Íc9œ£ Ê ¸2!8 rÎæ€¢ë•´=gÈ=hí]”V‰’S®È�ªeÜ-ì0 /½±½W‹}ç9Òä[ Ö/Y�‰º?‡©ÁŠÈÛm¢do@ö¦ËGðNñ™™Úéå˜Üõ§éyïa¢>>� ƒ²´ÓvkÄ÷ÁÐÙk¹ÕYaäßV¬LÁýø+Äîê|Îɽ$Ö©¾lk¢ô>ŽM¼|Ú"H8œÇu'PùÔŒ�du›™¨ËÆ%˜}¦+@+ˆ ¸n|ѱûªöI’r€—c Bd騴J®1\d%RÚ=¦ÉIõ$Oiµ]‡v뀹úÌÕÙž�TÝàXêŽ�sãò›"§™ú0=î2i •m«€ q±s¥p�eGn<̘JˆÌEï>WëÍìf­¾ƒ “)Ýqtƒ,þ͉�2r4m"MÜ‹Õ�›šRl%\ „?•¢ÿœ’<îˆÃˆ–KSÄQO7¤$Õd¹!íß8ÞG•Û$¾©2x'÷ØŒ‚ʵ¿°à©qtî“%ñ1 ¯V|gÚ�c_ãûj>¯ÕÏš–�GíŠ\©¿�8󢿲ªü‚¢Zm¬� hc¥ªúÇáFfŸzÂt¬!œXe;¹äšÚoŸ£B\£v‰ÖvÔÆhh¿·[êŸ3°ƒ™×l7׋=ÝÏÃÈ#:¤‡Ì<#üç¾E>¯i|sê¥ðUŸÂ–ƒFÅ)ižŠ¶á®µ´àwÜÿ´Í&ÎÓs©Ê€LWøÓ˜ B÷Ý=yì°’ƒNyõ¦3†¤ì«5bâ{7¾GýR…¸­CJ†¨øgâµÌqP­®oØW÷§Ïì¾Vy¾bMF@­íSåÔÄP_7kÅåbœË¤G'?ÿ'¸r`›û@fï Óò…xð9¸È¿A·­£z÷ØjŽŽ+É�» 7é^Gß§;W¹NèÀ¸×V;€½‘ Ęd™½JúS¯Æ[aH¿jOBÚò7®¶i1SÅi67Oý<ÑšÇ0à7dŒì"ºgþoš\4è•£vY¢9û>Æ{˜«Á#¡¾æf,õ ¿9º‰x[ ~á¯gQ1’\¨n݉ÃŽM\õ2ÕýQ>n ¥LÇk_•¶BJSîïWPŸ�íñ¼/r¬=.0Þßšµ†ÿà�Ø(è#lN•È¥ÜÌïY¥Wi¤Ú»öJ%óóÀ”^6!š”;飼èÍH]-Ïy&²ýœ­º©âÖDvUøL{±ñ�®1äìSMˆŒ�À›-Ò¶� 4oÛò´²(ïM2Áö½‚ÜiÍ‹ê;w¦ @Bpå!9k¯Oß"á{Ÿö-øP[ü’Ú!7ØŠÚ#òŽ›R²‡�\L‹Œc0Īþ_zs˜ÀY½ñMË�÷׆y 9|r+6FΗÕ@Ù€¼* ܦâ*ÛTÎèç×»-k´¥¢„MHUý�Â+žE6Ž{A|¥üƒy¡ nƒ°pS‚¶‡¸"ËÚÊû•åd“�ý¬ø` ñË@Kk8Êü¼ Ñ2´+ƒ Hg†]ü=¿!fýؼ ’nLªóÖßÏðÑ#"½æ[Iõ^ y^�¹�–z>ÜVS™7Í£OfñÂŒÖÔ’ÓÏN l3¬­?¥Y!ˆT¢­F”D5ë Û$7!¢9 Eÿ¼�4~•PdÕ¼'èE?�ç8�R.$þ'ïÛÔ•œTÊàtƒ†yrÆI¤«£í>7gO`bÜ×øI•£×’e©°•*3ÎÞ�£i¥›5MV�1nó¥«þ|v^±w>Ý…¯O4–lõÞ–ØËní°«ãØ‹eÃ>ú$S�˜,gÒÒ�t¹-‡b„ï�ÆóÄ·Ò˹$<(ÚOh´¿BîW{gß0[}P^$ý&d´"D]ŸÚÚ—L�ŠÑp0s2o�M`l¼ÓL\ß²?œDË*5~Ã;8³Z3XUsË0U —³ ÇØ–Tv{[Išæøçv*/•·huo†W˜y¶Ê,Ê 5å,™N!J¤|7Hx¼³¹k–òÝXuÈÎ4ßa�7áOiÔ>ן ©÷=w`#щýY®!æhaÁyRÑãunôqT*q¨_À¯+xŸ4ŸoÄÄ l2+à»@W´m#Ø|œw[͵KpKÉÁýÿL‹T8�ªû/ÏX¦-e~wœª?TßåÔYØN‘Ï™>\âðO™ xåFó–Q?<qõfJ¢glîzR�TO‘ÂN]^]Ý#½•Õ�²2aÂ%«áv‰þ"Ñd‹ ÅSOÙ�Ë’µ‘×Çþ�@{aìòGç@2`¸8î§®¯l–4w9¸¢‹`Z€ëv„Ý|æŠH9Gt°dGA„]0� ½žAlÚýس²ÿ2ÔäI:µ¦-EqÉ)d iœL ޳‰^^�N`\iÁzÏÀ£u×}âe,×vq¦‹–,ÿ¾–3¼’…ã5ëÖ úž§´nŽùËNâã3ž¾Ãp°’ªÊýxÊ3vžÊ²Õ_·�;tß–Õ3âɱºA‰A÷R$ "|M”ÿêª9H9n–Š´j$¬lŠ8ܦä¯ÇÝO7÷‡×ÊZ­ Ú)›´nk˜ô<Ÿvº†O™ rÅïðÜ�€Û?’EòÉ}9¿Úi1 ;­†£ÎVÙõ“µì�ù°‘Z�%}‚14=µåލjwÒå7MÙJg@Ñݪ:¢4ø¥Rºòk7±�R¹™Ü*™³+šËÞiS5·œÕ#¥KÇ¢ãà—0çtñ•÷ �¤I»§ mÞ“�ènû”E’´Øb&b•AFj3•Å/ÐÃÞ�¬òE^ÙÄým…¦gß¶ƒ¦ á¦Û�³Î¹ÎÀwGƒ^��=ú¨þF£#m|$=DåB~’¶nþ�ËÔË=±6a²UÔïUf©Ã÷ö’eÝJéÚp¾É.QDf›L½c¨9b<»�ë¥æ�·•ú…œV(¬ :º6†Pof(ZE´ìôqDÕ9Y=ÒÑw§ÆNøŒ{<°E¹ ­º ³ö�7ÓÁaV‘Ñ©B%mq"X†IS¾#b?iBéáãǶG¿Yí}‚ýsâäÂûmjÎ~ � z–Z‰·ûjùª©�¡�Ò-'�Ì“•vËs·>ÜTwèÄ6ßgX!€Çè{çОXÖíf`sjA°ö§½“4\„þÄ3G½®äÆJ¼%ŒnÈðÞÝÉÝVyÙ;x}‰ ÀŒK8>oú�œlÆ�K¿_ù¾Æ,¶%‘ í3ÜÔº.ŠýUŒyÍœ 9{83é: Àƒ#é­Y½Ô‰C¹®ÛÕÏš¨ú~É9ð¹1�)9ën\E3é‘úÇÂâÙ 7¦—‡Ì¡ Þ²UË&&ÝøÂJx‚œ† …%kô&ç½kôó˜ÿV¥=Ðëz!n+Lœèxê§‹í¼>3î¤Ô£ÎvÏu ûäXdtà�Vb†_é$éŽ ïPGøéElSu2¤J–©HwàNìþv^ôuLRíœ[MÌÚ½ýŠûƒ‘ž“bŠ+ÍËGù`ð"av�p9ÝéÛ¡@6]#ŽG×g)M½ßR-àóÍ¢ö~U`"'³Ÿ+°ÝÙ¹R�"úb/ÿšmÙsçÄÅ-�Ã.nï!�•C“ÑUWåh`¯:µõß©—–…&Š˜ô`Pr ùýòŸ¬•ÔÔ"¡÷3rhqÍtµJ­º@ô&F)<;_+#Kßà ²Ô笆ût:Å+Q¾~•§²ó·„¥æ9§ÌøÕPõW ï±²''ôÌ÷séKÅ*Ü…Ÿ?ݨþ7×Ý0€õ>áØ!›͈òZμ;PVã­xÁ®§ d½`”&ÞjZ)Q�•‚¯u‡¼‡€×®˜Ø¡^æÚiåvÏï£À)@H8d‚FÔMÊ6ô€³Æ¨VdwÿMá§fìNÝÍÊžÁ3ùÔukSu8ÝÏʽI¦C‰BT3 s'f,÷©—‹‰ÿ�Œ$ЊÚÉØÕ,v~ŠP1ÆÊ;¤ïEÖ£BÆðUÀò6ë{-»)ƒn7–Ë�¨YqCÛɺè¬ñT¹€‹@(z9!B`¾´®:­½ÒÁôÝÑåÓ%d èWR’´¢)Qù4h¤9õ3 9w�qü´‰�W—z¯ò=}Þ6>gªäª^ßK±Êç wꮂ6…€É’ûy®Vrˉ’LÚ¡áŰá`›* �ïãW¹!=¿&&-†Xñƒ¯¶Q[¬™P ‘aÿ»3¼÷µ£ ­ÒG� ‹¬ J¤�OùñUy;FH0Ñs`y_ZlÓqlH<”l�lfšÌÇ"øÀ=¬_LKOwÉqñéÁÎóÎËë2•ÈyaιOþ§ûµÁ0P<…_at(YJ]\j¹d%v:dž߷Â%Œƒ ñjƺ$@C‹ ‰òæàéB´zÕÇ¢í$ÚÚ´€ŽÄg¶,·.]ç"c -y9ãO’xÓÔ‡È9È–‚�‘£7l—Zv?¤2Ï(—ù#A¸–NÀ#j Þq¨® [fguK *ô’w\3!ªõGâ~*nø|,Ó¿T|ÿ*-àü„…wÝJ:™Û5ÑÏŠÔÁ�€%¹"¿}• ]³Q>P0"\ÆŸ5è ñ�ê¢Ç���•¶hN9 %ÿ€ìêj�­@äKórÌ=)àŒ¼%©èóÞö¤?¦žV¸æ ¤°ÕèÕì?x·[�ba¸^Ùl}¶JvöшçÃú·³€õFé;ЬœûAú)p°žAòÄj]iAƒ [N0w–M8¶ ß›»’àù»Ro9AˆãÃį@æ¤I¸ŒˆÈè­ð&V>ƒ!„vJáÁŸgÆçëÁ7·« Žo—ðÅB^÷&iãáŽ[Q#• ’†m¢��êZ�Ä9ƒoæÁLBH{ö›7%&U°‘ ]�U)}¡Ìÿt‰,à9„åùŽØÒÀ.æ íô;|mŠŽ&d(ìã ÷r¦2ànW½ó†¦ÉaûöµUÐ?ȸvt}¾ñƒ eàJ±º1UR7!ëÛ²…êJ™Ë\ÿÀ¼àñgjRó¥'…E>Ÿn™§º"=å88Pb†h•¡Ù0ô(ˆ>“Òl vÔRþÃE�°ôr…á!û-›${B\ŸDu°ÕìTœ`ÿ £­#ô¼—¸/kˆÄBÍ_ÏÊÆõ¾¡JÀú°Ä�HqtäÖ¥ NgMÑ)‹Î”¸Ð“œÊwd|6à2ŠÙ!ð%†ìŠœ^žVEî_½õ¬¬íð…HàÁ°:8­”fFèFÚø¦.\%ÿÚ¿¼Z¾BrÄ…‡I졌Ûõ‰ÕÛÉ…°þQU�ê¸Îë ÛÌx€ånSôdè3‘ó¶†�É嘶û"ó¾od&.8ÍK}.ìÌÆS˜}2$Zê¤ð×g½ø1ÌÇ‹Uø ØÉˆ¯têûÞ`1}VÆô�¬^Ñv ƒ<ÝþÖ+µÛ |¶zÂôÚŸ�p‚KmåÒëj±ÆÕ陞¿û>´ÈƉŸÜG£5N©»‡b ]2‘y�>(´N]UxÔG´ÂÞíŒÄjÀ’ Kú�“Fþ Ûª4ËË‚n¬”,¼¢p~Éÿ2ô…c¨O©H‡ê®Øÿžaóžmåc-ÆÊ‰¨r þM%I ¹†�P}a¶0oÑ`�ƒlô¨S!×l•Ï`÷¬k7h†à£S¾ÑˆÁV›ä–�›{Ýo« Ôó½?x“‰™ Ô/雿õ4V»£=AøVšTo%¢“]ã¶Œ¹%2žS =¦Ý.†–S´sû9‘6=b¶™·¨K[ó¬TvWUd™Ö¡½ï*¼øc8Î^0©f¸Q–t0‘"®á%\£"(bw�´ú‰Ù{îýGŠ\§¶œ´ÔúNñ-Õ%*6¬äCöÃÔ’rYΈ¤ËD-Búh1€"ø—GLõßÈšmçô$Aþp�¼¿½ÜV;™Íõ}ª_L˜ÿ¬l÷[{¤›‡Iµ±Æ¼X@€RÐÝê^¿�n˜â <+_®Ä„Ïo¡Š`Ùƒù+MòžX ËQ˜„r1‹…Z+®…S¢«Ö7¼—¥í§rn@p`CN0—ð7ˆcÅU?;¨K ÖOF£Þ„ž#yZŸ§×XªÂŠÀý‚™EèÅE]Ö€½XJê#ïæñLs¦%ÕB²`|ùß7Áœ>B«âЧp�ò3ÍôÞÙÝ>�‡—”‚ð³†ÐÿšçJÍ”âÛuù-@ é‹§A¦éA*µ ,21]xCè™UèÂê†\¾¢¿´ñó*Çys*Øò¯>Ðu¸-ðý€7þX>Koö†¼¿Û“âcس�"nڑȬí)ê w›—ÚPMsÞNq1ѤK(:ZòGêÊÕ˜Æ ×ÍdqyÙsˆß�÷R=;?M°™æ�[#'\âÏÄ+f»/͈2!Œjv|,õŒŠw)°‚jï’¿ô ³ªæFÖÐt‚Ôìã¼§ÅëJÉ3„:obOØžI0ª9R ¡ïlbÚÒ)Í[Ø "`;…gÑD¬ÍîâÔátJƒäª¾Q‹„×áz+Wpl¡Y<„ý®~.û¢Š·ˆßÀT´„G+Ìæ{`#ÄëÉ"¤Vi~i£ªUÄò‘ùq3°ü,óUYî£+êr¹ãݯs†Ð”Íš× ²êIcìÕû†Ðzè<Ë”ábò‹‰SfŠ*僜DA†<î­Ö”ÎG¢ä¨¯½?7šºÁ¾ðÒØw…>oÇh÷\ÊŠ*6š×â” Ù=%ÿóA dÆíHË2y'ƒk¶úZz©Õk™sƒÈóhE†þá¾7Lu²4Ñ�R¨´ù•l®îú\Ü ®yâ~³gÏÊ«*³œS ¶u8&ÕÉ|_ÅÙ‘ÇHQ•HÖ…C?ì ûx¡«ÏÙcJ>pÿZ)‘Õ^ 0a¬™@"ÀJ<­éÛ8qÐèL¨DV¤CæÑ@Zó«MúA”¸%}mÔä‚QJP_ËRKQ«…c�¨g ÏÝg9‚$Ñ”¬$è‡èŠð:V[\Jâ>Qµ &3¸tŸ°[O;Ò±ø€i!Óq6Ge?²©Fv °Tø€>ZÞtC•VòtÆDS¿M™6‰ñh‚ÁÛQ^ÉÜÖ?äù‡©„õð&}jä€-1D’…òÛZOBa}#½ @Î�ï„Uá±ãsˆ_À=v> Î ‡|%ò;e”϶†äl†u#Œ5]ʶYÓꯌa"_aµ¸7œc[ÿåÒ–[#Yì©ë ©(Í þVxõ¿)gtLàé½+ ~}§Ð}àœŠ+ãR£ë5绕}™ Åî¬k&#˜XÚ¾·DÔ÷'.`ÈŒ­ €é�–XU�ÌAf D©lîò—a·’s¤\^ðÏ<)ŠŒã NËo¿« ü·U“Ù‰púx%Ó[ð¨bÄ¥î„Âv'�޼×È $*ç]¡•òæh¸Á¤b�‹ye´çG"Ê[Ä3È4=.|!�œˆY¯QÄ ]\¨Ò{Ð>7ÕmÊ›"X„…úC/^ ” lˆ,)›éÐ1ŒSèN=úw þÓ0˜6”°öá"%}Ó×M¢S†ê¨×úñL]Ž-%`^È÷Î?@Ì‚T,Š>Bìe-‰¶Nnö+$ä<æö %ß�5å 6;†^8y¶¡3ªv .«%3 >''{#µ_G÷#�ñ n&hÊ«~)WBLA´„Ó„dM Ó|Õ³¸Eä¦P+/ŽVº·�ÿ|½¿“Kb梇ü Í'}�OqÙ³™sªœ¢HQ{RýÓ¯ Ì5K¤þl™šãêá+`…u~bâ”ù»Z¯p�Ô ¯µ¬w€¦ƒ&_¢$6t�¾zˆý�ø8òcoþ;–é5oy0êR¼ÝÑ£˜nLŒûЭ­Ê—gÉT�WÛNO{1tG«&(àw”5#Iî®¶ÜJÛ²[½W…DÑÀŸIuu jšU}·s=X6ð�=EŸŠµÑ)Ž"æcŽŸ~d¦- íOc¼¸|l,—4�åýûÒ£‡+$?³ãóDu<µ½È9Ž–Tþ76á�¦qJÝ’¸¿ù|]YJ’5ý샧SüÍ÷àÒ‡þHÓúj”(XÁ¡U R«­rd_iÛŠc­¶ |y•=¿ë±¢a2Î ‘¹,–Ô¿’”ûOp‹÷‹“dÎâsŒ qÓ¸J\nÓ˜ÿ)KDƒßïRNHCs ÃÒžšÇxBþ;W8e}¹ÍLËAÈô KÕÀüH©Ð7º‘¤CB™¶ôa>?dJ‰Zü.û•oØÒæ‚îã äØVÜŽ¢S3+ÿs³¦�\U¤È ©k7ÑŠzt¥�Ä䓇ãÄðgõN­S/ Þ¡Q– M;" rUº¦˜Á¶;èº <3ÒRÿ®‘ "ïׂF+ =â¹¥sŽ#ï³^¸À»œ�Þá1ßÂŽÛÜ„¼#”î¬}n¾»ÒÜ~‚h7åjÑIa3w†Ñ‰º?»ÕÔ1š¥æUÑÌU!”¸'ˆ= ÉHêJC{Öúo³gbŽNi¿:æpfŒóツiÎË‚ñ>ñ„u)™æéq_±ØŽ$ÌþiÞ®R&£Yýœ_ëh žƒÄ.ÓHgUÕ\÷š¯ÈpÃa&ý²Œ�Ä®eÂÌ"�¼‡Û­Rܳð«2ײHH Ô|Î�n®—är7ú�6ÓAÃÊ‚ Õ±ÍnC˜rRݯçNU�9uá}ù��¸ gYLÃùùÁ?YXý(a*Ç´{ÒÝúI\Uw¸/ œüAGh † MZ·J×…²9G�ïxÊẨ�¶Ã�þŠA  ­Ô£ÓTým«{…gG&S ê[G8è@ãíi`+,µÇŒ¼¨ãaÚOÊmHüO4µngB©SkþlÞ5¿þÂúÀ�©Å…P¼OhÕô8 Êùé’ÌÓö,‡Ð� B™£§>Þß«µñh.»«Øè–>¾S½VÍ»%˜Û8Nߢóùû™¤‡³Éé“#·b–òsp»{—€Ä-�ï¬[½¡cÃ5²Œ±[C’­Ä‚Ëà*o€¨%Ã>hÇúV’uÚ¡~8¤`[29b¼vŠÞhI{AŽ7—»Ü6Ú*IeZû©Ã‡ŽÄÅ-ñ±îÏûmF©¿Ñ ÞR Æ¶S(¦_tºÞÖ”µ~¦Ó—¹Rh“ú4õNPcLb ÙŠÚÙH9 öžXß9+Þs&�–v @¦­ÇÑtš^À±õKø( ËÒ6 —Æõ� ØÖc| È£Âè7üäOå“tPüw=ã Ó/ýìÇø %¥Qb0½kÎÒiÍ`ýzôùo=hOd{�¬õWhï_½šî·eû�¹VZÛœž`rÏD“îûËÈóä>j�ºÃNeŸý^D³×Öù ñq%Ç!º«˜P×¨Ö —ÆSƒ¦ÓO÷<‹Áä�ÝF; 9O0„ãg}Ò«çnv˜º¨ú9=±ùdÏm©íÊ-ÝEU4g!,\÷ NŽ«Õ}Y®$ á¼óüYÏ©s¥cÉÒÐÎiÎâHD¤UHÀýÚIm•ücsš‚ÞÅR£œòõVæ—”0úüçÓ´m/¯òÂsI>04hS½cÿç•”T Çç8¨Û†ŒÏ¿qá+èO iÄmØ“Ywã5¯ˆKË{¢ã2ìÁ©9~ÙÏtÕ) RžFЙ13èP…@S ÝéæÜ«o™e’¼@-Þoð‚®�OËwñì´Õ3j6_4Ù W“„©Ó¹ WM·‚$õê#—ÄOÿ!’"Ć�8¶ i¥…³ë—;«ÞÖ ¦ÛHÁD6¦¾k|Bdø?“î§{ªáðÙþ�¸S†­ÄS‡Hx¨¢çÔR’l(4_Œw»ÿ9è°|Å]Æø¸Ä.¥&<)hÕd*Óû�š`ïF¦›>`2ˆ"‹qRR¢€Äâ�9ª¨§1ÓõaQûÈ Í !Wàg–ëýž!ã£mTo�ƒµLÂMQ5Ö®]É@Åêšé›ÛGrøx=T(h˜<šõ£6(¢'î‚\ºjú&qÚ®&q¦x=i‰põ¨f:1”=wc²·’Ý´‹¼ò!7ºIAYŽ*EÒåW‰ç³øJxBqAØ õ¡5’=¬’�©íY0ÜVFgòžJ’9¬ÕKaoÅÙ„-�ŠÊNØDÈ­(ô’OS( ww_×�2ˆþ(²½Ð‚ç3'bæî{æï· FY%R1Pžá-SHÊîÍñ îWHxEå°;˜ø›RSÒ,S7v*‘pƒÂ­z¿{ál±'Íþ¤é€&ýüDƒ¸ û~ª-ÐàÆäÄÇGE< ¥Ø!ôÈNœÏòÖ¯T ©ÉteÀGb¦óàɺ‚Ž{-AÈ•³²tù1úû¸P–­¡Z©“Èp»¶•ûÖ.lÓðÝ¥LÉ›9Ì\Σ;�´'©G]iþs‹ 9,±bˆMóWéBâz_!Ôú‰“ûœoÙê�µ‚#ü8«¯nZ(ÍbÛ5ç j°'L³¼u[½8ב¾œ‹Ò&®uùA3U«®À2lJ¯PV_ÂÑo“ìn!‰Ê>ÁѲ&ER; ˆU¹V‡�ÜøŠ{¾€Ê'çÅŽæyü°)ñô=ÐÙ0ÆBç�¡”Ä j(RjK“ek|Qõ&E¢: �ìjâw�—éèö^¾XHŽBûi­s@“`"�E±„Œ{—'‘E …5ím$I Ä!ªÓ“`ZÜ¿F°Î·%ž˜CûöÃLõTÞ‹xèBôæb͘¨†ŽÎŠ“©~V¦@õÃAv•._Ð>¡¿Þ[ö�ì#‰‰‰j¨Þ�3£Ð{µ8ÚÀѬ¶bÝ2ÖÑ@�ÂnÅ ¯ýKü΄÷sáó„%ˆLï+e“ÃfY.š£vÔr­è¸M .\‚2í0Ec =ç2=c¬Ô_%·À/W˜ È&)mu6È5˜[âaæŸÍÊ(Ö‘–s­:ŒõkR+¦H6Âôí9ó6À®‡á¢4£ä»ÅÜ‰Ê [üÕñ}ÊÎób’£äÚˆB´’ÙåmOªÒš�šTcE²1dΨÊ�·*-)šb’ÞÙçoÙ {²Å!g°ª°lKØêe¶ye+ ‹ØÁóë—)B£ž€:ð a襵SŽMqò�8tÁ_t]Ú{�ëÏ"OÖEÌ>œ‹˜ >üÐìPzMñ}Á‰7¼jáÛà¿’öækEg’7‘+§õv}¤Éþ‘ [ÖîsÉbn�/îâË£Cä`µ/¡Í(šA—îkIcF1”¬?uúªò¹Øl]¼Sò×Y*E„¿Íé�ʸû»ÿPo<…Ý©X˜yá�…|*y¢Á˜èn¯s6ö/B.ò“�š«ÜøL¡Bq*.“�\ @”D¬æí°ÆÈ'�0#(ÿ7 ù[Heud¸4‚«:Q¾,–zdˆ¡Yå©tÄ!ÄÀH¡gl º‡ïg #N»iÃÛ¶n¸Ö[`Fx€œÃòþ¨§vC¿ëŒú§1Õj¼=#·Ä™«Yqøï^”‰õðå³BÂhÕÆîˆA0k7¼ ÎÓIrºm-�»K¿´4c†—fÈVÝQô�tF¶õlŸ·½:K2ÏÀï¢1Æ€Êiàås3_ò…ë&ᜡ/bXàÐà ´œmKào¦Ñ'ª&7—yÐd3ùós�ð+F§lÂ5­‹åE&EÄpëËš�FI‹Øà9¥PÇTWåÛ~ÇÊņ›¶%Ü­ëé,žÿ�mÀ,í݆ÙÜùѦû6ù éV® Ö= ¦ˆ2Y[lêד½«6“ÞêÁñ~]hJÉ6•@÷¶´¸ÅT5N‘‹_Dz4öµßÞcHSQ]ópŠΪ$d–½¿w³ØcE¨"º•÷«-¦&5+®äµvL뱫;{9Œn·±&á0bÉúøÂƃBØ”×7¨å-:Ñ»C–7͇ŒÐÇ’Vsð9ËpŽëš•um´&Áë8G|¬÷”—±ª-Giu‚#üã¬Z£zR|"±È´^…eà2ó�áí]‚þ˜2:2}‘ºñ©€É¡ÀÅU(Q"U5�sUMúõ‰²*H;¥¯9…kê¢E¸í䎬É7ÏjÀ`€'÷XI›�úøž8ކCô"mµnÒ,sžWT•$Š›1¨Z¬Èý‚Uë ùPs!‘èŒ-ëxÔ½·-û<®Dÿ£ õvz!ZË«ºÕ– ë™ýÏJW0r´ÛÈzbº™ žOÚçvÁ"J �õåeC%5Ät…[A�ˆ6h3Ø33¹T Ê-u[{Ш�¼�àýÓ¼�)œN‚Š_S½~-3O8«ÚðÅï–å¯iM†)Öh5�~r“^âÆ6Xθá 9jŸ ·ÊBg5þýôîW(ájŽR­ú+ÉÝJ<4ÆŸiµòïä[…ŽNòuÃÀGtÖñ�œ‚7y1@‘'ØÙ›ìöj$ÕÚZ-fÅþoáprÞW÷×îoË™3Úé ©ƒÊŠU§NÏ{‰Äo|î“áØc‹Iœ;÷úœžò4àïôœCvfÿæB͆ÿÝÆËvý™J¯²{ée1èÆ :�N>?õÎÇmäxÚ1®vÌùÀí±$&o(ô–­˜ìz¨§y‹é®§+ó„‰ßL¡ÜH÷2&sf=TXª'Ãö� #GCÛ/˜‘Eµëׂ/úK‡U±}Í:±~覉â·î]~] KF­!Ù'^ý_û`%2²f/œ:”ã2ÅÀ¥ëàËœÜK(¶qνåúhs§«€H³€6ÈÊÞ­þÌŸÅORuð úv,Eä(`z�Vülñ%¦" ùbtÏÃ5{Ò'©k½ÕeªaÛ ´QÜÌLgíVRÎTÛàtÊ5šœ>Wß�¾-ëö�×’ƒ³hTÉÄ=~CÎ]ÄN­Û�$E-Nß])S[(‰!p%7+9¯Oõ¨F�Ô§î¢äI·ÊSg0lFySµÇŠ G«ZÈ ýVäÅ ×ÿü4Üçm,¿‡EüòùÓ=³ÏDÎêZ!ƒ ™ÕJCãëÓe°UD�é&Í'{#[­o|¡±ñK¶Õ·noÑá@4§Ž²N€½ Á nÓj�pc¼KøÀž›\Ú³ìt%ˆázX­‘NÖ�ĨcäîaCƒf&_u„3z-d­!Xfª—’‡.1'åp¿j½^®-ðóc“ŒväG#ñ 'ìÖÇl¿ôqÞ©ºæñ£ÔV§ûÈ%YXò]5À›Hqº¯W%ËD�QËü.м¯å†ðÚÑ©ihX‚Æ´{’äMw˜—�T­§�‘&þ‚1NEÇVæ@¡Váà¨{°tR�£i€prîýÁ,'¹ÝºM´ÖK‘d þÐl2&Õ’+Ö@XI:K†ä4uuEЊ« )“�òçn[‚CÓQîC‹¼BÝõ:þ…ÜAU$ÿ¡Ûðå ºRauH_nÿ,ÆÔƒW�‡A [b�îÂgßåSlIˆ¿T+¥hØè:í‡0S €áÈ5÷‚\°ã©1 ŠV$$mÇÁ¶b¦,EÞVÖ¡ª½¤'­HÍšø‹5Ñ[GìÁŠÞ]Ÿï£TÐoR8ÝÞ €å|àÎ>þô0¹÷èûb@ô’îÒ�ÌOBÚJ‹¢µÃ·òÈ�¸IÑ›)!±y€hÒ<Üwx² ÷=çLc,ÉÌ:)­ ~B¬û°Ò�×C5»kÙÇïÚÁÓÚž³?ßFú·x«�Áú1Q¸(9‹S/¥À@RZÅ6«â„#Ërïp‡ØõÖCªXaõ&z° Öû§&¢Mµ0×Ößñœã¹ÆŽ«Xû2�,Þå‡gû[\}¬ÖZE·¹;‰júZÎÀȔ¾Mˆà£5÷ŠÀÖtާ:ŽÂ<#ÉuZ¸@øD#ba¶»b¹6V‹/Ë—x+¸ Ó=}'®Aû³Öݘ˜�Éç6zôé홼ÞK·™ 5•Sš³ Tó÷ ðjqÄ™p×�GR FØ> ´{¡&‡ùÑ�1«Øò‘¹Czì8]wØ DSZY‰7˜ú¬È5çÉ:œHÝ«ß6‚-GC“~‡÷>;\‰þ‘ø/ÆÃj‡¯�çÐó~Z{ ÌÅ�|bªS» ³8´Çë1f U†+BãÏLþÔ˜Kà&AËïø<8Á üoœß¾w7vßWÐó¡J�¾ypíÓÙE¢×óß8n¿E�ùá¹³’éìVa{×$¶“>IÊž§éaN?]jCö(Uk] —ý÷”ؘ)Ÿÿö}ŒöqÚI—Ž(VMæ$…W‚0»?På7WZIYñÌqÍ.•¸ Å´¼KyÅvúRÃÌcTI{Š“ñâთå Ps¤˜ Ãs€umT“>T†Ì~šš{Ëú¬÷p©-s¡¯µaÏ(o‘† ßAË« \ù—}kñø•ål4ÎÞ/Žãé¤2r¬OðŽÙO.µ"+*°©?=S;û,O¤,“ Á¸ÑíøM”À¿÷³/;ÛW¡ŽiSZðË¢=Èôj:ê¶u¹:@˜Hk©,¾t}ÈZCa›áŽWKeߎ1ç¶sBY©ŒtúŠèFm¥âº.Z¯Œ‰ñÆÂ>0ös¤!7_"E>J«I0-P0&Þ,²0tç·â!°;.Œ‚x ô üžeŸ �~Êæûµ=O›¤Ñ8uÁà²�ÝžÓó '�­1m‡êAFÁU$0¾Z&È’ïrý¸!g*RìÐüåÀ†t/#8tÖ™ªð¾à§][ ŠØòfS/pù9Cȼ?¯R‡œV|ÿ£3¶»ðHР  �zu5a6¿¶b-Ö™ôºº>)è‹hÜIZ¦à+üΜvób|ª71³6PÞ Á¡äP}§ÝÇ C9²ÓWÉ× ¦äÈÌÛ¬|,üäËy¿­~/§@ß hÓÑ·ÒõA¥L72º&‚tWÒ)Lä*J¨§™áCl±-À©Á¢Hg,P¶š¡w’‡ Kw›ãZ>sÄ4¹dœdò“a‰¬q>#hel ^­òóºÄB²™Çm” á¼õSìÄ GN`-œw©Îx:�‘=Üp膉“Ú1lpÊ8Ú©¾waáWÆ3æpc‰Óy�¼zzT‡>9Äæ56Í8]€•eÊÿµÏtwº‘çÊ|XX Cfð“y…Ë%�U¶MOGc\ÿy¿íÞÊ[.`´‚è›.Õ»5=4xÀóþ+5Ц™«7žÿÐKÛ’¸^䎟X; -¤"¸‚‰)€olJfãR#}p$¾á Šº^ÕSÕqïŽUcö«# kIÖËÐ’¾ �û—f’¨ÐÌ`‡ªsê uiZ‡¡É¥M>{rÙF`4Îv7àA�ÔªéP"²fÀ)êħ›”b¾~/¬²ŽRã÷#ݤZÜ+oõó”ëÙ™L…{pS¹+4³ìñFƒú A¦hà' Gó2I{ñ7íëðÂõ)ÑÊéC’-KHL掯‹6!í áò4ºÄ³×Ðr»óa;K `bŸ¨!àf?ˆymä먤w°ïè?BNÚÃ\ïלxÆô®6â0mšPMš$ÉÔo)†Œx+Ð�åà#˜‰=&S‰@We<×xmÚà�\‚Su!–ê<å–LIµÒ¯w»ÍÍü?ŠW ?2dØ„3œ] þ¸¯åȤ£IðvÝ÷ˆuÅœ˜ìg@òe¾0¨“’ä@À�ôͪ<Ç=xNPÔÞ&‡·p|íJöhä”.6ów Ó5µ1rˆÔϬË�ÕW!Åx†�:²ä׊ës2ùâ×Ñ›­#2“À7�5úNóVÖrò*zÉúþ5]O�£û«æîu÷“e,ÎÊeìÈÐñw�ž0ž:lÿñëü³ÑÁü$µŒ“ýWЦ:Œ=˜×ñTøvÉAòã͸Sø‚8Ü ‚x±EëdLjî¨Kͧû„Sžš©2oj0&" :·.ÔÐ[°4– %B‰*ˈRŒ‚ä]V庘Œ§ kyÞ­)Ï«m€dÔ8¿Û¡®€ƒÙ¿A!-6æCÚô\áÐd²…É¡Ch×å“ÿYj‚ä(Üçÿ�G2s¾þï­ãRÕùà|ŠÎ­íA-v^¥ú4fl®Í‚¹ –¥~…e·¬MlnŽîDB{Gyé! Ò#�ÂØÿºú³.¦ÝO­€ìÎßÍ&óSüƒù�Ä3=‚1r Vk¨çäy�‚ò–PŒB¹ú²Ú;ê! ³¡ŸEWåËnHžQ#×1`#KÔ*‹Æô˜�’�ÛyɪÓ¬fÖë[ ­8Ðu°ïŠ88Úƒ»âe[¶&v{RðŠpñ7F¥Æ®ú8ó‰Ðxþ"ˆ�ävÏ` o äÏÝ¢¯…A^·æOQ§ˆÞ>ʨøâjwG9­]*:r¸Dv'®ÙÆ"yq…¾QfRüñnO]Oové…øÖjbH]^<½)ƒ ioG#ǹŨü¼9®æÞ¾!B„67öÔ·6ºA6Ì5‘Zyq��ö°üò•ª-,=sÊa¨¡ÕŽõ`ÂÉÓ›¹Ï5»„ÿÓâÅÚ'jdÖYi‘À¨�Úbëz‚Ëip>´�¨f!Ór«ÌS1ÿÂP7T|EZ¢”'ŸSwÇIõQ£¬—ðÛ±ØyxG®#Ä©=Ϊɑ á@#Ž‘q:�©/·ÍÜü`êì•"óiêÚ—Þ¸ÕÄ×®dd^Ї¥ž©z+>ÝËÝhÛT¼˜0w5΢¨i鉤¶YO‘£7ÐóÒN-yïí”#Lvµ7gb‚ZµÂMÑG©‹K• ¼ÓTùŠcpÕøúÝÿ¶Ô¦Æ4³�²¯­Zp6t¾êºÐŸÖ× Œ¬]wÁÚ‰bò{ÄÈMo{Ó¶|TxS÷€é—š™¸Y|-rQÇk‰l€Y¹|:ö‡u¤»•ŸÑe[8a¿káXbÞ·,) ž¯=U­¦UÛ`&@'à ¦?+KH\Sm©v³Æ4x2ÚJñµépÜ_qQ…®xë´2�j³H®@l%5&á×ø$~—iþj:'(iþé¬�.j´‹qÕÌêўäÃÉö·™Àx¡9{ÎUdÒ¯`DÒ í¥åv5d‚j~Z•ßf 7�÷ë~D †¦‘[ô·WQmƒv/ïå\ߪ?~­Œw(ÀÂa+0¸GŒ©züƒ7¾ÐÑ Ôe·WŒ {DÒŸŽQŠ¡!˜°}€Õ^›“¹× ÊG‘ˆèí¯eBŸZ96ú·gp2ßQ8_ü�B÷¥Kc!þ|B‹ú/9vˆå—ôê“75†µ¤Ô_s=BÕè¿G7Sb7b;¼Ø6…45„Y3Pm„¯Ö=DY­N³št‡|ÿÄâÇë†e¹×q.fO‡÷«°_qß›¥ÃùeJñ@$gí� ÄPQ!©M.VFb\#� ´‡{Òs9 — w*ß“·À_]¾ZOvƒ7UmÏòt°yÉl¢¡(ÈC×Ý}íÆ­×ßU“ú•ù4«ïCïÖLO®ïNð"«~«÷A(_ÎQšt«iäõï‚1gFº R÷ª_ÚºÝÇ=X }4rˆûKüÿ»æet8[vYÄ÷w9ˆÇÕ…Øm‡Æù^è¨M;ßš&ª¸N»)=kºkbSB[Na †Cœ*’¤£‘ rÆA�õâWk…˜ÐÖüîã %RˆxöÁb«"©Ò,HÎÀÉ#L\Ý´Ãÿ6éÔôÖ|dˆ¶¶¨SHJ3‰í5Å쓚Û/ÑCùa¤6Cý×{$šâl"Wÿ¬*Ï u÷h�? NP´ìþ4nª—4¢WF›–ÜóŒnýÈ05¹›á[­Ò÷ªl�&áµnÚ V*ÖøI²þ&æW}ÍèÓ°»QlOCƒ°j ȧw¡Î°£NÅë}V$a[}fŠÀ+Ãk‘Ø„û‹4žerI–œMh½=[¿CÔc!ú1)É଱ºG'EFÇtF2œåÔ|ÎÖÎ Œô¼;A¼BΑÜe·âE¢Ó÷”FÄÊDF8d¾ÞÖmNuéÌ6‡:Že&8Z¬1Óª”+)jc»ZùqÕ-;È‹Lèh¢Wþ”#Ý{å1:G_ÐnÑĪÅUj F;¨Z•;´ò6aXp†Ú{ˆgPöW $–[¾|4Ökõ +åIí^…ÂY¤F�Û µ­¢¾N,b k'ì¦Ïu=Q.›Ë v¤Fu\›&ayi•»×Âò»!AßFðÛ'×J>�¸<À%Õ¹˜QoMµVÎ8Zr«Àu�œÈÊ·¦ïDÈçx�š*]#DH0;™A¦ØzŠ«`gù¥OIE]odºãN¤�ÿRÏq§²Ú}`ª8qSŒÇ0e�1ÐF•�MÓÄ®ëü#k·Én6bÞInÛü"Ñ1)‡K"�Å›ÀV ÄÊcü]¿®?g’Öö©k.ä ìÆÝ]õ©ÝÊ:TäÒ;IKè¨û+[ÏcŃhBãWr‘¡4.ðd&ÌyƒÄï̱/³Æj§;k ˜×ÉëÞ_†•wcÂʃC5™;bô­JÐbk”{C_ ÛypŽÄ¿³äqH¹X-:(z¯#QÝÕ7£-iÉ8æ<…>mr(œ{™„ï‚TžH¡ÀWœRIwx ‡ÿ(T„Xè5Ӻɹ&…ôK{nsŒý;H÷!þ÷´ºi_—8e^ 1ΆÝU&µáeCj¤ îíC7­BMû„ªXä��¤/R·ëàIÞV ó@ˆËFh5 Öø-3gpÝÚÓw1:OQå7d¤——5$ÊßXq¸lryÊ™ý™T«$ìgÿKêç¢ê«Þ[šÓN`¤™ª|�„ÊzŸŠgµ`9bº`7Šc«:öŸ¥ ‡ÅÐZQ�ÍJB.iéa}ÿpMïø•f÷R Ê8 ) ®é|òmìÝjê=@S.?ò2ÃNe*y¿àÊ;G�ë!:Åö?Ef%B;%{3™Š.Ü¿ûS§[¼’„¦e˜ �«·Ð b�GtÁOºSû¿TöÉ;dÂ0úýÃGÞ†‚f9èCâÄemk¿ìOÛÕ*ƒ>¡M%Â�ˆâ�ìAŒ—ÃsŸ"%ÌžB^™¯î©Ìœ�Rð§B?«N> ×ø¤ýÁ»P¬álýJ4-IùçxH4Ë +Ð1þ-ª¶¥gkjû%5Ÿ(QÂD Ê³x4n|KNü÷Sö× m$�Ç>:à3<„¸¦0uôΩ{º}Õ^›ùý°ðÕÄùU1èF¨#¦ë˜¤c€¶(Àùr´ùt?’n ŸÉÃS`);@M‰»ò]o`[‚‰ñÔ4Á"˜ :ÆÊMÄ)‡Luúµ'Œžö­ç¯Æ${ÕOÞbï—h@”TÐFìOdPd}á¯$Ì›{W[çQ¦EŽÓýÜèÌÚ˜òÒcâƒ3/9H.n‹ó}¢=Ž{©àœT�|ÁËß½Pâ¥ÄPdEVtµ¹ ÁÉf¥ÌÞšÀÙ~@Ø‹ìXS3¨Y]lD\µa ðK¡ø~µDNm Ç£¾ßµæUQâ6–ˆVP‘È=c��²>Êe¿�™ÿ(Ã,À6jCþÎ48øVHP´ÎVîAec»3±¢û*{mΘ¿ Q”ÅÖÓßlUSD]ç˜×<ŠÙ‡{c–5ÿÍ¢.CâH±ü4‚Ÿ‹Uàh_¡Æã¡œ wìW€ÆDˆx ?pùç7$­{° ; ôCË(,•ö\¡oQÅ»~þ^½7>å£já’z~ªÄFëw � ê -ïE<$g¯2€ñd2ÛÀ­¢ÜÀæ#ªé»Ô_Žœ³Ó_`8Ít§.X|>yå!³œS^�Éʧ]ßæt‚¾~ß ı¡‘¬â`çñŽ‘¾P¹�iæŠßՕܳ6ÒN“. ß³»"çT8$ Øp4í¬_¬1v¦ñ+9œÑ„FÛqŒIü…}åˆ,ê#�õUTXeÎYEi%——8™ƒ'pr:n®�á¸XÿF 2\O~Š–œW*Zv‚ƒ�½SA˜F µÉçrÞ.2vúòOLs�¯L¼Ülì¿ ã‘=#Ö—ß²WàŠ„h_;¨j<‘­·ZV¤EÛM;<ƒB0ãA^N²¯Ä6é��f÷zsà‡Ší-}UoÔ’¡R¡H Øú²±fÆo‘ Ì-HÖS�Ä̸ï5Ö,MsmÐyB A®ôõ°b\è Ž:"_£V€þ×ÓVâ¼…!§,Ü Š‡0uŸÅ>n¡¡í3’Ð6E䛾emk ÙñZ¿MYu°LœBR�ZnÒu…ê�l0ZzŒ<Ú[@xÌìIw*e�tãéô¨XF�s�óDIöºñŸË!þ‹®&9çqû›ü‰ÍÝ�b\Ÿ’?í±�í±Ö@dÚ"Má2«GóÈr!÷aýµ èÙcDô×Qt¢®¨FV³ÔIX(ÎÂÃfài*o•ÃBúªýÌ£Ž­$Š'íH÷S´ýÿïá“ÊŽ0ç#[‚ëíÍ"g�íîÓǙԔ,«e éF¡ÝM*n¬ ~I§ äGpkK[¯î2/=öÜyMþ¯¼6• õOÁ\øµÚJQK"•ÓL¿¥¶Ÿª“oÍ%œw¬?䉡±†/0&IÌKiâfj¦%³öˆ¨n±+Øí)G4¶MJ36ïlç«‹è1ˆ„÷)ô_>v›bg;í¾º{P"NÓ5 º;�ÖÂ"èÂBx×Sí<£ŒLµ3±‘z˜ì¯w©¥¹¿DX²¿ã æ¸q^…7‹ììJZ¼¹]k�ÍÉÖì-Ç×Ëx=ÀªÚ›Y,RßA0Z¨Ýy�ËÛ߆Вª‚Ý�´ªR<³è�7`ûafyÓÛÌrÁˆ¾åÒÿ¥c�#ƒãÙ ¸”$â�P¤Ï9-‡…5»Šôvv''H9b„ÎENXxá£Àp�Ý…Ï“D߬‹þlɽ*WCæ{:S(wxÁV¥[©HýŽ;Dï¹!·�'K¤:‹ŒŠ&~�OH1“Aö%ÕkÇ ÁÊ~Pb¾ë‹ªe¹€Æì‡ZÏKH³ µ¼»×®s�¯ÖÃÖ3þfO;B¦)Éðµç± ¶bB¢ÀëðÈY7@ƒÄœÉ*χó'3ë•h÷…#:·¼—V‚o§RLô’&hÕëì�1}ä™Âªë­P¡4r1Ū \ÎO” (P§$Œ$OÞ³– ØG ÃÙ¤/VøKÉXC�ìåô$­Æb£#Ó_ê±Ç0ü_® Pt¶!Q 5¨Ñ§úZ•‹[ËçÁɰGÏðé=›PüºT Æ ¤‰'Âû)ß.%ÃŇõèýŽòvbê—øR–#F»”†³�AŽ˜˜ºÏïMWNÏP…4g�ûÈc¸¥��i×¹¬ç,´záwø(Gý2Î ¶9¡À:N½“p­®&£o"K˜ý‡}Q^8Põœu\­•Ö¹×­‘h œ,‡ð;�Ý;WØ€­æý_5ó@ùÕs¨ŠhwÌÓÓ}Ú‹þQ¡º*“Æ0¿äý_9çÂŸÑ HyaìÕª6|ª\ñ¹…¥k°^}7n×@õŸ4ÿÕ�c…kõ¥+y$ùú‘I¡¯­¶©9S cÓa† s)è¡ÏˆäXç@RHH·™04!«ê7”Úã5¤3¦ìƒE’íxääéOl,wî©ï9ÎÛ‘‰•  ï/6�h £Aû´R•áöÏ�·º‹åŽa’��æ{"l RÏÂ3s–}ÊÊf|�Ã&Šÿyã�;iž³6VpÂ3 ò‚4µâ¯,ˆŽLÆýÞ�îZûÐ×0Ü_¼œSILÑ’)Å™$ŽIÝuÓ[QŒg° ÂûHŽ%Ádª]ᮑR{WY„( C.¸ÐY¢„^,æMYÆãWnkؘ «*Þä*pFçf™SKø�q<ö×0€zÌÖÊà {ˆIÄÔ‹ŸVSßpü*z )³°™c¬ÿq=þò éÑ÷Ѭ¶ÎÙš›,¡›KÒ¯�‹ïB úÍ(þüFŠh·“Îcëò%‹Ÿs]:Rùâ�Xã§xΩÆt[q»o@À·jé`Yˆ›&åˆËÄx'æÄrA/E!ö“ßBGiUîV`é½Þÿî$~¯Õyª,’a¼·¯¯,@ÚQ�kŒ{�ÄÒ¶ÕÆÉë\{Pó�{='Ø}~*Ðc tß cÚÄÈ™ {¸+] ‚&[$u f/ºôT� 8礂¥^,2ØfPG¬7®áz—â)Œœwa ÷ƒøT ¹Ëá!Û°bóœ.,÷HÊÝ…ê3ñìøÃ4× 4z#EÉ‹•ýñUcd±¡<¼Ð0ý£ò§ô†Vî9N,¢X7NFR£wlbAv7YÃê=´JBa�øÚÆ/�ÕÏÊÃpîÈ�§Ä×}ÓuWP”ñÕ=¬~†ÜóT ›ÞÊ>YW[k1§86ÊBhݱWŽK<Ú>Ò}º°#q®ìu�3¢^y\àƒ‹�‘‰'{óÛˆ| p61”§>³¨ç­f²”�ö-3ùª4ᬉݱ’ºDwŒyÖtzKÎ Aƒ�&k Ñ¡s4Õì\™ì„å NŒTyŸæ}à c�iÔµ�’ÚØÈ,C"6Iæy*ݶ˜ËìœoììKUûÛÂǸñ§�U©¤qô@\À.½EÊ ™Jœ±Ò3êVÃQ|ˆöá|�£¦ bü�ŸØÆS°÷Ô�/IWõ©„@k¦PáæTk‹0Ÿ<ÆÓŸ&�;™MY!ÀEù1hMw4EOÒ`ù¡‰P\áPó^žÜ÷'?¤„¸Zg!ñ’ävçjø–z¢ü�ñ\Æ>Ÿ¹ã„ïliÉËmO<üôøþ�¥ˆYs è+"çê©Xºí\ŸA”ðI)âý1‰Ib_/IãÂtƒã+dîA¥õWn]MO³”JíAÖÂÂÜÛsVˆ˜¹t°°ÝÚ{ìò}m*R‚º&{eŠŒA��=•üO¼Y�Zç<‹¬S—ÿw)*Üo´ ì,&Èü4Þ‰ [ëƒ6±ÓÀ°“‰¶ì…[#Os6AŒ’œ0F÷QïÂ0a=�;b·{ Jv?²i*ˆ#kFÛù·hi,•»b ø‹«ß¬‘5LË·1‹¢l9Q®v‰u]pÅe‹Õ}Â*‹DqŒµ‡éщ-±›¬ã{a÷B8;¥fw&DHžÑÞ¼#SJ‘B(¿·¹`áÜ�oIÐMRdÙšÏFr+O�:Fñ?�ëò×ëZ¯¡�"9³ô;kÀßòÉ5$,ÜUÕ*øöBx4ù!¼õÕUI¢éIÖÝ •È’:[•¢€~ݤ){Ä%ˆ´õ\¶Ÿ´ðÂPI×!x˜àòo2O‰�͈Ð},Ê9Åü#q¹ÕËãwæ7~WjÈX�§ÝǨùŸs£õ5 b©RëÍN.b%cÒoùá*ÖPe8rZz†ô›„™#Hš¸bÊò mŸæ3׆Ĺ´—ÅwŒ?œKbc3 �Ë ‘¦Ña¹ØEÿþ|ûï¬_tî£âÂÀ±€üÑ…ª‰sp³jà" ˜ºÓR¿~Õ¼Ao,ÞÝ�rö’¿ÛÑ+ó]zîµwt\hNTƒoƒhõd˜Æ�RÔÄ·YùÊns¶XvÞX�0i¿ �¤N¯¿FãõÎa2oMŽ�þ@‡Q0k±:ª3~?XNC»ü„/Ѩ~ì€Iÿ ‘¿ÐÊ”Ba‰ùú¨¨1·ì3» *w;€×HQ5Ü;ô¥zßÙ§’ú‘NwJ¬ÀPJ0  :%C ûq³˜ªÁãÌB44©jYì¸ü‹gŸøutR¿ÕžÌÏœð飲ëª5¸@�³@‡,÷f–Ø–×ãnmבyútÇ[ŠKm¦[É–A*–õÁ&o}þá¾`«ÆŽ"Kýy¸ýÁAñ^ô‡|7RlÛÀédx°¤‰¯ò.Ãùb¨ìÄlRIÞl!ÀéWÚ¹û‚Í©C±VúÒÇXúËĹ2ý¥m§AÅ»}ÊÔ IrÇnÐêŽv=]J3—*ƒn/NÓl-è—ÌÁb_oršÛÍw,7cOšw¸s 'íýWɰP„¸ô襢D[I+ÛH�ƒ ¡Èq"TøÞ¤9¢ëZ›Ç d{ÿ–Á‰¯X‘‰9_øî/ÞLû2á{ïË$>ô£ÞuÓíJëzGú áòM0͵’�ð'ä2ÅG'­�ºÇ®1Hí% ¬ÓàL½xTÑ–{»5.~XoBðƒ »±üîÏ/žñ©&wBÂWq^»á}Šõž·:ª»FÇÚí|ÆæÚŠ¶”L ìŸ×-e§ë‹Ó-™Ì‚nÛLÁ2‡Ü Ÿ(uÔ1/6ar@yˆ05E>Ü+ÅJÕIù;äÌþn<=/Q¬~{b4Ð}óã׺Ì“SÖ�¿Ü¹rjb˸{ŒÚ;G®,Ïâ�ôFÑùQ±·ÞÉüg<wðœ)õ»ÈÁv�á¨àu[áYá Byv<Á üE[”}ÐÔF­Æçɯ͂ݡû·íhhÕ¯Uº s®&@ÕÏÞ¯\[Êw–_{ÆÛ�îä0³i³¤ðÿ›Zh€Ÿ¢½¢úÕ”—Ûé+�ë» Û`jg3þ’ÄŽ¡L %G PtŠÏhô;äñýe¿2Cf}[’¦ó °šŠ'X!åU§�]Q¼{/ ÿ Äâa{Fô\ò�ÞoʹDä^øŒ|²†!ðvì1üp Â;zèåUš… ô¹7pk‚�®¿Ú¥÷S˜Û•ŠÍ=Uƒ 8”Ͷz%X™)]¨óõ<ʱdM YêúzŠjjòüs¨*ÿŸêWúçùÍXþ*E|8ƒÌ} g#+õee-}CN…YWú¤(,ÏjTeÞ[Uåz¬q:Vgµ[͘v1ièn…N®?jU�ÉûšÎ[y¢S|˜Z°ñ/L¯þ�\®…Iîû')‡_óëäöWzbÅöäoh%£ C±ü¿Š˜lI…ÃÞø¼|ôÆ®¹D›Âвr'*¤i!‹¬ú¥†2Î…b46ìÈp]_GÊֻ,!¨ÿêèo»›'<³"Ýý¬ÒYóÉsËÙâíƒðƒëÓ³;oýó£8�Ý®®ßÅ¡©ÆBažCP“‰_¯kã\ÑÁU‚œÂ=«åƒ Ö't¯èÖð_”#wå ¡r(Oœo”Z@�~ŠÍ_IªÏÍ샗¨W”!šíò¿%V¦1 YkôŒú¸ßÃÖ°=e¤Vcÿp~–›^#m¥Tvé7¨†e{Š h÷±¶aÛØnh�nºåfMo•.wÀàþî€FÀS=2lŒg^UºÌâ �½Ic«þsOEõ\Pf´-üžµôä°�7ÙÂ¥ø'þG—pYgZèž+Ìøpö:7OÞBç3Ð\®Z/—ÍŒûËå«Ô ÷þ#©+éŽgžÃÉÊÃÄŽÝ,N®¿^»ûlȵL.�#{Ý1﹟Ü[˼§ÉÓ™ºx;µ³åõçê'æåB�ã¥þ.=-ÍH\îÏ� ®2’¹ôŠñI«#û¿‡¤œ „G\℟…ZÝõý¹—¶@ÖLJšGB[öòØëy M- Ílǰ¹i�®6ÿ¡ã¦jÖš�Ízô^p®m“æn…lŠ@~àâ–@@^æÜ8l>éÆ"Œ Î�Piy©C7Á0A–öaO>!?N=C”UI£©ŒBþz#l¯ v1ð¿ûÏÁèn3õ;‰Yc°¡ „;Ƴªõ\b\íKW;‘jKõëT$ëõQùªO·îvûŸò—îÎØÔØÁ$}8ÂO¡Cy±žMäÙ0CkЧ‡!@&4tªÓ»·DCŸÍÎã-Z�BðUÁ¾g‰ÍTu2-©³« [W¼JòQð“vìWKÊÄèá×½*ìqÕFð�ù ü1ú5Õ¨ºçûù(½æº_ñ¯LÒúîÑÔÍ$ŒžE¨5k¯¸¯ïGÔ)W•�¬îÚzIç]8‘õïìDcfÌ>«îé\ãèìübïßmÉ4ÑÆ>;GômQ˜Uí6+,'Û°¦]Ëü“1«ÅÞ›¿²Ã©©kLd©/Rᤰ³à{é3÷zÛq¼DË*n¡ŸÂÛMŠš`5Ó¸Õ±Vf iÆ}˜Æ<.ɷЇõ2‰�àUuéè}Ø-Uaû3>ÒPçj£´Ñ3į ËD&ªdL?ßRKÑJc¶o ¶.î¢:='ø�®ÈSÕ㬠;¬¸“¡ÇçÈÝí=1>ïIwWIÌÅßc "øÉ÷ü¥YŽ‚qsí9·å}MXµR ¥f}ú“ Ÿ2[¢ŒÔ�Q3Ñ”þCþ»:X‘ Øš½Ð1_?Í!²©XÞÝÉ f/ìE1£’¤^¤~£ °†ÄN#: ˆ´ojy›.A«7ËtÛ·šLÂÍc? L�ñv ƒU¯‘¾µ{\�t·X]èCá5âÔÇ7séûQ—_D4š}@CÛZƒ?G¡.™9Ot+®�ž+ƒlŠ/94äÛ¼QŸéï]RæV›’–­ ·†n±*¾WqÝÞæªvœˆ‚ˆË/¡¬õvñvôÀ; !í‹ÇZC—Òæí¥½HD§oážÚEvL,‰Ù‡{ò7k.W‰çÊå¥ßã^Ç&*üþIè8ÛZüV v†��E¶¢;#†çëòDÓÉ«ME:kaÍ `^â²´íôå,L5f›ÇÔô³Á§‡¶iq5 88y_ 39»à ÿÈ3‰WûÜäû”Vé½Pl¨Ê™vwÆ Üõx{Îßbø1ýÓ ôÎ�ݲšÛs˜Ð¡‰ŠîŒ N,rj­ýGK!®�Âêʬ¼ÃÊt¹×^ÔàúÌ~áEWT‰}““OËÕø­Ù­¡ˆ‘Ôý]ÌWL4%/’óJÝFQ*8ÕS~/5*×�;Æ—aCóÛ¨Lä`?$¹¢îôçø´X5«•Ξñ´’Ûï�…³±Y½ƒÝ†„Ì}àáï†â8ú¯2A%*ùŠÒa÷/ qå|Ž£–£3(˜Éð4§‡–kK}½ÆQ°ÍBS?kUJ)¬Î3:ráBþîvÅqoj“Emí�àA˜aÃ~´‡›AIJÑH]À¦‚õÒ!üžàÛÈ1ÎÒŠO1ulÝÝýìC2ëG48´�+ÒŽî!¦ÿ9±ñQÄöH’x¶Ï{`·N;Àž@ª�Z×�(ÙÉö—&§lÁXŠ#š�¥�ã)¢Ž€+&PÃ�JüŠËeä5ÛÉ�^ÚEܦ»bXVmdͳODâ+¸ÅFèšoÝ�óÅåââagáѦÍÚÛÆF#½‘/ªâx ’EE ¸—}g¨XM³íêɦ¹fé!,ÏÊ©³¬:â`ì¶öô k°¡PÖ°ÝâH±<êÄ Œ$òO@Mþ lº�»M[<}ì^ψ”oÎ’ „¥z±`É¢¹!ir7a¨‰öž¯–;}âr‡7×wµ1ç!\C‰º‡Az½RÙHœ~Ì@¯ÒóĹ÷ë‡�Li˜€n�9!…*Ë÷*&×-x¢¢¥¢ì¹lgCS± ÊS!èX»._k¢p«ðÙ»³–âÀÅeÐtC£á%Zü4ƒDS‘¬Œ�"ÃÈÅèÅž—5AT§UZr¹RòTõ„-;YÛ>·×gM2@:bd‹Jl£ñ^Ъ.Åâš—îi¥zñÊ»ÐDJböç!´ Ž«Îë ‹Ïä½$6ãIgáÈd5_â©'›U½ÏŽ×â5fö §h³‹S)”ú{ÀÌ›QžG4y³­v+Xÿ%BéÓWRc`Rì ÁÚæ!›M=�PLSLšQG0Q_T 4cÏéþÖ�9xExCà€h\Ç–wµ½·'±Òw1Žø~–\âdÓxß×él`ºƒ¼d§¡ÈÛõ�­¬�fü•íG Ñiƒí•p käešuµÊx9ù kÊø½(êvæ¯=_]ÝaA­òÞ„'f7ÿ÷š´Gè”;É?o–&»6^y‚è+pÜÀ<;‡žH% I4©{&ˆ»>‹Î03'Âm˜2dƒÆmND½«ŒšjYKùï¸0Z–�¢»+ÁšåÖ¾‡jŽóP�0Ñ�i!p €ÆÐ,A¨É\†<;DúÖ»X\4Iöû†«rÜ×0üê?¡]ñŸµÛD¤>X}À2Ä�d6%©³õ9ൡµß•¡éƒ¼>±WTh“K<;5xÕKêò¼¶Pt¢Óª‡�+(é?ÉÑš9ÔT9y>‘"|š$\º ›òÃ�Ò?@ÌöÙr W›ÞŠEß í´ì þ�Ÿ3ÁäôhÊ—A´3Ò‘3Ö“ûG!¿\=Æ.ŸÜÎÚQ¨Ç(�·¤ú¥àoé•‚!NûÃ7ÚòsÕK* {â²ðïÈþSüQçͦ¬ ¾ØÁ7Ò„Ò�³÷׬q$~ØÚ_Ñ-§ïÒx ·,ë¥HkTù ï>‰<*ÈŽYL°ýsª/Ãn®^'Ä�Àñ”„ˆê™A~b§o~¸‹k_0‹­ÙlÂÀœÈÁ®Î¡'™ôç«ì‚Kze`0Ì\ôâ‘ñ|ý¨bVƒÏ�œ8j-‰)Ã+Îk½«OˆóñpçŠóiŒ6µÃÅ : Ö`òÎÊxœ¾“B¯t³²Vœ€ŸeÎÒŠ¬Ûió«é N[Ÿ¡]OÞI˹x阬Loá¡¢"Z¡COýú¢3`BÙÀÍnõ§û'—Ó¨oj^æpØ)Äó`Ó­þë™/�3”y�“@B_—’$vU1÷Œ'/÷³&º€` +#j´Qì‰ùœ¤ØÚÉ ÔP¨¢Rù¹ñòˆ¡^Ç9¡M¦Êzí³/N_¨OÒâ¢oÌj¾¶¼·í©òW” «4Í ó4ôfa.~õ›@›.“SL.[:ý{¸uÙ¥\ÇN…à-_f£¥;ÄXåº;2˜]Q>[c)k\ô\ŽX�kâŸíF�Ó�u")Ac^ß1R6ü�Pð4¶oVmÙØÜ™� K;…O”j^�üAðvý-›ö‰o™@e,ä�éC7Sú¿d–L$sÛoKmÿ)¤òyÛUކ:4ÌZ×Nx2ùU GŠ'¦Êèâ,ÚqXâðRMuMIÇ}.2{�ó×$›…:ŒÉ(籃֪â†DmSÈônx벃|7Àî5ˆ|ؘijäÖôQ>¼Ÿ©RO-s$0 Ëìú äæñbq}cs(Û— Ixµ·�ùWP´úâÝcdl+‰\‹g[V†¤d‚`›Âš; ˜Nþ䤨ü$”Æö_!Í€ÎÓ|= Ï@7¶ËK~1óv’Lé –==;õS‰ã5úœÎ«)ûG]‡?u~JM¤£HŽîg·Ë•8r#jj³©këÌY”Ó!ŽC8±Æ$ ‹¯ Å º¶…ÎÞ2 á+åcÄè¹à8Ëb5{; ô˜ƒ‹+}Á¤LzéšÒ}-M2ÆhÙ1­u3�á"6™2¯#X¾r#¿õ–K ¤1f.*‡›H«3ð'ísg¦ùâCé2ÙÄ­|ÞUôÒçY#ø5¬¼ÝN ÉÀ†­®sy(.¤M ´:ùÊc=õqúÙÐfn10~ÿ-šî=ŒÀ†z·iü5WÙ@ªp<�VQ¢mV̧\›`V¿`ä¹V×\!òÉÍUj Ta�—²‡pç.¼�|wãæ#±M3rÆÌ´¦Üé@Oש£ ‡ŽüB�e´ïé4*Gè,ÐŒ~HƒÌyÈ×P±f3õO£3ÎÝ;Ù4K<ï{Í×< Yü‚~Ò :´~›1E·ó�:žNß6wU™Ý1$YQÞä¬NÎ6A+F§ 80Õ¹“Yi’Ü`–†²ø  R2:"—¦dÙTkßCµá{Àñ²|v‘ÅT0¡ôOüghšïÔ÷ö¼ª6ÂùÊDR¡š¯¡n§¼&8›<Õ¿¸,[�0úl 1Àèlþ‹ºéñºoÊÕ-«áôà¼úøª�ðAuûnåß_˜}Ú¦^îC{›™È}#\Ò€™ÿ–ª Á�ˆ+q¯?-w¶†[ŸiÐBRÎìo¦~ €Î@1ŠråE(”ýq�­Æ¥=«Ì:;¨BµøvfìHþˆ{•o“‘7Q8åûSÖô“¯£ü0$º�lp~”1¤°‹POá�x1b,1lšG¾É.ÛÁÒûpŒ!�½·«ç,Ä¿gNÞC;ûò!±HúJF?,ÒI2ôA¶›Ä…öU\P™ðæ©÷uÑTA’¡3DµÆcë­ì+ùaôFŒÒ³À°GÁ©¿’0šä‰–3†4^œÖŒ‚Ú;ŠEu ‡<Ç×ôá}‘,�ih‰@Ò×]zO»Br~ê¸î(ðÜðÉàÓ†¦‘‰kÿhŒì¬¿p·÷ 1p¶µ•þc¯Å‰ùxÖÂüÎ@ùhèp€¨³dPž‡ ü>„Xóšq÷嘭¼k^$ä–ZZúq$x‹ï~œˆ%¯xDŠRW›®-Ÿƒ‚©e{ÿDʼdq Fª“\Î9}Ñ>d¢~´íI÷ÖˆÀ¢jÝw˜ðßî£ÒÑoR`ƒ¨µEk"Ь>t©¤Šª9-ÛzÃ-Žu´02B.COûW+Š}Åõafñ °Oô›0BLåò2:Afý~%ð¾/²çÀkAÍR§ˆ&M›1^œpƒk‘'ËËs“€Ta�Ê>iïu�$�íj4À:<ù—I‚ïäaŒµT´2ŸÍ) "j× ólö(ý&'Üséž1ˆ‘ï|“§€yÖˆÅF œÊ·:ÎQ¥ø­Æ2ñÍøS3ý›ÀÑ!¹ ?¯ªHßV\®ð( |i?½•*ï°Œ % ä4ÿT:šgJ¡hYZ‰}°õsuÜ<áÈLL%zG"%ÿtlÕ«êøÓ=³tSÄŠ6qú�ÆÇgùÑŽo†ÙÛÿ�=âY&øÄøEœ¥yêR†J š[ãv*§>Úà¨mŽ‘ê—jH$çÑRJá![øâ-YÌù‚+˜ØŒW¤/pÑÄ_}ë „Áø÷º—»*r‰©wm¿Ð ÔMwz"F²˜2Ü`…žùs± cwåà:^^"ã_þ¦Ómë0Rk¿‹HRÎ_È95ìpˆyZ‘ç¤T‰ç ^ ‡’–—°;$¦óC>�d±¾kH*ú…–7äâc$ÖN�ž ‚ZÃg¸].V'sïñ8w®`cª&d=+½ ŒLÈcq9ÐÒ~Œ(‘-'|q£�“šÓ3•ý»1ÏqݰÔ+UBÖü ÇªÉ¿x1»³'w‡6Ç.=:E¥J/¼ Ö$Á‘Û™ñ#� ,U_ÌWcAû Iq“o¯Ë�§r§|†¶pxî|ªÏ£^òö ÑØ«¤?›ö6èd-Íko í•�.›4 C7Ñ�‚ºátäÊå:Î|S~ Ã9/Â1±ö„¶e¼3¯à¹0uxÁ²4õoàAPÅv4ü´89Í´jN¥Øå3'+ãâ·Zh›>Ô‡|ƒ†_6_,ÛËz˕܄i he¯-’k�°l4nU'@ý±ÎHg†?°GT�s »~^ ‰ÑÅ‹XÍýnÀ¡C±æ!µiòüý@Bò¶SÃ*6¥2¦gáP�‘×ï|†ËMÝóêÎñüÍJVѹfðÈÈgÄTï=&M:nam•B´í’ô¼PYÕý_¡¸ëo¾'ΰ·è)ÉÃå¦Au¹iE«&®šŒ¼y“Ä0¢ÒRkŠÉÝ®?íãûiì,Æ}s;éà×ÈÓ��ÃÑõÙéWÈâcTÎ*`t"2HÆá án;Íõumëd#"ìk éñA/\pú¨Ú6ó€�ñ'�B‡CKŽ:¤»92ÞŒ(Üßm0½ì|9–ŒòÐ!u•ã…͈V§)ÉRÄ‹›³Ì}Ï•KþŠr^qŽ�ØÆÃF=ÙÔNF0/ŸÎ/Áÿ‹òˆI€hÌn[ïáÊ·66à0�ã])²FÓ«ÅŸvMqÿ–{DÌn«åtFßxâ‹S>psêP±Â)Zl`ážuPq/s¥ ú"*O_¯5!ªÖ� 6{\QtÐfäÞLlª��¡¥oÜz·h{å]m jk tŸ-"ÔÖoÌß—î{~ò÷XÜFóé_ID½ò?yœ½•®ËÜE\V)S!WCî�——’B‹æ9’—Õ´�¶1+âëýOÝ5�w•š ]=õ0ÑÁ9› ýíþùŠS‚± 4›A•òêÆ¨¾ÀáÄ?9¼9ZcÄä?·ñ’cÆtŠ×Õˆ$­Í·á> DfºÁ>Æs,AAWUéÉDèMÓ¶v ”A‚Cº•_€.ôPÐ6n*Ç$ Ÿôa³Íf@ÝÝ€Lð³ä*±D“ٲݿe¸óã9i<: e·‰¡”íŒ#BrÏ?«¡½&ó‹ÅBgHDÖÌiú´Ü{O~#ð+º™Æ]Öì‡5t‚F‘»�iÚ¡{é'Ñ3ð´¥’Q}4fNZñÃÅ)‰ÿQ5£f>9/X�À¤Õ||H»ÀE{JZy„üWà C;aUür 3‹jñÖ@\Ä®Nƒô—(Ð~N¨Õ ˆA””ënD‚ôÙ#h'é—qþ!fa¿ÕèEئ6É®×�î>‰È¬µq7ðp_¬ XÔÎÿu6Úüß}×Pì‡t q“zgp�Œ¼÷îJË‹KøB¯dŠF^/)‘�—Cˆá=dû¶w`ä¤ "8–È�±Ü.#¬¥@­ìì/‡bË-Ö(º�avˆ<3°áüZŽø ¶Æ²]ùµ‡bfNŒC]âBŽc¾+þùŸnW7P̛n¨”'Txn×ýÈ1PNANŸC3â³\±þLç‚ZGñ-®cc#¦A…™™#ºH:2ñK¹IÁáŸÂpfÈU?=±È”oç8öáßiâ%=¹³Ø€žÊÞç9­Y¬K"ù CÓ|u3,±3 ˜â²ËÒ‹šÛU×Á˜WWwœ¿‡‚Õ.Ûã»n­Íèa¢Î0ÉQ}˜¨î)à Ôý‰D»é ^Eeâã¢[ 7çÐ3¢�ÞÑ“ùReÊö,ÁéiPñZ(‘/¿Jùë—W߆»NG·YIΙOˆìQ ^­ ¯êä2æÝ�WQ˜ÒêÆµ¡O|µì”ÛöýTêðŽð·ÛØC؈)úÓ–K >*böxàQÖ¶ôtœ¥h¥#MçX$ÒÆ"eS®}õ2{VÄÂÇPÃjÇßÂÉÉDCŽÎ�½¦ôŽ�«úé¼ÙØò‡—á.ûú�Á.´v‚–ͩÈf\øªhô)‚ØÁäK™J™ü¢[£<øŸh¦ŠˆØ ÇKlÍ„‘.út  ÏËÚ#$ÿ…Gé¯E|a¹©û;¡d’Ä ]IÄLÜ}í§XÿÀÓ|s /�¸ó­–®)îJ¦b•’Žù#ˆáÙ$N­„‚·¬ˆ é‡Ò×Ì:E"ÞÒöYÏN“¸ b\yuzþË9G!_¡*e{ñK&|þ\Í7ðv! ½í€v°È³îÊ¥•˜?äå ôœÕ* ùjÛS `ËMÕ~¢ïlPÝl¡Œ6õÛ—ø‡•]¹ñýž\(EÉ–s§‡ß¿ÔlXȨö�ÝP�M¨öQt†Å‹¨È^Hßæa º zÅ séöäž+/z¨ÙòÐ_÷› •Å÷¨œyjR iG€2jà¼h«,¹·ÖLÝñYlÏÿæ0£@š[®¤õjÊ·TÑç ÁuÔu¡Pjo6¢uL/I–Ld;IìLÔ©yªHs´õáM l ²UdZ é,¿baäeý¡ß6dÝèƒ+k[7jšUkÚì£ÒÌ>våU3X1¹[UO\²÷>0¡¼ráƒÂ“Jˆ&:Õ++-»ú"E»¢}ŸxÔ¼çó½Jðˆse¨ÿK�réä÷øt�0ø©Jø¤L<·O„„g³ž#Œíâ%Páü�ÉW†ç�óÝ;W…¤®‰š<æY‰OZ«t|pú±.Ô¦`s"‰@Í0RÈ‚÷!ìQ;vmbÛÆ9«Þhƒò€~i¼ö›@ížo<'š„´PšËqõ¯%�‹º�ªU¬¸Crs{ ™ó½¦�’Mð¢xl ðr1ñä†Oà ö«Á˜"˜è¿[å‡ì\û¶#>ÊG�6¥E�xQ °ìæÛ–§€ò¸Dª¿Ã3ejâÅ9Å'3„Ÿêͨãʤf£n™D¥s-)i²ùðÛjtj?QˆŸ­ªÔ{»­!DB®ÞmPGÃnÚ(«WV oZû™¤×"H`ƒÒ)™¹k½³Ö’ú¶Ó•—9:ç:ª›ï¥)­üµÚù�R0K\™¦»g ¹bmø—rbÞÌF1~Óík(¶#�y«a6M™Gäp0@f¹P¯÷/¼] ü$ 6ëYÝD}ª't¼ædfVäHÕ´ÕŒTÿFṕ1“ŒºòêܸŽZ›tõf‚ŸƒÆõŒÿŸŒ{ª®£÷ ´ô�¯^øÞ£?Ø ºüžnN…Li•&Ä™6TÊ—h€ldÀð ÷aÔ{ïFç¸óÆô�å½›oÔY YT9¡‘>að·�ž Æ#ôê-Ö›ƒÈÈÊÀ@‡XD-A‘M j1žIö”üF<…‘ÝÖÿ®M˜À»P£ôö5WˆWšz¹o¡é_¡"q:9HÚW;U‚b„dd{­&`ùôŒš`môKZƒ•´ÉϧmŒjø5wŠHâ Ɉx H9öËþ$§™éxe-¸ g⌺ejZÌ¿§¦�)ä¬>øÇž ZMjˆ‘rw'ZsIˆC—°²¿ÄàWYúW¥rö%/{ [¿å:ºQËù—Í:-´O1-´×\JÈ­ofrXùó6‘¶þK¢ÈZƒ+é/²«‰;bÄ£–nƒ7¾b[¢ÝXS  ÔÖƒÉ |ê '�=+ÌVNšpši—é—º¼·±Fó*ìbÌ=nM½± ãP#´h¼\†O#?ÿÑæÎè••;ŽG¢Ì 4:b+µ,Qʦpê›Ú‡ìvþò”ùWÃa”Æ%/ãc�¬Òç2†Þ¡ÂÕ,#]ýlÙz$^£žâ•.4ñ*ê Nƒâ.ÆB>o¡ª¼Víl-ñË/óÃIΊʀR½L …ÉA `ã:õTÁ� ÀRÖjÀVÝŠ �öÏ¥Ìö2r£Ï\\>þÞœ¦Ê�<»,ÈÖS¥Q ×ú¹9ÏGµ>(šÿ”¡ƒº<�ÇõÌ tGƒèlÒGH˜©f³CçnœìÃ*�~³ALuaã†#`Æ@ÆŒx]Œæx2¬ULWÛJ1gJÊ-œ?´q ž¿¯>j?Vï¹§V-™³W¶\ïfÙáW Ÿ’+ ˜>6*˨-@{ÔØ(“Lê ÕãfJ+sƒ^CË0@°úJÛ»ØÞ9¦ê±¡q#„^l=ÀØùÃ|ª;ƒ ™¾vz³cŠäô0­ÎÉ´¦�j”|>ã‡"éV¸Å©ý]"î×:n¿îûI¼ï&ŠÃ|™Í€ /`S´Ù’ΪÁ€xyo¡<æéÙ¯i|é|ÕV™ N%8پ˛ Ðe»€òRŸñ��¤2)Óæ† ÉÍ™Qy1Ï© ÜZ`A/kˆVr@;ì…efüq_¼Ý$æÚ·Ô gpKӾΠJUÏF�MN= H¶¸:¾Zcx,ÞµO½°,dáù–?pVZ!–Ax¾)·Ú7€ù§ƒH[sRÑ6õšÜÑê,¯pó�·¢cœÞGa Ò…yýÂÍ)¦ÖQlùò2£Õ¥ö"}ebHCk’#§òyɼle-ǰ»õgÈälÃ2«në2~‘¡ˆè\oü�nJ›€MÿÖÖìë½ÛI¬ö‡ñCNj‘'ƒ7Œë>Å�þK’rØK?\Ñ”zÒÁZrEw«˜Áíý|Â]ÊØª±Âõ~z€ᨼœHzÑ•Jç-VˆŽCZddçäÖ8af��Œr»Õû<ß òÒÍ…¨¢dA%˜âœåÌ—-ŸmHÉ3µ"Ÿ1¯Bfs"n§¸Ó\2�Aý?ÒÚ<×QH½ãÀØ>?e*p9¦É¨½ š^jý†z(¸›GŽ `›r¡p8B‹ÈYª5Bp¯šµÃ ÖÔ˜~/a<$|š7 Ú{ä‰õ‘bÖà›º¦¤¶p5®‡í‰Š=Ùr¬‘�†jš–j̹°)3…4ѵ‰Ñ¦ÙªÂÀ*ü[”J/ œ*Òâp¡v%Ú¶ÊÎïÍ´Â0óA.®Þ¸!팒 j–dšy6v†�¥ˆ°WAò°1¥þ¿ü�Jw+ÛVôŒ9”ê%,¼B·¶æAòüÓÝÃ_L ‡ …{–4Ÿ†ÑŒž�cdzÙ½å„Áýp´Ì ²JÁ“;§ O|lmÛÀ ©oÏjeNS"WSL¼uO¦œL2÷‡wT/¿Ã€_Xô 8Ôô­QXó¨N�ŽF½ïÉ@Õ<ƒ}2m=^@$ö 7È=ˆÝDŸ%è£ñ…<ýYªx™6ßîð5Àö®Ïƒ£ëå¯ñé’ý#ú=TnùfÙÚ×Ä™Ï`m÷mXóB#.CB> ‡Bs5¾W¢´÷.Fn»OD×ï<‡I¾0Ð�’E#˜ÙoŤA,µZâñE_�ª½‡’èŽÿ™‰‹ùO¿úˆ‚‡¢“A¼ü��°dG¡ÍŽM„Kqîk›t²ªêÉÆÀêÍ ÷Cü¥A`m7'e Wà®D•9)µÿR÷;Ü·CÂ5¬¥ö«““Œ¤8ÇÄÂHʪ)¢Õ“:uéLö$ÑAtömWZ4£ž¬Eÿ’3# dÑ \ ÿú=‡ ía ¸Ó‹ øŸ€QOnê¶}]r¹œëwÅ RFøf�D!QjÕs+§Uáz¾€±é¨ò@, ¨¹�fx`â¼öί�yé% _«¤Ñu–´6§¬Ç4-_xÛÚ_®Iv‘á5Ö”²w#yùûúÁ’ç Ë"ç§™~y`óS–±Í RÑéFÄÀá�3Lr½e_b6Ú“Ÿœž 9°sÁÉ‚œg7_k•ß|ßl<"¥ â8OèÎãhu%„¥´@Ò'·“DŒ½�e˜Ñ˜ËF‰ù™`hŸ_}‰½�ŸËØßÉ$¦¿ÞitÄ` ØPnžô±Çø¡”/@œ"]H@ø(â°ôåÞÍô‘:cÐe´{žýã–ÏõOÞ ‹†±¡Óº±‚Ô{B �ž ,ó‰R±d! ãÚ ¨¡t¹„·S¬0Z¥ylÛ¶mÛ¶mÛ¶mÛ¶mÛÿ±mŸ¹3Ý=�éÌN*Ùµò¥ª’Ê**}D öò…@g³9rˆWÕ zT²ªÖº=¼1j˜ÜîÊ«jäžÎûÊ)Ÿ5’¶"”�Bz¦9ç~OxgÝË©RàJ-äA<ŠcÌp‚£Û±@Ôç¸oY (þ%í# IÆpáŒþÅz˜Lnºú›5s”Ež±NP¢¤D¦^ÖB•[W}Θ×xg�]æËÍ žä=Wüõâ+l-åúìJs·=ͯLg&! ¡ÀÍ�t±Òd!Ñ�‘€sˆ õ.:‚ÞÝiª/“\Hÿ¬ú€PŽq°>9iG|‘ö7ý�™]ŽˆwSgËý@@L²ÛÛ¥ŒC»š±wÓç´/Æά¸•<†.;"BôÕ6S¶S�jdûR‹åÂs“mÇ9€ÈØg íÀß håߟö’}¢²' ÏBZýU—g¯™‡Æ¡n)Ûç&p¯b<¬ª/¨ ÌzXðŠ"¯µ !ý¬ÏPyÓð¡qîãJU܈#ËNŽtM (kÝjKìDúɘ�¶Ô¬¡\ KÞî/ûªèªX•® þÌ&<´ßУ׉…Mst‘’�4¢ۜÖ}}¡À %ÌîVЍ~òJÉúnOî ¬œOä`~¶…ꦿv� à_Ý«”"чËüjäÛ”KR~¶ñ—Õ+åy\À Á““al¹MÒ•Ú”élo4¬b  xߨ‚¼ýíø+¯#tçU0ƒ›t9D×ä¿×‘¥â ´Úy%£EºwT*%¾€ÚqbïìB!�½˜U»6h‹ÑcÌ9GÊêKâLa*Ý õ:ô&û8[~0~Pña2G™™ÌÓ4d `Š5}õ¾�‚ SchNÓt¶‚«ƒmoa“'¨ÔKyØ¡éjã%Iè1ÊÚœ²g¡ô�’×IJvh ëf(Ѱ8À8#hˆl‚N°yr¾úuRǀ狣fÒ–‘:o3Ž4M�H¦�â‚^¸wR“…O –F [y“M`×OüŽ{ºN–5™o‰\¾›o¨|/';ÂEh�BV¢¯&�ão`‘e€Ç¹Ê‰Vû ¿êwÁ.-)ö¯Lgo]R`9t�@_Š×ÅÓ¿Z�ð 粘9üÐ"æø¿�ž¬‡(Y?)ˆ j‚Ø µå?™ ‰ñceEíCO˜³ CR»6söE²ys�¤KË…¼ÁÞ)´%ÎGæ©@X±"WÛâ�ï¾9ĺ1deWî_�˦{ýÌ®Ìjëä9lµzlh⌟±ùYr£ÂÅâ[ÜC�¶¬gô÷óI÷ÚsÏ  6±w!h.´6üÙÌ0xa›ˆ æþ葪˜.BÆ�P§®9»ûƒãqXɽŸ^ºs2¶0b´¬RT×fÃ2µéŽCä½w¯3¶tnã Ž…~îÿR›­¡ZëPI#¹Û«ù½©Ú4¾>í*DXÔn§æ³@MPdµ‹™%8kx²X@P‹¼”ÑÞðÖ^ÑN¾¸í^%F›îÓ^aF>Õe}1Ê ÷L×Rd"â!Tùno[ä%†óʈa¿¶¡­‡q‘„EÉ]@“u‹z[Údê< é�8µkæv°éà‚|Ø–_ 3Øæ.JÚë>�½¤ûª†Á³�»€©Åï˜÷Ÿ£A€%B…Î$#?ä…K‹éŦü¯¢–3?ÂþeN 2U`Ä–ZüÛϺ¶�‡Aò¨K†ñB†¬ˆ[ÙÕâ xÉåYìïÆ+Ÿcúd¹)]�4r¼ÿÁÛ3ိ¾]3ŒÉ¡iÿK;yã*ÙËž¿Y$D¥ÑŠc ÷x·6%Âà€FkWÜ!ðý‘µ§r°Êß( µ*i¶ëõ”Ñ, Ná©Ã$9Òq;Ø kÂí}ଦ˜ÆýÝõªL0eÜû6J^¼y„ÖŠ}v&œ-XƒõDH ƒ\id'£ân›¸å¯5/…ÕæO¾)¦¨Š.Ñ…£¯ÿŽG‰¢Ú“°ó�ô-ì-]§lASTbP�V øëQù¼P½°m8´,™@�× fI¾hÙp¿_É'Ló¿|&:%Sc7eKcÔÿ4f3Nÿf™Å”s¾Vq—)Á¶O^&‰ ·¢ V‰¼ :Ô¥jiZd7â× ª6w› f `Pjƒý«ñÿ_çò�Î�Wó4��”{ÄäþO|YCK»ÿ;Ÿçêÿ‹úP-Á�í ”Îëæ‘e �ÿ½6r!•áÚ°X~}XL¯QÀÿ¿ÚÐþÓ0‘¥Çž«ùk­Áªçs@óÒ>6«·BRêä¤ô¬ôÝ›W*‚?)f½t¥J2aµFò!÷G:f+¦ü/~Èÿä3<YÑ‚šM Ueâ‚¿(�ýŸøb–6¦"¦ÎÆÿ{= ÂÚ¡i#MÞ‚Ž MËeÅ|´ÙíÀž¤Öx_Dc«©$˜Ó€ÿÇÅÔÙ…ÎÄÐÅð¿ÿÿÞŽ&%8úkíqôd°£ÿ¿ ÿ§af*@ÔÕ1¤é÷G†ŽV=ƒ[?éÔ«ÜôÌ~’øÇ*ÿn­11ËzôÛ|;Ž ’…ƒèúe•¼•ûd0ÒúñÿÎ7óð{c× ¡C¦hÌG i:¼5þO|I1ea€ÿ�™ª¯èÑýM¿Ò¸h©$.€MD‚b %¥nšÙ«˜Æ…Ö¸Cçdc,0˜§›¨{Lý‹vø®“#�“¸‹L�’Ãj]˜2]Ö†g•ƒt¤ñ¥ã·_ éô ¶ünpŽ=¹õ;Ã:xª³uÒ!šª9uMƒèô‡ŠT¯Q¡jãîD”ÜŠ g,#³'Úº´Üqˆw?€É¬ˆQ j’03å|·»XI¤Z÷ä¬÷d{ ˆÞ‘h‹xú¶í‰³w„Ù‘q�dž³YJ$"Îk´m,ˆ¹NU§_îlîkN¤.`Ëáa)TéW-…tySï1’¢½æûâ·ŠªNmAòB@»·$Ì%ñ n„Â3ºbÛé÷ƒ<ª&z­] éØö;`ã¦jØAðîÀK£…†ÍÍÝÑ�ð*‘EUAÅJ Âbƒ©ùeœ*}€2?Cˆe´ü¦“d\‘Œ•8öçõÃ#@ág§bΤàyãâ ‡h2[Ñ~RNnzy/p#ËssKéA³Jéu½”yÉzIÐY›=‰Ý§ßÃE"î­ñ}¤f£cûÔOY£~[/i�ºŠ ÖJ‹B–³7.固y]Ü÷È”�,RÒÍ�òë¢ðA…h9½Ôµnon„ã-]e”÷GɆתnZÃÀ6êg̢ϲ¦>ËÕý-=³Û§ÛÑLKB À‘Æ€ó�œùÑûo®Íút"úæmWý;k*œ²ÔµŸ™öHãVñqÍ^D8KÐÁØWEÊ)Pÿ…¹²4>y)&–ªMgKŠî�nù èÄ…›S`Íc9˜£ Ê ¸2!8 rÎæ€¢ë•´=gÈÝoí]”V‰’S®È�ªeÜ-ì0 /½±½W‹}ç9Ôä[ Ö/Y�‰º?‡©ÁŠÈÛm¢do@ö¦ËGðNñ™™Úéå˜Üõ§éyïa¢>:† ƒ²´ÓvkÄ÷ÁÐÙk¹ÕYaäßV¬LÁýø+Äîê|Îɽ$Ö©¾lk¢ô>ŠM¼|Ú"H8˜Çu'PùÔŒ�du›™¨ËÆ%˜}¦+@+ˆ ¸n|ѱûªöI’r€—c Bd騴J®1\d%RÚ=¢ÉIõ$Oiµ]‡v뀹úÌÕÙž�TÝàXêŽ�sãò›"§™ú0=ê2i •m«€ q±s¥p�eGn<ȘJˆÌEï>WëÍìf­¾ƒ “)Ýqtƒ,þ͉�2r4m"MÜ‹Õ�›šRl%\ „?‘¢ÿœ’<îˆÃˆ–KSÄQO7¤$Õd¹!íß8ú‡*·I|Seð8Nk~aÁRãè*Ü'Kâc@^­øÎ´ǾÆ÷Õ|^«Ÿ5-!�Ú¹R!qæE!~eUùEµÚXÐÆJU%ô‡Ã-ŒÌ>õ&„éXC8±Êv|É5õ¯}Žq�Ú%XÛQ£¡ýÞn©ÎÀf^³Ý\/öä_FÑ�8dæá)œûYø¼¦ñÍuL¨—ÂW} [§¤y*Ú†»ÖÒ‚ßQÿÓ6›8OÏ¥*2]áOc‚ qÜw÷ä‘ÃJ:=ä՛ΒJ°¯Öˆ‰ïÝøõKâ¶) ¢âŸ‰;Ô2 Ä~µ>¸þ½a_ÝŸ>³ûZåùŠ5Y´¶O•SC=|ݬ—‹q.“�lüüŸàÊy€m'LËâþçà"ÿݶŽêÝc«9:®$?î&ܤ{}Ÿî\å:¡ã^[íöF2c’eöv(éO½oa„ ýª= iË߸ڦÅL§ÙÜ<õóDkÀß�u0²‹\;èžùé4¹hÐ+Gì²Dsö}Œ÷0WƒG6B}ÍÍXê~st/ñ¶üÂ_Ï¢b$¹Pݺ‡'›¸êeªû£|ÜJ™ŽÖ¾*m…”¦$$Ü߯ >Ûã=x7^äX{2\`¼¿5k ÿþ7°QÐG$4Øœ*‘K¹™ß³è2°.°í`¼’XN§pó‹ÞÖIˆóÓLƨr÷œJ¸ÔÜmƒEcÆ´c’ü(mÉì@Í9_s&µ˜bݳéý}¿€�äÓÕFx7‚b€¬%Ù5×MJpšI²%»Ê<&^±Búsèê…z 55ÍŽœbéè,Í Æ¤®ÐèfYo·ûÜê_â¢a½r^ës7ÜÛkú¶Äqçz;äwà4þ Q¹‹þ*pË»,/½”?z}—AHv !0YhB‚X]èÀìÑ!qS$àMi‹Ù…Äéãï{ ;�²Í°¶þL”f… RItˆ¶QÕ¬/l“Ü„ˆä4ýóvÒøUB‘Uóž\ cýžãJ¹�øŸ¼oSWrR)÷�Ó æÉ'‘®·ûÜœY<�‰q_ã[$U_K–Y¤ÂVB¨Ì8{nŒ¦•nÖ4Y=Ƹ͗®úóýÙIxÅÞ!øt¾>Ñ@X²qÔ{[b/»µÃ®Žb/– ûè“L=zx`²œIH?Òå¶ ˆ¾7";ÌßJ/ç’ð h?¡]Ðþ ¹_í�}ÃlõAy‘ô›�ÑŠu}zhoh_2A*FÃÁÌɼ6�±ñN2q}Ëþp-«Ôø ïàÌjÍ`UÍ-ÃL\T%\Î.c[RÙím%iJ˜ãŸÛ©h¼TNoÑêÞ ¯0ól•Y”AkÊY2�(B”Hùn�ðxg!r×,å»±ê��i:¾Ãö!oþŸҨ}®?RïzîÀF¢û-²\CÌÑ‚ó¤¢ÇëÜèã¨T*âP¿€_W&ð>;(h>߈‰ØdVÀw�®hÛF°ù8ï¶šk—à–’ƒûOM‹T8«û/ÏX¦-e~wœª?TßåÔYØN�Ï™>\âðO˜ xåFó–Q?<qõfJ¢glîzR�TO�ÂN\^]Ý#½•Õ�²2aÂ%«áv‰þ"Ñd‹ ÅSOØ�Ë’µ‘×ÇNlj ½0vù£s 0\ÿ¥®¯l–4w9컢‹`Z€ëv„Ý|æŠH9Gt°dGA„]0� ½žAlÚýس²íý2ÔäI:µ¦-EqÉ)ìg iO ޳‰^^�N`\iÁzÏÀ£u×}âe,×tq¦‹–,ÿ¾–3¼’…ã5ëÖ úž§´nŽùËNâã3ž¼Ãp°’ªÊýxÊ3vžÈ²Õ_·�;tß–Õ3âɱºA‰A÷R$ "|M”ÿêª9H9n–Š´j$¬lŠ8ܦä¯ÇÝO7÷‡×ÊZ­ Ú)›´nk˜ô<Ÿvº†O™ rÅïðÜ�€Û?’EòÉ}9¿Úi1 ;­†£ÎVÙõ“µì�ù°‘Z�%}‚14=µåލjwÒå7MÙJg@Ñݪ:¢4ø¥Rºòk7±ì“R¹™Ü*™³+šËÞiS5·œÕ#¥KÇ ãà—0çtñ•÷ �¤I»§ mÞ“ënû”E’´Øb&b•AFj3•Å/ÐÃÞ¯òE^ÙÄým…¦gß¶ƒ¦ á¦Û�³Î¹ÎÀuGƒ^��=ú¨þF£#m|$=DåB~’¶nþ�ËÔË=±6a²UÔïUf©Ã÷ö’eÝJéØp¾É.QDf›L½c¨9b<»�ë¥æ�·•ú…œV(¬ :º6†Pof(ZE´ìî÷qDÕ9Y=ÒÑw§ÆNøŒ{<°E¹ ­º ³ö�7ÓÁaV‘Ñ©B%mq"X†IS¾#b?iBéáãǶG¿Yí}‚�:qráý65g¿„F=K­ÄÛ}µüŽ ÕÔÆPHé�–“GæÉ�J»å¹Û?lª;tb›ÿcX!€Çè{çОXÖíf`sjA°ö§½“4\„þÄ3G½®äÆJ¼%ŒnÈðÞÝÉÝVyÙÛ}‰ ÀŒK8:oú�œlÆ�K¿_ù¾Æ,¶%‘ í3ÜÔº.ŠýUŒyÍœ 9{83é:Àƒ#é­Y½Ô‰C¹®ÛÕÏš¨ú~ÉÙ÷¹1�)9ën\E3é‘:eáñlÐÓËCæPoÙªe““n|a%oŸ3UrU¯?‹ï�¥Xåó†;uWA›BÀdÉý!§‘Ðp,ÉëÂÌí—ÈÕíÉP€†_EÕ„ËŽ¹+Øí�€;åg“sæDPì§¶°øÉ“Œ¶/¢§>{2:ŽYi_ºë™1å _p&­Ë’ûuóÞwÆ™ñhÕwÈ�Ɉz—˯=F_µ±çܽE7¨`žÝß5êÖíDð6,¯¡ç­üx‡ iÛÌ%ü+«Æ±Õ‹Ì¼þ/¾–‰±ÈüñbV¹Êîp#h]¦DÏ@> lˆ9]U�|ñ–¡½›˜«�$HéÏød±_¨í*–éé »šš`´"¿É?¦çPã ùJ‰ðË:Ü�¿<ç<Û“ÿޱ©È '(ˆ_YRI¨Î0„\_Ã6{ÌEÌØ`›ç eÂu›ÔyÌ·kv‹°ýbå¾ÅˆAµìã´X,�loä]ûj‚•§^~�äÈL˜ú‹ìþµîb^$AŒwµ,{Ò¢dÝ£¶˜NR¦ÿØsø„ª Ê0™gŸ÷6wùrÃÓS‚î›Ãþ²Î¤fS·]?i`.¢Ë±Ë.©Z h˜u=„Ï3Uχ.ÃtúŠú[ž¨Æ=�q©6ëù\:hïØ5ø¤í_Ãzú·“�7š‰ì¶'jn(/¡Ü³Ó·d�÷ä�K0¤±)¸´!Ä/§V3Æ ×gQL=7�#þÅ¿)!òróË6džÆj“ë Í�P›uÓÏF0ÆX¹ùм Ä€F¹S6YÝ%Aô?C7W�Š­-¸­\õ”�^IM2‡pÙÉoäI2Tq*AÞÙm-QÎjo  �A`p‡š/Š ÕÌÞ® €»HWõ)F#†¬xQ«;Øjò`‡ü ÖùÑá~aEµGü€WÁm §Æ˜9õ6 �¸š$*QC±Dñ³,®RyLüpdnø¦yRÕ¼-¦¾tê<Ú­w†[HA�ÍZ‡mº”4¾^ý[ðÂ9ç™N90BA}ŒŽT6‹¢: Î CAä¹E­]K™/:®¨ïågÏBìì»[Úpå³·xәТbËZ?L)Øä%ý{„4»‘˜fò$¶nûÔòª\µÎtžx²û=èc—qmB`Y TªhùHµ©»ÅøÔÙ�­ó<ñk6ŸŸª¦jÎQ†lsåÀ [�ôÑÝL—PL•X 濆 øò(¬žß4–âsøÓ¢L\Õƒaõ3D¨É �⩽Øçp\8—©Q+>]Ðzª–ýLé õµõ_9R”RПV’V¬Æ 5έ0‡žß5ç "YL©!9?�ºçRÓÖ‘:ÄæSl…B&cîÀsÉoЖá^jy°Ä#\vd7æoªsƒDiPyGàÓÚsNU{tQîG�Íd‹|°ÜUÔ›ÜYã?î ¯ A~¹'óµ:†  eI }ÜÖ’2ô%î…˜‹GºÃR=hR*¾b=ëNõÍ„½­ñ·&#ÎÐØêkYy#§C6˜€‹©…¸„Kƒ×PÍ�4#©D³¹}L6jOr.ÑÑ»Ÿç¡Œ�9‚”›¶ï¯&ø†hWMÞŒtøô ]Ö¾¯0)½ Bt#ÇÆCÃHˆëYŸ ¡:Ó-M}<µè,1Ê�ö0m9‡!šÒaž`á¥ó!ŒÍ‰Ð¬W�ÑÒ©Xò†_àƒg_µ�Ê&ÂÓ ý†£GÒƒM�²‰ ¡„ϾXÀgŒQ>—ãýt‡ú]fÈ`KixD? "õ_^—-R»¬Xý|�Ñ�£%5ÐC›x›ã˜Á R¡‰âº6¥�l“³ó¥&9æ9}- ýËzËÆ¦ÇáÙVÈŒTå†KWMÊLÀGNîMܪ/þFÿmGf1UíG©.$#Ø2ŒŸb"[°ì³ÚÜ!z\¦@M§ÚÕøçÓÛ‘ .mrZø =KŽ…â/ï¸Ùœé Q•S$¡è­ô³\=Ã*]òk“™u„wy€Amêêg„~˜òÑ�©Uï�°YÔZãPL¦_DÂæ‚ŸÐç…ñûÎñhlÿË�vÁjïÉp©Ô³»Xœa'ó…¾P‹T;•n>©«¾-'ïÍè"^MF±ïžÂJ,y[×¶#µÝ¤Ý«*²8�/‰íê i•¥êÛîÌ«ÁvË+šÕºHGtj—ïgRF ‚uƒ oŒÚÓácC“Î’{òó…´TNMÂß|„õ$âʃÓÚ;�Æ—¦òËÎv�Pæ(µ›„Ø×ÿᣫ)…“Äú€u�\®ü=û¶¿þ+±üi•B¡1X¨ ¥T]ëd¢o¹e\Ûãã™ÊÛÕXdÈ4G�ØI“¶ÒŸ”ò%ïý�l2çèƒ[à¸Ü!¥c·œñG '-üïNINÂ_Ø·`x)/kÜCè—[�ÃÔϽsVfZpðZzuà[¢o�½+±DX(³íÙ��ßD ;Rë›î+Õ~cé4èö¨àxCm'®H‰™úϰ¹,AGµd¶Òš}1ÊË¥4aä89øhäÞüE®V™¾`¯P1 Z–›ˆÀIµ«,~°�õ¼ †‡yIé¯.—èx=HŒ–÷°³Ô9Žø®Y¯c ;'~ï€ïßPÜöNHq Òm�¯]_÷ÒŽ_¦û‰Õ¢¤!³{Ø"~d÷ê cVé©ê⌿*a R9X/ô$®Ä%ž”°÷Ú§}3°¹Qœœe?שƒY *àÓQpˆ%ÂÜtÐßJˆ+eæé…£~ãFÉ̯å^�Y±æOŽþ•A^ðݲ„¹*ÞªÎ[VýŠÃ°!ÙOSLìH�éÐ Q|Oøv­ÒNó}5Óz“„ÔŠÏ\®F]ú1¸ûgÛ²àðTPÁjã¬�p†“Òný™®j§ë�ïGBl´¹¦ÌðÇÇ ¿¦Æ¾!Õx‹÷Òî§¤Žª{}Aη ¸lX�¬V»Ôzh§x :â�ÇÔêLdBÛpÂo” dAíJ1þ²Ê�mµw(�¹8™2Á¥¶8ǹÖÑ�¥5MëxLOÅ‘!Ö–ü”­Ä·0`T‹q´Oµ$×­B?Žm&N£7ì¨= IoÁ8öôî¶-*`IS­¯Êáð¸‘QÚ‡ÆÛù/[±ÊþE˜=¥‚±6eŠ2}—®=ÿµ”V¿²å¡ôN%‹äO–9c£‚ͨ­M\ NØ×< `�œÔ{θd¹ineµhã‹.Yz�/ÒïÐ(ÓKl°éc/�kÆ>(ÅCçìßÇò'É. ßî¼GËðôØ?×ãï°¤¥ŠF ½ÖsK–³?^Ϩö¼ò&Þ ˆ5/êw(ú½Y·íø¦_±�jZÛ9yNó"É·_ÓOÇ|¸ˆV`�à]ÃÀr¦ù?z"ÍëkP`ޤ ã„]`Õ ëk0écÊÁeËòo<уÇ�ø»bÜ�œò !Gæ¾KÕgvnh]Ÿøœ¼�&þó¶•7S´»¢ª,æ„4:oÐrqÕ«¾šu$0ðþ=ÈO`ßšó•ΥƓK s–às‡"%ª?[’¶©ßÆÎYA{£JhÅà8˜9 �/j§ é) Ÿß XgË-¶ôþõ�CÎ’| ð,ʽxÆg©)`*PãgÛa1óýŽÔçò�–#¶ ÉšîG¬õÒÓÞEGL× ƒ•œ~›øó.«”°Jyb ™ŒÌç ¡Ê0Ø»§;ÕHö™¦I=´{ö÷A€u¹òÓî×-à«ÌVlhú,€›0êÉ!•Ë�0ê²íA$/ð—`Äé#Hò„IDØ#a±m0–¥¡Í€WéÜÕ¸˜{keÛƒ"le}Ö>B&ïü˜É·åÞUX÷›¿ñÊaµ#Êá`Eg+JIØ6,ú1<¶âƒA<¯sªžU©S›º&ìÈ|îÝœç >£`ºcï#t¥d<”«&TË_ñY¸wbeÙ|LDÑŽJJE#‡¹œUåŒË/†Š_0³Ð„êûæiW?y„GŶ*ö¹Á­2C²Š¬kuº“£—àYÙÛâNï¼*X„¤6C “Y¨OD¢ �gé°­Öò™ô¶­õ r‡¤ãTià^Y–6=r WqF­YA8Vc*œI¿Ña?ð³�y²pã6ÁÝ& …`�Ì„#›ã"#©Ä^8k!q£k14[‡†Ûl¢7¡‚ÂJÍ rõ’@Õ!–ÅÕ¢“Áµ;;^Óê¾Þ3PÏ\qÈ5¾”ÅÀ‘öˆJc•Ϫ0z»¦x̪㓂mÛÞ-D ?\¿ÿ9Õ•• ʵ�æ~ºuç5€ògýFòqë9@*Èj™u]\5ü¥äóïоÉÀ¡¥ˆ;«Î¾›{EC[LJÁ ¹í¸´MDr‡D?vDb’tW5‡‰rXµô›Ê!�—2DcÃ'ߨ°_ƒÝÜß2ä$c2®çH(ô+¢ç,HÔ>cħ¥>vSÇ`qk\œòÈ´\ž«�ƦÉn4 ,h$ð yC™�/íQḃœ4Zòù][A+™Á-OŠ2yg‰­É^§ ¯àgâsZ¦ª±7Ô3Ž•”öÒ[‚Çâ1…ž�b»ÍåV]¢È_¬aÙùØ"ö¬.¿1É­Ùù.SL½kÓɽÓßkG¾Ý2`ñN‡G?N¨‚‚0Ýìà6ô¹C¨Ç½ÓIJóêï$X‹†q33Ô»í*”lÞ�u·½�pæÁ5}H¾¸âóÁŠ0˜·‰ Ù{g·òE¡Eìï®k8;mˆa¹íñ�Ѿ¤ŒFÊɲY!›zšÓ«Áõ/ íi�ü½ƒP¬ÆøÝÓÆáO °¯Ú090³îÛx ïüãN*ìÜë‡ç®B´é ¿,¶°×…Ù…Ûñ©Ö->M¬8N —X¼L1 "x±eùóEžÇAu\ˆçjô¥ì]t‹Ðj Ø>¿õ™09ÍEqC“Š7= :Vúä»®› ûY¬<5ÊJ‘õèÝç&¯í”13@©ônÑZç�¿y„tÒ m D©z²îyàé[–ª‚{ZÚßîç Dèã¬=쉿È:ëØ…gî5Çî?Ï—�¿,0›^l1HéUŒžq�÷¸ë¥1ZW›#†ê‘à¬ªÖ äïJK+| › cBgñ…)#VJVÀÒɦÖ>Š/d¢E\±×V‡îp é ç¯z}qB_–µÎÉD±¢�!1Þé䉢�È¡¬7þ¶$’#„UËÉZ;ýb s í¤yÂ_¯Ã2/*{ÑçBϧF³aþqsØQÈ ð@É•Ø~je/Ân©tú |…ý{Ú¯�×Ä‘‘‘V{±`8Ì`Å Þ ­[‹5mF»Lk‹ Cv£õ?Òßs!oÎO!¤2wÔ¦ ÉÃfXštYÅn+Nµ¸çà²Ðt:AL7 ¢Æ°¼gL¼Æ5+ú¤íôêÐd”¶®lþ¬Ú‡†§ù³Spk‰iε\1/ÖJÔ8 @elChÏ7œOluáHE,ÅHÇÝ£;¨¨‘SÐÚß«¾SsOFIøÅÇ[B-IÀ›'¶òUKY±Y*Æ¢MŒ&sS±íT´`”YF I`{›gö ›°ÞM£„æ Uh 6Ò—¦mž¦ÔPуOW須ȔBÅy\÷P†ç¥­Êq²Ž��.ƒú.xº[Þ�WóDòk¢3|9Ñ0|ß × ^²ð¾ƒ‘ì=VÛûèýIh¯§Öˆ¢æIì‰Ôå/n¾%“¿‰ÐÚk·Î“Fv ô·‡`ÓÅÂÇ­ô…³˜ØYp‚é·Ö’ÆbŒ)5ü®ŸU��6º=Ê�뚸T¢!ý³¹S_Ý phö<¡»•ž¹¡>TžEƒçvõÎlȯôBt�É`ñYÕ;ï2…BŽTtɱ:°€)"5§7 c¸xä� ÄìÚ¦®&,AÕ\Šx}4hi^&…š'•.#„#…¸æˆ6]áwæÐÄrÝ–ÃÛmvpkÚbp9@Ã�¿ånÂýW1€ŸåŒ«V=¼Äí#™ÕšŽïÀwz)‘Ø/÷'ÍBC«c·X‚ Öì=PsË’N]¶´±Ý<ü¿øéûëÒó ò ­F"Fãœð;U_׃ÕTÿœïõ§}o‰”‘‡RDÍI-äÙ–4ˆ±�cÕXßñõš4päc·o±®�Îd·ð§rÍÈ‚^¯Îø J“òvbó<)e�Uh‹�,Oe×kÌÇ~æhû’ºS.À ÃÏt½{SaLÞ äåƒnH.9N´œIÜm·S�y4Né"+ ®d^QJÁ—!¦ß^kÊ#-28Zµø¤û[ÑXŒÃÒÑÍ&ÔvŸ\ÄÚ^lòÛz¹¤™æîŠÇ¦,÷Oœ™õC¯Èr áè�4ö†a[rl¥÷íËÉ«ÈØÓ=L˜?žœãï©�ÅÊm†Xk£ODÉP€DG®¦³r1€Å$£7ö9QJÆTÔO¶ýƧFòqÛHwj¯.hòþrmhn0vÃ6w>PñʾØ> /Ôê�×x Ê"˜4á´m.ד{!ªÙ’÷.üt-¤&ÙRÞÚZ:FUXå£õ‘Æ›X^±ð[ÿíH(+Bè>9DaÎU‘˜¤õö»7o‹Vu�§â¾UÓ–‘±R׃·ºÉ\5Vr{sÆØµ7’á0M~¾� m@ ù§¬£³WœÐra.v §±Ï†Ç,`�'©8ßsâL;Ä]e¥ºÚ¶� ^qˆûÔ¼¥¤7V¡ÓŠ[B¸þç<Žj´Š½”@}ˆ'àZ€ôBM÷™žÐân@tƒ~q2˜�¸P™|»ü*& QFU)‰T±Yã�UeÑ?_"›¨$¸Kë9C­/‹D;nŽãj&Ùç­ Èß4$³?ßó8℟‰l[í–ÀiœóÔURI¢²á+´j&~‚T¯ ?ÐüœáÏ�ch¯sòáY@Qöïžs„ÝÌþN…fÃþvǦÝ~2¥꛼/LÏÇ�¹åøø_æ0Æm�q<¶ëÜf>nIÈì)žÓj3®½*Ê=£/êÊ©ŸB"ÿÉîH ½1‘9›ñªhT‘¿æB‹ oÓg&ж^­ÑJ‡«6úÎr5ø�—E¶ßê"úéÂJ‹Õn’ëý ë�25™ÑCÀçp¥1�”^íƒMçìIS´9Îõž|Z8—#WH4°áOLíÕþÎä�Ê+¹ÞC}"ºÑˆSxª}Û<�¢Á—Á~¹Ì³z/‘WZ÷®šâWn´(îÌȚߨ)Í©lï»L±fåð©ÿËí£½z \O n¶P™áõ÷žÓ‘«ÝŽÄ"¥•û§K©¬MIè€@ÊNÍY/ÿR!»R~[t,Ù>¥lÎ`#æ©Ü:-^­5ý£v< F°þ÷�žsfKÓŽ úýèÿ±Ì‹ÕŒ3/2w©E •¹*…%|tµ äo × *’pA6KîM¬]kïSØø ݶÚng¿x ÀR×$Ð 5‹e·Œi’à€` ×#ý>€›—­³Õ|íBqà¥Q›(·?RaŒ|k(lF¦êÂìEkRK¨aV•Ž‘N‡ÀH~âÐoÜ«‡ZG{ÿdœãv,@üC@~�¿6nÓÿì¸WÙuŠéÿP¼¢Vþ5Aª©ñ¨Ë:�-áØU¯N: $¯8ýM·Ðƒ_�rv¶µXi‰Ïc¨l·®ÔëÀb�9\P# ì¶ß¡e%ªt™|î»ê•km)ûºlpÍg¡4Öâ�t,ëž‘¨R[ž€�HöÄ(':®v (P¨x°_äÝ࢔[lààtû3Hƒ‚MÞ¹Û%Û‚·&�hBð»€nÃD¶šD½& �/É%�vÌâê*ºU ‰G™Œœûxf§$¼¬x+Ý#´ûÂõº#Ž®Jò^¸}Ù¥dè*¦o÷G3¶‚¬.£�h”€s;fþïDÙF2¢[…ºÔbãœë&œY6à`‚õ-H§á¨’*J�„Ñv|° ߨŒFtO l­°ª·„¼Mb6ë=šuQ[üz0jO7ÿ¡XsÁ^‰cw&àÄbŽï÷™¡óíüËHà9év 9yF^hK*º¨u¸ýq"¡Cr1›’°Ñ3Àw‰gÇßÝ£ ö�÷LÛ˜ar†‹²ÆO¢æ«a)p]˜¥Ûcsünkpy+¯™ÿŸÎg»GuÂà'#Žbg´2}醀’Ö([õañ´Ó�CøÆËšp•†á ™WÁÚW9B‘l+ÃúÚ¿‡œ£Î1ÿ¸j�/&ä\š½“pó/mßš5-LÑöNîH«Op­¹�‰”¡>ÙˆýbÖ·¨¼5—¸r®¸!âIW<­�wb#ön£N6xµhúétDê¨e^_ò:Á¯æµÝŒŒÜÉ36¯g´‹›Ìž=éöÌÖTå,”f 8h<•§·‚{+`Ç‘L¤õ@q%± >ÈïB²ð�EäÆê�ÇÄNa¯k]÷ Xe-pMdäHöŒÏš Ö³I®‰ÝêlA´âÂÉ~áo|Ü:‘¿‰ïÈôcÃVHáõ±g O~ZÈÞ�@3£±>FU ÊÝÍ-ãWÈŒfªaÔBGó2¿+Òûd‚Ówï<ƒ°ßö9ÿúÜÙÝþ©/<Jåöy¢:Ü,oŠ­?ýã°ë ü8€ëlÆMº@¼V3ô]'iK擜Ê+¿À2”ã×µ~E¢PŵÖ-HÿyKÙÈ Ìÿ{õ�yuÜB”L�£P“=% U‡bèæW8aW‡Ð’Ô|˜qœ¥Kí€mèÁ•öuûTž1V‘ôŽJÆ~8<N?)Pp.É€vpµUIæS ƒ˜ñËÊÂóžþ¬ys¨¤u.¬o5œ§°O ƒù'8] ­ó‘îkýðžzbÃ2·Gwp�_ÂäT#·é/�H×JDMÕPÉÏ«ÌýE#_B“Œ ;رxó.›2ÐÿÖLϽ­^g©¬u?]Ä :ñlÅu‰‰ÑæÚÉ%�!g]IÓçâ;¡&l˜}§.mú/Žñ¬ ÔßYE³2Æå3 à\̶ô°‹N«>&áal‘�áÕ¹„�]ŸH”O £Zœ�V��l�¦‰Áå¬ý�°�›.&Èææ;Ï4¿ —ÇÄ T6£—e3|>•™áCø*òˆ¤“åƒWŽŸEõ9_/�è×HüLv—`Ë……Ÿêo·h8”ø˜cU¢A´È!ÉvVM!‡Á!«äŸ·7;¢ É ³g´×ŸùØÆQN^ü¶£ó'p7<~Sb· Záà �AÜn 4¬�évhwo=BÛw‰ÂYž/¨gÒK�rí$¥$=ÈÓaãšÓ±è›ØÔÌe}¡ÎL¯Æ³À¨k…Ò¹¯_r^é nGtwòʺPXñð=k¬ÓË÷ßqÎp “¥ÙnNlÔì „n†j"%{ø¦¾�·øŒ¿¥RDtSÅ¡¥N¹í¡7Ð(̬ÅqÔ>Ø8ÅÔme!¶ˆÏƒá/ÅV//âM…UL*pE‚z"� ¨èñªÿK×°Ä"S˜ºFp QLªaøÞŠÐh �¢±Œtó N—Ö�_¸ºñ�ûKÁ§;wýGÆé-«qGÜ5¿Pò Í[ÑßÕ¤o¦Ò�’·¼|I+Y]YöoR>�·™è?ƒâž†ö¡Ó¶£Är§t#þߥË0´$õ5•`ŸÙ#yÛ%‹äN›wjYòÖ�×;§~-­CùæP)èÏ(Á†�ú¼yή¹8ìAX_õ$V9þ€øL.•óïYuÃÉÓ65¯ž‹OXº> u,ÄDõšçšR�Ðï¶`*rf‚B/-²ÞÚçŒèKÔÏòûûÄņÝGhºB�I=;�`¹r¹Lê¼"·ªMþRù»8´ûÛ®–’éî™. <ù½¾ºC±Ñ‡ðÈØŸ©noâòÀý²ì!��d£±Õ•B, óò|~èS§_­¼òÙ%¸‹p®ƒûM¹h»yËO�ä¹µŒ¶á—‚ bxƒª$ þ}ZdIwN?„XæðTJ× ß'a.ôÄ.k™U÷}ûåºÚ0àQ�fÊôœÂ=üõJá9j>ÅÌmÝ÷ °±ø^®¬†lýmF´k˜™Ï]]|”çÑ;’ZeûÔßs9nOF>UìŒÍl {Pƒ…Ç ¾å»ã0œ8MËê“@ë�eÇ3Û5¸>4ßÇÓž ýµ~ôåÿ a-–Û—^KeØ™ºÈ‚\Ôñ–(eŽ©¤*Ê3„mi*‹$ÌAi°Û² Ý“ÂA¡¤1ݳ�´øœGX:MrL“ #kÑøˆ-Lm† õjŸºF„š2ÇlS z^”¯G Äå hsÜ+ç<¸ywÀÎÃà"“·Pmp§8¶‡*ûÜ ÔǘOŒ#—=‘s{¼¼TÂù8GNYÙf9tRM§þZQæ]Ü»Ϧ|44 „Íî“=ÁB§IcUÛdåÁðÄ�uþ<ûoö¦Àpµé Z‚γéVAºYyY<ž~©Y£Ê2«Ùóþ¤·“:ÀõŽãò5€¹ÑhKˆ:‚p1#)ìm¤Ì±Ž”ˆQñ|ý�Hú``¢ºôV•WïâT�_«‰ ¬%Ñצ’ú ‘b¿pÒÍ’*f «œ/!]-µÂ 'Keù¼�6Å XÐæpÝØ÷ÑbQWª.ˆšÌð(/GʳSŒ0ûüèkšâ”ŽÞˆwK´v¨í_žR®63eB½”;©Yš¯Ä‚ý?¡Ë,öÉ ÄŸ˜$½Øo®î‡^(§.„“h¥%dNãê£ÙÑn`ÑYºFðš×œºŸ ¹¥ €P�ò+÷qÌø"ó*Õ`…h®M[w_î)G?¶]훦ç>-µ­;ü"bJ­yöŸfXW'S«YòÜ¿(àÊÖ2b y͈�I^')¯™_U}úî¤�Û¿üòA-¶}&ס1¯Â4ò5M° ±…{Œ�´Šî…X8l†æTY†ç…PŽ‘ý07òÈò { ‰†5ø:êO&JŠ%ïݰwß"\Gs2®ñÍMû*’“ŽbŸg«xÆy=åVöÈÂÛ|n¤^-ŽSèØžÜaЗY[�"Væk¦1WÕ G‘=Âr¹šŽ×£®œ™>׳k‰™’Øã1Y?åžÔÖœq¨¼&?Yuåã‹¿ªOo]ß’MiæÀ§L¯'PÜãóò@¹lþ@®¾›¿IZc’àÔ0ʸbx3ÖTÞÝ&A�f;”߃8v ƒ<E¯Ld¬n+¤gË¿B”ó²*јì­Ȉ`¹ÚéVüQ´XÒaH…"©¦#”b‚ŽuÕNÀº2bÊ ¬=÷j)çA€ñªmMV8ú·‘ ë‚!P6û iÙN…·žyŒtE#Ÿ… ` ëÜ|ZC‚@–i‡Æ‚‰<€¼ÚÇÃê¸ T¤$Z/ç™×3d\ίUqä4m߈m0Í£©rûñåœK7•^1)mš{›)þ²ê²í¼Ã\ÌVK•­üQ«ã¸PSÚ <׉Eœl^Íêàè0yXžž[Š!ÕܶòÝôÂÔÈQeºAq¦|�œÆ¥T˜þ5·Ë8ÀVV„ôxÉqDŽç ï�1¸{I:“´ˆS€é[|‚öÁ%ª-5ô•C0‹–ûHW½UW?8kèO w`¦j¥|’ŠüHËA¤«&¡�ž{ÿ�¤Pz0ÓšÖïéù"ib™Ö#.è.õ>]ÌгiSàr!Ùz#Â�ñ‹w©”ÃÒl~°Zv‡°[µö×D[|q%‡Š@„–·�UX”Ññé,˜4…N [¬Ÿ$ÿiZS`ï Ÿáüå‰39÷ýÞÕ!)­~ìûDÍÕÞÒºé•~²@˜ÙÔÍ!w¤•ú…š¶×ÈÚØ¡ÆÝŠy‹{^,£åAlþu¡|6Ó•íâÉ×\Ìý›%{Rÿþaæbt‚V³®8À<öLzLSˆêülÚâ¾$,h.ÌU?Áœ¶“FÉS„ ^g4 –^¡Š{ΈOBŒÝöœ¬Z«1[»Ò&¨åXpm¸‹âàØ î>4Õn#sóVº�rx`+«ûäxŠ\ðøE'ŠˆÅ=v›7€€´‡:ÆŸß-ªÔk?•W,G�Øã›ªx?´rGç¬Õ¥ârêqC$¯Û$òt íS4Sú~°“וG¶w»}_³2’ÐÕãé¥ †‚¶´'ÇêD­øîAå¬;Ýë# ac]igëd›aMD…ÐòtŒ�mø~L­¢¥àErž2¬À.\�{1š\ÎîœgíÆ ù[;Ý"·2YÓ´L¨ˆÝâq\tPݤ–q—C8çbáL;MßoÕ›U‘ü<¦³�Ö,ÆÚtå7S,¼~±Q¢CGŸz(…] ÅG[q ¬ïË·¿} 2f!ŒäX rÔŠÞR´•ß»êB° ¿BŠß¥³<&üˆHý‡ìíÁm6ÍÞyÌS[�ANä�}‡I^’'Uè¦QxT®O¥ê’‚2–}mº7YK-8³ш$˜¦ÖÐû™ñÖ�à¶ÞSXt“¼"½Y(BÑ^$¥7@ß/±íˆBú·ºvðãvöÈ^©3ÅÃ,ñ!_ÓøÂtÁãyOyÙ…š5æ4oö¥(Æ!Ò¤Ô‡kyœH+ÏQS2pøÑ¿é ¥ª(f(�C–-œºUÃc¦AØÀlUT|PEpêljì}kü YzN9 `þ2Mâµo-5xÂgt…ï4méïÀ׈]aF¸ŒìT=£Ìø7§À®ê#ªU”Bž¯ì>.ù¢X\“~¿Ý¸áé!^‡@»óm€y�Jôdy¹•¾×±:²^gb¢·^šWé…OÍ·;½k¿­Ò“ÁàÎ:W„‡Uay‰QÒ¦)ŸX̾ð´$Gëyw“B,ãÖŠÈnn¤ÕŠ>$»(^ /�Jг¬òeì°úþ¹û×¶R6ÆÒÛT_«åÀæÒwÙµ�¿¶S£ë>¸…i„ôè=2!kï½Ü†è£â¡üp�Ÿž•‰Ú¯éCë¤8ni ‰ÒéÃõŽæZÒ�š¿hªÍaØo} a´×NCI�WÏ«Z[¦ºm@&@> [ÆO��"-¡£l[éÖ 1ÆâÁ„»%õÐzá°£ï¨Zç�‹~5Ô”kÕ,Q'`CÊJv°ñNç—nùkÅENaù{QKgÕí´:s¹˜7\‚5<ùÚž9àQÈ á=§j²To.‚±sSzâÆj„aå§•úÏ š=öíÊO*¬Ì?Qû¹]]Ñ6Ø�þîDñ_¿_mŒ;Å ð�¿!5C‡xL¥×w0{ßÂ"äŠi»zL�·8ÊR~œbT!6aFƒoÀª^vrç:̺xbÄùM½©P¾'Ûg»¹Ó?dE}Ìï¡·RicdÂ_¡èOzN·a¶‰NÑ´Òý†‚‚¢öáþö(0tþT?®Éièbp¾ó›,¦‰žóx=è²`.gYïÅÛW8$j‚ŸW7Q¢‚·×“ráeö_¾çÆo¬Rû�â_æ’67Ñs˜…ù¶­þ§<©ŒÏ–þ 凉lzI¾ìÈî!å*¿Žñðk‹ Óoo) {;Œþêt�1·Èó­Ÿ%t¤7ʰu•㩃XŒ"Ü‘e –±:û_~œž=޶éx±üÇ6ýóüÝC^–)\ÝqJ КQؘjÓ¾ m}ßú ÁÖÎ ò·h hü’‘?pj�ƒÏQ€*¼À+À•(í`&J,ËëA£&óÈÏ8Y~t`ìÎEbYÁc,ç�BJï•WP­N‰Nûë¨ãJ Vhk{¶·ºð•©OóÄγŸÞ¨£@ÍŸV>‡-=]z ¾{² ª×°eeìÚr[ìׄÌÌvŸV[z¹]O ëKXÜ ¯ äÿIlˆ�{UÙ,¤ß˜wÎJÆj"Bg~¢[i2ê¹*5ã ·ÈÛvK}ëôŠ!e Ö:*|¿#47tq§,R ÞÏ\¹N®5JmKæL ¸¥¯‰;Àux¿�éÁÀ¾91R¶)M™£GùŽˆ,m�q9Ð|•ê-£íf€�ÓÐ;þÊFXpÌo}É‹Ü÷6Ÿ¾/Tî»ÊA~d*A�,vÆcê½¢üãéȦ¿‡$g†n†ëÁÞ†ù}ŠeúëHP!|'éÏ—Éì¬a­%+úpμB«çýâìʨFìFÜH=l¡,¬!šÌ ¶!¸õk¼ð"šµrÍY.á>#‡ãWa¦�뎠XtfòáÈoÕ úðŽÿ²K‡?L¥0IÌo G +eéÔÄŒptˆã¡ZÀ½—œ9¡ÒaÜ©þ%·èë"õái�È»³«ØÎ?º4xNÚRL¯ïúތծÿSMþLý€Ge©¾¾[“‘¯»“»'ªö«ö¤ÐŸSÌr©¶<~¹Cb4ë"PzCªÒßêÚçÕ€ôewŠø’þþë>E5uáÐvÓysçŒ_ ݰ ûÐ;¯�åþ—EVÕ!×MÉk�Ðem¤,¤�(hH&œC•TRœí„<&ûr¨Žbš±°ö}{D@Š¢áñ:ˆiTMT‰°DÃcÖÑÏ)Wñp¯=cÞB'�7¦Á„üè�ñø“òÞ;Å Ùl]ý;„Â.ù¶ävƒ^ó!xEÌ!؃ÐÙ�ßœá¤1&k-°L´"ˆGÊûŠñÕ}ÿGÜ|ÎiÙLÆ r¡‰˜°‹ë‰I}ßžnl‘DNúËï�?tPïn<Ý5üßrB´§� Aäá�Ú¸9jãWð™- —Éaîn4ì°¡[;�ß…_¨Ààõq œ.�Sq»4.Ët¤¾€·» ·§nHŸ˜ð†ìƒ·|½ªeèT<¬«Ã+,ˆþjñ ÖÍàØ4êúË�Ù¸_> öŠfüŽüSÀ;eøH®Žø[)(›?lŒˆWw‘)¾®¾H’ å�×Aîà…m—zá^OM3 –!ªI „ðÍ ÍhÚ^—j�EE䓘Ø$–ÑÙmþc¾Xy^ó1‰hk«P–�b޼a½NÎÚ¦Ç^þ0,aþY÷Æ É:´!Rÿ«¡šÇ-p}³ˆå‡‚—Sh¹þe±«Jg)RËÆOÛyбû™`@gíÌ>Ю]By«²AŽ%;h…°Ûº N‡R£Z{—lú%;UGñ�=_nèV´‘nð·‚š(w/œk(–½òU#1Ôö5‹ ¶FOÜùŠfÉ3…w’Lƒ@Ê‘µ@íåÕî^1&üd¤DšÜ¯iì'wcÊ9Yñ™[›ƒ€ŠyîáìšKÜA7mÇ8-Z~K™ã0éÛ[³•Cu½ža ç‹3%ãЪÁc\F¬ÂJ¡¦´2îÖúpô_¥åÆžˆ–9·(RÿM!Þõ>aäÔ_°[©UµBƒã®ÐJå†hyd3ÔpÀ ÛòŽ0WxU‡"IÓîóaY³~�¢>‘¼Ñ Ò,‹Ý†n­E)ê“£1‚´&¿Æ(›wåS¤ËÆ›†rÄ-sÕÇÍ&3ô´Lí^Gzì&ü'v¿M¾.Å—ÐÁ3@ºŠÔ™¡h/ÛªŠ:ǧåT=à Ÿ31Õ^†u'2qæŸE¥K,"ÁÀ�)ˆ\¶áU h`þQ*/)ªkoÒu$W’ð§4�èXÞ´åkPÅá¨3Î`˸ –Š™ »iÁf´'i·�…üM„¶ÈH.M?š= =2eüí¯Û_Çož´öZ `Mw yí?¶«ûR¹;Å¥r¼„Ç-)}^ñE­=o<l!t¤Ží”XÈBwoB6ãyµ§žên<4,ÌšÉmô\+µ`d�â-ì�¡µíé7Òß|ì(Ñ©AËEáU�O¬¸‹ºÊ^Lk9ÉqÊÊgëD‘ã œr¤’'Q8 ž£$‰íîAþG¡¢qκÜ5ÙI†ú,ímçóÃ-ñ†@øûÖÒe©ŸÁ�a ¤Ë8¶«JÖŠw`*lUs{#ÌŽ^+„ƒ)û‚P¥q�šPB¯Ô~µ�.¹¡Vð$€ã1-fÁ ¹öJËlî°»µìÎÈ%¯xÂnR’žÎ A2õXñÎÆÉs*ó'S¥šâÚ|¸_úò ·ñ²zO;kCØß $³Ê'6dÊ+ ʼՀӨ Ó€;ʸšë5¿´ |tAK'wVJˆÎòÂ×÷ÏAöî=Õì O©`Š£€ ¼îÂçÑöz×ê’W@™Žÿ‘iXΔʳ —[)ö �Ÿkô•_ÔŒEˆ›Ô…9Ó?Šn§ÿK¹\»')®Ì4&·ºn�À(AÜeP¾Kù«_åu’ÛdˆáógX|/,ÇŒó\øpÕÔºÿZ~{‹*˜¬P–t(7â0ðI0&}Ø9Ÿˆt&OH/³þ¶r&'Wé¾\ƒ¿ZŽfý½äg°[¡æÀæGŠ…VòãÌC‚{šz�ñ—¶ª­ÔÜÚê‹”5ŸBqH¤` ¸Ù� ÏÎGZîûMùušÀ–$pœ�kŸ™'¤£ŒÁÜÿy®Ò»Ë÷?GöÿƒÓp¿:ò¡Êx.VA\v•QbÐF1€ñ�èÔòáâÏŸd�?‰>¬l@É�& Ùý¨‹jo ù°Â>H”Í�96%;BÉca5ˆLÁ Ü9Ô�ßž=qgcÀ©5§VdÃjÚ¾Ìa Bs¼ïÅ.ã öÙJ“‡÷Z{V?Fâ½*¿gtŸn�/�¢ÂcV»½˜0xa�âšwÍü>JÓ¾Å2û<Ѻ~j‡‚cQ ' ®˜P¥•K!sìÝ/��ÇÂ!OÐõ›gqNíõürùCìàw/¦ÂÏ_§ùâNß _ëáÿ\†ª‡&Xâp|xÅÓhdu d;ÿÎ֦ͷ v-l¢`â{PO7”í­®}¦ˆT&·ü³s>³�ñ¸d|ÌLÏ)Agýä _Äç�\¹�›£’ë38ý¯Wá°tDÁDTÍ¥µjpÒ¬tu/k`ÓO`=úZC™¹Â_S×FD§ÕêQºðݯUDÎa¼¸ï_멪â![Z„¦Bâ¯q|,\”)r|æ*Å0Í›•ðï Ç»š„B Ȝڭ ©q7scÑ•·í\F?´bÊè�3® ý ²¶%õ»Õ7ò(’-7‹QåiÖQ+héX¾ªÑ¾ Á n&̆ñt¼Lìœi´Z¾P*ã£�‡“ªeéP•‚Û8Î ¢ólP@eŽe_´Öš€ŸUpQ¡y>~§Õ*¾•Lе“Èc4ð-wÈdDY&@”d7¡1#ßò?UeݳŒuž(ÌÍpoã4V�¿Y¼":áC‰Æo– ühU°} ý±£Â4Xw€kõ€1‘(~‡�3v’ZïHnÈgái šÔW�B{E”ÑnD¿_½^v¾“b«ƒ$/¿ª±+Tw˜xØKÚ;Qóz¦€¦mÀ�Ú¢��S⪋îý¸œæe}ŽY—r: >ÏÂæe,=$ŒÜÉ©rݧ. A}~˜ÿ À†C k ΰâÁû:c-O£þ­¦î4ƒ±-aÉ%ÓÁÿkî&:Sá �ÊÀw`¹©Ñ¯at+{ æÌY ÛvŒ‘üõ=AŒ ¹$NxQUÑ0�Óµ$MOçÈ &wÀrⲫCË=èÐøƒeBÓ‘÷‹JËQ§Òr ìUÌ@+h�„*ä·®|ÃS#ƒÕÊܘè•q]ï^YÚÙ/¢ÑÔTpÚᨇÊ}} !¥ÕƒÙ©k�;;¹vM;޳>�àÁ;P¿•­I£ôO�A«b×3vzõ_ØBRUÐn`K•O3ây »Á—¡™'òòöŒÓ`Dß âÒ_©q<*qðî&dG Éa BÉ<'mx(kwÔ³›9¹§QÈœ¨�†ÇAñ€Cànè|²È¿šè_›É^*uáSPo.e w�AµRíJ ŒŸ8n‘;ÌNÂö@ri¬®è˜(42¿y ÆdÁWÒUk qÈÁ)?£¾«è*ÓÎø±ëp­yi‰f¨Öžîõ:$çØúµá5æ_3yn!ì2ÊÉûVijFTØ6#¡¢€«û Mv�à‘œI*ˆùð'r fø«T‹·Pb®öžt@pµ ûr%™ç$2‹Udü«kÔFßãÌ¡ª«Z€B'ÆÑ*�9ù …r’ù½æ4è q(ÈáÍzµwéI áØë“g°Ú1£bb´eýK€Æq†o4ý:(—6BEhÖŠÅr�O­Ôhíé³A¬Éñù{  dÞl…ï.È1˜’Hdrð¡/Êt¤Ã£á/ç?q�nF—éïJiÄbÝ)aÍñ‚q]ów²êró ¡,æ�_Æ¥��–ë�<ôœVu‡3„�ÄL%O/{váVw¡l2’7:·só.Ý©jÒÓš&ý¡„ÞN3¯Æ³ã¬þµÛ_æã&/°°FPÙ‰ØeÐ"J%ü„Ëõ‹8éÉrÚÍ,nû-í(q±¡ ==b:…éD&j§àøx=k€´Ý$ÃS¾ý^›¨M=™[]æR�˜ZPžS7 �Íéß`˜ö )ŧ¬9³RäE”?ˆôMôX”bˆnÚÞ�ÀÁ)¼štk½4é<§T™Atî#òɪšF¦ç˜JrZ«Íï±EaßP©‹±3­�×µ©ÕÅ8ˆ‰äþûƒœõL—Ün‡QºÐóhvó`6ÈAb7¸üÄ&?)œ‰ˆŒ ˜MïOrr÷P ž¹ÀŠœ–iƒ„w#x_Ì©¼[ÖÜü½¸tÙA�§ëˆQÓÍA �HÕ’¸ÛWùzª€@ûx‚k‡Vì–§A>–"6è4ìÂv­d�ËrzþvÐÞNÍÞ%iM¸±Èô* ŸdÖ#4L,Qˆ–¥ãSâ‚’ÜJĪÒÈe\Ë�™µ9EÇã,LúV‰éà•RÞÊòµÊ¸l´9“×Hx”:½£¹IžÁPm�4vóXÓqKk6€£Äfè¨srŽuXѳǃjþþþ®Ö�€îÉ•aYCˆ9êá#K5¹Ï4£'ò4ÎPm*éǶ7c¼ŒîÉy²‹vñA3&aA™¨ã9Îô(ñþA‹ÁÀ›�þ>m„ˆ€k—’0)->îĵ÷í6©gäðT—ÕÀ#Ü¡¬.p»"yìAHI°h}Ö†o8¥èÿ°¨ýм»å÷ª+AO1nê=„ÅÛe�ÖîÈñé¦!Ë›¾çuüÉòJm� záƒ�Žh¤¿…VæEò ̓V!2Qé>Ö!Þÿ¼ôÕ-¿¿¢Z6e¶üë“P´›?$Q¸ŠØ=NlØÃ~Öý–Åá8x)…~®½ÓWî7íÃó!‡ xS¤ñ UYœ¾%w0#'¯lbnS¢ÁŒ"öÕ>C€±²Ïòó¸’�nÖñãÈ[Mæq8Unß¼ç\ÛÝ~ÒòÔ$€4%",�€ Å ®,wý_8ñi"l˜tA΋°StûMdФåaß’© Éaãæ×;’¬i¹QQF²A;ä!ÿÅ{ãÿ DÎ�“}ϳc�Õì˱êÅZ#oðC˜ƒø*Âbš[€Ršu!P`Ù­Žú}M•°BE›÷‰§%¸Ñ¥tÓ4ó�לaдx¸¿ƒRˆÿà3ÍAµqpÉõ&;ÔÖ!’ÛIgü„û*êq(½ä¸êÔ¦®u¢¯×&Z@ç Ñ„ßs'ìr«oÔb#�þè³>! |¬:ãVDY¸Ï,/ûnEÿ*‚vQ%ƒŒ1ôÿèsž å/ÂJxBú_¯V±áûTéÁ³àµÖ£ÓDÄÉŒáýìåÞj}-¬3ìè÷ æ(KÊ /&Q"Œf"“ÄÁKîº.k+"Ř7@}IÄ‘šTéÔ%*y«k†PÀ Óu,h…èќʂhŽ©ÛYodTƒRíùS9ˆ!Ÿ™ag*K¿ç:ò¼®3xͬMíÃzGHެDç«)ÿsø¦òÂ�¤lFl@Ê4®Aýsäý},¸X|[¬i›ÛÌʦ)Ì–^ªŒ¾‚ýœ¥øý޲hOž3¾z$�ÎwÖåRú8ÌÕ8*÷˜«sÑvì¶€h·º@2ÐŒÈ&8‰˜ñ ?q¤%|ENþ‡!$n©z‹©fpÑ»÷wKâW¿ŠƒëYE“dˆÚÓ^_O#°¥oã�0²Ô¶ <6‰y¥è­ðëÍ D¾á ïGµ` åòÖxkd"³À»ƒZ :ˆLÛŸÄÊŒ¾ëY%–ã¬$¨T�†iÃLA¼†½îÀ+ý�2&ßÝ–à-ÿ]… sú€p»Áè)‡ŽæMc m7ù�ùáú}˜eŠÅ‹Xt2:õçAÕØ¼¹�§g�á§ý±ü9Lí�IަHƒ]NL©ØÝÆHÐ�DsØÿ’·EJÈ0ö}kŒ,aÕ~jØáv"°|dÝwÙU]!åa•·Æ/lçI!{oŠOS]Ûš±œƒmJÈp·Q=Nšg‹o ßß·«�˱îÚ5–¹HÏSÌ?8:71’Üûi;ÂÊ€�1¥œ¯¹â ±Ö¬)8ð•�ù£Šå &r·1 ¾KÃ"ÆsÍÅKsŽG08—Ì q±Ð™iõZ'ó:ä„@.FÅ3éÔeÆ%Ör¥51ikc‚F˜ˆMòÔŒj·-cú:ÇþúZZõk{h¼ã¡–7õQ¾G3AëŒ'ºF9ýÏ�’jǾòš†lø›e%²@û*ˆ­qy¯!9²í:T›XÞ™M0&)�MìMñnˆÁ�7�Û¨ÝRÊ�¿É’*‚ÓZlû£ÝÂ’&µÛé=ºú_M"«Ì4D;#pt‘ '¼b�[$’«®Ã(î×(ÒªïU´ˆcL+jøÅb$mc6(zͺ7¨á¾&w©Ž;™ˆDÞâh1Š2²T¢E{§ÁÁN®=¸ä‚¬’ÉfÖ¼˜"µ| —ØîÕãú•V}a,gó3·õÀ¿ÇI VšÕUª÷W!`–ž—UUÉ¢ É5Ä]ÈÔ [„‘´AHÔÆ@pN;•×h*@NöÀÝ"ÇNÚ~µßh;ÿ[Qd`€R“zÏ4WÒ-ÞÌJÈ�]Don(r Sýy#`G±òÖ¬M1"Ô“ÊÍ·b½Ýg‹lëm¶ÚÜr¾$×€.——vŸ~úýW¸³Õè�‘FAtÇñ*€—½^kþCå~ïK®_…åpÂPló.2 ë/AäÂgÄbÇ‚5Èæ’!8Ù±çÔ$ÓWUÎ_FÕ4ÙE†¿&Õn†ÄØ«=òW‚ÑŽÏ¡?ÔMB.g |4²ØN±­9Ãk´1àŸl1\²ÚÖ”b,/¹AºX×}OÞ¡M*ªaB÷‚ú vòH–b%?M+\Ç^Ì›ÁfÓ^ÉÈ–Ó6Î.$ùä ÂÏ÷…ƒ,2W‹ýô[*—4Ë¥§d»ª•Àå�’”OÄ^:ï"4¿`ªÇâ±:¦yЂ/ªÒž%Èsm,:JM(_TššŠv´õÒ 0ÉNe—ú˜Tz­ÅV~PÖwvÃÄ£‰Ü {�«œºÊ#š^—ioÊŠÿ¶¬µÛEˆ·79ë„j̶4ÄÂ÷]¢ œ@5‘µè¦-e?Ùƒ|i*ÈäL.=ØàvíœÖ™ÖUC/˜²2� SvÕ|rñYu>F6CævAðMò§˜Ç!»DêOÃT‘µL,aS5—׆hƒ¶Œ¶& ,ŸóÏ}ó¡þÅf®?~$w‡×öë´“&é�âù¸�“ó�Žå€M:Äw±ó¾:x;.¾+î-¡ŸCãGý.V”\hàY«7Ñiô„F…òqi§øí–Pz��F´¼è´å·Ü)H®zdì?Ú£3ÉGâåÎF,øÒLqŽ~;v®N¹c Ÿ²ûÁÁ©[MhÄ—ïŽ U|ä;¿°âU*]Í‚�ÊÑ‘/aÙP­)˜r8i{…=g‡dKduM=BØæŸ2¯‡�t‚µ¤�ºÇðçH3CB#NC%–�,vnˆþýú|ÝÕè»Ü 4|/†"VE:;ø7[íƒAgt-( õû­öÚÓ€îíÆ:�¾&õo/R?ézÝ·ù»êXÈ©Û[¼˜dŒÅ*­À�´ci~ÀOÙ9·i »íiÄ2XöC–ÈÕ÷‹½Ì2ÙËÆæþ „+2X7rU�0ûñkÈ w‡Ð/Vø]HþÁ&Â÷/ G¥F~ }VTà0¶_3wàR¹s¬K(²bíp?—zýÛ,ÇLúLDC‘Cq—ª�P�b€,à"†úrlήD;šñba©´Ò¼îøÆŒ6ÏwuSê_Í›™Ï¹G¾(nºªbíHh‡£y3KÛH[?²³]Oôüt׎’¶-ÓžL¤J{$³÷ý=è3¨‹#’þñìø|Ð{÷aW²Ù¸0ñh(‰¬¤Cþ0ª¸±Q’ܳ!¸Pßêü š­nUÃú\×ýœédú)µ-íö�Z�‘tB·[€¿ŒsãÕ•bN§ ¶£—Z¶¡=OŸ4Ò·sÊÚžu§a7–ÇËrïp†„#¿AøÁSŸl@Uéx>/-Ñ–¡Þ–ˆ&€(œp$Ryß,á,ºÒʇ4ñþKŒ¬×HŒäÔ¿¥ß“ùbÂ>ð¾›&á{.Þs]¾‘ºòÿ‡=x”e˜mMн'?f'¯ ì¯c”¸!…¬YÞ—éõPYLóîFb¥óÓ°º†ì†hü¾�§Ï{¨"sRwÔë>ð�B}ÉkçªBîߺñ;ÝŠjK‘�‚ºÎÇY 5-¿Š^¦EÍœ ²Û–Ád ÇÚ�…˧pÅ^a¤g3tÂðĈ``åƒßÁ¤•B_•üà>žùµãá¥W¬ñó6BdYð}:ZïšIV^ËEìßét²2šîðŽÙâG¨¢™?Ì}[üPll߃‡˜ü6‡ç�w¿Ï¡|éžt <¨ØwÕ>Ð<€ñtã$øÕNñ]X«C;›¬Ÿ Ú-üj¿±°X­Wí*p®#X�ß«×ÑžrOÓ÷ÛŽ¿=fÀm¶l.¹ÿËÖ²Èç[·‰Ó7šzWÓz£¸Œ&'J kY|ë<(Îp«û©ûѤ:sö_‹+Æ”ÌÎi¡ÁßÀ#uËE!®ú¢;ãWd3˜|ÜIÍ¢­¥ýÇÞ]iv #:ÚbÛí‹>}‹øÖ+ 7-vVÈ�õŸç“$R©Î åÖ·‰­�! ôª'ÔÖ½xË‹²ÆgWT�Ý ~nRaP ™c vL“*)Rmë5*—_¬ÍTuD¨™@XÌ4¦â+ê-ú\MIß¾ Ž½ê†Ü6°2gþMì-”�A$‡ÅVp‰š÷·xæ>~ø1íg6óÕN*{‚jÈŠÂ × ô?Q-�×Uìñ¦‡ý#94ô{ÖyÄ Ü³Ÿê9Ö{�ñi #¼w»füv€âö:?QÅÌ …|FîdGq°Æ ¬ëß*}SÎØN�šåU ††ãH™Gió"ÕȤÔ­xzá™j4‘…Ö¼üôˆ²²züv®£úË¿Tÿ<û˜Õø¦BEôâžÁÇ÷…5'¦~15¥õ– ÕTÿ,¡ ™·R1ÝÓV=ñªqäR3oÕžÍpc´<· ‘«ãG±R��üÊšÓö,RöÉÐjx —©ÿ Ô© •¼ý"§ ׺:FzU÷2}=¶· -.nüî�ʰ‘ Þ{ïñy†«ëÉŠjr"§*±$Œ®ù, cš 5Bea»žpÐÕŽZë¦!¬ø»<·ïÎ&Çâi&Úý©YÒ|štžÞ<¼ ¾¾ZnæÆ±ÿy*æHØ­«ø7ZX9&d˜‡' ¢�©_�o}¤³8§”3Ä[} µFîR¾v¯ŸBì~SèD!ŸcŸ¢%�à5‹¬/Y5?{œŽU¡žB˜uóØOªVÆX¡iýƒüÙñox­�×´D ÝøÏÁ/-[�ضTÅ킽"ÌÔ; ÆÂä­±Íp{ÃÎ"Ö®ëÄLÖ>•Î}`ÿ÷6@l@™—É&À\Oµkæ:¡[Ò¸ú×Y^ôEGÁ¬…ö;¯õù¸!—{s¨ô�üX<ÝAÙ\ë<�zæÝá•‹]~OèŒyA§N‹>}6ækú¤o…àí—¸’ú"ΨŽ)©ó9êA²�ø »?¼$§ D\ç0d>?Tk÷ý·3½M`MF*K\Hûõcã ÑZ–dÖf¼¡Ó2¡Ží¯ð¨Ìj-+aÖ ñYÏ¡Î6ùÔ.Ô&JÀoÿ0M@@ït‡Ã†ïbŒ(j.WÁÒ³R˜}�A0íÔPž��_ŽW8EU²¸2Fè׋ئÊ �ñ·ÿk~ðÜŽù…;RÓ¸¡�#„{¬¹êEÇHç_Z�;ÑJúåJ…ä øEñ£J¾ýÖ þ+ï1ývncec�Ä—cH¾Pس1Oöx“AØz¡<œP€ŒÅ¥j¹»]\3vîˆV+Vè^u°ÏÙíZ]zjäü`½—êÚqUì>áƒà›ñ“uµ¢ëì냢ó´Kÿ°^féóvqe–$&O´‚Õº¾£þN|…R=5¾æv ßKòL—#ñåîZÄØl†¯úöBçèüéÔèîŸí$ èâ·ø³­b†*Ð 5 ù6~^™îôw2#&Dõè^vÓpe¥µŒI%½ÒDICó¾÷ó›ζc�È4•]aþжlT¾ërÇj£š�å˜oÆ Ýd{Tø rdëŹï­ªáp73ß’Ø™UqË"ó|=Á´b•‰ ÿ?%éE)ã6û¬6ºÛ".^ò÷ܺ åÕ£häBäñ³‰Ý ^F¾;IwuÉÔÑÆDï“oߥšHqAŽhˆÎ7œí'¾²­J0¥f¾ŸÉ�ùLÚE1H+±ŠÌ‹)¿Â¿Ý\‰°Y½ Œúü³„M•{»“Ðfô@×¢ŒÅI%Àz%~Å a#rÄ\0-öVžÙt‚ÕìÓ.Û€íY¨2C³ÆüÐ2±nÐÁªðõ‰È}­Þ:ñ.ˆíºç¬‡+ãìÎ_Šéú",Y¾ÂÛZÁüâ …t™œò.Ôu yÔÁ6Qôœ,ÇøÛø=ŠùwºJ§jÙIi¨µx0íav�T}ꎻ{§U8n9AÓ€ô…5/ˆnnÏÜ0„7ÑãZÂèéK§7¥¸½"Èåöy[¢n24‘›áÞ�ì@Ötê‘gS'¥ÿŽôÆÉ¨¾%Ï9¶µ¾Õ ÜÂrãEÑÚŠ¸‰ÃήE–'«e1€D¹¬ g! ô›Znž1OhdXÍð³ÇWž›ËÃÛ,Ya88<õa˜9»÷ þ&0˜#Õ¿vŽ¿@SÔà/zl*¦2ÝÜÇ`w^<¼çþ½3þ,Ã>Ïæî6em;g,FFÝÂÅ@ÊáÑ8YÕþˆKÃÖú]NÕô`á O¹t®ë­ìÎøˆª«Dú&'ËO¯¾ãÖnÖF$®@üèbϨ˰�Ò£$=IíŠa(Rq¬*ûѳúS­'p�¥ ?mWÈ€ò“tÝ>#`Ÿ!½·h°V§ÎåA<´$�lC`Þ冂57jö¢ï†…ÌøîÜ…r ùƒ}Ö3 ’R}D-¾Ñ£@9žøÄ§3SdLÞ³”‡§YKÃùöŽ)b4Ìâ )ó[«JQÖÌ1s9¡ýÞº�:Ú[%‹ÚÞÄî fûµ„g JJ-J蔡½,~çíoO0Î-EÉ3ºÚìîþ\ û3]‰³p´ÄR/ÅÝ–ýq6>(޼J %y´Í{€·Ëqàæ TÅj­çRlÂMâ½¥“a”Û jDg�–QÅP“) çJ}#EM›³nOÆëm�ˆî”ui¨áÛšÌ6Ë‹RwŒŠ¡�gÙcï&<�žš,–Ínám�‰÷&ÒW¡zÀ$‰ŠBv¤ûšWhÈ6ß\N–uš]ÒÌOU6×p\·½>ÃX7*¬5ìJ4ò\ŽÀÄ�<Ê ÈþØtÅwËjƒòø^cëÍG¤ØÏ%A‡”z5LuZ:±VD¾æÕ§qû:…³¯»#µ2žêGvᇠzõ*mJäøÍà Ö/=aŽt¾]…Ç£ÈXf Ø�Æ¢s†RM¿Q‘­Óz•]w‚Ù˜ +7ÂàÂM)žkt£Ñé[9Tßov7§Œš.¸�j}³‹(£&ÖÄÄ OŒž£Œæ¥³ ª”«j9u*=ª¼„Ðrknóµã®›Ë2 p™`EKÙ?è-ÀUÑ�"f¥ûßZ–z=Lu/ˆH½âœ¶@ÇUÏ�\AFÏ÷’°IšL˜°êÂU’g«ö¢ÍÇ­ⱚ½B–[4G+S¦|zÌd+"牳x6׺Qkü‘ ],«+(�^C¡ n�fËòÇ*È(Ëd)‚‹3(ê«°Ï_ü®Åszˆzï`X茧¹·öb‚µ“7.¹3ƽû¥éš,{üÃÄ_¿°A2è î1)/œØFyAÁHª­ 4ûN½‡]´ ¾Iu€¶>6EÁÏrõo�òàü€µžz兩t;­çÕ×Ý5¬}Ü !7cÿ{ÃÎj?Oážä‡·O#èfÓó Å9§vØàáGÊ“ …–d©ô&‹èæ‹ÆžcÀd†'²Í`2 ³•Á쭎ɲҔþ¸ë`ÐJ‹-ê¦Ì:]ë ·ÂŒ{RdÀ^L°$t( [@ ¬˜Ô ãáù\ëÖ€Óa‘|ýB«vÂÝYGaø¾ä/Ô}ÈoÝ)áÓð`ÉÅ4Ac#­l~áÜo-lý—ZˆqÜÃר®b‘,ÍÃÍê±*}‰ëÿØÓ¦€íR´ŒTKMqÁ?¹˜Å¹¢ÂéÉ—Hä“E¢Ó› ú8œ‹¸Ä/0óºéD ž½%úö¦åšà70ŸyðøÙb*]¤…y)—y 5ùKœ°_‡|Œ.gn C±aœ"¡½ä³tßþ"?ˆPî c˜}ëÑyUš Æû° çþ{ã—GÚuº/1 Ù_Ãõxl¼xeˆ, pôš1æN�x=¸¡,ð ŠÚü›OùWñl¶¬¦µoc�})d (¹ùm½Æ›ÄocK‘¶ü}ɶ�æªTÂZåúŽ/’“j"NS¦áÁ¹Š~Ø®N�|$aí!%$â2SÐϨÜÞ¯#ÚZŸ0 vÓhh%gl°n®�<óù¬ú:HÚËÔ€aFçé0ñÀç§ÂH-x>,‡Ã ‘6’r˜zκ·A>âéÁì,êÉ2†­ux†‹`ÍàqnÊ/§+Y¨Þ¥¹I-1 ßô¿�U³mùT}#§�_¨+¿'‰4Ýéq‘Q#c€RXD¢U(,ÿóYÄl „·90k÷RþEž¾\ao¥wê°A9ò„n°\û{•IŸÀœâ –œ, ¤ŸžDâ¦ÊøCNÿÖLÖ`EMŒi…Ú¢x‰ø‘S²±5 ³¢PQ¤ôÑùðQ¨7ÎY([6ï~ÓL/¡�P!¿t Xd�ÅJ/þ[ðÞí‡4ü5Ò>SÀ”æ8þB˜]ù³ß$M†ÄyÛ^Úö�²äÑs[;.Œ‹eFk]΃éCF<мlêç�fËQãð^ AÖUVrÜ—Ž Ä;öi�$;”+f’â¬1x­ê0LÄVyâÙÎãª)؇pà–5Âg#ÓÒêxíY›¯'¤RIžÖ™„zúú“àøìÁÅÑ×Ì™b;½@Ò£µ=öCÝ_¡åópרĆ:R'Ú\[-¬Ä$È {(‹ *Bî÷¸dã…'eìUŒp6`nÙ‡—`^€½mZÚ�ñ ×-Iæ*�——ÿE9òˆõ3g®šòK\7œÌÕßOJ¶¤X"îÖ¼}:•ÉØÊ ¢¹ÒújF3e™0N˜£qŒ„ ºvª«-{n� ê€úÄxä¼sŸcÚˆÕ›ú9#8šÚw©DÆë"kÉ—VŒiÌb“±Ö“9÷€ˆ #“©žX£Ï ‡¸ÿ%M²„ÑŒŽ*<[¢šùžøÅÙ¥ìãPø‚is¤Ö}OõyéL“ø�µ­gW®`r ¬¶ÈÙ“‚®D¸ …ëcʘ÷ÅñssÁÌ—‘Áø�6ë–7f Ì«Ýò›U}S Ê�'W Y±ÈVm¦\'Û@­ßà¸Sm]‡ðqrVÕ JÜ0!½)Üጮ'ÁÇý蔸Q–Ëil¦¥lçB@~½¹2<î[(Á´åñ‚…Jüœf/ÆO"xÅsbE¡ÑŒùE¾˜yn€{“EÚŸçÎav�Zó;Èo©€«Å/›Q´ý)ž+Oî›»jæ.#‰¦âÞ1H�ö› µX94*Ãj'z²¦%jÒŽAZXÓ; ”Q:z¶ Ú¦Šõ?áÖï�¼&<·DðQÿÂgùos 쬻•·×ž*<¶!°�)¥Â¬z¸B»ò2ŽlžÕþ íx†OHFô�s›ß讋‡.û©UÚêƒçýžÏ÷ªØ{A×/$»“ú¾[eþz·ÂÞÙ™¾ÄH:K™ iðUPƒñÔŽõü´îmaÚù–@ BJs×öe~PsèŒQN'¢)?Ž µc¥¼Õ3\ÜB­ïnf׿ÞC©öɉ€¨ìŠ('_ÊkÏ€ÉõÅß x$]�6~)Œˆ% Ñ òð±ŒF4Œ6Yâ}p“tÛƒK _1„ñ½íÕg4#ýær{ÂÜ_�„�ŸRbü4K’L Ï‚mÙ#衯ª: ™÷§•o®‹*‚hI…Ì"­cðÆWµ×Ô¨†`Ïb1KøÍ ⃕ýI YÇ‘i`Ìa,z9k1Ax[ÜQ¢®0á<ãëϾ‰ 4È�–‘Këº^òÝBN~—·÷;÷“ûËae‰‘Ö1×5ýíoPŒm­©˜¿Æõ£‘kCßsçÀÍ& y@áPß|!OpY˜Žo'µ`=8Öz$ÇiZZŸŽ$Ñw~9¤õ"pQJêÙu´XùÁA•¦Þ"S=&ލ0bUÉ:sœ¾8‹|&E~-7’okEV»î÷ÿ°o‹—íñ•p€ ‚+ZqE­‰¢jø\*K¢ª8i·½†iã\[˜„è„å¿Ô©£|G_ Í 䟳„d€N™¸ÀÍ~üHïûè›Î¬gq”Ê#üÉd³õrÀ‚­ɧ§Ñ�“T s§ø,ï\ãIpo¬Xp±¹x>Ò±%ƒîŽ cZUÀ[˜òñf)aˆ¬Ö¡žl^Ñ(~ÈÈwœ/ò#ï|’Ë<×"FÅ sð¦Ú‘¹æKßkǘfß•qq˜²à ÿ/ÂÛ1V&ˆÒ¼¶mÛ¶mÛ¶mÛ¶mÛ¶í÷Ú¶ï~»3³?&;ÙN:éuòäT%•Ó�ÐüõàUÿÔtêî)`|,ù{S©Àîb H¡�YàÿTð¹²Ì¥ -4µ"}^œ]wx°'ddpI½Ä‰Hÿ\lpV‘ª/ß—y›]”G¢Ø?ãÇÆÍ?AãìÃ6·ÿây5ÉÞGÞEsJ=/•¤`A²´�ܨÊù¶ö+l1ã/Ó­$p€IÐÏý•¤ð µÁßiÑá5Ag>‚¨36bÔKè1Fô}¯`Bßߺһ©�"+Ýmû° �VdݽˆÄš2˜v BÑò>œýq ŒÝOö¹�õôˆŽôA!~Ë–m±®°”¬û£%”æôÁ'8ýY¯ñ"<µ°ÏJTàA"Ï õ !�“�ÒÒA¸IÊž„ùâMû¬%¨>CÓØ��IÖärqò ‚´†Í;t!èÔÈ�ï8Üë Œ«ÈLx©{Qacd&Œ9—üb(iÑÉ}‹s“³–™SºÁçAqvV¨U…Ö¾ Æ«ð�'û=qº›áÈÝÃÙÆéx¹PDK¥è�z ×H·3ˆã¡ñhTõgÔ�¿$“Qìë!¦Ë�Ê�}ÂÚ+¶ØžâáÈãá„PQ„¥ãÀ¹Jº9™ö°b(vþÙ2ô^ƒûp¦Å<.º¦…ÎF¨•SN*�Dg7ÏàøÎ§â‚H#þF9é9ÆnŒ ‹ñn®È‰1ÐçÏ!aÓþE?FHÂXÌØiß`Nµ³±í3äÂéR6‰-W�æ»É:þ¥yƒˆÌØ¡TŸ¸ˆýóÀ=ŒVæsp¾Th¥Ô²18ÈsUDq¤u.…ù$¥’ׯg%¬Z ,@dóÖQtY0;Þ“A°©B Ä�-,µßñj·ð>ѵ-°²F#pɧ%ZY³Ÿù—~ëí÷ø¦±#öt¡/)ÒûÈï™Ó›Z7½#ª£F©L¨.|˜žž$}Ê™”¾Úˆ ÜÆH}xõ#¿ËšëžšU Ëûº8È™Mðsóû¥ÔÅ’-˜úx9V�ŒÙ7p0‚ÎÏÙà §e<p Èßþ�d<æµ¾ AR;Û~€ÎW€)bÖ5È7æ F#(¨Ž¨z1)r*»Üæ›"$Ü•ª@÷¬°ÀfG5NB�ÿlØŒ?k&º» sß|LÕ(’¼Ù´ÛŠnÚñtÄiÉÃE`ÚY˜‚„vC,ä4�Î_ QØ‹Kö=*d.!²6cùÙ²ã-ïG|O Öœ9§»vÎê$–Ø�k¹Uè}A¾È|ßRš¤è‹Íb&§õ0 %Ìm¨ òíÃmõ°& 3R'‡üœN±à'W��ƒ¸ !˜’re'„ù¼IŒkA~‘îøKhfØ¿z.ºQÆ6Y·žpË9QÓêÈ~ï _£±2‡‹ûçʶöýÏ{]á3ÜÒ1À ÜÜ70¦çíVj:Zú]¨Þ$JL�ž217]8â€×ä«ÍÝถˆ#m"°q‡Ž¸¦T öúš>Ühšv�¹+ÝÐ-‚‡¹áà[ !m¬I÷£5ÜÈL.FX÷P(θ�ú÷#ßN�]a$k(Û®8…LÅÃnýg‚QDNP._˜ù°Y§ñWæ,HË_ü�¶Îؘ¿L043“¸K‚‹éAºSrð wÍÕlB•Ÿ·q"Åþ €ãõàŸå!)ogóF@ÞÔÞg-6˜f�4üG�ð²¨+3M#3AÆaÓôR4nÖ¶êú R†ºº{Nxø*ÝöQ·]íì¹aÑä¢/fFÅ-å04þÊb¤H÷ÅŒž¨)ÊáQ‘6$ûÙ6sQÂÞb2Ї’éÔ+Íà…%†܃E"}¿ÔÇUº::ò¿0$ìn9ñvMɹLùˆkŽZÈz”Ëc&„ÓÝ\uEåܾÑ@ëx„ïXOX©˜é·^;MFÐ9žY/³ëT¨‚@vár½“9:"Å R2®sª"Œ¶õ¹çl¸\Íx=Џhe Û�Eªµè=ý'mŸ3ñ™»âÅAX (EËë&? Ë*R½·:TN%ÁmDë‹Ù{Áà:à� º¹I•-�^Ÿ;b®Ø — *f�cwƒä°":°ÅÒ&·RxJW¸šïŸ�ã÷ÛÐ#¨¾ª•g¦¨HÓ¤ZåðH‹”;€VR’Έ/sr¯­kS ã�hw1›¿©ø0ɾUN’U„ÒºCÎ!XYÞá£ÇSY?<ñË~F9àÏô¯¥‘Êfº¡ªeK£÷2Ù†“ö/•]ÓØã –rN_�¯¡ìešfÛûá0œÓ#¡ðšòÁ€ä,íðÕrr 2ˆoF\Ï#ËXñ¢yœ`öxêë×mIjz±r …`Öz?^žø¾-ÂBt�éÍÐÏ àªÔC¡ßmÅ­ΖÛ>†›‡C¿í w,&2«!œ^Ñ皻Ҙ}Ó¡Ö*–ž)ËXÆYŸoÕŸ+8”L4Ióž=˜ka¯: -ÒêFSÊÓ­~†5²{ÿBÇIU¼¡º¹ÚnOGt³.q :³Ò@¤Øá±)”ß�zyÎtp«~äýöƒÝ��I;„‹º¤õëtY-·Rg:‘—³>¥ÉÈù2–Ðñ.ÇZ å}Z¯S¶á_Á~T.ïñãîÛ·7„7"(?—Ó¤ ø¨Œ^=ö×Úž]rJ-J‰eÏ4H–Æ@ˆL•ë|_@™¼ÕF†Æ†­Æÿ MNŠÇÃÍÅö–=ÇåV^ôll<†§Ð}}æbÒµ¸a ¥ÍV¢L˜é¼WYüäéPˆ¢O¦9—‡ÿë_á‘Tú»h5ÌeV+&ýÃÿP¸±–�ò¸m°TáI/‰µì”®×Á-µ2µÊ'xE»:½dáÝ ¾†ó×®²Òì7G= Ú¡ÐÅBÍ®­º õÞ'ÀzÁEÉKKÓ%´\’>Í[l<‰Ô/¶Ü=ßôŸB,–ËÕcgÁLæ³Ñ˜¨xÍÝU”EªyUt C�®˜Ð“øwjÙë5 LàŒpñzœGMïU±ù¸ ÿ– ›:úV˜ãi¥T`)À„eµßcQMÓÙ¾&³û i3ÿ‡tÊP,�¥�]Wòb5…Ú®²x3èºâZ¨`eÏVäŠ)C/‰™&cÂ-y-³RéY…+áÜòr K`Û¤j¢… {AÓohxlúSˆö™Íd÷<˜ÚZ›Ý*KÕdëºxi†ÏíD•Yƒ±S[U^§é��¡°Çé x(Y ‚ —k•�š°û“H´»È7Ûc¥çì©W ë.ÂÙ´âO=×éçøíÝ%žá½Rê½D†§]>$ļ9�8æã�Táà;~R=ì >þi—[(´¤.2‹çO3R^«ÚÅÇŒGÐú®ºö®Œ}ÏÔöh…ñMMÖæ’¦y�;my1¸\\ ÇQäªN>n*DÅWk­Lv¿…¥@»sIØÕ¨hç)Þwt¿I™xrÖ_J ¨KIí𨦲J=ÔôÌpüžá¥s ì¥Hí£õ„`L¸¸§ÓÍ S#MÍ”f?Ý•÷{èÊ6ãâySv299à¸mf{†_Ô`e¥¹­h3uOu¿ú}ï3R:ä2)¦±2{|Œ€„(ë\‰‹`ª>†€ýGm=m5VM]’4q ×k  îÁª—�ÈÉ…ÇkxmÜbíî)¼A‰S\z—Ä ÃNµ8ÿ�²×ôõ¬¿(\=î^nX�rcîce˜?ÖÄ̲?vQ’"R ðdj3Õ)v.¦æÏaÑe/í±Û4 ²0ƒêMú’Ò«ÔÁj·ÔÓ)¤OtŸ {`ü—¼æ-Õõ,gáÊ!‘ÕŒH‰DD$³³qv4A/UgÇ=´ö°½Ñ,°rªŸxó)ùТ �7¬äÒ¯¹8ÌpÅkžC÷—òÁ쉲+o¶ˆ{lU$û9"ŠÐ<ªizWsßþOc¾/žý6Œwý½ÍاÜ#Y>øIõÚ±Hs®[!ÃÉ!«j†®5Mì,í�iSƒU!‹ˆÝ Q~ÄKÇãœÓ©kg\\MG¨ë”©f°Ý ÉóF P?7•ÃÂ[dKÄCu௪»=`¸Ðç”À2òq™ŒË{'-ZgÉzBO÷*ø‹›Nü  ÿ0ññþ¡â°“*ˆ> ¬`™¿Á`ÞM»«ÊVáÖlnÐõ'/Ëϧ¥‚ÒÕo��ÐÖMÇ3©ïÙ™w~ëÂÈ?¾~[» Ð��E¹¯s+4J£§œÄ(6ù‘Çà ‘¹÷l£^ZÝßwqúæÍ0_h†�VC \ÙŒÏ᳑n¥ÌÀ™(R`�Ai"è�ðZ‘ÛÍÖh{Œ³zÏ"å1Àϲç5[à&Ûž‡<+¤E!kÚñ¥ž4>º >¶Jµ CØÉÙ2ó©·,6Iö¢ÈÙöÞ‰ñá0L~íµz0ƒ(ã¡_û$üZç«�˜oJ<—­T4ÁC‘ áút;­-à±C¤ª˜ÙÁêp”`”œ9$ÿr¶ähªÄ¬Ø.S¤Ô™–Ò²éã~ÛÊÅŠ_1~(¿¶jÅ»»–PD¨nÏKA|Øn‹¢Z] Ê^ë+³d�H x‰2³Óº·y-é³ g95�“댫*û®”²ö»uë#A‰AZ-³¬Û¶ÓÈö=ÝÉhoFŒÀoùÆš¢�8Ö³Ú�M6SüØ�AÀ¬S¡þ ˆ¾Gö›„€íJsWÄ·ŠÜÅ¿çÔÄL èXbµe5FåOì 3•19¦ áñr§#N+ÛåÅ ,(?x ø%í/?Æ»ª®ø ­ð9¶^ï}¯˜ªë;ÏN.TÆ3•l$“ Be*Ý"ÀÆdàæÍpÓûNì¬ã鶪} ý9ð¤7Û~AVU…³=‘Ïð¾=!fŒøù’v-;xbbj@ \C�V0Q–ÀŠ1Oò5å[ ‚'4qwí¯N6 [¡øù•U1B=Ë ´Ó¾ðB¿�ÈŽ „SbK�W5È(ÄÄÄ»– Øàã9&ËÀöYZ #8µer¾Ü6Æ ã�Õ=Jâr2ÂB‹óuú—¤<óÂÔ¶Òü0¦ËÃJk¦¿¼,�ò¸†ï}<FKÖß*"ÉÉ�\ËY2B8½¡©d_]óS½Ôé•”ÞU»ÿ„ ¨Kqù#}–‹®Ež‘¶e]Gj¢ÖÞÌIãã‰-±íWz¨hB+˜ú‚¾©:’Ûh¤8 Ø.˜½ÏH»hWC¹€`Å-xÆç’<›—zFM.Ë+Ë2ý"½«§½Qì‰êÚh†×N¶·æH�¸Å¢G' I‚˜ÿoñtî<5ˆ;N´h†€…ˈº•FqªÌá2{ ?üÚí÷1åC}Ø0eŒ”þÈ8¾fi¸œ)l¿phÕŸ†X÷ÇfÓ‹D»8ï0•Žå�ê²@.ø�LˆÏ¾°ªGíÆ†öašþiXr.j*@©X&tRÆàˆëEe+zQi Áj@m- &þu¾tæ•É©x^G‡ïw/§l*�§›{bM¹Trý³“u^¼•�"ë/¥0¸‹'wüe”ÅE<øÜ{I\"£Ò¬YøÌ.çz…*×­YPÆÕð(ŒØ`L`,ÆU7æÔƒ©FUF}[ŠÑTjŠ)‡¿Å2¯ žÏŠ_í®³\�-³Y½MçÎlóX*?‰&ƒ� ‰jº‚VÀ{eƒ"Yæ’`õÈLŠÚ9XOxšA áSj»Ûc�³ì²±Ð‘>Dφy`ãcاŠ;&³ÏÍ«Ù8êø™¡v{²¥,Þ*Ňï(œèB­c´ëG—èv�Ë®ÿöK²çŽ =jØ's6–ÞD¹e3i® c0ÀÃÓ¾�çô m³ÞÒõÂgN-³@Ž”c³o:fÁ´;àQ)ÿ!>¡„‰rù4Œ`r6SÑ“l¾fGËM�Þ:BÍI€û:ÔÔìÛQ¿g—ät ©}ÊÜAz·nŽ@Ju^,WVŽF¢ ¯ƒ«OËØƒf¯U¾·�Æäà,�ßAM‹0MУ�²}‹=à£-XBÛYi‘í%kgñˆ¦Þá)¶½È8gOÜv)Ôógh–²lMÑæã‘©xµô•È×ÔHBØ:‰¸üÑs²ÇÆ”v¼¡ûÅ|ýØf˜©ÅîŠÉ/µ0â\Çþ1ÁN*;@öomíúªw[¥æ5üSXÎ*‘<˜=æŠo4ðD: ÂiCš_g1ÅkiPËI̽4cðæÇgHwj£ªqèÅÏ+í ¢'GÄk1UêŒV-"NXËÄäìx�ÃÐ,67Æ©{ì‹çÁãÒlhE‘ ¾ iÆ!^ÎÉL:m¾­Ä$s+Q>c=¾�¦3‘]yDzS àÿÒϺ"¼DïÑÀp¿)•gÙdE/L–žÕO˜éy1ÎC(Ï�f•G&Û¿Û{Ö�׺ùàâ«ÿzÔ‡‹$€âO^»³Í­õ‘Ìy[$Ü7[�'!b:a!¾‚p!gÖ>õ¢ü7:1»ny‘õ;žpI¤>œ…„$QbàŒM{´ÑAšV­ÃQDý„ªÞð¤ó¸¿LôÈèùþψ ð¢dA žïøØqÔÂÙ8ÙiÇ[ël—¦*€Ëɱ�ËYü°7áo”RA[vrÓõý:‘TNÊÖ?¥7nü�vá!ÖšÒ×êä䘎ñ‘!‰©*$Ê¢Õd.× ™W’EAÌW[u-–â<´Ñ?¬$fbX”EhÈ¿OÞp¨CØŽåhÈ÷üEy;ÄË6_]§Îœ+÷Q%±w³@BE«UgêrÕ¯¾€Æ å¢ïžáSá¶æ¼·žØò`f†Á‡eä;â…’9­tÒ¢@œ|‘Q{�µë†>^OãL�‡ÒJ�¡»€à`Ù¤úW;”³Õû\aÍ×W×¥Z\el‘?ÏUÛðë°AùTá(ú=ô‹1-øðÔ| "3oŽÄyär}lý”ôvÚþ:=1jùq ‘CÊ[v‚ó Ê["ÎWÚ7Üó™V„(Ø Ãx* )00}»Qi7™/i!•‘®’¨cQm+ÕÁÔ�G”´IT³Y9oS°™Z„û¢cÓ[’v»Þà^²ëÑžžè ¸I*”ù�¨ÃP,Zd$Kš‰<2¿³ù_úñ&àñ™^`]R}ûq†' *!ŽºØüœµvhoöd¥¤ é,š§~ÑAû‡©B?vǬD½uô%oÿTúûšcšÄ¹<ó†¤$,Xú_ºä û·zõ¼çÅÑî'Õv ³©á‰}Ýècƒlø*i +°;cÍ< {^çê=/H!õ«K]Óà[àØÊkÆYhõ=¶·ô1ë$ÝX×RšÜ‰=?¾>Ñ“Π¦‰ÎÊ3ý< ž”Óg¡±”/ÄFâ™eœzMõ�ضà’ósò`à9œ'ƒrÌÙõ­Sÿùü³á!*€:ä�?Ÿ;²p% )mX"oO‰é�‡0ÍXÌÀž‹üÈ4°È×÷�ì ÌŸÞø7IRÖ¿gé2‚`³¡`—÷Ü8Žò^˜B/€�C¤+!ðNqØð|²7ûœÈeŒ½`Úâ�‡ûs”6ÿ"¿ÖX´ÜÕ„¹â-DŸEó©ÔhB�u´YQèÒéA¥�Ä^¾èl6GñªšA�JVÕZ·‡7F “Û]yU�ÜÓy_9å³FÒâA„òQHÏ4ç¼¢Âïâ ï¬{9U \©…<ˆGcŒN0`t;ˆú÷M kÅÿ£¤}¤!É.œÑ¿X“ ÁMW³f޲È3Ö J””ÈÔËZ¨rëªÏóï,°Ë|¹yÁ“¼çŠŸ ^|…Í£¥\Ÿ]©`î¶§ù•éÌ$d!Ø ¹‘®#@š,$º1pq¡ÞCGÐÛ£ ;Mõe’ é¿€õOÊ1®Ö'"'Íáˆ/Òþ¦¿3³Ëñnêl¹ˆIv{»”q¨`W3önúœöÅ8™·’ÇÐeGDˆ¾ÚfÊvj¢Q�l_j±\Cxn²íØ#û Ô¡ø[­üûÓ^²OTöDáùAH«¿êòì5óÐ8Ô-eûÜîUŒ‡Uõ5�Y ^Qäµ$¤ÿƒõÂáÊ#o>4Î}\©ŠqdÙÉ‘®©¡eÍ"£[m‰�H?Òö�š5”Ë"aÉÛýe_C«ÒµÁŸÙ„‡özÔà:±°iŽ.R2�FXt›sز�¢/X¡„ÙÝJ1¢õÁO^)9B_ÃíÉ��•ó)‚ìÁ϶P]Ãô×î±ü«{•R$úp™_�|›`IŠÃÏ6þ²z¥<� ¸!xÒcb2Œ-·IºR›2�í�†UlïU�·¿åu„î¼ &cp“.‡èÚ‚¼â÷ú ²T<�V;o „`´H÷ŽJ¥Ä7Ð@;Nì�](ä±³j×m1z¬€9çHÙB}Iœ‰ L »¡^‡ÞdgË�Æ*>#Læ(3“yš† LC±¦¯Þ·Q0aj ÍišÎVpu°í-lòä•zi"»`#4]m¼ä! =FY›Sö,”RòšXÖ tÝ %Ög„í‘MÐ 6OCÎW¿.BêðÜcqÔLÚ2RçÍcÆ‘¦ ÉR\Ð ÷Nj²ð©ÁÒHa+o² ìºâ‰¿ÂqO×ɲ&“â-‘Ëwó •ïådG¸-PÈJôÕ¤qü ,²Ìâð8W9ÑjäBý.Ø¥%Åþï•éìï­KJ¬#‡®èKñºxúW«žá\@3'ƒZCÄàâ·Ñ“õ%‹ã'qAM;¡¶|âÇ!“!1~¬¬¨}è svaHjwÀfξH6o’tiÙ 0‚"Ø;…¶ÄùÈ<+vBáj[¼âÝ× ‡X7†¬ìÊý ²cÙt¯ŸÙ•Ù@m=‚<‡­V� MœñÓ!#6?KnT¸X|‹{Ò–õŒþ~>é^{Žà9Ô&ö.Í…Ö†?›Ï l‘ÁÜ=ò@ÓEȘêÔ5gw_xp<+¹÷ÓKwNÆFŒ–€õ@ŠêÚlX¦6Ýqˆ¼÷îÕbÆ–Á `<Á±ÐϽà_j³5Tk*i$w{u ÿ¯7U;€Æ×§]…‹ÚíÔ¼c¨ Ьv1³g Oö‚ j‘—2ÚÞÚ+ÚÉ·Ý«ÄhÓÝ`Ú+ ˆçº¬/ÆC¹£ážéZŠLD| „*ßím à‚¼Äp^1ì×6´Õã0"’°(™ç ’r÷Ës®É˜} U³Ö¼Ê“` £ê•Æã,¹ïǤ�cÅVrÇùx j¢Ç¬Sþµp·åFÿùÆ~ò Ëz˜.â5ï„ã9fJk†ÌFÍà³\‚`Ý8G;‹îdÂQÙBk1üQÆïÔe ìœÝ§ h²nQoK›L�'!½§vÍÜ6\�Ûò«�`ÛÜEI{Ý'â±—ôo_Õ0xrÐ#µ¸àóÞCøs4°D¨Ð™dÄㇼpi1½Ø”ÿUÔræGØ¿Ì)aB¦ ŒØR‹ûY×6ð0(@uÉ0^È�që!»Z�ÇJµ¹âi‚qŽ.NÍ »”M�mœL4j$'mÛ–×�¡óŽŒÑ7Ýúý°ï�gˆË2�¶m¡ÈÕrƒ‰àUNÐì[µç8ò’M¶ø»w.} \\æ�‡t³TõÃ�gÖ(½šÈi˜~ªÓåúÑ;¹?&è Ì'¹<‹ýÝ8cåsLŸ,7¥«‘FŽ÷?x{&°Õ÷¡k†194íi'o\%{Ùó7‹„¨4ZqláïÖ¦DÐaíŠ;Ä¢?ò¯öÔBVùãÅ�¡VÅ"Ív½ž2šÄ)Ü u˜$GÚ n{aM¸½œÕÓ¸¿»^• ¦Œ{ßFÉ‹7/ƒÐZ±Ï΄³k°ž¨ÃI#a°ƒ+�ìD`TÜm·ü5 æ¥°ÚüÉ7ÅUÑ%ºpôõßñ(QT{v¾“¾…½¥ë”�#h ‚JL Ò*ÿ㌡rÎv÷šû/ö,¥D¼1 ñÔ,É-î÷+ù„iþWOÀDÇ djì¦lciŒñŸ†º‡8ùLi«ó»º§ÀÌàvίE£0IÞ2Zϳgr§7JÚÃL(Üx3Zü\ܰÏÿ^Çiý�tHÅáñuþ'èÜy5Ó‘-¨ÙRU&.ø‹Øÿ‰/fic*bêlü¿ûaÖMiòtlhZ.+æ£íÈnö$µÆû"^M%Áœü8.¦Î.t&†.†ÿ½ÿ÷øãžzõ ¸Cq,52Wµýÿõë?�Ò²�eKÅ_ÿ˜¾+g¿s]´ç,ðöYs„¹w8ÿkÁOÑYâ5¤çºðSÿ½žú°æ·¡fh×ê«Áÿ;ßÌÿÁï�]7„u˜¢1�¤éðÖø?ñ%Å”…þ?fª¾¢G÷7ývH㢥’¸6 Š)L”H”ºif¯bZã�“�±@À`žn¢î1õG,Úá»NŽtNâR,2H«uaÊtYžUB БƗŽß~5¤Ó€LØò»ÁM8öxäÖï ëà©fÌfÔI‡h¨æÔ5 ¢Ó (R½F…B¨�»Qr+2œ±ŒÌž\hëÒrÇ!ÞýD&³"F-¨IÂÌ”óP8Üîb%e�jÝ“³Þ“í, zG¢-âéÛ¶'ÌÞfGÄ5Îf)q�ˆ8¯Ñ¶± æ:U�~¹s°¹¯]8m�º€-‡ „¥P¥_µÒåM½ÇHjˆRôF˜ï‹ß*ª:µÉ íÞ’0[”Xăº ÏèŠms¤ßò¨šèµv-¤cÛwì€�›ªaÁ»/eŒ67wGÂG¨DzUAL+�‹ ¤æ—q¨ôÊü !–Ñò›N’qE2VâØŸ×�T…Ÿ�Š9“‚çeŒ‹7 ÉplEûI9¹éå½À�,_ÌÍ-¤Í*¥×yôRæ%Gè%Agmöü%vŸ~ÿ ‰¸·Æ{ô‘^˜�ŽíS?e�úm½¤5ê*‚~X+- YÎܸ”ovtè:äuqß#S>²HI7ʯ‹Â9¢åôR׺½¹Ž·t•QÞ%^«ºi Û¨gœ1‹>Ëšú,W÷·üõÌnŸnsD3a, !0GÎ7ræGï¿ »6ëӉ蛷]õ﬩pÊR×~NdÚ#�[ÅÇ5{á,Ac_)§@ýæÈÒøä¥˜Xª6�-)º?ºåƒ nN�5�å`Ž((3àÊ„à ,È9›Š®WÒöœ!w¿µwQJX%þIN¹"Cª–q·°Ã €¼ôÆô^-Fô�çP“o�X¿d!F$êþ¦+"o·‰’¼Ù›.Àg8Ågfj§—crן~¤ç¼_„‰úè6 ÊÒNÛ­ßCg¯åVg…‘S|[±2÷㯻 ¨ó9'÷’X§ú²­‰Òû(6ñòi‹ á`×�@åS3>’ÕmBd¢.—`ö™¬­ z(àºñEÇ^ìS¨Ú'IzÈ^Ž)‘¥cÓ*¹Æp‘•Hi÷ˆ&'Õ“<¥ÕvÚ­æê{0Wg{VPuƒc©;>Î�ËoŠœfêÃpô¨cȤ%T¶­2|ÄÅΕÂ5–¹ñ c*!2=¼û\­7³›µú.LJ¤tÇiÐ ²ø7'>ÊÈÑ´‰4q/V7nvhJ±•p-þDŠþsJò S¸"#Z.MG=Ý�’T“冴ãèªÜ&ñM•Áã8¹ÇfT®ø…wH�{ «pŸ,‰�xµâ;ÓûßWóy­~Ö´„ ·02ûÔ›¦c áÄ*Ûñ%×Ô¿ö9: Ä5j—x`mGmŒ†ö{»¥þ9;˜yÍvs½Ø“yyD4â�™g„§pî[dáóšÆ7×1¡^ _õ)l9hTœ’æ©hîZK ~GýOÛlâ<=—ª Èt…?� *ÄqßÝ“G+9èô�Wo:cH*Á¾Z#&¾wã{Ô/UˆÛ:¤4`ˆŠ&îPËü1ûÕúàú÷†}uúÌîk•ç+ÖddÑÚ>UNM õðu³V\.ƹLzt²ñó‚+ç¶¹döž0-_ˆûŸƒ‹ütÛ:ªw�­æè¸’ü¸›p“îuô}º#p•넌{mµØÉ@ŒI–ÙÛ¡¤?õj¼…6€ô«ö$¤-ãj›3UœfsóÔÏ­y ~CÖÁÈ.r!ì` {æ§Óä¢A¯ °ËÍÙ÷1ÞÃ\ Ùõ57c©WøÍѽHÄÛZð =‹Š‘äBuëNžpl⪗©î�òq[(e:FX;øª´Rš’�8p¿‚úll�÷àÝx‘cíÉp�ñþÖ¬5üûoÜ ÀFA‘Ð`sªD.åf~Ïò(½J# ÕÞµW*™Ÿû¦ô² Ѭ ÜéHåEoFêjyÎ3‘íçlÕM·&²«ÂgÚ‹�ït�!gŸjBdìÞl‘¶í\ AxÛ–'•Eyo’ ¶ï¬àNk^T¯ع;0ý‚€(ÉY{Exú ßÿhß‚´%!Á/Y¡rƒ­8¡Í3T;_â]ÊÅ%ÖÐúæ~ ÍD¢š!ó¥Ý5uÿ€†�C¾¡äŸphP��RiÔHQ÷tëæ­È ”3Á²=&éGÁ̯1F(Ò§ôÎ'+ƒŠ•¼CAÔS 6ÅE+ƒ)´ÔÑ]êz5{ãxÏOöŒi�,I½ZL“èë`½{±4MËÌ®ïû™ä—gYY!”‚Þä‡ >¬"q6Ý/ ôoÄ$E½—»gN!ZÛðÚ�ðÚ@à<ŽE{š;ô\¥Å¤ØwJÚ„h§è¡BXÃæ˜Ÿ¹A�¤ÚÙ`ð¼~F—�´üŽ�‡=þ] ®˜9»Î ÌÚßÍçYÿ‚û ËXÀºÀ¶ƒñJV`9�ÂÍ/z['!ÎO3 ÊÝs*áRp· F�eÓŽIò£´%³5ç|Í™ÔbZˆuϦ÷÷ýv’OWá݈=²–d×\7)Ái&mÈ–ì*ó˜xÅ éÏ¡«Wê%ÔÔ4;rZˆ¥ ³43“ºB£›e½Ýîs«‰‹†õÊy­_ÌÝpo¯éÛÇ�ëí�ß�WÐxøƒDå.ú«À-ï²¼ôRþèõ]!Ù)„Àd¡ bu¡³G‡ÄM‘€7¥q,fC¤�¿ï%ð( J¶*Щ„¨ F’ˆ/â`’FŽ?.Á¿3-íXúWñzË6¯*IÁ”õ‘wÜ”’=¼häbZdƒ!VõÿÒ›ÃÎê�oZÆh¼¿î3ÌkÈá“[±1r¾¬ÊäU!à6WÙ¦rF?¿ÞmY£-%lr@ªê‡¦Xñü(²qÜ â+åïÏ mp„…›¶=ÄYÖVÞ®,ß ›„üËŠ�¿ ´´†£ÀÏ›-C»2¸ €tfØÅßóbÖ�ÍË éÆ¤:oýý =$Òk¾•Tï•�çÕ™Ûi©çÃm5•yÓgúpuˆKÀ?a.à•Í[FýðüÅÕ›)‰ž±¹ëHR=A ;q]xuu�ôVVÊÊ„ {”¬†Û$ú‹D“ /.O=aW\t.cHÖF^W;'€öÂØå�Î�dÀpqü—º¾²=XÒÜå°ïŠ.‚i®Ûntó™+"åÑÁ^�vÁ@2ôz±i÷cÏNÈ>´ôWÈP“$éÔš¶Å%§°Ÿ%¤q<-8Î&zy5:�q¥ë=�Ö]gôiˆ—±\sÐÅ™.Z²üûZÎðJŽG8Ô¬[7è{žÒº9æ/;‰�ÏxòÃÁJ¨*cXôà +ÎØy"ËVÝ>FìÐ}XVψ'Äê%ÝK‘,ˆð5Qþ ¨«æ !ä¸Y*Òª‘°Z°)âp›’ ¿w?ÝÜ^(kµ2h§lÒº­aÒó|þÙé>e2ȼÃs7JlÿHÉ'÷åü>h§Å4ì´Ž:[e×OÖ²wæÃFj=–ô ÆÐôÔ–;¢ªÝUH—ß4e+�=Ew«êˆÒà—Héʯ9ÜIJOJåfr«dήh.{§MÕÜrVCŒ”.w€Žƒ_œÓÅWÞ74’&íž2´yOv¬»íSIjÐb‹™ˆU©ÍlDT¿@{w¼ÊKye ÷K´šž}Ûš.„›nwFÌ:ä:ÿuÔ z6öè£ú�Ž´ñY�ô• ùIÚºù.S;ü-÷ÄÚ„ÉVQ¿W™e¤ßÛK–u+¥Sp`Ãù&»D™m2õŽ¡æˆñì6j¬—š7ÞVêrX °‚èèÚBQ¼™¡@hAв»ßÇUçdõHDß�;á3îñÀfå2´ê.ÌÚ7ÞL‡YEF§ •´Å‰\`&MùŽˆý¤ ¥‡�Ûýfµ÷ vêÄÉ…÷ÛÔœýô,µo÷Õò;*TSC!¥?ZN˜'*ì–çnÿ|°!¨îЉmþ�Q`i|„£kì�C{bY·›�9Ì©ÁÚŸöLÒpúÏxõº’+ñF”0N¸!Ã{w'w[åeoÿõ%*c0.áè¼éCr°C.ýB|åø³HØ–Dþ5´ÏpSëº(öW1æ5s‚äì à̤ë8ޤ[´fõR'=äºnW?k¢êûU$gßçÆ¦H䬻qe̤Gê”…?ijAoL/™C¼e«–MLºñ…•ð9  K2Öè#LÎ{×èç1ÿ ¬J{ ×uBÜV˜8Ññ.ÔO+Úy}>fÜI©G�ížk_öÝkɱÈhß­Ä ¿:ÒHÒÞ ŽðÓ‹ئ*êxH•,S‘nß�Øýí ¼è눤Ú9·*š˜µ5zû÷#='ÅWš—� òÁàEÂìárºÓ·C€lºF�†/ÏR*š"ú_Kµ€Ï7‹ÚûU�‰œÌ¿\�íÎΕ‚ÑSˆ½ük¶eÏ�c·b »¸½‡pºŸ•{“L+†4„¨fæNÌXî/ÿ!I µã °3ªYìü¡bŒ•wHß‹¬G…ŒáCª€åmÖ÷ZvSÝn,—Q³â†¶ãuÑYã©r�Pôr(B„À|i \uZ{¥ý9è»Ã˧KÈЯ¤$iES¢òiÐ>Hsêg@rî ãøi!¯.õ^å{ú¼m|ÎTÉU½þ,¾C–b•ÏîÔ]m “ $÷ó\­ä–c%™´!BË=`ÃÁ6U@;ßǯrCz~MLZ ±â_m£¶6X3¡@#Ãþw%:f8xïkGZ¥�YA”HŸò£«òvŒ�`¢çÀò¾´Ø"¦£Ø�x(ÙÙÌ4™�Eð�{X¾˜–žî’£â“ý-œç�‡×e*‘óœsŸü?N÷kƒa x ¿ÂèP²”º¸2ÔrÉJìtŽ ¿o…KâÕŒ?tI€†åÍÁ‡5S…hõª�EÛI´µ?h‰ÏlYn]ºÎEÆ@[òrÆŸ$ñ¦©‘s�--!#ÿFoØ.µì~HežQ .óG‚p-œ€GÔ¼£P]! ¶ÌÎê–@Uè%ï¸fB"Të�Ä©¸áó±L§©øþUZÀù ïº ”t2·k¢Ÿ§ÔÁ�€%¹"¿}• ]³Q>P0"\ÆŸ5è ñ�ê¢G���•¶hN9 %—V±µÇÒONÀ3 ¼”û1=¤•çO{¯%üeyj§�% «ç«×€ü xíÚ±pF†@zH›6¾mxRnˆ¯‹gÈÀŸíHÍ/bÜ 59_‚Ÿ” y‚�#Vº–‚Á�pÚr ˜îih²mPÿ²»“ö?À»•ì9#ކGêNK$;b"&ÎkïÉÔø‚ CÜp¥óÑÍÇÎnÊ®ÙÛ«± âP�ìÓïG…ÀôÞÈ,�0â´‰±SA ’àÂlÁ‹bs‡«´rG8ƒíáNe„$¼_³ýØIÉT!usU)} °fþ\�#iö9ABN>â6–èNaož¹}l£âÈL(P®� ޜʘöí°Õ{ŸÂÊ& ¿^[Uø':Ü\|û‚¡M÷¥»U•Ø ¯0¶›BQ.¥2§ñtÀþÀ�zöÌ­”žJAÉÁCEqÀøòí2Ë»ˆxO88ŒÂ,R 7pŸ)"ø’—l@ pÝ€W”~‡Esž�Bñ¿h³!H¼…tòE\V¯ÁQUr þ ŠkˆŸ{Ò;è­#ÀF„fõç§°Ç^ú ¥>Fr%]Ž×J¡äÌe)£çR:’±r¦ÜM|Øö™�¢6 ïIî£rôòÔDoõ{_jjnîC%ö¸8jSÌÄÎŶÞËètHÿ¶ú{´ú„œFBñ$¯ c0·_"W·'C~U.;æ®`·g<N씟MΙA±ŸÚÂâ'O2Ú¾ˆžúìMÈè8f¥}é®gÆ”3|Á™H´.Kî×Í{ßgÆ£Uß!7&#ê].¿ö }ÕÆžskôÝ ‚yvר[· }ÀÛ°¼†ž·òイmO0—ð¯P¬ÇV/2óú¿øZ&Æ"ówÄ‹Yå*»Ã� u™=ù(°!ZätU=VðÅ[†önbF¬’ ¥?ã“Å~¡¶«X¦§ƒìjRhz€ÑŠü&ÿ˜žC�+ä+%Â/ëp7þò ŸòlOþûŒMEV8AAüÊ’JBu†!ä*ø¶1Øc.`ÆÛ˜Ã'T}¸QøÈ<û¼·¹Ë—žžtß¶ð—u&5›r¸íúH+s]Ž-Xv!HÕZ@ÃĨë!|ž©z>t¦ÓWÔßòðD5îéŒKµñX�È·à ÐA{ÿÀþ«Á'mÿÖÓ¿�|h¼ÑHd·•8QsCy åž�¾¥ ë¼'‡ àȸX‚!�MÁ¥õ!~9µš1½>‹b‚èè¹éñ/þM ‘—›_¶!ó4V›˜\g¸h~„Ú¬›~6‚‰0ÆÊ͇æ%4Ê�²!Èê. ¢ÿº¹êTlmÁ%håú¨§|ôJj’9„ËÞH~#O’¡ŠS ºðÎÆhk‰rV{¥ ŒÓ€;Ô|Q©fööpùÜE*ø¸ªO11dýÀ‹ZÝÁ¦P“;äµÎ�÷ «(ª=âß¼ nKˆ85ÆÌ©·ñÄÕ$Q‰Š%ŠŸeq•êÈcâ‡#sÃ7Í“ªæm1õ¥SçÑn½3|ØB êlÖ:lÓ¥¤ñõêpØ‚Î9ÏtÊ� êct¤²YÕIpŽˆ`"Ï-jíZÊœxÑqE}/?{`×`ß=8ØÒ†{(Ÿý¸Å›ÎT[ÖúaJÁ&/éß“ ¤ÉØ�Ä4“'y°uÛ§–Wåªu¦sðÄ“…(@ØïA»ŒkËb REËGªMÝ-ƧÎl�ç!ˆ_³ùüT5UsŽ2d›+Ùê¤�þèf⸄bªÄZ¨0ÿ5Á—Gaõü¦±ŸÃŸe⪠¨?˜!BM&˜Ñ€OíÅ68‡ã¹L…ˆZ‰ð颀ÖSµì§`J©¯­ÿÊq�¢”‚þ´’´b5f¨qn…9ôü®9gÉbJ ÉyøyÔ=—š¶ŽÔ!6Ÿb+2sžK~ƒ¶<÷R#È{€%á²#›¸)0S¥˜$JƒÊ;BŸÖž‹pªÚ£Ë˜ˆr?‚l&[äƒEÐà6¨¢ÞäÎÿñpgxeòË=™¯Õ1\-£HRèã¶–¼�¡/q/¤À\<ÒF�êAã‘3z„þ¯ìT¸é#·iÊ|[رM˜+q «îTŠæòe}Œ!‘>†ak{Ž1’ößÉ^š6<±æu%Îd%Å,ä/¢šÇK?¥¹‹ÌþE/5ŒŸoù‚ï~Nõ‘RñëYwªo&ôèm�¿5q†ÆV_»ÈÊ9²Á\L-tÀE \¼†j�H%šÍíc:°áP{’s‰ŽÞý<ex̤ܴ}5Á7D»jòf¤Ã§é²ö}…ÑHémÈ¢96FB\Ïú Õ™n!hêã©EÇ`‰Qn´'€iË™8Ñ”öó /�alN„f½âŒ.�NÅ’7ü<ûªíT6žFHè'°0=’l ”M %|öÅ>cŒò¹ï§;,Ðï2C[JÃ+ ú©/øòºl‘rØeÅ:è烌n-©�ÚÄÛ¿À f� MŸÐµ)md›œ�ÿ+5É1Ïéké?ˆXÖX6î0=϶Bf¤*7 XºjRf>rroâV}ñ7âøh;2‹©j?Ju!Á–�aüäÙ‚eŸÕæÑã2jú85ЮöÀ?ŸÞ~ˆdpi#�Ó¢pÀoèYr,ßxyÇÍæLgˆªœ" Eo¥ŸåzèVé’_›Ì¬#¼Ë jƒPW?#ôÔ�nL­z‡„Èz Ö÷€²`2ý"6ü„>/,€ˆŸØwŽGcû_î´ V{O†K¥žÝÅâ ;™˜/ô…Z¤Ú©tóI•Xõm9yoFñj2Š}÷VbÉÛº¶©í&í^õP‘Å�|IlWWH«,Ußvg^ ¶ûX^Ñü¨ÖEÊ8¢Sã¸|?“2Z¨ycÔžšt–Ü“Ÿ/¤¥âpjþæ#¬'WœÖÞ 4θ4•_v¶ƒ€2G©Ý$ĸþ]M)œ$Ö¬kÔàråïÙ·ý¥ð_‰åO« �ÁBUp(¥êZ'}Ëí(ãÚ6ÏTÞþ«Æ"C¦9‚ÄNš´•þ¤”/y‡è·èd“9ÿCçÜÇå)»åŒ?J8i�àwJrþÂθÃKyYãB¿Üꦾøxþè�³2Ó‚€ÏÐÒ«ß•x ì]‰%ÂB™mφ|ü&RXØ‘Zßt_©öK§A·GÇj;qEÊHÌÔ΀Íe :ª%°•Öì‹Q^.¥ #ÇÉáÀG#÷æ/rµÊô{…ŠiвÜDNª]eðƒmܨç]0<ÌKJu‰0¸DwÀëAbÔ°¼‡�¥ÎqÄwÍzÝ9ñ{Œxÿ†€â¶wBzˆS�nk|íúº—vü‚0-ØO¬% ™ÝÃñ#»ø»WW³JOUgüU S�:ÈÁ"x¡'q%.ñ¤„½×>í›�Í�âä,û¹NÌbPŸŽ‚C,榃øPB\)3O/õ7âHf~-÷ê”ÈŠ5rô¯,ò‚Gè–%ÌUñVuÞ²ê'P† É~šbbGêL‡fЈâ{·k•všï«™Ö›$$ V|ærí0êÒ�Á�Ø?Ø–‡§‚ Vgí„3œ”vëÏäpU8]|?b; Í5e†?>ù55~(ð ©Æ[¼—v?%uTÝ;è r¾Å-`à dµÚ¥ÖC›8ÅÑï<¦†Pg"Ú†~£q jWŠñ—U~l«½C�ÌÅÉ” .µÅ9ΰŽn, ¨iZÇcz*Ž ±¶ä§l%¾åYZíÌ…Ð+•­möXû‡>b+GCzä-Vž9¦>.’x´ĪÄÛò�¶Ã]Væ’6ä…4Wb3ß ýŠ}Ó\ýêz®µäd¸[£cÛ‡ýXgÕ~xðW3Ú%BBk]_OÕtH¯ 7`¥˜l¡§†ðÃ-¤¨ìO&Í}[VµÀp�oeyéyºÎÌSàO®>®§>Æ·…ºÍJ@ „Dhl ÜA C§™æíXBè%UƒÕÔ„}\«û¾uS Åii%1eºšçìö…L’–Š;”ü6¬›/aò ÿ JÞC%@Óøþ*.,‹9[@M8Œ£“’åPbåéÄZ-«Ag±wr€ö%Õýº!`7¶ä'»ùBë´›ï!ÊqižÕ;~ˆæENiu#àr¸O¾ÑõXþû;V‹™§m¥%ÊÁî¤ào©ÓB™ �A¨|3˯4á ¸�PB™Ååè8|{ÿª[,身7ÎÓøú”{Õf»I3p¶9°äþ=}|d–„7O^$·¥=:;t{¤ŒÐæBÜÕhÃõb#³¢6Å4j 'Õ¢�MïSÙT�ó�£ZŒ£}ª%¹núq”h3qõ¸aGíYHz Ʊ§wï°mQKšj}U‡Ç�ŒÒ>4ÞÎÙŠUö/Âì)Œµ)S”é»tíù¯¥´ú•-¥w*Y$²¼È)ËlFmmâJp¾æaküã¤ÞsÆ%ËMs#(«E_tÉÒh|‘~§€F™^bƒM{ $ØX3ö!˜@):gÿ>–?IvQøvç="X†§Çþ¹‡%-U4b赞[²œ5øñzþ@µçµ�7ñN@¬yQ·¸CÑïÍB¸mÇ7ýŠíTÓÚÎÉ3pšI¾ýšžx:æÃE´ ï–3ÍÿÑi^_û€{p$'ì«ÎPX¯XƒIS([–ã‰<Äßã†ä”g92÷]ª>³sË@ëªøÄçämü0ñŸ·­¼™¢ÝUe1'¤Ñyƒ–‹«^õÕ¬#�9€÷ïA~ûÖœ¯t.5ž\Z˜³Ÿ;”)Q•øÙ’´Mý6vÎ ÚUB+ÇÁÌ}|�PÃ8MOaøüÅÀ:[n±¥÷¯r–äc€g±PîÅ3þ;KMS�?ã¨Ø‹™ïw< >—‡´±ÝHÖ„p?b­��žö.:bº¬äôÛÄŸwY¥„UÊ[Èdd>WP†ÁÞ½8Ý©F²GÈ4Mê Ý³¿¬Ë•Ÿv¸n_e¶bCÓgÜ„QOÆ©\î„Q—m"y�¿#NA’ÿ#L" ‹åhƒ±, m¼Jç®ÆÅÜ[#(Û–a+ë³ö2yçÇL¾-÷®Â:¸ßü�ïP«Q—ð¨+:[QJ¶¡`Ñ�á± ây�Sõ¬J�ÚÔ5aGæsïþã½k‡Ó$UbTÈ; U–˜º�}(¸EV—ð=iàÎxÏVR^¢Qfw£Jt«õê÷>°iD%Ç™ý-¹ ûù î€þò«¢]Ø;Åâ!(Ý |ž�ËôŸ\«W�­ÄÆšt17*{ÚŸì Šó¦œHmnrù`üüêPH«-ÔªLžpènKýZƒ£³Y¾ß-•™ÌæœÑ™+æl!¯×µüuކå¤i4Š�}R¿:ôÒ'\ùŒLþÊ�·ß¼Ìm "þ樯·Ó¢˜5Úf=ƒ´jð'—ÁoîqÕîåXOìˉ^"îsýdV­®`²‘ªWPÓZ´O¾¶#ŒœâÄ[l"Uↅ‹PíT �ÝA|�ò†ë ˜"?�;õüÆo |xæå^ÍØÇXì#>Ú#¾êйð!$µ™Ì"@}"ª]è NÈmÇ¥-h"’;$ú±#ª“¤»ª9LÄ�ê¥ßTé¼”!û>ùƆýìæþ–!ß “q=Çx@B¡XE8gé@¢ö#8-õ±›:‹[ãâ”G¦åºð¤X 46Mv£e±@#!€_ÈÊ„|i�c>ä¤Ñ’ÏïÚ ZÉ n©xR”É;KlMö:Mx?ŸÓ2U�½¡žq¬¤´—Þ<�)ô|Ûm.·êE¾øb ËÎDZguù�InÈÎw™bê]›Nî�þ^;ò�è–‹w:<úqB„éf·q ÏB=î�þHRšP'ÁZ4Œ›™¡ÞmW¡d«ð~¬»í}„3®éCòÅŸV„qÀ¼MlÈÞ;û¸•/ -bw]ÃÙiC Ëm�‡üˆö%e<0RN–Í ÙÔÓœöX ®YhO{ädb5Æïž6…}Õ†É�‰˜u߯[xçÇpRaç^?— 0ym§Œ™J¥w‹Ö:oüÍ#¤“m%¢HÕ“uÏOGزTÜÓÒþÖp?g BgíaOüEÖYÇ.5šÍ¨ó�›ÃŽB�J®ÄöS+xtK¥Ó_à+ìßÓ~ ¼&ŽŒŒ´ªØ‹Ãa+^ðiåØX¬i3ÚeZ[H²%¨ÿ‘þž ys>x !��¹£6I6ÃÒ¤Ë*v[qªÅ=ï—…¦Ó bºa5†å=câ5®YÑ'm WÏ€ž £´ue›ðgÍÐ>4<ÍŸ�‚£XKLs®åŠy±V Æ�*“`B{¾á|b¨ G:(b)F:îÝAE�œ‚Öþ^}ð�š{2JÂ/†8ÞŠjIFØ<±•¯ZÊŠÍR1mb4™«˜Šm§¢£Ì2IÛÛ<³Ù„õn%4o¨Bk°‘Þ¸4mó4¥†ŠÞ|ºJED¦*Πງ26h¥(œÅ¤À΂L¿µ–4cL©áwý¬zìܰÑíQ~\×Ä¥ 韽È�êøêþS€C³ç Ý­ÔÈð<È õ¡ò,Ì8·«wfC~¥¢{L‹ÏªÞy—)r¤¢KŽÕ�H©9½i›ÀÅ#d ¦øc/øÐ–0u5é` ªæRÄë£AKó2‰(Ô<©t!�(Ä5G´)è ¿3‡&–ë¶„Þn³ë€[Ó6ó€ È~ü­€(wü,g\µêá%nɬÖt|¾ÓK‰Ä~¹?i²X»�Àd°fï�š[–tê²¥�èæáÿÅOß_—žO�Oh5*ø1çä€ß©ú²¸¬¦Úøç|¯?í{K¤Œ<”"jNj!϶¤AŒí¬«Àúޝפ�#»}‹åøsmt&s¸…?•kFôzuÆ_Pš”·›çI)ë¬B[„dy*»^c>öã0GÛ—Ô�rf~ž ëÝ› còf /tCrÉq¢åLân»�jÌ£qJYap%óŠR î ¸ 0ýöZSi‘ÁѪÅ'Ý߈Æb–Žn6¡¶«øœà"Ööb“ßÐË%Í4?pWÄ80e¹â̬ÿzEv�SGo¤±¿0 Û’c+½o_¶H^EÆžî¹`ÂüñäO ,Vn3ÄZ}"J†$:âp5�•‹,&½±Ï‰Rª0 ¢~²í7>5–�ÛFºS{uA“÷—k;@sƒ°¶¹ó�ºˆWöÅö}¡VG€¼ÆKPÁ¤ §ms¹žÜ QÍ–¼w9øà§‹h!5É–*ðÖÖÒ1ªÂ*—­�4ÞÄòŠ…ßúoÏ@BYB÷É! s®ŠÄ$­·ß½yÃX´‚¨ <÷­š¶ŒŒ•ºî¼ÕM檱�Û›3Æ®½‘ ÿ€Áhòó}h,XhÍ?e�½â„– s±[8�}6o5`@þ¦!™øùžÇ&üLdÛj·N㜧®’J• ÇX� U3ñ¤zù�æ¯à G˜xC{å±ÚÛN‹ôÅS(ò‡PLðâæE¨5]ݵš}•ùã?/¥ÎàÔ²=áeÔ• ™'¿uæ6H$™ûrb*L Á:‚劢-ÁfÁ¼ÁÌÜ©3Eëªí�¸V�Ø»ÿ³ÜH™#¥¯ÜëGË,ÏQ½u?z—†xRo)F¹fÁë甬w8Ƭ1×qÃi•Õ>%dŽÈúûó|«Nq`§TûI=¹+ÅãÏ2–oÙúxwŒ§Š'÷è:< î²ö˜ÄîÉ(�H¾±™}ýjE²º¥Ek6úkàà„´ªþ¶~k?�ɼu�Y<¥Z.7ï9bïs‹�|°a-™Ãýö™“÷Ïв÷œ#ìföw*4ö·;6íö“)…Pßä}aÊx>F€Ì(ÇÇÿ2‡1n{Œã±ÅXç6ó1pÓHBfOñœV›qíUQî}QWNýùO¦pGé�‰ÌÙŒWE£Š|ø5šX\x›>0Q´õj=ˆþS:\µÑw–«Àï¼,ò°ýVÑOVZ¬–p“\ï]ÿË€”©ÉŒ>‡+åˆit ôjl:gHš¢Íq®÷äÓ¹¹:@¢9€ bj¯öw&T^ÉõêÑ�Fô˜ÂÀ+PíÛæ� ¾ŒöÃÈe~˜Õ{‰¼ÒºwÕ¿Êp» EqgFÐüFMiNe{ßeŠ5+‡Oý_níÕkàzRp³…Ê䯿Ÿðœîˆ\ív< ‰(­Ü?]JemŠHBRvjÎzù— ±Ø•òÛ¢cÉö)es1OåÖñ(hñj­ èµãQ0‚õ¿o,ð�3[šþpÑïGÿ�e^¬fœy‘¹K-Â`¨ÌU),ᣫe S¸U‘„ ²YrobíZ{ŸÂÆé¶Õv;ûÅ–ò¸&¹€^¨AX,»eL+�c ¸é÷ܼl�­ækÒˆ/�ÚD¹µø‘ cüã[Cá`32}P×f/Z“ZB ³ªtŒ¤p: Fò‡~+à^=Ô:Úû'ãä·cqâòküµq›þgǽʮSLÿ‡âµò¯ RM�G]Ö�l Ç®zuÒi ‘xÅéoº…üz”“°{°­ÅJK|CÅ`»u¥^‡kÌá‚ÉP`7°ý-+Q¥ËäsßU¯\kKÙ×eƒk> � ±ï¤cY÷Œô@•ÚòìD²ß F9ÑqµS@�B5Àƒý ï% Üb˧۟AlòÎÝ.Ù¼5éD‚ßt&²Õ$ê5 |I.iä°cWWÑ…¨jH<ÊdäÜÇ3;í áeÅ[áè¡Ý®ßÐAptU’?ðÂíûÈ.%CW 0}»?š±¼`õøpAmD£œÛ!0ó'Ê6’ýØ*Ô¥ç\7á Èʰ¬oA: G•ŒPQj$$ˆ¶ãƒm¨øFe4¢{j`k…U½%äµÀh³YïѬ‹Úâ׃Q{ºùwÅ*˜ öJ»{0'>ûs|¿Ï �oç_FÏI·KÈñÈ3òB[RÑE­Ãí� ’‹Ù”„�ž¸¸K<;þîM°o¼g2ØÆ4“3\”µ0~B5_ K�ë¬(ÝÖ›ãw[ƒË[yÍüÿÄp>Û=ª?q;(8£•éK0”´FÙªCˆ§�îÂ7^Ö„«4 _ȼÖ¾ÊÉŠd[Ö×þ=äuŽùÇUk|1!çÒì�„›iëøÖ¬iaжwrGZ}‚kÍ L¤ õ�ÈFì³¾E ୹ĕsÅ ñOºâiu¼‹¶uu²Á«EÓO§{ Rw@-óú’× ~5¯ífdäNž¡°y=£]ÜdöìI·g°¦*g¡4cÀAã©<½Ü[;Žd: ­Š+ˆmàðA¶x’…,"'0Vo<&v {]sèºoÀŠ(k�k"#G²g|ÖL°žMråHìVÿc ¢Nö ããÖ‰üM|G¦¶B ¯�=[xòÓBö†š�õ1ªUî.hæh‡¸Bf4+P £:š—ù]É�Ø'œ¾{çá„ý¶Ïù×çÎîöO}á©P*·ÏÕáfyS´hýé‡]¿hàÇ\g3nÒⵚ¡7è:I[2ŸäT^ù–¡¿®•ð+…*®µnAúÏ[ÊFeþß«oÌ«ã¢dz…šì)I¨:|C7¿Â »:„–¤æÃŒã,]jìh @®´ç¨Û§ÒðŒ±Š¤wT2öÃáApúI�‚sIä°s€«­J2ŸJÄŒ_Vž÷ôgÍ›C%­sa}«á<…}bÌ?Áéjh��t_ë‡÷Ô–¹=ú¸#€ ü&§ùû¸MyDºV"jª†J~^eî/ùšdLØÁŽÅ›wÙ”�þ·fzîmõÂ8Ke­ûé"^Љg+®KLŒ6×N.� 8ëJš>ß -0aCÀìƒ8uiÓqŒgm þÎB(š•1.ŸQçb¶¥‡]tZõ1‘cCˆ| ¯Î%„ìúD¢|RÕ’à ´ d{4M .g퇄 Üt1A0Ï0ßy¦ù¹<&d ²½,›áó©Ì Â7P‘G �,¼rüì(ªÏùziD¿¸Fâg²»[.,üT»EáÄÇ« ¢EI¶³j 9 ÙX%ÿ¼½Ù¡MH^˜=£½þ̇À6Ž*pòâ·�½˜?�»áñ›»]Ð Wè âvk� aíL·C»{ëÚ¾KÎò|A¥8“†Xê”k')%éAžל¾àˆEßĦf.ë ufz5žF]+”Î}ý’óJgpË8¢»“WօЇïY#`�^¾ÿŽs†S˜,Ívsb£fß!t3T)ÙÃ7õ Œ¸Ågü-•"¢›*-uÊm½�Fy`f-.ˆ£öÁÆ)¦n+ ±E|Æ  )¶zyo*¬Ê`R�+¶Ô�L@E�Wý_º†%™ÂÔ5‚SˆbzP Ã÷V„Fcè�e¤›opº´üÂÕ��hüØ'X >ݹë?2N¿¸hY�; Àà®ù…’WhÞŠþ®&}3•†”¼åå HZÉš˜èʲ“òy<¸½ÈDÿ÷4´˜¶%–;¥ñÿ.]†¡%©¨¯©3˜ÀøÈÉÛ.YÜ wÚ¼SË’·~¼Þ9õkiÊ7‡JAF 6 ÔçÍsvÍÅaÂúª'±Êñ‡Ägr©œϪNž¶©yõ\|ÂòÀÐõáIzHŽôÿ+gKHÎSï‰îû«™ íºÖ+ÉÀz ð{ƒ»Ê ¬<'¤ V±å\bÑÕzÂÔûb)ãåªxÿf|NOØ)�¢~ínÜ^vmõ.4Îïºã¢E>…ºN´*Ùç0Û0Ü[Qθž¢Eo´Uü‚¯¶_õ2ßÄ[ñÚkj(1нW<9oáÞoÚ2AþÖ)¹Ç­…ƒÅ88Ñ©Ù˵A#,RçZ™¾s”Hò­c!&ª×<×”jÜ€~Ϩ°S‘3ziq�õÖ>gD_¢~–ßß'.6ì>BÓ LêÙyË•³ÈeRç­Á¸Umò—Êß}À¡Ýßvå°”¼HwÏtáÉïõÕŠ�>„G.ÀþLu{—î—ey $5؈­¨bi@˜—çóCŸ:ýjå•Ï.Á]„ãpÜoÊEÛÍ[~‚$Ï­e´ ¿ÃT%aðïÓ"›Hºsúé Ä2‡§Rº^ø>s¡'æpYˬºïÛ/×Õ†�Úx4S wøàžèá¯W ÏQóù+fnë¾—X((€�Å÷re5dëo3¢]ÃÌ|îêâ£<�¶Ø��Ô*Û§þžËq{2ò©bglfS؃,žöí¯õ£/ø k±¼Ø¾ô"X*ÃÎÔE䢎·D)sL%UQžy lÓH;P9X$aJ£€Ý–Uèž %�éž}¤Åç<ÂÒi’cò˜lYãˆÆGlaj3­WûøÔ5"Ô”9Ž`›}Ðó¢|=%.g@‹˜ã^9çÁ•�È»ãv™¼…Âhã€;ű8TÙçnx >Æ|Šè`¹ì‰œÛãå¥ÎÇ9rÊÊ6Ë¡�j:õ׊2ïâÞ•x6壡Q lvŸì :M«Ú&+†'n¬óçÙ³7†«MgÐtžM· ÒÍÊËâ1ðôKÍU–YÍž÷· ½�Ô®w—¯Ì�F@[BÔ„‹I`o#e†ˆu¤DŒŠçëï€DÒwÕ¥·ª¼êx§jüZML`-‰¾6½�Ô…ˆû…“n–T±0c^å| éj©^8Y*Ëçí´)fÀ‚6‡ëƾ/ˆ‹ºRu¡@Ôd†7@y9Rž�b„ÙçG_Ó§tôF¼[¢µCmÿò”rµ™)êí ÜIÍÒ|ý ìÿ %Xf±O^ þÄ$éýÀ~su?ôB¹8u!œD+-!sWÍFˆv‹~ðÈÒ5‚×¼¾àÔýdÈ-M`„j”_A¸�cÆái{|UQ‚ãÞpwÎ/$·5 ¡s·žã1ö\ÇvˆÃ`›¦ ‹—E2¹bOãA�¿€x‚±OœÉK¦) nʳîl»µ¯¤ìJ˜vÉs‚ž&#ÙºTïÞ=;ûͪNÀ�Äd‚°œ£ óË#»cb—!ü×§Ð|^ÏÚAqÝVRa‘c«•ËuO»V3‚J�í”íVE5nL%ö™W©«(Ds•ÐhŠØºûrO9úù¨°íjß4=÷i©m݉àSjͳÿ40ú:™ZÍ’çþEW®°–SÈkF|Lò:IyÍüªÂˆèÓw'íÜþå—j±í3¹>•ˆy¦‘¯i‚eˆ-„ØË`l¤Ut/ÄÂa34§Ê2ez=±€úàŸÇ�Êeóòpõݼ8øMÒ“ü§¾€QÆÀ›±þ òî6)úx4Û¡ øıäÑ(ze"cu[!=[þ¢œ—U‰ÆdoÅ@FËÕN·²à�¢ÝÀ’‹@*I5¡t¬«vÖ•SN`í¹WK9ŒWmh²ÂÑ¿�\X �²Ù/HHËv*¼õÌc¤+ù,¡KXçŽàвL;4LääàÕ>¶vPÇ]x ² %Ñz9ϼž!ãòp~­Š#§iûFlƒiM•Û�/ç\º©ôŠIiÓÜÛLñ—ýS?x�mçæb¶Zªlå�¢XÇ…šÒnà¹N,âdójŽPßG‡ÉÃòôÜR ©Žà¶ý�ÿ¨è¦¦FŒ*Ó Š3åë䌀0.Å Âüð¯¹]–À¶²"¤ÇKŽ#rÚŠ `}_¾ýích�©03aä Ç¢HX�£ŽPô–š ­üÞU‚MèÀøRü.�å1áç@Dê§8don³iö.ÈcƘڂ r"‡ì;Lò"�´8©B7�‚Àã r}*U—”±ìkÓ½ÉZhÁ™ÍˆF$Á4µ†ÞÏŒ·~·õžÂ¢›äéÍB‚ˆæÀð")½ú~‰mGÒ¿Õµƒ·³GöJÕ˜)f ¸ˆù荓Ï{ÊË.Ô¬‘0§y³¯(E1‘¦ ¥>\Ë{àDZyŽš’�LjþM_(UE1Cy’°láÔ­3 Âf«¢âƒ*‚ P?Ndï[ãÍÒpÊQËð—i¯}k©Á>£+|¯ iK¾–@ì 3Âed§êeÆ¿!8vPQ­¢ò|e÷qÉÅâšôûíÆ Oñ:â‘JÞ¹ªÉDØ8â¸DG®„JúvðÙ�oüËëT¢'ËË­ô½ŽÕ‘õ:½…ðÒ¼J/|j¾Ýé] øm•ž wÖ¹"<¬ Ë‹HŒ’6MùÄbö…§%9ZÏ»›b·VDvs£ ­Vô!ÙEñÊhxéT‚že•�(c‡Õ÷ÏÝ¿¶•²1–æØ¦úZ-6—¾Ë®…üµuؘ]÷Á-´H#¤Gï‘ Y{ïå6Då·€ üô¬LÔxMZ'ÅqëH›M”N®×p4×’îÔüESmÃ~ë £½vJ‚¼z^ÕÚ2Õm2òaØ2~j|i eÛJ·fˆ1&Ü-©‡Ö ‡}GÅÐ:\ô«¡¦\«f‰:RV²ƒuˆw8¿tË_+.r Ëß‹ˆX:«–hG Õ™Ëżá¬áÉ×öÌ�BNï9U“¥zpŒ%˜›Ò7V“ +?­ÔfÐì±oW~"Paeþ‰ÚÏíꊶÁnôw':ˆÿªøýjcÜ)P€‡ü ©:Äc*½¾ƒÙû!WLÛÕc ¼EÀQ–ò㣠± 3|Võ²“;×a¦ÐÅ#ÎoêM…òµ8Ù>Û͘þ!+rèc~'½•J#þúEÒsºE ð³MtЦ•î6ܵÿó·G�¡ó§úqMNCƒó�ßdñ0MôœÇë©@'�Õs9Ëz/Þ¾Â!Qü¼º‰ª¼½ž” /˰ÿò=7~c•ÞÝ€ÿ2—4°)¸‰æ˜Ã,Ì·mõ?åIe|¶ôg(?LdÓKòeGv)WùuŒ‡_[L˜~{KÑ ÝÛaôW§Ó€Œ¹Ežoõø,¡#½Q†­«OÄbáŽ,Ë�á°ŒÕÙÿòã„ð èq´MÇ‹à?¶éŸççèò²œHáêèŽSJ€ÖŒÂîÀT›öUhëûÖ_¶æpN�¿Ek@ã—Œü�Ssx|ÖˆTáX®DiÛ0‰PbY^5™G~†ÀÉò£cw.Ë c9Rz¯¼‚juJtÚ_G%Wj°B[Û³½Õ…ϨLý{š'pžýôFjþ´ò9léé*ÐSðÍØ“]P¸†-+c×–Ûúc¿&df¶û´ÚÒËíÒxPX_ÂúàVxe( ÿ/HbC Üã¨Êf!ý.À¼sV2V:óE@àØJ“QÏUɨo¸EÞ¶[ê[§W )CX°ÖQáû…¡!¸¡‹;e‘Zð~æÊur­Qâh[2gjÀ-}MÜ®ÃûíLö͉‘²MiÊ=ÊwDdiëäˆC@È�æ«Tom7ì䘆ÞñW6Â’€c~ëK^ä¾·ùô}¡"pÏØUò“ S êd±3Sÿëå·HG6ýµ8$q83t3\ö6ÌßèS,Ó_G‚ á;I¾Lfg ƒh-YчsæZ=ïgWF5b7âFêÙ` ea ÑdV° Á­_ã…Ѭ•kÎr ÷ù9¿ 3í\wÅ¢3“G~«nЇwü—]:üa*õ €Ib~“9¢ HX)K§&f„£CÕî½äÌ •ãNõ/¹}@_©O DÞ-˜]ÀvþÑ¥ÁsÒ¦¨�bBx}×÷f¬výŸjògê<*Kõ�ðÝšŒ|Ý�Ü=Qµ_µÿ› …þœb–KµåñËr£¹X�ÒR•þV×î8¯¤/ ¸SÄ—ô÷_÷)ª© ‡¶›æÈ›;gÄøjè†møØ‡Þy…,÷¿,²ª¹nJ^k„.k#e!mD9@C‚0᪤’âDh'ä1ÁØ—CuëÐŒ…µïÛ#R¥�×AL£j¢J„%³Þˆ~Nù³¸Š‡{íA‹ð:h¼1 &äGŒÇ'˜”Ï€ðÞ)VÈfëêß!vÉ·%·ôšÁ+bÁ„Î~üæ '�1qXk�e¢A['ŠoàÌ�» •<‰Âõ%Ilw‚ð? •�sÖå®ÉN2ôÐgio;ç˜n‰7Âß·–.Kýt S =Xƹ°]U²V¼Sa«˜ÛavôZ!LÙ¯„*�ãxÔ„z¥ö«}tÉ=µ‚'ÿˆi1 VȵwPZfs‡Ý­ewF.yÅv“’ôtV’©ÀŽp6NžS™?™*Õ$׿ÃýÒ—g¸Eˆ—Õ{ÚYËrÀþ%™U>±!S^ùQæ­œF]˜ìØQÆÕ\¯ù¥ᣠZŠ8¹³RBt–†¸¾²wï©foxJS”°Xàu>�¶×»V—¼Êtü�LÃr¦TžýûS¸ÜâH±Wh„¸ø\£¯ü¢f¤(BܤÞ(Ì™þQt;ý_ÊåÚ=I!pe¦0�¸Õí p F â.ƒò]Ê_ý*¯“Ü&C Ÿ?Ãâ{aA8fœç‡#¨¦¶Öý×òÛ«XTÁ|`…²¤C¹‡�×pH‚1éÃÎùD¤3yBz™õ·•39¹J÷åBüÕr|0ëï%?ƒÝ 56?R,´’g,ØÓÀÐÔ Œ¿´Um¥æÖV_¤¬ùŠC"SÀÍh,Hxv>Òrßoʯëж$�ã|\ûÌ pW°ÏVò˜<¼×Ú³ú1ïUù=£;øt |�³¢ØíÅ„Á ƒÏмkæ÷Qšö-–Ùç‰ÖõS;“ˆZ8qÅ„*­\Ê‘˜cï~é|<æy‚®ß<«ˆsj¯ç—Ëb¿{1~þ:ÍwúÝøZÿç2T=´0Ár‡ãÃ+žF#«%Ûùw¶&0h¾±ky`߃z¸ louí3E¤2ѸåŸ�ó™-€ŒÇ%ãÃ`fzN :»è'_ø"Þ8oäÊ}Ü•\ŸÁé½ ‡¥# &¢j.­�Pƒ“f¥3¨{Y›~èÑ×ÊÌþšº6":­†P÷ˆÒ…ï~­"r¶°ãÅ}ÿZOUÙÒ"Ô0'x�ãcášø¦L‘ûã3ÿP)†iج„çX8ÞÕ$Z@æÔnM�»™‹¾¨¼mç2ú¡SF×xœq핵-©ß­¾‘G‘l¹YŒ*O³ŽZAKÇòU�vð Vp3a6숧ãeb¯àL£Õò…Rm<œT-K‡ªÜÆq^�gƒ"(s,û¢µÖÜü¬B €‹ Íóñ;­Vñý«d‚®�D£ùƒo¹C&#Ê2¢$»!�ù–ÿÙ¨*‹èže¬óDan†{§±‚üÍâÑ J4~³åG«‚í[èŽæ Áº\«Œ‰Dx@ñ;|œ±“Ôz7@rC> OSФ¾êÚ+¢Œv#úýêõ²ó�[$yùU�ˆ]¡ºÃÄÃ^ÂÐÞ‰ò�˜×3<˜0mÔí œW]t¯èÇå4/ëp̺”Óiøðyž6ç(cé!aäNN•ëþ;u êóÃüX6ÒX˜Xshpö€—Þ§Ðkyõo5u§Œm K.™ø_s7Ñ™  ô0P¾ËM�~ £[Ù5gÎbˆØ¶c ˆäw¨ï bÍ%q‹ªŠ†éœ¦¨%iz:Gf0¹–—]ZîA‡ÆŸ,šŽ¼_TZŽ:•–[Pp`¯²`’XAëä™ÓœÛ磼Œs¼½LÏŽÍu?pÁQ"/ñZú¿&õ}€¨` ýÙ¾ +žÄÚvx-5døÑmYnž`!†#A@t=¹¦ú¶‹„@³7/çýð¨Z_U{œ•¤Bp¥B è�ϦF³1ûD˜Z‰5娑™Ž;VÀ5YgÛO!Áºç—#�sè8."ýbptµt|„ßõeµÃžP@Ârš‚¨pt×üQ>»ÂÂæ¤6Ñãì>S[kèÍ­~Y·l#s.o"¹eVØ.0nÜ„µ!¢ó!T!¸uåžâ¬VæÆD¯Œëz÷ÊÒÎ~�¦þ£‚ÓG=ìPöèëk)­ÌN]ëÜÙɵkÚqœõiÞ�*ø­lM¥‚ Z»ž±ÓÛ¨ÿÂ’ª‚v[ª”xšÏÙ ¾ Í<‘—·gœ#úN—þJ�ãQ‰ƒ�p7!;RHJæ9iÃCY»£žÝÜÈÉ%@8�BæDå€4<ŠwCç“EþÕDÿÚLöR¨ Ÿ‚Bxs)S¸{ ª•jWJ`üÄq‹Üav¶’Kc•pEÇD¡‘ù%ÈK0& ¾’®Z�CNù)õ]EW™vÀ�]‡kÍKK4Cµöt¯×!8ÇÖ¯ ¯1ÿšÉs a—QNÞ·"ž5¢Â¶  \ÝOh² �äLRȦ?‘0Ã_¥Z¼…sµ÷¤‚«Ù—+É<'‘Y¬"ã_]£&0úgU]Õ*²81ŽVèÌɧÀP(”“Ä�Èï5§AoˆCAo–Ы½ûKOjÇ^Ÿ<“€ÕŽ£-ë_4Ž3|£é×A)¸´*B³V,–ƒ|j¥FkOŸ bM6ˆÏß] óf+|w©@ŽÁ”D"“ƒ}Qþ£# 9ÿ‰{t3ºLWJ#ëN kŽŒËÈèš¿“U—›We1üš0î( ´\ïä¡ç´ª;œÁ lÌ fŠ�(yzÙÓ° ß°°º e“‘¼Ñ¹�›w鎠ØHU“žÖ4é%ôvšy5žgõ¯Ýþ27y�…5‚ÊNôÀ.ƒQ*á'\®_ÄIÿH–Ónf‰pÞmiG‰‹ íéÐ)L'2‘P;ÇÇëY¤í&žòí÷âØDmêÉÜêr0—jÄÔ:€òœºQlNÿÃ$°g8ÀH)>eÍ™•"/¢üA¤h¢Ç’ CtƒÐöî´Nùà�Ф[ë¥Iç9¥ÚÈ ¢s‘OVÕ42=ÇT’ÓZm~�- û†‚H]Œ�im¼®M­.ÆAL$÷ßä¬gºäv;ŒÒ…žG³›³A»Áå'6ùIáLDd•Àlzx’“»‡bðÌVä´L$¼Áû²`Nå娲ææïÅ¥Ëê<]GŒšnRxDª–ÄݾÊ×SÚÇ\;´b·< ò±�°A§a¾°ku ƒ\–Óó·ƒövjö.IhÂ�E¦Wùë`øÔ ³î¡aª`‰B´,Ÿ”ôàV"V•F.ëà2Xî̬Í):gaÒ·JL�¨”òV–¯5P–(Àe£Í™¼F£ÔéÍMêð þ€jƒ¤±›ÀšŽ[Z³%6CG�“s¬#ÀŠž=Tó§ð÷wµnDpO® Ë2àBÈQYªÉ}¦=‘§1p†jSyH?¶½ÓØàetHΓ]´‹š1 ÊD‡Èùs¦G‰÷Z vØ|€”ð÷i#D\»�„Iiñq'®½o·I=#‡§"˜¸¬áeu�ÛÉc"@J‚Eë³þ0|Ã)Eÿ‡EíÏ€æÝ-¿× P] zŠqSï!,Þ.뜰pGŽO7 YÞô=¯ãO–Wjë\Ð ìtD#ý-´2/’iž´ ‘‰J÷±†ñþ祯nùýÕ²)³å_Ÿ´€¢Ýü!‰ÀUÄîqbþð³þë·,ÇÁK±(ôsí�¾r¿yh˜9\À›"�WШÊâô-¹ƒ9yes›ª fá°¯öŒ•}–ŸÇ•„p³ŽGÞj2?Ȉérûæ=çÚîö“–§&¤)aiH(^pe¹ëÿ‰Oaä ¢p^„�¢Ûo"S$-û–LI7¿Þ‘dMË�Š2’ Ú!ù/ÞÿW rnœè{ž묖`XŽU¿(ÖyƒÂÄWÓܔҬ �ËnuÔïkª„*Ú¼H<-Á�þ+Í ›¦�˜¼æ ƒ¦ÅëÀý”BüŸiª�³p€K®7Ù¡¶‘¬ØžH:ã'ÜWQ�Cè%ÇU§6u­}½6Ñ:‰&üž;a—[}# éôGŸõ IàcÕ·"ÊÂ}fyÙw+úW¤°‹*dŒ¡ÿøGŸól(VÂÂÐÿzµŠ ß§Jç¡3´ÔºAÏß—Ýn]ä%Ÿåo5Þ8Ôú±”Ú“áã3Q²°¾¶­’SÚxÙ0 Йò¼p>âXãLTIB¢=“�€°ú’8e눵„¹ì:X4éÆãøøBÞ†Ðý¶òŽsn;12ªàŽž-Ö²Xð«E)õàu>¡½ $ú$Î0)0÷Ô›ÈFi~ˆÙ9ÍwjÊÌ%p˜ 5êÏó(—Û2¯�M Çaˆò1ž¨õ°�&"Nf ïg/÷Vëka�aG¿1GYR}1‰a4™$^r×uY[)ƼrèK"ŽtФJ÷ .QÉ[]3„V˜®cA³(D�æTDsìHÝÎz#£ ”jÏÿ˜ÊA ùÌ ;SYú=בçu�!ÀkfmjÖ;Brd%:_MùŸÃ7•$e3bR¦q êŸ#ïïcÁÅâÛbMÛÜfV6Ma¶ôR}`ô�ìç,Åï·p”E{òœñÕ#it¾³.—ÒÇa®ÆQ¹Ç\嘋¶c·½Ü@»Õ’�f@6ÀIÄôˆù鈓 ½(á+rò? !qKÕ[L5ƒ‹Þ½¿[¿úU\Ï*š$CÔžöúz�-Åxëï„‘¥¶Uà±IÌ+@o…§Xo^ ò _x?ªc(—°Æ[#™ÞÔº`€ÐAdÚþ$®Pfô]Ï*�°g%A¥z4Lf â5ìu^釔19øî†°oÁøï*�Ó„Û FO9t4oSh»¡È—èÌ×ïÃ,ëP,^Ä¢“Ñ©?ªÆ&¨à�È…<= ?Åè�åÏaj·hœHr4EìrbJÅî6F‚nì šÃþ—¼-RB†±ï[cô` «þóS÷�å#ë¾Ë®ê )«¼5~a;O*ÐÙ{S|šêèÚÖŒålSB€»�êqÒ<[|Køþ¾] ÄXŽu×®±ÌEzž:`þûÁѹ‰‘äÞOÛ>PlŒ)å|ÍgˆµfM)À�¯´èÌU,5‘»�Ið]"î1žk.^Ò˜s8‚Á¹dÖPˆ‹…Î,H«×:™×!'r1*žùH§¾(Ã0Æ(±–+­�ˆI[4ÂDl’§ž`T»mÓ×9ö××Òª_ÛCã屪•%ŽÏ:t½€¢SH0™R9 �KÌ—jÊ>¯>�Åe`Fß¹ùðcÊ o+ñô’xê/•!Öe ا*ÖÑ ù{^VU%‹.$×w!S'xlFÒ!QÁ9íTb\£©9Ùt‹;iûÕ~£íüoE‘�JMê=Ó\I·x3+!CvU½¹! È�Nõç�€ÅÊ[³6ňPO*[4ߊõvSœ-²­·ÙjsËù’x\Z¸\^Ú}úé÷_áÎV£7FÑÇ«^öz­ù•û½/¹B|–à C±Í»È4¬¿‘ Ÿy‹ Ö ›K†àdÄžS“üM\U9UÐdþšT»c¯öÈ_ BD;>‡þtPg4 ¹ü�1ðÑPÈb;Å¶æ ¯ÑÆ€²ÅpÉj[Sб¼äéb]÷=Ax‡6©¨† Ý ê/ØÉ#YòÈ5±AŒÎ‰†•3-Ö%¡+¸?ß\ÊŸ�ÄÿØ©EHÞûAwò ×ÄC,CË«Y:¦²}QW‹tÿ%U,ÖiÓ‚¬}¬Ä`OZŽrتɋœ‘ùrÑÖ™OùˆH”ü4­px1o›M{%#[FLÛ8»�ä“/?ß²È\-öÓo©\Ò,—ž’]ìªV—?JR>{ét¼‹Ðü€©"‹Çê˜æA ¾¨J{–| Ï´±è(}4¡|Qij*ÚÑÖCH'À$;•]ZècfPéµb[ùAYßÙ �&r/ì®rê*�hz]¤½)+þÛB°Ön!zÜÞ ä¬ª1?ØÒ ßw‰6pÕDÖ¢›¶”ýdò¥© “3¹ô c^€ÛµsZgZW ½`ÊÊ6LÙUóÉÅgÕùÙ ™ÛÁ?4ÉŸb‡ì©? SEÖj0±„MÕ\^¢ Ú2Úš€n°|ÎK<÷͇ús˜¹þø‘Ü^Û¯ÓNš¤wŠçãBNÎ?:–6éßÅNÌû:èàmì¸lø®|¸·„~�{õ»XQr¡�g­ÞD§ÑÊÇ¥�Zà·[Bé=BÑò¢Ó–ßr?¤ ¹N葱ÿh�Î$‰—;±àK3Å9úMìØ¹:}äŽ�|Êî§n5¡_¾;4Tñ‘ï\üŠW`T©t5 *GgDj¼„eÿq@µ¦`Êá¤ìöœ’I,‘Õa4õ `›ʼ6Ò Ö’>êß#mdÌ �8 •X²hع!ú÷ëóuW£ïr[|84Ðð½ŠXéìàßlµJ�ѵ  4Ôï·Ú#hOº·ëúšÔ¿½Hý¤ëu Ü çî¨c!§llñb’1«´7ÒŽ¥ù?eçܦ�î¶§Ë`ÙX"Wß/vô2gÈd/˜û+®È`ÝÈUÂìǯ!'ÜýB¿Xáw ù›ß¿0•"dù�ôYQ�ÃØ~ÍÜM€Kåΰ.¡ÈеÃý\êõo³3é3 EÅ]ªn@A∋Tê˱9¸jíhÆ_ˆ…¥ÒJóºã3Ú<ÿÝÕL©5of>çù¢¸éªŠµC ¡@ ŽæÍ,m#mýÈÎv=ÑóÓe\;JÚ¶L{2M�*íe�ÌÞ÷÷ Ï z,ŽHúdzãgPðAï9܇]Éf{àÂÄ£¡$²þ‘eøÃ¨âzÄFIrφpàB}«ó+h¶R¸T ësi\ôsz¤“é§Ô¶\p´ÛwjFÒ yÜnþ2Î�WWŠ9�*ØŽ^hÙ†ö<}fÐHßÌ)k{Ö�†ÝX/˽ÃŽüáO}²U!¤ãù¼´HD[„z[">˜¢p‘Hå}°„³èJ+{ÒÄû/m0²^#1’Sÿý–~Oæ‹ ûÀûnš„ï¹xÏuùFêÊKüöàQ–a¶5)öžü˜iTœ¼6° w¼ŽQℲfy_¦×Ce1Í»‰•ÎOÃ^è>²¢ñûvž>ÌDhHÝQ¯ûÀ7 õ%¯�« ¹[l|ëÆgìt+ª-E ê:g€Ö´ü*z™5s&Èn[c�)k.ŸÂ{…‘žÍÐ KÀ#‚�U”~“zT }Uòƒûxæ×އ—^±ÆÏÛ‘eÁ÷éh½ h&Yy-±§ÓÉÊhºÃ;f‹[¡ˆfþ0÷YlñC±±}bòÛžÞý>‡ò¥{bÐ ,ð bßUû@óFÄÓ�g�à[T;ÅwaE¬v íl²~6h·ð«ýÆÂbµ^µ«À¹ŽL`u~¯^G{Ê=Mß{l;þö˜·Ù²¹äþ/[Ë" ŸGlÝ&ZLßhê]Më�â2šœ(�®e]ð­ó 8íîO¤îG“êxÌÙ-®S2;§e„k |�Ô},…T¸ê‹îŒ_‘Í`òq'5‹¶z”bô{wh¤Ù%Œèh‹m·C,úôA,â[¯,Ü´ØY wÖ™O’`H¥:w€–[ß&¶†$Ы:œP[÷â-/ÊŸ]Q=v3ø¹I…A-dŽ)Ø1Mª¤pxtXHµ­×¨\~±6SÕ¡fa1Ó˜Š¯¨·ès5%}û‚:öªrÛÀÊœù7i8x°·P‘T[Á%jÞßâ™ûøáÇ´ŸIØÌW;©ì ª + ƒ\ƒÐÿDµ<^W±Ç›ö�`äÐÐ[ìYç/pÏ~ªSäXï=Ƨ)ŒðÞíšñÛvˆÛëüD3 /ò¹“ÅÁ3(°®«ôM9c;5j–W5Ž#e¥Í‹T#“P·âé…gªÑDZóòÓ ÊÊêñÛ¹Œê/ÿRýóìcV㘠Mш#xßÖœ˜úÅÔ”ÖWX.TSý³„‚fÞJÅtO[õīƑKͼU{6Ã�ÑòÜ.D®ŽÅJ5vò+kNÛ³HÙ'C«á�^¦þ7P§.Tòö‹œ2\ÿéêéUÝËhôõØÞ‚´¸@¸ñ»?*ÃF2txï½Ççb¬®S${(ªÉ‰œªÄ’0ºæ³4Œi.Ô•…ízÂAW_|8j­›†°âïòܾ;›‹§™h÷§fIóiÒyzóð&ø>øj¹™Çþ穘#a·®àßhaå˜�až0ˆBr¤~=¾õ‘Îâ œjPÎoõI0Ô¹KýùÚ½~ ±û L¡…|Ž}Š–@‚_Ô,²¾dÕüìup:V…z aÖÍc?©Zc„¦õs ògÇ¿áµ^Ó5tã??¼´l=bÛR· öŠ0Sï( �·Æ6Ãí ;‹X»®3YûT:÷�ýßÛ±e^&›s=Õ®™Cè„^lIãê_gyѳÚï¼Öçã†\vìÍ¡Òwò_`ñtMds­ó<ê™w‡W.vù=¡3æ�:-úôÙ˜¯é“j¼‚·_âJê‹8ó¼áÉ©aà‘¸]¹º~`D½î/›‰Vºxbï]Æ»ÎüíéžòÉåÌ.îÖæ“—3ÄK òÓ¡ø#äÒ_8:^ÚY �ÛùXh :¦¤Îç¨Éj<â/ìþ𒜂q�Ã�!øüP­ÝôÜÎô6�5©,q!í×GŒ�+DOhYZX�Y›ñ†NË„:¶¿Â£2«µ¬„Y/Äg=‡:ÛäS»P›(¿ýÃ4½Ó¾‹1¢T¨¹\KÏJaöAÁ´WPCy>B~9^áUÉâÊ¡_/b›z(7Æ{Üþ¯ùÁs;æîHMã†BŒî±æª#�|iuîD+é—+’+àÅ�*ùö[7ø¯|¼ÇôÛ¹�•�A_Ž!ùBaÏÆ<ÙãMaë…òpB2—ªåîv paÌüÙ¹#Z­X¡{ÕÁ>óÈYW&ÚÊæêmõ©GEÀûd·kué©‘óƒõ^ªkÇU±û„‚oÆOÖÕŠ®³¯Š^ÌÓ.ýÀz™¥ÏÛÅ•Y’˜<Ñ VëúŽú;ñJõÔøšÛ-|/É3]ŽÄ—»kc³¾êÛ �£ók¤oP£»¶“, ‹c|Üâ϶Šª@7lÔ4äÛ ø xeºÓßÉŒ˜Õ£{ÙýMÕ•Ö2&•ôJ% ÍûÞÌo^x8ÛŽ="ÓXTv…ùCÛ²QYø¬Ë«�jf–c¾c(¸A«Â×'"÷µzëÄ» ¶kèž °®Œ³;_|)¦ë‹°dù okó‹ƒÒerÊ»P×%äQÛDÑs²ãoã÷(æ_Üé*�ªe'¤¡ÖâÁ´‡Ù5Rõ©;îî�Vá¸åDELÐÖ¼ º=¸=pÃÞD�k £§/�Þ”âöJˆ —Ûäm‰ºÉÐ`Dn†{?²YÓ©GžM�”þ;Ò'£úþ•<çØÖúVƒr Ë�Ek+â&;»zYž¬–Åå²6œ…4Ð;lj¹yÆ<¡‘a5ÃÏ_yn,o³td…áàðÔ‡aæìÞ'ø›À`ŽTÿÚ9þMQƒ¿èU°©˜ÊtsƒÝyñðžûgôÎø³ û<˜»Û”µíœ±Pu )‡GãdUû#. OXè?t9UÓƒ…7<åÒ¹®·²ÿ9ãw ª®雜,?½úŽ[»Y[‘¸ñ£‹=£.ÃBJ�’ô$µ+†¡HűªìGÏêOµžÀ=–n(ü´]!slÊOÒYtûŒ€}†ôÞ¢ÁZ�:—ñÐ’² �y— Öܨً¼2ã»pvÈ�æöYÏ$HJõµdøF�åxâWœVÌL‘1yÏRžf- çÛ;¦ˆÑ0‹'¤Ìo­*EY3ÇÌå„v ô{ë6êho•,j{»/˜a8ìמ-()µ(¡;P†ô²Dø�·¿=Á8·%Ïèj³»ûs-ìÏt%ÎÂÑK½wKXöÇÙø 8ò*�–äÑ6ïmÞ.Ç=€›'P«µžK± 7‰÷:”L†Qnƒ>¨EœXxDY@M¦€0œ+õ�5mz̺=¯·"ºSÖm¤¡†ok2Û,/rHÝ1*†vže�½›ð4zrxhh~°X6»…·=&FÜ›H_…rè“$* Ù‘îk^¡!Û|s9YÖivAH3?UÙ\ÃuhpÝöú cÝP¨°Ö°{(ÑÈs9Cò(( û[`Óß-« Êã{�­7‘b?—RêÕh0YÔIhéÄnXùšWŸÆí{èξîŽÔÊxF¨#Ù….èÕ«´)‘ã7ƒ+X¿ô„9Òùt�"c™�`‹ÎIJ5ýFE¶NëQTTZtÝ fc.¬Üƒ 7¥Lx®Ñ�F§o]äP}¿ÙÝœv80jºà"\|@ªõÍ,¢ŒšXO4<1zŽ2š—Î*¨R¬ªåÔ©ô¨òBË­¹Í׎»n.Ë$Àed‚-eSü ·WE7Šp˜•îkYêõ0Õ½ "eôŠsFØW=r=ÜKÂv$i~0aªWIž­Ú‹6·~ˆÇjö YnÑ­L™òé=0“­ˆœ'ÎâÙ\ëF­ñG*t±¬®dl z …6¸uJ˜-Ë « £,“¥.Π¨¯RÀb<ñ»Ïé!ê!¼€a¡3žæÞÚ‹ ÖNÞ¸äÎ÷î—¦sh²ìñýÂÉ +¸Ç¤¼pbå#l¨¶&Ðì;õFvÑ2ø&ÕÚúØ?ËÕ¿uʃóÖzê½—âÒí´žW_w×P°öq/„ÜŒýï ;«Eü<…{’Þ>�  ›MÏ3çœÚag€‡;)O‚Z’¥Ò›,¢›/{Ž“ž|È6ƒÉ$xÌVN°·:&ËJSú㮃A+-¶¨›z0ët­/Ü 3îI!�{1Á’С$`l�F°bR'Œ‡[äs­[N‡Eòõ 9 ¬Ú wg…áû’¿P÷!¿u[¤„OÃw€i$Ó��´²ù…s¿µ°õ_j!Æ|p_£ºŠE²47«Çªô%®ÿcO›¶KÑ2RUx,5ÅÿäbçŠ §'_"‘O‰Nl6èãp.â¿ÀÌë¦�zö^”è?Ø›–k‚ßÀ|æÁãg‹©tA�æ¥D\æ5Ôä/qÂ~^ð1ºü�¹- Å „qŠ„ö’ÏÒ}û‹Tü B¹/Œaö­GçUi*ïÃ&œû;ì Œ_i×é¾Ä$d Ôã±ñâ•!²$ÀÑkƘ;=âõà†²À+(jóo>åo\ųٲšÔ¾�Aö¥�% äæ·õGl¿�-ýEÚò;ô%Øvš«R k•è;¾HLª‰8M™†ç*úa»:=ò�„´‡”�ˆËLA?£r{¿Œhk}Àh€ÚM ¡”œ °Áº¹BòÌç³êë i/S†�g¤ÃÄŸŸ #µàù°+DÚHÊaê9ëÞjùˆ§°³¨'˶ÖáQ.‚5ƒÇ¹)¼œ>¬d¡z—æ&µÄ€|Óÿ~¬šm˧ê 9íüB]ù=I¤éN�‹Œû”Â""­BaùŸÏ"f!¼Í�Y»—ò/òôå {+½S‡ Ê‘'tƒåÚß«LúæO°àd!ýô$7UÆ·rú·f²®(jbL+ÔÅëHÄ�œ’�­I˜…Š"¥�·LjB½qÎBÙ²)x/ð›fz9}„ ù¥CPÀ"{ä«>¼¶žö›ÊGõÈj–Y¨'–gx3C:? —l�lºde:m®ï×MÀRÐq¹Ð}Z}³âRî Tì“.@n¦ ]E>mcJk�gà8�køÃü±Øå\W"JAc=¼ŒJlß ÷È,  möj¶›;™ ÒÜ¡ò)Vzñß‚÷n?´ Ù௑ö™¦4ÇñÂìÊŸý&i2$ÎÛöÒ¶”%�žÛªØqa\,3ZërLª0âQäeSç8‡4[އ÷JX²®²’ã¾tL Þ±Oë$Ù¡\1“g�ÁkU‡a"¶ÊÏvWMÁ>쀷¬>˜–VÇkÏŠØ|=ù •Jò´Î$ ÐÓןǧ`F(Ž¾Æ `ÎÛé’­í±êþ -Ÿ‡»Æ&6Ô‘:ÑæÚja%&AÙCYÜPPr¿Ç%ß($@8)c¯ú`„³sË>¼óìmÓÒ~ŒO¸nI2Pi¼¼Üø/Ê‘G¬Ÿ9sÕ”_âºáü`®þ~R²%Åq·æíÓ©NÄVVÍ•ÖW3š)Ë„qÂ�c$Ñõ°£P]m¡Øs{LPÔ'Æ#ç�ûÓF¬ÞÜÐÏÁÑÔ¾ƒH%2^YK¾´²`Lc›Œµ®˜Ì¹Dl™LõÄ}N8Äý/iÒ�%ŒftTáÙÕÌ÷äÀ7(Îæ(e‡ÂL›#µ>è{ªÏKgšÄï¬5h=»r“aµu@Ξt%²À-\SƼ/ŽŸ› fv¸Œ ~À´Y·¼1a^í–߬ê›U<¹jÈŠE¶j3å:ÙjýÇ�jë:„�“³ªVP*à† éMágt= >îG§Ä�²ÌXNc3-e;òë•ÈÅ�áqßB ¦-wˆ,Tâç4 x1~Á3(žë( �fÌ/òÅÌs»Ü›,ÒþË›[`gÝ­¼½öTá± �}L‰(fÕÃÚ•÷�qdó¬öwùÓhÇ3|Ú@2¢œÛüFw]£é7—Ûæþz$l”ø”ã§Y’dylË@}UÕQȼ?­|s]TDK*diƒ7¾ª½¦Fý0{‹YÂoh¬ìObÈ:Ž„HccÑËY‹ ÂÛâŽu… ç_>ðM¡A´´ˆXZ×õ’ïrò»ì¸¥¸ÇعŸÜ_+KŒ´þ³Àˆ¹®éwhƒbthkMÅü5®�üðXúžø°8w®h6QÈ ‡úæ Ñx‚Ë„p|;ɨëÁ±Ö#9ÆHÓÒút$ñˆ¾óˉ ­÷�‹RRÏ®£Åʪ4õþ™ê1qD…«JÖ™ãôÅYä3)òk¹‘|[‹(²Úuϸÿ‡}[¼´h�¯„d\ÑŠ+jMUÃçRYUÅI»í5LçÚÂÀ$D',ÿ¥Nå;úbhöÙ ÿœÍ $tòÈÄ.höãGzßGßt6`-8‹£TáO&›Í¨—îl�H>=�b˜;ÅgyçO‚xcÅ2€‹ÍÅó‘Ž-twlÓªÞ”�7K CdµõdóŠFñCF¾ã|‘Ç‘xç“\à¹1*™ƒ7ÕŽÌ5§Xú^;Æô0û®Œ‹Ãü“=·HØ Í_^%ñOM¡îžÆÇ’±7• ì®!¦€ú˜þOŸ+Ë\ªÐBS+Ò·áÅÙu‡ç{BF—ÔKœˆôÏÅg©úò}™·ÙEy$ŠÍñ3~lÜüc4Î>lsû/ž÷P“ì}ä]4§ÔóR)L $KûÈ�ªœok¿Â3.ñ2ÝJ˜ýlÑ_IêŸPüý�^tæ#ˆ:c#F½„ÞacDß÷ &dðý­+½› Ð)²Òݶ hEÖÝ‹H¬)ƒiÇ -ïÃÙ¿·ÀØýdŸ YO�èHâ·lÙë ‹Aɺ?ZBiN|‚ÓŸõß!ÂS ;ñ¬D$ò R)< )-´�›¤ìI˜/Þ¤±ÏZ‚ê34�ýøÐ˜dM.'*HkؼC‚N�Üùî�ýÎÀ¸ŠÌ„—º6FfÂØ‘spÉ/†"‘�ÜDZ879k™9õ§ŒqÄg·a…ZUhí»`¼ x²ßƒ§»ŽÜ=œmœŽ— E´TЍz�d0q;ó�8�FUFÝXð‹@Ò1žb:°Ü©Ù'¬ÍÁãÖ§j¾@ïñjc£º„?û•íÜ„vÖÚ¾à&5�.›”@˜}1!¨ëÀåxê„kÜHÙf˜“~ˆ±ñ<¤Í«„¹~¿“ÁÕc°‰åÅ~_PaÔ�å»…ƒs­ÅJ®~ã„™œúè°]Ë+„o%Ü'8LŸMŸf{Ùk:u'IJÀ´ž3É:¶Á†ÅN�\à£qBÂ<Œ±A\%Á¶ÛO%rq4ZnöÇn P¸ñŒ°ÕòñûG@h¸©MyˆŠ­”© Äü@!0qýÎ'lZÃ÷érîá{VJm±Óì~bÂ|D厗LƒËÎÐ6U©å&é¹E[sõG»°ãʾ�|®¡ýœ{rød¨LеÓR´š¬<+¦Ç3y„¡ÈIÉ:jr·ŽÿæèËòšfÌ×™ûb}}9!~xñeóB}ðÐXeŽÊÀ…Ž Lbì àÀŽcöÅÕöÊ�˜èÄòâA�^Çá³b‹í) î�<N%AX:œ«¤›“i+†bçŸ-Cï5¸gZÌã¡kêQèl„Z9å¤ÒHtvó Žï|*.ˆ4âo”“žc\àÆØ°ï抜}þ6ýà_ôc„$|€ÅŒ�öÝæT;Û>C.ü‘.e�Ørõh¾›¬ã_š7ˆÈŒJõ‰‹Ø?ÜÃhe>çK…Æ!PJ-ƒƒ>Ý`¢ÞRZž!ßêÃPÂ܆ª  ßN0ÌÑVk:#ur`ÁÏé ~rø8ˆ«°‚))Wv"A˜Ï›Ä¸ä鎿„f†ý«ç¢el“uë ·|‘5­Žì÷ú50+s¸¸®l[`ßÿ|±×®1Ã] “¼ÀÍpczÞn¥¦£¥ß…êM¢Äôè)sÓ…#xM¾ÚÜ ŽK`‰8Ò&wèˆkJj¯¯éÃ�¦i×(�»Ñ Ý"x˜¾µâÞ ðÛÆšt?ZÃ�Ìäb„�u…âŒû¨?òíÔÙF²†²í*€SÈÁTP<ìÖ&@äåò…™›ue΂´üÅhëŒ�‰ñËC33‰»$¸˜¤;%òq‡p�ÑPÍ&Tùy'RìÏ8^þY"‘¢ñv6oäMí�qÖbƒiÖHÁ/û€º2Ó42d6M/Ecáfm«®"e¨«»çô‡�¯ÒmuÛÕΞÍ1L*úbfTÜRCã¯ü FŠt_ Á艚¢iC²Ÿ-`3%ì-&c}(™N½Ò ^Xb(À=hQ$bÐ÷K}\¥«£#ÿ CÂî–o×D‘œË”�¸V,Ы…¬G¹�‰Š×Ü]…@Y¤ �WE—0ÔÑèŠ =‰§†�]°^£ÀίÇyÔô^›� úoÙ°©£o€9žVJ–âLXVû=Õ4�ík2»š6óH§ ÅYÚØu%/VS¨í*‹g0ƒ®+®… VölE®˜2ô’˜i2&Ü’×2+•žU¸Î-/²6°Mª&Z˜°4ýF€†Ç¦?…hÿ�ÙLvσ©­µÙ­²T­A¶®‹—føÜNT™5;µUåušÞø {œ‚‡’¥"Èp¹V©©i»?‰D»‹|ó±=VzΞz¥°îá"œM+þ¤Ñs�.pŽßÞ]âÞ+¥ÞKdxÚåCBÌ›óˆcn0I¾ã'ÕÃÎàãŸv¹Õ�BKê"³xNñ4#嵪]|üÁx­ïªkïÊh0Ð÷Lm�VßÔdm.iš¸Ó–ƒËÅÕpÕA®êäã¦BT|µÖÊd÷[X ô°;—„]�ŠÆqžâ}w@÷›”‰'gý¥´€º”Ô�j*«ÔC @ϼÇï^:Ò!Á^ŠÔ>ZOÆ„‹{:ÍѼ05ÒÔ|@iöóÐ]y¿w€®l3.ž7e'““Žû×f°gøE VVú°‘ÛŠ6S÷T÷«ß÷>#¥¡C.!“b+³ÇÇHˆ²Î•¸¦êcØÔÖÃÑVcÕÔ%I³z½ªà¬zø‡ì‘\q¼†×Æ-ÖîžÂ{”8Å¥wIÜ0ìT‹óß({M_Ïú‹ÂÕãîå†(7æ>V†yðcMìÀ,ûc%)"õO¦6S�b`çbjþ]öÒ»M" 3¨î€pѤ/)½J¬vËA=�BúD÷¹°Æ)ÁkÞRý€PÏr®Y͈”HDD2;gGôRuvÜCkÛÍ+§ú‰7Ÿ’m ÊxÃJ.ýš‹Ã|W¼æ9t?p)Ì.‘(»¢ñf‹8°ÇVEÒ±Ÿ#¢ͳ¡š¦w5÷íÿ4æûâÙoÃx×ßÛŒ}Ê=’僟T�¡‹4çº2œ²ªfèjQÓôÇÎÒÞ™65X²ˆØ�`åG¼Ôq<Î9�ºvÆÅÕäq„ºN™jÛ½�éVÊ œ‰"f1ð”&‚Þ¯¹Ýl�¶Ç8«÷,‚Qü,{^³nò°íyȳBZ²¦_êI㣻àc«Tk :„�œ½!3ŸzËb“dï!Šî·±­\¬ø#à‡òk«V¼»k E„êöl±ćí¶(ªÕÕ ìµ¾2KÖ‰$ ‚—(3;­{›×’>Ûp–SÓ9¹Î¸ª²ïJ)k¿[·>”¤uÐ2˺Ía;�lßÓ�ŒöfÄü–o¬)Úˆc=« Ùd3Å�Ì:ê߀è{ta¿IØ®4wE|«È]ü{NMÌÔ€Ž%V[VcTþÄ:S“cºP/w:â´²]^ÌÀ‚òƒÇ€_bÐþòc¼«êŠß ÐZŸcëõÞ÷Šù7 º¾óìäBe,1SÉF2Ù T¦Ò-lLîaÞ W0½ïÄÎ:žn«ÚÇПOz³íW4a5QU8 Ñù ïÛò`ƈŸ/iײƒ'&¦Â5Dhe ¬ó$_S¾Å xBw×þêààd3𺊟_YÕ#Ô³¼@;í /ô ‰á¸@8%¶Ô¹qUƒŒBLL¼kÉ€ >žc² lŸ¥µ0‚S[&çËmc¬0ÞYÝ£$!'#žØÛ~¥‡Š&´‚©/蛪#¹�FŠÓ€í‚ÙûŒ´‹v5” Vüׂ'a|.!Éã±y©gÔä²°²,Ó/Ò»zÚÅž¨®�fxíd{aŽˆ[,ztÂ�ä!ˆùÿOçÎSS�¸ãÄA‹fX¸Œ¨[i§Ê.³·ðïÝ~S>Ô‡ SÆHé�Œãk–†Ë™Âöð ‡Výiˆul6½Hô°‹óSéX¨. ä‚éðÇ„øì «zÔnlh¦éŸ†%碦”z�e`B'a ޏ^T±¡•Ö¬ÔvÑ¢`á_çKg^™œŠçutø~÷rʦyºi°'Ö”K!×?;9QçÅ[ù(²þR ƒ»xrÇ_f@ P\ăÏm°—Ä%2*Íš…Ïìr®‡Q¨rýКe\ �ˆ ÆÆb¥¶»ý7ö8Ë. ‰áCôlx‘6>†}ª¸ƒa2ûܼš�£ŽŸjç°'[Êâ­R|øŽÂ‰.Ô:F+±~t‰n×¹ìúo¿${îÈУ†}2g`é @”[6“æª0<<í yN/ÀÐ6ë-}P/|VáÔ2 äH96û¦³±aL»•òâJ˜(—OÃ&g3=Áæ+av´ Ðé­#Ôœ¸¯CM;õ{vIN·�ÚWð¡Ì¤—qûàæ¤TçÅreåxa$Úð:¸ú´Œ=höZå{hL>ÀÒøÔ´Ó=ú(Û·Ø>ÊÑ‚%´�•Ù^²v/�hêžbÛ‹ŒsöÄ a—B=†f)ËÖm>™ŠWK_‰|M�$„­“ˆË='{lLiǺ_Ì'Ð�m†™ªQ쮘ü1P #Îuì¿줲dÿÖÖ®¯z·%Qj^Ã0…å¬ɃÙc®øFA¤“ œ6¤ùuS¼–µœDÁÜ«A3o~|†t§6ª‡^ü¼Ð*zr$@¼S¥ÎhÕ"ℵLLÎŽ×8 ÍbscœºWÁ¾xþ<.͆V™à ’fâåœÌ¤ÓæÛJL2·å3Öã ™a:#Ù•w,ë0 þð/mñ¬+ÂKô gðñ›R9p–MVôÂdéYý„yÁStd‹ÇÁd;:@pEOhV± 9ÔceµC¯­døÑò�ød±CmycD¾$"­ígw••´9°Ö…ßDFñn:Õ$¢Å†Ye¥YÍt6P2‡²,¶F.–mV! P}k§H�ÐÃBçP-:º‘nµMÍÝͶ 1< ÒÕíuÞÄ$áÁZ¥™dy²¹…%”F4¨£>60–þöóˆÙ¬Š«ÏUtºI¨ïÎÍx±WÐŒ”6’„wB»È„‘}B®RpŸw¬ñrz{ØW  ˆ�ÙcçUe“Y¢×˜'ƒŽ«›º·\Ëγÿ™«�G»Ÿä䕹Ĵ)ßä‚ïé›èÅFì¬êí,ﺷ ÌÎþnÐô¹ þŠA±µÓä›4ÿu»îU×c Nß$�O® ‚Õ¬ª^‡Û¯ÕOŽy`£«øQ|Ô0ÒÇ=Ü…$bgÖ°îmÆöU¹oAé½Í�Dßò}ÇJA¸So«Áá<Çp¦\’Òôµ·� >~/ïëËÀ†C†z§±Œv„-ÆäÅ›xmö¢�„`þ8´ÌÀ4I &s—ÈûØØ‚m@WÚσ‚Y™Ê)©+Ëô¸Ê—åÈ0½Á‡»«ðˆi´ÛãÜ¡\¬‹óÑ÷èk<p¬<×*jnkÎ{ë‰-_ff|HQ@¾ãP!^(™#ÜJ'- „ÀÉU±Y»nèãõ4Îx(­ʱ –MªµC9[½/ÁÖ|}u]z¡ÅUÆfùó\µ ¿”OŽ¢ßC¿Ó‚OÍ· 2óæHœG.×Ç6Ð?AIo§í¯Ó£–9¤¼e'8ª,±%â|¥}Ã=?‘iEˆ²q€½p0l€§²�Ó·•p“ù’6Ré*©�:Õ¶RLxDð@›D5›•ð6›©E¸/ú06½%i·ë î%»íé‰Î€›¤B™ÿGñˆ: Å2¡@F²¤™ˆÀ#ó;›¯ñU¡oŸéÖÕ!Õ·gx² ⨋ÍÏYk‡öfOVJª�΢yê´op˜*ôcwÌZ@Ô[A_òöO¥±¯9¦IœË3oHJ‚¥ÿ¥KÞ°+¡WÏ{^í~Rm÷:›žØ×�>6Ȇ¯âQ�²»3ÖÌÃà°çu®>Ðó‚R¿ºdÑ5 ¾Ž­¼fœ…Vßc{K³NÒ-ñ€u !¥É�Øóãë}0 á jšè¬<ÓÏÓàI9­pKiñBldà žYÆ©×T߈m .9?'ž³Áyp2(Çœ]ß:õŸÏ?¢R¨Cùó¹# WÒ�Ò�%òöd‘˜ÞxӌŠìi±È�L‹|}ßÈÞÀüé�“$eý{–.#à0 vyÏ�ã(ï…)ôØ9Dºï‡ Ï'{³Ï‰\ÆØ ¦-Þy¸?Gió/ò{PÑa�…@Ë]�A˜+ÞBñyP4O‘J�&„ÐXG[�….�Túˆ@ìå �Îfs䯪ô¨dU­u{xcÔ0¹Ý•WÕÈ=�÷•S>k$m!D(…ôLsÎ+*ü.žðκ—S¥À•Zȃx1ƘáF·c�¨Ïqß²Pü?JÚG’ŒáÂý‹õ0™Ütõ7kæ(‹P©—&ò° 6BÓÕÆK’Ðc”µ9eÏBé!%¯‰eíÐ@×ÍP¢a=p€qFÐÙ�`ó4ä|õë"¤ŽÏ=Gͤ-#uÞËå Öý€s´³èN&•-´`ÃeüN]¶ÀÎÙ}º€&ëõ¶´ÉÔyÒ;qj×Ìí`ÓÁù°-¿f°Í]”´×}"{IÿöU ƒg!w=R‹;Þ1ï=„?GƒK„ �IF<~È —Ó‹Mù_E-g~„ýËœ&dªÀˆ-µø·ŸumƒäQ— ã… Y·²«ÅAðx¬4!Q›+ž&çhàâ$ÑÌÁ°K‰ÑÔÙÆÉD£FrÒ¶my�Ñ:ïÈ}Ó­ßûx†(°,iÛ*�\-7˜^åd;U{Ž#¯!Ùd‹¿{çÒÁÅÕaÞxH7KU?ŒÑyf�Ò«‰œ†é§:]¾¡½“ûc‚®À|’˳Øß�3V>ÇôÉrSºiäxÿƒ·gÂ[}ºf“CÓþ—vòÆU²—=³HˆJ£ÇîñnmJ„Á�Ö®¸C<à!ú#ÿjO-ä`•?¾QjU,Òl×ë)£Y@œÂ R‡Ir¤ âv°Ö„ÛûÀYM1�û»ëU™`ʸ÷m”¼xó2­ûìL8[°ë‰:,�4;¸ÒÈNFÅÝ6qË_j^ «ÍŸ|SLQ]¢ G_ÿ�Eµ'aç;é[Ø[ºNÙ8‚¦ ¨Ä  ­ð?NÈæ”ýÓK¡&VÌ:zÂç1'¯@Í’|Ѳá~¿’O˜æõLt J¦ÆnÊ6–ÆØÿiôÑ´wÏÔ zúN;ªØV0]ЋÁ¿IÌ0w»Âuó�¡¤/�ÙÏcf�J­œ�ùU~ö%k\ñ]ȼÿ_çò�Î�Wó4��”{ÄäþO|YCK»ÿ»žçêÿ»õ¡Z‚9Ú(�×Í#Ëÿ»·}S¢lîÓ\×ßû%õÿÞpþÓtsx´q #’(x»Ìø3Ý(>ˆwb]ŒßTãÜÜrxA&K˜BLþAlÑ«Ä3,]¾rD\qáC!yÝ’þ/~Èÿä3<YÑ‚šM Ueâ‚¿(�ýŸøb–6¦"¦ÎÆÿ»aíд‘&oAdž¦å²b>ÚŽìv`ORk¼/¢1áÕTÌiÀÿ‡ãbêìBgbèbøßûï�2Þd¤c‹Z™q‡ ‘å3îÿ_pÿÓplÔÙ‹Ä©jIlŬýÞ®³Ÿ?Àåñ ¸º&¹€J�šÖÀ]I`ýAæ:º=‡Í›�ˆÚlž ßý¿óÍüüÞØuCèP‡)óHšo�ÿ_RLYàÿc¦ê+ztÓo‡4.Z*‰ `‘ ˜ÂD‰D©›fö*¦q¡5îÐ9Ù  æé&êSÄ¢¾ëäHç$.Å"S`�ä°Z¦L—µáY%Ä i|éøíWC:ýÈ„-¿ÜÄ�c�GnýΰΞjÆlF�tˆ&A€jN]Ó :ýÀ¡€"ÕkT(„Ú¸;%·"ÃËÈìÉ…¶.-wâÝO`2+bÔ‚š$ÌL9ß…Ãí.VR©Ö=9ë=Ù^À¢w$Ú"ž¾m{"Áìav$A\ã±ál–‰ˆóm b®SÕé—;›ûÚ…Ó© ØrøBX UúUK!]ÞÔ{Œ¤†(@o„ù¾ø­¢ªS[�¼Ðî- ³E‰E<¨¡ðŒ®Ø6Gúý �ª‰^k×B:¶}Çظ©v¼;ðRÆh¡asswt |„J¤GQÄDP±ˆ°Ø @j~ç€J ÌÏb-¿é$W$c%ŽýyýðHPøÙ©˜3)x^ƸxÃ!š ÇV´Ÿ”“›^Þ ÜÈòÅÜÜ’AzЬRz�G/e^r„^tÖfÏ_b÷é÷ßp‘ˆ{k¼Gé…ÙèØ>õSÖ¨ßÖKZ£®"臵Ң�ålÁ�KùfG‡�®C^÷=2å#‹”ts üº(|�C!ZN/u­Û›áxKWåýQ²áµª›Ö0°�zƳ賬©ÏruË_Ïìöé6G4Æ’p¤1à|#g~ôþ›°k³>�ˆ¾yÛUÿΚŠ§,uíçD¦=Ò¸U|\³Ît0öU‘r Ôan�,�O^Љ¥jÓÙ’¢û£[>:qáæXóXæh�‚2®L‚œ³9 èz%mÏr÷[{¥D�UâŸä”+2¤jw ; ÈKo,@ïÕbDßy5ùˆõKB`D¢îÏaj°"òv›(À�½éò‘|†S|f¦vz9&wýéGzÀûE˜¨�Žaà,í´Ýñ}0töZnuV9Å·+Sp?þ ±»€:Ÿsr/‰uª/Ûš(½�b/Ÿ¶æqÝ T>5ã#YÝ&D&ê²q fŸiÁ Ð ¢‡®_tìÅ>…ª}’¤‡à嘂Y:6­’k Y‰”v�hrR=ÉSZmסÝ:`®¾su¶g`U78–ºããܸü¦Èi¦> G�:†LZBeÛ* ÃG\ì\)\cÙ‘2¦"sÑûÏÕz3»Y«ïà¤DJwœÝ ‹s⣌M›H÷buãf‡¦[ ×áO¤è?§$Ï0…+â0¢åÒqÔÓ )I5YnHû7Žþ¡ÊmßT<Ž“{lFAåÚ�_Xp‡Ô¸º ÷É’øÐ�W+¾3íÀ±¯ñ}5Ÿ×êgMKÈ#‡vE®Ô_HœyQˆ_YU~AQ­6ÖÇ´±RU ýáÃp #³O½ a:ÖN¬²_rMýkŸ£B\£v‰ÖvÔÆhh¿·[êŸ3°ƒ™×l7׋=ù—‡‘Gt@#™yFx ç¾E>¯i|sê¥ðUŸÂ–ƒFÅ)ižŠ¶á®µ´àwÔÿ´Í&ÎÓs©Ê€LWøÓ˜ B÷Ý=yä°’ƒNyõ¦3†¤ì«5bâ{7¾GýR…¸­CJ†¨øgâµÌ±_­®oØW÷§Ïì¾Vy¾bMF@­íSåÔÄP_7kÅåbœË¤G'?ÿ'¸r`›û@fï Óò…¸ÿ9¸È¿A·­£z÷ØjŽŽ+É�» 7é^Gß§;W¹NèÀ¸×V;€½‘ Ęd™½JúS¯Æ[aH¿jOBÚò7®¶i1SÅi67Oý<ÑšÇ0à7dŒì"ºg~:M.ôÊÑ»,Ñœ}ã=ÌÕà‘�P_s3–z…ßÝ‹D¼­¿ð׳¨I.T·îÄá Ç&®z™êþ(·…R¦c„µƒ¯J[!¥) ‰÷÷+¨ÏÆöxÞ�9Öž ïoÍZÿÿÆ lô �6§JäRnæ÷,�Ò«4Rí]{¥’ù¹oJ/›Í Ê�ŽôQ^ôf¤®–ç<Ù~ÎVÝTqk"»*|¦½ØøN×rö©&DÆNàÍiÛ΄·myRY”÷&™`û^Á î´æEõŠ€�»Ó?P !8�ò�œµW„§o‘ðý�ö-ø@[ü’Ú!7ØŠÚ·ú—¸hX¯œ×úÅÜ ÷öš¾-qܹÞùx�‡?HT Üò.ËK/å�^ße’�BLš� V:0{tHÜ xSÇbv!1Dúøû^�’ d«�Jˆª`$‰ø"&iäøãü;ÓÒŽe¡¯·lóª’LYŸyÇM)ÙËF.¦EF�1bUÿ/½9Là¬Þø¦eŒÆûë>ü†>¹#çËj l@^nSq•m*gôóëÝ–5ÚRQÂ&¤ª~HaŠÏ�"ǽ ¾Rþþ¼Ð·AX¸)AaÛC\‘emå}áÊò ²IÈ¿¬ø` ñË@Kk8Êü¼ Ñ2´+ƒ Hg†]ü=¿!fýؼ ’nLªóÖßÏðÑC"½æ[Iõ^ y^�¹�–z>ÜVS™7ÍÃOfñÂŒÖÔ’“ÏN l3¬­?¥Y!ˆT¢­F”D5ë Û$7!¢9 Eÿ¼�4~•PdÕ¼'èE?�ç8�R.$þ'ïÛÔ•œTÊ}àtƒ†yrÆI¤«Ãí>7gO`bÜ×øI•Ã×’e©°•*3ÎÞ�£i¥›5MV�1nó¥«þ|v^±w>Ý…¯O4–lõÞ–ØËní°«£Ø‹eÃ>ú$S�˜,gÒÒ�t¹-‡b„ï�ÆóÄ·Ò˹$<(ÚOh´¿BîW{gß0[}P^$ý&d´"D]ŸÚÚ—L�ŠÑp0s2o�M`l¼“L\ß²?œDË*5~Ã;8³Z3XUsË0U —³ ÇØ–Tv{[Išæøçv*/•Ó[´º7Ã+Ì<[eeКr–L'Š%R¾$<ÞYˆÜ5Kùn¬:dgšŽï°}È›¿ð§4jŸëO…Ôû�ž;°‘èÄ~‹,×s´°‡à<©èñ:7ú8*• ‡8Ô/àו ¼Ï šÏ7bâ6™ð] +Ú¶l>λ­�æÚ%¸¥äàþSÓ"ÎÃêþË3–iK™ß]§êÕw9u¶äs¦W‡¸üæ^¹Ñ¼eÔÏ_\½™’è›»�T Õ¤°×…WW÷Hoeu ¬L˜°GÉj¸�AA¢¿H4™ðâBñÔvÅEç2†dmäuEÀ±Óqbh/Œ]þèH Ç©ë+Ûƒ%Í]û®è"˜àºáF7Ÿ¹"RÎìÙQa $C¯g›v?öì„ìCûG… 5y@’N­iKQ\r ûYBÇÓ‚ãl¢—W£WZ°Þ3ðhÝuFŸ†xË5]œé¢%Ë¿¯å ¯dáx„Cͺuƒ¾ç)­›cþ²“øøŒ'ï0¬$€ª2†EÞ°âŒ�'²lõ×ícÄÝw€eõŒxrA¬.ÁAPbнÉ‚_å¿€ºjBŽ›¥"­ «›"·)¹ðëq÷ÓÍýá5�²V+ƒvÊ&­Û&=ÏçŸ�®áS&ƒ\1À;l¤ÖcIŸ` MOm¹#ªÚ]Å�tùMS¶ÒÙPt·ªŽ( ~i�”®üšÃM,û¤Tn&·JæìŠæ²wÚTÍ-g5ÄHéÒqè8ø%Ì9]|å}C#iÒî)C›÷dǺÛ>e‘¤-¶˜‰Xe�‘ÚÌFDeñ ô°wÇ«¼D‘W¶q¿D[¡éÙ·í éB¸évgĬsA®3ð_GÝÑ W`c�>ª¿ÑèHŸIQ¹�Ÿ¤­›à2µÃßrO¬M˜lõ{•YFêð½½dY·R:6œo²K‘Ù&SïjŽ�Án£Æz©yãm¥~!'€ +ˆŽ®�!Å› €V-»û}QuNV�4AôÝ©±>ãlFQ.C«î¬}ãÍtp˜UdtªPI[œÈ–aÒ”ïˆØAšPzøø±íÑoV{Ÿ`§Nœ\x¿MÍÙ/¡QAÏR+ñv_-¿£B5µ1Rú£åäQ€yr ÁnyîöÀ‚ê�ØæÿE–ÆGà1ºÆÞ9´'–u»˜ÃœZ¬ýiïÁ$ ¡?ñŒÇQ¯+¹±oA ã„2¼wwr·U^öö__¢0ãŽÎ›>$ç›1äÒ/ÄW>€¯1‹„mIä_Cû 7µ®‹bc^3'HΞÎLºŽðàHºEkV/uâÐC®ëvõ³&ª¾_Erö}nL`ŠDκWQÆLz¤NYøC<ôÆôò�9TÁ[¶jÙäÀ¤_X �‘Ó0¡°$c�>Âä¼w�~ó¿Àª´z]÷!Äm…é€ïBýt±¢�×çcÆ�”zÔÙî¹öeß]±–‹Œö½ÑJÌð« �$ݱáÝê?½è�mª¢Ž‡TÉ2éö݉ÝßÎÀ‹¾ŽHª�s«¢‰Y[£·_q0ÒsRLq¥yù¨  ^$Ìî.§;};ôȦkÄñhøò,¥¢)¢ÿµT ø|³¨½_˜ÈÉüËØîì\)H=…ØË¿f[öÜ9vqK ư‹Û{ÈcåÐdtÕUD9Ø«Nm==ñÒ²ÐD³‚ JŽÁ ¿_þ“µ’šZD ô~F-®™®V©UˆÞÄ(…Ç�bçkedéT–úœÕpŸN§xc"ÊׯòTvþ–°Ô<甿ªþ ô=Rö䄞ù~.}©X…»ðó§Õÿ溰~Â';`³ Q^Ë™aÊj¼/ØÕá4�¬ŒÒÄ[MK %ê±RðU£.â�÷0ðÚ;pÂ+"À\;©Üîyøut8 ‡LЈºIÙæ€pÖ˜ÕŠì.â¿)üԌݩ»YÙ3x&Ÿºnmªî§ûY¹7É´bH#ñAˆjfaîÄŒå>ñr1ñ’‘ZQ;ž;£šÅÎO*ÆXy‡ô½ÈzTÈ>¤ XÞf}¯e7eÐíÆr¹5+nh;^�5ž*pE/‡"DÌ—¶ÀU§µWÚŸƒ¾;¼|º„ŒýJJ’V4%*Ÿíƒ4§~$ç2ŽŸ6òêRïU¾§ÏÛÆçL•\ÕëÏâ;d)Vù¼áNÝUЦ0™@r?ÏÕJn9V’I"4¼Ø6lS´ó}ü*7¤ç×ĤÅ+~ðÕ6jkƒ5 42ìW¢c†ƒ÷¾v”¡Uú¨‘a‘D‰´ñ)?º*oÇ &z,ïK‹-b:Š ‰‡’­‘ÍL“ùX¸‡õà+`€iéé.9*>ÙßÂyÞyxq]¦9/Ì9÷Éÿãt¿6Чð+Œ%K©‹+C-—¬ÄNçØðûV¸„qp!^ÍøC—hh‘!QÞ|Xc0UˆV¯úX´�D[ûƒБøÌ–åÖ¥ë\d ´%/güIošú9ÙÒB2òoô†íRËî‡Tæ¥à2$×òÀ xD­Á; ÕÂ`áaËì¬n T…^òŽk&$BµþHü—Š>ËtšŠï_¥œŸ°ð®›@Ig s»&úYqJüX’+òÛW¹Ð5å#P#ÂeL!ñùQƒÞß©.zôÙYi‹æ”ÃPri[+p,ýä<ÂK¹ÓCZyþ´÷ZÂ_–§Öq YÒ°z¾z Èê�×®‹gdؤ‡´iãÛ†'冸ºq6ŒüÙŽÔð"vÁ½P“ó%øIéÐ�'ø8b¥k) §-ǀ鞆&ËÑõ/»;iÿ¼[ÉžS0âhx¤^à´D²#&bâ¼öžL�/˜0Ä W à`0Ý|ìì6¬èj�½½› È>ý~TLï�Ìòó N[‘;” .̼(6w¸J+w„3ØîtPFHÂû5Û��”Lµ!R7W•Ò·kæÏ9’fŸ$ää#nci€îöæ™ÛÇ6*ŽÌ„åú¨àÍ©Œiß[½÷)¬lÒðëµUu�¢ÃÍÅ·ï!Út_ª±‹QU‰�ð c»)åR*sOìh gÿÁÜJé©”Tb°�‹£6ÅLì\l뽌N‡ôo«¿G«OÈi$4Kòº0sû%ru{2 áWQ5á²cî v{Æ#àÄNùÙäœ9û©-,~ò$£í‹è©ÏÞ„ŒŽcVÚ—îzfL9܉Dë²ä~ݼ÷�qfYìj»Šez:È®&…¦­ÈÁoò�é9Ô¸A¾R"ü²wã/Ïð)Ïöä¿el*²Â âW–Tª3 !WÁ×°�ÁsÑ36Øæ¹B™pÝ&uÞó­ÆšÝ"l¿X¹o1bP-û8- $Ûy×¾ÚŸ`å©—ß#92f…þ"»ÿ…E­»˜Iã]-KÅž´(Y÷¨-¦“”)O�·l—.,M¹Åù‹3Ž�ר-³½BZû©FÅM]Õ$s­°÷‡ªçÝ—cO�¡Ò¬CÑ?Í…!‘¨î€D§˜ˆÂÈ=¾å3rÓâöG„LÆ_ ¼Í¸¶wIv¸dkãX�†X€ÒÂ.ú¥^®]Æa5Š~ÝHȼ}a”ÁfðµìcžÁ´bFˆct¨u]¨rQ5Î{OzéM¹“�€¸�0€Cú={„ñ¨*?w…4Ìš¼X1È^H±§V~ùºFÕPÔÀOP&¾(èù¨¨îZ@/ކâ%ñæéƒŒséªP¼ŠÏÇ?öÁ>¡êÈrŒ@ÄGæÙç½Í]¾Üðô” ûæ°…¿¬3©Ù”Ãm×@Z˜‹èrlÁ² AªÖ&F]áóLÕó¡Ë0�¾¢þ–‡'ªqOg\ª�ÇzD¾W€ÚûŸö_ >iû×°žþíäCã�æ@"»­Ä‰šÊK(÷ìô-Yç=9dGÆÅ il .­Gñ˩Ռ1èõY@GÏMçˆñoJˆ¼Üü² ™§±ÚÄä:ÃEó#ÔfÝô³L„1Vn>4/(1 Qî” AVwIýÏÐÍU§bk .A+×G=å£WR“Ì!\öFòy’ UœJÐ…w6F[K”³Ú(H`D˜Ü¡æ‹"H5³·‡+Èà.RÁÇU}ŠÑˆ!ë^Ôê6…š<Ø!?¨u~t¸_XEQíÿàUp[BÄ©1fN½ ˆG ®&‰JÔP,Qü,‹«TG@?™¾ižT5o‹©/�:�vë�áÃRPg³Öa›.%�¯W¿€Ã¼pÎy¦SŒPP£#•Í¢¨N‚sDÃ�@ynQk×RæÄ‹Ž+ê{ùÙ³»ûîÁÁ–6ÜCùìÇ-Þt¦¢¨Ø²ÖS 6yIÿž!MÆn$¦™<Ƀ­Û>µ¼*W­3�ƒ'ž,DÂ~úØe\›X•*Z>Rmên1>uv`ë<AüšÍ秪©šs”!Û\90ÈV'}ôG7Ç%S%ÖB…ù¯!¾< «ç7�¥øþ´(Wõ`@ýÁ j2Áˆ¤xj/¶Á9Îe*DÔJ„O´žªe?S:H}mýWŽƒ¥ô§•¤«1C�s+Ì¡çwÍ9ƒHSjHÎÃÏ£î¹Ô´u¤±ù[¡�ɘ;ð\ò´åA¸—AÞ,ñ—ÙÄM�ù›*ÅÜ QTÞø´ö\„SÕ]ÆD”ûd3Ù",‚·Aõ&wÖø�‡;Ã+C�_îÉ|­ŽáhE’B·µä… }‰{!æâ‘î0B€T�œÑ#ôxÝø`ç Â}H¹MSæÛÂŽmÂ\‰cXu§ÚP4—/ëc ‰ô1 [;pØsŒ‘´ÿN–ðÒ´á‰5¯+q® +)fá Õ<^ú)Í]dö/z©aü|Ë|÷s¢¨�”НXϺS}3¡Gokü­Éˆ34¶úÚEVÞÈé� &àbj¡.áÒà5TsgÍD*ÑlnÓ� ‡Ú“œKtôîçy(£ÀcŽ å¦íû« ¾!ÚU“7#>=H—µï+ŒFJoC†ÝȱñÐ0âzÖ'H¨Ît ASO-:KŒr£=L[ÎÄ!@ˆ¦´G˜'Xxé|cs"4ëG`t�t*–¼áøàÙWm§²‰ð4BB?�…áè‘ô`S l"h(á³/ðc”Ïåx?Ýa�~—2ØR^AшH}Á—×e‹”Ã.+ÖA?dtãhI ôÐ&Þæøf0ƒ€Th¢ø„®Mi#Ûäìü_©IŽyN_ HÿAIJžÀ²q‡éqx¶2#U¹aÀÒU“2ð‘“{·ê‹¿Ç?@Û‘YLUûQª ɶ„ ã'‡˜È,û¬6wˆ—)PÓÇ©�vµþùôöC$ƒK�œ…~CÏ’c¡øÆË;n6g:CTåI(z+ý,×CϰJ—üÚdfá]`P„ºú¡¦|tcjÕ;$¬@ÖµÖ¸”“é‘°¹à'ôyaDüľs<Ûÿr§]°Ú{2\*õì.gØÉÄ|¡/Ô"ÕN¥›OªÄªoËÉ{3ºˆW“Qì»§°KÞÖµíHm7i÷ª‡Š,äKb»ºBZe©ú¶;ój°ÝÇòŠæGµ.RÆ�Çåû™”Ñ‚ @Ý È£ötøØÐ¤³äžü|!-‡S“ð7a=‰¸òà´öN qÆ¥©ü²³$”9Jí&!vÀõøèjJá$±þ`]£—+Ͼí/…ÿJ,Z¥Ph ª‚C)U×:™è[nG×¶Áøx¦òö_52Í$vÒ¤­ô'¥|É;D¿E'›Ìù:Çà8.wHéØ-güQÂI‹€ÿ»S’“ðvÆ-^ÊË÷úåVç0õÅÇóG™œ|†–^ø–¨Ä[`ïJ,Êl{6äã7‘ÂÂŽÔú¦ûJµßX: º=*8ÞPÛ‰+RFb¦þsl.KÐQ-™€­´f_Œòr)M9N>¹7‘«U¦/Ø+TLƒ–å&"pRí*Ë€lãF=ï‚áa^Rú«K„Á%º^£†å=ì,uŽ#¾kÖëèΉß;`Äû7·½ÒCœ‚t[ãk××½´ã„iÁ~bµ(iÈ춈ÙÅß½ºÂ˜Uzªº8ã¯J˜‚ÔAÁ =‰+q‰'%ì½öiß ln'gÙÏuê`ƒ øtb‰07ôÀ÷€âJ™yzá¨ß¸G2ók¹W§DV¬ù“£eA�ìÇÚ8«öÿšÑ.Zëúzª¦CÚx�¸+Åd =¥0„n&Ee2iîÛ²ª†ë ‚t˜ ÕbíS-Éu«Ð�£Ä@›‰Ó¨Ç ;jÏBÒ[0Ž=½{‡m‹ XÒTë«r8'o㇉ÿ¼måÍí®¨*‹9!�δ\\õª¯f ̼òØ·æ|¥s©ñäÒœ%øÜ¡„H‰ªÄÀÏ–¤mê·±sVÐÞ¨Z18fèã „Æ)hz Ãç7(ÖÙr‹-½ýã�³$<‹…r/žñßYj ˜ ÔøGÅvXÌ|¿ãõ¹<¤åˆ-èF²&„ûk}„ô´wÑÓ5È`%§ß&þ¼Ë*%¬RžØB&#ó¹B¨€2 öîÅéN5’=B¦iR�ížý}`]®ü´ûÃu ø*³š> à&Œz2FHår'Œºl{É ü%qú’üaöHX,GŒeih3àU:w5.æÞAÙ¶Ä [YŸµ��É;?fòm¹wÖÁýæo|‡rXíˆr¸„GXÑÙŠR¶ ‹~ �­ø`Ï뜪gUêÔ¦® ;2Ÿ{÷çyƒÏ(˜îØ{Ç])¥Åª ÕòW|–î�XY6ŸSF´£’RQÀÈa.gUE9ãò‹¡â×Ì,4¡ú¾yÚÕOáQ±­Š}np«Ì�¬"ëZ�î¤Àè%xÖEö¶¸Ó»¯ –EOÖK1E9Êm�N—Õ'™ãV™c™¯e¤ÃK…c ¯»qS{ÒnKtÏ#!{—¤ f•(>ØÒ‰zäY󻔇�£àÌK!ko RRlå�&Öš˜ùcž`'Hͪ´¡=Àèfm`Ԕ܆ÈB-Ås’¼2�»»þz SÄ/ESïBÐ3¹Ñé­÷é];”˜&©£BÞ­²ÄÔíìCÁ-²º„‡èIwÆ{¶’ò�2»U¢Cð^­W¿÷�M#*9ÎìoÉEÙÏ·Hpô—_íÂþØñȸ¸(Aéáó„\ ÿüãZ½ l%6Ö¤‹é€¸QÙÓþdWPœ7­àDjs“ËãçW‡BZm¡Veò„Cw[ê×�Íòýn©Ìd6çŒÎ\1w` y¥¸®å¯s4,'M£Q„ì“ú…С—>áÊgdòW¼ýæenkñ7@5x½�ŬÑ6ë¤Uƒ?¹ ~s�«v/Çzb_Nôv�ë‡ ³juØ“�T½‚šþТ}òµaäß Þb™¨7,\„j§Zxìâ{”7\_ÀùÙhÜ©ç7~åÃ3/�ðjÆ>ÆbñÑñU‡Î…!©ÍÈdêQ…èBçY:l«µ|&½mk=ƒÜ!é8U¸W–¥MχÃUœÑ@kVŽÕ˜ gÒoôEØ|„Àlgž,ܸMp·ÉH!X'3áÈæ8€ÈH*±ÎZHÜèZ �ÀÖÇ¡áÅ…À6›èM¨ °R3¨Ü_½$PuˆeqµèdpíΎ״º¯÷ Ô3—Er�/e1p¤=¢ÒXå³êDŒÞ®)³êø¤`Û¶w Ã×ïIu%F¥�r-Åߣ¹ŸnÝy  üY¿‘|ÜzŽ� ò€Gf]@—W éùü;´o2ph)âΪ³ïæ^ÑÐÃÖñapBn;.mA‘Ü!Ñ�Q…˜$ÝUÍa"†V-ý¦rHç¥ ÑØßðÉ76ì×`7÷· ùɘŒë9Æ ýÊ(Â9KµÏ1Ài©�ÝÔ1Xܧ<2-×…'Åj ±i² (‹ üBÞP&äK{”ó!'�–|~×VÐJfpKÅ“¢LÞYbk²×iÂ+ø™øœ–©jì õŒc%¥½ô–à±xL¡ç£Øns¹U—(òÅkXv>¶ˆ=«ËoLr«@v¾ËSïÚtrïô÷Ú‘oD· X¼ÓáÑ�ª  L7;¸�}îêqïôG’Òü€ú; Ö¢aÜÌ õn» %[…÷cÝmï#œypM’/®ø|°"ŒæmbCöÞÙÇ­|Qhû»ëÎNbXn{<äG´/)ã�‘r²lVȦžæ´ÇjpýËB{Ú#ïÅ «1~÷´qø(ì«6LLĬû6ÞÂ;ÿ8†“ ;÷úṫmºÆÂ/‹-ìuaváv|ªµD‹€O+ŽSÂ%/SLƒ^lYþ|‘çqPâ¹}){Ý"´š¶Ïo}&ŒGNsQÜ�ð¤âMÏ‚Ž•>ù®ë&è~+OÍ„2…RFd=z÷¹�Ék;eÌ P*½[´Öyão!�4h(Eªž¬{x:–¥ªàž–ö·†û9ú8k{â/²Î:vá™{ ıûÏó%ä/ ̦B Rzã€g\ç=îziŒ‡ÖÕæˆ¡z$8«ªõù»ÒÒ ßÂ&ØÐY|aÊ�…’°t²©µ�â ™hAìµÕ¡;\Búèù«^Ÿ†DœÐ—e­³@²Q¬h#@HŒw:y¢($r(ë�¿-‰$ÁaÕr²‚ÖN¿XÃH;i^†ð×ë°Ì‹Ê^´Ç¹Ðó©ÑlFE˜Üv2iû½zô¥­+Û„?k†ö¡áiþìÅZbšs-WÌ‹µ5P™ÛÚó çÛ@]8ÒAK1Òq÷è*jä´ö÷êƒïÔÜ“Q~1ÄñV„PK0Âæ‰­|ÕRVl–бh£É\ÅTl;-e–HØÞæ™=È&¬wÓ(¡yCZƒ�ôÆ¥i›§)5TôÆàÓU:("2¥Pq^×=”áyi«rœ¬ãc ‡Ë ¾ žî–wàÕ<‘üš( _Nt ß÷µ‚—,üƒï`${�ÕÁö>zÚë©5¢¨y{"uù‹›oÉäo"´öÚ­ó¤‘]ýí!Øt±ð±A+=@á,&vœ`ú­µ¤±cJ ¿ëgÕcç†�n�òãº&.•hHÿìEîTÇW÷Ÿš=Oèn¥F†çAn¨•gÑ`ƹ]½3ò+½Ýc2X|VõλL¡�#]r¬, @ŠHÍéMÃØ.y 1Å{Á‡¶„©«IKP5—"^ Zš—ID¡æI¥ËáÈ€D!®9¢MAWø�94±\·%Äðv›]Üš¶�˜\@ÐðãoD¹›pÿU àg9ãªU/qûHfµ¦ã;ð�^J$öËýI³Ð�ÅêØm– ƒ5{Ôܲ¤S—-m,@7ÿ/~úþºô|‚|B«QÁ‡ˆÑ8'üNÕ—Åõ`5ÕÆ?ç{ýiß["eä¡QsR y¶% blgÅX5Öw|½& ùØí[,ÇŸk£3™Ã-ü©\3² ×«3þ‚Ò¤¼�Øéþ@4ã°tt³ µ]Åç±¶›üv€^.i¦ù�»"Ʊ€)ËýgfýÇÐ+²ƒœB8z#�ý…aØ–[é}û²Eò*2ötÏæ�'çø{j`±r›!ÖÚèQ2 ч«é¬\ `1Éè�}N”R…qõ“m¿ñ©Ñ°lÜ6Ò�Ú« š¼¿\Ûš €Ý°Í�ÔE¼²/¶è µ:ä5^‚²&M8m›Ëõä^ˆj¶ä½ËÁ?]D ©I¶T�·¶–ŽQV¹Äh}¤ñ&–W,üÖ{ÆÊŠºOQ˜sU$&i½ýîÍÆ¢D]੸oÕ´ed¬ÔuÇà­n2W�Õ€ÜÞœ1ví�dø F“ŸïCcÁBhþ)ëèì'´\˜‹ÝÂiì³á1 ØãIjÎ÷œ8ÓqWY©®¶-dƒWâ>5o)é�Uè´â–®ÿ%�£­b/%P¢Æ ¸ ½PÓ}¦'´øƒÝ _œ &$.T&ßÄ.ÿ‡Ê€ÉBÔ�QU E"UlÖxgUYôÏ—È&* îÒzÎPëË"ÑŽ›ã¸šIöy«ƒò7 ÉìÀÏ÷<ޏ0ág"ÛV»%pçþ—9ŒqÛc�-Æ:·™��›F2{Šç´ÚŒk¯ŠrÏ苺rê§�È2…;HoLdÎf¼*Uäï¹ÐÄâÂÛô€‰¢­WëAôŸÒáª�¾³\�~çe‘‡í·ºˆ~º°Òbµ„€›äz?èú_¤LMfôð9\)GL£¥Wû`Ó9;@ÒmŽs½'ŸÎåÈÕÍløS{µ¿3ù£òJ®÷PŸˆn4¢Ç^�jß6¤hðeD°F.óìÞKä•Ö½«¦øU†Û-Š;32€æ7jJs*Ûû.S¬Y9|êÿrûh¯^ד‚›-T&Gxýý„çtGäj·ã±HDiåþéR*kSD: �²SsÖË¿TˆÅ®”ßK¶O)›3؈y*·ŽGA‹WkM@ÿ¨�‚¬ÿ}c±€ïœÙÒô‡#ˆ~?ú,ób5ãÌ‹Ì]jCe®Ja ]-ù›Â5¨Š$\�Í’{k×Úû6>H·­¶ÛÙ/°”Ç5ÉôB ÂbÙ-cZ�$8 ÁõH¿àæeël5_»�FxiÔ&Ê­Å�T@ãß ›‘郺†0{ÑšÔj˜U¥c$…Óa0’Ÿ8ô[÷ê¡ÖÑÞ?'Ǹ‹?À�_ã¯�Ûô?;îUv�bú?¯¨•M�jj<ê²dK8vÕ«“N‰Ä+NÓ-ôà×£œ„݃m-VZâó*Û­+õ:°XcÔH†»�íwhY‰*]&Ÿû®zåZ[ʾ.\óYh�µx'˺g¤ªÔ–'`'’ý1Ê‰Ž«� ªìWy7¸(å[88Ýþ Ò `“wîvɶà­I'šü. Û0‘­&Q¯ hàKrI#‡³¸ºŠ.DUCâQ&#ç>žÙi /+Þ G÷í¾pý†î‚£«’ü�nߟ@v)ºJ€éÛýÑŒ­à«Ç‡ Âh#%àÜ�™ÿ;Q¶‘ŒèÇV¡.µØ8çº g@V† 8˜`} Òi8ªd„ŠR#!A´lCÅ7*£ÝS[+¬ê-!¯F“˜Íz�f]Ô¿ŒÚÓÍ¿C(VÁ\°WâØÝƒ 8ñ�ØŸãû}fè|;ÿ2xNº]BŽGž‘Ú’Š.jnœHè�\̦$lô °ÀÅ]âÙñw÷h‚}ã=“Á6¦A˜œá¢¬…ñ‚¨ùjX \fEé¶ÆØ¿Û\ÞÊkæÿ'†óÙîQ�0øÉˆ£ØAÁ­L_:€! ¤5ÊV}B<ítç¾ñ²&\¥aøBæÕ@°öUN†P$Ûʰ¾öï!ç¨sÌ?®Zã‹ 9—fï$ÜüK[Ç·fM S´½“;Òê\kn`"e¨D6b¿˜õ-joÍ%®œ+nˆ‡xÒO«Cà]„ØÈ°­Û¨“ ^-š~:Ý‘ºj™×—¼Nð«ym7##wò …Íëíâ&³gOº=³€5U9 ¥Oåé­àÞ Øq$Ói=P\‰@l‡²Å»�,üc9�±zã1±SØëšC×}VDY \9’=ã³f‚õl’+Gb·ú[­¸p²_ø·Näoâ;2ýذRx}ìÙ“Ÿ²7$ÐÌh¬�Q¨rwA3GË8Ä2£Y�jµÐѼÌïJ†4À>™àôÝ;Ç ì·}ο>wv·ê O…R¹}ž¨7Ë›¢EëOÿ8ìúE?à:›q“.¯Õ ½A×IÚ’ù$§òÊ/° åøu­„_‘(Tq­u ÒÞR62(óÿ^}c^·%Óã(ÔdOIBÕჺùNØÕ!´$5fgéR;`G[zp¥=GÝ>•†gŒU$½£’±‚ÓO œK2 ‡�\mU’ùT fü²²ð¼§?kÞ*i� ë[ ç)ìÃ`þ NWCë|¤ûZ?¼§žØ°ÌíÑÇ\à—09ÕÈßÇmúË#ÒµQS5Tòó*sÑÈ—Ð$cÂv,޼˦ ô¿5Óso«ÆY*kÝOñ‚N<[q]bb´¹vr dHÀYWÒô¹øNh� fÄ©K›þ‹cæX•h-rH²�USÈapÈÆ*ùçíÍ…hBòÂìíõg>¶qT�“¿íÄèÅü Ü �ß”Øí‚V8¸‚@g·[ƒ kgºÚÝ[�Ðö]¢p–ç *Å™4ÄR§\;I)IòtظæôG,ú&65sY_¨3Ó«ñ,0êZ¡tîë—œW:ƒ[ÆÝ�¼².V<|Ïëôòýwœ3œÂdi¶›5û¡›¡šHɾ©o`Ä->ão©ÝTqh©Sn{è 4Ê3kqAµ6N1u[Yˆ-â3Á`øK±ÕË‹xSaU“ \‘°… žd*z¼êÿÒ5,±È¦®œBÓƒj¾·"4C§h,#Ý|ƒÓ¥uà®n|DãÇ>ÁRðéÎ]ÿ‘qúÅEËjÜQwÍ/”¼BóVôw5雩4¤ä-/_@ÒJÖÄDW–ý›”ÏãÁíE&úÏ ¸§¡}èÀ´í(±Ü)݈ÿwé2 -IE}M%˜ÁÆç@öHÞvÉâ¹Óæ�Z–¼õãõΩ_KëP¾9T ú3J°a >ož³k.{ÖW=‰UŽ? >“Kåü{VÝpò´MÍ«çâ–†®OÒCr¤ÿ_9[BÚpžzïHtß_ÍThÇе^IÖS€ßÜUaå9™ U°Š-ç‹~¨Ö¦ÞKï(WÅû7ãszÂ~Hyõkwãö²k«w¡ép~×-ò)Ôu¢UÉ>‡Ù†ùàÞÂxˆâpÆõ-z£­â|µýª—ù&ÞŠ×^SC‰Qì½âÉyÃ�ð~Ó– ò·NÉ=vh-,ÆÁ‰NÍ^® a‘:×Êô�£D’h 1Q½æ¹¦Tãô{F…-˜Šœ™ ÐK‹ƒ¬·ö9#úõ³üþ>q±a÷š®P`RÏÎ#X®œE.“:o…Æ­j“¿Tþîíþ¶+‡¥äEº{¦ O~¯¯îPlô!õ÷\ŽÛ“‘O;c3›ÂÔ`᱂oùî8Œ0'NÓ²ú$Ð:dÙñÄÌv ®Í÷ñ´'h­}¹À?hX‹åÅö¥ÁRv¦.² u¼%J™c*©ŠòÌa›FÚ�ÊÁ" sP춬B÷$€pP(iL÷ì#->ç–N““ÇdÃÈG4>b S›!h½Úǧ®¡¦ÌqÛ胞åë(q9ZÄ÷Ê9®„DÞ°ó0¸Èä-FÜ)Ž-À¡Ê>wÃõ1æSDãÈeOäÜ//•p>ΑSV¶YÝ€TÓ©¿V”y÷®Ä³) �a³ûdO°ÐiÒXÕ6Yy0(D¤Ø/œt³¤Š…ƒð*çKHWK­ðÂÉRY>o§M1´9\7ö}A´XÔ•ª ¢&3¼ÊË‘òì#Ì>?úš¦8¥£7âÝ­jû—§”«ÍL™PoåNj–æë±`ÿO(Á2‹}òñ'&Iïö›«û¡ÊÅ© á$Zi ™Ó¸úh6B´XôƒG–®¼æõ§î'Cni T£ü Â}3~€OÛ㫊÷†»s~!¹­a�»õ�±ç:¶CÛ,0Y¼,’É{ʰjüÜÀŒ}âŒH^2åHuSžu`Û­ýx� eW´Kžô4ÉÖ¥z÷îÙÙoþ(Pu~$&„�æ]˜_Ù#» á¿>…æózÖ‚ˆë¶ÚÐ� ‹[ݨ\®{Úµš Tzl§l·²(ªqc*±Ï¼J5XE!š«„FSÄÖÝ—{ÊÑÏG…mWû¦é¹OKmëN¿ˆ˜Rkžý§�ÖÕÉÔj–<÷/ ¸r…µŒ˜B^3âc’×IÊkæWFDŸ¾;içö/¿|P‹mŸÉõA¨DÌ«0�|M,Cl!Ä^c#­¢{!›¡9U–áy!”cä_?Ì�<²‡üÂHFE¢a;Žú“‰’bÉ{7ìÝ·×ÑœŒk|s�GÓ>†Šä¤c��ØçÙ*žq^D9…•=²ðvŸ©W‹ã:¶'wôeÖVF§ˆ•ùši ÀÀUuÂQd�°\®¦ãõ¨+gD¦�ÃõÅìZb¦äöxLÖO¹'µ5§G*¯ÉÏ_V]yÀøâ¯êÓ[×·dSš9ð)Óë‰Ô÷ø<†ÒUoÕÕÎúSÃ؃©Z)Ÿ¤"?ÒréªI(¤çÞ )”Ì´¦õ{z¾HšX¦õˆ ºK½O3ôlÚ¸\H¶Þˆpgüâ]*å°4›¬–ÝÁ!ìV­ýð%Ñ_\É¡"¡¥Ämc•et|: &M¡“…Âë'ÉšVAÇØ;Èg8¹pâLÎ}¿wµGHJ«û>Qsµ7‚´nz¥Ÿ,f6u³AÈ�i¥~¡¦í5²6v¨q·"BÞâž„KÄh¹C€](ŸÍte»xòµ×sÿfÉž”Á¿ƒ?G˜yÁƒ� Õ¬+Î0�=‚Ób„:?›¶¸/ š óEÕO0§í$€Q@ò!ˆ× ˆ¥W¨¢Çž3â“ãA·='«–ÁjÌÖ®´ j9\î¢88¶‚»MµÛÈܼ•î£ØÅJÇê>9ž"<~щ"bq�Ýæ í¡Ž±Áçw‹êC�õÚOåËQ#öø¦*Þ­ÜÅÑ9ku©¸œ:DÜÉë6lj<CûÍ”¾ìäuå‘íÝ.Bß׬Œ$tõxz)ƒ¡ -íʼnÇñ‡:G+¾{P9ëN÷úÀ…BØØ_WÚÙºÙfXQ!´<ãã_¾S«hixQ�œ§ +° Wã^ †&—³;çY»qCþ–ÁG·È­LÖ4-*b·x—T7©eÜåNÀ¹X8ÓNÓ÷[õf•D$?�é,¤5‹±6]ùÍÄ ¯_lT‡èÐѧžJa×BñÑVhëûòíoCƒ€LÅ€™A#9E‚u„¢·Ômå÷®ºlBƯ�âwé,� ?"R?Å!{{p›M³wA3ÆÔd�9dßa’�¤ÅIºi•ëS©º¤ Œe_›îMÖÒ@ ÎlF4" ¦©5ô~f¼õ#¸­÷Ý$¯HoŠD4†Ié Ð÷Kl;¢�þ­®ü¸�=²WªÆLñ0KÀE|È×4¾0]ðxÞS^v¡f�„9Í›}E)Šqˆ4)õáZÞ'ÒÊsÔ” >DôoúB©*ŠÊã�„e §nÕð˜i60[T\€úq"{ß?h–Þ€SŽX†¿L“xí[K žð]á{M[ú;ðµbW˜.#;UÏ(3þ Á)°«€úˆj¥�ç+»�K¾(פßo7nxzˆ×!�TòÎUM&ÂÀÇ%:r%TÒ·ƒÏî|à_^§=Y^n¥ïu¬Ž¬×™˜è-„—æUzáSóíNïZÀo«ôd0¸³ÎáaUX^Db”´iÊ'³/<-ÉÑzÞݤ˸µ"²›iµ¢É.ŠWFÃK§ô,«|D;¬¾îþµ­”�±4Ç6Õ×j9°¹ô]v-ä¯­ÃÆÔèºn¡E!=z�LÈÚ{/·!ú¨x(¿\à§ge¢vü_Ô÷S¬pQÓ­‹NÛ¶mÛ¶mÛ¶mÛ¶mÛö;mÛó|K'9ö:ëfg'»�ŒÔŨ֟žÑS•êðš>´NŠãÖ‘6š(�>\¯áh®%Ý©ù‹¦Ú†ýÖF{í4”yõ¼ªµeªÛdäðeüÔø(Ò:ʶ•nÍc,L¸[R­;úŽŠ¡u¸èWC-L¹VÍu6¤¬dëï$p~é–¿V\ä–¿5±tV-ÑŽ@«3—‹yÃ%Xӯ홅œÞsª&Kõà"K07¥'n¬&AV~Z©ÿÌ Ùcß®üD ÂÊüµŸÛÕmƒÝèïNtÿUñûÕÆ¸S  ùR3tˆÇTz}³÷-,B®˜¶«Çx‹€£,åÇ)Fbf4ø¬êe'w®ÃL¡‹'FœßÔ› åkq²}¶›;0ýCVäÐÇüNz+•6F&üõŠþ¤çt‹@àf›èM+Ý/l(¸!(jþço�CçOõãšœ†.ç;¿Éâašè9�×S�N «ær–õ^¼}…C¢&øyuU!*x{=)^–aÿå{nüÆ*5¼»)þe.i`SpÍ1‡Y˜oÛêÊ“ÊøléÏP~˜È¦—äËŽìR®òë¿¶˜0ýö–¢Aº·Ãè¯N§s‹<ßêñYBGz£ [W9ž 0ˆÅ(ÂY–!Âa«³ÿåÇ áÐãh›Ž+ÀlÓ?ÏÏÐ=äe9‘ÂÕѧ”­…Ý�©6í«ÐÖ÷­¿lÍᜠ‹Ö€Æ/ù§æð8ø¬¨Â <°\‰Ò¶!`¡Ä²¼4j2�ü �“åGÆî\$–<Ærþ(¤ô^yÕê”è´¿ŽJ0®Ô`…¶¶g{« ŸQ™ú÷4O à<ûé�: ÔüiåsØÒÓU §à›±'» :p [VÆ®-·õÇ~MÈÌl÷iµ¥—Û¥ñ$ °¾„õÁ­ðÊP@þŸAbàGU6 éwæ�³’±šˆÐ™Ÿ(ÇVšŒz®JFÍxÃ-ò¶ÝRß:½bH‚µŽ ß/Ä Á ]Ü)‹Ô‚÷3W®“k�GÛ’9SnékâpÞogz0°oNŒ”mJSæèQ¾#"K['GB4_¥zËh»`'Ç4ôŽ¿²–ó[_ò"÷½Í§ï �{Æ®r�Ÿ™JP'‹�ñ˜ú_¯(ÿ¸E:²é¯Å!‰Ã™¡›áz°·aþFŸb™þ:TßIúóe2;kDkÉŠ>œ3¯Ðêy¿8»2ª»7RÏ[( kˆ&³‚mný/¼ˆf­\s–K¸ÏßÈáøU˜içº#(�™|8ò[uƒ>¼ã¿ìÒáS©Ló›ÈEÂJY:51#âx¨°pï%gN¨twªÉíúºH}xZ ònÁ쪶ó�. ž“6E…Â뻾7cµëÿT“?S?àQYªï„ïÖdäëîäýªýß)ôç³\ª-�_î�ƒÍź”Þ�ªô·ºvÇy5 }YÀ�"¾¤¿ÿºOQM]8´Ý4GÞÜ9#ÆWC7lÃÇ>ôÎ+d¹ÿe‘UuÈuSòZ#tY) i#Ê„ çP%•'B;!� ƾª£X‡f,¬}ß�¢(Ex¼bUU",Ñð˜õFôsÊŸÅU<ÜkÂX„·ÐÉ@ã�i0!?z`<>Á¤|„÷N±B6[Wÿ¡°K¾-¹Ý ×|^sö töã7g8iŒ‰ÃZ ,­â‘ò¾b|ußÿ7ŸsZ6“q†\h"&ìâzbDRß÷‡§‘“þ²Á{çÔ»Ow ÿ§9!ÚSH† òðGmܵñ+øÌ–…Ëä0÷7vØÐ­�‡ÇïÂ/TàaÐú¸N—Æ©¸]—e:R_ÀŠÛÝ„ÛS7¤ƒOLxCöÁ[¾^Õ2t*ÖÕá�D5�x‰ëfpluýåÀlÜ/Ÿƒ„{E3~Gþ©à�2|$WGü­”Í6FÄ«�»È_W_$I…òÆë wð¶K½p¯§¦™ËÕ$PBøæƒf4m¯KµÆ"�" òIÌá LËèì¶ ÿ±_¬<¯ù˜D´µU(KH1GÞ°Ž^'gmÓc/ –° ÿ¬{c�dÚ©ÿÕPÍc‚¸¾YÄòCÁË)´\ÿ²ØU¥³©‹eã§í<ÅØýL0 ³vfh×.¡¼UÙ Ç’´BØmݧC©Q­½K6ý’�ª£øÎž/7t+ÚÈ 7ø[AM”»Î5Ë�^ùª‘jûšE P[£'n„|E³ä™Â;I¦A åÈZ öòj÷ ¯~2R"Mî×4v‰“‹Š�»ˆ1圬øÌ­ÍA@Å<÷p öÍ%î ›¶cŠ-¿¥ˆ�L‰ˆq˜ôí­ÙÊ¡º^ϰ…s�Å™’qhÕà1.#Va¥PSZwk}8ú¯ÒrcODËœ[©ÿ¦ïzŸ0r‰ê/Ø-ŽT�ªZ¡A‰qWh¥rC´<²j8à…myG˜+¼ªC‘¤i÷ù°¬Y¿@QŸHÞè…‚ i–ˆÅnC·Ö¢õÉÑAZ“_c”Í»ò‚)ÒeãMC¹â–ˆ¹ê€ãf“zZ¦v¯£=v þ»ß&_—âKèà ]EêÌP´—mUE�ã€Órªp�Ï™˜j/ú™8óˆÏ¢Ò%‘`àÎD.ÛðŠª40ÿ(•—Õµ7é:’+IøSšGt,oÚò5¨âpTŽg0�e\KÅL�]©»ú&¶nŸ´ƒ`3Ú“´ÛÆBþ&B[d¤ —&ŠÍPƒ™2þö×í¯ã7OZ{­°¦;†¼öÛÕ}©Ü�âR9^Âã–”>¯ø¢Öž7 ¶:RÇvJ,d¡»7!›ñ ¹›iÄ o³Â.ÇÁᶆÌXŸ¼ÚÓOu7š fÍä6z®•Z0²NñöG‡Ð‡Úötˆéo>v”èÔ å¢ðªÇ'VÜE]e/¦µœä8åå³u¢ÈñÎ ¹ RÉ“(PÏQ’Äv÷ ÿ£P Ñ8g]îšì$C}–ö¶sŽùá–xC ü}ké²ÔO‡àÀ0Òƒeœ ÛU%kÅ;0¶*�¹½fG¯ÂÁ”ý A¨Ò8ŽGM(¡Wj¿ÚG—܃P+xÀñ�˜³`…\{¥e6wØÝZvgä’WÜ/}y†[„xY½§�µŒ!ìoP’Yå2å•eÞjÀiÔ€iÀŽe\Íõš_Z>º ¥ˆ“;+%Dgyaˆëûç {÷žjö†§T0ÅQ@ ‹^wáóh{½kuÉ+ LÇÿÈ4,gJåÙ¿?…Ë-Ž{…Fˆ‹Ï5úÊ/jFŠ"ÄMê�œéE·Óÿ¥\®Ý“Wfšˆ[Ý·@`” î2(ߥüÕ¯ò:Ém2Äðù3,¾„cÆy.|8‚jj aÝ-¿½ŠEÌV(K:”qx ‡$“>ìœOD:“'¤—Y[9““«t_.„Á_-dzþ^ò3Ø­Ps`ó#ÅB+ùqæ!Á‚= M½ÀøK[ÕVjnmõEÊšO¡8$R0Üì�Æ‚„gç#-÷ý¦üºM`K8ÎǵÏÌÒQÆà îÿ²ûQÕÞ@;(òa…|�(š slJv„’ÇÂj™‚'@¸s¨¾={âÎÆ€SkN¬È†Õ´}™Ã„æxß‹(\Æ쳕<&ïµö¬~ŒÄ{U~Ïè>Ý_ E…Ǭ(v{1að Å34ïšù}”¦}‹eöy¢uýÔÇ$¢N@\1¡J+—2B$æØ»_:�9„Cž ë7Ï*âœÚëùåò‡ØÁï^L…Ÿ¿NóÅ�¾A7¾ÖÃÿ¹ U-L°ÄáøðЧÑÈê@Évþ�­ LšoAìZØDÁÄ÷ žn(Û[]ûL©L4nùgç|f ãqÉø0˜™žS‚Î.úɾˆ7ιr7G%×gpú_¯Âa鈂‰¨šKk'Ôà¤Yé ê^ÖÀ¦ŸÀzôµ†2s…¿¦®�ˆN«!Ô=¢tá»_«ˆœ-,Âxqß¿ÖSUÅC¶´5L…Ä ^ãøX¸&>„)SäþøÌ?TŠaš6+áß9Žw5 …�9µ[ASãnæÆ¢/*oÛ¹Œ~hÅ”Ñ5g\AûAemKêw«oäQ$[n£ÊÓ¬£VÐÒ±|U£|A‚ÜL˜ ;âéx™Ø+8Óhµ|¡TÆG'UËÒ¡*·qœDçÙ €Ê˾h­57?«(à¢Bó|üN«U|ÿ*™ k'‘Çhþà[î�Ɉ²L€(ÉnBcF¾å6ªÊ"ºgë|ž'„Í9ÊXzH¹“SåºÿN]@‚úü0ÿ€ ‡4&Öœ=`Å%‚÷)tÆZžFý[MÝic[Â’K¦ƒþ×ÜMt¦ÂA= ”�ïÀrS£_ÃèVö@Í™³"¶í"ùê{‚AsIœð¢ª¢a:§)jIšžÎ‘Lî€åÄeW‡–{Сñ'Ë„¦#ï•–£N¥åØ«,˜�$VÐ:yæ´GÇçöù(/ãï_/Ó³csÝ\p”ÈK¼–þ¯I} *ØB¶¯ÂŠ'±¶^K ¾Dt[–›'XˆáH]O®©~„í"!ÐìÍ Ày?<ê†ÖWÕg%©\©Pz㳩ÑlÌ>f†VbM9vd¦ãŽp�FÖÙvÁSˆ@°îù¥ÁHç:Ž‹H¿]-áw}Yí°'�°œf‡ *œÝ5”Ï®°ð†9i�Mô8»ÏÔÖzóA«_OÓµA&GH)VËnÉ3ô2לAË+”gK[ÀcæZÅ�Ê4Ìùèâ¹LC,×9âIDòµë!Ÿð/ºŽŒóÌñ+û;rv7ÖH3?‰ÿ¦1ö¦qMÀd‹Hö€©Züi‰ðÍð§ ö|ÓKäy]Ñ¥¨®Â_L­yERƒbahÎlß’ Ù>u Pè³êg¦8®–$ŠëFâM¹åçïî y*ÌŸá ™X;èêf–È<ðævyǽ€ÿ8²°1Œž�LoFÚòÐ̪Œ´ù5¢Ø®‘zã†Sœ¥MV ‡™íÓæ¬:úœ9=ä�òYŸÏ-ÛÈœû¦¯Ë[�Hn™¶ Œ7amˆè|UÈn]ù†§8F«•¹1Ñ+ãºÞ½²´³_D£©ÿ¨à´ÃQ;”=úúBJ«³S×:wvríšvg}Áƒw  ~+[“FéŸ ƒVÅ®gìô6ê¿°…¤ª ÝÀ–*%žfÄó@vƒ/C3Oäåí§Áˆ¾Ä¥¿RãxTâà#ÜMÈŽ’Ã@…’yNÚðPÖî¨g77rr N£�9Q9 �ƒâ‡ÀÝÐùd‘5Ñ¿6“½Tê§ Þ\Êîƒj¥Ú•?qÜ"w˜�„í�äÒX%\Ñ1Qhd~ òŒÉ‚¯¤«Ö@ã�ƒS~ F}WÑU¦�ðc×áZóÒÍP­=ÝëuHαõkÃkÌ¿fòÜBØe”“÷­ˆg�¨°mFBEW÷šìÁ#9“TóáOä@ÌðW©o¡Ä\í=é€àjAöåJ2ÏId«ÈøWר Œ¾Ç™CUWµ …,NŒ£U:sò)0 å$1$ò{ÍiÐâP�Û%ôjïþÒ“±×'Ï$`µcFÅÄhËú—�ã ßhúuP .m„ŠÐ¬‹å ŸZ©ÑÚÓgƒX“ âó÷@ȼ٠ß]*�c0%‘ÈäàC_”ÿèH‡GÃ_ÎâÝŒ.Óߕ҈źSšãã22ºæïdÕåæBYÌ¿&Œ;J-×;yè9­êg03ˆ™"$Jž^ö4ìÂ7,¬îBÙd$otnçæ]º#(6RÕ¤§5MúC ½�f^�gÇYýk·¿ÌÇM^`a� ²=°Ë E”Jø —ëqÒ?’å´›Y"܆w[ÚQâbCA{zÄt Ó‰L$ÔNÁññzÖi»I†§|û½86Q›z2·ºÌ¥1µ <§n›Ó¿Á0 ì0RŠOYsf¥È‹(éšè±$(ÅÝ ´½;-€ƒS>x'4éÖziÒyN©62ƒèÜGä“U5�LÏ1•ä´V›ßc‹Â¾¡ RcgZ¯kS«‹qÉý÷9ë™.¹Ý£t¡çÑìæÁl�ƒÄnpù‰M~R8A%0›Þžääî¡5Ȭ;Fh˜*X¢-KǧÄ%=¸•ˆU¥‘Ë:¸ –;3ksŠŽÇY˜ô­ÓÁ#*¥¼•åk ”% pÙhs&¯‘ð(uzGs“:<ƒ? Ú iìæ°¦ã–ÖlG‰ÍÐQçäë°¢g�Õü)üý]­Ü“+ò 8†rÔÃG–jrŸiFOäi œ¡ÚTÒ�moÆ46xÝ’ódíâƒfL‚2QÇ!rþœéQâýƒƒ�6 %ü}Ú×.$aRZ|܉kïÛmRÏÈá©&.«�G¸CY]àvEò؃�’`Ñú¬? ßpJÑÿaQû3 ywËï5(TW‚žbÜÔ{‹·Ë:'¬Ü‘ãÓMC–7}Ïëø“å•Ú:ôÂ;ÑH ­Ì‹äAš'­Bd¢Ò}¬!B¼ÿyé«[~EµlÊlù×'- h7H¢p±{œØ°‡/ü¬ÿú-‹ÃqðR, ý\{§¯ÜoÚ‡æCð¦Hã4ª²8}Kî`FN^ÙÄܦ*DƒE8ì«}†ceŸåçq%!ܬãÇ‘·šÌ2âpªÜ¾yϹ¶»ý¤å©I„iJDXŠ\Yîú¿pâÓDØ0é‚(œa§èö›ÈIËþ%SA’ÃÆÍ¯w$YÓr£¢ŒdƒvÈCþ‹÷Æÿˆœ'úžgÇ:«%Ø–cÕ/еFÞà‡0ñU„Å4·¥4ëB À²[õûš*a…Š6ï…OKp£ÿJ3è¦i æ¯9àiñ:p¥ÿÁgšƒjã,à’ëMv¨­C$+¶'’Îø ÷UÔãPzÉqÕ©M]ëD_¯M´€ÎA¢ ¿çNØåVߨÅF:ýÑg}BøXuÆ­ˆ²pŸY^öÝŠþU)ì¢Jcè?þÑç<Ê_„•ð„0ô¿^­bÃ÷©Òyè -µnÐó÷e·[yÉgù[�7µ~A,¥ö$AøøL”,¬¯m«äT†6^6 ƒt¦¾�·¡t¿­¼ãœÛNŒL…*¸£g‹µ€,üjQJ=x�Ohï‰>‰3L Ì=õ&²�QšbvNó�š2óA &C�úó<Êå¶ÌkÆcSÃqb†| ‚gÁj=¬G§‰ˆ“ÃûÙ˽ÕúZXgØÑïAÌQ–”A_L¢DÍD&‰ƒ—Üu]ÖVDŠ1o€ú’ˆ#4©Ò=¨KTòV× ¡€¦ëXÐ, Ñ£9•Ñ;R·³ÞÈ(¨¥Úó?¦rC>3ÃÎT–~Ïuäy]gðšY›Ú‡õŽ�Y‰ÎWSþçðMå…Iٌ؀”i\ƒúçÈûûXp±ø¶XÓ6·™•MS˜-½T}'û9Kñû-eÑžÒ©/Ê0Œ1J¬åJk bÒÖÆ�0›ä©'Õn[ÆôuŽýõµ´ê×öÐxÇCy¬je‰ã³€ÎD/ èL¦THãó¥Ú°¢OÄë�O`qX�Ñwnþü˜rÃÛJ<½$žúKeˆ€u™Âö©Šu4C>ÏØr>z w¦¬&á€è£…¬;‹¨ü’ÁGa¤‚êªÂ“hÞÎ9IH‡–96áCÒ±ЙÕ{š|ÑwìƒÎ_~'ðQÈ��¥ÿä4˜­<Ï÷3Âûo`i„¦3ì95ÑÙe¥F×�N¾`ʽ$åpÑc¤¤ž>½äÑ�KðµÉ­`鋺�®¬|sŠÔ�àÀÐÐÎ6²³ZDF§KCÃî–÷õ£¯-•RP™7¾iTŒ`|,oê7¢|�f‚ÖOt�rúŸ;%ÕŽ} ä5 Ùð7ËJd�öU0[ãò^CrdÛu¨6±¼3›`LR 8šØ›â݃!o·Q»7¤”“%U1¦µØöG»…%Mj·$Ò{tõ¿šDV™iˆvFàè"NxÅ:·H$W]‡QÜÿÜF‘V}‡¨¢EcZQÃ/#i³AÑkŽÐ½A ßð…80¹KÍpÜÉD$ò÷@{ˆáP”‘¥…(úÛ; vríÀ%d•L6³æÅœ¨å¹Äøs¯ׯ´ê c‰8›Ÿ¹­þ=Nb°’Ð쨮R½¿ {°|ö¼¬ªJ]H®!îB¦NðØ"Œ¤ B¢6‚sکĸFSr²6è9vÒö«ýFÛùߊ";”šÔ{¦¹’nñfVB†ìª zsC@‘�êÏ;Š•·fmŠ¡žT¶h¾ëí¦8[d[o³Õæ–ó%ñ¸´p¹¼´ûôÓï¿Â�­FoŒ0 ¢;ŽW¼ìõZó*÷{_r…ø*,‡†b›w‘iX ">ó ;¬A6— ÁÉ&ˆ=§&ù›>¸ªrþ2ª É.2ü5©v3$Æ^í‘¿„ˆv|ýé Îhrù;c࣡�ÅvŠmÍ^£�ÿd‹á’Õ¶¦cyÉ Òźî{‚ðmRQ ºÔ_°“G²ä‘kbƒ� #*gZ¬KBWp;~¾¹” >!‰ÿ±S‹,�¼÷ƒî䮉‡X†–W³t4Leû¢®éþKªX¬5Ò¦YûX‰ >Àž´å°U“9#ó墭3'žò;�(ùiZá:ðbÞ 6›öJF¶Œ˜¶qv!É'_~¾/d‘¹Zì§ßR¹¤Y.=%»ØU­.”¤|"öÒéx¡ù SE8�Õ1̓|Q•ö,ù@ž3hcÑQúhBù¢ÒÔT´£­‡�N€Iv*»´ÐÇÌ ÒkÅ(¶òƒ²¾³&Mä^Ø \åÔUÑôºH{SVü·…`­Ý.Bô¸½ÈY'Tc~°¥!¾ïmઉ¬E7m)ûÉäKSA&gréƼ·kç´Î´®*zÁ”• l˜²«æ“‹Ïªó1²2· ‚h’?Å<Ù%R¦Š¬Õ`b ›ª¹¼6D´e´5Ý`ùœ—xî›õ/æ0sýñ#¹;¼¶_§�4IïÏÇ…œœt,lÒ!¾‹�˜÷uÐÁÛØqÙð]ùpo ý÷8êw±¢äBÏZ½‰N£'4*”�K;µ(Ào·„Ò{„4¢åE§-¿å~HAr�Ð#cÿÑ�I>/w6bÁ—fŠsô›Ø±suúÈ ø”ÝNÝjB#¾|wh¨â#ß¹ø…¯À¨Réj TŽÎˆÔx Ëþã€jMÁ”ÃI Ø+ì9;$“X"«ÃhêÀ6ÿ”y=l¤¬%}Ô=†?GÚȘ1p*± dѰsCôï×çë®Fßå¶øph 1à{1±*ÒÙÁ¿Ùj”:£k@i¨ßoµGОto7Ö ô5©{‘úI×ë¸ÎÝPÇBN%Ø>ØâÅ$c,Vin¤Kó~ÊιMÝmO#–Á²:°D®¾_ìèeÎ�É^60÷W \‘Áº‘« „Ù�_CN¸û;„~±Âï:@ò6¾a8*EÈ0òé³¢‡±ýš¹›—Ê�;`]B‘k‡û¹Ôëßf9fÒg"ŠŠ»T Ü€‚d©0Ô—cspÕ ÚÑŒ¿ K¥•æuÇ7f´yþ»« ˜RÿjÞÌ|Î=òEqÓUk‡@B3€@8Í›YÚFÚú‘�íz¢ç§Ë¸v”´m™ödš UÚË ™½ïïAŸAõX‘ô�gÇÏ àƒÞs¸»’ÍöÀ…‰GCIdý#Êð‡QÅõˆ�’äž áÀ…úVçWÐl¥p#¨ÖçÒ¸èçôH'ÓO©m¹àh·ïÔ Œ¤ò¸Ýüeœ¯®s:U°½в íyúÌ ‘¾=˜SÖö¬; »±<^–{‡3$ù žúdªBHÇóyi‘ˆ¶$õ¶D|0Dá„#‘Êû` gÑ•Vö8¤‰÷_Ú`d½Fb$§þû-ýžÌö�÷Ý4 ßsñžëò�Ô•—ø'(8ìÁ£,ÃlkRì=ù1Ó¨8ym`îx£Ä )dÍò¾L¯‡Êbšw7+�Ÿ†½Ð}0d7Dã÷í<}ÞC%™;ˆÐ�º£^÷�oêK^;Wr·ØøÖ�ÏØéVT[Š Ôu>Î:­iùUô2-jæL�ݶ Æ S8Ö,\>…+ö #=›¡–€'F«(ü&õ¨úªä÷ñ̯/½b�Ÿ·"Ë‚ïÓÑzÐL²òZ.bÿN§“•Ñt‡wÌ·8BÍüaî³Øâ‡bcû<Ää·9<¼û}åK÷Ä XàAž«ö�挈§Ï Á·¨vŠïŠXíÚÙdýlÐnáWû�…Åj½jW�s™Àêü^½Žö”{š¾÷Øvüí1n³esÉý_¶–E@>�غM´˜¾ÑÔ»šÖÅe49Q]˺à[çAq†[ÝŸHÝ�&Õñ˜³ÿZ\1¦dvNË Öø©ûX. ©pÕÝ¿"›ÁäãNjmõ(Åè?öîÐH³KÑÑÛn‡XôéƒXÄ·^Y¸i±³ @î¬ÿÌ|’C*Õ¹´Üú6±50$�^Õá„ÚºoyQÖøìŠê±›ÁÏM* j!sLÁŽiR%…ãÃBªm½Fåò‹µ™ªŽ5‹™ÆT|E½EŸ«)éÛÔ±WÝ�ÛVæÌ¿IÃ!À£€½…20ˆ¤â°Ø .QóþÏÜÇ?¦ýLÂf¾ÚIeOP YQä„þ'ªåñºŠ=Þô°#‡†ÞbÏ:�x�{öS�"Çzï1>Ma„÷n׌ß°CÜ^ç'ª˜Yx¡�ÏÈ�ì(Ö˜A�uý[¥oÊÛ©Q³¼ªÁÐp)³à(m^¤™”€ºO/@Á3øø¾°æÄÔ/¦¦´¾Âr¡šêŸ%4óV*¦{Úª'^5Ž\jæ­Ú³nŒ–çv¡ ruü(Vª±“_YsÚžEÊ>Z ô2õ¿�:u¡’·_ä”áúOWÇH¯ê^F£¯Çö¤ÅÂ�ßýQ6’¡Ã{ï=>Ïcu�"ÙCQMNäT%–„Ñ5Ÿ¥aLs¡F¨,l׺úâÃQkÝ4„—çöÝÙäX<ÍD»?5KšO“ÎÓ›‡7Á÷ÁWËÍÜ8ö?OÅ »uuÿF +Ç„ óð„A’#õëñ­�t!àTƒr†x«O‚¡ÖÈ]êÏ×îõSˆÝO` �(äsìS´ü¢f‘õ%«æg¯ƒÓ±*ÔS³nûIÕÊ 4­Ÿc�?;þ ¯5ðš–¨¡ÿ9øá¥eëÛ–ª¸]°W„™zGÁXøƒ¼5¶noØYÄÚu�˜ÉÚ§Ò¹ìÿÞˆ (ó2ÙĘë©vÍB'ôbKWÿ:Ë‹¾è(˜µÐ~çµ>7ä²co•¾“ÿ‹§;h"›k�çQϼ;¼r±Ëï �1/èÔiÑ§ÏÆ|MŸTã­¼ýWR_Ä™ç ON �ÄíÒÈÕõ#êuÙL´ÊÐÅ{ï2ÞuæïhO÷”O.gvyp·6Ÿ¼œ!^b�ŸžÅ!—þÂÑñÒÎJèÜÎÇBÕ1%u>G=HVãa÷‡—ä„ˆë† Áç‡jí¾ ÿàv¦· ¬ÉHe‰ i¿>bl\!zBËÒ‚ÌÚŒ7tZ&Ô±ý•Y­e%Ìz!>ë9ÔÙ&ŸÚ…ÚD øí¦ è�îpØð]ŒÅ BÍå*XzV ³2¦½‚ÊóòËñ §¨JWÆýzÛÔC¹!0ÞãöÍžÛ1¿pGj7`„p�5W½èéÜàK«s'ZI¿\©�\¿(~TɷߺÁåã=¦ßÎm¬l ’ør É {6æÉo2[/”‡ �±¸T-w·‹� cæÏÎÑjÅ Ý«ö™GΪ¸2ÑV6Wh«÷H=*Þ'»]«KO�œ¬÷R];®ŠÝ'||3~²®Vt�}}Pôbžvé?ÖË,}Þ.®Ì’Ää‰V°Z×wÔ߉¯Pª§Æ×Üná{Ižér$¾Ü]‹›ÍðUß^è�_#}ƒÝý³�d]ãã¶UÌPºa£¦!ßÁoÀ+Ó�þNfÄ„¨ÝËîo®¬´–1©¤W:€(ihÞ÷¾`~óÂÃÙvì™Æ¢²+ÌÚ–�ÊÂ7`]îXmT3#°óÍCá¡›l� aBŽÌÝWu½8÷Ý U5îfæ[R;³*nYd�¯'˜!C¬2‘áÿ§$½(eÜf_€ÕFw[ÄÅKþž[7¡¼zTÍ]Ó‘\‚<~6±{ƒÁËÈw'é®.9ƒ:úϘ€è}òí»T).È Ñù†³ýÄWV£U ¦ÔÌ÷32ŸI»(i%V‘y1åWø·›K#v!«w�QŸƒ° ¡RcoaÚŒèZ”±!©X¯Ä ˜ !lDŽ˜ &¢ÅÞÊ3›N°š}Úe°= UfhÖ˜Z&öÁ :X¾>¹¯Õ['Þ±]C÷\ø€õpeœÝùâK1]_„%ËW@x[+˜_´�.“SÞ…º.!�:Ø&Šž“å¿G1ÿâNWéT-; µ¦=Ì®‘ªOÝqwï´ Ç-'"(b€¾°æÑíÁíy€†ð&z\K=}éô¦·WB¹Üþ oKÔM†#r3Üû‘ÈšN=òlê¤ôß‘Þ8Õ÷¯ä9Ƕַ”[Xn¼(Z[7qØÙÕ£Èòdµ,�(—µá,¤�ÞaSËÍ3æ � «~öøÊsó`yx›¥#+ ‡§> 3g÷>Áßs¤ú×ÎñhŠüE¯‚MÅT¦›ûì΋‡÷Ü?£wÆŸeØç9ÀÜݦ¬m猅ÂȨ[¸H9<'«Úqixº@ÿ¡Ë©š,¼á)—Îu½•ýÏ¿Qu•HßädùéÕwÜÚÍڈĈ]ìuRz”¤'©]1 E*ŽUe?zVªõî±tCá§í ™cP~’΢Ûgì3¤÷ ÖêÔ¹<ˆ‡–$�mÌ»ÜP°æFÍ^”àݰ�ßýƒ»°C4°Ïz&ARª�¨%Ã7z(ÇŸ¸â´bfŠŒÉ{–òð4ki8ßÞ1EŒ†YŸU_I{™0Ìè<#&>øüT©Ï'€åpX!ÒFRSÏY÷V#ÈG<=8€�E=Yưµ�Âp¬<ÎMyàåôa% Õ»47©å ä›þ§cÕl[>U_ÀÈiçêÊïI"Mwz\dÔÈØ �h Ëÿ|1ámÌÚ½”‘§/WØ[é�:lPŽ<¡,×þ^eÒ'0§x‚%' é§'‘¸©2¾Å�Ó¿5“u@QcZ¡¶(^G"~ä”llM¬(T)}t>ª§@V³ÌB=±<ÛÒù½d dÓ%(ËÐisýxw¸nú–ꀎ˅îÓ‚è›—r�h bŸtrC0eè*òiSZë<ëÇi$XÃæßˆÅ.çºQ ëáýcTbûNP¸Gfi³W³ÝÜØÉL(�æ•O±Ò‹ÿ¼wû¡Í�´Ï0¥9Ž¿fWþì7I“!qÞ¶—¶ý£,yôÜVÅŽ ãb™ÑZ—ó`úP…�"/›:Ç9¤ÙrÔ8¼WÂB�u••÷¥cñŽ}Z'É劙¤8k ^«: ±Užx¶ó¸j öa¸e�ðÙÈÀ´´:^{VÄæëÉ©T’§u&a€ž¾þ$8>{0Bqô5s¦ØN/�ôhm�ýP÷Whù<Ü56±¡ŽÔ‰6×V +1 2ÈÊↂʀ�û=.ÙøF!ÂI{Õ#œ ˜[öá%˜`o›–öc|ÂuK’¹€JãååÆQŽ19ïÜç˜6bõæ†~ÎަöD*‘ñºÈZò¥•c³Ød¬uÅdÎ= bÃÈdª'ÖèsÂ!îI“†,a4££ Ï–¨f¾'¾Aq6G)û8¾`Ú©õAßS}^:Ó$~g­AëÙ•+˜«­rö¤ +‘.háú˜2æ}qüÜ\0³Ãedðþ£Íºå�ój·üfUߨràÉUCV,²U›)×É6Pë78îT[×!|œœUµ‚R7LHo w8£ëIðq?:%n”eÆr›i)Û¹�_¯D.† �ûJ0m¹C¼`¡?§YÀ‹ñ“žAñœXGQh4c~‘/fžÛàÞd‘öç¹óF˜]ç�Öüò[*àjñËfmŠçÊ“ûÇæ®š¹ËH¢©¸w R#‡=Ç&H-V�ÊÁ°Ú‰ž¬i‰š´c�Öô¥ÄÄE”Ž^†m‚¶©býO¸õÇ{à¯ÉÏ-|T…Á¿ðYþÛÜ;ënåíµ§ �mìcJD©0«®Ð®¼‡Œ#›gµ¿ÈŸF;žáÓ’}àÜæ7ºëâ¡Ë~j•¶úày¿çó½*ö^Ðõ ÉîäŸ~†ïV™¿Þ­°wvæ„/1’ÎR@&È_|Ô`|µc=?-‚{[˜v¾%Ђ€Òܵ}™TÀºc”Ó‰(EÊ�cB-ÄX)oõ w…Pë»›ÙµÄo„÷Pª}r" *»" ÇÉ—òÆ3`r}ñ7IW �ƒ_ #bIC´‚<üA¬£ £M„xÜ$ÝöàÈ—C a|o{õÍH¿¹Üž0÷×#a£Ä§”?Í’$ȳ`[öz諪ŽBæýiå›ë¢Š ZR!³Hë¼ñUí55ê‡!سXÌ~ó@ƒø`eCÖq$Ds‹^ÎZLÞw”¨+L8Ïøúó�o" r ¥E¤ÀÒº®—|·�“ßeÇ-Å=ÆÎýäþrXYb¤õŸ@ÌuM¿Cû£C[k*æ¯qýhä‡ÇÚÐ÷œÀ‡Å¹CpE³‰BP8Ô7_ˆÆ\&„ãÛIF-X޵É1Fš–Ö§#‰Gô�_Ni½‡\”’zv-V~pP¥©÷ŸÈT�‰#*ŒXU²Î§/Î"ŸI‘_Ë�äÛZÄ@‘Õ®{Æý?ìÛâ¥E{|% ƒàŠV\Qk¢¨>—Ê’¨*NÚm¯aÚ8×&!:aù/uê(ßÑC³Èùçl! “G&.pA³?Òû>ú¦³kÁY¥ò2ÙlF½p‡`ëDòéitçäÃÜ)>Ë;×xÜÀ+–\l.ž�tlÉ »cØVð¦|¼YJ"«u¨'›W4Š2òç‹<ƈÄ;ŸäòϵˆQ1ȼ©vd®9ÅÒ÷Ú1¦‡Ùwe\æŸì¸EÂNhþzð*‰j:u÷0>–üˆ½©T`w 1¤ÐÇ,ð*ø\YæR…šZ‘¾ /ή;<Ø22¸¤^âD¤.68«HÕ—ï˼Í.Ê#QlŽŸñcãæ‹ qöa›Ûñ¼‡šdï#ï¢9¥ž—JaR° YÚGnTå|[û¶˜q‰—éV8À$èg‹þJRø„Úàèðš 3AÔ1ê%ô‹#ú¾W0!ƒïo]éÝT€N‘•î¶ý X�@+²î^DbML;¡hyÎþ�¸Æî'û\ÈzzDGú ¿e˶XWX JÖýÑJsúàœþ¬×øžZ؉g%*ð ‘g�zÐHáIHié  Ü$eOÂ|ñ&�}ÖTŸ¡iìLJÆ$kr¹8yPAZÃæºtjäÎwîuÆUd&¼Ô½¨°12ÆŽœ €K~1‰´èä>ŽÅ¹ÉYËÌ©?Ý`Œó Ž8» +ÔªBkßãUøÀ“ýŒ8ÝÍpäîálãt¼\(¢¥Rô@=Ðk$ƒ‰Û™ÄñÐx4ªú3êÆ‚_’ŽÉ(öõÓ�åNåÈ>am·>UóÅðz�¯P‹Õ%üÙ¯lç&´³Öö7© tÙ,  Âì‹ A].ÇS'\sà>@Ê~0ÜôCŒ�¯Èà!m¦X= Ìõû� ®ƒM,/öû‚ £n,ß-œ³h-Vr¥ð'ÌäÔG‡íZXÙ |+á>Áaúlú4ÛÓÈ^Ó©;!–¦õ´˜IÖ± 6,vªhä?�søæaüˆ â* ΰÝ~z¸�(‘‹£Ñp³?v…Â�§`„­–�ß?BÃMmÊÃ@Tl¥Le æ �‰ëw>aÓ²þ»O—sß³Rj‹�f÷æ#*w¼d²\v†¶©BH-7IÏ=( Øš«?úØ…Wö}äs íç”Ø“Ã'Ce‚®�–¢ÕduàY1=žÉ# EþKJÖQ“»uü7G_–×4c¾ÎÜûëèË ñË/›ê€‡Æ*sT.DpL`cvÜp³/®¶W&ÄD× Ö�‚ô:Ÿ[lOñpäñpB¨(áÂÒqà\%ÝœL{X1;ÿlz¯Á}8Ób]S�Bg#ÔÊ)'•F¢³›gp|çSqA¤£œôã7ƆÅx7WäÄèóç�°éÿ¢#$á,fì´ï0§ÚÙØörá�t)›€Ä–«GóÝdÿÒ¼ADfìPªO\ÄþyàF+ó98_*4�RjÙä¹*¢8Òƒ:—Â|�RÉë׳V­ ²yë(º,˜ïÉ ØT!âÆ‚–Úïxµ[xŸèÚXY£¸äÓ­¬ÙÏüK¿õö{|ÓØ{ºÐ—é}ä÷ÌéM­›ÞÕQ£T&T¾ LOOŠ>åLJ_m Dnc¤>¼ú‘ßeÍuOÍ*Ðå}a]äÌ&ø¹ùýˆRj„bÉL}¼«@Æì8Aççìá„Ó28äoH2s‰Z_Ž ©�m?@ç+À1ëäs£TGT½˜9•]nsƒM îJÕ {VX`³£'!È6lÆŸ5ÝÝ �¹o>¦jIÞlÚíE7íx:â´äá"0m�,LAB»‰!ršG篆(ìÅ%{Š2—Y›±ülÙñ–÷#¾§ë΃Ó]»gu KìεÜ*ô¾ _d¾o)MRôÅf1“Óz¥ŒüSd-6ãã¤×ÀL(Yõñ‘èõ–Òò ùFP†æ6Tùv‚a޶zXЩ“C ~N§Xð“«ÀÇA\…�LI¹² Â|Þ$Ƶ ¿Hwü%43ì_=Ý(c›¬[O¸å‹œ¨iud¿wЯ�ÑX™ÃÅýseÛûþ狽®p�îé˜ ànî€Óóv+5-ý.To%¦GO™˜›.qÀkòÕænp\KÄ‘6ظCG\S*P{}Mn4M»F�܈nèÁÃÜpð­…€÷^€ß6Ö¤ûÑnd&# ¬{(gÜGýû‘o§Î®0’5”mWœB¦‚âa·þ3Á¨"'(—/Ì|Ø¬Óø+s¤å/þ@[glLŒ_&š™IÜ%ÁÅô Ý)9x��;„ƒŒæ€j6¡ÊÏÛ8‘bÀñzðÏò‰�·³y# ojL³Fšþ£@xÙÔ•™¦‘ˆ ã°iz) 7k[u})C]Ý=§?<|•nû¨Û®vöܰhŽaRÑ3£â–rå1R¤ûbFOÔåð¨H’ýl›¹(ao1 èCÉtê•fðÂCîA‹"ƒ¾_êã*]ù_v·œx»&Šä\¦|ĵb�^-d=Êå1Âén®º"�rnßh u<Âw¬'¬T̉ô[¯�&#èϬ—Ùu*TA »ð¹ÞÉ‘bP)×9UFÛz‹Üs6\®f ¼E\´2…íGˆ"ÕZôžþ“6�Ï™øÌ]ñâ?Œ ,”¢e€u“�e©‡Þ[*§’à6¢�õÅì½`pðFÝܤJ€–G¯Ï1Wì…˳DZ»ArØØbi“[)<¥+\ÍŒ÷OÈñûmèT_ÕÊ3ST¤iR­rx¤EÊ@+)IgÄ€—9¹×Öµ)Ðñ¿G´»˜ÍßT|˜dߊŽ*'ɪ BéÝ!ç¬,ïð�Ñ㩬žø‡e?£ð‚gú׌ÒHe3ÝPÕ²¥ŒÑ{™áL ÃIûŒ—Ê®iìñK9§¯À×Pö2M³íýpÎé‘PxMù`@r–vø‹j99aÄ7#®ç‘e¬xÑ­×)Ûð¯`?*—÷x€q÷íÛ”ŸËiÒP|TF¯ûŠkmÏ.9¥¥Ä²g$Kc D¦Êu¾/ LÞj#Cã ÃVãÿ†&'E„ã€áæb{Ëžãr«?/z66ÃÓè¾>s±éZÜ‚°†Òf+Q&ÌtÞ«,ž)ƒ6°�¥3¥Ð3¿‹´‹yÞó-Ê¢"6`ÀÆ¥mfCé>]  ç§·ˆIþB�Å/êE} ;+Q¿¸ M@“F u%Gdv|oÊ5þ€–}À�á`è;žjÓê(o¥ÊŒR“âP>ˆ#°6IäjC‚Úk" /Âý—Ög¸D‰ö–^5çå’;`Œpt°<]½~�§18Å õ ©L½¤É|~ufÙïÝ zoÜð&šo§JS3ø�O žsV©@a?¬¶•± ¦eWý0‹î�mÀwm cØ^Ð@·ÓßÃSu;~òt(DÑ'ÓœËÃÿõ¯ðH*ý]´æ²«“þá(ÜXË@yÜ6Xªð¤—ÄZvJ×ëà–Z™Zå¼¢]�^²ðn_ÃùkWYiö›#�mŽPèâ¡f×Ö݆zï`½à¢Šä¥¥éZ.IŸæ‡-6žDê[îžoúO!Ëå¿ê±³`&óÙhLT¼æî*Ê"U€¼*º„¡ŽFWLèIü;5„ì‚õ&pF¸x=Σ¦÷ªØ|\ЈM}«Ìñ´R*°`²Úﱨ¦él_“Ù}д™ÿC:e(ÈÒÆ®+y±šBmWY<ƒt]q-T°²g+rÅ”¡—ÄL“1á–¼–Y©ô¬Â•pny9�%°�mR5Ñ„½ é74<6ý)Dû‡Ìf²{Lm­Ín•¥j ²u]¼4Ãçv¢Ê¬ÁØ©­*¯ÓôÆÇPØãt<”,A†ËµJ HM ØýI$Ú]ä›�í±ÒsöÔ+…uálZñ'�žët�süöîÏð^)õ^"ÃÓ.bÞœGsƒqHªpð?©vÿ´Ë­ZR™ÅsЧ)¯UíâãÆ#h}W]{WFƒ�¾gj{´Âø¦&ksIÓ¼À�¶¼\.®†ã¨rU'7¢â«µV&»ßÂR ‡Ý¹$ìjT4ŽóﻺߤL<9ë/¥Ô¥¤vxTSY¥jzæ 8~ÏðÒ9� öR¤öÑzB0&\ÜÓiŽæ…©‘¦æJ³Ÿ‡îÊû½te›qñ¼);™œpÜ¿63€=Ã/j°²Ò‡�ÜV´™º§º_ý¾÷) r ™ÓX™=>F@B”u®ÄE0UCÀþ£¶޶«¦.Iš�8Ðë5P÷`ÕËÀ?d�äˆã5¼6n±v÷Þ‹ Ä).½Kâ†a§ZœÿFÙkúzÖ_®w/7¬@¹1÷±2̃kbfÙ»(I©?x2µ™ê;Sóç°è²—öØmY˜Au„‹&}IéUê`µ[êéÒ'ºÏ…=0þK ^ó–ê„z–³på�ÈjF¤D""’ÙÙ8;š —ª³ãZ{ØÞhX9ÕO¼ù”|hQ†ÀVré×\æ ¸â5Ï¡û�Kù`v‰DÙ�7[Ä�=¶*’ŽýEhž Õ4½«¹oÿ§1ßÏ~Æ»þÞfìSî‘,ü¤z íX¤9×­�áä�U5CW‹š¦?v–öδ©Áª�EÄî‹(?⥎ãqÎéÔµ3.®&�#ÔuÊT3Øî…äy£¨Ÿ›Êaá‹-²%â¡:ðWÕÝ0\èsJ `ù¸LÆå½“ƒ­³d=¡§{üÅM'~ �ИøxÿPqØ‹I• DŸV°Ìß`0ï�¦ÝUe«pk67èúŒ“—åg�ÓRÁ?éê·GHhë¦ã™Ô÷ìÌ;¿uaä_¿­]èÀ΢Ü×¹¥‡ÑSNb›üÈãa�ÈÜ{6ŽQ/­îï»8}óf˜/4ÃF«!®lÆçðÙH·RfàL)0‹�Ç 4ôFx­Èífk´=ÆY½gŒòàgÙóš-p“‡mÏCžÒ¢�5íøROÝ[¥ZÐ!ìäì ™ùÔ[›${Qä�Šl{ïÄøp &¿ƒöZ=˜A”qŽÐ¯}~­óÕFÌ7%žËV*šà¡HÐp}º�VŽðØ!RÕ?ÌlŠ`u8Ê 0JÎ’9[r4UbVl—)RêLKiÙôq¿�måbů?”_[µâÝ]K("T·g‹¥ >l·EQ­®e¯õ•Y²N$a¼D™ÙiÝÛ¼–ôÙ†³œšÎÉuÆU•}WJYûݺõ‘ Ä ­ƒ–YÖmÛidûžîd´7#Æà·|cMÑFëYmÈ&›)~ìÀ `Ö©PÿDߣ ûMBÀv¥¹+â[Eîâßsjb¦t,±Ú²£ò'vЙʘÓ…Šðx¹Ó§•íòb”<üƒö—ã]UWü…Öø[¯÷¾WÌ¿Õõ�g'*c‰™J6’É¡2•n`c2póf¸‚é}'vÖñt[Õ>†þxÒ›m¿‚  «‰ªÂYˆžÈgxßž�3Fü|I»–<115 ®!‚@+˜(K`Ř'ùšò-Áš¸»öW'›�?ЭPüüʪŽ¡žåÚi_x¡_HäÇÂ)±¥Î�«dbbâ]Klðñ“e`û,­…œÚ29_nc…ñÎê%q9á� !�Åù:ýKRžyáaJÛi~ÓeŠa¥5Ó_^–@y\Ã÷>ž£%ëo‘ˆääN®å,!œÞÐÔ?²¯®ù©^êôJJï ƒªÝÂÔ¥8�ü‘>ËE ×"ÏHÛ²®#5Qkoæ¤ññÄ–Øö+=T4¡L}AßTÉm4RœlÌÞg¤]´«¡\@°â¿< ãs I�ÍK=£&—倕e™~‘ÞÕÓÞ(öDum4Ãk'ÛÛs¤@ÜbÑ£†$AÌÿ·x:wžš Ä'Z4CÀÂeDÝJ£8Uæp™½…~íöû˜ò¡>l˜2FJd_³4\ζ‡_8´êOC¬ûc³éE¢‡]œw˜JÇò@uY |H‡?&Äg_XÕ£vcCû0Mÿ4,95 Ô ,:)cpÄõ¢2ˆ=€¨´†`5 ¶‹ÿ:_:óÊäT<¯£Ã÷»—S6ÈÓMƒ=±¦\ª¹þÙɉ:/ÞÊG‘õ—RÜÅ“;þ2J€â"|nƒ½$.‘QiÖ,|f—s=ŒB•ë‡Ö,(ãjxFl0&0ã�ªsêÁT£*£¾-Åh*5E ‡”Ãßâ™×PÏgův×Y®F‹–ÙŒ¬Þ¦sg¶y¬•ŸD “ÁdžD5]A+ིA‘,sI°zd&Eí¬'<Í Ðð)µÝí¿±ÇYvÙXèH ¢gË<°ñ1ìSÅ “ÙçæÕluüÌP;‡=ÙRo•âÃwNt¡Ö1Z‰õ£Kt»Îe×û%ÙsG†5ì“9Ko¢Ü²™4W…1àái_Èsz†¶Yoéƒzá³ §–Y GʱÙ7�� ³`Úð¨”ÿŸPÂD¹|F09›©èÉ6_ ³£e€&Ho¡æ$À}jjöí¨ß³Krº…Ô¾‚eî ½ŒÛ7G ¥:/–++Ç #ц×ÁÕ§eìA³×*ßÛ@crð–Æï ¦E˜&èÑGÙ¾ÅðQŽ,¡í¬´Èö’µ³x DSïðÛ^dœ³'n»êù34KY¶¦hóñÈT¼ZúJäkj$!l�D\þè9ÙccJ;ÞÐýb>�~l3ÌT�bwÅä—ˆ�Zq®cÿ�˜`'• û·¶v}Õ»-‰Róþ€),g•HÌsÅ7ø "�á´!ͯ³˜âµ4¨å$ æ^ š1xóã3¤;µQÕ8ôâç€vPÑ“#ⵘ*uF«'¬ebrv¼Æah›ãÔ½ öÅó�àqi6´¢È_�4ã/çd&�6ßVb’¹•(Ÿ±_È Ó�È®¼cY‡)Pð‡i‹g]^¢÷h`8ƒ�ß”Ê�³l²¢&KÏê'Ì ž¢#[<Æ Û©Ð‚C(zB³ŠUÈ¡+«uzm%Ã�Þ�‡Ä'‹jËû#ò%Éhm?»«¬¤Í�µ.ü&2ŠwÓ©&-6Ì*+Íj¦³�’9”e±5r±l³ ih€ê[;E „:‡jéСÐ�t«mjîn¶eˆáI�®n¯ƒð&& Ö*Í$Ë“Í-,¡4¢AEð±�±ô·ŸGÌ@`U\}®¢ÓMB}wnÆ ˆ½‚f¤´‘$¼ÚE¶ Œœèr•‚û¼c�—ÓØÓxÀ¾­P@„Ì;¯²(ØÌ½Æ<t\ÝÔ½åZÎpžýÏ\í€<Úý$'¯Ì%¦Mù&|OßD(6Ò`gUogy×½m`v®ðwƒ¦ÏUðW Š­�&ߤù¯Ûu¯ºóXpú&é|re¬fUõ:Ü~­¦xrÌ]ýÀ�⣆‘†8îá.$;³†Õpo3¶¯ªˆÈ} Jïmî$ú–ï;V Â�z[ ç9†3å’”¦G¨½íTðñ{ywX_62Ô;�e´#l1&/ÖØÄk³í${ðÇ¡e¦Ij0™»¼@ÞÇÆl{ºÒ~ÌÊTN™H]Y¦ÇU¾,G†é >Ü]…GL£Ýçåb]œ�¾8@_㙀cå¹VQã©B.0N¬÷nRy•g(Ø—É„WO€äš}‚7bW$Ÿô¼ç!”çG³Ê#“íßí=ëÀkÝ|pñÕ‰=êÃEÀñ'¯ŠÝ‡ÙæÖúHæ¼�-î›­Æ“1�°_A¸�3kŸzQ þ�˜]·¼ÈúO¸$RÎBB„(1pƦ=Úh‰ M«Öáƒ(¢~BUoxÒyÜ_&zdô‡|ÿgDPxQ² PÏw|lƒ‰8jálœlˆ´ã­u¶KSÀåäØÀå,~Ø›ð7J© �-;¹i�ú~‚H*'eëŸÒ7þN»ðkMékurrL ÇøÈ�ÄTeÑj2—ë…Ì+É¢  æ«­ºKqZ�èV31¬ Ê"´äß'o8Ô�¡?lÇr4ä{~€¢¼âe›¯®SgΕû(ŒˆØ»Y ¡¢Õª3u¹ê�W_@ã�rÑ÷Ïð©p[sÞ[Olù 03ÃàCŠ2ò‡ ñBÉáV:iQ N¾È¨Š=ÈÚuC¯§q¦ÀCi%ÈPŽ]@p°lRý«ÊÙê} ®°æë«ëÒ -®26‹ÈŸçªmøuØ |ªpýúŘ|xj¾‘™7Gâ¶�þ Jz;m�ˆµü8ÐÈ!å-;ÁyPe‰-ç+íîù‰L+B”�ì…ƒa<•…˜¾Ý¨4€›Ì—´��ÊHWI Ô±¨¶•ê`êÀ#Ê€Ú$ªÙ¬œ€·)ØL-Â}ч±é-I»]op/ÙõhOOtÜ$Êü?ŠGÔa(– -2’%ÍD™ßÙ|�¯ ýxðøL/°®©¾ý8Ó•G]l~ÎZ;´7{²RR…tÍS¿è }ƒÃT¡»cÖ¢Þºú’·*ý‹}Í1Mâ\žyCR,ý/]ò†ý[ ½zÞóâh÷“j»ÐÙÔðľnô±A6|�€4�Ø�±f‡=¯sõ�ž¤�úÕ%‹®ið-plå5ã,´úÛ[ú˜u’n‰¬k)MîÄž_ŸèƒIgPÓDgå™~žOÊi�€³ÐXJ‹b#ñÌ2N½¦úFl[pÉù9y0ðœ ΃“A9æìúÖ©ÿ|þÙð•@rÈŸÏY¸’†”¶,‘·'‹ÄôÆC˜f,f`O‹E~dXäëûFöæOoü›$)ëß³tA0‡ÙP°Ë{nGy/L¡ÀÎ!Ò•x§8lx>Ù›}Nä2Æ^0mñÎÃý9J›‘߃Šk,Zîj Â\ñ"ˆÏƒ¢yŠTj4!„Æ:Ú‚¬(téô ÒGb/_t6›#‡xUÍ G%«j­Ûã†Éí®¼ªFî鼯œòY#i ñ Bù(¤gšs^Qáwñ„wÖ½œ*®ÔBÄ£ˆ1Æ '0º D}Žû&�µ€âÿQÒ>Ò�d Îè_¬‡É„ফ¿Y3GYäë%JJdêe-T¹uÕçŒy�wØe¾Ü¼àIÞsÅOP/¾ÂæÑR®Ï®T0wÛÓüÊtf² lÐÜH× MÝ 8‡¸Pï‚¡#èíQÐ�¦ú2É…ô_Àú§å×ë‘“æpÄiÓß™Ùåˆx7u¶ÜÄ$»½]Ê8T°«{7}NûbáÌŠ[Écè²#"D_m3e;5ѨF¶/µX®!<7Ùv쑈Œ}êÐü­€Vþýi/Ù'*{¢ðü ¤Õ_uyöšyhê–²}n÷*ÆÃªú‚šÀ¬‡¯(òZ ÒÿÁzáð å‘7 ç>®TÅ�8²ìäH×ÔÐ�²f‘Ñ­¶ÄN¤ŸŒ iû@ÍÊe‘°äíþ²¯ŠŽ¡ŠUéÚàÏlÂCû =jp�XØ4G)H#,ºÍ9lÙGÑ ¬PÂìn¥Ñ�úà'¯”¡/�áöäÎÀÊùAöàg[¨®aúk÷ØþÕ½J)}¸Ì¯F¾M °$ÅágY½RžÇÜ<é11Æ–Û$]©M™ÎöFÃ*6 Š÷�*ÈÛߎ¿ò:Bw^“1¸I—CtmA^ñ{}Y*ž@«�7PB0Z¤{G¥Râh 'öÎ.òØ‹Yµkƒ¶=VÀœs¤l¡¾$ÎD¦ÐÝP¯Co²�³åGãŸ&s”™Éñã�É�?VVÔ>ô„9»0$µ;`3g_$›7Iº´lPÁ ì�B[â|dž „;!‚pµ-Þ ñîk�C¬CVvåþÙ±lº×ÏìÊl ¶AžÃV«Ç†&Îøé�›Ÿ%7*\,¾Å=iËzF?Ÿt¯=Gðœj{‚æBkÃŸÍ ƒg¶‰È`î�y Šé"dL uêš³»/<8‡•Üûé¥;'c #FKÀz Eum6,S›î8DÞ{÷j1cK‡à0žàXèç^ð/µÙªµ•4’»½:�ÿ×›ª@ãëÓ®B„EívjÞ1 ÔEV»˜Y‚³†'{Á�µÈKí oííä‹ÛîUb´én0íaÄáS]Öã¡ÜÑpÏt-E&">B•ïö¶pA^b8¯ŒökÚêqIX”ÌóI¹ûå9×d̾„ªYk^åI0†QõJãq–Ü÷cÒÀ±b«¹ã|¼5ÑcÖ)ÿZ¸Û‰r£ÿüc?y…e=LñšwÂñ3¥5Cf£fðY.A°îœ£�Ew2á¨l¡5ƒþ(ãwê²vÎîÓ4Y·¨·¥M¦Î“�Þ‰S»fn›.ȇmùÕ@0ƒm½îñØKú·¯j< ¹ è‘ZÜðŽyï!ü9X"TèL2âñC^¸´˜^lÊÿ*j9ó#ì_æ”0!SFl©Å¿ý¬kx �ºd/dÈŠ¸õ�]-‚Çc¥ ‰Ú\ñ4Á8G'‰f†]JŒ¦Î6N&5’“¶mËëŒÎÐyGÆè›ný~Ø÷À3D�eHÛ¶P äj¹ÁDð*'hö­Úsy É&[üÝ;—>�.®óÆCºYªúaŒÎ3k”^Mä4L?Õéò ýè�Ütæ“\žÅþnœ±ò9¦O–›ÒÕH#Çû¼=ØêûÐ5Øšö¿´“7®’½ìù›EBT­8¶p�wkS" h„°vÅâÑùW{j!«üñ�âÀP«b‘f»^OÍân�:L’#m·ƒ€½€°&ÜÞÎjŠiÜß]¯ÊSƽo£äÅ›—Ah­ØggÂÙ‚5XOÔa�¤‘0ØÁ•Fv"0*[þPóRXmþä›bŠªè]8úúïx”(ª= ;ßIßÂÞÒuÊÆ4A%&i•€ÿ!l6r¥^ý@k_?G®K4jg4^#€š%ù¢eÃý~%Ÿ0Íÿä0Ñ1(™»)ÛXãýÇ3n%‘4‚2¡s>ˆ×_¦`¥ÐXpvÇŽ–‘¢ºéÇ›í: †Ç!˜Ûª¶"¤¸Í]I•[î뉗ø×€‰Jñgú¿ø:ÿ“�t¥èÄ€¤Ü#&÷¿ãËZÚý·|žÿéüÏ[ª%ø‘£��ÒyÝ<²,¡ñ¿Ö¶øŸ904Ë´—Ké2“�ÓOƒÿ»µ…�L ]ì�þG45!0ò$p0tb2¶5±±´3%p3ur¶´·#` cûÏðÿ¬èè]L�]èÜìm˜©™™èþÛÎþof0üGl,,ÿ=þGÿ¿‘�‰��‰€‘‰™™�…��™‘€�‘‰�… €€áÿæ}ü_ÊÕÙÅЉ€ÀÉÞÞåÿ_ÞÿéûÿKõ_ëu_Ôe­FUUŠ™†Z0Z‘åÿT¯øÿñ´Š�*Eª¸¿Ä÷Z+ú°ø�d’GE úä 5´,<©Ö)—ˆ·B9û ;s‹ � %E@‹5ƒÿW>Ô{ünR³ç*ù± ÔêôVëÿ‰OðOÖ.ST6˜ˆhC™²¡€»ËLJuU¯‰Õ4d‡RFe�B�û•nfÊ‹!ä‘Z"yuÇ_¸;™Öêÿâ‡üO>Ó‘-¨ÙRU&.ø‹ØÿŽ/fic*bêlü_{ƒ°vhÚH“· cCÓrY1mGv;°'©5Þјðj* æ4àçü÷ª31t1ü¿8a[c§”žãýŠ”T‚ÝÿÓ? ü�§±ß‡?±oQ2¼›¦®Êû©]‚îŒïÇ#�#a,*öeô˜&ªWØL¦„3.JF¦.´\ Õ¿µã¿ò©‰ënLV×ݤÄeõçþO|¢ÿxÀ¢øñ (£kX Zsâ,$„Hµe3Ž�Õìƒy¡[‰ØÁº8¼1Å'ÛBvGÙ½.´ãœµÕ·> þ¿=;óð{c× ¡C¦hÌG i:¼5þw|I1eáÿ–ÿ_Ï@}E�îoúí�ÆEK%ql"S˜(‘(uÓÌ^Å4.´Æ:'c�€Á<ÝDÝcê�X´Ãw�éœÄ¥Xd ,�Vë”é²6<«„4 #�/¿ýjH§ÿ™°åwƒ›8pìñÈ­ßÖ9ÀSͨ͘“Ñ$PÍ©kD§8P¤z� …Pw'¢äVd8c™=¹ÐÖ¥åŽC¼û‰LfEŒZP“„™)ç; p¸ÝÅJÊ Õº'g½'Û X@ôŽD[ÄÓ·mO$˜½#ÌŽ$ˆk<6œÍRâ q^£mcAÌuª:ýrç`s_»pÚ u[@K¡J¿j)¤Ë›z�‘Ô¥è�0ß¿UTuj ’Ú½%a¶(±ˆu#žÑÛæH¿äQ5ÑkíZHǶïØ7UÂw^Ê-4ln�P‰ô(ª‚˜*VHÍ/ãPé”ùB,£å7�$ãŠd¬Ä±?¯© ?;s&ÏËo8$@“áØŠö“rrÓË{�Y¾˜›[2HšUJ¯óè¥ÌKŽÐK‚ÎÚìùKì>ýþ.qo�÷è#½0Û§~ÊõÛzIkÔUý°VZ²œ-¸q)ßìè0ÐuÈëâ¾G¦|d‘’n”_…r(DË饮u{s#oé*£¼?J6¼VuÓ¶QÏ8c}–5õY®îoùë™Ý>ÝæˆfÂXB`Ž4œoäÌ�ÞvmÖ§Ñ7o»êßYS1à”¥®ýœÈ´G·Š�kö"ÂY‚ƾ*RN�ú/Ì-�¥ñÉK1±Tm:[RttËA'.ÜœkËÁ-PPfÀ• ÁAX�s6]¯¤í9Cî~k(°Jü“œrE†T-ãna‡Ayé�è½ZŒè;Ï¡&ß±~ÉBŒHÔý9L VDÞn%x²7]>2€ÏpŠÏÌÔN/Çä®?ýHÏx¿õÑ1l”¥�¶[#¾†Î^Ë­Î #§ø¶be îÇ_!vPçsNî%±Nõe[¥÷QlâåÓAÂÁ<®;�ʧf|$«Û„ÈD]6.Áì3-XZAôPÀu㋎½Ø§PµO’ô�¼S"KǦUr�á"+‘ÒîMNª'yJ«í:´[ÌÕ÷`®Îö ¬ êÇRw|œ—ß9ÍÔ‡áèQÇ�IK¨l[døˆ‹�+…k,;rãAÆTBd.zx÷¹Zof7kõ\˜”HéŽÓ dñoN|”‘£iiâ^¬nÜìДb+áZ ü‰ýç”ä¦pEF´\š"Žzº!%©&Ë iÿÆÑ?T¹Mâ›*ƒÇqr�Í(¨\;ð î�÷@Wá>Y:ðjÅw¦8ö5¾¯æóZý¬i yäЮȕú ‰3/ ñ+«Ê/(ªÕÆú¸€6Vª*¡?|nadö©7!LljU¶ãK®©íst@ˆkÔ.ñÀÚŽÚ í÷vKýsv0óšíæz±'ÿò0òˆhÄ!3ÏOáÜ·ÈÂç5�o®cB½¾êSØrШ8%ÍSÑ6ܵ–üŽúŸ¶ÙÄyz.U�é Tˆã¾»'�VrÐé!¯ÞtÆ�T‚}µFL|ïÆ÷¨_ª·uHiÀÿLÜ¡–ùc ö«õÁõï ûêþô™Ý×*ÏW¬ÉÈ¢µ}ªœšêáëf­¸\Œs™ôèdãçÿWÎlsÈì=aZ¾÷?ù7è¶uTï[ÍÑq%ùq7á&ÝëèûtGà*× ÷Új°7’�“,³·CIêÕx #léWíIH[þÆÕ6-fª8Íææ©Ÿ'Zóü†¬ƒ‘]äBØÁ@÷ÌO§ÉEƒ^9`—%š³ïc¼‡¹<²êknÆR¯ð›£{‘ˆ·µàþz#É…êÖ�8<áØÄU/SÝåã¶PÊtŒ°vðUi+¤4%!qàþ~õÙØïÁ»ñ"ÇÚ“áãý­Ykø÷߸A€�‚>"¡ÀæT‰\ÊÍüžåQz•F@ª½k¯T2?÷Mée¢YA¹Ó‘>ʋތÔÕòœg"ÛÏÙª›*nMdW…Ï´ßéCÎ>Õ„ÈØ ¼Ù"mÛ¹@ƒð¶-O*‹òÞ$lß+XÁ�Ö¼¨^°sw`ú !'P’³öŠðô-¾ÿѾhKB‚_²B;ä[qB›g¨v¾Ä»”‹K¬¡õÍý@›‰D4Cæ/J»kêþ ‡|CÉ?á*Р¥Ò†)‘¢îéÖÍ[‘(g‚e{,LÒ�‚ ˜^cŒP¤ÿNé�OV+y‡‚¨§lŠ‹VSh©£»Ôõjö8ÆñžŸìÓY’z!´˜&Ñ×Áz÷biš:–™ \ß÷3É/ϲ²B(½É|XEâlº_èß0ˆIŠz/wÏœB´¶#àµ9 á1´�Ày‹ö>4wè¹J‹I±ï”´ ÑNÑC…°†Í1?sƒIµ³ÁàyýŒ.;iù{ü»\1sv�˜µ¿›Ï³þ÷A—±€u�m㕬Àr:…›_ô¶NBœŸf"0@•»çTÂ¥þànŒ(Ë0¦“äGiKfjÎùš3©Å´ëžMïïûì$Ÿ®6»${d-É®¹nR‚ÓLÚ�-ÙUæ1ñŠÒŸCW¯(ÔK¨©ivä´K?@gif0&u…F7Ëz»ÝçVÿ ë•óZ¿˜»áÞ^Ó·%Ž;×Û!¿¯ ñð‰Ê]ôW�[Þeyé¥üÑë» B²S�ÉBÄêBf�‰›"oJãXÌ.$†HßKàQ”lU S QŒ$_ÄÁ$�\‚gZÚ±,ô¯âõ–m^U’‚)ë3"ï¸)%{xÑÈÅ´È(0C¬êÿ¥7‡ œÕß´ŒÑxÝg˜×�Ã'·bcä|Y ” È«BÀm*®²MåŒ~~½Û²F[*JØä€TÕ)L±âùQdã¸ÄWÊߟÚà6 7%(l{ˆ+²¬­¼/\Y¾A6 ù—,$~hi G9€Ÿ7!Z†vepAḛ́‹¿ç7Ĭ›—AÒ�IuÞúû>zH¤×|+©Þ+!Ï«3·ÓRχÛj*ó¦y˜àÉ,^˜ÑšZròÙ ”m¦€µõg¢4+‘J¢C´Õˆ’¨f}a›ä&D4 §¡èŸ·“ƯЬš÷ä£è'ð'PÊ…Äÿä}›º’“J¹œnÐ0OÎ8‰tu¸ÝçæÌ‚à LŒûß"©røZ²Ì"¶â@eÆÙ;pc4­t³¦Éê1Æm¾tÕŸïÏNÂ+öÁ§»ðõ‰Â’�£ÞÛ{Ù­vu{±lØGŸdêÑÓåLú@ú‘.·åP@Œð½ÁØažøVz9—„Eû í‚öWÈýjïìf«Ê‹¤ß„ŒV„¨ëÓC{Cû’ R1fNæ-° Œ�w’‰ë[ö‡“hY¥ÆoxgVk«jnfâ¢*¡àrváÛ’Êno+ISÂÿÜNEã¥rz‹V÷fx…™g«Ì¢ ZSÎ’éD¢DÊwƒ„Ç; ‘»f)ß�U‡ìLÓñ¶yóþ”Físý©�z?Ðs6�Øo‘åbŽöœ'=^çFG¥Rá‡úüº2�÷ÙAAóùFLÜÀ&³¾ tEÛ6‚ÍÇy·5Ð\»·”ÜjZ¤ÂyXÝyÆ2m)ó»ëàTý¡ú.§ÎÂv‚|Îôáê—€Â\À+7š·Œúáù‹«7S=cs×#� ¤z‚vâºðêêé­¬”• ö(Y ·3(Hô‰&^\(žz®¸è\Æ�¬�¼®8v:N í…±Ë�É€áâø/u}e{°¤¹Ëaß]Ó\·#Üèæ3WDÊ9¢ƒ½ ; "ì‚�dèõ bÓîÇž��}hÿè¯�¡&HÒ©5m)ŠKNa?KHãxZpœMôòjtãJ Ö{­»ÎèÓ/c¹æ ‹3]´dù÷µœá•,�p¨Y·nÐ÷<¥usÌ_vŸñ䆃•PUưèÀVœ±óD–­þº}ŒØ¡û°¬žO.ˆÕ%8J º—"Yák¢üPWÍABÈq³T¤U#aµ`SÄá6%~=î~º¹?¼&PÖjeÐNÙ¤u[äçùü³Ó5|Êd�+x‡çn”Øþ‘,’OîËù}ÐN‹iØh5u¶Ê®Ÿ¬eï̇�Ôz,錡é©-wDU»«8�.¿iÊV:{ŠîVÕ¥Á/-�Ò•_s¸‰eŸ”ÊÍäVÉœ]Ñ\öN›ª¹å¬†)]:î¿„9§‹¯¼oh$MÚ=ehóžìXwÛ§,’Ô Å3« 2R›Ùˆ¨,~�öîx•—(òÊ î—h+4=û¶4]7Ýu.Èuþë¨;ô lìÑGõ7iã³ é!*ò“´uó\¦vø[ “­¢~¯2ËH¾·—,ëVJ§àÀ†óMv‰"2ÛdêCÍã1 ØmÔX/5o¼­Ô/ä°"@aÑѵ1„¢x3C�Ð*‚ ew¿�#ªÎÉê‘&ˆ¾;5vÂgÜã�Í(ÊehÕ]˜µo¼™³ŠŒN*i‹¹À2Lšòû!HJ?¶=úÍjïìÔ‰“ ï·©9û%4*èYj%Þî«åwT¨¦6†BJ´œ< 0OT"Ø-ÏÝþø`CPÝ¡Ûü£(ÀÒø„¸­0p¢ã]¨Ÿ.V´óú|̸“R�:Û=×¾ì»+Ö’c‘Ѿ7Z‰~u¤#�¤;6¼;@á§=°MUÔñ�*Y¦"ݾ;±ûÛxÑ×IµsnU41kkôö+îFzNŠ)®4/äƒÁ‹„Ù=Âåt§o‡>Ùt�8 _ž¥T4Eô¿–jŸoµ÷«9™¹Û��+)¢§{ù×lËž;Ç.n Ävq{y¬šŒ®ºŠ(‡{Õ©­§'^Zš(bVЃAÉ1ä÷˲VRS‹„ÞÏÈ¡Å5ÓÕ*µêÑ›¥ð8P@ì|­Œ,}ƒƒÊRŸ³îÓé¯`LDùúUžÊÎß–šçœ2ãWCÕ_�¾GÊžœÐ3ßÏ¥/«p~þt£úß\wÃÖOø„cl4#Êk9ó"ì@Y�·â»:œ&�õ‚Qšx«iI¤D=V ¾j`ÔEòF^»bbNxE˜k'•Û=¿Žn'!á� Q7)ÛÐΠZ‘ÝEü7…Ÿš±;u7+{ÏäS×­MÕ}àt?+÷&™V i$>QÍ,Ì�˜±Ü'^.&þC2’@+jÇ`gT³Øù)BÅ+ï�¾Y� ÇTËÛ¬ïµì¦ ºÝX.7¢fÅ mÇ뢳ÆSå.¡èåP„!€ùÒ¸ê´öJûsÐw‡—O—�1 _IIÒŠ¦DåÓ }�æÔÏ€äÜAÆñÓ&B^]ê½Ê÷ôyÛøœ©’«zýY|‡,Å*Ÿ7Ü©» Ú&Hîç¹ZÉ-ÇJ2iC„†{À†ƒmª€v¾�_å†ôüš˜´bžÚFmm°fB�F†ýïJtÌpðÞ׎2´J52,²‚(‘6>åGWåí!ÁDÏ�å}i±ELG±!ñP²5²™i2‹à÷°| 0-=Ý%GÅ'û[8Ï;/®ËT"ç…9ç>ùœî×Ã@ñ~…Ñ¡d)uqe¨å’•Øé~ß —0.Ä«è’ -2$Ê›ƒk ¦ ÑêU‹¶“hkÐ:ŸÙ²Üºt�‹Œ�¶äåŒ?IâMS"ç [ZBFþ�Þ°]jÙý�Ê<£\æ�áZ8�¨5xG¡ºB,?jÐâ;ÕE�!;+mÑœrJ.­bkŽ¥Ÿœ€g @x)÷czH+ÏŸö^KøËòÔ:N!KVÏW¯ùA=ðÚµc1àŒ ;€ô�6m|Ûð¤Ü_#Ά�?Û‘š^Ä.¸jr¾?)òG¬t-ƒ!á´å0ÝÓÐd9Ú þew'í€w+Ùs F �Ô œ–HvÄDLœ×Þ“©ñ†¸áJ 棛��݆] ²·Wcġ٧ß� �齑YaÄi+c§‚$Á…Ù‚ÅæWiåŽpÛÃ�ÊIx¿fû#°“’©6$BêæªRú`Íü¹ GÒìs‚„œ|Äm, Ð�ÂÞ…•M~½¶ª.ðOt¸¹øö=C›îK5v1ª*±^al7…¢\JeNãé€ý� ôì?˜[)=•‚’ƒ‡Šâ€ñåÛe–wñžpp(…Y¤n2à>SDð%/Ù€@ắ(ý‹æ6<;…âÑfC�x é䋸6¬^ƒ£ªäüA×#>÷¤wÐ[G€�ÍêÏOa�½ôJ |6ŒäJ8º¯•BÉ™Ë.RFÏ¥t,$cåL¹›ø°í3!EmÞ“†]Gåè婉Þê÷¾ÔÔÜ܇Jì6pqÔ¦˜‰�‹m½—Ñé�þmõ÷hõ 9�„†cI^Æ`n¿D®nO†4ü*ª&\vÌ]ÁnÏxœØ)?›œ3'‚b?µ…ÅOžd´}=õÙ›�ÑqÌJûÒ]ÏŒ)gø‚3‘h]–ܯ›÷¾3ÎŒG«¾CnLFÔ»\~í0úª�=çÖè-ºAóìþ®Q·n ú€·ay =oåÇ;IÛž`.á_¡X5Ž­^dæõñµLŒEæïˆ³ÊUv‡Aë2%zòQ`C´Èéªz¬à‹· íÝÄŒX $AJÆ'‹ýBmW±LOÙÕ¤Ðô£9øMþ1=‡W ÈWJ„_Öánüå>åÙžüç26Yáñ+K* Õ†�«àkØÆ`�¹h€ló\¡L¸n“:o€ùVcÍn¶_¬Ü·1¨–}œ‹’í�¼k_íO°òÔËï‘™ ³B‘Ýÿ¢Ö]Ì‹$ˆñ®–¥bOZ”¬{ÔÓIÊ”§ ‰Æ[¶K–¦ÜâüÅ™ÇÆkÔ–Ù^!­ýT£â¦®j’¹VØ{‡CÕónŒË1‡§ÇPiÖ¡èŸæÂ�HTw@ ¢SLDaäßò¹é qû#¥SÞ–Ó²ò)‡ô@»JJÅVs,üŠ9Œ»’ä¤9Q2-B+ôiÁ@ôž.Ž*óòo"Ëáì™Dð×!¶µ¿dG�;söÅ·JB&ã¯Þæ \Û»$;\²µq¬GC,@iaýR¯?×.ã°€‡E¿n$dÞ¾0Ê`3øƒZö1Oƒ`Z1#ĉ1:T‹º.T¹¨g�½'½ô¦ÜÉNÀÜ@@Ž!ý €=ÂxT•Ž»BfM^¬d/$�ØS+¿|]£j(jà'(_ô|TTw- GC ñ’øóôAƹŒtU¨ ÞÅçãû`ŸPõáD¹F â#óìóÞæ._nxzJÐ}sØÂ_Ö™ÔlÊá¶ë ­ÌEt9¶`Ù… Uk £®‡ðy¦êùÐe˜N_QËÃÕ¸§3.ÕÆc="ß‚+@íýOû¯Ÿ´ýkXOÿvò¡ñFs ‘ÝVâDÍ å%”{vú–‚¬óž2€#ãb †46—Ö#„øåÔjÆôú,Š  £ç¦sÄ¿ø7%D^n~Ù†ÌÓXmbr�á¢ùj³núÙ&Â+7š”Ð(wʆ «»$ˆþgèæªS±µ— •룞òÑ+©Iæ.{#ù�ÅhÄ�õ/ju›BMì�Ô:?:Ü/¬¢¨öˆð*¸-!âÔ3§ÞÄ#W“D%j(–(~–ÅUª# �‰ŽÌ ß4Oªš·ÅÔ—N�G»õÎða )¨³Yë°M—’Æ×«_Àa ^8ç<Ó)F(¨�Ñ‘ÊfQT'Á9"‚aH ˆ<·¨µk)sâEÇõ½üìY€]ƒ}÷à`Kî¡|öão:SQTlYë‡)›¼¤O‚�&c7ÓLžäÁÖmŸZ^•«Ö™ÎÁO¢a¿}ì2®M,‹�J-©6u·Ÿ:;°už‡ ~ÍæóSÕTÍ9Ê�m®d«“>ú£›‰ãŠ©k¡Âü×_…Õó›ÆR|Z”‰«z0  þ`†5™`DR<µÛàŽ ç2"j%§‹ZOÕ²Ÿ‚)¤¾¶þ+ÇAŠR úÓJÒŠÕ˜¡Æ¹æÐó»æœA$‹)5$çáçQ÷\jÚ:R‡Ø|Š­PÈdÌx.ù Úò ÜK� ï–x„ËŽlâ¦ÀüM•bn�( *ï|Z{.©j�.c"Êý²™l‘AƒÛ Šz“;küÇÃ�á•!È/÷d¾VÇp´Œ"I¡�ÛZòB†¾Ä½�sñHw!@ª�GÎèú¼n|°sPá>¤�ܦ)ómaÇ6a®Ä1¬ºSm(šË—õ1†Dú†­8ì9ÆHÚ'KxiÚðĚו8W�•³p�¿ˆj/ý”æ.2û½Ô0~¾å ¾û9QÔGJÅW¬gÝ©¾™Ð£·5þÖdÄ[}í"+oätÈp1µÐ�piðª¹3‚f"•h6·�éÀ†CíIÎ%:z÷ó<”Qà1G�rÓöýÕßíªÉ›‘Ÿ¤ËÚ÷F#¥·!CˆnäØxh q=ë$Tgº… ©�§ƒ%F¹Ñž¦-gâ DSÚ#Ì,¼t>„±9šõŠ#0º@:KÞð |ðì«¶SÙDx!¡ŸÀÂpôHz°)P64”ðÙ øŒ1Êçr¼Ÿî°@¿Ë l) ¯ €èD¤¾àËë²EÊa—ë Ÿ2ºq´¤zhosü3˜A@*4Q|Bצ´‘mrvþ¯Ô$Ç<§¯¤ÿ bYO`Ù¸Ãô8<Û ™‘ªÜ0`éªI™ øÈɽ‰[õÅ߈ã íÈ,¦ªý(Õ…d[B†ñ“CLd –}V›;D�˨éãÔ@»Úÿ|zû!’Á¥�@N‹Â¿¡gɱP|ãå7›3�!ªrŠ$½•~–ë¡gX¥K~m2³Žð.0¨ B]ýŒÐS>º1µêV ë�ZkÜÊ‚Éô‹HØ\ðú¼°"~bß9�í¹Ó.Xí=.•zv‹3ìdb¾Ðj‘j§ÒÍ'UbÕ·åä½]Ä«É(öÝSX‰%oëÚv¤¶›´{ÕCEò%±]]!­²T}Û�y5ØîcyEó£Z)ãˆN�ãòýLÊhA nä�Q{:|lhÒYrO~¾�–ŠÃ©Iø›�°žD\ypZ{'Ð8ãÒT~ÙÙÊ¥v“;àú?|t5¥p’X°®QƒË•¿gßö—Â%–?­R(4 UÁ¡”ªk�Lô-·£ŒkÛ`|CK¯|KTâ-°w%– e¶=òñ›HaaGj}Ó}¥Úo,�Ýo¨íÄ)#1Sÿ96—%訖LÀVZ³/Fy¹”&Œ'‡�Ü›¿ÈÕ*Óì*¦AËr8©v•eÀ¶q£žwÁð0/)ýÕ%Âàݯ‰QÃòv–:Çß5ëu tçÄï0âýŠÛÞ é!NAº­ñµëë^Úñ ´`?±Z”4dv[Ä�ìâï^]aÌ*=U]œñW%LAê ‹à…žÄ•¸Ä“ö^û´o67Š“³ìç:u0‹A|: ±D˜›zà{@ q¥Ì<½pÔo܈#™ùµÜ«S"+ÖüÉÑ¿² È ¡[–0WÅ[Õy˪Ÿ@q6$ûiЉ©3šA#Šï ß®UÚi¾¯fZo’�€Zñ™ËµÃ¨K?wbÿL`[ž *XmœµÎpRÚ­?“ÃUMàt=ðýHˆí€6×”þøä×Ôø¡À7¤oñ^Úý”ÔQuï /Èù·€ +�Õj—ZmâDG¼ó˜B�‰LhNø�Ä�,¨])Æ_Vù±­ö2'S&¸Ôç8À:º±4 ¦i�é©82ÄÚ’Ÿ²•ø–giµ3B¯T¶þµÙcíÿúˆ­ Uè‘·Xxæ ˜ú¸HâÑ"«oËCÚwY™KÚ�Ò\‰Í|+ô+öMsõ«ë¹JÔ�“]àn�ŽmöcmœUûáÁ_Íh— ­u}=UÓ!m¼‚FÜ€•b²…žR·“¢²?™4÷mYÕÃu¼•å¥çé:3#L�?u¸ú¸Nœúßê6+�a Y°1p) �fš·c ¡—T VSDöq­îûÖM�§¥•Ä”éjž³Û2qHZ*îPòÛ°n¾„É7 üÏ ä=T4�ï¯â²˜3±”Ñ„Ã8:)Y%¶QžN¬Õ²t{'h_RݯÂvcK~²›ÿ'´N»ù¢—æY½ã‡h^ä”V7.‡ûäû]�å¿¿#aµ˜yÚ†QZ¢ìNºþ–:-”ÉЄÊ7³üJ¾€%”Y\ŽŽÃ·÷¯ºõÁ‚®»zã<�¯O¹Wm¶›4g›Kî_ÑÓÇ@fIxóäE2q»QÚ£³C·7@zÀm.Ä]�6\o!–1ò0+jSL£¶pR-úHÐô>•}@é00ªÅ8Ú§Z’ëV¡G‰�6§Q�vÔž…¤·`{z÷Û°¤©ÖWåpxÜÈ(íCãíü—­Xeÿ"ÌžRÁX›2E™¾KמÿZJ«_ÙòPz§’Eò'Ë‹œ‚±ŒQÁfÔÖ&®'ìk°Æ?Nê=g\²Ü47�²Z´ñE—,½�Æéw h”é%6Øô±—@‚�5c‚ ”â¡söïcù“d…owÞ#‚exzìŸëñwXÒRE#†^ë¹%ËYƒ¯çT{^ yïÄšu‹;ýÞ,„Ûv|Ó¯ØN5­íœ<§y‘äۯ鉧c>\D+°@ð®a`9Óü=‘æõµ(°GRÐqÂ.°ê …õŠ5˜ô1å`€²eù7žèÁã@ü]1nHNy†�#sߥê3;· ´®ŠO|NÞÆÿyÛÊ›)Ú]QUsB�7h¹¸êU_Í:˜xÿä'°oÍùJçRãÉ¥…9Kð¹C ‘U‰�Ÿ-IÛÔoc笠½Q%´bpÌÐÇ5ŒSÐô†ÏoP ¬³å[zÿúÇ!gI>x å^<㿳Ô0¨ñ3ŽŠí°˜ù~ÇêsyHË[Ð�dM÷#Öúéiï¢#¦k�ÁJN¿Müy—UJX¥<±…LFæs…PeìÝ‹Ó�j${„LÓ¤Ú=ûû Àº\ùi÷‡ëðUf+64}ÀMõdŒ�ÊåNuÙö ’øK0âô$ù?Â$"ì‘°XŽ6ËÒÐfÀ«tîj\̽5‚²m‰A¶²>k!“w~ÌäÛrï*¬ƒûÍßøå°Úåp � °¢³¥$l ý[ñÁ ž×9UϪԩM]vd>÷î?ÎóŸQ0ݱ÷ŽºR2J‹Uªå¯ø,Ü;±²l>¦"ŒhG%¥¢€‘Ã\ΪŠrÆåCů ˜YhBõ}ó´«Ÿ<£b[ûÜàV™!YEÖµ:ÝI�ÑKð¬‹ìmq§w^ ,‹ ž¬—b6Š"r”Û �.«O2Ç­:2Ç2^ËH‡— 3.Æ^wã¦ö¤Ý–èžGBö.IAÍ8*Q|°¥õȳæw)!GÁ ˜—BÖ$Þ¤¤ØÊM †,51óÇ<)À$N�šUiC{4€ÑÍÚÀ¨)¹ ‘ „ZŠç$ye wwýõ@¦ˆ_Š¦Þ… 3fr£Ó[ïÓ»v(1MR%F…¼Ze‰©ÛÙ‡‚[du Ñ“îŒ÷l%å%ev7ªD‡à!¼Z¯~ï›FTrœÙß’‹²Ÿo‘àè/¿*Ú…ý±ã‘qqQ,‚Ò Âç ¹0@ÿùǵzØJl¬IÓq£²§ýÉ® 8oZÁ‰Ôæ&—ÆÏ¯…´ÚB­Êä ‡î¶Ô¯58:›åûÝR™ÉlÎ�¹bîÀòJq]Ë_çhXNšF£Ù'õ ¡C/}•ÏÈä¯xûÍËÜÖ âo€jðz;-ŠY£mÖ3H«rüæWí^Žõľœè%2ì:×AfÕê:°&©z5ý¡Eûäk;ÂÈ)¾A¼Å&2Q%nX¸ÕNµðØÄ÷(o¸¾€)ò³Ñ¸SÏoüʇg^áÕŒ}ŒÅ>â£=â«� BR›!�É,Ô'¢ хγtØVkùLzÛÖz¹CÒqª4p¯,K›ž9†«8£�Ö¬ «1Τßè‹°ø�ÙÎ$_\ñù`EÌÛĆ콳�[ù¢Ð"öw×5œ�6İÜöxÈ�h_RÆC#ådÙ¬�M=Íi�Õàú—…ö´GþÞ‹A(Vcüîiãð'PØWm˜˜ˆY÷m¼…wþq 'vîõ£sW!Út�…_[ØëÂìÂíøTk‰Ÿ&V§„K,^¦˜¼Ø²üù"Ï“ :.Äs5úRö.ºEh5lŸßúL�œæ¢¸!áIÅ›ž+}ò]×MЃ,Vžš e ¥ŒÈzôîs “×vʘ Tz·h­óÆß ‰8¡/ËZg�d¢XÑF€�ïtòDQHäPÖ[I‚ªåd­�~±†9�vÒ¼ á¯×a™•½h�s¡çF³aþqsØQÈ ð@É•Ø~je/Ân©tú |…ý{Ú¯�×Ä‘‘‘V{±`8Ì`Å Þ ­[‹5mF»Lk‹ Cv£õ?Òßs!o·O!¤2wÔ¦ ÉÃfXštYÅn+Nµ¸çà²Ðt:AL7 ¢Æ°¼gL¼Æ5+ú¤íôêÐd”¶®lþ¬ÚG†ÿòg§à(ÖÓœk¹b^¬•¨q @€Ê$؆Оo8ŸØê‘‹XŠ‘NºGwPQ#§ µ¿W|§æžŒ’ð‹!N¶"„Z’€6Omå«–²b³TŒE›Mæ*¦bÛ©hÁ(³Œ@’Àö6ÏìA6a½›F ͪÐl¤7.MÛöã0GÛ—Ô�rf~ž ëÝ› còf /tCrÉqªåLân»�jÌ£ñ�.²ÂàJæ¥ÜAp`úíµ¦<Ò"ƒ£U‹Oº¿�Å8,ÝlBmWñ9ÁE¬íÅ&¿ —Kši~ஈq,`ÊòàÔ™Yÿ1ôŠì0§ŽÞHã`a¶%ÇVúÀ¾l‘¼ŠŒ=ÝsÁ„ùãÉ9þžX¬Üfˆµ6úT” HtÄáj:+XL2z〥Ta@EýtÛo|j4,·�t§öê‚&ï/×v€æ`7lsçu¯ì‹íúB­Žy�— ,‚INÛær=¹¢š-yïrðÁOÑBj’-Uà­­¥cT…U.1Zi¼‰å ¿uÏ@BYB÷É! s®ŠÄ$­·ß½yÃX´‚¨ <÷­š¶ŒŒ•ºî¼ÕM檱�Û›3Æ®½‘ ÿ�Áhòó}h,XhÍ?e�½â”– s±[8�}6o5`@þ¦!™øùžÇ&üLdÛj·N㜧®’J• ÇX� U3ñ¤zù�æ¯à G˜xC{å±ÚÛN‹ôÅS(ò‡PLðâæE¨5]ݵš}•ùã?/¥ÎàÔ²=áeÔ• ™'¿uæ6H$™ûrj*L Á:‚劢-ÁfÁ¼ÁÌÜ©3Eëªí�¸V�Ø{ð³ÜH™#¥¯ÜëGË,ÏQ½u?z—†xZo)F¹fÁë甬w4Ƭ1×qÃi•Õ>%dŽÈúûó|«Nqh§TûI=¹+ÅãÏ2–oÙúxw‚§Š'÷è:< î²ö˜ÄîÉ(�H¾±™}ýjE²º¥Ek6úkèà„´ªþ¶~k?�ɼu�Y<¥Z.7ï9bïs‹�|¸a-™Ãýö™“÷ÏŠrp÷œ#ìfö÷Oh6ìowlÚí'S ¡¾Éû”ñ|Œ™+PŽ�ÿecÜöÇc‹±Îmæc঑„Ìžâ9­6ãÚ«¢Ü3ú¢®œú)$r_¦pGé�‰ÌÙŒWE£Š|ø5šX\x›>0Q´õj=ˆþS:\µÑw–«Àï¼,ò¨ýVÑOVZ¬–p“\ï]ÿË€”©ÉŒ>‡+å˜it ôêl:gHš¢Íq®÷ôÓ¹¹:@¢9€ bj¯öw&T^ÉõêÑ�Fô„ÂÀ+PíÛæ� ¾ŒöÃÈe~˜Õ{‰¼ÒºwÕ¿Êp» EqgFÐüFMiNeûÀeŠ5+‡O}?·�öê5p=)¸ÙBer„×ßOxNwD®v;‹D”Vn_—RY›"’Ð�”�š³^þ¥B,v¥ü¶èD²}JÙœÁFÌS¹u< Z¼ZkúGídŒ`ýï‹|çÌ–¦?AôûÑÿc™«g^dîR‹0*sU KøøjÈß®AU$á‚l–Ü›X»ÖÞ§°ñAºmµÝÎ~ñP€¥<®I. jËnÓ $ÁÁ®Gú}7/[g«ùÚ…4âÐK£6Qn-~¤ÂÿäÖP8ØŒLÔ5„Ù‹Ö¤–Pì*#)œ€‘üÔ¡ß ¸WµŽöþÉ89ÆíD€ø†€ümܦÿÙq¯²ë¦ÿCñŠZùש¦Æ£.ë@¶„cW½:é4�H¼âô7ÝB~=ÊiØ=ØÖb¥%>�¡b°ÝºR¯C‹5æpA�d(°ØA‡–•¨Òeò¹ïªW®µ¥ìë²Á5Ÿ…FÐX‹wÒ‰¬{Fz Jmyv"Ùo£œè¸Ú?@�B5Àà ï% Üb˧۟AlòÎÝ.Ù¼5éD‚ßt&²Õ$ê5 |I.iä°WWÑ…¨jH<ÊdäÜÇ3;í áeÅ[áè¡Ý®ßÐAptU’?ðÂíûSÈ.%CW 0}»?š±¼`õøpAmD£œÛ!0óýSeɈ~lêR‹�s®›pde؀à ַ �†ãJF¨(5DÛñÁ6T|£2Ñ=5°µÂªÞòZ`4‰Ù¬÷hÖEmñëÁ¨=Ýü;„bÌ{%ŽÝ=˜€Sˆƒ9¾ßg†Î·ó/#�ç¤Û%äxäy¡-©è¢Öáölj„ÉÅlJÂFÏ \Ü%žw�&Ø7Þ3lc„É.ÊZ?!ˆš¯†¥ÀuaV”nkŒÍñ»­Áå­¼fþ}1œÏv�ê„ÁOFÅ ÎheúÒ %­Q¶ê£âi§;‡ð�—5á* Ã2¯‚µ¯r2„"ÙV†õµý‡œãÎ1ÿ¸j�/&ä\š½Ópó/mßš5-LÑöNîH«Op­¹�‰”¡>ÙˆƒbÖ·¨¼5—¸r®¸!âIW<­�wb#ön£N6xµhúétDê¨e^_ò:Á¯æµÝŒŒÜÉ36¯g´‹›Ìž=éöÌÖTå,”f 8h<•§·‚{+`Ç‘L¤õ@q%± >ÈïB²ð�EäÆê�ÇÄNa¯k]÷ Xe-pMdäHöŒÏš Ö³I®‰Ýê}¶ Zqád¿ð7>n�ÈßÄwdú±a+¤ðúس…'?-doH ™ÑX£*Påî‚fŽ–qˆ+dF³Õ0j¡ãy™ß• i€2Áé»wŽAØoûœý>wv·}õ…§B©Ü>OT‡›åMÑ¢õ§}»~ÑÀ�C¸Îfܤ Äk5CoÐu’¶d>É©¼ò ,C9~]+áW$ U\kÝ‚ôŸ·”� Êü¿WߘWÇ-DÉô8 5Ù$¡êðA Ýü §ìêZ’š3޳t©°£-=¸Òž£nŸJÃ3Æ*’ÞQÉØG‡Áé§ Î%�Ãή¶*É|*a3~YYxÞÓŸ5o•´Î…õ­†óö‰a0û‚ÓÕÐ:é¾Öï©§6,s{ôqÇø%LN5ò÷q›þòˆt­DÔT •ü¼ÊÜ_4ò%4ɘ°ƒ‹7ï²)ýoÍôÜÛê…q–ÊZ÷ÓE¼ ÏV\—˜m®�\pÖ•4}.¾Z`†€Ù‡qêÒ¦ûqŒgm þÎB(š•1.ŸQçb¶¥G]tZõ1‘cCˆ| ¯Î%„ìúD¢|RÕ’à ´ d{4M .gíG„ Üt1A0Ï0ßy¦ù¹<&d ²½,›áó©Ì Â7P‘Ç �,¼rüì(ªÏùziD¿¸Fâg²»[.,üT»EáÄ'« ¢EI¶³j 9 ÙX%ûÞÞìPˆ&$/ÌžÑ^æC`Ç8yñÛNŒ^ÌŸÀÝðøM‰Ý.h…ƒ+tq»5Hаv¦Û¡Ý½õmß% gy¾ RœIC,uʵ“”’ô OG�kN_pÄ¢obS3—õ…:3½Ï£®Jç¾~Éy¥3¸eÑÝÉ+ëBaÅÃ÷¬°N/ß'9Ã)L–f»9±Q³o€ºª‰”ìá›úFÜâ3þ–JÑMG–:å¶GÞ@£<0³ÄQ`ãS·•…Ø">c †¿[½¼ˆ7Ve0©À [ê‰@& ¢'«þ/]ËLaêÁ)D1=¨†á{+B£1tŠÆ2ÒÍ78]Z‡~áêÆÇ4~ì,ŸîÜõÿ¾¸hY�; Àà®ù…’WhÞŠþ®&}3•†”¼åå HZÉš˜èʲ“òy<¸½ÈD÷ Š{Ú‡MÛŽË�Ò�ø—.ÃÐ’TÔ×T‚L`|e�åm—,n�;mÞ©eÉ[?^ïœúµ´Žä›C¥ ?£êóæ9»æâ°a}Õ“XåøCâ3¹TοgÕ 'ÿµ©yõ\|ÂòÀÐõáIzHŽôï—³%¤ ç©÷ŽD÷ýÕL…v ]ë•d`=ø½Á]eVž“ R«Ør.±è‡j=aê}±”ñŽrU¼3>§'„”GQ¿v7n/»¶zšçwÝqÑ"ÿƒºN´*9à0Û0Ü[Qθž¢Eo´Uü‚¯¶_õ2ßÄ[ñÚkj(1нW<=oá>hÚ2AþÖ)¹Ç­…ƒÅ8<Õ©Ù˵A#,RçZ™¾s”Hò­c!&ª×<×”jÜ€~Ϩ°S‘3ziq�õÖ>gD_¢~–?8 .6ì>FÓ LêÙyË•³ÈeRç­Á¸Umò—Êß}À¡=Øvå°”¼HwÏtáÉïõÕŠ�>‚G.ÀþLu{—î—ey $5؈­¨bi@˜—çóCŸú÷ÕÊ+Ÿ]‚»Çá:xД‹¶›·üIž[Ëh~)*†7¨JÂàß§E6‘tçôÓAˆeO¥t½ð}:æBOÌá²–YußwP®« µñh¦ @ïðÁ)<ÑÃ_¯ž£æóWÌÜÖ}/±PP‹ïåÊjÈÖßfD»†™ùÜÕÅGym±!©Uv@ý=—ãödäSÅÎØÌ¦°5Xx¢à[¾;#̉Ӵ¬> ´Yv21³]ƒëCó}2í Ú_ëG_.° k±¼Ø¾ô"X*ÃÎÔE䢎·D)sB%UQžy(lÓH;P9X$aJ£€Ý–Uèž %�éž}¬Åç<ÂÒi’cò˜lYãˆÆGlaj3­WûøÔ5"Ô”9Ž`›}Øó¢|=%.g@‹˜ã^9çÁ•�È»ãv™¼…Âhã€;ű8TÙçnx¨>ÆüÑÁ8rÙ9·ÇËK%œ�sä+Û,‡n@ªéÔ_+ʼ‹{WâÙ”�†F�°Ù}²'Xè4i¬j›¬<ž¸±ÎŸgÿÍÞ®6�AKÐy6Ý*H7+/‹ÇÀÓ/5kTYf5{Þß‚ôvR¸ÞI\¾07m QG.f$e€½�”"Ö±1*ž¯¿Iß! LT—Þªòªã]œªñk51�µ$úÚôBR"RìNºYRÅÂŒAx•ó%¤«¥Vxád©,Ÿ·Ó¦˜ Ú®û� Z,êJÕ…Q“ÞååHyvŠfŸ}MSœÒññn‰ÖµýËSÊÕf¦L¨·ƒr'5KóõƒX°ÿ'”`™Åy�ø“¤÷ûÍÕýÐ åâÔ…p­´„Ì¿¸úh6B´XôÃG–®¼æõ§î'Cni T£ü Â3~€OÛ“«Š÷†»s~!¹­a�»õ�±ç:¶#Û,0Y¼,’É{ʰjüÜÀSŒâŒH^2åHuSžu`Û­ƒx� eW´KžSô4ÉÖ¥z÷îÙÙoþ(Pu~$&„�æ]˜_Ù#» á¿>…æózÖ‚ˆë¶ÚÐ� ‹[ݨ\®{Úµš Tzl§l·²(ªqc*±Ï¼J5XE!š«„FSÄÖÝ—{ÊÑÏG…mWû¦é¹OKmëN¿ˆ˜Rkžƒ§�ÖÕÉÔj–<÷/ ¸r…µŒ˜B^3â’×IÊkæWFDŸ¾;içö/¿|P‹mŸÉõA¨DÌ«0�|M,Cl!Ä^c#­¢{!›¡9U–áy!”ä_?Ì�<²‡üÂHFE¢aÍC¾ŽúÓ‰’bÉ{7ìÝ·×ÑœŒk|s�GÓ>†Šä¤��ØçÙ*žq^D9…•=²ðvŸ©W‹“:¶'wôeÖVF§ˆ•ùši ÀÀUuÂQd�°\®¦“õ¨+gD¦�£õÅìZb¦äöxLÖO¹'µ5§G*¯ÉÏ_V]yÀøâ¯ê·®oɦ4sàS¦× ¨îñy y \6 WßÍ‹ƒß$­1É?pê e\1¼ë*ïn“‚ �dzÊ€ïA;�A�¢W&2V·Ò³å_!ÊyY•hLöV dD°\ít+ þ(Ú ,i€°¤B‘TÓJ1A'ºj§`]1åÖž{µ”ó ÀxÕ¶€&+ýÛÈ…uÁ(›ý‚„´lÿ„·žyŒtE#Ÿ… ` ëÜ|ZC‚@–i‡Æ‚‰<€¼ÚÇÃë¸ U¤$Z/ç™×3d\ίUqä4m߈m0Í£©rûñåœK7•^1)mš{›)þ²ê³í¼Ã\ÌVK•­üQ«ã¸PSÚ <׉Eœl^Íêàè0yXžž[Š!ÕܶòÝôÂÔÈQeºAq¦|�œÆ¥T˜ö›Ûe `++Bz¼ä8"Çs†ÆÜ=ˆŽ%�IZÄ)Àô->AûàÕ„šzŒÊ¡ ˜EŽÊ}¤«Þª«œ5ô§†;°SµR>IE~¤å ÒU“PHϽÿ@R(=˜iMë÷ô|‘4±Lët—zŸ.fèÙ´)p¹�l½áÎøÅ»TÊai6?X-»ƒCØ­ZûáK¢-¾¸’CE BK‰ÛÆ*-ÊèøtLšB' …-ÖO“ÿ4­‚N(°w�ÏpþráÄ™œû~ïj�‘”V?|¢æjoiÝôJ?Y Ìlêfƒ�; ÒJýBMÛkdmìPãnE„¼Å=/ –ˆÑr‡ 6ÿºP>›éÊvñäk®æögÉž”Á¿ƒ?G˜yÁƒ� Õ¬+Î0O<‚Ób„:?›¶¸/ š óEÕO1§í$€Q@ò!ˆ× ˆ¥W¨¢Çž3â“ãA·='«–ÁjÌÖ®´ j9\î¢88¶‚»�LµÛÈܼ•î£ØÅJÇê>9ž"<~щ"bqOÜæ í¡N°Áçw‹êC�õÚÿÉ+–£FìñMU¼Y¹‹£sÖêRq9uˆ¸!’×mŽy:†ö)š)}?ØÉëÊ#Û»]„¾¯YIèêñôRCA[Ú‹�ãu"ŽV|÷ rÖýÛë# ac]igëd›aMD…ÐòtŒ�mø~L­¢¥àErž2¬À.\�{1š\ÎîœgíÆ ù[;Ý"·2YÓ´L¨ˆÝâq\tPݤ–q—C8çbáLû—~Ъ7«$"ùyBg!­YŒµéÊo&¦Xxýb£ 8D‡Ž>õ P »Š�¶â@Xß—oûd*Ì B9ȱ(ä¨#½¥&h+¿wÕ…`:0~…¿KgyBø9‘ú)ÙÛƒÛlš½ ò˜1¦¶ ƒœÈ!û“¼$-NªÐM£ ð8¨\ŸJÕ%e,ûÚto²–Zpf3¢I0M­¡÷3ã­Ám½§°è&yEz³P„ ¢90¼HJo€~PbÛ…´¿ºvøãvöÈ^©3ÅÃ,ñ!_ÓøÂtÁãyOyÙ…š5æ4oö¥(Æ!Ò¤Ô‡kyœH+ÏQS2pôÑ¿é ¥ª(f(�C–-œºUÃc¦AØÀlUT|XEpêljì}kü YzN9 `þ2Mâu`-5xÊgt…ï4méïÀ׈]aF¸ŒìT=£Ìø7§À®ê#ªU”Bž¯ì>.ù¢X\“~¿Ý¸áé!^‡@»óm€y�Jôdy¹•¾×±:²^gb¢·^šWé…OÍ·;½k¿­Ò“ÁàÎ:W„‡Uay‰QÒ¦)ŸX̾ð´$Gëyw“B,ãÖŠÈnn¤ÕŠ>$»(^ /�Jг¬òeì°úþ¹û×¶R6ÆÒÛT_«åÀæÒwÙµ�¿¶S£ë>¸…i„ôè=2!kï½Ü†è£â¡üp�Ÿž•‰Ú¯éCë¤8ni ‰ÒéÃõŽæZÒ�š¿hªÍaØo}¨a´×NCI�WÏ«Z[¦ºm@&@> [ÆO��"-¡£l[éÖ 1ÆâÁ„»%õÐzá°£ï¨Zç�‹~5Ô”kÕ,Q'`CÊJv¸ñNç—nùkÅENaù{QKgÕí´:s¹˜7\‚5<ùÚž9àQÈ á=§j²To.‚±sSzêÆj„aå§•ºoÍûvå'V柨ýÜ®®hìFwªƒ¸_ÅïWãN1€<äoHÍÐ!SéõÌÞ·°¹bÚ®Sà-޲”§UˆM˜Ñà°ª—�ܹ3….žq~So*”¯ÅÉöÙnîÀ´�¬È¡�ù� ôV*mŒLøë#ýIÏé�À#Ì6Ñ)šVzPØPpCPÔ>¼ïo�CçOõãšœ†.ç;¿Éâašè9�×S�N «ær–õ^¼}…C¢&øyuU!*x{=)^–aÿå{nüÆ*5¼»)þe.i`SpÍ1‡Y˜oÛêÿ�'•ñÙÒŸ¡ü(‘M/É—Ù=¤\å×1~m1aúí-Eƒto‡Ñ_�N2æy¾Õ㳄ŽôF¶®r<`‹Q„;²,C„Ã2VçàË�Â3 ÇÑ6/V€ÿĦžŸ# {ÈËr"…«£;N)Z3 »SmÚW¡­ï[!ØšÃ9Aþ­�_2òNÍáqðY# P…x`¸¥lCÀ$B‰ey=hÔdù'Ë�ŒÝ¹H,+ xŒåüQHé½ò ªÕ)Ñé`•`\©Á mmÏöV>£2õïižÀyöÓu¨ùÓÊ稥§«@OÁ7cOvAuඬŒ][në�ýš�™ÙîÓjK/·KãI@a} ëƒ[á•¡€ü?#‰ 1p�£*›…ô»óÎYÉXMDèÌO�c+MF=W%£f¼áyÛn©o�^1¤ aÁZG…ïb„†à†.î”EjÁû™+×ɵF‰£mÉœ©·ô5q¸ï·3=Ø7'FÊ6¥)sü(ß‘¥­“#!š¯R½e´Ý °“czÇ_ÙKŽù­/y‘ûÞæÓ÷…ŠÀ=cW9ÈO‚L%¨“ÅÎxB½ß+Ê?n‘ŽlúkqDâpfèf¸ìm˜¿Ñ§X¦¿ŽÂwšþ|™ÌÎÑZ²¢çÌ+´zÞ/ήŒjÄnÄ�Ô³ÁÊ¢ɬ`‚[¿Æ /¢Y+לåîó7r4~fÚ¹îŠEg&ŽüVÝ ︟]:üa*õ €Ib~“9¢ HX)K§&f„£CÕî½äÌ •ãNµŸÜ> ¯‹Ô‡§"ïÌ® `;ÿèÒà9iSTH1!¼¾ë{3V»¾¯šü™ú�ÊR}'|·&#_w'wOTíWíÿ&H¡?§˜åRmyòr‡Äh.ÖE ô†T¥¿Õµ;ΫéËîñ%ýý×ýÕÔ…CÛMsäÍ�3b|5tÃ6|ìCï¼B–{?‹¬ªC®›’סËÚHYHQÐ� L8‡*©¤8Ú yL0öåHÅ:4caíûö˜€E)ÂãuÓ¨š¨a‰†Ç¬7¢ŸSþ,®âá^{Æ"¼…NoLƒ ùÑãñ &å3 ¼wŠ²Ùºúw…]òmÉí½æCðŠ˜C°¡³¿9ÃIcLÖZ`™hE�”÷ã«ûþ�¸ùœÓ²™Œ0äB1a×#’ú¾?<ÝØ" ˆœô— Þ;è°ÞÝxºkø¿å„hO!‚ÈõqsÜÆ¯à3[.“ÃÜÜhØaC·v¿ ¿P�‡=@ëã8]§âvi\–éH}+nwnOÝ<� >1á ÙoùzUËЩxTW‡7VXýÕâ%¬›Á±iÔõ—³q¿|ìÍøù§€÷�á#¹:âo¥ lþ¨1"^mÜE¦øºú"I*”7^=¸ƒ¶]ê…{=5Í,X†¨&�Â7'4£i{]ª5 Y�O`g`’XFg·eø� øbåyÍÇ$¢­­BYBŠ9ò†uô:9k›{QøÃ°„Møg݃$ëȆHý¯†j´ÀõÍ"– ^N¡åú—Å®*�¥H],?mç)Æîg‚�µ3ûP»v å­Ê9–ì°Ânë68J�jí]²é—ìŸ:ŠïìùrC·¢�¼ppƒ¿ÔD¹{á\C±Ü蕯‰¡¶¯YÔõ°5zâFÈW4Kž)¼“dRެj/¯v¿ðŠ1á'#%ÒäAMc—8¹¨Ø¸‹SÎéŠÏÜÚTÌs·`�Ð\âºi;Æ‘hÑò[ŠØÈ”ˆ‡IßÞš­ªëð [8Xœ)‡V ã2bV 5¥•q·Ö‡£ÿ*-7öD´Ì¹E‘úo ñ®÷)#—8 þ‚ÝâHÕ¨ª”w…P*7DË#›¡†^Ø–w„¹Â«:IšvŸËšõ õ©ä�^(È�f‰Xì6tk-JQŸ�¤5ù5FÙ¼+/˜"]6Þ4” n‰˜«8n6™¡§ej÷:êÐc7¡à¾Øý6ùº_BÏé*Rg†¢½l«(蜖Sõ€+h|ÎÄT{Ö�ÈÄ™G|•.±ˆw¦ rÙ†WT5 �ùG©¼¤¨®½I×±\IŸ Ð<¢cyÓ–¯A‡£rÌ8ƒi,ã‚X*f‚ìòHÝÕ7±uû¤›Ñž¤Ý6ò7Ú"#e¸4Qühö€ôÈ”ñ·¿n¿yÒÚk%€5Ý äµÿØ®îKåî—ÊÉ·¤ôyŵö¼ñh°…б:¶Sb! ݽ ÙŒgðÈÝL#}ó˜v9·5dÆúäÕž~xª»ñÐT°0k&·Ñs­Ô‚‘uŠ·°?:„>Ô¶§CÜHó‰£D§-…W=>±â.ê*{1­å$Ç?ðP>['ŠoàÌ�» •<‰Âõ%Ilw‚ð? •�sÖå®ÉN2ôÐgio;ç˜n‰7Âß·–.Kýt S =Xƹ°]U²V¼CSa«˜ÛavôZ!LÙ¯„*�“xÔ„z¥ö«tÉ=µ‚'ÿˆi1 VȵwPZfs‡Ý­ewF.yÅSv“’ôtV’©}` Ç8'ϩ̟L•jˆkóá~éË3Ü"ÄËê=í¬e 9`ƒ’Ì*ŸØ�)¯|€(óVN£.Lvì(ãj®×üÒ‚ðÑ-EœÜY)!:Ë C\ß?Ù»÷T³7<¥‚)ŽJX,𺠟GÛë]«K^e:þG¦a9S*Ïþƒ)\nq¤Ø+4B\|®ÑW~Q3R!nRoæLÿ(º�þ/år힤¸2Ó ˜@Üêv¸£q—Aù.å¯~•×In“!†ÏŸañ½° 3Îsá£TS[ëþkùíU,ª`>°BYҡ܈£Àk8$Á˜ôaç|"Ò™˜õ÷’ŸÁn…šC›)ZÉ�3 ìi`hêÆ_Úª¶Rsk«/RÖ| Å!‘‚)àf4$<;i¹ï7å×uh[’Àq>®fž�Ž2Wpÿç¹Jï.ßÿÙüNÃýêȇ*ã¹XqÙUF‰q@ÅÆ¢Sˇ‹?’tþ$ú°²%7š€,|d÷£.ª½�vPäà ø Q4<æØ”ì%�…Õ 2O€pçP?|{öÄ��§Öœ X‘ «=hû2‡1ÍÉ�P¸Œ+Øg+yLÞkíYý‰÷ªüžÑ|º¾@Š �YQìöbÂà…AŠghÞ5óû(MûËìóDëú?;“ˆZ8qÅ„*­\Ê‘˜ï~é|<æy‚®ß<«ˆsj¯ç—Ëb¿{1~þ:ÍwúÝøZÿç2T=´0Ár‡“£+žF#«C%Ûùw¶&0h¾±ky`ßÃz¸ louí3E¤2ѸåŸ�ó™-€ŒÇ%ã£`fzN :»è'_ø"Þ8oäÊÜ•\ŸÁéý^…£ÒQ5—ÖN¨ÁI³ÒÔ½¬�M?� ôèk eæ M]�VC¨{DéÂw¿V9[X„ñâ¾ýÖªŠGlij˜ ‰¼Æñ±pM|S¦Èýñ™¨Ã4lV¿s,ïj - sj·‚¦ÆÝÌ�E_TÞ¶sýЊ)£k<θ‚öƒÊÚ–ÔïVßÈ£H¶Ü,F•ÿ²Ž[AKÇòU�vð Vp3a6숧ãeb¯àL£Õò…Rm<œT-K‡ªÜÆq^�gƒ"(s,û¢µÖÜü¬B €‹ Íóñ;­Vñý«d‚®�D£ùƒo¹C&#Ê2¢$»!�ù–÷mT•EtÏ2Öy¢07ý�ÓXAþfñŠè„�$¿Y‚ò£UÁ,ô ÇŽ sÐ`Ý®ÕÆD"< ø>ÎØIj½ ¹!Ÿ…§)hR_u íQF»ý~õzÙùN‹­“¼üªFÄ®PÝaâa/ahïDyHÌë™L˜¶j‹vþW]t¯èÇå4/ëp̺”Óiøðyž6ç(cé!aäNN•ëîÿs êóÃÜ,i,L¬928{ÀŠKïS茵üµ¿šºÓ ƶ„%—L ¼ßÜMt¦ÂA= ”�ïÀrS£_ÃèVö@Í™³"¶í"ùê{ŠAsIœð¢ª¢a:§)jIšžÎ‘Lî€åÄeW‡–{Ø¡ñ'Ë„¦#ï•–£N¥åØ«,˜�$VÐ:yæ´GÇçöù(/ãï_/Ó³csÝ\pœÈK¼–¾ß¤~l¡?ÛWaÅ“XÛ¯¥†Œ_"º-ËÍ,Äp,ˆ®'×T?Âv‘höæà|uCë«j�³’T®T(½ñÙÔh6fŸˆ3C+±¦;2ÓqÇ ¸F#ël»à)D X÷üÒ`¤sÇE¤_ Ž®€Ž�𻾬vÔ HXN³C΀îš?ÊgWXxÜ´À&z’Ýgjk ½ù Õ/‹§éÚ “#¤«e·äŠz™kƒ‰ Πåʳ¥-à1s- ‚âNeæ‚||ñ\¦!–ëñ$"ùÚõ�?�Oø ˆ]GÆyæø•ý9»k¤ƒ™ŸÄÓ{Ó¸&`²E${ÈT-þ4áDøføÓŠ{¾iŒ%ò¼®èRTWá/¦Ö¼"©A1‡04 gv`IŒlŸ:Œ(ôYõ3SWKEŽŒu#ñ¦Üòóww˜<æÏp†L¬tu3Kdxs»<ž¹’BSm s!V¸+KeWSà'Y}"î`-­]ËDÏûºã)û[ßÖ ù"?¨óÞº%¥(M”º,Ó_Ú–Q•l?K Ÿã^ÀYØFÏ@&‰7#mydfUFÚüQl×H½qC Ž€)ÎÒ&+…ÃÌvŠisV}Έ‰�òFù¬Ïç–mdÎ}Ó×å­@$·Ì ÛÆ�›°6Dt>„*ä·®|ÃS#ƒÕÊܘè•q]ï^YÚÙ/¢ÑÔ\ð¯ÃQ;”=úúBJ«³S×:wvríšvg}Áƒw  ~+[“Fi_�A«b×3vzu?l!©*h7°¥J‰§ñ<�ÝàËÐÌyy{Æi0¢ïqé¯Ô8•8øw²#…ä(P¡dž“6<”µ;êÙÍ�œ\„Ó(dNTHÃã°xÀ!p7t>Yd¿&ú×f²— @]ø(„7—2…»Ç Z©v¥ÆO·Èf'a{ ¹4V WtL™_‚¼c²à+éª5Ð8äà”Ÿ‚QßUt•igüØu¸Ö¼´D3TkO÷z€slýÚðó¯™<·våä}+âY#*l›‘PÑÀÕý„&»@ðHÎ$Ä|ø93üUªÅ[(1W{O: ¸Z�}¹’Ìs™Å*2þÕ5j£ïIæPÕU­@!‹ãh�Μ| …B9I ‰ü^sô†8äðf ½Ú»¿ô¤†pìõé3 Xí˜Q11Ú²þ%@ã8Ã7š~”‚K¡"4kÅb9ȧVj´öôÙ Ödƒøü=Ð2o¶Âw— äLI$29øÐå>éðhøËùOÜ£›Ñeú»R±XwJXs¼`\FF×ü�¬ºÜ¼B(‹yàׄqGi` åz'=§UÝÑ ac1S„DÉÓËž†]ø†…Õ](›Œä�ÎíܼKwÅFªšô´¦I(¡·ÓÌ«ñì8«íö—ù¸É ,¬Tv¢v´ˆR ?árý"NúG²œv3K„ÛðnK;J\l(hO�˜€Na:‘‰„Ú?p|¼ž5@Ún’á)ß~/ŽMÔ¦žÌ­.s©FL­C(Ï©…Àæôo0L{†CŒ�”â¬9³RäE”?ˆôMôX”bˆnÚÞ�ÀÁ)¼štk½4é<ÿ¨62ƒèÜGä“U5�LÏ1•ä´V›ßc‹Â¾¡ RcgZ¯kS«‹qÉý9ë™.¹ÝŽ¢t¡çÑìæÁl�ƒÄnpù‰M~R8A%0›Þžääî¡âDãLTIB¢=“�€°ú’8e똵„¹ì:X4éÆãääBÞ†Ðý¶òŽsn;12ªàŽž-Ö²Xð«E)õðu>¡½ $ú4Î0)0÷Ÿ7‘ ŒÒü³sšïÔ”™Jà0jÔŸçq.·e^3›ŽÃ3äc< PëQ=:MDœÌÞÏ^î­Ö×Â:ÃŽ~b޲¤ úb%Âh&2I¼ä®ë²¶"RŒyäЗDé I•îa]¢’·ºf¬0]Ç‚fQˆÍ?Yͱcu;ë�Œ‚jPª=ÿ*1ä33ìLeé÷\Gž×u†¯™µ©XïÉ‘•è|5å}‡o*/HÊfĤLãÔ?GÞßÇ‚‹Å·Åš¶¹Í¬lšÂlé¥úÀè;!ØÏYŠßo1à(‹öä9ã«GÒè|g].¥�£\�ãr�¹Ê1mÇn{¸�v« $Í€l2€Óˆéò#N‚ô¢„¯ÈÉûBâ–ª·˜j½{·$~õ«8¸žU4I†¨=íõõ4[ŠñÖ1Þ #Km«Àc“˜W:€Þ O±Þ¼@ä¾ð~T ÆP.û°Æ[#™ÞÔº`€ÐAdÚþ$®Pfô]Ï*�°g%A¥z4Lf â5ìu‡^éG”19øî†°oÁøï*�Ó‡„Û FO9t4oSh»¡È—èÌ×ïÃ,ëP,^Ä¢“Ñ©?ªÆ&¨à�È…<= ?Åè�åÏaj·hœHr4EìrbJÅî6F‚nì šÃþ—¼-RB†±ï[cô` «þóS÷�å#ë¾Ë®ê )«¼5~a;O*ÐÙ{S|šêèÚÖŒålSB€»�êqÒ<[|Køþ¾] ÄXŽu×®±ÌEzž:`þÁѹ‰‘äÞOÛ>PlŒ)å|ÍgˆµfM)À�¯´èÌU,‡5‘»�Ið]"î1žk.^Ò˜s8‚Á¹dÖPˆ‹…Î,H«×:™×!§r1*žùHÿ|Q†aŒQb-WZ“¶6&h„‰Ø$ÿy‚Qí¶eL_çØ__K«~m�w<”ǪV–8> è ÐAôŠN!ÁdJå€4.1_ª +úD¼ú—�}çæoÀ�)7¼­ÄÓKâ©¿T†X—)bÿS±ŽÆ`Èç[Î'COäΔÕ$ý@b´�ug•_2ø(ŒTÐA=DUxÒÍÛy#ç/ éÐ2Ç&|H:q:³zOó‚/úŽ}ÐãËï>¹³±ôŸœ³•çù~Cxÿ ,�Ðt†=§&:»¬ÔèºÑÉL¹—¤.úaŒ”4ÂÓ§—<r >¦6¹,}Q·Ó••oN‘º\ÚÙF@vV‹ÈètihØÝò¾~ôµ¥R ê óÆ7�ŠŒ�åMýF”ïÑLÐ:㉮QNÿs§¤Ú±o�¼¦!›þfÙC‰,о bk\ÀkHŽl»Õ&–wfŒIÊdÇC{S¼b0äMà6j÷†”rão²¤Š� Æ´Ûþh·°¤Ií6‚Dz�®Þ¯Ia•™†hgŽ.²á„W¬s‹DrÕuÅýï7Š´ê;D-âÓŠ~±IÛ˜ Š^sŒî jø†/Ä�É]j†ãN&"‘·¸ÚC ‡¢Œ,•(DÑßÞip¸“k.¹ «d²™5/æ„@-È%öÀŸ{õ¸~¥U_KÄÙüÌm=°ÿ8‰ÁJB³£ºJõþ*ìÁòAØó²ª*Yt!¹†¸ ™:Ác‹0’6‰ÚÎi§ãMÈÉØ [äØIÛ¯ömç+Š ìPjRï™æJºÅ›Y ²«‚èÍ EôOÞØQ¬¼5kSŒõ´²Eó­Xo7ÅÙ"Ûz›­6·œ/‰Ç5 …Ëå¥Ý§Ÿþàîl5zcä�QÝq¼ àe¯×šÿH¹ßû’+ÄWa9œ0Û¼‹LÃúK¹ð™±Ø±` ²¹dN6Aì95ÉßôÁU•ó—Q5Mv‘á¯Iµ›!1öj�ü• D´ãsèOuF“�Ëß …,¶SlkÎðm ø'[ —¬¶5¥ËKn�.ÖõÀ„wh“Šj˜Ð½ þ‚�<’%�\ÄèœhQ9Ób]º‚ÛñóÍå°lð Iü��Zd�ä½t ÏpM<Ä2´¼š¥£a*ÛuµHw?©b±ÖH›díc%.ø{Òr”ÃVM^äŒÌ—‹¶ÎœxÊGìP¢ä§i…ëdÀ‹y3ØlÚ+Ù2bÚÆÙ…$Ÿ|Aøù¾p�Eæj±Ÿ~Kå’f¹ôÙÅ®j%pù£$å±—NÇ»Ío˜*‰x¬Ži´à‹ª´gÉòœA‹ŽÒGÊ•¦¦¢m=„tL²SÙ¥…>f•^+F±•”õ�Ý0ñh"÷Â^à*§®òˆ¦×å@Ú›²âþ‚µv»Ñãöf g�P�ùá–†Xø�K´�¨&²Ý´¥ì'{�/M™œÉ¥góÜ®�Ó:Óºª`èSV&°aÊ®šO.>«ÎÇÈfÈÜ.þ‘Iþó8d—Hý¿0Ud­KØTÍåµ!Ú -£­ èËç¼Äsß|¨ý˜£ÌõÇ�äîðÚ~�vÒ$½x>.ääü£c9`“ñ]ìļ¯ƒÞÆŽË†ïÊG{Kèçи'Q¿‹%xÖêMt=¡Q¡|\Ú©E~»%”Þ#¤-/:mù-÷C ’ë„�öèLò‘x¹³ ¾4Sœ£ßÄŽ�«ÓÇîhÀÿØýààÔ­&4âËwÇ�†*>ò�‹_Xñ Œ*•®fÁ@åèŒH�—°ì?©ÖL9œ´€½Âž³C2‰%²:Œ¦!lóÿ1¯‡�t‚µ¤�ºÇðçH3CB#NC%–�,vnˆþýú|ÝÕè»Ü 4|/†"VE:;ø7[€Agt-( õû­öÚÓ€îíÆ:�¾&õo/R?ézÝ·ù»êXÈ©Û[¼˜dŒÅ*­À�´ci~ÀOÙ9·i »íiÄ2XöC–ÈÕ÷‹¿Ì2ÙËÆæþ „+2X7rU�0ûñkÈ w‡Ð/Vø]HþÁ&Â÷/ G¥F~ }VTà0¶_3wàR¹s¬K(²bíp?—zío–c&}&¢¡È¡¸KÕÀ (H1@p‘ C}96gW ¢Ïø ±°TZi^w|cF›ç¿»º€)õ¯æÍÌçÜ#_7]U±v$4„ÃѼ™¥m¤­ÛÙ®'z~ºŒkGIÛ–iO¦ R¥½ ’ÙûþöT�ÅIÿxvü >è=‡û°+Ùl\˜x4”DÖ?Ò¡ U\�Ø(IîÙ\¨ou~ÍV 7‚ªa}.�k€~N�t2ý”Ú– ŽvûN­ÀH:!�Û-À_ƹñêJ1§SÛÑË-ÛО§Ï éÛƒ9emϺӰËãe¹w8CÂ‘ß üà©O6 *„t<Ÿ—‰hK‚PoKÄ@N8©¼ï–p]ie�Cšxÿ¥ FÖk$Frê¿ßÒïÉ|1azßM“ð=ï¹.ßH]y‰‚‚Ã>Ê2̶&ÅÞ“Ÿ0�Š“×váŽ×1JÜ€�BÖ,Èôz¨,¦yw#±ÒùiØ ÝCvC4~ßÎÓç=T‘¹ƒ ©;êuúF¡¾äµsU!w‹�oÝøŒýÛŠjK‘�‚ºÎÇY 5-¿Š^¦EÍœ ²Û–Ád ÇÚ�…˧pÅ^a¤g3tÂðĈ``åƒßÁ¤•B_•üà>™ùµãá¥W¬ñó6BdYð}:^ïšIV^ËEìßét²2šîðŽÙâG¨¢™?Ê}[üPll߃‡˜ü6‡ç�w¿Ï¡|éžt <¬8pÕ>Ô<„ñtã$øÕNñ]X«C;›¬Ÿ Ú-üj¿±°X­Wí*p®#X�ß«×ÑžrOÓ÷ÛŽ¿=aÀm¶l.¹ÿËÖ²Èç[·‰Ó7šzWÓz£¸Œ&'J kY|ë<,Îp«û©ûѤ:sö_‹+Æ”ÌÎi¡ÁßÀ#uËE!®ú¢;ãWd3˜|ÜIÍ¢­¥Ýgï.�4»„m±ívˆEŸ>ŒE|ë•…›;«äÎúÏóI ©TçÐrëÛÄÖÀ�zU‡jë^¼åEYã³+ªÇn?7©0¨…Ì1;¦I•� ©¶õ•Ë/Öfª:"ÔL ,fSñõ}®¦¤o_PÇ^uCnX™3ÿ& ‡�öÊÀ ’ŠÃb+¸DÍû[#w²£8XcÖõo•¾)gl§FÍòªCÃq¤Ì‚£´y‘jdRêV<½ðL5šÈBk^~zDYY=~;WƒQýå_ªž}ÌjüS¡‰"úqÏàãûšS¿˜šÒú Ë…jª–PÐÌ[©˜îi«žzÕ8r©™·jÏf¸1ZžÛ…‚ÈÕñ£X©ÆN~eÍi{)ûdh5<ÐËÔÿêÔ…JÞ~‘S†ë?]� ½ª{�¾žØ[�7~÷GeØH†ï½÷øM:OoÝß_-7sãØÿ<s$ìÖÕì�VŽ æá ƒ($Gê×ã[ë,BÀ©å ñVŸC­‘»ÔŸ¯Ýë§»ŸÂ:QÈçØ§h $øEÍ"ëKVÍÏ^§cU¨§fÝ<ö“ª•1@hZ?Ç vì¯5ðš–¨¡ÿ9øá¥eëÛ–ª¸]°W„™zGÁXøƒ¼5¶noØYÄÚu�šÉÚ§Ò¹üÞˆ (ó2ÙĘë©vÍA'ôbKWÿ:Ë‹¾è(˜µÐ~çµ>Ÿ4ä²co•¾“ÿ‹§;h"›k�çQϼ;¼r±Ëï �1/èÔiÑ§ÏÆ|MŸVã­¼ýWR_Ä™ç ON �ÄíÒÈÕõ#êuÙL´ÊÐÅ{ï2ÞuæïhO÷”O.gvyp·6Ÿ¾œ!^b�ÿ;Š?F.ý…£ã¥�•й��…ªcJê|Žz�¬Æ#þÂî/É)×9 ‚ÏÕÚ}AÿÁíLoX“‘ÊÒ~}ÄØ¸Bô„–¥…™µoè´L¨cû+<.³ZËJ˜õB|Ös¨³Mþgj%àwp”&  ÷o‡Ã†ïbŒ(j.WÁÒ³R˜}�A0íÔPž��_ŽW8EU²¸2Fè׋ئÊ �ñ·ÿk~ðÜŽù…;RÓ¸¡�#„{¬¹êEÇHç_Z�;ÑJúåJ…ä øEñ£J¾ýÖ þ+ï1ývncec�Ä—cH¾Pس1Oöd“AØz¡<œP€ŒÅ¥j¹»]\3vî˜V+Vè^u°ÏÙíZ]zjäüp½—êÚqUì>áƒà›ñ“uµ¢ëì냢ó_—þ`½ÌÒçíâÊ,ILžh«u}Gý�ø ¥zj|Íí¾—ä™.GâËݵˆ±Ù _õí…Îñù5Ò7¨Ñݾí$ èâ·ø³­b†*Ð 5 ù6~^™îôw2#&Dõè^vÓpe¥µŒI%½Ò!DICó�÷ó›ζc�È4•]aþжlT¾ërÇj£š�å˜oÆ Ýd{Tø rdî�ªëŹï­ªáp73ß’Ø™UqË"ó|=Á´b•‰ ÿ¾’ô¢”q›}VÝm/ù{nÝ„òêq 4wMGr!òøÙÄî /#ß�¤»ºä êè¾1ÑûäÛw©&R\�#¢ó gû©¯¬F«L©™ïg2d>“vQ ÒJ¬"óbʯðo7—F"ìBVï£>ÿ,aB¥ÆÞ.Â$´=е(c1BR °^‰@1AC؈1LD‹½•g6�`5û´Ë6`{ªÌЬ1?´Lìƒt°*|}"r_«·N¼ b»†î¹ð!ëÑÊ8»óÅ—bº¾K–¯€ð¶V0¿8h!]&§¼ u]Bu°M='Ë þ6~�bþÅ�®Ò?µì$€4ÔZ<˜ö0»Fª>uÇݽU8n9AÓ€ô…5/ˆnnÏÜ0„7ÑãZÂèéKÿnJq{%D�Ëíó¶DÝdh0"7ýÙ�¬éÔ#ϦNK÷�õÆÉ¨¾%Ï9¶µ¾Õ ÜÂrãEÑÚŠ¸‰ÃήE–'«e1€D¹¬ g! ôŽšZnž1OidXÍð³ÇWž›ËÃÛ,Ya88<õa˜9»þ&0˜#Õ¿vN¾@SÔà/zl*¦2ÝÜÇ`w^<¼çö�Þ–aŸçsw›²¶�3 #£náb åðhœ¬jÄ¥á ëý‡.§jz°ð†§\:×õV>güEÕU"}““å§Wßqk7k #W ~t±gÔeXHéQ’ž¤vÅ0©8V•ýèYý©Ö¸ÇÒ …Ÿ¶+dN @ùI:‹nŸ°Ï�Þ[4X«Sçò Z’@¶!0ïrCÁš5{Q‚wÃBf|ïÂŽ8ÐüÁ>ë™I©>¢– ßèQ O}âŠÓŠ™)2&ïYÊÃÓ¬¥á|{Ç1fñ„”ù­U¥(k昹œÐ…~oÝFí­’Emob3 ‡ýZ³%¥%tÊЂ^–¿ó¶'ç–¢ä]mvw®…ý™®ÄY8Zb©—ân Ëþ8G^%Ð’<Úæ½ ÀÛå¸póªbµÖs)6á&ñ^‡€Ò�É0ÊmÐ5¢ˆ³@K�)‹â¨É†s¥¾‘¢¦MOX·'ãõ¶@Dwʺ�4ÔðmMf›åEލ;FÅÐγì±wžFO�Ž ÍËf·ð¶ÇĈ{é«PŽ<`’DE!;Ò}Í+4d›o.'Ë:Í.iæ§*›k¸Ž ®Û^Ÿa¬ Öv�$y.G`bHåd lºâ»eµAy|¯±õæ#Rìç’ CJ½ &‹: -�Ø +"_óêÓ¸}�œÂÙ×Ý‘ZÏu„#»ðýz•6%rüfpë—ž0G:߀®ÂãQd,3ì@cÑ9 C©¦ß¨ÈÖi=ŠŠJ‹®;ÁlÌ…•apᦔ Ï5ºÑèô­‹ªï7»›ÓŽFM\„‹Iµ¾Y‚E”Qkb≆'FÏQFóÒYUÊ�Uµœ:•U^Bh¹5·ùÚq×Íe™¸ŒL°¢¥lŠôàªèF޲Òýo-K½¦ºD¤Œ^qÎ[ ãªç@® £çOzIØŽ%Í'LXõ�à*ɳU{ÑæãÖ�ðXÍ^!Ë-š£•)S>½f²‘óÄY<›kݨ5þH….–Õ•Œ ”@¯¡Ð·þfËòÇ*È(Ëd)‚‹3(ê«°Ï_ü®Åszˆz`X茧¹·öb‚µ“7.¹3ƽû¥é™,{ìcâ¯_Ø t÷˜”Nl£¼ `$€ ÕÖš}§ÞˆÃ.Zߤ:@[Ÿ˜¢àg¹ú·Nyp~ÀZO½÷R\ºý«çÕ×Ý5¬}Ü !7cÿ{ÃÎj?Oážä‡·O#èfÓó Å9§vØàáGÊ“ …–d©ô&‹èæ‹ÆžcÀd†'²Í`2 ³•Á쭎ɲҔþ¸ë`ÐJ‹-ê¦Ì:]ë ·ÂŒ{RdÀ^L°$t( [@ ¬˜Ô ãáù\ëÖ€Óa‘|ýB«vÂÝYGaø¾ä/Ô}ÈoÝ)áÓð`ÉÅ4Ac#­l~áj¹¿ÃžÀøå‘v�îKLBö×ðG=/^"K½fŒ¹Ó#^n( ¼‚¢6ÿæSþÆU<›-«)@íÛd_ YJ@n~[¯qÄ&ñÛØÒ_¤-¿C_ò€m§¹*•°Vù€¾ã‹äÁ¤šˆÓ”iøAp®¢¶«Ó#I@{H ‰¸Ìô3*·÷ëÀˆ¶ÖgŒ¨Ý´@É™¬›+$Ï|>«¾’ö25`˜ÑyF:J|ðù©0R žOËá°B¤�¤¦ž³î­F��xzp;‹z²Œak…á"X3xœ›òÀËéÃJªwinRËA È7ýocÕl[>U_ÀÈiçêÊïI"Mwz\dÔÈØ¢�h Ëÿ|1ámÌÚ½”‘§/WØ[éýsØ yB7X®ý½Ê¤O`NñKNÒOO"qSe|‹!§k&ë 0€¢&Æ´BmQ¼ŽDüÈ)ÙØš„YQ¨(Rúè|xŒ(Ôç,”-›‚÷¿i¦—ƒÐG¨�_:,²Gž±êÃkëi¿©|TO�¬f™…zby†73¤ózÉȦKP–¡ÓæúñîpÝô,Õ— = Ñ7+.åÑ@Å>íä†`ÊÐUäÓ6¦´ÖyÖŽÓH°†?Ê¿‹]Îu%¢4ÖÃÛgTbûNP¸Gfi³W³ÝÜØÉL(�æ•O±Ò‹ÿ¼wû¡Í�´Ï0¥9‰¿fWþì7I“!qÞ¶—¶ý£,yôÜVÅŽ ãb™ÑZ—ó`úP…�"/›:Ç9¢ÙrÔ8ºWÂB�u••÷¥cñŽ}Z'É劙¤8k ^«: ±Užx¶ó¸j öa¸e�ðÙÈÀ´´:Y{VÄæëÉ©T’§u&a€ž¾þ$8ùö`„âèk æL±�^ éÑÚû¡î¯Ðòy´klbC©m®­Vbd�=”Å •!÷{R²ñ�B„“2öªF80·ìÃK0/ÀÞ6-íÇø„ë–$s•ÆËË�ÿ¢yÌú™3WMù%®Îæêï'%[R,wkÞ>�ÊáDleÑ\i}5£™²L'ÌÑ8FB]; ÕÕŠ=·ÇuH}j‚Ú±žŸÁ½-L;ßhA@iîÚ¾Ì*`]€1ÊéT”"åÇ1¡b¬”·z†‹»B¨õÝÍìZâ7Â{(Õ>9•]…ãôKy ã0¹¾ø›�¤+ÐÆÁ/…±¤!ZAþ0փш†Ñ& B¼n’n{p äË!†0¾·½úŒf¤ß\nO˜ûë‘°QâSJŒŸfI’ äY°-{=ôUUG!óþ_å›ë¢Š ZR!³Hë¼ñUí55ê‡!سXÌ~ó@ƒø`eCÖI$Ds‹^ÎZLÞw”¨+L8Ïøúó¡o" r ¥E¤ÀÒº®—|·�“ßeÇ-Å=ÆÎýäÁrXYb¤õŸ@ÌuM¿Cû£C[k*æ¯qýhä‡ÇÚÐ÷œÀ‡Å¹CpE³‰BP8Ô7_ˆÆ\&„ãÛiF-X޵É Fš–Ö§#‰Gô�_Ni½‡\”’zv-V~pP¥©÷ŸÈT�‰#*ŒXU²Î§/Î"ŸI‘_Ë�äÛZÄ@‘Õ®{Æý>ömñÒ¢=¾�ApE+®¨5QT ŸKeIT'í¶×0mœk “�°ü—:u”ïè‹¡Ùdƒüs6ƒ� Ðé#¸ Ù�é}}ÓÙ€µà,ŽRy„?™l6£^¸C°u"ùô4ºsr€ŠaîŸå�k< nà�Ë.6ÏG:¶dÐ݉aL« x S>Þ,% ‘Õ:Ô“Í+ÅùŽóEcDâ�Ory€çZĨdÞT;2לbé{íÓÃì»2.óOöÜ"a'4=x•ľšBÝ=Œ�%?bo*Ø]CL)ô üŸ >W–¹T¡…¦V¤o˳ëÏ!ö„Œ .©—8韋 Î*Rõåû2o³‹òH›ãgüظùÇ"hœ}Øæö_<ï‘&ÙûÈ»hN©ç¥R˜,H–ö±U9ßÖA…-f\âeº•0 úÙ¢¿’Ô!>¡6øû-:¼&èÌGuÆFŒz ½Ã"ƈ¾ïLÈàû[Wz7 Sd¥»mÿ$Њ¬»‘XSÓŽA(ZÞ‡³#n�±û鲞ѱ>(ÄoÙ²-Öƒ’u´„Òœ>ø§?ë5¾C„§vâY‰ ðd¿#Nw3¹{8Û8/Šh©=PôÉ`âvæq<4�ªþŒº±à�¤c2Š}=Ät`¹S9²OX›ƒÇ­OÕ|1<€Þã+Ô"ÆFu ö+Û¹ í¬µ}ÁMj]6 (�0ûbBPסËÉÔ)׸�²Ì0'ýcã+2xH›)VsýA'ƒ«Ç`Ë‹ý� Â¨Ëw ç,Z‹•\)üÆ)39õñQ»–V6ßJ¸Op˜>›>Íö4²×têNˆe�…i=-f’ulƒ ‹�*¹ÀFã>„„y?bƒ¸J‚3l·Ÿ.$Jäâh´Üì�Ý@¡pã?0ÂVËÇï¡á¦6åa *¶R¦2óC…ÀÄõ;Ÿ°iY ÿݧ˹‡ïY)µÅN³û‰ ó•;^2Y .;CÛT!¤–›¤çlÍÕ}ìÂŽ+û>ò¹†ösJìÉáÓ¡2A×NKÑj²:ð¬˜Ïä†"ÿ%%ë¨ÉÝ:þ›ã/Ëkš1_gõ ô儸áÅ—Í õ À#c•9*"8&0‰±Ã‚C;n8ŒÙWÛ+b¢kkÈ‹Az‡ÏŠ-¶§€x¸òx8!T”paé8p®’nN¦=¬Š�}[†Þkpδ˜ÇB×ÔãÐÙµrÊI¥‘èìæßùT\iÄß('=ǸÀ�±a1ÞÍ91úü9$lúÁ¿èÇIø‹;í»CÌ©v6¶†\øc]Ê& ±åêÑ|7YÇ¿4o‘;”êS±}Ü£he>çK…Æ!PJ-ƒÃ>Ý`¢ÞRZž!ßêÃPÂ܆ª  ßN0ÌÑVk:#ur`ÁÏé ~rø8ˆ«°‚))Wv"A˜Ï›Ä¸ä鎿„f†ý«ç¢el“uë ·|‘5­Žì÷ú50+s¸¸®l[`ßû¾Øë טá.�ŽÉ^àæ¸�1=o·RÓÑÒïBõ&Qbzô”‰¹é‡¼&_mî'%°Di��;tÄ5¥µ××ôáFÓ´kÈ]�膀n<Ì ‡ßZqïømcMº­áFfr1ÂÀºGBqÆ}Ô¿ùvêì #YCÙvÀ)ä`*(vë?Œ r‚rùÂÌGÍ:�¿2gAZþâ´uÆÆÄøe‚¡™™Ä]\LÒ�’ƒ‡ù¸C8Èh¨fªü¼�)ög¯‡û–GH¤h¼�ÍyS{gœµØ`š5ÒDðÂË> ®Ì4�Ì@GMÓKÑX¸YÛªëƒHêêî9ýáAà«tÛÇÝvµ³ç†Es “о˜·”ÃÐø+?ˆ‘"ÝC0z¢¦(GÇEÚ�ìg ØÌE {‹ÉX@J¦S¯4ƒ– pZ‰ôýRWéêèÈûaHØÝrâíš(’s™ò׊zµ�õ(—'LÿvsÕy”sûF­ã¾c=a¥ `N¥ßzí4Açxf½Ì®S¡ Ù…ÈõNç舃JɸΩŠ0ÚÖ[äž³ár5càõ(⢕)l?B©Ö¢÷ôŸ´ |ÎÄgîŠ÷1‚°@PŠ–ÖM~@–U¤zou¨œJ‚Û ˆÖ³÷‚ÁuÀts“*Z½>wÄ\±.TÌÇîÉaDt`‹¥Mn¥ð”®p53Þ?!Çï·¡GP}U+ÏLQ‘¦IµÊà‘)w­¤$�^æä^[צ@ÇÿÑîb6Sña’}+:ªœ$«&¥#t‡œC°²¼Ã7FO¦²~xâ–ýŒrÀ žé_3J#•ÍtCUË–2Fïe†3 ( 'í3^*»¦±Ç,圾_CÙË4!̶Âa8§GBá5åƒÉYÚá/ªåä„dߌ¸žG–±âEó8ÁìñÔׯےÔôbå@ Á¬õ~¼<ñ}[„…è Ó›¡ŸAÁU©‡B¾ÛŠ[œ-·} 7�†~ÛîXLdVC8½¢Ï5w¥1û¦C)¬U,=S–±Œ³*> Þª?Wp(ÿ˜h’ æ={0×Â^u@Z¤Õ�¦”§[ý 1jd÷öCÇIU¼¡º¹Únÿ�èf]âtf¥�H±ÃcS(¿!õòœéàVýÈ/ú»3“vuHë×é²Zn¥Ît"/g}J'’‘óe,¡ã]޵Êû´^§lÿ‚ý¨\ÞãÆÝ·oooDP~.§I@ñQ½z(®µ=»ä”Z”Ëži�,��™*×ù¾€2y«� �+ [�ïMNŠÇÃÍÅö–=ÇåV^ôll<†§Ò}}æbÒµ¸a ¥ÍV¢L˜é¼WYüäéPˆ¢O¦9—‡ï÷¯ðH*ý]´æ²«“þá(ÜXË@yÜ6Xªð¤—ÄZvJ×ëà–Z™Zå¼¢]ý»dáÝ ¾†ó×®²Òì7G=$Ú¡ÐÅBÍ®­º õ> ÀzÁEÉKKÓ%´\’þ—¶Øx©_l¹{¾é?…X,—ÿªÇ΂™Ìg£1Qñš»«(‹Tòªè†:]1¡'±ÿϲ Ök˜Àáâõ$�šÞ«bóqAÿ-6uô­0ÇÓJ©ÀR<€ Ëê Ç¢š¦³}Mf÷AÓfþéC±@–6v]É‹Õj»ÊâÌ ëŠk¡‚•=[‘+¦ ½$fšŒ ·äµÌJ¥g®„sËË¡,� l“ª‰&ìM¿ á‰éO!Ú>2›Éîy0µµ6»U–ª5ÈÖuñÒ ŸÛ©*³c§¶ª¼NÓCa�ÓaðP²@.×*5 5-`÷'‘hw‘o>¶ÇJÏÙS¯Ö=\„³iÅŸ4z®ÓÎÉÛ»K<Ã{¥Ô{‰ O»|HˆysqÌ Æ©Âáwü¤zØ|üÓ.·:PhI]dÏ?<ÍHy­j0Aë»êÚ»2 ô=SÛãÆ75Y›Kšæî´åÅàrq5Gu�«:ù¸©_­µ2Ùƒ–=ìÎ%aW£¢qœ§xßЃ&eâÉY)- .%µ£ãšÊ*õPÐ3oÀñ{†—Î�tH°—"µ�ÖS€1áâžNs4/L�45Pšƒlä¶¢ÍÔ=Õƒê÷½ÏHiè�KȤ˜ÆÊìñ1¢¬s%.‚©úöµõp´ÕX5uIÒlÄ�^¯�*¸«^þ!{$F¯áµq‹µ»§ð^%Nqé]7 ;Õâü7Ê^Ó׳þ¢põ¸{¹aÊ�¹�•aüX;0ËþØEIŠHý�ÀÓ©ÍT§ع˜š?‡E—½´ÇnӀȠª; \4éKJ¯R«ÝrPO§�>Ñ.ì�ñ_Jðš·T? Ô³œ…+‡DV3"%‘ÌÎÆÙѽT�÷ÐÚ£öF³ÀÊ©~âͧä#ˆ2Þ°’K¿æâ0_À¯yÝ\ʳK$Ê®h¼Ù"ì±U‘tìçˆ(Ból¨¦é]Íû?�ù¾xöÛ0Þõ÷6cŸr�dùà'ÕhÇ"͹n… '‡¬ªºZÔ4ý±³´w¦M V…,"v'XDù/u�sN§®�qq5y¡®L5ƒí^Hž7J€ú¹©¾Ø"["ªUÝíÃ…>ÿ(,#—ɸ¼wrТu–¬'ôt¯‚¿¸éįáÑú�ï*Žz1©’�èÓÀ –ù æýÑ´»ªlnÍæ]Ÿqò²ü,pZ*ø']ýö mÝt<“úž�yç·.Œüã‹à·µ ØY”û:·B£ô0zÊIl€b“y< ™{Ï&À1ê¥Õý}‡ oÞ ó…fØh5Â•Íø>éVÊ œ‰"f1ð”&‚Þ¯¹Ýl�¶Ç8«÷,‚Qü,{^³nò°íyȳBZ²¦_êI㣻àc«Tk :„�œ½!3ŸzËb“dï!Šl˜2FJl_³4\ζ‡_8´êOC¬ûc³éE¢‡]œw”JÇò@uY |D‡?&Äg_XÕ£vcCû0Mÿ4,95 Ô ,:)cpÌõ¢2ˆ=€¨´†`5 ¶‹ÿ:_:óÊäT<¯£Ã÷»—S6ÈÓMƒ=±¦\ª¹þÙɉ:/ÞÊG‘õ—RÜÅ“;þ2J€â"|nƒ½$.‘QiÖ,|f—s=ŒB•ë‡Ö,(ãjxFl0&0ã�ªóσ©FUF}[ŠÑTjŠ)‡¿Å2¯ žÏŠ_í®³\�-³Y½MçÎlóX*?‰&ƒ� ‰jº‚VÀ{eƒ"Yæ’`õØLŠÚ9XOxšA áSj»Ûc�³ì²±Ð‘>Dφy`ãcاŠ;&³ÏÍ«Ù8ê䙡v{²¥,Þ*Ňï8œèB­c´ëG—èv�Ë®ÿöK²çŽ =jØ's6–ÞD¹e3i® c0ÀÃÓ¾�çßÚf½¥ê…Ï*œZf�)Çfßt66Ì‚iwÀ£RþC|B åò¿0‚ÉÙLEOF°ùJ˜-4Azë5'îëPS³oGýž]’[Hí+øPæÒ˸}psRªób¹²r¼0mx\}ZÆ4{­ò½ 4&‡`iüjZ„i‚}”í[ìåhÁÚÎJ‹l/Y;‹—@4õO±íEÆ9{↰K¡ž?C³”ekŠ6�LÅ«¥¯D¾¦FÂÖIÄå�ž“=6¦´ã Ý/æè'6ÃLÕ(vWL~‰¨…ç:ö߈ vRÙ²kk×W½Û’(5¯á˜ÂrV‰äÁì1W|£�¿ ÒINÒü:‹)^KƒZN¢`îÕ ƒ7?>CºSU�C/~^h‡=9 ^‹©Rg´jqÂZ&&g'k†f±¹1NÝ«`_<û�K³¡E&ø‚¤Gx9§3é´ù¶“Ì­DùŒõøBf˜ÎDvåË:L�‚?üK[<ëŠð½ÇÃ|ü¦Tœe“½0YzV?a^ðÙâq0ÙN…BÑšU¬BõXY­ÃÐk+~ô†<$>YìP[Þ'‘/‰HFkÙ]e%m¬uá7‘Q¼›N5‰h±aVYiV3� ”Ì¡,‹­‘‹e›UHCTßÚ)R ô°Ð9TKG…n¤[mSsw³-C O‚tu{„71Ix°Vi&Yžlna ¥ ê(‚� Œ¥¿ýÌ6·ÖG2ç l‘pßl5ž„ˆé„…ø Â…œYûÔ‹ZðßèÄìºåEÖïxÂ%‘úp’ D‰�36íÑFKiZµŽDõªzÓÎãþ2Ñ#£?äû?#‚‹’�z¾ãcLÄQ gãdC¤o­³]šª.'Ç.gñ ÀÞ„¿QJ lÙÉM ÔêDR9)[ÿ”Þ¸ñwÚ…‡XkJ_«““cJ8ÆG†$¦ª�(‹V“¹\/d^I]0_mÕµXŠóÐjDÿ°’˜‰aMP! u ÿ>yán ýa;–£!ßóåí/Û|u�:s®ÜGa”@ÄÞÍE­V�©ËU½ú/x”‹¾x†ÿ ·5ç½õÄ–¯33 >¤( ßq¨/”Ìn¥“Bà䋌ªØƒ¬]7ôñzg <”V‚ åØË&Õ¿Ú¡œ­Þ—à k¾¾º.½Ðâ*c³ˆüy®Ú†_‡ ʧ GÑï¡_ŒiÁ‡§æ[™ys$Î#—ëc蟢¤·Óö×é�ˆQË��QÞ²œU–Øq¾Ò¾ážŸÊ´"DÙ8À^86ÀSYH��éÛ�J¸É|I©Œt•Ô@�ˆj[©¦<¢ x M¢šÍÊ x›‚ÍÔ"Ü}›Þ’´Ûõ÷’]�öôDgÀMR¡ÌïS<¢C±Lh�‘,i&"ðÈüÎæk|UèÇ›€Çgz�uuHõÄž.¨„8êbósÖÚ¡½Ù“•’*¤³hþó‹:08Jú±;a- ê­‹ /yÛWé_ìkŽiçòÌ’’°`éé’7ìßJèÕóžG»ŸTÛ}€Î¦†'öu£� ²á«x¤�¬ÀîŒ5ó08êy�«ô¼ …Ô¯.YtMƒo�c+¯g¡Õ÷ØÞÒǬ“tKÝ›}Nä2Æ^0mñÎÃý9N›‘߃Šk,Zîj Â\ñ"ˆÏƒ¢yŠTj4!„Æ:Þ‚¬(téô ÒGb/_t6›#‡xUÍ G%«j­Ûã†Éí®¼ªFî鼯œòY#i ñ Bù(¤gšs^Qáwñ„wÖ½œ*®ÔBÄ£ˆ1Æ '0º D}Žû&�µ€âÿQÒ>Ö�d Îè_¬‡É„ফ¿Y3GYäë%JJdêe-T¹uÕçŒy�wØe¾Ü¼àIÞsÅOP/¾ÂæÑR®Ï®T0wÛÓüÊtf² lÐÜH× MÝ 8‡¸Pï‚¡#èíQÐ�¦ú2É…ô_ÀÚׄrŒë€õ‰ÈIs8æ‹´¿éïÌìrD¼›:[îb’ÝÞ.e*ØÕŒ½›>§}1ŽpfÅ­ä1tÙ¢¯¶™²�šhT#;�Z,מ›l;ñÈDÆ>uhþV@+ÿþ´—ì•=Ux~Ò꯺<{Í<2uKÙ>7�{ãaU}AM`ÖÂWy­ éÿ`½px†òÈ›†�sWªâFYvr¤kjè@Y³ÈèV[b'ÒOÆ„´} f å²HXòv9PEÇPŪtmðg6á¡ý†5¸N,l𣋔 ¤Ýæ¶ì£è V(av·RŒè@}ð“WJŽÐ—Àp{rg`å|Š {ð³-T×0ýµ{lÿê^¥‰>ZæW#ߦX’âð³�¿¬^)Ïãnžô˜˜ cËm’®Ô¦Lg{£aÅûFäíoÇ_y¡;¯‚ÉܤË!º¶ ¯ø½>Œ,O ÕÎ(!-Ò½£R)ñ 4ÐŽ{g yìŬڵA[Œ+`Î9V¶P_g"Sèn¨×¡79ÀÙò#€ñƒŠÏ“9ÎÌdž¦!ÓP¬é«÷mL˜Csš¦³\l{ ›<ý@¥^šÈÃ.ØMW/yHB�QÖæ”= ¥‡”¼&–µC]7C‰†õÀÆ!@;Ddt‚ÍÓ�óÕ¯‹�:<÷X5“¶ŒÔyó˜q¤i‚D2…ô½“š,|j°4RØÊ›l»®xâ¯pÜÓu²¬É¤xKäòÝ|Cå{9Ý.B ²}5i‹,³ø<ÉUN´:ù…P¿ viI±ÿ{e:û{ë’ÒëÈ¡ëúR¼.žþÕj„g8�ÅÌÉà‡Ö1Ǹømôd=BÉâøIA\PÄN¨-ŸøqÈdHŒ++jzœ]’Ú°™³/’Í›ƒ$]Z6(Œà…öN¡-q>6OŠ�A¸Úï„x÷5È!Ö�!+»rÿ‚ìX6Ýëgve6P[� Ïa«ÕcCgütȈÍÏ’.ßâ‚´e=£¿ŸOº×ž#xNµ‰½ As¡µáÏf†Á3ÛDd0÷G�^‚šè1ë€-ÜíD¹�Ñþ€q�¼Â²¦‹xÍ;áxŽ™Òš!³Q3ø,—ƒ X÷ÎÑ΢;™p\¶Ð€A œñ;uÙ;g÷隬[ÔÛÒ&SçIHïÄ©]3·ƒMäöüj ˜Á6wQÒ^÷‰xâ%ýÛW5 ž…ÜôH-îxǼ÷þ ,*t&ñø!/\ZL/6嵜ù¶Ÿ9%LÈT�[j±�umƒäQ— ã… Y·²«ÅAðx¢4!Q›+ž&çhàâ$ÑÌÁ°K‰ÑÔÙÆÉD£FrÚ¶my�Ñ:ïÈ}Ó­ßûx†(°,iÛ*�\-7˜^åd;U{Ž#¯!Ùd‹¿{çÒÁÅÕaÞxD7KU?ŒÑyf�Ò«‰œ†é§:]¾¡½“ûc‚®À|šË³Øß�3V>ÇôÉrSºiäxÿƒ·gÂ[}ºf“CÓþ—vúÆU²—=³HˆJ£ÇîñnmJ„Á�Ö®¸C<à!ú#ÿjO-ä`•?¾QjU,Òl×ë)£Y@œÂ R‡Ir¬ âv°Ö„ÛûÀYM1�û»ëU™`ʸ÷m”¼xó2­ûìL8[°ë‰:,�4;¸ÒÈNFÅÝ6qË_j^ «ÍŸ|SLQ]¢ G_ÿ�Eµ'aç;é[Ø[ºNÙ8‚¦ ¨Ä  ­ðr¬ÆÈ¾¤|óȦB'�Gl4^#€š%ù¢eÃ~%Ÿ0Íÿâ ˜è”L�Ý”m,�‰ÿÓ¸v¡¥ÐlSyJV£cbãYb‘(®ý®~ÂzÚ@Ï_¼¡Ž¨#ÔÔ‘íÒ4Ì^$Ç€R“¡”k{,.²uêüO>ty.®²~™”ÿÂ-”¦!õÿ‰OòŸÆyC”5úŸcóàbEQÝ÷c�—ûBV¬Žœ™~r“êrúÖ%–hFà›ñ¯ ø9�;ÇÔ-­æjÑ|×ÄùÿÃ×ù_|D sçÕð, @'$å1¹ÿ_ÖÐÒîÿÏó¿t€ÿÝúP-Á�í ”Îëæ‘e �ÿ™[ǘäµQÕhs'v+’¼ôÿ)7Òÿ4W-b¼¡+þIý3yË.Â4�k+ û ¹ô7ðHÌ�œ¡ª4äÓhͧŠÏ´´ÑN¶ŸÍM#Õ8¤óOÿ“ÿkpcÊ’__ôz ЂLñì-ÙšüË®U&±UÍ\¤Ó¯#äü)2 o»µþ¤eYŒä”ðm'ù*@"\]ÖrgÇÝ7ì$€S0‘4¦ÿ‡ò¿ø OFV´ fHU™¸à/J`ÿ;¾˜¥�©ˆ©³ñÿ¬'ƒ°vhÚH“· cCÓrY1mGv;°'©5Þјðj* æ4àÿŸãbêìBgbèbøßûÖÀÈÆ†ÖÐp—#Ç2ƒ$âÿTòÿ4§¹ã XÑ(¾6ãîbº?BÌü”SÂx‘3›ú´¬¤Ô9îP¦sö~åàe£B¯Ø¤xOâ.¾°c¡ÿï|eþßüÞØuCèP‡)óHšo�ÿ_RLYàÿc¦ÔWôèþ¦ßŽh\´TÀ&"A1…‰‰R7ÍìULãBkÜ¡s²1ÌÓMÔ=¦þˆE;|×É‘ÎI\ŠE¦ÀÉaµ.L™.kóJˆA:ÒøÒñÛ¯†tú‘ [~7¸‰Ç�Ýú�a�<Ռٌ:éM‚Õœº¦Atú�CEª×¨Pµqw"JnE†3–‘Ù“ m]Zî8Ä»ŸÀdVĨ5I˜™r¾ ‡Û]¬¤ R­{rÖ{²½€DïH´E<}ÛöD‚Ù;ÂìH‚¸ÆcÃÙ,%ç5Ú6Ä\§ªÓ/w7´ § R°åð„°ªô«–Bº¼©÷I Q €Þó}ñ[EU§¶ y! Ý[f‹‹xP7Bá]±mŽõûAU½Ö®…tlûN°qS5ì xwौÑBÃææîè@ø•H�£*ˆ‰ b%a±A€Ôü2Ε>@™Ÿ!Ä2Z~ÓI2®HÆJûóúá‘  ð³S1gRð¼Œqñ†C4N¬h?)'7½¼¸‘勹¹%ƒô Y¥ô:�_ʼä½$è¬Íž¿ÄîÓï¿á"÷Öx�?Ò ³Ñ±}ꧬQ¿­—´F]EÐ�j¥E!ËÙ‚—òÍŽ�]‡¼.î{dÊG)éæ@ùuQø ‡B´œ^êZ·77Âñ–®2Êû£dÃkU7­a`õŒ3fÑgYSŸåêþ–¿žÙíÓmŽi&Œ%!àHcÀùFÎüèý7a×f}:}ó¶«öÏšŠ§,uíçD¦=Ò¸U|\³Ît0T‘r Ôan�,�O_Љ¥jÓÙ’¢û£[>:qáæXóXçh�‚2®Lœ³9 èz%mÏrZ{¥D�UâŸä”+2¤jw ; ÈKo,@ïÕbDßyŽ4ùˆõKB`D¢îÏaj°"òv›(À�½éò‘|†S|f¦vz9&wýéGzÀûE˜¨�O`à,í´Ýñ}0töZnuV9Å·+Sp?þ ±»€:Ÿsr/‰uª/Ûš(½�c/Ÿ¶çqÝ T>5ã#YÝ&D&ê²q fŸiÁ Ð ¢‡®_tìÅ>…ª}’¤‡à嘂Y:6­’k Y‰”v�irR=ÉSZmסÝ:`®¾su¶g`U78–ºããܸü¦Èi¦> G�;†LZBeÛ* ÃG\ì\)\cÙ‘3¦"sÑûÏÕz3»Y«ïà¤DJwœÝ ‹s⣌M›H÷buãf‡¦[ ×áO¥è?§$Ï0…+â0¢åÒqÔÓ )I5YnHû7Ž÷Qå6‰oª ÇÉ=6£ ríÀ/,¸CjÜ]…ûdI| èÀ«ß™vàØ×ø¾šÏkõ³¦%ä‘C»"Wê/$μ(į¬*¿ ¨VëãÚX©ª„þða¸…‘Ù§Þ„0k'VÙN.¹¦öÛçè€ר]â�µµ1Úïí–úç ì`æ5ÛÍõbO÷ó0òˆiÄ!3ÏÿÁ¹o‘…Ïkß\Ç„z)|Õ§°å QqJš§¢m¸k--ø÷?m³‰óô\ª2 Óþ4&¨Ç}wO;¬ä ÓC^½éŒ!©ûj�˜øÞ�ïQ¿T!në�Ò€!*þ™¸C-óÇ@TëƒëßöÕýé3»¯Už¯X“�EkûT951ÔÃ×ÍZq¹ç2éÑÉÆÏÿ ®œØæ>�Ù{´|!|.òoÐmë¨Þ=¶š£ãJòãnÂMº×Ñ÷éŽÀU®:0îµÕ`o$1&Yfo‡’þÔ«ñFØÒ¯Ú“�¶ü�«mZÌTqšÍÍS?O´æ1 ø Y#»È…°ƒ�î™ÿ›& zåh€]–hξ�ñæjðÈF¨¯¹K½ÂoŽîE"ÞÖ‚_øëYTŒ$ª[wâð„cW½Lu”�ÛB)Ó1ÂÚÁW¥­�Ò”„Ä�ûûÔgc{¼ïÆ‹kO† Œ÷·f­á?xã6 úˆ„F›S%r)7ó{–GéU©ö®½RÉü<0¥—MˆfåNGú(/z3RWËsž‰l?g«nª¸5‘]>Ó^l|§k 9ûT"c'ðf‹´mç ÂÛ¶<­,Ê{“L°}¯`wZó¢zEÀÎÝ�é(„œ@yHÎÚ+ÂÓ·HøÞ§} >Ô–„¿d…vÈ ¶â„6ÏPí|‰w)—XCë›û�6‰h†Ì_”v×Ôýù†’ÂU A5>N¥ S"EÝÓ­›·"7PÎËöX˜¤0¼Æ¡Hÿ�Ò;Ÿ¬8 *VòPO-Ø­ ¦ÐRGw©ëÕìqŒã=?Ý3¦=¶$õBh1M¢¯ƒõîÅÒ4u,3¸¾ïg’_žee…P z“.ø°ŠÄÙt¿4пa<“õ^îžùÑÚŽ€×怄ÇÐçq"ÚûÐÜ¡çB(-&žSÒ&D;EÂ6ÇüÌ j$Õ΃çõ3ºì¤åwb<ì±-¸bæì:+0k7Ÿgý îƒ.cëÛÆ+Y�åôn~ÑÛ: q~š‰ÀxUîžS —úƒ»m0¢h,ØvL’¥-™¨9çkΤÓB¬{6½¿ï°“|ºÚïF�@ì�µ$»æºI N3iC¶dW™ÇÄ+VH]½¢P/¡¦¦Ù‘ÓB,ý�¥™Á˜ÔÝ,ëíö€[ýK\4¬WÎkýbî†{{Mß–8î\o‡ü¼‚ÆÃ$*wÑ_ny—套òG¯ï2ÉN!& MH« ˜=:$nм)�c1»�"}ü}/�GIP²U�N%DU0’D|“4rüq þ�iiDzпŠ×[¶yUI ¦¬Ïˆ¼ã¦”ìáE#Ó"£À ±ªÿ—Þ&pVo|Ó2Fãýõ€a^CŸÜŠ�‘óe5P6 ¯ ·©¸Ê6•3úùõnËm©(a“RU?¤0ÅŠçG‘�ã^_)ÿ`^hƒÛ ,Ü” °í!®È²¶ò¾peùÙ$d?+>XHü2ÐÒŽr?oB´ íÊà‚Ò™aÏoˆY?6/ƒ¤“ê¼õ÷3|ôˆH¯ùVR½WBžWgn§¥ž·ÕTæMó(Á“Y¼0£5µäô³(ÛLkëÏDiV"•D‡h«%QÍúÂ6ÉMˆh@NCÑ?o'�_%Y5ïÉ:FÑOà9N ” ‰ÿÉû6u%'•ò8Ý ažœqéêh»ÏÍ™Á˜÷5¾ERåèµd™E*l%Ä�ÊŒ³wàÆhZéfM“ÕcŒÛ|éª?ߟ�„Wì‚Owáë „%G½·%ö²[;ìê8öbÙ°�>ÉÔ£‡&Ë™ô�ô#]nË¡€á{#‚±Ã<ñ­ôr. ŠöÚí¯�ûÕÞÙ7ÌV”I¿ ­Q×§‡ö†ö%¤b4ÌœÌ[`ï4×·ì'ѲJ�ßðÎ¬Ö VÕÜ2ÌÄEUBÁåìÂ1¶%•ÝÞV’¦„9þ¹�ŠÆKåß-ZÝ›áfž­2‹2hM9K¦Eˆ)ß ï,D|7V²3MÇwØäÍ_øSµÏõ§Bêý@ÏØHtb¿E–kˆ9ZØCpžTôx�}•J…CêðëÊÞgÍç1q›Ì ø.ÐmÛ6çÝÖ@síÜRrpÿ?Ó"ΣêþË3–iK™ß]§êÕw9u¶Säs¦W‡¸üSæ^¹Ñ¼eÔÏ_\½™’è›»�T ÕS¤°S×…WW÷Hoeu ¬L˜°GÉj¸�AA¢¿H4™ðâBñÔSvÅEç2†dmäuEÀ±ãÄÐ^»üÑ9� .Žû©ë+Ûƒ%Í]®è"˜ÿ€ìh]¸‡bíú�DJsˆ¸7 ›Š†é0$ÂöçÙnýo7!7Âàãÿ¡0¬žIrµ–ÒŠ:NPàšBXäËAÇ6EêëÅÈëZ {Ì»®búa˜Ó¬áº9—E¤Óþö§0ö&‡!³]®Á}è”µÙÆMÉ1åø 85$ULa¢ÿ{ G1¹åM6¯ì·Æ#p»ï¦¯1N‚5tƒ‚ F ½(“Aûȧþ]VpHBqÙ¥DµX�Õ ÙDpî”�׎ð˳¿‡¬�MjÔÁnSdµÛXd¼ôèú¹u‡ÊdÁ:ŒÜ<ïÄ#oò&‰>NûsøÁnZ2ÃpÕ‡ͪn¿&´Þç|6%kÆ’ú0²ó¶�ÄU[º£�.Ÿ²ÊmK›À .îUq°~–�)u?Yò4à%*vdîRg7QgMï[*³´ç¬#—KŽá¤3œº>§¾ÂÄ–Kw”ÂÙð&ä]Û|¦‰%`´m‘¦ ‰[3b"¦�Ð/ ïäÕ="‰ëmŽþ"Ú…—›î·—B—nç#5΂uÌû㻋ëÆò|Uþ‹Øú ’ñŠ� ú%µÙÿL­ÃüNó5²6¨¯Þ©šbW½½&šîJ\ ál9÷MÒ(‰›dÊøVqò€ƒvÅc^•žÇ¶¥~„娀PÔqu±„(£Ù˜P jˆ ´Ýà¾8Š®rjò,‚/»•�È|Çxñ6bŠtÂÕwC5¾Ç³.ª&.U ’Ú9 i†K)øñ‚Y ^�·‹÷jÞúær9:þ²³›õ…Š‚ôJÔ�nû´þÅB¬­Œ(J_ŧ'ŠžNHƒvžwoñáØAWp¹gß1EÒÇÄ ºÆø8[ÈÓ]»03†r´k-ðIaÑ úcÇì©;‘íA!ŽC°˜{ÝÜ�ÛTõÞàöõŠ€ÁŽ�ãè²ùIγN—éGÔùì¢Cm$Oö…¾aÙZì¢�þQŒö™È$çóçdºä€$»E¬Õê\Ž„ì®Ý_šÈªüöDœà|íd ¢Dç»±ÕÆd¼Jæ4?„y°^Æ^ž8U´Ú­6NK±õ5!ä– I�bù†N{ÝbýòŸûª[À½uàGmC.‘qï…~]‹s×ÏŒÇrR¼W6ð:àMøuÒq¢bà{¤f«€ qIww®!úz/lªŠäÂU&™Q.àw#w÷ç¢ûã$«s�ª‹#5µ‹Ûöý—œ”eK=>* ñ`õHfðê˹}¸_&ˬG,>žiJ‹(‹ß´«@|ü4Vøë dNLß�@Û¹¹Ô ”EæÞŸì6ÓyÜätv�#nŽÞñž58Y1u]QâÀÞ«•µæåzZhYFj Á‚“Œ'ðÓÿMjJÊÑ!{ô…£¬Ë«T­W@‹Ù¥ 7>µ14¾ÁÁSJúÍXwË—(ö2"Ÿ_ªySsüHiYè9LÇë«û�}ãSy9 Ìüô¥õ¨Õé~.Å_ü:ïÃkó!Æá6h,ÄSÖœÏD7š±îG Ý\9d ¯AŠYÕ–’%"¼jP}V+¢8OxbzÝFFár¢ Öå©Û¼ñþqv儇 �XŠí”Û8 ÀsXÈZ‰»¢?í¡úY�Ü®íÔÞ`ô'Êìµ²«¾.ýÔðd™j0–$|г43¹�;åztdÂLIÔVäÈç*ÍŸ”B£Ôø }éšòP˜Ãâ*€ÓÛ5ø­7e0]»tíEf£°¶ä×EÍcʧ@t@…§ !„ŸKhW-oRàÎ ïâêóê Œû’’KQe"§Ë¾ g+ô';‚c�ËdBzºW½Sð/žÛ9•IÕ^¿š>â4£Túí;•ÝP[(@dÈwè�Z“´äRL–Â!aéÞaÁ¶Un}òû§a/?Y-F£ñ}[b¶¶ fB�ba¿øR.3{ìqL-Rù¬L4MA‰l|§ãë§·„ƒ"ô�§¾–�¢2ã�„� M¬M™–LùÑÀð x> 0 ´¼»¤ã£åàÚôÜñõuÓ*D衜è|Ÿÿ9wì`Ã�(~¡‹…&”®Ž¦§I©—8Ø~üPê pt#Õ˜ÿI°´L$SÙÁñÖ0eP‹WªùÑmÉÖÿ @\Hú›M;].¹Ñ1�m'§1ý’G²ÊùDèÚZBb±{ ºV›¿ S<Å(:gò ‡Zx€ò¬ã…]B4<6™¹«´�U Ò{޳!"kù‘ß•‡Ï�2敪ZŸ�Ðø]�).`LîÖEú¨æ+ƒò¤�Dþ¾©ÐºÍŠ|@  D:c(Húù¬°�¹WEãò ¹©mrœ0¤êj�­@äKórÌ=)àŒ¼%©èóÞö¤?¦žV¸æ ¤°ÕèÕì?x·[�ba¸^Ùl}¶JvöшçÃú·³€õFé;ЬœûAú)p°žAòÄj]iAƒ [N0w–M8¶ ß›»’àù»Ro9AˆãÃį@æ¤I¸ŒˆÈè­ð&V>ƒ!„vJáÁŸgÆçëÁ7·« Žo—ðÅB^÷&iãáŽ[Q#• ’†m¢��êZ�Ä9ƒoæÁLBH{ö›7%&U°‘ ]�U)}¡Ìÿt‰,à9„åùŽØÒÀ.æ íô;|mŠŽ&d(ìã ÷r¦2ànW½ó†¦ÉaûöµUÐ?ȸvt}¾ñƒ eàJ±º1UR7!ëÛ²…êJ™Ë\ÿÀ¼àñgjRó¥'…E>Ÿn™§º"=å88Pb†h•¡Ù0ô(ˆ>“Òl vÔRþÃE�°ôr…á!û-›${B\ŸDu°ÕìTœ`ÿ £­#ô¼—¸/kˆÄBÍ_ÏÊÆõ¾¡JÀú°Ä�HqtäÖ¥ NgMÑ)‹Î”¸Ð“œÊwd|6à2ŠÙ!ð%†ìŠœ^žVEî_½õ¬¬íð…HàÁ°:8­”fFèFÚø¦.\%ÿÚ¿¼Z¾BrÄ…‡I졌Ûõ‰ÕÛÉ…°þQU�ê¸Îë ÛÌx€ånSôdè3‘ó¶†�É嘶û"ó¾od&.8ÍK}.ìÌÆS˜}2$Zê¤ð×g½ø1ÌÇ‹Uø ØÉˆ¯têûÞ`1}VÆô�¬^Ñv ƒ<ÝþÖ+µÛ |¶zÂôÚŸ�p‚KmåÒëj±ÆÕ陞¿û>´ÈƉŸÜG£5N©»‡b ]2‘y�>(´N]UxÔG´ÂÞíŒÄjÀ’ Kú�“Fþ Ûª4ËË‚n¬”,¼¢p~Éÿ2ô…c¨O©H‡ê®Øÿžaóžmåc-ÆÊ‰¨r þM%I ¹†�P}a¶0oÑ`�ƒlô¨S!×l•Ï`÷¬k7h†à£S¾ÑˆÁV›ä–�›{Ýo« Ôó½?x“‰™ Ô/雿õ4V»£=AøVšTo%¢“]ã¶Œ¹%2žS =¦Ý.†–S´sû9‘6=b¶™·¨K[ó¬TvWUd™Ö¡½ï*¼øc8Î^0©f¸Q–t0‘"®á%\£"(bw�´ú‰Ù{îýGŠ\§¶œ´ÔúNñ-Õ%*6¬äCöÃÔ’rYΈ¤ËD-Búh1€"ø—GLõßÈšmçô$Aþp�¼¿½ÜV;™Íõ}ª_L˜ÿ¬l÷[{¤›‡Iµ±Æ¼X@€RÐÝê^¿�n˜â <+_®Ä„Ïo¡Š`Ùƒù+MòžX ËQ˜„r1‹…Z+®…S¢«Ö7¼—¥í§rn@p`CN0—ð7ˆcÅU?;¨K ÖOF£Þ„ž#yZŸ§×XªÂŠÀý‚™EèÅE]Ö€½XJê#ïæñLs¦%ÕB²`|ùß7Áœ>B«âЧp�ò3ÍôÞÙÝ>�‡—”‚ð³†ÐÿšçJÍ”âÛuù-@ é‹§A¦éA*µ ,21]xCè™UèÂê†\¾¢¿´ñó*Çys*Øò¯>Ðu¸-ðý€7þX>Koö†¼¿Û“âcس�"nڑȬí)ê w›—ÚPMsÞNq1ѤK(:ZòGêÊÕ˜Æ ×ÍdqyÙsˆß�÷R=;?M°™æ�[#'\âÏÄ+f»/͈2!Œjv|,õŒŠw)°‚jï’¿ô ³ªæFÖÐt‚Ôìã¼§ÅëJÉ3„:obOØžI0ª9R ¡ïlbÚÒ)Í[Ø "`;…gÑD¬ÍîâÔátJƒäª¾Q‹„×áz+Wpl¡Y<„ý®~.û¢Š·ˆßÀT´„G+Ìæ{`#ÄëÉ"¤Vi~i£ªUÄò‘ùq3°ü,óUYî£+êr¹ãݯs†Ð”Íš× ²êIcìÕû†Ðzè<Ë”ábò‹‰SfŠ*僜DA†<î­Ö”ÎG¢ä¨¯½?7šºÁ¾ðÒØw…>oÇh÷\ÊŠ*6š×â” Ù=%ÿóA dÆíHË2y'ƒk¶úZz©Õk™sƒÈóhE†þá¾7Lu²4Ñ�R¨´ù•l®îú\Ü ®yâ~³gÏÊ«*³œS ¶u8&ÕÉ|_ÅÙ‘ÇHQ•HÖ…C?ì ûx¡«ÏÙcJ>pÿZ)‘Õ^ 0a¬™@"ÀJ<­éÛ8qÐèL¨DV¤CæÑ@Zó«MúA”¸%}mÔä‚QJP_ËRKQ«…c�¨g ÏÝg9‚$Ñ”¬$è‡èŠð:V[\Jâ>Qµ &3¸tŸ°[O;Ò±ø€i!Óq6Ge?²©Fv °Tø€>ZÞtC•VòtÆDS¿M™6‰ñh‚ÁÛQ^ÉÜÖ?äù‡©„õð&}jä€-1D’…òÛZOBa}#½ @Î�ï„Uá±ãsˆ_À=v> Î ‡|%ò;e”϶†äl†u#Œ5]ʶYÓꯌa"_aµ¸7œc[ÿåÒ–[#Yì©ë ©(Í þVxõ¿)gtLàé½+ ~}§Ð}àœŠ+ãR£ë5绕}™ Åî¬k&#˜XÚ¾·DÔ÷'.`ÈŒ­ €é�–XU�ÌAf D©lîò—a·’s¤\^ðÏ<)ŠŒã NËo¿« ü·U“Ù‰púx%Ó[ð¨bÄ¥î„Âv'�޼×È $*ç]¡•òæh¸Á¤b�‹ye´çG"Ê[Ä3È4=.|!�œˆY¯QÄ ]\¨Ò{Ð>7ÕmÊ›"X„…úC/^ ” lˆ,)›éÐ1ŒSèN=úw þÓ0˜6”°öá"%}Ó×M¢S†ê¨×úñL]Ž-%`^È÷Î?@Ì‚T,Š>Bìe-‰¶Nnö+$ä<æö %ß�5å 6;†^8y¶¡3ªv .«%3 >''{#µ_G÷#�ñ n&hÊ«~)WBLA´„Ó„dM Ó|Õ³¸Eä¦P+/ŽVº·�ÿ|½¿“Kb梇ü Í'}�OqÙ³™sªœ¢HQ{RýÓ¯ Ì5K¤þl™šãêá+`…u~bâ”ù»Z¯p�Ô ¯µ¬w€¦ƒ&_¢$6t�¾zˆý�ø8òcoþ;–é5oy0êR¼ÝÑ£˜nLŒûЭ­Ê—gÉT�WÛNO{1tG«&(àw”5#Iî®¶ÜJÛ²[½W…DÑÀŸIuu jšU}·s=X6ð�=EŸŠµÑ)Ž"æcŽŸ~d¦- íOc¼¸|l,—4�åýûÒ£‡+$?³ãóDu<µ½È9Ž–Tþ76á�¦qJÝ’¸¿ù|]YJ’5ý샧SüÍ÷àÒ‡þHÓúj”(XÁ¡U R«­rd_iÛŠc­¶ |y•=¿ë±¢a2Î ‘¹,–Ô¿’”ûOp‹÷‹“dÎâsŒ qÓ¸J\nÓ˜ÿ)KDƒßïRNHCs ÃÒžšÇxBþ;W8e}¹ÍLËAÈô KÕÀüH©Ð7º‘¤CB™¶ôa>?dJ‰Zü.û•oØÒæ‚îã äØVÜŽ¢S3+ÿs³¦�\U¤È ©k7ÑŠzt¥�Ä䓇ãÄðgõN­S/ Þ¡Q– M;" rUº¦˜Á¶;èº <3ÒRÿ®‘ "ïׂF+ =â¹¥sŽ#ï³^¸À»œ�Þá1ßÂŽÛÜ„¼#”î¬}n¾»ÒÜ~‚h7åjÑIa3w†Ñ‰º?»ÕÔ1š¥æUÑÌU!”¸'ˆ= ÉHêJC{Öúo³gbŽNi¿:æpfŒóツiÎË‚ñ>ñ„u)™æéq_±ØŽ$ÌþiÞ®R&£Yýœ_ëh žƒÄ.ÓHgUÕ\÷š¯ÈpÃa&ý²Œ�Ä®eÂÌ"�¼‡Û­Rܳð«2ײHH Ô|Î�n®—är7ú�6ÓAÃÊ‚ Õ±ÍnC˜rRݯçNU�9uá}ù��¸ gYLÃùùÁ?YXý(a*Ç´{ÒÝúI\Uw¸/ œüAGh † MZ·J×…²9G�ïxÊẨ�¶Ã�þŠA  ­Ô£ÓTým«{…gG&S ê[G8è@ãíi`+,µÇŒ¼¨ãaÚOÊmHüO4µngB©SkþlÞ5¿þÂúÀ�©Å…P¼OhÕô8 Êùé’ÌÓö,‡Ð� B™£§>Þß«µñh.»«Øè–>¾S½VÍ»%˜Û8Nߢóùû™¤‡³Éé“#·b–òsp»{—€Ä-�ï¬[½¡cÃ5²Œ±[C’­Ä‚Ëà*o€¨%Ã>hÇúV’uÚ¡~8¤`[29b¼vŠÞhI{AŽ7—»Ü6Ú*IeZû©Ã‡ŽÄÅ-ñ±îÏûmF©¿Ñ ÞR Æ¶S(¦_tºÞÖ”µ~¦Ó—¹Rh“ú4õNPcLb ÙŠÚÙH9 öžXß9+Þs&�–v @¦­ÇÑtš^À±õKø( ËÒ6 —Æõ� ØÖc| È£Âè7üäOå“tPüw=ã Ó/ýìÇø %¥Qb0½kÎÒiÍ`ýzôùo=hOd{�¬õWhï_½šî·eû�¹VZÛœž`rÏD“îûËÈóä>j�ºÃNeŸý^D³×Öù ñq%Ç!º«˜P×¨Ö —ÆSƒ¦ÓO÷<‹Áä�ÝF; 9O0„ãg}Ò«çnv˜º¨ú9=±ùdÏm©íÊ-ÝEU4g!,\÷ NŽ«Õ}Y®$ á¼óüYÏ©s¥cÉÒÐÎiÎâHD¤UHÀýÚIm•ücsš‚ÞÅR£œòõVæ—”0úüçÓ´m/¯òÂsI>04hS½cÿç•”T Çç8¨Û†ŒÏ¿qá+èO iÄmØ“Ywã5¯ˆKË{¢ã2ìÁ©9~ÙÏtÕ) RžFЙ13èP…@S ÝéæÜ«o™e’¼@-Þoð‚®�OËwñì´Õ3j6_4Ù W“„©Ó¹ WM·‚$õê#—ÄOÿ!’"Ć�8¶ i¥…³ë—;«ÞÖ ¦ÛHÁD6¦¾k|Bdø?“î§{ªáðÙþ�¸S†­ÄS‡Hx¨¢çÔR’l(4_Œw»ÿ9è°|Å]Æø¸Ä.¥&<)hÕd*Óû�š`ïF¦›>`2ˆ"‹qRR¢€Äâ�9ª¨§1ÓõaQûÈ Í !Wàg–ëýž!ã£mTo�ƒµLÂMQ5Ö®]É@Åêšé›ÛGrøx=T(h˜<šõ£6(¢'î‚\ºjú&qÚ®&q¦x=i‰põ¨f:1”=wc²·’Ý´‹¼ò!7ºIAYŽ*EÒåW‰ç³øJxBqAØ õ¡5’=¬’�©íY0ÜVFgòžJ’9¬ÕKaoÅÙ„-�ŠÊNØDÈ­(ô’OS( ww_×�2ˆþ(²½Ð‚ç3'bæî{æï· FY%R1Pžá-SHÊîÍñ îWHxEå°;˜ø›RSÒ,S7v*‘pƒÂ­z¿{ál±'Íþ¤é€&ýüDƒ¸ û~ª-ÐàÆäÄÇGE< ¥Ø!ôÈNœÏòÖ¯T ©ÉteÀGb¦óàɺ‚Ž{-AÈ•³²tù1úû¸P–­¡Z©“Èp»¶•ûÖ.lÓðÝ¥LÉ›9Ì\Σ;�´'©G]iþs‹ 9,±bˆMóWéBâz_!Ôú‰“ûœoÙê�µ‚#ü8«¯nZ(ÍbÛ5ç j°'L³¼u[½8ב¾œ‹Ò&®uùA3U«®À2lJ¯PV_ÂÑo“ìn!‰Ê>ÁѲ&ER; ˆU¹V‡�ÜøŠ{¾€Ê'çÅŽæyü°)ñô=ÐÙ0ÆBç�¡”Ä j(RjK“ek|Qõ&E¢: �ìjâw�—éèö^¾XHŽBûi­s@“`"�E±„Œ{—'‘E …5ím$I Ä!ªÓ“`ZÜ¿F°Î·%ž˜CûöÃLõTÞ‹xèBôæb͘¨†ŽÎŠ“©~V¦@õÃAv•._Ð>¡¿Þ[ö�ì#‰‰‰j¨Þ�3£Ð{µ8ÚÀѬ¶bÝ2ÖÑ@�ÂnÅ ¯ýKü΄÷sáó„%ˆLï+e“ÃfY.š£vÔr­è¸M .\‚2í0Ec =ç2=c¬Ô_%·À/W˜ È&)mu6È5˜[âaæŸÍÊ(Ö‘–s­:ŒõkR+¦H6Âôí9ó6À®‡á¢4£ä»ÅÜ‰Ê [üÕñ}ÊÎób’£äÚˆB´’ÙåmOªÒš�šTcE²1dΨÊ�·*-)šb’ÞÙçoÙ {²Å!g°ª°lKØêe¶ye+ ‹ØÁóë—)B£ž€:ð a襵SŽMqò�8tÁ_t]Ú{�ëÏ"OÖEÌ>œ‹˜ >üÐìPzMñ}Á‰7¼jáÛà¿’öækEg’7‘+§õv}¤Éþ‘ [ÖîsÉbn�/îâË£Cä`µ/¡Í(šA—îkIcF1”¬?uúªò¹Øl]¼Sò×Y*E„¿Íé�ʸû»ÿPo<…Ý©X˜yá�…|*y¢Á˜èn¯s6ö/B.ò“�š«ÜøL¡Bq*.“�\ @”D¬æí°ÆÈ'�0#(ÿ7 ù[Heud¸4‚«:Q¾,–zdˆ¡Yå©tÄ!ÄÀH¡gl º‡ïg #N»iÃÛ¶n¸Ö[`Fx€œÃòþ¨§vC¿ëŒú§1Õj¼=#·Ä™«Yqøï^”‰õðå³BÂhÕÆîˆA0k7¼ ÎÓIrºm-�»K¿´4c†—fÈVÝQô�tF¶õlŸ·½:K2ÏÀï¢1Æ€Êiàås3_ò…ë&ᜡ/bXàÐà ´œmKào¦Ñ'ª&7—yÐd3ùós�ð+F§lÂ5­‹åE&EÄpëËš�FI‹Øà9¥PÇTWåÛ~ÇÊņ›¶%Ü­ëé,žÿ�mÀ,í݆ÙÜùѦû6ù éV® Ö= ¦ˆ2Y[lêד½«6“ÞêÁñ~]hJÉ6•@÷¶´¸ÅT5N‘‹_Dz4öµßÞcHSQ]ópŠΪ$d–½¿w³ØcE¨"º•÷«-¦&5+®äµvL뱫;{9Œn·±&á0bÉúøÂƃBØ”×7¨å-:Ñ»C–7͇ŒÐÇ’Vsð9ËpŽëš•um´&Áë8G|¬÷”—±ª-Giu‚#üã¬Z£zR|"±È´^…eà2ó�áí]‚þ˜2:2}‘ºñ©€É¡ÀÅU(Q"U5�sUMúõ‰²*H;¥¯9…kê¢E¸í䎬É7ÏjÀ`€'÷XI›�úøž8ކCô"mµnÒ,sžWT•$Š›1¨Z¬Èý‚Uë ùPs!‘èŒ-ëxÔ½·-û<®Dÿ£ õvz!ZË«ºÕ– ë™ýÏJW0r´ÛÈzbº™ žOÚçvÁ"J �õåeC%5Ät…[A�ˆ6h3Ø33¹T Ê-u[{Ш�¼�àýÓ¼�)œN‚Š_S½~-3O8«ÚðÅï–å¯iM†)Öh5�~r“^âÆ6Xθá 9jŸ ·ÊBg5þýôîW(ájŽR­ú+ÉÝJ<4ÆŸiµòïä[…ŽNòuÃÀGtÖñ�œ‚7y1@‘'ØÙ›ìöj$ÕÚZ-fÅþoáprÞW÷×îoË™3Úé ©ƒÊŠU§NÏ{‰Äo|î“áØc‹Iœ;÷úœžò4àïôœCvfÿæB͆ÿÝÆËvý™J¯²{ée1èÆ :�N>?õÎÇmäxÚ1®vÌùÀí±$&o(ô–­˜ìz¨§y‹é®§+ó„‰ßL¡ÜH÷2&sf=TXª'Ãö� #GCÛ/˜‘Eµëׂ/úK‡U±}Í:±~覉â·î]~] KF­!Ù'^ý_û`%2²f/œ:”ã2ÅÀ¥ëàËœÜK(¶qνåúhs§«€H³€6ÈÊÞ­þÌŸÅORuð úv,Eä(`z�Vülñ%¦" ùbtÏÃ5{Ò'©k½ÕeªaÛ ´QÜÌLgíVRÎTÛàtÊ5šœ>Wß�¾-ëö�×’ƒ³hTÉÄ=~CÎ]ÄN­Û�$E-Nß])S[(‰!p%7+9¯Oõ¨F�Ô§î¢äI·ÊSg0lFySµÇŠ G«ZÈ ýVäÅ ×ÿü4Üçm,¿‡EüòùÓ=³ÏDÎêZ!ƒ ™ÕJCãëÓe°UD�é&Í'{#[­o|¡±ñK¶Õ·noÑá@4§Ž²N€½ Á nÓj�pc¼KøÀž›\Ú³ìt%ˆázX­‘NÖ�ĨcäîaCƒf&_u„3z-d­!Xfª—’‡.1'åp¿j½^®-ðóc“ŒväG#ñ 'ìÖÇl¿ôqÞ©ºæñ£ÔV§ûÈ%YXò]5À›Hqº¯W%ËD�QËü.м¯å†ðÚÑ©ihX‚Æ´{’äMw˜—�T­§�‘&þ‚1NEÇVæ@¡Váà¨{°tR�£i€prîýÁ,'¹ÝºM´ÖK‘d þÐl2&Õ’+Ö@XI:K†ä4uuEЊ« )“�òçn[‚CÓQîC‹¼BÝõ:þ…ÜAU$ÿ¡Ûðå ºRauH_nÿ,ÆÔƒW�‡A [b�îÂgßåSlIˆ¿T+¥hØè:í‡0S €áÈ5÷‚\°ã©1 ŠV$$mÇÁ¶b¦,EÞVÖ¡ª½¤'­HÍšø‹5Ñ[GìÁŠÞ]Ÿï£TÐoR8ÝÞ €å|àÎ>þô0¹÷èûb@ô’îÒ�ÌOBÚJ‹¢µÃ·òÈ�¸IÑ›)!±y€hÒ<Üwx² ÷=çLc,ÉÌ:)­ ~B¬û°Ò�×C5»kÙÇïÚÁÓÚž³?ßFú·x«�Áú1Q¸(9‹S/¥À@RZÅ6«â„#Ërïp‡ØõÖCªXaõ&z° Öû§&¢Mµ0×Ößñœã¹ÆŽ«Xû2�,Þå‡gû[\}¬ÖZE·¹;‰júZÎÀȔ¾Mˆà£5÷ŠÀÖtާ:ŽÂ<#ÉuZ¸@øD#ba¶»b¹6V‹/Ë—x+¸ Ó=}'®Aû³Öݘ˜�Éç6zôé홼ÞK·™ 5•Sš³ Tó÷ ðjqÄ™p×�GR FØ> ´{¡&‡ùÑ�1«Øò‘¹Czì8]wØ DSZY‰7˜ú¬È5çÉ:œHÝ«ß6‚-GC“~‡÷>;\‰þ‘ø/ÆÃj‡¯�çÐó~Z{ ÌÅ�|bªS» ³8´Çë1f U†+BãÏLþÔ˜Kà&AËïø<8Á üoœß¾w7vßWÐó¡J�¾ypíÓÙE¢×óß8n¿E�ùá¹³’éìVa{×$¶“>IÊž§éaN?]jCö(Uk] —ý÷”ؘ)Ÿÿö}ŒöqÚI—Ž(VMæ$…W‚0»?På7WZIYñÌqÍ.•¸ Å´¼KyÅvúRÃÌcTI{Š“ñâთå Ps¤˜ Ãs€umT“>T†Ì~šš{Ëú¬÷p©-s¡¯µaÏ(o‘† ßAË« \ù—}kñø•ål4ÎÞ/Žãé¤2r¬OðŽÙO.µ"+*°©?=S;û,O¤,“ Á¸ÑíøM”À¿÷³/;ÛW¡ŽiSZðË¢=Èôj:ê¶u¹:@˜Hk©,¾t}ÈZCa›áŽWKeߎ1ç¶sBY©ŒtúŠèFm¥âº.Z¯Œ‰ñÆÂ>0ös¤!7_"E>J«I0-P0&Þ,²0tç·â!°;.Œ‚x ô üžeŸ �~Êæûµ=O›¤Ñ8uÁà²�ÝžÓó '�­1m‡êAFÁU$0¾Z&È’ïrý¸!g*RìÐüåÀ†t/#8tÖ™ªð¾à§][ ŠØòfS/pù9Cȼ?¯R‡œV|ÿ£3¶»ðHР  �zu5a6¿¶b-Ö™ôºº>)è‹hÜIZ¦à+üΜvób|ª71³6PÞ Á¡äP}§ÝÇ C9²ÓWÉ× ¦äÈÌÛ¬|,üäËy¿­~/§@ß hÓÑ·ÒõA¥L72º&‚tWÒ)Lä*J¨§™áCl±-À©Á¢Hg,P¶š¡w’‡ Kw›ãZ>sÄ4¹dœdò“a‰¬q>#hel ^­òóºÄB²™Çm” á¼õSìÄ GN`-œw©Îx:�‘=Üp膉“Ú1lpÊ8Ú©¾waáWÆ3æpc‰Óy�¼zzT‡>9Äæ56Í8]€•eÊÿµÏtwº‘çÊ|XX Cfð“y…Ë%�U¶MOGc\ÿy¿íÞÊ[.`´‚è›.Õ»5=4xÀóþ+5Ц™«7žÿÐKÛ’¸^䎟X; -¤"¸‚‰)€olJfãR#}p$¾á Šº^ÕSÕqïŽUcö«# kIÖËÐ’¾ �û—f’¨ÐÌ`‡ªsê uiZ‡¡É¥M>{rÙF`4Îv7àA�ÔªéP"²fÀ)êħ›”b¾~/¬²ŽRã÷#ݤZÜ+oõó”ëÙ™L…{pS¹+4³ìñFƒú A¦hà' Gó2I{ñ7íëðÂõ)ÑÊéC’-KHL掯‹6!í áò4ºÄ³×Ðr»óa;K `bŸ¨!àf?ˆymä먤w°ïè?BNÚÃ\ïלxÆô®6â0mšPMš$ÉÔo)†Œx+Ð�åà#˜‰=&S‰@We<×xmÚà�\‚Su!–ê<å–LIµÒ¯w»ÍÍü?ŠW ?2dØ„3œ] þ¸¯åȤ£IðvÝ÷ˆuÅœ˜ìg@òe¾0¨“’ä@À�ôͪ<Ç=xNPÔÞ&‡·p|íJöhä”.6ów Ó5µ1rˆÔϬË�ÕW!Åx†�:²ä׊ës2ùâ×Ñ›­#2“À7�5úNóVÖrò*zÉúþ5]O�£û«æîu÷“e,ÎÊeìÈÐñw�ž0ž:lÿñëü³ÑÁü$µŒ“ýWЦ:Œ=˜×ñTøvÉAòã͸Sø‚8Ü ‚x±EëdLjî¨Kͧû„Sžš©2oj0&" :·.ÔÐ[°4– %B‰*ˈRŒ‚ä]V庘Œ§ kyÞ­)Ï«m€dÔ8¿Û¡®€ƒÙ¿A!-6æCÚô\áÐd²…É¡Ch×å“ÿYj‚ä(Üçÿ�G2s¾þï­ãRÕùà|ŠÎ­íA-v^¥ú4fl®Í‚¹ –¥~…e·¬MlnŽîDB{Gyé! Ò#�ÂØÿºú³.¦ÝO­€ìÎßÍ&óSüƒù�Ä3=‚1r Vk¨çäy�‚ò–PŒB¹ú²Ú;ê! ³¡ŸEWåËnHžQ#×1`#KÔ*‹Æô˜�’�ÛyɪÓ¬fÖë[ ­8Ðu°ïŠ88Úƒ»âe[¶&v{RðŠpñ7F¥Æ®ú8ó‰Ðxþ"ˆ�ävÏ` o äÏÝ¢¯…A^·æOQ§ˆÞ>ʨøâjwG9­]*:r¸Dv'®ÙÆ"yq…¾QfRüñnO]Oové…øÖjbH]^<½)ƒ ioG#ǹŨü¼9®æÞ¾!B„67öÔ·6ºA6Ì5‘Zyq��ö°üò•ª-,=sÊa¨¡ÕŽõ`ÂÉÓ›¹Ï5»„ÿÓâÅÚ'jdÖYi‘À¨�Úbëz‚Ëip>´�¨f!Ór«ÌS1ÿÂP7T|EZ¢”'ŸSwÇIõQ£¬—ðÛ±ØyxG®#Ä©=Ϊɑ á@#Ž‘q:�©/·ÍÜü`êì•"óiêÚ—Þ¸ÕÄ×®dd^Ї¥ž©z+>ÝËÝhÛT¼˜0w5΢¨i鉤¶YO‘£7ÐóÒN-yïí”#Lvµ7gb‚ZµÂMÑG©‹K• ¼ÓTùŠcpÕøúÝÿ¶Ô¦Æ4³�²¯­Zp6t¾êºÐŸÖ× Œ¬]wÁÚ‰bò{ÄÈMo{Ó¶|TxS÷€é—š™¸Y|-rQÇk‰l€Y¹|:ö‡u¤»•ŸÑe[8a¿káXbÞ·,) ž¯=U­¦UÛ`&@'à ¦?+KH\Sm©v³Æ4x2ÚJñµépÜ_qQ…®xë´2�j³H®@l%5&á×ø$~—iþj:'(iþé¬�.j´‹qÕÌêўäÃÉö·™Àx¡9{ÎUdÒ¯`DÒ í¥åv5d‚j~Z•ßf 7�÷ë~D †¦‘[ô·WQmƒv/ïå\ߪ?~­Œw(ÀÂa+0¸GŒ©züƒ7¾ÐÑ Ôe·WŒ {DÒŸŽQŠ¡!˜°}€Õ^›“¹× ÊG‘ˆèí¯eBŸZ96ú·gp2ßQ8_ü�B÷¥Kc!þ|B‹ú/9vˆå—ôê“75†µ¤Ô_s=BÕè¿G7Sb7b;¼Ø6…45„Y3Pm„¯Ö=DY­N³št‡|ÿÄâÇë†e¹×q.fO‡÷«°_qß›¥ÃùeJñ@$gí� ÄPQ!©M.VFb\#� ´‡{Òs9 — w*ß“·À_]¾ZOvƒ7UmÏòt°yÉl¢¡(ÈC×Ý}íÆ­×ßU“ú•ù4«ïCïÖLO®ïNð"«~«÷A(_ÎQšt«iäõï‚1gFº R÷ª_ÚºÝÇ=X }4rˆûKüÿ»æet8[vYÄ÷w9ˆÇÕ…Øm‡Æù^è¨M;ßš&ª¸N»)=kºkbSB[Na †Cœ*’¤£‘ rÆA�õâWk…˜ÐÖüîã %RˆxöÁb«"©Ò,HÎÀÉ#L\Ý´Ãÿ6éÔôÖ|dˆ¶¶¨SHJ3‰í5Å쓚Û/ÑCùa¤6Cý×{$šâl"Wÿ¬*Ï u÷h�? NP´ìþ4nª—4¢WF›–ÜóŒnýÈ05¹›á[­Ò÷ªl�&áµnÚ V*ÖøI²þ&æW}ÍèÓ°»QlOCƒ°j ȧw¡Î°£NÅë}V$a[}fŠÀ+Ãk‘Ø„û‹4žerI–œMh½=[¿CÔc!ú1)É଱ºG'EFÇtF2œåÔ|ÎÖÎ Œô¼;A¼BΑÜe·âE¢Ó÷”FÄÊDF8d¾ÞÖmNuéÌ6‡:Že&8Z¬1Óª”+)jc»ZùqÕ-;È‹Lèh¢Wþ”#Ý{å1:G_ÐnÑĪÅUj F;¨Z•;´ò6aXp†Ú{ˆgPöW $–[¾|4Ökõ +åIí^…ÂY¤F�Û µ­¢¾N,b k'ì¦Ïu=Q.›Ë v¤Fu\›&ayi•»×Âò»!AßFðÛ'×J>�¸<À%Õ¹˜QoMµVÎ8Zr«Àu�œÈÊ·¦ïDÈçx�š*]#DH0;™A¦ØzŠ«`gù¥OIE]odºãN¤�ÿRÏq§²Ú}`ª8qSŒÇ0e�1ÐF•�MÓÄ®ëü#k·Én6bÞInÛü"Ñ1)‡K"�Å›ÀV ÄÊcü]¿®?g’Öö©k.ä ìÆÝ]õ©ÝÊ:TäÒ;IKè¨û+[ÏcŃhBãWr‘¡4.ðd&ÌyƒÄï̱/³Æj§;k ˜×ÉëÞ_†•wcÂʃC5™;bô­JÐbk”{C_ ÛypŽÄ¿³äqH¹X-:(z¯#QÝÕ7£-iÉ8æ<…>mr(œ{™„ï‚TžH¡ÀWœRIwx ‡ÿ(T„Xè5Ӻɹ&…ôK{nsŒý;H÷!þ÷´ºi_—8e^ 1ΆÝU&µáeCj¤ îíC7­BMû„ªXä��¤/R·ëàIÞV ó@ˆËFh5 Öø-3gpÝÚÓw1:OQå7d¤——5$ÊßXq¸lryÊ™ý™T«$ìgÿKêç¢ê«Þ[šÓN`¤™ª|�„ÊzŸŠgµ`9bº`7Šc«:öŸ¥ ‡ÅÐZQ�ÍJB.iéa}ÿpMïø•f÷R Ê8 ) ®é|òmìÝjê=@S.?ò2ÃNe*y¿àÊ;G�ë!:Åö?Ef%B;%{3™Š.Ü¿ûS§[¼’„¦e˜ �«·Ð b�GtÁOºSû¿TöÉ;dÂ0úýÃGÞ†‚f9èCâÄemk¿ìOÛÕ*ƒ>¡M%Â�ˆâ�ìAŒ—ÃsŸ"%ÌžB^™¯î©Ìœ�Rð§B?«N> ×ø¤ýÁ»P¬álýJ4-IùçxH4Ë +Ð1þ-ª¶¥gkjû%5Ÿ(QÂD Ê³x4n|KNü÷Sö× m$�Ç>:à3<„¸¦0uôΩ{º}Õ^›ùý°ðÕÄùU1èF¨#¦ë˜¤c€¶(Àùr´ùt?’n ŸÉÃS`);@M‰»ò]o`[‚‰ñÔ4Á"˜ :ÆÊMÄ)‡Luúµ'Œžö­ç¯Æ${ÕOÞbï—h@”TÐFìOdPd}á¯$Ì›{W[çQ¦EŽÓýÜèÌÚ˜òÒcâƒ3/9H.n‹ó}¢=Ž{©àœT�|ÁËß½Pâ¥ÄPdEVtµ¹ ÁÉf¥ÌÞšÀÙ~@Ø‹ìXS3¨Y]lD\µa ðK¡ø~µDNm Ç£¾ßµæUQâ6–ˆVP‘È=c��²>Êe¿�™ÿ(Ã,À6jCþÎ48øVHP´ÎVîAec»3±¢û*{mΘ¿ Q”ÅÖÓßlUSD]ç˜×<ŠÙ‡{c–5ÿÍ¢.CâH±ü4‚Ÿ‹Uàh_¡Æã¡œ wìW€ÆDˆx ?pùç7$­{° ; ôCË(,•ö\¡oQÅ»~þ^½7>å£já’z~ªÄFëw � ê -ïE<$g¯2€ñd2ÛÀ­¢ÜÀæ#ªé»Ô_Žœ³Ó_`8Ít§.X|>yå!³œS^�Éʧ]ßæt‚¾~ß ı¡‘¬â`çñŽ‘¾P¹�iæŠßՕܳ6ÒN“. ß³»"çT8$ Øp4í¬_¬1v¦ñ+9œÑ„FÛqŒIü…}åˆ,ê#�õUTXeÎYEi%——8™ƒ'pr:n®�á¸XÿF 2\O~Š–œW*Zv‚ƒ�½SA˜F µÉçrÞ.2vúòOLs�¯L¼Ülì¿ ã‘=#Ö—ß²WàŠ„h_;¨j<‘­·ZV¤EÛM;<ƒB0ãA^N²¯Ä6é��f÷zsà‡Ší-}UoÔ’¡R¡H Øú²±fÆo‘ Ì-HÖS�Ä̸ï5Ö,MsmÐyB A®ôõ°b\è Ž:"_£V€þ×ÓVâ¼…!§,Ü Š‡0uŸÅ>n¡¡í3’Ð6E䛾emk ÙñZ¿MYu°LœBR�ZnÒu…ê�l0ZzŒ<Ú[@xÌìIw*e�tãéô¨XF�s�óDIöºñŸË!þ‹®&9çqû›ü‰ÍÝ�b\Ÿ’?í±�í±Ö@dÚ"Má2«GóÈr!÷aýµ èÙcDô×Qt¢®¨FV³ÔIX(ÎÂÃfài*o•ÃBúªýÌ£Ž­$Š'íH÷S´ýÿïá“ÊŽ0ç#[‚ëíÍ"g�íîÓǙԔ,«e éF¡ÝM*n¬ ~I§ äGpkK[¯î2/=öÜyMþ¯¼6• õOÁ\øµÚJQK"•ÓL¿¥¶Ÿª“oÍ%œw¬?䉡±†/0&IÌKiâfj¦%³öˆ¨n±+Øí)G4¶MJ36ïlç«‹è1ˆ„÷)ô_>v›bg;í¾º{P"NÓ5 º;�ÖÂ"èÂBx×Sí<£ŒLµ3±‘z˜ì¯w©¥¹¿DX²¿ã æ¸q^…7‹ììJZ¼¹]k�ÍÉÖì-Ç×Ëx=ÀªÚ›Y,RßA0Z¨Ýy�ËÛ߆Вª‚Ý�´ªR<³è�7`ûafyÓÛÌrÁˆ¾åÒÿ¥c�#ƒãÙ ¸”$â�P¤Ï9-‡…5»Šôvv''H9b„ÎENXxá£Àp�Ý…Ï“D߬‹þlɽ*WCæ{:S(wxÁV¥[©HýŽ;Dï¹!·�'K¤:‹ŒŠ&~�OH1“Aö%ÕkÇ ÁÊ~Pb¾ë‹ªe¹€Æì‡ZÏKH³ µ¼»×®s�¯ÖÃÖ3þfO;B¦)Éðµç± ¶bB¢ÀëðÈY7@ƒÄœÉ*χó'3ë•h÷…#:·¼—V‚o§RLô’&hÕëì�1}ä™Âªë­P¡4r1Ū \ÎO” (P§$Œ$OÞ³– ØG ÃÙ¤/VøKÉXC�ìåô$­Æb£#Ó_ê±Ç0ü_® Pt¶!Q 5¨Ñ§úZ•‹[ËçÁɰGÏðé=›PüºT Æ ¤‰'Âû)ß.%ÃŇõèýŽòvbê—øR–#F»”†³�AŽ˜˜ºÏïMWNÏP…4g�ûÈc¸¥��i×¹¬ç,´záwø(Gý2Î ¶9¡À:N½“p­®&£o"K˜ý‡}Q^8Põœu\­•Ö¹×­‘h œ,‡ð;�Ý;WØ€­æý_5ó@ùÕs¨ŠhwÌÓÓ}Ú‹þQ¡º*“Æ0¿äý_9çÂŸÑ HyaìÕª6|ª\ñ¹…¥k°^}7n×@õŸ4ÿÕ�c…kõ¥+y$ùú‘I¡¯­¶©9S cÓa† s)è¡ÏˆäXç@RHH·™04!«ê7”Úã5¤3¦ìƒE’íxääéOl,wî©ï9ÎÛ‘‰•  ï/6�h £Aû´R•áöÏ�·º‹åŽa’��æ{"l RÏÂ3s–}ÊÊf|�Ã&Šÿyã�;iž³6VpÂ3 ò‚4µâ¯,ˆŽLÆýÞ�îZûÐ×0Ü_¼œSILÑ’)Å™$ŽIÝuÓ[QŒg° ÂûHŽ%Ádª]ᮑR{WY„( C.¸ÐY¢„^,æMYÆãWnkؘ «*Þä*pFçf™SKø�q<ö×0€zÌÖÊà {ˆIÄÔ‹ŸVSßpü*z )³°™c¬ÿq=þò éÑ÷Ѭ¶ÎÙš›,¡›KÒ¯�‹ïB úÍ(þüFŠh·“Îcëò%‹Ÿs]:Rùâ�Xã§xΩÆt[q»o@À·jé`Yˆ›&åˆËÄx'æÄrA/E!ö“ßBGiUîV`é½Þÿî$~¯Õyª,’a¼·¯¯,@ÚQ�kŒ{�ÄÒ¶ÕÆÉë\{Pó�{='Ø}~*Ðc tß cÚÄÈ™ {¸+] ‚&[$u f/ºôT� 8礂¥^,2ØfPG¬7®áz—â)Œœwa ÷ƒøT ¹Ëá!Û°bóœ.,÷HÊÝ…ê3ñìøÃ4× 4z#EÉ‹•ýñUcd±¡<¼Ð0ý£ò§ô†Vî9N,¢X7NFR£wlbAv7YÃê=´JBa�øÚÆ/�ÕÏÊÃpîÈ�§Ä×}ÓuWP”ñÕ=¬~†ÜóT ›ÞÊ>YW[k1§86ÊBhݱWŽK<Ú>Ò}º°#q®ìu�3¢^y\àƒ‹�‘‰'{óÛˆ| p61”§>³¨ç­f²”�ö-3ùª4ᬉݱ’ºDwŒyÖtzKÎ Aƒ�&k Ñ¡s4Õì\™ì„å NŒTyŸæ}à c�iÔµ�’ÚØÈ,C"6Iæy*ݶ˜ËìœoììKUûÛÂǸñ§�U©¤qô@\À.½EÊ ™Jœ±Ò3êVÃQ|ˆöá|�£¦ bü�ŸØÆS°÷Ô�/IWõ©„@k¦PáæTk‹0Ÿ<ÆÓŸ&�;™MY!ÀEù1hMw4EOÒ`ù¡‰P\áPó^žÜ÷'?¤„¸Zg!ñ’ävçjø–z¢ü�ñ\Æ>Ÿ¹ã„ïliÉËmO<üôøþ�¥ˆYs è+"çê©Xºí\ŸA”ðI)âý1‰Ib_/IãÂtƒã+dîA¥õWn]MO³”JíAÖÂÂÜÛsVˆ˜¹t°°ÝÚ{ìò}m*R‚º&{eŠŒA��=•üO¼Y�Zç<‹¬S—ÿw)*Üo´ ì,&Èü4Þ‰ [ëƒ6±ÓÀ°“‰¶ì…[#Os6AŒ’œ0F÷QïÂ0a=�;b·{ Jv?²i*ˆ#kFÛù·hi,•»b ø‹«ß¬‘5LË·1‹¢l9Q®v‰u]pÅe‹Õ}Â*‹DqŒµ‡éщ-±›¬ã{a÷B8;¥fw&DHžÑÞ¼#SJ‘B(¿·¹`áÜ�oIÐMRdÙšÏFr+O�:Fñ?�ëò×ëZ¯¡�"9³ô;kÀßòÉ5$,ÜUÕ*øöBx4ù!¼õÕUI¢éIÖÝ •È’:[•¢€~ݤ){Ä%ˆ´õ\¶Ÿ´ðÂPI×!x˜àòo2O‰�͈Ð},Ê9Åü#q¹ÕËãwæ7~WjÈX�§ÝǨùŸs£õ5 b©RëÍN.b%cÒoùá*ÖPe8rZz†ô›„™#Hš¸bÊò mŸæ3׆Ĺ´—ÅwŒ?œKbc3 �Ë ‘¦Ña¹ØEÿþ|ûï¬_tî£âÂÀ±€üÑ…ª‰sp³jà" ˜ºÓR¿~Õ¼Ao,ÞÝ�rö’¿ÛÑ+ó]zîµwt\hNTƒoƒhõd˜Æ�RÔÄ·YùÊns¶XvÞX�0i¿ �¤N¯¿FãõÎa2oMŽ�þ@‡Q0k±:ª3~?XNC»ü„/Ѩ~ì€Iÿ ‘¿ÐÊ”Ba‰ùú¨¨1·ì3» *w;€×HQ5Ü;ô¥zßÙ§’ú‘NwJ¬ÀPJ0  :%C ûq³˜ªÁãÌB44©jYì¸ü‹gŸøutR¿ÕžÌÏœð飲ëª5¸@�³@‡,÷f–Ø–×ãnmבyútÇ[ŠKm¦[É–A*–õÁ&o}þá¾`«ÆŽ"Kýy¸ýÁAñ^ô‡|7RlÛÀédx°¤‰¯ò.Ãùb¨ìÄlRIÞl!ÀéWÚ¹û‚Í©C±VúÒÇXúËĹ2ý¥m§AÅ»}ÊÔ IrÇnÐêŽv=]J3—*ƒn/NÓl-è—ÌÁb_oršÛÍw,7cOšw¸s 'íýWɰP„¸ô襢D[I+ÛH�ƒ ¡Èq"TøÞ¤9¢ëZ›Ç d{ÿ–Á‰¯X‘‰9_øî/ÞLû2á{ïË$>ô£ÞuÓíJëzGú áòM0͵’�ð'ä2ÅG'­�ºÇ®1Hí% ¬ÓàL½xTÑ–{»5.~XoBðƒ »±üîÏ/žñ©&wBÂWq^»á}Šõž·:ª»FÇÚí|ÆæÚŠ¶”L ìŸ×-e§ë‹Ó-™Ì‚nÛLÁ2‡Ü Ÿ(uÔ1/6ar@yˆ05E>Ü+ÅJÕIù;äÌþn<=/Q¬~{b4Ð}óã׺Ì“SÖ�¿Ü¹rjb˸{ŒÚ;G®,Ïâ�ôFÑùQ±·ÞÉüg<wðœ)õ»ÈÁv�á¨àu[áYá Byv<Á üE[”}ÐÔF­Æçɯ͂ݡû·íhhÕ¯Uº s®&@ÕÏÞ¯\[Êw–_{ÆÛ�îä0³i³¤ðÿ›Zh€Ÿ¢½¢úÕ”—Ûé+�ë» Û`jg3þ’ÄŽ¡L %G PtŠÏhô;äñýe¿2Cf}[’¦ó °šŠ'X!åU§�]Q¼{/ ÿ Äâa{Fô\ò�ÞoʹDä^øŒ|²†!ðvì1üp Â;zèåUš… ô¹7pk‚�®¿Ú¥÷S˜Û•ŠÍ=Uƒ 8”Ͷz%X™)]¨óõ<ʱdM YêúzŠjjòüs¨*ÿŸêWúçùÍXþ*E|8ƒÌ} g#+õee-}CN…YWú¤(,ÏjTeÞ[Uåz¬q:Vgµ[͘v1ièn…N®?jU�ÉûšÎ[y¢S|˜Z°ñ/L¯þ�\®…Iîû')‡_óëäöWzbÅöäoh%£ C±ü¿Š˜lI…ÃÞø¼|ôÆ®¹D›Âвr'*¤i!‹¬ú¥†2Î…b46ìÈp]_GÊֻ,!¨ÿêèo»›'<³"Ýý¬ÒYóÉsËÙâíƒðƒëÓ³;oýó£8�Ý®®ßÅ¡©ÆBažCP“‰_¯kã\ÑÁU‚œÂ=«åƒ Ö't¯èÖð_”#wå ¡r(Oœo”Z@�~ŠÍ_IªÏÍ샗¨W”!šíò¿%V¦1 YkôŒú¸ßÃÖ°=e¤Vcÿp~–›^#m¥Tvé7¨†e{Š h÷±¶aÛØnh�nºåfMo•.wÀàþî€FÀS=2lŒg^UºÌâ �½Ic«þsOEõ\Pf´-üžµôä°�7ÙÂ¥ø'þG—pYgZèž+Ìøpö:7OÞBç3Ð\®Z/—ÍŒûËå«Ô ÷þ#©+éŽgžÃÉÊÃÄŽÝ,N®¿^»ûlȵL.�#{Ý1﹟Ü[˼§ÉÓ™ºx;µ³åõçê'æåB�ã¥þ.=-ÍH\îÏ� ®2’¹ôŠñI«#û¿‡¤œ „G\℟…ZÝõý¹—¶@ÖLJšGB[öòØëy M- Ílǰ¹i�®6ÿ¡ã¦jÖš�Ízô^p®m“æn…lŠ@~àâ–@@^æÜ8l>éÆ"Œ Î�Piy©C7Á0A–öaO>!?N=C”UI£©ŒBþz#l¯ v1ð¿ûÏÁèn3õ;‰Yc°¡ „;Ƴªõ\b\íKW;‘jKõëT$ëõQùªO·îvûŸò—îÎØÔØÁ$}8ÂO¡Cy±žMäÙ0CkЧ‡!@&4tªÓ»·DCŸÍÎã-Z�BðUÁ¾g‰ÍTu2-©³« [W¼JòQð“vìWKÊÄèá×½*ìqÕFð�ù ü1ú5Õ¨ºçûù(½æº_ñ¯LÒúîÑÔÍ$ŒžE¨5k¯¸¯ïGÔ)W•�¬îÚzIç]8‘õïìDcfÌ>«îé\ãèìübïßmÉ4ÑÆ>;GômQ˜Uí6+,'Û°¦]Ëü“1«ÅÞ›¿²Ã©©kLd©/Rᤰ³à{é3÷zÛq¼DË*n¡ŸÂÛMŠš`5Ó¸Õ±Vf iÆ}˜Æ<.ɷЇõ2‰�àUuéè}Ø-Uaû3>ÒPçj£´Ñ3į ËD&ªdL?ßRKÑJc¶o ¶.î¢:='ø�®ÈSÕ㬠;¬¸“¡ÇçÈÝí=1>ïIwWIÌÅßc "øÉ÷ü¥YŽ‚qsí9·å}MXµR ¥f}ú“ Ÿ2[¢ŒÔ�Q3Ñ”þCþ»:X‘ Øš½Ð1_?Í!²©XÞÝÉ f/ìE1£’¤^¤~£ °†ÄN#: ˆ´ojy›.A«7ËtÛ·šLÂÍc? L�ñv ƒU¯‘¾µ{\�t·X]èCá5âÔÇ7séûQ—_D4š}@CÛZƒ?G¡.™9Ot+®�ž+ƒlŠ/94äÛ¼QŸéï]RæV›’–­ ·†n±*¾WqÝÞæªvœˆ‚ˆË/¡¬õvñvôÀ; !í‹ÇZC—Òæí¥½HD§oážÚEvL,‰Ù‡{ò7k.W‰çÊå¥ßã^Ç&*üþIè8ÛZüV v†��E¶¢;#†çëòDÓÉ«ME:kaÍ `^â²´íôå,L5f›ÇÔô³Á§‡¶iq5 88y_ 39»à ÿÈ3‰WûÜäû”Vé½Pl¨Ê™vwÆ Üõx{Îßbø1ýÓ ôÎ�ݲšÛs˜Ð¡‰ŠîŒ N,rj­ýGK!®�Âêʬ¼ÃÊt¹×^ÔàúÌ~áEWT‰}““OËÕø­Ù­¡ˆ‘Ôý]ÌWL4%/’óJÝFQ*8ÕS~/5*×�;Æ—aCóÛ¨Lä`?$¹¢îôçø´X5«•Ξñ´’Ûï�…³±Y½ƒÝ†„Ì}àáï†â8ú¯2A%*ùŠÒa÷/ qå|Ž£–£3(˜Éð4§‡–kK}½ÆQ°ÍBS?kUJ)¬Î3:ráBþîvÅqoj“Emí�àA˜aÃ~´‡›AIJÑH]À¦‚õÒ!üžàÛÈ1ÎÒŠO1ulÝÝýìC2ëG48´�+ÒŽî!¦ÿ9±ñQÄöH’x¶Ï{`·N;Àž@ª�Z×�(ÙÉö—&§lÁXŠ#š�¥�ã)¢Ž€+&PÃ�JüŠËeä5ÛÉ�^ÚEܦ»bXVmdͳODâ+¸ÅFèšoÝ�óÅåââagáѦÍÚÛÆF#½‘/ªâx ’EE ¸—}g¨XM³íêɦ¹fé!,ÏÊ©³¬:â`ì¶öô k°¡PÖ°ÝâH±<êÄ Œ$òO@Mþ lº�»M[<}ì^ψ”oÎ’ „¥z±`É¢¹!ir7a¨‰öž¯–;}âr‡7×wµ1ç!\C‰º‡Az½RÙHœ~Ì@¯ÒóĹ÷ë‡�Li˜€n�9!…*Ë÷*&×-x¢¢¥¢ì¹lgCS± ÊS!èX»._k¢p«ðÙ»³–âÀÅeÐtC£á%Zü4ƒDS‘¬Œ�"ÃÈÅèÅž—5AT§UZr¹RòTõ„-;YÛ>·×gM2@:bd‹Jl£ñ^Ъ.Åâš—îi¥zñÊ»ÐDJböç!´ Ž«Îë ‹Ïä½$6ãIgáÈd5_â©'›U½ÏŽ×â5fö §h³‹S)”ú{ÀÌ›QžG4y³­v+Xÿ%BéÓWRc`Rì ÁÚæ!›M=�PLSLšQG0Q_T 4cÏéþÖ�9xExCà€h\Ç–wµ½·'±Òw1Žø~–\âdÓxß×él`ºƒ¼d§¡ÈÛõ�­¬�fü•íG Ñiƒí•p käešuµÊx9ù kÊø½(êvæ¯=_]ÝaA­òÞ„'f7ÿ÷š´Gè”;É?o–&»6^y‚è+pÜÀ<;‡žH% I4©{&ˆ»>‹Î03'Âm˜2dƒÆmND½«ŒšjYKùï¸0Z–�¢»+ÁšåÖ¾‡jŽóP�0Ñ�i!p €ÆÐ,A¨É\†<;DúÖ»X\4Iöû†«rÜ×0üê?¡]ñŸµÛD¤>X}À2Ä�d6%©³õ9ൡµß•¡éƒ¼>±WTh“K<;5xÕKêò¼¶Pt¢Óª‡�+(é?ÉÑš9ÔT9y>‘"|š$\º ›òÃ�Ò?@ÌöÙr W›ÞŠEß í´ì þ�Ÿ3ÁäôhÊ—A´3Ò‘3Ö“ûG!¿\=Æ.ŸÜÎÚQ¨Ç(�·¤ú¥àoé•‚!NûÃ7ÚòsÕK* {â²ðïÈþSüQçͦ¬ ¾ØÁ7Ò„Ò�³÷׬q$~ØÚ_Ñ-§ïÒx ·,ë¥HkTù ï>‰<*ÈŽYL°ýsª/Ãn®^'Ä�Àñ”„ˆê™A~b§o~¸‹k_0‹­ÙlÂÀœÈÁ®Î¡'™ôç«ì‚Kze`0Ì\ôâ‘ñ|ý¨bVƒÏ�œ8j-‰)Ã+Îk½«OˆóñpçŠóiŒ6µÃÅ : Ö`òÎÊxœ¾“B¯t³²Vœ€ŸeÎÒŠ¬Ûió«é N[Ÿ¡]OÞI˹x阬Loá¡¢"Z¡COýú¢3`BÙÀÍnõ§û'—Ó¨oj^æpØ)Äó`Ó­þë™/�3”y�“@B_—’$vU1÷Œ'/÷³&º€` +#j´Qì‰ùœ¤ØÚÉ ÔP¨¢Rù¹ñòˆ¡^Ç9¡M¦Êzí³/N_¨OÒâ¢oÌj¾¶¼·í©òW” «4Í ó4ôfa.~õ›@›.“SL.[:ý{¸uÙ¥\ÇN…à-_f£¥;ÄXåº;2˜]Q>[c)k\ô\ŽX�kâŸíF�Ó�u")Ac^ß1R6ü�Pð4¶oVmÙØÜ™� K;…O”j^�üAðvý-›ö‰o™@e,ä�éC7Sú¿d–L$sÛoKmÿ)¤òyÛUކ:4ÌZ×Nx2ùU GŠ'¦Êèâ,ÚqXâðRMuMIÇ}.2{�ó×$›…:ŒÉ(籃֪â†DmSÈônx벃|7Àî5ˆ|ؘijäÖôQ>¼Ÿ©RO-s$0 Ëìú äæñbq}cs(Û— Ixµ·�ùWP´úâÝcdl+‰\‹g[V†¤d‚`›Âš; ˜Nþ䤨ü$”Æö_!Í€ÎÓ|= Ï@7¶ËK~1óv’Lé –==;õS‰ã5úœÎ«)ûG]‡?u~JM¤£HŽîg·Ë•8r#jj³©këÌY”Ó!ŽC8±Æ$ ‹¯ Å º¶…ÎÞ2 á+åcÄè¹à8Ëb5{; ô˜ƒ‹+}Á¤LzéšÒ}-M2ÆhÙ1­u3�á"6™2¯#X¾r#¿õ–K ¤1f.*‡›H«3ð'ísg¦ùâCé2ÙÄ­|ÞUôÒçY#ø5¬¼ÝN ÉÀ†­®sy(.¤M ´:ùÊc=õqúÙÐfn10~ÿ-šî=ŒÀ†z·iü5WÙ@ªp<�VQ¢mV̧\›`V¿`ä¹V×\!òÉÍUj Ta�—²‡pç.¼�|wãæ#±M3rÆÌ´¦Üé@Oש£ ‡ŽüB�e´ïé4*Gè,ÐŒ~HƒÌyÈ×P±f3õO£3ÎÝ;Ù4K<ï{Í×< Yü‚~Ò :´~›1E·ó�:žNß6wU™Ý1$YQÞä¬NÎ6A+F§ 80Õ¹“Yi’Ü`–†²ø  R2:"—¦dÙTkßCµá{Àñ²|v‘ÅT0¡ôOüghšïÔ÷ö¼ª6ÂùÊDR¡š¯¡n§¼&8›<Õ¿¸,[�0úl 1Àèlþ‹ºéñºoÊÕ-«áôà¼úøª�ðAuûnåß_˜}Ú¦^îC{›™È}#\Ò€™ÿ–ª Á�ˆ+q¯?-w¶†[ŸiÐBRÎìo¦~ €Î@1ŠråE(”ýq�­Æ¥=«Ì:;¨BµøvfìHþˆ{•o“‘7Q8åûSÖô“¯£ü0$º�lp~”1¤°‹POá�x1b,1lšG¾É.ÛÁÒûpŒ!�½·«ç,Ä¿gNÞC;ûò!±HúJF?,ÒI2ôA¶›Ä…öU\P™ðæ©÷uÑTA’¡3DµÆcë­ì+ùaôFŒÒ³À°GÁ©¿’0šä‰–3†4^œÖŒ‚Ú;ŠEu ‡<Ç×ôá}‘,�ih‰@Ò×]zO»Br~ê¸î(ðÜðÉàÓ†¦‘‰kÿhŒì¬¿p·÷ 1p¶µ•þc¯Å‰ùxÖÂüÎ@ùhèp€¨³dPž‡ ü>„Xóšq÷嘭¼k^$ä–ZZúq$x‹ï~œˆ%¯xDŠRW›®-Ÿƒ‚©e{ÿDʼdq Fª“\Î9}Ñ>d¢~´íI÷ÖˆÀ¢jÝw˜ðßî£ÒÑoR`ƒ¨µEk"Ь>t©¤Šª9-ÛzÃ-Žu´02B.COûW+Š}Åõafñ °Oô›0BLåò2:Afý~%ð¾/²çÀkAÍR§ˆ&M›1^œpƒk‘'ËËs“€Ta�Ê>iïu�$�íj4À:<ù—I‚ïäaŒµT´2ŸÍ) "j× ólö(ý&'Üséž1ˆ‘ï|“§€yÖˆÅF œÊ·:ÎQ¥ø­Æ2ñÍøS3ý›ÀÑ!¹ ?¯ªHßV\®ð( |i?½•*ï°Œ % ä4ÿT:šgJ¡hYZ‰}°õsuÜ<áÈLL%zG"%ÿtlÕ«êøÓ=³tSÄŠ6qú�ÆÇgùÑŽo†ÙÛÿ�=âY&øÄøEœ¥yêR†J š[ãv*§>Úà¨mŽ‘ê—jH$çÑRJá![øâ-YÌù‚+˜ØŒW¤/pÑÄ_}ë „Áø÷º—»*r‰©wm¿Ð ÔMwz"F²˜2Ü`…žùs± cwåà:^^"ã_þ¦Ómë0Rk¿‹HRÎ_È95ìpˆyZ‘ç¤T‰ç ^ ‡’–—°;$¦óC>�d±¾kH*ú…–7äâc$ÖN�ž ‚ZÃg¸].V'sïñ8w®`cª&d=+½ ŒLÈcq9ÐÒ~Œ(‘-'|q£�“šÓ3•ý»1ÏqݰÔ+UBÖü ÇªÉ¿x1»³'w‡6Ç.=:E¥J/¼ Ö$Á‘Û™ñ#� ,U_ÌWcAû Iq“o¯Ë�§r§|†¶pxî|ªÏ£^òö ÑØ«¤?›ö6èd-Íko í•�.›4 C7Ñ�‚ºátäÊå:Î|S~ Ã9/Â1±ö„¶e¼3¯à¹0uxÁ²4õoàAPÅv4ü´89Í´jN¥Øå3'+ãâ·Zh›>Ô‡|ƒ†_6_,ÛËz˕܄i he¯-’k�°l4nU'@ý±ÎHg†?°GT�s »~^ ‰ÑÅ‹XÍýnÀ¡C±æ!µiòüý@Bò¶SÃ*6¥2¦gáP�‘×ï|†ËMÝóêÎñüÍJVѹfðÈÈgÄTï=&M:nam•B´í’ô¼PYÕý_¡¸ëo¾'ΰ·è)ÉÃå¦Au¹iE«&®šŒ¼y“Ä0¢ÒRkŠÉÝ®?íãûiì,Æ}s;éà×ÈÓ��ÃÑõÙéWÈâcTÎ*`t"2HÆá án;Íõumëd#"ìk éñA/\pú¨Ú6ó€�ñ'�B‡CKŽ:¤»92ÞŒ(Üßm0½ì|9–ŒòÐ!u•ã…͈V§)ÉRÄ‹›³Ì}Ï•KþŠr^qŽ�ØÆÃF=ÙÔNF0/ŸÎ/Áÿ‹òˆI€hÌn[ïáÊ·66à0�ã])²FÓ«ÅŸvMqÿ–{DÌn«åtFßxâ‹S>psêP±Â)Zl`ážuPq/s¥ ú"*O_¯5!ªÖ� 6{\QtÐfäÞLlª��¡¥oÜz·h{å]m jk tŸ-"ÔÖoÌß—î{~ò÷XÜFóé_ID½ò?yœ½•®ËÜE\V)S!WCî�——’B‹æ9’—Õ´�¶1+âëýOÝ5�w•š ]=õ0ÑÁ9› ýíþùŠS‚± 4›A•òêÆ¨¾ÀáÄ?9¼9ZcÄä?·ñ’cÆtŠ×Õˆ$­Í·á> DfºÁ>Æs,AAWUéÉDèMÓ¶v ”A‚Cº•_€.ôPÐ6n*Ç$ Ÿôa³Íf@ÝÝ€Lð³ä*±D“ٲݿe¸óã9i<: e·‰¡”íŒ#BrÏ?«¡½&ó‹ÅBgHDÖÌiú´Ü{O~#ð+º™Æ]Öì‡5t‚F‘»�iÚ¡{é'Ñ3ð´¥’Q}4fNZñÃÅ)‰ÿQ5£f>9/X�À¤Õ||H»ÀE{JZy„üWà C;aUür 3‹jñÖ@\Ä®Nƒô—(Ð~N¨Õ ˆA””ënD‚ôÙ#h'é—qþ!fa¿ÕèEئ6É®×�î>‰È¬µq7ðp_¬ XÔÎÿu6Úüß}×Pì‡t q“zgp�Œ¼÷îJË‹KøB¯dŠF^/)‘�—Cˆá=dû¶w`ä¤ "8–È�±Ü.#¬¥@­ìì/‡bË-Ö(º�avˆ<3°áüZŽø ¶Æ²]ùµ‡bfNŒC]âBŽc¾+þùŸnW7P̛n¨”'Txn×ýÈ1PNANŸC3â³\±þLç‚ZGñ-®cc#¦A…™™#ºH:2ñK¹IÁáŸÂpfÈU?=±È”oç8öáßiâ%=¹³Ø€žÊÞç9­Y¬K"ù CÓ|u3,±3 ˜â²ËÒ‹šÛU×Á˜WWwœ¿‡‚Õ.Ûã»n­Íèa¢Î0ÉQ}˜¨î)à Ôý‰D»é ^Eeâã¢[ 7çÐ3¢�ÞÑ“ùReÊö,ÁéiPñZ(‘/¿Jùë—W߆»NG·YIΙOˆìQ ^­ ¯êä2æÝ�WQ˜ÒêÆµ¡O|µì”ÛöýTêðŽð·ÛØC؈)úÓ–K >*böxàQÖ¶ôtœ¥h¥#MçX$ÒÆ"eS®}õ2{VÄÂÇPÃjÇßÂÉÉDCŽÎ�½¦ôŽ�«úé¼ÙØò‡—á.ûú�Á.´v‚–ͩÈf\øªhô)‚ØÁäK™J™ü¢[£<øŸh¦ŠˆØ ÇKlÍ„‘.út  ÏËÚ#$ÿ…Gé¯E|a¹©û;¡d’Ä ]IÄLÜ}í§XÿÀÓ|s /�¸ó­–®)îJ¦b•’Žù#ˆáÙ$N­„‚·¬ˆ é‡Ò×Ì:E"ÞÒöYÏN“¸ b\yuzþË9G!_¡*e{ñK&|þ\Í7ðv! ½í€v°È³îÊ¥•˜?äå ôœÕ* ùjÛS `ËMÕ~¢ïlPÝl¡Œ6õÛ—ø‡•]¹ñýž\(EÉ–s§‡ß¿ÔlXȨö�ÝP�M¨öQt†Å‹¨È^Hßæa º zÅ séöäž+/z¨ÙòÐ_÷› •Å÷¨œyjR iG€2jà¼h«,¹·ÖLÝñYlÏÿæ0£@š[®¤õjÊ·TÑç ÁuÔu¡Pjo6¢uL/I–Ld;IìLÔ©yªHs´õáM l ²UdZ é,¿baäeý¡ß6dÝèƒ+k[7jšUkÚì£ÒÌ>våU3X1¹[UO\²÷>0¡¼ráƒÂ“Jˆ&:Õ++-»ú"E»¢}ŸxÔ¼çó½Jðˆse¨ÿK�réä÷øt�0ø©Jø¤L<·O„„g³ž#Œíâ%Páü�ÉW†ç�óÝ;W…¤®‰š<æY‰OZ«t|pú±.Ô¦`s"‰@Í0RÈ‚÷!ìQ;vmbÛÆ9«Þhƒò€~i¼ö›@ížo<'š„´PšËqõ¯%�‹º�ªU¬¸Crs{ ™ó½¦�’Mð¢xl ðr1ñä†Oà ö«Á˜"˜è¿[å‡ì\û¶#>ÊG�6¥E�xQ °ìæÛ–§€ò¸Dª¿Ã3ejâÅ9Å'3„Ÿêͨãʤf£n™D¥s-)i²ùðÛjtj?QˆŸ­ªÔ{»­!DB®ÞmPGÃnÚ(«WV oZû™¤×"H`ƒÒ)™¹k½³Ö’ú¶Ó•—9:ç:ª›ï¥)­üµÚù�R0K\™¦»g ¹bmø—rbÞÌF1~Óík(¶#�y«a6M™Gäp0@f¹P¯÷/¼] ü$ 6ëYÝD}ª't¼ædfVäHÕ´ÕŒTÿFṕ1“ŒºòêܸŽZ›tõf‚ŸƒÆõŒÿŸŒ{ª®£÷ ´ô�¯^øÞ£?Ø ºüžnN…Li•&Ä™6TÊ—h€ldÀð ÷aÔ{ïFç¸óÆô�å½›oÔY YT9¡‘>að·�ž Æ#ôê-Ö›ƒÈÈÊÀ@‡XD-A‘M j1žIö”üF<…‘ÝÖÿ®M˜À»P£ôö5WˆWšz¹o¡é_¡"q:9HÚW;U‚b„dd{­&`ùôŒš`môKZƒ•´ÉϧmŒjø5wŠHâ Ɉx H9öËþ$§™éxe-¸ g⌺ejZÌ¿§¦�)ä¬>øÇž ZMjˆ‘rw'ZsIˆC—°²¿ÄàWYúW¥rö%/{ [¿å:ºQËù—Í:-´O1-´×\JÈ­ofrXùó6‘¶þK¢ÈZƒ+é/²«‰;bÄ£–nƒ7¾b[¢ÝXS  ÔÖƒÉ |ê '�=+ÌVNšpši—é—º¼·±Fó*ìbÌ=nM½± ãP#´h¼\†O#?ÿÑæÎè••;ŽG¢Ì 4:b+µ,Qʦpê›Ú‡ìvþò”ùWÃa”Æ%/ãc�¬Òç2†Þ¡ÂÕ,#]ýlÙz$^£žâ•.4ñ*ê Nƒâ.ÆB>o¡ª¼Víl-ñË/óÃIΊʀR½L …ÉA `ã:õTÁ� ÀRÖjÀVÝŠ �öÏ¥Ìö2r£Ï\\>þÞœ¦Ê�<»,ÈÖS¥Q ×ú¹9ÏGµ>(šÿ”¡ƒº<�ÇõÌ tGƒèlÒGH˜©f³CçnœìÃ*�~³ALuaã†#`Æ@ÆŒx]Œæx2¬ULWÛJ1gJÊ-œ?´q ž¿¯>j?Vï¹§V-™³W¶\ïfÙáW Ÿ’+ ˜>6*˨-@{ÔØ(“Lê ÕãfJ+sƒ^CË0@°úJÛ»ØÞ9¦ê±¡q#„^l=ÀØùÃ|ª;ƒ ™¾vz³cŠäô0­ÎÉ´¦�j”|>ã‡"éV¸Å©ý]"î×:n¿îûI¼ï&ŠÃ|™Í€ /`S´Ù’ΪÁ€xyo¡<æéÙ¯i|é|ÕV™ N%8پ˛ Ðe»€òRŸñ��¤2)Óæ† ÉÍ™Qy1Ï© ÜZ`A/kˆVr@;ì…efüq_¼Ý$æÚ·„÷S¬0\Э‰.Û¶mÛ¶mÛ¶mÛ¶mó]¶mÛkõwNïî‹?½³g2“yQ#OªR©9jÊÜAz ·n–@JuN,WVŽF¢ ¯ƒ«OËØƒf·U¾·�Æäà,�ßAM‹0MУ�²}“=à£-XBÛYi�í%k{ሦÞá)¶½È8gWÜv1Ôógh†²lUÑæã‘©x¥ô•È×ÔHBØ:‰¸üÑs²ÇÆ”v¼¡ûÅ|ýØf˜©ÅîŠÉ/µ0â\Çþ1ÁN*;@öouõúªwK¥æ5üSXÎ*‘<˜=æŠo4ðD: Âi]š_g!ÅkqPËI̽4cðæÇgHwj½ªqèÅÏ+í ¢'GÄk!UêŒV-"NXËÄäìx•ÃÐ,67Æ©{ì‹g�àqq&´¢È_�4ã/çä_:m¾­Ä$s+Q>c=¾�¦3‘]yÇ’S àÿâ&Ïš"¼DïÑÀp¿)•gÙdE/L–žÕO˜Ì66×F2ç l‘pßl5ž„ˆé„…ø Â…œYûÔ‹ZðßèÄìºåEÖîxÂ%‘úpæ’ D‰�36ìÑFKiZµDõªzÓÎãþ2Ñ#£?äû?#‚‹’�z¾ãcLÄQ gâdC¤o­³]šª.'Ç.gð ÀÞ„¿QJ lÙÉM Ô÷ëDR9)[ÿ”Þ¸ñ·Û…‡XkJ_«““cJ8ÆG†$¦ª�(‹V’¹\/d^I]0_mÕµXŠóÐjDÿ°’˜‰aMP  u ÿ>yán ýa;–¢!ßóåí/Û|u�:s®ÜGa”@ÄÞÍE­Vœ©ËU¼ú/x”‹¾x†O…ÛšóÞzbË—�™R”�ï8TˆçKf 7ÓI‹!pòEFUìAV¯úx=�3J+A†r삃e“ê_íPÎVîKp…5__]_hq•±YDþÇ}ÈZ@ñÿ(iiH2† gô/ÔÃdBpÓÕ߬š£,ðŒu‚%%2õ²ªÜºêsƼÆ; ì0_n\ð$ïºâ'¨_aóh)×gW*˜»íj~e:3 Y6h®§ëˆ�& ‰®�œC\¨wÁÐôö(èNS}™äBúÏcíéB9ÆuÀúDä¤9ñEÚßôwfv9"ÞM�-õ1Énm•2ìhÆÞMŸÓ¾G8³âVòºl‹ÑWÛLÙNM4ª‘íK-”kÏN¶{ä"cŸ�:´+ •ÚKö‰Êž(P³†rY$,z»¿ì«¢c¨bUº6ø3›ðÐ~C�\'6ÍÒEJÒ‹nq[öQô…+”0»[)Ft >øÉ+%GèK`¸=¹3°r>E�ƒ=øÙªk˜þÚ=6€u¯PŠD.ñ«‘oQ,JqøÙÆ_V/—çq7OzLL†±å6IWjS¦³½Ñ°Š €‚â}£ òö·ã/¿ŽÐ�WÁd nÐå][�Wü^D–Š'Ðjç ”ŒéÞQ©”øhlj½³ …<öbVíØ -D�0ç)[¨/Š3„©t7ÔëЛìãlúÀøAÅg„Éef2OÓ��‚i(ÖôÕû6 &L�¡9MÓÙ ® ¶½…Mž| R/Näa¬‡¦«�—<$¡Ç(ksÊž…ÒCJ^ËÚ¡�®™¡DÃzà㌠ ² :ÁæiÈùê×EHž{,ŒšI[Fê¼yüs¤i‚D2…ô½“š,|j°4RØÌ›l»®xâ¯pÜÕu²¬É¤xKäòÝxCå{9Ù.B ²}5i‹,³ø<ÎUN´Úù…P¿ viI±ÿ{e:û{ë’ÒëÈ¡ëúR¼.žþÕj„g8�ÅÌÉà‡Ö1Ǹømôd=DÉâøIAœWÄN¨-ŸøqÈdHŒ++jzœ™’Ú°™µ/’Í›…$]\2(Œà…öN¡-q>2OŠ�A¸Úï„x÷5È!Ö�!+»rÿ‚ìX2Ýígve6P[‹ Ïa«ÕcCgütȈÍÏ’.ßä‚´e=£¿ŸKº×ž%xNµ‰½ As¡µáÏf†Á3Û@d0÷G�^‚šè1ã€-ÜíD¹ŽÑþ€±Ÿ¼Ì²¦‹xÍ;áxŽ™Òš!³^3ø,—ƒ X÷ÎÑ΢;™pT6߀A ”ñ;uÙ;k÷隬[ÔÛÒ&SçIHïÄ©]3»�Mäöôj ˜Á6{QÒ^÷‰xì%ýÛW5 ž…ÜôH-îxǼûþ ,*t&ñø!/\ZL/6åµ”ù¶—9%LÈT�[j±·ŸumƒäQ— ã… Y·²£ÅAðx¬4!Q›+ž&çhàâ$ÑÌÁ°C‰ÑÔÙÆÉD£FrÒ¶ey�Ñ:çÈ}Ó­ßûx†(°$iÛ*�\-7˜^åd;Y{Ž#¯!Ùd‹¿sçÒÁÅÕaÞxH7CU?ŒÑyf�Ò«‰œ†é§:]¾®½�ûc‚®À|’˳Ðß�3V>ËôÉrSºiäxÿƒ·kÂ[}ºj“CÓþ—vòÆU²›=w³@ˆJ£ÇîñnmJ„Á�Ö®¸M<à!ú#ÿjO-ä`•?¾^jU,Òl×ë)£Y@œÂ R‡Ir¤ âv°Ö„ÛûÀYM1�û»ãU™`ʸûm”¼pó2­ûìL8S° ë‰:,�4;¸ÜÈNFÅÝ6qË_j^ «ÍŸ|SLQ]¢ G_ÿ�Eµ+aç;é[Ø[ºFÙ8‚¦ ¨Ä  ­ðqê•ÂmbY¹‘éév¥"йóJx– ’r�Øÿ–/khi÷ÿ‹çù_:Àÿn}¨–àGŽvJçuóÈ’„ÆÿÌ-Þ]ˆ�ûÉ{8‡lWf*Fþÿ”Õ{}§cAÒÄ< ?YF}Ç©ïcÍ^ò¬ËΦ°¹ß·®²œ6©=ó!XUD”¹^£´?# ç%¾œÄ³ÿÉGy¶ 2$™ÍDZ�š†ù?ñ©ÿÓ<(ó –YHV“ëXë�z208®dapG›þ^êb8õÖJZˆÃ “™@`Ég·Ì,yˆxŠ\È2~ÝêlÓý?ü�ÿÅgx2²¢5›@ªÊÄQûßñÅ,mLEL��ÿg=„µCÓFš¼š–ÊŠùh;²Û�=I­ñ¾ˆÆ„WRI0§ÿÿSg:CÃÿÞÿ³Ûâ/Û>zÅž!¥ùu’Ýÿ§Ðü§©ÍB¬î/È„@¹fdðÝŠËÙ›ÎB™eÉ,;�#úæ�Öaø›aÉ“‘‡0¢Ñ»¾©JªÃÿŸ|Ì¥¾üÌê IB?`j›¥ÀÿŸö?ÍÊs“!ÌÄKs] M{Ûíây¾p°_Ó ÑøáV‘——`UăèÑpé.&ÑAj.†è%Usq†V÷ÿÛß™ÿ7¿7vÍ:ÔaŠÆ|’¦Ã[ãÇ—Søÿèiõe=º¿é·C-•Äy°‰HPLa¢D¢Ô 3{Ó¸ÐwèœlŒyótu�©?bÑß5r¤s—b‘)°@rX­ S¦ËÚð¬bЀŽ4¾tüö«!�þd–ßunâÀ±Ç#·~gXçO5c6£N:D“ @5§®i�~àP@‘êU*BmÜ툒[‘áŒ%döäB[—–;ñî'0™e1jAMf¦œï€Âáv+)ƒTëžœµžl/`Ñ;mOß¶]‘`öŽ0;’ ®ñØp6K‰ƒDÄ9�¶õy1שêôËíƒ�}íÂiƒÔyl9|!,…*ýªÅ�.oê]FRC” 7Â|_üVQÕ©MH^h÷–„™¢Ä"ÔõPxFWl›#ý~�GÕD¯Õk!Û¾clÜT ;Þmx)c´Ð°ÙÙ;:>B%Ò£¨ b"¨X DXl 5¿Œs@¥Pæg±Œ–ßt’Œ+’±Çþ¼~x¤(üìTÌ)x^ƸxÃ!š ÇV´Ÿ”“^ÞóÜÈòÅÜÜ’AzЬRz�G/e^r„^tÖfÏ_b÷é÷ßp‘ˆ»«¼Gé…ÙèØ>õSÖ¨ßÖ‹Z£®"臵Ң�ålÁ�‹ùfG‡�®C^÷=2å# ”t³ üº(|�C!ZN/u­[ëáx‹WåýQ²áµªÖ0°�zÆ3è3¬©ÏruK_Ïìöé6G4Æ’p¤1à|#g~ôþ°«3>�ˆ¾y[U{gMÅ€S–ºö³"ÓiÜ*>®Ù g :ûªH9ê¿0·@–Æ'/ÅÄRµélIÑýÑ-�¸p³ ¬y,³´@A™W&aAÎÙPt½’¶ç ¹û­½ R¢À*ñOrÊRµŒ;…ä¥7 ÷j1¢ï<‡š|óÄú%ó!0"Q÷ç05Xy;M” à ÈÞtùÈ>Ã)>ÿ¦¶{9&wüéGzÀûE˜¨�Žaà,í´Ýñ}0tv[nu–9Å·+Sp?þ ±»€:Ÿsr/‰uª/Ûšþû?b/Ÿ6 æpÝ T>5ã#YÝ&D&ê²q fžiÁ Ð ¢‡®_tìÅ>…ª}’¤‡à嘂Y:6¬’k X‰”vŽhrR=ÉSZm× Ý:`®¾su¶þÁ ª®s,vÇǹqùM‘ÓL}Žu ™´„ʶU@†�¸Ø¹R¸Æ²#7dL%D梇wŸ«õfv³VßÁ…I‰”n; ºAÿæÄG9š6‘&îÆêÆÍ M)¶®ŸHÑNIža WÄaDË¥)⨧R’j²Ü�ö¯í¡ÊmßT<Ž“{lDAåÚ�_Xp‡Ô¸º ÷É’øÐ�W+¾3mñ¯ò}5Ÿ×êgMKÈ#‡vE.×_HœyQˆ_YU~AQ­4ÖÇ´±RU ýáÃp #³O½ a:ÖN¬°_rMíµÏÒ!®R»Äk;jc4´ßÛ-öÏØÁÌi¶›ëÅžìåaäЈCfžžÂ¹o’…Ïiß\Ç„z)|Õ§°å QqJš§¢­»k-Îûõ?m±‰óô\ª2 Óþ4&¨Ç}wO9,ç ÓC^½éŒ!©ûj�˜øÞ�ïR¿T!né�Ò€!*þ™¸C-ñÇ@ìWëƒëßöÕýé3»¯Vž/[“�EkûT951ÔÃ×ÍXq¹ç2éÑÉÆÏý .ŸØæ>�Ù{´|!î.ð¯Ómé¨Þ=¶š£ãJòãnÀMº×Ñ÷éŽÀU®:0î¶Õ`¯'1&Yfo…’þÔ«ñFØÒ¯Ø“�¶ü�«mXü«â4›�£~žhÍcð²Fv‘ aÝ5?�& zåh€]’hξ�ñæjðÈF¨¯¹K½ÂoŽîE"ÞÒ‚ŸÿëYPŒ$ª[sâð„cW½Lu”�ÛD)Ó1ÂÚÆW¥­�Ò”„Ä�ûûÔgc{¼ïÆ‹kO† Œ÷·f­áßã6 úˆ„F›U%r)7ó{–GéU©ö®½RÉüÜ7¥—MˆfåNGú(/z3RWËsþÙ~ÎVÝTqk"»"|¦½ÐøN×rö©&DÆNàÍiÛ΄·eyRY”÷&™`û^Á î´êEõŠ€�» Ó?P !8�ò�œµ[„§o‘ð½Gû| - ~É í�lÅ mž¡ÚùïR..±ŠÖ7ûm&Ð ™¿ í®©û4ò %ÿ„«@ƒj|”J¦DŠº«[7gEn œ –í1?I? .`x�1B‘þ;¥w>YqT¬ä  žZ°!.ZL¡¥ŽîR׫ÙãÇ{~²kL{dIê…ÐbšD_ëÝ‹¥iêXf.p}ßÏ$¿4ÃÊ ¡ô&?\ða‰³á~i Ãx &)ê½Ôý¯Í �¡ ÎãX´÷¡¹CÏ…PZLŠ}»¤MˆvŠ*„5l–ù™ÔHª� ÏëgtÉIËïØxØcïZpÙÌÙuF`Æþn.ÏúÜ]ÆÖ¶ŒW²ËénnÁÛ: qnš‰ÀxUîžS —úƒ»m0¢h,ØvL’¥-™¨9çkÖ¤ÓB¬{&½¿ï°“|ºÚïF�@ì�µ$»æºI N3i]¶dG™ÇÄ+VH]½¢P/¡¦¦Ù‘ÓB,ý�¥™Á˜ÔÝ,ëívŸ[ýK\4¬WÎkíbö†{kUß–8î\o›ü¼‚ÆÃ$*wÁ_ni‡å¥—òG¯ï2ÉN!& MH« ˜=:$nм)�c!»�"}ü}7�GIP²U�N%DU0’D|“4rüqþ�iq۲пŠ×[¶yEI ¦¬Ïˆ¼ã¦”ìáE#Ó"£À ±ªÿ—Þ&pFo|Ã2FãýuŸaNCŸÜŠ�‘óe%P6 ¯ ·©¸Ê6•3úùõnÓm±(aƒRU?¤0ÅŠçG‘�ã^_)Nh�Û ,Ü” °í!®È²¶ò¾pyéÙ$d/+>XHü2ÐÒŽr?oB´ íÊà‚Ò™a×oˆY?6/ƒ¤“ê¼õ÷3|ô�H¯ùVR½WBžWgv»¥ž·ÕTæMó0Á“Y¼0£5µää³(ÛLkóÏDiF"•D‡h³%QÍúÂ6ÉMˆh@NCÑ?o;�_%Y5ïÉ:FÑOà9N ” ‰ÿÉû6u9'•r8Ý aŽœqéêp«ÏÍ™Á˜÷5¾ERåðµd‰E*l9Ä�ÊŒ³wàÆhZéfU“ÕcŒÛ|ñª?ߟ�„Wì‚Owþë „%G½·%ö²[;ìê(öbɰ�>ÉÔ£‡&Ë™ô�ô#]nÓ¡€á{=‚±Ã<ñ­ôr6 ŠöÚí¯�ûÕÞÙ7ÌV”I¿ ­Q×§‡ö†ö%¤b4ÌœÌ[`ï$×·ì'ѲJ�ßðÎ¬Ö VÕÜ2ÌÄEUBÁåìÂ1¶%•ÝÞV’¦„9þ¹�ŠÆKåô­îÍð 3ÏV™E´¦œ%Ó‰"D‰”ï �w"wÕR¾«Ù™¦ã;lòæ/ü)�ÚçúS!õ~ çl$:±ß"Ë5Ä-ì!8O*z¼Î�>ŽJ¥Â!õ øuyﳃ‚æó�˜¸�Mf|芶m›�óns ¹vn19¸ÿÔ´H…ó°ºÿòŒeÚRæwÇÁ©úCõ]N�…íùœéÃÕ!.ÿ„¹€Wn4o õÃóWï_Iô?›»�T Õ¤°×ùWW÷Hoeu ¬L˜°GÉj¸íAA¢¿H4™ðâBñÔvÅç2†dmä5EÀ±Óqbh/ŒþèH ǽԵå­Á’æ.‡}WtL pÝŽp£›Ï\)çˆö‚ì(ˆ° ’¡×3ˆ »{vBö¡ý£¿B†š< I§Ö´Å(.9…ý,!�ãiÁq6ÑË«Ñ Œ+-XïðhÝuFŸ†xK5]œé¢%K¿¯å ¯dáx„Cͺuƒ¾ç)­cþ²“øøŒ'ï0¬$€ª2†EÞ°âŒ�'²lõ×ícÄÝw€eõŒxrA¬.ÁAPbнÉ‚_å¿€ºjBŽ¥"­ +"·)¹ðkq÷ÓÍýá5�²V˃vÊ&­[&=ÏçŸ�®áS&ƒ\1ÀÛl¤ÖcIŸ` MOm¹#ªÚ]Å�tùMS¶ÒÙPt·ªŽ( ~i�”®üšÃM,û¤Tn&·JæìŠæ²wÚTÍ-g5ÄHéÒqè8ø%Ì9]|å}C#iÒî)C÷dǺ[>e‘¤-¶˜‰Xe�‘ÚÌFDeñóô°wÇ+¼D‘W¶q¿D›¡éÙ·í éB¸évgĬ³A®ÿ࿎º£A¯ÀÆ}T£Ñ‘Ö? ’¢r!?I[7þÀej‡¿åžX›0Ù*êw+³ŒÔá{{ɲn¥t l8ßd)"³M¦Þ1Ô1‚ÝF�õRóÆÛJýBN+–]C(Š72­"Zvöû8¢êœ¬i‚è»Sc'|Æ=ØŒ¢\†VÜ…YûÆ›éà0«ÈèT¡’69‘ ,ä)ß±‚4¡ôðñcۣ߬v?ÁN�8¹ð~›š³_B£‚ž¥–ãí¾Z~G…jjc(¤ôGËÉ£óä@%‚ÝòÜí€ÖÕ:±Í÷EÇGà1ºÆÞ9´'–t»˜ÃœZ¬ýiïÁ$  ?ñŒÇQ¯+¹±oA ã„2¼w¶s·T^v÷__¢0ãŽÎ›>$g›1äÒ/Ä—?€¯1‹„mIä_Cû 7´®‹bc^3'HΞÎLºŽðàHºEkV.uâÐC®ëvô³&ª¾_Erö}nL`ŠDκWPÆLz¤NYøC<ôÆôò�9TÁ[6kÙäÀ¤_X �‘Ó0¡°$c�>Âä¼wŒ~ó¿Àª´z]÷!Äm…é€ïBýt±¢�׿bÆ�”zÔÙî¹öeß]±‹Œö½ÑJÌð« �$ݱáÝê?½è�mª¢Ž‡TÉ2éö݉ÝßÎÀ‹¾ŽHª�s«¢‰Y[£·^q0ÒsRLq¥yù¨  ^$Ìî.§;};ôȦkÄñhøò,¥¢)¢÷Zª|¾YÔÞ¯ Lädör¶:;— RDO!vó¯Ù–<·�]܈1ìâvòX94]uQv«S[OO¼´,4QĬ ƒ’c0Èï—þd­¤¦½Ÿ‘C‹k¦«UjÕ¢70Jáq €ØùZYú•¥>g4ܧÓ)^Á˜ˆòõ«<•�¿%,5Ï9eƯ†ª¿}�”=9¡ÿ}?—¾T¬À]øùÓ�êsÝ X?ᎰYÐŒ(¯æÌ‰°e5ÞŠìèpš@Ö Fiâ­¤%�õX)øª�QqÈ{x툉8á`®žTnõ<ü:ºœ„„C&hDݤlq@8kL€jEvñß~jÆn×Ý,ï<“O]·6U÷�Óý,ß›dZ1¤‘ø D5³0wbÆrŸx¹˜øÉH-«O€�QÍ`ç§c,¿Cú^d=*d R,m±¾×²›2èvc¹Üˆš7´¯‰ÎO• ¸„¢—C"„æK[àªÓÚ+íÏBß^>]BÆ€~%%I+š•OƒöAšS?’sÇO›yu©÷*ßÓçmás¦J®èõgñ²«|Þp§î(hS˜L ¹Ÿçj%·+ɤ ^ì¶©Úù>~•ÒókbÒbˆ?øjµµÁš ö¿+Ñ1ÃÁ{_;ÊÐ*}ÔÈ°È ¢DÚø”]•·c„=–÷¥Å1ņÄCÉÖÈf¦É|,€ÜÃzð0À´ôt—Ÿìoâ¬2˜*D«W},ØN¢­þA èH|fËrëÒu.0Ú’—3þ$‰7M}ˆœƒlj!ù7zÃv©e÷C*óŒRp™?„kyà<¢Öà…ê a°ð°evV·ªB/zÇ5¡Z$î¥â†ÏÅ2�¦âûWiç'Ì¿ë&PÒÈÜ®Š~VœR?–äŠüöUÎwÍDù@ÁˆpSH|~Ô 7Äwª‹=BvVÚ¢9å0”\ZÅÖ K?9ÿƒá¥Ü�é!­<Ú}-á/ËSë8…,iX9_¹äõÀk׎ŀ32ìÒCÚ°ñmÓrC|]ˆ8FþlGjx»àž¯Éùü¤thÈ|±Òµ †„Ó–cÀtOC“åhƒÚËîNÚÿïV²çŒ8©8-‘숉˜8¯½'Sã & qÕ8ÌG7;» +ºdo¯Æ&ˆC²O¿Ó{#³<Â<ˆÓV$ÆN%H‚ ³/ŠÍ®ÒÊá ¶‡;”’ð~ÍöG`'%SmH„ÔÍU¥ô-Àú÷ç‚I³Ï rò·¾8@w {óÌícGfB�r}TðæTÆ´o‡­ÞûV6iøõÚª:Ï?ÑáæâÛ÷ mº/ըōªÄNx…±ÕŠr)•9�§ö4гÿ`n¥ôT J*ŠÆ—o—YÞEÄ{ÂÁ¡`f‘Z¸Á€ûLÁ—¼h…뼬ô;,šÛðìz@ˆÿE› Aâ-¤“/âÚ°r Žª’cðU\ @ŒøÜ“ÞAo6"4£?7…=öÒW(5ðÙ0’+áèr¼Z %g.»@=›Ò1ŸŒ•3ånâöτµAxOv•£—§&z«ßûRSss*±?ØÀÅQ›b&v.¶ù^F§Cú·ÙߣÕ'ä4Ž%y]ƒ¹õ¹²5 Ð𫨚pÙ1{»õÏ#àÄNùÙäœ9û©-,~ò$£í‹è©ÏÞ„ŒŽcFÚ—îúߘr†/8‰ÖeÉýšyï;ã¿ñhÕwÈõɈz—˯]F_µ±çܽ7¨`ž�ßUêÖ­Dð6,¯¡çÍüx‡ iÛÌEü+«Æ±•‹Ì¼þ/¾–‰±ÈümñbV¹Êîp#h]¦DÏ@> lˆ9]U�e|ñ–¡Ý›˜«�$HéÏød±_¨­*–éé »šš`´"¿É?¦çPã ùJ‰ðË:Üõ¿<ç<Û“ÿ–±©È '(ˆ_YRI¨Î0„\_Ã6{ÌÌØ`›ç eÂ5›Ô9Ì·kv‹°ýbå¾…ˆAµìã´X,�loäûj‚å§^~�äÈL˜eú‹ìþµîb^$AŒwµ,{Ò¢dÝ£¶˜NR¦¡êÃyˆrŒ@ÄGæ™çÝ�¾Üðô” ûæ°ù¿¬3©™”Ã-×@Z˜‹èrlÁ² AªÖ&F]áóLÕó¡Ë0�¾¢þ–‡'ªqOg\ªõÇzD¾yW€ÚûŸö_ >iû×°žþ­äCãõæ@"»ÍĉšÊK(÷ìôMYç]9dGÆ… il .­GñË©•Œ1èµ@GÏ çˆ½ø7%D^n~Ù†ÌÓXmbr�ᢹj³nú™&Â+7š”Ð(wʆ «»$ˆþgèæªS±Õy— å룞òÑ+©Iæ.{#ùõÅhÄ�µ/ju›BMì�Ô:?:Ü/¬¢¨öˆ½xÜ–qjŒ§ÞÄ#W“D%j(–(~–ÅUª# �‰ŽÌ ß4Oªš·ÅÔ—N�G;õÎðaó)¨3Yk°M—’Æ×+_Àaó^8ç<Ó)F(¨�Ñ‘ÊfQT'Á9"‚aH ˆ<·¨µ«)³âEÇõ½üìY€]ƒ}÷à`‹ëî¡|öão:SQTlYk‡)¼¤O‚�&c7ÓLžäÁÖmŸZ^•+Ö™ÎÁO¢a¿}ì2®M, �J-©6u·Ÿ:Û°už‡ ~ÍæsSÕTÍ9Ê�m®d+“>ú£‰ãŠ©«¡Âü×_…ÕsÆR|Z”‰+z0  þ`†5™`DR<µ[àŽóç2"j%§ ZOÕ²Ÿ‚)¤¾¶þËÇAŠR úÓJÒŠÕ˜¡Æ¹æÐs;æœA$ )5$çáçQ÷\jÚ:R‡Ø|Š­PÈdÌx.ù Úò Ü‹� ï–x„KŽlâ¦ÀüM•bn�( *ï|Z».©j�.c"Êý²™l‘Aƒ[ Šz“Û«üÇÃ�á•!È/÷d¾VÇp´Œ"I¡�[ZòB†¾Ä½�³ñHw!@ª�GÎèú¼n|°³Pá>¤�ܦ)smaÇ6a®Ä1¬ºSm(šK—õ1†Dú†­8ì9ÆHÚ'‹xiÚðĚו8W�•3p�¿ˆj/ý”æ.2û½Ô0~¾åó¾û9QÔGJÅW¬gÝ©¾™Ð£·5þÖdÄ›}í"ËoätÈp1µÐ�piðª¹ÿÍD*ÑlnÓ� ‡Ú“œKtôîçx(£ÀcŽ å¦íû« ¾!ÚU“7">=H—´ï+ŒFJoC†ÝȱñÐ0âzÖ&H¨Ît ASO-:KŒr£=L[ÎÄ!@ˆ¦´G˜'Xxé|cs"4ëG`t�t*½áçùàÙWl§²‰ð4BB?�…áè‘ô`S l"h(á³/æñc”Ïåx?Ýa�~—2ØR^AшH}Á—Öd‹”Ã.+Ö@?dtãhI ôÐ&Þfùþa©ÐDñ ]›ÒF¶ÉÙù¿R“óœ¾�îAIJžÀ²q‡éqx¶2#U¹aÀÒU“2ð‘“{·ê‹¿Ç?@Û‘YLUûQª ɶ„ ã'‡˜È,ù¬4wˆ—)PÓÇ©�vµþùôöC$ƒK�œ…~CÏ�c¡øÆË;n4g:CTåI(z+ý,ÕCÿc•.ùµÉÌ:»<À 6uõ3B?LùèÆÔªwHX†¬j­q( &Ó/"asÁOèóˆø‰}çx4¶ÿåN»`µ÷d¸TêÙY(ΰ“‰ùBŸ¯Eª�J7ŸT‰Uß’“÷ft¯&£ØwOa%–¼­kÛ–ÚjÒîUYÈ—Ävu…´ÊRõmwæÕ`»�åÍ�j] Œ#:5ŽË÷3)£A€ºA�7Fíéð±¡IgÉ=ùùBZ,§&áo>ÂzqåÁií�@ãŒKSùeg;H(s”ÚIBì€ëÿðÑÕ”ÂIbýÀºF .WþžyÛ_ ÿ•Xú´J¡Ð,T‡Rª®u2Ñ·ÜŠ2®mƒññLåí¿j,2dš%Hì¤I[îOJù’wˆ~‹N6™õ?tŽÁ-p\ê�Ò±[Êø£„“ Þ»S’“ðvÆ-^ÌË÷úåVç0õÅÇóG™œ|†–^ø–¨Ä›gïJ,Êl{6äã7‘ÂÂŽÔú¦ûJµ__< º=*8^WÛŽ+RFb¦þsl.KÐQ-™€­´f_ˆòr)M9N>¹7‘«U¦/Ø-TLƒ–å&"pRí*Ë€lãF=ï‚áa^Tú«K„Á%º^ £†å=ì,uŽ#¾kÖëèΉß=`ÄÛŠÛÚé!NAº­ñµëë^Üö ´`?±Z�4dv[À�ìâï^YfÌ*=U]øç¯J˜‚ÔAÁ =‰+q‰'%ì½úiß ln'gÙÏuê`ƒ øtb‰0;ôÀ÷€âJ™yzá¨ß¸Gòï×r·N‰¬Xó'GÿÊ‚ /x„nIÂ\oEç-«~ÅaØ�ì§)&v¤ÎtèQ|OøV­Òvó}5ÓZ“„Ô²Ïl®F]ú1¸ûgÛ’àðTPÁJãŒ�p†“ÒNý™®j§ë�ïGBl´¹¦ÌðÇÇ ¿¦Æ¾!Õx‹÷âΧ¤Žª{}Aη ¸lX�¬V»ÔZh§x :â�ÇÔê¿È„¶á„ß(AÈ‚Úåbü%•ÛjïP sq2e‚KmqŽs¬£KjšÖñ˜žŠ#C¬Mù)[‰oy–V;s!ôJeë_›]Öþß¡Ï�ØÊÑP…y‹€g‚©�‹$-±*ñ¶<¤­p—åÙ¤uy!ÍåØÌ·B¿bß4W¿ºž«Dm9ÙyîÖèØöa?ÖÆµü•Œv‰�ÐZ××S5ÒÆ+hÄuX)&[è)…!üp‹0)*û“Isß–-0\GàÁ[Y^zž®33ÂøS‡«�ëÄ©�ñ-¡n³(!šyw�ÂÐi¦9;–z @Õ`5õGa×ê¾oÝhqZZIL™®æY»}!‡¤Åâ%¿uëæK˜|ÂÿŒ’÷P Ð4¾¿Š ËBÎÄ&PFãè¤d9”Øzy:±VËJÐYì� }Iu¿nØ�-ùÉNþŸÐíÆ{ˆr\šgõ¶¢y‘SZݸî“ïCt=–ÿþ¶„ÕBæiFi‰r°;é:ø[ê´P&Cg*ß¿¥WšðyÜ@(¡Ìârt¾Ý½êÖ ºîêõó4¾>å^µ™nÒ œ-,¹½¢§�/€Ì’ðæÉ‹dâv£´Gg‡no€ô€Ú\ˆ»m¸ÞB,cäaVÔ¦˜Fmá¤Zô‘ é}*û€ Òa>0`T‹q´Oµ$×ÍB?Žm&N£7ì¨] IoÁ8öôîm¶M*`IS­¯Êáð¸‘QÚ‡ÆÛ¹/[±Êþ˜]¥‚±6eŠ2}—®]ÿÕ”V¿²¥¡ôN%‹äO–9c£‚�¨Í \ NØ×< `�=Nê]g\²Ü47�²Z´ñ—,½�Æéw h”éE6Øô±—@‚õUc‚ ”â¡söïcù“d…owÞ#‚%xzìŸëñwXÒRE#†^ëÙE˃¯çT{^ yïÄšu‹;ýÞ,„Ûv|Ó¯ØN5­­œ<§9‘äۯ鉧c>\D+°@ð®a`9Óü=‘æµÕ(°GRÐqÂ.°ê …µŠU˜ô1å`€²%ù7žèÁã@ü1nHNy†�#sßÅê3;· ´®ŠO|NÞÆÿ9ÛÊ›)ÚQUsB�7h¹¸ê_Í:˜xÿä'°o͹JçRãÉÅùYKðÙC ‘U‰�ŸMIÛÔoc笠ÝQ%´bpÌÐÇ5ŒSÐô†ÏoP ¬³¥[zÿúÇ!gI>x å^<㿳Ô0¨ñ3ŽŠ­°˜¹~ÇêsyHË[ÐõdM÷#Öúéiï¢#¦k�ÁJN¿ ü9—JX¥<±ùLFæs…Peì�‹Óíj${„LÓ¤Ú]ûû Àº\ùi÷‡ëðf+64}À õdŒ�Ê¥NuÙö ’øK0âô$ù?Â$"ì‘°XŽ6ËÒÐfÀ«tîj\ÌÝU‚²-‰A¶²>k!“w~ÌäÛrï*¬ƒû�ßøå°Úåp � °¢³e¥$l ý[ñÁ ž×YUϪԩ ]vd>÷î?ÎóŸQ0ݱ÷ŽºR2J‹ª¥¯ø,Ü;±²l>¦"ŒhG%¥¢€‘Ã\ΪŠrÆ¥Ců ˜hBõ}ó´«Ÿ<£b[ûÜàV™!YEÖÕ:ÝI�ÑKð¬‹ì-q§w^ ,‹ ž¬—b6Š"r”Û �.«O2ÇÍ:2Ç2^ËH‡— 3.Æ^wã¦ö¤�–èžGBö.IAÍ8*Q|°Åõȳæw)!GÁu˜—BÖ$Þ¤¤ØÊM †m,51óÇ<)À$N�šiC{4€Ñ�ÚÀ¨)¹u‘ „ZŠç$ye wwýµ@¦ˆ_ЦÞù 3fr£Ó[ïÓ»v(1MR%F…¼Ze‰©Û™‡‚[du Ñ“îŒ÷l%åEev7ªD‡à!¼Z¯~ï›FTrœ™ß’‹²Ÿo‘àè/¿*Úùý±ã‘qqQ,‚ÒuÂç ¹0@ÿ¹ÇÕzØJl¬IÓq£²§ýÉ® 8oZÁ‰Ôæ&—ÆÏ¯…´ÚB­Êä ‡î¶Ô¯U8:›¥û�R™ÉlÎ:³ÅÜ�-ä•⺖¿ÎѰœ4�F²OêB‡^ú„ËŸ‘É_9ðö—¹­AÄßÕàõvZ3F[¬g�V þä2øÍ=®Ú½k‰}9Ñ‹dØu®‚̪Õu`L6Rõ júC öÉ×v„‘S|ƒx Md¢Jܰpª�já±ÛˆïQÞp}Säg£q§žßø ”ϼ<Â+û }ÄG»ÄW:>„¤6C “Y¨OD¢ó�gé°­Öò™ô¶­õ r‡¤ãTià^Y–6=r WqF­YA8Vc*œI¿Ña?ð3�y²pã6ÁÝ& …`�Ì„#ã"#©Ä^8«!q£«14›‡†[l¢7¡‚ÂJÍ rõ’@Õ!–ÅÕ¢“ÁµÛÛ^Óê¾Þÿ ž¹,â�k|)‹�#í•Æ*ŸU'`ôvLñ˜UÇ'Û¶¼[ˆ~¸~ÿsªË1*”«)þÍýtkΫåÏú�äãÖ³<€T�Ô82kº$¸jø‹{äsïоÉÀ¡¥ˆÛ+ξ»EC›Ç‡Á ¹í¸´MDr‡D?vDb’tW5‡‰rXµôÊ!�—2DcÃ'ߨ°_ƒÝÜß2äë$c2®çH(ôË¢ç,HÔ>cħ¥>vSÇ`q«\œòÈ´\ž+�ƦÉn4 ,h$ðóyC™�/íQḃœ4Zòù]›AË™Á-OŠ2yg‰­É^§ ¯àgâ³Z¦ª±7Ôÿ+)í¥7�Åc =ÅvšË­ºD‘/¾Xòó±EìY]~c’[²ó]¦˜zW§“{§¿W�|#ºeÀâ��~œPaºÙÁmès‡P�{§?’”æÔßI° ãþý£ÞiW¡d«ð~¬»í}„3®éCòÅŸ V„qÀ¼MlÈÞ=û¸•/ -bw]ÅÙnC Ëm�‡üˆö%e<0RN–Í ÙÐÓœöX ®™oO{ädb5Æïž6…}Õ†É�‰˜qß›çÇpRaç^;— 0ym§Œù”Jï­uÞø›GH' ÚJD‘ª'ëžžŽ°i©*¸«¥ý­á~Î@„>ÎÚÞø‹¬³†]xæ^qìþó| ù˳áņƒ”^Å8à×y�»Vã¡uµ1b¨ Ϊj=Oþ®´¸Ì7¿Á0&t_˜2B`E¡d,�ljí£øB&ZÄE{muè—�~zþª×§!'ôeYë,�l@+Úã�Nž( ‰ÊzãoK"I0BXµ”l€ µÝ/Ö0 ÒNš—!üõ:,ó¢²íq.ô|j4“Qæ7‹… ”\‰í§V&ð2,è–J§?ÏWØ¿«ýxMiU± †Ã V<ï Òʱ9°PÓf´Ã´º �0d7JPÿ#ý=òæ|ðB!sGm ’@¯ž=AFiëÊ6áÏš¡}hxš?3G±š˜æ\Ëób­@�T&Á6„ö|ÃùÄ6PŽtPÄRŒtÜ=º�Š9­ý½òà;5ûd”„_ q¼!Ô’Œ°qb+_µ˜›¥b,ÚÄh2[1ÛNE F™e’¶»qf²ëÝ4JhÞP…Ö`#½~iÚæiJ ½>øt•ŠˆL)TœÀuex^Úª'ëøÈá2¨ï‚§»éx5G$¿*Šð�/':†ï{þZÁKþÁw0’½Çê`k½? íõÔQÔ<‰=‘ºüÅÍ·dò7Z{õÖyÒÈ.�þölºXøØ • p“; N0ýÖZÒXŒ1¥†ßõ³ê±sÝF·GùqM—J4¤æ"wªã«ûOÍž't§R#Ãó 7ԇʳh0ãܮޙ ù•^ˆî1,>«zû]¦PÈ‘Š.9VP E¤æô¦al�<��˜â�½àC[ÂÔÕ¤ƒ%¨šK¯�-ÍË$¢Pó¤Òe„pd@¢×Ѧ +üΚX®Ûbx«Í®nUÛ@Ì. høñ·¢ÜM¸ÿ*ð³œqŪ‡—¸}$³ZÓñøN/%ûåþ¤YhÈbeì6K�Áš½jvIÒ©Ë–6 ›‡ÿ?}Mz.A>¡Õ¨àCÄhœ“~»êËâz°šj}Ïù^Ú÷–Hy(EÔœÔBžmQƒÛY1V €õ_¯IG>vëËñçÚèLæp*׌,èõꌿ 4)o;6Ï“RÖY…¶ÉòTv­Æ|ìÇ`–¶/©;åÌ0üè†ä’ãDË™ÄÝv+Õ˜Gã”.²ÂàJæ¥ÜAp `úíµ¦<Ò"ƒ£U‹Oº¿�Å8,ÝlBmGñ9ÁE¬íÅ&¿ —Kšinஈq,`ÊrÿÄ™Yÿ1ôŠì §ŽÞHc~¶%ÇVzß¾l�¼ŠŒ=ÝsÞ„ùãÉ9þžX¬Üfˆµ6úD” HtÄáj:+XL2z}Ÿ¥Ta@EýdËo|j4,·�t»öê‚&ï/×v€æ`'lcûu¯ì‹íúB­Žy•— ,‚INÛær-¹¢š-y÷rðÁOÑBj’-Uà­­¥cT…U.1Zi¼‰å ¿uo×@BYB÷É! s¶ŠÄ$­·ß½yÝX´‚¨ <÷­š¶ŒŒ•ºî¼ÕM檱�Û›3Æ®½‘ ÿ€Áhòó}h,XhÍ?e �½â„– s¡[8�}&g5`@þ¦!™øùžÇ&üLdÛj·N㜧®’J• ÇX� U3ñ¤zù�æ¯à G˜xC{å± ÚÛN‹ôÅS(ò‡PLðâæE¨5]ݵ’}•ùã?'¥ÎàÔ²5áeÔ• ™'¿yæ6H$™ûrb*L Á:‚劢-ÁfÁ¼ÎÌÜ©3Eëªí�8V�Ø»ÿ³ÔH™#¥¯ÜëGË,ÏQ½y?z—†xRo)F¹jÁë甬w8Ƭ1ÛqÃi•Õ>%dŽÈúûó|«Nq`§TûI=¹#ÅãÏ2–oÙúxwŒ§Š'÷è:< î²ú˜ÄîÉ(�H¾¾‘}ýjE²²©Ek6úkàà„´ ªþ¶vk?�ɼy�Y<¥Z.7ç9bïs‹�|°n-™Ãýö™“÷Ïв÷œ#ìföw*4ö·36íö“)…Pßä}aÊx>F€Ì(ÇÇÿ2‹1n{Œã±ÉXçöïc঑„Ìžâ9­6ãÚ«¢Ü3ú¢®œú)$rO¦p[é�‰ÌÙŒWE£Š|ø5šX\x‹>0Q´õj-ˆþS:\µÑw†«Àï¼,ò°ýVÑOVZ¬–pƒ\ï]ÿË€”©ÉŒ>‡+åˆit ôjl:gHš¢Íq¶÷äÓ¹¹:@¢9€ bj·ö÷_þ¨¼’ë=Ô'¢�è1…�W Ú·Í)|쇑ËÜ0«÷"y¥uïŠ)~•áVA‹âö?@ó5¥Y•­}—)Ö¬>õ½Ü>Ú«×Àµ¤àf •É^?áYݹڭx@,QZ¹=]JemŠHBRvjÎzù— ±ØåòÛ¢cÉö)es1OåÖñ(hñj­ èµãQ0‚µ¿o,ðí3[šþpÑïGÿ�%^¬fœ9‘ÙK-Â`¨Ì),ᣫ% S¸U‘„ ²robíZ{ŸÂÆé¶•v;û…–ò¸&¹€^¨AX,»%L+�c ¸é÷ܼl�ÍækÒˆ/�ÚD¹Õø‘ cüã[Cá`32}P×f/Z“ZB ³ªtŒ¤p: Fò‡~+à^=Ô:Úû'ãä·cqâòküÕq›þgÇÝÊ®SLÿ‡âeµò¯ RM�G]Ö�l Ç®zuÒi ‘xÅéoºùüz”“°{°Í…JK|CÅ`»5¥^‡kÌá‚ÉP`7°ý-+Q¥Ëäs߯\kKÙ×%ƒk> � ±ï¤cY÷Œô@•ÚòìD²ß F9ÑqµS@�B5Àƒý ï% Üb˧۟AlòÎ�.Ù¼UéD‚ßyt&²•$êU |I.iä°cWWÑù¨jH<ÊdäÜÇ3;í á%Å[áè¡�®ßÐmAptU’?ð­ûÈ.%CW 0}»?š±e¼`õøpAmD£œÛ!0ó½eɈ~lêR‹õs®›pdeØ€ƒ Ö· �†£JF¨(5DÛñÁ6T|£2Ñ]5°ÕªÞòZ`4‰™¬÷hÖmñëÁ¨]Ýü;„bÌy{%Ž�]˜€ˆýY¾ßg†Î·ó/#�ç¤ÛEäxäòB›RÑE­Ãí� ’ Ù”„�ž¸¸‹<ÛþîM°o¼g2ØÆ4“ÿ¸(kaü„ j¾ׄYQº­16Æï6—6óšù÷Äp>Û=ª?q;(8£•éK0”´FÙªCˆ§�îÂ×_V…«4 _ȼV¿ÊÉŠd[ÖV÷rŽ:Çüãª5¾˜�sivOÂÍ¿´u|kVµ0EÛ;¹#­>Áµf&R†ú@d#ö‹YߢðV]âʹâ†xˆ']ñ´:ÞEˆ� Ûº�:ÙàÕ¢é§Ó=©; –x}É뿚Ww22r'ÏPؼžÑ.n2{v¥Û3 XS•³Pš1à ñTžÞ î­€G2�ÖÅ•ÄÖqø [¼ ÉÂ?�«×;…½®9tÝ×aE”µÀ5‘‘#Ù3>k&XÏ&¹r$vª÷Ø‚hÅ…“ýÂßø¸u"ß‘édž­�ÂëcÏæŸü´�½!�þ�ÆúU�*w4s´ŒC\!3š¨†Q ÍÉü.gHì“ Nß½óp Â~Ûçìõ¹³»í©Ï?Jåöy¢:Ü,mˆ­=íqØõ‹~Àu6ã&] ^«zƒ®‘´%óINå•_`ÊñëZ ¿"Q¨âZë¤ÿ¼¥¬gPæÿ½úƼ:n"J¦ÇQ¨Éž’„ªÃ1tó+œ°«ChIj>üsœ¡Kí€mèÁ•öuûTþg¬"镌ýpxœ~R à\’9ìàj«’̧ñÏ/+ Ï{ú³æÍ¡’Ö¹°¾ÕpŽÂ>1 fOpºZç#Ý×úá=õĆev—>îà¿„É©Fþ>nÃ_‘®•ˆšª¡’ŸW™û‹F¾„&v°cáæ]6e ÿ­™ž{K½0ÎRYë~ºˆtâÙŠë£Íµ“K Cκ’¦ÏÅwB LØ0û N]Út/Žñ¬ ÔßYE³2Æå3 à\̶ô°‹N«>&áal‘�áÕ¹„�]ŸH”O £Zœ�V��l—¦‰Áå¬ý�°�›.&Èææ;Ï4¿ —ÇÄ T6£—e#|.•™áCø*òˆ¤“åƒWŽŸEõ9_/�è×HüLv‡`Ó……Ÿêo§h8”ø˜cE¢A´È!ÉvFM!‡Á!«dÏÛ› Ñ„ä…Ù3ÚëÏ|lý¨'/~ˉыù¸¿)±Û­pp�Î n§ ÖÎt+´»·¡í»Dá,ÏTŠ3iˆ¥N¹v’R’äé°qÕé ŽXôMlêße}¡Î¿^�g�Q× ¥s_¿ä¼Ò¸eÑÝÉËkBaÅÃ÷¬°N/ßÇ9Ã)L–f;9±Q3o€ºª‰”ìáúFÜâÿü-•"¢›*-uÊm½�Fy`f,.ˆ£öÁÆ)¦n+ ±E|Æ  )6{yo*¬Ê`R�+6Ô�L@E�Wü_º†%˜ÂÔ5‚SˆbzP Ãw—…Fcè�e¤›opº´üÂÕ��hüØ'X >ݹë?2N¿¸hY�; Àà®ù…’—iÞŠþ®&}3•†”¼åå HZÉš˜èʲ“òy<¸½ÈD÷ Š{Ú‡LÛŽË�Ò�ø/ÃÐ’TÔWU‚L`|d�äm-n�;mÞ©eÉ[?^ïœúµ´å›C¥ ?£êóæ8»fã°a}Õ“XåøCâ3¹TοgÔ 'OÛÔ¼z.>ay`èúð$=$Gú÷ÊÙÒ†óÔ{G¢ûþj¦B;†®õJ2°žüÞà®2+ÏÉ©‚Ul9YôCµž0õ¾XÊxG¹*Þ¿ŸÓöCÊ£¨_»·–\[½ M‡ó»î¸h‘O¡®­Jö9ÌÖÍwçÇC‡3®§hÑm¿à«íW¼Ì7ð–½v›JŒbïOÎFx„÷›6M�¿uJî±Ck¡ð`1NtjvsmЋԹ–§ï%’|@ëXˆ‰ê5Ï5¥סß3*lÁTäÌ…^Zd½µÏÑ©Ÿå÷÷‰‹ »�Ðt…“z¶Árå,r™Ôy+D0nU›ü¥òwph÷·\9,%/ÒÝ3]@xò{}u‡b£á‘ °?SÝÞÄå�ûeÙCÉF Öc«*…XæäùüЧN¿Zyå³Kpà8\÷›rÑvò–ž ÉskmÃ/AÅðUIüû´È&’îœ~:±Ìá©”®ç¿OÂ\è‰9\V3«îûöËuµaÀ£ÖÍ”è>8…'zøë•ÂsÔ|þŠ™Ûºï%æ `cñ½\Y ÙúÛŒhW13Ÿ»ºø(Ï£-¶!$µÊö©¿gsÜžŒ|ªØ›Ùv¡ �|ËwÆa„9qš–Ô'�Ö ËŽ'þmÕàúÐ|O{‚ö×úÑ— ìAÃZ,-´/¾–ʰ3u‘¹¨ã-RÊSIU”gÛ4ÒTI˜ƒÒ(`·eº'„ƒBIcºgiñ9�°tšä˜<&FÖ8¢ñ[˜Ú AëÕ>>u�5eŽ#ئ@ô¼(_�@‰ËÐ"æ¸WÎzp%$òn;€�‡ÁE&o¢0Ú8àNqlUö¹¨�1Ÿ":G.y"çöxy©„óqŽœ²²Íp褚Nýµ¢Ì¹¸w%žMùhh›Ý'{‚…N“ƪ¶Éʃá‰ëüyößìN�ájÓ´�gÓ­€t³ò²x <ýR³F•eV³çýÍKo%u€ëÇåks£ЖuábFRØÛH™!b)£âùú; ‘ôÀÀDué­(¯8ÞÅ©¿VXK¢¯NÏ'õA!"Å~ᤛ%UÌÿ3¯r¾„tµÔ /œ,•åóvÚ3`A›ÅucßD‹E]®ºP j2à¼)ÏN1Âìó£¯iŠS:z#Þ)ÑÚ¦¶yJ¹ÚÈ” õvPî¤fi¾~ öÿ„,³Ø'/b’ô~`¿¹ºz¡\˜ºN¢•–�9�«�f#D»�E?xdéÁk^›wê~2ä–&0B5ʯ ÜÇ1ãˆð´=¾ª(Áqo¸;ç’ۆй[Ëñ{®c;Äa°ÍS�ÅË"™\¶§ ‹ñ ÆŸÇ <ÁØ'Έä%SŽP7åYó¶ÝÜ�× Rv%L»ä9AO“‘l]¬wïž™ùæ�U'àGb2AXaÎÑ…ùå‘Ý6±ËþëSh>¯gí ˆ¸n« ©°È±Õ�Ê座]­™A¥ÇvÊv+‹¢7¦ûÌ«TƒU¢¹Jh4ElÝy¹§ý|TØrµošžý´Ô¶îDð‹ˆ)µæÙøÇº2™ZÍ’çþEW®°šSÈkF|Lò:IyÍüªÂˆèÓw'íÜþå—j±å3¹6•ˆy¦‘¯i‚eˆ-„ØË`l¤Ut/ÄÂa34«Ê2<'„rŒü뇹žGö�_ØɨH4¬yÀ×Q2QR,yóá:š“q�o.ðhÚÇP‘œt,0ûez=1�úàŸÇ�Êeóòpõݼ0øMÒ“ü§>�QÆÀ›±ö òî6)úx4Ó¡ øı äÑ(ze"cu[!=Sþ¢œ—U‰ÆdoÅ@FËÕN·<ï�¢ÝÀ’‹@*I5¡t¬«vÖ•SN`í¹[K9ŒWmh²ÌÑ¿…\X �²Ñ/HHËv*¼ùÌc¤+ù,¡KXçŽàвD;4LääàÕ>¶vPÇ]x 2/%Ñz9Ǽ–!ãòp~­Š#§iûFlƒiM•Û�/ç\º¡ôŠIiÓÜÛLñ—ýS?x�mçæb¶Rªlå�¢XÇ…šÒnà¹F,âdójŽPßG‡ÉÃòôÜR ©Žà¶õ�ÿ¨è¦¦FŒ*Ó Š3åë䌀0.Å Âü°×Ü.Kà[YÒã%Ç9ž3¼?ÆàîAt$éLÒ"N¦oñ Ú—¨6/Ô ÐcTMÀ,rXî#]õV]ýଡ?5Ü�=˜ª•òI*ò#-‘®š„Bzîý’BéÁLkZ¿«ç‹¤‰eZ�8¯»Øûtñ�žM›— ÉÖîŒ_¼K¥–fãƒÕ²;8„ݪµ¾$Úâ‹+9T"´”¸m¬òÀ¢ŒŽOç`Þ¤)t²PØbí$ùOÓ*è˜{ù ç/NœÉ¹ï÷®öIiåcß'j¶öF�ÖM¯ô“Â̦n&¹“ ­Ô/Ô´½FÖÆ5îVDÈ[Üó‚°`‘-wbð¯ å³™®lO¾6à`vo†ìIü;ø#p„™<ˆÑ Zͺâ óØ3!è1M!F¨ó³i“û’° ¹0_TýsÚN$O‚x�Ñ€Xz™*zì9#> 1tËs²j ¬ÆlõJ› –cÞµá.Šƒc3¸ûÐT»�ÌÍ[é>Êá�]¬t¬î“ã)rÞã�("÷ØmÎÒê|n§¨>XP¯ýT^±5b—oªâýÐÊ]�³V—ŠË©CÄ ‘¼nc �ÈÓ1´OÑLéûÁN^WÙÞí"ô}ÕÊHBW�§—2 ÚÒ^œx¨q´â»•³ît·ŒP(„�ýu¹�­K�ík"*„–§c|ükÃ÷cj- /*�ó”aváJÜ‹ÁÐäRvçk7nÈߨáè&¹•ɪ¦eâ@Eì&�ã⠃굌» 8 gÚiú~«ÞŒ’ˆäç1�…´f1Ö†+¿™˜báõ‹�*à:úÔ3@)ìj(>Ú² `}_¾ýích�©03aä Ç‚HX�£ŽPô¦š ­üîU‚MèÀøRü�å1áç@Dê§8don³iöÈcƘڼ r"‡ì;Lò�´8©B7�‚Àã r}*U—”±ìkÓ½ÉjhÁ™ÍˆF$Á4µ†ÞÏ?oýnë]…7É+Ò›ù"Í�áRzôýÛŽ(¤½•Õƒ·³GöJÕ˜)f ¸ˆù荓Ï{ÊË.Ô¬‘0§9³¯(E1‘¦ ¥>\Ë{àDZyŽš’�Ljþ _(UE1Cy’°láÔÍ3 Âf«¢âƒ*‚ P?Ndï[ãÍÒpÊQËð—i¯}k©Á>£+|¯ iK¾–@ì 3Â%d§êÊŒCp ì* >¢ZE)äùÊîã’/ŠÅ5é÷[�ëžâuÄ#•¼³U“‰°pÄq‰Ž\ •ôíà3Ûßø—שDO–—›é»+#ku&&zóá¥y•^øÔ|;Ó;ð[*= ExX–‘%mšò‰ÅìóO‹r´žw7)Ä2n­ˆìæFAZ­èC² â•ÑðÒ©=K*QÆ+ïŸ;mËec,ͱMõµZl.}—]óù«k°15ºîƒ›h‘FH�Þ#²öÞKmˆ>*ÊoøéY™¨ðš>´NŠãÖ‘6š(�>\¯áh®%Ý©ù ¦Ú†ýÖF»í4”yõ¼ªµeª[däðeüÔø(Ò:ʶ•nÍc,L¸›R­ÛúŽŠ¡u¸èWC-L¹VÍu6¤¬dkï$p~é–¿V\ä–¿5±tV-ÑŽ@+ÿ.ò†K°†'_Û3< 9!¼gUMë ÀE0anJOÜXM‚0¬ü´R÷Ì Ùcß®üD ÂÊüµŸÛÕmƒÝèïNt÷ªøýjcÜ)P€‡ü ©:Äc*½¾ƒÙûæ —MÛÕc ¼EÀQó㣠± 3|Vô²“;×`¦ÐÅ#ÎoêM…òµ8Ù>Û͘ö�9ô1¿„ÞJ¥�‘ }„¢?é9Ý"x„Ù&:EÓJ÷  nŠÚ‡÷üíQ`èü©~\“ÓÐÅà|ç6XKèHo”aë*ÇS±E¸#Ë2$@8,cuö¿ü8!<zmÓñbø�múçø9º‡¼,'R¸:ºã” 5£°;0Õ¦}Úú¾õ热9œäoÑÐø%#àÔŸ5¢Ux�–�+QÚÁÖL"”X–Ö‚FMæ�Ÿ!p²üèÀØ�‹Ä²‚ÇXÎ…”Þ+¯ Z��ö×P Æ•¬ÐVwmouá3*Sÿžæˆœg>½QG�š?­|[zº ô|3veçU®aËÊØµå6ÿد ™™í>­6õr»4žÖ±>¸^ Èÿ3’Ø÷8ª²YH¿ó0ŒÕD„ÎüD8¶ÒdÔ³U2jÆën‘·í–úÖéCʬuTø~!FhnèâNY¤¼Ÿ¹r�\«”8Ú–Ì™p‹_w€kð~ÛÓƒ�}³b¤lSš2G�òYÚ:9âr ù*Õ›F[ÍÛ9¦¡wü•�°$à˜ßú’¹ïm>}_¨Üÿì*ùI�©u²Ø�©÷zEùÇ-Ò‘M-IÎ Ý ×‚½ ó×ûËô×� BøNÒŸ/“ÙYà ZK–õáœy…VÎûÅÙ•Q�Ø�¸‘zÖÙBYXC4™lCpëWyáE4kåš³\Â}þFǯÂL;×A±èÌäÑߪôá÷²K‡?L¥0IÌo G +eéÔÄŒptˆã¡ZÀ½�9¡ÒaÜ©ö’Ûôu‘úð´@äÝ‚ÙUlç]<'mŠ )&„×v|oÆj×öT“?S?àQYªï„ïVeäëîäýªýß)ôg³\ª-�_î�ƒÍź”Þ�ªô7»vÆy5 }YÀ�"¾¤¿ÿºOQM]8´Ý4GÞÜ9#ÆWB×mÃÇ>ôÎ+d¹÷²Èª:äº)y­º¬�”…´å „s¨’JŠ¡��Çc_ÕQ¬C3æW¿o�HQ”"<^1�ª‰*ixÌz#ú9åÏâ*îµa,Â[èd ñÆ4˜�=0Ÿ`R>Â{§X!›­«‡PØ%ßÝnÐk>¯ˆ9{:ûñ›3œ4ÆÄa­–ˆ–ñHy_1¾ºïÿˆ›Ï9-›É8C.4vp=1"©ïûÃÓ�-²€ÈIÙà½ó‡êÝ�§»†ÿNˆö’!ˆ<üQë7Gmü >3eá29Ì=À�†6t«çáñ;ðóxØ´>.�Ó¥q*n—Æe™ŽÔ°âv7áöÔÍéÀàÞ�}ð–¯Wµ �Їuuxc…Ñ_M ^"ÁºF]90ë÷Kç !À^ьߑêx§ ÉÕËes‡�ñjã.2Å×ÕIR¡¼ñ:èÁ¼°íR/Ük©ifÁ2D5 ”¾9Á M[kR­±H È‚|³8“Ä2:;-ÃlÀËÏ«>&mmÊRÌ‘7¬£×ÉY[ôØ Â†%lÂ?kÞÀ$Y‡6Dê5Ts˜ ®o±üPðr -׿,vUé,EêbÙøiÛO1v? è¬�ÙÚµ‹(oU6ȱd­v›·ÁéPjT«ï’M¿d§ê(¾3çK ÝŠ6òÂÁ þVPåî…³ År£W¾j$†Ú¾fQÔÃÖè‰ë!_Ñ,y¦ðN’iH9²¨½¼ÚýÂËÆ„ŸŒ”H“û5�]âä¢bã.bL9'Ë>³«³P1Ï=Ü‚=B³‰Ûè¦í‡¢EKo)b#S"b&}»«¶r¨®ÀÿØÂ¹ÀâLÉ8´jð—«°R¨)­Œ»µ>ýWh¹±'¢eÎ-ŠÔSˆw¼O¹ÄõçíFªFU­Ð Ä¸+´€R¹!ZÙ 5ðÂ6½#Ì^Õ¡HÒ´û|XV­_ ¨O$oôBA†4KÄb· [kQŠúähŒ ­É¯1Êæ\yÁé²ñ¦¡ÜqKÄ\uÀq³É =-S»×P‡» ÷Äî·Èפø:xHW�:3íe[Õ@‘@g9à´œª\Aãs&¦Ú˰îD&Î<⳨t‰E$¸3‘ËÖ½¢ª Ì?Jå%EuíMºŽäJþ”�æË›6} ª8•cÆLcçÅR1d—Fꮾ‰­Û'í ØŒv%í¶°�¿‰Ð)Ã¥‰âG³Ô G¦Œ¿ýuûëøÍ“V_+¬éŽ!¯ýÇvt_*w¦¸TŽñ¸%¥Ï+¾¨µçŒGƒ-„ŽÔ±� YèîMÈþy�ÜýkÄ o³Â.ÇÁᶆÌX›¼ÚÕOu7š fÍä6z®•š7²NñöG‡Ð‡Úòtˆéo>v”èÔ å¢ðªÇ'VÜA]a/¦µœä8åå³u¢ÈñÎ ¹ RÉ“(PÏQ’Äv÷ ÿ£P Ñ8g]êšì$C}–ö¶sŽùá–xC ü}ké²ÔO‡àÀ0Òƒeœ ÛQ%kÅ;0¶*�¹½fG¯ÂÁ”ý A¨Ò8ŽGM(¡Wj¿ÚG—Ü…P+xÀñ�˜³`…\}¥e6wØÙ\rgä’WA5µ…°î¿–ßZÁ¢ æ+”%Ê�8 ¼†CŒIvÎ'"ý—'¤—Y[ù/'Wé¾\ƒ¿ZŽfí½äg°[¡æÀæGŠ…VòãÌC‚{šzžñ—¶ª­ÔÜÚê‹”5ŸBqH¤` ¸Ù� ÏÎGZîûMùu šÀ–$pœ�kŸ™'¤£ŒÁÜÿy¶Ò»Ë÷?GöÿƒÓp¿2ò¡Êx.VA\v•QbÐF1€ñ�èÔòáâÏŸd�?‰>¬l@É�& Ùý¨‹jo ù°Ì>H”Í�96%;BÉca5ˆLÁ Ü9Ô�ßž=qgcÀ©5«VdÃjÚ¾Äa Bs¼ïÅ.ã öÙJ“‡÷Z{V?Fâ½"¿ktŸn�/�¢ÂcV»µ�0xa�âšwÍü>JÓ¾É2ó<Ѻvj‡‚cQ ' ®˜P¥•K!sìÝ/��ÇÂ!OÐõ›gqNíõürùCìàw/¦ÂÏ_§ùâNß _ëáÿ\†ª‡&Xâp|xÅÓhdu d;÷ÎÖ¦Í7/v-l¢`â{PO÷(Û[]ûL©L4négûüß&@Æã¢ña03=§�]ô“/|oœ7rå>nŽJ®Ïàô^¯Âa鈂‰¨šKk'Ôà¤Yé?Ôݬ� ?�uôèk eæ M]�VC¨{DéÂw¿V9[X„ñâ¾½ÖSUÅC¶´5L…Ä ^ãøX¸&>„)SäþøÌ?TŠaš6+áßYŽw5 …�Yµ[ASãnæÆ¢/*oÛÙŒ~hÅ”ÑUg\AûAemKêw«oäQ$[n£ÊÓ¬£VÐÒ±|U£m|A‚eÜL˜u;âéx™Ø+8Óhµ|¡TÆG'UËÒ¡*·qœDç™ €Ê˾h­U7?«(à¢Bó|üN«|ÿ*™ k'‘Çhþà[î�Ɉ²L€(ÉnBcF¾¥=UeݳŒ5ž(Ì�poã4V�¿¼":áC‰Æo– ühU°} ý±£Â4Xw€kõ€1‘(~‡�3v’ZïHnÈgái šÔW�B{E”ÑnD¿_½^v¾“b«ƒ$/¿ª±+Tw˜xØKÚ;Qóz¦€¦-À�Ú¢í�S⪋îeý¸œæ%}Ž—r: >ÏÂæe,=$ŒÜÉ©rݽS� >?Ì=À°á�ÆÂÄšCƒ³¬¸Dð>…ÎXËÓ¨½•Ôíf0¶E,¹d:Xà½æn¢3èa  |–›ýF·²jΜ…±-ÇÉïPßÄšKâ„U ÓYMQKÒôtŽÌ`r,'.»:´Üƒ�?1X&4y¿¨´u*-· àÀ^eÁ $±‚ÖÉ3§]:&8·ÏGyçxÿz™žm›ë~à‚£D^âÕô½&õ}€¨` ý™¾ +žÄÚvx-5døÑ-Ynž`!†#A@t=¹¦ú¶‹„@³7/çýð¨Z_U{œå¤Bp¥B èõϦF³1ûD˜´«Ê±#ÿ:îXWid�mç=…ëž_ŒtΡ㸈ô‹ÁÑÕÐñ~×–Ô{B Ëi¶ ¢ÂÐ]óGùì o˜“æÙD�³ûLm­¡7´úeñ4]dr„”bµì]1C/sm0qÁ´¼b@y6µ<þ]K‚ ¸S™‚¹ ]w°–Ö®¿e¢ç}Ýö”ý­ïaK…|‘ÔyoÝ”R”&J]’é/mˇ¨J¶Ÿ!…Ïq¯à?Ž,l £g “Äû'myhfUFÚüQl×H½~C Ž€)ÎÒ&+…ÃÌvŠisV}Έ‰�òFù¬Ïç–mdÎ}Ó×å­@$·Ä ÛÆ�›°:Dt>„*ä·¦|ÃS#ƒÕÊܘè•q]ï^YÚÙ/¢ÑÔTpÚᨇÊ}} !¥ÕƒÙ©k�;3¹zM;޳6�àÁ;P¿™­I£´'È U±ã;½…º6ŸT´ØR¥ÄÓŒxÈnðeh扼´õÏi0¢ïqñ¯Ô8•8øw²#…ä0P¡dŽ“6<”µ;êÙÍ�œ\„Ó(dVTHÃã xÀ!p't.Yd¯&ú×f²— @]ø›K™ÂÝcP­T»Rã'Ž[䳓°=�\«„+:& �Ì/A^‚1Yð•tÅhrpÊOÁ¨ï*ºÊ´3~ì:\kNZ¢ªµ§{­ À9¶~ux•ù×Lž[»Œrò¾ñ¬¶ÍH¨hàê~B“] x$g’ b.ü‰€þ*Õâ-”˜«½'\-Ⱦ\Iæ9‰Ìbÿê5�Ñ÷8s¨êªV �ʼnq´Š@gV>†B¡œ$†D~·9 z] rx£„^íÝ_zRC8öú䙬v̨˜mIÿ qœáM¿JÁ¥�Pšµb¡äS+5Z{úlk²A|îè™7[á»Kr ¦$™|è‹r�Žtx4üåü'îÑÍè2ý])�X¬;%¬9^0.#£kîNV]nN!”Å<ðk¸£40Ðr­“‡žÓªîðac1S„DÉÓË®†]øº…Õ](›Œä�ÎíìœKwÅzªšô´¦I(¡·Ó¿Wã™qVÿÚ­/óq“XX#¨ìDì2h¥~Â¥úœô�d9íf–·á�–v”¸ØPО1�Ât" µSp|¼žU@Ún’á)ß~/Ž Ô¦žÌÍ.s©FL­(Ï©…Àæôo0L{†Œ�”âSÖœ)ò"ÊDú�&z, J1D7mïN àà”Þ MºÕ^štžSªõÌ :÷ùdUM#ÓsL%9­•æ÷Ø¢°o(ˆÔ…Ø­�×µ©ÕÅ8ˆ‰äþûƒœõL—Ün‡QºÐshvs`6ÈAb7¸üÄ&?)œ‰ˆŒ ˜MïOrr÷P ž¹ÀŠœ–iƒ„w#x_Ì©¼›ÖÜü½¸tÙA�§kˆQÓÍA �HÕ’¸[Wùzª€@ûx‚«‡Vì–§A>–"6è4ìÂv­d�KrzþvÐÞNÍÞ%iM¸±Èô* ŸdÖ#4L,Qˆ–¥ãSâ‚’ÜJĪÒÈe\K�™µ9EÇã,LúV‰éà•RÞÊòµÊ¸l´9“×Hx”:½£¹IžÁPm�4vsXÓq‹«6€£Äf訳rŽuXÑ3ǃjþþþ®Ö�€îÉ•aYCˆ9êá#‹5¹Ï4£'ò4ÎPm*éǶ7c뼌îÉy² vñAÿL‚2QÇ!rþœéQâýƒ‚�6 %ü}ÚW/$aRZ|܉kïÛmRÏÈá©&.«�G¸CY]àvDò؃�’`Ñú¬? ßpJÑ÷°¨ýм»åwª+AO1nê=„ÅÛe�VîÈñé¦!Ë›¾çtüÉòJm� záƒ�Žh¤¿…–çDò ̓V 2Qé>V!Þÿ¼ôÕ-¿¿¢Z6d6ýë“æP´›?$Q¸ŠØ=NlØÃçÖ~ý–Äá8x)„~®½Ó—ï7íÃó!‡ xS¤ñ UYœ¾%·1#'¯lbnS¢ÁŒ"öÕ>C€±²Ïòó¸’�nÖðãÈ[Mæq8Unß¼g]ÛÝ~ÒòÔ$€4%",�€ Å ®,wü_8ñi"l˜tA΋°StûMdФåaß’© ÉaãæÖ:’¬i¹QQF²A;ä!÷â½ñ"gÇI�¾çرÎj ¶�åXõ‹b­‘×ù!ÌA|a1Í-@)ͺ(°ìVFý¾¦JX¡¢Í{a€ÄÓÜè¿Ò ºiˆùÀkÎ0hZ¼ÜßA)Äð™f¡Ú8 ¸äz“jëɊ퉤3~Â}õ8€^r\ujSW;Ñ×j- s�hÂï¹v¸Õ×j±‘NôYŸ�>Vœq+¢,Üÿ--ùnFÿ*‚vQ%ƒŒ1ôÿèsž å/ÀJxBú_¯T±áûTéÁ³àµÖ£ÓDÄÉŒáýìæÞj}ͯ1lë÷ æ(KÊ /$Q"Œf"“ÄÁKî¸.i+"Ř7@}IÄ‘šTéÔ%*y«k†PÀ ÓuÌk…èќʂhŽ©ÛY¯gTƒRíúS9ˆ!Ÿ™ag*K¿ç:ò¼®1xý[�Ú‡õŽ�YŽÎWSÞsø¦òÂ�¤lFl@Ê4®Aýsäý},¸Xx[¨i›ÝÈʦ)Ì–^¬Œ¾‚ýœ¡øý޲hOž5¾z$�ÎwÖåRú8ÌÕ8*÷˜­sÑvì¶€h·º@2ÐŒÈ&8‰˜ñ ?q¤%|ENÞ÷T½ÅT3¸èÝý»%ñ«_ÁÁõ¬¢I2Díi¯¯§ØTŒ·ŽñNYl[›Ä¼ÒôVxŠõæ"_÷…÷£š7†rÙƒ5Þ™È,ðî Ö„"Óö'q…2£ïzV „å8+ *Õ£aZ7S¯a¯;ðJ?¤ŒÉÁw7„%x ÆW!èœ> Üj0zÊ¡£y“À˜‚@Û E¾Dg~¸~fYƒbñ"�ŒNýyP56AoD.äé™gø)@,S»EãD’£)Ò`—S*v·1tcÑö¿äm‘2Œ}ߣÇKXñŸ›v¸�,Yó]rUWHyXá­ñ Û~R�FÈÞ�âÓTG×¶f,ç`›²ÜiT�“æÙä[Ä÷÷íj Ær¬»v�e.ÒóÔóߎÎMŒ$÷~ÚŠð�r`cL)çk®8C¬5kJ|¥Egþ¨b9¨‰ÜiL‚ïÁp‡ˆñ\uñ’Æœ%À Î%³†B\(tfAZ¹Öɼ9!�‹QñÌG:õE†1F‰µ\n DLÚ\Ÿ &b“<õ£Úi˘¾Î±¿¾–VýÚïx(�U­,q|Рƒè�B‚É”Êi\d¾TVô‰x=ð ,.+0úÎÍ_‡Snx[ާ—ÄS© °.S8À>U±ŽÆ`Èç[Ê'COäΔÕ$ý@b´�ug•_4ø(ŒTÐA=@UxÒÍÛ~#ç/ éÐ2Ç&|H:v:³zOó‚/úŽ}ÐãËï> ¹³±ôŸœ³•çù~Cxÿ ,�Ðt†=§&:»¬ÔèºÑÉL¹—¤.úaŒ”4ÂÓ§—<r >¢6¹,}Q·Ó••oN‘º\ÚÞB@vV‹ÈètihØÙô¾~ôµ¥R ê óÆ7�ŠŒ�åMýF”ïÑLÐ:㉮QNÿs§¤Ú¶o�¼¦!›þfÙE‰,о bk\ÀkHŽl»Õ&–wfŒIÊdÇC{S¼b0äMà6j÷†”rão²¤Š� Æ´Ûúh·°¤Ií6‚Dz�®Þ«Ia•™†hgŽ.²á„W¬s‹DrÕuÅýoEZñ¢ŠqŒiE ¿Xˆ¤mÌE¯9B÷5|ÃâÀä.5Ãq'‘È[Øí!†CQF–J¢èoï48ØÎµ—œ—U2ÙÈšsB –ä{àϽz\»Òª/Œ%âl~æ¶Ø{œÄ`%¡ÙV]¡zö`ù ìyYQ•,º�\EÜ�L�à±EI„Dm ç´S‰q�¦ädlÐ-rì¤íWû�¶ó¿Ev(5©÷Ls%Ýäͬ„ ÙQAô憀":ÕŸ3v+oÍÚ#B=©lÑ|+ÖÛIq¶È¶Þb«Í-çKâq háryi÷é§ß…;[‰^9`Dw¯xÙíµæ?Tî÷¾ä ñUX ' Å6ï"Ó°þD.|æA,v,X…l.‚“M{NMò7}pUåüeT @“]`økRífHŒ½Ú%%íøúÓAý§IÈåïŒ��†BÛ)¶9kx�6ü“-†KVÛšRŒå%7Hëºï Â;´AE5Lè^PÁNÉ’G®‰ btN4Œ¨œi±& ]ÁíøùærP6ø„$þÇN-2OòÞº �g¸*bZ^ÍÒÑ0•틺R¤»—T±Pk¤M ²ú±|€=i9Êa«&/rFæËE[gN<å#v QòÓ´Ìu<àżl6핌l1mãìB’O>/ü|_8È"sµÐO¿©rI³TzJv±£Z \þ(IùDì¥Óñ.Bó¦Šp,«cš-ø¢*íYò�êß#mdÌ �8 •X²`ع.ú÷ëóuW£ïr[|84Ðð½ŠXéìàßlµJ�ѵ 4Ôï·Ò#hOº»ëúšÔ¿µ@ý¤ëu Ü çî¨c!§llñb’1«´ 7ÒŽ¥ù?eçܦ�î¶«Ë`ÙX"Wß/vô2kÈd/˜û+®È`ÝÈUÂìǯ!'ÜýB¿Páw ù›ß??•"dù�ôYQ�ÃØ~ÍÜM€Kåΰ&¡ÈеÍý\êµ·QŽ™ô™ˆ†"‡â.U7  ÅYÀE* õåØœ\5ˆvôÏ_ˆ…¥ÒJóºã3Ú<ÿÝÕL©%ïß\Î=òEqÓUk‡@B3€@8Í›YÚzÚÚ‘�íZ¢ç§Ë¸v”´m™ödš UÚË ™½ïïAŸAõX‘ô�gÇÏ àƒÞs¸»’ÍÖÀ…‰GCIdý#Êð‡QÅõˆ�’ä® áÀ…úfçWÐL¥p#¨Öçâ¸èçôH'ÓO©m¹àh·ïÔ2Œ¤ò¸Ý<üeœ¯®s:U°½Ð’ íyú¿A#}{0§¬­wvcy¼,÷gH8ò„<õÉT…�ŽçóÒ"mIê-‰ø`ˆÂ G"•÷]À΢+­ìqHï¿´ÁÈz�ÄHNý÷[ú]™/&ìï»i¾çâ]×¥©+/ñOPp؃GY†™Ö¤Ø{òc¦QqòÚÀ.Üñ:F‰RÈš¥}™^•…4ïn$V:? {¡û`ÈnˆÆïÛ9ú¼‡J 2w¡!uG½îß(Ô—¼v®*än±ñÍŸ±Óͨ¶(¨ë|œ5ZÓò«è%ZÔÌAv[2ƒLáXÛ°pù®ØËŒôl†NXž ¬¢|ðÛ˜Ô£Rè+’ÜÇÿ~íxxékü¼�Yæ}ŸŽÖº€þ%+¯æ"öow:YMwxÇlr‹#ÔÑÌæ>‹-|(6¶ïÂCL~›ÃóÀ»ßçP¾tO º�Tì»jhÀ�xºñ |‹j§øÎ/‹ÕŽ¡�MÖÏí~µßXX¬Ô«v8ב ¬ÌíÖëhO¹§é{�mÅß3à6[6—ÜÿekYäóˆ­ÙD‹éM½«i½Q\F“%е¬ ¾ug¸Õý‰ÔýhR�9û¯ÆcJfç´ŒÐ`��¯ã‘º�å¢� W}Ñ�ñ+²L>n§fÑV�RŒ€î±w€Fš]ÂˆŽ¶Øv;Ä¢OÄ"¾õÊÂM‹�Urgýçù$ †Tªsh¹õmbk`H½ªÃ µu/Þò¢¬ñÙÕc7‚Ÿ›TÔBf™‚Ó¤J ‡G‡…TÛz�Êåj3Uj&2�©øŠz‹>WRÒ·.¨c¯º!· ¬Ì™“†C€G{ e`IÅa±\¢æü-ž¹�~Lû™„Í|µ“Êž ²¢0È5ýOTËãu{¼éaÿF ½Åžuñwí§:EŽõÞc|šÂïÝ®¿`‡¸½ÎOT1³ðB!Ÿ‘;ÙQ¬1ƒëú7Kß”3¶R£fxUƒ¡á8RfÀQÚ¼H52)u+ž^x¦Md¡5/?½¢¬¬¿�+€Á¨þò/Õ?Ï>f4~�©ÐD}€8‚ÿáãûšS¿˜šÒú Ë…jª–PÐÌY©˜îj«žxÕ8r©™·jÏd¸1ZžÛ…‚ÈÕñ£X©ÆN~eÍj{)ûdh5<ÐËÔÿêÔ…JÞ~‘S†ë?]#½ª{�¾Û[�7~÷GeØH†ï¾÷øM:OoÞß_-5sãØÿ<s$ìÔÕì�VŽ æá ƒ($Gê×ã[é, BÀ©å ñVŸC­’»ÔŸ¯Þë§»ŸÀ:QÈçØ§h $øEÍ ëKVÍÍ\§cU¨§fÝ<ö“ª•1@hZ?Ç vì ¯6ðš–¨¡ÿ9øá¥eëÛ–ª¸]°W„™zGÁXøƒ¼5¶n­ÛYÄÚu�˜ÉÚ§Ò¹ìÿÞˆ (ó2ÙĘë©vý;„NèÅ–4®þu–}ÑQ0k¡ýÎk}>nÈeÇÞ*}'ÿOwÐD6×:Ï£þ÷îðÊÅ.¿+tÆ<¯S§EŸ>ó5}R�·LðöK\I}gž7<95 <·C#W׌¨×ýe3Ñ*COì½Ãx×™¿­=ÝS>¹”ÙåÁÝÚ|òr†x‰A~z"„\ú GÇK;#¡s; TÇ”Ôùõ Y�Gü…Ý^’S"®s2Ÿªµó‚þƒÛ™Þ&°*#•%.¤ýúˆ±~…è -K 2c3ÞÐi™PÇöWxTfµš•0ã…ø¬çPg›|jj%à·˜&  wºÍaÃw1Fƒ 5›«`éY)Ì>È ˜ö j(ÏGÈ/Ç+œ¢*Y\#ôëElSå†Àx�Ûÿ57xnÇü©iÜPH€Â=Ö\õ¢c¤sƒ/­Î�h%ýr¥Brü¢øQ%ß~ëÿ•�÷˜~;»¾¼>HâË1$_(ìÙ˜'{¼Á l=_N(@ÆâRµÔÝ..Œ™?3{D«+t¯:Øg9£âÊD[Ù\] ­Þ#õ¨xŸìv­.=5r~°ÖKuí¸"vŸðAðÍøÉºRÑuöõAÑ‹yÚ¥ÿX/³øy»°“vQ Òr¬"óBʯðo7—F"ì:BVï<£>ÿ aB¥ÆîÂ$´=е(c1BR °^‰@1AC؈1LD‹½•g6�`5û´Ë`{ªÌÐŒ1?´Lìƒt°*|}"r_«·N¼ b»†î¹ðëáò8»óÅ—bº¾K–¯€ð–V0¿8h!]&§¼ u]Bu°M='Ë1þ~�bþÅ�®Ò©Zv@j-L{˜]#UŸºãÎîiŽ[NDPÄ4 }aÍ ¢ÛƒÛó7 áMô¸–0zúâéM)n¯„r¹ýAÞ¦¨› FäF¸÷#;�5�zäÙÔIéÞ‘Þ8Õ÷¯ä9Ç–Ö·”[Xn¼(Z[7qØÙÕ£ÈÒdµ,�(—µá ¤�ÞaSËÍ3æ � «~öøòsó`yx›¥#+ ‡§> 3g÷>Áßs¤ú×öñhŠüE¯‚MÅT¦›ûìö‹‡÷ìžÑ;ãÏìó,`îNSÖ–sÆ|adÔ-\ ¤�“Uí�¸4ë™I©>¢ ßèQ O|âŠÓŠ™)2&ïYÊÃÓ¬¥á|{Ç1fð„”ù­U¥(kf™¹œÐ„~oÝFí­’Emob÷3 ‡ýZ³%¥$tÊЂ^ ¿óö·&g£ä]mvv~®…ý™®ÄY8Zb©ãn Ëþ8G^%Ð’<Úæ¼ ÀÛå¸póªbµÖr)6à&ñ^‡€Ò�É0ÊmÐ5¢ˆ³@K�(‹â¨É†s¥¾‘¢¦M�Y·&ãõ6AD·Ëº�4ÔðmMfšåE©;FÅÐγì±wžFO ÍÊf6ñ¶ÆÄˆ{é«P=`’DE!;Ò}Í+4d›o.'Ë:Í.iæ¦*›k¸ ®Û^Ÿa¬ Vv%y.G`bHåd lºâ»eµAy|¯±õæ"Rìg“ CJ½ &‹: -�Ø +"_óêÓ¸}�ÂÙ×Ü‘ZÏu„#»ðýz•6$rüþá Ö/>aŽt¾]…Ç£ÈXf Ø�Æ¢s†RM¿Q‘­Ñz•]w‚Ù˜ +7ÂàÂM)žkt£Ñé[9Tßot7§ŒšÎ»�j}³‹(£&ÖÄÄ OŒž£Œæ¥³ ª”«j9u*=ª¼„Ðrknñµã®™Ë2 p™`EKÙ?èÍÃUÑ�"f¥ûßZ–z=LuÏ‹H½âœ¶@ÇUÏ‚\AFÏ÷’°IšL˜°êÂU’g«ö¢ÍÅ­ⱚ½B–[4G+S¦|züËVDÎgñl®u£Öø#ºXRW26P½†BÜ<%Ì–åŽU�Q–ÉRgPÔW)`1ž»ø]�çôõÞÀ°ÐOsoíÅk'o\tgŒ{÷KÓ94YòØÃÄ_»°A2è î1)/œØByAÁHª­ 4ûN½‡]° ¾Iu€¶>6EÁÏrõo�òàü€µžz兩t;­çÕ×Ý1¬}Ü !7cÿ{ÃÎj?Oážä‡·O#èfÓó Å9§vØàáGÊ“ …–d©ô&‹èæ‹ÆžeÀd†'²Í`2 ³•Á쭎ɲҔþ¸ë`ÐJ‹-ê¦Ì:]í ·ÂŒ{RdÀ^H°$t( ›G ¬˜Ô ãáù\íÖ€Óa‘|ýB«vÂÝ^Caø¾ä/Ô}ÈoÝ)áÓð`ÉÅ4Ac#­l~áÜo-lÝK-ĸ€îákTW±H–æáfõX‘¾Äõìiû¿oÇXa˜ JóÚ¶mÛ¶mÛ¶mÛ¶mÛ¶ßkÛ¾ûíîìþ˜ÝÉtÒIÿ¨“'uR©œVÀv)ZFª �¥¦¸àŸ\Ìâ\QáôäK$òÉ"Ñé‚Í}ÎE\â˜yÝt"PÏÞ‹ý{ÓrMð˜ÏF—¿3·…¡X�0N‘Ð^òYºo‘ŠD(÷…1̾õè¼*Mã}Ø„s‡=�ñË#í:Ý—˜„ì¯á�z<6^¼2D–8zÍs§G¼ÜPxEmþͧü�«x6[VS€Ú·1Ⱦ²”€Üü¶^ãˆMâ·±¥¿H[~‡¾äÛNsU*a­ò}ÇɃI5§)Óðƒà\E?lW§G>’0€ö�q™)ègTnï×�m­Ï P»i44€’36X7WHžù|V}$íejÀ0£óŒt˜øàóSa¤<Ÿ–Ãa…HI9L=gÝ[� ñôàvõdÃÖ:< ÃE°fð87å�—Ó‡•,TïÒܤ–ƒ�oú߯ªÙ¶|ª¾€‘ÓÎ/Ô•ß“Dšîô¸È¨‘±?@),"Ñ*–ÿù,b6ÂÛ˜µ{)ÿ"O_®°·Ò;uØ yB7X®ý½Ê¤O`NñKNÒOO"qSe|‹!§k&ë 0€¢&Æ´BmQ¼ŽDüÈ)ÙØš„YQ¨(Rúè|xŒ(Ôç,”-›‚÷¿i¦—ƒÐG¨�_:,²Gž±êÃkëi¿©|TO�¬f™…zby†73¤ózÉȦKP–¡ÓæúñîpÝô,Õ— ݧÑ7+.åÑ@Å>éä†`ÊÐUäÓ6¦´ÖyÖŽÓH°†?Ì¿‹]Îu%¢4ÖÃûǨÄö� p�Ì Òf¯f»¹±“™P Í*Ÿb¥ÿ-xïöC š þiŸ)`Js!Ì®üÙo’&Câ¼m/mûGYòè¹­ŠÆÅ2£µ.çÁô¡ #E^6uŽsH³å¨qx¯„… ë*+9îKÇâû´N’Ê3IqÖ¼Vu&b«<ñlçqÕìÃ8pË᳑�iiu¼ö¬ˆÍדR©$OëLÂ=}ýIp| ö`„âèk æL±�^ éÑÚû¡î¯Ðòy¸klbC©m®­Vbd�=”Å •!÷{\²ñ�B„“2öªF80·ìÃK0/ÀÞ6-íÇø„ë–$s•ÆËË�ÿ¢yÄú™3WMù%®Îæêï'%[R,wkÞ>�ÊáDleÑ\i}5£™²L'ÌÑ8FB]; ÕÕŠ=·Çu@}b¸IºíÁ%�/‡ÂøÞöê3š‘~s¹=aî¯GÂF‰O)1~š%I&�gÁ¶ìôÐWU…ÌûÓÊ7×EA´¤Bf‘Ö1xã«ÚkjÔC°g±˜%üæ�ñÁÊþ$†¬ãHˆ40æ0½œµ˜ ¼-î(QW˜pžñõçßDä@K‹H�¥u]/ùn!'¿ËŽ[Š{Œ�ûÉýå°²ÄHë? €˜ëš~‡ö7(F‡¶ÖTÌ_ãúÑÈ�µ¡ï9�‹s‡àŠf…< p¨o¾�'¸,LÇ·“ŒZ°k=’cŒ4-­OG�è;¿œÒz¸(%õì:Z¬üà JSï?‘©GT±ªd�9N_œE>“"¿–É·µˆ�"«]÷ŒûØ·ÅK‹öøJ8@Á­¸¢ÖDQ5|.•%QUœ´Û^ôq®- LBtÂò_êÔQ¾£/†f� òÏÙ B2@'�L\à‚f?~¤÷}ôMgÖ‚³8Jåþd²ÙŒz9àÁÖ‰äÓÓèÎÉ*†¹S|–w®ñ$¸�7V,¸Ø\<騒Awdž1­*à-Lùx³”0DVëPO6¯h?dä;ÎyŒ‰w>Éåžk£b�9xSíÈ\sŠ¥ïµcL³ïʸ8Ì?Ùp‹„�ÐüõàUÿÔtêî)`|,ù{S©Àîb H¡�YàÿTð¹²Ì¥ -4µ"}^œ]wx°'ddpI½Ä‰Hÿ\lpV‘ª/ß—y›]”G¢Ø?ãÇÆÍ?AãìÃ6·ÿây5ÉÞGÞEsJ=/•¤`A²´�ܨÊù¶ö+l1ã/Ó­$p€IÐÏý•¤ð µÁßiÑá5Ag>‚¨36bÔKè1Fô}¯`Bßߺһ©�"+Ýmû° �VdݽˆÄš2˜v BÑò>œýq ŒÝOö¹�õôˆŽôA!~Ë–m±®°”¬û£%”æôÁ'8ýY¯ñ"<µ°ÏJTàA"Ï õ !�“�ÒÒA¸IÊž„ùâMû¬%¨>CÓØ��IÖärqò ‚´†Í;t!èÔÈ�ï8Üë Œ«ÈLx©{Qacd&Œ9—üb(iÑÉ}‹s“³–™SºÁçAqvV¨U…Ö¾ Æ«ð�'û=qº›áÈÝÃÙÆéx¹PDK¥è�z ×H·3ˆã¡ñhTõgÔ�¿$“Qìë!¦Ë�Ê�}ÂÚ+¶ØžâáÈãá„PQ„¥ãÀ¹Jº9™ö°b(vþÙ2ô^ƒûp¦Å<.º¦…ÎF¨•SN*�Dg7ÏàøÎ§â‚H#þF9é9ÆnŒ ‹ñn®È‰1ÐçÏ!aÓþE?FHÂXÌØiß`Nµ³±í3äÂéR6‰-W�æ»É:þ¥yƒˆÌØ¡TŸ¸ˆýóÀ=ŒVæsp¾Th¥Ô²18ÈsUDq¤u.…ù$¥’ׯg%¬Z ,@dóÖQtY0;Þ“A°©B Ä�-,µßñj·ð>ѵ-°²F#pɧ%ZY³Ÿù—~ëí÷ø¦±#öt¡/)ÒûÈï™Ó›Z7½#ª£F©L¨.|˜žž$}Ê™”¾Úˆ ÜÆH}xõ#¿ËšëžšU Ëûº8È™Mðsóû¥ÔÅ’-˜úx9V�ŒÙ7p0‚ÎÏÙà §e<p Èßþ�d<æµ¾ AR;Û~€ÎW€)bÖ5È7æ F#(¨Ž¨z1)r*»Üæ›"$Ü•ª@÷¬°ÀfG5NB�ÿlØŒ?k&º» sß|LÕ(’¼Ù´ÛŠnÚñtÄiÉÃE`ÚY˜‚„vC,ä4�Î_ QØ‹Kö=*d.!²6cùÙ²ã-ïG|O Öœ9§»vÎê$–Ø�k¹Uè}A¾È|ßRš¤è‹Íb&§õ0 %Ìm¨ òíÃmõ°& 3R'‡üœN±à'W��ƒ¸ !˜’re'„ù¼IŒkA~‘îøKhfØ¿z.ºQÆ6Y·žpË9QÓêÈ~ï _£±2‡‹ûçʶöýÏ{]á3ÜÒ1À ÜÜ70¦çíVj:Zú]¨Þ$JL�ž217]8â€×ä«ÍÝถˆ#m"°q‡Ž¸¦T öúš>Ühšv�¹+ÝÐ-‚‡¹áà[ !m¬I÷£5ÜÈL.FX÷P(θ�ú÷#ßN�]a$k(Û®8…LÅÃnýg‚QDNP._˜ù°Y§ñWæ,HË_ü�¶Îؘ¿L043“¸K‚‹éAºSrð wÍÕlB•Ÿ·q"Åþ €ãõàŸå!)ogóF@ÞÔÞg-6˜f�4üG�ð²¨+3M#3AÆaÓôR4nÖ¶êú R†ºº{Nxø*ÝöQ·]íì¹aÑä¢/fFÅ-å04þÊb¤H÷ÅŒž¨)ÊáQ‘6$ûÙ6sQÂÞb2Ї’éÔ+Íà…%†܃E"}¿ÔÇUº::ò¿0$ìn9ñvMɹLùˆkŽZÈz”Ëc&„ÓÝ\uEåܾÑ@ëx„ïXOX©˜é·^;MFÐ9žY/³ëT¨‚@vár½“9:"Å R2®sª"Œ¶õ¹çl¸\Íx=Џhe Û�Eªµè=ý'mŸ3ñ™»âÅAX (EËë&? Ë*R½·:TN%ÁmDë‹Ù{Áà:à� º¹I•-�^Ÿ;b®Ø — *f�cwƒä°":°ÅÒ&·RxJW¸šïŸ�ã÷ÛÐ#¨¾ª•g¦¨HÓ¤ZåðH‹”;€VR’Έ/sr¯­kS ã�hw1›¿©ø0ɾUN’U„ÒºCÎ!XYÞá£ÇSY?<ñË~F9àÏô¯¥‘Êfº¡ªeK£÷2Ù†“ö/•]ÓØã –rN_�¯¡ìešfÛûá0œÓ#¡ðšòÁ€ä,íðÕrr 2ˆoF\Ï#ËXñ¢yœ`öxêë×mIjz±r …`Öz?^žø¾-ÂBt�éÍÐÏ àªÔC¡ßmÅ­ΖÛ>†›‡C¿í w,&2«!œ^Ñ皻Ҙ}Ó¡Ö*–ž)ËXÆYŸoÕŸ+8”L4Ióž=˜ka¯: -ÒêFSÊÓ­~†5²{ÿBÇIU¼¡º¹ÚnOGt³.q :³Ò@¤Øá±)”ß�zyÎtp«~äýöƒÝ��I;„‹º¤õëtY-·Rg:‘—³>¥ÉÈù2–Ðñ.ÇZ å}Z¯S¶á_Á~T.ïñãîÛ·7„7"(?—Ó¤ ø¨Œ^=ö×Úž]rJ-J‰eÏ4H–Æ@ˆL•ë|_@™¼ÕF†Æ†­Æÿ MNŠÇÃÍÅö–=ÇåV^ôll<†§Ð}}æbÒµ¸a ¥ÍV¢L˜é¼WYüäéPˆ¢O¦9—‡ÿë_á‘Tú»h5ÌeV+&ýÃÿP¸±–�ò¸m°TáI/‰µì”®×Á-µ2µÊ'xE»:½dáÝ ¾†ó×®²Òì7G= Ú¡ÐÅBÍ®­º õÞ'ÀzÁEÉKKÓ%´\’>Í[l<‰Ô/¶Ü=ßôŸB,–ËÕcgÁLæ³Ñ˜¨xÍÝU”EªyUt C�®˜Ð“øwjÙë5 LàŒpñzœGMïU±ù¸ ÿ– ›:úV˜ãi¥T`)À„eµßcQMÓÙ¾&³û i3ÿ‡tÊP,�¥�]Wòb5…Ú®²x3èºâZ¨`eÏVäŠ)C/‰™&cÂ-y-³RéY…+áÜòr K`Û¤j¢… {AÓohxlúSˆö™Íd÷<˜ÚZ›Ý*KÕdëºxi†ÏíD•Yƒ±S[U^§é��¡°Çé x(Y ‚ —k•�š°û“H´»È7Ûc¥çì©W ë.ÂÙ´âO=×éçøíÝ%žá½Rê½D†§]>$ļ9�8æã�Táà;~R=ì >þi—[(´¤.2‹çO3R^«ÚÅÇŒGÐú®ºö®Œ}ÏÔöh…ñMMÖæ’¦y�;my1¸\\ ÇQäªN>n*DÅWk­Lv¿…¥@»sIØÕ¨hç)Þwt¿I™xrÖ_J ¨KIí𨦲J=ÔôÌpüžá¥s ì¥Hí£õ„`L¸¸§ÓÍ S#MÍ”f?Ý•÷{èÊ6ãâySv299à¸mf{†_Ô`e¥¹­h3uOu¿ú}ï3R:ä2)¦±2{|Œ€„(ë\‰‹`ª>†€ýGm=m5VM]’4q ×k  îÁª—�ÈÉ…ÇkxmÜbíî)¼A‰S\z—Ä ÃNµ8ÿ�²×ôõ¬¿(\=î^nX�rcîce˜?ÖÄ̲?vQ’"R ðdj3Õ)v.¦æÏaÑe/í±Û4 ²0ƒêMú’Ò«ÔÁj·ÔÓ)¤OtŸ {`ü—¼æ-Õõ,gáÊ!‘ÕŒH‰DD$³³qv4A/UgÇ=´ö°½Ñ,°rªŸxó)ùТ �7¬äÒ¯¹8ÌpÅkžC÷—òÁ쉲+o¶ˆ{lU$û9"ŠÐ<ªizWsßþOc¾/žý6Œwý½ÍاÜ#Y>øIõÚ±Hs®[!ÃÉ!«j†®5Mì,í�iSƒU!‹ˆÝ Q~ÄKÇãœÓ©kg\\MG¨ë”©f°Ý ÉóF P?7•ÃÂ[dKÄCu௪»=`¸Ðç”À2òq™ŒË{'-ZgÉzBO÷*ø‹›Nü  ÿ0ññþ¡â°“*ˆ> ¬`™¿Á`ÞM»«ÊVáÖlnÐõ'/Ëϧ¥‚ÒÕo��ÐÖMÇ3©ïÙ™w~ëÂÈ?¾~[» Ð��E¹¯s+4J£§œÄ(6ù‘Çà ‘¹÷l£^ZÝßwqúæÍ0_h†�VC \ÙŒÏ᳑n¥ÌÀ™(R`�Ai"è�ðZ‘ÛÍÖh{Œ³zÏ"å1Àϲç5[à&Ûž‡<+¤E!kÚñ¥ž4>º >¶Jµ CØÉÙ2ó©·,6Iö¢ÈÙöÞ‰ñá0L~íµz0ƒ(ã¡_û$üZç«�˜oJ<—­T4ÁC‘ áút;­-à±C¤ª˜ÙÁêp”`”œ9$ÿr¶ähªÄ¬Ø.S¤Ô™–Ò²éã~ÛÊÅŠ_1~(¿¶jÅ»»–PD¨nÏKA|Øn‹¢Z] Ê^ë+³d�H x‰2³Óº·y-é³ g95�“댫*û®”²ö»uë#A‰AZ-³¬Û¶ÓÈö=ÝÉhoFŒÀoùÆš¢�8Ö³Ú�M6SüØ�AÀ¬S¡þ ˆ¾Gö›„€íJsWÄ·ŠÜÅ¿çÔÄL èXbµe5FåOì 3•19¦ áñr§#N+ÛåÅ ,(?x ø%í/?Æ»ª®ø ­ð9¶^ï}¯˜ªë;ÏN.TÆ3•l$“ Be*Ý"ÀÆdàæÍpÓûNì¬ã鶪} ý9ð¤7Û~AVU…³=‘Ïð¾=!fŒøù’v-;xbbj@ \C�V0Q–ÀŠ1Oò5å[ ‚'4qwí¯N6 [¡øù•U1B=Ë ´Ó¾ðB¿�ÈŽ „SbK�W5È(ÄÄÄ»– Øàã9&ËÀöYZ #8µer¾Ü6Æ ã�Õ=Jâr2ÂB‹óuú—¤<óÂÔ¶Òü0¦ËÃJk¦¿¼,�ò¸†ï}<FKÖß*"ÉÉ�\ËY2B8½¡©d_]óS½Ôé•”ÞU»ÿ„ ¨Kqù#}–‹®Ež‘¶e]Gj¢ÖÞÌIãã‰-±íWz¨hB+˜ú‚¾©:’Ûh¤8 Ø.˜½ÏH»hWC¹€`Å-xÆç’<›—zFM.Ë+Ë2ý"½«§½Qì‰êÚh†×N¶·æH�¸Å¢G' I‚˜ÿoñtî<5ˆ;N´h†€…ˈº•FqªÌá2{ ?üÚí÷1åC}Ø0eŒ”þÈ8¾fi¸œ)l¿phÕŸ†X÷ÇfÓ‹D»8ï0•Žå�ê²@.ø�LˆÏ¾°ªGíÆ†öašþiXr.j*@©X&tRÆàˆëEe+zQi Áj@m- &þu¾tæ•É©x^G‡ïw/§l*�§›{bM¹Trý³“u^¼•�"ë/¥0¸‹'wüe”ÅE<øÜ{I\"£Ò¬YøÌ.çz…*×­YPÆÕð(ŒØ`L`,ÆU7æÔƒ©FUF}[ŠÑTjŠ)‡¿Å2¯ žÏŠ_í®³\�-³Y½MçÎlóX*?‰&ƒ� ‰jº‚VÀ{eƒ"Yæ’`õÈLŠÚ9XOxšA áSj»Ûc�³ì²±Ð‘>Dφy`ãcاŠ;&³ÏÍ«Ù8êø™¡v{²¥,Þ*Ňï(œèB­c´ëG—èv�Ë®ÿöK²çŽ =jØ's6–ÞD¹e3i® c0ÀÃÓ¾�çô m³ÞÒõÂgN-³@Ž”c³o:fÁ´;àQ)ÿ!>¡„‰rù4Œ`r6SÑ“l¾fGËM�Þ:BÍI€û:ÔÔìÛQ¿g—ät ©}ÊÜAz·nŽ@Ju^,WVŽF¢ ¯ƒ«OËØƒf¯U¾·�Æäà,�ßAM‹0MУ�²}‹=à£-XBÛYi‘í%kgñˆ¦Þá)¶½È8gOÜv)Ôógh–²lMÑæã‘©xµô•È×ÔHBØ:‰¸üÑs²ÇÆ”v¼¡ûÅ|ýØf˜©ÅîŠÉ/µ0â\Çþ1ÁN*;@öomíúªw[¥æ5üSXÎ*‘<˜=æŠo4ðD: ÂiCš_g1ÅkiPËI̽4cðæÇgHwj£ªqèÅÏ+í ¢'GÄk1UêŒV-"NXËÄäìx�ÃÐ,67Æ©{ì‹çÁãÒlhE‘ ¾ iÆ!^ÎÉL:m¾­Ä$s+Q>c=¾�¦3‘]yDzS àÿÒϺ"¼DïÑÀp¿)•gÙdE/L–žÕO˜éy1ÎC(Ï�f•G&Û¿Û{Ö�׺ùàâ«ÿzÔ‡‹$€âO^»³Í­õ‘Ìy[$Ü7[�'!b:a!¾‚p!gÖ>õ¢ü7:1»ny‘õ;žpI¤>œ…„$QbàŒM{´ÑAšV­ÃQDý„ªÞð¤ó¸¿LôÈèùþψ ð¢dA žïøØqÔÂÙ8ÙiÇ[ël—¦*€Ëɱ�ËYü°7áo”RA[vrÓõý:‘TNÊÖ?¥7nü�vá!ÖšÒ×êä䘎ñ‘!‰©*$Ê¢Õd.× ™W’EAÌW[u-–â<´Ñ?¬$fbX”EhÈ¿OÞp¨CØŽåhÈ÷üEy;ÄË6_]§Îœ+÷Q%±w³@BE«UgêrÕ¯¾€Æ å¢ïžáSá¶æ¼·žØò`f†Á‡eä;â…’9­tÒ¢@œ|‘Q{�µë†>^OãL�‡ÒJ�¡»€à`Ù¤úW;”³Õû\aÍ×W×¥Z\el‘?ÏUÛðë°AùTá(ú=ô‹1-øðÔ| "3oŽÄyär}lý”ôvÚþ:=1jùq ‘CÊ[v‚ó Ê["ÎWÚ7Üó™V„(Ø Ãx* )00}»Qi7™/i!•‘®’¨cQm+ÕÁÔ�G”´IT³Y9oS°™Z„û¢cÓ[’v»Þà^²ëÑžžè ¸I*”ù�¨ÃP,Zd$Kš‰<2¿³ù_úñ&àñ™^`]R}ûq†' *!ŽºØüœµvhoöd¥¤ é,š§~ÑAû‡©B?vǬD½uô%oÿTúûšcšÄ¹<ó†¤$,Xú_ºä û·zõ¼çÅÑî'Õv ³©á‰}Ýècƒlø*i +°;cÍ< {^çê=/H!õ«K]Óà[àØÊkÆYhõ=¶·ô1ë$ÝX×RšÜ‰=?¾>Ñ“Π¦‰ÎÊ3ý< ž”Óg¡±”/ÄFâ™eœzMõ�ضà’ósò`à9œ'ƒrÌÙõ­Sÿùü³á!*€:ä�?Ÿ;²p% )mX"oO‰é�‡0ÍXÌÀž‹üÈ4°È×÷�ì ÌŸÞø7IRÖ¿gé2‚`³¡`—÷Ü8Žò^˜B/€�C¤+!ðNqØð|²7ûœÈeŒ½`Úâ�‡ûs”6ÿ"¿ÖX´ÜÕ„¹â-DŸEó©ÔhB�u´YQèÒéA¥�Ä^¾èl6GñªšA�JVÕZ·‡7F “Û]yU�ÜÓy_9å³FÒâA„òQHÏ4ç¼¢Âïâ ï¬{9U \©…<ˆGcŒN0`t;ˆú÷M kÅÿ£¤}¤!É.œÑ¿X“ ÁMW³f޲È3Ö J””ÈÔËZ¨rëªÏóï,°Ë|¹yÁ“¼çŠŸ ^|…Í£¥\Ÿ]©`î¶§ù•éÌ$d!Ø ¹‘®#@š,$º1pq¡ÞCGÐÛ£ ;Mõe’ é¿€õOÊ1®Ö'"'Íáˆ/Òþ¦¿3³Ëñnêl¹ˆIv{»”q¨`W3önúœöÅ8™·’ÇÐeGDˆ¾ÚfÊvj¢Q�l_j±\Cxn²íØ#û Ô¡ø[­üûÓ^²OTöDáùAH«¿êòì5óÐ8Ô-eûÜîUŒ‡Uõ5�Y ^Qäµ$¤ÿƒõÂáÊ#o>4Î}\©ŠqdÙÉ‘®©¡eÍ"£[m‰�H?Òö�š5”Ë"aÉÛýe_C«ÒµÁŸÙ„‡özÔà:±°iŽ.R2�FXt›sز�¢/X¡„ÙÝJ1¢õÁO^)9B_ÃíÉ��•ó)‚ìÁ϶P]Ãô×î±ü«{•R$úp™_�|›`IŠÃÏ6þ²z¥<� ¸!xÒcb2Œ-·IºR›2�í�†UlïU�·¿åu„î¼ &cp“.‡èÚ‚¼â÷ú ²T<�V;o „`´H÷ŽJ¥Ä7Ð@;Nì�](ä±³j×m1z¬€9çHÙB}Iœ‰ L »¡^‡ÞdgË�Æ*>#Læ(3“yš† LC±¦¯Þ·Q0aj ÍišÎVpu°í-lòä•zi"»`#4]m¼ä! =FY›Sö,”RòšXÖ tÝ %Ög„í‘MÐ 6OCÎW¿.BêðÜcqÔLÚ2RçÍcÆ‘¦ ÉR\Ð ÷Nj²ð©ÁÒHa+o² ìºâ‰¿ÂqO×ɲ&“â-‘Ëwó •ïådG¸-PÈJôÕ¤qü ,²Ìâð8W9ÑjäBý.Ø¥%Åþï•éìï­KJ¬#‡®èKñºxúW«žá\@3'ƒZCÄàâ·Ñ“õ%‹ã'qAM;¡¶|âÇ!“!1~¬¬¨}è svaHjwÀfξH6o’tiÙ 0‚"Ø;…¶ÄùÈ<+vBáj[¼âÝ× ‡X7†¬ìÊý ²cÙt¯ŸÙ•Ù@m=‚<‡­V� MœñÓ!#6?KnT¸X|‹{Ò–õŒþ~>é^{Žà9Ô&ö.Í…Ö†?›Ï l‘ÁÜ=ò@ÓEȘêÔ5gw_xp<+¹÷ÓKwNÆFŒ–€õ@ŠêÚlX¦6Ýqˆ¼÷îÕbÆ–Á `<Á±ÐϽà_j³5Tk*i$w{u ÿ¯7U;€Æ×§]…‹ÚíÔ¼c¨ Ьv1³g Oö‚ j‘—2ÚÞÚ+ÚÉ·Ý«ÄhÓÝ`Ú+ ˆçº¬/ÆC¹£ážéZŠLD| „*ßím à‚¼Äp^1ì×6´Õã0"’°(™ç ’r÷Ës®É˜} U³Ö¼Ê“` £ê•Æã,¹ïǤ�cÅVrÇùx j¢Ç¬Sþµp·åFÿùÆ~ò Ëz˜.â5ï„ã9fJk†ÌFÍà³\‚`Ý8G;‹îdÂQÙBk1üQÆïÔe ìœÝ§ h²nQoK›L�'!½§vÍÜ6\�Ûò«�`ÛÜEI{Ý'â±—ôo_Õ0xrÐ#µ¸àóÞCøs4°D¨Ð™dÄㇼpi1½Ø”ÿUÔræGØ¿Ì)aB¦ ŒØR‹ûY×6ð0(@uÉ0^È�që!»Z�ÇJµ¹âi‚qŽ.NÍ »”M�mœL4j$'mÛ–×�¡óŽŒÑ7Ýúý°ï�gˆË2�¶m¡ÈÕrƒ‰àUNÐì[µç8ò’M¶ø»w.} \\æ�‡t³TõÃ�gÖ(½šÈi˜~ªÓåúÑ;¹?&è Ì'¹<‹ýÝ8cåsLŸ,7¥«‘FŽ÷?x{&°Õ÷¡k†194íi'o\%{Ùó7‹„¨4ZqláïÖ¦DÐaíŠ;Ä¢?ò¯öÔBVùãÅ�¡VÅ"Ív½ž2šÄ)Ü u˜$GÚ n{aM¸½œÕÓ¸¿»^• ¦Œ{ßFÉ‹7/ƒÐZ±Ï΄³k°ž¨ÃI#a°ƒ+�ìD`TÜm·ü5 æ¥°ÚüÉ7ÅUÑ%ºpôõßñ(QT{v¾“¾…½¥ë”�#h ‚JL Ò*ÿ÷ º¼šÕˆ©ÈUP޲Èx.!Fã5¨Y’/Z6ÜïWò Óü¯ž€‰Ž@ÉÔØMÙÆÒ˜î?� A^a°¹¦Dºyí,gš½ƒÂdŒ t‘^‹�1{ –vHhºk�EŒ –îÎr¢57B%Š)6ò¿ÿ‡¯ó?øˆ@çΫáY€N HÊ=brÿ+¾¬¡¥ÝÿYÏó?t€ÿÝúP-Á�í ”Îëæ‘e �ÿ¹·àZ£+8±.É1¸j�¤ÿg~ޤ~ÿOÔ%ôëOø •ÂÿŽÏðŸf0ž’ÁéB`ïZâ ï3¢E¦ ê…¤—Ž?ÈF¯/„¡×Ó‘-¨ÙRU&.ø‹ØÿŠ/fic*bêlü?ûÉ ¬š6Òä-èØÐ´\VÌGÛ‘ÝìIj�÷E4&¼šJ‚9 øq\L�]èL ] ÿ{ÿÏäù�¥ 4íÖ±å^çJw-þï<`üOÓTÕ(«¬èÀ«—Qámgûy_jÝeÝ)°)º"®¨1fïx¾¡HEÏxÜ8 I ¤ •Ï1R>¸Ë­J©·ðÿ™�Üß:ÞRôhïŽ(Ž]ÿ;>ÓšC ÂWv9#ò=WÉB=<”ƒ”Ã)¢AL&º6€oC³{èN~ÅÉò)�+a;q¢—:^ÝvûÔªÿw¾3ÿo~oìº!t¨Ã�ù$M‡·ÆÿŠ/)¦, ðÿ3Óê+ztÓo‡4.Z*‰ `‘ ˜ÂD‰D©›fö*¦q¡5îÐ9Ù  æé&êSÄ¢¾ëäHç$.Å"S`�ä°Z¦L—µáY%Ä i|éøíWC:ýÈ„-¿ÜÄ�c�GnýΰΞjÆlF�tˆ&A€jN]Ó :ýÀ¡€"ÕkT(„Ú¸;%·"ÃËÈìÉ…¶.-wâÝO`2+bÔ‚š$ÌL9ß…Ãí.VR©Ö=9ë=Ù^À¢w$Ú"ž¾m{"Áìav$A\ã±ál–‰ˆóm b®SÕé—;›ûÚ…Ó© ØrøBX UúUK!]ÞÔ{Œ¤†(@o„ù¾ø­¢ªS[�¼Ðî- ³E‰E<¨¡ðŒ®Ø6Gúý �ª‰^k×B:¶}Çظ©v¼;ðRÆh¡asswt |„J¤GQÄDP±ˆ°Ø @j~ç€J ÌÏb-¿é$W$c%ŽýyýðHPøÙ©˜3)x^ƸxÃ!š ÇV´Ÿ”“›^Þ ÜÈòÅÜÜ’AzЬRz�G/e^r„^tÖfÏ_b÷é÷ßp‘ˆ{k¼Gé…ÙèØ>õSÖ¨ßÖKZ£®"臵Ң�ålÁ�KùfG‡�®C^÷=2å#‹”ts üº(|�C!ZN/u­Û›áxKWåýQ²áµª›Ö0°�zƳ賬©ÏruË_Ïìöé6G4Æ’p¤1à|#g~ôþ›°k³>�ˆ¾yÛUÿΚŠ§,uíçD¦=Ò¸U|\³Ît0öU‘r Ôan�,�O^Љ¥jÓÙ’¢û£[>:qáæXóXæh�‚2®L‚œ³9 èz%mÏr÷[{¥D�UâŸä”+2¤jw ; ÈKo,@ïÕbDßy5ùˆõKB`D¢îÏaj°"òv›(À�½éò‘|†S|f¦vz9&wýéGzÀûE˜¨�Žaà,í´Ýñ}0töZnuV9Å·+Sp?þ ±»€:Ÿsr/‰uª/Ûš(½�b/Ÿ¶æqÝ T>5ã#YÝ&D&ê²q fŸiÁ Ð ¢‡®_tìÅ>…ª}’¤‡à嘂Y:6­’k Y‰”v�hrR=ÉSZmסÝ:`®¾su¶g`U78–ºããܸü¦Èi¦> G�:†LZBeÛ* ÃG\ì\)\cÙ‘2¦"sÑûÏÕz3»Y«ïà¤DJwœÝ ‹s⣌M›H÷buãf‡¦[ ×áO¤è?§$Ï0…+â0¢åÒqÔÓ )I5YnHû7Žþ¡ÊmßT<Ž“{lFAåÚ�_Xp‡Ô¸º ÷É’øÐ�W+¾3íÀ±¯ñ}5Ÿ×êgMKÈ#‡vE®Ô_HœyQˆ_YU~AQ­6ÖÇ´±RU ýáÃp #³O½ a:ÖN¬²_rMýkŸ£B\£v‰ÖvÔÆhh¿·[êŸ3°ƒ™×l7׋=ù—‡‘Gt@#™yFx ç¾E>¯i|sê¥ðUŸÂ–ƒFÅ)ižŠ¶á®µ´àwÔÿ´Í&ÎÓs©Ê€LWøÓ˜ B÷Ý=yä°’ƒNyõ¦3†¤ì«5bâ{7¾GýR…¸­CJ†¨øgâµÌ±_­®oØW÷§Ïì¾Vy¾bMF@­íSåÔÄP_7kÅåbœË¤G'?ÿ'¸r`›û@fï Óò…¸ÿ9¸È¿A·­£z÷ØjŽŽ+É�» 7é^Gß§;W¹NèÀ¸×V;€½‘ Ęd™½JúS¯Æ[aH¿jOBÚò7®¶i1SÅi67Oý<ÑšÇ0à7dŒì"ºg~:M.ôÊÑ»,Ñœ}ã=ÌÕà‘�P_s3–z…ßÝ‹D¼­¿ð׳¨I.T·îÄá Ç&®z™êþ(·…R¦c„µƒ¯J[!¥) ‰÷÷+¨ÏÆöxÞ�9Öž ïoÍZÿÿÆ lô �6§JäRnæ÷,�Ò«4Rí]{¥’ù¹oJ/›Í Ê�ŽôQ^ôf¤®–ç<Ù~ÎVÝTqk"»*|¦½ØøN×rö©&DÆNàÍiÛ΄·myRY”÷&™`û^Á î´æEõŠ€�»Ó?P !8�ò�œµW„§o‘ðý�ö-ø@[ü’Ú!7ØŠÚ·ú—¸hX¯œ×úÅÜ ÷öš¾-qܹÞùx�‡?HT Üò.ËK/å�^ße’�BLš� V:0{tHÜ xSÇbv!1Dúøû^�’ d«�Jˆª`$‰ø"&iäøãü;ÓÒŽe¡¯·lóª’LYŸyÇM)ÙËF.¦EF�1bUÿ/½9Là¬Þø¦eŒÆûë>ü†>¹#çËj l@^nSq•m*gôóëÝ–5ÚRQÂ&¤ª~HaŠÏ�"ǽ ¾Rþþ¼Ð·AX¸)AaÛC\‘emå}áÊò ²IÈ¿¬ø` ñË@Kk8Êü¼ Ñ2´+ƒ Hg†]ü=¿!fýؼ ’nLªóÖßÏðÑC"½æ[Iõ^ y^�¹�–z>ÜVS™7ÍÃOfñÂŒÖÔ’“ÏN l3¬­?¥Y!ˆT¢­F”D5ë Û$7!¢9 Eÿ¼�4~•PdÕ¼'èE?�ç8�R.$þ'ïÛÔ•œTÊ}àtƒ†yrÆI¤«Ãí>7gO`bÜ×øI•Ã×’e©°•*3ÎÞ�£i¥›5MV�1nó¥«þ|v^±w>Ý…¯O4–lõÞ–ØËní°«£Ø‹eÃ>ú$S�˜,gÒÒ�t¹-‡b„ï�ÆóÄ·Ò˹$<(ÚOh´¿BîW{gß0[}P^$ý&d´"D]ŸÚÚ—L�ŠÑp0s2o�M`l¼“L\ß²?œDË*5~Ã;8³Z3XUsË0U —³ ÇØ–Tv{[Išæøçv*/•Ó[´º7Ã+Ì<[eeКr–L'Š%R¾$<ÞYˆÜ5Kùn¬:dgšŽï°}È›¿ð§4jŸëO…Ôû�ž;°‘èÄ~‹,×s´°‡à<©èñ:7ú8*• ‡8Ô/àו ¼Ï šÏ7bâ6™ð] +Ú¶l>λ­�æÚ%¸¥äàþSÓ"ÎÃêþË3–iK™ß]§êÕw9u¶äs¦W‡¸üæ^¹Ñ¼eÔÏ_\½™’è›»�T Õ¤°×…WW÷Hoeu ¬L˜°GÉj¸�AA¢¿H4™ðâBñÔvÅEç2†dmäuEÀ±Óqbh/Œ]þèH Ç©ë+Ûƒ%Í]û®è"˜àºáF7Ÿ¹"RÎìÙQa $C¯g›v?öì„ìCûG… 5y@’N­iKQ\r ûYBÇÓ‚ãl¢—W£WZ°Þ3ðhÝuFŸ†xË5]œé¢%Ë¿¯å ¯dáx„Cͺuƒ¾ç)­›cþ²“øøŒ'ï0¬$€ª2†EÞ°âŒ�'²lõ×ícÄÝw€eõŒxrA¬.ÁAPbнÉ‚_å¿€ºjBŽ›¥"­ «›"·)¹ðëq÷ÓÍýá5�²V+ƒvÊ&­Û&=ÏçŸ�®áS&ƒ\1À;l¤ÖcIŸ` MOm¹#ªÚ]Å�tùMS¶ÒÙPt·ªŽ( ~i�”®üšÃM,û¤Tn&·JæìŠæ²wÚTÍ-g5ÄHéÒqè8ø%Ì9]|å}C#iÒî)C›÷dǺÛ>e‘¤-¶˜‰Xe�‘ÚÌFDeñ ô°wÇ«¼D‘W¶q¿D[¡éÙ·í éB¸évgĬsA®3ð_GÝÑ W`c�>ª¿ÑèHŸIQ¹�Ÿ¤­›à2µÃßrO¬M˜lõ{•YFêð½½dY·R:6œo²K‘Ù&SïjŽ�Án£Æz©yãm¥~!'€ +ˆŽ®�!Å› €V-»û}QuNV�4AôÝ©±>ãlFQ.C«î¬}ãÍtp˜UdtªPI[œÈ–aÒ”ïˆØAšPzøø±íÑoV{Ÿ`§Nœ\x¿MÍÙ/¡QAÏR+ñv_-¿£B5µ1Rú£åäQ€yr ÁnyîöÀ‚ê�ØæÿE–ÆGà1ºÆÞ9´'–u»˜ÃœZ¬ýiïÁ$ ¡?ñŒÇQ¯+¹±oA ã„2¼wwr·U^öö__¢0ãŽÎ›>$ç›1äÒ/ÄW>€¯1‹„mIä_Cû 7µ®‹bc^3'HΞÎLºŽðàHºEkV/uâÐC®ëvõ³&ª¾_Erö}nL`ŠDκWQÆLz¤NYøC<ôÆôò�9TÁ[¶jÙäÀ¤_X �‘Ó0¡°$c�>Âä¼w�~ó¿Àª´z]÷!Äm…é€ïBýt±¢�×çcÆ�”zÔÙî¹öeß]±–‹Œö½ÑJÌð« �$ݱáÝê?½è�mª¢Ž‡TÉ2éö݉ÝßÎÀ‹¾ŽHª�s«¢‰Y[£·_q0ÒsRLq¥yù¨  ^$Ìî.§;};ôȦkÄñhøò,¥¢)¢ÿµT ø|³¨½_˜ÈÉüËØîì\)H=…ØË¿f[öÜ9vqK ư‹Û{ÈcåÐdtÕUD9Ø«Nm==ñÒ²ÐD³‚ JŽÁ ¿_þ“µ’šZD ô~F-®™®V©UˆÞÄ(…Ç�bçkedéT–úœÕpŸN§xc"ÊׯòTvþ–°Ô<甿ªþ ô=Rö䄞ù~.}©X…»ðó§Õÿ溰~Â';`³ Q^Ë™aÊj¼/ØÕá4�¬ŒÒÄ[MK %ê±RðU£.â�÷0ðÚ;pÂ+"À\;©Üîyøut8 ‡LЈºIÙæ€pÖ˜ÕŠì.â¿)üԌݩ»YÙ3x&Ÿºnmªî§ûY¹7É´bH#ñAˆjfaîÄŒå>ñr1ñ’‘ZQ;ž;£šÅÎO*ÆXy‡ô½ÈzTÈ>¤ XÞf}¯e7eÐíÆr¹5+nh;^�5ž*pE/‡"DÌ—¶ÀU§µWÚŸƒ¾;¼|º„ŒýJJ’V4%*Ÿíƒ4§~$ç2ŽŸ6òêRïU¾§ÏÛÆçL•\ÕëÏâ;d)Vù¼áNÝUЦ0™@r?ÏÕJn9V’I"4¼Ø6lS´ó}ü*7¤ç×ĤÅ+~ðÕ6jkƒ5 42ìW¢c†ƒ÷¾v”¡Uú¨‘a‘D‰´ñ)?º*oÇ &z,ïK‹-b:Š ‰‡’­‘ÍL“ùX¸‡õà+`€iéé.9*>ÙßÂyÞyxq]¦9/Ì9÷Éÿãt¿6Чð+Œ%K©‹+C-—¬ÄNçØðûV¸„qp!^ÍøC—hh‘!QÞ|Xc0UˆV¯úX´�D[ûƒБøÌ–åÖ¥ë\d ´%/güIošú9ÙÒB2òoô†íRËî‡Tæ¥à2$×òÀ xD­Á; ÕÂ`áaËì¬n T…^òŽk&$BµþHü—Š>ËtšŠï_¥œŸ°ð®›@Ig s»&úYqJüX’+òÛW¹Ð5å#P#ÂeL!ñùQƒÞß©.zôÙYi‹æ”ÃPri[+p,ýä<ÂK¹ÓCZyþ´÷ZÂ_–§Öq YÒ°z¾z Èê�×®‹gdؤ‡´iãÛ†'冸ºq6ŒüÙŽÔð"vÁ½P“ó%øIéÐ�'ø8b¥k) §-ǀ鞆&ËÑõ/»;iÿ¼[ÉžS0âhx¤^à´D²#&bâ¼öžL�/˜0Ä W à`0Ý|ìì6¬èj�½½› È>ý~TLï�Ìòó N[‘;” .̼(6w¸J+w„3ØîtPFHÂû5Û��”Lµ!R7W•Ò·kæÏ9’fŸ$ää#nci€îöæ™ÛÇ6*ŽÌ„åú¨àÍ©Œiß[½÷)¬lÒðëµUu�¢ÃÍÅ·ï!Út_ª±‹QU‰�ð c»)åR*sOìh gÿÁÜJé©”Tb°�‹£6ÅLì\l뽌N‡ôo«¿G«OÈi$4Kòº0sû%ru{2 áWQ5á²cî v{Æ#àÄNùÙäœ9û©-,~ò$£í‹è©ÏÞ„ŒŽcVÚ—îzfL9܉Dë²ä~ݼ÷�qfYìj»Šez:È®&…¦­ÈÁoò�é9Ô¸A¾R"ü²wã/Ïð)Ïöä¿ÏØTd…į,©$TgB®‚¯aƒ=æ¢fl°Ís…2áºMê¼æ[�5»EØ~±rßbÄ ZöqZ,H¶7ò®}µ?ÁÊS/¿Grd&Ì ýEvÿ ‹Zw1/’ Æ»Z–Š=iQ²îQ[L')Sž2$oÙ.]Xšr‹óg"¯Q[f{…´öS�Š›ºªIæZaïUÏ»1.ÇžC¥Y‡¢š C"QÝ)ˆN1…‘{|Ëgä¦7Äí�x”Ny[NËʧÒí*)[ͱð+æ0î H’“æ\DÉ´­Ð§cÐ{º8ªÌË¿‰,[„³gÁ_‡ØÔþ^�5îÌÙß*}™Œ¿x›7pmï’ìpÉÖÆ± °¥…]ôK½þ\»ŒÃjýº‘�yûÂ(ƒÍàjÙÇ< ‚iÅŒ'ÆèP-êºPå¢jœ5öžôÒ›r';pa9†ô{0öãQU~8î i˜5y±b�½�FG*›EQ�爆!� òÜ¢Ö®¥Ì‰WÔ÷ò³g!v ö݃ƒ-m¸‡òÙ�[¼éLEQ±e­¦lò’þ= BšŒÝHL3y’[·}jyU®Zg:OX nƒ*êMî¬ñw†W† ¿Ü“ùZÃÐ2Š$…>nkÉ ú÷B ÌÅ#Ýa„©49£GèðºñÁÎA…û�>r›¦Ì·…Û„¹ǰêNµ¡h._ÖÇéc¶và°ç#iÿ�,á¥iÃk^Wâ\AVRÌÂAþ"ªy¼ôSš»Èì_ôRÃøù–/øîçDQ)_±žu§úfB�ÞÖø[“ghlõµ‹¬¼‘Ó!LÀÅÔB\Â¥Ák¨æÎšˆT¢ÙÜ>¦µ'9—èèÝÏóPF�ÇAÊMÛ÷W|C´«&oF:|z�.kßW�”Þ† !º‘cã¡a$Äõ¬O�P�邦>žZt –åF{˜¶œ‰C€Mi�0O°ðÒùÆæDhÖ+ŽÀèéT,yÃ/ðÁ³¯ÚNeái„„~ ÃÑ#éÁ¦@ÙDÐPÂg_,à3Æ(ŸËñ~ºÃý.3d°¥4¼‚¢‘ú‚/¯Ë)‡]V¬ƒ~>ÈèÆÑ’è¡M¼Íñ Ì`©ÐDñ ]›ÒF¶ÉÙù¿R“óœ¾�þƒˆe=�eãÓãðl+dFªrÀ¥«&e&à#'÷&nÕ#Ž€¶#³˜ªö£T’l ÆO1‘-XöYmî=.S ¦�Síjüóéí‡H—69- ü†ž%ÇBñ�—wÜlÎt†¨Ê)’PôVúY®‡ža•.ùµÉÌ:»<À 6uõ3B?LùèÆÔªwHX�¬j­q( &Ó/"asÁOèóˆø‰}çx4¶ÿåN»`µ÷d¸TêÙ],ΰ“‰ùB_¨Eª�J7ŸT‰Uß–“÷ft¯&£ØwOa%–¼­kÛ‘ÚnÒîUYÈ—Ävu…´ÊRõmwæÕ`»�åÍ�j]¤Œ#:5ŽË÷3)£A€ºA�7Fíéð±¡IgÉ=ùùBZ*§&áo>ÂzqåÁií�@ãŒKSùeg;H(s”ÚMBì€ëÿðÑÕ”ÂIbýÀºF .Wþž}Û_ ÿ•Xþ´J¡Ð,T‡Rª®u2Ñ·ÜŽ2®mƒññLåí¿j,2dš#Hì¤I[éOJù’wˆ~‹N6™ó?tŽÁ-p\î�Ò±[Îø£„“ þw§$'á/ìŒ[0¼”—5î!ôË­Îaê‹�ç�Þ9+3-8ø -½:ð-Q‰·ÀÞ•X",”ÙölÈÇo"……©õM÷•j¿±tt{Tp¼¡¶W¤ŒÄLýç Ø\– £Z2[i;ååRš0rœ|4roþ"W«L_°W¨˜-ËMDà¤ÚU–?ØÆ�zÞÃü¤ôW—ƒKt¼$F Ë{ØYêG|׬×1Ð�¿wÀˆ÷o(n{'¤‡8鶯׮¯{iÇ/Ó‚ýÄjQÒ�Ù=l?²‹¿{u…1«ôTuqÆ_•0©ƒ,‚zWâOJØ{íÓ¾ØÜ(NβŸëÔÁ,ðé(8Äan:è�ï%Ä•2óôÂQ¿q#Ždæ×r¯N‰¬Xó'GÿÊ‚ /x„nYÂ\oUç-«~ÅaØ�ì§)&v¤Îth�(¾'|»Vi§ù¾ši½IBjÅg.×£.ý܉ý3�mYpx*¨`µqÖN8ÃIi·þLW5�ÓõÀ÷#!¶Ú\Sføãc�_Sã‡ß�j¼Å{i÷SRGÕ½ƒ¾ ç[PÜ6¬@V«]j=´‰S<ñÎcju&2¡m8á7J² v¥YåǶÚ;È\œL™àR[œã\ëèÆÒ€š¦u<¦§âÈkK~ÊVâ[ž¥ÕÎ\½RÙú×f�µÿwès ¶r4T¡GÞbà™ƒ`êã"‰G‹@¬J¼-i;Üee.iC^Hs%6ó­Ð¯Ø7ÍÕ¯®ç*Q[@Nv�»5:¶}Ø�µqVí‡5£]"$´ÖõõTM‡´ñ qVŠÉzJa?Ü"LŠÊþdÒÜ·eU ×xðV–—ž§ëÌŒ0þÔáêã:qêc|[¨Û¬JH„�fÁÆÀ¤0tšiÞŽ%„^P5XMýAØÇµºï[7Zœ–VS¦«yÎn_ÈÄ!i©¸CÉoúù&߀ð¿ ä=T4�ï¯â²˜3±”Ñ„Ã8:)Y%¶QžN¬Õ²t{'h_RݯÂvcK~²›ÿ'´N»ù¢—æY½ã‡h^ä”V7.‡ûäû]�å¿¿#aµ˜yÚ†QZ¢ìNºþ–:-”ÉЄÊ7³üJ¾€%”Y\ŽŽÃ·÷¯ºõÁ‚®»zã<�¯O¹Wm¶›4g›Kî_ÑÓÇ@fIxóäE2q»QÚ£³C·7@zÀm.Ä]�6\o!–1ò0+jSL£¶pR-úHÐô>•}@é00ªÅ8Ú§Z’ëV¡G‰�6§Q�vÔž…¤·`{z÷Û°¤©ÖWåpxÜÈ(íCãíü—­Xeÿ"ÌžRÁX›2E™¾KמÿZJ«_ÙòPz§’Eò'Ë‹œ‚±ŒQÁfÔÖ&®'ìk°Æ?Nê=g\²Ü47�²Z´ñE—,½�Æéw h”é%6Øô±—@‚�5c‚ ”â¡söïcù“d…owÞ#‚exzìŸëñwXÒRE#†^ë¹%ËYƒ¯çT{^ yïÄšu‹;ýÞ,„Ûv|Ó¯ØN5­íœ<§y‘äۯ鉧c>\D+°@ð®a`9Óü=‘æõµ(°GRÐqÂ.°ê …õŠ5˜ô1å`€²eù7žèÁã@ü]1nHNy†�#sߥê3;· ´®ŠO|NÞÆÿyÛÊ›)Ú]QUsB�7h¹¸êU_Í:˜xÿä'°oÍùJçRãÉ¥…9Kð¹C ‘U‰�Ÿ-IÛÔoc笠½Q%´bpÌÐÇ5ŒSÐô†ÏoP ¬³å[zÿúÇ!gI>x å^<㿳Ô0¨ñ3ŽŠí°˜ù~ÇêsyHË[Ð�dM÷#Öúéiï¢#¦k�ÁJN¿Müy—UJX¥<±…LFæs…PeìÝ‹Ó�j${„LÓ¤Ú=ûû Àº\ùi÷‡ëðUf+64}ÀMõdŒ�ÊåNuÙö ’øK0âô$ù?Â$"ì‘°XŽ6ËÒÐfÀ«tîj\̽5‚²m‰A¶²>k!“w~ÌäÛrï*¬ƒûÍßøå°Úåp � °¢³¥$l ý[ñÁ ž×9UϪԩM]vd>÷î?ÎóŸQ0ݱ÷ŽºR2J‹Uªå¯ø,Ü;±²l>¦"ŒhG%¥¢€‘Ã\ΪŠrÆåCů ˜YhBõ}ó´«Ÿ<£b[ûÜàV™!YEÖµ:ÝI�ÑKð¬‹ìmq§w^ ,‹ ž¬—b6Š"r”Û �.«O2Ç­:2Ç2^ËH‡— 3.Æ^wã¦ö¤Ý–èžGBö.IAÍ8*Q|°¥õȳæw)!GÁ ˜—BÖ$Þ¤¤ØÊM †,51óÇ<)À$N�šUiC{4€ÑÍÚÀ¨)¹ ‘ „ZŠç$ye wwýõ@¦ˆ_Š¦Þ… 3fr£Ó[ïÓ»v(1MR%F…¼Ze‰©ÛÙ‡‚[du Ñ“îŒ÷l%å%ev7ªD‡à!¼Z¯~ï›FTrœÙß’‹²Ÿo‘àè/¿*Ú…ý±ã‘qqQ,‚Ò Âç ¹0@ÿùǵzØJl¬IÓq£²§ýÉ® 8oZÁ‰Ôæ&—ÆÏ¯…´ÚB­Êä ‡î¶Ô¯58:›åûÝR™ÉlÎ�¹bîÀòJq]Ë_çhXNšF£Ù'õ ¡C/}•ÏÈä¯xûÍËÜÖ âo€jðz;-ŠY£mÖ3H«rüæWí^Žõľœè%2ì:×AfÕê:°&©z5ý¡Eûäk;ÂÈ)¾A¼Å&2Q%nX¸ÕNµðØÄ÷(o¸¾€)ò³Ñ¸SÏoüʇg^áÕŒ}ŒÅ>â£=â«� BR›!�É,Ô'¢ хγtØVkùLzÛÖz¹CÒqª4p¯,K›ž9†«8£�Ö¬ «1Τßè‹°ø�ÙÎ$_\ñù`EÌÛĆ콳�[ù¢Ð"öw×5œ�6İÜöxÈ�h_RÆ#ådÙ¬�M=Íi�Õàú—…ö´GþÞ‹A(Vcüîiãð'PØWm˜˜ˆY÷m¼…wþq 'vîõÃsW!Út�…_[ØëÂìÂíøTk‰Ÿ&V§„K,^¦˜¼Ø²üù"Ïã :.Äs5úRö.ºEh5lŸßúL�œæ¢¸!áIÅ›ž+}ò]×MÐý,Vžš e ¥ŒÈzôîs “×vʘ Tz·h­óÆß ‰8¡/ËZg�d¢XÑF€�ïtòDQHäPÖ[I‚ªåd­�~±†9�vÒ¼ á¯×a™•½h�s¡çS£ÙŒŠ0ÿ¸9ì(dx äJl?µ2�—aA·T:ý¾Âþ=í×ÀkâÈÈH«Š½X0f°âo�VŽ­�Åš6£]¦µE�„!»Q‚úéï¹�7烧Ò™;jS�äa3,Mº¬b·§ZÜópYh:� ¦QcXÞ3&^ãš}Òözõ è 2J[W¶ Ö íCÃÓüÙ)8еÄ4çZ®˜k%j 2 ¶!´çÎ'¶�ºp¤ƒ"–b¤ãîÑTÔÈ)híïÕß©¹'£$übˆã­¡–$`„Í[ùª¥¬Ø,cÑ&F“¹Š©Øv*Z0Ê,#�$°½Í3{�MXï¦QBó†*´é�KÓ6OSj¨è�Á§«tPDdJ¡â¼®{(ÃóÒVå8YÇÇ@—A}<Ý-ïÀ«y"ù5Q„¾œè ¾ï…k/YøßÁHö«ƒí}ôþ$´×SkDQó$öDêò7ß’ÉßDhíµ[çI#»úÛC°ébácƒVz€ÂYL ì,8Áô[kIc1Æ”~×ϪÇÎ ÝåÇuM\*Ñ�þÙ‹Ü©Ž¯î?84{žÐÝJ� σÜP*Ï¢ÁŒs»zg6äWz!ºÇd°ø¬ê�w™B!G*ºäXX@�‘šÓ›†± \<ò@bŠ?ö‚m SW“– j.E¼>´4/“ˆBÍ“J—‘‰B\sD›‚®ð;shb¹nKˆáí6»¸5m1¸€ áÇß ˆr7áþ«ÀÏrÆU«^âö‘ÌjMÇwà;½”Hì—û“f¡!‹Õ±Û,Akö¨¹eI§.[ÚX€nþ_üôýuéùù„V£‚£qNø�ª/‹ëÁjª�Î÷úÓ¾·DÊÈC)¢æ¤òlKÄØÎŠ±j¬ïøzM8ò±Û·XŽ?×Fg2‡[øS¹fdA¯Wgü¥Iy;±yž”²Î*´EH–§²ë5æc?s´}IÝ)`†áç ºÞ½©0&oòòA7$—'ZÎ$î¶Û©Æ<§t‘W2¯(¥à‚ËÓo¯5å‘­Z|Òý-€h,Æaéèfj»ŠÏ .bm/6ùí½\ÒLówEŒcS–û'ÎÌú�¡Wd9…pôFû ð-9¶Òûöe‹äUdìéž &ÌOÎñ÷ÔÀbå6C¬µÑ'¢d(@¢#WÓY¹Àb’Ñûœ(¥ ã*ê'Û~ãS£aÙ¸m¤;µW4y¹¶47»a›;¨‹xe_lÐjuÈk¼eLšpÚ6—ëɽÕlÉ{—ƒ~ºˆR“l©om-£*¬r‰ÑúHãM,¯Xø­ÿöŒ$”!tŸ¢0çªHLÒzûÝ›7ŒE+ˆºÀSqߪiËÈX©ëŽÁ[Ýd®«¹½9cìÚÉðŒ&?߇Ƃ…6 ÐüSÖÑÙ+Nh¹0»…ÓØgÃc°Ç“Ôœï9q¦⮲R]m[ȯ8Ä}jÞRÒ«ÐiÅ-!\ÿKG5ZÅ^J >D�p-@z¡¦ûLOhñ7 ºA¿8LH\¨L¾‰]þ•“…¨£ªŠDªØ¬ñΪ²èŸ/‘MTÜ¥õœ¡Ö—E¢7Çq5“ìóVäo’Ù�ŸïyqaÂÏD¶­vKà4Îyê*©$QÙpŒZ5?AªW�hþ Îp„‰çÀ1´W+ ½í´@_·ØÉÆÑ’9ÜoŸ9y�ð, (ûwÏ9Ânf§B³a»cÓn?™RõMÞ¦ŒçcÈ\�r|ü/sã¶Ç8[Œun37�$döÏiµ×^åžÑuåÔO!‘ÿd w$�ޘȜÍxU4ªÈ‡_s¡‰Å…·é3E[¯Öƒè?¥ÃU}g¹üÎË"Ûouýta¥Åj 7Éõ~Ðõ¿ H™šÌè!às¸RŽ˜FJ¯öÁ¦sv€¤)ÚçzO>-œË‘«$šØð'¦öjgòGå•\ï¡>ÝhD�) ¼Õ¾mHÑàˈ`?Œ\æ‡Y½—È+­{WMñ« · ZwfdÍoÔ”æT¶÷]¦X³røÔÿåöÑ^½®'7[¨LŽðúû ÏéŽÈÕnÇb‘ˆÒÊýÓ¥TÖ¦ˆ$t@ e§æ¬—©‹])¿-:–lŸR6g°óTn�‚¯Öš€þQ;#XÿûÆbß9³¥éGý~ôÿXæÅjÆ™™»Ô" †Ê\•Â>ºZò7…kPI¸ ›%÷&Ö®µ÷)l|�n[m·³_<`)�k’ è…„Ų[Æ´Ip@0‚ë‘~ÀÍËÖÙj¾v!�8ðÒ¨M”[‹©€0Æ?¾56#Óu aö¢5©%Ô0«JÇH §Ã`$?qè·îÕC­£½2NŽq; ~€! ¿Æ_·évÜ«ì:Åô(^Q+ÿš ÕÔxÔeÈ–pìªW'�‰Wœþ¦[èÁ¯G9 »ÛZ¬´Äç1T ¶[Wêu`±Æ.¨‘ vÛïвUºL>÷]õʵ¶”}]6¸æ³ÐkñN:–uÏHT©-OÀN$û b”W;(T<دònpQÊ-¶ ppºý¤AÁ&ïÜí’mÁ[“N4!ø]@·a"[M¢^ÐÀ—ä’F;fqu]ˆª†Ä£LFÎ}<³Ó^V¼ŽîÚ}áú ÝGW%ù/ܾ?�ìR2t•Ó·û£[Á V�„ÑF4JÀ¹3ÿw¢l#Ñ�­B]j±qÎu΀¬ p0Áú¤ÓpTÉ¥FB‚h;>؆ŠoTF#º§¶VXÕ[B^ Œ&1›õͺ¨-~=µ§›‡P¬‚¹`¯Ä±»pâ±?Ç÷ûÌÐùvþe$ðœt»„�<#/´%]Ô:Üþ8‘Ð!¹˜MIØè`�‹»Ä³ãïîÑûÆ{&ƒmLƒ09ÃEY ã'QóÕ°¸.ÌŠÒm�±9~·5¸¼•×ÌÿO ç³Ý£:að“G±ƒ‚3Z™¾tC@Ik”­ú0„xÚéÎ!|ãeM¸JÃð…Ì«�`í«œ ¡H¶•a}íßCÎQç˜\µÆr.ÍÞI¸ù—¶ŽoÍš¦h{'w¤Õ'¸ÖÜÀDÊPˆlÄ~1ë[ÔÞšK\9WÜñ¤+žV‡À»±‘a[·Q'¼Z4ýtº"uÔ2¯/y�àWóÚnFFîä ›×3ÚÅMfÏžt{fkªrJ34žÊÓ[Á½°ãH¦Òz ¸�Ød‹w!YøÇ"rcõÆcb§°×5‡®û¬ˆ²¸&2r${ÆgÍëÙ$WŽÄnõ?¶ Zqád¿ð7>n�ÈßÄwdú±a+¤ðúس…'?-doH ™ÑX£*Påî‚fŽ–qˆ+dF³Õ0j¡£y™ß• i€}2Áé»wŽAØoûœ}îìnÿÔž ¥rûÌ8ÎÒ¥vÀ޶ôàJ{Žº}* Ï«HzG%c?§Ÿ(8—d@;¸Úª$ó©„AÌøeeáyOÖ¼9TÒ:Ö·ÎSØ'†Áüœ®†ÖùH÷µ~xO=±a™Û£�;¸À/arª‘¿�Ûô—G¤k%¢¦j¨äçUæþ¢‘/¡IÆ„ìX¼y—Mèk¦çÞV/Œ³TÖºŸ.â�x¶âºÄÄhsíäÈ�€³®¤ésñ�Ð6Ì>ˆS—6ýÇxÖêï,„¢Yãòp.f[zØE§U‰ð06„ÈÇðê\BÈ®O$Ê'…Q- Î@«À@¶GÓÄàrÖ~HØÀMäó ó�gš_�ËãaB*›Ñ˲>ŸÊÌð!|yDÒÉòÁ+ÇÏŽ¢úœ¯—Fô‹k$~&»K°åÂÂOõ·[4J|̱*Ñ Zä�d;«¦�Ãà��UòÏÛ› Ñ„ä…Ù3ÚëÏ|lã¨'/~ۉыù¸¿)±Û­pp�Î n· ÖÎt;´»·¡í»Dá,ÏTŠ3iˆ¥N¹v’R’äé°qÍé ŽXôMljæ²¾Pg¦WãY`ÔµBéÜ×/9¯t·Œ#º;ye](¬xøž5Öéåûï8g8…ÉÒl7'6jö B7C5‘’=|SßÀˆ[|ÆßR)"º©âÐR§ÜöÐh”fÖâ‚8jlœbê¶²[Äg ‚Áð—b«—ñ¦Âª &¸"a A=ÈTôxÕÿ¥kXb‘)L]#8…(¦Õ0|oEh4†NÑXFºù§KëÀ/\ÝøˆÆ�}‚¥àÓ�»þ#ãô‹‹–Õ¸£ îš_(y…æ­èïjÒ7SiHÉ[^¾€¤•¬‰‰®,û7)ŸÇƒÛ‹LôŸAqOCûÐ�iÛQb¹SºÿïÒeZ’ŠúšJ0ƒ ŒÏ�쑼í’Å r§Í;µ,yëÇë�S¿–Ö¡|s¨ôg”`Ã@}Þ?ô©Ó¯V^ùìÜE8×Áý¦\´Ý¼å'HòÜZFÛðKAP1¼AUÿ>-²‰¤;§ŸB,sx*¥ë…ï“�0zb—µÌªû¾ýr]mð¨�G3ez‡Ná‰þz¥ð5Ÿ¿bæ¶î{‰…‚ØX|/WVC¶þ6#Ú5ÌÌç®.>Êóh‹I­²}êï¹·'#Ÿ*vÆf6…=¨ÁÂcßòÝqaNœ¦eõI uȲ㉙í\šïãiOÐþZ?úr�аË‹íK/‚¥2ìL]dA.êxK”2ÇTRå™Â6�´•ƒEæ 4 ØmY…îIá PÒ˜îÙGZ|Î#,�&9&�Ɇ‘5Žh|Ħ6CÐzµ�O]#BM™ã¶)Ð=/Ê×#Pâr´ˆ9î•s\ ‰¼;`çap‘É[(Œ6¸S[€C•}î†êçˆƑ˞ȹ=^^*á|œ#§¬l³º©¦S­(ó.î]‰gS>Âf÷Éž`¡Ó¤±ªm²ò`xâÆ:žý7{S`¸Út-AçÙt« ݬ¼,O¿Ô¬Qe™Õìy ÒÛIàzÇqùÀÜh´%DA¸˜‘”ö6RfˆXGJĨx¾þH$}00Q]z«Ê«ŽwqªÆ¯ÕÄÖ’èkÓ I}PˆH±_8éfI 3áUΗ�®–Zá…“¥²|ÞN›b,hs¸nìû‚h±¨+U DMfx”—#åÙ)F˜}~ô5MqJGoÄ»%Z;Ôö/O)W›™2¡ÞÊ�Ô,Í×bÁþŸP‚eûäâOL’Þì7W÷C/”‹SÂI´Ò2§qõÑl„h7°è�,]#xÍë NÝO†ÜÒ@¨Fù„û8füž¶ÇW%8î wçüBr[Ã:wë9cÏul‡8 ¶Y` ²xY$“+ö”a1Ôø ¸�'ûÄ‘¼dÊ‘ê¦<ëÀ¶[ûñ:AÊ®„i—<'èi2’­Kõîݳ³ßüQ êüHL&!Ì9º0¿<²;F vÂ} Íçõ¬×mµ¡!9¶ºQ¹\÷´k5 ¨ôØNÙneQTãÆTbŸy•j°ŠB4W �¦ˆ­»/÷”£Ÿ� Û®öMÓsŸ–ÚÖ�~1¥Ö<ûO3¬«“©Õ,yî_på k1…¼fÄÇ$¯“”×̯*Œˆ>}wÒÎí_~ù Û>“ëƒP‰˜Waùš&X†ØBˆ½ ÆFZE÷B,6Csª,ÃóB(ÇÈ¿~˜ydù…=�ŒŠDÚ|õ'%Å’÷nØ»o®£9×øæ�¦} ÉIDZϳU<㼈r +{dáí>7R¯Ç)tlOî0èˬ­ŒN+ó5Ó€�«ê„£Èa¹\MÇëQWΈL‡ë‹ÙµÄLÉìñ˜¬ŸrOjkN�8T^“Ÿ¿¬ºò€ñÅ_Õ§·®oɦ4sàS¦× ¨îñy y \6 WßÍ‹ƒß$­1É?pê e\1¼ë*ïn“‚ �G³Ê€ïA;�A�¢W&2V·Ò³å_!ÊyY•hLöV dD°\ít+ þ(Ú ,i€°¤B‘TÓJ1AǺj'`]1åÖž{µ”ó ÀxÕ¶€&+ýÛÈ…uÁ(›ý‚„´l§Â[ÏAûàÕ„šzŒÊ¡ ˜EË}¤«Þª«œ5ô§†;°SµR>IE~¤å ÒU“PHϽÿ@R(=˜iMë÷ô|‘4±Lët—zŸ.fèÙ´)p¹�l½áÎøÅ»TÊai6?X-»ƒCØ­ZûáK¢-¾¸’CE BK‰ÛÆ*,ÊèøtLšB' …-ÖO’ÿ4­‚Ž)°w�ÏpþráÄ™œû~ïj��”V?ö}¢æjoiÝôJ?Y Ìlêfƒ�; ÒJýBMÛkdmìPãnE„¼Å=/ –ˆÑr‡ 6ÿºP>›éÊvñäk®æþÍ’=)ƒŽ0ó‚1:A«YWœ`{&=¦)Äu~6mq_4拪Ÿ`NÛI£€ä)B¯3K¯PE�=gÄ'!ƃn{NV-ƒÕ˜­]iÔr,¸6ÜEqplwšj·‘¹y+ÝG9<°‹•ŽÕ}r†™Š3ƒFr,Š„9êEo© ÚÊï]u!Ø„Œ_!ÅïÒY~D¤~ŠCööà6›f"¸õãDö¾5~Ð,½§° ™&ñÚ·–<á3ºÂ÷ š¶ôwàk Ä®0#\FvªžQfü‚S`WõÕ*J!ÏWv—|Q,®I¿ßnÜðô¯C ©ä�«šL„=€#ŽKtäJ¨¤oŸÝù6À¿¼N%z²¼ÜJßëXY¯31Ñ[/Í«ô§æÛ�Þµ€ßVéÉ`pg�+Âê°¼ˆÄ(iÓ”O,f_xZ’£õ¼»I!–qkEd77 ÒjE’]¯Œ†—N%èYVùˆ2vX}ÿÜýk[)ciŽmª¯Õr`sé»ìZÈ_[‡�©ÑuÜB‹4Bzô™�µ÷^nCôQñP~ ¸ÀOÏÊDí€×ô¡uR·Ž´ ÐDéôáz Gs-éNÍ_4Õæ0ì·>Ð0Úk§¡$È«çU­-SÝ6  †-ã§ÆG‘–ÐQ¶­tk†cñ`ÂÝ’zh½pØÑwT ­óÀE¿jaʵj–¨°!e%;X‡x'�óK·üµâ"§°ü½¨�ˆ¥³j‰vZ�¹\Ì.Áž|mÏð(ä„ðžS5Yª7ÁX‚¹)=qc5 °òÓJýgÍûvå'V柨ýÜ®®hìFw¢ƒø¯Šß¯6Æ�bxÈß�š¡C<¦Òë;˜½oarÅ´]=¦À[e)?N1ª›0£Á7`U/;¹sf ]<1âü¦ÞT(_‹“í³ÝÜ�é²"‡>æw‚Ð[©´12á¯�Pô'=§[�0ÛD§hZé~aCÁ AQûð?{:ª×ä4t18ßùMÓDÏy¼ž tY 0—³¬÷âí+5ÁÏ«›¨ QÁÛëI¹ð² û/ßsã7V©áÝ Hñ/sI›‚›hŽ9ÌÂ|ÛVÿSžTÆgK†òÃD6½$_vd÷�r•_ÇxøµÅ„é·· нFu: Ș[äùV�Ï:ÒeغÊñT€A,FîȲ ËX�ý/?NÏ€GÛt¼Xþc›þy~Ž€î!/ˉ®Žî8¥hÍ(ìLµi_…¶¾oý…`kçù[´4~ÉÈ85‡ÇÁg�(@^à�àJ”v° “%–åõ Q“yägœ,?:0vç"±¬€à1–óG!¥÷Ê+¨V§D§ýuT‚q¥+´µ=Û[]øŒÊÔ¿§ybçÙOoÔQ æO+ŸÃ–ž®=ߌ=ÙÕ�kز2vm¹­?ökBff»O«-½Ü.�'…õ%¬n…W†òÿ‚$6ÄÀ=ŽªlÒïÌ;g%c5¡3?QŽ­4õ\•Œšñ†[äm»¥¾uzÅ�2„k¾_ˆ‚º¸S©ïg®\'×%޶%s¦ÜÒ×Äà:¼ßÎô``ßœ)Û”¦ÌÑ£|GD–¶NŽ8„h¾Jõ–Ñv3ÀNŽièe#, 8æ·¾äEî{›Oß*÷Œ]å ? 2• N;ã1õ¿^Qþq‹tdÓ_‹C‡3C7Ãõ`oÃü�>Å2ýu$¨¾“ôçËdvÖ0ˆÖ’}8g^¡Õó~qveT#v#n¤ž ¶PÖMfÛÜú5^xÍZ¹æ,—pŸ¿‘Ãñ«0ÓÎuGP,:3ùpä·ê}xÇ٥æR˜$æ7 �# Š„•²tjbF8:ÄñP-`áÞKΜPé0îTÿ’Ûôu‘úð´@äÝ‚ÙUlç]<'mŠ )&„×w}oÆj×ÿ©&¦~À£²Tß ß­ÉÈ×ÝÉÝUûUû¿ RèÏ)f¹T[¿Ü!1š‹u(½!UéouíŽój@ú²€;E|IÿuŸ¢šºph»i޼¹sFŒ¯†n؆�}è�WÈrÿË"«ê�ë¦äµFè²6RÒF”4$ΡJ*)N„vBŒ}9TG±ÍXXû¾=" EQŠðxÄ4ª&ªDX¢á1ë�èç”?‹«x¸×„±o¡“�ÆÓ`B~ôÀx|‚Iù ï�b…l¶®þBa—|[r»A¯ù¼"æìAèìÇoÎpÒ‡µX&ZÄ#å}Åøê¾ÿ#n>ç´l&ã ¹ÐDLØÅõĈ¤¾ïO7¶È"'ýeƒ÷Î:¨w7žîþo9!ÚSH† òðGmܵñ+øÌ–…Ëä0÷7vØÐ­�‡ÇïÂ/TàaÐú¸N—Æ©¸]—e:R_ÀŠÛÝ„ÛS7¤ƒOLxCöÁ[¾^Õ2t*ÖÕá�D5�x‰ëfpluýåÀlÜ/Ÿƒ„{E3~Gþ©à�2|$WGü­”Í6FÄ«�»È_W_$I…òÆë wð¶K½p¯§¦™ËÕ$PBøæƒf4m¯KµÆ"�" òIÌá LËèì¶ ÿ±_¬<¯ù˜D´µU(KH1GÞ°Ž^'gmÓc/ –° ÿ¬{c�dÚ©ÿÕPÍc‚¸¾YÄòCÁË)´\ÿ²ØU¥³©‹eã§í<ÅØýL0 ³vfh×.¡¼UÙ Ç’´BØmݧC©Q­½K6ý’�ª£øÎž/7t+ÚÈ 7ø[AM”»Î5Ë�^ùª‘jûšE P[£'n„|E³ä™Â;I¦A åÈZ öòj÷ ¯~2R"Mî×4v‰“‹Š�»ˆ1圬øÌ­ÍA@Å<÷p öÍ%î ›¶cŠ-¿¥ˆ�L‰ˆq˜ôí­ÙÊ¡º^ϰ…s�Å™’qhÕà1.#Va¥PSZwk}8ú¯ÒrcODËœ[©ÿ¦ïzŸ0r‰ê/Ø-ŽT�ªZ¡A‰qWh¥rC´<²j8à…myG˜+¼ªC‘¤i÷ù°¬Y¿@QŸHÞè…‚ i–ˆÅnC·Ö¢õÉÑAZ“_c”Í»ò‚)ÒeãMC¹â–ˆ¹ê€ãf“zZ¦v¯£=v þ»ß&_—âKèà ]EêÌP´—mUE�ã€Órªp�Ï™˜j/ú™8óˆÏ¢Ò%‘`àÎD.ÛðŠª40ÿ(•—Õµ7é:’+IøSšGt,oÚò5¨âpTŽg0�e\KÅL�]©»ú&¶nŸ´ƒ`3Ú“´ÛÆBþ&B[d¤ —&ŠÍPƒ™2þö×í¯ã7OZ{­°¦;†¼öÛÕ}©Ü�âR9^Âã–”>¯ø¢Öž7 ¶:RÇvJ,d¡»7!›ñ ¹›iÄ o³Â.ÇÁᶆÌXŸ¼ÚÓOu7š fÍä6z®•Z0²NñöG‡Ð‡Úötˆéo>v”èÔ å¢ðªÇ'VÜE]e/¦µœä8åå³u¢ÈñÎ ¹ RÉ“(PÏQ’Äv÷ ÿ£P Ñ8g]îšì$C}–ö¶sŽùá–xC ü}ké²ÔO‡àÀ0Òƒeœ ÛU%kÅ;0¶*�¹½fG¯ÂÁ”ý A¨Ò8ŽGM(¡Wj¿ÚG—܃P+xÀñ�˜³`…\{¥e6wØÝZvgä’WÜ/}y†[„xY½§�µŒ!ìoP’Yå2å•eÞjÀiÔ€iÀŽe\Íõš_Z>º ¥ˆ“;+%Dgyaˆëûç {÷žjö†§T0ÅQ@ ‹^wáóh{½kuÉ+ LÇÿÈ4,gJåÙ¿?…Ë-Ž{…Fˆ‹Ï5úÊ/jFŠ"ÄMê�œéE·Óÿ¥\®Ý“Wfšˆ[Ý·@`” î2(ߥüÕ¯ò:Ém2Äðù3,¾„cÆy.|8‚jj aÝ-¿½ŠEÌV(K:”qx ‡$“>ìœOD:“'¤—Y[9““«t_.„Á_-dzþ^ò3Ø­Ps`ó#ÅB+ùqæ!Á‚= M½ÀøK[ÕVjnmõEÊšO¡8$R0Üì�Æ‚„gç#-÷ý¦üºM`K8ÎǵÏÌÒQÆà îÿ¼âi4²:P²�gkS�æ[»–6Q0ñ=¨'�›ÊöV×>SD*�[þÙ9ŸÙÈx\2> f¦ç” ³‹~ò…/â�óF®ÜÇÍQÉõœþ׫pX:¢`"ªæÒÚ 58iV:ƒº—5°é'°�}­¡Ì\ᯩk#¢Óju�(]øî×*"g ‹0^Ü÷¯õTUñ�--B S!q‚×8>®‰aʹ?>ó•b˜f€ÍJøwŽ…ã]MB¡dNíVÐÔ¸›¹±è‹ÊÛv.£Z1et�ÇWÐ~PYÛ’úÝêyÉ–›Å¨ò4먴t,_Õh_�`7fÃŽx:^&ö Î4Z-_(•ñÑÆÃIÕ²t¨JÁmçÑy6( ‚2Dz/ZkÍ ÀÏ* ¸¨Ð<¿Ójß¿J&èÚIä1š?ø–;d2¢, J²‚И‘oùŸ�ª²ˆîYÆ:Oæf¸·q+Èß,^�ð¡Dã7KP~´*ؾ…~áØQa¬;ÀµzÀ˜H„¿ÃÇ;I­w$7ä³ð4Mê«N¡½"Êh7¢ß¯^/;ßI±ÕA’—_Ոت;L<ì% í�(‰y=SÀƒ Ó6à@mÑÎÀ)qÕE÷Š~\Nó²¾ǬK9�†Ÿç asŽ2–FîäT¹î¿S� >?Ì€`Ã!�…‰5‡gXq‰à} �±–§QÿVSwšÁØ–°ä’é`�ÿ5w�©p�@eà;°ÜÔè×0º•=Psæ,†ˆm;Æ€H~‡úž FÐ\'¼¨ªh˜ÎiŠZ’¦§sd“;`9qÙÕ¡åthü‰Á2¡éÈûE¥å¨Si¹ö* f ‰´Nž9íÑ1Á¹}>ÊË8Çû×ËôìØ\÷%ò¯¥ÿkR߈ ¶ÐŸí«°âI¬m€×RCF€/Ý–åæ b8Dדkªa»H4{ópÞ�º¡õUµÇYI*W*”€Þølj4³OD€™¡•XSŽ™é¸c\£‘u¶]ð"¬{~i0Ò9‡Žã"Ò/GW @ÇGø]_V;ì $,§Ù!ˆ g@wÍå³+,¼aNZ`=Îî3µµ†Þ|Ðê—ÅÓtm�ÉRŠÕ²[rÅ ½ÌµÁÄgÐòŠåÙÒ𘹖Aq§2 sA>ºx®ÓËuއx‘|ízÈŸÆ'üÄ‹®#ãw°–Ö®¿e¢ç}Ýñ”ý­ïaK…|‘ÔyoÝ’R”&J]–é/mˇ¨J¶Ÿ%…Ïq¯à?Ž,l £g “Ä›‘¶<4³*#m~�¨¶k¤Þ¸¡GÀgi“•Âaf»Å´9«Ž>gÄDŽ@y£|ÖçsË62ç¾éëòV ’[f…íãÆMX":Bò€[W¾á)Ž‘ÁjenLôʸ®w¯,íìÑhê?*8ípÔÃe�¾¾†�ÒêÁìÔµÎ��\»¦ÇYŸFðਂßÊÖ¤Qú'È U±ë;½�ú/l!©*h7°¥J‰§ñ<�ÝàËÐÌyy{Æi0¢ïqé¯Ô8•8øw²#…ä0P¡dž“6<”µ;êÙÍ�œ\„Ó(dNTHÃã xÀ!p7t>Yä_Mô¯Íd/€ºð)(„7—2…»Ç Z©v¥ÆO·Èf'a{ ¹4V WtL™_‚¼c²à+éª5Ð8äà”Ÿ‚QßUt•igüØu¸Ö¼´D3TkO÷z€slýÚðó¯™<·våä}+âY#*l›‘PÑÀÕý„&»@ðHÎ$Ä|ø93üUªÅ[(1W{O: ¸Z�}¹’Ìs™Å*2þÕ5j£ïqæPÕU­@!‹ãh�Μ| …B9I ‰ü^sô†8äðf ½Ú»¿ô¤†pìõÉ3 Xí˜Q11Ú²þ%@ã8Ã7š~”‚K¡"4kÅb9ȧVj´öôÙ Ödƒøü=Ð2o¶Âw— äLI$29øÐå?:ÒáÑð—óŸ¸G7£Ëôw¥4b±î”°æxÁ¸ŒŒ®ù;Yu¹y…PóÀ¯ ãŽÒÀ@ËõNzN«ºÃ ÂÆ b¦‰’§—= »ð «»P6É�Û¹y—îŠ�ÿƒð~І º5ÑeÛ¶mÛ¶mÛ¶mÛ¶mÛ~—m{õwNïî‹?½³g2“yQ#Oj¤23*UMzZÓ¤?”ÐÛiæÕxvœÕ¿vûË|ÜäÖ*;Ñ» ZD©„Ÿp¹~'ý#YN»™%Âmx·¥%.6´§GL@§0�ÈDBí¯g �¶›dxÊ·ß‹cµ©'s«ËÁ\ªSëÊsêF!°9ý “Àžác ¥ø”5gVмˆò‘~ ‰K‚R Ñ BÛ»Ó88åƒwB“n­—&�ç”j#3ˆÎ}D>YUÓÈôSINkµù=¶(ì "u1v¦µñº6µº1‘Ü�³žé’Ûí0JzÍnÌ9Hì—ŸØä'…3‘T³é}àINîŠÁ3X‘Ó2m�ðnïË‚9•—cËš›¿—.;¨ót1jº9Há©Zwû*_OhOpíЊÝò4ÈÇRÂ�†]øÂ®Õ� rYNÏßÚÛ©Ù»$M  7™^寃áSƒÌºc„†©‚% Ѳt|J\PÒƒ[‰XU¹¬ƒË`¹3³6§èxœ…Iß*1<¢RÊ[Y¾Ö@Y¢—�6gò �R§w47©Ã3øª ’Æn~k:niÍp”Ø uNαŽ+zöxPÍŸÂßßÕºÁ=¹2,Ë€c G=|d©&÷™fôDžÆÀªMå!ýØöfLcƒ—Ñý!9OvÑ.>hÆ$,(u"çÏ™%Þ?h1ØaóRÂß§�píR@&¥ÅÇ�¸ö¾Ý&õŒžŠ`â²x„;”ÕnW$�=ˆ) ­ÏúÃð §ýµ?šw·ü^ƒBu%è)ÆM½‡°x»¬sÂÀ9>Ý4dyÓ÷¼Ž?Y^©­sA/|`°Ó�ô·ÐʼH¤ybÐ*D&*ÝÇ"ÄûŸ—¾ºå÷WT˦̖}ÒŠvó‡$ W»Ç‰ {øÂÏú¯ß²8/Å¢ÐϵwúÊýæ¡}`>äpoŠ4^A£*‹Ó·äfää•MÌmªB4˜Q„þÚg0VöY~WrÀÍ:~y«Éü #§Êí›÷œk»ÛOZžšD�¦D„¥ ¡xÁ•å®ÿ '>M„ “.ˆÂyvŠn¿‰L‘´<ì[2$9lÜüzG’5-7*ÊH6h‡<ä¿xoü_�ȹqR ïyv¬³Z‚`9Vý¢Xkä ~s_EXLs PJ³. ,»ÕQ¿¯©V¨hó^ ñ´7ú¯4ƒnšb>ðš3 š¯÷wP ñ|¦9¨6ÎÂ.¹Þd‡Ú:D²b{"錟p_E= —W�ÚÔµNôõÚD è$šð{î„]nõ�€Zl¤Ó}Ö'$��UgÜŠ( ÷™åeß­è_E�Â.ªd�1†þã}γ¡üEX OCÿëÕ*6|Ÿ*�‡ÎÐRë=_v»u�—|–¿ÕxãPëÄRjO„�ÏDÉÂúÚ¶JNehãeÃ0@gÊóÂùˆc�3P% ‰öLÂêKvà”­#Öæ²ë`Ѥ�ãã y@÷ÛÊ;ιíÄÈT¨‚;z¶X ÈbÁ¯¥Ôƒ×ù„ö.�è“8äÀÜSo"¥ù!fç4ß©)3”Àa2Ô¨?Ï£\n˼f<65‡!fÈÇ x ÖÃztšˆ8™1¼Ÿ½Ü[­¯…u†ýÄeIôÅ$J„ÑLd’8xÉ]×emE¤óÈ¡/‰8ÒA“*݃ºD%ouÍ XaºŽÍ¢=šSYͱ#u;ë�Œ‚jPª=ÿc*1ä33ìLeé÷\Gž×u†¯™µ©}XïÉ‘•è|5åßT^8�”͈ H™Æ5¨޼¿�‹o‹5ms›YÙ4…ÙÒKõ�ÑwB°Ÿ³¿ßbÀQíÉsÆW�¤Ñùκ\J‡¹Gås•c.ÚŽÝöpíVHšÙd'Ó#ä§#N‚ô¢„¯ÈÉÿ0„Ä-Uo1Õ .z÷þnIüêWqp=«h’ Q{Úëëi¶ã­c¼F–ÚV�Ç&1¯t½žb½y�È7|áý¨Œ¡\þÁo�LdxwPë‚B‘iû“¸B™Ñw=«Ârœ••êÑ0m˜)ˆ×°×x¥RÆäà»Â¼ã¿«tNn7=åÐѼI`LA í†"_¢3?\¿³¬C±x‹NF§þ<¨› ‚7"òô,0ü ?–?‡©Ý¢q"ÉÑi°Ë‰)»Û º±ƒhû_ò¶H ƾo�Ñc€%¬úÏO ;ÜN–�¬û.»ª+¤<¬òÖø…í<©@#dïMñiª£k[3–s°M Yî6ªÇIólñ-áûûv5c9Ö]»Æ2éyê€ùïGç&F’{?mGø@9°1¦”ó5Wœ!Öš5¥¾Ò¢3T±ÔDî6&Áw‰`¸CÄx®¹xIcÎàç’YC!.:³ ­^ëd^‡œÈŨxæ#�ú¢ ãÄZ®´"&mmLбIžz‚Qí¶eL_çØ__K«~m�w<”ǪV–8> è ÐAôŠN!ÁdJå€4.1_ª +úD¼ø—�}çæoÀ�)7¼­ÄÓKâ©¿T†X—)`ŸªXGc0äóŒ-ç“¡'rgÊjˆ~ 1ZȺ³ˆÊ/|F*è  *<é�æí¼‘ó—„th™c>$»�Y½§yÁ}Ç>èŒñåw…ÜÙXúONƒÙÊó|?ƒ!¼ÿ–Fh:ÞS�]VjtÝèä ¦ÜKRý0FJáéÓK ¹Q›Ü –¾¨ÛéÊÊ7§HÝ® íl# ;«Edtº44ìny_?úÚR)u�yã›FÅÆÇò¦~#Ê÷h&h�ñD×(§ÿ¹SRíØ·@^Ó�M³ì¡Dh_±5.à5$G¶]‡jË;³ Æ$å2€ã¡‰½)Þ 1ò&pµ{CJ¹ñ7YRE€@cZ‹m´[XÒ¤vA"½GWÿ«Ia•™†hgŽ.²á„W¬s‹DrÕuÅýoEZõ¢ŠqŒiE ¿XŒ¤mÌE¯9B÷5|ÃâÀä.5Ãq'‘È[Üí!†CQF–J¢èoï48ØÉµ—\�U2ÙÌšsB –ä{àϽz\¿Òª/Œ%âl~æ¶ø÷8‰ÁJB³£ºJõþ*ìÁòAØó²ª*Yt!¹†¸ ™:Ác‹0’6‰ÚÎi§ãMÈÉØ [äØIÛ¯ömç+Š ìPjRï™æJºÅ›Y ²«‚èÍ Etª?oì(VÞšµ)F„zRÙ¢ùV¬·›âl‘m½ÍV›[ΗÄãÐÂåòÒîÓO¿ÿ w¶½1rÀ(ˆî8^ð²×kͨÜï}Éâ«°NŠmÞE¦aý%ˆ\øÌƒXìX°Ù\2'› öœšäoúàªÊù˨€&»ÈðפÚÍ�{µGþJ"Úñ9ô§ƒ:£IÈåïŒ��†BÛ)¶5gx�6ü“-†KVÛšRŒå%7Hëºï Â;´IE5Lè^PÁNÉ’G®‰ btN4Œ¨œi±. ]ÁíøùærP6ø„$þÇN-²@òÞº�g¸&bZ^ÍÒÑ0•틺Z¤û/©b±ÖH›díc%.ø{Òr”ÃVM^äŒÌ—‹¶ÎœxÊGì@¢ä§i…ëxÀ‹y3ØlÚ+Ù2bÚÆÙ…$Ÿ|Aøù¾p�Eæj±Ÿ~Kå’f¹ô”ìbWµ¸üQ’ò‰ØK§ã]„æ7LáX«ÎÇÈfÈÜ.þ¡Iþó8d—Hýi˜*²Vƒ‰%lªæòÚmЖÑÖtƒås^â¹o>Ô¿˜ÃÌõÇ�äîðÚ~�vÒ$½S<rrþѱ°I‡ø.vbÞ×AocÇeÃwåý%ôshÜã¨ßÅŠ’ .íÔ¢¿ÝJïÒˆ–�¶ü–û!ÉuB�ŒýG{t&ùH¼ÜÙˆ_š)ÎÑobÇÎÕé#w 4àSv?88u« �øòÝq ¡Š�|çâV¼£J¥«Y0P9:#Rã%,û�ª5S'-`¯°çì�Lb‰¬£©GHÛüSæõ°‘N°–ôQ÷þi#cfHhÄÀi¨Ä2�EÃÎ Ñ¿_Ÿ¯»}—Ûâá�Æ€ïÅPĪHgÿf«}P"茮e¥¡~¿ÕA{нÝX'ÐפþíEê']¯[àV`8w@ 9•`û`‹“Œ±X¥¸‘v,Íø);ç6 t·=�XË~èÀ¹ú~±£—9C&{Ù8ÀÜ_�pEëF®*f?~ 9áîïúÅ ¿ëÉ?ØDøþ…á¨!ÃȤϊ Æökæn\*wî€u EV¬îçR¯›å˜IŸ‰h(r(îR5p R �\¤ÂP_ŽÍÀUƒhG3þB,,•Vš×ß˜Ñæùï®.`Jý«y3ó9÷ÈÅMWU¬ Íáp4ofiiëGv¶ë‰žŸ.ãÚQÒ¶eÚ“i‚Ti/ƒdö¾¿}ÕcqDÒ?ž?ƒ‚zÏá>ìJ6Û& %‘õ�t(ÃF×#6J’{6„ê[�_A³•Â� jXŸKã ŸÓ#�L?¥¶å‚£Ý¾S+0’NÈãv ð—qn¼ºRÌéTÁvôr@Ë6´çé3ƒFúö`NYÛ³î4ìÆòxYîÎ�pä7?xê“ ¨ !Ïç¥E"Ú’ ÔÛñÁ…ŽD*ï{€%œEWZÙã�&Þiƒ‘õ‰‘œúï·ô{2_LØÞwÓ$|ÏÅ{®Ë7RW^⟠à°�² ³­I±÷äÇL£âäµ�]¸ãuŒ7 ¤�5Ëû2½*‹iÞÝH¬t~öB÷Á�Ý�ß·óôy•@dî BCêŽzݾQ¨/yí\UÈÝbã[7>c§[Qm)2PP×ù8ë´¦åWÑË´¨™3AvÛ2ƒLáX;°pù®Ø+Œôl†NXž ¬¢|ð;˜Ô£Rè«’ÜÇ3¿v<¼ôŠ5~ÞFˆ, ¾OGë]@3ÉÊk¹ˆý;�NVFÓÞ1[Üâu@4ó‡¹Ïb‹Š�í{ð“ßæð<ðî÷9”/݃n`�û®Úš0B žn<ƒߢÚ)¾ +bµchg“õ³A»…_í7«õª]Îud«ó{õ:ÚSîiúÞcÛñ·Ç ¸Í–Í%÷ÙZùMa„÷n׌ß°CÜ^ç'ª˜Yx¡�ÏÈ�ì(Ö˜A�uý[¥oÊÛ©Q³¼ªÁÐp)³à(m^¤™”€ºO/@Á3øø¾°æÄÔ/¦¦´¾Âr¡šêŸ%4óV*¦{Úª'^5Ž\jæ­Ú³nŒ–çv¡ ruü(Vª±“_YsÚžEÊ>Z ô2õ¿�:u¡’·_ä”áúOWÇH¯ê^F£¯Çö¤ÅÂ�ßýQ6’¡Ã{ï=>Ïcu�"ÙCQMNäT%–„Ñ5Ÿ¥aLs¡F¨,l׺úâÃQkÝ4„—çöÝÙäX<ÍD»?5KšO“ÎÓ›‡7Á÷ÁWËÍÜ8ö?OÅ »uuÿF +Ç„ óð„A’#õëñ­�t!àTƒr†x«O‚¡ÖÈ]êÏ×îõSˆÝO` �(äsìS´ü¢f‘õ%«æg¯ƒÓ±*ÔS³nûIÕÊ 4­Ÿc�?;þ ¯5ðš–¨¡ÿ9øá¥eëÛ–ª¸]°W„™zGÁXøƒ¼5¶noØYÄÚu�˜ÉÚ§Ò¹ìÿÞˆ (ó2ÙĘë©vÍB'ôbKWÿ:Ë‹¾è(˜µÐ~çµ>7ä²co•¾“ÿ‹§;h"›k�çQϼ;¼r±Ëï �1/èÔiÑ§ÏÆ|MŸTã­¼ýWR_Ä™ç ON �ÄíÒÈÕõ#êuÙL´ÊÐÅ{ï2ÞuæïhO÷”O.gvyp·6Ÿ¼œ!^b�ŸžÅ!—þÂÑñÒÎJèÜÎÇBÕ1%u>G=HVãa÷‡—ä„ˆë† Áç‡jí¾ ÿàv¦· ¬ÉHe‰ i¿>bl\!zBËÒ‚ÌÚŒ7tZ&Ô±ý•Y­e%Ìz!>ë9ÔÙ&ŸÚ…ÚD øí¦ è�îpØð]ŒÅ BÍå*XzV ³2¦½‚ÊóòËñ §¨JWÆýzÛÔC¹!0ÞãöÍžÛ1¿pGj7`„p�5W½èéÜàK«s'ZI¿\©�\¿(~TɷߺÁåã=¦ßÎm¬l ’ør É {6æÉo2[/”‡ �±¸T-w·‹� cæÏÎÑjÅ Ý«ö™GΪ¸2ÑV6Wh«÷H=*Þ'»]«KO�œ¬÷R];®ŠÝ'||3~²®Vt�}}Pôbžvé?ÖË,}Þ.®Ì’Ää‰V°Z×wÔ߉¯Pª§Æ×Üná{Ižér$¾Ü]‹›ÍðUß^è�_#}ƒÝý³�d]ãã¶UÌPºa£¦!ßÁoÀ+Ó�þNfÄ„¨ÝËîo®¬´–1©¤W:€(ihÞ÷¾`~óÂÃÙvì™Æ¢²+ÌÚ–�ÊÂ7`]îXmT3#°óÍCá¡›l� aBŽÌÝWu½8÷Ý U5îfæ[R;³*nYd�¯'˜!C¬2‘áÿ§$½(eÜf_€ÕFw[ÄÅKþž[7¡¼zTÍ]Ó‘\‚<~6±{ƒÁËÈw'é®.9ƒ:úϘ€è}òí»T).È Ñù†³ýÄWV£U ¦ÔÌ÷32ŸI»(i%V‘y1åWø·›K#v!«w�QŸƒ° ¡RcoaÚŒèZ”±!©X¯Ä ˜ !lDŽ˜ &¢ÅÞÊ3›N°š}Úe°= UfhÖ˜Z&öÁ :X¾>¹¯Õ['Þ±]C÷\ø€õpeœÝùâK1]_„%ËW@x[+˜_´�.“SÞ…º.!�:Ø&Šž“å¿G1ÿâNWéT-; µ¦=Ì®‘ªOÝqwï´ Ç-'"(b€¾°æÑíÁíy€†ð&z\K=}éô¦·WB¹Üþ oKÔM†#r3Üû‘ÈšN=òlê¤ôß‘Þ8Õ÷¯ä9Ƕַ”[Xn¼(Z[7qØÙÕ£Èòdµ,�(—µá,¤�ÞaSËÍ3æ � «~öøÊsó`yx›¥#+ ‡§> 3g÷>Áßs¤ú×ÎñhŠüE¯‚MÅT¦›ûì΋‡÷Ü?£wÆŸeØç9ÀÜݦ¬m猅ÂȨ[¸H9<'«Úqixº@ÿ¡Ë©š,¼á)—Îu½•ýÏ¿Qu•HßädùéÕwÜÚÍڈĈ]ìuRz”¤'©]1 E*ŽUe?zVªõî±tCá§í ™cP~’΢Ûgì3¤÷ ÖêÔ¹<ˆ‡–$�mÌ»ÜP°æFÍ^”àݰ�ßýƒ»°C4°Ïz&ARª�¨%Ã7z(ÇŸ¸â´bfŠŒÉ{–òð4ki8ßÞ1EŒ†YŸU_I{™0Ìè<#&>øüT©Ï'€åpX!ÒFRSÏY÷V#ÈG<=8€�E=Yưµ�Âp¬<ÎMyàåôa% Õ»47©å ä›þ÷cÕl[>U_ÀÈiçêÊïI"Mwz\dÔÈØ �h Ëÿ|1ámÌÚ½”‘§/WØ[é�:lPŽ<¡,×þ^eÒ'0§x‚%' é§'‘¸©2¾Å�Ó¿5“u@QcZ¡¶(^G"~ä”llM¬(T)}t>ª§@V³ÌB=±<ÛÒù½d dÓ%(ËÐisýxw¸nú–ꀎ˅îÓ‚è›—r�h bŸtrC0eè*òiSZë<ëÇi$XÃæßˆÅ.çºQ ëáýcTbûNP¸Gfi³W³ÝÜØÉL(�æ•O±Ò‹ÿ¼wû¡Í�´Ï0¥9Ž¿fWþì7I“!qÞ¶—¶ý£,yôÜVÅŽ ãb™ÑZ—ó`úP…�"/›:Ç9¤ÙrÔ8¼WÂB�u••÷¥cñŽ}Z'É劙¤8k ^«: ±Užx¶ó¸j öa¸e�ðÙÈÀ´´:^{VÄæëÉ©T’§u&a€ž¾þ$8>{0Bqô5s¦ØN/�ôhm�ýP÷Whù<Ü56±¡ŽÔ‰6×V +1 2ÈÊↂʀ�û=.ÙøF!ÂI{Õ#œ ˜[öá%˜`o›–öc|ÂuK’¹€JãååÆQŽ19ïÜç˜6bõæ†~ÎަöD*‘ñºÈZò¥•c³Ød¬uÅdÎ= bÃÈdª'ÖèsÂ!îI“†,a4££ Ï–¨f¾'¾Aq6G)û8¾`Ú©õAßS}^:Ó$~g­AëÙ•+˜«­rö¤ +‘.háú˜2æ}qüÜ\0³Ãedðþ£Íºå�ój·üfUߨràÉUCV,²U›)×É6Pë78îT[×!|œœUµ‚R7LHo w8£ëIðq?:%n”eÆr›i)Û¹�_¯D.† �ûJ0m¹C¼`¡?§YÀ‹ñ“žAñœXGQh4c~‘/fžÛàÞd‘öç¹óF˜]ç�Öüò[*àjñËfmŠçÊ“ûÇæ®š¹ËH¢©¸w R#‡=Ç&H-V�ÊÁ°Ú‰ž¬i‰š´c�Öô¥ÄÄE”Ž^†m‚¶©býO¸õÇ{à¯ÉÏ-|T…Á¿ðYþÛÜ;ënåíµ§ �mìcJD©0«®Ð®¼‡Œ#›gµ¿ÈŸF;žáÓ’}àÜæ7ºëâ¡Ë~j•¶úày¿çó½*ö^Ðõ ÉîäŸ~†ïV™¿Þ­°wvæ„/1’ÎR@&È_|Ô`|µc=?-‚{[˜v¾%Ђ€Òܵ}™TÀºc”Ó‰(EÊ�cB-ÄX)oõ w…Pë»›ÙµÄo„÷Pª}r" *»" ÇÉ—òÆ3`r}ñ7IW �ƒ_ #bIC´‚<üA¬£ £M„xÜ$ÝöàÈ—C a|o{õÍH¿¹Üž0÷×#a£Ä§”?Í’$ȳ`[öz諪ŽBæýiå›ë¢Š ZR!³Hë¼ñUí55ê‡!سXÌ~ó@ƒø`eCÖq$Ds‹^ÎZLÞw”¨+L8Ïøúó�o" r ¥E¤ÀÒº®—|·�“ßeÇ-Å=ÆÎýäþrXYb¤õŸ@ÌuM¿Cû£C[k*æ¯qýhä‡ÇÚÐ÷œÀ‡Å¹CpE³‰BP8Ô7_ˆÆ\&„ãÛIF-X޵É1Fš–Ö§#‰Gô�_Ni½‡\”’zv-V~pP¥©÷ŸÈT�‰#*ŒXU²Î§/Î"ŸI‘_Ë�äÛZÄ@‘Õ®{Æý?ìÛâ¥E{|% ƒàŠV\Qk¢¨>—Ê’¨*NÚm¯aÚ8×&!:aù/uê(ßÑC³Èùçl! “G&.pA³?Òû>ú¦³kÁY¥ò2ÙlF½p‡`ëDòéitçäÃÜ)>Ë;×xÜÀ+–\l.ž�tlÉ »cØVð¦|¼YJ"«u¨'›W4Š2òç‹<ƈÄ;ŸäòϵˆQ1ȼ©vd®9ÅÒ÷Ú1¦‡Ùwe\æŸì¸EÂNhþzð*‰j:u÷0>–üˆ½©T`w 1¤ÐÇ,ð*ø\YæR…šZ‘¾ /ή;<Ø22¸¤^âD¤.68«HÕ—ï˼Í.Ê#QlŽŸñcãæ‹ qöa›Ûñ¼‡šdï#ï¢9¥ž—JaR° YÚGnTå|[û¶˜q‰—éV8À$èg‹þJRø„Úàèðš 3AÔ1ê%ô‹#ú¾W0!ƒïo]éÝT€N‘•î¶ý X�@+²î^DbML;¡hyÎþ�¸Æî'û\ÈzzDGú ¿e˶XWX JÖýÑJsúàœþ¬×øžZ؉g%*ð ‘g�zÐHáIHié  Ü$eOÂ|ñ&�}ÖTŸ¡iìLJÆ$kr¹8yPAZÃæºtjäÎwîuÆUd&¼Ô½¨°12ÆŽœ €K~1‰´èä>ŽÅ¹ÉYËÌ©?Ý`Œó Ž8» +ÔªBkßãUøÀ“ýŒ8ÝÍpäîálãt¼\(¢¥Rô@=Ðk$ƒ‰Û™ÄñÐx4ªú3êÆ‚_’ŽÉ(öõÓ�åNåÈ>am·>UóÅðz�¯P‹Õ%üÙ¯lç&´³Öö7© tÙ,  Âì‹ A].ÇS'\sà>@Ê~0ÜôCŒ�¯Èà!m¦X= Ìõû� ®ƒM,/öû‚ £n,ß-œ³h-Vr¥ð'ÌäÔG‡íZXÙ |+á>Áaúlú4ÛÓÈ^Ó©;!–¦õ´˜IÖ± 6,vªhä?�søæaüˆ â* ΰÝ~z¸�(‘‹£Ñp³?v…Â�§`„­–�ß?BÃMmÊÃ@Tl¥Le æ �‰ëw>aÓ²þ»O—sß³Rj‹�f÷æ#*w¼d²\v†¶©BH-7IÏ=( Øš«?úØ…Wö}äs íç”Ø“Ã'Ce‚®�–¢ÕduàY1=žÉ# EþKJÖQ“»uü7G_–×4c¾ÎÜûëèË ñË/›ê€‡Æ*sT.DpL`cvÜp³/®¶W&ÄD× Ö�‚ô:Ÿ[lOñpäñpB¨(áÂÒqà\%ÝœL{X1;ÿlz¯Á}8Ób]S�Bg#ÔÊ)'•F¢³›gp|çSqA¤£œôã7ƆÅx7WäÄèóç�°éÿ¢#$á,fì´ï0§ÚÙØörá�t)›€Ä–«GóÝdÿÒ¼ADfìPªO\ÄþyàF+ó98_*4�RjÙä¹*¢8Òƒ:—Â|�RÉë׳V­ ²yë(º,˜ïÉ ØT!âÆ‚–Úïxµ[xŸèÚXY£¸äÓ­¬ÙÏüK¿õö{|ÓØ{ºÐ—é}ä÷ÌéM­›ÞÕQ£T&T¾ LOOŠ>åLJ_m Dnc¤>¼ú‘ßeÍuOÍ*Ðå}a]äÌ&ø¹ùýˆRj„bÉL}¼«@Æì8Aççìá„Ó28äoH2s‰Z_Ž ©�m?@ç+À1ëäs£TGT½˜9•]nsƒM îJÕ {VX`³£'!È6lÆŸ5ÝÝ �¹o>¦jIÞlÚíE7íx:â´äá"0m�,LAB»‰!ršG篆(ìÅ%{Š2—Y›±ülÙñ–÷#¾§ë΃Ó]»gu KìεÜ*ô¾ _d¾o)MRôÅf1“Óz¥ŒüSd-6ãã¤×ÀL(Yõñ‘èõ–Òò ùFP†æ6Tùv‚a޶zXЩ“C ~N§Xð“«ÀÇA\…�LI¹² Â|Þ$Ƶ ¿Hwü%43ì_=Ý(c›¬[O¸å‹œ¨iud¿wЯ�ÑX™ÃÅýseÛûþ狽®p�îé˜ ànî€Óóv+5-ý.To%¦GO™˜›.qÀkòÕænp\KÄ‘6ظCG\S*P{}Mn4M»F�܈nèÁÃÜpð­…€÷^€ß6Ö¤ûÑnd&# ¬{(gÜGýû‘o§Î®0’5”mWœB¦‚âa·þ3Á¨"'(—/Ì|Ø¬Óø+s¤å/þ@[glLŒ_&š™IÜ%ÁÅô Ý)9x��;„ƒŒæ€j6¡ÊÏÛ8‘bÀñzðÏò‰�·³y# ojL³Fšþ£@xÙÔ•™¦‘ˆ ã°iz) 7k[u})C]Ý=§?<|•nû¨Û®vöܰhŽaRÑ3£â–rå1R¤ûbFOÔåð¨H’ýl›¹(ao1 èCÉtê•fðÂCîA‹"ƒ¾_êã*]ù_v·œx»&Šä\¦|ĵb�^-d=Êå1Âén®º"�rnßh u<Âw¬'¬T̉ô[¯�&#èϬ—Ùu*TA »ð¹ÞÉ‘bP)×9UFÛz‹Üs6\®f ¼E\´2…íGˆ"ÕZôžþ“6�Ï™øÌ]ñâ?Œ ,”¢e€u“�e©‡Þ[*§’à6¢�õÅì½`pðFÝܤJ€–G¯Ï1Wì…˳DZ»ArØØbi“[)<¥+\ÍŒ÷OÈñûmèT_ÕÊ3ST¤iR­rx¤EÊ@+)IgÄ€—9¹×Öµ)Ðñ¿G´»˜ÍßT|˜dߊŽ*'ɪ BéÝ!ç¬,ïð�Ñ㩬žø‡e?£ð‚gú׌ÒHe3ÝPÕ²¥ŒÑ{™áL ÃIûŒ—Ê®iìñK9§¯À×Pö2M³íýpÎé‘PxMù`@r–vø‹j99aÄ7#®ç‘e¬xÑ­×)Ûð¯`?*—÷x€q÷íÛ”ŸËiÒP|TF¯ûŠkmÏ.9¥¥Ä²g$Kc D¦Êu¾/ LÞj#Cã ÃVãÿ†&'E„ã€áæb{Ëžãr«?/z66ÃÓè¾>s±éZÜ‚°†Òf+Q&ÌtÞ«,ž)ƒ6°�¥3¥Ð3¿‹´‹yÞó-Ê¢"6`ÀÆ¥mfCé>]  ç§·ˆIþB�Å/êE} ;+Q¿¸ M@“F u%Gdv|oÊ5þ€–}À�á`è;žjÓê(o¥ÊŒR“âP>ˆ#°6IäjC‚Úk" /Âý—Ög¸D‰ö–^5çå’;`Œpt°<]½~�§18Å õ ©L½¤É|~ufÙïÝ zoÜð&šo§JS3ø�O žsV©@a?¬¶•± ¦eWý0‹î�mÀwm cØ^Ð@·ÓßÃSu;~òt(DÑ'ÓœËÃÿõ¯ðH*ý]´æ²«“þá(ÜXË@yÜ6Xªð¤—ÄZvJ×ëà–Z™Zå¼¢]�^²ðn_ÃùkWYiö›#�mŽPèâ¡f×Ö݆zï`½à¢Šä¥¥éZ.IŸæ‡-6žDê[îžoúO!Ëå¿ê±³`&óÙhLT¼æî*Ê"U€¼*º„¡ŽFWLèIü;5„ì‚õ&pF¸x=Σ¦÷ªØ|\ЈM}«Ìñ´R*°`²Úﱨ¦él_“Ù}д™ÿC:e(ÈÒÆ®+y±šBmWY<ƒt]q-T°²g+rÅ”¡—ÄL“1á–¼–Y©ô¬Â•pny9�%°�mR5Ñ„½ é74<6ý)Dû‡Ìf²{Lm­Ín•¥j ²u]¼4Ãçv¢Ê¬ÁØ©­*¯ÓôÆÇPØãt<”,A†ËµJ HM ØýI$Ú]ä›�í±ÒsöÔ+…uálZñ'�žët�süöîÏð^)õ^"ÃÓ.bÞœGsƒqHªpð?©vÿ´Ë­ZR™ÅsЧ)¯UíâãÆ#h}W]{WFƒ�¾gj{´Âø¦&ksIÓ¼À�¶¼\.®†ã¨rU'7¢â«µV&»ßÂR ‡Ý¹$ìjT4ŽóﻺߤL<9ë/¥Ô¥¤vxTSY¥jzæ 8~ÏðÒ9� öR¤öÑzB0&\ÜÓiŽæ…©‘¦æJ³Ÿ‡îÊû½te›qñ¼);™œpÜ¿63€=Ã/j°²Ò‡�ÜV´™º§º_ý¾÷) r ™ÓX™=>F@B”u®ÄE0UCÀþ£¶޶«¦.Iš�8Ðë5P÷`ÕËÀ?d�äˆã5¼6n±v÷Þ‹ Ä).½Kâ†a§ZœÿFÙkúzÖ_®w/7¬@¹1÷±2̃kbfÙ»(I©?x2µ™ê;Sóç°è²—öØmY˜Au„‹&}IéUê`µ[êéÒ'ºÏ…=0þK ^ó–ê„z–³på�ÈjF¤D""’ÙÙ8;š —ª³ãZ{ØÞhX9ÕO¼ù”|hQ†ÀVré×\æ ¸â5Ï¡û�Kù`v‰DÙ�7[Ä�=¶*’ŽýEhž Õ4½«¹oÿ§1ßÏ~Æ»þÞfìSî‘,ü¤z íX¤9×­�áä�U5CW‹š¦?v–öδ©Áª�EÄî‹(?⥎ãqÎéÔµ3.®&�#ÔuÊT3Øî…äy£¨Ÿ›Êaá‹-²%â¡:ðWÕÝ0\èsJ `ù¸LÆå½“ƒ­³d=¡§{üÅM'~ �ИøxÿPqØ‹I• DŸV°Ìß`0ï�¦ÝUe«pk67èúŒ“—åg�ÓRÁ?éê·GHhë¦ã™Ô÷ìÌ;¿uaä_¿­]èÀ΢Ü×¹¥‡ÑSNb›üÈãa�ÈÜ{6ŽQ/­îï»8}óf˜/4ÃF«!®lÆçðÙH·RfàL)0‹�Ç 4ôFx­Èífk´=ÆY½gŒòàgÙóš-p“‡mÏCžÒ¢�5íøROÝ[¥ZÐ!ìäì ™ùÔ[›${Qä�Šl{ïÄøp &¿ƒöZ=˜A”qŽÐ¯}~­óÕFÌ7%žËV*šà¡HÐp}º�VŽðØ!RÕ?ÌlŠ`u8Ê 0JÎ’9[r4UbVl—)RêLKiÙôq¿�måbů?”_[µâÝ]K("T·g‹¥ >l·EQ­®e¯õ•Y²N$a¼D™ÙiÝÛ¼–ôÙ†³œšÎÉuÆU•}WJYûݺõ‘ Ä ­ƒ–YÖmÛidûžîd´7#Æà·|cMÑFëYmÈ&›)~ìÀ `Ö©PÿDߣ ûMBÀv¥¹+â[Eîâßsjb¦t,±Ú²£ò'vЙʘÓ…Šðx¹Ó§•íòb”<üƒö—ã]UWü…Öø[¯÷¾WÌ¿Õõ�g'*c‰™J6’É¡2•n`c2póf¸‚é}'vÖñt[Õ>†þxÒ›m¿‚  «‰ªÂYˆžÈgxßž�3Fü|I»–<115 ®!‚@+˜(K`Ř'ùšò-Áš¸»öW'›�?ЭPüüʪŽ¡žåÚi_x¡_HäÇÂ)±¥Î�«dbbâ]Klðñ“e`û,­…œÚ29_nc…ñÎê%q9á� !�Åù:ýKRžyáaJÛi~ÓeŠa¥5Ó_^–@y\Ã÷>ž£%ëo‘ˆääN®å,!œÞÐÔ?²¯®ù©^êôJJï ƒªÝÂÔ¥8�ü‘>ËE ×"ÏHÛ²®#5Qkoæ¤ññÄ–Øö+=T4¡L}AßTÉm4RœlÌÞg¤]´«¡\@°â¿< ãs I�ÍK=£&—倕e™~‘ÞÕÓÞ(öDum4Ãk'ÛÛs¤@ÜbÑ£†$AÌÿ·x:wžš Ä'Z4CÀÂeDÝJ£8Uæp™½…~íöû˜ò¡>l˜2FJd_³4\ζ‡_8´êOC¬ûc³éE¢‡]œw˜JÇò@uY |H‡?&Äg_XÕ£vcCû0Mÿ4,95 Ô ,:)cpÄõ¢2ˆ=€¨´†`5 ¶‹ÿ:_:óÊäT<¯£Ã÷»—S6ÈÓMƒ=±¦\ª¹þÙɉ:/ÞÊG‘õ—RÜÅ“;þ2J€â"|nƒ½$.‘QiÖ,|f—s=ŒB•ë‡Ö,(ãjxFl0&0ã�ªsêÁT£*£¾-Åh*5E ‡”Ãßâ™×PÏgův×Y®F‹–ÙŒ¬Þ¦sg¶y¬•ŸD “ÁdžD5]A+ིA‘,sI°zd&Eí¬'<Í Ðð)µÝí¿±ÇYvÙXèH ¢gË<°ñ1ìSÅ “ÙçæÕluüÌP;‡=ÙRo•âÃwNt¡Ö1Z‰õ£Kt»Îe×û%ÙsG†5ì“9Ko¢Ü²™4W…1àái_Èsz†¶Yoéƒzá³ §–Y GʱÙ7�� ³`Úð¨”ÿŸPÂD¹|F09›©èÉ6_ ³£e€&Ho¡æ$À}jjöí¨ß³Krº…Ô¾‚eî ½ŒÛ7G ¥:/–++Ç #ц×ÁÕ§eìA³×*ßÛ@crð–Æï ¦E˜&èÑGÙ¾ÅðQŽ,¡í¬´Èö’µ³x DSïðÛ^dœ³'n»êù34KY¶¦hóñÈT¼ZúJäkj$!l�D\þè9ÙccJ;ÞÐýb>�~l3ÌT�bwÅä—ˆ�Zq®cÿ�˜`'• û·¶v}Õ»-‰Róþ€),g•HÌsÅ7ø "�á´!ͯ³˜âµ4¨å$ æ^ š1xóã3¤;µQÕ8ôâç€vPÑ“#ⵘ*uF«'¬ebrv¼Æah›ãÔ½ öÅó�àqi6´¢È_�4ã/çd&�6ßVb’¹•(Ÿ±_È Ó�È®¼cY‡)Pð‡i‹g]^¢÷h`8ƒ�ß”Ê�³l²¢&KÏê'Ì ž¢#[<Æ Û©Ð‚C(zB³ŠUÈ¡+«uzm%Ã�Þ�‡Ä'‹jËû#ò%Éhm?»«¬¤Í�µ.ü&2ŠwÓ©&-6Ì*+Íj¦³�’9”e±5r±l³ ih€ê[;E „:‡jéСÐ�t«mjîn¶eˆáI�®n¯ƒð&& Ö*Í$Ë“Í-,¡4¢AEð±�±ô·ŸGÌ@`U\}®¢ÓMB}wnÆ ˆ½‚f¤´‘$¼ÚE¶ Œœèr•‚û¼c�—ÓØÓxÀ¾­P@„Ì;¯²(ØÌ½Æ<t\ÝÔ½åZÎpžýÏ\í€<Úý$'¯Ì%¦Mù&|OßD(6Ò`gUogy×½m`v®ðwƒ¦ÏUðW Š­�&ߤù¯Ûu¯ºóXpú&é|re¬fUõ:Ü~­¦xrÌ]ýÀ�⣆‘†8îá.$;³†Õpo3¶¯ªˆÈ} Jïmî$ú–ï;V Â�z[ ç9†3å’”¦G¨½íTðñ{ywX_62Ô;�e´#l1&/ÖØÄk³í${ðÇ¡e¦Ij0™»¼@ÞÇÆl{ºÒ~ÌÊTN™H]Y¦ÇU¾,G†é >Ü]…GL£Ýçåb]œ�¾8@_㙀cå¹VQã©B.0N¬÷nRy•g(Ø—É„WO€äš}‚7bW$Ÿô¼ç!”çG³Ê#“íßí=ëÀkÝ|pñÕ‰=êÃEÀñ'¯ŠÝ‡ÙæÖúHæ¼�-î›­Æ“1�°_A¸�3kŸzQ þ�˜]·¼ÈúO¸$RÎBB„(1pƦ=Úh‰ M«Öáƒ(¢~BUoxÒyÜ_&zdô‡|ÿgDPxQ² PÏw|lƒ‰8jálœlˆ´ã­u¶KSÀåäØÀå,~Ø›ð7J© �-;¹i�ú~‚H*'eëŸÒ7þN»ðkMékurrL ÇøÈ�ÄTeÑj2—ë…Ì+É¢  æ«­ºKqZ�èV31¬ Ê"´äß'o8Ô�¡?lÇr4ä{~€¢¼âe›¯®SgΕû(ŒˆØ»Y ¡¢Õª3u¹ê�W_@ã�rÑ÷Ïð©p[sÞ[Olù 03ÃàCŠ2ò‡ ñBÉáV:iQ N¾È¨Š=ÈÚuC¯§q¦ÀCi%ÈPŽ]@p°lRý«ÊÙê} ®°æë«ëÒ -®26‹ÈŸçªmøuØ |ªpýúŘ|xj¾‘™7Gâ¶�þ Jz;m�ˆµü8ÐÈ!å-;ÁyPe‰-ç+íîù‰L+B”�ì…ƒa<•…˜¾Ý¨4€›Ì—´��ÊHWI Ô±¨¶•ê`êÀ#Ê€Ú$ªÙ¬œ€·)ØL-Â}ч±é-I»]op/ÙõhOOtÜ$Êü?ŠGÔa(– -2’%ÍD™ßÙ|�¯ ýxðøL/°®©¾ý8Ó•G]l~ÎZ;´7{²RR…tÍS¿è }ƒÃT¡»cÖ¢Þºú’·*ý‹}Í1Mâ\žyCR,ý/]ò†ý[ ½zÞóâh÷“j»ÐÙÔðľnô±A6|�€4�Ø�±f‡=¯sõ�ž¤�úÕ%‹®ið-plå5ã,´úÛ[ú˜u’n‰¬k)MîÄž_ŸèƒIgPÓDgå™~žOÊi�€³ÐXJ‹b#ñÌ2N½¦úFl[pÉù9y0ðœ ΃“A9æìúÖ©ÿ|þÙð•@rÈŸÏY¸’†”¶,‘·'‹ÄôÆC˜f,f`O‹E~dXäëûFöæOoü›$)ëß³tA0‡ÙP°Ë{nGy/L¡ÀÎ!Ò•x§8lx>Ù›}Nä2Æ^0mñÎÃý9J›‘߃Šk,Zîj Â\ñ"ˆÏƒ¢yŠTj4!„Æ:Ú‚¬(téô ÒGb/_t6›#‡xUÍ G%«j­Ûã†Éí®¼ªFî鼯œòY#i ñ Bù(¤gšs^Qáwñ„wÖ½œ*®ÔBÄ£ˆ1Æ '0º D}Žû&�µ€âÿQÒ>Ò�d Îè_¬‡É„ফ¿Y3GYäë%JJdêe-T¹uÕçŒy�wØe¾Ü¼àIÞsÅOP/¾ÂæÑR®Ï®T0wÛÓüÊtf² lÐÜH× MÝ 8‡¸Pï‚¡#èíQÐ�¦ú2É…ô_Àú§å×ë‘“æpÄiÓß™Ùåˆx7u¶ÜÄ$»½]Ê8T°«{7}NûbáÌŠ[Écè²#"D_m3e;5ѨF¶/µX®!<7Ùv쑈Œ}êÐü­€Vþýi/Ù'*{¢ðü ¤Õ_uyöšyhê–²}n÷*ÆÃªú‚šÀ¬‡¯(òZ ÒÿÁzáð å‘7 ç>®TÅ�8²ìäH×ÔÐ�²f‘Ñ­¶ÄN¤ŸŒ iû@ÍÊe‘°äíþ²¯ŠŽ¡ŠUéÚàÏlÂCû =jp�XØ4G)H#,ºÍ9lÙGÑ ¬PÂìn¥Ñ�úà'¯”¡/�áöäÎÀÊùAöàg[¨®aúk÷ØþÕ½J)}¸Ì¯F¾M °$ÅágY½RžÇÜ<é11Æ–Û$]©M™ÎöFÃ*6 Š÷�*ÈÛߎ¿ò:Bw^“1¸I—CtmA^ñ{}Y*ž@«�7PB0Z¤{G¥Râh 'öÎ.òØ‹Yµkƒ¶=VÀœs¤l¡¾$ÎD¦ÐÝP¯Co²�³åGãŸ&s”™Éñã�É�?VVÔ>ô„9»0$µ;`3g_$›7Iº´lPÁ ì�B[â|dž „;!‚pµ-Þ ñîk�C¬CVvåþÙ±lº×ÏìÊl ¶AžÃV«Ç†&Îøé�›Ÿ%7*\,¾Å=iËzF?Ÿt¯=Gðœj{‚æBkÃŸÍ ƒg¶‰È`î�y Šé"dL uêš³»/<8‡•Üûé¥;'c #FKÀz Eum6,S›î8DÞ{÷j1cK‡à0žàXèç^ð/µÙªµ•4’»½:�ÿ×›ª@ãëÓ®B„EívjÞ1 ÔEV»˜Y‚³†'{Á�µÈKí oííä‹ÛîUb´én0íaÄáS]Öã¡ÜÑpÏt-E&">B•ïö¶pA^b8¯ŒökÚêqIX”ÌóI¹ûå9×d̾„ªYk^åI0†QõJãq–Ü÷cÒÀ±b«¹ã|¼5ÑcÖ)ÿZ¸Û‰r£ÿüc?y…e=LñšwÂñ3¥5Cf£fðY.A°îœ£�Ew2á¨l¡5ƒþ(ãwê²vÎîÓ4Y·¨·¥M¦Î“�Þ‰S»fn›.ȇmùÕ@0ƒm½îñØKú·¯j< ¹ è‘ZÜðŽyï!ü9X"TèL2âñC^¸´˜^lÊÿ*j9ó#ì_æ”0!SFl©Å¿ý¬kx �ºd/dÈŠ¸õ�]-‚Çc¥ ‰Ú\ñ4Á8G'‰f†]JŒ¦Î6N&5’“¶mËëŒÎÐyGÆè›ný~Ø÷À3D�eHÛ¶P äj¹ÁDð*'hö­Úsy É&[üÝ;—>�.®óÆCºYªúaŒÎ3k”^Mä4L?Õéò ýè�Ütæ“\žÅþnœ±ò9¦O–›ÒÕH#Çû¼=ØêûÐ5Øšö¿´“7®’½ìù›EBT­8¶p�wkS" h„°vÅâÑùW{j!«üñ�âÀP«b‘f»^OÍân�:L’#m·ƒ€½€°&ÜÞÎjŠiÜß]¯ÊSƽo£äÅ›—Ah­ØggÂÙ‚5XOÔa�¤‘0ØÁ•Fv"0*[þPóRXmþä›bŠªè]8úúïx”(ª= ;ßIßÂÞÒuÊÆ4A%&i•€ÿû(�,XŠôd¶ŸLÈ�A¯ì¢ñÔ,É-î÷+ù„iþWOÀDÇ djì¦lciÌüŸFÈ‹Ÿ^ÍŸˆ>ÒÉ÷e8iUå¹ápÓPþ=‹Í:¥§Æ8‡R¿îcKn„Ý/•/ƒá KÊ•¹éò1Gh}{‹£RhF¨ç'½ºÿO|–ÿ4°�`²hšd#×(®VãÚì3¹c] œVê„ÛƒW’�$;ääù"g»’\ëd’Î+‘ ¢<7ñItƒŸ¶ÿ_çñ�Î�Wó4��”{Ääþw|YCK»ÿ_=ÏÿÒþwëCµ?r´3P:¯›G–%4þgo«…`dÃôÚYšî_ U§ºÿ§ÞXÿÓ¤aõ%¶°ƒ3�G-?Ëì(_y¨û­N’þåx¨…þøÓrKÉ`Î�6´Û‡ƒ6!²=¦´ÇI°åxžbþO¾¦%¥ŽÂº* A/˜a[ºðÿ‰ÏöŸwfUôF1”gW´8ñÇKÙãI3ëy›µþKÂv=„LN_ p¬ªAÿ« �JM@áŒ@c°?üæÿá‡ü/>Ó‘-¨ÙRU&.ø‹ØÿŽ/fic*bêlü?ýdÖMiòtlhZ.+æ£íÈnö$µÆû"^M%Áœüÿs\L�]èL ] ÿ{ÿOfgнÛ.>Ç÷b@ÅjÍþO°ÿ§áPäû�ð” öÄQ iQxZ¨û׿ÍíÖÇ0‘À¬Ž<*Ùû:ˆ9¤œi¬U™ë…¶ÖN2ýÿÎWæÿÍï�]7„u˜¢1�¤éðÖøßñ%Å”…þ?fJ}E�îoúí�ÆEK%ql"S˜(‘(uÓÌ^Å4.´Æ:'c�€Á<ÝDÝcê�X´Ãw�éœÄ¥Xd ,�Vë”é²6<«„4 #�/¿ýjH§ÿ™°åwƒ›8pìñÈ­ßÖ9ÀSͨ͘“Ñ$PÍ©kD§8P¤z� …Pw'¢äVd8c™=¹ÐÖ¥åŽC¼û‰LfEŒZP“„™)ç; p¸ÝÅJÊ Õº'g½'Û X@ôŽD[ÄÓ·mO$˜½#ÌŽ$ˆk<6œÍRâ q^£mcAÌuª:ýrç`s_»pÚ u[@K¡J¿j)¤Ë›z�‘Ô¥è�0ß¿UTuj ’Ú½%a¶(±ˆu#žÑÛæH¿äQ5ÑkíZHǶïØ7UÂw^Ê-4ln�P‰ô(ª‚˜*VHÍ/ãPé”ùB,£å7�$ãŠd¬Ä±?¯© ?;s&ÏËo8$@“áØŠö“rrÓË{�Y¾˜›[2HšUJ¯óè¥ÌKŽÐK‚ÎÚìùKì>ýþ.qo�÷è#½0Û§~ÊõÛzIkÔUý°VZ²œ-¸q)ßìè0ÐuÈëâ¾G¦|d‘’n”_…r(DË饮u{s#oé*£¼?J6¼VuÓ¶QÏ8c}–5õY®îoùë™Ý>ÝæˆfÂXB`Ž4œoäÌ�ÞvmÖ§Ñ7o»êßYS1à”¥®ýœÈ´G·Š�kö"ÂY‚ƾ*RN�ú/Ì-�¥ñÉK1±Tm:[RttËA'.ÜœkËÁ-PPfÀ• ÁAX�s6]¯¤í9Cî~k(°Jü“œrE†T-ãna‡Ayé�è½ZŒè;Ï¡&ß±~ÉBŒHÔý9L VDÞn%x²7]>2€ÏpŠÏÌÔN/Çä®?ýHÏx¿õÑ1l”¥�¶[#¾†Î^Ë­Î #§ø¶be îÇ_!vPçsNî%±Nõe[¥÷QlâåÓAÂÁ<®;�ʧf|$«Û„ÈD]6.Áì3-XZAôPÀu㋎½Ø§PµO’ô�¼S"KǦUr�á"+‘ÒîMNª'yJ«í:´[ÌÕ÷`®Îö ¬ êÇRw|œ—ß9ÍÔ‡áèQÇ�IK¨l[døˆ‹�+…k,;rãAÆTBd.zx÷¹Zof7kõ\˜”HéŽÓ dñoN|”‘£iiâ^¬nÜìДb+áZ ü‰ýç”ä¦pEF´\š"Žzº!%©&Ë iÿÆÑ?T¹Mâ›*ƒÇqr�Í(¨\;ð î�÷@Wá>Y:ðjÅw¦8ö5¾¯æóZý¬i yäЮȕú ‰3/ ñ+«Ê/(ªÕÆú¸€6Vª*¡?|nadö©7!LljU¶ãK®©íst@ˆkÔ.ñÀÚŽÚ í÷vKýsv0óšíæz±'ÿò0òˆhÄ!3ÏOáÜ·ÈÂç5�o®cB½¾êSØrШ8%ÍSÑ6ܵ–üŽúŸ¶ÙÄyz.U�é Tˆã¾»'�VrÐé!¯ÞtÆ�T‚}µFL|ïÆ÷¨_ª·uHiÀÿLÜ¡–ùc ö«õÁõï ûêþô™Ý×*ÏW¬ÉÈ¢µ}ªœšêáëf­¸\Œs™ôèdãçÿWÎlsÈì=aZ¾÷?ù7è¶uTï[ÍÑq%ùq7á&ÝëèûtGà*× ÷Új°7’�“,³·CIêÕx #léWíIH[þÆÕ6-fª8Íææ©Ÿ'Zóü†¬ƒ‘]äBØÁ@÷ÌO§ÉEƒ^9`—%š³ïc¼‡¹<²êknÆR¯ð›£{‘ˆ·µàþz#É…êÖ�8<áØÄU/SÝåã¶PÊtŒ°vðUi+¤4%!qàþ~õÙØïÁ»ñ"ÇÚ“áãý­Ykø÷߸A€�‚>"¡ÀæT‰\ÊÍüžåQz•F@ª½k¯T2?÷Mée¢YA¹Ó‘>ʋތÔÕòœg"ÛÏÙª›*nMdW…Ï´ßéCÎ>Õ„ÈØ ¼Ù"mÛ¹@ƒð¶-O*‹òÞ$lß+XÁ�Ö¼¨^°sw`ú !'P’³öŠðô-¾ÿѾhKB‚_²B;ä[qB›g¨v¾Ä»”‹K¬¡õÍý@›‰D4Cæ/J»kêþ ‡|CÉ?á*Р¥Ò†)‘¢îéÖÍ[‘(g‚e{,LÒ�‚ ˜^cŒP¤ÿNé�OV+y‡‚¨§lŠ‹VSh©£»Ôõjö8ÆñžŸìÓY’z!´˜&Ñ×Áz÷biš:–™ \ß÷3É/ϲ²B(½É|XEâlº_èß0ˆIŠz/wÏœB´¶#àµ9 á1´�Ày‹ö>4wè¹J‹I±ï”´ ÑNÑC…°†Í1?sƒIµ³ÁàyýŒ.;iù{ü»\1sv�˜µ¿›Ï³þ÷A—±€u�m㕬Àr:…›_ô¶NBœŸf"0@•»çTÂ¥þànŒ(Ë0¦“äGiKfjÎùš3©Å´ëžMïïûì$Ÿ®6»${d-É®¹nR‚ÓLÚ�-ÙUæ1ñŠÒŸCW¯(ÔK¨©ivä´K?@gif0&u…F7Ëz»ÝçVÿ ë•óZ¿˜»áÞ^Ó·%Ž;×Û!¿¯ ñð‰Ê]ôW�[Þeyé¥üÑë» B²S�ÉBÄêBf�‰›"oJãXÌ.$†HßKàQ”lU S QŒ$_ÄÁ$�\‚gZÚ±,ô¯âõ–m^U’‚)ë3"ï¸)%{xÑÈÅ´È(0C¬êÿ¥7‡ œÕß´ŒÑxÝg˜×�Ã'·bcä|Y ” È«BÀm*®²MåŒ~~½Û²F[*JØä€TÕ)L±âùQdã¸ÄWÊߟÚà6 7%(l{ˆ+²¬­¼/\Y¾A6 ù—,$~hi G9€Ÿ7!Z†vepAḛ́‹¿ç7Ĭ›—AÒ�IuÞúû>zH¤×|+©Þ+!Ï«3·ÓRχÛj*ó¦y˜àÉ,^˜ÑšZròÙ ”m¦€µõg¢4+‘J¢C´Õˆ’¨f}a›ä&D4 §¡èŸ·“ƯЬš÷ä£è'ð'PÊ…Äÿä}›º’“J¹œnÐ0OÎ8‰tu¸ÝçæÌ‚à LŒûß"©røZ²Ì"¶â@eÆÙ;pc4­t³¦Éê1Æm¾tÕŸïÏNÂ+öÁ§»ðõ‰Â’�£ÞÛ{Ù­vu{±lØGŸdêÑÓåLú@ú‘.·åP@Œð½ÁØažøVz9—„Eû í‚öWÈýjïìf«Ê‹¤ß„ŒV„¨ëÓC{Cû’ R1fNæ-° Œ�w’‰ë[ö‡“hY¥ÆoxgVk«jnfâ¢*¡àrváÛ’Êno+ISÂÿÜNEã¥rz‹V÷fx…™g«Ì¢ ZSÎ’éD¢DÊwƒ„Ç; ‘»f)ß�U‡ìLÓñ¶yóþ”Físý©�z?Ðs6�Øo‘åbŽöœ'=^çFG¥Rá‡úüº2�÷ÙAAóùFLÜÀ&³¾ tEÛ6‚ÍÇy·5Ð\»·”ÜjZ¤ÂyXÝyÆ2m)ó»ëàTý¡ú.§ÎÂv‚|Îôáê—€Â\À+7š·Œúáù‹«7S=cs×#� ¤z‚vâºðêêé­¬”• ö(Y ·3(Hô‰&^\(žz®¸è\Æ�¬�¼®8v:N í…±Ë�É€áâø/u}e{°¤¹Ëaß]Ó\·#Üèæ3WDÊ9¢ƒ½ ; "ì‚�dèõ bÓîÇž��}hÿè¯�¡&HÒ©5m)ŠKNa?KHãxZpœMôòjtãJ Ö{­»ÎèÓ/c¹æ ‹3]´dù÷µœá•,�p¨Y·nÐ÷<¥usÌ_vŸñ䆃•PUưèÀVœ±óD–­þº}ŒØ¡û°¬žO.ˆÕ%8J º—"Yák¢üPWÍABÈq³T¤U#aµ`SÄá6%~=î~º¹?¼&PÖjeÐNÙ¤u[äçùü³Ó5|Êd�+x‡çn”Øþ‘,’OîËù}ÐN‹iØh5u¶Ê®Ÿ¬eï̇�Ôz,錡é©-wDU»«8�.¿iÊV:{ŠîVÕ¥Á/-�Ò•_s¸‰eŸ”ÊÍäVÉœ]Ñ\öN›ª¹å¬†)]:î¿„9§‹¯¼oh$MÚ=ehóžìXwÛ§,’Ô Å3« 2R›Ùˆ¨,~�öîx•—(òÊ î—h+4=û¶4]7Ýu.Èuþë¨;ô lìÑGõ7iã³ é!*ò“´uó\¦vø[ “­¢~¯2ËH¾·—,ëVJ§àÀ†óMv‰"2ÛdêCÍã1 ØmÔX/5o¼­Ô/ä°"@aÑѵ1„¢x3C�Ð*‚ ew¿�#ªÎÉê‘&ˆ¾;5vÂgÜã�Í(ÊehÕ]˜µo¼™³ŠŒN*i‹¹À2Lšòû!HJ?¶=úÍjïìÔ‰“ ï·©9û%4*èYj%Þî«åwT¨¦6†BJ´œ< 0OT"Ø-ÏÝþø`CPÝ¡Ûü£(ÀÒø„¸­0p¢ã]¨Ÿ.V´óú|̸“R�:Û=×¾ì»+Ö’c‘Ѿ7Z‰~u¤#�¤;6¼;@á§=°MUÔñ�*Y¦"ݾ;±ûÛxÑ×IµsnU41kkôö+îFzNŠ)®4/äƒÁ‹„Ù=Âåt§o‡>Ùt�8 _ž¥T4Eô¿–jŸoµ÷«9™¹Û��+)¢§{ù×lËž;Ç.n Ävq{y¬šŒ®ºŠ(‡{Õ©­§'^Zš(bVЃAÉ1ä÷˲VRS‹„ÞÏÈ¡Å5ÓÕ*µêÑ›¥ð8P@ì|­Œ,}ƒƒÊRŸ³îÓé¯`LDùúUžÊÎß–šçœ2ãWCÕ_�¾GÊžœÐ3ßÏ¥/«p~þt£úß\wÃÖOø„cl4#Êk9ó"ì@Y�·â»:œ&�õ‚Qšx«iI¤D=V ¾j`ÔEòF^»bbNxE˜k'•Û=¿Žn'!á� Q7)ÛÐΠZ‘ÝEü7…Ÿš±;u7+{ÏäS×­MÕ}àt?+÷&™V i$>QÍ,Ì�˜±Ü'^.&þC2’@+jÇ`gT³Øù)BÅ+ï�¾Y� ÇTËÛ¬ïµì¦ ºÝX.7¢fÅ mÇ뢳ÆSå.¡èåP„!€ùÒ¸ê´öJûsÐw‡—O—�1 _IIÒŠ¦DåÓ }�æÔÏ€äÜAÆñÓ&B^]ê½Ê÷ôyÛøœ©’«zýY|‡,Å*Ÿ7Ü©» Ú&Hîç¹ZÉ-ÇJ2iC„†{À†ƒmª€v¾�_å†ôüš˜´bžÚFmm°fB�F†ýïJtÌpðÞ׎2´J52,²‚(‘6>åGWåí!ÁDÏ�å}i±ELG±!ñP²5²™i2‹à÷°| 0-=Ý%GÅ'û[8Ï;/®ËT"ç…9ç>ùœî×Ã@ñ~…Ñ¡d)uqe¨å’•Øé~ß —0.Ä«è’ -2$Ê›ƒk ¦ ÑêU‹¶“hkÐ:ŸÙ²Üºt�‹Œ�¶äåŒ?IâMS"ç [ZBFþ�Þ°]jÙý�Ê<£\æ�áZ8�¨5xG¡ºB,?jÐâ;ÕE�!;+mÑœrJ.­bkŽ¥Ÿœ€g @x)÷czH+ÏŸö^KøËòÔ:N!KVÏW¯ùA=ðÚµc1àŒ ;€ô�6m|Ûð¤Ü_#Ά�?Û‘š^Ä.¸jr¾?)òG¬t-ƒ!á´å0ÝÓÐd9Ú þew'í€w+Ùs F �Ô œ–HvÄDLœ×Þ“©ñ†¸áJ 棛��݆] ²·Wcġ٧ß� �齑YaÄi+c§‚$Á…Ù‚ÅæWiåŽpÛÃ�ÊIx¿fû#°“’©6$BêæªRú`Íü¹ GÒìs‚„œ|Äm, Ð�ÂÞ…•M~½¶ª.ðOt¸¹øö=C›îK5v1ª*±^al7…¢\JeNãé€ý� ôì?˜[)=•‚’ƒ‡Šâ€ñåÛe–wñžpp(…Y¤n2à>SDð%/Ù€@ắ(ý‹æ6<;…âÑfC�x é䋸6¬^ƒ£ªäüA×#>÷¤wÐ[G€�ÍêÏOa�½ôJ |6ŒäJ8º¯•BÉ™Ë.RFÏ¥t,$cåL¹›ø°í3!EmÞ“†]Gåè婉Þê÷¾ÔÔÜ܇Jì6pqÔ¦˜‰�‹m½—Ñé�þmõ÷hõ 9�„†cI^Æ`n¿D®nO†4ü*ª&\vÌ]ÁnÏxœØ)?›œ3'‚b?µ…ÅOžd´}=õÙ›�ÑqÌJûÒ]ÏŒ)gø‚3‘h]–ܯ›÷¾3ÎŒG«¾CnLFÔ»\~í0úª�=çÖè-ºAóìþ®Q·n ú€·ay =oåÇ;IÛž`.á_¡X5Ž­^dæõñµLŒEæïˆ³ÊUv‡Aë2%zòQ`C´Èéªz¬à‹· íÝÄŒX $AJÆ'‹ýBmW±LOÙÕ¤Ðô£9øMþ1=‡W ÈWJ„_Öánüå>åÙžü·ŒMEV8AAüÊ’JBu†!ä*ø¶1Øc.`ÆÛ˜Ã'T}¸QøÈ<û¼·¹Ë—žžtß¶ð—u&5›r¸íúH+s]Ž-Xv!HÕZ@ÃĨë!|ž©z>t¦ÓWÔßòðD5îéŒKµñX�È·à ÐA{ÿÀþ«Á'mÿÖÓ¿�|h¼ÑHd·•8QsCy åž�¾¥ ë¼'‡ àȸX‚!�MÁ¥õ!~9µš1½>‹b‚èè¹éñ/þM ‘—›_¶!ó4V›˜\g¸h~„Ú¬›~6‚‰0ÆÊ͇æ%4Ê�²!Èê. ¢ÿº¹êTlmÁ%håú¨§|ôJj’9„ËÞH~#O’¡ŠS ºðÎÆhk‰rV{¥ ŒÓ€;Ô|Q©fööpùÜE*ø¸ªO11dýÀ‹ZÝÁ¦P“;äµÎ�÷ «(ª=âß¼ nKˆ85ÆÌ©·ñÄÕ$Q‰Š%ŠŸeq•êÈcâ‡#sÃ7Í“ªæm1õ¥SçÑn½3|ØB êlÖ:lÓ¥¤ñõêpØ‚Î9ÏtÊ� êct¤²YÕIpŽˆ`"Ï-jíZÊœxÑqE}/?{`×`ß=8ØÒ†{(Ÿý¸Å›ÎT[ÖúaJÁ&/éß“ ¤ÉØ�Ä4“'y°uÛ§–Wåªu¦sðÄ“…(@ØïA»ŒkËb REËGªMÝ-ƧÎl�ç!ˆ_³ùüT5UsŽ2d›+Ùê¤�þèf⸄bªÄZ¨0ÿ5Á—Gaõü¦±ŸÃŸe⪠¨?˜!BM&˜Ñ€OíÅ68‡ã¹L…ˆZ‰ð颀ÖSµì§`J©¯­ÿÊq�¢”‚þ´’´b5f¨qn…9ôü®9gÉbJ ÉyøyÔ=—š¶ŽÔ!6Ÿb+2sžK~ƒ¶<÷R#È{€%á²#›¸)0S¥˜$JƒÊ;BŸÖž‹pªÚ£Ë˜ˆr?‚l&[äƒEÐà6¨¢ÞäÎÿñpgxeòË=™¯Õ1\-£HRèã¶–¼�¡/q/¤À\<ÒF�êAã‘3z„þ¯ìT¸é#·iÊ|[رM˜+q «îTŠæòe}Œ!‘>†ak{Ž1’ößÉ^š6<±æu%Îd%Å,ä/¢šÇK?¥¹‹ÌþE/5ŒŸoù‚ï~Nõ‘RñëYwªo&ôèm�¿5q†ÆV_»ÈÊ9²Á\L-tÀE \¼†j�H%šÍíc:°áP{’s‰ŽÞý<ex̤ܴ}5Á7D»jòf¤Ã§é²ö}…ÑHémÈ¢96FB\Ïú Õ™n!hêã©EÇ`‰Qn´'€iË™8Ñ”öó /�alN„f½âŒ.�NÅ’7ü<ûªíT6žFHè'°0=’l ”M %|öÅ>cŒò¹ï§;,Ðï2C[JÃ+ ú©/øòºl‘rØeÅ:è烌n-©�ÚÄÛ¿À f� MŸÐµ)md›œ�ÿ+5É1Ïéké?ˆXÖX6î0=϶Bf¤*7 XºjRf>rroâV}ñ7âøh;2‹©j?Ju!Á–�aüäÙ‚eŸÕæÑã2jú85ЮöÀ?ŸÞ~ˆdpi#�Ó¢pÀoèYr,ßxyÇÍæLgˆªœ" Eo¥ŸåzèVé’_›Ì¬#¼Ë jƒPW?#ôÔ�nL­z‡„Èz Ö÷€²`2ý"6ü„>/,€ˆŸØwŽGcû_î´ V{O†K¥žÝÅâ ;™˜/ô…Z¤Ú©tóI•Xõm9yoFñj2Š}÷VbÉÛº¶©í&í^õP‘Å�|IlWWH«,Ußvg^ ¶ûX^Ñü¨ÖEÊ8¢Sã¸|?“2Z¨ycÔžšt–Ü“Ÿ/¤¥âpjþæ#¬'WœÖÞ 4θ4•_v¶ƒ€2G©Ý$ĸþ]M)œ$Ö¬kÔàråïÙ·ý¥ð_‰åO« �ÁBUp(¥êZ'}Ëí(ãÚ6ÏTÞþ«Æ"C¦9‚ÄNš´•þ¤”/y‡è·èd“9ÿCçÜÇå)»åŒ?J8i�àwJrþÂθÃKyYãB¿Üꦾøxþè�³2Ó‚€ÏÐÒ«ß•x ì]‰%ÂB™mφ|ü&RXØ‘Zßt_©öK§A·GÇj;qEÊHÌÔ΀Íe :ª%°•Öì‹Q^.¥ #ÇÉáÀG#÷æ/rµÊô{…ŠiвÜDNª]eðƒmܨç]0<ÌKJu‰0¸DwÀëAbÔ°¼‡�¥ÎqÄwÍzÝ9ñ{Œxÿ†€â¶wBzˆS�nk|íúº—vü‚0-ØO¬% ™ÝÃñ#»ø»WW³JOUgüU S�:ÈÁ"x¡'q%.ñ¤„½×>í›�Í�âä,û¹NÌbPŸŽ‚C,榃øPB\)3O/õ7âHf~-÷ê”ÈŠ5rô¯,ò‚Gè–%ÌUñVuÞ²ê'P† É~šbbGêL‡fЈâ{·k•všï«™Ö›$$ V|ærí0êÒ�Á�Ø?Ø–‡§‚ Vgí„3œ”vëÏäpU8]|?b; Í5e†?>ù55~(ð ©Æ[¼—v?%uTÝ;è r¾Å-`à dµÚ¥ÖC›8ÅÑï<¦†Pg"Ú†~£q jWŠñ—U~l«½C�ÌÅÉ” .µÅ9ΰŽn, ¨iZÇcz*Ž ±¶ä§l%¾åYZíÌ…Ð+•­möXû‡>b+GCzä-Vž9¦>.’x´ĪÄÛò�¶Ã]Væ’6ä…4Wb3ß ýŠ}Ó\ýêz®µäd¸[£cÛ‡ýXgÕ~xðW3Ú%BBk]_OÕtH¯ 7`¥˜l¡§†ðÃ-¤¨ìO&Í}[VµÀp�oeyéyºÎÌSàO®>®§>Æ·…ºÍJ@ „Dhl ÜA C§™æíXBè%UƒÕÔ„}\«û¾uS Åii%1eºšçìö…L’–Š;”ü6¬›/aò ÿ JÞC%@Óøþ*.,‹9[@M8Œ£“’åPbåéÄZ-«Ag±wr€ö%Õýº!`7¶ä'»ùBë´›ï!ÊqižÕ;~ˆæENiu#àr¸O¾ÑõXþû;V‹™§m¥%ÊÁî¤ào©ÓB™ �A¨|3˯4á ¸�PB™Ååè8|{ÿª[,身7ÎÓøú”{Õf»I3p¶9°äþ=}|d–„7O^$·¥=:;t{¤ŒÐæBÜÕhÃõb#³¢6Å4j 'Õ¢�MïSÙT�ó�£ZŒ£}ª%¹núq”h3qõ¸aGíYHz Ʊ§wï°mQKšj}U‡Ç�ŒÒ>4ÞÎÙŠUö/Âì)Œµ)S”é»tíù¯¥´ú•-¥w*Y$²¼È)ËlFmmâJp¾æaküã¤ÞsÆ%ËMs#(«E_tÉÒh|‘~§€F™^bƒM{ $ØX3ö!˜@):gÿ>–?IvQøvç="X†§Çþ¹‡%-U4b赞[²œ5øñzþ@µçµ�7ñN@¬yQ·¸CÑïÍB¸mÇ7ýŠíTÓÚÎÉ3pšI¾ýšžx:æÃE´ ï–3ÍÿÑi^_û€{p$'ì«ÎPX¯XƒIS([–ã‰<Äßã†ä”g92÷]ª>³sË@ëªøÄçämü0ñŸ·­¼™¢ÝUe1'¤Ñyƒ–‹«^õÕ¬#�9€÷ïA~ûÖœ¯t.5ž\Z˜³Ÿ;”)Q•øÙ’´Mý6vÎ ÚUB+ÇÁÌ}|�PÃ8MOaøüÅÀ:[n±¥÷¯r–äc€g±PîÅ3þ;KMS�?ã¨Ø‹™ïw< >—‡´±ÝHÖ„p?b­��žö.:bº¬äôÛÄŸwY¥„UÊ[Èdd>WP†ÁÞ½8Ý©F²GÈ4Mê Ý³¿¬Ë•Ÿv¸n_e¶bCÓgÜ„QOÆ©\î„Q—m"y�¿#NA’ÿ#L" ‹åhƒ±, m¼Jç®ÆÅÜ[#(Û–a+ë³ö2yçÇL¾-÷®Â:¸ßü�ïP«Q—ð¨+:[QJ¶¡`Ñ�á± ây�Sõ¬J�ÚÔ5aGæsïþã½k‡Ó$UbTÈ; U–˜º�}(¸EV—ð=iàÎxÏVR^¢Qfw£Jt«õê÷>°iD%Ç™ý-¹ ûù î€þò«¢]Ø;Åâ!(Ý |ž�ËôŸ\«W�­ÄÆšt17*{ÚŸì Šó¦œHmnrù`üüêPH«-ÔªLžpènKýZƒ£³Y¾ß-•™ÌæœÑ™+æl!¯×µüuކå¤i4Š�}R¿:ôÒ'\ùŒLþÊ�·ß¼Ìm "þ樯·Ó¢˜5Úf=ƒ´jð'—ÁoîqÕîåXOìˉ^"îsýdV­®`²‘ªWPÓZ´O¾¶#ŒœâÄ[l"Uↅ‹PíT �ÝA|�ò†ë ˜"?�;õüÆo |xæå^ÍØÇXì#>Ú#¾êйð!$µ™Ì"@}"ª]è NÈmÇ¥-h"’;$ú±#ª“¤»ª9LÄ�ê¥ßTé¼”!û>ùƆýìæþ–!ß “q=Çx@B¡XE8gé@¢ö#8-õ±›:‹[ãâ”G¦åºð¤X 46Mv£e±@#!€_ÈÊ„|i�c>ä¤Ñ’ÏïÚ ZÉ n©xR”É;KlMö:Mx?ŸÓ2U�½¡žq¬¤´—Þ<�)ô|Ûm.·êE¾øb ËÎDZguù�InÈÎw™bê]›Nî�þ^;ò�è–‹w:<úqB„éf·q ÏB=î�þHRšP'ÁZ4Œ›™¡ÞmW¡d«ð~¬»í}„3®éCòÅŸV„qÀ¼MlÈÞ;û¸•/ -bw]ÃÙiC Ëm�‡üˆö%e<0RN–Í ÙÔÓœöX ®YhO{ädb5Æïž6…}Õ†É�‰˜u߯[xçÇpRaç^?— 0ym§Œ™J¥w‹Ö:oüÍ#¤“m%¢HÕ“uÏOGزTÜÓÒþÖp?g BgíaOüEÖYÇ.5šÍ¨ó�›ÃŽB�J®ÄöS+xtK¥Ó_à+ìßÓ~ ¼&ŽŒŒ´ªØ‹Ãa+^ðiåØX¬i3ÚeZ[H²%¨ÿ‘þž ys>x !��¹£6I6ÃÒ¤Ë*v[qªÅ=ï—…¦Ó bºa5†å=câ5®YÑ'm WÏ€ž £´ue›ðgÍÐ>4<ÍŸ�‚£XKLs®åŠy±V Æ�*“`B{¾á|b¨ G:(b)F:îÝAE�œ‚Öþ^}ð�š{2JÂ/†8ÞŠjIFØ<±•¯ZÊŠÍR1mb4™«˜Šm§¢£Ì2IÛÛ<³Ù„õn%4o¨Bk°‘Þ¸4mó4¥†ŠÞ|ºJED¦*Πງ26h¥(œÅ¤À΂L¿µ–4cL©áwý¬zìܰÑíQ~\×Ä¥ 韽È�êøêþS€C³ç Ý­ÔÈð<È õ¡ò,Ì8·«wfC~¥¢{L‹ÏªÞy—)r¤¢KŽÕ�H©9½i›ÀÅ#d ¦øc/øÐ–0u5é` ªæRÄë£AKó2‰(Ô<©t!�(Ä5G´)è ¿3‡&–ë¶„Þn³ë€[Ó6ó€ È~ü­€(wü,g\µêá%nɬÖt|¾ÓK‰Ä~¹?i²X»�Àd°fï�š[–tê²¥�èæáÿÅOß_—žO�Oh5*ø1çä€ß©ú²¸¬¦Úøç|¯?í{K¤Œ<”"jNj!϶¤AŒí¬«Àúޝפ�#»}‹åøsmt&s¸…?•kFôzuÆ_Pš”·›çI)ë¬B[„dy*»^c>öã0GÛ—Ô�rf~ž ëÝ› còf /tCrÉq¢åLân»�jÌ£qJYap%óŠR î ¸ 0ýöZSi‘ÁѪÅ'Ý߈Æb–Žn6¡¶«øœà"Ööb“ßÐË%Í4?pWÄ80e¹â̬ÿzEv�SGo¤±¿0 Û’c+½o_¶H^EÆžî¹`ÂüñäO ,Vn3ÄZ}"J†$:âp5�•‹,&½±Ï‰Rª0 ¢~²í7>5–�ÛFºS{uA“÷—k;@sƒ°¶¹ó�ºˆWöÅö}¡VG€¼ÆKPÁ¤ §ms¹žÜ QÍ–¼w9øà§‹h!5É–*ðÖÖÒ1ªÂ*—­�4ÞÄòŠ…ßúoÏ@BYB÷É! s®ŠÄ$­·ß½yÃX´‚¨ <÷­š¶ŒŒ•ºî¼ÕM檱�Û›3Æ®½‘ ÿ€Áhòó}h,XhÍ?e�½â„– s±[8�}6o5`@þ¦!™øùžÇ&üLdÛj·N㜧®’J• ÇX� U3ñ¤zù�æ¯à G˜xC{å±ÚÛN‹ôÅS(ò‡PLðâæE¨5]ݵš}•ùã?/¥ÎàÔ²=áeÔ• ™'¿uæ6H$™ûrb*L Á:‚劢-ÁfÁ¼ÁÌÜ©3Eëªí�¸V�Ø»ÿ³ÜH™#¥¯ÜëGË,ÏQ½u?z—†xRo)F¹fÁë甬w8Ƭ1×qÃi•Õ>%dŽÈúûó|«Nq`§TûI=¹+ÅãÏ2–oÙúxwŒ§Š'÷è:< î²ö˜ÄîÉ(�H¾±™}ýjE²º¥Ek6úkàà„´ªþ¶~k?�ɼu�Y<¥Z.7ï9bïs‹�|°a-™Ãýö™“÷Ïв÷œ#ìföw*4ö·;6íö“)…Pßä}aÊx>F€Ì(ÇÇÿ2‡1n{Œã±ÅXç6ó1pÓHBfOñœV›qíUQî}QWNýùO¦pGé�‰ÌÙŒWE£Š|ø5šX\x›>0Q´õj=ˆþS:\µÑw–«Àï¼,ò°ýVÑOVZ¬–p“\ï]ÿË€”©ÉŒ>‡+åˆit ôjl:gHš¢Íq®÷äÓ¹¹:@¢9€ bj¯öw&T^ÉõêÑ�Fô˜ÂÀ+PíÛæ� ¾ŒöÃÈe~˜Õ{‰¼ÒºwÕ¿Êp» EqgFÐüFMiNe{ßeŠ5+‡Oý_níÕkàzRp³…Ê䯿Ÿðœîˆ\ív< ‰(­Ü?]JemŠHBRvjÎzù— ±Ø•òÛ¢cÉö)es1OåÖñ(hñj­ èµãQ0‚õ¿o,ð�3[šþpÑïGÿ�e^¬fœy‘¹K-Â`¨ÌU),ᣫe S¸U‘„ ²YrobíZ{ŸÂÆé¶Õv;ûÅ–ò¸&¹€^¨AX,»eL+�c ¸é÷ܼl�­ækÒˆ/�ÚD¹µø‘ cüã[Cá`32}P×f/Z“ZB ³ªtŒ¤p: Fò‡~+à^=Ô:Úû'ãä·cqâòküµq›þgǽʮSLÿ‡âµò¯ RM�G]Ö�l Ç®zuÒi ‘xÅéoº…üz”“°{°­ÅJK|CÅ`»u¥^‡kÌá‚ÉP`7°ý-+Q¥ËäsßU¯\kKÙ×eƒk> � ±ï¤cY÷Œô@•ÚòìD²ß F9ÑqµS@�B5Àƒý ï% Üb˧۟AlòÎÝ.Ù¼5éD‚ßt&²Õ$ê5 |I.iä°cWWÑ…¨jH<ÊdäÜÇ3;í áeÅ[áè¡Ý®ßÐAptU’?ðÂíûÈ.%CW 0}»?š±¼`õøpAmD£œÛ!0ó'Ê6’ýØ*Ô¥ç\7á Èʰ¬oA: G•ŒPQj$$ˆ¶ãƒm¨øFe4¢{j`k…U½%äµÀh³YïѬ‹Úâ׃Q{ºùwÅ*˜ öJ»{0'>ûs|¿Ï �oç_FÏI·KÈñÈ3òB[RÑE­Ãí� ’‹Ù”„�ž¸¸K<;þîM°o¼g2ØÆ4“3\”µ0~B5_ K�ë¬(ÝÖ›ãw[ƒË[yÍüÿÄp>Û=ª?q;(8£•éK0”´FÙªCˆ§�îÂ7^Ö„«4 _ȼÖ¾ÊÉŠd[Ö×þ=äuŽùÇUk|1!çÒì�„›iëøÖ¬iaжwrGZ}‚kÍ L¤ õ�ÈFì³¾E ୹ĕsÅ ñOºâiu¼‹¶uu²Á«EÓO§{ Rw@-óú’× ~5¯ífdäNž¡°y=£]ÜdöìI·g°¦*g¡4cÀAã©<½Ü[;Žd: ­Š+ˆmàðA¶x’…,"'0Vo<&v {]sèºoÀŠ(k�k"#G²g|ÖL°žMråHìVÿc ¢Nö ããÖ‰üM|G¦¶B ¯�=[xòÓBö†š�õ1ªUî.hæh‡¸Bf4+P £:š—ù]É�Ø'œ¾{çá„ý¶Ïù×çÎîöO}á©P*·ÏÕáfyS´hýé‡]¿hàÇ\g3nÒⵚ¡7è:I[2ŸäT^ù–¡¿®•ð+…*®µnAúÏ[ÊFeþß«oÌ«ã¢dz…šì)I¨:|C7¿Â »:„–¤æÃŒã,]jìh @®´ç¨Û§ÒðŒ±Š¤wT2öÃáApúI�‚sIä°s€«­J2ŸJÄŒ_Vž÷ôgÍ›C%­sa}«á<…}bÌ?Áéjh��t_ë‡÷Ô–¹=ú¸#€ ü&§ùû¸MyDºV"jª†J~^eî/ùšdLØÁŽÅ›wÙ”�þ·fzîmõÂ8Ke­ûé"^Љg+®KLŒ6×N.� 8ëJš>ß -0aCÀìƒ8uiÓqŒgm þÎB(š•1.ŸQçb¶¥‡]tZõ1‘cCˆ| ¯Î%„ìúD¢|RÕ’à ´ d{4M .g퇄 Üt1A0Ï0ßy¦ù¹<&d ²½,›áó©Ì Â7P‘G �,¼rüì(ªÏùziD¿¸Fâg²»[.,üT»EáÄÇ« ¢EI¶³j 9 ÙX%ÿ¼½Ù¡MH^˜=£½þ̇À6Ž*pòâ·�½˜?�»áñ›»]Ð Wè âvk� aíL·C»{ëÚ¾KÎò|A¥8“†Xê”k')%éAžל¾àˆEßĦf.ë ufz5žF]+”Î}ý’óJgpË8¢»“WօЇïY#`�^¾ÿŽs†S˜,Ívsb£fß!t3T)ÙÃ7õ Œ¸Ågü-•"¢›*-uÊm½�Fy`f-.ˆ£öÁÆ)¦n+ ±E|Æ  )¶zyo*¬Ê`R�+¶Ô�L@E�Wý_º†%™ÂÔ5‚SˆbzP Ã÷V„Fcè�e¤›opº´üÂÕ��hüØ'X >ݹë?2N¿¸hY�; Àà®ù…’WhÞŠþ®&}3•†”¼åå HZÉš˜èʲ“òy<¸½ÈDÿ÷4´˜¶%–;¥ñÿ.]†¡%©¨¯©3˜ÀøÈÉÛ.YÜ wÚ¼SË’·~¼Þ9õkiÊ7‡JAF 6 ÔçÍsvÍÅaÂúª'±Êñ‡Ägr©œϪNž¶©yõ\|ÂòÀÐõáIzHŽôÿ+gKHÎSï‰îû«™ íºÖ+ÉÀz ð{ƒ»Ê ¬<'¤ V±å\bÑÕzÂÔûb)ãåªxÿf|NOØ)�¢~ínÜ^vmõ.4Îïºã¢E>…ºN´*Ùç0Û0Ü[Qθž¢Eo´Uü‚¯¶_õ2ßÄ[ñÚkj(1нW<9oáÞoÚ2AþÖ)¹Ç­…ƒÅ88Ñ©Ù˵A#,RçZ™¾s”Hò­c!&ª×<×”jÜ€~Ϩ°S‘3ziq�õÖ>gD_¢~–ßß'.6ì>BÓ LêÙyË•³ÈeRç­Á¸Umò—Êß}À¡Ýßvå°”¼HwÏtáÉïõÕŠ�>„G.ÀþLu{—î—ey $5؈­¨bi@˜—çóCŸ:ýjå•Ï.Á]„ãpÜoÊEÛÍ[~‚$Ï­e´ ¿ÃT%aðïÓ"›Hºsúé Ä2‡§Rº^ø>s¡'æpYˬºïÛ/×Õ†�Úx4S wøàžèá¯W ÏQóù+fnë¾—X((€�Å÷re5dëo3¢]ÃÌ|îêâ£<�¶Ø��Ô*Û§þžËq{2ò©bglfS؃,žöí¯õ£/ø k±¼Ø¾ô"X*ÃÎÔE䢎·D)sL%UQžùÞN±Âͺæ²mÛ¶mÛ¶mÛ¶mÛ¶m˶½æ?sö™‹�9Ù�tÒõæI½]©TÛ4ÒTI˜ƒÒ(`·eº'„ƒBIcºgiñ9�°tšä˜<&FÖ8¢ñ[˜Ú AëÕ>>u�5eŽ#ئ@ô¼(_�@‰ËÐ"æ¸WÎyp%$òî8€�‡ÁE&o¡0Ú8àNqlUö¹¨�1Ÿ":G.{"çöxy©„óqŽœ²²Ír褚Nýµ¢Ì»¸w%žMùhh›Ý'{‚…N“ƪ¶Éʃá‰ëüyößìM�ájÓ´�gÓ­‚t³ò²x <ýR³F•eV³çý-Ho'u€ëÇåks£ЖuábFRØÛH™!b)£âùú; ‘ôÀÀDué­*¯:ÞÅ©¿VXK¢¯M/$õA!"Å~ᤛ%U,Ì„W9_BºZj…N–Êòy;mа Íáº±ï ¢Å¢®T](5™á P^Ž”g§aöùÑ×4Å)½ï–híPÛ¿<¥\mfÊ„z;(wR³4_?ˆûB –Y쓈?1Iz?°ß\ݽP.N]'ÑJKÈœÆÕG³¢ÝÀ¢<²t�à5¯/8u?rK¡åWîã˜ñDxÚ_U”à¸7Ü�ó Ém CèÜ­çxŒ=×±â0Øf�)Èâe‘L®ØS†ÅxPã/àž`ìgDò’)G ¨›ò¬{ÛníÇë)»¦]òœ §ÉH¶.Õ»wÏÎ~óG�ªð#1™ l„0çèÂüòÈî�Øeÿõ)4Ÿ×³vD\·Õ††TXäØêFårÝÓ®ÕL€ Òc;e»•EQ�S‰}æUªÁ* Ñ\%4š"¶î¾ÜSŽ~>*l»Ú7MÏ}Zj[w"øEÄ”Zóì? ̰®N¦V³ä¹QÀ•+¬eÄòš“¼NR^3¿ª0"úôÝI;·ùåƒZlûL®B%b^…iäkš`b !ö2iÝ ±pØ Í©² Ï ¡#ÿúanä‘=äö@2* kðuÔŸL”KÞ»aï¾E¸Žæd\ã› <šö1T$' Ä>ÏVñŒóz Ê)¬ì‘…·;øÜH½Z§Ð±=¹Ã /³¶2:E¬Ì×Lc®ªŽ"{„år5¯G]9#2}®/f×3%°Çc²~Ê=©­9=âPyM~þ²êÊÆUŸÞº¾%›ÒÌ�O™^O, >¸Çç1ä�rÙü�<\}7/~“´Æ$ÿÀ©/`”qÅðf¬?¨¼»M ‚>Ív(¾qì@y4Š^™ÈXÝVHÏ–…(çeU¢1Ù[1�ÁrµÓ­,ø£h7°¤Â"� ERMG(Åëª�€ueÄ”X{îÕR΃ãUÛš¬pôo#ÖC lö Ò²� o=óéŠF> A(ÀÖ¹#ø´†�,Ó�y9xµ�-†Ôq¨,HI´^Î3¯gȸ<œ_«âÈiÚ¾Û`šGSåöãË9—n*½bRÚ4÷6SüeÿÔdÛy‡¹˜­–*[ù£(VÇq¡¦´x®‹8Ù¼š#Ô7ÀÑaò°<=·Cª#¸m?ä?*ºé…©‡£ÊtƒâLù:9# ŒK1¨0?ükn—%p€­¬éñ’ãˆÏÞcp÷ :’t&i§Ó·øíƒKT[jè1*‡&`9,÷‘®z«®~pÖПîÀLÕJù$ù‘–ƒHWMB!=÷þI¡ô`¦5­ßÓóEÒÄ2­G\Ð]ê}º˜¡gÓ¦ÀåB²õF„;ãïR)‡¥Ùü`µìa·jí‡/‰¶øâJ�-%n«<°(£ãÓ9X0i �,¶X?IþÓ´ :¦ÀÞA>ÃùË…grîû½«=BRZýØ÷‰š«½¤uÓ+ýd�0³©› Bî$H+õ 5m¯‘µ±C�»ò÷¼ ,X"FË‚ØüëBùl¦+ÛÅ“¯ ¸˜û7Kö¤ þü8ÂÌ Äè­f]q€yì™ô˜¦#ÔùÙ´Å}IXÐ\˜/ª~‚9m'Œ’§A¼Îh@,½B=öœŸ„ºí9Yµ Vc¶v¥MP˱àÚpÅÁ±Ü}hªÝFææ­tåðÀ.V:V÷Éñ¹àñ‹N‹{ì6oiuŒ >¿[T ,¨×~*¯XޱÇ7Uñ~hå.ŽÎY«KÅåÔ!â†H^·9HäéÚ§h¦ôý`'¯+�lïvú¾fe$¡«ÇÓK mi/N<Ž?Ô‰8Zñ݃ÊYwº×F(ÂÆþºÒÎÖ%È6Úˆ ¡åéÿÚðý˜ZEKÀ‹ äõ P »Š�¶â@Xß—oûd*Ì B9ȱ(ä¨#½¥&h+¿wÕ…`:0~…¿KgyLø9‘ú)ÙÛƒÛlš½ ò˜1¦¶ ƒœÈ!û“¼$-NªÐM£ ð8¨\ŸJÕ%e,ûÚto²–Zpf3¢I0M­¡÷3ã­Ám½§°è&yEz³P„ ¢90¼HJo€¾_bÛ…ôouíàÇí쑽R5fЇY.âC¾¦ñ…é‚Çóžò² 5k$ÌiÞì+JQŒC¤)H©×ò8‘Vž£¦dàð!¢ÓJUQÌP‡$,[8u«†ÇLƒ°�Ùª¨ø ŠàÔ�ÙûÖøA³ôœrÀ2üešÄkßZjð„Ïè ß+hÚÒß�¯%»ÂŒpÙ©zF™ñoN�]ÔGT«(…<_Ù}\òE±¸&ý~»qÃÓC¼�x¤’w®j2ö@Ž8.Ñ‘+¡’¾|vçÛÿò:•èÉòr+}¯cud½ÎÄDo!¼4¯Ò Ÿšowz×~[¥'ƒÁ�u®«Âò"£¤MS>±˜}áiIŽÖóî&…XÆ­‘ÝÜ(H«}HvQ¼2^:• gYå#ÊØaõýs÷¯m¥lŒ¥9¶©¾VË�Í¥ï²k!m6¦F×}p -ÒéÑ{dBÖÞ{¹ ÑGÅCù-à?=+µ^Ó‡ÖIqÜ:Ò&@¥Ó‡ë5͵¤;5ÑT›Ã°ßú@Ãh¯�†’ ¯žWµ¶LuÛ€L€|¶ŒŸEZBGÙ¶Ò­bŒÅƒ wKê¡õÂaGßQ1´Îýj¨…)תY¢NÀ†”•ì`â�Î/Ýò׊‹œÂò÷¢"–Ϊ%Úhuær1o¸kxòµ=sÀ£�Â{NÕd©Þ\c æ¦ôÄ�Õ$ÃÊO+õŸ4{ìÛ•ŸTX™¢ös»º¢m°ý݉â¿*~¿ÚwŠà!Cj†ñ˜J¯ï`ö¾…EÈÓvõ˜op”¥ü8ŨBlÂŒ߀U½ìäÎu˜)tñĈó›zS¡|-N¶Ïvs¦ÈŠú˜ß Bo¥ÒÆÈ„¿>BÑŸôœn<Âl�¢i¥û… 7EíÃÿüíQ`èü©~\“ÓÐÅà|ç7YKèHo”aë*ÇS±E¸#Ë2$@8,cuö¿ü8!<zmÓñbø�múçù9º‡¼,'R¸:ºã” 5£°;0Õ¦}Úú¾õ‚­9œäoÑÐø%#àÔŸ5¢Ux�V€+QÚÁ6L"”X–׃FM摟!p²üèÀØ�‹Ä²‚ÇXÎ…”Þ+¯ Z��ö×Q Æ•¬ÐÖölouá3*Sÿžæ‰œg?½QG�š?­|[zº ô|3ödT®aËÊØµå¶þد ™™í>­¶ôr»4žÖ—°>¸^ Èÿ3HbC Üã¨Êf!ý.À¼sV2V:óE@àØJ“QÏUɨo¸EÞ¶[ê[§W )CX°ÖQáû…¡!¸¡‹;e‘Zð~æÊur­Qâh[2gjÀ-}MÜ®ÃûíLö͉‘²MiÊ=ÊwDdiëäˆC@È�æ«Tom7ì䘆ÞñW6Â’€c~ëK^ä¾·ùô}¡"pÏØUò“ S êd±3Sÿëå·HG6ýµ8$q83t3\ö6ÌßèS,Ó_G‚ á;I¾Lfg ƒh-YчsæZ=ïgWF5b7âFêÙ` ea ÑdV° Á­_ã…Ѭ•kÎr ÷ù9¿ 3í\wÅ¢3“G~«nЇwü—]:üa*õ €Ib~“9¢ HX)K§&f„£CÕî½äÌ •ãNõ/¹}@_©O DÞ-˜]ÀvþÑ¥ÁsÒ¦¨�bBx}×÷f¬výŸjògê<*Kõ�ðÝšŒ|Ý�Ü=Qµ_µÿ› …þœb–KµåñËr£¹X�ÒR•þV×î8¯¤/ ¸SÄ—ô÷_÷)ª© ‡¶›æÈ›;gÄøjè†møØ‡Þy…,÷¿,²ª¹nJ^k„.k#e!mD9@C‚0᪤’âDh'ä1ÁØ—CuëÐŒ…µïÛ#R¥�×AL£j¢J„%³Þˆ~Nù³¸Š‡{íA‹ð:h¼1 &äGŒÇ'˜”Ï€ðÞ)VÈfëêß!vÉ·%·ôšÁ+bÁ„Î~üæ '�1qXk�e¢AxË׫Z†NÅú:¼±Â‚è¯&/‘`Ý ŽM£®¿˜�ûås�`¯hÆïÈ?u¼S†�äꈿ•‚²ùÃÆˆxµq™âëê‹$©PÞxôà^Øv©îõÔ4³`¢šJßœ`ÐŒ¦íu©ÖX$PdA> €9œ�Ib�Ý–á?6à‹•ç5“ˆ¶¶ e )æÈÖÑëä¬mzìEáÃ6áŸuo` ’¬C"õ¿ªyLÐ×7‹X~(x9…–ë_»ªt–"u±lü´�§»Ÿ tÖÎìíÚ%”·*äX²ƒV»­Ûàt(5ªµwɦ_²SußÙóå†nEyáà+¨‰r÷¹†b¹Ñ+_5Cm_³¨êakôÄ��¯h––5ë(êɽP�!ͱØmèÖZ”¢>9#HkòkŒ²yW^0Eºl¼i(7@Ü1WpÜl2COËÔîuÔ¡ÇnBÁb÷ÛäëR| <¤«H�Šö²­j H spZNÕ® ñ9SíeXw"gñYTºÄ" Ü™‚Èe^QÕ€æ¥ò’¢ºö&]Gr% J€@óˆŽåM[¾UŽÊ1ã ¦±Œ b©˜ ²Ë#uWßÄÖí“vlF{’vÛXÈßDh‹Œ”áÒDñ£ÙjÐ#SÆßþºýuüæIk¯•ÖtÇ�×þc»º/•»S\*ÇKxÜ’Òç_ÔÚóÆ£ÁBGêØN‰…,t÷&d3žÁ#w3�ôÍcVØå88ÜÖ�ë“W{úaà©îÆCSÁ¬™ÜFϵR FÖ)ÞÂþèúPÛžq#ýÍÇŽ�´\^õøÄŠ»¨«ìÅ´–“§<à¡|¶N9ÞÀ™!wA*y…ê9J’Øîá*!ç¬Ë]“�dè¡ÏÒÞvÎ1?Üo„¿o-]–úé¦@z°Œsa»ªd­x¦ÂV%0·7ÂìèµB8˜²_!UÇñ¨ %ôJíWûè’{jO8þÓb¬�kï ´Ìæ»[ËîŒ\òŠ'ì&%éé¬$Sÿ€5;àlœ<§22UªI ®Í‡û¥/Ïp‹/«÷´³–1ä€ý J2«|bC¦¼ò¢Ì[ 8�º0 ر£Œ«¹^óK ÂG´qrg¥„è,/ q}ÿdïÞSÍÞð” ¦8 (a±Àë.|m¯w­.y”éø™†åL©<û÷§p¹Å‘b¯Ðqñ¹F_ùEÍHQ„¸I½Q˜3ý£èvú¿”˵{’BàÊL3`q«ÛAàŒÄ]å»”¿úU^'¹M†>†Å÷‚pÌ8Ï…GPMm!¬û¯å·W±¨‚ùÀ eI‡r#¯á�cÒ‡�ó‰Hgò„ô2ëo+grr•îË…0ø«åø`ÖßK~»jl~¤Xh%?Î<$X°§�¡©i«ÚJÍ­­¾HYó)‡D ¦€›=ÐX�ðì|¤å¾ß”_ס lIÇù¸ö™yB:Ê\ÁýŸç*½»|ÿ3‘}Àÿà4ܯŽ|¨2ž‹U—]e”´Q `| :µ|¸øó'ÙAçO¢+Pr£ ÈÂGv?ê¢ÚhE>¬°€e@sÁcŽMÉŽPòXX "SðwõcÀ·gOÜÙpjÍ©€Ù°Úƒ¶/sƒÐï{ñ…˸‚}¶’Çäá½ÖžÕ�‘x¯ÊïÝÁ§[à ¤¨ð˜Ån/& ^¤x†æ]3¿�Ò´o±Ì>O´®ŸÚ¡à˜DÔ ˆ+&TiåRFˆÄ{÷Kçã1‡pÈtýæYEœS{=¿\þ;øÝ‹©ðó×i¾¸Ó7èÆ×zø?—¡ê¡… –ƒ8^ñ4Y(Ùο³5�©@ó-ˆ]Ë›(˜øÔ“ÀÍe{«kŸ)"•‰Æ-ÿìœÏld<.3ÓsJÐÙE?ùÂñÆy#Wîãæ¨äú NÿëU8,Q0Usi턜4+�AÝËØôØ@�¾ÖPf®ð×ÔµÑi5„ºG”.|÷k‘³…E/îû×zªªxÈ–¡†©�8Ák ×ć0eŠÜŸù‡J1L3Àf%ü;ÇÂñ®&¡Ð2§v+hjÜÍÜXôEåm;—Ñ­˜2ºÆãŒ+h?¨¬mIýnõ�<ŠdËÍbTyšuÔ Z:–¯j´ƒ/H°‚› ³aG</{g­–/”Êøhãá¤jY:T¥à6Žó‚è<A™cÙ­µæàg\Thž�ßiµŠï_%tí$òÍ|Ë2Q– %Ù AhÌÈ·üÏFUYD÷,c�' s3ÜÛ8�äo¯ˆNøP¢ñ›%(?ZlßB¿pì¨0 ÖàZ=`L$ŠßáãŒ�¤Ö»’òYxš‚&õU§Ð^e´ÑïW¯—�ï¤Øê É˯jDì Õ&ö†öN”‡Ä¼ž)àÁ„ip ¶hgà”¸ê¢{E?.§yY߀cÖ¥œNÇÏó„°9GK #wrª\÷ß© HPŸæ?À°á�ÆÂÄšCƒ³¬¸Dð>…ÎXËÓ¨«©;Í`lKXrÉt°Àÿš»‰ÎT8H ‡�2ðXnjôkÝʨ9sCĶc@$¿C}O#h.‰^TU4Lç4E-IÓÓ92ƒÉ°œ¸ìêÐr:4þÄ`™Ðtäý¢ÒrÔ©´Ü‚‚{•3�Ä Z'Ïœöè˜àÜ>åeœãýëezvl®û� Žy‰×Òÿ5©ïD…[èÏöUXñ$Ö¶Àk©!#À—ˆnËró 1 ¢ëÉ5Õ�°]$š½y8ï‡GÝÐúªÚã¬$‚+J@o|65š�Ù'"ÀÌÐJ¬)ÇŽÌtܱ®ÑÈ:Û.x Ö=¿4éœCÇq郣« ã#ü®/«ö„–ÓìD…3 »æ�òÙÞ0'-°‰g÷™ÚZCo>hõËâiº6Èä)ÅjÙ-¹b†^æÚ`â‚3hyÅ€òli xÌ\K‚ ¸S™‚¹ ]ëó¹e™sßôuy+É-³Âv�qã&¬ �¡ yÀ­+ßðÇÈ`µ27&ze\×»W–vö‹h4õœv8êa‡²G__CHiõ`vêZçÎN®]ÓŽã¬O#xðTÁoekÒ(ýdЪØõŒ�ÞFý¶�T´ØR¥ÄÓŒxÈnðeh扼¼=ã4Ñw‚¸ôWj�J|„» Ù‘Br¨P2ÏIÊÚõìæFN.Âi2'*¤áqP<à¸:Ÿ,ò¯&ú×f²— @]ø›K™ÂÝcP­T»Rã'Ž[䳓°=�\«„+:& �Ì/A^‚1Yð•tÕhrpÊOÁ¨ï*ºÊ´3~ì:\k^Z¢ªµ§{½ À9¶~mx�ù×Lž[»Œrò¾ñ¬¶ÍH¨hàê~B“] x$g’ b>ü‰€þ*Õâ-”˜«½'\-Ⱦ\Iæ9‰Ìbÿê5�Ñ÷8s¨êªV �ʼnq´Š@gN>†B¡œ$†D~¯9 zC rx³„^íÝ_zRC8öú䙬v̨˜mYÿ qœáM¿JÁ¥�Pšµb±äS+5Z{úlk²A|þè™7[á»Kr ¦$™|è‹òéðhøËùOÜ£›Ñeú»R±XwJXs¼`\FF×ü�¬ºÜ¼B(‹yàׄqGi` åz'=§UÝá ac1S„DÉÓËž†]ø†…Õ](›Œä�ÎíܼKwÅFªšô´¦I(¡·ÓÌ«ñì8«íö—ù¸É ,¬Tv¢v´ˆR ?árý"NúG²œv3K„ÛðnK;J\l(hO�˜€Na:‘‰„Ú)8>^Ï m7Éð”o¿Ç&jSOæV—ƒ¹T#¦Ö”çÔ�B`sú7&�=ÃÆ@Jñ)kάyå"ý@=–¥¢„¶w§ppÊï„&ÝZ/M:Ï)ÕFf�ûˆ|²ª¦‘é9¦’œÖjó{lQØ7DêbìLkãumju1b"¹ÿþ g=Ó%·Ûa”.ô<šÝ<˜ r�Ø .?±ÉO g""#¨fÓûÀ“œÜ=ƒg.°"§eÚ áÝÞ—s*/Ç–57/.]vPçé:bÔts�Â#Rµ$îöU¾ž* Ð>žàÚ¡»åi��¥„ : »ð…]«䲜ž¿´·S³wIš@n,2½Ê_ç™uÇ SK¢eéø”¸ ¤·±ª4rY—ÁrgfmNÑñ8 “¾Ub:xD¥”·²|­�²D.mÎä5¥NïhnR‡gðT$�ÝüÖtÜÒš à(±:ꜜcVôìñ š?…¿¿«u# ‚{reX–Ç"@ŽzøÈRMî3Íè‰<��3T›ÊCú±í͘Æ/£ûCržì¢]|ÐŒIXP&ê8DΟ3=J¼Ðb0°Ã椄¿O!"àÚ¥€$LJ‹�;qí}»Mê9<ÁÄe5ðw(« Ü®H{R,ZŸõ‡áN)ú?,j4ïnù½…êJÐSŒ›zañvYç„5€;r|ºiÈò¦ïy²¼R[ç‚^øÀ`§#éo¡•y‘U:�¡¥Ö zþ¾ìvë /ù,«ñÆ¡Ö/ˆ¥Ôž$Ÿ‰’…õµm•œÊÐÆË†a0€Î”ç…óÇg Jí™ ,„Õ—ìÀ)[G¬%Ìe×Á¢I7ÇÇò64€î·•wœsÛ‰‘©Pwôl±�Å‚_-J©¯ó í] Ñ'q†I�¹§ÞD60JóCÌÎi¾SSf>(�Ãd¨QžG¹Ü–yÍxlj8CÌ��Að,8@­‡õè4q2cx?{¹·Z_ ë ;ú=ˆ9Ê’2è‹I”£™È$qð’»®ËÚŠH1æ �C_q¤ƒ&Uºu‰JÞêš!°Ât šE!z4§² šcGêvÖÕ T{þÇTbÈgfØ™ÊÒ﹎<¯ë ^3kSû°Þ’#+ÑùjÊÿ¾©¼p )›�2�kPÿy .ßkÚæ6³²i ³¥—ê£ï„`?g)~¿Å€£,ړ猯I£ó�u¹”>s5ŽÊ=æ*Ç\´»íàÚ­.� 4#²ÉN"¦G<ÈOGœéE _‘“ÿa‰[ªÞbª\ôîýÝ’øÕ¯âàzVÑ$¢ö´××Ól)Æ[Çx'Œ,µ­�Mb^éz+<Åzó‘oøÂûQ-C¹üƒ5Þ™È,ðî Ö„"Óö'q…2£ïzV „å8+ *Õ£aÚ0S¯a¯;ðJ?¤ŒÉÁw7„%x ÆW!èœ> Ün0zÊ¡£y“À˜‚@Û E¾Dg~¸~fY‡bñ"�ŒNýyP56AoD.äéY`ø)@,S»EãD’£)Ò`—S*v·1tcÑö¿äm‘2Œ}ߣÇKXõŸŸv¸�,Y÷]vUWHyXå­ñ ÛyR�FÈÞ›âÓTG×¶f,ç`›²ÜmT�“æÙâ[Â÷÷íj Ær¬»v�e.ÒóÔóߎÎMŒ$÷~ÚŽð�r`cL)çk®8C¬5kJ|¥Egþ¨b9¨‰ÜmL‚ïÁp‡ˆñ\sñ’Æœ#À Î%³†B\,tfAZ½Öɼ9!�‹QñÌG:õE†1F‰µ\i DLÚÚ˜ &b“<õ£Úm˘¾Î±¿¾–VýÚïx(�U­,q|Рƒè�B‚É”Êi\b¾TVô‰x=ð ,.+0úÎÍ߀Snx[‰§—ÄS© °.S8À>U±ŽÆ`Èç[Î'COäΔÕ$ý@b´�ug•_2ø(ŒTÐA=@UxÒÍÛy#ç/ éÐ2Ç&|H:v:³zOó‚/úŽ}ÐãËï> ¹³±ôŸœ³•çù~Cxÿ ,�Ðt†=§&:»¬ÔèºÑÉL¹—¤.úaŒ”4ÂÓ§—<r >¢6¹,}Q·Ó••oN‘º\ÚÙF@vV‹ÈètihØÝò¾~ôµ¥R ê óÆ7�ŠŒ�åMýF”ïÑLÐ:㉮QNÿs§¤Ú±o�¼¦!›þfÙC‰,о bk\ÀkHŽl»Õ&–wfŒIÊdÇC{S¼b0äMà6j÷†”rão²¤Š� Æ´Ûþh·°¤Ií6‚Dz�®þW“Â*3 ÑÎ]dà ¯Xç‰äªë0ŠûŸmiÕwˆ*ZÄ1¦5üb1’¶1½æÝÔð _ˆ“»Ô Ç�LD"oq´‡EY*Qˆ¢¿½Óà`'×\rAVÉd3k^Ì €Z>�Kì�?÷êqýJ«¾0–ˆ³ù™Ûzàßã$+ ÍŽê*Õû«°ËaÏ˪ªdÑ…äâ.dê�-ÂHÚ $jc 8§�JŒk4 '{`ƒn‘c'm¿Úo´�ÿ­(2°@©I½gš+éof%dÈ® ¢779Щþ¼°£XykÖ¦êIe‹æ[±ÞnгE¶õ6[mn9_�k@ —ËK»O?ýþ+ÜÙjôÆÈ£ ºãxÀË^¯5ÿ¡r¿÷%Wˆ¯Âr8a(¶y™†õ— rá3b±cÁdsÉœl‚Øsj’¿éƒ«*ç/£jšì"Ã_“j7CbìÕù+AˆhÇçПêŒ&!—¿3> Yl§ØÖœá5ÚðO¶.YmkJ1–—Ü ]¬ë¾'ïÐ&Õ0¡{Aý;y$K¹&6ˆÑ9Ñ0¢r¦Åº$t·ãç›ËAÙà’ø;µÈÉ{?è@žášxˆehy5KGÃT¶/êj‘ŠÅZ#mZ�µ�•¸àìIËQ[5y‘32_.Ú:sâ)±‰’Ÿ¦®ã/æÍ`³i¯ddˈig’|òáçûÂA™«Å~ú-•KšåÒS²‹]ÕJàòGIÊ'b/�Žwšß0U„cñXÓ¹ø¬:#›!s» ø‡&ùSÌã�]"õ§aªÈZ &–°©šËkC´A[F[Ð –Ïy‰ç¾ùPÿb3×?’»ÃkûuÚI“ôNñ|\ÈÉùGÇrÀ&â»Ø‰y_¼�— ß•÷–ÐÏ¡q�£~+J.4ð¬Õ›è4zB£Bù¸´S‹üvK(½GH#Z^tÚò[î‡$× =2öíÑ™ä#ñrg#|i¦8G¿‰;W§�Ü1ЀOÙýààÔ­&4âËwÇ�†*>ò�‹_Xñ Œ*•®fÁ@åèŒH�—°ì?¨ÖL9œ´€½Âž³C2‰%²:Œ¦!lóO™×ÃF:ÁZÒGÝcøs¤�Œ™!¡§¡Ë@ ;7Dÿ~}¾îjô]n‹‡¾C«"�ü›­öA‰ 3º–”†úýV{íi@÷vc�@_“ú·©Ÿt½n�[�áÜ]u,äT‚íƒ-^L2Æb•VàFÚ±4?à§ìœÛ4ÐÝö4b,û¡KäêûÅŽ^æ ™ìeãs¬¹ª@˜ýø5ä„»¿Cè+ü®$ÿ`áû†£R„ #?�>+*pÛ¯™» p©Ü¹Ö%Y±v¸ŸK½þm–c&}&¢¡È¡¸KÕÀ (H1@p‘ C}96gW ¢Íø ±°TZi^w|cF›ç¿»º€)õ¯æÍÌçÜ#_7]U±v$4„ÃѼ™¥m¤­ÙÙ®'z~ºŒkGIÛ–iO¦ R¥½ ’ÙûþôT�ÅIÿxvü >è=‡û°+Ùl\˜x4”DÖ?Ò¡ U\�Ø(IîÙ\¨ou~ÍV 7‚ªa}.�k€~N�t2ý”Ú– ŽvûN­ÀH:!�Û-À_ƹñêJ1§SÛÑË-ÛО§Ï éÛƒ9emϺӰËãe¹w8CÂ‘ß üà©O6 *„t<Ÿ—‰hK‚PoKÄ@N8©¼ï–p]ie�Cšxÿ¥ FÖk$Frê¿ßÒïÉ|1axßM“ð=ï¹.ßH]y‰‚‚Ã<Ê2̶&ÅÞ“3�Š“×váŽ×1JÜ€�BÖ,ïËôz¨,¦yw#±ÒùiØ ÝCvC4~ßÎÓç=T‘¹ƒ ©;êuøF¡¾äµsU!w‹�oÝøŒ�nEµ¥È@A]çã¬К–_E/Ó¢fÎÙmË` 2…cíÀÂåS¸b¯0Ò³:a xbD0°ŠòÁï`R�J¡¯J~pÏüÚñðÒ+Öøy!²,ø>­wÍ$+¯å"öït:YMwxÇlq‹#ÔÑÌæ>‹-~(6¶ïÁCL~›ÃóÀ»ßçP¾tO º�Tì»jhÀ�xºñ |‹j§ø.¬ˆÕŽ¡�MÖÏí~µßXX¬Ö«v8ב ¬ÎïÕëhO¹§é{�mÇß3à6[6—ÜÿekYäóˆ­ÛD‹éM½«i½Q\F“%е¬ ¾ug¸Õý‰ÔýhR�9û¯ÅcJfç´ŒÐ`��oà‘º�å¢� W}Ñ�ñ+²L>î¤fÑV�RŒ€þcï.�4»„m±ívˆEŸ>ˆE|ë•…›;«äÎúÏÌ'I0¤R�;@Ë­o[CèUN¨­{ñ–e�Ï®¨»üܤ 2Çì˜&UR8<:,¤ÚÖkT.¿X›©êˆP3�°˜iLÅWÔ[ô¹š’¾}A{Õ ¹m`eÎü›4< Ø[(ƒH*‹­à5ïoñÌ}üðcÚÏ$læ«�TöÕ�…A®Aè¢Z¯«ØãMûG0rhè-ö¬óˆ¸g?Õ)r¬÷ãÓFxïvÍøí;Äíu~¢Š™… ùŒÜÉŽâ`�X׿Uú¦œ±�5Ë« Ç‘2 ŽÒæEª‘I ¨[ñôÂ3Õh" ­yùéeeõøí\ Fõ—©þyö1«ñ L…&ŠèÄ<ƒ�ï kNLýbjJë+,ª©þYBA3o¥bº§­zâUãÈ¥fÞª=›áÆhyn "WÇ�b¥;ù•5§íY¤ì“¡Õð@/Sÿ¨S*yûEN®ÿtuŒôªîe4úzloAZ\ ÜøÝ•a#:¼÷Þãó 1V×)’=ÕäDNUbI]óYÆ4j„ÊÂv=á «/>µÖMCXñwynß�MŽÅÓL´ûS³¤ù4é<½yx||µÜÌ�cÿóTÌ‘°[Wðo´°rLÈ0OD!9R¿ßúHgqN5(gˆ·ú$j�Ü¥þ|í^?…Øý¦Ð‰B>Ç>EK Á/jY_²j~ö:8«B=…0ëæ±ŸT­Œ±BÓú9ù³ãßðZ¯i‰ºñŸƒ^Z¶±m©ŠÛ{E˜©wŒ…?È[c›áö†�E¬]׉™¬}*�ûÀþïm€Ø€2/“M €¹žj×Ì!tB/¶¤qõ¯³¼è‹Ž‚Y íw^ëóqC.;öæPé;ù/°xºƒ&²¹ÖyõÌ»Ã+»üžÐó‚N�}úlÌ×ôI5Þ ÁÛ/q%õEœyÞðäÔ0ðHÜ.�\]?0¢^÷—ÍD« ]<±÷.ã]gþŽötOùärf—wkóÉËâ%ùé‰Püré//í¬„Îí|,4PSRçsÔƒd5ñvxINAˆ¸ÎaÈ|~¨Öî úngz›ÀšŒT–¸�öë#ÆÆ¢'´,-,ȬÍxC§eBÛ_áQ™ÕZV¬ⳞC�mò©]¨M”€ßþaš€€Þé‡ ßÅQ *Ô\®‚¥g¥0û ƒ`Ú+¨¡<!¿¯pŠªdqeŒÐ¯±M=”ã=nÿ×üà¹ó w¤¦qC!F÷XsÕ‹Ž‘Î ¾´:w¢•ôË• Éð‹âG•|û­üW>ÞcúíÜÆÊÆ ‰/Ç�|¡°gcžìñ&ƒ°õBy8¡‹KÕrw»¸0fþìÜ­V¬Ð½ê`Ÿy䬊+mesu�¶z�Ô£"à}²ÛµºôÔÈùÁz/ÕµãªØ}ÂÁ7ã'ëjE×Ù×E/æi—þ`½ÌÒçíâÊ,ILžh«u}Gý�ø ¥zj|Íí¾—ä™.GâËݵˆ±Ù _õí…ÎÑù5Ò7¨ÑÝ?ÛIÐÅ1>nñg[Å U 6jòmü¼2ÝéïdFLˆêѽìþ¦áÊJk“Jz¥ˆ’†æ}ï æ7/<œmÇ‘i,*»Âü¡mÙ¨,|ÖåŽÕF53Ë1ߌ1ºÉö¨ð&äÈÜ}U׋sß ZUÃánf¾%°3«â–Eæøz‚i2Ä*þJÒ‹RÆmöXmt·E\¼äï¹uÊ«G5ÐÜ5É… Èãg»7¼Œ|w’îê’3¨£ÿŒ ˆÞ'ß¾K5‘â‚Ñ�o8ÛO|e5Z•`JÍ|?“!ó™´‹b�Vb™S~…»¹4a7²zõùg1›*5öv&¡Íè�®E‹’J€õJüŠ ÂF䈹`"Zì­<³é«Ù§]¶Û³Pe†f�ù¡ebÜ ƒUáë‘ûZ½uâ]Û5tÏ…XWÆÙ�/¾ÓõEX²|„·µ‚ùÅA é29å]¨ëò¨ƒm¢è9YŽñ·ñ{ó/ît•NÕ²“ÒPkñ`ÚÃì©úÔw÷N«pÜr"‚"¦è k^ÝÜž¸ao¢Çµ„ÑÓ—NoJq{%D�Ëíò¶DÝdh0"7ýÙ�¬éÔ#ϦNJÿé�“Q}ÿJžslk}«A¹…寋¢µq‡�]=Š,OVËb‰rYÎBè6µÜCzoÑ`­N�˃xhIÙ†À¼Ë knÔìE Þ ™ñÝ?¸ ;ä@óû¬g$¥úˆZ2|£G�r<ñ‰+N+f¦È˜¼g)O³–†óíSÄh˜ÅRæ·V•¢¬™cærB;ú½uu´·Jµ½‰ÝÌ0ök Ï””Z”Ð(C zY"üÎÛßž`œ[Š’gtµÙÝý¹ögºgáh‰¥^Š»%,ûãl|Py•@Kòh›÷6o—ãÀͨŠÕZϥ؄›Ä{J&Ã(·AÔˆ"Î , <¢,Š  &S@ΕúFŠš6=fÝžŒ×ÛÝ)ë6ÒP÷5™m–9¤îC;ϲÇÞMx=9<44?X,›ÝÂÛ#îM¤¯B9ô€I…ìH÷5¯Ð�m¾¹œ,ë4» ¤™Ÿªl®á:4¸n{}†±n(TXkØ=”hä¹�‰!y”�ý-°éŠï–Õåñ½ÆÖ›�H±ŸK‚)õj4˜,ê$´tb7¬ˆ|Í«Oãö=t g_wGje<#ÔŽìÂôêUÚ”Èñ›Á¬_zÂé|º �G‘±Ì@ °�Eç$ ¥š~£"[§õ(**-ºî³1Vn„Á…›R&<×èF£Ó·.r¨¾ßìnN;5]p.> Õúf QFM¬‰‰'ž=GÍKgT)VÕrêTzTy ¡åÖÜækÇ]7—eà22ÁŠ–²)~Ð[€«¢E8ÌJ÷¿µ,õz˜ê^‘2zÅ9#l�Ž«ž¹‚Œž?î%a;’4?˜0aÕ?„«$ÏVíE›�[?Äc5{…,·hŽV¦Lùô˜ÉVDÎgñl®u£Öø#ºXVW26P½†BÜ:%Ì–åŽU�Q–ÉRgPÔW)`1ž¿ø]‹çôõÞÀ°ÐOsoíÅk'o\rgŒ{÷KÓ94Yöø‡‰¿~aƒdÐÜcR^8±�ò‚‚‘6T[hö�z#»h|“êm}lŠ‚Ÿåêß:åÁùk=õÞKqévZÏ«¯»k(Xû¸BnÆþ÷†�Õ"~žÂ=ÉoŸFÐͦçŠsNí°3ÀÃŽ”'A -ÉRéMÑÍ�=Ç€É O>d›Ád¸‡¯Q]Å"Yš‡›ÕcUú×ÿ±§MÛ¥h©*<–šâ‚r1‹sE…Ó“/‘È'‹D§ 6ôq8q‰_`æuÓ‰@={/JôìMË5Áo`>óàñ³ÅTº H óR".ójò—8a¿/ø]þÎ܆bÂ8EB{Égé¾ýE*~¡ÜÆ0ûÖ£óª4Œ÷aÎýöÆ/�´ët_b²¿†?êñØxñÊYàè5cÌ�ñzpCYàµù7Ÿò7®âÙlYMj߯ ûRÈPróÛz�#6‰ßÆ–þ"mùú’l;ÍU©„µÊô_$&ÕDœ¦LÂsý°]�ùHÂÚCJHÄe¦ ŸQ¹½_F´µ>`4@í¦ ÐÐJÎØ`Ý\!yæóYõu�´—©ÃŒÎ3Òaâ€ÏO…‘Zð|X‡"m$å0õœuo5‚|ÄÓƒØYÔ“e [ëð( ÁšÁãÜ”^NV²P½Ks“Zb@¾é:VͶåSõŒœv~¡®üž$Òt§ÇEF�ŒýJaˆV¡°üÏg³�ÞæÀ¬ÝKùyúr…½•Þ©ÃåȺÁríïU&}sŠ'Xp²€�~z‰›*ã[ 9ý[3YW€51¦j‹âu$âGNÉÆÖ$ÌŠBE‘ÒGçÃcD¡Þ8g¡lÙ¼øM3½„>B…üÒ!(`‘=òŒU^[OûMå£z d5Ë,ÔË3¼™!�ÐK¶@6]2€² �6×�w‡ë¦?`©è¸\è>-ˆ¾Yq)÷ˆ*öI 7S†®"Ÿ¶1¥µÎ³pœF‚5üaþ�Xìr®+¥ ±Þ?F%¶ï…{dP�6{5ÛÍ��Ì„iîPù+½øoÁ{·ZÐlð×HûLSšãø avåÏ~“4çm{iÛ?Ê’GÏmUì¸0.–­u9¦Uñ(ò²©sœCš-G�Ã{%,YWYÉq_:&ïØ§u’ìP®˜IгÆàµªÃ0[å‰g;�«¦`vÀ�[ÖŸ� LK«ãµgEl¾ž|�J%yZgèéëO‚ãS°#G_cP0gŠíôI�ÖöØu…–ÏÃ]cêH�hsmµ°“ ƒì¡,n(¨ ¹ßã’�o œ”±W}0ÂÙ€¹e^‚yö¶ii?Æ'\·$™ ¨4^^nüåÈ#ÖÏœ¹jÊ/qÝp~0W?)Ù’b‰¸[óöéT'b++ˆæJë«Í”eÂ8aŽÆ1‚èzØQ¨®¶Pì¹=&¨êã‘óÎ}Ži#VonèçŒàhjßA¤¯‹¬%_ZY0¦1‹MÆZWLæÜ"6ŒL¦zb�>'âþ—4iÈF3:ªðl‰jæ{ràgs”²�Cá ¦Í‘Zô=Õç¥3MâwÖ´ž]¹‚É�°Ú: gO ºYà‚®�)cÞÇÏÍ3;\F?à?Ú¬[Þ˜�0¯vËoVõM�*ž\5dÅ"[µ™r�lµ~ƒãNµuÂÇÉYU+(pÄô¦p‡3ºž÷£SâFYf,§±™–²� ùõJäbÈð¸o¡Ó–;Ä *ñsš¼?‰àωu…F3æùbæ¹]îMiž;o„ÙuhÍï ¿¥®¿lFÑö§x®<¹l»Œ$šŠ{Ç 5rØsl‚ÔbåШ «�èÉš–¨I;iaMï0pPJL\DéèeØ&h›*Öÿ„[p¼ðš|pðÜÁGUü Ÿå¿Í-°³îVÞ^{ªð؆À>¦D” ³êá íÊ{È8²yVû;€üi´ã>m ÑÎm~£».ºì§Vi«ž÷{>ß«bï]¿�ìNþég`øn•ùëÝ {ggNøb#é,d‚ü¥ÁWA ÆGP;ÖóÓ"¸·…iç[-(Í]Û—ùAÌ¡ 0F9�ˆR¤ü8&ÔBŒ•òVÏpqWµ¾»™]KüFx¥Ú''B ²+¢pœ|)¯a<&×3à‘tÚ8ø¥0"–4D+ÈÃÄz0Ñ0ÚdAˆ÷ÁMÒm.�|9ÄÆ÷¶WŸÑŒô›Ëí s=6J|J‰ñÓ,I2�< ¶e� ‡¾ªê(dÞŸV¾¹.ª¢%2‹´ŽÁ_Õ^S£~‚=‹Å,á74ˆVö'1dGB¤�1‡±èå¬ÅámqG‰ºÂ„óŒ¯?ø&‚Ð ZZD ,­ëzÉw 9ù]vÜRÜcìÜOî/‡•%FZÿY`Ä\×ô;´¿A1:´µ¦bþ×�F~x¬ }Ï |Xœ;W4›(ä…C}ó…h<ÁeaB8¾�dÔ‚õàXë‘c¤ii}:’xDßùåD�Ö{ˆÀE)©g×ÑbåUšzÿ‰Lõ˜8¢ÂˆU%ëÌqúâ,ò™ùµÜH¾­E YíºgÜÿþ-^Z´ÇWÂ2®hŵ&Šªás©,‰ªâ¤Ýö¦�sma`¢–ÿR§Žò}14{€l�Îf’:ydâ4ûñ#½ï£o:°œÅQ*�ð'“ÍfÔËw¶N$ŸžFwNP1Ì�â³¼s�'Á ¼±bÀÅæâùHÇ– º;6ŒiUoaÊÇ›¥„!²Z‡z²yE£ø!#ßq¾ÈcŒH¼óI.ð\‹ƒÌÁ›jGæšS,}¯cz˜}WÆÅaþÉ€[$ì„æ¯¯’ø§¦ƒPwOãcÉ�Ø›Jv×S@ }Ìÿ§‚Ï•e.Uh¡©éÛðâìºÃs€=!#ƒKê%NDúçbƒ³ŠT}ù¾ÌÛì¢<Åæø?6nþ±g¶¹ýÏ{¨Iö>ò.šSêy©& ’¥}äFUηµ_a‹—x™n%�L‚~¶è¯$u€O¨ þ~H‹¯ :óD�±£^Bï°ˆ1¢ï{2øþÖ•ÞMèYénÛ¿€ ´"ëîE$Ö”Á´cŠ–÷áì߈[`ì~²Ï…¬§Gt¤ ñ[¶l‹u…Å dÝ-¡4§>ÁéÏz�ïá©…�xV¢y© �ž„”–ÚÀMRö$ÌoÒØg-AõšÆ~|hL²&—‹“¤5lÞ¡ A§Fî|÷Àá^g`\EfÂKÝ‹ #3aìȹ¸äC‘H‹NîãXœ›œµÌœúÓ Æ8∳۰B­*´ö]0^…<ÙïÁˆÓÝ GîÎ6NÇË…"Z*EÔ½F2˜¸�ù@�G£ª?£n,øE 阌b_1XîTŽ€ìÖæàqëS5_  ÷ø µˆ±Q]ŸýÊvnB;km_p“š@—ÍJ ̾˜Ôuàr¢rÇK&‹Áegh›*„Ôr“ô܃¢€­¹ú£�]ØqeßG>×Ð~N‰=9|2T&èÚi)ZMVžÓã™<ÂP俤d5¹[ÇsôeyM3æëÌ}±¿>�¾œ?¼ø²y¡>xh¬2GeàBÇ&1vPp`Ç ‡1ûâj{e‚@Lt b yñ€ H¯ãðY±Åö÷@'„ŠŽ ,ÎUÒÍÉ´‡C±óÏ–¡÷܇3-æq�Ð5õ(t6B­œrRi$:»yÇw>Dñ7ÊIÏ1.pclXŒwsENŒ�> ›~ð/ú1B>ÀbÆNûîsª��mŸ!þH—² Hl¹z4ßMÖñ/ÍDdÆ¥úÄEìŸîa´2Ÿƒó¥Bã(¥–�ÁAž« Š#=¨s)Ì'(•¼~=+aÕZ`"›·Ž¢Ë‚Ùñž ‚MR n,ha©ýŽW»…÷‰®m�•5�K>-ÑÊšýÌ¿ô[o¿Ç7�±§ }I‘ÞG~ÏœÞÔºéQ5JeBuáÛÀôô$¡èSΤôÕÐ@Tà6Fêëù]Ö\÷Ô¬]ÞÐÅAÎl‚Ÿ›ß�(å F(–lÁÔÇ˱ d̾�ƒt~ÎN8-ã€c@þö‡$ã1—¨õUà’ÚÙöt¾L³®A¾1g0AAuDÕ‹I‘sPÙå67ØÁ á®Týºg…6;ªq‚ügÃfüY3 ÐÝÝ™ûæcªF‘äͦÝ~PtÓŽ§#NK.ÓöÈÂ$´›b!§ytþjˆÂ^\²§èQ!s ‘µËÏ–oy?â{j°.àÌ18ݵëpV— ±Äî\Ë­Bï òEæû–Ò$E_l39­‡áQÊÈ?EÖb3>Nz Ì„�’U‰n°Qo)-Ï�oõa(anCUP�o'æh«‡5�‘:9°àçtŠ?¹ |ÄUØÁ””+;‘ ÌçMb\ ò‹tÇ_B3ÃþÕsÑ�2¶Éºõ„[¾È‰šVGö{ý�•9\Ü?W¶-°ï¾Øë טá.�ŽÉ^àæ¸�1=o·RÓÑÒïBõ&Qbzô”‰¹é¼&_mîÇ%°Di��;tÄ5¥µ××ôáFÓ´kÈ]�膀n<Ì ßZqïømcMº­áFfr1ÂÀº‡BqÆ}Ô¿ùvêì #YCÙvÀ)ä`*(vë?Œ r‚rùÂ̇Í:�¿2gAZþâ´uÆÆÄøe‚¡™™Ä]\LÒ�’ƒù¸C8Èh¨fªü¼�)ög¯ÿ,‘HÑx;›7ò¦öÎ8k±Á4k¤‰à? „—}@]™i™�2›¦—¢±p³¶Uב2ÔÕÝsúÃÀWé¶�ºíjgÏ ‹æ&}13*n)‡¡ñW~#Eº/†`ôDMQ�Š´!Ùϰ™‹ö“±€>”L§^i/,1à´(1èû¥>®ÒÕÑ‘ÿ…!awˉ·k¢HÎeÊG\+èÕBÖ£\3!œîæª+ò(çö�ZÇ#|ÇzÂJÀœH¿õÚi2‚ÎñÌz™]§B² �ë�ÌÑ)•’q�Sa´­·È=gÃåjÆÀëQÄE+SØ~„(R­Eïé?iøœ‰ÏÜ/þÃÂA)ZX7ùYV‘zè½Õ¡r* nƒ X_ÌÞ ×odÐÍMªhyôúÜsÅ^¸\P1{»$‡Ñ�-–6¹•ÂSºÂÕÌxÿ„¿ß†AõU­<3EEš&Õ*€GZ¤Ü´’r�tF x™“{m]›ÿ{D»‹ÙüMŇIö­è¨r’¬š ”ŽÐrÁÊòß=žÊúá‰Xö3Ê/x¦Í(�T6Ó U-[ʽ—Î4 0œ´Ïx©ìšÆ_°”sú | e/Ó„0Ûއᜠ…×”$gi‡¿¨–“f�A|3âzYÆŠÍã³ÇS_¿nKRÓ‹•-³ÖûñòÄ÷m¢ƒLo†~W¥ øn+n}p¶Üö1Ü<úm_¸c1‘Y áôŠ>×Ü•Æì›¥°V±ôLYÆ2Ϊø,x«þ\Á¡üc¢I2˜÷ìÁ\ {Õi‘V7šRžnõ3Äp¨‘Ýû:þHªúã ÕÍÕv{:¢›u‰SЙ•"Å�M¡ü†ÔËs¦ƒ[õ#¿è·ìnÌhLÚ!\Ô ­_§Ëj¹•:Ó‰¼œõ)�HFΗ±„Žw9ÖZ(ïÓz�² ÿ ö£ry�wß¾½!¼Aù¹œ& ÅGeô걯¸Ööì’SjQJ,{¦A²4Bdª\çûÊä­624®0l5þohrRD8n.¶·ì9.·úó¢g`ã1<ý€îë3{�®Å-k(m¶eÂLç½Êâ™2hkðX:S =ó»H»˜ç=ߢ,*bl\Úf6$‘îÓ¥z~z‹˜ä/Xü¢^Ôǰ³õ‹»Ð4iRWrDfÇ÷¦\ãx`Ù܆>°ã©6­ŽòVªÌ(5)åƒ8ûa“D®6$¨½&ò"Üi}†K”hoéUs^.¹ÆGËÓÕëxƒSœP¿�ÊÔûAšÌçWg–ýÞ�° ÷&À ¯`¢ùvª45ƒÿø„â9g• öÃj[›À`ZvÕ³èÙF|צ0†í t;ý=�À+ÚÕé% ïæñ5œ¿v••f¿9òèÑæ….jvm�Ðm¨÷>Ö .z H^Zš.! å’ôi~ØbãI¤~±åîù¦ÿb±\þ«; f2Ÿ�ÆDÅkî®B ,RÈ«¢KêhtÅ„žÄ¿SCÈ.X¯Q`g„‹×ãþ`<‚ÖwÕµwe4è{¦¶G+Œoj²6—4Í ÜiË‹Áåâj8Žê WuòqS!*¾Zke²û-,zØ�K®FEã8Oñ¾; ûMÊÄ“³þRZ@]Jj‡G5•Uê¡ gÞ€ã÷ /�é�`/Ej­'cÂÅ=�æh^˜ij> 4ûy讼ß;@W¶Ï›²“ÉÉÇýk3Ø3ü¢++}ØÈmE›©{ªûÕï{Ÿ‘ÒÐ!—�I1�•Ùãc$DYçJ\Sõ1ì?jëáh«±jê’¤Ùˆ½^UpV½ üCöH.Œ8^ÃkãkwOá½JœâÒ»$nvªÅùo”½¦¯gýEáêq÷rà ”s+Ã<ø±&v`–ý±‹’‘ú�'S›©N1°s15‹.{i�ݦ‘…Tw@¸hÒ—”^¥V»å žN!}¢û\Øã¿”à5o©~@¨g9 W‰¬fDJ$""™��³£ z©:;‡í�f�•SýÄ›Oɇ6e¼a%—~ÍÅa¾€+^󺸔f—H”]Ñx³EØc«"éØÏQ„æÙPMÓ»šûöó}ñì·a¼ëïmÆ>åÉòÁOªÇÐŽEšsÝ NYU3tµ¨iúcgiïL›¬ YDìN°ˆò#^ê8çœN];ãâjò8B]§L5ƒí^Hž7J€ú¹©¾Ø"["ªUÝíÃ…>§”–‘�Ëd\Þ;9hÑ:KÖzºWÁ_Ütâ×ðhý‡‰�÷‡½˜TÉ@ôi`Ëü óþhÚ]U¶ ·fsƒ®Ï8yY~8-ü“®~{„„¶n:žI}Ïμó[FþñEðÛÚ�ì,Ê}�[¡Qz=å$6@±É�<‰Ì½gàõÒêþ¾‹CÐ7o†ùB3l´áÊf|Ÿ�t+eÎD‘³x JAo„׊Ün¶FÛcœÕ{Á(�~–=¯Ù7yØö<äY!- YÓŽ/õ¤ñÑ]ð±Uª5ÂNÎÞ�™O½e±I²÷E¨È6°÷NŒÇ€aòû0h¯ÕƒDçýÚ'á×:_mÄ|Sâ¹l¥¢ Š ×§Ûiåh�"UýÃ̦V‡£œ£äÌ!ù—³ GS%fÅv™"¥Î´”–M÷ÛØV.VüŠðCùµU+Þݵ„"Bu{¶X âÃv[ÕêjPöZ_™%ëDÁK”™�Ö½ÍkIŸm8Ë©éœ\g\UÙw¥”µß­[ J Ò:h™eÝæ°�F¶ïéNF{3bŒ~Ë7ÖmıžÕ†l²™âÇ f� õo@ô=º°ß$lWš»"¾Uä.þ=§&fj@Ç«-«1*b�©ŒÉ1]¨�—;qZÙ./f`AùÁcÀ/1hù1ÞUuÅoPh-€Ï±õzï{ÅüP]ßyvr¡2–˜©d#™l*Sé6&÷0o†+˜ÞwbgO·UícèÏ�'½Ùö+š°š¨*œ…è‰|†÷í y0cÄÏ—´kÙÁSá"´‚‰²VŒy’¯)ßb<¡‰»kupp²øÝ Åϯ¬êˆêY^ �ö…ú…DŽp\ œ[êܸªAF!&&ÞµdÀÏ1Y¶ÏÒZÁ©-“óå¶1Vï¬îQ‡�“¸°Xœ¯Ó¿$噦´�æ‡1]¦VZ3ýåe ”Ç5|ïãy0Z²þV‰HNîäZÎ’Âé Mý#ûꚟê¥N¯¤ôÞ0¨Úý'\@]ŠÓÈé³\´p-òŒ´-ë:RµöfNOl‰m¿ÒCEZÁÔôMÕ‘ÜF#ÅiÀvÁì}FÚE»Ê+þkÁ“0>—�äñؼÔ3jrYXY–éé]=í�bOT×F3¼v²½�0G Ä-=:aHòÄü‹§sç©©@Üqâ E3,\FÔ­4ŠSe—Ù[øá×n¿�)êÆ)c¤ôGÆñ5KÃåLa{ø…C«þ4ĺ?6›^$zØÅy‡©t,T—rÁ‡tøcB|ö…U=j76´ÓôOÃ’sQSJ½À20¡“‚0G\/*ƒX�ЈJkVj»hQ0�ð¯ó¥3¯LNÅó::|¿{9eS�<Ý4ØkÊ¥Š�ëŸ�œ¨óâ­|Y)…Á]<¹ã/3 (.âÁç6ØKâ•fÍÂgv9×Ã(T¹~hÍ‚2®†GaÄcc1¨º1§L5ª2êÛRŒæ RS´pH9ü-Ž�yýõ|Vüjw�åj´h™ÍÈêm:wf›ÀêPùIÔ0|lHTÓ´Þ+É2—«GfRÔÎÁzÂÓ  ŸRÛÝþ{œe—�…ŽÄð!z6¼ÈÃ>UÜÁ0™}n^ÍÆQÇÏ µsØ“-eñV)>|GáDj£•X?ºD·ë\vý·_’=wdèQÃ>™³°ô Ê-›IsUƒžö…<§`h›õ–>¨>«pj™r¤›}ÓÙØ0 ¦Ý�Jùñ %L”˧a“³™ŠžŒ`ó•0;Zh‚ôÖjNÜס¦fߎú=»$§[Hí+øPæÒ˸}psRªób¹²r¼0mx\}ZÆ4{­ò½ 4&`iüjZ„i‚}”í[ìåhÁÚÎJ‹l/Y;‹—@4õO±íEÆ9{↰K¡ž?C³”ekŠ6�LÅ«¥¯D¾¦FÂÖIÄå�ž“=6¦´ã Ý/æèÇ6ÃLÕ(vWL~‰¨…ç:ö߈ vRÙ²kk×W½Û’(5¯á˜ÂrV‰äÁì1W|£�¿ ÒINÒü:‹)^KƒZN¢`îÕ ƒ7?>CºSU�C/~^h=9 ^‹©Rg´jqÂZ&&gÇk†f±¹1NÝ«`_<ÿ—fC+ŠLðI3ñrNfÒióm%&™[‰òëñ…Ì0�ˆìÊ;–u˜ø—¶xÖá%z�†3øøM©8Ë&+za²ô¬~¼à):²Åã` ²�  8„¢'4«X…ê±²Z‡¡×V2üè yH|²Ø¡¶¼�1"_‘ŒÖö³»ÊJÚXëÂo"£x7�jÑbì²Ò¬f:(™CY[#Ë6«�†¨¾µS¤@èa¡s¨– ÝH·Ú¦æîf[†žéêö:ob’ð`­ÒL²<ÙÜÂJ#ÔQKûyÄlVÅÕç*:Ý$Ôwçf¼€Ø+hFJIÂ;¡]d Âȉ>!W)¸Ï;Öx9½�=�ì+Ð DÈì±ó*‹2ŒÉ,ÑkÌ“AÇÕMÝ[®å çÙÿÌÕÈ£ÝOròÊ\bÚ”orÁ÷ôMt€b# vVõv–wÝÛfç 7hú\Å ØÚiòMšÿº]÷ªë1�§o’Î'WÁjVU¯Ãí×jŠ'Ç<°ÑÕü(>jiˆãîB±3kX ÷6cûªŠˆÜ· ôÞæN¢où¾c¥ Ü©·Õàpžc8S.Iiz„ÚÛN¿—w‡õe`Ã!C½ÓXF;Âcòb�M¼6{ÑNB°Zf`š¤“¹Ë ä}llÁ¶ +íçAÁ¬L唉ԕez\åËrd˜ÞàÃÝUxÄ4ÚíqîP.ÖÅùèû‡ô5ž 8Vžk5ž*äãÄzï&�Wy†‚}™lAxõH^¡Ù'x#vEòIÏ‹1pBy~4«<2ÙþÝÞ³¼ÖÍ_�ø×£>\$üòªØ}˜mn­�dÎØ"á¾Ùj< Ó ñ„ 9³ö©µà¿Ñ‰ÙuË‹¬ßñ„K"õ1à,$$AˆglÚ£�–Ò´j>ˆ"ê'Tõ†'�Çýe¢GFÈ÷F…% õ|ÇÇ6˜ˆ£ÎÆÉ†H;ÞZg»4U\NŽ \Î‽ £” ز“›¨ï×!ˆ¤rR¶þ)½qãï´ ±Ö”¾V''Ç”pŒ� ILU!Q­&s¹^ȼ’, º`¾Úªk±ç¡Õˆþa%1Ú ,B@ë@þ}ò†CÝúÃv,GC¾ç(ÊÛ!^¶ùê:uæ\¹�Â(�ˆ½›Š*Z­:S—«xõ4^ð(}ð Ÿ ·5ç½õÄ–¯33 >¤( ßq¨/”Ìn¥“Bà䋌ªØƒ¬]7ôñzg <”V‚ åØË&Õ¿Ú¡œ­Þ—à k¾¾º.½Ðâ*c³ˆüy®Ú†_‡ ʧ GÑï¡_ŒiÁ‡§æ[™ys$Î#—ëc蟠¤·Óö×é�ˆQË��RÞ²œU–Øq¾Ò¾ážŸÈ´"DÙ8À^86ÀSYH��éÛ�J¸É|I©Œt•Ô@‹j[©¦<¢ x M¢šÍÊ x›‚ÍÔ"Ü}›Þ’´Ûõ÷’]�öôDgÀMR¡Ìÿ£xD†b™Ð #YÒLDà‘ù�Í×øªÐ�7�Ïôëê�êÛ�3˜„p5MtVžéçið¤œÖ8 �¥´x!62pÏ,ãÔkªoĶ—œŸ“ÏÙà<8”cήo�úÏçŸ Q)Ô!‡üùÜ‘…+iHi‹Ày{²HLo<„iÆbö´XäG¦�E¾¾odo`þôÆ¿I’²þ=K—p˜ »¼çÆq”÷Âzì"] �wŠÃ†ç“½ÙçD.cìÓï<ÜŸ£´ùù=¨è°ÆB å®Æ Ìo!‚ø<(š§H¥FBh¬£-ÈŠB—N*}D öò…@g³9rˆWÕ zT²ªÖº=¼1j˜ÜîÊ«jäžÎûÊ)Ÿ5’¶"”�Bz¦9ç~OxgÝË©RàJ-äA<ŠcÌp‚£Û±@Ôç¸oY (þ%í# IÆpáŒþÅz˜Lnºú›5s”Ež±NP¢¤D¦^ÖB•[W}Θ×xg�]æËÍ žä=Wüõâ+l-åúìJs·=ͯLg&! ¡ÀÍ�t±Òd!Ñ�‘€sˆ õ.:‚ÞÝiª/“\Hÿ¬ú€PŽq°>9iG|‘ö7ý�™]ŽˆwSgËý@@L²ÛÛ¥ŒC»š±wÓç´/Æά¸•<†.;"BôÕ6S¶S�jdûR‹åÂs“mÇ9€ÈØg íÀß håߟö’}¢²' ÏBZýU—g¯™‡Æ¡n)Ûç&p¯b<¬ª/¨ ÌzXðŠ"¯µ !ý¬ÏPyÓð¡qîãJU܈#ËNŽtM (kÝjKìDúɘ�¶Ô¬¡\ KÞî/ûªèªX•® þÌ&<´ßУ׉…Mst‘’�4¢ۜÖ}}¡À %ÌîVЍ~òJÉúnOî ¬œOä`~¶…ꦿv� à_Ý«”"чËüjäÛ”KR~¶ñ—Õ+åy\À Á““al¹MÒ•Ú”élo4¬b  xߨ‚¼ýíø+¯#tçU0ƒ›t9D×ä¿×‘¥â ´Úy%£EºwT*%¾€ÚqbïìB!�½˜U»6h‹ÑcÌ9GÊêKâLa*Ý õ:ô&û8[~0~Pña2G™™ÌÓ4d `Š5}õ¾�‚ SchNÓt¶‚«ƒmoa“'¨ÔKyØ¡éjã%Iè1ÊÚœ²g¡ô�’×IJvh ëf(Ѱ8À8#hˆl‚N°yr¾úuRǀ狣fÒ–‘:o3Ž4M�H¦�â‚^¸wR“…O –F [y“M`×OüŽ{ºN–5™o‰\¾›o¨|/';ÂEh�BV¢¯&�ão`‘e€Ç¹Ê‰Vû ¿êwÁ.-)ö¯Lgo]R`9t�@_Š×ÅÓ¿Z�ð 粘9üÐ"æø¿�ž¬‡(Y?)ˆ j‚Ø µå?™ ‰ñceEíCO˜³ CR»6söE²ys�¤KË…¼ÁÞ)´%ÎGæ©@X±"WÛâ�ï¾9ĺ1deWî_�˦{ýÌ®Ìjëä9lµzlh⌟±ùYr£ÂÅâ[ÜC�¶¬gô÷óI÷ÚsÏ  6±w!h.´6üÙÌ0xa›ˆ æþ葪˜.BÆ�P§®9»ûƒãqXɽŸ^ºs2¶0b´¬RT×fÃ2µéŽCä½w¯3¶tnã Ž…~îÿR›­¡ZëPI#¹Û«ù½©Ú4¾>í*DXÔn§æ³@MPdµ‹™%8kx²X@P‹¼”ÑÞðÖ^ÑN¾¸í^%F›îÓ^aF>Õe}1Ê ÷L×Rd"â!Tùno[ä%†óʈa¿¶¡­‡q‘„EÉ]@“u‹z[Údê< é�8µkæv°éà‚|Ø–_ 3Øæ.JÚë>�½¤ûª†Á³�»€©Åï˜÷Ÿ£A€%B…Î$#?ä…K‹éŦü¯¢–3?ÂþeN 2U`Ä–ZüÛϺ¶�‡Aò¨K†ñB†¬ˆ[ÙÕâ xÉåYìïÆ+Ÿcúd¹)]�4r¼ÿÁÛ3ိ¾]3ŒÉ¡iÿK;yã*ÙËž¿Y$D¥ÑŠc ÷x·6%Âà€FkWÜ!ðý‘µ§r°Êß( µ*i¶ëõ”Ñ, Ná©Ã$9Òq;Ø kÂí}ଦ˜ÆýÝõªL0eÜû6J^¼y„ÖŠ}v&œ-XƒõDH ƒ\id'£ân›¸å¯5/…ÕæO¾)¦¨Š.Ñ…£¯ÿŽG‰¢Ú“°ó�ô-ì-]§lASTbP�V øßçÅN¥Á{Í î¹|} ×I€�× fI¾hÙp¿_É'Ló?ñLt J¦ÆnÊ6–ÆÿÑœ!hS.Ý£.+7XŠ3ƽ@g÷Ø5t¶Šb•#ýJ�vBÌfC}ct*oãXå»UŸr0}Gxÿw¾|òHFùï<œê&ÀsËÄÿÄçü�fc{œ\+ i¯gäíæùãÃuá\UT›�ôÛ÷ŸQúß°˜»P£å¨YÆ×%OFÒÉgó“›õâ=™Rì×KzËÿáëüèÜy5Ó‘-¨ÙRU&.ø‹Øÿ�/fic*bêlüßýdÖMiòtlhZ.+æ£íÈnö$µÆû"^M%Áœü9.¦Î.t&†.†ÿyÿwšb¢êFªàøž‘ت÷’=þ'þ×ÿÖfsH}á_Õ䀳EýÊ—lYAzç0Òº_¬ž°Ø(_tŽG‹²œ†–*òå¬Áõ²zjýþ.qo�÷è#½0Û§~ÊõÛzIkÔUý°VZ²œ-¸q)ßìè0ÐuÈëâ¾G¦|d‘’n”_…r(DË饮u{s#oé*£¼?J6¼VuÓ¶QÏ8c}–5õY®îoùë™Ý>ÝæˆfÂXB`Ž4œoäÌ�ÞvmÖ§Ñ7o»êßYS1à”¥®ýœÈ´G·Š�kö"ÂY‚ƾ*RN�ú/Ì-�¥ñÉK1±Tm:[RttËA'.ÜœkËÁ-PPfÀ• ÁAX�s6]¯¤í9Cî~k(°Jü“œrE†T-ãna‡Ayé�è½ZŒè;Ï¡&ß±~ÉBŒHÔý9L VDÞn%x²7]>2€ÏpŠÏÌÔN/Çä®?ýHÏx¿õÑ1l”¥�¶[#¾†Î^Ë­Î #§ø¶be îÇ_!vPçsNî%±Nõe[¥÷QlâåÓAÂÁ<®;�ʧf|$«Û„ÈD]6.Áì3-XZAôPÀu㋎½Ø§PµO’ô�¼S"KǦUr�á"+‘ÒîMNª'yJ«í:´[ÌÕ÷`®Îö ¬ êÇRw|œ—ß9ÍÔ‡áèQÇ�IK¨l[døˆ‹�+…k,;rãAÆTBd.zx÷¹Zof7kõ\˜”HéŽÓ dñoN|”‘£iiâ^¬nÜìДb+áZ ü‰ýç”ä¦pEF´\š"Žzº!%©&Ë iÿÆÑ?T¹Mâ›*ƒÇqr�Í(¨\;ð î�÷@Wá>Y:ðjÅw¦8ö5¾¯æóZý¬i yäЮȕú ‰3/ ñ+«Ê/(ªÕÆú¸€6Vª*¡?|nadö©7!LljU¶ãK®©íst@ˆkÔ.ñÀÚŽÚ í÷vKýsv0óšíæz±'ÿò0òˆhÄ!3ÏOáÜ·ÈÂç5�o®cB½¾êSØrШ8%ÍSÑ6ܵ–üŽúŸ¶ÙÄyz.U�é Tˆã¾»'�VrÐé!¯ÞtÆ�T‚}µFL|ïÆ÷¨_ª·uHiÀÿLÜ¡–ùc ö«õÁõï ûêþô™Ý×*ÏW¬ÉÈ¢µ}ªœšêáëf­¸\Œs™ôèdãçÿWÎlsÈì=aZ¾÷?ù7è¶uTï[ÍÑq%ùq7á&ÝëèûtGà*× ÷Új°7’�“,³·CIêÕx #léWíIH[þÆÕ6-fª8Íææ©Ÿ'Zóü†¬ƒ‘]äBØÁ@÷ÌO§ÉEƒ^9`—%š³ïc¼‡¹<²êknÆR¯ð›£{‘ˆ·µàþz#É…êÖ�8<áØÄU/SÝåã¶PÊtŒ°vðUi+¤4%!qàþ~õÙØïÁ»ñ"ÇÚ“áãý­Ykø÷߸A€�‚>"¡ÀæT‰\ÊÍüžåQz•F@ª½k¯T2?÷Mée¢YA¹Ó‘>ʋތÔÕòœg"ÛÏÙª›*nMdW…Ï´ßéCÎ>Õ„ÈØ ¼Ù"mÛ¹@ƒð¶-O*‹òÞ$lß+XÁ�Ö¼¨^°sw`ú !'P’³öŠðô-¾ÿѾhKB‚_²B;ä[qB›g¨v¾Ä»”‹K¬¡õÍý@›‰D4Cæ/J»kêþ ‡|CÉ?á*Р¥Ò†)‘¢îéÖÍ[‘(g‚e{,LÒ�‚ ˜^cŒP¤ÿNé�OV+y‡‚¨§lŠ‹VSh©£»Ôõjö8ÆñžŸìÓY’z!´˜&Ñ×Áz÷biš:–™ \ß÷3É/ϲ²B(½É|XEâlº_èß0ˆIŠz/wÏœB´¶#àµ9 á1´�Ày‹ö>4wè¹J‹I±ï”´ ÑNÑC…°†Í1?sƒIµ³ÁàyýŒ.;iù{ü»\1sv�˜µ¿›Ï³þ÷A—±€u�m㕬Àr:…›_ô¶NBœŸf"0@•»çTÂ¥þànŒ(Ë0¦“äGiKfjÎùš3©Å´ëžMïïûì$Ÿ®6»${d-É®¹nR‚ÓLÚ�-ÙUæ1ñŠÒŸCW¯(ÔK¨©ivä´K?@gif0&u…F7Ëz»ÝçVÿ ë•óZ¿˜»áÞ^Ó·%Ž;×Û!¿¯ ñð‰Ê]ôW�[Þeyé¥üÑë» B²S�ÉBÄêBf�‰›"oJãXÌ.$†HßKàQ”lU S QŒ$_ÄÁ$�\‚gZÚ±,ô¯âõ–m^U’‚)ë3"ï¸)%{xÑÈÅ´È(0C¬êÿ¥7‡ œÕß´ŒÑxÝg˜×�Ã'·bcä|Y ” È«BÀm*®²MåŒ~~½Û²F[*JØä€TÕ)L±âùQdã¸ÄWÊߟÚà6 7%(l{ˆ+²¬­¼/\Y¾A6 ù—,$~hi G9€Ÿ7!Z†vepAḛ́‹¿ç7Ĭ›—AÒ�IuÞúû>zH¤×|+©Þ+!Ï«3·ÓRχÛj*ó¦y˜àÉ,^˜ÑšZròÙ ”m¦€µõg¢4+‘J¢C´Õˆ’¨f}a›ä&D4 §¡èŸ·“ƯЬš÷ä£è'ð'PÊ…Äÿä}›º’“J¹œnÐ0OÎ8‰tu¸ÝçæÌ‚à LŒûß"©røZ²Ì"¶â@eÆÙ;pc4­t³¦Éê1Æm¾tÕŸïÏNÂ+öÁ§»ðõ‰Â’�£ÞÛ{Ù­vu{±lØGŸdêÑÓåLú@ú‘.·åP@Œð½ÁØažøVz9—„Eû í‚öWÈýjïìf«Ê‹¤ß„ŒV„¨ëÓC{Cû’ R1fNæ-° Œ�w’‰ë[ö‡“hY¥ÆoxgVk«jnfâ¢*¡àrváÛ’Êno+ISÂÿÜNEã¥rz‹V÷fx…™g«Ì¢ ZSÎ’éD¢DÊwƒ„Ç; ‘»f)ß�U‡ìLÓñ¶yóþ”Físý©�z?Ðs6�Øo‘åbŽöœ'=^çFG¥Rá‡úüº2�÷ÙAAóùFLÜÀ&³¾ tEÛ6‚ÍÇy·5Ð\»·”ÜjZ¤ÂyXÝyÆ2m)ó»ëàTý¡ú.§ÎÂv‚|Îôáê—€Â\À+7š·Œúáù‹«7S=cs×#� ¤z‚vâºðêêé­¬”• ö(Y ·3(Hô‰&^\(žz®¸è\Æ�¬�¼®8v:N í…±Ë�É€áâø/u}e{°¤¹Ëaß]Ó\·#Üèæ3WDÊ9¢ƒ½ ; "ì‚�dèõ bÓîÇž��}hÿè¯�¡&HÒ©5m)ŠKNa?KHãxZpœMôòjtãJ Ö{­»ÎèÓ/c¹æ ‹3]´dù÷µœá•,�p¨Y·nÐ÷<¥usÌ_vŸñ䆃•PUưèÀVœ±óD–­þº}ŒØ¡û°¬žO.ˆÕ%8J º—"Yák¢üPWÍABÈq³T¤U#aµ`SÄá6%~=î~º¹?¼&PÖjeÐNÙ¤u[äçùü³Ó5|Êd�+x‡çn”Øþ‘,’OîËù}ÐN‹iØh5u¶Ê®Ÿ¬eï̇�Ôz,錡é©-wDU»«8�.¿iÊV:{ŠîVÕ¥Á/-�Ò•_s¸‰eŸ”ÊÍäVÉœ]Ñ\öN›ª¹å¬†)]:î¿„9§‹¯¼oh$MÚ=ehóžìXwÛ§,’Ô Å3« 2R›Ùˆ¨,~�öîx•—(òÊ î—h+4=û¶4]7Ýu.Èuþë¨;ô lìÑGõ7iã³ é!*ò“´uó\¦vø[ “­¢~¯2ËH¾·—,ëVJ§àÀ†óMv‰"2ÛdêCÍã1 ØmÔX/5o¼­Ô/ä°"@aÑѵ1„¢x3C�Ð*‚ ew¿�#ªÎÉê‘&ˆ¾;5vÂgÜã�Í(ÊehÕ]˜µo¼™³ŠŒN*i‹¹À2Lšòû!HJ?¶=úÍjïìÔ‰“ ï·©9û%4*èYj%Þî«åwT¨¦6†BJ´œ< 0OT"Ø-ÏÝþø`CPÝ¡Ûü£(ÀÒø„¸­0p¢ã]¨Ÿ.V´óú|̸“R�:Û=×¾ì»+Ö’c‘Ѿ7Z‰~u¤#�¤;6¼;@á§=°MUÔñ�*Y¦"ݾ;±ûÛxÑ×IµsnU41kkôö+îFzNŠ)®4/äƒÁ‹„Ù=Âåt§o‡>Ùt�8 _ž¥T4Eô¿–jŸoµ÷«9™¹Û��+)¢§{ù×lËž;Ç.n Ävq{y¬šŒ®ºŠ(‡{Õ©­§'^Zš(bVЃAÉ1ä÷˲VRS‹„ÞÏÈ¡Å5ÓÕ*µêÑ›¥ð8P@ì|­Œ,}ƒƒÊRŸ³îÓé¯`LDùúUžÊÎß–šçœ2ãWCÕ_�¾GÊžœÐ3ßÏ¥/«p~þt£úß\wÃÖOø„cl4#Êk9ó"ì@Y�·â»:œ&�õ‚Qšx«iI¤D=V ¾j`ÔEòF^»bbNxE˜k'•Û=¿Žn'!á� Q7)ÛÐΠZ‘ÝEü7…Ÿš±;u7+{ÏäS×­MÕ}àt?+÷&™V i$>QÍ,Ì�˜±Ü'^.&þC2’@+jÇ`gT³Øù)BÅ+ï�¾Y� ÇTËÛ¬ïµì¦ ºÝX.7¢fÅ mÇ뢳ÆSå.¡èåP„!€ùÒ¸ê´öJûsÐw‡—O—�1 _IIÒŠ¦DåÓ }�æÔÏ€äÜAÆñÓ&B^]ê½Ê÷ôyÛøœ©’«zýY|‡,Å*Ÿ7Ü©» Ú&Hîç¹ZÉ-ÇJ2iC„†{À†ƒmª€v¾�_å†ôüš˜´bžÚFmm°fB�F†ýïJtÌpðÞ׎2´J52,²‚(‘6>åGWåí!ÁDÏ�å}i±ELG±!ñP²5²™i2‹à÷°| 0-=Ý%GÅ'û[8Ï;/®ËT"ç…9ç>ùœî×Ã@ñ~…Ñ¡d)uqe¨å’•Øé~ß —0.Ä«è’ -2$Ê›ƒk ¦ ÑêU‹¶“hkÐ:ŸÙ²Üºt�‹Œ�¶äåŒ?IâMS"ç [ZBFþ�Þ°]jÙý�Ê<£\æ�áZ8�¨5xG¡ºB,?jÐâ;ÕE�!;+mÑœrJ.­bkŽ¥Ÿœ€g @x)÷czH+ÏŸö^KøËòÔ:N!KVÏW¯ùA=ðÚµc1àŒ ;€ô�6m|Ûð¤Ü_#Ά�?Û‘š^Ä.¸jr¾?)òG¬t-ƒ!á´å0ÝÓÐd9Ú þew'í€w+Ùs F �Ô œ–HvÄDLœ×Þ“©ñ†¸áJ 棛��݆] ²·Wcġ٧ß� �齑YaÄi+c§‚$Á…Ù‚ÅæWiåŽpÛÃ�ÊIx¿fû#°“’©6$BêæªRú`Íü¹ GÒìs‚„œ|Äm, Ð�ÂÞ…•M~½¶ª.ðOt¸¹øö=C›îK5v1ª*±^al7…¢\JeNãé€ý� ôì?˜[)=•‚’ƒ‡Šâ€ñåÛe–wñžpp(…Y¤n2à>SDð%/Ù€@ắ(ý‹æ6<;…âÑfC�x é䋸6¬^ƒ£ªäüA×#>÷¤wÐ[G€�ÍêÏOa�½ôJ |6ŒäJ8º¯•BÉ™Ë.RFÏ¥t,$cåL¹›ø°í3!EmÞ“†]Gåè婉Þê÷¾ÔÔÜ܇Jì6pqÔ¦˜‰�‹m½—Ñé�þmõ÷hõ 9�„†cI^Æ`n¿D®nO†4ü*ª&\vÌ]ÁnÏxœØ)?›œ3'‚b?µ…ÅOžd´}=õÙ›�ÑqÌJûÒ]ÏŒ)gø‚3‘h]–ܯ›÷¾3ÎŒG«¾CnLFÔ»\~í0úª�=çÖè-ºAóìþ®Q·n ú€·ay =oåÇ;IÛž`.á_¡X5Ž­^dæõñµLŒEæïˆ³ÊUv‡Aë2%zòQ`C´Èéªz¬à‹· íÝÄŒX $AJÆ'‹ýBmW±LOÙÕ¤Ðô£9øMþ1=‡W ÈWJ„_Öánüå>åÙžüg›Š¬p‚‚ø•%•„ê CÈUð5lc°Ç\4ÀŒ ¶y®P&\·I�7À|«±f·Û/Vî[ŒTË>N‹ÅÉöFÞµ¯ö'Xyêå÷HŽÌ„Y¡¿ÈîaQë.æEÄxWËR±'-JÖ=j‹é$eÊS†Dã-Û¥ KSnqþâL„cã5jËl¯�Ö~ªQqSW5É\+ì½Ã¡êy7Æå˜ÃÓc¨4ëPôOsaH$ª; Ñ)&¢0r�oùŒÜô†¸ý�Ò)oËiYù”Cz ]%¥b«9~ÅÆ]IrÒœ‹(™¡ú´` zOG•yù7‘e‹pöL"øëÛƒÚß ²£Æ�9ûâ[¥!“ñWoó®í]’.ÙÚ8Ö£! ´°‹~©×Ÿk—qXÀC�¢_72o_e°üA-û˜§A0­˜âĪE]ª\T�³ÆÞ“^zSîd'àn Ç�~Àa<ªÊÇ]! ³&/V ²’Gì©•_¾®Q55ð”‰/ z>*ª»Ћ£!…xI|‡yú ã\Fº*Ôo€âóñ�}0‡O¨úp¢Ü#ñ‘yöyos—/7<=%è¾9lá/ëLj6åpÛõ�Væ"º[°ìB�ªµ€†‰Q×Cøûq‹7�©(*¶¬õÔ‚M^Ò¿'AH“±‰i&Oò`ë¶O-¯ÊUëLçà‰' Q€°ßƒ>v×&–Å@¥Š–�T›º[ŒO�Ø:ÏC¿fóù©jªæeÈ6W ²ÕIýÑÍÄq ÅT‰µPaþk‚/�ÂêùMc)>‡?-ÊÄU=P0C„šL0¢)žÚ‹mpÇ…s™ µáÓE­§jÙOÁ”R_[ÿ•ã E)ýi%iÅjÌPãÜ sèù]sÎ ’Å”’óðó¨{.5m©Cl>ÅV(d2æ<—ümyî¥F�÷K<ÂeG6qS`þ¦J17H”•w„>­=áTµG—1å~ÙL¶È‹ ÁmPE½É�5þãáÎðÊä—{2_«c¸ZF‘¤ÐÇm-y!C_â^H�¹x¤;Œ ÕƒÆ#gôý^7>Ø9¨pÒGnÓ”ù¶°c›0WâVÝ©6ÍåËúC"} ÃÖöc$í¿“%¼4mxbÍëJœ+ÈJŠY8È_D5�—~Js™ý‹^j?ßòßýœ(ê#¥â+Ö³îTßLèÑÛk2â �­¾v‘•7r:dƒ ¸˜Z耋@¸4x ÕÜA3‘J4›ÛÇt`áö$ç½ûyÊ(ð˜#H¹iûþj‚oˆvÕäÍH‡OÒeíû £‘ÒÛ�!D7rl<4Œ„¸žõ ª3ÝBÐÔÇS‹ŽÁ£ÜhOÓ–3q¢)íæ ^:ÂØœÍzÅ] �Š%oø>xöUÛ©l"<��ÐO`a8z$=Ø(›Jøì‹|Æås9ÞOwX ße† ¶”†W@ô"R_ðåuÙ"å°ËŠuÐÏÝ8ZR=´‰·9~�Ì š(>¡kSÚÈ69;ÿWj’cžÓ×Ò±¬'°lÜazžm…ÌHUn°tÕ¤Ì|ääÞÄ­úâoÄñÐvdSÕ~”êB2‚-!ÃøÉ!&²Ë>«Í¢Çe Ôôqj ]í�>½ýÉàÒF §Eá€ßгäX(¾ñòŽ›Í™ÎU9EŠÞJ?ËõÐ3¬Ò%¿6™YGx—Ô¡®~Fè‡)ݘZõ +�õ@­5îeÁdúE$l.ø }^X?±ï�Æö¿Üi¬öž —J=»‹Åv21_è µHµSéæ“*±êÛròÞŒ.âÕdûî)¬Ä’·um;RÛMÚ½ê¡"‹ù’Ø®®�VYª¾íμl÷±¼¢ùQ­‹”qD§Æqù~&e´ P7òƨ=>64é,¹'?_HKÅáÔ$üÍGXO"®<8­½hœqi*¿ìl eŽR»Iˆpý>ºšR8I¬?XרÁåÊß³oûKá¿ËŸV)ƒ…ªàPJÕµN&ú–ÛQƵm0>ž©¼ýW�E†Ls‰�4i+ýI)_òÑoÑÉ&sþ‡Î1¸ŽËR:vË”pÒ" Áÿî”ä$ü…�q †—ò²Æ=„~¹Õ9L}ññüÑ;ge¦'Ÿ¡¥W¾%*ñØ»K„…2Ûž ùøM¤°°#µ¾é¾Rí7–Nƒn� Ž7Ôv⊔‘˜©ÿœ›ËtTK&`+­Ù£¼\JFŽ“Ã��FîÍ_äj•é ö Ó e¹‰œT»Ê2àÛ¸QÏ»`x˜—”þêap‰î€×ƒÄ¨ay;K�ãˆïšõ:ºsâ÷ñþ Åmï„ô§ ÝÖøÚõu/íøaZ°ŸX-J2»‡-âGvñw¯®0f•žª.þ?Ô÷S°0Q³® NÛ¶¿iÛ¶mÛ¶mÛ¶mÛ¶mÛ³ÿsöÞÑ«Ï>+º£oú­¨È‹Ê7ŸŠ5rdMû©&#µ“�…ó@OàŠ_âI y­~Ú5›ÆÊZôqžÚ›F£>[ ÌN>ð> »Pdœ^8è5¬Ç’LÿZìÖ*’iüdë]™ä Ó.‰›©à­h¿eÖ�£Ø�þ4FÇ ×š N£Åu‡mÕ(n7ÝW1®5Š‹C-{ÏæØbÔ¦ƒ;²}Ƴ. Mæ¯4ÌØ ¥;*îÔ�ÉâªÄs¸ø|ÄÇ´C›iH}| ði¨ÿ�ãPŽ5{-î|Jh«¸µÓåg ˆ™Ã†æËh¶I®…4rˆ #Þ¹O¢NGÄ·ÅÿF à@æ×,á/)ÿØTy…™‰‘*\j‰±ŸócÝXèSQ·ŒEw—`mÊMÚˆË1·Øš ¢W(YýZï²ôý~öÇTŒ„ÈwË™¯<³L~\$rkˆVеæ"m…9/Ï&®Ë j,Çd¼øù¤ºøÖv_%hñËÊÌsµDÅ´ ù²4̨þp㯤·‰‡Ô¸¼žªjÿk¸‚F\‡•d´�ž”Ä3•¤´;™0ói^ÑÃu¸•á¡ãî<3%L†?µ¿ú¸N˜üÛì2-�¦§ž·Öw)™bœ³e¦T RU{Dòv©êýÖI†£¡‘À”îlšµÝ4¶O\,jWô]·jº„ÉÓ'üÏ ä5X 4…ï§ì̼�=¾ ”ÞˆÃ02!Q%º^–F¬Ù¼xs' hW\Õ§ÌvcCv²“÷'¸F³ñ¬›êQµí‹hVè˜Z; .‹ûäóU‡å·¿-n¹�qÚŠQR¬äöoü-eJ0ƒ¾#•wzé•:l7J0£¨ ‡ww¯ªåÁœ¶«jý<•·W©Gu¦ë_:Î;–ì^áÓÇ@FqXÓÄEq›a꣓}—@šÿ0MÄ]µ\O–ò jctƒ–Pb úpàÔ>¥�ù¿!^0`Tó1´OÕD—Í_öb}-FÃnWìÈ]s /�X¶´®mÖMJ` Í¯Š¡°Øáš‡†Û¹/ÑŠ¾˜]ÅüÑV%òR=çÎ]¿ÕäßÒ¥Á´Eó¤OæYy#iÃü�ÈÍ \qØ×\ `õ=ª]'\ÒœTWþÒ´±çLÝþ†©wrh”©EVØ´Ñ—‚õU#o‚q”¢Ás¶ïc¹“$gùo7ž#‚%x:ìŸë±wØ% †ô=V³‹3ú?žÏ¨v<ærÆ^ñˆÕ/jæw(z=™·mø&_1ªš[Ù¹úŽsÂI·_SãOǼ¸ˆ–`à�CÀ²&y?ºÂMk«P`ÿ@Ç;ÁªÒå×ÊWaÒF•‚J—äÞ¸£ŽðwD¹ 9äèƒ�Ì|«Îl]ÓÑ:Ë?ñ9x>Œýæl*n&ivDT˜Í©µß ec«V|4jI`àýº‘ŸÀ¾5æ*œJŒ&çg-ÀgÅ…‹UÄû6%lR¾�œ2wGÑŠÀq0³A_ T1NAÓ’é?¿A1°Î–šmèüê�$xéá™Í•zðŒþÎR’Á”¡ÆÎØË·B£çú¨Îå -†m@ד4 ÜŽXêÂ¥¦¼ �¯A*8|7ðçœW(`sEç3˜ÎåCø•`°w.N·«�ì2L»ùivíîksä¦Ü®›ÁW˜,YÑô˜7`Ô’0‚+–:`ÔdÚI^à/ÁˆÓ†‘äþ‰°‡CcØ[a,JBš¯Ò¸ªp1wW J·Ä„YK{­¼�ßù0“n˼*±î7~ãÚ•Bk†•ÂÄÝËÁ Ï–±­É™õ¢¹mĹ_gU<*S&7tŒÙ�yݺþ8Îë½GÀtFßÛ‡iKH¹(ÌWŒ)—¾â2õqïDK³xõÉ0¢ ý‡s8*ËË–^ ¾Æaf  ÕöÍR¯~r �Šl”ír‚Z¤eXVku&øG.Á3/²¶ÄßÝy”ɱÌÓ¹3_ŠXÉ ÉPnµ;-?I6kIJÝy,"ì_ÊM9’xÜŒÛwš£º Ù:%4b)EðÁOÔ"ΚÞ%ÝÖa^ Xyª‘c*n4€è·±TEÍs%9@ªW¤ ìÐF6‚i"'e×…ÇjÈŸå”È ÜÜôÖÃÉ{æÏ˜È Oo½NïÚ D5þ)2ÈçÐ(‰OÞÎ<äß"«‰»‹œÔs¥¿g)*-R+±¹R&Ø âÕxöyX7 ’áÌü_ø“þ| µCùVÒÌï��‰‰`q”¬>�ËfƒúÍ=®Ö)ÃV`cM8›ô‹–>íOtÆzÑŒ§45:0|~µË§ÖhV$�Ûwµ¦|­ÂÑZ/Ýï”HOdqLkÏq4“UˆéXü:EÁrP7†Ë<©]zê.F$}eÃÛm\æ´³T�×Ùj’Ïn±œAZÖû‘Iã7u»hõ°¯%ôfG-’b׺|0©TÕ‚õ3ZKÖÉ«ê .Ø%]ÛFLòà-4’Š(rÁÂ…«t¨†Ål#¾GzÁõúO’��Äžz|ã×S<<óp ­¤ïc,ôí_µk_xþ³™È$@}"*™ï8Kƒm±’Ë ³i©£—=ü7F™ î™iaÝý!KkØß’ˆ�c9ªÌ‘øuúÎ?Ó‘+7fÔe<RÖÁÎD8¼1 <œB쉳;²MÍ¿ùqhpqÁ¿Å*r" ¤Ø*ûW'TlQT%2T³½í9¥æã5 õÌi‹\íCQa‡¨8Zñ¬2c‚Ǥ26!кåÕLDÿÃùûŸIu9Z¹�b5ÙϽ©�vÍi ìY¯�lÌj–�ò€ Gz�_‡Wq�lîÚ' 8¤q{ÅÉgc·pðaóø0(>§ —&¿‘Hö�èÇ–¨\T‚öªú0C«†nC)¸ãRšhôoèäök ‹ë[šl�dTÚåã …îaY᜹‰Ê{”à´ÄÛvò,v•“C™†óƒ|%ÀÈ$É•”Ù�„~>w0ò¥-R”é�ƒZS.¯s3p9#¨¹üIA:÷,¡%Éó4þüLlVÓD%æ†jÚ¡‚ÂNjSàX,ºÀãQt§©Ì²Sùâ‹%4+[ØŽÅù7:©…?+Ïy’±gu*©gê{õÈ'¼K,ÎñðèÇU@¦‹ ÜÚž.gõ¸gê#Qq®_í�kÁ vzšj§M™‚µÜë±ö¶çÎ,¨ºÉWl.HÆó6¡>k÷ìãV®0¤�íÝeg»14§-ò#ÊçÃ�¡R’Lfð†®Æ”ûJPÝË|[ê#_ÏÅ‹~×”QØ(ì«L6LøŒÛÞü;߆£2×Úṋ Mšúü/³ ìuAVÁV\Š•x3¿w# Žcü%c´?½0^LiÞ\¡Çq`-'â¹*] ['í´ª<¶÷o]Œ{vSaì Ð„ÂM÷¼¶¥ÙŽËè~& wõ¸¹bzDz×¹8�ñkEô4P �k”æyÃo.!­h+(yŠ®Œ[.x¦…ŠÀ®¦Ö·ºÛ9=úK7[Â/²övÁ™[5ıÛÏó%ä/3̆'+B4RZ%C¿GlÇ=îZI´»æÕư�Z8‹ŠÕ<Ù»ââ2ïüý¨àY\Aò0�%¹¢%°T’‰•·Â ©H!'A̵å¡\|Úèù«n¯ºx¬à—E�’>QŒH@p´WY‚$rË�Ÿ ‰Á0aåR’>‚ævŸhý,HÛ¿Üt¡¯×!éåÝ(÷sÁçSÙôòP¿ØYìHdx ¤ l_ÕRþ—!×Z½yÞ‚¾]­×€k∈ËòÝ0&°¢y/�öÍþ…êVÃÆÕþøAÛ‚º©ïÙà7§ƒ§àáÒwT& IC¦X´™E®ËŽ5¸çíà2дÚ�Œ7ô"F°+;Ö­uº•×4p)E‚ûf.r&Û¿ºþäáÐì¸Cv*ÔÓ=rB¼)= ÒÏmëœX‘_éi“Àâ2«¶ß¥ (i“b´aù“…«OoêGÇqñÈè‰ÉÿØò?´ÄM\ŒÛ™«8ðz©ÑR=�à 4N*œ‡ ‡ûÅ pÍ­ó;ÃîÌ ‰e», †¶ZmÛáVµôEÝáü³�†Ë!Ê\…ú®¢?ËV,»yˆÛ†3ª4Þ�ït“#°_îOšÍWFoñè­Øº¡f—$;mhbº¸ù~ñÓöפæâåâ[ ó?„ Ç8Øá·+¿Ì¯ª(×÷œîõ¦|n‰”�“EÌþ™Ë±.ªc;)Ĩ°¼ãë6ªãÈÅlÝb9ü\žInâO昒¾^�ñå—$ænÇäzPÈ8)Ó"YœÊ¬U›�þØÌÒô&v%_€„�Çëxõ¤À¿éóËÉÞ�\²Ÿh:‘¸Ùl¥q«ŸÒF”ë_I¿¢”€Û ,AL½½V—E˜§³·hòJõ5¢1…¦¡›Ž«î(<Ç;‹¶¾XçµôpJ1Îõß2ŒúOZìŸ81é=†\‘dÀѪïÏÁ6gÛHíÛ•.�U’²¥yÌ3}<9ÅÝS‹–Y²ÔD�ˆ�¢‰ Û_Meæ`‹JD­ïs ”È�(«�lùŽMŽ„fá¶þÛ®¹º Îý˱駾ÁØ ÝØþ@]À+ýbý€¾P­%@^å!( gÔ€Ó²¾\Kê�¨bMÚ½xðÕA4—œ`MákmnQf‘MˆÒCkd~ÅÂoÙÛ5WR€Ðy²�Äœ­$1NíéskZ7)'êOÁ}«¢)%e¡ª=oq•¾j¨äò∶mk Å? 7œø| \‡@óK^Cg+?¡áÄ\èJe› ‹žÇKTpºçÀ™²�½ÊLq±i&¸bó®~KNk¨D§³€pùÏäqT­Yä©êMÔ0× ¤b²Ïø„wp¢ø‹“ΈĉÊè“Ðé÷Pá?Q€Ú?¢B®@¤‚Íç¤"ƒþùÑH)ÎURÇbuY(Ò~s[=Á6gÙ¯ïOö¦.‘ðùžË*ôLdÓb»N픫¦œB™ÇPŽ Y=þ¨rù�æ'ïG˜pMså¾ ÚÓFƒôÅ] (ü‡PDðâêI¨9UÕ¹’ }•ñã7'©FïØ¼5îiØ™™+·yæ:@$ ™órb"ô‚eË9DK œÕœi�‰©Cf’ÆEË q¬; ;fÿg©;€"[60RO©Ç—†IŽ¢jó~ä.ñ¤ÎB&”bÕœ%Æ×1I÷p”X}¶ý†Ã2ªmRÐ ‘å÷çùV�üÀ2V±æ“jbG’Û�y4Ï¢åñîO+)VöÑe¨_Ìyõ! ;�̓�?�l}#ëúÕ’deS“Ætä×îÀÞiTímíÖn*ƒió ²"h2R¥LvÎ+bØÎû;é`Ý(J"›ëí3;÷žeÿî9[ÈÕôïTp&ôogtÊõ'C¡®Ñë„á|”™3@–—ïecÌæÇ}“¡Öuú£ÿ¦�„ÔŽü9µ&ýÚ³¼Ì#ꢶŒê)8bOº`[é�‘ÔÉ”GY½’lè5šXLh‹.0A¤åj-�îS*L¥Ág†³À÷¼4â°íVÑWVJ´†pƒL÷]ïKÿc£)|6gòãHÉÕ>ØTö6�y«ÃlÏɧ¹Sr•¿x“?+þøänÍïtÞˆœ¢Ë=Ô'¢+µÈ1¹¾g€ê·õÃ?4øR"ØCç¹!¯E² «žüJƒ­üf…íii@³UÅYå­}çI–Ìl^µ½œ^š«×€µÄ &så‰a?_¡Y�aÙš­8@,Ù= %-òB{„lTur/å¢1Ëe·…Çm“JfôÖ¢J-c‘ÐbUšãÐ?ªÇ#`kßXÌàÛg6Ô}a"ß�~Kêõ‹­RÿbDΡÞ= 3ûÒÒö©^ÕÄiëàŠ°üלíOì‘ ß/by‹ìÇ[uŽ-ãŒä&žpÁÓlç&64hí2ì`…W�¢›JsG¤j‡Zâñ!«øjZÝIOÏ™8Caõ|F»¸ÉèÞ•jËÈgIQÊDi€ƒÆS~zË¿·vΰGZ S$]Çá…lö* ûX@Žg¨ZLèò¼f×q[‡VÒ×@FŽ`Kÿ¬g9›àÌß©Úc ¤Jò {ãåÒŽøMxG¦²D «‹9›òÕDö‚š‰ñ6¬UêÊoboƒ¸Bf0ÍW ¥<š“þ]N—Ø'˜º{çf€ý¶ËÞëucsÝS›*�Ìéõ@µ¿YÚ)\{Úc·í ø8€ëhÂM¼@¼V5ð]#iM╘Ì-»À2�åÓ±zE"WÁµÒÉOûyK^O§Èû{õ‰~uØD”H‹%W•9% Qƒ¤ïâ“?aSƒÐ”Ðx˜v˜¡Mi‡ièÆ•òqýTš6R–ðŠLÂ~8<J;É—w*N‡ròw±QNâU…˜öÍÌÄóšú¬~³¯ q*¨k1˜#·K…Ù˜ª‚ÖþHó±zxO9±fžÝ¥‹=¸À/ft¬–»�Ýð“C¤m!¢¢¬¯àãQâú¢–+¦N„h_¸y—Iîï{k¢ãÚR+ˆµPÒ¼Ÿ*ä¶ä¼ÄÄhuéàäO‡³ª îuö×2Ì:ˆU“2Ù‹e8kõsDѨˆvþŒ8µ)9ì¤Õ¬‹Ž@xDä¥u*&dÓ#á•Ĩ’§§‘§'Ý¥n¤w>k;$¬ç¢�t‡y†ùÎ5ÉËÏáv7&•IïaÞ›Ka¢ÿº�Š8"é`þà‘åcCQyÎÓM%úÅ5;“Ù!Øtfæ£üÛ) !>f_¯)´O´™Q•Ϧ·ÏÂ*ÞóòbƒB4&yaòˆòü3[?*ÇÉ�Ûrdðdúî‚ÇoLèrF+XF Õ�Ý©F‚†µ5Ù éê©Chý.–?Ëõ•äHd®Uª™ � y:lXuü‚#y�œ¾¬+ОîQæq)W<÷ñMÊ-™Æ-e�êJZ^ -ºg ‡u|ùþ;ÎJf´0ÝÉŽ‰œy„ÐIWI ` ÛÐÓ7ä›ö³P �j,?´Ð.³9ôᆙ1¿ ŽÜ#Ÿ¼­(Àö… 7ø%ßìáA¼)·,…I.�ßDPK29^ñ{é_` USJ&ŠîF5Û]‰¦U0’–jºÁéÔ<ð S3:¢öegÎÿtãªûH?ýâ¤a1jσ»æLZ¦~+ü»šðÉPTô’“Ë'i!md¤-ÍúMÌãvçò$ÙÓ/ê®o<0i=J(sL3äû]¼ EKTV[U¢7†ñ>�9’³Y4¿Aî°~§’!kùx½sìÓÔ<”k ‘„þŒ¨ï¯Ë�ãèœ�Å€õQKd‘å ˆËàT>ÿžQ3˜8mUõì¾ø„冡íÅ“p—îÛ+c�OÊUëŽêý«ž i¼Ö-NÇzò÷}ƒ»J'¬8'  R¶áXdÖ Ñ|ÂÔýb.åá,ÿfxN‹ß.‹¤zíjØZriñ*0Êë¼ã¤A>…ºN°,Þg7]7Ø� VJ¿ž¤Ao°Qø‚¯²[ñ4ÛÀ[öÜm¬/6Œ¹W89¯æÚoÜ4FþÖ.¾Ç©�ƒÅ88Ñ®ÞͱF#,Tã\žºsOô­e&&ªÓ8×�lX‡~O/·S–5|i¶—ñÒ:g@_¤z–Ûß'.2è:BÓ HìÞ~Ë‘5ÏaTã)ƸUiô“ÌÛyÀ¡Ùßra·�¸HsËpáÎëñÑŒ‰:„GÎÇþLq}“î“a ~ Ñ_�©ê¯d®G˜“ãõEŸ<ýjá‘Ë*Æ]€cwØoÌAÛÉ]z‚$Ë©a° »ÅP!¡÷ëÕ$O¼süi'Ä2ƒ§T¼žÿ>éu¦#fw^ͨ¼ïÝ/ÓÑ‚�\4U ³ÿàïæ«S ËVõþ+bjíºŸÏχ�Á÷ta1`ík5¤YÅÌxîìä¥8�2߆�Ð,ݧúžÍv}2ô®dchb•ß…(8–÷)ÛƒâÀi\R›Zƒ,=ŸÞªÆõ¦þ>žòí«ñ¥+ã߃†5_Zh[|(‘fcì$ tVÃ[¤�>¦”,/Ë8²n é¯(7¥–ÇnÍ,pK…’ÂtË:Òäufî0Î6~L2ˆ¨v@ã%67±„Ö­y|êlÌC°I†>è~Qº†“Õ§AÌv«˜uçŒOàÙ¶;…‹HÚDa°¶Ç�d߬èu38Pe:E´7ŠXò@ÎéöôTãå>ea�a×ñO1™ükA™svëL8›ôVWÏ2½Oò ™ú£Ò*#†'f¤ýçÑw³; †«E«ßxžE»ÒÅÂÃìÞÿôKÅYšQÅ–û7/µ•Ø®{›§Ì…F@SLÔˆ‹Aáog-iŠˆu¤HŒŠçãg�DÒ{Ù©»¢´âp«bôZEL`%�¾:5ŸØ …ˆó…“fšX>?­Vét éb¡V0Q"Ãëå¸!ªÏŒ6‹ëʶ/€ƒº\y!OÔhŠ×Oq9\–•lˆÙëKWÝ«xôF¼S¬¹Me÷ò”|µ‘!âe¯ÔAÅÜtý ä÷ %Pj¾O–/öÄ(áõÀvsu?øB±0y!”H#%.}[ÅJˆv‹~ðÈÜ9Œ×´6ïØõdÀ%E „j˜WN¸�cÊîas|U^ŒãVwÎ'(»9¡}·–í>ú\ËzˆCo“ &/ƒ—I2±lGíN…?�p‚±OœÁCªÁ¯f½æl³¹§¨äB˜zÉ}‚ž*-ѲXçÖ53óÍ ªFÀ‡ÄhŒ°Ì”­óË-³mb›.ô×+ßt^ÇÒN~ÝZ\nžm£™ÃyO³Z=‚J‡í˜åZI9fD)ú™[¡ « H}ß`‚زórO1òù(¿åb×85ûi¡eÕ�à]bŽÿÔ?Ͳ2‘RÅœëöEW&¿š]ÀcJ|Lò:AqÍôªÌ€èÝ{'åÔöå›j¾å=±6•€yªž§aŒe€-ˆØCod¨Yx/ÈÌn=8«Â<4'ˆrŒü당žKú�WÐ É @4¤qÀÛ^w2^\$qóî2’�~�oÆÿhÒK_ž”xÌßóir=>�úà—KŸ ÊiýòpõÝ´0ðMÒ�ô§6�QÊ À“¾ö üî:!úx4Ó®øȾ èÞ re,my[.5Sö¬”›Y�ÆhgIOJËÙF»<UÏœ ‹ðO0‚r*\1:ðXGõ¬3=ºŒÀÊc·†b¯ÊÆÐx™½o ¹ Ö?e£O€�†õThó™ÛPG$âYB–°Ö ÁÇ¿%8d‰fp4ˆÈÈÞ³mt!ô –«à@y^R¼årŽi-]ÚùáüZGVÃæ�ØÓ,Š2§_Ö©dCñ“º©§‰ü/ë§nà ËÖ+ÔÙt¥DÉÒE¡*–5¹Mßc�XØÑúÕ ¡®Ž“›ùé¹¹R Áuë!ïQÁU7T-”Uº gÒÇÑ aL’^™éa¯©M†À¶¢<¸ÛS–=b,{h”ÞÍ�èH‰¤YŒLÏü´.Au^°  Û° š€Iø°Ì[ªò­ªêÁI]or¨{ E3ùóŸð�”,DšJ"Ê¿s¯?�d w&“º]]$ ,“:Äy�Åž§‹i:V-r\N$/D¸3>±Nå2Xê�‹® `6Ë–>øâ(ó/Τaˆ�âÖÑŠóRZ^íƒyãÆ�‰!󵓤? ËÀcrìmä3œ¿81F§Þß»š#$Å•�}ïÈÙšWÝ’OfSëÚ™@ä‚Ôß“¶jk[ÔØ[aA/1� ÂüEb´œAˆuÀ¿N”Ï&ÚÒ<¹ÿk€Ù½Ò'%ðï �€a&ð@GhU«ò3Ìc�øÀÇTùhÁŽÏÆM®KÂü¦‚<µÌ)[q`�\â5}b©eʨÑçô¸DÄ8Ð-�‰Ê%°jÓÕ+-‚öy—ú»HvöÍ ®C­VRW/ÅûHû6Ñ’ÑÚOö§ˆy÷_t¢ðÜc×9}H;¨clð¹�º`ݶS9…2Ôð]ÞÉò÷CK71tŽJNÇvaWD²Ú�Q@"‡�^SÅï[99d;׋�÷UKCq]îŠ (h ;1â1üÁÄ‘òïnTŽÚÓÝ^0BÁ`V¶×å6ÖNÖi–TM‡¸¸×úïÇ”JjT §Iƒrì‚•ØýÁ‰¥¬Ž9–.Üà¿%°Ã‘M2KãU ‹„þò˜Mn‡Å{• *i7Y„pNfŽÔÓ´ýÝEa‰ÏcZs)�"¬ >SQ…‚ëkÀAZtôÉg€ØÕ|´e{jÀºÞ<»ÛÇ�@ Q`&ˆöáÐ@mÁ¨MU¹Ý«Në�þ±+¤¸Z‹cÂÏþð”O1ÈžnÜ&“¬�ÇôQÕyiäv™w˜¤ )±ò]Ôòü�Ju)”�’PF2¯�÷Æ«© ùgÖÃêSTêº?Ó^zá\V»ò ®Wÿnæ „5ú‡þÑé£ïÛ´G"í­¬ü¸ž=²U¨DOr3‰Ã…ÈU7¼0^p{ÜS\v¢f‡:Ι~E*ˆ² 7*öâZÜ'ÐȱW÷>„÷mø@©(ˆÈá�„f ¥lVs›ªÖ3YT\€úr {Ý=h”Ü€SŒX„½L‘xî[Iœð^á{NYøÙó6`—›.!;VM+1ü Âɳ)ƒz‹h&“å)¹�I¼(U§Ýo5¬{¸‹Õ"WðÌVN$ÀðÃÇ&8pÆWе�Ïlëã_^§=Y\n¦í¶¯ ¯Õë·•äVxâSñîLí˜Ão)w§Ó»±Ìâa•[\D`·jÈ%±Í?-ÊÒxÜÝ$K»¶ ²™j¶ Ê,ˆUDÁK¥t/)DÙ¯¼îüµ.—Ž27Å4ÖÕhÚ³:÷^vÎç­®ÁFWë¸ l¢E"=z �ËØy-µ"z+»+½ù_à§ef ¶ÃkxÓ8*ŒYEXûk txs¾†¡¹w¥ä-˜h±ôY¨î¶QSäÖñ¨Ô”ªlé“ò“ Á–òQá£H‰k+ÙT¸6AŒ2»3ânJ>´\Øoë9(„Ôºã¢_ 63æX6‰×ò[ÿc!=Xƒx'�óM³øµä$#·ø½¨†ˆ¡µlŽrZ™¾\È*ÆšxmËèw/à€ðšU1^¬ÓÆX„¹)9qe1İôÕLÙ3…f‹y»ò† -õKÐznSS° r¥»;ÑFÜ«äó­‰v#ïGô3 ¢o‹®ðübë�_€\6iS‹Î÷GYÌ‹Uˆ,À&L¯÷ñ_ÑÍJêXƒ™DK?¿©3ÌÓä`ýl3³gÜCV`×ÃüŽ|+‘2B&üõŒú¤ãp GàbïI-Ù/¨Ï¿!(lÚó³C�¡õ£üqIJE…ó™Û`v7Ið˜Ãë.G'�Qs>Ë|/ÚºÂ!Qø¼º‰,¸½ž� +M·ûò97zc‘ÚY‡û2“зο‰bŸÅ,ȳiñ;åNax¶ð£/;L`ÕMôaCv .Sþuˆƒ_]ˆŸz{KV'ÝÝfðS£U‡Œ¾Ežkqÿ,¦ýw£[[1–0€Å ÌQš.Ân£½ÿåËááßí`“†ÃÏwlÝ7ÇÇîß5èi1žÌÙÞ«­‰ÝŽ©:å#ßÚû­7dÅî/w‹V�Æ'ñ§jÿ8𬠨ÌÜ¿ \�Ò¶Îo®È¼´8b<‡ü �“éK ÆæT(šé4Ê|þ(¨ø^qÕâ˜à¸¿†J0¦Xo‰¶ºks«Ÿ^‘ò÷4G à4óé…:Ôôié}ØÜÝ™¯++3¯Ò [Zʦ%»ùÇvMÈÄdûi¹©›Ó©þÄ/¿¶ˆõÁ%ÿJŸOöŸA¢ÿGE&éwæ�£‚¡ŠˆÐ‰�(ÇFŠ”j¶RZÕhÝ5â¶ÍBÏ*­|P œ¥–ß7Ø Á]Ì1óŸ9ÏgŽlç*Ž–S†:Üâ×øà¼ïöÔ@@ï¬è?ÖI é£G¹öðL-íl1YÐ<åªMí&€íl“�;¾ŠXpÌo=‰‹œ÷VïÞ/T®iÛŠ>dJíL6†cª½¾1ó4d“_óCû3Wƒµ /ƒ¼õ^…R½5$¨`Þ“´çË$6–Pˆ–âe=8'Á•ó>16%TC6C.¤îuÖf–` &y›`ܺUxa�Ù¦Lç0ï¿áñ«P“Ž5P,ZS¹0ä·ªz=x‡½¬’¡É~L³›xÈay ZUQCmâ8¨f°0¯E'¨47ʽ¤¶~=¤^v ì‰Þo‘­IòÆ·s÷ÿ[AêHW°“iQE�e‡Ót¬êw�ËŸl+ź?s�ˤÔ!§çÊ@.]÷Œ¬Ô7û(‘“ѱ3î<’-ŽÿSšCt(kÜôѯdwPŠ£7‰a˜MÁŒ—Y®½ú&¶j›°…`5Ü•°ÝÂBþ&B[` “"ŠÉêW…ž4úöÓé«å3K\}­°¢=†¼öÝÑy©Ø™äT>^Äã’�:/ÿ¢Òš3 2ÿ™È>àpêïW†?TÎEˉK¯Ò‹�ü[Éû1>›?œýøm¡ó&Ї”ô)¸Ðøeà#ºuPíôµ#–™ÁˆÒ¡9á1G'e†)¸Í-�ɹý…:û0àÛ²Æï¬õ94g•Á ­Yì@Û–Ø�@¨�÷=y�¤]À>[È¢sñ^kÎêFI¼Väv ïàÓÌñù“•¹M c¶â.ô“=Br¯™ÞG¨Û6™gžÇ[ÖNmQpŒÃkàøÅâ+5s(Â…£�½ú¤òð˜‚Ùå:s-ÃÏ©<Ÿ_.ˆí}ïE•ùøj5^ÜèêuâjÜýžKQuÑBÊ@ì�¯¸ -mæÞYÁ”¡yçE¯å€�å�}êHà¦�²¼Ô´Î�JEb—~¶Ï§7Ò�ƒ˜è8Äim£ž|à yb½�+öq³•s¼¦özäK†å�ET�[: &LK¦Qw3û7|ù×Ñ£®Õ•˜Êý4t¬…µ[  î¥ Þ}[„em`ÆŠz÷ZNUYSÃU1åÆyŒâbày&M�ûâ2þPɇ¨ûY-…~g™ÙßUÅå›AfUoLŒº˜ ¿(½lfÓû ’GV¹�pì”´,¨Þ-¿‘G�l¸˜ +N3�Z@KFóT ·ñ–q3`Öm‰§â¤c®àL¢TóS­ÝU,J+å]Çp^�fýÃ)²-z£4W]|-ƒ¡€ Ìòð;,Wðý*¥¯…£ø‚n¹‚'ÂK3"%º �x—ö¬U”„uÎÒ׸#17¼ŒRY@þfð i…ž™ó¢TÀöÍõ F� ²Ñ`Ý®ÕüG…ÃÝ¡øì?ÎØHj¼ê!¹ Ÿ…¦È©S^µ ìPFº}u{ØxOŠ,=}+‡E¯PÝ`â`/ahîD¸IÌêýŒ·ûk ·ûO‰+/º–õb³›–ôôÙgœËhÕ½y=N›²•°t‘0r&&ËtöN�A{}1÷óÁ†‚ ªõϰbÀ{å;b,N#÷VR¶›ÀX±d“ha�÷šºˆÎ”ÙI ‡€Òñí™oªõª\K¨8²‚E·¢A$¾C|Né/‰ã_T”ÕMf5D,þ¥¥±g‘Ùc9rÚ֢崫ÿ‰Â2¢iËùF¦f«Qjºô( ¤#‰æ·Lœ9îÒ2¹~>ÊI;ÅùÕIwo[_÷ç%ð¯¦í5ªíD›ëÍô–[r'Ô´Àkª"#À‹lÉpq Ò ¢ëÊ6Ö ³^ƾy8í‡EÞÐø¨Øá,'€+ˆC¯66˜ŽÚ% ÀLÓˆ¯*Å O·ß±®RË8ÙÌ{Ô>¿ÔjŸCÇré�£«ú£ã#ü®-©v‡–QoD†Ñ£»ä�ðÚÜ0%γŠgõšØXAoäMáþâEÕ’rœ9|e}GÌìÄjcæ%òÝ4ÄÜ4¬òoÉ0V‰=�;¾ü´ Ážoa ?¯)8Ö–û‰ª6-K¨“Ï" Á™î[P#Û¥ ¡ ~VþLÅÖ�D’!c݈¿)5ÿüÝ$MÆ‚ùÑŸ!k^ÝÌ™ÜÜ.�e,'SW™À\ˆìÈPÚVçûJ”A‹Ù[IiÕÝ2Òñ¼n{ÈüÖu³¦@¾È h¿·lJ*H¥,I÷•´æAT&ÙÍüƒÏv«à;Ž(h¥£'•À›–²84µ,ý×ô^lÛ@µ~CŽ€)ÆÜ*#‰ÃÄzŠi}Vu΀‰ŽüFñ¬ÇëšehÆuÓÛé%O$»ÄÛ Æ…¿:Ht>ˆ*è·¦tÃ]-�ÕÂÔ�à™~]çVQÒÑ'¬ÞØw”Úî ‹Âu} !©Ù�Ù¡c•33±zM3†³6…àÎÓ_ ¿™¥A­¸'@¯Y¾ã3µ…º:ŸX¸Ð\©ÈÝ„xÀ¦ÿe`ê�¼´5í8Þ{‚¸øWb‡Jt„»ÙžLr _<ÇAÂÒùìêJF&Âa<+" ¤î~PÔo°2—$¼Wõk=ÑC  &t áÅ©Dîæ> Z¢U!ŽñË%|‡ÙAØ@&…ỦFê/'Î�$ðúoÅ h r`ÒWÞ°÷*ªÒ¤Ã~ô:LsNJ¼ ª¥»k­ À)¦nuh•é×TŽK»”bâ¾ñ¬¶ÕP°°àê~\ƒ�?h8{‚b.ì‰ € þ*Åü-„˜³­; \5ЮLQú9‘Ô|ÿê5žÁç8c°òªF €Ù‘a¤’@{V.†\¾Œ$šDn·)z] rh£˜NõÝOjB](æú䙬fÔ°ˆmIï aŒþM¯JÞ¹•Pš¥|¡ äS3%Jkêlk¢^lîè™'Kþ»Sr¦8™ |ð‹b�ößÐHØËùO죫áeÚ»b*±hWrhSœ@lzzçÜ�Œšìœ|³YÀ׸Q{I@€ÅZ7‡eíá4aC:1c¸xñÓË®ºmغ¹å]«´Ä�öíìœsW8ùzŠªÔ”†q_¡—ãô«ÑÌ‹_ÍÖ—Ù˜ñ ,¬!TV‚;v)´°b1áRÝNÚG’¬Vs¸ëÐNsJlLhw·(¿vA‘±¸ê)8>^÷* MÉФOŸ'ûjcwÆf§½™d¦æ”Çä�|@SÚ7&�ýFrÑ)KöŒ$Y!Å"]#–8…(¢+„–W‡9pPòϸíju÷)åzF ­Û°\’І¡É9¦¢¬æJÓ{Laè7DÊBÌtKÃuMJUb™ßþGã%—ëa¤ôší˜5r è .±ñO2G"¨8fã{ÿ“¬ì=½G°‡EêáÝ0Þ—9S û¦_.mV`ÇébäTS ü#R•îÖUž® Ð>žÀê¡%›Åi ·…0„5:5›Ð…m‹=)ä’¬®Ÿ-´—c“Wq*#n 2�ò_;ý§:©Uû05c9s$¢EÉØ¤˜€„;—"±Šri;§þRGFMváñ3£žeBxx…¤—’\�¾’x>.+MöÄ5…vÏHNb»GÐT+$µí\?ÖTìâª5à±):ꬬC-VÔÌñ€ª¹ŸŸ‹U ‚[REh¦>û "@¶ZØðbuÎ3õȉµ¾T«òCÚ±Íͨú:ƒÛCR®Ì‚m\à´qh`êDöŸJœ_àB°ýƤ¸Ÿw+!"àê%¿Lr³·qÍ}›uÊ<%Áøeð0W‹3ÜŽp.[ R",Z¯Õ‡ÁN ú•=šW—Ün½|Uè)ÆM�»�X›ŒSü*À>ídYã÷œ¶in‰�S~|@�ãµÔ·àòœp.¤YBà D*íÇ*"ÄûŸ§žšÅ÷Wdó†ô¦_]â<ŠVÓ‡ g!›û‰5[ØüÏÚ¯ï’;ù‚àϵWÚòýÆ¡](`äP>O²^~ƒ ³ã·Ä6fÄÄ•uômŠ|˜a¸ý¾êg00VÖY^.g"²ÿÍ~,Y‹ñ܇òí›×¬K›ëOj®ªx(�†x¸…! ¡Xþ•ÅŽß >u¸5£ˆüy!v²NŸ±t¡”ì[%$lìÜZ{¢ *Êph»ä^œþ/ÄìØ? ï96¬³‚m`Y½Â+äu>3XL3sP ÓNr,Û•߯Éb¨(³ ±ÔxWº¯Tý.êzb^ðê3 êfÏ·wPr±|ÆY¨VŽ‚~NÙž$ûšZDÒ";"©ôŸ0]vy —líš”Õôµšsèl$ê°{®ø.µuÿl¤Ó=–'$þ�'ÜòHs·é¥%ŸÍ¨_�‚NÊ$�Qú¾ã=޳Á¼Xq¿ë•JV|ïJ퇎�«z]?6Û5~�—<æ¿•8£«Ä*„�ω‚ºšÖ %h£%ƒP@'Šó‚¹ðcõ3~PEqñ¶ zfªK6àäÍ#–b¦Òë ‘Ä÷ãã 9kj@·ÛŠ;ŽÙ­„ˆ¨ü;:ÖsÈ"�¯fÅ”ƒ×¹ø¶N�¨“XƒÄ€œS/"kŹA&§TŸÉISo”€!RÔÈ?�£.‹Ü&*™ª#vá;…1Ü ¢=V�=¥0g p‚rH­  œ˜‘V®µ3®ƒOd£•=ò�N}P†`ŒPb,–[7×Ç©…ˆX%N=À(wZÓ§®³í®¯¥T¾¶ÇÚÊbT*Šžùµûi!zE&‘`2$³A™.U‡¼Ã_¼ŠJÁò ¿sòÖáG•êß–ãè$ðÔ^*‚ù­Jå°O•­¢0èó¸G—òHÑã¹2d4ûE>�ÌeܘEäõ? "äµQPåŸtAs·ßÈøŠƒÛ5Ͱ �]�Î,ßS=á ¿c´Gyó:€�‚ï¬-ü&¦Àl丿ŸÁÞJÂ5œ`Ï©ˆÎ.+Ô;o´ó’ï%(† "$ ñôè$Ž�ƒŽ¨ŒoJ^Ôludäš’%oV··��TÃÓ;œëëw6½®}l(;�H½ðM"£âbxR¾åº5â5ϸ£ª•ÒþÜ((·íš!¯©IÇ�¿™wQ"òµ®‚€X–úñê“"Z¯C´ˆåœX¢³éÁñÐDßîé xâ¹ Û¼ %]ù-(ÃA ˆ1­D·>ÚÌ-¨Sº !‘Þ£ªöª@X¤§ Ú€£ ­9àj]#�\tìGpÿó7Š´â3H%ìÝ‚v±AÓ�Š^}„îjð†/ÈŽÉUbŠãF*,ž»° ÚM ‡¢„,™ HÞ×Ö¡°�c.1/£h¼‘9'êˆ@%À)úÀ—sõ¸v¥YWCÄÑôÌeÕ¿÷8�ÁBB½­²Bùþ*ìÎüAØý²¢"Qx!±Š¸™2Îmƒ0œ:‰ÚÎa«íE ÈÁP¯SèÐAÓ§úeëw+‚ lPb\ç‘êòo“'£2xGÑ‹ Š èToÎØA´¬%sC”õ¤¢Yã­Hw'ÙÉ<Ëj‹µ&§Œ7‘ÛÅ¿™Óù¥Í»�nÿîl%j}ø€AÝa¬àe·ÇŠïP©Ïë’3ØG~)Œ0Û¬“TÝêK¹à™±È!²©xN&^ô9%ÑÏäÁE…ã—AÅMf�þ¯Q¥‹>!æj—ì• X¤ýsðOuZƒ�ÓÏ  …4¦CtsÖàmø'K—´¦%¹ËSv€6Æeß„gpƒ’rˆÐ-¿î‚�,‚9—LÄðœhQ)Ã|MºœËáóÍù tà Iì��Jxžä½t ×`U,Ø"¤¬Š¹½~2Ëu¥Pg/±|¡ÆP‹dõc96è{Âb„ÝFUNøŒÔ‡“¦ÖŒxÒ[ô@¼ø§q™ó¸ß“i#ÈtÊ3 Ù"|ÊÚÉ™$�l^èù¾`€Yúj¡�nSù’z©ä”ôbG¥¸ìQ‚â‰ØS»ý]˜ú×LáX,FÛ$ZàEEÊ£øyV¿•Y[ñ£å‹RCCÁ–¦B*&ɱôÒ\3�R·£ÈÒÊêÎvˆx$�k~7`…CGiXÃó²?õMIaoÁJ«M˜èqk#€£V°Úì`S]4lß9JßTY“vÊBæ“-ЇºœTÖøÒ#”inÇÖq�qME ä‚13Ø yGÕ;ŸEûcx#xvÿÐ8o’i ²S¸î4TY³ÞØ6Eciu�&pÓpsºÞâ97áÜ'j/ú0cíñ#©+¬¦O»í_¢î)ž·3ßÈh6Ø„}\'1Ï뀽—‘Ã’Á»Òáî"ú94îqäïByñ…:ž•Z#­zwHd/§VJ¡¿ïN1…×ð¿ðæíÖ¼æûAy‰5B÷ôýG;tF¹¼œ™ðyêIŽ‘ob‡Ž•©#7 4àS6_885Ëqõ¸²�1 Áò�<§¢¼|à ū0PYZÃF‹Xv”«ò&쎚Àž¡ÏYÁÄâ™í†“��6y§Lk¡Ã`Íi#nÑ|ÙR†FL�ЈSP ¥ ë"¿Þ_wÕzηE‡ƒý þß !ˆ•Nö~M–û DÐé�KŠƒ}¾+ÝvÔ »;1Ž ¯‰}[ TO:ž·À-ÀpnÎ€Úæ²ÊAvAæ/Æé£1ŠËpÃmXð“¶N­êè®»ê1ô}ÐŲu}¢G/³Œv2±€9¿üa ôV œ• L¾|ê²B]ßÁt å¾×þ° ð}óC‘É‚HŸåå8 m×L]¸”n\þkâ ,XÛ\Ï%ž{e˜‰Ÿ h(²(n’Õpýò’ô�ùœÿ„ ¾šÒ�+ÐŽ¦ý™™+,5®Û¿1£ÌòÞ]œÁûVr§ç²ï‘/Н*YÚùã›øÃà¨ßLS×S׎lmÖ<>�Ç´"¥lJµ&R(S_Hí|~zõ«Fc‰¤~<ÚtŸÃ¼Ù­·ú/ŒÝë‹#êiQ†> ˯‡­%v­ û/Ô6;¾g*„@U±>ÇÔA?§†;JlÊFº|&—a$‘Çlçá/c]yt$™Ò(ƒléd�–¬iÎÓ¦ õìÀ3·fܨٌäð2ÝÚ� áÈn~ðÔ&êQåƒÛŸÏK …µ$@¨¶Ä゠ƈ”ßw‹9 ¯4³Æ �½þR"êÔ"8ôÞoév¥¿±¼î¦HxŸ‹v]–n$¯<Å>AÁaeègZcîÉŽGÄÈj:qÇjÄo@þAV/íK÷¸+/¤zu!±ÐúªÛ ÞAvA4|ßÎÑå>T‘º�ª9èvøD¢¾ä¶qV"w‰ŽmÞx�žnF¶&KCA]çá¬И”]E-Ñ fLÚnIc 0†amÃÂå‘»`/3б8bñ{`„Ó³ˆðÂocR�H¢¯H|pOÿÚróÐ)Tûz"2Ïû<­uM')­æ ömw8ZNµ{Eor‰!ÔQÏæ<‹.|(4´íÂCL|›ÁsûÝgS¼t�¸‚”ï»hhÀ‚x¸r|‹h%ûÌ/‹ÖŒ¢�MÔÍî|µÝ˜›¯Ô©tæ;Õ’ò¯ÌíÖikMº¥êy�nÅÝÓã6Y4ßÿeišûçq‹®YG‰êN¾«j¾‘_F‘ÅÓ6¯ ¼u¥»Öþ ×þhP�:ù­ÆaJde7Sc�‚¯ãýsÍAù'\ùE{ƧÀª?ñ¸�’IS5B> ºÇÖ•az #2ÒlÓeƒ>uƒøÖ#7%zVÈ•ùŸ™O‚`P¹*§Ÿ†KÏ:¦†$À³*ŒPKçâ-7Ò ŸMA-f#è¹Q™^5x–1È!U²¸`hdHP¥µÇ°Ln¡&CÅ¡za!È’·°§ðs%9më‚*æª rKßÒŒé7q(x°§@ñŸ,¶¼s䜟ù3×ñÃ�I£�©�VbéT=@f$™:¡ß‰JYœŽB·ìÁð¡�—è³ö#^À®Ýd‡ð±î{´wc(á½ë5÷=ì —çù‰ f&^ä3rнf`@mßfÉ›RúVJä �J4{ò 8J«ç?õ @�ò§îÉch�ËOO€HKËÇo§r`0Ê¿¼KµÏ³�õ_`J4Do ö i||X3bª!Ù µÏbrê9Ke“]-•ÏjNU³­™tW‹sÛÙZ>K•˜‰¯ÌY-�B%ïtÍú:éºßíÚ‰Û/2Š0½§«c¤W5OÑ×c;óEùB ß}‘éÖ!C»ïÝÞÏ£µÂYƒ‘�Žd”Å„QÕŸ%¡Œ³!†¨Ì¬×ãö:zbC‘«]Ô„å—çv]YdXÜMD;?Õ‹ONS‡7A÷AWKM\8v?OEìñ;µµ{#£‚¹xB òIzuøVGÚ p*�Ùƒ*åÚn]á¿òðÓng×—×H|Øå „<reŽ7è…¬æËÂùI™�+—ºÚ„�À…0óff�h4cïUzÍ"f”]i*šªòµÔº%ï“\¯Õ¤&‡ÏÖz(¯VDïã?¾>YVÊ;Ͼ>È{0O;õë¤?o–gH¢sEÊY¬êÚëîÄ–)ÔRâªo7ñ=%ÎtØ^î®…�L§y«n/´�ί‘¾A ïöl&˜AFy¹ÄžmÒU€nX©¨É¶@ðëñJu¦¾“0!ªFv³ú‡**¬¤�+è Šë›ö½.˜Þ<ñp¶º…§°(m ò·d"3ñõY–ÚWTM ,F}ÒGQ¸i'Ú"Ã^‘#röU\.Î}ÖiT †º˜xåÁÎ,‹š˜†á름I+�¥ùö¥$�Zíò±Zio 9yÈÞsjÇ•VŽª¡¹ªÛ“ @�ÇÎÆwn0xxï$ÜÔ$¦QGöŒˆÞ'Þ¾K4�bÐ�n8ÚN|dÔ[aJL}>“ óµ £‘–c˜’…~»8Õ`×2{æôøf0*Ôww& M逮EŠ‹�u‹}ŠêC‡e‰9a›í,=²hªØ¦œ·Û2Q¥gŒø ¥c\¡ƒTàë�{[¼´ãœÛÔuÎ…X—ÇØœ.¾Òô„™3}ø…¶4ƒøÄ@ h38䜩jãs©‚¬#é8˜�ñ·ð»ò.îtOU³RQkð`ÚBm({ÕvvO+q\³Ãçè ª_]\Ÿû¹`o¢Æ4…ÐÓOoJp{Ä…‘Ëìr7E\¥©1"6¼Ù€¬hÕ"Î&OJöŽtÇH)¿%ÎÙ·4¿U¡\CsâDÐZ ¹ˆCÏ®…—&ªd0€D8­ f õu›ož1O¨¥YLñ³Æ–Ÿ›ÊÂZ-X`ØÙ=ô`˜8ºö þÆ1˜"Ô¾¶�¿@“Uá/zä­Ë'3\ÝFa·_ܽf÷ ß~–`Ÿgsv3·œÒç ""oá¢!eñ¨-k~Ĥà kü/'«»±ð†&�;Öt—÷?§}DÔ”#|’’ä¦VÞqk6j –!~t°§Õ¤™ÿÑ¡$>Iîˆb(P²¯(ùÒ±øQ®Ås�¦=m•Këƒò‘tÞ>#`Ÿ!½7«³T¥ÌæB<4'‚lA`Þå„€55hô í„OûìÜ…²£ù�}Ö1 ü£üˆ\4x£C�r8ñŽ-J-b"OŸ¸g. Kµ’‚óéUÀ¨ŸÁTâ³R‘¤¨žeâtD;ü½uq°³L±¹‰ÙH7òmË��\×é/E |Y$üÎÝßg˜]Œ”cp±ÞÙù¹òc¼cfoŽ¡ZŒ½%,ýãhxP~GKto�óÒo“åêÇÍ富Ñ\Ë!߀›À{J&Å(³FP�$Î ( 8¢(Œõ§"•GÊ‘üFŠœ29fÙšˆÓÝÙ.í2TWÅ·1ži’>¤jE;Ï´ÃÞ‰99<40;X(�ÙÄÛ%îI «D9t‡I�lOó1+W—iº¹œ(í0½ ¤ž›¬hªæ<Ô¿n}}†±ª/�_­ß9o྆‰&y”ä—ùÍ·îŒë’Ñåö¹ÆÖ� O¶›M„.ñlП(ì ´pd3(�xÍ­Kåò9t c[sCja8#ÔŠèÄðìQÜÏö�Æå¬[|Âîxº ‹C‘¶HGô·�Aç ¡œz£$]£q/,,)¼î³6Rj€Á…›T"rŽ2’›Æ" \¬¢éØ¡ø¨üLÃ¥±ÅÛ†»f&ÃÈÏihŒ%i]ô ;WI;‚p˜™æwkQâù0Ù5/,iøŠsFØ [5 r5wÜCÂz$av0nÌ¢wWA–¥Òƒ6»vˆÇbú YfÞ¥D‘üéÕ?�¥€œ+ÆìÑTãJ¥þ÷OðbIMÑH_ô m`ó”0K†8F^ZI:S\Œ^AO9ŸÙhîâw5ŽÃ]Ä]hßÃ\{,Õ­¥¬�¬aÑ�!öÝ7UûÐxÉ}íÂI¿3¨Û¸¬`| å#l°¦:Àô;åF vÁ"è&ÅÚêØ?ÓůeÒ�ãÖjò½‡üÒõ´ŽGOgÇ@ æq7˜Ì”íï ;³Yì<™k‚Þ.• ‹U×#çœÊ~»Ÿ›+ )Wü´s…ixoö,=&<Ù M:£qШ�¬06`OUt¦¥†ÔÇ];½fjLaÕ@æ èjo˜%fì“|=öB¼¡}>ˆÿè<µ@ù„v(7—ðçj—:œ6³Äër(X•#îö ý÷%_�ÎC^Ë–p1¯ºO?ãp¦1뿊¦Žý–‚–½”Œ ø nÞ5eó$)n.÷©K\¿ÇîVylçÂ%¤Ê°*ò ¾‰…LŽeeÞ"ïLíNØ,ÐÇ¡ÄE>þé× Gµ¬ÝH‘=Ø›æk‚߀<¦�ãgóÉ4�f¦Å\¦UÔ¤/1Â>mðQÚ¼íÙM …r„1òø¶âÏ’}»‹ü@BÙ/Œ!¶ÍG§)J¯ÃFœû;ìqŒ_n)—©Þ„Dd?u?Ôãѱ¢åAÒDÀ‘k†è;]âµ úÒ€+(*³o^¥o\…³™Òê|ÔÞõ¶ÅàE x䦷µjlßõM½š²;ôEwØ6ê«q+åè;ÞnLÊñX éú§Jº!ÛZ]²a�ø~´‡äàðË _Ã2;ßvŒ(+=zÀ(€š k Á~”ìq°�ÚÙ²Œç³ªë@)O}úiíg¤Ã„ïŸrCÕ ¹x°lvKDšŠ!ªY«ž*¹ð§{°³È'‹hÖ–¡N‚UýÇÙIw¼ì^¬$Á:ç¦FÕlDÿ<“ÿt¬ê-‹§ª Y­¼¹] ¤©÷‹ôji»”‚B"Í!¹ŸÏB&}A¼�þÛ—²/²´¥r;KÝSûuŠá'tý¥šß« ºx¦d°xà$~A½´DW†·h2º·&ÒN}(*bLKÔf…ëÄ�ìâõÍ ˜eùòBÅ�އÇðÝ1Ž™ÒIxOð›&:Y=„r¹ÅCPÀB;äiË^¼Öî¶›ŠGµdÈ*æ¨'ægxSZ_ —,þ,Ú$%iZ-ίv— ?ÀmÐ1Ù�}=Ó¢®auTì“N@.Æt^-# +ígmàXõx+øÃ¼ј¥" #]¼=EÖïxù{dfP�V;U›�õíŒø|)®¹dKݸo�{×Ð,ð×» ~ê㸠!6¥Ï>ãTi§-;)›?ŠâG�-ìØPNæiÍ5YwƱH²ÒÉsœCêMõÃ{E,‰1ZF¯˜§5’¬Îè ò³† ÕÊÃPa¥ñg[÷«Æ o6Àþ[–pïõtL ËãÕglÞî<� E9'zè©ëO‚ãS°C#P0'ò­´| ÷–¶˜5?ùæÏÃ#ckªí(3-ÕÐbã@ý¬ÁL.(¨tÙßãâõo œäÑW=0ÂÿÙ%o‚9~¶Ö))_†'\×Dé ¨T.ü¥ˆ#–ÏìÙ*Š/1�0>0?_I™â"ñØ[³¶©vGbKKˆ¦ ««i�ä%ÂX!ö†Q‚¨:بÎÖìÙ]F¨ª£áóŽ}ö)C/.èçô (*Ÿ¤biÏ‹ÌE0ÆQó †L¦œ"VŒ Æ:bõ^Gâ¾—T)ÈbSZʰ,ñ*¦{2à'3”Ò�C¡ Æ�áoô]•çÅ3 âw–j´îÙü‰þКZ 'rÚbàüfÎ�I#ž‡Ï�yS[\z_à?šÌ[žèþPÏ6‹oµ þJ{îUd…BÕé2í,}Õ>ýãÕ5mÂljK(epƒø´Æ0û3Úîxo·£Sâ&,ÇÑéæÒí ~¹µ ä"ȰØoÁx“æ;Ä fJ±sêy¼h_ñ i�ñ5ùS¦¹"¦Ù® f)?î;/„™5nh�ï@ßÅ|Îfß,‘¶§8Î\Ù=V7•Œ …Ýc�jYìYV*Ñ2hTvú•ô$ ÔÄmýÔÐÆw8(EFN¢4ôRlc´ e«=¡–¯þ¼Fo<×ðez¿‚g¹o3sìÌ»å·×îJ<ÖA°�IaÅ‚Ì:¸Û²nRö,v ?j­8úOkHôþsëߨ΋‡N»ÉšªƒçýîÏ÷ʘ{—/$Û“=½t ŸÍR?Ý[!¯¬Œq b$íEÿ �¿TøJ¨�¸p*‡:>·ÖP­<  yAÅÙk»R_(ÿYt~†HÇò䇸ˆÑžªiN®rÁ–wWÓkñßp¯Á»¤@T6ö“/¥UŒgÀ¤º¢oz<’Îk{ßdÄâú(y9øƒwCjëL±^¸ Ú­�E�/ûh¸ž¶ª3êá>3Ù]!®¯GÂñOIQ>êE F�g�Ö¬aô�WmùŒûÓŠ7—e´Ä&á–Qx£«šk*Ô°gÑèEü¦þz±�оDúÌãˆT0¦PfÝìÕè@¼M®H˜0î±µçŸjä óþÅ5O¹.AGßËö[ò{Œíû‰ý¥ÐÒ„«?s €èëê>û¶7(ûÖ–Ì_£º‘ˆ÷ÕÁïYþós{àò&cù\ 0¨oÞ`õ'¸LL‡·“ô°n+]’cŒTMÍO÷¨;ßìðuîÂp‘ŠjYµ4XyA�&^Â“ÝÆ¨0¢•IÚ³>8 ¼Æ…¾Í7o«áý…–;né÷{Ø·E‹ vøŠ8@úAå-¸"VD‘Õ¼ÎÅ‘•4[žC4±.ÍôŒ‚´Br_jT‘>#/¦�õrÏYô‚Ò@'�Œœà¦?¾ÿî{éÏú­fpËÂýHe²t³Á탬Ȧ¦Ð�’ü• r&y-î\âHpn,™ûq±9¹?Ò°%ïŽ ¢[”Á›óðf(`ˆ,× ž¬_ÑÈHɶ�.rÂÊü=VÃGD!³ñ&Û�9gJÞkFfÞ•pq˜~²úá; ùêÀ+Å÷TµjïÉa¼-ø{R(Áîê£óÿA3Ãÿ)ãsfšI˜khFøÔ¿8¹ls`�KKãþó#ú÷çl�³‚Tuù¾ÄÓä¬4Éêð7:fö±kº±õÇs¨Aú>ü.’]âq©* ’©uäJYÆ»¹_nƒ›p™f)ŽL‚~¶à§(y€O¨þ~Hƒ¯:ýH•¾­VLg¿€1¬çs<ðþÖ™ÖE èQáfÓ7� ´,ãæI$ژθ­‚–ûáä×€›oäv²Ï‰¬«Kt¤ ñ[ºdƒu…E¯hÕ%®8«>ÎáÇr�o�pV¬ q© �–ˆ”šZÏERú$ÄgÜÐk%Nù’Êv|hD²*›ƒ“ ¨9dÖ®A«Jæt÷ÀîV«oTIjÌCÕƒ -=näÀ1¸èMž@ƒNæíP”“”¹Ä”òÓÆ0″S¿L¥"¸ú�?V‰<Ñç΀ÓÕGæÆ:FËÉ"R"IÔ ½J2�°•ñ@�G­¢7­f$ðE á�„bW1PæX†€ìÚjï~ë]9W ûø µ€±^UÌ—õÊznL3ce—“O›Å J ĶØyà|ÐÈüb·/ ?âÊüÝÌÎ1ƒÖl)[¿~ÂDFutئiŽ•»æªÇªG½5…ì9•²l‘onRGƒ™hSoÍl«‚FÆÿƒÑ0‹!nʇX/¦ïÛå«‹ ‰±0¥7ócÛ_ Ôp FØbñøýÃ/8ÔØª4DÉZÂX bv �°vç:%ƒá·ót9ûð=#©ºÐaz?>n6¬|ÇC*ƒÁik`“"ˆÔ|“øÜ�"�­±ò£‡]Ð~e×K6[ßvN�=1t2X*àÒa!REZ žÝí‘4L_è·¨h9±SËwsôeqM=êãÄu±¿6޾7´ð²q¡6xh¤z�`ˇ1óâbseŒ@Lt byñ€ @§mÿY¾Éúä÷@'ˆŠ† $ ÎYÜÅÁ¸‹M¾½gCßs îÍ‘ý8Oè’r2®ZF1¡8•Õ4�ã3—‚ "…øé¨ë°>:$ʳ±,+JO—7‹„M7ðõ.ïo>m«uw€9ÙÆÊºOŸ¤CÑ$ºT5’ç*ãð—ê"ï+[Ž�ƒ¸.�œ|e+ˆù¼AŒkNv‘æðKhjзr.²^Ê:Q»Ë1^ÝâÀvo¯W £¾<‹‹ûçº ö½çƒ½&�æ é�à nf�Ýýv+9%õ.Xg)ªKG‘�“&~ÀcüÕê¦\ KÄž:аMK\]Â_s}Mf8E³JŽÜ€nèÎÍT𭉀ûž�ß:Ú¨óÑfh*-¬s(kÔKõû‘g«Æ&?œ9˜e[œL¦Œân»ö3Î "+ ›'ÄtؤÝð+}¨é'ö@SkdDŒ_*’‘AÜ)ÎÉø Õ!1p�‡;ˆƒŒf�j:®ÂÇÓ0žlwÀþz°gqˆô�§£iÝ?wr÷Œ£L£ZŠþ#_hÉÔ…‰º� ˆ ý°qj1 7sKem)]MÍ-»/,|…vë¨Ë¶fæÜ p–~BÁ3½ü–bù1B¸ëbFWÄåð¨P ’íl›©0~w! èCÑdò•zàÂCîA“<ƒ®Oòã*M y/ »KV¬MEb6C.üZ!_·²åò˜át'GM�[)§w$À*á;ÆV2æDê­ÇVƒt–{ÆÓô:*?€M¨Ÿ€L÷d––H!°„”󜲣u­Yö9 .G#^—<6J‰Üæ#X�r5jWïI‹ÀûLlú®ha# ¥p `ÍødIYò¡çV›Ò±8¨‚¨m!k7\¼�^''± ùÑós[Ô{þr^Ùôqôn€ ¶_X¶HÊøVOñ W#ýýrì~ zÕG¥âÌiêŸf<ÒÅ6 ¥¤½„¢ÿˬìkËê$èØß#Ú]ôÆo >L’Oy{¥£Då8¡T¸Î S0V¦WØúÈñdæwÜÃ’¯a6xþ3ÝkzI„’©NˆJébúȽôP†>¹Á„]úKEçöؼ…¬ãWÀk[©„éÖ~ ÇÔp¼†\ süE•¬¬½4â›!çóðVœH.˜žÚÚuk¢ªnŒ,h˜•î�§¾O³� -dZô3(¸ Õ`ˆÿwkQ˃“Å–·ÁÆáàoÛü³±ôJ0‡gԹƎfïT¹•²…Gò–Qfùgþ[Õç2Å#u¢þœG7æjè«6H³”šá¤ÒT‹¯†}µÌî^ÈØã?•/¨.ÎÖÛÓa�ÌKœüŽÌTI6xlr¥7¤î3mÜʹßý 7#£íB…]þRzµ:,›)ÓÈK™ŸR ¤d¼é‹èx—£-rÞ-×É[ð¯`?Ê—÷x€±÷m[ëBëáŸK©RP¼”†¯îû «­ÏÎÙ%æ%Ä2gê$‹£ D&Jµ>/ Œ^ªÃƒcòC–c{ƒÂB±Àp³1=¥Ï±9UŸÝë�ai´_Ÿ9Ø´Í®�Xƒ©3(ã¦Úï•æÏ�ëXÇR’èß…ZEÜïy楑áë0`cRÖ3Á ´ŸÎùÐsS›Ä$!Àbu"Þ¨_\Æ ‰Ã�:ÃÒÛ>7eêÀýKÞàNp0tíO5©µ·’¥†)‰±(ÄáØ$²5Á�mÕá�a~‹kÓœ"D»‹¯s²Ií0†8ÚX.ž¿ÀSb„z”&^R¤Þ¿Ú3l÷®„ù=7þ®xõãM·“%)é|Ç'ÏÙ+” °–[JØúS2+¾˜…wÈÖòà;ÖѬ/h [iïa):?¹Úä"è©Nea{}ËÜŠ-9lÀªEÿþð?äo¬¤¡Üoë-”¹ÓŠc,:¤ê´qK,M,óø_Ñ®N/™y6ú‰¯áü´*-5úÌ�Gˆ6†Éup€P³jªoC¼ö °^pÑ„sSSu-¥NóBN"ôŠ,vÎ7ü&‹dó^uÙ˜1“x­ÕÇË_sväd�ÊA^œCQG¢ÊÇuÅ÷N ;a=G€ œ.^�s©è<Ë7çõÞ²`SFÞʳ=,ó-Äü±,÷»Í«¨;ÚV¥w4¬çþ�N鋸3µ°k‹_,'QÛ”Î`\–] ä-íX ]0¥é$0S¥�¹$®¥—+<*qÅ�š_d¬aUŒ51a/¨û  ŽM~ Ðö�Y�w΃¨¬´Ø,3U¬@6¯‹§y]OT˜Ô:´Tä´ßxé º‚“$ÂIq9W¨©h»>‰Dº }ò°Ý—»Ïžz$±îáÂ�LÊÿ¤Ðs/pŽßÞ�ãèß+$ß‹¥¹Û䂃͚r‰£o0ÿÉ|ÇM¨…žÁÇ=íp©…×FdrŸâiDÈiV9{û�q XÝUÕÜ•Rc ïšØ-3¼©ÊX_R7Ís¥.-•‰©â8¨�\ÕÊÅN+ûh®–Êì73çëbw, ¹Žá<Åùlƒî7*OÌøIju*ªUWTª…胞yŽÝÓ¿tô§A‚½ª~´œŒ uw˜¡ybª§ªzƒRï碻ð|o]Ù¤_¥°ˆx\"åôÚÎF‹Ò^´×Õ¹ ú⢻†Gè;Lx¼(?ìÁ¤L¢KË_â«×ŸóCÓꬴ‘¿5�pyÆÉÍô5Çi.ç›pñÝ%$´qÕöHì}vâ™Û¼0ô‹+„ßÒʰgcVêíØ ‰ÔÅè.#±ŠIzäv×O`ê9Ǩ“RóóY„¾y3Èœf¥QçS2åµÿl ].Õw"ŠàŸÁÀ£W|#¼Vàrµ1Üå¨Ú5Byô÷µè~Íâ¿ÉŶã&Ë n–Ïœrx©ûÕ S©R Ð.äèä™ñÔS“(sQ莊l {ïÈðp *·ƒöZ5�N”~ŽÐ§uv­ýÕJÌ;)–ÃZ"ï®@P}º•Z†æÿØ.\Ù7Äd‚`y8Â0BÆœw9Sr4YlZd›!\âDCaÑøq¿…mélɧ?˜WS¹ìÕUC(,X»kƒ%/6d»I^¥¦ e§ù•Q¼F$®´H‘ÑaÕÓ´šøÙг”’ÆÁyÆY™uWBQóݲù¯H/¥�–QÚeÛahóžæh¸;-Êà»tcEÞJãQeÀ*“!vlOÏoÚ!_÷D×­ûMBÀz¥±#ìSIæì×}jlª t,¾Ò¼­ü'zБÂ�݉Šðx¹Ý«™åüb ˜4 ü�ö—íUY[ô…Ö øS§û¾[Ä·Õù�k+"m�™B:œÁ ¡<™fîomÜóf°Œéu'zÖþt[Ù6ŠþpÒ“e·Œ «�ªÌQ€žÀkpߟ 3Jü|I³š4>>ÙϦ.Œ@#� C`É�+ñšü- Á’°³úW '“Žßß%_ôüÊ¢†®–é ÚaWp¡W@äÇ Â!¾©Æ…«hllìUC ¬ÿñ�©oó,¥‰”Ò<1Wfm‰ñÎâ)~9îŽ !ŽÅñ:õKR–qánBÓivÝi‚a©9ÝWVOq\Íû>– £)ãgž€äèF¦é$.”Vߨ7¼¯¦ñ©Vâøú�Î U«ï„¨Sa ù#m†“®YŽ�¦yM[r¼ÆÎÔQýã‰5¡õWj°p\3ˆê‚®±*‚Ëp¸(Ø6ˆ­×P«pG])Ÿ`Ùo5hÆû’,›‡jZU6Ó+Ó"í"­³»­Aô‰òÚpšÇV¦§æHž¸Ù¼[;I‚˜ïoátö<%ˆ+V ´pš€™Ó�ª…Za²Ôþ2k?ìÚõ÷1ùCmÈ yôÝ‘Q\õâPcè.~ÁàŠ5±Î�õ†'‰.vQîa -óåe¾lÐ!-þ¨ ¯]Ae·ê�5ÍÃÝÓ�Äl䤿b°4LÈ„Œþç‹òVt?¢â*‚e¿êZ$Lüë\Éô+£cÑœ¶6ïïnvédw5öøªR‰äÚgêœX /yæ_rAP'wÎØË4(гXй5ö¢˜xz…i“Йmöõ eŽ/Z“€´‹ÁQ(±þ(ÿh´;ªNô©;cµŠ´Ú–$ƒ¨ä$ R6_³dn@¯%Ÿê]G™* ZF²Z«ö�鯰T^"L:/+åT9 ¿×ò:y’ô%ÁÊ‘©$•S�®Ð=ý§äV—ßú.GéeC�1|°®5rÿúÇ�w%WLF¯«g“Qäñ3}Í,öDsiœe²7ïQÑ…jûHÖ�Ñí§mßí—D÷)zä�wÆŒ?,�>ˆRóFâl%Æ€¿»‡]÷éÚF�…7ê…÷ œjF¾ì?ö�Þ©,l˜y“.ÿGż‡¸øbFŠ¥ÓP‚‰™ °¹ ˜mM}4:«pUG~®ëÓo½î’ÓM¤¶e|(3{©%Ü^¸YI•9ÑYñV¼vÎ^M#wêݹžzjヰT>{UMÂT÷^жM6ÿ�2´ q-'ÅÖ—Ìí…K ê:û§˜¶B£ì]1ØÅ�ŸÁŠÒUë�GÆ¢•’W"Cq!«Dâ²G�‰nkš±ú®³qôcë!Æ*Û+Fß Ô‚ðsm»oÄx[É,™¿ÕÕ뫞- ”ê×°L!Y˲ ¶è+Þ‘€_©DÇu)>í…dÏÅMG0·*Ðô�›ïA�ÉõʆÁ_O´ƒòîlqÏ…É3ÕðX!Mcã³ãUvÓ˜œhÇ®°/î=‚ÇÅ™�òBc|�é‡xÙ'Ói4y6âL-Dy uø‚¦˜ND¶eíKÚŒ?|‹›Ük ðâ=GýCé¼|&”ö¥å=0™º–?¡žðäíYb±0úYŽöì‚Qã•,‚öuX™-CЫËé¾tÜ$Þ™lP›^Ç/ H†«ûY�¥Å­ö,µa7‘<ŽÕ h1¡–™©–ÓõL!Ì - ¥•Hƒý”ßZÉ’ t°ÐÙ”‹‡ö®ÿ6['gïfšéŸhkwÛ o¢ñ`-S�3=X]CãKÂëÕPëJ~û¸EmøWÄÔfË;\ÅÕvf§=�ØÊ©‡KHÂ: �eòCɈ>!WȹÎÛWy8¼€=ŒúíÊÑ ø…Ií°s+ Ó�H-Ы͒@ÇÔLÜš¯e æØþÌTÈ¢ÜN²sK�£[•nrÀwõŒµ�b"ô·Wt·—vÜZûgf ~ש{]~E¡XÛ¨óŒ›þº\v«ê0�¦nÏ'–ÀªWT®ÃìV«‹&FݱÑÕ|É?ª¨‰cî‚°3ªY v7bz+ ‰Ü6¡tßfO¢ny¿c$!ܨ¶Tápž£9’/ÿQw ¶µž <~/í éIÆA†x¥2�´‡.DçÆ{nô �cüØ7OÃ4J$q•åËy[Û€mõCWØÍ�‚YšÈ*©)Iw»È•fK3¾Á‡¹)s‹ª·ÙáÜ¡\¬‰ñÒõ ùë©?°/?×(¨?•ËÄŠöÜMð#¯pù0Ú€ðèò“¼B³�ó„ïçý;/ÂÀyáþѨtÏ`Ý»½gé­� *º:ñ«C}¸Hø!þäQ¶ý0ÝØ\ΘӷAÂ}³Q$¦äÍtbéU+lÆ£µí’^»ã“@ê¥Ç™�O„!Nß°C) nÑ<|AÔ‹¯ì K<�ýË@�ˆú�ëû  +LêþŽ‹©7C-˜‰• –r¸µÊrn¬¸œí¿œÁÏ{úF)зa#3ÉWÛ¯ENá hùS|ãÂßnd©.y­JJŠ.fŸ¬D¢(\Iât¹�~%YpÆ|µQÓd.ÊE«ùÃJd"†5FY€€Ö†üûä ƒº1ðƒm_Š‚|ÏóW�³E¼lõÑqìȾr�Q}7 &T°\q¢*S9ðìõo¸àV*üîç:jmÊ}ëŽ)[f¢xHV@¾cW&ž/ž%ÜLûW�“'<¢l²z]ßËãa”ÁÿPR2˜më$“X÷j‹r¶r_Œ+¤ñúê²øBƒ«„Í,üç±bv: —"I·‹~1ª –’gNdêÅž0‡\¦‡­¯w‚’ÖFÓW« "J%74|HqËFpXQlCÄñJó†{~"Ý‚im{aoPOi. ¦g;"à*ý%¥/¨<ÜY\ u,¢e©2�ÒÿˆÒïŽ6�j:#Ëïe6]ƒp_øadrKÒfÛÔCz=ÒÝ•7A‰2·Gþˆ:Å<® @J²¨‘€À-ý;“§þU®g —á ÖÙ.Ù»kp2¯ì ƒÍÇQc‹öfGZòO>�YãÔ7*p_ÿ0EðÇö˜%Ÿ¨§6œ®ømO¹o¡·)ºQŒÓ#wPRÜœ¹ï¥SΠo3¾G×kN í~Buç:‹ žØÇ•.&К·ü‘�²»#ÆÔ]ÿ°ûu¶.Àãâ¤^Uñ‚K*|3kYõ3�žûÖ¦f­„kÂË*Br£±ÇÇ×'ú@"ÂÔÑYY†¯‡þ“Rjà 4–âÂ…èpÿA“´c�‰ž!ë&\R^v. gx'�ËÉà Mä<òh#Ì0‚~ÃÛÑÔçØos(¾E­#u †0¡ô¾…:˜ .Úº›U3”îÑP¢ÄÆ–å[=Žè×8'þ¦Ë� î¤]üxµ¢+lnM¥º¬ y3×]�¯ 'FAsÁ€z�õ4mQÿI‚"ëÃþçj�0´=Ýò:S”_Æ9�~óX{z€P±í°ÞáÙ©öG¼v7}�ˆw“gK}@@Œ2[[% ƒù;1wSç4/FáN,¸ÜÎÛ‚tUÖ“6“ã ª¤û’ eêB³­ÇîÙ€ÈØg ömÀßòheߟv½"2'òÏ‚š}•—g¯‡F!®É[çÆp¯¢Ü,*/¨ñLºXð ¯5 Á},öÏPî¹Sð!±ncŠ•\ˆÃKŽ´�õí(«æé]ª‹lDzI˜�6T,!œæñ‹^n/û*è*X.õ~LÆÜ4ßÐ#ú× �³´ÔB"[C½ä½!ÀòÅLn– áí¨¾rŠIázâ®Onô,Oád`¾6jê&¿¶�õà_]+ÂQ‡K|ªd[‹’ì¾6q—UËe¹œÀõAî㡬9�RZi¬oÔ,¢ý  xߨ<}møË¯Ã´ç•0é´ÙD׿då¿×%bñ4Z¹ýÅ#…:w”ÊÅ>þ€úZ±¢ïl‚Á�=˜•;Öh Q£ùLÙGJæj‹bŒ¡Ê]õuÚtÆû8›¾0¾Pqé¡ÒGLSÔ¤ `ê Õ½u> ñ“£hŽS´6+­o¡'¨T‹ã¹Øùë!iªcʼnèÑJZ2g!t�×Ä2¶h k¦(Q°î8À8Ãhˆ¬ް¹ê²>zµá’Ç€çî #¦RÚoîÓÔ��H&�bž¸w’Oõ†ò›¹�`×åO|å»:ŽÕäo œ>o¨¼/'ÛB…h‚–"¯Æ co`¥æ€Ç9J –û ¿jwAÎÍÉv¯Œgo�’ê`íÙ´@_ ×ES¿š ðôçü2˜Ùé|ÐêÂfø¿ ,‡(™ì?ɈóªØñ5eã?öô q£¥…mƒO˜3óƒ’;ýÖ³v…2¹³�ÿ—ô Ây ‚¼’iŠ�ŽÌR€°bÆ…®¶Ä: Þ}ô³‰u¢IK¯Ü¾ Û—Lvû˜\˜ôU×ÂɲYktYÑÄ>íÓcò2eG„ŠÄ6¹!mXÎèîçïµf žãA­cî‚Ñœi¬ù²˜`ðôC7éÍüÐ#T0��È!¡N]²wö…Æb±’z>=uf¥m`DiX$)¯M‡¤kÒÉzî^ͧmh\Æâ |Ýò÷Rš¬ ZjQÿEpµUðýzQ¶¨}Ú– 3«ÞNÎ9d‚£Èh1‰sTsgÍÛ3ƒ z*¡½á­¾¢�|qÙ¾Š�4Þ ¤¾Â 󻃿`<”9욬&K‡Ç@¨ðÞÞ6Îˉå–Ã~mA[>á " ‰�zÜ )u½<ç�ÚS6ñcÍ)? D3¨\©?Î�ù|Lè;”oÖ#·Ÿ�£&¸Ï8úã_ u9R¬cô�?`ì'-3¯…ê ^óŒ;œc&·¤K¯W<Ëf#Ôþ€³·1ëLÄ•ηøcÃ¥ÿN^6ÃÎÚ~:ƒ&éö4·J×zÒ9rhUÏncÓÂz³.½êó¦³Î^·Õ~"{JýöV�g"w=R‰ÙÞ1í>„=G�‹‡žI„?~È •щNú]E.e|„îeL 2–cÄ”˜ïíg^[Ãà¹×&Áx"C–Ç®ïh²<+Ž‹×䈥 Ä:è;;Š7±ÓïP`4v´r0R«’œ´nY\§w„Ì90DÝtéõÁ¾œ!ò/ICÚ´†ˆ#WÉ$€W:êC³mÖœãÈ©K4ÚàïÜ9÷‚„sr¶›5ÒÎPÖ atœY¡ôh §búªL•­ëEmçü£Ë3�äp/ôu጖Í2~2ß”¬D:Üÿàí³ÃV݇¬DgS·ý¥ž¼qïfÍÝ,¢RkƲ†¹¿[™a°C#„¶)l÷»‹üȽÚQ Ú[æ�­„X 7ÙöxHkä's�Ôb’i�¸øïú‡6âöÀÿÜu!šÙZé(×MÃKâêÿ«¶ùÿÌY‡¡X§¹\L“žè˜zøßÕr41p¶süÑĘÀЃÀÞÀ‘ÑÈÆØÚÂÖ„ÀÕÄÑÉÂΖ€ž–õ?Àÿ碥s6qr¦uµ³¦ge¢be¦ý?ªÿQçÿNôÿ+3óÿÿ£ÿ—È@ÏÂLÏÀ ÀÀÈÄDÏÌÆÆÄÀ@ÏÀÈÆÌ@@ÿÿã÷ø¿”‹“³�#€£��óÿ]Þ÷üÿOõ_÷œŸƒ»úøË[ÊåÝ1Û·çøþãYÚ–}ËKT)uc=é0ž"tѰÿ*qåh&VÍ{³­•Jã੊;ò˜<ðv12€g—Æì΢üšº¹ü¯ü¨kðZô]úë±4;÷ƒ••ÿŽÏÿÏH¯ž–šì H9O÷Á³œåKcܱs8 âöD?§ƒ†[[co(1î\)š!cI˜§$®1 �ʹb+äåJ¨4—£r¨ËÔÄÇ«šüw|�ÿx¦£Mr?¼7Ô´†  (¢KÈg”gY0ï¡–ø(J¬i•y’Œ� uï­©C“�Æ.´’[q½þd.þ+_W¥6ì�“ãû�Í9 °å¿ã þÇÓ}†àa¼j³J|ʲ!í@ûƱÂ1S;x@Ïg|Ìú(D¹Ÿm2ñ ¬ÿ’?GËÏ~î€[½Öæ}ýmÙ?ô¿øÁÿ“OÿdhIj:ŽT™� þ¢ö¿ã‹ZX››8ý×>G/¤’:Üè%àP߸TZÄKÓžÕìñÏ ï‹hTh%…s ðÿäüŸ]ÇØÀÙàÿâ5J¨º©ðÌÊ Y—íø÷ß­�Ð<4�:ˆ€~5Uuí½zÏoó8ê±Ñ¨¾:®ç¶[ ¥!‡´¦\.È` ©žÀâK0yøÉîþ4ŤÎRÿ•?ï„2€FvƒªÚ ¯aaúßñ…ÿã©Z‰­]BƒXeÊëÇÁ %´Ix…õSe©Óä/H,�#°Xn.ÿ»¦Åƒ±Ì|zO)oñ$ÅaTû¯üeé’ìÏ™>}_n±.à › ÿŽ/òOò¸Bô ¦¿˜wî2•шK5<(Ëð^-ÄpkÙ™"Î%'‘ýaÃ��ûxñNKXšºT‰Ú�å‚P'ÂÿóÜËøüž˜5èûIj³aHêv/õÿ_BTéÿXúÿ·³NmY—öoêí�ÚYS9al<Sˆ(�(eÃÔNÙ$6¤Ú :; cž€Þ,ÍXÍ}ò�X¤Ýg� éœÄ¹Hx,€ Vó„ñ²&,³˜Ô¿=•7 ¿íjP»ï™°ùw�‹8`ôñÈµÏ ÖÉßCÕˆÕ°ƒÑ8PÕ±s D»8P¸j•…P w;¼øVx(} ™-©ÀƹùŽ]¬ë‰LzY”J@ƒ„‰1ûÛ¿`¨ÍÙRR?Ū;{­;˘_äŽDKØÃ§uW8ˆ­=Ô–$�s,&ŒÕBü qN½u}^Ôe²*írû`c_«`J?eþÿ€êNBPª_ªÒ„º{+Þ1%a ÷!Ÿ}µEUÊÚ = w´�Í¢‘¢<Ø…1ulã_¿òU‘zÖìB\m¾äp•Xn=ÜJc…†ÎÎï.>!R%㊨#" �H V~˜èRù3ôF˜´þ—$˜ë$Ƥq¿ž¿  ›•Ì”zcÄ€Y0äj-ú)ÉÙz{Ð;O£;;I‚^ 5J^¹ãõ¦zN!zH.kfôûFð—ðü‰ÞÖ=ãù—¡›|¯ÊkükÒZÅuDâ­KE §6ƒ±ÒŸfãâ�uÂzéð¼L§ÄÑ).Î?]> „Zrõ®µÛÙØ‡Ò똧¿ŠM‡­UÙk ±^c˜ÍÍ5•ôN®ÿÓûô7o—lã,ÈcI@À%Œ>Äç~/Ù ÖÍ|¹}žÛªßç²£Êi]oÎDËx–;T|u›Ñç�\àUœ Wþ îicåõ£#J­—6’‹¿‹´ù ¹ÎP5ž4áÎ-‚™€ëd ᆂs›8 .½Imè0�ൽÑJET�óNS¨˜J­1Ý¡¸`€'¥íhðVŒEø<âY>Ð#_¤Ð„ DŠðè ¬ˆžÝ²)0°{.Ÿ|Ô|ÌÊܽ8ÉÝ/ļñ¿D2+ãä † in[v±|\Þ´î\Ô19GÛQ©”ùÿ¡º¹ôœ�ê#\«ê¶²){ã�‘êóÚ �áÏw TúY�‰5vÈDÈ®› Íô-  ‹Â€ì±õ\oFúB«|’KÂpN2‚4¸Ùj“¬aÑ5"RÝã,œ•y'”µm× v¸ ëüÁ�\ÛÌ AUØ8Ò»�Žv:~Ê',ÊùaÅã¸Âd´…M¶¨ ‡Ätnu(u�7±á˜Ê�‰�‡»èV½™»5«ï†JD¥ÜrÁv £þœ�Šbqe²%‘Þ�]ŽÍÂÊQµ!Ö�åJ/úÊIçC¨Ž‹N–QW—a)%Y4í%¿ØãßNÙ#íª`òÇ'xÙŠ �néh;„¬w�uC¾M$|`.«Qø2Ü7Ö>û³è­_šËHO…º‰Ô¯éHçz(Gëj©û *Õ±¯Ž€¶5*ªBÿ ;C7Ê÷Bq¬!ÈÕ6äê:Êß·Î.Ö+t�[q[°·ðnÒ¿Î`n ÏY·g^�åßžž"á,G ™ç!æwÚ&‡ÏYcí쌅zPû¯”6œ*9Ig•ØwZÒÐ~ã¿óÛ6G<¼êU0.¡ý±�T#Žü»ÉãpÔœ/ ë÷\ÆTƒ}ZÄd}ïÇÞ+õªÛ\%,Qÿdw Ó?Œà«__ða¾®ÿ_3wÖ©èÔk& &‹[|ªr²0¯®Íj:tc�2^.M�ÏÿAÔè€m�ñ&oy ´ûàúÁÑ?Ø.Û\UïòµgI?ÙÉw®/¾]Ä©×!p1Þ¶­ÀØ“1’i›Û…%ý¯V=¡ˆl/Õo$%´ÿÇVÙh̪9fÎÏ+ôȵž0À~ÂkƒtN„7ÞgæË'E‚ö8° ÓH³›ðŒ{Ã:°x›¯¬íƕ볋½#ÛZÐÿ¼ÑQ‰'B®×r8y6GUê•wòOŽÚ¦\bÜU-¨JYI ÿþA_66òð»‰Æ·“��k5¬?à÷;b‚ù‰ ÎU"t§f~ôO½RÄ«{­ëT™úàe/M�‹5;—ù§¢÷bWVžs̉·è6«²¨îdMÕCç[ѱø.±„çúVB&7 {6‰m·:‚Ûiå©¢ž÷I�mø¨5rÖz*ö�Ü ¿À A@Èñ“šÞ¢_h�üß-÷ƒá[I ê5 p�ƒj9 g˜U¹õ�t§GHÖ¾Îý fDг ŸÑKwY]ÿÃ�„ü OóP,cã•-†R%Þ]®Ïj'`S™›xÐÉ/Å@g�ìÄ(—þÊ^èɨ₣R{…W• ÙGE©ƒ(ZWt®½Y¼qŽ=èåÞc-ãi%z´e’/® {½Yeq¦g@ìð¿2OÓÍ55R‚÷Oàùj‰Ùwê`_í1áFIE{Ó»Ìæµ·¶p0¶xäE½ñ³¸^t!KFJ7ܤ¶B-Ê/ „5†Î3ô;bJ·6 zýÅÓrZ~äcÃxßìAÔfsuÍ@ÍoïÏžkþ|Lh t ·=I¨ræÏÑ{k’ÏË2 cÀNð9R+ù;¶Áˆ¢Æ˜c-ÆI?¶“7³œûÎd­hF»Í—¿¾þ¹'Ë«bíA Fñ5¤›¬ì²RY’ØM¤ÝSµeL÷Yâ�y3G¡˜µ•¤åú¹›fPÚÿdRÍB•$\"Ú±‘Vkém’vB"ÀNXQžÜ–?T…Užót ŒQ~@ôŽ@¥:?ó{î•Ôœ•)à—`°Ï'1ÉëâÛ¾vs4y#ö�´ITâö¤Ó4J†Ô„p*f9½ÀíbËRíÖY5xÆ;gÒ뿟7$=Fø>]Ðûú4›W½´�ê»[†ëã�éÓa¾/’ex¼< šs%ñ%ù—NÚp #ü؈1¸g‘÷¥êÎ’ -ú tÿ¡;öos}†m_=_²¢]|¼-í-õ™¨Å‡g&{@Ùå™}¦ÿ‘iªV?aïf­f Ugi†dtUHPtçéq�´•7omI,¤3�ô·*,zTæî®÷aëžmS4S¬§4™r(„R%>í=Í�ÖiO»®s,¸ü†à íÿ‡ó–+|ìúP•ðÀ¼ïÄ‹‘¿hšu„g†ñƒžJ‹Ç®v/Ž*T¨pŽûöÔÈú¸(,ú÷##°6LÔÝë-¶Ä>9ïÚÀ³­ÒÒ“ƒ¿æe¢T9â«¿êç4ËiLþÝpr«ùUøNW46åè2ùupŽ�å3 =NÅžÓùyþ^̤‹Ìlï¼@•Uå†åuÐöuw‰{SWš™ †òI«ÜÁA"ÿ‰L‡£¡G•å7QÑs¦0“[×QÆæÇ# zÝ?‹œ 0tqß•×ÔÛÁ¤³ºpàuDh]¸‡bíú�DJsˆ¸7 ›Š†é0$ÂöçÙnýo7!7Âàãÿ¡0¬žIrµ–ÒŠ:NPàšBXäËAÇ6EêëÅÈëZ {Ì»®búa˜Ó¬áº9—E¤Óþö§0ö&‡!³]®Á}è”µÙÆMÉ1åø 85$ULa¢ÿ{ G1¹åM6¯ì·Æ#p»ï¦¯1N‚5tƒ‚ F ½(“Aûȧþ]VpHBqÙ¥DµX�Õ ÙDpî”�׎ð˳¿‡¬�MjÔÁnSdµÛXd¼ôèú¹u‡ÊdÁ:ŒÜ<ïÄ#oò&‰>NûsøÁnZ2ÃpÕ‡ͪn¿&´Þç|6%kÆ’ú0²ó¶�ÄU[º£�.Ÿ²ÊmK›À .îUq°~–�)u?Yò4à%*vdîRg7QgMï[*³´ç¬#—KŽá¤3œº>§¾ÂÄ–Kw”ÂÙð&ä]Û|¦‰%`´m‘¦ ‰[3b"¦�Ð/ ïäÕ="‰ëmŽþ"Ú…—›î·—B—nç#5΂uÌû㻋ëÆò|Uþ‹Øú ’ñŠ� ú%µÙÿL­ÃüNó5²6¨¯Þ©šbW½½&šîJ\ ál9÷MÒ(‰›dÊøVqò€ƒvÅc^•žÇ¶¥~„娀PÔqu±„(£Ù˜P jˆ ´Ýà¾8Š®rjò,‚/»•�È|Çxñ6bŠtÂÕwC5¾Ç³.ª&.U ’Ú9 i†K)øñ‚Y ^�·‹÷jÞúær9:þ²³›õ…Š‚ôJÔ�nû´þÅB¬­Œ(J_ŧ'ŠžNHƒvžwoñáØAWp¹gß1EÒÇÄ ºÆø8[ÈÓ]»03†r´k-ðIaÑ úcÇì©;‘íA!ŽC°˜{ÝÜ�ÛTõÞàöõŠ€ÁŽ�ãè²ùIγN—éGÔùì¢Cm$Oö…¾aÙZì¢�þQŒö™È$çóçdºä€$»E¬Õê\Ž„ì®Ý_šÈªüöDœà|íd ¢Dç»±ÕÆd¼Jæ4?„y°^Æ^ž8U´Ú­6NK±õ5!ä– I�bù†N{ÝbýòŸûª[À½uàGmC.‘qï…~]‹s×ÏŒÇrR¼W6ð:àMøuÒq¢bà{¤f«€ qIww®!úz/lªŠäÂU&™Q.àw#w÷ç¢ûã$«s�ª‹#5µ‹Ûöý—œ”eK=>* ñ`õHfðê˹}¸_&ˬG,>žiJ‹(‹ß´«@|ü4Vøë dNLß�@Û¹¹Ô ”EæÞŸì6ÓyÜätv�#nŽÞñž58Y1u]QâÀÞ«•µæåzZhYFj Á‚“Œ'ðÓÿMjJÊÑ!{ô…£¬Ë«T­W@‹Ù¥ 7>µ14¾ÁÁSJúÍXwË—(ö2"Ÿ_ªySsüHiYè9LÇë«û�}ãSy9 Ìüô¥õ¨Õé~.Å_ü:ïÃkó!Æá6h,ÄSÖœÏD7š±îG Ý\9d ¯AŠYÕ–’%"¼jP}V+¢8OxbzÝFFár¢ Öå©Û¼ñþqv儇 �XŠí”Û8 ÀsXÈZ‰»¢?í¡úY�Ü®íÔÞ`ô'Êìµ²«¾.ýÔðd™j0–$|г43¹�;åztdÂLIÔVäÈç*ÍŸ”B£Ôø }éšòP˜Ãâ*€ÓÛ5ø­7e0]»tíEf£°¶ä×EÍcʧ@t@…§ !„ŸKhW-oRàÎ ïâêóê Œû’’KQe"§Ë¾ g+ô';‚c�ËdBzºW½Sð/žÛ9•IÕ^¿š>â4£Túí;•ÝP[(@dÈwè�Z“´äRL–Â!aéÞaÁ¶Un}òû§a/?Y-F£ñ}[b¶¶ fB�ba¿øR.3{ìqL-Rù¬L4MA‰l|§ãë§·„ƒ"ô�§¾–�¢2ã�„� M¬M™–LùÑÀð x> 0 ´¼»¤ã£åàÚôÜñõuÓ*D衜è|Ÿÿ9wì`Ã�(~¡‹…&”®Ž¦§I©—8Ø~üPê pt#Õ˜ÿI°´L$SÙÁñÖ0eP‹WªùÑmÉÖÿ @\Hú›M;].¹Ñ1�m'§1ý’G²ÊùDèÚZBb±{ ºV›¿ S<Å(:gò ‡Zx€ò¬ã…]B4<6™¹«´�U Ò{޳!"kù‘ß•‡Ï�2敪ZŸ�Ðø]�).`LîÖEú¨æ+ƒò¤�Dþ¾©ÐºÍŠ|@  D:c(Húù¬°�¹WEãò ¹©mrœ0¤êj�­@äKórÌ=)àŒ¼%©èóÞö¤?¦žV¸æ ¤°ÕèÕì?x·[�ba¸^Ùl}¶JvöшçÃú·³€õFé;ЬœûAú)p°žAòÄj]iAƒ [N0w–M8¶ ß›»’àù»Ro9AˆãÃį@æ¤I¸ŒˆÈè­ð&V>ƒ!„vJáÁŸgÆçëÁ7·« Žo—ðÅB^÷&iãáŽ[Q#• ’†m¢��êZ�Ä9ƒoæÁLBH{ö›7%&U°‘ ]�U)}¡Ìÿt‰,à9„åùŽØÒÀ.æ íô;|mŠŽ&d(ìã ÷r¦2ànW½ó†¦ÉaûöµUÐ?ȸvt}¾ñƒ eàJ±º1UR7!ëÛ²…êJ™Ë\ÿÀ¼àñgjRó¥'…E>Ÿn™§º"=å88Pb†h•¡Ù0ô(ˆ>“Òl vÔRþÃE�°ôr…á!û-›${B\ŸDu°ÕìTœ`ÿ £­#ô¼—¸/kˆÄBÍ_ÏÊÆõ¾¡JÀú°Ä�HqtäÖ¥ NgMÑ)‹Î”¸Ð“œÊwd|6à2ŠÙ!ð%†ìŠœ^žVEî_½õ¬¬íð…HàÁ°:8­”fFèFÚø¦.\%ÿÚ¿¼Z¾BrÄ…‡I졌Ûõ‰ÕÛÉ…°þQU�ê¸Îë ÛÌx€ånSôdè3‘ó¶†�É嘶û"ó¾od&.8ÍK}.ìÌÆS˜}2$Zê¤ð×g½ø1ÌÇ‹Uø ØÉˆ¯têûÞ`1}VÆô�¬^Ñv ƒ<ÝþÖ+µÛ |¶zÂôÚŸ�p‚KmåÒëj±ÆÕ陞¿û>´ÈƉŸÜG£5N©»‡b ]2‘y�>(´N]UxÔG´ÂÞíŒÄjÀ’ Kú�“Fþ Ûª4ËË‚n¬”,¼¢p~Éÿ2ô…c¨O©H‡ê®Øÿžaóžmåc-ÆÊ‰¨r þM%I ¹†�P}a¶0oÑ`�ƒlô¨S!×l•Ï`÷¬k7h†à£S¾ÑˆÁV›ä–�›{Ýo« Ôó½?x“‰™ Ô/雿õ4V»£=AøVšTo%¢“]ã¶Œ¹%2žS =¦Ý.†–S´sû9‘6=b¶™·¨K[ó¬TvWUd™Ö¡½ï*¼øc8Î^0©f¸Q–t0‘"®á%\£"(bw�´ú‰Ù{îýGŠ\§¶œ´ÔúNñ-Õ%*6¬äCöÃÔ’rYΈ¤ËD-Búh1€"ø—GLõßÈšmçô$Aþp�¼¿½ÜV;™Íõ}ª_L˜ÿ¬l÷[{¤›‡Iµ±Æ¼X@€RÐÝê^¿�n˜â <+_®Ä„Ïo¡Š`Ùƒù+MòžX ËQ˜„r1‹…Z+®…S¢«Ö7¼—¥í§rn@p`CN0—ð7ˆcÅU?;¨K ÖOF£Þ„ž#yZŸ§×XªÂŠÀý‚™EèÅE]Ö€½XJê#ïæñLs¦%ÕB²`|ùß7Áœ>B«âЧp�ò3ÍôÞÙÝ>�‡—”‚ð³†ÐÿšçJÍ”âÛuù-@ é‹§A¦éA*µ ,21]xCè™UèÂê†\¾¢¿´ñó*Çys*Øò¯>Ðu¸-ðý€7þX>Koö†¼¿Û“âcس�"nڑȬí)ê w›—ÚPMsÞNq1ѤK(:ZòGêÊÕ˜Æ ×ÍdqyÙsˆß�÷R=;?M°™æ�[#'\âÏÄ+f»/͈2!Œjv|,õŒŠw)°‚jï’¿ô ³ªæFÖÐt‚Ôìã¼§ÅëJÉ3„:obOØžI0ª9R ¡ïlbÚÒ)Í[Ø "`;…gÑD¬ÍîâÔátJƒäª¾Q‹„×áz+Wpl¡Y<„ý®~.û¢Š·ˆßÀT´„G+Ìæ{`#ÄëÉ"¤Vi~i£ªUÄò‘ùq3°ü,óUYî£+êr¹ãݯs†Ð”Íš× ²êIcìÕû†Ðzè<Ë”ábò‹‰SfŠ*僜DA†<î­Ö”ÎG¢ä¨¯½?7šºÁ¾ðÒØw…>oÇh÷\ÊŠ*6š×â” Ù=%ÿóA dÆíHË2y'ƒk¶úZz©Õk™sƒÈóhE†þá¾7Lu²4Ñ�R¨´ù•l®îú\Ü ®yâ~³gÏÊ«*³œS ¶u8&ÕÉ|_ÅÙ‘ÇHQ•HÖ…C?ì ûx¡«ÏÙcJ>pÿZ)‘Õ^ 0a¬™@"ÀJ<­éÛ8qÐèL¨DV¤CæÑ@Zó«MúA”¸%}mÔä‚QJP_ËRKQ«…c�¨g ÏÝg9‚$Ñ”¬$è‡èŠð:V[\Jâ>Qµ &3¸tŸ°[O;Ò±ø€i!Óq6Ge?²©Fv °Tø€>ZÞtC•VòtÆDS¿M™6‰ñh‚ÁÛQ^ÉÜÖ?äù‡©„õð&}jä€-1D’…òÛZOBa}#½ @Î�ï„Uá±ãsˆ_À=v> Î ‡|%ò;e”϶†äl†u#Œ5]ʶYÓꯌa"_aµ¸7œc[ÿåÒ–[#Yì©ë ©(Í þVxõ¿)gtLàé½+ ~}§Ð}àœŠ+ãR£ë5绕}™ Åî¬k&#˜XÚ¾·DÔ÷'.`ÈŒ­ €é�–XU�ÌAf D©lîò—a·’s¤\^ðÏ<)ŠŒã NËo¿« ü·U“Ù‰púx%Ó[ð¨bÄ¥î„Âv'�޼×È $*ç]¡•òæh¸Á¤b�‹ye´çG"Ê[Ä3È4=.|!�œˆY¯QÄ ]\¨Ò{Ð>7ÕmÊ›"X„…úC/^ ” lˆ,)›éÐ1ŒSèN=úw þÓ0˜6”°öá"%}Ó×M¢S†ê¨×úñL]Ž-%`^È÷Î?@Ì‚T,Š>Bìe-‰¶Nnö+$ä<æö %ß�5å 6;†^8y¶¡3ªv .«%3 >''{#µ_G÷#�ñ n&hÊ«~)WBLA´„Ó„dM Ó|Õ³¸Eä¦P+/ŽVº·�ÿ|½¿“Kb梇ü Í'}�OqÙ³™sªœ¢HQ{RýÓ¯ Ì5K¤þl™šãêá+`…u~bâ”ù»Z¯p�Ô ¯µ¬w€¦ƒ&_¢$6t�¾zˆý�ø8òcoþ;–é5oy0êR¼ÝÑ£˜nLŒûЭ­Ê—gÉT�WÛNO{1tG«&(àw”5#Iî®¶ÜJÛ²[½W…DÑÀŸIuu jšU}·s=X6ð�=EŸŠµÑ)Ž"æcŽŸ~d¦- íOc¼¸|l,—4�åýûÒ£‡+$?³ãóDu<µ½È9Ž–Tþ76á�¦qJÝ’¸¿ù|]YJ’5ý샧SüÍ÷àÒ‡þHÓúj”(XÁ¡U R«­rd_iÛŠc­¶ |y•=¿ë±¢a2Î ‘¹,–Ô¿’”ûOp‹÷‹“dÎâsŒ qÓ¸J\nÓ˜ÿ)KDƒßïRNHCs ÃÒžšÇxBþ;W8e}¹ÍLËAÈô KÕÀüH©Ð7º‘¤CB™¶ôa>?dJ‰Zü.û•oØÒæ‚îã äØVÜŽ¢S3+ÿs³¦�\U¤È ©k7ÑŠzt¥�Ä䓇ãÄðgõN­S/ Þ¡Q– M;" rUº¦˜Á¶;èº <3ÒRÿ®‘ "ïׂF+ =â¹¥sŽ#ï³^¸À»œ�Þá1ßÂŽÛÜ„¼#”î¬}n¾»ÒÜ~‚h7åjÑIa3w†Ñ‰º?»ÕÔ1š¥æUÑÌU!”¸'ˆ= ÉHêJC{Öúo³gbŽNi¿:æpfŒóツiÎË‚ñ>ñ„u)™æéq_±ØŽ$ÌþiÞ®R&£Yýœ_ëh žƒÄ.ÓHgUÕ\÷š¯ÈpÃa&ý²Œ�Ä®eÂÌ"�¼‡Û­Rܳð«2ײHH Ô|Î�n®—är7ú�6ÓAÃÊ‚ Õ±ÍnC˜rRݯçNU�9uá}ù��¸ gYLÃùùÁ?YXý(a*Ç´{ÒÝúI\Uw¸/ œüAGh † MZ·J×…²9G�ïxÊẨ�¶Ã�þŠA  ­Ô£ÓTým«{…gG&S ê[G8è@ãíi`+,µÇŒ¼¨ãaÚOÊmHüO4µngB©SkþlÞ5¿þÂúÀ�©Å…P¼OhÕô8 Êùé’ÌÓö,‡Ð� B™£§>Þß«µñh.»«Øè–>¾S½VÍ»%˜Û8Nߢóùû™¤‡³Éé“#·b–òsp»{—€Ä-�ï¬[½¡cÃ5²Œ±[C’­Ä‚Ëà*o€¨%Ã>hÇúV’uÚ¡~8¤`[29b¼vŠÞhI{AŽ7—»Ü6Ú*IeZû©Ã‡ŽÄÅ-ñ±îÏûmF©¿Ñ ÞR Æ¶S(¦_tºÞÖ”µ~¦Ó—¹Rh“ú4õNPcLb ÙŠÚÙH9 öžXß9+Þs&�–v @¦­ÇÑtš^À±õKø( ËÒ6 —Æõ� ØÖc| È£Âè7üäOå“tPüw=ã Ó/ýìÇø %¥Qb0½kÎÒiÍ`ýzôùo=hOd{�¬õWhï_½šî·eû�¹VZÛœž`rÏD“îûËÈóä>j�ºÃNeŸý^D³×Öù ñq%Ç!º«˜P×¨Ö —ÆSƒ¦ÓO÷<‹Áä�ÝF; 9O0„ãg}Ò«çnv˜º¨ú9=±ùdÏm©íÊ-ÝEU4g!,\÷ NŽ«Õ}Y®$ á¼óüYÏ©s¥cÉÒÐÎiÎâHD¤UHÀýÚIm•ücsš‚ÞÅR£œòõVæ—”0úüçÓ´m/¯òÂsI>04hS½cÿç•”T Çç8¨Û†ŒÏ¿qá+èO iÄmØ“Ywã5¯ˆKË{¢ã2ìÁ©9~ÙÏtÕ) RžFЙ13èP…@S ÝéæÜ«o™e’¼@-Þoð‚®�OËwñì´Õ3j6_4Ù W“„©Ó¹ WM·‚$õê#—ÄOÿ!’"Ć�8¶ i¥…³ë—;«ÞÖ ¦ÛHÁD6¦¾k|Bdø?“î§{ªáðÙþ�¸S†­ÄS‡Hx¨¢çÔR’l(4_Œw»ÿ9è°|Å]Æø¸Ä.¥&<)hÕd*Óû�š`ïF¦›>`2ˆ"‹qRR¢€Äâ�9ª¨§1ÓõaQûÈ Í !Wàg–ëýž!ã£mTo�ƒµLÂMQ5Ö®]É@Åêšé›ÛGrøx=T(h˜<šõ£6(¢'î‚\ºjú&qÚ®&q¦x=i‰põ¨f:1”=wc²·’Ý´‹¼ò!7ºIAYŽ*EÒåW‰ç³øJxBqAØ õ¡5’=¬’�©íY0ÜVFgòžJ’9¬ÕKaoÅÙ„-�ŠÊNØDÈ­(ô’OS( ww_×�2ˆþ(²½Ð‚ç3'bæî{æï· FY%R1Pžá-SHÊîÍñ îWHxEå°;˜ø›RSÒ,S7v*‘pƒÂ­z¿{ál±'Íþ¤é€&ýüDƒ¸ û~ª-ÐàÆäÄÇGE< ¥Ø!ôÈNœÏòÖ¯T ©ÉteÀGb¦óàɺ‚Ž{-AÈ•³²tù1úû¸P–­¡Z©“Èp»¶•ûÖ.lÓðÝ¥LÉ›9Ì\Σ;�´'©G]iþs‹ 9,±bˆMóWéBâz_!Ôú‰“ûœoÙê�µ‚#ü8«¯nZ(ÍbÛ5ç j°'L³¼u[½8ב¾œ‹Ò&®uùA3U«®À2lJ¯PV_ÂÑo“ìn!‰Ê>ÁѲ&ER; ˆU¹V‡�ÜøŠ{¾€Ê'çÅŽæyü°)ñô=ÐÙ0ÆBç�¡”Ä j(RjK“ek|Qõ&E¢: �ìjâw�—éèö^¾XHŽBûi­s@“`"�E±„Œ{—'‘E …5ím$I Ä!ªÓ“`ZÜ¿F°Î·%ž˜CûöÃLõTÞ‹xèBôæb͘¨†ŽÎŠ“©~V¦@õÃAv•._Ð>¡¿Þ[ö�ì#‰‰‰j¨Þ�3£Ð{µ8ÚÀѬ¶bÝ2ÖÑ@�ÂnÅ ¯ýKü΄÷sáó„%ˆLï+e“ÃfY.š£vÔr­è¸M .\‚2í0Ec =ç2=c¬Ô_%·À/W˜ È&)mu6È5˜[âaæŸÍÊ(Ö‘–s­:ŒõkR+¦H6Âôí9ó6À®‡á¢4£ä»ÅÜ‰Ê [üÕñ}ÊÎób’£äÚˆB´’ÙåmOªÒš�šTcE²1dΨÊ�·*-)šb’ÞÙçoÙ {²Å!g°ª°lKØêe¶ye+ ‹ØÁóë—)B£ž€:ð a襵SŽMqò�8tÁ_t]Ú{�ëÏ"OÖEÌ>œ‹˜ >üÐìPzMñ}Á‰7¼jáÛà¿’öækEg’7‘+§õv}¤Éþ‘ [ÖîsÉbn�/îâË£Cä`µ/¡Í(šA—îkIcF1”¬?uúªò¹Øl]¼Sò×Y*E„¿Íé�ʸû»ÿPo<…Ý©X˜yá�…|*y¢Á˜èn¯s6ö/B.ò“�š«ÜøL¡Bq*.“�\ @”D¬æí°ÆÈ'�0#(ÿ7 ù[Heud¸4‚«:Q¾,–zdˆ¡Yå©tÄ!ÄÀH¡gl º‡ïg #N»iÃÛ¶n¸Ö[`Fx€œÃòþ¨§vC¿ëŒú§1Õj¼=#·Ä™«Yqøï^”‰õðå³BÂhÕÆîˆA0k7¼ ÎÓIrºm-�»K¿´4c†—fÈVÝQô�tF¶õlŸ·½:K2ÏÀï¢1Æ€Êiàås3_ò…ë&ᜡ/bXàÐà ´œmKào¦Ñ'ª&7—yÐd3ùós�ð+F§lÂ5­‹åE&EÄpëËš�FI‹Øà9¥PÇTWåÛ~ÇÊņ›¶%Ü­ëé,žÿ�mÀ,í݆ÙÜùѦû6ù éV® Ö= ¦ˆ2Y[lêד½«6“ÞêÁñ~]hJÉ6•@÷¶´¸ÅT5N‘‹_Dz4öµßÞcHSQ]ópŠΪ$d–½¿w³ØcE¨"º•÷«-¦&5+®äµvL뱫;{9Œn·±&á0bÉúøÂƃBØ”×7¨å-:Ñ»C–7͇ŒÐÇ’Vsð9ËpŽëš•um´&Áë8G|¬÷”—±ª-Giu‚#üã¬Z£zR|"±È´^…eà2ó�áí]‚þ˜2:2}‘ºñ©€É¡ÀÅU(Q"U5�sUMúõ‰²*H;¥¯9…kê¢E¸í䎬É7ÏjÀ`€'÷XI›�úøž8ކCô"mµnÒ,sžWT•$Š›1¨Z¬Èý‚Uë ùPs!‘èŒ-ëxÔ½·-û<®Dÿ£ õvz!ZË«ºÕ– ë™ýÏJW0r´ÛÈzbº™ žOÚçvÁ"J �õåeC%5Ät…[A�ˆ6h3Ø33¹T Ê-u[{Ш�¼�àýÓ¼�)œN‚Š_S½~-3O8«ÚðÅï–å¯iM†)Öh5�~r“^âÆ6Xθá 9jŸ ·ÊBg5þýôîW(ájŽR­ú+ÉÝJ<4ÆŸiµòïä[…ŽNòuÃÀGtÖñ�œ‚7y1@‘'ØÙ›ìöj$ÕÚZ-fÅþoáprÞW÷×îoË™3Úé ©ƒÊŠU§NÏ{‰Äo|î“áØc‹Iœ;÷úœžò4àïôœCvfÿæB͆ÿÝÆËvý™J¯²{ée1èÆ :�N>?õÎÇmäxÚ1®vÌùÀí±$&o(ô–­˜ìz¨§y‹é®§+ó„‰ßL¡ÜH÷2&sf=TXª'Ãö� #GCÛ/˜‘Eµëׂ/úK‡U±}Í:±~覉â·î]~] KF­!Ù'^ý_û`%2²f/œ:”ã2ÅÀ¥ëàËœÜK(¶qνåúhs§«€H³€6ÈÊÞ­þÌŸÅORuð úv,Eä(`z�Vülñ%¦" ùbtÏÃ5{Ò'©k½ÕeªaÛ ´QÜÌLgíVRÎTÛàtÊ5šœ>Wß�¾-ëö�×’ƒ³hTÉÄ=~CÎ]ÄN­Û�$E-Nß])S[(‰!p%7+9¯Oõ¨F�Ô§î¢äI·ÊSg0lFySµÇŠ G«ZÈ ýVäÅ ×ÿü4Üçm,¿‡EüòùÓ=³ÏDÎêZ!ƒ ™ÕJCãëÓe°UD�é&Í'{#[­o|¡±ñK¶Õ·noÑá@4§Ž²N€½ Á nÓj�pc¼KøÀž›\Ú³ìt%ˆázX­‘NÖ�ĨcäîaCƒf&_u„3z-d­!Xfª—’‡.1'åp¿j½^®-ðóc“ŒväG#ñ 'ìÖÇl¿ôqÞ©ºæñ£ÔV§ûÈ%YXò]5À›Hqº¯W%ËD�QËü.м¯å†ðÚÑ©ihX‚Æ´{’äMw˜—�T­§�‘&þ‚1NEÇVæ@¡Váà¨{°tR�£i€prîýÁ,'¹ÝºM´ÖK‘d þÐl2&Õ’+Ö@XI:K†ä4uuEЊ« )“�òçn[‚CÓQîC‹¼BÝõ:þ…ÜAU$ÿ¡Ûðå ºRauH_nÿ,ÆÔƒW�‡A [b�îÂgßåSlIˆ¿T+¥hØè:í‡0S €áÈ5÷‚\°ã©1 ŠV$$mÇÁ¶b¦,EÞVÖ¡ª½¤'­HÍšø‹5Ñ[GìÁŠÞ]Ÿï£TÐoR8ÝÞ €å|àÎ>þô0¹÷èûb@ô’îÒ�ÌOBÚJ‹¢µÃ·òÈ�¸IÑ›)!±y€hÒ<Üwx² ÷=çLc,ÉÌ:)­ ~B¬û°Ò�×C5»kÙÇïÚÁÓÚž³?ßFú·x«�Áú1Q¸(9‹S/¥À@RZÅ6«â„#Ërïp‡ØõÖCªXaõ&z° Öû§&¢Mµ0×Ößñœã¹ÆŽ«Xû2�,Þå‡gû[\}¬ÖZE·¹;‰júZÎÀȔ¾Mˆà£5÷ŠÀÖtާ:ŽÂ<#ÉuZ¸@øD#ba¶»b¹6V‹/Ë—x+¸ Ó=}'®Aû³Öݘ˜�Éç6zôé홼ÞK·™ 5•Sš³ Tó÷ ðjqÄ™p×�GR FØ> ´{¡&‡ùÑ�1«Øò‘¹Czì8]wØ DSZY‰7˜ú¬È5çÉ:œHÝ«ß6‚-GC“~‡÷>;\‰þ‘ø/ÆÃj‡¯�çÐó~Z{ ÌÅ�|bªS» ³8´Çë1f U†+BãÏLþÔ˜Kà&AËïø<8Á üoœß¾w7vßWÐó¡J�¾ypíÓÙE¢×óß8n¿E�ùá¹³’éìVa{×$¶“>IÊž§éaN?]jCö(Uk] —ý÷”ؘ)Ÿÿö}ŒöqÚI—Ž(VMæ$…W‚0»?På7WZIYñÌqÍ.•¸ Å´¼KyÅvúRÃÌcTI{Š“ñâთå Ps¤˜ Ãs€umT“>T†Ì~šš{Ëú¬÷p©-s¡¯µaÏ(o‘† ßAË« \ù—}kñø•ål4ÎÞ/Žãé¤2r¬OðŽÙO.µ"+*°©?=S;û,O¤,“ Á¸ÑíøM”À¿÷³/;ÛW¡ŽiSZðË¢=Èôj:ê¶u¹:@˜Hk©,¾t}ÈZCa›áŽWKeߎ1ç¶sBY©ŒtúŠèFm¥âº.Z¯Œ‰ñÆÂ>0ös¤!7_"E>J«I0-P0&Þ,²0tç·â!°;.Œ‚x ô üžeŸ �~Êæûµ=O›¤Ñ8uÁà²�ÝžÓó '�­1m‡êAFÁU$0¾Z&È’ïrý¸!g*RìÐüåÀ†t/#8tÖ™ªð¾à§][ ŠØòfS/pù9Cȼ?¯R‡œV|ÿ£3¶»ðHР  �zu5a6¿¶b-Ö™ôºº>)è‹hÜIZ¦à+üΜvób|ª71³6PÞ Á¡äP}§ÝÇ C9²ÓWÉ× ¦äÈÌÛ¬|,üäËy¿­~/§@ß hÓÑ·ÒõA¥L72º&‚tWÒ)Lä*J¨§™áCl±-À©Á¢Hg,P¶š¡w’‡ Kw›ãZ>sÄ4¹dœdò“a‰¬q>#hel ^­òóºÄB²™Çm” á¼õSìÄ GN`-œw©Îx:�‘=Üp膉“Ú1lpÊ8Ú©¾waáWÆ3æpc‰Óy�¼zzT‡>9Äæ56Í8]€•eÊÿµÏtwº‘çÊ|XX Cfð“y…Ë%�U¶MOGc\ÿy¿íÞÊ[.`´‚è›.Õ»5=4xÀóþ+5Ц™«7žÿÐKÛ’¸^䎟X; -¤"¸‚‰)€olJfãR#}p$¾á Šº^ÕSÕqïŽUcö«# kIÖËÐ’¾ �û—f’¨ÐÌ`‡ªsê uiZ‡¡É¥M>{rÙF`4Îv7àA�ÔªéP"²fÀ)êħ›”b¾~/¬²ŽRã÷#ݤZÜ+oõó”ëÙ™L…{pS¹+4³ìñFƒú A¦hà' Gó2I{ñ7íëðÂõ)ÑÊéC’-KHL掯‹6!í áò4ºÄ³×Ðr»óa;K `bŸ¨!àf?ˆymä먤w°ïè?BNÚÃ\ïלxÆô®6â0mšPMš$ÉÔo)†Œx+Ð�åà#˜‰=&S‰@We<×xmÚà�\‚Su!–ê<å–LIµÒ¯w»ÍÍü?ŠW ?2dØ„3œ] þ¸¯åȤ£IðvÝ÷ˆuÅœ˜ìg@òe¾0¨“’ä@À�ôͪ<Ç=xNPÔÞ&‡·p|íJöhä”.6ów Ó5µ1rˆÔϬË�ÕW!Åx†�:²ä׊ës2ùâ×Ñ›­#2“À7�5úNóVÖrò*zÉúþ5]O�£û«æîu÷“e,ÎÊeìÈÐñw�ž0ž:lÿñëü³ÑÁü$µŒ“ýWЦ:Œ=˜×ñTøvÉAòã͸Sø‚8Ü ‚x±EëdLjî¨Kͧû„Sžš©2oj0&" :·.ÔÐ[°4– %B‰*ˈRŒ‚ä]V庘Œ§ kyÞ­)Ï«m€dÔ8¿Û¡®€ƒÙ¿A!-6æCÚô\áÐd²…É¡Ch×å“ÿYj‚ä(Üçÿ�G2s¾þï­ãRÕùà|ŠÎ­íA-v^¥ú4fl®Í‚¹ –¥~…e·¬MlnŽîDB{Gyé! Ò#�ÂØÿºú³.¦ÝO­€ìÎßÍ&óSüƒù�Ä3=‚1r Vk¨çäy�‚ò–PŒB¹ú²Ú;ê! ³¡ŸEWåËnHžQ#×1`#KÔ*‹Æô˜�’�ÛyɪÓ¬fÖë[ ­8Ðu°ïŠ88Úƒ»âe[¶&v{RðŠpñ7F¥Æ®ú8ó‰Ðxþ"ˆ�ävÏ` o äÏÝ¢¯…A^·æOQ§ˆÞ>ʨøâjwG9­]*:r¸Dv'®ÙÆ"yq…¾QfRüñnO]Oové…øÖjbH]^<½)ƒ ioG#ǹŨü¼9®æÞ¾!B„67öÔ·6ºA6Ì5‘Zyq��ö°üò•ª-,=sÊa¨¡ÕŽõ`ÂÉÓ›¹Ï5»„ÿÓâÅÚ'jdÖYi‘À¨�Úbëz‚Ëip>´�¨f!Ór«ÌS1ÿÂP7T|EZ¢”'ŸSwÇIõQ£¬—ðÛ±ØyxG®#Ä©=Ϊɑ á@#Ž‘q:�©/·ÍÜü`êì•"óiêÚ—Þ¸ÕÄ×®dd^Ї¥ž©z+>ÝËÝhÛT¼˜0w5΢¨i鉤¶YO‘£7ÐóÒN-yïí”#Lvµ7gb‚ZµÂMÑG©‹K• ¼ÓTùŠcpÕøúÝÿ¶Ô¦Æ4³�²¯­Zp6t¾êºÐŸÖ× Œ¬]wÁÚ‰bò{ÄÈMo{Ó¶|TxS÷€é—š™¸Y|-rQÇk‰l€Y¹|:ö‡u¤»•ŸÑe[8a¿káXbÞ·,) ž¯=U­¦UÛ`&@'à ¦?+KH\Sm©v³Æ4x2ÚJñµépÜ_qQ…®xë´2�j³H®@l%5&á×ø$~—iþj:'(iþé¬�.j´‹qÕÌêўäÃÉö·™Àx¡9{ÎUdÒ¯`DÒ í¥åv5d‚j~Z•ßf 7�÷ë~D †¦‘[ô·WQmƒv/ïå\ߪ?~­Œw(ÀÂa+0¸GŒ©züƒ7¾ÐÑ Ôe·WŒ {DÒŸŽQŠ¡!˜°}€Õ^›“¹× ÊG‘ˆèí¯eBŸZ96ú·gp2ßQ8_ü�B÷¥Kc!þ|B‹ú/9vˆå—ôê“75†µ¤Ô_s=BÕè¿G7Sb7b;¼Ø6…45„Y3Pm„¯Ö=DY­N³št‡|ÿÄâÇë†e¹×q.fO‡÷«°_qß›¥ÃùeJñ@$gí� ÄPQ!©M.VFb\#� ´‡{Òs9 — w*ß“·À_]¾ZOvƒ7UmÏòt°yÉl¢¡(ÈC×Ý}íÆ­×ßU“ú•ù4«ïCïÖLO®ïNð"«~«÷A(_ÎQšt«iäõï‚1gFº R÷ª_ÚºÝÇ=X }4rˆûKüÿ»æet8[vYÄ÷w9ˆÇÕ…Øm‡Æù^è¨M;ßš&ª¸N»)=kºkbSB[Na †Cœ*’¤£‘ rÆA�õâWk…˜ÐÖüîã %RˆxöÁb«"©Ò,HÎÀÉ#L\Ý´Ãÿ6éÔôÖ|dˆ¶¶¨SHJ3‰í5Å쓚Û/ÑCùa¤6Cý×{$šâl"Wÿ¬*Ï u÷h�? NP´ìþ4nª—4¢WF›–ÜóŒnýÈ05¹›á[­Ò÷ªl�&áµnÚ V*ÖøI²þ&æW}ÍèÓ°»QlOCƒ°j ȧw¡Î°£NÅë}V$a[}fŠÀ+Ãk‘Ø„û‹4žerI–œMh½=[¿CÔc!ú1)É଱ºG'EFÇtF2œåÔ|ÎÖÎ Œô¼;A¼BΑÜe·âE¢Ó÷”FÄÊDF8d¾ÞÖmNuéÌ6‡:Že&8Z¬1Óª”+)jc»ZùqÕ-;È‹Lèh¢Wþ”#Ý{å1:G_ÐnÑĪÅUj F;¨Z•;´ò6aXp†Ú{ˆgPöW $–[¾|4Ökõ +åIí^…ÂY¤F�Û µ­¢¾N,b k'ì¦Ïu=Q.›Ë v¤Fu\›&ayi•»×Âò»!AßFðÛ'×J>�¸<À%Õ¹˜QoMµVÎ8Zr«Àu�œÈÊ·¦ïDÈçx�š*]#DH0;™A¦ØzŠ«`gù¥OIE]odºãN¤�ÿRÏq§²Ú}`ª8qSŒÇ0e�1ÐF•�MÓÄ®ëü#k·Én6bÞInÛü"Ñ1)‡K"�Å›ÀV ÄÊcü]¿®?g’Öö©k.ä ìÆÝ]õ©ÝÊ:TäÒ;IKè¨û+[ÏcŃhBãWr‘¡4.ðd&ÌyƒÄï̱/³Æj§;k ˜×ÉëÞ_†•wcÂʃC5™;bô­JÐbk”{C_ ÛypŽÄ¿³äqH¹X-:(z¯#QÝÕ7£-iÉ8æ<…>mr(œ{™„ï‚TžH¡ÀWœRIwx ‡ÿ(T„Xè5Ӻɹ&…ôK{nsŒý;H÷!þ÷´ºi_—8e^ 1ΆÝU&µáeCj¤ îíC7­BMû„ªXä��¤/R·ëàIÞV ó@ˆËFh5 Öø-3gpÝÚÓw1:OQå7d¤——5$ÊßXq¸lryÊ™ý™T«$ìgÿKêç¢ê«Þ[šÓN`¤™ª|�„ÊzŸŠgµ`9bº`7Šc«:öŸ¥ ‡ÅÐZQ�ÍJB.iéa}ÿpMïø•f÷R Ê8 ) ®é|òmìÝjê=@S.?ò2ÃNe*y¿àÊ;G�ë!:Åö?Ef%B;%{3™Š.Ü¿ûS§[¼’„¦e˜ �«·Ð b�GtÁOºSû¿TöÉ;dÂ0úýÃGÞ†‚f9èCâÄemk¿ìOÛÕ*ƒ>¡M%Â�ˆâ�ìAŒ—ÃsŸ"%ÌžB^™¯î©Ìœ�Rð§B?«N> ×ø¤ýÁ»P¬álýJ4-IùçxH4Ë +Ð1þ-ª¶¥gkjû%5Ÿ(QÂD Ê³x4n|KNü÷Sö× m$�Ç>:à3<„¸¦0uôΩ{º}Õ^›ùý°ðÕÄùU1èF¨#¦ë˜¤c€¶(Àùr´ùt?’n ŸÉÃS`);@M‰»ò]o`[‚‰ñÔ4Á"˜ :ÆÊMÄ)‡Luúµ'Œžö­ç¯Æ${ÕOÞbï—h@”TÐFìOdPd}á¯$Ì›{W[çQ¦EŽÓýÜèÌÚ˜òÒcâƒ3/9H.n‹ó}¢=Ž{©àœT�|ÁËß½Pâ¥ÄPdEVtµ¹ ÁÉf¥ÌÞšÀÙ~@Ø‹ìXS3¨Y]lD\µa ðK¡ø~µDNm Ç£¾ßµæUQâ6–ˆVP‘È=c��²>Êe¿�™ÿ(Ã,À6jCþÎ48øVHP´ÎVîAec»3±¢û*{mΘ¿ Q”ÅÖÓßlUSD]ç˜×<ŠÙ‡{c–5ÿÍ¢.CâH±ü4‚Ÿ‹Uàh_¡Æã¡œ wìW€ÆDˆx ?pùç7$­{° ; ôCË(,•ö\¡oQÅ»~þ^½7>å£já’z~ªÄFëw � ê -ïE<$g¯2€ñd2ÛÀ­¢ÜÀæ#ªé»Ô_Žœ³Ó_`8Ít§.X|>yå!³œS^�Éʧ]ßæt‚¾~ß ı¡‘¬â`çñŽ‘¾P¹�iæŠßՕܳ6ÒN“. ß³»"çT8$ Øp4í¬_¬1v¦ñ+9œÑ„FÛqŒIü…}åˆ,ê#�õUTXeÎYEi%——8™ƒ'pr:n®�á¸XÿF 2\O~Š–œW*Zv‚ƒ�½SA˜F µÉçrÞ.2vúòOLs�¯L¼Ülì¿ ã‘=#Ö—ß²WàŠ„h_;¨j<‘­·ZV¤EÛM;<ƒB0ãA^N²¯Ä6é��f÷zsà‡Ší-}UoÔ’¡R¡H Øú²±fÆo‘ Ì-HÖS�Ä̸ï5Ö,MsmÐyB A®ôõ°b\è Ž:"_£V€þ×ÓVâ¼…!§,Ü Š‡0uŸÅ>n¡¡í3’Ð6E䛾emk ÙñZ¿MYu°LœBR�ZnÒu…ê�l0ZzŒ<Ú[@xÌìIw*e�tãéô¨XF�s�óDIöºñŸË!þ‹®&9çqû›ü‰ÍÝ�b\Ÿ’?í±�í±Ö@dÚ"Má2«GóÈr!÷aýµ èÙcDô×Qt¢®¨FV³ÔIX(ÎÂÃfài*o•ÃBúªýÌ£Ž­$Š'íH÷S´ýÿïá“ÊŽ0ç#[‚ëíÍ"g�íîÓǙԔ,«e éF¡ÝM*n¬ ~I§ äGpkK[¯î2/=öÜyMþ¯¼6• õOÁ\øµÚJQK"•ÓL¿¥¶Ÿª“oÍ%œw¬?䉡±†/0&IÌKiâfj¦%³öˆ¨n±+Øí)G4¶MJ36ïlç«‹è1ˆ„÷)ô_>v›bg;í¾º{P"NÓ5 º;�ÖÂ"èÂBx×Sí<£ŒLµ3±‘z˜ì¯w©¥¹¿DX²¿ã æ¸q^…7‹ììJZ¼¹]k�ÍÉÖì-Ç×Ëx=ÀªÚ›Y,RßA0Z¨Ýy�ËÛ߆Вª‚Ý�´ªR<³è�7`ûafyÓÛÌrÁˆ¾åÒÿ¥c�#ƒãÙ ¸”$â�P¤Ï9-‡…5»Šôvv''H9b„ÎENXxá£Àp�Ý…Ï“D߬‹þlɽ*WCæ{:S(wxÁV¥[©HýŽ;Dï¹!·�'K¤:‹ŒŠ&~�OH1“Aö%ÕkÇ ÁÊ~Pb¾ë‹ªe¹€Æì‡ZÏKH³ µ¼»×®s�¯ÖÃÖ3þfO;B¦)Éðµç± ¶bB¢ÀëðÈY7@ƒÄœÉ*χó'3ë•h÷…#:·¼—V‚o§RLô’&hÕëì�1}ä™Âªë­P¡4r1Ū \ÎO” (P§$Œ$OÞ³– ØG ÃÙ¤/VøKÉXC�ìåô$­Æb£#Ó_ê±Ç0ü_® Pt¶!Q 5¨Ñ§úZ•‹[ËçÁɰGÏðé=›PüºT Æ ¤‰'Âû)ß.%ÃŇõèýŽòvbê—øR–#F»”†³�AŽ˜˜ºÏïMWNÏP…4g�ûÈc¸¥��i×¹¬ç,´záwø(Gý2Î ¶9¡À:N½“p­®&£o"K˜ý‡}Q^8Põœu\­•Ö¹×­‘h œ,‡ð;�Ý;WØ€­æý_5ó@ùÕs¨ŠhwÌÓÓ}Ú‹þQ¡º*“Æ0¿äý_9çÂŸÑ HyaìÕª6|ª\ñ¹…¥k°^}7n×@õŸ4ÿÕ�c…kõ¥+y$ùú‘I¡¯­¶©9S cÓa† s)è¡ÏˆäXç@RHH·™04!«ê7”Úã5¤3¦ìƒE’íxääéOl,wî©ï9ÎÛ‘‰•  ï/6�h £Aû´R•áöÏ�·º‹åŽa’��æ{"l RÏÂ3s–}ÊÊf|�Ã&Šÿyã�;iž³6VpÂ3 ò‚4µâ¯,ˆŽLÆýÞ�îZûÐ×0Ü_¼œSILÑ’)Å™$ŽIÝuÓ[QŒg° ÂûHŽ%Ádª]ᮑR{WY„( C.¸ÐY¢„^,æMYÆãWnkؘ «*Þä*pFçf™SKø�q<ö×0€zÌÖÊà {ˆIÄÔ‹ŸVSßpü*z )³°™c¬ÿq=þò éÑ÷Ѭ¶ÎÙš›,¡›KÒ¯�‹ïB úÍ(þüFŠh·“Îcëò%‹Ÿs]:Rùâ�Xã§xΩÆt[q»o@À·jé`Yˆ›&åˆËÄx'æÄrA/E!ö“ßBGiUîV`é½Þÿî$~¯Õyª,’a¼·¯¯,@ÚQ�kŒ{�ÄÒ¶ÕÆÉë\{Pó�{='Ø}~*Ðc tß cÚÄÈ™ {¸+] ‚&[$u f/ºôT� 8礂¥^,2ØfPG¬7®áz—â)Œœwa ÷ƒøT ¹Ëá!Û°bóœ.,÷HÊÝ…ê3ñìøÃ4× 4z#EÉ‹•ýñUcd±¡<¼Ð0ý£ò§ô†Vî9N,¢X7NFR£wlbAv7YÃê=´JBa�øÚÆ/�ÕÏÊÃpîÈ�§Ä×}ÓuWP”ñÕ=¬~†ÜóT ›ÞÊ>YW[k1§86ÊBhݱWŽK<Ú>Ò}º°#q®ìu�3¢^y\àƒ‹�‘‰'{óÛˆ| p61”§>³¨ç­f²”�ö-3ùª4ᬉݱ’ºDwŒyÖtzKÎ Aƒ�&k Ñ¡s4Õì\™ì„å NŒTyŸæ}à c�iÔµ�’ÚØÈ,C"6Iæy*ݶ˜ËìœoììKUûÛÂǸñ§�U©¤qô@\À.½EÊ ™Jœ±Ò3êVÃQ|ˆöá|�£¦ bü�ŸØÆS°÷Ô�/IWõ©„@k¦PáæTk‹0Ÿ<ÆÓŸ&�;™MY!ÀEù1hMw4EOÒ`ù¡‰P\áPó^žÜ÷'?¤„¸Zg!ñ’ävçjø–z¢ü�ñ\Æ>Ÿ¹ã„ïliÉËmO<üôøþ�¥ˆYs è+"çê©Xºí\ŸA”ðI)âý1‰Ib_/IãÂtƒã+dîA¥õWn]MO³”JíAÖÂÂÜÛsVˆ˜¹t°°ÝÚ{ìò}m*R‚º&{eŠŒA��=•üO¼Y�Zç<‹¬S—ÿw)*Üo´ ì,&Èü4Þ‰ [ëƒ6±ÓÀ°“‰¶ì…[#Os6AŒ’œ0F÷QïÂ0a=�;b·{ Jv?²i*ˆ#kFÛù·hi,•»b ø‹«ß¬‘5LË·1‹¢l9Q®v‰u]pÅe‹Õ}Â*‹DqŒµ‡éщ-±›¬ã{a÷B8;¥fw&DHžÑÞ¼#SJ‘B(¿·¹`áÜ�oIÐMRdÙšÏFr+O�:Fñ?�ëò×ëZ¯¡�"9³ô;kÀßòÉ5$,ÜUÕ*øöBx4ù!¼õÕUI¢éIÖÝ •È’:[•¢€~ݤ){Ä%ˆ´õ\¶Ÿ´ðÂPI×!x˜àòo2O‰�͈Ð},Ê9Åü#q¹ÕËãwæ7~WjÈX�§ÝǨùŸs£õ5 b©RëÍN.b%cÒoùá*ÖPe8rZz†ô›„™#Hš¸bÊò mŸæ3׆Ĺ´—ÅwŒ?œKbc3 �Ë ‘¦Ña¹ØEÿþ|ûï¬_tî£âÂÀ±€üÑ…ª‰sp³jà" ˜ºÓR¿~Õ¼Ao,ÞÝ�rö’¿ÛÑ+ó]zîµwt\hNTƒoƒhõd˜Æ�RÔÄ·YùÊns¶XvÞX�0i¿ �¤N¯¿FãõÎa2oMŽ�þ@‡Q0k±:ª3~?XNC»ü„/Ѩ~ì€Iÿ ‘¿ÐÊ”Ba‰ùú¨¨1·ì3» *w;€×HQ5Ü;ô¥zßÙ§’ú‘NwJ¬ÀPJ0  :%C ûq³˜ªÁãÌB44©jYì¸ü‹gŸøutR¿ÕžÌÏœð飲ëª5¸@�³@‡,÷f–Ø–×ãnmבyútÇ[ŠKm¦[É–A*–õÁ&o}þá¾`«ÆŽ"Kýy¸ýÁAñ^ô‡|7RlÛÀédx°¤‰¯ò.Ãùb¨ìÄlRIÞl!ÀéWÚ¹û‚Í©C±VúÒÇXúËĹ2ý¥m§AÅ»}ÊÔ IrÇnÐêŽv=]J3—*ƒn/NÓl-è—ÌÁb_oršÛÍw,7cOšw¸s 'íýWɰP„¸ô襢D[I+ÛH�ƒ ¡Èq"TøÞ¤9¢ëZ›Ç d{ÿ–Á‰¯X‘‰9_øî/ÞLû2á{ïË$>ô£ÞuÓíJëzGú áòM0͵’�ð'ä2ÅG'­�ºÇ®1Hí% ¬ÓàL½xTÑ–{»5.~XoBðƒ »±üîÏ/žñ©&wBÂWq^»á}Šõž·:ª»FÇÚí|ÆæÚŠ¶”L ìŸ×-e§ë‹Ó-™Ì‚nÛLÁ2‡Ü Ÿ(uÔ1/6ar@yˆ05E>Ü+ÅJÕIù;äÌþn<=/Q¬~{b4Ð}óã׺Ì“SÖ�¿Ü¹rjb˸{ŒÚ;G®,Ïâ�ôFÑùQ±·ÞÉüg<wðœ)õ»ÈÁv�á¨àu[áYá Byv<Á üE[”}ÐÔF­Æçɯ͂ݡû·íhhÕ¯Uº s®&@ÕÏÞ¯\[Êw–_{ÆÛ�îä0³i³¤ðÿ›Zh€Ÿ¢½¢úÕ”—Ûé+�ë» Û`jg3þ’ÄŽ¡L %G PtŠÏhô;äñýe¿2Cf}[’¦ó °šŠ'X!åU§�]Q¼{/ ÿ Äâa{Fô\ò�ÞoʹDä^øŒ|²†!ðvì1üp Â;zèåUš… ô¹7pk‚�®¿Ú¥÷S˜Û•ŠÍ=Uƒ 8”Ͷz%X™)]¨óõ<ʱdM YêúzŠjjòüs¨*ÿŸêWúçùÍXþ*E|8ƒÌ} g#+õee-}CN…YWú¤(,ÏjTeÞ[Uåz¬q:Vgµ[͘v1ièn…N®?jU�ÉûšÎ[y¢S|˜Z°ñ/L¯þ�\®…Iîû')‡_óëäöWzbÅöäoh%£ C±ü¿Š˜lI…ÃÞø¼|ôÆ®¹D›Âвr'*¤i!‹¬ú¥†2Î…b46ìÈp]_GÊֻ,!¨ÿêèo»›'<³"Ýý¬ÒYóÉsËÙâíƒðƒëÓ³;oýó£8�Ý®®ßÅ¡©ÆBažCP“‰_¯kã\ÑÁU‚œÂ=«åƒ Ö't¯èÖð_”#wå ¡r(Oœo”Z@�~ŠÍ_IªÏÍ샗¨W”!šíò¿%V¦1 YkôŒú¸ßÃÖ°=e¤Vcÿp~–›^#m¥Tvé7¨†e{Š h÷±¶aÛØnh�nºåfMo•.wÀàþî€FÀS=2lŒg^UºÌâ �½Ic«þsOEõ\Pf´-üžµôä°�7ÙÂ¥ø'þG—pYgZèž+Ìøpö:7OÞBç3Ð\®Z/—ÍŒûËå«Ô ÷þ#©+éŽgžÃÉÊÃÄŽÝ,N®¿^»ûlȵL.�#{Ý1﹟Ü[˼§ÉÓ™ºx;µ³åõçê'æåB�ã¥þ.=-ÍH\îÏ� ®2’¹ôŠñI«#û¿‡¤œ „G\℟…ZÝõý¹—¶@ÖLJšGB[öòØëy M- Ílǰ¹i�®6ÿ¡ã¦jÖš�Ízô^p®m“æn…lŠ@~àâ–@@^æÜ8l>éÆ"Œ Î�Piy©C7Á0A–öaO>!?N=C”UI£©ŒBþz#l¯ v1ð¿ûÏÁèn3õ;‰Yc°¡ „;Ƴªõ\b\íKW;‘jKõëT$ëõQùªO·îvûŸò—îÎØÔØÁ$}8ÂO¡Cy±žMäÙ0CkЧ‡!@&4tªÓ»·DCŸÍÎã-Z�BðUÁ¾g‰ÍTu2-©³« [W¼JòQð“vìWKÊÄèá×½*ìqÕFð�ù ü1ú5Õ¨ºçûù(½æº_ñ¯LÒúîÑÔÍ$ŒžE¨5k¯¸¯ïGÔ)W•�¬îÚzIç]8‘õïìDcfÌ>«îé\ãèìübïßmÉ4ÑÆ>;GômQ˜Uí6+,'Û°¦]Ëü“1«ÅÞ›¿²Ã©©kLd©/Rᤰ³à{é3÷zÛq¼DË*n¡ŸÂÛMŠš`5Ó¸Õ±Vf iÆ}˜Æ<.ɷЇõ2‰�àUuéè}Ø-Uaû3>ÒPçj£´Ñ3į ËD&ªdL?ßRKÑJc¶o ¶.î¢:='ø�®ÈSÕ㬠;¬¸“¡ÇçÈÝí=1>ïIwWIÌÅßc "øÉ÷ü¥YŽ‚qsí9·å}MXµR ¥f}ú“ Ÿ2[¢ŒÔ�Q3Ñ”þCþ»:X‘ Øš½Ð1_?Í!²©XÞÝÉ f/ìE1£’¤^¤~£ °†ÄN#: ˆ´ojy›.A«7ËtÛ·šLÂÍc? L�ñv ƒU¯‘¾µ{\�t·X]èCá5âÔÇ7séûQ—_D4š}@CÛZƒ?G¡.™9Ot+®�ž+ƒlŠ/94äÛ¼QŸéï]RæV›’–­ ·†n±*¾WqÝÞæªvœˆ‚ˆË/¡¬õvñvôÀ; !í‹ÇZC—Òæí¥½HD§oážÚEvL,‰Ù‡{ò7k.W‰çÊå¥ßã^Ç&*üþIè8ÛZüV v†��E¶¢;#†çëòDÓÉ«ME:kaÍ `^â²´íôå,L5f›ÇÔô³Á§‡¶iq5 88y_ 39»à ÿÈ3‰WûÜäû”Vé½Pl¨Ê™vwÆ Üõx{Îßbø1ýÓ ôÎ�ݲšÛs˜Ð¡‰ŠîŒ N,rj­ýGK!®�Âêʬ¼ÃÊt¹×^ÔàúÌ~áEWT‰}““OËÕø­Ù­¡ˆ‘Ôý]ÌWL4%/’óJÝFQ*8ÕS~/5*×�;Æ—aCóÛ¨Lä`?$¹¢îôçø´X5«•Ξñ´’Ûï�…³±Y½ƒÝ†„Ì}àáï†â8ú¯2A%*ùŠÒa÷/ qå|Ž£–£3(˜Éð4§‡–kK}½ÆQ°ÍBS?kUJ)¬Î3:ráBþîvÅqoj“Emí�àA˜aÃ~´‡›AIJÑH]À¦‚õÒ!üžàÛÈ1ÎÒŠO1ulÝÝýìC2ëG48´�+ÒŽî!¦ÿ9±ñQÄöH’x¶Ï{`·N;Àž@ª�Z×�(ÙÉö—&§lÁXŠ#š�¥�ã)¢Ž€+&PÃ�JüŠËeä5ÛÉ�^ÚEܦ»bXVmdͳODâ+¸ÅFèšoÝ�óÅåââagáѦÍÚÛÆF#½‘/ªâx ’EE ¸—}g¨XM³íêɦ¹fé!,ÏÊ©³¬:â`ì¶öô k°¡PÖ°ÝâH±<êÄ Œ$òO@Mþ lº�»M[<}ì^ψ”oÎ’ „¥z±`É¢¹!ir7a¨‰öž¯–;}âr‡7×wµ1ç!\C‰º‡Az½RÙHœ~Ì@¯ÒóĹ÷ë‡�Li˜€n�9!…*Ë÷*&×-x¢¢¥¢ì¹lgCS± ÊS!èX»._k¢p«ðÙ»³–âÀÅeÐtC£á%Zü4ƒDS‘¬Œ�"ÃÈÅèÅž—5AT§UZr¹RòTõ„-;YÛ>·×gM2@:bd‹Jl£ñ^Ъ.Åâš—îi¥zñÊ»ÐDJböç!´ Ž«Îë ‹Ïä½$6ãIgáÈd5_â©'›U½ÏŽ×â5fö §h³‹S)”ú{ÀÌ›QžG4y³­v+Xÿ%BéÓWRc`Rì ÁÚæ!›M=�PLSLšQG0Q_T 4cÏéþÖ�9xExCà€h\Ç–wµ½·'±Òw1Žø~–\âdÓxß×él`ºƒ¼d§¡ÈÛõ�­¬�fü•íG Ñiƒí•p käešuµÊx9ù kÊø½(êvæ¯=_]ÝaA­òÞ„'f7ÿ÷š´Gè”;É?o–&»6^y‚è+pÜÀ<;‡žH% I4©{&ˆ»>‹Î03'Âm˜2dƒÆmND½«ŒšjYKùï¸0Z–�¢»+ÁšåÖ¾‡jŽóP�0Ñ�i!p €ÆÐ,A¨É\†<;DúÖ»X\4Iöû†«rÜ×0üê?¡]ñŸµÛD¤>X}À2Ä�d6%©³õ9ൡµß•¡éƒ¼>±WTh“K<;5xÕKêò¼¶Pt¢Óª‡�+(é?ÉÑš9ÔT9y>‘"|š$\º ›òÃ�Ò?@ÌöÙr W›ÞŠEß í´ì þ�Ÿ3ÁäôhÊ—A´3Ò‘3Ö“ûG!¿\=Æ.ŸÜÎÚQ¨Ç(�·¤ú¥àoé•‚!NûÃ7ÚòsÕK* {â²ðïÈþSüQçͦ¬ ¾ØÁ7Ò„Ò�³÷׬q$~ØÚ_Ñ-§ïÒx ·,ë¥HkTù ï>‰<*ÈŽYL°ýsª/Ãn®^'Ä�Àñ”„ˆê™A~b§o~¸‹k_0‹­ÙlÂÀœÈÁ®Î¡'™ôç«ì‚Kze`0Ì\ôâ‘ñ|ý¨bVƒÏ�œ8j-‰)Ã+Îk½«OˆóñpçŠóiŒ6µÃÅ : Ö`òÎÊxœ¾“B¯t³²Vœ€ŸeÎÒŠ¬Ûió«é N[Ÿ¡]OÞI˹x阬Loá¡¢"Z¡COýú¢3`BÙÀÍnõ§û'—Ó¨oj^æpØ)Äó`Ó­þë™/�3”y�“@B_—’$vU1÷Œ'/÷³&º€` +#j´Qì‰ùœ¤ØÚÉ ÔP¨¢Rù¹ñòˆ¡^Ç9¡M¦Êzí³/N_¨OÒâ¢oÌj¾¶¼·í©òW” «4Í ó4ôfa.~õ›@›.“SL.[:ý{¸uÙ¥\ÇN…à-_f£¥;ÄXåº;2˜]Q>[c)k\ô\ŽX�kâŸíF�Ó�u")Ac^ß1R6ü�Pð4¶oVmÙØÜ™� K;…O”j^�üAðvý-›ö‰o™@e,ä�éC7Sú¿d–L$sÛoKmÿ)¤òyÛUކ:4ÌZ×Nx2ùU GŠ'¦Êèâ,ÚqXâðRMuMIÇ}.2{�ó×$›…:ŒÉ(籃֪â†DmSÈônx벃|7Àî5ˆ|ؘijäÖôQ>¼Ÿ©RO-s$0 Ëìú äæñbq}cs(Û— Ixµ·�ùWP´úâÝcdl+‰\‹g[V†¤d‚`›Âš; ˜Nþ䤨ü$”Æö_!Í€ÎÓ|= Ï@7¶ËK~1óv’Lé –==;õS‰ã5úœÎ«)ûG]‡?u~JM¤£HŽîg·Ë•8r#jj³©këÌY”Ó!ŽC8±Æ$ ‹¯ Å º¶…ÎÞ2 á+åcÄè¹à8Ëb5{; ô˜ƒ‹+}Á¤LzéšÒ}-M2ÆhÙ1­u3�á"6™2¯#X¾r#¿õ–K ¤1f.*‡›H«3ð'ísg¦ùâCé2ÙÄ­|ÞUôÒçY#ø5¬¼ÝN ÉÀ†­®sy(.¤M ´:ùÊc=õqúÙÐfn10~ÿ-šî=ŒÀ†z·iü5WÙ@ªp<�VQ¢mV̧\›`V¿`ä¹V×\!òÉÍUj Ta�—²‡pç.¼�|wãæ#±M3rÆÌ´¦Üé@Oש£ ‡ŽüB�e´ïé4*Gè,ÐŒ~HƒÌyÈ×P±f3õO£3ÎÝ;Ù4K<ï{Í×< Yü‚~Ò :´~›1E·ó�:žNß6wU™Ý1$YQÞä¬NÎ6A+F§ 80Õ¹“Yi’Ü`–†²ø  R2:"—¦dÙTkßCµá{Àñ²|v‘ÅT0¡ôOüghšïÔ÷ö¼ª6ÂùÊDR¡š¯¡n§¼&8›<Õ¿¸,[�0úl 1Àèlþ‹ºéñºoÊÕ-«áôà¼úøª�ðAuûnåß_˜}Ú¦^îC{›™È}#\Ò€™ÿ–ª Á�ˆ+q¯?-w¶†[ŸiÐBRÎìo¦~ €Î@1ŠråE(”ýq�­Æ¥=«Ì:;¨BµøvfìHþˆ{•o“‘7Q8åûSÖô“¯£ü0$º�lp~”1¤°‹POá�x1b,1lšG¾É.ÛÁÒûpŒ!�½·«ç,Ä¿gNÞC;ûò!±HúJF?,ÒI2ôA¶›Ä…öU\P™ðæ©÷uÑTA’¡3DµÆcë­ì+ùaôFŒÒ³À°GÁ©¿’0šä‰–3†4^œÖŒ‚Ú;ŠEu ‡<Ç×ôá}‘,�ih‰@Ò×]zO»Br~ê¸î(ðÜðÉàÓ†¦‘‰kÿhŒì¬¿p·÷ 1p¶µ•þc¯Å‰ùxÖÂüÎ@ùhèp€¨³dPž‡ ü>„Xóšq÷嘭¼k^$ä–ZZúq$x‹ï~œˆ%¯xDŠRW›®-Ÿƒ‚©e{ÿDʼdq Fª“\Î9}Ñ>d¢~´íI÷ÖˆÀ¢jÝw˜ðßî£ÒÑoR`ƒ¨µEk"Ь>t©¤Šª9-ÛzÃ-Žu´02B.COûW+Š}Åõafñ °Oô›0BLåò2:Afý~%ð¾/²çÀkAÍR§ˆ&M›1^œpƒk‘'ËËs“€Ta�Ê>iïu�$�íj4À:<ù—I‚ïäaŒµT´2ŸÍ) "j× ólö(ý&'Üséž1ˆ‘ï|“§€yÖˆÅF œÊ·:ÎQ¥ø­Æ2ñÍøS3ý›ÀÑ!¹ ?¯ªHßV\®ð( |i?½•*ï°Œ % ä4ÿT:šgJ¡hYZ‰}°õsuÜ<áÈLL%zG"%ÿtlÕ«êøÓ=³tSÄŠ6qú�ÆÇgùÑŽo†ÙÛÿ�=âY&øÄøEœ¥yêR†J š[ãv*§>Úà¨mŽ‘ê—jH$çÑRJá![øâ-YÌù‚+˜ØŒW¤/pÑÄ_}ë „Áø÷º—»*r‰©wm¿Ð ÔMwz"F²˜2Ü`…žùs± cwåà:^^"ã_þ¦Ómë0Rk¿‹HRÎ_È95ìpˆyZ‘ç¤T‰ç ^ ‡’–—°;$¦óC>�d±¾kH*ú…–7äâc$ÖN�ž ‚ZÃg¸].V'sïñ8w®`cª&d=+½ ŒLÈcq9ÐÒ~Œ(‘-'|q£�“šÓ3•ý»1ÏqݰÔ+UBÖü ÇªÉ¿x1»³'w‡6Ç.=:E¥J/¼ Ö$Á‘Û™ñ#� ,U_ÌWcAû Iq“o¯Ë�§r§|†¶pxî|ªÏ£^òö ÑØ«¤?›ö6èd-Íko í•�.›4 C7Ñ�‚ºátäÊå:Î|S~ Ã9/Â1±ö„¶e¼3¯à¹0uxÁ²4õoàAPÅv4ü´89Í´jN¥Øå3'+ãâ·Zh›>Ô‡|ƒ†_6_,ÛËz˕܄i he¯-’k�°l4nU'@ý±ÎHg†?°GT�s »~^ ‰ÑÅ‹XÍýnÀ¡C±æ!µiòüý@Bò¶SÃ*6¥2¦gáP�‘×ï|†ËMÝóêÎñüÍJVѹfðÈÈgÄTï=&M:nam•B´í’ô¼PYÕý_¡¸ëo¾'ΰ·è)ÉÃå¦Au¹iE«&®šŒ¼y“Ä0¢ÒRkŠÉÝ®?íãûiì,Æ}s;éà×ÈÓ��ÃÑõÙéWÈâcTÎ*`t"2HÆá án;Íõumëd#"ìk éñA/\pú¨Ú6ó€�ñ'�B‡CKŽ:¤»92ÞŒ(Üßm0½ì|9–ŒòÐ!u•ã…͈V§)ÉRÄ‹›³Ì}Ï•KþŠr^qŽ�ØÆÃF=ÙÔNF0/ŸÎ/Áÿ‹òˆI€hÌn[ïáÊ·66à0�ã])²FÓ«ÅŸvMqÿ–{DÌn«åtFßxâ‹S>psêP±Â)Zl`ážuPq/s¥ ú"*O_¯5!ªÖ� 6{\QtÐfäÞLlª��¡¥oÜz·h{å]m jk tŸ-"ÔÖoÌß—î{~ò÷XÜFóé_ID½ò?yœ½•®ËÜE\V)S!WCî�——’B‹æ9’—Õ´�¶1+âëýOÝ5�w•š ]=õ0ÑÁ9› ýíþùŠS‚± 4›A•òêÆ¨¾ÀáÄ?9¼9ZcÄä?·ñ’cÆtŠ×Õˆ$­Í·á> DfºÁ>Æs,AAWUéÉDèMÓ¶v ”A‚Cº•_€.ôPÐ6n*Ç$ Ÿôa³Íf@ÝÝ€Lð³ä*±D“ٲݿe¸óã9i<: e·‰¡”íŒ#BrÏ?«¡½&ó‹ÅBgHDÖÌiú´Ü{O~#ð+º™Æ]Öì‡5t‚F‘»�iÚ¡{é'Ñ3ð´¥’Q}4fNZñÃÅ)‰ÿQ5£f>9/X�À¤Õ||H»ÀE{JZy„üWà C;aUür 3‹jñÖ@\Ä®Nƒô—(Ð~N¨Õ ˆA””ënD‚ôÙ#h'é—qþ!fa¿ÕèEئ6É®×�î>‰È¬µq7ðp_¬ XÔÎÿu6Úüß}×Pì‡t q“zgp�Œ¼÷îJË‹KøB¯dŠF^/)‘�—Cˆá=dû¶w`ä¤ "8–È�±Ü.#¬¥@­ìì/‡bË-Ö(º�avˆ<3°áüZŽø ¶Æ²]ùµ‡bfNŒC]âBŽc¾+þùŸnW7P̛n¨”'Txn×ýÈ1PNANŸC3â³\±þLç‚ZGñ-®cc#¦A…™™#ºH:2ñK¹IÁáŸÂpfÈU?=±È”oç8öáßiâ%=¹³Ø€žÊÞç9­Y¬K"ù CÓ|u3,±3 ˜â²ËÒ‹šÛU×Á˜WWwœ¿‡‚Õ.Ûã»n­Íèa¢Î0ÉQ}˜¨î)à Ôý‰D»é ^Eeâã¢[ 7çÐ3¢�ÞÑ“ùReÊö,ÁéiPñZ(‘/¿Jùë—W߆»NG·YIΙOˆìQ ^­ ¯êä2æÝ�WQ˜ÒêÆµ¡O|µì”ÛöýTêðŽð·ÛØC؈)úÓ–K >*böxàQÖ¶ôtœ¥h¥#MçX$ÒÆ"eS®}õ„÷S¬0M 5êNÛ¶mÛ¶mÛ¶mÛ¶mÛö;mÛó|û쟋•³³:é¤/jäIU¥:£@™¼ÕF†Æ†­Æÿ MNŠÇÃÍÅö–=ÇåV^ôll<†§Ð}}æbÒµ¸a ¥ÍV¢L˜é¼WYüäéPˆ¢O¦9—‡ÿë_á‘Tú»h5ÌeV+&ýÃÿP¸±–�ò¸m°TáI/‰µì”®×Á-µ2µÊ'xE»:½dáÝ ¾†ó×®²Òì7G= Ú¡ÐÅBÍ®­º õÞ'ÀzÁEÉKKÓ%´\’>Í[l<‰Ô/¶Ü=ßôŸB,–ËÕcgÁLæ³Ñ˜¨xÍÝU”EªyUt C�®˜Ð“øwjÙë5 LàŒpñzœGMïU±ù¸ ÿ– ›:úV˜ãi¥T`)À„eµßcQMÓÙ¾&³û i3ÿ‡tÊP,�¥�]Wòb5…Ú®²x3èºâZ¨`eÏVäŠ)C/‰™&cÂ-y-³RéY…+áÜòr K`Û¤j¢… {AÓohxlúSˆö™Íd÷<˜ÚZ›Ý*KÕdëºxi†ÏíD•Yƒ±S[U^§é��¡°Çé x(Y ‚ —k•�š°û“H´»È7Ûc¥çì©W ë.ÂÙ´âO=×éçøíÝ%žá½Rê½D†§]>$ļ9�8æã�Táà;~R=ì >þi—[(´¤.2‹çO3R^«ÚÅÇŒGÐú®ºö®Œ}ÏÔöh…ñMMÖæ’¦y�;my1¸\\ ÇQäªN>n*DÅWk­Lv¿…¥@»sIØÕ¨hç)Þwt¿I™xrÖ_J ¨KIí𨦲J=ÔôÌpüžá¥s ì¥Hí£õ„`L¸¸§ÓÍ S#MÍ”f?Ý•÷{èÊ6ãâySv299à¸mf{†_Ô`e¥¹­h3uOu¿ú}ï3R:ä2)¦±2{|Œ€„(ë\‰‹`ª>†€ýGm=m5VM]’4q ×k  îÁª—�ÈÉ…ÇkxmÜbíî)¼A‰S\z—Ä ÃNµ8ÿ�²×ôõ¬¿(\=î^nX�rcîce˜?ÖÄ̲?vQ’"R ðdj3Õ)v.¦æÏaÑe/í±Û4 ²0ƒêMú’Ò«ÔÁj·ÔÓ)¤OtŸ {`ü—¼æ-Õõ,gáÊ!‘ÕŒH‰DD$³³qv4A/UgÇ=´ö°½Ñ,°rªŸxó)ùТ �7¬äÒ¯¹8ÌpÅkžC÷—òÁ쉲+o¶ˆ{lU$û9"ŠÐ<ªizWsßþOc¾/žý6Œwý½ÍاÜ#Y>øIõÚ±Hs®[!ÃÉ!«j†®5Mì,í�iSƒU!‹ˆÝ Q~ÄKÇãœÓ©kg\\MG¨ë”©f°Ý ÉóF P?7•ÃÂ[dKÄCu௪»=`¸Ðç”À2òq™ŒË{'-ZgÉzBO÷*ø‹›Nü  ÿ0ññþ¡â°“*ˆ> ¬`™¿Á`ÞM»«ÊVáÖlnÐõ'/Ëϧ¥‚ÒÕo��ÐÖMÇ3©ïÙ™w~ëÂÈ?¾~[» Ð��E¹¯s+4J£§œÄ(6ù‘Çà ‘¹÷l£^ZÝßwqúæÍ0_h†�VC \ÙŒÏ᳑n¥ÌÀ™(R`�Ai"è�ðZ‘ÛÍÖh{Œ³zÏ"å1Àϲç5[à&Ûž‡<+¤E!kÚñ¥ž4>º >¶Jµ CØÉÙ2ó©·,6Iö¢ÈÙöÞ‰ñá0L~íµz0ƒ(ã¡_û$üZç«�˜oJ<—­T4ÁC‘ áút;­-à±C¤ª˜ÙÁêp”`”œ9$ÿr¶ähªÄ¬Ø.S¤Ô™–Ò²éã~ÛÊÅŠ_1~(¿¶jÅ»»–PD¨nÏKA|Øn‹¢Z] Ê^ë+³d�H x‰2³Óº·y-é³ g95�“댫*û®”²ö»uë#A‰AZ-³¬Û¶ÓÈö=ÝÉhoFŒÀoùÆš¢�8Ö³Ú�M6SüØ�AÀ¬S¡þ ˆ¾Gö›„€íJsWÄ·ŠÜÅ¿çÔÄL èXbµe5FåOì 3•19¦ áñr§#N+ÛåÅ ,(?x ø%í/?Æ»ª®ø ­ð9¶^ï}¯˜ªë;ÏN.TÆ3•l$“ Be*Ý"ÀÆdàæÍpÓûNì¬ã鶪} ý9ð¤7Û~AVU…³=‘Ïð¾=!fŒøù’v-;xbbj@ \C�V0Q–ÀŠ1Oò5å[ ‚'4qwí¯N6 [¡øù•U1B=Ë ´Ó¾ðB¿�ÈŽ „SbK�W5È(ÄÄÄ»– Øàã9&ËÀöYZ #8µer¾Ü6Æ ã�Õ=Jâr2ÂB‹óuú—¤<óÂÔ¶Òü0¦ËÃJk¦¿¼,�ò¸†ï}<FKÖß*"ÉÉ�\ËY2B8½¡©d_]óS½Ôé•”ÞU»ÿ„ ¨Kqù#}–‹®Ež‘¶e]Gj¢ÖÞÌIãã‰-±íWz¨hB+˜ú‚¾©:’Ûh¤8 Ø.˜½ÏH»hWC¹€`Å-xÆç’<›—zFM.Ë+Ë2ý"½«§½Qì‰êÚh†×N¶·æH�¸Å¢G' I‚˜ÿoñtî<5ˆ;N´h†€…ˈº•FqªÌá2{ ?üÚí÷1åC}Ø0eŒ”þÈ8¾fi¸œ)l¿phÕŸ†X÷ÇfÓ‹D»8ï0•Žå�ê²@.ø�LˆÏ¾°ªGíÆ†öašþiXr.j*@©X&tRÆàˆëEe+zQi Áj@m- &þu¾tæ•É©x^G‡ïw/§l*�§›{bM¹Trý³“u^¼•�"ë/¥0¸‹'wüe”ÅE<øÜ{I\"£Ò¬YøÌ.çz…*×­YPÆÕð(ŒØ`L`,ÆU7æÔƒ©FUF}[ŠÑTjŠ)‡¿Å2¯ žÏŠ_í®³\�-³Y½MçÎlóX*?‰&ƒ� ‰jº‚VÀ{eƒ"Yæ’`õÈLŠÚ9XOxšA áSj»Ûc�³ì²±Ð‘>Dφy`ãcاŠ;&³ÏÍ«Ù8êø™¡v{²¥,Þ*Ňï(œèB­c´ëG—èv�Ë®ÿöK²çŽ =jØ's6–ÞD¹e3i® c0ÀÃÓ¾�çô m³ÞÒõÂgN-³@Ž”c³o:fÁ´;àQ)ÿ!>¡„‰rù4Œ`r6SÑ“l¾fGËM�Þ:BÍI€û:ÔÔìÛQ¿g—ät ©}ÊÜAz·nŽ@Ju^,WVŽF¢ ¯ƒ«OËØƒf¯U¾·�Æäà,�ßAM‹0MУ�²}‹=à£-XBÛYi‘í%kgñˆ¦Þá)¶½È8gOÜv)Ôógh–²lMÑæã‘©xµô•È×ÔHBØ:‰¸üÑs²ÇÆ”v¼¡ûÅ|ýØf˜©ÅîŠÉ/µ0â\Çþ1ÁN*;@öomíúªw[¥æ5üSXÎ*‘<˜=æŠo4ðD: ÂiCš_g1ÅkiPËI̽4cðæÇgHwj£ªqèÅÏ+í ¢'GÄk1UêŒV-"NXËÄäìx�ÃÐ,67Æ©{ì‹çÁãÒlhE‘ ¾ iÆ!^ÎÉL:m¾­Ä$s+Q>c=¾�¦3‘]yDzS àÿÒϺ"¼DïÑÀp¿)•gÙdE/L–žÕO˜éy1ÎC(Ï�f•G&Û¿Û{Ö�׺ùàâ«ÿzÔ‡‹$€âO^»³Í­õ‘Ìy[$Ü7[�'!b:a!¾‚p!gÖ>õ¢ü7:1»ny‘õ;žpI¤>œ…„$QbàŒM{´ÑAšV­ÃQDý„ªÞð¤ó¸¿LôÈèùþψ ð¢dA žïøØqÔÂÙ8ÙiÇ[ël—¦*€Ëɱ�ËYü°7áo”RA[vrÓõý:‘TNÊÖ?¥7nü�vá!ÖšÒ×êä䘎ñ‘!‰©*$Ê¢Õd.× ™W’EAÌW[u-–â<´Ñ?¬$fbX”EhÈ¿OÞp¨CØŽåhÈ÷üEy;ÄË6_]§Îœ+÷Q%±w³@BE«UgêrÕ¯¾€Æ å¢ïžáSá¶æ¼·žØò`f†Á‡eä;â…’9­tÒ¢@œ|‘Q{�µë†>^OãL�‡ÒJ�¡»€à`Ù¤úW;”³Õû\aÍ×W×¥Z\el‘?ÏUÛðë°AùTá(ú=ô‹1-øðÔ| "3oŽÄyär}lý”ôvÚþ:=1jùq ‘CÊ[v‚ó Ê["ÎWÚ7Üó™V„(Ø Ãx* )00}»Qi7™/i!•‘®’¨cQm+ÕÁÔ�G”´IT³Y9oS°™Z„û¢cÓ[’v»Þà^²ëÑžžè ¸I*”ù�¨ÃP,Zd$Kš‰<2¿³ù_úñ&àñ™^`]R}ûq†' *!ŽºØüœµvhoöd¥¤ é,š§~ÑAû‡©B?vǬD½uô%oÿTúûšcšÄ¹<ó†¤$,Xú_ºä û·zõ¼çÅÑî'Õv ³©á‰}Ýècƒlø*i +°;cÍ< {^çê=/H!õ«K]Óà[àØÊkÆYhõ=¶·ô1ë$ÝX×RšÜ‰=?¾>Ñ“Π¦‰ÎÊ3ý< ž”Óg¡±”/ÄFâ™eœzMõ�ضà’ósò`à9œ'ƒrÌÙõ­Sÿùü³á!*€:ä�?Ÿ;²p% )mX"oO‰é�‡0ÍXÌÀž‹üÈ4°È×÷�ì ÌŸÞø7IRÖ¿gé2‚`³¡`—÷Ü8Žò^˜B/€�C¤+!ðNqØð|²7ûœÈeŒ½`Úâ�‡ûs”6ÿ"¿ÖX´ÜÕ„¹â-DŸEó©ÔhB�u´YQèÒéA¥�Ä^¾èl6GñªšA�JVÕZ·‡7F “Û]yU�ÜÓy_9å³FÒâA„òQHÏ4ç¼¢Âïâ ï¬{9U \©…<ˆGcŒN0`t;ˆú÷M kÅÿ£¤}¤!É.œÑ¿X“ ÁMW³f޲È3Ö J””ÈÔËZ¨rëªÏóï,°Ë|¹yÁ“¼çŠŸ ^|…Í£¥\Ÿ]©`î¶§ù•éÌ$d!Ø ¹‘®#@š,$º1pq¡ÞCGÐÛ£ ;Mõe’ é¿€õOÊ1®Ö'"'Íáˆ/Òþ¦¿3³Ëñnêl¹ˆIv{»”q¨`W3önúœöÅ8™·’ÇÐeGDˆ¾ÚfÊvj¢Q�l_j±\Cxn²íØ#û Ô¡ø[­üûÓ^²OTöDáùAH«¿êòì5óÐ8Ô-eûÜîUŒ‡Uõ5�Y ^Qäµ$¤ÿƒõÂáÊ#o>4Î}\©ŠqdÙÉ‘®©¡eÍ"£[m‰�H?Òö�š5”Ë"aÉÛýe_C«ÒµÁŸÙ„‡özÔà:±°iŽ.R2�FXt›sز�¢/X¡„ÙÝJ1¢õÁO^)9B_ÃíÉ��•ó)‚ìÁ϶P]Ãô×î±ü«{•R$úp™_�|›`IŠÃÏ6þ²z¥<� ¸!xÒcb2Œ-·IºR›2�í�†UlïU�·¿åu„î¼ &cp“.‡èÚ‚¼â÷ú ²T<�V;o „`´H÷ŽJ¥Ä7Ð@;Nì�](ä±³j×m1z¬€9çHÙB}Iœ‰ L »¡^‡ÞdgË�Æ*>#Læ(3“yš† LC±¦¯Þ·Q0aj ÍišÎVpu°í-lòä•zi"»`#4]m¼ä! =FY›Sö,”RòšXÖ tÝ %Ög„í‘MÐ 6OCÎW¿.BêðÜcqÔLÚ2RçÍcÆ‘¦ ÉR\Ð ÷Nj²ð©ÁÒHa+o² ìºâ‰¿ÂqO×ɲ&“â-‘Ëwó •ïådG¸-PÈJôÕ¤qü ,²Ìâð8W9ÑjäBý.Ø¥%Åþï•éìï­KJ¬#‡®èKñºxúW«žá\@3'ƒZCÄàâ·Ñ“õ%‹ã'qAM;¡¶|âÇ!“!1~¬¬¨}è svaHjwÀfξH6o’tiÙ 0‚"Ø;…¶ÄùÈ<+vBáj[¼âÝ× ‡X7†¬ìÊý ²cÙt¯ŸÙ•Ù@m=‚<‡­V� MœñÓ!#6?KnT¸X|‹{Ò–õŒþ~>é^{Žà9Ô&ö.Í…Ö†?›Ï l‘ÁÜ=ò@ÓEȘêÔ5gw_xp<+¹÷ÓKwNÆFŒ–€õ@ŠêÚlX¦6Ýqˆ¼÷îÕbÆ–Á `<Á±ÐϽà_j³5Tk*i$w{u ÿ¯7U;€Æ×§]…‹ÚíÔ¼c¨ Ьv1³g Oö‚ j‘—2ÚÞÚ+ÚÉ·Ý«ÄhÓÝ`Ú+ ˆçº¬/ÆC¹£ážéZŠLD| „*ßím à‚¼Äp^1ì×6´Õã0"’°(™ç ’r÷Ës®É˜} U³Ö¼Ê“` £ê•Æã,¹ïǤ�cÅVrÇùx j¢Ç¬Sþµp·åFÿùÆ~ò Ëz˜.â5ï„ã9fJk†ÌFÍà³\‚`Ý8G;‹îdÂQÙBk1üQÆïÔe ìœÝ§ h²nQoK›L�'!½§vÍÜ6\�Ûò«�`ÛÜEI{Ý'â±—ôo_Õ0xrÐ#µ¸àóÞCøs4°D¨Ð™dÄㇼpi1½Ø”ÿUÔræGØ¿Ì)aB¦ ŒØR‹ûY×6ð0(@uÉ0^È�që!»Z�ÇJµ¹âi‚qŽ.NÍ »”M�mœL4j$'mÛ–×�¡óŽŒÑ7Ýúý°ï�gˆË2�¶m¡ÈÕrƒ‰àUNÐì[µç8ò’M¶ø»w.} \\æ�‡t³TõÃ�gÖ(½šÈi˜~ªÓåúÑ;¹?&è Ì'¹<‹ýÝ8cåsLŸ,7¥«‘FŽ÷?x{&°Õ÷¡k†194íi'o\%{Ùó7‹„¨4ZqláïÖ¦DÐaíŠ;Ä¢?ò¯öÔBVùãÅ�¡VÅ"Ív½ž2šÄ)Ü u˜$GÚ n{aM¸½œÕÓ¸¿»^• ¦Œ{ßFÉ‹7/ƒÐZ±Ï΄³k°ž¨ÃI#a°ƒ+�ìD`TÜm·ü5 æ¥°ÚüÉ7ÅUÑ%ºpôõßñ(QT{v¾“¾…½¥ë”�#h ‚JL Ò*ÿ÷#MÜ ·\QtоS@j_dÏŠÆkP³$_´l¸ß¯ä¦ùßx&:%Sc7eKc±ÿ2�²42üdõôÆqýà f6TɹŸqV_gŒ{HÞÐ<Ï,U^§vºg-íTa=õa'ÉuTžãÝõÏÿÓÏ”YP-.êOqD‚*5±£ùß|ñÿ2d&¶7´÷×�?7Ë᤟Ä5Üù~y­XAî—¦a¸‚ãýbÝŽó=)2fpTx¢ôûß|‰ÿ2§ HžGòRÔ²uZvçÔ÷þ´Mÿz„ºDÎmÈóß“2Qò?„ÐŒ&·+¢øÃWÓÚí-¶Çf¿kþ_çÿøˆ@çΫáY€N HÊ=brÿo¾¬¡¥Ýÿ5žçÿäÿ{ëCµ?r´3P:¯›G–%4þçÜ\w�|VÃw#ôÉhs¬þ·¹Iþ—yd‹öãf�j®ÜœùšJ:�DCTŸí›àŠ.U]eÐܬ¦¶ùÃ^l¹2ô€k“ÇLGù­žÿv?„ÆCyÑþŸ>ý€°´€·[©~à¥ã5ãÿæKý_`ôZ ÌAú‚aþ3ṯßJ¤¬UðÂÏq•NhPE÷+Fó_ÑŠ—àãÌ£ èÆž)*b9zLý®ÿé‚=LÍ©0²8jë�f%þo¾ô™R™V»¼Q}ÈÁ•S®…6Ôš8�M1!�{±­æ”Ø´ö‘…Är” ËÿsGCÇSB÷ÜûŒ5ÎðÉšÿÇù?>Ó‘-¨ÙRU&.ø‹Øÿ›/fic*bêlü?÷“AX;4m¤É[б¡i¹¬˜�¶#»Ø“Ôï‹hLx5•sðÿ븘:»Ð™ºþ÷ý?×àç¦è%¹ç⤿ö€}Àcí[™ÿ2ÃkÍÄå ÙªðYUå$ÍÜ2m³;]V˜¯SÆÎ 78^–Qñ5€IüR[ðcÁ?-£“ÓRîJ4òÿÓ·§ÃÙpÖÝÜdþ¸"úäú÷¿ù²ÿeÆ1Y$µAåîknˆéèÝÇ2�!ºXTŸU€½Z§ÖtÃ1:6êRî·L:ñØmu†3iJAn<%¦Äùæ·ÿ§�µÇmœñ'¸ÈÄ9”ÏnÞ=ñ¿ùrÿe8�3üå�ô™Û‚+—©¸ÚؾH“NÞðaSÒ'šÃé"¥üÖìÖ!"(IÕ�¥Í»›À@ÈkÄ„þç;óÿö{c× ¡C¦hÌG i:¼5þß|I1ea€ÿ?gZ}E�îoúí�ÆEK%ql"S˜(‘(uÓÌ^Å4.´Æ:'c�€Á<ÝDÝcê�X´Ãw�éœÄ¥Xd ,�Vë”é²6<«„4 #�/¿ýjH§ÿ™°åwƒ›8pìñÈ­ßÖ9ÀSͨ͘“Ñ$PÍ©kD§8P¤z� …Pw'¢äVd8c™=¹ÐÖ¥åŽC¼û‰LfEŒZP“„™)ç; p¸ÝÅJÊ Õº'g½'Û X@ôŽD[ÄÓ·mO$˜½#ÌŽ$ˆk<6œÍRâ q^£mcAÌuª:ýrç`s_»pÚ u[@K¡J¿j)¤Ë›z�‘Ô¥è�0ß¿UTuj ’Ú½%a¶(±ˆu#žÑÛæH¿äQ5ÑkíZHǶïØ7UÂw^Ê-4ln�P‰ô(ª‚˜*VHÍ/ãPé”ùB,£å7�$ãŠd¬Ä±?¯© ?;s&ÏËo8$@“áØŠö“rrÓË{�Y¾˜›[2HšUJ¯óè¥ÌKŽÐK‚ÎÚìùKì>ýþ.qo�÷è#½0Û§~ÊõÛzIkÔUý°VZ²œ-¸q)ßìè0ÐuÈëâ¾G¦|d‘’n”_…r(DË饮u{s#oé*£¼?J6¼VuÓ¶QÏ8c}–5õY®îoùë™Ý>ÝæˆfÂXB`Ž4œoäÌ�ÞvmÖ§Ñ7o»êßYS1à”¥®ýœÈ´G·Š�kö"ÂY‚ƾ*RN�ú/Ì-�¥ñÉK1±Tm:[RttËA'.ÜœkËÁ-PPfÀ• ÁAX�s6]¯¤í9Cî~k(°Jü“œrE†T-ãna‡Ayé�è½ZŒè;Ï¡&ß±~ÉBŒHÔý9L VDÞn%x²7]>2€ÏpŠÏÌÔN/Çä®?ýHÏx¿õÑ1l”¥�¶[#¾†Î^Ë­Î #§ø¶be îÇ_!vPçsNî%±Nõe[¥÷QlâåÓAÂÁ<®;�ʧf|$«Û„ÈD]6.Áì3-XZAôPÀu㋎½Ø§PµO’ô�¼S"KǦUr�á"+‘ÒîMNª'yJ«í:´[ÌÕ÷`®Îö ¬ êÇRw|œ—ß9ÍÔ‡áèQÇ�IK¨l[døˆ‹�+…k,;rãAÆTBd.zx÷¹Zof7kõ\˜”HéŽÓ dñoN|”‘£iiâ^¬nÜìДb+áZ ü‰ýç”ä¦pEF´\š"Žzº!%©&Ë iÿÆÑ?T¹Mâ›*ƒÇqr�Í(¨\;ð î�÷@Wá>Y:ðjÅw¦8ö5¾¯æóZý¬i yäЮȕú ‰3/ ñ+«Ê/(ªÕÆú¸€6Vª*¡?|nadö©7!LljU¶ãK®©íst@ˆkÔ.ñÀÚŽÚ í÷vKýsv0óšíæz±'ÿò0òˆhÄ!3ÏOáÜ·ÈÂç5�o®cB½¾êSØrШ8%ÍSÑ6ܵ–üŽúŸ¶ÙÄyz.U�é Tˆã¾»'�VrÐé!¯ÞtÆ�T‚}µFL|ïÆ÷¨_ª·uHiÀÿLÜ¡–ùc ö«õÁõï ûêþô™Ý×*ÏW¬ÉÈ¢µ}ªœšêáëf­¸\Œs™ôèdãçÿWÎlsÈì=aZ¾÷?ù7è¶uTï[ÍÑq%ùq7á&ÝëèûtGà*× ÷Új°7’�“,³·CIêÕx #léWíIH[þÆÕ6-fª8Íææ©Ÿ'Zóü†¬ƒ‘]äBØÁ@÷ÌO§ÉEƒ^9`—%š³ïc¼‡¹<²êknÆR¯ð›£{‘ˆ·µàþz#É…êÖ�8<áØÄU/SÝåã¶PÊtŒ°vðUi+¤4%!qàþ~õÙØïÁ»ñ"ÇÚ“áãý­Ykø÷߸A€�‚>"¡ÀæT‰\ÊÍüžåQz•F@ª½k¯T2?÷Mée¢YA¹Ó‘>ʋތÔÕòœg"ÛÏÙª›*nMdW…Ï´ßéCÎ>Õ„ÈØ ¼Ù"mÛ¹@ƒð¶-O*‹òÞ$lß+XÁ�Ö¼¨^°sw`ú !'P’³öŠðô-¾ÿѾhKB‚_²B;ä[qB›g¨v¾Ä»”‹K¬¡õÍý@›‰D4Cæ/J»kêþ ‡|CÉ?á*Р¥Ò†)‘¢îéÖÍ[‘(g‚e{,LÒ�‚ ˜^cŒP¤ÿNé�OV+y‡‚¨§lŠ‹VSh©£»Ôõjö8ÆñžŸìÓY’z!´˜&Ñ×Áz÷biš:–™ \ß÷3É/ϲ²B(½É|XEâlº_èß0ˆIŠz/wÏœB´¶#àµ9 á1´�Ày‹ö>4wè¹J‹I±ï”´ ÑNÑC…°†Í1?sƒIµ³ÁàyýŒ.;iù{ü»\1sv�˜µ¿›Ï³þ÷A—±€u�m㕬Àr:…›_ô¶NBœŸf"0@•»çTÂ¥þànŒ(Ë0¦“äGiKfjÎùš3©Å´ëžMïïûì$Ÿ®6»${d-É®¹nR‚ÓLÚ�-ÙUæ1ñŠÒŸCW¯(ÔK¨©ivä´K?@gif0&u…F7Ëz»ÝçVÿ ë•óZ¿˜»áÞ^Ó·%Ž;×Û!¿¯ ñð‰Ê]ôW�[Þeyé¥üÑë» B²S�ÉBÄêBf�‰›"oJãXÌ.$†HßKàQ”lU S QŒ$_ÄÁ$�\‚gZÚ±,ô¯âõ–m^U’‚)ë3"ï¸)%{xÑÈÅ´È(0C¬êÿ¥7‡ œÕß´ŒÑxÝg˜×�Ã'·bcä|Y ” È«BÀm*®²MåŒ~~½Û²F[*JØä€TÕ)L±âùQdã¸ÄWÊߟÚà6 7%(l{ˆ+²¬­¼/\Y¾A6 ù—,$~hi G9€Ÿ7!Z†vepAḛ́‹¿ç7Ĭ›—AÒ�IuÞúû>zH¤×|+©Þ+!Ï«3·ÓRχÛj*ó¦y˜àÉ,^˜ÑšZròÙ ”m¦€µõg¢4+‘J¢C´Õˆ’¨f}a›ä&D4 §¡èŸ·“ƯЬš÷ä£è'ð'PÊ…Äÿä}›º’“J¹œnÐ0OÎ8‰tu¸ÝçæÌ‚à LŒûß"©røZ²Ì"¶â@eÆÙ;pc4­t³¦Éê1Æm¾tÕŸïÏNÂ+öÁ§»ðõ‰Â’�£ÞÛ{Ù­vu{±lØGŸdêÑÓåLú@ú‘.·åP@Œð½ÁØažøVz9—„Eû í‚öWÈýjïìf«Ê‹¤ß„ŒV„¨ëÓC{Cû’ R1fNæ-° Œ�w’‰ë[ö‡“hY¥ÆoxgVk«jnfâ¢*¡àrváÛ’Êno+ISÂÿÜNEã¥rz‹V÷fx…™g«Ì¢ ZSÎ’éD¢DÊwƒ„Ç; ‘»f)ß�U‡ìLÓñ¶yóþ”Físý©�z?Ðs6�Øo‘åbŽöœ'=^çFG¥Rá‡úüº2�÷ÙAAóùFLÜÀ&³¾ tEÛ6‚ÍÇy·5Ð\»·”ÜjZ¤ÂyXÝyÆ2m)ó»ëàTý¡ú.§ÎÂv‚|Îôáê—€Â\À+7š·Œúáù‹«7S=cs×#� ¤z‚vâºðêêé­¬”• ö(Y ·3(Hô‰&^\(žz®¸è\Æ�¬�¼®8v:N í…±Ë�É€áâø/u}e{°¤¹Ëaß]Ó\·#Üèæ3WDÊ9¢ƒ½ ; "ì‚�dèõ bÓîÇž��}hÿè¯�¡&HÒ©5m)ŠKNa?KHãxZpœMôòjtãJ Ö{­»ÎèÓ/c¹æ ‹3]´dù÷µœá•,�p¨Y·nÐ÷<¥usÌ_vŸñ䆃•PUưèÀVœ±óD–­þº}ŒØ¡û°¬žO.ˆÕ%8J º—"Yák¢üPWÍABÈq³T¤U#aµ`SÄá6%~=î~º¹?¼&PÖjeÐNÙ¤u[äçùü³Ó5|Êd�+x‡çn”Øþ‘,’OîËù}ÐN‹iØh5u¶Ê®Ÿ¬eï̇�Ôz,錡é©-wDU»«8�.¿iÊV:{ŠîVÕ¥Á/-�Ò•_s¸‰eŸ”ÊÍäVÉœ]Ñ\öN›ª¹å¬†)]:î¿„9§‹¯¼oh$MÚ=ehóžìXwÛ§,’Ô Å3« 2R›Ùˆ¨,~�öîx•—(òÊ î—h+4=û¶4]7Ýu.Èuþë¨;ô lìÑGõ7iã³ é!*ò“´uó\¦vø[ “­¢~¯2ËH¾·—,ëVJ§àÀ†óMv‰"2ÛdêCÍã1 ØmÔX/5o¼­Ô/ä°"@aÑѵ1„¢x3C�Ð*‚ ew¿�#ªÎÉê‘&ˆ¾;5vÂgÜã�Í(ÊehÕ]˜µo¼™³ŠŒN*i‹¹À2Lšòû!HJ?¶=úÍjïìÔ‰“ ï·©9û%4*èYj%Þî«åwT¨¦6†BJ´œ< 0OT"Ø-ÏÝþø`CPÝ¡Ûü£(ÀÒø„¸­0p¢ã]¨Ÿ.V´óú|̸“R�:Û=×¾ì»+Ö’c‘Ѿ7Z‰~u¤#�¤;6¼;@á§=°MUÔñ�*Y¦"ݾ;±ûÛxÑ×IµsnU41kkôö+îFzNŠ)®4/äƒÁ‹„Ù=Âåt§o‡>Ùt�8 _ž¥T4Eô¿–jŸoµ÷«9™¹Û��+)¢§{ù×lËž;Ç.n Ävq{y¬šŒ®ºŠ(‡{Õ©­§'^Zš(bVЃAÉ1ä÷˲VRS‹„ÞÏÈ¡Å5ÓÕ*µêÑ›¥ð8P@ì|­Œ,}ƒƒÊRŸ³îÓé¯`LDùúUžÊÎß–šçœ2ãWCÕ_�¾GÊžœÐ3ßÏ¥/«p~þt£úß\wÃÖOø„cl4#Êk9ó"ì@Y�·â»:œ&�õ‚Qšx«iI¤D=V ¾j`ÔEòF^»bbNxE˜k'•Û=¿Žn'!á� Q7)ÛÐΠZ‘ÝEü7…Ÿš±;u7+{ÏäS×­MÕ}àt?+÷&™V i$>QÍ,Ì�˜±Ü'^.&þC2’@+jÇ`gT³Øù)BÅ+ï�¾Y� ÇTËÛ¬ïµì¦ ºÝX.7¢fÅ mÇ뢳ÆSå.¡èåP„!€ùÒ¸ê´öJûsÐw‡—O—�1 _IIÒŠ¦DåÓ }�æÔÏ€äÜAÆñÓ&B^]ê½Ê÷ôyÛøœ©’«zýY|‡,Å*Ÿ7Ü©» Ú&Hîç¹ZÉ-ÇJ2iC„†{À†ƒmª€v¾�_å†ôüš˜´bžÚFmm°fB�F†ýïJtÌpðÞ׎2´J52,²‚(‘6>åGWåí!ÁDÏ�å}i±ELG±!ñP²5²™i2‹à÷°| 0-=Ý%GÅ'û[8Ï;/®ËT"ç…9ç>ùœî×Ã@ñ~…Ñ¡d)uqe¨å’•Øé~ß —0.Ä«è’ -2$Ê›ƒk ¦ ÑêU‹¶“hkÐ:ŸÙ²Üºt�‹Œ�¶äåŒ?IâMS"ç [ZBFþ�Þ°]jÙý�Ê<£\æ�áZ8�¨5xG¡ºB,?jÐâ;ÕE�!;+mÑœrJ.­bkŽ¥Ÿœ€g @x)÷czH+ÏŸö^KøËòÔ:N!KVÏW¯ùA=ðÚµc1àŒ ;€ô�6m|Ûð¤Ü_#Ά�?Û‘š^Ä.¸jr¾?)òG¬t-ƒ!á´å0ÝÓÐd9Ú þew'í€w+Ùs F �Ô œ–HvÄDLœ×Þ“©ñ†¸áJ 棛��݆] ²·Wcġ٧ß� �齑YaÄi+c§‚$Á…Ù‚ÅæWiåŽpÛÃ�ÊIx¿fû#°“’©6$BêæªRú`Íü¹ GÒìs‚„œ|Äm, Ð�ÂÞ…•M~½¶ª.ðOt¸¹øö=C›îK5v1ª*±^al7…¢\JeNãé€ý� ôì?˜[)=•‚’ƒ‡Šâ€ñåÛe–wñžpp(…Y¤n2à>SDð%/Ù€@ắ(ý‹æ6<;…âÑfC�x é䋸6¬^ƒ£ªäüA×#>÷¤wÐ[G€�ÍêÏOa�½ôJ |6ŒäJ8º¯•BÉ™Ë.RFÏ¥t,$cåL¹›ø°í3!EmÞ“†]Gåè婉Þê÷¾ÔÔÜ܇Jì6pqÔ¦˜‰�‹m½—Ñé�þmõ÷hõ 9�„†cI^Æ`n¿D®nO†4ü*ª&\vÌ]ÁnÏxœØ)?›œ3'‚b?µ…ÅOžd´}=õÙ›�ÑqÌJûÒ]ÏŒ)gø‚3‘h]–ܯ›÷¾3ÎŒG«¾CnLFÔ»\~í0úª�=çÖè-ºAóìþ®Q·n ú€·ay =oåÇ;IÛž`.á_¡X5Ž­^dæõñµLŒEæïˆ³ÊUv‡Aë2%zòQ`C´Èéªz¬à‹· íÝÄŒX $AJÆ'‹ýBmW±LOÙÕ¤Ðô£9øMþ1=‡W ÈWJ„_Öánüå>åÙžüw›Š¬p‚‚ø•%•„ê CÈUð5lc°Ç\4ÀŒ ¶y®P&\·I�7À|«±f·Û/Vî[ŒTË>N‹ÅÉöFÞµ¯ö'Xyêå÷HŽÌ„Y¡¿ÈîaQë.æEÄxWËR±'-JÖ=j‹é$eÊS†Dã-Û¥ KSnqþâL„cã5jËl¯�Ö~ªQqSW5É\+ì½Ã¡êy7Æå˜ÃÓc¨4ëPôOsaH$ª; Ñ)&¢0r�oùŒÜô†¸ý�Ò)oËiYù”Cz ]%¥b«9~ÅÆ]IrÒœ‹(™¡ú´` zOG•yù7‘e‹pöL"øëÛƒÚß ²£Æ�9ûâ[¥!“ñWoó®í]’.ÙÚ8Ö£! ´°‹~©×Ÿk—qXÀC�¢_72o_e°üA-û˜§A0­˜âĪE]ª\T�³ÆÞ“^zSîd'àn Ç�~Àa<ªÊÇ]! ³&/V ²’Gì©•_¾®Q55ð”‰/ z>*ª»Ћ£!…xI|‡yú ã\Fº*Ôo€âóñ�}0‡O¨úp¢Ü#ñ‘yöyos—/7<=%è¾9lá/ëLj6åpÛõ�Væ"º[°ìB�ªµ€†‰Q×Cøûq‹7�©(*¶¬õÔ‚M^Ò¿'AH“±‰i&Oò`ë¶O-¯ÊUëLçà‰' Q€°ßƒ>v×&–Å@¥Š–�T›º[ŒO�Ø:ÏC¿fóù©jªæeÈ6W ²ÕIýÑÍÄq ÅT‰µPaþk‚/�ÂêùMc)>‡?-ÊÄU=P0C„šL0¢)žÚ‹mpÇ…s™ µáÓE­§jÙOÁ”R_[ÿ•ã E)ýi%iÅjÌPãÜ sèù]sÎ ’Å”’óðó¨{.5m©Cl>ÅV(d2æ<—ümyî¥F�÷K<ÂeG6qS`þ¦J17H”•w„>­=áTµG—1å~ÙL¶È‹ ÁmPE½É�5þãáÎðÊä—{2_«c¸ZF‘¤ÐÇm-y!C_â^H�¹x¤;Œ ÕƒÆ#gôý^7>Ø9¨pÒGnÓ”ù¶°c›0WâVÝ©6ÍåËúC"} ÃÖöc$í¿“%¼4mxbÍëJœ+ÈJŠY8È_D5�—~Js™ý‹^j?ßòßýœ(ê#¥â+Ö³îTßLèÑÛk2â �­¾v‘•7r:dƒ ¸˜Z耋@¸4x ÕÜA3‘J4›ÛÇt`áö$ç½ûyÊ(ð˜#H¹iûþj‚oˆvÕäÍH‡OÒeíû £‘ÒÛ�!D7rl<4Œ„¸žõ ª3ÝBÐÔÇS‹ŽÁ£ÜhOÓ–3q¢)íæ ^:ÂØœÍzÅ] �Š%oø>xöUÛ©l"<��ÐO`a8z$=Ø(›Jøì‹|Æås9ÞOwX ße† ¶”†W@ô"R_ðåuÙ"å°ËŠuÐÏÝ8ZR=´‰·9~�Ì š(>¡kSÚÈ69;ÿWj’cžÓ×Ò±¬'°lÜazžm…ÌHUn°tÕ¤Ì|ääÞÄ­úâoÄñÐvdSÕ~”êB2‚-!ÃøÉ!&²Ë>«Í¢Çe Ôôqj ]í�>½ýÉàÒF §Eá€ßгäX(¾ñòŽ›Í™ÎU9EŠÞJ?ËõÐ3¬Ò%¿6™YGx—Ô¡®~Fè‡)ݘZõ +�õ@­5îeÁdúE$l.ø }^X?±ï�Æö¿Üi¬öž —J=»‹Åv21_è µHµSéæ“*±êÛròÞŒ.âÕdûî)¬Ä’·um;RÛMÚ½ê¡"‹ù’Ø®®�VYª¾íμl÷±¼¢ùQ­‹”qD§Æqù~&e´ P7òƨ=>64é,¹'?_HKÅáÔ$üÍGXO"®<8­½hœqi*¿ìl eŽR»Iˆpý>ºšR8I¬?XרÁåÊß³oûKá¿ËŸV)ƒ…ªàPJÕµN&ú–ÛQƵm0>ž©¼ýW�E†Ls‰�4i+ýI)_òÑoÑÉ&sþ‡Î1¸ŽËR:vË”pÒ" Áÿî”ä$ü…�q †—ò²Æ=„~¹Õ9L}ññüÑ;ge¦'Ÿ¡¥W¾%*ñØ»K„…2Ûž ùøM¤°°#µ¾é¾Rí7–Nƒn� Ž7Ôv⊔‘˜©ÿœ›ËtTK&`+­Ù£¼\JFŽ“Ã��FîÍ_äj•é ö Ó e¹‰œT»Ê2àÛ¸QÏ»`x˜—”þêap‰î€×ƒÄ¨ay;K�ãˆïšõ:ºsâ÷ñþ Åmï„ô§ ÝÖøÚõu/íøaZ°ŸX-J2»‡-âGvñw¯®0f•žª.Îø«¦ u�ƒEðBOâJ\âI {¯}Ú7›ÅÉYös�:˜Å >‡X"ÌM=ð= „¸Rfž^8ê7nÄ‘ÌüZîÕ)‘kþäè_Yä�Ð-K˜«â­ê¼eÕO 8 ’ý4ÅĎԙ͠Å÷„o×*í4ßW3­7IH@­øÌåÚaÔ¥ƒ;±&°- O¬6ÎÚ g8)íÖŸÉáª&pºø~$Äv@›kÊ | òkjüPàR�·x/í~J꨺wÐä| Š[À†ÈjµK­‡6qŠ¢#ÞyL ¡ÎD&´ 'üF â@Ô®ã/«üØV{‡™‹“)\j‹sœ `ÝXPÓ´ŽÇôTbmÉOÙJ|˳´Ú™ ¡W*[ÿÚì±öÿ}ÄVކ*ôÈ[¬XÐuWoœ§ñõ)÷ªÍv“fàls`Éý+zúøÈ, ož¼H&n7J{tvèöH¡Í…¸«Ñ†ë-Ä2FfEmŠiÔNªE šÞ§²¨ æFµGûTKrÝ*ôã(1Ðfâ4êqÃŽÚ³�ôŒcOïÞaÛ¢–4Õúª�¥}h¼�ÿ²«ì_„ÙS*kS¦(ÓwéÚó_Kiõ+[JïT²Hþdy‘S0–1*ØŒÚÚÄ•à„}ÍÃÖøÇI½çŒK–›æF PV‹6¾è’¥7Ðø"ýN�2½Ä›>öH°±fìC0�R¦ P¶,ÿÆ=xˆ¿+Æ É)Ïrdî»T}fç–�ÖUñ‰ÏÉÛøaâ?o[y3E»+ªÊbNH£ó-W½ê«YGsï߃üö­9_é\j<¹´0g >w(!R¢*1ð³%i›úm윴7ª„V Žƒ™úø¡†q šžÂðù Š�u¶ÜbKï_ÿ8ä,ÉÇÏb¡Ü‹güw–š¦5~ÆQ±3ßïx@}.i9b º‘¬ á~ÄZ!=í]tÄt 2XÉé·‰?ï²J «”'¶�ÉÈ|®*  ƒ½{qºS�d��išÔ#@»gX—+?íþpݾÊlņ¦Ï¸ £žŒR¹Ü £.ÛDò Fœ>‚$ÿG˜D„=ËÑcYÚ x•Î]�‹¹·FP¶-1(ÂVÖgí#dòÎ�™|[î]…up¿ùß¡V;¢.áQVt¶¢”„mCÁ¢Ãc+>Äó:§êY•:µ©kÂŽÌçÞýÇyÞà3 ¦;öÞ1BWJƃ@i±jBµüŸe€{'V–ÍgÀA„í¨¤T0r˜ËYUQθüb¨ø53 M¨¾ožvõ“GxTl«bŸÜ*3$«ÈºV§;)0z žu‘½-îôîÁ«B�e‘Á“õRÌFQDŽr¤ÓeõIæ¸UGæXæÁkéðRaÆÅ˜‚ÀënÜÔž´ÛÝóHÈÞ%)¨G%жt¢yÖü.å!ä(¸óRÈšÄ[ƒ”[y£ ݃¥&fþ˜'˜Ä R³*mh�0ºB5%·!2�P @ñœ$¯LAàÈñKÑÔ»tÆLntzë}z×%¦IªÄ¨�w@«,1u;ûPp‹¬.á!zÒÀ�ñž­¤¼D£ÌîF•è<„WëÕï}`ÓˆJŽ3û[r@öó-ÜýåWE»°?v<2..ŠÅCPºAø)ضíÝBÄðÃõû_S]‰Q©@ \Kñ÷hî§[w^(Öo$·žã¤‚< Æ‘YÐ%ÁUÃ_úG>ÿŽí› ZЏ³ê컹W4ô°u|œ�ÛŽK[ÐD$wHôcGT!&IwUs˜ˆ!‡UK¿©Òy)C4ö7|ò� û5ØÍý-C¾A2&ãzŽñ€„Bÿ°"ŠpÎÒ�Dí3F pZêc7u ·ÆÅ)�LËuáI±hlšìFÊb�FB¿�7” ùÒ%Æ|ÈI£%Ÿßµ´’ÜRñ¤(“w–Øšìušð ~&>§eª{C=ãXIi/½%x,Sèù(¶Û\nÕ%Š|ñÅ–��-bÏêò“Ü*��ï2ÅÔ»6�Ü;ý½väÑ-ïtxôã„*(ÓÍnã@Ÿ;„zÜ;ý‘¤4? þN‚µh73C½Û®BÉVáýXwÛûg\Ó‡ä‹+>¬ã€y›Ø�½wöq+_ZÄþ³Ó†–ÛùíKÊx`¤œ,›²©§9í±\ÿ²ÐžöÈß{1ÅjŒß=mþ ûª “1ë¾�·ðÎ?Žá¤Âν~xî*D›®±ðËb {]˜]¸Ÿj-Ñ"àÓÄŠã”p‰ÅËÀ ‚[–?_äyTÇ…x®F_ÊÞE·­¦€íó[Ÿ ã‘Ó\7$<©xÓ³ c¥O¾ëº ºŸÅÊS3¡L¡”Y�Þ}.A`òÚN3”Jï­uÞø›GH' ÚJD‘ª'ëžžŽ°e©*¸§¥ý­á~Î@„>ÎÚÞø‹¬³Ž]xæ^qìþó| ù˳éņƒ”^Å8à×y�»^ã¡uµ9b¨ Ϊj½@þ®´´Â·°É0&t_˜2B`E¡d,�ljí£øB&ZÄE{muè—�~zþª×§!'ôeYë,�l@+Úã�Nž( ‰ÊzãoK"I0BXµœl€ µÓ/Ö0ÒNš—!üõ:,ó¢²íq.ô|j4›Qæ7‡… ”\‰í§V&ð2,è–J§¿ÀWØ¿§ýxMiU± †Ã V¼à Òʱ5°XÓf´Ë´¶(�0d7JPÿ#ý=òæ|ðB!sGm ’@¯ž=AFiëÊ6áÏš¡}hxš?;G±–˜æ\Ëób­@�T&Á6„ö|ÃùÄ6PŽtPÄRŒtÜ=ºƒŠ9­ý½úà;5÷d”„_ q¼!Ô’Œ°yb+_µ”›¥b,ÚÄh2W1ÛNE F™e’¶·yf² ëÝ4JhÞP…Ö`#½qiÚæiJ ½1øt•ŠˆL)TœÀuex^Úª'ëøÈá2¨ï‚§»åx5O$¿&Š0×�Ã÷½p­à% ÿà;ÉÞcu°½�ÞŸ„özj�(jžÄžH]þâæ[2ù›­½vë’Y­éø|§—‰ýrÒ,4d±:v�%È`ÍÞ5·,éÔeK ÐÍÃÿ‹Ÿ¾¿.=Ÿ ŸÐjTð!b4ÎÉ¿Sõeq=XMµñÏù^Ú÷–Hy(EÔœÔBžmIƒÛY1V €õ_¯IG>vûËñçÚèLæp *׌,èõꌿ 4)o'6Ï“RÖY…¶ÉòTv½Æ|ìÇ`޶/©;åÌ0üè†ä’ãDË™ÄÝv;Õ˜Gã”.²ÂàJæ¥ÜAp`úíµ¦<Ò"ƒ£U‹Oº¿�Å8,ÝlBmWñ9ÁE¬íÅ&¿ —Kši~ஈq,`ÊrÿÄ™Yÿ1ôŠì §ŽÞHca¶%ÇVzß¾l‘¼ŠŒ=ÝsÁ„ùãÉ9þžX¬Üfˆµ6úD” HtÄáj:+XL2zcŸ¥Ta@EýdÛo|j4,·�t§öê‚&ï/×v€æ`7lsçu¯ì‹íúB­Žy�— ,‚INÛær=¹¢š-yïrðÁOÑBj’-Uà­­¥cT…U.1Zi¼‰å ¿õßž1€„²"„î“Cæ\‰IZo¿{ó†±hQx*î[5m+uÝ1x«›ÌUc5 ·7gŒ]{#þƒÑäçûÐX°ÐšÊ::{Å -æb·pûlxÌöx’€ó='δCÜUVª«m Ùà‡¸OÍ[Jzc:­¸%„ëÍã¨F«ØK Ô‡¨q®H/ÔtŸé -þàD7è'ƒ ‰ •É7±Ëÿ¡2`²u`T•B‘H›5ÞYUýó%²‰J‚»´ž3Ôú²H´ãæ8®f’}ÞjÀ €üMC2;ðó=�#.Lø™È¶Õn œÆ9O]%•$*ޱA«fâ'Hõ òÍ_ÁŽ0ñ8†öÊc´·�è‹§P䡘àÅÍ‹Pkººk5 ú*óÇ^J�Á©e{Â˨+2O~ëÌm�H 2÷åÄT˜‚uË%D[00‚Í‚yƒ™¹SfŠÖUÛq¬;°'vÿg¹'�2G.(J_¹×�–Yž¢zë~ô. ñ¤ÞR6ŒrÍ‚5ÖÏ)YïpŒ Xc®ã†Ó*ª}JÈ‘õ÷çùV�âÀ*N©ö“zrWŠÇŸe,ß²õñîO;)NîÑux@Üeí!0'ˆÝ“Q ‘|c3ûúÕŠduK‹Ölô×þÀÁ iTýmýÖ~:“yë ²2x*Jµ\nÞ;rÄÞç;ù`Ã8Z2‡ûí3'ïžeÿî9GØÍìïTh6ìowlÚí'S ¡¾Éû”ñ|Œ™+PŽ�ÿecÜöÇc‹±Îmæc঑„Ìžâ9­6ãÚ«¢Ü3ú¢®œú)$òŸLáŽÒ™³¯ŠFùðk.4±¸ð6}`¢hëÕzý§t¸j£ï,W#€ßyYäaû­.¢Ÿ.¬´X-!à&¹Þºþ—)S“=|WÊÓè@éÕ>ØtÎ�4E›ã\ïɧ…s9ru€DsþÄÔ^íïLþ¨¼’ë=Ô'¢�è1…�W Ú·Í)|쇑Ëü0«÷y¥uïª)~•ávA‹âÎŒ  ù�šÒœÊö¾ËkVŸú¿Ü>Ú«×Àõ¤àf •É^?á9ݹÚíx@,QZ¹º”ÊÚ‘„¤ìÔœõò/b±+å·EÇ’íSÊæ 6bžÊ­ãQÐâÕZÐ?jÇ£`ëßX,à;g¶4ýá¢ß�þ˼XÍ8ó"s—Z„ÁP™«RXÂGWË@þ¦p ª" d³äÞÄÚµö>…�Òm«ívö‹,åqMr½Pƒ°Xv˘V Æ@p=Òï¸yÙ:[Í×.¤^µ‰rkñ#ÆøÇ·†ÂÁfdú ®!Ì^´&µ„fUéIátŒä'ýVÀ½z¨u´÷OÆÉ1nÇâÄ0ä×økã6ýÏŽ{•]§˜þÅ+jå_¤š�º¬ÙŽ]õê¤Ó@"ñŠÓßt =øõ('a÷`[‹•–ø<†ŠÁvëJ½,Ö˜Ã5’¡Àn`ûZV¢J—É羫^¹Ö–²¯Ë×|Ac-ÞIDzîé�*µå ؉d¿AŒr¢ãj§€…j€û@Þ .J@¹Å–N·?ƒ4(Øä�»]²-xkÒ‰&¿ è6Ld«IÔkø’\ÒÈaÇ,®®¢ QÕ�x”Éȹ�gvÚAÂËŠ·ÂÑ=B»/\¿¡;‚àèª$à…Û÷'�]J†®`úv4c+xÁêñá‚0ÚˆF 8·C`æÿN”m$#ú±U¨K-6ιnÂ�•a&Xß‚tŽ*¡¢ÔHHmÇÛPñ�ÊhD÷ÔÀÖ «zKÈk�Ñ$f³Þ£YµÅ¯£ötóïŠU0ì•8v÷`N| öçø~Ÿ:ßοŒž“n—�ã‘gä…¶¤¢‹Z‡Û':$³) =,pq—xvüÝ=š`ßxÏd°�i&g¸(kaü„ j¾–×…YQº­16Çï¶—·òšùÿ‰á|¶{T' ~2â(vPpF+Ó—`(i�²U†O;Ý9„o¼¬ Wi¾�y5¬}•“!ɶ2¬¯ý{È9êó�«ÖøbBÎ¥Ù; 7ÿÒÖñ­YÓÂmï䎴úך˜Hê‘�Ø/f}‹À[s‰+çŠâ!žtÅÓêx!62lë6êdƒW‹¦ŸN÷@¤î€Zæõ%¯üj^ÛÍÈÈ�É©¼ò ,C9~]+áW$ U\kÝ‚ôŸ·”� Êü¿WߘWÇ-DÉô8 5ÙS’Puø †n~…vu-I͇ÇYºÔØÑ€\iÏQ·O¥ácIï¨dì‡Ãƒàô“ç’ ÈaçW[•d>•0ˆ¿¬,<ïéÏš7‡JZçÂúVÃy ûÄ0˜‚ÓÕÐ:é¾Öï©'6,s{ôqGø%LN5ò÷q›þòˆt­DÔT •ü¼ÊÜ_4ò%4ɘ°ƒ‹7ï²)ýoÍôÜÛê…q–ÊZ÷ÓE¼ ÏV\—˜m®�\pÖ•4}.¾Z`†€ÙqêÒ¦ÿâÏÚ@ý�…P4+c\>£ÎÅlK»è´êc"Ɔù^�KÙõ‰Dù¤0ª%ÁhÈöhš\ÎÚ ¸éb‚<`ža¾óLó ry„o "�@:Y>xåøÙQTŸóõÒˆ~q�ÄÏdw ¶\Xø©þv‹†C‰�9V%D‹’lgÕr²±Jþy{³C!š�¼0{F{ý™�mUàäÅo;1z1wÃã7%v» ® ÐÄíÖ AÃÚ™n‡v÷Ö#´}—(œåù‚Jq& ±Ô)×NRJÒƒ<6®9}Á‹¾‰MÍ\ÖêÌôj< ŒºV(�ûú%ç•Îà–qDw'¯¬ …ß³FÀ:½|ÿç §0YšíæÄF;Bèf¨&R²‡oêq‹Ïø[*ED7UZê”Ûz�òÀÌZ\Gíƒ�SLÝVb‹øŒA0þRlõò"ÞTX•Á¤W$l!¨'™€Š¯ú¿t K,2…©k§Åô †ï­�ÆÐ)ËH7ßàtiø…«Ñø±O°|ºs×dœ~qѲw€Á]ó %¯Ð¼ý]Múf* )yËË�´’51Ñ•eÿ&åóxp{‘‰þ3(îih:0m;J,wJ7âÿ]º CKRQ_S f0�ñ9�=’·]²¸Aî´y§–%oýx½sê×Ò:”o•‚þŒl¨Ï›ç욋ÄõUOb•ãˆÏäR9ÿžU7œ¸·0¢8œq=E‹Þh«ø_m¿êe¾‰·âµ×ÔPb{¯xrÞ0Â#¼ß´e‚ü­Sr�Z …‹qp¢S³—kƒFX¤Îµ2}ç(‘äZÇBLT¯y®)Õ¸ýžQa ¦"g&(ôÒâ ë­}Έ¾Dý,¿¿O\lØ}„¦+˜Ô³ó–+g‘ˤÎ[!‚q«Úä/•¿û€C»¿íÊa)y‘îžé“ßë«;}�\€ý™êö&.Ü/ËòH6j°[=P)ÄÒ€0/Ïç‡>uúÕÊ+Ÿ]‚»Çá:¸ß”‹¶›·üIž[Ëh~)*†7¨JÂàß§E6‘tçôÓAˆeO¥t½ð}2æBOÌá²–Yuß·_®« µñh¦ @ïðÁ)<ÑÃ_¯ž£æóWÌÜÖ}/±PP‹ïåÊjÈÖßfD»†™ùÜÕÅGym±!©U¶Oý=—ãödäSÅÎØÌ¦°5Xx¬à[¾;#̉Ӵ¬> ´Yv<1³]ƒëCó}<í Ú_ëG_.ðÖby±}éE°T†�©‹,ÈEo‰Ræ˜Jª¢<ó@ئ‘v r°H”F»-«Ð= JÓ=ûH‹Ïy„¥Ó$Çä1Ù0²Æ��ØÂÔfZ¯öñ©kD¨)sÁ6ú çEùzJ\΀1ǽr΃+!‘wÇì< .2y …ÑÆwŠc p¨²ÏÝð@}ŒùÑÁ8rÙ9·ÇËK%œ�s䔕m–C7 Õtê¯eÞŽ+ñlÊGC£@Øì>Ù,tš4VµMV OÜXçϳÿfo W›Î %è<›n¤›•—Åcàé—š5ª,³š=ïoAz;©\ï8._˜�€¶„¨#3’2ÀÞFÊ ëH‰Ï×߉¤ï&ªKoUyÕñ.NÕøµš˜ÀZ}mz!© )ö 'Ý,©baÆ ¼ÊùÒÕR+¼p²T–ÏÛiSÌ€m×�}_-u¥êB�¨É o€òr¤<;ųÏ�¾¦)Néè�x·Dk‡Úþå)åj3S&ÔÛA¹“š¥ùúA,ØÿJ°ÌbŸ¼@ü‰IÒû�ýæê~è…rqêB8‰VZBæ4®>š�íýà‘¥k¯y}Á©ûÉ�[šÀÕ(¿‚pÇŒ ÂÓöøª¢ǽáîœ_HnkBçn=Çc칎í‡Á6 LA/‹drÅž2,ƃ7ðcŸ8#’—L9R@Ý”gÝØvk?^'HÙ•0í’ç=MF²u©Þ½{vö›? T�€‰Éa#„9Gæ—GvÇÄ.Cø¯O¡ù¼žµƒ ⺭64¤Â"ÇV7*—ëžv­f•Û)Û­,ŠjܘJì3¯R VQˆæ*¡Ñ±u÷åžrôóQaÛÕ¾izîÓRÛºÁ/"¦Ôšgÿi`†uu2µš%Ïý‹®\a-#¦�׌ø˜äu’òšùU…ѧïNÚ¹ýË/ÔbÛgr}*ó*L#_ÓË[±—ÁØH«è^ˆ…ÃfhN•ex^åù×s#�ì!¿°’Q‘hX󀯣þd¢¤XòÞ {÷-Âu4'ãß\àÑ´�¡"9éX` öy¶Šgœ×QNae�,¼ÝÁçFêÕâ8…ŽíÉ}™µ•Ñ)be¾f0pU�pÙ#,—«éx=êÊ‘éãp}1»–˜)y€=“õSîImÍé‡Êkòó—UW0¾ø«úôÖõ-Ù”f|ÊôzbõÁ=>�!”Ëæäáê»yqð›¤5&ùN}£Œ+€7cýAåÝmRôñh¶Cð=ˆc2È£QôÊDÆê¶Bz¶ü+D9/«�ÉÞŠ�Œ–«�neÁE»�% �T(’j:B)&èXWí¬+#¦œÀÚs¯–r¯Ú6Ðd…£¹°. e³_��–íTxë™ÇHW4òYB–°ÎÁ7 5$d™vh,˜ÈÈÁ«}l1ì Ž»ð@eAJ¢õržy=CÆåáüZGNÓö�ØÓ<š*·_ιtSé“Ò¦¹·™â/û§~ð ÛÎ;ÌÅlµTÙÊE±:Ž 5¥ÝÀs�XÄÉæÕ¡¾Ž“‡åé¹¥RÁmû!ÿQÑM/L=ŒU¦gÊ×Éa\ŠA…ùá_s»,�leEH�—GäxÎðþƒ»Ñ‘¤3I‹8˜¾Å'h\¢Ú‚P3@�Q94³Èa¹�tÕ[uõƒ³†þÔpö`ªVÊ'©È�´Dºj é¹÷H ¥3­iýžž/’&–i=â‚îRïÓÅ =›6.’­7"Ü¿x—J9,Íæ«ewp»Uk?|I´ÅWr¨Dh)qÛXå�EŸÎÁ‚ISèd¡°ÅúIòŸ¦UÐ1öòÎ_.œ8“sßï]í’ÒêǾOÔ\í� ­›^é' „™MÝlr'AZ©_¨i{�¬�jÜ­ˆ�·¸çaÁ1ZîÄà_Êg3]Ù.ž|mÀ5ÀÜ¿Y²'eðïà�Àf^ð F'h5ëŠ3ÌcÏ„ Ç4…¡ÎϦ-îK‚æÂ|QõÌi; `�E3¥ï;y]yd{·‹Ð÷5+# ]=ž^Ê`(hK{qâqü¡NÄÑŠïTκӽ>0B¡6öוv¶.A¶ÖDT-OÇøø×†ïÇÔ*Z^T ç)à ìÂÕ¸ƒ¡ÉåìÎyÖnÜ�¿e°ÃÑ-r+“5MËÄ�ŠØ-Ç¥AÕMjw9„p.δÓôýV½Y%ÉÏc: iÍb¬MW~31ÅÂëUÀ!:tô©g€RصP|´Àú¾|ûÛÇÐ S1`fÂÈAŽE‘° G¡è-5A[ù½«.›Ð�ñ+¤ø]:ËcÂÏ�ˆÔOqÈÞÜfÓì]�ÇŒ1µäDÙw˜äE iqR…n�ÇAåúTª.)(cÙצ{“µ4Ђ3›�H‚ij ½Ÿoýnë=…E7É+Ò›…"Í�áERzôýÛŽ(¤«k?ng�앪1S<Ìpò5�/L<ž÷”—]¨Y#aNóf_QŠb"MAJ}¸–÷À‰´ò5%‡ý›¾PªŠb†ò8$aÙ©[5¢ZE)äùÊîã’/ŠÅ5é÷Û�žâuÄ#•¼sU“‰°pÄq‰Ž\ •ôíà³;ßø—שDO–—[é{«#ëu&&z á¥y•^øÔ|»Ó»ðÛ*= î¬sExX–‘%mšò‰Åì OKr´žw7)Ä2n­ˆìæFAZ­èC²‹â•ÑðÒ©=Ë*Qƫm+ec,ͱMõµZl.}—] ùkë°15ºîƒ[h‘FH�Þ#²öÞËmˆ>*ÊoøéY™¨ðš>´NŠãÖ‘6š(�>\¯áh®%Ý©ù‹¦Ú†ýÖF{í4”yõ¼ªµeªÛdäðeüÔø(Ò:ʶ•nÍc,L¸[R­;úŽŠ¡u¸èWC-L¹VÍu6¤¬dëï$p~é–¿V\ä–¿5±tV-ÑŽ@«3—‹yÃ%Xӯ홅œÞsª&Kõà"K07¥'n¬&AV~Z©ÿÌ Ùcß®üD ÂÊüµŸÛÕmƒÝèïNtÿUñûÕÆ¸S  ùR3tˆÇTz}³÷-,B®˜¶«Çx‹€£,åÇ)Fbf4ø¬êe'w®ÃL¡‹'FœßÔ› åkq²}¶›;0ýCVäÐÇüNz+•6F&üõŠþ¤çt‹@àf›èM+Ý/l(¸!(jþço�CçOõãšœ†.ç;¿Éâašè9�×S�N «ær–õ^¼}…C¢&øyuU!*x{=)^–aÿå{nüÆ*5¼»)þe.i`SpÍ1‡Y˜oÛêÊ“ÊøléÏP~˜È¦—äËŽìR®òë¿¶˜0ýö–¢Aº·Ãè¯N§s‹<ßêñYBGz£ [W9ž 0ˆÅ(ÂY–!Âa«³ÿåÇ áÐãh›Ž+ÀlÓ?ÏÏÐ=äe9‘ÂÕѧ”­…Ý�©6í«ÐÖ÷­¿lÍᜠ‹Ö€Æ/ù§æð8ø¬¨Â <°\‰Ò¶!`¡Ä²¼4j2�ü �“åGÆî\$–<Ærþ(¤ô^yÕê”è´¿ŽJ0®Ô`…¶¶g{« ŸQ™ú÷4O à<ûé�: ÔüiåsØÒÓU §à›±'» :p [VÆ®-·õÇ~MÈÌl÷iµ¥—Û¥ñ$ °¾„õÁ­ðÊP@þ_‘ƸÇQ•ÍBú]€yç¬d¬&"tæ'Š€À±•&£ž«’Q3Þp‹¼m·Ô·N¯R†°`­£Â÷ 1BCpCwÊ"µàýÌ•ëäZ£ÄѶdÎÔ€[úš¸\‡÷Û™ ì›#e›Ò”9z”ïˆÈÒÖɇ€�ÍW©Þ2ÚnØÉ1 ½ã¯l„%ÇüÖ—¼È}oóéûBEàž±«ä'A¦ÔÉbg<¦þ×+Ê?n‘ŽlúkqHâpfèf¸ìm˜¿Ñ§X¦¿ŽÂw’þ|™ÌÎÑZ²¢çÌ+´zÞ/ήŒjÄnÄ�Ô³ÁÊ¢ɬ`‚[¿Æ /¢Y+לåîó7r8~fÚ¹îŠEg&ŽüVÝ ïø/»tøÃTêA“Äü&rDA‘°R–NMÌG‡8ª,Ü{É™*Æ�ê_rû€¾.Ržˆ¼[0»*€íü£Kƒç¤MQ!Å„ðú®ïÍXíú?ÕäÏÔxT–ê;á»5ùº;¹{¢j¿jÿ7A ý9Å,—jËã—;ä Fs±.¥7¤*ý­®Ýq^ H_p§ˆ/éï¿îSTSm7Í‘7wΈñÕÐ Ûð±½ó YîYdUrÝ”¼Ö]ÖFÊBÚˆr€†aÂ9TI%ʼnÐNÈc‚±/‡ê(Ö¡ kß·G¤(J¯ƒ˜FÕD•K4’«#þV Êæ#âÕÆ]dН«/’¤ByãuЃ;xaÛ¥^¸×SÓÌ‚eˆj(!|s‚A3š¶×¥Zc‘@‘ù$æp&‰etv[†ÿØ€/Vž×|L"ÚÚ*”%¤˜#oXG¯“³¶é±…? K؄ֽ�1H²mˆÔÿj¨æ1A \ß,bù¡àåZ®YìªÒYŠÔŲñÓvžbì~&ÐY;³´k—PÞªl�cÉZ!ì¶nƒÓ¡Ô¨ÖÞ%›~ÉNÕQ|gÏ—ºmä…ƒü­ &ÊÝ çŠåF¯|ÕH µ}Í¢¨‡­Ñ7B¾¢YòLá�$Ó �rd-P{yµû…WŒ ?)‘&÷k»ÄÉEÅÆ]ĘrNV|æÖæ  bž{¸{„æwÐMÛ1E‹–ßRÄF¦DÄ8LúöÖlåP]/€gØÂ¹ÀâLÉ8´jð—«°R¨)­Œ»µ>ýWi¹±'¢eÎ-ŠÔSˆw½O¹ÄõìGªFU­Ð Ä¸+´€R¹!ZÙ 5ð¶¼#Ì^Õ¡HÒ´û|XÖ¬_ ¨O$oôBA†4KÄb·¡[kQŠúähŒ ­É¯1Êæ]yÁé²ñ¦¡ÜqKÄ\uÀq³É =-S»×Q‡» ÿ‰Ýo“¯Kñ%tð �®"uf(Ú˶ª�"�ÎqÀi9U¸‚ÆçLLµ—a݉LœyÄgQé‹H0pg "—mxEU˜”ÊKŠêÚ›tÉ•$ü)Í#:–7mùTq8*ÇŒ3˜Æ2.ˆ¥b&È.�Ô]}[·OÚA°íIÚmc!¡-2R†KÅ�f¨A�Lûëö×ñ›'­½VXÓC^û�íê¾TîNq©/áqKJŸW|QkÏ�[©c;%²ÐÝ›�Íx�ÜÍ4bÐ7�Ya—ãàp[Cf¬O^íé‡�§ºM ³fr=×J-Y§x û£CèCm{:Ä�ô7;JtjÐrQxÕã+²ÓZNrœò€‡òÙ:Qäxg†Ü©äI¨ç(Ib»{„ÿQ¨„hœ³.wMv’¡‡>K{Û9ÇüpK¼!þ¾µtYê§Cp`˜éÁ2Î…íª’µâ˜ [•ÀÜÞ³£× á`Ê~… TiÇ£&”Ð+µ_í£KîA¨< àøGL‹Y°B®½ƒÒ2›;ìn-»3rÉ+ž°›”¤§³B�LýÖp쀳qòœÊüÉT©&�¸6î—¾<Ã-B¼¬ÞÓÎZÆ�ö7(ɬò‰ ™òʈ2o5à4êÀ4`ÇŽ2®æzÍ/-]ÐRÄÉ�•¢³¼0Äõýs�½{O5{ÃS*˜â( „ů»ðy´½ÞµºäP¦ãd–3¥òìߟÂåGнB#ÄÅç}å5#Eâ&õFaÎô�¢ÛéÿR.×îI �+3Í€ Ä­n�[ 0Jw”ïRþêWy�ä6bøüß Â1ã<>A5µ…°î¿–ß^Å¢ æ+”%Ê�8 ¼†CŒIvÎ'"�ÉÒˬ¿­œÉÉUº/Â௖ãƒY/ùìV¨9°ù‘b¡•ü8ó�`Áž†¦^`ü¥­j+5·¶ú"eͧP)˜nö@cA³ó‘–û~S~]‡&°% çãÚgæ é(cp÷ž«ôîòý¯‘}Àÿà4ܯŽ|¨2ž‹U—]e”´Q `| :µ|¸øó'ÙAçO¢+Pr£ ÈÂGv?ê¢ÚhE>¬°€e@sÁcŽMÉŽPòXX "SðwõcÀ·gOÜÙpjÍ©€Ù°Úƒ¶/sƒÐï{ñ…˸‚}¶’Çäá½ÖžÕ�‘x¯ÊïÝÁ§[à ¤¨ð˜Ån/& ^¤x†æ]3¿�Ò´o±Ì>O´®ŸÚ¡à˜DÔ ˆ+&TiåRFˆÄ{÷Kçã1‡pÈtýæYEœS{=¿\þ;øÝ‹©ðó×i¾¸Ó7èÆ×zø?—¡ê¡… –ƒ8^ñ4Y(Ùο³5�©@ó-ˆ]Ë›(˜øÔ“ÀÍe{«kŸ)"•‰Æ-ÿìœÏld<.3ÓsJÐÙE?ùÂñÆy#Wîãæ¨äú NÿëU8,Q0Usi턜4+�AÝËØôØ@�¾ÖPf®ð×ÔµÑi5„ºG”.|÷k‘³…E/îû×zªªxÈ–¡†©�8Ák ×ć0eŠÜŸù‡J1L3Àf%ü;ÇÂñ®&¡Ð2§v+hjÜÍÜXôEåm;—Ñ­˜2ºÆãŒ+h?¨¬mIýnõ�<ŠdËÍbTyšuÔ Z:–¯j´ƒ/H°‚› ³aG</{g­–/”Êøhãá¤jY:T¥à6Žó‚è<A™cÙ­µæàg\Thž�ßiµŠï_%tí$òÍ|Ë2Q– %Ù AhÌÈ·üÏFUYD÷,c�' s3ÜÛ8�äo¯ˆNøP¢ñ›%(?ZlßB¿pì¨0 ÖàZ=`L$ŠßáãŒ�¤Ö»’òYxš‚&õU§Ð^e´ÑïW¯—�ï¤Øê É˯jDì Õ&ö†öN”‡Ä¼ž)àÁ„ip ¶hgà”¸ê¢{E?.§yY߀cÖ¥œNÇÏó„°9GK #wrª\÷ß© HPŸæ?À°á�ÆÂÄšCƒ³¬¸Dð>…ÎXËÓ¨«©;Í`lKXrÉt°Àÿš»‰ÎT8H ‡�2ðXnjôkÝʨ9sCĶc@$¿C}O#h.‰^TU4Lç4E-IÓÓ92ƒÉ°œ¸ìêÐr:4þÄ`™Ðtäý¢ÒrÔ©´Ü‚‚{•3�Ä Z'Ïœöè˜àÜ>åeœãýëezvl®û� Žy‰×Òÿ5©ïD…[èÏöUXñ$Ö¶Àk©!#À—ˆnËró 1 ¢ëÉ5Õ�°]$š½y8ï‡GÝÐúªÚã¬$‚+J@o|65š�Ù'"ÀÌÐJ¬)ÇŽÌtܱ®ÑÈ:Û.x Ö=¿4éœCÇq郣« ã#ü®/«ö„–ÓìD…3 »æ�òÙÞ0'-°‰g÷™ÚZCo>hõËâiº6Èä)ÅjÙ-¹b†^æÚ`â‚3hyÅ€òli xÌ\K‚ ¸S™‚¹ ]ëó¹e™sßôuy+É-³Âv�qã&¬ �¡ yÀ­+ßðÇÈ`µ27&ze\×»W–vö‹h4õœv8êa‡²G__CHiõ`vêZçÎN®]ÓŽã¬O#xðTÁoekÒ(ýdЪØõŒ�ÞFý¶�T´ØR¥ÄÓŒxÈnðeh扼¼=ã4Ñw‚¸ôWj�J|„» Ù‘Br¨P2ÏIÊÚõìæFN.Âi2'*¤áqP<à¸:Ÿ,ò¯&ú×f²— @]ø›K™ÂÝcP­T»Rã'Ž[䳓°=�\«„+:& �Ì/A^‚1Yð•tÕhrpÊOÁ¨ï*ºÊ´3~ì:\k^Z¢ªµ§{½ À9¶~mx�ù×Lž[»Œrò¾ñ¬¶ÍH¨hàê~B“] x$g’ b>ü‰€þ*Õâ-”˜«½'\-Ⱦ\Iæ9‰Ìbÿê5�Ñ÷8s¨êªV �ʼnq´Š@gN>†B¡œ$†D~¯9 zC rx³„^íÝ_zRC8öú䙬v̨˜mYÿ qœáM¿JÁ¥�Pšµb±äS+5Z{úlk²A|þè™7[á»Kr ¦$™|è‹òéðhøËùOÜ£›Ñeú»R±XwJXs¼`\FF×ü�¬ºÜ¼B(‹yàׄqGi` åz'=§UÝá ac1S„DÉÓËž†]ø†…Õ](›Œä�ÎíܼKwÅFªšô´¦I(¡·ÓÌ«ñì8«íö—ù¸É ,¬Tv¢v´ˆR ?árý"NúG²œv3K„ÛðnK;J\l(hO�˜€Na:‘‰„Ú)8>^Ï m7Éð”o¿Ç&jSOæV—ƒ¹T#¦Ö”çÔ�B`sú7&�=ÃÆ@Jñ)kάyå"ý@=–¥¢„¶w§ppÊï„&ÝZ/M:Ï)ÕFf�ûˆ|²ª¦‘é9¦’œÖjó{lQØ7DêbìLkãumju1b"¹ÿþ g=Ó%·Ûa”.ô<šÝ<˜ r�Ø .?±ÉO g""#¨fÓûÀ“œÜ=ƒg.°"§eÚ áÝÞ—s*/Ç–57/.]vPçé:bÔts�Â#Rµ$îöU¾ž* Ð>žàÚ¡»åi��¥„ : »ð…]«䲜ž¿´·S³wIš@n,2½Ê_ç™uÇ SK¢eéø”¸ ¤·±ª4rY—ÁrgfmNÑñ8 “¾Ub:xD¥”·²|­�²D.mÎä5¥NïhnR‡gðT$�ÝüÖtÜÒš à(±:ꜜcVôìñ š?…¿¿«u# ‚{reX–Ç"@ŽzøÈRMî3Íè‰<��3T›ÊCú±í͘Æ/£ûCržì¢]|ÐŒIXP&ê8DΟ3=J¼Ðb0°Ã椄¿O!"àÚ¥€$LJ‹�;qí}»Mê9<ÁÄe5ðw(« Ü®H{R,ZŸõ‡áN)ú?,j4ïnù½…êJÐSŒ›zañvYç„5€;r|ºiÈò¦ïy²¼R[ç‚^øÀ`§#éo¡•y‘U:�¡¥Ö zþ¾ìvë /ù,«ñÆ¡Ö/ˆ¥Ôž$Ÿ‰’…õµm•œÊÐÆË†a0€Î”ç…óÇg Jí™ ,„Õ—ìÀ)[G¬%Ìe×Á¢I7ÇÇò64€î·•wœsÛ‰‘©Pwôl±�Å‚_-J©¯ó í] Ñ'q†I�¹§ÞD60JóCÌÎi¾SSf>(�Ãd¨QžG¹Ü–yÍxlj8CÌ��Að,8@­‡õè4q2cx?{¹·Z_ ë ;ú=ˆ9Ê’2è‹I”£™È$qð’»®ËÚŠH1æ �C_q¤ƒ&Uºu‰JÞêš!°Ât šE!z4§² šcGêvÖÕ T{þÇTbÈgfØ™ÊÒ﹎<¯ë ^3kSû°Þ’#+ÑùjÊÿ¾©¼p )›�2�kPÿy .ßkÚæ6³²i ³¥—ê£ï„`?g)~¿Å€£,ړ猯I£ó�u¹”>s5ŽÊ=æ*Ç\´»íàÚ­.� 4#²ÉN"¦G<ÈOGœéE _‘“ÿa‰[ªÞbª\ôîýÝ’øÕ¯âàzVÑ$¢ö´××Ól)Æ[Çx'Œ,µ­�Mb^éz+<Åzó‘oøÂûQ-C¹üƒ5Þ™È,ðî Ö„"Óö'q…2£ïzV „å8+ *Õ£aÚ0S¯a¯;ðJ?¤ŒÉÁw7„%x ÆW!èœ> Ün0zÊ¡£y“À˜‚@Û E¾Dg~¸~fY‡bñ"�ŒNýyP56AoD.äéY`ø)@,S»EãD’£)Ò`—S*v·1tcÑö¿äm‘2Œ}ߣÇKXõŸŸv¸�,Y÷]vUWHyXå­ñ ÛyR�FÈÞ›âÓTG×¶f,ç`›²ÜmT�“æÙâ[Â÷÷íj Ær¬»v�e.ÒóÔóߎÎMŒ$÷~ÚŽð�r`cL)çk®8C¬5kJ|¥Egþ¨b9¨‰ÜmL‚ïÁp‡ˆñ\sñ’Æœ#À Î%³†B\,tfAZ½Öɼ9!�‹QñÌG:õE†1F‰µ\i DLÚÚ˜ &b“<õ£Úm˘¾Î±¿¾–VýÚïx(�U­,q|Рƒè�B‚É”Êi\b¾TVô‰x=ð ,.+0úÎÍ߀Snx[‰§—ÄS© °.S8À>U±ŽÆ`Èç[Î'COäΔÕ$ý@b´�ug•_2ø(ŒTÐA=@UxÒÍÛy#ç/ éÐ2Ç&|H:v:³zOó‚/úŽ}ÐãËï> ¹³±ôŸœ³•çù~Cxÿ ,�Ðt†=§&:»¬ÔèºÑÉL¹—¤.úaŒ”4ÂÓ§—<r >¢6¹,}Q·Ó••oN‘º\ÚÙF@vV‹ÈètihØÝò¾~ôµ¥R ê óÆ7�ŠŒ�åMýF”ïÑLÐ:㉮QNÿs§¤Ú±o�¼¦!›þfÙC‰,о bk\ÀkHŽl»Õ&–wfŒIÊdÇC{S¼b0äMà6j÷†”rão²¤Š� Æ´Ûþh·°¤Ií6‚Dz�®þW“Â*3 ÑÎ]dà ¯Xç‰äªë0ŠûßmiÕwˆ*ZÄ1¦5üb1’¶1½æÝÔð _ˆ“»Ô Ç�LD"oq´‡EY*Qˆ¢¿½Óà`'×\rAVÉd3k^Ì €Z>�Kì�?÷êqýJ«¾0–ˆ³ù™Ûzàßã$+ ÍŽê*Õû«°ËaÏ˪ªdÑ…äâ.dê�-ÂHÚ $jc 8§�JŒk4 '{`ƒn‘c'm¿Úo´�ÿ­(2°@©I½gš+éof%dÈ® ¢779Щþ¼°£XykÖ¦êIe‹æ[±ÞnгE¶õ6[mn9_�k@ —ËK»O?ýþ+ÜÙjôÆÈ£ ºãxÀË^¯5ÿ¡r¿÷%Wˆ¯Âr8a(¶y™†õ— rá3b±cÁdsÉœl‚Øsj’¿éƒ«*ç/£jšì"Ã_“j7CbìÕù+AˆhÇçПêŒ&!—¿3> Yl§ØÖœá5ÚðO¶.YmkJ1–—Ü ]¬ë¾'ïÐ&Õ0¡{Aý;y$K¹&6ˆÑ9Ñ0¢r¦Åº$t·ãç›ËAÙà’ø;µÈÉ{?è@žášxˆehy5KGÃT¶/êj‘ŠÅZ#mZ�µ�•¸àìIËQ[5y‘32_.Ú:sâ)±‰’Ÿ¦®ã/æÍ`³i¯ddˈig’|òáçûÂA™«Å~ú-•KšåÒS²‹]ÕJàòGIÊ'b/�Žwšß0U„cñXÓ¹ø¬:#›!s» ø‡&ùSÌã�]"õ§aªÈZ &–°©šËkC´A[F[Ð –Ïy‰ç¾ùPÿb3×?’»ÃkûuÚI“ôNñ|\ÈÉùGÇrÀ&â»Ø‰y_¼�— ß•÷–ÐÏ¡q�£~+J.4ð¬Õ›è4zB£Bù¸´S‹üvK(½GH#Z^tÚò[î‡$× =2öíÑ™ä#ñrg#|i¦8G¿‰;W§�Ü1ЀOÙýààÔ­&4âËwÇ�†*>ò�‹_Xñ Œ*•®fÁ@åèŒH�—°ì?¨ÖL9œ´€½Âž³C2‰%²:Œ¦!lóO™×ÃF:ÁZÒGÝcøs¤�Œ™!¡§¡Ë@ ;7Dÿ~}¾îjô]n‹‡¾C«"�ü›­öA‰ 3º–”†úýV{íi@÷vc�@_“ú·©Ÿt½n�[�áÜ]u,äT‚íƒ-^L2Æb•VàFÚ±4?à§ìœÛ4ÐÝö4b,û¡KäêûÅŽ^æ ™ìeãs¬¹ª@˜ýø5ä„»¿Cè+ü®$ÿ`áû†£R„ #?�>+*pÛ¯™» p©Ü¹Ö%Y±v¸ŸK½þm–c&}&¢¡È¡¸KÕÀ (H1@p‘ C}96gW ¢Íø ±°TZi^w|cF›ç¿»º€)õ¯æÍÌçÜ#_7]U±v$4„ÃѼ™¥m¤­ÙÙ®'z~ºŒkGIÛ–iO¦ R¥½ ’ÙûþôT�ÅIÿxvü >è=‡û°+Ùl\˜x4”DÖ?Ò¡ U\�Ø(IîÙ\¨ou~ÍV 7‚ªa}.�k€~N�t2ý”Ú– ŽvûN­ÀH:!�Û-À_ƹñêJ1§SÛÑË-ÛО§Ï éÛƒ9emϺӰËãe¹w8CÂ‘ß üà©O6 *„t<Ÿ—‰hK‚PoKÄ@N8©¼ï–p]ie�Cšxÿ¥ FÖk$Frê¿ßÒïÉ|1axßM“ð=ï¹.ßH]y‰‚‚Ã<Ê2̶&ÅÞ“3�Š“×váŽ×1JÜ€�BÖ,ïËôz¨,¦yw#±ÒùiØ ÝCvC4~ßÎÓç=T‘¹ƒ ©;êuøF¡¾äµsU!w‹�oÝøŒ�nEµ¥È@A]çã¬К–_E/Ó¢fÎÙmË` 2…cíÀÂåS¸b¯0Ò³:a xbD0°ŠòÁï`R�J¡¯J~pÏüÚñðÒ+Öøy!²,ø>­wÍ$+¯å"öït:YMwxÇlq‹#ÔÑÌæ>‹-~(6¶ïÁCL~›ÃóÀ»ßçP¾tO º�Tì»jhÀ�xºñ |‹j§ø.¬ˆÕŽ¡�MÖÏí~µßXX¬Ö«v8ב ¬ÎïÕëhO¹§é{�mÇß3à6[6—ÜÿekYäóˆ­ÛD‹éM½«i½Q\F“%е¬ ¾ug¸Õý‰ÔýhR�9û¯ÅcJfç´ŒÐ`ýoÇXá‚nÍvÛ¶mÛ¶mÛ¶mÛ¶mÛ¶ßmÛÞ÷ët÷ýqî=9+©dý¨‘‘Y•9óÔø©ûX. ©pÕÝ¿"›ÁäãNjmõ(Åè?öîÐH³KÑÑÛn‡XôéƒXÄ·^Y¸i±³ @î¬ÿd>I‚!•êÜZn}›Ø’@¯êpBmÝ‹·¼(k|vEõØÍàç&µ�9¦`Ç4©’ÂáÑa!Õ¶^£rùÅÚLUG„š „ÅLc*¾¢Þ¢ÏÕ”ôí êØ«nÈm+sæß¤áàQÀÞBDRqXl—¨y‹gîã‡Ó~&a3_í¤²'¨€¬( r BÿÕòx]ÅozØ?‚‘CCo±g�G¼À=û©N‘c½÷Ÿ¦0Â{·kÆoØ!n¯óUÌ,¼PÈgäNvkÌ Àºþ­Ò7åŒíÔ¨Y^Õ`h8Ž”Yp”6/R�LJ@ÝŠ§ž©FYhÍËO/€(+«Çoç `0ª¿üKõϳ�Y�_`*4QD Žà||_XsbêSSZ_a¹PMõÏ šy+Ó=mÕ¯G.5óVíÙ 7FËs»P¹:~+ըɝ¬9mÏ"eŸ ­†z™úß@�ºPÉÛ/rÊpý§«c¤Wu/£Ñ×c{ ÒâáÆïþ¨ ÉÐá½÷Ÿgˆ±ºN‘졨&'rªKÂèšÏÒ0¦¹P#T¶ë ]}ñᨵnŠ¿Ësûîlr,žf¢ÝŸš%ͧIçéÍÛàûà«åfnûŸ§bŽ„Ýº:€£…•cB†yx ɑúõøÖG:‹ƒpªA9C¼Õ'ÁPkä.õçk÷ú)Äî'0…Nò9ö)Z ~Q³Èú’Uó³×ÁéXê)„Y7�ý¤jeŒšÖÏ1ÈŸÿ†×xMKÔÐ�ÿüðÒ²õˆmKUÜ.Ø+ÂL½£`,üAÞÛ ·7ì,bíºNÌdíSéÜöoÄ”y™lbÌõT»f¡z±%�«�åE_tÌZh¿óZŸ�rÙ±7‡JßÉ�ÅÓ4‘͵Îó¨gÞ^¹Øå÷„Θtê´èÓgc¾¦OªñVÞ~‰+©/âÌó†'§†�Gâviäêú�õº¿l&Zeè≽wï:ów´§{Ê'—3»<¸[›O^Î/1ÈOO„â��Káèxig%tnçc¡�ꘒ:Ÿ£$«ñˆ¿°ûÃKr BÄuC†àóCµv_Ðp;ÓÛÖd¤²Ä…´_16®=¡eiaAfmÆ:-êØþ �ʬֲf½Ÿõêl“OíBm¢üöÓôNw8lø.ƈbP¡ær,=+…ÙÓ^A åùùåx…ST%‹+c„~½ˆmê¡Üïqû¿æÏí˜_¸#5� 0B¸Çš«^tŒtnð¥Õ¹­¤_®TH®€_?ªäÛoÝà¿òñÓoç6V6I|9†ä …=ód�7„­Êà ÈX\ª–»ÛE€À…1ógçŽhµb…îUûÌ#gU\™h+›« ´Õ{¤ï“ݮե§FÎÖ{©®WÅî>¾?YW+ºÎ¾>(z1O»ôëe–>oWfIbòD+X­ë;êïÄW(ÕSãkn·ð½$Ït9_î®EŒÍføªo/tŽÎ¯‘¾A�îþÙN²€.Žñq‹?Û*f¨ݰQÓ�oƒà7à•éN'3bBT�îe÷7 WVZ˘TÒ+@”44ï{_0¿yáál;öˆLcQÙæmËFeá°.w¬6ª™XŽùfŒ¡ðÐM¶G…¿0!Gæî«º^œûnЪw3ó-)€�Y·,2�À×L‹�!V™ÈðÿS’^”2n³/Àj£»-ââ%Ï­›P^=ª�æ®éH.A?›Ø½Áàe仓tW—œAýgL@ô>ùö]ª‰䈆è|ÃÙ~â+«ÑªSjæû™ ™Ï¤]ƒ´«È¼˜ò+üÛÍ¥‘»��Õ»À¨Ï?‹AØ„P©±·‹0 mFt-ÊXŒ�T¬WâPLÐ6"GÌÑboå™M'XÍ>í² Øž…*34kÌ-ûଠ_ŸˆÜ×ê­ï‚Ø®¡{.|Àz¸2Îî|ñ¥˜®/Â’å+ ¼­Ì/ZH—É)ïB]—�GlEÏÉrŒ¿�ߣ˜q§«tª–��†Z‹Óf×HէwZ…ã–1 @_Xó‚èöàö<À Cx=®%Œž¾tzSŠÛ+!‚\n�·%ê&Cƒ¹îýÈdM§y6uRúïHoœŒêûWòœc[ë[ Ê-,7^­­ˆ›8ììêQdy²ZH”ËÚpÒ@ï°©åæó„F†Õ ?{|å¹y°<¼ÍÒ‘†ƒÃS†™³{Ÿàoƒ9Rýkçø 4E þ¢WÁ¦b*ÓÍ} vçÅÃ{îŸÑ;ãÏ2ìó`înSÖ¶sÆBadÔ-\ ¤�“Uí�¸4 ߦ‘\L46ÒÊæÎýÖÂÖ©…ðÁ=|�ê*ÉÒ<ܬ«Ò—¸þ�=m Ø.EËHUá±Ôü“‹Yœ+*œž|‰D>Y$:]°Ù �ùˆKü3¯›NêÙ{Q¢ÿ`oZ® ~ó™�Ÿ-¦ÒAZ˜—q™×P“¿Ä ûuxÁÇèòwæ¶0+Æ)ÚK>K÷í/Rñƒå¾0†Ù·�W¥©`¼›pîï°'0~y¤]§û“�ý5üQ�ÇÆ‹W†È’G¯cîôˆ×ƒÊ¯ ¨Í¿ù”¿qÏfËj Pû6Ù—B–€�›ßÖk±Iü6¶ôiËïЗ<`Ûi®J%¬U> ïø"y0©&â4e~œ«è‡íêôÈG@ÐRB".3ýŒÊíý:0¢­õ£j7m€†Pr&Àëæ É3ŸÏª¯ƒ¤½L ftž‘|~*ŒÔ‚çÀr8¬i#)‡©ç¬{«ä#žÀ΢ž,cØZ‡Ga¸Ö ç¦<ðrú°’…ê]š›ÔròMÿ3±j¶-Ÿª/`ä´ó uå÷$‘¦;=.2jdìP ‹ˆ@´ …å>‹˜ „ð6fí^Ê¿ÈÓ—+ì­ôN6(GžÐ –k¯2é˜S<Á€“„ôÓ“HÜTßbÈéߚɺ  ¨‰1­P[¯#?rJ6¶&aV*Š”>:# õÆ9 e˦à½Àošéå ô*ä—A‹ì‘g¬úðÚzÚo*ÕS «Yf¡žXžáÍ éü€^²²é’”eè´¹~¼;\7ýKu@ÇåB÷iAôÍŠK¹G4P±Oº¹!˜2tù´�)­užu€ã4¬áóoÄb—s]‰(�õðþ1*±}'(Ü#³€‚´Ù«Ùnnìd&Hs‡Ê§XéÅ Þ»ýЂfƒ¿FÚg ˜ÒÇ_³+ö›¤É�8oÛKÛþQ–­“d‡rÅLRœ5¯U†‰Ø*O<Ûy\5û°ܲFøld`ZZ¯=+bóõäƒT*ÉÓ:“0@O_Ÿ‚=¡8úƒ‚9Sl§Hz´¶Ç~¨û+´|î›ØPGêD›k«…•˜deqCAe@Èý—l|£�ᤌ½êƒÎÌ-ûðÌ °·MKû1>áº%É\@¥ñòrã¿(G±~æÌUS~‰ë†óƒ¹úûIÉ–KÄÝš·O§r8[YA4WZ_Íh¦,Æ s4Ž‘D×ÃŽBuµ…bÏí1APŸ�œwîsL±zsC?gGSû"•Èx]d-ùÒÊ‚1�Yl2Öºb2ç±ad2Õkô9á÷¿¤IC–0šÑQ…gKT3ߓߠ8›£”} _0mŽÔú ï©>/�i¿³Ö õìÊL„ÕÖ9{RЕÈ´p}Ló¾8~n.˜Ùá22øÿÑfÝòÆ „yµ[~³ªo T9ðäª!+٪͔ëd¨õwª­ë>NΪZA©€&¤7…;œÑõ$ø¸�7Ê2c9�Í´”í\ȯW"C†Ç} %˜¶Ü!^°P‰ŸÓ,àÅøIÏ xN¬£(4š1¿È3Ïípo²HûóÜy#Ì®ó@k~ù-pµøe3ж?ÅsåÉýcsWÍÜe$ÑTÜ;©‘Þc¤+‡Få`XíDOÖ´DMÚ1H kz‡�ƒRbâ"JG/Ã6AÛT±þ'Üz€ã=ð€×䃃ç–>ªÂà_ø,ÿmn��u·òöÚS…Ç6ö1%¢T˜UWhWÞCƑͳÚßäO£ÏðiɈ>pnóÝuñÐe?µJ[}ð¼ßóù^{/èú…dwòO?Ãw«Ì_ïVØ;;sƒIg) ä/ ¾ j0>‚Ú±žŸÁ½-L;ßhA@iîÚ¾Ì*`]€1ÊéD”"åÇ1¡b¬”·z†‹»B¨õÝÍìZâ7Â{(Õ>9•]…ãäKy ã0¹¾ø›�¤+ÐÆÁ/…±¤!ZAþ փш†Ñ& B¼n’n{p äË!†0¾·½úŒf¤ß\nO˜ûë‘°QâSJŒŸfI’ äY°-{=ôUUG!óþ´òÍuQE-©�Y¤u ÞøªöšõÃìY,f ¿y A|°²?‰!ë8" Œ9ŒE/g-&o‹;JÔ&œg|ýùÀ7„9ÐÒ"R`i]×K¾[ÈÉï²ã–âcç~r9¬,1ÒúÏ 溦ߡý ŠÑ¡­5ó׸~4òÃcmè{NàÃâÜ!¸¢ÙD!(ê›/Dã . Âñí$£¬ÇZ�ä#MKëÓ‘Ä#úÎ/'‚´ÞC.JI=»Ž+?8¨ÒÔûOdªÇÄF¬*YgŽÓg‘ϤȯåFòm-b Èj×=ãþömñÒ¢=¾�ApE+®¨5QT ŸKeIT'í¶×0mœk “�°ü—:u”ïè‹¡Ùdƒüs6ƒ� ÐÉ#¸ Ù�é}}ÓÙ€µà,ŽRy„?™l6£^¸C°u"ùô4ºsr€ŠaîŸå�k< nà�Ë.6ÏG:¶dÐݱaL« x S>Þ,% ‘Õ:Ô“Í+ÅùŽóEcDâ�Ory€çZĨdÞT;2לbé{íÓÃì»2.óOöÜ"a'4=x•Ä?5„º{ K~ÄÞT*°»†˜Rècø?|®,s©B M­H߆gמì \R/q"Ò?œU¤êË÷eÞfå‘(6ÇÏø±qó�EÐ8û°Íí¿xÞCM²÷‘wÑœRÏK¥0)X�,í#7ªr¾­ý [̸ÄËt+ `ô³E%©|Bmð÷CZtxMЙ� êŒ�õz‡EŒ}ß+˜�Á÷·®ôn*@§ÈJwÛþ,H Yw/"±¦ ¦ƒP´¼gÿFÜc÷“}.d==¢#}Pˆß²e[¬+,%ëþh ¥9}ð NÖk|‡O-ìijx�È3H=h¤ð$¤´tÐn’²'a¾x“Æ>k ªÏÐ4öãCc’5¹\œ<¨ ­aó]:5rç»÷:ã*2^ê^TØ™ cGÎÀ%¿ŠDZtrÇâÜä¬eæÔŸn0ÆyGœÝ†jU¡µï‚ñ*|àÉ~Fœîf8r÷p¶q:^.ÑR)z è5’ÁÄíÌâxh<UýucÁ/IÇdûzˆéÀr§rdŸ°6�[Ÿªùbx½ÇW¨EŒ�êþìW¶sÚYkû‚›ÔºlPaöÅ„ ®—ã©®9p e?˜aNú!ÆÆWdð�6S¬æúýNW�Á&–û}A…Q7–ïÎY´+¹Rø�frê£Ãv- ¬l¾•pŸà0}6}šíid¯éÔ�Ë ÓzZÌ$ëØ;U4r�ŒÆ9| ó0~Äq•gØn?=\H”ÈÅÑh ¸Ù»�BáÆS0ÂVËÇï¡á¦6åa *¶R¦2ó…ÀÄõ;Ÿ°iY ÿݧ˹‡ïY)µÅN³û‰ ó•;^2Y .;CÛT!¤–›¤çlÍÕ}ìÂŽ+û>ò¹†ösJìÉá“¡2A×NKÑj²:ð¬˜Ïä†"ÿ%%ë¨ÉÝ:þ›£/Ëkš1_gî‹ýõ ô儸áÅ—Í õ ÀCc•9*"8&0‰±ƒ‚;n8ŒÙWÛ+b¢kkÈ‹Az‡ÏŠ-¶§€x¸òx8!T”paé8p®’nN¦=¬Š�¶ ½×à>œi1� „®©G¡³j唓J#ÑÙÍ38¾ó©¸ Òˆ¿QNzŽq�cÃb¼›+rb ôùsHØôƒÑ�’ð3vÚw˜Síllû ¹ðGº”M@bËÕ£ùn²ŽiÞ "3v(Õ'.bÿ‰@©äõëY «Ö Ù¼u]ÌŽ÷dlª�qcA Kíw¼Ú-¼Otm ¬¬Ñ\òi‰VÖìgþ¥ßzû=¾iìˆ=]èKŠô>ò{æô¦ÖMïˆê¨Q*ª ߦ§' EŸr&¥¯¶€¢·1R^ýÈï²æº§fèò¾0€.rfüÜü~D)5B±d ¦>^ŽU cö Œ ósöpÂi�ò·?$�¹D­¯G�Ôζ ó`Š˜u ò�9ƒÑ ª#ª^LŠœƒÊ.·¹Á¦ w¥êÐ=+,°ÙQ�“ä?6ãÏš �îîÈÜ7S5Š$o6íöƒ¢›v<qZòp˜¶G¦ ¡ÝÄ 9Í£óWCöâ’=E� ™Kˆ¬ÍX~¶ìxËûßSƒugŽÁé®]‡³º‰%vçZnz_�/2ß·”&)úb³˜Éi= �RFþ)²›ñqÒk`& ”¬úøHtƒ ˆzKiy†|#¨C sª‚‚|;Á0G[=¬ èŒÔÉ!€?§S,øÉUàã ®ÂF¦¤\Ù‰a>oãZ�_¤;þšö¯ž‹n”±MÖ­'ÜòENÔ´:²ß;è×Àh¬Ìáâþ¹²m�}ÿóÅ^W¸Æ w�tLð7wÀ Œéy»•šŽ–~ª7‰Ó£§LÌMŽ8à5ùjs78.�%âH›lÜ¡#®)¨½¾¦7š¦]£@î D7t‹àan8øÖB@ˆ{/ÀokÒýh 72“‹Ö=Š3î£þýÈ·SgWÉʶ«N!SAñ°[ÿ™`T‘”Ëf>lÖiü•9 Òò ­36&Æ/ ÍÌ$î’àbz�î”<ÈÇÂAFs@5›PåçmœH±?àx=øgyˆDŠÆÛÙ¼�7µwÆY‹ ¦Y#MÿQ ¼ìêÊLÓÈ D�qØ4½�…›µ­º>ˆ”¡®îžÓ¾J·}ÔmW;{nX4Ç0©è‹™QqK9 �¿òƒ)Ò}1£'jŠrxT¤ É~¶€Í\”°·˜Œô¡d:õJ3xa‰¡÷ E‘ˆAß/õq•®ŽŽü/ »[N¼]Er.S>âZ±@¯²åò˜ át7W]‘G9·o4Ð:á;ÖVªæDú­×N“tŽgÖËì:ª �]x€€\ïdŽŽH1¨”Œëœª£m½Eî9.W3^�".Z™Âö#D‘j-zOÿI›ÀçL|æ®xñFJÑ2ÀºÉȲŠÔCï­•SIpÑÀúbö^0¸x#ƒnnR%@Ë£×玘+öÂ傊ÙãØÝ 9쀈l±´É­žÒ®fÆû'äøý6ôª¯jå™)*Ò4©V9<Ò"å •”ƒ¤3bÀËœÜkëÚèøß#Ú]Ìæo*>L²oEG•“dÕ¡t„î�sV–wøÆèñTÖOüòŸQxÁ3ýkFi¤²™n¨jÙRÆè½Ìp¦…á¤}ÆKe×4öø‚¥œÓWàk({™&„Ùö~8 çôH(¼¦|0 9K;üEµœœ0ƒ â›×óÈ2V¼h'˜=žúúu[’š^¬h!˜µÞ�—'¾o‹°dz3ô3(¸*õPhÀw[q냳å¶�áæáÐoû‹‰Ìj§Wô¹æ®4fßt(…µŠ¥gÊ2–qVÅgÁ[õç åM’Á¼gæZØ«H‹´ºÑ”òt«Ÿ!†C�ìÞ¿ÐñGRÕo¨n®¶ÛÓݬKœ‚ά4)vxl å7¤^ž3ܪùE¿ý`wcFcÒá¢îiý:]VË­Ô™Näå¬OéD2r¾Œ%t¼Ë±ÖByŸÖë”møW°•Ë{<À¸ûöí á�ÊÏå4i(>*£W�}ŵ¶g—œR‹RbÙ3 ’¥1"Så:ßP&oµ‘¡q…a«ñC““"ÂqÀps±½eÏq¹ÕŸ=›�áét_Ÿ¹Øƒt-nAXCi³•(f:ïUÏ”AXƒÇÒ™Rè™ßEÚÅ<ïùeQ0`ãÒ6³!‰tŸ.ÐóÓ[Ä$¡Àâõ¢>†�•¨_Ü…& I#�º’#2;¾7åÀË>àÎp0ô�Oµiu”·ReF©Iq(ÄØ›$rµ!Aí5�áþKë3\¢D{K¯šórÉ0F8:Xž®^¿ÀÓœâ„ú…T¦ÞÒd>¿:³ì÷n„½7nx Í·S¥©üÇ'Ï9«T °VÛÊØÓ²«~˜EwÈ6 à»6…1l/h Ûéï᩺�?y:¢è“iÎåáÿúWx$•þ.Z sÙ�ÕŠIÿð?n¬e .è¿eÃ¦Ž¾UæxZ)XŠ0aYí÷XTÓt¶¯Éì>hÚÌÿ!�2 dicו¼XM¡¶«,žÁ º®¸*XÙ³¹bÊÐKb¦É˜pK^ˬTzVáJ8·¼ÈØÀ6©šhaÂ^Ðô›þ¢ýCf3Ù=¦¶Öf·ÊRµÙº.^šás;QeÖ`ìÔV•×izãc(ìq:J–ˆ ÃåZ¥¤¦ìþ$í.òÍÇöXé9{ꕺ‡‹p6­ø“FÏuºÀ9~{w‰gx¯”z/‘ái— 1oÎ#޹Á8$U8øŽŸT;ƒ�ÚåV -©‹Ìâ9ÅÓŒ”תvññã´¾«®½+£Á@ß3µ=Za|S“µ¹¤i^àN[^ .WÃqT¹ª“�› QñÕZ+“Ýoa)ÐÃî\v5*ÇyŠ÷ÝÝoR&žœõ—ÒêRR;<ª©¬R5=ó¿gxéH‡{)Rûh=!.îé4GóÂÔHSó¥ÙÏCwåýÞº²Í¸xÞ”�LN8î_›Àžá5XYéÃFn+ÚLÝSݯ~ßûŒ”†¹„LŠi¬Ì# !Ê:Wâ"˜ª�!`ÿQ[G[�US—$ÍFèõ¨‚{°êeà²GraÄñ^·X»{ ïEPâ—Þ%qðS-Σì5}=ë/ W�»—V Ü˜ûXæÁ�5±³ì�]”¤ˆÔ<™ÚLuŠ��‹©ùsXtÙK{ì6 ˆ,Ì ºÂE“¾¤ô*u°Ú-õt éÝçÂÿ¥¯yKõB=ËY¸rHd5#R"ÉìlœMÐKÕÙq­=lo4 ¬œê'Þ|J>´�(Cà +¹ôk.ó\ñšçÐýÀ¥|0»D¢ìŠÆ›-âÀ[IÇ~Žˆ"4φjšÞÕÜ·ÿÓ˜ï‹g¿ ã]o3ö)÷H–~R=†v,ÒœëVÈprȪš¡«EMÓ;K{gÚÔ`UÈ"bw‚E”ñRÇñ8çtêÚW“Çê:eªl÷Bò¼QÔÏMå°ðÅÙñPø«ên.ô9¥°Œ|\&ãòÞÉA‹ÖY²žÐÓ½ þ⦿†Gè?L|¼¨8ìŤJ¢O+Xæo0˜÷GÓU¸5›t}ÆÉËò³Ài©àŸtõÛ#$´uÓñLê{væ�ߺ0ò�/‚ßÖ.t`gQîëÜ �ÒÃè)'±ŠM~äñ0Hdî=›Ç¨—V÷÷]‚¾y3Ìša£ÕW6ãsøl¤[)3p&Š˜ÅÀcPšz#¼Väv³5Úã¬Þ³Fy ð³ìy͸Éöç!Ï iQÈšv|©'��î‚�­R­�èvrö†Ì|ê-‹M’½‡(ò@E¶�½wb|8 “߇A{­Ì Ê8Gè×> ¿Öùj#æ›Ïe+MðP$h¸>ÝN+G xì©êf6E°:å%gÉ¿œ­9š*1+¶Ë)u¦¥´lú¸ßƶr±âWŒ€ʯ­Zñî®%ªÛ³ÅR¶Û¢¨VWƒ²×úÊ,Y'’0^¢Ìì´îm^KúlÃYNMçä:ãªÊ¾+¥¬ýnÝúHPb�ÖAË,ë6‡í4²}Ow2Ú›cð[¾±¦h#Žõ¬6d“Í?v`0ëT¨¢ïÑ…ý&!`»ÒÜñ­"wñï951S:–XmY�Qù;èLeLŽéBEx¼ÜéˆÓÊvy1 Ê~‰AûË�ñ®ª+~ƒBk|Ž­×{ß+æß€êúγ“ •±ÄL%ÉdƒP™J·°1¸‡y3\Áô¾;ëxº­jC<éͶ_AЄÕDUá,DOä3¼oOȃ#~¾¤]Ëž˜˜×A L”%°bÌ“|Mùƒà MÜ]û«ƒƒ“ÍÀèV(~~eUGŒPÏòí´/¼Ð/$r„ãá”ØRçÆU 2 11ñ®%6øxŽÉ2°}–ÖÂNm™œ/·�±Âxgu�’8„œŒðÀ……�Àâ|�þ%)ϼð0¥í€4?Œé2ŰҚé//K <®á{σђõ·ŠHDrr'×r–ŒNohêÙW×üT/uz%¥÷†AÕî?áêRœFþHŸå¢…k‘g¤mYבš¨µ7sÒøxbKlû•*šÐ ¦¾ oªŽä6)N¶ fï3Ò.ÚÕP. Xñ_ ž„ñ¹„$�Çæ¥žQ“ËrÀʲL¿Hïêio{¢º6šáµ“ím„9R n±èÑ C’‡ æÿ[<�;OMâŽ-š!`á2¢n¥Qœ*s¸ÌÞ¿vû}LùP6L#¥?2ޝY.g ÛÃ/Zõ§!Öý±Ùô"ÑÃ.Î;L¥cy º,� >¤Ãâ³/¬êQ»±¡}˜¦–œ‹š Pê–� �„18âzQÄ „@TZC°PÛE‹‚ „�/�yer*ž×ÑáûÝË)› äé¦ÁžXS.U„\ÿìäD�oå£ÈúK) îâÉ™%@q>·Á^—Ȩ4k>³Ë¹F¡ÊõCk”q5< #6‹ñ@Õ�9õ`ªQ•Qß–b4•š¢…CÊáoq„Ìë¨ç³âW»ë,W£EËlFVoÓ¹3Û<V‡ÊO¢†ÉàcC¢š® ð^Ù H–¹$X=2“¢vÖžfhø”Úîöߨã,»l,t$†ѳáEØøö©â†Éìsój6Ž:~f¨�Þl)‹·Jñá; 'ºPë­ÄúÑ%º]ç²ë¿ý’ì¹#C�öÉœ €¥7QnÙLš«Â ðð´/ä9½CÛ¬·ôA½ðY…SË,�#åØì›ÎƆY0íxTʈO(a¢\> #˜œÍTôd›¯„ÙÑ2@¤·ŽPsà¾55ûvÔïÙ%9ÝBj_Á‡2w�^Æíƒ›#�R�Ë••ã…‘hÃëàêÓ2ö Ùk•ïm 19øKãwPÓ"Lôè£lßbø(G –ÐvVZd{ÉÚY¼¢©wxŠm/2ÎÙ7„] õüš¥,[S´ùxd*^-}%ò55’¶N".ôœì±1¥oè~1Ÿ@?¶fªF±»bòKÄ@-Œ8×±ÿFL°“Ê�ý[[»¾êÝ–D©y À–³J$f�¹â ü‘N‚pÚ�æ×YLñZÔrs¯Í¼ùñÒ�Ú¨jzñó @;¨èÉ‘ñZL•:£U‹ˆÖ219;^ã04‹Í�qê^ûâùGð¸4ZQd‚/Hšqˆ—s2“N›o+1ÉÜJ”ÏX�/d†éŒ@dWÞ±¬Ã(øÃ¿´Å³®/Ñ{40œÁÇoJåÀY6YÑ “¥gõæOÑ‘-c�íTèÁ!=¡YÅ*äP�•Õ: ½¶’áGoÈCâ“ŵå}Œù’ˆd´¶ŸÝUVÒæÀZ~Å»éT“ˆf••f5ÓÙ@ÉʲعX¶Y…44@õ­�"B �CµtèPèFºÕ65w7Û2Äð$HW·×Ax“„k•f’åÉæ–PÑ Ž"øØÀXúÛÏ#f °*®>WÑé&¡¾;7ãÄ^A3RÚHÞ í"[FNô ¹JÁ}Þ±ÆËé ìi<`_�V( Bf��WY”aLf‰^cž :®nêÞr-g8Ïþg®v@í~’“WæÓ¦|“ ¾§o¢i°³ª·³¼ëÞ60;Wø»AÓç*ø+ÅÖN“oÒü×íºW]�y,8}“t>¹2V³ªzn¿VS<9æ��®~àGñQÃHC÷p’ˆ�YÃj¸·ÛWUDä¾¥÷6w}Ë÷+áN½­‡óÙrIJÓ#ÔÞv*øø½¼;¬/ê�Æ2Ú¶“klâµÙ‹v‚=øãÐ2Ó$5˜Ì]^ ïcc ¶=]i? fe*§L¤®,Óã*_–#Ãôî®Â#¦Ñn�s‡r±.ÎGß? ¯ñLÀ±ò\«¨ñT!'Ö{7)€¼Ê3ìËd «'@ò Í>Á±+’Oz^Œ�óÊó£Yå‘Éöïöžuàµn>¸øêÄ¿õá" à‡ø“WÅîÃlsk}$sÞÀ ÷ÍVãIˆ˜NXˆ¯ \È™µO½¨ÿ�NÌ®[^dýŽ'\©�g!! B”8cÓm´D�¦UëðAQ?¡ª7<é<î/=2úC¾ÿ3"(¼(Y¨ç;>¶ÁDµp6N6DÚñÖ:Û¥© àrrlàr¿ìMø¥TÐÀ–�Ü´@}¿A$•“²õOé�§]xˆµ¦ôµ:99¦„c|dHbª ‰²h5™ËõBæ•dQÐóÕV]‹¥8­Fô+‰™ÖeZòï“7êÆÐ¶c9ò=?@QÞñ²ÍWש3çÊ}F DìÝ,P„PÑjÕ™º\õÀ«/ ñ‚G¹è{€gøT¸­9ï­'¶|˜™að!EùŽC…x¡dŽp+�´('_dTÅdíº¡�×Ó8Sà¡´d(Ç. 8X6©þÕålõ¾WXóõÕué…W›EäÏsÕ6ü:lP>U8Š~ýbL ><5ß‚ÈÌ›#q¹\Û@ÿ%½�¶¿NDŒZ~hä�ò–�à<¨²Ä–ˆó•ö ÷üD¦!ÊÆöÂÁ°žÊB LßnTÀMæKÚ@He¤«¤êXTÛJu0uàeÀmÕlVNÀÛl¦á¾èÃØô–¤Ý®7¸—ìz´§':n’ eþÅ#ê0˄ɒf"�Ìïl¾ÆW…~¼ x|¦XW‡Tß~œáÉ‚Jˆ£.6?g­Ú›=Y)©B:‹æ©_tоÁaªÐ�Ý1kQo]}ÉÛ?•þžæ˜&q.ϼ!) –þ—.yÃþ­„^=ïyq´ûIµÝèljxb_7úØ ¾ŠG@È ìÎX3ƒÃž×¹ú@Ï RHýê’E×4ø8¶òšqZ}�í-}Ì:I·ÄÖ5„”&wbÏ�¯OôÁ$„3¨i¢³òL?Oƒ'å´FÀYh,¥Å ±‘�ƒxf§^S}#¶-¸äüœ<xÎçÁÉ sv}ëÔ>ÿlxˆJ 9äÏçŽ,\ICJ[–ÈÛ“Ebzã!L33°§Å"?2 ,òõ}#{ó§7þM’”õïYºŒ €Ãl(Øå=7Ž£¼¦Ð `çéJ¼S6<ŸìÍ>'rc/˜¶xçáþ¥Í¿ÈïAE‡5-w5a®x ÄçAÑÇ}ÈZ@ñÿ(iiH2† gô/ÖÃdBpÓÕ߬™£,òŒu‚%%2õ²ªÜºêsƼÆ; ì2_n^ð$ï¹â'¨_aóh)×gW*˜»íi~e:3 Y6hn¤ëˆ�& ‰nŒœC\¨wÁÐôö(èNS}™äBú/`ýÓ„rŒë€õ‰ÈIs8â‹´¿éïÌìrD¼›:[îb’ÝÞ.e*ØÕŒ½›>§}1ŽpfÅ­ä1tÙ¢¯¶™²�šhT#Û—Z,מ›l;öÈDÆ>uhþV@+ÿþ´—ì•=Qx~Ò꯺<{Í<4uKÙ>7�{ãaU}AM`ÖÂWy­ éÿ`½px†òÈ›†�sWªâFYvr¤kjè@Y³ÈèV[b'ÒOÆ„´} f å²HXòvÙWEÇPŪtmðg6á¡ý†5¸N,l𣋔 ¤Ýæ¶ì£è V(av·RŒè@}ð“WJŽÐ—Àp{rg`å|Š {ð³-T×0ýµ{lÿê^¥‰>\æW#ߦX’âð³�¿¬^)Ïãnžô˜˜ cËm’®Ô¦Lg{£aÅûFäíoÇ_y¡;¯‚ÉܤË!º¶ ¯ø½>ˆ,O ÕÎ(!-Ò½£R)ñ 4ÐŽ{g yìŬڵA[Œ+`Î9R¶P_g"Sèn¨×¡7ÙÇÙò#€ñƒŠÏ“9ÊÌdž¦!ÓP¬é«÷mL˜Csš¦³\l{ ›<ù@¥^šÈÃ.ØMW/yHB�QÖæ”= ¥‡”¼&–µC]7C‰†õÀÆ!@;@dt‚ÍÓ�óÕ¯‹�:<÷X5“¶ŒÔyó˜q¤i‚D2…ô½“š,|j°4RØÊ›l»®xâ¯pÜÓu²¬É¤xKäòÝ|Cå{9Ù.B ²}5i‹,³ø<ÎUN´Úù…P¿ viI±ÿ{e:û{ë’ÒëÈ¡ëúR¼.žþÕj„g8�ÅÌÉà‡Ö1Ǹømôd=DÉâøIA\PÄN¨-ŸøqÈdHŒ++jzœ]’Ú°™³/’Í›ƒ$]Z6(Œà…öN¡-q>2OŠ�A¸Úï„x÷5È!Ö�!+»rÿ‚ìX6Ýëgve6P[� Ïa«ÕcCgütȈÍÏ’.ßâ‚´e=£¿ŸOº×ž#xNµ‰½ As¡µáÏf†Á3ÛDd0÷G�^‚šè1ë€-ÜíD¹�Ñþ€±Ÿ¼Â²¦‹xÍ;áxŽ™Òš!³Q3ø,—ƒ X÷ÎÑ΢;™pT¶Ð€A ”ñ;uÙ;g÷隬[ÔÛÒ&SçIHïÄ©]3·ƒMäöüj ˜Á6wQÒ^÷‰xì%ýÛW5 ž…ÜôH-îxǼ÷þ ,*t&ñø!/\ZL/6嵜ùö/sJ˜�©#¶Ôâß~Öµ < �G]2Œ2dEÜzÈ®Áã±Ò„Dm®xš`œ£�‹“D3Ã.%FSg'�ÉIÛ¶åuFgè¼#côM·~?ì{à¢À² ¤m[¨rµÜ`"x•“4ûVí9޼†d“-þî�KHW‡yã!Ý,Uý0Fç™5J¯&r¦Ÿêtù†~ôNî� ºóI.Ïb7ÎXùÓ'ËMéj¤‘ãýÞž lõ}èšaLMû_ÚÉWÉ^öüÍ"!*�V[¸Ç»µ)4BX»âñ€‡è�ü«=µ�ƒUþøFq`¨U±H³]¯§Œfq 7H&É‘6ˆÛAÀ^@Xnïg5Å4îï®We‚)ãÞ·QòâÍË ´Vì³3álÁ¬'ê°@ÒHìàJ#;wÛÄ- ¨y)¬6òM1EUt‰.}ýw„µCÓFš¼š–ËŠùh;²Û�=I­ñ¾ˆÆ„WSI0§ÿ÷=›:»Ð™ºþçÿ¿ž §Å�Äf4“HÉþê ÝÿtªÿaìB;dÿÝŒ½é8DŽ‚ü@ŠÂê¾ê,4Ùüé'½µä r©ÁX‹àìà‚`pCçÄü-æ5f8µüWqP@Ðṙ˜¾u¸SÊÿÛß™ÿÛß»nê0Ec>IÓá­ñßù%Å”…þzZ}E�îoúí�ÆEK%ql"S˜(‘(uÓÌ^Å4.´Æ:'c�€Á<ÝDÝcê�X´Ãw�éœÄ¥Xd ,�Vë”é²6<«„4 #�/¿ýjH§ÿ™°åwƒ›8pìñÈ­ßÖ9ÀSͨ͘“Ñ$PÍ©kD§8P¤z� …Pw'¢äVd8c™=¹ÐÖ¥åŽC¼û‰LfEŒZP“„™)ç; p¸ÝÅJÊ Õº'g½'Û X@ôŽD[ÄÓ·mO$˜½#ÌŽ$ˆk<6œÍRâ q^£mcAÌuª:ýrç`s_»pÚ u[@K¡J¿j)¤Ë›z�‘Ô¥è�0ß¿UTuj ’Ú½%a¶(±ˆu#žÑÛæH¿äQ5ÑkíZHǶïØ7UÂw^Ê-4ln�P‰ô(ª‚˜*VHÍ/ãPé”ùB,£å7�$ãŠd¬Ä±?¯© ?;s&ÏËo8$@“áØŠö“rrÓË{�Y¾˜›[2HšUJ¯óè¥ÌKŽÐK‚ÎÚìùKì>ýþ.qo�÷è#½0Û§~ÊõÛzIkÔUý°VZ²œ-¸q)ßìè0ÐuÈëâ¾G¦|d‘’n”_…r(DË饮u{s#oé*£¼?J6¼VuÓ¶QÏ8c}–5õY®îoùë™Ý>ÝæˆfÂXB`Ž4œoäÌ�ÞvmÖ§Ñ7o»êßYS1à”¥®ýœÈ´G·Š�kö"ÂY‚ƾ*RN�ú/Ì-�¥ñÉK1±Tm:[RttËA'.ÜœkËÁ-PPfÀ• ÁAX�s6]¯¤í9Cî~k(°Jü“œrE†T-ãna‡Ayé�è½ZŒè;Ï¡&ß±~ÉBŒHÔý9L VDÞn%x²7]>2€ÏpŠÏÌÔN/Çä®?ýHÏx¿õÑ1l”¥�¶[#¾†Î^Ë­Î #§ø¶be îÇ_!vPçsNî%±Nõe[¥÷QlâåÓAÂÁ<®;�ʧf|$«Û„ÈD]6.Áì3-XZAôPÀu㋎½Ø§PµO’ô�¼S"KǦUr�á"+‘ÒîMNª'yJ«í:´[ÌÕ÷`®Îö ¬ êÇRw|œ—ß9ÍÔ‡áèQÇ�IK¨l[døˆ‹�+…k,;rãAÆTBd.zx÷¹Zof7kõ\˜”HéŽÓ dñoN|”‘£iiâ^¬nÜìДb+áZ ü‰ýç”ä¦pEF´\š"Žzº!%©&Ë iÿÆÑ?T¹Mâ›*ƒÇqr�Í(¨\;ð î�÷@Wá>Y:ðjÅw¦8ö5¾¯æóZý¬i yäЮȕú ‰3/ ñ+«Ê/(ªÕÆú¸€6Vª*¡?|nadö©7!LljU¶ãK®©íst@ˆkÔ.ñÀÚŽÚ í÷vKýsv0óšíæz±'ÿò0òˆhÄ!3ÏOáÜ·ÈÂç5�o®cB½¾êSØrШ8%ÍSÑ6ܵ–üŽúŸ¶ÙÄyz.U�é Tˆã¾»'�VrÐé!¯ÞtÆ�T‚}µFL|ïÆ÷¨_ª·uHiÀÿLÜ¡–ùc ö«õÁõï ûêþô™Ý×*ÏW¬ÉÈ¢µ}ªœšêáëf­¸\Œs™ôèdãçÿWÎlsÈì=aZ¾÷?ù7è¶uTï[ÍÑq%ùq7á&ÝëèûtGà*× ÷Új°7’�“,³·CIêÕx #léWíIH[þÆÕ6-fª8Íææ©Ÿ'Zóü†¬ƒ‘]äBØÁ@÷ÌO§ÉEƒ^9`—%š³ïc¼‡¹<²êknÆR¯ð›£{‘ˆ·µàþz#É…êÖ�8<áØÄU/SÝåã¶PÊtŒ°vðUi+¤4%!qàþ~õÙØïÁ»ñ"ÇÚ“áãý­Ykø÷߸A€�‚>"¡ÀæT‰\ÊÍüžåQz•F@ª½k¯T2?÷Mée¢YA¹Ó‘>ʋތÔÕòœg"ÛÏÙª›*nMdW…Ï´ßéCÎ>Õ„ÈØ ¼Ù"mÛ¹@ƒð¶-O*‹òÞ$lß+XÁ�Ö¼¨^°sw`ú !'P’³öŠðô-¾ÿѾhKB‚_²B;ä[qB›g¨v¾Ä»”‹K¬¡õÍý@›‰D4Cæ/J»kêþ ‡|CÉ?á*Р¥Ò†)‘¢îéÖÍ[‘(g‚e{,LÒ�‚ ˜^cŒP¤ÿNé�OV+y‡‚¨§lŠ‹VSh©£»Ôõjö8ÆñžŸìÓY’z!´˜&Ñ×Áz÷biš:–™ \ß÷3É/ϲ²B(½É|XEâlº_èß0ˆIŠz/wÏœB´¶#àµ9 á1´�Ày‹ö>4wè¹J‹I±ï”´ ÑNÑC…°†Í1?sƒIµ³ÁàyýŒ.;iù{ü»\1sv�˜µ¿›Ï³þ÷A—±€u�m㕬Àr:…›_ô¶NBœŸf"0@•»çTÂ¥þànŒ(Ë0¦“äGiKfjÎùš3©Å´ëžMïïûì$Ÿ®6»${d-É®¹nR‚ÓLÚ�-ÙUæ1ñŠÒŸCW¯(ÔK¨©ivä´K?@gif0&u…F7Ëz»ÝçVÿ ë•óZ¿˜»áÞ^Ó·%Ž;×Û!¿¯ ñð‰Ê]ôW�[Þeyé¥üÑë» B²S�ÉBÄêBf�‰›"oJãXÌ.$†HßKàQ”lU S QŒ$_ÄÁ$�\‚gZÚ±,ô¯âõ–m^U’‚)ë3"ï¸)%{xÑÈÅ´È(0C¬êÿ¥7‡ œÕß´ŒÑxÝg˜×�Ã'·bcä|Y ” È«BÀm*®²MåŒ~~½Û²F[*JØä€TÕ)L±âùQdã¸ÄWÊߟÚà6 7%(l{ˆ+²¬­¼/\Y¾A6 ù—,$~hi G9€Ÿ7!Z†vepAḛ́‹¿ç7Ĭ›—AÒ�IuÞúû>zH¤×|+©Þ+!Ï«3·ÓRχÛj*ó¦y˜àÉ,^˜ÑšZròÙ ”m¦€µõg¢4+‘J¢C´Õˆ’¨f}a›ä&D4 §¡èŸ·“ƯЬš÷ä£è'ð'PÊ…Äÿä}›º’“J¹œnÐ0OÎ8‰tu¸ÝçæÌ‚à LŒûß"©røZ²Ì"¶â@eÆÙ;pc4­t³¦Éê1Æm¾tÕŸïÏNÂ+öÁ§»ðõ‰Â’�£ÞÛ{Ù­vu{±lØGŸdêÑÓåLú@ú‘.·åP@Œð½ÁØažøVz9—„Eû í‚öWÈýjïìf«Ê‹¤ß„ŒV„¨ëÓC{Cû’ R1fNæ-° Œ�w’‰ë[ö‡“hY¥ÆoxgVk«jnfâ¢*¡àrváÛ’Êno+ISÂÿÜNEã¥rz‹V÷fx…™g«Ì¢ ZSÎ’éD¢DÊwƒ„Ç; ‘»f)ß�U‡ìLÓñ¶yóþ”Físý©�z?Ðs6�Øo‘åbŽöœ'=^çFG¥Rá‡úüº2�÷ÙAAóùFLÜÀ&³¾ tEÛ6‚ÍÇy·5Ð\»·”ÜjZ¤ÂyXÝyÆ2m)ó»ëàTý¡ú.§ÎÂv‚|Îôáê—€Â\À+7š·Œúáù‹«7S=cs×#� ¤z‚vâºðêêé­¬”• ö(Y ·3(Hô‰&^\(žz®¸è\Æ�¬�¼®8v:N í…±Ë�É€áâø/u}e{°¤¹Ëaß]Ó\·#Üèæ3WDÊ9¢ƒ½ ; "ì‚�dèõ bÓîÇž��}hÿè¯�¡&HÒ©5m)ŠKNa?KHãxZpœMôòjtãJ Ö{­»ÎèÓ/c¹æ ‹3]´dù÷µœá•,�p¨Y·nÐ÷<¥usÌ_vŸñ䆃•PUưèÀVœ±óD–­þº}ŒØ¡û°¬žO.ˆÕ%8J º—"Yák¢üPWÍABÈq³T¤U#aµ`SÄá6%~=î~º¹?¼&PÖjeÐNÙ¤u[äçùü³Ó5|Êd�+x‡çn”Øþ‘,’OîËù}ÐN‹iØh5u¶Ê®Ÿ¬eï̇�Ôz,錡é©-wDU»«8�.¿iÊV:{ŠîVÕ¥Á/-�Ò•_s¸‰eŸ”ÊÍäVÉœ]Ñ\öN›ª¹å¬†)]:î¿„9§‹¯¼oh$MÚ=ehóžìXwÛ§,’Ô Å3« 2R›Ùˆ¨,~�öîx•—(òÊ î—h+4=û¶4]7Ýu.Èuþë¨;ô lìÑGõ7iã³ é!*ò“´uó\¦vø[ “­¢~¯2ËH¾·—,ëVJ§àÀ†óMv‰"2ÛdêCÍã1 ØmÔX/5o¼­Ô/ä°"@aÑѵ1„¢x3C�Ð*‚ ew¿�#ªÎÉê‘&ˆ¾;5vÂgÜã�Í(ÊehÕ]˜µo¼™³ŠŒN*i‹¹À2Lšòû!HJ?¶=úÍjïìÔ‰“ ï·©9û%4*èYj%Þî«åwT¨¦6†BJ´œ< 0OT"Ø-ÏÝþø`CPÝ¡Ûü£(ÀÒø„¸­0p¢ã]¨Ÿ.V´óú|̸“R�:Û=×¾ì»+Ö’c‘Ѿ7Z‰~u¤#�¤;6¼;@á§=°MUÔñ�*Y¦"ݾ;±ûÛxÑ×IµsnU41kkôö+îFzNŠ)®4/äƒÁ‹„Ù=Âåt§o‡>Ùt�8 _ž¥T4Eô¿–jŸoµ÷«9™¹Û��+)¢§{ù×lËž;Ç.n Ävq{y¬šŒ®ºŠ(‡{Õ©­§'^Zš(bVЃAÉ1ä÷˲VRS‹„ÞÏÈ¡Å5ÓÕ*µêÑ›¥ð8P@ì|­Œ,}ƒƒÊRŸ³îÓé¯`LDùúUžÊÎß–šçœ2ãWCÕ_�¾GÊžœÐ3ßÏ¥/«p~þt£úß\wÃÖOø„cl4#Êk9ó"ì@Y�·â»:œ&�õ‚Qšx«iI¤D=V ¾j`ÔEòF^»bbNxE˜k'•Û=¿Žn'!á� Q7)ÛÐΠZ‘ÝEü7…Ÿš±;u7+{ÏäS×­MÕ}àt?+÷&™V i$>QÍ,Ì�˜±Ü'^.&þC2’@+jÇ`gT³Øù)BÅ+ï�¾Y� ÇTËÛ¬ïµì¦ ºÝX.7¢fÅ mÇ뢳ÆSå.¡èåP„!€ùÒ¸ê´öJûsÐw‡—O—�1 _IIÒŠ¦DåÓ }�æÔÏ€äÜAÆñÓ&B^]ê½Ê÷ôyÛøœ©’«zýY|‡,Å*Ÿ7Ü©» Ú&Hîç¹ZÉ-ÇJ2iC„†{À†ƒmª€v¾�_å†ôüš˜´bžÚFmm°fB�F†ýïJtÌpðÞ׎2´J52,²‚(‘6>åGWåí!ÁDÏ�å}i±ELG±!ñP²5²™i2‹à÷°| 0-=Ý%GÅ'û[8Ï;/®ËT"ç…9ç>ùœî×Ã@ñ~…Ñ¡d)uqe¨å’•Øé~ß —0.Ä«è’ -2$Ê›ƒk ¦ ÑêU‹¶“hkÐ:ŸÙ²Üºt�‹Œ�¶äåŒ?IâMS"ç [ZBFþ�Þ°]jÙý�Ê<£\æ�áZ8�¨5xG¡ºB,?jÐâ;ÕE�!;+mÑœrJ.­bkŽ¥Ÿœ€g @x)÷czH+ÏŸö^KøËòÔ:N!KVÏW¯ùA=ðÚµc1àŒ ;€ô�6m|Ûð¤Ü_#Ά�?Û‘š^Ä.¸jr¾?)òG¬t-ƒ!á´å0ÝÓÐd9Ú þew'í€w+Ùs F �Ô œ–HvÄDLœ×Þ“©ñ†¸áJ 棛��݆] ²·Wcġ٧ß� �齑YaÄi+c§‚$Á…Ù‚ÅæWiåŽpÛÃ�ÊIx¿fû#°“’©6$BêæªRú`Íü¹ GÒìs‚„œ|Äm, Ð�ÂÞ…•M~½¶ª.ðOt¸¹øö=C›îK5v1ª*±^al7…¢\JeNãé€ý� ôì?˜[)=•‚’ƒ‡Šâ€ñåÛe–wñžpp(…Y¤n2à>SDð%/Ù€@ắ(ý‹æ6<;…âÑfC�x é䋸6¬^ƒ£ªäüA×#>÷¤wÐ[G€�ÍêÏOa�½ôJ |6ŒäJ8º¯•BÉ™Ë.RFÏ¥t,$cåL¹›ø°í3!EmÞ“†]Gåè婉Þê÷¾ÔÔÜ܇Jì6pqÔ¦˜‰�‹m½—Ñé�þmõ÷hõ 9�„†cI^Æ`n¿D®nO†4ü*ª&\vÌ]ÁnÏxœØ)?›œ3'‚b?µ…ÅOžd´}=õÙ›�ÑqÌJûÒ]ÏŒ)gø‚3‘h]–ܯ›÷¾3ÎŒG«¾CnLFÔ»\~í0úª�=çÖè-ºAóìþ®Q·n ú€·ay =oåÇ;IÛž`.á_¡X5Ž­^dæõñµLŒEæïˆ³ÊUv‡Aë2%zòQ`C´Èéªz¬à‹· íÝÄŒX $AJÆ'‹ýBmW±LOÙÕ¤Ðô£9øMþ1=‡W ÈWJ„_Öánüå>åÙžüç16Yáñ+K* Õ†�«àkØÆ`�¹h€ló\¡L¸n“:o€ùVcÍn¶_¬Ü·1¨–}œ‹’í�¼k_íO°òÔËï‘™ ³B‘Ýÿ¢Ö]Ì‹$ˆñ®–¥bOZ”¬{ÔÓIÊ”§ ‰Æ[¶K–¦ÜâüÅ™ÇÆkÔ–Ù^!­ýT£â¦®j’¹VØ{‡CÕónŒË1‡§ÇPiÖ¡èŸæÂ�HTw@ ¢SLDaäßò¹é qû#¥SÞ–Ó²ò)‡ô@»JJÅVs,üŠ9Œ»’ä¤9Q2-B+ôiÁ@ôž.Ž*óòo"Ëáì™Dð×!¶µ¿dG�;söÅ·JB&ã¯Þæ \Û»$;\²µq¬GC,@iaýR¯?×.ã°€‡E¿n$dÞ¾0Ê`3øƒZö1Oƒ`Z1#ĉ1:T‹º.T¹¨g�½'½ô¦ÜÉNÀÜ@@Ž!ý €=ÂxT•Ž»BfM^¬d/$�ØS+¿|]£j(jà'(_ô|TTw- GC ñ’øóôAƹŒtU¨ ÞÅçãû`ŸPõáD¹F â#óìóÞæ._nxzJÐ}sØÂ_Ö™ÔlÊá¶ë ­ÌEt9¶`Ù… Uk £®‡ðy¦êùÐe˜N_QËÃÕ¸§3.ÕÆc="ß‚+@íýOû¯Ÿ´ýkXOÿvò¡ñFs ‘ÝVâDÍ å%”{vú–‚¬óž2€#ãb †46—Ö#„øåÔjÆôú,Š  £ç¦sÄ¿ø7%D^n~Ù†ÌÓXmbr�á¢ùj³núÙ&Â+7š”Ð(wʆ «»$ˆþgèæªS±µ— •룞òÑ+©Iæ.{#ù�ÅhÄ�õ/ju›BMì�Ô:?:Ü/¬¢¨öˆð*¸-!âÔ3§ÞÄ#W“D%j(–(~–ÅUª# �‰ŽÌ ß4Oªš·ÅÔ—N�G»õÎða )¨³Yë°M—’Æ×«_Àa ^8ç<Ó)F(¨�Ñ‘ÊfQT'Á9"‚aH ˆ<·¨µk)sâEÇõ½üìY€]ƒ}÷à`Kî¡|öão:SQTlYë‡)›¼¤O‚�&c7ÓLžäÁÖmŸZ^•«Ö™ÎÁO¢a¿}ì2®M,‹�J-©6u·Ÿ:;°už‡ ~ÍæóSÕTÍ9Ê�m®d«“>ú£›‰ãŠ©k¡Âü×_…Õó›ÆR|Z”‰«z0  þ`†5™`DR<µÛàŽ ç2"j%§‹ZOÕ²Ÿ‚)¤¾¶þ+ÇAŠR úÓJÒŠÕ˜¡Æ¹æÐó»æœA$‹)5$çáçQ÷\jÚ:R‡Ø|Š­PÈdÌx.ù Úò ÜK� ï–x„ËŽlâ¦ÀüM•bn�( *ï|Z{.©j�.c"Êý²™l‘AƒÛ Šz“;küÇÃ�á•!È/÷d¾VÇp´Œ"I¡�ÛZòB†¾Ä½�sñHw!@ª�GÎèú¼n|°sPá>¤�ܦ)ómaÇ6a®Ä1¬ºSm(šË—õ1†Dú†­8ì9ÆHÚ'KxiÚðĚו8W�•³p�¿ˆj/ý”æ.2û½Ô0~¾å ¾û9QÔGJÅW¬gÝ©¾™Ð£·5þÖdÄ[}í"+oätÈp1µÐ�piðª¹3‚f"•h6·�éÀ†CíIÎ%:z÷ó<”Qà1G�rÓöýÕßíªÉ›‘Ÿ¤ËÚ÷F#¥·!CˆnäØxh q=ë$Tgº… ©�§ƒ%F¹Ñž¦-gâ DSÚ#Ì,¼t>„±9šõŠ#0º@:KÞð |ðì«¶SÙDx!¡ŸÀÂpôHz°)P64”ðÙ øŒ1Êçr¼Ÿî°@¿Ë l) ¯ €èD¤¾àËë²EÊa—ë Ÿ2ºq´¤zhosü3˜A@*4Q|Bצ´‘mrvþ¯Ô$Ç<§¯¤ÿ bYO`Ù¸Ãô8<Û ™‘ªÜ0`éªI™ øÈɽ‰[õÅ߈ã íÈ,¦ªý(Õ…d[B†ñ“CLd –}V›;D�˨éãÔ@»Úÿ|zû!’Á¥�@N‹Â¿¡gɱP|ãå7›3�!ªrŠ$½•~–ë¡gX¥K~m2³Žð.0¨ B]ýŒÐS>º1µêV ë�ZkÜÊ‚Éô‹HØ\ðú¼°"~bß9�í¹Ó.Xí=.•zv‹3ìdb¾Ðj‘j§ÒÍ'UbÕ·åä½]Ä«É(öÝSX‰%oëÚv¤¶›´{ÕCEò%±]]!­²T}Û�y5ØîcyEó£Z)ãˆN�ãòýLÊhA nä�Q{:|lhÒYrO~¾�–ŠÃ©Iø›�°žD\ypZ{'Ð8ãÒT~ÙÙÊ¥v“;àú?|t5¥p’X°®QƒË•¿gßö—Â%–?­R(4 UÁ¡”ªk�Lô-·£ŒkÛ`|CK¯|KTâ-°w%– e¶=òñ›HaaGj}Ó}¥Úo,�Ýo¨íÄ)#1Sÿ96—%訖LÀVZ³/Fy¹”&Œ'‡�Ü›¿ÈÕ*Óì*¦AËr8©v•eÀ¶q£žwÁð0/)ýÕ%Âàݯ‰QÃòv–:Çß5ëu tçÄï0âýŠÛÞ é!NAº­ñµëë^Úñ ´`?±Z”4dv[Ä�ìâï^]aÌ*=U]œñW%LAê ‹à…žÄ•¸Ä“ö^û´o67Š“³ìç:u0‹A|: ±D˜›zà{@ q¥Ì<½pÔo܈#™ùµÜ«S"+ÖüÉÑ¿² È ¡[–0WÅ[Õy˪Ÿ@q6$ûiЉ©3šA#Šï ß®UÚi¾¯fZo’�€Zñ™ËµÃ¨K?wbÿL`[ž *XmœµÎpRÚ­?“ÃUMàt=ðýHˆí€6×”þøä×Ôø¡À7¤oñ^Úý”ÔQuï /Èù·€ +�Õj—ZmâDG¼ó˜B�‰LhNø�Ä�,¨])Æ_Vù±­ö2'S&¸Ôç8À:º±4 ¦i�é©82ÄÚ’Ÿ²•ø–giµ3B¯T¶þµÙcíÿúˆ­ Uè‘·Xxæ ˜ú¸HâÑ"«oËCÚwY™KÚ�Ò\‰Í|+ô+öMsõ«ë¹JÔ�“]àn�ŽmöcmœUûáÁ_Íh— ­u}=UÓ!m¼‚FÜ€•b²…žR·“¢²?™4÷mYÕÃu¼•å¥çé:3#L�?u¸ú¸Nœúßê6+�a Y°1p) �fš·c ¡—T VSDöq­îûÖM�§¥•Ä”éjž³Û2qHZ*îPòÛ°n¾„É7 üOPò*šÆ÷WqaYÌ™ØÊhÂa�”,‡Û(O'ÖjY :‹½“´/©î× á»±%?ÙÍÿZ§Ý|QŽKó¬ÞñC4/rJ«—Ã}ò}ˆ®Çòßß‘°ZÌ ‚t˜ ÕbíS-Éu«Ð�£Ä@›‰Ó¨Ç ;jÏBÒ[0Ž=½{‡m‹ XÒTë«r8'o㇉ÿ¼måÍí®¨*‹9!�δ\\õª¯f ̼òØ·æ|¥s©ñäÒœ%øÜ¡„H‰ªÄÀÏ–¤mê·±sVÐÞ¨Z18fèã „Æ)hz Ãç7(ÖÙr‹-½ýã�³$<‹…r/žñßYj ˜ ÔøGÅvXÌ|¿ãõ¹<¤åˆ-èF²&„ûk}„ô´wÑÓ5È`%§ß&þ¼Ë*%¬RžØB&#ó¹B¨€2 öîÅéN5’=B¦iR�ížý}`]®ü´ûÃu ø*³š> à&Œz2FHår'Œºl{É ü%qú’üaöHX,GŒeih3àU:w5.æÞAÙ¶Ä [YŸµ��É;?fòm¹wÖÁýæo|‡rXíˆr¸„GXÑÙŠR¶ ‹~ �­ø`Ï뜪gUêÔ¦® ;2Ÿ{÷çyƒÏ(˜îØ{Ç])¥Åª ÕòW|–î�XY6ŸSF´£’RQÀÈa.gUE9ãò‹¡â×Ì,4¡ú¾yÚÕOáQ±­Š}np«Ì�¬"ëZ�î¤Àè%xÖEö¶¸Ó»¯ –EOÖK1E9Êm�N—Õ'™ãV™c™¯e¤ÃK…c ¯»qS{ÒnKtÏ#!{—¤ f•(>ØÒ‰zäY󻔇�£àÌK!ko RRlå�&Öš˜ùcž`'Hͪ´¡=Àèfm`Ԕ܆ÈB-Ås’¼2�»»þz SÄ/ESïBÐ3¹Ñé­÷é];”˜&©£BÞ­²ÄÔíìCÁ-²º„‡èIwÆ{¶’ò�2»U¢Cð^­W¿÷�M#*9ÎìoÉEÙÏ·Hpô—_íÂþØñȸ¸(Aéáó„\ ÿüãZ½ l%6Ö¤‹é€¸QÙÓþdWPœ7­àDjs“ËãçW‡BZm¡Veò„Cw[ê×�Íòýn©Ìd6çŒÎ\1w` y¥¸®å¯s4,'M£Q„ì“ú…С—>áÊgdòW¼ýæenkñ7@5x½�ŬÑ6ë¤Uƒ?¹ ~s�«v/Çzb_Nôv�ë‡ ³juØ“�T½‚šþТ}òµaäß Þb™¨7,\„j§Zxìâ{”7\_ÀùÙhÜ©ç7~åÃ3/�ðjÆ>ÆbñÑñU‡Î…!©ÍÈdêQ…èBçY:l«µ|&½mk=ƒÜ!é8U¸W–¥MχÃUœÑ@kVŽÕ˜ gÒoôEØ|„Àlgž,ܸMp·ÉH!X'3áÈæ8€ÈH*±ÎZHÜèZ �ÀÖÇ¡áÅ…À6›èM¨ °R3¨Ü_½$PuˆeqµèdpíΎ״º¯÷ Ô3—Er�/e1p¤=¢ÒXå³êDŒÞ®)³êø¤`Û¶w Ã×ï’êJŒJåZŠ¿Gs?ݺó@ù³~#ù¸õ ä5ŽÌº€. ®þÒ?òùw hßdàÐRÄ�Ugßͽ¢¡‡­ãÃà„Üv\Ú‚&"¹C¢;¢ 1Iº«šÃD 9¬ZúMå�ÎK¢±¿á“olدÁnîoò ’1×sŒ$ú‡Q„s–$jŸ1b€ÓR»©c°¸5.NydZ® OŠÕ@cÓd7P 4ø…¼¡LÈ—ö(1æCN-ùü®­ •Ìà–Š'E™¼³ÄÖd¯Ó„Wð3ñ9-SÕØêÇJJ{é-Ácñ˜BÏG±Ýær«.Qä‹/Ö°ì|l{V—ߘäV�ì|—)¦ÞµéäÞéïµ#߈n°x§Ã£'TAA˜nvpúÜ!ÔãÞé�$¥ùõw¬Eø™êÝvJ¶ ïǺÛÞG8óàš>$_\ñù`EÌÛĆ콳�[ù¢Ð"öw×5œ�6İÜöxÈ�h_RÆ#ådÙ¬�M=Íi�Õàú—…ö´GþÞ‹A(Vcüîiãð'PØWm˜˜ˆY÷m¼…wþq 'vîõÃsW!Út�…_[ØëÂìÂíøTk‰Ÿ&V§„K,^¦˜¼Ø²üù"Ïã :.Äs5úRö.ºEh5lŸßúL�œæ¢¸!áIÅ›ž+}ò]×MÐý,Vžš e ¥ŒÈzôîs “×vʘ Tz·h­óÆß ‰8¡/ËZg�d¢XÑF€�ïtòDQHäPÖ[I‚ªåd­�~±†9�vÒ¼ á¯×a™•½h�s¡çS£ÙŒŠ0ÿ¸9ì(dx äJl?µ2�—aA·T:ý¾Âþ=í×ÀkâÈÈH«Š½X0f°âo�VŽ­�Åš6£]¦µE�„!»Q‚úéï¹�7烧Ò™;jS�äa3,Mº¬b·§ZÜópYh:� ¦QcXÞ3&^ãš}Òözõ è 2J[W¶ Ö íCÃÓüÙ)8еÄ4çZ®˜k%j 2 ¶!´çÎ'¶�ºp¤ƒ"–b¤ãîÑTÔÈ)híïÕß©¹'£$übˆã­¡–$`„Í[ùª¥¬Ø,cÑ&F“¹Š©Øv*Z0Ê,#�$°½Í3{�MXï¦QBó†*´é�KÓ6OSj¨è�Á§«tPDdJ¡â¼®{(ÃóÒVå8YÇÇ@—A}<Ý-ïÀ«y"ù5Q„¾œè ¾ï…k/YøßÁHö«ƒí}ôþ$´×SkDQó$öDêò7ß’ÉßDhíµ[çI#»úÛC°ébácƒVz€ÂYL ì,8Áô[kIc1Æ”~×ϪÇÎ ÝåÇuM\*Ñ�þÙ‹Ü©Ž¯î?84{žÐÝJ� σÜP*Ï¢ÁŒs»zg6äWz!ºÇd°ø¬ê�w™B!G*ºäXX@�‘šÓ›†± \<ò@bŠ?ö‚m SW“– j.E¼>´4/“ˆBÍ“J—‘‰B\sD›‚®ð;shb¹nKˆáí6»¸5m1¸€ áÇß ˆr7áþ«ÀÏrÆU«^âö‘ÌjMÇwà;½”Hì—û“f¡!‹Õ±Û,Akö¨¹eI§.[ÚX€nþ_üôýuéùù„V£‚£qNø�ª/‹ëÁjª�Î÷úÓ¾·DÊÈC)¢æ¤òlKÄØÎŠ±j¬ïøzM8ò±Û·XŽ?×Fg2‡[øS¹fdA¯Wgü¥Iy;±yž”²Î*´EH–§²ë5æc?s´}IÝ)`†áç ºÞ½©0&oòòA7$—'ZÎ$î¶Û©Æ<§t‘W2¯(¥à‚ËÓo¯5å‘­Z|Òý-€h,Æaéèfj»ŠÏ .bm/6ùí½\ÒLówEŒcS–û'ÎÌú�¡Wd9…pôFû ð-9¶Òûöe‹äUdìéž &ÌOÎñ÷ÔÀbå6C¬µÑ'¢d(@¢#WÓY¹Àb’Ñûœ(¥ ã*ê'Û~ãS£aÙ¸m¤;µW4y¹¶47»a›;¨‹xe_lÐjuÈk¼eLšpÚ6—ëɽÕlÉ{—ƒ~ºˆR“l©om-£*¬r‰ÑúHãM,¯Xø­ÿöŒ$”!tŸ¢0çªHLÒzûÝ›7ŒE+ˆºÀSqߪiËÈX©ëŽÁ[Ýd®«¹½9cìÚÉðŒ&?߇Ƃ…6 ÐüSÖÑÙ+Nh¹0»…ÓØgÃc°Ç“Ôœï9q¦⮲R]m[ȯ8Ä}jÞRÒ«ÐiÅ-!\ÿ“<Žj´Š½”@}ˆ'àZ€ôBM÷™žÐân@tƒ~q2˜�¸P™|»ü*& QFU)‰T±Yã�UeÑ?_"›¨$¸Kë9C­/‹D;nŽãj&Ùç­ Èß4$³?ßó8℟‰l[í–ÀiœóÔURI¢²á+´j&~‚T¯ ?ÐüœáÏ�ch¯sòáY@Qöïžs„ÝÌþN…fÃþvǦÝ~2¥꛼/LÏÇ�¹åøø_æ0Æm�q<¶ëÜf>nIÈì)žÓj3®½*Ê=£/êÊ©ŸB"ÿÉîH ½1‘9›ñªhT‘¿æB‹ oÓg&ж^­ÑJ‡«6úÎr5ø�—E¶ßê"úéÂJ‹Õn’ëý ë�25™ÑCÀçp¥1�”^íƒMçìIS´9Îõž|Z8—#WH4°áOLíÕþÎä�Ê+¹ÞC}"ºÑˆSxª}Û<�¢Á—Á~¹Ì³z/‘WZ÷®šâWn´(îÌȚߨ)Í©lï»L±fåð©ÿËí£½z \O n¶P™áõ÷žÓ‘«ÝŽÄ"¥•û§K©¬MIè€@ÊNÍY/ÿR!»R~[t,Ù>¥lÎ`#æ©Ü:-^­5ý£v< F°þ÷�žsfKÓŽ úýèÿ±Ì‹ÕŒ3/2w©E •¹*…%|tµ äo × *’pA6KîM¬]kïSØø ݶÚng¿x ÀR×$Ð 5‹e·Œi’à€` ×#ý>€›—­³Õ|íBqà¥Q›(·?RaŒ|k(lF¦êÂìEkRK¨aV•Ž‘N‡ÀH~âÐoÜ«‡ZG{ÿdœãv,@üC@~�¿6nÓÿì¸WÙuŠéÿP¼¢Vþ5Aª©ñ¨Ë:�-áØU¯N: $¯8ýM·Ðƒ_�rv¶µXi‰Ïc¨l·®ÔëÀb�9\P# ì¶ß¡e%ªt™|î»ê•km)ûºlpÍg¡4Öâ�t,ëž‘¨R[ž€�HöÄ(':®v (P¨x°_äÝ࢔[lààtû3Hƒ‚MÞ¹Û%Û‚·&�hBð»€nÃD¶šD½& �/É%�vÌâê*ºU ‰G™Œœûxf§$¼¬x+Ý#´ûÂõº#Ž®Jò^¸}Ù¥dè*¦o÷G3¶‚¬.£�h”€s;fþïDÙF2¢[…ºÔbãœë&œY6à`‚õ-H§á¨’*J�„Ñv|° ߨŒFtO l­°ª·„¼Mb6ë=šuQ[üz0jO7ÿ¡XsÁ^‰cw&àÄbŽï÷™¡óíüËHà9év 9yF^hK*º¨u¸ýq"¡Cr1›’°Ñ3Àw‰gÇßÝ£ ö�÷LÛ˜ar†‹²ÆO¢æ«a)p]˜¥Ûcsünkpy+¯™ÿŸÎg»GuÂà'#Žbg´2}醀’Ö([õañ´Ó�CøÆËšp•†á ™WÁÚW9B‘l+ÃúÚ¿‡œ£Î1ÿ¸j�/&ä\š½“pó/mßš5-LÑöNîH«Op­¹�‰”¡>ÙˆýbÖ·¨¼5—¸r®¸!âIW<­�wb#ön£N6xµhúétDê¨e^_ò:Á¯æµÝŒŒÜÉ36¯g´‹›Ìž=éöÌÖTå,”f 8h<•§·‚{+`Ç‘L¤õ@q%± >ÈïB²ð�EäÆê�ÇÄNa¯k]÷ Xe-pMdäHöŒÏš Ö³I®‰ÝêlA´âÂÉ~áo|Ü:‘¿‰ïÈôcÃVHáõ±g O~ZÈÞ�@3£±>FU ÊÝÍ-ãWÈŒfªaÔBGó2¿+Òûd‚Ówï<ƒ°ßö9ÿúÜÙÝþ©/<Jåöy¢:Ü,oŠ­?ýã°ë ü8€ëlÆMº@¼V3ô]'iK擜Ê+¿À2”ã×µ~E¢PŵÖ-HÿyKÙÈ Ìÿ{õ�yuÜB”L�£P“=% U‡bèæW8aW‡Ð’Ô|˜qœ¥Kí€mèÁ•öuûTž1V‘ôŽJÆ~8<N?)Pp.É€vpµUIæS ƒ˜ñËÊÂóžþ¬ys¨¤u.¬o5œ§°O ƒù'8] ­ó‘îkýðžzbÃ2·Gwp�_ÂäT#·é/�H×JDMÕPÉÏ«ÌýE#_B“Œ ;رxó.›2ÐÿÖLϽ­^g©¬u?]Ä :ñlÅu‰‰ÑæÚÉ%�!g]IÓçâ;¡&l˜}§.mú/Žñ¬ ÔßYE³2Æå3 à\̶ô°‹N«>&áal‘�áÕ¹„�]ŸH”O £Zœ�V��l�¦‰Áå¬ý�°�›.&Èææ;Ï4¿ —ÇÄ T6£—e3|>•™áCø*òˆ¤“åƒWŽŸEõ9_/�è×HüLv—`Ë……Ÿêo·h8”ø˜cU¢A´È!ÉvVM!‡Á!«äŸ·7;¢ É ³g´×ŸùØÆQN^ü¶£ó'p7<~Sb· Záà �AÜn 4¬�évhwo=BÛw‰ÂYž/¨gÒK�rí$¥$=ÈÓaãšÓ±è›ØÔÌe}¡ÎL¯Æ³À¨k…Ò¹¯_r^é nGtwòʺPXñð=k¬ÓË÷ßqÎp “¥ÙnNlÔì „n†j"%{ø¦¾�·øŒ¿¥RDtSÅ¡¥N¹í¡7Ð(̬ÅqÔ>Ø8ÅÔme!¶ˆÏƒá/ÅV//âM…UL*pE‚z"� ¨èñªÿK×°Ä"S˜ºFp QLªaøÞŠÐh �¢±Œtó N—Ö�_¸ºñ�ûKÁ§;wýGÆé-«qGÜ5¿Pò Í[ÑßÕ¤o¦Ò�’·¼|I+Y]YöoR>�·™è?ƒâž†ö¡Ó¶£Är§t#þߥË0´$õ5•`ŸÙ#yÛ%‹äN›wjYòÖ�×;§~-­CùæP)èÏ(Á†�ú¼yή¹8ìAX_õ$V9þ€øL.•óïYuÃÉÓ65¯ž‹OXº> u,ÄDõšçšR�Ðï¶`*rf‚B/-²ÞÚçŒèKÔÏòûûÄņÝGhºB�I=;�`¹r¹Lê¼"·ªMþRù»8´ûÛ®–’éî™. <ù½¾ºC±Ñ‡ðÈØŸ©noâòÀý²ì!��d£±Õ•B, óò|~èS§_­¼òÙ%¸‹p®ƒûM¹h»yËO�ä¹µŒ¶á—‚ bxƒª$ þ}ZdIwN?„XæðTJ× ß'a.ôÄ.k™U÷}ûåºÚ0àQ�fÊôœÂ=üõJá9j>ÅÌmÝ÷ °±ø^®¬†lýmF´k˜™Ï]]|”çÑ;’ZeûÔßs9nOF>UìŒÍl {Pƒ…Ç ¾å»ã0œ8MËê“@ë�eÇ3Û5¸>4ßÇÓž ýµ~ôåÿ a-–Û—^KeØ™ºÈ‚\Ôñ–(eŽ©¤*Ê3„mi*‹$ÌAi°Û² Ý“ÂA¡¤1ݳ�´øœGX:MrL“ #kÑøˆ-Lm† õjŸºF„š2ÇlS z^”¯G Äå hsÜ+ç<¸ywÀÎÃà"“·Pmp§8¶‡*ûÜ ÔǘOŒ#—=‘s{¼¼TÂù8GNYÙf9tRM§þZQæ]Ü»Ϧ|44 „Íî“=ÁB§IcUÛdåÁðÄ�uþ<ûoö¦Àpµé Z‚γéVAºYyY<ž~©Y£Ê2«Ùóþ¤·“:ÀõŽãò5€¹ÑhKˆ:‚p1#)ìm¤Ì±Ž”ˆQñ|ý�Hú``¢ºôV•WïâT�_«‰ ¬%Ñצ’ú ‘b¿pÒÍ’*f «œ/!]-µÂ 'Keù¼�6Å XÐæpÝØ÷ÑbQWª.ˆšÌð(/GʳSŒ0ûüèkšâ”ŽÞˆwK´v¨í_žR®63eB½”;©Yš¯Ä‚ý?¡Ë,öÉ ÄŸ˜$½Øo®î‡^(§.„“h¥%dNãê£ÙÑn`ÑYºFðš×œºŸ ¹¥ €P�ò+÷qÌø"ó*Õ`…h®M[w_î)G?¶]훦ç>-µ­;ü"bJ­yöŸfXW'S«YòÜ¿(àÊÖ2b y͈�I^')¯™_U}úî¤�Û¿üòA-¶}&ס1¯Â4ò5M° ±…{Œ�´Šî…X8l†æTY†ç…PŽ‘ý07òÈò { ‰†5ø:êO&JŠ%ïݰwß"\Gs2®ñÍMû*’“ŽbŸg«xÆy=åVöÈÂÛ|n¤^-ŽSèØžÜaЗY[�"Væk¦1WÕ G‘=Âr¹šŽ×£®œ™>׳k‰™’Øã1Y?åžÔÖœq¨¼&?Yuåã‹¿ªOo]ß’MiæÀ§L¯'PÜãóò@¹lþ@®¾›¿IZc’àÔ0ʸbx3ÖTÞÝ&A�f;”߃8v ƒ<E¯Ld¬n+¤gË¿B”ó²*јì­Ȉ`¹ÚéVüQ´XÒaH…"©¦#”b‚ŽuÕNÀº2bÊ ¬=÷j)çA€ñªmMV8ú·‘ ë‚!P6û iÙN…·žyŒtE#Ÿ… ` ëÜ|ZC‚@–i‡Æ‚‰<€¼ÚÇÃê¸ T¤$Z/ç™×3d\ίUqä4m߈m0Í£©rûñåœK7•^1)mš{›)þ²ê²í¼Ã\ÌVK•­üQ«ã¸PSÚ <׉Eœl^Íêàè0yXžž[Š!ÕܶòÝôÂÔÈQeºAq¦|�œÆ¥T˜þ5·Ë8ÀVV„ôxÉqDŽç ï�1¸{I:“´ˆS€é[|‚öÁ%ª-5ô•C0‹–ûHW½UW?8kèO w`¦j¥|’ŠüHËA¤«&¡�ž{ÿ�¤Pz0ÓšÖïéù"ib™Ö#.è.õ>]ÌгiSàr!Ùz#Â�ñ‹w©”ÃÒl~°Zv‡°[µö×D[|q%‡Š@„–·�UX”Ññé,˜4…N [¬Ÿ$ÿiZS`ï Ÿáüå‰39÷ýÞÕ!)­~ìûDÍÕÞÒºé•~²@˜ÙÔÍ!w¤•ú…š¶×ÈÚØ¡ÆÝŠy‹{^,£åAlþu¡|6Ó•íâÉ×\Ìý›%{Rÿþaæbt‚V³®8À<öLzLSˆêülÚâ¾$,h.ÌU?Áœ¶“FÉS„ ^g4 –^¡Š{ΈOBŒÝöœ¬Z«1[»Ò&¨åXpm¸‹âàØ î>4Õn#sóVº�rx`+«ûäxŠ\ðøE'ŠˆÅ=v›7€€´‡:ÆŸß-ªÔk?•W,G�Øã›ªx?´rGç¬Õ¥ârêqC$¯Û$òt íS4Sú~°“וG¶w»}_³2’ÐÕãé¥ †‚¶´'ÇêD­øîAå¬;Ýë# ac]igëd›aMD…ÐòtŒ�mø~L­¢¥àErž2¬À.\�{1š\ÎîœgíÆ ù[;Ý"·2YÓ´L¨ˆÝâq\tPݤ–q—C8çbáL;MßoÕ›U‘ü<¦³�Ö,ÆÚtå7S,¼~±Q¢CGŸz(…] ÅG[q ¬ïË·¿} 2f!ŒäX rÔŠÞR´•ß»êB° ¿BŠß¥³<&üˆHý‡ìíÁm6ÍÞyÌS[�ANä�}‡I^’'Uè¦QxT®O¥ê’‚2–}mº7YK-8³ш$˜¦ÖÐû™ñÖ�à¶ÞSXt“¼"½Y(BÑ^$¥7@ß/±íˆBú·ºvðãvöÈ^©3ÅÃ,ñ!_ÓøÂtÁãyOyÙ…š5æ4oö¥(Æ!Ò¤Ô‡kyœH+ÏQS2pøÑ¿é ¥ª(f(�C–-œºUÃc¦AØÀlUT|PEpêljì}kü YzN9 `þ2Mâµo-5xÂgt…ï4méïÀ׈]aF¸ŒìT=£Ìø7§À®ê#ªU”Bž¯ì>.ù¢X\“~¿Ý¸áé!^‡@»óm€y�Jôdy¹•¾×±:²^gb¢·^šWé…OÍ·;½k¿­Ò“ÁàÎ:W„‡Uay‰QÒ¦)ŸX̾ð´$Gëyw“B,ãÖŠÈnn¤ÕŠ>$»(^ /�Jг¬òeì°úþ¹û×¶R6ÆÒÛT_«åÀæÒwÙµ�¿¶S£ë>¸…i„ôè=2!kï½Ü†è£â¡üp�Ÿž•‰Ú¯éCë¤8ni ‰ÒéÃõŽæZÒ�š¿hªÍaØo} a´×NCI�WÏ«Z[¦ºm@&@> [ÆO��"-¡£l[éÖ 1ÆâÁ„»%õÐzá°£ï¨Zç�‹~5Ô”kÕ,Q'`CÊJv°ñNç—nùkÅENaù{QKgÕí´:s¹˜7\‚5<ùÚž9àQÈ á=§j²To.‚±sSzâÆj„aå§•úÏ š=öíÊO*¬Ì?Qû¹]]Ñ6Ø�þîDñ_¿_mŒ;Å ð�¿!5C‡xL¥×w0{ßÂ"äŠi»zL�·8ÊR~œbT!6aFƒoÀª^vrç:̺xbÄùM½©P¾'Ûg»¹Ó?dE}Ìï¡·RicdÂ_¡èOzN·a¶‰NÑ´Òý†‚‚¢öáþö(0tþT?®Éièbp¾ó›,¦‰žóx=è²`.gYïÅÛW8$j‚ŸW7Q¢‚·×“ráeö_¾çÆo¬Rû�â_æ’67Ñs˜…ù¶­þ§<©ŒÏ–þ 凉lzI¾ìÈî!å*¿Žñðk‹ Óoo) {;Œþêt�1·Èó­Ÿ%t¤7ʰu•㩃XŒ"Ü‘e –±:û_~œž=޶éx±üÇ6ýóüÝC^–)\ÝqJ КQؘjÓ¾ m}ßú ÁÖÎ ò·h hü’‘?pj�ƒÏQ€*¼À+À•(í`&J,ËëA£&óÈÏ8Y~t`ìÎEbYÁc,ç�BJï•WP­N‰Nûë¨ãJ Vhk{¶·ºð•©OóÄγŸÞ¨£@ÍŸV>‡-=]z ¾{² ª×°eeìÚr[ìׄÌÌvŸV[z¹]O ëKXÜ ¯ äÿ ’Ø÷8ª²YH¿ 0ŒÕD„ÎüD8¶ÒdÔsU2jÆn‘·í–úÖéCʬuTø~!FhnèâNY¤¼Ÿ¹r�\k”8Ú–Ì™pK_w€ëð~;Óƒ�}sb¤lSš2G�òYÚ:9âr ù*Õ[FÛÍ;9¦¡wü•�°$à˜ßú’¹ïm>}_¨Ü3v•ƒü$ÈT‚:YìŒÇÔÿzEùÇ-Ò‘M-IÎ Ý ×ƒ½ ó7úËôב BøNÒŸ/“ÙYà ZKVôáœy…VÏûÅÙ•Q�Ø�¸‘z6ØBYXC4™lCpë×xáE4kåš³\Â}þFǯÂL;×A±èÌäÑߪôáÿe—˜J=`’˜ß$@Ž((VÊÒ©‰áèÇCµ€…{/9sB¥Ã¸SýKnÐ×EêÃÓ‘w fW°�tiðœ´)*¤˜^ßõ½«]ÿ§šü™ú�ÊR}'|·&#_w'wOTíWíÿ&H¡?§˜åRmyür‡Äh.ÖE ô†T¥¿Õµ;ΫéËîñ%ýý×}Šjê¡í¦9òæÎ1¾ºa>ö¡w^!Ëý/‹¬ªC®›’סËÚHYHQÐ� L8‡*©¤8Ú yL0öåPÅ:4caíûöˆ€E)ÂãuÓ¨š¨a‰†Ç¬7¢ŸSþ,®âá^{Æ"¼…NoLƒ ùÑãñ &å3 ¼wŠ²Ùºúw…]òmÉí½æCðŠ˜C°¡³¿9ÃIcLÖZ`™hE�”÷ã«ûþ�¸ùœÓ²™Œ0äB1a×#’ú¾?<ÝØ" ˆœô— Þ;è ÞÝxºkø?à ўB2‘‡?jãæ¨�_Ág¶,\&‡¹¸Ñ°Ã†ní<<~~¡{€ÖÇ%pº4NÅíÒ¸,Ó‘úVÜî&Üžºy |b²Þòõª–¡Sñ°®o¬° ú« ÄK$X7ƒcÓ¨ë/fã~ù$Ø+šñ;òOï”á#¹:âo¥àÿ!¼žb… ¶vA/Û¶mÛ¶mÛ¶mÛ¶mÛö·lÛ«÷é>Ý;}òW2“º¨7OjTjfTÙüacD¼Ú¸‹LñuõE’T(o¼zp/l»Ô ÷zjšY° QM%„oN0hFÓöºTk,(² ŸÀÎÀ$±ŒÎnËððÅÊóš�ID[[…²„sä ëèurÖ6=ö¢ð‡a ›ðϺ70IÖ¡ ‘ú_ Õ<&h�ë›E,?¼œBËõ/‹]U:K‘ºX6~ÚÎSŒÝÏ:kgö�víÊ[• r,ÙA+„ÝÖmp:”ÕÚ»dÓ/Ù©:ŠïìùrC·¢�¼ppƒ¿ÔD¹{á\C±Ü蕯‰¡¶¯YÔõ°5zâFÈW4Kž)¼“dRެj/¯v¿ðŠ1á'#%Òä~Mc—8¹¨Ø¸‹SÎÉŠÏÜÚTÌs·`�Ð\âºi;Æ¡hÑò[ŠØÈ”ˆ‡IßÞš­ªëð [8Xœ)‡V ã2bV 5¥•q·Ö‡£ÿ*-7öD´Ì¹E‘úo ñ®÷ #—8 þ‚ÝâHÕ¨ª”w…P*7DË#›¡†^Ø–w„¹Â«:IšvŸËšõ õ‰ä�^(È�f‰Xì6tk-JQŸ�¤5ù5FÙ¼+/˜"]6Þ4” n‰˜«8n6™¡§ej÷:êÐc7¡à?±ûmòu)¾„žÒU¤Î E{ÙV5P$Ð98-§êWÐøœ‰©ö2¬;‘‰3�ø,*]b îLAä² ¯¨j@ó�RyIQ]{“®#¹’„?%@ yDÇò¦-_ƒ*Gå˜qÓXƱTÌÙ呺«obëöI;6£=I»m,äo"´EFÊpi¢øÑì5è‘)ãoÝþ:~ó¤µ×JkºcÈkÿ±]Ý—ÊÝ).•ã%['ŠoàÌ�» •<‰Âõ%Ilw‚ð? •�sÖå®ÉN2ôÐgio;ç˜n‰7Âß·–.Kýt S =Xƹ°]U²V¼Sa«˜ÛavôZ!LÙ¯„*�ãxÔ„z¥ö«}tÉ=µ‚'ÿˆi1 VȵwPZfs‡Ý­ewF.yÅv“’ôtV’©ÀŽp6NžS™?™*Õ$׿ÃýÒ—g¸Eˆ—Õ{ÚYËrÀþ%™U>±!S^ùQæ­œF]˜ìØQÆÕ\¯ù¥ᣠZŠ8¹³RBt–†¸¾²wï©foxJS”°Xàu>�¶×»V—¼Êtü�LÃr¦TžýûS¸ÜâH±Wh„¸ø\£¯ü¢f¤(BܤÞ(Ì™þQt;ý_ÊåÚ=I!pe¦0�¸Õí p F â.ƒò]Ê_ý*¯“Ü&C Ÿ?Ãâ{aA8fœç‡#¨¦¶Öý×òÛ«XTÁ|`…²¤C¹‡�×pH‚1éÃÎùD¤3yBz™õ·•39¹J÷åBüÕr|0ëï%?ƒÝ 56?R,´’g,ØÓÀÐÔ Œ¿´Um¥æÖV_¤¬ùŠC"SÀÍh,Hxv>Òrßoʯëж$�ã|\ûÌàpîWG>TÏÅ*ˆË®2JŒÚ(0>�Z>\üù“ì ó'ч• (¹Ñdá#»uQí ´ƒ"VXÀ‰2 ¹à1ǦdG(y,¬‘)x„;‡ú1àÛ³'îl 8µæTÀŠlXíAÛ—9ŒAhŽ÷½ø€Âe\Á>[Écòð^kÏêÇH¼Wå÷ŒîàÓ-ðRTxÌŠb·/ R›ÍÆì`fh%Ö”cGf:îX×hd�m<…ëž_ŒtΡ㸈ô‹ÁÑÕÐñ~×—Õ{B Ëiv¢ÂÐ]óGùì o˜“ØD�³ûLm­¡7´úeñ4]dr„”bµì–\1C/sm0qÁ´¼b@y¶´«~fŠãjI¢È‘±n$Þ”[~þî’§âÀüÎ�‰µƒ®nf‰Ìon—Ç3WRhªMa.Ä we©ìj ü$Ë¡�Ŭ¥µëo™èy_wÂÝ„ìH!9 T(™ç¤ eíŽzvs#'—á4 ™•Òð8(pÜ �OùWýk3ÙK .| áÍ¥Láî1¨Vª])�ñÇ-r‡ÙIØH.�UÂ…Fæ— /Á˜,øJºj 498å§`Ôw]eÚ?v®5/-Ñ ÕÚÓ½^‡à[¿6¼Æük&Ï-„]F9yߊxÖˆ Ûf$T4pu?¡É.<’3I1þDÀ •jñJÌÕÞ“®d_®$óœDf±ŠŒu�šÀè{œ9TuU«PÈâÄ8ZE 3'ŸC¡PNC"¿×œ½!9¼YB¯öî/=©!{}òLV;fTLŒ¶¬ Ð8Îð�¦_¥àÒF¨ÍZ±Xò©•­=}6ˆ5Ù >t�Ì›­ðÝ¥9S‰L>ôEù�Žtx4üåü'îÑÍè2ý])�X¬;%¬9^0.#£kþNV]n^!”Å<ðk¸£40Ðr½“‡žÓªîpƒ°1ƒ˜)B¢äéeOÃ.|ÃÂê.”MFòFçvnÞ¥;‚b#UMzZÓ¤?”ÐÛiæÕxvœÕ¿vûË|ÜäÖ*;Ñ» ZD©„Ÿp¹~'ý#YN»™%Âmx·¥%.6´§GL@§0�ÈDBí¯g �¶›dxÊ·ß‹cµ©'s«ËÁ\ªSëÊsêF!°9ý “Àžác ¥ø”5gVмˆò‘~ ‰K‚R Ñ BÛ»Ó88åƒwB“n­—&�ç”j#3ˆÎ}D>YUÓÈôSINkµù=¶(ì "u1v¦µñº6µº1‘Ü�³žé’Ûí0JzÍnÌ9Hì—ŸØä'…3‘T³é}àINîŠÁ3X‘Ó2m�ðnïË‚9•—cËš›¿—.;¨ót1jº9Há©Zwû*_OhOpíЊÝò4ÈÇRÂ�†]øÂ®Õ� rYNÏßÚÛ©Ù»$M  7™^寃áSƒÌºc„†©‚% Ѳt|J\PÒƒ[‰XU¹¬ƒË`¹3³6§èxœ…Iß*1<¢RÊ[Y¾Ö@Y¢—�6gò �R§w47©Ã3øª ’Æn~k:niÍp”Ø uNαŽ+zöxPÍŸÂßßÕºÁ=¹2,Ë€c G=|d©&÷™fôDžÆÀªMå!ýØöfLcƒ—Ñý!9OvÑ.>hÆ$,(u"çÏ™%Þ?h1ØaóRÂß§�píR@&¥ÅÇ�¸ö¾Ý&õŒžŠ`â²x„;”ÕnW$�=ˆ) ­ÏúÃð §ýµ?šw·ü^ƒBu%è)ÆM½‡°x»¬sÂÀ9>Ý4dyÓ÷¼Ž?Y^©­sA/|`°Ó�ô·ÐʼH¤ybÐ*D&*ÝÇ"ÄûŸ—¾ºå÷WT˦̖}ÒŠvó‡$ W»Ç‰ {øÂÏú¯ß²8/Å¢ÐϵwúÊýæ¡}`>äpoŠ4^A£*‹Ó·äfää•MÌmªB4˜Q„þÚg0VöY~WrÀÍ:~y«Éü #§Êí›÷œk»ÛOZžšD�¦D„¥ ¡xÁ•å®ÿ '>M„ “.ˆÂyvŠn¿‰L‘´<ì[2$9lÜüzG’5-7*ÊH6h‡<ä¿xoü_�ȹqR ïyv¬³Z‚`9Vý¢Xkä ~s_EXLs PJ³. ,»ÕQ¿¯©V¨hó^ ñ´7ú¯4ƒnšb>ðš3 š¯÷wP ñ|¦9¨6ÎÂ.¹Þd‡Ú:D²b{"錟p_E= —W�ÚÔµNôõÚD è$šð{î„]nõ�€Zl¤Ó}Ö'$��UgÜŠ( ÷™åeß­è_E�Â.ªd�1†þã}γ¡üEX OCÿëÕ*6|Ÿ*�‡ÎÐRë=_v»u�—|–¿ÕxãPëÄRjO„�ÏDÉÂúÚ¶JNehãeÃ0@gÊóÂùˆc�3P% ‰öLÂêKvà”­#Öæ²ë`Ѥ�ãã y@÷ÛÊ;ιíÄÈT¨‚;z¶X ÈbÁ¯¥Ôƒ×ù„ö.�è“8äÀÜSo"¥ù!fç4ß©)3”Àa2Ô¨?Ï£\n˼f<65‡!fÈÇ x ÖÃztšˆ8™1¼Ÿ½Ü[­¯…u†ýÄeIôÅ$J„ÑLd’8xÉ]×emE¤óÈ¡/‰8ÒA“*݃ºD%ouÍ XaºŽÍ¢=šSYͱ#u;ë�Œ‚jPª=ÿc*1ä33ìLeé÷\Gž×u†¯™µ©}XïÉ‘•è|5åßT^8�”͈ H™Æ5¨޼¿�‹o‹5ms›YÙ4…ÙÒKõ�ÑwB°Ÿ³¿ßbÀQíÉsÆW�¤Ñùκ\J‡¹Gås•c.ÚŽÝöpíVHšÙd'Ó#ä§#N‚ô¢„¯ÈÉÿ0„Ä-Uo1Õ .z÷þnIüêWqp=«h’ Q{Úëëi¶ã­c¼F–ÚV�Ç&1¯t½žb½y�È7|áý¨Œ¡\þÁo�LdxwPë‚B‘iû“¸B™Ñw=«Ârœ••êÑ0m˜)ˆ×°×x¥RÆäà»Â¼ã¿«tNn7=åÐѼI`LA í†"_¢3?\¿³¬C±x‹NF§þ<¨› ‚7"òô,0ü ?–?‡©Ý¢q"ÉÑi°Ë‰)»Û º±ƒhû_ò¶H ƾo�Ñc€%¬úÏO ;ÜN–�¬û.»ª+¤<¬òÖø…í<©@#dïMñiª£k[3–s°M Yî6ªÇIólñ-áûûv5c9Ö]»Æ2éyê€ùïGç&F’{?mGø@9°1¦”ó5Wœ!Öš5¥¾Ò¢3T±ÔDî6&Áw‰`¸CÄx®¹xIcÎàç’YC!.:³ ­^ëd^‡œÈŨxæ#�ú¢ ãÄZ®´"&mmLбIžz‚Qí¶eL_çØ__K«~m�w<”ǪV–8> è ÐAôŠN!ÁdJå€4.1_ª +úD¼ø—�}çæoÀ�)7¼­ÄÓKâ©¿T†X—)`ŸªXGc0äóŒ-ç“¡'rgÊjˆ~ 1ZȺ³ˆÊ/|F*è  *<é�æí¼‘ó—„th™c>$»�Y½§yÁ}Ç>èŒñåw…ÜÙXúONƒÙÊó|?ƒ!¼ÿ–Fh:ÞS�]VjtÝèä ¦ÜKRý0FJáéÓK ¹Q›Ü –¾¨ÛéÊÊ7§HÝ® íl# ;«Edtº44ìny_?úÚR)u�yã›FÅÆÇò¦~#Ê÷h&h�ñD×(§ÿ¹SRíØ·@^Ó�M³ì¡Dh_±5.à5$G¶]‡jË;³ Æ$å2€ã¡‰½)Þ 1ò&pµ{CJ¹ñ7YRE€@cZ‹m´[XÒ¤vA"½GWÿ«Ia•™†hgŽ.²á„W¬s‹DrÕuÅýÏkiÕwˆ*ZÄ1¦5üb1’¶1½æÝÔð _ˆ“»Ô Ç�LD"oq´‡EY*Qˆ¢¿½Óà`'×\rAVÉd3k^Ì €Z>�Kì�?÷êqýJ«¾0–ˆ³ù™Ûzàßã$+ ÍŽê*Õû«°ËaÏ˪ªdÑ…äâ.dê�-ÂHÚ $jc 8§�JŒk4 '{`ƒn‘c'm¿Úo´�ÿ­(2°@©I½gš+éof%dÈ® ¢779Щþ¼°£XykÖ¦êIe‹æ[±ÞnгE¶õ6[mn9_�k@ —ËK»O?ýþ+ÜÙjôÆÈ£ ºãxÀË^¯5ÿ¡r¿÷%Wˆ¯Âr8a(¶y™†õ— rá3b±cÁdsÉœl‚Øsj’¿éƒ«*ç/£jšì"Ã_“j7CbìÕù+AˆhÇçПêŒ&!—¿3> Yl§ØÖœá5ÚðO¶.YmkJ1–—Ü ]¬ë¾'ïÐ&Õ0¡{Aý;y$K¹&6ˆÑ9Ñ0¢r¦Åº$t·ãç›ËAÙà’ø;µÈÉ{?è@žášxˆehy5KGÃT¶/êj‘ŠÅZ#mZ�µ�•¸àìIËQ[5y‘32_.Ú:sâ)±‰’Ÿ¦®ã/æÍ`³i¯ddˈig’|òáçûÂA™«Å~ú-•KšåÒS²‹]ÕJàòGIÊ'b/�Žwšß0U„cñXÓ¹ø¬:#›!s» ø‡&ùSÌã�]"õ§aªÈZ &–°©šËkC´A[F[Ð –Ïy‰ç¾ùPÿb3×?’»ÃkûuÚI“ôNñ|\ÈÉùGÇrÀ&â»Ø‰y_¼�— ß•÷–ÐÏ¡q�£~+J.4ð¬Õ›è4zB£Bù¸´S‹üvK(½GH#Z^tÚò[î‡$× =2öíÑ™ä#ñrg#|i¦8G¿‰;W§�Ü1ЀOÙýààÔ­&4âËwÇ�†*>ò�‹_Xñ Œ*•®fÁ@åèŒH�—°ì?¨ÖL9œ´€½Âž³C2‰%²:Œ¦!lóO™×ÃF:ÁZÒGÝcøs¤�Œ™!¡§¡Ë@ ;7Dÿ~}¾îjô]n‹‡¾C«"�ü›­öA‰ 3º–”†úýV{íi@÷vc�@_“ú·©Ÿt½n�[�áÜ]u,äT‚íƒ-^L2Æb•VàFÚ±4?à§ìœÛ4ÐÝö4b,û¡KäêûÅŽ^æ ™ìeãs¬¹ª@˜ýø5ä„»¿Cè+ü®$ÿ`áû†£R„ #?�>+*pÛ¯™» p©Ü¹Ö%Y±v¸ŸK½þm–c&}&¢¡È¡¸KÕÀ (H1@p‘ C}96gW ¢Íø ±°TZi^w|cF›ç¿»º€)õ¯æÍÌçÜ#_7]U±v$4„ÃѼ™¥m¤­ÙÙ®'z~ºŒkGIÛ–iO¦ R¥½ ’ÙûþôT�ÅIÿxvü >è=‡û°+Ùl\˜x4”DÖ?Ò¡ U\�Ø(IîÙ\¨ou~ÍV 7‚ªa}.�k€~N�t2ý”Ú– ŽvûN­ÀH:!�Û-À_ƹñêJ1§SÛÑË-ÛО§Ï éÛƒ9emϺӰËãe¹w8CÂ‘ß üà©O6 *„t<Ÿ—‰hK‚PoKÄ@N8©¼ï–p]ie�Cšxÿ¥ FÖk$Frê¿ßÒïÉ|1axßM“ð=ï¹.ßH]y‰‚‚Ã<Ê2̶&ÅÞ“3�Š“×váŽ×1JÜ€�BÖ,ïËôz¨,¦yw#±ÒùiØ ÝCvC4~ßÎÓç=T‘¹ƒ ©;êuøF¡¾äµsU!w‹�oÝøŒ�nEµ¥È@A]çã¬К–_E/Ó¢fÎÙmË` 2…cíÀÂåS¸b¯0Ò³:a xbD0°ŠòÁï`R�J¡¯J~pÏüÚñðÒ+Öøy!²,ø>­wÍ$+¯å"öït:YMwxÇlq‹#ÔÑÌæ>‹-~(6¶ïÁCL~›ÃóÀ»ßçP¾tO º�Tì»jhÀ�xºñ |‹j§ø.¬ˆÕŽ¡�MÖÏí~µßXX¬Ö«v8ב ¬ÎïÕëhO¹§é{�mÇß3à6[6—ÜÿekYäóˆ­ÛD‹éM½«i½Q\F“%е¬ ¾ug¸Õý‰ÔýhR�9û¯ÅcJfç´ŒÐ`��oà‘º�å¢� W}Ñ�ñ+²L>î¤fÑV�RŒ€þcï.�4»„m±ívˆEŸ>ˆE|ë•…›;«äÎúOÏ'I0¤R�;@Ë­o[CèUN¨­{ñ–e�Ï®¨»üܤ 2Çì˜&UR8<:,¤ÚÖkT.¿X›©êˆP3�°˜iLÅWÔ[ô¹š’¾}A{Õ ¹m`eÎü›4< Ø[(ƒH*‹­à5ïoñÌ}üðcÚÏ$læ«�TöÕ�…A®Aè¢Z¯«ØãMûG0rhè-ö¬óˆ¸g?Õ)r¬÷ãÓFxïvÍøí;Äíu~¢Š™… ùŒÜÉŽâ`�X׿Uú¦œ±�5Ë« Ç‘2 ŽÒæEª‘I ¨[ñôÂ3Õh" ­yùéeeõøí\ Fõ—©þyö1«ñ L…&ŠèÄ<ƒ�ï kNLýbjJë+,ª©þYBA3o¥bº§­zâUãÈ¥fÞª=›áÆhyn "WÇ�b¥;ù•5§íY¤ì“¡Õð@/Sÿ¨S*yûEN®ÿtuŒôªîe4úzloAZ\ ÜøÝ•a#:¼÷Þãó 1V×)’=ÕäDNUbI]óYÆ4j„ÊÂv=á «/>µÖMCXñwynß�MŽÅÓL´ûS³¤ù4é<½yx||µÜÌ�cÿóTÌ‘°[Wðo´°rLÈ0OD!9R¿ßúHgqN5(gˆ·ú$j�Ü¥þ|í^?…Øý¦Ð‰B>Ç>EK Á/jY_²j~ö:8«B=…0ëæ±ŸT­Œ±BÓú9ù³ãßðZ¯i‰ºñŸƒ^Z¶±m©ŠÛ{E˜©wŒ…?È[c›áö†�E¬]׉™¬}*�ûÀþïm€Ø€2/“M €¹žj×Ì!tB/¶¤qõ¯³¼è‹Ž‚Y íw^ëóqC.;öæPé;ù/°xºƒ&²¹ÖyõÌ»Ã+»üžÐó‚N�}úlÌ×ôI5Þ ÁÛ/q%õEœyÞðäÔ0ðHÜ.�\]?0¢^÷—ÍD« ]<±÷.ã]gþŽötOùärf—wkóÉËâ%ùé‰Püré//í¬„Îí|,4PSRçsÔƒd5ñvxINAˆ¸ÎaÈ|~¨Öî úngz›ÀšŒT–¸�öë#ÆÆ¢'´,-,ȬÍxC§eBÛ_áQ™ÕZV¬ⳞC�mò©]¨M”€ßþaš€€Þé‡ ßÅQ *Ô\®‚¥g¥0û ƒ`Ú+¨¡<!¿¯pŠªdqeŒÐ¯±M=”ã=nÿ×üà¹ó w¤¦qC!F÷XsÕ‹Ž‘Î ¾´:w¢•ôË• Éð‹âG•|û­üW>ÞcúíÜÆÊÆ ‰/Ç�|¡°gcžìñ&ƒ°õBy8¡‹KÕrw»¸0fþìÜ­V¬Ð½ê`Ÿy䬊+mesu�¶z�Ô£"à}²ÛµºôÔÈùÁz/ÕµãªØ}ÂÁ7ã'ëjE×Ù×E/æi—þ`½ÌÒçíâÊ,ILžh«u}Gý�ø ¥zj|Íí¾—ä™.GâËݵˆ±Ù _õí…ÎÑù5Ò7¨ÑÝ?ÛIÐÅ1>nñg[Å U 6jòmü¼2ÝéïdFLˆêѽìþ¦áÊJk“Jz¥ˆ’†æ}ï æ7/<œmÇ‘i,*»Âü¡mÙ¨,|ÖåŽÕF53Ë1ߌ1ºÉö¨ð&äÈÜ}U׋sß ZUÃánf¾%°3«â–Eæøz‚i2Ä*þJÒ‹RÆmöXmt·E\¼äï¹uÊ«G5ÐÜ5É… Èãg»7¼Œ|w’îê’3¨£ÿŒ ˆÞ'ß¾K5‘â‚Ñ�o8ÛO|e5Z•`JÍ|?“!ó™´‹b�Vb™S~…»¹4a7²zõùg1›*5öv&¡Íè�®E‹’J€õJüŠ ÂF䈹`"Zì­<³é«Ù§]¶Û³Pe†f�ù¡ebÜ ƒUáë‘ûZ½uâ]Û5tÏ…XWÆÙ�/¾ÓõEX²|„·µ‚ùÅA é29å]¨ëò¨ƒm¢è9YŽñ·ñ{ó/ît•NÕ²“ÒPkñ`ÚÃì©úÔw÷N«pÜr"‚"¦è k^ÝÜž¸ao¢Çµ„ÑÓ—NoJq{%D�Ëíò¶DÝdh0"7ýÙ�¬éÔ#ϦNJÿé�“Q}ÿJžslk}«A¹…寋¢µq‡�]=Š,OVËb‰rYÎBè6µÜCzoÑ`­N�˃xhIÙ†À¼Ë knÔìE Þ ™ñÝ?¸ ;ä@óû¬g$¥úˆZ2|£G�r<ñ‰+N+f¦È˜¼g)O³–†óíSÄh˜ÅRæ·V•¢¬™cærB;ú½uu´·Jµ½‰ÝÌ0ök Ï””Z”Ð(C zY"üÎÛßž`œ[Š’gtµÙÝý¹ögºgáh‰¥^Š»%,ûãl|Py•@Kòh›÷6o—ãÀͨŠÕZϥ؄›Ä{J&Ã(·AÔˆ"Î , <¢,Š  &S@ΕúFŠš6=fÝžŒ×ÛÝ)ë6ÒP÷5™m–9¤îC;ϲÇÞMx=9<44?X,›ÝÂÛ#îM¤¯B9ô€I…ìH÷5¯Ð�m¾¹œ,ë4» ¤™Ÿªl®á:4¸n{}†±n(TXkØ=”hä¹�‰!y”�ý-°éŠï–Õåñ½ÆÖ›�H±ŸK‚)õj4˜,ê$´tb7¬ˆ|Í«Oãö=t g_wGje<#ÔŽìÂôêUÚ”Èñ›Á¬_zÂé|º �G‘±Ì@ °�Eç$ ¥š~£"[§õ(**-ºî³1Vn„Á…›R&<×èF£Ó·.r¨¾ßìnN;5]p.> Õúf QFM¬‰‰'ž=GÍKgT)VÕrêTzTy ¡åÖÜækÇ]7—eà22ÁŠ–²)~Ð[€«¢E8ÌJ÷¿µ,õz˜ê^‘2zÅ9#l�Ž«ž¹‚Œž?î%a;’4?˜0aÕ?„«$ÏVíE›�[?Äc5{…,·hŽV¦Lùô˜ÉVDÎgñl®u£Öø#ºXVW26P½†BÜ:%Ì–åŽU�Q–ÉRgPÔW)`1ž¿ø]‹çôõÞÀ°ÐOsoíÅk'o\rgŒ{÷KÓ94Yöø‡‰¿~aƒdÐÜcR^8±�ò‚‚‘6T[hö�z#»h|“êm}lŠ‚Ÿåêß:åÁùk=õÞKqévZÏ«¯»k(Xû¸BnÆþ÷†�Õ"~žÂ=ÉoŸFÐͦçŠsNí°3ÀÃŽ”'A -ÉRéMÑÍ�=Ç€É O>d›Ád¸‡¯Q]Å"Yš‡›ÕcUú×ÿ±§MÛ¥h©*<–šâ‚r1‹sE…Ó“/‘È'‹D§ 6ôq8q‰_`æuÓ‰@={/JôìMË5Áo`>óàñ³ÅTº H óR".ójò—8a¿/ø]þÎ܆bÂ8EB{Égé¾ýE*~¡ÜÆ0ûÖ£óª4Œ÷aÎýöÆ/�´ët_b²¿†?êñØxñÊYàè5cÌ�ñzpCYàµù7Ÿò7®âÙlYMj߯ ûRÈPróÛz�#6‰ßÆ–þ"mùú’l;ÍU©„µÊô_$&ÕDœ¦LÂsý°]�ùHÂÚCJHÄe¦ ŸQ¹½_F´µ>`4@í¦ ÐÐJÎØ`Ý\!yæóYõu�´—©ÃŒÎ3Òaâ€ÏO…‘Zð|X‡"m$å0õœuo5‚|ÄÓƒØYÔ“e [ëð( ÁšÁãÜ”^NV²P½Ks“Zb@¾éþX5Û–OÕ0rÚù…ºò{’HÓ�52ö(…ED Z…Âò?ŸEÌBx›³v/å_äéËöVz§”#Oè˵¿W™ô Ì)ž` ÀÉBúéI$nªŒo1äôoÍd]PÔĘV¨-Š×‘ˆ9%[“0+ EJ��…z㜅²eSð^à7ÍôrúòK‡ €EöÈ3V}xm=í7•�ê)�Õ,³PO,Ïðf†t~@/ÙÙtÉÊ2tÚ\?Þ®›þ€¥: ãr¡û´ úfÅ¥Ü#¨Ø']€ÜLºŠ|ÚÆ”Ö:Ï:Àq Öð‡ù7b±Ë¹®D”‚Æzxÿ•ؾî‘Y@AÚìÕl77v2 ¤¹CåS¬ôâ¿ïÝ~hA³Á_#í3LiŽã/„Ù•?ûMÒdHœ·í¥mÿ(K=·U±ã¸Xf´Öå<˜>TaÄ£È˦Îqi¶5ï•°d]e%Ç}é˜@¼cŸÖI²C¹b&)΃תÃDl•'ží<®š‚}ØnY#|620-­Ž×ž±ùzòA*•äi�I §¯? ŽOÁŒP}�AÁœ)¶Ó $=ZÛc?ÔýZ>w�Ml¨#u¢ÍµÕÂJL‚ ²‡²¸¡ 2 ä~�K6¾QH€pRÆ^õÁgæ–}x æØÛ¦¥ýŸpÝ’d. Òxy¹ñ_”#�X?sæª)¿ÄuÃùÁ\ýý¤dKŠ%ânÍÛ§S9œˆ­¬ š+­¯f4S– ã„9ÇH¢ëaG¡ºÚB±çö˜ ¨OŒGÎ;÷9¦�X½¹¡Ÿ3‚£©}‘Jd¼.²–|ieÁ˜Æ,6k]1™sˆØ02™ê‰5úœpˆû_Ò¤!KÍè¨Â³%ª™ïÉ�oPœÍQÊ>…/˜6Gj}Ð÷TŸ—Î4‰ßYkÐzvå &Âj뀜=)èJd� Z¸>¦Œy_?7Ììpü€ÿh³nyc¼Ú-¿YÕ7ªxrÕ�‹lÕfÊu² Ôú Ž;ÕÖu'gU­ TÀ Ò›ÂÎèz|Ü�N‰e™±œÆfZÊv.ä×+‘‹!Ãã¾…L[î/X¨ÄÏiðbü$‚gP<'ÖQ͘_ä‹™çv¸7Y¤ýyî¼f×y 5¿ƒü– ¸Zü²EÛŸâ¹òäþ±¹«fî2’h*îƒÔÈaϱ R‹•C£r0¬v¢'kZ¢&í¤…5½ÃÀA)1q¥£—a› mªXÿn=ÀñxÀkòÁÁsKUað/|–ÿ6·Àκ[y{í©Âcû˜Q*̪‡+´+ï!ãÈæYíïò§ÑŽgø´�dD8·ù�îºx貟Z¥­>xÞïù|¯Š½týB²;ù§Ÿ€á»Uæ¯w+ì��9á‹AŒ¤³� ò—_5AíXÏO‹àÞ¦�o ´  4wm_æ0‡.Àåt"J‘òã˜P 1VÊ[=ÃÅ]!Ôúîfv-ñá=”jŸœ�Ê®ˆÂqò¥¼†ñ ˜\_üÍ€GÒhãà—ˆXÒ­ ëÁhDÃh“!Þ7I·=¸òåCßÛ^}F3Òo.·'ÌýõHØ(ñ)%ÆO³$Éò,Ø–=€úªª£�yZù溨"ˆ–TÈ,Ò:o|U{M�úaö,³„ß<Ð >XÙŸÄ�u ‘ÆÆ¢—³„·Å%ê Î3¾þ|à›Bƒhi)°´®ë%ß-ääwÙqKq�±s?¹¿V–iýg�s]ÓïÐþÅèÐÖšŠùk\?ùá±6ô='ðaqî\Ñl¢�õÍ¢ñ—… áøv’Q Öƒc­GrŒ‘¦¥õéHâ}ç—AZï!¥¤ž]G‹•Tiêý'2Õc∠#V•¬3Ç鋳ÈgRä×r#ù¶1Pdµëžqÿû¶xiÑ_ È ¸¢WÔš(ª†Ï¥²$ªŠ“vÛk˜6ε…�IˆNXþK�:ÊwôÅÐì²Aþ9›AHè䑉 \ÐìÇ�ô¾�¾élÀZpG©<ŸL6›Q/Ü!Ø:‘|zÝ99@Å0wŠÏòÎ5ž7ðÆŠe›‹ç#[2èîØ0¦U¼…)o–†ÈjêÉæ�⇌|Çù"�1"ñÎ'¹<Às-bT 2oª™kN±ô½vŒéaö]‡ù'{n‘°š¿¼J⟚BÝ=Œ�%?bo*Ø]CL)ô1 üŸ >W–¹T¡…¦V¤o˳ëÏö„Œ .©—8韋 Î*Rõåû2o³‹òH›ãgüظùÇ"hœ}Øæö_<ï¡&ÙûÈ»hN©ç¥R˜,H–ö‘U9ßÖ~…-f\âeº•0 úÙ¢¿’Ô>¡6øû!-:¼&èÌGuÆFŒz ½Ã"ƈ¾ïLÈàû[Wz7 Sd¥»mÿ$Њ¬»‘XSÓŽA(ZÞ‡³#n�±ûÉ>²žÑ‘>(ÄoÙ²-Öƒ’u´„Òœ>ø§?ë5¾C„§vâY‰ ðd¿#Nw3¹{8Û8/Šh©=PôÉ`âvæq<4�ªþŒº±à�¤c2Š}=Ät`¹S9²OX›ƒÇ­OÕ|1<€Þã+Ô"ÆFu ö+Û¹ í¬µ}ÁMj]6 (�0ûbBP×�ËñÔ ×¸�²Ì0'ýcã+2xH›)Vsý~'ƒ«Ç`Ë‹ý¾ Â¨Ëw ç,Z‹•\)üÆ 39õÑa»–V6ßJ¸Op˜>›>Íö4²×têNˆe�…i=-f’ulƒ ‹�*¹ÀFã>„„y?bƒ¸J‚3l·Ÿ.$Jäâh´Üì�Ý@¡pã)a«åã÷�€ÐpS›ò0[)Sˆù�B`âú�OØ´,†ÿîÓåÜÃ÷¬”Úb§ÙýÄ„ùˆÊ/™,—�¡mªRËMÒsжæê�>vaÇ•}ù\Cû9%öäðÉP™ k§¥h5YxVL�gòC‘ÿ’’uÔänÿÍÑ—å5͘¯3÷ÅþúúrBüðâËæ…úࡱÊ•� ˜ÄØAÁ�7Æì‹«í• 1Ñ5ˆ5äÅ‚ ½ŽÃgÅÛS@<Üy<œ*J8‚°t8WI7'ÓV ÅÎ?[†Þkpδ˜ÇB×Ô£ÐÙµrÊI¥‘èìæßùT\iÄß('=ǸÀ�±a1ÞÍ91úü9$lúÁ¿èÇIø‹;í»Ì©v6¶}†\ø#]Ê& ±åêÑ|7YÇ¿4o‘;”걸‡ÑÊ|Η �C ”Z6y® €(Žô Î¥0ŸD Tòúõ¬„Uk�ˆlÞ:Š. fÇ{26UH�¸± …¥ö;^íÞ'º¶VÖh.ù´D+kö3ÿÒo½ýß4vÄž.ô%Ezù=szSë¦wDuÔ(• Õ…oÓÓ“„¢O9“ÒW[@Q�Û©¯~äwYsÝS³ ty_@9³ ~n~?¢”ƒ¡X²S/Ç*�1ûFÐù9{8á´ŒGŽùÛ’ŒÇ\¢ÖW�#HjgÛÐù 0E̺ùÆœÁhÕU/&EÎAe—ÛÜ`Sƒ„»RõèžØì¨ÆIòŸ ›ñgÍ€@wwdî›�©E’7›vûAÑM;žŽ8-y¸LÛ# S�Ðnbˆ…œæÑù«! {qÉž¢G…Ì%DÖf,?[v¼åýˆï©Áº€3Çàt×®ÃY]‚Ä»s-· ½/È™ï[J“}±YÌä´†G)#ÿY‹Íø8é50JV}|$ºÁD½¥´ê¶«�=7,šc˜TôĄ̊¸¥†Æ_ùAŒé¾‚Ñ5E9<*Ò†d?[Àf.JØ[LÆúP2�z¥¼°ÄP€{ТHÄ ï—ú¸JWGGþ†„Ý-'Þ®‰"9—)q­X W Y�ryÌ„pº›«®È£œÛ7h�ðë +Us"ýÖk§É:Ç3ëev� UÈ.<@@®w2GG¤TJÆuNU„ѶÞ"÷œ —«¯G­Laû¢Hµ½§ÿ¤Màs&>sW¼ø# ¥h`ÝädYEê¡÷V‡Ê©$¸ ‚h`}1{/\¼‘A77© åÑësGÌ{árAÅìqìn�v@D¶XÚäV Oé W3ãýrü~zÕWµòÌišT«i‘rÐJÊAÒ1àeNîµum tüïí.fó7&Ù·¢£ÊI²j‚P:BwÈ9+Ë;|côx*ë‡'þaÙÏ(¼à™þ5£4RÙL7Tµl)cô^f8Ó€ÂpÒ>㥲k{|ÁRÎé+ð5”½LÂl{?†sz$^S>�œ¥þ¢ZNN˜Añ͈ëyd+^4�ÌO}ýº-IM/V´ÌZïÇËß·EXˆ2½ú\•z(4à»­¸õÁÙrÛÇpópè·}áŽÅDf5„Ó+ú\sW³o:”ÂZÅÒ3eË8«â³à­ús‡ò�‰&É`Þ³s-ìU¤EZÝhJyºÕÏáFvï_èø#©ê�7T7WÛíéˆnÖ%NAgVˆ;<6…òR/Ï™nÕ�ü¢ß~°»1£1i‡pQw€´~�.«åVêL'òrÖ§t"9_Æ:ÞåXk¡¼OëuÊ6ü+Ø�Êå=`Ü}ûö†ðFåçrš4•ѫǾâZÛ³KN©E)±ì™ÉÒ‘©r�ï (“·ÚÈÐ¸Â°Õø¿¡ÉIá8`¸¹ØÞ²ç¸ÜêÏ‹žM€�Çðôº¯Ï\ìAº· ¬¡´ÙJ” 3�÷*‹gÊ  ¬ÁcéL)ôÌï"íbž÷|‹²¨ˆ °qi›Ù�DºO—èùé-b’¿P`ñ‹zQÃÎJÔ/îBФH]əߛr�?à�epg8úÀŽ§Ú´:Ê[©2£Ô¤8”âì„M¹Ú� öšÈ‹pÿ¥õ.Q¢½¥WÍy¹ä#,OW¯_ài NqBýB*Sïi2Ÿ_�Yö{7‚ޛ7¼€‰æÛ©ÒÔ þãˆçœU*PØ«melƒiÙU?Ì¢;dð]›Â¶4Ðíô÷ðTÝ·Ÿ< QôÉ4çòðý+<’J­†¹ìÀjŤø 7Ö2P· –*<é%±–�Òõ:¸¥V¦Vù¯hW§—,¼›Ä×pþÚUVšýæÈ£D›#º8@¨Ùµ5B·¡ÞûX/¸è�"yiiº„€–KÒ§ùa‹�'‘úÅ–»ç›þSˆÅrù¯zì,˜É|6¯¹» �²H ¯Š.a¨£ÑzÿN !»`½F� œ.^�ó¨é½*6ôß²aSGß*s<­” ,ذ¬ö{,ªi:Û×dv4mæÿ�Nв´±ëJ^¬¦PÛUÏ`]W\ ¬ìÙŠ\1eè%1ÓdL¸%¯eV*=«p%œ[^d l`›TM´0a/hú� �M Ñþ!³™ìžS[k³[e©Zƒl]/Íð¹�¨2k0vj«Êë4½ñ1ö8%KD�ár­RRÓv‰vùæc{¬ôœ=õJaÝÃE8›VüI£ç:]࿽»Ä3¼WJ½—Èð´Ë‡„˜7çÇÜ`’*|ÇOª‡�ÁÇ?ír«…–ÔEfñœâiFÊkU»øøƒñZßU×Þ•Ñ` ï™Ú­0¾©ÉÚ\Ò4/p§-/—‹«á8ªƒ\ÕÉÇM…¨øj­•Éî·°èaw. »�ã<Åûî€î7)OÎúKiu)©ÕTV©‡€žyŽß3¼t¤C‚½©}´žŒ ÷tš£yaj¤©ù€Òìç¡»ò~ï]Ùf\%Ú@”!ð†•\ú5‡ù®xÍsè~àR>˜]"QvEãÍq`�­Š¤c?GDšgC5MïjîÛÿiÌ÷ų߆ñ®¿·û”{$Ë?©C;iÎu+d89dUÍÐÕ¢¦é��¥½3mj°*d±;Á"Ê�x©ãxœs:u팋«Éãu�2Õ ¶{!yÞ(êç¦rXøb‹l‰x¨üUu· úœRXF>.“qyïä Eë,YOèé^qÓ‰_ãô&>Þ?TöbR%ѧ�,ó7Ìû£iwUÙ*ÜšÍ º>ãäeùYà´TðOºúíÚºéx&õ=;óÎo]ùÇÁok:°³(÷un…Féaô”“ØÅ&?òx$2÷žM€cÔK«ûû.Aß¼æ ͰÑj„+›ñ9|6Ò­”8E Ìbà1(M½^+r»Ùm�qVïY£<øYö¼f ÜäaÛó�g…´(dM;¾Ô“ÆGwÁÇV©Ö@t;9{Cf>õ–Å&ÉÞCy "ÛÀÞ;1>†Éïà½Vfeœ#ôkŸ„_ë|µóM‰ç²•Š&x(4\Ÿn§•£ÇÖë½ïóo@u}çÙÉ…ÊXb¦’�d²A¨L¥[ؘ Üü®`z߉�u<ÝVµ�¡?žôfÛ¯ hÂj¢ªp¢'òÞ·'äÁŒ?_Ò®eOLL „kˆ Ð &ÊX1æI¾¦|‹Að„&î®ýÕÁÁÉfàt+?¿²ª#F¨gy�vÚ^è9Âq�pJl©s㪅˜˜x×’|<ÇdØ>Kka§¶LÎ—ÛÆXa¼³ºGIBNFxàÂBH`q¾Nÿ’”g^x˜Òv@šÆt™bXiÍô——%P×ð½�çÁhÉú[E$"9¹“k9KF§74õ�ì«k~ª—:½’Ò{àj÷Ÿpu)N#¤ÏrѵÈ3Ò¶¬ëHMÔÚ›9i|<±%¶ýJMhS_Ð7UGr�§Û³÷iíj(¬ø¯OÂø\B’ÇcóRϨÉe9`eY¦_¤wõ´7Š=Q]ÍðÚÉö6Â)·Xôè„!ÉCóÿ-žÎ�§¦qljƒÍ°pQ·Ò(N•9\foá‡_»ý>¦|¨¦Œ‘ÒÇ×, —3…íá­úÓëþØlz‘èaç¦Ò±LÓ? KÎEM(õËÀ„N Âq½¨ bB *­!X ¨í¢EÁ¿Ημ29Ïëèðýîå”MòtÓ`O¬)—*B®vr¢Î‹·òQdý¥wñ䎿̀ ¸ˆŸÛ`/‰KdTš5 ŸÙå\£Påú¡5 ʸ…Œ ŒÅx êÆœz0ըʨoK1šƒJMÑÂ!åð·8BæõÔóYñ«Ýu–«Ñ¢e6#«·éÜ™m«Cå'QÃdð±!QMWÐ x¯lP$Ë\¬™IQ;ë O34|Jmwûoìq–]6:ÇèÙð"l| ûTqÃdö¹y5G?3ÔÎaO¶”Å[¥øð…]¨uŒVbýèÝ®sÙõß~IöÜ‘¡G ûdÎÀÒ€(·l&ÍUa xxÚòœ^€¡mÖ[ú ^ø¬Â©eÈ‘rlöMgcÃ,˜v<*å?Ä'”0Q.Ÿ†LÎf*z2‚ÍWÂìh  Ò[G¨9 p_‡šš};ê÷ì’œn!µ¯àC™;H/ãöÁÍH©Î‹åÊÊñÂH´áupõi{ÐìµÊ÷6И|€¥ñ;¨i¦ zôQ¶o±|”£Kh;+-²½dí,^ÑÔ;<Ŷçì‰Â.…zþ ÍR–­)Ú|<2¯–¾ùšI['—?zNöؘҎ7t¿˜O Û 3U£Ø]1ù%b FœëØ#&ØIeÈþ­­]_õnK¢Ô¼†?` ËY%’³Ç\ñ�þ‚H'A8mHóë,¦x- j9‰‚¹Wƒf Þüø éNmT5½øy TôäH€x-¦J�ѪEÄ k™˜œ¯qšÅæÆ8u¯‚}ñü#x\š ­(2Á$Í8ÄË9™I§Í·•˜dn%Êg¬Ç2ÃtF ²+ïXÖa üá_ÚâYW„—è=Îàã7¥rà,›¬è…ÉÒ³ú ó‚§èÈ�ƒ1Èv*t€àŠžÐ¬br¨ÇÊj†^[Éð£7ä!ñÉb‡Úò>ƈ|ID2ZÛÏî*+is`­ ¿‰ŒâÝtªID‹ ³ÊJ³šél deYl�\,Û¬B úÖN‘¡‡…ΡZ:t(t#Ýj›š»›mbx¤«Ûë ¼‰IƒµJ3Éòds K(�hPG|l`,ýíç³XWŸ«èt“Pß�›ñb¯ )m$ ï„v‘-#'ú„\¥à>ïXãåôö4°¯@+!³ÇΫ,Ê0&³D¯1OW7uo¹–3œgÿ3W; �v?ÉÉ+s‰iS¾ÉßÓ7ÑŠ�4ØYÕÛYÞuo˜�+üÝ ésüƒbk§É7iþëvÝ«®Ç<œ¾I:Ÿ\«YU½·_«)žóÀFW?ð£ø¨a¤!Ž{¸ IÄάa5ÜÛŒí«*"rß‚Ò{›;‰¾åûŽ•‚p§ÞVƒÃyŽáL¹$¥éjo;|ü^ÞÖ—� ‡ õNcí[ŒÉ‹56ñÚìE; Áüqh™�i’Læ./�÷±±Û€®´Ÿ³2•S&RW–éq•/Ë‘azƒwWáÓh·Ç¹C¹Xç£ïÐ×x&àXy®UÔxª� Œë½›@^å öe²áÕ y…fŸà�ØÉ'=/ÆÀyåùѬòÈdûw{Ï:ðZ7\|uâ_�úp‘ðCüÉ«b÷a¶¹µ>’9o`‹„ûf«ñ$DL',ÄW.äÌÚ§^Ô‚ÿF'f×-/²~Ç.‰ÔÇ€³��!J œ±i�6Z"HÓªuø ЍŸPÕžt÷—‰ý!ßÿ^”,ÔóÛ`"ŽZ8'"íxk�íÒTp996p9‹_ö&ü�R*h`ËNnZ ¾_‡ ’ÊIÙú§ôÆ�¿Ó.<ÄZSúZ�œSÂ1>2$1U…DY´šÌåz!óJ²(è‚ùj«®ÅRœ‡V#ú‡•ÄL k‚²­ù÷ÉucèÛ± ùž (o‡xÙæ«ëÔ™så> £"ön(B¨hµêL]®zàÕÐxÁ£\ô=À3|*ÜÖœ÷Ö[¾ÌÌ0ø�¢ €|Ç¡B¼P2G¸•NZ�“/2ªb²vÝÐÇëiœ)ðPZ 2”c,›Tÿj‡r¶z_‚+¬ùúêºôB‹«ŒÍ"òç¹j~6(Ÿ*E¿‡~1¦žšoAdæÍ‘8�\®�m ‚’ÞNÛ_§"F-?4rHyËNpTYbKÄùJû†{~"ÓŠeã{á`ØOe!¦o7* à&ó%m ¤2ÒURu,ªm¥:˜:ðˆ2à�6‰j6+'àm 6S‹p_ôalzKÒn×ÜKv=ÚÓ�7I…2ÿ�âuŠeB €ŒdI3�Gæw6_ã«B?Þ<>Ó ¬«Cªo?ÎðdA%ÄQ›Ÿ³ÖíÍž¬”T!�EóÔ/:hßà0UèÇ€¨·.‚¾äíŸJÿb_sL“8—gÞ�”„KÿK—¼aÿVB¯ž÷¼8Úý¤Úît65<±¯}l� _Å£ dvg¬™‡ÁaÏë\} ç)¤~uÉ¢k| [yÍ8 ­¾Çö–>f�¤[âëBJ“;±çÇ×'ú`ÂÔ4ÑYy¦Ÿ§Á“rZ#à,4–Òâ…ØÈÀA<³ŒS¯©¾Û\r~N 陿œWTø]<á�u/§J�+µ�ñ(bŒ1à ŒnÇQŸã¾ d- ø”´�4$Ã…3úëa2!¸éêoÖÌQyÆ:A‰’™zY Un]õ9c^ã�v™/7/x’÷\ñÔ‹¯°y´”ë³+ÌÝö4¿2�™„,„47ÒuÄH“…D7FÎ!.Ô»`èz{t§©¾Lr!ý°þéB9ÆuÀúDä¤9ñEÚßôwfv9"ÞM�-÷1Éno—2ìjÆÞMŸÓ¾G8³âVòºìˆÑWÛLÙNM4ª‘íK-–kÏM¶{ä"cŸ�:´+ •ÚKö‰Êž(P³†rY$,y»¿ì«¢c¨bUº6ø3›ðÐ~C�\'6ÍÑEJÒ‹ns[öQô…+”0»[)Ft >øÉ+%GèK`¸=¹3°r>E�ƒ=øÙªk˜þÚ=6€u¯RŠD.ó«‘oS,IqøÙÆ_V¯”çq7OzLL†±å6IWjS¦³½Ñ°Š €‚â}£ òö·ã¯¼ŽÐ�WÁd nÒå][�Wü^D–Š'Ðjç ”ŒéÞQ©”øhlj½³ …<öbVíÚ -F�0ç)[¨/‰3„©t7ÔëЛìãlùÀøAÅg„Éef2OÓ��‚i(ÖôÕû6 &L�¡9MÓÙ ®¶½…Mž| R/Mäal„¦«�—<$¡Ç(ksÊž…ÒCJ^ËÚ¡�®›¡DÃzà㌠ ² :ÁæiÈùê×EHž{,ŽšI[Fê¼yÌ8Ò4A"™BŠ záÞIM>5X)låM6�]W<ñW8îé:YÖdR¼%rùn¾¡ò½œì¡ Y‰¾š4Ž¿�E–Yüç*'ZíƒüB¨ß»´¤Øÿ½2�ý½uIi€uäÐu})^Oÿj5Â3œ ÈbædðCkˆ˜ã\ü6z²¢dqü¤ .¨ b'Ô–Oü8d2$Æ�•µ=aÎ. IíØÌÙÉæÍA’.-FðB{§Ð–8™§aÅNˆ \m‹wB¼ûäëÆ�•]¹Av,›îõ3»2¨­G�ç°Õ걡‰3~:dÄægÉ� ‹oqAÚ²žÑßÏ'ÝkÏ<'€ÚÄÞ… ¹ÐÚðg3Ãà„m"2˜û£G¨bºS@B�ºæìî ŽÇa%÷~zéÎÉØÂˆÑ°HQ]› ËÔ¦;‘÷Þ½ZÌØÒ!¸Œ'8ú¹üKm¶†j­C%�än¯äÿõ¦jÐøú´«aQ»�šwÌ5A‘Õ.f–à¬áÉ^p`A-òRF{Ã[{E;ùâ¶{•mºL{…AqøT—õÅx(w4Ü3]K‘‰ˆ„P廽m\�—Î+#†ýÚ†¶zÆAD%ó¼ARî~yÎ5³/¡jÀšWyŒaT½Òxœ%÷ý˜4p¬Øj@î8/AMô˜u À¿îv¢ÜÀè?ÀØO^aYÓE¼æ�p<ÇLiÍ�Ù¨|–ËA¬ûçhgÑ�L8*[h À †?Êø�ºl��³ûtMÖ-êmi“©ó$¤wâÔ®™ÛÁ¦ƒ òa[~5Ì`›»(i¯ûD<ö’þí«ÏBîz¤w¼cÞ{Ž–:“Œxü�.-¦›ò¿ŠZÎüû—9%LÈT�[jño?ëÚÈ£.Æ ²"n=dW‹ƒàñXiB¢6WtÍ0&‡¦ý/íä�«d/{þf‘•F+Ž-ÜãÝÚ”ƒ!¬]q‡xÀCôGþÕžZÈÁ*|£80ÔªX¤Ù®×SF³€8…¤“äHÄí `/ ¬ ·÷�³šb÷w׫2Á”qïÛ(yñæeZ+öÙ™p¶` ÖuX i$ vp¥‘�ŒŠ»mâ–¿Ô¼V›?ù¦˜¢*ºD޾þ;%ŠjOÂÎwÒ·°·t�²qMAP‰ @AZ%àÿú&[tvØ¿Õ>ÇVgñVh¼F5KòEˆûýJ>ašÿYOÀDÇ djì¦lci¬ñŸŒÿSÙ‘¥•á¾êÔŸˆõ®5×póF´R Ï¢‰óŒ5ÑkÙôìwz¯GjJ™"JrZ«Br¡u¯‹ý0?‘`Àû5¾ ôs úÇfˆÿ“¯ùŸLÕæhÝï¶Sq÷A·‡±£f¶;¼å *ï•Îê÷¦y¾hn[pJ6>ê]v¡§©î÷x&Š,[*úÁýûÉŸ�A!cΑËÀ�…Å?¦‘ÿ“¯õŸŒÉ�¡Ø�Tãõs_ïà9— «ÎáBÛ(¬TKð#G;¥óºydYBã¿÷fÃ1Ó'ŽáTí£Õ¬#~ ¾þ?íMû?ƒ Ös Ò ú¦pÿ -ÉFÝéj‹Òƒëï·}ßDVllö¯lòküÕ… †8 m¡Îo¿ üº<öÿö�r]`® UF�]Üÿ-~UýOþÿªIn‹¬ÃNÚÏ1ÀØÏ½Øu4/?PÆÕ8†½ü1ç—ç–‹i½Ùõ7úÅÝON¤a!òu�‰“Fs¸,„�æû©¬Â8¸oöàRh \F¹8ÿ“¯ûŸ ùÂóä¬Dsnës?Ò@âÞ83V#Ù-p €µxJÛïÛ,ÅufÇb 9K.#20ÿm÷dŽÞkj|` Üÿë‡üoŸáÉÈŠÔl©*üE ìÿä‹YÚ˜Š˜:ÿ÷y2k‡¦�4y :64-—óÑvd·{’Zã}� ¯¦’`Nþߎ‹©³ �‰¡‹áæÿ]ƒ˜@€ã} �!?…$s!Rþÿ©zÿÉ\ ø$Ò�“ðì4zl^6hZB F:(øh̹�«\%ó±Î!“Ñ®rú“ÇbΨýØ÷BfÚ”ïûo¿CT,ëÁÈ Ç I++V„Põòõÿ“ÑŒ¬§»€¦"9ÁE�áMŸSÞæÃo‘E–!Ió”gýÀéÒ1Uƒé°MÜÞŽVíµŠ'ç±ÛP©üo¿1²½Ar?ÄyZWPä™Déò þ“AÖͰ—cªßæêex?: $7G²"œ€îÚÑæ¿Ž›¹qaçÇý~uÞøð†ê3cêÊØÄhâÙ©Ôf yÇþÿîwæÿã÷Æ®B‡:Lј�@ÒtxküŸ|I1ea€ÿŸ;­¾¢G÷7ývH㢥’¸6 Š)L”H”ºif¯bZã�“�±@À`žn¢î1õG,Úá»NŽtNâR,2H«uaÊtYžUB БƗŽß~5¤Ó€LØò»ÁM8öxäÖï ëà©fÌfÔI‡h¨æÔ5 ¢Ó (R½F…B¨�»Qr+2œ±ŒÌž\hëÒrÇ!ÞýD&³"F-¨IÂÌ”óP8Üîb%e�jÝ“³Þ“í, zG¢-âéÛ¶'ÌÞfGÄ5Îf)q�ˆ8¯Ñ¶± æ:U�~¹s°¹¯]8m�º€-‡ „¥P¥_µÒåM½ÇHjˆRôF˜ï‹ß*ª:µÉ íÞ’0[”Xăº ÏèŠms¤ßò¨šèµv-¤cÛwì€�›ªaÁ»/eŒ67wGÂG¨DzUAL+�‹ ¤æ—q¨ôÊü !–Ñò›N’qE2VâØŸ×�T…Ÿ�Š9“‚çeŒ‹7 ÉplEûI9¹éå½À�,_ÌÍ-¤Í*¥×yôRæ%Gè%Agmöü%vŸ~ÿ ‰¸·Æ{ô‘^˜�ŽíS?e�úm½¤5ê*‚~X+- YÎܸ”ovtè:äuqß#S>²HI7ʯ‹Â9¢åôR׺½¹Ž·t•QÞ%^«ºi Û¨gœ1‹>Ëšú,W÷·üõÌnŸnsD3a, !0GÎ7ræGï¿ »6ëӉ蛷]õ﬩pÊR×~NdÚ#�[ÅÇ5{á,Ac_)§@ýæÈÒøä¥˜Xª6�-)º?ºåƒ nN�5�å`Ž((3àÊ„à ,È9›Š®WÒöœ!w¿µwQJX%þIN¹"Cª–q·°Ã €¼ôÆô^-Fô�çP“o�X¿d!F$êþ¦+"o·‰’¼Ù›.Àg8Ågfj§—crן~¤ç¼_„‰úè6 ÊÒNÛ­ßCg¯åVg…‘S|[±2÷㯻 ¨ó9'÷’X§ú²­‰Òû(6ñòi‹ á`×�@åS3>’ÕmBd¢.—`ö™¬­ z(àºñEÇ^ìS¨Ú'IzÈ^Ž)‘¥cÓ*¹Æp‘•Hi÷ˆ&'Õ“<¥ÕvÚ­æê{0Wg{VPuƒc©;>Î�ËoŠœfêÃpô¨cȤ%T¶­2|ÄÅΕÂ5–¹ñ c*!2=¼û\­7³›µú.LJ¤tÇiÐ ²ø7'>ÊÈÑ´‰4q/V7nvhJ±•p-þDŠþsJò S¸"#Z.MG=Ý�’T“冴ãèªÜ&ñM•Áã8¹ÇfT®ø…wH�{ «pŸ,‰�xµâ;ÓûßWóy­~Ö´„ ·02ûÔ›¦c áÄ*Ûñ%×Ô¿ö9: Ä5j—x`mGmŒ†ö{»¥þ9;˜yÍvs½Ø“yyD4â�™g„§pî[dáóšÆ7×1¡^ _õ)l9hTœ’æ©hîZK ~GýOÛlâ<=—ª Èt…?� *ÄqßÝ“G+9èô�Wo:cH*Á¾Z#&¾wã{Ô/UˆÛ:¤4`ˆŠ&îPËü1ûÕúàú÷†}uúÌîk•ç+ÖddÑÚ>UNM õðu³V\.ƹLzt²ñó‚+ç¶¹döž0-_ˆûŸƒ‹ütÛ:ªw�­æè¸’ü¸›p“îuô}º#p•넌{mµØÉ@ŒI–ÙÛ¡¤?õj¼…6€ô«ö$¤-ãj›3UœfsóÔÏ­y ~CÖÁÈ.r!ì` {æ§Óä¢A¯ °ËÍÙ÷1ÞÃ\ Ùõ57c©WøÍѽHÄÛZð =‹Š‘äBuëNžpl⪗©î�òq[(e:FX;øª´Rš’�8p¿‚úll�÷àÝx‘cíÉp�ñþÖ¬5üûoÜ ÀFA‘Ð`sªD.åf~Ïò(½J# ÕÞµW*™Ÿû¦ô² Ѭ ÜéHåEoFêjyÎ3‘íçlÕM·&²«ÂgÚ‹�ït�!gŸjBdìÞl‘¶í\ AxÛ–'•Eyo’ ¶ï¬àNk^T¯ع;0ý‚€(ÉY{Exú ßÿhß‚´%!Á/Y¡rƒ­8¡Í3T;_â]ÊÅ%ÖÐúæ~ ÍD¢š!ó¥Ý5uÿ€†�C¾¡äŸphP��RiÔHQ÷tëæ­È ”3Á²=&éGÁ̯1F(Ò§ôÎ'+ƒŠ•¼CAÔS 6ÅE+ƒ)´ÔÑ]êz5{ãxÏOöŒi�,I½ZL“èë`½{±4MËÌ®ïû™ä—gYY!”‚Þä‡ >¬"q6Ý/ ôoÄ$E½—»gN!ZÛðÚ�ðÚ@à<ŽE{š;ô\¥Å¤ØwJÚ„h§è¡BXÃæ˜Ÿ¹A�¤ÚÙ`ð¼~F—�´üŽ�‡=þ] ®˜9»Î ÌÚßÍçYÿ‚û ËXÀºÀ¶ƒñJV`9�ÂÍ/z['!ÎO3 ÊÝs*áRp· F�eÓŽIò£´%³5ç|Í™ÔbZˆuϦ÷÷ýv’OWá݈=²–d×\7)Ái&mÈ–ì*ó˜xÅ éÏ¡«Wê%ÔÔ4;rZˆ¥ ³43“ºB£›e½Ýîs«‰‹†õÊy­_ÌÝpo¯éÛÇ�ëí�ß�WÐxøƒDå.ú«À-ï²¼ôRþèõ]!Ù)„Àd¡ bu¡³G‡ÄM‘€7¥q,fC¤�¿ï%ð( J¶*Щ„¨ F’ˆ/â`’FŽ?.Á¿3-íXúWñzË6¯*IÁ”õ‘wÜ”’=¼häbZdƒ!VõÿÒ›ÃÎê�oZÆh¼¿î3ÌkÈá“[±1r¾¬ÊäU!à6WÙ¦rF?¿ÞmY£-%lr@ªê‡¦Xñü(²qÜ â+åïÏ mp„…›¶=ÄYÖVÞ®,ß ›„üËŠ�¿ ´´†£ÀÏ›-C»2¸ €tfØÅßóbÖ�ÍË éÆ¤:oýý =$Òk¾•Tï•�çÕ™Ûi©çÃm5•yÓgúpuˆKÀ?a.à•Í[FýðüÅÕ›)‰ž±¹ëHR=A ;q]xuu�ôVVÊÊ„ {”¬†Û$ú‹D“ /.O=aW\t.cHÖF^W;'€öÂØå�Î�dÀpqü—º¾²=XÒÜå°ïŠ.‚i®Ûntó™+"åÑÁ^�vÁ@2ôz±i÷cÏNÈ>´ôWÈP“$éÔš¶Å%§°Ÿ%¤q<-8Î&zy5:�q¥ë=�Ö]gôiˆ—±\sÐÅ™.Z²üûZÎðJŽG8Ô¬[7è{žÒº9æ/;‰�ÏxòÃÁJ¨*cXôà +ÎØy"ËVÝ>FìÐ}XVψ'Äê%ÝK‘,ˆð5Qþ ¨«æ !ä¸Y*Òª‘°Z°)âp›’ ¿w?ÝÜ^(kµ2h§lÒº­aÒó|þÙé>e2ȼÃs7JlÿHÉ'÷åü>h§Å4ì´Ž:[e×OÖ²wæÃFj=–ô ÆÐôÔ–;¢ªÝUH—ß4e+�=Ew«êˆÒà—Héʯ9ÜIJOJåfr«dήh.{§MÕÜrVCŒ”.w€Žƒ_œÓÅWÞ74’&íž2´yOv¬»íSIjÐb‹™ˆU©ÍlDT¿@{w¼ÊKye ÷K´šž}Ûš.„›nwFÌ:ä:ÿuÔ z6öè£ú�Ž´ñY�ô• ùIÚºù.S;ü-÷ÄÚ„ÉVQ¿W™e¤ßÛK–u+¥Sp`Ãù&»D™m2õŽ¡æˆñì6j¬—š7ÞVêrX °‚èèÚBQ¼™¡@hAв»ßÇUçdõHDß�;á3îñÀfå2´ê.ÌÚ7ÞL‡YEF§ •´Å‰\`&MùŽˆý¤ ¥‡�Ûýfµ÷ vêÄÉ…÷ÛÔœýô,µo÷Õò;*TSC!¥?ZN˜'*ì–çnÿ|°!¨îЉmþ�Q`i|„£kì�C{bY·›�9Ì©ÁÚŸöLÒpúÏxõº’+ñF”0N¸!Ã{w'w[åeoÿõ%*c0.áè¼éCr°C.ýB|åø³HØ–Dþ5´ÏpSëº(öW1æ5s‚äì à̤ë8ޤ[´fõR'=äºnW?k¢êûU$gßçÆ¦H䬻qe̤Gê”…?ijAoL/™C¼e«–MLºñ…•ð9  K2Öè#LÎ{×èç1ÿ ¬J{ ×uBÜV˜8Ññ.ÔO+Úy}>fÜI©G�ížk_öÝkɱÈhß­Ä ¿:ÒHÒÞ ŽðÓ‹ئ*êxH•,S‘nß�Øýí ¼è눤Ú9·*š˜µ5zû÷#='ÅWš—� òÁàEÂìárºÓ·C€lºF�†/ÏR*š"ú_Kµ€Ï7‹ÚûU�‰œÌ¿\�íÎΕ‚ÑSˆ½ük¶eÏ�c·b »¸½‡pºŸ•{“L+†4„¨fæNÌXî/ÿ!I µã °3ªYìü¡bŒ•wHß‹¬G…ŒáCª€åmÖ÷ZvSÝn,—Q³â†¶ãuÑYã©r�Pôr(B„À|i \uZ{¥ý9è»Ã˧KÈЯ¤$iES¢òiÐ>Hsêg@rî ãøi!¯.õ^å{ú¼m|ÎTÉU½þ,¾C–b•ÏîÔ]m “ $÷ó\­ä–c%™´!BË=`ÃÁ6U@;ßǯrCz~MLZ ±â_m£¶6X3¡@#Ãþw%:f8xïkGZ¥�YA”HŸò£«òvŒ�`¢çÀò¾´Ø"¦£Ø�x(ÙÙÌ4™�Eð�{X¾˜–žî’£â“ý-œç�‡×e*‘óœsŸü?N÷kƒa x ¿ÂèP²”º¸2ÔrÉJìtŽ ¿o…KâÕŒ?tI€†åÍÁ‡5S…hõª�EÛI´µ?h‰ÏlYn]ºÎEÆ@[òrÆŸ$ñ¦©‘s�--!#ÿFoØ.µì~HežQ .óG‚p-œ€GÔ¼£P]! ¶ÌÎê–@Uè%ï¸fB"Të�Ä©¸áó±L§©øþUZÀù ïº ”t2·k¢Ÿ§ÔÁ�€%¹"¿}• ]³Q>P0"\ÆŸ5è ñ�ê¢G���•¶hN9 %—V±µÇÒONÀ3 ¼”û1=¤•çO{¯%üeyj§�% «ç«×€ü xíÚ±pF†@zH›6¾mxRnˆ¯‹gÈÀŸíHÍ/bÜ 59_‚Ÿ” y‚�#Vº–‚Á�pÚr ˜îih²mPÿ²»“ö?À»•ì9#ކGêNK$;b"&ÎkïÉÔø‚ CÜp¥óÑÍÇÎnÊ®ÙÛ«± âP�ìÓïG…ÀôÞÈ,�0â´‰±SA ’àÂlÁ‹bs‡«´rG8ƒíáNe„$¼_³ýØIÉT!usU)} °fþ\�#iö9ABN>â6–èNaož¹}l£âÈL(P®� ޜʘöí°Õ{ŸÂÊ& ¿^[Uø':Ü\|û‚¡M÷¥»U•Ø ¯0¶›BQ.¥2§ñtÀþÀ�zöÌ­”žJAÉÁCEqÀøòí2Ë»ˆxO88ŒÂ,R 7pŸ)"ø’—l@ pÝ€W”~‡Esž�Bñ¿h³!H¼…tòE\V¯ÁQUr þ ŠkˆŸ{Ò;è­#ÀF„fõç§°Ç^ú ¥>Fr%]Ž×J¡äÌe)£çR:’±r¦ÜM|Øö™�¢6 ïIî£rôòÔDoõ{_jjnîC%ö¸8jSÌÄÎŶÞËètHÿ¶ú{´ú„œFBñ$¯ c0·_"W·'C~U.;æ®`·g<N씟MΙA±ŸÚÂâ'O2Ú¾ˆžúìMÈè8f¥}é®gÆ”3|Á™H´.Kî×Í{ßgÆ£Uß!7&#ê].¿ö }ÕÆžskôÝ ‚yvר[· }ÀÛ°¼†ž·òイmO0—ð¯P¬ÇV/2óú¿øZ&Æ"ówÄ‹Yå*»Ã� u™=ù(°!ZätU=VðÅ[†önbF¬’ ¥?ã“Å~¡¶«X¦§ƒìjRhz€ÑŠü&ÿ˜žC�+ä+%Â/ëp7þò ŸòlOþ󛊬p‚‚ø•%•„ê CÈUð5lc°Ç\4ÀŒ ¶y®P&\·I�7À|«±f·Û/Vî[ŒTË>N‹ÅÉöFÞµ¯ö'Xyêå÷HŽÌ„Y¡¿ÈîaQë.æEÄxWËR±'-JÖ=j‹é$eÊS†Dã-Û¥ KSnqþâL„cã5jËl¯�Ö~ªQqSW5É\+ì½Ã¡êy7Æå˜ÃÓc¨4ëPôOsaH$ª; Ñ)&¢0r�oùŒÜô†¸ý�Ò)oËiYù”Cz ]%¥b«9~ÅÆ]IrÒœ‹(™¡ú´` zOG•yù7‘e‹pöL"øëÛƒÚß ²£Æ�9ûâ[¥!“ñWoó®í]’.ÙÚ8Ö£! ´°‹~©×Ÿk—qXÀC�¢_72o_e°üA-û˜§A0­˜âĪE]ª\T�³ÆÞ“^zSîd'àn Ç�~Àa<ªÊÇ]! ³&/V ²’Gì©•_¾®Q55ð”‰/ z>*ª»Ћ£!…xI|‡yú ã\Fº*Ôo€âóñ�}0‡O¨úp¢Ü#ñ‘yöyos—/7<=%è¾9lá/ëLj6åpÛõ�Væ"º[°ìB�ªµ€†‰Q×Cøûq‹7�©(*¶¬õÔ‚M^Ò¿'AH“±‰i&Oò`ë¶O-¯ÊUëLçà‰' Q€°ßƒ>v×&–Å@¥Š–�T›º[ŒO�Ø:ÏC¿fóù©jªæeÈ6W ²ÕIýÑÍÄq ÅT‰µPaþk‚/�ÂêùMc)>‡?-ÊÄU=P0C„šL0¢)žÚ‹mpÇ…s™ µáÓE­§jÙOÁ”R_[ÿ•ã E)ýi%iÅjÌPãÜ sèù]sÎ ’Å”’óðó¨{.5m©Cl>ÅV(d2æ<—ümyî¥F�÷K<ÂeG6qS`þ¦J17H”•w„>­=áTµG—1å~ÙL¶È‹ ÁmPE½É�5þãáÎðÊä—{2_«c¸ZF‘¤ÐÇm-y!C_â^H�¹x¤;Œ ÕƒÆ#gôý^7>Ø9¨pÒGnÓ”ù¶°c›0WâVÝ©6ÍåËúC"} ÃÖöc$í¿“%¼4mxbÍëJœ+ÈJŠY8È_D5�—~Js™ý‹^j?ßòßýœ(ê#¥â+Ö³îTßLèÑÛk2â �­¾v‘•7r:dƒ ¸˜Z耋@¸4x ÕÜA3‘J4›ÛÇt`áö$ç½ûyÊ(ð˜#H¹iûþj‚oˆvÕäÍH‡OÒeíû £‘ÒÛ�!D7rl<4Œ„¸žõ ª3ÝBÐÔÇS‹ŽÁ£ÜhOÓ–3q¢)íæ ^:ÂØœÍzÅ] �Š%oø>xöUÛ©l"<��ÐO`a8z$=Ø(›Jøì‹|Æås9ÞOwX ße† ¶”†W@ô"R_ðåuÙ"å°ËŠuÐÏÝ8ZR=´‰·9~�Ì š(>¡kSÚÈ69;ÿWj’cžÓ×Ò±¬'°lÜazžm…ÌHUn°tÕ¤Ì|ääÞÄ­úâoÄñÐvdSÕ~”êB2‚-!ÃøÉ!&²Ë>«Í¢Çe Ôôqj ]í�>½ýÉàÒF §Eá€ßгäX(¾ñòŽ›Í™ÎU9EŠÞJ?ËõÐ3¬Ò%¿6™YGx—Ô¡®~Fè‡)ݘZõ +�õ@­5îeÁdúE$l.ø }^X?±ï�Æö¿Üi¬öž —J=»‹Åv21_è µHµSéæ“*±êÛròÞŒ.âÕdûî)¬Ä’·um;RÛMÚ½ê¡"‹ù’Ø®®�VYª¾íμl÷±¼¢ùQ­‹”qD§Æqù~&e´ P7òƨ=>64é,¹'?_HKÅáÔ$üÍGXO"®<8­½hœqi*¿ìl eŽR»Iˆpý>ºšR8I¬?XרÁåÊß³oûKá¿ËŸV)ƒ…ªàPJÕµN&ú–ÛQƵm0>ž©¼ýW�E†Ls‰�4i+ýI)_òÑoÑÉ&sþ‡Î1¸ŽËR:vË”pÒ" Áÿî”ä$ü…�q †—ò²Æ=„~¹Õ9L}ññüÑ;ge¦'Ÿ¡¥W¾%*ñØ»K„…2Ûž ùøM¤°°#µ¾é¾Rí7–Nƒn� Ž7Ôv⊔‘˜©ÿœ›ËtTK&`+­Ù£¼\JFŽ“Ã��FîÍ_äj•é ö Ó e¹‰œT»Ê2àÛ¸QÏ»`x˜—”þêap‰î€×ƒÄ¨ay;K�ãˆïšõ:ºsâ÷ñþ Åmï„ô§ ÝÖøÚõu/íøaZ°ŸX-J2»‡-âGvñw¯®0f•žª.Îø«¦ u�ƒEðBOâJ\âI {¯}Ú7›ÅÉYös�:˜Å >‡X"ÌM=ð= „¸Rfž^8ê7nÄ‘ÌüZîÕ)‘kþäè_Yä�Ð-K˜«â­ê¼eÕO 8 ’ý4ÅĎԙ͠Å÷„o×*í4ßW3­7IH@­øÌåÚaÔ¥ƒ;±&°- O¬6ÎÚ g8)íÖŸÉáª&pºø~$Äv@›kÊ | òkjüPàR�·x/í~J꨺wÐä| Š[À†ÈjµK­‡6qŠ¢#ÞyL ¡ÎD&´ 'üF â@Ô®ã/«üØV{‡™‹“)\j‹sœ `ÝXPÓ´ŽÇôTbmÉOÙJ|˳´Ú™ ¡W*[ÿÚì±öÿ}ÄVކ*ôÈ[¬ ‚t˜ ÕbíS-Éu«Ð�£Ä@›‰Ó¨Ç ;jÏBÒ[0Ž=½{‡m‹ XÒTë«r8'o㇉ÿ¼måÍí®¨*‹9!�δ\\õª¯f ̼òØ·æ|¥s©ñäÒœ%øÜ¡„H‰ªÄÀÏ–¤mê·±sVÐÞ¨Z18fèã „Æ)hz Ãç7(ÖÙr‹-½ýã�³$<‹…r/žñßYj ˜ ÔøGÅvXÌ|¿ãõ¹<¤åˆ-èF²&„ûk}„ô´wÑÓ5È`%§ß&þ¼Ë*%¬RžØB&#ó¹B¨€2 öîÅéN5’=B¦iR�ížý}`]®ü´ûÃu ø*³š> à&Œz2FHår'Œºl{É ü%qú’üaöHX,GŒeih3àU:w5.æÞAÙ¶Ä [YŸµ��É;?fòm¹wÖÁýæo|‡rXíˆr¸„GXÑÙŠR¶ ‹~ �­ø`Ï뜪gUêÔ¦® ;2Ÿ{÷çyƒÏ(˜îØ{Ç])¥Åª ÕòW|–î�XY6ŸSF´£’RQÀÈa.gUE9ãò‹¡â×Ì,4¡ú¾yÚÕOáQ±­Š}np«Ì�¬"ëZ�î¤Àè%xÖEö¶¸Ó»¯ –EOÖK1E9Êm�N—Õ'™ãV™c™¯e¤ÃK…c ¯»qS{ÒnKtÏ#!{—¤ f•(>ØÒ‰zäY󻔇�£àÌK!ko RRlå�&Öš˜ùcž`'Hͪ´¡=Àèfm`Ԕ܆ÈB-Ås’¼2�»»þz SÄ/ESïBÐ3¹Ñé­÷é];”˜&©£BÞ­²ÄÔíìCÁ-²º„‡èIwÆ{¶’ò�2»U¢Cð^­W¿÷�M#*9ÎìoÉEÙÏ·Hpô—_íÂþØñȸ¸(Aéáó„\ ÿüãZ½ l%6Ö¤‹é€¸QÙÓþdWPœ7­àDjs“ËãçW‡BZm¡Veò„Cw[ê×�Íòýn©Ìd6çŒÎ\1w` y¥¸®å¯s4,'M£Q„ì“ú…С—>áÊgdòW¼ýæenkñ7@5x½�ŬÑ6ë¤Uƒ?¹ ~s�«v/Çzb_Nôv�ë‡ ³juØ“�T½‚šþТ}òµaäß Þb™¨7,\„j§Zxìâ{”7\_ÀùÙhÜ©ç7~åÃ3/�ðjÆ>ÆbñÑñU‡Î…!©ÍÈdêQ…èBçY:l«µ|&½mk=ƒÜ!é8U¸W–¥MχÃUœÑ@kVŽÕ˜ gÒoôEØ|„Àlgž,ܸMp·ÉH!X'3áÈæ8€ÈH*±ÎZHÜèZ �ÀÖÇ¡áÅ…À6›èM¨ °R3¨Ü_½$PuˆeqµèdpíΎ״º¯÷ Ô3—Er�/e1p¤=¢ÒXå³êDŒÞ®)³êø¤`Û¶w Ã×ï:Õ•• ʵ�æ~ºuç5€ògýFòqë9@*Èj™u]\5ü¥äóïоÉÀ¡¥ˆ;«Î¾›{EC[LJÁ ¹í¸´MDr‡D?vDb’tW5‡‰rXµô›Ê!�—2DcÃ'ߨ°_ƒÝÜß2ä$c2®çH(ô+¢ç,HÔ>cħ¥>vSÇ`qk\œòÈ´\ž«�ƦÉn4 ,h$ð yC™�/íQḃœ4Zòù][A+™Á-OŠ2yg‰­É^§ ¯àgâsZ¦ª±7Ô3Ž•”öÒ[‚Çâ1…ž�b»ÍåV]¢È_¬aÙùØ"ö¬.¿1É­Ùù.SL½kÓɽÓßkG¾Ý2`ñN‡G?N¨‚‚0Ýìà6ô¹C¨Ç½ÓIJóêï$X‹†q33Ô»í*”lÞ�u·½�pæÁ5}H¾¸âóÁŠ0˜·‰ Ù{g·òE¡Eìï®k8;mˆa¹íñ�Ѿ¤ŒFÊɲY!›zšÓ«Áõ/ íi�ü½ƒP¬ÆøÝÓÆáO °¯Ú090³îÛx ïüãN*ìÜë‡ç®B´é ¿,¶°×…Ù…Ûñ©Ö->M¬8N —X¼L1 "x±eùóEžÇAu\ˆçjô¥ì]t‹Ðj Ø>¿õ™09ÍEqC“Š7= :Vúä»®› ûY¬<5ÊJ‘õèÝç&¯í”13@©ônÑZç�¿y„tÒ m D©z²îyàé[–ª‚{ZÚßîç Dèã¬=쉿È:ëØ…gî5Çî?Ï—�¿,0›^l1HéUŒžq�÷¸ë¥1ZW›#†ê‘à¬ªÖ äïJK+| › cBgñ…)#VJVÀÒɦÖ>Š/d¢E\±×V‡îp é ç¯z}qB_–µÎÉD±¢�!1Þé䉢�È¡¬7þ¶$’#„UËÉZ;ýb s í¤yÂ_¯Ã2/*{ÑçBϧF³aþqsØQÈ ð@É•Ø~je/Ân©tú |…ý{Ú¯�×Ä‘‘‘V{±`8Ì`Å Þ ­[‹5mF»Lk‹ Cv£õ?Òßs!oÎO!¤2wÔ¦ ÉÃfXštYÅn+Nµ¸çà²Ðt:AL7 ¢Æ°¼gL¼Æ5+ú¤íôêÐd”¶®lþ¬Ú‡†§ù³Spk‰iε\1/ÖJÔ8 @elChÏ7œOluáHE,ÅHÇÝ£;¨¨‘SÐÚß«¾SsOFIøÅÇ[B-IÀ›'¶òUKY±Y*Æ¢MŒ&sS±íT´`”YF I`{›gö ›°ÞM£„æ Uh 6Ò—¦mž¦ÔPуOW須ȔBÅy\÷P†ç¥­Êq²Ž��.ƒú.xº[Þ�WóDòk¢3|9Ñ0|ß × ^²ð¾ƒ‘ì=VÛûèýIh¯§Öˆ¢æIì‰Ôå/n¾%“¿‰ÐÚk·Î“Fv ô·‡`ÓÅÂÇ­ô…³˜ØYp‚é·Ö’ÆbŒ)5ü®ŸU��6º=Ê�뚸T¢!ý³¹S_Ý phö<¡»•ž¹¡>TžEƒçvõÎlȯôBt�É`ñYÕ;ï2…BŽTtɱ:°€)"5§7 c¸xä� ÄìÚ¦®&,AÕ\Šx}4hi^&…š'•.#„#…¸æˆ6]áwæÐÄrÝ–ÃÛmvpkÚbp9@Ã�¿ånÂýW1€ŸåŒ«V=¼Äí#™ÕšŽïÀwz)‘Ø/÷'ÍBC«c·X‚ Öì=PsË’N]¶´±Ý<ü¿øéûëÒó ò ­F"Fãœð;U_׃ÕTÿœïõ§}o‰”‘‡RDÍI-äÙ–4ˆ±�cÕXßñõš4päc·o±®�Îdÿ/Âë1VXmô²mÛ¶mÛ¶mÛ¶mÛ¶m{½Ë¶gŸ™3ócgN¾&ý×;WÚæižnáOåš‘½^�ñ”&åíÄæyRÊ:«Ð!Yþ“]¯1ûq˜£íKêN¹3 ?OÐõîM…1y3�—º!¹ä8Õr&q·ÝN5æÑøGYap%óŠR î ¸ 0ýöZSi‘ÁѪÅ'Ý߈Æb–Žn6¡¶«øœà"Ööb“ßÐË%Í4?pWÄ80eypê̬ÿzEv˜SGo¤q°0 Û’c+}`_¶H^EÆžî¹`ÂüñäO ,Vn3ÄZ}*J†$:âp5�•‹,&½qÀ‰Rª0 ¢~ºí7>5–�ÛFºS{uA“÷—k;@sƒ°¶¹ó�ºˆWöÅö}¡VG€¼ÆKPÁ¤ §ms¹žÜ QÍ–¼w9øà§‹h!5É–*ðÖÖÒ1ªÂ*—­�4ÞÄòŠ…ßº¿g ¡¬¡ûä…9WEb’ÖÛïÞ¼a,ZAÔžŠûVM[FÆJ]wÞê&sÕX ÈíÍc×ÞH†È`4ùù>4,´�柲ŽÎ^qJË…¹Ø-œÆ>³€=ž¤à|ω3íw••êjÛB6xÅ!îSó–’ÞX…N+n áúŸÎã¸F«ØK Ô‡¨q®H/Ôô€é -þðD7è'ƒ ‰ •É7±Ëÿ¡2`²u`T•B‘H›5ÞYUýó%²‰J‚»´ž3Ôú²H´ãæ$®f’}ÞjÀ €üMC2;ðó=�#.Lø™È¶Õn œÆ9O]%•$*ޱA«fâ'Hõ òÍ_ÁŽ0ñ8†öÊc´·�è‹§P䡘àÅÍ‹Pkººk5 ú*óÇ^J�Á©e{Â˨+2O~ëÌm�H 2÷åÔT˜‚uË%D[00‚Í‚yƒ™¹SfŠÖUÛq¬;°'öàg¹'�2G.(J_¹×�–Yž¢zë~ô. ñ´ÞR6ŒrÍ‚5ÖÏ)YïhŒ Xc®ã†Ó*ª}JÈ‘õ÷çùV�âÐ*N©ö“zrWŠÇŸe,ß²õñîO;)NîÑux@Üeí!0'ˆÝ“Q ‘|c3ûúÕŠduK‹Ölô×þÐÁ iTýmýÖ~:“yë ²2x*Jµ\nÞ;rÄÞç;ùpÃ8Z2‡ûí3'ïžåàî9GØÍìïŸÐlØßîØ´ÛO¦B}“÷…)ãù2W ÿËÆ¸í ŽÇc�ÛÌÇÀM# ™=ÅsZmƵWE¹gôE]9õSHä¾LáŽÒ™³¯ŠFùðk.4±¸ð6}`¢hëÕzý§t¸j£ï,W#€ßyYäQû­.¢Ÿ.¬´X-!à&¹Þºþ—)S“=|WÊ1Óè@éÕØtÎ�4E›ã\ïé§…s9ru€DsþÄÔ^íïLþ¨¼’ë=Ô'¢�è …�W Ú·Í)|쇑Ëü0«÷y¥uïª)~•ávA‹âÎŒ  ù�šÒœÊö�ËkVŸú~níÕkàzRp³…Ê䯿Ÿðœîˆ\ív< ‰(­Ü¾.¥²6E$¡);5g½üK…XìJùmщdû”²9ƒ�˜§rëx´xµÖô�ÚÉ(Áúß7 øÎ™-M8‚è÷£ÿÇ2/V3μÈÜ¥a0T檖ðñÕ2�¿)\ƒªHÂÙ,¹7±v­½OaãƒtÛj»�ýâ¡Ky\“\@/Ô ,–Ý2¦H‚‚1\�ôûn^¶ÎVóµ iÄ¡—Fm¢ÜZüH„1þÉ­¡p°™>¨k³­I-¡†YU:FR8#ù©C¿p¯jíý“qrŒÛ‰8ñ ù5þÚ¸Mÿ³ã^e×?Lÿ‡âµò¯ RM�G]Ö�l Ç®zuÒi ‘xÅéoº…üz”Ó°{°­ÅJK|CÅ`»u¥^‡kÌá‚ÉP`7°ƒ-+Q¥ËäsßU¯\kKÙ×eƒk> � ±ï¤Y÷Œô@•ÚòìD²ß F9Ñqµ€…j€‡@Þ .J@¹Å–N·?ƒ4(Øä�»]²-xkÒ‰&¿ è6Ld«IÔkø’\ÒÈa',®®¢ QÕ�x”Éȹ�gvÚAÂËŠ·ÂÑ=B»/\¿¡;‚àèª$à…Û÷§�]J†®`úv4c+xÁêñá‚0ÚˆF 8·C`æû§Ê6’ýØ*Ô¥ç\7á Èʰ‡¬oA: Ç•ŒPQj$$ˆ¶ãƒm¨øFe4¢{j`k…U½%äµÀh³YïѬ‹Úâ׃Q{ºùwÅ*˜ öJ»{0§>s|¿Ï �oç_FÏI·KÈñÈ3òB[RÑE­Ãí� ’‹Ù”„�ž¸¸K<;þîM°o¼g2ØÆ4“3\”µ0~B5_ K�ë¬(ÝÖ›ãw[ƒË[yÍüûb8ŸíÕ ƒŸŒ8ŠœÑÊô¥JZ£lÕG!ÄÓNwá/kÂU†/d^ k_ådE²­ ëkû9Ç�cþqÕ_Lȹ4{§áæ_Ú:¾5kZ˜¢í�Ü‘VŸàZs)C} ²ŬoQxk.qå\qC<Ä“®xZï"ÄF†mÝF�lðjÑôÓéˆÔP˼¾äu‚_Ík»¹“g(l^Ïh7™={Ò홬©ÊY(ÍpÐx*Oo÷VÀŽ#™Hë�âJb8|�-Þ…dá‹È ŒÕ�‰�Â^׺î°"ÊZàšÈÈ‘ìŸ5¬g“\9»ÕûlA´âÂÉ~áo|Ü:‘¿‰ïÈôcÃVHáõ±g O~ZÈÞ�@3£±>FU ÊÝÍ-ãWÈŒfªaÔBÇó2¿+Òd‚Ówï<ƒ°ßö9û}îìnûê O…R¹}ž¨7Ë›¢EëOûvý¢�‡p�͸Iˆ×j†Þ ë$mÉ|’SyåX†rüºV¯Hª¸Öºé?o)”ù¯¾1¯Ž[ˆ’éqj²ÿHBÕჺùNÙÕ!´$5fgéR;`G[zp¥=GÝ>•†gŒU$½£’±ŽƒÓO œK2 ‡�\mU’ùT fü²²ð¼§?kÞ*i� ë[ ç)ìÃ`ö§«¡u>Ò}­ÞSOmXæöèãŽ.ðK˜œjäïã6ýåéZ‰¨©*ùy•¹¿häKh’1a;oÞeSúßšé¹·Õ ã,•µî§‹xA'ž­¸.11Ú\;¹2$à¬+iú\|'´À„ ³ãÔ¥M÷ãÏÚ@ý�…P4+c\>£ÎÅlK�ºè´êc"Ɔù^�KÙõ‰Dù¤0ª%ÁhÈöhš\ÎÚ�¸éb‚<`ža¾óLó ry„o "� @:Y>xåøÙQTŸóõÒˆ~q�ÄÏdw ¶\Xø©þv‹†C‰O8V%D‹’lgÕr²±Jö½½Ù¡MH^˜=£½þ̇À6Ž+pòâ·�½˜?�»áñ›»]Ð Wè âvk� aíL·C»{ëÚ¾KÎò|A¥8“†Xê”k')%éAžŽל¾àˆEßĦf.ë ufz5žF]+”Î}ý’óJgpË8¢»“WօЇïY#`�^¾ÿNr†S˜,Ívsb£fß!t3T)ÙÃ7õ Œ¸Ågü-•"¢›*Ž,uÊm�¼�Fy`f-.ˆ£ÀÆ)¦n+ ±E|Æ  )¶zyo*¬Ê`R�+¶Ô�L@EOVý_º†%™ÂÔ5‚SˆbzP Ã÷V„Fcè�e¤›opº´ýÂÕ��iüØ'X >ݹë?2þ}qѲw€Á]ó %¯Ð¼ý]Múf* )yËË�´’51Ñ•eÿ&åóxp{‘‰î÷4´š¶'–;¥ñÿ.]†¡%©¨¯©3˜ÀøÊËÛ.YÜ wÚ¼SË’·~¼Þ9õkiÉ7‡JAF 6 ÔçÍsvÍÅaÂúª'±Êñ‡Ägr©œϪNþkSóê¹ø„å�¡ëÓô�éß/gKHÎSï‰îû«™ íºÖ+ÉÀz ð{ƒ»Ê ¬<'¤ V±å\bÑÕzÂÔûb)ãåªxÿf|NO8)�¢~ínÜ^vmõ.4Îïºã¢Eþu�hUrÀa¶a>¸·0¢8œq=E‹Þh«ø_m¿êe¾‰·âµ×ÔPb{¯xzÞ0Â#|дe‚ü­Sr�Z …‹qxªS³—kƒFX¤Îµ2}ç(‘äZÇBLT¯y®)Õ¸ýžQa ¦"g&(ôÒâ ë­}Έ¾Dý,p@\lØ}Œ¦+˜Ô³ó–+g‘ˤÎ[!‚q«Úä/•¿û€C{°íÊa)y‘îžé“ßë«;}�\€ý™êö&.Ü/ËòH6j°[=P)ÄÒ€0/Ïç‡>õï«•W>»wŽÃuð )m7où ’<·–Ñ6üRT oP•„Á¿O‹l"éÎ駃ËžJézáût Ì…ž˜Ãe-³ê¾ï \W(D¤Ø/œt³¤Š…ƒð*çKHWK­ðÂÉRY>o§M1´9\7öA´XÔ•ª ¢&3¼ÊË‘òì#Ì>?úš¦8¥ã7âÝ­jû—§”«ÍL™PoåNj–æë±`ÿO(Á2‹òñ'&Iïö›«û¡ÊÅ© á$Zi ™qõÑl„h7°è‡�,]#xÍë NÝO†ÜÒ@¨Fù„8füž¶'W%8î wçüBr[Ã:wë9cÏulG8 ¶Y` ²xY$“+ö”a1Ôø ¸�§Ä‘¼dÊ‘ê¦<ëÀ¶[ñ:AÊ®„i—<§èi2’­Kõîݳ³ßüQ êüHL&!Ì9º0¿<²;F vÂ} Íçõ¬×mµ¡!9¶ºQ¹\÷´k5 ¨ôØNÙneQTãÆTbŸy•j°ŠB4W �¦ˆ­»/÷”£Ÿ� Û®öMÓsŸ–ÚÖ�~1¥Ö<O3¬«“©Õ,yî_på k1…¼fÄ'$¯“”×̯*Œˆ>}wÒÎí_~ù Û>“ëƒP‰˜Waùš&X†ØBˆ½ ÆFZE÷B,6Csª,ÃóB('È¿~˜ydù…=�ŒŠDÚ‡|õ§%Å’÷nØ»o®£9×øæ�¦} ÉI'±Ï³U<㼈r +{dáí>7R¯')tlOî0èˬ­ŒN+ó5Ó€�«ê„£Èa¹\M'ëQWΈLGë‹ÙµÄLÉìñ˜¬ŸrOjkN�8T^“Ÿ¿¬ºò€ñÅ_Õÿn]ß’MiæÀ§L¯'PÜãóò@¹lþ@®¾›¿IZc’àÔ0ʸbx3ÖTÞÝ&A�g;”߃8v ƒ<E¯Ld¬n+¤gË¿B”ó²*јì­Ȉ`¹ÚéVüQ´XÒaH…"©¦#”b‚NtÕNÁº2bÊ ¬=÷j)çA€ñªmMV8ú·‘ ë‚!P6û iÙþ o=óéŠF> A(ÀÖ¹#ø´†�,Ó�y9xµ�-†Öqª,HI´^Î3¯gȸ<œ_«âÈiÚ¾Û`šGSåöãË9—n*½bRÚ4÷6SüeÿÔfÛy‡¹˜­–*[ù£(VÇq¡¦´x®‹8Ù¼š#Ô7ÀÑaò°<=·Cª#¸m?ä?*ºé…©‡£ÊtƒâLù:9# ŒK1¨0?ì7·Ë8ÀVV„ôxÉqDŽç Œ1¸{K:“´ˆS€é[|‚öÁ%ª-5ô•C0‹•ûHW½UW?8kèO w`¦j¥|’ŠüHËA¤«&¡�ž{ÿ�¤Pz0ÓšÖïéù"ib™Ö#.è.õ>]ÌгiSàr!Ùz#Â�ñ‹w©”ÃÒl~°Zv‡°[µö×D[|q%‡Š@„–·�UZ”Ññé.˜4…N [¬Ÿ&ÿiZ�P`ï Ÿáüå‰39÷ýÞÕ#)­~øDÍÕÞÒºé•~²@˜ÙÔÍ!w¤•ú…š¶×ÈÚØ¡ÆÝŠy‹{^,£åAlþu¡|6Ó•íâÉ×\ÌíÏ’=)ƒŽ0ó‚1:A«YWœ`žx&=¦)Äu~6mq_4拪ŸbNÛI£€ä)B¯3K¯PE�=gÄ'!ƃn{NV-ƒÕ˜­]iÔr,¸6ÜEqplw™j·‘¹y+ÝG9<°‹•ŽÕ}r•ªK ÊXöµéÞd- ´àÌfD#’`šZCïgÆ[?‚ÛzOaÑMòŠôf¡ADs`x‘”Þý Ä¶# iuíðÇí쑽R5fЇY.âC¾¦ñ…é‚Çóžò² 5k$ÌiÞì+JQŒC¤)H©×ò8‘Vž£¦dàè!¢ÓJUQÌP‡$,[8u«†ÇLƒ°�Ùª¨ø°ŠàÔ�ÙûÖøA³ôœrÀ2üešÄëÀZjð”Ïè ß+hÚÒß�¯%»ÂŒpÙ©zF™ñoN�]ÔGT«(…<_Ù}\òE±¸&ý~»qÃÓC¼�x¤’w®j2öPŽ8.Ñ‘+¡’¾|vçÛÿò:•èÉòr+}¯cud½ÎÄDo!¼4¯Ò Ÿšowz×~[¥'ƒÁ�u®«Âò"£¤MS>±˜}áiIŽÖóî&…XÆ­‘ÝÜ(H«}HvQ¼2^:• gYå#ÊØaõýs÷¯m¥lŒ¥9¶©¾VË�Í¥ï²k!m6¦F×}p -ÒéÑ{dBÖÞ{¹ ÑGÅCù-à?=+µ^Ó‡ÖIqÜ:Ò&@¥Ó‡ë5͵¤;5ÑT›Ã°ßúPÃh¯�†’ ¯žWµ¶LuÛ€L€|¶ŒŸEZBGÙ¶Ò­bŒÅƒ wKê¡õÂaGßQ1´Îýj¨…)תY¢NÀ†”•ìpâ�Î/Ýò׊‹œÂò÷¢"–Ϊ%Úhuær1o¸kxòµ=sÀ£�Â{NÕd©Þ\c æ¦ôÔ�Õ$ÃÊO+uß š=öíÊO*¬Ì?Qû¹]]Ñ6Ø�þîTq¿Šß¯6Æ�bxÈß�š¡C<¦Òë;˜½oarÅ´]=¦À[e)?N1ª›0£Á7`U/;¹sf ]<1âü¦ÞT(_‹“í³ÝÜ�iY‘Có;Aè­TÚ™ð×G(ú“žÓ-�G˜m¢S4­ô °¡à† ¨}xß߆ΟêÇ59 ] Îw~“ÅÃ4Ñs¯§�@VÌå,ë½xû ‡DMðóê&ªBTðözR.¼,ÃþË÷Üø�UjxwRüË\ÒÀ¦à&šc³0ß¶ÕÿO*ã³¥?CùQ"›^’/;²{H¹Ê¯c<üÚbÂôÛ[ŠèÞ£¿:�dÌ-ò|«Çg é�2l]åx*À £wdY†‡e¬ÎÁ—'„g@�£m:^¬ÿ‰MÿÅ2ýu$¨¾ÓôçËdvÖ0ˆÖ’}8g^¡Õó~qveT#v#n¤ž ¶PÖMfÛÜú5^xÍZ¹æ,—pŸ¿‘£ñ«0ÓÎuGP,:3ùpä·ê}xÇýìÒáS©Ló›ÈEÂJY:51#âx¨°pï%gN¨twªýäö}]¤><-y·`vUÛùG—ÏI›¢BŠ áõ]ß›±Úõ}ÕäÏÔxT–ê;á»5ùº;¹{¢j¿jÿ7A ý9Å,—jË“—;ä Fs±.¥7¤*ý­®Ýq^ H_p§ˆ/éï¿î¨¦.Únš#oîœã«¡¶áczç²ÜûYdUrÝ”¼Ö]ÖFÊBÚˆr€†aÂ9TI%ʼnÐNÈc‚±/Gê(Ö¡ k߷Ǥ(J¯ƒ˜FÕD•K4eäÔ_°[©UµBƒã®ÐJå†hyd3ÔpÀ ÛòŽ0WxU‡"IÓîóaY³~�¢>•¼Ñ Ò,‹Ý†n­E)ê“£1‚´&¿Æ(›wåS¤ËÆ›†rÄ-sÕÇÍ&3ô´Lí^Gzì&Ü»ß&_—âKèà ]EêÌP´—mUE�ã€Órªp�Ï™˜j/ú™8óˆÏ¢Ò%‘`àÎD.ÛðŠª40ÿ(•—Õµ7é:–+IøSšGt,oÚò5¨âpTŽg0�e\KÅL�]©»ú&¶nŸ´ƒ`3Ú“´ÛÆBþ&B[d¤ —&ŠÍPƒ™2þö×í¯ã7OZ{­°¦;�¼öÛÕ}©Ü�âR9YÂã–”>¯ø¢Öž7 ¶:VÇvJ,d¡»7!›ñ ¹›iÄ o³Â.ÇÁᶆÌXŸ¼ÚÓOu7š fÍä6z®•Z0²NñöG‡Ð‡Úötˆéo>q”èÔ å¢ðªÇ'VÜE]e/¦µœäøÇÊgëD‘ã œr¤’'Q8 ž£$‰íîAþG¡¢qκÜ5ÙI†ú,ímçóÃ-ñ†@øûÖÒe©ŸÁ�a ¤Ë8¶«JÖŠwh*lUs{#ÌŽ^+„ƒ)û‚P¥q�šPB¯Ô~u€.¹¡Vð$€ã1-fÁ ¹öJËlî°»µìÎÈ%¯xÊnR’žÎ A2µ¬áØgãä9•ù“©RMqm>Ü/}y†[„xY½§�µŒ!ìoP’Yå2å•eÞjÀiÔ€iÀŽe\Íõš_Z>º ¥ˆ“;+%Dgyaˆëûç {÷žjö†§T0ÅQ@ ‹^wáóh{½kuÉ+ LÇÿÈ4,gJåÙ0…Ë-Ž{…Fˆ‹Ï5úÊ/jFŠ"ÄMê�œéE·Óÿ¥\®Ý“Wfšˆ[Ý·@`” î2(ߥüÕ¯ò:Ém2Äðù3,¾„cÆy.|4‚jj aÝ-¿½ŠEÌV(K:”qx ‡$“>ìœOD:“'¤—Y[9““«t_.„Á_-dzþ^ò3Ø­Pshó#ÅB+ùqæ!Á‚= M½ÀøK[ÕVjnmõEÊšO¡8$R0Üì�Æ‚„gç#-÷ý¦üºM`K8ÎÇuÀÌÒQÆà îÿ²ûQÕÞ@;(òa…|�(š slJv„’ÇÂj™‚'@¸s¨¾={âÎÆ€SkN¬È†Õ´}™Ã„æäÀ‹(\Æ쳕<&ïµö¬~ŒÄ{U~Ïè>Ý_ E…Ǭ(v{1að Å34ïšù}”¦}‹eöy¢uýŸ ŽID-œ€¸bB•V.e„H̉w¿t>s‡„)SäþøÌ?TŠaš6+áß9Žw5 …�9µ[ASãnæÆ¢/*oÛ¹Œ~hÅ”Ñ5g\AûAemKêw«oäQ$[n£ÊYÇ­ ¥cùªF;ø‚+¸™0vÄÓñ2±Wp¦ÑjùB©Œ�6Nª–¥CU nã8/ˆÎ³A”9–}ÑZkn~V!PÀE…æùø�V«øþU2A×N"�ÑüÁ·Ü!“e™Q’݄ƌ|Ëû6ªÊ"ºgë�º¡õUµÇYI*W*”€Þølj4³OD€™¡•XSŽ™é¸c\£‘u¶]ð"¬{~i0Ò9‡Žã"Ò/GW @ÇGø]_V;ê $,§Ù!ˆ g@wÍå³+,¼aNZ`=Éî3µµ†Þ|Ðê—ÅÓtm�ÉRŠÕ²[rÅ ½ÌµÁÄgÐòŠåÙÒ𘹖Aq§2 sA>¾x®ÓËuއx‘|ízÈŸÆ'üÄ‹®#ãw°–Ö®¿e¢ç}Ýñ”ý­ïaK…|‘ÔyoÝ’R”&J]–é/mˇ¨J¶Ÿ%…Ïq¯à?‰,l £g “Ä›‘¶<2³*#m~�¨¶k¤Þ¸¡GÀgi“•Âaf»Å´9«Ž>gÄDŽ@y£|ÖçsË62ç¾éëòV ’[f…íãÆMX":Bò€[W¾á)Ž‘ÁjenLôʸ®w¯,íìÑhê?.ø×ᨇÊ}} !¥ÕƒÙ©k�;;¹vM;޳>�àÁ;P¿•­I£´/È U±ë;½�º¶�T´ØR¥ÄÓŒxÈnðeh扼¼=ã4ÑwЏôWj�J|Œ» Ù‘Br¨P2ÏIÊÚõìæFN.Âi2'*¤áqX<à¸:Ÿ,²_ýk3ÙK .ü›K™ÂÝcP­T»Rã'Ž[䳓°=�\«„+:& �Ì/A^‚1Yð•tÕhrpÊOÁ¨ï*ºÊ´3~ì:\k^Z¢ªµ§{½ À9¶~mx�ù×Lž[»Œrò¾ñ¬¶ÍH¨hàê~B“] x$g’ b>ü‰€þ*Õâ-”˜«½'\-Ⱦ\Iæ9‰Ìbÿê5�Ñ÷$s¨êªV �ʼnq´Š@gN>†B¡œ$†D~¯9 zC rx³„^íÝ_zRC8öúô™¬v̨˜mYÿ qœáM¿JÁ¥�Pšµb±äS+5Z{úlk²A|þè™7[á»Kr ¦$™|è‹rŸŽtx4üåü'îÑÍè2ý])�X¬;%¬9^0.#£kþNV]n^!”Å<ðk¸£40Ðr½“‡žÓªîhƒ°1ƒ˜)B¢äéeOÃ.|ÃÂê.”MFòFçvnÞ¥;‚b#UMzZÓ¤?”ÐÛiæÕxvœÕ¿vûË|ÜäÖ*;Ñ» ZD©„Ÿp¹~'ý#YN»™%Âmx·¥%.6´§GL@§0�ÈDBí8>^Ï m7Éð”o¿Ç&jSOæV—ƒ¹T#¦Ö!”çÔ�B`sú7&�=Ã!Æ@Jñ?ÖœY)ò"ÊDú�&z, J1D7mïN àà”Þ Mºµ^štžT™Atî#òɪšF¦ç˜JrZ«Íï±EaßP©‹±3­�×µ©ÕÅ8ˆ‰äþƒœõL—ÜnGQºÐóhvó`6ÈAb7¸üÄ&?)œ‰ˆŒ ˜MïOrr÷P ž¹ÀŠœ–iƒ„w#x_Ì©¼[ÖÜü½¸tÙA�ÿÖ£¦›ƒ‘ª%q·¯òõT�ð׎¬Ø-ÿùXŠ@Ø Ó° _ص:�A.ËéùÛA{;5{—¤ 4áÆ"Ó«üu0|j�YwŒÐ0U°D!Z–ŽO‰ Jzp+«J#—up,wfÖæ�Œ³0é[%¦ƒGTJy+Ë×(Kà²ÑæL^#áQêôŽæ&ux@µAÒØÍ`MÇ-­ÙŽ›¡£ÎÉ9Ö`EÏž ªùSøû»Z7"¸'W†ep !䨇�,Õä>ÓŒžÊÓ8Cµ©<¤ŸØÞŒilð2º?$çÉ.ÚÅ͘„e¢ŽCäü9Ó£Äû-;l>@Jøû´"®] H¤´ø¸×Þ·Û¤ž‘ÃSL\V�p‡²ºÀíŠä± %Á¢õY¾á”¢ïcQû3 ywËï5(TW‚þø©÷o—uNX¸#ǧ›†,oúž×ñ'Ë+µu.è… v:¦‘þZ™Ƀ4O Z…ÈD¥ûXC„xÿóÒW·üþŠjÙ”Ùò¯OZ@Ñnþ�Dà*b÷8µa_øYÿõ[‡ãà¥Xú¹öN_¹ß<²̇.àM‘Æ+hTeqú–ÜÁŒœ¼²‰¹MUˆ3Šp8Pû ÆÊ>ËÏãJB¸YÇ�#o5™dÄáT¹}óžsmwûIËS“Ò”ˆ°4$/¸²Üõáħ‰°aÒQ8/ÂNÑí7‘)’–‡}K¦‚$‡�›_ïH²¦åFEÉí�‡Ü�÷Æÿˆœ'úžgÇ:«%Ø–cÕ/еFÞà‡0ñU„Å4·¥4ëB À²[õûš*a…Š6ï…OKp£ÿJ3è¦i æ¯9àiñ:t¥ÿÁgšƒjã,à’ëMv¨­C$+¶'’Îø ÷UÔãPzÉqÕ©M]ëD_¯M´€ÎA¢ ¿çNØåVߨÅFú÷£Ïú„$ð±êŒ[eá>³¼ì»ý«RØE• 2ÆÐò£Ïy6”¿+á aè½ZņïS¥óÐZjÝ çïËn·.ò’Ïò·ojý‚XJíI‚ðñ™(YX_ÛVÉ© m¼lèLy^8q¢q&ª$!ÑžÉÀ@X}Éœ²uÌZÂ\v,štãqrr!oCè~[yÇ9·�™ UpGÏkY,øÕ¢”zø:ŸÐÞ}g˜˜ûÏ›ÈFi~ˆÙ9ÍwjÊÌ%p˜ 5êÏó8—Û2¯�M Çaˆò1ž¨õ¨�&"Nf ïg/÷Vëka�aG¿1GYR}1‰a4™$^r×uY[)ƼrèK"ŽtФJ÷°.QÉ[]3„V˜®cA³(D�æŸ,ˆæØ±º�õFFA5(Õžÿ •ƒò™v¦²ô{®#Ïë:C€×ÌÚÔ¬w„äÈJt¾šò¾Ã7•$e3bR¦q êŸ#ïïcÁÅâÛbMÛÜfV6Ma¶ôR}`ô�ìç,Åï·p”E{òœñÕ#it¾³.—ÒÇQ®Æq¹Ç\嘋¶c·½Ü@»Õ’�f@6ÀiÄôˆù¿'AzQÂWää} !qKÕ[L5ƒ‹Þ½¿[¿úU\Ï*š$CÔžöúz�-Åxëï„‘¥¶Uà±IÌ+@o…§Xo^ ò _x?ªc(—}Xã­‘‰Ìïj]0@è 2mW(3ú®g•@X޳’ R=¦ 3ñöºC¯ô#ʘ|wCX‚·`üw‚ÎéCÂí£§:š7 Œ)´ÝPäKtæ‡ë÷a–u(/bÑÉèÔŸUcTðFäBžž†ŸbôÇòç0µ[4N$9š" v91¥bw#A7vÍaÿKÞ)!ÃØ÷­1z °„Uÿù©a‡Û‰Àò‘ußeWu…”‡UÞ¿°�'h„ì½)>MutmkÆr¶)! ÀÝFõ8iž-¾%|ß®b,Ǻk×Xæ"=O0ÿƒàèÜÄHrï§í(6Æ”r¾æŠ3ÄZ³¦àÀWZtæ�*–ÚÈÝÆ$ø. wˆÏ5/iÌ9Áà\2k(ÄÅBg¤Õk�Ìë�S¹Ï|¤¾(Ã0Æ(±–+­�ˆI[4ÂDl’ÿ<Á¨vÛ2¦¯s쯯¥U¿¶‡Æ;ÊcU+KŸtè zE§�`2¥r@—˜/Õ†}"^}‹ËÀ Œ¾só7àÇ”ÞVâé%ñÔ_*C¬Ë±ÿ©XGc0äóŒ-ç“¡'rgÊjˆ~ 1ZȺ³ˆÊ/|F*è ¢*<é�æí¼‘ó—„th™c>$�¸�Y½§yÁ}Ç>èŒñåw‡ÜÙXúONƒÙÊó|?ƒ!¼ÿ–Fh:ÞS�]VjtÝèä ¦ÜKRý0FJáéÓK¹S›Ü –¾¨ÛéÊÊ7§HÝ® íl# ;«Edtº44ìny_?úÚR)u�yã›FÅÆÇò¦~#Ê÷h&h�ñD×(§ÿ¹SRíØ·@^Ó�M³ì¡Dh_±5.à5$G¶]‡jË;³ Æ$å2€ã¡‰½)Þ 1ò&pµ{CJ¹ñ7YRE€@cZ‹m´[XÒ¤vA"½GWï×$‚°ÊLC´3GÙpÂ+Ö¹E"¹ê:Œâþç7Š´ê;D-âÓŠ~±IÛ˜ Š^sŒî jø†/Ä�É]j†ãN&"‘·¸ÚC ‡¢Œ,•(DÑßÞip¸“k.¹ «d²™5/æ„@-È%öÀŸ{õ¸~¥U_KÄÙüÌm=°ÿ8‰ÁJB³£ºJõþ*ìÁòAØó²ª*Yt!¹†¸ ™:Ác‹0’6‰ÚÎi§ãMÈÉØ [äØIÛ¯ömç+Š ìPjRï™æJºÅ›Y ²«‚èÍ EôOÞØQ¬¼5kSŒõ´²Eó­Xo7ÅÙ"Ûz›­6·œ/‰Ç5 …Ëå¥Ý§Ÿþàîl5zcä�QÝq¼ àe¯×šÿH¹ßû’+ÄWa9œ0Û¼‹LÃúK¹ð™±Ø±` ²¹dN6Aì95ÉßôÁU•ó—Q5Mv‘á¯Iµ›!1öj�ü• D´ãsèOuF“�Ëß …,¶SlkÎðm ø'[ —¬¶5¥ËKn�.ÖõÀ„wh“Šj˜Ð½ þ‚�<’%�\ÄèœhQ9Ób]º‚ÛñóÍå°lð Iü��Zd�ä½t ÏpM<Ä2´¼š¥£a*ÛuµHw?©b±ÖH›díc%.ø{Òr”ÃVM^äŒÌ—‹¶ÎœxÊGìP¢ä§i…ëdÀ‹y3ØlÚ+Ù2bÚÆÙ…$Ÿ|Aøù¾p�Eæj±Ÿ~Kå’f¹ôÙÅ®j%pù£$å±—NÇ»Ío˜*‰x¬Ži´à‹ª´gÉòœA‹ŽÒGÊ•¦¦¢m=„tL²SÙ¥…>f•^+F±•”õ�Ý0ñh"÷Â^à*§®òˆ¦×å@Ú›²âþ‚µv»Ñãöf g�P�ùá–†Xø�K´�¨&²Ý´¥ì'{�/M™œÉ¥góÜ®�Ó:Óºª`èSV&°aÊ®šO.>«ÎÇÈfÈÜ.þ‘Iþó8d—Hý¿0Ud­KØTÍåµ!Ú -£­ èËç¼Äsß|¨ý˜£ÌõÇ�äîðÚ~�vÒ$½x>.ääü£c9`“ñ]ìļ¯ƒÞÆŽË†ïÊG{Kèçи'Q¿‹%xÖêMt=¡Q¡|\Ú©E~»%”Þ#¤-/:mù-÷C ’ë„�öèLò‘x¹³ ¾4Sœ£ßÄŽ�«ÓÇîhÀÿØýààÔ­&4âËwÇ�†*>ò�‹_Xñ Œ*•®fÁ@åèŒH�—°ì?©ÖL9œ´€½Âž³C2‰%²:Œ¦!lóÿ1¯‡�t‚µ¤�ºÇðçH3CB#NC%–�,vnˆþýú|ÝÕè»Ü 4|/†"VE:;ø7[€Agt-( õû­öÚÓ€îíÆ:�¾&õo/R?ézÝ·ù»êXÈ©Û[¼˜dŒÅ*­À�´ci~ÀOÙ9·i »íiÄ2XöC–ÈÕ÷‹¿Ì2ÙËÆæþ „+2X7rU�0ûñkÈ w‡Ð/Vø]HþÁ&Â÷/ G¥F~ }VTà0¶_3wàR¹s¬K(²bíp?—zío–c&}&¢¡È¡¸KÕÀ (H1@p‘ C}96gW ¢Ïø ±°TZi^w|cF›ç¿»º€)õ¯æÍÌçÜ#_7]U±v$4„ÃѼ™¥m¤­ÛÙ®'z~ºŒkGIÛ–iO¦ R¥½ ’ÙûþöT�ÅIÿxvü >è=‡û°+Ùl\˜x4”DÖ?Ò¡ U\�Ø(IîÙ\¨ou~ÍV 7‚ªa}.�k€~N�t2ý”Ú– ŽvûN­ÀH:!�Û-À_ƹñêJ1§SÛÑË-ÛО§Ï éÛƒ9emϺӰËãe¹w8CÂ‘ß üà©O6 *„t<Ÿ—‰hK‚PoKÄ@N8©¼ï–p]ie�Cšxÿ¥ FÖk$Frê¿ßÒïÉ|1azßM“ð=ï¹.ßH]y‰‚‚Ã>Ê2̶&ÅÞ“Ÿ0�Š“×váŽ×1JÜ€�BÖ,Èôz¨,¦yw#±ÒùiØ ÝCvC4~ßÎÓç=T‘¹ƒ ©;êuúF¡¾äµsU!w‹�oÝøŒýÛŠjK‘�‚ºÎÇY 5-¿Š^¦EÍœ ²Û–Ád ÇÚ�…˧pÅ^a¤g3tÂðĈ``åƒßÁ¤•B_•üà>™ùµãá¥W¬ñó6BdYð}:^ïšIV^ËEìßét²2šîðŽÙâG¨¢™?Ê}[üPll߃‡˜ü6‡ç�w¿Ï¡|éžt <¬8pÕ>Ô<„ñtã$øÕNñ]X«C;›¬Ÿ Ú-üj¿±°X­Wí*p®#X�ß«×ÑžrOÓ÷ÛŽ¿=aÀm¶l.¹ÿËÖ²Èç[·‰Ó7šzWÓz£¸Œ&'J kY|ë<,Îp«û©ûѤ:sö_‹+Æ”ÌÎi¡ÁßÀ#uËE!®ú¢;ãWd3˜|ÜIÍ¢­¥Ýgï.�4»„m±ívˆEŸ>ŒE|ë•…›;«äÎúOÏ'I0¤R�;@Ë­o[CèUN¨­{ñ–e�Ï®¨»üܤ 2Çì˜&UR8<:,¤ÚÖkT.¿X›©êˆP3�°˜iLÅWÔ[ô¹š’¾}A{Õ ¹m`eÎü›4< Ø[(ƒH*‹­à5ïoñÌ}òðcÚÏ$læ«�TöÕ�…A®AèªZ¯«ØãMûG0rdè-ö¬óˆ¸g?Õ)r¢÷ãÓFxïvÍøí;Äíu~ªŠ™… ùŒÜÉŽâ`�X׿Uú¦œ±�5Ë« Ç‘2 ŽÒæEª‘I ¨[ñôÂ3Õh" ­yùéeeõøí\ Fõ—©þyö1«ñ L…&ŠèÄ<ƒ�ï kNLýbjJë+,ª©þYBA3o¥bº§­zêUãÈ¥fÞª=›áÆhyn "WÇ�b¥;ù•5§íY¤ì“¡Õð@/Sÿ¨S*yûEN®ÿtu‚ôªîe4úzboAZ\ ÜøÝ•a#:¼÷Þãó 1V×)’=ÕäDNUbI]óYÆ4j„ÊÂv=á «/>µÖMCXñwynß�MŽÅÓL´ûS³¤ù4é<½yt||µÜÌ�cÿóTÌ‘°[W°?ZX9&d˜‡' ¢�©_�o}¬³8§”3Ä[} µFîR¾v¯ŸBì~ SèD!ŸcŸ¢%�à5‹¬/Y5?{œŽU¡žB˜uóØOªVÆX¡iýƒüÙ±?¼ÖÀkZ¢†nüçà‡—–­Gl[ªâvÁ^fêcáòÖØf¸½agk×uj&kŸJç>pð{ 6 ÌËd`®§Ú5s�Ћ-i\ýë,/ú¢£`ÖBû�×ú|Ò�ËŽ½9TúNþ ,žî ‰l®užG=óîðÊÅ.¿'tƼ S§EŸ>ó5}Z�·BðöK\I}gž7<95 <·K#W׌¨×ýe3Ñ*COì½Ëx×™¿£=ÝS>¹œÙåÁÝÚ|úr†x‰AþïT(þ¹ôŽŽ—vVBçv>¨Ž)©ó9êA²�ø »?¼$§ D\ç(d>?Tk÷ý·3½M`MF*K\Hûõcã ÑZ–dÖf¼¡Ó2¡Ží¯ð¸Ìj-+aÖ ñYÏ¡Î6ùŸ]¨M”€ßÁQš€€Þ¿¾‹1¢T¨¹\KÏJaöAÁ´WPCy>B~9^áUÉâÊ¡_/b›z(7Æ{Üþ¯ùÁs;æîHMã†BŒî±æª#�|iuîD+é—+’+àÅ�*ùö[7ø¯|¼ÇôÛ¹�•�A_Ž!ùBaÏÆ<Ù“Maë…òpB2—ªåîv paÌüÙ¹cZ­X¡{ÕÁ>óÈYW&ÚÊæêmõ©GEÀûd·kué©‘óÃõ^ªkÇU±û„‚oÆOÖÕŠ®³¯Š^Ì]ú€õ2KŸ·‹+³$1y¢¬Öõõwâ+”ê©ñ5·[ø^’gº‰/w×"Æf3|Õ·:Çç×Hß Fwû¶“, ‹c|Üâ϶Šª@7lÔ4äÛ ø xeºÓßÉŒ˜Õ£{ÙýMÕ•Ö2&•ôJ‡% ÍÞÌo^x8ÛŽ="ÓXTv…ùCÛ²QYø¬Ë«�jf–c¾c( ø›À`ŽTÿÚ9ùMQƒ¿èU°©˜ÊtsƒÝyñðžÛ7zgüY†}žÌÝmÊÚvÎX(ŒŒº…‹�”ãq²ªý—†'¬ ôºœªéÁžré\×[9øœñ;UW‰ôMN–Ÿ^}ǭݬ-ŒH\�øÑÅžQ—a!¥GIz’ÚÃP¤âXUö£gõ§ZOàK7~Ú®�91å'é,º}FÀ>CzoÑ`­N�˃xhIÙ†À¼Ë knÔìE Þ ™ñ=8¼ ;â@óû¬g$¥úˆZ2|£G�r<õ‰+N+f¦È˜¼g)O³–†óíSÄh˜ÅRæ·V•¢¬™cærB;ú½uu´·Jµ½‰=Ì0ök Ï””Z”Ð(C zY"üÎ;Øž`œ[Š’gtµÙÝý¹ögºgáh‰¥^Š»%,ûãl|Py•@Kòh›÷6o—ãÀͨŠÕZϥ؄›Ä{J&Ã(·AÔˆ"Î , <¦,Š  &S@ΕúFŠš6=aÝžŒ×ÛÝ)ë6ÒP÷5™m–9¢îC;ϲÇÞMx==:24?\,›ÝÂÛ#îM¤¯B9ò€I…ìH÷5¯Ð�m¾¹œ,ë4» ¤™Ÿªl®á:2¸n{}†±n(TXkØ=’hä¹�‰!y”�ý-°éŠï–Õåñ½ÆÖ›�H±ŸK‚)õj4˜,ê$´tb7¬ˆ|Í«Oãö=r g_wGje<#ÔŽìÂôêUÚ”Èñ›Á¬_zÂé|º �G‘±Ì@ °�Eç$ ¥š~£"[§õ(**-ºî³1Vn„Á…›R&<×èF£Ó·.r¨¾ßìnN;5]p.>$Õúf QFM¬‰‰'ž=GÍKgT)VÕrêTzTy ¡åÖÜækÇ]7—eà22ÁŠ–²)~Ð[€«¢E8ÊJ÷¿µ,õz˜ê^‘2zÅ9#l�Ž«ž¹‚Œž?é%a;–4?œ0aÕ?‚«$ÏVíE›�[?Âc5{…,·hŽV¦Lùô˜ÉVDÎgñl®u£Öø#ºXVW26P½†BÜúG˜-Ë « £,“¥.Π¨¯RÀb<ñ»Ïé!ê!|€a¡3žæÞÚ‹ ÖNÞ¸äÎ÷î—¦sd²ì±�‰¿~aƒdÐÜcR^8±�ò‚‚‘6T[hö�z#»h|“êm}bŠ‚Ÿåêß:åÁùk=õÞKqéö¯žW_w×P°öq/„ÜŒýï ;«Eü<…{’Þ>�  ›MÏ3çœÚag€‡;)O‚Z’¥Ò›,¢›/{Ž“ž|È6ƒÉ$xÌVN°·:&ËJSú㮃A+-¶¨›z0ët­/Ü 3îI!�{1Á’С$`l�F°bR'Œ‡[äs­[N‡Eòõ 9 ¬Ú wg…áû’¿P÷!¿u[¤„OÃw€i$Ó��´²ù…ó µ°u?µã>¸‡¯Q]Å"Yš‡›ÕcUú×ÿ±§MÛ¥h©*<–šâ‚r1‹sE…Ó“/‘È'‹D§ 6ôq8q‰_`æuÓ‰@={/Jtö¦åšà70ŸyðäÙb*]¤…y)—y 5ùKœ°_‡|Œ.gn C±aœ"¡½ä³ôÀþ"?ˆPî c˜}ëÑyUš Æû¨ çþ{ã—GÚuº/1 Ù_Ãõdl¼xeˆ, pôš1æN�x=¸¡,ð ŠÚü›OùWñl¶¬¦µoc�})d (¹ùm½Æ›ÄocK‘¶ü}ɶ�æªTÂZåúŽ/’“j"NS¦áÁ¹Š~Ø®N�|$aí!%$â2SÐϨÜÞ¯#ÚZŸ0 vÓhh%gl°n®�<óù¬ú:HÚËÔ€aFçé(ñÀç§ÂH-x>,‡Ã ‘6’r˜zκ·A>âéÁì,êÉ2†­ux†‹`ÍàqnÊ/§+Y¨Þ¥¹I-1 ßô?/VͶåSõŒœv~¡®üž$Òt§ÇEF�Œý!JaˆV¡°üÏg³�ÞæÀ¬ÝKùyúr…½•Þ?‡ Ê‘'tƒåÚß«LúæO°àd!ýô$7UÆ·rú·f²®(jbL+ÔÅëHÄ�œ’�­I˜…Š"¥�·LjB½qÎBÙ²)x/ð›fz9}„ ù¥#PÀ"{ä«>¼¶žö›ÊGõÈj–Y¨'–gx3C:? —l�lºde:m®ï×MÀRÐq¹ÐZ}³âRî TìÓ.@n¦ ]E>mcJk�gà8�kø£ü±Øå\W"JAc=¼}F%¶ï…{dP�6{5ÛÍ��Ì„iîPù+½øoÁ{·ZÐlð×HûLS𓸠avåÏ~“4çm{iÛ?Ê’GÏmUì¸0.–­u9¦Uñ(ò²©sœ#š-G�£{%,YWYÉq_:&ïØ§u’ìP®˜IгÆàµª£0[å‰g;�«¦`vÀ�[ÖŸ� LK«“µgEl¾ž|�J%yZgèéëO‚“`F(Ž¾Æ `ÎÛé’­í±êþ -ŸG»Æ&6Ô‘:ÑæÚja%&AÙCYÜPPr¿'%ß($@8)c¯ú`„³sË>¼óìmÓÒ~ŒO¸nI2Pi¼¼Üø/ʑǬŸ9sÕ”_âºáü`®þ~R²%Åq·æíÓ©NÄVVÍ•ÖW3š)Ë„qÂ�c$Ñõ°£P]m¡Øs{LP‡Ô§Æ#ç�ÓF¬ÞÜÐÏÁÑÔ¾ƒH%2^YK¾´²`Lc›Œµ®˜Ì¹‡Dl™LõÄ}N8Äý/iÒ�%ŒftTáÙÕÌ÷äÀ7(Îæ(eGÂL›#µ>è{ªÏKgšÄï¬5h=»r“aµu@Ξt%²À-\SƼ/ŽŸ› fv¸Œ ~À´Y·¼1a^í–߬ê›U<¹jÈŠE¶j3å:Ùjý'�jë:„�“³ªVP*à† éMágt= >îÇÿˆe™±œÆfZÊv.ä×+‘‹!Ãã¾…L[î/X¨ÄÏiðbü$‚gP<'ÖQ͘_ä‹™çv¸7Y¤ýyî¼f×y 5¿ƒü– ¸Zü²EÛŸâ¹òäöÙÜU3wI4÷N@jä°çØ©ÅÊ¡Q9V;Ñ“5-Q“v ÒšÞaà ”˜¸ˆÒÑ˰MÐ6U¬÷…[q¼ðš|pðÜÁGUü Ÿå¿Í-°³îVÞ^{ªð؆À>¦D” ³êá íÊ{È8²yVû;€üi´ã>m ÑÎm~£».ºì§Vi«Ÿz>ß«bï]¿�ìN÷õ30|·Êüõn…½³3'|1ˆ‘t–2AþÒà« ã#¨ëùiÜÛ´ó-�„”æ®íËü æÐ£œNE)R~j!ÆJy«g¸¸+„ZßÝÌ®%~#¼‡Rí“!PÙQ8N¿”×0ž“ë‹¿ðHºmüRK¢äác=�hm² Äûà&é¶—@¾bã{Û«ÏhFúÍåö„¹¿ %>¥Äøi–$™@žÛ²GÐC_Uu2ïÿU¾¹.ª¢%2‹´ŽÁ_Õ^S£~‚=‹Å,á74ˆVö'1d�DB¤�1‡±èå¬ÅámqG‰ºÂ„óŒ¯?ú&‚Ð ZZD ,­ëzÉw 9ù]vÜRÜcìÜO,‡•%FZÿY`Ä\×ô;´¿A1:´µ¦bþ×�F~x¬ }Ï |Xœ;W4›(ä…C}ó…h<ÁeaB8¾�fÔ‚õàX둜`¤ii}:’xDßùåD�Ö{ˆÀE)©g×ÑbåUšzÿ‰Lõ˜8¢ÂˆU%ëÌqúâ,ò™ùµÜH¾­E YíºgÜïcß/-Úã+áW´âŠZEÕð¹T–DUqÒn{ ÓÆ¹¶00 Ñ Ë©SGù޾š=@6È?g3É�>2q� šýø‘Þ÷Ñ7� X Îâ(•Gø“Éf3êå€;['’OO£;'¨æNñY޹ƓàÞX± àbsñ|¤cKÝ�Æ´ª€·0åãÍRÂY­C=Ù¼¢Qü�‘ï8_ä1F$Þù$—x®EŒŠAæàMµ#sÍ)–¾×Ž1=̾+ãâ0ÿdÀ-vBó׃WIì«é ÔÝSÀøXò#ö¦R�Ý5Ä�BŸ°Àÿ©àse™KZhjEú6¼8»îðbOÈÈà’z‰‘þ¹Øà¬"U_¾/ó6»(�D±9~Æ��›,‚ÆÙ‡mnÿÅói’½�¼‹æ”z^*…IÁ‚di»Q•ómTØbÆ%^¦[Ià“ Ÿ-ú+Iâjƒ¿Ñ¢Ãk‚Î|QglĨ—Ð;,bŒèû^Á„ ¾¿u¥wS:EVºÛö/`A­Èº{‰5e0í„¢å}8û7⻟p!ëéëƒBü–-Ûb]a1(Y÷GK(ÍéƒOpú³^ã;Dxja'ž•¨ÀƒDžAêAC …'!¥¥ƒ6p“”= óÅ›4öYKP}†¦±Ÿ“¬ÉåâäAi ›wèBЩ‘;ß=p¸×W‘™ðR÷¢ÂÆÈL;r..ùÅP$Ò¢“û8ç&g-3§þtƒ1΃8âì6¬P« ­}ŒWáOö{0ât7Ñ»‡³�Óñr¡ˆ–JÑõ@¯‘ &ng>ÇCãѨêϨ ~H:&£Ø×CL–;•# û„µ9xÜúTÍÃè=¾B-blT—ðg¿²�›ÐÎZÛܤ&Ðe³€€³/&uºœL�rÍ�û)ûÁ sÒ16¾"ƒ‡´™bõ€0×t2¸z 6±¼Ø*Œº±|·pp΢µXÉ•Âoœ2“SµkY`eƒð­„û‡é³éÓlO#{M§î„XX˜ÖÓb&YÇ6ذة¢‘ ü`4ÎáCH˜‡ñ#6ˆ«$8ÃvûéáB¢D.ŽFkÀÍþØ  7þ#lµ|üþnjS¢b+e*1?TL\¿ó ›–Åðß}ºœ{øž•R[ì4»Ÿ˜0Q¹ã%“Åà²3´MBj¹IzîAQÀÖ\ýÑÇ.츲ï#Ÿkh?§Äž>*tí´­&«ÏŠéñLa(ò_R²ŽšÜ­ã¿9þ²¼¦óuæ¾8XŸ@_Nˆ^|Ù¼PŸ<2V™£2p!‚c“;,8´ã†Ã˜}qµ½2A &º±†¼x@¤×qø¬Øb{ ˆ‡{ �‡BE G–Žç*éædÚÊ¡ØÙ·eè½÷áL‹y\ tM=��P+§œT‰ÎnžÁñ�OÅ‘Fü�rÒsŒ ÜãÝ\‘c ÏŸC¦ü‹~Œ�„°˜±Ó¾;Äœjgc;`È…?Ö¥l[®Íw“uüKó™±C©>uÛ÷À=ŠVæsp¾Th¥Ô²18ÌsUDq¤u.…ù$¥’ׯg%¬Z ,@dóÖQtY0;Ù“A°©B Ä�-,µßñj·ð>Õµ-°²F#pɧ%ZY³ŸÙO¿õö{|ÓØ{ºÐ—é}ä÷ÌéM­›ÞÕQ£T&T¾ LOOŠþÇ™”¾Úˆ ÜÆH}tõ#¿ËšëžšU Ëûº8È™Mðsóû¥ÔÅ’-˜úx9V�ŒÙ7p8‚ÎÏÙà §e<pÈßþ�d<æµ¾ AR;Û~ˆÎW€)bÖ5È7æ F#(¨Ž¨z1)r*»Üæ›"$Ü•ª@÷¬°ÀfG5NB�ÿlØŒ?k&º» sß|BÕ(’¼Ù´ÛŠnÚñtÌiÉÃE`ÚY˜‚„vC,ä4�Î_ QØ‹Kö=*d.!²6cùÙ²ã-ïG|O Öœ9§»vÎê$–Ø�k¹Uè}A¾È|ßRš¤è‹Íb&§õ0 %Ìm¨ òíÃmõ°& 3R'‡üœN±à'W��ƒ¸ !˜’re'„ù¼IŒkA~‘îøKhfØ¿z.ºQÆ6Y·žpË9QÓêÈ~ï _£±2‡‹ûçʶö½ï‹½®p�îé˜ ànî€Óóv+5-ý.To%¦GO™˜›.qÈkòÕænpRKÄ‘6ظCG\S*P{}Mn4M»F�܈nèÁÃÜpø­…€÷^€ß6Ö¤ûÑnd&# ¬{$gÜGýû‘o§Î®0’5”mWœB¦‚âa·þ3Á¨"'(—/Ì|Ô¬Óø+s¤å/þ@[glLŒ_&š™IÜ%ÁÅô Ý)9x˜�;„ƒŒæ€j6¡ÊÏÛ8‘bÀñz¸oy„DŠÆÛÙ¼�7µwÆY‹ ¦Y#MÿQ ¼ìêÊLÓÈ D�qÔ4½�…›µ­º>ˆ”¡®îžÓ¾J·}ÜmW;{nX4Ç0©è‹™QqK9 �¿òƒ)Ò}1£'jŠrt\¤ É~¶€Í\”°·˜Œô¡d:õJ3xa‰¡÷ E‘ˆAß/õq•®ŽŽ¼†„Ý-'Þ®‰"9—)q­X W Y�ry„ðo7W]‘G9·o4Ð:á;ÖVªæTú­×N“tŽgÖËì:ª �]x€€\ïtŽŽH1¨”Œëœª£m½Eî9.W3^�".Z™Âö#D‘j-zOÿI›ÀçL|æ®xq# ¥h`ÝädYEê¡÷V‡Ê©$¸ ‚h`}1{/\¼‘A77© åÑësGÌ{árAÅìqìn�v@D¶XÚäV Oé W3ãýrü~zÕWµòÌišT«i‘rÐJÊAÒ1àeNîµum tüïí.fó7&Ù·¢£ÊI²j‚P:BwÈ9+Ë;|côd*ë‡'þaÙÏ(¼à™þ5£4RÙL7Tµl)cô^f8Ó€ÂpÒ>㥲k{|ÁRÎé+ð5”½LÂlû †sz$^S>�œ¥þ¢ZNN˜Añ͈ëyd+^4�ÌO}ýº-IM/V´ÌZïÇËß·EXˆ2½ú\•z(4à»­¸õÁÙrÛÇpóhè·}áŽÅDf5„Ó+ú\sW³o:”ÂZÅÒ3eË8«â³à­ús‡ò�‰&É`Þ³s-ìU¤EZÝhJyºÕÏáFvo?tü‘TõǪ›«íö߈nÖ%NAgVˆ;<6…òR/Ï™nÕ�ü¢ßA°»1£1i‡pQw€´~�.«åVêL'òrÖ§t"9_Æ:ÞåXk¡¼OëuÊ6ü+Ø�Êå=`Ü}ûö†ðFåçrš4•Ñ«Ç�âZÛ³KN©E)±ì™ÉÒ‘©r�ï (“·ÚÈÐ¸Â°ÕøþÐ䤈p0Ü\loÙs\nõçEÏ&ÀÆcxú!Ý×g.ö ]‹[ÖPÚl%Ê„™Î{•Å3eÐÖà‰t¦zæw‘v1Ï{¾EYTÄ ظ´ÍlH"ݧKôüô1É_(°øE½¨�ag%êw¡ hÒ¤®äˆÌŽïM¹ÆðÀ²¸3 }`ÇSmZå­T™QjRÊqö!Â&‰\mHP{MäE¸ÿÒú —(ÑÞÒ«æ¼\rŒŽ–§«×/ð4§8¡~!•©÷ƒ4™Ï¯Î,û½aAïM€^ÀDóíTijÿÉ)ÄsÎ*(ì‡Õ¶26�Á´ìªfѲ�ø®Ma Û èvú{xªnçÃOž…(údšsyø~ÿ �¤ÒßE«a.;°Z1éþ‡Â�µ ”Çmƒ¥ OzI¬e§t½n©•©U>�À+ÚÕ¿KÞÍâk8í*+Í~säÑC¢Í ] ÔìÚ¡ÛPï¬\ô@‘¼´4]B@Ë%éùa‹�§‘úÅ–»ç›þSˆÅrù¯zì,˜É|6¯¹» �²H ¯Š.a¨£Ñzûÿ !»`½F� œ.^Oò¨é½*6ôß²aSGß*s<­” ,ذ¬z,ªi:Û×dv4mæÿ�þ1 dicו¼XM¡¶«,žÁ º®¸*XÙ³¹bÊÐKb¦É˜pK^ˬTzVáJ8·¼ÊØÀ6©šhaÂ^Ðôž˜þ¢í#³™ìžS[k³[e©Zƒl]/Íð¹�ª2k0vj«Êë4½ñ1ö8%KD�ár­RRÓv‰vùæc{¬ôœ=õJaÝÃE8›VüI£ç:]àœ¼½»Ä3¼WJ½—Èð´Ë‡„˜7çÇÜ`‘*~ÇOª‡�ÁÇ?ír«…–ÔEfñüÃÓŒ”תvññã´¾«®½+£Á@ß3µ=^a|S“µ¹¤i^àN[^ .WÃqT¹ª“�› QñÕZ+“=ha)ÐÃî\v5*ÇyŠ÷Ý=hR&žœõ—ÒêRR;:®©¬R5=ó¿gxéH‡{)Rûh=%.îé4GóÂÔHSó¥9ÈCwåýÞº²Í¸xÞ”�LN8é_›Àžá5XYéÃFn+ÚLÝS=¨~ßûŒ”†¹„LŠi¬Ì# !Ê:Wâ"˜ª�!`ÿQ[G[�US—$ÍFèõ¨‚{°êeà²GraÄñ^·X»{ ïEPâ—Þ%qðS-Σì5}=ë/ W�»—V Ü˜ûXæÁ�5±³ì�]”¤ˆÔ<�ÚLuŠ��‹©ùsXtÙK{ì6 ˆ,Ì ºÂE“¾¤ô*u°Ú-õt é=àÂÿ¥¯yKõB=ËY¸rHd5#R"ÉìlœMÐKÕÙq­=jo4 ¬œê'Þ|J>²�(Cà +¹ôk.ó\ñšçÐýÀ¥|0»D¢ìŠÆ›-âÀ[IÇ~Žˆ"4φjšÞÕ<°ÿÓ˜ï‹g¿ ã]o3ö)÷H–~R=�v,ÒœëVÈprȪš¡«EMÓ;K{gÚÔ`UÈ"bw‚E”ñRÇñ8çtêÚW“ÇêúÇT3Øî…äy£¨Ÿ›Êaá‹-²%â¡:ðWÕÝ0\èó�À2òq™ŒË{'-ZgÉzBO÷*ø‹›Nü  ÿ(ññþ¡â¨“*ˆ> ¬`™¿Á`ÞM»«ÊVáÖlnÐõ'/Ëϧ¥‚ÒÕo��ÐÖMÇ3©ïÙ™w~ëÂÈ?¾~[» Ð��E¹¯s+4J£§œÄ(6ù‘Çà ‘¹÷l£^ZÝßwqúæÍ0_h†�VC \ÙŒÏ᳑n¥ÌÀ™(R`�Ai"è�ðZ‘ÛÍÖh{Œ³zÏ"å1Àϲç5[à&Ûž‡<+¤E!kÚñ¥ž4>º >¶Jµ CØÉÙ2ó©·,6Iö¢ÈÙöÞ‰ñá0Lþíµz0ƒ(ã¡_û4üZç«�˜oJ<—­T4ÁC‘ áúßvZ9ZÀc‡HUÿ0³)‚ÕÑ('À(9sHþålÈñT‰Y±]¦H©3-¥eÓÇý6¶•‹¿büP~mÕŠww-¡ˆPÝž-–‚ø°ÝEµº”½ÖWfÉ:‘„Aðef§uoóZÒgÎrj:'×WUö])eíwëÖG‚ƒ´ZfY·9l§‘í{º“ÑÞŒ#€ßò�5Eq¬gµ!›l¦ø‰ƒ€Y§Bý}�.ì7 ە殈o¹‹Ï?35 ‰Õ–Õ•?±ÃÎTÆä˜.T„ÇË�Ž8­l—3° üà1à—´¿ü諸â7(´ÀçØz½÷½bþ ¨®ï<;¹PKÌT²‘L6•©t‹“�{˜7ÃLï;±³Ž§Ûªö1ôçÀÓÞlûMXMTÎBôD>Ãûö„<˜1âçKÚµìà‰‰©�p ZÁDY+Æ<É×”o1žÐÄݵ¿:88Ù ü�n…âçWVuÄõ,/ÐNû ýB"G8.N‰-un\Õ £ïZ2`ƒ�ç˜,Ûgi-ŒàÔ–ÉùrÛ+ŒwV÷(‰#ÈÉ\X ,Î×é_’òÌ SÚHó£˜.S +­™þò²Ê“¾÷ñ<-Y«ˆD$'wr-gÉáô†¦þ‘uÍOõR§WRzoTíþS. .Åiä�ôY.Z¸yFÚ–u©‰Z{3'��'¶Ä¶_é¡¢ ­`ê ú¦êHn£‘â4`»`ö>#í¢] å‚ÿµàIŸKHòxl^ê5¹,¬,Ëô‹ô®žöF±'ªk£^;ÙÞF˜câ‹�0$ybþ¿Åsç©©@Üqâ E3,\FÔ­4ŠSe—Ù[øá×n¿�)êÆ)c¤ôÇÆñ5KÃåLa{ø…C«þ4ĺ?6›^$zØÅyG©t,T—rÁGtøcB|ö…U=j76´ÓôOÃ’sQSJ½À20¡“‚0Ç\/*ƒX�ЈJkVj»hQ0�ð¯ó¥3¯LNÅó::|¿{9eS�<Ý4ØkÊ¥Š�ëŸ�œ¨óâ­|Y)…Á]<¹ã/3 (.âÁç6ØKâ•fÍÂgv9×Ã(T¹~hÍ‚2®†ÇaÄcc1¨º1ÿ<˜jTeÔ·¥ÍA¥¦há�rø[!óúêù¬øÕî:ËÕhÑ2›‘ÕÛtîÌ6�Õ¡ò“¨a2øØ�¨¦+h¼W6(’e. V�ͤ¨�ƒõ„§>¥¶»ý7ö8Ë. ‰áCôlx‘6>†}ª¸ƒa2ûܼš�£Nžjç°'[Êâ­R|øŽÃ‰.Ô:F+±~t‰n×¹ìúo¿${îÈУ†}2g`é @”[6“æª0<<í yþ]€¡mÖ[ú ^ø¬Â©eÈ‘rlöMgcÃ,˜v<*å?Ä'”0Q.ÿ #˜œÍTôd›¯„ÙÑ2@¤·ŽPsà¾55ûvÔïÙ%ù·…Ô¾‚eî ½ŒÛ7G ¥:/–++Ç #ц×ÁÕ§eìA³×*ßÛ@crø–Æï ¦E˜&èÑGÙ¾ÅðQŽ,¡í¬´Èö’µ³x DSïðÛ^dœ³'n»êù34KY¶¦hóñÈT¼ZúJäkj$!l�D\þè9ÙccJ;ÞÐýb>�~b3ÌT�bwÅä—ˆ�Zq®cÿ�˜`'• û·¶v}Õ»-‰Róþ€),g•HÌsÅ7ø "�á´!ͯ³˜âµ4¨å$ æ^ š1xóã3¤;µQÕ8ôâç€vXÑ“#ⵘ*uF«'¬ebrv²Æah›ãÔ½ öųOð¸4ZQd‚/Hšq„—s:“N›o+1ÉÜJ”ÏX�/d†éŒ@dWÞ±¬Ã(øÃ¿´Å³®/Ñ{<0œÁÇoJåÀY6YÑ “¥gõæOÑ‘-c�íTèÁ!=¡YÅ*äP�•Õ: ½¶’áGoÈCâ“ŵå}‚ù’ˆd´v�ÝUVÒæÀZ~Å»éT“ˆf••f5ÓÙ@ÉʲعX¶Y…44@õ­�"B �CµtäPèFºÕ65w7Û2Äð$HW·×Ax“„k•f’åÉæ–PÑ Ž"øØÀXúÛÏ#f °*®>WÑé&¡¾;7ãÄ^A3RÚHÞ í"[FNô ¹JÁ}Þ±ÆËé ìi<`_�V( Bf��WY”aLf‰^cž :®nêÞr-g8Ïþg®vHí~š“WæÓ¦|“ ¾§o¢i°³ª·³¼ëÞ60;Wø»AÓç*ø+ÅÖN“oÒü×íºW]�y"8}“t>¹2V³ªzn¿VS<9æ��®~èGñQÃHC÷p’ˆ�YÃj¸·ÛWUDä¾¥÷6w}Ë÷+áN½­‡óÙrIJÓ#ÔÞöOðñ{ywX_62Ô;�e´#l1&/ÖØÄk³í4{ðÇ¡e¦Ij0™»¼@ÞÇÆl{ºÒ~ÌÊTN™H]Y¦ÇU¾,G†é >Ü]…GL£Ýçåb]œ�¾8@_㙀cå¹VQã©B.0N¬÷nRy•g(Ø—É„WO€äš}‚7bW$Ÿô¼ç!”çG³Ê#“mÿöžuàµn>¸øêÔ¿õá" à‡ø“WÅîÃlsk}$sÞÀ ÷ÍVãIˆ˜NXˆ¯ \È™µO½¨ÿ�NÌ®[^dýŽ'\©�g!! B”8cÓm´D�¦UëèAQ?¡ª7<é<î/=2úC¾ÿ3"(¼(Y¨ç;>¶ÁDµp6N6DÚñÖ:Û¥© àrrlàr¿ìMø¥TÐÀ–�Ü´@ý A$•“²õOé�§]xˆµ¦ôµ:99¦„c|dHbª ‰²h5™ËõBæ•dQÐóÕV]‹¥8­Fô+‰™ÖeZòï“7êÆÐ¶c9ò=?@QÞñ²ÍWש3çÊ}F DìÝ,P„PÑjÕ™º\õЫ/ ñ‚G¹è{€gøŸp[sÞ[Olù 03ÃàCŠ2ò‡ ñBÉáV:iQ N¾È¨Š=ÈÚuC¯§q¦ÀCi%ÈPŽ]@p°lRý«ÊÙê} ®°æë«ëÒ -®26‹ÈŸçªmøuØ |ªpýúŘ|xj¾‘™7Gâ¶�þ)Jz;m�ˆµü8ÐÈå-;ÁyPe‰-ç+íîù©L+B”�ì…ƒa<•…˜¾Ý¨4€›Ì—´��ÊHWI Ô‰¨¶•ê`êÀ#Ê€Ú$ªÙ¬œ€·)ØL-Â}ч±é-I»]op/ÙõhOOtÜ$Êü>Å#ê0˄ɒf"�Ìïl¾ÆW…~¼ x|¦XW‡TßAœáé‚Jˆ£.6?g­Ú›=Y)©B:‹æ?¿è ƒ£T¡»Ö¢Þºú’·}•þžæ˜&q.ϼ!) –þ—.yÃþ­„^=ïyq´ûIµÝèljxb_7úØ ¾ŠG@È ìÎX3ƒ£ž×¹ú@Ï RHýê’E×4ø8¶òšqZ}�í-}Ì:I·ÄCÖ5„”&wbÏ�¯OôÁ$„3¨i¢³òL?Oƒ'å´FÀYh,¥Å ±‘�Ãxf§^S}#¶-¸äüœ<xÎçÁÉ sv}ëÔ}Ÿ}¢R¨#ùó¹c WÒ�Ò�%òöd‘˜ÞxӌŠìi±È�L‹|}ßÈÞÀüé�ýI’²þ=K—p˜ »¼çÆq”÷Âzì"] �wŠ£†çÓ½ÙçD.cìÓï<ÜŸã´ùù=¨è°ÆB å®Æ Ìo!‚ø<(š§H¥FBh¬ã-ÈŠB—N*}D öò…@g³9rˆWÕ zT²ªÖº=¼1j˜ÜîÊ«jäžÎûÊ)Ÿ5’¶"”�Bz¦9ç~OxgÝË©RàJ-äA<ŠcÌp‚£Û±@Ôç¸oY (þ%íc IÆpáŒþÅz˜Lnºú›5s”Ež±NP¢¤D¦^ÖB•[W}Θ×xg�]æËÍ žä=Wüõâ+l-åúìJs·=ͯLg&! ¡ÀÍ�t±Òd!Ñ�‘€sˆ õ.:‚ÞÝiª/“\Hÿ¬}}@(ǸXŸˆœ4‡c¾Hû›þÎÌ.GÄ»©³å~ &ÙííRÆ¡‚]ÍØ»ésÚãgVÜJC—!új›)Û©‰F5²©År á¹É¶�@dì3P‡vào´òïO{É>QÙS…ç!­þªË³×Ì#ãP·”ís¸W1VÕÔf=,xE‘×Z��þÖ ‡g(�¼iøÐ8÷q¥*nÄ‘e'Gº¦†”5‹Œnµ%v"ýdLHÛjÖP.‹„%o÷—Ut U¬J×fÚoèQ€ëĦ9ºHÉ@aÑmÎaË>оP`…fw+ňÔ?y¥ä} ·'wVΧr°?ÛBu Ó_»Çð¯îUJ‘è£e~5òmJ€%)?ÛøËê•ò<.à†àI�‰É0¶Ü&éJmÊt¶7V±PP¼oTAÞþvü•׺ó*˜ŒÁMº¢k òŠßëÃÈRñZí¼�‚Ñ"Ý;*•ß@í8±wv¡�Ç^̪]´Åè±æœce õ%q&‚0€î†zz“œ-??¨øŒ0™ãÌLæi2P0 Åš¾zßFÁ„©14§i:[ÁÕÁ¶·°ÉÓTꥉ<ì‚�Ðtµñ’‡$ôemNÙ³PzHÉkbY;4Ðu3”hX`œ´CD6A'Ø< 9_ýº©Às�ÅQ3iËH�7�Gš&H$SHqA/Ü;©É§K#…­¼É&°ëŠ'þ Ç=]'ËšLŠ·D.ßÍ7T¾—Óá"´@!+ÑW“Æñ7°È2‹?À“\åD«�_õ»`—–û¿W¦³¿·.) °ŽºN /Åëâé_­Fx†sYÌœ ~h s|€‹ßFOÖ#”,ŽŸÄ5Aì„Úò‰‡L†Äø±²¢ö¡'ÌÙ…!©Ý›9û"Ù¼9HÒ¥eƒÂ^ˆ`ïÚçcóT ¬Ø „«mñNˆw_ƒbݲ²+÷/ÈŽeÓ½~fWfµõò¶Z=64qÆO‡ŒØü,¹Qábñ-î!H[Ö3úûù¤{í9‚çP›Ø»4Zþlf<ƒ°MDsôÈCUL!c H¨®9»ƒãqXɽŸ^ºs2¶0b´¬‡RT×fÃ2µéŽCä½w¯3¶tnã Ž…~îû©ÍÖP­u¨¤‘ÜíÕ�ü¿ÞTí_Ÿv",j·SóŽY &(²ÚÅÌœ5<Ù , ¨E^Êhoxk¯h§_Üv¯£Mwƒi¯0#Ÿê²¾历{¦k)2ñ�ª|··-€ òÃyeİ_ÛÐV�Ã8ˆH¢dž7HÊÝ/Ϲ&cö%TÍXó*O‚1ŒªW�³ä¾“Ž[ Èçã%¨‰³Nø×ÂÝN”ýçÉ+,ëaºˆ×¼Žç˜)­25ƒÏr9‚u?àí,º“ Çe ­ÄðÇ¿S—-°svŸ. ÉºE½-m2už„ôNœÚ5s;ØtpA>l˯€ls%íuŸˆ'^Ò¿}UÃàYÈ]@�Ôâ€wÌ{áÏÑ À¡Bg’�òÂ¥ÅôbSþWQË™aû™S„L±¥ûY×6ð0(@uÉ0^È�që!»Z�'Jµ¹âi‚qŽ.NÍ »”M�mœL4j$§mÛ–×�¡óŽŒÑ7Ýúý°ï�gˆË2�¶m¡ÈÕrƒ‰àUNÐì[µç8ò’M¶ø»w.} \\æ�Gt³TõÃ�gÖ(½šÈi˜~ªÓåúÑ;¹?&è ̧¹<‹ýÝ8cåsLŸ,7¥«‘FŽ÷?x{&°Õ÷¡k†194íi§o\%{Ùó7‹„¨4ZqláïÖ¦DÐaíŠ;Ä¢?ò¯öÔBVùãÅ�¡VÅ"Ív½ž2šÄ)Ü u˜$ÇÚ n‡{aM¸½œÕÓ¸¿»^• ¦Œ{ßFÉ‹7/ƒÐZ±Ï΄³k°ž¨ÃI#a°ƒ+�ìD`TÜm·ü5 æ¥°ÚüÉ7ÅUÑ%ºpôõßñ(QT{v¾“¾…½¥ë”�#h ‚JL Ò*ÿÏp…Ù\’x"-À·Fã5¨Y’/Z6<èWò ÓüÏz&:%Sc7eKcÃÿd¼jdá,�kdK½[ÿ ÚÉ+9i¬è|·×¦«\wTég@‚A»�«?e—$j)‚�'Å]o[gü¶ôC¶þÛ¯B5ëj〸è­W©WùŸ|£ÿd`)>J´dpgªl2‹lJâ,©8|×? ôßIùºÎŸ([?ó=âúäÌ5«þí®�qn§ò“(qb¡-þ·Ï^vðfúA•Ó¹?�óVŸû?ùÆÿÉü9Äêy[ø\c&ÿdý•›…ªBÚaקϨÕÛ [â^€(º�wq®T×ýû›Ñôï°©ºVÐ0ù}�ÿí#�;¯†gi:1 )÷ˆÉýŸ|YCK»ÿµžççÿ3ëCµ?r´3P:¯›G–%4þ{oòæñ#ÆÂT)ñªcØ7‰ÿÓÞLþ“�Ðç“VJ]0sôiè‹íN-¢s SV & èXò—É>ÄÄTC¸&éwì“q¡PõÒ”À¼úêðAš¬I³ùo_SH¼ñpæÊròžñòMÿ“AB{OxJ˜þè}¼¯�Ä W�ú,Ò=wœ±�BGéS!اAH�y�‡äÌ}íº(Ó�¸1§­Áwek%ûo¿ ­ú"®ÏK(>Ì¿tËêòÍþ“ñX¼_kÍÍw (Lo5fÅЗ�)Áò޳A|§7jËBõð9>çÀüU ôÏdƒ‚Šì„d4Øæ§Åþý�ÿí3<YÑ‚šM Ueâ‚¿(�ýŸ|1KSSgãÿ¾Oaíд‘&oAdž¦å²b>ÚŽìv`ORk¼/¢1áÕTÌiÀÿÛq1uv¡31tù_µùßg°TþïM,j$è[yµåK× þ:óÿdjÉõÞ–eÿÊ Z÷_iò ˜äC©»+·8à×*�:ó¯ß·…^ãòØ®}7}—×Г_Ž×Ц(šWùTÿÛÇÑ€f‹pí±¯Ó«ý0öë°ùŸ|‹ÿd6 Äòµ¨¨®�k|ñ¤°®¡Óãþ¨!¸Íñ�B‚‚3C>γ¯3dÊ bé� Xáx°pýmñþÛ�±odNŸ³òÀ(>f‡yþŸ|Ëÿdn&z¢G="L,aÔÅõ˜j½ƒg«ÃxÌ‚#É�ëyàÏ)¨—–ÉÃÜÈ>Ü2i»÷ß߯>¾:~·Ú¡÷ÿ¿úÎüüÞØuCèP‡)óHšo�ÿ“/)¦, ðÿSÓê+ztÓoG4.Z*‰ `‘ ˜ÂD‰D©›fö*¦q¡5îÐ9Ù  æé&êSÄ¢¾ëäHç$.Å"S`�ä°Z¦L—µáY%Ä i|éøíWC:ý‡È„-¿ÜÄ�c�ÇnýΰΞjÆlF�tˆ&A€jN]Ó :ýÀ¡€"ÕkT(„Ú¸;%·"ÃËÈìÉ…¶.-wâÝO`2+bÔ‚š$ÌL9ß…Ãí.VR©Ö=9ë=Ù^À¢w$Ú"ž¾m{"Áìav$A\ã±ál–‡‰ˆóm b®SÕé—;‡›Ú…Ó© ØrøBX UúUK!]ÞÔ{Œ¤†(@o„ù¾ø­¢ªS[�¼Ðî- ³E‰E<¨¡ðŒ®Ø6Çúý �ª‰^k×B:¶}'ظ©v¼;ðRÆh¡asswt |„J¤ÇQÄDP±ˆ°Ø @j~ç€J ÌÏb-¿é$W$c%ŽýyýðHPøÙ©˜3)x^ƸxÃ!š 'V´Ÿ”“›^Þ ÜÈòÅÜÜ’AzЬRz�Ç/e^r„^tÖfÏ_b÷é÷ßp‘ˆ{k¼Çé…ÙèØ>õSÖ¨ßÖKZ£®"èGµÒ¢�ålÁ�KùfÇG�®C^÷=2å#‹”ts üº(|�C!ZN/u­Û›áxKWåýQ²áµª›Ö0°�zƳ賬©ÏruË_Ïìöé6Ç4Æ’p¤1à|#g~ôþ›°k³>�ˆ¾yÛUûgMÅ€S–ºös"ÓiÜ*>®Ù‹g :ªH9ê¿0·@–Ƨ/ÅÄRµélIÑýÑ-�¸ps ¬y,‡s´@A™W&‡aAÎÙPt½’¶ç ¹­½‹R¢À*ñOrÊRµŒ»…ä¥7 ÷j1¢ïÃ)>3S;½“»þô#=àý"LÔÇ'°aP–vÚn�ø>:{-·:+ŒœâÛŠ•)¸…Ø]@�Ï9¹—Ä:Õ—mM”ÞDZ‰—O[ ‡ó¸î*Ÿšñ‘¬n"uÙ¸³Ï´`hÑC×�/:öbŸBÕ>IÒCðrLAˆ,›VÉ5†‹¬DJ»Ç49©žä)­¶ëÐn0W߃¹:Û3°‚ªKÝñqn\~Sä4S†£ÇC&-¡²m�á#.v®®±ìÈ�‡S ‘¹èáÝçj½™Ý¬ÕwpaR"¥;Nƒn�Å¿9ñQFަM¤‰{±ºq³CSŠ­„k�ð§RôŸS’g˜ÂqÑriŠ8ê醔¤š,7¤ýÇû¨r›Ä7U�ãä›QP¹vàÜ!5î�®Â}²$>tàÕŠïL;pìk|_ÍçµúYÓòÈ¡]‘+õg^âWV•_PT«�õqm¬TUBø0ÜÂÈìSoB˜Ž5„«l'—\Sûíst@ˆkÔ.ñÀÚŽÚ í÷vKýsv0óšíæz±§ûyyD‡4â�™g„ÿàÜ·ÈÂç5�o®cB½¾êSØrШ8%ÍSÑ6ܵ–üŽûŸ¶ÙÄyz.U�é Tˆã¾»'�VrÐé!¯ÞtÆ�T‚}µFL|ïÆ÷¨_ª·uHiÀÿLÜ¡–ùc ªõÁõï ûêþô™Ý×*ÏW¬ÉÈ¢µ}ªœšêáëf­¸\Œs™ôèdãçÿWÎlsÈì=aZ¾>ù7è¶uTï[ÍÑq%ùq7á&ÝëèûtGà*× ÷Új°7’�“,³·CIêÕx #léWíIH[þÆÕ6-fª8Íææ©Ÿ'Zóü†¬ƒ‘]äBØÁ@÷ÌÿM“‹½r4À.K4gßÇxs5xd#Ô×ÜŒ¥^á7G÷"okÁ/üõ,*F’ Õ­;qx±‰«^¦º?ÊÇm¡”éaíà«ÒVHiJBâÀýý ê³±=ÞƒwãE޵'ÃÆû[³Öð¼qƒ}DB#€Í©¹”›ù=Ë£ô*�€T{×^©d~˜ÒË&D³‚r§#}”½©«å9ÏD¶Ÿ³U7UܚȮ Ÿi/6¾Ó5†œ}ª ‘±x³EÚ¶s�ám[žVå½I&ؾW°‚;­yQ½"`çîÀôBN <$gíáé[$|ïÓ¾jKB‚_²B;ä[qB›g¨v¾Ä»”‹K¬¡õÍý@›‰D4Cæ/J»kêþ ‡|CÉ?á*Р§Ò†)‘¢îéÖÍ[‘(g‚e{,LÒ�‚ ˜^cŒP¤ÿNé�OV+y‡‚¨§lŠ‹VSh©£»Ôõjö8ÆñžŸîÓ[’z!´˜&Ñ×Áz÷biš:–™ \ß÷3É/ϲ²B(½É|XEâlº_èß0ŠIŠz/wÏüƒhmGÀks@Âch�ó8í}hîÐs!”“bß)i¢�¢‡ a ›c~æ5’jgƒÁóú]vÒò;1öØ¿\1sv�˜µ¿›Ï³þ÷A—±€u�m㕬Àrú7¿èm�„8?ÍD`<€*wÏ©„KýÁÝ6Q4–aL;&É�Ò–ÌÔœó5gR‹i!Ö=›Þß÷ ØI>]m„w#H öÈZ’]sݤ§™´![²«Ìcâ+¤?‡®^Q¨—PSÓìÈi!–~ˆÎÒÌ`Lê �n–õv{À­þ%.Ö+çµ~1wý½¦oKw®·C~^Aãᕻ请¼ËòÒKù£×w„d§“…&$ˆÕ…Ì7EޔƱ˜]H ‘>þ¾—À£$(Ùª@§¢*I"¾ˆƒI9þ¸ÿδ´cYè_Åë-Û¼ª$SÖgDÞqSJö𢑋i‘Q` †XÕÿKo8«7¾i£ñþzÀ0¯!‡OnÅÆÈù²(�W„€ÛT\e›Êýüz·e�¶T”°É©ªR˜bÅó£ÈÆq/ˆ¯”0/´ÁmnJPØöWdY[y_¸²|ƒl²Ÿ,$~hi G9€Ÿ7!Z†vepAḛ́‹¿ç7Ĭ›—AÒ�IuÞúû>zD¤×|+©Þ+!Ï«3·ÓRχÛj*ó¦y”àÉ,^˜ÑšZrúÙ ”m¦€µõg¢4+‘J¢C´Õˆ’¨f}a›ä&D4 §¡èŸ·“ƯЬš÷ä£è'ð'PÊ…Äÿä}›º’“JyœnÐ0OÎ8‰tu´ÝçæÌ‚à LŒûß"©rôZ²Ì"¶â@eÆÙ;pc4­t³¦Éê1Æm¾tÕŸïÏNÂ+öÁ§»ðõ‰Â’�£ÞÛ{Ù­vu{±lØGŸdêÑÓåLú@ú‘.·åP@Œð½ÁØažøVz9—„Eû í‚öWÈýjïìf«Ê‹¤ß„ŒV„¨ëÓC{Cû’ R1fNæ-° Œ�wš‰ë[ö‡“hY¥ÆoxgVk«jnfâ¢*¡àrváÛ’Êno+ISÂÿÜNEã¥òï­îÍð 3ÏV™E´¦œ%Ó‰"D‰”ï �w"wÍR¾«Ù™¦ã;ìòæ/ü)�ÚçúS!õ~ çl$:±ß"Ë5Ä-ì!8O*z¼Î�>ŽJ¥Â!õ øueﳃ‚æó�˜¸�Mf|芶m›�ónk ¹v n)9¸ÿŸi‘ çQuÿåË´¥ÌﮃSõ‡ê»œ: Û)ò9Ó‡«C\þ)s¯ÜhÞ2ê‡ç/®ÞLIôŒÍ]�@*�ê)Rة뫫{¤·²:PV&LØ£d5ÜΠ Ñ_$šLxq¡xê)»â¢sC²6òº"àØ¿qbh/Œ]þèH ÇýÔõ•íÁ’æ.‡WtL pÝŽp£›Ï\)çˆö‚ì(ˆ° ’¡×3ˆM»{vBö¡ƒã¿B†š< I§Ö´¥(.9…ƒ,!�“iÁq6ÑË«Ñ Œ+-Xïx´î:£OC¼ŒåšÃ.ÎtÑ’åß×r†W²p<¡fݺAßó”ÖÍ1ÙI||ÆÓwV@Uâ?oXqÆÎSY¶úëö1b‡î;À²zF<¹ V—à (1è^ŠdA„¯‰ò_@]5 !ÇÍR‘V�„Õ‚M‡Û”\øõ¸ûéæþðš@Y«•A;e“Öm “žçóÏN×ð)“A®àž»PbûG²H>¹/ç÷A;-¦a ÕpÔÙ*»~²–½36R뱤O0†¦§¶ÜUí®â@ºü¦)[éì(º[UG”¿´@JW~Íá&–R*7“[%svEsÙ;mªæ–³b¤té¸Ctüæœ.¾ò¾¡‘4i÷”¡Í{²ÝmŸ²HRƒ[ÌD¬2ÈHmf#¢²øzØ»“U^¢È+[€¸_¢­ÐôìÛvÐt!Üt»3bÖ¹ ×ø¯ãîhÐ+°±GÕßht¤�Ï‚¤‡¨\ÈOÒÖÍ?p™Úáo¹'Ö&L¶Šú½Ê,#uøÞ^²¬[)�‚CÎ7Ù%ŠÈl“©w 5GŒÇ€`·Qc½Ô¼ñ¶R¿�SÀŠ…DGׯŠâÍ @«‚–݃>ލ:'«Gš úîÔØ Ÿq�6£(—¡UwaÖ¾ñf:8Ì*2:U¨¤-NäË0iÊwDì‡ M(=|üØöè7«½O°Nœ\x¿MÍÙ/¡QAÏR+ñv_-¿£B5µ1Rú£åäQ€yr ÁnyîöÀ‡‚ê�ØæûŒ¢Kã#ð]cïÚËºÝ ÌaN-Öþ´÷`’†‹ÐŸxÆã¨×•ÜX‰7‚ „q Þ»;¹Û*/{¯/Qƒq ÇçM’s€Íréâ+ÀטE¶$ò¯¡}†›Z×E±¿Š1¯™$gOg&]'xp$Ý¢5«—:qè!×u»úYU߯"9>7&0E"gÝ�«(c&=RÿXøC<ôÆôò�9TÁ[¶jÙäÀ¤_X O�Ó0¡°$c�>Âä¼w�~ó¿Àª´z] Äm…é€ïBýt±¢�×çcÆ�”zÔÙî¹dß]±–‹Œ¼ÑJÌð« �$ݱáÝê?½è�mª¢N†TÉ2é܉ÝßÎÀ‹¾ŽIª�s«¢‰Y[£·_q0ÒsRLq¥yù¨ ÿ/€ìñ`õHfðê˹}¸_&ˬG,>žiJ‹(‹ß´«@|ü4Vøë dNLß�@Û¹¹Ô ”EæÞŸì6ÓyÜätv�#nŽÞñž58Y1u]QâÀÞ«•µæåzZhYFj Á‚“Œ'ðÓÿMjJÊÑ!{ô…£¬Ë«T­W@‹Ù¥ 7>µ14¾ÁÁSJúÍXwË—(ö2"Ÿ_ªySsüHiYè9LÇë«û�}ãSy9 Ìüô¥õ¨Õé~.Å_ü:ïÃkó!Æá6h,ÄSÖœÏD7š±îG Ý\9d ¯AŠYÕ–’%"¼jP}V+¢8OxbzÝFFár¢ Öå©Û¼ñþqv儇 �XŠí”Û8 ÀsXÈZ‰»¢?í¡úY�Ü®íÔÞ`ô'Êìµ²«¾.ýÔðd™j0–$|г43¹�;åztdÂLIÔVäÈç*ÍŸ”B£Ôø }éšòP˜Ãâ*€ÓÛ5ø­7e0]»tíEf£°¶ä×EÍcʧ@t@…§ !„ŸKhW-oRàÎ ïâêóê Œû’’KQe"§Ë¾ g+ô';‚c�ËdBzºW½Sð/žÛ9•IÕ^¿š>â4£Túí;•ÝP[(@dÈwè�Z“´äRL–Â!aéÞaÁ¶Un}òû§a/?Y-F£ñ}[b¶¶ fB�ba¿øR.3{ìqL-Rù¬L4MA‰l|§ãë§·„ƒ"ô�§¾–�¢2ã�„� M¬M™–LùÑÀð x> 0 ´¼»¤ã£åàÚôÜñõuÓ*D衜è|Ÿÿ9wì`Ã�(~¡‹…&”®Ž¦§I©—8Ø~üPê pt#Õ˜ÿI°´L$SÙÁñÖ0eP‹WªùÑmÉÖÿ @\Hú›M;].¹Ñ1�m'§1ý’G²ÊùDèÚZBb±{ ºV›¿ S<Å(:gò ‡Zx€ò¬ã…]B4<6™¹«´�U Ò{޳!"kù‘ß•‡Ï�2敪ZŸ�Ðø]�).`LîÖEú¨æ+ƒò¤�Dþ¾©ÐºÍŠ|@  D:c(Húù¬°�¹WEãò ¹©mrœ0¤êj�­@äKórÌ=)àŒ¼%©èóÞö¤?¦žV¸æ ¤°ÕèÕì?x·[�ba¸^Ùl}¶JvöшçÃú·³€õFé;ЬœûAú)p°žAòÄj]iAƒ [N0w–M8¶ ß›»’àù»Ro9AˆãÃį@æ¤I¸ŒˆÈè­ð&V>ƒ!„vJáÁŸgÆçëÁ7·« Žo—ðÅB^÷&iãáŽ[Q#• ’†m¢��êZ�Ä9ƒoæÁLBH{ö›7%&U°‘ ]�U)}¡Ìÿt‰,à9„åùŽØÒÀ.æ íô;|mŠŽ&d(ìã ÷r¦2ànW½ó†¦ÉaûöµUÐ?ȸvt}¾ñƒ eàJ±º1UR7!ëÛ²…êJ™Ë\ÿÀ¼àñgjRó¥'…E>Ÿn™§º"=å88Pb†h•¡Ù0ô(ˆ>“Òl vÔRþÃE�°ôr…á!û-›${B\ŸDu°ÕìTœ`ÿ £­#ô¼—¸/kˆÄBÍ_ÏÊÆõ¾¡JÀú°Ä�HqtäÖ¥ NgMÑ)‹Î”¸Ð“œÊwd|6à2ŠÙ!ð%†ìŠœ^žVEî_½õ¬¬íð…HàÁ°:8­”fFèFÚø¦.\%ÿÚ¿¼Z¾BrÄ…‡I졌Ûõ‰ÕÛÉ…°þQU�ê¸Îë ÛÌx€ånSôdè3‘ó¶†�É嘶û"ó¾od&.8ÍK}.ìÌÆS˜}2$Zê¤ð×g½ø1ÌÇ‹Uø ØÉˆ¯têûÞ`1}VÆô�¬^Ñv ƒ<ÝþÖ+µÛ |¶zÂôÚŸ�p‚KmåÒëj±ÆÕ陞¿û>´ÈƉŸÜG£5N©»‡b ]2‘y�>(´N]UxÔG´ÂÞíŒÄjÀ’ Kú�“Fþ Ûª4ËË‚n¬”,¼¢p~Éÿ2ô…c¨O©H‡ê®Øÿžaóžmåc-ÆÊ‰¨r þM%I ¹†�P}a¶0oÑ`�ƒlô¨S!×l•Ï`÷¬k7h†à£S¾ÑˆÁV›ä–�›{Ýo« Ôó½?x“‰™ Ô/雿õ4V»£=AøVšTo%¢“]ã¶Œ¹%2žS =¦Ý.†–S´sû9‘6=b¶™·¨K[ó¬TvWUd™Ö¡½ï*¼øc8Î^0©f¸Q–t0‘"®á%\£"(bw�´ú‰Ù{îýGŠ\§¶œ´ÔúNñ-Õ%*6¬äCöÃÔ’rYΈ¤ËD-Búh1€"ø—GLõßÈšmçô$Aþp�¼¿½ÜV;™Íõ}ª_L˜ÿ¬l÷[{¤›‡Iµ±Æ¼X@€RÐÝê^¿�n˜â <+_®Ä„Ïo¡Š`Ùƒù+MòžX ËQ˜„r1‹…Z+®…S¢«Ö7¼—¥í§rn@p`CN0—ð7ˆcÅU?;¨K ÖOF£Þ„ž#yZŸ§×XªÂŠÀý‚™EèÅE]Ö€½XJê#ïæñLs¦%ÕB²`|ùß7Áœ>B«âЧp�ò3ÍôÞÙÝ>�‡—”‚ð³†ÐÿšçJÍ”âÛuù-@ é‹§A¦éA*µ ,21]xCè™UèÂê†\¾¢¿´ñó*Çys*Øò¯>Ðu¸-ðý€7þX>Koö†¼¿Û“âcس�"nڑȬí)ê w›—ÚPMsÞNq1ѤK(:ZòGêÊÕ˜Æ ×ÍdqyÙsˆß�÷R=;?M°™æ�[#'\âÏÄ+f»/͈2!Œjv|,õŒŠw)°‚jï’¿ô ³ªæFÖÐt‚Ôìã¼§ÅëJÉ3„:obOØžI0ª9R ¡ïlbÚÒ)Í[Ø "`;…gÑD¬ÍîâÔátJƒäª¾Q‹„×áz+Wpl¡Y<„ý®~.û¢Š·ˆßÀT´„G+Ìæ{`#ÄëÉ"¤Vi~i£ªUÄò‘ùq3°ü,óUYî£+êr¹ãݯs†Ð”Íš× ²êIcìÕû†Ðzè<Ë”ábò‹‰SfŠ*僜DA†<î­Ö”ÎG¢ä¨¯½?7šºÁ¾ðÒØw…>oÇh÷\ÊŠ*6š×â” Ù=%ÿóA dÆíHË2y'ƒk¶úZz©Õk™sƒÈóhE†þá¾7Lu²4Ñ�R¨´ù•l®îú\Ü ®yâ~³gÏÊ«*³œS ¶u8&ÕÉ|_ÅÙ‘ÇHQ•HÖ…C?ì ûx¡«ÏÙcJ>pÿZ)‘Õ^ 0a¬™@"ÀJ<­éÛ8qÐèL¨DV¤CæÑ@Zó«MúA”¸%}mÔä‚QJP_ËRKQ«…c�¨g ÏÝg9‚$Ñ”¬$è‡èŠð:V[\Jâ>Qµ &3¸tŸ°[O;Ò±ø€i!Óq6Ge?²©Fv °Tø€>ZÞtC•VòtÆDS¿M™6‰ñh‚ÁÛQ^ÉÜÖ?äù‡©„õð&}jä€-1D’…òÛZOBa}#½ @Î�ï„Uá±ãsˆ_À=v> Î ‡|%ò;e”϶†äl†u#Œ5]ʶYÓꯌa"_aµ¸7œc[ÿåÒ–[#Yì©ë ©(Í þVxõ¿)gtLàé½+ ~}§Ð}àœŠ+ãR£ë5绕}™ Åî¬k&#˜XÚ¾·DÔ÷'.`ÈŒ­ €é�–XU�ÌAf D©lîò—a·’s¤\^ðÏ<)ŠŒã NËo¿« ü·U“Ù‰púx%Ó[ð¨bÄ¥î„Âv'�޼×È $*ç]¡•òæh¸Á¤b�‹ye´çG"Ê[Ä3È4=.|!�œˆY¯QÄ ]\¨Ò{Ð>7ÕmÊ›"X„…úC/^ ” lˆ,)›éÐ1ŒSèN=úw þÓ0˜6”°öá"%}Ó×M¢S†ê¨×úñL]Ž-%`^È÷Î?@Ì‚T,Š>Bìe-‰¶Nnö+$ä<æö %ß�5å 6;†^8y¶¡3ªv .«%3 >''{#µ_G÷#�ñ n&hÊ«~)WBLA´„Ó„dM Ó|Õ³¸Eä¦P+/ŽVº·�ÿ|½¿“Kb梇ü Í'}�OqÙ³™sªœ¢HQ{RýÓ¯ Ì5K¤þl™šãêá+`…u~bâ”ù»Z¯p�Ô ¯µ¬w€¦ƒ&_¢$6t�¾zˆý�ø8òcoþ;–é5oy0êR¼ÝÑ£˜nLŒûЭ­Ê—gÉT�WÛNO{1tG«&(àw”5#Iî®¶ÜJÛ²[½W…DÑÀŸIuu jšU}·s=X6ð�=EŸŠµÑ)Ž"æcŽŸ~d¦- íOc¼¸|l,—4�åýûÒ£‡+$?³ãóDu<µ½È9Ž–Tþ76á�¦qJÝ’¸¿ù|]YJ’5ý샧SüÍ÷àÒ‡þHÓúj”(XÁ¡U R«­rd_iÛŠc­¶ |y•=¿ë±¢a2Î ‘¹,–Ô¿’”ûOp‹÷‹“dÎâsŒ qÓ¸J\nÓ˜ÿ)KDƒßïRNHCs ÃÒžšÇxBþ;W8e}¹ÍLËAÈô KÕÀüH©Ð7º‘¤CB™¶ôa>?dJ‰Zü.û•oØÒæ‚îã äØVÜŽ¢S3+ÿs³¦�\U¤È ©k7ÑŠzt¥�Ä䓇ãÄðgõN­S/ Þ¡Q– M;" rUº¦˜Á¶;èº <3ÒRÿ®‘ "ïׂF+ =â¹¥sŽ#ï³^¸À»œ�Þá1ßÂŽÛÜ„¼#”î¬}n¾»ÒÜ~‚h7åjÑIa3w†Ñ‰º?»ÕÔ1š¥æUÑÌU!”¸'ˆ= ÉHêJC{Öúo³gbŽNi¿:æpfŒóツiÎË‚ñ>ñ„u)™æéq_±ØŽ$ÌþiÞ®R&£Yýœ_ëh žƒÄ.ÓHgUÕ\÷š¯ÈpÃa&ý²Œ�Ä®eÂÌ"�¼‡Û­Rܳð«2ײHH Ô|Î�n®—är7ú�6ÓAÃÊ‚ Õ±ÍnC˜rRݯçNU�9uá}ù��¸ gYLÃùùÁ?YXý(a*Ç´{ÒÝúI\Uw¸/ œüAGh † MZ·J×…²9G�ïxÊẨ�¶Ã�þŠA  ­Ô£ÓTým«{…gG&S ê[G8è@ãíi`+,µÇŒ¼¨ãaÚOÊmHüO4µngB©SkþlÞ5¿þÂúÀ�©Å…P¼OhÕô8 Êùé’ÌÓö,‡Ð� B™£§>Þß«µñh.»«Øè–>¾S½VÍ»%˜Û8Nߢóùû™¤‡³Éé“#·b–òsp»{—€Ä-�ï¬[½¡cÃ5²Œ±[C’­Ä‚Ëà*o€¨%Ã>hÇúV’uÚ¡~8¤`[29b¼vŠÞhI{AŽ7—»Ü6Ú*IeZû©Ã‡ŽÄÅ-ñ±îÏûmF©¿Ñ ÞR Æ¶S(¦_tºÞÖ”µ~¦Ó—¹Rh“ú4õNPcLb ÙŠÚÙH9 öžXß9+Þs&�–v @¦­ÇÑtš^À±õKø( ËÒ6 —Æõ� ØÖc| È£Âè7üäOå“tPüw=ã Ó/ýìÇø %¥Qb0½kÎÒiÍ`ýzôùo=hOd{�¬õWhï_½šî·eû�¹VZÛœž`rÏD“îûËÈóä>j�ºÃNeŸý^D³×Öù ñq%Ç!º«˜P×¨Ö —ÆSƒ¦ÓO÷<‹Áä�ÝF; 9O0„ãg}Ò«çnv˜º¨ú9=±ùdÏm©íÊ-ÝEU4g!,\÷ NŽ«Õ}Y®$ á¼óüYÏ©s¥cÉÒÐÎiÎâHD¤UHÀýÚIm•ücsš‚ÞÅR£œòõVæ—”0úüçÓ´m/¯òÂsI>04hS½cÿç•”T Çç8¨Û†ŒÏ¿qá+èO iÄmØ“Ywã5¯ˆKË{¢ã2ìÁ©9~ÙÏtÕ) RžFЙ13èP…@S ÝéæÜ«o™e’¼@-Þoð‚®�OËwñì´Õ3j6_4Ù W“„©Ó¹ WM·‚$õê#—ÄOÿ!’"Ć�8¶ i¥…³ë—;«ÞÖ ¦ÛHÁD6¦¾k|Bdø?“î§{ªáðÙþ�¸S†­ÄS‡Hx¨¢çÔR’l(4_Œw»ÿ9è°|Å]Æø¸Ä.¥&<)hÕd*Óû�š`ïF¦›>`2ˆ"‹qRR¢€Äâ�9ª¨§1ÓõaQûÈ Í !Wàg–ëýž!ã£mTo�ƒµLÂMQ5Ö®]É@Åêšé›ÛGrøx=T(h˜<šõ£6(¢'î‚\ºjú&qÚ®&q¦x=i‰põ¨f:1”=wc²·’Ý´‹¼ò!7ºIAYŽ*EÒåW‰ç³øJxBqAØ õ¡5’=¬’�©íY0ÜVFgòžJ’9¬ÕKaoÅÙ„-�ŠÊNØDÈ­(ô’OS( ww_×�2ˆþ(²½Ð‚ç3'bæî{æï· FY%R1Pžá-SHÊîÍñ îWHxEå°;˜ø›RSÒ,S7v*‘pƒÂ­z¿{ál±'Íþ¤é€&ýüDƒ¸ û~ª-ÐàÆäÄÇGE< ¥Ø!ôÈNœÏòÖ¯T ©ÉteÀGb¦óàɺ‚Ž{-AÈ•³²tù1úû¸P–­¡Z©“Èp»¶•ûÖ.lÓðÝ¥LÉ›9Ì\Σ;�´'©G]iþs‹ 9,±bˆMóWéBâz_!Ôú‰“ûœoÙê�µ‚#ü8«¯nZ(ÍbÛ5ç j°'L³¼u[½8ב¾œ‹Ò&®uùA3U«®À2lJ¯PV_ÂÑo“ìn!‰Ê>ÁѲ&ER; ˆU¹V‡�ÜøŠ{¾€Ê'çÅŽæyü°)ñô=ÐÙ0ÆBç�¡”Ä j(RjK“ek|Qõ&E¢: �ìjâw�—éèö^¾XHŽBûi­s@“`"�E±„Œ{—'‘E …5ím$I Ä!ªÓ“`ZÜ¿F°Î·%ž˜CûöÃLõTÞ‹xèBôæb͘¨†ŽÎŠ“©~V¦@õÃAv•._Ð>¡¿Þ[ö�ì#‰‰‰j¨Þ�3£Ð{µ8ÚÀѬ¶bÝ2ÖÑ@�ÂnÅ ¯ýKü΄÷sáó„%ˆLï+e“ÃfY.š£vÔr­è¸M .\‚2í0Ec =ç2=c¬Ô_%·À/W˜ È&)mu6È5˜[âaæŸÍÊ(Ö‘–s­:ŒõkR+¦H6Âôí9ó6À®‡á¢4£ä»ÅÜ‰Ê [üÕñ}ÊÎób’£äÚˆB´’ÙåmOªÒš�šTcE²1dΨÊ�·*-)šb’ÞÙçoÙ {²Å!g°ª°lKØêe¶ye+ ‹ØÁóë—)B£ž€:ð a襵SŽMqò�8tÁ_t]Ú{�ëÏ"OÖEÌ>œ‹˜ >üÐìPzMñ}Á‰7¼jáÛà¿’öækEg’7‘+§õv}¤Éþ‘ [ÖîsÉbn�/îâË£Cä`µ/¡Í(šA—îkIcF1”¬?uúªò¹Øl]¼Sò×Y*E„¿Íé�ʸû»ÿPo<…Ý©X˜yá�…|*y¢Á˜èn¯s6ö/B.ò“�š«ÜøL¡Bq*.“�\ @”D¬æí°ÆÈ'�0#(ÿ7 ù[Heud¸4‚«:Q¾,–zdˆ¡Yå©tÄ!ÄÀH¡gl º‡ïg #N»iÃÛ¶n¸Ö[`Fx€œÃòþ¨§vC¿ëŒú§1Õj¼=#·Ä™«Yqøï^”‰õðå³BÂhÕÆîˆA0k7¼ ÎÓIrºm-�»K¿´4c†—fÈVÝQô�tF¶õlŸ·½:K2ÏÀï¢1Æ€Êiàås3_ò…ë&ᜡ/bXàÐà ´œmKào¦Ñ'ª&7—yÐd3ùós�ð+F§lÂ5­‹åE&EÄpëËš�FI‹Øà9¥PÇTWåÛ~ÇÊņ›¶%Ü­ëé,žÿ�mÀ,í݆ÙÜùѦû6ù éV® Ö= ¦ˆ2Y[lêד½«6“ÞêÁñ~]hJÉ6•@÷¶´¸ÅT5N‘‹_Dz4öµßÞcHSQ]ópŠΪ$d–½¿w³ØcE¨"º•÷«-¦&5+®äµvL뱫;{9Œn·±&á0bÉúøÂƃBØ”×7¨å-:Ñ»C–7͇ŒÐÇ’Vsð9ËpŽëš•um´&Áë8G|¬÷”—±ª-Giu‚#üã¬Z£zR|"±È´^…eà2ó�áí]‚þ˜2:2}‘ºñ©€É¡ÀÅU(Q"U5�sUMúõ‰²*H;¥¯9…kê¢E¸í䎬É7ÏjÀ`€'÷XI›�úøž8ކCô"mµnÒ,sžWT•$Š›1¨Z¬Èý‚Uë ùPs!‘èŒ-ëxÔ½·-û<®Dÿ£ õvz!ZË«ºÕ– ë™ýÏJW0r´ÛÈzbº™ žOÚçvÁ"J �õåeC%5Ät…[A�ˆ6h3Ø33¹T Ê-u[{Ш�¼�àýÓ¼�)œN‚Š_S½~-3O8«ÚðÅï–å¯iM†)Öh5�~r“^âÆ6Xθá 9jŸ ·ÊBg5þýôîW(ájŽR­ú+ÉÝJ<4ÆŸiµòïä[…ŽNòuÃÀGtÖñ�œ‚7y1@‘'ØÙ›ìöj$ÕÚZ-fÅþoáprÞW÷×îoË™3Úé ©ƒÊŠU§NÏ{‰Äo|î“áØc‹Iœ;÷úœžò4àïôœCvfÿæB͆ÿÝÆËvý™J¯²{ée1èÆ :�N>?õÎÇmäxÚ1®vÌùÀí±$&o(ô–­˜ìz¨§y‹é®§+ó„‰ßL¡ÜH÷2&sf=TXª'Ãö� #GCÛ/˜‘Eµëׂ/úK‡U±}Í:±~覉â·î]~] KF­!Ù'^ý_û`%2²f/œ:”ã2ÅÀ¥ëàËœÜK(¶qνåúhs§«€H³€6ÈÊÞ­þÌŸÅORuð úv,Eä(`z�Vülñ%¦" ùbtÏÃ5{Ò'©k½ÕeªaÛ ´QÜÌLgíVRÎTÛàtÊ5šœ>Wß�¾-ëö�×’ƒ³hTÉÄ=~CÎ]ÄN­Û�$E-Nß])S[(‰!p%7+9¯Oõ¨F�Ô§î¢äI·ÊSg0lFySµÇŠ G«ZÈ ýVäÅ ×ÿü4Üçm,¿‡EüòùÓ=³ÏDÎêZ!ƒ ™ÕJCãëÓe°UD�é&Í'{#[­o|¡±ñK¶Õ·noÑá@4§Ž²N€½ Á nÓj�pc¼KøÀž›\Ú³ìt%ˆázX­‘NÖ�ĨcäîaCƒf&_u„3z-d­!Xfª—’‡.1'åp¿j½^®-ðóc“ŒväG#ñ 'ìÖÇl¿ôqÞ©ºæñ£ÔV§ûÈ%YXò]5À›Hqº¯W%ËD�QËü.м¯å†ðÚÑ©ihX‚Æ´{’äMw˜—�T­§�‘&þ‚1NEÇVæ@¡Váà¨{°tR�£i€prîýÁ,'¹ÝºM´ÖK‘d þÐl2&Õ’+Ö@XI:K†ä4uuEЊ« )“�òçn[‚CÓQîC‹¼BÝõ:þ…ÜAU$ÿ¡Ûðå ºRauH_nÿ,ÆÔƒW�‡A [b�îÂgßåSlIˆ¿T+¥hØè:í‡0S €áÈ5÷‚\°ã©1 ŠV$$mÇÁ¶b¦,EÞVÖ¡ª½¤'­HÍšø‹5Ñ[GìÁŠÞ]Ÿï£TÐoR8ÝÞ €å|àÎ>þô0¹÷èûb@ô’îÒ�ÌOBÚJ‹¢µÃ·òÈ�¸IÑ›)!±y€hÒ<Üwx² ÷=çLc,ÉÌ:)­ ~B¬û°Ò�×C5»kÙÇïÚÁÓÚž³?ßFú·x«�Áú1Q¸(9‹S/¥À@RZÅ6«â„#Ërïp‡ØõÖCªXaõ&z° Öû§&¢Mµ0×Ößñœã¹ÆŽ«Xû2�,Þå‡gû[\}¬ÖZE·¹;‰júZÎÀȔ¾Mˆà£5÷ŠÀÖtާ:ŽÂ<#ÉuZ¸@øD#ba¶»b¹6V‹/Ë—x+¸ Ó=}'®Aû³Öݘ˜�Éç6zôé홼ÞK·™ 5•Sš³ Tó÷ ðjqÄ™p×�GR FØ> ´{¡&‡ùÑ�1«Øò‘¹Czì8]wØ DSZY‰7˜ú¬È5çÉ:œHÝ«ß6‚-GC“~‡÷>;\‰þ‘ø/ÆÃj‡¯�çÐó~Z{ ÌÅ�|bªS» ³8´Çë1f U†+BãÏLþÔ˜Kà&AËïø<8Á üoœß¾w7vßWÐó¡J�¾ypíÓÙE¢×óß8n¿E�ùá¹³’éìVa{×$¶“>IÊž§éaN?]jCö(Uk] —ý÷”ؘ)Ÿÿö}ŒöqÚI—Ž(VMæ$…W‚0»?På7WZIYñÌqÍ.•¸ Å´¼KyÅvúRÃÌcTI{Š“ñâთå Ps¤˜ Ãs€umT“>T†Ì~šš{Ëú¬÷p©-s¡¯µaÏ(o‘† ßAË« \ù—}kñø•ål4ÎÞ/Žãé¤2r¬OðŽÙO.µ"+*°©?=S;û,O¤,“ Á¸ÑíøM”À¿÷³/;ÛW¡ŽiSZðË¢=Èôj:ê¶u¹:@˜Hk©,¾t}ÈZCa›áŽWKeߎ1ç¶sBY©ŒtúŠèFm¥âº.Z¯Œ‰ñÆÂ>0ös¤!7_"E>J«I0-P0&Þ,²0tç·â!°;.Œ‚x ô üžeŸ �~Êæûµ=O›¤Ñ8uÁà²�ÝžÓó '�­1m‡êAFÁU$0¾Z&È’ïrý¸!g*RìÐüåÀ†t/#8tÖ™ªð¾à§][ ŠØòfS/pù9Cȼ?¯R‡œV|ÿ£3¶»ðHР  �zu5a6¿¶b-Ö™ôºº>)è‹hÜIZ¦à+üΜvób|ª71³6PÞ Á¡äP}§ÝÇ C9²ÓWÉ× ¦äÈÌÛ¬|,üäËy¿­~/§@ß hÓÑ·ÒõA¥L72º&‚tWÒ)Lä*J¨§™áCl±-À©Á¢Hg,P¶š¡w’‡ Kw›ãZ>sÄ4¹dœdò“a‰¬q>#hel ^­òóºÄB²™Çm” á¼õSìÄ GN`-œw©Îx:�‘=Üp膉“Ú1lpÊ8Ú©¾waáWÆ3æpc‰Óy�¼zzT‡>9Äæ56Í8]€•eÊÿµÏtwº‘çÊ|XX Cfð“y…Ë%�U¶MOGc\ÿy¿íÞÊ[.`´‚è›.Õ»5=4xÀóþ+5Ц™«7žÿÐKÛ’¸^䎟X; -¤"¸‚‰)€olJfãR#}p$¾á Šº^ÕSÕqïŽUcö«# kIÖËÐ’¾ �û—f’¨ÐÌ`‡ªsê uiZ‡¡É¥M>{rÙF`4Îv7àA�ÔªéP"²fÀ)êħ›”b¾~/¬²ŽRã÷#ݤZÜ+oõó”ëÙ™L…{pS¹+4³ìñFƒú A¦hà' Gó2I{ñ7íëðÂõ)ÑÊéC’-KHL掯‹6!í áò4ºÄ³×Ðr»óa;K `bŸ¨!àf?ˆymä먤w°ïè?BNÚÃ\ïלxÆô®6â0mšPMš$ÉÔo)†Œx+Ð�åà#˜‰=&S‰@We<×xmÚà�\‚Su!–ê<å–LIµÒ¯w»ÍÍü?ŠW ?2dØ„3œ] þ¸¯åȤ£IðvÝ÷ˆuÅœ˜ìg@òe¾0¨“’ä@À�ôͪ<Ç=xNPÔÞ&‡·p|íJöhä”.6ów Ó5µ1rˆÔϬË�ÕW!Åx†�:²ä׊ës2ùâ×Ñ›­#2“À7�5úNóVÖrò*zÉúþ5]O�£û«æîu÷“e,ÎÊeìÈÐñw�ž0ž:lÿñëü³ÑÁü$µŒ“ýWЦ:Œ=˜×ñTøvÉAòã͸Sø‚8Ü ‚x±EëdLjî¨Kͧû„Sžš©2oj0&" :·.ÔÐ[°4– %B‰*ˈRŒ‚ä]V庘Œ§ kyÞ­)Ï«m€dÔ8¿Û¡®€ƒÙ¿A!-6æCÚô\áÐd²…É¡Ch×å“ÿYj‚ä(Üçÿ�G2s¾þï­ãRÕùà|ŠÎ­íA-v^¥ú4fl®Í‚¹ –¥~…e·¬MlnŽîDB{Gyé! Ò#�ÂØÿºú³.¦ÝO­€ìÎßÍ&óSüƒù�Ä3=‚1r Vk¨çäy�‚ò–PŒB¹ú²Ú;ê! ³¡ŸEWåËnHžQ#×1`#KÔ*‹Æô˜�’�ÛyɪÓ¬fÖë[ ­8Ðu°ïŠ88Úƒ»âe[¶&v{RðŠpñ7F¥Æ®ú8ó‰Ðxþ"ˆ�ävÏ` o äÏÝ¢¯…A^·æOQ§ˆÞ>ʨøâjwG9­]*:r¸Dv'®ÙÆ"yq…¾QfRüñnO]Oové…øÖjbH]^<½)ƒ ioG#ǹŨü¼9®æÞ¾!B„67öÔ·6ºA6Ì5‘Zyq��ö°üò•ª-,=sÊa¨¡ÕŽõ`ÂÉÓ›¹Ï5»„ÿÓâÅÚ'jdÖYi‘À¨�Úbëz‚Ëip>´�¨f!Ór«ÌS1ÿÂP7T|EZ¢”'ŸSwÇIõQ£¬—ðÛ±ØyxG®#Ä©=Ϊɑ á@#Ž‘q:�©/·ÍÜü`êì•"óiêÚ—Þ¸ÕÄ×®dd^Ї¥ž©z+>ÝËÝhÛT¼˜0w5΢¨i鉤¶YO‘£7ÐóÒN-yïí”#Lvµ7gb‚ZµÂMÑG©‹K• ¼ÓTùŠcpÕøúÝÿ¶Ô¦Æ4³�²¯­Zp6t¾êºÐŸÖ× Œ¬]wÁÚ‰bò{ÄÈMo{Ó¶|TxS÷€é—š™¸Y|-rQÇk‰l€Y¹|:ö‡u¤»•ŸÑe[8a¿káXbÞ·,) ž¯=U­¦UÛ`&@'à ¦?+KH\Sm©v³Æ4x2ÚJñµépÜ_qQ…®xë´2�j³H®@l%5&á×ø$~—iþj:'(iþé¬�.j´‹qÕÌêўäÃÉö·™Àx¡9{ÎUdÒ¯`DÒ í¥åv5d‚j~Z•ßf 7�÷ë~D †¦‘[ô·WQmƒv/ïå\ߪ?~­Œw(ÀÂa+0¸GŒ©züƒ7¾ÐÑ Ôe·WŒ {DÒŸŽQŠ¡!˜°}€Õ^›“¹× ÊG‘ˆèí¯eBŸZ96ú·gp2ßQ8_ü�B÷¥Kc!þ|B‹ú/9vˆå—ôê“75†µ¤Ô_s=BÕè¿G7Sb7b;¼Ø6…45„Y3Pm„¯Ö=DY­N³št‡|ÿÄâÇë†e¹×q.fO‡÷«°_qß›¥ÃùeJñ@$gí� ÄPQ!©M.VFb\#� ´‡{Òs9 — w*ß“·À_]¾ZOvƒ7UmÏòt°yÉl¢¡(ÈC×Ý}íÆ­×ßU“ú•ù4«ïCïÖLO®ïNð"«~«÷A(_ÎQšt«iäõï‚1gFº R÷ª_ÚºÝÇ=X }4rˆûKüÿ»æet8[vYÄ÷w9ˆÇÕ…Øm‡Æù^è¨M;ßš&ª¸N»)=kºkbSB[Na †Cœ*’¤£‘ rÆA�õâWk…˜ÐÖüîã %RˆxöÁb«"©Ò,HÎÀÉ#L\Ý´Ãÿ6éÔôÖ|dˆ¶¶¨SHJ3‰í5Å쓚Û/ÑCùa¤6Cý×{$šâl"Wÿ¬*Ï u÷h�? NP´ìþ4nª—4¢WF›–ÜóŒnýÈ05¹›á[­Ò÷ªl�&áµnÚ V*ÖøI²þ&æW}ÍèÓ°»QlOCƒ°j ȧw¡Î°£NÅë}V$a[}fŠÀ+Ãk‘Ø„û‹4žerI–œMh½=[¿CÔc!ú1)É଱ºG'EFÇtF2œåÔ|ÎÖÎ Œô¼;A¼BΑÜe·âE¢Ó÷”FÄÊDF8d¾ÞÖmNuéÌ6‡:Že&8Z¬1Óª”+)jc»ZùqÕ-;È‹Lèh¢Wþ”#Ý{å1:G_ÐnÑĪÅUj F;¨Z•;´ò6aXp†Ú{ˆgPöW $–[¾|4Ökõ +åIí^…ÂY¤F�Û µ­¢¾N,b k'ì¦Ïu=Q.›Ë v¤Fu\›&ayi•»×Âò»!AßFðÛ'×J>�¸<À%Õ¹˜QoMµVÎ8Zr«Àu�œÈÊ·¦ïDÈçx�š*]#DH0;™A¦ØzŠ«`gù¥OIE]odºãN¤�ÿRÏq§²Ú}`ª8qSŒÇ0e�1ÐF•�MÓÄ®ëü#k·Én6bÞInÛü"Ñ1)‡K"�Å›ÀV ÄÊcü]¿®?g’Öö©k.ä ìÆÝ]õ©ÝÊ:TäÒ;IKè¨û+[ÏcŃhBãWr‘¡4.ðd&ÌyƒÄï̱/³Æj§;k ˜×ÉëÞ_†•wcÂʃC5™;bô­JÐbk”{C_ ÛypŽÄ¿³äqH¹X-:(z¯#QÝÕ7£-iÉ8æ<…>mr(œ{™„ï‚TžH¡ÀWœRIwx ‡ÿ(T„Xè5Ӻɹ&…ôK{nsŒý;H÷!þ÷´ºi_—8e^ 1ΆÝU&µáeCj¤ îíC7­BMû„ªXä��¤/R·ëàIÞV ó@ˆËFh5 Öø-3gpÝÚÓw1:OQå7d¤——5$ÊßXq¸lryÊ™ý™T«$ìgÿKêç¢ê«Þ[šÓN`¤™ª|�„ÊzŸŠgµ`9bº`7Šc«:öŸ¥ ‡ÅÐZQ�ÍJB.iéa}ÿpMïø•f÷R Ê8 ) ®é|òmìÝjê=@S.?ò2ÃNe*y¿àÊ;G�ë!:Åö?Ef%B;%{3™Š.Ü¿ûS§[¼’„¦e˜ �«·Ð b�GtÁOºSû¿TöÉ;dÂ0úýÃGÞ†‚f9èCâÄemk¿ìOÛÕ*ƒ>¡M%Â�ˆâ�ìAŒ—ÃsŸ"%ÌžB^™¯î©Ìœ�Rð§B?«N> ×ø¤ýÁ»P¬álýJ4-IùçxH4Ë +Ð1þ-ª¶¥gkjû%5Ÿ(QÂD Ê³x4n|KNü÷Sö× m$�Ç>:à3<„¸¦0uôΩ{º}Õ^›ùý°ðÕÄùU1èF¨#¦ë˜¤c€¶(Àùr´ùt?’n ŸÉÃS`);@M‰»ò]o`[‚‰ñÔ4Á"˜ :ÆÊMÄ)‡Luúµ'Œžö­ç¯Æ${ÕOÞbï—h@”TÐFìOdPd}á¯$Ì›{W[çQ¦EŽÓýÜèÌÚ˜òÒcâƒ3/9H.n‹ó}¢=Ž{©àœT�|ÁËß½Pâ¥ÄPdEVtµ¹ ÁÉf¥ÌÞšÀÙ~@Ø‹ìXS3¨Y]lD\µa ðK¡ø~µDNm Ç£¾ßµæUQâ6–ˆVP‘È=c��²>Êe¿�™ÿ(Ã,À6jCþÎ48øVHP´ÎVîAec»3±¢û*{mΘ¿ Q”ÅÖÓßlUSD]ç˜×<ŠÙ‡{c–5ÿÍ¢.CâH±ü4‚Ÿ‹Uàh_¡Æã¡œ wìW€ÆDˆx ?pùç7$­{° ; ôCË(,•ö\¡oQÅ»~þ^½7>å£já’z~ªÄFëw � ê -ïE<$g¯2€ñd2ÛÀ­¢ÜÀæ#ªé»Ô_Žœ³Ó_`8Ít§.X|>yå!³œS^�Éʧ]ßæt‚¾~ß ı¡‘¬â`çñŽ‘¾P¹�iæŠßՕܳ6ÒN“. ß³»"çT8$ Øp4í¬_¬1v¦ñ+9œÑ„FÛqŒIü…}åˆ,ê#�õUTXeÎYEi%——8™ƒ'pr:n®�á¸XÿF 2\O~Š–œW*Zv‚ƒ�½SA˜F µÉçrÞ.2vúòOLs�¯L¼Ülì¿ ã‘=#Ö—ß²WàŠ„h_;¨j<‘­·ZV¤EÛM;<ƒB0ãA^N²¯Ä6é��f÷zsà‡Ší-}UoÔ’¡R¡H Øú²±fÆo‘ Ì-HÖS�Ä̸ï5Ö,MsmÐyB A®ôõ°b\è Ž:"_£V€þ×ÓVâ¼…!§,Ü Š‡0uŸÅ>n¡¡í3’Ð6E䛾emk ÙñZ¿MYu°LœBR�ZnÒu…ê�l0ZzŒ<Ú[@xÌìIw*e�tãéô¨XF�s�óDIöºñŸË!þ‹®&9çqû›ü‰ÍÝ�b\Ÿ’?í±�í±Ö@dÚ"Má2«GóÈr!÷aýµ èÙcDô×Qt¢®¨FV³ÔIX(ÎÂÃfài*o•ÃBúªýÌ£Ž­$Š'íH÷S´ýÿïá“ÊŽ0ç#[‚ëíÍ"g�íîÓǙԔ,«e éF¡ÝM*n¬ ~I§ äGpkK[¯î2/=öÜyMþ¯¼6• õOÁ\øµÚJQK"•ÓL¿¥¶Ÿª“oÍ%œw¬?䉡±†/0&IÌKiâfj¦%³öˆ¨n±+Øí)G4¶MJ36ïlç«‹è1ˆ„÷)ô_>v›bg;í¾º{P"NÓ5 º;�ÖÂ"èÂBx×Sí<£ŒLµ3±‘z˜ì¯w©¥¹¿DX²¿ã æ¸q^…7‹ììJZ¼¹]k�ÍÉÖì-Ç×Ëx=ÀªÚ›Y,RßA0Z¨Ýy�ËÛ߆Вª‚Ý�´ªR<³è�7`ûafyÓÛÌrÁˆ¾åÒÿ¥c�#ƒãÙ ¸”$â�P¤Ï9-‡…5»Šôvv''H9b„ÎENXxá£Àp�Ý…Ï“D߬‹þlɽ*WCæ{:S(wxÁV¥[©HýŽ;Dï¹!·�'K¤:‹ŒŠ&~�OH1“Aö%ÕkÇ ÁÊ~Pb¾ë‹ªe¹€Æì‡ZÏKH³ µ¼»×®s�¯ÖÃÖ3þfO;B¦)Éðµç± ¶bB¢ÀëðÈY7@ƒÄœÉ*χó'3ë•h÷…#:·¼—V‚o§RLô’&hÕëì�1}ä™Âªë­P¡4r1Ū \ÎO” (P§$Œ$OÞ³– ØG ÃÙ¤/VøKÉXC�ìåô$­Æb£#Ó_ê±Ç0ü_® Pt¶!Q 5¨Ñ§úZ•‹[ËçÁɰGÏðé=›PüºT Æ ¤‰'Âû)ß.%ÃŇõèýŽòvbê—øR–#F»”†³�AŽ˜˜ºÏïMWNÏP…4g�ûÈc¸¥��i×¹¬ç,´záwø(Gý2Î ¶9¡À:N½“p­®&£o"K˜ý‡}Q^8Põœu\­•Ö¹×­‘h œ,‡ð;�Ý;WØ€­æý_5ó@ùÕs¨ŠhwÌÓÓ}Ú‹þQ¡º*“Æ0¿äý_9çÂŸÑ HyaìÕª6|ª\ñ¹…¥k°^}7n×@õŸ4ÿÕ�c…kõ¥+y$ùú‘I¡¯­¶©9S cÓa† s)è¡ÏˆäXç@RHH·™04!«ê7”Úã5¤3¦ìƒE’íxääéOl,wî©ï9ÎÛ‘‰•  ï/6�h £Aû´R•áöÏ�·º‹åŽa’��æ{"l RÏÂ3s–}ÊÊf|�Ã&Šÿyã�;iž³6VpÂ3 ò‚4µâ¯,ˆŽLÆýÞ�îZûÐ×0Ü_¼œSILÑ’)Å™$ŽIÝuÓ[QŒg° ÂûHŽ%Ádª]ᮑR{WY„( C.¸ÐY¢„^,æMYÆãWnkؘ «*Þä*pFçf™SKø�q<ö×0€zÌÖÊà {ˆIÄÔ‹ŸVSßpü*z )³°™c¬ÿq=þò éÑ÷Ѭ¶ÎÙš›,¡›KÒ¯�‹ïB úÍ(þüFŠh·“Îcëò%‹Ÿs]:Rùâ�Xã§xΩÆt[q»o@À·jé`Yˆ›&åˆËÄx'æÄrA/E!ö“ßBGiUîV`é½Þÿî$~¯Õyª,’a¼·¯¯,@ÚQ�kŒ{�ÄÒ¶ÕÆÉë\{Pó�{='Ø}~*Ðc tß cÚÄÈ™ {¸+] ‚&[$u f/ºôT� 8礂¥^,2ØfPG¬7®áz—â)Œœwa ÷ƒøT ¹Ëá!Û°bóœ.,÷HÊÝ…ê3ñìøÃ4× 4z#EÉ‹•ýñUcd±¡<¼Ð0ý£ò§ô†Vî9N,¢X7NFR£wlbAv7YÃê=´JBa�øÚÆ/�ÕÏÊÃpîÈ�§Ä×}ÓuWP”ñÕ=¬~†ÜóT ›ÞÊ>YW[k1§86ÊBhݱWŽK<Ú>Ò}º°#q®ìu�3¢^y\àƒ‹�‘‰'{óÛˆ| p61”§>³¨ç­f²”�ö-3ùª4ᬉݱ’ºDwŒyÖtzKÎ Aƒ�&k Ñ¡s4Õì\™ì„å NŒTyŸæ}à c�iÔµ�’ÚØÈ,C"6Iæy*ݶ˜ËìœoììKUûÛÂǸñ§�U©¤qô@\À.½EÊ ™Jœ±Ò3êVÃQ|ˆöá|�£¦ bü�ŸØÆS°÷Ô�/IWõ©„@k¦PáæTk‹0Ÿ<ÆÓŸ&�;™MY!ÀEù1hMw4EOÒ`ù¡‰P\áPó^žÜ÷'?¤„¸Zg!ñ’ävçjø–z¢ü�ñ\Æ>Ÿ¹ã„ïliÉËmO<üôøþ�¥ˆYs è+"çê©Xºí\ŸA”ðI)âý1‰Ib_/IãÂtƒã+dîA¥õWn]MO³”JíAÖÂÂÜÛsVˆ˜¹t°°ÝÚ{ìò}m*R‚º&{eŠŒA��=•üO¼Y�Zç<‹¬S—ÿw)*Üo´ ì,&Èü4Þ‰ [ëƒ6±ÓÀ°“‰¶ì…[#Os6AŒ’œ0F÷QïÂ0a=�;b·{ Jv?²i*ˆ#kFÛù·hi,•»b ø‹«ß¬‘5LË·1‹¢l9Q®v‰u]pÅe‹Õ}Â*‹DqŒµ‡éщ-±›¬ã{a÷B8;¥fw&DHžÑÞ¼#SJ‘B(¿·¹`áÜ�oIÐMRdÙšÏFr+O�:Fñ?�ëò×ëZ¯¡�"9³ô;kÀßòÉ5$,ÜUÕ*øöBx4ù!¼õÕUI¢éIÖÝ •È’:[•¢€~ݤ){Ä%ˆ´õ\¶Ÿ´ðÂPI×!x˜àòo2O‰�͈Ð},Ê9Åü#q¹ÕËãwæ7~WjÈX�§ÝǨùŸs£õ5 b©RëÍN.b%cÒoùá*ÖPe8rZz†ô›„™#Hš¸bÊò mŸæ3׆Ĺ´—ÅwŒ?œKbc3 �Ë ‘¦Ña¹ØEÿþ|ûï¬_tî£âÂÀ±€üÑ…ª‰sp³jà" ˜ºÓR¿~Õ¼Ao,ÞÝ�rö’¿ÛÑ+ó]zîµwt\hNTƒoƒhõd˜Æ�RÔÄ·YùÊns¶XvÞX�0i¿ �¤N¯¿FãõÎa2oMŽ�þ@‡Q0k±:ª3~?XNC»ü„/Ѩ~ì€Iÿ ‘¿ÐÊ”Ba‰ùú¨¨1·ì3» *w;€×HQ5Ü;ô¥zßÙ§’ú‘NwJ¬ÀPJ0  :%C ûq³˜ªÁãÌB44©jYì¸ü‹gŸøutR¿ÕžÌÏœð飲ëª5¸@�³@‡,÷f–Ø–×ãnmבyútÇ[ŠKm¦[É–A*–õÁ&o}þá¾`«ÆŽ"Kýy¸ýÁAñ^ô‡|7RlÛÀédx°¤‰¯ò.Ãùb¨ìÄlRIÞl!ÀéWÚ¹û‚Í©C±VúÒÇXúËĹ2ý¥m§AÅ»}ÊÔ IrÇnÐêŽv=]J3—*ƒn/NÓl-è—ÌÁb_oršÛÍw,7cOšw¸s 'íýWɰP„¸ô襢D[I+ÛH�ƒ ¡Èq"TøÞ¤9¢ëZ›Ç d{ÿ–Á‰¯X‘‰9_øî/ÞLû2á{ïË$>ô£ÞuÓíJëzGú áòM0͵’�ð'ä2ÅG'­�ºÇ®1Hí% ¬ÓàL½xTÑ–{»5.~XoBðƒ »±üîÏ/žñ©&wBÂWq^»á}Šõž·:ª»FÇÚí|ÆæÚŠ¶”L ìŸ×-e§ë‹Ó-™Ì‚nÛLÁ2‡Ü Ÿ(uÔ1/6ar@yˆ05E>Ü+ÅJÕIù;äÌþn<=/Q¬~{b4Ð}óã׺Ì“SÖ�¿Ü¹rjb˸{ŒÚ;G®,Ïâ�ôFÑùQ±·ÞÉüg<wðœ)õ»ÈÁv�á¨àu[áYá Byv<Á üE[”}ÐÔF­Æçɯ͂ݡû·íhhÕ¯Uº s®&@ÕÏÞ¯\[Êw–_{ÆÛ�îä0³i³¤ðÿ›Zh€Ÿ¢½¢úÕ”—Ûé+�ë» Û`jg3þ’ÄŽ¡L %G PtŠÏhô;äñýe¿2Cf}[’¦ó °šŠ'X!åU§�]Q¼{/ ÿ Äâa{Fô\ò�ÞoʹDä^øŒ|²†!ðvì1üp Â;zèåUš… ô¹7pk‚�®¿Ú¥÷S˜Û•ŠÍ=Uƒ 8”Ͷz%X™)]¨óõ<ʱdM YêúzŠjjòüs¨*ÿŸêWúçùÍXþ*E|8ƒÌ} g#+õee-}CN…YWú¤(,ÏjTeÞ[Uåz¬q:Vgµ[͘v1ièn…N®?jU�ÉûšÎ[y¢S|˜Z°ñ/L¯þ�\®…Iîû')‡_óëäöWzbÅöäoh%£ C±ü¿Š˜lI…ÃÞø¼|ôÆ®¹D›Âвr'*¤i!‹¬ú¥†2Î…b46ìÈp]_GÊֻ,!¨ÿêèo»›'<³"Ýý¬ÒYóÉsËÙâíƒðƒëÓ³;oýó£8�Ý®®ßÅ¡©ÆBažCP“‰_¯kã\ÑÁU‚œÂ=«åƒ Ö't¯èÖð_”#wå ¡r(Oœo”Z@�~ŠÍ_IªÏÍ샗¨W”!šíò¿%V¦1 YkôŒú¸ßÃÖ°=e¤Vcÿp~–›^#m¥Tvé7¨†e{Š h÷±¶aÛØnh�nºåfMo•.wÀàþî€FÀS=2lŒg^UºÌâ �½Ic«þsOEõ\Pf´-üžµôä°�7ÙÂ¥ø'þG—pYgZèž+Ìøpö:7OÞBç3Ð\®Z/—ÍŒûËå«Ô ÷þ#©+éŽgžÃÉÊÃÄŽÝ,N®¿^»ûlȵL.�#{Ý1﹟Ü[˼§ÉÓ™ºx;µ³åõçê'æåB�ã¥þ.=-ÍH\îÏ� ®2’¹ôŠñI«#û¿‡¤œ „G\℟…ZÝõý¹—¶@ÖLJšGB[öòØëy M- Ílǰ¹i�®6ÿ¡ã¦jÖš�Ízô^p®m“æn…lŠ@~àâ–@@^æÜ8l>éÆ"Œ Î�Piy©C7Á0A–öaO>!?N=C”UI£©ŒBþz#l¯ v1ð¿ûÏÁèn3õ;‰Yc°¡ „;Ƴªõ\b\íKW;‘jKõëT$ëõQùªO·îvûŸò—îÎØÔØÁ$}8ÂO¡Cy±žMäÙ0CkЧ‡!@&4tªÓ»·DCŸÍÎã-Z�BðUÁ¾g‰ÍTu2-©³« [W¼JòQð“vìWKÊÄèá×½*ìqÕFð�ù ü1ú5Õ¨ºçûù(½æº_ñ¯LÒúîÑÔÍ$ŒžE¨5k¯¸¯ïGÔ)W•�¬îÚzIç]8‘õïìDcfÌ>«îé\ãèìübïßmÉ4ÑÆ>;GômQ˜Uí6+,'Û°¦]Ëü“1«ÅÞ›¿²Ã©©kLd©/Rᤰ³à{é3÷zÛq¼DË*n¡ŸÂÛMŠš`5Ó¸Õ±Vf iÆ}˜Æ<.ɷЇõ2‰�àUuéè}Ø-Uaû3>ÒPçj£´Ñ3į ËD&ªdL?ßRKÑJc¶o ¶.î¢:='ø�®ÈSÕ㬠;¬¸“¡ÇçÈÝí=1>ïIwWIÌÅßc "øÉ÷ü¥YŽ‚qsí9·å}MXµR ¥f}ú“ Ÿ2[¢ŒÔ�Q3Ñ”þCþ»:X‘ Øš½Ð1_?Í!²©XÞÝÉ f/ìE1£’¤^¤~£ °†ÄN#: ˆ´ojy›.A«7ËtÛ·šLÂÍc? L�ñv ƒU¯‘¾µ{\�t·X]èCá5âÔÇ7séûQ—_D4š}@CÛZƒ?G¡.™9Ot+®�ž+ƒlŠ/94äÛ¼QŸéï]RæV›’–­ ·†n±*¾WqÝÞæªvœˆ‚ˆË/¡¬õvñvôÀ; !í‹ÇZC—Òæí¥½HD§oážÚEvL,‰Ù‡{ò7k.W‰çÊå¥ßã^Ç&*üþIè8ÛZüV v†��E¶¢;#†çëòDÓÉ«ME:kaÍ `^â²´íôå,L5f›ÇÔô³Á§‡¶iq5 88y_ 39»à ÿÈ3‰WûÜäû”Vé½Pl¨Ê™vwÆ Üõx{Îßbø1ýÓ ôÎ�ݲšÛs˜Ð¡‰ŠîŒ N,rj­ýGK!®�Âêʬ¼ÃÊt¹×^ÔàúÌ~áEWT‰}““OËÕø­Ù­¡ˆ‘Ôý]ÌWL4%/’óJÝFQ*8ÕS~/5*×�;Æ—aCóÛ¨Lä`?$¹¢îôçø´X5«•Ξñ´’Ûï�…³±Y½ƒÝ†„Ì}àáï†â8ú¯2A%*ùŠÒa÷/ qå|Ž£–£3(˜Éð4§‡–kK}½ÆQ°ÍBS?kUJ)¬Î3:ráBþîvÅqoj“Emí�àA˜aÃ~´‡›AIJÑH]À¦‚õÒ!üžàÛÈ1ÎÒŠO1ulÝÝýìC2ëG48´�+ÒŽî!¦ÿ9±ñQÄöH’x¶Ï{`·N;Àž@ª�Z×�(ÙÉö—&§lÁXŠ#š�¥�ã)¢Ž€+&PÃ�JüŠËeä5ÛÉ�^ÚEܦ»bXVmdͳODâ+¸ÅFèšoÝ�óÅåââagáѦÍÚÛÆF#½‘/ªâx ’EE ¸—}g¨XM³íêɦ¹fé!,ÏÊ©³¬:â`ì¶öô k°¡PÖ°ÝâH±<êÄ Œ$òO@Mþ lº�»M[<}ì^ψ”oÎ’ „¥z±`É¢¹!ir7a¨‰öž¯–;}âr‡7×wµ1ç!\C‰º‡Az½RÙHœ~Ì@¯ÒóĹ÷ë‡�Li˜€n�9!…*Ë÷*&×-x¢¢¥¢ì¹lgCS± ÊS!èX»._k¢p«ðÙ»³–âÀÅeÐtC£á%Zü4ƒDS‘¬Œ�"ÃÈÅèÅž—5AT§UZr¹RòTõ„-;YÛ>·×gM2@:bd‹Jl£ñ^Ъ.Åâš—îi¥zñÊ»ÐDJböç!´ Ž«Îë ‹Ïä½$6ãIgáÈd5_â©'›U½ÏŽ×â5fö §h³‹S)”ú{ÀÌ›QžG4y³­v+Xÿ%BéÓWRc`Rì ÁÚæ!›M=�PLSLšQG0Q_T 4cÏéþÖ�9xExCà€h\Ç–wµ½·'±Òw1Žø~–\âdÓxß×él`ºƒ¼d§¡ÈÛõ�­¬�fü•íG Ñiƒí•p käešuµÊx9ù kÊø½(êvæ¯=_]ÝaA­òÞ„'f7ÿ÷š´Gè”;É?o–&»6^y‚è+pÜÀ<;‡žH% I4©{&ˆ»>‹Î03'Âm˜2dƒÆmND½«ŒšjYKùï¸0Z–�¢»+ÁšåÖ¾‡jŽóP�0Ñ�i!p €ÆÐ,A¨É\†<;DúÖ»X\4Iöû†«rÜ×0üê?¡]ñŸµÛD¤>X}À2Ä�d6%©³õ9ൡµß•¡éƒ¼>±WTh“K<;5xÕKêò¼¶Pt¢Óª‡�+(é?ÉÑš9ÔT9y>‘"|š$\º ›òÃ�Ò?@ÌöÙr W›ÞŠEß í´ì þ�Ÿ3ÁäôhÊ—A´3Ò‘3Ö“ûG!¿\=Æ.ŸÜÎÚQ¨Ç(�·¤ú¥àoé•‚!NûÃ7ÚòsÕK* {â²ðïÈþSüQçͦ¬ ¾ØÁ7Ò„Ò�³÷׬q$~ØÚ_Ñ-§ïÒx ·,ë¥HkTù ï>‰<*ÈŽYL°ýsª/Ãn®^'Ä�Àñ”„ˆê™A~b§o~¸‹k_0‹­ÙlÂÀœÈÁ®Î¡'™ôç«ì‚Kze`0Ì\ôâ‘ñ|ý¨bVƒÏ�œ8j-‰)Ã+Îk½«OˆóñpçŠóiŒ6µÃÅ : Ö`òÎÊxœ¾“B¯t³²Vœ€ŸeÎÒŠ¬Ûió«é N[Ÿ¡]OÞI˹x阬Loá¡¢"Z¡COýú¢3`BÙÀÍnõ§û'—Ó¨oj^æpØ)Äó`Ó­þë™/�3”y�“@B_—’$vU1÷Œ'/÷³&º€` +#j´Qì‰ùœ¤ØÚÉ ÔP¨¢Rù¹ñòˆ¡^Ç9¡M¦Êzí³/N_¨OÒâ¢oÌj¾¶¼·í©òW” «4Í ó4ôfa.~õ›@›.“SL.[:ý{¸uÙ¥\ÇN…à-_f£¥;ÄXåº;2˜]Q>[c)k\ô\ŽX�kâŸíF�Ó�u")Ac^ß1R6ü�Pð4¶oVmÙØÜ™� K;…O”j^�üAðvý-›ö‰o™@e,ä�éC7Sú¿d–L$sÛoKmÿ)¤òyÛUކ:4ÌZ×Nx2ùU GŠ'¦Êèâ,ÚqXâðRMuMIÇ}.2{�ó×$›…:ŒÉ(籃֪â†DmSÈônx벃|7Àî5ˆ|ؘijäÖôQ>¼Ÿ©RO-s$0 Ëìú äæñbq}cs(Û— Ixµ·�ùWP´úâÝcdl+‰\‹g[V†¤d‚`›Âš; ˜Nþ䤨ü$”Æö_!Í€ÎÓ|= Ï@7¶ËK~1óv’Lé –==;õS‰ã5úœÎ«)ûG]‡?u~JM¤£HŽîg·Ë•8r#jj³©këÌY”Ó!ŽC8±Æ$ ‹¯ Å º¶…ÎÞ2 á+åcÄè¹à8Ëb5{; ô˜ƒ‹+}Á¤LzéšÒ}-M2ÆhÙ1­u3�á"6™2¯#X¾r#¿õ–K ¤1f.*‡›H«3ð'ísg¦ùâCé2ÙÄ­|ÞUôÒçY#ø5¬¼ÝN ÉÀ†­®sy(.¤M ´:ùÊc=õqúÙÐfn10~ÿ-šî=ŒÀ†z·iü5WÙ@ªp<�VQ¢mV̧\›`V¿`ä¹V×\!òÉÍUj Ta�—²‡pç.¼�|wãæ#±M3rÆÌ´¦Üé@Oש£ ‡ŽüB�e´ïé4*Gè,ÐŒ~HƒÌyÈ×P±f3õO£3ÎÝ;Ù4K<ï{Í×< Yü‚~Ò :´~›1E·ó�:žNß6wU™Ý1$YQÞä¬NÎ6A+F§ 80Õ¹“Yi’Ü`–†²ø  R2:"—¦dÙTkßCµá{Àñ²|v‘ÅT0¡ôOüghšïÔ÷ö¼ª6ÂùÊDR¡š¯¡n§¼&8›<Õ¿¸,[�0úl 1Àèlþ‹ºéñºoÊÕ-«áôà¼úøª�ðAuûnåß_˜}Ú¦^îC{›™È}#\Ò€™ÿ–ª Á�ˆ+q¯?-w¶†[ŸiÐBRÎìo¦~ €Î@1ŠråE(”ýq�­Æ¥=«Ì:;¨BµøvfìHþˆ{•o“‘7Q8åûSÖô“¯£ü0$º�lp~”1¤°‹POá�x1b,1lšG¾É.ÛÁÒûpŒ!�½·«ç,Ä¿gNÞC;ûò!±HúJF?,ÒI2ôA¶›Ä…öU\P™ðæ©÷uÑTA’¡3DµÆcë­ì+ùaôFŒÒ³À°GÁ©¿’0šä‰–3†4^œÖŒ‚Ú;ŠEu ‡<Ç×ôá}‘,�ih‰@Ò×]zO»Br~ê¸î(ðÜðÉàÓ†¦‘‰kÿhŒì¬¿p·÷ 1p¶µ•þc¯Å‰ùxÖÂüÎ@ùhèp€¨³dPž‡ ü>„Xóšq÷嘭¼k^$ä–ZZúq$x‹ï~œˆ%¯xDŠRW›®-Ÿƒ‚©e{ÿDʼdq Fª“\Î9}Ñ>d¢~´íI÷ÖˆÀ¢jÝw˜ðßî£ÒÑoR`ƒ¨µEk"Ь>t©¤Šª9-ÛzÃ-Žu´02B.COûW+Š}Åõafñ °Oô›0BLåò2:Afý~%ð¾/²çÀkAÍR§ˆ&M›1^œpƒk‘'ËËs“€Ta�Ê>iïu�$�íj4À:<ù—I‚ïäaŒµT´2ŸÍ) "j× ólö(ý&'Üséž1ˆ‘ï|“§€yÖˆÅF œÊ·:ÎQ¥ø­Æ2ñÍøS3ý›ÀÑ!¹ ?¯ªHßV\®ð( |i?½•*ï°Œ % ä4ÿT:šgJ¡hYZ‰}°õsuÜ<áÈLL%zG"%ÿtlÕ«êøÓ=³tSÄŠ6qú�ÆÇgùÑŽo†ÙÛÿ�=âY&øÄøEœ¥yêR†J š[ãv*§>Úà¨mŽ‘ê—jH$çÑRJá![øâ-YÌù‚+˜ØŒW¤/pÑÄ_}ë „Áø÷º—»*r‰©wm¿Ð ÔMwz"F²˜2Ü`…žùs± cwåà:^^"ã_þ¦Ómë0Rk¿‹HRÎ_È95ìpˆyZ‘ç¤T‰ç ^ ‡’–—°;$¦óC>�d±¾kH*ú…–7äâc$ÖN�ž ‚ZÃg¸].V'sïñ8w®`cª&d=+½ ŒLÈcq9ÐÒ~Œ(‘-'|q£�“šÓ3•ý»1ÏqݰÔ+UBÖü ÇªÉ¿x1»³'w‡6Ç.=:E¥J/¼ Ö$Á‘Û™ñ#� ,U_ÌWcAû Iq“o¯Ë�§r§|†¶pxî|ªÏ£^òö ÑØ«¤?›ö6èd-Íko í•�.›4 C7Ñ�‚ºátäÊå:Î|S~ Ã9/Â1±ö„¶e¼3¯à¹0uxÁ²4õoàAPÅv4ü´89Í´jN¥Øå3'+ãâ·Zh›>Ô‡|ƒ†_6_,ÛËz˕܄i he¯-’k�°l4nU'@ý±ÎHg†?°GT�s »~^ ‰ÑÅ‹XÍýnÀ¡C±æ!µiòüý@Bò¶SÃ*6¥2¦gáP�‘×ï|†ËMÝóêÎñüÍJVѹfðÈÈgÄTï=&M:nam•B´í’ô¼PYÕý_¡¸ëo¾'ΰ·è)ÉÃå¦Au¹iE«&®šŒ¼y“Ä0¢ÒRkŠÉÝ®?íãûiì,Æ}s;éà×ÈÓ��ÃÑõÙéWÈâcTÎ*`t"2HÆá án;Íõumëd#"ìk éñA/\pú¨Ú6ó€�ñ'�B‡CKŽ:¤»92ÞŒ(Üßm0½ì|9–ŒòÐ!u•ã…͈V§)ÉRÄ‹›³Ì}Ï•KþŠr^qŽ�ØÆÃF=ÙÔNF0/ŸÎ/Áÿ‹òˆI€hÌn[ïáÊ·66à0�ã])²FÓ«ÅŸvMqÿ–{DÌn«åtFßxâ‹S>psêP±Â)Zl`ážuPq/s¥ ú"*O_¯5!ªÖ� 6{\QtÐfäÞLlª��¡¥oÜz·h{å]m jk tŸ-"ÔÖoÌß—î{~ò÷XÜFóé_ID½ò?yœ½•®ËÜE\V)S!WCî�——’B‹æ9’—Õ´�¶1+âëýOÝ5�w•š ]=õ0ÑÁ9› ýíþùŠS‚± 4›A•òêÆ¨¾ÀáÄ?9¼9ZcÄä?·ñ’cÆtŠ×Õˆ$­Í·á> DfºÁ>Æs,AAWUéÉDèMÓ¶v ”A‚Cº•_€.ôPÐ6n*Ç$ Ÿôa³Íf@ÝÝ€Lð³ä*±D“ٲݿe¸óã9i<: e·‰¡”íŒ#BrÏ?«¡½&ó‹ÅBgHDÖÌiú´Ü{O~#ð+º™Æ]Öì‡5t‚F‘»�iÚ¡{é'Ñ3ð´¥’Q}4fNZñÃÅ)‰ÿQ5£f>9/X�À¤Õ||H»ÀE{JZy„üWà C;aUür 3‹jñÖ@\Ä®Nƒô—(Ð~N¨Õ ˆA””ënD‚ôÙ#h'é—qþ!fa¿ÕèEئ6É®×�î>‰È¬µq7ðp_¬ XÔÎÿu6Úüß}×Pì‡t q“zgp�Œ¼÷îJË‹KøB¯dŠF^/)‘�—Cˆá=dû¶w`ä¤ "8–È�±Ü.#¬¥@­ìì/‡bË-Ö(º�avˆ<3°áüZŽø ¶Æ²]ùµ‡bfNŒC]âBŽc¾+þùŸnW7P̛n¨”'Txn×ýÈ1PNANŸC3â³\±þLç‚ZGñ-®cc#¦A…™™#ºH:2ñK¹IÁáŸÂpfÈU?=±È”oç8öáßiâ%=¹³Ø€žÊÞç9­Y¬K"ù CÓ|u3,±3 ˜â²ËÒ‹šÛU×Á˜WWwœ¿‡‚Õ.Ûã»n­Íèa¢Î0ÉQ}˜¨î)à Ôý‰D»é ^Eeâã¢[ 7çÐ3¢�ÞÑ“ùReÊö,ÁéiPñZ(‘/¿Jùë—W߆»NG·YIΙOˆìQ ^­ ¯êä2æÝ�WQ˜ÒêÆµ¡O|µì”ÛöýTêðŽð·ÛØC؈)úÓ–K >*böxàQÖ¶ôtœ¥h¥#MçX$ÒÆ"eS®}õ2{VÄÂÇPÃjÇßÂÉÉDCŽÎ�½¦ôŽ�«úé¼ÙØò‡—á.ûú�Á.´v‚–ͩÈf\øªhô)‚ØÁäK™J™ü¢[£<øŸh¦ŠˆØ ÇKlÍ„‘.út  ÏËÚ#$ÿ…Gé¯E|a¹©û;¡d’Ä ]IÄLÜ}í§XÿÀÓ|s /�¸ó­–®)îJ¦b•’Žù#ˆáÙ$N­„‚·¬ˆ é‡Ò×Ì:E"ÞÒöYÏN“¸ b\yuzþË9G!_¡*e{ñK&|þ\Í7ðv! ½í€v°È³îÊ¥•˜?äå ôœÕ* ùjÛS `ËMÕ~¢ïlPÝl¡Œ6õÛ—ø‡•]¹ñýž\(EÉ–s§‡ß¿ÔlXȨö�ÝP�M¨öQt†Å‹¨È^Hßæa º zÅ séöäž+/z¨ÙòÐ_÷› •Å÷¨œyjR iG€2jà¼h«,¹·ÖLÝñYlÏÿæ0£@š[®¤õjÊ·TÑç ÁuÔu¡Pjo6¢uL/I–Ld;IìLÔ©yªHs´õáM l ²UdZ é,¿baäeý¡ß6dÝèƒ+k[7jšUkÚì£ÒÌ>våU3X1¹[UO\²÷>0¡¼ráƒÂ“Jˆ&:Õ++-»ú"E»¢}ŸxÔ¼çó½Jðˆse¨ÿK�réä÷øt�0ø©Jø¤L<·O„„g³ž#Œíâ%Páü�ÉW†ç�óÝ;W…¤®‰š<æY‰OZ«t|pú±.Ô¦`s"‰@Í0RÈ‚÷!ìQ;vmbÛÆ9«Þhƒò€~i¼ö›@ížo<'š„´PšËqõ¯%�‹º�ªU¬¸Crs{ ™ó½¦�’Mð¢xl ðr1ñä†Oà ö«Á˜"˜è¿[å‡ì\û¶#>ÊG�6¥E�xQ °ìæÛ–§€ò¸Dª¿Ã3ejâÅ9Å'3„Ÿêͨãʤf£n™D¥s-)i²ùðÛjtj?QˆŸ­ªÔ{»­!DB®ÞmPGÃnÚ(«WV oZû™¤×"H`ƒÒ)™¹k½³Ö’ú¶Ó•—9:ç:ª›ï¥)­üµÚù�R0K\™¦»g ¹bmø—rbÞÌF1~Óík(¶#�y«a6M™Gäp0@f¹P¯÷/¼] ü$ 6ëYÝD}ª't¼ædfVäHÕ´ÕŒTÿFṕ1“ŒºòêܸŽZ›tõf‚ŸƒÆõŒÿŸŒ{ª®£÷ ´ô�¯^øÞ£?Ø ºüžnN…Li•&Ä™6TÊ—h€ldÀð ÷aÔ{ïFç¸óÆô�å½›oÔY YT9¡‘>að·�ž Æ#ôê-Ö›ƒÈÈÊÀ@‡XD-A‘M j1žIö”üF<…‘ÝÖÿ®M˜À»P£ôö5WˆWšz¹o¡é_¡"q:9HÚW;U‚b„dd{­&`ùôŒš`môKZƒ•´ÉϧmŒjø5wŠHâ Ɉx H9öËþ$§™éxe-¸ g⌺ejZÌ¿§¦�)ä¬>øÇž ZMjˆ‘rw'ZsIˆC—°²¿ÄàWYúW¥rö%/{ [¿å:ºQËù—Í:-´O1-´×\JÈ­ofrXùó6‘¶þK¢ÈZƒ+é/²«‰;bÄ£–nƒ7¾b[¢ÝXS  ÔÖƒÉ |ê '�=+ÌVNšpši—é—º¼·±Fó*ìbÌ=nM½± ãP#´h¼\†O#?ÿÑæÎè••;ŽG¢Ì 4:b+µ,Qʦpê›Ú‡ìvþò”ùWÃa”Æ%/ãc�¬Òç2†Þ¡ÂÕ,#]ýlÙz$^£žâ•.4ñ*ê Nƒâ.ÆB>o¡ª¼Víl-ñË/óÃIΊʀR½L …ÉA `ã:õTÁ� ÀRÖjÀVÝŠ �öÏ¥Ìö2r£Ï\\>þÞœ¦Ê�<»,ÈÖS¥Q ×ú¹9ÏGµ>(šÿ”¡ƒº<�ÇõÌ tGƒèlÒGH˜©f³CçnœìÃ*�~³ALuaã†#`Æ@ÆŒx]Œæx2¬ULWÛJ1gJÊ-œ?´q ž¿¯>j?Vï¹§V-™³W¶\ïfÙáW Ÿ’+ ˜>6*˨-@{ÔØ(“Lê ÕãfJ+sƒ^CË0@°úJÛ»ØÞ9¦ê±¡q#„^l=ÀØùÃ|ª;ƒ ™¾vz³cŠäô0­ÎÉ´¦�j”|>ã‡"éV¸Å©ý]"î×:n¿îûI¼ï&ŠÃ|™Í€ /`S´Ù’ΪÁ€xyo¡<æéÙ¯i|é|ÕV™ N%8پ˛ Ðe»€òRŸñ��¤2)Óæ† ÉÍ™Qy1Ï© ÜZ`A/kˆVr@;ì…efüq_¼Ý$æÚ·Ô gpKӾΠJUÏF�MN= H¶¸:¾Zcx,ÞµO½°,dáù–?pVZ!–Ax¾)·Ú7€ù§ƒH[sRÑ6õšÜÑê,¯pó�·¢cœÞGa Ò…yýÂÍ)¦ÖQlùò2£Õ¥ö"}ebHCk’#§òyɼle-ǰ»õgÈälÃ2«në2~‘¡ˆè\oü�nJ›€MÿÖÖìë½ÛI¬ö‡ñCNj‘'ƒ7Œë>Å�þK’rØK?\Ñ”zÒÁZrEw«˜Áíý|Â]ÊØª±Âõ~z€ᨼœHzÑ•Jç-VˆŽCZddçäÖ8af��Œr»Õû<ß òÒÍ…¨¢dA%˜âœåÌ—-ŸmHÉ3µ"Ÿ1¯Bfs"n§¸Ó\2�Aý?ÒÚ<×QH½ãÀØ>?e*p9¦É¨½ š^jý†z(¸›GŽ `›r¡p8B‹ÈYª5Bp¯šµÃ ÖÔ˜~/a<$|š7 Ú{ä‰õ‘bÖà›º¦¤¶p5®‡í‰Š=Ùr¬‘�†jš–j̹°)3…4ѵ‰Ñ¦ÙªÂÀ*ü[”J/ œ*Òâp¡v%Ú¶ÊÎïÍ´Â0óA.®Þ¸!팒 j–dšy6v†�¥ˆ°WAò°1¥þ¿ü�Jw+ÛVôŒ9”ê%,¼B·¶æAòüÓÝÃ_L ‡ …{–4Ÿ†ÑŒž�cdzÙ½å„Áýp´Ì ²JÁ“;§ O|lmÛÀ ©oÏjeNS"WSL¼uO¦œL2÷‡wT/¿Ã€_Xô 8Ôô­QXó¨N�ŽF½ïÉ@Õ<ƒ}2m=^@$ö 7È=ˆÝDŸ%è£ñ…<ýYªx™6ßîð5Àö®Ïƒ£ëå¯ñé’ý#ú=TnùfÙÚ×Ä™Ï`m÷mXóB#.CB> ‡Bs5¾W¢´÷.Fn»OD×ï<‡I¾0Ð�’E#˜ÙoŤA„÷c¬pM´F‰nÛ¶mÛ¶mÛ¶mÛ¶móݶmÛ{÷×·»ï�so笤’õ£FFfUjæ™4­Z‡¢ˆú U½áIçq™è‘ÑòýŸAáEÉ‚@=ßñ± &⨅3q²!ÒŽ·ÖÙ.MU—“c—3ø`oÂß(¥‚¶ìä¦êûu"©œ”­JoÜøÛíÂC¬5¥¯ÕÉÉ1%ã#CSUH”E+É\®2¯$ ‚.˜¯¶êZ,Åyh5¢XIÌİ&( Ð:�Ÿ¼áP7†þ°KÑ�ïùŠòvˆ—m¾ºN�9Wî£0J bïf�"„ŠV+ÎÔåª^}�<ÊEß<çÂmÍyo=±åËÀÌ ƒ)ÊÈw*Äó%³„›é¤E�8ù"£*ö «× }¼žÆ™¥• C9vÁÁ²Iõ¯v(g+÷%¸Â𝝮‹/´¸ÊØ,"ž+¶á×aƒò©ÂQô»ècZðá©ùDfÞ‰sÈåúØú'(éí´ýuz bÔòã@#‡”·ìçA•%¶Dœ¯´o¸ç'2­Q6°† ðTR``úv£Òn2_ÒB*#]%5PÇ¢ÚVªƒ©�(h“¨f3rÞ¦`ÿjî‹>ŒMoIÚízƒ{É®G{z¢3à&©Pæö(Q‡¡X&´ÈH5xd~gò5¾*ôãMÀã3½Àº:¤úöã OæUBu±ù9kíÐÞìÉJIÒY4Oý¢ƒö S…~ìŽY ˆzë"èKÞöTúúšcšÄ¹<ó†¤$,Xú_ºä û7zõ¼çÄÑî'Õv ³©á‰}Ýècƒlø*i +°;cÍ< {^gë=/H!õ«K\Óà[àØÊkÆYhõ=¶6õ1ë$ÝXWRšÜ‰=?¾>Ñ“Π¦‰ÎÊ3ý< ž”Óg ±”.ÄFâ™eœzMõ�Ø6à’ósò`à9œ'ƒrÌÙõ­S÷|ölxˆJ 9äÏg�,\ICJ[ÉÛ“Ebzã!L32°§Å"?2 ,òõ}#{ó§×÷&IÊúw-]F ÀaÖìòžÇQÞ Sè°sˆt%Þ)žOvgž¹Œ±çM[¼ópŽÒæ^äw¡¢Ã �–ºƒ0—½…âó hž"•M¡±Ž6!+ ]:=¨ô�ØËç�ÍfÉ!^U3èQɪZëvñƨar»+¯ª‘{:ï+§|VIÚB<ˆP> é™f�—Uø]<á�u/§J�+µ�ñ(bŒ1à ŒnÇQŸã¾ d- ø”´�4$Ã…3úêa2!¸éêoVÍQxÆ:A‰’™zY Un]õ9c^ã�v˜/7.x’w]ñÔ‹¯°y´”ë³+ÌÝv5¿2�™„,„4×ÓuÄH“…D×GÎ!.Ô»`èz{t§©¾Lr!ýç±öô¡ã:`}"rÒŽø"íoú;3»ï¦Î–ú�€˜d·¶J‡ v4cï¦Ïi_Œ#œYq+y ]¶E„è«m¦l§&ÕÈö¥Ê5„g'ÛŽ=r‘±Ï@Ú�¿ÐÊ¿?í%ûDeOž„´ú«.Ï^3�CÝR¶ÎMà^ÅxXU_P˜õ°àE^kABú?X/ž¡<ò¦áCãÜÇ•ª¸G–œéš:PV-2ºÕÙ‰ô“1!m¨YC¹,½Ý_öUÑ1T±*]ü™Mxh¿¡G ® ›fé"%i„E·8‡-û(úB�J˜Ý­#:Püä•’#ô%0ÜžÜX9Ÿ"ÈÁül Õ5LíÀ¿ºW(E¢—øÕÈ·(¥8ülã/«—Ë󸀂'=&&ÃØr›¤+µ)ÓÙÞhXÅ@Añ¾QyûÛñ—_GèΫ`27èrˆ®-È+~¯"KÅhµóJF‹tï¨TJ| ´ãÄÞÙ…B{1«vlÐ¢Ç ˜sŽ”-ÔÅ™ÂTºêuèMöq6ý`ü â3ÂdŽ23™§iÈ@Á4kúê}¦ÆÐœ¦élWÛÞÂ&O>P©'ò° ÖCÓÕÆK’Ðc”µ9eÏBé!%¯‰eíÐ@×ÌP¢a=p€qFÐÙ�`ó4ä|õë"¤ŽÏ=Fͤ-#uÞ<þ9Ò4A"™BŠ záÞIM>5X)læM6�]W<ñW8îê:YÖdR¼%rùn¼¡ò½œl ¡ Y‰¾š4Ž¿�E–Yüç*'ZíƒüB¨ß»´¤Øÿ½2�ý½uIi€uäÐu})^Oÿj5Â3œ ÈbædðCkˆ˜ã\ü6z²¢dqü¤ Ϋ b'Ô–Oü8d2$Æ�•µ=aÎÌIí ØÌÚÉæÍB’..FðB{§Ð–8™§aÅNˆ \m‰wB¼ûäëÆ�•]¹Av,™îö3»2¨­E�ç°Õ걡‰3~:dÄægÉ� ‹orAÚ²žÑßÏ%ÝkÏ<'€ÚÄÞ… ¹ÐÚðg3Ãà„m 2˜û£G¨bºS@B�ºæìì ŽÇa%÷~zéÎÊØÂˆÑ°HQ]› ËÔ¦;‘÷Þ½Zü³¥CpOp,ôs/ØKm¶†j­C%�än¯äÿõ¦jÐøú´«aQ»�šsÌ5A‘Õ.f–à¬áÉžw`A-òRF{Ã[}E;ùâ¶{•mºL{…AqøT—õÅx(w4Ü5]M‘‰ˆ„P廽mœ——Î+#†ýÚ‚¶zÆAD%ó¼ARî~yÎ5³/¡jÀšSyŒaT½Òxœ!÷ý˜4p¬Øl@î8/AMô˜q À¿îv¢\Çè?ÀØO^fY ÓE¼æ�p<ÇLiÍ�Y¯|–ËA¬ûçhgÑ�L8*›o À †?Êø�ºl��µûtMÖ-êmi“©ó$¤wâÔ®™ÝƦƒ òa[z5Ì`›½(i¯ûD<ö’þí«ÏBîz¤w¼cÞ}Ž–:“Œxü�.-¦›ò¿ŠZÊüÛËœ&dªÀˆ-µØÛϺ¶�‡Aò¨K†ñB†¬ˆ[ ÙÑâ xÉåYèïÆ+Ÿeúd¹)]‰4r¼ÿÁÛ5ိ¾]5ŒÉ¡iÿK;yã*ÙÍž»Y D¥ÑŠc ÷x·6%Âà€FkWÜ&ðý‘µ§r°Ê_/ µ*i¶ëõ”Ñ, Ná©Ã$9Òq;Ø kÂí}ଦ˜ÆýÝñªL0eÜý6J^¸y„ÖŠ}v&œ)X…õDH ƒ\nd'£ân›¸å¯5/…ÕæO¾)¦¨Š.Ñ…£¯ÿŽG‰¢Ú•°ó�ô-ì-]£lASTbP�V ø¿>MRkõçL8fþŽ HàÉy4^#€šEù¢%Ãý~%Ÿ0Íÿö0Ñ1(™»)ÛX[ýÇüÞÛ¨ƒ3”Y÷ò3ÞÍ¡DúÓVV‡ôÊ'u9öìs·j#øâYü‘èëàšb¿HK Òµ5FºBÁþO¿ ˜X²Îˆq„¼mÀ)XþÂïÿæ·þ�)m±9�£� Gûu/({ õ&Ý °„¬±Î 2K™'ªcªPÂlÆÅãö¦~•l°Ý:UàS±c×îpøŸþ%˜På:O$EpÚFù¥°ÿÍoóC3¥Ÿ0™‡¥|™CᯯÍ^€j”“¡Ëøîí™5ú¦ËmÿP¦±þq¼šâ´Ðéú³jºxÊJûÿøuþo?"йóJx– ’r�˜Üÿ›_ÖÐÒîÿÜÏós€ÿ­úP-Á�í ”Îëæ‘% �ÿYpb¸90D�%5ä|G¹ÒÄÿV›íŒ÷Ï©–sJä —"Ë›5¼YQƒZÿ"SºVŒô#wY’ƒü¸óßó�%âK°´ðo+§«?µ3ÌX\µõÑÿô ½$ñJü$ÁØ5`Â�’ßýoþÿ³@˜º³·TÁ–¹ žÞ¾QXXÀ¼ž<‘gGe�ßRšƒÛCÃTzѳ*´:[ªÞ?–ãêõÙH´Ãb–$¼€ÿé�µÉi*h2ÜI€:Ô“þßüöÿ1;µh,³‚ ˆ[ôœÍ {ÇKíás4³þGg:£ÿÍ/šÞX«fÁÝ ™Œù5<ëõZ1‘3¨Ìÿ�?äÿö3<YÑ‚šM Ueâ‚¿(�ý¿ùÅ,mLEL��ÿç}2k‡¦�4y :64-•óÑvd·{’Zã}� ¯¤’`Nþ<.¦Î.t&†.†ÿýÿÏ3Àd‡€;¨$g¹pR'ÎWúúßÎÀá?&Ü�¥e+š‡-ÂcgJšÜO¸ˆšM…&Dâ‹^˜›wžá×ÝŽü½ó£üŽ2Ñ¯Šª6‰Ôºö$gìÿ§¿ ´`ï)i)Þªî�ì”Ó|®ÿo~Çÿ¤q!NZ”S]}f̱/ìAöoã”IJ±|7ôX;Iˆþü½TÐb?kxœØs~¡ð\‘·ÉKè8®ÿéß4wޱ‘‰¤{µÄhÒ#ÿßüNÿ1ƒ§K¿¾Œh �(ºbÚ~îqhy8»–=ú]ÏŒ{èí%VA«{\2'ª‡>öX#à�°ÓNø;��_.^®ÿß÷�ùù{c× ¡C¦hÌG i:¼5þßü’bÊÂÿÞ´ú²ÝßôÛ!�‹–Jâ<ØD$(¦0Q"Qꆙ½Ši\h�;tN6Æ<ƒyº‰ºÇÔ±h‡ï9Ò9‰K±ÈX 9¬Ö…)ÓemxV 1h@G_:~ûÕ�Nÿ2aËï:7qàØã‘[¿3¬s€§š1›Q'¢I šS×4ˆN?p( Hõ* ¡6îvDÉ­ÈpÆ2{r¡­Kˇx÷˜Ì²µ & 3SÎw@áp»‹•”AªuOÎZO¶°€è‰¶ˆ§oÛ®H0{G˜I×xl8›¥ÄA"âœFÛú¼˜ëTuúåöÁƾvá´Aê<¶>€–B•~ÕbH—7õ.#©!JÐa¾/~«¨êÔ&$/´{KÂLQbêz(<£+¶Í‘~?È£j¢×êµ�Žmß±6nª†ï6¼”1ZhØìì¡éQT1T¬",6�š_Æ9 Ò(ó3„XFËo:IÆÉX‰c^?È¡-§—ºÖ­�õp¼Å«Œòþ(ÙðZÕ kØF=ãŒôÖÔg¹º¿¥¯gvût›#š cI�8Òp¾‘3?zÿ ØÕŸNDß¼­ª½³¦bÀ)K]ûY‘i�4n×섳Œ}U¤œõ_˜[ Kã“—bb©Út¶¤èþè–‚N\¸YÖ<–ƒYZ  Ì€+‚ƒ° çl(º^IÛs†ÜýÖÞ)Q`•ø'9åŠ ©ZÆ�ƒòÒ Ð{µÑwžCM¾ybý’ù‘¨ûs˜¬ˆ¼�&Jðdoº|dŸáŸSÛ½“;þô#=àý"LÔGǰaP–vÚn�ø>:»-·:ËŒœâ[Š•)¸…Ø]@�Ï9¹—Ä:Õ—mM”ÞG±‰—O› s¸î*Ÿšñ‘¬n"uÙ¸3Ï´`hÑC×�/:öbŸBÕ>IÒCðrLAˆ,VÉ5† ¬DJ;G49©žä)­¶kÐn0W߃¹:[ÿ`U×9»ããܸü¦Èi¦> G�:†LZBeÛ* ÃG\ì\)\cÙ‘2¦"sÑûÏÕz3»Y«ïà¤DJ·�Ý ‹s⣌M›Hwcuãf†¦[ WáO¤è?§$Ï0…+â0¢åÒqÔÓ )I5YnHû×�öPå6ˆoª ÇÉ=6¢ ríÀ/,¸CjÜ]…ûdI| èÀ«ß™¶áØWù¾šÏkõ³¦%ä‘C»"—ë/$μ(į¬*¿ ¨VëãÚX©ª„þða¸…‘Ù§Þ„0k'VØŽ/¹¦öÚgé€W©]â�µµ1Úïíûg ì`æ4ÛÍõbOöò0òˆhÄ!3ÏOáÜ7ÉÂç4�o®cB½¾êSØrШ8%ÍSÑÖݵçýŽúŸ¶ØÄyz.U�é Tˆã¾»'�–sÐé!¯ÞtÆ�T‚}µFL|ïÆw©_ª·tHiÀÿLÜ¡–øc ö«õÁõï ûêþô™ÝW+Ï—­ÉÈ¢µ}ªœšêáëf¬¸\Œs™ôèdãçþ—ÏlsÈì=aZ¾÷?ø×é¶tTï[ÍÑq%ùq7à&ÝëèûtGà*×wÛj°×“�“,³·BIêÕx #léWìIH[þÆÕ6,þUqšÍÎQ?O´æ1 ø Y#»È…°ƒ�N“‹½r4À.I4gßÇxs5xd#Ô×ÜŒ¥^á7G÷"oiÁÏÿõ,(F’ Õ­9qx±‰«^¦º?ÊÇm¢”éamã«ÒVHiJBâÀýý ê³±=ÞƒwãE޵'ÃÆû[³Öðï¿qƒ}DB#€Íª¹”›ù=Ë£ô*�€T{×^©d~î›ÒË&D³‚r§#}”½©«å9ÿ‹l?g«nª¸5‘]>Ó^h|§k 9ûT"c'ðf‹´mç ÂÛ²<©,Ê{“L°}¯`wZõ¢zEÀÎ݆é(„œ@yHÎÚ-ÂÓ·HøÞ£} >Ж„¿d…vÈ ¶â„6ÏPí|‰w)—XEë›ý�6‰h†Ì_�v×Ôýù†’ÂU A5>J¥ S"EÝÕ­›³"7PÎËö˜Ÿ¤0¼Æ¡Hÿ�Ò;Ÿ¬8 *VòPO-Ø­ ¦ÐRGw©ëÕìqŒã=?Ù5¦=²$õBh1M¢¯ƒõîÅÒ4u,3¸¾ïg’_šae…P z“.ø°ŠÄÙp¿4пa<“õ^êþw ÑÚŽ€×怄ÇÐçq,ÚûÐÜ¡çB(-&ž]Ò&D;EÂ6ËüÌ j$Õ΃çõ3ºä¤åwl<ì±w-¸læì:#0c7—gý îƒ.cëÛÆ+Y�åt 7·àm�„87ÍD`<€*wÏ©„KýÁÝ6Q4–aL;&É�Ò–ÌÔœó5kR‹i!Ö=“Þß÷ ØI>]m„w#H öÈZ’]sݤ§™´.[²£Ìcâ+¤?‹®^Q¨—PSÓìÈi!–~€ÎÒÌ`Lê �n–õv»Ï­þ%.Ö+çµv1{ýµªoKw®·M~^Aãᕻ௷´ÃòÒKù£×w„d§“…&$ˆÕ…Ì7EޔƱ�]H ‘>þ¾›À£$(Ùª@§¢*I"¾€ƒI9þ¸ÿδ¸mYè_Åë-Û¼¢$SÖgDÞqSJö𢑋i‘Q` †XÕÿKo8£7¾a£ñþºÏ0§!‡OnÅÆÈù²(�W„€ÛT\e›Êýüz·i�¶X”°Á©ªR˜bÅó£ÈÆq/ˆ¯”¿?'´ÎmnJPØöWdY[y_¸¼tƒl²—,$~hi G9€Ÿ7!Z†vepAḛ́ƒ¿ë7Ĭ›—AÒ�IuÞúû>zH¤×|+©Þ+!Ï«3»ÝRχÛj*ó¦y˜àÉ,^˜ÑšZròÙ ”m¦€µùg¢4#‘J¢C´Ùˆ’¨f}a›ä&D4 §¡èŸ·�ƯЬš÷ä£è'ð'PÊ…Äÿä}›ºœ“J¹œnÐ0GÎ8‰tu¸ÕçæÌ‚à LŒûß"©røZ²Ä"¶â@eÆÙ;pc4­t³ªÉê1Æm¾xÕŸïÏNÂ+öÁ§;ÿõ‰Â’�£ÞÛ{Ù­vu{±dØGŸdêÑÓåLú@ú‘.·éP@Œð½ÁØažøVz9›„Eû í‚öWÈýjïìf«Ê‹¤ß„ŒV„¨ëÓC{Cû’ R1fNæ-°Œ�w’‰ë[ö‡“hY¥ÆoxgVk«jnfâ¢*¡àrváÛ’Êno+ISÂÿÜNEã¥rz‹V÷fx…™g«Ì¢ ZSÎ’éD¢DÊwƒ„Ç;‘»j)ß�U‡ìLÓñ¶yóþ”Físý©�z?Ðs6�Øo‘åbŽöœ'=^çFG¥Rá‡úüº<�÷ÙAAóùFLÜÀ&³ ¾tEÛ6‚ÍÇy·9Ð\»·˜ÜjZ¤ÂyXÝyÆ2m)ó»ãàTý¡ú.§ÎÂv‚|Îôáê—€Â\À+7š·„úáù‹«÷¯$úŸÍ]�@*�ê R؉ëü««{¤·²:PV&LØ£d5Üö  Ñ_$šLxq¡xê »â‚sC²6òš"àØé81´Æt$†‹ã^êÚòÖ`Is—þ+º¦¸nG¸ÑÍg®ˆ”sD{AvDØÉÐëĆÝ�=;!ûÐþÑ_!CM�¤SkÚb—œÂ~–�Æñ´à8›èåÕèÆ•¬÷?x´î:£OC¼Œ¥šƒ.ÎtÑ’¥ß×r†W²p<¡fݺAßó”Ö�1ÙI||Æ“wV@Uâ?oXqÆÎY¶úëö1b‡î;À²zF<¹ V—à (1è^ŠdA„¯‰ò_@]5 !Ç�R‘V�„•‚ ‡Û”\øµ¸ûéæþðš@Y«åA;e“Ö- “žçóÏN×ð)“A®àmž»PbûG²H>¹/ç÷A;-¦a •pÔ™*»~²–Ý36R뱤O0†¦§¶ÜUí®â@ºü¦)[éì(º[UG”¿´@JW~Íá&–}R*7“[%svEsÙ;mªæ–³b¤té¸tüæœ.¾ò¾¡‘4i÷”¡�{²cÝ-Ÿ²HRƒ[ÌD¬2ÈHmf#¢²øyzØ»ã^¢È+[€¸_¢ÍÐôìÛvÐt!Üt»3bÖÙ ×ð_GÝÑ W`c�>ª¿ÑèHëŸIQ¹�Ÿ¤­à2µÃßrO¬M˜lõ»•YFêð½½dY·R:6œo²‹‘Ù&SïjŽ�Án£Æz©yãm¥~!'€ ËˆŽ®�!Å €V-;û}QuNV�4AôÝ©±>ãlFQ.C+î¬}ãÍtp˜UdtªPI›œÈ–aÒ”ïˆØAšPzøø±íÑoV»Ÿ`§Nœ\x¿MÍÙ/¡QAÏRËñv_-¿£B5µ1Rú£åäQ€yr ÁnyîöÀë‚ê�Øæ{Œ¢‹ã#ð]cïÚKºÝ ÌaN-Öþ´÷`’† ПxÆã¨×•ÜX‰7‚ „q Þ;Û¹[*/»û¯/Qƒq GçM’³€ÍréâËÀטE¶$ò¯¡}†Z×E±¿Š1¯™$gOg&]Çxp$Ý¢5+—:qè!×u;úYU߯"9û>7&0E"gÝ�+(c&=R§,ü!ž zczyȪà-›µlr`Ò�/¬„ÇÈi˜PX’±FarÞ;F?�ù_`UÚ½®ûâ¶ÂtÀ‰Žw¡~ºXÑÎks1ãNJ=êl÷\û²ï®X‹ŽEFûÞh%føÕ�Ž@’îØðîu„Ÿ^ôÀ6UQÇCªd™ŠtûîÄîogàE_G$ÕιUÑĬ­Ñ[¯¸?é9)¦¸Ò¼|T�/f÷—Ó�¾údÓ5âx4|y–RÑÑ{-Õ>ß,jïW&r2{¹[��Ë)¢§»ù×lKžÛÇ.n Ävq»y¬šŒ®ºŠ(‡»Õ©­§'^Zš(bVЃAÉ1ä÷K²VRS „ÞÏÈ¡Å5ÓÕ*µêÑ¥ð8P@ì|­Œ,}ƒƒÊRŸ3îÓé¯`LDùúUžÊÎß–šçœ2ãWCÕ_�¾GÊžœÐÿ¾ŸK_*Và.üüéFõ¿¹î†¬Ÿð ÇØ,hF”WsæDØ�²oÅ vt8M ë£4ñVÒ’H‰z¬|ÕÀ¨‹8ä=Œ¼vÄÄœðŠ0WO*·z~ÝNBÂ!4¢nR¶8 œ5&@µ"»‹øo ?5c·ën–w žÉ§®[›ªûÀé~–ïM2­ÒH|¢šY˜;1c¹O¼\Lü‡d$�–ÕŽ'ÀΨf°óS„Š1–ß!}/²2†©–¶XßkÙMt»±\nDÍŠÚŽ×DgŒ§Ê\BÑË¡Bó¥-pÕií•ög¡ï/Ÿ.!c@¿’’¤M‰Ê§Aû Í©ŸɹƒŒã§M„¼ºÔ{•ïéó¶ð9S%Wôú³øYŠU>o¸Sw´)L&�ÜÏsµ’[Ž•dÒ† /v� ÛTí|¿Ê éù51i1ÄŠ|µ�ÚÚ`Í„� ûß•è˜á཯eh•>jdXdQ"m|Ê�®ÊÛ1B‚‰žËûÒb‹˜ŽbCâ¡dkd3Ód>Àîa=ø `ZzºKŽŠOö7qž·^\—¨DÎ sÎ}òÿ8ݯ †�â)ü £CÉRêâÊPË%+±Ó9Öý¾.a\ˆW2þÐ%ZdH”7VL¢Õ«>l'ÑVÿ t$>³e¹ué:mÉË’Ä›¦>DÎA6µ„Œü½a»Ô²û!•yF)¸Ì µ?jÐâ;ÕE�!;+mÑœrJ.­bkŽ¥Ÿœ€ÿA€ðRîÇô�Vž?í¾–ð—å©uœB–4¬œ¯\òƒzàµkÇbÀvé!mØø¶áI¹!¾.Dœ #¶#5¼ˆ]pÏ×ä| ~R:4ä >ŽXéZ CÂiË1`º§¡Ér´Aíew'í€w+Ùs F �Ô œ–HvÄDLœ×Þ“©ñ†¸áJ 棛��݆] ²·Wcġ٧ß� �齑YaÄi+c§‚$Á…Ù‚ÅæWiåŽpÛÃ�ÊIx¿fû#°“’©6$BêæªRú`ýûsAޤÙç 9ùˆ[_ ;…½yæö±�Š#3¡@¹>*xs*cÚ·ÃVï} +›4üzmU�çŸèpsñí{†6Ý—jìbTUb'¼ÂØj E¹”ÊœÆÓûèÙ0·Rz*%ÅãË·Ë,ï"â=áàP0 ³H-Ü`À}¦ˆàK^´�Âu^VúÍmxv = Äÿ¢Í† ñÒÉqmX¹GUÉ1øƒ*® F|îIï ·ŽšÑŸ›Â{é+”ølÉ•pt9^-…’3—] ŒžMé˜OÆÊ™r7ñaÛgBŠÚ ¼' »ŽÊÑËS½Õï}©©¹¹•Ølàâ¨M1;Û|/£Ó!ýÛìïÑêr Ç’¼.ŒÁÜz‰\Ùš høUTM¸ì˜½‚Ýúçpb§ülrΜŠýÔ?y’ÑöEôÔgoBFÇ1#íKwýoL9܉Dë²ä~ͼ÷�ñßx´ê;äúdD½Ëå×®£¯ÚØsn�Þ‚T0ÏÎï*uëV¢x–×Ðóf~¼C�´í æ"þŠUãØÊEf^ÿ_ËÄXdþ¶x1«\ew¸´.S¢g 6D‹œ®ªÇ2¾xËÐîM̈Õ@¤ôg|²Ø/ÔVËôt�]M M0Z‘ƒßäÓs¨q‚|¥Døeîú_žáSžíÉÃØTd…į,©$TgB®‚¯aƒ=æ‚fl°Ís…2ášMêœæ[�5»EØ~±rßBÄ ZöqZ,H¶7òŽ}µ?ÁòS/¿Grd&Ì2ýEvÿ ‹Zw1/’ Æ»Z–Š=iQ²îQ[L')Sž2$oÙ]Xšr‹óg"¯Q[f{…´öS�Š›ºªIæjaïUÏ»1.Ç,žC¥Y‡¢š C"QÝ)ˆN1…‘{|Ëgä†7Äí�x”Ny[NËò§Òí )[ͱð+æ0î2H’“ælDÉ´­Ð§cÐ{º8ªÌËÞD–-ÂÙ3‰à¯Clj/ȶwæÌ‹o•>„LÆ_ ¼Í¸¶wIv¸dkãX�†X€Òüú¥^®]Æa5Š~ÝHÈœ}a”ÁFðµìcžÁ´bFˆct¨u]¨rQ5Î*{OzéM¹“�€¸�0€Cú={„ñ¨*?w…4̪¼X1ÈnH±§V~ùšFÕPÔÀOP&¾(èù¨¨îj@/ކâ%ñæéƒŒséŠP¼ŠÏÇû`ŸPõá<D¹F â#óÌóîÆ_nxzJÐ}sØü_Ö™ÔLÊá–ë ­ÌEt9¶`Ù… Uk £®‡ðy¦êùÐe˜N_QËÃÕ¸§3.Õúc="ß¼+@íýOû¯Ÿ´ýkXOÿVò¡ñzs ‘ÝfâDÍ å%”{vú¦‚¬ó®2€#ãB †46—Ö#„øåÔJÆôÚ Š  £ç†sÄ^ü›"/7¿lCæi¬61¹ÎpÑܵY7ýLaŒ•›Í J h”;eC�Õ]Dÿ3tsÕ©Øê¼KÐòõQOùè•Ô$s—½‘üzž$C§tá��Ñæ"åŒö:J¦w¨ù‚RÍÌíá2ò¸‹TðqUŸb4bÈÚ�µºƒM¡&vÈj�îVQT{ÄÞ¼ nKˆ85Æ¿So∫I¢5K?Ëâ*Õ�ÇÄGæ†oš'UÍÛbêK§Î£�zgø°ùÔ™¬5ئKIãë•/à°y/œsžé”#ÔÇèHe³(ª“àÁ0$Dž[ÔÚÕ”Yñ¢ãŠú^~ö,À®Á¾{p°Åu÷P>ûq‹7�©(*¶¬µÃ”‚ ^Ò¿'AH“±‰i&Oò`ë¶O-¯ÊëLçà‰' Q€°ßƒ>v×&–…@¥Š–�T›º[ŒO�mØ:ÏC¿fó¹©jªæeÈ6W ²•IýÑ�Äq ÅT‰ÕPaþk‚/�Âê¹ c)>‡?-ÊÄ=P0C„šL0¢)žÚ‹-pÇùs™ µáÓ­§jÙOÁ”R_[ÿåã E)ýi%iÅjÌPãÜ sè¹sÎ ’…”’óðó¨{.5m©Cl>ÅV(d2æ<—ümyîÅF�÷K<Â%G6qS`þ¦J17H”•w„>­]áTµG—1å~ÙL¶È‹ Á-PE½ÉíUþãáÎðÊä—{2_«c¸ZF‘¤ÐÇ--y!C_â^H�Ùx¤;Œ ÕƒÆ#gôý^7>ØY¨pÒGnÓ”¹¶°c›0WâVÝ©6Í¥ËúC"} ÃÖöc$í¿“E¼4mxbÍëJœ+ÈJŠ8È_D5�—~Js™ý‹^j?ßòyßýœ(ê#¥â+Ö³îTßLèÑÛk2â �;v‘å7r:dƒ ¸˜Z耋@¸4x ÕÜ‚f"•h6·�éÀ†CíIÎ%:z÷s<”Qà1G�rÓöýÕßíªÉ‘Ÿ¤KÚ÷F#¥·!CˆnäØxh q=k$Tgº… ©�§ƒ%F¹Ñž¦-gâ DSÚ#Ì,¼t>„±9šõŠ#0º@:‹Þðó|ðì+¶SÙDx!¡ŸÀÂpôHz°)P64”ðÙóøŒ1Êçr¼Ÿî°@¿K l) ¯ €èD¤¾àKk²EÊa—k Ÿ2ºq´¤zho³üÿ0ƒ€Th¢ø„®Mi#Ûäìü_©IŽyN_ H÷ bYO`Ù¸Ãô8<Û ™‘ªÜ0`éªI™ øÈɽ‰[õÅ߈ã íÈ,¦ªý(Õ…d[B†ñ“CLd –|Vš;D�˨éãÔ@»Úÿ|zû!’Á¥�@N‹Â¿¡gȱP|ãå7š3�!ªrŠ$½•~–ê¡ÿ±J—üÚdfá]`P„ºú¡¦|tcjÕ;$,CÖµÖ¸”“é‘°¹à'ôyaDüľs<Ûÿr§]°Ú{2\*õì,gØÉÄ|¡Ï×"ÕN¥›OªÄªoÉÉ{3ºˆW“Qì»§°KÞÖµmKm5i÷ª‡Š, äKb»ºBZe©ú¶;ój°ÝÇòŠæGµ.PÆ�Çåû™”Ñ‚ @Ý È£ötøØÐ¤³äžü|!-‡S“ð7a=‰¸òà´öN qÆ¥©ü²³$”9Jí$!vÀõøèjJá$±þ`]£—+ϼí/†ÿJ,}Z¥Ph ª‚C)U×:™è[nE×¶Áøx¦òö_52Í$vÒ¤-÷'¥|É;D¿E'›Ìú:Çà8.uHéØ-eüQÂI‹€ïÝ)ÉIø ;ã /æe�{ýr«s˜úâãù£wÎÈL N>CK¯ |KTâͳw%– e¶=òñ›HaaGj}Ó}¥Ú¯/žÝ¯«mÇ)#1Sÿ96—%訖LÀVZ³/Dy¹”&Œ'‡�Ü›¿ÈÕ*Óì*¦AËr8©v•eÀ¶q£žwÁð0/*ýÕ%Âàݯ‰QÃòv–:Çß5ëu tçÄï0âí Åmm‡ô§ ÝÖøÚõu/nûaZ°ŸX-H2»‡-àGvñw¯,3f•žª.üóW%LAê ‹à…žÄ•¸Ä“ö^ý´o67Š“³ìç:u0‹A|: ±D˜�zà{@ q¥Ì<½pÔo\�#ù÷k¹[§DV¬ù“£eA�•}@é00ªÅ8Ú§Z’ëf¡G‰�6§Q�vÔ®…¤·`{z÷6Û&°¤©ÖWåpxÜÈ(íCãíÜ—­XeÿÌ®RÁX›2E™¾K×®ÿjJ«_ÙÒPz§’Eò'Ë‹œ‚±ŒQÁFÔæ®'ìk°Æ'õ®3.Ynš�@Y-Úø‚K–Þ@ã‹ô;4Êô"lúØK Áúª±ÁJñÐ9û÷±üI²‹Â·;ïÁ<=öÏõø;,i©¢C¯õì¢åŒÁ�×óª=¯…¼‰wbÍ‹ºÅŠ~oÂm;¾éWl§šÖVNž�ÓœHòí×ôÄÓ1.¢X x×0°œiþ�žHóÚê؃#)è8aXu†ÂZÅ*Lú˜r0@Ù’üOôàq þŽ7$§'o㇉ÿœmåÍ펨*‹9!�δ\\õНf ̼òØ·æ\¥s©ñäâü¬%øì¡„H‰ªÄÀϦ¤mê·±sVÐî¨Z18fèã „Æ)hz Ãç7(ÖÙR‹-½ýã�³$<‹…r/žñßYj ˜ ÔøGÅVXÌ\¿ãõ¹<¤åˆ-èz²&„ûk}„ô´wÑÓ5È`%§ßþœË %¬RžØ|&#ó¹B¨€2 öÎÅév5’=B¦iR�í®ý}`]®ü´ûÃu ø ³š> àŒz2FHåR'Œºl{É ü%qú’üaöHX,GŒeih3àU:w5.æî*AÙ–Ä [YŸµ��É;?fòm¹wÖÁýÆo|‡rXíˆr¸„GXÑÙ²R¶ ‹~ �­ø`Ï묪gUêÔ†® ;2Ÿ{÷çyƒÏ(˜îØ{Ç])¥ÅŠ ÕÒW|–î�XY6ŸSF´£’RQÀÈa.gUE9ãÒ‹¡â×Ì 4¡ú¾yÚÕOáQ±­Š}np«Ì�¬"ëj�î¤Àè%xÖEö–¸Ó»¯ –EOÖK1E9Êm�N—Õ'™ãf™c™¯e¤ÃK…c ¯»qS{ÒNKtÏ#!{—¤ f•(>Øâ‰zäY󻔇�£à:ÌK!ko RRlå�&Ã6–š˜ùcž`'HÍŠ´¡=ÀèFm`ԔܺÈB-Ås’¼2�»»þZ SÄ/ESï|Ð3¹Ñé­÷é];”˜&©£BÞ­²ÄÔíÌCÁ-²º„‡èIwÆ{¶’ò"�2»U¢Cð^­W¿÷�M#*9ÎÌoÉEÙÏ·Hpô—_íüþØñȸ¸(Aé:áó„\ ÿÜãj½ l%6Ö¤‹é€¸QÙÓþdWPœ7­àDjs“ËãçW‡BZm¡Veò„Cw[ê×*�ÍÒýN©Ìd6ç?�ÙbîÀòJq]Ë_çhXNšF£Ù'õ ¡C/}ÂåÏÈä¯xû�ËÜÖ âo€jðz;-Š£-Ö3H«rüæWí^޵ľœèE2ì:×AfÕê:°&©z5ý¡ûäk;ÂÈ)¾A¼…&2Q%nX¸ÕNµðØmÄ÷(o¸¾€)ò³Ñ¸SÏoüʇg^ᕌ}Œ…>â£]â«� BR›!�É,Ô'¢ ÑùγtØVkùLzÛÖz¹CÒqª4p¯,K›ž9†«8£�Ö¬ «1Τßè‹°ø�™Î™×ô!ùâŠÏ+Â8`Þ&6dïž}ÜÊ…±¿»®âl·!†å¶ÇC~Dû’2)'Ëf…lèiN{¬׿̷§=ò÷^ B±ãwO‡?�¾jÃäÀD̸oáÍ¿ó�c8©°s¯ž» ѦkÌÿ²ØÂ^fnŧZK´ø4±â8%\bñ2Å0ˆàÅ–åÏyÕq!ž«Ñ—²wÑ-@«)`ûüÖgÂxä4Å O*ÞôÌëXé“ï¸n€îg±òÔL(S(eDÖ£wŸK˜¼¶SÆüJ¥w‹Ö:oüÍ#¤“m%¢HÕ“uÏOGØ´TÜÕÒþÖp?g BgíaOüEÖYÃ.5šÉ¨ó�›ÅŽB�J®ÄöS+xtK¥ÓŸç+ìßÕ~ ¼&ŽŒŒ´ªØ�Ãa+ž÷iåØX¨i3ÚaZ]H²%¨ÿ‘þž ys>x !��¹£6I6ÃÒ¤Ë*v[vªÅ=ï—…¦Ó bºa5†å=câ5®YÖ'm WÏ€ž £´ue›ðgÍÐ>4<ÍŸ™‚£XMLs®åŠy±V Æ�*“`B{¾á|b¨ G:(b)F:îÝFE�œ‚Öþ^yð�š}2JÂ/†8ÞŒjIFØ8±•¯ZÌŠÍR1mb4™­˜Šm§¢£Ì2IÛÝ8³Ù€õn%4o¨Bk°‘^¿4mó4¥†Š^|ºJED¦*Πງ2’Y­éø|§—‰ýrÒ,4d±2v�%È`ÍÞ5»$éÔeK ÐÍÃÿ‹Ÿ¾¿&=— ŸÐjTð!b4ÎÉ¿]õeq=XMµ¾ç|¯?í{K¤Œ<”"jNj!϶¨AŒí¬«Àúޝפ�#»u‹åøsmt&s¸‰?•kFôzuÆ_Pš”·›çI)ë¬B[„dy*»Vc>öã0KÛ—Ô�rf~ž ëÝ› còf /tCrÉq¢åLân»•jÌ£qJYap%óŠR î ¸0ýöZSi‘ÁѪÅ'Ý߈Æb–Žn6¡¶£øœà"Ööb“ßÐË%Í47pWÄ80e¹â̬ÿzEv�SGo¤±?? Û’c+½o_¶@^EÆžî9oÂüñäO ,Vn3ÄZ}"J†$:âp5�•‹,&½¾Ï‰Rª0 ¢~²å7>5–�ÛFº]{uA“÷—k;@sƒ°¶±ý�º€WöÅö}¡VG€¼ÊKPÁ¤ §ms¹–Ü QÍ–¼{9øà§‹h!5É–*ðÖÖÒ1ªÂ*—­�4ÞÄòŠ…ßº·k ¡¬¡ûä…9[Eb’ÖÛïÞ¼n,ZAÔžŠûVM[FÆJ]w Þê&sÕX ÈíÍc×ÞH†À`4ùù>4,´�柲†Î^qBË…¹Ð-œÆ>3�=ž¤à|ω3íw••êjÛB6xÅ!îSó–’ÞX…N+n áú_ò8ªÑ*öRõ!jœ€kÒ 5ÝgzB‹?¸Ñ úÅÉ`BâBeòMìò¨ ˜,DU¥P$RÅf�wV•Eÿ|‰l¢’à.­ç µ¾,í¸9Ž«™dŸ³0 Ó�Ìü|Ï㈠~&²mµ[§qÎSWI%‰Ê†c¬@Ъ™ø R½‚ü@óWp†#L<Ž¡½òXím§Å€úâ©ùC(&xqó"Ôš®îZIƒ¾ÊüñŸ“RgpjÙšð2êʄ̓ßX7Ž–Ìá~ûÌÉ{„gEÙ¿{Îv3û;š ûÛ›vûÉ”B¨oò¾0e<#@æ ”ãã™Å·=ÆñØd¬sû÷1pÓHBfOñœV›qíUQî}QWNý¹'S¸-�ôÆDælÆ«¢QE>üš M,.¼EŸ˜(ÚzµDÿ)®Úè;ÃÕàw^yØ~«‹è§ +-VK¸A®÷ƒ®ÿe@ÊÔdFŸÃ•rÄ4:Pzµ6�³ $MÑæ8Û{òiá\Ž\ ÑÀ†?1µ[ûû/T^ÉõêÑ�Fô˜ÂÀ+PíÛæ� ¾ŒöÃÈen˜Õ{‘¼ÒºwÅ¿Êp« EqûŸ  ù�šÒ¬ÊÖ¾ËkVŸú^níÕkàZRp³…Ê䯿Ÿð¬îˆ\íV< ‰(­Üž.¥²6E$¡);5g½üK…Xìrùmѱdû”²9ƒ�˜§rëx´xµÖô�Úñ(ÁÚß7 øö™-M8‚è÷£ÿÇ/V3ΜÈì¥a0T抖ðÑÕ�¿)\ƒªHÂÙ ¹7±v­½OaãƒtÛJ»�ýÂ�Ky\“\@/Ô ,–ݦH‚‚1\�ôûn^¶Îfóµ iÄ�—Fm¢ÜjüH„1þñ­¡p°™>¨k³­I-¡†YU:FR8#ù‰C¿p¯jíý“qrŒÛ±8ñ ù5þê¸Mÿ³ãne×)¦ÿCñ²Zùש¦Æ£.ë@¶„cW½:é4�H¼âô7Ý|~=ÊIØ=ØæB¥%>�¡b°ÝšR¯C‹5æpA�d(°Ø~‡–•¨Òeò¹ïŠW®µ¥ìë’Á5Ÿ…FÐX‹wÒ±¬{Fz Jmyv"Ùo£œè¸Ú) @¡àÁ~�wƒ‹Pn±e€ƒÓíÏ 6yçN—l Þªt¢ Áï<º ÙJõª€¾$—4rØ1‹««è|T5$e2rîã™�v�ð’â­pt�ÐÎ ×oè¶ 8º*ÉxáÖý d—’¡«˜¾ÝÍØ2^°z|¸ Œ6¢QÎí˜ùÞ‰²�dD?¶ u©Åú9×M8²2lÀÁë[�NÃQ%#T” ¢íø`*¾Q�è®ØjaUo y-0šÄLÖ{4ë‚¶øõ`Ô®nþB± æ¼½ÇÎ.LÀ‰Äþ,ßï3CçÛù—‘ÀsÒí"r<ò?y¡M©è¢Öáölj„É…lJÂFÏ \ÜEžmw�&Ø7Þ3lc„É\”µ0~B5_ ‹�k¬(ÝÖãw›ƒK›yÍü{b8ŸíÕ ƒŸŒ8ŠœÑÊô¥JZ£lÕ‡!ÄÓNwáë/«ÂU†/d^ «_ådE²­ k«{9G�cþqÕ_Lȹ4»'áæ_Ú:¾5«Z˜¢í�Ü‘VŸàZ³)C} ²ûŬoQx«.qå\qC<Ä“®xZï"ÄF†mÝF�lðjÑôÓéˆÔPK¼¾äu‚_Í«;¹“g(l^Ïh7™=»Ò홬©ÊY(ÍpÐx*Oo÷VÀŽ#™Hk�âJbë8|�-Þ…dá È ŒÕë�‰�Â^׺îë°"ÊZàšÈÈ‘ìŸ5¬g“\9;Õ{lA´âÂÉ~áo|Ü:‘¿‰ïÈôcÃVHáõ±góO~ZÈÞ�@ÿFc}Œª@•» š9ZÆ!®�Í Tè…Žæd~—3¤öɧïÞy8a¿ísöúÜÙÝöÔçŸ ¥rû—ÊÌð!|yDÒÉòÁ+ÇÏŽ¢úœ¯—Fô‹k$~&»C°éÂÂOõ·S4J|̱"Ñ Zä�d;£¦�Ãà��U²çíÍ…hBòÂìíõg>¶~T�“¿åÄèÅü Ü �ß”Øí‚V8¸Œ@g·Sƒ kgºÚÝ[�Ðö]¢p–ç *Å™4ÄR§\;I)IòtظêôG,ú&6õï²¾Pç_¯Æ³À¨k…Ò¹¯_r^é?Ü2Žèîäå5¡°âá{ÖX§—ï¿ãœá&K³�œØ¨™7@Ý ÕDJöð }#nñþ–JÑM‡–:嶇Þ@£<03ÄQû`ãS·•…Ø">c †¿›½¼ˆ7Ve0©À ›ê‰@& ¢Ç+þ/]à LaêÁ)D1=¨†á»ËB£1tŠÆ2ÒÍ78]Z~áêÆG4~ì,ŸîÜõ§_\´¬Æ`p×üBÉË4oEW“¾™JCJÞòò$­dMLteÙ¿Iù<Ü^d¢{Å= íC¦mG‰åNéFü¿‹—ahI*ê«*Á &0>²Gò¶‹7È�6ïԲ䭯wNýZZ‡òÍ¡RПQ‚ õysœ]³q؃°¾êI¬rü!ñ™\*çß3ꆓ§mj^=Ÿ°<0t}x’’#ý{ål iÃyê½#Ñ}5S¡C×z%XO~opW„•çd‚TÁ*¶œ‹,ú¡ZO˜z_,e¼£\ïߌÏé û!åQÔ¯Ý�[K®­Þ…¦Ãù]w\´È§P׉V%ûfëæƒ»óã!ŠÃ×S´è�¶Š_ðÕö+^æxË^»M %F±÷Š'ç #<ÂûM›&Èß:%÷Ø¡µPx°':5»¹6h„Eê\ËÓwŽI> u,ÄDõšçšR�ëÐï¶`*rf‚B/-²ÞÚçŒè‹ÔÏòûûÄņÝGhºB�I=Û�`¹r¹Lê¼"·ªMþRù;8´û[®–’éî™. <ù½¾ºC±Ñ‡ðÈØŸ©noâòÀý²ì!��d£ë±Õ•B, sò|~èS§_­¼òÙ%¸ p®ƒûM¹h;yKO�ä¹µŒ¶á—‚ bxƒª$ þ}ZdIwN?„XæðTJ×óß'a.ôÄ.«™U÷}ûåºÚ0àQë�fÊôœÂ=üõJá9j>ÅÌmÝ÷ó°±ø^®¬†lýmF´«˜™Ï]]|”çÑÛ’ZeûÔß³9nOF>UìŒÍl »Pƒ…Ç ¾å;ã0œ8MKê“@k�eÇÿ¶jp}h¾�§=AûkýèËö a-–Ú_KeØ™ºÈ‚\Ôñ)eŽ©¤*Ê3„mi*‹$ÌAi°Û² Ý“ÂA¡¤1ݳ�´øœGX:MrL“ #kÑøˆ-Lm† õjŸºF„š2ÇlS z^”¯G Äå hsÜ+g=¸y·ÀÎÃà"“7Qmp§86‡*ûÜ ÔǘOŒ#—<‘s{¼¼TÂù8GNYÙf8tRM§þZQæ\Ü»Ϧ|44 „Íî“=ÁB§IcUÛdåÁðÄ�uþ<ûov§Àpµé Z‚γéV@ºYyY<ž~©Y£Ê2«Ùóþ楷’:ÀõŽãò5€¹ÑhKˆ:‚p1#)ìm¤Ì±Ž”ˆQñ|ý�Hú``¢ºôV”WïâT�_«‰ ¬%ÑW§ç“ú ‘b¿pÒÍ’*æÿ„W9_BºZj…N–Êòy;mˆ° Íâº±ï ¢Å¢.W](5™á P^Ž”g§aöùÑ×4Å)½ï”hmSÛ¿<¥\mdÊ„z;(wR³4_?ˆûB –Y쓈?1Iz?°ß\ݽP.L]'ÑJKÈœÆÕG³¢ÝÀ¢<²t�à5¯Í;u?rK¡åWîã˜ñDxÚ_U”à¸7Ü�ó ÉmCèÜ­åxŒ=×±â0Øf�)Èâe‘L.ÛS†ÅxPãÏãž`ìgDò’)G ¨›ò¬yÛnîÇë)»¦]òœ §ÉH¶.Ö»wÏÌ|óG�ªð#1™ ¬‡0çèÂüòÈn�Øeÿõ)4Ÿ×³vD\·Õ††TXäØêFårÝÓ®ÖL€ Òc;e»•EQ�S‰}æUªÁ* Ñ\%4š"¶î¼ÜSŽ~>*l¹Ú7MÏ~Zj[w"øEÄ”Zóì? üc]™L­fÉsÿ¢€+WX͈)ä5#>&y�¤¼f~UaDô黓vnÿò˵Øò™\„Jļ ÓÈ×4Á2ÄBìe06Ò*ºbá°šUežB9FþõÃ\Ï#{È/ì�dT$Ö<àë¨?™()–¼wÃÞy‹pÍɸÆ7x4íc¨HN:ˆ}ž©âçõ@”SXÞ% owð¹‘zµ8N¡c{r‡A_bmetŠXž«™Æ \Q'EöËåj:^‹ºrFdú8\[È®%fJ`�Çdý”{R[uzÄ¡òšüüeÕ•Œ/þª>½u}K6¥™Ÿ2½ž˜G}p�ÏcÈå²ùy¸ún^ü&i�Iþ�SŸÇ(ãŠàÍX{Pyw›}<šéP|âØ† òh½2‘±º­�ž)ÿ QÎ˪Dc²·b #‚åj§[ž÷GÑn`I„E ФšŽPŠ :ÖU;ëʈ)'°öÜ­¥œÆ«¶ 4YæèßB.¬ †@Ùè$¤e;Þ|æ1Ò�|‚P€%¬sGð h Y¢ &òrðj[;¨ã.·ST ,¨×~*¯XޱË7Uñ~hå.ŽÎY«KÅåÔ!â†H^·1HäéÚ§h¦ôý`'¯+�lïvú¾je$¡«ÇÓK mi/N<Ž?Ô‰8Zñ݃ÊYwºÛF(ÂÆþºÜÎÖ%Èö�5BËÓ1>þµáû1µŠ–€Èyʰ»p%îÅ`hr)»s޵7äo ìpt“ÜÊdUÓ2q "v“ÇqqÐAuƒZÆ]ᜋ…3í4}¿UoFIDòó˜ÎBZ³kÕßLL±ðúÅFpˆ}ê v5mÙ�°¾/ßþö14ÈT ˜„0r�cA$,ÈQG(zSMÐV~÷ª Á&t`ü )~‡Îò˜ðs "õS²··Ù4{ä1cLm^9‘Cö&yHZœT¡›FAàqP¹>•ªK ÊXöµéÞd5 ´àÌfD#’`šZCï矷~·õ®Â‚›äéÍ|‚ˆæÀð)½ú~‰mGÒÞÊêÁ�ÛÙ#{¥j̳\ć|Mã Ó�ç=åejÖH˜ÓœÙW”¢‡HS�R®å=p"­BÑŸôœn<Âl�¢i¥û… 7EíÃ{þö(0tþT?®Éièbp¾s,¦‰žsx=è²`.gYïÅ[W8$j‚ŸW7Q¢‚·×“ráeö_¾çÆo¬RÃ;ë�â_æ’67ѳ˜…ù¶­þ§<©ŒÏ–þ 凉lzI¾ìÈî!å*¿Žñð« Óoo) »ÛŒþêt�1·Ès­Ÿ%t¤7ʰu•㩃XŒ"Ü‘e –±:û_~œž=޶éx±üÇ6ýsüÝC^–)\ÝqJ КQؘjÓ¾ m}ßúóÁÖÎ ò·h hü’‘?pj�ƒÏQ€*¼ÀËÀ•(í`ë&J,KkA£&sÈÏ8Y~t`ìÎEbYÁc,ç�BJï•WP­N‰Nûk¨ãJ Vh«»¶·ºð•©OsÄÎ3ŸÞ¨£@ÍŸV>‡-=]z ¾»²óª×°eeìÚr›ìׄÌÌvŸV›z¹]O k‹XÜ ¯ äÿIlˆ�{UÙ,¤ßy˜wÎJÆj"Bg~¢[i2êÙ*5ãu·ÈÛvK}ëôŠ!e Ö:*|¿#47tq§,R ÞÏ\¹N®UJmKæL ¸Å¯‰;À5x¿íéÁÀ¾Y1R¶)M™£GùŽˆ,m�q9Ð|•êM£­f€íÓÐ;þÊFXpÌo}É‹Ü÷6Ÿ¾/Tîv•ƒü$ÈT‚:YìŒÇÔ{½¢üãéȦ¿‡$g†n†kÁÞ†ùë}ŠeúkHP!|'éÏ—Éì¬a­%ËúpμB+çýâìʨFìFÜH=ël¡,¬!šÌ ¶!¸õ«¼ð"šµrÍY.á>#‡ãWa¦�kŽ XtfòáÈoÕ úðŽ{٥æR˜$æ7 �# Š„•²tjbF8:ÄñP-`áދΜPé0îT{ÉíúºH}xZ ònÁ쪶s�. ž“6E…Âk;¾7cµk{ªÉŸ©ð¨,ÕwÂw«2òuwr÷DÕ~Õþo‚ú³ŠY.Õ–Ç/wÈAŒæb]JoHUú›];ã¼�¾,àN_Òßݧ¨¦.Únš#oîœã+¡ë¶áczç²Ü{YdUrÝ”¼Ö]ÖFÊBÚˆr€†aÂ9TI%ʼnÐNÈc‚±/‡ê(Ö¡ó«ß·G¤(J¯ƒ˜FÕD•‹4xË׫Z†NÅú:¼±Â‚è¯&/‘`Ý Ž £®¿˜õû¥s�`¯hÆïÈ?u¼S†�äꈿ傲¹Ãƈxµq™âëê‹$©PÞxôà^Øv©îµÔ4³`¢šJßœ`ÐŒ¦­5©ÖX$PdA> €Yœ�Ib��–á?6à‹åçU“ˆ¶¶ e )æÈÖÑëä¬-zìáÃ6áŸ5o` ’¬C"õ¿ª9LÐ×7‹X~(x9…–ë_»ªt–"u±lü´í§»Ÿ tÖÎìíÚE”·*äX²ƒV»ÍÛàt(5ªÕwɦ_²Suß™ó¥†nEyáà+¨‰r÷ÂÙ†b¹Ñ+_5Cm_³¨êakôÄõ�¯h–,«Ö/PÔ'’7z¡ Cš%b±[Эµ(E}r4F�Öä×es®¼`ŠtÙxÓPn€¸%b®:à¸Ùd†ž–©Ýk¨C�Ý„‚{b÷[äkR| <¤+H�Šö²­j H ³pZNÕ® ñ9SíeXw"gñYTºÄ" Ü™‚Èeë^QÕ€æ¥ò’¢ºö&]Gr% J€@sˆŽåM›¾UŽÊ1ã ¦±Œób©˜ ²K#uWßÄÖí“vlF»’v[XÈßDh Œ”áÒDñ£ÙjÐ#SÆßþºýuüæI«¯•ÖtÇ�×þc;º/•;S\*Ç‹xÜ’Òç_ÔÚsÆ£ÁBGêØN‰…,t÷&dÿ<ƒGîþ5bÐ7�Ya—ãàp[Cf¬M^íê‡�§ºM ³fr=×JÍY§x û£CèCmy:Ä�ô7;JtjÐrQxÕã+î ®°ÓZNrœò€‡òÙ:Qäxg†Ü©äI¨ç(Ib»{„ÿQ¨„hœ³.uMv’¡‡>K{Û9ÇüpK¼!þ¾µtYê§Cp`˜éÁ2Î†í¨’µâ˜ [•ÀÜÞ³£× á`Ê~… TiÇ£&”Ð+µ_í£KîB¨< àøGL‹Y°B®¾ƒÒ2›;ìl.¹3rÉ+ž°›”¤§³B�Lík8vÀÙ8yNeþdªT“@\›÷K_žá!^Vïjg-aÈû”dVùĆLyåD™·pu`°cGWs½æ—„�Îk)âäÎH ÑY^âúþ9ÈÞ½§š½á)LqPÂb�×]ø<Ú^ïX]ò (Óñ?2 Ë™RyöïOár‹#Å^¡ââs�¾ò‹š‘¢q“z£0gúGÑm÷)—k÷$…À•™fÀâV·ƒÀÍ%ˆ» Êw)õ«¼Nr› 1|þ ‹ï†á˜qž Ž šÚBX÷_Ëo­`Qó�Ê’åF^Ã! Ƥ;ç‘þËÒˬ¿­ü—“«t_.„Á_-dzö^ò3Ø­Ps`ó#ÅB+ùqæ!Á‚= M=ÏøK[ÕVjnmõEÊšO¡8$R0Üì�Æ‚„gç#-÷ý¦üºM`K8ÎǵÏÌÒQÆà îÿ<[éÝåû_"û€ÿÁi¸_ùPe<« .»Ê(1h£Àø@tjùpñçO²ƒÎŸDV6 äF�…�ì~ÔEµ7Њ|Xf$Ê€æ‚Ç›’¡ä±°D¦à îêÇ€oÏž¸³1àÔšU+²aµm_â0¡9Þ÷â —qûl%�ÉÃ{­=«#ñ^‘ß5ºƒO·ÀHQá1+ŠÝZH¼0Hñ Í»f~¥ißd™yžh];µCÁ1‰¨…WL¨ÒÊ¥Œ‰9öî—ÎÇcá�'èúͳŠ8§öz~¹ü!vð»Sáç¯Ó|q§oÐ�¯õð.CÕC ,q8>¼âi4²:P²�{gkS�æ›»–6Q0ñ=¨'�û”í­®}¦ˆT&·ô³}þo ãqÑø0˜™žS‚Î.úɾˆ7ιr7G%×gpz¯Wá°tDÁDTÍ¥µjpÒ¬ôênÖÀ†ŸÀ:zôµ†2s…¿¦®�ˆN«!Ô=¢tá»_«ˆœ-,Âxqß^멪â![Z„¦Bâ¯q|,\”)r|æ*Å0Í›•ðï, Ç»š„B Ȭڭ ©q7scÑ•·ílF?´bÊè*�3® ý ²¶%õ»Õ7ò(’-7‹QåiÖQ+héX¾ªÑ6¾ Á2n&̺ñt¼Lìœi´Z¾P*ã£�‡“ªeéP•‚Û8Î ¢óLP@eŽe_´Öª€ŸUpQ¡y>~§Õ ¾•Lе“Èc4ð-wÈdDY&@”d7¡1#ßÒž�ª²ˆîYÆOæF¸·q+Èß ^�ð¡Dã7KP~´*ؾ…~áØQa¬;ÀµzÀ˜H„¿ÃÇ;I­w$7ä³ð4Mê«N¡½"Êh7¢ß¯^/;ßI±ÕA’—_Ոت;L<ì% í�(‰y=SÀƒ Óà@mÑöÀ)qÕE÷²~\Nó’¾ÇŒK9�†Ÿç asŽ2–FîäT¹îÞ© HPŸæ`ØpHcabÍ¡ÁÙV\"xŸBg¬åiÔÞJêv3Û"–\2,ð^s7Ñ™  ô0P¾ËM�~ £[Ù5gÎBˆØ–c ˆäw¨ï bÍ%q‹ªŠ†é¬¦¨%iz:Gf0¹–—]ZîA‡ÆŸ,šŽ¼_TZŽ:•–[Pp`¯²`’XAëä™Ó.œÛ磼Œs¼½L϶Íu?pÁQ"/ñjú^“ú>@T°…þL_…Obm;¼–2|‰è–,7O°Ñ ºž\SýÛEB Ù›€ó~xÔ ­¯ª=ÎrR!¸R¡ôúgS£Ù˜}"Ì?Z‰U娑w¬€«4²Î¶óžB‚uÏ/ F:çÐq\DúÅàèjèø¿kKj‡=¡€„å4ÛQá è®ù£|v……7ÌIól¢ÇÙ}¦¶ÖÐZý²xš® 29BJ±Zv‹®˜¡—¹6˜¸à Z^1 <›Úÿ®%APÜ©LÁ\��.ž+À4Är�ã!žD$_»ò§ñ ñ¢ëÈ8Ï¿²¿#gvb�t0ó“øocoWL6‰d˜ªÅŸ&œß ZÑ`Ï7Œ±Dž×]Šê*üÅÔš—%5(f††áÌö-©€‘íS‡Ñ…>«~þÇÕ’D‘#cÝH¼)·üüÝ$OÅ�ù3œ!k]ÝÌ™ÞÜ.�g.§ÐT›Â\ˆîÈRÙÕøI–C‹;XKk×ß2Ñó¾n{ÊþÖ÷°¥B¾Èê¼·nJ)J¥.Éô—¶åCT%ÛÏ�Âç¸×ðG6†Ñ3�Iâý“¶<4³*#m~�¨¶k¤^¿¡GÀgi“•Âaf»Å´9«Ž>gÄDŽ@y£|ÖçsË62ç¾éëòV ’[b…íãÆMX":Bò€[S¾á)Ž‘ÁjenLôʸ®w¯,íìÑhê?*8ípÔÃe�¾¾†�ÒêÁìÔµÎ�™\½¦ÇY›FðਂßÌÖ¤QÚdЪØñŒ�ÞBÝ ›Oª Ú l©RâiF<d7ø24óD^Úúç4Ñw‚¸øWj�J|„»Ù‘Br¨P2ÇIÊÚõìæFN.Âi2+*¤áqP<à¸:—,²Wýk3ÙK .| áÍ¥Láî1¨Vª])�ñÇ-r‡ÙIØH.�UÂ…Fæ— /Á˜,øJºb 498å§`Ôw]eÚ?v®5'-Ñ ÕÚÓ½V‡à[¿:¼Êük&Ï-„]F9yߊxÖˆ Ûf$T4pu?¡É.<’3I1þDÀ •jñJÌÕÞ“®d_®$óœDf±‚Œu�šÀè{œ9TuU«PÈâÄ8ZE 3+ŸC¡PNC"¿Ûœ½.9¼QB¯öî/=©!{}òLV;fTLŒ¶¤ Ð8Îð�¦_¥àÒF¨ÍZ±Pò©•­=}6ˆ5Ù >wt�Ì›­ðÝ¥9S‰L>ôE¹GG:<þrþ÷èft™þ®”F,Ö�Ö/—‘Ñ5w'«.7§Êbø5aÜQh¹ÖÉCÏiUwøƒ°1ƒ˜)B¢äéeWÃ.|ÝÂê.”MFòFçvvÎ¥;‚b=UMzZÓ¤?”ÐÛéß«ñÌ8«íÖ—ù¸É ,¬Tv¢v´ˆR ?áRýNúG²œv3K„ÛðNK;J\l(hO�˜€Na:‘‰„Ú)8>^Ï* m7Éð”o¿ÇjSOæf—ƒ¹T#¦Ö”çÔ�B`sú7&�=ÃÆ@Jñ)kÎŒyå"ý@=–¥¢„¶w§ppÊï„&Ýj/M:Ï)Õzf�ûˆ|²ª¦‘é9¦’œÖJó{lQØ7DêBì¿ÖÆëÚÔêbÄDrÿýAÎz¦Kn·Ã(]è94»90ä ±\~b“ŸÎDDFP ̦÷�'9¹{(Ï\`ENË´A»¼/ æT^ŽMknþ^\ºì ÎÓ5Ä¨éæ …G¤jIÜ­«|=U@ }<ÁÕC+vËÓ Ktvá »V2È%9=;ho§fï’4�&ÜXdz•¿†O 2뎦 –(DËÒñ)qAIn%bUiä².ƒ¥ÎÌÚœ¢ãq&}«ÄtðˆJ)oeùZe‰\6ÚœÉk$m„ˆ€«—’0)->îĵ÷í6©gäðT—ÕÀ#Ü¡¬.p;"yìAHI°h}Ö†o8¥è{XÔþ hÞÝò» Õ• §7õÂâí²Î «wäøtÓ�åMßs:þdy¥¶Î½ð�ÁNG4ÒßBËs"y�æ‰A+™¨t«ˆï^úê–ß_Q-2›þõIó(ÚÍ’(\Eì'6ìáó?k¿~Kâp¼ B?×ÞéË÷‡öa€ù�ü)Òx�ª,Nß’Û˜‘“W61·© Ñ`FûjŸ!ÀXÙgùy\IÈ7køqä­&sƒŒ8œ*·oÞ³®ín?iyja@š–F@€„âW–;þ/œø46Lº çEØ)ºý&2EÒò°oÉT�ä°qskIִܨ(#Ù ò�{ñÞø¿‘³ã¤@ßsìXgµÛÀr¬úE±ÖÈëüæ ¾Š°˜æ ”f]Xv+£~_S%¬PÑæ½0@âi nô_iÝ4 Ä|à5g4-^îï â?øL³Pmœ…\r½ÉµuˆdÅöDÒ?ᾊz @/9®:µ©«�èkµ‰Ð9H4á÷Ü ;ÜêëµØH§?ú¬OH+θQîÿ––|7£A »¨’AÆú�ô9φò`%>% ëkÛ*9•¡�— Ã`�)Ï ç"Ž5Î@•$$Ú3X«/Ù�S6�XK˜Ë®ƒE“n<Ž�/ämhÝo+ï8g·#S¡ îèÙb- ‹¿Z”R^çÚ»@¢Oâ “sO½‰l`”憘�Ó|§¦Ì|P‡ÉP£þ<�r¹-óšñØÔp†˜!ƒàYp€ZëÑi"âdÆð~vsoµ¾æ×¶õ{s”%eÐ’(F3‘Iâà%w\—´‘bÌ ‡¾$âHMªtꕼÕ5C(`…é:æ5‹BôhNeA4ÇŽÔí¬×3 ªA©vý�©Ä�Ḭ̈3•¥ßsy^×¼þ­NíÃzGHŽ,Gç«)ï9|Syá@R6#6 e× þ9òþ>\,¼-Ô´ÍndeÓfK/ÖFß Á~ÎPü~‹GY´'Ï_=’Fç;ër)}æj•{ÌV޹h;vÛ À ´[] hFd“œDL�x�ŸŽ8 Ò‹¾"'ïa‰[ªÞbª\ôîþÝ’øÕ¯ààzVÑ$¢ö´××Ól*Æ[Çx'Œ,¶­�Mb^éz+<Åzó‘¯ûÂûQÍC¹ìÁoŽLdxwPë‚B‘iû“¸B™Ñw=«Ârœ••êÑ0­›)ˆ×°×x¥RÆäà»Â¼ã¿«tNn5=åÐѼI`LA í„"_¢3?\¿³¬A±x‹NF§þ<¨› ‚7"òôÌ3ü ?–?‡©Ý¢q"ÉÑi°Ë‰)»Û º±ƒhû_ò¶H ƾoŽÑc€%¬øÏM ;ÜN–�¬ù.¹ª+¤<¬ðÖø…m?©@#dïNñiª£k[3–s°M Yî4ªÇIólò-âûûv5c9Ö]»Æ2éyê€ùïGç&F’{?mEø@9°1¦”ó5Wœ!Öš5¥¾Ò¢3T±ÔDî4&Áw‰`¸CÄx®ºxIcÎàç’YC!.:³ ­\ëd^‡œÈŨxæ#�ú¢ ãÄZ.·"&m®OбIžz‚Qí´eL_çØ__K«~m �w<”ǪV–8> è ÐAôŠN!ÁdJå€4.2_ª +úD¼ø—�}çæ¯Ã�)7¼-ÇÓKâ©¿T†X—)`ŸªXGc0äóŒ-å“¡'rgÊjˆ~ 1ZȺ³ˆÊ/|F*è  *<é�æm¿‘ó—„th™c>$»�Y½§yÁ}Ç>èŒñåw…ÜÙXúONƒÙÊó|?ƒ!¼ÿ–Fh:ÞS�]VjtÝèä ¦ÜKRý0FJáéÓK ¹Q›Ü –¾¨ÛéÊÊ7§HÝ® mo! ;«Edtº44ìlz_?úÚR)u�yã›FÅÆÇò¦~#Ê÷h&h�ñD×(§ÿ¹SRmÛ·@^Ó�M³ì¢Dh_±5. à5$G¶]‡jË;³ Æ$å2€ã¡‰½)Þ 1ò&pµ{CJ¹ñ7YRE€@cZ‹m}´[XÒ¤vA"½GWïÕ$‚°ÊLC´3GÙpÂ+Ö¹E"¹ê:Œâþ7�"­øQE‹8Æ´¢†_,DÒ6fƒ¢×¡{ƒ¾á q`r—šá¸“‰Hä-ì‚öá(#K% Qô·wlçÚ€KÎË*™ld͉9!PËr‰=ðç^=®]iÕÆq6?s[ì=Nb°’Ðl«®P½¿ {°|ö¼¬¨J]H®"î@¦NðØ"Œ¤ B¢6‚sکĸFSr²6è9vÒö«ýFÛùߊ";”šÔ{¦¹’nòfVB†ì¨ zsC@‘�êÏ;Š•·fmˆ¡žT¶h¾ëí¤8[d[o±Õæ–ó%ñ¸´p¹¼´ûôÓï¿Â�­D¯�0 ¢;ŽW¼ìöZó*÷{_r…ø*,…†b›w‘iX ">ó ;¬B6— ÁÉ&ˆ=§&ù›>¸ªrþ2ª É.0ü5©v3$Æ^í’¿„ˆv|ýé þÓ$äòwÆÀGC!‹íÛœ5¼FþÉÃ%«mM)Æò’¤‹uÝ÷áÚ ¢&t/¨¿`'�dÉ#×Ä1:'FTδX“„®àvü|s9(|Bÿc§™'yïÝÈ3\± -¯féh˜ÊöE])ÒÝKªX¨5Ò¦YýXŽ >Àž´å°U“9#ó墭3'žò;�(ùiZæ:ðbÞ6›öJF¶Œ˜¶qv!É'Ÿ~¾/d‘¹Zè§ßT¹¤Y*=%»ØQ­.”¤|"öÒéx¡ù SE8�Õ1̓|Q•ö,ù@ž5hcÑQúhBù¢ÒÔT´£­‡�N€Iv*»´ÐÇÌ ÒkÅ(¶òƒ²¾³&Mäžß \áÔUÑôºH{SVÜÛD°Ön!zÜÚ䬪1?ØÔ ßw‰6pÕDÖ¢›¶”ýdò¥© “3¹ô cž‡Û±sZcZS ½`ÊÊ6LÙQóÉÅgÕùÙ™ÝÁ?4ÉŸb‡ì©? SEÖj0±„MÕ\Z¢ Ú4Úœ€n°|ÎK<÷͇ڋ9Ì\{üHî¯í×i'MÒ;Åóq!'çË›tˆïb'æ}tð6v\2|W>Ü]D?‡Æ=Žú]¨(¹ÐÀ³Vo¢Óè � åãÒN- ðÛ)¡ô!�hyÑiËo¹R�\#ôÈØ´Gg’�ÄË�‰˜÷¥™âý&vì\™>rÇ@>e÷ƒƒS·šÐˆ/ߪøÈw.~aÅ+0ªTºš•£3"5^IJÿ8 ZU0åpÒö {ÎÉ$–Èê0šz„°Í?e^ ékIu�áÏ‘62f†„F œ†J,Y0ì\ýûõùº«Ñw¹->h ø^E¬Štvðo¶Ú%‚ÎèZPê÷[é´§Ý݉u}MêßZ ~Òõºn†swÔ±�S ¶¶x1É‹UZ†iÇÒü€Ÿ²snÓ@wÛÕˆe°ì‡,‘«ï;z™5d²—�ÌýWd°näªaöã×�îþ¡_¨ð»�üƒM„J2Œü@ú¬¨Àal¿fî&À¥rçX“PdÅÚæ~.õÚÛ(ÇLúLDC‘Cq—ª�P�b€,à"†úrlήD;úç/ÄÂRi¥yÝñ�mžÿîê¦Ô¿’÷o.çù¢¸éªŠµC ¡@ ŽæÍ,m=míÈÎv-ÑóÓe\;JÚ¶L{2M�*íe�ÌÞ÷÷ Ï z,ŽHúdzãgPðAï9܇]ÉfkàÂÄ£¡$²þ‘eøÃ¨âzÄFIr׆pàB}³ó+h¦R¸T ësq\ôsz¤“é§Ô¶\p´ÛwjFÒ yÜnþ2Î�WWŠ9�*ØŽ^hɆö<ýß ‘¾=˜SÖÖŒ; »±<^–{‡3$ù žúdªBHÇóyi‘ˆ¶$õ–D|0Dá„#‘Êû.` gÑ•Vö8¤‰÷_Ú`d½Fb$§þû-ý®Ìö�÷Ý4 ßsñ®ëÒ�Ô•—ø'(8ìÁ£,ÃLkRì=ù1Ó¨8ym`îx£Ä )dÍÒ¾L¯‡ÊBšw7+�Ÿ†½Ð}0d7Dã÷í}ÞC%™;ˆÐ�º£^÷�oêK^;Wr·Øøæ�ÏØéfT[Š Ôu>έiùUô-jæ¿ »-ŒA¦p¬mX¸| WìeFz6C',OŒVQ>ømLêQ)ôÉîã¿v<¼ôŠ5~ÞFˆ,ó¾OGk]@ÿ’•Wsû·;�¬Œ¦;¼c6¹Åê€hæsŸÅ>Ûwá!&¿ÍáyàÝïs(_º'ÝÀ*ö]µ4`„@<Ýx ¾EµS|ç—ÅjÇÐÎ&ëg‚v ¿Úo,,VêU» œëÈVævëu´§ÜÓô½Ç¶âo�p›-›Kîÿ²µ,òyÄÖl¢Åô�¦ÞÕ´Þ(.£É‰èZÖß:Š3ÜêþDê~4©ŽÇœýWãŠ1%³sZFh°ÆÀ×ñHÝÇrQH…€«¾èÎøÙ &·S³h«G)F@÷Ø» @#Í.aDG[l»bѧbßzeá¦ÅÎ*¹³þË|’C*Õ¹´Üú6±50$�^Õá„ÚºoyQÖøìŠê±ÁÏM* j!³LÁŽiR%…ãÃBªm½Fåò µ™ªŽ5 ™ÆT|E½EŸ+)é[Ô±WÝ�[VæÌ¿IÃ!À£€½…20ˆ¤â°Ø .QsþÏÜÇ?¦ýLÂf¾ÚIeOP YQä„þ'ªåñºŠ=Þô°#‡†ÞbÏ:�x�»öS�"Çzï1>Ma„÷n׌ß°CÜ^ç'ª˜Yx¡�ÏÈ�ì(Ö˜A�uý›¥oÊ[©Q3¼ªÁÐp)3à(m^¤™”€ºO/@Áÿðñ}a͉©_LMi}…åB5Õ?K(hæ¬TLwµUO¼j¹ÔÌ[µg2Ü-ÏíBAäêøQ¬Tc'¿²fµ=‹”}2´èeêuêB%o¿È)ÃõŸ®Ž‘^Õ½ŒF_�í-H‹ „¿û£2l$C‡wß{|ž!Æê:E²‡¢šœÈ©J, £k>KØfC�PYØ®'tõŇ£V»i+þ.Ïí»³É±xš‰v~j5Ÿ&�§7o‚–š¹q잊9vêêöF +Ç„ óð„A’#õëñ­�t!àTƒr†x«O‚¡VÉ]êÏWïõSˆÝO` �(äsìS´ü¢f�õ%«æf®ƒÓ±*ÔS³nûIÕÊ 4­Ÿc�?;ö†WxMKÔÐ�ÿüðÒ²õˆmKUÜ.Ø+ÂL½£`,üAÞÛ ·Öí,bíºNÌdíSéÜöoÄ”y™lbÌõT»þB'ôbKWÿ:Ë‹¾è(˜µÐ~çµ>7ä²co •¾“ÿ‹§;h"›k�çQÿ{wxåb—ß:cž×©Ó¢OŸ‰ùš>©Æ[&xû%®¤¾ˆ3Ïžœ‰Û¡‘«ëFÔëþ²™h•¡‹'öÞa¼ëÌßÖžî)Ÿ\Êìòànm>y9C¼Ä ?=Š?B.ý…£ã¥�‘й�‹…ªcJê|Žz�¬Æ#þÂî/É)×9 ‚ÏÕÚyAÿÁíLoX•‘ÊÒ~}ÄX¿Bô„–¥…™±oè´L¨cû+<*³ZÍJ˜ñB|Ös¨³M>µ µ‰ðÛ?LÐ;Ýæ°á»#ŠA…šÍU°ô¬fdL{5”ç#ä—ãNQ•,®Œúõ"¶©‡rC`¼Çíÿš<·c~áŽÔ4n($Àák®zÑ1Ò¹Á—VçN´’~¹R!¹~Qü¨’o¿uƒÿÊÇ{L¿�]_^$ñå’/ölÌ“=Þ`¶ž/' cq©ZênÆÌŸ™=¢ÕŠºWì3�œQqe¢­l®.ÐVï‘zT¼Ov»V—ž9?X륺v\»Oø øfüd]©è:ûú èÅ<íÒ¬—Yü¼]Xž!‰É­`µ®ï¨¿_¦TO�¯¹ÝÄ÷’<ÓåH|¹»16ûÇW}{¡st~�ô jt·g;ɺ0ÆÇ-þl«˜¡ tÃFMC¾‚߀W¦;ý�̈ Q=º›Ýß4\Yi-cRI¯tQÒмï}Áüæ…‡³åØ#2�EeW˜?´%•…oÀºÔ±Ò¨fF`9æ›1†ÂC7Ùþ„™»¯êzqî»N«j8ÜÍÌ·¨vfUܲÀ<_O0-B†Xe"ÿ§$½ eÜf_€ÕFw[ÄÅKþž[7¡¼rTÍ]Ó‘\‚<~6±sƒÁËÈw'é®.ùutϘ€è}òí»T).È Ñù†³ýÄWV£U ¦ÔÌ÷32ŸI»(i9V‘y!åWø·›K#v!«wžQŸƒ° ¡RcwaÚŒèZ”±!©X¯Ä ˜ !lDŽ˜ &¢ÅÞÊ3›N°š}Úe °= UfhƘZ&öÁ :X¾>¹¯Õ['Þ±]C÷\ø€õpyœÝùâK1]_„%ËW@xK+˜_´�.“SÞ…º.!�:Ø&Šž“å ¿G1ÿâNWéT-; µ¦=Ì®‘ªOÝqg÷´ Ç-'"(b€¾°æÑíÁíy€†ð&z\K=}ñô¦·WB¹Üþ oSÔM†#r#Üû‘ÈšN=òlê¤tïHoœŒêûWòœcKë[ Ê-,7^­­ˆ›8ììêQdi²ZH”ËÚpÒ@ï°©åæó„F†Õ ?{|ù¹y°<¼ÍÒ‘†ƒÃS†™³{Ÿàoƒ9Rýkûø 4E þ¢WÁ¦b*ÓÍ} vûÅÃ{vÏè�ñg öy0w§)kË9c¾02ê.R�ÆÉªöG\ž°.Ðèrª¦ oxÊ¥sMoyÿóŸß�¨ºJ¤or²üôÊ;níFmaDâ2Ä�.ö?uRz”¤'©1 E*Že?zVªµî±tCá§­ ™cP~’΢Ûgì3¤÷ ÖêÔÙ<ˆ‡–$�-Ì»ÜP°æFÍ^”à�°�¾ûwa‡hþ`ŸõL‚¤TQ‹†oô(PŽ'>qÅiÅÌ“÷,åáiÖÒp¾½cŠ 3xBÊüÖªR”5³Ì\NhB¿·n£ŽöVÉ¢¶7±û‚†Ã~-áÙ‚’R ºehA/‹„ßyû[Œ³‹QòŒ®6;;?×ÂþLWâ,-±Ô‹q·„eœ�Š#¯hImsÞàírܸyU±Zk¹p“x¯C@éÀdå6èƒQÄY �¥�G”EqÔd ùRßHQӦǬ[“ñz› ¢ÛeÝFjø¶&3Íò"‡Ô£bhçYöØ; O£'‡‡†æ e3›x[cbĽ‰ôU(‡0I¢¢�龿²Í7—“e�f„4sS•Í5\‡×m¯Ï0Ö … « ;‡�<—#01$�ò€²¿6]ñݲڠ<¾×Øzs)ö³IÐ!¥^�“E�„–N솑¯yõiܾ‡NáìkîH­Œg„:‘]øá‚^½J9~ÿpëŸ0G:߀®ÂãQd,3ì@cÑ9 C©¦ß¨ÈÖh=ŠŠJ‹®;ÁlÌ…•apᦔ Ï5ºÑèô­‹ªï7º›ÓFMç]„‹Hµ¾Y‚E”Qkb≆'FÏQFóÒYUÊ�Uµœ:•U^Bh¹5·øÚq×Ìe™¸ŒL°¢¥lŠôæáªèF³Òýo-K½¦ºçE¤Œ^qÎ[ ãªgA® £çŽ{IØŽ$Í&LXõá*ɳU{ÑæâÖñXÍ^!Ë-š£•)S>½þe+"牳x6׺Qkü‘ ],©+(�^C¡ nžfËòÇ*È(Ëd)‚‹3(ê«°Ï]ü®Æszˆzï`X茧¹·öb‚µ“7.º3ƽû¥éš,yìaâ¯]Ø t÷˜”Nl¡¼ `$€ ÕÖš}§ÞˆÃ.Xߤ:@[›¢àg¹ú·Nyp~ÀZO½÷R\º�Öóêëî Ö>î†�›±ÿ½agµˆŸ§pOòÃÛ§‘t³éy�âœS;lðp‡#åI�BK²Tz“EtóEcÏ2`2ÓÙf0™�Ùʉ`öVÇdYiJÜu0h¥ÅuSf�€®ö…[aÆ=)2`/$X:€ŒÍ#ÐVLê„ñp‹|®vkÀé°H¾~!‡�U;án¯¡0|_òê>ä·n‰”ðiø0�äb𠱑V6¿pî·¶î¥b\À÷ð5ª«X$Kóp³z¬H_âú?ö´)`»-!U…ÇRS\ðO.dq.«pzò%ùd‘ètÁfƒ>ç".ò ü{Ýp"PÏÞ�݃½i¹&ø Ìg<~¶˜Jia^LÄe^EMþ'ì×á£ËßžÝÄP¬@§Hh/ù,Ý·¿HÅ"”ûÂfß|t^‘¦‚ñ>l¹¿ÃžÀøå‘v�îKLBö×ðG=/^"K½fŒ¹Ó#^ n( ¼‚¢6ÿæSþÆU<›)«)@í[d_ YJ@n~[«qÄ&ñ[ßÔ_ -¿C_ô€m§¹*•°Vù€¾ã‹äÁ¤šˆÓ”iøAp®¢¶«Ó#I@{H ‰¸Ìô3*·÷ëÀˆ¶ÖgŒ¨Ý°@É™¬›-$Ï|>«¾’ö25`ø§óŒt˜øàóSa¤<—–Ãa…HI9L=kÝ[� ñôàvõdÃÖ:< ÃE°jð8;å�—Ó‡•,TïÒܤ–ƒ�oú_Ǫٲ|ª¾€‘ÓÎ/Ô•ß•Dšîô¸È¨‘±?@),"Ñ*–ÿù,b6ÂÛ˜±{)ÿ"O_ª°·Ò;uX§yB7Xªý½Ê¤O`NñKNÒOO"qSe|‹!§k&ë 0€¢&Æ´BmQ¼ŽDüÈ)Yßœ„YV¨(Rúè|xŒ(Ôç,”-›‚÷¿i¦—ƒÐG¨�_<,²GþgÕ‡×ÖÓ~Sù¨žYÍ2õÄò ofHçô’-�M—  ,C§ÍõãÝáºáXª:.ºO ¢oV\Ê=¢�Š}ÒÈ Á”¡«È§mLi­ó¬§‘` ˜#»”ëJD)h¬‡·Ç¨Äö� p�Ì Òf¯f»±¾�™P Í*Ÿb¥ÿ-xïöC š þiŸ)`Js!Ì®üÙo’&Câ¼e/mûGYòè¹¥ŠÆÅòOkM΃éCF<Šüÿ ¼Ÿb…éµAwÚ¶mÛ¶mÛ¶mÛ¶mÛ¶ßiÛžý¥ûï}°²;«’Jê î\ÏȨÜU6uŽsH³å¨qx¯„… ë*+9îKÇâû´N’Ê3IqÖ¼Vu&b«<ñlçqÕìÃ8pË᳑�iiu¼ö¬ˆÍדR©$OëLÂ=}ýIp| ö`„âèk æL±�^ éÑÚû¡î¯Ðòy¸klbC©m®­Vbd�=”Å •!÷{\²ñ�B„“2öªF80·ìÃK0/ÀÞ6-íÇø„ë–$s•ÆËË�ÿ¢yÄú™3WMù%®Îæêï'%[R,wkÞ>�ÊáDleÑ\i}5£™²L'ÌÑ8FB]; ÕÕŠ=·Çu@}b¸IºíÁ%�/‡ÂøÞöê3š‘~s¹=aî¯GÂF‰O)1~š%I&�gÁ¶ìôÐWU…ÌûÓÊ7×EA´¤Bf‘Ö1xã«ÚkjÔC°g±˜%üæ�ñÁÊþ$†¬ãHˆ40æ0½œµ˜ ¼-î(QW˜pžñõçßDä@K‹H�¥u]/ùn!'¿ËŽ[Š{Œ�ûÉýå°²ÄHë? €˜ëš~‡ö7(F‡¶ÖTÌ_ãúÑÈ�µ¡ï9�‹s‡àŠf…< p¨o¾�'¸,LÇ·“ŒZ°k=’cŒ4-­OG�è;¿œÒz¸(%õì:Z¬üà JSï?‘©GT±ªd�9N_œE>“"¿–É·µˆ�"«]÷ŒûØ·ÅK‹öøJ8@Á­¸¢ÖDQ5|.•%QUœ´Û^ôq®- LBtÂò_êÔQ¾£/†f� òÏÙ B2@'�L\à‚f?~¤÷}ôMgÖ‚³8Jåþd²ÙŒz9àÁÖ‰äÓÓèÎÉ*†¹S|–w®ñ$¸�7V,¸Ø\<騒Awdž1­*à-Lùx³”0DVëPO6¯h?dä;ÎyŒ‰w>Éåžk£b�9xSíÈ\sŠ¥ïµcL³ïʸ8Ì?Ùp‹„�ÐüõàUÿÔtêî)`|,ù{S©Àîb H¡�YàÿTð¹²Ì¥ -4µ"}^œ]wx°'ddpI½Ä‰Hÿ\lpV‘ª/ß—y›]”G¢Ø?ãÇÆÍ?AãìÃ6·ÿây5ÉÞGÞEsJ=/•¤`A²´�ܨÊù¶ö+l1ã/Ó­$p€IÐÏý•¤ð µÁßiÑá5Ag>‚¨36bÔKè1Fô}¯`Bßߺһ©�"+Ýmû° �VdݽˆÄš2˜v BÑò>œýq ŒÝOö¹�õôˆŽôA!~Ë–m±®°”¬û£%”æôÁ'8ýY¯ñ"<µ°ÏJTàA"Ï õ !�“�ÒÒA¸IÊž„ùâMû¬%¨>CÓØ��IÖärqò ‚´†Í;t!èÔÈ�ï8Üë Œ«ÈLx©{Qacd&Œ9—üb(iÑÉ}‹s“³–™SºÁçAqvV¨U…Ö¾ Æ«ð�'û=qº›áÈÝÃÙÆéx¹PDK¥è�z ×H·3ˆã¡ñhTõgÔ�¿$“Qìë!¦Ë�Ê�}ÂÚ+¶ØžâáÈãá„PQ„¥ãÀ¹Jº9™ö°b(vþÙ2ô^ƒûp¦Å<.º¦…ÎF¨•SN*�Dg7ÏàøÎ§â‚H#þF9é9ÆnŒ ‹ñn®È‰1ÐçÏ!aÓþE?FHÂXÌØiß`Nµ³±í3äÂéR6‰-W�æ»É:þ¥yƒˆÌØ¡TŸ¸ˆýóÀ=ŒVæsp¾Th¥Ô²18ÈsUDq¤u.…ù$¥’ׯg%¬Z ,@dóÖQtY0;Þ“A°©B Ä�-,µßñj·ð>ѵ-°²F#pɧ%ZY³Ÿù—~ëí÷ø¦±#öt¡/)ÒûÈï™Ó›Z7½#ª£F©L¨.|˜žž$}Ê™”¾Úˆ ÜÆH}xõ#¿ËšëžšU Ëûº8È™Mðsóû¥ÔÅ’-˜úx9V�ŒÙ7p0‚ÎÏÙà §e<p Èßþ�d<æµ¾ AR;Û~€ÎW€)bÖ5È7æ F#(¨Ž¨z1)r*»Üæ›"$Ü•ª@÷¬°ÀfG5NB�ÿlØŒ?k&º» sß|LÕ(’¼Ù´ÛŠnÚñtÄiÉÃE`ÚY˜‚„vC,ä4�Î_ QØ‹Kö=*d.!²6cùÙ²ã-ïG|O Öœ9§»vÎê$–Ø�k¹Uè}A¾È|ßRš¤è‹Íb&§õ0 %Ìm¨ òíÃmõ°& 3R'‡üœN±à'W��ƒ¸ !˜’re'„ù¼IŒkA~‘îøKhfØ¿z.ºQÆ6Y·žpË9QÓêÈ~ï _£±2‡‹ûçʶöýÏ{]á3ÜÒ1À ÜÜ70¦çíVj:Zú]¨Þ$JL�ž217]8â€×ä«ÍÝถˆ#m"°q‡Ž¸¦T öúš>Ühšv�¹+ÝÐ-‚‡¹áà[ !m¬I÷£5ÜÈL.FX÷P(θ�ú÷#ßN�]a$k(Û®8…LÅÃnýg‚QDNP._˜ù°Y§ñWæ,HË_ü�¶Îؘ¿L043“¸K‚‹éAºSrð wÍÕlB•Ÿ·q"Åþ €ãõàŸå!)ogóF@ÞÔÞg-6˜f�4üG�ð²¨+3M#3AÆaÓôR4nÖ¶êú R†ºº{Nxø*ÝöQ·]íì¹aÑä¢/fFÅ-å04þÊb¤H÷ÅŒž¨)ÊáQ‘6$ûÙ6sQÂÞb2Ї’éÔ+Íà…%†܃E"}¿ÔÇUº::ò¿0$ìn9ñvMɹLùˆkŽZÈz”Ëc&„ÓÝ\uEåܾÑ@ëx„ïXOX©˜é·^;MFÐ9žY/³ëT¨‚@vár½“9:"Å R2®sª"Œ¶õ¹çl¸\Íx=Џhe Û�Eªµè=ý'mŸ3ñ™»âÅAX (EËë&? Ë*R½·:TN%ÁmDë‹Ù{Áà:à� º¹I•-�^Ÿ;b®Ø — *f�cwƒä°":°ÅÒ&·RxJW¸šïŸ�ã÷ÛÐ#¨¾ª•g¦¨HÓ¤ZåðH‹”;€VR’Έ/sr¯­kS ã�hw1›¿©ø0ɾUN’U„ÒºCÎ!XYÞá£ÇSY?<ñË~F9àÏô¯¥‘Êfº¡ªeK£÷2Ù†“ö/•]ÓØã –rN_�¯¡ìešfÛûá0œÓ#¡ðšòÁ€ä,íðÕrr 2ˆoF\Ï#ËXñ¢yœ`öxêë×mIjz±r …`Öz?^žø¾-ÂBt�éÍÐÏ àªÔC¡ßmÅ­ΖÛ>†›‡C¿í w,&2«!œ^Ñ皻Ҙ}Ó¡Ö*–ž)ËXÆYŸoÕŸ+8”L4Ióž=˜ka¯: -ÒêFSÊÓ­~†5²{ÿBÇIU¼¡º¹ÚnOGt³.q :³Ò@¤Øá±)”ß�zyÎtp«~äýöƒÝ��I;„‹º¤õëtY-·Rg:‘—³>¥ÉÈù2–Ðñ.ÇZ å}Z¯S¶á_Á~T.ïñãîÛ·7„7"(?—Ó¤ ø¨Œ^=ö×Úž]rJ-J‰eÏ4H–Æ@ˆL•ë|_@™¼ÕF†Æ†­Æÿ MNŠÇÃÍÅö–=ÇåV^ôll<†§Ð}}æbÒµ¸a ¥ÍV¢L˜é¼WYüäéPˆ¢O¦9—‡ÿë_á‘Tú»h5ÌeV+&ýÃÿP¸±–�ò¸m°TáI/‰µì”®×Á-µ2µÊ'xE»:½dáÝ ¾†ó×®²Òì7G= Ú¡ÐÅBÍ®­º õÞ'ÀzÁEÉKKÓ%´\’>Í[l<‰Ô/¶Ü=ßôŸB,–ËÕcgÁLæ³Ñ˜¨xÍÝU”EªyUt C�®˜Ð“øwjÙë5 LàŒpñzœGMïU±ù¸ ÿ– ›:úV˜ãi¥T`)À„eµßcQMÓÙ¾&³û i3ÿ‡tÊP,�¥�]Wòb5…Ú®²x3èºâZ¨`eÏVäŠ)C/‰™&cÂ-y-³RéY…+áÜòr K`Û¤j¢… {AÓohxlúSˆö™Íd÷<˜ÚZ›Ý*KÕdëºxi†ÏíD•Yƒ±S[U^§é��¡°Çé x(Y ‚ —k•�š°û“H´»È7Ûc¥çì©W ë.ÂÙ´âO=×éçøíÝ%žá½Rê½D†§]>$ļ9�8æã�Táà;~R=ì >þi—[(´¤.2‹çO3R^«ÚÅÇŒGÐú®ºö®Œ}ÏÔöh…ñMMÖæ’¦y�;my1¸\\ ÇQäªN>n*DÅWk­Lv¿…¥@»sIØÕ¨hç)Þwt¿I™xrÖ_J ¨KIí𨦲J=ÔôÌpüžá¥s ì¥Hí£õ„`L¸¸§ÓÍ S#MÍ”f?Ý•÷{èÊ6ãâySv299à¸mf{†_Ô`e¥¹­h3uOu¿ú}ï3R:ä2)¦±2{|Œ€„(ë\‰‹`ª>†€ýGm=m5VM]’4q ×k  îÁª—�ÈÉ…ÇkxmÜbíî)¼A‰S\z—Ä ÃNµ8ÿ�²×ôõ¬¿(\=î^nX�rcîce˜?ÖÄ̲?vQ’"R ðdj3Õ)v.¦æÏaÑe/í±Û4 ²0ƒêMú’Ò«ÔÁj·ÔÓ)¤OtŸ {`ü—¼æ-Õõ,gáÊ!‘ÕŒH‰DD$³³qv4A/UgÇ=´ö°½Ñ,°rªŸxó)ùТ �7¬äÒ¯¹8ÌpÅkžC÷—òÁ쉲+o¶ˆ{lU$û9"ŠÐ<ªizWsßþOc¾/žý6Œwý½ÍاÜ#Y>øIõÚ±Hs®[!ÃÉ!«j†®5Mì,í�iSƒU!‹ˆÝ Q~ÄKÇãœÓ©kg\\MG¨ë”©f°Ý ÉóF P?7•ÃÂ[dKÄCu௪»=`¸Ðç”À2òq™ŒË{'-ZgÉzBO÷*ø‹›Nü  ÿ0ññþ¡â°“*ˆ> ¬`™¿Á`ÞM»«ÊVáÖlnÐõ'/Ëϧ¥‚ÒÕo��ÐÖMÇ3©ïÙ™w~ëÂÈ?¾~[» Ð��E¹¯s+4J£§œÄ(6ù‘Çà ‘¹÷l£^ZÝßwqúæÍ0_h†�VC \ÙŒÏ᳑n¥ÌÀ™(R`�Ai"è�ðZ‘ÛÍÖh{Œ³zÏ"å1Àϲç5[à&Ûž‡<+¤E!kÚñ¥ž4>º >¶Jµ CØÉÙ2ó©·,6Iö¢ÈÙöÞ‰ñá0L~íµz0ƒ(ã¡_û$üZç«�˜oJ<—­T4ÁC‘ áút;­-à±C¤ª˜ÙÁêp”`”œ9$ÿr¶ähªÄ¬Ø.S¤Ô™–Ò²éã~ÛÊÅŠ_1~(¿¶jÅ»»–PD¨nÏKA|Øn‹¢Z] Ê^ë+³d�H x‰2³Óº·y-é³ g95�“댫*û®”²ö»uë#A‰AZ-³¬Û¶ÓÈö=ÝÉhoFŒÀoùÆš¢�8Ö³Ú�M6SüØ�AÀ¬S¡þ ˆ¾Gö›„€íJsWÄ·ŠÜÅ¿çÔÄL èXbµe5FåOì 3•19¦ áñr§#N+ÛåÅ ,(?x ø%í/?Æ»ª®ø ­ð9¶^ï}¯˜ªë;ÏN.TÆ3•l$“ Be*Ý"ÀÆdàæÍpÓûNì¬ã鶪} ý9ð¤7Û~AVU…³=‘Ïð¾=!fŒøù’v-;xbbj@ \C�V0Q–ÀŠ1Oò5å[ ‚'4qwí¯N6 [¡øù•U1B=Ë ´Ó¾ðB¿�ÈŽ „SbK�W5È(ÄÄÄ»– Øàã9&ËÀöYZ #8µer¾Ü6Æ ã�Õ=Jâr2ÂB‹óuú—¤<óÂÔ¶Òü0¦ËÃJk¦¿¼,�ò¸†ï}<FKÖß*"ÉÉ�\ËY2B8½¡©d_]óS½Ôé•”ÞU»ÿ„ ¨Kqù#}–‹®Ež‘¶e]Gj¢ÖÞÌIãã‰-±íWz¨hB+˜ú‚¾©:’Ûh¤8 Ø.˜½ÏH»hWC¹€`Å-xÆç’<›—zFM.Ë+Ë2ý"½«§½Qì‰êÚh†×N¶·æH�¸Å¢G' I‚˜ÿoñtî<5ˆ;N´h†€…ˈº•FqªÌá2{ ?üÚí÷1åC}Ø0eŒ”þÈ8¾fi¸œ)l¿phÕŸ†X÷ÇfÓ‹D»8ï0•Žå�ê²@.ø�LˆÏ¾°ªGíÆ†öašþiXr.j*@©X&tRÆàˆëEe+zQi Áj@m- &þu¾tæ•É©x^G‡ïw/§l*�§›{bM¹Trý³“u^¼•�"ë/¥0¸‹'wüe”ÅE<øÜ{I\"£Ò¬YøÌ.çz…*×­YPÆÕð(ŒØ`L`,ÆU7æÔƒ©FUF}[ŠÑTjŠ)‡¿Å2¯ žÏŠ_í®³\�-³Y½MçÎlóX*?‰&ƒ� ‰jº‚VÀ{eƒ"Yæ’`õÈLŠÚ9XOxšA áSj»Ûc�³ì²±Ð‘>Dφy`ãcاŠ;&³ÏÍ«Ù8êø™¡v{²¥,Þ*Ňï(œèB­c´ëG—èv�Ë®ÿöK²çŽ =jØ's6–ÞD¹e3i® c0ÀÃÓ¾�çô m³ÞÒõÂgN-³@Ž”c³o:fÁ´;àQ)ÿ!>¡„‰rù4Œ`r6SÑ“l¾fGËM�Þ:BÍI€û:ÔÔìÛQ¿g—ät ©}ÊÜAz·nŽ@Ju^,WVŽF¢ ¯ƒ«OËØƒf¯U¾·�Æäà,�ßAM‹0MУ�²}‹=à£-XBÛYi‘í%kgñˆ¦Þá)¶½È8gOÜv)Ôógh–²lMÑæã‘©xµô•È×ÔHBØ:‰¸üÑs²ÇÆ”v¼¡ûÅ|ýØf˜©ÅîŠÉ/µ0â\Çþ1ÁN*;@öomíúªw[¥æ5üSXÎ*‘<˜=æŠo4ðD: ÂiCš_g1ÅkiPËI̽4cðæÇgHwj£ªqèÅÏ+í ¢'GÄk1UêŒV-"NXËÄäìx�ÃÐ,67Æ©{ì‹çÁãÒlhE‘ ¾ iÆ!^ÎÉL:m¾­Ä$s+Q>c=¾�¦3‘]yDzS àÿÒϺ"¼DïÑÀp¿)•gÙdE/L–žÕO˜éy1ÎC(Ï�f•G&Û¿Û{Ö�׺ùàâ«ÿzÔ‡‹$€âO^»³Í­õ‘Ìy[$Ü7[�'!b:a!¾‚p!gÖ>õ¢ü7:1»ny‘õ;žpI¤>œ…„$QbàŒM{´ÑAšV­ÃQDý„ªÞð¤ó¸¿LôÈèùþψ ð¢dA žïøØqÔÂÙ8ÙiÇ[ël—¦*€Ëɱ�ËYü°7áo”RA[vrÓõý:‘TNÊÖ?¥7nü�vá!ÖšÒ×êä䘎ñ‘!‰©*$Ê¢Õd.× ™W’EAÌW[u-–â<´Ñ?¬$fbX”EhÈ¿OÞp¨CØŽåhÈ÷üEy;ÄË6_]§Îœ+÷Q%±w³@BE«UgêrÕ¯¾€Æ å¢ïžáSá¶æ¼·žØò`f†Á‡eä;â…’9­tÒ¢@œ|‘Q{�µë†>^OãL�‡ÒJ�¡»€à`Ù¤úW;”³Õû\aÍ×W×¥Z\el‘?ÏUÛðë°AùTá(ú=ô‹1-øðÔ| "3oŽÄyär}lý”ôvÚþ:=1jùq ‘CÊ[v‚ó Ê["ÎWÚ7Üó™V„(Ø Ãx* )00}»Qi7™/i!•‘®’¨cQm+ÕÁÔ�G”´IT³Y9oS°™Z„û¢cÓ[’v»Þà^²ëÑžžè ¸I*”ù�¨ÃP,Zd$Kš‰<2¿³ù_úñ&àñ™^`]R}ûq†' *!ŽºØüœµvhoöd¥¤ é,š§~ÑAû‡©B?vǬD½uô%oÿTúûšcšÄ¹<ó†¤$,Xú_ºä û·zõ¼çÅÑî'Õv ³©á‰}Ýècƒlø*i +°;cÍ< {^çê=/H!õ«K]Óà[àØÊkÆYhõ=¶·ô1ë$ÝX×RšÜ‰=?¾>Ñ“Π¦‰ÎÊ3ý< ž”Óg¡±”/ÄFâ™eœzMõ�ضà’ósò`à9œ'ƒrÌÙõ­Sÿùü³á!*€:ä�?Ÿ;²p% )mX"oO‰é�‡0ÍXÌÀž‹üÈ4°È×÷�ì ÌŸÞø7IRÖ¿gé2‚`³¡`—÷Ü8Žò^˜B/€�C¤+!ðNqØð|²7ûœÈeŒ½`Úâ�‡ûs”6ÿ"¿ÖX´ÜÕ„¹â-DŸEó©ÔhB�u´YQèÒéA¥�Ä^¾èl6GñªšA�JVÕZ·‡7F “Û]yU�ÜÓy_9å³FÒâA„òQHÏ4ç¼¢Âïâ ï¬{9U \©…<ˆGcŒN0`t;ˆú÷M kÅÿ£¤}¤!É.œÑ¿X“ ÁMW³f޲È3Ö J””ÈÔËZ¨rëªÏóï,°Ë|¹yÁ“¼çŠŸ ^|…Í£¥\Ÿ]©`î¶§ù•éÌ$d!Ø ¹‘®#@š,$º1pq¡ÞCGÐÛ£ ;Mõe’ é¿€õOÊ1®Ö'"'Íáˆ/Òþ¦¿3³Ëñnêl¹ˆIv{»”q¨`W3önúœöÅ8™·’ÇÐeGDˆ¾ÚfÊvj¢Q�l_j±\Cxn²íØ#û Ô¡ø[­üûÓ^²OTöDáùAH«¿êòì5óÐ8Ô-eûÜîUŒ‡Uõ5�Y ^Qäµ$¤ÿƒõÂáÊ#o>4Î}\©ŠqdÙÉ‘®©¡eÍ"£[m‰�H?Òö�š5”Ë"aÉÛýe_C«ÒµÁŸÙ„‡özÔà:±°iŽ.R2�FXt›sز�¢/X¡„ÙÝJ1¢õÁO^)9B_ÃíÉ��•ó)‚ìÁ϶P]Ãô×î±ü«{•R$úp™_�|›`IŠÃÏ6þ²z¥<� ¸!xÒcb2Œ-·IºR›2�í�†UlïU�·¿åu„î¼ &cp“.‡èÚ‚¼â÷ú ²T<�V;o „`´H÷ŽJ¥Ä7Ð@;Nì�](ä±³j×m1z¬€9çHÙB}Iœ‰ L »¡^‡ÞdgË�Æ*>#Læ(3“yš† LC±¦¯Þ·Q0aj ÍišÎVpu°í-lòä•zi"»`#4]m¼ä! =FY›Sö,”RòšXÖ tÝ %Ög„í‘MÐ 6OCÎW¿.BêðÜcqÔLÚ2RçÍcÆ‘¦ ÉR\Ð ÷Nj²ð©ÁÒHa+o² ìºâ‰¿ÂqO×ɲ&“â-‘Ëwó •ïådG¸-PÈJôÕ¤qü ,²Ìâð8W9ÑjäBý.Ø¥%Åþï•éìï­KJ¬#‡®èKñºxúW«žá\@3'ƒZCÄàâ·Ñ“õ%‹ã'qAM;¡¶|âÇ!“!1~¬¬¨}è svaHjwÀfξH6o’tiÙ 0‚"Ø;…¶ÄùÈ<+vBáj[¼âÝ× ‡X7†¬ìÊý ²cÙt¯ŸÙ•Ù@m=‚<‡­V� MœñÓ!#6?KnT¸X|‹{Ò–õŒþ~>é^{Žà9Ô&ö.Í…Ö†?›Ï l‘ÁÜ=ò@ÓEȘêÔ5gw_xp<+¹÷ÓKwNÆFŒ–€õ@ŠêÚlX¦6Ýqˆ¼÷îÕbÆ–Á `<Á±ÐϽà_j³5Tk*i$w{u ÿ¯7U;€Æ×§]…‹ÚíÔ¼c¨ Ьv1³g Oö‚ j‘—2ÚÞÚ+ÚÉ·Ý«ÄhÓÝ`Ú+ ˆçº¬/ÆC¹£ážéZŠLD| „*ßím à‚¼Äp^1ì×6´Õã0"’°(™ç ’r÷Ës®É˜} U³Ö¼Ê“` £ê•Æã,¹ïǤ�cÅVrÇùx j¢Ç¬Sþµp·åFÿùÆ~ò Ëz˜.â5ï„ã9fJk†ÌFÍà³\‚`Ý8G;‹îdÂQÙBk1üQÆïÔe ìœÝ§ h²nQoK›L�'!½§vÍÜ6\�Ûò«�`ÛÜEI{Ý'â±—ôo_Õ0xrÐ#µ¸àóÞCøs4°D¨Ð™dÄㇼpi1½Ø”ÿUÔræGØ¿Ì)aB¦ ŒØR‹ûY×6ð0(@uÉ0^È�që!»Z�ÇJµ¹âi‚qŽ.NÍ »”M�mœL4j$'mÛ–×�¡óŽŒÑ7Ýúý°ï�gˆË2�¶m¡ÈÕrƒ‰àUNÐì[µç8ò’M¶ø»w.} \\æ�‡t³TõÃ�gÖ(½šÈi˜~ªÓåúÑ;¹?&è Ì'¹<‹ýÝ8cåsLŸ,7¥«‘FŽ÷?x{&°Õ÷¡k†194íi'o\%{Ùó7‹„¨4ZqláïÖ¦DÐaíŠ;Ä¢?ò¯öÔBVùãÅ�¡VÅ"Ív½ž2šÄ)Ü u˜$GÚ n{aM¸½œÕÓ¸¿»^• ¦Œ{ßFÉ‹7/ƒÐZ±Ï΄³k°ž¨ÃI#a°ƒ+�ìD`TÜm·ü5 æ¥°ÚüÉ7ÅUÑ%ºpôõßñ(QT{v¾“¾…½¥ë”�#h ‚JL Ò*ÿÏõSžvÞœ. —‹öC¦ìeð‡ÆkP³$_´l¸ß¯ä¦ùßûLt J¦ÆnÊ6–ÆÎÿe¸>#Yuüß9¤3ÏX+BPH·ý5…<™¶¹„Ujj¬yZ›.ÆTû}FÊX8$É[È€Fá¼#jÿ§Ï³•ú�¤ó1ÏâåG]/£÷ó]þ˰vôì›ã³>hé¢Î +€,ÇV†ù@do'šüÅÀqzY3u„ÿ­5ò~mÙÔÎŒýa\θ�STÅ)bþOÿëm›My tàŸû‹Òß‚“Øÿæ»þ—é7›; xÆ]ÓSóÓúº‚ÝQÌ¿•l5¿[ÕVj�ÜvÉr7˨„Fâ2³ÊDX…3oé,êÜ2Èš•Ì”ÿ}�ÿã#�;¯†gi:1 )÷ˆÉýù²†–vÿ÷¼þOð¿»>TKð#G;¥óºydYBã®Í-ο.SœÄüßêÉ üÍÿ¶6·ÿ2›ÊŠ%û$‰y² %ù­ô¾êLcDu¾¸^z'ü3<ö¦uâêp2·1†ŽïÅä,�ºZÔ½|»ÐM.èkÿÓ‘ºñš?¡Üx'ÓÇ|¸•qüß|÷ÿ2`~µn!•'E&ãlôïDú¯KáÝ$ަ|W ŸÚdM� 2&±ÈÜÏ‹†WÿêÊ’9ÃÞ¿J2“!ˆñG&ÿ§/ "°Ë�P6¥;¸eü¿ùÿeZ×N¼¬Î³÷P´+²¹ôϺÈz ¦™è•Qy?»‘ÍRÓ™GÅÔÎf– 'v˜àËüBxÉ•ô{Ÿq„ÿ_?äÿø OFV´ fHU™¸à/J`ÿ_¾˜¥�©ˆ©³ñÿÜOaíд‘&oAdž¦å²b>ÚŽìv`ORk¼/¢1áÕTÌiÀÿÛq1uv¡31t1üïùÎ@ˆ(GÙrdIúéл÷Ýìëò›�ç/gˆÓ=’¬Ü®’^ B¾ÎÉb_r`Ã@  àXd¶*­èÒoªA {µr¨nì2Þèk­sùû¹çÿéëfKF¢ßÞ€lüTÔ;Ìÿo¾×Þcó c}4U­š¯ÑÕžN¯s¥‹;¥„ByRºb’·O•”9ö@Ž–úƒK@Š£JA­e©þÿé×v¬ñ®9ƒŸ¦ò*KÛ‘¼þo¾÷™¸‰}ý; ;ø²Z€ì °ù°0¥“6ðŽaPQ¶3B�£jÈÃpc\Xã*ßk™Ì3¦�{dùZlÙ#�ÆÿßùÎüüÞØuCèP‡)óHšo�ÿ/_RLYàÿÏ™V_Ñ£û›~;¤qÑRI\›ˆÅ&J$JÝ4³W1� ­q‡ÎÉÆX `0O7Q÷˜ú#íð]'G:'q)™ $‡Õº0eº¬ Ï*! èHãKÇo¿Òé?@&lùÝà&{âbçJáËŽÜx�1•™‹Þ}®Ö›ÙÍZ}&%Rºã4èYü›eähÚDš¸«7;4¥ØJ¸"Eÿ9%y†)\‡-—¦ˆ£žnHIªÉrCÚ¿qôUn“ø¦ÊàqœÜc3 *×ü‚;¤Æ=ÐU¸O–ÄÇ€¼Zñ�iŽ}�ï«ù¼V?kZB9´+r¥þBâÌ‹Büʪò Šjµ±>. �•ªJè†[™}êMÓ±†pb•íø’kê_ûâµK<°¶£6FCû½ÝRÿœ�̼f»¹^ìÉ¿<Œ<¢qÈÌ3ÂS8÷-²ðyMã›ë˜P/…¯ú¶4*NIóT´ w­¥¿£þ§m6qžžKUdºÂŸÆâ¸ïîÉ#‡•tzÈ«7�1$•`_­ß»ñ=ê—*ÄmR0DÅ?w¨eþˆýj}pý{þº?}f÷µÊók2²hmŸ*§&†zøºY+.ã\&=:Ùøù?Á•óÛÜ2{O˜–/ÄýÏÁEþ ºmÕ»ÇVst\I~ÜM¸I÷:ú>ݸÊuBƽ¶Úì�d Æ$ËìíPÒŸz5ÞÂ@úU{Ò–¿qµM‹™*N³¹yêç‰Ö<†¿!ë`d¹v0Ð=óÓirÑ WŽØe‰æìûïa®�l„úš›±Ô+üæè^$âm-ø…¿žEÅHr¡ºu'O86qÕËT÷Gù¸-”2#¬|UÚ )MIH¸¿_A}6¶Ç{ðn¼È±öd¸ÀxkÖþý7n`£ �Hh°9U"—r3¿gy”^¥�jïÚ+•ÌÏ}SzÙ„hVPît¤�ò¢7#uµ<ç™Èös¶ê¦Š[ÙUá3íÅÆwºÆ�³O5!2vo¶HÛv.Ð ¼m˓ʢ¼7ÉÛ÷ Vp§5/ªWìܘþ�AÀ ”‡ä¬½"<}‹„ï´oÁÚ’�à—¬Ð¹ÁVœÐæª�/ñ.åâkh}s?Ðf"QÍ�ù‹Ò@Ã�À!ßPòO¸ 4¨ÆG©´aJ¤¨{ºuóVäÊ™`Ù “ô£àæ�×#é¿Sz瓇AÅJÞ¡ ꩛⢕ÁZêè.u½š=Žq¼ç'{Æ´G–¤^-¦Iôu°Þ½Xš¦Žeæ×÷ýLò˳¬¬JAoòÃV‘8›î—ú7Œb’¢ÞËÝ3§­íxmHx m pÇ¢½Íz.„ÒbRì;%mB´SôP!¬asÌÏÜ FRíl0x^?£ËNZ~ÇÆÃÿ®WÌœ]gfíïæó¬Á}Ðe,`]`ÛÁx%+°œNáæ½­“ç§™ŒPåî9•p©?¸Û#ŠÆ2ŒiÇ$ùQÚ’Ù�šs¾æLj1-ĺgÓûû~;ɧ«�ðn ÄYK²k®›”à4“6dKv•yL¼b…ôçÐÕ+ õjjš9-ÄÒÐYšŒI]¡ÑͲÞn÷¹Õ¿ÄEÃzå¼Ö/æn¸·×ôm‰ãÎõvÈïÀ+h<üA¢rýUà–wY^z)ôú.ƒ�ìB`²Ð„±ºÐ�Ù£Câ¦HÀ›Ò8³ ‰!ÒÇß÷x”%[èTBT#IÄq0I#Ç—àß™–v, ý«x½e›W•¤`ÊúŒÈ;nJÉ^4r1-2 ŒÁ«úéÍagõÆ7-c4Þ_÷æ5äðÉ­Ø9_Veòª€p›Š«lS9£Ÿ_ﶬіŠ69 UõC S¬x~Ù8îñ•ò÷ç…6¸ ÂÂM ÛâŠ,k+ï W–o�MBþeÅ‹À‰_ZZÃQàçMˆ–¡]\P@:3ìâïù 1ëÇæe�tcR�·þ~†�é5ßJª÷JÈóêÌí´Ôóᶚʼi&x2‹f´¦–œ|ve›)`mý™(Í A¤’èm5¢$ªY_Ø&¹  Èi(úçí¤ñ«„"«æ=¹@Ç(ú <Ç ”r!ñ?yߦ®ä¤Rî§4Ì“3N"]n÷¹9³ xã¾Æ·Hª¾–,³H…­„8P™qöÜM+ݬi²zŒq›/]õçû³“ðнCðé.|}¢�°dã¨÷¶Ä^vk‡]Å^,öÑ'™zôðÀd9“>�~¤Ëm9#|oD0v˜'¾•^Î%áAÑ~B» ýr¿Ú;û†Ùêƒò"é7!£!êúôÐÞоd‚TŒ†ƒ™“y lcã�dâú–ýá$ZV©ñÞÁ™ÕšÁªš[†™¸¨J(¸œ]8ƶ¤²ÛÛJÒ”0Ç?·SÑx©œÞ¢Õ½^aæÙ*³(ƒÖ”³d:Q„(‘òÝ áñÎBä®YÊwcÕ!;Ót|‡íCÞü…?¥Qû\*¤ÞôÜ��D'ö[d¹†˜£…=çIE�×¹ÑÇQ©T8Ä¡~¿®Là}vPÐ|¾7°É¬€ï]Ѷ�`óqÞm 4×.Á-%÷Ÿš©pV÷_ž±L[Êüî:8U¨¾Ë©³°� Ÿ3}¸:Ä%àŸ0ðÊ�æ-£~xþâêÍ”DÏØÜõ¤©ž …�¸.¼ººGz+«ee„=JVÃí ýE¢É„Чž°+.:—1$k#¯+Ž�Ž@{aìòGç@2`¸8þK]_Ù,iîrØwEÁ´×í7ºùÌ‘rŽè`/ÈŽ‚»` z=ƒØ´û±g'dÚ?ú+d¨É’tjM[Šâ’SØÏÒ8žg½¼�À¸Ò‚õž�Gë®3ú4ÄËX®9èâL-Yþ}-gx% Ç#jÖ­ô=OiÝó—�ÄÇgÿìt Ÿ2äŠÞá¹%¶$‹ä“ûr~´ÓbvZ G�­²ë'kÙ;óa#µKúchzjËQÕî*¤Ëoš²•΀¢»UuDiðK ¤tå×nbÙ'¥r3¹U2gW4—½Ó¦jn9«!FJ—Ž;@ÇÁ/aÎéâ+ïI“vOÚ¼';ÖÝö)‹$5h±ÅLÄ*ƒŒÔf6"*‹_ ‡½;^å%м²ˆû%Ú MϾmMÂM·;#f� r��ÿ:ꎽ{ôQý�FGÚø,HzˆÊ…ü$mÝü—©þ–{bmÂd«¨ß«Ì2R‡ïí%˺•Ò)8°á|“]¢ˆÌ6™zÇPsÄx v5ÖKÍo+õ 9¬PXAttm ¡(ÞÌP ´Š hÙÝï㈪s²z¤ ¢ïN��ð÷x`3ŠrZufío¦ƒÃ¬"£S…JÚâD.° “¦|GÄ~Ò„ÒÃÇ�m�~³Úû;uâäÂûmjÎ~ � z–Z‰·ûjùª©�¡�Ò-'�Ì“•vËs·>ØTwèÄ6ÿÇ( °4>B�Ñ5öΡ=±¬ÛÍÀæÔ‚`íO{&i¸ý‰g<Žz]É�•x#J'Ü�á½»“»­ò²·ÿú€1—ptÞô!9ØŒ!—~!¾ò|�Y$lK"ÿÚg¸©u]û«óš9AröpfÒu€GÒ-Z³z©‡r]·«Ÿ5Qõý*’³ïscS$rÖݸŠ2fÒ#uÊÂâÙ 7¦—‡Ì¡ Þ²UË&&ÝøÂJxŒœ† …%kô&ç½kôó˜ÿV¥=Ðëº!n+Lœèxê§‹í¼>3î¤Ô£Îvϵ/ûäXd´ï�Vb†_é$éŽ ïPGøéElSu<¤J–©H·ïNìþv^ôuDRíœ[MÌÚ½ýŠûƒ‘ž“bŠ+ÍËGù`ð"av�p9ÝéÛ¡@6]#ŽG×g)Mý¯¥ZÀç›EíýªÀDNæ_®ÀvgçJAŠè)Ä^þ5Û²çα‹[1†]ÜÞC+‡&£«®"ÊáÀ^ujë鉗–…&Š˜ô`Pr ùýòŸ¬•ÔÔ"¡÷3rhqÍtµJ­º@ô&F)<;_+#Kßà ²Ô笆ût:Å+Q¾~•§²ó·„¥æ9§ÌøÕPõW ï‘²''ôÌ÷séKÅ*Ü…Ÿ?ݨþ7×Ý0€õ>áØ›͈òZμ;PVã­xÁ®§ d½`”&ÞjZ)Q�•‚¯u‡¼‡€×®˜Ø�^æÚIåvÏï£À @H8d‚FÔMÊ6ô€³Æ¨VdwÿMá§fìNÝÍÊžÁ3ùÔukSu8ÝÏʽI¦C‰BT3 s'f,÷‰—‹‰ÿ�Œ$ЊÚñØÕ,v~ŠP1ÆÊ;¤ïEÖ£BÆð!UÀò6ë{-»)ƒn7–Ë�¨YqCÛñºè¬ñT¹€‹@(z9!B`¾´®:­½ÒþôÝáåÓ%d èWR’´¢)Qù4h¤9õ3 9w�qü´‰�W—z¯ò=}Þ6>gªäª^ß!K±Êç wꮂ6…€É’ûy®Vr˱’LÚ¡áŰá`›* �ïãW¹!=¿&&-†Xñƒ¯¶Q[¬™P ‘aÿ»3¼÷µ£ ­ÒG� ‹¬ J¤�OùÑUy;FH0Ñs`y_ZlÓQlH<”l�lfšÌÇ"øÀ=¬_LKOwÉQñÉþÎóÎËë2•ÈyaιOþ§ûµÁ0P<…_at(YJ]\j¹d%v:dž߷Â%Œƒ ñjƺ$@C‹ ‰òæàéB´zÕÇ¢í$ÚÚ´€ŽÄg¶,·.]ç"c -y9ãO’xÓÔ‡È9È–‚�‘£7l—Zv?¤2Ï(—ù#A¸–NÀ#j ÞQ¨® [fguK *ô’w\3!ªõGâ¿TÜðùX¦ÓT|ÿ*-àü„…wÝJ:™Û5ÑÏŠSêàGÀ’\‘߾ʅ®Ù(�(.c ‰Ï�ô†øNuÑ£GÈÎJ[4§†’K«ØZ�cé''à^Êý˜ÒÊó§½×þ²<µŽSÈ’†ÕóÕk@~P¼víX 8#à =¤Mß6<)7Ä×ň³aDàÏv¤æ€± î…šœ/ÁOJ‡†<ÁÇ+]KÁ`H8m9L÷44YŽ6¨ÙÝIûàÝJöœ‚GÃ#õ§%’1çµ÷dj|Á„!n¸Rƒùèæcg·aEWƒìíÕØq¨@öé÷£B`zod–G˜qÚŠÄØ© Ipa¶àE±¹ÃUZ¹#œÁöp§ƒ2BÞ¯Ùþì¤dª ‰�º¹ª”¾…X3.È‘4ûœ !'qKt§°7ÏÜ>¶Qqd&(×GoNeLûvØê½Oae“†_¯­ª ün.¾}ÁЦûR�]ŒªJì„WÛM¡(—R™Óx:`à@=ûæVJO¥ äà¡¢8`|ùv™å]D¼' Fa©…› ¸Ï|ÉK6 P¸nÀ+J¿Ã¢¹ ÏN¡„ø_´Ù$ÞB:ù"® «×à¨*9PŵĈÏ=éôÖ`#B³úóSØc/}…RŸ #¹Ž.Çk¥Pr沋”Ñs) ÉX9Sî&>lûLHQ›„÷¤a×Q9zyj¢·ú½/557÷¡ûƒ \µ)fbçb[ïet:¤[ý=Z}BN#¡áX’×…1˜Û/‘«Û“¡ ¿Šª —sW°Û3'vÊÏ&ç̉ ØOmañ“'m_DO}ö&dt³Ò¾t×3cʾàL$Z—%÷ëæ½ïŒ3ãѪï�“õ.—_{Œ¾jcϹ5z‹nPÁ<»¿kÔ­Ûˆ>àmX^CÏ[ùñAÒ¶'˜KøW(V�c«™yý_|-c‘ù;âŬr•ÝáFкL‰ž�|Ø-rºª+øâ-C{71#VI�ÒŸñÉb¿PÛU,ÓÓAv5)4=ÀhE~“LÏ¡Æò•á—u¸y†Oy¶'ÿýŒMEV8AAüÊ’JBu†!ä*ø¶1Øc.`ÆÛ˜Ã'T}¸QøÈ<û¼·¹Ë—žžtß¶ð—u&5›r¸íúH+s]Ž-Xv!HÕZ@ÃĨë!|ž©z>t¦ÓWÔßòðD5îéŒKµñX�È·à ÐA{ÿÀþ«Á'mÿÖÓ¿�|h¼ÑHd·•8QsCy åž�¾¥ ë¼'‡ àȸX‚!�MÁ¥õ!~9µš1½>‹b‚èè¹éñ/þM ‘—›_¶!ó4V›˜\g¸h~„Ú¬›~6‚‰0ÆÊ͇æ%4Ê�²!Èê. ¢ÿº¹êTlmÁ%håú¨§|ôJj’9„ËÞH~#O’¡ŠS ºðÎÆhk‰rV{¥ ŒÓ€;Ô|Q©fööpùÜE*ø¸ªO11dýÀ‹ZÝÁ¦P“;äµÎ�÷ «(ª=âß¼ nKˆ85ÆÌ©·ñÄÕ$Q‰Š%ŠŸeq•êÈcâ‡#sÃ7Í“ªæm1õ¥SçÑn½3|ØB êlÖ:lÓ¥¤ñõêpØ‚Î9ÏtÊ� êct¤²YÕIpŽˆ`"Ï-jíZÊœxÑqE}/?{`×`ß=8ØÒ†{(Ÿý¸Å›ÎT[ÖúaJÁ&/éß“ ¤ÉØ�Ä4“'y°uÛ§–Wåªu¦sðÄ“…(@ØïA»ŒkËb REËGªMÝ-ƧÎl�ç!ˆ_³ùüT5UsŽ2d›+Ùê¤�þèf⸄bªÄZ¨0ÿ5Á—Gaõü¦±ŸÃŸe⪠¨?˜!BM&˜Ñ€OíÅ68‡ã¹L…ˆZ‰ð颀ÖSµì§`J©¯­ÿÊq�¢”‚þ´’´b5f¨qn…9ôü®9gÉbJ ÉyøyÔ=—š¶ŽÔ!6Ÿb+2sžK~ƒ¶<÷R#È{€%á²#›¸)0S¥˜$JƒÊ;BŸÖž‹pªÚ£Ë˜ˆr?‚l&[äƒEÐà6¨¢ÞäÎÿñpgxeòË=™¯Õ1\-£HRèã¶–¼�¡/q/¤À\<ÒF�êAã‘3z„þ¯ìT¸é#·iÊ|[رM˜+q «îTŠæòe}Œ!‘>†ak{Ž1’ößÉ^š6<±æu%Îd%Å,ä/¢šÇK?¥¹‹ÌþE/5ŒŸoù‚ï~Nõ‘RñëYwªo&ôèm�¿5q†ÆV_»ÈÊ9²Á\L-tÀE \¼†j�H%šÍíc:°áP{’s‰ŽÞý<ex̤ܴ}5Á7D»jòf¤Ã§é²ö}…ÑHémÈ¢96FB\Ïú Õ™n!hêã©EÇ`‰Qn´'€iË™8Ñ”öó /�alN„f½âŒ.�NÅ’7ü<ûªíT6žFHè'°0=’l ”M %|öÅ>cŒò¹ï§;,Ðï2C[JÃ+ ú©/øòºl‘rØeÅ:è烌n-©�ÚÄÛ¿À f� MŸÐµ)md›œ�ÿ+5É1Ïéké?ˆXÖX6î0=϶Bf¤*7 XºjRf>rroâV}ñ7âøh;2‹©j?Ju!Á–�aüäÙ‚eŸÕæÑã2jú85ЮöÀ?ŸÞ~ˆdpi#�Ó¢pÀoèYr,ßxyÇÍæLgˆªœ" Eo¥ŸåzèVé’_›Ì¬#¼Ë jƒPW?#ôÔ�nL­z‡„Èz Ö÷€²`2ý"6ü„>/,€ˆŸØwŽGcû_î´ V{O†K¥žÝÅâ ;™˜/ô…Z¤Ú©tóI•Xõm9yoFñj2Š}÷VbÉÛº¶©í&í^õP‘Å�|IlWWH«,Ußvg^ ¶ûX^Ñü¨ÖEÊ8¢Sã¸|?“2Z¨ycÔžšt–Ü“Ÿ/¤¥âpjþæ#¬'WœÖÞ 4θ4•_v¶ƒ€2G©Ý$ĸþ]M)œ$Ö¬kÔàråïÙ·ý¥ð_‰åO« �ÁBUp(¥êZ'}Ëí(ãÚ6ÏTÞþ«Æ"C¦9‚ÄNš´•þ¤”/y‡è·èd“9ÿCçÜÇå)»åŒ?J8i�àwJrþÂθÃKyYãB¿Üꦾøxþè�³2Ó‚€ÏÐÒ«ß•x ì]‰%ÂB™mφ|ü&RXØ‘Zßt_©öK§A·GÇj;qEÊHÌÔ΀Íe :ª%°•Öì‹Q^.¥ #ÇÉáÀG#÷æ/rµÊô{…ŠiвÜDNª]eðƒmܨç]0<ÌKJu‰0¸DwÀëAbÔ°¼‡�¥ÎqÄwÍzÝ9ñ{Œxÿ†€â¶wBzˆS�nk|íúº—vü‚0-ØO¬% ™ÝÃñ#»ø»WW³JOUgüU S�:ÈÁ"x¡'q%.ñ¤„½×>í›�Í�âä,û¹NÌbPŸŽ‚C,榃øPB\)3O/õ7âHf~-÷ê”ÈŠ5rô¯,ò‚Gè–%ÌUñVuÞ²ê'P† É~šbbGêL‡fЈâ{·k•všï«™Ö›$$ V|ærí0êÒ�Á�Ø?Ø–‡§‚ Vgí„3œ”vëÏäpU8]|?b; Í5e†?>ù55~(ð ©Æ[¼—v?%uTÝ;è r¾Å-`à dµÚ¥ÖC›8ÅÑï<¦†Pg"Ú†~£q jWŠñ—U~l«½C�ÌÅÉ” .µÅ9ΰŽn, ¨iZÇcz*Ž ±¶ä§l%¾åYZíÌ…Ð+•­möXû‡>b+GCzä-Vž9¦>.’x´ĪÄÛò�¶Ã]Væ’6ä…4Wb3ß ýŠ}Ó\ýêz®µäd¸[£cÛ‡ýXgÕ~xðW3Ú%BBk]_OÕtH¯ 7`¥˜l¡§†ðÃ-¤¨ìO&Í}[VµÀp�oeyéyºÎÌSàO®>®§>Æ·…ºÍJ@ „Dhl ÜA C§™æíXBè%UƒÕÔ„}\«û¾uS Åii%1eºšçìö…L’–Š;”ü6¬›/aò ÿ+JÞC%@Óøþ*.,‹9[@M8Œ£“’åPbåéÄZ-«Ag±wr€ö%Õýº!`7¶ä'»ùBë´›ï!ÊqižÕ;~ˆæENiu#àr¸O¾ÑõXþû;V‹™§m¥%ÊÁî¤ào©ÓB™ �A¨|3˯4á ¸�PB™Ååè8|{ÿª[,身7ÎÓøú”{Õf»I3p¶9°äþ=}|d–„7O^$·¥=:;t{¤ŒÐæBÜÕhÃõb#³¢6Å4j 'Õ¢�MïSÙT�ó�£ZŒ£}ª%¹núq”h3qõ¸aGíYHz Ʊ§wï°mQKšj}U‡Ç�ŒÒ>4ÞÎÙŠUö/Âì)Œµ)S”é»tíù¯¥´ú•-¥w*Y$²¼È)ËlFmmâJp¾æaküã¤ÞsÆ%ËMs#(«E_tÉÒh|‘~§€F™^bƒM{ $ØX3ö!˜@):gÿ>–?IvQøvç="X†§Çþ¹‡%-U4b赞[²œ5øñzþ@µçµ�7ñN@¬yQ·¸CÑïÍB¸mÇ7ýŠíTÓÚÎÉ3pšI¾ýšžx:æÃE´ ï–3ÍÿÑi^_û€{p$'ì«ÎPX¯XƒIS([–ã‰<Äßã†ä”g92÷]ª>³sË@ëªøÄçämü0ñŸ·­¼™¢ÝUe1'¤Ñyƒ–‹«^õÕ¬#�9€÷ïA~ûÖœ¯t.5ž\Z˜³Ÿ;”)Q•øÙ’´Mý6vÎ ÚUB+ÇÁÌ}|�PÃ8MOaøüÅÀ:[n±¥÷¯r–äc€g±PîÅ3þ;KMS�?ã¨Ø‹™ïw< >—‡´±ÝHÖ„p?b­��žö.:bº¬äôÛÄŸwY¥„UÊ[Èdd>WP†ÁÞ½8Ý©F²GÈ4Mê Ý³¿¬Ë•Ÿv¸n_e¶bCÓgÜ„QOÆ©\î„Q—m"y�¿#NA’ÿ#L" ‹åhƒ±, m¼Jç®ÆÅÜ[#(Û–a+ë³ö2yçÇL¾-÷®Â:¸ßü�ïP«Q—ð¨+:[QJ¶¡`Ñ�á± ây�Sõ¬J�ÚÔ5aGæsïþã½k‡Ó$UbTÈ; U–˜º�}(¸EV—ð=iàÎxÏVR^¢Qfw£Jt«õê÷>°iD%Ç™ý-¹ ûù î€þò«¢]Ø;Åâ!(Ý |ž�ËôŸ\«W�­ÄÆšt17*{ÚŸì Šó¦œHmnrù`üüêPH«-ÔªLžpènKýZƒ£³Y¾ß-•™ÌæœÑ™+æl!¯×µüuކå¤i4Š�}R¿:ôÒ'\ùŒLþÊ�·ß¼Ìm "þ樯·Ó¢˜5Úf=ƒ´jð'—ÁoîqÕîåXOìˉ^"îsýdV­®`²‘ªWPÓZ´O¾¶#ŒœâÄ[l"Uↅ‹PíT �ÝA|�ò†ë ˜"?�;õüÆo |xæå^ÍØÇXì#>Ú#¾êйð!$µ™Ì"@}"ª]è NÈmÇ¥-h"’;$ú±#ª“¤»ª9LÄ�ê¥ßTé¼”!û>ùƆýìæþ–!ß “q=Çx@B¡XE8gé@¢ö#8-õ±›:‹[ãâ”G¦åºð¤X 46Mv£e±@#!€_ÈÊ„|i�c>ä¤Ñ’ÏïÚ ZÉ n©xR”É;KlMö:Mx?ŸÓ2U�½¡žq¬¤´—Þ<�)ô|Ûm.·êE¾øb ËÎDZguù�InÈÎw™bê]›Nî�þ^;ò�è–‹w:<úqB„éf·q ÏB=î�þHRšP'ÁZ4Œ›™¡ÞmW¡d«ð~¬»í}„3®éCòÅŸV„qÀ¼MlÈÞ;û¸•/ -bw]ÃÙiC Ëm�‡üˆö%e<0RN–Í ÙÔÓœöX ®YhO{ädb5Æïž6…}Õ†É�‰˜u߯[xçÇpRaç^?— 0ym§Œ™J¥w‹Ö:oüÍ#¤“m%¢HÕ“uÏOGزTÜÓÒþÖp?g BgíaOüEÖYÇ.5šÍ¨ó�›ÃŽB�J®ÄöS+xtK¥Ó_à+ìßÓ~ ¼&ŽŒŒ´ªØ‹Ãa+^ðiåØX¬i3ÚeZ[H²%¨ÿ‘þž ys>x !��¹£6I6ÃÒ¤Ë*v[qªÅ=ï—…¦Ó bºa5†å=câ5®YÑ'm WÏ€ž £´ue›ðgÍÐ>4<ÍŸ�‚£XKLs®åŠy±V Æ�*“`B{¾á|b¨ G:(b)F:îÝAE�œ‚Öþ^}ð�š{2JÂ/†8ÞŠjIFØ<±•¯ZÊŠÍR1mb4™«˜Šm§¢£Ì2IÛÛ<³Ù„õn%4o¨Bk°‘Þ¸4mó4¥†ŠÞ|ºJED¦*Πງ26h¥(œÅ¤À΂L¿µ–4cL©áwý¬zìܰÑíQ~\×Ä¥ 韽È�êøêþS€C³ç Ý­ÔÈð<È õ¡ò,Ì8·«wfC~¥¢{L‹ÏªÞy—)r¤¢KŽÕ�H©9½i›ÀÅ#d ¦øc/øÐ–0u5é` ªæRÄë£AKó2‰(Ô<©t!�(Ä5G´)è ¿3‡&–ë¶„Þn³ë€[Ó6ó€ È~ü­€(wü,g\µêá%nɬÖt|¾ÓK‰Ä~¹?i²X»�Àd°fï�š[–tê²¥�èæáÿÅOß_—žO�Oh5*ø1çä€ß©ú²¸¬¦Úøç|¯?í{K¤Œ<”"jNj!϶¤AŒí¬«Àúޝפ�#»}‹åøsmt&s¸…?•kFôzuÆ_Pš”·›çI)ë¬B[„dy*»^c>öã0GÛ—Ô�rf~ž ëÝ› còf /tCrÉq¢åLân»�jÌ£qJYap%óŠR î ¸ 0ýöZSi‘ÁѪÅ'Ý߈Æb–Žn6¡¶«øœà"Ööb“ßÐË%Í4?pWÄ80e¹â̬ÿzEv�SGo¤±¿0 Û’c+½o_¶H^EÆžî¹`ÂüñäO ,Vn3ÄZ}"J†$:âp5�•‹,&½±Ï‰Rª0 ¢~²í7>5–�ÛFºS{uA“÷—k;@sƒ°¶¹ó�ºˆWöÅö}¡VG€¼ÆKPÁ¤ §ms¹žÜ QÍ–¼w9øà§‹h!5É–*ðÖÖÒ1ªÂ*—­�4ÞÄòŠ…ßúoÏ@BYB÷É! s®ŠÄ$­·ß½yÃX´‚¨ <÷­š¶ŒŒ•ºî¼ÕM檱�Û›3Æ®½‘ ÿ€Áhòó}h,XhÍ?e�½â„– s±[8�}6o5`@þ¦!™øùžÇ&üLdÛj·N㜧®’J• ÇX� U3ñ¤zù�æ¯à G˜xC{å±ÚÛN‹ôÅS(ò‡PLðâæE¨5]ݵš}•ùã?/¥ÎàÔ²=áeÔ• ™'¿uæ6H$™ûrb*L Á:‚劢-ÁfÁ¼ÁÌÜ©3Eëªí�¸V�Ø»ÿ³ÜH™#¥¯ÜëGË,ÏQ½u?z—†xRo)F¹fÁë甬w8Ƭ1×qÃi•Õ>%dŽÈúûó|«Nq`§TûI=¹+ÅãÏ2–oÙúxwŒ§Š'÷è:< î²ö˜ÄîÉ(�H¾±™}ýjE²º¥Ek6úkàà„´ªþ¶~k?�ɼu�Y<¥Z.7ï9bïs‹�|°a-™Ãýö™“÷Ïв÷œ#ìföw*4ö·;6íö“)…Pßä}aÊx>F€Ì(ÇÇÿ2‡1n{Œã±ÅXç6ó1pÓHBfOñœV›qíUQî}QWNýùO¦pGé�‰ÌÙŒWE£Š|ø5šX\x›>0Q´õj=ˆþS:\µÑw–«Àï¼,ò°ýVÑOVZ¬–p“\ï]ÿË€”©ÉŒ>‡+åˆit ôjl:gHš¢Íq®÷äÓ¹¹:@¢9€ bj¯öw&T^ÉõêÑ�Fô˜ÂÀ+PíÛæ� ¾ŒöÃÈe~˜Õ{‰¼ÒºwÕ¿Êp» EqgFÐüFMiNe{ßeŠ5+‡Oý_níÕkàzRp³…Ê䯿Ÿðœîˆ\ív< ‰(­Ü?]JemŠHBRvjÎzù— ±Ø•òÛ¢cÉö)es1OåÖñ(hñj­ èµãQ0‚õ¿o,ð�3[šþpÑïGÿ�e^¬fœy‘¹K-Â`¨ÌU),ᣫe S¸U‘„ ²YrobíZ{ŸÂÆé¶Õv;ûÅ–ò¸&¹€^¨AX,»eL+�c ¸é÷ܼl�­ækÒˆ/�ÚD¹µø‘ cüã[Cá`32}P×f/Z“ZB ³ªtŒ¤p: Fò‡~+à^=Ô:Úû'ãä·cqâòküµq›þgǽʮSLÿ‡âµò¯ RM�G]Ö�l Ç®zuÒi ‘xÅéoº…üz”“°{°­ÅJK|CÅ`»u¥^‡kÌá‚ÉP`7°ý-+Q¥ËäsßU¯\kKÙ×eƒk> � ±ï¤cY÷Œô@•ÚòìD²ß F9ÑqµS@�B5Àƒý ï% Üb˧۟AlòÎÝ.Ù¼5éD‚ßt&²Õ$ê5 |I.iä°cWWÑ…¨jH<ÊdäÜÇ3;í áeÅ[áè¡Ý®ßÐAptU’?ðÂíûÈ.%CW 0}»?š±¼`õøpAmD£œÛ!0ó'Ê6’ýØ*Ô¥ç\7á Èʰ¬oA: G•ŒPQj$$ˆ¶ãƒm¨øFe4¢{j`k…U½%äµÀh³YïѬ‹Úâ׃Q{ºùwÅ*˜ öJ»{0'>ûs|¿Ï �oç_FÏI·KÈñÈ3òB[RÑE­Ãí� ’‹Ù”„�ž¸¸K<;þîM°o¼g2ØÆ4“3\”µ0~B5_ K�ë¬(ÝÖ›ãw[ƒË[yÍüÿÄp>Û=ª?q;(8£•éK0”´FÙªCˆ§�îÂ7^Ö„«4 _ȼÖ¾ÊÉŠd[Ö×þ=äuŽùÇUk|1!çÒì�„›iëøÖ¬iaжwrGZ}‚kÍ L¤ õ�ÈFì³¾E ୹ĕsÅ ñOºâiu¼‹¶uu²Á«EÓO§{ Rw@-óú’× ~5¯ífdäNž¡°y=£]ÜdöìI·g°¦*g¡4cÀAã©<½Ü[;Žd: ­Š+ˆmàðA¶x’…,"'0Vo<&v {]sèºoÀŠ(k�k"#G²g|ÖL°žMråHìVÿc ¢Nö ããÖ‰üM|G¦¶B ¯�=[xòÓBö†š�õ1ªUî.hæh‡¸Bf4+P £:š—ù]É�Ø'œ¾{çá„ý¶Ïù×çÎîöO}á©P*·ÏÕáfyS´hýé‡]¿hàÇ\g3nÒⵚ¡7è:I[2ŸäT^ù–¡¿®•ð+…*®µnAúÏ[ÊFeþß«oÌ«ã¢dz…šì)I¨:|C7¿Â »:„–¤æÃŒã,]jìh @®´ç¨Û§ÒðŒ±Š¤wT2öÃáApúI�‚sIä°s€«­J2ŸJÄŒ_Vž÷ôgÍ›C%­sa}«á<…}bÌ?Áéjh��t_ë‡÷Ô–¹=ú¸#€ ü&§ùû¸MyDºV"jª†J~^eî/ùšdLØÁŽÅ›wÙ”�þ·fzîmõÂ8Ke­ûé"^Љg+®KLŒ6×N.� 8ëJš>ß -0aCÀìƒ8uiÓqŒgm þÎB(š•1.ŸQçb¶¥‡]tZõ1‘cCˆ| ¯Î%„ìúD¢|RÕ’à ´ d{4M .g퇄 Üt1A0Ï0ßy¦ù¹<&d ²½,›áó©Ì Â7P‘G �,¼rüì(ªÏùziD¿¸Fâg²»[.,üT»EáÄÇ« ¢EI¶³j 9 ÙX%ÿ¼½Ù¡MH^˜=£½þ̇À6Ž*pòâ·�½˜?�»áñ›»]Ð Wè âvk� aíL·C»{ëÚ¾KÎò|A¥8“†Xê”k')%éAžל¾àˆEßĦf.ë ufz5žF]+”Î}ý’óJgpË8¢»“WօЇïY#`�^¾ÿŽs†S˜,Ívsb£fß!t3T)ÙÃ7õ Œ¸Ågü-•"¢›*-uÊm½�Fy`f-.ˆ£öÁÆ)¦n+ ±E|Æ  )¶zyo*¬Ê`R�+¶Ô�L@E�Wý_º†%™ÂÔ5‚SˆbzP Ã÷V„Fcè�e¤›opº´üÂÕ��hüØ'X >ݹë?2N¿¸hY�; Àà®ù…’WhÞŠþ®&}3•†”¼åå HZÉš˜èʲ“òy<¸½ÈDÿ÷4´˜¶%–;¥ñÿ.]†¡%©¨¯©3˜ÀøÈÉÛ.YÜ wÚ¼SË’·~¼Þ9õkiÊ7‡JAF 6 ÔçÍsvÍÅaÂúª'±Êñ‡Ägr©œϪNž¶©yõ\|ÂòÀÐõáIzHŽôÿ+gKHÎSï‰îû«™ íºÖ+ÉÀz ð{ƒ»Ê ¬<'¤ V±å\bÑÕzÂÔûb)ãåªxÿf|NOØ)�¢~ínÜ^vmõ.4Îïºã¢E>…ºN´*Ùç0Û0Ü[Qθž¢Eo´Uü‚¯¶_õ2ßÄ[ñÚkj(1нW<9oáÞoÚ2AþÖ)¹Ç­…ƒÅ88Ñ©Ù˵A#,RçZ™¾s”Hò­c!&ª×<×”jÜ€~Ϩ°S‘3ziq�õÖ>gD_¢~–ßß'.6ì>BÓ LêÙyË•³ÈeRç­Á¸Umò—Êß}À¡Ýßvå°”¼HwÏtáÉïõÕŠ�>„G.ÀþLu{—î—ey $5؈­¨bi@˜—çóCŸ:ýjå•Ï.Á]„ãpÜoÊEÛÍ[~‚$Ï­e´ ¿ÃT%aðïÓ"›Hºsúé Ä2‡§Rº^ø>s¡'æpYˬºïÛ/×Õ†�Úx4S wøàžèá¯W ÏQóù+fnë¾—X((€�Å÷re5dëo3¢]ÃÌ|îêâ£<�¶Ø��Ô*Û§þžËq{2ò©bglfS؃,žöí¯õ£/ø k±¼Ø¾ô"X*ÃÎÔE䢎·D)sL%UQžy lÓH;P9X$aJ£€Ý–Uèž %�éž}¤Åç<ÂÒi’cò˜lYãˆÆGlaj3­WûøÔ5"Ô”9Ž`›}Ðó¢|=%.g@‹˜ã^9çÁ•�È»ãv™¼…Âhã€;ű8TÙçnx >Æ|Šè`¹ì‰œÛãå¥ÎÇ9rÊÊ6Ë¡�j:õ׊2ïâÞ•x6壡Q lvŸì :M«Ú&+†'n¬óçÙ³7†«MgÐtžM· ÒÍÊËâ1ðôKÍU–YÍž÷· ½�Ô®w—¯Ì�F@[BÔ„‹I`o#e†ˆu¤DŒŠçëï€DÒwÕ¥·ª¼êx§jüZML`-‰¾6½�Ô…ˆû…“n–T±0c^å| éj©^8Y*Ëçí´)fÀ‚6‡ëƾ/ˆ‹ºRu¡@Ôd†7@y9Rž�b„ÙçG_Ó§tôF¼[¢µCmÿò”rµ™)êí ÜIÍÒ|ý ìÿ %Xf±O^ þÄ$éýÀ~su?ôB¹8u!œD+-!sWÍFˆv‹~ðÈÒ5‚×¼¾àÔýdÈ-M`„j”_A¸�cÆái{|UQ‚ãÞpwÎ/$·5 ¡s·žã1ö\ÇvˆÃ`›¦ ‹—E2¹bOãA�¿€x‚±OœÉK¦) nʳîl»µ¯¤ìJ˜vÉs‚ž&#ÙºTïÞ=;ûͪNÀ�Äd‚°œ£ óË#»cb—!ü×§Ð|^ÏÚAqÝVRa‘c«•ËuO»V3‚J�í”íVE5nL%ö™W©«(Ds•ÐhŠØºûrO9úù¨°íjß4=÷i©m݉àSjͳÿ40ú:™ZÍ’çþEW®°–SÈkF|Lò:IyÍüªÂˆèÓw'íÜþå—j±í3¹>•ˆy¦‘¯i‚eˆ-„ØË`l¤Ut/ÄÂa34§Ê2ez=±€úàŸÇ�Êeóòpõݼ8øMÒ“ü§¾€QÆÀ›±þ òî6)úx4Û¡ øıäÑ(ze"cu[!=[þ¢œ—U‰ÆdoÅ@FËÕN·²à�¢ÝÀ’‹@*I5¡t¬«vÖ•SN`í¹WK9ŒWmh²ÂÑ¿�\X �²Ù/HHËv*¼õÌc¤+ù,¡KXçŽàвL;4LääàÕ>¶vPÇ]x ² %Ñz9ϼž!ãòp~­Š#§iûFlƒiM•Û�/ç\º©ôŠIiÓÜÛLñ—ýS?x�mçæb¶Zªlå�¢XÇ…šÒnà¹N,âdójŽPßG‡ÉÃòôÜR ©Žà¶ý�ÿ¨è¦¦FŒ*Ó Š3åë䌀0.Å Âüð¯¹]–À¶²"¤ÇKŽ#rÚŠ `}_¾ýích�©03aä Ç¢HX�£ŽPô–š ­üÞU‚MèÀøRü.�å1áç@Dê§8don³iö.ÈcƘڂ r"‡ì;Lò"�´8©B7�‚Àã r}*U—”±ìkÓ½ÉZhÁ™ÍˆF$Á4µ†ÞÏŒ·~·õžÂ¢›äéÍB‚ˆæÀð")½ú~‰mGÒ¿Õµƒ·³GöJÕ˜)f ¸ˆù荓Ï{ÊË.Ô¬‘0§y³¯(E1‘¦ ¥>\Ë{àDZyŽš’�LjþM_(UE1Cy’°láÔ­3 Âf«¢âƒ*‚ P?Ndï[ãÍÒpÊQËð—i¯}k©Á>£+|¯ iK¾–@ì 3Âed§êeÆ¿!8vPQ­¢ò|e÷qÉÅâšôûíÆ Oñ:â‘JÞ¹ªÉDØ8â¸DG®„JúvðÙ�oüËëT¢'ËË­ô½ŽÕ‘õ:½…ðÒ¼J/|j¾Ýé] øm•ž wÖ¹"<¬ Ë‹HŒ’6MùÄbö…§%9ZÏ»›b·VDvs£ ­Vô!ÙEñÊhxéT‚že•�(c‡Õ÷ÏÝ¿¶•²1–æØ¦úZ-6—¾Ë®…üµuؘ]÷Á-´H#¤Gï‘ Y{ïå6Då·€ üô¬LÔxMZ'ÅqëH›M”N®×p4×’îÔüESmÃ~ë £½vJ‚¼z^ÕÚ2Õm2òaØ2~j|i eÛJ·fˆ1&Ü-©‡Ö ‡}GÅÐ:\ô«¡¦\«f‰:RV²ƒuˆw8¿tË_+.r Ëß‹ˆX:«–hG Õ™Ëżá¬áÉ×öÌ�BNï9U“¥zpŒ%˜›Ò7V“ +?­ÔfÐì±oW~"Paeþ‰ÚÏíꊶÁnôw':ˆÿªøýjcÜ)P€‡ü ©:Äc*½¾ƒÙû!WLÛÕc ¼EÀQ–ò㣠± 3|Võ²“;×a¦ÐÅ#ÎoêM…òµ8Ù>Û͘þ!+rèc~'½•J#þúEÒsºE ð³MtЦ•î6ܵÿó·G�¡ó§úqMNCƒó�ßdñ0MôœÇë©@'�Õs9Ëz/Þ¾Â!Qü¼º‰ª¼½ž” /˰ÿò=7~c•ÞÝ€ÿ2—4°)¸‰æ˜Ã,Ì·mõ?åIe|¶ôg(?LdÓKòeGv)WùuŒ‡_[L˜~{KÑ ÝÛaôW§Ó€Œ¹Ežoõø,¡#½Q†­«OÄbáŽ,Ë�á°ŒÕÙÿòã„ð èq´MÇ‹à?¶éŸççèò²œHáêèŽSJ€ÖŒÂîÀT›öUhëûÖ_¶æpN�¿Ek@ã—Œü�Ssx|ÖˆTáX®DiÛ0‰PbY^5™G~†ÀÉò£cw.Ë c9Rz¯¼‚juJtÚ_G%Wj°B[Û³½Õ…ϨLý{š'pžýôFjþ´ò9léé*ÐSðÍØ“]P¸†-+c×–Ûúc¿&df¶û´ÚÒËíÒxPX_ÂúàVxe( ÿ¯HbC Üã¨Êf!ý.À¼sV2V:óE@àØJ“QÏUɨo¸EÞ¶[ê[§W )CX°ÖQáû…¡!¸¡‹;e‘Zð~æÊur­Qâh[2gjÀ-}MÜ®ÃûíLö͉‘²MiÊ=ÊwDdiëäˆC@È�æ«Tom7ì䘆ÞñW6Â’€c~ëK^ä¾·ùô}¡"pÏØUò“ S êd±3Sÿëå·HG6ýµ8$q83t3\ö6ÌßèS,Ó_G‚ á;I¾Lfg ƒh-YчsæZ=ïgWF5b7âFêÙ` ea ÑdV° Á­_ã…Ѭ•kÎr ÷ù9¿ 3í\wÅ¢3“G~«nЇwü—]:üa*õ €Ib~“9¢ HX)K§&f„£CÕî½äÌ •ãNõ/¹}@_©O DÞ-˜]ÀvþÑ¥ÁsÒ¦¨�bBx}×÷f¬výŸjògê<*Kõ�ðÝšŒ|Ý�Ü=Qµ_µÿ› …þœb–KµåñËr£¹X�ÒR•þV×î8¯¤/ ¸SÄ—ô÷_÷)ª© ‡¶›æÈ›;gÄøjè†møØ‡Þy…,÷¿,²ª¹nJ^k„.k#e!mD9@C‚0᪤’âDh'ä1ÁØ—CuëÐŒ…µïÛ#R¥�×AL£j¢J„%³Þˆ~Nù³¸Š‡{íA‹ð:h¼1 &äGŒÇ'˜”Ï€ðÞ)VÈfëêß!vÉ·%·ôšÁ+bÁ„Î~üæ '�1qXk�e¢ANˆö’!ˆ<üQ7Gmü >³eá29Ì=À�†6tkçáñ»ð xØ´>.�Ó¥q*n—Æe™ŽÔ°âv7áöÔÍéÀàÞ�}ð–¯Wµ �Їuuxc…Ñ_M ^"Áº›F]90÷Ëç !À^ьߑêx§ ÉÕ+eó‡�ñjã.2Å×ÕIR¡¼ñ:èÁ¼°íR/Üë©ifÁ2D5 ”¾9Á MÛëR­±H È‚|s8“Ä2:»-ÃlÀ+Ïk>&mmÊRÌ‘7¬£×ÉYÛô؋†%lÂ?ëÞÀ$Y‡6Dê5Tó˜ ®o±üPðr -׿,vUé,EêbÙøi;O1v? è¬�ÙÚµK(oU6ȱd­v[·ÁéPjTkï’M¿d§ê(¾³çË ÝŠ6òÂÁ þVPåî…s År£W¾j$†Ú¾fQÔÃÖè‰!_Ñ,y¦ðN’iH9²¨½¼ÚýÂ+Æ„ŸŒ”H“û5�]âä¢bã.bL9'+>sksP1Ï=Ü‚=Bs‰;è¦í‡¢EËo)b#S"b&}{k¶r¨®À3lá\`q¦dZ5xŒËˆUX)Ô”VÆÝZŽþ«´ÜØÑ2çEê¿)Ä»Þ'Œ\â€ú v‹#U£ªVhPbÜZ@©Ü-�l†xa[Þæ ¯êP$iÚ}>,kÖ/PÔ'’7z¡ Cš%b±ÛЭµ(E}r4F�Öä×eó®¼`ŠtÙxÓPn€¸%b®:à¸Ùd†ž–©Ýë¨C�Ý„‚ÿÄî·É×¥ø:xHW‘:3íe[Õ@‘@ç8à´œª\Aãs&¦Ú˰îD&Î<⳨t‰E$¸3‘Ë6¼¢ª Ì?Jå%EuíMºŽäJþ”�æË›¶| ª8•cÆLcÄR1d—Gꮾ‰­Û'í ØŒö$í¶±�¿‰Ð)Ã¥‰âG³Ô G¦Œ¿ýuûëøÍ“Ö^+¬éŽ!¯ýÇvu_*w§¸TŽ—ð¸%¥Ï+¾¨µç�Gƒ-„ŽÔ±� YèîMÈf<ƒGîf1è›Ç¬°Ëqp¸­!3Ö'¯öôÃÀSÝ�‡¦‚…Y3¹�žk¥Œ¬S¼…ýÑ!ô¡¶=âFú›�%:5h¹(¼êñ‰wQWÙ‹i-'9NyÀCùl�(r¼�3Cî‚Tò$ Ôs”$±Ý=Âÿ(TB4ÎY—»&;ÉÐCŸ¥½íœc~¸%ÞßZº,õÓ!80L�ô`çÂvUÉZñL…­J`no„ÙÑk…p0e¿Bª4ŽãQJè•Ú¯öÑ%÷ Ô žpü#¦Å,X!×ÞAi™Ív·–ݹäOØMJÒÓY!H¦þk8vÀÙ8yNeþdªT“@\›÷K_žá!^Vïig-cÈû”dVùĆLyåD™·pu`°cGWs½æ—„�.h)âäÎJ ÑY^âúþ9ÈÞ½§š½á)LqPÂb�×]ø<Ú^ïZ]ò (Óñ?2 Ë™RyöïOár‹#Å^¡ââs�¾ò‹š‘¢q“z£0gúGÑíô)—k÷$…À•™fÀâV·ƒÀ-%ˆ» Êw)õ«¼Nr› 1|þ ‹ï…á˜qž Ž šÚBX÷_Ëo¯bQó�Ê’åF^Ã! Ƥ;ç‘Îä éeÖßVÎää*Ý— aðWËñÁ¬¿—ü v+ÔØüH±ÐJ~œyH°`OCS/0þÒVµ•š[[}‘²æS(‰L7{ ± áÙùHË}¿)¿®CØ’Žóqí3ó„t”1¸‚û?ÏUzwùþ×È>àpîWG>TÏÅ*ˆË®2JŒÚ(0>�Z>\üù“ì ó'ч• (¹Ñdá#»uQí ´ƒ"VXÀ‰2 ¹à1ǦdG(y,¬‘)x„;‡ú1àÛ³'îl 8µæTÀŠlXíAÛ—9ŒAhŽ÷½ø€Âe\Á>[Écòð^kÏêÇH¼Wå÷ŒîàÓ-ðRTxÌŠb·/ R›ÍÆì`fh%Ö”cGf:îX×hd�m<…ëž_ŒtΡ㸈ô‹ÁÑÕÐñ~×—Õ{B Ëiv¢ÂÐ]óGùì o˜“ØD�³ûLm­¡7´úeñ4]dr„”bµì–\1C/sm0qÁ´¼b@y¶´«~fŠãjI¢È‘±n$Þ”[~þî’§âÀüÎ�‰µƒ®nf‰Ìon—Ç3WRhªMa.Ä we©ìj ü$Ë¡�Ŭ¥µëo™èy_wÂÝ„ìH!9 T(™ç¤ eíŽzvs#'—á4 ™•Òð8(pÜ �OùWýk3ÙK .| áÍ¥Láî1¨Vª])�ñÇ-r‡ÙIØH.�UÂ…Fæ— /Á˜,øJºj 498å§`Ôw]eÚ?v®5/-Ñ ÕÚÓ½^‡à[¿6¼Æük&Ï-„]F9yߊxÖˆ Ûf$T4pu?¡É.<’3I1þDÀ •jñJÌÕÞ“®d_®$óœDf±ŠŒu�šÀè{œ9TuU«PÈâÄ8ZE 3'ŸC¡PNC"¿×œ½!9¼YB¯öî/=©!{}òLV;fTLŒ¶¬ Ð8Îð�¦_¥àÒF¨ÍZ±Xò©•­=}6ˆ5Ù >t�Ì›­ðÝ¥9S‰L>ôEù�Žtx4üåü'îÑÍè2ý])�X¬;%¬9^0.#£kþNV]n^!”Å<ðk¸£40Ðr½“‡žÓªîpƒ°1ƒ˜)B¢äéeOÃ.|ÃÂê.”MFòFçvnÞ¥;‚b#UMzZÓ¤?”ÐÛiæÕxvœÕ¿vûË|ÜäÖ*;Ñ» ZD©„Ÿp¹~'ý#YN»™%Âmx·¥%.6´§GL@§0�ÈDBí¯g �¶›dxÊ·ß‹cµ©'s«ËÁ\ªSëÊsêF!°9ý “Àžác ¥ø”5gVмˆò‘~ ‰K‚R Ñ BÛ»Ó88åƒwB“n­—&�ç”j#3ˆÎ}D>YUÓÈôSINkµù=¶(ì "u1v¦µñº6µº1‘Ü�³žé’Ûí0JzÍnÌ9Hì—ŸØä'…3‘T³é}àINîŠÁ3X‘Ó2m�ðnïË‚9•—cËš›¿—.;¨ót1jº9Há©Zwû*_OhOpíЊÝò4ÈÇRÂ�†]øÂ®Õ� rYNÏßÚÛ©Ù»$M  7™^寃áSƒÌºc„†©‚% Ѳt|J\PÒƒ[‰XU¹¬ƒË`¹3³6§èÿb¿Ÿ‚… ºuMpÙ¶mÛ¶mÛ¶mÛ¶m|˶mÛVýçÔ©ŽèuzßÔMG÷;cF^äxóÉÈsÌ‘Çc,LúV‰éà•RÞÊòµÊ¸l´9×Hx”:½#¹IžÁPm�4vsýXSq‹«6€#Äf訳rŽuXÑ3Çjþþþ®Ö�€îÉ•aYƒˆ9êáË5¹Ï4#'ò4ÎPm*éǶ7£뼌îÉy² vñAÓ&aA™¨c9Îô(ñþA ÁÀ�þ>m„ˆ€«—’0)->îĵ÷í6©gäðTã—ÕÀÃÜ¡¬.p;"yìAHI°hÿ¬? ßpJÑ÷°¨ýм»åwª+AO1nê=„ÅÛe�VîÈñé¦ Ë›¾çtüÉòJm� záƒ�Žh¤¿…–çDò ̓V 2Qé>V!Þÿ¼ôÕ-¿¿¢Z6d6ýë“æP´›?$Q¸ŠØ=NlØÃçÖ~ý–Äá8x)„~®½Ó—ï7íÃó!‡ xS¤ñ UYœ¾%·1#'®lbnS¢ÁŒ"öÕ>C€±²Ïòó¸’�nÖðãÈ[Mæq8Unß¼g]ÛÝ~ÒòÔ$€4%",�€ Å ®,wü_8ñi"l˜tA΋°StûLdФåaß’© ÉaãæÖ:’¬i¹QQ†³A;ä!÷â½ñ"gÇH�¾çرÎj ¶�åXõ‹b­‘×ù!ÌA|a1Í-@)ͺ(°ìVFü¾&KX¡¢Í{a€ÄÓÜè¿Ò ºiˆùÀkÎ0hZ¼ÜßA)Äð™f¡Ú8 û¹äz“jëɊ퉤3~Â}õ8€^r\ujSW;Ñ×j- s�hÂï¹v¸Õ×j±‘NôYŸ�>Vœq+¢,ܧ—–|7£A »¨’AFúŽô9Ïó`%>% ëkÛ*9•¡�— Ã`�)Ï ç"Ž5Î@•$$Ú3X«/Ù�S6�XK˜Ë®ƒE“n<Ž�/ämhÝo+ï8g·#S¡ îèÙb- ‹¿Z”R^çÚ»@¢Oâ “sO½‰l`”æ™�Ó|''Í|P‡ÈP£þ<�r¹-óšñØÔp™!ƒàYp€ZëÑi"âdFñ~vsoµ¾æ×¶õ{s”%eÐ’(F2‘Iâà%w\—´‘bÌ ¿$âHLªtꕼÕ5C(`…é:æ5‹BôhNeA4G�Ôí¬×3 ªA©vý�©Ä�Ḭ̈3•¥ßsy^×¼¦W'÷a½#$‡—£óÕ”÷¾©¼p )›�2�kPÿy .ÞjÚf7²²i ³¥ë£ï„`?g(~¿Å€£,Ú“g�¯I£ó�u¹”>s5ŽÊ=f+G]´»íàúÛ­.� 4#²ÉN"¦†=ÈO‡�éE _‘“÷0„Ä-Uo1Õ .zwÿnIüêWpp=«h’ Q{Úëëi6ã­c¼†ÛV€G'0¯t½žb½y�È×}áý¨æ�¡\ö`�7‡Ç3 ¼;¨uÁ¡ƒÈ´ýI\¡Ì軞Ua9ÎJ‚Jõh˜ÖÍÄkØë¼Ò)crðÝ a Þ‚ñßU:§·ŒžrèhÞ$0&!ÐvB‘/Ñ™®ß‡XÖ X¼ˆE'¢ST�MPÁ‘ yzæ~ŠÐËŸÃÔnÑ8‘ähŠ4ØåÄ”ŠÝmŒÝØA4‡ü/y[¤„ cß7Gé1ÀVüç&‡nǡ×|—\ÕRVxkü¶ŸT ²w'ù4Õѵ­Ë9Ø&…,wÕã¤y6ùñý}»ˆ±ë®]c™‹ô #tPPžô@ó¶ßÈùKB:´Ì± ’ŽÝ€Î¬ÞÓ¼à‹¾ctFùò;��Bîl,ý'¦Àlåy¾ŸÁÞK#4�aÏ©‰Î.+5ºntòSî%)‡Š~#%�ðôé%�]‚�¨MnK_Ôíteå›S¤nW··��Õ"2:]v6½¯}m©”‚º€È¼ñM£bãcyS¿å{4´Îx¢k”ÓÿÜ)©¶í[ ¯iÈÆ�¿YvQ" ´¯‚�Ø—úñ’#Û®Cµ‰å�Ùc’rÀñÐÄÞï y¸�Ú½!¥Üø›,©"@ ˆ1­Å¶>Ú-,iR»� ‘Þ£«÷jAXe¦ Ú�£‹l8áëÜ"‘\uFpÿsEZñ¤ŠqŒiE ¿Xˆ¤mÌE¯9B÷5|ÃâÀä.5Ãq'‘È[Øí!†CQF–J¢èkï48ØÎµ—œ—U2ÙÈšsB –ä{àϽz\»Òª/Œ%âl~æ¶îß{œÀ`%¡ÙV]¡zö`ù ìyYQ•,º�\EÜ�Lç±EN€Dm ç´S‰q�¦ädlÐ-rì¤íSû�¶ó¿Ev(5©÷Ls%Ýäͬ„ ÙQAô憀":ÕŸ3v+oÍÚ#B=©lÑ|+ÖÛIq¶È¶Þb«Í-çKâq háryi÷é£ß…;[‰^>`Dw«xÙíµæ?Tîó¾ä ñUX ' Å6ï"Ó°þD.|æA,v,X…l.„“M{NMò7}pUåüeT @“]`økRífHŒ½Ú%%íøüÓA�Ö$äòwÆÀGC!‹íÛœ5¼FþÉÃ%«mM)Æò’ ‹uÝ÷áÜ ¢"t/¨¿`'�dÉ#×Ä1:'BTδX“„®àvü|s9(xBÿc§™'yïÝÈ3\± -¯féh˜ÌöE])ÒÝKªX¨5Ò¦YýXŽ >Àž°á°U“9#ó墭3'žô;�(ùiZæ:î÷bÞ6›òJF¶Œ˜²qv!É'Ÿ~¾/`‘¹Zè£ßT¹¤Y*=%»ØQ­.”¤|"öÒéx¡ù SE8�Õ1̓|Q•ö,ù@ž5hcÑQúhBù¢ÒÔT´£­‡�N€Iv*»´ÐÇÌ ÒkÅ(¶òƒ²¾³"Iäžß \áÔUÖôºìO{SVÜÛD°Ön!zÜÚ䬪1?ØÔ ßw‰6pÕDÖ¢›²”ýdò¥© “3¹ô cž‡Û±sZcZS ½`ÊÊ6LÙQóÉÅgÕùÞ™ÝÁ?4ÉŸdƒì©? SEÖj0±„MÕ\Z¤ Ú4Ú‡n°|ÎK<÷͇ڋ9Ì\{üHî¯íÓi'MÒ;Åóq!'çÍ›pˆïb'æ}pð6v\2|W>Ü]D?‡Æ=Žú]¨(¹ÐÀ³Vo¢Óè � åãÒN- ðÛ)¡ô&�hyÑiËo¹T�\#ôÈØ´Gg’�ÄË�‰˜÷¥™äù&vì\™:rÇ@>e÷ƒƒS·׈/߬øÈw.~aÅ+0ªTºš•£3"5^IJÿ8 ZU0åpÒö {ÎÉ$–Èê0š|„°Í?e^ îkIq�áÏ‘62f†„F œ‚J,Y0ì\ýûõùº«Ñw¹->ìo ø^E¬Štvðo¶Ú%‚ÎèZPìó[é´§Ý݉u}MêÛZ ~Òõºn†swÔ±�S ¶¶x1É�UZ†nÇÒü€Ÿ´snÓ@wÛÕˆe°ìƒ,‘«ï;z™5d²—�ÌýWd°näªaöã×�îþ¡_¨ð»�üƒM„J2Œü@ú¬¨Àal¿fî&À¥rçX“PdÅÚæ~.õÚÛ(ÇLúLDC‘Cq—ª�ëW�b€,à"†úrlή@;šöba©´Ò¼îøÆŒ6ÏwuSê[É›žË¹G¾(nºªbíHh‡£y3K[O[;²³]KôütÓŽ’¶-ÓžH¤J{ ³÷ý=øgP=G$ýãÙñ3 ø ÷îîd³ÕaâÑPYÿH‡2ôaTq=l£$¹kCØ¡¾Ùù4S)ܪ†õ¹8¦ú95ÜÉôSj[.8Òí;¹ #é„=`¤o攵5ãNÃn,�—åÞá G~ƒðƒ§>Ñ€ªÒñ|^Z$¢- B½%LQ8îH¤ò¾ XÂYt¥•=iâý—6Y¯‘É©ÿ~K¿+óÅ„}à}7EÂ÷\¼ëºt#uå%þ {ð(Ë0Óš{O~Ì4"N^Ø…;VÇ(qB Y³´/Ó롲�æÝ�ÄJç§a/t Ù Ñø};GŸ÷P Dæ"4¨î¨×}à…ú’×ÎU…Ü-6¶yã3zºÕ–"u��³@kZ~½D‹š9d·%ƒ1À޵ —OኽÌHÏfè„%à‰ÁÀ*Ê¿�I="…¾"ùÁ}<ýkÇÃK¯Xãçm„È2ïût´Ö4�¬¼š‹Ø·Ýéde4Õá³É-ŽPD3w˜û,¶ð¡ØØ¾ 1ñmÏï~ŸCùÒ=>àxP±ïª} y#âéÆ3@ð-ª�â;¿,V;Šv6Q?´SøÕ~ca±R¯ÚUà\G&°2·[¯£=鞦ï=º{Ì€ÛlÙ\rÿ—­e�Ï#¶f-¦o4ù®¦õFqMN”@ײ&øÖyPœáV÷'R÷£Iu<êì¿WŒ)™�Ó2Lƒ5 ¾ŽGê>š‹B*\õEwƯÈf0ñ¸�šE[=B1 ºÇÞ]iv #:ÒbÛí‹>u‹øÖ+ 7%vVÈ�õŸžO’`P¥:·Ÿ–[ß&¶†$Ы:œP[÷â-/ÊŸ]Q=v#ø¹I…A-d–)Ø1Mª¤phdHHµ­×¨\~¡6SÕ¡fa!Ó˜Š¯¨·ès%%}ë‚:öªrËÀÊœù7i(x°·P‘T[Á%jÎßâ™ûøáÇ´�IØÌW;©ì ª + ƒ\ƒÐÿDµ<^W±Ç›ö�`øÐÐ[ìYç/p×~²SäXï=Ƨ)ŒðÞíšñÛv�ÛëüD3 /ò¹“ÅÁ3(°®o³ôM9c+5j†W5Ž#e¥Í‹T#“P·âé…g²ÑDZóòÓ ÊÊêñÛ¹Œê/ÿRýóìcF㘠Mш#xßÖœ˜úÅÔ”ÖWX.TSý³„‚fÎJÅtW[õīƑKͼU{&Ã�ÑòÜ.D®ŽÅJ5vâ+kVÛ³HÙ'C«á�^¦þ7P§.Tòö‹œ2\ÿéêéUÝËhäõØÞ‚´¸@¸ñ»/*ÃF2th÷½Ççb´®S${0ªÉ‰œªÄ’0ºæ³4Œi6Ô•…ízÜAW_|(jµ›†°âïòܾ;›‹§™hç§fQóiÂyjãð&ø>øj©™Çþ穘#a§®`o¤°rTÈ0OD!9R¿ßúHgaN5(g�·ú$j•Ü¥þ|õ^?…Øý¦Ð‰B>Ç>EK Á/jY_²jnæ:8«B=…0ëæ±�T­Œ±BÓú9ù³cohµ�×´D ÝøÏÁ/-[�ضTÅ킽"ÌÔ; ÆÂä­±ÍpkÝÎ"Ö®ëÄLÖ>•νÿ÷6@¬_™—É&À\Oµkú:¡[Ò¸ú×Y^ôEGÁ¬…ö;¯õù¸!—{c°ô�üX<ÝAÙ\ë<�zúÝá•‹]~WèŒy^§N‹>}&ækê¤o™àí—¸’ú"Î?Tkçý·3½M`UF*K\Hûõcý ÑZ–dÆf¬¡Ó2¡Ží¯ð¨Ìj5+aÆ ñYÏ¡Î6ùÔ.Ô&JÀoÿ0M@@ït›Ã†ïb”(j6WÁÒ³R˜}€A0íÔPž��_ŽW8EU²¸2Fè׋ئÊ �ñ·ïknàÜŽù…;RÓ¸¡�#„{´¹êEÇHç_Z�;ÑJúåJ…ä øEñ£J¾ýÖ þ+ï1ývv}y}€Ä—cP¾Pس1OöxƒAØz¾<œP€ŒÅ¥j©»]\3föˆV+Vè^uàŸy䌊+mesu�¶z�Ô£"à}²ÛµºôäðùÁZ/ÕµãŠØ}ÂÁ7ã'ëJE×Ù×E/æi—þ`½ÌâçíÂò ILžh«u}Gý�ø2¥zj|Íí&¾—ä™.GâËݵˆ±Ù4_õí…ÎÑù5Ò7¨ÑÝží èÂ(·ø³­b†*Ð 5 ù~^™îÔw2#&DõÈnv_ÓPe¥µŒI%½ÒDICó¾÷ó›Ζc�È•]aþà–lT¾ëRÇJ£š�å¨oÆ( ÝD{Tø rdëŹï:­ªáP73ߢØ™UqËó0|=Á”b•‰ ÿž’ô‚”q›}VÝm/ù{nݸòÊQ 4wMGr!òØÙøÎ /#ß�¤»ºä4êÈž1ÑûÄÛw©&R\�#¢ó gû‰¯¬F«L©™ïg2d>“vQ Òr¬"óBʯðo7—F"ì:BVï<£>ÿ aB¥Æî´=е(c1BR °^‰@1ACذ1LD‹½•g6�`5û”Ë`{ªÌàŒ1?´Lìƒt°*|}"ò¿Vo�xÄv ÝsáÖÃå1vç‹/Åt}–,_á-­`~qÐBºLNy꺄<ê`›(zN–cü-üÅü‹;]¥Sµì$€4ÔZ<˜ö0»FªêŽ;»§U8n9AS€ô…5/ˆnnÏýÜ0„7ÑcZÂèé‹§7¥¸½"Èåöy›¢n24‘áÞ�ì@Ötê‘g“'¥{GzcdTß¿’ç[ZßjPna¹ñ¢hmEÜÄagW�"KÕ²@¢\Ö†3�z‡M-7Ϙ'42¬føÙcËÏÍåám–ެ0žú0ÌœÝûãÌ‘ê_ÛÇ_ )jð½ 6“™nÛ/Þ³{FïŒ?K°Ï³€¹;MY[Îó…‘Q·p1�rx4NVµ?âÒð„u�þƒ—“5=XxC“.�kzËûŸÓ~¢ê*‘¾ÉÉòS+︵µ…‰Ë?ºØÓê2,¤ô(IOR;bŠT+Ê~ô¬þTk Ü£é†ÂO[2Ç ü$�E·ÏØgHï-¬Õ©³y-I [˜w¹¡`Í�š½(Á;a!Ó¾ûwa‡hþ`ŸõL‚¤TQ‹†oô(PŽ'>qÅiÅÌ÷,åáiÖÒp¾½£Š 3xBÊüÖªR”5³Ì\NhB¿·n#ŽöVÉ¢¶7±û‚†C~-áÙ‚’R ºýehA/‹„ßyû[㌳‹QòŒ®6;;?×ÂþLWâ,-±Ô‹q·„eœ�ŠÃ¯hImsÞàírÜý¸yU±Zk¹px¯ƒ@éÀdå6èQÄY �¥�G”EqÔd C¹RßHQS¦Ç¬[ñz› ¢ÛeÝFjø¶&3Íò"‡Ô#bhçYöØ; O#'‡‡†æ e3›x[£bĽ‰ôU(‡0I¢¢�龿²Í7—e�f„4s“•Í5\‡×m¯Ï0Ö … « ;‡�<—Ã01$�ò€²¿6]ñݲڠ<¾×Øzs)ö³IÐ!¥^�E�„–N솑¯yõiܾ‡NáìkîH­Œg„:‘]øá‚^½J9~Ó¸€õ‹O˜Ã�o@Wáñ(2–ˆv ±èœ„¡TSoTdk´EE¥E×�`6æÂÊ�0¸p“Ê„çÝhtúÖEÕ÷ÝÍi‡ý#¦ó.ÂŤZß,Á"ʨ‰51ñDCã#ç(#y鬂*åÀªZN�J�*/!´Üš[|í¸kæ²L\F&XÑR6ÅzópUt#‡Yéþ·–¥^“Ýó"RF¯8g„-ÐqÕ³ W�Ñsǽ$lG’æã&¬ú‡p•äÙª½hsqk‡x¬f¯�åÍÑÊ”)ŸÞýÓÙŠÈyâ,žÍµnÔ¤BKêJÆJ ×Ph›§„Ù²¼À± 2Ê2YŠàâ Šú*,Æs¿«ñœ¢Âû:ciî­½˜`íä�‹îŒqï~i:‡&K{˜øk6H]Á=&å…ã[(/( `ƒµ5�fß©7â° –Á7©ÐÖǦ(øY®þ­“œ°Ö“ï½—n§õ¼úº;†‚µ�»!äfìoØY-âç)ÜüðöidÝlzžA 8çÔÛý<ÜáHy¤Ð’,•ÞdÝ|ÑØ³ ˜Ìð䃶L&Á£¶r"Ø€½Õ1YVšÒw Zi±EÝÔY' «ÿ­0ãž°,  @Fçh+&tÂx¸E>W»5àtX$_¿�ÃÀª�p·×P¾/ù uò[·DJø4|û™†s1MÐØH+›_8÷[ [÷R 1.àƒ{øÕU,’¥y¸Y=V¤/qý{Ú°]Š–�ªÂc©).ø'²8—U8=ù‰|²Htº`³A‡rù¦_7œÔ³w£D÷`oZ® ~󙎟-&ÓAZ˜q™WQ“¿Ä ûtxÁGéò·g71+Æ(ÚK>K÷í/Rñƒå¾0†Ø7�W¤©`¼›pîï°Ç1~y¤]§þ%&!ûkø£�Ž/’%Ž\3ÆÜé¯7”^AQ›ó)ã*žÍ”Õ þ[`_ YJ@n~[«qÄ&ñ[ßÔ_ -¿C_ô€m§¹*•°Vù€¾ã‹äÁ¤�Ó”iøAp®¢²«Ó#IèG{H ‰¸Ìô3*·÷ëÀˆ¶ÖgŒ¨Ý°ìGɨ›-$Ï|>«¾’ö25`˜ÖyF:L|ðù©0R žKËá°B¤�¤¢žµî­F��xzp;‹z²Œak�á"X5xœ�ôÀËù‡•,TïÒܤ–ƒ�oúŸŠU³eùT}#§�_¨+¿+‰4Õéq‘Q#c€RXD¢U(,ÿóYÄl „·Ñ?c÷RþEž¾Tao¥wê°N9ü„n°Tû{•IŸÀœâ –œ, ¤ŸžDâ¦ÊøCNÿÖLÖ`EMŒi…Ú¢x‰ø‘S²¾9³¬PQ¤ôÑùðQ¨7ÆY([6 ï~ÓL/¡�P!¿x Xd�ÅJ/þ[ðÞí‡4ü5Ò>SÀ”æ8þB˜]ù³Ï$M†ÄyË^Úö�²äÑsK;.Œ‹eZkM΃éCF<мlòç�fÓQãð^ AÖUVrÌ—Ž Ä;öi�$;”+f‚â¬1xµê0LÄVyüÙÎãª)؇°ÿ–5Âg=ÓÒêxõY›¯'¤RIžÖ™„zêú“àøìÁÅÑ×Ì™b+½@Ò£µ=öCÝ_¡åópÇØÄ†:R'Ú\[-¬Ä$È {0‹ *Bî÷¸dý…'eôUŒp&`vɇ—`N€½mJÚ�ñ ×-Iæ*�——ÿE9òˆõ3g¶šòK\7œÌÕßOJ¶¤X"îÖ¼}*•ÉØÊ ¢¹ÒújZ3e‰0N˜£q”„ ºvª«-{v— ê€úÄxø¼sŸcʈ՛ú9#8šÚw©DÆë"kÑ—VŒiÔbƒ±Ö“9÷€ˆ #“©žXãŸqßKš4d £Ux¶D5ó=9𠊳9JÙÇ¡ðÓÆp­ú®êóâ™&ñ;k ZÏŽ\ÁDXm�³']‰,pA ×Ǥ1ï‹ãçÆ¼™.#ƒðmÖ-oL˜W»å7«ú†@•O®²b‘­Út¹N¶�ZŸÁq§ÚšáãÄŒª” ¸aBzS¸Ã]O‚�ûÑ)q£,3–ÓètKÙö…€üZ%r1dxÜ·P‚iËâ •ø9Í<^ŒŸDð4ŠçøŠB£ó‹|1óì÷‹´?Ï�7ÂÌ´æw�ßbW‹_6£hûSs¹]aî¯GÂF‰O)1~šEI&�gÁ¶ìaôÐWU…ÌûÓÊ7×A´¤Bf‘ÖQxã«ÚkjÔC°g±˜Eüæþñ�ʾ$†¬ãHˆ40æ0½œÕ˜ ¼Mî(QW˜pž±µçßDä@K‹H�Å5]/ùn!'¿ËŽ[Š{Œíû‰ý¥°²ÄHë? €˜ëš>‡ö7(F‡¶ÖTÌ_ãú‘È�ÕÁïY�‹s‡àŠf…< p¨o¾�'¸,LÇ·“ŒZ°k=’cŒ4-­OG�è;¿œÒz¸(%õì:Z¬üà JSï?‘ÉGT±ªd�YN_œ>“"¿–É·Õˆþ"«÷Œû=ìÛâÅ{|% ƒàŠV\Qk¢¨>—Ê’¨*NÚ-¯!Ú8×&!:aù/uê(ß‘C³Èùçl! “G&.pA³?ÒûôMgýÖ‚38Jåþd²ÙŒz9àÁÖ‰äSSèÎÉ*†¹“|–w®ñ$¸�7V,ý¸Ø\<騒Awdž1­*à-Lùx3”0DVkPO6¯h?däÛÎyŒ‰w>Éåž«#b�9x“íÈ\³Š¥ïµ£L3ïʸ8Ì?Ùýp „�ÐüõàU{j:u÷0>–üˆ½©T`w 1¤ÐÇ,ð*ø\YæR…šZ‘¾ /ήÛ<Øã22¸¤^âD¤.68+HÕ—ïK¼Í.ÊÃQlŽŸñ£cæ  qöa[ñ¼‡šdïÃï¢9¥ž—JaR° YÚGnTå|›û¶˜q‰—éV8À$èg þJRø„Úàèðš ÓAÔë1ê%ô Ãú¾W0!ïo]éÝT€N‘•î¶}óX�@˲î^DbMLÛ¡hyÎþ�¸Æî'û\ÈzzDGú ¿eK¶XWX JÖ}ÑJ³úàãœþ¬×øžZ؉g%*ð ‘g�zÐHáIHié  Ü$eOÂ|ñ&�ÿ¬%¨>CÓØ��IVårqò ‚´†Ì;t!èÔÈ�ï8Üë Œ«ÈLx©{QacdÆ�9çýb(iÑÉ}‹s“³–˜SºÁç@qv–©U…V¿ ƪð�'ú<qº›áÈÝÃÙÆèx¹PDK¥è�z WI·2ˆã¡ñhTõ§Õ�¿$“Qìë!¦Ë�Ê�}ÂÚò{æô¦ÖMm‹ê¨Q*ª ߦ§' EŸr&¥¯´€¢·1R^ýÈï°æº§fèò¾0€. pfüÜü~D)5B±d ¦>^ŽV cþë?Fççìá„Ó28äoH2u‰Z[Ž ©�i?@ç+À1ëàu£TGT½˜9•]jsƒM îJÕ {V˜g³£#!È6lÆŸ1ÝÙ �¹o>¦jIÞhÚéE7íx:â´äá"0m�,LAB»‰!ršC篆(ìÅ%{Š2—Y�¶ülÙö–÷#¾§ëÎ…Ó]½gu KìεÜ,ô¾ _`¾o)MRôÅf1“Óz¡ŒüSd-6ãã¤×ÀLè/Yññ‘èëõ–Òò ùFP‚æ6Tùv‚a޶zXЮ“C ~N§˜÷“«ÀÇA\��LI¹² Â|Þ Æµ ¿Hwü%43ì[9]/c›¨[K¸å‹¯iud¿wЯ�ÑXžÅÅýseÛûÞóÅ^S¸Æ w�tLð7wÀ Œéy»•šŠ–~ª7‰Ó£§LÌMŽ8à5ùjs78.�%âHlܦ#®)¨½¾¦7š¢]¥@î D7t‹àan8øÖB@ˆ{/ÀomÒýh 72“‹Ö=Š3þGýû‘o§Î®0œ5˜mWœB¦‚âa·ö3Ψ"'(—/Ì|Ø¬Óø+s¤å/þ@[glLŒ_&š™IÜ%ÁÅô Ý)9p��;ˆƒŒæ€j6®ÊÏÛ8žbÀñz°gyˆDŠÆÛÙ¼�7¹{ÆY‹ ¦Y#MÿQ ¼äêÊLÓÈ D�qØ4µ�…›µ¥º6€”¡®îžÓ¾B·uÔmW;snX4Ë0¡è‹™QqK9�¿üƒ)Ò}1£'jŠrxT¤ É~6�Í\”°»�Œô¡d:ùJ3pa‰¡÷ E‘ˆAß'õq•®ŽŽ¼†„Ý-'Þ®‰"9›)q­X W Y�ryÌ„pº“«®È£œûo$Ð:á;ÖVªæDú­×N“t–gÆËì:ª �]¸Ÿ€\ïd–ŽH1¨”Œëœª£m­Eî9.W3^�".Z™Âö#D‘j5zWÿI›ÀçL|ú®xa# ¥h `ÍädIEê¡÷V‡Ê©$¸ ‚¨m!{7\¼‘A77© åÑës[Ì{þr^Åìqôn€¶_D¶XÚäV Oé W3ãýrì~ zÕWµòÌiŠT«i�rÐJÊAÒ1àeVîµuutìïí.fã7&Ù·¢£ÊI²jœP:BwÐ9+Ë;|}äx2ë‡'þaÉÏ(¼à™þ5£4RÙL7Tµl1cä^f(Ó€ÂpÂ>㥲k {lÞRÎé+ð5”½LÂlk?†sj8^S>�œ¥þ¢ZNN˜Añ͈ëyx +^4�ÌO}íº-IM/V´ÌZïÇËß·EXˆ2½ú\•z04à»­¸õÁÙrËÇpãpð·}þŽÅDf%„Ó+ú\sGóßT(…µŠ¥gÊ–qVÅgÁ[õç2åM’ÁœgæjØ«H‹´ºÑ¤òT«Ÿ!†C�ìî^èØ#©ê�7T7WÛíé°nÖ%NAgVˆ;<6…òR/Ï™nÕ�ü‚ß~°»1£1i‡pQw€´~�.«åfêt'òRÖ§t"9_Æ":Þåhk¡¼OëuÊü+Ø�Êå=`Ü}ûÖºðzåçRš4•ѫǾâjÛ³KN©E)±ì™Éâ(‘©r�ï (“·Úðà˜Â�ÕØÞàÄ„ˆp0ÜlloÙs\nõçEÏÀúcxúÝ×g.ö]‹[Ö`ÚL%ʸ™Î{•Å3eÐ:ÖÀ±t¦zæw‘v1Ï{¾EYTÄ: ؘ´ÍLH"ݧKôÜÔ&1É_(°øE½¨�ag%êw¡ hÒ0¤®ä°Ì¶ïM¹Æpÿ’¸3 }`ÇSmZå­T™QjRÊqö‰\mHP{MäE¸ÿâÚ4—(Ñîâ«æœ\rŒŽ–§«×/ð§8¡~!•©÷ƒ4™Ï¯Î û½aAïM€^Àxóídijÿñ ÄsÎ (ì‡Õ–26�Á”ìŠfѲ�øŽMa Û èVú{xªnçÃOž…(úDšsyø^ß2�¤ÒßE«a.;°Z1éþ‡Â�µ ”Çmƒ¥ OzI¬e§t½n©•©U>�À+ÚÕé% ïF?ñ5œ¿v••fŸ9òÈÑÆ0….jvm�Ðm¨÷>Ö .z H^Zš.! å¢ôi~ØBãI¤~±åÎù†ÿ$b±\þ«; f2Ÿ�ÆxÅkîŽB ,RÈ«¢KêHtŸžÄÞ©!d¬×0�3ÂÅëq5½WÅÆã¼þ[6lêÈ[`ާ•R�¥x–Õ~�E5MgûªÌ΃¦ÍÜÒ)C±@–6v]É‹Õ$j»ÊÂÌ€ë²k¡‚•=[‘+¦ ½$fšŒ ·äµÌr¥g®„sËË�,� l“ª‰&ìMŸ á±éO!Ú2›ÉÎy0µµ6»U–ª5Èæuñâ4ŸÛ‰*³c§¶ª¼NÓCa�ÓAð`²@.× 5 5-`÷'‘hw‘o>¶ÇrÏÙS¯Ö=\„³iÅŸ4z®ÓÎñÛ»K<Ã{¥Ô{‰ O»|HˆysqÌ Æ!©ÂÁwü„zØ|üÓ·:PhI]dÏ)žf¤¼Vµ‹�?� õ]uí] ú®©íÑ2㛚¬Í%Mó ¿Öùj#æ›Ïe+MðP$h¸>ÝJ+G xì©êb6E°:á!gÉ¿œ©9š,1+¶Ë)u¦¥´lú¸ß¶r±âWŒ€̯­Zöî®%ªÛµÅR²Û¤¨VWƒ²×úÊ,Y#’0^¤Ìì´îm^MúlÃYJMçä:ãªÊ¾+¥¬ýnÝüHPb�ÖAË,ë6‡í4²}Ow2Ú�cð[º±¦h#Žõ¬6d“Í?v`0ëT¨¢ïÑ…ý&!`»ÒÜñ­"wñï951S:–XiY‰Qù;èLeLŽéBEx¼ÜîˆÓÊvy1 Ê~‰AûË�ñ®ª+~ƒBk|Ž­×{ß-æ_‡êúγ“ •±ÄL%ÎdƒP™L·°1鿇y3\Æô¾;ëxº­jE<éͶ_FЄÕDUá,DOä3¼oOȃ%~¾¤]ÍŸì×A L”%°bÌ“|Mùƒà MÜYý«ƒƒ“ÍÀïïV(~~eUGŒPÏòí´/¼Ð/$r„ãá”ØTçÆU 2 11ñ®%6øxŽÉ2°}–ÖÂNm™˜+·�±Âxgu�’8„œˆðÀ……�Àâ|�ú%)ϼð0¥í€4?Œé2ŰҚî+/K <®á{˃ђõ·ŠHDrr'×r–ŒNohêÞW×üT/uz%¥÷†AÕî;áêRœBþHŸá¢…k‘g¤mYÓ‘¯µ7sÒøxbKlû•,× ¦¾ oªŽä6.N¶ fÿg¤]´£¡\@°ì¿<ãs I�ÍK=­&—倕e™~‘ÞÕÓÞ(öDum4Ík'ÛÛs¤@ÜbÑ£†$AÌÿ·p:{žš Ä'Z4MÀÂeDÝJ£8Yæp™½‰~íöû˜ò¡>d˜2JJd_³8Tζ‹_8¸âOC¬ûc³áE¢‡]œw˜JÇò@uY |H‡?*Äg_XÕ£vcCû0Eÿ4$95 Ô ,:!cpÄõ¢2€Ý�¨´Š`Õ¯¶ƒÿ:W:ýÊäT<§£Ã÷»›S6ÈÓMƒ=¾ª\ª¹öÙɉ:'ÞÊG‘õ—RÜÅ“;ö2 J€â"|nƒ½(.‘QiÖ,|f—s=„B•ë‡Ö,(ãjxFl0*0ã�ªsêÁT£*£¾%Åh*5I ‡”Ãßâ™×PÏgův×Y®F‹–ÙŒ¬Þ¦sg¶q¬•ŸD “ÁdžD5UA+ོN‘,sI°rd&Eí¬'<Å Ðð)µÕí¿¾ËYvÙXèH ¢gËܿþ1äSÅ “ùÏÍ«Ù8êø™¡v{¢¥,Þ*Ňï(œèB­c¤ëG—èv�Ë®ïöK²çŽ =jÈ's&–ÞD¹e#i¶ c ÀÃÓ¾�çô m£ÞÒõÂgN-³@Ž”cãßT66̼iwÀ£RþC|B åÒiÁÄL¦¢'#Ø\%̶–š ½u„š“÷u¨©Ù·£~ÏÉé&Rû2>”¹ƒôî?¸Y)Õ9±\Y9^‰6¼®ZÆ4»­ò½ 4&`iüjZ„i‚ÿ(Û7Ù>ÊÑ‚%´�•Ø^²¶.�hêžbÛ‹ŒsvÅ aC=g(ËVm>™ŠWJ_‰|M�$„­“ˆË='zlLiǺ_ÌÇÑ�m†˜ªQ쮘ü1P #Îuì¿줲dÿVW¯¯z·$Qj^Ã0…å¬ɃÙc®øFA¤“ œÖ¥ùuR¼´œDÁÜ«A3n~|u'׫_ü¼Ð*zr$@¼R¥ÎhÕ"ℵLLÎŽW9 ÍbscœºWÀ¾xögB+ŠLðI3ñrN¦Óióm%&˜[‰òëñ…Ì0�ˆìÊ;–t˜ø7yÖá%z�ú‡2øøM©8Ë&*za²ô¬~¼à):²Åã` ²�  8„¢Ç5«X…ê±²Z‡ W—3üè yH|²Ø¡6½�1"_‘ŒV÷³»ÊJÚXëÂo"£x7œjÑbì²Ò¬¦;(™CYZ#Ê6ª�û©¾µS¤@èa¡s¨ ÝH7Û&gïfZžéêv;ob’ð`­ÒL²<ÙÜÂJ#ÔQKûxÄlVÄÕg+:Ý$Ôwf§½€Ø+h†KIÂ;¡]d Âȉ>!W(¸Ï;Vy9½�=�ûí+Ð DÈì±ó*‹2ŒÉ,ÑkÌ“AÇÔMÝ[®å çØÿÌÕÈ£ÝOròÊ\bÚ”orÁwõMt€b# ¶Wô¶—vÜÛúgf ×iþ¹ þŠA±µÓä›4ÿu»îV×c NÝ$�O,€Õ¬¨^‡Û¯ÖOŒz`£«øQ|Ô0ÒÇ=Ü…$bgÖ°înÄþ«*"rß„Ò{›=‰¾åûŽ•‚p§ÞRƒÃyŽáL¹$¥éjo;|ü^ÚÒ—� ‡ õNcé[ˆÉ‹56ñÚèE; Áøqh™†i’Hæ./�÷±±Ûꇮ´Ÿ³2•S&RW–éq•/Ë‘azƒwWáÓh·Ç¹C¹Xç£ï Ð×x&àX~®UÔxª� Œë½›@^á öe²áÕ y…fç�ØÉ'=/ÆÀyåùѬòÈdÛ»½gí­› .¾:ñ¯G}¸Hø!þäU±û0ÛØ\Μ3°EÂ}³Õx"¦â+rfý§^Ô‚ÿF'f×-/²vÇ.‰ô�g>! B”8cÃm¤D�¦UëðAQ?¡ª7<é<î/=2úC¾ï3"(¼(Y¨ç;>¶ÁDµp&N6DÚñÖ:Û¥© àrb´ÿr¿ìMø¥TÐÀ–�Ü´@}¿A$•“²õOé�»]x�µ¦ôµ:99¦„clxPb² ‰²h%™ËõBæ•dAÐóÕV]‹¥8­Fô+‰™ÖeZòï“7êÆÐ¶c)ò=?@QÞñ²ÍWש3çÊ}F DìÝ,P„PÑjÅ™º\õÀë_@ã�rÑw?ÏЩp[sÞ[Olù203ÃÀCŠ2ò‡ ñ|É,áf:iQ N¾ÈˆŠ=ÈêuÃ?^OãL�‡ÒJ�Á»€à`Ù¤úW;”³•û\aÍ×W×ÅZ\el‘?ÏÛðë°ùTá(ú]ô‹Q-øðÔ| "3oŽÄ9är}lý”ôvÚ¾:=1jù1 áCÊ[v‚ó Ê["ÎWÚ7Üó™V„(Ø Ãx* )00}»i7™/i!•á®’¨cQm+Õ�ÔþG”~´ T³9oS°éZ„û¢cÓ[’v»Þà^²ë‘žžè ¸ *”¹=ŠGÔ!(–q-2’EÍD™ß™|�¯ ýxðøL/°®©ûq†'ó*!ŽºØüœµvhoöd¥¤ é,š§~ÑAû‡©B?vǬD½uô%o{*} ÿšcšÄ¹<ó¥$,Xú^ºä û6zõ¼çÄÑî'Ôv ³©á‰}Ýècƒlø*i +°;cÍ< {^gë=/H!õ«K\Óà[àØÊkÆXhõ=¶6õ1ë$ÝXWRšÜ‰=?¾>Ñ’Π¦ˆÎÊ3ý< ž”Óg ±”.Ćûâ™eœzMõ�Ø6à’ósò`à9œ&‚rÌÙõ­S÷|ölxˆJ 9äÏg�,\ICJ[ÉÛ“Ebzã!L32°§Ä"?2 ,òõ}#{ó§Ö÷&HÊúv-]† ÀaÖìòžÇPÞ Sè°sˆt%Þ)žOvgž¹Œ±çM[¼ópŽÒæ^äw¡¢Ã �–ºƒ0—½…âó hž"•M¡±Ž6!+ ]:=¨ô�ØËç�ÍfÉ!^U3èQɪZëvñF©ar»+¯ª‘{:ï+'}VIÚB<ˆP> é™f�—Uø]<á�u/'K�+µ�ð(bŒ1à ú�nGQŸã¾ d- ø”´�4$Ã…3úêa2!¸éêoVÍQxF;A‰’™zY Un]õ9c^ã�v˜/7.x’w]ñÔ‹¯°y´”ë³+ÌÝv5¿2�™„,„4×ÓuÄH“…DׇÎ!.Ô»`èz{t§¨¾Lr!ýç±öô¡ã:`}"rÒŽø"íoú:3»ï&Ï–ú€€˜d·¶J v4cï¦Îi_Œ#œYq+y ]¶E„è«m&m'ÇÕÈö¥Ê5„g'ÚŽ=r‘±Ï@Ú�¿ÐÊ¿?í%ÿ‰Êž(P³†rY$,z»¿ì«¢c¨bUº6ø3›ðÐ~C�\'6ÍÒEJÒ‹nqYþ£ø ¬PÂìn¥Ñ�úà'¯”¡/�áöäÎÀÊùAöàg[¨®aúk÷ØþÕ½B)}¸Ä¯F¾E °(ÅágY½\žÇÜ<á1>Æ–Û$]©M™ÎöFÃ*Ö Š÷�*ÈÛ׎¿ü:Lw^“1°A—CtmA^ñ{}Y*ž@«�×_B0R¤{G¥Râh 'öÎ.òØ‹Yµcƒ¶=ZÀœs¤l¡¾(ÎD¦ÐÝP¯Co²�³éGãŸ&s”™ÉB•ïö¶p^^b(¯Œök ÚêqIX”ÌóI¹ûå9×dÔ¾„ªYkNåI0†QõJãq†Ü÷cÂÀ±b³¹ã|¬5ÑcÆ)ÿZ¸Û‰r£ïüc?y™e-LñšwÜñ3¥5Cf½fàY.A°îœ£�Ew"á¨l¾5ƒþ(ãwò²vÖîÓ4Y·¨·¥M¦Î“�Þ‰S»fv›.ȇméÕ@0ƒmö¢¤½îñØKú÷_ÕxrÐ#µ¸àóîCøs4°D¨Ð™dÄㇼpi1½Ø¤ÿUÔRæGØ^æ¤0!SFl©ÅÞ~Öµ < �G]2Œ2dEÜZÈŽÁã±Ò¸Dm®xš`œ£�‹“D3Ã%FSg'�ÉIÛ–åuFgèœ#côM·~ì{à¢À’ ¤m[¨rµÜ@"x•“4ûfí9޼†d“-þÎ�Ë?�.®óÆCºªú!ŒÎ3k”^Mä4L?Õ©òuýèíÜtæ“\ž…¾nœÑòY¦O–›Ò•H#Çû¼]ØêûÐUØšö¿´“7®’Ýì¹›BT­8¶p�wkS" h„°vÅmâ~ÑùW{j!«ü±õâÀP«b‘f»^OÍân�:L’#m·ƒ€Ý€°&ÜÞÎjŠ)Ü߯ÊSÆÝo£ä…›—h­Øgg™‚UXOÔ!�¤á0Ø�åFv"0*î¶ñ[þPóRXmþä›bŠªè]8úúïx”(ª] ;ß ßÂÞÒ5ÊÆa4A%&i•€ÿSbW) ÉwÌà_ªP½N h¼F5‹òEK†û}J>ašÿ‰'`¢cP25vS¶±4öù�‡i){íBþY~Ѩ™w¼¤NR_Vr©ï´Èú8c7^�“ÃP§ø:-¾“>-³¬Q¬agj2¢è-}ãà¿òÇu¡J“……¶$è&UÔNµþ;¾ïFE 1LøjR=m€MDúÖÓ@C]™ÕP*†Ÿ›xF‰?Öÿ•oHwSe“‹ ï²m0÷ßñýþãÑÊ#ÔÍ÷ ›}*;WÆÝª( ‹u•fœùf gÁ2#UX}” ™ÉJy¢Þˆ\ÏOnK‹Û«÷ë'è[ºú¿ø:ÿ‹�t¥èÄ€¤Ü#&÷¿ãËZÚý�xžÿåüÏ[ª%ø‘£��ÒyÝ<¼$¡ñ­mñ¿bÖah–$h/Óe&:§žþwk ;™ºØ;ýŸ£© �‘'�ƒ¡“±­‰�¥�)�›©“³¥½Û€ÿ¿þQtô.¦Î.tnö6ŒLìÔlœtÿ#Cþf0üGl,,ÿsü�þßFFVV&FF&ffvvfFf†ÿl…•€€áÿá}üßÊÕÙÅЉ€ÀÉÞÞåÿSÜ7ÿÿ¥ú¯u6ÀP6^HuåA{K¬áˀ뿫›þÿñ´¦û§·M÷£f�^ �‡÷�Ÿp¦=2�öŸí›gסŽ0º¶ßnÛŽ(þ(«™vIl°™iüW~W¥±Uüñs*k ¸ó, ñÇÿ>=“FäðǺS ¬¡LÃA è!vé/ƒlŠéŸßá=ò:2a{ ž‹å‡þ‚¼|†dˆ¯f½ÊeUÆ®ÿÊŸ4õèe�„ª}³ !Æ¢üïø�ÿñdsm¯1¯Áæ5_/ –Z¶ÌIéhÌc±Òï*Íê$B%VOÎO4¨™èJÙçˆüh²s†«Šáè*o%â®þWþ ê ;7¤¬f‘Í0rÊSóÇú�ÇËY€€ãbFö|oÓ¿Œ‚½N™,³i~ùé›·»¢Ç7ó{ˆV L&}®S’¬ì_…ÚýËå°ô.ØÿÅù_|†'#+ZP³q¤ªL\ð%°ÿ_ÌÒÆTÄÔÙø¿þ«„µCÓ†›¼š–ÊŠùh;²Û�=I­ñ¾ˆF…WRI0§ÿ'çVCÃÿ›hëAOz‡%v3ìO¢ýïÎ ø?žâ¢·8_âø#6ayi¢•u×¹ˆ´ýævU\k,)¸¿Ðæw”+Îì6פ› Ìo—˜4 Æhêßñ³ WÊ¢ÎÿÊ÷ 0¾ÆRêû¡®¦ÿœ¥‹úïøÿãìv™·Øä„Pä·çô˜¬;"Úß¶Y¹áV«+AþT~�û°}KŒ¾Úã��Ó•÷n˜chnW(ôW¼ÿ+ÿ›.^_‡�kr µì¿ýBÿã¹x{c—ìnžÊ—ÌP²µ·jpß-ÚŸ¥”0yÈÎR¼È®i˜€iDŸ;ARy’´"Tsw͉ ·ÏMZõÏ þõ.™ÿ'¿7vÍ:Ôa’Æ|’¦Ã[ãÇ—Sþñÿ5Ô—õèþ¦Þi\´TçÁÆ#A1…‰‰R7ÌìULãBkÜ¡s²1æ ÌÓMÔ=&ÿˆE;|×È‘ÎI\ŠE&ÁÉaµ.L™.kóJˆA:ÒøÒñÛ¯uú� [~×¹‰G�Üúœa�<Ռٌ:éM‚Õœº¦@tú€CEªW©Pµq·#JnE†2–�Ù“ m]Zî8Ä»ŸÀd–Ũ5I˜™r¾ ‡Ú]¬¤ R­{rÖz²½€DïH´E<}ÛvE‚Ù;ÂìH‚¸ÆbÃÙ,%ç4ÚÖçÅ\'«Ó/·6öµ § Rç±åð„°ªô«Cº¼©wI Q €Þó}ñ[EU'7!y! Ý[fŠ‹xP×Cá]±mŽôû@U½V¯…tlÿ;`ã¦jØAðnÃK£…†ÍÎÞÑ�ð*‘EUAÅJ Âbƒ©ùeœ*}€2?Cˆe´ü¦“d\‘Œ–8öåõÁ#@ág§bN§àyãâ …h2[Ñ~RNlxyÏs#ËssKéA³Jéu½”yÉzIÐY›=‰Ý§ßÃE"î®ò}¤f£cûÔOZ£~[/j�¸Š ÖJ‹B–³7.曺z]Ü÷È”/PÒÍ‚òë¢ðA†h9½Ôµnm¬‡ã-^e”÷EɆתnXÃÀ6êg̠ϰ¦>ËÕý-}=³Û§ÛÑŒKBôÑƀó ŸùÑûoÀ®Îøt"úæmUí�5NZêÚÏŠLy¤q«ø¸f/ œ%è`ì«"å¨ÿÂÜYŸ¼KÕ¦³%E÷E·|tâÂÍ*°æ±ÌÒe\™„9gs@ÑõJÚž3äî·ö.H‰«Ä?É)WdHÕ2îv�—ÞX€Þ«Åˆ¾ójòÍë—̇ÀˆDÝŸÃÔ`Eäí4Q2€7 {Óå#ø ¥øLOn÷rLìøÓ÷<€÷‰0QÆAYÚi»5âû`èì¶Üê,3rŠo)V¦à~übwu>çä^ëT_¶5QzÅ&^>m$ÌẨ|jÆG²º�‹Œ×eãÌ<Ó‚ D\7¾èØ‹} Uû$I:ÀË1!²tlX%×.°)íÑä¤z’§´Ú®A»uÀ\}äêlMà ª®s,vÇǹqùM’ÓL~Žu š´„ʶU@†»Ø¹R¸Æ²#7dL&D梇wŸ«õfv³VßÁ…I‰”n; ¸AÿæÄG9š6‘&îÆêÆÍ N*¶®ŸHÑNJža WÄaDË¥)⨧R’j²Ü�ö­í¡ÊmßT<Ž‘{lDAåÚ�_Xp‡Ô¸º ÿ“%ñ1 ¯V|gÚ†c_åûj>¯ÕÏš’�GíŠ\®¿�8󢿲ªü‚¢Zi¬� hc¥ªúÇáFfŸ|Ât¬!_a;¾äšÜkŸ¥B\¥v‰ÖvÔÆhh¿·[ì›5°ƒ™Ól7׋=ÙËÃÈ#: ‡Ì<#<…sß$ ŸÓ4¾¹Ž õRøªOaËA£â”4OE[w×Zœ÷;ê{Úbçé¹Te@¦+üiLP!Žûîž8rXÎA§‡¼zÓER öÕ6ñ½Û¥~©BÜÒ!¥CTü3q‡Zâ��دÖ׿7üW÷§Ïì¾Zy¾lMF@­íSåÔÄP_7cÅåbœË¤G'?÷'¸|`›û@fï Óò…¸ÿ9°À¿N·¥£z÷ØjŽŽ+É�»7á^GÿOw®r�Ð�q·­¶{=ˆ1É2{+”ô§^�·0Â�~Åž„´åoLmÃbºŠÓlvŽúy¼5�¡ßoÐ:ÙE.„ t×ütŠ\4è•£vI¢9û>Æ{ˆ«Á#¡¾æf4õ ¿9º‰xK ~þ¯gA1’\¨n͉ÃŽM\õ2ÕýQ>n¥LÇk_•¶BJSîïWPŸ�íñ¼/r´=.0Þßšµ†ÿ�Ø(è#lV•È¥ÜÌïY¥Wi¤Ú»öJ%ósß”^6!š”;飼èÍH]-Ïy:²ýœ­º©âÖDvEøL{¡ñ�®1äìSMˆŒ�À›-Ò¶� 4oËò¤²(ïM2Áö½‚ÜiÕ‹ê;w¦¯¿@Bpå!9k·Oß"á{�ö-ø@[ü’Ú!7ØŠÚ;�²Í°6ÿL”f„ RItˆ6QÕ¬/l“Ü„ˆúå4ýó¶ÓøUB‘Uóž\ cýžãJ¹�øŸ¼oS—sR)÷�Ó æÈ'�®·þ¹9³ xã¾Æ·Hª¾–,±H…-‡8P™qöößM)ݬj²zŒr›/^õåû³“ðнCðéÎ}¢�°dã¨÷¶Ä^vk‡]Å^,þ£O2õèá�Ér&} ýH—Ût( Fø^�`ì0O|+½œMƒ¢ý„vAû+ä~µwö ³ÕåEÒoBF+BÔõ顽¡}É© 3'óØÆÆ;ÉÄõ-ûÃI´¬Rã7¼ƒ3«5ƒU5· 3qQ•Pp9»pŒmIe··•¤)aŽn§¢ñR9½E«{3¼Â̳UfQ­)gÉt¢Q"å»AÂã��È]µ”ïÆªCv¦éøÛ‡¼ù J£ö¹þTH½ï﹎Nì³Èr 1G {ΓŠ«s£�£R©pˆCý~]Çûì  ù|#&n`“Yߺ¢mÆæã¼Ûìo®]„[Lî;5-Rá<¬î»gúpuˆKÀ?a.à•É[BýðüÅÕ›.‰ž¶¹ëHR=A ;q�uu�ôVVÊÊ„ {”¬†Û$ú‹D“ /.O=aW\p.cHÖF^S=#€öÂØá�Î�dÀpqÜK][Þ(iîrØwEÁ´×í7ºùÌ‘rŽè`/ÈŽ‚»` |=ƒØ°û±g'dÜ?ú+d¨É’tjM[Œâ’SØÏÒ8žc½¼Ǹ҂õž†Gë®3ú4ÄËXª9èâL-Yú}-gx% Ç#lÖ­ð=OiÝõ—�ÀÇgÿìt Ÿ4àŠÞæ¹%¶$‹ä“ûr~°ÓbrZ G�©²ë#kÙ=óa#µMúchzjËVÕî*¤Ëoš´•Î»UuDiðK ¤tå×jbÙ'¥r3¹U2gW4—½Ó¦jn9«!FJ—Ž;@ÇÁ/aÎéâ+ÿ78œ&íž2¸qOv¬»åSIjÐb‹™ˆU©ÍlDT?O{w¼ÂKye ÷K´šž}Ûš.„›nwFÌ:ä: ÿuÔ z6úè£ú�Ž´þY�ô• ùIÚºñ.S;ô-÷ÄÚ„ÉVQ¿[™e¤ßÛK–u+¥Sp`Ãù&»H™m2ùŽ¡æˆñì6b¬—š7ÖVêrX °ŒèèÚBQ¼‘¡@hAв³ÿ�#ªÎÉê‘&ˆ¾;5vÜgÌã�Í(ÊepÅ]˜õßX3f�*TÒ&'r�e˜4å;"öC�&”>~l{ô›Õî'Ø©'ÞoSsöKhTгÔr¼ÝWËïˆPMm …”þH9y`ž¨D°[ž»ýðÁº ºC'¶ù£(ÀâØ0*ȃ ³{„Ë©Nß}²©q<¾~•ÒókbÒbˆ?øjµµÁš ö½+Ñ1ÃÁ{_;ÊÐ*}ÔÈ°È ¢DÚø”]•·c„=–ÿK‹-b:Š ‰‡’­‘ÍL“ùXᅦõà+`€iéé.9*>ÙßÄyÞ~xq]¢9/Ì9÷Éÿãt¿6Чð+Œ%K©‹+C-—¬ÄNçX÷ûV¸„qp!^ÉøC—hh‘!QÞxXe0UˆV¯úX°�@[ýƒБøÌ–åÖ¥ë\` ´%/güIošü9ÙÔB2òoô†íRËîƒTæ¡à2$×òÀ xD­Á; ÕÂ`áaËì¬n T…^ôŽk&$BµþHÜKÅ Ÿ‹e:MÅ÷¯ÒÎO˜×M ¤3�¹]ý¬8¥~,ÉùýW9ß5å#P#ÂeL!ñùQƒÞß©.zôÙYi‹æ”ÃPri[+p,ýä< ÂK¹ÓCZyþ´ûZÂ_–§Öq YÒ°r¾r Èê�×®‹gdؤ‡´aãÛ†'冸ºq6„üÙŽÔð"vÁ=_“ó%øIéÐ�'ø8l¥k) §-ǀ鞆&Ëѵ—Ý�´ÿÞ­dÏ)q44\/pZ"Ù1~^{O¦ÆLâ†+p0��n>zvVt5ÀÞ^�M‡ dŸ~?"¦÷Ffy„y§­HŒ� J�f ^›;T¥•;Ìlw: #$áýší�ÀNJ¦Ú�©›«Jé[€5ýç‚I³Ï rò·¾ØOw {óÌícGfB�r}TðæTÆ´o‡­ÞûV6aøõÚª:Ï?Þáæâûï!Út_ª±‹QU‰�ð c«)åR*s O쨿gÿÁÜJé©”RÔá=iØuTŽ^žšè­~ïKMÍÍ}¨Äþ@GmŠ™Ø¹Øæ{�éßf_�Ö?!§áÐp,ÉëÂÌ­—È•­‰P€†_EÕ„ËŽÙ+Ø­i�€;åg“sæDPì§¶°ø‰“Œ¶/¢§ö&dt3Ò¾t×ӣʾàL$Z—%÷kæ½ïŒÓcѪï�ëõ.—_»Œ¾j£Ï¹5z nPÁ<;¿«Ô­[ˆ>àmX^ƒÏ›ùñAÒ¶'˜‹øW(V�£+™y}_|-㣑ùÛâŬr•ÝáFкL‰ž�|Ø-rºªËøâ-ƒ»71ÃVýI�ÒŸñÉb¿P[U,SSAv5)4=ÀhE~LÏ¡Æò•á—u¸ëy†Oy¶'ÿ¹ŒMFV8AAüÊ’JBu†!ä*ø¶1Øc.`ÆÛN‹ÅÉöFÞ±¯ö'X~êå÷HŽÌ„Y¦¿Èî{aQë.æEÄxWËR±'-JÖ=j‹é$eÊS†Dã-Û¡ KSnqþâL„cã5jËl¯�Ö~ªQqSW5É\-ì½Ã¡êy7Æå˜ÅÓc¨4ëPôOsaH$ª; Ñ)&¢0r�oùŒÜð†¸ý�Ò)oËiYþ”Cz ]!¥b«9~ÅÂ]IrÒœ�(™¡ú´` zOG•yÙϲE8{&üuˆíAíëÙVãΜyñ­Ò‡�Éø«�·y×ö.É—lmíÑ PšßA¿Ôë˵Ë8,à¡Fѯ™³/Œ2Øþ –}ÌÓ ˜RÌqbŒÕ¢® U.ªÆYeïI/½)w²p7�cH¿`�0Qå‡ã®�†Y•+Ù É#öÔÊ/_Ó¨Œêÿ ÊÄ=Õ] èÅÑ�B¼$¾Ã<}�q.#]j‚7@ñùØcÈáª>œ€(wÀD|džyÞÝØáË OO ºo›ÿË:“šI9Ürý¤€¹ˆ.Ç,»¤j- abÔõ>ÏT=¼ ÓùWÔ×òðD5æéŒKµþX�È7ï ÐA{ÿÀþ«Á'mÿÖÓ·•|h¼ÞHd·™8^sCy åž�¾© ë¼+‡ àȸP‚!�MÁ¥õ!~9¹’1 ½6ƒb‚èè¹á±ÿ¦„ÈËÍ/Û�y«ML®3T47LmÖM?ÁDcåæCó‚åNÙdu—Ñ÷ Ý\u*¶:ï´|}ÔS>r%5ÁÂeo$¿ž'ÉPÅ©]xgc´¹H9£½ŽR€F�iÀj¾ ‚T3s{¸Œ|î"|\õO11díÀ‹ZÝÁ¦P“;äµÎ�÷ «(ª=b¯^·%DœcúÔÛ€xâj‚¨D ÅÅϲ¸Juä1ñÑ¹á›æIUó¶˜úÒ©óh§Þ>l>u&k ¶éRÒøzå 8lÞ çœg*åÀõ1:RÙ,Šê$8GD0 ‘çµv5eV¼è¸¢¾—Ÿ= °kàß=8Øâº{(Ÿý˜Å›Îd[ÖÚaJÁ/éß“ ¤Éè�Ä“'y°uÛ§–WåŠu¦sðø“…(@ØïÁ?v×&–…@¥Š–�T›º[ŒO�mØ:ÏC¿fó¹ÉjªæeÈ6W ²• ý‘�Ä1 ÅT‰ÕPaþk‚/�Âê¹ c)>‡?-ÊÄ=P0C„šL0¢~)žÚ‹-pÇùs™ µáÓ­§jÙOÁ”R_[ÿåã E)ý)%iÅjÌPãÜ sè¹sÎ ’…”’óðó¨{.5m©Cl>ÅV(d2æ<—ümyîÅF�÷K<Â%G6qS`þ¦J17H”•w„>­]áTµG—Qå>ÙL¶È‹ �-PE½‰íUþã¡ÎðÊä—{2_«c¸ZF‘¤ÐÇ--y!C_â^H�Ùx¤;Œ ÕƒÆ#gôý~^7>ØY¨pÒGnÓ”¹¶°c›0WâVÝÉ6Í¥ËúC"} ÃÖöc$í¿“E¼4mxbÍëJœ+ÈJŠ8È_D5�—>Js™ý‹^j?ßòyßýœ(ê#¥â+Ö³îTßLè‘Ûk2â �Íí"ËoätÈãp1µÐ�piðª¹Ó‚f"•h6·�éÀ†ƒíIÎ%:z÷s<”Qà1G�rSö}ÕßíªÉ‘Ÿ¤KÚ÷FÃ¥·!ƒˆnäØxh q=kã$Tgº… ©�§%F¹Ñž¦-gâ D“ÚÃÌã,¼t>„±9šõŠÃ0º@:‹Þðó|ðì+¶“ÙDx!¡ŸÀÂpôHz°)P64”ðÙóøŒ1Êçr¼Ÿî°@¿K l) ¯ €èD¤¾àKk²EÊa—k Ÿ2ºq´¤zhão³üÓ˜A@*4Q|Bצ´‘mrvþ¯Ô$Ç<§¯¤{±¬'°lÜazžm…ÌHUn°tÕ¤Ì|ääÞÄ­úâoÄñÐvd“Õ~”êB2‚-!CøÉ!&²K>+Í¢Çe Ôôqj ]í�>½}ÉàÒF §Eá€ßÐ3äX(¾ñòŽÍ™ÎU9EŠÞJ?KõÐÓ¬Ò%¿6™YGx—Ô¡®~Fè‡)ݘZõ Ë�õ@­5îeÁdúE$l.ø ÿ¼°"~bß9�í¹Ó.Xí=.•zvŠ3ìdb¾Ðçk‘j'ÓÍ'TbÕ·ää½]Ä«É(öÝSX‰%oëÚ¶¥¶š´{ÕCEúó%±]]!­²T}Û�y5ØîcyEó£Z(ãˆN�ãòýLÊhA nä�Q{:|lhÒYrO~¾�‹Ã©Iø›�°žD\ypZ{ÇÑ8ãÒT~ÙÙÊ¥v’;àú>|t5¥p’X°®QƒË•¿gÞöÃ%–>­R(4 UÁ¡”ªk�Lô-·¢ŒkÛ`|‡X"ÌN=ð= „¸Rfž^8ê7®Ç‘LÿZîÖ)‘kþäè_YäÓ-I˜«â­è¼eÕ�£8 ’ý4ÅÄ×™N£Å÷„oÕ*m7ßW3­5IH@-ûÌæÚaÔ¥ƒ;±&°- M¬4ÎØ g8)íÔŸÉáª&pºø~$Äv@›kÊ }| ðkjüPàR�µx/î|J꨺wÐä| Š[À†ÈjµK­…6qŠ¢#ÞyL¢NG&´ %üF â@Ô.ã/©üØV{‡™‹“)\j‹sœ `ÝXPÓ´ŽÅôTbmÊOÚJ|˳´Ú™ ¡W*[ÿÚì²öý~öÇVŽ„*ôÈ[¬�%”Y\ŽŽÃ·»WÝú`A×]½~žÆ÷O¹Wm¦›4g‹Kn¯èéã ³$¼yâ"™¸Ý(íÑÙ¡Û =`˜6â®F®·Ëyˆµ)¦Q[8©}8hjŸÊ> ‚tˆ Õb íS-Éu³Ð�£Ä@›‰Ó¨Ç ;j×BÒ[0Ž=½{›m“ XÒTë«r(BzÊ»èˆéd ’ÓoÎe…V)Ol>“‘ù\!T@{çât»É!Ó4©G€v×þ>°.W~Êýáº|…ÙŠ MŸpF=#¤r©F]¶=ˆäþŒ8}Iþ�0‰{8,–£ Ʋ4´ð*�»sw• lKb@„­ìŸµ��É;?fòm¹wÖÁýÆo|‡rXí°r¸„GXÑÙ²R¶ ‹~ �­ø@Ï묪gUê䆮 ;2Ÿ{÷çyƒÏ˜îè{Ç0])¥ÅŠ ÕÒW|–î�XY6ŸSF´£’RQÀða.gUE9ãÒ‹¡â×8Ì 4¡ú¾yÚÕOáQ±­Š}np«Ì ¬"ëj�î„ÀÈ%xÖEö–¸Ó»¯ –EOÖK1E9Êm�N—Õ'™ãf™c™¯e¤ÃK…c ¯»qS{ÒNKtÏ#!{—¤ f•(>Øâ‰zäY󻔇�£à:ÌK!ko RRlå�&Ã6–š˜ùcž`'HÍŠ´¡=ÀÈFm`ԤܺÈ8B-Ås’¼2�»»þZ SÄ/ESï|Ð3¹Ñé­÷é];”˜&©£BÞ­²ÄäíÌCÁ-²º„‡èIwÆ{¶’ò"�2»U¢Cð ^­WŸ÷�M#*9ÎÌoÉEÙÏ·Hpô—_íüþèñð˜¸(Aé:áó¸\ ÿÜãj½ l%6Ö„‹i¿¸QÙÓþDWPœ7­àxjs“ËãçW‡BZm¡Veò¸Cw[ê×*�ÍÒýN©ÌD6ç´Îl1w` y¥¸®å¯s4,'M£Q„ì“ú…С—>áògdòW¼ýÆenkñ7@5x½�ÅŒÑë¤Uƒ?¹ ~s�«v/ÇZ⿜èE2ì:×AfÕê:°~&©z5ýÁûäk;ÂÈI¾¼…&2Q%nX¸ÕNµðØmÄ÷(o¸“äg#q§žßø ”ϼ<Â+û ÿˆ�v‰¯:t.|ImA&²PŸˆ*Dç;ÏÒa[­å3ém[ëäIǨÒÀ½²,mz>ä®âŒú[³‚0p¬FU8“~£/Â~à#f:ódáÆl‚»MÆA Á:9˜ ‡7ÆD†S‰½pVCâFVch6? /.¶ØDoB…•šAåþê%�ªC,‹«E'‚k··½¦Ô}½§¡ž¹,â�k|)‹�#í•F+ŸUÇ`ôvLñ˜UÇ&Û¶¼[ˆ~¸~ÿÓ©.ǨT P®¦ø{4÷Ñ­9¯”?ë7’�YÏòRAPãȬ è’àªá/î‘Ͻc@û&‡–"n¯8ûnì >l'ä¶ãÒ4ÉýØUˆIÒ]Õ&bÈaÕÒo(‡t^Ê�þ �|cÃ~ tsË�¯“ŒÊ¸žc< ¡Ð?,‹"œ³t QûŒœ–úØMƒÅ­rqÊ#Ór]xR¬›&»Ñ€²X ‘ÀÏç fB¾´G‰1rÒhÉçwm-g·T<)Êä�%¶&{�&¼‚Ÿ‰Ïj™ªÆÞPO;VRÚKo ‹Çz>Ší4—[u‰"_|±†eçc‹Ø³ºüÆ$· dç»L2õ®N%÷N}¯ùFtË€Å;ý8¡ Ât³ƒÛ8Ðç¢÷N}$)Íõ«¿“`-ÆMOSï´«P²Ux?ÖÝö>™×üCòÅŸ V„qÀ¼MlÈÞ=û¸•/ -bw]ÅÙnC Ëm�‡üˆö%e<0RN–Í ÙÐÓœòX ®™oO{äï½€b5Æïž2…}Õ†É�‰˜qß›çÃpRaç^;— 0ym§Œ™J¥w‹Ö:oüÍ#¤“m%¢HÕ“uÏOGØ´TÜÕÒþÖp?g BcíaOüEÖYÃ.ðt•ŠˆL)TœÀuex^Úª'ëøÈá2 ï‚§»éx5G$¿*Š0Í—�Ã÷=­à% ÿà;ÉÞcu°µ�Þ—„özj�(jžÄžH]þâæ[2ñ›­½zë¡Õ¨àCÄhŒ“~»êËâz šj}Ïù^Ê÷–Hy0EÔœÔBžmQƒÛY1V €õ_¯IG>vëËñçÚèLæp2׌,èõꌿ 4)o;6Ï“RÖY…¶ÉòTv­Æ|ôÇ`–ö_Rwʘaøy‚®wo*ŒÉ›�€¼|Ð É%lj–3‰»íVª1�Æ)]d…Á•Ì+J)¸ƒàÀÔÛkMy¤EG«Ÿt_ ‹qX:ºÙ¸ÚŽâs‚‹XÛ‹M~;@/—4Ó\ÿ]ãhÀ¤åþ‰3³þcèÙAN!½‘ÆþülKŽ­ô¾}Ùy{ºç¼ óÇ“sü=5°X¹Í kmô‰( �è°ÃÕTV.°˜dôú>'J©Â€ŠúɖߨäHX6névíÕMÞ_®m?Í ÀNØÆöê^ÙÛô…Zò*/AY“&œ¶ÍåZr/D5[òîåÀƒŸ.¢…Ô[ªÀ[[KLj «\b´>ÒXË+~ëÞ®1€„²"„î“Cæl‰IZoŸ{óº±hQx*î[5m+uÝ1x«›ÌUc5 ·7gŒ]{#þƒÑÄçûàh°Ð:šÊ:{Å -æB·pûLxÌ<öX’€ó='ΔCÜUVª«m ÙÀ‡¸OÍ[Jzc:­¸%„ë:�£­b/%P¢Æq¸ ½PÓ}¦'´øƒÝ _œ &$.T&ßÄ.ÿ‡Ê€‰BÔþU E"UlÖxgUYôÏ—È&* îÒzÎPëË"ÑŽ›ã¸š ö9«~ƒò7 ÉìÀÏ÷<ޏ0ág"ÛV»Epçþ—YŒ1Ûc�MÆ:·é�þ›F2{Šç´ÚŒk¯ŠrÏ苺rê§�È=™Âm ¤7&2g3^�*ò¡×\hbqá-ú ÀDÑÖ«µ úOépÕFß®F¿ó²ÈÃö[]D?]Xi±ZBÀ r½tý/R¦&3zø®”#¦‘þÒ«}°©œm iŠ6ÇÙÞ“O çräê‰æ6üñÉÝÚßéüy%×{¨OD7Ñc ¯@µo›R4ø2"Ø#—¹!VïEòJëÞSü*í‚Åíi@ó5¥Y•­}—IÖ¬>õ½Ü´W¯�kIÁÍ*üþ~³ºÃrµ[ñ€X$¢´r{º”ÊÚ‘„¤ìÔœõò/b±Ëå·EÇ’í“Êæ 6bžÊ­cQÐâÕZãÐ?jÇ#`kßX,àÛg¶4}á¢ß�þK¼XÍ8s"³—Z„ÁP™+RXÂGWK@þ¦p ª" d3äÞÄÚµö>…�Òm+ívö ,åqMr½P°XvK˜V Æ@p=Òïý¸yÙ:›Í×.¤^µ‰r«ñÃÆøÇ·†ÂÁfdú ®!Ì^´&µ„fUéIátŒä'}VÀ½z¨u´÷OÆÉ1nÇâÄ0ä×ø«c6}ÏŽ»•]§˜þÅËjå_㤚�º¬ýÙŽ]õê¤S@"ñŠSßtó=øõ('a÷`› •–ø<†ŠÁvkJ½,Ö˜C5’¡Àn`ûZV¢J—Éç¾+^¹Ö–²¯K×|A£-ÞIDzîé�*µå ؉d¿AŒr¢cj§€…j€û@Þ .J@¹Å–N·?4(Øä�;]²-x«Ò‰&¿óè6Ld+IÔ«ø’\ÒÈaÇ,®®¢óQÕ�x”Éȹ�gvÚAÂKŠ·ÂÑ=B;/\¿¡Û‚àèª$à…[÷'�]J†®`úv4£ËxÁêñá‚0ÚˆF 8·ƒ`æ{'Ê6’}Ø*Ô¥ëç\7á Èʰã¬oA: G•ŒPQj$$ˆ¶cm¨øFe4¢»j`«…U½%äµÀh3YïѬ Úâ×Q»ºùwÅ*˜óöJ;»0'>û³|¿Ï �oç_FÏI·‹ÈñÈÓòB›RÑE­Cí�ã ’ Ù”„�ž¸¸‹<ÛþîM°o¼g2ØÆ4Ó\”µ0~B5_ ‹�k¬(ÝÖcw›K›yÍü{b8ŸíÕ ŸŒ8ŠœÑÊô¥ýJZ#lÕ‡!ÄSNwáë/«ÂU†/d^ «_ådE²­ k«{9G�£þqÕ_Lȹ4»'áæ_Ú:¾5«Z˜¢í�Ü‘VŸàZ³ýã)ƒÿ@d#ö‹YߢúñV]âʹâyˆ'\ñ´:ÞEˆ� Ûº�:ÙàÕ¢é§Ò=©; –x}É뿚Ww22r'ÎPؼžÑ.n2{v¥Û3 XS•³Pš1à ñTžÞ î­€‡3�ÖÅ•ÄÖqø [¼ ÉÂ?�«×;…½®9tÝ×aE”µÀ5‘‘#Ù3>kÆYÏ&¸r$vª÷Ø‚hÅ…“ýÂßø¸u"ß‘éG‡¬�ÂëcÏæŸü´�½!�¦Gb}Œª@•» š9ZÆ ®�Í Tè…Žæd~—3¤öɧîÞy8`¿ísöþ¹³»í©Ï?JåþóDu¸YÚ-Z{Úã°ë ü8€ëlÆMº@¼V3ô]#iK擜Ì+¿À2”ã×µ~E¢PŵÖ-HÿyKYÏ Ìÿ{õ�yuÜD”L�£P“=% U‡bèæW8aW‡Ð’Ô|˜vœ¡Kí€ièÁ•öqûTš6V‘ôŽJÆ~8<N?)Pp.É€rpµUIæS ƒ˜öËÊÂóžú¬ys¨¤u.¬o5œ£°O ƒÙœª†ÖùH÷µ~xO=±a™Ý¥�;¸À/arª‘¿�Ûð—G¤k%¢¦j¨äçUæþ¢‘/¡IÆ„èX¸y—Méï{k¦çÞR/Œ³TÖºŸ*â¶âºÄÄhsíäÈ�€³®¤ùçâ;®&l˜}§.mºÇxÖêï,„¢Yãòp.f[zØE§U‰ð0:ˆÈÇðê\BÈ®O$Ê'…Q- Î@«À@¶KÓÄàrÖ~HØÀMäó ó�gš_�ËãaB*›Ñ˲>—ÊÌð!|yDÒÉòÁ+ÇÏŽ¢úœ¯—Fô‹k$~&»C°éÂÂOõ·S4J|̱"Ñ Zä�d;£¦�Ãà��U²çíÍ…hBòÂìíõg>¶~T�“¿åÄèÅü Ü �ß”Øí‚V8°Œ@g·Sƒ kgºÚÝ[�Ðö]¢p–ç *Å™4ÈR§\;A)IòtظêôG,ú&69}Y_¨3Ý«ñ,0âZ¡tîë—œW:�[ÆÝ�¼¼&Vío©ÝTqh©Sn{è 4Â3cqAµ6F1y[Yˆ-â3 Á`øK±ÙË‹xSaU“ \‘°‰ žd*z¼âÿÒ5$±À¦®œBÓƒj¾»,4C§h,#Ý|ƒÓ¥uà®n|DãÇ>ÎRðéÎ]ÿ‘qúÅEËjÜQwÍ/”¼LóVôw5ᛩ4¨ä-/_@ÒJÖÄDW–ý›”ÏãÁíE&ºgPÜÓÐ>x`Úv”Xî”nÄÿ»x†–¤¢¾ªÌ`ãs {$o»hqƒÜióN-KÞúñzçÔ§¥u(ß*ý%ØÐ_Ÿ7ÇÙ5‡=뫞Ä*ÇŸÉ¥rþ=£n8qÚ¦æÕsñ ËC÷OÒCr¸o¯œ-!m(O½w8úß_ÍdhÇàµ^IÖS€ßÜUaå9™ U°Š-ç"‹~¨Ö¦ÞKïWÅû7ãszÂ~HyõkwãÖ’k«w¡éP~×-ò)Ôu¢UÉ>‡ÙºùÀîüXˆâPÆõ$-z£­â|µýŠ—ùÞ²×nSC‰Qì½âÉyÃ0�ð~Ó¦ ò·NÉ=vh-,ÆÁ‰NÍn® a‘:×òÔ�£D’h 1Q½æ¹¦Tã:ô{F…-˜Šœ™ ÐK‹ƒ¬·ö9#ú"õ³üþ>q±a÷š®P`RÏö#X®œE.“:o…Æ­j“¿TþÎíþ–+‡¥äEº{¦ O~¯¯î`lô!8…'zøë•ÂsÔ|þŠ™Ûºï% `cñ½\Y ÙúÛŒh×03Ÿ»ºø(Ï£-v $µÊö©¿çrÜžŒ|ªØ›Ùö  �|ËwÇa„9qš–Õ'�Ö!ËŽ'f¶kp}h¾�§=AûkýèËþAÃZ,/¶/½–ʰ3u‘¹¨ã-QÊSIU”gÛ4ÒTI˜ƒÒ(`·eº'„ƒBIcºgiñ9�°tšä˜<&FÖ8¢ñ[˜Ú AëÕ>>u�5eŽ#ئ@ô¼(_�@‰ËÐ"æ¸WÎyp%$òî8€�‡ÁE&o¡0Ú8àNqlUö¹¨�1Ÿ":G.{"çöxy©„óqŽœ²²Ír褚Nýµ¢Ì»¸w%žMùhh›Ý'{‚…N“ƪ¶Éʃá‰ëüyößìM�ájÓ´�gÓ­‚t³ò²x <ýR³F•eV³çý-Ho'u€ëÇåks£ЖuábFRØÛH™!b)£âùú; ‘ôÀÀDué­*¯:ÞÅ©¿VXK¢¯M/$õA!"Å~ᤛ%U,Ì„W9_BºZj…N–Êòy;mа Íáº±ï ¢Å¢®T](5™á P^Ž”g§aöùÑ×4Å)½ï–híPÛ¿<¥\mfÊ„z;(wR³4_?ˆûB –Y쓈?1Iz?°ß\ݽP.N]'ÑJKÈœÆÕG³¢ÝÀ¢<²t�à5¯/8u?rK¡åWîã˜ñDxÚ_U”à¸7Ü�ó Ém CèÜ­çxŒ=×±â0Øf�)Èâe‘L®ØS†ÅxPã/àž`ìgDò’)G ¨›ò¬{ÛníÇë)»¦]òœ §ÉH¶.Õ»wÏÎ~óG�ªð#1™ l„0çèÂüòÈî�Øeÿõ)4Ÿ×³vD\·Õ††TXäØêFårÝÓ®ÕL€ Òc;e»•EQ�S‰}æUªÁ* Ñ\%4š"¶î¾ÜSŽ~>*l»Ú7MÏ}Zj[w"øEÄ”Zóì? ̰®N¦V³ä¹QÀ•+¬eÄòš“¼NR^3¿ª0"úôÝI;·ùåƒZlûL®B%b^…iäkš`b !ö2iÝ ±pØ Í©² Ï ¡#ÿúanä‘=äö@2* kðuÔŸL”KÞ»aï¾E¸Žæd\ã› <šö1T$' Ä>ÏVñŒóz Ê)¬ì‘…·;øÜH½Z§Ð±=¹Ã /³¶2:E¬Ì×Lc®ªŽ"{„år5¯G]9#2}®/f×3%°Çc²~Ê=©­9=âPyM~þ²êÊÆUŸÞº¾%›ÒÌ�O™^O, >¸Çç1ä�rÙü�<\}7/~“´Æ$ÿÀ©/`”qÅðf¬?¨¼»M ‚>Ív(¾qì@y4Š^™ÈXÝVHÏ–…(çeU¢1Ù[1�ÁrµÓ­,ø£h7°¤Â"� ERMG(Åëª�€ueÄ”X{îÕR΃ãUÛš¬pôo#ÖC lö Ò²� o=óéŠF> A(ÀÖ¹#ø´†�,Ó�y9xµ�-†Ôq¨,HI´^Î3¯gȸ<œ_«âÈiÚ¾Û`šGSåöãË9—n*½bRÚ4÷6SüeÿÔdÛy‡¹˜­–*[ù£(VÇq¡¦´x®‹8Ù¼š#Ô7ÀÑaò°<=·Cª#¸m?ä?*ºé…©‡£ÊtƒâLù:9# ŒK1¨0?ükn—%p€­¬éñ’ãˆÏÞcp÷ :’t&i§Ó·øíƒKT[jè1*‡&`9,÷‘®z«®~pÖПîÀLÕJù$ù‘–ƒHWMB!=÷þI¡ô`¦5­ßÓóEÒÄ2­G\Ð]ê}º˜¡gÓ¦ÀåB²õF„;ãïR)‡¥Ùü`µìa·jí‡/‰¶øâJ�-%n«<°(£ãÓ9X0i �,¶X?IþÓ´ :¦ÀÞA>ÃùË…grîû½«=BRZýØ÷‰š«½¤uÓ+ýd�0³©› Bî$H+õ 5m¯‘µ±C�»ò÷¼ ,X"FË‚ØüëBùl¦+ÛÅ“¯ ¸˜û7Kö¤ þü8ÂÌ Äè­f]q€yì™ô˜¦#ÔùÙ´Å}IXÐ\˜/ª~‚9m'Œ’§A¼Îh@,½B=öœŸ„ºí9Yµ Vc¶v¥MP˱àÚpÅÁ±Ü}hªÝFææ­tåðÀ.V:V÷Éñ¹àñ‹N‹{ì6oiuŒ >¿[T ,¨×~*¯XޱÇ7Uñ~hå.ŽÎY«KÅåÔ!â†H^·9HäéÚ§h¦ôý`'¯+�lïvú¾fe$¡«ÇÓK mi/N<Ž?Ô‰8Zñ݃ÊYwº×F(ÂÆþºÒÎÖ%È6Úˆ ¡åéÿÚðý˜ZEKÀ‹ äõ P »Š�¶â@Xß—oûd*Ì B9ȱ(ä¨#½¥&h+¿wÕ…`:0~…¿KgyLø9‘ú)ÙÛƒÛlš½ ò˜1¦¶ ƒœÈ!û“¼$-NªÐM£ ð8¨\ŸJÕ%e,ûÚto²–Zpf3¢I0M­¡÷3ã­Ám½§°è&yEz³P„ ¢90¼HJo€¾_bÛ…ôouíàÇí쑽R5fЇY.âC¾¦ñ…é‚Çóžò² 5k$ÌiÞì+JQŒC¤)H©×ò8‘Vž£¦dàð!¢ÓJUQÌP‡$,[8u«†ÇLƒ°�Ùª¨ø ŠàÔ�ÙûÖøA³ôœrÀ2üešÄkßZjð„Ïè ß+hÚÒß�¯%»ÂŒpÙ©zF™ñoN�]ÔGT«(…<_Ù}\òE±¸&ý~»qÃÓC¼�x¤’w®j2ö@Ž8.Ñ‘+¡’¾|vçÛÿò:•èÉòr+}¯cud½ÎÄDo!¼4¯Ò Ÿšowz×~[¥'ƒÁ�u®«Âò"£¤MS>±˜}áiIŽÖóî&…XÆ­‘ÝÜ(H«}HvQ¼2^:• gYå#ÊØaõýs÷¯m¥lŒ¥9¶©¾VË�Í¥ï²k!m6¦F×}p -ÒéÑ{dBÖÞ{¹ ÑGÅCù-à?=+µ^Ó‡ÖIqÜ:Ò&@¥Ó‡ë5͵¤;5ÑT›Ã°ßú@Ãh¯�†’ ¯žWµ¶LuÛ€L€|¶ŒŸEZBGÙ¶Ò­bŒÅƒ wKê¡õÂaGßQ1´Îýj¨…)תY¢NÀ†”•ì`â�Î/Ýò׊‹œÂò÷¢"–Ϊ%Úhuær1o¸kxòµ=sÀ£�Â{NÕd©Þ\c æ¦ôÄ�Õ$ÃÊO+õŸ4{ìÛ•ŸTX™¢ös»º¢m°ý݉â¿*~¿ÚwŠà!Cj†ñ˜J¯ï`ö¾…EÈÓvõ˜op”¥ü8ŨBlÂŒ߀U½ìäÎu˜)tñĈó›zS¡|-N¶Ïvs¦ÈŠú˜ß Bo¥ÒÆÈ„¿>BÑŸôœn<Âl�¢i¥û… 7EíÃÿüíQ`èü©~\“ÓÐÅà|ç7YKèHo”aë*ÇS±E¸#Ë2$@8,cuö¿ü8!<zmÓñbø�múçù9º‡¼,'R¸:ºã” 5£°;0Õ¦}Úú¾õ‚­9œäoÑÐø%#àÔŸ5¢Ux�V€+QÚÁ6L"”X–׃FM摟!p²üèÀØ�‹Ä²‚ÇXÎ…”Þ+¯ Z��ö×Q Æ•¬ÐÖölouá3*Sÿžæ‰œg?½QG�š?­|[zº ô|3ödT®aËÊØµå¶þد ™™í>­¶ôr»4žÖ—°>¸^ ÈÿÓHbC Üã¨Êf!ý.À¼sV2V:óE@àØJ“QÏUɨo¸EÞ¶[ê[§W )CX°ÖQáû…¡!¸¡‹;e‘Zð~æÊur­Qâh[2gjÀ-}MÜ®ÃûíLö͉‘²MiÊ=ÊwDdiëäˆC@È�æ«Tom7ì䘆ÞñW6Â’€c~ëK^ä¾·ùô}¡"pÏØUò“ S êd±3Sÿëå·HG6ýµ8$q83t3\ö6ÌßèS,Ó_G‚ á;I¾Lfg ƒh-YчsæZ=ïgWF5b7âFêÙ` ea ÑdV° Á­_ã…Ѭ•kÎr ÷ù9¿ 3í\wÅ¢3“G~«nЇwü—]:üa*õ €Ib~“9¢ HX)K§&f„£CÕî½äÌ •ãNõ/¹}@_©O DÞ-˜]ÀvþÑ¥ÁsÒ¦¨�bBx}×÷f¬výŸjògê<*Kõ�ðÝšŒ|Ý�Ü=Qµ_µÿ› …þœb–KµåñËr£¹X�ÒR•þV×î8¯¤/ ¸SÄ—ô÷_÷)ª© ‡¶›æÈ›;gÄøjè†møØ‡Þy…,÷¿,²ª¹nJ^k„.k#e!mD9@C‚0᪤’âDh'ä1ÁØ—CuëÐŒ…µïÛ#R¥�×AL£j¢J„%³Þˆ~Nù³¸Š‡{íA‹ð:h¼1 &äGŒÇ'˜”Ï€ðÞ)VÈfëêß!vÉ·%·ôšÁ+bÁ„Î~üæ '�1qXk�e¢AxË׫Z†NÅú:¼±Â‚è¯&/‘`Ý ŽM£®¿˜�ûås�`¯hÆïÈ?u¼S†�äꈿ•‚²ùÃÆˆxµq™âëê‹$©PÞxôà^Øv©îõÔ4³`¢šJßœ`ÐŒ¦íu©ÖX$PdA> €9œ�Ib�Ý–á?6à‹•ç5“ˆ¶¶ e )æÈÖÑëä¬mzìEáÃ6áŸuo` ’¬C"õ¿ªyLÐ×7‹X~(x9…–ë_»ªt–"u±lü´�§»Ÿ tÖÎìíÚ%”·*äX²ƒV»­Ûàt(5ªµwɦ_²SußÙóå†nEyáà+¨‰r÷¹†b¹Ñ+_5Cm_³¨êakôÄ��¯h––5ë(êɽP�!ͱØmèÖZ”¢>9#HkòkŒ²yW^0Eºl¼i(7@Ü1WpÜl2COËÔîuÔ¡ÇnBÁb÷ÛäëR| <¤«H�Šö²­j H spZNÕ® ñ9SíeXw"gñYTºÄ" Ü™‚Èe^QÕ€æ¥ò’¢ºö&]Gr% J€@óˆŽåM[¾UŽÊ1ã ¦±Œ b©˜ ²Ë#uWßÄÖí“vlF{’vÛXÈßDh‹Œ”áÒDñ£ÙjÐ#SÆßþºýuüæIk¯•ÖtÇ�×þc»º/•»S\*ÇKxÜ’Òç_ÔÚóÆ£ÁBGêØN‰…,t÷&d3žÁ#w3�ôÍcVØå88ÜÖ�ë“W{úaà©îÆCSÁ¬™ÜFϵR FÖ)ÞÂþèúPÛžq#ýÍÇŽ�´\^õøÄŠ»¨«ìÅ´–“§<à¡|¶N9ÞÀ™!wA*y…ê9J’Øîá*!ç¬Ë]“�dè¡ÏÒÞvÎ1?Üo„¿o-]–úé¦@z°Œsa»ªd­x¦ÂV%0·7ÂìèµB8˜²_!UÇñ¨ %ôJíWûè’{jO8þÓb¬�kï ´Ìæ»[ËîŒ\òŠ'ì&%éé¬$Sÿ€5;àlœ<§22UªI ®Í‡û¥/Ïp‹/«÷´³–1ä€ý J2«|bC¦¼ò¢Ì[ 8�º0 ر£Œ«¹^óK ÂG´qrg¥„è,/ q}ÿdïÞSÍÞð” ¦8 (a±Àë.|m¯w­.y”éø™†åL©<û÷§p¹Å‘b¯Ðqñ¹F_ùEÍHQ„¸I½Q˜3ý£èvú¿”˵{’BàÊL3`q«ÛAàŒÄ]å»”¿úU^'¹M†>†Å÷‚pÌ8Ï…GPMm!¬û¯å·W±¨‚ùÀ eI‡r#¯á�cÒ‡�ó‰Hgò„ô2ëo+grr•îË…0ø«åø`ÖßK~»jl~¤Xh%?Î<$X°§�¡©i«ÚJÍ­­¾HYó)‡D ¦€›=ÐX�ðì|¤å¾ß”_ס lIÇù¸ö™yB:Ê\ÁýŸç*½»|ÿÓ‘}Àÿà4ܯŽ|¨2ž‹U—]e”´Q `| :µ|¸øó'ÙAçO¢+Pr£ ÈÂGv?ê¢ÚhE>¬°€e@sÁcŽMÉŽPòXX "SðwõcÀ·gOÜÙpjÍ©€Ù°Úƒ¶/sƒÐï{ñ…˸‚}¶’Çäá½ÖžÕ�‘x¯ÊïÝÁ§[à ¤¨ð˜Ån/& ^¤x†æ]3¿�Ò´o±Ì>O´®ŸÚ¡à˜DÔ ˆ+&TiåRFˆÄ{÷Kçã1‡pÈtýæYEœS{=¿\þ;øÝ‹©ðó×i¾¸Ó7èÆ×zø?—¡ê¡… –ƒ8^ñ4Y(Ùο³5�©@ó-ˆ]Ë›(˜øÔ“ÀÍe{«kŸ)"•‰Æ-ÿìœÏld<.3ÓsJÐÙE?ùÂñÆy#Wîãæ¨äú NÿëU8,Q0Usi턜4+�AÝËØôØ@�¾ÖPf®ð×ÔµÑi5„ºG”.|÷k‘³…E/îû×zªªxÈ–¡†©�8Ák ×ć0eŠÜŸù‡J1L3Àf%ü;ÇÂñ®&¡Ð2§v+hjÜÍÜXôEåm;—Ñ­˜2ºÆãŒ+h?¨¬mIýnõ�<ŠdËÍbTyšuÔ Z:–¯j´ƒ/H°‚› ³aG</{g­–/”Êøhãá¤jY:T¥à6Žó‚è<A™cÙ­µæàg\Thž�ßiµŠï_%tí$òÍ|Ë2Q– %Ù AhÌÈ·üÏFUYD÷,c�' s3ÜÛ8�äo¯ˆNøP¢ñ›%(?ZlßB¿pì¨0 ÖàZ=`L$ŠßáãŒ�¤Ö»’òYxš‚&õU§Ð^e´ÑïW¯—�ï¤Øê É˯jDì Õ&ö†öN”‡Ä¼ž)àÁ„ip ¶hgà”¸ê¢{E?.§yY߀cÖ¥œNÇÏó„°9GK #wrª\÷ß© HPŸæ?À°á�ÆÂÄšCƒ³¬¸Dð>…ÎXËÓ¨«©;Í`lKXrÉt°Àÿš»‰ÎT8H ‡�2ðXnjôkÝʨ9sCĶc@$¿C}O#h.‰^TU4Lç4E-IÓÓ92ƒÉ°œ¸ìêÐr:4þÄ`™Ðtäý¢ÒrÔ©´Ü‚‚{•3�Ä Z'Ïœöè˜àÜ>åeœãýëezvl®û� Žy‰×Òÿ5©ïD…[èÏöUXñ$Ö¶Àk©!#À—ˆnËró 1 ¢ëÉ5Õ�°]$š½y8ï‡GÝÐúªÚã¬$‚+J@o|65š�Ù'"ÀÌÐJ¬)ÇŽÌtܱ®ÑÈ:Û.x Ö=¿4éœCÇq郣« ã#ü®/«ö„–ÓìD…3 »æ�òÙÞ0'-°‰g÷™ÚZCo>hõËâiº6Èä)ÅjÙ-¹b†^æÚ`â‚3hyÅ€òli xÌ\K‚ ¸S™‚¹ ]ëó¹e™sßôuy+É-³Âv�qã&¬ �¡ yÀ­+ßðÇÈ`µ27&ze\×»W–vö‹h4õœv8êa‡²G__CHiõ`vêZçÎN®]ÓŽã¬O#xðTÁoekÒ(ýdЪØõŒ�ÞFý¶�T´ØR¥ÄÓŒxÈnðeh扼¼=ã4Ñw‚¸ôWj�J|„» Ù‘Br¨P2ÏIÊÚõìæFN.Âi2'*¤áqP<à¸:Ÿ,ò¯&ú×f²— @]ø›K™ÂÝcP­T»Rã'Ž[䳓°=�\«„+:& �Ì/A^‚1Yð•tÕhrpÊOÁ¨ï*ºÊ´3~ì:\k^Z¢ªµ§{½ À9¶~mx�ù×Lž[»Œrò¾ñ¬¶ÍH¨hàê~B“] x$g’ b>ü‰€þ*Õâ-”˜«½'\-Ⱦ\Iæ9‰Ìbÿê5�Ñ÷8s¨êªV �ʼnq´Š@gN>†B¡œ$†D~¯9 zC rx³„^íÝ_zRC8öú䙬v̨˜mYÿ qœáM¿JÁ¥�Pšµb±äS+5Z{úlk²A|þè™7[á»Kr ¦$™|è‹òéðhøËùOÜ£›Ñeú»R±XwJXs¼`\FF×ü�¬ºÜ¼B(‹yàׄqGi` åz'=§UÝá ac1S„DÉÓËž†]ø†…Õ](›Œä�ÎíܼKwÅFªšô´¦I(¡·ÓÌ«ñì8«íö—ù¸É ,¬Tv¢v´ˆR ?árý"NúG²œv3K„ÛðnK;J\l(hO�˜€Na:‘‰„Ú)8>^Ï m7Éð”o¿Ç&jSOæV—ƒ¹T#¦Ö”çÔ�B`sú7&�=ÃÆ@Jñ)kάyå"ý@=–¥¢„¶w§ppÊï„&ÝZ/M:Ï)ÕFf�ûˆ|²ª¦‘é9¦’œÖjó{lQØ7DêbìLkãumju1b"¹ÿþ g=Ó%·Ûa”.ô<šÝ<˜ r�Ø .?±ÉO g""#¨fÓûÀ“œÜ=ƒg.°"§eÚ áÝÞ—s*/Ç–57/.]vPçé:bÔts�Â#Rµ$îöU¾ž* Ð>žàÚ¡»åi��¥„ : »ð…]«䲜ž¿´·S³wIš@n,2½Ê_ç™uÇ SK¢eéø”¸ ¤·±ª4rY—ÁrgfmNÑñ8 “¾Ub:xD¥”·²|­�²D.mÎä5¥NïhnR‡gðT$�ÝüÖtÜÒš à(±:ꜜcVôìñ š?…¿¿«u# ‚{reX–Ç"@ŽzøÈRMî3Íè‰<��3T›ÊCú±í͘Æ/£ûCržì¢]|ÐŒIXP&ê8DΟ3=J¼Ðb0°Ã椄¿O!"àÚ¥€$LJ‹�;qí}»Mê9<ÁÄe5ðw(« Ü®H{R,ZŸõ‡áN)ú?,j4ïnù½…êJÐSŒ›zañvYç„5€;r|ºiÈò¦ïy²¼R[ç‚^øÀ`§#éo¡•y‘U:�¡¥Ö zþ¾ìvë /ù,«ñÆ¡Ö/ˆ¥Ôž$Ÿ‰’…õµm•œÊÐÆË†a0€Î”ç…óÇg Jí™ ,„Õ—ìÀ)[G¬%Ìe×Á¢I7ÇÇò64€î·•wœsÛ‰‘©Pwôl±�Å‚_-J©¯ó í] Ñ'q†I�¹§ÞD60JóCÌÎi¾SSf>(�Ãd¨QžG¹Ü–yÍxlj8CÌ��Að,8@­‡õè4q2cx?{¹·Z_ ë ;ú=ˆ9Ê’2è‹I”£™È$qð’»®ËÚŠH1æ �C_q¤ƒ&Uºu‰JÞêš!°Ât šE!z4§² šcGêvÖÕ T{þÇTbÈgfØ™ÊÒ﹎<¯ë ^3kSû°Þ’#+ÑùjÊÿ¾©¼p )›�2�kPÿy .ßkÚæ6³²i ³¥—ê£ï„`?g)~¿Å€£,ړ猯I£ó�u¹”>s5ŽÊ=æ*Ç\´»íàÚ­.� 4#²ÉN"¦G<ÈOGœéE _‘“ÿa‰[ªÞbª\ôîýÝ’øÕ¯âàzVÑ$¢ö´××Ól)Æ[Çx'Œ,µ­�Mb^éz+<Åzó‘oøÂûQ-C¹üƒ5Þ™È,ðî Ö„"Óö'q…2£ïzV „å8+ *Õ£aÚ0S¯a¯;ðJ?¤ŒÉÁw7„%x ÆW!èœ> Ün0zÊ¡£y“À˜‚@Û E¾Dg~¸~fY‡bñ"�ŒNýyP56AoD.äéY`ø)@,S»EãD’£)Ò`—S*v·1tcÑö¿äm‘2Œ}ߣÇKXõŸŸv¸�,Y÷]vUWHyXå­ñ ÛyR�FÈÞ›âÓTG×¶f,ç`›²ÜmT�“æÙâ[Â÷÷íj Ær¬»v�e.ÒóÔóߎÎMŒ$÷~ÚŽð�r`cL)çk®8C¬5kJ|¥Egþ¨b9¨‰ÜmL‚ïÁp‡ˆñ\sñ’Æœ#À Î%³†B\,tfAZ½Öɼ9!�‹QñÌG:õE†1F‰µ\i DLÚÚ˜ &b“<õ£Úm˘¾Î±¿¾–VýÚïx(�U­,q|Рƒè�B‚É”Êi\b¾TVô‰x=ð ,.+0úÎÍ߀Snx[‰§—ÄS© °.S8À>U±ŽÆ`Èç[Î'COäΔÕ$ý@b´�ug•_2ø(ŒTÐA=@UxÒÍÛy#ç/ éÐ2Ç&|H:v:³zOó‚/úŽ}ÐãËï> ¹³±ôŸœ³•çù~Cxÿ ,�Ðt†=§&:»¬ÔèºÑÉL¹—¤.úaŒ”4ÂÓ§—<r >¢6¹,}Q·Ó••oN‘º\ÚÙF@vV‹ÈètihØÝò¾~ôµ¥R ê óÆ7�ŠŒ�åMýF”ïÑLÐ:㉮QNÿs§¤Ú±o�¼¦!›þfÙC‰,о bk\ÀkHŽl»Õ&–wfŒIÊdÇC{S¼b0äMà6j÷†”rão²¤Š� Æ´Ûþh·°¤Ií6‚Dz�®þW“Â*3 ÑÎ]dà ¯Xç‰äªë0ŠûŸ×(ÒªïU´ˆcL+jøÅb$mc6(zͺ7¨á¾&w©Ž;™ˆDÞâh1Š2²T¢E{§ÁÁN®=¸ä‚¬’ÉfÖ¼˜"µ| —ØîÕãú•V}a,gó3·õÀ¿ÇI VšÕUª÷W!`–ž—UUÉ¢ É5Ä]ÈÔ [„‘´AHÔÆ@pN;•×h*@NöÀÝ"ÇNÚ~µßh;ÿ[Qd`€R“zÏ4WÒ-ÞÌJÈ�]Don(r Sýy#`G±òÖ¬M1"Ô“ÊÍ·b½Ýg‹lëm¶ÚÜr¾$×€.——vŸ~úýW¸³Õè�‘FAtÇñ*€—½^kþCå~ïK®_…åpÂPló.2 ë/AäÂgÄbÇ‚5Èæ’!8Ù±çÔ$ÓWUÎ_FÕ4ÙE†¿&Õn†ÄØ«=òW‚ÑŽÏ¡?ÔMB.g |4²ØN±­9Ãk´1àŸl1\²ÚÖ”b,/¹AºX×}OÞ¡M*ªaB÷‚ú vòH–b%?M+\Ç^Ì›ÁfÓ^ÉÈ–Ó6Î.$ùä ÂÏ÷…ƒ,2W‹ýô[*—4Ë¥§d»ª•Àå�’”OÄ^:ï"4¿`ªÇâ±:¦yЂ/ªÒž%Èsm,:JM(_TššŠv´õÒ 0ÉNe—ú˜Tz­ÅV~PÖwvÃÄ£‰Ü {�«œºÊ#š^—ioÊŠÿ¶¬µÛEˆ·79ë„j̶4ÄÂ÷]¢ œ@5‘µè¦-e?Ùƒ|i*ÈäL.=ØàvíœÖ™ÖUC/˜²2� SvÕ|rñYu>F6CævAðMò§˜Ç!»DêOÃT‘µL,aS5—׆hƒ¶Œ¶& ,ŸóÏ}ó¡þÅf®?~$w‡×öë´“&é�âù¸�“ó�Žå€M:Äw±ó¾:x;.¾+î-¡ŸCãGý.V”\hàY«7Ñiô„F…òqi§øí–Pz��F´¼è´å·Ü)H®zdì?Ú£3ÉGâåÎF,øÒLqŽ~;v®N¹c Ÿ²ûÁÁ©[MhÄ—ïŽ U|ä;¿°âU*]Í‚�ÊÑ‘/aÙP­)˜r8i{…=g‡dKduM=BØæŸ2¯‡�t‚µ¤�ºÇðçH3CB#NC%–�,vnˆþýú|ÝÕè»Ü 4|/†"VE:;ø7[íƒAgt-( õû­öÚÓ€îíÆ:�¾&õo/R?ézÝ·ù»êXÈ©Û[¼˜dŒÅ*­À�´ci~ÀOÙ9·i »íiÄ2XöC–ÈÕ÷‹½Ì2ÙËÆæþ „+2X7rU�0ûñkÈ w‡Ð/Vø]HþÁ&Â÷/ G¥F~ }VTà0¶_3wàR¹s¬K(²bíp?—zýÛ,ÇLúLDC‘Cq—ª�P�b€,à"†úrlήD;šñba©´Ò¼îøÆŒ6ÏwuSê_Í›™Ï¹G¾(nºªbíHh‡£y3KÛH[?²³]Oôüt׎’¶-ÓžL¤J{$³÷ý=è3¨‹#’þñìø|Ð{÷aW²Ù¸0ñh(‰¬¤Cþ0ª¸±Q’ܳ!¸Pßêü š­nUÃú\×ýœédú)µ-íö�Z�‘tB·[€¿ŒsãÕ•bN§ ¶£—Z¶¡=OŸ4Ò·sÊÚžu§a7–ÇËrïp†„#¿AøÁSŸl@Uéx>/-Ñ–¡Þ–ˆ&€(œp$Ryß,á,ºÒʇ4ñþKŒ¬×HŒäÔ¿¥ß“ùbÂ>ð¾›&á{.Þs]¾‘ºòÿ‡=x”e˜mMн'?f'¯ ì¯c”¸!…¬YÞ—éõPYLóîFb¥óÓ°º†ì†hü¾�§Ï{¨"sRwÔë>ð�B}ÉkçªBîߺñ;ÝŠjK‘�‚ºÎÇY 5-¿Š^¦EÍœ ²Û–Ád ÇÚ�…˧pÅ^a¤g3tÂðĈ``åƒßÁ¤•B_•üà>žùµãá¥W¬ñó6BdYð}:ZïšIV^ËEìßét²2šîðŽÙâG¨¢™?Ì}[üPll߃‡˜ü6‡ç�w¿Ï¡|éžt <¨ØwÕ>Ð<€ñtã$øÕNñ]X«C;›¬Ÿ Ú-üj¿±°X­Wí*p®#X�ß«×ÑžrOÓ÷ÛŽ¿=fÀm¶l.¹ÿËÖ²Èç[·‰Ó7šzWÓz£¸Œ&'J kY|ë<(Îp«û©ûѤ:sö_‹+Æ”ÌÎi¡ÁßÀ#uËE!®ú¢;ãWd3˜|ÜIÍ¢­¥ýÇÞ]iv #:ÚbÛí‹>}‹øÖ+ 7-vVÈ�õŸžO’`H¥:w€–[ß&¶†$Ы:œP[÷â-/ÊŸ]Q=v3ø¹I…A-dŽ)Ø1Mª¤pxtXHµ­×¨\~±6SÕ¡fa1Ó˜Š¯¨·ès5%}û‚:öªrÛÀÊœù7i8x°·P‘T[Á%jÞßâ™ûøáÇ´ŸIØÌW;©ì ª + ƒ\ƒÐÿDµ<^W±Ç›ö�`äÐÐ[ìYç/pÏ~ªSäXï=Ƨ)ŒðÞíšñÛvˆÛëüD3 /ò¹“ÅÁ3(°®«ôM9c;5j–W5Ž#e¥Í‹T#“P·âé…gªÑDZóòÓ ÊÊêñÛ¹Œê/ÿRýóìcV㘠Mш#xßÖœ˜úÅÔ”ÖWX.TSý³„‚fÞJÅtO[õīƑKͼU{6Ã�ÑòÜ.D®ŽÅJ5vò+kNÛ³HÙ'C«á�^¦þ7P§.Tòö‹œ2\ÿéêéUÝËhôõØÞ‚´¸@¸ñ»?*ÃF2txï½Ççb¬®S${(ªÉ‰œªÄ’0ºæ³4Œi.Ô•…ízÂAW_|8j­›†°âïòܾ;›‹§™h÷§fIóiÒyzóð&ø>øj¹™Çþ穘#a·®àßhaå˜�až0ˆBr¤~=¾õ‘Îâ œjPÎoõI0Ô¹KýùÚ½~ ±û L¡…|Ž}Š–@‚_Ô,²¾dÕüìup:V…z aÖÍc?©Zc„¦õs ògÇ¿áµ^Ó5tã??¼´l=bÛR· öŠ0Sï( �·Æ6Ãí ;‹X»®3YûT:÷�ýßÛ±e^&›s=Õ®™Cè„^lIãê_gyѳÚï¼Öçã†\vìÍ¡Òwò_`ñtMds­ó<ê™w‡W.vù=¡3æ�:-úôÙ˜¯é“j¼‚·_âJê‹8ó¼áÉ©aà‘¸]¹º~`D½î/›‰Vºxbï]Æ»ÎüíéžòÉåÌ.îÖæ“—3ÄK òÓ¡ø#äÒ_8:^ÚY �ÛùXh :¦¤Îç¨Éj<â/ìþ𒜂q�Ã�!øüP­ÝôÜÎô6�5©,q!í×GŒ�+DOhYZX�Y›ñ†NË„:¶¿Â£2«µ¬„Y/Äg=‡:ÛäS»P›(¿ýÃ4½Ó¾‹1¢T¨¹\KÏJaöAÁ´WPCy>B~9^áUÉâÊ¡_/b›z(7Æ{Üþ¯ùÁs;æîHMã†BŒî±æª#�|iuîD+é—+’+àÅ�*ùö[7ø¯|¼ÇôÛ¹�•�A_Ž!ùBaÏÆ<ÙãMaë…òpB2—ªåîv paÌüÙ¹#Z­X¡{ÕÁ>óÈYW&ÚÊæêmõ©GEÀûd·kué©‘óƒõ^ªkÇU±û„‚oÆOÖÕŠ®³¯Š^ÌÓ.ýÀz™¥ÏÛÅ•Y’˜<Ñ VëúŽú;ñJõÔøšÛ-|/É3]ŽÄ—»kc³¾êÛ �£ók¤oP£»¶“, ‹c|Üâ϶Šª@7lÔ4äÛ ø xeºÓßÉŒ˜Õ£{ÙýMÕ•Ö2&•ôJ% ÍûÞÌo^x8ÛŽ="ÓXTv…ùCÛ²QYø¬Ë«�jf–c¾c(¸A«Â×'"÷µzëÄ» ¶kèž °®Œ³;_|)¦ë‹°dù okó‹ƒÒerÊ»P×%äQÛDÑs²ãoã÷(æ_Üé*�ªe'¤¡ÖâÁ´‡Ù5Rõ©;îî�Vá¸åDELÐÖ¼ º=¸=pÃÞD�k £§/�Þ”âöJˆ —Ûäm‰ºÉÐ`Dn†{?²YÓ©GžM�”þ;Ò'£úþ•<çØÖúVƒr Ë�Ek+â&;»zYž¬–Åå²6œ…4Ð;lj¹yÆ<¡‘a5ÃÏ_yn,o³td…áàðÔ‡aæìÞ'ø›À`ŽTÿÚ9þMQƒ¿èU°©˜ÊtsƒÝyñðžûgôÎø³ û<˜»Û”µíœ±Pu )‡GãdUû#. OXè?t9UÓƒ…7<åÒ¹®·²ÿ9ãw ª®雜,?½úŽ[»Y[‘¸ñ£‹=£.ÃBJ�’ô$µ+†¡HűªìGÏêOµžÀ=–n(ü´]!slÊOÒYtûŒ€}†ôÞ¢ÁZ�:—ñÐ’² �y— Öܨً¼2ã»pvÈ�æöYÏ$HJõµdøF�åxâWœVÌL‘1yÏRžf- çÛ;¦ˆÑ0‹'¤Ìo­*EY3ÇÌå„v ô{ë6êho•,j{»/˜a8ìמ-()µ(¡;P†ô²Dø�·¿=Á8·%Ïèj³»ûs-ìÏt%ÎÂÑK½wKXöÇÙø 8ò*�–äÑ6ïmÞ.Ç=€›'P«µžK± 7‰÷:”L†Qnƒ>¨EœXxDY@M¦€0œ+õ�5mz̺=¯·"ºSÖm¤¡†ok2Û,/rHÝ1*†vže�½›ð4zrxhh~°X6»…·=&FÜ›H_…rè“$* Ù‘îk^¡!Û|s9YÖivAH3?UÙ\ÃuhpÝöú cÝP¨°Ö°{(ÑÈs9Cò(( û[`Óß-« Êã{�­7‘b?—RêÕh0YÔIhéÄnXùšWŸÆí{èξîŽÔÊxF¨#Ù….èÕ«´)‘ã7ƒ+X¿ô„9Òùt�"c™�`‹ÎIJ5ýFE¶NëQTTZtÝ fc.¬Üƒ 7¥Lx®Ñ�F§o]äP}¿ÙÝœv80jºà"\|@ªõÍ,¢ŒšXO4<1zŽ2š—Î*¨R¬ªåÔ©ô¨òBË­¹Í׎»n.Ë$Àed‚-eSü ·WE7Šp˜•îkYêõ0Õ½ "eôŠsFØW=r=ÜKÂv$i~0aªWIž­Ú‹6·~ˆÇjö YnÑ­L™òé=0“­ˆœ'ÎâÙ\ëF­ñG*t±¬®dl z …6¸uJ˜-Ë « £,“¥.Π¨¯RÀb<ñ»Ïé!ê!¼€a¡3žæÞÚ‹ ÖNÞ¸äÎ÷î—¦sh²ìñýÂÉ +¸Ç¤¼pbå#l¨¶&Ðì;õFvÑ2ø&ÕÚúØ?ËÕ¿uʃóÖzê½—âÒí´žW_w×P°öq/„ÜŒýï ;«Eü<…{’Þ>�  ›MÏ3çœÚag€‡;)O‚Z’¥Ò›,¢›/{Ž“ž|È6ƒÉ$xÌVN°·:&ËJSú㮃A+-¶¨›z0ët­/Ü 3îI!�{1Á’С$`l�F°bR'Œ‡[äs­[N‡Eòõ 9 ¬Ú wg…áû’¿P÷!¿u[¤„OÃw€i$Ó��´²ù…s¿µ°õ_j!Æ|p_£ºŠE²47«Çªô%®ÿcO›¶KÑ2RUx,5ÅÿäbçŠ §'_"‘O‰Nl6èãp.â¿ÀÌë¦�zö^”è?Ø›–k‚ßÀ|æÁãg‹©tA�æ¥D\æ5Ôä/qÂ~^ð1ºü�¹- Å „qŠ„ö’ÏÒ}û‹Tü B¹/Œaö­GçUi*ïÃ&œû;ì Œ_i×é¾Ä$d Ôã±ñâ•!²$ÀÑkƘ;=âõà†²À+(jóo>åo\ųٲšÔ¾�Aö¥�% äæ·õGl¿�-ýEÚò;ô%Øvš«R k•è;¾HLª‰8M™†ç*úa»:=ò�„´‡”�ˆËLA?£r{¿Œhk}Àh€ÚM ¡”œ °Áº¹BòÌç³êë i/S†�g¤ÃÄŸŸ #µàù°+DÚHÊaê9ëÞjùˆ§°³¨'˶ÖáQ.‚5ƒÇ¹)¼œ>¬d¡z—æ&µÄ€|ÓÿT¬šm˧ê 9íüB]ù=I¤éN�‹Œû”Â""­BaùŸÏ"f!¼Í�Y»—ò/òôå {+½S‡ Ê‘'tƒåÚß«LúæO°àd!ýô$7UÆ·rú·f²®(jbL+ÔÅëHÄ�œ’�­I˜…Š"¥�·LjB½qÎBÙ²)x/ð›fz9}„ ù¥CPÀ"{ä«>¼¶žö›ÊGõÈj–Y¨'–gx3C:? —l�lºde:m®ï×MÀRÐq¹Ð}Z}³âRî Tì“.@n¦ ]E>mcJk�gà8�køÃü±Øå\W"JAc=¼ŒJlß ÷È,  möj¶›;™ ÒÜ¡ò)Vzñß‚÷n?´ Ù௑ö™¦4ÇñÂìÊŸý&i2$ÎÛöÒ¶”%�žÛªØqa\,3ZërLª0âQäeSç8‡4[އ÷JX²®²’ã¾tL Þ±Oë$Ù¡\1“g�ÁkU‡a"¶ÊÏvWMÁ>쀷¬>˜–VÇkÏŠØ|=ù •Jò´Î$ ÐÓןǧ`F(Ž¾Æ `ÎÛé’­í±êþ -Ÿ‡»Æ&6Ô‘:ÑæÚja%&AÙCYÜPPr¿Ç%ß($@8)c¯ú`„³sË>¼óìmÓÒ~ŒO¸nI2Pi¼¼Üø/Ê‘G¬Ÿ9sÕ”_âºáü`®þ~R²%Åq·æíÓ©NÄVVÍ•ÖW3š)Ë„qÂ�c$Ñõ°£P]m¡Øs{LPÔ'Æ#ç�ûÓF¬ÞÜÐÏÁÑÔ¾ƒH%2^YK¾´²`Lc›Œµ®˜Ì¹Dl™LõÄ}N8Äý/iÒ�%ŒftTáÙÕÌ÷äÀ7(Îæ(e‡ÂL›#µ>è{ªÏKgšÄï¬5h=»r“aµu@Ξt%²À-\SƼ/ŽŸ› fv¸Œ ~À´Y·¼1a^í–߬ê›U<¹jÈŠE¶j3å:ÙjýÇ�jë:„�“³ªVP*à† éMágt= >îG§Ä�²ÌXNc3-e;òë•ÈÅ�áqßB ¦-wˆ,Tâç4 x1~Á3(žë( �fÌ/òÅÌs»Ü›,ÒþË›[`gÝ­¼½öTá± �}L‰(fÕÃÚ•÷�qdó¬öwùÓhÇ3|Ú@2¢œÛüFw]£é7—Ûæþz$l”ø”ã§Y’dylË@}UÕQȼ?­|s]TDK*diƒ7¾ª½¦Fý0{‹YÂoh¬ìObÈ:Ž„HccÑËY‹ ÂÛâŽu… ç_>ðM¡A´´ˆXZ×õ’ïrò»ì¸¥¸ÇعŸÜ_+KŒ´þ³Àˆ¹®éwhƒbthkMÅü5®�üðXúžø°8w®h6QÈ ‡úæ Ñx‚Ë„p|;ɨëÁ±Ö#9ÆHÓÒút$ñˆ¾óˉ ­÷�‹RRÏ®£Åʪ4õþ™ê1qD…«JÖ™ãôÅYä3)òk¹‘|[‹(²Úuϸÿ‡}[¼´h�¯„d\ÑŠ+jMUÃçRYUÅI»í5LçÚÂÀ$D',ÿ¥Nå;úbhöÙ ÿœÍ $tòÈÄ.höãGzßGßt6`-8‹£TáO&›Í¨—îl�H>=�b˜;ÅgyçO‚xcÅ2€‹ÍÅó‘Ž-twlÓªÞ”�7K CdµõdóŠFñCF¾ã|‘Ç‘xç“\à¹1*™ƒ7ÕŽÌ5§Xú^;Æô0û®Œ‹Ãü“=·HØ Í_^%ñOM¡îžÆÇ’±7• ì®!¦€ú˜þOŸ+Ë\ªÐBS+Ò·áÅÙu‡ç{BF—ÔKœˆôÏÅg©úò}™·ÙEy$ŠÍñ3~lÜüc4Î>lsû/ž÷P“ì}ä]4§ÔóR)L $KûÈ�ªœok¿Â3.ñ2ÝJ˜ýlÑ_IêŸPüý�^tæ#ˆ:c#F½„ÞacDß÷ &dðý­+½› Ð)²Òݶ hEÖÝ‹H¬)ƒiÇ -ïÃÙ¿·ÀØýdŸ YO�èHâ·lÙë ‹Aɺ?ZBiN|‚ÓŸõß!ÂS ;ñ¬D$ò R)< )-´�›¤ìI˜/Þ¤±ÏZ‚ê34�ýøÐ˜dM.'*HkؼC‚N�Üùî�ýÎÀ¸ŠÌ„—º6FfÂØ‘spÉ/†"‘�ÜDZ879k™9õ§ŒqÄg·a…ZUhí»`¼ x²ßƒ§»ŽÜ=œmœŽ— E´TЍz�d0q;ó�8�FUFÝXð‹@Ò1žb:°Ü©Ù'¬ÍÁãÖ§j¾@ïñjc£º„?û•íÜ„vÖÚ¾à&5�.›”@˜}1!¨ëÀåxê„kÜHÙf˜“~ˆ±ñ<¤Í«„¹~¿“ÁÕc°‰åÅ~_PaÔ�å»…ƒs­ÅJ®~ã„™œúè°]Ë+„o%Ü'8LŸMŸf{Ùk:u'IJÀ´ž3É:¶Á†ÅN�\à£qBÂ<Œ±A\%Á¶ÛO%rq4ZnöÇn P¸ñŒ°ÕòñûG@h¸©MyˆŠ­”© Äü@!0qýÎ'lZÃ÷érîá{VJm±Óì~bÂ|D厗LƒËÎÐ6U©å&é¹E[sõG»°ãʾ�|®¡ýœ{rød¨LеÓR´š¬<+¦Ç3y„¡ÈIÉ:jr·ŽÿæèËòšfÌ×™ûb}}9!~xñeóB}ðÐXeŽÊÀ…Ž Lbì àÀŽcöÅÕöÊ�˜èÄòâA�^Çá³b‹í) î�<N%AX:œ«¤›“i+†bçŸ-Cï5¸gZÌã¡kêQèl„Z9å¤ÒHtvó Žï|*.ˆ4âo”“žc\àÆØ°ï抜}þ6ýà_ôc„$|€ÅŒ�öÝæT;Û>C.ü‘.e�Ørõh¾›¬ã_š7ˆÈŒJõ‰‹Ø?ÜÃhe>çK…Æ!PJ-ƒƒ>Ý`¢ÞRZž!ßêÃPÂ܆ª  ßN0ÌÑVk:#ur`ÁÏé ~rø8ˆ«°‚))Wv"A˜Ï›Ä¸ä鎿„f†ý«ç¢el“uë ·|‘5­Žì÷ú50+s¸¸®l[`ßÿ|±×®1Ã] “¼ÀÍpczÞn¥¦£¥ß…êM¢Äôè)sÓ…#xM¾ÚÜ ŽK`‰8Ò&wèˆkJj¯¯éÃ�¦i×(�»Ñ Ý"x˜¾µâÞ ðÛÆšt?ZÃ�Ìäb„�u…âŒû¨?òíÔÙF²†²í*€SÈÁTP<ìÖ&@äåò…™›ue΂´üÅhëŒ�‰ñËC33‰»$¸˜¤;%òq‡p�ÑPÍ&Tùy'RìÏ8^þY"‘¢ñv6oäMí�qÖbƒiÖHÁ/û€º2Ó42d6M/Ecáfm«®"e¨«»çô‡�¯ÒmuÛÕΞÍ1L*úbfTÜRCã¯ü FŠt_ Á艚¢iC²Ÿ-`3%ì-&c}(™N½Ò ^Xb(À=hQ$bÐ÷K}\¥«£#ÿ CÂî–o×D‘œË”�¸V,Ы…¬G¹�‰Š×Ü]…@Y¤ �WE—0ÔÑèŠ =‰§†�]°^£ÀίÇyÔô^›� úoÙ°©£o€9žVJ–âLXVû=Õ4�ík2»š6óH§ ÅYÚØu%/VS¨í*‹g0ƒ®+®… VölE®˜2ô’˜i2&Ü’×2+•žU¸Î-/²6°Mª&Z˜°4ýF€†Ç¦?…hÿ�ÙLvσ©­µÙ­²T­A¶®‹—føÜNT™5;µUåušÞø {œ‚‡’¥"Èp¹V©©i»?‰D»‹|ó±=VzΞz¥°îá"œM+þ¤Ñs�.pŽßÞ]âÞ+¥ÞKdxÚåCBÌ›óˆcn0I¾ã'ÕÃÎàãŸv¹Õ�BKê"³xNñ4#嵪]|üÁx­ïªkïÊh0Ð÷Lm�VßÔdm.iš¸Ó–ƒËÅÕpÕA®êäã¦BT|µÖÊd÷[X ô°;—„]�ŠÆqžâ}w@÷›”‰'gý¥´€º”Ô�j*«ÔC @ϼÇï^:Ò!Á^ŠÔ>ZOÆ„‹{:ÍѼ05ÒÔ|@iöóÐ]y¿w€®l3.ž7e'““Žû×f°gøE VVú°‘ÛŠ6S÷T÷«ß÷>#¥¡C.!“b+³ÇÇHˆ²Î•¸¦êcØÔÖÃÑVcÕÔ%I³z½ªà¬zø‡ì‘\q¼†×Æ-ÖîžÂ{”8Å¥wIÜ0ìT‹óß({M_Ïú‹ÂÕãîå†(7æ>V†yðcMìÀ,ûc%)"õO¦6S�b`çbjþ]öÒ»M" 3¨î€pѤ/)½J¬vËA=�BúD÷¹°Æ)ÁkÞRý€PÏr®Y͈”HDD2;gGôRuvÜCkÛÍ+§ú‰7Ÿ’m ÊxÃJ.ýš‹Ã|W¼æ9t?p)Ì.‘(»¢ñf‹8°ÇVEÒ±Ÿ#¢ͳ¡š¦w5÷íÿ4æûâÙoÃx×ßÛŒ}Ê=’僟T�¡‹4çº2œ²ªfèjQÓôÇÎÒÞ™65X²ˆØ�`åG¼Ôq<Î9�ºvÆÅÕäq„ºN™jÛ½�éVÊ œ‰"f1ð”&‚Þ¯¹Ýl�¶Ç8«÷,‚Qü,{^³nò°íyȳBZ²¦_êI㣻àc«Tk :„�œ½!3ŸzËb“dï!Šî·±­\¬ø#à‡òk«V¼»k E„êöl±ćí¶(ªÕÕ ìµ¾2KÖ‰$ ‚—(3;­{›×’>Ûp–SÓ9¹Î¸ª²ïJ)k¿[·>”¤uÐ2˺Ía;�lßÓ�ŒöfÄü–o¬)Úˆc=« Ùd3Å�Ì:ê߀è{ta¿IØ®4wE|«È]ü{NMÌÔ€Ž%V[VcTþÄ:S“cºP/w:â´²]^ÌÀ‚òƒÇ€_bÐþòc¼«êŠß ÐZŸcëõÞ÷Šù7 º¾óìäBe,1SÉF2Ù T¦Ò-lLîaÞ W0½ïÄÎ:žn«ÚÇПOz³íW4a5QU8 Ñù ïÛò`ƈŸ/iײƒ'&¦Â5Dhe ¬ó$_S¾Å xBw×þêààd3𺊟_YÕ#Ô³¼@;í /ô ‰á¸@8%¶Ô¹qUƒŒBLL¼kÉ€ >žc² lŸ¥µ0‚S[&çËmc¬0ÞYÝ£$!'#žØÛ~¥‡Š&´‚©/蛪#¹�FŠÓ€í‚ÙûŒ´‹v5” Vüׂ'a|.!Éã±y©gÔä²°²,Ó/Ò»zÚÅž¨®�fxíd{aŽˆ[,ztÂ�ä!ˆùÿOçÎSS�¸ãÄA‹fX¸Œ¨[i§Ê.³·ðïÝ~S>Ô‡ SÆHé�Œãk–†Ë™Âöð ‡Výiˆul6½Hô°‹óSéX¨. ä‚éðÇ„øì «zÔnlh¦éŸ†%碦”z�e`B'a ޏ^T±¡•Ö¬ÔvÑ¢`á_çKg^™œŠçutø~÷rʦyºi°'Ö”K!×?;9QçÅ[ù(²þR ƒ»xrÇ_f@ P\ăÏm°—Ä%2*Íš…Ïìr®‡Q¨rýКe\ �ˆ ÆÆb¥¶»ý7ö8Ë. ‰áCôlx‘6>†}ª¸ƒa2ûܼš�£ŽŸjç°'[Êâ­R|øŽÂ‰.Ô:F+±~t‰n×¹ìúo¿${îÈУ†}2g`é @”[6“æª0<<í yN/ÀÐ6ë-}P/|VáÔ2 äH96û¦³±aL»•òâJ˜(—OÃ&g3=Áæ+av´ Ðé­#Ôœ¸¯CM;õ{vIN·�ÚWð¡Ì¤—qûàæ¤TçÅreåxa$Úð:¸ú´Œ=höZå{hL>ÀÒøÔ´Ó=ú(Û·Ø>ÊÑ‚%´�•Ù^²v/�hêžbÛ‹ŒsöÄ a—B=†f)ËÖm>™ŠWK_‰|M�$„­“ˆË='{lLiǺ_Ì'Ð�m†™ªQ쮘ü1P #Îuì¿줲dÿÖÖ®¯z·%Qj^Ã0…å¬ɃÙc®øFA¤“ œ6¤ùuS¼–µœDÁÜ«A3o~|†t§6ª‡^ü¼Ð*zr$@¼S¥ÎhÕ"ℵLLÎŽ×8 ÍbscœºWÁ¾xþ<.͆V™à ’fâåœÌ¤ÓæÛJL2·å3Öã ™a:#Ù•w,ë0 þð/mñ¬+ÂKô gðñ›R9p–MVôÂdéYý„yÁStd‹ÇÁd;:@pEOhV± 9ÔceµC¯­døÑò�ød±CmycD¾$"­ígw••´9°Ö…ßDFñn:Õ$¢Å†Ye¥YÍt6P2‡²,¶F.–mV! P}k§H�ÐÃBçP-:º‘nµMÍÝͶ 1< ÒÕíuÞÄ$áÁZ¥™dy²¹…%”F4¨£>60–þöóˆÙ¬Š«ÏUtºI¨ïÎÍx±WÐŒ”6’„wB»È„‘}B®RpŸw¬ñrz{ØW  ˆ�ÙcçUe“Y¢×˜'ƒŽ«›º·\Ëγÿ™«�G»Ÿä䕹Ĵ)ßä‚ïé›èÅFì¬êí,ﺷ ÌÎþnÐô¹ þŠA±µÓä›4ÿu»îU×c Nß$�O® ‚Õ¬ª^‡Û¯ÕOŽy`£«øQ|Ô0ÒÇ=Ü…$bgÖ°îmÆöU¹oAé½Í�Dßò}ÇJA¸So«Áá<Çp¦\’Òôµ·� >~/ïëËÀ†C†z§±Œv„-ÆäÅ›xmö¢�„`þ8´ÌÀ4I &s—ÈûØØ‚m@WÚσ‚Y™Ê)©+Ëô¸Ê—åÈ0½Á‡»«ðˆi´ÛãÜ¡\¬‹óÑ÷èk<p¬<×*jnkÎ{ë‰-_ff|HQ@¾ãP!^(™#ÜJ'- „ÀÉU±Y»nèãõ4Îx(­ʱ –MªµC9[½/ÁÖ|}u]z¡ÅUÆfùó\µ ¿”OŽ¢ßC¿Ó‚OÍ· 2óæHœG.×Ç6Ð?AIo§í¯Ó£–9¤¼e'8ª,±%â|¥}Ã=?‘iEˆ²q€½p0l€§²�Ó·•p“ù’6Ré*©�:Õ¶RLxDð@›D5›•ð6›©E¸/ú06½%i·ë î%»íé‰Î€›¤B™ÿGñˆ: Å2¡@F²¤™ˆÀ#ó;›¯ñU¡oŸéÖÕ!Õ·gx² ⨋ÍÏYk‡öfOVJª�΢yê´op˜*ôcwÌZ@Ô[A_òöO¥±¯9¦IœË3oHJ‚¥ÿ¥KÞ°+¡WÏ{^í~Rm÷:›žØ×�>6Ȇ¯âQ�²»3ÖÌÃà°çu®>Ðó‚R¿ºdÑ5 ¾Ž­¼fœ…Vßc{K³NÒ-ñ€u !¥É�Øóãë}0 á jšè¬<ÓÏÓàI9­pKiñBldà žYÆ©×T߈m .9?'ž³Áyp2(Çœ]ß:õŸÏ?¢R¨Cùó¹# WÒ�Ò�%òöd‘˜ÞxӌŠìi±È�L‹|}ßÈÞÀüé�“$eý{–.#à0 vyÏ�ã(ï…)ôØ9Dºï‡ Ï'{³Ï‰\ÆØ ¦-Þy¸?Gió/ò{PÑa�…@Ë]�A˜+ÞBñyP4O‘J�&„ÐXG[�….�Túˆ@ìå �Îfs䯪ô¨dU­u{xcÔ0¹Ý•WÕÈ=�÷•S>k$m!D(…ôLsÎ+*ü.žðκ—S¥À•Zȃx1ƘáF·c�¨Ïqß²Pü?JÚG’ŒáÂý‹õ0™Ütõ7kæ(‹P©—&ò° 6BÓÕÆK’Ðc”µ9eÏBé!%¯‰eíÐ@×ÍP¢a=p€qFÐÙ�`ó4ä|õë"¤ŽÏ=Gͤ-#uÞËå Öý€s´³èN&•-´`ÃeüN]¶ÀÎÙ}º€&ëõ¶´ÉÔyÒ;qj×Ìí`ÓÁù°-¿f°Í]”´×}"{IÿöU ƒg!w=R‹;Þ1ï=„?GƒK„ �IF<~È —Ó‹Mù_E-g~„ýËœ&dªÀˆ-µø·ŸumƒäQ— ã… Y·²«ÅAðx¬4!Q›+ž&çhàâ$ÑÌÁ°K‰ÑÔÙÆÉD£FrÒ¶my�Ñ:ïÈ}Ó­ßûx†(°,iÛ*�\-7˜^åd;U{Ž#¯!Ùd‹¿{çÒÁÅÕaÞxH7KU?ŒÑyf�Ò«‰œ†é§:]¾¡½“ûc‚®À|’˳Øß�3V>ÇôÉrSºiäxÿƒ·gÂ[}ºf“CÓþ—vòÆU²—=³HˆJ£ÇîñnmJ„Á�Ö®¸C<à!ú#ÿjO-ä`•?¾QjU,Òl×ë)£Y@œÂ R‡Ir¤ âv°Ö„ÛûÀYM1�û»ëU™`ʸ÷m”¼xó2­ûìL8[°ë‰:,�4;¸ÒÈNFÅÝ6qË_j^ «ÍŸ|SLQ]¢ G_ÿ�Eµ'aç;é[Ø[ºNÙ8‚¦ ¨Ä  ­ðÿ|«”Íz•©åm¾z…}õäh¼F5KòEˆûýJ>ašÿ™OÀDÇ djì¦lciöŸ A7ÿ€³#A¶§ç§ºFÓÊô™(n½M ; 9’‹I6K£ñŽ�°�krØ&L¡Çû��5§gµ¹à¦hC½o^ÿ“ñŸÌ ãX—6ô¾ñ4„M Ý8Q-1 楧æ2�Úèõ‚dÃ: `奎\ùÜÜ 4¶f… Ù4Á"’,3؆À¿ÿ××ùß>"йójx– ’r�˜ÜÿÉ—5´´û_óyþwð?£>TKð#G;¥óºydYBã¿÷ÆÝYbùôÑ¡mqF§¿™ö?í-ò?™Š3Ž.Ç¿*©±ˆ iÍJâì˜$ûRL•¤a‘0«(-�öêÕ¹’ùE*\θ;�\­r)>x”ÿöÝÜ/Iû6uá%ë*ríx‚¿ÿ'?ê?=ðÇí¾É¨»ºf{-•c–é‘S1‚_­c !n#B·\‹š˜nºÃQBvD¨BšÛžÂÄN�¤é"V&IðÿöÝÃû ?ÍZ‡×x+œ+ñqÿ'?ú­y•§¹³zšc= ,•—0ß?ýX½M³:´ÚðvoÛmt@ª*^i2ÆOð‡4së">{%ÁIŒÈ•Òô¿ý3Bûç4ÿÞ=ÿ†‡ ƒßýÿÉ�ùO†Úµ­†wÉCÎ 8š0i\7OèH f¯¦v µ°�Ó„|/_uóЍ1MÁȲTF^¨´<¬9ýÿóCþ·ÏðddE j6�T•‰ þ¢öòÅ,mLEL��ÿû>1k‡¦�4y :64-—óÑvd·{’Zã}� ¯¦’`Nþߎ‹©³ �‰¡‹áþÿû ]»µ˜Ë™9X5Üñw1þ§3ˆýO¦dWM_›èx�§ðϰÝg ™1ôÇØ=º«èl°pï¸ õð;m0/ž7ÔÛ#¦Ö¥£°üƒ˜Ö Ãû€µøU‚¸½Êé&VxñâMÿ“÷ŸL�ZfÕ_Ù_¹;d$‹ø‚­!ØÕ%\ÒrtÀí~©jüÆw:¨ßÈV÷³Œ3%jI»Œž@™·VXòRQõûØÊSÌø£+®õa ÿ“ÿŸ#ªõ)¯:Zf m§¹VÉ$àœ›2P_ðW&#¹.BÜM›¨7üòDñû_5TLï(Nðú' €É]AÍÿW_2ÿ¾7vÝ:ÔaŠÆ|’¦Ã[ãÿäKŠ) üÿÔõ=º¿é·C-•݉HPLa¢D¢ÔM3{Ó¸ÐwèœlŒótu�©?bÑßur¤s—b‘)°@rX­ S¦ËÚð¬bЀŽ4¾tüö«!�þdÂ–ß nâÀ±Ç#·~gXçO5c6£N:D“ @5§®i�~àP@‘ê5*BmÜ�ˆ’[‘áŒedöäB[—–;ñî'0™1jAMf¦œï€Âáv+)ƒTëžœõžl/`Ñ;mOß¶=‘`öŽ0;’ ®ñØp6K‰ƒDÄy�¶�1שêôË�ƒÍ}íÂiƒÔl9|!,…*ýª¥�.oê=FRC” 7Â|_üVQÕ©-H^h÷–„Ù¢Ä"Ô�PxFWl›#ý~�GÕD¯µk!Û¾clÜT ;Þx)c´Ð°¹¹;:>B%Ò£¨ b"¨X DXl 5¿Œs@¥Pæg±Œ–ßt’Œ+’±Çþ¼~x¤(üìT̙ȡ-§—ºÖíÍ�p¼¥«Œòþ(ÙðZÕMkØF=ãŒYôYÖÔg¹º¿å¯gvût›#š cI�8Òp¾‘3?zÿMصYŸNDß¼íªgMÅ€S–ºös"ÓiÜ*>®Ù‹g :ûªH9ê¿0·@–Æ'/ÅÄRµélIÑýÑ-�¸ps ¬y,s´@A™W&aAÎÙPt½’¶ç ¹û­½‹R¢À*ñOrÊRµŒ»…ä¥7 ÷j1¢ï<‡š| Äú% !0"Q÷ç05Xy»M” à ÈÞtùÈ>Ã)>3S;½“»þô#=àý"LÔGǰaP–vÚn�ø>:{-·:+ŒœâÛŠ•)¸…Ø]@�Ï9¹—Ä:Õ—mM”ÞG±‰—O[ ó¸î*Ÿšñ‘¬n"uÙ¸³Ï´`hÑC×�/:öbŸBÕ>IÒCðrLAˆ,›VÉ5†‹¬DJ»G49©žä)­¶ëÐn0W߃¹:Û3°‚ªKÝñqn\~Sä4S†£GC&-¡²m�á#.v®®±ìÈ�S ‘¹èáÝçj½™Ý¬ÕwpaR"¥;Nƒn�Å¿9ñQFަM¤‰{±ºq³CSŠ­„k�ð'RôŸS’g˜ÂqÑriŠ8ê醔¤š,7¤ýGÿPå6‰oª ÇÉ=6£ ríÀ/,¸CjÜ]…ûdI| èÀ«ß™vàØ×ø¾šÏkõ³¦%ä‘C»"Wê/$μ(į¬*¿ ¨VëãÚX©ª„þða¸…‘Ù§Þ„0k'VÙŽ/¹¦þµÏÑ!®Q»Äk;jc4´ßÛ-õÏØÁÌk¶›ëÅžüËÃÈ#: ‡Ì<#<…sß" Ÿ×4¾¹Ž õRøªOaËA£â”4OEÛp×ZZð;êÚfçé¹Te@¦+üiLP!ŽûîžÓ^l|§k 9ûT"c'ðf‹´mç ÂÛ¶<©,Ê{“L°}¯`wZó¢zEÀÎÝ�é(„œ@yHÎÚ+ÂÓ·HøþGû| - ~É í�lÅ mž¡ÚùïR..±†Ö7÷m&Ð ™¿(í®©û4ò %ÿ„«@ƒj|”J¦DŠº§[7oEn œ –í±0I? .`x�1B‘þ;¥w>YqT¬ä  žZ°).ZL¡¥ŽîR׫ÙãÇ{~²gL{dIê…ÐbšD_ëÝ‹¥iêXf.p}ßÏ$¿<ËÊ ¡ô&?\ða‰³é~i Ãx &)ê½Ü=s ÑÚŽ€×怄ÇÐçq,ÚûÐÜ¡çB(-&žSÒ&D;EÂ6ÇüÌ j$Õ΃çõ3ºì¤åwl<ìñïZpÅÌÙuV`Öþn>ÏúÜ]ÆÖ¶ŒW²Ëén~ÑÛ: q~š‰ÀxUîžS —úƒ»m0¢h,ØvL’¥-™¨9çkΤÓB¬{6½¿ï°“|ºÚïF�@ì�µ$»æºI N3iC¶dW™ÇÄ+VH]½¢P/¡¦¦Ù‘ÓB,ý�¥™Á˜ÔÝ,ëívŸ[ýK\4¬WÎkýbî†{{Mß–8î\o‡ü¼‚ÆÃ$*wÑ_ny—套òG¯ï2ÉN!& MH« ˜=:$nм)�c1»�"}ü}/�GIP²U�N%DU0’D|“4rüq þ�iiDzпŠ×[¶yUI ¦¬Ïˆ¼ã¦”ìáE#Ó"£À ±ªÿ—Þ&pVo|Ó2FãýuŸa^CŸÜŠ�‘óe5P6 ¯ ·©¸Ê6•3úùõnËm©(a“RU?¤0ÅŠçG‘�ã^_)^hƒÛ ,Ü” °í!®È²¶ò¾peùÙ$ä_V|° �øe ¥5å~Þ„hÚ•Á¤3Ã.þžß³~l^I7&Õyëïgøè!‘^ó­¤z¯„<¯ÎÜNK=n«©Ì›æa‚'³xaFkjÉÉg'P¶™ÖÖŸ‰Ò¬D*‰ÑV#J¢šõ…m’›Ñ€œ†¢ÞN¿J(²jÞ“ tŒ¢ŸÀsœ@)ÿ“÷mêJN*å>pºAÃ<9ã$ÒÕávŸ›3 ‚'01îk|‹¤ÊákÉ2‹TØJˆ•gïÀ�Ñ´ÒÍš&«Ç·ùÒU¾?; ¯Ø;ŸîÂ×'K6ŽzoKìe·vØÕQìŲa}’©GL–3ééGºÜ–C1Â÷Fc‡yâ[éå\í'´ Ú_!÷«½³o˜­>(/’~2Z¢®Oí íK&HÅh8˜9™·À&06ÞI&®oÙN¢e•¿áœY­¬ª¹e˜‰‹ª„‚ËÙ…clK*»½­$M süs;�—Êé-ZÝ›áfž­2‹2hM9K¦Eˆ)ß ï,D|7V²3MÇwØ>äÍ_øSµÏõ§Bêý@ÏØHtb¿E–kˆ9ZØCpžTôx�}•J…CêðëÊÞgÍç1q›Ì ø.ÐmÛ6çÝÖ@síÜRrpÿ©i‘ çauÿåË´¥ÌﮃSõ‡ê»œ: Û ò9Ó‡«C\þ s¯ÜhÞ2ê‡ç/®ÞLIôŒÍ]�@*�ê R؉ë««{¤·²:PV&LØ£d5ÜΠ Ñ_$šLxq¡xê »â¢sC²6òº"àØé81´Æ.t$†‹ã¿Ôõ•íÁ’æ.‡}WtL pÝŽp£›Ï\)çˆö‚ì(ˆ° ’¡×3ˆM»{vBö¡ý£¿B†š< I§Ö´¥(.9…ý,!�ãiÁq6ÑË«Ñ Œ+-Xïx´î:£OC¼Œåšƒ.ÎtÑ’åß×r†W²p<¡fݺAßó”ÖÍ1ÙI||Æ“wV@Uâ?oXqÆÎY¶úëö1b‡î;À²zF<¹ V—à (1è^ŠdA„¯‰ò_@]5 !ÇÍR‘V�„Õ‚M‡Û”\øõ¸ûéæþðš@Y«•A;e“Öm “žçóÏN×ð)“A®àž»PbûG²H>¹/ç÷A;-¦a ÕpÔÙ*»~²–½36R뱤O0†¦§¶ÜUí®â@ºü¦)[éì(º[UG”¿´@JW~Íá&–}R*7“[%svEsÙ;mªæ–³b¤té¸tüæœ.¾ò¾¡‘4i÷”¡Í{²cÝmŸ²HRƒ[ÌD¬2ÈHmf#¢²øzØ»ãU^¢È+[€¸_¢­ÐôìÛvÐt!Üt»3bÖ¹ ×ø¯£îhÐ+°±GÕßht¤�Ï‚¤‡¨\ÈOÒÖÍ?p™Úáo¹'Ö&L¶Šú½Ê,#uøÞ^²¬[)�‚Î7Ù%ŠÈl“©w 5GŒÇ€`·Qc½Ô¼ñ¶R¿�ÀŠ…DGׯŠâÍ @«‚–Ýý>ލ:'«Gš úîÔØ Ÿq�6£(—¡UwaÖ¾ñf:8Ì*2:U¨¤-NäË0iÊwDì‡ M(=|üØöè7«½O°S'N.¼ß¦æì—Ш g©•x»¯–ßQ¡šÚ )ýÑrò(À<9P‰`·7&0E"gÝ�«(c&=R§,ü!ž zczyȪà-[µlr`Ò�/¬„ÇÈi˜PX’±FarÞ»F?�ù_`UÚ½®ûâ¶ÂtÀ‰Žw¡~ºXÑÎëó1ãNJ=êl÷\û²ï®XKŽEFûÞh%føÕ�Ž@’îØðîu„Ÿ^ôÀ6UQÇCªd™ŠtûîÄîogàE_G$ÕιUÑĬ­ÑÛ¯¸?é9)¦¸Ò¼|T�/f÷—Ó�¾údÓ5âx4|y–RÑÑÿZª|¾YÔÞ¯ Lädþå lwv®¤ˆžBìå_³-{%cØÅí=ä±rh2ºê*¢ìU§¶žžxiYh¢ˆYA%Ç`�ß/ÿÉZIM-"z?#‡×LW«Ôª Dob”Âã@±óµ2²ô *K}Îj¸O§S¼‚1åëWy*;KXjžsÊŒ_ Uú){rBÏ|?—¾T¬Â]øùÓ�êsÝ X?ᎰYÐŒ(¯åÌ‹°e5ÞŠìêpš@Ö Fiâ­¦%�õX)øª�QqÈ{x튉8á`®�Tn÷<ü:ºœ„„C&hDݤls@8kL€jEvñß~jÆîÔݬì<“O]·6U÷�Óý¬Ü›dZ1¤‘ø D5³0wbÆrŸx¹˜øÉH­¨O€�QÍbç§c¬¼Cú^d=*d R,o³¾×²›2èvc¹Üˆš7´¯‹ÎO• ¸„¢—C"„æK[àªÓÚ+íÏAß^>]BÆ€~%%I+š•OƒöAšS?’sÇO›yu©÷*ßÓçmãs¦J®êõgñ²«|Þp§î*hS˜L ¹Ÿçj%·+ɤ ^ì¶©Úù>~•ÒókbÒbˆ?øjµµÁš ö¿+Ñ1ÃÁ{_;ÊÐ*}ÔÈ°È ¢DÚø”]•·c„=–÷¥Å1ņÄCÉÖÈf¦É|,‚ÜÃzð0À´ôt—Ÿìoá<ï<¼¸.S‰œæœûäÿqº_ ÅSøF‡’¥ÔÅ•¡–KVb§slø}+\Â8¸¯fü¡K4´È�(o>¬1˜*D«W},ÚN¢­ýA èH|fËrëÒu.2Ú’—3þ$‰7M}ˆœƒli!ù7zÃv©e÷C*óŒRp™?„kyà<¢Öà…ê a°ð°evV·ªB/yÇ5¡Z$þKÅ Ÿ�e:MÅ÷¯ÒÎOXx×M ¤3�¹]ý¬8¥~,Éùí«\èš�ò(€‚á2¦�øü¨AoˆïT=z„쬴EsÊa(¹´Š­8–~rž�á¥Ü�é!­<Ú{-á/ËSë8…,iX=_½äõÀk׎ŀ32ìÒCÚ´ñmÓrC|]Œ8FþlGjx»à^¨Éùü¤thÈ|±Òµ †„Ó–cÀtOC“åhƒú—Ý�´ÿÞ­dÏ)q4vvVt5ÈÞ^�M‡ dŸ~?*¦÷Ffy„y§­HŒ� J�f ^›;\¥•;Âlw:(#$áýší�ÀNJ¦Ú�©›«Jé[€5óç‚I³Ï rò·±4@w {óÌícGfB�r}TðæTÆ´o‡­ÞûV6iøõÚªºÀ?ÑáæâÛ÷ mº/ըōªÄNx…±ÝŠr)•9�§ö4гÿ`n¥ôT J*ŠÆ—o—YÞEÄ{ÂÁ¡`f‘Z¸É€ûLÁ—¼d…ë¼¢ô;,šÛðìz@ˆÿE› Aâ-¤“/âÚ°z Žª’cðU\ @ŒøÜ“ÞAo6"4«??…=öÒW(5ðÙ0’+áèr¼V %g.»H=—Ò±�Œ•3ånâöτµIxOv•£—§&z«ßûRSss*±?ØÀÅQ›b&v.¶õ^F§Cú·ÕߣÕ'ä4Ž%y]ƒ¹ý¹º= Ð𫨚pÙ1w»=ãpb§ülrΜŠýÔ?y’ÑöEôÔgoBFÇ1+íKw=3¦œá ÎD¢uYr¿nÞûÎ83­ú¹1QïrùµgÀè«6öœ[£·è̳û»Fݺ]€èÞ†å5ô¼•ï$m{‚¹„…bÕ8¶z‘™×ÿÅ×21™¿#^Ì*WÙn­Ë”èÈG� Ñ"§«ê±‚/Þ2´w3b5�)ýŸ,ö µ]Å2=dW“BÓŒVäà7ùÇôj\� _)~Y‡»ñ—gø”g{òŸÇØTd…į,©$TgB®‚¯aƒ=æ¢fl°Ís…2áºMê¼æ[�5»EØ~±rßbÄ ZöqZ,H¶7ò®}µ?ÁÊS/¿Grd&Ì ýEvÿ ‹Zw1/’ Æ»Z–Š=iQ²îQ[L')Sž2$oÙ.]Xšr‹óg"¯Q[f{…´öS�Š›ºªIæZaïUÏ»1.ÇžC¥Y‡¢š C"QÝ)ˆN1…‘{|Ëgä¦7Äí�x”Ny[NËʧÒí*)[ͱð+æ0î H’“æ\DÉ´­Ð§cÐ{º8ªÌË¿‰,[„³gÁ_‡ØÔþ^�5îÌÙß*}™Œ¿x›7pmï’ìpÉÖÆ± °¥…]ôK½þ\»ŒÃjýº‘�yûÂ(ƒÍàjÙÇ< ‚iÅŒ'ÆèP-êºPå¢jœ5öžôÒ›r';pa9†ô{0öãQU~8î i˜5y±b�½�FG*›EQ�爆!� òÜ¢Ö®¥Ì‰WÔ÷ò³g!v ö݃ƒ-m¸‡òÙ�[¼éLEQ±e­¦lò’þ= BšŒÝHL3y’[·}jyU®Zg:OX nƒ*êMî¬ñw†W† ¿Ü“ùZÃÐ2Š$…>nkÉ ú÷B ÌÅ#Ýa„©49£GèðºñÁÎA…û�>r›¦Ì·…Û„¹ǰêNµ¡h._ÖÇéc¶và°ç#iÿ�,á¥iÃk^Wâ\AVRÌÂAþ"ªy¼ôSš»Èì_ôRÃøù–/øîçDQ)_±žu§úfB�ÞÖø[“ghlõµ‹¬¼‘Ó!LÀÅÔB\Â¥Ák¨æÎšˆT¢ÙÜ>¦µ'9—èèÝÏóPF�ÇAÊMÛ÷W|C´«&oF:|z�.kßW�”Þ† !º‘cã¡a$Äõ¬O�P�邦>žZt –åF{˜¶œ‰C€Mi�0O°ðÒùÆæDhÖ+ŽÀèéT,yÃ/ðÁ³¯ÚNeái„„~ ÃÑ#éÁ¦@ÙDÐPÂg_,à3Æ(ŸËñ~ºÃý.3d°¥4¼‚¢‘ú‚/¯Ë)‡]V¬ƒ~>ÈèÆÑ’è¡M¼Íñ Ì`©ÐDñ ]›ÒF¶ÉÙù¿R“óœ¾�þƒˆe=�eãÓãðl+dFªrÀ¥«&e&à#'÷&nÕ#Ž€¶#³˜ªö£T’l ÆO1‘-XöYmî=.S ¦�Síjüóéí‡H—69- ü†ž%ÇBñ�—wÜlÎt†¨Ê)’PôVúY®‡ža•.ùµÉÌ:»<À 6uõ3B?LùèÆÔªwHX�¬j­q( &Ó/"asÁOèóˆø‰}çx4¶ÿåN»`µ÷d¸ü¿o§Xa˜`írÛ¶ýnÛ¶mÛ¶mÛ¶mÛ¶mÛÞóÍÌ?7'™œN:é‹ZYéê¤ò´b÷ÎBQº­tôú| RÍdšÙ„rŒÚ–¬œƒ³X)ù¾[2 ±Ämmë¶äV£V�ZˆðBž¶‹ ¤e¦ŠO›�:ë} �H^dËE,Ñ©Qlž¯q) Ô ‚œjw»·5usÎÉÏÒbQ _ÓÖ“° 7NKÏ8Glªò/ëA<@©ƒäN"b;\߇·Ž†$N"ËÖ5jP™Ò÷ÌÛþbدøÒ§e2¹ú@� 8”bU�£±žÅV¤QM+Œ·G OßUC¡ã,ABuêr_bò—œ}Ô[T’ñ¬ß¡S4n¾ÃR»¤¶íRúœ”0HÐÞ�¢¬¸Ÿ�nþÐbn昻à/—»‰>žzÇŒô”À8à3´ÔJÿ·xÞ<[gB±�`Fë³/Ÿ±$v„æ7íWŠÝúâiàíQþñºêvl¡ÕŸ`Si¼¶Jñ8l…ÛB¤§sIüðqRðÑð½Ù‹l�]þn�B*´ �£Jgi:ü@+êy' 7Ó¢â_m .ÑðZ (,ÏaG‰S,ñ]“n{WvÜîÞÞ PìÖvp7q2Òmµ�mo×â¶o ¦9ۉ傄“[è~D'_×Ê2CfɩʴŸ a2R;X8ô®ø%ž¤�×ê§]°™a¬¬E穽i4*àÓQP°ÂìTàïJ° EÆé…ƒ^Ãz,Éô¯Ån­"i‘ÆO¶Þ•9AnÐ0í’¸™ ÞŠö[fÝ8Šý�éOctÌp­Éà4Q\wØV�âvÓ}ãZ£¸8Ô²÷lŽ-FmÚ1¸#Ûg<ë’ÀÐd`þJÃŒ­Pº£âNÝ™,®J<‡Ë�ÏG|L;´™†ôÐÇÇŸ†ú9¾åX³×âΧ„¶Š[;]~ö·€˜9lh¾Œf›äZH#‡X:â�ûä êtD|ëPüo¤d~Írþ’ò�M•W�™©Á¥–û9?ÖÑ�…>uËXtwù‘֦ܤ�ø·s‹­™ z…’Õ¯õ.KßïàgLÅHˆ|·œù À3;ÁäÇE"·&�h¥Xk.ÒV˜óòl⺜ ÆrLÆ[�o‘Oª‹om÷U‚¿¬ÌU]6 |Ù‹õµ9 »]±#wÍ%¼bÙÒº¶Y7)�%L4¿*†Âb‡Ghnç¾lD+ú`vóG[•ÈKõœ;wýV“[|K—Ó:Í“>™_då�¤ ó7"77pÅ9`_s1€Õ÷8¨v�pIsR] øKkÐÆœ3uû^¤ÞÉ¡Q¦YaÓF_ÖW�¼ ÆQŠÏÙ¾�åN’œå¿ÝxŽ–àé°®ÇÞaÿ•(Ò÷XÍ.ZÌèÿx> Úñ˜Ë{Å#V¿¨™ß¡èõd"ܶá›|Åt¨jneçê;Î 'Ý~M�?óâ"Z‚€wËšäýè 7­­~@�=8ü#ì«J—_+_…IU (]’{ãŽ8Àßå‚ä�£>2óY¬:³uMGë,ÿÄçàiø0ö›³©¸™¤ÙQa6#¤Ö~ƒ–�­ZñѨ%�9€÷ëF~ûÖ˜«p*1šXœŸµŸ=.VïÿÙ”°Iù6rÊ ÜQD+ÇÁÌ}|�PÅ8MK¦ÿüÅÀ:[j¶¡ó«{t’ेg6WêÁ3ú;KIS†;c/ß �žës8 :—ƒ´¶]OÒ€p;b© —šò*Ìá¨,/cXz1Pø‡™�&TÛ7K½úÉ%<*²Q¶Ë j‘”Q`Y­Õ™à¹ϼÈÚs|wçQ&Ç2OçÎ|)b%/$C¹ Ôî´ü$uج%u(u籈°)7ådHFàq3jlKÜiŽê~$dë”Ј¥Á[y;ó�‹¬&î.rRÏ•þž¥¨´H­ÄæJ™`4ˆWãÙçu`Ý€J†3ó[|áOúó-Ôýå[I3¿?z<<&&‚ÅMP²Nø<.› è7÷¸Z§ [��5álÒ/fXú´?ÑëE#0žÒÔèüÁðùÕ.ŸZS Y‘4nßÕšòµ Gk½t¿S"=‘Å1­=[ÄÐLV!¦cñëËAÝ`.ó¤v!xè©G¸ü‘ô• o·q™ÓHüÍP^g«I>c¸ÅriYïG&�ßÔí¢Õþ–ЛµHŠ]ëò!À¤RU ÖÏh-Y'¯ª7¸`—tmK1É;€·ÐH*¢È ®Ò¡³�øé×ë?Iv6{êñ�_OñðÌÃ-´’¾�±ÐK|´K|Õ®}áMøÏzd"“õ‰¨\d¾ã, ¶ÅJ.ƒÎ¦¥Ž^öðße*¸g¦…u÷‡,ýU¬aKf Žå¨2GâoÔEè|8ÿLG® ܘuP—ñ8HX;áðÆ€ðp ±'ÎjpìÈj45ÿæÇ¡ÁÅÿ«ÈMˆ€�b¨ì_�PU°EQ•ÈDPÍö¶ç”š�×4Ô3§y,rµEp„¢âhųʸ?ŒîŽ “ÊØ„@ë–W3ýçïIu9Z¹�b5ÙϽ©�vÍi ìY¯�lÌj–�ò€ Gz�_‡Wq�lîÚ' 8¤q{ÅÉgc·pðaóø0(>§ —&¿‘Hö�èÇ–¨\T‚öªú0C«†nC)¸ãRšhôoèäök ‹ë[šl�dTÚåã …îaY᜹‰Ê{”à´ÄÛvò,v•“C™†óƒ|%ÀÈ$É•”Ù�„~>w0ò¥-R”é�ƒZS.¯s3p9#¨¹üIA:÷,¡%Éó4þüLlVÓD%æ†jÚ¡‚ÂNjSàX,ºÀãQt§©Ì²Sùâ‹%4+[ØŽÅù7:©…?+Ïy’±gu*©gê{õÈ'¼K,ÎñðèÇU@¦‹ ÜÚž.gõ¸gê#Qq®_í�kÁ vzšj§M™‚µÜë±ö¶çÎ,¨ºÉWl.HÆó6¡>k÷ìãV®0¤�íÝeg»14§-ò#ÊçÃ�¡R’Lfð†®Æ”ûJPÝË|[ê#_ÏÅ‹~×”QØ(ì«L6LøŒÛÞü;߆£2×Úṋ Mšúü/³ ìuAVÁV\Š•x3¿w# Žcü%c´?½0^LiÞ\¡Çq`-'â¹*] ['í´ª<¶÷o]Œ{vSaì Ð„ÂM÷¼¶¥ÙŽËè~& wõ¸¹bzDz×¹8�ñkEô4P �k”æyÃo.!­h+(yŠ®Œ[.x¦…ŠÀ®¦Ö·ºÛ9=úK7[Â/²övÁ™[5ıÛÏó%ä/3̆'+B4RZ%C¿GlÇ=îZI´»æÕư�Z8‹ŠÕ<Ù»ââ2ïüý¨àY\Aò0�%¹¢%°T’‰•·Â ©H!'A̵å¡\|Úèù«n¯ºx¬à—E�’>QŒH@p´WY‚$rË�Ÿ ‰Á0aåR’>‚ævŸhý,HÛ¿Üt¡¯×!éåÝ(÷sÁçSÙôòP¿ØYìHdx ¤ l_ÕRþ—!×Z½yÞ‚¾]­×€k∈ËòÝ0&°¢y/�öÍþ…êVÃÆÕþøAÛ‚º©ïÙà7§ƒ§àáÒwT& IC¦X´™E®ËŽ5¸çíà2дÚ�Œ7ô"F°+;Ö­uº•×4p)E‚ûf.r&Û¿ºþäáÐì¸Cv*ÔÓ=rB¼)= ÒÏmëœX‘_éi“Àâ2«¶ß¥ (i“b´aù“…«OoêGÇqñÈè‰ÉÿØò?´ÄM\ŒÛ™«8ðz©ÑR=�à 4N*œ‡ ‡ûÅ pÍ­ó;ÃîÌ ‰e», †¶ZmÛáVµôEÝáü³�†Ë!Ê\…ú®¢?ËV,»yˆÛ†3ª4Þ�ït“#°_îOšÍWFoñè­Øº¡f—$;mhbº¸ù~ñÓöפæâåâ[ ó?„ Ç8Øá·+¿Ì¯ª(×÷œîõ¦|n‰”�“EÌþ™Ë±.ªc;)Ĩ°¼ãë6ªãÈÅlÝb9ü\žInâO昒¾^�ñå—$ænÇäzPÈ8)Ó"YœÊ¬U›�þØÌÒô&v%_€„�Çëxõ¤À¿éóËÉÞ�\²Ÿh:‘¸Ùl¥q«ŸÒF”ë_I¿¢”€Û ,AL½½V—E˜§³·hòJõ5¢1…¦¡›Ž«î(<Ç;‹¶¾XçµôpJ1Îõß2ŒúOZìŸ81é=†\‘dÀѪïÏÁ6gÛHíÛ•.�U’²¥yÌ3}<9ÅÝS‹–Y²ÔD�ˆ�¢‰ Û_Meæ`‹JD­ïs ”È�(«�lùŽMŽ„fá¶þÛ®¹º Îý˱駾ÁØ ÝØþ@]À+ýbý€¾P­%@^å!( gÔ€Ó²¾\Kê�¨bMÚ½xðÕA4—œ`MákmnQf‘MˆÒCkd~ÅÂoÙÛ5WR€Ðy²�Äœ­$1NíéskZ7)'êOÁ}«¢)%e¡ª=oq•¾j¨äò∶mk Å? 7œø| \‡@óK^Cg+?¡áÄ\èJe› ‹žÇKTpºçÀ™²�½ÊLq±i&¸bó®~KNk¨D§³€pù/yUky*‚z5ŒÃ5醘ì3>¡ÅÜ€èþâ¤3"q¢2ú$tú=TøO ö�¨�+©`³Ä9©È ¾D4RŠs•Ôq„X]Š´ßÇVO°ÍYöëû“½©Kd|¾ç²Ç† =Ù´Ø.‚S;åª)§�DfÁ1”#hV�ÿª\A~ ùÉ;Á&œGÓ\¹/ƒö´Ñ`@}q× ÿ!¼¸zjNUu®¤B_eüøÍIªÑ;6o�{vf@æÊmž¹IB漜˜ýƒ`ÆrAÑg5gZgbêP†™¤qÑòBœ+ÇèŽÙÿYê È– ŒÔSêñ¥a’c‡¨Ú¼¹KE<©³� ¥X5g‰ñuLÒ=eVŸm?€á°Ìƒj›4Cdùýy¾U#?°ŒU¬ù¤šØ‘äöcͳhy¼;ÆÓ AŠ•}tês^}Èdó`àO [ßȺ~µ$YÙÔ¤1ùµ;°wDÚU{[»µ›Ê`Ú¼@ƒ¬šŒT)“�óжó¾ÅN:X7Š’ÈæzûÌÎ}„gEÙ¿{Îr5ý;œ ýÛ�rýÉ�D¨kôº0a8%@æ �åå{™Å³9Æqßd¨u�þè¿i !µ#N­I¿ö,/󈺨-£z ŽØ“.ØGzc$u2åQV¯$zÍ�&Ú¢KLi¹Z ¤û” Sið™álð=/�8l»ÕAôÕ�•­!Ü ÓýA×ûÒÿÇØhJŸÍ™|Ä8Ò_rµ6•½ $EÞê0ÛsòiîT†\å/ÞäÏŠ?>¹[ó;�7"§èrõ‰èJ-rL®ï úmýð ¾”öÃÐynˆÅk‘¬ÂªgÅ¿Ò`+¿Ya{ZÐìFUqVykßy’%3›Wm/§—æê5`-1¨É\yb˜ÇÏWhVgX¶f+‹D„FvO‡BI‹<‚ÐáG�ÜK¹hÌrÙmá±DÛ¤’½µ¨‡RËX$´X•æ8ô�êñÁÚß73øö™ u_‚È÷£ßÇVΜðì¥&aTÆŠ$–ÐÑÕ�Ÿ \½Špüé ™±V��wAÃTëJ›­ÝÂ?sYl£¬Ô,–í¦%H¼=‚\·Ô{?nn–öfÓµó¿ðOõšÙÕ¸ár#üã[¡ SR=P—`&OãBuÓÊ4ŒÄ0Z ²û>Kà]ÔZšû'£¤h×c1â²küÕ1ë¾g‡ÝŠÎSL¿‡¢eÕ²¯ñê�:,ýYâ�ujÿ¦€„㦾iç»ñëPNBïÁ6*,ð¹ ‚l×{ìý™­0‡ò«%B€]ÁöÛ5-E/“Î}VÛÜ«â>pÚÉ9¢”èJú1ø5GX«ƒ‰§ïìÃÖ_V…*Õ ^H=ë V¿ÊH eZè×V÷²�:Fýb«Ô¿‘s¨wOÂ̾´´}ªW51EÚ:¸",?Á5gûÇ“{AdÂ÷‹XÞ"ûñV�cË8c¹‰'\ð4Ûùß…‰ Z» ;XáU£è¦Òܩڡ–x|Èj¾šVwÒÓs&ÎPX=ŸÑ.n2ºw¥Ú2òYR”2Qš0à ñ”ŸÞòï-�†3ì‘ÖÄ D×qx!›½ HÃ>�ãªÖ:„<¯ÙuÜÖa…•4Á5�‘#ØÒ?«ÇYÎ&8³ÅwªöXiÄ„’|ÃÞx¹´#~Þ‘éF‡,‘ÂêbÎæŸ|5‘½ �¦Gb¼ +A•ºò›Ø›Ç ®�LóUB©�椗ӥöI¦îÞ¹Ù`¿í²÷zÝØ\÷ÔæŸ $sz=Pío–6D מöØmûD>à:šp/¯U ¼@×HZ“x%&sË.° dùt,…^‘ÈUp­tòÓ~Þ’×Ó)òþ^}¢_6%ÒbÉUeNIBÔà黸äOØÔ 4%4¦fhSÚaGšºq¥«ßì+hœ êZ æÈíBaö¦ª µ?Ò|¬ÞSN¬™gwéb�.ð‹«åîc7üäi[ˆ¨(ë+øx”¸¾¨åŠ©“0aÚnÞe’ûûÞšè¸¶Ô b-”4ï§ y@ÇŸ-9/11Z]:8ùÓÅá¬*¨{�}Æ5Á„ ³bÕ¤LöbÎZAýœQ4*¢�?#ÎEmJ;i5ë¢#Fyé_�Š ÙôˆDx%1ª$ÀéiäéIw©é�ÏÚ ë¹h£Ýaža¾sMòòs¸Ý�IAeÒ{˜7ÂæR˜è?„n "Ž@:˜?xdùØPTžótS‰~q ÅÎdv6�™ù(ÿv ‡Bˆ�ÙWÄëE ímfTå³éí³°Š÷¼¼Ø �I^˜<¢<ÿÌÁÖ�Êqrã¶<™>�»àñºœÑ –hõcwª‘ amM¶BºzêZ¿‹åÏr}@%9™k•j&($è@žV¿àˆEÞD'§/ë ´§{ÔŸùG\ÊÏ}|“rK¦qKÙ£º’–×C‹†îYÂa_¾ÿ޳‡’-Lw²c"gÞ!tÒU(ØÂ6ôô ¹Ä¦ý,ãË-´Ël½€F¸afÌ/ˆ#÷ÁÆÈ'o+ °…½G!è ~É7{xoÊ-KaR€Ëã7Ô€ŒAEŽWü^:‡ÄCÕÔƒ’‰¢»Q Âv—G¢iŒ¤¥šnp:5|ÃÔŒŽ¨}ÙÆ™ó?ݸê>ÒO¿8iXŒÚóÁà®ù“–©ß ÿ®&|2½ääòIZHiK³~ó¸Ý¹^ïû45åšB$¡?#êûërç8:gc±`}ÔYdù‚â28•Ï¿gÔ &N[U=»/>a¹ah{ñ$Ü%†ûöÊXãS‡rÕz†£zÿª'CÚ¯u‹Ó±žü}ßà®Ò +ÎI(ƒ”m8™õB4Ÿ0u¿˜KyF8Ëß¿žÓâ÷ƒË"©^»¶–\Z¼ L†ò:ï8i�O¡®,‹÷ÙM×ÍvçÇ‚†Ò¯'iÐl¾à«ìV<Í6ð–=wë‹ cîNÎ뇹…ö7�‘¿µ‹ï±Cj ð`1N´«ws¬Ñ Õ8—§îĽAk™‰‰ê4Î5$Ö¡ßÓËmÀ”eM_šíe¼´ÎЩžåö÷‰‹ ºŽÐt»·ÁrdÍsÕxÊ…1nUý$óvphö·\Ø-$.ÒÜ2œA¸óz|tc¢á‘ó±?S\ßÄä€ûdØ‚HGô×cªú+™ëæäx}Ñ'O¿Zx䲊qàØ]ösÐvr—ž ÉrjlÂ.@EñTHèýz5IÇïÚ ±Ìà)¯ç¿OúC�éˆÙ�W3*ï{÷Ët´`À#×M•èì?8„Æ»ùêòU½ÿŠ˜Z»îÅçóóacð=]X XûZ iV13ž;;y)Σ̷!$4K÷©¾g³]Ÿ ½+ÙšXåw¡ Žå}ÊvÆ`„8p—Ô&€Ö K�ǧ·ªq½©¿�§<@ûj|éÊø÷ aÍ—Ú_J¤Ù;I�Õð)¤�)%ËË2„¬hú+ ÅÍ@©å±[3 ÜÂ@¡¤0ݲŽ4y�†™;Œ³�“ "ªÐx‰ÍM¬¡ukŸ:‡3Æl’¡º_”®‡¡Ädõi³Ý*fÝ9ãx¶íÁÎCá"’6Q¬íq'Ù7+zÝ ÔF™Ní�"–<�sº==•Ãx9†OYXgØuüSL&ÿZPæœÝ:Î&½ÕÕó…Lï“<ÀB¦þŨ´ÊÈ�á‰iÿyôÝìN‚ájÑê7žgÑ®€t±ð0»÷?ýR±D–fT±åþÍKm%¶ƒëÇæ©s¡ÐµâbFPøÛYKš"b)£âùøÙ#‘ôÀÀDvê®(­8ÜŪ½VXI ¯NÍ'öB!"Å|ᤙ&–ÏOë‡U:]BºXh†L”Èðz9nˆê3£Íâº²í  Å .W^È5šâõS\—e%böúÒU7Æ*½ïknSÙ½<%_mdH‡xÙ+uP17]?ˆù}B ”šï“å‹=1Jx=°Ý\ݾP,L^%ÒH‰KŸÆÖE±¢ÝÀ¢<2wã5­Í;v=pIè¡æ•îã˜ò„{Ø_•ã¸Õß�ó ÊnAhß­e»�>ײâÐÛd‚ÉËàe’L,ÛQ„F»SáÏãœ`ì§Gð�*Eð«™p¯¹ÛlîÇi*¹¦^rŸ §JK´,Ö¹uÍÌ|óE‚ªð!1#¬3eëÀürËl‚ئ ýõÊ7�×±´„_·Ö„—›gÛèDæpÞÓ¬V�ƒ Òa;f¹–FRŽQŠ~æV¨Â*R_Å7˜ ¶ì¼ÜSŒ|>Êo¹Ø5NÍ~ZhYu ø†G—Xqï?õO³¬L¤T1çº}‘Õɯ¦G𘓼NP\3½*3 z÷ÞI9µ}ùæ�šoyO¬ @%`^…ªçic` "öÐjÞ 2³[Ϊ0Í ¢#ÿúb®ç’>ätC2( ið¶×�ŒIÜ»bï¼…»Œd§_ã›ñ?šôÒ—'%ó÷Ç<ÏTr�ñ¸#ÊÊ/ï’†µÙ{ßH¾š'Ó²>¹Á /±´08†/ÏUOa¬¨Ž »‡æp6¯E^9!2~®-dÕ3&õ³Åa²|Ê>©®:>âPzN|þ²èÈÆ}U�Þº¼%™PÏ‚Oš\�Ï£>¸ÅåÒç‚rZÿ�<\}7- |“´D'ýÀ©Íc”rFð¤¯=(¿»N€>Í´+¾²oCº7ˆ\K[Þ–KÍ”}+åfV 1ÚYÒ“Ár¶Ñ.Ïû¡hÕ3§Â"üŒ œ WŒ<ÖQ=ëL�.#°òØ­¡˜Æ«²ñ4^fïÛB.¨õ‚@Ùè ¤a=Ú|æ6Ô‰x„�‡%¬uCðño Y¢ "r²÷l]=¨å*8Pž—o¹œcZK—v~8¿VÁ‘Õ°y#¶Æ4‹¢Ìé×u*ÙP|Ť°nêi"ÿËú©8Ȳõ u6])Q²ôCQ¨ŠåDMnÓ÷X#v´~5C¨«‡£Åäf~zn.‚TCpÝzÈ{TpÕ U %F•îÅ™ôqtB@“¤WfzØkj“!°‡­(îö”e�ËÚ¥ws':’p"i#Ó3ÿí…KP�lè6,ƒ&`>,ó–ª|«ªzpR×›jÇHÑLþü'ü#% ‘¦’ˆòïÜë$™Â�‰Æ¤nW×Iˤq^g±çébšŽU‹—ÉÆ îŒO¬S¹ –zãƒÅ¢+(˜Í²¥¾8Êü‹3)D"¤„¸u´âÀ¼”–Wû`Þ¸1d¢@È|í$éOÃ2ð˜{ù ç/NŒÑ©÷÷®æIqåcß;r¶æF€ÆU·ä“ÂÔºv&¹ƒ µÄ7Ĥ­ZÆÚ5öVXÐKÌã‚0‘-gbð¯峉¶tO®Æÿ`vo†ôI ü;è#`˜‰<�ÁZÕªü óØ#>ð1U>Z°ã³q“ë’0¿© ODísÊV$W‚x�AŸXj™2jô9=.1tËc¢r ¬ÚtõJ‹ †}Þ¥þ.’�}3¨ëÐD«•ÔÕKñ>Òþ�M´d´ö“ý)bÞý�(<÷ØuNÒê|n§°.X@·íTN¡ 5|—w²üýÐÒM �£F‡’Ó±]Ø‘¬vc�ÈÃ!¤WÁTñûÁVNGÙÎõ"ä}ÕÒP\G—»‡" ÚÂNŒx °q¤ü»•£öt·ŒP0˜•íu¹�µS€uš%BÓÃ!.îµþû1¥’†€ÈiÒ »`%öEpb)«cŽ¥ 7øo ìpd“ÌÒxUÃ"¡¿P* ¢r8$¡YB)›Õܦê„õL–…E• ¾È^·F%7à#a/S$žûV’'¼†Wøž�S~ö¼ÍØå¦„KÈŽUÓJ ƒpòlÊ Þ"š…ÉdyJnc/ EÕi÷[ ëîbµÄÃ<³• °üpı œñtmà3Ûßúø—×)DO—›i»í+ÃkµÆÆºóa%¹žøT¼;S;æð[ÊÝéôn,³…xXåÅ­r ElóO‹²4w7ÉÄÒ®-ˆlf†�š-èƒ2 bQðR)ÝKÊ‘Fö+ïŸ;­Ë¥£ÌM1�u5šö¬Î½—�óy«k°ÑÕ:n›h†H�^Ãã2v^K­ˆÞÊîJoþøi™¨íðÞ4Ž cVÖþ(Þœ¯ah.Å])y &Zì}VꆻmÔ¹u<*5¥*[ú¤üdC°¥|Tø(RâÚJ6®M£Ì›’-öÛz !µî¸èWƒÍŒ9–MâµüÖÿXHÖ ÞIà|Ó,~-9ÉÈ-~/ª!bh-›£€V¦/r‡Š±†&^Û2úÝ 8 ¼fUŒëôÁ…1anJN\YŒ1,}5SöL¡ÙbÞ®|…¡BKý´žÛÔl‚\éîN´÷*ù|k¢ÝÈûQ€ý ¨èÛÅ¢+<¿ƒØzç —MÚÔ¢ó½„ÁQób" ° Óë}üWt³’:Ö`&ÑÅÂÏoêLó49X?ÛÌì÷�Øõ0¿ãßJ¤Œ� ½£>é8\ø…XÇ;DRKö êóo Û†öüìP`hý(\’RÑEá|æ6˜ÝM<æðºËÑ dÔÁœÏ2ß‹¶®pHT>¯n"ËEn¯'dÃJÓí¾|Î�ÞX$‡vÖ!žÌ$ô­óo¢Øg1 òlZüN¹Sž-üèËXu}Ø�݂˔âàWâ§ÞÞ’Õ @w·üÔhÕ!£o‘çZÜ?‹iÿÝ(ÁÖVŒ¥ `1sE”¦‹ƒ°[Ähïùr@xøw;ؤáÅðó[÷Íñ±ûw zZŒ's¶wÅ*ÆCkDb·cªNùÈ·ö~ëÍY±;ÅËÝ¢Õ£ñIDüÀ©Ú?<«G*ó÷/W ´�­ó‡+2/­ŽÏ!?CàdúÒ‚±9Šfú�2Ÿ? *¾W\Aµ8&8Œ)Ö[¢­îÚÜêÀ§W¤ü=Í8Í|z¡Ž5}Zz6wwæëÊû¤ïÊÌ«ô_Ö–²iÉnþ±]21Ù~Znêætª?ñ˯-b}pÉ¿Òç“ý$±!úïqTd2‘~çaÞ9*ªˆ�øˆÂ!pl¤H©f+¥U�Ö]#nÛ,ô¬ÒÊ• ÌYj)ñ}ƒ Ñ\ÑÅ3ÿ™ó|æÈvp®RàhY0e¨Ã-~�ß®ÁûnO ôΊþc�Ô�>z”kÏÔÒ΃€�ÍS®Ú4ÜjØÎ6 ¹ã«h€%ÇüÖ“¸ÈyoõîýBEàš¶­à#A¦ÐÎdc8¦Úëá3OC6ù5?$±?3p5X ò2È[ïU(Õ[C‚ æ=I{¾Lbc …h)^Öƒsâ\9ïcSB5d3äBê^g af Ö`’· Æ­[å�Ö¨‘mÊtóþ>» 5éXsÅ¢5• C~«ª×ƒwØË*ú0‘|àÇ$1»‰‡–W ¬�¡U5ÄÑ&Žƒj óZtâ€Jƒq£ÜKjë×ÓAêÅÓ‘s bS°™{t®÷˜°., ZÛñ¹­YÛSIúLù€Ge®ºº[•–«½“½'ªò­ò{ ×›UÈt®²8~¹Cd0í$P|CªÔÛìÜãQ‡ôaw ÿ’úþë:E5qf×rÕ~sã[ Y· ýÐ=/—áÚË$­l—í¢à±Bè´2TÔB”4 ʦL,.J€vDˆy9TC± IŸ_ý¾="ø‡¢îþ:€iXET�°HÍmÚÞÇ!w[þp¯5cÖL+ �7ªÎˆüèŽñø“üéÖ3ÉÙdUõ;ˆÂ&ñ¶èzƒ^ý!pEÌ.Ð�Ðчߔî¨>*kÅ¿D´,€÷�çã«ëþ�¸éœÃ¢‰”0øB1~×#‚ê¾/,ÍÈ<ˆìß/+¼WÞàA�›ÑTçÐà ю\"‘›/rý樕OÞ{¦4L:›©¸Á Ýšvõ<,n~¾»ŸÆÛ9`ª$VÙõÒ¨4Ã�êVÌö&ÌŽª©? ||Ü ²Þâõª†¾Cá°¶o´ ?ê«ÄS8H'�}ðó/fý~é$Ø3Šá;âO ï”þ#©*üo9¿tî°!±Âê [�Åû)7x¯�#y¶pFð] r®xA¿Z¶¢¶›;Aعr°ú9ËRçD)zȳ”—­Sô—øáï[s§…^;† �.,ÃlèŽ i Þ�‰�e1Ìí�z� ¦ÌW0B¥úqj|1�bÛÕ>ºÄ.„jþ?Ž_ø”¨9 äê;( “™ýÎæ’§œÂ ›qqZ Éä°ºC;œµ£ÇdÆO†r ĵÙPŸÔån!âeÕ®Væ†,°Ÿ~qF¥wLð¤g@¤Y‹>‡a'¦>v¤Qçk^I~ØÈ¼¦NÎŒ¤ ­Å…®ÏŸ½ÌÝ{Šéžbþ${>,xí…÷£ÍõŽå%¿-ß#ã�¬ ¥Gßþ$.—RÌ!.>çÈ+Ÿˆé?A®^(L~‘´Û}_JeZ݉Áp¥&é0¸Um pó†ñbÎr�J_}ʯ\ƃôŸ?Cb»¡�8¦çB‡Ã¨&6V}×r[+X”A¼`2ÿs®á�¢Ó†œòˆþMç êfÔÝVLgç(Þ— bðUÉò¬½ÿ tÉWXÿH2ÓH|œ¹‹3cOCSÍ3üÒT¶–˜YY~ýcÉ#WΟnrGcF³õ–’ý~Sz]ƒ&°! ãåÜgân/¥w÷{ž­ðêôù/‘}ÀÿàÔ߯ ¨0œ‹–—^¥ù·’÷c| :68ûñ%ÚBçM )éSp¡ñËÀGt=ê ÚékF<,3ƒ¥CsÂcŽNÊ Sp›[ “sû u öaÀ·e�ßYëshÎ*ƒZ³Ø�¶-±�Pï{ò…I»€}¶�Eçâ½ÖœÕ�’x­ÈíÞÁ§™ãó'+s›Æl-Ä\è'{„ä^3½�P·m2Ï<�·¬�Ú¢à‡×Àñ‹)ÄWjæP„ G{õIåá1³ËtþæZ†ŸSy>¿\þÛûÞ‹*óñÕj¼¸ÑÕëÄÕ¸û=—¢ê¢… ”�Ø^q7Z(Ú̽³6‚)Có΋^ËËûÔ‘ÀMey©i�) •ŠÄ.ýlŸOo¤?.1ÑqˆÓÚF=ùÀòÄz!Wìãf+çxLíõÈ– Ë‹¨:·t@ L˜–L£îföoøò¯£G]«+1•ûièX k·@Ý#J¼û¶ËÚÀ"Œõª(²¦†«bÊ'ŒóÅÅÀ5ò"Lš ÷Åeü¡’Q÷³Z ýÎ2³¿«ŠË7ƒÌªÞ ˜u15~QzÙ̦÷A+$�¬r;á Ø (iYP½[~#� Ùp1Vœfµ€–Œæ©nã ,ãfÀ¬ÛOÅIÇ\Á™D©æ ¦0 M‘S§¼jØ) Œt!úþêö°ñžY$zúV‹^¡ºÁÄÁ^ÂÐ܉p“˜Õ1ú?3nö×n÷ŸW^t-ëÅf7-éé³Ï8—Ѫ{ózœ6e+aé"aäLL–éì�:ƒöúbîæƒ 7$TêŸ=`Å&€÷ÊwÄXœFî­¤l7�±.bÉ&ÑÂï5u�)³“@¥ãÛ3ßTëU3¸–>Pqd/‹n9DƒH|‡øœ †S_Ç¿¨(«›ÌjˆXüKKcÏ"³Çrä´­EË9hWÿ…eDÓ–ó�LÍV£Ôt èQHGÍo™8sÜ¥e„sý|”“vŠó«“îÞ¶¾îÎ?Jà!^MÛkTÛˆ 6×›é-·äN¨i€×TEF€/Ù’áâ¤?Dוm¬f½ˆ0}ópÚ‹¼¡ñQ±ÃYN,W,‡^ÿll0µK@€™¦_UŠžn¿c\¥–q²™÷$¨}~©7Ô>‡Žå$Ò+GWõGÇGø][R=ì$,£Þ&ˆ £GwÉáµ-(¸aJœg9Îê5±±‚ÞxÐì“ÁÓp©—ÎTŒÑ´]tÁ ¹Ì±ÆÄ§×ôŒåÞÔâwŸ¾–Aq£4 sF>ºx.SÍqŠƒx–xí|È›Â'üÄ‹ª%å8søÊúŽ˜Ù‰1ÔÆÌKä»iˆ¹iXå7Þ$’9`¬{w$|3øiAƒ=ß0Â~^Sp.¬-÷UmZ–P'ŸE‚3Ý· F¶KBü¬ü™.Š­!‰$CƺSjþù»;HšŒó£?C&Ö ¼º™!2 ¸¹]ËXN¦®2�¹-Ø‘¡´­Î÷•(ƒ>³·’Òª»e¤ãyÝö�ù­ëfM�|‘Ð~oÙ”T�"JY’î+i̓¨L²›ùŸíV ÀwQÐJGO*�7-eqhjYú¯é5¼ض�jý†SŒ¹UF‡‰õÓú¬*êœ9=ø�âY�×5ËЌ릷ÓKžHv‰¶Œ 7~u�è|UÐnM醻(Z«…©!Á3ýºÎ­¢¤£OX½±ï(ÿ´ÝA;„-êúBR³³CÇ*gfbõšf gm Á�§¿~3KƒZqO€^³|Ç#fj u/t>±2p' ¹R‘» ñ<€MÿËÀÔyikÚq ¼÷qñ¯Ä(•8èw²=™ä0@¾xŽƒ&,„¥+òÙÕ•ŒL„Ã0xVDHÝý ¨ß>`'d.Ix¯:ê×z¢‡@Mè‹S‰ÜÍ}@µD«Bã'–Kø³ƒ°-€L «˜3*:�Ô7^Nœ!IàõߊÐäÀ¤¯¼aïUT¥I‡?üèu˜æœ”xTKw×Z-€SLÝêÐ*Ó¯©— v)ÅÄ} âY*l«¡`a?ÀÕý¸Ðpö%Ä\ØüUŠù[1g[w ¸j ]™¢ôs"©ù 2þÕ5j<ƒÏqÆ`åU�<@³#ÃH%�ö¬\2 ¹|I4‰ÜnS*ôºäÐF1�껟ԄºPÌõÉ3 Xͨa1Ú’Þ%@Ãý7š^-”¼s+¡4KùBȧfJ”ÖÔÙÖD½ØÜ=Ð2O–üw§2ä(Lq2øàÅí¿¡‘°—óŸØGWÃË´wÅTbÑ®äЦ8�Øôôι;5Ù9ùf³€¯q£ö’€‹µn:ËÚÃi †tbÆpñâ§—]uÛ°usË»Vi‰íÛÙ9ç®pòõU©) ã¾B/ÇéW£™1¿š­/³1ãXXC¨¬wìRhaÅb>Â¥ºœ´�$Y­&æpס�æ6”ؘÐînQ~í‚4"cqÕSp|¼îU@š.’¡IŸ>Oö ÔÆîŒÍN{3ÉLÍ(�Éù€¦´o0L;úŒþä¢S–ìI²BŠDºþF:,q QDW-¯sà äžq ÚÕê4îSÊõŒ@Z·a¹$ C“sLEYÍ•¦÷˜ÂÐo(ˆ”…˜é–†ëš”ª"Ä2¿ýŽ:ÆK.×ÃHè94Û90kä@Ñ\>bãŸdŽDPqÌÆ÷þ'YÙ{(z�`‹Ô»a¼/s¦öM+.¾\Ú¬ÀŽÓ5ÄÈ©¦@ùG¤* Ü­«<]@ }<�ÕCK6‹Ó@o aktj6¡ Û{RÈ%Y]?[h/Ç&¯âTþFÜd:å¿vúOuR«öajÆræHD‹’±I1 w.Eb)äÒvNý¥ŽŒšìÂã1fF=Ë„4ðð I/%¹}%ñ|\Všì‰k$< íž‘œÄv� ¨VHjÛ¹~¬©ØÅUkÀbStÔYY‡Z¬¨™ãU?r??«@·¤ŠÐL}öAD€lµ°áÅêœgê‘9j}'¨V凴c››Qõu·‡¤\™Û¸ÀiãÐÀ Ô1ˆì?':”8¿À… `û�Hq?ïVBDÀÕK~ ˜äfo7âšû6ë”32xJ‚ñË*àa®g¸á\¶@¤DX´^«ƒ7œô=,*?z4¯.¹Ýzùª ÐSŒ›:w!±6§øU€;2|Ú)ȲÆï9m?Òܧüø€ Ç#j©oÁå9á\H³„Àˆ TÚ�UDˆ÷?O=5‹ï¯Èæ éM¿ºÄy­¦ ÎB6÷k¶°ùŸµ_ß%18vòÁŸk¯´åû�C»PÀ<È¡|žd)¼üfÇo‰m̈‰+ëèÛù(0Ãpû}ÕÏ``¬¬³¼\ÎDdÿ›5üX²ã¹åÛ7¯Y—6ןÔ\UñP ñp C @B±ü+‹¿|êpkFùóBìd�>céB)9Ø·$JH2ØØ¹µöD+.T”á,Ðv9Ƚ8/ü_þˆÙ±@ßslXg5ÛÀ²,z…1VÈë|f > °˜fæ ¦�äX¶+#¾_“Å,PQf=0@b©ñ®t_©ú]ÔõļàÕgÔÍžnï äb?øŒ³P­ýœ²=Iö5µˆ¤EvDRé?a> ºìò@/Ù.Ú5)«èk5 æÐÙHÔa÷\ñ;\jëþ5ØH§?z,OHü+N¸å‘ænÓKK>›Q¿ �”I £ô}Ç?zgƒy °â~×+•¬øÞ•Ú!%Võº~>l¶kü /yÌ+qF!V/ˆ%T$Ÿ u5­JÐFK¡0€NçsáÇêgü ŠââmôÌ„U—lÀÉ›G,ÅL¥×A"‰7îÇÇrÖÔ€n·w³[ )Pùwt¬1æ�E_ÍŠ)¯sñm� Q'±‰9§^DÖ0ŠsƒLN©>““¦Þ(C¤¨‘G9\¹Mx¬ª8öƒL���ðÌ8@-‡uèÔá±Ò£x?»9·š_ókôÛz݈ÙJÒè ‰#È$±ð;.KZ HÑfõ�ƒ_â±ÿŒ+uj½Ô4‚Éa…hÛç5 ƒu©Oe@4F�Ôl­ÖÓó«@)wýŽ)íE‘ÏL±3”¤Þs¸_×èý=§W'÷a½Â%†—£òT•öì¿)=q )šë‘2ŒªQÿx~ó/Þª[g72³¨ ²¤ë¢îa?gÈ¿E�#ÍÛ’f�®ÿEå9ép*~樕¹ÏVŒ:k9tÙñÃõ·Y^ ék„d‘œ„O »“�; Љ¾"'íaŠY¨Übªê_ôìþÝ’øÖ­ààzTR' v·ÕÕQóo*ÄYE{Å/¶®�N`^izÉ?Åxñ‘­ûÀûRÎA9ïÁm�gä{µSé€B’jù‘¸@™Òu>+À²Ÿ–èR3®›Ê‹U³Õx¦RDgã»À¼á¿+tLnÕ>eÓR¿‰cLB í„ _¢3=\¿1¯A1{‹LD¥ü<¨£‚7 pwÏÓÿ ?–=‡ªÞ¢q ÉRª³ÉŠ*¹Y ¸²�h ù]ò4K ļoŽÒa€Å¯øÍMÙߎ” ¯ù,¹¨É'?¬ðTû†n?)C#díNòj¨¡kY1”±³N šî4¨ÅJqoò.âûùtÖc9Ô^»Ä0êzhƒùíEå$D�y=m…{CÙ°2$—ñ6•Ÿ!Ö˜6&¼Ò 3}T2TGì4$Âw c¸AD{¬:{JaÎàå�ZA!.81#­\kg\ŸÈF+{ä!�ú  Á¡ÄX,· &n®�S ±Jœz€Qî´¦O]gÛ]_K©|m ޵?”ŨT;<ók÷ÓBôŠL"ÁdHfƒ4,2]ª)x‡¿x•‚å~çä­Ã�*Õ¿-ÇÑI੽Tó[•Ê`Ÿ*[EaÐçq�.å‘¢ÇreÈhö‹| 1˜Ë¸1‹È-êDÈk£ Ê?邿n¿‘ñ·kša>$»�Y¾§zÂ~ÇB÷5xÃdÇä*1Åq#Ï]Øí&†CQB–L$ïkëÐ?ØÎ±—˜—Q4ÞÈœuD ’ à}à˹z\»Ò¬+ˆ!âhzæ²êß{œÀ`!¡ÞVY¡|vgþ ì~YQ‘(¼�XEÜ�Lç¶AN€Dmç°UŽv‰¢ä` ¨×)tè éSý�²õ»A¶(1®óHuù·É“Q¼£ŒèÅEtª7gì ZÖ’¹!J„zRѬñV¤»“ìdžeµÅZ“SÆ›ÈíâßÌéüÒæÝG·ÿ w¶µ>|À €î0V ð²ÛcÅw¨ÔçuÉì#¿F‚mÖIªnõ%€\ðÌ�Xä�¿ ÙT<'/úœ’ègòà¢ÂñË â�&³@ÿרÒEŸsµKöJ,Òþ9ø§�:­AÈéç„��†BÓ!º9kp�6 ü“%ŠKZÓ’\„å);@ã²ïÂ3¸AI9Dè–_wÁFÁœK¦� bxN4„¨”a¾&]Îåðùæ|P:ð„$öÇF%eíäL’G6/ô|_0À,}µÐG·©|I½TrJz±£R\ö(AñDì©Ýþ.Lý릂p,£m’ -ð¢"åQü�<«ßʬ­øÑˆòE©¡¡`KS!“äXzi®‡™N©Û‚Qdé eug;D<’À5¿°Â¡£4¬áyÙŸú¦¤°·‰`¥Õ&Lô¸µÀQ+Xmv°©.¶ï¥ïª�¬I;e!óÉèC]N*k|éÊ4·cë¸Æ¸¦"rÁ˜™l�¼£ê�ƒÏ¢ý1¼<»‚hœ7É4Ù)\wª‚¬Yol›¢±´:H¸i¸9]oñœ›p}˜±öø‘ÔVÓ§Ýö/Q÷ÏÛ™ŒŒod4lÂ>®“�˜çuÀÞËÈaÉà]épwý÷8òw¡¼øBÏJ­‘V½;$2„—S+¥Ðßw§˜Âkø_xó‹vk^óý ¼Ä¡{úþ£:£\^ÎLø¼õ$ÇÈ7±CÇÊÔ‘ð)›/œšå¸z\ÙÎÐ`ùGžSÑ ^¾a…âÕ ¨,­á?£E,»�ÊUyvGM`ÏÐç¬à bñÌvÃÉGH›¼S¦µÐá°æ´·h¾l)C#&HhÄ€)¨„R�ƒŽu‘¿_ﯻj=çÛ¢ÃÁþÿï…ÄÊ'{¿&Ë}P"èôÎ%ÅÁ>ß•n;jÐÝ�GÐ׾­ª'Ï[à`87g@msYå » óãôÑÅe¸á6,�øI[§Vut×]õz‹>è€bÙº>Ñ£—YF;™XÀœ_þ0z«ÎJ&_>uY¡®ï`º…rßk‰?Øø¾ù¡ÈdAƒˆ¤Ïòr†¶k¦.\J7.ÿ5q¬m®çϽ�2ÌÄÏ4Y7Éj¸~yIzÈ|ÎBP_MéÀ•hGÓ~‚ÌÌ–×íߘQfyï.Î`Š}+¹ÓsÙ÷ÈE�W•,íüñMüapÔo¦©ë©kG¶6k ŸÎcZ‘R6¥Z©”©/¤v>¿½úU£±DR?í?ºÏaÞlŠÖ[ýÆîõÅu�´(C†å×ÃÖŠ»Ö„ýj›_�3B  ªXŸ‹cê ŸSÃŒ?%6e#]>“Ë0ŽÈc¶óð—±®<:’Li”A¶t²@KÖ4çiÓ†zv`Ž™[3nÔlFrx™níN�pd7?xjõ¨òÁíÏç%…ÂZ T[âqAãDÊﻀÅ…WšYc�Æ^©uê zï·t»Ò_ŒØ^wS$¼ÏE».K7’WžbŸ à°�2ô3-‰1÷dÇŒ#bd5�¸cµ â7 ÿ «—ö¥{Ü•R½º�Xh}Õíïƒ » ¾oçèr*€HÝ@Õt»|"Q_rÛ8+‘»DÇ6o¼GO7#[“¥¡ ®ópÖhLÊ®¢–hP3¦m·¤1ð¶aáòÈ]°—èX ±ø=0ÂéYDxá·1©F$ÑW$>¸Ž§m¹yèª}½ ™ç}žŽÖ:�¦“”Vsû¶;- §Ú½¢7¹Äj�¨çsžE>Úvá!&¾Íà¹áÝî³)^ºÆ\ÁÊ÷]´4`A<\¹¾E´’}æ—EkFÑÎ&êfw ¾ÚnÌÍWêT:ó�jIùWævë´µ&ÝRõ¼F·ân�éq›,šŠïÿ²4Íýó¸E׬£Dõ 'ßU5ßÈ/£Èˆâi›×Þ:ŠÒ]kÿ„k4(�G�üVc‹0%²²›‡©±FÁ×ñþ¹�æ ü®ü¢=ãS`ÕŸxÜNɤ©!ÝcëÊ�0½„i¶é²�AŸ:ˆA|ë‘�›=+äÊü/óI *WåôÓpéYÇTÃ�xV…jé\¼åFZá³)¨Ål=7*Ó«Ï29¤J � ª´ö–É-Ôd¨8 T�#,dQòö~®$§m]PÅ\uAné[š1ý&�öHà þƒÅ–wŽœó3æ:~ø1éc2õÑJ,}‚ªÈŒÄ S'ô;Q)‹ÓQèö¢ƒý#>4ð}Ö~Ä Øµ›ì>Ö}�ön %¼w½fø¶‡äòèj©‰ Çî穈=~§¶`o¤ bTÐ OD>)B¯ßêH{aN%0{�§ê$j•̹î|õ^/™Øí¦À‘\.Û.Y“?Þ7rYO¢rnæ:( «\-™0óæ±ïŸj)C>„†Õs4ògûÞÐj=�I±*ºÑŸ½/^j–.±M‰²ë[y¨‰W$Œ¹È[C«ÁÖº­yŒm物Œ] ­[ÿþï­¿h¿£u4€™®Jçô!t|¶„QÕ¯“œÈ‹¶¼i3ÍwnËóq}öÆ`É;Ù/°Xš½²™æy.Õô»ý+'›Ü®àÓ¼v­&]ÚLô×ÔIÞ2ÁÛ/qÕE¬YîÐÄäðpìµlm0¢n×—õx‹4m±×Ã]GÞ¶ÖTwÙÄRF§;WKÓÉËâ%Ùé‰`ÜrÉ/-ÍŒ¸öí\ 4P-cbÇsäƒDñv_Xqv~°˜öað |^ˆæÎ únGZ+ÿª´d¦˜ Öë#Æú¢´ ,ÈŒõX}‡E|-ë_ÁQ©åjfüŒ'â³®}­MÒ©mˆu$¿ïþa*?¿îé6»5ïÅ(Q4*Ôl޼…G…Û½@ê+¨�/!Ÿ,�P²ŠDQE´à¯'±u”+Ã=nß×ÜÀ¹-Ó W„†Q}F0×hSå‹¶¡ö ¾”W‚¥ÔË•2Éð‹ÂG¥\Û­+üWÞcÚíìúòú‰û \��GC®Ìñ½�Õ|Y!?)³såRW›0¸fÞÌì�fŒà½Ê@¯YÄŒ² #MESU¾–Z·ä£à}’뵚ÔäðùÁZåµÃŠè}üÁ7Ã'ËJyçÙ×yæi§Þ`�ôâçíÂò It®H9‹U]{Ý�Ø2…ZJ\õí&¾§Ä™{ÂËݵ°‘é4oÕí…öÑù5Ò7¨áÝžÍ3èÂ(/—س�Bº Ð +5Ù~=^©ÎÔw&DÕÈnV_ãPE…•´q�âDq}Ó¾×Ó›'ΖC·ð¥mAÞà–Ld&¾>ËRûJƒª)�ŨOú( 7íD[dØ #rDξŠËŹÏ:�ŠÁPï¢<Ø™eQóÓ0|Á”0)b¥±4ßž¢Ô‚¤Q«]>V+ím!'Ù{Ní¸ÒÊQ54Wu{RòØÙøÎ ï�„›šÄ4êÈžÑûÄÛw‰Rl ¢Ó GÛ‰�Œz‹"L‰©Ïgd£Va4ÒrŒÓBò¯Ðo§zì:BfÏ<ƒß a#B…úî´)еCBb1°n±/@A}è°,1'Lx³�¥G­@Û”ó`[&ªôàŒ´t̃+t� |]ro‹—vœ3b›ºÎ¹ÐËáò›ÓÅ—Bšž0s¦¿Ð–fŸhm‡œ3Um|.U�u$ó1þ~·BÞÅ�Žâ©jV"@*j L[¨me¯šÃÎîi%Žkvx`ø ]Aõ ¢ëƒës? áMÔ˜¦zÚâéM n�¸0r™ÝA«45FÄF˜×#�­ZÄÙäIÉÞ‘î)å÷¯Ä9û–æ·*”khNœZk!qèÙÕ£ðÒD• �§•Á ¤¾îacóÍ3æ µ4‹)~ÖØòsÓ@YX«… ;»‡ G×>Áß8S„Ú×öñh²*üE�¼uùd†«Û(ìö‹»×ìžá;ÃÏìó,`ÎNcæ–Sú|ADä-\4¤,µ£eÍ�˜’ŽÂÛgì3¤÷fu–ª”Ù\ˆ‡æD�-Ì»œ°¦�” �ÐàiŸýƒ»ÐCv4?°Ï:F�”‘‹ot(P'Þ±E©ELäé÷Ìea©VRp>=£ õ3x‚J|V*’Õ³LœŽh‚¿·®#v–I"671ûéC¾ÍaY’ â:ý¥h�/‹„ß¹û[ã ³‹‘r .Ö;;?×B~ŒWbÌìÍ1T‹±·„¥  ïâh‰î­s^úàm²\ý¸¹ü•1šk9äpx¯ƒ@iÀ¤eÖèê‘Ä™ %G…±þT¤òC9’ßH‘S&Ç,[qº› "Û¥]†êªø6Æ3Mr‡Tí#¢hç™vØ;ñO#'‡‡f ¥3›x[£¢Ä= t•(‡î0‰""�íi>fåê2M7—¥¦„Ôs“MÕœ‡ú×­¯Ï0Võò«õ;‡â Ü—Ã0Ñ$�r€ü2¿ùÖ�q]2Z Ü>רºsáÉv³‰ÐÁ%ž ú…„Žl对u©\>‡ŽalknH- g„ÚB�øaž=ŠâÙ¾Ó¸ü€u‹O˜Ão@Waq(Òéˆþ¶ 1è„!”So”¤k4î……%…×`ÖfBJ 0¸p“J„çê]h´zV…öU÷]M©‡ý#&óÎBEÿ4¿™ƒ„•Pª£ãˆ†ÆGÎQFrÓX”Ë€U4;•_‚i¸4¶xÛp×Ìdù9 �±¢$­‹tçá*iG3Óün-J<&»æ…% _qΛ¡c«fA® £æŽ{HX�$ÌÆ�Yôá*ȲTzÐæb×ñXL_!ËÌ›¢”(’?½ú§³�sŘ=šj\©Ôÿþ ^,©)é+‚^C¡ lžfÉðÇÈK+Ig*€‹Ñ+è)ç3Í]ü®Æq¸‹¸ íûc˜k�¥ºµô`‚µ‘5,º1ľû¦j/¹ïaâ¯]X#éwu—Œo¡¼ `ă ÖT˜~§ÜˆÁ.XݤØC[› àgºøµLºs|ÀZM¾÷�_ºžÖñèéìÔ<î“™²ý½ag6‹�'sMðÁÛ¥’t±êz‚âœSÙo÷ss…!åŠÿƒ–`®ð" ïâ�ž¥Çd‚'´Ig4µ‘Æ쩊δÔ�ú¸k§×L�)ì¢È<]í ³ÄŒ}’ Ç^ˆ· ´Ïñ�G (ŸÐåæþ\íR‡Óf–xýB«rÄÝ^C¡ÿ¾ä+ÐyÈkÙ.æU÷égÎÁ4FcýWÑô±ßRв—R€qÔÍÛ ¦lž$ÅÍÅâ¾"u‰ë÷ØÝ*�í\¸„TCE~Á7±�ɱ¬ÌáÁ›@ä�I¢Ý ›ú8”ƒ¸ÈÇ?ýºáH –µ)²{Ó|Mð�Ç4pül>™&ÒÌ´˜€Ë´Ššô%FاÍ>J›·=»‰¡PŽ0FßVüY²ow‘‚H(û…1Ķùè´"E ãu؈s‡=ŽñË-å2Õ›�ˆì§î‡z<:V´À¶¼�Üô¶Ví€M⻾©·@Sv‡¾èÛF}U"n¥ü}ÇÁ�I9«!]ÿƒàTI7d[«K6 ß�ö�~™!àkXfçÛŽe¥GP³a 4Ø�’=6P;[@–ñ|Vu(åi¢O?­ýŒt˜ðàýSn¨4–Ín‰HA1D5kÕS… þô`vùdÍÚ24ÃI°ªÿ8;鎗݋•$XçÜÔ¨š�èŸgòßĪ޲xªº€‘ÕÊ+Бە@šêp¿H¯–¶;@)($Ñ,’ûù,dÒÄÛ蟱})û"K[*·³Ô=µ_§~B×_ªù½Ê ‹gJö‹NâÔKK$qUax‹&£{k"íôׇ¢"Æ´DmV¸Ž@üÈ.^ßœ€Y–//Tüèxx /Ðã(�)�„÷¿i¢“…ÐC(—[<,´Cž¶ìÅkín»©xTK†¬bž�zb~†75 õzÉâÏ¢MP’¦ÕâüñjwÙð,Ñ“ Ù§Ñ3-*áVGÅ>éä‚`L×QàÕ2¢°Ò~ÖŽU�·‚?Ì»�YÊq!¢0ÒÅÛcPdýŽ—¿GfiµSµÙXßΈϗ⠑K¶Ô�û¸wý¡Í�°Ëà7¡>Ž»bSúì3N•&qÚ²“²ù£(~ôØRÁŽ ådžÖ\“ugüP�‹$+�<Ç9¤ÞtP?¼WÄB�q‘‘ó¡eñŠyZ#É áŒž ?kZ­< ¶Q¶u¿j òfì¿e ÷^OÇ´°<^}VÀæíΩP”£q"¡‡žºþ$8>{0Dqð1s"ßJË—poi‹ùPó“oþ<Ü12¶¦ŠÐŽ2ÓR -6ÔÏÌä‚‚J‡�ý=.^ÿF!ÂI}Õ#œñŸ]òæ!˜ãgk�’òexÂuM”¾€JåááÂQŠ8bùÌž­¢øÓ ãsñó•”).�½5k›Jaw$¶´„hª°ºšÖH^"Œbo%!ˆªƒ�êl ÁžÝe„: :1>ïØgŸ2dñâ‚~NŠ¢ò@*–ö¼È\ô¡‘c5ß`¨qÁdÊ9 bÅÈ`¬#VïuÄ!î{I•‚,f0¥¥ ˯bº'¾Aq2C)ý8º`Ü®ñFßUy^<Ó ~g©FëÞ‘ÍŸè­©rò §-–Îoæü˜4âyqøÜ˜7µÅe ÷þ£É¼å‰îõl³øfQÛ௴çÎQEV(´Q�.ÓÎÒWíÓ?îP]Ó&|œ˜Q±„R7ˆOk ³?£íŽ÷v;:%n�aÂr�n.ݾà—[«@.‚ ‹ýŒ7i¾C¼`¦;§žÇ‹öšFñ_C‘o0ez‘+bšÝàÚ`–òã¾óB˜Yã†Öøô]ÌçlöÍbi{ŠãÌ•ÝcuSÉØa ÑPØ=©–Åže -ƒFe§_é@OÒ°@MÜÖO m|‡�ƒRdä$JC/Å6FÛP¶Új9ÀñêÀkôÆÁsMQ¦÷+x–û63Çμ[~{í®Äcû˜V,Ȭƒ+°-ë&eÏâ^ékò£ÖŠ£ÿ´†d@ï?·þ�ê¼xè´›\¡©:xÞïþ|¯Œ¹pùB²=ÙÓKÀðÙ,õÓ½òÊÊ÷Á FÒ^ôÏùK…¯„ˆ §r¨ã£Apk ÕʳšPœ½¶+õ…òŸEçgˆt<!Oþqˆ¯�-ᩚæä*lyw5½ÿ ÷L±KJ„@eS@a?ùRZÅxLª+ú¦Ç#é °¶÷Mf@,®�’—ƒ?ˆqg0¤f°Î„ë…› ÝXù²�&Œëi«:£î3“Ýâúz$lÿ”å£^”`yhÍ@yUіϸ?­xsYP@K,`n…7ºª¹¦Bý0{�^ÄoꯨèK¤Ï<Ž€Hc eÖÍ^�ÄÛäŠq� ã[{>ðI¡F°0�à_\Óñ”ëtô½l¿%¿ÇؾŸØ_ -Mˆ°ú3Lj¾®î³o{ƒb°omIÁü5ª‰øp_üžåÿ0?·÷.o2–Ï ƒúæ V‚ËÄ„px;I¯ëƱÒ%9ÆHÕÔüt q�ºóÍÿWç. ©¨–UKƒ•Xaâõ'<Ùmì€ #Z™¤=ËჳÀk\èÛ|#ñ¶Þ_h¹ã–~¿‡}[´¸`‡¯ˆ¤TÞ‚+bEYÍë\QYÉA³å9DëÒLÏ(H+$÷¥Fé3òb`úY/÷œE/( tòÈÈ .`úãûï¾—®ñ¬ßJ`G±,Ü�T&‹A7Ü>È*�lj Ý)É_Ù g’×âÎ%Ž7àÆ’¹›“û# ["ðîØ ºE¼™1o††Èr êÉú�ü‡”lÛé"—!<áÎ;©Ìßc5|D2o² ™sV¡ä½f”ñaæ] ‡é'«n�°š¯¼R|OU¡öžÆÛ‚±'…ì®>:ÿô13üŸ2>g¦™d�¹†f„Oý‹“Ë6÷ö¸´4î?O1¢ÎÖ8+HU—ïKW0Áïo�i]”€Žn6}óX�@Ë2nžD¢�éŒÛú!h¹N~ ¸ùFn'ûœÈººDGz ¿¥K6XWXôŠV}Q⊳zàã~,×øöášØ gÅÊð g�ºÐHa‰H©i õ\$¥OB¼qÆ ½V┟!©lLJF$«²98¹P�šCfí:´ªdNwìnµúF•¤ÆN\ûkãèKñqC /j〇Fʳ”úÎDpŒ`â£ù¶\p3/.6WÆÄD× V�tÚöŸå›¬Oþqpdqp‚¨(aBR±àœÅ]Œ»XÑäÛ{6ô=×àÞ©Ñ�ó„.)G!3áªeŠÃQYMÓ8>s)¸ Rˆ¿‘Žº±ë£C¢<˲¢ôty³HØtQ�áðþæÓ¶Zw˜“m¬¬ûô9ðG:�@¢KU#y®2©^ ÂÓ¶(U'΢{QJ¼öN—ò ƒ šÖú¹.ò€(t N%0ŸD ”rzu,„•«ùˆ¬^Ú Îó¦Ç»ÒÖ•H¸1 %vÛžmæ^':6ù–VhÎy4DË«vÓ{i·^¾�oêÛ¢OzÂ=�|Ù=)µSÛ"ÚªJ„jB·ii‰‚Q§‰i+Í ¨À­ T‡W?r;,9n)™ù:ØÌ¦²šC# ,E¦¼tê˜ñýÅ+ÞÞâ]`ý"^’šÁßjCPB\*  ߎ0LQ–«üÚõ²`AÏiäó¾²åø8ˆ+°áÉÉW¶Â�˜Ïĸædi¿„¦}+ç"륬µkñ·¼ãÕ-l÷özÕ0ê˳¸¸.¬›`ß{>ØkòטaÎ�Ižàfö¸ÑÝo·’SQRï‚uÆ‘¢ºt 9iBá<Æ_­núÇŰDì©ã Û´ÄÕ%ü5××ta†S4«äÈ�耮áÜLõßš±ïùø­£�:-a†¦²ÑBÀ:‡‚±F½T¿y¶jlòÙƒY¶åÀÉd`Ê(î¶k?ã ò ²²yBL‡MÚ ¿Òg�š~b4µFFÄø¥!Ä�✌Ry¸ƒ8Èhö¨¦ã*|< ãÉvgì¯{‡HÿÐx:šÖýs'wÏ8j°Á4ª¥ˆà?ò…–¼A]˜¨˜€Ò§£°p3·TÖ�ÒÕÔܲûÂÁWh·ŽºlkfÎ gé'|0ÓËo)† ñ—#„».atELP� µ ÙÎæ±™ ãw’°€>M&_©.,0äá4É0èú$?®ÒÔБ÷B‘°»dÅÚ4P$f3ä¯òuk ëP.�NwrÔ¸•rzG¬â¾c<`%óaN¤Þzl5@g¹g‚(W£võž´¼ÏĦïŠö0±@P —ÖŒ@–”%znµ)‹ƒZ!ˆúײvƒÀµÁèur+š=?·E]°ç/ç•MGïÈ`û…µa‹¤Œo%ñ¯p5Òß?!Çî· ‡Q}T*ÎLP‘¦þi–À#-PlZJÚK8!ú¿Ìʾ¶¬N‚Žý=¢ÝEoü¦àÃ$ù”·W:JTŽJ…ë :cez…­�OfþpÇ=,ùfƒç?Ó½¦—D(™ê„¨”.¦�ÜKeè“LØ¥¿TtNa�Í[È:~¼†°•j@˜ní‡ÁpL ‡ÀkÈ’1·Á_TÉÊ ÑK#¾r>/aʼnär€Ùá©­]·&ªêÆÈ‚€Yéþxzàû4 ÒB¦5A?ƒ‚«P †ø·µ<8Ylylþ¶Íß1K¯sxF�kìHaöN…�[)[x$/ae–æ¿U}.ãPü1R'êÏytc®†¾jƒ4K©N*Mµø`ØWËìî…Œ=þSùñ‚êâl½=ÖɼÄÉïÈL‘dƒÇ&WzCêá>ÓÆ­ü‘[ðÝr3b0ú×.TØå/¥W«Ãb±™2Ý�¼”ù)•@JÆ›¾ˆŽw9ÚR çÝr�¼ÿ ö£|y�{ß¶µ.´Nñ¹”*ÅKiøê¾¯°Úúìœ]b^B,s¦N²8 Bd¢TëóÊè¥:<8&?d9¶781!, 7ÓSú›Sõyѽ°þ–v@ûõ™ƒ=@Ûìˆ5˜:S�2nªý^iþL¸Ž5p,•!‰žñ]¨UÄýžg^¾6&e=œ@ûéœ=7µILò,vQ'âmÐQ�úÅU` š8 ©#1,½ísS¦þÜ¿ä îCÐþT“ZKq+Yj˜’‹òAŽ}€°A"[ØVyæ·¸6Í)B´»øª1'›Ôcˆ£�åáâù <…Á!F¨W@iâõ Eêý«=ÃvïJ˜ßsãïŠW0Þt;Y’’Îw|Bñœ½B ûa¹¥„M ?%³â‹Yx‡l-¾c]Íú‚º•ö–¢Óñð“«M.‚>‘êT¶×·Ì-¡øwÑb�ìZôïÿCþÆJÊý¶ÞB™;­8Æ¢CªN·ÄÒÄ2�€ÿíêô’™g£ŸøÎO«ÒR£Ï yä€hc˜\5«¦Zð6ÄkŸë=@875U‡ÐbQê4/t¡á$B¯Èbç|Ão±H6ïU—�3‰×Z}¼ü5gG>@©äUÁ9u$ª|\W|ïÔ²Ös˜À áâõ8—ŠÎ³|ãq^ï- 6eä­0ÛÃR1ßBÌŸËr¿Û¼Šº£mUzçAÃzî锾ˆ?S »¶øÅrµMyá fÀeÙ¥@ÞÒŽµÐSšN3UÚ˜KâZz¹Â£WÜ©ùå@†À¶QÅXö‚ºÏÐàØä§m™Õxç<ˆÊJ‹Í2SÅ dóºhqš×õD…I�¡CKEN»ñ�—¾ Ûñ h0I œ—s… �аë“H¤«Ð'Û}¹ûì©Gë.ÜɤüO =ÇñçøíÝ9Žþ½Bò½Xš»M.8ج)—8úãðŸüÁwÜ„Zè|ÜÓ—PHqmD&÷)žF„œf•³··€Õ]UÍ])5ú®‰ÍÑ2ÛªŒõ%uÓè™àØ=ýKG$ØK¡êGË À¨PQw‡š'¦zªª7(õ~.º Ï÷6ЕMúÅó†ÌDR’ÿqßêt?ö4Ÿˆþòr/6rkáFÊ®Ê~Õûîg„tð%dbtCEÖØ( Qæ¹"'Ád]4Û�êZÚJŒªšÄ¿,ÄþÏþJ¸Ëz¾A;$gÏ¡Õ1óÕ»§°E1©W [•¢¼7Š“׳¾Â0µØ{Ù!yŠõÙ�å!nüc[0‹¾˜ ò½þ€“É�ÇhØÙèê?ûçÝÔÇ.ÿˆ‚tÊ; \4©K Ï{Ë�2PÇà^‘}Nìþ±_ ðê·_ Ô³ìù+ûS"Eaጎ†™‘xÝím·�šÃ¶Ó€ŠÉ>â�§¤CkˆRžÐâKߦ¢PÀeÏ9v�\ŠÓK$ŠÎ(¼™BvìÑá4ìçðHB³,¨Æ©�}»?õ¹Þ8¶ÛPžµ÷V#ï2÷$¹ '•ch‡B�Ù.ùtGûÌÊiÚÔT½Ñ³ÔwÆ uùL"6GXD¹aO5÷sÇÎí11U9ÁÎSÆê�6O$�E@½œvsláMaw•þ¿Ê®6ÿ¡ïS ‹ˆÇ%RN¯íl´(íE«q]�« /.Z±kx4€¾Ã„Çû‡òÃLÊ$ ºT°ü%¾zý9?4­ÎJù[ÓÙ—gœÜL_sœær¾ ß]BBWm�ÄÞg'ž¹Í C¿¸Bø-­ü{6f¥ÞŽÍ�H]Œî2k ˜¤Gnwý¦ž³qpŒ:)5?Ÿ…Aè›7ƒ<ÁiVuþ0%S^ûÏÚåR}'¢þ •dÎ~ݧƦª@Çâ+Í+ÑÊ¢) IÑ�¨�—Ûí±šYÎ/¦`�yA£À/ÑhyÑ^•µEoPhÍ€Ï1uºï»E|ëP�ß¹¶²!Ò˜)¤Ã¬Ê“iæþÖÆý÷0o˘^w¢gíO·•m£èÏ'=Yv˰¨Êè ¼÷mñ¹0£ÄÏ—4«YAãã“ýüaêÂ4 2– ¹¯ÉߢÜ! ;«µpp2éøý]òEϯ,jˆáj™ž vzDpœ â›j\¸*�†ÁÆÆ^5¤ÀúÏÑ™ú6ÏRšA)Íse6Ñ–ï,n‘â‡�áâX¯S¿$eî&4í�f‡Ñ�&–šÓ}e¥ñÇÕ¼ïc¹0š2~–á HŽndšNáBiõ�}ÃûjŸj%ޝÿè¼`PµúN8�:¦�?Òf8iàšåhš×´%ÇkìLÕ?žXZ¥ Ç5ƒ¨.è«"¸ ‡‹R�mƒØz µ wÔ•ò –ýVƒ&`¼/!Éâ°y¨¦Ue3í±2-Ò.Ò:»ÛDŸ(¯ §ylez`Žä‰›Í»µC‘ä ˆùþNgÏSR€¸bÅ@ § ˜9 ©Z¨&Kí/³6ñî]“?Ô† ’GÿÑÅU/•1†îâ ®øQëüXox’èbå¦Ð2?P^æËÒâ� òÚTv«ÞXÓøKå³WÕ$Lpï¥hÛdóÿ(C ×rR\`}ÉÜ^¸¢®³Ši+4ÊÞ3€] ñøœ¡(]U°þxd,Z)y%ò11²J$.{ô˜è¶6¡«ïz1G?¶b¬B±½bôMÀ@-?×¶ûFŒ·•Ìò—ù[]½¾êÙ’@©~ {À’µL b‹¾â ø‘J„p\—âÓ^Hö\Ðts«M¸ùñÔ™\¯l|ñõôG;(ïÎñ\H‘<£Q �Ò46>;^e70�ɉvìZûâÞ#x\œ )/4Æø—~ˆ—}2�F“g#>ÁÔB”ÇP‡/hŠé„@d[Ö¾¤Í ð÷¸É½¦/ÞsÔ?”ÎËgBiÏQ:QÞ“©kùê OÞž% £ŸåX`Á.5®QÉ"h_‡•Ù2½ºœîKgÀMâ�ɵéuŒñ’€d¸ºŸÕYZÜjÏRvɳáX�€j™™j9ÝQOÁ¼Ð±PºQ‰4ØOù­•, B �M¹xh_àúo³urön¦y�þI€¶v·�ð&:Ö2Õ8ÓƒÕ54¾$¼^ E౞¡ä·�[Ô€ELm¶¼ÃU\mgvÚˆ­œz¸¤�$¬ÚY&?”Œèr…œë¼}•‡Ã ØÃ¨ß®­€_˜Ô;·¢0݈Ô½Ú, tLÍÄ­ùZÖ`ŽíÏLõ€,Êí$;·Ô9ºUé&|WÏX(&B{Ew{iÇ­µf¶àw�º×EàWе�:ϸé¯Ëe·ªóX`ê&ñ|by¬zEå:ÌnµºhbÔ]íÀ—ü£š�š8öá.8;£šÅ`w#¦·²�ÈmJ÷mö$ê–÷;FÂ�jKç9š#ùòu·`[ë©Àã÷ÒÎ�ž4ldˆW*óH{èBtnŒ‘±çFÚI0öÀ�}ó4L£ä@WY¾œ·µ ØV?t…Ý(˜¥‰¬‘š’t·‹\i¶4ã|˜›2·¨z›ÎÊÅš/]ß�¿žú3ûòs�‚úS¹l@¬hÏÝ?ò ÷`�£ �.?É+4Û8OøŽpÞ¿ó" œ‡î�J÷ Ö½Û{–þ×Ú¹ ¢«¿:Ô‡‹D€âOeÛÓ�͵áŒ9}$Ü7õ'AbZ!AÞü0A'–^µÂfü7ZQÛ.9áµ;î0 ¤^zœùøDbàô ;´‘bêÍÃD½øÊž°ÄóØ¿ ôˆ¨¹¾ÏðÀ°Â$ î︘zc1Ô‚™X™`)‡[«,çÆJ€Ë‰ÑþËü|°7¡o”}62“|µýZኖ?Å7.üí6¡A–ê’ת¤¤èbö±áAñÉJ$ŠÂ•$N— éW’gÌW5Mæ¢\´j‘?¬D&bXc”hmÈ¿Ož0¨?Øö¥(È÷<9[ÄËVÇŽì+·EÑwÓaBË'ª2•Ï^ÿ† n¥Âï~î¡S¡Ö¦Ü·î˜²e`&ú�‡d%ä;veâùâYÂÍ´…8yÂ#Êv «×õ½<Fü% ƒÙ¶þAA2‰u¯¶(g+÷ŸB¯¯.‹/4¸JØÌÂ+6aסr)B‘t»è£šða)yæD¦^ì sÈezØúz'(im4}µº ¢Trc@Ç·lç�Å6D¯4o¸ç'Ò-‘Öö°öõð”æ’``z¶#R®Ò_Rú‚ÊÃ�ÅÕPÇ"Z–*)ý�(ýîh¨¦3²ü^&`Ó5÷…F&·$m¶=A=¤×#ÝÝQép”(s{ä�¨CPÌ㚤$‹ ÜÒ¿3yê_åzqÆàqž`�í’½û±'óÊÁ:Ø|5¶hov¤%ÿäÓ˜5N}£÷õSl�Yò‰zjÃéŠßö”ûz›¢Å8=r%ÅÍ™û^:å ú6ã{t½æÄÐî'Tw ³¨à‰}\éb­yËù©!˱;bLÝõ»_gë<.þAêU/¸¤Â7ñ–U�1Óè¹omêaÖJ¸&°¬"$7º{||}¢$"œAM�•eøzè?)¥6Î@c).\ˆ÷Ä1I;ö˜è²nÀ%åeçÂÀsÔ; Lf›±éY¥ìyïYs•@²Ë�Ï™»ü .iæ_$kKŽî‰ƒ0I_HÇž�øÈÐ7ÏÓó‰è È›Zß› )íÛµpFЇY—·Í}nCy/H¦ãÇÎ&Òç'?¬>Ù�yNà4ž7iöÊÅý9J�{‘Û…Š m(ZêlÄ\ö$ˆË…¢~ŠPl0&„Æ:Ú„,/pîp§ÔCb+›p2�%ƒxUI§C%­l©ÝÅ¥‚É骸ªBî˜ô^%i v'Bù( cœuZVæsö€wÒ¹œ,®ÐDÀ#�6 #è7¼ @}Žý&�1‡âûQÔ:R—`Jï[¨ƒÉ€à¢­»Y5CYàí%JL`ìa)P¾uÑãˆ~�sâßaºÜ¸àNÚuÁ�W+ºÂæÖTªËª�7sÝÕøÊpb4 ¨×XOÓõÿ—$(²>ìq¡Ö CKÐÓ-¯3Eùeœé7�µ§åÛëž�jÄawÓבÑé€x7y¶ÔÄ(³µUÂ0˜¿£s7uNóbîÄ‚[Ámà¼-,HWe=i39Þ Jº/¹P¦.4;Ñzìž ˆŒ}jßü-�Vöýi'Ñ+"s"ÿü ¨ÙWyyöšqhâš¼un ÷*ÊÍ¢ò‚Ϥ‹¯ üZÜ÷Áraÿ åž;ë6¦XÉ…8¼äè@ÛXߎ²jžÞ¥ºÈF¤—„ ió@ÅÂi¿èåö²¯‚Ž¡‚UáRïÇdÌMó =¢p�PÐ8K!@-$²Å1dÑKÞ,_Ìäf©ÞŽúà+§˜®'ŽáúäFÏÂñNöàkS ¦nòkûXþÕµB!u¸Ä§J¶E°(ÉîkwYµ\–Ë \4á>>ÊšÓ(U¡E‘ÆúFÍ"Ú Š÷�*ÀÓ׆¿ü:L{^ “>°A›MtmNVþ{}Q"O£•Û_L0R¨sG©\ì㨯+úÎ&ü؃Y¹c�¶5šÏ”}¤d®¶(ÆHª ÐU_§Mg¼�³éKã —*}”‘Á4EM ¦®PÝ[çÓ ?9Šæ8Ek#°2Ðú:qò�Jµ8ž‹�¿’¦:Vü�ˆ­¤Å!sB)qM,c‹ºfŠëŽŒ3L€v€È*à›«.ë£W.y xî¾0b*e¡ýæ>í@݉d)&à‰{'9QðToa(¿™;Ñv]þÄWî°«ãhQ�Aþ–Àé³ñ†Êûr²-Tˆ h)òjÜ0öQjþxœ£”`¹ò ¡väÜœl÷÷Êxö÷Ö)©ÖžMÛô¥p]4õ«ÙOÎ/ƒ™�έ.l†pñÛàÁrˆ’Éþ“Œ8¯*€_S6þcŸAŸ7ZZØ6ø„93?(¹Óo=kW(“; ùoqI¿ œ"È+™¦ØéÈ,+f\ájK¬âÝG?›X'š´ôÊí ²}Éd·�É…I_u-œ,›µF—MŒáÓ>=&/SvD¨Hl“kÒ†åŒî~.ñ^k–à9Ô:æ.͙ƚ/‹ O?t‘ÞÌ=â@ÓYЈêÔ%{g_h`,+©çÓSgVÚF”†€å@’òÚtHº&Ía�¬çîÕ|Ú†Á`,Þ¡À×-/¥É ª¥õ_W[U߯e€ú×§m¹0³êíäœC&¨1ŠŒV“8G5wÖ¼=3j¡§ÚÞê+ÚÉ—í«øHãÝ@ê+ °ý§šŒÆC™ƒÁ®Éj²tx\„ ïím3༜øPn)1ì×´åã"’�©Ç ’R×ËsŽñ¨]1e?Öœò“@4ƒÊ•úã ™ÏÇ„¾Cùf=rûùX1j‚ûŒ£?þµP—#Å:FßùÆ~Ò2óZ¨â5ϸÃ9frKºôzõÀ³l6‚@í8{³ÎDüQé|‹?1üQúïäe3ì¬í§3h’NaOs«t­!�#‡Võì66-\ 7ëÒ«>?`:ëìEq[í'â±§Ôooåx&r'Ð#•˜=àÓîCØs°xˆà™Døã‡œPI�è¤ßUäRÆGè^Ƥ!c9FL‰ùÞ~æµ5< �{mŒ'2dyìZðŽ&;Áã±â¸xMŽXª@¬ƒ¾³£x;ýFcG+#µ*ÉIë–ÅuzGÈœCÔM—^ì{À"ÿ’4¤Mkˆ8r•ì@x¥£>4ÛfÍ9ŽœºD£ þÎ�s/H8'g»YÃ!í eÝFÇ™J�r*¦¯ÊTÙº^ÔvÎ�1º<ÓI÷B_ÎhÙ,ã'óMÉJ„¡ÃýÞ®1;lÕ}ȪAt6uÛ_êÉgñnÖÜÍ!*µf,k˜û»• ;4Bh›Â6q¿»È�Ü«• ½eÞØzQ@ˆe‘p“m�‡´F>q2H-&É‘ˆë�ÿ®h#nÏGùîïŽgE¼ Ãî·aÒÂÍË´f̳áLþ*¬êâp(ìÀr%Wëø-_5¨Y ¬_ÒMyeT±]ÝwJ$宸­Ï„OAOÉEÃ0š¼€"#€¼”²?Àÿ»ÄuVôÂ'a÷Q=—TÕÑx ªå — öû½C5þ«'`¤¥P41rU²¶0Šÿ�ÙxD#êÉYmÚW«4žÜ2½ ³F¬�Œtt{¦�@ÀJ‘@ZœfûBÕ“ÿ|¥�MŸm�úVi �ã|ùŸ~Ì šE¾!´ƒa¸6Þv·ÿÍŸð³F¶Jævßê·qý;‚DvêKhະJ†#UØRQ5áÀ2¦%·gÈ’Õm>mº˜¸™LmÔõ]ã%•õ?ý*ô…)²¦åޖʵüV�õ]ÿ›?ñ?fjQ9Z{<àA:³í½¨ý)j!r‚Qò…¶)¼vꉼ¨oÃÅMÖL•Š'ÛšVÄêÛk"Ô¶/úÿókÿ?"йÓJX¦: #=’R·¨ìÿŸ_ÆÀÂöÿ®çþ?à».DSà#[+¥ãºixI\ýÞ yÜÏ�aÐK•’cÄå¹�÷»[Ò ìzÚä¨kÈN¤‹D‰òVµWŒ®b ægÔá?¹æú†U%þ—‘Ð-€ÖZÇ@":ño>ç# áf¦‘ÿéW`“ñÖ#D—¢¸¿kâûßüÉÿ1ñ*ÛàÊd4'Œ8< y®*ñ¬SEû-S-Ž•@&{ï=^b|äÞë¹)ñt%ID ƒ×†ŠJ€ìHþÿÓO¹Óø,tH_Z©]TÎcîò¿ùSþcFÅ¡a«*[ù(6[e^ß©cç8Nß\ ˆgKšË³«Õ ”¸Ú¿×{Ásƒ¹xqÓnÙhJ"¯³öÎÿ?ðÿñÓ?ZÒ€šŽ#Ufà‚¿(‚ýÿùE-¬M„MœŒþç{Ò i…¤7z 8Ô7.•ñÒ´gµ{ü³Âû"ZI!Áœü<Î&NδÆÎÿ�ÿg"½ÔŠ{¡C r›ï‚/þ·¤þÇ´‹³aõÓ0ãÃô"ž£&R«!�Gy8ï3#2øL[wpíŸ�(ÝnfNI‰ÁGKÄdÊÆ% â™À¾eæÈGüOîÿEx9õÃÜqmÛ¶mÛ¶mÛû¬mÛ¶mÛ¶m»oÒ¤M›ïœÌÝd ; X7d§c°ÑUÍ~ïÿÄOûoLµ¨Ö¨[W�ÊxDÊÈLBÀ¸ ÿ ¯}â K[KK1œ™>�2{˜â-»Dä´~r’,™ðÙ²÷Ðþó±‚5•f(1–·'^>Eèþ'~ú›>}Ë£'ÂŠÓ ›—ØGãˆæü„–ZfI¦µËå,ƒ« Uµ‹±äµs‘{º9¡šy6ÄXÁ ˜š{¤Ï‚ÿ7Lj…iƒ%’§sê‡D²õâgü·)À%õ�fä&cD,ZݦšvF±àduÇš]#W§ðmá‡9É)¬Û®*™QÜø>3Ö"Äûtÿ?~Éøßüž˜5Cè‡IóaHšvo�ÿ_RLYàÿáõe=º¿©·C-•„y°ñPLa¢¢” 3{ÓØ�jwèì,Œyó4u�É?bÑvß5r¤s—"‘I°rX­ S¦Ëš°ÌbbÐí©|iømWƒ:}ȄͿëÜÄ£�Gn}ΰÎÿ<Ռٌ:èMÕœ:§@tú€CEªV©Pµq·Ã‹oE†Ò—�Ù“ l]šï8Ä»žÀd–Ũ5I˜™²¿ÿ µ¹XI¤Xwg¯ugy ˆÞ‘h‹xú¶îб·‡Ú‘r�Å„±YJ$ Îi´®Ï‹¹NV¥]nlìkL¤ÌcËáa)TêW.wzSï2’¢ä½æùâ·ˆªNnBòB@»7ÇÏ&ò ®‡À3ºbÛé÷�<ª&x­^ éØö;`ã¦hØAðnÃK£…„ÎÎÞÑ�ð*‘E–AÅH Âbƒ©ù¥Ÿ*}€2?Cˆ¥7ÿ¦‘¤_‘Œ;öåöÁ#åCág¥`N'ãyãâ ÿÓd8¶¢ý¤œØðòžçF–/âæ– Ôƒf•Òë8z)õ’#ô’ ³6{þ»O»ÿ†‹@Ü]å=úH+ÈBÇö©›´Fý¶^ÔqA?¬‘…,c jXÌ3;: pôº¸ï–)^ ¤›å×EრÖrz©mÙÚXÃ[¼J/ë‹” «Qݰ†�mÐ3NŸAŸaMy–«ý[úzf·O³9¢7–„è‡#�ç>ó£÷߀]�ñé@ôÍݪÜ;k,œ´ÔµŸ™òHåVñqÍZ@8‹×ÁØWEÊÎWÿ…¹²4>y)"–ªIcKŒê‹jþ èÀ…›U`Íe9˜¥ ÌøweBpèœÅE×#i{Î�³ßÒ³ % ¬÷$§\ž.UøSÐnð�¼äÆô^-Zô�çP“ožX¿x>F$òþ¦+è2°.°m`¼’åXN§ps ÞÖ‰ˆsSLÆý¨r÷œJ¸ÔÜ­á…£éÆ´£’ü(­Iì@MÙ_³&5˜b]3i}½¿€äSUFx7‚b€¬ÅYÕ×�Jpš‰ë²Å;Ê<&^1Bú³èêåzñÕÕMŽœbiè,M Ƥ®Ðèf™o·ûÜê_⢡=r^k³7Ü[«ú¶Ä±çzÛäwàå4þ ‘9 þ*pK;,/=”?z½—�Hv Á0™hB‚X�èÀìQÁ±“$à�© YÄicï»ñ;€²Ì°6ÿL”f„ RHtˆ6PÔ¬/lÝ„ˆúå4ýs·SùUB�UsŸ\ £ýžcJ¸�øŸ¼oS–³S(÷�Ó êçÈ'�®·zÝœY<�‰q_ãš%U_‹—X¤B—ƒ¨Ì8{úoŒ¦”nV5Y=F¹Í¯úòüÙIxÅÞ!øtç¿>Ñ@X²pÔ{šc.»´C¯Žb.– {éM=ºy`2�IH?Òä6ò‰¾×ÃÛÍÞJ.gñ h?¡]Ðþ ¸_í�}CmõAy‘ô‘Ñ u}ºioh_2@ÊGÂÀÌɼ6€±ñN2p}Kÿp,+Õø ïàÌjÌ`UÍ-CM\T%\Î.cšSØím%iŠ™ãžÛ¨h¼TNoÑjß ¯0sm•Y”A«ËX2œ(‚•Hùn�ðxg rV-å»°j‘�iÚ¿C÷!oþžR©}®?Rîû»ïÀ†£ú,2]ƒÍÑB‚r¥¢ÆjÝèc©TÊbQ¿€_—Çñ>Û)h>߈‰ëÙd–Áw€®h[‡±ù8ï6û›já“‚úNM U8«ú.ÏX¦,e~wœª>TßåÔYØN�Ï™>\bãñO˜óyåFr—P?<qõ¦‹£¦mîºR€TO�BO\ç_]Ý#¼•Õ�23`B%«à¶‰þ"ÐdŠ ÄSNØœK’´‘×GOLj ½0vø£²!0\÷RÖ–·Š›:ö]ÑE0-ÀuÛÃŒn>sD¤œÃÛÙó³"!B/H_Ï 6ì~ìÙ Ù÷�þ ªs�$�ZR#¹äö3…4ާÇØD/¯FÆ1®´`½§áѺj�> ñÒ—ª:9ÓD‹—~_Ë^ÉÂð›tk|Ï“[6Fýe'ðñOÞa8XIUe ÿ¼aÅ;NdÙê®ÛF‰ºîKëñäY]‚¡Ä {(’¾ÆË~uÕ$„7JDZ4âWò7Dn“sà×bï§šúªd­–ì”MZ¶4LºŸÏ?;\Ã&M¸¢�·yî†A‰íÉ"øä¾œßì´˜†€VÂPg*íúÈšwÏ|ØH­G?ÁŸZs†Uµ;‹èò'm¥³ú¡ènUQêýR(]ù5‡YöI©ÜLn•ÌÙÍeï´©ššÏª‰‘Ò¤cÐqð‹™³;ùÊz‡S¥Ý“7îÉŽu·|J#H šm1°J!#´™�ˆJãæéaïŽWx‰"®lb‰6CÒ²nÛ@Ó„pÓìΈYg]§á¿Žº¢@¯ÀF}T£Ð‘Ö?ó"s ?I[6þÀej†¾åžX1ÙÊëv+2�Ôá{zÈ2o¥tòl8ßd)"²L&ß1Ô1ÿ¹�ë¥ä޵–øŸ–ÿSXFttm¦(ÚHW ´ 'hÞÙï刬u²z¤ ¤ïJ‰÷óx`3Št\qfík¢ƒÃ¬$£S…JÜäDη •¦|GÄ~Ô„ÒÃÇ�i‹z³Úý;uâäÂûmlÊz ‰ |–Z޳ûjþª®‰¦�Ò)#�Ì••rËu·>XTwèÀ6ßcX&€Çè}çÐ_Òíb`ujF°ö§½“4\€þÄ3C½®àÆJ¸%Œ®O÷ÞÙÎÙRyÙÝ}‰ü‡1tÞø!9 Ø„!—v!¾ü|�Y(lK"ÿÒk¸¡u]ó«ýš1NröpfÒyüޤK´zåR'=øºvG?s¼òûU${ßçÆ¦P䬫aeÔ¤[ê”…?س^oT/™C¼y³†MLºá…•ð9 K2Æè#TÎ{Çèç1ï ¬R»¿ÇuBÜV˜8Áñ.ÄO+Êym.zÌI©[�ížk_öÝkѱÐhß­Ø ¿ê¤#�¤;6¼;@-á§=°Meäñ *Y†"ݾ;±ûÛxá×I•sNe1kKÔÖ+îFZv²)®4/äƒÁ‹„Ù=ÂåT‡o»>ÙTµ8 _®¥TEÔ^s•€Ï7‹ÚûU¾‰œÌ^ŽÀVGÇr~²è)ÄnÞ5Û’çö±‹[<1†]ìîC.+‡&£«®"ÊaÿnUJË鉗–…&Š˜ô@`R4ùýÒŸ¬•Ôä¡÷3rHQõT•J�º@ÔF <;_ #KïÀ€²Ô猆ûTÅ+Qž~¥§²ó·„¥æ9§ÌØÕ`ÕW€ï‘²''ôô÷sÉKù Ü…Ÿ?݈þ7×Ý€õ>áè›Ͱòjöœ;Pfíxþާ d�`¤&ÞJj")Q·•‚¯u!‡¼‡€×Ž˜Ø�^!æêIÅV÷ï£À @pd¼FäMòt¿³Æ8¨VDW!ÿMÁ§fÌvíÍò®Á3ùäuKcU/8ÝÏò½I†C*‰Bd sf ÷‰—‹‰ÿ Œ$вÚñ8ØÕ v^²PÆò;¤ïEæ£BúÐ!Õ¿¥-Ö÷vSÝ.,—Q³¢úÖã5ÑãÉ2�ô2(B„`ÀHež .óG‚0-œ�¨ÕxG!ºB,ùP0"\ÆŸÕèõqê¢G��¶hNÙ Å—V15ÇÒONÀÓ ¼”ûÑݤçO»¯Åü¥¹jí§�Åõ+ç+×€ü xmÚ1pF†í@zH6¾­xRnˆ¯ ágCˆÀŸmHMÿ^Ä.¸ç«³¿?)ês‡­t-ƒ á´å0ÝSÑd9Z¡ö²º÷?À»”ì9Ã�††ëN‹%Û£ÃÇÏkîÉÔø‚ƒÝp¥òÐÍGÏnC ¯ØÛª° bQ�ìÓîG„ÀôÞÈ,�0bµ‰±S@ áBmÁ cr†*µr†9ƒìáNd„$¼_³üØIÉTë usT)} °¦ÿ\�#hö9A‚O>b×ûéNaož¹}l#cÉL(P®�òßœJ™öí°Õ{žBK' ¿^[TçùÇÛÝ\|{‚ M÷¥:U•Ø ¯0¶CP.¥2¦ðtÀþÀ�ú»÷Ì­”žJ@ÉÁCDqÀøòì2Ê:‰xO88ŒB-R 6pŸ)Âù’m@ pÝ€—•~‡DsêŸ�Bñ¿h³ H¼…tòD\ëW®ÁQU² þ ŠjˆŸ»ÓÚé­ÃÁ†…fôç&±G_z ¤ú?ë‡s$]ŽWK äÌe(£f“Ûç“°²'ÝM|Øö™�"7ïIC¯#³õrÕDoõ{^ª«oîC$öê¹8j’ÍÄÎÅ6ßKétHÿ6ûºµz…œ†C°$¯ ¢1·^"V¶&BêUã/Ûg¯`·¦=þ�Ø)?›œ3'€b?µ†ÆMœ¤·~=õÚ›�ÑqÌHûÒ]O�*§û‚3‘h]߯™÷¼3N�E©¾C®O„×¹\~í0úª�>çTë-¸Añìü®R·lå#ú€·by >oæÅ9JÛž`.â_¡X5Œ®\däö}ñ5��Fäm‹±ÊUt…Aë2%xðQ`C4Ëéªz,ã‹7îÞD[õ'BJÆ%‰ýBmU²LMÚU'Ót£:øMü1=‡—#ÈWH„]Öâ®ÿå>åÚžüwÆ&#Ê�  ~eI%¡:Br| [ì1 0c‚lžË• ×lRæ 0ߪ­Ù-B÷‹”{ÂÔ²ŽSc°@²¼‘wì«ü –Ÿzø=’"2`–é/²ú^XÔºŠx‘1ÞÕ2UìI “t�Z£;H™r•!ÑxKwèBS•›�¿8àØx�Z3ÚÊ¥µŸªUÜÔUM2V zîp¨ºß�q9fñô*ÌÚýS]ˆjHAtŠˆ(ŒÜãš?#6¼!nÄ#uÊZ³›—?å�hWH©Øª�…_1‡p—A�4g˧Dh…>-ÿ½§‰£Ê¼ì�gÚ"œ=“þ:Ät£öõ€l«qg̼øVêCȤÿUÃÛ¼�k{g…I¶4Œvk€ýSšßA¿Ôë˱K?Ìç¡Fѯž³/ˆ4Øú –}ÌÕ ˜RLvbŒ Ñ¢® Q.¬ÂYeïN+¹)s²p7�cH»`7Qå‡ã.—†Y•+Ù Î%öÔÊ+[Ó¨Œìÿ ÌÀ=Õ]ý׃£!…xI|‡yú ã\Jº"Ôo€âó±Ç>�Í'Tu8Q怀øÈ<󼻱×––xß:ÿ—y&5“|¸åúH+sU†-Xz!HÕ’OÃĨë!|ž¡z>xªÓ[Ø×üðD5æéŒKµþX‡È7ï ÐN{ÿó�ýWƒOÚþ5´»o+éÐx½)€Èn3a¼ú†òÊ=+mSAÖyWÀ‘q¡C›‚KëBürr%}zmÅÐÑsÃ9|/îM ‘—›_¶>ã4F›˜\g¨pn˜Ú¬‹~&œ‰0ÚÊ͇æ%4Ò�²>Ðê.¢ïº©òTluÞ%pùú¨»läJj‚9˜ËÞH~=W’¡’S ºàÎÆhs‘rF{% ŒÓ€;Ä|A©zæöpùÜE*踲W1 1xíÀ‹ZÝÁ¦@“;øµÖ�÷ «0²-|¯^·9XœcúÔÛ€xâj‚¨X ÅÅϲ¨Ruä1áѹþ›æIUó¶ˆúÒ©ãh§Î>t>u&s ¶ñRÒøzå 8tÞ çœg*ùÀõ1*BÙ,’ê$([D0 ‘çµf5yV¼ð¸¼®‡Ÿ=°s ÷lqÝ=„Ï~ÌâMg2’Š-sí09ƒ—ôïIÒdôFbŠÉ“<ȺõSË«bÅ:Ã9hüÉB ô÷ —]Ƶ�e!@©¼ù#ŦöãSg¶ÖóįÉ|n²Šª)[²Õ•ƒleÂGd#aLB1Eb5D˜ÿ‚àË£ jnÃXŠÏáO‹2aE†ÔÌ¡:L€¨_Чæb œÃqþ\¦\D­XøtA@ë©JöS0¹�Ô×Öù8PQJAJIZ± 3Ä8§ÜznÇœ3�d!¹šä<ì<òžKM[Gê›O± ™Œ¹Ï%¯^[„{±äýŸ%á’#›¸)0c…˜$J½Ê;Â?>­]áµG—Qå>Ù ¶ˆ‹À�-PE½‰íUþ㡎°Š`ä—{2_«c¸´Œ"‰!�[ZòB†¾Ä=�³qHwÁ@ª GÎèáúý¼n|°³Pa>¤�ܦÉs­¡Ç6¡®ÄѬº“­(šK—uцDú†-í8ìÙÆHÚ'‹x©ÚðÄš×8W�3p�¿ˆj/}”æ.2û=Ô0~¾eó¾ûÙ‘ÔGJEW¬g])¾Ð#·ÕþÖdÄ雽m"ËoätÈãpÑ5Ðÿ.àRá5Ts¦ÍD*ÐlnÓ€ Û�‹uôîçx(#Á£� å¦ìûª¾!ÚT“6">=H—´ïË�†KnƒÝȱñÐ0âc»×Æ H¨Ît @SO-ÚŠ�r¢<L›ÏÄ!@ˆ&µ‡™ÇYxé|c²Ã5ë‡at�tʽáçùàÙWl'³ˆð4‚C>�…áè‘ô`“¡lÂi(á³.æñ£•Ïåx?Ýa�~—ÒÙ’ë_AшH}Á—Öd •C/Ë×@?dtciI ôÐÆßfù¦1�Th"ù„®Mi#Zåìü_©IŽyN_óI÷ bXO`Ù¸Cõ8<[ ˜‘*Ý0`éªH™ øÈɽ‰[ôÅ߈ã íÈ,&«ü(Õ…d›ƒ‡ð“‚Mdó—|VšÚE�K¨écÕ@;Ûþ|zú ’À¥�@N ÿ¡gȱP|ãä7š2œ!*³ %½•~–ê §Y¥‹m22�ð.0¨ B\ýŒÐ“?º0µêâ—!ë€ZªÝÿ•‘é’°¹àÇ÷za„ÿļs<Ûÿr§^°Ú{2\*uï,¥ÛÉD¡Ï× ÕL¦™O¨Ä¨oÉÉ{3ºˆW‘Qì»'³KÞÖ¶nKm5j÷¨‡ˆ,ôçIb»ºBZeªú¶9ój°ÝÇðŠæE¶,PÆ�Çæù™”Ò‚ @Ý È£v·ûØÐ¤±äœü|!-…Q“ð7a=‰¸òà´ôŒ£qƦªü²³Ä”:Jí$"¶Ãõ}øèjJá$²þ`]£•)ϼí/†ýJ,}Z%Sh ¨‚C)UÕ8™è[nE×´Âøx¦ðö]52Í$tФ.÷%&É;D½E%™Ìú:Gãæ;.µKéØ-¥ÿQÂI‹€íÝ)ÉIø ;ãæ-æfŽyýr«s˜úâãù£wÌÈL Ž>CK¯ôKTàͳw& e´>òñ›HaaGh}Ó}¥Ø¯/žÞ寫mÇ*#1Sÿ96•Æë¨�ÃVX³/Dz¹”Ä'… ß›¿ÈÕ(Óçï(¦BËr8©v–¦Ã´r£žwÂð0/*ýÕ&ÀàݯŠQÃòv”8Çß5éµ÷weÇí0âí Ånmw'#ÝVûÚõv-nûbZ°ŸX-H2»‡.àGtòw­,3f–œª.Lû«&#µ“ƒ…óBOàJ\âI {¯~Ú7›ÅÊYöq�:˜E£>["ÌN>ð= »Rfœ^8ê7¬Ç’LÿZîÖ*‘iþdë_Yä Ó-I˜«â­è¼eÖ�£8 ’ý4FÇ ×šN£Åu‡mÕ(m7ÝW1­5JH@-ûÌæØaÔ¦ƒ;±Ƴ- Mæ¯4ÌØ §;)íÔ�ÉáªÆsºø~ÄÇ´C›kÊ }| ðkjüPàR�5{/î|J꨺·Óçg Š[À†æËjµI­…4rŠ #ÞyL¢NGÄ·ÅÿF â@æ×,á/©üØVy‡™‹“)\j‹sœ `ÝXPÓ´ŒEw—bmÊOÚJ|˳´Ø™ ¡W([ÿÚì²öý~öÇTŒ„(tË[¬4ÜÎ}ÙŠUô-Àì*å�¶*S”ê»tîú¯&·ø•. ¦u(Y$}²¼È)ËåoDnnàJp¾æbkìqRï:ã’夺”Ö �-¸dêõ7¼H¿S@£L-²Á¦�¾¬¯ûŒ£ ž³ËŸ$¹(|»ó,ÁÓcÿ\�½Ã’–(1ôXÏ.ZÎüx= ÚóZÈ›xÇ#V¿¨[Ü¡è÷d"ܶá›~Åt¨imeç8͉$Ý~M�?óá"Z�€wË™æýè‰4­­~@�=8’‚Žv‚U¥+¬•¯Â¤�*”.É¿ñD àïˆqCrÊ3™û.V�Ù¹¥£u–âsò6|˜øÏÙVÜLÒ²˜Òè¼AËÅV­øjÖ’ÀÀûw#?�}kÎU8—O,ÎÏZ‚ÏJˆ«JôÿlJÚ¦|;gîŽ(¡�ã`fƒ>¾@¨aœ‚¦%3|~ƒb`�-5ÛÒû×=:Kò1À³X(÷àÿ�¥$ƒ©@��q”o…FÏõ9PŸËCZÛ‚®'iB¸±Ö…KOy1]ƒ TpúmàϹ¬PÂ*åŠÍg02Ÿ+„(Ã`ï\œnW!Ù#d˜&v ÐîÚßÖæÈO¹?\7ƒ¯0[±¡é³nÀ¨'aW,uÀ¨Ë¶’¼À_‚§ #Éÿ&a‡Æp´ÂX–„4^¥qWábî®”nI ˆ°•öZû™¼óc&Ý–yWbÜoüƵ+‡Ö +‡Ix”ƒž-+%bÛP°èGóØŠò¼ÎªzV¦Lnèš°#ó¹wýqž×ûŒ€é޾·Ó•�ñ PZ¬˜P-}ÅeàÞ‰•fñ0…aD9*)þ>Ìá¬,/c\z1Tü‡™�&Tß7O½úÉ%<*²U±Ï j‘”Ud]­Õ�¹ϼÈÚwz÷àU¡À²HçÉ|)b£($G¹ Ôé´ú$sܬ%s,õൌpx)7ãbLFàu7nlKÜiŽê~$dï”ÔŒ¥Å[½kƒÓ$UbTÈ= U–˜¼�yÈ¿EV—ð=©çNÏRR^¤Qfw£JpÄ«ñêó>°i@%Ç™ù-¾øGöó-ÔýåWI;¿?z<<&.ŠÅCP²Nø<.— è?÷¸Z§[��5ábÚ/nTú´?ÑëM+8žÒÔèòÁøùÕ®�ZS U‘4îÐÕšòµ Gg³t¿S"3‘Å9­3[ÄÐL^!®kùëËIÓ`.û¤~!tè¥O¸ü‘ô• o¿q™ÓHüÍP^g§E1c´ÅziUïO.ƒßÔíªÝñ–ЛµH†]ëú!ȬZU ÖÏd#U§ ¦?¸`ŸtmG1É7€·ÐH&ªÄ ®Ú¡³�øé ×ûo’ül$öÔó¿žòá™—Gx%}c¡—øh—øª]ç‡�Ôfd"“õ‰¨\t¾ã, ¶ÅZ>ƒÞ¶¥ŽAî�tŒ*Ü+ÓÒ¦ûCŽá*Ö¨¿%3ÇjT…3ñ7ê"ô>\`¦#WnÌ&¨Ëd¤¬ƒƒ™pxc @d8…Ø g58vd5šF`óãÐðâB`‹Mô&DPX© Tî¯N¨*ز¨Jt"¨f{ÛkJÝ×{ê™Ë"¹Ú—²8ÂQi´âYuüŒÞŽ)³êØ„`ë–w3Ã×梁­RŽ@¹šìïÑÔG·æ¼ Pö¬ß@>f=ËHy@�#³& K‚«†¿¸G>÷Ží›R‚¸½âì»±[8ø°y|ŸÓ†K›ßH$wHôcGT.&IwU}˜€!‡UC¿¡Üq)C4ú7tò� û5ÐÅý-C¾N2*ãzŽñ€„Bÿ°,ŠpÎÒŽDí3J pZâc7y »ÊÅ)�LËuáI±`lšäFÊb�FB?Ÿ;˜ùÒ)Æ|ÈI£%Ÿ×¹¸œÔ\þ¤(“{–Ð’äuÿ ~&>«eªsC=íXAi/½)x,]àù(¶ÓTfÕ)Š|ñÅš•‡-bÏêò�Ô"�•ç2ÉÔ³:•Ô3õ½zäÞ%çtxôã„*(ÓÅnã@Ÿ3ˆzÜ3õ‘¨4ׯþN‚µ`;=M½Ó¦BÉVîýX{ÛógTÝ‹ä‹+>¤ã€y›PŸµ{öq+_RÈþ³ÝŠšÓùåKÊx`¤œ$›¼¡§9å±T÷2ß–úÈßs1ÅjŒß5eö ûª “ >ã¾…7ÿÎ?†á¤Âνvxî*D›¦1ÿËb {]�U°—b-Ñ,àÓÈŠã‰ÅËý�A/¦4o®Ðó8°– ñ\�¾„½“nZMÛç·.Æ#»©0vPxBñ¦{^ÇJŸ|Çut?“•§z\™B)=¢½ë\‚Àäµ�2z(…Þ-Jë¼á7—�N´”ˆ"EOÖ=< aÓRUpWKû[Ãýœ�}Œµ›=áYg »à̽âØýçùò—fË !)­’±ß3¶ãw­$ÚCëjcØP=œUÕzžü]iq™o~ƒaTè,® y˜ÀŠBÉ X:ÉÔÚGñ…L´�‹ æÚêÐ.>íôüU¯WC"Vè˲ÆY É€(F´ 8Ú;�z_"Úë©5¢¨y"{uÙ‹›oñÄo´öê­ó„‘]<ýí!ØT‘ð±A =@Á &v&œ`Ú­µ¤±cr5¿ëgåcǺ�n·òãš&.•hpßÌEÎdûWןš=OÈN…FºçANˆ•gá@ú¹]�3ò+½ÝcX\fÕö»L��#]RŒ, @²HõéMýè8.y1Å{þ‡¶„©«I;K`—"^/ Zª—Ix�æI…Ë0áp¿D®9¢M~gØ�94±\—%ÄÐV«];ܪ¶�˜Ü¿l ¡Çßrˆ27ᾫhÀÏ2Æ«n^â¶áŒ*MÇwà;½äì—û“&¡A‹•ÑÛp,Akön¨Ù%I§N[Ú€.þ_ü´ý5é¹xùø£ü£1NøíÊ/‹ë�*ªõ=ç{ý)ß["eäÁdQsR y¶E blgÅ5Öw|½F ù˜­[,ÇŸk£3™ÃMüÉ3²À׫3þü’ÄÜí˜\OJYgÚB$ËSÙµjóÑ€YÚÞÄ®ä 0ðóx]ïž“7yùÀ’KŽ-gwÛ­c�Sºˆrƒ+™W”pÁ%€©·×겋tŽ->é¾f@4ãÐ4t³qµÅçx±Ö›¼6€.i¦¹þ»BÆÑ“–û'ÎÌú�!WdÙpôFûóC°ÍÙ¶Òûö¥ ä•dìižó&ÌOÎq÷ÔÀbe6ƒ¬5Q'¢d(@¢ÃWS™9Àb’Qëûœ(% c*ê'[~c“#¡Y¸­¤Û5W4¹9¶ý47;¡Û¨ x¥_lÐjµÈ«¼¥áLšpÚ6—kI=UlI»—~ºˆRl)o­Íí#*¬r QúHc�,¯Xø-{»ÆÊŠºO‘˜³•$&©=}îMëÆ¢åD�à)¸oU´¥d¬ÔµÇà-n2W U€ÜÞœÑvm dø FŸïƒ£ABëhþÉkèìå'´\˜ ]©ì3aÑóØc‰jÎ÷œ8S±W™)®¶ÍdWâ>ÕoÉi •è´â–®ÿ•ÇQµV‘—¨QÃ8\3�^ˆé>ÓZÜÁ ˆnà/N:*“oB§ÿCÅ¿‰ÔþU E"UlÖ8gUYôÏ—ˆF* î’:ÎëËBÑö›ãØê ö9«~ƒäo’YŸï¹±¡ÂÏD¶-v‹à4ιê*)$‘YpŒåZÕã?�ªW�hþ Îp„ çÀÑ´WË =m´@_<µ€"E/n^„ZSU�+©ÐW?þsRê NÍ[ã^F��¹ò›gnDR�9/'¦Â¤¬ÃX.!ˆ Ú‚álÌëÌÌ*0“´®ÚÞˆó`åØÝ1û?KÝ”Ùr�‘úÊ=~´ÌòU›÷#w©ˆ'u–²¡”«¬1~NIz‡£lÀ³í0œVyPm“B戬¿?Ï·êV±J5ŸÔ;R<þ,£y–-�wÇxÚ!H±r�®Cýâ.«Ù�잌 äëYׯV$+›Z´f#¿öNH» êok·öSÌ›h�A“‘ªersÞÃö>·ØIëÆQ’ÙÜoŸÙ¹�ð, (ûwÏÙÂnf§B3¡;£Sn?Ru�Þ¦Œç£È\r|ü/³c¶Ç8›ŒµnÓý7 $döÏ©5é×^åežQµeÔOÁ{2ÛHoLdÎf¼*•äC¯9ÐÄâÂ[ôé€ ¢-Wk�ôŸÒaª ¾3\ ~祇m·ºˆ~º°Òb5„€äz?èú_¤L�fôðÙ\ÉGL#ý%Wû`SÙÛ@Ò­Ž³='ŸÎeÈUÿ$šþ±á�OîÖüNç�È+¹ÞC}"ºÑˆSx¨}Û<�¢Á—Á~¹Ì ±z/’WX÷¬˜âWnå7+nO˚ߨ)ͪlí»L²ffó©ïåôÒ^½¬%5Y¨L óúû ÏêËÕlÅb‘ˆÒÊíéR*kSD: �²SsÖÉ¿”‹Å,—ÝK¶M*›3؈y*·ŒEB‹Wi�Cÿ¨�€¬ý}c±€oŸÙÒô…!ˆ~?ú,ñb5á̉Ì^jAe¬Ha ]-ù›ÂÕ«ŠÄ_�Í�{kרû4² �2 9çñÌN;PxIñV8ª[hç…ë7d[]•ä¼`ëþ²SÉÐULßî�ft/H=.LFÑ(çvÌ|ïDÙF2¼[…ºÄbýœë&ŒYößÁ8ë[ NýQ#T¤ ¢íØ@+*¾Q)�è®ØjAeO1y 0šÄLæ{ë‚¶øõ@ä®nÞB‘ æ¼½ÇÎ.Ì¿ˆýY¾ßg†Ž·ó/#�çÄÛEä8äiy¡M©¨Â–¡¶ÇñøvÉ…,JÂϸ¸‹<Ûþî�°o¼g2ØÆ4Ó\”50~BÕ_õ‹k¬(]Öcw›K›¹Mü{b8ŸmUñŸŒ8ŠíœQÊô%ýJZ#lU‡ÁÄSNwaë/«Â•†/d^õ«_ed…²- k«{ÙG£þ±U_LÈ94»'aæ_Ú:¾Õ«Z˜¢mÜVŸàZ³ýãɃ½ ²áûE¬o‘ýx«.±e\±ƒ<Ä®xZíï"ÄF†­]FlðjQôSiˆÔíPK¼¾äµ‚_M«;éé9g(l^Ïh7Ý»Òmù¬)Ê™(MpÐx*Ooù÷VÀŽÃHkâJbë8|�ÍÞda ÈñŒUë� Â^׺îë°"ÊZàšÈÈìéŸÕã¬g\Ù;U{l�´âÂI~ao|Ü:¿ ïÈô£CVHau1góO~ZÈÞ�@Ó#1>F• Ê]ùMÍcWÈŒfùª¡ÔBGs2¿ËéÒûd‚Swï<°ßöÙ{½îìn{êóOR9½ž¨7K¢…kO{v}¢pM¸‰ˆ×j†Þ k$­I|’“¹eX†rüºV¯Hª¸Öºùi?oÉëé”y¯¾Ñ¯Ž›ˆ’i±j²§$!êð� ]ü 'ìêZ’šÓŽ3t)í°#ÍݸҞ#nŸJCÓÆ*’Þ‘I؇Ai'ù ÎÅé�CÎÿ\mU’øTB!¦ý23ñ¼§>«ß*h� êZ ç(ìBaö§ª u>Ò|­ÞSNlXfwéc�.ð‹™œªåïc7üåéZˆ¨©ê+øy•¹¿hä‹i’0aÚnÞe“ûûÞšè¹·Ô b-•µî§ yAÇŸ­¸.11Z];¸Ò%à¬+hz]|ǵÀ„ ³bÕ¥M÷bÏZAý�…P4+¢]>#ÎÅlK;é´ê¢#Fù^�‹ Ùõ‰Dù¤0ª$ÁhÈvi\ÎÚ ë¹é¢=`ža¾sMóòsx„o "Ž@:X>xåøÙQTŸóôR‰~q�ÄÏdw6]Xø©þv ‡Bˆ�9V$êE mgÔ²²°Š÷¼½Ù¡MH^˜=£¼þÌÁÖ�Êqrã¶œ½˜?�»àñº\Ð –è bwª‘ aíL·BºzêZ¿‹Îr}A¥8Yj•k&(%éAžV�¾àˆEßÄ&§/ë t¦{4žF\Ë•Î}ý’rK¦qK9¢º’–ׄB‹†îYÃa�^¾ÿ޳‡’™,Ív²c"gÞ!tÓU(ÙÃ6ô Œ¸Å§ý-•£Ë-uÊl½�Fx`f,.ˆ#÷ÁÆ(&o+ °E|F! )6{xoÊ­JaR€Ëã7Ô€L@E�Wü_:‡$˜BÕ5‚’‰¢»Q Ãv—…F¢é�e¤›np:µüÂÔ��hüØÇYò?ݹë>ÒO¿¸hY�ÛóÁà®ù…’–iÞ ÿ®&|3”•¼ååóIZÈ™èJ³~óx<¸½ÈD÷ ŠºëÛL[�ʜҌø/CÑUÔWU‚L`|d�äm-n�;lÞ©eÉ[>^ïœú´´å›B¤ ?#ëûërç8;gc±`}ÕYåøƒâ2¸TοgÔ 'N[Õ¼º/>ay`èzñ$=$‡ûöÊØâS‡rÕ{†£zÿª'CÚ¯õŠÓ±žþù½Á]¥Vœ“ R©Ør.²è‡h=aê}±”òŽp•¿3>§Åï—ER¿v5l-¹¶x˜åuÞqÑ"ŸB]'Xïs˜­›ìÎ�+¥_OÒ¢7Ø*~ÁWÙ¯x™oà-{í6ÖÅÜ+žœ×óï7nš ëßc‡Ô@áÁbœèTïæØ ªs-OÝ9J$ú€Ö²ÕižkJ5¬C¿§—Û‚©È™ ½4;ÈzkŸ3¢/R?Ëïïv¡é $vo?‚åÈYä0©ó–‹`ܪ6úKåí<àÐîo¹rXJ^¤¹g¸€ðäõøêÆDÂ#çc¦¸½‰Ë÷ɲ?��¬ÇTõW±Ô#ÌÉóù¡Ož~µðÊgã.Àq¸ì7æ íä.=A’çÔ0Ú†] ‚Šá ¨’0ø÷j‘�'Þ9ý´b™ÃS)]ÏŸô‡ºÐs¸¬fTÞ÷î—éjÀG®?š)Ð;|p �wó×)…e«ùü1·vÝKÌççÃÆà{¹²²õµÑ®bfu 5fŒ!Ø&Ct¿(_C‰ËÐ"f»WÌzpÅ'ðn;€�‡ÂE$m¢0Ú8àNrlVôº¨�2Ÿ":G,y"çt{y©„ñqŸ²²ÍpèþK1�ükA™sqïL8›ôÑÐÈ6»Oò ™"�Qm••Ã7Öùóì»Ù�ÃÕ¦3h<Ï¢[ébåeñèú¥f�,ͨbÏý›—ÞJl×;ŽÍÓæF# -&jÄÅŒ ügo#e†ˆu¤DŒŠçëï€DÒ{Ù©·¢¼âx«jüZEL`-‰¾:5ŸØ …ˆó…“f–X>?mVé| éj©V0Q"Ëçí´!fÀ‚6‹ëƾ/ˆƒº\y¡@Ôh†×Oy9\–•l„ÙëG_Ý«tôF¼S¬µMmÿò”|µ‘!âí ÜAÍÒtý äÿ %Xj±Ož/þÄ$éýÀ~su?øB¹0y!œH+-!s[ÅFˆv‹~ðÈÒ9Œ×´6ïÔõdÈ-M`„j”WN¸�cÆîi{|U^Œã^wÎ/$·9¡s·–í1ú\ËvˆÃ`› ¦ ‹—I2±lOíA�?�p‚±OœÁK¦! nʳæl»¹§¨ìJ˜zÉs‚ž*#Ù²XçÞ53óÍ ªNÀ�Äd‚°Ìœ­ óË#»mb—.ü׫Ðt^ÇÚN~ÝZ\n‘m«™ÃuO»Z=‚J�í”åVI5fL%ö™[¡«(Dsß`ŠØ²órO9òù¨°åjß85ûi©mÝ�à]bͳÿÔ?ͺ2‘RÅ’ëþEW¦°š]ÀkF|Lò:AyÍüªÂˆèÓ{'íÜöå—j±å3±6•€yª‘§i‚eˆ-„ØÃ`l¤Ux/ÄÂa38«Ê24'„rŒü뇹žKö�WРɨH4¤yÀ×^w2^\$yóî:’�~�o.ðhÚËPž”x,Ðóiz=>�úà—Ë� ÊeóòpõÝ´0ðMÒ�ô§>�QÊ À›¾ö òî6!úx4Ó® øȱ èÑ ze"cu[.=Sö¬œ›Y�ÆdoÅ@FËÕF·<ï�¢]Ï’ ‹@*A5®x¬«vÖ™]F`í¹[C9ŒWeûÐd™£o ¹ ö_ÊFŸ !-Û©ðæ3�‘®hij„,a­;‚ï¿–à@�%ÚÁÑ " ¯¶Ñ…ЃZî‚•y)‰–Ë9æµt—‡ókU9MÛ7bLó(ªœ>|9ç’ ¥WLJ›¦ž&Š¿¬Ÿº�ƒ,;ïP³•e+ŪX.Ôä6Ï5b'›Ws„ºz8:L–§çæ"Hu·­‡¼GE7½PõPbT™.PœI_'g„1)懽¦6YØŠòàn/9Žˆ±ì¡ýQw¢#Ig’fq 0}‹OÐ^¸µy¡&€n£2hf‘Ã2éÊ·ªªg ýÉ¡vì�­äOR‘i9ˆ4ÕDÒsï?�dJfZÓº]=_$M,Ó:ÄyÝÅž§‹iz6m \.$[oD¸3~ñN•2Xš�VË® `v«–>øâ(‹/®¤ˆ�âÖÑŠ‹R:>�ƒy“Æ�‰a‹µ“¤?M«Àc ìmä3œ¿8q&çÞß»š#$¥•�}ŸÈÙšAZ7½’O3›Ú™@ä‚Ô¿Ó¶jY;ÔØ[!oqÏ ÂüEb´œAˆuÀ¿N”Ï&ºÒ<ùš׳{3dOÊàßAÃ̼à�ŒNÐjÖåg˜Çžñ��© ÑBŸ�›Ü—„ùMy¢ê'˜SvÀ( ¹ŠÄkŒÄÒËTQ£Ïéq‰ˆq [ž•K`Õf«WÚ5ó®õw‘›A]‡¦Ú­dnÞJ÷‘ìb%£µŸOó¿èDá1¸Çns�öPÇØàs;…u!À‚zm§òŠe¨á»|“åï‡Vîâèœ5ºT\Ní"nˆäµ£€DžŽ!½ŠfJßvòºòÈön!ï«VFºz<=”APЖöâÄcøƒˆ#åßݨœµ§»½`„BÁlì¯Ëml�‚lÓ¬ ¨ZžŽqq¯õß�)•´4¼¨@Γ†åØ+±/ƒKYs¬]¸ÁK`‡#›äV&«š– ýå1›<Ž‹ªÔ2îr'à\,œ©§iû-z3J"’ŸÇtÒšEX®üfbŠ×/6ª€ƒtèè“Ï%°«!øhË4€u½yö·�!�@¦bÀÌ „ "¡�Ž:BQ›j‚¶ò»W�6!ýcWHq;t–Ç„Ÿýá)Ÿâ�=ݸM¦Y; �é£jó2È ²ï0I @Ò⤠]4 �Êu)T�RPƲ¯�÷&«© ùg6ÃSÔz?ÓÞúáÜÖ» n’W¤7ó…"šýC ¤ôèûŶí‘H{+«?ng�ìªÑ“<ÌpáòÕ /L<ž÷”—�¨™Ã¡Nsf_‘Šb"��J½¸–÷À ´òÕÅý‡á}¾PªŠb†ò8$¡YÂ)›Õ¢Z…ÉäyÊîc’/ŠEÕi÷[ ëžâµÄü³• °pı Ž\ñômà3Ûßø—×)DO–—›i»í+Ãkµ&&zóa%¹^øÔ|;S;ð[*Ýé …xXå–Å­šò EìóO‹r´žw7ÉÄ2n-ˆìæF�Z-胲 âQðÒ)ÝK*‘Æ+ïŸ;­Ë¥£,M1�u5Zl.½—�óy«k°ÑÕºî›hFH�ÞÃã²öÞK­ˆ>*Êoÿ.ðÓ23PÛá5}h�Ǭ#lþi¢tøp½†¡¹w¥ä-˜jsöYhí¶ÑPäÖñªÖ”ªn� �Á–òSã£HKè(ÛV¸5AŒ²x0ánJ=´\8lë;*†Ôzà¢_ 63åX5IÔ Ø�²’¬A¼“Àù¥YþZq‘SXþ^TCÄÐY5G9­L_.äc M¼¶eô{pBxϪš,Ö€‹`,ÂÜ”œ¸±šbXùi¥ì™A³Ç¼]ù‰@…–ú'h?·©+Ú¹Ñß�è îUòûÕD»Sô£úR3´‹GWx}±÷Î/@.›¶©Gç{‹€£,æÅ*F`¦×ûþ[ÑËJêXƒ™DO?¿©3ÊÓâdûl3w`ÚCVäÐÇüŽz+‘6F&üõŠú¤çt GàfïM-Ù/¨Ï¿!(lÚó·G�¡ó§úqMJEƒó�Û`ñ0MðœÃë.G'�Õs9Ë|/ÚºÂ!Qü¼º‰,¼½ž� +M·ÿò=7~c•ÚY‡ÿ2—4°É¿‰â˜Å,ȳmñ?åIa|¶ôg(;L`ÓKôeGv.SùuŒƒ_]ˆŸz{KÖ ÝÝfôW§Ó€Œ¾Ežkñø,¦#½Q†­­KÀbáŽ(M—á°ŒÑÙÿòã„ðü×íh›†#ÀlÓ7ÇÏñ¯kÐËr<™«½+V)Z3»SmÊW¡µ÷[>ÈšÃ9^þ­�_2âNÍáqàY#P…¸¸¥ l]À$\‰ei-pÄdù'Ó�ŒÝ¹P,ó_Ð(Ëù£�Ò{ÅT‹S‚Óþ*Á˜R½Úê®í­.|zEÊßÓ1€ó̧7êPÓ§•Ïaswg¾ž‚oú®ì¼jÿ5li)»¶Üæû5!3³Ý§Õ¦^N§Æ“€ÂÚ"Ö·Â+C>ù!‰ Ñ�£*›‰ô;óÎYÁXEDèÌO�c+MF=[)£f¼îqÛf©o�V>¨ aÁZK…ïl„†à†.î”IjÁû™#×ÁµJ‰£mÉœ¡·ø5~¸ï·=5Ð;+FÊ6©)sô(ßž©­“-!š§Rµi´Õ°�mrÇ_ÑKŽù­/y‘óÞêÓû…ŠÀ=mW1ÀO‚L%¨“ÉÎxL½×#Ê?f‘†lúkqHâpfèf¸äm˜·Þ«Xª¿†Ìw’ö|™ÄÎ ÑR¼¬çÌ+´rÞ'ήŒjÄnÄ�Խάɬ`Œ[·Ê /¢Y#×”éæó7|8vjÚ±æŠEg&†üVU¯︗U2ôa*õ €Ib~9¬ HX!K§&f„£CÕ æ½èÌ •ãNµ—ÔÖ¯¯‹Ô‹§"ïÄ® `;÷èRï9aSX@1.¼¶ã{3Z³¶§šô™ò�ÊRu'|·*#_{'wOTåWåÿ&H¡?«˜éReyür‡Èh.ÖI ô†T©¿Ù¹3Æ«éËîþ%ýý×uŠjê¡í¦9üæÎ>¶²n6ú¡w^.˽—IVÙ.×EÉk�Ðim¤,¤�(hH*œM•X\”í„<*ór¨Žb’>¿ú}{D@Š¢îñ:€iTET�°HÃcÖÞÇ)[þp¯=cÖL'�7ªÁ„üè�ñø“üù/¬g’²Éºêw…]òmÑí½úCðŠ˜C°¡£¿)ÝIcTÖZ`‰hY�”÷ã«ëþ�¸éœÓ²‰Œ0øB1~×#‚ú¾/,ÍØ"ˆœô— Þ;oð ÎÝxªsè?9!ÚSH#òðG®ßµò+øÌ”†Éd3w7¶ÛЭž‡ÅíÀÏ—ãa÷Óú¸L•Ώ]—f8R_ÀŠÛÝ„ÙS7õ§ƒ��{CöÂ[¾^Õ0t(ÖÖâ�äG}5‚x‰é¦sluþeìß/�ƒ{E1~Gü©à�2|$U…ÿ-ç—Î6„Ç©�¹È]W]$J…ðÆé µó¶I½p¯¥¤šÉUÇSBøf�¦7n­IµÄ �" òIÌâôOËèì4ý±_,?¯ú˜„·¶–+KH1GܰŽ\'enÑc/³ ÿ¬yc�dÚ©ÿUSÍa‚滾YÄðCÁË)4_ÿ²ØU¦±ª‹eá§n?EÛýŒ3 ³vdh×,¢¼UÚ Ç�´@ØmÞ¥A©Q­¾K6þ’�ª£øÎœ/Õw)ÚÈ Õû[A�—¹ÌÖÉ�\ùª‘jûšEöSY£'¬E±äšÂ;I¦B eËZ öðj÷ /~2R"MìW7tŠ“‹Š�¹ˆ1eŸ,ûÌ®ÎB@E?ws v Í&l£›¶aŠ.½%‹ OŠˆq˜ôî®ÚÊ¡º^O³…q�Åš’qhUã1.!Vb%SSZwi}8ú¯Ðrc�GÉœ[ªÿ&ïxŸ0r‰êÏÛ- WލZ¡A‰q—k¥pC4?²j8à…nz‡›+¼ªC‘¤j÷ú°¬Z¿@QŸHÞè…€ j‹ÅlA·Ô öÊÑAZ“_c”ιò‚)ÒeáMA¹â‹¹ê€ãf‘zZ¦t­¡>v î‰Ýo‘¯IñÅ·óô“® u¤+Ú˶¨�"�ÎrÀi9Uõ»‚Æe�O¶•b݉ŒŸyÄeRé‹H0pg"—®{EV˜”ÈKŠêÚ›tÉÇÿ)Í!:–5núTr8*G�1˜Æ0΋¥`ÆË. ×^}[·MØA°íJÚma!¡-0R†IÅ�dõ«AOûëöÕò›'®¾VXÓC^û�îè¾TìLr©/âqKJŸ—QkÏ�Y©c;%°ÐÝ›�M{ ßM7`Ð7�Za—áàp[C¦¯M\íꇂ§¸N ³fp=×HÍY'{ û£CèCmy:Ä÷5;JthÐrQxÕá+î ®°ÑZNpœò€‡ðÙ:Qd{gߪäJô«g+Ib»{„ýQ¨kœ³.uNt�¡‡�š?\üùí ó&Ї” (¹Ñdá#ºuQí ´#–YÀˆÒ¡¹à1G'e‡)y,¬�)xþ w öaÀ·e�ßÙpjͪ€Ú°Úƒ¶-qƒÐï{ñ…ɸ‚}¶�Gçâ½ÖœÕ�’x¯ÈïÝÁ§Yà $«ð˜Æl-Ä\${†ä^3¿�дm²Ì<�·¬�Ú¡à˜„×À ˆ+ÆWjåP†‹D{÷Içá1sÈtþæZ…ŸS{=¿\þ;øÝ‹©ðó×j¾¸Ó×ëÆÕxø?—¢ê¡… –�8^ñ4Y(Ùν³5‚©@óÍ‹]Ë›(˜øÔ‘ÀMey«kŸ)"•ŠÆ.ýlŸOo¤?.1ÓsJÐÙE=ùÂòÆz#Wìãf«äø Líõ(– +˜ˆª¹´t@ L˜•L£îföoø ¬£G]k(3—ûkêÚˆè´BÝ#J¼ûµˆÈÙÂ"Œõª*²¥†«a*$ŒóÇÅÀ5ò!Lš"÷Åeü¡R Ñô³Y ÿβp¼«I(4ƒÌªÝ šw17~QyÛΦ÷A+&�¬ò8ã Ú(k[R¿[}#� Ùr³Uœfµ€–Œæ©mã ,ãfÀ¬ÛOÅÉÄ\Á™F©å ¥0>Úx8©Z– V*¸�á¼ :Ïþ §Ì¶ì�ÒZuð³ †.,0ÏÃï°ZÁ÷¯” ¼vyŒâºåž/͈”ì‚ 4fä[Ú³QUÑ=K_ã‰ÄÜó6Neù›Á+¤>”høf Ì‹RÛ·Ð/=*ÈFƒu¸Vÿ7*îÅïðqÆNRã]É ù,ÀìÍ Ày?,ò†ÖWÕg9±\©@zý³±ÁlÔ>fšVbU9fxºýŽp•FÖÙvÞSˆ@°öù¥ÞHç:–‹H¿]í:>ÂïÚ’Úaw aÍ6AdºkÞŸ]AÁ sâ<›èqV¯©­5ôƃVŸ,ž¦k½L¶�RŒ–Ý¢+fÈeŽ &.8ƒ–W4(Ϧ¶€Çôµ$Š;•i˜ òÑÅs9˜†XŽsÄ“ˆäkçCÞ>á/ ^T-ç™ãWÖwÄÌNŒ‘f^"ÿMCÌMê€É&‘ìS•øÓ¸á›áO ìù†1–Èóš¢Kam¹¿˜ZÓ²¤Å,ÂàœÙ¾%0²}Ê ÐgåÏtQl I$92Ö�Ä›róÏßÝAÒd,˜?Ã2±vàÕÍ ‘yÀÍíÒXÆr2M•)Ì…XÁŽ,•]u¾Ÿdô±¸ƒµ´vÝ-=ïë¶§ìo]7[ ä‹ü€Î{˦”¢4QÊ’L_IkDe’ý )|¶{5ÿqDAC(=™$Þ´´å¡™U)iÓkx9°]õú %8¦8K«¬3Û(¦ÍYUÔ9#&r8zðå³>Ÿ[–‘9÷Mo§·‘Ü+l'7nüê Ñù ª�Üšò OQ´ V sC‚Wúu�{EIGŸˆFcßQþi»£v{Ôõ5„”V7f‡®uÎÌÄê5íÎÚ‚o%üf–&�Òž ƒVùŽgÌÔê^è|beàN@s¥Oây»Á—¡™'òÒÖ´Ó@xï ââ_‰q*qÐîd{2Éa€Bñ'mXkWä³›9¹§Qð¬¨�†ÇAQ¿CÀNÈ\’È^uÔ¯ÍD€ºð)(„7—2…»Ç€Z‰v…ÆO,·Èfa[¹4V1WTt$™_¼¼c’à+éŠ5ÐäÀ¤Ÿ‚QïUT¥iÇ?øÑë0­9i‰&¨–Z$瘺աUæ_3yn!ìRʉûijTØV#¡Â~€«ûqMv� áì *ˆ¹°'r fø«‹·b®¶î4@pµ@û2%™çD2‹dü«kÔxFßãŒÁÊ«€'Æ‘J�Yùd …2’hùݦTèuq(È¡�bzµwé á˜ë“g°šQ£"b´%ýK€†1†o4ýZ(—VBEhÖò…2�O­”(í©³¬‰zñ¹{  dÞ,…ïNÈQ˜âdrðÁ/Ê=:Ò¡‘°—óŸØG7£Ë´w¥Tb±®äЦ8ÁØôôι;Yu¹9…ó€¯qãö’€ËµzN«ÚÃi †tb¦p‰â§—] »°u «»6É�ÛÙ9—®pŠõ5é)M“¾Bo§éWã™1Vÿš­/ó1“XX#¨¬ìRh¥b~Â¥ºœ´�$9í&–p·¡�æ6”ؘÐîn1�‚4" µSp|¼îU@Ú.’¡Iß>/Ž ÔÆîŒÍNs©L­(ÏÉ…€¦´o0L{†Œþä¢SÖì)òBÊDúþFz, J1D7mï à äÞqMºÕš4žSªõŒ@:÷aù$UM#ÓsL%9­•¦÷˜ÂÐo(ˆ”…˜é–†ëš”ª"ÄrÿýÎ:¦Kn·ÃH]è94»90ä@±\~b“ŸdÎDFP ÌÆ÷þ'9¹{(Ï`ENËÔ»a¼/ æ^ŽMknþ\º¬ÀŽÓ5ÄÈ©¦@…G¤*IÜ­«<=U@ }<ÁÕC+vËÓ@Ktvá »2È%9=;ho§&ïâT�FÜdz•¿v†O 2ëöa¦r–HDË’±IqAIn%bUiäÒv.ƒ¥ŽŒšìÂã1&}«„4ðð )oeùe‰|\6Úì‰k$VœqË#-ܧ—–|7£~A :©’@FúŽô9Ïó`%>$ êjZ+8•¡�— Ca�)Ï æÂ�5Î@•$$Ú2X«.Ù�“7�X‹™K¯ƒDo<Ž�/ämhÝo+î8g·"R òïèÙb, ‹¿š•R^çâÛ:A¢Nb rN½‰l`”æ™�S}''Í|P†ÈP#ÿ<�r¸-s›ðØÔp™!áYp€ZëÐiÂceFñ~vsnµ¾æ×¶õ»³•%eÐ)F2�Ibá%w\—´‘¢Íë!¿$bIL*uj”¼Õ5ƒ)`…éÚç5 ƒõhNeA4G�Ôí¬×Óó«@©vý�©Ä�Ḭ̈3”¥ßsy^×þyM¯NîÃz‡K/Gå©)ï9|Syá@R6!Ö#eW£þ9òþ>æ_,¼-T·ÎndfÑdI/ÖDÝ Á~ÎPü~‹GZ´%Í_=’Få9ër)}æh•yÌVŒºh;vÙ Àõ·Y] h†d‘œ„O {�Ÿ; Ò‹¾"'ía‰[ªÞbª\ôìþÝ’øÕ­ààzVÒ$¢v·ÕÕÑl*ÆYG{Ç/¶®�N`^éz+<Åxó‘¯ûÂûQÍC¹ìÁo�gä{·Së‚B’iû“¸B™Ñw>«Àrœ–èÑ0­›)ˆW³×x¥RFgã»Â¼á¿«tLnÕ=eÓѼI`LB í„ _¢3?\¿±¬A±x‹ND¥ü<¨› ‚7 ðtÏ3ü ?–=‡ªÝ¢q"ÉÑj°Ë‰)¹Û º±ƒhù_ò6K ƼoŽÒc€Å¯øÏM9ÜŽ” ¯ù.¹ª+$?¬ðVû…n?©@#díNòiª£k[3–q°M Yî4¨ÇJólò-âûûvÖc9Ö^»Æ0êyê€ùïEå$D�{?m…û@9°1&—ñ5•Ÿ!Ö˜5&¼Ò¢3T²TGì4$ÂwŠ`¸CD{®ºxIcÎàå�YC!.8³ ­\ëd\ŸÈE«xæ!�ú¢ Á£ÄX.· &n®�Ó±Ižz‚Qí´¦O]gÛ__K«~m ޵?”ŨV;> èôÓAôŠN"ÁdHeƒ4,2_ª )ú„¿ø•‚å}çä­Ã�*׿-ÇÑKâ©¿T X—*`ŸªXGa0äñŒ.å‘¡ÇrgÈjö‹~ 1ZȺ³ˆÊ/|D(è  *<é�æn¿‘ó·k™c>$»�Y½§zÁ~Ç<èŒòåußÙXúOL�ÙÊó|?ƒ!¼ÿ”„k:ÞS�]VhtÞèä &ßKRþ0FHáéÓK ºQ›Ü –¼¨ÛéÊÊ7%KÝ® no! ;«…§w¸Ô×ïlz_?úÚR)v�yã›FF ÆÅð¦|#ÊwkÆk�ñDU+§ý¹SRmÛ7C^Ó��³ì¢Däk_±5,õãÕ'E´^‡hË;³ F'f2€ã¡‰½)Þ 2òÆsµyCJ¹ñ7ZR…ƒ@cZ‹m}´YXÒ¤tA"½GUíU'€°ÊLA´1GÚpÂ+ÖºE ¹ê:Œàþ÷F‘V|©¢D£[PÃ."h²@Ñ«�нA ßð…80¹KÌpÜÉD$rvA»‰áP”‘¥„(úÚ: ¶sìÀ%çe•L62çÄœ¨å¸Äøs®×®´ê bˆ8›ž¹­û÷'0XIh¶UW¨Þ_…€=X>»_VT% /$Ww SÆyl†S QÀ9íT¢]£¨9Ùêu ;hûÔ~£ìüoE‘�JL긪rþ2ªþC“]`økTíbHˆ¹Ú%%mÿüÓA�Ö$äòwÆÀGC!‹éÛœ5¼FþÉÃ%«iI.Âò’ ‹qÝ÷áÜ ¢"tϯ»`'�`É%×Ä1:'BTΰX“„.çvü|s9(xBÿc§™'yïÝÈ5\¶ )«bi¯ŸÌòE])ÔÝK,_¨1Ò¦YýXŽ :Àž°á°U“9#ó墭5'žô;�(þi\æ:î÷bÞ2›òJB¶ Ÿ²qv!É#Ÿ~¾/`‘¹Zè£ßT¹¤Y*9%»ØQ­.{”¤|"öÒi¡ùý¦Šp,£cš -ø¢*íYü�/g&|Þ—f’s䛨±ceêÈ ø”ÝNÝj\#®lg h°ü#Ϲè…/ߨBéj TŽÎˆÔxËþã€jUÁ”ÃI Ø+ô9+8ƒX"³ÝhòÀ6ï”y-t¸¬9mÄ=š?[ÚȘ1` *¡dÁ°c]ôï×çë®Zßå¶èp°¿áß÷Bbe„³ƒ“Õ>(tzç€Ò`ŸßJ· = èîNŒèkbßÖõ“®×-p 0œ»  Ž…œJ�}�Å‹IúhŒÒ2Üp–æü¤�s«ºÛ®F ƒet@±\]ŸØÑˬ!“½l,`ί@˜"ƒuW%³¿†œp×w0ýB¹ßõ?É?Øø¾ù¡Èd!ȤÏòrƶkæ.\*wîkЬXÛÜÏ%^{e˜‰Ÿ h(r(îRÕpý R �ù\¤ÂP_ŽMéÀ•hGÓþB,,Vš×íߘQæyï®.`J}+¹ÓsÙ÷ÈE�W•¬íñMap4of©ë©kGv¶k žŸ.cÚ‘Ò¶¥Ú©‚T©/dö¾¿½U£±DÒ?ží?‚zÏa>ìJ6[ý&õÅu�t(CFå×Ã6J’»6„ýê›_�3  jXŸ‹c ŸSÃL?%¶e‚#]¾“Ë0’NÈcvóð—±n¼ºRÌiTAvôr@K6´çiÓFúö`N™[3î4ìÆòx™îíÎ�pä7?xêõ¨ ÁíÏç%…"Ú’ Ô[qAãŽD*ﻀŜ…WZYc�&Þ©u œúï·ô»2_LØÞwS$|ÏE»®K7RW^⟠à°�² 3-‰1÷äÇL#âä5�¸cµŒ7 ¤�ÕKû2=* ©Þ]H¬t~öB÷A�] ß·sô¹@dî BƒêŽz]¾‘¨/¹m\•È]bc›7>£§›‘­É2PP×y8k´¦eWQK´¨Ó�v[2LaXÛ°py®ØËŒôl†NXžá ¬¢|ðÛ˜Ô#Rè+’ÜÇÓ¿v<¼ôŠÕ~ÞFˆ,ó¾OGk�@ÓIÊ«9ˆ}ÛNVFSíÞÑ›Üâµ@4s‡9Ïb Š m»ðßæð<ðî÷Ù”/]ãn`åû®Úš0B žn<ߢÚɾóËb5£hgu3�;_m7+uª�ùεd+s»u:Ú“î©úÞ£[q·Ç ¸M–MÅ÷YZÿòxÄÖl¢Äô�&ßÕ´Þ(.£È‰âéš×ß:ŠÒÝjÿDj4©ŽG�ýWc‹0%³²›‡i°FÁ×ñHÝGsPH…€+¿èÎøÙ &·S2i«F(†A÷Ø»òA#Ì.aDGšm»bЧbßzdá¦ÄÎʹ3ÿk>I‚A•ªœ~Zn}›˜j’¯ª0BmÝ‹·ÜHk|vEõ˜� çFµàY¦ ÇT©â‚¡‘!!ÕÖ£2ù…š UG„êq„… c*¾ÂžÂϕ䴭 ꘫ.È-+sæßÄ¡`àÀžDRqXl—È9‹gîã‡Ó>&a3_íÄÒ'¨z€ÌH r BÿÕ²8]ÅnozØ?‚áCCo±g�G¼€]ûÉ‘c½÷hŸÆPÂ{·kÆoØAn¯óUÌL¼ÈgävkÌÀ€Ú¾Í’7åô­”È^Õ h8Žäp”V/R� J@Ýò§žÉYhÍËO/€H+«Çoçr`0ª¿¼Kõϳ��_`*4QD Ž i||_XsbêSSZ_a¹MõÏb š9+Ó]mÕ¯jG.5óí™t7FËs»¹Z~+Õ˜‰¯ÌYmÏBeŸt­úz™ºß�ÚÉÛ/rÊ0ý§«c¤Wu/£‘×c{ Ò¢|á†ï¾ÈtÉ�¡Ý÷nŸgˆÑÚ‘¬ÁÈF'rªbK¨êÏ’P¦Ù#T¶ëq]}ñ¡ÈÕ.Âò¿Ësû®,r,ž&¢�ŸêEͧ ç©�Û û «¥&nûŸ§"Žø�ÚZ€½‘‚ŠQ!Ã\RµRÆ|MëçhäÏö½¡Õz^Ób5tã??¼Ô,=bÛ· öòPSïH �·†Víu;‹»Î3Yû:÷þýßÛbýʼL6Ñæzª�Ó‡Ðñ=Ø’ÆU¿Îò¢/: fÍ´ß¹-ÏÇõ9ìØƒ%ïä¿ÀâišÈæZç¹ÔÓï¯\ìò»BgÌó:µZôi3Ñ_S'UxËo¿ÄÔ±æ¹C“CÀñ;4rµ}Àˆz]_6ã-2tqÄÞ;ŒwyÛÚSÝeK�Ü-M'/gˆ—ä§'BqGÈ%¿pt¼´3:·s1Ð@µL‰Ï‘’UxÄ_Ø}aÅÙùÁâ:‡Áƒðy!Z;/è?¸i­«2R™âBÚ¯�ëWˆžÐ²´° 36cõ–ñµlG¥V«™ñ3^ˆÏzµ¶I§v!6‘~û‡©z§Û6|£DѨP³9 –žÂì ‚©¯ †ò|„ür¼Âɪ’EÑB¿^Ä6uPnŒ÷¸}_sçvÌ/ÜšÆõÁÜ£M•/:F:7øÒêÜ VÒ/W*$WÀ/Š•òm·nð_yx�i·³ëËë$¾ƒòž ¹²Ç ÂÖóea„d,.•K]m"@à˜y3³G´Z1B÷ª½æ3*®L´MUùÚêÝR�Š€÷In×êÒ“Ãçk=T׎+b÷ñߌŸ¬+å�g_=˜§�ú€u2‹Ÿ· Ë3$ѹ¢å¬ÖuíuwâË”ê)qÕ·›ø^’gº /w×"ÆfÓ|U·:Gç×Hß Fw{¶,  £|Üâ϶Šéª@7lÔ4ä[ øõx¥ºSßIŒ˜U#»Y}�CÖ2&ôJÅõMûÞÌo^x8[ŽÝ"SXTvyƒ[²‘™ø¬Kí+ jf–£¾é£(±E©EÌé÷,ea©ÖÒp¾=£Šõ3xBÊüÖªR”Õ³Ì\NhB¿·n#ŽöVI¢¶71û‚é†C~ÍaY‚’R ºý¥h�/‹„ß¹û[㌳‹‘òŒ®6;;?×ÂþLWâ,Í1Ô‹±·„¥œ ŠÃ¯h‰­sÞàmrÜý¸¹•1Zk9px¯ƒ@iÀde6è‘Ä™ %G”…±ÿ¨É†r¤¾‘"§L�Y·&âô6AD·K»Œ4ÔðmMfšäE©ÛGÄÐÎ3í±wâŸFN ÍJg6ñ¶Fň{è+Q=`EE!ÛÓ|ÍË5d›n.'J;Ì.iæ&+šª¹ ®[_Ÿa¬ë Vëw%x.‡a¢Iådóm:ãºdµAy|¯±õæÂ“íg¡ƒK¼ & ;-�Ø Ë#^sëR¹}�ÂØ×Ü‘ZÏu„#:ñýz”6$²ý¦qëŸ0‡;Þ€®ÂâPd,ÓÿÙ�Æ s†PM½Q‘­Ñz–^w€Ù˜ +7ÀàÂM*žkt¡Ñé[:TÝot5¥ö�˜Î»�j}³‰(£&TGÇ ��œ£Œä¦± ª”«j9u(=ª¼Órknñµá®™Ë2 p™`EIÙ=èÍÃUÒ� f¦ùßZ–x=LvÍ‹H½âœ6CÇVÍ‚\AFÍ÷�°IšŒ›°êÂU�g©ö ÍÅ®ⱚ½B–Y4E)S&z÷Og)"犳x6Õ¸Qkü‘ ],©+(�^C¡ lžfÉòÇ(È(Ëd*‚‹3(ê«ä³Ï]ü®ÆqzˆzïÿðÐKuoéÁk#oXtgŒ}÷KÕ94YòØÃÄ_»°A2è ê6)+ßByAÁˆ¬©0ûN¹‡]° ºIq€¶>6EÁÏtõo™ôàü€µž|t;­ãÕ×Ý1¬yÜ &7cÿ{ÃÎl?Oæžà‡·O%èbÓó Å9§vØîçáCÊ• …–d©ð& ïâ‹ÂžeÀd†'´Mg2 µ•Á쩊δҔþ¸kgÐJ�)ì¢È<]í ³ÂŒ}R`À^ˆ·$tÈù7:�@#X>¡ÊÃ-ò¹Ú¥§Ã"ùú… Vå„»½†Âð}É_ û�ײ%ŖáÛÏ4œƒi‚ÆFZÑô¹ßRв—R€qÔÍ× ®b‘$ÍÃÍê±"}‰ëÿØÝª€íR¸„TCMqÁ?±�ɹ¬ÂéÉ—@ä“I¢Ó ›ú8”ƒ¸È/0ýºáD žµ)º{Ó|Mð�ÇJ—·=»‰¡XŽ0FßVüY²o‘‚H(÷…1ľùè¼"Mã}؈s‡=ŽñË#í:Õ›�ˆì¯á�z<:V´À¾¼�Üô¶VíˆMâ·¾©¿@[v‡¾èÛFsU"a­ò}ÇÁƒI5«)Sÿƒà\I?dW«G> ß�ö�~™!ègTfï׎e­ÏP³a4Ø�’=6P;[@žñ|Vu(íejÀ0­óŒt˜ðàóSn¤4–Ía…HA9D=kÝS… þôàvùdÍÖ24ÃE°jð8;é�—Ý‹•$TçÒÔ¨–�ø/Ïô?cUoY>U]ÀÈiçèÊïJ"Mux\¤WËØ �hËÿ|2ámôÏØ½”}‘§-•Û[é�:¬S?¡,Õü^eÐÇ3'{‚Å' é§%’¸©2¾E“Ó¿5‘uþ3€¢&Æ´BmV¼Ž@üÈ.^ßœ€YV(/Túèxx /Ðã,�-�„÷¿i¢—ƒÐG(—_<,´Gž¶êÅkín»©xTO†¬b™�zby†73¤ózÉÈ¢KP–¡ÓæúñnwÝð,Ñ“ Ù§Ñ7+*áÖ@Å>éä†`J×UäÓ6¦´ÖyÖŽÕˆ·†?Ì»‹YÊq%¢4ÖÃÛcTbûŽW¸GfiµW³ÝXßΈϗæ‘O¶Ò‹û¼wû¡Í�°Ï0¥9Ž»fWþì3I•!qÞ²—¶ý£,~ôÜRÅŽ åb™ÖZ“ó`úP…�$/�<Ç9¤ÙtÔ8¼WÂB�u••ó¥cñŽyZ#É áŠž 8kZ­< ±U¶ó¸j òaì¿e ÷YOÇ´´:^}VÄæëΩP’§u&a€žºþ$8>{0Bqô5s¦ØJË—ôhi‹ùP÷Whþ<Ü16±¡ŽÐ‰2×V -6 4ÈÌ䆂J‡�û=.^ÿF!ÂI}Õ#œù7»äÃK0'ÀÞ:%íÇø„ë–(s•ÊËË�ÿ¢qÄú™=[Eù%®Ææêï'%[\${kÞ6•ÂáDleÑTa}5­™¼D+ÌÑ0JBU;ÕÙ‚=»Ëu@}b<|Þ±Ï1eÄêÍ ýœEí;€T,ãu‘¹èK+ Æ4j±ÁXãŠÉœs@Ć‘ÁTG¬Ñë„CÜ÷’* YÌhFG–%QÅ|O|ƒâlŽRúq(|Á´1\ヾ«ú¼x¦IüÎZ�Ö½#—?ÑZS äìIAW, œßÌõ1iÌûâø¹1of‡ËÈàüG›yËÝêÕfùͪ¾!PéÀ“£†¬Xh«6]¦“e ÖgpÜ¡¶¦Cø81£j¥nŸÖæpF×ïã~tJÜ ËŒå4:Ý\º}! ¿V�\û-oÚ|‡xÁB%~N3�í'4�â9¾†¢Ð`Æü"_Ä<»À½Á"íÏsç�0³Æ­ùè·˜ÏÕì—Å(ÚöÇ•+·Ç殚±ÃH¢©¸{ R-‡=Ë&H-V�ÊÁ°Ò�ž¤i‰š¸m�Úø¥ÄÄE”†^Šm‚¶¡b½'Ür€ãÝÿ€×胃ç–>¢Âà_ð,ÿmn��y·üöÚ]‰Ç6ö1)¢T�YW`WÖMƑųÒ×äO£ÇðiɈÞnóÕyñÐi?¹B[uð¼ßýù^s/èú…dw²§Ÿ€á»Yê¯w+ì�•1î‹AŒ¤³ø/ä/¾j .œÚ±ŽŸÁ½5T;Ïh^@iöÚ¾Ôêß,ºc¤Ó‰(Eò�c| Äh oÕ4w¹PË»›ÙµÄo¸÷`Š}R *»" ÇÉ—ò*Æ3`R]Ñ7Ig€�ƒ_2#bq}”‚<üAŒ£ £M&„x/ÜÝÖÀ"È—C4a\O[ÕÍpŸ¹Ü®0÷×#aƒÄ§”?Í¢$ȳ`kÖ0zÈ«ªŽBÆýiś낊 Zb³HË(¼ñUÍ55ê‡!سXô"~S½ø@E_"CæqD*s(‹^öjt Þ&w¤¨+LÏØÚó�o r€¥E„Àâš®—|—�“ßeû-Å=ÆöýÄþRhiB„õŸ@ôuuŸCÛ£CkK æ¯qÝHćÇêà÷¬À‡Å¹Ã?àò&…\ 0¨o¾`�'¸LLÇ·“ô°nk=’cŒT-­OG�¨;¿ìpÒ:¸H%õ¬ZZ¬¼ À Sï?‘ÉnGT±Ê$�YN_œ>“B¿æÉ·ÕðþB«÷ôû=ìÛ¢Å{|% ƒ ò\Qk¢Èj>—ŠâÈJNÚ-¯!ÚX×f&!:aù/uêHß‘C³Èzùç,! “G&.pA³?Òû^úƳ~kÁ¥²p2Ù,F½lp‡ ëò©)tç¤*†9“|–w®q$¸7V,ý¸Ø\<iØ’�wdžÑ-*àÍLyx3”0DVkPO6¯h?däÛιŒá w>IeÿCRÙ��IVårpr¡µ†ÌÛu!èÔÈ�ï8Ük Œ+ÉLx©{Pa£eÆ�9çý¢)hÑÉ}‹r’2—˜S~ºÀç@qvê—©U…V¿óÇ*ñ�'ú<qºšàÈÝÃØÆèx¹PDK¤è�º¡WI¶2ˆã ñhTõ§Õ�¿$“Pìë ¦ÊœÊ�}B[Ë7ÙžþÅÁ=�ÇÁ ¡¢„!KÇ‚swq2íbESlïÙ2ô\ƒûp¦F?κ¦…Ì„«•QN( Ge5MãøÎ¥à‚H#þF:é9Ƭ�‰ñn,ˉ1ÐçÍ"aÓüE=†KÂÿ³˜¶Ó¾;ÀœlccÛgÈ�?Ò¥l[ªÉs“uüKõ™¶C©:qÛóÀ=ŒRæsp¾Th¥Ô²18ÈuUDq¤u.�ù$¥’ׯc%¬\ ÈGdóÖQt™7;Þ•A°©D À�-(±ßöj³ð>ѵͷ²F#pÉ£%Z^µŸÞK»õö{|ÓØ{ºÐ—éyä÷ÌîI©�ÚÕQ£T&T¾ HKKŠ:åLL[i @ne¤>¼ú‘ßaÍqOÉÌ×å}a]àÌ"ø¹ùýˆTl€bÉLy¼-GÆìí?Fççìæ„Ó28äo{H4u‰\['©™i;@çËÇ1ëàu£TGT½˜9•]juƒM îLÑÿG÷¬0ÏfG5FB�÷lØ„?c&º³óOæ¾é˜ªA$i£q§Ý´ýéˆÓ’‡‹À´-¢  í&šXÈi�¿ ¢ —ì)jDÈ\BduÚò³yÛ[Þ�øž¬8cNwõ:ŒÕ%P,¡+Çr³Àû‚|�ù¾¹$QÑ›ÅLNëah„2âO‘µÈŒ�“^3¾¿xÅÇG¢ ¬_Ô[JË3øA}J˜ÛPäÛ †9ÊêaU@g¸V,è9�bÞO®q6\09ùÊN$óyƒׂü"Íñ—Ð̰oå\t½”m¢v-þ–/b¼ºÅ‘ýÞA¿Fcy÷Ï•mì{Ï{Má3ÌÒ1 À ÜÜ7 ºûíVj*Jú]¨Î$RL�ž2!'M8ü€×ä«ÕÝถˆ#u< a›Ž¸ºD æúš>ÌhŠv•¹3ÝÐ-œ‡¹þà[ !ö=¿u´Q÷£%ÌÈL.ZX÷P(Ö¸—ú÷#ÏN�]a8s0Ë®8™LÅÃnígœQDNP.O˜ù°I§áWæ,PË_ü�¶Öؘ¿T0$#ƒ¸S‚‹éAºCrà wÍÕl\•Ÿ·a<Ùþ €ãõ`Ïò‰�·£iý_îäîg 6˜fµ4üG¾ð’¨+3M3AúaãÔbnæ–êÚRººº{v_X ø ÝÖQ—]Í̹aá,Ä¢/fzù-å4þòb„H×Å Œž¨)ÊáQ¡6$ûÙ<6saüîBЇ’éä+ÍÀ…%†܃E}ŸÔÇUš::ò^(v—œx›&Šäl†|øµb¾^ dÊå1ÂéNŽº"�rNïH€uÂwŒ'¬T>̉ô[��&#è,ÏŒ—Ùu T~»p?¹ÞÉ,‘b` ×9U!FëZ³Üs\Žf4¼El”2…íG°"ÕjÔ®þ“6�Ï™øô]ÑÂF Êÿ"¼Ÿb…éµQsÚ¶mÛ¶mÛ¶mÛ¶mÛ¶ßiÛžûëÞÿÞY•TRãΕ1*yr�¢e€u“�e©‡Þ[*§’à6¢�õÅì½`pðFÝܤJ€–G¯Ï1Wì…˳DZ»ArØØbi“[)<¥+\ÍŒ÷OÈñûmèT_ÕÊ3ST¤iR­rx¤EÊ@+)IgÄ€—9¹×Öµ)Ðñ¿G´»˜ÍßT|˜dߊŽ*'ɪ BéÝ!ç¬,ïð�Ñ㩬žø‡e?£ð‚gú׌ÒHe3ÝPÕ²¥ŒÑ{™áL ÃIûŒ—Ê®iìñK9§¯À×Pö2M³íýpÎé‘PxMù`@r–vø‹j99aÄ7#®ç‘e¬xÑ­×)Ûð¯`?*—÷x€q÷íÛ”ŸËiÒP|TF¯ûŠkmÏ.9¥¥Ä²g$Kc D¦Êu¾/ LÞj#Cã ÃVãÿ†&'E„ã€áæb{Ëžãr«?/z66ÃÓè¾>s±éZÜ‚°†Òf+Q&ÌtÞ«,ž)ƒ6°�¥3¥Ð3¿‹´‹yÞó-Ê¢"6`ÀÆ¥mfCé>]  ç§·ˆIþB�Å/êE} ;+Q¿¸ M@“F u%Gdv|oÊ5þ€–}À�á`è;žjÓê(o¥ÊŒR“âP>ˆ#°6IäjC‚Úk" /Âý—Ög¸D‰ö–^5çå’;`Œpt°<]½~�§18Å õ ©L½¤É|~ufÙïÝ zoÜð&šo§JS3ø�O žsV©@a?¬¶•± ¦eWý0‹î�mÀwm cØ^Ð@·ÓßÃSu;~òt(DÑ'ÓœËÃÿõ¯ðH*ý]´æ²«“þá(ÜXË@yÜ6Xªð¤—ÄZvJ×ëà–Z™Zå¼¢]�^²ðn_ÃùkWYiö›#�mŽPèâ¡f×Ö݆zï`½à¢Šä¥¥éZ.IŸæ‡-6žDê[îžoúO!Ëå¿ê±³`&óÙhLT¼æî*Ê"U€¼*º„¡ŽFWLèIü;5„ì‚õ&pF¸x=Σ¦÷ªØ|\ЈM}«Ìñ´R*°`²Úﱨ¦él_“Ù}д™ÿC:e(ÈÒÆ®+y±šBmWY<ƒt]q-T°²g+rÅ”¡—ÄL“1á–¼–Y©ô¬Â•pny9�%°�mR5Ñ„½ é74<6ý)Dû‡Ìf²{Lm­Ín•¥j ²u]¼4Ãçv¢Ê¬ÁØ©­*¯ÓôÆÇPØãt<”,A†ËµJ HM ØýI$Ú]ä›�í±ÒsöÔ+…uálZñ'�žët�süöîÏð^)õ^"ÃÓ.bÞœGsƒqHªpð?©vÿ´Ë­ZR™ÅsЧ)¯UíâãÆ#h}W]{WFƒ�¾gj{´Âø¦&ksIÓ¼À�¶¼\.®†ã¨rU'7¢â«µV&»ßÂR ‡Ý¹$ìjT4ŽóﻺߤL<9ë/¥Ô¥¤vxTSY¥jzæ 8~ÏðÒ9� öR¤öÑzB0&\ÜÓiŽæ…©‘¦æJ³Ÿ‡îÊû½te›qñ¼);™œpÜ¿63€=Ã/j°²Ò‡�ÜV´™º§º_ý¾÷) r ™ÓX™=>F@B”u®ÄE0UCÀþ£¶޶«¦.Iš�8Ðë5P÷`ÕËÀ?d�äˆã5¼6n±v÷Þ‹ Ä).½Kâ†a§ZœÿFÙkúzÖ_®w/7¬@¹1÷±2̃kbfÙ»(I©?x2µ™ê;Sóç°è²—öØmY˜Au„‹&}IéUê`µ[êéÒ'ºÏ…=0þK ^ó–ê„z–³på�ÈjF¤D""’ÙÙ8;š —ª³ãZ{ØÞhX9ÕO¼ù”|hQ†ÀVré×\æ ¸â5Ï¡û�Kù`v‰DÙ�7[Ä�=¶*’ŽýEhž Õ4½«¹oÿ§1ßÏ~Æ»þÞfìSî‘,ü¤z íX¤9×­�áä�U5CW‹š¦?v–öδ©Áª�EÄî‹(?⥎ãqÎéÔµ3.®&�#ÔuÊT3Øî…äy£¨Ÿ›Êaá‹-²%â¡:ðWÕÝ0\èsJ `ù¸LÆå½“ƒ­³d=¡§{üÅM'~ �ИøxÿPqØ‹I• DŸV°Ìß`0ï�¦ÝUe«pk67èúŒ“—åg�ÓRÁ?éê·GHhë¦ã™Ô÷ìÌ;¿uaä_¿­]èÀ΢Ü×¹¥‡ÑSNb›üÈãa�ÈÜ{6ŽQ/­îï»8}óf˜/4ÃF«!®lÆçðÙH·RfàL)0‹�Ç 4ôFx­Èífk´=ÆY½gŒòàgÙóš-p“‡mÏCžÒ¢�5íøROÝ[¥ZÐ!ìäì ™ùÔ[›${Qä�Šl{ïÄøp &¿ƒöZ=˜A”qŽÐ¯}~­óÕFÌ7%žËV*šà¡HÐp}º�VŽðØ!RÕ?ÌlŠ`u8Ê 0JÎ’9[r4UbVl—)RêLKiÙôq¿�måbů?”_[µâÝ]K("T·g‹¥ >l·EQ­®e¯õ•Y²N$a¼D™ÙiÝÛ¼–ôÙ†³œšÎÉuÆU•}WJYûݺõ‘ Ä ­ƒ–YÖmÛidûžîd´7#Æà·|cMÑFëYmÈ&›)~ìÀ `Ö©PÿDߣ ûMBÀv¥¹+â[Eîâßsjb¦t,±Ú²£ò'vЙʘÓ…Šðx¹Ó§•íòb”<üƒö—ã]UWü…Öø[¯÷¾WÌ¿Õõ�g'*c‰™J6’É¡2•n`c2póf¸‚é}'vÖñt[Õ>†þxÒ›m¿‚  «‰ªÂYˆžÈgxßž�3Fü|I»–<115 ®!‚@+˜(K`Ř'ùšò-Áš¸»öW'›�?ЭPüüʪŽ¡žåÚi_x¡_HäÇÂ)±¥Î�«dbbâ]Klðñ“e`û,­…œÚ29_nc…ñÎê%q9á� !�Åù:ýKRžyáaJÛi~ÓeŠa¥5Ó_^–@y\Ã÷>ž£%ëo‘ˆääN®å,!œÞÐÔ?²¯®ù©^êôJJï ƒªÝÂÔ¥8�ü‘>ËE ×"ÏHÛ²®#5Qkoæ¤ññÄ–Øö+=T4¡L}AßTÉm4RœlÌÞg¤]´«¡\@°â¿< ãs I�ÍK=£&—倕e™~‘ÞÕÓÞ(öDum4Ãk'ÛÛs¤@ÜbÑ£†$AÌÿ·x:wžš Ä'Z4CÀÂeDÝJ£8Uæp™½…~íöû˜ò¡>l˜2FJd_³4\ζ‡_8´êOC¬ûc³éE¢‡]œw˜JÇò@uY |H‡?&Äg_XÕ£vcCû0Mÿ4,95 Ô ,:)cpÄõ¢2ˆ=€¨´†`5 ¶‹ÿ:_:óÊäT<¯£Ã÷»—S6ÈÓMƒ=±¦\ª¹þÙɉ:/ÞÊG‘õ—RÜÅ“;þ2J€â"|nƒ½$.‘QiÖ,|f—s=ŒB•ë‡Ö,(ãjxFl0&0ã�ªsêÁT£*£¾-Åh*5E ‡”Ãßâ™×PÏgův×Y®F‹–ÙŒ¬Þ¦sg¶y¬•ŸD “ÁdžD5]A+ིA‘,sI°zd&Eí¬'<Í Ðð)µÝí¿±ÇYvÙXèH ¢gË<°ñ1ìSÅ “ÙçæÕluüÌP;‡=ÙRo•âÃwNt¡Ö1Z‰õ£Kt»Îe×û%ÙsG†5ì“9Ko¢Ü²™4W…1àái_Èsz†¶Yoéƒzá³ §–Y GʱÙ7�� ³`Úð¨”ÿŸPÂD¹|F09›©èÉ6_ ³£e€&Ho¡æ$À}jjöí¨ß³Krº…Ô¾‚eî ½ŒÛ7G ¥:/–++Ç #ц×ÁÕ§eìA³×*ßÛ@crð–Æï ¦E˜&èÑGÙ¾ÅðQŽ,¡í¬´Èö’µ³x DSïðÛ^dœ³'n»êù34KY¶¦hóñÈT¼ZúJäkj$!l�D\þè9ÙccJ;ÞÐýb>�~l3ÌT�bwÅä—ˆ�Zq®cÿ�˜`'• û·¶v}Õ»-‰Róþ€),g•HÌsÅ7ø "�á´!ͯ³˜âµ4¨å$ æ^ š1xóã3¤;µQÕ8ôâç€vPÑ“#ⵘ*uF«'¬ebrv¼Æah›ãÔ½ öÅó�àqi6´¢È_�4ã/çd&�6ßVb’¹•(Ÿ±_È Ó�È®¼cY‡)Pð‡i‹g]^¢÷h`8ƒ�ß”Ê�³l²¢&KÏê'Ì ž¢#[<Æ Û©Ð‚C(zB³ŠUÈ¡+«uzm%Ã�Þ�‡Ä'‹jËû#ò%Éhm?»«¬¤Í�µ.ü&2ŠwÓ©&-6Ì*+Íj¦³�’9”e±5r±l³ ih€ê[;E „:‡jéСÐ�t«mjîn¶eˆáI�®n¯ƒð&& Ö*Í$Ë“Í-,¡4¢AEð±�±ô·ŸGÌ@`U\}®¢ÓMB}wnÆ ˆ½‚f¤´‘$¼ÚE¶ Œœèr•‚û¼c�—ÓØÓxÀ¾­P@„Ì;¯²(ØÌ½Æ<t\ÝÔ½åZÎpžýÏ\í€<Úý$'¯Ì%¦Mù&|OßD(6Ò`gUogy×½m`v®ðwƒ¦ÏUðW Š­�&ߤù¯Ûu¯ºóXpú&é|re¬fUõ:Ü~­¦xrÌ]ýÀ�⣆‘†8îá.$;³†Õpo3¶¯ªˆÈ} Jïmî$ú–ï;V Â�z[ ç9†3å’”¦G¨½íTðñ{ywX_62Ô;�e´#l1&/ÖØÄk³í${ðÇ¡e¦Ij0™»¼@ÞÇÆl{ºÒ~ÌÊTN™H]Y¦ÇU¾,G†é >Ü]…GL£Ýçåb]œ�¾8@_㙀cå¹VQã©B.0N¬÷nRy•g(Ø—É„WO€äš}‚7bW$Ÿô¼ç!”çG³Ê#“íßí=ëÀkÝ|pñÕ‰=êÃEÀñ'¯ŠÝ‡ÙæÖúHæ¼�-î›­Æ“1�°_A¸�3kŸzQ þ�˜]·¼ÈúO¸$RÎBB„(1pƦ=Úh‰ M«Öáƒ(¢~BUoxÒyÜ_&zdô‡|ÿgDPxQ² PÏw|lƒ‰8jálœlˆ´ã­u¶KSÀåäØÀå,~Ø›ð7J© �-;¹i�ú~‚H*'eëŸÒ7þN»ðkMékurrL ÇøÈ�ÄTeÑj2—ë…Ì+É¢  æ«­ºKqZ�èV31¬ Ê"´äß'o8Ô�¡?lÇr4ä{~€¢¼âe›¯®SgΕû(ŒˆØ»Y ¡¢Õª3u¹ê�W_@ã�rÑ÷Ïð©p[sÞ[Olù 03ÃàCŠ2ò‡ ñBÉáV:iQ N¾È¨Š=ÈÚuC¯§q¦ÀCi%ÈPŽ]@p°lRý«ÊÙê} ®°æë«ëÒ -®26‹ÈŸçªmøuØ |ªpýúŘ|xj¾‘™7Gâ¶�þ Jz;m�ˆµü8ÐÈ!å-;ÁyPe‰-ç+íîù‰L+B”�ì…ƒa<•…˜¾Ý¨4€›Ì—´��ÊHWI Ô±¨¶•ê`êÀ#Ê€Ú$ªÙ¬œ€·)ØL-Â}ч±é-I»]op/ÙõhOOtÜ$Êü?ŠGÔa(– -2’%ÍD™ßÙ|�¯ ýxðøL/°®©¾ý8Ó•G]l~ÎZ;´7{²RR…tÍS¿è }ƒÃT¡»cÖ¢Þºú’·*ý‹}Í1Mâ\žyCR,ý/]ò†ý[ ½zÞóâh÷“j»ÐÙÔðľnô±A6|�€4�Ø�±f‡=¯sõ�ž¤�úÕ%‹®ið-plå5ã,´úÛ[ú˜u’n‰¬k)MîÄž_ŸèƒIgPÓDgå™~žOÊi�€³ÐXJ‹b#ñÌ2N½¦úFl[pÉù9y0ðœ ΃“A9æìúÖ©ÿ|þÙð•@rÈŸÏY¸’†”¶,‘·'‹ÄôÆC˜f,f`O‹E~dXäëûFöæOoü›$)ëß³tA0‡ÙP°Ë{nGy/L¡ÀÎ!Ò•x§8lx>Ù›}Nä2Æ^0mñÎÃý9J›‘߃Šk,Zîj Â\ñ"ˆÏƒ¢yŠTj4!„Æ:Ú‚¬(téô ÒGb/_t6›#‡xUÍ G%«j­Ûã†Éí®¼ªFî鼯œòY#i ñ Bù(¤gšs^Qáwñ„wÖ½œ*®ÔBÄ£ˆ1Æ '0º D}Žû&�µ€âÿQÒ>Ò�d Îè_¬‡É„ফ¿Y3GYäë%JJdêe-T¹uÕçŒy�wØe¾Ü¼àIÞsÅOP/¾ÂæÑR®Ï®T0wÛÓüÊtf² lÐÜH× MÝ 8‡¸Pï‚¡#èíQÐ�¦ú2É…ô_Àú§å×ë‘“æpÄiÓß™Ùåˆx7u¶ÜÄ$»½]Ê8T°«{7}NûbáÌŠ[Écè²#"D_m3e;5ѨF¶/µX®!<7Ùv쑈Œ}êÐü­€Vþýi/Ù'*{¢ðü ¤Õ_uyöšyhê–²}n÷*ÆÃªú‚šÀ¬‡¯(òZ ÒÿÁzáð å‘7 ç>®TÅ�8²ìäH×ÔÐ�²f‘Ñ­¶ÄN¤ŸŒ iû@ÍÊe‘°äíþ²¯ŠŽ¡ŠUéÚàÏlÂCû =jp�XØ4G)H#,ºÍ9lÙGÑ ¬PÂìn¥Ñ�úà'¯”¡/�áöäÎÀÊùAöàg[¨®aúk÷ØþÕ½J)}¸Ì¯F¾M °$ÅágY½RžÇÜ<é11Æ–Û$]©M™ÎöFÃ*6 Š÷�*ÈÛߎ¿ò:Bw^“1¸I—CtmA^ñ{}Y*ž@«�7PB0Z¤{G¥Râh 'öÎ.òØ‹Yµkƒ¶=VÀœs¤l¡¾$ÎD¦ÐÝP¯Co²�³åGãŸ&s”™Éñã�É�?VVÔ>ô„9»0$µ;`3g_$›7Iº´lPÁ ì�B[â|dž „;!‚pµ-Þ ñîk�C¬CVvåþÙ±lº×ÏìÊl ¶AžÃV«Ç†&Îøé�›Ÿ%7*\,¾Å=iËzF?Ÿt¯=Gðœj{‚æBkÃŸÍ ƒg¶‰È`î�y Šé"dL uêš³»/<8‡•Üûé¥;'c #FKÀz Eum6,S›î8DÞ{÷j1cK‡à0žàXèç^ð/µÙªµ•4’»½:�ÿ×›ª@ãëÓ®B„EívjÞ1 ÔEV»˜Y‚³†'{Á�µÈKí oííä‹ÛîUb´én0íaÄáS]Öã¡ÜÑpÏt-E&">B•ïö¶pA^b8¯ŒökÚêqIX”ÌóI¹ûå9×d̾„ªYk^åI0†QõJãq–Ü÷cÒÀ±b«¹ã|¼5ÑcÖ)ÿZ¸Û‰r£ÿüc?y…e=LñšwÂñ3¥5Cf£fðY.A°îœ£�Ew2á¨l¡5ƒþ(ãwê²vÎîÓ4Y·¨·¥M¦Î“�Þ‰S»fn›.ȇmùÕ@0ƒm½îñØKú·¯j< ¹ è‘ZÜðŽyï!ü9X"TèL2âñC^¸´˜^lÊÿ*j9ó#ì_æ”0!SFl©Å¿ý¬kx �ºd/dÈŠ¸õ�]-‚Çc¥ ‰Ú\ñ4Á8G'‰f†]JŒ¦Î6N&5’“¶mËëŒÎÐyGÆè›ný~Ø÷À3D�eHÛ¶P äj¹ÁDð*'hö­Úsy É&[üÝ;—>�.®óÆCºYªúaŒÎ3k”^Mä4L?Õéò ýè�Ütæ“\žÅþnœ±ò9¦O–›ÒÕH#Çû¼=ØêûÐ5Øšö¿´“7®’½ìù›EBT­8¶p�wkS" h„°vÅâÑùW{j!«üñ�âÀP«b‘f»^OÍân�:L’#m·ƒ€½€°&ÜÞÎjŠiÜß]¯ÊSƽo£äÅ›—Ah­ØggÂÙ‚5XOÔa�¤‘0ØÁ•Fv"0*[þPóRXmþä›bŠªè]8úúïx”(ª= ;ßIßÂÞÒuÊÆ4A%&i•€ÿûI1j�0]™yÈySåÛýy"Bã5¨Y’/Z6ÜïWò Óüo=€’©±›²�¥qÖ±òTr]MoD€4•‰o—§¥IÜ‹É)§g.™â´üx jaqï<` PœÂ'L:ˆs\&~¸Å¹/ûÔÿé“û$ÛM ž%•ƒTq Výo~öG  4±ÐT‡±ò ˆ\knèHgïí¨é™âh–Àn üÙΗ�Ž0«% 7]=Uêò ’:Y|…ÿ駸Vˆ§ˆ2ç˜ðµŸ[2Nýo~Ι“,9IÖïO`�DÈznlQƒ…ð¹^W:œŸWª¥KÙÏVÐ7ÈgdLò“Hª\HÇÞ“3•¨AÊÿ�¯ó|D sçÕð, @'$å1¹ÿ7_ÖÐÒîÿ³žçÿäÿ{ëCµ?r´3P:¯›G–%4þçÞ¼ŸÕL"=…ˆGšÅð§ØP}þ·½åþ—ItÝát”|&½8 žãGŒŠ6 W®~í[›5Àd$T%ïY{®—êÿÉž·ÃÔ#&z攀Â@C–2 ›þŸ¾=HwÖ— yÿ:Ó.]´{óÿæçý—骯#k †r4 ÷™£ÇôHj8Ï�ö¯ ÝqT�;‘Ô»_ŽïC#Z×ëY�" laŸ%ç'oþ–wúŸ~~ä¶\1²>§"@¥Ð7lÛÿæçÿ—™.Ø'üÚšbº±LÂúóQŠÉè*PÇ?sü0Xf¬­Œ›ºüMT�c+R­õ™*D©ÁZ>lBǃøUú�5üü�ÿã3<YÑ‚šM Ueâ‚¿(�ý¿ùb–6¦"¦ÎÆÿó2k‡¦�4y :64-—óÑvd·{’Zã}� ¯¦’`NþSg:CÃÿ¾ÿ笨ݺüSj}Øv¤äàóýßΠà¿ÌMØŒÕÉ–NŸ‹¯‘8X|òä3eŠi LJ(ª£{Å~n 9P¾¶œ4UÆB.ÏQ-%Zâÿô-ÜÎ6jˆ¾O–=ý”(ªÿ7¿ð¿ ·ôI0>RpžÊšÀ­íÅNÆ×rèÝ' ͳMÑÔKiŽÊø¶�Ù• ¢YA½‹ ×ÿôï�˰À�Ñmr?0V}`1þ7¿è¿ÌºWÝô¼Eªä¸÷ÒÅyÑ,º2‘¼ÓxæèѦÇm({Ù€FńՎ,‹ÊRý·Ä7øÌžæ#&ÿ:ÿÿôÁ æžj„ö§óÞqþ7¿ø¿Ì. ï»cÕL\–’|(˜Îf–;Ò_hèÌŸ•d凨ÓÂâåξâØÈ®{åtÑ‹8ÚXv F'´–wmùÐÿo¾dþß~oìº!t¨Ã�ù$M‡·Æÿ›/)¦, ðÿg¦¨¯èÑýM¿Ò¸h©$.€MD‚b %¥nšÙ«˜Æ…Ö¸Cçdc,0˜§›¨{Lý‹vø®“#�“¸‹L�’Ãj]˜2]Ö†g•ƒt¤ñ¥ã·_ éô ¶ünpŽ=¹õ;Ã:xª³uÒ!šª9uMƒèô‡ŠT¯Q¡jãîD”ÜŠ g,#³'Úº´Üqˆw?€É¬ˆQ j’03å|·»XI¤Z÷ä¬÷d{ ˆÞ‘h‹xú¶í‰³w„Ù‘q�dž³YJ$"Îk´m,ˆ¹NU§_îlîkN¤.`Ëáa)TéW-…tySï1’¢½æûâ·ŠªNmAòB@»·$Ì%ñ n„Â3ºbÛé÷ƒ<ª&z­] éØö;`ã¦jØAðîÀK£…†ÍÍÝÑ�ð*‘EUAÅJ Âbƒ©ùeœ*}€2?Cˆe´ü¦“d\‘Œ•8öçõÃ#@ág§bΤàyãâ ‡h2[Ñ~RNnzy/p#ËssKéA³Jéu½”yÉzIÐY›=‰Ý§ßÃE"î­ñ}¤f£cûÔOY£~[/i�ºŠ ÖJ‹B–³7.固y]Ü÷È”�,RÒÍ�òë¢ðA…h9½Ôµnon„ã-]e”÷GɆתnZÃÀ6êg̢ϲ¦>ËÕý-=³Û§ÛÑLKB À‘Æ€ó�œùÑûo®Íút"úæmWý;k*œ²ÔµŸ™öHãVñqÍ^D8KÐÁØWEÊ)Pÿ…¹²4>y)&–ªMgKŠî�nù èÄ…›S`Íc9˜£ Ê ¸2!8 rÎæ€¢ë•´=gÈÝoí]”V‰’S®È�ªeÜ-ì0 /½±½W‹}ç9Ôä[ Ö/Y�‰º?‡©ÁŠÈÛm¢do@ö¦ËGðNñ™™Úéå˜Üõ§éyïa¢>:† ƒ²´ÓvkÄ÷ÁÐÙk¹ÕYaäßV¬LÁýø+Äîê|Îɽ$Ö©¾lk¢ô>ŠM¼|Ú"H8˜Çu'PùÔŒ�du›™¨ËÆ%˜}¦+@+ˆ ¸n|ѱûªöI’r€—c Bd騴J®1\d%RÚ=¢ÉIõ$Oiµ]‡v뀹úÌÕÙž�TÝàXêŽ�sãò›"§™ú0=ê2i •m«€ q±s¥p�eGn<ȘJˆÌEï>WëÍìf­¾ƒ “)Ýqtƒ,þ͉�2r4m"MÜ‹Õ�›šRl%\ „?‘¢ÿœ’<îˆÃˆ–KSÄQO7¤$Õd¹!íß8ú‡*·I|Seð8Nk~aÁRãè*Ü'Kâc@^­øÎ´ǾÆ÷Õ|^«Ÿ5-!�Ú¹R!qæE!~eUùEµÚXÐÆJU%ô‡Ã-ŒÌ>õ&„éXC8±Êv|É5õ¯}Žq�Ú%XÛQ£¡ýÞn©ÎÀf^³Ý\/öä_FÑ�8dæá)œûYø¼¦ñÍuL¨—ÂW} [§¤y*Ú†»ÖÒ‚ßQÿÓ6›8OÏ¥*2]áOc‚ qÜw÷ä‘ÃJ:=ä՛ΒJ°¯Öˆ‰ïÝøõKâ¶) ¢âŸ‰;Ô2 Ä~µ>¸þ½a_ÝŸ>³ûZåùŠ5Y´¶O•SC=|ݬ—‹q.“�lüüŸàÊy€m'LËâþçà"ÿݶŽêÝc«9:®$?î&ܤ{}Ÿî\å:¡ã^[íöF2c’eöv(éO½oa„ ýª= iË߸ڦÅL§ÙÜ<õóDkÀß�u0²‹\;èžùé4¹hÐ+Gì²Dsö}Œ÷0WƒG6B}ÍÍXê~st/ñ¶üÂ_Ï¢b$¹Pݺ‡'›¸êeªû£|ÜJ™ŽÖ¾*m…”¦$$Ü߯ >Ûã=x7^äX{2\`¼¿5k ÿþ7°QÐG$4Øœ*‘K¹™ß³è2°.°í`¼’XN§pó‹ÞÖIˆóÓLƨr÷œJ¸ÔÜmƒEcÆ´c’ü(mÉì@Í9_s&µ˜bݳéý}¿€�äÓÕFx7‚b€¬%Ù5×MJpšI²%»Ê<&^±Búsèê…z 55ÍŽœbéè,Í Æ¤®ÐèfYo·ûÜê_â¢a½r^ës7ÜÛkú¶Äqçz;äwà4þ Q¹‹þ*pË»,/½”?z}—AHv !0YhB‚X]èÀìÑ!qS$àMi‹Ù…Äéãï{ ;�²Í°¶þL”f… RItˆ¶QÕ¬/l“Ü„ˆä4ýóvÒøUB‘Uóž\ cýžãJ¹�øŸ¼oSWrR)÷�Ó æÉ'‘®·ûÜœY<�‰q_ã[$U_K–Y¤ÂVB¨Ì8{nŒ¦•nÖ4Y=Ƹ͗®úóýÙIxÅÞ!øt¾>Ñ@X²qÔ{[b/»µÃ®Žb/– ûè“L=zx`²œIH?Òå¶ ˆ¾7";ÌßJ/ç’ð h?¡]Ðþ ¹_í�}ÃlõAy‘ô›�ÑŠu}zhoh_2A*FÃÁÌɼ6�±ñN2q}Ëþp-«Ôø ïàÌjÍ`UÍ-ÃL\T%\Î.c[RÙím%iJ˜ãŸÛ©h¼TNoÑêÞ ¯0ól•Y”AkÊY2�(B”Hùn�ðxg!r×,å»±ê��i:¾Ãö!oþŸҨ}®?RïzîÀF¢û-²\CÌÑ‚ó¤¢ÇëÜèã¨T*âP¿€_W&ð>;(h>߈‰ØdVÀw�®hÛF°ù8ï¶šk—à–’ƒûOM‹T8«û/ÏX¦-e~wœª?TßåÔYØN�Ï™>\âðO˜ xåFó–Q?<qõfJ¢glîzR�TO�ÂN\^]Ý#½•Õ�²2aÂ%«áv‰þ"Ñd‹ ÅSOØ�Ë’µ‘×ÇNlj ½0vù£s 0\ÿ¥®¯l–4w9컢‹`Z€ëv„Ý|æŠH9Gt°dGA„]0� ½žAlÚýس²íý2ÔäI:µ¦-EqÉ)ìg iO ޳‰^^�N`\iÁzÏÀ£u×}âe,×tq¦‹–,ÿ¾–3¼’…ã5ëÖ úž§´nŽùËNâã3ž¼Ãp°’ªÊýxÊ3vžÈ²Õ_·�;tß–Õ3âɱºA‰A÷R$ "|M”ÿêª9H9n–Š´j$¬lŠ8ܦä¯ÇÝO7÷‡×ÊZ­ Ú)›´nk˜ô<Ÿvº†O™ rÅïðÜ�€Û?’EòÉ}9¿Úi1 ;­†£ÎVÙõ“µì�ù°‘Z�%}‚14=µåލjwÒå7MÙJg@Ñݪ:¢4ø¥Rºòk7±ì“R¹™Ü*™³+šËÞiS5·œÕ#¥KÇ ãà—0çtñ•÷ �¤I»§ mÞ“ënû”E’´Øb&b•AFj3•Å/ÐÃÞ¯òE^ÙÄým…¦gß¶ƒ¦ á¦Û�³Î¹ÎÀuGƒ^��=ú¨þF£#m|$=DåB~’¶nþ�ËÔË=±6a²UÔïUf©Ã÷ö’eÝJéØp¾É.QDf›L½c¨9b<»�ë¥æ�·•ú…œV(¬ :º6†Pof(ZE´ìî÷qDÕ9Y=ÒÑw§ÆNøŒ{<°E¹ ­º ³ö�7ÓÁaV‘Ñ©B%mq"X†IS¾#b?iBéáãǶG¿Yí}‚�:qráý65g¿„F=K­ÄÛ}µüŽ ÕÔÆPHé�–“GæÉ�J»å¹Û?lª;tb›ÿcX!€Çè{çОXÖíf`sjA°ö§½“4\„þÄ3G½®äÆJ¼%ŒnÈðÞÝÉÝVyÙÛ}‰ ÀŒK8:oú�œlÆ�K¿_ù¾Æ,¶%‘ í3ÜÔº.ŠýUŒyÍœ 9{83é:Àƒ#é­Y½Ô‰C¹®ÛÕÏš¨ú~ÉÙ÷¹1�)9ën\E3é‘:eáñlÐÓËCæPoÙªe““n|a%oŸ3UrU¯?‹ï�¥Xåó†;uWA›BÀdÉý!§‘Ðp,ÉëÂÌí—ÈÕíÉP€†_EÕ„ËŽ¹+Øí�€;åg“sæDPì§¶°øÉ“Œ¶/¢§>{2:ŽYi_ºë™1å _p&­Ë’ûuóÞwÆ™ñhÕwÈ�Ɉz—˯=F_µ±çܽE7¨`žÝß5êÖíDð6,¯¡ç­üx‡ iÛÌ%ü+«Æ±Õ‹Ì¼þ/¾–‰±ÈüñbV¹Êîp#h]¦DÏ@> lˆ9]U�|ñ–¡½›˜«�$HéÏød±_¨í*–éé »šš`´"¿É?¦çPã ùJ‰ðË:Ü�¿<ç<Û“ÿ.cS‘NP¿²¤’P�a¹ ¾†m ö˜‹˜±Á6ÏÊ„ë6©ó˜o5ÖìaûÅÊ}‹ƒjÙÇi±X ÙÞÈ»öÕþ+O½üÉ‘™0+ôÙý/,jÝżH‚ïjY*ö¤EɺGm1�¤LyÊ�h¼e»taiÊ-Î_œ‰pl¼Fm™íÒÚO5*nêª&™k…½w8T=ïÆ¸sxz •fŠþi. ‰Du¤ :ÅDFîñ-Ÿ‘›Þ·?âQ:åm9-+ŸrH´«¤Tl5ǯ˜Ã¸+ INšs%Ó"´BŸŒD@ïéâ¨2/ÿ&²lΞIb{Pû{AvÔ¸3g_|«ô!d2þjàmÞÀµ½K²Ã%[Çz4À”vÑ/õúsí2 x¨QôëFBæí £ 6ƒ?¨eó4¦3Bœ£Cµ¨ëB•‹ªqÖØ{ÒKoÊ�ìÀ „äÒïÁØ#ŒGUùá¸+¤aÖäÅŠAöBòˆ=µòË×5ª†¢~‚2ñEAÏGEu×zq4¤/‰ï0OdœËHW…šà P|>þ±æð U.@”;`">2Ï>ïmîò冧§Ý7‡-üe�Iͦn»~Ò À\D—c –]RµÐ01êzŸgªž]†éôõ·<ê)½’šdá²7’ßÈ“d¨âT‚.¼³1ÚZ¢œÕÞ@)@#‚À4à5_Aª™½=\A>w‘ >®êSŒF Y?ð¢Vw°)ÔäÁùA­ó£ÃýÂ*Šj�ø7¯‚Û"N�1sêm@<q5IT¢†b‰âgY\¥:ò˜øáÈÜðMó¤ªy[L}éÔy´[ï ¶�‚:›µÛt)i|½ú¶à…sÎ3�r`„‚ú©lEuœ#"†‚Ès‹Z»–2'^t\QßËÏž…Ø5Øw¶´áÊg?nñ¦3EÅ–µ~˜R°ÉKú÷$i2v#1ÍäIlÝö©åU¹j�é<ñd! ö{ÐÇ.ãÚ„À²¨TÑò‘jSw‹ñ©³[çyâ×l>?UMÕœ£ ÙæÊ�A¶:é£?º™8.¡˜*±*Ì AðåQX=¿i,Åçð§E™¸ªÃêfˆP“ &@4 ÅS{± Îá¸p.S!¢V"|º( õT-û)˜ÒAêkë¿r¤(¥ ?­$­X�jœ[a=¿kÎD²˜RCr~uÏ¥¦­#uˆÍ§Ø …LÆÜ�ç’ß -½Ôò`‰G¸ìÈ&n ÌßT)æ‰Ò òŽÀ§µç"œªöè2&¢Ü� ›Éù`4¸ ª¨7¹³Æ<Ü^‚ürOæku @Ë(’ú¸­%/dèKÜ )0�t‡¤zÐx䌡?ÀëÆ;îCúÈmš2ßvlæJê;Õ†¢¹|YcH¤�aØÚ�ÞcŒ¤ýw²„—¦ O¬y]‰sYI1 ù‹¨æñÒOiî"³ÑK ãç[¾à»ŸE}¤T|ÅzÖ�ê› =z[ãoMFœ¡±Õ×.²òFN‡l0S p—¯¡š;#hF R‰fsû˜l8Ôžä\¢£w?ÏCs)7mß_Mð Ñ®š¼éðéAº¬}_a4Rz2„èFŽ�‡†‘׳>A@Bu¦[šúxjÑ1Xb”í `Úr&B4¥=Â<ÁÂKçC›¡Y¯8£ ¤S±ä ¿ÀϾj;•M„§ú , G�¤›eAC Ÿ}±€Ï£|.Çûé ô»Ì�Á–Òð ˆ~@Dê ¾¼.[¤vY±úù £GKj ‡6ñ6Ç/0ƒ¤BÅ'tmJÙ&gçÿJMrÌsúZ@ú"–õ–�;L�ó­�©Ê –®š”™€�œÜ›¸U_ü�8þÚŽÌbªÚ�R]HF°%d?9ÄD¶`Ùgµ¹Cô¸L�š>N ´«=ðϧ·"\Úä´(ðz– Å7^Þq³9Ó¢*§HBÑ[ég¹z†Uºä×&3ëïòƒÚ ÔÕÏý0å£S«Þ!a²¨µÆ= ,˜L¿ˆ„Í?¡Ï â'ö�ãÑØþ—;í‚ÕÞ“áR©gw±8ÃN&æ }¡©v*Ý|R%V}[NÞ›ÑE¼šŒbß=…•Xò¶®mGj»I»W=Tdq _ÛÕÒ*KÕ·Ý™Wƒí>–W4?ªu‘2ŽèÔ8.ßϤŒêAÞµ§Ãdž&�%÷äç i©8œš„¿ùëIÄ•§µw�3.Må—�í  ÌQj7 ±®ÿÃGWS '‰õë5¸\ù{öm)üWbùÓ*…Bc°PJ©ºÖÉDßr;ʸ¶ ÆÇ3•·ÿª±È�iŽ ±“&m¥?)åKÞ!ú-:ÙdÎÿÐ9·Àq¹CJÇn9ã�NZ$øß�’œ„¿°3nÁðR^Ö¸‡Ð/·:‡©/>ž?zç¬Ì´àà3´ôêÀ·D%Þ{Wb‰°PfÛ³!¿‰v¤Ö7ÝWªýÆÒiÐíQÁñ†ÚN\‘23õŸ3`sY‚ŽjÉl¥5ûb”—KiÂÈqr8ðÑȽù‹\­2}Á^¡b´,7�“jWYü`7êy ó’Ò_]" .Ñðz�5,ïag©sñ]³^Ç@wNüÞ#Þ¿! ¸í��â¤Û_»¾î¥¿ L ö«EICf÷°EüÈ.þîÕƬÒSÕÅU¤r°^èI\‰K<)aïµOûf`s£89Ë~®S³TÀ§£àK„¹é ¾”WÊÌÓ GýÆ�8’™_˽:%²bÍŸý+ ‚¼àºe sU¼U�·¬ú ‡aC²Ÿ¦˜Ø‘:Ó¡4¢øžðíZ¥�æûj¦õ& ¨Ÿ¹\;Œºôcp'ö϶eÁá© ‚ÕÆY;á '¥Ýú39\ÕN×ß�„ØhsM™á��A~M� |Cªñï¥ÝOIU÷ú‚œoAq ذY­v©õÐ&Nñ@tÄ;�©!ԙȄ¶á„ß(AȂڕbüe•ÛjïP sq2e‚KmqŽs¬£KjšÖñ˜žŠ#C¬-ù)[‰oy–V;s!ôJeë_›=Öþß¡Ï�ØÊÑP…y‹U€g‚©�‹$-±*ñ¶<¤íp—•¹¤ y!Í•ØÌ·B¿bß4W¿ºž«Dm9ÙîÖèØöa?ÖÆYµüÕŒv‰�ÐZ××S5ÒÆ+hÄ X)&[è)…!üp‹0)*û“Isß–U-0\GàÁ[Y^zž®33ÂøS‡«�ëÄ©�ñm¡n³(!šw�ÂÐi¦y;–z @Õ`5õGa×ê¾oÝhqZZIL™®æ9»}!‡¤¥â%¿ ëæK˜|ÂÿŠ’÷P Ð4¾¿Š ËbÎÄPFãè¤d9”ØFy:±VËjÐYì� }Iu¿nØ�-ùÉnþŸÐ:íæ{ˆr\šgõŽ¢y‘SZݸî“ïCt=–ÿþŽ„ÕbæiFi‰r°;éø[ê´P&Cg*ßÌò+Møn ”Pfq9:ßÞ¿êÖ ºîê�ó4¾>å^µÙnÒ œm,¹EO_™%áÍ“ÉÄíFi�ÎÝÞé#´¹w5Úp½…XÆÈì¨M1�ÚÂIµè#AÓûTö¤Ã|`À¨ãhŸjI®[…~%ÚLœF=nØQ{’Þ‚qìéÝ;l[TÀ’¦Z_•Ãáq#£´�·ó_¶b•ý‹0{JcmÊeú.]{þk)­~eËCé�JÉŸ,/r Æ2F›Q[›¸œ°¯yÀÿ8©÷œqÉrÓÜÊjÑÆ]²ô_¤ß) Q¦—Ø`ÓÇ^ 6ÖŒ}&PЇÎÙ¿�åO’]¾Ýy�–áé±®ÇßaIK�z­ç–,g ~¼ž?Píy-äM¼k^Ô-îPô{³nÛñM¿b;Õ´¶sò œæE’o¿¦'žŽùp­ÀÁ»†�åLóôDš××> ÀIAÇ »Àª3Ö+Ö`ÒÇ”ƒÊ–åßx¢�ñwŸ!9åBŽÌ}—ªÏìÜ2к*>ñ9y?Lüçm+o¦hwEUYÌ itÞ åâªW}5ëH`àý{�ŸÀ¾5ç+�K�'—æ,Áç%DJT%~¶$mS¿��³‚öF•ЊÁq0s@_ Ô0NAÓS>¿A1°Î–[léý뇜%ùàY,”{ñŒÿÎRSÀT ÆÏ8*¶Ãbæû¨Ïå!-GlA7’5!Ü�Xë#¤§½‹Ž˜®A+9ý6ñç]V)a•òÄ2™ÏB”a°w/Nwª‘ì2M“zh÷ìïƒërå§Ý®[ÀW™­ØÐôY7aÔ“1B*—;aÔeÛƒH^à/ÁˆÓG�äÿ“ˆ°GÂb9Ú`,KC›¯Ò¹«q1÷Öʶ%EØÊú¬}„LÞù1“o˽«°î7ã;”ÃjG”Ã%<*ÀŠÎV”’°m(XôcxlŃx^çT=«R§6uMØ‘ùÜ»ÿ8Ï|FÁtÇÞ;FèJÉx(-VM¨–¿â³ pïÄʲù ˜"ˆ0¢•”ŠFs9«*Ê—_ ¿&`f¡ Õ÷ÍÓ®~ò�ŠmUìsƒ[e†dY×êt'F/Á³.²·Å�Þ=xU(°,2x²^ŠÙ(ŠÈQnƒtº¬>É·êÈË?¿:Òj µ*“'ºÛR¿Öàèl–ïwKe&³9gt抹[È+Åu-�£a9i�"dŸÔ/„½ô W>#“¿ràí7/s[ƒˆ¿9ªÁëí´(f�¶YÏ ­üÉeð›{\µ{9Öûr¢—Ȱë\?™U«ëÀ˜l¤êÔô‡퓯í#§øñ›ÈD•¸aá"T;ÕÂcwߣ¼áú¦ÈÏFãN=¿ñ(žyy„W3ö1ûˆ�öˆ¯:t.|Im†@&³PŸˆ*D:ÏÒa[­å3ém[ëäIÇ©ÒÀ½²,mz>ä®âŒZ³‚0p¬ÆT8“~£/Â~à#f;ódáÆm‚»M&@ Á:9˜ G6ÇDFR‰½pÖBâF×bh¶> /.¶ÙDoB…•šAåþê%�ªC,‹«E'ƒkwv¼¦Õ}½g ž¹,â�k|)‹�#í•Æ*ŸU'`ôvMñ˜UÇ'Û¶½[ˆ~¸~ÿkª+1*”k)þÍýtëÎkåÏú�äãÖs<€T�Ô82ëº$¸jøKÿÈçß1 }“�CKwV�}7÷І¶ŽƒrÛqi šˆä‰~ìˆ*Ä$é®j1ä°jé7•C:/eˆÆþ†O¾±a¿»¹¿eÈ7HÆd\Ï1�PèVDÎY:�¨}ƈNK}즎ÁâÖ¸8å‘i¹.<)V�M“Ýh@Y,ÐHàò†2!_ڣĘ9i´äó»¶‚V2ƒ[*žeòÎ[“½N^ÁÏÄç´LUco¨g+)í¥·�Åc =Åv›Ë­ºD‘/¾Xòó±EìY]~c’[²ó]¦˜zצ“{§¿×Ž|#ºeÀâ��~œPaºÙÁmès‡P�{§?’”æÔßI° ãff¨wÛU(Ù*¼ën{á̃kú�|qÅçƒa0o²÷Î>nå‹B‹Øß]×pvÚÃrÛã!?¢}IŒ”“e³B6õ4§=Vƒë_ÚÓù{/¡X�ñ»§�ß@a_µar`"fÝ·ñÞùÇ1œTع×Ï]…hÓ5~Yla¯ ³ ·ãS­%Z|šXqœ.±x™bDðbËòç‹<�ƒê¸ÏÕèKÙ»è¡Õ°}~ë3a´%L]M:X‚ª¹ñúhÐÒ¼L" 5O*]FG$ qÍm ºÂïÌ¡‰åº-!†·Ûì:àÖ´ Ä<àr€†+ ÊÝ„û¯b?ËW­zx‰ÛG2«5ß�ïôR"±_îOš…†,VÇn#°¬Ù{ æ–%�ºlicºyøñÓ÷×¥çäZ� >DŒÆ99àwª¾,®«©6þ9ßëOûÞ)#¥ˆš“Zȳ-ic;+ƪ°¾ãë5iàÈÇnßb9þ\�ÉnáOåš‘½^�ñ”&åíÄæyRÊ:«Ð!YžÊ®×˜�ý8ÌÑö%u§\€†Ÿ'èz÷¦Â˜¼ÈËÝ�\rœh9“¸Ûn§óhœÒEV\ɼ¢”‚;.CL¿½Ö”GZdp´jñI÷·¢±‡¥£›M¨í*>'¸ˆµ½Øä·ôrI3ÍÜ1ŽLYîŸ83ë?†^‘äÂÑiì/ öäØJïÛ—-’W‘±§{.˜0<9ÇßS‹•Û ±ÖFŸˆ’¡‰Ž8\Mgåb‹IFoìs¢”*Œ¨¨Ÿlû�O�†eã¶‘îÔ^]ÐäýåÚÐÜ`ì†mî| .â•}±}@_¨Õ ¯ñ”E0iÂiÛ\®'÷BT³%ï]>øé"ZHM²¥ ¼µµtŒª°Ê%Fë#�7±¼bá·þÛ3�PV„Ð}rˆÂœ«"1IëíwoÞ0­ êOÅ}«¦-#c¥®;ou“¹j¬äö挱ko$Ã?`0šü| Ú€@óOYGg¯8¡åÂ\ìNcŸ �YÀORp¾çÄ™vˆ»ÊJuµm!¼â÷©yKIo¬B§·„pý¯yÕh{)�ú5NÀµé…šî3=¡ÅÜ€èýâd0!q¡2ù&vù?TL¢ŒªR(©b³Æ;«Ê¢¾D6QIp—Ös†Z_‰vÜÇÕL²Ï[ �¿iHf~¾çqÄ… ?Ù¶Ú-�Ó8ç©«¤’DeÃ1V hÕLü©^A~ ù+8Ã&žÇÐ^y¬€ö¶Ób@}ñÔŠü!¼¸yjMWw­¦A_eþøÏK©38µlOxueBæÉo�¹ IA澜˜ “B°Ž`¹„"‚h F°Y0o03wªÀLѺj{#.€U`öÄîÿ,÷RæÈEé+÷úÑ2Ës@ToÝ�Þ¥!žÔ[ʆQ®Y°Æú9%ëޱkÌuÀpZåCµO ™#²þþ<ߪSXÅ)Õ~ROîJñø³Œå[¶>Þãi‡"ÅÉ=ºˆ»¬=æ±{2 $’olf_¿Z‘¬niÑš�þÚ88!í�ª¿­ßÚOg2o] AVOE©–ËÍ{GŽØûÜb'lGKæp¿}æä=³€¢ìß=ç»™ý� ͆ýíŽM»ýdJ!Ô7y_˜2ž� sÊññ¿ÌaŒÛãxl1Ö¹Í| Ü4’�ÙS<§Õf\{U”{F_Ô•S?…Dþ“)Ü‘@zc"s6ãUѨ"~Í…&Þ¦ÏLm½Z¢ÿ”Wmô�åjð;/‹\FÑ(çvÌü߉²�dD?¶ u©ÅÆ9×M8²2lÀÁë[�NÃQ%#T” ¢íø`*¾Q�èžØZaUo y-0šÄlÖ{4뢶øõ`ÔžnþB± 悽ÇîLÀ‰Äþßï3CçÛù—‘ÀsÒír<òŒ¼Ð–TtQëpûãDB‡äb6%a£g€.îÏŽ¿»Gìï™ ¶1 Âä e-ŒŸDÍWÃRàº0+J·5ÆæøÝÖàòV^3ÿ?1œÏv�ê„ÁOFÅ ÎheúÒ %­Q¶êÃâi§;‡ð�—5á* Ã2¯‚µ¯r2„"ÙV†õµ9G�cþqÕ_Lȹ4{'áæ_Ú:¾5kZ˜¢í�Ü‘VŸàZs)C} ²ûŬoQxk.qå\qC<Ä“®xZï"ÄF†mÝF�lðjÑôÓéˆÔP˼¾äu‚_Ík»¹“g(l^Ïh7™={Ò홬©ÊY(ÍpÐx*Oo÷VÀŽ#™Hë�âJb8|�-Þ…dá‹È ŒÕ�‰�Â^׺î°"ÊZàšÈÈ‘ìŸ5¬g“\9»ÕÿØ‚hÅ…“ýÂßø¸u"ß‘édž­�ÂëcÏžü´�½!�fFc}Œª@•» š9ZÆ!®�Í Tè…Žæe~W2¤öɧïÞy8a¿ísþõ¹³»ýS_x*”ÊíóDu¸YÞ-ZúÇa×/øq×ÙŒ›t�x­fè ºNÒ–Ì'9•W~�e(ǯk%üŠD¡Šk­[�þ󖲑A™ÿ÷êó긅(™G¡&{JªÄÐͯp®¡%©ù0ã8K—Ú;ÚЃ+í9êö©4îà¿„É©Fþ>nÓ_‘®•ˆšª¡’ŸW™û‹F¾„&v°cñæ]6e ÿ­™ž{[½0ÎRYë~ºˆtâÙŠë£Íµ“K Cκ’¦ÏÅwB LØ0û N]Úô_ãY¨¿³ŠfeŒËgÀ¹˜méa�V}L$ÂÃØ"ës !»>‘(ŸFµ$8­ÙMƒËYû!a7]L�Ì3Ìwži~A.�‡ ¨lF/Ëfø|*3Çð TäH'˯?;Šês¾^Ñ/®‘ø™ì.Á– ?ÕßnÑp(ñ1ǪDƒh‘C’í¬šBƒC6VÉ?oov(D’fÏh¯?ó!°�£ œ¼øm'F/æOànxü¦Än´ÂÁ:ƒ¸Ý$hX;ÓíÐîÞz„¶ï…³<_P)Τ!–:åÚIJIz�§ÃÆ5§/8bÑ7±©™ËúB�™^�g�Q× ¥s_¿ä¼ÒÜ2Žèîä•u¡°âá{ÖX§—ï¿ãœá&K³ÝœØ¨Ù7@Ý ÕDJöðM}#nñK¥ˆè¦ŠCK�rÛCo Q˜Y‹ â¨}°qŠ©ÛÊBlŸ1Ã_Š­^^Ä› «2˜TàŠ„-õD PÑãUÿ—®a‰E¦0u�࢘TÃð½¡Ñ:Ecéæœ.­¿puã#?ö –‚Owîú�ŒÓ/.ZVãŽ0¸k~¡äš·¢¿«IßL¥!%oyù’V²&&º²ìߤ|n/2ÑÅ= íC¦mG‰åNéFü¿K—ahI*êk*Á &0>²Gò¶K7È�6ïԲ䭯wNýZZ‡òÍ¡RПQ‚ õyóœ]sq؃°¾êI¬rü!ñ™\*ç߳ꆓ§mj^=Ÿ°<0t}x’’#ýÿÊÙÒ†óÔ{G¢ûþj¦B;†®õJ2°žüÞà®2+ÏÉ©‚Ul9—XôCµž0õ¾XÊxG¹*Þ¿ŸÓöCÊ£¨_»·—][½ M‡ó»î¸h‘O¡®­Jö9Ì6Ì÷ÆC‡3®§hÑm¿à«íW½Ì7ñV¼öšJŒbïOÎFx„÷›¶L�¿uJî±Ck¡ð`1NtjörmЋԹV¦ï%’|@ëXˆ‰ê5Ï5¥7 ß3*lÁTäÌ…^Zd½µÏÑ—¨Ÿå÷÷‰‹ »�Ðt…“zvÁrå,r™Ôy+D0nU›ü¥òwph÷·]9,%/ÒÝ3]@xò{}u‡b£á‘ °?SÝÞÄå�ûeÙCÉF 6b«*…XæåùüЧN¿Zyå³Kpá8\÷›rÑvó–Ÿ ÉskmÃ/AÅðUIüû´È&’îœ~:±Ìá©”®¾OÂ\è‰9\Ö2«îûöËuµaÀ£6Í”è>8…'zøë•ÂsÔ|þŠ™Ûºï% `cñ½\Y ÙúÛŒh×03Ÿ»ºø(Ï£-v $µÊö©¿çrÜžŒ|ªØ›Ùö  �|ËwÇa„9qš–Õ'�Ö!ËŽ'f¶kp}h¾�§=AûkýèËþAÃZ,/¶/½–ʰ3u‘¹¨ã-QÊSIU”gÛ4ÒTI˜ƒÒ(`·eº'„ƒBIcºgiñ9�°tšä˜<&FÖ8¢ñ[˜Ú AëÕ>>u�5eŽ#ئ@ô¼(_�@‰ËÐ"æ¸WÎyp%$òî8€�‡ÁE&o¡0Ú8àNqlUö¹¨�1Ÿ":G.{"çöxy©„óqŽœ²²Ír褚Nýµ¢Ì»¸w%žMùhh›Ý'{‚…N“ƪ¶Éʃá‰ëüyößìM�ájÓ´�gÓ­‚t³ò²x <ýR³F•eV³çý-Ho'u€ëÇåks£ЖuábFRØÛH™!b)£âùú; ‘ôÀÀDué­*¯:ÞÅ©¿VXK¢¯M/$õA!"Å~ᤛ%U,Ì„W9_BºZj…N–Êòy;mа Íáº±ï ¢Å¢®T](5™á P^Ž”g§aöùÑ×4Å)½ï–híPÛ¿<¥\mfÊ„z;(wR³4_?ˆûB –Y쓈?1Iz?°ß\ݽP.N]'ÑJKÈœÆÕG³¢ÝÀ¢<²t�à5¯/8u?rK¡åWîã˜ñDxÚ_U”à¸7Ü�ó Ém CèÜ­çxŒ=×±â0Øf�)Èâe‘L®ØS†ÅxPã/àž`ìgDò’)G ¨›ò¬{ÛníÇë)»¦]òœ §ÉH¶.Õ»wÏÎ~óG�ªð#1™ l„0çèÂüòÈî�Øeÿõ)4Ÿ×³vD\·Õ††TXäØêFårÝÓ®ÕL€ Òc;e»•EQ�S‰}æUªÁ* Ñ\%4š"¶î¾ÜSŽ~>*l»Ú7MÏ}Zj[w"øEÄ”Zóì? ̰®N¦V³ä¹QÀ•+¬eÄòš“¼NR^3¿ª0"úôÝI;·ùåƒZlûL®B%b^…iäkš`b !ö2iÝ ±pØ Í©² Ï ¡#ÿúanä‘=äö@2* kðuÔŸL”KÞ»aï¾E¸Žæd\ã› <šö1T$' Ä>ÏVñŒóz Ê)¬ì‘…·;øÜH½Z§Ð±=¹Ã /³¶2:E¬Ì×Lc®ªŽ"{„år5¯G]9#2}®/f×3%°Çc²~Ê=©­9=âPyM~þ²êÊÆUŸÞº¾%›ÒÌ�O™^O, >¸Çç1ä�rÙü�<\}7/~“´Æ$ÿÀ©/`”qÅðf¬?¨¼»M ‚>Ív(¾qì@y4Š^™ÈXÝVHÏ–…(çeU¢1Ù[1�ÁrµÓ­,ø£h7°¤Â"� ERMG(Åëª�€ueÄ”X{îÕR΃ãUÛš¬pôo#ÖC lö Ò²� o=óéŠF> A(ÀÖ¹#ø´†�,Ó�y9xµ�-†Ôq¨,HI´^Î3¯gȸ<œ_«âÈiÚ¾Û`šGSåöãË9—n*½bRÚ4÷6SüeÿÔdÛy‡¹˜­–*[ù£(VÇq¡¦´x®‹8Ù¼š#Ô7ÀÑaò°<=·Cª#¸m?ä?*ºé…©‡£ÊtƒâLù:9# ŒK1¨0?ükn—%p€­¬éñ’ãˆÏÞcp÷ :’t&i§Ó·øíƒKT[jè1*‡&`9,÷‘®z«®~pÖПîÀLÕJù$ù‘–ƒHWMB!=÷þI¡ô`¦5­ßÓóEÒÄ2­G\Ð]ê}º˜¡gÓ¦ÀåB²õF„;ãïR)‡¥Ùü`µìa·jí‡/‰¶øâJ�-%n«<°(£ãÓ9X0i �,¶X?IþÓ´ :¦ÀÞA>ÃùË…grîû½«=BRZýØ÷‰š«½¤uÓ+ýd�0³©› Bî$H+õ 5m¯‘µ±C�»ò÷¼ ,X"FË‚ØüëBùl¦+ÛÅ“¯ ¸˜û7Kö¤ þü8ÂÌ Äè­f]q€yì™ô˜¦#ÔùÙ´Å}IXÐ\˜/ª~‚9m'Œ’§A¼Îh@,½B=öœŸ„ºí9Yµ Vc¶v¥MP˱àÚpÅÁ±Ü}hªÝFææ­tåðÀ.V:V÷Éñ¹àñ‹N‹{ì6oiuŒ >¿[T ,¨×~*¯XޱÇ7Uñ~hå.ŽÎY«KÅåÔ!â†H^·9HäéÚ§h¦ôý`'¯+�lïvú¾fe$¡«ÇÓK mi/N<Ž?Ô‰8Zñ݃ÊYwº×F(ÂÆþºÒÎÖ%È6Úˆ ¡åéÿÚðý˜ZEKÀ‹ äõ P »Š�¶â@Xß—oûd*Ì B9ȱ(ä¨#½¥&h+¿wÕ…`:0~…¿KgyLø9‘ú)ÙÛƒÛlš½ ò˜1¦¶ ƒœÈ!û“¼$-NªÐM£ ð8¨\ŸJÕ%e,ûÚto²–Zpf3¢I0M­¡÷3ã­Ám½§°è&yEz³P„ ¢90¼HJo€¾_bÛ…ôouíàÇí쑽R5fЇY.âC¾¦ñ…é‚Çóžò² 5k$ÌiÞì+JQŒC¤)H©×ò8‘Vž£¦dàð!¢ÓJUQÌP‡$,[8u«†ÇLƒ°�Ùª¨ø ŠàÔ�ÙûÖøA³ôœrÀ2üešÄkßZjð„Ïè ß+hÚÒß�¯%»ÂŒpÙ©zF™ñoN�]ÔGT«(…<_Ù}\òE±¸&ý~»qÃÓC¼�x¤’w®j2ö@Ž8.Ñ‘+¡’¾|vçÛÿò:•èÉòr+}¯cud½ÎÄDo!¼4¯Ò Ÿšowz×~[¥'ƒÁ�u®«Âò"£¤MS>±˜}áiIŽÖóî&…XÆ­‘ÝÜ(H«}HvQ¼2^:• gYå#ÊØaõýs÷¯m¥lŒ¥9¶©¾VË�Í¥ï²k!m6¦F×}p -ÒéÑ{dBÖÞ{¹ ÑGÅCù-à?=+µ^Ó‡ÖIqÜ:Ò&@¥Ó‡ë5͵¤;5ÑT›Ã°ßú@Ãh¯�†’ ¯žWµ¶LuÛ€L€|¶ŒŸEZBGÙ¶Ò­bŒÅƒ wKê¡õÂaGßQ1´Îýj¨…)תY¢NÀ†”•ì`â�Î/Ýò׊‹œÂò÷¢"–Ϊ%Úhuær1o¸kxòµ=sÀ£�Â{NÕd©Þ\c æ¦ôÄ�Õ$ÃÊO+õŸ4{ìÛ•ŸTX™¢ös»º¢m°ý݉â¿*~¿ÚwŠà!Cj†ñ˜J¯ï`ö¾…EÈÓvõ˜op”¥ü8ŨBlÂŒ߀U½ìäÎu˜)tñĈó›zS¡|-N¶Ïvs¦ÈŠú˜ß Bo¥ÒÆÈ„¿>BÑŸôœn<Âl�¢i¥û… 7EíÃÿüíQ`èü©~\“ÓÐÅà|ç7YKèHo”aë*ÇS±E¸#Ë2$@8,cuö¿ü8!<zmÓñbø�múçù9º‡¼,'R¸:ºã” 5£°;0Õ¦}Úú¾õ‚­9œäoÑÐø%#àÔŸ5¢Ux�V€+QÚÁ6L"”X–׃FM摟!p²üèÀØ�‹Ä²‚ÇXÎ…”Þ+¯ Z��ö×Q Æ•¬ÐÖölouá3*Sÿžæ‰œg?½QG�š?­|[zº ô|3ödT®aËÊØµå¶þد ™™í>­¶ôr»4žÖ—°>¸^ Èÿ+’Ø÷8ª²YH¿ 0ŒÕD„ÎüD8¶ÒdÔsU2jÆn‘·í–úÖéCʬuTø~!FhnèâNY¤¼Ÿ¹r�\k”8Ú–Ì™pK_w€ëð~;Óƒ�}sb¤lSš2G�òYÚ:9âr ù*Õ[FÛÍ;9¦¡wü•�°$à˜ßú’¹ïm>}_¨Ü3v•ƒü$ÈT‚:YìŒÇÔÿzEùÇ-Ò‘M-IÎ Ý ×ƒ½ ó7úËôב BøNÒŸ/“ÙYà ZKVôáœy…VÏûÅÙ•Q�Ø�¸‘z6ØBYXC4™lCpë×xáE4kåš³\Â}þFǯÂL;×A±èÌäÑߪôáÿe—˜J=`’˜ß$@Ž((VÊÒ©‰áèÇCµ€…{/9sB¥Ã¸SýKnÐ×EêÃÓ‘w fW°�tiðœ´)*¤˜^ßõ½«]ÿ§šü™ú�ÊR}'|·&#_w'wOTíWíÿ&H¡?§˜åRmyür‡Äh.ÖE ô†T¥¿Õµ;ΫéËîñ%ýý×}Šjê¡í¦9òæÎ1¾ºa>ö¡w^!Ëý/‹¬ªC®›’סËÚHYHQÐ� L8‡*©¤8Ú yL0öåPÅ:4caíûöˆ€E)ÂãuÓ¨š¨a‰†Ç¬7¢ŸSþ,®âá^{Æ"¼…NoLƒ ùÑãñ &å3 ¼wŠ²Ùºúw…]òmÉí½æCðŠ˜C°¡³¿9ÃIcLÖZ`™hE�”÷ã«ûþ�¸ùœÓ²™Œ0äB1a×#’ú¾?<ÝØ" ˆœô— Þ;è ÞÝxºkø¿á„hO!‚ÈõqsÔÆ¯à3[.“ÃÜÜhØaC·v¿ ¿P�‡=@ëã8]§âvi\–éH}+nwnOÝ<� >1á ÙoùzUËЩxXW‡7VXýÕâ%¬›Á±iÔõ—³q¿|ìÍøù§€wÊð‘\ñ·RP6د6î"S|]}‘$ʯƒÜÁ Û.õ½žšf,CT“@ á› šÑ´½.Õ‹Š,È'0‡30I,£³Û2üÇ|±ò¼æcÑÖV¡,!ÅyÃ:z�œµM�½(üaXÂ&ü³î ŒA’uhC¤þWC5� ZàúfË/§ÐrýËbW•ÎR¤.–�Ÿ¶óc÷3Á€ÎÚ™} ]»„òVeƒKvÐ a·uœ¥Fµö.ÙôKvªŽâ;{¾ÜЭh#/Üào5Qî^8×P,7zå«Fb¨ík5@=l�ž¸òÍ’g ï$™�”#k�ÚË«Ý/¼bLøÉH‰4¹_ÓØ%N.*6î"Æ”s²â3·6óÜÃ-Ø#4—¸ƒnÚŽq(Z´ü–"62%"ÆaÒ··f+‡êz<ÃÎgJÆ¡UƒÇ¸ŒX…•BMieÜ­õáè¿JË�=-snQ¤þ›B¼ë}ÂÈ%¨¿`·8R5ªj…%Æ]¡”Ê ÑòÈf¨á€¶åa®ðªE’¦ÝçòfýE}"y£ 2¤Y"» ÝZ‹RÔ'GciM~�Q6ïÊ ¦H—�7 åˆ["檎›Mfèi™Ú½Ž:ôØM(øOì~›|]Š/¡ƒg€t©3CÑ^¶U  tŽNË©zÀ4>gbª½ ëNdâÌ#>‹J—XD‚�;S¹lÃ+ªÐÀü£T^RT×Þ¤ëH®$áO hѱ¼iË× ŠÃQ9fœÁ4–qA,3Avy¤îê›Øº}Ò‚ÍhOÒn ù›m‘‘2\š(~4{@ zdÊøÛ_·¿Žß@”y«§Q¦;v”q5×k~iAøè‚–"N�å…!®ïŸƒìÝ{ªÙžRÁG%,xÝ…Ï£íõ®Õ%¯€2ÿ#Ó°œ)•gÿþ.·8Rì!.>×è+¿¨)Š7©7 s¦ÝNÿ—r¹vOR\™iL nu;Ü�Q‚¸Ë |—òW¿Êë$·ÉÃçϰø^XŽç¹ð᪩-„uÿµüö*U0X¡,éPnÄaà5’`Lú°s>éLž�^fýmåLN®Ò}¹µÌú{ÉÏ`·BÍ�Í� ­äÇ™‡ ö404õã/mU[©¹µÕ)k>…â�HÁp³ ž��´Ü÷›òë:4�-Ià8×>3OHGƒ+¸ÿó\¥w—ï�ìþ§á~uäC•ñ\¬‚¸ì*£Ä8 �bãÑ©åÃÅŸ?É:}XÙ€’M@>²ûQÕÞ@;(òa…|�(š slJv„’ÇÂj™‚'@¸s¨¾={âÎÆ€SkN¬È†Õ´}™Ã„æxß‹(\Æ쳕<&ïµö¬~ŒÄ{U~Ïè>Ý_ E…Ǭ(v{1að Å34ïšù}”¦}‹eöy¢uýÔÇ$¢N@\1¡J+—2B$æØ»_:�9„Cž ë7Ï*âœÚëùåò‡ØÁï^L…Ÿ¿NóÅ�¾A7¾ÖÃÿ¹ U-L°ÄáøðЧÑÈê@Évþ�­ LšoAìZØDÁÄ÷ žn(Û[]ûL©L4nùgç|f ãqÉø0˜™žS‚Î.úɾˆ7ιr7G%×gpú_¯Âa鈂‰¨šKk'Ôà¤Yé ê^ÖÀ¦ŸÀzôµ†2s…¿¦®�ˆN«!Ô=¢tá»_«ˆœ-,Âxqß¿ÖSUÅC¶´5L…Ä ^ãøX¸&>„)SäþøÌ?TŠaš6+áß9Žw5 …�9µ[ASãnæÆ¢/*oÛ¹Œ~hÅ”Ñ5g\AûAemKêw«oäQ$[n£ÊÓ¬£VÐÒ±|U£|A‚ÜL˜ ;âéx™Ø+8Óhµ|¡TÆG'UËÒ¡*·qœDçÙ €Ê˾h­57?«(à¢Bó|üN«U|ÿ*™ k'‘Çhþà[î�Ɉ²L€(ÉnBcF¾å6ªÊ"ºgë|ž'„Í9ÊXzH¹“SåºÿN]@‚úü0ÿ€ ‡4&Öœ=`Å%‚÷)tÆZžFý[MÝic[Â’K¦ƒþ×ÜMt¦ÂA= ”�ïÀrS£_ÃèVö@Í™³"¶í"ùê{‚AsIœð¢ª¢a:§)jIšžÎ‘Lî€åÄeW‡–{Сñ'Ë„¦#ï•–£N¥åØ«,˜�$VÐ:yæ´GÇçöù(/ãï_/Ó³csÝ\p”ÈK¼–þ¯I} *ØB¶¯ÂŠ'±¶^K ¾Dt[–›'XˆáH]O®©~„í"!ÐìÍ Ày?<ê†ÖWÕg%©\©Pz㳩ÑlÌ>f†VbM9vd¦ãŽp�FÖÙvÁSˆ@°îù¥ÁHç:Ž‹H¿]-áw}Yí°'�°œf‡ *œÝ5”Ï®°ð†9i�Mô8»ÏÔÖzóA«_OÓµA&GH)VËnÉ3ô2לAË+”gK[ÀcæZÅ�Ê4Ìùèâ¹LC,×9âIDòµë!Ÿð/ºŽŒóÌñ+û;rv7ÖH3?‰ÿ¦1ö¦qMÀd‹Hö€©Züi‰ðÍð§ ö|ÓKäy]Ñ¥¨®Â_L­yERƒbahÎlß’ Ù>u Pè³êg¦8®–$ŠëFâM¹åçïî y*ÌŸá ™X;èêf–È<ðævyǽ€ÿ8²°1Œž�LoFÚòÐ̪Œ´ù5¢Ø®‘zã†Sœ¥MV ‡™íÓæ¬:úœ9=ä�òYŸÏ-ÛÈœû¦¯Ë[�Hn™¶ Œ7amˆè|UÈn]ù†§8F«•¹1Ñ+ãºÞ½²´³_D£©ÿ¨à´ÃQ;”=úúBJ«³S×:wvríšvg}Áƒw  ~+[“FéŸ ƒVÅ®gìô6ê¿°…¤ª ÝÀ–*%žfÄó@vƒ/C3Oäåí§Áˆ¾Ä¥¿RãxTâà#ÜMÈŽ’Ã@…’yNÚðPÖî¨g77rr N£�9Q9 �ƒâ‡ÀÝÐùd‘5Ñ¿6“½Tê§ Þ\Êîƒj¥Ú•?qÜ"w˜�„í�äÒX%\Ñ1Qhd~ òŒÉ‚¯¤«Ö@ã�ƒS~ F}WÑU¦�ðc×áZóÒÍP­=ÝëuHαõkÃkÌ¿fòÜBØe”“÷­ˆg�¨°mFBEW÷šìÁ#9“TóáOä@ÌðW©o¡Ä\í=é€àjAöåJ2ÏId«ÈøWר Œ¾Ç™CUWµ …,NŒ£U:sò)0 å$1$ò{ÍiÐâP�Û%ôjïþÒ“±×'Ï$`µcFÅÄhËú—�ã ßhúuP .m„ŠÐ¬‹å ŸZ©ÑÚÓgƒX“ âó÷@ȼ٠ß]*�c0%‘ÈäàC_”ÿèH‡GÃ_ÎâÝŒ.Óߕ҈źSšãã22ºæïdÕåæBYÌ¿&Œ;J-×;yè9­êg03ˆ™"$Jž^ö4ìÂ7,¬îBÙd$otnçæ]º#(6RÕ¤§5MúC ½�f^�gÇYýk·¿ÌÇM^`a� ²=°Ë E”Jø —ëqÒ?’å´›Y"܆w[ÚQâbCA{zÄt Ó‰L$ÔNÁññzÖi»I†§|û½86Q›z2·ºÌ¥1µ <§n›Ó¿Á0 ì0RŠOYsf¥È‹(éšè±$(ÅÝ ´½;-€ƒS>x'4éÖziÒyN©62ƒèÜGä“U5�LÏ1•ä´V›ßc‹Â¾¡ RcgZ¯kS«‹qÉý÷9ë™.¹Ý£t¡çÑìæÁl�ƒÄnpù‰M~R8A%0›Þžääî¡5Ȭ;Fh˜*X¢-KǧÄ%=¸•ˆU¥‘Ë:¸ –;3ksŠŽÇY˜ô­ÓÁ#*¥¼•åk ”% pÙhs&¯‘ð(uzGs“:<ƒ? Ú iìæ°¦ã–ÖlG‰ÍÐQçäë°¢g�Õü)üý]­Ü“+ò 8†rÔÃG–jrŸiFOäi œ¡ÚTÒ�moÆ46xÝ’ódíâƒfL‚2QÇ!rþœéQâýƒƒ�6 %ü}Ú×.$aRZ|܉kïÛmRÏÈá©&.«�G¸CY]àvEò؃�’`Ñú¬? ßpJÑÿaQû3 ywËï5(TW‚žbÜÔ{‹·Ë:'¬Ü‘ãÓMC–7}Ïëø“å•Ú:ôÂ;ÑH ­Ì‹äAš'­Bd¢Ò}¬!B¼ÿyé«[~EµlÊlù×'- h7H¢p±{œØ°‡/ü¬ÿú-‹ÃqðR, ý\{§¯ÜoÚ‡æCð¦Hã4ª²8}Kî`FN^ÙÄܦ*DƒE8ì«}†ceŸåçq%!ܬãÇ‘·šÌ2âpªÜ¾yϹ¶»ý¤å©I„iJDXŠ\Yîú¿pâÓDØ0é‚(œa§èö›ÈIËþ%SA’ÃÆÍ¯w$YÓr£¢ŒdƒvÈCþ‹÷Æÿˆœ'úžgÇ:«%Ø–cÕ/еFÞà‡0ñU„Å4·¥4ëB À²[õûš*a…Š6ï…OKp£ÿJ3è¦i æ¯9àiñ:p¥ÿÁgšƒjã,à’ëMv¨­C$+¶'’Îø ÷UÔãPzÉqÕ©M]ëD_¯M´€ÎA¢ ¿çNØåVߨÅF:ýÑg}BøXuÆ­ˆ²pŸY^öÝŠþU)ì¢Jcè?þÑç<Ê_„•ð„0ô¿^­bÃ÷©Òyè -µnÐó÷e·[yÉgù[�7µ~A,¥ö$AøøL”,¬¯m«äT†6^6 ƒt¦¾�·¡t¿­¼ãœÛNŒL…*¸£g‹µ€,üjQJ=x�Ohï‰>‰3L Ì=õ&²�QšbvNó�š2óA &C�úó<Êå¶ÌkÆcSÃqb†| ‚gÁj=¬G§‰ˆ“ÃûÙ˽ÕúZXgØÑïAÌQ–”A_L¢DÍD&‰ƒ—Üu]ÖVDŠ1o€ú’ˆ#4©Ò=¨KTòV× ¡€¦ëXÐ, Ñ£9•Ñ;R·³ÞÈ(¨¥Úó?¦rC>3ÃÎT–~Ïuäy]gðšY›Ú‡õŽ�Y‰ÎWSþçðMå…Iٌ؀”i\ƒúçÈûûXp±ø¶XÓ6·™•MS˜-½T}'û9Kñû-eÑžÒ©/Ê0Œ1J¬åJk bÒÖÆ�0›ä©'Õn[ÆôuŽýõµ´ê×öÐxÇCy¬je‰ã³€ÎD/ èL¦THãó¥Ú°¢OÄë�O`qX�Ñwnþü˜rÃÛJ<½$žúKeˆ€u™Âö©Šu4C>ÏØr>z w¦¬&á€è£…¬;‹¨ü’ÁGa¤‚êªÂ“hÞÎ9IH‡–96áCÒ±ЙÕ{š|ÑwìƒÎ_~'ðQÈ��¥ÿä4˜­<Ï÷3Âûo`i„¦3ì95ÑÙe¥F×�N¾`ʽ$åpÑc¤¤ž>½äÑ�KðµÉ­`鋺�®¬|sŠÔ�àÀÐÐÎ6²³ZDF§KCÃî–÷õ£¯-•RP™7¾iTŒ`|,oê7¢|�f‚ÖOt�rúŸ;%ÕŽ} ä5 Ùð7ËJd�öU0[ãò^CrdÛu¨6±¼3›`LR 8šØ›â݃!o·Q»7¤”“%U1¦µØöG»…%Mj·$Ò{tõ¿šDV™iˆvFàè"NxÅ:·H$W]‡QÜÿn£H«¾CTÑ"Ž1­¨á‹‘´�Ù è5GèÞ †oøB˜Ü¥f8îd"y‹{ =Äp(ÊÈR‰Býí�;¹öà’ ²J&›YóbNˆÔò�\bü¹W�ëWZõ…±DœÍÏÜÖÿ'1XIhvTW©Þ_…€=X>{^VU%‹.$×w!S'xlFÒ!QÁ9íTb\£©9Ùt‹;iûÕ~£íüoE‘�JMê=Ó\I·x3+!CvU½¹! È�Nõç�€ÅÊ[³6ňPO*[4ߊõvSœ-²­·ÙjsËù’x\Z¸\^Ú}úé÷_áÎV£7FÑÇ«^öz­ù•û½/¹B|–à C±Í»È4¬¿‘ Ÿy‹ Ö ›K†àdÄžS“üM\U9UÐdþšT»c¯öÈ_ BD;>‡þtPg4 ¹ü�1ðÑPÈb;Å¶æ ¯ÑÆ€²ÅpÉj[Sб¼äéb]÷=Ax‡6©¨† Ý ê/ØÉ#YòÈ5±AŒÎ‰†•3-Ö%¡+¸?ß\ÊŸ�ÄÿØ©EHÞûAwò ×ÄC,CË«Y:¦²}QW‹tÿ%U,ÖiÓ‚¬}¬Ä`OZŽrتɋœ‘ùrÑÖ™OùˆH”ü4­px1o›M{%#[FLÛ8»�ä“/?ß²È\-öÓo©\Ò,—ž’]ìªV—?JR>{ét¼‹Ðü€©"‹Çê˜æA ¾¨J{–| Ï´±è(}4¡|Qij*ÚÑÖCH'À$;•]ZècfPéµb[ùAYßÙ �&r/ì®rê*�hz]¤½)+þÛB°Ön!zÜÞ ä¬ª1?ØÒ ßw‰6pÕDÖ¢›¶”ýdò¥© “3¹ô c^€ÛµsZgZW ½`ÊÊ6LÙUóÉÅgÕùÙ ™ÛÁ?4ÉŸb‡ì©? SEÖj0±„MÕ\^¢ Ú2Úš€n°|ÎK<÷͇ús˜¹þø‘Ü^Û¯ÓNš¤wŠçãBNÎ?:–6éßÅNÌû:èàmì¸lø®|¸·„~�{õ»XQr¡�g­ÞD§ÑÊÇ¥�Zà·[Bé=BÑò¢Ó–ßr?¤ ¹N葱ÿh�Î$‰—;±àK3Å9úMìØ¹:}äŽ�|Êî§n5¡_¾;4Tñ‘ï\üŠW`T©t5 *GgDj¼„eÿq@µ¦`Êá¤ìöœ’I,‘Õa4õ `›ʼ6Ò Ö’>êß#mdÌ �8 •X²hع!ú÷ëóuW£ïr[|84Ðð½ŠXéìàßlµJ�ѵ  4Ôï·Ú#hOº·ëúšÔ¿½Hý¤ëu Ü çî¨c!§llñb’1«´7ÒŽ¥ù?eçܦ�î¶§Ë`ÙX"Wß/vô2gÈd/˜û+®È`ÝÈUÂìǯ!'ÜýB¿Xáw ù›ß¿0•"dù�ôYQ�ÃØ~ÍÜM€Kåΰ.¡ÈеÃý\êõo³3é3 EÅ]ªn@A∋Tê˱9¸jíhÆ_ˆ…¥ÒJóºã3Ú<ÿÝÕL©5of>çù¢¸éªŠµC ¡@ ŽæÍ,m#mýÈÎv=ÑóÓe\;êÿ"¼Ÿb…i­QwÚ¶mÛ¶mÛ¶mÛ¶mÛ¶ßiÛžû;gÿû\¬œ�ÕI%}Q#Oª:Õ%m[¦=™&H•ö2Hfïû{ÐgP=G$ýãÙñ3(ø ÷îîd³=paâÑPYÿH‡2üaTq=b£$¹gC8p¡¾Õù4[)ܪ†õ¹4®ú9=ÒÉôSj[.8Úí;µ#é„3h¤o攵=ëNÃn,�—åÞá G~ƒðƒ§>Ù€ªÒñ|^Z$¢- B½-LQ8áH¤ò¾XÂYt¥•=iâý—6Y¯‘É©ÿ~K¿'óÅ„}à}7MÂ÷\¼çº|#uå%þ {ð(Ë0Ûš{O~Ì4*N^Ø…;^Ç(qB Y³¼/Ó롲˜æÝ�ÄJç§a/t Ù Ñø};OŸ÷P Dæ"4¤î¨×}à…ú’×ÎU…Ü-6¾uã3vºÕ–"u��³@kZ~½L‹š9d·-ƒ1È޵ —OኽÂHÏfè„%à‰ÁÀ*Ê¿ƒI=*…¾*ùÁ}<ókÇÃK¯Xãçm„Ȳàût´Þ4“¬¼–‹Ø¿Óéde4Ýá³Å-ŽPD3˜û,¶ø¡ØØ¾1ùmÏï~ŸCùÒ=1èxP±ïª} y#âéÆ3Hð-ª�â»°"V;†v6Y?´[øÕ~ca±Z¯ÚUà\G&°:¿W¯£=垦ï=¶{Ì€ÛlÙ\rÿ—­e�Ï#¶n-¦o4õ®¦õFqMN”@ײ.øÖyPœáV÷'R÷£Iu<æì¿WŒ)™�Ó2Bƒ5¾�Gê>–‹B*\õEwƯÈf0ù¸“šE[=J1ú�½»4ÒìFt´Å¶Û!}ú ñ­WnZì¬�;ë¿Î'I0¤R�;@Ë­o[CèUN¨­{ñ–e�Ï®¨»üܤ 2Çì˜&UR8<:,¤ÚÖkT.¿X›©êˆP3�°˜iLÅWÔ[ô¹š’¾}A{Õ ¹m`eÎü›4< Ø[(ƒH*‹­à5ïoñÌ}üðcÚÏ$læ«�TöÕ�…A®Aè¢Z¯«ØãMûG0rhè-ö¬óˆ¸g?Õ)r¬÷ãÓFxïvÍøí;Äíu~¢Š™… ùŒÜÉŽâ`�X׿Uú¦œ±�5Ë« Ç‘2 ŽÒæEª‘I ¨[ñôÂ3Õh" ­yùéeeõøí\ Fõ—©þyö1«ñ L…&ŠèÄ<ƒ�ï kNLýbjJë+,ª©þYBA3o¥bº§­zâUãÈ¥fÞª=›áÆhyn "WÇ�b¥;ù•5§íY¤ì“¡Õð@/Sÿ¨S*yûEN®ÿtuŒôªîe4úzloAZ\ ÜøÝ•a#:¼÷Þãó 1V×)’=ÕäDNUbI]óYÆ4j„ÊÂv=á «/>µÖMCXñwynß�MŽÅÓL´ûS³¤ù4é<½yx||µÜÌ�cÿóTÌ‘°[Wðo´°rLÈ0OD!9R¿ßúHgqN5(gˆ·ú$j�Ü¥þ|í^?…Øý¦Ð‰B>Ç>EK Á/jY_²j~ö:8«B=…0ëæ±ŸT­Œ±BÓú9ù³ãßðZ¯i‰ºñŸƒ^Z¶±m©ŠÛ{E˜©wŒ…?È[c›áö†�E¬]׉™¬}*�ûÀþïm€Ø€2/“M €¹žj×Ì!tB/¶¤qõ¯³¼è‹Ž‚Y íw^ëóqC.;öæPé;ù/°xºƒ&²¹ÖyõÌ»Ã+»üžÐó‚N�}úlÌ×ôI5Þ ÁÛ/q%õEœyÞðäÔ0ðHÜ.�\]?0¢^÷—ÍD« ]<±÷.ã]gþŽötOùärf—wkóÉËâ%ùé‰Püré//í¬„Îí|,4PSRçsÔƒd5ñvxINAˆ¸ÎaÈ|~¨Öî úngz›ÀšŒT–¸�öë#ÆÆ¢'´,-,ȬÍxC§eBÛ_áQ™ÕZV¬ⳞC�mò©]¨M”€ßþaš€€Þé‡ ßÅQ *Ô\®‚¥g¥0û ƒ`Ú+¨¡<!¿¯pŠªdqeŒÐ¯±M=”ã=nÿ×üà¹ó w¤¦qC!F÷XsÕ‹Ž‘Î ¾´:w¢•ôË• Éð‹âG•|û­üW>ÞcúíÜÆÊÆ ‰/Ç�|¡°gcžìñ&ƒ°õBy8¡‹KÕrw»¸0fþìÜ­V¬Ð½ê`Ÿy䬊+mesu�¶z�Ô£"à}²ÛµºôÔÈùÁz/ÕµãªØ}ÂÁ7ã'ëjE×Ù×E/æi—þ`½ÌÒçíâÊ,ILžh«u}Gý�ø ¥zj|Íí¾—ä™.GâËݵˆ±Ù _õí…ÎÑù5Ò7¨ÑÝ?ÛIÐÅ1>nñg[Å U 6jòmü¼2ÝéïdFLˆêѽìþ¦áÊJk“Jz¥ˆ’†æ}ï æ7/<œmÇ‘i,*»Âü¡mÙ¨,|ÖåŽÕF53Ë1ߌ1ºÉö¨ð&äÈÜ}U׋sß ZUÃánf¾%°3«â–Eæøz‚i2Ä*þJÒ‹RÆmöXmt·E\¼äï¹uÊ«G5ÐÜ5É… Èãg»7¼Œ|w’îê’3¨£ÿŒ ˆÞ'ß¾K5‘â‚Ñ�o8ÛO|e5Z•`JÍ|?“!ó™´‹b�Vb™S~…»¹4a7²zõùg1›*5öv&¡Íè�®E‹’J€õJüŠ ÂF䈹`"Zì­<³é«Ù§]¶Û³Pe†f�ù¡ebÜ ƒUáë‘ûZ½uâ]Û5tÏ…XWÆÙ�/¾ÓõEX²|„·µ‚ùÅA é29å]¨ëò¨ƒm¢è9YŽñ·ñ{ó/ît•NÕ²“ÒPkñ`ÚÃì©úÔw÷N«pÜr"‚"¦è k^ÝÜž¸ao¢Çµ„ÑÓ—NoJq{%D�Ëíò¶DÝdh0"7ýÙ�¬éÔ#ϦNJÿé�“Q}ÿJžslk}«A¹…寋¢µq‡�]=Š,OVËb‰rYÎBè6µÜCzoÑ`­N�˃xhIÙ†À¼Ë knÔìE Þ ™ñÝ?¸ ;ä@óû¬g$¥úˆZ2|£G�r<ñ‰+N+f¦È˜¼g)O³–†óíSÄh˜ÅRæ·V•¢¬™cærB;ú½uu´·Jµ½‰ÝÌ0ök Ï””Z”Ð(C zY"üÎÛßž`œ[Š’gtµÙÝý¹ögºgáh‰¥^Š»%,ûãl|Py•@Kòh›÷6o—ãÀͨŠÕZϥ؄›Ä{J&Ã(·AÔˆ"Î , <¢,Š  &S@ΕúFŠš6=fÝžŒ×ÛÝ)ë6ÒP÷5™m–9¤îC;ϲÇÞMx=9<44?X,›ÝÂÛ#îM¤¯B9ô€I…ìH÷5¯Ð�m¾¹œ,ë4» ¤™Ÿªl®á:4¸n{}†±n(TXkØ=”hä¹�‰!y”�ý-°éŠï–Õåñ½ÆÖ›�H±ŸK‚)õj4˜,ê$´tb7¬ˆ|Í«Oãö=t g_wGje<#ÔŽìÂôêUÚ”Èñ›Á¬_zÂé|º �G‘±Ì@ °�Eç$ ¥š~£"[§õ(**-ºî³1Vn„Á…›R&<×èF£Ó·.r¨¾ßìnN;5]p.> Õúf QFM¬‰‰'ž=GÍKgT)VÕrêTzTy ¡åÖÜækÇ]7—eà22ÁŠ–²)~Ð[€«¢E8ÌJ÷¿µ,õz˜ê^‘2zÅ9#l�Ž«ž¹‚Œž?î%a;’4?˜0aÕ?„«$ÏVíE›�[?Äc5{…,·hŽV¦Lùô˜ÉVDÎgñl®u£Öø#ºXVW26P½†BÜ:%Ì–åŽU�Q–ÉRgPÔW)`1ž¿ø]‹çôõÞÀ°ÐOsoíÅk'o\rgŒ{÷KÓ94Yöø‡‰¿~aƒdÐÜcR^8±�ò‚‚‘6T[hö�z#»h|“êm}lŠ‚Ÿåêß:åÁùk=õÞKqévZÏ«¯»k(Xû¸BnÆþ÷†�Õ"~žÂ=ÉoŸFÐͦçŠsNí°3ÀÃŽ”'A -ÉRéMÑÍ�=Ç€É O>d›Ád¸‡¯Q]Å"Yš‡›ÕcUú×ÿ±§MÛ¥h©*<–šâ‚r1‹sE…Ó“/‘È'‹D§ 6ôq8q‰_`æuÓ‰@={/JôìMË5Áo`>óàñ³ÅTº H óR".ójò—8a¿/ø]þÎ܆bÂ8EB{Égé¾ýE*~¡ÜÆ0ûÖ£óª4Œ÷aÎýöÆ/�´ët_b²¿†?êñØxñÊYàè5cÌ�ñzpCYàµù7Ÿò7®âÙlYMj߯ ûRÈPróÛz�#6‰ßÆ–þ"mùú’l;ÍU©„µÊô_$&ÕDœ¦LÂsý°]�ùHÂÚCJHÄe¦ ŸQ¹½_F´µ>`4@í¦ ÐÐJÎØ`Ý\!yæóYõu�´—©ÃŒÎ3Òaâ€ÏO…‘Zð|X‡"m$å0õœuo5‚|ÄÓƒØYÔ“e [ëð( ÁšÁãÜ”^NV²P½Ks“Zb@¾é¬šm˧ê 9íüB]ù=I¤éN�‹Œû”Â""­BaùŸÏ"f!¼Í�Y»—ò/òôå {+½S‡ Ê‘'tƒåÚß«LúæO°àd!ýô$7UÆ·rú·f²®(jbL+ÔÅëHÄ�œ’�­I˜…Š"¥�·LjB½qÎBÙ²)x/ð›fz9}„ ù¥CPÀ"{ä«>¼¶žö›ÊGõÈj–Y¨'–gx3C:? —l�lºde:m®ï×MÀRÐq¹Ð}Z}³âRî Tì“.@n¦ ]E>mcJk�gà8�køÃü±Øå\W"JAc=¼ŒJlß ÷È,  möj¶›;™ ÒÜ¡ò)Vzñß‚÷n?´ Ù௑ö™¦4ÇñÂìÊŸý&i2$ÎÛöÒ¶”%�žÛªØqa\,3ZërLª0âQäeSç8‡4[އ÷JX²®²’ã¾tL Þ±Oë$Ù¡\1“g�ÁkU‡a"¶ÊÏvWMÁ>쀷¬>˜–VÇkÏŠØ|=ù •Jò´Î$ ÐÓןǧ`F(Ž¾Æ `ÎÛé’­í±êþ -Ÿ‡»Æ&6Ô‘:ÑæÚja%&AÙCYÜPPr¿Ç%ß($@8)c¯ú`„³sË>¼óìmÓÒ~ŒO¸nI2Pi¼¼Üø/Ê‘G¬Ÿ9sÕ”_âºáü`®þ~R²%Åq·æíÓ©NÄVVÍ•ÖW3š)Ë„qÂ�c$Ñõ°£P]m¡Øs{LPÔ'Æ#ç�ûÓF¬ÞÜÐÏÁÑÔ¾ƒH%2^YK¾´²`Lc›Œµ®˜Ì¹Dl™LõÄ}N8Äý/iÒ�%ŒftTáÙÕÌ÷äÀ7(Îæ(e‡ÂL›#µ>è{ªÏKgšÄï¬5h=»r“aµu@Ξt%²À-\SƼ/ŽŸ› fv¸Œ ~À´Y·¼1a^í–߬ê›U<¹jÈŠE¶j3å:ÙjýÇ�jë:„�“³ªVP*à† éMágt= >îG§Ä�²ÌXNc3-e;òë•ÈÅ�áqßB ¦-wˆ,Tâç4 x1~Á3(žë( �fÌ/òÅÌs»Ü›,ÒþË›[`gÝ­¼½öTá± �}L‰(fÕÃÚ•÷�qdó¬öwùÓhÇ3|Ú@2¢œÛüFw]£é7—Ûæþz$l”ø”ã§Y’dylË@}UÕQȼ?­|s]TDK*diƒ7¾ª½¦Fý0{‹YÂoh¬ìObÈ:Ž„HccÑËY‹ ÂÛâŽu… ç_>ðM¡A´´ˆXZ×õ’ïrò»ì¸¥¸ÇعŸÜ_+KŒ´þ³Àˆ¹®éwhƒbthkMÅü5®�üðXúžø°8w®h6QÈ ‡úæ Ñx‚Ë„p|;ɨëÁ±Ö#9ÆHÓÒút$ñˆ¾óˉ ­÷�‹RRÏ®£Åʪ4õþ™ê1qD…«JÖ™ãôÅYä3)òk¹‘|[‹(²Úuϸÿ‡}[¼´h�¯„d\ÑŠ+jMUÃçRYUÅI»í5LçÚÂÀ$D',ÿ¥Nå;úbhöÙ ÿœÍ $tòÈÄ.höãGzßGßt6`-8‹£TáO&›Í¨—îl�H>=�b˜;ÅgyçO‚xcÅ2€‹ÍÅó‘Ž-twlÓªÞ”�7K CdµõdóŠFñCF¾ã|‘Ç‘xç“\à¹1*™ƒ7ÕŽÌ5§Xú^;Æô0û®Œ‹Ãü“=·HØ Í_^%ñOM¡îžÆÇ’±7• ì®!¦€ú˜þOŸ+Ë\ªÐBS+Ò·áÅÙu‡ç{BF—ÔKœˆôÏÅg©úò}™·ÙEy$ŠÍñ3~lÜüc4Î>lsû/ž÷P“ì}ä]4§ÔóR)L $KûÈ�ªœok¿Â3.ñ2ÝJ˜ýlÑ_IêŸPüý�^tæ#ˆ:c#F½„ÞacDß÷ &dðý­+½› Ð)²Òݶ hEÖÝ‹H¬)ƒiÇ -ïÃÙ¿·ÀØýdŸ YO�èHâ·lÙë ‹Aɺ?ZBiN|‚ÓŸõß!ÂS ;ñ¬D$ò R)< )-´�›¤ìI˜/Þ¤±ÏZ‚ê34�ýøÐ˜dM.'*HkؼC‚N�Üùî�ýÎÀ¸ŠÌ„—º6FfÂØ‘spÉ/†"‘�ÜDZ879k™9õ§ŒqÄg·a…ZUhí»`¼ x²ßƒ§»ŽÜ=œmœŽ— E´TЍz�d0q;ó�8�FUFÝXð‹@Ò1žb:°Ü©Ù'¬ÍÁãÖ§j¾@ïñjc£º„?û•íÜ„vÖÚ¾à&5�.›”@˜}1!¨ëÀåxê„kÜHÙf˜“~ˆ±ñ<¤Í«„¹~¿“ÁÕc°‰åÅ~_PaÔ�å»…ƒs­ÅJ®~ã„™œúè°]Ë+„o%Ü'8LŸMŸf{Ùk:u'IJÀ´ž3É:¶Á†ÅN�\à£qBÂ<Œ±A\%Á¶ÛO%rq4ZnöÇn P¸ñŒ°ÕòñûG@h¸©MyˆŠ­”© Äü@!0qýÎ'lZÃ÷érîá{VJm±Óì~bÂ|D厗LƒËÎÐ6U©å&é¹E[sõG»°ãʾ�|®¡ýœ{rød¨LеÓR´š¬<+¦Ç3y„¡ÈIÉ:jr·ŽÿæèËòšfÌ×™ûb}}9!~xñeóB}ðÐXeŽÊÀ…Ž Lbì àÀŽcöÅÕöÊ�˜èÄòâA�^Çá³b‹í) î�<N%AX:œ«¤›“i+†bçŸ-Cï5¸gZÌã¡kêQèl„Z9å¤ÒHtvó Žï|*.ˆ4âo”“žc\àÆØ°ï抜}þ6ýà_ôc„$|€ÅŒ�öÝæT;Û>C.ü‘.e�Ørõh¾›¬ã_š7ˆÈŒJõ‰‹Ø?ÜÃhe>çK…Æ!PJ-ƒƒ>Ý`¢ÞRZž!ßêÃPÂ܆ª  ßN0ÌÑVk:#ur`ÁÏé ~rø8ˆ«°‚))Wv"A˜Ï›Ä¸ä鎿„f†ý«ç¢el“uë ·|‘5­Žì÷ú50+s¸¸®l[`ßÿ|±×®1Ã] “¼ÀÍpczÞn¥¦£¥ß…êM¢Äôè)sÓ…#xM¾ÚÜ ŽK`‰8Ò&wèˆkJj¯¯éÃ�¦i×(�»Ñ Ý"x˜¾µâÞ ðÛÆšt?ZÃ�Ìäb„�u…âŒû¨?òíÔÙF²†²í*€SÈÁTP<ìÖ&@äåò…™›ue΂´üÅhëŒ�‰ñËC33‰»$¸˜¤;%òq‡p�ÑPÍ&Tùy'RìÏ8^þY"‘¢ñv6oäMí�qÖbƒiÖHÁ/û€º2Ó42d6M/Ecáfm«®"e¨«»çô‡�¯ÒmuÛÕΞÍ1L*úbfTÜRCã¯ü FŠt_ Á艚¢iC²Ÿ-`3%ì-&c}(™N½Ò ^Xb(À=hQ$bÐ÷K}\¥«£#ÿ CÂî–o×D‘œË”�¸V,Ы…¬G¹�‰Š×Ü]…@Y¤ �WE—0ÔÑèŠ =‰§†�]°^£ÀίÇyÔô^›� úoÙ°©£o€9žVJ–âLXVû=Õ4�ík2»š6óH§ ÅYÚØu%/VS¨í*‹g0ƒ®+®… VölE®˜2ô’˜i2&Ü’×2+•žU¸Î-/²6°Mª&Z˜°4ýF€†Ç¦?…hÿ�ÙLvσ©­µÙ­²T­A¶®‹—føÜNT™5;µUåušÞø {œ‚‡’¥"Èp¹V©©i»?‰D»‹|ó±=VzΞz¥°îá"œM+þ¤Ñs�.pŽßÞ]âÞ+¥ÞKdxÚåCBÌ›óˆcn0I¾ã'ÕÃÎàãŸv¹Õ�BKê"³xNñ4#嵪]|üÁx­ïªkïÊh0Ð÷Lm�VßÔdm.iš¸Ó–ƒËÅÕpÕA®êäã¦BT|µÖÊd÷[X ô°;—„]�ŠÆqžâ}w@÷›”‰'gý¥´€º”Ô�j*«ÔC @ϼÇï^:Ò!Á^ŠÔ>ZOÆ„‹{:ÍѼ05ÒÔ|@iöóÐ]y¿w€®l3.ž7e'““Žû×f°gøE VVú°‘ÛŠ6S÷T÷«ß÷>#¥¡C.!“b+³ÇÇHˆ²Î•¸¦êcØÔÖÃÑVcÕÔ%I³z½ªà¬zø‡ì‘\q¼†×Æ-ÖîžÂ{”8Å¥wIÜ0ìT‹óß({M_Ïú‹ÂÕãîå†(7æ>V†yðcMìÀ,ûc%)"õO¦6S�b`çbjþ]öÒ»M" 3¨î€pѤ/)½J¬vËA=�BúD÷¹°Æ)ÁkÞRý€PÏr®Y͈”HDD2;gGôRuvÜCkÛÍ+§ú‰7Ÿ’m ÊxÃJ.ýš‹Ã|W¼æ9t?p)Ì.‘(»¢ñf‹8°ÇVEÒ±Ÿ#¢ͳ¡š¦w5÷íÿ4æûâÙoÃx×ßÛŒ}Ê=’僟T�¡‹4çº2œ²ªfèjQÓôÇÎÒÞ™65X²ˆØ�`åG¼Ôq<Î9�ºvÆÅÕäq„ºN™jÛ½�éVÊ œ‰"f1ð”&‚Þ¯¹Ýl�¶Ç8«÷,‚Qü,{^³nò°íyȳBZ²¦_êI㣻àc«Tk :„�œ½!3ŸzËb“dï!Šî·±­\¬ø#à‡òk«V¼»k E„êöl±ćí¶(ªÕÕ ìµ¾2KÖ‰$ ‚—(3;­{›×’>Ûp–SÓ9¹Î¸ª²ïJ)k¿[·>”¤uÐ2˺Ía;�lßÓ�ŒöfÄü–o¬)Úˆc=« Ùd3Å�Ì:ê߀è{ta¿IØ®4wE|«È]ü{NMÌÔ€Ž%V[VcTþÄ:S“cºP/w:â´²]^ÌÀ‚òƒÇ€_bÐþòc¼«êŠß ÐZŸcëõÞ÷Šù7 º¾óìäBe,1SÉF2Ù T¦Ò-lLîaÞ W0½ïÄÎ:žn«ÚÇПOz³íW4a5QU8 Ñù ïÛò`ƈŸ/iײƒ'&¦Â5Dhe ¬ó$_S¾Å xBw×þêààd3𺊟_YÕ#Ô³¼@;í /ô ‰á¸@8%¶Ô¹qUƒŒBLL¼kÉ€ >žc² lŸ¥µ0‚S[&çËmc¬0ÞYÝ£$!'#žØÛ~¥‡Š&´‚©/蛪#¹�FŠÓ€í‚ÙûŒ´‹v5” Vüׂ'a|.!Éã±y©gÔä²°²,Ó/Ò»zÚÅž¨®�fxíd{aŽˆ[,ztÂ�ä!ˆùÿOçÎSS�¸ãÄA‹fX¸Œ¨[i§Ê.³·ðïÝ~S>Ô‡ SÆHé�Œãk–†Ë™Âöð ‡Výiˆul6½Hô°‹óSéX¨. ä‚éðÇ„øì «zÔnlh¦éŸ†%碦”z�e`B'a ޏ^T±¡•Ö¬ÔvÑ¢`á_çKg^™œŠçutø~÷rʦyºi°'Ö”K!×?;9QçÅ[ù(²þR ƒ»xrÇ_f@ P\ăÏm°—Ä%2*Íš…Ïìr®‡Q¨rýКe\ �ˆ ÆÆb¥¶»ý7ö8Ë. ‰áCôlx‘6>†}ª¸ƒa2ûܼš�£ŽŸjç°'[Êâ­R|øŽÂ‰.Ô:F+±~t‰n×¹ìúo¿${îÈУ†}2g`é @”[6“æª0<<í yN/ÀÐ6ë-}P/|VáÔ2 äH96û¦³±aL»•òâJ˜(—OÃ&g3=Áæ+av´ Ðé­#Ôœ¸¯CM;õ{vIN·�ÚWð¡Ì¤—qûàæ¤TçÅreåxa$Úð:¸ú´Œ=höZå{hL>ÀÒøÔ´Ó=ú(Û·Ø>ÊÑ‚%´�•Ù^²v/�hêžbÛ‹ŒsöÄ a—B=†f)ËÖm>™ŠWK_‰|M�$„­“ˆË='{lLiǺ_Ì'Ð�m†™ªQ쮘ü1P #Îuì¿줲dÿÖÖ®¯z·%Qj^Ã0…å¬ɃÙc®øFA¤“ œ6¤ùuS¼–µœDÁÜ«A3o~|†t§6ª‡^ü¼Ð*zr$@¼S¥ÎhÕ"ℵLLÎŽ×8 ÍbscœºWÁ¾xþ<.͆V™à ’fâåœÌ¤ÓæÛJL2·å3Öã ™a:#Ù•w,ë0 þð/mñ¬+ÂKô gðñ›R9p–MVôÂdéYý„yÁStd‹ÇÁd;:@pEOhV± 9ÔceµC¯­døÑò�ød±CmycD¾$"­ígw••´9°Ö…ßDFñn:Õ$¢Å†Ye¥YÍt6P2‡²,¶F.–mV! P}k§H�ÐÃBçP-:º‘nµMÍÝͶ 1< ÒÕíuÞÄ$áÁZ¥™dy²¹…%”F4¨£>60–þöóˆÙ¬Š«ÏUtºI¨ïÎÍx±WÐŒ”6’„wB»È„‘}B®RpŸw¬ñrz{ØW  ˆ�ÙcçUe“Y¢×˜'ƒŽ«›º·\Ëγÿ™«�G»Ÿä䕹Ĵ)ßä‚ïé›èÅFì¬êí,ﺷ ÌÎþnÐô¹ þŠA±µÓä›4ÿu»îU×c Nß$�O® ‚Õ¬ª^‡Û¯ÕOŽy`£«øQ|Ô0ÒÇ=Ü…$bgÖ°îmÆöU¹oAé½Í�Dßò}ÇJA¸So«Áá<Çp¦\’Òôµ·� >~/ïëËÀ†C†z§±Œv„-ÆäÅ›xmö¢�„`þ8´ÌÀ4I &s—ÈûØØ‚m@WÚσ‚Y™Ê)©+Ëô¸Ê—åÈ0½Á‡»«ðˆi´ÛãÜ¡\¬‹óÑ÷èk<p¬<×*jnkÎ{ë‰-_ff|HQ@¾ãP!^(™#ÜJ'- „ÀÉU±Y»nèãõ4Îx(­ʱ –MªµC9[½/ÁÖ|}u]z¡ÅUÆfùó\µ ¿”OŽ¢ßC¿Ó‚OÍ· 2óæHœG.×Ç6Ð?AIo§í¯Ó£–9¤¼e'8ª,±%â|¥}Ã=?‘iEˆ²q€½p0l€§²�Ó·•p“ù’6Ré*©�:Õ¶RLxDð@›D5›•ð6›©E¸/ú06½%i·ë î%»íé‰Î€›¤B™ÿGñˆ: Å2¡@F²¤™ˆÀ#ó;›¯ñU¡oŸéÖÕ!Õ·gx² ⨋ÍÏYk‡öfOVJª�΢yê´op˜*ôcwÌZ@Ô[A_òöO¥±¯9¦IœË3oHJ‚¥ÿ¥KÞ°+¡WÏ{^í~Rm÷:›žØ×�>6Ȇ¯âQ�²»3ÖÌÃà°çu®>Ðó‚R¿ºdÑ5 ¾Ž­¼fœ…Vßc{K³NÒ-ñ€u !¥É�Øóãë}0 á jšè¬<ÓÏÓàI9­pKiñBldà žYÆ©×T߈m .9?'ž³Áyp2(Çœ]ß:õŸÏ?¢R¨Cùó¹# WÒ�Ò�%òöd‘˜ÞxӌŠìi±È�L‹|}ßÈÞÀüé�“$eý{–.#à0 vyÏ�ã(ï…)ôØ9Dºï‡ Ï'{³Ï‰\ÆØ ¦-Þy¸?Gió/ò{PÑa�…@Ë]�A˜+ÞBñyP4O‘J�&„ÐXG[�….�Túˆ@ìå �Îfs䯪ô¨dU­u{xcÔ0¹Ý•WÕÈ=�÷•S>k$m!D(…ôLsÎ+*ü.žðκ—S¥À•Zȃx1ƘáF·c�¨Ïqß²Pü?JÚG’ŒáÂý‹õ0™Ütõ7kæ(‹P©—&ò° 6BÓÕÆK’Ðc”µ9eÏBé!%¯‰eíÐ@×ÍP¢a=p€qFÐÙ�`ó4ä|õë"¤ŽÏ=Gͤ-#uÞËå Öý€s´³èN&•-´`ÃeüN]¶ÀÎÙ}º€&ëõ¶´ÉÔyÒ;qj×Ìí`ÓÁù°-¿f°Í]”´×}"{IÿöU ƒg!w=R‹;Þ1ï=„?GƒK„ �IF<~È —Ó‹Mù_E-g~„ýËœ&dªÀˆ-µø·ŸumƒäQ— ã… Y·²«ÅAðx¬4!Q›+ž&çhàâ$ÑÌÁ°K‰ÑÔÙÆÉD£FrÒ¶my�Ñ:ïÈ}Ó­ßûx†(°,iÛ*�\-7˜^åd;U{Ž#¯!Ùd‹¿{çÒÁÅÕaÞxH7KU?ŒÑyf�Ò«‰œ†é§:]¾¡½“ûc‚®À|’˳Øß�3V>ÇôÉrSºiäxÿƒ·gÂ[}ºf“CÓþ—vòÆU²—=³HˆJ£ÇîñnmJ„Á�Ö®¸C<à!ú#ÿjO-ä`•?¾QjU,Òl×ë)£Y@œÂ R‡Ir¤ âv°Ö„ÛûÀYM1�û»ëU™`ʸ÷m”¼xó2­ûìL8[°ë‰:,�4;¸ÒÈNFÅÝ6qË_j^ «ÍŸ|SLQ]¢ G_ÿ�Eµ'aç;é[Ø[ºNÙ8‚¦ ¨Ä  ­ð?7bäO"ÒVašÿÍ'`¢cP25vS¶±4.ù/ÓøâprÈ 08]©74þ”½c 0857¿y9É[þª…5¿™¾°ž7vžÿà‰Ô$ú‚P‰ùO…Kâú0,ßRî¸ùŒeA7o}”ÿ›_ú_†¹!æêìaTK´á/^0f"NÖM—¢„_e®Ý«ï´,1’}¡È}Y»rØÀ†}n£ýÞ6£$a’øÆÿô5÷³6%¬]Ô4¸sËÿ7¿ì¿Ìü‚ïÐÅUÂÆÔoý¦ûñÓA!l&a·*Fvö#‹vë33¾Îµ�ÖØ‹ÆÍ$}X‡ÝÄå^D¸æÿãëüèÜy5å±/•aYÆ�-ùÆï¥…6ï÷‚ضçäû¿ù•ÿeªTÕ¢”ómý®g34æûòl¡:(Ë�¡uÈ�Ëê$.ç·;Yä¾ßÑöõÍBsnp¼¾cåKn\Çs­Íÿ?äÿø OFV´ fHU™¸à/J`ÿo¾˜¥�©ˆ©³ñÿüž ÂÚ¡i#MÞ‚Ž MËeÅ|´ÙíÀž¤Öx_Dc«©$˜Ó€ÿ_ÇÅÔÙ…ÎÄÐÅð¿÷ÿ¹Sù¸§ðP’gÉH‡ÿÛTý—¡¢”]Œ Œ¨Ð$¶›óƒrÎAN767Oˆ ®¯³§Æc/Úè$w co®ø'üDSM‰ Æ@#ø*ª5ñ?}Rßx UW¹Jøiɯ…äÿͯþ/ceôÓaÇõ_ó´Qo¦®gn/�%¿ú¢žµ  Y/¦ÉHol%Õé(>,Y;ÐÜØ'¬Ä-Ò=úŸ~�„įÖ;ÉëÙ˜1Ñÿæ×ü—¹¬ à1ý7'\:ÿJÖˆ™’�D¸!©Ë°~fƒN­ëÊæ…©I¾cH›j"‘Џ$þ662“V:`RÄðÿ;ß™ÿ·ß»nê0Ec>IÓá­ñÿæKŠ) üÿ9Óê+ztÓo‡4.Z*‰ `‘ ˜ÂD‰D©›fö*¦q¡5îÐ9Ù  æé&êSÄ¢¾ëäHç$.Å"S`�ä°Z¦L—µáY%Ä i|éøíWC:ýÈ„-¿ÜÄ�c�GnýΰΞjÆlF�tˆ&A€jN]Ó :ýÀ¡€"ÕkT(„Ú¸;%·"ÃËÈìÉ…¶.-wâÝO`2+bÔ‚š$ÌL9ß…Ãí.VR©Ö=9ë=Ù^À¢w$Ú"ž¾m{"Áìav$A\ã±ál–‰ˆóm b®SÕé—;›ûÚ…Ó© ØrøBX UúUK!]ÞÔ{Œ¤†(@o„ù¾ø­¢ªS[�¼Ðî- ³E‰E<¨¡ðŒ®Ø6Gúý �ª‰^k×B:¶}Çظ©v¼;ðRÆh¡asswt |„J¤GQÄDP±ˆ°Ø @j~ç€J ÌÏb-¿é$W$c%ŽýyýðHPøÙ©˜3)x^ƸxÃ!š ÇV´Ÿ”“›^Þ ÜÈòÅÜÜ’AzЬRz�G/e^r„^tÖfÏ_b÷é÷ßp‘ˆ{k¼Gé…ÙèØ>õSÖ¨ßÖKZ£®"臵Ң�ålÁ�KùfG‡�®C^÷=2å#‹”ts üº(|�C!ZN/u­Û›áxKWåýQ²áµª›Ö0°�zƳ賬©ÏruË_Ïìöé6G4Æ’p¤1à|#g~ôþ›°k³>�ˆ¾yÛUÿΚŠ§,uíçD¦=Ò¸U|\³Ît0öU‘r Ôan�,�O^Љ¥jÓÙ’¢û£[>:qáæXóXæh�‚2®L‚œ³9 èz%mÏr÷[{¥D�UâŸä”+2¤jw ; ÈKo,@ïÕbDßy5ùˆõKB`D¢îÏaj°"òv›(À�½éò‘|†S|f¦vz9&wýéGzÀûE˜¨�Žaà,í´Ýñ}0töZnuV9Å·+Sp?þ ±»€:Ÿsr/‰uª/Ûš(½�b/Ÿ¶æqÝ T>5ã#YÝ&D&ê²q fŸiÁ Ð ¢‡®_tìÅ>…ª}’¤‡à嘂Y:6­’k Y‰”v�hrR=ÉSZmסÝ:`®¾su¶g`U78–ºããܸü¦Èi¦> G�:†LZBeÛ* ÃG\ì\)\cÙ‘2¦"sÑûÏÕz3»Y«ïà¤DJwœÝ ‹s⣌M›H÷buãf‡¦[ ×áO¤è?§$Ï0…+â0¢åÒqÔÓ )I5YnHû7Žþ¡ÊmßT<Ž“{lFAåÚ�_Xp‡Ô¸º ÷É’øÐ�W+¾3íÀ±¯ñ}5Ÿ×êgMKÈ#‡vE®Ô_HœyQˆ_YU~AQ­6ÖÇ´±RU ýáÃp #³O½ a:ÖN¬²_rMýkŸ£B\£v‰ÖvÔÆhh¿·[êŸ3°ƒ™×l7׋=ù—‡‘Gt@#™yFx ç¾E>¯i|sê¥ðUŸÂ–ƒFÅ)ižŠ¶á®µ´àwÔÿ´Í&ÎÓs©Ê€LWøÓ˜ B÷Ý=yä°’ƒNyõ¦3†¤ì«5bâ{7¾GýR…¸­CJ†¨øgâµÌ±_­®oØW÷§Ïì¾Vy¾bMF@­íSåÔÄP_7kÅåbœË¤G'?ÿ'¸r`›û@fï Óò…¸ÿ9¸È¿A·­£z÷ØjŽŽ+É�» 7é^Gß§;W¹NèÀ¸×V;€½‘ Ęd™½JúS¯Æ[aH¿jOBÚò7®¶i1SÅi67Oý<ÑšÇ0à7dŒì"ºg~:M.ôÊÑ»,Ñœ}ã=ÌÕà‘�P_s3–z…ßÝ‹D¼­¿ð׳¨I.T·îÄá Ç&®z™êþ(·…R¦c„µƒ¯J[!¥) ‰÷÷+¨ÏÆöxÞ�9Öž ïoÍZÿÿÆ lô �6§JäRnæ÷,�Ò«4Rí]{¥’ù¹oJ/›Í Ê�ŽôQ^ôf¤®–ç<Ù~ÎVÝTqk"»*|¦½ØøN×rö©&DÆNàÍiÛ΄·myRY”÷&™`û^Á î´æEõŠ€�»Ó?P !8�ò�œµW„§o‘ðý�ö-ø@[ü’Ú!7ØŠÚ·ú—¸hX¯œ×úÅÜ ÷öš¾-qܹÞùx�‡?HT Üò.ËK/å�^ße’�BLš� V:0{tHÜ xSÇbv!1Dúøû^�’ d«�Jˆª`$‰ø"&iäøãü;ÓÒŽe¡¯·lóª’LYŸyÇM)ÙËF.¦EF�1bUÿ/½9Là¬Þø¦eŒÆûë>ü†>¹#çËj l@^nSq•m*gôóëÝ–5ÚRQÂ&¤ª~HaŠÏ�"ǽ ¾Rþþ¼Ð·AX¸)AaÛC\‘emå}áÊò ²IÈ¿¬ø` ñË@Kk8Êü¼ Ñ2´+ƒ Hg†]ü=¿!fýؼ ’nLªóÖßÏðÑC"½æ[Iõ^ y^�¹�–z>ÜVS™7ÍÃOfñÂŒÖÔ’“ÏN l3¬­?¥Y!ˆT¢­F”D5ë Û$7!¢9 Eÿ¼�4~•PdÕ¼'èE?�ç8�R.$þ'ïÛÔ•œTÊ}àtƒ†yrÆI¤«Ãí>7gO`bÜ×øI•Ã×’e©°•*3ÎÞ�£i¥›5MV�1nó¥«þ|v^±w>Ý…¯O4–lõÞ–ØËní°«£Ø‹eÃ>ú$S�˜,gÒÒ�t¹-‡b„ï�ÆóÄ·Ò˹$<(ÚOh´¿BîW{gß0[}P^$ý&d´"D]ŸÚÚ—L�ŠÑp0s2o�M`l¼“L\ß²?œDË*5~Ã;8³Z3XUsË0U —³ ÇØ–Tv{[Išæøçv*/•Ó[´º7Ã+Ì<[eeКr–L'Š%R¾$<ÞYˆÜ5Kùn¬:dgšŽï°}È›¿ð§4jŸëO…Ôû�ž;°‘èÄ~‹,×s´°‡à<©èñ:7ú8*• ‡8Ô/àו ¼Ï šÏ7bâ6™ð] +Ú¶l>λ­�æÚ%¸¥äàþSÓ"ÎÃêþË3–iK™ß]§êÕw9u¶äs¦W‡¸üæ^¹Ñ¼eÔÏ_\½™’è›»�T Õ¤°×…WW÷Hoeu ¬L˜°GÉj¸�AA¢¿H4™ðâBñÔvÅEç2†dmäuEÀ±Óqbh/Œ]þèH Ç©ë+Ûƒ%Í]û®è"˜àºáF7Ÿ¹"RÎìÙQa $C¯g›v?öì„ìCûG… 5y@’N­iKQ\r ûYBÇÓ‚ãl¢—W£WZ°Þ3ðhÝuFŸ†xË5]œé¢%Ë¿¯å ¯dáx„Cͺuƒ¾ç)­›cþ²“øøŒ'ï0¬$€ª2†EÞ°âŒ�'²lõ×ícÄÝw€eõŒxrA¬.ÁAPbнÉ‚_å¿€ºjBŽ›¥"­ «›"·)¹ðëq÷ÓÍýá5�²V+ƒvÊ&­Û&=ÏçŸ�®áS&ƒ\1À;l¤ÖcIŸ` MOm¹#ªÚ]Å�tùMS¶ÒÙPt·ªŽ( ~i�”®üšÃM,û¤Tn&·JæìŠæ²wÚTÍ-g5ÄHéÒqè8ø%Ì9]|å}C#iÒî)C›÷dǺÛ>e‘¤-¶˜‰Xe�‘ÚÌFDeñ ô°wÇ«¼D‘W¶q¿D[¡éÙ·í éB¸évgĬsA®3ð_GÝÑ W`c�>ª¿ÑèHŸIQ¹�Ÿ¤­›à2µÃßrO¬M˜lõ{•YFêð½½dY·R:6œo²K‘Ù&SïjŽ�Án£Æz©yãm¥~!'€ +ˆŽ®�!Å› €V-»û}QuNV�4AôÝ©±>ãlFQ.C«î¬}ãÍtp˜UdtªPI[œÈ–aÒ”ïˆØAšPzøø±íÑoV{Ÿ`§Nœ\x¿MÍÙ/¡QAÏR+ñv_-¿£B5µ1Rú£åäQ€yr ÁnyîöÀ‚ê�ØæÿE–ÆGà1ºÆÞ9´'–u»˜ÃœZ¬ýiïÁ$ ¡?ñŒÇQ¯+¹±oA ã„2¼wwr·U^öö__¢0ãŽÎ›>$ç›1äÒ/ÄW>€¯1‹„mIä_Cû 7µ®‹bc^3'HΞÎLºŽðàHºEkV/uâÐC®ëvõ³&ª¾_Erö}nL`ŠDκWQÆLz¤NYøC<ôÆôò�9TÁ[¶jÙäÀ¤_X �‘Ó0¡°$c�>Âä¼w�~ó¿Àª´z]÷!Äm…é€ïBýt±¢�×çcÆ�”zÔÙî¹öeß]±–‹Œö½ÑJÌð« �$ݱáÝê?½è�mª¢Ž‡TÉ2éö݉ÝßÎÀ‹¾ŽHª�s«¢‰Y[£·_q0ÒsRLq¥yù¨  ^$Ìî.§;};ôȦkÄñhøò,¥¢)¢ÿµT ø|³¨½_˜ÈÉüËØîì\)H=…ØË¿f[öÜ9vqK ư‹Û{ÈcåÐdtÕUD9Ø«Nm==ñÒ²ÐD³‚ JŽÁ ¿_þ“µ’šZD ô~F-®™®V©UˆÞÄ(…Ç�bçkedéT–úœÕpŸN§xc"ÊׯòTvþ–°Ô<甿ªþ ô=Rö䄞ù~.}©X…»ðó§Õÿ溰~Â';`³ Q^Ë™aÊj¼/ØÕá4�¬ŒÒÄ[MK %ê±RðU£.â�÷0ðÚ;pÂ+"À\;©Üîyøut8 ‡LЈºIÙæ€pÖ˜ÕŠì.â¿)üԌݩ»YÙ3x&Ÿºnmªî§ûY¹7É´bH#ñAˆjfaîÄŒå>ñr1ñ’‘ZQ;ž;£šÅÎO*ÆXy‡ô½ÈzTÈ>¤ XÞf}¯e7eÐíÆr¹5+nh;^�5ž*pE/‡"DÌ—¶ÀU§µWÚŸƒ¾;¼|º„ŒýJJ’V4%*Ÿíƒ4§~$ç2ŽŸ6òêRïU¾§ÏÛÆçL•\ÕëÏâ;d)Vù¼áNÝUЦ0™@r?ÏÕJn9V’I"4¼Ø6lS´ó}ü*7¤ç×ĤÅ+~ðÕ6jkƒ5 42ìW¢c†ƒ÷¾v”¡Uú¨‘a‘D‰´ñ)?º*oÇ &z,ïK‹-b:Š ‰‡’­‘ÍL“ùX¸‡õà+`€iéé.9*>ÙßÂyÞyxq]¦9/Ì9÷Éÿãt¿6Чð+Œ%K©‹+C-—¬ÄNçØðûV¸„qp!^ÍøC—hh‘!QÞ|Xc0UˆV¯úX´�D[ûƒБøÌ–åÖ¥ë\d ´%/güIošú9ÙÒB2òoô†íRËî‡Tæ¥à2$×òÀ xD­Á; ÕÂ`áaËì¬n T…^òŽk&$BµþHü—Š>ËtšŠï_¥œŸ°ð®›@Ig s»&úYqJüX’+òÛW¹Ð5å#P#ÂeL!ñùQƒÞß©.zôÙYi‹æ”ÃPri[+p,ýä<ÂK¹ÓCZyþ´÷ZÂ_–§Öq YÒ°z¾z Èê�×®‹gdؤ‡´iãÛ†'冸ºq6ŒüÙŽÔð"vÁ½P“ó%øIéÐ�'ø8b¥k) §-ǀ鞆&ËÑõ/»;iÿ¼[ÉžS0âhx¤^à´D²#&bâ¼öžL�/˜0Ä W à`0Ý|ìì6¬èj�½½› È>ý~TLï�Ìòó N[‘;” .̼(6w¸J+w„3ØîtPFHÂû5Û��”Lµ!R7W•Ò·kæÏ9’fŸ$ää#nci€îöæ™ÛÇ6*ŽÌ„åú¨àÍ©Œiß[½÷)¬lÒðëµUu�¢ÃÍÅ·ï!Út_ª±‹QU‰�ð c»)åR*sOìh gÿÁÜJé©”Tb°�‹£6ÅLì\l뽌N‡ôo«¿G«OÈi$4Kòº0sû%ru{2 áWQ5á²cî v{Æ#àÄNùÙäœ9û©-,~ò$£í‹è©ÏÞ„ŒŽcVÚ—îzfL9܉Dë²ä~ݼ÷�qfYìj»Šez:È®&…¦­ÈÁoò�é9Ô¸A¾R"ü²wã/Ïð)Ïöä¿ËØTd…į,©$TgB®‚¯aƒ=æ¢fl°Ís…2áºMê¼æ[�5»EØ~±rßbÄ ZöqZ,H¶7ò®}µ?ÁÊS/¿Grd&Ì ýEvÿ ‹Zw1/’ Æ»Z–Š=iQ²îQ[L')Sž2$oÙ.]Xšr‹óg"¯Q[f{…´öS�Š›ºªIæZaïUÏ»1.ÇžC¥Y‡¢š C"QÝ)ˆN1…‘{|Ëgä¦7Äí�x”Ny[NËʧÒí*)[ͱð+æ0î H’“æ\DÉ´­Ð§cÐ{º8ªÌË¿‰,[„³gÁ_‡ØÔþ^�5îÌÙß*}™Œ¿x›7pmï’ìpÉÖÆ± °¥…]ôK½þ\»ŒÃjýº‘�yûÂ(ƒÍàjÙÇ< ‚iÅŒ'ÆèP-êºPå¢jœ5öžôÒ›r';pa9†ô{0öãQU~8î i˜5y±b�½�FG*›EQ�爆!� òÜ¢Ö®¥Ì‰WÔ÷ò³g!v ö݃ƒ-m¸‡òÙ�[¼éLEQ±e­¦lò’þ= BšŒÝHL3y’[·}jyU®Zg:OX nƒ*êMî¬ñw†W† ¿Ü“ùZÃÐ2Š$…>nkÉ ú÷B ÌÅ#Ýa„©49£GèðºñÁÎA…û�>r›¦Ì·…Û„¹ǰêNµ¡h._ÖÇéc¶và°ç#iÿ�,á¥iÃk^Wâ\AVRÌÂAþ"ªy¼ôSš»Èì_ôRÃøù–/øîçDQ)_±žu§úfB�ÞÖø[“ghlõµ‹¬¼‘Ó!LÀÅÔB\Â¥Ák¨æÎšˆT¢ÙÜ>¦µ'9—èèÝÏóPF�ÇAÊMÛ÷W|C´«&oF:|z�.kßW�”Þ† !º‘cã¡a$Äõ¬O�P�邦>žZt –åF{˜¶œ‰C€Mi�0O°ðÒùÆæDhÖ+ŽÀèéT,yÃ/ðÁ³¯ÚNeái„„~ ÃÑ#éÁ¦@ÙDÐPÂg_,à3Æ(ŸËñ~ºÃý.3d°¥4¼‚¢‘ú‚/¯Ë)‡]V¬ƒ~>ÈèÆÑ’è¡M¼Íñ Ì`©ÐDñ ]›ÒF¶ÉÙù¿R“óœ¾�þƒˆe=�eãÓãðl+dFªrÀ¥«&e&à#'÷&nÕ#Ž€¶#³˜ªö£T’l ÆO1‘-XöYmî=.S ¦�Síjüóéí‡H—69- ü†ž%ÇBñ�—wÜlÎt†¨Ê)’PôVúY®‡ža•.ùµÉÌ:»<À 6uõ3B?LùèÆÔªwHX�¬j­q( &Ó/"asÁOèóˆø‰}çx4¶ÿåN»`µ÷d¸TêÙ],ΰ“‰ùB_¨Eª�J7ŸT‰Uß–“÷ft¯&£ØwOa%–¼­kÛ‘ÚnÒîUYÈ—Ävu…´ÊRõmwæÕ`»�åÍ�j]¤Œ#:5ŽË÷3)£A€ºA�7Fíéð±¡IgÉ=ùùBZ*§&áo>ÂzqåÁií�@ãŒKSùeg;H(s”ÚMBì€ëÿðÑÕ”ÂIbýÀºF .Wþž}Û_ ÿ•Xþ´J¡Ð,T‡Rª®u2Ñ·ÜŽ2®mƒññLåí¿j,2dš#Hì¤I[éOJù’wˆ~‹N6™ó?tŽÁ-p\î�Ò±[Îø£„“ þw§$'á/ìŒ[0¼”—5î!ôË­Îaê‹�ç�Þ9+3-8ø -½:ð-Q‰·ÀÞ•X",”ÙölÈÇo"……©õM÷•j¿±tt{Tp¼¡¶W¤ŒÄLýç Ø\– £Z2[i;ååRš0rœ|4roþ"W«L_°W¨˜-ËMDà¤ÚU–?ØÆ�zÞÃü¤ôW—ƒKt¼$F Ë{ØYêG|׬×1Ð�¿wÀˆ÷o(n{'¤‡8鶯׮¯{iÇ/Ó‚ýÄjQÒ�Ù=l?²‹¿{u…1«ôTuqÆ_•0©ƒ,‚zWâOJØ{íÓ¾ØÜ(NβŸëÔÁ,ðé(8Äan:è�ï%Ä•2óôÂQ¿q#Ždæ×r¯N‰¬Xó'GÿÊ‚ /x„nYÂ\oUç-«~ÅaØ�ì§)&v¤Îth�(¾'|»Vi§ù¾ši½IBjÅg.×£.ý܉ý3�mYpx*¨`µqÖN8ÃIi·þLW5�ÓõÀ÷#!¶Ú\Sføãc�_Sã‡ß�j¼Å{i÷SRGÕ½ƒ¾ ç[PÜ6¬@V«]j=´‰S<ñÎcju&2¡m8á7J² v¥YåǶÚ;È\œL™àR[œã\ëèÆÒ€š¦u<¦§âÈkK~ÊVâ[ž¥ÕÎ\½RÙú×f�µÿwès ¶r4T¡GÞbà™ƒ`êã"‰G‹@¬J¼-i;Üee.iC^Hs%6ó­Ð¯Ø7ÍÕ¯®ç*Q[@Nv�»5:¶}Ø�µqVí‡5£]"$´ÖõõTM‡´ñ qVŠÉzJa?Ü"LŠÊþdÒÜ·eU ×xðV–—ž§ëÌŒ0þÔáêã:qêc|[¨Û¬JH„�fÁÆÀ¤0tšiÞŽ%„^P5XMýAØÇµºï[7Zœ–VS¦«yÎn_ÈÄ!i©¸CÉoúù&߀ð¿¢ä=T4�ï¯â²˜3±”Ñ„Ã8:)Y%¶QžN¬Õ²t{'h_RݯÂvcK~²›ÿ'´N»ù¢—æY½ã‡h^ä”V7.‡ûäû]�å¿¿#aµ˜yÚ†QZ¢ìNºþ–:-”ÉЄÊ7³üJ¾€%”Y\ŽŽÃ·÷¯ºõÁ‚®»zã<�¯O¹Wm¶›4g›Kî_ÑÓÇ@fIxóäE2q»QÚ£³C·7@zÀm.Ä]�6\o!–1ò0+jSL£¶pR-úHÐô>•}@é00ªÅ8Ú§Z’ëV¡G‰�6§Q�vÔž…¤·`{z÷Û°¤©ÖWåpxÜÈ(íCãíü—­Xeÿ"ÌžRÁX›2E™¾KמÿZJ«_ÙòPz§’Eò'Ë‹œ‚±ŒQÁfÔÖ&®'ìk°Æ?Nê=g\²Ü47�²Z´ñE—,½�Æéw h”é%6Øô±—@‚�5c‚ ”â¡söïcù“d…owÞ#‚exzìŸëñwXÒRE#†^ë¹%ËYƒ¯çT{^ yïÄšu‹;ýÞ,„Ûv|Ó¯ØN5­íœ<§y‘äۯ鉧c>\D+°@ð®a`9Óü=‘æõµ(°GRÐqÂ.°ê …õŠ5˜ô1å`€²eù7žèÁã@ü]1nHNy†�#sߥê3;· ´®ŠO|NÞÆÿyÛÊ›)Ú]QUsB�7h¹¸êU_Í:˜xÿä'°oÍùJçRãÉ¥…9Kð¹C ‘U‰�Ÿ-IÛÔoc笠½Q%´bpÌÐÇ5ŒSÐô†ÏoP ¬³å[zÿúÇ!gI>x å^<㿳Ô0¨ñ3ŽŠí°˜ù~ÇêsyHË[Ð�dM÷#Öúéiï¢#¦k�ÁJN¿Müy—UJX¥<±…LFæs…PeìÝ‹Ó�j${„LÓ¤Ú=ûû Àº\ùi÷‡ëðUf+64}ÀMõdŒ�ÊåNuÙö ’øK0âô$ù?Â$"ì‘°XŽ6ËÒÐfÀ«tîj\̽5‚²m‰A¶²>k!“w~ÌäÛrï*¬ƒûÍßøå°Úåp � °¢³¥$l ý[ñÁ ž×9UϪԩM]vd>÷î?ÎóŸQ0ݱ÷ŽºR2J‹Uªå¯ø,Ü;±²l>¦"ŒhG%¥¢€‘Ã\ΪŠrÆåCů ˜YhBõ}ó´«Ÿ<£b[ûÜàV™!YEÖµ:ÝI�ÑKð¬‹ìmq§w^ ,‹ ž¬—b6Š"r”Û �.«O2Ç­:2Ç2^ËH‡— 3.Æ^wã¦ö¤Ý–èžGBö.IAÍ8*Q|°¥õȳæw)!GÁ ˜—BÖ$Þ¤¤ØÊM †,51óÇ<)À$N�šUiC{4€ÑÍÚÀ¨)¹ ‘ „ZŠç$ye wwýõ@¦ˆ_Š¦Þ… 3fr£Ó[ïÓ»v(1MR%F…¼Ze‰©ÛÙ‡‚[du Ñ“îŒ÷l%å%ev7ªD‡à!¼Z¯~ï›FTrœÙß’‹²Ÿo‘àè/¿*Ú…ý±ã‘qqQ,‚Ò Âç ¹0@ÿùǵzØJl¬IÓq£²§ýÉ® 8oZÁ‰Ôæ&—ÆÏ¯…´ÚB­Êä ‡î¶Ô¯58:›åûÝR™ÉlÎ�¹bîÀòJq]Ë_çhXNšF£Ù'õ ¡C/}•ÏÈä¯xûÍËÜÖ âo€jðz;-ŠY£mÖ3H«rüæWí^Žõľœè%2ì:×AfÕê:°&©z5ý¡Eûäk;ÂÈ)¾A¼Å&2Q%nX¸ÕNµðØÄ÷(o¸¾€)ò³Ñ¸SÏoüʇg^áÕŒ}ŒÅ>â£=â«� BR›!�É,Ô'¢ хγtØVkùLzÛÖz¹CÒqª4p¯,K›ž9†«8£�Ö¬ «1Τßè‹°ø�ÙÎ$_\ñù`EÌÛĆ콳�[ù¢Ð"öw×5œ�6İÜöxÈ�h_RÆ#ådÙ¬�M=Íi�Õàú—…ö´GþÞ‹A(Vcüîiãð'PØWm˜˜ˆY÷m¼…wþq 'vîõÃsW!Út�…_[ØëÂìÂíøTk‰Ÿ&V§„K,^¦˜¼Ø²üù"Ïã :.Äs5úRö.ºEh5lŸßúL�œæ¢¸!áIÅ›ž+}ò]×MÐý,Vžš e ¥ŒÈzôîs “×vʘ Tz·h­óÆß ‰8¡/ËZg�d¢XÑF€�ïtòDQHäPÖ[I‚ªåd­�~±†9�vÒ¼ á¯×a™•½h�s¡çS£ÙŒŠ0ÿ¸9ì(dx äJl?µ2�—aA·T:ý¾Âþ=í×ÀkâÈÈH«Š½X0f°âo�VŽ­�Åš6£]¦µE�„!»Q‚úéï¹�7烧Ò™;jS�äa3,Mº¬b·§ZÜópYh:� ¦QcXÞ3&^ãš}Òözõ è 2J[W¶ Ö íCÃÓüÙ)8еÄ4çZ®˜k%j 2 ¶!´çÎ'¶�ºp¤ƒ"–b¤ãîÑTÔÈ)híïÕß©¹'£$übˆã­¡–$`„Í[ùª¥¬Ø,cÑ&F“¹Š©Øv*Z0Ê,#�$°½Í3{�MXï¦QBó†*´é�KÓ6OSj¨è�Á§«tPDdJ¡â¼®{(ÃóÒVå8YÇÇ@—A}<Ý-ïÀ«y"ù5Q„¾œè ¾ï…k/YøßÁHö«ƒí}ôþ$´×SkDQó$öDêò7ß’ÉßDhíµ[çI#»úÛC°ébácƒVz€ÂYL ì,8Áô[kIc1Æ”~×ϪÇÎ ÝåÇuM\*Ñ�þÙ‹Ü©Ž¯î?84{žÐÝJ� σÜP*Ï¢ÁŒs»zg6äWz!ºÇd°ø¬ê�w™B!G*ºäXX@�‘šÓ›†± \<ò@bŠ?ö‚m SW“– j.E¼>´4/“ˆBÍ“J—‘‰B\sD›‚®ð;shb¹nKˆáí6»¸5m1¸€ áÇß ˆr7áþ«ÀÏrÆU«^âö‘ÌjMÇwà;½”Hì—û“f¡!‹Õ±Û,Akö¨¹eI§.[ÚX€nþ_üôýuéùù„V£‚£qNø�ª/‹ëÁjª�Î÷úÓ¾·DÊÈC)¢æ¤òlKÄØÎŠ±j¬ïøzM8ò±Û·XŽ?×Fg2‡[øS¹fdA¯Wgü¥Iy;±yž”²Î*´EH–§²ë5æc?s´}IÝ)`†áç ºÞ½©0&oòòA7$—'ZÎ$î¶Û©Æ<§t‘W2¯(¥à‚ËÓo¯5å‘­Z|Òý-€h,Æaéèfj»ŠÏ .bm/6ùí½\ÒLówEŒcS–û'ÎÌú�¡Wd9…pôFû ð-9¶Òûöe‹äUdìéž &ÌOÎñ÷ÔÀbå6C¬µÑ'¢d(@¢#WÓY¹Àb’Ñûœ(¥ ã*ê'Û~ãS£aÙ¸m¤;µW4y¹¶47»a›;¨‹xe_lÐjuÈk¼eLšpÚ6—ëɽÕlÉ{—ƒ~ºˆR“l©om-£*¬r‰ÑúHãM,¯Xø­ÿöŒ$”!tŸ¢0çªHLÒzûÝ›7ŒE+ˆºÀSqߪiËÈX©ëŽÁ[Ýd®«¹½9cìÚÉðŒ&?߇Ƃ…6 ÐüSÖÑÙ+Nh¹0»…ÓØgÃc°Ç“Ôœï9q¦⮲R]m[ȯ8Ä}jÞRÒ«ÐiÅ-!\ÿkG5ZÅ^J >D�p-@z¡¦ûLOhñ7 ºA¿8LH\¨L¾‰]þ•“…¨£ªŠDªØ¬ñΪ²èŸ/‘MTÜ¥õœ¡Ö—E¢7Çq5“ìóVäo’Ù�ŸïyqaÂÏD¶­vKà4Îyê*©$QÙpŒZ5?AªW�hþ Îp„‰çÀ1´W+ ½í´@_·ØÉÆÑ’9ÜoŸ9y�ð, (ûwÏ9Ânf§B³a»cÓn?™RõMÞ¦ŒçcÈ\�r|ü/sã¶Ç8[Œun37�$döÏiµ×^åžÑuåÔO!‘ÿd w$�ޘȜÍxU4ªÈ‡_s¡‰Å…·é3E[¯Öƒè?¥ÃU}g¹üÎË"Ûouýta¥Åj 7Éõ~Ðõ¿ H™šÌè!às¸RŽ˜FJ¯öÁ¦sv€¤)ÚçzO>-œË‘«$šØð'¦öjgòGå•\ï¡>ÝhD�) ¼Õ¾mHÑàˈ`?Œ\æ‡Y½—È+­{WMñ« · ZwfdÍoÔ”æT¶÷]¦X³røÔÿåöÑ^½®'7[¨LŽðúû ÏéŽÈÕnÇb‘ˆÒÊýÓ¥TÖ¦ˆ$t@ e§æ¬—©‹])¿-:–lŸR6g°óTn�‚¯Öš€þQ;#XÿûÆbß9³¥éGý~ôÿXæÅjÆ™™»Ô" †Ê\•Â>ºZò7…kPI¸ ›%÷&Ö®µ÷)l|�n[m·³_<`)�k’ è…„Ų[Æ´Ip@0‚ë‘~ÀÍËÖÙj¾v!�8ðÒ¨M”[‹©€0Æ?¾56#Óu aö¢5©%Ô0«JÇH §Ã`$?qè·îÕC­£½2NŽq; ~€! ¿Æ_·évÜ«ì:Åô(^Q+ÿš ÕÔxÔeÈ–pìªW'�‰Wœþ¦[èÁ¯G9 »ÛZ¬´Äç1T ¶[Wêu`±Æ.¨‘ vÛïвUºL>÷]õʵ¶”}]6¸æ³ÐkñN:–uÏHT©-OÀN$û b”W;(T<دònpQÊ-¶ ppºý¤AÁ&ïÜí’mÁ[“N4!ø]@·a"[M¢^ÐÀ—ä’F;fqu]ˆª†Ä£LFÎ}<³Ó^V¼ŽîÚ}áú ÝGW%ù/ܾ?�ìR2t•Ó·û£[Á V�„ÑF4JÀ¹3ÿw¢l#Ñ�­B]j±qÎu΀¬ p0Áú¤ÓpTÉ¥FB‚h;>؆ŠoTF#º§¶VXÕ[B^ Œ&1›õͺ¨-~=µ§›‡P¬‚¹`¯Ä±»pâ±?Ç÷ûÌÐùvþe$ðœt»„�<#/´%]Ô:Üþ8‘Ð!¹˜MIØè`�‹»Ä³ãïîÑûÆ{&ƒmLƒ09ÃEY ã'QóÕ°¸.ÌŠÒm�±9~·5¸¼•×ÌÿO ç³Ý£:að“G±ƒ‚3Z™¾tC@Ik”­ú0„xÚéÎ!|ãeM¸JÃð…Ì«�`í«œ ¡H¶•a}íßCÎQç˜\µÆr.ÍÞI¸ù—¶ŽoÍš¦h{'w¤Õ'¸ÖÜÀDÊPˆlÄ~1ë[ÔÞšK\9WÜñ¤+žV‡À»±‘a[·Q'¼Z4ýtº"uÔ2¯/y�àWóÚnFFîä ›×3ÚÅMfÏžt{fkªrJ34žÊÓ[Á½°ãH¦Òz ¸�Ød‹w!YøÇ"rcõÆcb§°×5‡®û¬ˆ²¸&2r${ÆgÍëÙ$WŽÄnõ?¶ Zqád¿ð7>n�ÈßÄwdú±a+¤ðúس…'?-doH ™ÑX£*Påî‚fŽ–qˆ+dF³Õ0j¡£y™ß• i€}2Áé»wŽAØoûœ}îìnÿÔž ¥rûÌ8ÎÒ¥vÀ޶ôàJ{Žº}* Ï«HzG%c?§Ÿ(8—d@;¸Úª$ó©„AÌøeeáyOÖ¼9TÒ:Ö·ÎSØ'†Áüœ®†ÖùH÷µ~xO=±a™Û£�;¸À/arª‘¿�Ûô—G¤k%¢¦j¨äçUæþ¢‘/¡IÆ„ìX¼y—Mèk¦çÞV/Œ³TÖºŸ.â�x¶âºÄÄhsíäÈ�€³®¤ésñ�Ð6Ì>ˆS—6ýÇxÖêï,„¢Yãòp.f[zØE§U‰ð06„ÈÇðê\BÈ®O$Ê'…Q- Î@«À@¶GÓÄàrÖ~HØÀMäó ó�gš_�ËãaB*›Ñ˲>ŸÊÌð!|yDÒÉòÁ+ÇÏŽ¢úœ¯—Fô‹k$~&»K°åÂÂOõ·[4J|̱*Ñ Zä�d;«¦�Ãà��UòÏÛ› Ñ„ä…Ù3ÚëÏ|lã¨'/~ۉыù¸¿)±Û­pp�Î n· ÖÎt;´»·¡í»Dá,ÏTŠ3iˆ¥N¹v’R’äé°qÍé ŽXôMljæ²¾Pg¦WãY`ÔµBéÜ×/9¯t·Œ#º;ye](¬xøž5Öéåûï8g8…ÉÒl7'6jö B7C5‘’=|SßÀˆ[|ÆßR)"º©âÐR§ÜöÐh”fÖâ‚8jlœbê¶²[Äg ‚Áð—b«—ñ¦Âª &¸"a A=ÈTôxÕÿ¥kXb‘)L]#8…(¦Õ0|oEh4†NÑXFºù§KëÀ/\ÝøˆÆ�}‚¥àÓ�»þ#ãô‹‹–Õ¸£ îš_(y…æ­èïjÒ7SiHÉ[^¾€¤•¬‰‰®,û7)ŸÇƒÛ‹LôŸAqOCûÐ�iÛQb¹SºÿïÒeZ’ŠúšJ0ƒ ŒÏ�쑼í’Å r§Í;µ,yëÇë�S¿–Ö¡|s¨ôg”`Ã@}Þ?ô©Ó¯V^ùìÜE8×Áý¦\´Ý¼å'HòÜZFÛðKAP1¼AUÿ>-²‰¤;§ŸB,sx*¥ë…ï“�0zb—µÌªû¾ýr]mð¨�G3ez‡Ná‰þz¥ð5Ÿ¿bæ¶î{‰…‚ØX|/WVC¶þ6#Ú5ÌÌç®.>Êóh‹I­²}êï¹·'#Ÿ*vÆf6…=¨ÁÂcßòÝqaNœ¦eõI uȲ㉙í\šïãiOÐþZ?úr�аË‹íK/‚¥2ìL]dA.êxK”2ÇTRå™Â6�´•ƒEæ 4 ØmY…îIá PÒ˜îÙGZ|Î#,�&9&�Ɇ‘5Žh|Ħ6CÐzµ�O]#BM™ã¶)Ð=/Ê×#Pâr´ˆ9î•s\ ‰¼;`çap‘É[(Œ6¸S[€C•}î†êçˆƑ˞ȹ=^^*á|œ#§¬l³º©¦S­(ó.î]‰gS>Âf÷Éž`¡Ó¤±ªm²ò`xâÆ:žý7{S`¸Út-AçÙt« ݬ¼,O¿Ô¬Qe™Õìy ÒÛIàzÇqùÀÜh´%DA¸˜‘”ö6RfˆXGJĨx¾þH$}00Q]z«Ê«ŽwqªÆ¯ÕÄÖ’èkÓ I}PˆH±_8éfI 3áUΗ�®–Zá…“¥²|ÞN›b,hs¸nìû‚h±¨+U DMfx”—#åÙ)F˜}~ô5MqJGoÄ»%Z;Ôö/O)W›™2¡ÞÊ�Ô,Í×bÁþŸP‚eûäâOL’Þì7W÷C/”‹SÂI´Ò2§qõÑl„h7°è�,]#xÍë NÝO†ÜÒ@¨Fù„û8füž¶ÇW%8î wçüBr[Ã:wë9cÏul‡8 ¶Y` ²xY$“+ö”a1Ôø ¸�'ûÄ‘¼dÊ‘ê¦<ëÀ¶[ûñ:AÊ®„i—<'èi2’­Kõîݳ³ßüQ êüHL&!Ì9º0¿<²;F vÂ} Íçõ¬×mµ¡!9¶ºQ¹\÷´k5 ¨ôØNÙneQTãÆTbŸy•j°ŠB4W �¦ˆ­»/÷”£Ÿ� Û®öMÓsŸ–ÚÖ�~1¥Ö<ûO3¬«“©Õ,yî_på k1…¼fÄÇ$¯“”×̯*Œˆ>}wÒÎí_~ù Û>“ëƒP‰˜Waùš&X†ØBˆ½ ÆFZE÷B,6Csª,ÃóB(ÇÈ¿~˜ydù…=�ŒŠDÚ|õ'%Å’÷nØ»o®£9×øæ�¦} ÉIDZϳU<㼈r +{dáí>7R¯Ç)tlOî0èˬ­ŒN+ó5Ó€�«ê„£Èa¹\MÇëQWΈL‡ë‹ÙµÄLÉìñ˜¬ŸrOjkN�8T^“Ÿ¿¬ºò€ñÅ_Õ§·®oɦ4sàS¦× ¨îñy y \6 WßÍ‹ƒß$­1É?pê e\1¼ë*ïn“‚ �G³Ê€ïA;�A�¢W&2V·Ò³å_!ÊyY•hLöV dD°\ít+ þ(Ú ,i€°¤B‘TÓJ1AǺj'`]1åÖž{µ”ó ÀxÕ¶€&+ýÛÈ…uÁ(›ý‚„´l§Â[ÏAûàÕ„šzŒÊ¡ ˜EË}¤«Þª«œ5ô§†;°SµR>IE~¤å ÒU“PHϽÿ@R(=˜iMë÷ô|‘4±Lët—zŸ.fèÙ´)p¹�l½áÎøÅ»TÊai6?X-»ƒCØ­ZûáK¢-¾¸’CE BK‰ÛÆ*,ÊèøtLšB' …-ÖO’ÿ4­‚Ž)°w�ÏpþráÄ™œû~ïj��”V?ö}¢æjoiÝôJ?Y Ìlêfƒ�; ÒJýBMÛkdmìPãnE„¼Å=/ –ˆÑr‡ 6ÿºP>›éÊvñäk®æþÍ’=)ƒŽ0ó‚1:A«YWœ`{&=¦)Äu~6mq_4拪Ÿ`NÛI£€ä)B¯3K¯PE�=gÄ'!ƃn{NV-ƒÕ˜­]iÔr,¸6ÜEqplwšj·‘¹y+ÝG9<°‹•ŽÕ}r†™Š3ƒFr,Š„9êEo© ÚÊï]u!Ø„Œ_!ÅïÒY~D¤~ŠCööà6›f"¸õãDö¾5~Ð,½§° ™&ñÚ·–<á3ºÂ÷ š¶ôwàk Ä®0#\FvªžQfü‚S`WõÕ*J!ÏWv—|Q,®I¿ßnÜðô¯C ©ä�«šL„=€#ŽKtäJ¨¤oŸÝù6À¿¼N%z²¼ÜJßëXY¯31Ñ[/Í«ô§æÛ�Þµ€ßVéÉ`pg�+Âê°¼ˆÄ(iÓ”O,f_xZ’£õ¼»I!–qkEd77 ÒjE’]¯Œ†—N%èYVùˆ2vX}ÿÜýk[)ciŽmª¯Õr`sé»ìZÈ_[‡�©ÑuÜB‹4Bzô™�µ÷^nCôQñP~ ¸ÀOÏÊDí€×ô¡uR·Ž´ ÐDéôáz Gs-éNÍ_4Õæ0ì·>Ð0Úk§¡$È«çU­-SÝ6  †-ã§ÆG‘–ÐQ¶­tk†cñ`ÂÝ’zh½pØÑwT ­óÀE¿jaʵj–¨°!e%;X‡x'�óK·üµâ"§°ü½¨�ˆ¥³j‰vZ�¹\Ì.Áž|mÏð(ä„ðžS5Yª7ÁX‚¹)=qc5 °òÓJýgÍûvå'V柨ýÜ®®hìFw¢ƒø¯Šß¯6Æ�bxÈß�š¡C<¦Òë;˜½oarÅ´]=¦À[e)?N1ª›0£Á7`U/;¹sf ]<1âü¦ÞT(_‹“í³ÝÜ�é²"‡>æw‚Ð[©´12á¯�Pô'=§[�0ÛD§hZé~aCÁ AQûð?{:ª×ä4t18ßùMÓDÏy¼ž tY 0—³¬÷âí+5ÁÏ«›¨ QÁÛëI¹ð² û/ßsã7V©áÝ Hñ/sI›‚›hŽ9ÌÂ|ÛVÿSžTÆgK†òÃD6½$_vd÷�r•_ÇxøµÅ„é·· нFu: Ș[äùV�Ï:ÒeغÊñT€A,FîȲ ËX�ý/?NÏ€GÛt¼Xþc›þy~Ž€î!/ˉ®Žî8¥hÍ(ìLµi_…¶¾oý…`kçù[´4~ÉÈ85‡ÇÁg�(@^à�àJ”v° “%–åõ Q“yägœ,?:0vç"±¬€à1–óG!¥÷Ê+¨V§D§ýuT‚q¥+´µ=Û[]øŒÊÔ¿§ybçÙOoÔQ æO+ŸÃ–ž®=ߌ=ÙÕ�kز2vm¹­?ökBff»O«-½Ü.�'…õ%¬n…W†òÿŠ$6ÄÀ=ŽªlÒïÌ;g%c5¡3?QŽ­4õ\•Œšñ†[äm»¥¾uzÅ�2„k¾_ˆ‚º¸S©ïg®\'×%޶%s¦ÜÒ×Äà:¼ßÎô``ßœ)Û”¦ÌÑ£|GD–¶NŽ8„h¾Jõ–Ñv3ÀNŽièe#, 8æ·¾äEî{›Oß*÷Œ]å ? 2• N;ã1õ¿^Qþq‹tdÓ_‹C‡3C7Ãõ`oÃü�>Åÿ‹ð~Œ®‰ÖÝeÛ¶mÛ¶mÛ¶mÛ¶mÛ~–m{õ{N}~ìœÎ®d&õ£î\5S•QeúëHP!|'éÏ—Éì¬a­%+úpμB«çýâìʨFìFÜH=l¡,¬!šÌ ¶!¸õk¼ð"šµrÍY.á>#‡ãWa¦�뎠XtfòáÈoÕ úðŽÿ²K‡?L¥0IÌo G +eéÔÄŒptˆã¡ZÀ½—œ9¡ÒaÜ©þ%·èë"õái�È»³«ØÎ?º4xNÚRL¯ïúތծÿSMþLý€Ge©¾¾[“‘¯»“»'ªö«ö¤ÐŸSÌr©¶<~¹Cb4ë"PzCªÒßêÚçÕ€ôewŠø’þþë>E5uáÐvÓysçŒ_ ݰ ûÐ;¯�åþ—EVÕ!×MÉk�Ðem¤,¤�(hH&œC•TRœí„<&ûr¨Žbš±°ö}{D@Š¢áñ:ˆiTMT‰°DÃcÖÑÏ)Wñp¯=cÞB'�7¦Á„üè�ñø“òÞ;Å Ùl]ý;„Â.ù¶ävƒ^ó!xEÌ!؃ÐÙ�ßœá¤1&k-°L´"ˆGÊûŠñÕ}ÿGÜ|ÎiÙLÆ r¡‰˜°‹ë‰I}ßžnl‘DNúËï�?tPïn<Ý5üßå„hO!‚ÈõqsÔÆ¯à3[.“ÃÜÜhØaC·v¿ ¿P�‡=@ëã8]§âvi\–éH}+nwnOÝ<� >1á ÙoùzUËЩxXW‡7VXýÕâ%¬›Á±iÔõ—³q¿|ìÍøù§€wÊð‘\ñ·RP6د6î"S|]}‘$ʯƒÜÁ Û.õ½žšf,CT“@ á› šÑ´½.Õ‹Š,È'0‡30I,£³Û2üÇ|±ò¼æcÑÖV¡,!ÅyÃ:z�œµM�½(üaXÂ&ü³î ŒA’uhC¤þWC5� ZàúfË/§ÐrýËbW•ÎR¤.–�Ÿ¶óc÷3Á€ÎÚ™} ]»„òVeƒKvÐ a·uœ¥Fµö.ÙôKvªŽâ;{¾ÜЭh#/Üào5Qî^8×P,7zå«Fb¨ík5@=l�ž¸òÍ’g ï$™�”#k�ÚË«Ý/¼bLøÉH‰4¹_ÓØ%N.*6î"Æ”s²â3·6óÜÃ-Ø#4—¸ƒnÚŽq(Z´ü–"62%"ÆaÒ··f+‡êz<ÃÎgJÆ¡UƒÇ¸ŒX…•BMieÜ­õáè¿JË�=-snQ¤þ›B¼ë}ÂÈ%¨¿`·8R5ªj…%Æ]¡”Ê ÑòÈf¨á€¶åa®ðªE’¦ÝçòfýE}"y£ 2¤Y"» ÝZ‹RÔ'GciM~�Q6ïÊ ¦H—�7 åˆ["檎›Mfèi™Ú½Ž:ôØM(øOì~›|]Š/¡ƒg€t©3CÑ^¶U  tŽNË©zÀ4>gbª½ ëNdâÌ#>‹J—XD‚�;S¹lÃ+ªÐÀü£T^RT×Þ¤ëH®$áO hѱ¼iË× ŠÃQ9fœÁ4–qA,3Avy¤îê›Øº}Ò‚ÍhOÒn ù›m‘‘2\š(~4{@ zdÊøÛ_·¿Žß@”y«§Q¦;v”q5×k~iAøè‚–"N�å…!®ïŸƒìÝ{ªÙžRÁG%,xÝ…Ï£íõ®Õ%¯€2ÿ#Ó°œ)•gÿþ.·8Rì!.>×è+¿¨)Š7©7 s¦ÝNÿ—r¹vOR\™iL nu;Ü�Q‚¸Ë |—òW¿Êë$·ÉÃçϰø^XŽç¹ð᪩-„uÿµüö*U0X¡,éPnÄaà5’`Lú°s>éLž�^fýmåLN®Ò}¹µÌú{ÉÏ`·BÍ�Í� ­äÇ™‡ ö404õã/mU[©¹µÕ)k>…â�HÁp³ ž��´Ü÷›òë:4�-Ià8×>3OHGƒ+¸ÿó\¥w—ïÙüNÃýêȇ*ã¹XqÙUF‰q@ÅÆ¢Sˇ‹?’tþ$ú°²%7š€,|d÷£.ª½�vPäà ø Q4<æØ”ì%�…Õ 2O€pçP?|{öÄ��§Öœ X‘ «=hû2‡1Íñ¾P¸Œ+Øg+yLÞkíYý‰÷ªüžÑ|º¾@Š �YQìöbÂà…AŠghÞ5óû(MûËìóDëú© ŽID-œ€¸bB•V.e„H̱w¿t>s‡nŽJ®Ïàô¿^…ÃÒQ5—ÖN¨ÁI³ÒÔ½¬�M?� ôèk eæ M]�VC¨{DéÂw¿V9[X„ñâ¾­§ªŠ‡lij˜ ‰¼Æñ±pM|S¦Èýñ™¨Ã4lV¿s,ïj - sj·‚¦ÆÝÌ�E_TÞ¶sýЊ)£k<θ‚öƒÊÚ–ÔïVßÈ£H¶Ü,F•§YG­ ¥cùªF;ø‚+¸™0vÄÓñ2±Wp¦ÑjùB©Œ�6Nª–¥CU nã8/ˆÎ³A”9–}ÑZkn~V!PÀE…æùø�V«øþU2A×N"�ÑüÁ·Ü!“e™Q’݄ƌ|ËÿlT•EtÏ2Öy¢07ý�ÓXAþfñŠè„%¿Y‚ò£UÁö-ô ÇŽ sÐ`Ý®ÕÆD"< ø>ÎØIj½ ¹!Ÿ…§)hR_u íQF»ý~õzÙùNŠ­’¼üªFÄ®PÝaâa/ahïDyHÌë™L˜¶j‹vN‰«.ºWôãrš—õ 8f]Êé4|ø@T°…þl_…Obm;¼–2|‰è¶,7O°Ñ ºž\SýÛEB Ù›€ó~xÔ ­¯ª=ÎJR!¸R¡ôÆgS£Ù˜}"Ì ­ÄšrìÈLÇ+à�¬³í‚§�`ÝóKƒ‘Î9t‘~18ºZ:>Âïú²ÚaO( a9ÍAT8ºkþ(Ÿ]aá sÒ›èqvŸ©­5ôæƒV¿,ž¦kƒLŽ�R¬–Ý’+fèe® &.8ƒ–W (Ï–¶€Ç̵$Š;•i ˜ òÑÅs˜†X®s<Ä“ˆäk×Cþ4>á/ ^tç™ãWöwäìn¬‘f~ÿMcìM㚀É‘ìSµøÓ„á›áO+ìù¦1–Èóº¢KQ]…¿˜ZóФÅÂÐ0œÙ¾%0²}ê0 ÐgÕÏLq\-I92Ö�Ä›rËÏßÝAòT˜?Ã2±vÐÕÍ,‘yàÍíòxæJ Mµ)Ì…Xá®,•]M�Ÿd9ô±¸ƒµ´vý-=ï뎧ìo}[*ä‹ü Î{ë–”¢4Qê²Li[>DU²ý,)|Ž{ ÿqdac=™$ÞŒ´å¡™UiókD°]#õÆ %8¦8K›¬3Û(¦ÍYuô9#&rzÈå³>Ÿ[¶‘9÷M_—·‘Ü2+l7nÂÚÑùª�ܺò OqŒ V+sc¢WÆu½{eig¿ˆFSÿQÁi‡£v({ôõ5„”Vf§®uîìäÚ5í8Îú4‚ï@üV¶&�Ò?A­Š]ÏØémÔa IUA»�-UJ<͈ç�ì_†fžÈËÛ3Nƒ}'ˆK¥Æñ¨ÄÁG¸›�)$‡� %óœ´á¡¬ÝQÏnnää œF!s¢r@Å�»¡óÉ"ÿj¢m&{©Ô…OA!¼¹”)Ü=ÕJµ+%0~â¸Eî0; ÛÉ¥±J¸¢c¢ÐÈüä%“_IW­�Æ!§üŒú®¢«L;àǮõæ¥%š¡Z{º×ë�œcë׆טÍä¹…°Ë('ï[ÏQaÛŒ„Š®î'4Ù‚Gr&© æÃŸÈ�˜á¯R-ÞB‰¹Ú{ÒÁÕ‚ìË•dž“È,V‘ñ¯®Q}�3‡ª®j YœG«tæäS`(ÊIbHä÷šÓ 7Ä¡ ‡7KèÕÞý¥'5„c¯OžIÀjÇŒŠ‰Ñ–õ/ǾÑôë \Ú¡Y+ËA>µR£µ§Ï±&Äçï�.�y³¾»T Ç`J"‘ÉÁ‡¾(ÿÑ‘�†¿œÿÄ=º]¦¿+¥‹u§„5Ç ÆedtÍßɪËÍ+„²˜~Mw”Z®wòÐsZÕÎ`6f3EH”<½ìiØ…oXXÝ…²ÉHÞèÜÎÍ»tGPl¤ªIOkšô‡z;ͼÏŽ³ú×n™�›¼ÀÂAe'z`—A‹(•ð.×/â¤$Ëi7³D¸ ï¶´£Äņ‚öôˆ 覙H¨�‚ããõ¬Òv“ Oùö{ql¢6õdnu9˜K5bj@yNÝ(6§ƒaØ3` ¤Ÿ²æÌJ‘Qþ Ò4ÑcIPŠ!ºAh{wZ§|ðNhÒ­õÒ¤óœRmdѹ�È'«j™žc*Éi­6¿Ç…}CA¤.ÆÎ´6^צVã &’ûïrÖ3]r»FéBÏ£Ù̓٠‰Ýàò›ü¤p&"2‚J`6½<ÉÉÝC1xæ+rZ¦ Þ�à}Y0§òrlYsó÷âÒeuž®#FM7)<"UKân_åë©íã ®Z±[žùXŠ@Ø Ó° _ص:�A.ËéùÛA{;5{—¤ 4áÆ"Ó«üu0|j�YwŒÐ0U°D!Z–ŽO‰ Jzp+«J#—up,wfÖæ�³0é[%¦ƒGTJy+Ë×(Kà²ÑæL^#áQêôŽæ&ux@µAÒØÍ`MÇ-­ÙŽ›¡£ÎÉ9Ö`EϪùSøû»Z7"¸'W†ep !䨇�,Õä>ÓŒžÈÓ8Cµ©<¤ÛÞŒilð2º?$çÉ.ÚÅ͘„e¢ŽCäü9Ó£Äû-;l>@Jøû´"®] H¤´ø¸×Þ·Û¤ž‘ÃSL\V�p‡²ºÀíŠä± %Á¢õY¾á”¢ÿâög@óî–ßkP¨®=Ÿ©÷o—uNX¸#ǧ›†,oúž×ñ'Ë+µu.è… v:¢‘þZ™Ƀ4O Z…ÈD¥ûXC„xÿóÒW·üþŠjÙ”Ùò¯OZ@Ñnþ�Dà*b÷8±a_øYÿõ[‡ãà¥Xú¹öN_¹ß<´̇.àM‘Æ+hTeqú–ÜÁŒœ¼²‰¹MUˆ3ŠpØWû ÆÊ>ËÏãJB¸YÇ�#o5™dÄáT¹}óžsmwûIËS“Ò”ˆ°4$/¸²Üõáħ‰°aÒQ8/ÂNÑí7‘)’–‡}K¦‚$‡�›_ïH²¦åFEÉí�‡üï�ÿ+97N ô=ÏŽuVK°,Ǫ_k�¼Áaâ«‹inJiÖ…@�e·:ê÷5U mÞ $ž–àFÿ•fÐMÓ@Ì^s†AÓâuàþJ!þƒÏ4ÕÆY8À%×›ìP[‡HVlO$�ñǡô’ãªS›ºÖ‰¾^›h�ƒD~Ï�°Ë­¾P‹�tú£Ïú„$ð±êŒ[eá>³¼ì»ý«RØE• 2ÆÐü£Ïy6”¿+á aè½ZņïS¥óÐZjÝ çïËn·.ò’Ïò·ojý‚XJíI‚ðñ™(YX_ÛVÉ© m¼lèLy^8q¬q&ª$!ÑžÉÀ@X}Éœ²uÄZÂ\v,štãq||!oCè~[yÇ9·�™ UpGÏkY,øÕ¢”zð:ŸÐÞ}g˜˜{êMd£4?Äìœæ;5eæƒ8L†õçy”Ëm™×ŒÇ¦†ã0Ä ùÏ‚ÔzX�N'3†÷³—{«õµ°Î°£ßƒ˜£,)ƒ¾˜D‰0š‰L/¹ëº¬­ˆcÞ9ô%G:hR¥{P—¨ä­®B+L×± Y¢Gs* ¢9v¤ng½‘QP JµçLå †|f†�©,ýžëÈóºÎà5³6µë!9²�¯¦üÏá›Ê ’²±)Ó¸õÏ‘÷÷±àbñm±¦mn3+›¦0[z©>0úNös–â÷[ 8Ê¢=yÎøê‘4:ßY—Kéã0Wã¨Üc®rÌEÛ±Û^n ÝêÉ@3 › à$bzăütÄI�^”ð9ù†�¸¥ê-¦šÁEïÞß-‰_ý*®gM’!jO{}=�À–b¼uŒwÂÈRÛ*ðØ$æ• ·ÂS¬7/ù†/¼Õ‚1”Ë?Xã­‘‰Ìïj]0@è 2mW(3ú®g•@X޳’ R=¦ 3ñöº¯ôCʘ|wCX‚·`üw‚ÎéÂí£§:š7 Œ)´ÝPäKtæ‡ë÷a–u(/bÑÉèÔŸUcTðFäBžž†ŸbôÇòç0µ[4N$9š" v91¥bw#A7vÍaÿKÞ)!ÃØ÷­1z °„Uÿù©a‡Û‰Àò‘ußeWu…”‡UÞ¿°�'h„ì½)>MutmkÆr¶)! ÀÝFõ8iž-¾%|ß®b,Ǻk×Xæ"=O0ÿýàèÜÄHrï§í(6Æ”r¾æŠ3ÄZ³¦àÀWZtæ�*–ƒšÈÝÆ$ø. wˆÏ5/iÌ9Áà\2k(ÄÅBg¤Õk�Ìë�¹Ï|¤S_”ac”XË•Ö@Ĥ­� a"6ÉSO0ªÝ¶ŒéëûëkiÕ¯í¡ñއòXÕÊÇg�:ˆ^@Ñ)$˜L©�Æ%æKµaEŸˆ×ŸÀâ2°£ïÜü ø1冷•xzI<õ—Êë2…ìSëh †|ž±å|2ô@îLYMÂÑ$F YwQù%ƒ�ÂHÔT…'=м�7rþ’�-sl‡¤c7 3«÷4/ø¢ïØ�1¾üNà£�;KÿÉi0[yžïg0„÷ßÀÒMgØsj¢³ËJ�®�|Á”{IÊá¢ÆHI#<}zÉ£!—à#j“[ÁÒu;]Yùæ©Á5€¡¡�mdgµˆŒN—††Ý-ïëG_[*¥ . 2o|Ó¨ÁøXÞÔoDùÍ­3žèåô?wJªûÈk² ào–=”Èí«` ¶Æå¼†äȶëPmbyg6Á˜¤@p<4±7Å»!CÞn£voH)7þ&KªbLk±í�v KšÔn#H¤÷èê5‰ ¬2ÓíŒÀÑE6œðŠun‘H®º£¸ÿ½F‘V}‡¨¢EcZQÃ/#i³AÑkŽÐ½A ßð…80¹KÍpÜÉD$ò÷@{ˆáP”‘¥…(úÛ; vríÀ%d•L6³æÅœ¨å¹Äøs¯ׯ´ê c‰8›Ÿ¹­þ=Nb°’Ð쨮R½¿ {°|ö¼¬ªJ]H®!îB¦NðØ"Œ¤ B¢6‚sکĸFSr²6è9vÒö«ýFÛùߊ";”šÔ{¦¹’nñfVB†ìª zsC@‘�êÏ;Š•·fmŠ¡žT¶h¾ëí¦8[d[o³Õæ–ó%ñ¸´p¹¼´ûôÓï¿Â�­FoŒ0 ¢;ŽW¼ìõZó*÷{_r…ø*,‡†b›w‘iX ">ó ;¬A6— ÁÉ&ˆ=§&ù›>¸ªrþ2ª É.2ü5©v3$Æ^í‘¿„ˆv|ýé Îhrù;c࣡�ÅvŠmÍ^£�ÿd‹á’Õ¶¦cyÉ Òźî{‚ðmRQ ºÔ_°“G²ä‘kbƒ� #*gZ¬KBWp;~¾¹” >!‰ÿ±S‹,�¼÷ƒî䮉‡X†–W³t4Leû¢®éþKªX¬5Ò¦YûX‰ >Àž´å°U“9#ó墭3'žò;�(ùiZá:ðbÞ 6›öJF¶Œ˜¶qv!É'_~¾/d‘¹Zì§ßR¹¤Y.=%»ØU­.”¤|"öÒéx¡ù SE8�Õ1̓|Q•ö,ù@ž3hcÑQúhBù¢ÒÔT´£­‡�N€Iv*»´ÐÇÌ ÒkÅ(¶òƒ²¾³&Mä^Ø \åÔUÑôºH{SVü·…`­Ý.Bô¸½ÈY'Tc~°¥!¾ïmઉ¬E7m)ûÉäKSA&gréƼ·kç´Î´®*zÁ”• l˜²«æ“‹Ïªó1²2· ‚h’?Å<Ù%R¦Š¬Õ`b ›ª¹¼6D´e´5Ý`ùœ—xî›õ/æ0sýñ#¹;¼¶_§�4IïÏÇ…œœt,lÒ!¾‹�˜÷uÐÁÛØqÙð]ùpo ý÷8êw±¢äBÏZ½‰N£'4*”�K;µ(Ào·„Ò{„4¢åE§-¿å~HAr�Ð#cÿÑ�I>/w6bÁ—fŠsô›Ø±suúÈ ø”ÝNÝjB#¾|wh¨â#ß¹ø…¯À¨Réj TŽÎˆÔx Ëþã€jMÁ”ÃI Ø+ì9;$“X"«ÃhêÀ6ÿ”y=l¤¬%}Ô=†?GÚȘ1p*± dѰsCôï×çë®Fßå¶øph 1à{1±*ÒÙÁ¿Ùj”:£k@i¨ßoµGОto7Ö ô5©{‘úI×ë¸ÎÝPÇBN%Ø>ØâÅ$c,Vin¤Kó~ÊιMÝmO#–Á²:°D®¾_ìèeÎ�É^60÷W \‘Áº‘« „Ù�_CN¸û;„~±Âï:@ò6¾a8*EÈ0òé³¢‡±ýš¹›—Ê�;`]B‘k‡û¹Ôëßf9fÒg"ŠŠ»T Ü€‚d©0Ô—cspÕ ÚÑŒ¿ K¥•æuÇ7f´yþ»« ˜RÿjÞÌ|Î=òEqÓUk‡@B3€@8Í›YÚFÚú‘�íz¢ç§Ë¸v”´m™ödš UÚË ™½ïïAŸAõX‘ô�gÇÏ àƒÞs¸»’ÍöÀ…‰GCIdý#Êð‡QÅõˆ�’äž áÀ…úVçWÐl¥p#¨ÖçÒ¸èçôH'ÓO©m¹àh·ïÔ Œ¤ò¸Ýüeœ¯®s:U°½в íyúÌ ‘¾=˜SÖö¬; »±<^–{‡3$ù žúdªBHÇóyi‘ˆ¶$õ¶D|0Dá„#‘Êû` gÑ•Vö8¤‰÷_Ú`d½Fb$§þû-ýžÌö�÷Ý4 ßsñžëò�Ô•—ø'(8ìÁ£,ÃlkRì=ù1Ó¨8ym`îx£Ä )dÍò¾L¯‡Êbšw7+�Ÿ†½Ð}0d7Dã÷í<}ÞC%™;ˆÐ�º£^÷�oêK^;Wr·ØøÖ�ÏØéVT[Š Ôu>Î:­iùUô2-jæL�ݶ Æ S8Ö,\>…+ö #=›¡–€'F«(ü&õ¨úªä÷ñ̯/½b�Ÿ·"Ë‚ïÓÑzÐL²òZ.bÿN§“•Ñt‡wÌ·8BÍüaî³Øâ‡bcû<Ää·9<¼û}åK÷Ä XàAž«ö�挈§Ï Á·¨vŠïŠXíÚÙdýlÐnáWû�…Åj½jW�s™Àêü^½Žö”{š¾÷Øvüí1n³esÉý_¶–E@>�غM´˜¾ÑÔ»šÖÅe49Q]˺à[çAq†[ÝŸHÝ�&Õñ˜³ÿZ\1¦dvNË Öø©ûX. ©pÕÝ¿"›ÁäãNjmõ(Åè?öîÐH³KÑÑÛn‡XôéƒXÄ·^Y¸i±³ @î¬ÿz>I‚!•êÜZn}›Ø’@¯êpBmÝ‹·¼(k|vEõØÍàç&µ�9¦`Ç4©’ÂáÑa!Õ¶^£rùÅÚLUG„š „ÅLc*¾¢Þ¢ÏÕ”ôí êØ«nÈm+sæß¤áàQÀÞBDRqXl—¨y‹gîã‡Ó~&a3_í¤²'¨€¬( r BÿÕòx]ÅozØ?‚‘CCo±g�G¼À=û©N‘c½÷Ÿ¦0Â{·kÆoØ!n¯óUÌ,¼PÈgäNvkÌ Àºþ­Ò7åŒíÔ¨Y^Õ`h8Ž”Yp”6/R�LJ@ÝŠ§ž©FYhÍËO/€(+«Çoç `0ª¿üKõϳ�Y�_`*4QD Žà||_XsbêSSZ_a¹PMõÏ šy+Ó=mÕ¯G.5óVíÙ 7FËs»P¹:~+ըɝ¬9mÏ"eŸ ­†z™úß@�ºPÉÛ/rÊpý§«c¤Wu/£Ñ×c{ ÒâáÆïþ¨ ÉÐá½÷Ÿgˆ±ºN‘졨&'rªKÂèšÏÒ0¦¹P#T¶ë ]}ñᨵnŠ¿Ësûîlr,žf¢ÝŸš%ͧIçéÍÛàûà«åfnûŸ§bŽ„Ýº:€£…•cB†yx ɑúõøÖG:‹ƒpªA9C¼Õ'ÁPkä.õçk÷ú)Äî'0…Nò9ö)Z ~Q³Èú’Uó³×ÁéXê)„Y7�ý¤jeŒšÖÏ1ÈŸÿ†×xMKÔÐ�ÿüðÒ²õˆmKUÜ.Ø+ÂL½£`,üAÞÛ ·7ì,bíºNÌdíSéÜöoÄ”y™lbÌõT»f¡z±%�«�åE_tÌZh¿óZŸ�rÙ±7‡JßÉ�ÅÓ4‘͵Îó¨gÞ^¹Øå÷„Θtê´èÓgc¾¦OªñVÞ~‰+©/âÌó†'§†�Gâviäêú�õº¿l&Zeè≽wï:ów´§{Ê'—3»<¸[›O^Î/1ÈOO„â��Káèxig%tnçc¡�ꘒ:Ÿ£$«ñˆ¿°ûÃKr BÄuC†àóCµv_Ðp;ÓÛÖd¤²Ä…´_16®=¡eiaAfmÆ:-êØþ �ʬֲf½Ÿõêl“OíBm¢üöÓôNw8lø.ƈbP¡ær,=+…ÙÓ^A åùùåx…ST%‹+c„~½ˆmê¡Üïqû¿æÏí˜_¸#5� 0B¸Çš«^tŒtnð¥Õ¹­¤_®TH®€_?ªäÛoÝà¿òñÓoç6V6I|9†ä …=ód�7„­Êà ÈX\ª–»ÛE€À…1ógçŽhµb…îUûÌ#gU\™h+›« ´Õ{¤ï“ݮե§FÎÖ{©®WÅî>¾?YW+ºÎ¾>(z1O»ôëe–>oWfIbòD+X­ë;êïÄW(ÕSãkn·ð½$Ït9_î®EŒÍføªo/tŽÎ¯‘¾A�îþÙN²€.Žñq‹?Û*f¨ݰQÓ�oƒà7à•éN'3bBT�îe÷7 WVZ˘TÒ+@”44ï{_0¿yáál;öˆLcQÙæmËFeá°.w¬6ª™XŽùfŒ¡ðÐM¶G…¿0!Gæî«º^œûnЪw3ó-)€�Y·,2�À×L‹�!V™ÈðÿS’^”2n³/Àj£»-ââ%Ï­›P^=ª�æ®éH.A?›Ø½Áàe仓tW—œAýgL@ô>ùö]ª‰䈆è|ÃÙ~â+«ÑªSjæû™ ™Ï¤]ƒ´«È¼˜ò+üÛÍ¥‘»��Õ»À¨Ï?‹AØ„P©±·‹0 mFt-ÊXŒ�T¬WâPLÐ6"GÌÑboå™M'XÍ>í² Øž…*34kÌ-ûଠ_ŸˆÜ×ê­ï‚Ø®¡{.|Àz¸2Îî|ñ¥˜®/Â’å+ ¼­Ì/ZH—É)ïB]—�GlEÏÉrŒ¿�ߣ˜q§«tª–��†Z‹Óf×HէwZ…ã–1 @_Xó‚èöàö<À Cx=®%Œž¾tzSŠÛ+!‚\n�·%ê&Cƒ¹îýÈdM§y6uRúïHoœŒêûWòœc[ë[ Ê-,7^­­ˆ›8ììêQdy²ZH”ËÚpÒ@ï°©åæó„F†Õ ?{|å¹y°<¼ÍÒ‘†ƒÃS†™³{Ÿàoƒ9Rýkçø 4E þ¢WÁ¦b*ÓÍ} vçÅÃ{îŸÑ;ãÏ2ìó`înSÖ¶sÆBadÔ-\ ¤�“Uí�¸4 ߦ‘\L46ÒÊæÎýÖÂÖ©…ðÁ=|�ê*ÉÒ<ܬ«Ò—¸þ�=m Ø.EËHUá±Ôü“‹Yœ+*œž|‰D>Y$:]°Ù �ùˆKü3¯›NêÙ{Q¢ÿ`oZ® ~ó™�Ÿ-¦ÒAZ˜—q™×P“¿Ä ûuxÁÇèòwæ¶0+Æ)ÚK>K÷í/Rñƒå¾0†Ù·�W¥©`¼›pîï°'0~y¤]§û“�ý5üQ�ÇÆ‹W†È’G¯cîôˆ×ƒÊ¯ ¨Í¿ù”¿qÏfËj Pû6Ù—B–€�›ßÖk±Iü6¶ôiËïЗ<`Ûi®J%¬U> ïø"y0©&â4e~œ«è‡íêôÈG@ÐRB".3ýŒÊíý:0¢­õ£j7m€†Pr&Àëæ É3ŸÏª¯ƒ¤½L ftž‘|~*ŒÔ‚çÀr8¬i#)‡©ç¬{«ä#žÀ΢ž,cØZ‡Ga¸Ö ç¦<ðrú°’…ê]š›ÔròMÿ»±j¶-Ÿª/`ä´ó uå÷$‘¦;=.2jdìP ‹ˆ@´ …å>‹˜ „ð6fí^Ê¿ÈÓ—+ì­ôN6(GžÐ –k¯2é˜S<Á€“„ôÓ“HÜTßbÈéߚɺ  ¨‰1­P[¯#?rJ6¶&aV*Š”>:# õÆ9 e˦à½Àošéå ô*ä—A‹ì‘g¬úðÚzÚo*ÕS «Yf¡žXžáÍ éü€^²²é’”eè´¹~¼;\7ýKu@ÇåB÷iAôÍŠK¹G4P±Oº¹!˜2tù´�)­užu€ã4¬áóoÄb—s]‰(�õðþ1*±}'(Ü#³€‚´Ù«Ùnnìd&Hs‡Ê§XéÅ Þ»ýЂfƒ¿FÚg ˜ÒÇ_³+ö›¤É�8oÛKÛþQ–­“d‡rÅLRœ5¯U†‰Ø*O<Ûy\5û°ܲFøld`ZZ¯=+bóõäƒT*ÉÓ:“0@O_Ÿ‚=¡8úƒ‚9Sl§Hz´¶Ç~¨û+´|î›ØPGêD›k«…•˜deqCAe@Èý—l|£�ᤌ½êƒÎÌ-ûðÌ °·MKû1>áº%É\@¥ñòrã¿(G±~æÌUS~‰ë†óƒ¹úûIÉ–KÄÝš·O§r8[YA4WZ_Íh¦,Æ s4Ž‘D×ÃŽBuµ…bÏí1APŸ�œwîsL±zsC?gGSû"•Èx]d-ùÒÊ‚1�Yl2Öºb2ç±ad2Õkô9á÷¿¤IC–0šÑQ…gKT3ߓߠ8›£”} _0mŽÔú ï©>/�i¿³Ö õìÊL„ÕÖ9{RЕÈ´p}Ló¾8~n.˜Ùá22øÿÑfÝòÆ „yµ[~³ªo T9ðäª!+٪͔ëd¨õwª­ë>NΪZA©€&¤7…;œÑõ$ø¸�7Ê2c9�Í´”í\ȯW"C†Ç} %˜¶Ü!^°P‰ŸÓ,àÅøIÏ xN¬£(4š1¿È3Ïípo²HûóÜy#Ì®ó@k~ù-pµøe3ж?ÅsåÉýcsWÍÜe$ÑTÜ;©‘Þc¤+‡Få`XíDOÖ´DMÚ1H kz‡�ƒRbâ"JG/Ã6AÛT±þ'Üz€ã=ð€×䃃ç–>ªÂà_ø,ÿmn��u·òöÚS…Ç6ö1%¢T˜UWhWÞCƑͳÚßäO£ÏðiɈ>pnóÝuñÐe?µJ[}ð¼ßóù^{/èú…dwòO?Ãw«Ì_ïVØ;;sƒIg) ä/ ¾ j0>‚Ú±žŸÁ½-L;ßhA@iîÚ¾Ì*`]€1ÊéD”"åÇ1¡b¬”·z†‹»B¨õÝÍìZâ7Â{(Õ>9•]…ãäKy ã0¹¾ø›�¤+ÐÆÁ/…±¤!ZAþ փш†Ñ& B¼n’n{p äË!†0¾·½úŒf¤ß\nO˜ûë‘°QâSJŒŸfI’ äY°-{=ôUUG!óþ´òÍuQE-©�Y¤u ÞøªöšõÃìY,f ¿y A|°²?‰!ë8" Œ9ŒE/g-&o‹;JÔ&œg|ýùÀ7„9ÐÒ"R`i]×K¾[ÈÉï²ã–âcç~r9¬,1ÒúÏ 溦ߡý ŠÑ¡­5ó׸~4òÃcmè{NàÃâÜ!¸¢ÙD!(ê›/Dã . Âñí$£¬ÇZ�ä#MKëÓ‘Ä#úÎ/'‚´ÞC.JI=»Ž+?8¨ÒÔûOdªÇÄF¬*YgŽÓg‘ϤȯåFòm-b Èj×=ãþömñÒ¢=¾�ApE+®¨5QT ŸKeIT'í¶×0mœk “�°ü—:u”ïè‹¡Ùdƒüs6ƒ� ÐÉ#¸ Ù�é}}ÓÙ€µà,ŽRy„?™l6£^¸C°u"ùô4ºsr€ŠaîŸå�k< nà�Ë.6ÏG:¶dÐݱaL« x S>Þ,% ‘Õ:Ô“Í+ÅùŽóEcDâ�Ory€çZĨdÞT;2לbé{íÓÃì»2.óOöÜ"a'4=x•Ä?5„º{ K~ÄÞT*°»†˜Rècø?|®,s©B M­H߆gמì \R/q"Ò?œU¤êË÷eÞfå‘(6ÇÏø±qó�EÐ8û°Íí¿xÞCM²÷‘wÑœRÏK¥0)X�,í#7ªr¾­ý [̸ÄËt+ `ô³E%©|Bmð÷CZtxMЙ� êŒ�õz‡EŒ}ß+˜�Á÷·®ôn*@§ÈJwÛþ,H Yw/"±¦ ¦ƒP´¼gÿFÜc÷“}.d==¢#}Pˆß²e[¬+,%ëþh ¥9}ð NÖk|‡O-ìijx�È3H=h¤ð$¤´tÐn’²'a¾x“Æ>k ªÏÐ4öãCc’5¹\œ<¨ ­aó]:5rç»÷:ã*2^ê^TØ™ cGÎÀ%¿ŠDZtrÇâÜä¬eæÔŸn0ÆyGœÝ†jU¡µï‚ñ*|àÉ~Fœîf8r÷p¶q:^.ÑR)z è5’ÁÄíÌâxh<UýucÁ/IÇdûzˆéÀr§rdŸ°6�[Ÿªùbx½ÇW¨EŒ�êþìW¶sÚYkû‚›ÔºlPaöÅ„ ®—ã©®9p e?˜aNú!ÆÆWdð�6S¬æúýNW�Á&–û}A…Q7–ïÎY´+¹Rø�frê£Ãv- ¬l¾•pŸà0}6}šíid¯éÔ�Ë ÓzZÌ$ëØ;U4r�ŒÆ9| ó0~Äq•gØn?=\H”ÈÅÑh ¸Ù»�BáÆS0ÂVËÇï¡á¦6åa *¶R¦2ó…ÀÄõ;Ÿ°iY ÿݧ˹‡ïY)µÅN³û‰ ó•;^2Y .;CÛT!¤–›¤çlÍÕ}ìÂŽ+û>ò¹†ösJìÉá“¡2A×NKÑj²:ð¬˜Ïä†"ÿ%%ë¨ÉÝ:þ›£/Ëkš1_gî‹ýõ ô儸áÅ—Í õ ÀCc•9*"8&0‰±ƒ‚;n8ŒÙWÛ+b¢kkÈ‹Az‡ÏŠ-¶§€x¸òx8!T”paé8p®’nN¦=¬Š�¶ ½×à>œi1� „®©G¡³j唓J#ÑÙÍ38¾ó©¸ Òˆ¿QNzŽq�cÃb¼›+rb ôùsHØôƒÑ�’ð3vÚw˜Síllû ¹ðGº”M@bËÕ£ùn²ŽiÞ "3v(Õ'.bÿ‰@©äõëY «Ö Ù¼u]ÌŽ÷dlª�qcA Kíw¼Ú-¼Otm ¬¬Ñ\òi‰VÖìgþ¥ßzû=¾iìˆ=]èKŠô>ò{æô¦ÖMïˆê¨Q*ª ߦ§' EŸr&¥¯¶€¢·1R^ýÈï²æº§fèò¾0€.rfüÜü~D)5B±d ¦>^ŽU cö Œ ósöpÂi�ò·?$�¹D­¯G�Ôζ ó`Š˜u ò�9ƒÑ ª#ª^LŠœƒÊ.·¹Á¦ w¥êÐ=+,°ÙQ�“ä?6ãÏš �îîÈÜ7S5Š$o6íöƒ¢›v<qZòp˜¶G¦ ¡ÝÄ 9Í£óWCöâ’=E� ™Kˆ¬ÍX~¶ìxËûßSƒugŽÁé®]‡³º‰%vçZnz_�/2ß·”&)úb³˜Éi= �RFþ)²›ñqÒk`& ”¬úøHtƒ ˆzKiy†|#¨C sª‚‚|;Á0G[=¬ èŒÔÉ!€?§S,øÉUàã ®ÂF¦¤\Ù‰a>oãZ�_¤;þšö¯ž‹n”±MÖ­'ÜòENÔ´:²ß;è×Àh¬Ìáâþ¹²m�}ÿóÅ^W¸Æ w�tLð7wÀ Œéy»•šŽ–~ª7‰Ó£§LÌMŽ8à5ùjs78.�%âH›lÜ¡#®)¨½¾¦7š¦]£@î D7t‹àan8øÖB@ˆ{/ÀokÒýh 72“‹Ö=Š3î£þýÈ·SgWÉʶ«N!SAñ°[ÿ™`T‘”Ëf>lÖiü•9 Òò ­36&Æ/ ÍÌ$î’àbz�î”<ÈÇÂAFs@5›PåçmœH±?àx=øgyˆDŠÆÛÙ¼�7µwÆY‹ ¦Y#MÿQ ¼ìêÊLÓÈ D�qØ4½�…›µ­º>ˆ”¡®îžÓ¾J·}ÔmW;{nX4Ç0©è‹™QqK9 �¿òƒ)Ò}1£'jŠrxT¤ É~¶€Í\”°·˜Œô¡d:õJ3xa‰¡÷ E‘ˆAß/õq•®ŽŽü/ »[N¼]Er.S>âZ±@¯²åò˜ át7W]‘G9·o4Ð:á;ÖVªæDú­×N“tŽgÖËì:ª �]x€€\ïdŽŽH1¨”Œëœª£m½Eî9.W3^�".Z™Âö#D‘j-zOÿI›ÀçL|æ®xñFJÑ2ÀºÉȲŠÔCï­•SIpÑÀúbö^0¸x#ƒnnR%@Ë£×玘+öÂ傊ÙãØÝ 9쀈l±´É­žÒ®fÆû'äøý6ôª¯jå™)*Ò4©V9<Ò"å •”ƒ¤3bÀËœÜkëÚèøß#Ú]Ìæo*>L²oEG•“dÕ¡t„î�sV–wøÆèñTÖOüòŸQxÁ3ýkFi¤²™n¨jÙRÆè½Ìp¦…á¤}ÆKe×4öø‚¥œÓWàk({™&„Ùö~8 çôH(¼¦|0 9K;üEµœœ0ƒ â›×óÈ2V¼h'˜=žúúu[’š^¬h!˜µÞ�—'¾o‹°dz3ô3(¸*õPhÀw[q냳å¶�áæáÐoû‹‰Ìj§Wô¹æ®4fßt(…µŠ¥gÊ2–qVÅgÁ[õç åM’Á¼gæZØ«H‹´ºÑ”òt«Ÿ!†C�ìÞ¿ÐñGRÕo¨n®¶ÛÓݬKœ‚ά4)vxl å7¤^ž3ܪùE¿ý`wcFcÒá¢îiý:]VË­Ô™Näå¬OéD2r¾Œ%t¼Ë±ÖByŸÖë”møW°•Ë{<À¸ûöí á�ÊÏå4i(>*£W�}ŵ¶g—œR‹RbÙ3 ’¥1"Så:ßP&oµ‘¡q…a«ñC““"ÂqÀps±½eÏq¹ÕŸ=›�áét_Ÿ¹Øƒt-nAXCi³•(f:ïUÏ”AXƒÇÒ™Rè™ßEÚÅ<ïùeQ0`ãÒ6³!‰tŸ.ÐóÓ[Ä$¡Àâõ¢>†�•¨_Ü…& I#�º’#2;¾7åÀË>àÎp0ô�Oµiu”·ReF©Iq(ÄØ›$rµ!Aí5�áþKë3\¢D{K¯šórÉ0F8:Xž®^¿ÀÓœâ„ú…T¦ÞÒd>¿:³ì÷n„½7nx Í·S¥©üÇ'Ï9«T °VÛÊØÓ²«~˜EwÈ6 à»6…1l/h Ûéï᩺�?y:¢è“iÎåáÿúWx$•þ.Z sÙ�ÕŠIÿð?n¬e .è¿eÃ¦Ž¾UæxZ)XŠ0aYí÷XTÓt¶¯Éì>hÚÌÿ!�2 dicו¼XM¡¶«,žÁ º®¸*XÙ³¹bÊÐKb¦É˜pK^ˬTzVáJ8·¼ÈØÀ6©šhaÂ^Ðô›þ¢ýCf3Ù=¦¶Öf·ÊRµÙº.^šás;QeÖ`ìÔV•×izãc(ìq:J–ˆ ÃåZ¥¤¦ìþ$í.òÍÇöXé9{ꕺ‡‹p6­ø“FÏuºÀ9~{w‰gx¯”z/‘ái— 1oÎ#޹Á8$U8øŽŸT;ƒ�ÚåV -©‹Ìâ9ÅÓŒ”תvññã´¾«®½+£Á@ß3µ=Za|S“µ¹¤i^àN[^ .WÃqT¹ª“�› QñÕZ+“Ýoa)ÐÃî\v5*ÇyŠ÷ÝÝoR&žœõ—ÒêRR;<ª©¬R5=ó¿gxéH‡{)Rûh=!.îé4GóÂÔHSó¥ÙÏCwåýÞº²Í¸xÞ”�LN8î_›Àžá5XYéÃFn+ÚLÝSݯ~ßûŒ”†¹„LŠi¬Ì# !Ê:Wâ"˜ª�!`ÿQ[G[�US—$ÍFèõ¨‚{°êeà²GraÄñ^·X»{ ïEPâ—Þ%qðS-Σì5}=ë/ W�»—V Ü˜ûXæÁ�5±³ì�]”¤ˆÔ<™ÚLuŠ��‹©ùsXtÙK{ì6 ˆ,Ì ºÂE“¾¤ô*u°Ú-õt éÝçÂÿ¥¯yKõB=ËY¸rHd5#R"ÉìlœMÐKÕÙq­=lo4 ¬œê'Þ|J>´�(Cà +¹ôk.ó\ñšçÐýÀ¥|0»D¢ìŠÆ›-âÀ[IÇ~Žˆ"4φjšÞÕÜ·ÿÓ˜ï‹g¿ ã]o3ö)÷H–~R=†v,ÒœëVÈprȪš¡«EMÓ;K{gÚÔ`UÈ"bw‚E”ñRÇñ8çtêÚW“Çê:eªl÷Bò¼QÔÏMå°ðÅÙñPø«ên.ô9¥°Œ|\&ãòÞÉA‹ÖY²žÐÓ½ þ⦿†Gè?L|¼¨8ìŤJ¢O+Xæo0˜÷GÓU¸5›t}ÆÉËò³Ài©àŸtõÛ#$´uÓñLê{væ�ߺ0ò�/‚ßÖ.t`gQîëÜ �ÒÃè)'±ŠM~äñ0Hdî=›Ç¨—V÷÷]‚¾y3Ìša£ÕW6ãsøl¤[)3p&Š˜ÅÀcPšz#¼Väv³5Úã¬Þ³Fy ð³ìy͸Éöç!Ï iQÈšv|©'��î‚�­R­�èvrö†Ì|ê-‹M’½‡(ò@E¶�½wb|8 “߇A{­Ì Ê8Gè×> ¿Öùj#æ›Ïe+MðP$h¸>ÝN+G xì©êf6E°:å%gÉ¿œ­9š*1+¶Ë)u¦¥´lú¸ßƶr±âWŒ€ʯ­Zñî®%ªÛ³ÅR¶Û¢¨VWƒ²×úÊ,Y'’0^¢Ìì´îm^KúlÃYNMçä:ãªÊ¾+¥¬ýnÝúHPb�ÖAË,ë6‡í4²}Ow2Ú›cð[¾±¦h#Žõ¬6d“Í?v`0ëT¨¢ïÑ…ý&!`»ÒÜñ­"wñï951S:–XmY�Qù;èLeLŽéBEx¼ÜéˆÓÊvy1 Ê~‰AûË�ñ®ª+~ƒBk|Ž­×{ß+æß€êúγ“ •±ÄL%ÉdƒP™J·°1¸‡y3\Áô¾;ëxº­jC<éͶ_AЄÕDUá,DOä3¼oOȃ#~¾¤]Ëž˜˜×A L”%°bÌ“|Mùƒà MÜ]û«ƒƒ“ÍÀèV(~~eUGŒPÏòí´/¼Ð/$r„ãá”ØRçÆU 2 11ñ®%6øxŽÉ2°}–ÖÂNm™œ/·�±Âxgu�’8„œŒðÀ……�Àâ|�þ%)ϼð0¥í€4?Œé2ŰҚé//K <®á{σђõ·ŠHDrr'×r–ŒNohêÙW×üT/uz%¥÷†AÕî?áêRœFþHŸå¢…k‘g¤mYבš¨µ7sÒøxbKlû•*šÐ ¦¾ oªŽä6)N¶ fï3Ò.ÚÕP. Xñ_ ž„ñ¹„$�Çæ¥žQ“ËrÀʲL¿Hïêio{¢º6šáµ“ím„9R n±èÑ C’‡ æÿ[<�;OMâŽ-š!`á2¢n¥Qœ*s¸ÌÞ¿vû}LùP6L#¥?2ޝY.g ÛÃ/Zõ§!Öý±Ùô"ÑÃ.Î;L¥cy º,� >¤Ãâ³/¬êQ»±¡}˜¦–œ‹š Pê–� �„18âzQÄ „@TZC°PÛE‹‚ „�/�yer*ž×ÑáûÝË)› äé¦ÁžXS.U„\ÿìäD�oå£ÈúK) îâÉ™%@q>·Á^—Ȩ4k>³Ë¹F¡ÊõCk”q5< #6‹ñ@Õ�9õ`ªQ•Qß–b4•š¢…CÊáoq„Ìë¨ç³âW»ë,W£EËlFVoÓ¹3Û<V‡ÊO¢†ÉàcC¢š® ð^Ù H–¹$X=2“¢vÖžfhø”Úîöߨã,»l,t$†ѳáEØøö©â†Éìsój6Ž:~f¨�Þl)‹·Jñá; 'ºPë­ÄúÑ%º]ç²ë¿ý’ì¹#C�öÉœ €¥7QnÙLš«Â ðð´/ä9½CÛ¬·ôA½ðY…SË,�#åØì›ÎƆY0íxTʈO(a¢\> #˜œÍTôd›¯„ÙÑ2@¤·ŽPsà¾55ûvÔïÙ%9ÝBj_Á‡2w�^Æíƒ›#�R�Ë••ã…‘hÃëàêÓ2ö Ùk•ïm 19øKãwPÓ"Lôè£lßbø(G –ÐvVZd{ÉÚY¼¢©wxŠm/2ÎÙ7„] õüš¥,[S´ùxd*^-}%ò55’¶N".ôœì±1¥oè~1Ÿ@?¶fªF±»bòKÄ@-Œ8×±ÿFL°“Ê�ý[[»¾êÝ–D©y À–³J$f�¹â ü‘N‚pÚ�æ×YLñZÔrs¯Í¼ùñÒ�Ú¨jzñó @;¨èÉ‘ñZL•:£U‹ˆÖ219;^ã04‹Í�qê^ûâùGð¸4ZQd‚/Hšqˆ—s2“N›o+1ÉÜJ”ÏX�/d†éŒ@dWÞ±¬Ã(øÃ¿´Å³®/Ñ{40œÁÇoJåÀY6YÑ “¥gõæOÑ‘-c�íTèÁ!=¡YÅ*äP�•Õ: ½¶’áGoÈCâ“ŵå}Œù’ˆd´¶ŸÝUVÒæÀZ~Å»éT“ˆf••f5ÓÙ@ÉʲعX¶Y…44@õ­�"B �CµtèPèFºÕ65w7Û2Äð$HW·×Ax“„k•f’åÉæ–PÑ Ž"øØÀXúÛÏ#f °*®>WÑé&¡¾;7ãÄ^A3RÚHÞ í"[FNô ¹JÁ}Þ±ÆËé ìi<`_�V( Bf��WY”aLf‰^cž :®nêÞr-g8Ïþg®v@í~’“WæÓ¦|“ ¾§o¢i°³ª·³¼ëÞ60;Wø»AÓç*ø+ÅÖN“oÒü×íºW]�y,8}“t>¹2V³ªzn¿VS<9æ��®~àGñQÃHC÷p’ˆ�YÃj¸·ÛWUDä¾¥÷6w}Ë÷+áN½­‡óÙrIJÓ#ÔÞv*øø½¼;¬/ê�Æ2Ú¶“klâµÙ‹v‚=øãÐ2Ó$5˜Ì]^ ïcc ¶=]i? fe*§L¤®,Óã*_–#Ãôî®Â#¦Ñn�s‡r±.ÎGß? ¯ñLÀ±ò\«¨ñT!'Ö{7)€¼Ê3ìËd «'@ò Í>Á±+’Oz^Œ�óÊó£Yå‘Éöïöžuàµn>¸øêÄ¿õá" à‡ø“WÅîÃlsk}$sÞÀ ÷ÍVãIˆ˜NXˆ¯ \È™µO½¨ÿ�NÌ®[^dýŽ'\©�g!! B”8cÓm´D�¦UëðAQ?¡ª7<é<î/=2úC¾ÿ3"(¼(Y¨ç;>¶ÁDµp6N6DÚñÖ:Û¥© àrrlàr¿ìMø¥TÐÀ–�Ü´@}¿A$•“²õOé�§]xˆµ¦ôµ:99¦„c|dHbª ‰²h5™ËõBæ•dQÐóÕV]‹¥8­Fô+‰™ÖeZòï“7êÆÐ¶c9ò=?@QÞñ²ÍWש3çÊ}F DìÝ,P„PÑjÕ™º\õÀ«/ ñ‚G¹è{€gøT¸­9ï­'¶|˜™að!EùŽC…x¡dŽp+�´('_dTÅdíº¡�×Ó8Sà¡´d(Ç. 8X6©þÕålõ¾WXóõÕué…W›EäÏsÕ6ü:lP>U8Š~ýbL ><5ß‚ÈÌ›#q¹\Û@ÿ%½�¶¿NDŒZ~hä�ò–�à<¨²Ä–ˆó•ö ÷üD¦!ÊÆöÂÁ°žÊB LßnTÀMæKÚ@He¤«¤êXTÛJu0uàeÀmÕlVNÀÛl¦á¾èÃØô–¤Ý®7¸—ìz´§':n’ eþÅ#ê0˄ɒf"�Ìïl¾ÆW…~¼ x|¦XW‡Tß~œáÉ‚Jˆ£.6?g­Ú›=Y)©B:‹æ©_tоÁaªÐ�Ý1kQo]}ÉÛ?•þžæ˜&q.ϼ!) –þ—.yÃþ­„^=ïyq´ûIµÝèljxb_7úØ ¾ŠG@È ìÎX3ƒÃž×¹ú@Ï RHýê’E×4ø8¶òšqZ}�í-}Ì:I·ÄÖ5„”&wbÏ�¯OôÁ$„3¨i¢³òL?Oƒ'å´FÀYh,¥Å ±‘�ƒxf§^S}#¶-¸äüœ<xÎçÁÉ sv}ëÔ>ÿlxˆJ 9äÏçŽ,\ICJ[–ÈÛ“Ebzã!L33°§Å"?2 ,òõ}#{ó§7þM’”õïYºŒ €Ãl(Øå=7Ž£¼¦Ð `çéJ¼S6<ŸìÍ>'rc/˜¶xçáþ¥Í¿ÈïAE‡5-w5a®x ÄçAÑÇ}ÈZ@ñÿ(iiH2† gô/ÖÃdBpÓÕ߬™£,òŒu‚%%2õ²ªÜºêsƼÆ; ì2_n^ð$ï¹â'¨_aóh)×gW*˜»íi~e:3 Y6hn¤ëˆ�& ‰nŒœC\¨wÁÐôö(èNS}™äBú/`ýÓ„rŒë€õ‰ÈIs8â‹´¿éïÌìrD¼›:[îb’ÝÞ.e*ØÕŒ½›>§}1ŽpfÅ­ä1tÙ¢¯¶™²�šhT#Û—Z,מ›l;öÈDÆ>uhþV@+ÿþ´—ì•=Qx~Ò꯺<{Í<4uKÙ>7�{ãaU}AM`ÖÂWy­ éÿ`½px†òÈ›†�sWªâFYvr¤kjè@Y³ÈèV[b'ÒOÆ„´} f å²HXòvÙWEÇPŪtmðg6á¡ý†5¸N,l𣋔 ¤Ýæ¶ì£è V(av·RŒè@}ð“WJŽÐ—Àp{rg`å|Š {ð³-T×0ýµ{lÿê^¥‰>\æW#ߦX’âð³�¿¬^)Ïãnžô˜˜ cËm’®Ô¦Lg{£aÅûFäíoÇ_y¡;¯‚ÉܤË!º¶ ¯ø½>ˆ,O ÕÎ(!-Ò½£R)ñ 4ÐŽ{g yìŬڵA[Œ+`Î9R¶P_g"Sèn¨×¡7ÙÇÙò#€ñƒŠÏ“9ÊÌdž¦!ÓP¬é«÷mL˜Csš¦³\l{ ›<ù@¥^šÈÃ.ØMW/yHB�QÖæ”= ¥‡”¼&–µC]7C‰†õÀÆ!@;@dt‚ÍÓ�óÕ¯‹�:<÷X5“¶ŒÔyó˜q¤i‚D2…ô½“š,|j°4RØÊ›l»®xâ¯pÜÓu²¬É¤xKäòÝ|Cå{9Ù.B ²}5i‹,³ø<ÎUN´Úù…P¿ viI±ÿ{e:û{ë’ÒëÈ¡ëúR¼.žþÕj„g8�ÅÌÉà‡Ö1Ǹømôd=DÉâøIA\PÄN¨-ŸøqÈdHŒ++jzœ]’Ú°™³/’Í›ƒ$]Z6(Œà…öN¡-q>2OŠ�A¸Úï„x÷5È!Ö�!+»rÿ‚ìX6Ýëgve6P[� Ïa«ÕcCgütȈÍÏ’.ßâ‚´e=£¿ŸOº×ž#xNµ‰½ As¡µáÏf†Á3ÛDd0÷G�^‚šè1ë€-ÜíD¹�Ñþ€±Ÿ¼Â²¦‹xÍ;áxŽ™Òš!³Q3ø,—ƒ X÷ÎÑ΢;™pT¶Ð€A ”ñ;uÙ;g÷隬[ÔÛÒ&SçIHïÄ©]3·ƒMäöüj ˜Á6wQÒ^÷‰xì%ýÛW5 ž…ÜôH-îxǼ÷þ ,*t&ñø!/\ZL/6嵜ùö/sJ˜�©#¶Ôâß~Öµ < �G]2Œ2dEÜzÈ®Áã±Ò„Dm®xš`œ£�‹“D3Ã.%FSg'�ÉIÛ¶åuFgè¼#côM·~?ì{à¢À² ¤m[¨rµÜ`"x•“4ûVí9޼†d“-þî�KHW‡yã!Ý,Uý0Fç™5J¯&r¦Ÿêtù†~ôNî� ºóI.Ïb7ÎXùÓ'ËMéj¤‘ãýÞž lõ}èšaLMû_ÚÉWÉ^öüÍ"!*�V[¸Ç»µ)4BX»âñ€‡è�ü«=µ�ƒUþøFq`¨U±H³]¯§Œfq 7H&É‘6ˆÛAÀ^@Xnïg5Å4îï®We‚)ãÞ·QòâÍË ´Vì³3álÁ¬'ê°@ÒHìàJ#;wÛÄ- ¨y)¬6òM1EUt‰.}ýwÐx�j–ä‹– ÷û•|Â4ÿ[OÀDÇ djì¦lci\û_,Š­ëT±¥ 'úñù*¨”2í`8œüW"øÐMGŸ³¹2öU›—R>òø@p¤ôÆ*Ãë”çÆÅèúܤ(´àÞBt ™Wö�ÅÄÿ›_÷_f!Î€Õ ÆÑ#0Á‚ȥƒrL/jê|²fýI±D‹‚wó0QÀ¬lÝ'på3èÀ6ì"ä>×åÎøúœÑqéë㌪@ wa¯rÿ›_ÿ_†t—¡Ý7¡¢®@M0к¹Ñ=HGúôðBÍxôõïó¨/›&|d9~l:osðøë¡Éßqh¦Ù3)låú:sØ1%ÀÊž:zþkaÙÿ›ßð_&r£~téŒ*òG~·½º�OÈsôBÔæB"I™â󠂆¸ªþ©½uà¢1ž­òR(Ɉœ¹âàÿñuþ��t¥èÄ€¤Ü#öÿZ¿¬¡¥Ýÿg=ÏÿÉþ÷Õ‡j ~ähg t^7�,KhüÏÚÂÙî;Æú-³Ú¦€ÉáEiÿ·ÚÿË´Z“õüãa6v]YQÃi+Þ0]qe'Ô0Eu·¥#I§!yîYö¿cÒ‚vºAâ†�¡ÃSÔ®MzŠFÄøŸ¾´p%üõ¿=šm$QŽ ôÿÍoú/ã ˜ÊX¬TÃåŠÃJ"ïËù£9ˆÂ ÓÆnÒÚlX�qÖ$Û|pAd,ÓÛÖ€yÌ-³2~Ã?¢‚¬sÖpó?ýlôŒcPÿ,Ê^ É}˜™ç¦ÿÍoþ/3Ú¥-…ÿž±áIöHŸPÉ¢hÛ+€+…¹ò€N%î á?BgV2²!$möˆ¨Ù– )µ­þÿø!ÿÇgx2²¢5›@ªÊÄQûóÅ,mLEL��ÿçÿdÖMiòtlhZ.+æ£íÈnö$µÆû"^M%Áœüÿ:.¦Î.t&†.†ÿÍÿçPFˆsÌùÒp*öÑÇ?†Mþo{Ðò_s‰Aõ¡Í[[ŠÃfô@ÓÁ£Ân\“ìKÂe4¿ŽR,:[6oºŸ½Ø½© ? }ýz“éÅÍjèú*ªsx):sa— ë”ªÞvÿ›ßú_f«Þ ¡cm 3ª)YñTQW3|LÏŽ7ÝñÊ\‹“Ó#ö €b2Ö+¢5�>¬s¡¯P.úgÆ-Uïú�b&ç%zÂ7ônŸŒƒÿ›ßö_fC9@7ªd”�U(¥Æ�‚m²N†êÆXÁ&å3�Ñòy Õ)—0æqÔ®´Æt×¼X M 3úÿw¾3ÿo¿7vÝ:ÔaŠÆ|’¦Ã[ãÿÍ—Søÿs¦ÕWôèþ¦ßi\´TÀ&"A1…‰‰R7ÍìULãBkÜ¡s²1ÌÓMÔ=¦þˆE;|×É‘ÎI\ŠE¦ÀÉaµ.L™.kóJˆA:ÒøÒñÛ¯†tú� [~7¸‰Ç�Üú�a�<Ռٌ:éM‚Õœº¦Atú�CEª×¨Pµqw"JnE†3–‘Ù“ m]Zî8Ä»ŸÀdVĨ5I˜™r¾ ‡Û]¬¤ R­{rÖ{²½€DïH´E<}ÛöD‚Ù;ÂìH‚¸ÆcÃÙ,%ç5Ú6Ä\§ªÓ/w6÷µ § R°åð„°ªô«–Bº¼©÷I Q €Þó}ñ[EU§¶ y! Ý[f‹‹xP7Bá]±mŽôûAU½Ö®…tlûްqS5ì xwौÑBÃææîè@ø•H�¢*ˆ‰ b%a±A€Ôü2Ε>@™Ÿ!Ä2Z~ÓI2®HÆJûóúá‘  ð³S1gRð¼Œqñ†C4Ž­h?)'7½¼¸‘勹¹%ƒô Y¥ô:�^ʼä½$è¬Íž¿ÄîÓï¿á"÷Öx�>Ò ³Ñ±}ꧬQ¿­—´F]EÐk¥E!ËÙ‚—òÍŽ]‡¼.î{dÊG)éæ@ùuQø ‡B´œ^êZ·77Âñ–®2Êû£dÃkU7­a`õŒ3fÑgYSŸåêþ–¿žÙíÓmŽh&Œ%!àHcÀùFÎüèý7a×f}:}ó¶«þ�5NYêÚωL{¤q«ø¸f/"œ%è`ì«"å¨ÿÂÜYŸ¼KÕ¦³%E÷G·|tâÂÍ)°æ±ÌÑe\™„9gs@ÑõJÚž3äî·ö.J‰«Ä?É)WdHÕ2îv�—ÞX€Þ«Åˆ¾ójò-ë—,„ÀˆDÝŸÃÔ`Eäí6Q2€7 {Óå#ø §øÌLíôrLîúÓ�ô<€÷‹0QÆAYÚi»5âû`èìµÜê¬0rŠo+V¦à~übwu>çä^ëT_¶5QzÅ&^>m$Ì㺨|jÆG²ºMˆLÔeãÌ>Ó‚ D\7¾èØ‹} Uû$I9ÀË1!²tlZ%×.²)íÑä¤z’§´Ú®C»uÀ\}æêlÏÀ ªnp,uÇǹqùM‘ÓL}Žu ™´„ʶU@†�¸Ø¹R¸Æ²#7dL%D梇wŸ«õfv³VßÁ…I‰”î8 ºAÿæÄG9š6‘&îÅêÆÍM)¶®ŸHÑNIža WÄaDË¥)⨧R’j²Ü�öoýC•Û$¾©2x'÷ØŒ‚ʵ¿°à©qtî“%ñ1 ¯V|gÚ�c_ãûj>¯ÕÏš–�GíŠ\©¿�8󢿲ªü‚¢Zm¬� hc¥ªúÇáFfŸzÂt¬!œXe;¾äšú×>G„¸Fí¬í¨�ÑÐ~o·Ô?g`3¯Ùn®{ò/#�è€F2óŒðÎ}‹,|^Óøæ:&ÔKá«>…-�ŠSÒ<mÃ]kiÁï¨ÿi›Mœ§çR•™®ð§1A…8î»{òÈa%�òêMg I%ØWkÄÄ÷n|�ú¥ q[‡” QñÏÄj™?b¿Z\ÿÞ°¯îOŸÙ}­ò|ÅšŒ€,ZÛ§Ê©‰¡¾nÖŠËÅ8—I�N6~þOpå<À6÷�ÌÞ¦å qÿsp‘ƒn[Gõî±ÕW’wnÒ½Ž¾Ow®r�Ð�q¯­v{#ˆ1É2{;”ô§^�·0Â�~Õž„´åo\mÓb¦ŠÓlnžúy¢5�aÀoÈ:ÙE.„ tÏütš\4è•£vY¢9û>Æ{˜«Á#¡¾æf,õ ¿9º‰x[ ~á¯gQ1’\¨n݉ÃŽM\õ2ÕýQ>n ¥LÇk_•¶BJSîïWPŸ�íñ¼/r¬=.0Þßšµ†ÿ�Ø(è#lN•È¥ÜÌïY¥Wi¤Ú»öJ%ósß”^6!š”;飼èÍH]-Ïy&²ýœ­º©âÖDvUøL{±ñ�®1äìSMˆŒ�À›-Ò¶� 4oÛò¤²(ïM2Áö½‚ÜiÍ‹ê;w¦ @Bpå!9k¯Oß"áûí[ð�¶$$ø%+´Cn°'´y†jçK¼K¹¸ÄZßÜ´™H@3dþ¢´»¦îÐp pÈ7”ü® ªñQ*m˜)êžnݼ¹�r&X¶ÇÂ$ý(¸€yà5ÆEúï”ÞùdÅaP±’w(€zjÁ¦¸he0…–:ºK]¯f�cïùÉž1í‘%©B‹i}¬w/–¦©c™¹Àõ}?“üò,++„RЛüpÁ‡U$Φû¥�þ ã�˜¤¨÷r÷Ì)Dk;^›CœÇ±hïCs‡ž ¡´˜ûNI›í=TkØó37¨‘T; ž×Ï貓–ß±ñ°Ç¿kÁ3g×Y�Yû»ù<ë_pt XØv0^É ,§S¸ùEoë$Äùi&ãT¹{N%\êî¶Áˆ¢± cÚ1I~”¶dv æœ¯9“ZL ±îÙôþ¾_ÀNòéj#¼A±@Ö’ìšë&%8ͤ Ù’]e¯X!ý9tõŠB½„ššfGN ±ôt–fcRWht³¬·Û}nõ/qѰ^9¯õ‹¹îí5}[â¸s½ò;ð �¨ÜE¸å]–—^ʽ¾Ë $;…˜,4!A¬.t`öè�¸)ð¦4ŽÅìBbˆôñ÷½%AÉV:•UÁHñELÒÈñÇ%øw¦¥ËBÿ*^oÙæU%)˜²>#òŽ›R²‡�\L‹Œc0Īþ_zs˜ÀY½ñMË�÷×}†y 9|r+6FΗÕ@Ù€¼* ܦâ*ÛTÎèç×»-k´¥¢„MHUý�Â+žE6Ž{A|¥üýy¡ nƒ°pS‚¶‡¸"ËÚÊû•åd“�YñÁ"0@â—�–Öp”øy¢ehW�Î »ø{~CÌú±y$ݘTç­¿Ÿá£‡DzÍ·’ê½ò¼:s;-õ|¸­¦2oš‡ žÌâ…­©%'Ÿ�@Ùf X[&J³B©$:D[�(‰jÖ¶InBDrŠþy;iü*¡ÈªyO.Ð1Š~Ïq¥\HüOÞ·©+9©”ûÀé ó䌓HW‡Û}nÎ,žÀĸ¯ñ-’*‡¯%Ë,Ra+!Tfœ½7FÓJ7kš¬cÜæKWýùþì$¼bï|º _Ÿh ,Ù8ê½-±—ÝÚaWG±ˆ}ôI¦=<0YΤ¤ér[Äߌæ‰o¥—sIxP´ŸÐ.h…ܯöξa¶ú ¼HúMÈhEˆº>=´7´/™ £á`ædÞ›ÀØx'™¸¾e8‰–Ujü†wpfµf°ªæ–a&.ª .gޱ-©ìö¶’4%ÌñÏíT4^*§·huo†W˜y¶Ê,Ê 5å,™N!J¤|7Hx¼³¹k–òÝXuÈÎ4ßaû�7áOiÔ>ן ©÷=w`#щýY®!æhaÁyRÑãunôqT*q¨_À¯+xŸ4ŸoÄÄ l2+à»@W´m#Ø|œw[͵KpKÉÁý§¦E*œ‡Õý—g,Ó–2¿»NÕªïrê,l'ÈçL®q ø'̼r£y˨ž¿¸z3%Ñ36w=©@ª'Ha'® ¯®î‘ÞÊê@Y™0a�’Õp;ƒ‚D‘h2áÅ…â©'슋Îe ÉÚÈ늀c§ãÄÐ^»üÑ9� .ŽÿR×W¶Kš»ö]ÑE0-Àu;Â�n>sE¤œ#:Ø ²£ Â.H†^Ï 6í~ìÙ Ù‡ö�þ jò€$�ZÓ–¢¸äö³„4ާÇÙD/¯F'0®´`½gàѺëŒ> ñ2–kº8ÓEK–_Ë^ÉÂñ‡šuë}ÏSZ7Çüe'ññOÞa8XIUe ‹þ¼aÅ;OdÙê¯ÛLjºïËêñä‚X]‚ƒ Ä {)’¾&ÊuÕ$„7KEZ5V 6EnSrá×ãî§›ûÃke­Ví”MZ·5LzžÏ?;]çL¹b€wxîF@‰íÉ"ù侜ßí´˜†€VÃQg«ìúÉZöÎ|ØH­Ç’>ÁšžÚrGTµ»Šéò›¦l¥³ ènUQüÒ)]ù5‡›XöI©ÜLn•ÌÙÍeï´©š[Îjˆ‘Ò¥ãÐqðK˜sºøÊû†FÒ¤ÝS†6ïÉŽu·}Ê"I Zl1±Ê #µ™�ˆÊâèaïŽWy‰"¯lâ~‰¶BÓ³oÛAÓ…pÓíΈYç‚\g࿎º£A¯ÀÆ}T£Ñ‘6> ’¢r!?I[7ÿÀej‡¿åžX›0Ù*ê÷*³ŒÔá{{ɲn¥t l8ßd—("³M¦Þ1Ô1‚ÝF�õRóÆÛJýBN+V]C(Š73­"Zv÷û8¢êœ¬i‚è»Sc'|Æ=ØŒ¢\†VÝ…YûÆ›éà0«ÈèT¡’¶8‘ ,ä)ß±‚4¡ôðñcۣ߬ö>ÁN�8¹ð~›š³_B£‚ž¥Vâí¾Z~G…jjc(¤ôGËÉ£óä@%‚ÝòÜí€6Õ:±Íÿ1Š,��Àct�½shO,ëv30‡9µ XûÓÞƒI.Bâ�£^Wrc%Þ‚Æ 7dxïîän«¼ìí¿¾D` Æ%�7}HÎ6cÈ¥_ˆ¯|_c Û’È¿†önj]Åþ*ƼfN�œ=œ™tàÁ‘t‹Ö¬^êÄ¡‡\×íêgMT}¿ŠäìûܘÀ‰œu7®¢Œ™ôH�²ð‡x6è�éå!s¨‚·lÕ²É�I7¾°#§aBaIÆ}„Éyïý<æ�UiôºîCˆÛ Ó':Þ…úébE;¯ÏÇŒ;)õ¨³Ýsí˾»b-9í{£•˜áW@:IºcûÔ~zÑÛTE©’e*Òí»»¿��}‘T;çVE³¶Fo¿âþ`¤ç¤˜âJóòQA>¼H˜Ý#\Nwúvè�M׈ãÑðåYJESDÿk©ðùfQ{¿*0‘“ù—+°ÝÙ¹R�"z ±—Ͷì¹sìâ–@Œa·÷�ÇÊ¡É誫ˆr8°W�Úzzâ¥e¡‰"f=”ƒA~¿ü'k%5µˆ@èýŒZ\3]­R«.½‰Q �ÄÎ×ÊÈÒ78¨,õ9«á>�Nñ ÆD”¯_å©ìü-a©yÎ)3~5Týè{¤ìÉ =óý\úR± wáçO7ªÿÍu7 `ý„O8vÀfA3¢¼–3/”Õx+^°«ÃiY/¥‰·š–@JÔc¥à«F]Ä!ïaàµ+&và„WD€¹vR¹Ýóðëèp™ u“²Í=à¬1ªÙ]ÄSø©»Sw³²gðL>uÝÚTÝN÷³ro’iÅ�FâƒÕÌÂ܉Ë}âåbâ?$# ´¢v<vF5‹�Ÿ"TŒ±òé{‘õ¨�1|H°¼Íú^ËnÊ Û�år#jVÜÐv¼.:k ÚiNý HÎd?m"äÕ¥Þ«|OŸ·�Ï™*¹ª×ŸÅwÈR¬òyÃ�º« M!`2�ä~ž«•Ür¬$“6Dhx±l8ئ hçûøUnHϯ‰I‹!Vüà«mÔÖk&hdØÿ®DÇ ï}í(C«ôQ#Ã"+ˆiãS~tUÞŽLôXÞ—[Ät%[#›™&ó±>pëÁWÀÓÒÓ]rT|²¿…ó¼óðâºL%r^˜sî“ÿÇé~m0 OáWJ–RW†Z.Y‰�αá÷­p ãàB¼šñ‡. ÐÐ"C¢¼9ø°Æ`ª­^õ±h;‰¶ö- #ñ™-Ë­K×¹ÈhK^Îø“$Þ4õ!r²¥… däßè Û¥–Ý©Ì3JÁeþH®å�ðˆZƒwª+„ÁÂÖÙYݨ ½ä×LH„jý‘ø/7|>–é4ß¿J 8?aá]7�’Î@ævMô³â”:ø°$Wä·¯r¡k6ÊG  F„˘Bâó£½!¾S]ôè²³ÒÍ)‡¡äÒ*¶VàXúÉ x„—r?¦‡´òüi﵄¿,O­ã²¤aõ|õ�Ô¯];ÎȰHiÓÆ· OÊ ñu1âlø³©9àEì‚{¡&çKð“Ò¡!OðqÄJ×R0N[ŽÓ= M–£ ê_vwÒþx·’=§`ÄÑðH½Ài‰dGLÄÄyí=™_0aˆ®ÀÁ`>ºùØÙmXÑÕ {{56A*�}úý¨˜Þ™åæAœ¶"1v*(A\˜-xQlîp•Vîg°=Üé Œ�„÷k¶?;)™jC"¤n®*¥o!ÖÌŸ r$Í>'HÈÉGÜÆÒÝ)ìÍ3·�mT™ ÊõQÁ›SÓ¾¶zïSXÙ¤á×k«êÿD‡›‹oßC0´é¾Tc£ª;áÆvS(Ê¥Tæ4žØ8Ð@Ïþƒ¹•ÒS)(9x¨(_¾]fyï ‡‚Q˜Ejá&î3E_ò’ ®ðŠÒï°hnóSè!þm6‰·�N¾ˆkÃê58ªJŽÁTq-1âsOz½u؈ЬþüöØK_¡ÔÀgÃH®„£ËñZ)”œ¹ì"eô\JÇB2VΔ»‰Û>RÔ&á=iØuTŽ^žšè­~ïKMÍÍ}¨Äþ`GmŠ™Ø¹ØÖ{�éßV�VŸ�ÓHh8–äua æöKäêöd(@ï¢jÂeÇÜìöŒGÀ‰�ò³É9s"(öS[XüäIFÛÑSŸ½ Ǭ´/Ýõ̘r†/8‰ÖeÉýºyï;ãÌx´ê;äÆdD½Ëåמ£¯ÚØsn�Þ¢T0Ïîïuëv¢x–×ÐóV~¼C�´í æþŠUãØêEf^ÿ_ËÄXdþŽx1«\ew¸´.S¢g 6D‹œ®ªÇ ¾xËÐÞM̈Õ@¤ôg|²Ø/ÔvËôt�]M M0Z‘ƒßäÓs¨q‚|¥DøeîÆ_žáSžíÉ�±©È '(ˆ_YRI¨Î0„\_Ã6{ÌEÌØ`›ç eÂu›ÔyÌ·kv‹°ýbå¾ÅˆAµìã´X,�loä]ûj‚•§^~�äÈL˜ú‹ìþµîb^$AŒwµ,{Ò¢dÝ£¶˜NR¦ÿØsø„ª Ê0™gŸ÷6wùrÃÓS‚î›Ãþ²Î¤fS·]?i`.¢Ë±Ë.©Z h˜u=„Ï3Uχ.ÃtúŠú[ž¨Æ=�q©6ëù\:hïØ5ø¤í_Ãzú·“�7š‰ì¶'jn(/¡Ü³Ó·d�÷ä�K0¤±)¸´!Ä/§V3Æ ×gQL=7�#þÅ¿)!òróË6džÆj“ë Í�P›uÓÏF0ÆX¹ùм Ä€F¹S6YÝ%Aô?C7W�Š­-¸­\õ”�^IM2‡pÙÉoäI2Tq*AÞÙm-QÎjo  �A`p‡š/Š ÕÌÞ® €»HWõ)F#†¬xQ«;Øjò`‡ü ÖùÑá~aEµGü€WÁm §Æ˜9õ6 �¸š$*QC±Dñ³,®RyLüpdnø¦yRÕ¼-¦¾tê<Ú­w†[HA�ÍZ‡mº”4¾^ý[ðÂ9ç™N90BA}ŒŽT6‹¢: Î CAä¹E­]K™/:®¨ïågÏBìì»[Úpå³·xәТbËZ?L)Øä%ý{„4»‘˜fò$¶nûÔòª\µÎtžx²û=èc—qmB`Y TªhùHµ©»ÅøÔÙ�­ó<ñk6ŸŸª¦jÎQ†lsåÀ [�ôÑÝL—PL•X 濆 øò(¬žß4–âsøÓ¢L\Õƒaõ3D¨É �⩽Øçp\8—©Q+>]Ðzª–ýLé õµõ_9R”RПV’V¬Æ 5έ0‡žß5ç "YL©!9?�ºçRÓÖ‘:ÄæSl…B&cîÀsÉoЖá^jy°Ä#\vd7æoªsƒDiPyGàÓÚsNU{tQîG�Íd‹|°ÜUÔ›ÜYã?î ¯ A~¹'óµ:†  eI }ÜÖ’2ô%î…˜‹GºÃR=hR*¾b=ëNõÍ„½­ñ·&#ÎÐØêkYy#§C6˜€‹©…¸„Kƒ×PÍ�4#©D³¹}L6jOr.ÑÑ»Ÿç¡Œ�9‚”›¶ï¯&ø†hWMÞŒtøô ]Ö¾¯0)½ Bt#ÇÆCÃHˆëYŸ ¡:Ó-M}<µè,1Ê�ö0m9‡!šÒaž`á¥ó!ŒÍ‰Ð¬W�ÑÒ©Xò†_àƒg_µ�Ê&ÂÓ ý†£GÒƒM�²‰ ¡„ϾXÀgŒQ>—ãýt‡ú]fÈ`KixD? "õ_^—-R»¬Xý|�Ñ�£%5ÐC›x›ã˜Á R¡‰âº6¥�l“³ó¥&9æ9}- ýËzËÆ¦ÇáÙVÈŒTå†KWMÊLÀGNîMܪ/þFÿmGf1UíG©.$#Ø2ŒŸb"[°ì³ÚÜ!z\¦@M§ÚÕøçÓÛ‘ .mrZø =KŽ…â/ï¸Ùœé Q•S$¡è­ô³\=Ã*]òk“™u„wy€Amêêg„~˜òÑ�©Uï�°YÔZãPL¦_DÂæ‚ŸÐç…ñûÎñhlÿË�vÁjïÉp©Ô³»Xœa'ó…¾P‹T;•n>©«¾-'ïÍè"^MF±ïžÂJ,y[×¶#µÝ¤Ý«*²8�/‰íê i•¥êÛîÌ«ÁvË+šÕºHGtj—ïgRF ‚uƒ oŒÚÓácC“Î’{òó…´TNMÂß|„õ$âʃÓÚ;�Æ—¦òËÎv�Pæ(µ›„Ø×ÿᣫ)…“Äú€u�\®ü=û¶¿þ+±üi•B¡1X¨ ¥T]ëd¢o¹e\Ûãã™ÊÛÕXdÈ4G�ØI“¶ÒŸ”ò%ïý�l2çèƒ[à¸Ü!¥c·œñG '-üïNINÂ_Ø·`x)/kÜCè—[�ÃÔϽsVfZpðZzuà[¢o�½+±DX(³íÙ��ßD ;Rë›î+Õ~cé4èö¨àxCm'®H‰™úϰ¹,AGµd¶Òš}1ÊË¥4aä89øhäÞüE®V™¾`¯P1 Z–›ˆÀIµ«,~°�õ¼ †‡yIé¯.—èx=HŒ–÷°³Ô9Žø®Y¯c ;'~ï€ïßPÜöNHq Òm�¯]_÷ÒŽ_¦û‰Õ¢¤!³{Ø"~d÷ê cVé©ê⌿*a R9X/ô$®Ä%ž”°÷Ú§}3°¹Qœœe?שƒY *àÓQpˆ%ÂÜtÐßJˆ+eæé…£~ãFÉ̯å^�Y±æOŽþ•A^ðݲ„¹*ÞªÎ[VýŠÃ°!ÙOSLìH�éÐ Q|Oøv­ÒNó}5Óz“„ÔŠÏ\®F]ú1¸ûgÛ²àðTPÁjã¬�p†“Òný™®j§ë�ïGBl´¹¦ÌðÇÇ ¿¦Æ¾!Õx‹÷Òî§¤Žª{}Aη ¸lX�¬V»Ôzh§x :â�ÇÔêLdBÛpÂo” dAíJ1þ²Ê�mµw(�¹8™2Á¥¶8ǹÖÑ�¥5MëxLOÅ‘!Ö–ü”­Ä·å^µÙnÒ œm,¹EO_™%áÍ“ÉÄíFi�ÎÝÞé#´¹w5Úp½…XÆÈì¨M1�ÚÂIµè#AÓûTö¤Ã|`À¨ãhŸjI®[…~%ÚLœF=nØQ{’Þ‚qìéÝ;l[TÀ’¦Z_•Ãáq#£´�·ó_¶b•ý‹0{JcmÊeú.]{þk)­~eËCé�JÉŸ,/r Æ2F›Q[›¸œ°¯yÀÿ8©÷œqÉrÓÜÊjÑÆ]²ô_¤ß) Q¦—Ø`ÓÇ^ 6ÖŒ}&PЇÎÙ¿�åO’]¾Ýy�–áé±®ÇßaIK�z­ç–,g ~¼ž?Píy-äM¼k^Ô-îPô{³nÛñM¿b;Õ´¶sò œæE’o¿¦'žŽùp­ÀÁ»†�åLóôDš××> ÀIAÇ »Àª3Ö+Ö`ÒÇ”ƒÊ–åßx¢�ñwŸ!9åBŽÌ}—ªÏìÜ2к*>ñ9y?Lüçm+o¦hwEUYÌ itÞ åâªW}5ëH`àý{�ŸÀ¾5ç+�K�'—æ,Áç%DJT%~¶$mS¿��³‚öF•ЊÁq0s@_ Ô0NAÓS>¿A1°Î–[léý뇜%ùàY,”{ñŒÿÎRSÀT ÆÏ8*¶Ãbæû¨Ïå!-GlA7’5!Ü�Xë#¤§½‹Ž˜®A+9ý6ñç]V)a•òÄ2™ÏB”a°w/Nwª‘ì2M“zh÷ìïƒërå§Ý®[ÀW™­ØÐôY7aÔ“1B*—;aÔeÛƒH^à/ÁˆÓG�äÿ“ˆ°GÂb9Ú`,KC›¯Ò¹«q1÷Öʶ%EØÊú¬}„LÞù1“o˽«°î7ã;”ÃjG”Ã%<*ÀŠÎV”’°m(XôcxlŃx^çT=«R§6uMØ‘ùÜ»ÿ8Ï|FÁtÇÞ;FèJÉx(-VM¨–¿â³ pïÄʲù ˜"ˆ0¢•”ŠFs9«*Ê—_ ¿&`f¡ Õ÷ÍÓ®~ò�ŠmUìsƒ[e†dY×êt'F/Á³.²·Å�Þ=xU(°,2x²^ŠÙ(ŠÈQnƒtº¬>É·êÈË?¿:Òj µ*“'ºÛR¿Öàèl–ïwKe&³9gt抹[È+Åu-�£a9i�"dŸÔ/„½ô W>#“¿ràí7/s[ƒˆ¿9ªÁëí´(f�¶YÏ ­üÉeð›{\µ{9Öûr¢—Ȱë\?™U«ëÀ˜l¤êÔô‡퓯í#§øñ›ÈD•¸aá"T;ÕÂcwߣ¼áú¦ÈÏFãN=¿ñ(žyy„W3ö1ûˆ�öˆ¯:t.|Im†@&³PŸˆ*D:ÏÒa[­å3ém[ëäIÇ©ÒÀ½²,mz>ä®âŒZ³‚0p¬ÆT8“~£/Â~à#f;ódáÆm‚»M&@ Á:9˜ G6ÇDFR‰½pÖBâF×bh¶> /.¶ÙDoB…•šAåþê%�ªC,‹«E'ƒkwv¼¦Õ}½g ž¹,â�k|)‹�#í•Æ*ŸU'`ôvMñ˜UÇ'Û¶½[ˆ~¸~ÿëTWbT*(×Rü=šûéÖ�×ÊŸõÉÇ­çx© ¨qdÖtIpÕð—þ‘Ï¿c@û&‡–"î¬:ûnî =l'ä¶ãÒ4ÉýØUˆIÒ]Õ&bÈaÕÒo*‡t^Ê�ý Ÿ|cÃ~ vsË�o�ŒÉ¸žc< ¡Ð?¬ˆ"œ³t QûŒœ–úØMƒÅ­qqÊ#Ór]xR¬›&»Ñ€²X ‘À/ä eB¾´G‰1rÒhÉçwm­d·T<)Êä�%¶&{�&¼‚Ÿ‰Ïi™ªÆÞPÏ8VRÚKo ‹Çz>Ší6—[u‰"_|±†eçc‹Ø³ºüÆ$· dç»L1õ®M'÷N¯ùFtË€Å;ý8¡ Ât³ƒÛ8Ðç¡÷N$)ͨ¿“`-ÆÍÌPï¶«P²Ux?ÖÝö>™×ô!ùâŠÏ+Â8`Þ&6dï�}ÜÊ…±¿»®áì´!†å¶ÇC~Dû’2)'Ëf…lêiN{¬׿,´§=ò÷^ B±ãwO‡?�¾jÃäÀD̺oã-¼ó�c8©°s¯ž» Ѧk,ü²ØÂ^fnǧZK´ø4±â8%\bñ2Å0ˆàÅ–åÏyÕq!ž«Ñ—²wÑ-B«)`ûüÖgÂxä4Å O*Þô,èXé“ïºn‚îg±òÔL(S(eDÖ£wŸK˜¼¶SÆÌ¥Ò»Ek�7þæÒIƒ¶�Q¤êɺç�§#lYª îiik¸Ÿ3¡�³ö°'þ"ë¬cž¹×@»ÿ<_Bþ²Àlz±!Ä ¥W1xÆuÞã®—Æxh]mŽªG‚³ªZ/�¿+-­ð-l2Œ �ŦŒXQ(YK'›Zû(¾�‰qÄ^[ºÃ%¤_€ž¿êõiHÄ }YÖ: $ÅŠ6„Äx§“'ŠB"‡²ÞøÛ’HŒV-' híô‹5Ì€´“æe½˼¨ìE{œ =ŸÍfT„ùÇÍaG!ƒÀ%Wbû©• ¼ º¥Òé/ðþ_„×S¬pÁÖ.èeÛ¶mÛ¶mÛ¶mÛ¶mÛöú–m÷>ݧûb§Oþ™Ìd^Ô›'5*52fÿžökà5qdd¤UÅ^,3Xñ‚7H+ÇÖÀbM›Ñ.ÓÚ¢@Â�Ý(Aý�ô÷\È›óáSi„̵)Hò°–&]V±ÛŠS-îy¸,4�NÓ ƒ¨1,ï¯qÍŠ>iû½zô¥­+Û„?k†ö‘á¿üÙ)8еÄ4çZ®˜k%j 2 ¶!´çÎ'¶�ºp¤Ã"–b¤“îÑTÔÈ)híïÕß©¹'£$übˆ“­¡–$`„ÍS[ùª¥¬Ø,cÑ&F“¹Š©Øv*Z0Ê,#�$°½Í3{�MXï¦QBó†*´é�KÓ6OSj¨è�Á§«tPDdJ¡â¼®{(ÃóÒVå8YÇÇ@—A}<Ý-ïÀ«y"ù5Q„¾œè ¾ï…k/YøßÁHö«Ãíôþ$´×Öˆ¢æIì‰Ôå/n¾%“¿‰ÐÚk·Î“Fv ô·G`ÓÅÂ'­ô…³˜ØYp‚é·Ö’ÆbŒ)5ü®ŸU��6º=Ê�뚸T¢!ý³¹S_Ý phö<¡»•ž‡¹¡>TžEƒçvõÎlȯôBt�É`ñYÕ;ï2…BŽTtɱ:°€)"5ÿnÆ&pñȈ)þØ >´%L]M:X‚ª¹ñúhÐÒ¼L" 5O+]FG$ qÍm ºÂïÌ¡‰åº-!†·Ûì:àÖ´ Ä<àr€†+ ÊÝ„û¯b?ËW­zx‰ÛG2«5ß�ïôR"±_îO›…†,VÇn#°¬Ù{ æ–%�ºlicºyøñÓÖ¥çäZ� >DŒÆ99àwª¾,®«©6ö�ïõ§}o‰”‘‡RDÍI-äÙ–4ˆ±�cÕXßñõš4päc·o±®�Îd޶ð§rÍÈ‚^¯Îø J“òvbó<)e�Uh‹�,ÿɮט�ý8ÌÑö%u§\€†Ÿ'èz÷¦Â˜¼ÈËÝ�\rœj9“¸Ûn§óhü£‹¬0¸’yE)w\†˜~{­)�´ÈàhÕâ“îoDc1KG7›PÛU|Npk{±Éoèå’fš¸+b ˜²<8ufÖ ½";Ì)„£7Ò8X†mɱ•>°/[$¯"cO÷\0aþxrŽ¿§+·b­�>%Cq¸šÎÊÅ“ŒÞ8àD)UPQ?ÝöŸ ËÆm#Ý©½º Éû˵ ¹ÁØ ÛÜù@]Ä+ûbû€¾P«#@^ã%(‹`Ò„Ó¶¹\Oî…¨fKÞ»|ðÓE´�šdKxkkéUa•KŒÖGobyÅÂoÝß3�PV„Ð}rˆÂœ«"1IëíwoÞ0­ êOÅ}«¦-#c¥®;ou“¹j¬äö挱ko$Ã?d0šü| Ú€@óOYGg¯8¥åÂ\ìNcŸ �YÀORp¾çÄ™vˆ»ÊJuµm!¼â÷©yKIo¬B§·„pýÏäq\£Uì¥êCÔ8פjzÀô„x¢ô‹“Á„Ä…Ê䛨åÿP0Yˆ:0ªJ¡H¤ŠÍï¬*‹þùÙD%Á]ZÏj}Y$ÚqsW3É>o5`@þ¦!™øùžÇ&üLdÛj·N㜧®’J• ÇX� U3ñ¤zù�æ¯à G˜xC{å±ÚÛN‹ôÅS(ò‡PLðâæE¨5]ݵš}•ùã?/¥ÎàÔ²=áeÔ• ™'¿uæ6H$™ûrj*L Á:‚劢-ÁfÁ¼ÁÌÜ©3Eëªí�¸V�Ø{ð³ÜH™#¥¯ÜëGË,ÏQ½u?z—†xZo)F¹fÁë甬w4Ƭ1×qÃi•Õ>%dŽÈúûó|«Nqh§TûI=¹+ÅãÏ2–oÙúxw‚§Š'÷è:< î²ö˜ÄîÉ(�H¾±™}ýjE²º¥Ek6úkèà„´ªþ¶~k?�ɼu�Y<¥Z.7ï9bïs‹�|¸a-™Ãýö™“÷ÏŠrp÷œ#ìfö÷Oh6ìowlÚí'S ¡¾Éû”ñ|Œ™+PŽ�ÿecÜöÇc‹±Îmæc঑„Ìžâ9­6ãÚ«¢Ü3ú¢®œú)$r_¦pGé�‰ÌÙŒWE£Š|ø5šX\x›>0Q´õj=ˆþS:\µÑw–«Àï¼,ò¨ýVÑOVZ¬–p“\ï]ÿË€”©ÉŒ>‡+å˜it ôêl:gHš¢Íq®÷ôÓ¹¹:@¢9€ bj¯öw&T^ÉõêÑ�Fô„ÂÀ+PíÛæ� ¾ŒöÃÈe~˜Õ{‰¼ÒºwÕ¿Êp» EqgFÐüFMiNeûÀeŠ5+‡O}?·�öê5p=)¸ÙBer„×ßOxNwD®v;‹D”Vn_—RY›"’Ð�”�š³^þ¥B,v¥ü¶èD²}JÙœÁFÌS¹u< Z¼ZkúGídŒ`ýï‹|çÌ–¦?AôûÑÿc™«g^dîR‹0*sU KøøjÈß®AU$á‚l–Ü›X»ÖÞ§°ñAºmµÝÎ~ñP€¥<®I. jËnÓ $ÁÁ®Gú}7/[g«ùÚ…4âÐK£6Qn-~¤ÂÿäÖP8ØŒLÔ5„Ù‹Ö¤–Pì*#)œ€‘üÔ¡ß ¸WµŽöþÉ89ÆíD€ø†€ümܦÿÙq¯²ë¦ÿCñŠZùש¦Æ£.ë@¶„cW½:é4�H¼âô7ÝB~=ÊiØ=ØÖb¥%>�¡b°ÝºR¯C‹5æpA�d(°ØA‡–•¨Òeò¹ïªW®µ¥ìë²Á5Ÿ…FÐX‹wÒ‰¬{Fz Jmyv"Ùo£œè¸Ú?@�B5Àà ï% Üb˧۟AlòÎÝ.Ù¼5éD‚ßt&²Õ$ê5 |I.iä°WWÑ…¨jH<ÊdäÜÇ3;í áeÅ[áè¡Ý®ßÐAptU’?ðÂíûSÈ.%CW 0}»?š±¼`õøpAmD£œÛ!0óýSeɈ~lêR‹�s®›pde؀à ַ �†ãJF¨(5DÛñÁ6T|£2Ñ=5°µÂªÞòZ`4‰Ù¬÷hÖEmñëÁ¨=Ýü;„bÌ{%ŽÝ=˜€Sˆƒ9¾ßg†Î·ó/#�ç¤Û%äxäy¡-©è¢Öáölj„ÉÅlJÂFÏ \Ü%žw�&Ø7Þ3lc„É.ÊZ?!ˆš¯†¥ÀuaV”nkŒÍñ»­Áå­¼fþ}1œÏv�ê„ÁOFÅ ÎheúÒ %­Q¶ê£âi§;‡ð�—5á* Ã2¯‚µ¯r2„"ÙV†õµý‡œãÎ1ÿ¸j�/&ä\š½Ópó/mßš5-LÑöNîH«Op­¹�‰”¡>ÙˆƒbÖ·¨¼5—¸r®¸!âIW<­�wb#ön£N6xµhúétDê¨e^_ò:Á¯æµÝŒŒÜÉ36¯g´‹›Ìž=éöÌÖTå,”f 8h<•§·‚{+`Ç‘L¤õ@q%± >ÈïB²ð�EäÆê�ÇÄNa¯k]÷ Xe-pMdäHöŒÏš Ö³I®‰Ýê}¶ Zqád¿ð7>n�ÈßÄwdú±a+¤ðúس…'?-doH ™ÑX£*Påî‚fŽ–qˆ+dF³Õ0j¡ãy™ß• i€2Áé»wŽAØoûœý>wv·}õ…§B©Ü>OT‡›åMÑ¢õ§}»~ÑÀ�C¸Îfܤ Äk5CoÐu’¶d>É©¼ò ,C9~]+áW$ U\kÝ‚ôŸ·”� Êü¿WߘWÇ-DÉô8 5Ù$¡êðA Ýü §ìêZ’š3޳t©°£-=¸Òž£nŸJÃ3Æ*’ÞQÉØG‡Áé§ Î%�Ãή¶*É|*a3~YYxÞÓŸ5o•´Î…õ­†óö‰a0û‚ÓÕÐ:é¾Öï©§6,s{ôqÇø%LN5ò÷q›þòˆt­DÔT •ü¼ÊÜ_4ò%4ɘ°ƒ‹7ï²)ýoÍôÜÛê…q–ÊZ÷ÓE¼ ÏV\—˜m®�\pÖ•4}.¾Z`†€Ù‡qêÒ¦ûqŒgm þÎB(š•1.ŸQçb¶¥G]tZõ1‘cCˆ| ¯Î%„ìúD¢|RÕ’à ´ d{4M .gíG„ Üt1A0Ï0ßy¦ù¹<&d ²½,›áó©Ì Â7P‘Ç �,¼rüì(ªÏùziD¿¸Fâg²»[.,üT»EáÄ'« ¢EI¶³j 9 ÙX%ûÞÞìPˆ&$/ÌžÑ^æC`Ç8yñÛNŒ^ÌŸÀÝðøM‰Ý.h…ƒ+tq»5Hаv¦Û¡Ý½õmß% gy¾ RœIC,uʵ“”’ô OG�kN_pÄ¢obS3—õ…:3½Ï£®Jç¾~Éy¥3¸eÑÝÉ+ëBaÅÃ÷¬°N/ß'9Ã)L–f»9±Q³o€ºª‰”ìá›úFÜâ3þ–JÑMG–:å¶GÞ@£<0³ÄQ`ãS·•…Ø">c †¿[½¼ˆ7Ve0©À [ê‰@& ¢'«þ/]ËLaêÁ)D1=¨†á{+B£1tŠÆ2ÒÍ78]Z‡~áêÆÇ4~ì,ŸîÜõÿ¾¸hY�; Àà®ù…’WhÞŠþ®&}3•†”¼åå HZÉš˜èʲ“òy<¸½ÈD÷ Š{Ú‡MÛŽË�Ò�ø—.ÃÐ’TÔ×T‚L`|e�åm—,n�;mÞ©eÉ[?^ïœúµ´Žä›C¥ ?£êóæ9»æâ°a}Õ“XåøCâ3¹TοgÕ 'ÿµ©yõ\|ÂòÀÐõáIzHŽôï—³%¤ ç©÷ŽD÷ýÕL…v ]ë•d`=ø½Á]eVž“ R«Ør.±è‡j=aê}±”ñŽrU¼3>§'„”GQ¿v7n/»¶zšçwÝqÑ"ÿƒºN´*9à0Û0Ü[Qθž¢Eo´Uü‚¯¶_õ2ßÄ[ñÚkj(1нW<=oá>hÚ2AþÖ)¹Ç­…ƒÅ8<Õ©Ù˵A#,RçZ™¾s”Hò­c!&ª×<×”jÜ€~Ϩ°S‘3ziq�õÖ>gD_¢~–?8 .6ì>FÓ LêÙyË•³ÈeRç­Á¸Umò—Êß}À¡=Øvå°”¼HwÏtáÉïõÕŠ�>‚G.ÀþLu{—î—ey $5؈­¨bi@˜—çóCŸú÷ÕÊ+Ÿ]‚»Çá:xД‹¶›·üIž[Ëh~)*†7¨JÂàß§E6‘tçôÓAˆeO¥t½ð}:æBOÌá²–YußwP®« µñh¦ @ïðÁ)<ÑÃ_¯ž£æóWÌÜÖ}/±PP‹ïåÊjÈÖßfD»†™ùÜÕÅGym±!©Uv@ý=—ãödäSÅÎØÌ¦°5Xx¢à[¾;#̉Ӵ¬> ´Yv21³]ƒëCó}2í Ú_ëG_.° k±¼Ø¾ô"X*ÃÎÔE䢎·D)sB%UQžy(lÓH;P9X$aJ£€Ý–Uèž %�éž}¬Åç<ÂÒi’cò˜lYãˆÆGlaj3­WûøÔ5"Ô”9Ž`›}Øó¢|=%.g@‹˜ã^9çÁ•�È»ãv™¼…Âhã€;ű8TÙçnx¨>ÆüÑÁ8rÙ9·ÇËK%œ�sä+Û,‡n@ªéÔ_+ʼ‹{WâÙ”�†F�°Ù}²'Xè4i¬j›¬<ž¸±ÎŸgÿÍÞ®6�AKÐy6Ý*H7+/‹ÇÀÓ/5kTYf5{Þß‚ôvR¸ÞI\¾07m QG.f$e€½�”"Ö±1*ž¯¿Iß! LT—Þªòªã]œªñk51�µ$úÚôBR"RìNºYRÅÂŒAx•ó%¤«¥Vxád©,Ÿ·Ó¦˜ Ú®û� Z,êJÕ…Q“ÞååHyvŠfŸ}MSœÒññn‰ÖµýËSÊÕf¦L¨·ƒr'5KóõƒX°ÿ'”`™Åy�ø“¤÷ûÍÕýÐ åâÔ…p­´„Ì¿¸úh6B´XôÃG–®¼æõ§î'Cni T£ü Â3~€OÛ“«Š÷†»s~!¹­a�»õ�±ç:¶#Û,0Y¼,’É{ʰjüÜÀSŒâŒH^2åHuSžu`Û­ƒx� eW´KžSô4ÉÖ¥z÷îÙÙoþ(Pu~$&„�æ]˜_Ù#» á¿>…æózÖ‚ˆë¶ÚÐ� ‹[ݨ\®{Úµš Tzl§l·²(ªqc*±Ï¼J5XE!š«„FSÄÖÝ—{ÊÑÏG…mWû¦é¹OKmëN¿ˆ˜Rkžƒ§�ÖÕÉÔj–<÷/ ¸r…µŒ˜B^3â’×IÊkæWFDŸ¾;içö/¿|P‹mŸÉõA¨DÌ«0�|M,Cl!Ä^c#­¢{!›¡9U–áy!”ä_?Ì�<²‡üÂHFE¢aÍC¾ŽúÓ‰’bÉ{7ìÝ·×ÑœŒk|s�GÓ>†Šä¤��ØçÙ*žq^D9…•=²ðvŸ©W‹“:¶'wôeÖVF§ˆ•ùši ÀÀUuÂQd�°\®¦“õ¨+gD¦�£õÅìZb¦äöxLÖO¹'µ5§G*¯ÉÏ_V]yÀøâ¯ê·®oɦ4sàS¦× ¨îñy y \6 WßÍ‹ƒß$­1É?pê e\1¼ë*ïn“‚ �dzÊ€ïA;�A�¢W&2V·Ò³å_!ÊyY•hLöV dD°\ít+ þ(Ú ,i€°¤B‘TÓJ1A'ºj§`]1åÖž{µ”ó ÀxÕ¶€&+ýÛÈ…uÁ(›ý‚„´lÿ„·žyŒtE#Ÿ… ` ëÜ|ZC‚@–i‡Æ‚‰<€¼ÚÇÃë¸ U¤$Z/ç™×3d\ίUqä4m߈m0Í£©rûñåœK7•^1)mš{›)þ²ê³í¼Ã\ÌVK•­üQ«ã¸PSÚ <׉Eœl^Íêàè0yXžž[Š!ÕܶòÝôÂÔÈQeºAq¦|�œÆ¥T˜ö›Ûe `++Bz¼ä8"Çs†ÆÜ=ˆŽ%�IZÄ)Àô->AûàÕ„šzŒÊ¡ ˜EŽÊ}¤«Þª«œ5ô§†;°SµR>IE~¤å ÒU“PHϽÿ@R(=˜iMë÷ô|‘4±Lët—zŸ.fèÙ´)p¹�l½áÎøÅ»TÊai6?X-»ƒCØ­ZûáK¢-¾¸’CE BK‰ÛÆ*-ÊèøtLšB' …-ÖO“ÿ4­‚N(°w�ÏpþráÄ™œû~ïj�‘”V?|¢æjoiÝôJ?Y Ìlêfƒ�; ÒJýBMÛkdmìPãnE„¼Å=/ –ˆÑr‡ 6ÿºP>›éÊvñäk®æögÉž”Á¿ƒ?G˜yÁƒ� Õ¬+Î0O<‚Ób„:?›¶¸/ š óEÕO1§í$€Q@ò!ˆ× ˆ¥W¨¢Çž3â“ãA·='«–ÁjÌÖ®´ j9\î¢88¶‚»�LµÛÈܼ•î£ØÅJÇê>9ž"<~щ"bqOÜæ í¡N°Áçw‹êC�õÚÿÉ+–£FìñMU¼Y¹‹£sÖêRq9uˆ¸!’×mŽy:†ö)š)}?ØÉëÊ#Û»]„¾¯YIèêñôRCA[Ú‹�ãu"ŽV|÷ rÖýÛë# ac]igëd›aMD…ÐòtŒ�mø~L­¢¥àErž2¬À.\�{1š\ÎîœgíÆ ù[;Ý"·2YÓ´L¨ˆÝâq\tPݤ–q—C8çbáLû—~Ъ7«$"ùyBg!­YŒµéÊo&¦Xxýb£ 8D‡Ž>õ P »Š�¶â@Xß—oûd*Ì B9ȱ(ä¨#½¥&h+¿wÕ…`:0~…¿KgyBø9‘ú)ÙÛƒÛlš½ ò˜1¦¶ ƒœÈ!û“¼$-NªÐM£ ð8¨\ŸJÕ%e,ûÚto²–Zpf3¢I0M­¡÷3ã­Ám½§°è&yEz³P„ ¢90¼HJo€~PbÛ…´¿ºvøãvöÈ^©3ÅÃ,ñ!_ÓøÂtÁãyOyÙ…š5æ4oö¥(Æ!Ò¤Ô‡kyœH+ÏQS2pôÑ¿é ¥ª(f(�C–-œºUÃc¦AØÀlUT|XEpêljì}kü YzN9 `þ2Mâu`-5xÊgt…ï4méïÀ׈]aF¸ŒìT=£Ìø7§À®ê#ªU”Bž¯ì>.ù¢X\“~¿Ý¸áé!^‡@»óm€y�Jôdy¹•¾×±:²^gb¢·^šWé…OÍ·;½k¿­Ò“ÁàÎ:W„‡Uay‰QÒ¦)ŸX̾ð´$Gëyw“B,ãÖŠÈnn¤ÕŠ>$»(^ /�Jг¬òeì°úþ¹û×¶R6ÆÒÛT_«åÀæÒwÙµ�¿¶S£ë>¸…i„ôè=2!kï½Ü†è£â¡üp�Ÿž•‰Ú¯éCë¤8ni ‰ÒéÃõŽæZÒ�š¿hªÍaØo}¨a´×NCI�WÏ«Z[¦ºm@&@> [ÆO��"-¡£l[éÖ 1ÆâÁ„»%õÐzá°£ï¨Zç�‹~5Ô”kÕ,Q'`CÊJv¸ñNç—nùkÅENaù{QKgÕí´:s¹˜7\‚5<ùÚž9àQÈ á=§j²To.‚±sSzêÆj„aå§•ºoÍûvå'V柨ýÜ®®hìFwªƒ¸_ÅïWãN1€<äoHÍÐ!SéõÌÞ·°¹bÚ®Sà-޲”§UˆM˜Ñà°ª—�ܹ3….žq~So*”¯ÅÉöÙnîÀ´�¬È¡�ù� ôV*mŒLøë#ýIÏé�À#Ì6Ñ)šVzPØPpCPÔ>¼ïo�CçOõãšœ†.ç;¿Éâašè9�×S�N «ær–õ^¼}…C¢&øyuU!*x{=)^–aÿå{nüÆ*5¼»)þe.i`SpÍ1‡Y˜oÛêÿ�'•ñÙÒŸ¡ü(‘M/É—Ù=¤\å×1~m1aúí-Eƒto‡Ñ_�N2æy¾Õ㳄ŽôF¶®r<`‹Q„;²,C„Ã2VçàË�Â3 ÇÑ6/V€ÿĦžŸ# {ÈËr"…«£;N)Z3 »SmÚW¡­ï[!ØšÃ9Aþ­�_2òNÍáqðY# P…x`¸¥lCÀ$B‰ey=hÔdù'Ë�ŒÝ¹H,+ xŒåüQHé½ò ªÕ)Ñé`•`\©Á mmÏöV>£2õïižÀyöÓu¨ùÓÊ稥§«@OÁ7cOvAuඬŒ][në�ýš�™ÙîÓjK/·KãI@a} ëƒ[á•¡€ü?ƒ$6ÄÀ=ŽªlÒïÌ;g%c5¡3?QŽ­4õ\•Œšñ†[äm»¥¾uzÅ�2„k¾_ˆ‚º¸S©ïg®\'×%޶%s¦ÜÒ×Äà:¼ßÎô``ßœ)Û”¦Ìñ£|GD–¶NŽ8„h¾Jõ–Ñv3ÀNŽièe#, 8æ·¾äEî{›Oß*÷Œ]å ? 2• N;ã õ~¯(ÿ¸E:²é¯Å‰Ã™¡›áz°·aþFŸb™þ:Tßiúóe2;kDkÉŠ>œ3¯Ðêy¿8»2ª»7RÏ[( kˆ&³‚mný/¼ˆf­\s–K¸ÏßÈÑøU˜içº#(�™|8ò[uƒ>¼ã~véð‡©Ôƒ&‰ùM䈂"a¥,�š˜ŽqxË׫Z†NÅ£º:¼±Â‚è¯&/‘`Ý ŽM£®¿˜�ûås�`¯hÆïÈ?u¼ ÉÕ+eóG�ñjã.2Å×ÕIR¡¼ñ:èÁ¼°íR/Üë©ifÁ2D5 ”¾9Á MÛëR­±H È‚|s8“Ä2:»-ÃlÀ+Ïk>&mmÊRÌ‘7¬£×ÉYÛô؋†%lÂ?ëÞÀ$YG6Dê5Tó˜ ®o±üPðr -׿,vUé,EêbÙøi;O1v? è¬�Ù‡ÚµK(oU6ȱd‡­v[·ÁéPjTkï’M¿dÿÔQ|gÏ—ºmä…ƒü­ &ÊÝ çŠåF¯|ÕH µ}Í¢¨‡­Ñ7B¾¢YòLá�$Ó �rd-P{yµû…WŒ ?)‘&j»ÄÉEÅÆ]ĘrNW|æÖæ  bž{¸{„æwÐMÛ1ŽD‹–ßRÄF¦DÄ8LúöÖlåP]/€gØÂ¹ÀâLÉ8´jð—«°R¨)­Œ»µ>ýWi¹±'¢eÎ-ŠÔSˆw½O¹ÄõìGªFU­Ð Ä¸+´€R¹!ZÙ 5ð¶¼#Ì^Õ¡HÒ´û|XÖ¬_ ¨O%oôBA†4KÄb·¡[kQŠúähŒ ­É¯1Êæ]yÁé²ñ¦¡ÜqKÄ\uÀq³É =-S»×Q‡» ÷Åî·É×¥ø:xHW‘:3íe[Õ@‘@ç8à´œª\Aãs&¦Ú˰îD&Î<⳨t‰E$¸3‘Ë6¼¢ª Ì?Jå%EuíMºŽåJþ”�æË›¶| ª8•cÆLcÄR1d—Gꮾ‰­Û'í ØŒö$í¶±�¿‰Ð)Ã¥‰âG³Ô G¦Œ¿ýuûëøÍ“Ö^+¬éN ¯ýÇvu_*w§¸TN–ð¸%¥Ï+¾¨µç�Gƒ-„ŽÕ±� YèîMÈf<ƒGîf1è›Ç¬°Ëqp¸­!3Ö'¯öôÃÀSÝ�‡¦‚…Y3¹�žk¥Œ¬S¼…ýÑ!ô¡¶=âFú›O%:5h¹(¼êñ‰wQWÙ‹i-'9þñ€‡òÙ:Qäxg†Ü©äI¨ç(Ib»{„ÿQ¨„hœ³.wMv’¡‡>K{Û9ÇüpK¼!þ¾µtYê§Cp`˜éÁ2Î…íª’µâš [•ÀÜÞ³£× á`Ê~… TiœÄ£&”Ð+µ_ KîA¨< àøGL‹Y°B®½ƒÒ2›;ìn-»3rÉ+ž²›”¤§³B�Lík8vÀÙ8yNeþdªT“@\›÷K_žá!^Vïig-cÈû”dVùĆLyåD™·pu`°cGWs½æ—„�.h)âäÎJ ÑY^âúþ9ÈÞ½§š½á)LqPÂb�×]ø<Ú^ïZ]ò (Óñ?2 Ë™RyöLár‹#Å^¡ââs�¾ò‹š‘¢q“z£0gúGÑíô)—k÷$…À•™fÀâV·ƒÀ-%ˆ» Êw)õ«¼Nr› 1|þ ‹ï…á˜qž � šÚBX÷_Ëo¯bQó�Ê’åF^Ã! Ƥ;ç‘Îä éeÖßVÎää*Ý— aðWËñÁ¬¿—ü v+ÔÚüH±ÐJ~œyH°`OCS/0þÒVµ•š[[}‘²æS(‰L7{ ± áÙùHË}¿)¿®CØ’Žóq0ó„t”1¸‚û?ÏUzwùþg"û€ÿÁi¸_ùPe<« .»Ê(1h£Àø@tjùpñçO²ƒÎŸDV6 äF�…�ì~ÔEµ7Њ|Xa$Ê€æ‚Ç›’¡ä±°D¦à îêÇ€oÏž¸³1àÔšS+²aµm_æ0¡99ðâ —qûl%�ÉÃ{­=«#ñ^•ß3ºƒO·ÀHQá1+ŠÝ^L¼0Hñ Í»f~¥ißb™}žh]ÿg‡‚cQ ' ®˜P¥•K!sâÝ/��ÇÂ!OÐõ›gqNíõürùCìàw/¦ÂÏ_§ùâNß _ëáÿ\†ª‡&XâprtÅÓhdu¨d;ÿÎ֦ͷ v-l¢`â{XO7”í­®}¦ˆT&·ü³s>³�ñ¸d|ÌLÏ)Agýä _Äç�\y€›£’ë38½ß«pT:¢`"ªæÒÚ 58iV:ƒº—5°é'°�}­¡Ì\ᯩk#¢Óju�(]øî×*"g ‹0^Ü·ßúOUñˆ--B S!q‚×8>®‰aʹ?>ó•b˜f€ÍJøwŽ…ã]MB¡dNíVÐÔ¸›¹±è‹ÊÛv.£Z1et�ÇWÐ~PYÛ’úÝêyÉ–›Å¨ò_Öq+héX¾ªÑ¾ Á n&̆ñt¼Lìœi´Z¾P*ã£�‡“ªeéP•‚Û8Î ¢ólP@eŽe_´Öš€ŸUpQ¡y>~§Õ*¾•Lе“Èc4ð-wÈdDY&@”d7¡1#ßò¾�ª²ˆîYÆ:Oæf¸·q+Èß,^�ð‘Dã7KP~´*Ø�…~áØqa¬;ÀµzÀ˜H„¿ÃÇ;I­w$7ä³ð4Mê«N¡½"Êh7¢ß¯^/;ßi±Õa’—_Ոت;L<ì% í�(‰y=SÀƒ Ó6à@mÑÎÀ?⪋îý¸œæe}ŽY—r: >ÏSÂæe,=$ŒÜÉ©rÝý. A}~˜û€`Ã!�…‰5GgXq‰à} �±–ÿ¢öWSwšÁØ–°ä’é`�÷›»‰ÎT8H ‡�2ðXnjôkÝʨ9sCĶc@$¿C}O#h.‰^TU4Lç4E-IÓÓ92ƒÉ°œ¸ìêÐr;4þÄ`™Ðtäý¢ÒrÔ©´Ü‚‚{•3�Ä Z'Ïœöè˜àÜ>åeœãýëezvl®û� Žy‰×Ò÷›Ô¢B€-ôgû*¬xkÛàµÔ�àKD·e¹y‚…ŽÑõäšêGØ.ÍÞ¼œ£nh}UíqV’ Á• % 7>›ÍÆì`fh%Ö”cGf:îX×hd�m<…ëž_ŒtΡ㸈ô‹ÁÑÕÐñ~×—ÕŽzB Ëiv¢ÂÐ]óGùì o˜“ØDO²ûLm­¡7´úeñ4]dr„”bµì–\1C/sm0qÁ´¼b@y¶´«~fŠãjI¢È‘±n$Þ”[~þî“§âÀüÎ�‰µƒ®nf‰Ìon—Ç3WRhªMa.Ä we©ìj ü$Ë¡OĬ¥µëo™èy_w}&«3*&F[Ö¿hgøFÓ¯ƒRpi#T„f­X,ùÔJ�Öž>ÄšlŸ¿º@æÍVøîR�ƒ)‰D&ú¢Ü§# 9ÿ‰{t3ºLWJ#ëN kŽŒËÈèš¿“U—›We1üš0î( ´\ïä¡ç´ª;šÁ lÌ fŠ�(yzÙÓ° ß°°º e“‘¼Ñ¹�›w鎠ØHU“žÖ4é%ôvšy5žgõ¯Ýþ27y�…5‚ÊNôÀ.ƒQ*á'\®_ÄIÿH–Ónf‰pÞmiG‰‹ íéÐ)L'2‘PûŽ�׳HÛM2<åÛïű‰ÚÔ“¹Õå`.Õˆ©uå9u£Øœþ †I`Ïpˆ1�Rü�5gVмˆò‘~ ‰K‚R Ñ BÛ»Ó88åƒwB“n­—&�çÕFf�ûˆ|²ª¦‘é9¦’œÖjó{lQØ7DêbìLkãumju1b"¹ÿÁ g=Ó%·ÛQ”.ô<šÝ<˜ r�Ø .?±ÉO g""#¨fÓûÀ“œÜ=ƒg.°"§eÚ áÝÞ—s*/Ç–57/.]vPç¿uÄ¨éæ …G¤jIÜí«|=U@ <Áµ#+vËA>–"6è4ìÂv­d�ËrzþvÐÞNÍÞ%iM¸±Èô* ŸdÖ#4L,Qˆ–¥ãSâ‚’ÜJĪÒÈe\Ë�™µ9E'ã,LúV‰éà•RÞÊòµÊ¸l´9“×Hx”:½£¹IžÁPm�4vóXÓqKk6€£Äfè¨srŽuXѳ'ƒjþþþ®Ö�€îÉ•aYCˆ9êá#K5¹Ï4£§ò4ÎPm*é'¶7c¼ŒîÉy²‹vñA3&aA™¨ã9Îô(ñþA‹ÁÀ›�þ>m„ˆ€k—’0)->îĵ÷í6©gäðT—ÕÀ#Ü¡¬.p»"yìAHI°h}Ö†o8¥èûXÔþ hÞÝò{ Õ• ÿ0nê=„ÅÛe�ÖîÈñé¦!Ë›¾çuüÉòJm� záƒ�Ži¤¿…VæEò ̓V!2Qé>Ö!Þÿ¼ôÕ-¿¿¢Z6e¶üë“P´›?$Q¸ŠØ=NmØÃ~Öý–Åá8x)…~®½ÓWî7�ìÃó!‡ xS¤ñ UYœ¾%w0#'¯lbnS¢ÁŒ"Ô>C€±²Ïòó¸’�nÖñãÈ[Mæq8Unß¼ç\ÛÝ~ÒòÔ$€4%",�€ Å ®,wý_8ñi"l˜tA΋°StûMdФåaß’© Éaãæ×;’¬i¹QQF²A;ä!÷ã½ñ"çÆI�¾çÙ±Îj v€åXõ‹b­‘7ø!ÌA|a1Í-@)ͺ(°ìVGý¾¦JX¡¢Í{a€ÄÓÜè¿Ò ºiˆùÀkÎ0hZ¼ÝßA)Äð™æ Ú8 ¸äz“jëɊ퉤3~Â}õ8€^r\ujS×:Ñ×k- s�hÂï¹v¹Õ7j±‘þýè³>! |¬:ãVDY¸Ï,/ûnEÿ*‚vQ%ƒŒ1ôŸüèsž å/ÂJxBú_¯V±áûTéÔ~ÌQæúãGrwxm¿N;i’Þ?<rrþѱ°I‡ø.vbÞ×AocÇeÃw壽%ôshÜ“¨ßÅŠ’ .íÔ¢¿ÝJïÒˆ–�¶ü–û!ÉuB�ŒƒG{t&ùH¼ÜÙˆ_š)ÎÑobÇÎÕécw 4àì~ppêVñå»ã@CùÎÅ/¬xF•JW³` rtF¤ÆKXö‡Tk ¦NZÀ^aÏÙ!™ÄYFS��¶ùÿ˜×ÃF:ÁZÒGÝcøs¤�Œ™!¡§¡Ë@ ;7Dÿ~}¾îjô]n‹�†¾C«"�ü›­@‰ 3º–”†úýV{íi@÷vc�@_“ú·©Ÿt½n�[�áÜ]u,äT‚íƒ-^L2Æb•VàFÚ±4?à§ìœÛ4ÐÝö4b,û¡KäêûÅŽ_æ ™ìeãs¬¹ª@˜ýø5ä„»¿Cè+ü®$ÿ`áû†£R„ #?�>+*pÛ¯™» p©Ü¹Ö%Y±v¸ŸK½ö7Ë1“>ÑPäPÜ¥jठ¸H…¡¾›3€«ÑŽgü…XX*­4¯;¾1£Íóß]]À”úWófæsî‘/Š›®ªX;šÂáhÞÌÒ6ÒÖ�íl×=?]Ƶ£¤mË´'Ó©Ò^Éì}û ªÇ∤<;~ôžÃ}Ø•l¶.L<J"ëéP†?Œ*®Gl”$÷l.Ô·:¿‚f+…AÕ°>—Æ5@?§G:™~JmËG»}§V`$��Çíà/ãÜxu¥˜Ó©‚íè倖mhÏÓg�ôíÁœ²¶gÝiØ�åñ²Ü;œ!áÈo~ðÔ'PB:žÏK‹D´%A¨·%⃠'‰TÞ÷K8‹®´²Ç!M¼ÿÒ#ë5#9õßoé÷d¾˜°½ï¦Iøž‹÷\—o¤®¼Ä?AÁaef[“bïÉO˜FÅÉk»pÇë%n@H!k–dz=TÓ¼»‘Xéü4ì…îƒ!»!¿oçéó*�ÈÜA„†Ôõº}£P_òÚ¹ª�»ÅÆ·n|ÆþmEµ¥È@A]çã¬К–_E/Ó¢fÎÙmË` 2…cíÀÂåS¸b¯0Ò³:a xbD0°ŠòÁï`R�J¡¯J~pŸÌüÚñðÒ+Öøy!²,ø>¯wÍ$+¯å"öït:YMwxÇlq‹#ÔÑÌå>‹-~(6¶ïÁCL~›ÃóÀ»ßçP¾tO º�V¸jjÂ�xºñ |‹j§ø.¬ˆÕŽ¡�MÖÏí~µßXX¬Ö«v8ב ¬ÎïÕëhO¹§é{�mÇßž0à6[6—ÜÿekYäóˆ­ÛD‹éM½«i½Q\F“%е¬ ¾ug¸Õý‰ÔýhR�Œ9û¯ÅcJfç´ŒÐ`��oà‘º�å¢� W}Ñ�ñ+²L>î¤fÑV�RŒ€î³w€Fš]ÂˆŽ¶Øv;Ä¢OÆ"¾õÊÂM‹�Urgýgæ“$R©Î åÖ·‰­�! ôª'ÔÖ½xË‹²ÆgWT�Ý ~nRaP ™c vL“*)Rmë5*—_¬ÍTuD¨™@XÌ4¦â+ê-ú\MIß¾ Ž½ê†Ü6°2gþMì-”�A$‡ÅVp‰š÷·xæ>yø1íg6óÕN*{‚jÈŠÂ × ô?U-�×Uìñ¦‡ý#92ô{ÖyÄ Ü³Ÿê9Ñ{�ñi #¼w»füv€âö:?UÅÌ …|FîdGq°Æ ¬ëß*}SÎØN�šåU ††ãH™Gió"ÕȤÔ­xzá™j4‘…Ö¼üôˆ²²züv®£úË¿Tÿ<û˜Õø¦BEôâžÁÇ÷…5'¦~15¥õ– ÕTÿ,¡ ™·R1ÝÓV=õªqäR3oÕžÍpc´<· ‘«ãG±R��üÊšÓö,RöÉÐjx —©ÿ Ô© •¼ý"§ ׺:AzU÷2}=±· -.nüî�ʰ‘ Þ{ïñy†«ëÉŠjr"§*±$Œ®ù, cš 5Bea»žpÐÕŽZë¦!¬ø»<·ïÎ&Çâi&Úý©YÒ|štžÞ<º ¾¾ZnæÆ±ÿy*æHØ­«Ø-¬2ÌÃQHŽÔ¯Ç·>ÖY„€S Êâ­> †Z#w©?_»×O!v?…)t¢�ϱOÑHð‹šEÖ—¬šŸ½NǪPO!̺yì'U+c,€Ð´~ŽAþìØ^kà5-QC7þsðÃKËÖ#¶-Uq»`¯3õŽ‚±ðykl3ÜÞ°³ˆµë:5“µO¥s8ø½ Pæe²‰0×Síš9‚NèÅ–4®þu–}ÑQ0k¡ýÎk}>iÈeÇÞ*}'ÿOwÐD6×:Ï£žywxåb—ß:c^ЩӢOŸ�ùš>­Æ[!xû%®¤¾ˆ3Ïžœ‰Û¥‘«ëFÔëþ²™h•¡‹'öÞe¼ëÌßÑžî)Ÿ\Îìòànm>}9C¼Ä ÿw*Œ\ú GÇK;+¡s; TÇ”Ôùõ Y�Gü…Ý^’S"®s2Ÿªµû‚þƒÛ™Þ&°&#•%.¤ýúˆ±q…è -K 2k3ÞÐi™PÇöWx\fµ–•0ë…ø¬çPg›üÏ.Ô&JÀïà(M@@ï߇ ßÅQ *Ô\®‚¥g¥0û ƒ`Ú+¨¡<!¿¯pŠªdqeŒÐ¯±M=”ã=nÿ×üà¹ó w¤¦qC!F÷XsÕ‹Ž‘Î ¾´:w¢•ôË• Éð‹âG•|û­üW>ÞcúíÜÆÊÆ ‰/Ç�|¡°gcžìÉ&ƒ°õBy8¡‹KÕrw»¸0fþìÜ1­V¬Ð½ê`Ÿy䬊+mesu�¶z�Ô£"à}²ÛµºôÔÈùáz/ÕµãªØ}ÂÁ7ã'ëjE×Ù×E/æ¿.ýÀz™¥ÏÛÅ•Y’˜<Ñ VëúŽú;ñJõÔøšÛ-|/É3]ŽÄ—»kc³¾êÛ �ãók¤oP£»}ÛIÐÅ1>nñg[Å U 6jòmü¼2ÝéïdFLˆêѽìþ¦áÊJk“Jz¥Cˆ’†æï æ7/<œmÇ‘i,*»Âü¡mÙ¨,|ÖåŽÕF53Ë1ߌ1ºÉö¨ð&äÈÜU׋sß ZUÃánf¾%°3«â–Eæøz‚i2Ä*þ}%éE)ã6û¬6ºÛ".^ò÷ܺ åÕãhäBäñ³‰Ý ^F¾;IwuÉÔÑ}c¢÷É·ïRM¤¸ G4DçÎöS_Y�V%˜R3ßÏdÈ|&í¢¤•XEæÅ”_áßn.�DØ „¬ÞF}þY Â&„J�½]„Ih3z kQÆb„¤`½?€b‚†°9b.˜ˆ{+Ïl:Ájöi—mÀö,T™¡Yc~h™Ø7è`UøúDä¾Vo�xÄv ÝsáCÖ£•qvç‹/Åt}–,_ám­`~qÐBºLNy꺄<ê`›(zN–ümüÅü‹;]¥jÙIi¨µx0íav�T}ꎻ{ÿªpÜr"‚"¦è k^ÝÜž¸ao¢Çµ„ÑÓ—þÝ”âöJˆ —Ûæm‰ºÉÐ`Dn†{?²YÓ©GžM�–îë�“Q}ÿJžslk}«A¹…寋¢µq‡�]=Š,OVËb‰rYÎBè5µÜÏæî6em;g,FFÝÂÅ@ÊáÑ8YÕþˆKÃÖú]NÕô`á O¹t®ë­|ÎøŠª«Dú&'ËO¯¾ãÖnÖF$®@üèbϨ˰�Ò£$=IíŠa(Rq¬*ûѳúS­'p�¥ ?mWÈœ€ò“tÝ>#`Ÿ!½·h°V§ÎåA<´$�lC`Þ冂57jö¢ï†…ÌøÞ…q ùƒ}Ö3 ’R}D-¾Ñ£@9žúħ3SdLÞ³”‡§YKÃùöŽ)b4Ìâ )ó[«JQÖÌ1s9¡ ýÞº�:Ú[%‹ÚÞÄfûµ„g JJ-J蔡½,~çlO0Î-EÉ3ºÚìîþ\ û3]‰³p´ÄR/ÅÝ–ýq6>(޼J %y´Í{€·Ëqàæ TÅj­çRlÂMâ½¥“a”Û jDg�–SÅP“) çJ}#EM›ž°nOÆëm�ˆî”ui¨áÛšÌ6Ë‹QwŒŠ¡�gÙcï&<�žš.–Ínám�‰÷&ÒW¡yÀ$‰ŠBv¤ûšWhÈ6ß\N–uš]ÒÌOU6×p\·½>ÃX7*¬5ìI4ò\ŽÀÄ�<Ê ÈþØtÅwËjƒòø^cëÍG¤ØÏ%A‡”z5LuZ:±VD¾æÕ§qû9…³¯»#µ2žêGvᇠzõ*mJäøÍà Ö/=aŽt¾]…Ç£ÈXf Ø�Æ¢s†RM¿Q‘­Óz•]w‚Ù˜ +7ÂàÂM)žkt£Ñé[9Tßov7§ Œš.¸’j}³‹(£&ÖÄÄ OŒž£Œæ¥³ ª”«j9u*=ª¼„Ðrknóµã®›Ë2 p™`EKÙ?è-ÀUÑ�"e¥ûßZ–z=Lu/ˆH½âœ¶@ÇUÏ�\AFÏŸô’°KšN˜°êÁU’g«ö¢ÍÇ­ᱚ½B–[4G+S¦|zÌd+"牳x6׺Qkü‘ ],«+(�^C¡ ný#Ì–åŽU�Q–ÉRgPÔW)`1ž¿ø]‹çôõ>À°ÐOsoíÅk'o\rgŒ{÷KÓ92YöØÇÄ_¿°A2è î1)/œØFyAÁHª­ 4ûN½‡]´ ¾Iu€¶>1EÁÏrõo�òàü€µžz兩tûWÏ«¯»k(Xû¸BnÆþ÷†�Õ"~žÂ=ÉoŸFÐͦçŠsNí°3ÀÃŽ”'A -ÉRéMÑÍ�=Ç€É O>d›ÁdF—¿3·…¡X�0N‘Ð^òYz`‘ŠD(÷…1̾õè¼*Mã}Ô„s‡=�ñË#í:Ý—˜„ì¯á�z26^¼2D–8zÍs§G¼ÜPxEmþͧü�«x6[VS€Ú·1Ⱦ²”€Üü¶^ãˆMâ·±¥¿H[~‡¾äÛNsU*a­ò}ÇɃI5§)Óðƒà\E?lW§G>’0€ö�q™)ègTnï×�m­Ï P»i44€’36X7WHžù|V}$íejÀ0£óŒt”øàóSa¤<Ÿ–Ãa…HI9L=gÝ[� ñôàvõdÃÖ:< ÃE°fð87å�—Ó‡•,TïÒܤ–ƒ�oúŸŽU³mùT}#§�_¨+¿'‰4Ýéq‘Q#cˆRXD¢U(,ÿóYÄl „·90k÷RþEž¾\ao¥÷Ïaƒrä Ý`¹ö÷*“>�9Å,8Y@H?=‰ÄM•ñ-†œþ­™¬+ÀŠšÓ µEñ:ñ#§dckfE¡¢Hé£óá1¢Poœ³P¶l Þ ü¦™^B¡B~é°Èyƪ¯­§ý¦òQ=²šeê‰åÞÌ�Îè%[ ›.@Y†N›ëÇ»ÃuÓ°Tt\.ô€D߬¸”{Dû´ �‚)CW‘OÛ˜ÒZçY8N#Áþ(ÿF,v9וˆRÐXoŸQ‰í;AᙤÍ^Ívsc'3¡@š;T>ÅJ/þ[ðÞí‡4ü5Ò>SÀ”æ$þB˜]ù³ß$M†ÄyÛ^Úö�²äÑs[;.Œ‹eFk]΃éCF<мlêçˆfËQãè^ AÖUVrÜ—Ž Ä;öi�$;”+f’â¬1x­ê(LÄVyâÙÎãª)؇pà–5Âg#ÓÒêdíY›¯'¤RIžÖ™„zúú“àä؃Š£¯1(˜3Åvz�¤Gk{쇺¿BËçÑ®±‰ u¤N´¹¶ZX‰I�AöP7T„ÜïIÉÆ7 NÊØ«>álÀܲ/Á¼{Û´´ã®[’ÌT//7þ‹rä1ëgÎ\5å—¸n8?˜«¿Ÿ”lI±DÜ­yût*‡±•Ds¥õÕŒfÊ2aœ0Gã At=ì(TW[(öÜÔ!õ©ñÈyçÇ´«77ôsFp4µï R‰Œ×EÖ’/­,Ó˜Å&c­+&sî!F&S=±FŸqÿKš4d £Ux¶D5ó=9𠊳9JÙÇ‘ðÓæH­úžêóÒ™&ñ;k ZÏ®\Áä@Xm�³']‰,pA ×Ç”1ï‹ãçæ‚™.#ƒðmÖ-oÌ@˜W»å7«ú¦@•O®²b‘­ÚL¹N¶�Z¿ÁI§Úºáã䬪” ¸aBzS¸Ã]O‚�ûñ?âFYf,§±™–²� ùõJäbÈð¸o¡Ó–;Ä *ñsš¼?‰àωu…F3æùbæ¹]îMiž;o„ÙuhÍï ¿¥®¿lFÑö§x®<¹}6wÕÌ]FMŽ�9ì96Aj±rhT†ÕNôdMKÔ¤ƒ´°¦w8(%&.¢tô2l´Më}áÖCï�¼&<·DðQÿÂgùos 쬻•·×ž*<¶!°�)¥Â¬z¸B»ò2ŽlžÕþ íx†OHFô�s›ß讋‡.û©UÚêÃ烞Ï÷ªØ{A×/$»Ó}ý ß­2½[aïìÌ _ b$�¥€L�¿4ø*¨ÁøjÇz~Z÷¶0í|K !¥¹kû2?¨€9tÆ(§SQŠ”Ç„Zˆ±RÞê.î ¡Öw7³k‰ßï¡TûäD@TvEŽÓ/å5ŒgÀäúâo<’®@¿FÄ’†hyøÃXF#F›,ñ>¸IºíÁ%�/‡ÂøÞöê3š‘~s¹=aî¯GÂF‰O)1~š%I&�gÁ¶ìôÐWU…Ìû•o®‹*‚hI…Ì"­cðÆWµ×Ô¨†`Ïb1KøÍ ⃕ýI Y'‘i`Ìa,z9k1Ax[ÜQ¢®0á<ãëχ¾‰ 4È�–‘Këº^òÝBN~—·÷;÷“Ëae‰‘Ö1×5ýíoPŒm­©˜¿Æõ£‘kCßsçÀÍ& y@áPß|!OpY˜Žo§µ`=8Öz$'iZZŸŽ$Ñw~9¤õ"pQJêÙu´XùÁA•¦Þ"S=&ލ0bUÉ:sœ¾8‹|&E~-7’okEV»î÷ûØ·ÅK‹öøJ8@Á­¸¢ÖDQ5|.•%QUœ´Û^ôq®- LBtÂò_êÔQ¾£/†f� òÏÙ B2@§�L\à‚f?~¤÷}ôMgÖ‚³8Jåþd²ÙŒz9àÁÖ‰äÓÓèÎÉ*†¹S|–w®ñ$¸�7V,¸Ø\<騒Aw'†1­*à-Lùx³”0DVëPO6¯h?dä;ÎyŒ‰w>Éåžk£b�9xSíÈ\sŠ¥ïµcL³ïʸ8Ì?Ùp‹„�ÐüõàUûj:u÷0>–üˆ½©T`w 1¤Ð',ð*ø\YæR…šZ‘¾ /ή;<‡Ø22¸¤^âD¤.68«HÕ—ï˼Í.Ê#QlŽŸñcãæ‹ qöa›Ûñ¼Gšdï#ï¢9¥ž—JaR° YÚÇnTå|[¶˜q‰—éV8À$èg‹þJR‡ø„ÚàïG´èðš 3AÔ1ê%ô‹#ú¾W0!ƒïo]éÝT€N‘•î¶ý X�@+²î^DbML;¡hyÎþ�¸Æî§\ÈzzDÇú ¿e˶XWX JÖýÑJsúàœþ¬×øžZ؉g%*ð ‘g�zÐHáIHié  Ü$eOÂ|ñ&�}ÖTŸ¡iì'GÆ$kr¹8yPAZÃæºtjäÎwîuÆUd&¼Ô½¨°12ÆŽœ €K~1‰´èä>ŽÅ¹ÉYËÌ©?Ý`Œó Ž8» +ÔªBkßãUøÀ“ýŒ8ÝÍpäîálãt¼\(¢¥Rô@=Ðk$ƒ‰Û™ÄñÐx4ªú3êÆ‚_’ŽÉ(öõÓ�åNåÈ>am·>UóÅðz�¯P‹Õ%üÙ¯lç&´³Öö7© tÙ,  Âì‹ A]‡.'S§\sà>@Ê~0ÜôCŒ�¯Èà!m¦X= Ìõ� ®ƒM,/ö‚ £n,ß-œ³h-Vr¥ð§ÌäÔÇGíZXÙ |+á>Áaúlú4ÛÓÈ^Ó©;!–¦õ´˜IÖ± 6,vªhä?�søæaüˆ â* ΰÝ~z¸�(‘‹£Ñp³?v…Â�ÿÀ[-¿„†›Ú”‡�¨ØJ™Ê@Ì×ï|¦e1üwŸ.ç¾g¥Ô;Íî'&ÌGTîxÉd1¸ì mS…�Zn’ž{P°5Wô± ;®ìûÈçÚÏ)±'‡O‡Ê];-E«ÉêÀ³bz<“GŠü—”¬£&wëøoŽ¿,¯iÆ|�¹/Ö'Зâ‡_6/Ô'�ŒUæ¨ \ˆà˜À$Æ í¸á0f_\m¯Lˆ‰®A¬!/éu>+¶ØžâáÈãá„PQ„¥ãÀ¹Jº9™ö°b(vömz¯Á}8Ób]S�Cg#ÔÊ)'•F¢³›gp|çSqA¤£œôã7ƆÅx7WäÄèóç�°éÿ¢#$á,fì´ï1§ÚÙØrá�u)›€Ä–«GóÝdÿÒ¼ADfìPªO]Äö=p�¢•ùœ/‡@)µl ó\QéA�Ka>‰@©äõëY «Ö Ù¼u]ÌNödlª�qcA Kíw¼Ú-¼Oum ¬¬Ñ\òi‰VÖìgöÓo½ýß4vÄž.ô%Ezù=szSë¦wDuÔ(• Õ…oÓÓ“„¢ÿq&¥¯¶€¢·1R]ýÈï²æº§fèò¾0€.rfüÜü~D)5B±d ¦>^ŽU cö Ž ósöpÂi�œò·?$�¹D­¯G�Ôζ¢ó`Š˜u ò�9ƒÑ ª#ª^LŠœƒÊ.·¹Á¦ w¥êÐ=+,°ÙQ�“ä?6ãÏš �îîÈÜ7ŸP5Š$o6íöƒ¢›v<sZòp˜¶G¦ ¡ÝÄ 9Í£óWCöâ’=E� ™Kˆ¬ÍX~¶ìxËûßSƒugŽÁé®]‡³º‰%vçZnz_�/2ß·”&)úb³˜Éi= �RFþ)²›ñqÒk`& ”¬úøHtƒ ˆzKiy†|#¨C sª‚‚|;Á0G[=¬ èŒÔÉ!€?§S,øÉUàã ®ÂF¦¤\Ù‰a>oãZ�_¤;þšö¯ž‹n”±MÖ­'ÜòENÔ´:²ß;è×Àh¬Ìáâþ¹²m�}ïûb¯+\c†»@:&x�›;àÆô¼ÝJMGK¿ Õ›D‰éÑS&æ¦ Gòš|µ¹œ”Àq¤M6îÐ×” Ô^_Ó‡MÓ®Q w¢ºEð07~k! Ľà·�5é~´†™ÉÅë Å÷Qÿ~äÛ©³+Œd eÛU§�ƒ© xØ­ÿL0*€È Êå 35ë4þÊœiù‹?ÐÖã— †ffwIp1=HwJæãá £9 šM¨òó6N¤ØŸp¼î[!‘¢ñv6oäMí�qÖbƒiÖHÁ/û€º2Ó42d5M/Ecáfm«®"e¨«»çô‡�¯ÒmwÛÕΞÍ1L*úbfTÜRCã¯ü FŠt_ Á艚¢iC²Ÿ-`3%ì-&c}(™N½Ò ^Xb(À=hQ$bÐ÷K}\¥«£#ï‡!awˉ·k¢HÎeÊG\+èÕBÖ£\ž0!üÛÍUWäQÎí ´ŽGøŽõ„•*€9•~ëµÓd�ã™õ2»N…*d ×;�£#R *%ã:§*Âh[o‘{ΆËÕŒ�×£ˆ‹V¦°ýQ¤Z‹ÞÓÒ&ð9Ÿ¹+^ÜÇÂA)ZX7ùYV‘zè½Õ¡r* nƒ X_ÌÞ ×odÐÍMªhyôúÜsÅ^¸\P1{»$‡Ñ�-–6¹•ÂSºÂÕÌxÿ„¿ß†AõU­<3EEš&Õ*€GZ¤Ü´’r�tF x™“{m]›ÿ{D»‹ÙüMŇIö­è¨r’¬š ”ŽÐrÁÊòß=™Êúá‰Xö3Ê/x¦Í(�T6Ó U-[ʽ—Î4 0œ´Ïx©ìšÆ_°”sú | e/Ó„0Û>‡áœ …×”$gi‡¿¨–“f�A|3âzYÆŠÍã³ÇS_¿nKRÓ‹•-³ÖûñòÄ÷m¢ƒLo†~W¥ øn+n}p¶Üö1Ü<úm_¸c1‘Y áôŠ>×Ü•Æì›¥°V±ôLYÆ2Ϊø,x«þ\Á¡üc¢I2˜÷ìÁ\ {Õi‘V7šRžnõ3Äp¨‘ÝÛ$Uýñ†êæj»ý7¢›u‰SЙ•"Å�M¡ü†ÔËs¦ƒ[õ#¿èwìnÌhLÚ!\Ô ­_§Ëj¹•:Ó‰¼œõ)�HFΗ±„Žw9ÖZ(ïÓz�² ÿ ö£ry�wß¾½!¼Aù¹œ& ÅGeôêq ¸Ööì’SjQJ,{¦A²4Bdª\çûÊä­624®0l5¾?49)" 7Û[ö—[ýyѳ °ñž~H÷õ™‹=H×â„5”6[‰2a¦ó^eñL´�5x"�)…žù]¤]ÌóžoQ±6.m3’H÷éR=?½ELò ,~Q/êcØY‰úÅ]hš4©+9"³ã{S®ñ<°ìî CØñT›VGy+Uf”š‡òA�}ˆ°I"WÔ^yî¿´>Ã%J´·ôª9/—Üc„£ƒåéêõ <�Á)N¨_Heêý Mæó«3Ë~ïFXÐ{à†×0Ñ|;UššÁrJñœ³J ûaµ­ŒM`0-»ê‡Yt‡l£¾kSÃö‚º�þžªÛùð“§C!Š>™æ\¾ß¿Â#©ôwÑj˜Ë¬VLú‡ÿ¡pc-åqÛ`©Â“^kÙ)]¯ƒ[jej•O ðŠvõï’…ws€øÎ_»ÊJ³ßyô�hs„B5»¶Fè6Ôû€ë=P$/-M—ÐrIú_~Øbãi¤~±åîù¦ÿb±\þ«; f2Ÿ�ÆDÅkî®B ,RÈ«¢KêhtÅ„žÄþ?CÈ.X¯Q`g„‹×“ZO Æ„‹{:ÍѼ05ÒÔ|@iòÐ]y¿w€®l3.ž7e'““Nú×f°gøE VVú°‘ÛŠ6S÷Tªß÷>#¥¡C.!“b+³ÇÇHˆ²Î•¸¦êcØÔÖÃÑVcÕÔ%I³z½ªà¬zø‡ì‘\q¼†×Æ-ÖîžÂ{”8Å¥wIÜ0ìT‹óß({M_Ïú‹ÂÕãîå†(7æ>V†yðcMìÀ,ûc%)"õO§6S�b`çbjþ]öÒ»M" 3¨î€pѤ/)½J¬vËA=�BúD¸°Æ)ÁkÞRý€PÏr®Y͈”HDD2;gGôRuvÜCk�ÚÍ+§ú‰7Ÿ’�l ÊxÃJ.ýš‹Ã|W¼æ9t?p)Ì.‘(»¢ñf‹8°ÇVEÒ±Ÿ#¢ͳ¡š¦w5ìÿ4æûâÙoÃx×ßÛŒ}Ê=’僟TO ‹4çº2œ²ªfèjQÓôÇÎÒÞ™65X²ˆØ�`åG¼Ôq<Î9�ºvÆÅÕäq„ºþ1Õ ¶{!yÞ(êç¦rXøb‹l‰x¨üUu· úü£°Œ|\&ãòÞÉA‹ÖY²žÐÓ½ þ⦿†Gè?J|¼¨8êŤJ¢O+Xæo0˜÷GÓU¸5›t}ÆÉËò³Ài©àŸtõÛ#$´uÓñLê{væ�ߺ0ò�/‚ßÖ.t`gQîëÜ �ÒÃè)'±ŠM~äñ0Hdî=›Ç¨—V÷÷]‚¾y3Ìša£ÕW6ãsøl¤[)3p&Š˜ÅÀcPšz#¼Väv³5Úã¬Þ³Fy ð³ìy͸Éöç!Ï iQÈšv|©'��î‚�­R­�èvrö†Ì|ê-‹M’½‡(ò@E¶�½wb|8 “?€A{­Ì Ê8Gè×> ¿Öùj#æ›Ïe+MðP$h¸þ·�VŽðØ!RÕ?ÌlŠ`u4Ê 0JÎ’9[rl·EQ­®e¯õ•Y²N$a¼D™ÙiÝÛ¼–ôÙ†³œšÎÉuÆU•}WJYûݺõ‘ Ä ­ƒ–YÖmÛidûžîd´7#Æà·|cMÑFëYmÈ&›)~âÀ `Ö©PÿDߣ ûMBÀv¥¹+â[EîâßóÏÄL èDbµe5FåOì°3•19¦ áñr§#N+ÛåÅ ,(?x ø%í/?Æ»ª®ø ­ð9¶^ï}¯˜ªë;ÏN.TÆ3•l$“ Be*Ý"ÀÆdàæÍpÓûNì¬ã鶪} ý9ð´7Û~AVU…³=‘Ïð¾=!fŒøù’v-;xbbj@ \C�V0Q–ÀŠ1Oò5å[ ‚'4qwí¯N6 [¡øù•U1B=Ë ´Ó¾ðB¿�ÈŽ „SbK�W5È(ÄÄÄ»– Øàã9&ËÀöYZ #8µer¾Ü6Æ ã�Õ=Jâr2ÂB‹óuú—¤<óÂÔ¶Òü(¦ËÃJk¦¿¼,�ò¤†ï}<FKÖß*"ÉÉ�\ËY2B8½¡©ä@]óS½Ôé•”ÞU»ÿ” ¨Kqù#}–‹®Ež‘¶e]Gj¢ÖÞÌIãã‰-±íWz¨hB+˜ú‚¾©:’Ûh¤8 Ø.˜½ÏH»hWC¹€`Å-xÆç’<›—zFM.Ë+Ë2ý"½«§½Qì‰êÚh†×N¶·æX�¸Å¢G' I‚˜ÿoñßÜyj*wœ8hÑ  —u+�âT™Ãeö~øµÛïcʇú°aÊ)ý±q|ÍÒp9SØ~áЪ? ±î�ͦ‰vqÞQ*ËÕe�\ðþ˜Ÿ}aU�Ú� íÃ4ýÓ°ä\ÔT€R/° Lè¤ ŒÁ1×‹Ê V ô¢Ò‚Õ€Ú.ZL üë|éÌ+“Sñ¼Žßï^NÙT O7 öÄšr©"äúg''ê¼x+EÖ_JapOîøË (Š‹xð¹ ö’¸DF¥Y³ð™]Îõ0 U®Z³ Œ«áq±Á˜ÀXŒªnÌ?¦Uõm)FsP©)Z8¤þGȼ~€z>+~µ»Îr5Z´Ìfdõ6�;³ÍC`u¨ü$j˜ >6$ªé Zï• Šd™K‚Õc3)jç`=ái�†O©ínÿ�=Î²ËÆBGbø=^ä���aŸ*î`˜Ì>7¯f㨓g†Ú9ìÉ–²x«¾ãp¢ µŽÑJ¬]¢Ûu.»þÛ/Éž;2ô¨aŸÌÙXzå–ͤ¹*ŒÁOûBž`h›õ–>¨>«pj™r¤›}ÓÙØ0 ¦Ý�Jùñ %L”ËÿÂ&g3=Áæ+av´ Ðé­#Ôœ¸¯CM;õ{vIþm!µ¯àC™;H/ãöÁÍH©Î‹åÊÊñÂH´áupõi{ÐìµÊ÷6И~€¥ñ;¨i¦ zôQ¶o±|”£Kh;+-²½dí,^ÑÔ;<Ŷçì‰Â.…zþ ÍR–­)Ú|<2¯–¾ùšI['—?zNöؘҎ7t¿˜O ŸØ 3U£Ø]1ù%b FœëØ#&ØIeÈþ­­]_õnK¢Ô¼†?` ËY%’³Ç\ñ�þ‚H'A8mHóë,¦x- j9‰‚¹Wƒf Þüø éNmT5½øy VôäH€x-¦J�ѪEÄ k™˜œ�¬qšÅæÆ8u¯‚}ñì<.͆V™à ’fáåœÎ¤ÓæÛJL2·å3Öã ™a:#Ù•w,ë0 þð/mñ¬+ÂKô gðñ›R9p–MVôÂdéYý„yÁStd‹ÇÁd;:@pEOhV± 9ÔceµC¯­døÑò�ød±CmyŸ`D¾$"­dw••´9°Ö…ßDFñn:Õ$¢Å†Ye¥YÍt6P2‡²,¶F.–mV! P}k§H�ÐÃBçP-9º‘nµMÍÝͶ 1< ÒÕíuÞÄ$áÁZ¥™dy²¹…%”F4¨£>60–þöóˆÙ¬Š«ÏUtºI¨ïÎÍx±WÐŒ”6’„wB»È„‘}B®RpŸw¬ñrz{ØW  ˆ�ÙcçUe“Y¢×˜'ƒŽ«›º·\Ëγÿ™«’G»Ÿæä•¹Ä´)ßä‚ïé›èÅFì¬êí,ﺷ ÌÎþnÐô¹ þŠA±µÓä›4ÿu»îU×cžNß$�O® ‚Õ¬ª^‡Û¯ÕOŽy`£«úQ|Ô0ÒÇ=Ü…$bgÖ°îmÆöU¹oAé½Í�Fßò}ÇJA¸So«Áá<Çp¦\’Òôµ·ý|ü^ÞÖ—� ‡ õNcí[ŒÉ‹56ñÚìE; Áüqh™�i’Læ./�÷±±Û€®´Ÿ³2•S&RW–éq•/Ë‘azƒwWáÓh·Ç¹C¹Xç£ïÐ×x&àXy®UÔxª� Œë½›@^å öe²áÕ y…fŸà�ØÉ'=/ÆÀyåùѬòÈdÛ¿½gx­›.¾:õ¯G}¸Hø!þäU±û0ÛÜZÉœ7°EÂ}³Õx"¦â+rfíS/jÁ£³ë–Y¿ã —DêcÀYHH‚%ÎØ´G-¤iÕ:zEÔO¨ê O:�ûËD�Œþ�ïÿŒ /JêùŽ�m0G-œ�“ ‘v¼µÎviª¸œ¸œÅ/{þF)4°e'7-P?¨CIå¤lýSzãÆßib­)}­NNŽ)á’˜ªB¢,ZMær½�y%YtÁ|µU×b)ÎC«ýÃJb&†5AY„€Ö�üûä ‡º1ô‡íXކ|ÏP”·C¼lóÕuê̹r…Q{7 !T´Zu¦.W=ôê h¼àQ.úàþ'ÜÖœ÷Ö[¾ÌÌ0ø�¢ €|Ç¡B¼P2G¸•NZ�“/2ªb²vÝÐÇëiœ)ðPZ 2”c,›Tÿj‡r¶z_‚+¬ùúêºôB‹«ŒÍ"òç¹j~6(Ÿ*E¿‡~1¦žšoAdæÍ‘8�\®�m Š’ÞNÛ_§"F-?4rDyËNpTYbKÄùJû†{~*ÓŠeã{á`ØOe!¦o7* à&ó%m ¤2ÒURu"ªm¥:˜:ðˆ2à�6‰j6+'àm 6S‹p_ôalzKÒn×ÜKv=ÚÓ�7I…2¿Oñˆ: Å2¡@F²¤™ˆÀ#ó;›¯ñU¡oŸéÖÕ!Õwgxº ⨋ÍÏYk‡öfOVJª�΢ùÏ/:èÀà(UèÇ€¨·.‚¾äm_¥±¯9¦IœË3oHJ‚¥ÿ¥KÞ°+¡WÏ{^í~Rm÷:›žØ×�>6Ȇ¯âQ�²»3ÖÌÃà¨çu®>Ðó‚R¿ºdÑ5 ¾Ž­¼fœ…Vßc{K³NÒ-ñ�u !¥É�Øóãë}0 á jšè¬<ÓÏÓàI9­pKiñBldà0žYÆ©×T߈m .9?'ž³Áyp2(Çœ]ß:ußg߆‡¨êˆCþ|îØÂ•4¤´E`‰¼=Y$¦7Â4c1{Z,ò#ÓÀ"_ß7²70zc’¤¬ÏÒeÁfCÁ.ï¹qå½0…^;‡HWBà�â¨áùtoö9‘Ë{Á´Å;÷ç8mþE~*:¬±h¹«1sÅ[ˆ >Šæ)R©Ñ„ëx ²¢Ð¥ÓƒJˆ½|!ÐÙlŽâU5ƒ•¬ªµnoŒ&·»òª¹§ó¾rÊg�¤-ăå£�žiÎyE…ßÅÞY÷rª¸R y�"Æ3œ`Àèv,õ9î›@ÖŠÿGIûXC’1\8£±&‚›®þfÍe‘g¬”()‘©—µPåÖUŸ3æ5ÞY`—ùró‚'yÏ?A½ø ›GK¹>»RÁÜmOó+Ó™IÈB(°As#]G,€4YHtc$àâB½ †Ž ·GAwšêË$Òk_Ê1®Ö'"'Íá˜/Òþ¦¿3³Ëñnêl¹ˆIv{»”q¨`W3önúœöÅ8™·’ÇÐeGDˆ¾ÚfÊvj¢Q�ì@j±\Cxn²íÄ#û Ô¡ø[­üûÓ^²OTöTáùAH«¿êòì5óÈ8Ô-eûÜîUŒ‡Uõ5�Y ^Qäµ$¤ÿƒõÂáÊ#o>4Î}\©ŠqdÙÉ‘®©¡eÍ"£[m‰�H?Òö�š5”Ë"aÉÛýå@C«ÒµÁŸÙ„‡özÔà:±°iŽ.R2�FXt›sز�¢/X¡„ÙÝJ1¢õÁO^)9B_ÃíÉ��•ó)‚ìÁ϶P]Ãô×î±ü«{•R$úh™_�|›`IŠÃÏ6þ²z¥<� ¸!xÒcb2Œ-·IºR›2�í�†UlïU�·¿åu„î¼ &cp“.‡èÚ‚¼â÷ú0²T<�V;o „`´H÷ŽJ¥Ä7Ð@;Nì�](ä±³j×m1z¬€9çXÙB}Iœ‰ L »¡^‡ÞägË�Æ*>#Læ83“yš† LC±¦¯Þ·Q0aj ÍišÎVpu°í-lòô•zi"»`#4]m¼ä! =FY›Sö,”RòšXÖ tÝ %Ög„í‘MÐ 6OCÎW¿.BêðÜcqÔLÚ2RçÍcÆ‘¦ ÉR\Ð ÷Nj²ð©ÁÒHa+o² ìºâ‰¿ÂqO×ɲ&“â-‘Ëwó •ïåtG¸-PÈJôÕ¤qü ,²Ìâð$W9ÑêäBý.Ø¥%Åþï•éìï­KJ¬#‡®èKñºxúW«žá\@3'ƒZCÄàâ·Ñ“õ%‹ã'qAM;¡¶|âÇ!“!1~¬¬¨}è svaHjwÀfξH6o’tiÙ 0‚"Ø;…¶ÄùØ<+vBáj[¼âÝ× ‡X7†¬ìÊý ²cÙt¯ŸÙ•Ù@m=‚<‡­V� MœñÓ!#6?KnT¸X|‹{Ò–õŒþ~>é^{Žà9Ô&ö.Í…Ö†?›Ï l‘ÁÜ=òPÓEȘêŸkÎî�ðàxVr輪-Œ-ë¡ÕµÙ°LmºãyïݫŌ-‚Àx‚c¡Ÿ{Á~j³5Tk*i$w{u ÿ¯7U;€Æ×§]…‹ÚíÔ¼c¨ Ьv1³g Oö‚ j‘—2ÚÞÚ+Úé·Ý«ÄhÓÝ`Ú+ ˆçº¬/ÆC¹£ážéZŠLD| „*ßím à‚¼Äp^1ì×6´Õã0"’°(™ç ’r÷Ës®É˜} U³Ö¼Ê“` £ê•Æã,¹ïǤ�cÅVrÇùx j¢Ç¬Sþµp·åFÿùÆAò Ëz˜.â5ï„ã9fJk†ÌFÍà³\‚`Ý8G;‹îdÂqÙBk1üqÆïÔe ìœÝ§ h²nQoK›L�'!½§vÍÜ6\�Ûò«�`ÛÜEI{Ý'≗ôo_Õ0xrÐ#µ¸àóÞCøs4°D¨Ð™dÄㇼpi1½Ø”ÿUÔræGØ~æ”0!SFl©ÅþAÖµ < �G]2Œ2dEÜzÈ®Áã‰Ò„Dm®xš`œ£�‹“D3Ã.%FSg'�ÉiÛ¶åuFgè¼#côM·~?ì{à¢À² ¤m[¨rµÜ`"x•“4ûVí9޼†d“-þî�KHW‡yãÝ,Uý0Fç™5J¯&r¦Ÿêtù†~ôNî� ºói.Ïb7ÎXùÓ'ËMéj¤‘ãýÞž lõ}èšaLMû_ÚéWÉ^öüÍ"!*�V[¸Ç»µ)4BX»âñ€‡è�ü«=µ�ƒUþøFq`¨U±H³]¯§Œfq 7H&ɱ6ˆÛaÀ^@Xnïg5Å4îï®We‚)ãÞ·QòâÍË ´Vì³3álÁ¬'ê°@ÒHìàJ#;wÛÄ- ¨y)¬6òM1EUt‰.}ýwwæEzØæŠ¢=T»Ÿl-Êþ·늟± WôÙÒÏìù?ù=ÿÉ ý˜¸Ao™úPú¦5&L¡Oê«Ô*Ïá{æ‡5¦×r®ÃËLw(^í‹“ÌäâÞ�þÜ—�EÀÄ›%™ü·ït‘ ŒJÅógãž>(£«›û?ù½ÿ+¿;XÎÙ°ù,µeÝ»§µiø\àÃÖ¥`¸W4ˆ—ò¥�ä/1ôöo{—A µœB¬9½Öî¼/úñÿõCþ·ÏðddE j6�T•‰ þ¢öòÅ,mLEL��ÿû<„µCÓFš¼š–ËŠùh;²Û�=I­ñ¾ˆÆ„WSI0§ÿoÇÅÔÙ…ÎÄÐÅð?ßÿ]ƒYBžäÍPP妞ÄŒMñ¤ÿ©}ÿ«'‰ï}93H¯ƒ‘£‘BÝOëŽ`ä¤�;`¬OÈ[œ¸²œVôsC•wNÇÒ~¹Œ/÷M‚7d4…{: Îý·¿l|ñ¡3ΗJ »u—Ýó?ùýÿÉØ^¨ƒSjB#_sé‹›¾»cÒ²÷¹Æ=S‰÷"ÉIûØ}äæf+i±ÿ¾ý8[|mšñMôXñ¸½¬Ãþ·/=¦07ï½w8B.d¶A÷?ùÿ«†t!O½:/›cg�ãÍpeÎ�ä@Ц=ñF_Ý.M‘Á¶´ÉrاõÝ:íZü¨©�¡Ã§#)p¬WÿßýÎüüÞØuCèP‡)óHšo�ÿ“/)¦, ðÿs§ÕWôèþ¦ßŽh\´TÀ&"A1…‰‰R7ÍìULãBkÜ¡s²1ÌÓMÔ=¦þˆE;|×É‘ÎI\ŠE¦ÀÉaµ.L™.kóJˆA:ÒøÒñÛ¯†tú‘ [~7¸‰Ç�Ýú�a�<Ռٌ:éM‚Õœº¦Atú�CEª×¨Pµqw"JnE†3–‘Ù“ m]Zî8Ä»ŸÀdVĨ5I˜™r¾ ‡Û]¬¤ R­{rÖ{²½€DïH´E<}ÛöD‚Ù;ÂìH‚¸ÆcÃÙ,%ç5Ú6Ä\§ªÓ/w7´ § R°åð„°ªô«–Bº¼©÷I Q €Þó}ñ[EU§¶ y! Ý[f‹‹xP7Bá]±mŽõûAU½Ö®…tlûN°qS5ì xwौÑBÃææîè@ø•H�£*ˆ‰ b%a±A€Ôü2Ε>@™Ÿ!Ä2Z~ÓI2®HÆJûóúá‘  ð³S1gRð¼Œqñ†C4N¬h?)'7½¼¸‘勹¹%ƒô Y¥ô:�_ʼä½$è¬Íž¿ÄîÓï¿á"÷Öx�?Ò ³Ñ±}ꧬQ¿­—´F]EÐ�j¥E!ËÙ‚—òÍŽ�]‡¼.î{dÊG)éæ@ùuQø ‡B´œ^êZ·77Âñ–®2Êû£dÃkU7­a`õŒ3fÑgYSŸåêþ–¿žÙíÓmŽi&Œ%!àHcÀùFÎüèý7a×f}:}ó¶«öÏšŠ§,uíçD¦=Ò¸U|\³Ît0T‘r Ôan�,�O_Љ¥jÓÙ’¢û£[>:qáæXóXçh�‚2®Lœ³9 èz%mÏrZ{¥D�UâŸä”+2¤jw ; ÈKo,@ïÕbDßyŽ4ùˆõKB`D¢îÏaj°"òv›(À�½éò‘|†S|f¦vz9&wýéGzÀûE˜¨�O`à,í´Ýñ}0töZnuV9Å·+Sp?þ ±»€:Ÿsr/‰uª/Ûš(½�c/Ÿ¶çqÝ T>5ã#YÝ&D&ê²q fŸiÁ Ð ¢‡®_tìÅ>…ª}’¤‡à嘂Y:6­’k Y‰”v�irR=ÉSZmסÝ:`®¾su¶g`U78–ºããܸü¦Èi¦> G�;†LZBeÛ* ÃG\ì\)\cÙ‘3¦"sÑûÏÕz3»Y«ïà¤DJwœÝ ‹s⣌M›H÷buãf‡¦[ ×áO¥è?§$Ï0…+â0¢åÒqÔÓ )I5YnHû7Ž÷Qå6‰oª ÇÉ=6£ ríÀ/,¸CjÜ]…ûdI| èÀ«ß™vàØ×ø¾šÏkõ³¦%ä‘C»"Wê/$μ(į¬*¿ ¨VëãÚX©ª„þða¸…‘Ù§Þ„0k'VÙN.¹¦öÛçè€ר]â�µµ1Úïí–úç ì`æ5ÛÍõbO÷ó0òˆiÄ!3ÏÿÁ¹o‘…Ïkß\Ç„z)|Õ§°å QqJš§¢m¸k--ø÷?m³‰óô\ª2 Óþ4&¨Ç}wO;¬ä ÓC^½éŒ!©ûj�˜øÞ�ïQ¿T!në�Ò€!*þ™¸C-óÇ@TëƒëßöÕýé3»¯Už¯X“�EkûT951ÔÃ×ÍZq¹ç2éÑÉÆÏÿ ®œØæ>�Ù{´|!|.òoÐmë¨Þ=¶š£ãJòãnÂMº×Ñ÷éŽÀU®:0îµÕ`o$1&Yfo‡’þÔ«ñFØÒ¯Ú“�¶ü�«mZÌTqšÍÍS?O´æ1 ø Y#»È…°ƒ�î™ÿ›& zåh€]–hξ�ñæjðÈF¨¯¹K½ÂoŽîE"ÞÖ‚_øëYTŒ$ª[wâð„cW½Lu”�ÛB)Ó1ÂÚÁW¥­�Ò”„Ä�ûûÔgc{¼ïÆ‹kO† Œ÷·f­á?xã6 úˆ„F›S%r)7ó{–GéU©ö®½RÉü<0¥—MˆfåNGú(/z3RWËsž‰l?g«nª¸5‘]>Ó^l|§k 9ûT"c'ðf‹´mç ÂÛ¶<­,Ê{“L°}¯`wZó¢zEÀÎÝ�é(„œ@yHÎÚ+ÂÓ·HøÞ§} >Ô–„¿d…vÈ ¶â„6ÏPí|‰w)—XCë›û�6‰h†Ì_”v×Ôýù†’ÂU A5>N¥ S"EÝÓ­›·"7PÎËöX˜¤0¼Æ¡Hÿ�Ò;Ÿ¬8 *VòPO-Ø­ ¦ÐRGw©ëÕìqŒã=?Ý3¦=¶$õBh1M¢¯ƒõîÅÒ4u,3¸¾ïg’_žee…P z“.ø°ŠÄÙt¿4пa<“õ^îžùÑÚŽ€×怄ÇÐçq"ÚûÐÜ¡çB(-&žSÒ&D;EÂ6ÇüÌ j$Õ΃çõ3ºì¤åwb<ì±-¸bæì:+0k7Ÿgý îƒ.cëÛÆ+Y�åôn~ÑÛ: q~š‰ÀxUîžS —úƒ»m0¢h,ØvL’¥-™¨9çkΤÓB¬{6½¿ï°“|ºÚïF�@ì�µ$»æºI N3iC¶dW™ÇÄ+VH]½¢P/¡¦¦Ù‘ÓB,ý�¥™Á˜ÔÝ,ëíö€[ýK\4¬WÎkýbî†{{Mß–8î\o‡ü¼‚ÆÃ$*wÑ_ny—套òG¯ï2ÉN!& MH« ˜=:$nм)�c1»�"}ü}/�GIP²U�N%DU0’D|“4rüq þ�iiDzпŠ×[¶yUI ¦¬Ïˆ¼ã¦”ìáE#Ó"£À ±ªÿ—Þ&pVo|Ó2Fãýõ€a^CŸÜŠ�‘óe5P6 ¯ ·©¸Ê6•3úùõnËm©(a“RU?¤0ÅŠçG‘�ã^_)ÿ`^hƒÛ ,Ü” °í!®È²¶ò¾peùÙ$d?+>XHü2ÐÒŽr?oB´ íÊà‚Ò™aÏoˆY?6/ƒ¤“ê¼õ÷3|ôˆH¯ùVR½WBžWgn§¥ž·ÕTæMó(Á“Y¼0£5µäô³(ÛLkëÏDiV"•D‡h«%QÍúÂ6ÉMˆh@NCÑ?o'�_%Y5ïÉ:FÑOà9N ” ‰ÿÉû6u%'•ò8Ý ažœqéêh»ÏÍ™Á˜÷5¾ERåèµd™E*l%Ä�ÊŒ³wàÆhZéfM“ÕcŒÛ|éª?ߟ�„Wì‚Owáë „%G½·%ö²[;ìê8öbÙ°�>ÉÔ£‡&Ë™ô�ô#]nË¡€á{#‚±Ã<ñ­ôr. ŠöÚí¯�ûÕÞÙ7ÌV”I¿ ­Q×§‡ö†ö%¤b4ÌœÌ[`ï4×·ì'ѲJ�ßðÎ¬Ö VÕÜ2ÌÄEUBÁåìÂ1¶%•ÝÞV’¦„9þ¹�ŠÆKåß-ZÝ›áfž­2‹2hM9K¦Eˆ)ß ï,D|7V²3MÇwØäÍ_øSµÏõ§Bêý@ÏØHtb¿E–kˆ9ZØCpžTôx�}•J…CêðëÊÞgÍç1q›Ì ø.ÐmÛ6çÝÖ@síÜRrpÿ?Ó"ΣêþË3–iK™ß]§êÕw9u¶Säs¦W‡¸üSæ^¹Ñ¼eÔÏ_\½™’è›»�T ÕS¤°S×…WW÷Hoeu ¬L˜°GÉj¸�AA¢¿H4™ðâBñÔSvÅEç2†dmäuEÀ±ãÄÐ^»üÑ9� .Žû©ë+Ûƒ%Í]®è"˜àºáF7Ÿ¹"RÎìÙQa $C¯g›v?öì„ìCÇ… 5y@’N­iKQ\r YB'Ó‚ãl¢—W£WZ°Þ3ðhÝuFŸ†xË5‡]œé¢%Ë¿¯å ¯dáx„Cͺuƒ¾ç)­›cþ²“øøŒ§ï0¬$€ª2†EÞ°âŒ�§²lõ×ícÄÝw€eõŒxrA¬.ÁAPbнÉ‚_å¿€ºjBŽ›¥"­ «›"·)¹ðëq÷ÓÍýá5�ÿ€ìMjÔÁnSdµÛXd¼ôèú¹u‡ÊdÁ:ŒÜ<ïÄ#oò&‰>NûsøÁnZ2ÃpÕ‡ͪn¿&´Þç|6%kÆ’ú0²ó¶�ÄU[º£�.Ÿ²ÊmK›À .îUq°~–�)u?Yò4à%*vdîRg7QgMï[*³´ç¬#—KŽá¤3œº>§¾ÂÄ–Kw”ÂÙð&ä]Û|¦‰%`´m‘¦ ‰[3b"¦�Ð/ ïäÕ="‰ëmŽþ"Ú…—›î·—B—nç#5΂uÌû㻋ëÆò|Uþ‹Øú ’ñŠ� ú%µÙÿL­ÃüNó5²6¨¯Þ©šbW½½&šîJ\ ál9÷MÒ(‰›dÊøVqò€ƒvÅc^•žÇ¶¥~„娀PÔqu±„(£Ù˜P jˆ ´Ýà¾8Š®rjò,‚/»•�È|Çxñ6bŠtÂÕwC5¾Ç³.ª&.U ’Ú9 i†K)øñ‚Y ^�·‹÷jÞúær9:þ²³›õ…Š‚ôJÔ�nû´þÅB¬­Œ(J_ŧ'ŠžNHƒvžwoñáØAWp¹gß1EÒÇÄ ºÆø8[ÈÓ]»03†r´k-ðIaÑ úcÇì©;‘íA!ŽC°˜{ÝÜ�ÛTõÞàöõŠ€ÁŽ�ãè²ùIγN—éGÔùì¢Cm$Oö…¾aÙZì¢�þQŒö™È$çóçdºä€$»E¬Õê\Ž„ì®Ý_šÈªüöDœà|íd ¢Dç»±ÕÆd¼Jæ4?„y°^Æ^ž8U´Ú­6NK±õ5!ä– I�bù†N{ÝbýòŸûª[À½uàGmC.‘qï…~]‹s×ÏŒÇrR¼W6ð:àMøuÒq¢bà{¤f«€ qIww®!úz/lªŠäÂU&™Q.àw#w÷ç¢ûã$«s�ª‹#5µ‹Ûöý—œ”eK=>* ñ`õHfðê˹}¸_&ˬG,>žiJ‹(‹ß´«@|ü4Vøë dNLß�@Û¹¹Ô ”EæÞŸì6ÓyÜätv�#nŽÞñž58Y1u]QâÀÞ«•µæåzZhYFj Á‚“Œ'ðÓÿMjJÊÑ!{ô…£¬Ë«T­W@‹Ù¥ 7>µ14¾ÁÁSJúÍXwË—(ö2"Ÿ_ªySsüHiYè9LÇë«û�}ãSy9 Ìüô¥õ¨Õé~.Å_ü:ïÃkó!Æá6h,ÄSÖœÏD7š±îG Ý\9d ¯AŠYÕ–’%"¼jP}V+¢8OxbzÝFFár¢ Öå©Û¼ñþqv儇 �XŠí”Û8 ÀsXÈZ‰»¢?í¡úY�Ü®íÔÞ`ô'Êìµ²«¾.ýÔðd™j0–$|г43¹�;åztdÂLIÔVäÈç*ÍŸ”B£Ôø }éšòP˜Ãâ*€ÓÛ5ø­7e0]»tíEf£°¶ä×EÍcʧ@t@…§ !„ŸKhW-oRàÎ ïâêóê Œû’’KQe"§Ë¾ g+ô';‚c�ËdBzºW½Sð/žÛ9•IÕ^¿š>â4£Túí;•ÝP[(@dÈwè�Z“´äRL–Â!aéÞaÁ¶Un}òû§a/?Y-F£ñ}[b¶¶ fB�ba¿øR.3{ìqL-Rù¬L4MA‰l|§ãë§·„ƒ"ô�§¾–�¢2ã�„� M¬M™–LùÑÀð x> 0 ´¼»¤ã£åàÚôÜñõuÓ*D衜è|Ÿÿ9wì`Ã�(~¡‹…&”®Ž¦§I©—8Ø~üPê pt#Õ˜ÿI°´L$SÙÁñÖ0eP‹WªùÑmÉÖÿ @\Hú›M;].¹Ñ1�m'§1ý’G²ÊùDèÚZBb±{ ºV›¿ S<Å(:gò ‡Zx€ò¬ã…]B4<6™¹«´�U Ò{޳!"kù‘ß•‡Ï�2敪ZŸ�Ðø]�).`LîÖEú¨æ+ƒò¤�Dþ¾©ÐºÍŠ|@  D:c(Húù¬°�¹WEãò ¹©mrœ0¤êj�­@äKórÌ=)àŒ¼%©èóÞö¤?¦žV¸æ ¤°ÕèÕì?x·[�ba¸^Ùl}¶JvöшçÃú·³€õFé;ЬœûAú)p°žAòÄj]iAƒ [N0w–M8¶ ß›»’àù»Ro9AˆãÃį@æ¤I¸ŒˆÈè­ð&V>ƒ!„vJáÁŸgÆçëÁ7·« Žo—ðÅB^÷&iãáŽ[Q#• ’†m¢��êZ�Ä9ƒoæÁLBH{ö›7%&U°‘ ]�U)}¡Ìÿt‰,à9„åùŽØÒÀ.æ íô;|mŠŽ&d(ìã ÷r¦2ànW½ó†¦ÉaûöµUÐ?ȸvt}¾ñƒ eàJ±º1UR7!ëÛ²…êJ™Ë\ÿÀ¼àñgjRó¥'…E>Ÿn™§º"=å88Pb†h•¡Ù0ô(ˆ>“Òl vÔRþÃE�°ôr…á!û-›${B\ŸDu°ÕìTœ`ÿ £­#ô¼—¸/kˆÄBÍ_ÏÊÆõ¾¡JÀú°Ä�HqtäÖ¥ NgMÑ)‹Î”¸Ð“œÊwd|6à2ŠÙ!ð%†ìŠœ^žVEî_½õ¬¬íð…HàÁ°:8­”fFèFÚø¦.\%ÿÚ¿¼Z¾BrÄ…‡I졌Ûõ‰ÕÛÉ…°þQU�ê¸Îë ÛÌx€ånSôdè3‘ó¶†�É嘶û"ó¾od&.8ÍK}.ìÌÆS˜}2$Zê¤ð×g½ø1ÌÇ‹Uø ØÉˆ¯têûÞ`1}VÆô�¬^Ñv ƒ<ÝþÖ+µÛ |¶zÂôÚŸ�p‚KmåÒëj±ÆÕ陞¿û>´ÈƉŸÜG£5N©»‡b ]2‘y�>(´N]UxÔG´ÂÞíŒÄjÀ’ Kú�“Fþ Ûª4ËË‚n¬”,¼¢p~Éÿ2ô…c¨O©H‡ê®Øÿžaóžmåc-ÆÊ‰¨r þM%I ¹†�P}a¶0oÑ`�ƒlô¨S!×l•Ï`÷¬k7h†à£S¾ÑˆÁV›ä–�›{Ýo« Ôó½?x“‰™ Ô/雿õ4V»£=AøVšTo%¢“]ã¶Œ¹%2žS =¦Ý.†–S´sû9‘6=b¶™·¨K[ó¬TvWUd™Ö¡½ï*¼øc8Î^0©f¸Q–t0‘"®á%\£"(bw�´ú‰Ù{îýGŠ\§¶œ´ÔúNñ-Õ%*6¬äCöÃÔ’rYΈ¤ËD-Búh1€"ø—GLõßÈšmçô$Aþp�¼¿½ÜV;™Íõ}ª_L˜ÿ¬l÷[{¤›‡Iµ±Æ¼X@€RÐÝê^¿�n˜â <+_®Ä„Ïo¡Š`Ùƒù+MòžX ËQ˜„r1‹…Z+®…S¢«Ö7¼—¥í§rn@p`CN0—ð7ˆcÅU?;¨K ÖOF£Þ„ž#yZŸ§×XªÂŠÀý‚™EèÅE]Ö€½XJê#ïæñLs¦%ÕB²`|ùß7Áœ>B«âЧp�ò3ÍôÞÙÝ>�‡—”‚ð³†ÐÿšçJÍ”âÛuù-@ é‹§A¦éA*µ ,21]xCè™UèÂê†\¾¢¿´ñó*Çys*Øò¯>Ðu¸-ðý€7þX>Koö†¼¿Û“âcس�"nڑȬí)ê w›—ÚPMsÞNq1ѤK(:ZòGêÊÕ˜Æ ×ÍdqyÙsˆß�÷R=;?M°™æ�[#'\âÏÄ+f»/͈2!Œjv|,õŒŠw)°‚jï’¿ô ³ªæFÖÐt‚Ôìã¼§ÅëJÉ3„:obOØžI0ª9R ¡ïlbÚÒ)Í[Ø "`;…gÑD¬ÍîâÔátJƒäª¾Q‹„×áz+Wpl¡Y<„ý®~.û¢Š·ˆßÀT´„G+Ìæ{`#ÄëÉ"¤Vi~i£ªUÄò‘ùq3°ü,óUYî£+êr¹ãݯs†Ð”Íš× ²êIcìÕû†Ðzè<Ë”ábò‹‰SfŠ*僜DA†<î­Ö”ÎG¢ä¨¯½?7šºÁ¾ðÒØw…>oÇh÷\ÊŠ*6š×â” Ù=%ÿóA dÆíHË2y'ƒk¶úZz©Õk™sƒÈóhE†þá¾7Lu²4Ñ�R¨´ù•l®îú\Ü ®yâ~³gÏÊ«*³œS ¶u8&ÕÉ|_ÅÙ‘ÇHQ•HÖ…C?ì ûx¡«ÏÙcJ>pÿZ)‘Õ^ 0a¬™@"ÀJ<­éÛ8qÐèL¨DV¤CæÑ@Zó«MúA”¸%}mÔä‚QJP_ËRKQ«…c�¨g ÏÝg9‚$Ñ”¬$è‡èŠð:V[\Jâ>Qµ &3¸tŸ°[O;Ò±ø€i!Óq6Ge?²©Fv °Tø€>ZÞtC•VòtÆDS¿M™6‰ñh‚ÁÛQ^ÉÜÖ?äù‡©„õð&}jä€-1D’…òÛZOBa}#½ @Î�ï„Uá±ãsˆ_À=v> Î ‡|%ò;e”϶†äl†u#Œ5]ʶYÓꯌa"_aµ¸7œc[ÿåÒ–[#Yì©ë ©(Í þVxõ¿)gtLàé½+ ~}§Ð}àœŠ+ãR£ë5绕}™ Åî¬k&#˜XÚ¾·DÔ÷'.`ÈŒ­ €é�–XU�ÌAf D©lîò—a·’s¤\^ðÏ<)ŠŒã NËo¿« ü·U“Ù‰púx%Ó[ð¨bÄ¥î„Âv'�޼×È $*ç]¡•òæh¸Á¤b�‹ye´çG"Ê[Ä3È4=.|!�œˆY¯QÄ ]\¨Ò{Ð>7ÕmÊ›"X„…úC/^ ” lˆ,)›éÐ1ŒSèN=úw þÓ0˜6”°öá"%}Ó×M¢S†ê¨×úñL]Ž-%`^È÷Î?@Ì‚T,Š>Bìe-‰¶Nnö+$ä<æö %ß�5å 6;†^8y¶¡3ªv .«%3 >''{#µ_G÷#�ñ n&hÊ«~)WBLA´„Ó„dM Ó|Õ³¸Eä¦P+/ŽVº·�ÿ|½¿“Kb梇ü Í'}�OqÙ³™sªœ¢HQ{RýÓ¯ Ì5K¤þl™šãêá+`…u~bâ”ù»Z¯p�Ô ¯µ¬w€¦ƒ&_¢$6t�¾zˆý�ø8òcoþ;–é5oy0êR¼ÝÑ£˜nLŒûЭ­Ê—gÉT�WÛNO{1tG«&(àw”5#Iî®¶ÜJÛ²[½W…DÑÀŸIuu jšU}·s=X6ð�=EŸŠµÑ)Ž"æcŽŸ~d¦- íOc¼¸|l,—4�åýûÒ£‡+$?³ãóDu<µ½È9Ž–Tþ76á�¦qJÝ’¸¿ù|]YJ’5ý샧SüÍ÷àÒ‡þHÓúj”(XÁ¡U R«­rd_iÛŠc­¶ |y•=¿ë±¢a2Î ‘¹,–Ô¿’”ûOp‹÷‹“dÎâsŒ qÓ¸J\nÓ˜ÿ)KDƒßïRNHCs ÃÒžšÇxBþ;W8e}¹ÍLËAÈô KÕÀüH©Ð7º‘¤CB™¶ôa>?dJ‰Zü.û•oØÒæ‚îã äØVÜŽ¢S3+ÿs³¦�\U¤È ©k7ÑŠzt¥�Ä䓇ãÄðgõN­S/ Þ¡Q– M;" rUº¦˜Á¶;èº <3ÒRÿ®‘ "ïׂF+ =â¹¥sŽ#ï³^¸À»œ�Þá1ßÂŽÛÜ„¼#”î¬}n¾»ÒÜ~‚h7åjÑIa3w†Ñ‰º?»ÕÔ1š¥æUÑÌU!”¸'ˆ= ÉHêJC{Öúo³gbŽNi¿:æpfŒóツiÎË‚ñ>ñ„u)™æéq_±ØŽ$ÌþiÞ®R&£Yýœ_ëh žƒÄ.ÓHgUÕ\÷š¯ÈpÃa&ý²Œ�Ä®eÂÌ"�¼‡Û­Rܳð«2ײHH Ô|Î�n®—är7ú�6ÓAÃÊ‚ Õ±ÍnC˜rRݯçNU�9uá}ù��¸ gYLÃùùÁ?YXý(a*Ç´{ÒÝúI\Uw¸/ œüAGh † MZ·J×…²9G�ïxÊẨ�¶Ã�þŠA  ­Ô£ÓTým«{…gG&S ê[G8è@ãíi`+,µÇŒ¼¨ãaÚOÊmHüO4µngB©SkþlÞ5¿þÂúÀ�©Å…P¼OhÕô8 Êùé’ÌÓö,‡Ð� B™£§>Þß«µñh.»«Øè–>¾S½VÍ»%˜Û8Nߢóùû™¤‡³Éé“#·b–òsp»{—€Ä-�ï¬[½¡cÃ5²Œ±[C’­Ä‚Ëà*o€¨%Ã>hÇúV’uÚ¡~8¤`[29b¼vŠÞhI{AŽ7—»Ü6Ú*IeZû©Ã‡ŽÄÅ-ñ±îÏûmF©¿Ñ ÞR Æ¶S(¦_tºÞÖ”µ~¦Ó—¹Rh“ú4õNPcLb ÙŠÚÙH9 öžXß9+Þs&�–v @¦­ÇÑtš^À±õKø( ËÒ6 —Æõ� ØÖc| È£Âè7üäOå“tPüw=ã Ó/ýìÇø %¥Qb0½kÎÒiÍ`ýzôùo=hOd{�¬õWhï_½šî·eû�¹VZÛœž`rÏD“îûËÈóä>j�ºÃNeŸý^D³×Öù ñq%Ç!º«˜P×¨Ö —ÆSƒ¦ÓO÷<‹Áä�ÝF; 9O0„ãg}Ò«çnv˜º¨ú9=±ùdÏm©íÊ-ÝEU4g!,\÷ NŽ«Õ}Y®$ á¼óüYÏ©s¥cÉÒÐÎiÎâHD¤UHÀýÚIm•ücsš‚ÞÅR£œòõVæ—”0úüçÓ´m/¯òÂsI>04hS½cÿç•”T Çç8¨Û†ŒÏ¿qá+èO iÄmØ“Ywã5¯ˆKË{¢ã2ìÁ©9~ÙÏtÕ) RžFЙ13èP…@S ÝéæÜ«o™e’¼@-Þoð‚®�OËwñì´Õ3j6_4Ù W“„©Ó¹ WM·‚$õê#—ÄOÿ!’"Ć�8¶ i¥…³ë—;«ÞÖ ¦ÛHÁD6¦¾k|Bdø?“î§{ªáðÙþ�¸S†­ÄS‡Hx¨¢çÔR’l(4_Œw»ÿ9è°|Å]Æø¸Ä.¥&<)hÕd*Óû�š`ïF¦›>`2ˆ"‹qRR¢€Äâ�9ª¨§1ÓõaQûÈ Í !Wàg–ëýž!ã£mTo�ƒµLÂMQ5Ö®]É@Åêšé›ÛGrøx=T(h˜<šõ£6(¢'î‚\ºjú&qÚ®&q¦x=i‰põ¨f:1”=wc²·’Ý´‹¼ò!7ºIAYŽ*EÒåW‰ç³øJxBqAØ õ¡5’=¬’�©íY0ÜVFgòžJ’9¬ÕKaoÅÙ„-�ŠÊNØDÈ­(ô’OS( ww_×�2ˆþ(²½Ð‚ç3'bæî{æï· FY%R1Pžá-SHÊîÍñ îWHxEå°;˜ø›RSÒ,S7v*‘pƒÂ­z¿{ál±'Íþ¤é€&ýüDƒ¸ û~ª-ÐàÆäÄÇGE< ¥Ø!ôÈNœÏòÖ¯T ©ÉteÀGb¦óàɺ‚Ž{-AÈ•³²tù1úû¸P–­¡Z©“Èp»¶•ûÖ.lÓðÝ¥LÉ›9Ì\Σ;�´'©G]iþs‹ 9,±bˆMóWéBâz_!Ôú‰“ûœoÙê�µ‚#ü8«¯nZ(ÍbÛ5ç j°'L³¼u[½8ב¾œ‹Ò&®uùA3U«®À2lJ¯PV_ÂÑo“ìn!‰Ê>ÁѲ&ER; ˆU¹V‡�ÜøŠ{¾€Ê'çÅŽæyü°)ñô=ÐÙ0ÆBç�¡”Ä j(RjK“ek|Qõ&E¢: �ìjâw�—éèö^¾XHŽBûi­s@“`"�E±„Œ{—'‘E …5ím$I Ä!ªÓ“`ZÜ¿F°Î·%ž˜CûöÃLõTÞ‹xèBôæb͘¨†ŽÎŠ“©~V¦@õÃAv•._Ð>¡¿Þ[ö�ì#‰‰‰j¨Þ�3£Ð{µ8ÚÀѬ¶bÝ2ÖÑ@�ÂnÅ ¯ýKü΄÷sáó„%ˆLï+e“ÃfY.š£vÔr­è¸M .\‚2í0Ec =ç2=c¬Ô_%·À/W˜ È&)mu6È5˜[âaæŸÍÊ(Ö‘–s­:ŒõkR+¦H6Âôí9ó6À®‡á¢4£ä»ÅÜ‰Ê [üÕñ}ÊÎób’£äÚˆB´’ÙåmOªÒš�šTcE²1dΨÊ�·*-)šb’ÞÙçoÙ {²Å!g°ª°lKØêe¶ye+ ‹ØÁóë—)B£ž€:ð a襵SŽMqò�8tÁ_t]Ú{�ëÏ"OÖEÌ>œ‹˜ >üÐìPzMñ}Á‰7¼jáÛà¿’öækEg’7‘+§õv}¤Éþ‘ [ÖîsÉbn�/îâË£Cä`µ/¡Í(šA—îkIcF1”¬?uúªò¹Øl]¼Sò×Y*E„¿Íé�ʸû»ÿPo<…Ý©X˜yá�…|*y¢Á˜èn¯s6ö/B.ò“�š«ÜøL¡Bq*.“�\ @”D¬æí°ÆÈ'�0#(ÿ7 ù[Heud¸4‚«:Q¾,–zdˆ¡Yå©tÄ!ÄÀH¡gl º‡ïg #N»iÃÛ¶n¸Ö[`Fx€œÃòþ¨§vC¿ëŒú§1Õj¼=#·Ä™«Yqøï^”‰õðå³BÂhÕÆîˆA0k7¼ ÎÓIrºm-�»K¿´4c†—fÈVÝQô�tF¶õlŸ·½:K2ÏÀï¢1Æ€Êiàås3_ò…ë&ᜡ/bXàÐà ´œmKào¦Ñ'ª&7—yÐd3ùós�ð+F§lÂ5­‹åE&EÄpëËš�FI‹Øà9¥PÇTWåÛ~ÇÊņ›¶%Ü­ëé,žÿ�mÀ,í݆ÙÜùѦû6ù éV® Ö= ¦ˆ2Y[lêד½«6“ÞêÁñ~]hJÉ6•@÷¶´¸ÅT5N‘‹_Dz4öµßÞcHSQ]ópŠΪ$d–½¿w³ØcE¨"º•÷«-¦&5+®äµvL뱫;{9Œn·±&á0bÉúøÂƃBØ”×7¨å-:Ñ»C–7͇ŒÐÇ’Vsð9ËpŽëš•um´&Áë8G|¬÷”—±ª-Giu‚#üã¬Z£zR|"±È´^…eà2ó�áí]‚þ˜2:2}‘ºñ©€É¡ÀÅU(Q"U5�sUMúõ‰²*H;¥¯9…kê¢E¸í䎬É7ÏjÀ`€'÷XI›�úøž8ކCô"mµnÒ,sžWT•$Š›1¨Z¬Èý‚Uë ùPs!‘èŒ-ëxÔ½·-û<®Dÿ£ õvz!ZË«ºÕ– ë™ýÏJW0r´ÛÈzbº™ žOÚçvÁ"J �õåeC%5Ät…[A�ˆ6h3Ø33¹T Ê-u[{Ш�¼�àýÓ¼�)œN‚Š_S½~-3O8«ÚðÅï–å¯iM†)Öh5�~r“^âÆ6Xθá 9jŸ ·ÊBg5þýôîW(ájŽR­ú+ÉÝJ<4ÆŸiµòïä[…ŽNòuÃÀGtÖñ�œ‚7y1@‘'ØÙ›ìöj$ÕÚZ-fÅþoáprÞW÷×îoË™3Úé ©ƒÊŠU§NÏ{‰Äo|î“áØc‹Iœ;÷úœžò4àïôœCvfÿæB͆ÿÝÆËvý™J¯²{ée1èÆ :�N>?õÎÇmäxÚ1®vÌùÀí±$&o(ô–­˜ìz¨§y‹é®§+ó„‰ßL¡ÜH÷2&sf=TXª'Ãö� #GCÛ/˜‘Eµëׂ/úK‡U±}Í:±~覉â·î]~] KF­!Ù'^ý_û`%2²f/œ:”ã2ÅÀ¥ëàËœÜK(¶qνåúhs§«€H³€6ÈÊÞ­þÌŸÅORuð úv,Eä(`z�Vülñ%¦" ùbtÏÃ5{Ò'©k½ÕeªaÛ ´QÜÌLgíVRÎTÛàtÊ5šœ>Wß�¾-ëö�×’ƒ³hTÉÄ=~CÎ]ÄN­Û�$E-Nß])S[(‰!p%7+9¯Oõ¨F�Ô§î¢äI·ÊSg0lFySµÇŠ G«ZÈ ýVäÅ ×ÿü4Üçm,¿‡EüòùÓ=³ÏDÎêZ!ƒ ™ÕJCãëÓe°UD�é&Í'{#[­o|¡±ñK¶Õ·noÑá@4§Ž²N€½ Á nÓj�pc¼KøÀž›\Ú³ìt%ˆázX­‘NÖ�ĨcäîaCƒf&_u„3z-d­!Xfª—’‡.1'åp¿j½^®-ðóc“ŒväG#ñ 'ìÖÇl¿ôqÞ©ºæñ£ÔV§ûÈ%YXò]5À›Hqº¯W%ËD�QËü.м¯å†ðÚÑ©ihX‚Æ´{’äMw˜—�T­§�‘&þ‚1NEÇVæ@¡Váà¨{°tR�£i€prîýÁ,'¹ÝºM´ÖK‘d þÐl2&Õ’+Ö@XI:K†ä4uuEЊ« )“�òçn[‚CÓQîC‹¼BÝõ:þ…ÜAU$ÿ¡Ûðå ºRauH_nÿ,ÆÔƒW�‡A [b�îÂgßåSlIˆ¿T+¥hØè:í‡0S €áÈ5÷‚\°ã©1 ŠV$$mÇÁ¶b¦,EÞVÖ¡ª½¤'­HÍšø‹5Ñ[GìÁŠÞ]Ÿï£TÐoR8ÝÞ €å|àÎ>þô0¹÷èûb@ô’îÒ�ÌOBÚJ‹¢µÃ·òÈ�¸IÑ›)!±y€hÒ<Üwx² ÷=çLc,ÉÌ:)­ ~B¬û°Ò�×C5»kÙÇïÚÁÓÚž³?ßFú·x«�Áú1Q¸(9‹S/¥À@RZÅ6«â„#Ërïp‡ØõÖCªXaõ&z° Öû§&¢Mµ0×Ößñœã¹ÆŽ«Xû2�,Þå‡gû[\}¬ÖZE·¹;‰júZÎÀȔ¾Mˆà£5÷ŠÀÖtާ:ŽÂ<#ÉuZ¸@øD#ba¶»b¹6V‹/Ë—x+¸ Ó=}'®Aû³Öݘ˜�Éç6zôé홼ÞK·™ 5•Sš³ Tó÷ ðjqÄ™p×�GR FØ> ´{¡&‡ùÑ�1«Øò‘¹Czì8]wØ DSZY‰7˜ú¬È5çÉ:œHÝ«ß6‚-GC“~‡÷>;\‰þ‘ø/ÆÃj‡¯�çÐó~Z{ ÌÅ�|bªS» ³8´Çë1f U†+BãÏLþÔ˜Kà&AËïø<8Á üoœß¾w7vßWÐó¡J�¾ypíÓÙE¢×óß8n¿E�ùá¹³’éìVa{×$¶“>IÊž§éaN?]jCö(Uk] —ý÷”ؘ)Ÿÿö}ŒöqÚI—Ž(VMæ$…W‚0»?På7WZIYñÌqÍ.•¸ Å´¼KyÅvúRÃÌcTI{Š“ñâთå Ps¤˜ Ãs€umT“>T†Ì~šš{Ëú¬÷p©-s¡¯µaÏ(o‘† ßAË« \ù—}kñø•ål4ÎÞ/Žãé¤2r¬OðŽÙO.µ"+*°©?=S;û,O¤,“ Á¸ÑíøM”À¿÷³/;ÛW¡ŽiSZðË¢=Èôj:ê¶u¹:@˜Hk©,¾t}ÈZCa›áŽWKeߎ1ç¶sBY©ŒtúŠèFm¥âº.Z¯Œ‰ñÆÂ>0ös¤!7_"E>J«I0-P0&Þ,²0tç·â!°;.Œ‚x ô üžeŸ �~Êæûµ=O›¤Ñ8uÁà²�ÝžÓó '�­1m‡êAFÁU$0¾Z&È’ïrý¸!g*RìÐüåÀ†t/#8tÖ™ªð¾à§][ ŠØòfS/pù9Cȼ?¯R‡œV|ÿ£3¶»ðHР  �zu5a6¿¶b-Ö™ôºº>)è‹hÜIZ¦à+üΜvób|ª71³6PÞ Á¡äP}§ÝÇ C9²ÓWÉ× ¦äÈÌÛ¬|,üäËy¿­~/§@ß hÓÑ·ÒõA¥L72º&‚tWÒ)Lä*J¨§™áCl±-À©Á¢Hg,P¶š¡w’‡ Kw›ãZ>sÄ4¹dœdò“a‰¬q>#hel ^­òóºÄB²™Çm” á¼õSìÄ GN`-œw©Îx:�‘=Üp膉“Ú1lpÊ8Ú©¾waáWÆ3æpc‰Óy�¼zzT‡>9Äæ56Í8]€•eÊÿµÏtwº‘çÊ|XX Cfð“y…Ë%�U¶MOGc\ÿy¿íÞÊ[.`´‚è›.Õ»5=4xÀóþ+5Ц™«7žÿÐKÛ’¸^䎟X; -¤"¸‚‰)€olJfãR#}p$¾á Šº^ÕSÕqïŽUcö«# kIÖËÐ’¾ �û—f’¨ÐÌ`‡ªsê uiZ‡¡É¥M>{rÙF`4Îv7àA�ÔªéP"²fÀ)êħ›”b¾~/¬²ŽRã÷#ݤZÜ+oõó”ëÙ™L…{pS¹+4³ìñFƒú A¦hà' Gó2I{ñ7íëðÂõ)ÑÊéC’-KHL掯‹6!í áò4ºÄ³×Ðr»óa;K `bŸ¨!àf?ˆymä먤w°ïè?BNÚÃ\ïלxÆô®6â0mšPMš$ÉÔo)†Œx+Ð�åà#˜‰=&S‰@We<×xmÚà�\‚Su!–ê<å–LIµÒ¯w»ÍÍü?ŠW ?2dØ„3œ] þ¸¯åȤ£IðvÝ÷ˆuÅœ˜ìg@òe¾0¨“’ä@À�ôͪ<Ç=xNPÔÞ&‡·p|íJöhä”.6ów Ó5µ1rˆÔϬË�ÕW!Åx†�:²ä׊ës2ùâ×Ñ›­#2“À7�5úNóVÖrò*zÉúþ5]O�£û«æîu÷“e,ÎÊeìÈÐñw�ž0ž:lÿñëü³ÑÁü$µŒ“ýWЦ:Œ=˜×ñTøvÉAòã͸Sø‚8Ü ‚x±EëdLjî¨Kͧû„Sžš©2oj0&" :·.ÔÐ[°4– %B‰*ˈRŒ‚ä]V庘Œ§ kyÞ­)Ï«m€dÔ8¿Û¡®€ƒÙ¿A!-6æCÚô\áÐd²…É¡Ch×å“ÿYj‚ä(Üçÿ�G2s¾þï­ãRÕùà|ŠÎ­íA-v^¥ú4fl®Í‚¹ –¥~…e·¬MlnŽîDB{Gyé! Ò#�ÂØÿºú³.¦ÝO­€ìÎßÍ&óSüƒù�Ä3=‚1r Vk¨çäy�‚ò–PŒB¹ú²Ú;ê! ³¡ŸEWåËnHžQ#×1`#KÔ*‹Æô˜�’�ÛyɪÓ¬fÖë[ ­8Ðu°ïŠ88Úƒ»âe[¶&v{RðŠpñ7F¥Æ®ú8ó‰Ðxþ"ˆ�ävÏ` o äÏÝ¢¯…A^·æOQ§ˆÞ>ʨøâjwG9­]*:r¸Dv'®ÙÆ"yq…¾QfRüñnO]Oové…øÖjbH]^<½)ƒ ioG#ǹŨü¼9®æÞ¾!B„67öÔ·6ºA6Ì5‘Zyq��ö°üò•ª-,=sÊa¨¡ÕŽõ`ÂÉÓ›¹Ï5»„ÿÓâÅÚ'jdÖYi‘À¨�Úbëz‚Ëip>´�¨f!Ór«ÌS1ÿÂP7T|EZ¢”'ŸSwÇIõQ£¬—ðÛ±ØyxG®#Ä©=Ϊɑ á@#Ž‘q:�©/·ÍÜü`êì•"óiêÚ—Þ¸ÕÄ×®dd^Ї¥ž©z+>ÝËÝhÛT¼˜0w5΢¨i鉤¶YO‘£7ÐóÒN-yïí”#Lvµ7gb‚ZµÂMÑG©‹K• ¼ÓTùŠcpÕøúÝÿ¶Ô¦Æ4³�²¯­Zp6t¾êºÐŸÖ× Œ¬]wÁÚ‰bò{ÄÈMo{Ó¶|TxS÷€é—š™¸Y|-rQÇk‰l€Y¹|:ö‡u¤»•ŸÑe[8a¿káXbÞ·,) ž¯=U­¦UÛ`&@'à ¦?+KH\Sm©v³Æ4x2ÚJñµépÜ_qQ…®xë´2�j³H®@l%5&á×ø$~—iþj:'(iþé¬�.j´‹qÕÌêўäÃÉö·™Àx¡9{ÎUdÒ¯`DÒ í¥åv5d‚j~Z•ßf 7�÷ë~D †¦‘[ô·WQmƒv/ïå\ߪ?~­Œw(ÀÂa+0¸GŒ©züƒ7¾ÐÑ Ôe·WŒ {DÒŸŽQŠ¡!˜°}€Õ^›“¹× ÊG‘ˆèí¯eBŸZ96ú·gp2ßQ8_ü�B÷¥Kc!þ|B‹ú/9vˆå—ôê“75†µ¤Ô_s=BÕè¿G7Sb7b;¼Ø6…45„Y3Pm„¯Ö=DY­N³št‡|ÿÄâÇë†e¹×q.fO‡÷«°_qß›¥ÃùeJñ@$gí� ÄPQ!©M.VFb\#� ´‡{Òs9 — w*ß“·À_]¾ZOvƒ7UmÏòt°yÉl¢¡(ÈC×Ý}íÆ­×ßU“ú•ù4«ïCïÖLO®ïNð"«~«÷A(_ÎQšt«iäõï‚1gFº R÷ª_ÚºÝÇ=X }4rˆûKüÿ»æet8[vYÄ÷w9ˆÇÕ…Øm‡Æù^è¨M;ßš&ª¸N»)=kºkbSB[Na †Cœ*’¤£‘ rÆA�õâWk…˜ÐÖüîã %RˆxöÁb«"©Ò,HÎÀÉ#L\Ý´Ãÿ6éÔôÖ|dˆ¶¶¨SHJ3‰í5Å쓚Û/ÑCùa¤6Cý×{$šâl"Wÿ¬*Ï u÷h�? NP´ìþ4nª—4¢WF›–ÜóŒnýÈ05¹›á[­Ò÷ªl�&áµnÚ V*ÖøI²þ&æW}ÍèÓ°»QlOCƒ°j ȧw¡Î°£NÅë}V$a[}fŠÀ+Ãk‘Ø„û‹4žerI–œMh½=[¿CÔc!ú1)É଱ºG'EFÇtF2œåÔ|ÎÖÎ Œô¼;A¼BΑÜe·âE¢Ó÷”FÄÊDF8d¾ÞÖmNuéÌ6‡:Že&8Z¬1Óª”+)jc»ZùqÕ-;È‹Lèh¢Wþ”#Ý{å1:G_ÐnÑĪÅUj F;¨Z•;´ò6aXp†Ú{ˆgPöW $–[¾|4Ökõ +åIí^…ÂY¤F�Û µ­¢¾N,b k'ì¦Ïu=Q.›Ë v¤Fu\›&ayi•»×Âò»!AßFðÛ'×J>�¸<À%Õ¹˜QoMµVÎ8Zr«Àu�œÈÊ·¦ïDÈçx�š*]#DH0;™A¦ØzŠ«`gù¥OIE]odºãN¤�ÿRÏq§²Ú}`ª8qSŒÇ0e�1ÐF•�MÓÄ®ëü#k·Én6bÞInÛü"Ñ1)‡K"�Å›ÀV ÄÊcü]¿®?g’Öö©k.ä ìÆÝ]õ©ÝÊ:TäÒ;IKè¨û+[ÏcŃhBãWr‘¡4.ðd&ÌyƒÄï̱/³Æj§;k ˜×ÉëÞ_†•wcÂʃC5™;bô­JÐbk”{C_ ÛypŽÄ¿³äqH¹X-:(z¯#QÝÕ7£-iÉ8æ<…>mr(œ{™„ï‚TžH¡ÀWœRIwx ‡ÿ(T„Xè5Ӻɹ&…ôK{nsŒý;H÷!þ÷´ºi_—8e^ 1ΆÝU&µáeCj¤ îíC7­BMû„ªXä��¤/R·ëàIÞV ó@ˆËFh5 Öø-3gpÝÚÓw1:OQå7d¤——5$ÊßXq¸lryÊ™ý™T«$ìgÿKêç¢ê«Þ[šÓN`¤™ª|�„ÊzŸŠgµ`9bº`7Šc«:öŸ¥ ‡ÅÐZQ�ÍJB.iéa}ÿpMïø•f÷R Ê8 ) ®é|òmìÝjê=@S.?ò2ÃNe*y¿àÊ;G�ë!:Åö?Ef%B;%{3™Š.Ü¿ûS§[¼’„¦e˜ �«·Ð b�GtÁOºSû¿TöÉ;dÂ0úýÃGÞ†‚f9èCâÄemk¿ìOÛÕ*ƒ>¡M%Â�ˆâ�ìAŒ—ÃsŸ"%ÌžB^™¯î©Ìœ�Rð§B?«N> ×ø¤ýÁ»P¬álýJ4-IùçxH4Ë +Ð1þ-ª¶¥gkjû%5Ÿ(QÂD Ê³x4n|KNü÷Sö× m$�Ç>:à3<„¸¦0uôΩ{º}Õ^›ùý°ðÕÄùU1èF¨#¦ë˜¤c€¶(Àùr´ùt?’n ŸÉÃS`);@M‰»ò]o`[‚‰ñÔ4Á"˜ :ÆÊMÄ)‡Luúµ'Œžö­ç¯Æ${ÕOÞbï—h@”TÐFìOdPd}á¯$Ì›{W[çQ¦EŽÓýÜèÌÚ˜òÒcâƒ3/9H.n‹ó}¢=Ž{©àœT�|ÁËß½Pâ¥ÄPdEVtµ¹ ÁÉf¥ÌÞšÀÙ~@Ø‹ìXS3¨Y]lD\µa ðK¡ø~µDNm Ç£¾ßµæUQâ6–ˆVP‘È=c��²>Êe¿�™ÿ(Ã,À6jCþÎ48øVHP´ÎVîAec»3±¢û*{mΘ¿ Q”ÅÖÓßlUSD]ç˜×<ŠÙ‡{c–5ÿÍ¢.CâH±ü4‚Ÿ‹Uàh_¡Æã¡œ wìW€ÆDˆx ?pùç7$­{° ; ôCË(,•ö\¡oQÅ»~þ^½7>å£já’z~ªÄFëw � ê -ïE<$g¯2€ñd2ÛÀ­¢ÜÀæ#ªé»Ô_Žœ³Ó_`8Ít§.X|>yå!³œS^�Éʧ]ßæt‚¾~ß ı¡‘¬â`çñŽ‘¾P¹�iæŠßՕܳ6ÒN“. ß³»"çT8$ Øp4í¬_¬1v¦ñ+9œÑ„FÛqŒIü…}åˆ,ê#�õUTXeÎYEi%——8™ƒ'pr:n®�á¸XÿF 2\O~Š–œW*Zv‚ƒ�½SA˜F µÉçrÞ.2vúòOLs�¯L¼Ülì¿ ã‘=#Ö—ß²WàŠ„h_;¨j<‘­·ZV¤EÛM;<ƒB0ãA^N²¯Ä6é��f÷zsà‡Ší-}UoÔ’¡R¡H Øú²±fÆo‘ Ì-HÖS�Ä̸ï5Ö,MsmÐyB A®ôõ°b\è Ž:"_£V€þ×ÓVâ¼…!§,Ü Š‡0uŸÅ>n¡¡í3’Ð6E䛾emk ÙñZ¿MYu°LœBR�ZnÒu…ê�l0ZzŒ<Ú[@xÌìIw*e�tãéô¨XF�s�óDIöºñŸË!þ‹®&9çqû›ü‰ÍÝ�b\Ÿ’?í±�í±Ö@dÚ"Má2«GóÈr!÷aýµ èÙcDô×Qt¢®¨FV³ÔIX(ÎÂÃfài*o•ÃBúªýÌ£Ž­$Š'íH÷S´ýÿïá“ÊŽ0ç#[‚ëíÍ"g�íîÓǙԔ,«e éF¡ÝM*n¬ ~I§ äGpkK[¯î2/=öÜyMþ¯¼6• õOÁ\øµÚJQK"•ÓL¿¥¶Ÿª“oÍ%œw¬?䉡±†/0&IÌKiâfj¦%³öˆ¨n±+Øí)G4¶MJ36ïlç«‹è1ˆ„÷)ô_>v›bg;í¾º{P"NÓ5 º;�ÖÂ"èÂBx×Sí<£ŒLµ3±‘z˜ì¯w©¥¹¿DX²¿ã æ¸q^…7‹ììJZ¼¹]k�ÍÉÖì-Ç×Ëx=ÀªÚ›Y,RßA0Z¨Ýy�ËÛ߆Вª‚Ý�´ªR<³è�7`ûafyÓÛÌrÁˆ¾åÒÿ¥c�#ƒãÙ ¸”$â�P¤Ï9-‡…5»Šôvv''H9b„ÎENXxá£Àp�Ý…Ï“D߬‹þlɽ*WCæ{:S(wxÁV¥[©HýŽ;Dï¹!·�'K¤:‹ŒŠ&~�OH1“Aö%ÕkÇ ÁÊ~Pb¾ë‹ªe¹€Æì‡ZÏKH³ µ¼»×®s�¯ÖÃÖ3þfO;B¦)Éðµç± ¶bB¢ÀëðÈY7@ƒÄœÉ*χó'3ë•h÷…#:·¼—V‚o§RLô’&hÕëì�1}ä™Âªë­P¡4r1Ū \ÎO” (P§$Œ$OÞ³– ØG ÃÙ¤/VøKÉXC�ìåô$­Æb£#Ó_ê±Ç0ü_® Pt¶!Q 5¨Ñ§úZ•‹[ËçÁɰGÏðé=›PüºT Æ ¤‰'Âû)ß.%ÃŇõèýŽòvbê—øR–#F»”†³�AŽ˜˜ºÏïMWNÏP…4g�ûÈc¸¥��i×¹¬ç,´záwø(Gý2Î ¶9¡À:N½“p­®&£o"K˜ý‡}Q^8Põœu\­•Ö¹×­‘h œ,‡ð;�Ý;WØ€­æý_5ó@ùÕs¨ŠhwÌÓÓ}Ú‹þQ¡º*“Æ0¿äý_9çÂŸÑ HyaìÕª6|ª\ñ¹…¥k°^}7n×@õŸ4ÿÕ�c…kõ¥+y$ùú‘I¡¯­¶©9S cÓa† s)è¡ÏˆäXç@RHH·™04!«ê7”Úã5¤3¦ìƒE’íxääéOl,wî©ï9ÎÛ‘‰•  ï/6�h £Aû´R•áöÏ�·º‹åŽa’��æ{"l RÏÂ3s–}ÊÊf|�Ã&Šÿyã�;iž³6VpÂ3 ò‚4µâ¯,ˆŽLÆýÞ�îZûÐ×0Ü_¼œSILÑ’)Å™$ŽIÝuÓ[QŒg° ÂûHŽ%Ádª]ᮑR{WY„( C.¸ÐY¢„^,æMYÆãWnkؘ «*Þä*pFçf™SKø�q<ö×0€zÌÖÊà {ˆIÄÔ‹ŸVSßpü*z )³°™c¬ÿq=þò éÑ÷Ѭ¶ÎÙš›,¡›KÒ¯�‹ïB úÍ(þüFŠh·“Îcëò%‹Ÿs]:Rùâ�Xã§xΩÆt[q»o@À·jé`Yˆ›&åˆËÄx'æÄrA/E!ö“ßBGiUîV`é½Þÿî$~¯Õyª,’a¼·¯¯,@ÚQ�kŒ{�ÄÒ¶ÕÆÉë\{Pó�{='Ø}~*Ðc tß cÚÄÈ™ {¸+] ‚&[$u f/ºôT� 8礂¥^,2ØfPG¬7®áz—â)Œœwa ÷ƒøT ¹Ëá!Û°bóœ.,÷HÊÝ…ê3ñìøÃ4× 4z#EÉ‹•ýñUcd±¡<¼Ð0ý£ò§ô†Vî9N,¢X7NFR£wlbAv7YÃê=´JBa�øÚÆ/�ÕÏÊÃpîÈ�§Ä×}ÓuWP”ñÕ=¬~†ÜóT ›ÞÊ>YW[k1§86ÊBhݱWŽK<Ú>Ò}º°#q®ìu�3¢^y\àƒ‹�‘‰'{óÛˆ| p61”§>³¨ç­f²”�ö-3ùª4ᬉݱ’ºDwŒyÖtzKÎ Aƒ�&k Ñ¡s4Õì\™ì„å NŒTyŸæ}à c�iÔµ�’ÚØÈ,C"6Iæy*ݶ˜ËìœoììKUûÛÂǸñ§�U©¤qô@\À.½EÊ ™Jœ±Ò3êVÃQ|ˆöá|�£¦ bü�ŸØÆS°÷Ô�/IWõ©„@k¦PáæTk‹0Ÿ<ÆÓŸ&�;™MY!ÀEù1hMw4EOÒ`ù¡‰P\áPó^žÜ÷'?¤„¸Zg!ñ’ävçjø–z¢ü�ñ\Æ>Ÿ¹ã„ïliÉËmO<üôøþ�¥ˆYs è+"çê©Xºí\ŸA”ðI)âý1‰Ib_/IãÂtƒã+dîA¥õWn]MO³”JíAÖÂÂÜÛsVˆ˜¹t°°ÝÚ{ìò}m*R‚º&{eŠŒA��=•üO¼Y�Zç<‹¬S—ÿw)*Üo´ ì,&Èü4Þ‰ [ëƒ6±ÓÀ°“‰¶ì…[#Os6AŒ’œ0F÷QïÂ0a=�;b·{ Jv?²i*ˆ#kFÛù·hi,•»b ø‹«ß¬‘5LË·1‹¢l9Q®v‰u]pÅe‹Õ}Â*‹DqŒµ‡éщ-±›¬ã{a÷B8;¥fw&DHžÑÞ¼#SJ‘B(¿·¹`áÜ�oIÐMRdÙšÏFr+O�:Fñ?�ëò×ëZ¯¡�"9³ô;kÀßòÉ5$,ÜUÕ*øöBx4ù!¼õÕUI¢éIÖÝ •È’:[•¢€~ݤ){Ä%ˆ´õ\¶Ÿ´ðÂPI×!x˜àòo2O‰�͈Ð},Ê9Åü#q¹ÕËãwæ7~WjÈX�§ÝǨùŸs£õ5 b©RëÍN.b%cÒoùá*ÖPe8rZz†ô›„™#Hš¸bÊò mŸæ3׆Ĺ´—ÅwŒ?œKbc3 �Ë ‘¦Ña¹ØEÿþ|ûï¬_tî£âÂÀ±€üÑ…ª‰sp³jà" ˜ºÓR¿~Õ¼Ao,ÞÝ�rö’¿ÛÑ+ó]zîµwt\hNTƒoƒhõd˜Æ�RÔÄ·YùÊns¶XvÞX�0i¿ �¤N¯¿FãõÎa2oMŽ�þ@‡Q0k±:ª3~?XNC»ü„/Ѩ~ì€Iÿ ‘¿ÐÊ”Ba‰ùú¨¨1·ì3» *w;€×HQ5Ü;ô¥zßÙ§’ú‘NwJ¬ÀPJ0  :%C ûq³˜ªÁãÌB44©jYì¸ü‹gŸøutR¿ÕžÌÏœð飲ëª5¸@�³@‡,÷f–Ø–×ãnmבyútÇ[ŠKm¦[É–A*–õÁ&o}þá¾`«ÆŽ"Kýy¸ýÁAñ^ô‡|7RlÛÀédx°¤‰¯ò.Ãùb¨ìÄlRIÞl!ÀéWÚ¹û‚Í©C±VúÒÇXúËĹ2ý¥m§AÅ»}ÊÔ IrÇnÐêŽv=]J3—*ƒn/NÓl-è—ÌÁb_oršÛÍw,7cOšw¸s 'íýWɰP„¸ô襢D[I+ÛH�ƒ ¡Èq"TøÞ¤9¢ëZ›Ç d{ÿ–Á‰¯X‘‰9_øî/ÞLû2á{ïË$>ô£ÞuÓíJëzGú áòM0͵’�ð'ä2ÅG'­�ºÇ®1Hí% ¬ÓàL½xTÑ–{»5.~XoBðƒ »±üîÏ/žñ©&wBÂWq^»á}Šõž·:ª»FÇÚí|ÆæÚŠ¶”L ìŸ×-e§ë‹Ó-™Ì‚nÛLÁ2‡Ü Ÿ(uÔ1/6ar@yˆ05E>Ü+ÅJÕIù;äÌþn<=/Q¬~{b4Ð}óã׺Ì“SÖ�¿Ü¹rjb˸{ŒÚ;G®,Ïâ�ôFÑùQ±·ÞÉüg<wðœ)õ»ÈÁv�á¨àu[áYá Byv<Á üE[”}ÐÔF­Æçɯ͂ݡû·íhhÕ¯Uº s®&@ÕÏÞ¯\[Êw–_{ÆÛ�îä0³i³¤ðÿ›Zh€Ÿ¢½¢úÕ”—Ûé+�ë» Û`jg3þ’ÄŽ¡L %G PtŠÏhô;äñýe¿2Cf}[’¦ó °šŠ'X!åU§�]Q¼{/ ÿ Äâa{Fô\ò�ÞoʹDä^øŒ|²†!ðvì1üp Â;zèåUš… ô¹7pk‚�®¿Ú¥÷S˜Û•ŠÍ=Uƒ 8”Ͷz%X™)]¨óõ<ʱdM YêúzŠjjòüs¨*ÿŸêWúçùÍXþ*E|8ƒÌ} g#+õee-}CN…YWú¤(,ÏjTeÞ[Uåz¬q:Vgµ[͘v1ièn…N®?jU�ÉûšÎ[y¢S|˜Z°ñ/L¯þ�\®…Iîû')‡_óëäöWzbÅöäoh%£ C±ü¿Š˜lI…ÃÞø¼|ôÆ®¹D›Âвr'*¤i!‹¬ú¥†2Î…b46ìÈp]_GÊֻ,!¨ÿêèo»›'<³"Ýý¬ÒYóÉsËÙâíƒðƒëÓ³;oýó£8�Ý®®ßÅ¡©ÆBažCP“‰_¯kã\ÑÁU‚œÂ=«åƒ Ö't¯èÖð_”#wå ¡r(Oœo”Z@�~ŠÍ_IªÏÍ샗¨W”!šíò¿%V¦1 YkôŒú¸ßÃÖ°=e¤Vcÿp~–›^#m¥Tvé7¨†e{Š h÷±¶aÛØnh�nºåfMo•.wÀàþî€FÀS=2lŒg^UºÌâ �½Ic«þsOEõ\Pf´-üžµôä°�7ÙÂ¥ø'þG—pYgZèž+Ìøpö:7OÞBç3Ð\®Z/—ÍŒûËå«Ô ÷þ#©+éŽgžÃÉÊÃÄŽÝ,N®¿^»ûlȵL.�#{Ý1﹟Ü[˼§ÉÓ™ºx;µ³åõçê'æåB�ã¥þ.=-ÍH\îÏ� ®2’¹ôŠñI«#û¿‡¤œ „G\℟…ZÝõý¹—¶@ÖLJšGB[öòØëy M- Ílǰ¹i�®6ÿ¡ã¦jÖš�Ízô^p®m“æn…lŠ@~àâ–@@^æÜ8l>éÆ"Œ Î�Piy©C7Á0A–öaO>!?N=C”UI£©ŒBþz#l¯ v1ð¿ûÏÁèn3õ;‰Yc°¡ „;Ƴªõ\b\íKW;‘jKõëT$ëõQùªO·îvûŸò—îÎØÔØÁ$}8ÂO¡Cy±žMäÙ0CkЧ‡!@&4tªÓ»·DCŸÍÎã-Z�BðUÁ¾g‰ÍTu2-©³« [W¼JòQð“vìWKÊÄèá×½*ìqÕFð�ù ü1ú5Õ¨ºçûù(½æº_ñ¯LÒúîÑÔÍ$ŒžE¨5k¯¸¯ïGÔ)W•�¬îÚzIç]8‘õïìDcfÌ>«îé\ãèìübïßmÉ4ÑÆ>;GômQ˜Uí6+,'Û°¦]Ëü“1«ÅÞ›¿²Ã©©kLd©/Rᤰ³à{é3÷zÛq¼DË*n¡ŸÂÛMŠš`5Ó¸Õ±Vf iÆ}˜Æ<.ɷЇõ2‰�àUuéè}Ø-Uaû3>ÒPçj£´Ñ3į ËD&ªdL?ßRKÑJc¶o ¶.î¢:='ø�®ÈSÕ㬠;¬¸“¡ÇçÈÝí=1>ïIwWIÌÅßc "øÉ÷ü¥YŽ‚qsí9·å}MXµR ¥f}ú“ Ÿ2[¢ŒÔ�Q3Ñ”þCþ»:X‘ Øš½Ð1_?Í!²©XÞÝÉ f/ìE1£’¤^¤~£ °†ÄN#: ˆ´ojy›.A«7ËtÛ·šLÂÍc? L�ñv ƒU¯‘¾µ{\�t·X]èCá5âÔÇ7séûQ—_D4š}@CÛZƒ?G¡.™9Ot+®�ž+ƒlŠ/94äÛ¼QŸéï]RæV›’–­ ·†n±*¾WqÝÞæªvœˆ‚ˆË/¡¬õvñvôÀ; !í‹ÇZC—Òæí¥½HD§oážÚEvL,‰Ù‡{ò7k.W‰çÊå¥ßã^Ç&*üþIè8ÛZüV v†��E¶¢;#†çëòDÓÉ«ME:kaÍ `^â²´íôå,L5f›ÇÔô³Á§‡¶iq5 88y_ 39»à ÿÈ3‰WûÜäû”Vé½Pl¨Ê™vwÆ Üõx{Îßbø1ýÓ ôÎ�ݲšÛs˜Ð¡‰ŠîŒ N,rj­ýGK!®�Âêʬ¼ÃÊt¹×^ÔàúÌ~áEWT‰}““OËÕø­Ù­¡ˆ‘Ôý]ÌWL4%/’óJÝFQ*8ÕS~/5*×�;Æ—aCóÛ¨Lä`?$¹¢îôçø´X5«•Ξñ´’Ûï�…³±Y½ƒÝ†„Ì}àáï†â8ú¯2A%*ùŠÒa÷/ qå|Ž£–£3(˜Éð4§‡–kK}½ÆQ°ÍBS?kUJ)¬Î3:ráBþîvÅqoj“Emí�àA˜aÃ~´‡›AIJÑH]À¦‚õÒ!üžàÛÈ1ÎÒŠO1ulÝÝýìC2ëG48´�+ÒŽî!¦ÿ9±ñQÄöH’x¶Ï{`·N;Àž@ª�Z×�(ÙÉö—&§lÁXŠ#š�¥�ã)¢Ž€+&PÃ�JüŠËeä5ÛÉ�^ÚEܦ»bXVmdͳODâ+¸ÅFèšoÝ�óÅåââagáѦÍÚÛÆF#½‘/ªâx ’EE ¸—}g¨XM³íêɦ¹fé!,ÏÊ©³¬:â`ì¶öô k°¡PÖ°ÝâH±<êÄ Œ$òO@Mþ lº�»M[<}ì^ψ”oÎ’ „¥z±`É¢¹!ir7a¨‰öž¯–;}âr‡7×wµ1ç!\C‰º‡Az½RÙHœ~Ì@¯ÒóĹ÷ë‡�Li˜€n�9!…*Ë÷*&×-x¢¢¥¢ì¹lgCS± ÊS!èX»._k¢p«ðÙ»³–âÀÅeÐtC£á%Zü4ƒDS‘¬Œ�"ÃÈÅèÅž—5AT§UZr¹RòTõ„-;YÛ>·×gM2@:bd‹Jl£ñ^Ъ.Åâš—îi¥zñÊ»ÐDJböç!´ Ž«Îë ‹Ïä½$6ãIgáÈd5_â©'›U½ÏŽ×â5fö §h³‹S)”ú{ÀÌ›QžG4y³­v+Xÿ%BéÓWRc`Rì ÁÚæ!›M=�PLSLšQG0Q_T 4cÏéþÖ�9xExCà€h\Ç–wµ½·'±Òw1Žø~–\âdÓxß×él`ºƒ¼d§¡ÈÛõ�­¬�fü•íG Ñiƒí•p käešuµÊx9ù kÊø½(êvæ¯=_]ÝaA­òÞ„'f7ÿ÷š´Gè”;É?o–&»6^y‚è+pÜÀ<;‡žH% I4©{&ˆ»>‹Î03'Âm˜2dƒÆmND½«ŒšjYKùï¸0Z–�¢»+ÁšåÖ¾‡jŽóP�0Ñ�i!p €ÆÐ,A¨É\†<;DúÖ»X\4Iöû†«rÜ×0üê?¡]ñŸµÛD¤>X}À2Ä�d6%©³õ9ൡµß•¡éƒ¼>±WTh“K<;5xÕKêò¼¶Pt¢Óª‡�+(é?ÉÑš9ÔT9y>‘"|š$\º ›òÃ�Ò?@ÌöÙr W›ÞŠEß í´ì þ�Ÿ3ÁäôhÊ—A´3Ò‘3Ö“ûG!¿\=Æ.ŸÜÎÚQ¨Ç(�·¤ú¥àoé•‚!NûÃ7ÚòsÕK* {â²ðïÈþSüQçͦ¬ ¾ØÁ7Ò„Ò�³÷׬q$~ØÚ_Ñ-§ïÒx ·,ë¥HkTù ï>‰<*ÈŽYL°ýsª/Ãn®^'Ä�Àñ”„ˆê™A~b§o~¸‹k_0‹­ÙlÂÀœÈÁ®Î¡'™ôç«ì‚Kze`0Ì\ôâ‘ñ|ý¨bVƒÏ�œ8j-‰)Ã+Îk½«OˆóñpçŠóiŒ6µÃÅ : Ö`òÎÊxœ¾“B¯t³²Vœ€ŸeÎÒŠ¬Ûió«é N[Ÿ¡]OÞI˹x阬Loá¡¢"Z¡COýú¢3`BÙÀÍnõ§û'—Ó¨oj^æpØ)Äó`Ó­þë™/�3”y�“@B_—’$vU1÷Œ'/÷³&º€` +#j´Qì‰ùœ¤ØÚÉ ÔP¨¢Rù¹ñòˆ¡^Ç9¡M¦Êzí³/N_¨OÒâ¢oÌj¾¶¼·í©òW” «4Í ó4ôfa.~õ›@›.“SL.[:ý{¸uÙ¥\ÇN…à-_f£¥;ÄXåº;2˜]Q>[c)k\ô\ŽX�kâŸíF�Ó�u")Ac^ß1R6ü�Pð4¶oVmÙØÜ™� K;…O”j^�üAðvý-›ö‰o™@e,ä�éC7Sú¿d–L$sÛoKmÿ)¤òyÛUކ:4ÌZ×Nx2ùU GŠ'¦Êèâ,ÚqXâðRMuMIÇ}.2{�ó×$›…:ŒÉ(籃֪â†DmSÈônx벃|7Àî5ˆ|ؘijäÖôQ>¼Ÿ©RO-s$0 Ëìú äæñbq}cs(Û— Ixµ·�ùWP´úâÝcdl+‰\‹g[V†¤d‚`›Âš; ˜Nþ䤨ü$”Æö_!Í€ÎÓ|= Ï@7¶ËK~1óv’Lé –==;õS‰ã5úœÎ«)ûG]‡?u~JM¤£HŽîg·Ë•8r#jj³©këÌY”Ó!ŽC8±Æ$ ‹¯ Å º¶…ÎÞ2 á+åcÄè¹à8Ëb5{; ô˜ƒ‹+}Á¤LzéšÒ}-M2ÆhÙ1­u3�á"6™2¯#X¾r#¿õ–K ¤1f.*‡›H«3ð'ísg¦ùâCé2ÙÄ­|ÞUôÒçY#ø5¬¼ÝN ÉÀ†­®sy(.¤M ´:ùÊc=õqúÙÐfn10~ÿ-šî=ŒÀ†z·iü5WÙ@ªp<�VQ¢mV̧\›`V¿`ä¹V×\!òÉÍUj Ta�—²‡pç.¼�|wãæ#±M3rÆÌ´¦Üé@Oש£ ‡ŽüB�e´ïé4*Gè,ÐŒ~HƒÌyÈ×P±f3õO£3ÎÝ;Ù4K<ï{Í×< Yü‚~Ò :´~›1E·ó�:žNß6wU™Ý1$YQÞä¬NÎ6A+F§ 80Õ¹“Yi’Ü`–†²ø  R2:"—¦dÙTkßCµá{Àñ²|v‘ÅT0¡ôOüghšïÔ÷ö¼ª6ÂùÊDR¡š¯¡n§¼&8›<Õ¿¸,[�0úl 1Àèlþ‹ºéñºoÊÕ-«áôà¼úøª�ðAuûnåß_˜}Ú¦^îC{›™È}#\Ò€™ÿ–ª Á�ˆ+q¯?-w¶†[ŸiÐBRÎìo¦~ €Î@1ŠråE(”ýq�­Æ¥=«Ì:;¨BµøvfìHþˆ{•o“‘7Q8åûSÖô“¯£ü0$º�lp~”1¤°‹POá�x1b,1lšG¾É.ÛÁÒûpŒ!�½·«ç,Ä¿gNÞC;ûò!±HúJF?,ÒI2ôA¶›Ä…öU\P™ðæ©÷uÑTA’¡3DµÆcë­ì+ùaôFŒÒ³À°GÁ©¿’0šä‰–3†4^œÖŒ‚Ú;ŠEu ‡<Ç×ôá}‘,�ih‰@Ò×]zO»Br~ê¸î(ðÜðÉàÓ†¦‘‰kÿhŒì¬¿p·÷ 1p¶µ•þc¯Å‰ùxÖÂüÎ@ùhèp€¨³dPž‡ ü>„Xóšq÷嘭¼k^$ä–ZZúq$x‹ï~œˆ%¯xDŠRW›®-Ÿƒ‚©e{ÿDʼdq Fª“\Î9}Ñ>d¢~´íI÷ÖˆÀ¢jÝw˜ðßî£ÒÑoR`ƒ¨µEk"Ь>t©¤Šª9-ÛzÃ-Žu´02B.COûW+Š}Åõafñ °Oô›0BLåò2:Afý~%ð¾/²çÀkAÍR§ˆ&M›1^œpƒk‘'ËËs“€Ta�Ê>iïu�$�íj4À:<ù—I‚ïäaŒµT´2ŸÍ) "j× ólö(ý&'Üséž1ˆ‘ï|“§€yÖˆÅF œÊ·:ÎQ¥ø­Æ2ñÍøS3ý›ÀÑ!¹ ?¯ªHßV\®ð( |i?½•*ï°Œ % ä4ÿT:šgJ¡hYZ‰}°õsuÜ<áÈLL%zG"%ÿtlÕ«êøÓ=³tSÄŠ6qú�ÆÇgùÑŽo†ÙÛÿ�=âY&øÄøEœ¥yêR†J š[ãv*§>Úà¨mŽ‘ê—jH$çÑRJá![øâ-YÌù‚+˜ØŒW¤/pÑÄ_}ë „Áø÷º—»*r‰©wm¿Ð ÔMwz"F²˜2Ü`…žùs± cwåà:^^"ã_þ¦Ómë0Rk¿‹HRÎ_È95ìpˆyZ‘ç¤T‰ç ^ ‡’–—°;$¦óC>�d±¾kH*ú…–7äâc$ÖN�ž ‚ZÃg¸].V'sïñ8w®`cª&d=+½ ŒLÈcq9ÐÒ~Œ(‘-'|q£�“šÓ3•ý»1ÏqݰÔ+UBÖü ÇªÉ¿x1»³'w‡6Ç.=:E¥J/¼ Ö$Á‘Û™ñ#� ,U_ÌWcAû Iq“o¯Ë�§r§|†¶pxî|ªÏ£^òö ÑØ«¤?›ö6èd-Íko í•�.›4 C7Ñ�‚ºátäÊå:Î|S~ Ã9/Â1±ö„¶e¼3¯à¹0uxÁ²4õoàAPÅv4ü´89Í´jN¥Øå3'+ãâ·Zh›>Ô‡|ƒ†_6_,ÛËz˕܄i he¯-’k�°l4nU'@ý±ÎHg†?°GT�s »~^ ‰ÑÅ‹XÍýnÀ¡C±æ!µiòüý@Bò¶SÃ*6¥2¦gáP�‘×ï|†ËMÝóêÎñüÍJVѹfðÈÈgÄTï=&M:nam•B´í’ô¼PYÕý_¡¸ëo¾'ΰ·è)ÉÃå¦Au¹iE«&®šŒ¼y“Ä0¢ÒRkŠÉÝ®?íãûiì,Æ}s;éà×ÈÓ��ÃÑõÙéWÈâcTÎ*`t"2HÆá án;Íõumëd#"ìk éñA/\pú¨Ú6ó€�ñ'�B‡CKŽ:¤»92ÞŒ(Üßm0½ì|9–ŒòÐ!u•ã…͈V§)ÉRÄ‹›³Ì}Ï•KþŠr^qŽ�ØÆÃF=ÙÔNF0/ŸÎ/Áÿ‹òˆI€hÌn[ïáÊ·66à0�ã])²FÓ«ÅŸvMqÿ–{DÌn«åtFßxâ‹S>psêP±Â)Zl`ážuPq/s¥ ú"*O_¯5!ªÖ� 6{\QtÐfäÞLlª��¡¥oÜz·h{å]m jk tŸ-"ÔÖoÌß—î{~ò÷XÜFóé_ID½ò?yœ½•®ËÜE\V)S!WCî�——’B‹æ9’—Õ´�¶1+âëýOÝ5�w•š ]=õ0ÑÁ9› ýíþùŠS‚± 4›A•òêÆ¨¾ÀáÄ?9¼9ZcÄä?·ñ’cÆtŠ×Õˆ$­Í·á> DfºÁ>Æs,AAWUéÉDèMÓ¶v ”A‚Cº•_€.ôPÐ6n*Ç$ Ÿôa³Íf@ÝÝ€Lð³ä*±D“ٲݿe¸óã9i<: e·‰¡”íŒ#BrÏ?«¡½&ó‹ÅBgHDÖÌiú´Ü{O~#ð+º™Æ]Öì‡5t‚F‘»�iÚ¡{é'Ñ3ð´¥’Q}4fNZñÃÅ)‰ÿQ5£f>9/X�À¤Õ||H»ÀE{JZy„üWà C;aUür 3‹jñÖ@\Ä®Nƒô—(Ð~N¨Õ ˆA””ënD‚ôÙ#h'é—qþ!fa¿ÕèEئ6É®×�î>‰È¬µq7ðp_¬ XÔÎÿu6Úüß}×Pì‡t q“zgp�Œ¼÷îJË‹KøB¯dŠF^/)‘�—Cˆá=dû¶w`ä¤ "8–È�±Ü.#¬¥@­ìì/‡bË-Ö(º�avˆ<3°áüZŽø ¶Æ²]ùµ‡bfNŒC]âBŽc¾+þùŸnW7P̛n¨”'Txn×ýÈ1PNANŸC3â³\±þLç‚ZGñ-®cc#¦A…™™#ºH:2ñK¹IÁáŸÂpfÈU?=±È”oç8öáßiâ%=¹³Ø€žÊÞç9­Y¬K"ù CÓ|u3,±3 ˜â²ËÒ‹šÛU×Á˜WWwœ¿‡‚Õ.Ûã»n­Íèa¢Î0ÉQ}˜¨î)à Ôý‰D»é ^Eeâã¢[ 7çÐ3¢�ÞÑ“ùReÊö,ÁéiPñZ(‘/¿Jùë—W߆»NG·YIΙOˆìQ ^­ ¯êä2æÝ�WQ˜ÒêÆµ¡O|µì”ÛöýTêðŽð·ÛØC؈)úÓ–K >*böxàQÖ¶ôtœ¥h¥#MçX$ÒÆ"eS®}õ2{VÄÂÇPÃjÇßÂÉÉDCŽÎ�½¦ôŽ�«úé¼ÙØò‡—á.ûú�Á.´v‚–ͩÈf\øªhô)‚ØÁäK™J™ü¢[£<øŸh¦ŠˆØ ÇKlÍ„‘.út  ÏËÚ#$ÿ…Gé¯E|a¹©û;¡d’Ä ]IÄLÜ}í§XÿÀÓ|s /�¸ó­–®)îJ¦b•’Žù#ˆáÙ$N­„‚·¬ˆ é‡Ò×Ì:E"ÞÒöYÏN“¸ b\yuzþË9G!_¡*e{ñK&|þ\Í7ðv! ½í€v°È³îÊ¥•˜?äå ôœÕ* ùjÛS `ËMÕ~¢ïlPÝl¡Œ6õÛ—ø‡•]¹ñýž\(EÉ–s§‡ß¿ÔlXȨö�ÝP�M¨öQt†Å‹¨È^Hßæa º zÅ séöäž+/z¨ÙòÐ_÷› •Å÷¨œyjR iG€2jà¼h«,¹·ÖLÝñYlÏÿæ0£@š[®¤õjÊ·TÑç ÁuÔu¡Pjo6¢uL/I–Ld;IìLÔ©yªHs´õáM l ²UdZ é,¿baäeý¡ß6dÝèƒ+k[7jšUkÚì£ÒÌ>våU3X1¹[UO\²÷>0¡¼ráƒÂ“Jˆ&:Õ++-»ú"E»¢}ŸxÔ¼çó½Jðˆse¨ÿK�réä÷øt�0ø©Jø¤L<·O„„g³ž#Œíâ%Páü�ÉW†ç�óÝ;W…¤®‰š<æY‰OZ«t|pú±.Ô¦`s"‰@Í0RÈ‚÷!ìQ;vmbÛÆ9«Þhƒò€~i¼ö›@ížo<'š„´PšËqõ¯%�‹º�ªU¬¸Crs{ ™ó½¦�’Mð¢xl ðr1ñä†Oà ö«Á˜"˜è¿[å‡ì\û¶#>ÊG�6¥E�xQ °ìæÛ–§€ò¸Dª¿Ã3ejâÅ9Å'3„Ÿêͨãʤf£n™D¥s-)i²ùðÛjtj?QˆŸ­ªÔ{»­!DB®ÞmPGÃnÚ(«WV oZû™¤×"H`ƒÒ)™¹k½³Ö’ú¶Ó•—9:ç:ª›ï¥)­üµÚù�R0K\™¦»g ¹bmø—rbÞÌF1~Óík(¶#�y«a6M™Gäp0@f¹P¯÷/¼] ü$ 6ëYÝD}ª't¼ædfVäHÕ´ÕŒTÿFṕ1“ŒºòêܸŽZ›tõf‚ŸƒÆõŒÿŸŒ{ª®£÷ ´ô�¯^øÞ£?Ø ºüžnN…Li•&Ä™6TÊ—h€ldÀð ÷aÔ{ïFç¸óÆô�å½›oÔY YT9¡‘>að·�ž Æ#ôê-Ö›ƒÈÈÊÀ@‡XD-A‘M j1žIö”üF<…‘ÝÖÿ®M˜À»P£ôö5WˆWšz¹o¡é_¡"q:9HÚW;U‚b„dd{­&`ùôŒš`môKZƒ•´ÉϧmŒjø5wŠHâ Ɉx H9öËþ$§™éxe-¸ g⌺ejZÌ¿§¦�)ä¬>øÇž ZMjˆ‘rw'ZsIˆC—°²¿ÄàWYúW¥rö%/{ [¿å:ºQËù—Í:-´O1-´×\JÈ­ofrXùó6‘¶þK¢ÈZƒ+é/²«‰;bÄ£–nƒ7¾b[¢ÝXS  ÔÖƒÉ |ê '�=+ÌVNšpši—é—º¼·±Fó*ìbÌ=nM½± ãP#´h¼\†O#?ÿÑæÎè••;ŽG¢Ì 4:b+µ,Qʦpê›Ú‡ìvþò”ùWÃa”Æ%/ãc�¬Òç2†Þ¡ÂÕ,#]ýlÙz$^£žâ•.4ñ*ê Nƒâ.ÆB>o¡ª¼Víl-ñË/óÃIΊʀR½L …ÉA `ã:õTÁ� ÀRÖjÀVÝŠ �öÏ¥Ìö2r£Ï\\>þÞœ¦Ê�<»,ÈÖS¥Q ×ú¹9ÏGµ>(šÿ”¡ƒº<�ÇõÌ tGƒèlÒGH˜©f³CçnœìÃ*�~³ALuaã†#`Æ@ÆŒx]Œæx2¬ULWÛJ1gJÊ-œ?´q ž¿¯>j?Vï¹§V-™³W¶\ïfÙáW Ÿ’+ ˜>6*˨-@{ÔØ(“Lê ÕãfJ+sƒ^CË0@°úJÛ»ØÞ9¦ê±¡q#„^l=ÀØùÃ|ª;ƒ ™¾vz³cŠäô0­ÎÉ´¦�j”|>ã‡"éV¸Å©ý]"î×:n¿îûI¼ï&ŠÃ|™Í€ /`S´Ù’ΪÁ€xyo¡<æéÙ¯i|é|ÕV™ N%8پ˛ Ðe»€òRŸñ��¤2)Óæ† ÉÍ™Qy1Ï© ÜZ`A/kˆVr@;ì…efüq_¼Ý$æÚ·Ô gpKӾΠJUÏF�MN= H¶¸:¾Zcx,ÞµO½°,dáù–?pVZ!–Ax¾)·Ú7€ù§ƒH[sRÑ6õšÜÑê,¯pó�·¢cœÞGa Ò…yýÂÍ)¦ÖQlùò2£Õ¥ö"}ebHCk’#§òyɼle-ǰ»õgÈälÃ2«në2~‘¡ˆè\oü�nJ›€MÿÖÖìë½ÛI¬ö‡ñCNj‘'ƒ7Œë>Å�þK’rØK?\Ñ”zÒÁZrEwíÍg4þp5‹"µZjS{k£Ä®Rj�j¢E%ö.¥­U[TCcï=ªvìj—û/Ô¨›Û{îÿ¾¹çÜsßÜ—>¿ó;Ï›çû|‹ÉPm›ç¯Û­û&‹*Ûý‚ MhmR¿‘�:«¢¦á1j–Pèêò„‚�]tj”[ã8ù)pŽkwt ¤ Ê âC-ÞA¯|û$šׯJåN—,çTµcu§çFä×�=“ �+�N<¥ÓÆ,µv *Ä]ó°š”çŽç¡~t‚uŸµbh ŸÝ2](T#{-ŠdU]ÊÙR¾vPO|GŠÛy_§ÈSMû/³DÄß|11ÿ¹!/§ÆE¶,l3âƒÒ”[I< :Ô1%Éñ[}…�tˆÌÈ׈‘¼©¢›í­ÂgV‰:¤â´ÔháÑE—L/¾éš¾Áí�êv‰=�X®îîfTÂZÇ$hНœWh\nx…h·B2÷¢¨ 'R×2,¨÷Ò6›üæG"_ Ò™[ÉVOí¡—*À}B9.ø_7¡¤èÍ×¶Õ¹�©¢ÎïÌžV˜…²åw¸UòIÖcó®Þxb3$ùÒtA Ò{�–çUc´™z†>#‰Ž€üþslÖ»¦u`0óbR¤Ùt¡I%W+’ýrÙè‰+.g]õo&à±ßÛÈKÆM6œ'J²±Ý>ì·Ì�K$Exbv¶ßdz'—ÈÚঢ›‹²¸½§©ž®Dn=<‹Ö¡ð¾7czƒc?J1q�O¤Iµ¶æ/ÐîÙØlX—6Œ2Ä?I¦«.t$*-Úê7…¬¼go;w©þFS¥Ó†|�Ÿ¡ÿÚ N>ÓJ]è‚a½&ÀÚ­ýË»‹Æ�TóÈ.XýîSÇq÷{ù& ~ÍA•k@£¬³V`Ç_j5_Ò›¢ó¿_“–hÛI4"bÜV0æÎ¼;ý‰/+˜‚#]½ËØ™tb£¢YÉ×6Ye'·�´�z÷N/¡œ€`Zÿ�s[Í‚@ð=½mÄ.£~é;ÛmÓÿ¨öAwk­Û’.ìcº=·�¿Büc>˜^aúT+ÚRöœTóž~Iç¢Ð–<þmaœ[‘ zx¿¢û•þƒ“ íš‹M�°½99Ñõ˜ÈK÷ô1DÕ¸³!§„jYÃÊѤícë.S«Ël7ðDÅFþ­”þwÖ±-l‹·�y‡áßèjjŠDÝÀ 3 Í î2wPÉôZñóŽZÄÓu/ÒÍO À±Ðë±É~ä u:Íó16+ÃÆï]­Ù•K€Cgþ\>ƒO2F¾�‡,~T=G,ËfpcÊÂÅsçŒ[Fš¿DUiÝ÷Mk×Ѷ—i9hзi™ŽÃ<÷ÒüÆšÎîP¾GÇà%ýÖéaÁ® ±e{}´�d±‰0Xì»ÆG .ÎñL¢«¾!—_Ò## ö™™³–=òŠ_�� O¬òæñ=>=¹Õ–@¿JÕϽšŸè Ù3Jª$ f3YÓìl]ˆ•ÖuÃÀÀ/䦉n ÓÑi4tŠîmØ·è—òàWç^Ï9¹s‰¨ôñƒKöž|ïs«UFj‘êQ˜X jÅÞ¯qœ ±OD`‚Óû'ç°¼y-8�NzÈušIDÚ~eÓQf¢¸ ;šÛZ[åHp±b7°ß–}VíŸvû|)iè@GZ™I2ÖPù–õ»¿*Wl•È^„a%ô.5ÛÒ4eA¦G½�0˜�D>8ØÝnP€‚`‚gæ/úZ†»Ó}�&µ±ðW1cSýï¾×¼5ï}¸™Ž3ťݿ+{øÒ¹[¯÷å^+´dl»#eËÆÕúb«;˜y?æŒKÏžJùÜÐjÉü‘d˜ªe¤œ&™â�XùæÄK¦`w=wB¼F6ÓxˬEˆuW™•^ŸZ"qžœqfÙ¿Ø�–FåŸ ^zá,N“Ý¥TíUƒ+,&?=Ó âCªjLvá)ÖÌhĸ0MÖý§ÐTÊ7Ãls`b*ט:Ú×áè$—¥‡Λ-õÉ ® Û}«c-$$Rz33¹’í³ÑÛýxÑÛpwÙÛ…@�ŸêªâÅN}ð¾ÞJSþy�‘|sµAlͲš˜‘}•Ì¥öÚ™ ÿìÄùQ³†ÞŠÁþŽªeKÑú*!yÑ6Ä+q½AÐÊš0ÇI?g£{ªN(%}ßr,»æ²Oå“ÖOãÝcXô€¡sÌÍU¬ª¢ŽiÂÕh:*Ï F²RÂwîɆܷ�õ÷>˜7¹ÅbÂVèYñF =£î‚mÄgV ŠE< QÓ˜Qìphl¹f�#ííø4¼Žy'PßÖfñÚó–�UÜ  ß „gš™Ã.»×OÇ…Ô#Ç”Mf„ˆFuá±ëÅßóÓî_«x‡õéņʥV=.´ú$w("«ÙJFv猤ÔRËù�Ð)†/¢AµM‰¡¹7ì .6"rµâD­ÒZs¸º²¬·…�s‚ˆ!V1šGòªïw1¬E³N€‘Èî iô’‘½Ù¨–W¨1QcEù3qè<Çt M U,*Tw)9Yº_„ŸŒÜüiIsy@%(®¯àÖ/�·Õ†bWŽ™ï�ö¦±gL†|2íÉÙI¸ed¥¨·"NùhƒG ûaÇIëÃq�£“ °À r£M3. ×Y&ÆûŒtÙ=vˆxvèóÍU¤Šò&ŒR äw{[›¹WáðÂ`: [E¾Q°§\àŠ³vs(I<Œ¿0uÈüð`å§Z XÕQƒ­ì9$�ȳ¿$^N5Šwœ'½ 0Û~çQ�è|I�Z½ÝÈî¿°¬¤“À«è±¢QÊÔæê/9‰Ö.*}e™RΆMAìq¥ù½ç.Éñ±ÝyYµí{¬Ãí:³­NƒÎYziƒ”|£c�Ìp%Šwþ‰¢9îK/?’°E÷ªÓÿšÑª§8 € y¬£øó~yŸRÖ�Áp-ÒžÒÓáh¹Òçr-ÉTtzÊ“.µl­éí”pÙUñßC ¿­¹öãÈœ¢·ß�KîS»+UÀ�k?7Ÿ²áDGÃDâS†¤ñc¤,ˆùñ~ÖR�kwÙ°W»4U+ ã ñpÓþ¢ 1+ÄRU_£(%bÊ»R3ã°�ªr•ŒÜl·Ð¯2¨ŒéRÂkB´‹Ÿ´Å_/rƒPËO—â9ôÍUÁ9g·=šIÃï߯{Y¹(6 \ÞÁR¿úŠ cÁ˜ÄhÒŸ? Žü™z½e ½’ iiäèΔ:‘ÙÌ�xáúûüª@[ü;dÂ& -R{™´rx?÷yhsä.³ˆeŒ\˜ÏÑ+7‹5}híÓŸ<­>çúç{ª.Žé=“ÙÁ!ŽÙê__]‹ žÄ¤e¬¼KV¤^ A¸ ÐªÛ˜ÅbÁþÛ³~…q0IÜÙ äÈæAµeô¾ûÝ�Œ Z_æ•„ÎPÚ¶ï•òÜäÂjz·”KÈ^æÒZ)#7³‹"s¬oˆ—ŸÅ2}Æi#°™˜ÜB•��¡‘Ácã ¢yÌx~ÓÂt•x¹×Õ”ô  ô‚¨dT?kÌf¾Åðu¨ÅŸ}.)1 "C˜­—‘“ƒm̪۟«oÆÇ$gŒ’šR, Ð¿:Q+77@áÃò*Å�R²#µ�^¶½ÍôLŒŸü %äkò˜8Û‹¼ûÏþ¤P‚Û¦ß/#Í ©ä€£ÿÕßþ'S<�Èû –œ)³'±¯`=5>^ñúp²“âõÿç–™U‰fŸà´…cÞGø°ç¹§‰Ë1jsÏêäÿ³ßFáø8ð7Å®E À]œB¥Áÿêïø“¡]úPíPa]rß[4U(ÄK»át_ªL>_°¾ëÑ™YÿéT{nc‘–R²¾¼ášFáê\Š^Ö‘øQZ®UT¢þ¿ûŸýÝÏ@‚wK1'v“¸iÔ¤ùä¿õëÙ8 þ¹ü;Güç—‡X‚ŽÑV(¦ú�/�cÚæÿ¾mÿ÷Î$�ј¶èúè']l}ÿ^Û»­æ³ñpvûׄA¹^ør¹Ø¸IÙ¡N—ÌÍÝÁÁ%!&÷ç]¹råÊ•+W®\¹råÊ•+W®\¹råÿíMÚ™òpar2cmdline-turbo-1.5.0/tests/reedsolomon_test.vcxproj000066400000000000000000000046011524160147200232150ustar00rootroot00000000000000 Debug ARM64 Debug Win32 Debug x64 Release ARM64 Release Win32 Release x64 Win32Proj {4f6accce-6d7f-4c47-b57b-8b017ab383e1} 10.0 Application Unicode v145 Console par2cmdline-turbo-1.5.0/tests/run_tests.ps1000066400000000000000000000175221524160147200206740ustar00rootroot00000000000000#!/usr/bin/env pwsh # par2cmdline Windows Test Runner # PowerShell script to run tests similar to 'make check' on Unix systems # This runner discovers and executes individual test files (test*.ps1) # All tests run inline in the same console for visible output param( [string]$Par2Binary = "", [switch]$Verbose, [string]$LogFile = "" ) $ErrorActionPreference = "Stop" $script:TestsPassed = 0 $script:TestsFailed = 0 $script:TestsSkipped = 0 $script:FailedTests = @() # Get script and project directories $script:ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path $script:RootDir = Split-Path -Parent $script:ScriptDir # Setup transcript logging if requested - captures ALL output including from child scripts $script:TranscriptStarted = $false if ($LogFile -ne "") { try { # Resolve to absolute path if (-not [System.IO.Path]::IsPathRooted($LogFile)) { $LogFile = Join-Path $PWD.Path $LogFile } Start-Transcript -Path $LogFile -Force | Out-Null $script:TranscriptStarted = $true } catch { Write-Host "WARNING: Could not start transcript logging: $_" -ForegroundColor Yellow } } Write-Host "========================================" -ForegroundColor Magenta Write-Host "par2cmdline Windows Test Suite" -ForegroundColor Magenta Write-Host "========================================" -ForegroundColor Magenta Write-Host "" Write-Host "Started: $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')" -ForegroundColor Cyan if ($script:TranscriptStarted) { Write-Host "Logging to: $LogFile" -ForegroundColor Cyan } Write-Host "" # Set PARBINARY environment variable if specified if ($Par2Binary -ne "") { if (Test-Path $Par2Binary) { $env:PARBINARY = (Resolve-Path $Par2Binary).Path Write-Host "Using par2 binary: $env:PARBINARY" -ForegroundColor Cyan } else { Write-Host "ERROR: Specified par2 binary not found: $Par2Binary" -ForegroundColor Red if ($script:TranscriptStarted) { Stop-Transcript | Out-Null } exit 1 } } Write-Host "" # Function to run a single test script inline # Uses Push-Location/Pop-Location like a subshell - test can change directory freely # and we always return to the original location function Invoke-SingleTest { param( [string]$TestScript ) $testName = [System.IO.Path]::GetFileNameWithoutExtension($TestScript) Write-Host "----------------------------------------" -ForegroundColor Cyan Write-Host "Running: $testName" -ForegroundColor Cyan Write-Host "----------------------------------------" -ForegroundColor Cyan $startTime = Get-Date # Push current location - like entering a subshell Push-Location try { # Run the test script inline using the call operator # This keeps everything in the same console window and transcript # The test can use Set-Location freely - we'll pop back after & $TestScript $exitCode = $LASTEXITCODE $duration = (Get-Date) - $startTime if ($exitCode -eq 0) { Write-Host "PASSED: $testName (duration: $($duration.TotalSeconds.ToString('F2'))s)" -ForegroundColor Green $script:TestsPassed++ return $true } else { Write-Host "FAILED: $testName (exit code: $exitCode, duration: $($duration.TotalSeconds.ToString('F2'))s)" -ForegroundColor Red $script:TestsFailed++ $script:FailedTests += $testName return $false } } catch { $duration = (Get-Date) - $startTime Write-Host "FAILED: $testName - $_ (duration: $($duration.TotalSeconds.ToString('F2'))s)" -ForegroundColor Red $script:TestsFailed++ $script:FailedTests += $testName return $false } finally { # Pop back to original location - like exiting a subshell Pop-Location } } # ============================================================================ # Run Unit Tests # ============================================================================ $unitTestScript = Join-Path $script:ScriptDir "unit_tests.ps1" if (Test-Path $unitTestScript) { Write-Host "========================================" -ForegroundColor Cyan Write-Host "Running Unit Tests" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan # Push location like a subshell Push-Location $startTime = Get-Date try { # Run unit tests inline & $unitTestScript $exitCode = $LASTEXITCODE $duration = (Get-Date) - $startTime if ($exitCode -eq 0) { Write-Host "PASSED: unit_tests (duration: $($duration.TotalSeconds.ToString('F2'))s)" -ForegroundColor Green $script:TestsPassed++ } else { Write-Host "FAILED: unit_tests (exit code: $exitCode, duration: $($duration.TotalSeconds.ToString('F2'))s)" -ForegroundColor Red $script:TestsFailed++ $script:FailedTests += "unit_tests" } } catch { $duration = (Get-Date) - $startTime Write-Host "FAILED: unit_tests - $_ (duration: $($duration.TotalSeconds.ToString('F2'))s)" -ForegroundColor Red $script:TestsFailed++ $script:FailedTests += "unit_tests" } finally { # Pop back to original location Pop-Location } Write-Host "" } # ============================================================================ # Discover and Run Integration Tests # ============================================================================ Write-Host "========================================" -ForegroundColor Cyan Write-Host "Running Integration Tests" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan Write-Host "" # Find all test*.ps1 files (excluding testfuncs.ps1, unit_tests.ps1, run_tests.ps1, build_unit_tests.ps1) $testScripts = Get-ChildItem -Path $script:ScriptDir -Filter "test*.ps1" | Where-Object { $_.Name -ne "testfuncs.ps1" -and $_.Name -notlike "*_test*.ps1" -and $_.Name -ne "run_tests.ps1" } | Sort-Object { # Sort numerically by test number if ($_.BaseName -match '^test(\d+)') { [int]$matches[1] } elseif ($_.BaseName -match '^test(\d+)(\w+)$') { # Handle tests like test5rk - sort after test5 [int]$matches[1] + 0.5 } else { 999 } } $totalTests = $testScripts.Count $currentTest = 0 foreach ($testScript in $testScripts) { $testName = $testScript.BaseName $currentTest++ Write-Host "[$currentTest/$totalTests] " -ForegroundColor White -NoNewline $result = Invoke-SingleTest -TestScript $testScript.FullName Write-Host "" } # ============================================================================ # Summary # ============================================================================ Write-Host "" Write-Host "========================================" -ForegroundColor Magenta Write-Host "Test Results Summary" -ForegroundColor Magenta Write-Host "========================================" -ForegroundColor Magenta Write-Host "Finished: $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')" -ForegroundColor Cyan Write-Host "" Write-Host "Passed: $script:TestsPassed" -ForegroundColor Green Write-Host "Failed: $script:TestsFailed" -ForegroundColor $(if ($script:TestsFailed -gt 0) { "Red" } else { "Green" }) Write-Host "Skipped: $script:TestsSkipped" -ForegroundColor Yellow Write-Host "" if ($script:TestsFailed -gt 0) { Write-Host "Failed tests:" -ForegroundColor Red foreach ($failedTest in $script:FailedTests) { Write-Host " - $failedTest" -ForegroundColor Red } Write-Host "" } if ($script:TranscriptStarted) { Write-Host "Full log saved to: $LogFile" -ForegroundColor Cyan Stop-Transcript | Out-Null } if ($script:TestsFailed -gt 0) { exit 1 } exit 0par2cmdline-turbo-1.5.0/tests/smallsubdirdata-par2files.tar.gz000066400000000000000000011505701524160147200244120ustar00rootroot00000000000000‹ìÝuP”í»ð¥$¤;%T:—�”Fº¤–îQD)I—�P éR`AºDD¥Îë«sæÈñ=œ¯‚Þ÷?;ûÙgf¿³³\×u?ÁÉåfáêfnêfÊédê…ü‹û¯%ÀÇ÷÷ë_ëÛW(/ô¯Ïx P(7?Ï)Ègã€Ðqÿ+iö,wW7S::ˆ‹££ÛÿuÜ~ŸÒ¥.© …¨+i…}ß*[è|MÕ>a3—fûEGº<ÿ1”ÈB|Ôøgô«9ññ¿Ž§ƒrrCä¬í,d,\/¨V¦“ðÏJFìøuæ�õS’G•¬´ jBV^ô1ÿ´á³%�xU÷&ß*¡í{Ñi3$¤¿¿ÇÕÝÌÜÚ…çï7çç?àgaÆú’ez‚m[ ÒžU4*MèI¼þOYäÎJ>~o–c唈Ž|Þd†œÀæUEXߛʞ À€Û˜ˆ ]ÕŸ�¬ÎÐà²Q  ¿\¦d<©† «Ç” �º@,˜/{ ìàÛ¥QJ:Z]ŽT½1]ˆlô©wå˜e´/è®ã’B®‡µsžL.±yìçØŠôÊJ/t²É¿ëƒ>I†ÅóÊ8fæ»ÎðZ=iÓkoŒQý)®»äà™öO¶…‰Úó~mNÞ£P³Çè¸mçtO?Ü9`: „q,"ŽK‡R)­Ø�™ÚâG-jsr_ãÔx¶Î¢¬‹§µÍÚ÷Ö¬Òá'£fï`>Æ -’ UÞ¯fMšÝɾѢ Çäfy’©ÍØ|Ïä­‹újô™ ìQ^Iä�|¯œò<`¯°ú�Äk>9„üÏšú¥fåÿ¶fÅû’Å©]H}9b¨éjpÑmÓô��ýjÖ½Yº|è¡´ÂjD‘ê vp§S3�Ÿa¶GƒEö�£S¹žÏóܖ艼kÂV}Öé ûµÀ^-h»¸›®Ž°=0`?jGÔ™+ºÌl/0?Ï[Ä~r‰ãuÓ,Eh„ðæ(í¼Å`›ä§Yã!`À~¥éDy?¢$—yL“&Ø9>Ó?þÈ|øMª—¹<]üSÏ­^–õ#ñûé–;X¶[•�E1GÛ×Fåü^T©†ËpDK›!gô‰œr«ÀGO…Ŭ°[J³vÀ– vxžý ®çòˆj!'?¼ BJ5£ì�ÕI§[y†ÿC²ÊÚ}e$`À~Ô¢ý�ŸæéA‰%³, K�[uG]Å&!£å|ú?^h{)ñý˜¬I90`Íšñ/Z19W$¾&“ ó•¯ñë‡â‘±NG«å,‡î¸4¤À%o#¤® $;§ˆø údáÃdXïIÅá\jA×½}¼@ž�A8¬Ë&ˆêöœ­@ÌÃýúøÍ",² ã°÷e%Þ±˜J×–›¸Ói‹ 8㉌kX—"EO«vyngÁº9Åãã0¾ÓÇŸú¶�÷úº÷$¡ZðQä¥téVžæëòJšýúø½Yp·²©iµõ²ºÃuyh,kä¨ÞYÿˆ°õ Ê7=5î•Asç"«6cE1òE“Êà1=+THgB,ڰ϶ 4׈h!•w�ó7{j¦vŸI/½¼5/-œ{^¥†¬Øç?Þ�°Ú`žåN¼ºZ�XŽfNbA»ìwim·I3¢ålÂJwÍ ñ®ó‘¼lEÀ~�¹Ô9%z=àãZe6ð^PÌo1‰D‰%ÎKC„³óà¬Ö'g©%õ<¾�a`ËÖ;ï$ˆûæ<=ʃu¬ÈEžˆ+Óa¥žßʆ“B�V'Fíä¦[èÀ¾¡³Z±Û)…,&—תjÉ÷9ŒŒÑ U³žäC[÷Ù.Ã|éFëÌãO§jóÿ58‘è ‘ =™é²ä[áÉ9ÖRXÀäÞØ:­0�»‹Ž°éV®û̱ºýj`­@µœa?~"GûZnº…¤æ™��ôOõwu’6ø*[‘Sêr狪W7ã�}Æðš‡ ù×À¼ßÖÀ‘$_²„ ö³ô‰I+&À#¬µ_ ¼7Ky\C"w˜ ŸF„ùD�¤ßâÓcµÀ~+$K´fØXˆ”¹?,&0ñé�ý¢÷£z\÷‚�ž¨>iÀKÙù)ïÇÀ§ '…èîÔ¸PUx3Åœ­C Jp’ž«R'ÈÏ1ðÎÎR²_vžÌêöûX›K¦eb­›0WNÈ-ôg¹2hÁ¤ ÕåIcwÄKœº…žXvÐì¦ZE‚Æ�¢a;Þ¦¥lì\+áúD‰v��ÍÐ>m\_Á÷(K4G�û'Óžì)BÑÛ¹ì‰_izáFB›áx{F£ˆ‰dDãæJ6½'G–v¼º�N£AßÎy~ý=~pŧcñŠ7ž�†4]¥ÜJ¡Cx%ŸQ ˆ­{ñ1³°5‚9+RLZ&É’�7±L·_‰%Î`ê¬ÝM�¿Åkê0Mpê'žºR‡ì`YW’¦nŠUãiNYûéøs‚qðûó$í Ä¢û/]£*@öÎÞ †;XfeIU!¸†&ob]¾~Ö‘]wðntFÇŸë;Ûãì (•‰˜ͧ€ý{LHJೂ‡A #t ósÚÁ íer¶Éšˆ¦ˆaºë0%sA°˜`iJ NïÙÇâ5¶ˆX‹Âä÷‰L{gÃnÖˆ¯p¨r5™xtÔi¿Ùp~ÉÑãp±m uر.—é¦vµK÷Dn t{>° ÜñÑ“å[¥GîáçSþ0œ#¿ÒR‹û�ó#„¾� ¿úz�ÃxfE FI ³7{Hî&©“û͆÷f�ÅdT uQèrH>;m•>±‰çA Ø¿a½aþ�HöÜä#Fdn�µ“‘â÷ÉõGç3B¤ÏÇÀëé-EGï;øö^¾˜�pé>Á‰Mß›­‰OEHòØùéÓD³…Þ´Ãi)ÖQ-}Â�::€ûQ³NJ»FP%u"‡¨ æD3K)®þÚ0Ä_6¸5áVW#¼O Øa°s„6íþã§—ñÍdÜ8(LEëVÑqÙoMî’(eÔä½›7&ñôì ÎsJíB*‚å¥)q§XKš€d†˜ëzèîï'GÊp+དྷ£I¨‰:�; ÆSc ›%]�öÀ¸bnº¶e,±TcÄ�Òô2'‘6®Í»6AM]ŒvªÎŒÿ´] ¨³¡V٥ÇëÒ#…\Hó1RÙ;g0äI° ëé¸JŒÏª¥_âm¿9ƒ'= >:yAzŒgOㆳ]§Le$u˜m®ù]L_Í W‡ÆäU#‚[=R�ê|Åv¤%ß9�çÛ9Cå—,p‹çëZqﬗí/>cOjÙoΰ7ËAº—Åa´jÆ&A»í;"”蛞Ö]–™·±‘Õ ‘Ô*XâS/ÓÙá iÇBòÊ+€ý:[|*”颽¨›ÝH4�ÒvÆ—AøTÉlŸ�xi7$h84•A¨Ðö°Ÿc‹qÞøžŒæÓôé7Éî•Ì‹#U묦‰ á8$7ŒD#úætpz¯e’Õã*üA´?H¬Ëýå�`À~¥MÆ¿¡Åiâul%5ìÖ<íï&ªÝœŽƒ˜f‘%_r1y×`u°Ã`ä³räuÊAx½Þ ùð6}Ýw¡çvè2¨Íª2|%”™¶oáTö³,Òã!í�Š(ésËô¢Y'óÇ##Ä ñYzÔÓ$ ™ŽmU¦°-¤˜î~`À>ôhJìö ÁõQŽ RÍ;õªAO¤$�qG_ó=»ˆíU8¯˜\j ØÏ2�Æ<ñþ^ëûå�›ž(¥·e«Máí¼¹Š“ä–KvS¦&¼ilë®IÖØÀ~�‰XT¹â v2äxÖ½ÑJƒÙ9ž´­F†4b“Î%Îé«’;<|‚Üíkì÷±AÄU7>�Í×ÍëCó³N6“Œ\±=�f,^“•±X®¢ú²(ËD"}9‡ÑÈÕÌÉb^E2?_†˜ùX··):tíÝWsµ!jGg®�{Ó¶ÕÏП°ß¾Z¨ûñ#ÜÛÙ:Bî¡M”÷á³ö�p¹µíÀAø˜ÛÆëL,ku÷UÝ»o‡Mí/m¦��çü]è·ûju8_²+/°´g™A3FmîÀÆÚo_mo–ƒôÛÿÎ&ÿdñÂð�(m(Y?V»y6—™õ*w�I%ÿkdbWU*vJŽãN£Ïj€ýyV Ól¬EÙ´T3¼,ˆÕe®=Í·øÂ$\[Ñßü›ÐæÒ]¢^™Âm/0`‡Á:'­Âp꙼q©Üç9³VM]êJL˜N7Ÿ?3RQl4»ÛEQ©™Óêƒ ì÷¶àè×N©1zÆ«D=&Á*YyÏ(åJ•"‚Mj?((��›ß‰C¦´e›ûóì±<+éqj«J#ʵð2š÷Üõ#¥¾x³ì EnF6ùR\/žövÐl‘$Ó«-Ìu„¼ÝbQ`õil¬Nð{÷U ÷A�áw†É=EŠÍçM „ÝÞÛK6õ9È; ,0[t$8xHí×KFµ–ˆ\ Q4Ù™²°=o¼ŽN?2jr›c“1È‹8ÒíU�Z¤ýQÃÝLªKÏ%Ï©.ÝüN/É÷m/þõZЉ•®VçeM�›îðøù`¥ýzɽYÒu¸šM™Q_]èÆ8æê;ÇÝ?ŠÒÞµÞ>•¢tçË"¢à"ò¢D“ÏÆØŸgÆZ8aõ6¹vë�æ!©½>n ÏY5Dµ 0—–±Š=„(YYì/;;XæÆ¶›ˆ%WÝBÊ$u‘‡ÎxYv,Ù<…#D±â>¦æhŽ„öÍÿé`Ëê v=¯½²"xß¼­Õ£ÃÈ]©Å÷¼\Çp�±kÂõ!T^åø¸·Øïc÷úV`ï¡H»Þ~œ&Kšaq|·Žu†Ë2úVBs¥kÕÅ9Uî99ûó¬¼!rSƒ:5Tyð nãL,o_èc”•¦@nT߉‚5leT Å¡hÏd`ÀšÝ�¹ŸÁ¤P`¡õtFZ–”9›‹íW=Ûøw1wêÞ11–¡(±&ãž5Â+‰(+k[{ç™Ùgg�Å4àRrË•d‹íûÍnŒP³¦b˜SÉøÅZa /uU=¯¥ð¦ î²àCëWtÄîg\1/T“}å ;ò’v'½ŽÜ”\h¨QÛDâv'Ñwæ„‚{î%�õufÙ$Ù_€s9X>2Âà%œs¿9áÞ,?òLV`ß>»�È>�°Éé¡�‹H^Àºé Ø^µaBÎ<5‚ª�Ž%:âðd~3›ïq®LOŸI½áH%ÔJR¤&¾—˜'óèÄ}Û™¯ýìˆþÂPºÉ®á’wkkdÎk®+ÒHa“âá>m9j>r2ˆ{¯â�ûë‡,¯Ü)ñŒÅ6)MšÜ¸öD±Êz?Cƒ©QÝO)kÐFì`W¥ŸNjD<“ qþñ:}Ä~÷¯Õòëk�P‚QIe¦ÑlÌ£–.™:|ëµJ8›¹:8oÝš™Ò{Ò;9ó˜Ø™ÚZٛѻ™9»X9ØÓC9᜼œ�ÿe8¿ŒÌ6‡eœn¶P(” åæÜüqü{Ïñù»Bá||_n?gû-7/œÂÍÃç�rÃø¸�@ Ü¼p^„úï5áÛ9íâjäLOqvppýo�Ûíþ=š?~‡•¿þÝñº~0Fº–œùf¡—æêQ’Ìoý«š™¸©ÙZ™l~ -böÿ=8Ûò×{¨þ 55ÅçP’‘‘‘þÀÆ?°Cp7C¼‚­po¾•ÿ<ÑžãÏ c~ɾÏÁøKŽý%fóóã[Qú…/QÜ̉¿Dv3°ÍÀÿ[Žlν[àpÁ/úAAþ?"ðåN�máçÿúHBeµÏ±µµµ±¶ùÿÅz3–›±þ{þ|7¶¿)›qEˆËVœ7ƒXgj’*pº¨h—°–M»þ´5Mf·:âÿ8tñ [ÿGþ¨ƒò3n�:¢«+^á‰Aš—ùˆl^q5Fùk�‰{«ÎÝ^gbùZgz9ÆÞ�+iÉ,– r'Yڭ΄ؖƒeT}­y¼ÉŒY~� ²Ýo*:M€Û ¶Ÿ€ÇÏ kOET¥«pYŸ d8GN\©�¼Ÿ_<8Ò„„?³øÎ3`Èo‹ÔŒTz)iµYÇêô¹è¥¢�¼+þC÷”þ>äRH Wì³äë»À¾�ÍKÌÏwñŒ7œm_eÔ&M7{\ÇÂrÝ©¸FKÂèâ}ô³”�³ö-ûˆ�Þmáùڔ≥’Vë›8Gd:èg1¥™ê4¦Þú©ñìm…™gŽj· öY%BEN^%ľ‡\(2,¿[Ÿ±ÎrÓà­³òBôñtÜa4I^qÔ|ÏsÜ,Æžãt£ˆV¯Úî07 ÛÞgþº·‚c‹€ò\ø@CP@ᣴÞÀÝú¬ˆmùQkUlöÝî¤À¤v95šã¾.ÖqÝ€½JÍñÇE¿.4užQW=ü“‚vÀ€ýSÛ§ÌRÞnlc¢›Ïò8g÷þ¹Ã¯&)ƒÃ׆±è¦Ìú›ÅW}¥ ô€û‘v2Òó.…ä=Úküm£=S†ûî_¦~–ÍÝ{ñØòÙ�˜�¦ß`ÈeŸ*Ó¢3)_Ñu7S;- ËUsé©k0æà ß—–o‚p?1“%7i ¹¬¿Õ]í½z¨–ó]ê鬼Ðe@䄼N½fÅqØû$T…Å\y!`Àþ©E÷Ÿuz�£ÅC"ži®[ú›eGd.é…çƒg7Š lÎ%.�H”†lÖHpÆ’Ù©<ñ5¹¹·LµOÏ dZ¿“�’í{¯xú!ãxH×!ÙÁl8¿ â8ž# jÑníO}å• <æönãxÄë'çAÓèŠnõ:U±*E‰~©Øáï¾F’iÑÁ)‡µÃ8þÈöq¼Ç×¹'1ÅüBaT¥sT_—UÐî6ŽGlË¿}�¸/{·àjž~ð‘Q�tÚ«gØ4˜Ê‹PÏ@˜áhý½$ °V6�“c"Ñ6À€mÚ´À«ú¾'d2νÒg�+å2kÅa–5å\ …N)T“yÝ…TÚì׳ì±çAù‰e¦¤f±sžqA(‹Ãø ªáOÔæ;ªŸêˆ¶úFð²ûqæ\ë˜èq‹�k�EÇsZ6ï‰Aæ3Q^Zb¼˜�[jê«NÇf•søV�!—-Ö·]MõÎʰÆ6Rè,CÌ•a?_³´æ¤Ô¢;#†qè8s&0ä7L6K[¹À™ä²Eu™nû¡z�².ª˜Xx‚X��ÜhNü­àø+¶R ßqÄ>°Õµ‚4h;=QC”/þ鉃µ»õ�¯N‘Ìr[I[­»~2i…¯¢ å•f×o|‘uÊÆ°Ø‡Œ¯¹ÙQÿÞæÝÞŽ ÝjK¨^k·ˆÄÁ"B‚7‚ê»õ�Û²Ó^éÀ~+ O´b\™Ž�Ì��­¾�3¼èëú`†×1­£%¬MæûLªDæ…ç=`{Ó“57ª�©Ë=™cÔj1üz$^U*æeéx¦fÊØÍ9�g¶ûy¬§ÙÙÛ‡*Ñ—‹ÎU�++0êæÃì^IŒ²GUeI#WEK;§ï›†lvY©’(Zd�•4+H^&LdF¬ »Zõö=ò呯"�ãvÜ­6Œ¸_„Ò¹›Ba½îw{ͨ6܇´¤øP;a|òï³dæŸÔ`Çîp}„Âp_×9Œf”ûa•T³xrf_`>vh·Ú0b[¾Ç~À€mZWÈÙ6;¨Š Å�¹«_ÍxÄŠh.ùÝžè<&ˆ„aLqƒy_á>¢ëÀ�ß–eЉfs _ó¾Ü”ø@ˆ4‡ÆpMø†À[�–b:Ê%t?s¯”ÖV`Àþ©™ &]»HXyì÷,âü˜ß YýÉ`ÙÚ‹ƒ�³RM~}®µùD¹$À€í;%FdÝrvôHß¹~ã’®‡)�„k0ñ9¢Æ?‘Ê¥Wæ¼›Ò'u÷ Ù ï1•Æ‘$5áÜì QÇXsZßdƘKZ˜§—LJîà—w‰ß&¥!nl/wµŽT¦DÆ-ýòW/kžŒ$–ª ùP�ç$ÖÀ·~×̯ª‰•ÂAÝ–þoÛ%ßZk…OôÅš (�&×¼ôë ºÜ –!�­A$lêÚ%g/îVg@ÜײM²"‚&Ä&Ûô:¶�·ª¿—‹}}ò‚aTç1?e¾"[²’®AãÞ^gh¦ÚjK±ÙãÞ%õ¸wVsvgr$=٭΀ØdÚËb/Z•S?žíúU!*Ì5w«vóŒ+¸¨J(Jå¬ñ©çém hÄBrÊÊ�ý8›y âŸá¬1£y£žx ­ù¸>£à‘’Én[BÑÒˆÿ`°/:£@�ÍS`ßÇÜfâ< Ü™L_2¤]&¿Y2%ŠR¥rášÈžý}’¢Ú®g!Wƒq»�C6[Ó®[´+nX>auv‹²ò–5%-Gê:é-„Šû%c«6MFx{%°ŸÇð*'Y~�ŒD¡~s4 ­Ëë*¬ݘ†×÷’UŠbÖQ0Ðà]·¯¥!0`{Á(&¥)jåý`QvyžÈ+nÖÖ|lÈè»AŸ§1®L÷“g^ç�«ì{Y„Ûmº°òH‰Ss ™‡òF#ÂE ñ™Z4·¯‰Ûód84WY|D‰éèlÓxö§Ä®÷ë\f=¼B¦zµNÑÿþ1ñƒ‡õ£/z�«MûázLÉ&—ö½ìd}ŽhO—UnYÛš;Zé©*£âÞlÙq óYÛF­¼×Ø—\’¬p�ý82«tÁçocÌr¯}£~ÍÂÖá�M*¤—ìUâ+m… ûÛ·Q;¼Í€ý<Ößäʧ²öºqi`jÒÑzœ‰+¶“²Í˜Õc¼"ÇEX[ mŽX¨; k/9“’)yÌó–Çsc/«–fYûvÄy5kâL–º¸7Í{»ãv›WC0ÉÁXèªg�w¬œëÙ£�À€!›Í�fx4‡¸ Q´Ø@Ìò-WGFjùwÚW-Ô =f/h!ý%B8�7�ÌÏâ âX²¡Û^Æ >Í\dÖšàÐëvl·±$âÙà˜ CÃj¸‡×˜ü=H"\Ÿû;bDØí×ý”A}î±ø)ÅþÙË;Œ%ù¶�%C¿®�›ooršS…_>]? ·ÛX±-È´÷W³Æ4AÓX]¼_A{†ûü5>Y­I‘»z“u¦/ÿ êŒ1D•ó€µ.°_ÏôÕñBꬳm—üL[S»¼\§³©«çcÏ&Ìá¹ P±±ÁíÎÛC.seÿ”ˆ#]õ„ ¶/u†�^Nj$Õ4åp ly.¶êp–˜ÆåÞ³/K€!—Õé|rë¿øÜ’p¹q]½ó$´B™‡Àý|-ãE¦ö1=ôÛ<2 ¿�z ôûyìf÷¼Å2�¯=Ê'ONƒYÕ�8¾¨ƒ­º¡RLÞ<Ù5Ê¢œ 7õ€ýzVö(bM…&5X¾ÿ~ýD,owðU}´ù?(º÷Xþ"®<ºŠì@´»/*0`ÈfaÁ‘B¹éÌ'òÍÔLHH‘±ÜàbÿQgÿ,vš¦kD„u R¤A¿s‘èB"ÚüâGĺ@Æ�ãL“ú"*ÅǤç*ÈgZv« „ Ѱ¥b™RKúÄZâ ζW>®¡ô¤¤é0ãÃh;U飘® ¹ÌØÈÝ©©·�Jòø°C]¾½.�L¼Õ–sš:UÞo©D˜RÃ#ÏíV@l 2�_ö=ldÉfœfˆ…° -(”{¤gyëžCZ¶J–h·ã˜ïÛ�3ÙX‘ÅÀö¦]b:¤sµ‡¡O�Ÿ2ËPç£\Ó•±Û¦2>i� §ÇŽ4ØÄ¸ì�< 0ì׳£÷ºC~ï‹4^+:,ŤkÔ$Mí/.@=°�¢TEŠzÂk¥«%0`›ÖØ›×(mUCå²¢C5$Ôì'Þp(”潂½q¦A¼Þ©Ò4ÿq”% `Àþ&Á¨²ÿmêj£´ Õ›‡˜ôæµ³úÑ->Šëåxǯ4‡W…G1 ìç¶Á>Ül‚·=,â°Oáºù"ã©]ÊZ}ÿ–J–DeâVsb>RùÛÀ€íU{3šä}ÔÃñ…“,LŒ<ƒ ¶Z Rÿ¼[ çZŒBçÊGž˜éü�s4,èÀ€ý/Œ:õ|ÙÂd+§“nIì½<ŸÈ“ïþÛç‹ûyŒÞæ=QÕãÿcïΣ¡ü÷8€�-KCö]– !Æ2“5 %ûž}ß÷-{ЬE¶²FÈ ÉR–,Ù·ì;Y#$Ñý¹Õ¹¿æêºçô;5êyÞŒó2çÌgæœáûý<Ïóýrt6ׄ¹:<}„Ø'´97Ø>fÊXƒ}Ê»~)5h¿>ᙵY÷X1B+b‹Æ2îÆÇ$mÁ½ŒËúãyRcâCö¦‡ºiwR*ÉõÉùëTtÏÞn#Ú£OÈ‹°–<Ηže­¯Ho.î5?‰°PÍn8û~}BÄZ~dOVÀ�ßÞkò;¿¯×o‘ÑI-zwá UÃ'WôP#G"-†±\…ˆˆZèI–!Àû•¦¨á¢W¶Ð ’šL…Ÿÿ0@LŒ}eT�92öûC‹)0ûz`€ý,ã„ÃDt ³åß>gH#("Ø62š¸"Úäû6ÍõP¼›Ñ»ë�+`€T%`ÏQÂ_¡ìX£Õ$ª†Ýå5¶üûÊôöÖé�•ÑCÌÅ„*îôq¥Ÿ™þ:¶]ø2ξ¥ç+¡�é-Ì!Ñâ¹àú½±­Œ¾¹ÍîóÁŸ—Fáìqϵli tF$tdz-KÉSJq­ã­|2_� õ�Ç…nÑØ†Eñ3;÷CeáØ�“Ui*Œ Ê>rÞP"[ë Ý||âžLˆç߯ÓGw}¯f_Þë´”R<=…zgµÈÍÈö{ïUÔÁXßÉÖáó£±����¾—¡µ‘•¹�1�³±ƒ£¹­ „ÆÎÍŽ¿ìÿžIíN£Ø�m­ NV„‹}÷ãûç^ò×ãáù÷ã_Ç·�\P쯟9¹¸`\N(çi„“Æ ÑAþ¹¾\vtÒw £9ØÚ:ý¯çí÷ûz|ýÎÉù;ÁE,xºÒ”ªK·Xàz2Ö ã÷¾sŠÆ†ÎJV憻³òj¹oó.âˆbF‚ÿbª¯qÔ[QýæÚ÷èïÑYUñÔ¸eÔU«þ;¬å¬åÉÆV V h!»éå¿'¿T«Ý0”·èãtï&¢õæçœBuÁú²¡5ðx"—”ó±bÏרA¿&9Érèstº×ÑŒßàïFfZfuv7OTŸ¨ŽÞ’¿ð5Å"“ IÐå†Ë !˧¿ñ£âG6Àyÿ;VVkDB¼»¹^ð9±GªŽ'|N±ÍUµu¢˜Ã[Åÿ‰U^¸[çnÀ¸†›†›™ñL`¥ñÿ'ý*ý*¬½rŒrŒ²ˆimšjš"÷]ÀÈÎ^ú{^Ú}k¼Ý<Å,â)âAì 5‰çÙß�µŽÝʤÙ~Ùš"±__ñºH©•o­/ê°ô‚³¿¦ðæ†ûGX\€Ú-žBËY¶ü3(ï q~î A¾í 1é MM°€…@-éù£¢„.Äkûõ…k9ZLÙßšÃ}—!çaEÒ´çMi§!`€Û†MÃb5æÂÊS8,.Ð_{,¥3)×OVƒÇ+nHÌ›Ü òÛ*¥vb Feƹ:ñÈÓÓ¾¤»‰G ºÔÂÝ}·Ðâ `?Ç–E——»¸&ë½Ú74HR�_”Æ03ß³‡W¨‹êßx£ƒîEq�ß!ãˆ`€}Ï>b£÷˜º½6"o4¥�³Æj½mc‡Lûöü.&·ðA™ÚˆÜC'ék[~ú•3*-ˆcVÑàá3 ØOqóÅ‚F¥÷³"öEè¾u�_‰¼� EãAýÀ3d—åk:1„Óƒ"ülÓÆ�s™ÐoǬ‚_ÖB°ká“_ ¬ðË¿­ŸÒç¿ß˜±–_uo‰åa?�G�ä˜TŽ—Æ³\¶Ïv†ÝÓe-W²»Îvç M™«EØIO•ß0À~ÔÉ3—´Xjå2¿ÈZW]=õº~†"0”k‹vÎx YdÓ[\Wg0À~¥©†»=¡${J“ÌÛ6>Ý;§w¨ ~‹ª;“³úê…Y÷ã^¨§šÏcÀ�Ë>•¥D¦SÌÒö4SÙ¯ J=ãÐQVaÈ­:/Ýûàrq!=(BjÆ 0ä²�V¥÷ÊÁêO¨æ3r‚ëA¤~áÓÒÎ8mtj¥ ïãQeV³¥PìG-rÀ˾:K�‹X$ÝD«è˜YGx˜d„\ˆ–½ºÿ><ÏòjÜú˜¸n1`€!›5à_1c²/‰{Mv–ÌCâ™g/×rdº�}/»$Ùÿ^¶jþ9ÃdP× ÉáLj¯#â<–ŧlÚnáKu{Öõh¿y<âõ«K µ�Ú‚‡}öGÆÌ‹P"§d;|]¶ˆÓM;Ø…ïÄ`í1�?ýí<Þõ˹§³²¹B(E‹>f)¾..¥Ùo�XË?}M·7kÿfŽNàéq×Tš„+,*Œ%¨W@L0´�>bzh+ Ÿê„P¤%`€íÚ<ßl]#©„Cßy/ƒj¹l&õÌ⦬ä`ÈœÌ3²÷'Ð#ƒür‡ûó,sb( 7®ÈĘäáXaÖt›—ÌiÔ ÃìÆæ¦!Â�Úy¨¤¼inQ>‹gc0ä²Õº¶„Xa�ŒÜêÃЖ±| "Ž4›å¨™;…:­jÔYŒ˜"0C~Ãd1c³’ò_¸[\!«,Ñc32FÇ÷#÷1Á‰§‰dèÉô—DÞòOβ™zO"Ž�Í“óR ít„õÞx—§�Vî7F¼¦7Q,Ãy#e³æžjüOiÊSJµ<Žc<á5òÐèç ¯9YQÿ{ Ìýí8Œäs-ÁÚ½'{„D�à¿áWÞo ŒXË^k›öûXYœ9ÃÆ|˜Xö°lbó ŒþU×c̘ŽyMuA RïnñB‰WnO;˜ÆﯶóÌ�ªÄ�)J©Ã7¶ÏvPt¶Lž 'CÓ-u8]zÐzÉ~2½°ßÇz›|±=)ã¼9h�ø92ü#.b>ÏìÃð#­-/ŽK.´ëàŸ¯2 0d³[r%± !ùÃbVÜõ‹÷Á™fü5qª„ï­Ú@[�=*x¼ëh‹4‡ì{¦2Ù™�¦¾sÍ¿Tß0$Ö›Uk¼%µ–Q@W$´î:s)+L½êÐâŽk`Óh0·3^Ü\Ç÷+Ù€^hàc¬?õX¿ëÝ RÞÑ•/?¤•Ø�Á¬)6-“HáÆ›h¦ÛCBqÓØª«÷’æ"¸£õm¦p]ŽNZ®Ä ¹,—#Þ[-Ѭî ';‰¸õÔ�K¼1ðì9’–yC¡ÈÞ«7¨rQÝîoP›†\ffBU»Š!¡k^¼¦dKˆ©6p/2µ5ÁÙýæÎö8Ziö£W}€ý{JHJྠŽÁ ¥6%´!ó´ÛÁE¦½ï�Éq»>’}(Xe �3λ»NÇ„Øv2ïë¯u æ’.'ŽáµÛ¯7Œ¸¾ƒÜÕ!}.OúŒ)w\FÔÅyVèQ;¡<Òï‡3$–+°£÷¸>‚aͶ/÷9Œ§•ø`>cvcóϼÎtîÄ~½aÄZ~Æú€¶k]A^m(Öòm2'ŸŠÉ° ál²'½‘9Œ Q½(x ½Iþ!Â{€!¿­K0.fßò¸ÕW-@’Å¥O¼Ï÷V³NK±†îcâ„ÒÚ `?j&£üñÉ7 ÃÏÏ Ê�:Þ@pÒ—š©±: ò÷kòéwªÌ5%Ì& °ƒ`—ÎZ´x�Ÿî¿:€opQÌé…¾`å &[Ää'©ÔgYïætH\Ü Ù ÷¥Ê4¡ÁÒâ+a»hï» Q7Õ1/¯OŽ<Æ+�w‰Œ>"¡&j °ƒ`œÏ4ÅÓEk0ê”ÌNU4ŽÅ)ŒxRê_c'RÁ³x×Ì«¨†•ÈFÕ–úOÛM!ïJ j™Otøp5zÃdwmÄ>ƒg¬YPgk1>‹²F¡×�ýú ˆëP¶‰•†QYfÝÃÖõPôuw´©»»¢MÑyNÓGž§ÀŠ´p�kÐ8¿í34S~®nü¢oM9æ�ù’õ•çlñ�ûõkA¦µ,¢•k2ÖóâZm'Pbn¹˜·›¤Ý£Êå¡È•œ¼“t�ÎêÈ J4(«¸°_g ÕB¾i* j÷ëˆæÐš/Øã1ðŸ.œé±".êùz£3ðåY¾ìç˜óBŒ¾ £Ñ}Ê-²…sÂ(å:ª+ÉBƒ¸6UÄ•vœ¼@ �àÀC6ÛÒ¨Yµ†×oŒ^4¿ yHQöЂ‚†-i›�dŒDÉ9ÅЪA�Ú^Øïc¸e3Ì+ÇÅb†QhßœñKé2‰Wà¤zÚªI…?€Që ŠvÈ^ò/Ä °_i“wÞÐâÖsÛ6Œju¨ Žôr”�lHÁíŸ:)N¾hÇï¯û®ÇÛL0À‚‘Ïœ'¯”ö=‚EÑåv1Þ¬¡ö.P�Á{‡.FmP–êqVši›7·0À~–…9?¢ ) ½´D/˜~"g<,Tt']�úQ²ˆ Wšms™¾éG”¨Ž^ÀÛ5®Ã‰ÑÛš7GOžÚ UL¨‘õ­:'rô”Nä �ñ@¥y°kÞœäÝ"}ÀûY¦Z—%ÜÛež]ܶå‚Vt[¼\ÞÂ�)9In²hõJ¿U—;™uÍ1Þ د3ã2G<Þ6† —Ê7ÊɦV¶',ËQAu`ÒÙ¸Y ™µS”*f4¹cö{›_äk»¤(u�³+D�º~2éYÏ)ÏI…úéV¼¿(=vin'¦Ÿ0±ù¾`ž]"> O÷GyšÔ$S‡…v#ø1Í:¤f¤ÈãÈ C¾“¶EιŽîÚêNÀC6[ Ismr!o±çšmŽ�Uòîµ®Z°;zÔ†ßô|5J˜`w,©�émĹd}��„=lž©À¸5Ö¶ÏùÜ~sIĽ¼1éGFu•À§¶}]‰Ãœ†|í0¬k}J£ºúBä’ìÀâ­=æ’<ßÎ%ƒ¿Ü uv¹½É~Ivë2üΜŸÔ~sIÄZ�é>Ü?Í^PÌw`uô˜…ôŽöûª|2ß>�(•ðàäBîÔ�"û -4Àþ<ÓQÆ ª±È´Zó1òoMêrwâŸÁ¢ ¨œ‹½»„SàÌGɳ¾fr™ë§8œóå�¤ÐCI t¸t:Kâc©¨F‰§ü%K²±G3ΪÜêóš* ¹¬Fó“óÀ�!3‚õ†måNUFH©<¾ËµJ†ŒíÚè�¸$dŽ�»ñõöû؃žeÓu.o”Onžìº‹ŠA1<G[µ‚Å=J¹2E+ä…ÙeØiÛöçYqmØ–uR ôÀu¼ºéhîžÀ´åzºÇDî*X]Ar0ÒÅ0À�ÍBòS™.æ+WO‹Š“2ßç`ýU{ÿ.v™ºkLèä`¸P½Nç*áõ8´åÕ�ˆ}�´ûgt„àçÎ/•’-´ìסfIÂ2¢óŒ6óó/¶—½¨ p£ îä3æÁh»Tæ)›ªºÅÐÀÙª¨3�wý°G_öm_à.ÑçZ®ªiî”{ø½¥bL ¾º__±dÚ¿ìgØØšÔ E Ægœ—/U«möð©mJ/%¶B†p�Ý„÷Û +™XápÀ¦Ýd<¡™Ð�C߯ÌK‘¡§ùQj éöÄ## Ï”ZÈå‰Óõ–QއÃ�ÈŒö/öî:( ííøRÒ­„JKƒ¤€€"ÒÝÝ%%- .¥ %ÝHJ"!¡H7K#� *ï0ê¼×ýy_Þ™{ºê™ïŸYfÎî 3çyNýyvîÉ`ð©X„ñNÉÁHz]£ö ”PqÊ%ÿwáH 5ÄÈ—<·GŽ0Yv`]í¬ê(œ·õ¢)&„`A~âͧC¨ÞËÙgÄéi”§Cg�Þ¡öß0 :¥£oR?¶^° ¢xý �ææºvΪ¥À'ñóìoiãÖpjpÂ'�ýÞ6ÃÎÅ{3tÌ"S‡pÿþlæ »”�šDþ³ŒÕŒ Š„]æ„<IJ�ûUíõt¢×9w‡YG^1ÒL¼úZ�FHÓØ VZ´\ßö'®èåÂÑëTŒ¨À€ý7Œ2õFų¢$+Gu×D–a.÷}Ò¤ÇÿöûâÀ~ã_·yOPóH ˘½¯Í¬1ÜÝéÉCø>¡ýùÑž) úFÌ3~˜ÍkÁ‡õ Ͻ[ôŒ÷“$°%²n«ænûpRæ öýºÑtÑå)©1G‹#Ô{éõdFd£Mjbw» ¿Ó'䇻KëKÏò9T|¨熿tx˜Î@)Ûa}Bø±ü“7Y�!¾½×t9•m³Îé£� KZ9GÙºïŽfêL¨K7U(¤ùœ—‰y °ŸiÊÚn†Õ+}¥³Åб™ ¾Š FˆB0ã�& £âï³=°žÃfÛ*ìGg)Ÿ¸~‰p¾â›gt™øcø;¢¦¦/¯I´Cßd:  , ÷}Šqß°_Õ&ñÙ Tð6(F{ßQë>åKâ7³ùïÊ ÁLš §ªi9¬$Eê↠¹²ÎÍ�Û®|™gß1„ sP/ôO–ëò\tÿ»¹­œ‘•ýÁç±?_� ÁúΙkùªtbÞñ°=ïî<ïËÒðwïc‘Bõƒ·¶•yÄ`š”'.ìe‡¶É—br05dªÑ·ªú)äŒ{ó^±«ã YNl…“ ~ý~Ÿ>ü¼ûëwUü2æ:ùíd™@‡¾ê›R5ÙÐL»¿û®Êf&®*¶V&”úmèûº�àƒ<ò×à¾üo‘'_ã‘Ü�Ü ÷ò–H«£÷¸XùFï?ÓëÓë#W֜ޜ;z»d��ƒv¤õD¥rÕÒA¶9)ƒ?'ˆÖÖæk¨LÊÊ�ßuÑàaü‚óÆ_ƒóàêçä<»ƒÍs“ô �gÏfŤV©VIª·çkœì 00¸S¹SÉO5¨ý}¢`Q°åÝm£ÿ;þõʺ–)ñˆù6–ÃÍÏ™çNÅÎW?ÁqõÓu×ÃðaËAj©ñoâß,7Cý]c�öÿ‰�•�V´Ô’ÔÒÉWðq8ALJLjêë/“ž’žâ òל%ú6s)[…¶@[àkÔv©"Ç[òvñ;¹Çw_t¥KV£Âÿ ŠWÙBŸC‘ÇeW\tD?n{~âKԼóA`³ÈZ|Îé¯5*çç•ãÛ•ñK�:÷’e[Ò™U<)AàFôî°~,'*(`]ÜIt9~­2ƒ¯«úL€ûl—ož/6hUX{)¼&C‰Ýú>í�G—õg`¤�¸üâA&DüY¥�€!¾mRÒQ襤£ÕçœoÔg§ �Š:û¶óõ šÛ¸$�ÛÁ�ì1IeÖ��ý[—X_ïçšiöéùH§MœaÖRËÈxϱ´NKÂèÖk}Tò›‚N9ÇŒ�û;û„‰:háñÊ”¬Í‚\Á£ë®M¬"½!ò»˜ÂÊU*S2/ýÔ8–îâ¬kçÔŒ;áç¬!§#’ñ1Ÿ`KOÊ6g…¯Ñî¼qR܈º˜�=‰"É-Žü�gÌ!Ï-ÞâåÖ ’híGû€ï¬«ð~;gþr.Û¡S@q-l´9пø®QúpÀasVø±ü¬}î6Gý…ö‘¡S:kLç¹íŠõ…ß3`©Qq¸Éz˯E•«SÔEW]аjG+{ŒmLt [òV°®ŸyÕ¼@&¸3‰A½d6Ò!þÑWÊ@°Ÿiê�)È$ŸOãïžžZ2<Ò€Wz‡r —³‡w¶Åràѯ·¦ß#`ˆeûÕéQYä‹Ôƒ”Ž[—kÙu'TÕèòp&.ȶó}p»´’yyÁbÙH—›Ê{Õ-§Ç”Ë9!ÍrÿˆyYW¬nͪ‹¼ï‘å6óe…�€û§5âãø4O‹‹H<Ë\·ü¤eoD 6ñ™5ÛÓ¼ìÒ"›ë [SRÀ€!šµâ]³dp¬LxE*Fê%]ë=ÄuŒ ‘ÎÔ~Ï4d`ïå–ŸÑÍ÷Ÿ–Ï¥âãw†¯ãùòtB,z¬¡”wmø¢VÇï½n®µ>çH§.y0ìxLhZɪ)jN¾ê¶C”eÑË&‹ñ�:þì·u¼û—µ'1ùÂB¡åŸò”_UT?¬Ž‡Ë¿½¿Ô—ePðc�~ÐÙi÷ŒãÉטÕè+K�¯AøPF†‰hy»˜¹Ô_ŠDÙv`Ë‹M°6i§á >ÆO�ò´bÑ+ÚóÒB8–äjIK<óT8ìϳܗc�… h¦Äfd1k±�H›“¸ÍÊam*ñë½µ/tD{ }ùYŠ�ý€%Ê}œ'zï�ŠêGÇó«Šy<ÛãÀË6›º“ãE½r Ÿå ež*v’&dÏ´_oäµ´f#×¢V�C;}‘!â:³%«í倕¤Š:yUéAû‰)�r¦¢”PxžPŽ–ÔhMü�àÌ"s¹…ï üØ*­(�£‡† 9Ò÷êü‰úÃæÀðû S$s\·Ó?6ÞSOÜæ©jGzB¡YÄ~’'¢Qј7æÝ+Näÿœs;'þ<–½‘‘!¦A‰%øx¯U›Ã�å{÷,û}¬ˆ4ÁŠn{9\2\„ïåÇ×|´³°þfè±½Ë:ZÂÚ$¾ReÒ³O€ýš&˜ ¹WëDYéÁ­R��¾2*±X­ˆ_�£ã‘1ž%;j·æ8“Õì÷±¡'(¦7E‚/;µ‹ {N@ä%ôg¹Ã’hþ$Ïk*§’EËz—Ì�C4»£P¯Z<.iËݼš��k)ؘ îDðò½m7d'hP ׋ eõøQ`ÀþÎÔfúŠQ´ön¸áU™„Æû²èNwf<§2kºÉXŧÕpduϽدiÇÑwsZnoáùW~<'Ú@ÐH+2ò)>€j æžtñ²oLý‹™5À€ýSÃ_´$Á¤f/Û~ÃpwL$aS}ó^êR$wŒ‘ýþ}®«±¢©ëõXÀË ÙÍ05S,›Îq²KÙÍÅiðÇ–æ/w.›ˆD ]¿EYˆì‘½Me ±ÌÒœ²’MÚÀªâ�ÊtÍ‘{Q]É®ž·÷v§YéÈQª0¯™Îû1ö„€ßs;#ŒÊ‚ÀžÔÛao‘ÞáB$KIÁéÿDú¡d“%,FÒ¬(i ?�¾7ìb5 {îÂ%[C*Ë5épXoþ¬¹ÂõûB¡Ã½n�‡Í(öÜ&´¤x6h‘ûxydß�çH¯·ÕaÆ|g„ÜýQ_Î9LgVúa”Õ2z°äÞd8ú°Þ0üX~Ä]À€X°O7’‡’Ù„©‹_ÝLø¶h>é㡨zˆ„ati#­9¬øÁ=`ˆo[Ò%t«ùø§v¼î´'<"Îcå¥MÎx£ÓYJMþÕÏÜ3©« °jæ“‚‰i·ðË"ΟÊ!,Œ>ÕŠÏ%áÍÕÞ‡øHù·ûÁ\ê -ò‰€ûLCŒÀºÓgú,ìúžñ%I—3äFÂõ踬‘3ûÄ—3jñóÞ.é»y†h†ÓB¡6O I‰¿¶:+êc~Ü7‰.ú¶úÕ­™‰G¸•¥ýⓉ©»�ûŒ³VG*K¢í�~åâ\]ÛTB¹Ò„7…Ñ 6B5\ë·üÊš)¬”Ýÿ¶Ýñ­·¦’Û§Á+Õ¤E 0IóÔ“ƒï3èrÆ[÷uá1«j—ùÜ:¬Ï'^·dU8U°M®é=L/e¨§³}SÒ†~dßy?Ež[’²ïìAãü¶ÏÐAñy,¥f-ÃïTcßZ­Ù]{ÆšØvXŸ~,ˆt—ůh5:ôÍü8¶»ÉBè;nV=æ™w±‘Š�*™âRoÐØU‹�äUTûy¶òTšé¤¶¢™ÝD¸„ÒqÑ—NðlÙ -¾hy/:ä‹J'PdóØ�1וX<7zÓ9Úô;¤÷Ë–D‘jôÕ7ÒDFqìˆJê?ì¹ø@’ƒ°�C4ÛÑnÜ´+mÞž¼duú€¼ú�5ùqÖÔ]Vâ©ã Î9º.mªÌ°žj`¿�áT/0nœ•ŒG:.üúœz¿y¢'å“.J¼´çÞ�§üµ€2`À~¦ÍĽ¦Æiæ¾ÒŽ?©Û«6r4ÊÇEX1ª56Ç$E¶ê `ðvÐ×Ò°_ÁÈ.�ÕËB�a�÷{\*(íÐÖ|dHç»G“ÁGe\�á%&˰ˉS Ø�²pׇԡ•k´ÂY§ ¦ÃÃD qYZTÓÄí¹2¯tTY|BŠîìÀ¸Ž¦ÄìŽèÜžd:³M¢œÜ(m8/~âŒ~Ô-¯é •e?l÷¢%™¤r#`À~”©7å‰õ[åWt︡”ß•ª1*íäΕ™!3_µ�5ê2àNcyçœh… ìç™�Yµ3.7]Ž[ýkÕ4 Û+§mj�!MØ$‹ ‹ÚrEdö ÷z™û}l裴óªõÝèÒ‚ƒõ ={Ly·1“ûLU –³°¶Ê¡Ð`Ưh¤ô ¦¤ÑcáŒ-kcO«Îûøu5gkÂNtÆÆØ×Ÿ†èãâ[Wƒ‹jœyð”S`Ä®ý‚'Öîc˜kz5ï½7²»¾“rB¬ÿ�ý»\ß®«Õã|ˉŠBs;¦ù 4ÔÖ.l¬ÃÖÕàÇ‚H¿ýïlÒ +&ã£ÂÔA¤CX�¦Ùì"¤VµzÄU¼¯�‰œå)Y)Μt˜|V ìϳr å¦:”sÝüX=¦js<+/ BÔd|\M{ ¬¯OÐ$h=º4LÝ د`Ý3–Á8� ¸”W—ز6ŒœìëË ε^œ¨,Ñ[Øï!¯RÎi÷Äö{›Ô+‡Ôh-}± Â>¹¬¼gÊ/‡ùÔ½¿$;¥±´ #HéÈ6ö癑XiVÒ“Ôv¹& ”[!�Žoq4N”{[`¥+vѳ.8_É>ðüi0`ˆf+Ä™îÁÎd�6³BË�SSõüß»W-Ä5š×^ÐâÂS¤páîx?‹»ðµdó ½´#ß2C‰YWü•a×ó‡Õ’ðï £ÓNL¨`ŸÙ¡‡º…»ŒAÐÂíŽêîgR^o×�Y½ó�Z’çÛZ2äËYÐh±õžvÇ5e¾;WKã–ü/VKÂ�‘Îáþi6kL¸Ü‹qÂÙk‘chUÛ·Ú=›r9ù>Ó ¬ðòŠ1D™í˜µ. °?ÏôUq‚­smßù™t¥ö{º.·0+ «b®Æ¯a•¸ P03óÙݰ†XæÂ²Ÿ€u¡¦�„÷Hê �þšÔT²iÊ™™Ê|LåÉ1µ;Ã>seÀËuö]Gn�Yâoµîªö©ÓsT)rá¹Ý¨§»EßóRõ!—´ÜÉi°ßÇî®[lqùÚ#í{x³¬*ÇòDžèÒ ‘¢÷ªâÊ•¨Se“»ï wØŸgÏÃw”¨RƒdGnâ6ÍÇp%룬7ûq z½,ÜÄ–EU’�róE Ñ,4(B(?ƒáR¡™êÓy )Ælv–Ÿõ¶ñïbW©ú§D˜F#Dšõû6 n& ¬o~‚ï df_¤_ÐQ*=a­Št¥ó°¾@ès*†)¥¤wŒ%¶ àjOuK¹9UŸ€Z·Fµ·|†6ä]+gÏÿ°wçÑP÷{Àe˾¯Y*1¶É¾„’](;cûž="k‘-»Â�%B²ïdß²ï‘,•%J÷qåÜÇ<ºî9=·èùýÞÌ9/3g>ãŒãûýü~¿ïT^“ˆsú´G_²»/O¸]‹‡ªÆf‰«Ï{ A†Á!Ãûõk9Hû—ý [6æÖKÐEG�ðšfeK×j?)µJè¥ÀP„ ÷XOx¾¸žŠš Øá´Û §4îu`Òõ+ó�Ãu5>K4Ý�xj é–P ¾6q®Þ,ÂîX(®ì`ÿ<*í 89Ùª·‘s–/ŒAÚt�Ò[”—rÆg9I¾„ù’ËêêicÀÛ²Vß¾Œ† &åv«Z#üýþ^¢õ§©Öd-õ’u¢µ®æ'xO"- °ÿ‡‰Ñ+{ÿ`½áŒˆb¾�öæ¢:|àˆ1ïgÑó},é¢å°K° BFû½m¸+ï}/., ã*6á×ǯ’^ZÜ߀ӯñœc*fŠU l5"ä"–y `‡ÕæÇã\…œ¬_ÙHq‹�&áU”ñÖ€ê†zD0FÈv®~战Íô b:`ÿ£|p£ :+ÞÄæŠCs‡ÓWÒøç÷þâ€ý>Ƴh¶FPòLS�­³Ñ°&Äɶô)bŸÐòü`ûŒ¡ã¬FýBbÀ~}B¡å7.1^âæD¦�Åœ�ŸNHYaõ2,Bdz¤Ç$†l`¨Ý4› dP2ÞÁ:‘»m„{ô yÖ’ÇüÖ³¬õíÍľá#¬Ñ�˺_Ÿ±–Ù“°ƒok|ö'StûMá�t‘‚ÁñsB” _�ŽØjÒ�eò+†…ÕrŸ>3`¿Ò.«;êÏuæ¾) M&B .| "ĈFÕe �yÌúÄô5ëJ`€ý,cÏ…ˆjç¤+¼¯¦OÂ/Âß60˜¸.Öäý>ÉÕ/·›Á³ ý±`€VÅgÍPÂ[¢ìX¦Ñ ¬‚ÄóšýŒ}ezûõëtÇŠéÀ&â‚åÑ}„ÉBS;cÛ¹oãì;ºÞ`šé®Ñ¼ bM®‹NßÛÊBM,·ž�µ½42s�{®åŠˆ¹§Eƒ7ÝÚҔܤ%×:ÞÈÆ$õÖXY}–牡Ÿ7½™Ô(—‹>]™¤ÂРì%vã&´²(ÓÎÆ5 îÉ„xþñ:}Äq÷Îg5þöY§ä¹)$’¨6‘ó}— ¬¾÷YÅl ¡öV¶Û�†´zδÖP[} sKCZC[;+KZ0+„•“ôëÖÏ^¶¦.¬Væ`0'3ÌźUòß÷à?׿ÿ8v?ržƒ°sr�Ø98 `vn.ös 0;'„ëˆü÷•ðýãš�=Ô––dkeeÿßž·ßÏé±ó=Wøö·éÃèOç­Ÿw‰ž“#ÂTùÞ÷ü²¡¾ƒ’¹‰>ʯ1ðÚ�A��ĸ5ÿ9/Êwbïðñ³ñ³ü„ÞVšéѤ7è;ÿšãÔÇ©ßZ2Ù3Ùg«mE?ˆk+g3·"ŒÇ9�:½•~í\îí|¾o¾“Ç‹ Z Z²+IÏò’’»vÅrÇßI*A€òvAkÕä)Эè–è–è¸neýÎú�»¨E;éeÊ`ÊÁ Á¹]r¦ñû±é¶é^ð”ˆýï¹µVÔB“º•é²í˜ç¥/6ám§ŠŠn0B­ŽýŸÔ¬±�Å7ØŠtL¦y \hÐâ^ÿ¿¤^ ‡FäŒæŒ.‡!¦O�¡š¡šN{6_.^.~NëÏÁ%ÛÏ™‹�‰�AìÅ4IdÙÜ’³ˆÙH¥þò²5Ar¿^ âÿ�#¢EæÞµÞÈÃ2s¾Âë«.Ÿ!±~ªw¸–ÌÞ°d é!ý¹þ݋ïîÅ0}ëżž`Àµ$g�Š8-ï׋A¬åxEkg<=Ü«aI Ö3_Ô©`‡Á¾@¦ QþïÔgBJÙL/áÓÝx&­=)ßOZƒÃ#êªOÄ“œû¬°ƒo(é)´î'­€Ÿ¯Ñf£õ•?÷±ãÍKÚÛ8$ Û-l‘Ýñy¦Ïû9¶(¶¸ØÅ1YïÞ¾N¯Nœhø¢(Љé‘Mn¹šôÖ¼öwò›|¶p\=Àûž}Æ8Òs~k@Ö#—·@o½ke}�öÊù]L~î“2•™«öƒhæ¶ìäëB*z-ˆcV±ÀS¡Ó÷ð1J1ý³ÅFeö³"ö"ë¼·UX ¿˜ˆ5Š"Î)Šü‰kÈ:Í161„Ùƒ$\¶né»ÇùCîÝcV�oëX·ð*,Öûùdß…&ôùî7fE¬åWÝÏav̇ÿi'¥ÝÕñ4Ç/"�!�t˜K”¬o²ÜòêBQæh¶×¹Âg`?j¨ L…ízfúš™L/Òæ°*=ξ­Ÿ&÷æÛE§™1h]÷”ÐÑ °_iWB�ŸS�‰—R?äiŸê�ÑE­Ä˽CÙ�ÊÞÎýê…q÷³^$n7U¯g€,ûZœžLþ†¦§™ÒfE@ºŒMsDY…> {´ò‚Lä“㥹ä€0éisÀ– ´:*­)ªÙ>§œ…gÖƒHÈ}B§d0ÛhU‹.r¯Å!Ë~H—áG °µðw›ª45"Ñd#ÍüÆ¡~XÄ#d‚4¬UÝx)¹Yf±+c:€vЬïº1£Maì[RRWÉ2·^\²ƒtïø^vUªM®r¶š~2 ë”Ôp*„ÇqIãÕ„µ›zSÞ}c‰xºß<ñƒ µàšœ'}6¸üãŠ&ùHá¯å:¼7ˆ’a¬ÂÑQè{ÌãÏížÇ;};÷$"—ù‰?ˆB,ÿsÚå·EÔûÍãkù»¯£ödîá[ÏÐö?7î”H}ïú†Âäë FÊ@wëÞ+‚áf€¶e³¼oêúI$mû.¸ëUéɧ3ªE¡4¥= ÏÈ–‘æ¸<çÆä“GìŸg©C~™±G ˆ É"œ£ü�>ŒâÔ_nTŠYì({©!Ü®ëÂÉœ د3Û ëX§'\lKLγR�:!hݘœԄØ›O””×mοSHãZì`Ù‡º¶{1®ð̪cÜAgƲm% Ù’,k¸�MYÉÕh®Dˆ=u‘1 °ƒohgŒYÌ¥}çâ Êå”%{,GÆhyäÞ¡\B�)BY:Rè‚è{¾É7gòaž“ˆc`“‡Y àvZ‚ú0OœkSÇ+ö#^G{_î°š°^óèJÜ*WQR)…jÛ ®Ð=îÈjú·ìÌÈsî‡oר50Ð{ºGPìx>Þ<Ÿò~c`ÄZöZO°ßDzHcMèWgCÄÓ‡!ëóºWý]Ÿ Ñ¢:f5ÔÔI<»%ò$_9—v8�/ÎWu³Ì–²Ð™1B©â¨wLŸÕ Ø›bü ¸†sâp²Ì Å‚Ídr;`¿�õ6Ûzc¸QÄz²ÑØó±Á}Ã.¡U§ö‰õ!©-)ˆ»'œgÝÁ7[i`ÍîÈÆ(e‹›sÖ¿KÁJ5櫉½bK0±fÞÚðïQÁqåYAyG} 0À¾g*“�Ù(j›7ñŠ úA1žÌšã-‰µ ü:¢Áu7™Š˜!j•¨ï6�:;œF�öþâö žOáúñh© Jßz?:Á�Ï1¾TcýNñ¥=#+^~J* °5ü7Æ$4Œ¢y«ó‘Œw‡c§0®|xô`&Œ3jùÿ1ǵ(ዘ€,Ëd‹3ÄP½o\'ÄÎJ,añ:ú*OTnú qˬ¾`x¯Ç-ÊLdç”U*`ËŒ�( y>•Ô1)XV²"@SxžØzÏÁåöæ—qzr”¢XŒë¯úû9VJ@‚ﲈ…L#°$u³ÞÄ=HûÍ$»»ë3é§œÌÁ‘â†Yñ+ø±Œˆ½a{“¾þZ§@™Rá(ŽQëýzÈk*È{<æêëp|ÞgH±é8¢&ÁµD‡ÜÉÍ%³6 —\l,LjÜãú^„uÒ¾Ýç0žTè…žWÆäÌâ›z“ñü©ýzȵüŒ51l˺ÜÛ�,ÀŠŠd#Z¤ö^å“!«Âé¤Ï{Ã3@bº¹5tFýÙ¨�;ø¶"™COð.ÿä†ë�¦Ø*~â4nº‡)¼ï5ZriÈ—�x¹ µ¶Ø�šÑ(_ÜÃ[øy¡çO 3#N6àŸö&áNUÿ0 r—ðiò귯Ȅ¤Øa°«"¦-îãçú=ðô.‰ÛŸ%‡ T,¡á°„M~%–N,ÃOû8£Mìè `Ͱ_P¨LˆSâ/¼{%liDíOq[ íÚÊäÈ3œÂÜ.ÑѧÄT„m€vŒ½LC"Y¬æèíÂ7¯ËÇbóGÜ( 7X UpL?6ó\VE¿ÏBÙ–øwÛmAÏ S*Ù¯´x¹ªtH¾ú]´dû šì1Æ�­~Dxg”ÕóÜoí×g@\û±M¼(„*À,Õà†Žëeo;˺ø%-ü°Îó^ \9æ$y{\ƒÆ¾»ÏÐL±]K®á‹¾eå¨�& ׫Yâ÷ë3 Ör�Ö²8ŒV¢ÁPσmþå?Ú†£I»QÒ],dù,$ùÂÓÑnКãªD‚Ò ûu6W%è�d«2§šRG8ƒÒ|чžï\Þt�9¾p~È{Øßó=o–ÙKÀ~Ž9ÌE9ã92¼¦K¸Cú8oF©DûÊÒCÁAlËJ¢œŠO›öî {þX=€vÐlC½æƒEnýêè%“»  'äÅOLÉ©Y|a!£Q°¿¦oU§J n/ì÷1ìâi¦¥ƒâQÃHÔóB> ]FqŠì”¥­”xGkÝ@‘¶é ¾yØ€ö+m2zž»žÓª T³CeàX¸»½€BxCvÿëÓdï¬ù|u>öxëØa0²é d2Þ¸èä]Η2r›ÕU?úëÒ{nÒ&B¨ôŠ]Ed¿ð„aØÏ²‡§4A…¡bWè’OeŒ‡ ‚¢“Õ¨ž>µäH²j.†Â>#EtôØ–q»ùe@ãöè鳫$—ïÕÈyWž=~V;ü–븿Ҭ–SÖŒT|>0À~–]©Kîí2I/hÛpDÉ¿+QÍmáL•š$3zgþ ÚªÃù�yÙ.Î °_gü†Åv8õEîp5ì÷±�~?{.Å�· ˃3ÓÖ¦“ l‘�ämz§�&‹"1íÔ%Pù{àè‡ÑHä H#†B˜^,€ô\LZš¥,Ûϫٙ¶ 1ÕDÍ7î¥ï‰ŽÙï¼âžkÃgzNÚú…~±¯V�½]Ëñ‚L#‹ÓS#G5|Ž4´baîw^ ±–ƒô»ÿ�M²rNxP€ÆŸ´³Å …M�Ôd \¦E\Äý™ÈNŽ’…âì ëÑê2Àþy–»\W޲a$¯yƒ³Ý@å5×ÜK�@)wƒS�ÚXµg—úhºì0XÛ¤qv £3åµÖä%¨­eEž£Pƒîő­é¯íäE—áM.€ýÞæþÖúA„š¶Èa§Ž�lrZ5Å…|é`�òµK2cWg6£ú î7§öϳ«D"¹É¾H¥šdëÐQn>£^׌ä»âN³ÐgÛk™fœ/dë®­ê °ƒfsÄINÍv#d-f ÃLãõ±± ž½ÖU t9ÁmÉ»P…"�ÁC⻋8—¬ï±”´�Ì2æ¶ÆXõ9œßo.‰¸6ÝȨŽÖÙ o'¢û!oë£!Ç4¿&Qz¼½*7ðîÎsI®ÝsÉ�=ˆ …#øuå«V–exÓð]‹öÛƒøÈ¯)‰Ù·ªS¾ˆy�ü瘎ìÄz•Õj'“¼MÏ›žëÑJNe^µÒ»5pÜý¯å€rœfRpSp�·nåAÛ|ÿVÜ [¡ +º©´•2û'1Ûi“ŠßÉÔ ¡ ¡‰Hª…¶r���èO}mÞ‰LM;l;O'”ùZÐÿÅÞ}Gcý÷¿¬Œ�½…«²CVf"#[öʸ̬2SdYÙ[dE¸H6eD¹¬2“!+’ÌîŸSýîo×Ý÷vŸÓ}×U½Ïó¿ÇÉ9/¼Þ¯÷ûýyŸßÞͽä{ÉL» C„!ÔmŠK¾dݱ‚°‚°(­(M™˜ãÖß'r"rb`,OþßÇÑ×fYÀa7‰„Ÿ"»N ÍÉþ)Z'ÖKãÕáËÿÌ#Œ…vϤÝ̘6P7P/ÑYÝ!±ùxé?É4Ñ4‘ÜFzRzRä0rfWX¯°~XrŽ‚ÕÃêýèÿ�¯Cßµ›‡†))ÿÿ·ýùnqôÉ¥Î'Ž‹j‚7/ÂãfüöšM ÿm£Ò½î?Í^™ÒÎvátöœæéðÓühµ}°?Ï 5‚­slW}Í©=."³�ÙUÅ4 pçãñŠ/ Ó°³ Ú]µ†ZæÂñ1ïtu…À¾Ô9FFÃE™Ñ t³”£òù¸j#Ù'5oö{O–C-kÔûxiðú ñûÖm�n-fžJ^"׫õÐëÌ�ã˜%¼rJ‡ÆÜ…€ý>–×»dùž×Çí£»—ѼZp,äA„~ˆ ³g%oŽT�Š—RžƒÁ`ž•7…oªÒ¥)^#lžŠáë J6ÄXjñåÁô/XÁWÄT•ŠrõA Õ,4(B4?ƒåL�¹ÆÃ)) Ö;Ü?ë­ìßÅ.ÒõŒŠ³ Eˆ·v¯�\KÀXZÙBž3eÞ‘e~m(® ?uz±’r®}¯9SèK:öT3Zi¯¾ˆÈ|gÕã:jwjºnas~¬ŽsU^g3t!7¡­Ç:!uÍ–2‰nëߘ3 ~=gJ"ýTËm½�jOÿeqæÔ°ðá+{Í�kA¥÷ð~„�®ÂLÓ�q0…­B ‹š `÷j.¤÷ÑàªfKô:Œû,_ÎÁ‰€û5íó½ä.<¦ !êlc½-…Á'·ÆKÌä¼Ò›x.Žo±‰vÞq@é%°?ÏNÔôžˆ0Ý,>*ɬoòä4­Ÿ¤0íŒÿj8šr59ú�µÁ}l0`Àv зõ´U�óšA4ÍKÑ� _É–#!t”ìM³Œâ Ε¥ûM ­bö¿0)¨êþåÔ�ÖÓ–d4 �°¯-éfb„·$Oõs¾cŠS^$¨& ö{Ûð~ÑrßËXÜs¤ó^e>³KÙÌfL:ÎZÅš Bа å'W,ìWµ…±DÏn¯åNRfÕ× 7Bš_ôžÄK‹Vê^Ûâ�ž-ºBÇŠ ØÿÂhS¯–?*L²rÔº”ÈÑÏëö‘2éÁû½z`¿� -Ù| ©¾¯ŠgÊÝÝfÞîæTS‚<'´?5Ô9jÉ܈{Ô·e1#x¯9á‰Õi�x_i[2ë¶*¾¶õCòðû˜—LÆ Fe^8Zî{ΰ“^OeB%<Ô¬itòVé7æ„BHoà}žY6ùIö\õ— Ó{çÚkNˆ\Ë÷¼ñ õ탞ˆËá;ÆÖÙÝL1âaIs'h[?ºa†™9“êCG DU##›ØØ_ö3MM×Õ¸j®þ ¢úb"C°üôú InÚˆ1kT|×=ëI|®÷ÅÀ€ý(;”4,ËWY~Í$.A¼)af6~Yê‰ßr¦ú¾@øsfŸ‡8ynÀ€ýª6BÌuW�è-ÍP×*ƒéCÁ$!s›ñNQßÀùfãÑ*&+iñº¸~RÞ¬S_zÛ¹Ï}öMc?1†×=#¥wÉõùeÝþ®·U2±²ßý÷øŸïhà}ãÿÙÊtr�×’a;^¹ê^ rÈßÎÞ,£ô3 ~¿v¿Ô=÷|Yâë�;¡mgḧ�Üw#¯)žÈ:^?k¿™C¿ý ‘.·×šù÷Á”¬´õkòCVœ» '±±æ±%˜¨}“ÿ-‰Í4gÑ S´¿®)Ž}ZSð|½¦`ý¼¦˜çć´g�H‘¸’­îµ¦@®å`9Íâ._4Û·õ­¼eïBe÷y`À~ÛœŒ šÓ� ¯ÎPå¶>CÌtõ¾‚á„òe#¡�dPÄy2¡,øýçÀPßVh¡4)éXõÙ§ ¹d¢Ž¿+ǽÏðŒñ!äFp;wÌó¤RëÀ~Œ-I--õðN´xwn@uÉ3ÌWƲ²Þv„×éH™\_0Äô¦¾&â”}À°¿³-\Ì^K÷7fTm–ÔÊv8ˆ[6±¨ô†ÈïbÊsëtfTž†©qEY—Ohš¶#÷¬R!G"^'ãÖàI�(îÕ³"÷ÔyFËN*o£d3ðG0¤ù$Ñ×ù_8äºÆ[Ž¿ÀëE“¨Ý°øÆ\àëžUìó=Z‡va•Ű¡–@ÿ¢[&éý{õ¬Èµü¬sÉ6ûýEKº©°i�Ï�åºnŸì¿mÄQ­îp�óºo†o»„‹¡–ˆ0`ßkûTX+:MmÎë°>Î�Ão¸rôMËkê 0‘͆óÁ§’>2F†CÀ€ýLÓŠp@C%]CŸ&Ô16Õ7c¼¯�~“öyαN�W�aÏï÷¡ xiûÞ†Zö±*=*‹zš¡÷)­ã{1…Zný—šÐ\‚‘†ÓŠO×]ÏÌeG*¼¶†Z6ˆpUÿ ¢ãô€v6ûnH „‚Ú?bJñ^£v¥¬À‡Dt¥•|EQ4`À¾×¢½æêð’IfYè—‚uEâ“¿¤gàzøœè¼ÐæJÂûQ£r`ÀPÍZ‰.ÃX+ÞPž¤ô”«õêã=@…Jw ¿eçä>œm˜}�î9"?œC'(䌼ŽÌÖ ±ì´ö£½5m#]²×:y¯le±µ‰'�¡ø^¿ãÑ1U«2´¨É³]~®›dY–]\q±8ßXÇÿzïöyïéäÙ‚uÑP©²­\µ7å•ô{­ã‘kùoŸôáèÙ¸kt|Ì-ƒ>ù2»&sE1úe‹ Æ`?“‚�WXk\<ʰ]›žnh£�sê?ímúÐT9ŸE'»üInZÏŒR-e±Ç�C"Êû€ýy–3þ"° ¡ˌܜ*fÑ=6me„°E-¬M=~©«ö™žD§±O8G°ŸgNõ n÷ø¹ß²ê¹ÏÊßm3 Ç~Ž'ÁGOJ½sO]cÃñÔ¼J.ÿÚ00Ô²•æŽäx Ï삇ûBÙG‹œäH¹3í—`Ö\Ô: ZÑ'±ŽÈ²DbC}Ãf‡qÚ*Ì%•×�Õ�ëµ9Ê(ü=gàá¤bS¤JL”&‹’Ë"Óìe–>È=°UZa:O'#IK¤áÅ©ƒõ{õÀÈçÁR¤³/­¥o4ÞÖJ\ã¯|‚VC£]È}ˆ?¢QÅT æôÍ1ôí�ù¾î�ÃÉ?Õb08ØÇÖ+.u°˜˜hADc¯¹–o}gØïc…” VеÙpéüaqÁñ�A¦W=ëæØ±]³z:bº>ÏeJå^¹×û5M$1@{§Ö‰¶Â�%Z½Ë/¾ÿÂ�Ôt• ñÝl=÷Œá,Å!»Elj¬N`¿�õ=uòÃõ¢IðáfpáΈ<ƒý(§_ËŸ¢©ºè7§Ùq}©#Ãÿ– ½[€_ñÃp¶ÜR[nÌ7ÎG#}ïçó=‡±Ì _œÒZVw΀œk,§Žì5F®åGÜíl×z‚½;ÐìxTU©^PºøÖM„¯IäS>è‹ºË ‘2ކ72Y í#¹ õí½\1”d>Ÿøð¦çÍ' EÉs9˜ÒÄî/ëµÃ¨W1}-<‚Ñ`À¾×,FDÓ®—Fœ:œMZ}¸•˜Í�B Gweâ-ãÿÄwÀ¥¾À’$Ÿ °_ÁÎ�$±n÷;>pe�ÈôŒ´ËQj±ú·Ø„œ‘É2j‰sßÍ’»º†jFð˜FsŠDš–xqþ•„CŒ½O4ú†öÅ÷/ïVÀ{$GJÈéH;€ûìX­žL–T#Ö=Êéɺ¶Ñ„2Õ—^4&W¹H5 ­ß=RÓÆIá¤íÈøoÛ qŸzk:¥�ŒDpm&´€óiJÈoËK—Pž¸àÛ„�EäKTÔÐ>µ×ÛòXÿ÷3y°¯³šÐåŽ2­¿æQî—˜Z¿ªø’& æ2æ²à`Ãþ‚³7 ­�NOýk2ögì7)V’U’íñØÍAMˆùn«v£\¯×A¼›Cµˆ�OIƒo}IýÍ)èôœ$¤¿kïK`×|n} { ßú§XÒ$šÝ×›ÄÝ�z�zÝ Ín”æ•æÅ’Eµ¾„œ�‰Àä0à0˜ªûûœ³=g‹ȲôïSŸ~`ñ¹Ön†ê?޾²ƒ°öSøÕ  "9e`¢ÿLš5uú5™Ý\÷[ð[ËXÉè4XÿOÒ–Ý–}í�µŽµŽZ4r–,G�Ž3  ý@ûÁÜú¯9§õudéw“ÛÕ\Ó\ƒ<·Ò? îF’±kè–z_ßkn…üM¼éÊpº`›³Û¸Fžj~ÎöÍIo ˆ#»OéùªðÛR”~ãL㱯çVOi>Õ7Ü¿ªûÎjÑîò#ÎͽæVȵ Ò·Q~E«Öcn"°ÝN¥ÁÞtµê´È¼…�®\ˆ¦\Á—z•ÑöÀ�f $·¼ØÏ³¹‡â~™NšsÚwšIg0žÊ:BEŽ—¾îµ%–(ë‚ø ù`B… mžû1vi.Ö�È•Ùl’)ý&e^éŒZµ¡ÖÛ4ñ!û²âúõoHr~/0`¨f›º�+v𖵑3V· ¡÷¨«îYSÓs¦ns’�ÒChŽMBºt™a�UÀ~#¨zÍúöÐ�tì0½ØÂ ÿô‹DÕc´5=Z¢A¬&/HŒSþb@)0`?Ó&âZø.ë‹ïV8#ŸTf Ø�2­æ\‰¾«üòŽMWŒ²[2Õ&ðv¾ù *‹yÛW&#¾4ŽUçD+|`?ÏDÍ«œ …: Ù®õ i–¶ŽØT£Cšñ)¦¦u• ©ìKJл<Í�ý>68诺ù¦uuh浃õ3wL7u‡)›ÛDe ž³˜® Æ"©ho6ίh”ÌÊf”Ñ/ÂY/BL=¬ÚŸÊÛw"ï«9[“¶c³6Æ.<ÝêƒöÆÅﵯ†üÕ0{ïa§Àˆmû£$5<Ön²1ìÕ]�Ú·—‡Mì®l¦ìƒ�~ã<8ï×ûjõŸj9X^`aÇ6õKϳ��·×¾r-¨ôÿ;›\ÃÜùá!1† Ê>¼v³;Üâ”Voyj È+Þ “9Ÿ¥å¤9zÈaäQ-°?ÏÊ,Õšë06-”õ¯ áušiNòÏ=3 Ñ”÷þ{÷ÍõÛÿÜY!{|�Ñ7;›Ì�‘ŒPö&²·ìˆEV¶¬™ÉŠÊÞ#{S™ Ù÷Ï©ÎïÛçîûó;§û®�ºÎó¿ÇáœË9þ¸^¯÷u]/GÃN<3ÏQªXõ§û)»�; Ö>e€UCç‚Mv}–%mEßΪºH—î\£Þ…ÑÒ|íéýÒ²ËéÍ®èÀ~oó o“¡®#²‚ߥë+—–ù *Y,ì«[õé¢ì¸êì^Ô^BË#C`ž©ˆ¦ùA*›åêÐ�î>¥Xg«-v;1ÍL“ç m–}¾”µ§öe0`ðfó„©Î-ö£$­æF9&[ããÕ¼ß{§/Ð9‚ÛŠßXò%$D0›3†ÈÛø>l-Yßk%eË3G—oÔcÝïxþ°Zv®0*õè˜îÌ3Û´>Î!Ã>6ÇB,�kí§’y6ˆª^\¸÷�Z’ëÛZ2ðËÝâ‘åŽfÛ¥Ë<÷®FÏúÊVK®žîuÿiöÆ€üö\'ÚI{·¶¾±å}Óݳ 23ÌäÜ@œ7@¸ÌrÂL ØŸg:JX5fkÞ†~m‰Ý®üs ŒŠ‚J9è 1KùŽ|PFFË›VÀà˘öc1$+šˆ¸Qç©°¨t–$ÆS ÎøI—f¡_KQ¾×ïñ¶|Y�æ¾ãà�aÜõÆ]¥.Z¶2§›Õ4wh;&µ‘ 8¤äNM¸ð û}ìqï²ñ:‡—dßÅ�Ewár@WØÉ6­@ Z·2Ž ±*a¹Ç6ÚÖÀþ<+© ÙV$Oô—¼…]÷.’³×ÿ�Òr½7²ÛdÎ*¦,²¢ôP¸“"0`ðfAþ¡Y)tsŒ”^¾“ ¢ÄÊô«feÿ.v�¼{\ˆa(T¨^§kïV,Òòêl_ õÑÚi!ÅÂó’KeÄó­‡õ‚FÉÑ ÉÄÝ#M0ùù:ʪH]HÉ»øŒ¸Žµ«–»_JÑ@¸GÓÈÞ�PUg,ç¼ù�¾Ï·}�xüÏkñTÓÜ«póý¢M ñ<¬/»xš‡÷3l|Í„Û Y ‰‡Ï407O¦VÛäI¥ur]1]¸×fÒëCÀ� ´ÐB`GÓîÒžÖ|ЉA= ÄKš®§¹#3Ø|²ÀPÊ=¹–íúäÙzóûã¡'äF�ýyv®²7௩�Pƒíü3üa´ZúÍ’d>¢|d³¾k!ù BÄ‹®ƒ( &À€X›_v£¤iÔ~C;:*0àï-Z:�ü“œ•Ašn´¶jq²Ïdí0`ÿ £Q<þ!q«QÒ˜ºø •êÖ²Fú ² ߎèù~æ�ÔÑòKXXx!cÀ~oÀÌÀùÐwÂ8 ] ÿñ›Ô×– ÛéTq¼géËécðÛ®ásÊvTmq"Î휳ÍnâTœêç|5uý"Ir];s9CžäôÈÀ€ý7Œ,ñfÉ«ÜxS[Ç8¦~ç}âøgÿéyõÀ~ã]6ÿ„WñTÀµ«É¨&ÄÙ®²¶Ohu~¨cܘ¶ýŒ7zýRJÀa}Âsk3®1ÞâxfMåœM›§¤­1ûh—õ'reÆ%†m�Qz(÷’«IôIø†ê”uEî·ã§OÈ 3›ãKϲÖG´/릯TH°fO!Ëa}BصüÈŒ_`ðoŸ4ùþz¤7`–ÞE)?ެqß9ØÐ_‹fâÎ�omYÅF5×;ã öû;ì9}Ø}7lMÑ,‘k{ç’eÌvÅîë¶d©Ãj Ø¿Y´Ì§ÖqDvÞÑOSxkÃu‡'ö¶Ú=®<óæ¼s�¿×ìŸk ¶ok ú/5ÅÛI¦AL!„Ö´¼11<'‚µÃj صœ,�´esÆÓ¤{7®H÷.–u]ì(Ø.Ï;ž(ÿA�Ù�ŠEV³‹¸Ô7ŸÊèLÉ×`óŠú‡^%àM+|Ú þm•Œª��|¬:ý|�+•ŸDøÙ�%èO)_SÝÅ&B¸ÐÊÙ_dö ØÏ±e±åånŽ©z�Ž- £†²(zú‡¶…Uêbúwu�=HoñÛ¥Ÿ0ìŸl¹×Øå½!I“1©¼%ZÛ}ó(xšùð»˜üü¦¹!‰›Nb4S{^Ú�sÊ­°{V±ÀÓ¡ÓpÑ+1üóÄÆdÛ³Âî©ë~°SX ¿�‚9†$Î)ЏÉ5l“éc<9ŒÑ ~¾eå÷�>8÷·{VÁ/÷hmZù–‚‡êoûæÝ×Oî÷;lÏ »–_u.Ùü¸¯@A *™½êD¦Ó®HWÈC]¦Š+6·˜ïxw#)q´ ;hc«ð[ö£†¢@_Úa`~U+‡¾!só…ç™÷õÓ¤þÁüÛch”³Fƒ-¢[^º:CÀ€ýJS uy%¯¤HâmŸx×7«‡ò§ðYO{÷›“ž§}nw5ï§ÀàËöË“ÃÓHg({[Èl×ež³j�*)Ódb�½�”mæÙtº8Ÿ&3m ¾l°ÍéÊ'¥@u»gdséÙ�õD¤¾¡ïd1Ú©ÔÊ.pŠC”[Í’€ö£>èaû2S�ƒ@4íšVñ)“ÎÐÛ˜„£$B”,/{pæš{Æ®�Kè–oÖˆsÄζ4ö=±±›Ôs÷>Ž$ðtò{¦*=ðéÒ‹¹W4Sݧ¥G2ÈyxíaëxžL>Í@ã3²û3æ<‡Õñ°ßÊV—kÙ’)óŸôÛž˜P4-†„¿½Ôéã´M�fÜÉ"…ö�:þì·uü×y¼½ˆë~ƒ{Ž;©mÚ¡íi'_6�å~ÇŒüÛØ}„ Wâß#ùúk�Îê`MÃâ³Åg˜#Ó|ÌÇë>ðt>Žø÷d»e»½:%¥.¥ÎÍy�ઃx™„7ÊHŸã R!£Ÿƒ"m­ó5�ù6T6TãÃÐS䬜_sk†}ók’»Ï|γ ë×u¦Þ*IAOAO˜H>b$b¤{³ç߯ÿOLÇMÇo…„¥…¥Ýp…M±3¶36S%Z5„b\ð÷\¨ù6jdñÌJÌMÌýúÿäüå[¦È¥œM� ¨XñNæå÷%e‡õ…`ÿ·ÿÓçK½˜zù·²uüÏN8§P<¸Á¨L[š�x�Ži°Ÿ€š»�‘ƒOeR(ܰ›ã›©h"’²ë—ô0xi ŸE§…ZÒœ™È6+÷œ8ßõ÷‰!~y`žeLßΉ-9fHhD¹äu²:†]9¸éJÌrçóךÂz^!œLyÀ~�ÙUÛÄ:?áb]¡×t™“ÎnÒ AíÁæ¤ÀÇŠØ{rEiËöü‚B&ׯ0ø²Õºö1Âné9/�s1ŽçÙI᳦Z-×p›˜±�ªSªDˆ;}�. ü*£ ³…Œß||IÕ%%©^«Ñq*¾¹SQˆ/ø_ŽšXIôÿÔ c±±×lMeš”›ÌÖA…Wæ…}ýÝÉêÃj*Øó… âéŽÉ[5Uâ6¸Êš!•Pµ\ÖS\¡5 Ü‘¯hÞ³3!þ{MÅùmMBøy-�Úƒƒ} ½Bb'óqqù•Ûîå{ï,û},—8Ö”fc.DæÓo=$6S®€›�®é’2’&;d¹d;•Öì÷±¾;twh¬+¥?kº_ØEÔWýâÇ|‰j+JâÆÙtòϽ¸ ¼Ù=ùÒÅ ¼q Îú…G˜&ü5±*vx“Ÿ,Ú¶ý{•±Ýxב(ŽöO¦<Õ•‡¤¾wÓ §LÿjPŒ“ÖDkJ-­€®hpÝ-ú2&õ( {Î�ÀަQ î¦7Ü]Çñ-Ý:-ô‚ȯþ6µÐàNŒùø€sü¯Èê×›©À€ý¨áΘ¡SÒ‰m,FÒÝŠ}‡®²ú0q6Œ3Rßê-îcŽëQ‰ËÕÀàËrXãŒÐÕLêα³JX¾�Vå�*Ìš%l�»*Þçy‡,Ñåѹ10ø2“kd¥¼«Ç¤tMKÖ®X㡪 > Oi{àèzwow‚™†©,ý†á›~`?Ç*ñˆp]—1£Ð‚É�ñ¬ˆÝmöpÆàiDÜ«#¾ÍÞÕ9ÆxYÀ€SÁ3kõ˜8;à9ˆcpQÜá ©¾`õ *6sØÔ>¡LÊsÜÌ�³:„N.À€Á›a5@•ßቓá.-¼¶‰¼FáOqWõúúÔèSìÒÂnѱBrüv`ÀŽ‚±?×”H«9öD§tæmUÓxl±â¨;Tÿ& ¾2¶ÙÇÞËjh Ìdí)ÿi»+äUmF.·O…S¨F ñ»šäª-ÛgÐb�1 èj»M€Ã¨¤Qäqç°>ì›xíâe!俆ÑuÝ.û¸Ú[Õůhã†u�×ôVàÊ· *úÎ4öoû -ÐÏk)4jè_SŠúhºdyãs\Óa}صÀÓÛ(GÑ*4iëy±,v@Q·�L;®¥ÞÇD”Ï…È—2D'Þ¤²81¤‰�YR ì×ÙüK!ŸT;åyµGuø³H-l±iøÏM÷Zà w"øŒø{!Óðåš¿ösÌq>ÊljÖð-uò=âÇE³Â� ••$¡!,«ùÕ›{ü1{�ƒ7ÛÖ¨Yµ,¬ß»hz!è iù3R æÄ]fÂq (û[š6 òÔàŽr`¿�a•OÓ¯œ��P.žóMî¾§ÈNVÙ¦I†3x¬Ö!Ò.kɯ °_iSÑ‹”XõœÖ͸cZ�ʃÇÃ=“±Þ2H�,Øðûé~ìõ2Ñì(É´$Iµ¬Ï 4Òn—‹Ù…-jýõh¼ö¨RxÈ ÊSÜDdévyðʀûYâX@T*¦ºD-˜v:{"$X!:M�¼ IÔŠ#Õº¥\ßxÑÙ Ø�qOˆÜÔ¼;ÆpfƒèòƒšK>/΋ž<£~ÇmÂÿÊœ7¦sî¬t|±>0`?ËTê2…ûºM³JÚ·��ŠïKTè¶rfHO‘\[°x£ß¦Ë™Ä´fgŠ ì×™€Q¹=6o;MºSõ¢R’±…õió D„:L¢™Ø ¹\«‚?ÄN7#`¿� ÜvàRÜ~߸64;mc6EËÙEÚnÀàÓ¨~¸¬Pgj«�²\Öì� دm�1³öi±šºbKÄ�z�rМçTçJd"õª>]�UŸÞŒï#J}™e Øïgê$bEР䊴f¹z,ÔаG´+ ÚáÏ£SìŒÎ:–¹gË8»êžu¢Ùi¦Û˧aŠ+$“<óõÑÑjþýÖU ó@‹Û š�{†)œË“@æov ~.ÙÐm+í™a.4iM°ëu9{Ð\~_aL†á=ÜÓLn$‘΃öè‘6G´·2©}_ˆ«Ë÷ÏßÜg.É»w.öõ^ÐX±Åöf‡eÈÍ+E·§ešKÂׂH÷áþnöÆ�æúLÖ1'Ïw ž‘¾µ-‹/|©2)÷Xçúò¼Qæ ‘”9ŽZj£öû™®*^H­e¶õGã Ö´W΂3/N) «æaÏ',àºP�:±¹j b™3ÛV"ι§Md`Œ´9zLs* ˘ZÒ+ÎWPp¾ýÉ‹*JwJšN^ô6õ'^ò—‘n26rµ#UÕ›I%¹­íÓ€ìí $ïÔâ«¡µùÔ3ð•SZDä�ïA}øZi?¼a£ÍÁ†éúX¨‹°ü™:óvé=TØJ0Ñnûq¿!ÞÙXQE€N»ÁtR+¥‡¡O•Ÿ¦¯õY¦¿ùÖøCci¯ô:Еq¾«X§#QGå†ûýìLEwȉ‰¾(Ã�ÂÓ‚ÑLÚÍç¨Ä¨§?F"+<%E¹à±Ú�Áj`ÛÖÔ›Ûx΢ŠÊiU'–jX¨/Ø_¼ádÍ'9[C¨Þmõ’ô€ ä�è€öÿ0 F¥#ÒÖÏ™‘P½ŽImñ2¬Í\à³øÙ^ö?n+,à=Å#Šì×¶¡>Ül‚=GÍâ±Õñˆ·î½É|m“º£OâçcyÂ’¨HÜjJÌK*û0À«½Kò<ãfÿÆá"XŒ<“ ºR ©~°[ çN¬\çêgîØ™¼_4ÀûuÚÕÒçùÉ—\’Øz¹Ý¶È“ÿÓû‹öëÿ¢Õ'¢§�”p 9;›Lj#Ý+Â÷ mÏ´�š1ÕbŸöÇnXÈ9¨Oxæã;�I"k˦'‘¥ßg ëdˆ‰Hž;Cݸå†aìD¬Í8š'¤]f=5`?Ó”/»ê?™ë,zƒ¤>8‘)=·ÖOB†}yDŸ%&áÇË·¸+…€ö£Œ«"®[(|_ñÃsÆLÂÒA Qcãqo‰æ€™ö(׋º˜üžaÝs °Ãj#„¹*KTé´ˆŸA’ùM¬~ľ2=}Fõú£O@’"U·{‰¹¡g&wǶs_ÇÙ7õ„AtS¯FŠsIµyÏ»}kl+g`a»ý|Ü�¥‘‘pö¹çZ¾<�<%±éÕ–£â%# ¿ÖñFy€nÈÊê£b÷8l£’¤©Í¬ð&ù"lkM¦S£ª¿lÈ LlgS¢ŸIj„ß“ þü;üuúðãîÝÏjþõ³N*€©¤ é4›‹(%A�í¾õY%M œíwMŒé Ýéí ¹�lŒ­-lMè]L�,ìléA$à8 Ç¿gxÛÓ;;kˆ� âçØþ³þsïúó€ðòþûñÏcï#˜ÌÇBââæ†pƒ¸À¼\|H .ŒDúçJøöqÅÉÙÀ‘žÉÑÎÎù¿=ï ŸÒc÷»@ñë÷WA³¸HëcMæk¡uæ«ëþßú.P61rQ±¶0Âüó5è³{ÃÒÀ¥áÚ¿†‘z7G †Þ»é¬†•ÂJkœ3ºXzƒ¨¶sþžŽ´Ž´²qq'q'¦—Ûqªi©ØŽ!t;¾*÷9!ÎÛñ~³Îº“׳×0vóA>O"O"¶>j®¿2Íi7ÉÍ(»)-Ã߉†‚�¨íÑU‹íðÊóÊëpo'5?5Ÿ±Ox7K'–N0¢3¢³:ÈÙ;kˆõ­–à†ÿt)V,‡åí”ßÉ{m:vÛ�àÜT×I!tŒg4ùOê”õÝ;³�çÚYY%¬§+hUÖ=þ—ˆ}ûâ�[>V>Æ …töÉÖ“­7*©eCeCNïþá{ã8µu}ƒ àûUÍRù¡ò6 Ù´_^·¦KÔ¯‚ÿ_‰&^nP€2$;ç¤%º¾êñ’x]ã&ï‘Õ;ö‚3†ÈíWqíô«@{ûU,_ûUoÇÙúqE�Z #D®$êWÁ×r¬”ª¯5—'™æß¸tѬû}y§`€û™„ÄÏ _žŽ|š¡Äiy��áê#Ý …>òZ|~ñà(#~hÑ£.Àß–©©tRÓÑ«agku9郤bøþ(Å~D÷šþ>Ò��θ®äbËÇ€ý[”X\|Å=ÑàÓ¾Îx™4ÃäEy< Ë]‡¢*M ƒÐ÷ºh>”×aG ì[ö­ÛÌ}Ö˜¢ÉŒRÁ«õ–U¼="í'ô«˜ÂÜš*�1…§nÚm¶¶¨÷5Ãø1«DØÉ¨©Bì œàÉ�كƬðýš{z—bÎgàŽ Jòˆ£¬ñÚç¸&˜�ât#‹V®Ûís޼wÌ*üu�ûÅ…ˆ�†ë�· Ò{ƒ³Â×ò³îy±:(ô°““ÚI},Çõ‹Xgä]=¶§*öרCý_¡ªr·ˆ:ëà_´ °ï5 E–²vC+#í<–9s¸5¾§g¦(ƒ#7F°è¦Mú_НûIééØÏ´KQî�©($+hïð·�MöLëcÔݤîÊæj¿yaÞõ¨ì¥áÿ0IJ­'é1PÊwtÝ/©V„e*9µ‡UÕsðFjÎÉ6CÖ\/ÌAC¢e¦¬C,ëouUù¤¦éø˜z–Ö€DF5)ë‚ÓF¯Q~ü) Enù¾¬2`€}¯Åôû8<ËÑä&‡šj—7ŽK:L!BÇñ¬‹ «(ßÊ7qeTJ¯0ÀÍ ¼Í™ÊgÉÅÈ=¥+½z¸�R Òýõû™úžOò53Ï'B^�¼8”Máw‚ŸÇCr´ÂÌÚ-¨o½³‚Ä>3T¸Ï¬�YÚœs' 4-WI^èñ|t@P°ßϲǯç%–¢“šPÄ-¸Ç_G^ÁoPŽhRIXì¨|­%Ú®ïÉÃVØÏ3ÇjûD·¼œK,Zî3s›ô"1»pDyh‰ñb7¨¨®;œ�WÌá] ±l¹¾-%AÔ–÷ì8üÔh�£41g¦íb-ØÜ’ƒR“îR¬úÉóÌј€!¾až2g·– šK.­’W•î¶¥øžû«Šˆ…'‰åÈ Ä?N¼;Ubæ7?¶¸“Ÿj§'jˆöÿ2y¬ú 10üµÆ©’0—ÕôõÚ»—’VyË›‘+¨4ò9�óFÕ*‚ãž3Îr±¡ü} ̳w IºSK˜Nk·ˆÄ±BB‚÷‚ª��ákÙoÍuÀ~Ë'O´`\�‰”¼?$_axÓ÷jÍ3¾cFKSø2™_—T±ô÷ À§ &ilV:R—¹3ǪT£$ôÚ H¼{¢H˜ ÓrÏ‚ÊØ,8L@Ûûu¬ç¥c¶U¢'�³ ',(úæóì^Iô@²º§¥I£)¢Åö‚35¦€†hvS¡,A)¼`HÒš§a> 7Û\°6ñ’#Ñø'ë6¤�àn5|OþÔyÚ#€ö-S›è,@ÕܼêJPn`žàǦ=Ö’QÇ$¤'Q�¥œ ¢Yƒ1¿éÖØá4ZÌ/°7VËÖ�ݾ^CÔp�A¤ÿsBÍhŸ[òy¿¸ê×k™Oì{�ð�96³xñêû8æ[ƒ"‰“Ø—–ï¦MGóÄؾ%¼Ç}%^4m±0IJ<Î$l�Tóú3\¤R6oo«óÇÝŸ&m™1‰éñ ¥ÎCqÏZ¥1 ±ÌÜ”ºŒ]ZÏ¢ô£Š¦FÿݘŒÖ�›_ÆØ)Q˱½�ßôöc¬‚ˆŒÐc7+‚ƌȖÜË~“`‘öäC$KMÅ{õ™|­p™-"NÒ$?y…0‘¾7ìlÑÛWçÆ-û”\4ž{Äþ Þ0üº ¾÷„Â{;\÷šPmºkJñ.1 t‚ye? Á¤›ª°ãö¹>Bn-¹¯÷9Œe–ùcW²¸³e_c>{ò Þ0|-?bÝÀÛ¶W!>mÈ6 %%Šargÿª‰ÈUÑûä�{br™�$ôc‹jLû 0ˆî†ø¶"]ÈH4ŸðĆçÍæÄgB¤9ì`†;ÂY´ZŠè(?¢ù›z„ ·¶Ø÷šéˆ`Ò�PÂ⨳'`Äy±' YÈÀÙ——‡�|¤›ýûœ«ó̈î“Øa0u1"ËŸ1¾>ß~à ’Χ) „«—0ñÙ£'¶He2* sþ˜Ö%uu 0D3¼Tj“D’Ô„ óoDíãLiý’cohb^Y™~„_VôJ|ä!) q`€ãªÔ’‚JÔ¢?Ð-{÷¶ªi4±DiØ‹Êà*±¾å/ù•5°RÙ©Û2þi»!âWmI#·EOP¤Á€dtÇCG~M9ݵ¦²À^®\G–¨òÍÂ5­)‡õçkzpö�ؾ >“öM‡çnÊ|„Þî†ïLòñäãé—HÚhE6)ìYŽ—ÿ=ô™ô™^‰HÍHÍyÚÛ±¹ñ¸m;5Û�©¦ù·Gl'xËmu'ª|LE»ÑHôô~4Uñéè¢åndp„¨vÓ˜’m½“hS•¥µ<±ÅíH“8FÉ´E˜"¬â‚qün2ÇÚ¡íPÿ5ÿµ„Á÷¾�4Þ4^Q!ä/ÿ=ªR ‘¡ÛGßI‡?W¬fêNÔî¸a…8·P‡ÿ'çÏIuÎlÇ…?…1…ñuëÆi‚$Úÿ%:½:½Ÿ¸ ‘ÐÈððñ/©™¯™·ÐÓ}0û`VÞõ¯‰@Ý›iûíLQ³ ± Á÷­´¹ÌC:[¯“œR½\ìzPß ~½Õ6ÉòHš«lã»ØzžÊN¶õÉK:„Ñ�gµüy ­ÉŠ÷¹¦‘koßê%ÕN-E&/z?ªÆÿa±`ãýœ=©é ¾|-ˆ´6Êa´§ZL üxÖ_R„¨07\-ÚM3oá¢(ä#+”±ÞN»Jo}t@-)§´ °ŸgsÏD2Õæ4²ê‰ÿÅÞ}Gcýþ¿m·�½eTvÈÊ™‘½ÇmDV™%2‹�l‘-B²••l²÷ÊÈÌ'#âûsªóûtûüüÎéû­»ºÎó¿Çáœë8Ç9¯×ëz_×5�Ò"ë€K/x¦h¶÷¾Xq'Äw$Е^ Ïæ5°cW£Ýð\Ìfè’ï�fÍ‹!U\\{ 2„c÷œ¨ f{Ïù:ä~ v/0`ˆf;:uë¶…�›cç¬îAB“—?¶&§fKúÈFÝ¥fYýìÒå“6È�l’¹¸9¥<2»'Oü‘;=Ì�ý>68àÌ£ºó¶éýÐü¬½õGTy» ³ëTY–“°Ž4Ê ¡Po:æ¯h¤ Êf¤‘ÃaL/W &îV­-òvðûjNÖ„­LuÑË-»}ô½1±‡í«Á¿s8ÂÒ{Â1 ü£Ý)‚JNkWÙ(–ŠÎ­‡ïFŒm½vÑ!Äßøœëë}µœOk9V’kaËüfM×µ© ë°}5øµ Òßþw6¹ç‹¦#CÂ4�¤}X­f�8DH­Ö8«ô‰Ëxß"9�§d£8uÜ~¬¶ ØŸgÅ0µ†j” e½üXf3<‹¯ ƒ5ä¯_5ë$°ö¥�Ó~z®Ÿ¦°_ÁÚ§,ƒpêÝp)¯Ì³§­;ÚÕ2Š6ÉŽ–èÏîw�—©¥7»C�ýÞæñÖ>)RÛ@|�°ËÐO)-³–B¦X!Ôϰzëœâ¸æü^ôAbË#3`ži‰¦ù#U&5+5`¢Ü ~J½ÁY7Zìqt–�>ßYß:çl)GOý‹.`À͉S][‚œFÉZm æ¹–ÆÇkø¿uO_°;j$¯� LæR˜pw,‰ì|/ÙØk'çÀ·ÀX`Þ{¹ÿêÙÃzIø7ë1èFÇ /`ŸÚaðu% söµG ³=¢·ŸJéõRBóüàÒ�oô’<_÷’ÁŸÏGНv4;¬¨ñݹR3ï§pX/ ¿D:×ý§Ù´ UÀB'æ1'�9ξ±_�}«�gîg1/ä^C^4�¨±µÖCöç™�:NP�uÆ¥÷>fþmIÝî΂ /YT…Õs¡K±+XW(XXøloØC,sfÝ�Ã’©xE‹ž´H‹Ck°"=ž‚l–xÊ_¾4ª6–.®q§ÿúL0IJ:Ýý«ƒ·†-ñ7š>ªw]dà,SáÂs¹QC‹¡cRõ —œÒñ 7�`¿�eõ®Â6¸¼í�öÝ<Ù —Ô‚¢yîkÓ –fð(ãÊ�¬VcWʲ׿ ìϳ’ú°Uª¤@ÅÁ›¸ o¢¸{ï ¬6úp¢zLæ®c+¢ªÊE¸x#†h.”�Âx.×\ýÅIi¦G¬?ë­ìßÅ®Pu�‹0…‹4t­ÜŒCY]ß…Ÿ ¤>’e˜5Q-<+³RFºØzØ\ d”Š% ÓŒRÊ3Ê[Pp©£üe5¹9U—€9Z»f¹çùÈú¦Ó�ê˜t¼ëö7æ|_Ï?­ÅKKw¯ÂÃï…CRh؈×asøµ Ò{x?ÂÆß[òš$a¢ð Xçå+Ôë[>®¼œÜGUM뵟ô~t-3¼دi·NêÞïÄ¢Pç'O7ÒÝUl¾7ùÄLÎ3¹žóÊä™F›H§#áG•F�ýy&ZÙtbj Üd§à”à]=ãfJ_ Êy¿÷aHÊÄÈçÜ7Ñ™-�;°6ÿþœ&«j §MýHŠQ¡�@‰Æ“ÁT[Jv&i†1úšÅɾSHïÑ€ûo˜$½ê‘wIšd`D˵´7WuÒQ-v%Îö³ýE£¼‚S�C6ì÷¶‘ì ¼w}GaÑPMÂý¬éÔ×¶‰;é´ñüg˜Ê™âTÛ,yˆŸö«ÚòD¼‡¨«ý´ƒ<¯8i*^M•@¤a¸WëA¤R׿.WäBî�*0`ÿ £LºQR›—`åpñji³ÿô{õÀ~ã_µÙ"¨xªŠeÂÑõʼ.ÌÕ±ò üœÐîìPÇ8Œ¡zÊÚ¸’tØœPôýœ{¬�Á%"ëWåܯ¶�Ë_ÆîcX5žÈS—v€¡÷Ðì%×�“ 5hŠßk'üÆœ�îm¬Ï3Ëz_‰¾\œ~ra¡º=…ì‡Í á×ò=oüC|ÛÒt>ñÈhÀ:½‹.J$4aQ”²iß5ỔP�~ò½á‹\Ö™«HQå°>‡Owã©‚Á”òi.¿D`¸)ZáÓ`ˆoë”ôú‰Éh5égë 8hý¥#ÎüU}Jóšö6. ävP+GTOB‘õ3`?ÆV%WW»¹¦¯w| ×!N1YÍÄôС°Z[ÒøÖ²êuò›‚ŽéGM€û'Û…¢öÂÜÞš‘½‚‘+Ûb¶Ý³‰¶G¤7D~S^ÜV§2#ó0HŠamÏO»&ªaÒ _³JŸ Ÿ½�­Ä Ì— S<¬f…ïѲ ß9ª¬EȦ`�¡HqK oó ÛgºÄÂ&‡±z‘Ī>Øùc_…÷ëšUøó¹lûV••Сƿü{ÆÉýþ‡Õ¬ðkùYß¹ÛñzÒE†Aé¤9‘éòQ¼+ì¡!kÅû›l·|ºQÔ¹ZÅœõq/ Úö½†®ÂTÚabcª—Ëô2sû¹×©·�³ä�¡‚;c˜4óæƒ-¼¥ †€û™v1Üí™T%õþö‰7}óFèÏñ ïPödœîà�~iÙó´‰×SËç)0IJýòäˆ4ò9šÞJ‡ a…*½Qu úLœ±ç2ŠÍ|Û.çÓ‚î*Ì^†X6ØæraK=XÛñåBzNp#„„Ü/ü�âU¬vZ­2YÞ­xd¥õlE!$`À¾×"¯;¼ÈÔæ"’H³Ð+>nÙ€MÞõóÞ“øùÜm¡ ÉâÝLµ·%eÔ‡õñðkùO_êÍÚ+ø!Ç ðÌ„k õýk, ¥È× Œ|(ƒýDt¼m,\'E"l€;°�¹†�W$rŽý2×M^˜(g3jGc”4g>æœWª"-pÆ{tHPØŸg“ùq%hfÄædQ+nÑHëc¸�j¡¯.Ä®vV½Öë0òãfÍöó̱Æ>Îõ1Ç“®Û‚|Î+Ã0Œ,1njBœÈ½ÇÔ?8œ]RÉäÙ†X¶ÞÐ~?VÌ#=÷ÅÞ–ñ|G9BŽT»Õ:^Kkvrmš‹‘âh'eïbC|Ã`±d»¤à¿˜PR}^]®×ntœVà{ÎT ¿!T¢#5^‘x'85ÇR 󞂯�­ä%svÐ4ÞõƽòæXÍa50ü÷…‰RéW7“?Ô=¼¿ÉSÖŒTI¡•Çqœ'¼NÅ„7ª–þíiVä¯�¹¿®�È?­%Xp°�¹WDòX>Þ² úa50üZ¾uÏ2°ßÇòHã¬è7¤²GDø&?,óÑMto›cDw.èj ë�x÷HÉM»Uû5M0Þ_k¯Ê‘²Ô�1òB šolÿå!ɹrüœt]·”‘4Å!Û‡©´`¿�õµ8úB=)â¼9hœ9ÒýïžÃ¨Íè—Bó#©¯(‰¿/Vdß)¸ðÜ0D³;Ê¥±ª!ù#R—¸—agX ÖÅ]t$˜ÜºÔÙ ìÕÀõàß@Y¢> Ø?™ÆTW>ŠöÞ ¼2cÓ�XoV½‰Ö”z!C‰Ð†›Le¬|ÚÏÑ—ö\;�ýšF�ñ1ýåí <¿ÒÇbäCž“ø7Љ îÆúS�¸&È*xGÕ¼ÞN­ì{ Î’JÃ(Q´¹ÅxoX$î ôâúäù»ÜQÆv3øY\W¢Å’Vk°€!–årÄ›Cµ-DO³KÛÎÄhòGfÏ·.˜ŠDôyÝ¢ÌEv{´I†XfiAYÊ¿Ž&ghUòþÂe ­Á‡)m÷¯ºßÞû8ÁFOŽR½f6ÝìÇX% ¾û*v4f(ŒÀŽÔÓ~o ‘ÞáB$KLÄéÞ%Ý.Xg �’2ÏKØÀ�c„Ÿ ;[õÔ»s)V�ŠEs�Ù6†?k®ì•%Òßéò¬ßœbÏeT[šg�¹‹—Gqk$]nõU54êßGÀÝõùœÃDj©fQ“›ÆMƳ'› ïåGÜ Ø�u]oG²åTU%Õ'uö©ž ÛË&}Ö‘Ñ4Š,¬£³ÈG'x ñmC®€ž`)ÿÄŽÇ�æ¸BÄ™l¼t„ ¼Óm-¤!�êcá„ÔÖ Ø÷šÅ˜`üƒ[øEágO¤æFžhÂgö%áÍÐY�\—ököp®É…dö+˜¦8�uëõ‰3^ƒx&礜O‘ ׬aà²Ý�Ú'VH©ÂÏükÞ€ØÅ 0D3œ—o¤(ñW–¦Åì£,¨½è#okc\Ù˜}Š[ZØ-1ö„˜Š°°_ÁNWéJ§IÖ¡=6(�›©~5W¬:êIa|ƒ�P×ú¯~5-ÌD6Êö”ÿ´Ýñ®±¦RÚ§Å+Ô¢Cò7}ய§Ü}VM´Zf-.ærûèyÿé½Ãî”;82a,ðu2L‘°þÅÞ]U½­}ß”„€t+°Uº¤¤CB¤»[ºCiD�T�’.Aº6ˆ”€Ò%Ý ” uéû2È{�ûz.wæÜ«¨?¾ÿ}FgÖ0ÃÌóN}LhjYÁQP†P†²ÀG)±.±–Þm£< ¢ o2o2q-q-}'Ï_Ç¡Ü¡Ü Þ¼íßÇ–â’ý棬±G I�»>û8÷Ü'ÎÝ aÀÈÎùg¤Œ<�elŽ¢�´ˆ´È­#«')¬üŸ„XœX<ÐbÇiÇémA…•ɇ‘)£ŽNºOfqaX)”UZØ�³Å×¼Þ©vJ‹ªé Øóp­7mÑÁ\׋gû,0ùKº@Þ£þžð`Î|ów€}sXŒrÆp¤0ø@žü?»xž¦R[yõ)ï0šU-NaÍöÁ�{ Ô>À;k¶«^·n iÜ¿eúôœ°â¹áEº¤}:܉‹ ¢kÀíê$©Á�€ý:†V1KµzyX8jæ"Ï'>Ÿä£8¹kÄUíÄCõn H»œeßb4Àû‘6ý‰­‘źs\³Kiè|ø½;<²áMÉhƒ¨E–l¸|uþèó4Ñ °ŸÁfE j$½/ ö8ßÊ…´ª«þᯠö< Ka'ѯHq�¤ÜçC+ °ïe!E¤Ae¡B*Ëäΰg܆öèà ÇšOŠO�-¬¯šW‚PñæbçÔ¥ò ¬ŠŠ|a»\ ûulhÐï«ÜîǦ�áùY³i ÆÈnÂ}j§éòH{u¸elî¾ ¤ŸÑð)d ð#FB¨Þ.ƒô]LÛZÅ­:¡÷ÕìͰÛ©ê¢>µîõƒû¢cNÛWƒ~Ûl”¦ïŠ�_è¾=V“™ÓÍHšÊ.?Õgk£z–»‰ç@¸Úß8Îüõ¾Z ÚñZ.•æYRÏŒ!høÀ7µ£¢œ¶¯½–³ô»ÿ•M¬vñöè0©?~?J›A:#/¾é*Ó+-Ür¶�°8öÒÄtDô—mÆß¼ì÷³cù†j¸]#Íû(�JXßé*‰ßs0èÂ2ó#‹U{qk€´0À~ë˜6 @«£tF'¾;Ï�¶ªggUS¬CÉפ{s¬¬Pkö°“°\>£Å°_Û|Â?Ú$E¨i ¬bwëøH¥e½!-‘öÑ©þ|KrBeþ j+±5ݰßÏTp i¾0UI-R Hp_\Üdª+q½0K.¸£e–{£Œ±·þu7`€�5[ÄMuj °#h3æ™ìLLÔp|ëž¾@ø6+.cÑ×0!<¹,1x^ÆO {ÉÆ>+1[öÊBÃö뇧õ’ÐïT#’��ë( ÒïRx;á„Üñ¶A±<¯y˜JìñVPEzhéñ7zIÖ¯{ÉÀ/ßG¬t¶Ø.˳?¾ ‰ž÷‘8­—„^ËYú®ûw³÷ú$~ ]H—ì]ç˜úǽ•M÷¯'J$dS/æ¹Ã.êƒä.˜iÂöû™¶"Z@�Y¦Å†—�o{R�Ë®…·4r<ŠyÈK1Ë(…œD44ì–÷­;[v‡ö0E´²�í\Ò"™ö²ÈD ¬A"½¯xY²üx†€Òã�{Š;[V§qè0ôpÄs³i_±[™‚©\–Ãñ~ ø!Eç”|³˜ÔåIgÎAÀ~Ëî[1Þdö´‚9tvcÐY’ˆb »Ô®(BáZΜ)T-ËÏ •m£e Øïg¥õ!»r$Iþ’CÐf"Yúü´áV½˜à]§òÖQ%áåćÃ=aì¬Y�(wN å­›)ϵ÷L¤P`?§=¢¸ª‘Ð…B>¨ÈA˜¡«±'1ÔòdªÈ@Ì-¹žéîÔõFóû󡤯ûýŒ¯ª/àÊô`¨þn!=W…¦^‹(±· 'ñ¼ÏFŒL%.ì-—­¡sÔ&€vdí¾¹M¢¦ÕDö[ZDc܃þ^‚�WI>KYé§éDk©”${OÃl Øÿ„Àrç×’všD�qˆ>½A${°¢ž1o¹'xc€îòh™e´J4¬�qÀ~mDÍÄXë¿`…¬‚†}˜ý>õ�eânYÇuª ªXYìv#lV\É"ÀûYíÓdœ+Ÿ“Í{[q6üTŒšWœu †‘>”§RÝ[{Ì yÃ$Tð€ö¿0â¤û¥oòãMm•âh˜�ñã_þ·ß«ì×1ŽóÏX•/äPô»› ëBœìªŠ ç„V7†;'Œ)ê�é½�—SN›òm̹Äx cYà˜5W°4o_·Fí§Xћ̗˜±5>×Kz�\C GÀ9Ü ¤#ð¤ûsB¨· P¾Ì,ë½ûóÐîûˆ…kôBN›B¯åï¼ñ ØÙ·Ï\w®¤ëšet“GòÇ/ò7:ÁØck‚'ò¸åÂÂêÙ¨iFìGš¼º£nÅb7ä=H6hd:…½Tt{+9f\—*<&›á¹ÙT†ÍBÀû^v Â.¨]È“#»öœŠY:‚¹Ëo`0å.Ôâ½–j{ÎÒKáù)Û 0À~VÇdÈUÀX%îÚ ÕÀ~ÍÏahþ=Þ)ê¼Ý ;QAÎd*Ì[=€ÍœÆ7sRÛ.~©³ëzó0‘ÎöŒçâj²Þtú«ÚVJÏÔêèߣ~¹Óåß\K—'ã²Í ¸ud)¸IˆAßu¼[€‚ï­°¹õ¢Ø9ùvIÜìAzP³4™‰º6U‰¢IÑK&cÔ� ÛÚ²š‰l!® ú�/èýwèsúÐu7ô=äe]‰*d3^YßÇ ù�ôžvùùÿû?t�_Ç<·Ì?'}ñ$1KÕõ'¹Î·Â´ÂÂ�þ™ª�`ùLJÍݲ»eayïß-zEÌ)Øð(G‰[²¹sj¼V­ãh–cMœ„¾mÌyÌY¢I|�)Bï$Oe/£Ÿ?AHë8©Wè–?F]æ>JúfúæŒÇQÆ@c Uò”“p C¶"´²ÒÃ<Ýx¯s¬Ž›bø¶<ŠŠê™-¤ZMHïá'mø{„¸ì2.èØ_Ù2|Ÿ±óG‚fcBK¤ö'æQ6gé ‘_Åd·I \µ“¢i; ÒÜù”ôÛ kV¡À«¡³ ˜ÈU(þÂã’§Õ¬Ð=Z¶Îš�ìjøÍÔq8aAØmÖ›,Çã©”>þW;V¾ßØWaûºfåùò]¶M§ìrðp£ŸOÁ½äßÓjVèµü¨sîæç}¸‹º ‰íU&³÷ºCžéÐV*Ø< {èÕ§ÈÜÆG ]™Ë0Àþ®�“¥*ëÔ7¿­™Gõ6kµÖƒþcã,¡0×î8é¼áP«àާˆŽö0`€ýHSu~ID \uñ)GÇäLÿ¼î¹Z ÈcâÞÌk�lïßšô¾è‡asSõzØÙ²ÃŠäð4Â9Ò¾VbÛM‰WŒšcŠJà,´ñZQÉömÇ[‹ia³€�-jwTø¬¨f÷’x!#7°„Gè:#é€ÒA¦Z~“ís¬ÔzŽ$7 `€ý] ºgû:K�G0ÍH³ä²IW¨*î/)Ãë^ŒtH¾¹Gìæ„ˆN)`€�5kÂp7¡´-‹ýˆ/€ï*öÊ­ŸùÁYú¦ö[¦">øYºvá x: çªøh& ;‡=tϞũhÜiæMüdΜ=¢è´>zïu}¹©ž)™´ðù€íîI9Ó˜ðÒ]ÞŽ»8iÆ] üÑQHßèã¯ÝÇ;}Ù{�ÎÛæ"*ÙË’ÿXZ~ñ´>z-ÿí󥞴}\;¹Úþ×'�R.&¸Ó(Q”ºƒ(Ùá†pÈÙÚi˜9•§xÃÍìÈ8ç›ñÄìDïé¿Ö—É¡T‹B,mÉzÈ4/õ ¿Ðå%Û…a.™s€ý~–95â—[Š`€kH¹ìå³>ŽÞ(ܬ³Òõê�§®g m`?Îìjlb�ž³2®Ri8/ˆç6ë„ ö¢ð³\ÄF‹8x® ¸c{cI6‹uk°³eë  1ü®y¯Ï³ÑL؉a3¦Z­Ô±™˜1ª‘*G \½I†ØÙ7D: ßÅøÒjiE±>«± 2οóM›g[Š_oYp�kzަĨsº6}šŸÌÔI†Õæ‰~wæRÍi50ôùÂDá ‡­ä�ºgÊq[¬å-0UDªùŒ—YCëdõÙ"߀?^£…ýטåë8÷x-�ZCCýÔ}¼B— 11>q)žVC¯å[÷,öëX>~¬)xk!D8g”—}jç;ùûÁžmCĨ® 5u<Ï^‘b±÷ÎU€ýœÆç«zðÊŽ¸Ì™2B¡Á;fÀzXh®B37CÃ9e4MrØrÙv:­°_Çú[í¼‘Ýˆb=Iïp1fø†ÝB|“9 ŒàƒW_Y7‘À_lÓŵPk`gÍË”ÅÈŒ [°4.¥£fšpÕÅ*ÛaM}¶èíú÷)¡»rlÂ-]<`eJÓÝpj÷1ÊõnÅxÒjN¶¥ÔSpë7< *§eW«=·tàÔØÏi÷3Þ>ÚÄð)Û¹-T‹çÛèGÎ;´ãK21èSÂ3²æÝvj%`€ý]Ü3ÁC&¥,ÞúIùd„7vYyýYÒ|K¤žÕÌlæ»QüI+5(€�-ËcŒ3DVM4ià»Æ€+bù!Z…# ’3�Û¶p›7¼ßã!q¬sú‰1`gËLŒˆË8ÖÄtLK7¬±U‡ž…§´'8¸<:ØŸ¤•Ç"»¼ìûX¦Ë jR0‰1–¾›ÍÆøYz‡ë,Yb"ZÏþvá:mp¤°a~ü&f,%ôløŽéÀ`½S ³d%>ÿ?Ø»ïh¬û>à—•‘½W•½Â%{“ì½wdoÙÙ‘K²•‘™]$#$‘½ —=*Y!¥xžëÈyn×í~<çÜ÷SÔï¼ÿ{Îùç8çûù|ßï7‘{Âù Ù0âYs•€{BÑC½ž�†,)·<ÇõdxWé�ûÀ¼Šcyr+mõ˜ û|!€pÔ÷sSÙUAåuLÞl¡ù×%Ï4F¬åGÜ`pë�ðïFràRS#7"sªŸ�¬‹’=Œ+bI™ÆC›è.ÁJ�ÞìðÛ'¹2zÂ¥B‚Ó›¾7ÚS…H ØÀt¹ï :¡4Qƒ.ùD uuØßµK‚©‘å±’§óˆŠãO·0“‚óõׯ@þ2!íA0÷†b+ÂBbÀ; ¦#NhÛé?u0Œo~AÚ��ÂL¸a—íæÌ6‰BVAÁ‡9cOoÀ;l†óœRë ¡4ÁòÒ+1ç„K'Óèã¯ë¡_þ43þ· Ú/1ñ€„š¨0ÀŽ‚�­3�É‘jB»o\õöu}ÛdJ…Ú¸¥ÙU"-\Ûüêºwبº³þi».Ø`K­´M‹Õ¥C ½˜ác¤„x§\Û½:N'ßí–:Z± ›Ý)‡ýïß9ý~o\¬pcôæ�É�ÚMÇåœäݘ]ÓmÑm±4ó`e»ãÓÞÙýsFºFº®—®_=ãO™'5<:ð`ˆ¤ÊÍÀs!ÛéêNRk8swƒ ؘ٘h�^ˆ,VÕ˜Û T–|q7—ç$ëw’ŸJ€¶–ã„GÝLÝl”÷$÷¤¦¾OwÞ�W�W}qðâàø“Í쿎¶¦¶fâ4Aèí´çº6<Úßv²xrã+—ßNðüÐd;�ŒM‡ ÿÉиN5:<A‘â‘ⓟD±4|dÃþ—((:€<@ŒÍˆ)¨r_w_§`Üt±³û þc0OïM'<…ÑT0*âÜÊðl²uD_W1>‹¦~¹äAs+Ä;»¥«!Ôvùw1M|Õƒ}Ü›ÓV�nöI©ò–Ù“–ïóMãÙ½s«Ê�Z –χ>j&~°Yv¸ò”-µí ¹b-‡én”£hµ -ü8ößn Q¢ozÚô\ʾ…�¬R‚¤RÅœ”~•ÖoD+TPYØÏ³ÅF‘àlW­EÝÜf¢9”Žó.¸ô‚çÊgì Ä*zAÁcá�¨ô%v/û1汘è�ïÉ`ñš.óÙ½ò91¤ZcíÕ ‘Ç'Äe Ÿ·ÜýA·Ã±ì°Ù¦~Óš´e}â‚Í-Pô}Ššû¶'ØÒ¿±‘LžQž}MߥO�ÓSدc85³L«§F¤Ç�N¿ Éì¿”ªv–êq—þ0Ú3?P‚kárh9`€ýL›IzGƒÓÂãÔN0aØ«5|<Îß]X5®5öšY†|ÉY0ÔäÃ@ µ)`€#Ÿ•%oP ÆÃ è÷¾PíÐ×ýnJ¸E›ÅGm^“å+®Èø�ÿ&N5`€ý(ƒx< ‰®Š•ÒY¦Î9S4‰%åèQ?È�päÎvê¨1³úŠß;`pã>~'áÛ°Áõ föuRõÛMÊÁO$%N²ÇEúN…kÌa{•ÌɧU˜Ø�2íæ±Á~›ÂÊîMO”Š[2µfÐNž|ùòKKö¯ÌºLx2X?º¥Ú`öóLÈ²Æ —¿›>ϳá�f†•½Ó»ZdP36éÛ”·úJ%䎄"÷úZöëØ0,Ì�Wms¡õãÈܬ³í gBE·9³×Lu–›°¾ Ê2‘Ð@ÆQ42 ²øQÓóe�¹�Mg‡¼c⾚›-Q':SS⻎¯ƒôIÉí«!¾m6Æ2pÚ5,ö›#;ác.[¯ó ,µ½aºwß�™9lÞ9"1Þç{pî½ûj 8;µœ¬,¾äÀüfÍ µµ ë }5ÄZÓßþW6¹'‹ÇF„iÂɱ:-r9EÈlV¹êŒHªÁ ÈÄnÊTl”ì§œ'žÖöûY…•zs=Êæ%ëüX=Z¯y_˜DiÉû{XôڌӦè=¼0DÓ`GÁºg¬#pš½q©.Ïq䬚¹:6”›0жšž¯*3šÝVÏk÷Áì×¶�¸çôx=cñU¢>“¥œ‚§”² 1!&õ'uæ¶a„w:r-ûýL‡XšŠô8½]©%2êá‰O\Mã¾x³lô¥îF¶E’Uœ/Ÿ5öØa³E’l¯Ž·qòN;�e±õ—ÉÉþýîé‹òA�; ZÉ6"A„‹x’Iƒ¬n!ö’-Žr.|óŒe–]ÉNC’õ’ˆïT£Ó�O˜h`³o2{CÜGƒ�Ñ Ç ·³©žKè(/ÝØ§—äÝÛKF}?[/¾ÒÓÎwã24i.Dá ^±–Ãt®ûw³WæÔaó½'Ý|ßr NÀ‚µ¶m¾�»£pûó"¬ø ò¢9H�ÏÖ°ßÏŒ5q"šlóí?Y„v¥÷û¸ Î?gQÖ,Æ\J^Æ*ó daás¸êØá2wÖí,ÙÚ6Rð±ôEZZãe™É,d‹;ì¡òU…˜êyâZ7†ü_—v¸¬É`Ûc8rÔšàSë7Í>m®jUn|Ï« ô‘ =ÓF¨¸å”NMy ÀûuìÞÀŠÕ'î@G¤mo?“%õˆDÞ›'» £d|«¹ó¥êUÅ8”î99öûYå3Ȧuz¸âð5Üæ7 <á·�QVZ‚¸P}§‹×°QÕäGâ<‘ì°Ytx¬Paã…bKÍÆ7R2¤L¹œ¬?ë­ì_Å.S÷OŠ0�ÄŠ´÷­^KAYYûŠ8ÈÎ=Ï0k,¢•”]®&[ìs¾½s�4¢�Zt ¶j}CÞSŠ0¤Ç@Æš Ör˜ÞÃû6ùÑlžiŠ�Â'`URªðÌÈúþc§ÌAJLµ<±çéÀ÷Wò1b¡€M»ÎpÆàv/L“Ÿ"ÏÔà«Âpû­ér~™Ï¸.OŸk±‹w;‹§4Øïg¢�"NÏÀbÍ7ËØo2šµËRKPÍ…|„ ©Ô’ _ðY>Æl `pë *j•µ©§t[7Ч‚…I´œ‰¢ÞPr4Ï1I2Ò©È žAúˆ`ÿ“¢W;þ>ýK«¬1å»§è´×Vôó†Q­¾JH±} KRYÆ©Å!„LökÛ ;ÿý žU"¦Ñö½WÙ/îlæÑ¦òŸcªaJQ%êºDÄK¢ø0ÀŽª½›Jõõr~å"'ËÆo¨h5�ˆceÄ+õ­原/  fB °ÿ‡Q¥_­|Z’fã¢í‘Ê:ÄíµM–öèŸ~¯°_ÇøWì6kªa™söµY6A¼\?@œ:JŽôLZ14a²a¶,gE4'ýøÖ'9HšÐžØ¶­†§íó)y'ìA†³©…I™Q«c/i¶2ÈÍÈFšµLÄouí3'äGx›ëûÌòY°Ä`1ÎÕ9HŒÁK(ÇAsBÄZþο€~Û0t?�k ³Íë£K‰I[¥jÝöB�±p#2¤Ÿ,R»yó˜™e0À~¦©ë{šÖ,öA_�T£Gg²ø*e?Fa&!M˜2Å%ßã¸oû›ãS`€ý(; å“0..T}ÿ”>› r”`SÌÂbúŠT{ðûlgäcaЗ ��÷¼ì¨ÚG‘þ*åHïG¢F¾4~K»ñNÑ ìb³éd —�´H}ÒwŽè›Ýµíâ÷uö Ó`a.šÙþ‰ò"CÞó^µ¶U2³q„ÿ<ö÷;½±ö9s­\�Iž•ˆÙòë.ÐðS�C¼ëx³‹,Ø8âÓúÃrïÌ‹©³[¹ÑmÊPL.æ'ÙZ ­šA*yc~`"'‡z.ÚùÔVÄ7¾÷ß¿ÓG\w#ÞC¾mqî4Û“Ê„™Gx}渚HÝC?оµ¶7¯4èkÓêðÇœñÜMÂÕÆ­Ýœ‹ZˆZL�Êõ+ï›rýÒ÷Ïi"o"wãGkDk<�'à<+?<ŽÌðtæ- :Â3�Stf'õ·Ýpw3ô��TÈ>´ˆ6 ß~7±ú™»IÊõëÚ‰B¬Û1÷Ä[uðÐVÑVÃs7殂Óy×ݸ-°³²³B^@^¨v*DüuN±�b{Â59øß3åͯñT=–�UJE"cì$€jðø>Þ‰1ªÿë2g+®&/¨uUÞjà]ußEÀ; ö�ï _bø’°þ¤6K�ÓöÝÕ‡ Æ3*0²&\~‰ðØ‹Äü9Ї/;ü¶FEOit'­!O²É˜“6T&î܇J̇4/h¯ã’‚®Gtr&¼L+·}Ø�±©••~î™ÿž/ôú$Y–Ï«™˜îº@ëõ¤Ì"ߣúS\tÍÃ3 °¿²¯˜¨VÞ ämV*]·ì�Ó"¿Š©,~Ö¤¶ ÷5NObí.͹"ªeÞ‰¸f•Š:;{›ó1Vx©tÄ„âAkVÄížÉ{WÕÕ¸óYØ(Ò<ÈŸyG� <“­¦G±�Äê¾8†î³¯Þ»fþ~.Û¹S@u9f¤%,¤ô–YæPèAkVÄZ~ÖwîvÇC„ô‘£S¹éLx~ïƒÜ5a­Õp¾ÆÔ�¢ÉÝ)æn„«-è`׎©2Uõ˜Û]4,fz^°ˆý$€}¡e–"¢šÏ+Šj‘R„ľQôÀê¦Õ­>ÞHEVZ+TB °¿kqÃþ.�zÜÄ9— +NY÷Ɔa“Œ“‹Ðp4¾ÄÏ…–ؤ|š”1© °Ãf­øW¬]ªRÈÄÉ|åêü¹ñÈÓ™ÚýLG¶¡üdþ)ýLDÿù±|j>~7Ä>ž¯@À ʪÇ6˜êÖ[;¾øõñˆ{¯k˭ϸ2iÊî¹à M©ÙT ŽVî öÜ$αêåKJÄØ§�?··�÷ú¾÷$®\üY(šRªâk�úBeõ‰ƒúxÄZþéïKY¿‡Ÿ›òÊ:qû ‹CUò#Êð1¸‹…[@{Z$Î0Àà6/ð¶ÖF*ç:$ëoÞh®RȨ—ˆ^Ù^�Å5§TGVæóŒ7"¨r °ßÏò§GÊS*Ñ,H,É–½Ã�Ö&p[ÔcÚ4’Wzë^ˆõ˜BxXKûyæÚàœâuŸ—s•ÉÀ{^¾¨Í‚þKŒçNüÖ} Í/.’Kª¼ëc€.[kî¾�,æ›WÜxÍ2Yê*GÄ™í¸Ò¶¶å Ð£ÑŽG;sžñ&:`‡ßÐY¬ÙìBÓ*ë•5åÇ'iþΙ (‘ð"%:2³e‰÷‚3oY*¬g×À6%™\=´„-7q/¿9ÙpÐñûÂ;Òyë™_šîj§®óV·#=¦Ô-á<ÅÛ¤jNxJ¿p–ùÏk`ž½k`ÉN-QFÃÃÌ"R'Ëðß j´F¬e¿{–ûu¬„,ņ~}"]8&Â7ýåÝ+XÿgKôÄÞy=a}ÒÀ—2år¯¼v4M05Tw«Î•ªÊ›1^£-8yÈiDêm�*AѿػïxªÛÿàǨ!޽2*‘}ŒìM2’�ì½÷È¢df‹ˆŒP#£¨Ìl²gIF¶P ßûÜòøåÜu»�ûû­£>×ë�óx<ÇõñÇy\×ûó¹®+CÃ5u(]nÀjÞn,½ °_ÇzšìýÀdñ>¬TŽ|¬g=Ïì•8àOTSQ’0z[¸Ð¶�oú©1`€!›…(”Æ)Þ|8$aÉQ7{+Ó”¯:þ¢=äõËVÐz`· Ž;Ï*Ú,åaÀûž©ŒuU;M�¨,††Ä^{Êáüñ;¯WvÇPf£1‹_GüîNhçØîdèº'ºg)žÔæ[EJé˜�o±oq]/i'i§š<<8DF𼬄‡i0rL Ï9 )ƒíh³ò*ídªcnln ä!€Ë5Î^¿“e£ÇØ;1Iy€½H›A‰“��3<]<]<6 ð‘>"FN\±Í9Òc¤Ç>å|Ê9?göýPtRtªEbü}J/÷;ØóÁÃа�b¬£JÛa ò“ñTЏûUž±‰ž(�gZ@pNpNx6¿@ÙE÷ŸœÎ馺€¶ŒdBФJÎïi§ëÙX“ú¥÷�º´>›Ô©Üúå©î"r'7x"°ËìGY˜SÕÍÒpqÕy�ô9¯ÂBA±éjwD­¡i6Måz&ŸQ¢Ú{ nÐÃIÑý7F˜×ˆ.Ü®>ç÷TLô(³väu÷W�JÓ¾X.yS2‰Ez€ö£ìbm–pO§Ùý’Öug´¢[’z°fŽL™1ãYË7z-:wW̰ûyÆoTî€ÃÓJ›á\5§|ÇÄÒæ„E*¨‹h2~R]>�ĺ  µÝݰ_Çúû®9r*®¿kX˜š°5£c�î mÕgp+‹ÆtP—D›ÇçïÎÀØ�FL§`H5F_?Òw3kn’±nC¼¯æ`Žß|ˆ¾:f®ésmwlÜ^÷ÕÏ6:Õ}ÜþZø†53ä1›¹Ë™èSí×.Ý]Ò³ò^O:"ÔþÆóàÐÝ÷Õª°·ûr´$רŠáíð ô†,̽î«!ö™þ÷¿²I?�1  $îÁl6¼Ç*Hl¶ÈöD‹°Œë*�Ã9r&2æc¶#ÏŸöûY‘É…ÚJ´ucÍ+<˜m†*ãœ3/u‚Ud¼œ Û!æÞÃÔñjÅg{©:l?Xë˜ivõIWòËS,é‹zöÖU…:'…tÏ —ækMlµ‘–]Èhtök›ä;Ûä(5m‘Eüùô¬çdRE²¡þ:•ÎÊ�ªNmÆôA’šîöû™*�,=åqr£|-ÚõàbÊU¶êá"÷#L´µÌsÄJY»jžu²Ù ašKS�Ã0I³È(×ôÓèhÏ·öé vC�â²æ3‘z†&�ÃGäkr q.Y×m-mÇ=}2ߨ%Φ×Il¯¹$â9Õ‡h†Gt”°˜×éü\Âýl„YÖÜJ#÷®U=×?ò�¹$çî¹dð—µÅQ" m�vó¸C.Ãb§üe÷šK"ö™ÖuÿnöFŸâÚt;ÆQ÷I¶ž‘>?•-³�ÓI²·³fúr=QgôAXŽ˜k¢öû™¶2vPµy¦åНa@Kr§›#ßtý)Eå\ðlÜøÂH†ˆJH¯×x!`ÈeÕ[Ný×MñV6”;.Ò±•�‡â:_©¢½N×öZ ½*-ì•+o`¿Žew/˜¬B}¬Q¶\=Xtf/ÅpFmÑ –¤s/ƒfŠWžf‘϶ղì÷³’š°uEŠä@¹þ«8µo£9ºok£-Ôù²¡»¿Î]Æ’CW”ˆtöA 0d³›�áü÷SOžÍ5R~öV\’ˆþ+ãÏ:+ûW±Ë�£‚ á‚uÚË�«ñh ËŸëi÷ÎÐMh *ÂĤæËˆgš÷ª ܦ8•ŒaH.ámŠÅÇ7ÛV^_IêJJÑÁkÄy UµÜã\ª:(„¶�½ TYk"™àòñuîÝu�Düí¾x_ÒØ¬p÷_"¤K òÞ«.€Ød:ïGØèŠ)—~Š.7¯YpÞCÙ-Ó�mRzÈÀŠÂݶ¯}–‚<31Âa€íO»AwBãv;&MŸ2i†®ÆgÙþÆ[¯ ¥=RjØ.¿>]gåp8üˆü0`¿Ÿ =î:>Ö®¿žÏÌA§©×(Eî'ÊK>忆¢PAˆzÖm­ÿ ƒ)`€Á­% 7§Aʬ’ÌaM+Šl˜¿/ÐW´îD0Åykýt�X-Õ¢¿1”•€ö¿0qZÅÃKÉŸ¤LÈæž¢¾º žÑ�nÊûYT¬—é=M¬Â2.›å�ù8Ëj>`€ý(c‡q‹jç Ü?¿ôœ6 ¯do]ØÐðµ§x£ßRš-êÁk°.:ŸgÙ.€¶_m�%G w‘l }…Jÿw"�‘Å�8§¨§Ï Vw´œ†ÍLB°2¶š.ôvgl;óeœ¢ë'ÀF5Ñ9R˜C¨ÉyÆå{c[y=3køû±¾ìé�ù�5×çÊR¹&DC7=Z³”|9Ë[îݱxÒ%†Ç£_gv}'„Õ¤º;ñf”8-qÚi©ÈmNV=ÛkÌŠX3ÈÖY²?¿y&kM‚Cõ#ç m–sœÉëAÌná'Ÿ¬¾qŸ�k÷˜UàË>¶Í¼ççCê®ù?¼¥—Ұט±/?kÝ…Åaþ‚’C䪯²œ7D:Âîê0V(Ù^eºîÛ‰¦ mvÔ¹Èg`ÿÖž§/mÓ·0ÐÌ¥¯ÏšÁzêÍü®n‚40”o}ƒjʨ¿Iô“�¤Žö`€ýL»îúˆŒDâ1åžÖWo{¦t>Å……�we²·q½©7í*îAáò¸ä[ rÙVyJd:é$Uw¹Ýª€ìVÍaeÚ,ì‘§Rr�Ü�ÏΤEÈNX†\Ößâ¬ôA9XÍþùtFNpˆˆÔ?ü­œf+õ¥²3\På—ïËñ£Ø¿µÈ~/»gYjPÑtcÍ¢c¦íá×°‡I©XžuáÞƒåYxǯŽJꔲY®§éI»ÒøwÄ"ÄîÒOï�ò³ÙZúÉ€îSòÃTüˆûxþLAp ¤ÃʇòÁ´5XÁAûxÄ{Všê¹’hòõ]ÅW³,B}£Üéã´Iœ é䋌ÀüÊ>þÌþ}¼óçkOâʹ…ƒ($‹>eªÿV\J}Ð>q-ÿëû�½X{„6r üÏŒ;'SÇÝ`Ñd(ÉG¹�ÄÈ�:ÐGLÇׯÂ#xqB4Ô0Àà6+8ÝÐÿ‚TξOÆÃ¤ÆD%›Q'£¸931�kF©’,ßõ)þ �ÊÀ~=˘º�]ŒnJbv,|Á%â6òÊ(^£zð‹ Q‹�•/ÁbF^ÐÓ¬�û~f_míüˆ—s‰ ì2+ŸóŠñ [ì457lûÑ��«çæU3yׇ;\¶ÒÐ%æ–ž[s”/ˆeì±½ˆ3Åv±ŽÏŠƒ\‡æb˜8ú)YÆ À¿a°X°Ù(øÍÅW)kÈõØŽŒÑ þ›g|` ‘· %:2ã‰e¡Éi–"ˆ×$âý|w‚NT¼;aÃm�f¢NMSzÐý|¿ÿͺßþžÌ?ªBl6îË2ü÷"õþH¼Wq2ååÔ²;I}•ú[‹Þþ�?‹‡Å&ÓMÐMœ{¯–÷$=¼c1ð8‰ ¨ËTàq׿ÜM‰_Ãm¯f¿µ›k7ª=cC­pØëHȺ÷^��оÝT± $zQ^¬ðÒ”Ó”aúðž„= «»Å½±W  »ž»ÞŠßŠŸ—xŠà_7Ë7Ë—g4+ò÷U¢°ÇJÁ hÝíÌuŒ¨ÝN2Tp°šk)œ}ÿG¼3¦„àÍöÉØÉØ97I×<z³êŸPoc/b/"€�Îõ‚'O„lŒµp±p±2³¾,Ùa‰ðèµRìSì÷T–‰yI\´D�!^x×Þ¯>hO…xÿt¼Túõõ¤�º‡cÖyK›‘+(´ó8OðÞ¯S5á ¯¥ÿ�›åÏ{ªÓû÷TP’ݵê ô2÷ˆJÏ'$x'¤qО q-_;G°ŸÇòÈ¢-é×g¡RÙâüïøé^÷w4Èèœëˆè’z½’.”{íRØ�iB1~ÚÛ•ö”%.ŒaªÑ}¢ú® JN—©椃]’‡S//\�Líìç±Þ{,wŠh/NG!Ît¿�óµ}R辤õåÅ1cqb…v�B³ÏÌì°Ù=•’(µ ÇÃR6§çÓp2,„ê¢/ÚM|°iGÚôïÑÄsXC�§> `eš“]�Qu¶o:”_ ú};£7Þš\Ï l(Üp‹©”•_çÙ‘ùmçNÀ~L£ÆØJ~w�À·dãx¤|Ð3R¿ÆÛt¢Ÿ¢ü¨Æú�ce¼Â«_~L) °k„Ó¤X4Œ…ëï ‰F¿Åº¸ò0a&ät¸±íÂ,žkb ‹ÕØ€.ËåŒ1ÃÒŽ·h8ËÍA"}ùM¤–@,{†¤uö’hh¯çÊ\—´u*`‡Ë,Ì)KVÐå -‹W/\!ÂÐxšÜwÝõîöÖ8=9ji4Ö Ó×}€}« "%t]ĉÀ ¦‚Ù’¹ÛmŒ¦÷ &‹�ÇíþDö1…58\Ê,/v�0úOÏz;Zöõ×;ò(–“‰EðŒÚ4F=Ñ|6áÉM·{ÍÑ5Â$™l|t‰"i‚ËàV ù*š·¹kr[`€ý[3ŠI¼CXxÿÜÉtPnØÉ&BfR¾ Ý•a$ißfï~Çê\Q61`€ý¦%NdÕê1~¦ßs€Àä¼”#;¹±Hõ[Èä‰Br%aæû'À;l†ûœBó-‘%áÂük1»psj¯Xú°»:×Ö&Gžà•Àº%F H¨@í€ö#w%X:U²ý‘AÉô›ªcÑEj#îÆ79@šxVï[Ôµ1ãÙ(Û“ÿ×vWÔ«ÚŠJi‡–¦M‡ìw)ÑU_ qΠÇeÐÕv›˜€EC·ÐãÎAsÄ3?Û¥J¡TÖ¦± ÝÔ}\lb—ô CºÎ�½UyómH ¿r÷þ9C ÅîZ`fÏûV5"Þ[.\¾QËóâ 9âZÓÙ(?¢•ƒpm¶â„)06�,;ÌSà ¨ä!«”0G&ܤµÁÔ GÊ,.ìûÙ\�¨OнæœvZhµEö*½Ð™Â©B±¢N$Ÿa/4zÁ<ë—€}»>áBàÄ`ú†.éYVáŒr¹ÁÅ¥DÑA\ÛgÄùÕ·=�âüqzì°Ù¦nÝÊeXãúèyËHA�ÈËY‘S³%l±‘ŒQ#Qp¿¡oÓ¥J î(ìç1ܲ)¦¥ƒRÃÈÔ"ïÎú&u›Ç¨qSV´�) ÐëÝ‘Âí³ü qì{Údä;ÜÆÓWš Gõ:5ކz8Ѝ†6%áö¿a–>6o'ägø¾ÇËÂ0À~;6%s¬ZÑ“¼Ûå|¬EWû½¿½×6m2?•IY²›¸"ã–@n)`€}+ƒ^/  *¹/©µ@'’z*g,Š™ªCU�(aË“r¥¥Ìò 9¬³0ÀàÆs4>|k|w”™}�T=®NÙçÙ9‰ãì¡wÜÆý/Ìzã8çÍÈÇØ·²‹ ™b½Ý–ÙÅí›N¨E¤Ë�a­§3ä'�™ÏÛ¼6n3<�Ⱥêc‰Ø÷3a³2<�vút§êw‰›+§¬ËQ�pH§£§u•òŽÙø¡tº™öóØ@ÿmG^µÍßšVg¦ì¬&8ûÈÛM˜�'KñDt¥Q@Â=é˜?¢‘1¨˜’… A™ž/ ™¸Z¶¶ÈÛv ^Ws°µb0ÕE¼kùÔKßuÐu5Äwí ³ôœ´¿}Ë–�¨‚ËÊY6œ¥¼ó¶öÃåaãËž›ñG�H ¾rÿ.Ïþëj{ç–Œƒ³z›L½X(K°|¹�çtn áï3ç°¿�,Ô Ä6Z¾ %g/ ò 뽸yAž Ï2ÑR|ÈëçyËyNKQK1ÒúŠÓ§Åhx3,ÙvðîÁ[Î o¼‡·Bÿ·zÅ©k{±[€ @L5}0G^­½š=ù7ö²Õ“ÓØ Ex89vhnmmÆS<¡>¡>7îò^˜`ÒXÒØùŒù »P™¿n›a›aÒ} ò÷Ý%ÌWÓ‹‚ Ø��Jvþö­ÝPij5•³;-�þhHÕ¡ ïyŒ`»`» 1:ŒŠýŸäÄåÄeoM†& !#æÃ†·‰·Éü˜§HrXrx]îËžäîoОp�³…³ÅÞç©w÷ót¼8×ü2óÛt°/ZSöA×i?Û‡éùg6¹gs—†EhüÉz±[MÓ8EÉ,—¸*õIJù~C!vP¦d£`?a7Z[ دgEõ†*ÔMs½›Ø¦šoxç^jÊ{\7í$²ò¡�Öyr¾�¦0À~kŸ´À­ctÁ£¼6Ѻdlo[]hÈx¶ÉHv¤$_j§ƒ¼T=½Ù °ŸÛ|C³KÓ1_uú*¥fÖRÈ)ûV}8¯8¦5³ÑOß’f دgZÄâ°T?䊄f¥LÔ;�O¨×¸êFŠÜð§Øè;ê[åœ+á|U_Ó`‡ÍæHRœ[F޵Z#™åZlŒ�U |휾@W´0>[!ˆL 2T$çt©7äâl¢±ÇVî*ÿ,c¾Y[Ô•¾ëçšMÜo.¾á'o¸ýÚÌ\ÄÈ`ƒndÔðû&ƒ�31ÔqÈÇzù¨ÞN ¥çs -å�ù{_™MðîŸM~~¶8L|±£ùê‚:ÿ½k°È_…ƒö’ˆk9LÏuÿjöÚ„êöl'æq·i®ÞÑ~ÍË­3ñ qYÌsý¹7PæL�Ô9ð­ôPûõÌ@7 Î*ÃfÕÛÔ¯-¡ÛÕQhö9‹šˆF.Ö|ÔvþuA þË7m;\æÈº�-Sþ‚”ïHÂ-.­Á‚ôX2Ši<»Ÿ|I6–úhº¸æ½>�7…€.«ï\¸3dA¸Ö´¥Ñu‘�«T•‡Àéf5ý†Ž }´9¥ã.‚ý€ý<–Õ³Yãñ²EÞqqç0œWˆà 9Þ¦(ÍàVÊ“!Y¥*Æ¡”e§°_ÏŠë¡›jT þŠ·ðÞ†Ÿîñ�3@]lôæBs›È]ÁQDS“ uòB °ÃfAþ÷…³“ÏçšiÔ¼•”&eJãdý^ï^ÿYìU÷˜(óà}ÑFƒ®¢[Ѩ‹+Ÿç)i² S¢j°s2 ¥ds­Í‚F¨X0M)¥ÜÃ-p„„æ;ÊžW‘»�Su šñ¢·k•¹+'ë"Ý£oâî@ªj€HÇ8üÊ\€ÿ\ ´»Omðv¹›ï2…(CB0tØó ¹âZÓû¿…�­Zð™$a¢ò Zæ=V¨×·xTq%©—K-]¬ÇnÂk9àFæ}`?¦Ýe8ŽëĦë× O7Rh~0Q`*çžTÏumâL£u˜ÃÑûøJ#€ýzv¶¢'àädÿ}“Í|v¡=ãfJ AÊßU(²J9 Êy×õ�#Ì€·6¿¾œ&Ë* ‡uý0Šá~o‰ÆS�T”lMR #õµŠ’|&‘WÑìÿa’ôjG—6šd Äïj1ho-ꦠY~’8×Çöž.Re·—: ØÏmÃý8˽ø�,-\ÐNÖë”——ã7ÓicÎ0•1E«‚ÚÌA¼$Š€ö£Ú»ñ·³Îv¯¯Ê󉓥TW Ö!5 õˆc'†)u­â ›Íô¤bB °ÿ‡Q&Ü,®Í‹µ¼zñz k�óYìS¼O©sT4š:©��ÚÜÔæ•2”ï- n‹ÖˆÊŸ¨a›pv½0«ƒ:ÛW Î mÏ vŒAê°Ø½±’šž]�v�ò–"²!¶zQvúÅÇòWpz�ÇóƤ‡®B޼¢ÙNª>f|Lp°AÓPüA;è+sB�¯?ÛTèߺXd�ÊNG†v\êxØÝƒžm"‚¿»–wÓ[rKý2ˆé^¥ØÁM{ÕËèn³º‡ˆs/)ë`lÿ¹‡jÕ^¼?óþL>¼~§15xüÛðâ*MŽ®Þ†§5Ù™¹›¼ŸMö^�ëæ*æ*taYÚþ>.{M�Çöªîx˱ۋÔZ<çQè <[[T7x¯ ^°n1½ÝK^GG’ÉxþàTÖ_'±$±„óôÓß—‡d23ï±Çn‚篕Bw‹-⢺wô²U¬ý×Û…o!ËiÚþýgLe2R°‹}úŸ¤§ § z�5–56K1Ù¹žž¸Î;fXøXøÒÜ_vÞcW“à-µGËFËþ÷]ØŸgàõ>½¹¸7}å ÁàW0ŽƒæÎˆŸíórÀ¿} 9žL3ê·Jï¢  Ž�;KÙ´ãŒlêÒ£ËV ©çcf °ïiêºNFes]°×HªAC“ÉüÅ2ˆ‰±"‘G�˜B£²8Y½ÁáXË °oeÜ0~ ƒ|‘lÕåZúÂâ!ÂM1SÓ‰’Í>Ë)v(GnÃ^1xÕ`f9Ø�j£„9–(;WiÀ þX3ëoñÞ«ÞþK Fcet\–R¢U‘} žÔ³o÷¾ÛÎ}Þ·Ý3òᢙê-Ì!Ñã•uþ«ï¶JÆ–¶ðßÇù¼ÇÂþÊ3üÊ¥I$|SÁÛîí™ÜäÏbß|ŒMæc°¶þ¤Ð%ëRQÌÔvÚØ»ïpªÿþ�ãÇ!{dTvÈÊ !2"{†cgeGdu�c••™!9f²÷(3+%d¦(óþ�Ë×ïþvnßÛ}]ßû®S}®ç�ëêºÞºÎŸ×ûóy>­‹ñxÙŸ§k±´h¨f�ú’]µ¯áeœKlAþfòóÈç>�¯»‘gÔ6¹§[íã7³é·_v¦*6£"ÿ=˜Òp»À†@ôQåy·`}É�u¯-¡„�;+¤¶3\…gÍÐþ<£žÞ›Qy¿�QÙþ˜)Þ½á&�udŽË�º“>l¦@^˱2ðPgÿ}欀–%Hÿ"¼÷ `€ý ¶-4-º ®7 ­LSç±Q$aºñô‚Ñ”êU=‘°thäráŒâ§¯C}[¥e&¥bÕf�«7âa –‹>ó© ï)ÃKÆÛD” Ûa<°W÷Klžö}lYfy¹�oªÉ·{ƒY�"Í¢ËÆöЩ¸FWÆôÖ¢¦/ÍMQ笣f€öW¶…‡Ùñü`NÝ ¡QµÇí¼gëˆJߤùULuþ«&�9µ·QrgWaÆõ³ZfÈ׬2á'#ß? Á«Â-” W>ìšùšú‘ñGgµ•èóiã²üÒè_^;æ¸ÇCÞ¼ÆïG“¬Þp>ྊà·×¬âœËvìQ[º;ÒTxÏ4u0ø°kVäµü¨çÜm�‰=饯¡uÑžÌqß–ê…>4欼äx“ëV@†&_‡¤«!ÑeQ{Àû»†­ÆVÞmf{Å Ÿ­9gžà¹ß©MïiBïŠnŽã2ÌZ ·KoøË�Ø�´Ë‘žÏÀÔ²Uô)Â]“Ó³&ØÏ‰‹ïоÊ>Ý-ø¶ÙêÕÓ4A�€§€¡–íV¤FgÐÌ0ô·Ó:­‰_¨æ1ÓÔbÎ!.¯Ü&ôÕ]q>#,êÂ{;ÀPˆ;Ý/}Ñ ×u~F;—•Þ¢¤ ŠœVvÃïbÔ�Ÿü’ˆ®²š«,†`×¢‡}�êrtùÈ¥3, J�[õD†PŒQK0p×½"Î,.°õKX›�3. 0T³âëV¬Nå ¨¤¨¼ª}øŽR£Ò™ÚƒL[ièËÅçs/˜§ÂúN*�fÓ » ÏñB9"úá�n›@Ú{3¶B1O›ã‘ï•­.µ4ð¦2=t:*6©n]ŠýîbO û&y¤‡[2.÷€9þÌÁÏGZHÔs[ó÷]¢YÜ"àû¬qØó‘ˆã×tšß–€7ù ¹‹nnºy¿nÛSÛû©hÝÖ¿­oXõ1l ƒN�IJÖã_K'N'¦Ä]\Üb@$¾Ðžƒˆe‘£‹æ ¢*2ùµ½_ÃÙþ¿‰“É'“‰¢É}ÜOV”îwUF�}¿üºµ½b2gÎŸŽƒˆ"J^H^Ø~†,i¢HÚO±N;Z;º•¸•øqÌ}Ç¿®ZÅ Áÿ}ÎQ nCˆ �÷z'± ú´WÝBòî1UÇLÉsÿŒ;{É !Q›¡š¥šåÀ@I2ŸÿIkfkföP¨¾6rw¿F?�~Ú”V5‚Á sŽUêÛ¢Ma›”é”éìÿž<þ¸—)u1ÿ«XX¦t+GãCœþ°}!äßöûyeÎ~Ñ�<£Ð3“iô®sh±”¡_± a ’3 vrð‰\~#m `›™ij¥Tp”÷5«3SÍeÕ�Å)kËI ç�U©¦*òz&xtDT°ßϲ߼ÉO(Ã2§° †-yƆ ­Ž5iÜm½¿ÜSýR_²ÛÄÊÏYØ�3çZÇ�Ç<+lúžsJy­ÆPœWø’üôd„1;�/in8�[PËX µlµ±ëA¼¤wV~ÝÁމBg2žt‡åzA+n]†Ë1RX'ϳFá†ú†ÃaÅew!xþ~YÍEM…~‡± F‘¿s¦¢˜L|šL…‰ÊtIú£èÔ G)Ä y¦²N)Håíf$mŠò'º6}¬ö°™ ùùÂ$Ù,·õÔ�ú‡—×àmhU`�žã‘õjf‚°ÌNs¢ÿëLÅÿíL¥Ø[K¸áðð{¿„̱"âEQÍî�‘×rÐ{»ûu¬€*Ášy}*›;*!ôfcQˆéíPßW œØž9}]q=JÿWr% o=«û9M41Xg§Ú™¶Ü“5æR-V`üàÕ™™ 5’¼,}Ï´Ñ åû%§©ŒnÀ~hwÄó'øó0¸ŠòdG)â¼È”Å ¢l¨,Kœx YâØ#:÷Ü0ÀPÍǫGŽÊÚñ7-dd[‰Ö'\v&}óÅ® ´Ú¯Eä-¼†±@0ÀþÊ´¦z 1twn¸ÃM¯DÄûsLv¤5°ˆKßm¼ÉçÒ}޽°ãÑØÏiô8ÛYͷ׈ƒÊ7ŽÅ)E<§ n a’ÞŠ¦›ò¸þ‚?¬öå×ôJÀû»F2cE‰ÇÀ*]²¾c½÷Z"aïòêÃäÙ(~˜©Ã;’G|×b%“—kñC-ËçI´ÀÓI²j<{š›BÎþ]œ¶plqî,EÇ܉è¿[´ùèž™ëtÀPˬ,iË…W±Œ­Ë>_ºJŠ£3ü0:­ó�›×í�íI.f xÞu󷃀}«"¥$ñZ&ˆÅ½K!u òqÜ!G¥ïº¡’%%ömQ}-Zå¼ “µ(¸¿F’Àм7ìj=8ÔàΧ\I%Ë7îxØÞ0òYsU¿Gbƒ=îÏ-À;îcºr+L轂Ê_F³–[kð`éñ'td]€ö3Øéj}¹ ™z¬ÇFå3ïjZ'JÕÇ|À¦7¸É´ˆl>µ kèà&qÑv¥ý·í¶„­ �Ê.#q±Zð•/Cä}ƒÓñVa½�!äÄšz%¾·Ûg@~'^—,Jf›mþÏØ[#ÐËÅ¡ñþŠ!ITï9ý5�";Ê’žA;}ð¹žKirÊ$Ó7è.ihdù¥„v®‡üÿþMPê·mVÊð G”þç\ŽïǧÒºßõŠ““%|ˆCîm&w7»Ð¿vëVCÛ§¶OžØˆÂ”êbEÉ#j�QØ6PCdI*K¾vŒâÆ~‰°¼yê+H8ï-FïG¯//°_.vÁà^ÆÃí‹eœ’ˆJVKV¯s!‚¿‚¿*Ï4"߯JÛAÕAõqÔ㨹Õð¿N¯G¯ç—åè¿O/Q0å²=¢k {‘ØÖž�ßÙ‹7­íD©Î{X;Ú?ó~Ó‚ÙŒHfóÅæËõ– úö—a+ÿIÒÝÿ=µƒ÷~OÅ̓Ÿ5c?Y/Ù_Á•Øzؾòo•Þµó3Z¥>K“0¡Ýö10Φ»u·eú=tÕ4Õrö¸äŒvGG´` œ²rÀ~œÍ×I¦;kÍëd6’Íb´Ÿw"b=Sò¾ßŽD²´8ê�É,R`û°ïcnó±žÄî,æï˜RïP=*™•D«4º¼’"1Bè𜼨ö뎫/èA(A?`€¡šmêÕ¯Ú7­�+ZßE<¦©xlCCÏ•¼ÍE1AŸ~ÇÜ©G—~·»°_Ç+Þ³­‘�E£_<”Úg™¨~š¶ªSŸ–x«ÁsÎ] .! °iSq‹ „MüWÛHÆ z´†�DûºŠ«E·¤½c—£^p 6þÔïoe`?ƒQ¿—§®U<ŠKÓ穘WÜ®§ó)Ô„Ù‡1MˆÎ¬"Í[J™u[8Š`ßË nO"Ê#e´—˜Ä3NæMBïJ€â2t鞤H;ð¥_m¯0…l¡Åô ÂøŽ$Á¶‡õo�³ŸZ§ÔxP1ðù9éc§Œ¢oyO†^š ð(˜Uº_j `ßË.7æHôYç–umºc”Þ“«4-îàÏVš¢¶\°{kÚiÌŸÂùÙ%Ñš°gb.DÂ]ÌYš)»«'m+ÑA�”3 3z*ÔOž£÷x[öëØðPˆ«€ú懖Ï#³ïm¦Xx`½4]fìSp¾‹¸žÆ™XîÏhT,ªæT1¯¡lÍK 3/ëŽv%‡näû´.6d8lõ±‹í[Ìýqñ‡Ý§Eþ¶Ù(Gÿ ç�Èm‡S¤U¼6ça•=!:?ŽšÚûm&aƒ(ŒxœïÛû´µ„{k9V–oiÏ>=†¥„ÙÒI€Ø}5äµ Òÿý¯l Ïç¯ŒŽˆ3„R àw˜gòHPY¯ðVRÀ? “»\¤åŸ:î8þ¢°ßÏJ!�5›–ª7„ñ»ÍµÞ Ì¿4×Ròu3ï!µñcLÐ}ª8ÈÐ`?ƒuMY…Ö³zÑ^›åÎX1uv¨-1f=Ûbr~¬¼Èðýn7 \#«Í °_Û‚¢?8&ÇèI­�õ©dä¼Ë—^¸d\óEQyB{v'vˆ4©=Ó°ßÏ´É¥Š3‚Ѫ’ÛTq1n…?¥_ã­+õ>úž‹¹ÐÕÐ&ï\9Ï«†º^ÀC5›§H÷hs£î°Yä[mLLÔ ôž¾p/ÌAQˆ|T<�?ž2ry–lêwPpšc-²èŒ¿:èvî°Yù;Õ8LcãÆ—Nm²z�C]_:bAí�ì¦Óú5Kk_^¸sÀ,)ðí,þÇÙâ©åî6§% ¡;׊ãfƒ.6K"¯•ÎuÿnöÖŒ.d®÷˜‹÷ ïÀøP Ö®õö™¤ ±Ïå_GŸ7ipµ1Àì÷3#M°z›l»ÏæÁ�É}^®¢sÍêâšùx ñKøEn"`!û€¡–¹rî&àËW¶R b'Ï32-ÉM¤¡›'� V*ÏÅÓÏ’Òº3èû®0Ô²zý]·á[¯­HÖZ¶5{/³ðÂÕøˆÝoÔ2ßbé~cˆù„OAåø¤§È`¿Ž=ê_†¬ñù; ízúp/h„Å Dë4—cñ†óeËÔ¨Ir«'¿§šï8l_ bŒŽ#לVÖfE *ºÐ]Ñ\CãIC×+b!€Õ¥]ás1Mt‡¹åt7¨¦"—èñõ€}¡o÷î“í­ÅOG§Ò;è#X‚%ù.tÔï°}äµ Ò÷¿‡M|¶4K5Áű/(¼Ð`hõ¸êjêO=K²ßñ�ÿǰëÙ¸‘Å€ýœv›å¤þƒ|¦!Maš,ý­ Ãm÷Þ<1WðImà½öæL“mŒË‘È£*c€ý~v¶ª?ìÄÔP¤ÙfÑ)Ñ(Ó6yÚ@iÚÙ ÏP4ÕJ tE¯õalv+ÀCXgð`^‹¼u ØeÝ0<&6 Ýt2œî‹ŠƒY†qœ¡vijàÚg,Àû_˜ ³ú‘�É-òrðâ Æ›ËzYØV"[Òç¹>1Å©.V’BÇûµmtˆ ›øãÀQH,ž6!Ùé/í“6³…ϰU°%¨‘uZ’ P(? °ŸÕ'½Ïz8¾uR”¢J'®­©5¾î—ÂO‰Qé]ßâ‹™Ëñ£cà °ÿ…Ñ&ß(û{÷�uÛpÜ(+Äm¯Œ²²g2’!##++{¯ì¬n¤Ù3{Ý6 É&ã¶¥22…è}ïWÞ'÷£ÇsNÏ)õüÎ÷¿ÏÉ9—Ž?®ëúý~×õ4?ÎÄFÅ!–i€Óé3Q\Ù?}_=`¿�ñ-™}U•(`è±u?7¨v²}üþœ>‰à—L#|5K÷}M ”�ê=èœ>س¯^ì-r’÷|dÈ_‡ê¼›§g:ánãêAÐ hñ`äÔ¦ßBñSÑŸc7f7Î~q£èFÑx0,ÞðXŒ[°Z¨ÉóÿqþÛZöZv—öÆ·‹OŒOlî<©ý×™Uœ¬7�åÀ¸Çèë·F¬;y0}œ’ ª1èCù#¯27•¢'°¸/ Ë Ë¶ä8Þ8æNówšÐžÐžä5#5#}oŸD·¡�¡�ÇÕ,wlwì7¿¼7IsXÈ(î-î-ðûΖ†:Ç�èêÑY¼Ñ›“ýÚw>·:íí-2Ç7}^Éõ|ý¤”f?Ý’îD¾ô¸ø°�J/åvR ±.ñÙ¡Feíóaxûì;óÁÝu�ñe¼,ÒŸ‡åé#¤Ñ a=hß~,ßsg4`‡ß>jðÛŸJ×�šftSGÅÍ�#kþìt$HßO“f¸|â�ñS½Ç½ 2›f.8§‡øõš‚cgMÁ¾wMÁðeMñú%Ó ¦B[ZÁ˜(Èõ 5üXN”’BÛs¹âh2¼›—¥Œú*º¯د`[¼ox#oÏ ªÏW%+°™^Â¥ö,‘Öš”ƒÕcó‰Ü¹ŽÏ—)éìðÛ  鵄¤£5êµØ¨|ÅCϼ/E/¡|Au›á®o\‘i`?Æ–D—–z8'›Ü;7hÔ ’ žUD20¤Ø@ž¨‰êÞYÐ:âNr‹ß6ã¸`€}Ë>¡é3r~«Oü܈Dέ=Ì,Òú0Ý!ò»˜Üܺ¹>±«Öƒ(¦Ž‚´›ç”õÚà笢´!Sñ¸è�1nˆù�É4g…ŸSgk¿³•_•HÆCãAZç¶ÎrŒ6z9ŒÑ‡(\½aé»Ï>8Ïþw1ñ˜nNæ‚‚–i‹Øî)*áôŒ‡ð¿?ã2¸7öðq=üº«‚»•AƳvs^rÎuÎõKÒ±]åö‘ŸùÔûçRfSfi¤W®­\k¼Kø™=,LVXX´ŽM3°6ªcwB ½!¶ÛÝî[’·$= àÍaÄ[»Õò:Øîy¥Ñp§Š~ù¬sì,)°¨I¨I£`uÙwÙ[a í6Gj%m%= žãe2Ø;44“ËŽ¨¿îâEñÏj—aÍïd~udçñ’†Ð]‘t»NÌa‹?2:./Q& ëÍÆ#Œ\½�â&:JÓ§ä¾ä>CZe>e¾bøn¥ß‘º#EY¬��¡˜øu �½å�`•.° ° ìþ= ~ùÎߺí¬übÐP“ŸOA˜nÒ€ïAk ø¿íŸõÝ„Ù1�GÝĨdvW'²·Îw§h3U)Zßb¾ã݃¬ÄÙ&l […ß0À¾×PäÊ;õÌ®kæ1<˚ìõ`yÛ4Er;ˆs �rÆ`°UdÃK\[k0À~¦©„8—‘‹=¦Häë˜xÓ?£ƒR‹¹GÖ›ÉÑÉóê™qoI?"�›ªw `‡Ë>W&…¦‘LSöµ’Ù¬ JW³iŽ*)Óda�Õ^”iá]w¼4—æ_zʰÃeƒíŽŠ•ÔlËÈf3ršI|BÞÈ8`tP©VHð|ŒEº¼’##€`ßk¡ƒî6uYjœø"i†šÅ'�»Bü0 F‰…(YëzqÒ!ùf1kãâÚ¥€vجç¦1½MyÌ[¢óD®’ÕnýœÇ‰Ó7ÚûÙU)èGÙÚÙ§4“þ=´R#™ä¼|vðûB¼Yg5Œ:MÁdaÓf¼á�Ú‚öº²ØÜÀžDYøpÀæ¸À„‚I1bèkÙ.°ã&~šQ«pT$Ú>ûBgöî 9}y–y^6o] �T´øSÖ•·¥­ãáÇòO¿¯ìÅÔÇ¿‘«uûÌ„S2EüÍÓÊtå…H7èy‘ð©yÚOsžUy)j`0›=;Ý}N(i;pÑ]¯NO.‡^-µ´%+1€}ær5Q¡KÏñ!~9Àþ}–ùrØ//¦ô¨>�qÄ¢s¤âÊvÓ• çŠÑK]Õ/4„;u¼‚¹˜ ûyf[cãô�›m™AÃyV*÷¹v0j/†0VøöCE¥ › óòYÜF;\¶ÒØ-ìš‘WwŒ'ðôx�­$[ªåR=�±)+‰¥Jøù£´ô÷Q;ü†zÚ˜Ù\Úw.®ô‰¬’dŸåè8ÕÙïù¦‚'øï25‘î¢È;þÉéÓÅF^“ðs`“Äü$öN*PÓ}/ìoNÔ4†¿0A,ÃáCÒF}ŠJìîŠÄǤªùl'¹Cêåõx"žÒ¼å`Búó˜kï8˜`g,×ûû„DOââ,ð+4†Ë~çvöûX>QŒ ͇Ù`±œ!Þ— ¼Ô¯ =먑]³j‚ê„^½âE’¯œök¬¯êvµ-Y¹3}¸bÍQpô€Õ�èt¥¬¾�KÙ—²á÷­49¢�ý»ÛýðqN+©¹ß9hß þŒÅ±Š`r³Lýtm×+`;ËÆ¸åk¸÷»/hxËsšíóN#ÇÞ}«VÒ�±@ ž ¬*E¾7Y´¸ù”9öùAûVðc9LgíüŠV¥A×će¾/@ŠºéhÒi˜†‰$—�(WÎõÀ“Êüø�rBVi9`?Ïæê„À©¶Êsªé�x3È­6Ø4ügЦúÌq…‹»À#·½ŽÐœÍ7{Ø�1‡¹HgG:ý×ÔI÷ˆ²‹f„«´T–…†°,kñ kÖ·íÝâocöØa³Mõú HÓ‡±K&a�I*š’P0?Øb&§@ åxMÓ®NžÔY ØïcX•S Ë'‡Ä"G)Îù$õÆ*p�=n× Ã<Úà†a›³è[„`?Ó&£(±š¸¬ZpÇ4»”�…ºÛ ʇ6'aA_3ŠÏ[óûj¿ïó2Ö °_Áˆ§.×È€�£‘ô8_Ê…´ª«¾¿­CãµM•ÌK®W™ìz^†~‹ï>V`€ý( vxDX"zu‘Z0�6w"8H!*M�üQ¢ˆ%gªUk¥®Ñ'Äð®~Àƒ籄ˆ­A�»cŒ,¯Ä×Ë‚k/ˆœ`Ñ ½ã:q[qÖÓ)F*®X0À~”©4f ÷÷˜ä”vl:"‡‰WéBÚ¸2¥&‰ çÍ_é¶ks%2­ÚÅš`öóLÀ Ò›¯ƒ&ñfA)ÑÈÜŠÖ¬ ¡“p:fZýr>±å£G¾H]®€ý>6õ³çVØ|Û¼:43em:IÇÑMÒ¡Çè4Y�a'¨.޼ˆ'З�ö+�œ>Qøp0óE=“¶V)ËNøçjv¦xm¨ õ‘ ­Ÿúiú¢¢z®·ÙÈé¾S¶~![–, Çì¦N§«ºüTSÞ�èZxl&  híó>8çÞçj5X;c9QšghÁøfô¨†Ï‘ævLŒƒž«Á�å0ýßÿÎ&Y;w}dH�ò6Q?F›~:›‘É2{õ5‚ ž·Høv²d̤,'­ÇžVöï³b£+�O�7 å4=ù0:õ•_sϽÐP–rwÐï™zŒRŨ•\ ì °_Á:&�ý±êé�±Én̰¦-ëÚZÖiÓŸkÖ‘-/¼6õ¹“¤âJF‹ :`¿·ù„¾µ~®¦u~¯[ÛçrZÖSÒ‹ÅÒA>ÚO>^’¿:³ %´¦ëöﳫøç!i¾ˆ�´\nDC¾PB±Æ^?Zìz|Š™¦Àþšiî…r¶Þ†ºnÀ;l6G�êÔêo7JÜf†`�g¼1>^÷ß9}.GÂy,ù�.Ö! ærEz…Á¯%›ú,%mxgé Ú£­.´–„¿§•ztL[“e“ì„l? ¶>lqLós*™Ç3‘«²ƒó÷öYKrï]K|ù¶8üüRg‹ÍâÞ{7 Q3>Ò­%áÇr˜¾ëþ·Ù+=r¿Ù.´v®ÓìýcP°òg“­3 ÒñÙŒsм›HszWX�›j"öï3-%,ÿzÓLóUo}ßö=.öü³ÏN+*ý‡½;�¦jm8nžBŽy çŠL92† ÉLÇ<™EæyÊL†ˆ’1„ÊXfŽ¡L‘9ûݳäwsn]w­Þ·Ô»×÷¿ÏrÖÚÖÚ<ϳ÷³Ÿ<ÜÙ˜9¼ÂküÔ'NðZ{Øv°ì ë§X<©Š&rVÒ ƒîœäp šqâI_™Ò\x¦¨ÚÝ··Å€,«ƒ~ºÖw{Àô¡qKµC�‰³L‰›ÈÑ£|›©mTã!·´ü#Îü½€ý>v¿kÞì·§ ê'gWv½Yÿ(žÐ#-Ú’L.eÜYâO•DØåïÛéØö¿g%õÁÊ´I~r}Þ„ ã‘§ºütÑça^œ.£yKørÊ2ýaŽžh€vÐ,Ð/D0'…ù|ž‰jí¸¸$9KëÏ:+ûw±«´�ÃÂÇûC„aºKÄÞ±èóK›Èëiç˜&t…•‹ÎJÍ•Q̼Üo] pˆöDŽ1�„k¤9¾€Àl[ùó§TÎT´ü&<˜­Ë]R´PÚPž6˜IÆ9­}e]€wïºÀî¾äQØ4ÖYöQè¬#&É–„ø~û’)ÿü͵…½Ù ¿ëBÎÛã˲4wó“eÜ­G¹µUü–4vÂ-pΊFèß+d-d5‹_ì[ìF´P©�G‘¤¹ò$¢³�¨«;ÕXƒÚvá΋̋´Æ_‘¾«äƒ±›bþê»ÝBáD;å}j2%IÊUFd“d“4mŽH}Z}:ŸaBa·äp½“z'=U´úÚúÚÍt[š0üËp&÷V©‚¨GϨ̨l÷~Š'Ù¹ŸÜ5 Û.7©…™’‚‚Ý÷[gB¾·ÒùŠ?†WÌ!†Éú8è¼üù²õ:æ*m“»©q•3EºìF=ýodá„ökÚ¦cЄv<Æ^U>ªL}è¦l_søèCci×äzΫ£§aV—…–ìÏÎTvùë 1Ü(<)ʤmÐ,Eã#ÆO3us%U±‚ íüõÕ>¬ã怆°ßžÜF)‹§Ô—Wu"¨‡{ý¼Ä`Çh?ÊÛ¦ëEë\|”ì3†º‚ `ÿ +ZLZo”2#¥~ÿ ›Á{^+³ÜSìlÛ2c´âAq0°ßÛ{ñ³ˆ»›Eá^$ ùtÿMÚ+ëÄ�L†8¾Ó,å,±J$-¦$§�J@"ÆÆ£7Ä›}Óìаn½fò¬Å¹ï`¿ªÁA칈¨ûÛWè¡$µ¼ñ|&V?âÜ«î^£ýárFN á§Ñ=$ÜégÆwǶ3ŸÇÙwõ}„8é':áŹdÚ<眾5¶•7°°Aü=þçw1𾲇_¡,™ 2!´íÚš}ÁUVùÛÙx>ºþV;Gâ=Š›ØÎlR(Âå<^“¦ÆÔ¨ê¥˜9è !±µ~ÊÉ0׈|fòówä}Èãnä9E³d¾ýmë˜�,º­W-ÉÒûÍ)�ÿ ±²K>õ>hƒr3×|¡"ë«×7ycoiÜåY ¶šd+8cˆú圂kgNÁ¹wNÁòyNñv”µ_åez\œØ‘te¿9òµ)¡îmÉ=Îôj\�1ëz_Öa`¿‚mñŽóFùÍ iMW¤(sXž1z<–ÕS쥨#äó 1"åK/zü°ƒoK4`j�ÄdÌê̳uº ¾’a§—KpÓ¿b¸CHŽrÇÿ%GäëøbË'€ý›ŸŸï䃹µ­ƒµÈRLž—E±°¤Ú=Õ7¸ý^Ã�Ê[À!ó°!`€}Ë6q1ºÌœßS6™Q)Zã´„[EÙ¤3D~SœYS¥5¦tÑMŠfm-H¿qFÍð%ò;Ï SÝþ’lÚÔPˆR‰éòeÈ~ï]â”ÚÏ€]¶cŒÙè^ªHÕº�ïWž«@öÎ�„>ïó·{ɯ4Ô»u³ Ü ¹Çw¿9òµü¬}V‡n >ì Ä¦¹|q$ÛqK´#8U�µâ‚�7Ûm¯NtUî—"WtÕ¬ì{ K‰¥´ÍÐÊH;�åyö ~�ûÉw° *¿ � 8ý”Iß ±uOI=Ý~Àû™¦âü„šR¢’î_ëÈx÷”>V QÑ]š×Y\m�7ÏÍ_?îF…¸jx=ì`Ù§òä°tªIú®4ö„d«8´‡TÕÀÙð)¹fÞ5Çó3éþ¡²—;XÖ×âxá£j€¦ÃšéÌÜ 9ÕÍ�q¹kx­ eç ãÐä—räQì{-¬Ï;6[“›T,ÝTûÑæí!·ðɆ(…éÙk_eå[¹Ç~–Ô+ °ƒf�D7Ì™íKcßQˆR¸HW¹vs¦ÅZØÏ3‡j»X§< ,Pçi™Ü&½`ì×x"§èH"¶\P]·?;«”ͳ:ØÁ²¥†Ö„—̼ÚC�ÀÃÒ$i6óusKv*MzõQÌcç˜C±;ø†}œ풬ïL|ÉSUé.›¡aþïÙSQD"4N"ÏHa0'¶(06yâ‘™çòØâ^~2g1,Ô“ðêø‘êýÆÀÈï&Jd^[M^¯KU�[å)kF­¤ÖÈçøƒ'¤NÉù üŽ‹íïcàS{ÇÀÁd;× Ó××}¼KXüH!ˆè½€ê~c`äkùÚw»û},Ÿ"Ö¼:,‘3(Ì;ºþž—ñMoçš vTû4TSH‹Üóµd±ôçJÀ~MˆóÕØ®r )ufޏP�éÓcÛ/>Y®ÊÍ„:§ ¦Ëõ[ÏÙ�¥·öûX÷ \WêXOú+™¾¡ç±ŸeõH`Þ$¯¯(‰N)¶k˜®1 °ƒfwKc” %.�‚Ífàg™ ÔŪ;�~¼Ôвá×¥FèÂ÷}–î`€}ËÔÆ: Ð5·=‰Ê Œcé1¡ÞvÒ”äY`Dë€ðÈ}Ì”žozŠù•÷#ø¿~nÁ–�Hdœ »½¸_^P¦Ê¹ýöðPÿùA˽}ê¿Û€œ«å—ñ¬ï&öä¶àn‰lXcXc¬$ÖþpkÖ¤7;»tö®WÏÓ4c4cÞA´†n¶…hò"Í3¦Zëˆ6 jõ;á»Ó�ÛíÉҚᚡ貽p†LînÙë¶£»må«ßØébt™ƒðù:FD¢¢‚W=_|¾Ø9!º[@˜»‡»‡UªUjJ˜Áú·ÓQ×Q¯V ”ùç,�™eA®ˆ¸Îîä6t¡f*j'ßÌr£ÔH­ÉÊ¿º—ëìø‘j¿�]…½-lcëÅ¿iÑxÑ]Nó°æa9äd�$Ã$ÃfŽeÙ¸+¹+=èü2ªÆ½µÏ#Â\ÓYÓùÿï‘}Þ73’Vê…S\ÅâÌæ›åÍ|öØ~Ï�ïíñí ÀCX§¿[+ª5§²2å�ů§cÁ«"9OºÃr™PÄõ#ŠêM{ °ˆS;øöAºL<›:ºár·9¶V�,› ÂxO(ƒú²ˆžjÃËôº?jK `€}¯™Ââî݇œ=šI’q´t܇’¥µ4ˆâ&y³Ù«÷Južq)`€ý vQ”Øò¥ÛÈé^÷>"ÃóWNRU/`²…Ž}"“M©e/Oé’9:ØA3‚çÔjãÄ4 ¹Ù7"v‘¦tžñàˆ;šØW?Œ =&,-êƒ?$£%i °_Á¸ª ’éâu˜tK'ß>mŽ}¤<äJmàÁN¢Fh¹ü‚OE'‘�¦5å?mw„=«-iå?1i0¢úÝ»®#�¼n¥ÍcîßÑr‹”脪V±ÛíýÖ­�¿±Ø*QLëo•eœŠ«ç¢âsý²MCü‚(´ã,ÔK‰§ðyñWÞiäÚ»nõ‚zçZŠLž÷¬¨F-[ÌYßxÆ×´ß:òµ¤oíüŠVe‚ñ\ÚJ¤ÆÞp´h3M ÇGSÌGU,=�äÁpép¿Z$JvI)`?Ïfj…}ÒÔf42H¦Ð_œ³' œ.žèºyÔŽâ3èç‰æÏ·zØ�±k3QÎDŽLÆo“ïRÜ/žA­ÐU_¸'ÜO`SCZX½¶}Å %Á¿ 0ÀšmhÕ-YÁVáç-ÂQP•?°¤¢cKÚb#¦C¡æz nÑ¢M j+ì÷1‚ò –…?ú%¢Qé„ÞŸ¹™Üi§ÌESÙ¥!êìwE‰tÈ™ó-& °ŸicÑïé `§l›Apívµ¾CanW„”“ zß—¤œµðÕ[îò4× °_Á('¤(«å|ãPu:ŸÏ-z¡¥±ì§öÜfHá¥5,Oq•cÞâ %( °eÁ×Ò–†ˆ_œcJ?–;$Œ�®Iû𞘠wší‹r³MÔˆönÀC÷¡ÄÈ­>èøñ“«äÿÇÞ]Uµ5 'D8:$”�î� Ié84H)-Ò ¤tRÒ""ˆ„Ò%uHARÚ+-¼÷ ò\=/ÏÌ}EÝóÿöÏÌÆÙöZk¯½ï×\ñ®¾(rê¼vø—·þWg=1óg¤Šõì{™J]–Po—iNIÛ–rq„x¹^Q [¦Ô8‘ѼÅ;½V¶ŒíâM1ûqÆyn‡ÅÝF�áPµ ôÀØâ:�y9BÁtÜô5Ù|"«Ç�}‘:\ €ý:í÷³gWØzßðq`fÊÚlœ–9ª“¸Mÿ¬ãxYºÿ5qäE0_OÚÏh„´r†„‘ƒ¡ô¯ô�M[š¥¬Úá×ÕìÌÀ-¨ô5Ñ ÍÛ½Ô=1±‡­«ÁŸm6ÄÐsÆÖ/ì“ÕyÜ,fŽ—¢Ê;üÔRW†ô,Ý·�#àkð>8ë×ëjU˜{×rª$ÏÈòìä0Š†Ï±†V ôÃÖÕà¯å(ýßÿÊ&Y=g04ÀOáOØ‹Þbø�Y€Ðt™¥B ¿Œã=žÝÒs$çO[�¼ªì÷³bcźJä-#9ÍÛÜèí†Êìsot•¥nÝ4ìÀ5s¦ŒSz¹�¢ 0À~k7 À¬¡sÂ"½1Ô¾¬gkUõD‡N°A÷Òpi¡ÖÔn;q™bF“3°_Û|Âß['Eªk /ƒ;u|dÓ³^‘HK‡øèT®_–U�Ù‰îÇMl~hØïgªxÂE龈/’šdëÐ�ï>%_e©.v99uŽºÀ^Ë,÷b)swíËNÀ;j6‡ŸæØ`7LÔbŽÉ3Ù­â>è;}�ÎÇ"9¬x�%^"†òç²ÅxGÀ�%ë{¬$m8gé !­±×ûn^=D±Je÷$êĸ…ç½Ãö“þù›Lã¯ù„# ß–ÿ—U˜íw«ÁÕ}¿ïDÌDÌÉi¶2šó’þ8‹ôÓÓà«ö;íw–<° õ¹°Âä`é¬ã©´TÁª>g^·—‡F|ö~-E"C"C´¹ ³i©äûyhÒ%î·¡™¼WâUdžöQX*—U.ß�¥œ¢œòÉàùÓý¸OsŸ¶à²àJ ©Äüv¶X¶Xè‹S«ÿœI¿ÓGXa{éGg9æ˜ì57ì&> ‰SSü•’U°Ò¢°Jq,p,Π³íè°îPü7¥c§cïú�RA©¹žðMjh¡i¡ kœV“ ’ 2 ÿ²‡Ï¾NKV© ©àîíÏ{‹#…—Ú›l9ƒoÅÌøH67o¥ïünöNŸÌo¶í”�Ë4KïH¿·ò®é'®DéûÙgçúóÜ�æô™Nši"öû™¶f@�Y¦ÅGOCßÖ¤.g{ÞÙ× üJy ùØEô›<$ œ–·­;Zfϸ‡.QÞHÀqw½’r !˜ºáB;Be�±x¼ãÆóLœ_Ï3%€÷®Å]Mc§ÜÅg…D€6)$tÈý°yøk9Jç+~ýh¡Ÿ¬‹†ÌÉc˜_ ]«eòèÅõä^�B†P�õ˜ÇJ€[&ZX`?§Ý¥¥Ñ¸ß�NÕ¯ÄMœ¡«±- mŠ{l(éš\ËrcŒ«Þ<ÒîDØIÙaÀ~?|Ñpf¼?L«ð<ï=ZM½& RoÒŸ�¡ˆråøH—�× ÇÏšÌZ}ûr$L+IìÖ´"I†ùúý=EêiÉÖe­ôÓub´T‹“½Ç?¢ØÿÂD©N¬$m6Hã‘,¼B¥ôZº–=f³-r±ïÜT1r‹˜å˜¸¡#€ýÚ6Ô�‘‰½Ò{Ò8¤Š ÞÍ~—öÆ2q+ƒ2ž›‹þ9}œ<¸ÕÌŽ/ó0À~V[xï"èhýÎFŠC˜0 »ª‚§¡n°GýA¤lçÚ6kälÞ€;ý1Àû_iÒí’Wù ¦6*7ãûXw žam§Ï‘Q(«§wª] 7ª� ýÃ0À`ƽd¾Ž[þT]Ÿ¹³Rêhûâ1ü<¡ÕÅ�öQcÚÐyOPýbJÀaó„‚§�c=Åp-ðÌŸ³5nœ–ºŽÑK»¤÷6_zT|ÐÆøx7ÅNr‘Ï@�²ŽpDø€yBî¯ç Ñ?ÏYÖz‹ôæaÞö‘ Ñè.b:lžþZþ͙р}[×àµ?óP·ß,£“*J $aN�´a×ñXˆ¡X“z4�OáÞ½Z޳ ƒ€ö#Mñšƒîó¹Î¢wòAƒã)œ%P<Ü@P âˆ.}xl6Ó#³ ¦ÕBÀû^v¡ˆSD»�?G~åuNÉ Î–�¡á˜›h“÷Jš5Òq¿¢nZ�—hÙŽ€ö³ÚSîUìe’�Ž�à—œ ÜóïqNQo¿A�îès*S1�ʘ>0kºàäþ³íÜççì`]o~Š©®‘'¹øšì—¿õl+«gjû÷Ÿ÷h °‡ÿJY2>Ç”HÈŽk[ÖUWiIøogo zk¬®=}â2(ŽŸÚyÔx¥Är¶:M™¶AÉS.cÈ•|ݲ’…r6¾þŒ/øõwø÷ô៻áÇMâù6w®XÆne’zÓš,yؘþï9&Rfá]ë�4$3wÓWChsÍy›3ÎO-˜}×|ú\� >â—cŠ {c –ƒ÷¸ä�…×!1ku�À gpÆ%ÛãBöçoª¿n2¤ø|È—¾löî~‚Í�÷ƒ@VûVû^ÖÓˆy )É«ÿ½‚‘‚‘tiŸ-Ÿ-B(,ºt-~X¡°*â3BMa¹ñÉâï{_S~?5^££0†h¢˜ÂPÙ~šŠ5bû…z…éíµ¡ú¬"“É\–é+ÓWÎb° ˜ ˜oG5í—$ŽO@& ÍÞÐKßL¦²•^ ùç¸P¸$3`¹ÇíÅÐ?‰À¦¹Wt…šÃ×rKí_eDèìöœ„%¼%d/d¯¹Ã�·3�cþß4b1bABÚÓ�…oä0é0”“2c†n†^�ýe× ¾n�Ö“"…H…Èýû‰þóubŒŠ!€Ð’^0"Šë€÷ñ°1*ü½}ª„¤¿5—-�:óaYʸg¡¬Ó0À~ûÄ9Éí?Ïm&´v‹Ø‹×6ã¤>`€}˶AÇzŒ�Þ5ËY¢µF˜G[¥3i~“›ÛP"3$rÑNŠal+HwTÖo�‰Ò„MÝǽ@÷/ ‘9l ?FËÖY±•_¿”‚1‚,Æ&‚´Á>h�åk<6ˆÞƒ(T±iå{Àº Ç×c þÏû²­[xäCêý| "ô’û|{f…¿–õž»ù ¾Ç�D¨¤vªo³> w†¦ê0–_µö:wdz Y‰µEÈ^ K…×0Àþ­—§/m×77ÐÌ£�5‡Qí~þ}ý±ïÖÅ Ú,²é!®£=`?ÒTœž‘‰½ ÀÝöv²wF÷x5vQ0iwæ…vŽw¯MºŸö"r¸ªy>ìhÙîóäðtâiŠžfR›U~é fÍa%eê,Ì‘j ™&Î ‡Ësé÷¤§,;Zmu¸º®¨nûŒt6#7°�€Ø'lRæ&z¥ZÙ%Žõx$Ù92|ˆ€öo-zËæe–:+žHº‘fñi“Ž0? üa" ¦—ÝØ‹òÍÝãVGÅuJì¨Y¶› �MiÜ{BaBÉ ×^Ö“DGiOíA¦*Õ¿~¥zöõx@�ÔP&'·ü8ž3‹G#иÝÌ›4bÚœ3òñaãxøµ×‹ µ,É…�úlNò½U0-F Ÿ¸Òáí°…—nÜÁ$�vÀ8žëëq¼ãçµ'á+y|A$¢ÅÛYŠïKÊÈÇÃ_Ëÿ÷û¥Œ=¼›¹Úþ\oSÈï»1(Ó–"¹!Ðq"Cûð¨8ZXyTÆÂÍ f³<Óuý�’¶}·ô_êËåЩG£–4e=d™‘­ ,t~Æqr€Wî8`¿ŸeŽ úåÅ• âCˆ¢�¢ý?Œ`Õ+†4^�]ê¨x£!Ô®ëÊÆXØ�3Û*ë8ÇGìÌËôN³R¹�:¡¨ÝèBlä`ÌÈ�GW•6m.ÎËg±¯ v´ìC]ÛýX!—Œ¼—'8‚F l%ÁÌiVK5&fLÄê*‘Â(4—èî¡vô •Á䜅´ï\BIå%É«áQJž³§¢Ì? –¥"Ô[YáŸf(6ö‡6}�ŸÌÒN‰[ÏëÆä©ªÃž�áß/L˸¹–¼Y“ª¿Æ^Ö„ø‚D-Ÿù4{X�¼>GÔ+ê÷‘þþ Ìvðû|‰ÈEöúÂÎ×û¡#ç@î÷{Ÿ�üÏßÎ|]ãrU:|É _–¹¾ŸÚ˜×Åý¬¼H¤I¤ë»w}ß¿1Ú�€n’ü½”ð”ðý)«)«T$Xóþõž°Üc`•[y_΄¥¤—§¿Dwû? QçRçÚ¤ÍäU×ÑÇ®² ¹ó“½5Rù'°¬š`!#GÓÀ õ õÄt«_ÝoeîÚãk�«U«UwŶ¿——…Ú?7Ÿµ@Ùl‹¾o/÷;š˜%™{Å [õ�”/ ›üÕ#áÙ…,DX=Z¬™¬™44 ‹Zwxâÿ›šš-�ºèºèÞ{ÁÇ:—·’·r¹7ûÌÚÊڊÃ/s£ÿºZX˵§#NïßO¡ø{÷S Ú{¶G@ôT!ö¯Òac*ø{û ïÀöëX>aœ)õÚl¨XÎ�çØæ'Õ»þ® jtǬ†:ÿ5�nñ'’ïœ^öso¼¯ÚN…-i©]äÕ*ïØ¾ë¢ÓÏåqr34œR†Òe,mÆÓÛûu¬·ÙÖäJçÁLaÏËœá{ï2ê«Ì>1‚Úò’øÑûBO¬;xg«�ì¨Y°\i¬BPÁ�˜[ýüCŒLÞš8[ܱu‹6„-ÿe,îUäyò€ö-Sï,@Vß¹í€]¦gëÁ¨ù¶%¥––OG$¤Î‹¾Œ‘S½úøüŽc`?§‘£~Êx}wÛ§tóTŒTP5�o½•t;Ö—l´ß1á’´GTÕ›�´rÀû·†3mB¢ y²¶E1(7 Rù�š4s�-JÏj'›õF´PÒR:`GËò˜ã! µD“:Á Løâ–1ªÜÑE93ø-³á½îwHó�œ®‘v´ÌĈ´”ûФŽiÉÇ«×qQÕ ©á)­÷o:ßÝùôö51rYÈÍð]`ßÇ^àà8/aD£…�ãZºZï`�¥sÝŽ’%&bvmn~` ‰ƒä'¬âÄÑÁ¯5Ø›öõ×:²Ê” E³ŽX¶Öÿí9÷l¾ ¾‡g}’‡auqöe*¤Nv™õ¡ É¥ÆJPÔïÛðÀ}�ìó¾™·i¥žhO*è�ÎùfzÑ]¤9lnþZ¾Ç·' f]·Ú-Yˆ†µí=+ÇCׄrŸõ†çÒ"ˆêFÕPõÇMìèÛªd!5î|Ι-—স—|ÿÇÞ�GCÕÿK…ƾo‘ •cÉc+ÙEöm"û.{DÖ²f'‰ìQ1!KRY²�­0ö¥ˆ’R¶ß3�æü2O=~ç<ϯT÷¾ÿpΫq|§œÓ½Ÿ;÷^ê<.�½×Ų…ßêµ"XèñýÏz†â ‘€öOíì°HÊõKäw£¥öçPÆío$?@#�«»0ò‘ löG¹ÔšSܤ °ŸÁ´$)¬Z}F�¢|ûÈàò2.GèMÄjæw‘p]_§VȨ&Ï{7eHíæ`Û͈Ÿ0hNPÈ0’Ͼ~.á–Ùï*[Üe�]çÞ�•’”#º`ÃÅÔL”m€ö3oµžl–tíŽÛ†å/_æ:“àAæÆnúbozmþÝ) œ*ÃÓó×Åû‰íRÕ|\sñ¥†€»l»Ù²ní‚-¢áð¼e,(ü6}åm+zf®´U.êfï 6¤.Sfd{%`¿ŽWNrÎïë—IÄa{s,0½ëlŠ/ã}¤#Yߎ:oP¼ÓÍÙ »Ä€ö#m<ñ qŸ}3ù°~‡fßî1Õ˜ÆtbÔ‹ƒ²t¯D‚ŒÞuûYØÏ`t“rt5Фô]òˆ]íw!Æl~k¬‚LðÊ /IEŽU¡+Ä€ö½,ʵ˜%¼O¢§ËòfYÛ²^I¬l• ¢•/÷ä8ÝÙ×6ÏM�F|×/:§X‚ûq&jVéL"ÔÆ–ãVóF㺹�ýë*\P=˜æeòK]¥[tvÅÅA¸^f€ý:Ö‡ váW[~Õ¸Ø?5é`5ÎÎßIß?è>^Oä,¦+‹7K)Ú�Cð3-»Š)mÜ@ç“YÜÓ²µå¤];öy5g+ÊÖ]œµ oZVzغ“¶:¯†ýl³ÁCÝû�‚£WíŽP܇X¹�?TÕ¬}ãí ‰­ïòµ� jï|~ºù¼Z ñÆZö”žµ=81´C/¿ &Úê¼öZ¶Óßý¯l'Μìc ¡í!j5Íæ§µœ‡TPW¼Â¥rVfäb8²Ïaøq5`¿Ÿ•˜«×?À[>«¢Aˆ¨ÝTóÿÌS£0Í“>®¦V¾C¬É:¥ò½,]€ö3XÛ¸E(q-‡ ã¹)î¬y'»š»FÇ��•L®·ÓW¨ç4{ök[`Ì+‡´8CÉyÊN£@¥¬¼Ç r% ‘�F–äG´¦ÖP×Z²MûýL‹J‘„s?­Y©žïRX)ó{HíP‰é$Û«©ržgu�:l»Ù u¦{K¨ó]«5ȬÐâÓÈH�Ð×î«æ‰'`'b.÷'J¬€/‰Æß<û^�þ®ŒÖ—‡®øê�ybN¿^Ýê^�{Ð÷k'Ø\ÒÈõ!ìV`_&DŒ)�&£“î͘å˜å"6e�V/MgRµ½ÿZKKÇÂNÂNÍ$t¢†ºèl(ÐáÕ\æ}‹®ør(t£2Rû`Là>ðð™öûò¦E…Ë�1¥àhïÃ$Jœ¼Ñ›—ûºL½9ºü˜ü˜Žt¥°RXçn=LòÏH"H"zêzêŽåfó|» î îÙJ!߿υqŽ.{q£¢—·8È75O9ÕŒEð­ ÿ·’ó�È�zèH tÂu›²šƒ‰ZÁÿKybybýAþëþëÆ‡°ë’âå}ò‚QÙRÙ2²ÙØúæn‘¡sÓª‘¯‘ÇžM4tÛ�pœæ(2C&Ù÷ºJm5›À~îù®½CÃF§ÀG–ÙÜ©¢\vDÙîÖ_Ïdô}ÓRî{ñ•ÙÿæÙDØçk‹ã$çÚ›gÕ#Î!§¶šM`¯e;]×ý»Ùs8SðtÁg¯—�žaT€æºåêÑk ©ùgP…çqgà unR+}<À~?3Ô ­µÊµYô7 B¦uyºˆL?9¤&¦QHø:i–¨ÈU˜áÐ!AÛ v€m/s9¼žL$WÕD#°3m†•˜ÕpVv$×ôÚ‘ “å7 Õ‡s$5#z}^Ül{Y­Þºkߥ ò÷�«�§Ù!ªP2· 5l—ØÛÇ ð‹¡'”ö�z£ûu,¿{Îü=ÔÏgÝÛÛèµzhÿ•=Hý0Yv¯ h®ôU n¥|{À~?+«‹ZVcJ Qì»HR?Ï×’jˆ7×àÁ÷+\+â«�ì�qóà °ífá!Ñ¢738ä Í4MHËÒpfóþQÏ^ÿUìS׈øÁþhñÃΊ‹Éxs +Øs�Ììã쓆âj)¹Ù Ú™Ö­æáCL‡ÒLe¼ã-À""¯Û+Ÿ< ÷ gê6ãßѦUé­œ¡ Š`käm=¨7—Mqÿø•¹€àæ¹ÀUÊ�µøjë­Uy¾egO‹ŒôÝj.€½–íô|Åïa#‹ðtc— ØÏi—Ùè¥víEiÑçë­(ô5ÇŽ›žðN¯ƒœ;Ú`ç¼;šTi°ßÏŽÝïÝ?ŽŠ†/¹Â®oÒ,Çfœ \ŒÂQ©¢Æ•÷üзó `€¡ Ô[Ð(gù€ÁùƒAÃ�(*ÄÖp ŒiIÉže”h U’0޳¸0Àþ&ͦ¶ûmÚ§F9s*†7�w±^œÓÍé÷^�Iõr½Û›¨2K\EL5 دmƒ(p.ÙÛRóB-bÊõüç™Om¯-ç°¦å¬äLV¥Dž¥ä§V, °ŸÕÞŒ¦xswxîxR@’6“¬¦Z¸T?Ð-It=N©óà 4nº°ß—‰0ÀþƘv¡ìñ­«–ާ]S÷BÝ×i¯Þ#YÉšabÑÔÉêÓæe>[-ÇøÎ0ÀÐ&4g½DQUªFçél2«�rwº_Œ='´“êo1g¯%<âOØ0›ñÍÏ£aæ„Ç_z&ùËPØPY5Uò5}ÜwÒÜÃ>g2zKaDvÀÑ|ç3–µô::áþzM#ÉØ6Ê¯Ì …°žM@ôyfYë)$¾x"*Rï‚{«9!öZþÉ3£Ûþ¶¤'â²?Ûe•Ó¹7^<òêÌ1ÆÆuwüHSgJ}¶‘BQµ+Wê °iêºnÆ•3�ˆç Õð�ñ Á2¹�}Ta„‰8ÃÆœ1IùÜ·­^€¹ßØ÷2^„ ̰Hì¦êÛÇl™äeä˦¦c祛Þf:àî Fÿq÷oíÛ*™XÚ¡_þ|½ÑW®áW®H§˜„E®y·å�òV8�}ïìå;D´†¡ï?”Þõˆ'Lãvµ·�ðñ†ðA¹Ñÿ<ÿÞÏ€ü± òóÿùõ�mÓW^ôèQ(Ä … B!¼ü¼GA^>ôËY!ÿÞ¾½�sv1qbe9ÙÛ»üÝë¶úóŸtþn-ÕÕ"å&B8èßÐVøl«ëÖXþøž)ÿÍ¡ ­°kjý2cLã%{V0�.ÉåÉåUN¬ í" »·V@sï¯qôrôRd|øDq ]Nu”ºã„èÞ.ìôB¢Hÿts£®îÔ:L(f+‚õ)sõÓÙÐǘ$bån`*À·âÝ(;9ãJî«5yts¼s¼wö£3’5’ebê†cŠNÇ Â ééÝáäŽøvè‹Þ�RÍSß@’êÎýìèZ¥6:ÀD”xd}£ýÔaK±¥ì™\ÿíA°.|­Ý \ ®ô\ ×ñ=…±ÿK)°XÚärõr5µ vr¹,é,éõoÌýÊýÊ3S¿lÍdsù†,A!QHì¹S³ì-ÇKʶI˹̫O‘é'¶š;aÿŸ‡«° ¨ ÀTœq Ò“øôÁsE09X;‚žÂú%×�cpœ/çN¼s'Èæ¹çç¹Ó‹±Ã}`qPkÖ�ai 7ªÅ­æNØkÙSÆ€Bð]eËñoœ?iÞý¦¢ó `€ý ¶*8!˜òZLw*ª*C�ÇJž|ï…RÃqm-‰,$ú •P¢ô`ÛßÙ ®¥ï¨É‘ª5äa ’�9ú®Œ°”å)ëeÐåÐVžøgWïZÝìûØœôÜ\t¼Á§ý›.u†Ù“ŠNÎŽˆ:Ò&—ÞâûÐ_qÊ!…Ø·l…¿ÛÜã•)]“9½Š-2Ö:Áa;=gêW1•™�L¦t^†i‰‡Ûîd�?¦ oÅÞg•;=™JNxŸ(äŽLè°âVû¬Øs—|£·Nªó1Ç3ÀÃx2|0Ü�üynIæcDÝ8՟삾r®T`ó>+æxÌ5˜q^ªV&<³®z î ¿Õñëßcá·9;éHAìH¿læ¦Ùã!¯1ÍÖì™Þ3íN½²Ï=gÖ y÷×: ; e&"l"l˜¯¢ë˜Û…nÍ]ÈÂʉè{è–$"!Q/tôcª³ 66¨ú€gÿ„æÆ)L¯'20I¯æêo”É’ã`]I€ÎqÒq²Ç�û˜ûظ¤V5&רÃ#‡Gô�õ�¬ºÆ¾ÝcŽÇưKiŸös áG�èân$+ò¸2¼Ñ´Ñqë plòÈÃ/z^¨ì?ŒŽšY!D!äáBãÅ}FÎÿKB9B9çò))â”°[ïÄ·Ç·gɪïJ¶M¶-–ü2yÐæœ—Й;òña~ŸÄ>߻áUXu6²¿!8ðN¬IzoÐVÇ@Ø¿Û?êZ(ëÝ�¢Å�t»�µFóÜV%;£n®:åp‘ë’ž´UÂŀ䴈-`€ýSÛ©ÊYÞ·>£_Èù$oüÐ÷È«†Iú�H‘åa–)³¾Ø'?Y#Ã~Àû‘v:Úã�Ì}æëBm£=SÆ;’!"Ÿåò¶ <bñ¬´GÀ[Û¿°íeë•é1Yô/Yº[ß‹)Tóèih²å?”Slüè&?“zEaÒ°íe}H·SKa:N÷§s Â@4ô�ÑŠ®Dm¬ÚÇ–Rp•n*ŠâØ?µ˜>ÇGy:P*XÖYý’}ÑÁ`ê!:qîGÏȲ·¬}“ß�È•Øv³F²óŽåɯh%i½NT{÷@Ié¶Ó}¾fZ'QKʧ³�‡v89˜Ë$(äŒ=ÌÖ 3o· `Œ}i-W¼Õ\ûó9 ³�u�t–¢Û½Ž¤¢£j–%81/”;Ü–©²Ì;¸%¾2:ºy.äþù\¦¤ráGÑpé’•<õWeÌ[Çc¯åß¾Áïp·È§Ã�££îÌ©çi²—ážqâõõRí@‚ Ÿ�± 0´M ¿¬G5Ñœpê•ó�?‚«ÜäÐIØUÖœw= 2¥TM[äyO€´_De'`¿ŸåŽ &—í0¥6£‹ŸõHÆY&iP�l:•4×Qýô?ìÝuPT{ÿÀñ%¤d¥»WYBIé�� A:��TJ@@bAéA\ ¥$$¥S1€KIªÔïîðìsu/^îÌý=^ÔÃû¿×Ì™9Ã|ÿØý|¿{Ž�T‡©?œÿh`ÿž9×8%zÜàùÀnà9­|¯ÙŽÛC ÅÏ@ŽÝºVëóÅ“³êwÖFÛ_¶ÔО’ å�Sðì `çx‘³"O–ÃB� µ-7�Ó¹X鬧ØbpÛÿ†ËiÍe§<“\V}FK±×atœYäŸüîA&þŽL•…Êl^fQtb’ó!Ìý3°MzaÆñfÒÆÿC—Þ1Öìõý zª\ŽÛZÆçºÛç’Ö*Z0Óêòˆ®S7Œ«…üÆ{óÏŸ�ùwßÍïÀå�–å^#ÈŠ(uÚko”å÷k¢B¿N½®í>zK_6„‹ê½q*,Ö Ö�Ì”ä–3½Ûªüér¬NzMz�:h:b:"’,—“™ø{dü#¶2CmÈf ;U–¾A•øÌü¹ùóÞD…®VŠ ˜¨0ðJPîq³ßé\Ö”{Ï„Ÿ2ãBãBþudJýJý¦Ï"0P¹m$3'3s2r2Æ_l!ÿv  á>*÷þºrö¹ÒÛ È4Œwâž�8m´þÜ;E|¼ìq<»?’$¡m½ƒ,Іà)ÁÓ‚)‚\c„§nx7œw0Õ0ÕPZ½Fc? ?‰3O¬ÅkÉjÉ(¿ú³¹ýuùw‘Ù†IªKª£Öœbg=… öqôJÈ2“ωjíõ� }mïö®À~+¤J´�¬MÃåòG$„^žby3ÐýÉ7¾sÚ@O\ŸÒ¿G¾Dñ�çcÀ~LM ÖÝzâLWîÉ{¶æ@`B¿ã�ìd¥:ɽÏÌ‘ìÓCöó'²;ûy¬¯Õ9ÿ2m¢?“«(ONpŒnmn¿Ü� Êúª²¤ñ©§NÑé§V€¶ß,R­y$‡¬ öH G ¥`®þÒÈG>¨%`Àµ¦FšO`?‚éH“Ú¾ðyubÀw�Ø\IÎõ�™xÍÜC\1Û*™OHî.OS¸{Ø~3ðsZíw¤rt$ó³o¤œâ¬ü“!±×õp/­NŒ–*GtËŒ=  'k °ÁxŸÈgËÖ¸o\>ù¶ºy<ñ¡ÆèeZ3?n2íC¶Ë­Âšºx©\tí™ÿßv]¿Ɩ^u›™¡Ë‚|>ÝËH}Î`È›`ÚÕv�œ˜SK¿Ä'l¯9úsxÛå*àô¡r-nã›xkz¹84$0"‰é:i .PlGY²Ë™FÞÝÏ4fºÏô?^ÍËÊů~Vzs¯3��߯yÞýu=˜è©0~sªMH 3ªHžnžn–òß‚¹ì³¨aØnQbQâ²6TZ%‡ÌñÌB;²†"dô9Ë�"#𻟻Ó\ÿ4ª1ÐðµákZÓ�:ýh›�£›D袲 H©ÛiLË~]'9QH¤€u™£#ã+ Ta‹àNpç¨Ø¨ØCíf·oWZUZå6Bèü×ù”q7æ4 ûÔ·SIÛg…:†�L­¡†-$n…ƒTq¾ž®~Y ——~ƒÜbƒÛððßÉ·Ï·ïeÁãæÇÍM8èõtɩɩ©åUä_�¾ÍZúe›_G3€lu˜•›•µžZiwÖÂòyÿŠVü²Í¼ý•Z®¤æ½æVèk{?=»éG´*h£0Øn3EŒwÝݦÃ*ë&!¦Z!†Z9Ç­4?f;¢!í8ÐݲrÀþ=›y&˜å¬=£{§�l «õÔÅCÑ%ï{íH¤v‚GBü±!"…^ö}Ìm&Þ“Øjñ–%#’*¯dJ £ÊøÜ‡t‰!°ÃSòâšO[®> ”Â^ÀÛo¶®_·d�h\S²¹ ЏOSyß–†�+m“‹bœDËûÒ¦OŸÕQ ØÏcàÊ÷ìÉÅ�`0ˆÏIet[%iðÒ=n3 #Ͷ)® °ïep·LåѲ:ó,âÙ¬÷^Á£$@·²õè¤Ë8ðe9¶VšÁ60b;û i|Sã6 ®�q[£ÔL©;øô¤ ã1ãaÞ¯BÎNzN)'?4 °ïeçîJõuÛä—µ¯»c=¼)_e†xÁŸ«-úûTG8{�8_‹Þt8Fúø¸­Ç©8ΪÎkº·GÌì}×Sq@Æ»œçûzŸ¶¼s/ŒeVöïFa7µ쵯†~/ûéÿ3›âÓ™ó#CâL!T}/,îðHPÙ|8þĈ¢Bð7Lr—3t\´Ç;�Õ>ì׳‡0͆j¬u+5C?a‚ í·3/Mµ•}Ü,:Im}G™õJ•ú™ºìG°ö ëPp›ç!ºKSÜÙÌœjJLØ$›LO�–½ßî ©ÐÌiñÂìç¶ ¿9¥ÅêK ë2 R;[K«ðP%*Ȥú£Òéq�©­øÒÔÖ;€ýz¦C.�ÈÆxœÖ¢Ú€‡^ʰz¼nô¡7Ñ{.H‘«‘í½“å<=õϺl¿Ù E–Gk¨Ë(õ‹ ËëÏãã5»=§/Ü ;VÐA¦ð .~�?�2vý»dc¯ƒâE¡i¶b˶Ç~·“{}—Œn)»¬l²õÆÒJÜÔx—etÌä,á±uh 9Üu8ÐéÜþ áv�ïs�3ƒ³‘»|—Øý̯h¾R(RPÈ"îgZŠýh¯3¿‡¿Æ‡áë.×ÉM¢·róË„šP½Ö–ƒ¡ªîêëéë¹·LÈ•TÛ‰äü9ªªž&µ•ЕЋáÈ`~*ÈrZ‘9šPk`˜ kŸ±ÝIã ž5*Ͱ�D‰2*Ç�%pÚk¢òœÃ®A¥B©°SÈ£üm7÷òSÈtlul_ª +»^vz°Ç•qä}Üû¸33y5žßÎ"Á"ÁÏ~ì¯[qŽÌñ~‹Ì_h'*œ„á¢�ʲ¤OwsGÙý‘½ø¤µÔdFB'°N`ÅÖÊÅ67¸ þ�–;–;©-�—À*íèÁ©W©W±j\©í–í–Í—ü² ϯkÀAvUò àAÁÿ®íÿüV=Vz¡£å⼦Pä%Ä­© •½fèk{?='àW³7æôצ;ñ]¼'�÷� joÛlžHUIÉã˜(¸‚9cÒä&²5Äì×3c-ph�m®ÝJ€Ep[Z·—«èôsN q­üÙ„y‚b7ZNN!{?Àö—¹ÝN$P¨j¦ÄI›a3ÏË�gbZ¤ V.ÏÇ×ˑ֎ì÷y[Øþ²:ƒm·Á°ak’Õ¦M­®sÐãê|Äî~5�0hÇk#ì|Šª‡_yŠ öóX^ïl•ÏßcÛó2·É¬fh¼@ c›a¸<Ô»‚/W¶Z]Š[5ÏÉȰ_ÏÊêáëôi!§¯jxÇß’bŒµÐpÛûuÁáil å¡îþ˜€¶ß,"$Z,?“M©ÀRëÙ;YyJö;í2gúzΔL¶s/¾º[UÞA‹´д(øˆï^sô{ÙOïëü6¾b-hžaЇ%$b^X¤Rod}ÿ±cF-¾FŽT¯ÓkÿÅÐ+¹xÑÀ~L»e5Hé$`ЦÉ15ØPl¹ùú�…âåŒúã—^Ÿh¼ër0šHu°_Ï$÷†™ˆ6_/>&54kQ  ”¡› Z�c¨UQ`*y­ âpXÒÚ‚ûï5)ØTÓº¬ÅÒŽŠ „È4²†ÓTu0Ï6¹e¤ó0#pcå`€ý/L¢qp1ís“Œœv®—ùê‚~Î ¶µÈ†ÌÉ~®e–[jóà*0)| °ŸÛFs‰ûˆ`ñø:`²í¼7Y/íS×s˜“„O°W²'ª“µY‘ Pœ~`?ªÍ½Jò–ôpzsQYPš*‹¸æ‰H¨a¸Wš =Vµkmƒ/vº`È—ž0ÀþF—æWV[˜lsñœ[ÒÑ~>�mªäG‡6²gè™´õ²;Ãuy¬ž(Ð-ÛÒ„.|$­*Õ 0çéj¶¬ƒ{8?~€>'t89Ô1ƒÖá ÀoœÏ ÝkN(¹2é• GjGnÛ\Éßüé°²#atÁìU¡Ê¸üðENÓVF µµÈPƒ¶‰ôÍv²]æ„»ŸGƒ7Ñœ_f)kŸðm $­ßë<ڑ߯Á@ëU;§%z’E_m�ê£, *óª°ª°uGyöl_œ%£³x®h»h»ÀDÂPÂðH82w°6²A då«ñI<8È$™4VwRX¦öAu¦T«T[|)�n¶£w Õ¢Ié$*SÍÊN+Jz¸,bÔnÈ  a6È"Ü"ÜXÅ'§PÑv7@ ª¦ª¦›*½úßÎÉÛÉ[Hæ<è¯Ó«ËÁèGÆÜ½ÓÙÓZœ>;áò¼lÙàí�}}ê�ÂC�³‘=¤æpápqM½îÑ'=þwê]ê]Râ"â"b¹€ž|¡l�l�ü´”J.—ýe˯‹B¦àO¡G¡÷ßw§üg^(ÓWö R„Gô ¸÷š;£¯íòN{Àö¿}4u=rÇtÀ6§‹%N"*yF’®iÛ;ÊÂ…Ì2^ ¦S/ÈÁ9 `ÿ¦iê»›VÎt!Þ€Ô#†'2…Ê> ’“†ãßÂ3e¿‘�Ç}ßö-!÷j1`€}/ãEÉ‹ç«/ÖB²HʆIÖ¥,,^_‘m \ÌrÂņè�ú?ÃËó °ÕÆH¸ï�%þ@;Ô¹Âd@öL(YØòÂ÷x�ZßÀùÓñJ–ã6rÿÇÞ}‡SÝ÷?È Ù[FÃÈ^ÉÌ*™™Edï•=¢c•½wˆ�‘-’�™M++{“"DÏ}�çΩn÷uÝÏUêþyÿ÷º:—¯þ:Ÿï÷7ŸÅôás¤ MÁ¾Û.|žÛ‚®ƒب¦{FŠs¯r]tüÞw[Yc è¿Çü†­à­`ÖÖ„ÒtG‡ï÷Vÿ­~x÷WGpõT›òo„†*½×‰fÕE¬[{ æS v½|¯o÷gMóSIqЈ»³³?‘NßãN‹ý;‰={X]* }Öþx& ë‰Òì{ÛÁÜÁœ¨ûeÌÖûãb…&�²Œ² ?‰œ �NÄEŠá—/î?"sÐ ?£=Ô~ksy5üb*æ’8§â&×k«,‡XÃ7¯1 ÂU[>ß8§ãÞ? |¾ÏߪíÜååàÁF_ïü�”>Ÿƒf øµü¬û&L�zóv“ ’Û^ËrØ9ßr_ûL¥’Õm¦;^=HÊmÂv×°UùÌìŸÊeúòN]ÓWs雲0k<˜ç§Iý‚ù¶GШfõZE¶<%´µìgšj¨Óc2ñ§”ɼcS½³×QjpŠ‚È_e²wrO4½*íEàvUó*ìpÙ§')áé¤3T�Vrëué*Ö«ÃÊ*´YX#5dZx6.-¤û‡IO›v¸l ÝAéƒr€ºÍcò¹Œœ€F©w蔌=FµZÅEîñˆ²kÙ2ü€öO-|Àݺ6K�ƒ@$ÝàjÉ £®P_LÂaA*–ÚW8ŠòL=âÖG%´Ëì°Y3Ž›�uyÜ<ñybÉ*×^Žc$‡éíoÙ©þr5sÏiÇý{NI eRððÚÂÏñËn>Mâmâm‰aЄ.›‚¡å…@+[XÆ5�>$üJѧù±½žM“øÃšѬ׬_N²‡øfûÍÀj½­KËÞõæ^|õJdThÌcÐÜ]Ü]þû ò5>2²Õ—……BðüÜ,×,'Õ+ºøýèƒèƒlã mþº@ ƒæÙZh6öê!@º=¼“𫨂O��%õ? ¥�[}mbÂa_�`¾ÚÍkÿwªÁ©Á9á–½�½ý|¾cšêšê¢.a4¼¼D _¶%´?�\h’âoyÞòÀÏTÆÉy)l�Ôx�ažØ7§ŽW4SÁ_¯š$ža¿‘²Uw_5~ƒ«¢á)™Zë ®ÐºËºÜQÏiçÙÏ ~=SqB÷Öpm` —"(v¼g‰Où ™ ~-ßz¯`¿�åÇÓnÌ…ˆg ò¼ÙZâ¡™èïÙÔG�îšÓTÐ ò|%Q,9áô°_Óøâ}Ôv«lÈË�è"•ª‘Á±}–ƒb3O.ãædh:¥¥Ë š/[�§wöûXo« Ý•,Γ•ÊŽ�5Ã'ìêóÌ>qdo¢úʲøÑDáb«.¾¹À;l$_«˜?$nÆÙ¸ø3Óˆ¯.NÕïͳжDÛ…wi‘ò(`€}ÏTÆ»ó‘Ôwo9àTèÜŒõ}²]‡au ®UÄnn.™C’+/ž¡G}ãz›sû÷†_¾of,­Ü ­¸ŠÞ‰É'ó6�詃ö†á×ò#ž=`Pëñwï@0gSP ¾Flçõlì÷1¬'Óô«'Å£‡(–„¼Sz âØÉŸ¶k’ã ×»‚¢l²—}бìgÚxÌV#§e îÈÕ.•�£áîv—ÛS°ú'$H­ø|´ßA<�®د`$ÓHªeÀÇÐH{œ.åµj¨½ó»Në¹K�ÊC¡û$Õå¼ ÝoV`€ý( ±/¤ ,»²L#�~*g,$X“®NQ˜,bÁ‘fÙúDÇð#BdW/`€A�ãhRÔ΀æÝæ "ÅÄ:9p�¨Èqf­ð;.c~Js^˜Žy³R %:€ö£Lµ!K¸·Ç8»¬cÛ©$B¢R§¨�3SjœÄ`ÑlB§]›3ùÌ{ÛxcLÀ~žñë?±Åæí Íp¨^RN64³OïµÈ6 !Ý (¥\g«.q96ÍD›owÍ$G´œõU}m7`€6[ Lslõ·&i3éçm�ŽVó~ë9}ÎG"¹-ø /Ô"„äpÆyFÀ_ó+Àºy=ŸA&ìÔÇ•©¡ƒ®ù¥ÿã34ûÕz_�Í—¿‚%!Á+cþ“Ò'¥Í�™…DóVnGm¾nJkJ‹‹4%¥š@áh· Ð0 ŸšN7AK¸tŒr¯çÏ8›`)Ʊ/²/†Ñ4¿O~JR«Œ¨–Vµúå›{Y-‡‡ƒ"=x¡ÍWÎWêÇBë\ê\Ê/Z…5ÄŠO�OŽG<˜Ýý~r-r-™Îç[þº–{Ìk4¡ÐpïîEíc jß˧U:†˜Ê”‘,òϨ9z0™Z¡ñai‡h‡˜3�06>þ;�+Ž+’r�[‘[)L·UߜڜJ6×hz÷>n ñ—5îîo3Úl»_¹_9üÞD#ÄBÒšgŽ®@¿=Ö²Ï^ô ½‰Ð–b~7)íÝ }�ëZïQi†G´•0™·Oƒ Bì^ƒ­�CÌ�^ý”FîÑ$rEn`1è{\û÷&>ß«y~¥³ÅzY‘'èfQ̬·ôA{ðk9LÏ ø·Ù„.…ï\Úq[—¶Þ‘~°Ê'ã�³IÒ‰úsÝtAŠ,ÇL®"öï3-e,ÿ:“L³÷^z>í÷zœíøæš”sÑc—1 ìÏ‘12ò˜ß²ìpÙØ»ïx*ûÿ�ãÇ7²·¬’•2Bdedf¯PÆAêØBVÈÞ!�RLj¬d„ìì=+’½¾�ŸÎïιëv?}¿Ýºï«×ÏGçñ¸êqýq½?×纮k;q¸gKÈ0“gðôçdFÒPM’ŽûÉçâ¨gIhÞîñœÌì`YµîŽsß­ ¢åú-�ö ,<%ª|„.7+™n±´Žé¡?á“Sb ÷öϱû]óæË|;”°—Á¬z` ÄáæKÁ2,î%|ÙRªâ\J÷íõ®öï³¢š° 5ÚäÅ>o‚Ú©è]‰úhóu^<èîcÐEt áMÉ3=œŸïªÌá—⇠ö϶Á^¼lÂ�݇Ìcp.â“ìÜŸÈxm›´‘Å/t’õkœ*I³ ?™âÀûUíÃh¼ûiWû y Š ÂÊrájPí@—nJ”RûÊ&_Ô4´ÿ-+:`€ý/Œ&ùfÑ‹‡ –œã9zø\w(žlfÎÐÒkjg¶kñÒ™•Ÿ¥ùd `pš·^%.-TÃ5æno0­su,{‚¼ML>î–3L©Ê’˜ŸKÞÐÇs¿ýhlŸs}roà¦È;Èá|ä"y{¼ ˆ2 £¦¢¦8·²,ý©ÑdÑÊíÿØúêúª/~ (¥Ïí®�é)ƒ[æð"$w{T>L›¼›Ë©ží*KÛhðïá+¨HŒÂs]S�©’—Äçº�þJt¤t¤[‹‡µkA­0}!}!¬ŠïÝGž�<ün_g]²7oxé(Ÿÿ#æ�×�íÎô·Ž˜³Tã÷©›K ÜoÝùôÒ[·X/ibR«†g'Ö˜å¯àu³Ì�>T‘p0Çì¤ßN­¤4¢î¯Õ4�¸ÓBò�ug!¤o§à~Y¯ñ‘ì†âßô• Õí„qí·îŒ|,?òM{À¾­êŠ\;rϰ×*«�1Z,4aæ4MýŽ+z¨ÉU’KL#PQµˆˆ6öÀû;M]ÇÅðÙL;l¤20ž&Xtv­�”8ç.ʰ!kdì}®GV“x\Ë�ìg/LPRÿñ©\Õ�/˜2ˆŠˆ6ÄMLÆ®K5ú|̰GÅô‡u²@ª°ï»دjÃD\Î.P÷·-Ñë’T &™ZÿŒï¨u÷^®5yÆÈc)-Vq·‡„/óôâÚvæËuömCŸS<ôo:†ó�]â—uýÞµ­’‘¥üïã}™÷p¿ñNå’T2�7’¡Û-9ç=ä�ßž‘‡K᣸¼R˜ŽÆ¹\ÿfû^Hƒ2 ‡‡íy†&K½†—JÖ ‡ÉÛ †éøzäo"ïç@~îùºy¦h”yèpKÙ6v#›nëusªÜ~3ò¿]²ÄƧÆuPqÆÙOW|}ÅmS0Î_ë6ÿ±õ[Î¼ÓÆ(_ϼ»3ÏÞ™1/£>õ9n)N”êomNJ{´ß¼Ìþù7Û{c!U>‡\žñ×y\E„›Ò�ŠH„hY{Y›Õ/C16ÊMZôöÇü9ü9¬B×ÔÖÔ:›à‰xBámÕÀë“–žñ„·þZ=l7;êm~D�åþ²þ²ÃL"ìKl,ˆæÃ�»¹bà¿Ø­3—ëòlä*<ººëãðʚʚ‚reÑÈP:S:�ß¿7TÈþý >ŸC0»?O ÆÚzbÞ¨Ónnœ: Zä»é7±áÖ jO³ÿžÏÀÓ›²rð "ã¸ã¸— ;Û áãпççM ;»±rE–<‰<‰Wâ+\UÍTÍNÿº†Å½1Cá‘>ѪԪDœO¬_fÔÉ1Ž><1PSfÞ°± éÒ~3*ò¹}¸ˆº·ùÁ‰¦,¯úyó®%í—ìW°-Á)Á˜€ÙS:ïÂJÓÔ¸­Î1Þ,TÐW饨&’ ¿L*” +ììàÛ" µ^R*FeÖ™j}n?™È“ŸŠp é_3�ƒ‚›¸£;ò­žösl^j~¾ƒo¼Î³u�I‡,ÍôeI +kº¬B[ÊèÖ}tO*oǬCÆ€ö=ÛÄAï2¿7¡l0§R±Ån¾cc�¾qôO1•™5 ZJwýä»-y™×Ok7!Ï@RÁGÃß$á”áäI+î7!Ïh÷ >:ª.DÊ¦á £IŸ�D]ã°Ïq‰5ÀíB/_·óûÆ}�½3Щ/ÏùÛ7 «Î…ö×ùûæÝ1JíñÛïšùXþ®ç&¬ó}ÒN‰EsõâhŽË–D{XºGéy{oÎ[^h|Mâ×ô.ˆØØ�¦*kq«±õåKPÖ—93xÏo_÷†* Tdc›þ�iß+ÉuˆŒ�~?`€ý�v!ü”šRºŒ.E¨etªû�!æsBØmšÎlÞV�‰—�…Ý(Z^…€,Ûy–™Iõ–¾ë�Ãò)…rîKCšL9øÃÏÏ*6 ®¹œ›É ŒPxcØÁ²¾f—ó«ÁÚŽOi¦³×�È©|ç�q[´JdVãQ•sEQìG-²ÏÓ¡*G›�T2ÓìR³E[¸?Ù¥=WU'á=ØCëqË#2E€vЬžðºÅ1‡â¸÷îråÝ|‡(Ò3Úß²‹ò½«Êϧ_0�v•̦ºŠ<Ç æë›·ZùÐÜyk-õd¿9ùÞëâ\} O*ýãG=‡DGÕ, P"'•Û|\6H3ÍÛ¸ÄïÆ`cŽ?ùí{™¦g˜ÍFŠ ñö‘Õ$:iûÝËäøü[¤?±3ƒÈ•®|ÝÑÙqWDõç’�’�lI‹&[y+Šå¡‰ 4ÃM9.~\œ ïÓ§axsð2„Ð!Øëð.¾‹ÀÝÍÐu³Ñ銠¬ ¬˜”N1ç§ëˆp4LÞ#jíâNÚm9Å e¤„‚žþçÒÖüÏ[óí?ª¯3r·RYëÝž¿ðF#),žêý=˜pvÚ«Axø;¯ü^ù jDÉK4:6ÿ•„u…uÙÔ™�2];„\ÔÚÄÚ¤‡Ÿ¼Á¦Á¦@ï몎ìíÓ3xýM`w°;â|rýr/SBº&B-U°™£þ¾¨„n¿u!äsû¿½ÿÂÑ%²þ@?àä¨k]âuvM–âǨ×AÇÑúzHšÙù„/Œ‰EZܦ…ßÖö6�Ë9öœõ4®2VÉ=¦ƒUÔ˜“ÌóN©œâ±ÛS�Cý"*˜€ýû,{lÀW„aBfJ=ŽñGY&¨Sm8;ßVþZW¼Õv‚#°¿Ï+íã\ñs/°ê‚§å4„au⊟ #Á�Ú~t^cÝá̬jÿÊ `Ëk[cÅݳ U¿ „°�ä9Ê‘pgØÍW XXqQiÓ_ˆ’À8*{, °ƒoXìœ6 ~3 EÊr]vC# Â?òŒŒäÔ‰#…ÑœäG‘ñ·ìæ�qä™Ê2åa*O+q]„Àiêpå~3ò~Õ$é,ç•Ôõêô ñ+ü%�(eÔZ¹™ùëU�¢_0½çå@ýãLubïLF¶{,Áz}}Ýl]bR‡~ÑØïùX¾õ]Àþ9ö�"Î’ie:L:wPLplýƒ ãDoÇš)VLÛ´®ö)rH§L¾Ü¸ °_ÓDâý´¶ËiŠÁÇ¢ÎWbøÄö\é—zûL•èA–.8m0S±ßvÎa<³°Žu¿rôÁñ ŽƒpÓ_áÎò‹8‡õ"»G×¼¦´(~$Q<ß¾Mdú¹`€4»­R«’7(ms¢nö^¶…HuÜGâ±U›ÐF@—&�»Ð2Ú,Ýo€ö=ÓoÏCÓÞ¾éBXbt9$Âqi´)­†EÔ@2´Ö›µ„CPû9æì¶k`¿¦Ñame½ Z&ô-^?|W>ä9¹_�?£Xßf¬íH¯k‚¬$ºòõZF)`€ý¨½µ Ç¡?&™¿ò!úØ�±¸)œ ‹éÉï"NDÙMÝçsŠOž¯Äì`”;ÞG+É¢ö4/™ŒíäÝ‹B1°ÜwdMÓ—Å"»oÜ¢�¢‚ï­Ðšv°ÌÂŒ¦XhCÎÀ²héüb,­¾ôÈ´æDg· í­QN&*´’8œë&=€ý+#&'r›Ç‹Á¥5'¶£ð°ß&>Hß ÍÈýÞm ·ÛëRðI’â“â—ßOZ×­Þäý+Q»S»—E‚ƒC]‘£î�eže¾Ÿ(SBQHQØÍøu•M{{*/§§îÿßo÷å9¬ÑŒb/ìürV0§_¶÷±3G÷»×€|nÿŒw™Ü:=[PlyÔÔ(‡ô(®yUŒ‡­ˆçR<íŽ|À’2Œ‚U3šõæa§vðmYî1ñl.Ñ‘ ÷Û�qU¢d9œŒ)§î Ôm‚ÑS-¡{™¹¢47Ø�šÙ°H|Ê-¢üð3G²H QGê‰Ø|ȲuAž2¾�^½×*¡æÄ¹¤€ö+ØE b«&ÏÑ“½7ú�ÏI_;Netªr‹€3b|‡L!­œ(çÓ;}20`€4ÃI­9E,MC47;!nmFI`Š ÒÆrZ*$(†uH?!£%i °_ÁxËue2¥ª1é¿�¬h‰+Pò 6ºÉE¢I`õé•�ºv'MKÚÛ‚Ä •V´J; „0-F¿Ë)nzJÈëV—xc-Û›ýI Ù5tò=oí·n…üÎÎé’0Ú@ël“twu·«vµ zDígt½TùÛ�çcO#ïÞu«WÔ»Ç3}Ù³¤óÉrÎöú Îø†ýÖ��å ½kçW´R]–:!|›­DQj¬ ËV³Œ;x¨*QTŠÙî&ßd°9Ô¯ Ê)*ìï³™*1Ÿ GÍ­{µ$ïÐ^É:0‰œÌÓeC$^Ðò € 3 ?´~ ØÏ1ç™0¡ ‹É$cêmŠûÿaïΣ¡ÜŽÙ#eÈž¥›ì»É¾FÖìdg"»lÙe !kB)L²›$KH²f¿ö=Êž¥¤P~ÍÑœ›¹ºî9÷÷-ÕãýßëxΙ?ž9ç³=ó<˜C«0ÔZ¾-2H`÷„¸°úÃ'çË ä`üÀÛo¶¡[ûÆ^¿6*gyžO^žoENÍšú‘•dŒDÁõ’¾U—*=²½°_Çʧ—�žŽF£~-˜Öu!I•‹òq«åáÌg^ 8ÇìÅ €ö#mâæk‚zž‹ÍGFõ;4Æ\vV‰iL#èÉ$M¶`/dô¶ÇÏÂ0À~#›’!«V Ä!ïr—Ë�?×=÷6ؘÞïí´üާ¸âÉ�ü× Êì{Y”KMxi´”ö"�pƉœñ¨HÐÍ ª¢ÛvÜ韗›˜o¢Åvô¸¦Ä}л6ÊĶvT-¹ölÀI‰cl†1¡žãÁê³þøny3ò·ŠMì{™V]–Xo—evIÛ†ë�âÒ&ðž{òdl&MZ�xn³¬:%YâöãLȬÜé=̵úµÆms›‹'¬+ÐAuøG§§u•òÈ슊‚Ð;<Íûul ÿª3¯êÆ\ãêàÌ”½ÕG\'y”Ém¢,ÏIXWúÀ"X¨†ó3)ƒ²)iìPcÃ"êaÙò\Þ®u_ÍÉ Ü‚ÍXÿúùf/}ÏÍ„½öÕPß•7ÌÜó‡ãÕè�vlD�9­ÜÎÄ1Wt\=wweØÄÖg# Db¸ËypîÝσ'3ßBãª']ª’^{tÝ@Os¯óàlŸ¯ z»3Q/îÔ*Ž|�c?²׎ñ Ë4ôIõI=â˜'œOÄEtœž­õïÕÕ5F¨ÉªÉ.ŸBÔÔH§ŠÈn ‘kùõ—•ˆú·îmwí Ø}dVý®˜®˜ ÎI•çd¦XÈ.Âðж3âË/ŸÒÀBtBã„ÆÌQDŽ1Ž1lÍw‘…ËHÚIÚ%a'aKˆJ¿]¨|¨|u¥üŸ[¾mPˆhÁu»–ª› í82’ë_@½å†þJ ®®ÝŽH½ f ³ÔNÒ0�ô»ðo,,»Õ‘ù.óçsÔD&Õ&Õœ#ò¼ª¼ªÚ§¾N º³Á?U²‚A�Èû©š`û~:V’{Á–éÕ¦^ Fc+>Þ^û´¨÷ö~ú.ÿÊ&ûdþüð 0M0i/^‹i&‡©å2g¥Iß:±ÓYJV ¶ãö£O+ûý¬Ø\­®êÀÆe}_~¼vSÍ—¼ó…iÊ_v1í ²ò¡MÔy(×GÓ`?ƒµMX„Ôžt?Dyi†=cÙÄÑ®ú�ÑIÑFã3#¥…S[íäej°f\À~m Œ™³O�Õ1_w*ed=¥�)Vˆ 4ªz/§8¦=ó)¾Ÿ(åy¦)`¿Ÿi‹Ã3‚Ч6+Õá {Hý޳v¤Ø“pŠ•¾ÀÙÀ*G²”£ûYM'`€í7›'Iw{â4BÖb 2˵X«æßíwÃ<0bùìÍejТ„sxŽú›ß@]›¨ï±“u€Ìž,4kM¸Øç"¹×ÚDtó!ï y£O“f„� W±éFF�ÔñÙ6܈£œ‡ì1£lêo¥Sú4HhŸXˆØem‚wçÚDØ—g‹cÅ—Ú›Õ —à7göšK¢~–ýô;¿›MB©®ÎvàsòœæìíÐܲüx*E!ù>Ó|®7ú<¤ÆNh¥°ßÏ 5Bj­îÙ¬ú›µ¦vy8 Î60« käâ.$,âºP03Cl}íÛ_æÌ²•ˆ'SÑt”+už–€ÖpQzìºi [�|i6®Ú(L\3¢ïòË€í/«ÕÛr²8ò®ñ£F§g™ ÷aWßjúP†öEܲJÇÇÝúûuì~Ï’ù;n?;´-w/v£µ�xÞëÇZõä<˸ïIU©ˆ±+Ý·7¸Øïg%Ï¢6T©Rƒ®ª{ÇÓœlx`©ÞŸÃóEî|E UùÁW?tÀÛo-”}ç¤\®™FÍ+)飌™,ítÜ4â‚Êà¨>9¸ý)ÕW Àþ½]¢êaŒ©7ì|Ct%ñÀÒ›MÔu�ôÌ3 S†"ªpI™Å2Òù–½ÖÂG¨˜SqL)O{ÅYà .´—7T‘»“Su ˜ñb¶i—{�½£ Š oäjUÕ™K'¹}Øe]²û™á.Å´€ã�é0B'Åë^gØ?_ã}wgÖ’÷ÅQ#iùºü`dµÌk‘aU:Û:ÛÚ+¡[ÜËÎzÉMö÷DIDI"Kµ ZõbD†ÝiˆŽ„ ÊŽzr1ÊÑ’RÇÅí,YÂ'�mQ÷3õ3pöêâ8¯Ò  ­”CrJNߎÇtÚ¥Ux&/9/ùÓ DÜ­Ü­R—•‘59@ íàvpfØ·s~äü(²[CóŸ£ óa’Ñiöí®&W÷¤dm×]â¬ÒØ4ŒIöW o¼]5ª³Ç±ÇY3Å6;´¹ý›„„o] »@ÇîŒZ‚ÌÇŠ�ùN�“O]žºH³}]§ôε2ê­é­!ï§[àíûÉçœÞ§ ÏÀ †ÔȨaŸ½Ö™Pïíýôþ×ïac«|Ð4cœ˰¼…gù�/¦õRàªÂÄzì_ø­„xßɆösÚ5†zÉxtýüä0c½M…�æ/ŠLe½Òžq^zqªÞ:Öé`4¡Ò`¿Ÿ‰>î ùc¢?ºQÈ&x�AߤY†2@B€r&p5 M¹‚]Îcm‹É0ÀÖÔ—Ó(cYEá´fK1"Ôì/Q"Œê½’4Ãè¦�vqZÀÚ*&`€ý/LŠ^õàJêz£Œ91Åë§Ø´W–ta›’}¬oén*/TE�ökÛp?þ½Ã+½„æñ¸Úà­û“éÚ¦lÀh“øO1–3&ª€[/€yI‹ìgµ×ãIž¢nö“ò|â¤é‡«+jAuC=âx·c•:×6¹cgs}¨1ìa”©¾%OónY:h¹$±ôq»m‘Þzth3cžŠFS'£#ìõ…JÊ·–€†0þ%ë÷DUñ �MfµQnŽ�‹P×�í$ÛÇÌjqÙüqëï„ìµî,º:í‘àšÈ†Øª©œ§éÃqù‹ø½ K&ãy cÒCæXÝ4ŸÒªÉLÈë4�Äo´�wYwæß¹î<„÷e üY€Do.�o lT¤^7œ}¯uBÔÏò_ÞAØþ·÷z‚Îd÷[Á:éâD"oÍ‹R6n¹aDš:�õéÇr…T¯_ÆÇÄ<`?ÒÔt]�Ëç;á“ •ð¡‰;�™ÄDa¸7ÑF�cî³ç[½ÄgW`ß˸à ÃBál••§ôéGJ†Žlˆ™š¾ð–jXI·GǺ ïfð«Á¹ï`?«�aÏQ?¼L1رJ£®�Üâ7³þï½êí?_gPÇݨçG®¯˜8XÒrÍÝ<ïþ@ÅM¸`¯ó#Ÿ¯QƒíLœ¸�´öëÞ³!kÑ·�FÖ(†xÅž÷O‡¬óT«¸ÑßSÂVÂvË;¿t~‰ò"»X!lDó#ˆÔ¡Ô¦¡ˆJ¶Ô¦¶³ÈF‚Ì \=Q=aÞœ�ÈgìAÖY“|ýp÷v„×´—aòôåˆ6a›0Z#D6¾6¾7‰æ�5É¿nzÝ´ · 7%úvI¾I¾ý<Úÿ¹¸K�A|&ˆ.¡o'¸–Ö§1¸Ý°cf©¤Cƒ·Ø_”¦„Û!ÊH,P(Pâ”3^Æÿ› j jRâ L Lè¦Pƒºããð.’T2W2gA¿n=rgøïQk7U6U¢ÎQ›¥óBÏÚ&lÜ£þøgkšì^sTÔï†D™MÀ³ôaÅy— =±õ5�MHâÕs¼ËDÖÓ¬¢P´¯ç¨\ÛsTÎ�sTÆ/sÔ—/XðE@-£RD®Ä«{ÍQQ?˱ŠþÖž[ô0ÿÆeyóž×e�çìg°��W�øàaÝ™¨Š;ªVrGè|*N(÷“Öâ—Ž>OÌŸØ Øþ·7”ô)i˜Õ0ÉZCÚ é˜SoKpÒüI{íÐQе�ޏî[¬ö}lIji©‹{¢þrû:½.ɳ†²xFÆ»ð*)“Ð׆—ɯ:¡€ö-ÛÄÅè1wŸ3%k2'W¶Åi½ao¿ŸÞqô«˜òü *S2OÃÔ›,mÞ¢šÐÔ1«T؉è©ä#¸�ñ‚ N‡Œ*î5fE�£Ý7ZqTYŽ9sôÀi ô¼CöY® æ/†ðzÐÄ*×í‚vÙWáÛý<¿$gn�/®kã\3ÃS—ôã{ÍÇ8?_óžigµÎبE…}� ²î÷2dEÌ…C…C íç ´ßùèn þ½Ðs¡çÒê˜>ÿ±ç#ÒFÃsGôz‘ãè!aü`DŠ™fVÛ�ë˜_FFÆw…»b˜œNɽւL…$á$²¡ˆg�ÛeN©RÏl°F4©3©ãx‘½˜½Ù}!dNÇÝ]Ý]�îÐD¾û·ó)õ)Å“ÓõýçÊùÑCÄ ÞŽ= ÍAb;KŸõqÏ �½ãÿÊuÚmVUÑ QzAzÁ qŠÏÜ8wù¿ÉtØtø• ¼ÞÀG­…!¥;¥ûr�­E"Q"KÄ×Í`í ‹‘i†p¶p6ò~þò»ö-*‹‘ƒõW n˜¤õí5B½·Ôs8Ö…Š:ɰ)�´Ç³\?ŠwFÝ5b©P·¿Âêßu@ƒ»EÌÙà�– -`€ýWÃRa,m‡ZŸ×ÏelÈšÇâÃ6W?E)¸1ŠC3c6ð\bÝOÚÈp0À~¤iE»?¢ ;ý˜ú6Ûø«Þc¬'‡á”Ý÷¸Úù&,ºö¢ñy�óØþ²­ò´˜ òišžç”ï„*9ôG44é³FŸÈ(6C>¸ÊÍg„\W˜²lÙ@««ú{�0ÇG”³°œ°zÐQòÀèWŠ.xm´çÊÎð½OBWz“­(„`ÿÕb.;ÔdépKd\Ð/>nÑ}Ÿd„L„†½¦ûp&<ÏÚ'ñݘ´Q `€í7k<ìmqÒ¡4qŽTœÔS¶Ò«—›�l?=£½›iË÷¿?ûdö)ýDH× ùá{T~'Ôu!H–€^˜y»Uå�ikHlÑ^ëB¨{ùoŸq¦Ñæ÷9 �«Z£Å¼<ÛàºAœaÞÁ.v3g—u¡S;ׅܾìeŠŸÍý N!U¼™¥6WRF½×<õ³üŸWöcé\Ï1 >5îv‡:Ù›Y“¡´Ýtr` �˜Ž¯•™[@ë…HŒ5`€!lV`º®¿é¨¬cŸÌeh T9û¤N�‡’oƒ7ʱ*N•M`ÛÁNËRY7z DyöP˜©(:ò1˜JVÍ’óFŽ¬Ñª¥TPÞù0aDëä`[ÍÀOµÇ©!”3Ó£2öÑL^ lQAº„Fúï“— ÛåîÑB©›l;Ø� }¥4…j‚»F%¯Ç*Ÿ Æiö»3š^á§Ö&·þð\ì„Q"/¤9åmAR^UÖPõµÝHV¿3·\ Õ±×  ,Úš®ÑPìÓÒ+ôÜl�ûÌÎfÅÒphÀÙLØmbc·>®vµ s†”‘mòúÞÇ… lè 7ØÓx`ã=��÷_äwÑïóÕ’}°v9Žg³=�‚¿}æ–ï·íZfÇŽHìë^8aŠTƒhbRiº1zctNG$—óÓ7©”¡F®X¹X™ü…Í„ÍÄÞ4tŽW÷¤£[Ûƒ®…G׃ÝÜ,ØzCÍôg0Ñ:TÊTÊÀ—YÝ5’…•0ÕÔKbªo¹ÈºóÉ7¹Á¼'ƒÐíß3¾ÿ:y"y¢¨½3+˜–Jž�æO»çµb>XÍØ^~Âÿl³u+ì±½•ÎnÚŽV®ÏQ'¶Y¹)ÁH¸ädÕb‘zƒ W#G£„;6éÊn›�½ÚÑ ;Å%€ý{6õXÊ'õ‚ö”Nz-õÞóÃçÉÙľ괡”)jùôù{á³Ê;ÛØ�±KS1.N°1ÖäPú¬Â œr£Ss·¤zÁv�h ª>­:z€nú“uØV³%½ê÷¶ÈºÅ« �» ew­˜x“Vxi™@ŒÆØšô ©a-e€ý<.{Å5·§W1¦‡Iò­´or»E¼æÈÃ&}EA�;(úBöŒ_!0ÀþM‰}Ë®:×@9`ЪÝCzÝÃQòøõúd0jŒ[i×´½¸Ÿñ‡N/KÀÛ¶ë•ò®ª£>;‰Ú]Tr�Ïõt>ø›°y­îN…𕥏Éå\‹—Ø�²ðK÷XBJ"NϰJ¦íÍ “ŦéBïÝ’³L=÷¼Ì¾ŒÕÚ`h$MŒ^éÑàæ[¤;q³ú˜Ï#y9f>£ë�nCþ''½Éœó&TŠLìGÙ©Ú;2]íVÙÅÍKNxE7”ÊM‘�B™ª#»,¦mFM›Œ…nñÌ;Ä[‘öy™¹X3[†SÕ[­[p›s{Ï–ã‚jÉè^ǽÖSÏÛewïžn«›9`?�õ ®9 k.½©Ÿï�xeo=±?º�¡ÙŒÛy¤4šÄARO o†Z¢3ƒh;=‡Œ>êe8×Ó�™«UãsU»ì÷´ÖÔ�„\Õ1oŸ/w±uÆ"6{O‹}÷bß¾Nö ×"Vìø¨ X;ŽÞWÞzMçö»>S[촀 Z£ öƒ ~ûž¶ ¼þ,ÌŹ¶Üãýú¾øõMd$›½WÃ~–­ôÿ3Û‘GSgúz%Yüé»Haéû¥è­æ* iKEÞàÒ8ƒð2òí±xRدgEðµ•xKWÄHZ`ÚcÂSÆÁÚª—`­TÖžý»ãtï«t³´Øv°æËp5§ 9äâڜ黪BcNéz“Ãý%†¯ÖZJOd4¸ös›ïõ7öIQºF²sÔmƾêiwž0*©…ùW~T9:xzb5E•ø<دg§id‘i~8“Ôk‰ðƒï3-T÷¹í|ÅË–ïhh�#_²ÿEÍã6ÀÛj6E›êü<À¡WãY�y®åçÁÁ*±�Îé vÅ�±‡+?Æ —ÌBÐyÃo`Ï%ë:펜�ä,0oBœë¾$¿Ù\2¢¡Pⲟªñ꨹…¤‰Ñöᶤk©ϧr§�õL‡n0—ÞxÏ¯Ü ïdÍ Ú†�:©„qÏ7Ûó+ôÛg¶|[…FÑ vK\_§è‚)3Òß Ób•ˆ½ˆýƒƒù…FReÝ Þýs±±°;R‰R‰ !tçÅ,tPst ÖY¨¶,t�Éô¡ëµ]JúŒiï. f<>É­ÆÂ´ïØ 5L”3ë)J”‰™Ü� GWQUQUÇÑ�è %�êÄ4êTdUd…èDtWzÆ|¿¨�¨Îï“Å®x™òt0™õªeÝÇ\�×ã 5õ`9›ßŽšþ£‹LEkv¶èCÒ i³ïw€ð§Õ`' - ­È83‚y¿ v*Ч¨OQCs­A  !௛ˆø6:'tf&E6E6ÿÛ_~«%;ÛÒp~æ„hèEd섯ÚfkØc{+�ð«Ù¨ôÚd+³ƒÛk�®”�öšÕÊÁDµ›YÜS¨Ü˸Sf ü;­ ðûõÌH Pm�i3ï ókJjwuŸ|ºOSR+—x1CRpéã¾}¢¶WìÛZæÈ³G¢\þŒNdGÒÔnðn£¥Á\X"ŸŸjI6ñ‰� YíÐn�±BÀ¶–Uë¯]ê |iI¹P¿¢ÕvŠC ô¸ …Ó•*¶@Ž–aCü{‚GÔ÷ ¹BöóXVç,|AÐËgÍÅ�ßxúD@Œp$s“A°‡[©`¦Båq~õ,{Ãs€ýzV\¾¤ Mò?Ús•¼v<—ÜÅH¬™!Ói?ìõ.àr&Q°íiA{õo¶’°¢´Ä2Lô—Õzn ߃qO®¸8|°îl”iÄNõ~À~=“~ØÀ>‚Š0[*à�ä00mP†øÈ‚LøÎ‡ãh”Ó⪸.öìà¶ 0´5ùuçÔ+[U2:,F1öK ü½åêöC?ªÛ™¥Çž.JöÁ™' °ÿ‡)°i’¾Kú\¯ §a|û„p÷ÕY½Œ|ËCËròݼXc5fÀå`ªðÀ~nëC‘eR¼ëÚ �!> ¦^ËMí°M\ÊØ/v�«Œ+î8u“µ0íÑ{€¶]ííP¼›´³ýèyUYúTŠªŠCÕ Ú—�²$·¢ÔÛ—£&s{=¡\ø€öÿ0HÒ•â'y VçO]Šçét^£Ox@¾œ6eÑÖMk Ö9ÀdQ¡ ù``h›=û‘ªü¾&‰Ùþ¶gæÕáÎÞÃ^'´“ïm„sTóy×ͤl¶N(=ÿÚá­HeCcý¬LèÙ§=ªçȺ8fM‡òÔ•^ž‡ïxÁ²š\µËtסÞZmcÙÍÔ¬Šm¼Í>4€|íSQ£ÿÁgÇ[ 7Û�&üÛgÞœú¶d$Ç vÐé¯Ë;†)çÝL8éïÒßå ê¹f iÙY“Îöç¹¹bº>6lƯþ½>¦ßÛ•‰.3éÑálqtÞ·§LÖ¯r«ÆÔä±^Ïô=`�¾èè�)“Á£ “2ªÿýz-vT}÷øHGÐe—g—Ù C„ Bb s1©¸JÛKÛãüÖ’—å“ï÷†â E ¬Æù¯; Êw,�tÕzp®ù—ˆõ Šä1&ž”Ëù#ÃEM±¡3è®>>œp8áõø‰[)ìL'h?´¿-��—�×±»‹1üÄüÄí†È.ñ.ñ­Ä_w?øÛv£ûP –Ëý÷î’/kà5>r]¹à+¾GÂÃô_ ù7[wÆÛÿäN{À¶¾}ÔwdO7AYg´±FK…%LICêלñÃ`Ôlƒ¹š‘‘5"Üû^Ø¿i'ôœLʦÚ�£ ã!/GRD‹•?õÐPÇâ ˜p]Gdñßµ#ã_( °e�¢rF’ÙÇß=aK¥,~I¹$ƒ _Vhðy—j�»ãò‡×c¢,gÀÛ®6@ÉŸs’bޱ·užEŸú±h‚˜ùÙq�ZêL­É`«€•¢Tel7µ`šô8æ»íÔ—y[¨‰�¤Ë«ö�ÂZáÃÎßûn«nje‡þ÷d_æX$œ q¬4™Vä•\ت{ó�“îjG°Ïb_Ê'¡÷1 XX¼_èM|¦(þÕjzȳcHbîG©ÚõZÞ}î"Ôçl+vOÆ×cßAˆ½ŸûwØß»±ç¨ Jyç�Ù"–2™V:š’�l6GÅþ{ðåJm|j|pûŽN]òÓ—ù¼èº,wM'TxŽêìkÞ|i3œ¯ç¨Öç¨ßÎQ¹¾Ì)ƆyzȤ@�iù TN4ó›Í)°Ÿ…¹˜Õ”#”À–á]?§ ï|[Úv0À¶ƒ­ˆŽ‹ÆøOKêM„—§hî·V¡d½r_Íhä?ìÝw4ÕÿÀñ‹d„ìkfTvÈžIÈHÙ3²÷žE„Ùã’Y²É!${+3;B„”²ß{|ïùæ~ëë{Î÷wêVÏÿç|Îyÿ½Þï÷çså†À 8|¢þa× ùÒŠJ_†ø¶FNK¦�˜‚Z›~¡A‡�ÚO"‚÷CF)Õ ê»8Ä »lÑ/ö}lEle¥�cºÉ£{“Vƒ(Õ°¹2†�á�mÑSu1½Àw:Gþ/k‹†µ:%4+äválál„y¥Í•>Ь¹SoÑhшÉ] ]‰�ÒG{ hWm aû„âQµBk}@¤ºŸˆ™®%¬YÊõ©õ)«èØa0 Ï6,‹û–å°‚0åÎí—†÷q¡½Ž‡,‡ì:;4Í:ͺ±Q›pXŠõ|ô|¦Ä§ÄE®1Ò»+W ¦-Çþ¹@C�– hò»û¹ên„ÓœÞ/G<©Hµ™Ê…í¯4[u˜EÏA{!Ù&ÙöSbgˆÚŒù7…Ù…Ù5ášâšJOÁ×=qšã4‡ì-œˆ?D;õË|ðæ) M¯g¯~ :ö&£Óÿ±xÀ¸ìa3üŒ–¥ûÞN~5B2kEœSyƒë•M¦3Äxêf?’Hͦ•ßWÎé¸Î@B¾çoÓÁ/¿2ÒtÇ÷q¤^Ê ßa3üZ~Ô{æÇ| {IÐÈíU'3�wÎ÷†>Ðe®ºjs›%лE‰£CÄAGEÀ0Àþ«•g¨èÖ7¿®•ËМ¹ˆUçyæmÓRÿ�­qtªyÃávÑM/ ]�Àû‘¦æZNF"^M™Ì×59;0íhnÑ=ò—g»¹_7›¼,@⾡æ] bÙÞ“”ˆ4Ò9ªþvrÛu¡K5lZcJÊ´™ØãueÛx6œ¥ÓÂ/½± ±l¸Óùêg¥ u»rò…ôœ &1©oج¬fµZ¥$÷çxäËkÙ²‚H€ö_-bØÃ¶>S�ƒP4ÍH«ä¤IOØ,¢1a*Öú—¸�ŠòÌ=ãÖ'$tË Ѭ÷¦ ½mEÜ[ðy°»TÍ�Žã$ˆôŽö×LUfè󕺅g´Ó}§eF3(xøìáçxžL~Í ãn3òÈ9sž¨ÂÃæxø³×µå–çì)Tùƒ¶Ç'LK�"f®ôø8o¦÷°ŠÄÆ eŽç=8Ç»üy–yþJî†`0™XÉv¦âÛ²JÊÃæxøµü¿ï+{1÷ læèøóNº¤R&ÜdR¦«(@¾ ¢çA$¤áîdâàW™Ž0 0¨-ðÏ5µKÙ ^ôЯח˦W�A+kËLbŸ¿\.p+ç>>" w°ßÏ2¦^ÝÉ�+C5 2$‰^v�¹ƒ´6ŽÓ¤Òz²ÒSóBS¤ûšW('ócÀ~œÙÕÚĹäs±­2hº.Èä´ê†¢½Äá¤$ÀŽÚÍ¿ª´i{aI>“ëÓ(`ˆek�] ÷ôÜúcÜÁL�í¤ØZ­4p›˜±’ªS©D�G=-IŽâ“ ‹Å%¿ÅûeO¯(Iõ[�MPóÿ—w*Š„f .Ó€õ–Eß LÏ1•{Mß�ºÉíŠÖ÷m_€$¸F“ Ív6ÊóÇ3…t“Þô¦ƒ¯VüËpýa=wŸ¯„ n¡h¡8QÒ­±g‹î[nRÈü÷’ç’ç²@ôIôI¸)ÐØsÄ U•B£¹m%³1Í�>Ÿi¿”•¤S°ݶ[µ[½§ha˜ç© †eB\3Ë㤿ñ~RfN’¶ó7Ô çç,(BËßÌß$=1æ+ܓד÷–õ-+µ¨ö‘o79>9îºÿÏ- X¦¤½„·¼ßýs2b„Îû¹×á[ßò=Î诜0Hù¶¡Y×qÝæºM+�Ùe¿[ýoää‹dT+�ëeàPORONÔÕûvòvòZœú²êƒ1Ï@;µ¸W¼W ?S™&祰wSã7…{á8Ξ¨=l¦‚¿¯š(žîô)e³á�Jü'®Ê6¤j2µ<¶“\a òúÜÑÏhßžeFþûLÅyp¦ %Ú_K�öððc¿°Ø‰<ÜwJ‡ÍTðkùÚï öëX8ΔöÓB¨xö¨0ÏÔæ;š×C}†h1= šêBÄ^/%Š¥^»Vösš@¼ŸÚn�y…+}ÔÕZTÈ õˆØÜy¼œtM×ÔÑ4ÙËeÛé´nÀ~h·óÁ¸AçÅFå À–î.�ö,cPÕ—øyUYüD‚H±M�ÀB�`€!šÝ“«€(?·àlZz„•a"Чb‡?õÙ¢ ´å߯ŒãÎ·Ž²Dy 0À¾eÊÓ½�QÔwo9ãVê]†x1kMv¤>§Ô i¼ÍPÉÌ£^wti×¥°ŸÓ(ÑvÒ›ï®ãúVlžˆ• ®#ökºC#<¼ ñ£˜r¹/yÉ+ºöÅÆÃ*Àû¯†7gBŒAE/Züé]4}ä+á¸Y •µIóáœÑzV3xYŽ1"I+µ˜€!–å²Åb¨%š4ž;ËJ$a9«ÊS”=OÔ±p]8bÀ3�<ÙõÑ' cÀËLŒÈ+øÖP¥tMË>^µÆGS~‘Ú™àävwwg’…–¥2ã¦ÁëAÀ¾�Uãã¹­`Å ‡Pã[�oØìâŽ#Òï"’%&b÷mƒ7 Ö˜C¢Å óî¯ãÅÑÃï ;˜=w â�­‹ÄpŒÛ¶7 ÿí9Ï,ÁàÁçòAC²]ç1u ®Uä^n.ÙÏ£éR+­O1¢¿r߆ÿàÞð«?ß›™|Xá�^\ÃàÊâ—q›þÂéÃö†á×ò=¾=`Pë ðèB²dWP Ó;x?�ý$’ .ˆÈ¡‰]‹*j 1z|ÿ`ˆoëR´øKÙx§¶ÜïµÅÕ e²pÓ$ =â¯ÙQDEúñˆ·‘[Rg'`€ýW3ˆOÄ+»p*� 7êT £1w†ÆÚ(ÈC·Í{È¡6×?›0À~S=�oÖá1É;ä9Œ«/-îp†TO¨v ‡%|z�èRj ^æ‡y"gWÀC4Ãn&SžÅ'Ç[^z-bmDéuŸ6ê®:šãúôX)NEQŸèx!A`€ý v¶FS"M¬5_§bnæiëD\‰ÂØ 2½[¬Ê8fÚùÕÐYÈ»RÿßvWث֌âò5n‘ ’ßõd7íËðwsªe-ãÛc%C°¤gäov§‘÷�g˜Cvmšœ>oí/³ä„e}¹«–�¤¾›¾[y~§ O5ޱSÎêøß«­åZ{§òNet–pB(4Ôh1+ÀZ1еEâ÷Û)ÖH†¥R�Ò…ÒEÏCæe]8O Ë÷áE Xd‚ÇÍö‹�­,Ø`Px�ÓˆÓÈÇZ#o#ïºQ;,OÉ£”G)Û Ú â2mŒ¿))Ž®£Æë®¾ãŒ <´f�ýêNN†³4î7sµ »‚¹¨ýìÕ¿纞:PMTð^ý½úTF<_wÛãÿ¦|Ž|Žšl… ¶Ká{Ù¢�©�ÙGh­‘¡š¡ªú²�ôƒA^@«ôöóƒß·Ò: 1 èí¼CˆË¤¤Qìxؾü7;»Ä+C)Ì3 `èº+ú¸Ù[5Þ_ÕÆ ï½ é-ÏU`A\ü•;�gî[µ“í¯¥È°yð£RÌÓeË›ÏXâ[Û·‚_ "}»ég´*Mº&>l‹�A2´-gÓn£‡‘XÈryHrŒ±I·¨-Ž�(Gƒ2Ë*ûq¶X/ìóÐNyQíQ#Áé“|3RJ–¤¢ JÙÙÚN Ї!ÝOûu ûɆՓ#â1£H”BïÎù¦ôÅ+œ%¯îÔ$ÇF}~m—½ìWŒ `?Ò¦cßQa7qZ·á�kõ(‹ðp’�hIÁša” Y²ðÓýÐïer 0À~#ys‘¤VÖç8:iŸ«tNQ»†Úÿk´^»Ô©<úORÝÏËÒïð…cWØ÷²P§BªàŠ01Õe¡´Ó9“¡! Ø4uŠÂdQ+އÖíOôŒ·‘¢z jÇ£w†5ïŽ3žùD¬˜Ðpŧî‚è‰3:�î“þW¼±\òæeî—èØ÷2•ÆL‘�>Óì²®-g”’H‰*½¢Î ™i£%‹×z�ºœÉÌíãM±ûq&høÄ‡¯‹6ݹö�R²±…õió*dP#ñ\ÜœÆå<«ÂB?äwCÀ~ºãÀ¥°õ¶åãÈü³i:¶è^Ò.}F—éÊhL{! ”eÁþtôŸÑÀtrà¨W¡ ÍË }7ÓŽv«nøs5{3‚4††˜wíÛ´ý±�ÃÎÕà+o”©ÿ”Ý�°«3øÕìf.’ÑLU=wÔ¼Õ³ôÜJ< "ÒùÊ}pŽƒçjµØûk9Q–kdÉ8;†ªé{¤¥ ó°s5øµ ÒÿþW6©ºÅë£#BTþà̃GlÂ`ÓUöm¢Jî·È„öWÈYÈΜ´VØïg%ÆŠ�OQ¶Œä´nñav(Ïp-¾Ð R–ñp2èÁ7ó£ŽS/•¤ê °ŸÁº¦M°è]qÈçYÓVõì¬j‹uéϵ\“«(Ð~³×MZ©˜Þæ†دm¾om’¢Ôuίôêú^NË|Fv±äRˆ¯îÓÏÒ²ªó»1Cø‰í� ûýL•ð|QšRuRÛåFt”À RÊuö†±÷ãoXh;h›å\¨`{ù¼¾0À͉º´Ø�‘t˜ƒ sM6'&jù¾ö�¾ ·#QÜVÆë‘B…r8!ÄÞÆ‘ðw~ƒ«T§§šF¢ô07S„ó^$ìÎ/ßÏHqŒ2çl7|ë_× k®žm�„B˜+Z+ÿô:/¯0Úß+3,3¼BÜ6Û6[Ú-›õ4‘8h¤Ç6ê-©¡Q)ùŸÙoEÜqÖ \„ÇëÕ"I±of0,I÷QXç–jf÷ ´êüÄs:4 šD¹Dy\´RäRdi“õ%X«´&-&-..nJŠß.¦0¦P�ùÁ?ä€ãmÉí¦×~l %øþE¶¨Œñ8tA^˜þUØàÆ;®IhgÁVÉVÉʼnéJw}‹Žÿ›Þg½Ï:Á2l1l�¤ŸÚ*ª1ª1kÑ¢VÃpÃðÓ;_¦ó`¥Ð²¨jká÷&šú­¤lyè ;!ÖƒNÛ›k+¼é'£»ûÚÐHèšÎG4š±qÝ«Xg¶è|\C^ùØ †ZÓÚ{HîÙ,ªzexéÞWö&¸îMýù®zÔù•î6ÛeEž{ŽE±ó¾—Û›€_ "}'àw³×úwzÐOػϱŒù(ï™îð&^JÈb\ʽ‰¼¨Rd=n¦…Øïg:JØ f½ ü:“úÜš™„”r1– ˘NüdLL<–·¬C,s`ދüXÕJÌ}4i‘›ZgYb"Ù ñŒŸLE6†âxúyå{ƒ3Å€!–5hî9 ¾2Á[oÙQêU¡c¯”çÀu¾UKH×=¥}¤�CêòÉIWþ!À~Ëê_1^çð²BÚs½Áª»¤Ã~¢S+H‚ν’#C쩼ëå,mkÀ~?+{º¥@‘ä/;|§q6š³ß?Ae¥É›ýˆûTî–왑g/dÀC4 öÌN¥—Î5TªŸ“ fxÄÆÜíFÃAu^@Ž tP^ڢȆWaØ¿7Gо aÆ‘0á&�Þµÿ±wßáT÷ÿÇÉ*{˨ŒÈ>ÇÞÊ.dïu¬�2’Rdo™e‘M!;{“B²%#ýîséün÷uõý–îïÇó¿ÇÅu}\×ç�Ïëýo±‡W¶‘×RÒdßê «Â$dJÉæZö[¡>�xÄ”JÊ#Òyß^ö¢ŠÂ•‚ºSÀŒ£íb™‡R²6Ê=†F®v”ªz é8—�o¬ ðí]ˆ'Ú=–ëš:;åî7—)…ƒ‚‡¯ï·.€|,i¿ÎŸack– ã$Ã#‡ø 9yòuz–¹—’z)±TÓE{ì'¼—ý¯e �ö{Ú]ÆS:÷;°éûÕÀé†:ÛòÍá¦rIuœW&ø¬#.ã„SìÏD*züONö‡oåŸ�„2ê5ËPùŠ PÍÜ\ FU.'A;ë¶>p˜Å0ÀàÖê×—Õ(­¢¼¼®A9"ØÛG¼áTõGE;ãTƒh½‹O’|'Q×0ì¿a’ ª8ˉ›�2Ä”óÏ1én,j§ [ l‹Kô±­ÒG+/à•ã�öï¶á~Ü üåÞcQXñˆ>?z�òÊ6a+�.ÌÏ\Æ«BÔjNÄK¢P`¿«Í�ǹ‹¸Ø¿v8#KÁ¯®¨E©êÃ~¡Ø¹¾Í1›=x�š0ÀþF•èUü<'ê q5޵�Ûå3YüÓ£Û©sÔ´êZ©š\4æ•2T«PÀƒxÑú#ay‘*¶1Gg“Ym°‹cEòóh§hèkîЗ_e¿{çLÞ!áýžG€ïÅ�´·ÄMç(ä–0¾Îþ"Ù”PDÉúœ8œ8 é&J²ÞuBqARMÒSÒÓªá$úIt:xfuðBòàèXm$€×>ž\¾›ä�G" ©Ž…Ž…Òó¤$Ž#z~YE8ÁñØn'N/†­aR“O�O讄÷Dî‰Ü’D`ðjòj²Q·Q7ÿþ÷›çšç òÄûû¢ùªtàéì�½¾ž¾›ævZrÇ;Û¤€?S"œ£v`�7¿* ’McUôµAÅóÿIYˆl&µ¡ª¡ê¦%ríè£WF¯èªL[òò¿¡ú:¼±½5ªÃKÔ./G^w¶“l³`¬Å:ãƒÕ°�ì¿ßº³ÈÚ´[Œ�¡ ±USOÓÆ‰s—p{�ÆsäǤ‡,wÓî$U“‘ Ö«ˆ…·}cÝŒ´w ö—5ð:_ñÞl<¯›rÁA:Ý0öýÖ�‘�åGö´ìàÛGˆÓÉ4Ã~«ôNúHá ø9ªÆÏ.èA¦—‰tƲUCCë@,§‡ìWÚymgò¹NØk•À¡Éd¾b™�b¬hÔQCæ°˜Gì¹VS¸ìòìgŒO\?_è±Êòs†‚â!‚-QSÓ‰k’;Ë)öh‡oÁº½Ÿyä`¿«�°g]À_¢ìX£Õ!zÆ6³þû¨õö›ÔŽ•ÑsB¥„«¢ûˆ¸SEÞ ®mç¾\gß3ôâ¤}Û5Z˜E¢Ë+ëò½k[E#¨ü÷q¿Ì{Øßø&„Ri è­xÐŽG[æy9äo±oåa“ùêûX/*t�Ä2y÷v'-°I †ÅÉR“¢Îب棜>ì"ºd[ÅI7׈¼!òóÈï} _w#ÏÍÒ9w”lc¶2h>½jM’Ûo¦@þÐÅKm|ë|цæ®úéˆn®»móÅÞҼǻDh=Í–'bŒúõLÁµ;Spî�)ó²øšÛá”\O–w-!Äçû«ö›—!ü�ŸÌÞk/¼F®ÍóëÞr!’æPBô  ²9žõiÎ3V¢>�®ù¯ÉôËôO%a_Á¾’ׯÇS—^›7<{³TâNx<¯ÕÇw Uß\AtõR[›ðãØ§¤‹4¡ˆÜÇX‹6àî&¤’i$¨•ë ¯ú�ŸN,x‰Î�<ˆR500VEWEMiÄ&¾Ÿ²›²›„,~ÉßÇ•.UY…¯/k7K¬HcÕîÝsËGò#íµ(þŒ7YüV<“¦KÛ—¶s5&%­GškþI**òçB¹B¹¼û‘+>$¿ ¿ÀÙˆ~_³J³ªjóëâýöÆšOÂzzq>1™Q§&Xp…QZRóF% �‰×ö›Q‘ÏíãÅ”ý­Y<ñ é>�Kç,zæK;Mìw°O|oø¢n¿Òž .OVå°:K@ïU$¯?©ÜOV{,~;Ä„œ +êìàÛ ¥^BFuºD­>�Ÿtÿj1Ví+º»GIQîú·pDvÇZ=ìçØ¢äâb÷dƒgû&ƒ6I²Ù‹Ò(f懰*-I£;óúèž7 ŽéÇŒì{¶�…ÞcáúΔ¼É‚BÙöHk¸u”ýAÚãèßbÊsjÔ¦äîú‰Ñ¬my©×DÔ�[�g É€S!oï`U`ßΓòUØoBžÑ,;ª,…É&㎒âGÛà²Ïtޱ˜ÂîA­Ü´óûÆ}ÐÞHèË{þö-* Aƒ ·næ…%õùíwÍŠ|,¿ê½ kœ›‚�ä˜T—/Žg:ë ~hÀZ~ÁþÛŸ®CjÜ-¢NzG5 ¶€ö£vX…¹¤ÝØÚD7›ùEænÍõ3ïÞRÜ‚l�¡�1x)¾é-m ?`¿Ò4B\ŸR’KUÐ<·�¿é�1<\ƒ»GÕ�ÁÕzý²»¨ä¡éSØÁ²ÏeIa©Ó´=/©>ÉWr莨©3dâ�ÖÈ(4óm8Ÿ�Kõ•kØÁ²�Vç Õ´ŸRͦg4 �RÜ y£p»�N³Tô1Mq层 *`€ý¨… x:<ËÔâ&O5×}r²#ä.ɹ0-û³nü4XŽõõØcÒÅ€vЬÿš%“CIì;212w¹J�^îcäéíoÙÅsý•jfŸ3Lúw�:7œA;Œ<Çóe èX´[ùR…O[óEì7Ç#ß{]Yh¬ãL¢ÍÏís8&8® }‚6¥Ôáë¼EœjÑÁ.uäs<ÿ·ïevÑՒ竾ð¡_�¤Vw§Úï^¦ |¼7C‰ÛÇ‘KSù:ÓDü•Ó¡ˆÖÜ-œ-œ‡äð_Ü�kÏ‘_Býk .P—N|�K�KZ6<Ì»/Ã#&�G¦qÒÉñ<²‹»1�š@4]ÝYÝ9!åó¹�î,¢<óADÑÚ%â») ½ÞÈ3}àÏÁÊÁÊ:Þ»�wÐRˆŠV`Ù°l „%]yµöûécêcò0¾Oþû �N±Jð¤¯íf"èaPñy·S±`}Û©Çþ,õxX˜obsž�þu׆fTÇ¬Ž–�6©w·t¡Ük× À~OƒÄùiîT:R•¸2E\¨Æð�é»4(9]¦B�•®ãš<œª0h»à0™ÚØ¿Çz_:úbyPÆzsÐ:A8ÒýBÏb>Ï蓸IZW^7v_´Ð¾2[c`Íî)—Ĩæ KÙð4¼OÃͰ„ÔÆj8N|´iCٺݣ~ÔüáÐ{Àûž©OvæÒÚñrÆ/52 ŒñfÕoI®c4ª¿Á\ÊʧUsøýŽK`¿§Ñ`~Jq÷þÍ’ÍãÑçkHýnÑ lÇøQ�õ»ÄËÊ{GV¿ÚH) °5‚iKR,Z&ñÂõùH¦ð!áØ7X+gBy"�ì¦q_‰M\¬Æì`Y6Gœ–f‚e½;‰´íTôEpìñ Iˬ‰pXïõ;TÙh®iëÔ€,³4§*¯`È@‹×.\"ÄÔx–ÜzÿªÛÝ�Oãl ‡Jc±®™¾îìçX!)�Û"nÔ‘ j B;2ûüу´OàA²„¼®m²�üÖ H)³œø±LÈkÃNоþ:—n…r2Ñ(îQûýÖ†‘¿] |ý‘``_‡óÓ>3Êç-iÞ%z´N¯ÂÇát¹Å¦*¬Èo ÅµÊÝ3$½w¶€½¹ßó6BüÍØÖÞ¶aKìÈ€¿®ÔQÁPä$¢€ú��¤å íûç(ÓB­n³nÓLCs‡^rQÞ;xe’ð´Yvpà¡{¹›k•ƒ.¢Š‹>Õ>Õwm{ÅÎl®=E�¿¾…hQxüýnr¢³›œ®mðæ8æ8D.À[+^+öļ‡è„,”Êb®g®‡eóŽôûqËsË?'Ÿ°ýûJÁÆàÒLxOÔv«ÑèÑËãÚM÷–}™¿à1�³iÆÄ³mÚv žÉ‡Ê™ÊbOáûÇ'·Üï5Ç>$ÉdÑ?JXÖi�ÑR¬¡û˜»ù£¶¶Ø�šù($îÁ‚‰“éDÙ' X|IAÚ+Ã(žÒ7›}ú�ª³-Øï`Å­Z<Çùû¯àŸ•r:Ca$T½„y”-tò3‰|r%AæêŒ>‰³+`€4Ã{A©þ†PŠŠ`áýkQûHsïx†ˆ»Z˜W>LŽ-�u‰��PµØï`\•:Ò©’µ¹ú%ÓSUMc±OTG<(�¼Ø‰Ô�Z­¾Ÿ×<’ÀFÕ–üŸ¶»ÂÞÕVÔŠŸéðašô¨~&Üô‘×­t¹b,ý;[oãŸVÓ.ô¼³ßºò7;Û¤Jƒ©ý­3Lb¸Ÿ÷u»lW¿¤GÚ)¡ã£Â›oCZø�g¹ö®[½¤Ü=˜Ù‹¾5µ¨Uè‚íµçlqMû­3 ËAúÖÎïhå:Œ `<›O÷)1·œ¡íæ)á¸hÊ9¨Ê%,щ^t6ÇÕ#Q2‹Kûu6÷LØ7ÅQ}N3­žhæÐKY‡£ þ·=6¢O:P|‡o{£3äX¿ìçØÕ¹(W|gFÓ)ú¤{d� gDQËõ5–âÙÕçWoì8y¢Ü¿�Û`Ͷ´kWla ë£g¡á(�¹e¹V4l‰ŸØHÆhP(¹¦Zµ©S‚ÚËû÷^Ù[楃RQè4Bó"7“ºÌãT¹¨*Zu¨ð0ê+ï9k÷a§ ¨�vÇIîC¬Ü¥ãX+Ûƒ´n¼ynh{~-�\ï+çƒC¿~>¸ûëfÿò™�É’ÜÖÛÎÄ;�.Ü?2z»hëáFT#G¿¤ŒŽtGGeé\­=Ä‚ï3 ­‚\~žóWd,d,‰ubübü�B€Y?„8 q@è".NÊàT¼±e.q)ÙU?D?DRb>GH]¹ ©àBì]¤È÷¦œ[ð¼ïõç .*<*<‚å“×'¯›iŒ‹#õ.ùXûX'q%qAÊž‹}›îA݃ÉéçI¿oZAqÍîàLׯeˆþõõ-ØJ7EÔɲ‹cÿ¤§õàéYw€~PšLšÌ …A‡dxµê� Ž!Ž9DÄØÀØð<•VKªoªïØÚ¾[N[ÎtÚ/={½Ýi€�HÍZÍr{ª&ØÚž•æšÙ}9´G;«¡o§ã´¨Ûönú·ü+7™‡³ÆÏé‚)zðšMnrQX¾†<Ð%/ç~…Aæ|’æõñ?†=Ûï׊ÍUëª0×Ì”t.ðâµ™h¼€Í>ÓÓ�;çjÒNbu~ˆ>ét‰l/]'ØÀö3´Öq‹‚ZfBš³Óì¯ �ìªïê3 7HÝ+Ð�Ül£*WÍlòÄۯݢ_9\‹=­'úš´C?@1#ëµT±|D€~Õ²¬ÂˆæôF|IÊÓ›&`ûýš&™hQF úýkMŠu8˜¡a%ßCj‡Š½ˆ&�1æ»èZ圸ÇÑõ¸¦l`Ûmm–<Ýýiˆóe³5ši®ÅêÈH5ï×îûæ‰ËmÇo.Uƒ)˜Ã•xÀÏ<u6Qßm'ãŸa.0mI´ïu=±Ól"ªé®€O œþÆ„©™ �Þ»½ CÃújøÇטîd‘.ƒ‡=‘¶ût6ÓiÎ?Ó<Ù?þ•Ùlûl"ìóµÅ±¢‹mMŽ ªðð³E Óò;íK¢®ËnºOÀïÖ&ŒhƒfÚq9{MAz†û›–yR䓳�Îöåú`Ì¡©²Yé`‚í÷kzê!µV·lÞù™¶\ëôtáŸyª"¨ž‹;—¸€WàÊGÍÊ ·½`¶ÝÕ\Ø6“ð¤*pc_›¥' ×[�IÃ0I9(wï6®êp¦¨Fxï¹wÁ¶»Z­ö¦kè Åþ÷ Õ;N1AÊ•¡ÄnªC™ÚÆt± ¡2ŠŒzðõ�í×iÙÝ‹æï¡¾vè›Þìúsª!ñ°Ë‡ZtÂ$™¼Ê¡·Ä«”EسtíÁöûµÒÇ‘k*´×‚úý ë^Æqu'ëa.ÖûA°¼Ær—ð°Tä¢Ý|1À¶ÝÖ.G ÜNc–Í5U¯y).y€å&[›'”N”_‰4²WYÖ¦È�Gå%Ø~¼�¥í::%T¯×±D⟄¹¸´Ž:H¿)Í4©'¤RtBj¡œb¶y§¹À¥!ZÖk8&4ÞqøüüsmOª¨<¨h;øLa{Z5+¼O¦�A glàlC«ª3—¼â¾ò•¹üëç,®¤`„tY>ÃóçLÌÝéœáOï©ÎÙŽg…«ÕÈô—5�bJ“˜�Ì|Þr¾åÌS*¡q‘Í/,æV-ý+éBéÂSå,j,jóoˆÃðDÀ(`bÔ/×ò6€Eáþ¡-°�%�¸YÙXÙr“”V0+÷&!IŠ`#iꦻo� މ˜%�¶ÚÚ'fÎfÎ=±MHµqSESE67lnHK–f["q�3¾çûR˜7MI¥m7¶$YTË÷o!ovù�ë“Í«ý'Y ¢7Ä�€pQÁÇ‚�ëMÕ{ÍÓª~„2—2×ððÑQQ1ª&„·‘·&Ô_äI“Yž/‰­n×hð•. - EnOWI·¶§óZÚ•^o¨…˜®ED>?¿Óœ uÛÞMÏý;ÚÈ; n£TL8ŸeX^¾üc]‹;÷íS{¨qU2EºÆ|ß„øÜ‰*ÛÏÙ.2ÑNnÇcèSç¥Ê4Ð^—ïoŠ+4‘ñN} 9;ÆSoë¼/ŠHql¿_¾ßrx¼/Êh­à8ÿe&Ã&)„ÍtÀ»Ht¥Jr YÏýØG-À6 µöæ4HYVQ;Ð�¥è ö«?F»¬hg”¡Ÿ «YœŠG·l`û_4qF•}o®­6H™“QÏ?ÚKï¿x&³Ë‚o]ìDï±· J •$‘Ã`ûµÛó>ü[ÄozˆÌãq5 H7³'ÒŸÙ¦¬eÒ_áåa©`IR&m1#…‘+‚ l?k›½â%ìî0á(Ç-J‘N\ý€¯­n°[ïz¬bLJuhìLîÀyZ,°�íÑh®](}”wÕÒñ”ë¶^¨û&ÅÕ2ÂõŒYZ:�ÓíaZœÍHѼµ؀ƻh½LRY¢‚gÄÑÑhZéît¿uîlwb mÄœ©÷¸nýBZÈNsgáwSž‰~$6dV�\�+ÈÙã÷0-ŽæÉ�H:šcwÑm¤VSRò Ôiè‹Æ´’~eîÌ»}î<ˆ÷yþ!Ö“Kp!@&2B»«ˆ}§9!êºü'Ï ÛîoËÚü.‡oôYev0Ä E\�¦iØtÇŠ0q&ÕaÉP¹|ù1÷QÖA°�íŸlªgÜ *f;Š&Д/ ާÁK¥VúÉHÂpЇ X¢³ÙïX½Àg_6°ý]�³.¦W x[ùÍ#Æôý¥ƒû×DLLÆ|Ä›oÒ0°ƒŠº˜|kp²ÝÁ¶Ÿµ ïgÏQ#~M=ÐþŽN›´~•×ÔúïxîUOŸq�ÁHÄRB¨*¡—š!üùÝvöó÷ìp„ „n²søn¹LÚý[ßm -퀟Çÿ|.ÞW®á?YžJÎ=)±áÝš¥æ-/ƒz/öµ|< „^Èû%w=âp�‹¯LnܼÔx²rôaºSƒºŸRæsonR{Û*ýÌ•ÔgÆ¡G½îõ{7ò³Z|þ¬/•¸©%3Ri71Šß™Ø볊;™ºØ;m½ššÐyÐ;:A�mMl,íLé]M�œ-ííè!ìpv.v´ÿûÂþï½ `WƒÝÕÞçbƒÀaìÀ_ñÿøÃ¾±@>-pì߯Ÿ–m¯œPè§_`hŸ^áP'7Œ“ Âɇq£ÑCþ{«ðí嬳‹¡==𓽽Ë÷~n§ßÿIÔóší{ûRa©î+!Ýÿá}ïNç5‰|zÏÝíB‡Ê> ê�ÿ’‡1R(¿‘’ÇœZ”ZÔÈhœÝ[rD†|Ë_íƒîƒú?Y^Z^Š]¸v¶6ŠºèâËÖ{ qÌ-Æn>G�xm¨¢©¢[X(cæ.„#©GŸöGÑl@Û¢Íhi�8ZØÀÞÀ>›x+ôVHTež IØ/½ ½¾_¼ÔãþmÙ6Ù6ñÔ’¾/MÏBÕpXr Ï ×™ýç¶°kºŒÖ µR Øþé¦%l ‰p#[ [‰‚µb6ЦSÿG$H$HTšžî8Ý1 CÅ )«+«K”1ámlä(ûR$ËvJX€¥a»Ãv‡Qg'M’yŽ¡'m×nüø¬%Uf§Ù êÿÛXbå6ˆÇŒç ³®�Ú"«<×áIAZá°×$ÖSÇò…�пœ�pnÍN Ûg',Ÿg'/ÆØúñ…К3ò‡ÅIÜÈÞí4;A]—C¥Ô}-9\W3ý^Ë™wÏ—wƒ l?Cû �ž<3Y™¦Âa%»ŸáB‰¼Þ¸RE-!¯Xp”1oFQIØv[¢a¤ÖMIÝS�y¢V�ƒ>P2šçm)n Ý3ú‹„Ð.†4sÄu]½kU¶¿§-Š/.vBÇëϵ­2ž!O3}RÏÂrñ¨ê´¸aè¼Ö9*~§L"#°�í[m«ÛÜã• e£9•’-NKŒu¼ÃnzöÖ¯Ò”fWÔiM(½ô®%°µægøk5£îmjĦD‘yŽ�‡äêaú\wÚýô'‡íŒ‰Ï® ÊaÿÒ >¤éÜÐ$-ïóD牆â´| ôî&e¹Ý>úWÌ÷™ïSŠB}¡¾$ƒ€LZàðU@ÙºVÝ vnquK×çq$ùDóPóP’ú�úX|H°²|$h²ß–®xD&®yÀZÊZJÆ æ)æIŸw�IÞšž�ž½×­×m´¢�èÛ%S)|ßíጔKm€p�-°ËÏòn;mÑX§>–)j…»÷OGN°…¤`wö)îS$Z½è�V¥¬÷#JŒKŒõ”çdçd¡”¨†Wp™q™ø»^ÈDËDs¿$ؼ]£à°À’æ’&ê>�xØ‘¨Éäý¸÷ñ‚ó%B†vÚB�Eeë¿qR~-�†?Œ)Á%†±tÈrK4ÄëFy°jø•ãÇÜÛ÷�?ßÏÄ¡™Oy!b >( ?Æ0µ7p§} Ôuù§®³Þ PØA¹—ÆYs4Ëí£hGä }¶J5ÿc¡~�˜êÐf]ÂSü¶`ÛÚ°•YîµYëä²<ÉšÅxþø«úIªàþµaºiÓþ§b«¾’úz`Û?ÙNEy”QSJÜ?x�·uôeÏ´öCâ¢pš®[œmÜO,ºJzй½µüJÀ¶»ÚfEjtÕ]÷SÇ÷‚ò8t†Ô5³†J)4ÁWÜdg3B.ËOÚ€mwµþ7µeõ°ÓNe43™9aõh¨¢^*¸âµÒk•Ks/_ÁP\º­ €6°ý§-ºÿœcMÖi(™X†™NñíQAøäC”Btì5]Ä7‹ò¬Ï'½‘Ô/Øv[k ö±`v¼—ôŠB”ÂKæ�w”ˆr7Ý;àkMS®oùäÙGŒã!�Gäžß¢…ó:£Î…d{‹UNž‘3Ï-Ç'Íà™Øi.$öé="7·Óf#WFU•÷¥a6$Ê…t$GúôÐôPM‰˜D©ìgq%Âÿª(£(c#~™c™ƒ@8AÎ `X¤éŒFf/Uoy¥�q龊½º½:æ�*óÔãJW‘Ƨ:L�\f˜·@ËXŽá¶KEboÄÞxÉ ¤ ¤•ÒÝC…ôq.Ô?ÔßÀÔÀT#¿íÛ¬T­T/÷Οy²i‡'`%o‹FáÛRV¯-ÆÚ ózöé/ ÿ”å#œ%¼À;×à×à—Î1;ó3ó#lØþ¹æTí�ä~ÆñšEÛcF.§Q?rož×AR‚Ø�;j꫎'攳`þÅÞ}ÇS½ÿ?HFÈ–=º¶"{f„ÌŒl!²³“™8Bddï=¢Œ²®ì“DeÊ^¡Bf”2÷ûpÏïæTW�Çýýºªïyþ÷z<¾�Ç÷�ïùãóþ|Ç0ØöW[nêHI÷Ì-l8ÄÊ6vÏIŽˆ3Ûn±‘ÏÒú8¹.­VŒ:ãiæH °íÿ†ÁfÉa£0›\QFC®ÇndŒNèŸ<‹XJ$úŠH™žÌxAò­ðÄ[¹tyMU&.¾Ø,=›Ý{QæÁ Ôõ«÷d"ÖTRc ¸4ÒF™ÃÒ§>ö!ô÷¥ª!THyèzèÆõñ1€2Ÿ„m´¬‡¡AEÊKÊ« oâVáÔ©q„œë¯u8$ývÆe¥�¼ ¿È�Î�NâH•]ô–Ð[ý¶RZòw|Í=‚PÚÛÁ¶ÚÌG…“Òo”EHý–KTóÛV?R¾<½åaÈUÿß~gX¡a>1ØÀö#4m Bë¶«/ú½ðMä¥��‘‹Â–0ð8"'¶I3ën¯L’¸ºƒ lû­á>¦Ð|E(MI°07)îkN Mfˆ ÖŸü~bäw¼ÊÒnÉÑ*¢°�íGh'êôerN5¢ß5¬œzYÿt,±\mä …±Ïq"M<ë•VAuÌTÊŽÌÿu ƒÂ¬©”·éðKuèQ.¤{(#Ï­Î�H° êj¿NŒÏ¦¡WvõÆ^s+äw]wHW…S]Ì3ÍÂ2òT÷ó¸d×”¼d@Ù%¥ï«Ê[lCZö…{O|ynõÒ5Ów:|ì¾s´"ìCÍ^s+é?ŽI,ÙMϰŒYQ˧xpð#_ pZ›y™y©cÒµõsÝúPz´ès¸p\8}¯E·E7Å"`}4ç à6àýs‹- e.ÄÇkã"yVì¥ú¥zz§9É̃GŽ Òõ"Ìnû¨í(×›ähÏtDwDw(�"#zˆÆØY�ÑŒÑÔmÕmOYrA¿.T>T^áˆÇÔßS àì¦BÔbïÐÏXá’üó—hAgH�™Ó­êø—Í£pKÀG÷ÁÞÁÞ\&§þã¹GW¾ñYâ³y—g—gKÐ�I=ô§ñ§9Cªqö‚Å ¹åOå™ïf€¨2õgôgD\O­;×S©Ùã¾wq+V ¶^9’žî5·B¾¶÷Ó»å~ÄV£ÏÔ,ˆk³™"B�±îjÕiž�ƒªR„¢RÉŸæCgsxP3r»¢lÿ^›móËvҜչÕD4�ÖzÚ�AX ìu� �x9â7=À TtñؾOs™�sÇwe2}IŸFv§lZ¥ÆPk)]l×îq1ìã–óUHJ NØÀ¶ßÚº^ã²mió꨼U4$ô.yõ]krjŽ´M’1jʼn— ízTÙ7;«Áöó4Üê×,KG¥ã†Q¨EçOúgt›'©� ¬m×§Ä@t딿P† 6°ý›m"~ž·™Ç¾…`ô\sàPÔUgQÕ¨'¸ý/YeŽÌ9­ô@-σ l?B;òZöLÉï0&y·»|Ai«žÎJàyè]&?•Iu¦§„ó¦`$nØÀö½Z¸K mheÄ)ízÑÆ‚á7Å ñ9ºT%é’vÜÙö­ÕÆ(1ð^°� h܇Rc7ôƒGY�­’ª§4žñ{ %IsÌ0ê†ç‹À³3¾8nEÓ ÉåÆ`Û÷jZM·Å{»­ò+:Ö]ÑÊ£ejŒKÛxò&Ž˜ÏÙL·ñ¤³¿»”d…¶¯‰˜U_Âì`Èu…Ík¤[ØØ3^¬A…4á�N%Né)±+) @…{š�íçiý×�yÕÖß¾T(%^Ýèþ}ƒ½öieþ8&Yi·¬„ dÂrŸzÕ†E]åGà �ãŒã¬Wöl0Ðäí7E©øÜÓɧ“…«Ó'§Oê£^,;y˜Ç5l·Ë„‡ T¦};rû©ž"¸ÃM£M£ehkíŸÍÝGX€‰Ð#ÀWÍvx»Y-vÝŽp¬­…-ô"õ"×â6–š ÚµVW«å6×}ÝlvS<úï9Ë`õiȲÄw°ÑB†/ï(õ:ßE±¬÷¦þ‹ V⃰Y@~fæ ÖK64¤.Fß"*8*xMó™Þ3=º dô7ml¦HYšùŽðÉþ”˜án&€¥µ‰Š‰ ÄõÃݹžh* ÍmY_� ëûxÒŽƒ½×>-òµ½ŸþË?s“{0{axP”6�¬»Íô§™ÕW�IßTâKg(9(Žu}X¶_¯•[¨7Õ£­›«œóÄî4Õ|É;ûÌ(DS᪋)œÐÚ{„.Q÷wù>Ún°�íGh–A¸�Ìîx”—§�ç,;ÙÁÊŒ˜O>9z¤²Øàõv'y•zn‹Ø~îæõÆ!-F×Pb‰¨ËÈ_9çöC ÙrÅ›þFõ䕯´§·âú S[o™‚í×kÚÄ¥9(µi-ÊM˜h7B~§~ÏÕ8Rîyø5Ã=gë©JÎç�ºÀ¶ýÖfI²ÝZƒ.�i»1+´\ƒ ~é=¢!bøì„-dPÂE xH}-¢‘gÍ=vrŽü3ÌÅfí ö}.R{Í&"ZÊD¼Œ¶&ÍÌEϾà5:‹sl�ÉÏ�8ÜyÈÏ=ÜöйílJïÇ’ÚgæÂ¾0›àÝ=›ùóYõ‰ÅÎÇuþ°Ë¥ñÓþŠ{­%‘Ïe?½wâWk“&T×gà˜4—<§¸zGûý4·­6RSî°Îöz¡Îš@Ô�¶>‡¶_¯jà5ZçÙ¼ó5 hOëöpžy̦&ªQˆ5—°€]ì"DÁÆÆoëc¶ý՜ٷ±ekž’òL›¥Ã¥3\�ËD5M= P™�¥>š+¡ÖwõeØöWkÔßv¸1dIðþɦF—W•*7¾«ŒáSç¸Á�n9å£/Ü…úÁöó´;=‹﹡v(ÛîWŽÍ©ÅñFÒ´Ÿ ‘aò¬âÎ;U¯*~\ùŽƒ�=Ø~½Vñ(|]�*-Pià^Ó«XžžÀC´Åf_®žã…Ë8JÔ£\¡¨`Û~k¡�"ù™Ìò…f ¯NÉ�²Üâdïô ç¦•V! ïS•·)uP{Û··ËTÝcb¬ƒb͆]Ë„×Ñ—7�ïX²Œwç•Ì*»;ÿ<ê‘7FË^÷ ÈþqÌöÖná›ÂȆ?1ƒp~H™Z!�)�ég(�–t(b>$æÝç]]DXañ°ø¡I€fÒÈI@³@@6z'°êÊxG¥5Þfllala¾#š‡›Üj9"„f:1ï@çY¹vÅ)‚ �'�wM $„áB‹`55]dSdƒ®ÀuìëVVHãÃ0ÿÞ3á·Îö~€ ?‹Wî\mÄÛ‘¯poc-Gn|ä/�×]à4gþí=Ë=Ë�âϰY'•2¾…y·y7®c�z�zÞ2K»I¶I¶ ¸´=�=ϭ럲tÙ�_àšÜ7�ì½×œ ù\öÓ÷©¿G{gÉg’q�_È*¤èžâ#Ë»µö½Xj¹â=ãзA^y˜¥`û1[0£~ ›¾_C�<÷¼þ†â@Kôx‰©Ü•ŒG\—Çš/Æ\:qXyl¿^;YÛôÛD„Ézñ1áH¦sÆ-²”~’B”ÓþïÂQTjHPå=V²Z‚ l@kè+x"kUOqiÕ †bD¤?ÐW²™1„ꃲ�IŽQ¼�vy†ßÊ;t°�íÿÑN1¨z›¶öDÖ‚˜bþ!ݵE½Ü�–B’R}+ôñ* ¸5¸„á£`û¹Ûp?NþÛÞÃqXÚ¸DÛw&³ŸÙ¦®çÒ% °T³$ªµ›ñ’(•€ l?j›‘äyÒÍaÒQ�O‚,V'Ôiê‘ÀN�QîZÝàŽ™)ô¦b96°ý?ešOÅâd+G-—$ö>n·m²äûx9³T´šº9ð�Ôæu²”+V`Ð/~ ¬ù] Û„³ë©Yc¸›Sm òܙ؇]K@ꆿ•ŠÉlŠ �é^sçÓS(¼›Ê‘ÀTd­Ÿz^ƒà�³Ò€PGÛ—Þ—þöî;šÊ?pà8*2s]{FDÈ&3;"‘ÌlÙëKËV$e]”½²3nFFY©ì½.‰$²Bf¿žßힸ �óý�ïWßßãõßûôœó8çÓ9>ŸÏó|,>…ÊLØ#åä¢è‘ï=Â{„ç\ä)ä)tŠ�½z�à 8§€§Z rò¯DJ«µ@1Ã0"2"ÊŒ^¥7Ôì°Añ'y$‹¢ZDòïí(ÇeĈØÚÏaް֛%WQœ$á ðRÒnlèØÏ¹óºóÞÔ»ýk𩤰“1€|z$Q ¯!¶t$호#BuÁ‚G¾¡‰/Í´'0ÆL}ù!ò¤ µ}Æ:ð;ÂçÃçSðˆ\ˆ\Òï£ó#ÍÏ—âŸ2Ú϶Ÿ­&i+²Û•’y2ø3øÑ×�dú[†-×àõÁ­ŸI ØiÝùøâ„ÌGŽÄŽÔ¦±Œ¿qå�Ò_݇gMFr”‡åœ,±;6ª(M(Eúë4�¤î4C°î,¼}Ýyïëx­¯tw6ᵊ¡!z�\;­;£ßK9;‹À¾Ew±�bÜÎK N¼^OÛ€í¿Ó>é‰^bN5îµIkcŒ”‰�:Nóü³ËÞ³‹P}¦ál±3áᵂGØÀ¶³©Ÿs6.›j+xƒ¡v{`4Q~b¥�”äî=L„1[ì!W®Í×R>ØÀöO5Þ!iÃ|ñLµùgLÉødMÒÌìµ§ì ßùdG,ì›�‡½Ÿîè6°ý© áÊ:KG}!ŸãxÚ¶–N·ÑÑ” ¸Óý÷Ù+]jç[ë‹5xjꊟžäê²ÛºPôM�`�9Û Î¼ã¦˜[稼È9*Ï�ϲË~P®¿ÚU( ¥nf3xf}§ÿÇ'¿\sôÄv‡©¬)ÑÙÑmÕÜ€’T˵Š'+í-í�ÉGqYo’ç2ß÷¢•¢•”?{8–ì`W,ÅcR]cQ€¬8KðW6¹Sœè,Ê^ ëóÖçL¤V ûçä£`*o¢ˆ&�Ø ÝAT¿óýÀ8Ñ¢ßC"‘ÁüÞéJãÍ8Íø!ëCÖ�çžÎÿ\kkpÁ-ý_Ë_!ò{7ÈQ@ÚK†ÿæ)+83¬C¢”ÒñM9ƒ“u@èD.a.aü4L]ÅN6êw üþÙ5XO°ž¸ÝG·|¿Ú¤ÚäOTq¸O¸O�ëV“ÛÝÆ0;f‰e‰¡ÆÛ×5�±×}¯Rò²$Τ‹;­y �mz8uoS,SšÏó9%Ë®¥mçÁ¶?¡m� EùO‹Ÿ{Zžx†Ûæ$„ñZ±²á¨j/E ‘°´ØyRᔂâN°íþ¶@ÃDmð a_UšL�!÷A?ùˆcá¸Å ƒˆÈ1‚^qGvÆÚ<Û?ÓfeggÛùFë½ZV™Î‘%š7”F±±%9TêÊš~0ÜëEu]ôBÚS°�ígmwo—¥ë{3ÊFK*UûýMwl£wÓ7Øþ+MujEƒÖŒÒÝ0îGs^ŠçqMÓWès Ù[,aoïCpŸàùçÉ Ní4BŸ£=4š¿ 6¡�H€Ø#Ç/�µ"0à˜á ³|=€×…)Y±êà÷ƒ}:Áís ñ¯ç�8¾Q› 鯿y#ïŽIB�ßN³¢ßË¿õ^—-þ ±Gm”84µG2œ7¤ÚB“Œ8ÊÏ:^ç ôiߣÁ÷Jò’‘–¨=ØÀöw¶[I‹©íyýl¶†Œ)‚ê«Gß׿¥ò]CìgxgÞ÷RzÕ[ÞȰl`û7›V˜ëcjJ¹'tñÂÍ#ãÝ«‰ ‚i:Óy[ß4Xuwc zèøƒmwµÏe )T ]/iœ–Ä•+¸õ‡44™2Õ'N½Zq>9•®üÖl»«õ59Ÿý¤qK÷ÂcšÉ´¬[õäT7ÂÆO]Ák>¨Sª ø)Ke!ó”&ØÀöw[DŸ—ÓÓ ]>Ré ý¢CV­a7 Ȇ(%¸žv§äØ^�^–7‚ƒ l»­='ö´bu*‰~O!Eá®XáÑÍw€r7½óÿ£¦­Ôûétõä3¦Ñ€v¥ÁtZ!á‹èû‡Z&ضÛs{\ÛÛëøq§ýC¥/×dPlw½êX>ºÊÇ[1~B `µGérd dR"” 뤕�OñüÞS¼§x%ŲŲúAÕ½ÚÕq6€R�,½ë€Œ;÷(Rº—ž"ŠA™¦˜¦˜í´Âlðìy”–±z ü½wÒê_½Äž  U…ºÃÊýÊý¤| (,o�Ü�ÜÍlÌlÂ’g*~ŽV�V­ø¹ãÁ_#7­ãQAÆ?!Ñ…zk3#]¾äF —³Æ™iþ�«Bœ¸dà¢r«J«ŠéÇæRýrv¿Ã|Å|EP;n*nJÖCÓ˸—q—*Ziy!¼Þ­äŶK9 À= œE‚¾.$”!¢wË²ÅÆ—æÎ„­ÐÝG;­ ¡ïå/Ì<¯åI`ÈÏíq: 6rƺ3bìt«¯óiŠe+—佨ý?X:¶}]Èåë^¦Ôéì±ÛÔ²Eëêïá¥t;­ ¡ßËÿõûÞ]¢«Y†þÇF\éî{²k.ÉÇòÄ`ÚÓ×CÊ(ØÄÎ'¢õZ"Âl`Ú¤ÈD]o#¹â…ž^¦OMU3Yu£pà/2âoñ¼S© Èw{,x _TlÿÿZúë�›ÙÑð}fd攑3®Q71Dõê!�ga³­z’-ÆÞ¡üy`û÷Ú…*Çh—\î96=×I¥¬F£PœNLÒ=-û)¾àmöá¼ ŠPîd‡ÙA+.*]­»RûXXÃqÀ¶û»§�²ßT,¼ò´†b—ÃÐðA‘¿óÎWT|ªÂHa2#=/::Á^dé=Š>§’ãË÷ÑÍ"“õ ð{½Ff¼ÓœJùË5C}Û%ßóVGçàºýK”fˆtŠAŒâšâšxôÊ݈¹Bþ+ìÂíß{àýyþÁˆÁ¿ZÀ€ßf" PLÌErq 7´v)#±……£˜¾Ž¾NÒc‰ ^,oåS GJ/þ‡U¤7.¿†Ÿ“û à â ÊU''OÁJP<ÊâŠâæ‡ç‡œ(f~.B%B%ÄŸJå×òÍ žÊÄ�´Ö¡o‘|îcD¸Q Hû¦ªœMx� €?!%ÅÏÿTL²¦€ôwââ,ñvOwOk©¢óßk>g>7¹¶Q¿§~ϽmæÛ·óÖÓù3ú3¢Ï©¬ãsxZ’Ô‡{]§¯ÚiN…þüó¹´+Ë «5IZ1Ë¥/0ŸPëäp«Q3Œ|Æôž—ëû9ÿö9U(ò^nôõué’�¥Ï‡ÕØiN…~/?úî Øþ;-‡"Úšiy2T.sPBèõê!Æ7½í+æ8Q­“zºâçȽ;å ߸>ÛŸÙDcüt6+.Д¸²Þ=[µÏÖóW¿ìD™$+MÏ5q0åT¿ýŒÓhJ Øþ;­ûå_\êhon†K¢Üi~á'qž¥÷Èí»A^[�¾/YèØ*:Ym6°í¶¬Z;s;oPÎŽ¿~:• ÝJ´&ZëÉëOvÍkþ]šDîÂK{¦éðÁ¶Ÿ5ÍѶ¼=º›×œ‰KMÎ߆ysè�¼J¬=,f$Rw�­”CH·{zÓ¥lf£ÃÙHkZ"¾Q²JOév5¹_ýMF‰¾u˜íp¯K¬‚²wdUÇJr9ØÀöwdŠ—�UºpùC$ë�‰èq\­…¤¸wáü‘&c�‡|—£$ãf«ðÀ¶»Z6wŒ9®Î«ºã¼\dòöc÷´…£ 2ß‘½šR&Ü;ËürÄ—\0ýÜ †—ü�>½—ª²-I2IÁ¶?¡iK‘ؼò9Ö{µ�Øô¤Ü¥£T&âUs8Dœá£ŸÉ”+ ß’9»‚ l»­6PkŽ“ÈÑ@f¦ßH:FZÐyÇ2Ý ÒŹ¼4:TLTRÐ.�xDF mØþ„Æ[¡'Ÿ"[³/×°db¬²q8ºèÌ�µÉ5.¨&‘ÍÇ—Âê:ûpÒ4'þ_· ï*Z•ω t1ýÎÇ»¨ ¯3èó¬Úšn’³kœ+ô Üi�ý Øf¹ÒPÚÛt³$\#wu_·‹u±s�ð6=5�|;òÂ<ÓÈûã3TiK+;a˜�\ekˆXU­;´;­¡©|¹†�{;Þ¦g�Ñí!ÝÊ\ ¥jàX S ­Ä ñ" 3 høY¾ÁÁ0q¨Î¹Î9ïbmÌM Y‡ÒÛžÔØµƒ‘®išø ¸BN~8ùa]mÑÏ­~ŠE΀âÅ ÃE²MUª7êoû_L¾L¾‡+N—�.ßž8ƒ@‘žd™dé.ë.Ã|&ýsÍTÍTˆ®t™_ó­Ïëv<šD21<:eβʚ#ÂdY‘(«¾gEìE9ØÀö£Z¼O Ë™{ G¦Ø$óv>‹�“‚$çc*É’sÌu}Raa·Œ—ØÞ6°MpkFÒJŸÑéaîýïétÓë4ÃÈË1ï7=ø,JïU(¹_ñ¤jÚ °�íG5ƒ†™žN‡ëeO—| î\P¬´@¶]Ue°}ãô¢ÕL(kï¼gª9Ø~^;hSáI)ö”=ß·æíá,;'×ÝŽ•ø�rº—)/ 5Š\JJ"ðÛmÀöç´>T¤×�¥×Móý“nˆQN¾¤Ƨ–Ü~£åIdž’†ŠSÔ»óI~ÇFÏ©eMŸ8Ïõh bàÐòDÕ¥ ÷>­'‚ºe WÝÅ·O–{Ø»“/mvŸ÷,ÏAžî]‘ +.û©ªø~JI<•í‘G/ÏZ8-eChM¿ð<¸à—ïÓžS+»YËoûzŸ´°É»Œ†ÍîÓjþ{�]ôF½Õ’ ¸ÞØ®wW ÿÊѬQ•–‹-%&!³h'Û$ÿéÏqÄqÄÁšFF‡§#EÞN€{ìÁSï 8,gcµ30 E¬œ,&8|‰ðµb”¬+ ]– ËÜC8 ²û…Ór“Q€_ˆ_(3€G‰{ôÄÝÄš»5161æSãS#/‹ù:‰‰�¦¡âo›N¬t¸ûa<‹q×–™Á`0=ë­ðŽO`é?‡#Ôdމ[í·Ú»!”æÇÒN~îî„…b1Jò®ÝÈÂÉÂÉ«Y‹†S†SÆGÖyµ‘8!àZ~ê«ÔWØõTC�YOÌeE¶ÎÜãCDFá„M­äd›Ý§Å]Û¿ÒwùOnÊÐVƒý’,Qô=d-ÖWø¤èføï›Ð– ¿Æ§ñÔ„íƒîçp~xl_»c§ÛPM°d«e,FÖf­?vý�Y¬¾êIëv*DÐkʱR•^–N°�íwhOGí£)êöøS¼'yóf,<\jn›í‘n2WºwËdb­�±\7¿9€lv ?ÿÚ-3ñ˜©ì u‡Y¸F^ÁC(üŽZ\¸Yõõ‘#“«QTO®XƒíïkGhd‘yxU™Í $1±¥;øë†în›ØÇ~ÓËQ(�¯«¾¶l`ûÕš6×ïI´çC‹#ĦÈþãÈH�Ø—Þ#@˜(ì"a¯Å‹—,ºDjww6ÑØí¢ì.òjÏ-›ÖK®½>ò›Í&šo<¡j¶úÂÆVÒÜt~ Ûа™ùþ%Î0?šx¯�07¢xç­Æk¹° GrG4ûÞœýÂlâÀ—g‰;ˆyN«UzöŸ@QØŒm6›Ðú÷¢ñ�`ÔEÕ^Õþ×ö§w$ÊN·5»O銜õF&O†«m6›À]Û¿Ò{Lþ¶öÂ’)òU; ³gàKþžaT˜þšÃŠh†Zú5n4ªè>ڢ˻ aL¶¿¯™¦ˆ®C\ušµŽhÍì ð’xõˆGGòpé›KSd·|Ä¡<<"ÎÁ.`ûµš×Þµ2xåc:aâL4+«é”âH¾uÆþÕ{×Iu‡óeõÏöž» ¶_«Õ­ùôÅ ØïXhZ9ÜaÀÉ_®-¸Ý7¸†=†³í¹ a‰ ²Ç3qØþœv­{ÚnA0ÄoÍÿ8¯ÙÝè‹Î1·Ç*r– ^U¨Ö–áÕ¸æfâ ¶¿¯•ÕÇ/é0eF©÷�¢lOêŽJ7%˜n å' |^ôŽ\�PGµÿ¼o>ØÀö«µ3Q ¯çìQ)²9\;® HÇu…oo[› ‹¬„u|¯¶ŠÒMTg¶ïoÞL�#RÜý R�¦ï¨N¥L¿[Æ�3å^Qâœ0•ÒAÊçÊéÑ-›Í™Î 1ñd’XÃO²'—�xÓVñ¨šÑŸ‘©CÜæÑÓ#Ç5s !gÙ›Ú Õ vŠ©~‹_˜3‰lœ3¥Qc>KÐQ£ÕÊÀðY¨gf\ü`ÐfsÜÏò+�Oý#Úȼ½°e¶9 �ˆ¸ClñMµzûU®Ù=PR�|™n·ç!³Ñ'®’$ Áö{¶Óœ»�ÒÛÉØP‡ÅóÍ�–Õúš/ž]Ïïý\´Ñ1ÑskÂ6�!°ý}Mºª;z×(*ÁréÖ~‰sœÆÍpX˜œ8l2|>O«’_%à}1·=ØÀ´ÖˆÞÂ&¸C5Ôó½I"tè **T®qw,Ó Ë<³d“#w²ÃFñæ‰À¶ÿ�¦À®³u6ócÜŽúöáÖSÓ†ù}„öâËrò½ûæØ’µ¦(*)¨â‡Áög·AùÕí³=Ûì.’¡ ^»ö"÷猥|ÖT1Q® ®mêV[ê´ê%`ÛïÚÞ>K ”ös{á®*,KŸ»½æ¾x¤a [–,+Q£ãý²`â«¢þ &.B°�íÿ£Á2ƒË§9¸ø¤îíô[£O»K¹œ‡fbÑ?–×{T`§í}8lÎl`šØ´ãªÊR2K¾ŽÇ6uñ~U%¸Ï€å¶.fMp¿L ˆ“u÷_ Øì0í¯é"Þˆ¡êÜ\UÚë!ô°ZÛãñ°Ú{HÔIÔ÷1Ánx“hú¾gþ2™ÜÃ_©V©Ö£àHÙÏ ˆpè³Ð™Y­xJ/ÁØ`Šõè l6W-PAIºÆX‹&z¨ š›�Â�¾’2“Ø x`øÀР ¥ µ=�õ–ÊÀLçL'‡‡¼ ñuDÂDÂF$äßæ/ÆÑs àùcùdÞð2†i·™Ìíð+�TQë�ùôžÚЭ ââ‘îS¤ì|´í{� ‘ é�éë;âŠÈÈ!ekøù1ò°Øz^îizñ ¢ ¢pçÎ.òým#vœu¤ûCI§r¢7›;KÏ¿ ¸zˆÊ‰ñ¸Bèñ"‡ª+yç´Å³bµÅw;â.–Õì ñþ}3Ù O©¿0wÃ9‹‡ìÓÚ®“ë)¢WŽ�3êBòn6wÆý,•<»Í\)%íòbq8ɪ‰ÛŸÓ>IxíºbŽBäw°%IÅ¥¡¥aMk~„qÖžÔÆì#EuÎ�«ææØ~fÓ5ô5¯@w _@´Ï Œæˆ”Áûh¨bI“ñ†Í¹Î_ºÆ{1Fλp l`ûQM)"gzKòºöìCöÜe;–d¬­ŸŸPh›ÍuÃ'ŽDvq†Ô’\óØ~×6¼ƒ·Poû ´¿}žÅˆºV$MÌÆñGœË׃²j0©`ãw8$U�ÜK-˜'=Ž»oKqf† ¬†*BZHé}wsn¶oÓÞEr|£&}\è ëõ`ÍÂgó°È,Š÷ïñu^Ë~ MÕ¢[IúÜQË£–/ŸÀáƒè!ÀVͦm€ébÀ»LbÁ�Ñ�÷.í+FXÛ£<»<»ü{w(YÒåÍ`Ñz$Yay½ftÆxLéÄ[ü*‚»+v—x`\}\}NÌÒ ëN L&Ÿu,ë˜uµ|Î×%Ù&Ùj·@¿ IÇ’kP hx…AôšX6Xc;]H½ú‡{.ÞÿÌÒÅŸƒ¶ª××[=tî¾\åú& & ¶xx¤¸q¸¥º¥v±õ»2»2ó ¯Gº¶A`ûP#¬†]OèOû¶³æa’ü,�÷ i�(ù}m=iX8¸Oþi’}á#šåÙ´Ârq«ÇŸèWSÆ=+bé&}˜iôÂûÒÛþI¤VwR'V¯œy¬‰$åç~�«ÏÙt8T+ð¸0µ«s5?ë«Ô&Ü3RqŸÂýî>w�Ú¬Xì£é|iéêΕZ³•7Û£âþ?„råNaõaøƒêhŸ#™�ï–ER"�ž=0CåørßMiK¼õ{TÌ•ÿË¿Áss‰¯ô®¾þ² }âŸ85ˆífßcݯ‘Dmô!ód(®±ë}ðÁº$H€µ½§_»_{CRúÖgJzø7x|>wRù¤òØ’,‘,¯7àüf:€ê-àî�Pÿô@£ÖyGŒGõ竱Ʃž7zÊ•Xž_žgF‚äƒä½Uº°hÄïwÞï\�_�/¢X(û:$+’ÕªvUåÛzdߢÆOøõ1>.÷?±ÄPŠá³ûh6‰ÏÑøŸùd*®He·¾ü9ùsµnCÙxÉßC)�´÷RU×ÁåíFk@k\wyY;^;Þ s=I·��¼V>¤%Ò»ž¸>Í<Æžïí#—‚´äÝV ò¥™ßlæ�»¶™Ë ¨ÖB¡4öüЦU»î·åV`ÛïÐVDÆE.F½‘4œŒ¯ÌÑáC¨ì` .U3ÕBÑ×QŠÉE%Xшå!K»Àöë·w0v¨IF6QM¾|�)k„âyѹ2ÒR–XOSÒANG·ð%u¥ÝFÜÛ�iÓ ÓÓ�‚£�'Û>²ÒæØ<*¿ÈÅuÙY}LÁ"æ­)áIÆSùÛ,Á¶¯µeRÂn;ÿ×Ö �íµœIZ/8^tû•Î`ûSšzñ0“5C ifòÞ§7óNHë[¶àî�bw'L¤ï ­"‹ºy(zX}³=îíšÙ¬‡öÌy¥òa‚CBrø‹Ü |/Ù= ëÆ“¹ÿÑ%â ÷é„¿¼ºLµ¯ÅX4¦õý¢R#íèf{ ½¯1݈¥�ð ®fØz®w° 9ìU°úå<Ë<Ëê[ìˆ+]CN3ä|á�ð®Vy ò€ˆ ÐXœÓX Ð \ØRe x±K¯c†fž+Uý2Áe‚`+^ÏèžU¬ñ0ô),ŽÌ©SiYÇÂÞ«&”G–G—ö@ö@FðK‹° rÈd :rvöñëoÞjvsfù6yÙãgÙ€:qŒ}W¡O§0vwÒ´[3n«¨LþÏ‹ Ò-^ÇvµsFsFBB%×W˜¡ßcoOYsÁcÁ£“­1ÜîlÓé¼ޒðFÄ[fmmØõ$ùé=$n-âÚSqý�‘á7/Xd÷Fl¶Â]Û?ëw]Ž[Öt0l�yyVà»"ÛÙlo¥žÛ©}1¡�‡[d¼L( $œÁ¶ÿk#Öæº×féhe\Äõ¨Mþ hÿëÆ Æ¨8‰¥a–I›¾'rCÍLûÁ¶ŸÙ üïBUíÌ{úl¼gÒœøÁÿ°wßÑX÷ÿÇ/+[F6•••=o#›!²ÝÆE6™¥ˆ EVvF2³’•BF™ÉÌÌ^!…~÷ç\÷õ+WCçÜßsߪÏyü÷<çsÎû�ÏõÇçõþ|ÞaáMêîÌüMÐî’^þKÚ>%`Û_m§âNDå ]O µÃš˜r—Þ°†&cþÈc9•gï]ÒÕ§­Á¶¿Ú@›ëÙ � LJÔs9A�2J¿°)œvzíryþ�xÔS«Ù*¢(`Û?m^µY:<‡¤ÒÌõŠ�@;ÃüñH‡)Äé8k» Ó ó.\‰[•5,Øö[k&¼ ev(‹›'—$÷T¨ºÔËs�b?�!ñµvN©ãôã¹:ÆñÀ®cJC™4BNÈs!�,aÝ ‹+_ê[3"ì5BÞË_]j~Â}‡® ¿Ïá è˜še1JÄäéN_×ÍCi�œ1ÑX_™ îž ¹ý½—)y:÷½h0ÕÉâ�Yêó¥å´{=Ç#¯åý=…÷ñ‘9‚cn)´ —Ù4™Ê P/C˜Ðú1ð·±ñk½�¸6°mNx¦¡ÿ)™‚cŸœ—I­‰j6³N4f鳬ä îÙSUäù¾Q=¶ß¯e¾ôÏ�+Å0%5£ˆZr�öGY!hTyz6v¹³ê…®D‡‘w(ïñû`ûïšc�}œ[>× ‹®ûœRÎSÃPÌn ^ZüÈíü³¤Ïdñ­�mµÕ†ö„X ÏŒÜZ\þ`¶ÑûŽ $\©¶ËõüP+NJ:­HIŒcòÌá˜`Ûÿ “ Ên­ [¸]Z}ZC¡Çvx”^øŸ|óUH"6ErŠ�ÜxIê�Èø [±…÷8ò~¤wlÐÙü›:ìÂ|CÔ©ÂY{íGjüuMÍønÆÖ�q4Î¥Á2I‚€j©ã¡ãqfÉþ"§Æg5ÛRÿ—8¼8¼Ž� ˜˜PíÄÖeû$íB"oo™Ðe†à>pÏ, ŒæÃÔ`j˜ƒžê¾Â BÌJ*EÀ ©u‚CË_L0(•„p„pTÎ""ÔF©ºoˆ>­ùNó>«÷õÊõʹŒ­p}Y-ÇY À3ÜØ ”Gœ&&´‘åúKÑ�íOÐpÒfðßÌ¥<É<É1ì ±™õ „÷[ï·Û}¨Ý¨Ý›×�¡ºBü!þ)K,i Ê ÊÆ¯?§µ±›c  ÉF{\{ù™Ê29ïw=qc¸7ÁÅ©Ã5{=S!¿ÿœ(“á²~çCý]­øu¾òg(�¨´ó¸Žð…ÕŸ1á�ªcœ?qõËg*ÞÝÏT¡¤ðµé ô²öˆŸ<\@DøZDc¯g*äµ|íOÀöë´<ò8KÆõ¹P™ì!q�W^ 0Lôw½7ÃŒîœÓÕ;OæÝ-[¤0áþl?g‰‡ioW9R—¹3Gž­Áð�í³{yr¦â QN†®{ÊPšÊK›%‡ñ´°ý:­·ÅÑûUœ7�³W,\³.³OÃ�ìIeiüh‚D‘}§ÈÜcs°�m¿µ›ªe±jÁ÷‡d¬yÓñ2¡"õqZŽÄ¯6¬Û!›=šžBkh‹´¸`Û·šæøóûh:ÛW] Ë�ÿ Žõ>®7Öšò„IÔP*¤áKùq�Ç·Ý:Áös6ZÌ­Œ¦k„~eÇ(?&ƒ5ú3ˆ|Œ…ÑŒö»Ý–WöŽªyñ>µl`û§�hJ†MÇ,U´þ:ŠùÖ xܶÖêݤÙpÞ(cÛI¢{<£%’–kpÀ¶¿Z.W¼¶v"´á�œ¤²6“1ç„¢ ³gI[çþ�è½r�:Õ=}�Ælû«Aͩ˄V1 -Kß�µ#ÆÔ¸‘Ò–àâqc{kŒ�‘­<û²éDØþ�öˆ˜ŒÈc/+„Ƃؖü’ý6áÈ~úÓýÔñ»>’¿/X=%c–w{�(Žy¯áí&{îƒ.¯WJœÛÆ3Ò÷ÚkÐüëíG»ÉèLÖ#c«üܪ*BA¢°BÍÌuÌõœB_tæùq3(=_ååKzRÕTÕäŒ ÈouÞüѨÙÉég¨ˆ?u8çvÝ †°°‚+ˆ+hºî¼ÐRÁƒðQù…5BÉÍ¢«pxݺ%2BX©–©–T˜€Æ«�W‡Ã2j«eKdKÊùÊù4 ÙèßÖHÙHéÀ³!û}F[ÉIK‘#V8Ëv-^šq¸h|yÕå³îÈO.8¹iZ×켎#¤P–à<¹áý#8ë8ëNHÛÛ„¡!›Ç†ÕÁê æ×â§ø§ø¯]üœ­Ýn¼fØ|µxµ8ò^ƒ³e_ÿ· •Jr‰hžû½ö�ÏVQ½rO4¸¯ÓõaŸÕ¶ë°Ž,ß ês~>•�¡ …å§ÕØQ_yKéüÍ¿¿ÃK-óÁ*ªbqg‡e^c–>¶×^òZþ�³–À6 uzµ£Øp«©Q ë“;ûT�‡®Kd“?ì�Èa‚œ4Š,¬g0ï¿€ø.Øö[S(`$^Ì&:ºéyóY\­(i;?C²XºðÝÖB:Êwè>æ�(mm`Û?mæ#"ñÉ׉ŠÂ¤�f�äFm&bõ%ãÏ<¿:ñ’õ{æÓï\“kAœ}l`ûÚ9Ib«V¯1Áþ+„&Š2ΔÆb5+˜ìáã;¤Ê)UDYog H]ÝÁ¶ýÖð›¨4§ˆe¨‰–'$ì£Ìi½o3FÞÐÁ¼¸6>\BPVØ%5ò€”†¤l`ûÚ‰*]Ù´“õùe3“ÕOGãŠÕ†/Q_å$Ñ$°zÛ"¤®�•ÈNÝžò¿n7Ľk¬hNíÐj3 ÀþLöÐ?…<·âXkë¸íHdÔà¯VvŠDáø^s+-ࢮݼ +è‘�%|Nú‚‹~y‚ë`´u´õ`kGbâ½&îëÙæž_"T&T Nú˜ôñ àŠ‘#? Í€3ƒëwIÐMú%¶î ÿ‡õ•õ•7†ó1‡1 ÜGÃD0q0j…3�×x•œJZÕ…¥‡¥§ê( / ·óѯGØ>³å»å;U8U¸ž/ùm–y–y’1÷n|_:½orH? ά_“+\‡´8Éóò¼÷YrŸ?ê‰Rïp^ÐàÓàß“¤ÎûúÔúÔóÊ1\1\nç‘Ímgqdqä^d¯ð^¡ùãç²kvÛêôlÏÍ!Ï­ôNÄBŸ·ù"dÓ8_äu}¯¹ò™Âí2å¡4�2Mïbzªûz8Ù6Ü^Ñ' .­ës†¯Àš¬è+ïÈžØ=·j¡‚¯¥Ð¬©ï�Fô[Ë%›ËuìñO÷š[!¯e?�ö3¶J]¦F!|ë­Q*ÌMWËóÔ[x¨ªy(ªe¬1IWé­¾ÔŒ‚d•–�í¿k µâ¾©Žš Úé $³h-òŒ"‚EÓ=ÖDÅ�ß¡otFá¼ /Àöï4—…hwBW&ÓI†;7ÉïÍJ Th­$‹¿Ä·}|¨ æý¶³$!¯l`Ûomó|ýªMaãúˆ¢å-Hp>eE¾%-{Ò;é(-„êÄ$cÛyšÔ�Ž °ý: ¿bšeåÈK™è!Z±×øÝé2�W;Aý¨M—špãÉ%H”cö¬l`û/ÛxÌk:üF^»gD#z�š¸^Îbg"šïà÷O²ÊR,Ú‹À ßöxC�À¶Ÿ¡QLËQÔ¨øÄ¢ìrWÌ)l9¯ý6ÀˆÑ{›>E€Æ¤"ÅSR…yK(¿l`û·Z¨Ëºà²°“ç–ÄҎ包†ˆCbÒth$KÙò¤ÚµT[|D‰ìì؀ƃ›µ5 {c„•c�L=¡þ´ïci©Ã×=ÇÎÎùà¹åÍ*Ý.6Øþ­¦Õ�%ÑÛe™]Ú¾éŠV|K¶Ò¸°•7SiœÂ|Ñz¸Í�7ùø;§xK<°ýwMԬ‰@¨�1õæµF²…µÝ± •¨�<²™¸™ó§ò(l<€¡vzš�í×iýþÎ|j›óÍï^ÎNÛ[�3qE=§l7au/�Âq;/‹¶D"Ú“�õ36r&USòÈÁP–¦%ˆ‰‡ek‹’mò¾š“I+&K}ôë–�½Œ=1±{í«!ÿ—ç[ÏQGÿ°-[âGÜVnòQl•�þÚwß Û\ÙL<!5øÊûà<_ÿŸ.N\å[ù"¡[¸;P³¶½öŒÏýuÍÊnõû±‘mD~.Ð aú¨ìŸÂ¢º¢:­cávÅ ¡~*µ¿‹‚E…gYû[û0i�xÔô*ŒÐù-À#¹jb¸Mn©‡/0ó®ä]i)žªH=ÑÔ‰`òø�VE Ü„íEèM�ࣀúœúœµ €ž¼žü€ìöC„)ô¡š¡¥>¥¾&?†oÛÞÜÞ|0ñÄäûþèîO’ø)ÀM½Á }  ÇщÊYîä{�ZæÌ7˜ä“ú×­·æ Jo,ëÂñ±…Û)¿ø~=üÚ+ j)j™¶Þ€p2C G GO/C¯TñÛxÔxÔ4e®q~ßÁcz3·ÐÉp³ ±6[¶]Ô iJiJõ‘4Õ›^û)b)b‰Ã*Ã*Çl�…L—þ®mÁ�Œ‡Œ‡fîs™Ó»6R6&ˆ&>½Ïþ÷Ù‘’ËÏ–Ôn^,Œ™õSÞk6�|oï§sL~·6aBã?׉uØÉs†»w¤ßWsÇrK0Q9áëBîeÔˆ:çA+=4°ý~Í@?°Þ*Óú��)¬-©ËÃYd®‰MML#{1v §ÀE˜Š�MÀæª-ØöWs>¾‡#Wù”Œÿ@Ò=>½Á’ìh ªi"L©,[}$CRófŸ×dØöW«×Ýq¸>%ZkÞÒx®ÅÄ]~†‡Ðõj ãu¦ŽWúèxNsîÛ¯Óîõ,[¬ñxÛ¢ì¸_â4\TŒæ ?ܦ$ËäYΓy²úŒç©{öúv`ûýZé“ÐM5š¤•�k SQ¼= hË�>Ü螯rWñTÐÕ”^F¸z£‚ lû­„‰f§0+æšiÔN�”%cIç:ÞáÁÀC')¢JÚwFѺÐ^Pm ¶oiºFÅY_†‰7<_%¾‡¶¼úyΔš.Ï4m ®V(-·TN¾Ðº×œ)x˜†- Ë”ZæRODd±£¢©šÒ�’æ¹°Fû¹ŠK§SÎCn26Ÿè€T7ü{÷�åÿ?pœJܢ왌2BVöž‘™�=³e+›Èî®Û7%+dDÈŠT$2²÷–�$ ¥øvýîîwJç|~ßÏGŸïuÿ=�ëœË9oçx¿®e!“èöq›9ïös¦wQ¶JÜÍÆ£Rô½Æf…X;Í™´¿3÷UfV|*ªÈf/¿ uhÕE²?ª¦Ö9\sÀÔ·>›PÝóG‹/_2¥`á~e Pc€$ôåäž=Vö¯¦›³MÒžg‘„ ÍŸ˜?ñ¹™®SQ*C:]ÿþ&Rh~ !êjúþRþZu@knk®ó-ÀøññãO“‹™�ÒT":":z9z9WÅ ~NcJc*¶†ûk‡åD!ÃØÛh„›wï­bžE°óL}¯8pû»à›Müaî®âCŒ‡{ :‹â!ø}¿c²~²~vðÅ9 ALT.ÙiikµsíÞ Þ �›a°me X"éfïfG®§$BÄzòÕÒ]à¸H!Â� òÝi΄º¶wÓ÷©ÿŽ6úÁ’Ç$Åk/¯€4¿@¡Nßòn•}JD5S¬ÛaÜo1Ô; +¢lf»Ê@¯{£ ›¶O�Ÿ<ÓH÷³Bÿóèñ{¦r^)uÇùêmbœDRÛÿ^­ê=6Ña²VxB0’AÏøù)Ê Ê™Àáè*ˆ÷œöXéßÜl`ZKPonÃ)«‡Î+ú1ÃB}!þõôÐëJv&†ñúš%)è0À¶ÿF“¢S=°˜ü©á”ÅüLš+ :™ýû,>KHö²¾§�Wy‹û— |lÿî6Ô‡“…·ØsÈ"¢‰K¸qg2½ÓöæZ&M"?S%ü a‹9!7±â=°�íOmóc‰ž¢n“Žò<â¤éx5ÕµhO»Å±oÅ(µ¯|抙Íð=Ì´l`ûo4ÊäË¥Oò“¬Ï]JdéårÛ M*;ø9cî0µ†vFT‹“ʼúå{+°� hü 6«î«b›°·7šÕ†»9UÝC�;ÛI¼µ`¨…œð‡Ô¿M Ýiî,úaÚ#Á_šà‘ucåÉÆ�GåíqzŒÇòFe-öwQ¯§Ô�“ <Õ0�n%ÜfîÌ�ò-ìo3𺉞<ÜË�rá0Ý®"¶�愨çò€™žョЗû�.jGNek°ý{Úª® Ë±ÛF}Ö™í´±"°¤9Qʆ ·}0SgB=ºÑbÄ•p‡í®õK¶åB°�íïjœE¼…Â9gŸÐ¥ã—⯉™šŽ{K=XLwس?¸¨‹Áï1Ö7°�íOm#øl¹jxï(Ú>Pë>æMâ7³ù;¾Ë×Ówþ©Ñh%-‡•´ÈÃø^B® Ñ)Ô{*š lO?*˜ÂÕ\{<ƒeÀ¼Ó=:_�IÜJA-ÕUqôfKRHhûéÜ�tÔ´ñµñé­'0Ϊ>’*œÿQó‰æhÎöRöRPbŽœz Àÿ#@;ñhi c8‹€U„Õ�DKm‚6¡ ××¼÷gÌFRV=e€Tˬ~�ˆÑFßXG) üNù�Y3 u©u)�UhéÝi¡H¡È à ÃÊ䵸ŸsTpTèl¢/ÿ5<9ÞÂu—˜¿ „èã,GÓLgZho|W;§!ºJ€êBu3ŸBi§a8|¿ccdc„G¶1©1©JÕ{ÛNÛN‡§gë*©*©247S(Úê® ¹> ! ¹žæ¾íÛ®sP¿ê)Î%Öã–uûÙzR2¶²~çÛ:ÄÞæ#Ê)Ä<¯$`ë^­Ùj^ r¨ßŠX+À& 0]^¹_ì 9_’øjýöµFå"ÇñGé êþ*™C^<„ö¶9hfP¿‘Šz?êsD¨û8Ô=ês™|Ç0eÛ„µ,ª/�-)r;íQQŸ}êö )Î] Òû´âñ™¬u�û�Í4k�¨ úæ=*'b�ʱý½Q¾·Í\ÝÓ/ë­ö;«4íôw¬ûõ˜žª­2p—]PYëmf4Žtâ�V5R|¿¨¬¨lv!¬™Å#†»"¹˜þG d dgÌûŠûŠ7n{ϽnnD¨V�ü?̲tT’á+~He{òóçd:˜…y�#éGN )U®Œ"0úëȪ1'†ŒÍ�ÍõêêaGKº‘H-èè^ ¿@Ïeþsöœöœ"âx–¿F zªÚ„�‹p‡’ò†ò×"´Žðœ0¾ ß•±� ;æR^Ê¿”¿âž-�®Mÿ;HÙHÙŽÖºÔº„{£k“|+ùVŽñeÙqžã<ëê›Ùm¥â 0â<Ây¹ž˜¾Í<^޳ô㈠5gŒH¸}Øiæ�º¶�”RôµäžL¢Ëôox'oÑ=_Ñ~l`ûÚÞ)Þ¸�7Â:3áRUÙ­OãÓ^¾¯`0¡ÒGZ{�_"$â<FÑý.°íþ¶DIG¡3£&S²Ö€�&H&Šï})ä>u'ÍÕƒ$hWC›Ùc»’Š­ËÀö÷´©……®‰zŸŸètˆSÍžUÄ11¥9=Ô–2›7ØçC~EÐ)ó� ØÀö³ö²¯ÛÂýµ)Y£¹Š-VK´MœÃnúÛ¿¥©Ì}T?lJæi�ÏÒZ�á-ªaÒŒº’‚ÒG¼º�©Â)�QÜi„ºG»c¸ètæ]”l*ÎÈ^é“{>r:d»&XŒbw£‹U² Úæ:Ïö{ ®ª`zB¯´« б¶þç;í�ô¾ƒwh+ÂZ&¨ô7K@ Œ–öGJtF F Ã85VÎÏßt‹æË�¼m¼mHÕææÅ=õ­´¹€L{Àõ®d÷{L€0KIƒåÄÛHBo¢š£š_“{§éŒu"ÍžõRCêÍx GdF/æ•綤G§GËäB†C† ”ÆO ‰ì­±¬±$’$’$‹ õý¹lël룤/¿¦WΘ…Ëà*EØwÕÌæ³2‚&zO#ýÅríU’;&.ÇÒÄÒ(dîôí›üðxï­K—ŒéQ�Ö;µ9µ-Ãì `P”¥w³£[݇¦S�GœG�ëIøÛ{Hšμ… ÔD§ôí´B]ÛÿÔs]6…aR:kŽe»~oO3dy æp…5Ì¿c¯:W³˜‹þÁs‚¶`Û_mûÏ0•¿0±9¯—Çô,{ç‘ï‰×õ¯ÈC`‚k#XÔ3fýMŸüd À¶²�‹p/£ “®¢ºÅß:6Õ3c´ÿ^ÑuÊ®,Î<“Ï,»î÷ óxiùßÛîj•)QäÓÔÝM”ŽË ÕìzÃêtÙ¸#�N)>çýèzz.#4RáÕ°í®Öß⪶ªÕv*£œÍÌ…Ö£‘�FL)^Ân¥Ñª�åYMÜ£´”£(„6°ýÕÕïãø8[›‹H"Ã\¯ä¨e[D0ñ0™5Ûã.¼ÛEù6¾ðåQÃR°�m·µ&�MTrµã0KŸgß‚rÌ(U“z”ñTÙ¶ÿ½–5>œ/Å0%6#‹}댾4r°þ,¬Q-a¡­ºSWì…‘_øI–°ýsÍ©Æîv—›ý“®û¬|n£a8f¶ØI*Bܘõ»jêŸ%ßœÉæ^ÛîjKO[o$ˆyfæ=>Às�y´ÀIŽ�=Ýn¡–ÇÒš�\›ú\Œ8½,c$&ØvÃd¶d½ 4—TúPY]®Ûnx”F௖1zP>9·”–<y2ÖØî%þ®‹qbÉ 5Ø`Û]-�=Ñ ¢uÓò©('±ŒíËxMþ¸¢œâæÙó"Q=¾a”y{Üo¯¶Ûîj–æ”åüKr†V¥Ôì 0µúÓ¢R[n\ò¸ºþeŒ•Ž|oâm:Ù ¶¿§U�à{,àÄaÁ[Ø‘z9¬ã�ì¦ï˜î¦vó&nÇgÒ�…K,°Xi³ü¤e|8#ê=.²GM•ü‰ ¦<Ÿy†Xí;·Ó=.À3û,[ùÒê¢*ߌ )MK:É�5b8bxn~|,Ž”ü½~oà�|d|dî«1¤3¤�âÐ_w*iš9Âj©:Œg–±BºH2¡%.Œk¤„˜{Ó"5¸#9Hg_@È‘ækpíx/ (¸Tp)×KKv†S ‰Y* >Ä{ˆ—�È%ôç$�$�pøgF~­ïñÝÒB@ÒŒû$îDå·)Üæ¯?ã¬ÿîsñÝŠWjµHÙUÙÕK³h®b�u’ßQâXâ¨I7–>–N EUë.Ó)ÓÉšž›s¡ðBáeüÍâ·²Ô Ö\ ¹‚z­ÁŪ·¯Î Ê¥ø€T,ŽkÄa§k ¨ïVQñ½#t­·Íµ¬×ŒbÝuX[†ûížvnÅÕ¡L¹…Ƈ�Ømîß@yÿæ·ç°ÆÒËý±Š«™ÜYƒ²®0JÒït­õ\þŽw-� l@ëõiE·åPU%Ö'uñ8¾"–CZÖ•Ë€&eSTKkÞW°Ÿ l»¿-ËÒ¼ÉÁ?¶æyý9ü±q6+í-áÛ‹ºÍEÔäöù›{„¢·´€ lµ™�&Þ Ã/Ž�<–I˜s¬ÿx O–ÎÒš�Làsÿ>—š< ‚"°�íOhšâÖÍ>c|}¾ýx&§¥]N� ×¼Ã<È9±A¬�Z�Ÿý~Æ€ØÕl`Ûm ÷…Æ�4%þÛ7“b±æT~It1Wµ1/.O ÿ‡½;‡ªï8>B!û’µ0•�}ËYB¶Y³“%²–BÒH–�-CY cÉRdß²ï{$KÖ¤îBžûü¦ybîJüžî–3¯ÿÞ—s]ç�3×u¾Ÿ3η€¸Ù!=’KÅ@Ñ6°ý �÷‰žB¦ ÷¡AÑÔDYÃhL>lø"�±7…±õ›&a ¼xú–äÿïvM§ܚAeƒ‰©ÃŒp6ÑC_sn5}doÆðhÿƵñGq^‚BÛÍ­ �õ}ÚVGV/ábºsm3_4IQ4·�1�1a7¸ò`˱X•råqåél|ÄøˆÑ'°ÒoÖ Î|#So"žd·EFr’0ÅNæßý­–­–Fc3Ë3Ëaq˜X°Þ/¼Ÿd)�èì ÁÙ,Gj+ŠB€Ôae¨2snu†÷¶eP{óUJRvMÝ<¯àíæV˜ïn‘-†3ÙÜ3½‹oè©áçádW·¤Ov³ý˜ž¯º@Žíž¼/üF–wëܪ‰u.H³ºÞͨ7V ç.UrÄ6l7·Â<—Ÿé]`¿b+Õc©&²]¿#F·kÕÕªÕ<åáµXjElÑ ÞL¶$Z‘�û…E`û÷Úl…„_Êy­Y�ÔŠiì¦ãŽÄPÑ#y“ݶdGóÛ ~C�>8P‘6�`û1Íe6Ê�Ô•Åt‚9)”:=oú(V©Á©¥D‰"»§”9åï?:{Aîvƒ l?[[Õ­Z>‡¬}7¢hu rý!mÉCkÚ½ ëT£{!t¼Ðf]†”­%`û}QÉ$ëÒþÙ¨!¬½âó’þIæ±0^úÇÍzô¤ý¸Õ!‘ç3òˆÀ¶³�GÏ3ÕòÛ7’�œiÓêßîå,®^ŸDÔ7Á&G3ç `ø¦ÛÇÒl`ûͤ§-'úô~ØÂ,ósl/‡qõüqê› ¶{N‹y.?Ówùwn OgÏ ˆ3R÷<3Må– ¶Zây¢OU,øj¥“*=ç~‡‘Ê'`ûóZ¾…FMöª¹Úoa‚VS­ �ÙNÃ-%/Ó6rëËÃL1§ {;À¶_¡µŒ[Ur'¦¿0Í…X2>oWžgxH²ÞèøpQŽþäF+m±FZ£>Ø~ïæþÊ!!â´�ÔE»¡¿ â~%�|þ‰þ†e)*�jOŒê#�oJ5۟״)¥�ˆ¬Ç �*5xØÁ!{ßòT ç{’Lr@³�õ­3�qwUW´ƒ l?[›¥Jqk r¦yf1˲ü0:Z.ü¥÷ˆ†xàDÚ‰ZÈW`ÁÅ3ùoïñµ¸…¹–¬í¶Spš9”cÖ|Û¾×åØvkɰÆ<±KJ†_˜™‹¬ìb1'Ï)žž‘>?­ «õ#ñ'Íöe]Ú1kÑà"±>ƒ ¶?¯hUYß³]ñ5 hNèðp�©c‡‰kfáÏÝ^ Èq¡cg:çm¶Ÿ«9Þˆ!�/mØ#¸3a–‰ˆÉ`An4y‡i°ý>-½{Ñâ-Ÿ�Ö†ûE.Ã9� (�›ûšÏ„ȱxóÝ“)S?Ê¥’î o¶?¯VÃWa �ÊýWˆk^FòwÞ1À^¬õåÁñËZ&TÆ�) „»úìØ~¶v=0L,#ù�b–™fÅK¹=¬©Ü‡[=˜ù¥DÕ(à½êжH‡#°—°}»ÀÐ1*Á6&QkоL~%{qy sΔ’zœeÒ@†<&¿PL=ûl»9Óõaö€–¶Q P ¸tZ6¸°âÅ¡(ýåçÑ\èMpLpxö6gÐØµ¡5&‘@Ð4³PjÌÇ!„V¯/°c=¶< È Í �!TÎG¸,m#mÙǙÇÝ›üæë<'='E|äŽ}Û~ìÐf÷ç.e”¶×–"(ÒM!ÞquËÏNóRÉå8lyNñœòKíOU|½'ç{HðKðt;Õ8ÕT°aÒ\G¸"\=Î>Æã}Áûb@n³ƒÍ[ Ÿú?²ìC_Oq¨ë鲎ÞÇROÿ×t, 7àC—·›3a^Û?ÓþÔ?¢�®X š$áa ‰X…<È>Q­oùð±}R>,íh·Ã˜Ïë K÷ðÂ�`û5Û5–ƒzwÚ˜û4…iÓŒôÖNô7ÞË5U¸˜TÍsaìH­M„Óî0•a°ýyMòqwÐ�ñ¾0“ÕNÑ›,gŒåéý¤Eè§ýWàXj¥T;=Þõïd³Ø€ÖЛY/oUFçôN?‚nX¬/ÐWºö`Ã_*v&Ãh}íü$¿q¬\°�íÑd °Ý¯>ÔË[PÒÍWîbº²¨›Ö�c)²&}¬—ã s´ÚQ)9|l¿wê#¼Gúº‡Ä" _›ˆb#ýEJç¹øÕ4¦Xá#¬%¬1êÍæTʹ`Û¯ÚæŸÇzJº9¼pT”¢N!-"R©ì–"HŒPi·Æ1“5p™�l`û_4úïÂÊqVާ\b÷ò¹mPÇ="^CÌ20j�F´…èðî5"OÿÆ l`šð¢Í_ä¥0îö³*¸Ûùǹ˜sg»c­£,Uøœ¾øµ ÉAÛÍ�%W¦hùPƒ"4,œ‚çÏÕ˜WúµJ«×fÂÿi¼l¼,¼,l&lF  Ø" ØÁ03{ÝÎZ¼VKåi^ÚX÷•+*¾Ý¶ SÃíhLäšh‚ŠnÊ(RØ”‡"vY'¡l¡lä;‹ÑŠ-ž^yzeElEŒ,SÊðë;;ß¹Íõ}Ûõ²�—›¥ãó(D±‰c(ÎÌÓ¬³1ßigs/P°š{V«{C­òktƒßõ‰WŒWô›’�È@Ö–0uwÂp„Å;¦à“Á'…l&à¹UòG€8›©)æÌ£Qî�c°ê¹Û«÷ö®w6')l7óÀü~àHÛúUûíRžu Ð;úá�ÇšPÌU�P�%r›)ŽlI¬Í3^Ỗgë̃õÓubìp?¡ä"{D†Ü•re»5*æ¹ì+¤ëkÎä�ƒ¦ùÖ/)YtÏ·ŸØ~…¶.ôR(*pN\w^š ã¶V$cö.8a0®ÖG]E,,v–R�,èÛÏß–é¡túñI¸åiǪ ¸™äÂ�¼)Ä/`ìdºF¼r-èwdW\žõ#°ý˜¶(³¸ØÁ7^ëÕúªK•lVWÅÊz×YvZÆ8xÞÇ‹öŠèù4°�íkm §ÛÂý•)Mƒ­Ú9¼æ[6Q?Ól¿KS›}¯É`Jãi�}¸%qIRËäæ=«LÈÁ°ÿ°w×AU¬}ÇIi¤PAPJ$¤•TB�Aº¤$.H‡ )’*Ò¨´tƒ4’"�ðºsîá8sß¹¢wçóßwfgö�‡žß³»g2­Ýó¹ˆ×�ÔAÿ³ÂîÑžh|°�Y ºœ€9„(Â&ˆ°ÁÞo–f®÷®½ž¿lÓÔýçtß>§£Ç_õÝEÕå\X5ꘚqÐ~Lçó5¨%ûu˲kÁºœ¶—«ò효Õù—ò/û7ûä“-ý -Hp¿æéäé´.M/MO�04FÝ$„…Ö›ƒHŽoCèñ¥È@!‡V´V´š?`Ž58é‚uÑ„8Ê×ÞÚÂ)ô£ÞƒN^o€¸�¸�   ¹ yâ„5Ô•4£ûF÷õyõyK6(¿�<‹< {xÆúÇÚÝÏjÔê!bîÎNnÓB h[õüþâmò""€áU;U{ý¼r(ÂnMéÏðôL‡gGfGÆ4�uO�5†5aÞÆ†T˜T8Œm/ÙíýæBÓ ²ù²ùÐõÄû÷wHÌ/È,ø÷Õy¸=ÖŒïv?h»¶Õ{]Fn<ÙoIPÈ-¯�¤Ù|xðXƒ±DÞì>“·Kâ5ÖF~+ulEn°�ퟶ#2§ŠZ´Œn©ežz•6‹Yátæ}Ý$©§?÷Ö*Õ´Noƒà¦³¨Æ�>°�íW6Ňv…d$"¥”q\Í#]Ó7�Tàä< ïH=×Â1öJ¿#¿ žã®’K>ØWÛ}”D:EÕÙ@n¾Ê+YÆ¢6xM�& k¨â’T=ç†�øl’W ä¤1ØWëm²‘_¿æ«lQH>“’á[GDêöpBʽù¸RñeŽõHéåt)x°�ퟶ ^GóÊ4eVÁ$]µhüJ««ÍA’^+3ÿ£0ÔoÌ…Î{.䬦ΓfSU匞ˆÀ„Ç…qÐ\H÷ó5>™ûÑŽL±ÃšÚkjŠ'¤\*]vl{l�#¬Î×$5ªàYÓÙ¯U=®zìs>J,Jì]=`”ì²+@©@×S6Æáð¸¤á¡»")Õ/YÎ]Î-¥lÌãÈçuG—J8ø$"„!�¶†Ýy@Ä«ˆWùÌ­Q­Ñ`UÔe¨´ªžž÷�ﻣH ¾..;ýÉ<ó�É_vÅ‚|å „Z5ýé ùáîº<·I4qþâêfò«²\Àv'']‘•n�ÊÃП1’?’ßQ¡¯_! k%jWmWmäAÿŠâŠbBÿ^Œû=³dYD^D†®'Û¿ÏÆ®dnðø‘ çm§É½/(¦VÈÎ3ùk›æBs2iìk`;\m¹¶9:œß!%³ƒÃïôðs 1|–DÓÅj}CfRe*Åä“—éQÀvøÊi}&cI÷Ù¨‚—W®‰uš¿ðOÞùÊÁç�À—¦&Ö\üÀ=:u:OÏyvOe÷4þlËq¼º@gì;ÇÊÚSÁ>ÿ#’b½¿YýX1r�½¸¾”Lé) -ûÃj-ŽÐ*š÷ç¾ÞS±}{OE&½žUvú΢_:®ËÈ@ÄA{*½Ïל�ØOÌ@Жƒô^+òP}ï vð&&šK"Y(_¨*sö–}-¶5¶50s g )[ÙÉ @gÜÀ1I­®àMÊ@`9µZB1.ùŸñ?3¬mL†‹P*¾c7Šƒú3¬atR:kÒGDEDE�ÐÇ)�Sš8ðWA‘úYYUÉTÉËnZù>ï~ïþ½[glQÑG pì DKc !„¬ºÆÛ¤ ¶/žGòSÜú° ¦.¡.ª§zY8‘\ø3ܓܓ0l||¤Š`11”b”b4™\ôv§u§û´×±‰ýº‘þìþìÐõ@YO¾ê½½] �|ÂDzpq湯´§‚]Ûßú°ý9í)q„ÍÚL€Húç»ÍyN걞¶ ”°ÖUe^"çÑ\±1»R°ýž�;Ò]i§Ì‚¼ÈŽ>D¾Ù5¼ûvŸðÔ ÜŒU»„�$©>“óѤ°ý9­«ÁÂí.Y„3 •7KŠ{ 8JUj·²QMIAäp4®Y+÷L….ØÀvØÚƒ«Eá²~ÏDŒÙêæ’1Sõ¹«#-ðÞ­7Ãmyv*`;p­"ÎQb€ lßk £oŸ#*ïüeƒS¬yË/Ü™Qm¤1¡†ŽGCпöþ©bFNåŠ#s;¶­`û=%ʧ”W>«8nE›ÇIøU¹×yPóõn‡»S ÷ØF]–t-oßH,ØþiÃ�Ò'B£¢Ì]›¥î狘@S\~;Ȫi:Žû„õNìb9:ØWËd‰ÔASŠÑ¯½xŽ™PÔdüÑu®°œôiÂÆ™[|A]NÞä™vÉkz`;\M_—¼ˆkYLà`Eþ6ŠRïã „¦hk{Ÿ�O#L4¤ˆÅh÷´ÇºÁöï´R<"\ûEÌ0T =�"¶øæ%Zè7žßº°ÿ¬¡ÿï÷°F‹\PsËNÙ1¹§Þ§:yÐlö^þ�o〠l@kórl†79++K2¨Nlåòr4`�?�¸°+(ƒNøfHN5µnÏó#x�ÁvøÛªX Þ\:î‰-‡õ•<„iLÔq¼É>¨6æP‘® ¹èÚ{Á75� lÿ´éqGÆyãæ>:‘‚Ÿrâ5.ƒ+GªÊòœ£¨[½K�Uy¦^:ØÀö;´ëx†�Ž#ç{œzq´ÄE¬Î�jò–/¡`3ŽîJ&”á¦}œ¾Ahc6°¶†õŠLaO„wanŒß,T—Ò9Š&ÄGåÎêè`>vQN›àP6!~3ØÀö;´seª¢IÂÕÈÏnM�¿|3‘';x—Ló/f|lÃ� \rJ¨1LäÍ ÿïæÃç\nH!½{'G‰ÞýVœ½º4ìs„yçtuŽúÞôÙ> ;·R;®ïõ¶Éƒçô5•\GïƒæV°ßn) ð2JÕ~Œ¦á çjoiZµ¤ŽøVHÕE†=˘(÷ÏÈžÛ?·j ƒÜKŽÎ«î•ka LîU1E¾9hn{/‡é[`¿c+Q¥«ãÂ2þÍC†²ecТ›Œ‰põ)üÕ"†G±7>Ú§ —VP¶_×f+ù\-f•’kñ§.›cÓpŸÏ�ì4ÆåÏk…sðtF¢¹ðÔ¨lÿN³ž ³Ã±¡Ó§Ž@ü$wš¾ä†âR_–iAVùÆŽ•#\´'f'ØÀvØÚ–Jõ²INÝÚ�¸A0œß3ÒÏ I)™b?1S‘�§iR¡Hôoy¶?§a½˜<µDÛ'6OÉ;Ñ-¾M7Röyi“*9N/rÍ]¸P‹ô÷\,°�íW¶ÑGóTXul·ëq‡ÔZz1‚­xe‚^ÇcõŒ3ˆ’Ì™q»k|ìtÖ¿ 6°ý�dòI¹”ëQTÒ6;ñŒœ¥�ž7iœwŽ'pRh½Hp�¢ÿĈU 6°ý[-À:›Ê¯è¡ðõjÞ¤“#þ|p�’”)²ãMYo7¼ÐÔÛ†ií؀Ɗú©WÕgˆáÌ‘\tõ× !Ácgny;ŒxÊϸ`Ú>�–ˆÊÓØþ­¦X›ÆßÕf�^мeƒ˜,Z¢™ÓÈ–*1J¢;g<¦Ù¤ÁǸbi€ ¶_×xt^Xbs5ӤؔÏ_‹Ó3¾}Ò¨®“h*bJEú)‰iv¶;B«ƒØþœÖÛãaÅ.»õþõJßô¤™á(Kè[Òf-ÛÑâPtK^QÄ|žÎÔß±Ó]Õ&é8õjNËÞ ±A´öœ¶PRЫžëS¤¯±ÅÐ@°ÄAç´Ÿ¯©C߯IàŽ ¬ ’½ÚÚ¡NÝ| ¥W3Ï1Ï‘/àº* C@FÝÆ’ôµ¡�¡�ÇãC*C*ÉÒ€Mêv3À†‡`™^ €Ç»�‘ÿBjl!x7xד%Ußåá:³¿O-”•m„ #Iͬ} v¼vü#À\Å\Å‚90 ÊDƪê#Þ5Þ•÷DÚ³ï[Á\ÁÌ¿y²èÇä>ÌÝ™àÍBð-×nA¤xÚ©ÂU/,b!|!H##‡„ õW'S'#Þà»’þ3ðpðpPÝ×M×M3øaáߌaˆa SjÛl]k]#Ú«Pe¿µË€²ôD‰D ØsZKCüF”SÕaó Û]4��Â:§…ýmØ�Ó�',<~2=ƒWzÖÐörèé’V¥Ç4Mœ¶bŽÀÞøÆû¬ûÏi˱ ÷r¬ SׄabYÕ éu&úAç´°÷r˜þ–ÿä&V1{k �—Ê“¸ ½Q;™…�Ø`él™:a1Ç{Ë+äLdgh͆ªÊÀößkyzrµ/·t¯ªýÅ…Þ¢­0Î>ۮ᫠áh­ÝŠgè4xsʰXu÷B„ r¸� å�›‚•‚Uº5¸¹àXâGËßý5²v²ö¿Ò£ê£ê{é:W‡Ž¦nÆœýÇG ä™èƒÃÆlP.qqö�.ö›O$ NNÜà„Ê-S÷�ƨòfh&¾ ÈNÊNÂÇ ù"ùbq @ä‡ê†êšúšúÉ8l|Ý}ºûp²IÔ?Vc$ÚquPºÁ[WóHâ"gLu±ÀÚ¦�ÐþK’ˆÎ耨¨¹ž¹žzûÇ– öÍH?C%T%”°:P&PÆ=Vqm|^|æ’í¨­­Û^æ ûÉ¿„ŒewdwÀÎ&ê:MÅÌ9gè³tšÂow[ 4›xXŸËsÏ]BcgLG÷ìÝy4Ô{ÜÀqû^d;•Dv31öD²Y³EÖ„”½"kY“¬%"d-ûNÉž�l…DDÈþÜß™æ‰Iéœû<÷ªûóúï}Ì9óÇoΙÏgæ7_a½lÆ7ƒúg8VY<Iƒíû=m0ƒ/âën&P_¯“ÐPì�Üa7Á¿}7áÿõ·ÂÄg[lgT¡�W²#Þ{Éí¶›@~.{éw'þkí­�Ïd+Ýe— î®ÁOõMóõãäî?9:Õ“î†6e„¢ÊIh¡‹¶ÿ^ÓSÛçWm‘lµàaìÝÛîl›¬cSVKÇ�ŽœÁ{zU�Š� zñ†5ØöV³gߌ“.yIÁŠ�bØÇ 7#5�fü€Ã[¶0Wu0I\=°ûÚ»°í­V­³yµ÷V¿Ù�Åúuµ¶³,ÜEʼD7*˜n±´ŒœÃxÆ+£À<ì$ض?§=éœ5]äu·FÝtråÔŸVõ ç¿Cפë/ÅâRÄ›,Y®,Æ©ðÄæÜ%°ý÷Z~Mðª M¬¯|ïÍý/ÆîñuúÞ×CŸ­õàÆpIŸ'�ÇP‘í upGØöZ ð J�?r:ÝDíù˜¤9ëc.ögF^zq˜Ip·òi«l›ã*c(`ûõv…¦}Häh_ˆH­^Û<ñÍ(ôÙù5ä½@ÂãS,ãz"*Ù'¤gŠ(¦wÛ ¼¡a‹Å1¦>ézÏŒ›n)®+§t¢¤i4áÇlÖ(vUŒ×F dªçiA)a*í¸¼Ã^ºóùKÑbK¦½ÎTc²Dúñž_&wÛyYþõ˜XŸí¼õuF†p+ÝE„.¥ž!„ÈYˆ%Ä2™…ÐÉ3â�.JÈÙïIÛKÛ¿z+CÞ;[Ÿèk2e©ÆåðÀ­�‰÷Ûmï,º0áéq’ØŠÔâe1ßËefÙK],³†ÃrCRý¶¦Xôq  ö½P׿ÛL²ÃÞY`ç½s»¹[mˆëg’GÜdÁOwÛ;[»êcÛIS()#ãiÚªŸ�_í(“¬Ê#ä·l˜l˜\êyXÀ)ïˆ†ÐæÅçŠ@b�}N£õÝ»#¼Jårår>i@¶f¶æŠzBeš@µ@5:*:j×çá?¦Â§Âgy5Çõçx U#8�`Eˆ&œÆõø׃èM˜Ußxá%ˆr VjÙ×Ù×Ç+ó�æ†:üŠÍâÍâuü´#iGZ(‘&-%/%ßžÒ@ÍAÍ‘ßêDÊvâÌ€y:íRíÒÿ=Û ïëg*5ž]éûnxÉétdsî¶wF¾¶KØóc.¸­çávØÓÛò\cP´ÛŸÓ¾èÀì=6è±Hjc¼'3%J]¿éˆd|™D—i(]HåÎ�ÈQ¶~°�íßlªÚÅSmÙoQ”úGã¡ùÒ˽¤Äþ¸¨ƒ¬¡‘O83-Þp.>Øþ©Æ“ •Ð{*œª¶0Ò0Ò`^ΨFXääÇµÇµÏøhxþÇ­­627fî¾Twܘ þ ÜÚrœ»ÂЊ|c™vsê7 Ÿ'iΈN¼²e�Z|‰EªÈü+ô’õ’?a•`•àÝDæ¦ôîÓ»O=Á«£–§,OUµmÕ<°q7@O?Â) yçÑ •a{Kñbäj2íúë¦8™Ývȯ ‰"+ÏO´ù©«Þ:b+KÎkÐ(Í@þOÄ–DzD�P·înýk†ÛûÉQnû5rÝëˆÉ±(Û?Óf%ggÛyGk¯µ¬0i“śԅ³²>²Í.×’4¼õQãåM˜]¡ØÀö£¶†‹ÑiêôÁøàKSJ¥‹8Mw-ÃmöÒlJSšZV£1>è¢ÁÞœ•è&ªnÔˆ<ébŠÙÈÞ½š9ÃÖÜïy{·úJz·Ës²C†±¾U+B6ok›KÂ\ÂïŠI}A¶{þLäÀ÷ÂÝÃÝ|HüHül**¢åï;€b’F#–@¾<7ÜÓ¬J(BÕ§/_*‚>ÏȲµb¨"ä™]TG¨[mÓ†+Îu½+·1üó(æ‘}€FK% Ã@:~!ñB¢ … Á1Ž[a]aÍGÇ�ýÜåkçýFUópc~°Œ¾L8º2Õ÷·(K ß Û=WÅÄA•+=®u=wc‚+3çW\½ Ê`¡Ü®Ü. �,¡Í¹Ö¹vÉÐô>T ª%Æ·UÅ­í¦éRÒRÒ�g IÿÃ!ã÷à–âùf�ô”ßmBžùŸèÏÙ) =O0ˆ~’Om™¿ß&Å!Òt¤¯U¬lÅÚ{‡Ï}!Ûg ᯿CbÓ(¨<ÔWëã•u×0®Û{·ù¹ü[÷uYâ{ =k;ˆM}Yc8Åa]¼-ø‘>{É››Çny´£«ñ6ŠÙŸÛvl`û» K™µ°ÅÈò¼n:k]ÊAåuŽµã”¾A°ÕAú÷&½¯$VÜ¥ôõúÀ¶³� q* :x²”ö¡@óðX×{¬J¢ì@êŽdžÈÛ:³Ž¼.Tˆ«¦GØöVÛ,Ž M¤œ ï|Em»(,WÆ¥ûFM�)eß`¥´|tÙáôT¢ß¹q+°í­ÖÛäp拚¿–]õdRš- 9¥WȘüU¼fÍ¢S�/Ñh ó©òB¨`Ûßm¡½×lŸ§hñ’J$^ÐÍe6k ñ! {sP„žóyÑãì ËëQ‹CRúù`Û^kõDnfGl £>PˆS¸È”¹vñÜK÷üïÔ4d{¾(VNV1�úµ–H¦� \Fžã¡)‚:þ¦-žÔw',¡aÏv›ã‘?ËŸŸ©¯áŽ£šÙmK(4¬bž‹úN±ÕÓa•4Ñ´•S,"g‡9þøÎßß¾Ú1>y€¢ŽJƘuòÑÃ’ÝvT—þzŒ›ávi�öÈŽºmåŠpêa!Âý E·E7”ËïÕ&ߨöAÇæ__Ö·dÆ{ÆÛe?ÀÓ·kÀý5`¸9C5žÐÒ]÷®>‰áxF!FaBnjû» J/„˜*3„þ9ƒ"8œKØA°úµV+Vës#ã:㺸mA#צÂ…u#u#µ hé?FlGlwU1¶åçJNDš%Ü¸àŠ†™¬ÀÑ3žŠAvú!»Í7c…q˜›ò€EsC9Eïí&e„4±ñ ž µØ€6)8ñ¢ç%¹Œ]·ôµ¿^þJ©G´Â±óRús¿W(£xê\!ìƒ)a�í¿×’Gú}Ò£ò1�ÉLÞ›q ÷A�Ü_«ôòLälkÙk±÷`>ö,°ý{Í®Â&Ê1“Ÿë«ŽÓ¤lÚKý`ì<1>Z’}a™gÔVlOL+§ð/ €moµùÍ÷#Å\’ÒŸãC؆²ìdH¸¬g«!fœ”ZôgÃÄ1Ÿ:rl{¿a³™³’óžŠÉ/WT“é´~3Ä øwîùÊ&#Q`¤0œ‘˜ƒ�N°åšº�"ÏTæ3â¸[ˆkï¸ï¿2FW±ÛL…üýç'“®.Å­T?:½Ä_Ô€ZJ¥™ÁÅÌR­l¹WÅô�‡íû™Šoç™Jí‘OH£«¦ô~½òÒêMòüÝf*›¿slm»†³|Ȩ—¶‹Gp·ËDÐ:“e•e%å¼ßäEKe¦šQÃ÷f|f|ÒMS}R}HÛ¹5¯Eno1Ý1§;hƒ4Äp(a"2þ˙̙Ìm…N\¥£«2¸íÏÝáX? ßæÅr††W³,¦-¦¯IQX"(-ªn¨nÀœaÎYådÉ?ÖEÖE–)"ù9k#× ø„Ô‡no›¥ÂW[›å±ÊÐÌ…=óÍ2}hာ|-a-áаE©—5Á¯˜.ž.v9\‘Y‘Ù›ŽÌNƒÐƒÐc¼Oô¹P¬P¬éÝ­t¶co®Z°Z°"®§`2øõä®··ëh§ˆ$ÝÓDaj»ÍTÈ×öNçè€íÏiQæLK“Á'SD #+¡Œo{Ú—M°Ã['u´„µÉÝ;¤rdÞ:•‚í÷l°hoÍ�2;êB§#ag*0=#»/õIN+HKÒqŠH”ï»8c;šØ¶?§u½²óÄu¥Šr碷‡q%yß9�]•Ü}Ó‹¼¦$?zè¾XŽM+l²òØÀ¶×Z Ra¤J@ÖÀI+¾ÚéÇÉf°ê¨³vÄ#_¬šQV};Õ÷»,¢OÓ⃠l?jê£mYèZ7ˆŠ ÏDº³ë7Æ×°éK½¸ÉZÄժĚÞplÛïÙh±×“ên/y®ÐEÈT’{×ú0Šô®EzÓ õ8Æœ’s¿Wñz9¡l`û»íÀ„9.ý‰œÿaïΣ¡ìÿŽ�-ÆÎX”% !„ìKÙŠHÙi¬Y#{¶¬)K²”}!†$k’’�²oeKY“TÂÓõÌ=¿›©n�ó<¿nÕåõßûœëœë�qÎ\Ÿï5ßïòlô¾ë7' §Ó’¦®Œ6²§Èá¿#•4_C¶íÕòÄ™@O'š×KòñPËY�Çj Ç s§¨›_Ÿ•ˆìöºÌ�‡íš¹ 7Ûöjæ¦ e‹x ¥K'm)ñO÷¥E¦¶$8¹…¬­¾àb¡Ã¹z1Ö¶ŸÓ*)i(Üæ‰cÂàf”6´vkäÃÛé\ÜíÔI:?Ó~,\Ü}Ä$?þ=ÅÍ}˜k Ž=½�\®ð+WÐJÅðÛmµÖ€¹·Êq¯±«=íÎ÷zLèל‡ÎÈ ,0cw (ÌR˜Z �þÆû["ß^k 6Í.ù�Í¢V}ö�q2±˜êVk ö_®y�¹ÙuØ5[L�Î~‹æ¢¶�vØb„œo@5|_•`åŽÕË_{Bö„,àcÛbÛb»)À¾4­ðè0`·}6\ž�tZŠR±'Íš¾/°/PB“õQª´­êhÝ94§e¢§(dƺ’ÄYZ'I'É�§€lX6læ¤y=Ú3§^§^ee¸•t÷÷µßn¿]óÏåê*›hÆ(cÏ• ¼>¢8Ê�’-‘Yùû¨¬Þ=¶ P&€1Ç^޽ø"M³…°ÐÁáÎá¾<Ñk‚…ÑbŠïh¡m¡�×}¨½¬½üÒz#¢âÍÖhç*çªÿì¿ù×ïú^¤—ùW±»rܺ´ïðÞ­Ö0?Û?c¯%°� h�Áž­XÖ¼jj;‡ôh}«G×¥riïuGÞfƒÈF!ë˜M{ïì LÛöoï Y(gr)XWÜCoÖŠQgs 2'‹gмÕiF2Ò-áúšºcµ´€ lÿ×f:,—|™¢8â0k,/е�‚Ã�Fð–öâ ÄSοѷױ&ÏŒ2— l`ûš–4¥e³ç‹C½^}äÆÇŽ8rÓ‰×,à“r]]§VJ­¢È~7¥Oíì 6°m·Fò„^s‚òÅÜ̘”]´é.Ÿx–¨�3øÞ�Ý%-CvÊ QÃa­`Û¯Ðøªtä2dëð ôË^�W?¹Y¢6äAoäÍÓ$µ|×$¬~š ‘‹¡5õÿ»…HøÔXÂU֙ȑ§™±Î&»é©`έtùn˜w´R‘sjh{^Þjn…¹§pë‘ûáðàs·iPwu?7›úø=Šk‡u|OZÑãY¾Ís«&zÔ½ Mžô,iļ³˜³¾ø�+îéVsÌ{ÙN{�ýŠ­B‡í±0‰Õj‚=þгE›iúubìãùXÇË8b“¼™¬Èú5£!Ù¥e`û÷Út­„_úyÍéÓ™õ°)œ&y{RÑCÅ“]VR%í¿Á \‘üsÏÀösšÓtŒ+¹3bœ9%”6§xJ «BÿÔB²D?‰ÍªÂš�kŽž�„ â.°�m»µíºEkäãåác×!W èÊ ,évq%­rQ�ì‚Ðó�³´hÃÓÃÚÊÁöû4’òIö…=ýGb±v‰ÏJú§tšÆ©ñ1T¶è0�÷á=ò€DŸÏ� (&ØþÍ6;ËHòø m#Űn»fQ¤§£ø‰È†’Þq¹�3v¢ïº|Ì Á¶_¡íœ<º³FÙ�Œ€®ÓõØmd“öéwA†,>kL©BpãòTwiå}«Â×Hîƒ l?«…;1^-‹�ÕšcÏØ{ûEx˜$6ã ¼(YƆ?ݶ©ÜÈì3VT{7ØÀ4~¢ÄèÕ>��aîeõ„:U¿‡evsëG^vtòµ/±Kþ”b|‰ØÀö³Ú©úl©îN‹ÜÒÖgœ’ërFÈæƒ·GwšÎX�µLÞ¿ägA ¶¯‰™”;� ·²d9×Ìj$›YÙî=W� ©'¦yuó•¶JþN›¢¢ìvw°ý>­¯7ÐQ@måMÃRÿÔ¤�å(Û�èºVc—ÑûÑ„âÚr8s0±®,‚_±Ñ²GÐF „³?™ƒ»Y47)Ú´a¾ƒ�ä`ÖÖÙE�Ôdeáf/Öýî¹èw°Ï¹Æ;t³ Íî L|2=áBK‰ÌVE{¶ÿMÇ›až‹î�½¸ò^%û«¾FŠMŠ�¥‰½{÷kn²dhàøÀ²”-»ó ùÀ‡'(¾—zÑ„o»ò»òÓ¸]…àz†ö£Ù¬«j¢&â¡(×Áàn7ZÉM�&2 åªå*ì4FŒ6É£¯ŸfžfS4ø>†a†ád|üâædˆÄ¥œ EQE\‰B¹XTŧSþèHÜÅ ðåKžgžvÉCù¡²B½Éõ6ºûêY�nP°ýÞÍ?ò�]RÔ}éX‡�¿JFöCú£%JaþÕŽ)�hM­ÅôR&6e"Àöç5-*idFVeR£J=Îå+ww½ç­*q'›äb¹ã¨gyûpÙ�ç�j;À¶íÖ¦©Ó]š‚†v6Ÿƒ˜ä™©þÖ¾�WÜp£mDÍŽÖb…‹ß>xƒÆ×ì:ælÂÖD^s°—øTšp¼ÙŒÏ!èV³ ‡/×@M6Ã�(¾†©ˆf£‰hƒÕ-%h’’Æ_þÊH'ˆ•Ù¯~l€]õûšB¼BüÙ|yy™jm@É¢« ÉP/õRi  ­9y ÅÐ^ò%Ú”g×b×bÜ€7‚Z%€Fï#�žR‚òÙVi®×F4 @ZIZ9FÐ`Õ`müô@-ì$óæ3¼�¼�;«ÒF¿�ÈšÈZÒu÷Ÿ›dä4„DQ>¸ò¹ÃCa€ÉÔ.¿/S'úÛ=·üˆ“cÞ‰Ô—©/½.œ™· ��ÿˆžO=Ÿ^pÔ'Ô'¸E`2?ÈnÎn#EéDFEFea»ñÈf—릢£1g�»lì…^ï+4i¹aÛãtx«ÙDDc±ØÅEƒµ1SqCý%|æ¡aƒ“ÄÜ+l~.TáŽ~vxáÖDºëé ^Od´TûfB¿1›Ø<›¸ò×oÕ£¤çÛíçÔ…B/ c§ü•¶šM`ÞËvÚwâOkcÆðÀ×í»Ü_ñv÷úi®[¬JTJÈá˜îÍ»ˆ=m Qç!³ÔÅÛŸ×ô5H‚ë,oY-ù"Z’:ÝE_?áT×ȃÎܘ#,t¡çä²ö¶ÛöjŽû×o­xJ#¸#iš‰„INn$‘È X– UÎ’Ö íñ/Ûöju:ëN}—Ì)Þ7¬jtœb㽂ŸÜÙ»†å2[ÛK=Ü"~•=/\EzÁöû´œ®y³÷ü>6Xë®<3êÁ1×v·è^‘cs¿ÏK¶ú„�JŽ�ž-Øþ¼Vú(|E ž¤Üw‰´~"ú`WP‚>Îüc_^\÷—y‹ÄʸjŠý‘Î>Ø`ÛvkWƒ"ÄrS÷Ë3Ѩ��•£aÏ<°¿Í�™ŸQZô8,¼çÄ1+¤Ý!µ Ø~¼]€wŽHpôGH<ÖïX¤¼tg~ñ3æœ)“–+(�9ná”EBpúVs&G`ÅøÍ}–†0í€o$S„v÷éÚ†)�)�Ýí8ÊŽ�†%’b³¹_{Vþ¬|×8ý8ýg>€d”ë*;°äÑOšã�°¿a‚"xŒL ºC)R)’åuîøZU šÔ” Íìàj7JŸ8"b`�Ç 0¬0ü¦ U+Uû©î˜<Ú#²ëkx:<]Òœ:çû”Õ•Õé�îÐÿ³ô1ßJGÀ™=(¼R0M)óxÙ$E¸Ø¬ÿߤ—“˜v²ýúß÷¿Wß5–H(óþ#úÛúÛzR%É%ÉiŠ1ÑR? y¢øì…}è»Ðwaý-0n&ÒÀ‰JJÀœ3¥gʳMêK¨!�»O;ݼ՜éêœ3‰ÁpÄ#ÚœXTt¦­üI5�+¼CÄD¯U«ÜC5UÊÒÀש®7“‹sùø�9“Ðæ9S< u/^§uÖ*ÜýßÒK°%……zm5g¼—ít>õÏh#Kæ‚Æ)†8B"Wòï(=Ò3/¨´M馇ªeIuÙ½ôy|ñAl¿f aÛ«“ÐNÈÜ«!L—e¨óY©¯ñúË"„‚GÊ#Þ /=>å@A¦2¶?¯IVv³ŽöF¯r‹^cÓ5j<Êà'#Â0忎u¼‚û˜Ûrßs°� h-=·ŽZTÓ;,ëEщõùÊ<Þ{þAÅÆ8à VO«$Åok l`ûo4Y5¢·IŸŽšQÑÏ>Ägº4¯�Õ‡k.òYæp×;æØãs$$”áÃ`û½Û`/ñ-ò·Ýdf1P-ØzÎXú3ëÄ•,¦8áCìåì7OÀZLaÔÊE`Û¯Úf_ĹKºØ�Ù+ JÓ¦“×T‰ÔA꺤 “£T:–?óG½Îë÷‚³ã‚ lÿ�Æ�ä]ú0?ÞÂþ”SÜþ~—uÚø{¤Ÿ3¦áŒšg2Ú¯œæÛeZu”á�ØÀ4áùs(+îªèxjRîr¾²sNhs¸¿mÄŒ­Êí }<—¼ÕœPré•Û ß#”VT–OË>ý¸GÑ–¸›mÞèE¾ÒˆÜ€½ÙŽçŒk)5;�vŠô×kH_o…}cN(üí³xLÚÆ²«Úæ5�Cð»Ü·š�_ørÍœÅf™±)®˜&¯oÔuín  K¯"¾"ž€çÉ©ñ5‘™2‰ë¾&úÅø�ìþìþOµµ{ÂÀ)À(G™N€Þ'£åÞ¤·îpâpàpîf};üÍ&Uoí¬³&;Êgj‹»¹õ¯ˆflflÚ€ÎÎÆZAn´ûbûâÝïv¿Óp{ö}A„ ª�JÍ?K]š½±r àYŒbV°v‘Ž[t�Â/I‹îHìßÈ;mš i€ÔéA‡A¯0¦Ð™PÙ?"Ÿ<Ÿ_±«+ØÓ8µÐ Ð ¸Heæ‡ýös…n4å²™l9@yÊõ”ëÎâ!ükþÈO¦;�ÄÛ_!O&UK°ý>탎¨#k¦a¯eVs´DXü´$Cú n¦Ë2’'¦víÚ#Aΰ�íßlêÚΆåÓÈ1ȉ«£©B¥G?öQQ^�Æb ²GÞÈá)°'æy_6°ý¬Æ‡’Ñ/Ï=ñö!K:EéÅŠñò¢l£ßÛt;ì�Èçl>µ9.`Û¯Ú†)xnŸ$_ ïo_bÔ�Õ Å ›œûçòu÷ž­7)gæµ8"QÛãÏ�œ@·�þë¹-ÔÐOœ—q²s¸ø6µ®€¼Ë÷¾ÛªYØüï9§=c~c�Õû)Ô‚“2ak­Ù'=”0ÏŠX¹CHë§ü~ùn±k4ôlIÜäZæÕ§ªH(/ǃtM¶ ßãYƒ‚0[ëj^¦×q ˜gZb¾Ï�ù;"ÌïݘυˆjæáY!m¼F/Þì Ö‰ç[=:û® n†—¨ù ÓÇFµ¸hûñôÑ‚çX Y ܽœ(‚¼åi— ¾¶žºžªŸDmFmV5 X3¶ÔNˆªF�óhеCYãZ�EócÕº£uÇ©šðØ»ïh,ÿÿ�ãVÙë¶g2Ë–q[á“”$#+"Üvf²GöɈ’2²E%"3ÙÙ)£Ììðû\ß»û÷ánèœÏ÷”ú^=þ{žs�s�Îåœûýzß×ûn1/…@°'ýÔ†pÕzÞ .ìõô«6™Za€2•2ÕÚ ¿»¿›¿­¡,ȘژÚ5Ñ5qØóã�oËÓÉÓY^çù>¼Yü9€T*\ËtC×ÜþK,[®*Ô±þÊÿH]¤:áb co¡m¡mš¾ÀÊ´_fêG°=g{>G؃߃��Œ¹Ñ€Ù€™çHwYoo»Çvõ;ÍVÙââ‘g/ärm‚N[Þ\Ï ÝxÕœ$¿ÛÌùïCºÜÂç™Zÿ©÷—ý´%×–�? Åùk\˜#6çÊ“0@Ý>óà…ϯQÇF8{qÅQšÒòeˆIw[£"ß ])UOs6ÿ-¦tïú9XçtùË‹`ÛïÐ6„Þ Å|€jM„W$+s›� bô,9©;ªÔ©Á–ˆ¸H*œVXÒ¶½ß¨™¨Î'$í«J?V£ËÍà'yôc)v ý+†`|r”àÀ&îèŽ[EfÀösÚ¬Ììl;ßh�{ë“Y²Ñóò6¶›ÂÇš2úAÓºî”WEmÓ À¶oµOØ�0§)CŠ¥’%Vó óë½ôlJSz¿ªJcHá¢{'–³%/ÍMBÍ  y ô×ÒÜ–‡ƒåXîu"«`ë�ÝÖ@Ž_³œ½SèIC͸�JáfJn­Bií¶Àé£ÕI€ŽœŽ–Mf„U�K—Éãd¿íÅÑGaCYg¿/cÕLÔÞ­÷î.{!â0WA“¡Vaz•ÜL©Bý72Š3ë2ëÆ“/H¯dy�ÿÚ8Ú¸²V¾¾>d¾~|C|C¹+K””X”·Ë~¼ƒ?cŠcŠƒ¼’ a‰xw›ûN@žlàà7ÏÜE¬��×ü÷ôæmÏÌEOÆD—å—F[xm�éx6ò§U²rÍÊï+û¾‚;×@ÐÏç�X7‰œ™ ë«ó÷Í»¡ŸÔí·Ûù^~Õ{]æ|Å ^R`RÛ�ÎtÜ�zž¢ÇY¡b}•+È»]•¯IÒþ<¾º¨%ØÀöoÛþ3le­æurØžg¾Ç­ö8e lgQèÏ ¶Cž UO¿ ×4[ºIŸ¯ö<‰p·¹Ð•¿¯qYØ)�jrÙ<÷v¹ý:‚ÚÇäõäõ2b—&‹E&#<�3|I©@©àÚT"o"ï#c€ƒô«@ð,À|Dëáj%`Mb:Îû8mBŒ,ù:ùzêšl�ýåªÙÖ T ±Q 8:Ô[ç�Ýšïô„ö„¦0ÍÍZËÚ†8µ((¤¤4³¤Û¿­ämÉÛCn&-ß÷.”-]‡ð´î’ÜÂ&\fù£­W%ƒd–ÿ`h<Æ2XgÎbÎj¼LJÓo³áú#ï�K�ÎY ¥’)þ”yvª´œv·¹ò½ü·ß§ðâì]ËÖ 8:|%™ö¶‡Ú¡²|47V!ôÞnRFÁf>õñHs°� h“"ãµ= äò¶Ý¹<1PÊbÕŒÁ,}‘™Â3¡X Éw~ HÐ'ª´lÿ{-cäµN\é>C2#Šè§Ô…Aüº³a *7gÛ*_iK¶^ð ççÌÛ¯k¶UÖqWî pϱi;M*d7è…cvàHòÓ’àEmÞWQ]³9öáL¦Àr?ØöV[¨m¹}SÒ%=çÉÁPŽ¡<[yîT«ÙA³#”šôêQRûX޳^ÇÛÞo˜&\'ýÞß*}|ZU¾Ój`ˆAäß¼óUH}K¢ÈÑŸ‘žç(†y�"6MÌMâie ®»î…ïð–®j·ÏÀÈßN�M¿¼œ´V“¢¿,Pþõ•F.7³@DÍÁè§LS¼œh_~æÿú;±mÃ7Ø8é�·œÑKØ+yw[ß9ý}MÓ³�¦í›Ø�•ånWË� rÖ†`gÔÕ•'œõ$[#æ@I„Õ—L M ²š1›1=§åŒd¬…%ÀþÔ HŸ@X-IîÉÒ �­Ý¤Ý$T[£å*±‚GP+ Bp69œ€,dàÝ&‰ùh’hæŒ*t*tŒQt³Ú-FŒÐÑY€ÖL|[?k?«¼B®É÷Hêñq—Üàï5<üü/¬ª�"7œÂÃàŒ $™«´€º¨äÉäIIf-Ï¥•…ÁäÈä(ÐZø²ð¥ 2Tá§GŸíÌ]§kŠnŠîîÜnæÎN‹É€ìæQæQˆç)œ þ<…œïííbï—¡Ë'"œUÝmM…ülíwtÀöç´\Hœ)Óòd¸lV¿¸ÐÈÚ´㛞öU#̘¶ImM¨¹W‡\‘ü§G`û=›h¼ŸÆf¥-u™k”JÕ>Ÿ›Ý—údÆž!ÊN×vJîO;Õg9c3šÖ ¶?§u5Úú`»RÅyqÓÛ‹r§û]?�ù4£[vŸ/ù³ŠÒø¡Û’EÖm¢“ÕÆ`Û^k×”Ên*‡æõËZð×}¸‹›a"Z§nK<²bÑ‚²Щ†ï"¼„þ�öØÀö­¦6ú2]sÓÓ‘°\ÿbèM/N�á¦äg‡Äô¤Ãj¯²•s iVïÿ°y¥ l¿g£ÅÜH¼Dè[¶F«ZMîWçÏ(Þûé¦ÍPÏ•[ÇOzEW½ZM­Øþm#7!Ǧg•.ZžŽf½ñZ<î-¶úBÊ�‰ëüÑúVcD÷øb$ïÌVá€moµîx#l�“Z Þ#dr–c±ç„c ³&Èš&/ŠGvyQç 9Ý]¦��mo5cê2á…}òz¦¥‹*—ˆ15zS"“›o_vÞÜæb¢D/�Ãv3|Ó ¶ŸÓ“9ÏâÆ`…ÑÀˆ­ ®Ö›„ƒ{éwq÷RKHÀkÿYÍ_à ‹–5ʽµDÇŠ¼×`oÚÝóìJß© ˆd ß õn{ Èg«(yÜ íns|ÐmDµé8 )'0LjöRPàÔJºülÃcìè¯|ßFäë{ ±ËœÞ:ÝýùÏJbïï¶×àü÷5m|;Õ]*·DÆÖ±Ý„yUç|„S¼<‹<‹G1¤Æ¦IŸ¹\•2þººC¯6††z ÎÍ÷>``àiÚI7Hà¯1ó*¸ô´ìz„juúsôçBªBÐQâÞ`WÇ!àªÎÁ½6 �€H“J²�³� —ã¡ã¡wʶ0¸¶¤Ý¥ÝëUëU‰Yl!ßæžãž3¶iŸø}©…Ïù³”’páng$àè0 ]} Ý®Œ�ÿC™ÃC� £=¢0¢jc©|ÿ4qÐ�x4ÿhÞ~38&8†- Ù'z__‡Ê“#C"C"-�ÛÉØ)ë1€×.�$�äÿÏßüü^ßpj™7VQ%›—_ÆUÖc,»í5 ?Û?ã¬%°� hí�î-¨–<ÊÊç!öÞ�G×%³ º"³¡È\ˆ*¬a4îÉÛOœ¶½ß–äó™ˆ?d\w¹ö"î‰Y&— c"ô®È¼vS!=å"†·±s js3ØÀöo›ñ h|bQQıƒé$9Që‰Ø}È3´úQÜå|_x÷ØWåÀˆ³HÁ¶ß¡�“"6kr>ÚãÑKhpBÖþ0¥>´jŸëúèÙÉäJ¢Ì�ºdŽN`Û^kxÏ©ÔÞËRÍ|x#imLëu‹)*XÓait ¿¬°]z°€Œ†¤l`ûo¥¶\šL;ûºeãc�†âŠ•\©ô=��¨á›}l>«�•ÀEÝ’üßnÁâ^Uf4Š[ „…Œ¨~�Ï+"Ï­txoš¾lö'%äPÕ*rÚmn…|¦p‹ly8M y†a ¶žËYg;«Ú[s牮¿<¦í}F ß‚¼è+ß‘åýúÜ —.Ã%þîL‡¿Kï§Œ{ú»Í­\€¹ÛÔN¥›XÈaÛ X e†#L_E½ŠÊ^>ËÅpLÁxþéí—*D+DÓü¦^O½®(hbj›|±sÉã¦eש§UáV ¸°¯ÍÙÎÙn @>¹%u"è=¼žˆÀWÈÔw„Ð^&ÂuqPVöú%`5p50cén;‚¯®›®ÛøÉñ“ *+,ß&«/«¿¡Ð‰þ}nŒWSÔÑÝãp µÎË—ábscVœ’î…ãmkGÇP8ßy¾³ñ€N"y_ùì�0K5Kk•X”X 6@–R­�šѨDdDdžÜÛ®»a§gÒ"‰ÕUÄóÔHž �žw/ªÆ|4�±t{Êß°ÛÜ ùÙÞKgËýŽ­BûP�0žÅÆm1*ÌuGÓVãÔ¸hJ¹¨Jeì±w<,úÔ¢Q2KËÀöëÚû'â>©¶jï5îÖ’L 7·Ág=Zô®Ó‚H²¸ ŧ?À ƒI$×üØ~N»ü>ƉÐñ�ácÒ5Ƚ¢ IÔ ]õ¹Dñ><«jÒüªÕM{w”Û¸�`Û^këZ5 –…u˃'Lo „Þ§|xߌ’–ëÎÙ- ïS³MjXëC°ý9 ïá;¶9æ>Ù˜~TZè´„oR»q¼2/õ£fmjÂÞ}Ï\Q¢m³füŠðÀ¶_ÙFc§éñêø/½ ÔiSë=én=YŸ„×3Æ.GñÁZÔOïc§—ɰ�íwhïþ¢¨:åC€EÙît"»°QKãcÀ&¯M†d!ƒ‡É.R§X7„¯ã•ƒ l?«…_. -‹�97ÃMcÉG‰MÓ¤)H”¶âK½ÔøPö 5ª­ l`ß�„è�^íàAöÃËägoלö©>&MwX72Èe8@eÒ÷Jî„­b}°�íg5õÚLÉ®vÓ¬Ò–uGôârú…Mü £Æ,Þè7ëñ'r.ÚÅ›â‚í×51£‡vøÂ-LéŽUÓª‰0‹K,æh(µ¸äãqãZйV~hm.F`ûsZo�¿½€òúTýbßÄ;k³ÑCÜÑ/)[ دŒ–GãØAµäÐgHÄ:Ó±~Ç9¤d‰zÎö|ÅÀÙ´©QÁªyŸÖÎŒ¤ “­&fºñSSgìÍÝöi‘¶Ÿ£ó ­ĆÕaâGÒ…Ódx—[b:ÇSyž¬\p �Ôî45ÕafëÁ§•`ûßkŰ³µ�Ñ×�•t<…qZ ÕÆÞ¿Ò QSp¿lØFlæ1À§Yr¢›¾l`ûZ˨I ^ «>µÃÄ‘´9}[«ª"=V‰ú ÇÊòÏ¿Ûj¥,ÿ?öî<ªÿàøX"{Ö"E–b †ì²$ûž%kÄØIˆ$ûZö(Jú�¥ Y*kˆ¬ÙwÉE‰²å×ýL÷SÒ9ßï÷óñùtïã�9çÉ=îœsÏ1ï×¹s¯zZ�;ÔþÝÍ?zÒ!)V×PâE‹‘¿RjF�lžB¸¿Ñ“OÇ�O|Žë"¿^Ë j¿_;N)‘›€õ(©Né)>NHXþîyxežÉØAælg«;G ¹ÛªÊ[ µ­Ö¦¨RÜêƒO÷Ó<·†™gY.– þè¾�aüvB²åX"wx¯ìò±ˆÁ¼ÎVgH¼¯ÄˆÕ®| ÏuL }³ëlÏßéuYoqgj)¦‡µv•í€ïY-Ô²Ô²è9>vu.¦ìAÀ÷¸¸’ΘΘ²¶‘ cîÒ€Â{ãuB�€ýÚ´chæ�mu ÈýqýqC|±s6MgAÇ_ǃÕd­ÐœU ë;›t†öí�öX�[�w—ª€ê62l˜âß{?{´T�ÁωI �D…P_Mª¿tMý†×Û~rŠÔk¶úÚrz­2j’Í›Íûå™ ö…ÌâŠ_!¡)¡É «�¯�Ÿ„‰™Wù¥òK�$Ük6¤6¤·]ÖR²Y/ô`û“=}{ú0gÕívrŽÈ×rÌ®ØwºÙl6Y÷@Ø3@Þèóˆù)cùí{ûŒ4ˆ-±ú¹QF8÷ú9l‹°Ýqb5…Þ«Fò¸r÷›K?˜Mð­ŸM„}ý®z¬ÄLS�ã´:ò񪆿 …Íf˜Ç²•î;ñ»µS†À×Íø{N{ŒÃ;ºü´VQ+×®e²OueybO™ÂÔ¹H¬Nà@í÷k†šÄÁ•Vé6s>f I­îÎB¯k8ÔD4³Þ\™&Ìq9LÇÁ�´½`µ­Õœ9W¯Ê–<ÛÅ�—4ÅDÌd8-3xÛìú¡ùÂÛêiZ—:Ï¿zµ­Õ*õW]ºCz-ÉækW4[´YáEªR× ¥Ì!¬Mø÷rJû†Îî‚Ú¿§e¶ÏXÌ#¼í°VÏžã2z£Çµ§áD˜ «G"]ꉪ8—R¦ƒ�=Ô~¿VP±¤Æ�¤Øí»óéèeÞö k†83Õ>p\�á¬Y"E\5ùžhWol¨Am«µ‹A‘·o8–e®Y>*%³‹í7g“û^£„� ED§ê1›\µQÔ~½�ahe6l™%÷½Š33»Œ9gzš­zöüô§•�D¸Îda›Í™<¿ì#?¹žö;L=Zk9E€NÒù ƒJQISIk•Ý(,PÙñƒÃžŒï9L8L œ‰RˆR0D*ëônÒ cãã'gˆWÚ¥h>øpPwÝJöJöv¹k„.¢Z—AünÝz ³eZ©»³>by‰°»rweZ  Ð¼Ð¼[Á¤TqÝì…Ù !\!\¹#o„7¦š£šÇ,ñìçÔ ¶¿/�Q¢™/4¼Þ]„v4,W®2‘榉Ç7^(µ=ò˪ûª»õË2\Î{»~…F’F’õDbEbÅ‹bLâJ}£}£Œ�צ/8^pTnYKtp½ó=€:’ô®ô.Ì9SÊ­£¬c†¢j¹Gd§‹¨§žo6gºØÏÀ‘„oF/}î²%‘�Л¦âš'´giZ›ómk<^|Nù¦ìs-OìÉS ™·…Ì™�ëçL‰ècñÒÑÿ\âáÿžN”5)<¢Ïk³9æ±l¥çSÿmpÎ’ß4Ùyv7[¡ÊÀòÞ#ûä:µ4ñv‡aï÷Ážéø‘¹Pûg¶PVýkÍ„{»4iÓŒõ—ºëb†ï›É�K®‚Ÿ¨¶Ž=½#’D©j¿_{Ô¼ÿeW¤éRÎ!¡(Ö&u²ô~’‡é'üç"°TJ¨°�¹ìÆc·„Ô€ÖÐy§Võ„îôGƒXº~á® Éj–0†OJv¦©FñÇó’ý^bÍmƒÔþMŠYmÇû¤ÅZY Jº·Û™|gôÒºq-/Ké<øao¼Ê4q 1yÄÔþÝ­¯‹(�ô}‰EÁqbŠÕÌ‘”¶×—Ò˜؊ٮªR4œ¢à£R¼5¨ýSÛÛ¡17‡Gy~ êÒÒLJ+aO{Û%oÄ*µ|\FľÎêñb`Ã…Ôþ�>éBAÅÝD”£¶Kg'Âm•:ñáÎåÔ)F-ÝÔæ0žÝ§ËÒ@A j@œ±þD^’¯FhÊÝò̼2ÂÍéÑ}̹sÉѨ™3/è?âá<·³¹óù/ût…¯×LWš�‰I}-ÖLPô"?(’bÑ."‹‚€�±lN¯¥uG¿··loój�R�Ò«€ïýžW|À;¶ŠøÀ!À[ÉÇÊhúŽó± uY??Â^Ùïùã x‹�¾ ÀU=´G­ÕýVÚbÚbw¸_6n*¶E�Ôö{ûïí·½b{…5Ûbc$H$LíÞÏ…Á‹}Îr¶M£ÙÇÝ]Ò»ˆV:wÉËþš²nÍ7¨•©®Q€PpÉhɨàËäÒÒ¿"�4�ôbG,G¬á1Lâ‰×™®3á¤?Þç)æ)6­²Vb½;W9,¢¬¢¬˜sg»#=Mƒ¬•‡|ª§oo6w›w¿â#MnCiõ¬˜÷ÙÂ>y{¢Ö“¡» ƒ2½ŽxmŒŸ“KiLh÷<Õ2’ˆi¤øÁÜYpýܹ—ðë ¼ÊO²#‹ø‚¿\D¸~[.×fsgÌc)á`áÛ6ç!¼’OÐæÌèÈsžIÙ jÿžöI_Èyÿ-ã.«´–½—EçÄèkWÝpÃÍNSœ`ÌV‹Šªâgçè…ÔþΦ®çj\<Õ’;S½Øûò&²@v¡›’<Œ kÀ˜-úJ&×=«WD\ó9PƒÚ_Õxr‘’†9"·UßW0§�ô’-‰›™ {JÕù½OqÀÆ Ìmcõ.ÇÏtƒÔþ©m€ŒëŽé;ºžæ9F}Šrd¢ ¹õ_ñ\¾Ž®“O�‹÷ÂQÒ¢Oâ;)©b£àgÛ©¯Ÿ³/û‰ÀÇZÜ¡:ÁwÔm£Ï¶J&(»?Ÿñu½Gøƒ{Œ(%Sñ�I†>ט¡qNAóÞþKÙ„Ô~†Áóóœ½Lp2/aìó­‹Ï”s àìe)Z¬µš>*i}çø)ìmŸÀ™^'Ôb>ÓózÌïa~îß«å×÷:ªÂO'“šÌðy;/`ÎÌ~£÷*ådnâlï„~57c2=Ëä`â„8ikfƒ²3gr1w:�²·c‚s!¹x¹`Ðö;n\®�å"—‹½ B€“!Èœ&ÿ½¿ÿ²!ùøþ|ý²­{åáãççá�Ãx$ÎÃÏÇ#ƒóð"ù‘0&øï6ÞΜv6qbb‚9ÙÛ;ÿì÷6ûù?tÜéÒ§Kµ=í‡ 1¹‰ïP‰ÝlþåõeÅËëåÙ_Ç´h¾…è�3«¨/u>y>™~žºÓìciþ'�ï�Å�Åg4VVá$Âê‘ 'W€/±²É‹a€©Ôà´zs¥lЩ„¸„ønöÙÒfjm�ú-ò,PI ÍÔ!}ˆ=ÏŠ °ä¶ä–‰ © © Ôæ­@Q²ž¢ž¢xAxA9…íRkòhòø¬;nøs)<Á(¥?·[�ОŒ9y\œCÓX¦|Â|ë1‘&í7H[#tÙŒŒº­_…àŒHlÿž­ž­Bá¤á¤¯·a’i’|+ù¶â)‰iý�ú;3…k}ˆY�Y ¬W«�aοêdî:†(Û^YJß½ò¢!Yn³ùæÿ^\É"¿*?ì>Å)—}ñÅ�îËÈ«�:—øÞ‘[�Ì3ÅZ;ÿâAÏ¿à?~FÔürÛjm‚�°H“$ŸŽ¤ÍÎí _öÓ_/�Vü"¦Z¦µü†@.Õú< öiéüXy MÔcbÑ]!‚ß›™‘ÖÖÉ«$~b̺ÆïUu6�h}<ù­üÖÿ#îʦȦ°,––娈åšÈñ�°¸§кGÄ.Ì~°DDÄ0žú?õ¯/{c*MÇAà ¨ ¨î¶%†oÌ(Å(%%f"êç^ØVɱä#ÑèOEñå¡}”¬L±�^Ô úæBXûâ!@ ¹”“”S6ë]eÅq¼_‘——•$É!É!Tˆéó‰ÉI®Pj�Q�Q;ùµ¬—Ö½àåf�`�Ï'¶¯óÔWÜÝD¢°ç©ÙRä®”s›ÍS1Ïí=t] wx™Ó|jßÉ[´¿-j9 5¨ýÚ rôFDo"¢ä¦·Õ1²½ò _ªtQWî” ŠÛým‰{ðöà]1l¯Ä[(3ó!÷¢Zn¾ASŠ�Y­2ç¨ä¨tÎÄ­z_j 9ÊUdƒdì;ÑX{-%227š‹š‹v‹ܹݹ½)2A …ŒÙŒÙáäáäùS%:#Œ"ŒÚ»cÞ÷ç x ð} ¡h!ÊVâgÑ\⥪pÃf—¿‘[ä]™o�dISHS·5Hžçuˆü¶ ¶ øì¡õ¡õ»h1 ùp>à|0¿r±¨Ø¸Ø8˜e­¼�õ\¯B³GG1×ÔRa,‘c×ÈeK(n¶¦ÆœOg½wR}}ô&ÑŽ4¯$ö_¯C†ë‹á^Âv,ñÇ‹v?¸¦„ÿÇkj”ø¤Ðd¨ñKv•ñ_UéÍÎmŸ/û¼ð_o¶{y“ó�µNqƒp½B—@Ïß��Ž�êéŸ1w 8z¤†ù½“'#,*æ¯Î_ ØÎvÀ¾Ø£ Žà!@Z¦’Z~~Þ)Ф § 'QÇ»9–øÐ÷ ¾„h-�R“ ÚÀ[+Øü;@R}RýC)À3¡gBF"㸠yešUšUÑ¢DµîÛª UÕ¡§óöçŽ.í íEªxÐŒ­ŸbÇœA›,. œýP«H&ÿ�ú¼¿B @]GOϦð47ïWQQ“«µúµú¥ùb*ò õõ.Oß}L×D×$¬z­ýäë¡ÝZצѦžO"_ïÁæðü°êtxOu vŒIrgÀfkjÌsûïúN»õáû-4ÛéOÊp]‘h‰øÃˆ³DÃÁ÷`ˆO+Ž&⹸³ÁNm![¨Aí?mxªl…M¦Ö'Od±ÕdL•y𬣠ZÀgœ0ï®—\ô–12ì�ÔþΦyö!�ô£Ý7‡F;&ŒñÊHs/Ñ·¥ó4ñ�ÔX¶åw`ñŸÓñɇÚÖj«ÅÉÑ©´ãŒíõôŽó" �¹Oôkj1g”É*Ö!\�M¥G)ŒÙ@mkµîW�OšaºNé_§Ý «†í¢õ�Ut!ldÒ):Êÿ)[iö¶¢0Ô öŸ¶èîóŽåºJÉÔS'òöY6GQõÓˆ2r•·‘Þʽkíuu~PƨjPÛj­–ÔÓò€cáÕIj j¹Çç:$4[é~G?jÇå»>)—½®`~ÜÊ"ߗ΀<�9BfÖ³h²ò£�·FÆÞßl.„yãìtm<™1ç^§#‰ð�*+ú•r³ŸëeªE3—x|þæB?ž EÔ²°P–×Ð�Ö6„f„x�o6òý²•ßzçñÞ°`¢ž[ f’Gé€Ùü±ü±ôMò;wÊô ïι•~Ï ßàÿØ»óp¨úþ�ãÖ,!Cfì[‹5ÊR²4%E²g'kvMaˆ›ì[²ïYBbHÈšT²oYr“HQÖ Eôëüæ>OL‹®ë~®û®žs^ÿ½¯ëü÷™?¾ßï9g†F÷G÷GçÀo?†-‚.»nܺ0¤óãÁy–æ :a¢¤®—*ç572=89 ¢­ŸÇ1d?¶È¶EØ¿;ƒWWèŠyƒÂ2GŽ�£ç ç0hG~› Vë¶‹Åæû¤•HbC48Ñ-uñ¶8[2ôdO­ZY|¦¼§ïÒüÀ©†„†„H�­^åEê?â ÐA¡ßèÊèJþp|éN*+*+D�N“K\K\7(×ZP^/ô&€|"Z"Zœ'׿žµ8¨‚y/Æ|¸ôC®Æ«²J¶�ö…ðgû¿ý.©·@�äR¾Qྦྷ®l)øµvV] àÙKü¸o+—x+¿È~í™(;¨A h/÷�×õ7ÂûŽzšÝ3SÍãÑ‹#+kÊM Ý=¡\ƒ(B—‹o�Tݵÿ½vmäÏLbé) ÆØ·¸Â7Ohê5.5žH˜í¨é6@¶›xGˆ Ü€Ú¿×k] Å„çx Ü^*æ7G�=¢DвÑSǬžÐ\:+;¥–+¶8µŸ«½©kKI@ºç`îmã¾á¨@/|5‹·¶bÒãÐŽ9HºCž'’ j?#ã·´?î?™\vGES¡54̹ÿï¼ï^L/ýœ^™ a:sèµäè8©•÷(þ:fßÎYM–ŠƒnÕ¯Q�6ZÇø~ºçìåõܯÐà ³\+ã"Hõ$Í3�ŽxÓ–¦-–f� °…ý]¨ØTÚ/åÞϽϑjºdºäËð¹EyÙ `«9Úœµ ¸*@XŠsƒ•×$ŒùxöãÙEfÆ\I)Õ÷ F²‡ -eó$8º=’§‡'ä^,^,Ž€Û‰·§Œv��ÌóÂÒÃÒÏUœ«0ÝMi÷mb01XjK.ë÷1}ëHý‹é�ñ¾?q ì6Ï“2z|ÆWz»8ˆ@v݇î3Q>í°ªÖò#òòæú±p,üi¾–ԢĢÄtÖívŒÛ·ËR­%[Ï™ `àThXhˆ¿F·I+HßÝÎIWéMãüœ½v£5:þ»„©r9çÓ—°™ÚI‹b•M„·™u „·‰]ƪ™‰ÇÞç~µG€èË5ºè××è‚åç“, Bî³ꨌ�6šm¿O÷è¯g�+¶Ÿ&z-ZF�{æëЛ}QQcá]¼z'_ÉOiöÄì‰�Ñ/›_6{êè ÈNtªÍZ0þr€‘Í(,œ¤ùzÛëmŠš,Z—J` øn¶v�=Sç_—ätw�’çS@&A&�ØŠÅ^¸cô#H˜³$¼$ܽнÐy ›íÛjÆkÆ]}Sm¿ïA ½}¨à¼.�xNg Έ܇-$Ÿ†Ë|v|‹wi(5 þšä5IM/_ê M\¾?"©=©Ý÷ ‹Âî&Çnr¨ìPÙüÕ퓈͈Í> k¡)Ö{o8PX@PðŸyŠ`ÀÍSèÉÇ�{ùzd³Áh§%57Z£ãÏö×þ“j¿O+@$Úp/¾Œ�Ë”Ù;²4½—ëY×{ ²¸Ž—zÒúpïGGJž¹Ý†Ú¯Ù$“üuWkY*ÜxbNÔ’ú&ô�8<^¥ËÏ1pËÌR8=sv4«j¿Oëmvô¥ð`Nôæp’Îñ�äÁlú‡½�íÛf ]òTA–¶Œÿv ‘ñ®µeUþÈI[¬ËEèož†>©Œ¿Wt«ŠÔyÝ·ˆ²›(}ç¾áwº€ïŒcÖóYÑÇgöb­REPr <”¯n_f_vÄöÚ†sïáÃK ‹_ºð‰Ð6[~[þ{Ì€¼åÊ·ºF€½HoÖ[4ÀpQ›‡‰þÏ�ºm#¼Þs½ÂÀæ=?H.þÁ èŽÂiËÒ‹Ëa¢—T•T•ùþ$‰ mô²Ý;Þ%Ô%d!m!�2ß›ômܵܵ÷=t¿/’γ…]0j�ãP!ï0ƒÀxѧ¥á&ºÝå3[¢€[A€ädï)ï©€p¹³Ï53ÿˆwÁï‚ÛÍ«TÐTÀ7{³)¬)Œ1<|‹Ã'ÄkÍD¬·]@~ŠÃ„ÃÔpO‚uPgkÀVZ~MýÏà�öAñÿï¥M®2‚5ÈîÚ©L cw _ô9T]òÜIXd§¬��šX‘=¼ä+Ï\ïùú>hUãÍ£ÛˆÒ^Fœü@ó~ßQÒ�f;Øë*X/cG¥>}žµ6›€äïª<=?p§ïN_¬Po�Ê,Eæ´Šß—¬•¬•éÏ"g‘�ï1gw9xºá�yQ·š ÓQ8çl@£R˜LoÁâÀln·,H¸ðÑ9¦!BgÔ³Òv/  æ æx- XZÈîÝ z&+m#mr/äž‘‚Yõ·qq^^¥ÿ>2}ÿ�ó)—>œìE‰Q³8F…;U{”“÷úY|be¿ÜÎà00n4n ÕR ¤âD×þˆjíjíÁ‡{�÷:óÆ'†èAô,¦”ïÐÐiçXëbÐzޤ"ááà<53ãæ©Ø¢¡o^3î­ÍÌé ÷“7ÚÅŸíŸé[ª¿b«6ØY/Am¿’"ÅL¶ìbÓny5šŠHµ€Pµ‚/þÊœö[´b rË* öïµÉ{2¾Wµ&u³ëè'ˆ›åÏÒpKî+yÑcC–vøz“pï/°ë†Ú?ÓÎOƹѺì<5Æ•ޏ^2�$¬6ÒžK“ FÝÝZTû~ÕÉ“ %�ªjPûÙÚ²>öÍéâúÅ'Çl¢  ™ª m™Ø¯¬2 ³0ïãnÕg½z©½ j¿O£®zÁ;·m@.n��Mzú€_z—e’ú–Û­,´�IxÄ:æÍø—PC jÿf�Ÿæ ®=Ó{bØ¡õxs”§“´ZÔÃtêþ1¾#ŒS’þÆo{¼­M µ_¡1¾8ÊX«ä»…œ©ËíX~q³¾îÛ@nïUÎŒ½¬fUî•xV$"©+¡µªEœ¿ÉVqù°Î —tÖŽü§—dâ³ôXo¦B‰\=Ó\ejõ�0¦£jPšÈæÔØ•Ç!Oøv-Â5R°*¾we±ï2Š vx⥕kÁ„br©)Ô öO5íº\do—M^YÛ² qiô‘jÓâÑkŠ£Œ–SöÏL[�EÓæÏ%ÙPAíßkRUçh$Ú¸s\j§5Ó¬ìÏì°«&"¨£‚�'Žë+0¢nÞô'êp·€ÚïÓ÷8‰©/¿z8?0ñÂÁvt§pl'S›Ÿëhe,å9iý#Ä3ôR=9ä¿bCìT=…ˆù3‚·a†À mÓÒ¬ˆjÇ?§=gKßBÆ‹�›nþÐËÝŸ°Ñ9m ó¶M»W²µ÷;Ö3_/§äïÙîpyµ‹îön[WùXþêŽÝÌ׃¦§½–S70}å}‘¯ŸÓzÃ_Ãè6•1D‹H«Û‘ŸØèœ6èÓ=É ë9®nÁgT¶Ö›qPâ]%¨à@ýjýªS‡G¾ÁT:—§û,×—L™>:ŽÝ_º¿ÔøàNi6€]p™ºËvÀC—¾Š³ç@¢-¨�°߰ÿ¸Z\ó£6"�ÞE68È F6€s,oìx7lì`»Êvd Ë´Ë4£ÇŒ TN]C]#øé:—ÀÿmX$ÙPM;ó}<2…¯{\fq¨�ìÞç5á ò¤{å–òyö~¶8TõPÀ ŒðÀx`°BÄÔ‰mWD¼b¼âíÙ[ý·ú“Õñõ&QjSj»>ãKaQaQ™ñ_«~×zÕ½€4›:›:pžj©qóÄ^†±<Í÷|ˆÔÀ�äa+åFç´ø³ý3ý–ç¦pwÒ|p@š#ÑKÙr*[Xa3·»æ$C¥ø+¢­çTX™wmsxr¿jÿ{­ÔJ£îñ²¥ªá”í§´ÆÄ&»�Cµ=ÏŸê ³õâLÔ»u¬�£ jPûZÛ¨u5–Ç�†ÅyB(kÎÔU[bÌsࡉüPEÑÉÛ™*5ršÐPû½›_Ô+‡+1zFçè;�ý”³rï3-=~ÉÏøÎ»cJÃ:«qýt©ÍÙ§ ö¿×t¶,Îò'¼}¥I¹Žœ88ôÛÂnìP©û–‚Ü7œNÚæËV?zp¯jPûÙÚ$ÃU׿ sCŒ-vë¥ááZ‰¯}—6M#Ž’´:z�0B:_4îc�¿ð$ølFÖ[kE®ä’OŸÑ~@ð§{ê5× §Çw™g-�C ߃# ÀV˜ ÌËIãÍ;ÊsÃâ@Ã/©nRÝôÇ\ÎTÎTg @ ‘å°LP”º·´²®øžMǹòLþ ˆ$M¤N¤®Ð˜¸ÛƒWm¨NüÍÐ�f%'/ÍqÆ@€Z°ZpãS€‘Ñ0If ¨‘²œ´œtÄgćÿÁ+‘o3‡›ÃožäÉû>âb¦yi*³#™eß|ùÛ–”Rbrÿg1v�]×å^Ë^ËOí ~Õ¹ˆü:#:#òÑ"£"ÿÇÞ]Eµö§••i °(éîPºDA)‰Eiéî Aú‚Ò * ‚ÔÒ!  ´E½žw=WXQœyç½×ëÝýü÷ÎÌ<;³ÏïìžgâÚ"Ù0¯¯ŽÇì-½ô½ôÚÛIoí¶ˆq¸–r-qÖUßc- å~ÍôÀ¤í¦Mß5ñ½f]Í\}ÏèmNš\Ô×]ÝG?<¢§†sj�Ñû:I¸ý ·-f¸Õ�­t*÷±sа7¡»Ìº8wŸu-°è¾XQdï¤QÇX%ZÚkm}¾&µa§Ö¤ DLÛAAÚB”O@9³ÐY(ªh÷ðˆƇGÙ7b¿U]X]È^•´œ´Ì^À»Ó`ˆÖ¬ó£v¼*–°‚»çñÚ$»DÍDͤ{þYͤJHŸõ3ˆjÎ §ãÉõ„ 1 Ã.Ãn�X+X+`Ðä–]ÇKÆHÆ Ö¢ÖÊ "Àü>SS‘ÓPälhA1Ž”ÐT7½1Χ<+çv¥ŒíøWê‰\Îf€¬âÌÌ·+(óy½†?cKxK¸N8ƒ7ƒ÷)"¬·ìËìËOF»…ÊRÊR./l·Ñ³Ó±x€Ú‚¿ÿŸkû˳YbD:š¡óªÜ¡W ã_ùœÝkÖ…¸¶¥ç,ýÛÚ¤!µßëçû]qžaëé÷ÖØ2ßàI>›”{l®?ßmÎE•ßBÙþ}MW7 Ö"ûòª§±o[J—“=ÿë†ã*‚êùØonÎC\ã£<~œÛê†5²ýZÍþÄVDº²é VÊ.�î¼Ôhšqò)ß3e`«Žd‰j„ö¹½|ˆl¿V«ÕÞº 4#|׸¡Þ©ÉÈV®ÌAàpã1C cÇøEŒY…ÃcŽ|ýÈöû´ÜžÓwÖ¨[Ž.,zoTâ8#µéK1:—sdKT+‹°(äÚ^´A¶_+© _S¡Nñ—‡yá=›Š=Ý㟤‹¾PïɆá<ž¿Œ#�¡rf ÊÁ Ù�íWk!þ¤1É囨?�’�:ÈœÉz¢Ã‰žƒV”_‰8¼OYîr¡-�Ê ²ý|»JÝ5*tl B¨^·s™È+}ayqΔž)Ã8­+¤R(.=_N6׺ל)d˜úxÊ~c*I—X3~þ7 ÕŽÔ�|&œ˜íç*\Ó. „24²w T?3•ºuýã.s&îÝçL�WzEs.YÚ†a•Тk Úì5gþ‡‡L;ÑkŽY#r-ÜŽ”Ô*W� :â‘n›n{Ò^D=ýÀU9Hg†û·P]Q]K¯È(É(‰ü÷%º/èbÈõê´z{R2r»à8 Sÿt'”+”Ëõ#C,Q¹ÀaPy®D%( 6–Nð,‘‡ÏP_?­0ö7öÓ òÔ š š¡+¡+1óÞø>·*·ª¨â€ò³�£ K¾H‰„Û—’?L9GÛ�bQß·*A¿â?”yøTफ़ žK`ì\¡+ºiåÏÀ4Â4z+>ðjàÕF5"sž£G#&¨d�ÇÀb`]·+ÒÞÉÉ`S‰…ƒ…®§Dbøzr×ÒÞ¬töY¢bL rßk΄¸¶±ÌS1«YŽqlÚÕ%ŠE÷‹{Á~ç6ºjÆe˜ª¿�›Ï<øîý³uÍîUÙ¤öRb«d‰ôØŽ{,¸fï�(D¶f b<ª�ôB߯ÎK‘¥¯½~Ö=^`,ë’ZÇvuœ§Þ2æÊ�|…adû÷5᪞€#ý†kNñG2ê4KSy‹ñQ½òY GUª$E“szÃ:f†lÈ´6ß¾¼FiójÊ+ï/ÆP ôû{ŠÕ ¦þ `m˜¡ñ\Qª÷ê*&²!Ûÿ£I0¨XJùÔ(mJBù¶f�×Â…,†ߺ˜xßÉúx¥yÜJ\¢ðdû½ÛP?N6ÁR/¾iö9\â­ÜÉôVÉkYt·xy˜+˜”‰Û.s’Ê ²ýSÛÛ±[ÎÂ×m'¡g¸DÉÒ ?â«Ey6Ø# ¹£Ðù~�#æuþ€;53²!Ûÿ£Q¥Ü(©¹›hÕ¼vëDÇõ-²ÄR¼õŒ9jZ�óσµØi.=’¦Z1G6dï‚å¢Êbˆ!kg“Imøu»ªÄYïFpÄÈXëWô1`¬c¦aÍ{ÍzC>_#?´S õþhD¦ìÛÅt‚LBðü@íœAœAbE0LJܯ¾ÕÑ¡¥¦>‘ ¸Šnï˜ü/Õµù¸•1@éË�¸©Z~�a�……/e—“tßZ d 6èÄ«}âJ£@ø°ðáÕa€e†e† �b7¨â ñ•l�l(›LUø>7?7¿åÒãó?ÝÁ0zéÀÊn�h(Ã6ŽÞ@�D•ÁYa"ô«CËý4‚j¬8þlþl5lÿå™®}*?ã× ®R%  Â;ˆ,ý™Ä™Äß•8PÚ�¶;Íwo»ó¸;Ùà–`0 ÄûÖ⣦ŒµØ§<±ëçÓöº�!¼:ãtÓS’è2‰ESÅé¦�‡ÏØàô2.ŒÝ=;*55Åê¦ÝL}Ln@Î7ðLCO4º�x—û¼»ßÇà2�ˆWÝj~¡+W„Â/н×Úý|ÍÔÝ�‚úÛÂñ mG½²ª"sM&sgrgºË~@ˆ‘”ª•{ò-««Îì›Â7……‚N üU� ñ-ŠS’gz†Æ$pwÙ½-A#I-ú-ú®B0óÚŒ Lαl*«§œ[…±³z‰!&p�VV\d©Œ‘÷GNEN� =Zx¾Nÿûèqéq_&Õÿ1Õ·]â‡×­øpD6Ñn‹cp¶ ë/¡„Å��_õJ&¬nLDôô£L>ÔkUÿ ¨?Ô�ÍË«E‘ù¤�”�ÔÆR>½‘‡‘Gèö·ÓAÛN,…Ç8üzüú?Ï2„|¹GWç-Ö›�{ÃG6íƒ6¿ý‘Lý~‹¬NúX¡°Ä9aªÆ­ëaÆWˆuFóT"#븎D6dû;›êýйÎÂIå�Á‰4îé�0¢`ìxÔ}樛¹,÷,^â°¼{€lÈöW5öBn1Ý‚(/Õ0¤– ®‰�»J4{/¥Û¢aùv3z<ÝŸ{Ù�íŸÚFYòÔ)ž¯Òj?åNä5±ü+Î5îí7z¦?ZAÏf.)TßGÌ‘!<~¶�û²o Õ÷d£�îy˜GªÃ)sý{Ÿm Ì­�¿Çù²Ç‚ìò $ÅòTR®i±°M—ö5—³²ˆg٬݇�yë¼{_üÐ1Û¨èÖôffH“b!6Û±'éŒ�êžJYC.\Ä6VÕlt¯o5"ž Žøý Äߥ!~îFÜ®©Î{$£G5â�¸£Åón¯}aØçk,Kw2aÔE4Ù³�æGPMçè0í”Ý”o.iQîþ&¨ìŒÝÛoáÕàÕD.�O�Oz˜yÜ\K8?G/ï“7 —d«á*8ïI�Ú*´hWÎc:øÐMñ4¨Ãü„2h}†˜ î~ó-‹žÀÙÐÙ�ó4ÀÛÑÛq¶h¥Dxïéç—2¾2þêr•ê÷õÎ÷ο±.óø1ºåÒ‹©€Ú¸óUP2#8…Žs'YÛÎ25­dN½ ¥·Ä³ÄSÍq�¾r ö3æjæjî¾´Æ´ÆD·DD—o¿h¿ˆvÏ5,-4-”Þf»£u;Af“mÚ@œy4KÝ…*ZÝ\˦ÙxÑ–*»×Ìñý�!V~Ù»ÎmH~¶È§÷NëÜ ~Z¡œ‹D–3'ï ¢nŸy°Ãgl»Ï<žŠ�Nt¼Ýu' ½¾º$¹ˆ¯µþùÂì�ÖäÝ flGýtÝa4΃:�:_&÷I¦5Onÿ\dÿ±oE¾ˆ|aTà°è°x¤ _7¨ ¨Ý¸Ä†ÂÏ-“aW´ƒ«E!]¼é ñ†Œ*šr ¿]éÕ*4‚†ÏGÀõõc�§§Nް°Z”÷)ïãÒ(qúÛÛ�=Z�þ}l!l!^%äÞ?Vý(„¥ ™÷Å´Ùíp¹|éQÐ`â»Ïo•Å[j»x;Û÷°ïa|f’ÚâåΟ‘¸�¸`GÌáÎá~ã"ÜÌâ Å‚lã’8æ8æÖR·Ë/Ø ã2`Êou\OÌ_f/ÇOÀp„PZ3î�H9�¬î5ó@\Û‡J(ûÛòN'2dy6.ž1íy[Þi„lÈöOhÜSÜqþo/¼ ¯LSaµ�#¤¿Q|VwB©Ÿ¬�WÌ?ˆ„7£°¸Ù~ý¶LÅ@y19óq–x­.+�¯TÏJ v1í º ¼ƒ(A­¬±Ý‰-J‘í¯i  ]õnŸ.�¦™4”Ç13ß�VŸ—0|«‹áFáÅo—…oˆlÈö½¶Ž�Ñcê8kLÞdJ¡dµ¿-Ú2ÎöW:sôwiJsÕ©�É�uSâO´ßÏpÖ0lEÜw4 ´½3¸†mBx¨¬‡'i¯}GÄçkž¥ìä^”€(ñàv–| å.CPÁeI˜$Ìi¬‡ìrë£ÌxÆ�–oÅHÆH–  æÐ(ÕÏOðæšFOpÒ µ„pŸN¼?k‡ŒAưét"ïD\%ma„ƒêX\áDƒ: ùqæäµ*µ*÷s€Í„ÍR‡¹AÐúðFÎFNK|Kü³‚€Sß1�Dˆ]ñ¿/0"¿×žq†”«·d§¼%“†3‚.yZ í#ç mŽÃMÓñAHªÈ£OÖ¾»|�€k÷=õ�„kdj2­X·‡¤]>Møìµ¶#?_ãY¹ŽéÕcˆŒy·óx:¶Y  êu*[*["¦b¥yªa¡çÏü-uuòéé�d@Òý8l€`,@Øwæ 1 >JËîq%7ÈJŽJ“J“Á}«ùÒyô P T€ 4»Iß g|ÝшD*z`”n”ŽAàhàhðÏ'Dr/ä^:^:^Ko¸ô÷…‘„‘TÖÈzÿ˜}¨+íIÀ]4¸4Ç“o¦¡à¤àZ¤ ¡’®}åÐ@D}�[îŸíŸ=p ÐÔlk¬êgHŽKŽß*%ê"ê PA´ÉÝêßê?Û{V¡C¡ƒ×n;öâ�BØL¦dÉdÉàzüòÜ-ÛV>åù°�z?ŸûÑ©}¾{í©×ößõ;fË>�äû¨®œËqØí ¿£w¢RÍÖëd gº:G«ˆýEréåÀ'ÿ•žq³[;w¦ÿƒâ“×5 ]GÏ eSsó^Aœ qçði›vXxSEÏXrÇì5Bü®Ñò|c[*íƒ{}P|�1ó"Ô¨—ŠÏ½ÖH2LŸ³ˆÄÇíße.ijû\HÆïj<_Ó¬Ò(¯“ó{_¼â½æBQÀÞ¿§ÿ°wßÑX·ljº²n{Þ•Û|l™ÉŠBJˆÙ#!ÙŠÈ‘ŒÙ{$$#$#{>fV’‘Y¡²~}Ïýûþânèœçwž§z¾çõßûœï\×u_—‹i¸Cèâ·JRõzmõùÓÆÓÆ÷Æ-,8°­¨ÃB‘¾_R_P_ð´�XŽXî�D_Þ½�xŒ}×Ð�àOKb…²Ñûêèà´³¯³o}¯ãx$†Ch¢RÓ„UQ�BÍw/�€ë¶ ,4,TÃ@®B®r ëö�,#Òi**6ÏCÿmŒ‡K<Êóù¾ÉE²ìI”îù‹Yä¡(½Ú²ÊÜå‡È7?‹ó ©Ç4 _¿(}Qº¹ò€�y)éæ� ^%^Фw§w�é@Ç»Ö\Õ\åêº_Js^sþèÈVж[} ðX—Z�ZçÉá¿¿µ8r"ûƒh µtáZºÊ뢺�ö…Ðgûÿ}Ð�½[äc–¶Ï¡Q‡º˜kljÌÅy»®a ±ú{ɘZØx…Õ_ˆß¾5¨mZx²¶¯�\Þº÷¨‹^•žr&R3VÔ˜À=¥TN‘çôH`߀ˆò¨ýûZÚ‹çÞÙQE» à†”áóŽÞ˜o‡ ëT‚NG.´—wiI´]p æc¿µ®YWZE9äòs-²h9NÏjÐ †ý‰'ÁGGJ¶‘{Zõãe©Ù“éü+ƒPû¹ÚÛÚÖ˜H çÔ쪽�l#÷­åI¹’,ªLÌþ ÒdP;²û 2µŸ¿ÁØL8̼fîUœP•ï¶aþ+wRóIÅ^‘*1QèÎK¾›d+4vC_ÇLYŸ,­ÃÃ_]{«ŒCŽo´Ó:&¸Û<¹�cÑ :é+[­«ƒNo¦+€H*‡S†S`2u<~‘RléMÉ_reue%Ï4H2H27Ðä24RÆCÊ×Hª”i(ü‡B|A7À]xů“åèf@ñ‡A.é�(ežó›ûq››ýE“©“©—qXûAÚŦ0S“$“ä»×“ ßìì°¼�}õûë—ÙoN‘¡T$ÃûpQrO¦/ûzÞÈøŒ°Vþ’ö3À£HÎÎSÍcj2— »D—G—Ç9--Ñ t”D"D".Ej§±‘ØHSý­R¶sŽˆ2{O{O£¯ÑMãrâ¹ÛIêBÜm_ÑWî´FG¿ï+“j·ÿ±:Q=z…¿¤ó1µF×~þ[Õ'õŸ"^ó°ïúr�Î÷õ5º¼vEÕ°ÞÐÄD üQÿ©�f;ìÓ7O·Ã}R2‰nàøV)+ l¼0"œ›š›zC+C^µÒRué°ä—.»_v㯯ë5t� ÍÀì±Âú)7QŽÇ¦‘€TËb;c;Ïn�a7›‚ä•iñANù/QÌ•ôŸôWê{ë{�;D³D³Ö­÷Ÿ€º[?Þùx§ V“ó²©ÿ¶êýÕû¼¥,¿¯¿½¿|Càpå9§­{û1® ­©)÷ÆÏ´å^$ÒnMÆOÆ“ËJ�ªŒ"èÄŠÔŠ”Ë fæ—ÐE’âòâòæ±søR²R²vwlÅ$ºÝ£Í|�h�(8OÁpÔ<œïïïaí—¦Ï#&šQÝi�Ž>Û_û¿–Pû}ZE”)be:X&sP\ðÅÇ9A¦—}� aíÓZšbgÉÝþ”-�éøj¿f‰öÒØ(·¦)vD†�®ÜíÙk9 =Yz’8+UË1a0YqàÒüå±ä6¨ý>­§ÉÚ÷*u”ƒ�WªWÈ1ØÓ´^™Ýžä5eEÑ#1Ví"ÓOŒ µŸ­ÝT.Ž<xPÆœ¯n6?ÍD¤:JÝšäÅ{óVŒUŸn5Bg¡e¬Yº½PƒÚ·šÚXÇ},Í�ëöD%ºú�‘nìçF›j˜Eu$ƒjo°”° j>Ù3»áе_³ÑÁÖSŸù/y¤¿s<ð ¹W�7“xÿZ¤íHŸÃ]9·ðÊ®IePƒÚ_mÄ“&ä¸ HÉ‚•¹pdèsñ¨W¸êoïM…ð…ëZŒgðÚFHÜ[¨ÄƒÚÏÕ²¹¢ q5bMjóü—½4~çŒPD~æ¼yZ_üv�«Mö.Ç”Zc¨ý\ÍĈ¦XèínyÓ¢¥Ó–$0�þÄÛ -1vNþë£*¬’(Ük/{¡ö÷´Ç$äÄN ø8A´Æ$W­6ˆ†}:‘¶OWY|¢vÇÑÝ´x)£/T5¡ÂØX‚Î5ŠyoÙƒÂe sî.G!ÑÏlL{ûjxË($"x‡­v:k@KLÙ5C4°·ÝþQ¯!õ†ý�¦,ÿ"Ó®~Å÷ƒ©ò ¸á_ù= ð×ÏêÖ<—2É<<ŸiΚvðÕîtÖ¼—C½§÷A toY¶bÏYÝ•�íUdo`o böcµË l$9�ö¥¡”¡#@ðK”¥,¸99)J¹¯‹æ1z†+j�?£¹67SÝÀàD  ©—6uÜ~ÄûÕ÷«ÙoɃȃBv¡Û;Ĉψ/aâ''9/9¯¾o«“ÛÁJþü£ý£ÿ÷Þô&»ã”³8rx¥Ý@JÜé¬}¶ÿŽ·¡5 uúº´b^â>uŠrè<…�{ÅXðŠD&Å£žÛYÌÒÂò«™Œúîï!I„ÚÏß–åó$³™ÄV�o6FU‰ÂÓ9˜âÄR„ßh5ç3P-a»9ùb¶´@ jµ ‹DÇùÜ’:�Jšv ž˜Õƒ\ íìÛA YÏF÷>›Êlc’L2¨AíWhgŽ�˜5»Œêsí'Ò;&cÃI¥+V¹#äÛ„+$”§¿›Ò†Û;B j?[#xF­öŠD††x~ö¥„U¸�Û]D˜¿&Ìvylè!aq~§äð8-i+Ô ö+4žr-ÙdéêݹÚÅ“ã #Q…§†®Rë^ÿƒT�Ðì]“�ŠN,MkÂÿ»ù‹»UšÑ*m2åk0azéÇ9�WBß+zÄÛÔƒùî òÚµ°Y#ë�öŠ">}cÙ»Ýå'èšx·ÊŠxÕ¿ M¯J¯"gˆŸŸ% E¶Œéúåë— º`HÒ0PPÜ@¸±  êtàצ¼YAѱÖQìê@t ânù6Ä4 A¥Š©Þ ¦;”†(›1 ôRM€Ó:§uê7�Ê�ʃØçLBßC’¶X¶þÌ(×(w1.§àÛ¤R¤RžÚ Ÿ—pg:Ó2@.åxÕ†…½'J’(3Ž‘ôb®Rég�ÏzÈ4W§ 11i»Å œ�~DMQMEÙZâZ"ß:—lϹt€YnFn&á�­äowÐи2=ý¿}Ð&jÔ<å>ë]R�xg:éÚSŽè†�öAÑgûgzKõWleZÌuBæë1¢Ô°U{Ó6£¤Pü]Ê9˜ÊŬwî]g4ß7 Ž‘^T µ®ÍT‰{$Y«Íh¤Ô’Na5É]&Dˆ*˜è6'–(lÇðôqÃFç\ì‚ÚßÓìf"‰ì™ Æ™âoRdLI`–i«/ƉXËFâásíjý{o»Øˆ�¼]OÐ7Î*K9k%â¥ó®ÛÍäÔ ö+4ʉ£”•Šûp¨:�eå7�Õxçsá¶Á˜ H«Wšà|D¹.BP5¨ý]-ØîC`ñ-é3óLbɳFƒƒÄ1î$kÒ>ˆ“´àM²l*Õ5^à kï�Ԁƻ76|½_˘•s…\%¦ú„Ç)IzNíÛ~Σ>§§Ýñr¦Žß-Ô…Ôþ®¦^›.ÑÓišYÔºj�U*[¦›ßÌ—v|ŒÒhÖü¥n‹_ûÒ•hS|¨ýsMÔ°ô ¡P+"Õ¾rN5ÎØÜòàŲ]µøä“Q“g•r(-<ðÚÕîlµß§õ÷yÛðŸZ}]¿405ae6ÆÌÞAÕªÇê0VŽwEì¬,Ö<©hw*ίØ(˜• (ž³<›ÇÐs2mn:nц~N{ÅŒ´ÆR1״փ边Ó9­�íþ=Üë)ê¶>uÔ�ÙºX{ßZ·à$yÌmæ ÎVÖî­‘øfP÷’ëjì ¸öWî«ð~ýœvLµJiEÔûà®Ü×ä^×á�Îi#?}ƒï¹]sX†2ºÝ[�ØzøäÇ�M‡M§gü¾‡9,ßÚYáôò—jñjñî¾€×Âk;±æ&L€SÀry«Èƒ#€x[¬û(ó´�W@‘‡5z™©Œï�!ÆA²vn èz&”ÍçŒ{§]…5…5n é½Ò{ŠYAtVžÊžÊóó-,Tߦ"¤"tÎE÷Å÷YGLøã&|Q.œðì¾Ù޲ƒyâDŸ˜×õÍÏfböœéRøÒéÌéÌ�Š¿v´ƒTïGXÁ¬`wDŠ<,&E磜$Ÿ$Ÿ¯4ÖÞíÙím·U |;·c€¶‰7oÀyª$@Í}Q¶Ñ%ÖWC»µ<±ë[ðñv:§EŸíŸéoùwnòOfôÄ|(zðš R¸Ä)L¹ËÏÃK^ï"»r‚†ƒšs¿ÕðÓr¨ýûZ¡±JmÖª‘ò¹ëBxmjãü3]:jÇ]ì ÚIÌ\‡£4ëeè„Ô~…Ö:fâKP�t$¤±�ú#yQ×Ú¢²@y¸þ‚ÜPqÞù‰Í6ª•ÔF'\¨ýÞÍóök«{ašÚGI;t<•’ÓŸR-TòÔ©xLqäÌÔFDIlSŠÔþ}í Ù‘üd/ÌÇ÷•jq°üÒ-sW:ï›à@Ü·9o–%UÌõgMUÔ ö³µx’C“ï•!Êæ‹†Ù&GF*…¾ö.m€v˜€…ˆñÑ*Ì`±,¾HrwãPôý€†Ä£µ¸X„Ú#�2ŒÅvÚˆúôMÈóí. Th£OÛÊxtk1?´iäaäqvo†|íà�DÉëy_RIPI•fSdSä™$…XdîzÊG*|7ý]PªX@•¤4í4íc.­D„ÕÙô ÙyþeЈÖM”>‰Ë‹�¯S†Î5�kºètîtözÿÐ$\“ Ï…k­j­²ŸtßýmC¹C¹>i‹ˆï+z÷tIH â‚â•5Öõöî;œêöàxd¯ÌìÇ(…ä›lÙr${�ÌCÊŒ²Éže”ŒR¡TFJfÉž‘Qœ‰cüú^§ï/NC×õ»~ÏÓó<Çë¿÷åþïv]çþ|�ûûÚ‚rkÀ™ÖhÔÍ}_U�:!Ë<Üäé¤éÁ-’Í}GU~…|¦|fAÌM®›\Ò˜Zý e eß 0ñ2ñºÌlÖ˜ºÕ7Àð­*­*欫±ËEÅ :µ¯Ä¦%͵çŒÜv³®øgw$Άªš­�ÙØJš›.r ›é’Dq{ÑÆy ÃñãœI�7®24Éêkö½�ùάKøû³®‘=kG«3é¥"w�M†ŸÈÙnog|^ó$m+sMötLwomfW znÙ¹ òø¤a§a—¡¿WÎ5¡�ví¨©û·Æ³Ç³+Ó8Æ8ƪNžRÅÔVõ,ËörHKÔ Ñô×çè@"cííã…¯ûMx³´@‚ô_gW8…ø¤hcáTé±"€ÚÚâd@‘k‘«LµqÈæE¯w¯w E Eo;•ý�=7xn�¼Bàùsù;Ÿ"�ö¸]ÑŒ«ù‹UúÐæªE\e%2P$}U æ¶ä@(‹)‹)Ñ’ªßßïÎþ+dµdµÔ��xœx$0Q¾œîœî¼Dï/Rè\èl‚ÜŒŽs+‘xÊÖëøïÞþr7Kò‘Ù¶gnÈcИÓeß…¨m7ëÂÜÛ¿Ó=Kÿ¶6fÉ6õ’è�S¾o»‡{ƒõ6N®‰\V»T´Ñ[|a¹ãÿ.ã�Øöïk¦0òˆ:‡§Å@ëЖ¬W>âSM¼:’°bâ÷iH’’3bL¼¼Pçs.Øö{5¾�t¥ª§»!YvrvS¤âë\\ëËCU\'>6œD/¦Çü¶ý^­ÎhãL_ä€=ÕÇæ5XûqnÁ m!JÏs�8#¹ÛFMðJ…T4öŒx‹õbÛ?§uÍÚ}:áíÇoöþXDªpÂ-ÆQŠÜ¾Bò5Ú2üEpWlû÷µ{õq(–¬põ¾ І‰”Ã]á—LwÎ6 âùŽÏ“©ãé¨ö'zžÇÅ6lûÝZtx¼ÄõÜ}G‹m`µòŠ»y® ðµùp±×¢‰ëÑ>êTÑ™Ø�m¿ÞN³¼z-µ¿?^ªÑ´}ž:(}çìü*æœéê5eîIS)�29%d=âÅvs¦è!Þ,"kf¿{2qñ÷m•M5ŒÞŒ,íb6Âø­ú•~š¹†;b8›µí¨i°SÌðZþΜ úý9áDAo‘QD­ÆDÑQ:ßíæL™Ÿ×LHlelgóSŠêf¸: þ†öû Í_„/¢ 6ÕËc¬žEò­�C÷r£r£ó×ñ%á €¡xÀÒdWµz?÷þãR´ ‹L3 ‡kÖMÖM2N±]ôö|{A†3“\ ]ö${´íëÄYÇÆÏü ü æË§–O=­JJ-Å[ãXã´ÃÚa¡¶îÁ?ÖäÐä@P\xäçö³ ‘UÖÇÐö­ªXÒ¢QÏÊ8X„˜ì’újôεWgÃîÎÝÎÝro__:Éð+¦Ô§Ô'£é–é–o6`JßÝÝ™M=Ö’Ð’€Ù̱ÕNdäù+rp?eÒ ÷SÀ £õ*ß�9&)î¬Ø¸Á€íæL˜{›àd~ ÿ�¡u÷úËe²I½rA}ÿäözÑb™cN´*v2êæmµzû[Õ®9ÝLÄ:ù2]ðÑósg ˆâ˰íïÙ.ps]zIÂÑ eÌ77ZUë{–4Zj­â—S/xzT¤Ñ1ùiü.�!lû÷5éꮈ½ozã-Q%Ÿ�-ž)1ËŠ1¿ YŒÃѪ¢Ã=ê³ÔG°ßÛ° h-¡=7š•NÖ0�Z2If’è ”mäŠbù¤áb™gvÑDÿnNðœE|löÿG“çÔ!�ËZiV²£ešyBÈ4k˜ß‡g/¶*+×s`�㢒¼Šœ:nÛþÙm°—¬€r®{—]*±>9ÍFÑØÕç˨|ö QžJžtmš[a:õRlö¿k›Éð•ö‚�¹©BŽÐ_¥|ôP¬nGÃ@×’ìd�ö¥U¡ä©âþÍ=š{ՌՌîæ“y"ó¤¦o­õç4J_–ÜPôСñ,½ƒã%¡ÁqÊôZ†Ï·*}µ`y¿?ï(`ÚÑÓÑs ý˜óôˆ}Ó¯H9�rÚŰV¸VØ‘“ïJQtQ4‹M7î îà%ªÍǶŠ*p¬)!•�˜Ï1\äúÛ^Ûq× $nDæFl÷Czñ­OZ µ­ÃÓÊÃO—÷¨º’usÏZŒÜT{­8àfGÐɶžóˆÁ‚A¬¿AÏìHR+Íwžcˆ~ÿ9F¨Ócj97”±}³�¨ÐƒÒíööåÏkÎÓmÐÍúÓ¸òf}N âå’ ’¯6¯6®Š4ÂZrú»¿…JE¥úkìÆÝ� ¡XвØdù&y,Ó R»G¹h‰£ u gW¤½¥½‹;ÒBÌcAüaPL©­$š‹Å‰Õ87@fyf¹…<ÀkÌkŒ bm?¨0¸Ö¶Öö‚çÏcª?–º’ºRÁ//úsö+~šsÚ©4k5oÚ‹=hÝ�gYo”[±1íüªmï�‰S¬€Ä¸)Å)ÅA.’þ Ú_á‰ôDîYžgžg¾äˆ‰¾±¿­¿­…®&¯þlýÙl×ÍNmÅ`.xQõ¢ê¿ï2$ùòŒ®>X¶»˜ü\ˆJ\¬QgÿvÏ10÷v/—0þ¢¯ÄZ9q§›Û!vMlûç´OFâ{¯™÷:ä·s¤HÅf"¤™›7¼ðb­OÑs¾.–ÐIH¨‡ìçÀ6lû+Û1COóJD{ÙØíè�7¹Ð{JË}´ÔQÄq†ÍyÓŠøo9Œ“ñ,Á6lû³Ú¡2¨¬i‰äuí¹'œW©î P¡d¬­GÏÊ? ž» Ç%+ëä>_KTä…mØöwmÃTü7t)?0õ¿\d3¢©…fŠÚ8þï5îîµj0]É!xRAªæb�PžôøÙñåÜc,)È6ùjøÎ :cae¯}¶Õ°8éü>Ù—3Éwî@ҬȡƒLÊÆ®ûµêú©©`¾Ëu›„>Ø4âãRùïb«»“ë×¢Ÿj– î|U�»¨•?è¡qu®dŸÊhÆ|'8æ÷ƒ0ÿ/ ós7æ¹P¾ð�~1ÏKh“åvç¬Ïk(ïl¥´È.� Ow3…ƒ j‹°P›¨��µ¤œ¯“ëÞŽY�ºou":ÇO›j™jòØŸ'4”úç%µ&‹~³"hû¯ÓB@|Œ„PB(rîút^¨ëìÃìI�)IZbnbå³äJåJMÍ€ûÏä�r@ùý}¹[r·*|´?ÖéØéØv^�ùç¨Üà¸È6€¤Ú‡žé%I´|\8>&GD~5¨ü)°+lJyJYš�sh@À×éW»»Á>މ�‰=JÄÚå•ê•Z`m¨ÿõµÛb3Š[~ôÏMM`Î<ž)Þt‹ÔtNC°®u´ä¨l7óÀüûÀ“­p ®ÆTGœ 5’YYòY…¦‡�ˆþ@íøöÀmiKœÍ3�C虇à÷g¬æ¸qç‰å"áޑ㶨íövöç5Ó [‰w{aª¸³Y•è�Aè6ùŒúŒº0{îj»†IAô¬„Ý· dP²°:q5q5IR@w¹?+ $0à ªbˆ·° @[OÕ±qA¸c¸c 8/ôHõÞ�b÷r‡ƒVÄw½A›d¥A6ÉÈÈšK €ŒCƵšñv‚Ê箵^k5�™À˜n”]ø1**�‘çòu?gnNóh£³¹{îÜ´4±‡úfO<‰¤õ¾j§±fÐÀª­ßZ¿õœÏݧA´ ü+$Ì$̪ö§©¦©™`2^f1a1É�)2Æ÷Â÷J÷ÙìÍVcÍ€Ž%¤ ÒÜO<_fã£|}dR;^äÝ–§ö¤]Ünæ�¹·ÿ¸ÇÔÛrãp&g~`óU»®™Šv+lö¿C[ƒN@SÃßK¾‹«ÊÕp8JÅq®\Íô�V/}…¨lx¼­h^Yy'¶ýþmž™“Éärþ£|¹:SöPÅD‘…{Äålì(vï¸ñB ¥3óŽÃ}lûsÚ¬üìì+¡7�þm+œ†t¹6M©<¯‘mÙJ{XŠ)gv³s‘ÿ=8hécSiS)^¸m�VÓþ€�ª=ßbldl ¶¥|Oùþt%ÀFñ¢€™ ¨AFøà.;�‰­}{Ô`QmXmXl™B‡âYðÁüô˜@‰Ä9¢hâÖL¾Ew„ë­ë­oL»nïºÝÊ`c Ê{&+K…¢BÙF+þ±*Ï*O™§.Õ?‡Zi;ãÕ(ÿˆV%%œ™w­ù·>œ¦€P,ì+95Aï,€ŸVŸVŸ\�eZPß:¿"&(&H¶»»gSšþÑÞ£½ãÄð�ÁÑÁщƒ›UìÜ –¸¨G‰¢Daž©å£¸â'/QW“„ßVˆVßîL�9C*2›s×þ�¨œK6¼Sá°,î²ð¼Ð3Ínt€¤ GæáŠKèw¾Gùþ™º3 Ø™×ç:�Íb<×È`»½�ûy�ÐÌV¶Kè0UÞìQ<¨tïMÐŒáiŸÓ>/ÌÈÅ%t/|ôqQüVvIvI!_-A-Á!F@ÎB%95`Òì¥À\#ÀǦ‹VJ—'’¥�­ˆ­Põ—XƒÔ´yƒì÷•†€š†hÑBBK4»ŸÇpÂRÃR²_f¿´ÂcŸé^IRHRà¶à¶�ÖL‰ü1g+g+I_øÏÃ[ƒXOŠyÐä�šã½ÑVy”š“Xµð¹¾*ÏFÓ¯>º ¸ œ6‰«Ã­Ñ�üN�œÍNg¬g¬kÇÄuhéÊÒ e[2[²‘îf�϶B_�?` zPô ¸Ÿ$¿Ü»!¦�Œío ¹�d‘ӺݙsoÿUÿÇìH"QÚÎ@È|J¤ÐsíH{Ü3¾*]xÐ�ÈÀW;aB/dƒB5k¶hëÈD÷;s‚Ç”e1Ì�‡Ú cMö�åÝ8¿�åØö{µ�ÊœÄ<Æ·l]Ï™Ý>Jª=0‚éq’?VR]ö<ŠÈ‹HP›t¶߫õµxê~‚E¸ßgžÊ¿Õ¸c7cHü„ú’VöÊ�O¸ó×Õ%p° Ûþ×–ØçïV[h D+›gk|w�ýËø02º!)6þÚNÊke7Ò?¾V4»‡mØö»µfʳöûܤOÓ¡÷Uyè×-´‹áwºãæ{M_µ÷“æã©'œo"^q©°@EOaÎ… …bFQvmÁÌIo¡É¥ÛÍ…0¿k4�l®Ìù{÷NeûpÜ^YÇ:F2ˆD(‰!2Ree‡�MVHIDÖ)›��Õ1�2²ŠòÚÄkdˈÊè×s�ßó‹ÓÐu½¿ë}«÷y>ÿ}¯ëþï>Ü÷ý<÷aËËé´¥T3/Ä 9Ùêë´B—bÚÊ/Iò•}¡C_ßR�fçOÑ¥.ÌÖf7ª¸#ðn«}¡¤OcîØnƜﺆ�§h£é“ FN�Y'{'»•ç­ñX§ÚGF}ÉxÖx6áÊ‚þ‚¾`/@mG¨@—  R`JÓðû£¿ ƒgÔÝtÖç‰×¯†ÜZn”eÄ 7¥¼ 2NÇ,Œ¤’,Ñf…öQ@ˆZˆZDÀ´Á´�\xò÷ÔDj"}}óvÛìü¶§�ž>²½^0ÿ}VéŒpOb�>ªYû˜‰Á3|œYòX‹üTÄgSç9ñ׬æUæUˆ�)’™.?ô´´dä´$¶$fÄcó ´š³š“?rNv‰ì’sÈFMþ›–,#‹£Š£Àùäüßw-ŽžÌz/Ä|¬p5]}²¸„u«}!ì¹ýÿþ~Л·]ìC¦nÀ¡AçDÖ˜+{OïAåá]Áá:ˆßÝIÇ!òlï�Ãgþ” »5¨mâðXmWƒ¼]§œ‡ácC• .­HââÆôø›ãÊð<×G"T=b*DPû÷µ´?{¯e!‹ �è�#f]"¯á.¼¢¬Sn8ý¦µ¢MGªEß;Dˆ7jÿ\³CÛ �s„÷Ïqë¸L(f6è…ÿA&%ÄJK¾žsJロ̴jºðrÔ~®¶Pû<&ZÊ-5ëñ6‘ ½¹vò´û“­ßT‹˜Yð3i±� ?J¸û8W(1Ô~þF¼×ŒÏò„ÿÔ½âÊ“òíÖýì‡ÿÊ7©ù´£´ÊpƒYéy±¡±½…¦ÞCØë˜ }/Å0x|C {´EíJ(ÁVë˜äOcXè6»*Îï„íñÚFz^ ‚î6Ð\™ ™ Ù‡÷á܈«Ì’¾4å9å©×cÚcšm¸Ä§º(? ëÙ¯1HÝ= ˆq1ÆÒYHG§£Ñ‰êY4õ¶„ µ$Æ*PÛÛd ±s—{RÉ �8% ÈbÉb9Ii€XV—W—‘³ÈÙðÝAW¾��—�—HR¨ýûˆü¼BŸò0†‰4Ü‘0!É>��ZA ŸMt‹+âÔ(ê½Í½Í ’]êO>õ{ø#TåU嵞r�p�4ä` &�Æ‹ÆS(_¾ÅAÅAµ'n#Ì-Ÿñ.úH!¥�Øktóøì�všºPoJ‡Ñè­ÖèØßûÄ"R—>T'�¹»,\Òˆ[ά™½§ðíjUC‘ˆ'œ“‚¼x_®Ñ…¾¾Fç¾obÒ©HgÃbˆ3ìå¼óÕVs;åÓ�™ÍL#§š±MŽlÄT B¼£q)Ÿröpö8ô€‹�&åí‘·ÅD¸_â+â+j3»Nt�H0€Ox<ÀÄ@·•.ï4„z¬ÍaT3ì´-L„O„«,ú‡{ܲLÜbWJ0PpÞ@eŠ2�¬>ëó@‡Ôçær+©KÂPààwºˆâˆâ€i"µ#µ zà bÁ$¹$¹eªe*Aøáo«DU¢²&š¬¿/µh žÉ(.ÂX¡ºn¨xcu=õy Œ‰^»é³CÄ¡µÇ#‡jqkqû²MöÕlþŸ�÷H $ÅC^lT&¶ø¶ø%lsJƒJƒrï6z#¸Ù®€x~¼�xÿwßô¿LFù�Tp»ðù§]å’Ù½ÕYöÜþ;î„Ô€öòºÇs\+55Æþóp{ŸÊ¡�e© ø£Ž°Ì=8ÇôÃó«9Lºr‰h’ öó·%ù‡Ô~…&X¡#›r¬š0G56RÙ0€,Tëwg6ðâ§=Mi±Ø$ª®IËÇò<ñÿÝ%½ÑÛ•?²Sçkràú_ˆw=¯Œ½Wô�ÂþæØñ®i_-};ª\GÇ­öŠR?�1sݬúDn6å‡ɼ±h‘3‚Î7SµPµ,jõfrÊê‹RÙ»}‰Z•ZuôTÕJÕ zPçõæ"àT €�Î÷jà 5%;#ôbîÿžFéê®ê.bRé�“÷Ûô@UŽçjAü;èM1h9Æw)±¥xVÓWÓ/“–g–g”Z/T�>,Å,Å$*%*‘n;oùmk k YD/{¾o¨ußâ®F€K?b¶yRt#níøáóÚ–µ¿ý, vë€J-`¨‰„�„ý¾`ó {AÚ�PŸUŸÍ|¨–®–n±›ÊÈ‘¦#MºqäåÃÃ�¦ Ín†y�þšqŽuŽ5ö>è9Áh³ë/ž]££Þ«¡]àqc«}PìÿdxŽ( Ù~ýbšQ©ž›º¯ëeëÚ{sça¡/dt|T…ó, ¾òεà×÷A;*f¤{½kôµc=ƒ]fp9·šÛiÀï¡{3ò³{¼°©Òo¤ J@�\ Ò Òq‰F”jÅ>ä'úâÏû>‘CË¡éc:ïtÞÁ»xo1[°|ÈDÓœ!¾X»z· q«W«”{+÷–9>ëh”Ÿ9HQ¶H 4ߟ{£¾.§ã�rÅ ¼·¼÷=€A‰¸²×¯´kĕՕ5{4{ôö¹Õ˜oã¾Ç}¯‹Þþ}EÚ»¸^Úůå©0ôxù×M×o‹xÄ|Г+ì �¹å”ë”+,yi w½û‡ªHªH²K²i²i ±�–¾ö{í·ÔT¿[þžü½þŠ�$<63ì„êÑúÐú€ó©‰3Ÿò�Ÿv¾Õˆ\4Ÿµºò„ïnÃVû ØsûgºKõWle:{êD),×bÄ™‰WœÌ[L’ï�ã©d㪠x¢â¼Ø-©zNGण öϵ©Ç’¾Év§§4ï×ÒŽã7·¥ä;TðºÝ&UØŠãÛàMÀy8ûbÔþžæ8éBí´Çh„#áüAÁ¸n™î™¹xÉ ë*º<ôûu{œ˜òv¨Aígk+ÚÕ Vùu˯Ìïàå0•æX0±òÅ­ñѰâ0 Žp>ÓÞžÜR µß§Q”¾æžÛÙƒˆìÃe•˜9â—ðÒ䮚 Kù3ênÂwœ»ŒYÿ ¨AíŸlCQ3luB—a¯ÎµžîÞæa/¡VŸ@Ñ5Â#Ë8m#毷Øîm¦5¨ý �ñµ#ZɗЄ饋Bf~“¶æb€>§÷:{âÁ톥‰nG•¸ÖDC)J µ¿«…8>d BÝ>vv–C"ewæ`H°$NTŠÖö‡ñÒÖ’/5•˜®â†·v@ j@;°-6b­['ðϾeõ˜ê“¾U2Ò;öé†Ýp 85áCîœ=®x¯ÐjPû»Ú™Út©Ž—æÅÏWœð ïÈ–ä7 ¥)1šL[<ÓŠç}{ù®99Ôþ¹&n\z™Rô9gªzF#ÞÔòÒî‹ex8µä cÈ1målFë‡ýñZÝŒ¡öû´î®köÂj+“õo{Æ_ÛX íÙñ‚é¹!�óPIÙe mYüYZñöT’_±Á÷¨ÁÃ{C¸ŸÎ⺚77)Z·`ŸÓ^¶ m&殎œiZíàl�ŠÞêœ6Àa'‘ÀÚý3‡ê˜<¢ìÛÛ¾ËîÚí5ë}4åÎÇ#ö–µ^ÓLšï3°ò\‰%¡×ýÊ÷*¾~Në¯tãê{³õÁyµnwɦ»[�Ó¦#–¶Y2NÖalÃeõ‚g[A“ÄÇÖŽ­y2<ò³9!ÃìÐó¥@D "î”Â…+¶õ݃.€5o€¬´àÇ%€¡Ç?wäuÍÑÂÑ¢êÈ“j2dêèlˆ�2ˆ¨îH4Æ…â×D Ñžežå%@©U©#l¡4]&@!@AÙCÙ³Šð+ü6×®'’骊¿Ï üuÒÎX@e/FüíØS†@‚-"v¬yZsø3˜ìbáu€Î9º~º~æý«Çt³fÈD[^[ÞaûÆ�*š±2NÉMÉ9 q ֊׊[l¤½ÙÍ}·¢<¯

¡)0óiGq–‰Ïh?¡ŽAý3r²­Îi±çöÏô[þ�›|ÕÔ…¾ ¶xY³Ñýý’pó9�Šóô%"“xt—O²ð1ïÛióêIÔþ}­ÐT½¶ÅD圗(Y‹Ñéá©6½›§=�Zi,<ûÙ‘ZE �l/¡µ_¡=2»NQÍåBÉâ0Ο2g`g�.Ðã:R¯¼•wþõǦõÔFWR¨ýÞÍ/lÒ&.\K÷èí =?å”ô'Ìr…'‚ýô*ß)( œ_�좉mºoµ_;Kw4?Å·<®Q¹–ÿÆÍ"Ö%�êþB7ª×|œ¹öç-2ePûÿ¨yüjPûÙÚ}²sÓõËýŒÍqŒ³Ì>  E¿v/íMW‚pk1S¹Ç¸!™BÑ >¦w¾¸¿BxBà�g±£“c걓{¶ÚxðiŒwÉfùï¯`;ȺQš-èáÕxPRnªSª“—ÆÑ®ý,];Ï·,ú~‰î Ý™q—ù–ù–7A€ /²ã"“qQ€ä” /ÆÍk󺠙ŜɜI½GÆ\X;ÈüÅøm¢_¼ £¶+f‰€í R»R;ºðöî;œÊþา²²I²WöŽDv¶ìMVf(iØÊŒ¨‘!”B¶“Ç–hXÙίû:Ý¿8%]×ïú=OOÏ9¯ÿÞ—ï_®óýÜ·û®Å©Å¡§&ã…9ÅÅ×Ôt‹Ó…í ÓÓ4×;Öççšxå;¤[÷YÏ¥–'"ðÃR+žvmÀ)¿!œÛ›£L X¾§@¤@ûZáÖ,ëãó¿âî统‡S \ \"Ž"k}+\$\ä.ÙGšEš%Û°UPÂv•T‹ µµäYW]÷i%w‘l…¶Ð›®=Þ;>œuÅ6Iú‡¨˜oŽÙÚIY˜-î908d®CÀ³ÆäKãÕä†ã²×žN{±^Î@6õƒY—Ð�g]ô�=Áû,’3égRô÷qÎ Ò8¦á—¿GiFiF/æ$î$Ni  Ñw­$沸!ñÖÓfô „fóF�×½3½³ÝÛ�ÂgæÕ@8ÚÏÛ@ ©/\ Â?¯Õ½ ä¤ä$à¨ÁÕào§q2@íív¥v¥¬*¬*é~ò©¦ª¦ªshZû9�–—ºJh€4]…¤=†÷ žC["�ÈúK�¿1Φ jPÄÙB ¡+'?)`,ÁÅñOÇ?­PC‹¡žÍÈpٌی¿÷R£¤ôÐÙ*-h;»ÀõuŽ8ޏÿîí¯Ïf¹.;ÛÚä>£-urã}°ên³.ä½ý;=géßÖÆ¬èB?´á2xú½ã=Ô¤wØMV½“Ã1ÙûÀcÒ M›—ØÑÕþ}ÍL—0¼Æ1Ûy1À&šÒqÎKâC=§–”›3ø…Þâ4œœ".—N£ÚïÕ¼¸à·ð+)…qR&™™Ìf†Ó0l’yBTžäâieÉêEõ\x[„j¿W«1†{îôŸÚ÷¹aC·]Ÿ•¿LS€ÄçÒsæ+¬­£¦X�”ÔŽœïEµ?§åtÏÚ¸|~ö<¯ù”vx¢Ð5¨I„«_™@¶|¥æ^õ7SWTû÷µ’—1kZt)aj°@¢ÚñÁî°;f˜³uüX~£æ Ô°´Túâ|.c ªýn-2,V27�Mù�­nÕ¸¼%{&W빌²'Èbz4•�!n¢Zãh¨öëí ]ǰ4G_¬t�Yû„C%�!�Q6U6•`la¾³ŒêŒê…®ûb?L7ø® ` EÀO‚¾OGÐh29ùÛ<†Aô§¦€×6ÀÉn!n!œ=xÑ«FFŒ¿ÂâªÅUÛF�FÉdC‡FºGºµG>  „³lÕØ¶Ýâ=€KöØ—¸Ÿn“!öÓœƛ~Ás4Ò¬)Ñ1w›3!ïm‡TìJÞ¢�M�—ɹøÞ£�°?¹ /ž¶JµÀÅwˆÈ/P}izêáS×Ô×4xZYGºÝF/Ï…ûgãÆBPíŸÙ®²2¾Ó† WWŒ:ËÂx]Ö?úÈFé|êKþ3£¢uN×=÷Æ«¢Ú¿¯É<ígyÓkµVÈ#q�ÕIJI‘6HNœö}ðb ú‰ åsK0ŽS¨†j@ƒ†ôä5(:TÒx.™^§”ì �«;A·¬~Ú*Ãü†©ÁãÔ 7è‹Ø¨†jÿ�&Ϭµw.eµAÑžœfºzSà¬Q ë”øºÜÑî…7NÌV’Æ ¡ÚŸÝz ²Iæ^Û'â’ÁsÆÒ;]’ײ˜’ÄDÙËÙoi’AíÈ„(Ô¡ªýSÛôH’ŸŒ¯Û˜»Š°ìþt’çÏÄkÐjû»eñï^Wo_Z¸þáAßE:v,TCµÿG£M¹TR�ÛÁ]ß;‰«GÀ¾ÿv)ÑzÆ$£žaF[ÄÉÃôvÏiP Õ€&6ë´LZQ¬…oÅ×Þh[ãëñôò¬WTËÊÈHcŸ¿‚§”¾n®æn³Þ_ÖèlWÃ쇌º•$hºx6‚kÆÓ“ 'Æc¢Á3 †W{¬¾×Ül¾n›l›œ'  Ðg,õ֔èmÑQóÌŽ! hÃ<ÃüJÆÆ—Û�ãÈ{P+™9ÕÄC»X­!!@¯O¯Os àÝÀ»�DÃj]Lçø9™0Wjƒ2€£$‚e¾åq3O„²Òsêêþvd ëß,I ¿×ãÌNNNKœÔY*îÇØ�»{®ª˜ž˜ÞM7d9µ‘S‘S�Ï‹' g!g•±¶bVÚNp³Ã¸È¸ùL-q(vâÎ>¼§øaLJÔv;S#Ï�rÌç<4?ÅO#Â<&(‡±"Ôïvßç¦ýh?~7ú‘g«§C~p�ð�ÏÔsW ʼn¥¨­ÐY`JçTÙwÛÛ�¾¬�%lÇ�/…l0z«�¾ ÎF\S�+:zjÇr¨wPÀ4.VÈÁïMMŒ§+ä(älžp2U¨ž9²N˜¾êìuõÂFðˆ—ÁE@YYî?Ù? qI›t.ܩĞ B¸XcK�ÕÜWx¡òB%¼p°á`ÃSb˜¨ÆV°S°¯¯“ññ¥�%®$®òžû9fl±)*@81†®áUkfÛѱ¸°j5Ì¥oâ˜Fe/°Ö)GÒFÒwË­E\s&º¯.4¸ Þ2µ'd·35òÞþ»þ�Ùio°ä£vª=´ž#÷}6dÛcî™sUè¸r_ èÀÔh9âeJ¤/á‚j¨ö¿6Mö'­VNÖ&ØëïO¼¸Èó±n‚:,Zbm—ñ½-¬Ynõ²‚¹Yª¡ÚßÙôcÏ–ÒP{JWìÕÈøë÷8/H Q´]Ù‡[…ÇêOu¿F>2 Õ~¯/O�Ë ~ÇØÝLëþYJõŸÉ ®ó}¡ŠjM"+>Ê“á×T'œQí÷j0¨�βn„¡G)퇬¼ˆ:4JêàØq5oüWL'ËŽ /'a¨ÏçªI¢£ªý¯-vÁ½ê¾¡¹\†�ÉョÚbC (©¤y«ºH2!ùNo}V0/A5TûÝZ‰ÿ)6÷'·>î—Ýï§ôìükbªÿ°wçÑT­}Ç��yŽYtQRf#‰(¤2Ï™§“$sDˆJ‰!2‡DˆˆpÂAÆL™çºDo{�w¿qRZë¾ë^u·Ïßµžÿìß³Ÿ}¶Ò7n6jÚ*íÕÊÆÊ9ûƒ›¸Tº’YÄÄÏaÏ…ÄR$ô¯Y5Øú3ß±‹x¼Ù\û]£¹éê—÷Ù³3ÛÎRHõiØäᄪ¡ý]—i­ÐûdoGn0Ú¿ñ\ˆœÆ˜ÿ!ñj^BwsðÜ|‰ðfs¡œ/kú\Ö£`.sÅv:-æ; ½Ã¨A�|}5}5—ºOòƒ«Ëa§íßâöãö‹ÙÎgÆg†¹\$%£› hÿ°K¦bXºг÷¾(Æ\Hí%Ð-3~ ~‰huý(w+“D�fhcÈKïØÆÑ!c+\r#@Ü›¸7ˆÀ�ŽI¸ÁhPïkÒ¤/o*Þ”hNkÿ¾ÖŠÖ ½†‚«¾ä\Èøœ�QŸ™€ƒg�‘¼órèÇ[AI³_y�f.lk´,ÑVÐV”æÌÔ­˜~û3 q qKÉÉ"Z±]=•6˜6HZ¬ÝéYçY‡À]Ëòþz"pyKfCæÿ~WÓí¿ïZÈ©¥ÿ)Ât(ïSʉñüBÖÍæBØ{ûÿ}ÐwO‹äRšQÐþ>·¬±x5¹ ²·]€ñˆáv´ÑrˆÖñ Ih½“ ·ƒÔ€6&1RÙ^CÄ©MÑûô‹Óê©<º‘ùµ)÷® Œª–À³=žŠRtJªo‡Ú¿¯%¿{{9=:ߜ΂9íyg®‡¼êÄ�š“QïÑ%Íú² &¾¡Â{² öÏ5§RÇh·Lþ™]úîc*i5Æ¡oˆe…YiÈ"V3OžZ:+?y£ oüŒ°—G¹€…·ÙT Ó+@@=h³½�÷e�b½¾WÚmتØ×bÕq•»Œ‚È?¸¸XàøÌU€ûñ=+Ý·táºðr›n¢n¢l@ýëe@?àÕeЍðÀ'³dF ýe�AÄpÐp�¾á«‡Ì'=Aêöbi ’ãeÅW„È�OdÖ…ÄCÄCä/úÃúÃ>·Ï(€„˵SµSǫǫ5Ÿ]´ÿ¾‚‚"•òM4–1u=} 0ôÇ𘊵a£Àðo¸Š{•±‘[ò«´-†Û'ßȱ˱å´V(kiûx‚x‚$‰ª+ª+ïY±9Øò÷ñ÷ñíGss’³®©±ž” à ËXïX/¸ŸBé0ûéšaGGëî™ClÙT”S’§6{FÇÞÛý®%Ô~Ÿ–�¶á\ UHí’{·4%Æ1ÐÞô§A$zL_WZ�Þ÷ÍáÜ#îÅPû5›dL Îj‰s�;OÄÉR|ÿ¨¶3�‡Fž§JKÒwЕx¬ÓaúlbÔ~ŸÖŠrò'òbŠöågw–äO S&(OnSÀ Y”Ó+›ëˆ–+³„Ô¶Z»®^¥’Õ¥`/\5ù�4ÙZ²"ZˉúÝGûzØrP‹&¹§øî$+ Ô ö½¦Ùߘ…«»zÑ•²ÐÔ,$Êw�Aßë/¹¥ŒÞ¨¼´«p�˜nÙöÉU74Ô~ÍÆJ°’ôêêe@ÁÛm•�2úÀªË2Ÿ¢YzÛÝî(õE–6ÿ™P5¨ýÕF5bMOÄÎs0wq Ésë­Lô‘Ö\üÝÑ0a¤)b�ê‘ÐùHÙ»ïK‰¡¶µZ:Œ‘NœuåÁ}t‡ok‹G椎ҽ3“ oõ¹Âœ¾Íýá"‹Ô¶V³¶d.ŸÃ?bl“?ò 5�NG|øƒºX�««+}|œŒ¸…ÑDÌÚ ö÷´bjz*�÷¤‘„7X¬¨p/ÇUÊž &žóåË»‚¢ñUM?#ÌÄó &žGÖô þgöÜžH‹Œ; TÑ<Øg Î6mí/Ý® +‚ËF õ8nvÖ€ý-1uŸGR!mh×§mL«®Ýº‡Ef8¶5ŠŠûØ•tä}Ís"äïJl|ÖÀ9.ÕéiÂG(ž9¸ã£Òfg O¾¬y&²žM…íðíµbkAA$Þ CßP½P½aïÏÈÁÙ³äq­‰ßºu÷ÖÝô“ÃÃlù€'ù‚§û‚�”×i£ðë‘ÒCõй $<]]‘YÇDø¶ÉtÐu*UÛ©›9ÚÜ(e•€d€d@Z@©T©TFàÑÈvÖú¬uœYœÙµ…åôï{Óü¦9UÓücû™’ï·FŽ©bã×—m‡aÀ ›Þ iPqï§üÊÇ­è„ )awWÓîI¤[€÷ÒÏ@* ’¨üèýèwbcÛ§_®_^­� s†9‹?_kˆw½[cÎB�n�îÿ}oú¿÷Dû üsKv¹ó&_â‘çÚì¬{oÿ߄ԀÖì]�ã  ¡ÁÐmwö{Þº(› ÚžÆ ;d‘SÁaÙžµ�:j[¿-Éæ¤žL¥úcÙózmô )º>QŽ{Ò%fõ_ç°3ÎãùYzãÔÕA jµYöHÆÜ»B•{Sþ�$šôˆ?ª©vûÓ‹&ëÍuÁ¼Ôúµ;—¦[Q§ÒB j¿BÓ–£¶}íÝ·¿Ý§ƒò´²‚ó^FSéÒr¾°þÏtG”P¥|5¢su‡Ô¶Z#{Ť9D­ÀL5=9 눴dõ½ÃqU—àüB÷ò‚œ¦ƒ=�éXh꡵_¡ –èNMrÛ(ñ:„q|ÌõþßíªŒo©-‹êç”9:8�f÷< U±gEmÊMeõpåþušHøh¯l6+Êÿ²Æ=x½’L ›µËZ�D U1?ñÒ—¿�`«ÌÙ ,T5^ßZ|²ø[ÍQÍQóPÊ[ Pˆt:é*IzL»š¬0ʲ.¨‚f"f]f],äq´Î´]¬ÁÊ`%Á¸ª°³%'ÍÀ¯Æ¯Öw`ðÒàevʘ+¨Ýá„â EææžËíe¨ïkC·¡‹‰XüÌ;ýÒùa;†=[·›X Æ ¡¦¥åîv®c_åYIž”h‰H $ö>¸®“>?ÃgÖgv!ÈĈ¤nz¯¯Ý&p3W5Wu|z-Zùõ–™aðœðœ°ç ‚QÖÁ�u—i)yOéåzw?�sPìßd¨W( e ¶K6�'2ö<áïqQygÆ�*¬Q^ßï¸H¶=}îï\ n<}2­ÙU6UL¡ôîâÀÙ—ý›íí§_Ö,¾Ä2Ôü�•ëkÅÇ�†LtÔ@ž&ý&ýBȲeõ²þš¶ñ`›oå¨å¨Ý̮ή; p ¼`Ÿìê¤ WßXïlÅ�Öô–I˜&%�_g2Ðëá…0¿²šÖŒÅ(°ì‡ßêàêãêc^i– µ‹q”™©›©§9§9›ó´}ß‚ê‚*ÇñÛT?fU5¢tUÆèK“å|Ĉ1¨ý!ùós”k„ÁWÒÖö Na€1ü’Ì’LzR3;»¬‰ŸÑ²Ð²�{¨OµOõìÕoÔ|Q>z.0Ü6ÜÖ\j­’õš²ÃÔÔÀý„bÂì§‹Wmó§"?ØL;\(ç‹©Ùlн··Ò·TÅV¤Ï]%Nf¿+ÅD°ìjÓ`™p‹t›zŽzÁîÛw/î°§èÔDÂRò  öϵ‰2þ Nš:+iFqQJgÉ9%÷ç·ØSÉæ¡aþ]A¾xœvÍPû{šËD¤;¥+·ù ÇýëðG¹£²8EFZ3÷d:Ée´Ù¥®:{ÃbƒH[ µ­Ö–õ*ærª{”mnÁB2ŸeÚ2²òÝ]á£ëe…1 rÖé±$Ühxµß§‘=Þ5³³S!² ‡Uzê@Àý&Ë Aæâ:}fÊü—^0¤Sêt`.Ô öO¶þÛSìdUÂgj©z К$áÞÎÒÇëî>Ì0é(hü¡Å×ÚjPûð"Cé1 BÆ&wå´”žÎ‡ NßÕÄXN?{à)wŒgE<Œ¬jPû»Z¨Ëcö�‚›‡´§9¤¹ÒúBoÈÀn'ê²<¾w!”põÌÔêNºjPšIr¥CÿjÏô'b+ÔüËä²í5 ¿âÙtrÌ�Ô-cTåNž)Ô öw5­ÊÙÖ&›ÔüúeWܼ[‡‹Ls^ '«ô3XNÚ˜Ö ßÛ3.Ɔjÿ\“²xvŽ\¼ž3ɵtêÔ=+û3\vEÛ`•¤ô#Ñ#zª ˆÇ�·¡=- öû´ŽöËÎ"ËãÕó�£Ã޶ýÜüÈFÆúÓ»Ýú ‘Äç¤õãNÓHµ$þŠ Î­n�xºëÕ4ì´‡Ík” ¢ûœöœ-Ík‚]‘S¨O­œ-·£6;§ :¿s»ÀÊC-‰óAUL�ž’wñ¶üátùæ b/u±€­›’·}Y'~¶ËÔÁg9n;ŒÎhƒû*BŸÓ¾µ‰ûì(;n‹….‹¡ Øìœ¶àË¿ÌõÊDªU°0­5€ŧ2H�曯u_ë>ˆú¸—y�øÅ¼Ð§oÕù×ùGÝiB5¡d™](@s  2#‰[[ FG—‚±‹Ne$7˜€L@¢UŸ÷Ð\"¦M¾r ¥„´ïÀXXrÄ©�}¹[h{Ê3)3l Ú—ŠgšÌ¨üäÑñÞt�°N¯áGØö{µJ½uÔÕn Š…ÚUí–“ìüEš�]®—Ÿ³^eo0 ȃUÛßQ‰mÿœ–Õ>m¾ñ±Å]¿èÉwöýñà8Á¨} ú!Pv�"H†|©¦4ŸZ–½�¶ýûZÁ‹ˆe-Æ” U”YÕHìáö ›0üéj_~��œ9U-å®hW"ÝÍy÷ÐÁ&w“Œ˜UD§æ1„ý­lûõv�ñuŸ$WW¤d5¬eŽÒïþôÜ æžéÎ]%öQ˜¤BNqªˆv¢~«=Sh#w ¡)ƒ‚g¬‰˜Øû¦âšRº‹tŒ-¢f‚ÛO{ª§žÁ c­hÂ)­2‡&º}üΞIøû{& •[:Z'wj­ŽÉvˆR¬ÞjÏôx^ÁÂf(Q¶ƒ˜xS6r‡ƒ ï>΃d\£¬¢¬úð| –��§*åߺZqµâDSnCn¹ à‰üc@� Sc×âi Àž šhï&­ñAs P èr’ËáÔ�Ü �ª0ô~0;M®šIÖ¨Šñ�·4·4VuÀÊòʲKŠcè�ÆÂ3„<ÏyžCÌ·þØCÒ‡¤8~nmèuÀ_k-úˆælÅG›ŽÖ¼ô–“<’]aô•.#%= €ýð¸Å¸Eé>‹êrGBñ_!P&PVÃÒÓÜÓ,õÓ^dj@j€ng[×d×äPìFÄ›ù ˜#Y-Y-ÁyJ¢BÏ“·®ÞÚS�€YzIö”ðˆ7Þ[í™0g{»%|[)ߣ~Èšã‹d„ìu¤œêŸÜúæ-„Œá†„øÂ¢–!÷sU^X<(±ƒwÐi¥K·ÛøÌ_Ê ŒD`Ûß³]cgÓ»ÙL̂ԡK7Ô[QAÕ]È3=ê ÁaàHµuŒÓÎHrµlû÷5©’öàƒÈHã凼bQìúFuŠ þ²¢ oæ#p5žÒàs_Dmç²À6lZC`gv­¢e)½Ó¢A }�82ÈW¶š-„qIÍÖ8íl¼Á©ÇpÿAÜùm؆mÿ‹&Ϫµs6åS­¢95ýdÅf¿é3é( ÑY¹Nž,ñS¤OI)#z±íŸÝÞ I2vÍv�›Ç�"¥ZϺÓz>y9�9Qäg1ç Mª†sT‚4ªy؆m×6ÙŸè!åf?ä ,$C{g×óg¢•8UÝí2Ä·bÔZW 1ã9]ÞŒœ؆mÿ‹Æ�r¹ â~’¥ÃI—ă�·uÚ¤B²•´ F&�ÓiÍ!º{Ï=Sdø`‰mØ4‘ië%ʧùZÄÆ‡Z^šUF¸9–äaîz¹F2ŠîkäŸå¨�iÌŸ%vÞj×[òùšW6ã ßñåF¤B ØifiÐ÷ܹ/L¸(—= â§¿U%R%B[|íõ Æ€ j2,´uU._àhDKCª/ƒn©¾„¾„s»”]ãdE-°¸�B³èÙÑøJo.¼î: Ȍό§;’’«Ï­q]L€$@¼&¼&’¦Ü-l7ÅnŠÉŠž¶Ÿs$æ…‰MŒ›ÑbQÁR‘ýh’p â²ZуºÐ¯èºÀ¹FêëYfÓØbVÞü šG4�z[zˆzˆÖF0! ‘8HœÛN—"Ù#ÙoíßH£|3NÀ²Q²QÌû¶r]M}æì•D¼¾DÕS©Á[ÝÇ�šsOðU ´¡¶zY|øåÇýÊv$ìÓFý÷Uú ÝæÛÛ˜ÖàÏ÷ííªÒ9+s½‘ê;÷1D¾C�|ç-rn)¡¹é xqæV³ýìó5kç6“ãQïÀDZºç[wœ*¨ë ð¿ªÛ1Ñáí=Ìcºö-`Ê�J””·# oá{ @ñ}¼.REn�5Ú‡!-&�KŽ Š Š+ù-ɸIFÐ�èWGA{'“ÑP,ƒ(ÚlœZ@‚ÒgÕ€¬�¬�¼&Pð~¿L¿Ì:�:�Ð2·;šr4eV´WàçÊrª§dÃ*6h±üö–=�hÁüøáÊÖâB”k_%­›á>bØ™™éØ-‰›_< ÿ„9„9.}ÉNÉNת1Qrl›ß6㋼^˜P˜ts£GÔ›]2HÀ¯Í]›ûó]†Ä_îѽð—íÈ!½p4"\¯ Á·Õ} ÌÙ~ÊÍ&¸mÞC|5Ÿ¨Í™ÉAÀ‹YÝ Ûþ9mIOÌùÀ]C¤Uz K¬dxÒ„CíºA¸©•>k_ޏVTÔ !.înlöÿg;~ÆÕ°x¢1„£Ú=˜*\ øEMB�ÛkÈ��Å÷Àj˜„oá!¶aÛ_Õ²°‡÷4g+XïPtS,K›š\’¯óŸ½c�·ý ¢�ݧœ0Ë Û°íïÚz)ø²Oìš¡ïjžgÒ£*N1³þ+ÞkÜ�4©2ì+fá·T�,�車¤I�€Ÿm'¾œÛ ý%ø™F_÷>ʦÑTrûÑg[5#K[àß“|9cçHêEp¡QÙð5ÏÆÌž*G1ße³œKLë ^XÌt1–ÈäqâèÚÝЗê"~®²;:ìµÚ¾éo<…¨ìΗò3�'Öb¾óûA˜—†ù¹ó\xk…@!¾�®e_·ß¥ö'++[� K?_ƒ´ÜL �ô&Zñ�¨W@vR…¾ ·¾~Ä~ÄQZÁ>ÅOÓ³�M˾¥¨§¨gškáhá¸Ë P"ƒ8 óhŽ8¡¦öîI~h�œ’+ ú¬'7žÜPç¸ý~ï1�\œ²3(OäÒI4ý·Å'˜�®®_]i0414UGW(ƒJÄ$Æ$–-•-Eã…ÄüØq·ãn:ÖL—k¢ó À©shqÐ|Ò‘^4¯{§O �*Ô~ ?™üò{Õzö÷쯼�Ã]éa|ïW„Þ½MHB#O#¿÷ ¦{utè¸Ù46A÷C÷ Tn„sc³+z­Âˆµˆ5Ì�Gô¾ÃUõó Ë{W[àG·Úy`þ~ÈÙø¿ðÇ{£:á¨'ýiÑ}EøÆÝ0ÁJë1ž\)cÜ�;ô΃ÿû;�(äµèûB÷hó[Æx´;X¶ší矯1ðÙìŽñÃ(Lw6ò6!N”P€ºsF‘£H ïw˵†Ö>7M…¿uÁó‚'²‰_Ÿ_?bp©Þš Ðê  4f”)(ã\OAƒ,ëd‚Ò£e*d*´ã';NW€ägfS@‹v+h¯ôzSæšsJ+J+íP@Óͦ›TæÞ‘ }=lÆlÆšâšâ§]È~ŒR’R²7g7ÑÏ÷s9ñÕRºÐöÇŠ'ÜF»lɾ{—º]¤aÒWS!Þ·[æŽÚ}}bkãâ+~…‘‘& ^/:±„©?O9\9|lÀ<ƒQ�Qá‰íFõ¤›i,¤  Àyâü²ó8ˆ"‘Ä©OËí•§t¥žßjç�9Ûû è‘ Ù‡“XÓ}kg”ÍÛ'‹ZL° ÛþmUxD8.è½Ä™·OSµY£`¹œ¯Ô@ÒV’‰ÈEšP‹¤!òÛ°í÷os ¬ôÉðmÏÓå*a‡˜¡ÑG>å3µ2_#Û�s-¸þPl[Ò#«BlûkÚ´üôôkÈ`µWÓ'Ö34©f5Eqœœ·¥§å�®N¼èüÄÓÉ�± Û~ÔVˆÚÍ/¾3ÝóÒœNã¦ò„1Þ’ŠSÛ”<¹â`_ OƒôŒÈw’ïÔ¢™°x¬aŽ|”ñ–˜… µ›‰q9äø$ù$ÃÏ"ž)q¯ƒÎîŠ:uòPС • V¹KH(‘é¹ûs7¯įf„cÑ$ð{¯Õ¢•:¦´xï€Ûé|u>.ÀÊPðƒ¢ ¨Š„ˆP祎s¿‚W„W¤êšógi˜&{åÉåɵôûvDÛEÛ]÷߈gÇf·EêÆ¯Œ_až©åCØ"GoR•å*÷ªnu¦ÆÜ!e��uÔœ‰VJ%éÅW8,‹÷Q°Û>Ó5Á| ›¸WúÙ'ÛÀï|�@èûgjݔצÂ4SÖJøáK9žï¶šíòÏ×8Ro–Áò1“ d#µ(�º9¾( µˆ»ˆ«Õu‡çMc‰Ñ·Æ×Æ×RÓÜQۀ„|K@v:à™Ùê €.ô1Zu’:¿"??c¶ wŸ½raž½gáB9Îz ¿Îq±±d´[|ö�üOœEN¥N¥cc/ ¦xL7N7n¡gÿçœñ‰H?É õÑf2ØÏ�‘¡ñNÀÙ:ó “x¿ây¡£àh WõWõ0lb÷&Õîö/á³ã[I¯À4ÃôLö™,ݲGÕjÕ*oÝF6ˆÍ’]ÎMyÃyÃà ”�-C3C3 ÃÌ3'.¨® (pb ë¹,!5{o<S­ÌaÎaúsxsys?›¢–RRZZYZÅœøÁd²ìï£õc{ƒZ±UC^ŒH,%†üwî"Ñ˦º¶½(¡ùÊ¥âmãš# dQŽIŽ©áŠë»G˾?£b´bTîèþ¾Ÿº³ºåÒåÒ}.5åÝ*Ý*r³›%n¥ö'îYYŒš'׿޵�UÏû$y�öxÑçlÍ™âR†�ö…Ðgûýý ßá—+¹gCŽŒ¸¦1$yqé°—<ÀòÂàÅîë9À,ÒÂ%(®;*}l`Úñ©ºÞç”ÊN=ŠÞçªÏ�Êá0€á¿ÈN çŸV« zàþXd¿Ä)\°ý÷ZÖè«à¼„b…9uÜœ,óÃq½æõçZñïÚ+þ4’i3õ‹:|lÿ^sªtHp½'Ì7ÈÈí�Jîs“H¼.!r¢Øõ{ZÚ+ŽrˆÓÙÂK`Û]íC]kR¼Œ<¯zŸÈ5®áûNÊä|wìÞÕˆXYóÒ0êÆÊâ°)qDá�m÷7<.+n›“Aoo?U×V~i78Ì$þw¾I- —š Wc¦2›;ö^blŠ«ÈÒoì›ïäÓc^…;LʱávÀIkw¼¢æËš~ž­¤n¿Dwža3‚)”ã„vå(OW"#"#ܘœÝ³9é“ó>|kkkðyÕ¾ª}€@”T%À‹�ØxËUTî!R]˜¦J‰Ù;è;è!³Œ3UB ïZ,a\9$Èeý·žf€fÓfÓ2FÀ|~îaÆ*J5//å¬âYE[džßWÛ_Ûï[—Ëùc�Å5¿Æƒü+H£Tn¹ÃHwS…±ÒEXfC—¿:93Ui 0Mæã£g@H§´jù‘ˆHa¾¾?Ûèˆb÷4ìi@B„öÝßw¿¾™yùVÄœiL)L)ôgthJ~*Y}”ñʼn?*wzFGÿÞ'Y~i)u¥&]7qI¸ôf9­~>«ð�šÓçDâž±ÌÆúö]hûgô‚èySwóÃGd™ÉyE¹¥¼všíÚ/kø«·šóñ;€î´ÂfÚš(B5SC(#öS S Ãt’Z%'j»ÒÜ¿ÅúˆõÑ!¼PÜP\íP¦�€a Í„Úk”õ�ÎÔaV¢8&×Õ¿˜N[;6d�²ÁWR…⿘b‡užã¹tfp=êzÔ­z›,›lއ J\ó½÷÷Þópóp ¼¿kÿ}NSNS:?ö!©Ü7¦ ±‚TeyüHª(®}o6÷ UßWç¸yÒª—ÃEÃEÕž‰([=’€£²×lÃîµüy±"°‰%'u~¦úôàÃáëqòæù·I8ÐÏ\ =½µ®á‚ªO¨d`‚C;�5 ß%vÊç®äµžöË�{Ìi×/(Ï3cuˆ«.À•ß=Š·Íû€âÛŸ58¶:›SÜsj)_†]ÜP¤1èIkæËK®Clý±ILSo27]kÚÿº]•ö«´¦WÛ`")ÐgÆ :Ÿân¬öÍ�bA¡«CõÌ�$c;í´WTÿeMÎÚVš�a¬è–ð6óCá~åüE¥vfbfb„. Oø=ìƒÿoóo)e*e’3ØmØmäŒÂKI2m@œx�±n'`Ú3Fil¶®%·=-;-›à~Œ¹I-ÂEAÐaE÷XW’Bëi›à#¼£½.½®è€"D2''‰�²�»À»À{©íRÛ‘#iæßGšEš5hzLðÇ‹÷e—½o<„<¨×‡Ì‘6>J¶ò]%ùdüÕ+¥Î†«€(OOZOÚgÞk]˜,T?£„«„+áiÒXÒXït®)ñúñú™y6|ù*<ÛlãÂV$8(s…A…ú>è�x«ÐŽ–à$\Ú†…Þa;탢ÿ&C«|i$}è…,H:¾‰‡f€»³]Ý­ycÒ¨9#ÿÓÂl( ·yçZ`û}ÐÏ+ÓìŸHöeåöw[c®Pwì4Û _ÖÔn•Ómk†NDi³Æã( ”k (æAT7¨n0œR#b6öi*¹Îóè[p{¸}8ÁÆøÆ¸µ"úYIpep!a®â3 漢:5G0JuSYyY9§°Ò¤–6³; O{¥$ŠÇó„>$V-Î.må:„Â1öЋߋ?'>ŽRªpÕçªõ0õ°#†Ùþï‹ÈŠÈj¦–‰ø±Ž‹­óßH¤ ‡G¸–Hj'y;Vú Ç-®|ÕFã5ËW �mOK»)ÐÕz—Úú3®\U[–Z–J,ŒnÈk´m´Íõ%Ã#I5Iµýç7“êÛJr0,+ï$§&Ú¿Þá7oèYІ}„ÎÙz=ãN|¾Ó>(úl僚TÅöĈ½^ŒÈf-I’oõ2´ÍâN !Ö©|ÌS%œ7oû2Ùìï׉ÃÈ..Û¿×ÞVKÜqÒy«ŸYG>�ݤäHÌ"q¤pò¥ ©LQ;FÀ@ˆßñü ‚íŸi—ÞÂÜH.³CÆ™S#¨îNË`>9«;Ÿ"ÝOdWuàAå§uoŒ¤—`Ûnk«†5l ê—†N@c0®Ý£)»gMÃÀ}{�›b˜ƒV`œ¥Å�þÎõ¶2°ý>�¨lòÐw³¼¼¿Ó9mÈEV\þµL]ñ‹!õ´wp½<è|cÍŽ‡¬œßÚU)ŽëI{°~úû3[ŸÕd\ гÛ|¯"¸ý9-»˜€}OñR`þž9Áý¹í;�Ó6~Yƒ“¸áÓÞ(t#Y›E£ŒfOh¡<úôºáuC-ìi:ù¼X¿?=gú·²ª³ªIp´àZðhÀ9ˆ7@= á*ÎyF `�¥^FºœÃô…HC@V@–¤Qa˜Ç¨‡²÷㺊Ú+[¤=GM-Å*nÐD5D54>žüx’¬¦”e63V>Vooô¦þâÆ÷­s®sf�$ïþ1îEŠò[€ì¤÷Øqþp_¤ò�ƒ5Žûêm¾ # Gàs"§`‰°DM襼~ì Ë?n·IòD¸#ܵðÐ)ìƒâCñÉÙ�Þ.F,F0FmsØêØ4àöšÝšjž*‰�óôGqž…-çÄ ŽQàžÆB‚�ÎiÑg{7ý/ÿÎM¹êíù�~)ƪn‚fH&Ÿ4tž¿Â˜¢Td뀳:7-«Ãг °ý÷Z‘¥fÝSìU‹Sg|ÅÚ :ãÂoÿ4 ×Qñ¾i'³ödJ0xt¢‡±l`ûZë˜U(Q ‡1ÝÅiÞŒy3'»ÊBŽ£�¦Jƒ%Œ'7ÚhJ5á/ÜñÁö{·Àè‡Û±geçÉ;LÕ2²ŸÑ*�¼hòtù„ê°Þô:¬—,¹)¶ÿ^Ó; [�„Y~û…ZÝ^ì°ðG ‹ü5ƒEû'¹Yî»[çÊ•ðuÕVw€ l»­½¥¸ãÚꊙLÈ/âá-Bsà Eƒ7‚ J¼¢�xY8ŠuCô…¦XÑ$€7‡7‡ 7¸Ã^;ŒÔ”ÃzƒõFoï�R&ÆïK˜M˜…á½ ý±¹îƒ÷÷6mP�KGÈ­ž£È²9~P ö]€s~¡Ç0Q (éöSóSã:óÐ'GðgTéUéÝ¿8^:^ÚRŽî°|`Ø”A†ež¢ø-œ$èk¢÷DïÁ"öòìåi‰¸°�p²g[˜qú©Q¯> ,[±g‚âÜ!Hì‘�r<(84¾”Ù~�¥™óŒÛ©*e€G‚G‚6à}ÕûªÀ û4@+Dkk²#²#JÚi�¾orpr�!¨ÝòÇüگʷð.U¡ŠöSs— (g¶X$[˜†òE~1ú4ôpÿ=@³G“w“7‰,L±Kßãg”!Ë�ê†p¸�ߺ͚p¯p/ªÞLH“X“˜à•íÐ/ 舖P-Q-�û N‰ÚOÞ§ÏnVx.0HC’Ã#½w›3¡ïm|ë¼JÞâQÁMçÚ¤"¹›}òþýÿä6²h%l–bB°GDÜ:ì^�j-Ì*ÿñ…”B­¬cÝŽc¾ !—³ "‹0íïÙ®AŸý£ƒˆ­OGŒ>ËäìºjÓͱB e¯”ZþßÇDëlc.î‹$U´_“yÜrh¼/Òlí>�DÄдI‘1@NœñUàb¶F5ΉKËýøœV˜†i@k ê½Û h]ÉpqÃ0$Ùì'Ww8Œé£ºƒY†qLÿAJÀ8ö"¦aÚÿ¢g×Ú·�¼Ú hIÅð¶f/«ÿ¼AV?®•øºœ|ï‘lqs$$ØöÏnƒ}ÄÙd =¤–±„ú$”[¹é/ì“Ö²XÅD9Ê94)[ÏS Q«b¦ý]ÛÛÑDOwÇ 'aYÚt²ª'âϰž#»e‰nǨ#–×c^ç x3qàb¦ý/c²ÏÚ{pk'=×Dî^A÷-ZxéþõŒ&Ý3a§˜Ï?Qdü`�i˜4±yÛ�%ZDf|ˆÆsÏ"Ü�~5ë%Ÿ�ˆwŒQLâĶ«ZÜÜmÖÛòiMcôN׎ž1EW~};ÆY2x&s4st–ú“·òoPc^§Ì¯MàMàUÔ®·¬·8ÿŸ9CÕÀu'€ë]òâÉLÍðz ï!7è¨AgAg�ÝëkÅidž@�êC„A½rƒ(+>Žj´ðû­ ­ kòyòy¿ è4(ᵪ¯ªo÷©îSeaßçî¿–¹üc)F‘£BÇ<¹(æòôóµ´(¹êx\Ò÷_Z_þÿ¹Ó­ÐGðƒa×÷lDÍæµý O:Oºœà¾Ø¾XÆ¥KS3S3|\;Ãv@t<`yb¦ôÀEñÄ4J£ó(ÄaÌuÌuóì­çB®ç¥@‘ Â[ N<]ù�5ˆÿÓÀßËß+Åõ1ê£}`-h’«Ÿ«_•_•?’ªçûºº¬ÊÉí~ÌFîŒäš:@ßEën› 5+ Ñw÷õ3ñS¾íÍFvR>Œ6¿i~Óo¤zè©ñìúÏ ¡%¡MƒêNêN.W£›hð$ö$>îݱսխj³�@êNÝEÓB‡…ÿ÷.C¢ÏÏèjäzòH|•#ÂÏvñîö}oWpÂ[ô”Ü(!ìraq¸ÂzÒÓþ9íãY —C™&}6Y¶[ÒáðƆ-wÜp‹‹”†ì#y’ZQQµÂœ\HLô¿²i¸™”Ï Š&°4¯#ÇSE*®ôSQ„Æa›pDÇçòæÛLó.ÝÇ4Lû³š@‘ˆœÑ}©;š 5ìéä‘äkÇ,,Æ.o XHwÄÁ¿ZÔñ}J�ëŽi˜öwmÃä¼wO‘½cèXd9KùT.vÎöϸ׸§Ïü¹ÉH9¿µ‚te\/¥`†ÌKð³íÌçsÛ “)~–©Îáâ»Ô†BJîßûl«njíü=ñç3Ñ7Þ�t²,…ZxJ.|Ó«-ç”—ª2ú]6kD´F!KË%Å·Í$Nmf^of Ü" 3�Ïú ŠHKqY§žU€W€W€£ ýBûEçi¾“ Õ•5’5…>…>ò·Ùß×{§÷NR0ûÈ�¥¾<ãSCØ´CI 펳«F¹£¸‡hÁÈQËûçuõì„)ÀÝaûÃöâ$µ�â\L†¹…¹EÚuå冑;èÒ5jj‹²9mm>¡ÛîÊ«�|?B)))ÑgMÐ{N¡'íãײ™7^´¦(ï6ó@ÿÿÀ•+³ ¨ ÀT›q :{luùÒºHÂÕÓ7„ÞQØN)�1ÃÞ>ó@Í<ø¿=óˆR‡ÆwT�Šг¬ÖŸÒÞõ7ÂíŸÖÐãïDÔ¬Oˆ.Õl;#Q�s)¤Ôÿ4®í“«™“µ‡ì-gy¿××E˜Fü”ø©z=Àë÷ûÎi7ÀP~fñm_ª›3 Â�C”^_ƒ¯¥»gj³œï79Z{ƒÖy™hPhÃ'Í%Éß&—&—V�:œ;œ[l#—@ L&Ì&ÌÓJÓJ7Ë�à~535s'‘yÉ�ÑÇר„”*ÄQ¼ñ°ý“P|„mƒù}C\ÃU¾h^­2�h¸»¸»TÚ]Wx-sígH$I$96*Æ+Æ›¾E§Iðœô9išøAd"]"]évÅvÂ(•,ë-ë�û‰ãóÌcrŒ»ŸX«%£`ø8…Õân3ô½}à!C_ëÝ£pö,¿†w*–ÝoË昆i‡¶!òR$6xVÊàUDEªŸÍ r6ŸU£q�>ÚgûÅä‚#Í©Ä2ŠJº0í×oïÙ`I)xUYòÏŒøXƒ Ñ¢–°¼`½¶ŸëZH ß­.x±M)¦ý9mþøü|§àxÝ•öUvêÔsõe±iNE•gŽ›†¾5½Bï/áœEj†i˜ö½¶NˆÛméñÆ‚®Ñ’^Þ õ¦m¬ã¯tçè?¥i̬è0YÐy%Çq·d\–Ñ5kA?wˆ«?U�7.Ëaï¡Ëž?‡ÜíÜÑñiMžÌN¼SçÑ‘Èo×3b ¡‹]�p�pѹÔÊ+ó‚4€;úñ×jæjæd ÍΛ�_aô!Ùº#€“%T¾÷›l4oP¤˜€hìRVRV6b:ŸÕó œeÑ4ÃA÷�›¡àmÂÞ¨Nsžæôg$ U·;@G8tótóø!ü�ÀCü ß®®4}ð�Â�Í^ÁrÓ~&E±EÒ3¬¢tL'óß”xìÊþŤ!ƒdÖ&€Êáý�÷Òkë 7; “ÆVîVîþF¦¦cItÙɰXÎà½aHÅ•Š+ ÔÛýº“½+`kÎWÊW ýL}<ìpäÔä„�‰‚ B†Õv;S£Ï�r�œ5ßE+¥ïQ8*‡³"„tÌq‹·Cuc{²êô�ïûLM”¹Ø\µtV»U÷»•Æn{ñiÍÕ;QÛõT¢­Ýn$@­™ZÕy0ÿ`Þ9é «fŒ$�GÅxâ×,,)Ÿ© ¨ŒƒÊ¸æ¸æÜåù»NlD‚ ‡æøAºÕ(TJ¥�²›#„:eÊFÊÆ‹… ¥¸'cOÆdÖeÖFÝ ¾oŠ~оghoÜ�)!’Fgt±(´Ko� ¡@g†º—O?TK÷ùîcjè5 >x–�÷:ƒÄágäÉ?bh@@`á‰Îª5ñPâ!hŽƒ¡4Lv{h;Ç�¨r$�æÆçÆÁý$õù½[Ž-âšsáuW nš¦ôív¦FßÛÕï˜m÷J"èö2^ÔÍqÛ�ED¤sWœrô?ê×¹GG°å˜ l¿ž„=¦aÚÿ·ákrF²ERT¢oŸßùž_œ”®ëþ^÷­îÏõøïy]Ÿÿ^ç�÷ûýù¼�êb–Š.ØÀöW[DŸ§}M¦Ž0í¡TÓ3sdx9Ý ƒ Ísª´Â\+¯¸¥aƒb°�m»µ&ªËæ\ö%q3PY¨‡Rå¥ná� Û鎛͚–rïûãÕÓµì£A{•Q0q Gì}!ñÌz!fí–¾»"'­Ä£ ¶ÚÂ~×hq¾©^0‰%ÿ~�ýN©‘܈±ãH_—ÚT3$?üf É&ûBû7ßÂ% X0›º;úR-µ¹KÏnËÿèøòL¼ÍF®‰Ž§°Q¯çg…±â韃A²Ç®Ã®#€‚gwJÒ±sÙL2ÖßÊ�É�±áUPˆ Ùºpnhü2xm3¸“†½h£«.4vaüü¯jŠÅ{­÷b8r­La©5ö£‘9‘]mwà8hhŽÔ‹Ö‹¾¼øœãuê‹�!&ïLÞáÏJ”}ß¼ù¼ù½W1~Ì^¦šF©`=‡VêÕæãeŽ&2øLXBðážÌì¯êÃp+Å–'í¯T^©$57WVZtÿÎÜÎÜÔˆžK=—�ÉØê˘£˜£,ýø¥ ÷!÷m ÖKßH-î ±‡ØcæÉõ¿ïZÈÏù Ê$‡ø”yr¦¸”y«}!ìÙþ_?賯KòcöÙÀý#®ÉÌ·/ójp–äã]ÆáÇïë¡ekå> ùB& l`Úô�ɆÞfz%‡EO£#µ,.�ââ'™‰!‚Sª•Ð|÷‡b;û%ÕˆÀöïk/r⊠ÏÓ™0DÏ»Åà.Q6ž¼Þ|*ö5²²SÞ~Î'Ld_Øþ¹æPeçz_T`�[ÏmZ9»Ù Œøù¸3 EÔÚýS§?Ú~¥ž)ºŒÛöj‹ m·cáé95db¡¼ÃyJ4)¶¯ëÄÌ-ùuX4£d ÷áºA ¶í߈yÍù¬�ùÏÆ?:~Z©Ëvp˜õÀ_ù&µ�FzœF• j8è�äè$/ÂÌg{#c=XxX Éç@‹ãã;¾²Õ:¦XíßhÞw¶‰õ–E1œéɼ1øsZûZûιgç†Åùܵzëÿ-- - Þຬº,M@ÄŒ”@¶àyÏ\ݵ ^ц&äw–£�’’Ÿ’ÿrÉ¥³ŠÜêüìz)œ"ÞÔhÚÎÞË~ü€¸¼A òc(.¹Úf¤PhµÜ%GÖVÐ&ü‚ȳžæ]üʹÙ\ëu  ˆP–P¶ºñâ^OïU†Ÿ±h¸hÈF‡Ø�Ø![‰�Ô~~'¿Tü­Ð’ÐR@özê·6¢ \ÉzÒü¤{�n‘˜›$ØÎJÝxÇÒy|wÕVktìï}äÓ/.'}¬»«ykY´ô n“v®‡hx�º‘Xt-ûŒÐ>¼o×è"›¯Ñ­ßóò¿U ^ÉH”&©‘·z±Õl?ÿòŒFÆF!%6éØâ¥×[eÆxé'…ñ±Îf ›§_¨?V÷¤ ;ç[aîaîû:nÔ~Ñ Ê!ÖôÕ :)€‘+r¬hzºMËJnãnã¡#j&0ã`KŒxñaQŒ$‹kRhNŽø‡"ÎÒú&¼'¼Sêt+t+šy×Z1ÄÚö ír�t�|Líÿ}p<8ý»èÕ›v8jª‰$E t§4e:ˆFGhb¼;(Ó þ«Š]#¹�‰c2Z2Z®º–J\R�?#•�*~DFÆ)ŽÍÁ‘Æ‘6n?-Í&ÍÖ©³žòŸ]}@Yq¥r¥bæ)Œ=O!ú}}Ý<]2r»ó!Ts’§·Z£cÏöfÿk ¶ß§åBã,Ø—§Ãä³P2â/>Ή³½ìíø`BƒœÖÓ‘Ö¥÷y®P¤ôÒ­l¿f“¼å¯½Vé°«Ä�+êT¡olÏ…~¹É2uHvºž[2*U¥ßfÞ~4µl¿Oënqð%½Äç#Àâ$)�îã(qmF�<¡}}yñ­áÛð";¤ätµ)ØÀ¶ÝÚ5µ’Ø¡y(yk‘ÆWiäæ’uqšÔ/Þ[·á¬viPzH,á¿b&ؾ×4FŸåáë¬y»P•‡Æúì;3ò4¹žSÊàÐõ†?¹K÷‰ëT½ZsE‚í×lÌÄ«é�¯.Qù•|Ü}S9´šÞ¿1€M¦ïS¬?l¸×5þÈ1ŸèªÎ)å`Û_m�IszR®CEËsÑ\‘2q㤚‹wïL݉6´ƒÜvŽ�ßy]µlÛ«åÜ2!ÕN0o8(ÄO§`3vSK"¦0kŠîé´±LD·Wð®<·´e˜ضW37ÝU"±H¨d`QüîÔjbí¾»É­·/º_][ácgÄ/�#½|þeØþžVAMqMCrfFm ½d·F5ØÁå\»ÂG¨LbøÙö¥¼±lˆ„ŠŽOÐù‹û®GË›äÆ/A⸰Ïœ,zzë]C„UÊ¡ðá!»­Î°ïSóº'ÚƒtyØc´æ2¨£ ºÀ†÷LLTå=*]éuó#ÒèMÞ<°ùYÒ§°`ˆd éñ£iÕ_¥muÖÐõ噄E\\ÄV8ºž ^M0;FäŸ � �.ÈžPñ#c6Å|kxyxYßm6 kìä‹9Òê—\,r¾ýt‰6‡n´ è{ â"ॾNcã?)¸qZ0H!{¥1æ>ᣡ�ºòN1€Ø Ø ô¥è\‚\‚ï�]I0R®™h™h‘­‘­­å²}_lnl®šØÚËcåí}PÉC›ßÉöP�Öh*žH˜[ë*zô+î£îï\õé¸F¸F“´BšN?xê|ZScScÛ�ɶɶØÒ[öÚ;´w„Ý_OÍy£è€ ��•�Õÿß7ýßïDGRJ®�Ur»ñùgüÉuxïVg سýwÜ-6°­#ȳ ×FðÄ †A}¨Ó•G£aËð,èÃîˆlN¹sQ…ul¦½yDÔwÁ¶ýÛ’R>;õ«,Èž�kOâj¤è2ùÄØ¥Ó¼Ñ{ZÈÂøŽàŠ©{nk+ØÀöW›é�ä­Ä`HQøá=é49Q{š <¾ôbº‹(O¿'Wz�ªr̨³hÁ¶_¡iÉR[>õÙßëÕGetTÞéFCéªbJ¾£ŸéŽ%WB2ßN�¥sqض[£x̤1N-¿ 2ÿê%Ü.Ú”Ù'ž=ꪱóÒèàÊ’ÂŽCCt0š6°�íWhB•z ©ru„÷Ï–LŽ=jŽCœ¼ÄdèÍO£Aiù¶Eâ¤6Iß®¶äÿu»*ãSe SýÌJU¨Í†ëoœè®¯Š½Wtjàÿ\Í ênWý©›Íh«½¢î/ϰzmô Gô$6Z½õx"1Ê#qf0Fܘñ˜ñÎ'‹à[””�9éû­…ð…ð.År'äÎ$áªø{)øæO‰Ý;¨O˜¢yxd†A #†{=Ðãì9%m�áXäÁŠ!~Æó%ëL: %!j 0929"+ ˜-Ÿ-¯‰h 2€Q¡®ö*‘ùa_ˆÃV³Ýܾ¼Qû´u6Qøz�ɱPŒCñ.2Ü Ï~Ñÿ0l\ýå΂oÑÒJö»0¸0Ôðx9Sá€Ù«htH4Ç2 r`ŠM{o›;†b­CœC\¨¢omW„1Ʋö…5ŒsÓihÄ…—fåÃ9®ÿŸ7oÈdº:º:*Ú6º£¹ˆaÄð8þ8>n»wø÷).*.ʘ%vþØÁe�1@ršmÐÕ\ZèÝçÊwœãI’¿bÉÿøùÑ>€Ô„Óq§ãƒBF¾ãbmt?#8=8U99«àƒ­îYìYÜ c{\ñ¸‚`ÏzfG6â|~}�à:fžZ˜ÐóThò¸çÝ阷ó6—kùn5oµŠ=ÛÛé.Õ_±•ëq6JPX¯Þ–b"^q±h7M‰$ÇSËÅU+á¹yÇ›Õzg¿F4Nfq Øþ¹6[#ã›â 1«�Ö@3…ßrÄž’]rÑD—5Ž@âø¢}ØäZu‚íïigcܨ\8Ï�±%]ƒÞ+š‚ã–ŸÕ\H”é§°­¦Í¯ú°æä‰s;�¼ l`ÛnmE·nѦ°qyè¨E$Nè}Ʋû–ŒÌ|wVù膙q˜„ÆØ[ua)×ÛËÀöû4в îŽ~ù.³ôÜA¿¤Ó['„vU´êí¢ê#¬¿„í�5ï_D6°ý“môæ E£È…'�¡3H�>²O'iõˆ¦$ŠÞ1†Wv’þo»|ÌÏ� l¿Bc˜Pd¨RñÝIÂØáv4»°EWûmà9vŸ5Ödq˜QY²‡¬ ×ªÄ ŠR°�íïja XBKÂå´æÙ¤S÷f�„]—Á¹™ª+HÉPe0}eýÒ°Õ@$qß;Ç[ä`ûçš”I™#¥D{ºKÕÜéD3ë {­ÊñpÈé'ã&uUsl üñ�&`û}Z_o€“艕™¦wýSv–£œÑÏÛŒx\GK£w8Jë*àÏÓHu¥“üŠ Ê©v5ÆýxÇÈÝâi‹²m;ö9­£%ÍSb¹–OÝì]7c·:§ tæ \MÓ<àØÈtï!%Š·k�C@øªíÔ‚–®G¢yË‘Úwß  m¼VˆpèÎnò½Šðæç´8�( “�¯û¿/ên‚K¼ÙꜶ÷Ë#’ Mz]8‡Mbu=?U 2Åti ñ²ÁÂÁB¥ûƒðuÕg{ÎÀ¾çç>;¡Þ¨ÞxjO�Îp ðÈ“Ìæ™ˆj¼ÓÐxP»Ë0&ögeõñøYìm�ÂÈWÃð; AãÖ'°Ó<Œ  �ÜDÝD ä;ïÁÈz�¤@RHÎHÎ$£èÿoTkTKÑÙFèÇ'W DâìKh™�ª÷™h4úŸ¢ddr’Eõ¿ºÑx\4Ä@; •�Êä¨ðv´¤E}øüüL…Ž޳DØ �œL2ÌUKWKsŠ­§óf#]@fÙÙfžª(Ðã´»8ÇÔ†g|�PÏ� ©•|ÇVç´Ø³½�~Ë¿sSªž5FõK³B»w<=Ÿ& µX¬Ô§+›Á£u<¾‹�黡ÚJ°ýûÂìdÃ#üSµ3Þ;ÚÏkŒ‰Îv„h({^<�¤¶ôd�Óyp´‡¥l`ûZÛ¨yE—å.ç)þÔCÛª"®ƒMçŽ –äëO|ng,=™þÄ�l¿w󋘱»¥sVv�æ™�Ÿjjf-“"âØu?ƒGï�ª kM­ÅôR'´¤�Û¿¯iÑʦúãVÜy¢Ú@‚ò€yI°ná±s‚�=ÏIß2ûp‰Àóúšg`Ûvk³t)®-AŽƒ O­pLrÌ?WIlv/mˆ;A”˜­¤™b n˜t¶H,ý³Hìý€‰Bùå‹5ükäkž+¼(òÔ­öúþÃÞ}‡SÝÿ§ìÈ–UF9V"ŽMÈÈÈŽ";+[öŠ$+3;+I"Ь² Y_£SÖ±G¢l!+ß>¿ÓçŽSÒuý®ï}wß÷ù<þ{^}úëíºÎûõY_Î!Ù)¯=,™¸övõM 5´ªY#'#'&)ë"gv(ÇåËß«µ¬µ4 ¥Ð¢Ð/$*�·œÚàM'˱hà-º€p“N"¤4ê²è²ø|u"™Y‹G$7PD5h¸ˆP¼U`|=D¥ ¼®¼Î= 8,|X8^\•äà4S2Sò4òidÑâXÀî´Ý´Ý(O¨PüÜJ€ÌÌiBÐÆ¾BC„|I·¦ëJ¿IÕõñäÆ0h³³u4>™ÔeT?þ+ÔŠÔŠÄù¬¬#V�±—xdzdN+2ÖSoQoiî8ÌÒvJ; кÃ×Ê׊<ëªï´‘µç{ÏœoÒš`Ûí|z¯YWds¡°—¿¼þç1S½%l†�A}u|ŽuˆŸ+Y„cŸŸf„õ�­{4Þ ç•àÓa?˜uA<ë2¨'  ¯î6vâ™� ßkm÷~9§•m§|;a/d6,ÛÙ2�>rƒü‡““îl ¹�E· ÷^tiû^SNSÎçg±Ïb-2 pél€Ï€Bëc\d €öPð„DÂì Œ!‰u‰u“'˜�„×9@°¥@Ê(Â{afR-þu€�™�Y]:àYë³Öʧ)ê Žsu u RŽRŽY>…»‰‘Œ;‰ýs•IË×<ìŽCŽ:m cB˜Ä¢¾•Y(væ7�».΄84h¿Z“ï´?íWT³V³ÞÉf d ÔxŽÌãVPiP)ú­Y¶õ¶õé"Ûšî”ùI4 5 ýcm}7KŒø\{³ý¬_˜SAüä …½f]ÈkûwzÏÒ¿­�Ѽ…sÄÁc‚«k°ÇOcëò&ŠBr6ëTO®×¾)#4µ„:ûQíß×ôÎÕZ<°Zò5öoM}íî(ô¾�MUä\.îtÂ,^¾³ 5Ÿµ� ªý^Í‘}ë6žLy/Vê=½Þ¬ôÐÝ}Æ)þòÏ⪠fŠk„u_}[ˆj¿W«½¸å î3'^nÜ<Ó„p•ªp¹øT3CÚGt1žpË*vìAµNËîœ3[æ¾fƒ¾åæyBZ-(zëH«Nˆ4Ä£”û�d•ŠØ Ål;][Tû÷µ’ºˆuUÚÔÀ³ðë_ŽÇòt&ëퟫ÷åÂðÉ]Ä?‹¡*ßårmª¡ÚïÖB#…Þe–Ë59÷b\Rš‚å>'{»;7�¸�2iD·ŠœU�¿ê8ªýzs¢}=$ÊÚ)Z¯[$¹~{ÿÜâòœéÞý3�wz¢ª§efKMµì5g  eKÅ1¦‘òŒ5Çšn/k¨¢r£¢… š@1ÛΗy*ÝÕF cl<ÙŽVõÒL:Ñuõs&¾Ï™Rò�B^S»‡Ð-ˆŽa³ �Ÿ„ Íä�¥tårò}rî+p,VsTC5 µúwç4Ê\®¢vXÑ�¡î ô•¨g ¡ý¤hc”¡¯{¾(Ío} ÕPíÑ$U,¤®5ʘ‘QÏÔ`Ó_ŸÓ΄c˜ nHœî>þ‘!^y– œ€$bÕþÙ­¿ÿÑB¡YîyÒ­ì±{o¬SÖ3éøYÊXn«�¶š’BÉÏ>A5Tû»¶™áD�S®vcöò¼â‡îUW Ö¢½ìëÇ»£[ÙàŽyŸÛëMË‚�j¨ö¿h4©>%5�’.Ûk:'²ws»nJzzp#cŠ–NC+ãUÈ…“‡M+eh>^F5TšÀœå'’òbU<#NX“Im„땊'ȳ^mËNUÏó7÷3ö±õzî5ëíÿrÎñ;5¾PŒL›z»"<�ÁÄÖ5Ð*ÅXÑXÑø…åíõ¨¹Ïß{:÷t§B:G:'ï.@ªsI P`<ÅíH>8ðŸ›^¡›Qâ yÑéi*bö�ø ?�E‘=(¹‹áIí@̧Ê{€Þ‚Þ‚Ó+ÀÓSOOåä�‚7¦Ìš�ÍÀ°+°+ÆŠ™Ëwµýá÷G?ަæÂÇçV¬G6œ¸ 0s‚ RVýrÎhÀA1:¶…¶…ìc•öItäý Ô„²0�á´©뀮 “/;€µžµÞº�0’0RS±™*¨SnSn;ærÌ¥èñ‘ÖÝ‘æ’æ…Ÿaú¹ד±Gß ›.6¡Gxª²˜ÊÌÕZKLj6¿1mhõ7ØPL•M•E¹¼ôŠ <öìWx<ôxh�‡�‡1Ev0N–X–xéV¡ý#ûGU‡¶+„ìT~ ÉÓ[Ü[üÇ· ñ¾^£«ó“èÊ%ð¹!~±£àÄ^×1�×v9sÉCx³·Ã‘ÎþäUz% Tûç´O…�Ý7è±È„1ÄŠ†'M�¢iÜrÅ7v ÕaÊV½u«Ž—•­ÕPí¯ljÚ.eS°‚14•оѻ|%2«p2’ÜxôA–¨„ì�-ÞâŸXÎG5Tû³ÚÉ> ½|‘‡* 5Œ÷ˆKúˆ×ÅŒ�G¼$›ýîÙíà (è€\{�“íŠj¨öwmƒÄ'rÔ‰æ©{_-Ñ]$}Á—$`bùg|׸«çÒKƒ¡2®ËR¢UñݤܧÆÁß¶S_÷ma~"\tï^æ�ë@ϸîöÛVÑð² ðïñ¿î±ð~ð$¥Ò4rÞwáŸ=Û²Ô=d‘¿e³ž‡wÈO/hy¥¸Ð-÷RQâ»Ï÷C›” p¹XŸßÓ€4žóUÎì÷ä%µµ®â¢ŸØˆüMpäûƒ�ŸKCþÝ�¼/ 崌瘷"Ò|ósôü^ûÂÁ/ç`œÙéÑQd7·‹ê‰òÎâ�Tn¬¬Ø‹¥wltŒà\Xu9ó=Ó Ó�bGjŽÔ¨L“ܯ'W¦rùÖµI>:êú ·j‘‘ëxç ¦˜ä$%:¿ˆÔï0‚UÊHð»3€Á‡Á§å £cë�®?hݕɒɒ7�7ý•ô|ñî0—1—Ùµ´ßÿ\Ön©¹ÿ;Êx^÷–ì@xûÚÊ;5�‚ûBÜ7íá1  Ó´Ó´â#:]Ìsð°_a…°zI ¯£¯¿WBíCcEc¥["�g>Ë|V޹]ÌæNØ„9Žfæffä™G³ô#û`%ë„õ‡7ß´¦Éî5ó@þûÀ�(µò«óÛ×vÊÙÿ¢ØÚŠûßí€ aÐyˉãy§ŒÐ·Ïìú@¯=p& r83¹ß à%ÕB�)C |5Â7ÂgˆY#ÖtŒzI2ïAwCÀ¯Oî &È-Ë-Ç:Ò+Ó+ƒq›þ8’¼æÌG{�öºÄF'zw"9"9û ÜÎûƒÅ»jS'¥¢LãÛ#GL}7ÎGi„f§}3ûBžÑgÀÁØÖÝÖ=±aøFiÙè•_ѡס§Öã_ê_ÚÜ€¬‡¿ÖªÖŠyXh•�Ÿ�?)g;æ‘�$�ï¬ÄÔÅÔÁõÄòuæñv„Ž/ŠÖ’‘7(IâB¶´×Ìym)¡îiÍáIbÌômœ—7ëœ)…]B5Tû;´M¾q¾¸ÀiíɈò»ªœrÄ >Å z£Ê=‡j HF^"È((î@µß¿-Ò0R릤aVgž®Õã¤÷—ŽâÿX‚[L÷†þæA ´›A-œ±I…OQíÏis’ss¯¹G믶¯1j“ß5i(�caI·/¨Ò’4 žÑøJu]èJ&¡ª¡Únm£ÓÌíƒ1e“•²5Nk´eœÝïôÍÑJSžZ=GkLé¡—ÏÞ–—áuJèyßáÒnÖ�HQ"_À¿Úì{Ü«h¯}Çð—sÈbw:J¾h†ìØ­í®ƒ8?ÒžmÞ¥ ¥ ÕxûÉV"«kSûž¥¥°?±6h?¨ƒfÈe´Š)ÁÝÎ8z™ ñþ ÜÌû˜÷ß­ë{5]» JÒ4Ð1LÌ”"¨5Ä)9øOqÒ}Ó}±´åXåXBvq Ê|QQ¬j¬jI|1ìÝõsösÞ©)ÿ¹ªÃaäç—g©Ôå�X ª­ä¨Ç$Sã´j¾™ž,q —Ü»þû6eïëqê¦Ú_AFLF,Nê7ï7¿?Ùµ“ocÞÆöC&:]:]H#·ÛpÙ ø1;Y;Y#ï©%C˜"ß%ãVàæI žÝkO�»,—³‘>¼Nt±Ê5ÿÜGÀûã=õ#ŠÚÌ!s*‡ÚY\(Î^k{äË9ð³;Ñ&Mç"S¼²(ù2C HDpúáôÃ=bç·Ø� 4ùNW¾z#ôs¨œ£œ£ß€N¬ñ9àô8 N3-1ð åÙÜ@мÖpäGãiáia$1=GÆÄßòˆC7iÿ�ÄÚ5i}½^TCµ¿²iFº=¥¦”ª8|G mx¼kÒë9QAMǃ“í¼c æÅ]輞|‹Qí÷j[eiQTt�ÿ¡±_Q¨äÔ8§Á˜E0ø\æl3ߪ‹ÜTFÐ-…wV¨ö{µÿ²wßáXîÇQvö^%;’=’-‘½2${Evèq�DD£ìMH8VöèØ«¬2:²W$£_÷õüž_<)]×ù]ç¨s{ý÷¾®ûâ��?îï÷¾¿÷p§›ÆÍ=§2š¹Ì!OPÈ©îL)¹ât1èVÈ󸇦ü6WIl`û«-rØçJ}¶/©dº¹AÉ1Ëž;7Ž��RŠÓŸ¬F˜Q”oã·:. )ØZk!ô¶d¹R7Oq–ÂK¡úÚ/åA:ãf¯¦£8ôáBÝ\ÓÄÍ>fÅ‘,Z!gäu!�laý‹nkš»36Q�ö[B~ÖèírKO2}aÁàÑ—jV%¨‘“züÝ6HÓ-zNJÄDcí±.$¸÷º�w"�ñx¥°¿«Y1 ­~È~ëBŸ¯ÛÍCÚUÙKÆ�–î ¬!nÈÈó�ëÜn¦‰5B­žùZq1ªdªwª·ª€¦¯ì(€é1`Ë�ІZp…TJŽ”ÒŸa-¶W®WîÝŒÄá™;YVÑÏÖø ¸áŒ0ê)Wh£µ£µF5€rÿrÿæ“,&z­­w#îF¥¾Sø6¾¾œF‡„SßW‡�Úì ¸ wts}b+ÿöSöS«P’’Ž[dø..< ¯EMEÍ¥�L«w“¬ôÕoÔo æÉý¿ÏZœ½�·.J-]²™­>_ZA·ßºòlÿ¿ß„rô‹||`$øÒ=….Þ›]ëDy!š7 ‹À¡áARFþNv^aí?Å#mÀ6 Í Ï4µ’+8 Êù˜Ö›ªä²èEc–¶e'…ðÌ*WSz–ñ<QÁÛ¿¯eýùâF^\)ºÙeJزGô Ô·cøOÔÃZ5b_÷T?Õ—è6††Ÿæx¶®9Õ:ƹðq¯°ê{Ì)>h…„c>Ñ8MG‚µ] ¡ùñŠÔ¢j6ßÚØV{ÛÜ+á•™W�ËÊ>þÐI�„;Íþu#¿¥õI*=zí¨³èÌò,˜`;ø “Ý’Óö|àÂýÒš š ýö£ã Âå�Ô"±)eF “eÉ7"3ì%Ð äûìF�SÃ7…Ÿ H€t*çïwó 8Bo79=¦WÈ&0w »�° $…Û[åXåhaRæ­”³¤¼�þµ™2‡mV²W²g©öÃ[åûZ€»D3Áõ"€‹ÓaK¸³~îϨ˜_ë¼ÖY𠘢.Y‰PšŒƒÐimó Žƒï«  )ÀŸÎŸŽ31‡˜›ÔÈLÓ1@˜\â|?Ï„4ÜrPy׊iü™°/Rn1{h†pCG F jüq‚q«~D¸L¸ÌËÍÃ7Ÿ˜GV0jïeïe)€!�ÑÃq¦c§Œ„Ý`Ž}YYä{t«¤üdžnâ'P|—©£µûÝ£#¿ï“ “麖ü±1UûÞ_Ejµn>÷1¾;�ª¦ü°¦ùSh_ߣŸÞû}èÍ[" þ»‡„¯´õ^Øo¶'�5†±Ý`&˜ÈÐpwJ¬þU K„îò¸–¸–õ½z'�]çºø¿6V0V “1€¬ó gça€÷6€Žk=Y*5€)ß§|p:&�‘‚¹¬¹¬ªx¦=F— L•ñ½\Reƒ£@ãQ©Ž©”m–mþFÐ2×2‡’ó^CÈjrJwJ§æ£æ“G—lý¶´æ´æåò/¿so¸yó£}qh7œ]‹÷˜mœ ‘IÌfG�’ÅlLœ”P }}�—R®T%«DNeNeòEU}U}]djªdªdüriæÚ„Ú—­�¶ wÙh¥ ��"æ)œ >O!†ÃÃlýâÒG ‰—D4÷»GGží½¾k ¶_§åSÄY1­Í…Ë䎈 üùqI€ñÕPßúeÌèž9}=±‹äÐg²Å ¯<ªÀös6‘{�ºÛÕN4å,Qµèþ±ƒÏ¥g*U‰dê{¤Œ¤+=·[¾2‘Þ ¶_§ ´;ùc_£ŽƒrÓ_áÎ Œ8‡Ù�5(ƒ@Þô¸ôÞx¼D±c�È\�9ØÀvÐÚm•òXµÐ‡#2¶§Ÿ,fɲiŒÓv"þóƒmÊFP¿¾—Ðê¡E:\°�í[Mk¢÷á!½íën„&—Bc¡/;RšNˆB$Úc­àЫÃXÜvïÛÏÙè0·2ÿ¸µJPþñhŒbhyà“ŒâÛ±�´ãCî÷åÏCaµO×Óƒ lµÍX’cÓ³H¯-ÁXî¾�›ÂÖ~›š8qfb?I”Ãë-‘øºl«åqß»Œ­›`Ù|æÔI2Y»É¡è¢ÜY²Ž¹K⑾Á4yhk´`;XÍÒœ¦\è-ºĪô½†1¦îpjdJg¼«ç­í­—œLT‡*â°½Í^ ‚íïiUÄäDž¯�Dc…ÑZÛS\sÜ& êcqiØ` ŠCWÄ2ùdÿJæ’P Ø„Jðú6)Ö ßr„Ád.çß_%Šûê쥫VƒCMî!¼J�)$¢yÇ÷Ûk@>KLÅ7G4t°Ç­lð2õ¶Û¨ž,ß #Z/?ŸÒ‡‘L…×­5ذ=žÞ{¯AUˆþxß6ó‰æáèõò5Þýö¦>_Ó™¸›¬õ!2G©�xÎ#d¦»0!$6�5�²'>KùM}ëÞÃ@¿¯9>r|ÄÙBCSÑ –ˆHwÆC³œ~_t×¶EÃ)z½)@(>>yiòR–ƃyƒ¶¨¾œM³::øþp¼™â‡©†–^4>j|ÄnLkMk9À¸òkI¶H¶Ä^ˆ½`ˆ>‰ómÛfvß·lÆe�0­ƒ›Ü”á…Âi½Xµï�”±Ñ}q¼E!Gñ€TD]½›C�öjýô��=*{´ÃZHMHí!2…M¹M¹ î5XÂL aèNX�ݦÖÞ�†ä†äÿ�7ýß÷D_¦•ûaW³zpfýÆ"żß^òlÿg ‚ l@ë»éÓ…jÇ£¦F9jHqÕ¯f"|M"—¢l òÁ i㨢FFó¡‡Ä©`;ømU¡�‰x1—èø†×í¶¸zQ²lN~Æ$± á7úEôTïû™{ÞDíìØþj3¹—LT|Gêx&I^Ôñ"6rþ¬‹oGP|dÚü†®ÖæYç’‚ l?CÓ9KlÝáóRpÈw˜ÐôœÌU.*±ÚL|Έ‰OdçSª‰²ßÍ‘¹y€ l­áýA­5E,CC´¼øJÂfN½ÏuKÓeubôwüò¢>ɱGd´$]`ÛÏÐNUë˦K7¢•ÏLÖ´ŽÇ•¨�^£6¹~’D ßú]»�º.V'MWÊÿ»Ý‡ÖZÓ*b ,ÒeD ¼”äi¨Œ¼Vdø{�Ê Mê¤ê0žEBe’ožo†X+šþ|�öýÝ*±(û‘‘«ïDÕ‰ }~Ø!ƒŠhŒhL½þSÈ1çxoþí´ñ¯ ææ¤kUV2qÐ^µáÒˆÐÌi©LUÿ5[¸˜ã$¢«rJvJv›9¢•o©–š —uºu°`pƒÛmsé €¶•¶•<àób$-Å-ÅÌ­TÁGéÆVÇVïÇÜ��)Ÿèý¶àÒàRÏÉœïÃ)Mòä!HHÁqþ–N3� —e«ÚD6Âyiæ ‡¥+íÔ…¬nSnÓCBýú�ŠÓ?B6M6­¾éuÆëŒ›í_Á?ÿ™KqĨö¨6Ìc§Å‹»ÝZà¬;,;,#¯ƒœŠµ¼ÙÛyƒ”�]ób±Oð~ë Èßdè’©§½i“e–Š ñR÷÷t¶o¾¿bHÑ+¥ï§ÊWhK^¼Ç3×§ö^5x¥1•sŒ¦-S V»ÝÀóa¿ÙžžÓîß­>«`!ÆNâže×I²¡Љ#ﻊ®Ï_Dz³&üZ+N+N‘ß9S@è#[€#€“û£~k/@Å"gND¡ƒ�s¥¥ÿc@Û_UvJùÁ’Ûgm‰]á†îÄùv¡NË‚ƒÓ•·Üo¹û R9 ( d(f(_3¾¶¬ˆ÷mu°:˜ø éµï³kO&MØwÁµ¨ŽÑ§ÏÃQ·ç›Šòœ58ƒõCþ(V�`Œ»Â¿Âß�ûòÓš¨Ö�è§í§õòä²ä²Lƒ!ãô–ûüÓ(É2)X%XE;´Sßnn�L4¨T1OíÔðy*ºüÇà{ÍèwVËvÞ œ÷Z÷[Ežíƒt–êÏØëŸx"„g»/J�¹áfÕmžv÷šJ>ªJ9[Lâu[‚çZ0”ìÒr°ýsm¡^Ü?ÍIkA7£™döP»ü|&Áâé~["‰’ÿ‘ èa&á|›§`û{šëB´¡Û ³IÆäÛ9ų¨��´W’ÄŸãÙבÖ®o_õA‰:Ò6°´¶q±ñ­]Ñ“µ±sVwQB ¨* ¬©è8·8ÉÆéP¨OM2u^¤M ë®Û¯Óð*§YWŽ=—‰A¥[:�Üg~OíMU§> á0zÓ5˜Sîr`1ØÀöO¶‰˜%z¼'§ÚˆÆ z´†q#}®Š©F¶$ã M²ÉR.:ŠBÞõC-�Á¶Ÿ¡QNËQÖ*ù`Qõyœ{PÔ~Q÷]�1t›!E€Ö´2Åë¬Ë–P^ØÀöwµp×Gô¡åw¤u–ÅÒ™¼ G‰I×£}”$iÏ›æÐ^ib±‰Õ36°�7¶5¬kŒ�k�\=¾ñ‚�”äQ.£È`¯—As~GÜógï—˜€ lWÓnΖè³Ê-íÚp;TrWö±IQÇé,Å JóEÛW&��ÓIï�ïYÛ?×D/W:ã u1eºÕ.i&YØ:0ÛB>7sQ9ŸÒþÑ£@´¯Ë`ûuÚðÐ�«|jó-ïŸÏN;ZOœà†õRu™²¹OTÀpœÅ.ÊZ&íÏÄúÅ 3Ѝá¬,£˜zZu´+Úw#ïÓ:[“t`²6F/µo0õÇÄî·Oär ƒg+C[Ø%è uNþ{ÿq§w¶ì¹ˆ«x¬Ýåaì�{n覾1±óÝHÀ@!3Úã}Þ½÷iÕ¨‚†åÙk5[اß/$^øæß‚ا�ý| tj·š ÉIdÇ8vZ–GÀý#«ÁgÇǯ6;^¹Eûd¤ã}¢¯MÏMÏ=u22Œ‚ŒÕI~KÚJíÁ>ËHc28éþØ7Î óËóËqáz¥9Od xÈøÝ>ÁyñóÞ¦«ªù`á`áØ.àÚàÚÄ\Ù�¢Á€Î€ÎÁñøJVê·­©¬©¸gm~ß2)}‡À§®IO<ç„\Ý„|ü`ôYVo³/.•²ÉArKDíDíØO/ã„®ü�J�JuâÅ­Å­‡óÈìçZè[èßA l³²¶ÚvúD´›c& ‹ãŽéSÄ<ÕâÁçéhiž¹ÛÔ(º~Àá–Î#8ûíÓ"ÏöAú_þ•›BÝÂ¥‘çbôA8fÜâV+<Õ†düóh¤Îh8©¹Ž9Ž5Tƒíß×J,Ô›km˜«\Âé6Óšä[x ÑRôq5ë!¶öeˆÓûýÜ }ØÀö3´® Ë›x�,ø4.³'ÓWLœìk‹!,gZŒåGË §?uSU¨g¶ybƒí×n‘óމQzFgWHz!ÊéÙ Ôr%çà 5Î)�ëÌnG'´g˜�íß×tHÏ¥¢V%¶)7c ù�n•§q´Ä‹`š“éáUCëRåÜÏšê{Á¶ƒÖÈÒÜÛo:�RvØ \γü8>^+´×¹´!žÿaïΣ¡lÿŽÛC”5ûÚ“&ûÙµ ²´0öd²B“5²d'‰’�l-Ö$dIŒ5 ²eK¡ßîßt?1%�ó;ßçÛóÁ¥æ±V tá¢E (\1Ö<Ö|œQðiÚ½øù£™÷ïUQWQKŠˆ$ˆ$¼®)ËbûÚý·4´o¾TjëcõŒ4=q/%Ó$ÓØÞHûò¯m‚¥°1��ˆZgÐX>hè6m3B>• •ʰ Az@N  ÒIíüØeÀxG7ë¢ôÔ ˆ»ÞÉÏÉ�äÈ#?úY§HÐìp2VêØb9<¦H"š Þ À`´ëå£å£5³z p�ĉ7P~(¿&Aî�™.š.F�ÚqüÜ‚yØ£˜1€V˜ç±+;}°Þ’;9Lö„'|³¬–ñ†§àû ý �ý¸¤ ù6wÙ¯€À0e¸të(i(i:™•buŠtŠÆ×2*_Ï (Sçæ×ÓMzìzòýùpW}Ä@¾¹š{Rµ�Ó€xÍ¹È [öíÅ·_“+Cü1Øfº”·_êŸ�I½ ›·‚$Û˜Ï\(!¬”‘HÝu¡‹lÏY|Ã7 5úvdÕªXU°^X0Œdí•îôG*Ôì bÿxÔÖ4Å(ÆP¿(É{�pŽßðí¿Ñyµ¶Î&.ÖªX2°NUná¾:s*µ‹ä¬äg…Cû>ðÄÀ¦©K©éBûðíŸÝ^wR¥Ñ̶o·Œ¦Ð§¦_ͺÛjsk)•;^BR‰Ó¤o—Lw�7/2&›s$IÊl6ë�îˆkXOY|«.²µ²ËA¥ÉÚPrz M ¥Ð3î9˜Ívq3rŽïï.Þ� €i{jslU¢Yr²,]À‰ãê»±}�ùA°[<¢<¢Âùzc;K+@7‰ß‚òåéb}j½­,8m ˜0�0Õ~ð6ñ6‰{’èÊX�JŠJReWeïJÒæß¦ SµããÇ‘Ÿ[ŒØS®#HeÆBVN4qb™2]�å–h×»c¾¥.°¸`CQ-ƒî�Qâë ÏýE„E„…!0Z­ +.B”&J³Å�lÆ0Ê0ê×ZÐÝëÉô´Ç*©+©qßcØênî·ä«¢Ø�¤¨™NØì=†Üܨk,R‰ÎšQW"\÷i§†U;ߌ &çp¿r�ƒ%Y×JÒffÉîgºFòMô?x�!±ÁÞƒn³·�í½½ú¤–ÒÎnz›­í©/ÏÌõ¯÷PúZ7®°ãk¹N€|î·‚êˆs8r8¦¬>XxèìeÊE}Ï×Èר=Â&Ï&/²°�¥éà¾>`r@,]õ `Ÿ¢‚1–k~=¨Ö7š2šòùì0íµÕ�â Þìa�[R]5V;õƒ�i±íhÀ–[>ÈØd9e9�’5^ƒœó~ó~AAùON&n¬ª©ª©c§'ôçºí¤ãÐGþnXŸlf8‘±½½¶Î"á]Kߌ:°H 'œ<â4â4’-.ðñëÏ>þˆDƒÖ��»�ûŠ9®i•’Ü’Ü9¥òcn±n±fAkX^o(0¾{3Œùó.Cʯï誽Ú³©½|ÔBCN·löwm—òï!�s“^~@ÑæÈåpÀƒûßþ9íãi)Ç?îw"R[x¢dCnNȱծº�„˜_ 7àíÏ–Öºq£Zt¾áÛÿ²iŸr6.™h)"мÞ3˜,öPåS]E aŸ1$<6C ñ†J`>ßðí¯j Äày2™š³•¼wiöÐ.47¸¬Xï={מˆÌ¯ �ï Š<ÃßðíïÚúh²ŽÓ¼cí~9Çuš%vSÂâÜ_q¯q{§Ù3ãþ!+%ÙŠ˜zhŠÜŸßÑ™øºo 6ö–âyÕW˜Åh ¢ê²ÑgÛ£&V¶ÀßS}ÝcQþà ¤cÅIŒ¢# !+îMéÇÝ«áÞe³tŸ’É0¿ð ðR…YQüÈʽëuÇ („ö<½«ËW«ƒ„¥¾v¥·³©â�¯Å½÷ûA¸¿KÃýÜ�»/ìPôUló8ñ1Ò�m&¤àÜfûÂé/Ï<9³^‡àŽ·¸^®¥5jk€‚ lى؉DÎOçtÐÅÊzÝ«úŠEoX[«É°�¨t¬0P õü«nV¾óXÛ¥„A'çœB�BÕŒãÙÐJH�VÀ”$ˆ�Ú�5£tý95]Ú{@^C^ƒf=`iliì=å ÈX 5¼5ü…Ô ©\æ�Áz`= y¼ü¹Ô×½œšµÑXβa³paÅó~H$ezqØŒ÷9â³°‰«€ó$Ë Ë ©ùΙÈõÌ_1Í0Íà¯;°€ ed�g�'ùbá~îXî˜áãµî¹®GT È9Æ…âBáÎ<ê•s®³‰]JãXnmLRÛlæ�ûÿA¢Plí]íMôúÈÄEßÓ\?‹Åù�yGwntß}9Sµ3�Ø™‡Ð�gg å¶æ+1¥ŸÜF͵ÙÚžùòÌ‹›ëëžôÄ5ݰÖaj�è ?uPÙäˆÒˆ’#æÍro]æžêÆtÃï••>ôÒñÒñ=àÞÇq@vŒªv¾ØGRVŽÅ¡ÙóAN"'I‹¶¡ ;úô@q#= ¿Š7 XOÓ êäž!P¨@ä$ aK–’ü½{@l1¹„¹„JÎJÎêÞ3ÓäÒäš'ï¦û¹ô—)寮ô°4ž±"žciz!ìLDª…¶SðF‡h¤àuC„!Êr3ô9ú‘¶üWËËZêêš}ĵ’˜Å�ÅÐÓEÂ5Ä5$±öWØßìm ‚ë òuæñf`o•,ACÊý>E:g†¹Íf¸k›ó!kgc–ðMÞTdí; KôTq‹¾áÛß¡-‹ ‹EûOÊœ -MÖD¨Óòx=8 „u2Um“Pð3c�H)xІo¿{ÏÆËjx+‰ôIê¡*¸ ·¯r¸ø‡‡¸Z¹·í  hŒj»Yˆx„oM›Qœ™y¬ñh^ä=Řlñ¼8¹ãPPqRÑäڜăåªÔùÔí¦ø†oµÏ$hËKoÍ™ë,Y`6ä�ç¢í§;Gÿ) 6ñI‡ÝœÙ ž³·é~Êe9]ÓÜ}Ì/v`flœZ”ð†„çÛ”]›í;ÞŸ-·®§tŒkÁv-�!�âÌ£,PÕ x<.ª—v‰<ÇéâÄc½Âï/ד 3L2Lˆ¶¬‘ò€Õ“ù-\íÿ§Ù�Óë3ãÒ6‰¾ùM󛎹J�ú<ò ùÚe°uÁ’— !Æb%‹u¼õe‘Smú&îÒýQ”À;)‘Œ˜ ²¿|úÂ+Ò_!3#33Æœº=q—`pëw-ê.�‰–‰–YåZ;ÖÛ–@YBúnO­´+l$�–¢ŒÒÿ¾R@߆w˃{jÜR†ÑìyÍwáªÉT}ÄJ DŸDzìÓ�c-z(Ñ„Ëm}ð=Ñï©-ß«æ¼tynÀYèö)�Æ-~³µ=ûåA¯õ‚cú�qÝû¸ÖdÈÕéOOÉv�íP¸ý~Uð„üµÏ4j°ïyy½»¥~K�á)@3°��@êh.» €/© b�ÇžÍ1„É7Ë7C*Pé|÷IAdQfA=刱TìOÁº–¹é�6H[Ì1ÀxÁx�$¯ìаÿþ#� ý1;ʰ±ÒäÒdv �»?·¸O­Í 8Ü�UÀ/X9O„em¯Äí1ä/ýþ›}Ç©Q•igµµ˜©�µ™OB„â~Å™ð3áþZc²c²\ýÎ † †–©ñ'.f\ÌèYç£õz~ÒÊäx \O2_Ïݲo�Ôœé®ñó¹a’Ôá»Ùžwmÿ¯~Ç|n«�t~ ó¶ ú˜tçeù–Ð;F{K�Û_Ýw ùŠXÚpÐÑp›ž” ¾áÛÿ·‘iB7›ž33ȆÀ·ß«­–$…§°Œr¡_ü‡½û§²ÿ8nfd¯c&Ç^!3›TQFfvV"[B”=£’™½’‘¬Èvì‘QöJÊŒøu_çw~qº®çw=�zîëõßûºîÿ>ç�ûû½¿ßCsuYätç¥AUÆTü¡ Ù3 üköò³‰¾Á§'ÌÁ¶·Z_³ýùUu›g4ÓÉéþµ(T^Aãg®ã¶T+–ã[�ASø˜vFl`û«-¤Ïíjeª:™D¢Ñ¥‚C&° Ûx䃔¢ô•�DIy™WnD/Ëè‚ l{­Õ¹š@¯EÏ@Ä!Î'Ë\ºy)÷Ò7ßkOõ®ž­˜®bñm?rj …–_àòºª ¦¿q«™'Mèäþ°ÜÝÖ…�¿5ú8_÷’ë}NVÏUBá7J¦¨!cgažöëd‰Æ0±Èìï¬ ÿþºž¦`Šÿf«¿“lÌÝÊØ¹ÝÖ…>~yfÙ|§cûßø £rÞŽóB„6ÿ‚ù ë ëÚ‰»Ì—ílH´s¿…nçç'»à*ÎÑè.“Pü"æ9 ¨#ö4œÅ5Ÿ gÇjÔôòé×öû'#œØ¯Ú‡0+ñn2.dÞ-áE. 1®1j ø@ÿ�þ \¤Íw/w¯L–L–#^Ô�[M[M#ø,»øs•…9B�Ü€n¸Áéi’«p~–eî9b;~E¡*O«×˜‰÷ñõñÝïý¡Ñ�¢ýWlòoò¿GqCq+WDæuD‡C‡cU±±²T¡T¡êúvœ;™¡bQšø›øóäðßo-ÄÏf¬ PKl¤*ÏÓí¶.„<Ûÿïóƒî¬]BŸÒµ}Ž¿qˆ§‹ueQ=Z”ƒæŠåGïë!càkfá¼ðV4ä ØÀ´iÁÉšÞzŠ“6=²nú•úŠiPõ¬Â†Ô‡þ\S e�§g|„ýBŠûÀöïk)o_ßΈ.Ä4 7¤ ŸwŒ¸�úqˆ Vù^ýù¨÷°²M±V]÷Àc¬Ù`ûçšM¹u´C/瓦ãô©ôz�@¬N\±ct¤øa›YçU>]•œ;—Ê»2¶½Õ>Ö´ÄF‰9'gTîç `ζ9IÊ™`ù¾šÏÄŒƒJ�þB˜8æ9h0Øö~Ãb1a3?í={¿ðÅY•“]–ƒÃÿʙԭ|Zª>ÿ�8k@B”Ï�$ŽVæ%¸ýŠ…11LðÏQçÎÃí_GÓœx—Œ`Ⱥ¿?«1«q"âÿcüÄüÄöôç4îì%’Œ©\e5\Š•Ø�SÜž!<²Õ¾k‹ _í»žïɈ xªBJšÎK°¶‘z±÷W¼f{Ív'ƲÁ²!ÙrH¡u¡µ*Ûì“áá¤;°ïT+ ë¤P¡PA~G7}˜ùˆ«õ Im°;�Ýø�òÝÞÑ‘ÏûÄI'__yô©úñ…˜ÞâÔçÔj™œ‡xƒªÏéó…W1Îp³¢}ûŽ~ìw@„9ãÇœÓ/¸�äJykfx·Ù^úòŒÄæNË›ÈÒзó\CH¾)ˆpÃî±Ýã-Œ¬¥Ø€«Ëç²¾åç×ÜÂÔÂôLð®ÚÐó�ºŒ)å X§v!ƒÓšmuBп=^‰ª˜v$( áˆR‡7‚ɱ˜WpZüw4ÔÇ-ìªúªú–²€�Œ� ݺJщxxDYDYeÉQ~LrFr¦5Èoìçpò?2âVàX÷Í`�ÁuâSgLÞÅü GI²nuÀùú(ÎQœ[v\�Þ×d…I·I·÷'ìpìpã0d½å¬VˆÇfTÁ£±GcÑÛµKìätpƒ%d.d1O�äðyò×êëëfî•:�CLôNHe·wtäÙþÞÿZ‚íÏi™�hSÆ•é@é´Qþ·ŸÞñ3Œö¶¯bEÀ¦5ÕE4(Ü;eòOŽ:>ÛïÙ„b¼Õ6ËlhŠ¡açË1=£z¬ú¥&KΧ'k:Æ$žé·˜¿:’Ø ¶?§u7Úxâ¸PG»sÒÛ q&{ËcU¥ôHczQ¼,-ŒŽË·† MW� l{­ÝU,ŠR È�6?V;—„—b"T}Á†äíªy ʺO—*�³À2úÝ~°�íGMu¤-]}ó¦=Q±Þå€(wÖKošâ_Ö‘¸Ws‹©˜•_½bßܦ l¿g£ÃúœüêÎ2‘Wѧ‘§*(¼ko3ˆömDyÓ÷:Ü—;í^Þ±–P 6°ýÕF‰œ¶!†óµÂ Ýhs³­ý*²úé?b€§ßSû§öÜoÍV;|çü ò—ä/¥n2œe8ëL…ŒÒpaiaɆ—‘À�Ü�œøøva;áJª�¢' 'üï¾éÿž}“Pä��_ÆäÈæ�r *ùÃ3õˆ½äÙþ;îØ€ÖîëÖ‚jÁ¥¤D9¨±õx1¸"–yÖ’~EJ7,¯šÁ¨7{Éc°íý¶|2‡‘d.�øðºó݆èJaòT6>†‡"I‚4›òè©–0<Œœ|Q››Á¶¿ÚŒ†„búçIN&Í;\GÌìIÁ—¢ñqÅMÆ«Á£×¶<Ø$� l`ûÚEq³&·7Ç{oôéËKÛ²S鉔/`°�l‘ŸŽ/#N]œÒ&·wØöZÃE­:N"MCƒÐ«ƒÕñ­ZRß;çòIëíÕoÝq¾ã̹¤[¯[O<PöŸ Ž ²¡§óqÍBp\Ù�ê­Ä­Ä“ˆ1Fåa#JR‹ M±VÌp]£<î5 ]]b]b€RöRö¥P—~`= 8QÊuÿÜâ�ÁÔaêYÁ#U?'‰?or �h —­[¶q]%ÔUžÝ3�õÖWz| hOgvÁ‰Á‰)61á·—êä~…R¦R¦¥�ažaÞ[^dQa,,æOÅ!¤RºíXúv àt;nimi!¯ƒ^âŽ2ñmk¾MFÄ¢¢‘ïæ·Û:(ò2´HÒú^I1xŒ£ã¬ìétͲæþ‚qp›¤¦Ç9ÞsŠüï|sÍýýuP¶¨ñíþóûåJpâ} ³w›íÕ/ÏvÚÉÀ'H™¦÷vçgªò®F Ôl†v†v’MkLL«²i7öeX}K»N»ŽÒ*º+º+· °$¤Exaøœ-‹Ü<#P†K©Ä`A =..8,Y¬ó­‚é>Ù{Z7�Ã]S¹f² 0_3_ƒžLÕLÕÌ-Òe ¸óª1¨1¬=X{0�­†ûc¼.¼.ç§f~N/T…¥ €Ê—U[ÔOâ'RRw~1j¾þlœo•ù lJÝBÝbèT¾òËqÉ_±/á Á˜/jÆ�õå7373CÞÉ–””Ëlwg§j€k××1O�ÔðyÊ3|Õ³¤±h:oáZÅS¿Û:(òl糧TÇVªy´Vßüs¬05Öº½i«QB(šb&ªbs䃛Í ûUÃQR ‹ÀöϵÙJQÏÕYµ¤Ò)ôF¹«ŒBÇó'ºÌ‰Å `(ž>™W:Àö÷´ë³ŽDöG ÆÝ…<ÉŸC-Õ¾°ðP´ß²‚,§|mÓÖ %Ö¯ l`Ûkm]£ú£E^íÊ�¼i(J@UI–ÛƒÏläÃt(ÔÜcŒÍ´ ÷ZKÀöç4ü’ ¦…CýÒ¨t"ïNx=j7ŠQâ¦yÞ¬ICÔ‡ùÒ%Ü&mÞ;l`û'ÛHä;züÚcV ÄC—`ª}ûCÜlEÎ…Ô=Âïc–¡œ³òÖYìr7ÑØ~‡F9!KY~Æ“›ªÝQ>=¯QCmÑG—Ñ}ó`í53Ò&,¦êˆw�ÝŒ]‘Q»íÓúØÚÇõ9é‚ �O-õ“g,]‡mn}¶d'yÎeæ ÎR »­öøÃ€žÅ�õ¸}(äÚß9¯Âóý}Zµ>éÏ;[ ±Á6n‘J˜»íÓ®}y-|'ÖudäZÛeM `¾^‚!@[2îgÜÇ*_bN°²~ÞÉñ-jjŸŽŽ¨Ž¨-~€ Ç@þ •Jˆ3Cà)Fº7‘îc€0s9k|rÓ°h²ü‚Ö½ „‹–78àÛ6@_¼îÄ Å Ý. ‡¡‡�Õ(x‹@(Ûüªù•pšpÚ…1–¼+í*í’c?pøç‚Df¤º>žÃéhËÛƒ›÷´œ�>TŸ%.ñÁX2T‡ 9|Ëê–ÕûÆ‚áÜf¹S¿âÙè³QAàÈÉt2·tªt*õüV0››FŠÜvX¨;U®Ô0^¼2@ÌS9>|žfY0�bjzaÔ5ãáî¶O‹<Û{é·ü'·“³—úEè} ݸMIœ¢Ó®2-òb¾4²kgiبÙYU•�íß× Œ•k^ ¯)^º)€Ûj :Æ;Û¡ã¯zÊíºŒÄìÆàÁhõ§ò=ôí`ÛïÐZFL|ñ«¡Ž4vS‰ z6–åù:ÐuºrƒE9Z[­TÅÊÉ N8`û³›WÈŒõƒ0umñÒ6/…ÄÔ*jÙ‚Ó÷¼t^¬ÊŸ¾8µÑKטd¶_»H&ž—è�úüAƒB 6ºŸÿSºe®êÁg 6Æl[-³tÉ"ÎΗ•m`Û^k³ä ÿaïÎáêûŽ#‘ìYÊ5$Û Æ¾ï{D”%ûÙCЍ„R"{‰Œ¥¬QöHeßC;²ËþsîéÜ1%ýñ<ϯî{Îë�¹z稹ú^Ws>ç8ÇëYˆ[ï®{<«LÛùþþÇÂ?º/íÅÓ„Q‚Ž¢6Šøâ÷øcél®bÏŽSu D!Ÿýôë�G÷“m6˜_ÝG™v½gç1lŠºkQ¥þMjdt;hgÆÎ 'Ò¨Q~âXC9ÿ õï‘›’›JXŠ/‰/)&2ë^š\ór¥'q¨¦EŒ³‡w뀮8Ÿ:#t³_S•ÂY ‚;˜¨ƒà%ÔÕ$¬;<ŸäXô©ô©ÎßpÙrÙ²D¹•‚bBŠ EP&a&áªE¾¢�íÍߛϮ­–òsµ:•ÃÉ€q!Œë'¾½¢mŸh„Ûy(r+¾Ùq=â†_< ˜°ooßÞQ‡î ‰n·¬_E@5·ˆîÝ-êÅf:säé‘§FÏ·ßÕ¿«_N±VÞðz©q€öÛÆ·¿û™„êVGeäGöV�±Ní²›Íº"ësÅΠT�-YY‹›šL³öö;Dƽ ô¢‰pït&Š8±Ýh%‰É¯FF_³s$ü³.�Ϻ ÙŒ®Y—*e; ¤XCƒR7[Û «ûèð¯7£©ê‚­�{­m×AÍÙªOAe¯º†º†|¤ƹ݈>Ba,·¾w~éü§µuÖ#ÀV¸Ïi€Ì.€‚•×y+Àóîé;T£:5 ÷·åå5;Y>_«R³ ²C&@÷©GŒ1¸E„*$§´‰Z4Z4ÅW’õ’õÇ÷ÉVƒ®öÜ»qïÆÞñ½ãæ¢aç6¦Ã ÃpÝPBüçˆR ¦Ã{Ø0l¨ŠdϘaÌG„¸øuϪ½vþ¦7Š™ÍapHM7D7„�7’�5éþ‹_1)>)Üìêïêÿà ¶wŒRÍRÍÁêŠùSISIú/ÖŠ<¹^º@ŽÎ›Í›íïµýõÞ,QÒcMõ.Ÿu�á'Ñ1‚Ô6›ua¯íßé>Kÿ¶6dÎ|þã‹m{ܼßóµõuê­Ø- ÝR»™±¸#ó Á°9žÅq£-¸öïk&ºä!O�§9LX¢ã_�výXé-®›I2û™ô�‡#''ò„¿#®ý^ÍýÀÊuRÅâ::Á­ñÃrˆÉg…þDË[Ü(ÕGwItúR¥õÂÛ}ßäâÚïÕž®xt†vÛRÎÔ.é¾< ã+<ˆØééÿ k0&ÌA(k°½>%Ò�kÿœ–Ñ:f3ƒ8눿rÊ‡çØˆNH´Àå=�F`Þ…ˆ4¹²ƒR<ÎÆN¸öïk• ÚÌñÁê�çvT½½Æß|ÓdËXu¡÷@æ$™:¡¶j×ϳ¸†k¿[ Ž»›È®’i¥[ñVN�Ž#…÷@ÓiV‹´¨uDûA´³�ö[<\ûõv’ùU¿Äþ®H‰j“—“Tç®o›\Äž3%¥(ÁÞ™Hh£e?Ò7l6g ëeæŒßfÉ$ïsÍ–LTt¤©¨¦ŒáóK+¢çúE>š‰Gñ¡µð&¼²*…^s?˜3!mLfL&Û�»�†ýƒ_Q P �©ñ$ùI²=¶üe;;‚¼}-‹¡±¡±irkÁX׫͸Öuu‚ë)޳žü —‹½ƒ&%`ñ—"zü6›3a¯í­v De<¹¯Ë®•·Ð2W;dÏuþ“[ÿ´­ y‚é¶-H»‹÷³Õ*�m³JœÚI´S¥Z�ÎN„œIۉƵ?³]€í3¼ù‚”µCW˜!ÕÔpQ­³þê@Ž¥²OB%ßÉ¡jû(·í‘½¸öïk’%­!{;"Íp‹^†™Õ+2ʈ0}šŽÀ×*¦%P9=Û¹u¿-®áÐQí÷jíÊÝf�£{Å:‚dª÷]dþ¢áhž|,ÆX?/!pš×pí¿Ñä ÚÛ'âçkmhGŸCÎ�Mí$´Y”‘mçšb�ÑúL^LNчkÿìÖÓA–¶s¢�Â&šDŸœz%c(©ùÄ­…TÈ a!Ž"Žë©­©hÕsp ×þÔ6úú†·¤—ó�‹ª 4}ÒÎÇ¥"Oñªº[¥IoGi¼œ]DD}Ììòcæ Ä5\ûo4¦xÿ‚'÷ãì\{Ü8ÐŽðZ¡�{¸c1y˜™EïHò‹‹ðÝÖ¥ŠLSv¸†k@³ÿBUœ¯MjÎû²Îêi„—kIö¬—:98 d±tî¦qÖ ñ[ÞèÍf½K«û´Ç¬'z½‡›.r-=YЊà=[ꔨ‚¨B ,‘åQušñð�#ßMMrhŸò™òa)ðQè?„ÎT4e|ºðz"r"r%ÛòeŠÌ¶‰¾8Ø#ØC·f­ª€õT–^VW̯˜cŸÇp”íjê·�=%á ©þœ²Ùy Éé÷§cä©hŽ×ñ×ͱ©:‘µÁÆÌ^ßWëWèv±ÙÚ²œðx—Ù.‘®*½cÒWŸSÿà<†ð�Ïc Î_bežL×bÌæ½úå†,|³µ½¼ºsízô:q‡°i®u+ ôúA'hÒàXϱžP·Ú¹{O o;ŠÏLÖL6ú ��†-+€¢?v?¶@P|bvÊ�­`ЄQ,)øT}iuûœÕwf˜ ìùÒ²ÙU…Alm$ßü„ˆÀqšã4¢ H­H}^ã~4H)/�(°-°]¬–'ÝXCdC$›P õÏÍGÞÕi’¤†`ÜÏ1ÌKñÀ€· =]‹Çß ¼üÆôJÞx“5@RIÔEÔÅÔx_üJBÆ_1î9îY‚‚…Í´'c&c†0kŽ‚²�²-÷ÙZGÞ¬G¥0Û“4—4÷÷³ I¿ž£« ”iË$÷RޏdØ‚æÙì<öÚ.æÜ'@4í-¶”OÒâÎâ÷…hǵNûb(ê¾7Å´ãxêKÖk—â†%™jW¼/YºQAû3Å´/_®ÜÏÙ�k¸öÿÙtŽzš ¿Dá ëLD(ÎuÒP]$‰Áï3帛Á“uü ÏÌ\õÿUƒ£‘2&ÄïœxM¢,è¦\�²´8#W8‘äL°õ<ºv¶b[†®áÚŸÚú(yîÚ9ÎØõbšÅ�º'leÿ¿x®q[‡E•i+Ÿ�¼DYL;5"Yò-øÙvøëq[¸i 8Ë»W}¹÷h�”¼6úl«afç|=Ù×c,ÒÜI³0�Vð�Ì¥eŸçé‡|Ô”±Ÿe³�MJh23›Ÿ{ê‰EÞ�wË)aušh¾ýåIz°ZÝ­ÔAj§e|��7j±Ÿ Ž}}öÏ¥aîß«í×÷úVK�Q!9�yyŒ 5mé´Ñ{•sµ2swrżZYBÌOAœÍ\',ì­ V®nvNŽ>$?nûS7ž¿¦À�ÇÃÉ!(x.€äþ©ÿsßê†øëuu[÷ äƒ òáÁ$bõWp!<>8?‰Àƒðýçþ o'ÝÜÍ\!3žé>Ö¬Ó¬ë¢ê¢’-Üm»1)%)%5âÄŸ ‹º}²¨pñ†×(ëܶ§¬K—ã J{ Ùz¾¹†’§OPÍ@—£Ë­Í9uê2ï¨þ ::]9¥t¥t%l“º9´9´hɑ۾†¾†Ÿ†×ÊR^Oû,`‘P…N…{&Z¯pß%TóDìBÚî¥æÆåÍf¢ØÿÊ:Vô¨{  ¥ægO/"¯Ÿ7§²Ï•-iŽ¿v& ÇÌDù~<ý4úZß�}W/êÈìÂ¥ë›Þ/øÖ²ë±ÌP`«E¯e½2v|‡™7¦W¦W²¿`ÔhH´bËS¨þžÖ[­·øÄÒäÒä%óSÁ›®Ÿ`ÀMÍFg‚s€vaâ«þçR@|Ûý9ý9é’Jxö[Ü®<6%‘-“bÐAòÅÈ’¼Jy•Âl  u§uÏá)¹*ÍÃëM«MkI‹ÜØRÂR‚Ô|"òç(¯/ÕvÄ2Ü0zäYå1Ü9En…芿þ&§ Š†'`ìûDâ‰ÄUi~c5Dʯp u eE…] »8í�-,è‹Å‹÷�d“¥¥‹×Öm]�ŽÀô¦;²;\O_g¢ot’Ià5$g÷ÉQyÒLo6Å^Û{ ;ïñÇASjÇUmZG _Zà®ý m ù<"~ôCDq¢6ïqJVÿ|5“A­ú§;„e‚#-h„“Ñù-¸öû·I&(£ñ­¢Ç©²OMx!(…+BS$ù,Í� ;èð.„4ð^k‰Ë=þ×þ7mLnlìb°Ú·iz”6Ѫ¦0šƒãŽ ºìˆœYè¨ ¡/Ã9Q×T s\õ�Ú" a«Í©O–»êl´Nlk¼jíü;=“øŸÒ´†çt™-wy›ÄÇxž�|FRϼû¸ã5œPëSÛC(7›y¸Õ\ÔfÇÀ! Rn=HÊ›$l>k…H€Ý÷Úƒ¿Óy¥ó*š޲¡«ŠM_”ý½ÙúÙzC=2=2‹O€©q‰ 7rr¹è�ïÐåà½ß©(—'—×-Coeh ´:V :TìxC¤žKE[ sÕ—=—=àÍåÍEt õ!È·÷ýã÷�54ºà�H6FkHk¶â¥þsâùbó;¢“A6x$òd™²~r9Tz°Ã×¾aÝÉ_³8¸¸»~wýÒA‰–AyØ¡_1=­"2e2e¢ï…�9zèèÐÑ\dwGGG±ÑZ´úëÝ¢\$;©Rû˜Zîâ¾Èw7)IJHƒ³åCúÔ7;¦Æž1g›p=8~E)‘¬o‹<¿ Áœ@·sºg¬Í@7i+¾Té¼#ê× þø˜Z5XÏ’Û:’­™ ”ÎiÝlm¬~ë�•õšTÏ®`S[Zëù.�Ëû`PׄËY—³\]ÄP=rÍ2sþÁÓß+¥)¥¤ƒÆCãgҹ㤔 S@;=AZ8 ~þa0†ß >ïÊ3Êg”f„òtÎü—'A˵çðA3éŸÄ0Ò?Ê'×ùºÚjVI²?dPü\í„áɃÃàb(1TUÐ8ׯÔ]Ô]XìŠ~îÿÜ�ü€Å- !e˜£ƒ·˜ µ½Ô$þˆù7™U[_�m„æn>ÜÜíÛ­’W%þ+l3l3frUÂTÂNÝŦª&f*fz›¦â£�…�E»ëZ[·¬WQ(£adý?öî;œÊþqàøAYeg“QÙeEf*¢ì-{+££ˆ¬DÉÊŽ$Ž•™ŒDˆDV6!##ë±)}»¯ó½qº®ç{=éùÝçõßû�s�ë\Ÿ>ãþÜàxûï½|v Š3·{jü|²Ã ;}·›S£�íßuÏ�ÕÑÜ*ZG�A$â“dKp’>g©ŠÝu®¯V,U¾‰Kz„ê"6PƒÚßmØŠlEMFVƺ™lµÈ{+<OÖ¼§ö¿-²Þ�Ë0nÚ]bÍSFÿBÔ ö;›ú—'4TÒOé„G;Æ °+ˆónѶ¥ò6 ×Z´=îÀ¸¢éõj;«}.I M¦ch¯§µ_;[Æ­ûVU�IÐ_qJþ•à*BöCò��³ï­¡¶³Z÷k„ÊŠj –ÃÚ‰”ŒÀµÏ�Qy'üFFÍâÓ+1˜ óéò¢PƒÚßm¡ÝîöÏ‘Z|ûN$›é°h¾ã·—ü-•8ÑçmÄó²¬<¢—dô ¡µ�Ö^_µ`µ/Šž¤”¤t;Sv¥ƒ�ˆj'Ý�õ½¦!×µr®b¢’yèFë!¹¾T:A!Gôµ{—]^–hd°öÚàÈ�Ýn- ;V»•`™#:7äf " }QнI„2By�sÜé¥/ƒ\®¤Õîo¹¬º¬"t/G_Žá˜Æz§P×п®§. Àjåx„bþ°Þ $9jÓaÓAeCùÙ°; 4uvôÖô³Š.Öç@òãu€)ø<ƒÐËÝËMÀ › J] ­­_Xˆk½ÐûcãŽãŽsÙn?G€×ÚÆrPä�2ýùð‹Éj”3)Ê1ÖðHCµ‘¯|�óèòè¨çŠY¦Ó%ÿ gUgÕL!D=¢¾�Ýr»UŠUŠ;²ŠÚÃØÃøõ–þVéH@ —»;ú:£ RX'мÉÒ›6lÌJ0ß#Ä1�íp†Œû�íl•€…åj-õpÉ݇N³†à@mç7 .ë³¾b Ÿ�S=Ónûv€QøïÜ��G&6J¦ÀDi8sâ/‘¡1ŽsÏ!ôyÌ ©CØ*©ûI)rä©›ÍI·›Çìþ2�I|ºéRƒºy’Í’‘ |&�÷ Dÿ¯/6ìs&b‘W¾µ+qWbxKx^xÞL! UÏõ Ô@^8k�`p¡ÁBñÎKòéáR`R`J{³’­äÜèÕTº¿1,©Ê¡0ÎêÐT%%Ë®è\ÑÉÔÌ—Ì—<›Üª°äxÃñæ‚ĉY*Ç'?¦à¬àL§…ósëâ"gZ†(|Åãºí(�ªa Š†Í ®_-QäZ’`äs¸Nr�œ�lÄå80ÿÕÓÕÓZfwï8æx£³¤ff7˜ òˆôˆ|…¿YíË­JÃcjÓ…Ó…èstxBV"O#iMˆ'áåÑýåÛÍÑÑŸ/�—NqZN\«JR�Y>Zü ã)�f÷�£wª�"*™'y91¿�£óo�£“£~K ^ww{»¸ÔþâiÕíæTè¿å{ï½…Ú¿§eQFÙ—'‚¥ÓûÄß­M 2 wµ®šâÜmžÐÑÓ¦ðl“É?3ìòjf‰ñÕÜ(s -ra W)ßíÕy±Gj¬D‘$#EÇå~_²|�ÍŒýPrÔþ=­£ÞÁï M´'7Ã%îßYœÊÔNéÝ>Õ¥…1qùvÍ"fPƒÚNk·ÎE)e÷I[ó×L=Ü›j!R­î@únź¶îß®Fè&´„5E¿jPûQSjÉÆÒÚ¸† .64ŠòäÔl¸_Í"ªâö‹ëlÅœ‚ZØSÎÍPû3=Χ”Ú›KÄ>Ekû#å‚*(|kü˜Ä»?FùÒ t9Çž>ëQþfõA)Ô öwɘë‰üåéÖ°^ñèQ<õù¤{ã!ü†¶#$i|—ïJÜ›-LJÚÎj™Ü1¦xšñ/Žó!—±‰Ôº›—>NÞ0a,Úá@›‰éòp™Îj;«Y˜Ñ Íï>£/\T¹HŠ£Ù�zÿuœ“ëÍ�Oƒ\ÌÔXÅÑxWM†;¡öÏ´§¤$®³{ïâÞ¦3'µ¥¼b·AÜïßÊz¹r�Í?z·®ágÛaic¡¨ ÄÇ´~¤\Í™ç¼!mš»DÍŠ¾× 9ãúåÏe¸^4±r/-æ¹Ý^6 &üa«"g¶Yt÷ú6#””‘Ç N%M%¥¹7UvQcgëÿ–1¹1yX䙬3Y3Ù+iÍpÀ[\€uvψ àYu4ÊÆ­¯¯˜vœ¾9}s° {T:®ë*HÖ¿JíôC±ê!Ú­ó¬«�àŸà/LÀÂr6ýÈ¢G.Æ-ÆùYúYžæÂ²ø±ê®ê®ÌO¤A?wàEûQ~à4-ŠA䃧‹(-D115Z\JÒ_1V˜4z¥Ât´5´5= Dç:²~…ܱsƒ…ƒ…ðlt…¤ÀTרgøöí#ò6ØÌmx«Pl€ÁÑ � ô½†Kðήjç@>ùRJ‰»|ývÛí5 ß]yÞ#M4¨³ñ¤Ó”fñVKæèf‹ÀQù•¾”3³uÏð"¾sPøûç3{ä„bê—±ÈXݳã*x6Û8_¾zÔt+dÈMlt�ý›Iö‚ˆø\` Àê � þ§-á²/=ÇåVU¾õØî±]îØèب±$àÊn@°@*­Ødè ˜£A¹òLë)(Np¿ï~_ –�eu�uÐUuvÐû¤G“(ÅXfÖf;̫ͫke{¥öJ}è±³iFˆ¿%©+©K¬J7óciØiØe×z~.ed…èºÀè a‹\[‹#JXÀc÷#ëþìx¾ªŸ©ùÐ) {G\A\Á²6Ë-]KûWðoðod¹Ó.Ò.JS¡SÅT¸¬pÙÆ/ ÞˆÛˆ»'v3ŠÜ­*ª²|ÇñŽãýßû þûÜñàƒ"/Üü26.ßÔë¬'m·w…>¶ÿ‰»l¡5 µÞpoİáQR¢z«GyÉëÙPð²D:哎Р˜”Ax^“YW66iÔv~[:“ÃL:•NrpÝíÖ«èç¢äH.¦±‡Âé4ä1P/îò2s½�ñú5Ô öw›Y¿HLBIþ�“SÈ2þ$a÷¦HÕžïƒ¹Ëø¼òêºTžiNš¾jPûš†$©eƒûà±.�nb#YéK‡© ÅÊçp¹B†>“Ÿ½_F‚\¿@Žp�ÔvZ#¨¥Q%•¦%™™–°‹0£÷Œe¿©…syièíc¢¼Öý¹ätd�PƒÚŸÐxËtd’¥ªv?ºP46ò¬n º@éíÃkGÈÔ-ê…”5qã¹hïÿ¯ÛMqÏrK:…ÏŒÄyšL¾Æ ®z èkE¹´fãXüãü1½Ñ~œÖ‚ÈíÖŠ€ÇRi¹·Âˆk»Œ®Øv³¦ Pßä� Ðñ²1›1›áP~{lk¢õ¯Otnâ€t¨½˜ØšØÚ› 0z‘NÈ¡p6àר¦3«mQÚ\–ð@ŽÆcˆ1„sVŠÒUk7�eÿTÈÉáI Jó ñç÷8L5L5ñ1Œ6Œ6{ª2Plÿ8ý8ýºÌºÌûë&û,ƒ(ƒÈÞ¿®õçü,Ä,4Øäz(<•&R�¼(qrYç˜ÖÚê㾚$¦[ õœ÷ÉŸÿ~Îëì-ûæ}É¿btrtòˆa1a±E:ÿõ4¥4¥Ó8,]&5&5ÔŽ›%®mõ¹Ä''‹¾ªËeq£åµß>bUí|÷€íÖAÑßÔ(]LwÃ*Õ$ OßMÙÛÕÑöEìœIHËI/Å£9Öùß9sÍûýuзÈØ7®¼Üç†ä†É~xþÛx_ƶhÃVƒ�~Æèšû6s 1hý ÄŸp*ëTO¨î‘˸*U8j]ç¾ÅéÃéS(vŽý{ÌC@¯êÁ„ÇJ˜BA¼Ñ €ñ…Šr߆ÛÏA:óFýFýv‡ œ®JìMwÃg@Ýó(g (^ŽwÄ5Ç5·9<˜<˜ªôÓ΃Œž��';Ÿÿ)ÿS^eÛ�W:®ÔÊ%­ðsy�µshLÍ«(yJ�ØL�¡\ôp×8­ÿŽí« Õ ÞöHÖNNŽ\ieòÇ €_qRï¤^º�/¦/faº]’îCîCHâ6$%’òfÒf)ô[T<4uªpªÇS= j<å™Öv.ªÞ]€ÏØ\­äŠ©Ûn}l碌yÿÄVªÃR#D`ý)N”go2{¶ó|Æù"öÈ{×­‰zÔ"`ÈÂ"¨ý¾öṸ÷µš_��cÕŸ¶'d9–ÿ¾ÝšD¢ æÝç﹋Y8Ëê Ôþ™æôá® 1‚Åd„)ñeZþ¸Féõ¹ñÛŠ}9å«—Üaqþ{Û¡µ�ÖÖµ«æmòj–ûeáa° GÔ%�,©é¹î}â" ‡ÑðŽ0¿Ö¦{p»©jÿžFPòžmî@�ôÝ> z±éã>‰­f1J¼´O_ëÐw﮾‹pHŸñÍ'€Ô~gŠœf ¨á¿øŠ¤_·Y­{O¨û%1ÅЗ‰]#ì2TSv"¾ú ížPƒÚŸÐ¨ÞŸ¢*—÷&Â¥nu‘ÍÈ«×Ö\ð7`öÜ`¼/HgTrßMRžõ“PA1Ô öOµ`§\† ¢;R3Lbɇ2ƒo‹Ã"“µèrNØò=¸X_bhþ#¼¹jPßžøˆOÝ:7ûÙ/S(ÇU�ó®8ybÿá ¡nƒþ*^{�³Æåb ¡µª©¿@Jt´ÂÓ ×Xa2¥†y ü©rCTfSÖÆ¯õù8cà{¡öûš¨i‰#¡P#s ¢|Z5ÁÜúâ!«RLØ‹½cÑcÚ YT¶¹¹¾˜Ín¦Pû÷´î.¿KG•Ö'_.öŒ¿·³báŽh¡n4bw*ŽÀwÓ–Áš!mOÁý%ËyÊðÞ`¶Ú˜‘+¼¡^ζ }o”‘'~¥šŽ½œ:‰è¾]ΉíöFñ1`°¼–­H_@÷Q³UÐh­ÙePÙa‹p‹pJºÛXE°¹#Ö-¥EßâÝÇ»îxËí–[!xÎ`öPãY=Z70ë#QB9…ˆU¬©é«éÏúÄ$¾¸Ê ÇYhUž¤çA�Tð�*[Sd_Ͼ>ˆ ¸Óùöî<ʽà8Â1ö )CD‰‘±/Ùe+»²�0–ìûNˆ²eËž8DJ8d %Ù‰lÙ·�-E¤²?ÝלûSÒ?ÏóëÔÌë¿÷åškþøÞ—ëþ|g¾wdïY¡™1д3d2�‹ƒ‹Ãeéî³;Ø8lœ®¥ú}Lùx“Rh JG Í| #Jaeûõ;Ú–õ…_ÔAžù ÏŽM©ù©ùYÎ}¸5ïïFú#®“]';8/×#׳¢ƒîu@ÏpÏpbÅ3ÜÔ¨Ô¨â¼ífw¢³äú4050¡ïû;˜C[þ`©‰{ûl½‡±;>a¯}ÿ@'&|Ž�;šN�õ4Y¥¤Cðî£ö×"7¬Ù)q˜»ž‰…W´_»p{qÈÀêòZ2>â¿âúö¾?É{YÉgR‡'¬É™ _иfïµ¶‰>¿µùƒ�.‘ŠW cÚŽo¤cmu Ô{{Ô_ªtaµuíÝ“0òޝ¹+º+ú0„†²6ܹȅ5€ºàÞ Np K³*Š�×»!Ð}gÄ߈¿Ý|ðÂ>ÙWƒ|q:­@Œ¥k(´ZS ®š‚Î�Aý‰À…À%_ÕØt¹ F§F‡s’s2³.MqwGÉŽ’Ù˜ê)~ß�!SætFÀ Me ˜éc”ÉÇ5´1!BÅi¾˜å\·àל‘‹‹FÖÌö†?ù}‡ú¦–*•*Í=�V%H-Hmtys¦p¨pÈ¢j;_øN<mŽ+Ò+ÒàzzB‚ZO‡KrL¬X'‡ñtp[‰ ÷Ú÷G_Û?Óÿ†_¹ÉVÍ ÓR÷¶ ¾ôŽã±UÏkJ‡s°4ìL¶#Õ�1í÷kE¦ªu•ûÖL”t}ø Û�¯¸çºôC5ä½�‘íæ—‡µŠåzé;1 Óþ íù¸YIÍq7R˜ÓÌÉŒwöÖO õ�Ÿn¼xføa¾ÞÔVÛ¡2ÕÌfw¦ýÚ-àÆkÛ”-„Ø;h‡~ÀÙŒ{Õ42E áú•ŸäGÏÏlÆõQ$?»ƒÄ´ß¯�§+ȸŠý(¥ùlÁ¾àÐbº5ÃEdS'óõ̳%žzQû´Ó0ígksTé®Ï‚†¶X`ç˜­ŽŽ>áÿÖ¹Ù¡î¸1<Ö‚¦2O±#„³ÿL8àg�>ø;pôíÁ³`‡“1$ŸdÏì5 ÆÆÂª ß)âè|ºƒÐí4ž‚(�‚P4 ; ÛýéL× Ç–Cò®Ã×¼¼fGî�ÜsøëÄq‹-#ʬ÷¯öÑQ6 Ü–<r)ìÊíÊ-©’X²í8ñ$åWEÉTIL=�êɈò‰òxPVTVì6dÙPX™X™44Y½NÝ]¨_¨_v†|õ÷U‡Ö¦2G\•PèZ|5ñPîãe¨öpÍ(.ú¶¹pE`WyöÊÙ+«óE5Ê„¨3aöbÔaÔÑ#úÉå“‹˜:­å&å¦÷S{ÃÕÂÕ4?nçuc§ð Àm¶6¶6ú¬«¾ÛZÖŽwöx¾qk‚M¯³Ä^³®ÈæB!¯«òú›Æ&ÂËÑW#f_cöw¥Œpô·Å‹°"ÒÝJ‡]n?®ÿMØ7f]Ü;g]¡ÿœÍ#¶ÐÖl7¯ÊæT? °×lý³üLçvýnmÂ�öÚl;Áa�iŽž‘>�­K|É ·²Xçúr¼pæ ±TO’™ëîô߯!ÔI‚jÌïZ.û!¯¶¦tº; Î6ÀU„Õs oæ ó�hàp^+kLû¹š#ÛV"¡LEÓü”9ļôh2™ýªüÃûÕ‘L1�°^ïW…˜ösµ�-çþàA³ý7Ô;4™9Ê”¹È]|ž03·�éá>à’=ËôÒM Ó~�–Õ½`ú�Ë×{ËÍó¤þÕ 8î¨Ã­º¡ÒÌe\w%+•EOžÍ²Õ³Á´ß¯•ÔF¬©Ð¦*ö_!­›Œý³;ðbßB½®ÇXα"®ŠüÀ _LôŸ­]ŒºŸv\.ÇXý餤ô–;§ØÚÜ�pÑ‹ *A#z•å, lùT&±0íÇ›mç¨ë@¤H=¢c‰âJâ¾…¥uô9“œ¹㺿gRQYX—b'|¯9ÉçÛüNò�„.,‰£Ë©ØÎ�tnŸà�%¹ ¹J;u%‚ãÆ…±>Û¥¯‰×‰×MJq6r6RòtJH™l|€Á¢EW‘v€¥G %ÂE~Ôªé q…ŒÉ?…Ó'Þ.Æ»€ð½òQº�þÀß”î8;=¼˜!FÀüGB¢¶{úQ®yEÒ8Úk¦›š|ᑆ3b�pcÿL馮Îz„ðGˆ<ynQ¢Y¢y †®»!636ÓÖ8¦ÌKÜK\$u;ù;é Þ8I"%‘àzJ‚¢ÖÓå :›‹4"Ì)áC—÷š[¢¯müK©x•' _rmÚ×&ˆG÷I\éÿ•Ûè²�aêE‚}¼—BsójõÌþ~d“ÚCQÉí¶ó] òºKY€iÿÎÂ|LçV;á‘>uþC™uÖú›£Ç e=Sk9œÆøê-bˆ"ÉÎcÚï×N?ê::Þi¸–Ï.ŬkÐ,ó€Í,G`+UPáȹìÇg5Ã4LZëÕÞìF™K•4õbh†…úýÄë�…Ò~:km˜¡¯w¾(Õ{Ó0í¿Ñ$UˆSVeL)iÞVÿÁpeA;³×L`]\¢÷Äû#ñJó$$#˜ök·¡>â»ä‹=d¦q�ó$Э¬‰ô.«äµL†›ü|,å,‰ÊÐV(7•âLôk{ûò¦ÇiWÛ ;y1êtò'�j°ê»ÅÿŠ9Ûñq�+f6gà2- .¦aÚ£ÁR|Jªs“.Ùi:ßdëårÝ¢N*%]Ϙ£¥×ÐÊh½ÀIgòXöþ¦aÐø,>QT«žêh2®‰pµô}ÖûòÃBuÞ1.|M£+3rWäÏí5ë%ÃÆÂ­Û‰½ l�†çv0"�ýRÓ8¨Ö|VhV¨ÝÀÐ&¤3T\„µZëkÃÃ]™ÚHmdJ&€ óD=¶ à³”1Ì¨Ž§å pd!ÝAÉ]f f ¬ºÇI³„sŸ€lÄâAý:t(ùØòiïy¼&+&+È—€…Ï/õ£â0P©,])])ü3³Äl÷ÝE\‹¸†�V&ý¾Äæ!k*€s% Å a=ûB”3Ïjy^ÊOû¹}q¼8ª8–�F˜-—-׈©�Ú$Çü#22x”22ÚçÑUf¨‰«‰Ó‹é›thæ±ÝA§�šdOËË Ê Ð÷1¬%ÚFM™k ì~�úù´ ½ö1N/O»'øIQXRš7•ÿÙ´Â$oCÜü`ð2WaTzÐÎÿýf꓃ê4ôÅ¢ŸC¿±�Áÿí} ƒúRI¬ü …S›oÒq÷ZÛäŸßzõýNN7[ÐImn‡ªŸjN=<ÍYÇY7ݱ¨z¹\7—mîkÞþÞþûX’!É�„›€g“8‰€�C¶÷/çÇÚ5ƒoΠÀ�mR@¼ê®”®”E_½Â•é¶…yüáž.ú€Òc¤FÐd«vÀíÌíœg¸Ã}‡ûe¹hˆÿ---^õpõ°»{éîÖÖ²R$&¾¯n¢L¾¤@R�²¯ÏU@©¾_øVyÌÚPQä‹àóýU”xÛa¶Ãgô.&•îSÿ¯Æ_�“35ÝŠGwK"S1SQöPók‚`‚`Òôí¦¹v"P¸n|2íFÚ�ÿ{6&á?{tµþâ=9$>²á:/ Nîµ��¾¶+àǸñ–=„6Š!/éí8½ΙcÚ¯Ó>é:½s±Ï<³ãH¬HxÒÜiXã–+n8ÒªË8š#¤UËà Ä4LûÿlªÚ.Ëç: &°”¯ާñ–ȬôSR„Bâ±G.²ÜHÈ:ù·ù+â“ò1 ÓþW�³€W‘/|_y±š1}Éàþ5Q$rÌK²Ù1ÝÿZÁ fß§Y®˜†iÿÖ6²ÿd¶ù;š�öezèSÞ$~c‹ÿÅs²{úŒê.Ž–á¸$%Rß åÊ8=‰~¯dݰTǯ´¹Uj+I¦½ë}x¯´ÿó½’WÚNéYÑ ÓÈØA”5V­›cwawÍŒ]t·x¼¿Ã^Rãk9¶9¶å-ÌÏ™ŸŸ¸°¾W!ðelÚ{4§Ôj‹ƒPd¢ƒƒþ‚ j j ÝõžÉq½·*ÑÎ{ ²ÜbEYÓ“ð jh<ÓxÆÏè¯î¯fj5±S±SAc¡±E!�ñ»«*«*³˜“ù>ÒöX z@•J¿m 6¶/ dù/áSYÓÁIǾÀ©V}CnÈ�³†XC©$"K­BDooƒw< nˆŽö©T¬T,^#ËÍß_SÞíŽ�ßi|�ÉeÇe®§¹æaý…9è§:G ³©t¹Ï¸î¶žÎ\²þžøŸuHø�3µÎ•¥RñL‰‡oz>¿§æ© ‹þ¬­µ_;St;*9Ë Ë�Þnrõ#le„ÄÇÆÇ:Y$ù˜ˆsQ§·Í|Á|ACž?„?„× p'DÒ0íàPˆÐÌd�RB3¨ùÍOÔNÔ>r^½Ë¶ÄÒTŽx³«’@ =‚蘭`àAñ ôægRgÒuŠ8�òÃx­x-�*�ªŸ–ÝEëEëy¦zÏ}KAAŽðdå<£cÂŒ ŠhŽ>ÜÒÀ¦‚™ô bÝÖ¢Ú~còíºÛuîÍ!Ç^ø\ú>ß¾W“ðIøkt|‹"‹"oí'æ_ß{}o­|»ÄÉ�äi· ¶¸·¸ÑghÍÒ¹vÁç¬ÖîÒmtµ¦Êî5CC¿>pÅË,ýkýq†眯ꈮ~t_çM¼v!Œû…Åô‰¼Ó†ØÛghœ¨ÇÎË?3�WclýÄ"X-y#’.”Ë{Í<Ð?Ëáš¾Öì?“3ýßÉ›v¿-ë0Â4Lû7´ ÞIÞ¸À7ÂÚ3i*§Ìåöñ)V@Œ+õQ×�ò‹FQòg¿À´Ÿ¿-Áiô’SñždJÔ N1\•¾Á÷¾RLßÅBz+$¨åT실BóRLûß´É……N®ñzï¶UFmª4ㆲ8–Ûv•Z’Áo¸Þ‡®Úg’b¦íÖÖ!¸Ý¦n¯‘›L)Y´F[ÄÙþLϰýUšÒÜŠ:-ò "%žíy^ÆØ»«¨(×5€ã ’Ò�"¡¤R‚2‚´t7ˆH‡€4#l:¤ARR�FJa@†TEJIi)TÊãwfK×Úg�Í>gæw÷¿˜5ÏÍû|1WÏj›v!Ÿ�ð$ÓÍ—«›ùng�»Àçíu.ãÞ¥Ø�{DÙxëN3^ ‡Z;3�^¢ïUß«q]Á´í«¼œÅ‡F¾'Q,Q¬¥A3M3mŽ h^Y{ t̯4�}hµõhAЋSÇér‰Ÿ?ÙôŒÕH’ß4¼º‰’aJ`@8$S;•ÆÑÊ «¦«f¯ˆÞ½»`ä â4þ‰Ý Ó Ó¼Ûgòç&oLÞpwi§ûµÍ Ù1¨Z§.B!oTâë©:…²®E'½üæ©Û¼Á`,§¢«¢ë<Š˜+K°ôwh‡h‡à”�›‘›�'#“+—�È@˜ëȶÏoŸ¿F¸“ÞÍÝ’©x& • •Èg ©ˆ£±óé$¸ x¡åÒaJ{���ÏüEÆËÎjKñ²9øÒ>Ÿ|îXèžb9ýo] ¾îüƒû|A¥�î_LÐÖkëFš,ÜÖ½f›üëWéØ-ÚeZY@çN¯M@›Ö”^ ™*àzQžôÄ”ü@iÍÕïU¹W¹kPI±H±¹Df�†]€8«fôNÀÙ*¡0MHO;ˆë™eže^y|¯bj¶¥¨wP¾ $Öl7…pB”µ-Ó¸£µ‚Z�®:˜:˜®L�Ž2àã³¥³¥{q®Ïþ\k«ò»(ì_ƒš—~= ×AHŠ»î`� Ê¿�IïŠUÐ þ� å`ö¶ j©ÚŽHkJövþl=l=¯rGñFñ/!S¯[ÔXÔnVÕ××J«ÜéRÝnÜ€ƒpññpžDþ|�›c—°Ú»èÑö� ò“ì¡à½ÎÔȳýw=o{(èLe56ÝÝ©B÷-ñ¾˜›Æ\÷4¸Ãýû1´ø»Ä\Œu ö¨†jµa©±ÃzLmÍΗ²w¾Æoö=þª}ž&4²1�øh>òXbÝOÆøÂ(ª¡ÚßÙtb=ki©¥²NwOÍ .^Äj&®Š¢{VÀ×#ø¢ÃêÙÝAtA¨žÿ]TÛ_íK}v|ÍãÀc:§5E8Ïùq-mæB‚‰æsJ�„>»Ë¿Î ‹Sœ·CµýÕFž¸k~ÒŠÐw®¥{™_ÑŽFI;§ä†×}D¯NVðSÚå•b¥3訆jµÅ�ø8µêó“KäYœ¿ÃbÕ‚O1N-Êx¢åñ­ª2[ßÔµIãTCµýÖ_µbs‚¥¾¢§ò–ƒCù‰¨÷Ó;n~Ôt†?©4¿lež ë?ª0V@/tú ò.¦7ÆÊ‡¾Á׺§©!­~£j¯] :škãnI6ù¯‘ùÏìtÄÖqŠÔ᪩¹ k¤n,SѽË$ü½^¢^¢xÚ‹ë×Uï„’Îü%K«­ïâݬ"8ÚÞeEÆ5Å55~ª4 ÿÀ­—íÙú{#ÄÞóÏ’t¤¤$¾¸/¸/:F3‚ Ã.…]’ÿ"ÿ…†ûIÒÏ5Ÿh>a¡¬,ókÃm¶cÖ±¬¼/ç)”ðFnaa}“p$º:† °½Ê·Ê·ö–´ñ Éïx,óXÆÞ�#š#úò2Ö‹¥¥0:ÏåsÆçŒÝìw2 ÞmDà„ÏbËb‹¼g*6Œ°ì± ¤KX°º^¹×žù^£•wïóf3VÜr":3¥n}=~V¥7Ð}ƒ<ϲ÷„XrÎöŒ§~¼gôö¤ÔÈ›Q]Â_v†`ï5Û”_¿šäØn>¿ûPí´z„WW#Z�²â³â£½×¿Î(¯žÀÅjÐø=¶ ¶ %VgSgS†(€Þ£Ò&À1 ]ãÅûu;Àéuå8„É€¹‡ Cymªmªá,qÔŸT0ƒÆÚã@ICÃf=Ë�ñ˜ý>€·šo5+WÀÆV\&U«|‚~‚~¸ÿá>Ì[ õçH©H©’˜â'mXAi¦ïߟ.ª£´Û2áäÖ™�·E5TÚKá…Ã�”rÎCç|L[LU‹Ùô“°kfEð.*é*¼j‰F!ªX¨öÿ× ¦Ÿ‡”¦Ö`^¢0§N|療¾2Aخݩ™ò¾þÔP¬ç¢_ŒW9ªý}͹É1ÕãöIž%vCÏ— %�Æ1ØÏðÄÈ®oßÖÔZw’|£Vxòãªí¯¶ò ;=EÌ;¿´å�`$çd¹³O®Ãû6A+›4úŒ:×Å1�ʲÅa£ÚþoØœVÜvŠÁ¯oÔ4ªhÉ 8ŒOþ+Ï8W‘‰Ì‘)3Q™¼“X†Ì,pÞ±ô›A>ÇT4Ïë|Nƒ¯ÝŽå&X&bÙëCõõŒ¿Û’ÛD²x²�ÆmAªók ‚f”f”ªáùùD1WHy¯Ý¾÷½úú�ËfEfE"©€CQJ›€ @Ž|à‰ ;ñ„,o[�cgulu¬[JúR[ 4)Ýæ¡ H®™‹@±2C¯w™Ð9×9gÐ߯óyƒ´Rº|xùð§ºOuB b?W¢V¢vË�Ðþ×4û' nFV‰,N÷üAˆ ,«¸¦ìÂ÷úú7úfqO†rÙhhçú¨#6š‡å~ÄbŽ)÷%ìK-#2M•·?Ü.½a‹G½B½r�g'’ÝTs�°¼Ky—�ÏèÖYeÙ¼=GHÛãü]ç7íuFG~Þ'C:ßícözÛM�´�'ë¡7Ðê•ñ°œŒmS3Lle~ÅÇuàû3ºÀ�ÏèÐÏÜËÒC#?½o|ùxp¯Ù¦þ:ÛÇ—wÓ»SƬêÙN©C vû8^Ђßï¯Îò¢ðƒbþ}Ÿ¸þï¥à§à:ö,ö,¢w´ ýž.;ði쬫£™jw· ƒ\6×"Ö"¤äù2b®õ‚ü“!w@Gt ‹º $Ÿ¾\ ¹@ã  Õ¡Õ™ is}0kk‘1’1Ò>v\ýç®®_]×K}Žÿk±jGé§‘„�8YÊÙଖӽ%­CÚßd_öðO8uÕ¸Ö¸JØ[’«ÏtÐýާO; °@X %2³zlÌcW˜®0MÖìt®s7yu€iq”t”48O1ˆyŠ0ä•:\ABü¢µ×y¶ô?©¨ö¿ÓʨR­™?¾Œ‘.š^+Äôb¸ÿ³9vRïKC}J¿g2Õr/<PíŸÙ iÁzÛpg:˜'ÛuÍ&ÌÀ”¡Ë£R õj$%ù†ž9cyJ£öïœfòzPí§ >vÄ…Ò¦úñ0º@xòƒãä±[ †¤1ƒ(ïß«I›L«vì…¼l¶@5TÛo-J–¢Y>&m'Ðþæ~�¤-UÇ™tú“]7ÚFè€6¡÷é5Œ7 ‡P Õ~Ö´gúÊ1ô·ÿp'®31‹Lñã:?Õ•sÿØc‰èìu\BúÍXo¶=zQíŸÙ°·ò;®­ÁÖ'+D6S·‡0‰Žl¦ÓO{Ü�UôKlzú9÷ª¡Ú_m$ V”¸ŒlÕß&²%<M�ÃÕY¹™¹'�hâ0KRÄïš$–ù¾ ÕöW+åI3ÇÕ˰zp–ï…Œýl²î餪âEŠ®—f¢ñƒ¾át¥´PZ(lZÇú>OÀŸ€pó{ÉÉï#éé®–2XšÇ¦fR¾*€­¾ 7V>{#Ú êÔN¡8!ØÆ §•Gô 4ƒá)üuÈ©ko^9^9v`ëòÖeÑ­RhëÞ&ö&öµS×N}™÷êç8˜9˜%¨Â¨M2uÁR”ðj�ZîüÜ€2i`t‘þFòvÎ7úÆžâH8ˆr‰r‡·BÎw<• óÇ©†³{r°IÝëZòoùo¼«ÕP hýa>Ýèö¼êêÔãFT.þ�31ÅŠ©jãKŽ¡I]¼^ÕÆd1\ŽEzÕö[“«`&}SLºáõ(µå E!· S–È-áeî*FšÕƒþ^aèOž ªýÕf1IË '©Ž•dÍ'+½Îú�„#�R°À`e ÍG&è‘ÿ°KS©%i19ª¡Ú?¡éŠ“ÚtùL�ö!6•—v9Nc"Ò´„MÈ7ó…B1NRøañ…»'ª¡Ú~k´Ús¤Òt$ïÞ¼sL´`ð»Á|ýš>¶ëÚÌø]BXU¿ÄD%=Y7ª¡Ú?¡ñÁ eò¤Ú0o_€-Ì6vN¦ÞQ‡Òšüq‚L›ÐæÃãÓz8ÜtÝ9ÿévMԯɆ^ùËâ*=&ô`³,/#e何H]ý³CzgcåªÃ`{í­hÑ¿žï…w3õõÛB¦&¶z¨D­uÌç˜��eQë–Ú„¬Ú°ë²ë¹ln¦y(•)*9Š€/�>«¶7úma2vÁ� š[BõBõe cX äj ¥’–m�‚§’$‚áç¹gd3©T€€ê€j· @:A:As"u;(H@ºVºÖ:Þ:ÞÊqûíÏiÏhÏHµÚÕÿZ¸Rô‘“Ø€¤ „¼ìAc ú®Œ¦˜ s‰oÆ\}½x™'’êêá÷µŸ÷ͪûþë<ë¼<>×L×LÕYdUV¾Æ¾Æ\}yïfÜÍÐÝIÿèný:uhæPæòÞê<_ŠUXß“rbN-ƒjŸð½öVÈÿÉÐ-]Cf[pé&®±·F ×‡7–ŒHâú$ ýÕNVØQVÿàžk¾ßs]nA$ÛDw)ኪ¹ ­VÊ^³M÷u¶g3v›Ó­ŸEvÁr'#ÐÇâi?Ð*,ò,ò‰¬ÂyÇ“11ͼ±¾§X¦XsüãÆ6SÀƒs6ÄNó:¶§'Œ°R'´ˆ@0íZëÇÅÂÅòõdÒgìµ��‡‚¦x”ø5”— 6ѯ¬�¬�-€êjÚ!M�ÛÔjÄíÃíÓý`~üçքׄŸn‰´ÿÜYŒq8à�Ž …VÀ>©‹ ÿœMVò0ì¡'Å7¡,=³Ä€ûá^’^’$²ðƒ¿#t4tTŽ¥Ò²Ò’¦Ù¥Uº§tOßÏ­ë¬ë´’ÞÉ£w7qA@ü²l²lpžÓ"æ©Ê¼chU+éƒõ;û«­Üi�{íA‘g{?½›÷ŸØîk?M`·•~†{ÃݺÇ"7ÿ€jº*Œ#9ó�#vD£Ú‰h…50TûûÚëÑÀ\gí×z·�-b<–u"d†œªž°#»Ó‹8êw�Y¸Ìö_ìÝw8ÕýÿÀñcTÖIöÌ*'{–ì"#d”ìqËŒl²’%TH‘Q6ÙFFɦpŒÈHܶ$!¿ûó;÷çŽÓÐ?ßûn|®ÇÏËu®óÇëº\Ÿ×›÷ç9Ôþ�æ6yãì.w„ù(kRMfÑø!œ2£s‰R½pû*ÊüÊå�.¾°ÛÁ$�PƒÚ�ÖVôP v…uKJÖ‘°+¹t¥¹6t»yÖx¨wÃèGÙšõ“Ã[K¡öë4xéÇÜžÞÃ7úqvKNK&uXÄj2”7ë3ìêÙVã ‹vÊš *‚C jÿeŽ™f†× Ÿi 0h;ÞC|Ý×EòØõú$8z”SžvÊA<Èømçy+¨Aígh´c ´•GH è:Î*e6ê�|lÂvþ#ËF³Ò;^È£ûÖD¯ÁK µ«E¸0_ytUNg†U2…=ûUD¸,&E—± QÆ^(ùLc©©å*NT[Ô 4!âøèµýËœ¼KÔš·QjU²2L¼F×/y½ Öšð'ñÈWŽ+6…Ôþ­v¢6ãPW‡uÖƒ–w¼âHù2ÓÂ&átåaZ‹©Ó#¦ÍÆÂ‰Ü‹Î±Ö$PûïšÄ©Rç�¢-liî•ÓÚ‰–§Ï°Û–áÂjI¨ßÜz£§šCk_P„Ûæu j¿NëA_tÙ¯±ògýbïø˜ƒÍ0‚?º�®ÅŒÓc¸$šÈYROo†B¢3�àgl4usš¨¾ާ303Oë¦FeûVì³ÑN£Ý ³ÂMâiDOðåȶ|÷<# V©¾™Ü£elÙeùÛ�:¢?Ý­ô"A+S+Sbèú �;s‡.Ô?Êøœð]á»àiæiæ4ص «�+X³Ï¸PýpU÷“›Dk×ÿGÿÏÊ�,jU;@—ø‡@7ŠÓ`¥?v;ËÎ ˆhŽh¶ØpPvPF—ð€¦…DZEZy(x(âÂañ_'á á޼�ómšS¬ÙôéÑp -¿ít£3«W}k|MØ‚/|"ètyÍÐp$Z×B×Bу֌{wÈÎïBB ÍuØî°�ÿ<¶Wf#ó#óÙÙŽÊYÊY.�ÝíÚŒŽñ6@#@ûÜßÙ†¢iêÆtãj[gÌWÏÚÁsÿ`×=ÛÖROˆ¹×Ñg>ÜÙÏÕ¹×éâÕ5{^òr�#Ñ\emOÞ�ï7µ;·¿Feô…ÿWúò¹¿iA~³�s¨ž¥ûÞK«Œ[Íöî¿>Út÷f¢†3Øî?ÛH1 ¤å �¥ ^§^Ÿ1 /TŸ³X�.b¸ý¹¼Î¼Îûî]Ý»<-ІÑo²ú;n,&¢£MµW/ȽMJ·ªòDL¿¥n±1Ê'¡@>{{Ö0êÉö.FjrwæîT `7g7ïÎ`…�2ëÝ�nÈLþLþÂÚô¸¯Szªô´¨2ƒéÛˆÖ3ä™V,"U æº$KÖ²{¬øMhú’?IZ*ãš|ð ÷ ?ü|2¯º§Æé{ØêÚêVZ ‘‘êä`ó»ÛãÕãeÛk[[¸–½ÑÆûØÞ*6W6Wpž*á˜ybzpÏÂŽóõËmú�øõÍ$D[�ûcÏö�ô»áWnŠU“ô÷J2Ót5™§òKÑXÏ <6¤*9ð'.¥³=ï‡�'�¡öûµbKÍÚ ¼ u?Q¢Vóã£û'Ÿ‡Wöu3o#·9÷’å–î}¥næ¨Aígh-ÃV!pÔ¾³;\ÇùRæL�ì+‹Œ÷I×›yù(ßpl½•®D3­Á“j¿v ¼þ§CB”®rŽ¢Ý8P5%ã ½B±Jx qÅ{¥£ƒ:ão ÉãSÍ¡öû5JdaJNyBƒj-Þ¥Ðû»ß  ^{‘Žñ°å¹ÚdË>âQSÝ5¨ýhm’*Ù£1Äù%m“-ìÔ=«ƒƒ•¢_ºç8Ô?ꀽ¸¥B5N„d¶ðMjËHì}€î¼�éÝÊCÎÆ^Â…©)[í˜p`°S›3÷M`[—ÞÈ×D%TrfÌÔËÔS$ÚN j¦ð�xß㟃 Á…Nºff†åì÷­],t.�/øÈ˜ÌCÅR0¬X¢O�xégÎÌœA &õ_4a^UÝç’á' Á@žhŸ xf˜ç˜ç¸Þ Œ!ŒY08Ϊu“”�”06262=˜iõu–a–a*'É¿m¿fU±  Î C){'îû·Ô:–à¤÷å>a(¯˜£ �Û<ÔP<‚j°(ö{Àäaò>úšžšž!�Ø:Þ·ôµôe¥’÷S/S/W-nDxp³Î£€â„ÒRì]W]§½¢£ÈľüSÍ7Ït»ÉnµëºÚP$á¤lüqä”…¤‰ÑâÖ—ÆZ$¼+ˆÊ—¾‡mvÄëÉ çžÊè¨õL…}a×µÿË».åpù†%;—î×VU%*ƒ[Í6ó_�½DyÓ½›ìôFrj œÉf/PG¸“»“»ŒÈªÝ…ÍC?A.ìs0k˜µ‚©M·M÷;A²| HH¸œf#\ö<ôäİñ*…ƒò$|ä}äUÙ9Êr·5‚âÔÆã@·85cñÒqgá³x@õ€ ³[ª¥«¥#;-\29_\Ìõ„ëIªŠç×MÖOÖµïø6±Hñ÷‘�v:Œîƒl¡Ž;0Â&L >Ö=0ðI‰dj%ÁmÀÅF¹e¹åÜÖHÖ©3~!ßã¢ðEáVò»²we/�`ó Sx¨ð°Ã9CåRþ¥ü¸ýIkmÖ< hï/A– ÿ™í¿ïú‰Bζ68ÎhŠ„¹ÆŒªlµëžíéޮ߭�˜1^œh#`röz#Ð5€8¾n½v0^åv&ç$úžî¤L“�ÔÆj¿_3Ò†‡ lÒO/ú›5'txºˆO<åÒ�Ô¾G8us†(ßMŒž‹KÄÎÏj?Vsá^¿E¤PöŒúÀö„I8‹ÑŒüà\óxÞ åGY„šiÈãaݾ£EPû±JÝ­çRŸÙ»ú5íö�’cB»Üý*Ù.!Z‡ ñ „U÷¼:+††Ú¯Ó2;g-ß �·ÇY?ëÍg<¥rcÿ5¦fƒPy„W‰Pº\űC|ª™†g öûµ5+Œ ÁG{.ì¬}-Ü|Ûo¶Î_ßkèÞÉQ| åÞëîçq¡µ­] ¾*‘ugŸÒ½SÚÕ¯åä©9Rù¹[=Y…˜‘âêÝÇ”N:Ôx ƒÚ÷7WÆŽA)ÎÞ«RuFí änáÍ.¬bïvÜE„y�íŸò…K‹Ÿ»ìsÙ'ˆ¢×²×Òûÿ±pñ{F—γ×^‰¶”uó1Ú¹1 ·vÝßu¿¬*L5'ÌÖD‚ô ©»¼ÆøÀ1²sÖ‡¯ÍÍÇ‹ X¦\¦¬à¹¢WppzèýÐ{!”Ræë¦Í¦Í$ò[|+)¾‚³ ØCWé²hÀ Æ%ÄÅ7OYâ¹ F?9¬Á50õ$Ö#Ö;?*èY�hxé{ n!n­Ê"§‘Ó<§±M]pÕuÕåõu Eþjºf#bƒÍG´âm�6Hì½erêĘ‘”F¡¬ÂL ÍdÓV{Ë+/¹Ì{G[‘ˆ‹Oµ–>­ ;KÇØ.vjÿ¶�Roµ;z°0¶zÁVXE­¥|¬Çòö–"›÷–q˜ïrî¤þÇ2¯Àyz)DBxDÿ¹­öLØße»uÒ¶ ¾¢WB�jâ e"Ѳz~å6¸huÀ,É„ODÌ:4'O¥ÆÐ*·üLR=¡FÚ¡N‡¡óó!>éW ¡ös¶ËvýÛmD¬hmQº4ýU•ž†È¡sEï¤סƒu¶QÎÄWIU_Bí÷kÒå�!{‡ÑWÍVòyů! LdÄÆ#pÔ˨p•<—z¶sZA j@kêήW°® w^2Œ¢)�ö—©ce|¯jo–bc¨Sœ0Œ³¸ jPû_496 âù„õ –”ôÓOv°\˜ÕKëÁ·[•‘íæyË£>/ƒ“G @í×nýh’ô]ó]¤–7uàë™#ÉÏíâWÒXbEr”rÜ:FÑlA±ŸêhÔ ö³¶éW±^Ò#ŽÊ�4É»*‹¡`µ}�H¢Ä(Õö¥U¡¨‰{½ç9ð¡µÿEcHð{ð$'ÎÚñ„[,w·�Ç:MÜÃ�«)“ŒÌÇuSÚBO î¶x¬ÀðÖjPšè¬í{ò²ûDfüíÏN¡"<œÊ °÷ÎG¨h;¼ÃãÈïÔ¤önµwfÅ�Á½73KeÜŽMÌv#ê"_4òÜ–Ú–ZQ7œq:9”2ïs !zó<æàMb  ðRL(· · `„�8K«K«ƒX4›¤ÚçÒAÍ™ ¶ �ú¢Œ˜Œé·M·¼ɦɦa½¸\ Ï|µD o<`<à¬í¬mT½vòë\Ò]Ò¥Qèo#t$ò—(c”X=ŠxÇŠ¡9,}Òší¸ÇQâOÔ|ÍæŽ(2v“ì&�uÅѳ$æ,~ F ÆT~Šî¦¶æv4;Öœ:FàIàùñøFM³›µÈzs=s=±÷Îö²½­ƒ–!¯?aÝÌ��­öÎÒ‹oä#×0Ÿì€»ýbá Äùj‚L¨Aígmd|ÙZ»æè{Û™õ)ªEâDOÙþïÉîBÿQk2XÊ*`}Xª"¦›B(Eú5ö³Ò}Šd:=‚‰¤(£º‚÷Ú�·zVÚó׳RLõf¸L徨Nøo”e"&YŽñTñVñ.áöå Øé? é#úœÞ‚ÞB, •G0Ç+´Ô,uÎ_\= ·Â�çIƲâ±âÙÕL “¡XiAgJ�.Wº`ìý0öl,< Ð7Õ7å÷0nîÛ}�ç¯?<<>×ï÷¹®ë,¯ä;‡â<�šØzâÛp!ÿ{EÒeÖz•»Š)ý.pRkË—'¦£ê3ò ˜óD?�U29Öj7VÛ„z¿êsލs굓¶àvú¤çØ`ˆÐæäÌù½®�ã_®?µ�Ê• 5PYÉn÷¼ $t£`ÎmñÑâcj¡»ÍÖʪ܌éÎÿ’Y�Y][ØcÏÇž‰×.DÀ¶ à3˜pÿ\+`†}HI/«é¨~¯â^EOP,GŸÕ�äÝÔ%PÖhd Ò©›CÏ9ý:®Æ®Æ!­È!È!3JÐ’{¨Z¨Z&v&v`�IÍîÉÉ]Ý�>ø1¢ê’DiÀÁ[HÕ–Ÿ�>p# þnp½�@ʸ9ì+±Èën3âËö®Ò®Rî0ãæg#†2?£õE님¾fƒfƒ‰ TÕÅdcdczÞ%Ô¹8¹8LO¶KÌÙ)pWÏ]Ïu‡Ö(•eûð‚eÄF*ݧ×Íñ2{íÐP¯ñ‹û5÷±úÞ9xhŠ­¯Ü؈ôT÷ã_$1ŸäÌ9£�¹}‡v¹C;ñýšt”5“¤Ê^±»)Í)ÍBÛq�³ 5ô68¸ Ef]$ˆCºBŒß|äc6_úWÉïðçÃØ·ko׿Ìרô�ûÉüŒæ¦æ¦¦Ze{eû›Â¨Z«„“„“ʸÂg¬g¬±*¶#’Þ©Å ¿Â1Æ1†:SKø°NÄã—òÊ‘|0¨°×L�ºCzªûÞNi1X:áð ¶$Ÿ8Öÿ›4Ç“á7‡º0ÅÊÖ­<¾s_ |çL-òÇ{·lš„”æýûj=ÝséÅ÷xì5¡þ-×sÌæî§ŸµSáÑ\S{›æøél{@¢.ì…²Í=·w;°Ux›Ä®kª [¢ºýÙv@‰­¸UßÜ@+“­.íÝá W®™Ú j/á�ÁƒôSFˆßÅ×ݤtuúÐ ÝþΦè\¡’,¥‹ly;Þ=õë� ¢RVÀ›„—iÀìøìx<¸¿‚ÄdÔ tY~ºzºz¨k¨ë-™êÃÝ]�^�VŸûØøc¥dIö퀮a$~&:Wu$BŠç¯Õm"r¸Í¾ÂÌp}ê¥î&ê$ê䯦aV¬`Âûðx‹„u¥b¥â/¤¨ªWµµ&ÔU¼T¼‚· »ºSŠÀûYYê^H MHÓǤÕì>Í£Is��g{í…Pï5Zš¯¯9OŸ›Ýc{ôôÛ‹WŸc�]h»ï¸A–lÒÆ-vð;{¡S߿ע‹düR‘œÆk/º¸C¶ê{�m¶/¿úäÖNÌÖJü¨6^mgu„u¼ýˆÃe² y²ˆ5ÅÁ6Ôá›tòÁ·, - û²ùù×TJ�í™Ïdûkýõk-ªH¿:N_yä^¸"Ð!£1+…8% òJ*žÕ$ÕÑ áøhѾ<Û ÐýE÷}?@ÍÙš³‚âG&Aã’:ó:óTTRõ”vÛ„m’Üoôú1éyĽòߤgíØ´’HN° jŸøäÃx_- ¿ÒMÅd½U‚*A £ºg‡5Ý ~†—×è�îÚîZ~eTV¯½¼ 0ÇtîØß±t{;ƒ�ÎÿßO(¤•­• :Ò#![ÙÊ*ë¶çf•ÒøWúÑmµ¥W-1b7S2+ à¾C9v2¤ðM4>#œ “q’q:Êèß+ä ÿ¸[¸[lyJìJìâOPI¼›,Ÿ,¯he%UWSW³?¾]{õNÃסZÎJÎJ¨3úÕ¸¬ø­ $µAn„öãÇÊ÷šÑQŸ÷y,™â°¿^�¨µÂ_ÒˆY QÏâaæ¬VÒ‡‡V1Íœ„a};£ó}FW;‹…çg–ä%OŠYVØ»×Ùæør¶S°všë©B¥Û®N$¯3:ũ©–'âBøH_ÊÕeüÖ+È+ˆDªÄ„ÄÄû€º7¶À„žö™.‹¹UGºÃòÔkÕkcœ’³7c]j;¾ZaF‚uf,vÜÐ\â¹ÄވĉÄ!좲¥kP¬ñžâ½†!daw  ]ÜÔ?6µîmØÉ°ÂCºf\?s©¹?1 rƒé7ýÀ¯úWÜ«ñØDRDR–BL–¿@E E þºÃºƒ\(*Fúb‘b‘…ø¨³‹^‹^�G·Ó¦ßé¤#Àù­Åc‹Çày Gž'm¢›½KTâX.1Ñœ°Ê^3:êÙþÞ÷¤¢Û¿§eQF^eZ™�Lï^Ÿ`ííX3 k›ÖÔ¹BáÖ)•/3ê\ŠnÿÌ&塾UfGSì Q.ǽÑcÝ'1ù›qFЦsB²BŸå¼íHr+ºý{Z÷ïv÷ñ] ‘n<ô×…yR<‚dñªR{$qÝ)j^F ňåÛ´ OW£ºí·æ§XqÑ7§_Ò‚¯vöÉáTSáêHU;’áU‹Œ ¯®Ë„7—±géÐ Ývk—GÚs°5¶î8•èøF¸Á´Þ6%Ô°žÖ÷u�­& Qq`vË© Ýþ™�ïSJ�÷2‘{ñú±p9ß �ZOFQÄf„íP¯S´´¼[hù뵤è†n¶OšRàÓCÅóWæB¡�ÞˆFŽã«.%ÆNñ…êY�?嵋](?„nû«eòDá«?6}uæ$7¹”åX¸š`X^úyÓ´�hp·ëCšL,ç'+´&è¶¿š©1M±à®ŒîÕÂ�ÊÖ$xêˆÄà„æ‡Þ[ŸÞr2Qc—Dâß2íA·¿¦•’PßX8vПքĊÒÅf‹hЫj_µÁæ‰+wPï³Õ¨¤�àst|þøñ‘ŽMʵÜ%˜¨¤QVô2q$u¿¯û$ÍÖ±T޽/>³)::a¯ý> CàèN}äË�¨¯l'ýô·�¤×ìϬÿ„šlEؘC¾\Ókü[•”•”qŒ<<µn€ &q5$`%Ã;Ûð €7"Y¼I'É\B¬ V°5u¥^QЀ bN� ßxE� ÒMx…œRK1K1ä{Íe e CçZÜAõœœí í ÆËáe»£¥¤¥déÅèÿ±Ï|£3å€9[$µSæ·í\�dS‡­j®e²¾².ÝJ±,÷ceceJ“_Ž–`øVXVXî.óÝóÝ� Tά' N\•¥ÏvÎv61ßÎÔh§K€ø#ÅúÅú¨Ÿ]]¿ÚÓ[ãäëð‚R,ŒwÐf¯Ï®PßM§èúô´oO›cQ�dËq@CŠ‘«ί°ÚŸ"³Ðð?ô;÷— }ÿ³+Ñà’ú÷l¡7¯tŠLÕËÚCö:ÛœÀw Þé-§ž"ª§ŒÛÍú‚š¸ºXA=×=“=“sÂXÍ/N�g'ã\ùVISI�Ž�xôZé€Y ÷Юþˆ}øñRˆzZ!HªÊ5Ý5=•Ó郌pÄ€eÅr·o@Òm°£Å…ÏH¹H¹ðo>4¼Vªu´h>á<á¼~~ýüäHRÑîèÂèÂÊ|zNýX&³À¤07iõ™Õþ0R¦ *™x™»J¶ìWÜk:%é^ÖTÖåƒrþšgÂ?# ‹–4Y6Y~šŒ £“‚“‚“�¨LˆÛŸÛ~e»;Ù<øã|pûàöÿïÃÿã9ö·IÅwæ—±9sz¤ÞƒžcÙë³+Ô³ýW¼ûÝÐ hn·`Zž¸x‘j@›òúÝ—#+bé”EÝÁ¬¿†äU3÷æ ID·ýß–er™HfÓ‰�oÜôkŒ¬tFþ¼š$VË­bêÚø)ÜôéÿßíŠd@µƒò3i¡6 FÈù[^úÊè»"E²ýnL­SQª“nTs»íŠx0`0Ý�äÖÃÐqölG9 ze“SJä@ S�[ÔÖéLGö}Îa€¼H«C«£¼P’‰àÝ”šGÂ5ÄýŽ("Í��{$$n¾lm/ÀƉq©kƒ}•)QTj[ŸÈœ“â`«`«ÀÞ:¥;¥=5R™@ë6tëtëg°Î`Qô·S}ݱ�cäDžW¿-ÑFhº‰ 0¦Šb,­yå*ìö”›+߯áOð9Óìp·9¥8¥b'b(DD”¿çç�¾ÝYº³µèF¹Ä}Å}·a/a/%8ngÁ´Óà~ÀÓ·Ów§ï¢ïAõøoZ\în¿DIzPC§èÂWŸ#îAÑŸñÑqüq$Ãeë“Ûoõ /g;dÒ¢>ÙõnYÝ@U¡‡6ûоð~þ�{ÐVº¿Ÿ×aÚØ·¢·l¹`ë[Ë�ؼÛÞ ý³üHw©þŒ­\—­AŒØf#ùÞš»e§YÆ "L•| •Gœñ©þÌ6{5cawJAí׿j$ƒ2œ4ç´³�3X­'Iàâ¢ES=6dG‹»`AC¡ØðÃùÖO¡öÏ4·¹8ORw6“I–´«Ô¹E3G1Ê Î.Þ’$¶û“òaõ‡M— °äP¢¨AíGkk:uom VGNYÞ€Eܧ-»oE»Ÿ;uƒ›jt?ŒŽÞ®Ã�q­³ j¿N#.›âX<0xóCÁ-;� ûÖ2#óuŒ˜®^¨A h{Rb7t¯Œpò¬îSO®;ô§¬ #�At˜÷Xè™Ù@"�ü…¤b#¨AíŸjg‘wŽö>±¼[Ú±æŽU|C®Ü¨°M0GaœÆìµÍ„Q;Bð׊s¢%Ôþwíˆi™3‰X<Û½z^ã–¹�=«u9& I´o:aZG9ŸÆ®  ³ËÛj¿Nè¿ä"¤¶öªiepfÊÁjœíPl7m‡1§ÇøãXBg 9¬Š#=Ùø?c£fS1¡ŽyÉѸ3ö²lkU°ëD?§­9¤Ktbù6sù0ÑRÕnç´¼0˜8ÍNQ\•ÐI8lÇÍ ÚÏ�jƒ‡›‡›Ãz:ŠÙqA+�ÓŸãXçX—K¢n¦n> X*ò4°ô²¹ ±ïL™íPð)“AÚ³o·ÞnyŒ:Y¾Ní½’â¼ ºý"geëLεçj8\€uÃuCq[@÷‡î4ù® g#çAçÁ!ß!_êÅØ¯‹Ä�Ä�k6û¶„Ã4_€œåRJè3É÷(ì$fwLÒè£>!0ËlËX|<´¯r_å|nn«¼ÜƵïA$J$JUd2o2�M�ŽMdbybyQ;G´L´Üî³ÝØë�Fêúø©ø©èç´ÎVmxuqó­ë½ðžø›»�Ó†ºÀåÛÈ:{Ø5´�.÷_$C{þpºµaÇC^Ágåq"ö`y×%íÛKCF¶~k)¸0*ƒ/ü^EàË¿Wiá¸ÊKÕ™|a­©á`‰ån³}请NRÞICµS×vpP”{ñŸ Êþƒ3g¬§ŸËÅê#¯ œX?‡·oÏÉsmm6ÑýÁIÛ `¸³´MM ÿü¢4Š»½5>ˆÅõˆÉ“UÒ†JЬÆVм·Ï(ˆ”+i¥»~ÄDΕ¶0xðþ¨9àVÄ­l/bнœjœêž–Çô¯“g‘gÁ¶—œü6‚ú–׆Ë^7”wð¬W(Ë]¾ï/]Ø›­•ô‰ §¸o½`! ¢¹¢Y� nšœõÕÜ÷и¥q‹úmoDo„Wº•*j{j{�§R„€Ui»î¶�ší½î[.[.à¦'PƒÚÏÐ:Æ-.×±{’лÎðf.9ÙU!Ø¥š O ?z¨?µÕIûX=»Å‹j¿v Ž~å�sÎ@z‘¢¬œy§–N¾XñZ0¢êý)¥Q­™Í¸~ò”Ö,¨ý~M‹Rº03£"µE‰�^²ÿ_Ýp±÷Þ)nø}«{²�=«¯é†Ô~´6G•áÑzÙy˜¦Ífšgñqt´ZìK÷‡{aÇÛ‰›Ë×`DJܼ¹/Ðüú>@¡ã8ÝVyk�_±1å<·} †x°“ÞTª&ºª±íxÚAú~ 7n?I?IŠ3rñ¶KËsC>G¦@¦€kì½é½©9˜˜•`UlÞ˜¼I ÀaT’G©&Vv±ùÅÕÆÕ~€%Mlé>kñÿAÓ rò«¬ùI¸F¡N v(v HK´hh¹ì“*–*NôLôä¶Æýu 5 5®ŒgH¿­ËI%Îà7F¡{”ŽÇ¯‚ÂÐþ1þÉ^Õ|ßÜë2½Dï˜.0Eš"»Cïd˜Å�VÿV=­ˆœˆ:$º‚’�’ †ûg¹„¹„=.ng‘¶“ À¨ÑP×P}×ÕÐcwÒQd–ý¡iûMû>7ÙÝv]Q-EG|C›¦f†+x,Ã#ˆ3D2ã>é’Ïëè…ðð [¯Þo!XüÔÁÔÁ¬kU§«Nû­¢ë�U>ª|Ôëþ£!æ,æ,*ëí²tv‚á:Sÿó\�ð¿ïf‰‘~ÓÙ⸠.rÕµ0~&Xq·]úlÿH÷výnm˜áÒl>£³÷4_ïH�æ–å†hŠbr.ç\ž/æœ1L�w¯•Ô~¿f A|¹Î*Çf%Ð$¤=õ‰—‹ølãA5 �<‚×7º¦;xPÄÖßj?VsáÚJ ”/oÞ'Œ›:ÇLÌl° 7šŽi’¢ðè.�úH¶´æÕ¾ “EPû±Z�î–Û@Øs ²wMÝgÙø« �ºûWÃÃØ:_ècœT>0æy¸j¿NËíycþN ÀcËÓ‡ñZýrœÐuÆv½p96ïÇ9ǪT�ò*ç:èÛCí÷k¥õ‘kj ©¡JI�/c{B“ °Þ4òa{¿È{K¤„­¦0í€ 5¨ýh-"4êÈÝtöSy¦5/�ÉíãÈ:ÄÕéÅ"À$-®BÙ§zʦÐATí% jßß\žŒJrFI6t¿%¿˜€õæí:únÇŸ”›ã^]tj½çË÷1»Þ)-€ƒýY°S¥à‚:šÛÝ�©`†s�²òH³I³´¶fuV½*V}3>·b¶bF /É(ɘ±Hgy¿>ð g^ê; 8ÕX~EÌ{Úôâ.r ¹&bv¯ÌÉ;t¢h³”µg %€½´iô2àþ×ëÙ!n6nör…èDñy­óZsÁsÁ^$Oƒ¾Ž ‡ Çbü™î·a÷:Å~¬P¡ÐÐF\jŸBIß$–põS»b$ñÉË'˜:†€(ÜÍÛ›·…hПœYÆúðZxíÄûͦÍ&ÄtMŠOŸnºNß~Øú°5˜w»ÀÎ�þýçuÆkfßϾGß[fd�`›2�T+”•_xL=×¶ÛÞ2b˜á`*¾ ýqŸX "qñ×�e�U´ž´ ݇M…p:´Ê|N§ëÀ®Â›ø;aUHs¹D�_Ø[Š|yoYé¼Ð—^�Ó«Øû,›ïþ•Ýf[øþéû�ð- ›UÚNã2ˆÏ·û(-¹ž ž€�cŠ7^]Ø”ú¹{,÷XA–¯,_ šD¢ÿ}]�²1#À-Æ].%`»�bÁÙ4"½ÖàÓàCÊÀ^7¥ïC Â�‘Í/-¶¢8Ü*ºññ€X€u†u†ÏP"_"/“Ôœ 2«\\3’8v÷ëêÒëÒµÆú„¾­ñ´›�L/ÀzÅA¯H,ze3‚å’%GÒ'¥(¯±?Àz\g]gß�¹ÓÔÆ»EEÒÇí°vX½8ºƒNEþEþµ6ÞÝÏ&ŸM §oïÝ { ]Ïwƒï?g–ÈaËðüŠõú÷+ìÓzéÔ²�ö8¼Xºì›ƒUµŸ³]acÕMî"dé×£Í6Ô]Wh¹ñ¢Àä¤OZ=Ÿë Ñëç=Q{•‡¡öû5©ŠžËŒ÷G¯=ä¿Î¦gÔ"O$s˜~&x%C¥œ ó”×ê.§Ô ´ö�¾{Mò–UtΫú1tÃGúCeXÃÞ+Ûg"âõµŠÓ‚Æ1Vp µÿF;WÛ³”ú±IÞœ’n¾�ùâ�ìl‹Ãë2²}ÜË,ñ* ÄåÄä‘#PûµÛP?QéRï^ó8-bЭ܉Œ§¶)kÙ̉b¢e ªífBTJPƒÚÏÚæÇ½¥<&„¥©3H«+×Á�Ï{¤ oÅ(w¯® ÄÌæ ú1p`C jÿ�FŸê_Z›ŸdéxÖ-‘«OÀc‹:é_$ë™s Lšç2»Âµù÷›UÊÓ/[B j@{cýž¼¼D�ÐøPw³i]¤‡SEú®wIÂ;¥ðy�ÞÅÓ©>‘°ì¶ë€Át%vz3 A'7ºÍÀDØDøêCë P®*AA˜Ÿ¶Ÿ¶pLòëh1h1šÄ{¿M}ð…M�À3Å]•ÄA}ŠòåH™Üz¸ÉÝOZ»¼®øÌ÷Žî}P€LÐñX²ûdãdãõÄÓæÓæQxèñ‡e‡e_¸Æâ>“}&k£¸©ÈNê�€µ1±\±Üÿcï¾Ã©îãÇ�™²g9Æ]H™Ç±Iˆ[7Y7 ™ÙB²EfǨ(«¬ÌÌÌDÉÞ{›¾}~§Ï/NI×u¯ûÇã¿çå:×ùã}.^ïÏûs>¨×1ÌO÷4«"8éAP3ï»ßu ñ�Ži2S “º"¾º5ùë�ŽcsºCégez-�pÛ Ûqe4º4B=/Ïëœ k ÿÎu ÁÝ×1z ¿\S©ö”ìH#r»-¤Ù–͹߾3ê{)>~†óÑId+� ÍjÉãʨh‚nÿ�¶ª)ló[â•.“¤f¦± ˜iqúÚOö‚ ¬É/3¦‰üRÍÏ~¼ÝÐíŸl*vWЦ›³G1”{GâáùgÖº)Èîa\a E<áÌ0ƒp.?C7tû»O6\Rû™èSå…JæÇ¤ù½¤Ã.R¯=[`ázg·s¯Àb�nèöom¤œ©ª$ót=M¡šäðAÃkÇs�;ºô_^,bâ¾*-öâ^'9o‚ø8êܦů+˜k.{8tCF×áqø~sÿç›#oîvyíU1*o¬�|Ž€X{µHAØoF„G„Cø‰|WXÏC>Ló~+‚&‚æS„;Âñ°ðèÀT€Z°LÅCÛ¸©;G:'0Ô êiÆ÷Å÷å•îR“óÙ˜´Ó‚Ô3o"iâpd^_a´ · _ð$'¯>†Ë‚:äRœSœ]0\0&'âï­|«|ëÒ|*Ñ�õõŸËšÜŒ@ÊÕv·ãnFR¨50¿ÑËžìö«8+׃UÒ€¡°hÅhÅ8h ÓØ©Ÿ¡Ã¥Ãu#ü]ø»¼ßQÕ8ydzdÖôn\¥_¥Ÿ‚ìÔÄ»ÛoÜsnˆ>D\OÓ_æ¶;Wcõ|ê}ލsêgG·| —FX�!Øý'§“?õ~ŸøçÏ"t·HX䪑 ;¥çƒâÏ¿ñEU­·­·ñp.2z]YßÈߨçûÖ ñ ±ԉȉhŠ ûÉt€ÇH[ÒŒÀÁœgs EÓ–¾j™†tB:‰œ{‡iI€Ökâ:@‡Ô�®!M0Þ[‚‘­Õ–4–4,~ÌÏ�¦\¥µNPR:,;,7o×"ö¦B®B>æŒÇ�Õ¦��5Dú ±ÕËoT!µ]‹IöƵ6ïŸü*:2\©±°¡š¡”¡´©bÑUóÆû¸-¸-ž/mõlõÊÓQQc!¤Òt¢‹¸R#R#Ø » íVËoèwèw@Ýóx-“né§h†ØH>²Õú6Nn¿=ÔÏÇÉBSÏjO¬¾sÓ7¼4%ÖW7áQÞ—îÀæÉ®MœÈ×ÃܹçÁƒÜóàþþÙMqmå úZ…²o¼Bµ B÷[ÛŸ_º_h7•àç ¨ºwš ÍrŒÃ@®9~,~,ÐãÚØ—iŠ Z£–¯¾Õ>Ñ>Á8L,O,_ 8÷轸,V=}Ù¿ÙÏ#Å·û€O³ ° <Æ 4…ðV�ÒŠ1éA�ò±\¤p+ q×d I@%V%Ö�Q@EE¥¬)È'#:;:»Ž·Ž—�¥µeoCÖCÖoIèL¡­ÚI/ @FŽDïënBþ©£%÷W¬f+Ÿ~¡ÿÕÅ{�Ìu©bâqâqtKwì¥7;;Õ'ÑÇÇqTCœ"œ"fç|yYóYó­wênÞM�àVü”á)¸žØ¾ì¡� stCÄ0ê2¤Èì(>î·‡†º¶òéºÞ¦òÅ0'yÔÎ˵(lÖG7tû7´-ø8<ÒgFTã}pqü\&¿“2¹å�ÕQꢮ"”ô¹«O!˜��׆n¿~[¤g¦Óº‡S–tºJ›‹ÑK&T`)Ÿ ÚÊèOL…áï[ÏÑ“còÝþž6'57×Â;RãڸάAoøª0’�í‘eö u)]¿Ú\io [%ÒC7tÛ«mh7r˜2 ©3¢U2Ãv-ÒâWz&ò¥)M¯©6 qÒ~p�£!3ÁEü¼^=êÜAÚçž�g7$‹ùvòf¹Ø~s‡à繃£x·Á�ÜRT† ;yÙ�x,«¡ ¸_hvhvM_ì(»½uÖ ÁõÐoÍŽÌŽ¸³ŽTŽTš¬º_¤ôÆ3•Å‚­ýb$îÎO@>,ï%ÞKø‹2"'ÌE´d½-=Ì£E’¸ÃäwÓÐlÝlíõÿ~ºd»dMø\AOË""rƒrƒttÕö¦Z¢ZB³ûÉ ß Ž‰ò_è”.")žà²fXG²Ø’Â.m„E1~¥_¬ •‚&Oß™¾£JÒ+ÿªêô3è)è)\[ñyðy²}Q]Ï¡4£4sú(CªJ®Jή¹—ÎnÚ¾€ú�,ÏYž£ÎÔRGヒ%%(!ôÉ”ö8·ßL�º‡ôDgÁJy>T62€-Í'‰µëµH±C ÷¶cJ”®›{}çÿ÷gê#é%Yå=SM[Ìgú5ö[ÛBŸ_ú¢Än]a�ݨ€ïÃûJïÿ;ÙZ=’Ö5Ô5ÔjÁÄ®`x�ã¥ÆÐ·Na�Â:nŒÓg”÷Ÿ[ Ã�#OâQ˜¢÷�ȱ¡³ ´&7&7,¯ˆî< ×uÐúª;ˆ›bàÒAuÊ­ªßŽ,d‚d‚˜+}î}îŸ8²Þƒphk?S¤Uì¼Tà±·6º6:æËŸL#F\Þ�ÎAÒ‡˜N-!U”òø¹×/‡…¯3ßµÐ�km­'t{SÎr²àgDKDKPŽ™=5{º �*T°Ø³Ø3Šêd ùQò£!ž;mDíöx@ÁÚo€ƒëIôË÷¸YÔ )ÏõÔxßÎ Ó�ëôÚo¦F]ÛÿÔ}ñ×ÞÉj¦Á£·¾8”b·uª9ø‘G±ªÅ­~-Øj¼õ6ZÄ„ÍÐ ÝþjÃUf+hÔ»¦9�íUÊ4¤üæÉ©šw´>AÂøÐ÷†Ýo$×Ýet´{Ð ÝþÉvá®Ãs:é’#†Æ;Þ_Á-'ɾCß–ÌÓÈ?úʸ-¯“ßù’GºýZíSQ\hí´ý ½å²èÙR®Ëýjç™SˆÊÏœ{ _³û}:Á7äì;StûµZ÷[;ÕUµu«çô“I©5T´·ïŽŸ»AØÀx©P–5Kañé9LtC·¿ÚB»]-+RÔy)$þ¼œËbÜt×BÙO#å¬h#IÌN¿v3jyPF'ÝÐíWkµ$.Ƭ–QSÔ§¨�äJ�;xÑüJßqó½vQ¾kU±|²’yÄ·å¨|_òa¸ 5ê^Ì�¡‘ª2Hee$I,Å”Ë~{1˜¬.»¹Æ]@Ef¸Ót*H^`Ú4£ª¿¨¿¸¤‘ §èWâ骸pí[rä6iúføfô-(C ƒÄx;`'‰*ÓHCÔïOƒJ«DªD¢^V�¢g­W¯€<<�²|råKLžØ°Ï1ŒÎŒÎ˜ÌÖÅ�Ò´´îÏÝŸ[ÓrÛÛú«õWϳ?&§ÖúÜø: çÒ¼ïüÛWZHBW#>åÙw¤Ú‘|E‰éŒ0nÜ1# (fÔlºž§[÷3pãqãi6ÆäÇä�0QMÎØØøÍ±Øº,º,ŠÀv²Gqhà׎�ÀG î3ÂS„4ŒM<éÃ&®ÁóöÛgD=»¶8[[Í}–ÑiyHdè�«¹˜¡cŠMžv FMœ÷"ñ¿³Ï(°{ŸÑþËY‹SŠik"�tR¹›)*Sù…GöÛB}/ÿÛ÷ºs´ ¯§jû Ùlju9~þXÁ3, V8vw'ÿÛã¼B†ÅB¯¡ºmRhâeW•œUçW½ =¥§¬ê‘xù¯Sp¿W(¥~æøœÿP�°.ºýßkÉýÞiQù8”†4³‘Þ˜‹Ä5*Auªˆ¹¦ÒVM‰Æ+îÁ|™èöÏ5«2‹(û ×<›¦Ã¤|j�N0^¡ßr¢ðí UµuËÓ3Ê)°•>tûµÚâˆX„„SRZÅAþÀベVrä\�Íçªø�M8iÕ¡ÂOá•e ÁC·_¿á7>azÖk:&ÿ…¢š\»yÿ £Ð_¹Ç9›\tœ\�‰ZwVrAxdâx®‘ûêLE3öH¹ñenk�c”¼âç�ýf*‘ÏÿÒj1ïf}Û6 •˜ÍNëp¶r²?èÐJ!v!6óSveyºOCwù%W¿ÕoÛo+· ß>a`^×< „QJš•ˆÛÎ mzq(�>,��,¥› ¿6¯eôed5R#�£­>éÂX89yr¾8üàðƒ%Ü(h>Žǰ8mqú`êÊêÞ¦Ö¦ÖØb&â,]ã  Ä L‡4û»ÒYœU¤L–ùG�6Z¾²ºøx¥²à´ { {¬t�ØÎ¢–'èg¨—©—ц*è(èÄ>Aì}gñÎbxÄÈ`ä|ä<4|§yþÝâ^L¼a° Ô™êêÃô8îFF²šwbÛq†²ýf*Ôû}îK'ÝX‰[¯zt!zVø³„îR: ìn•²D%óÖ·3ß÷Ïnœ¶Y{gºòªé¾ä³�î~þýÖ¶èçµ�Ö·ÛBÑéK¨dÕvâuà˜Ï‚4©ÕJÔJŠš©’Ýu½Ôé�•|‹A†AÆÇËbù#нUjPÿh" !X,=<Õ†T oìºà¥§çÀÿºËAŽÀtVÅ/ 4cÝDz’ŸÓ4ÿÐj`«d«”^`F0#f†ÃA©¾$·HnY}þÙ®„Äí-"%"åEÿ Î�YmQ3œS‘¼mFEÆ„�(8ðRRž�kñùÊD.öäØa©p¢EW‚§�ô"ËÏ`”f”Þ,”Ñ—ÑÏ‘Cåg�³PùRCwr�Ü­ÁÐnP!^!®§`Jäz Ðêîî`o“bxFJòAXm¿umï9©èößiéÔQW™W&ƒ¥Ÿö‰Á‡×?À™F»ZÖ ñ"›&5ÕE5¨ÜÛdräFJÐíßÙ„£½.m—ZÑ8°†«–áx":¯÷HM)“¦&i:Ä÷%œë1›µIhD·ÿNëxcåIàLåεæJò ù¯2¹Sç6Uuq~ô`¬DŽE“ðdùŸè†n¿Z»£T€ø#0³OÚ”¯f&’l,\uÁŠlxÕ´cçý<±“à2öÌ‘ƒè†n{µó#Í™ØêÛnv$…ºú�wŽËCõñÕÇDt$ƒ^Þb+䀫—ãÎlÛ7¡Û¿³ÁÛJzå¿Lr»`�áž|`9•W�7“X÷&Âëð`—}ŒìY÷ˆ²ÖµÇÅè†nµ‘NS@Y%sV>D°†õŠE�\X|ôà}_„®ùé^ÛH‰se„èökµ4®hC‚K÷�_ŠópRʘ�Ý»(™ýô=eý¤¾XhÇM?ú4,‡Ä•ÃFèök5ã?é qät®æT½N†w©ûQhüÛØŽþÛ[C'˜i± £\ F;Ñíïi%dT¤Žs�Hü ÃFdæÔÎÛ$>-¬¶•l>Q8òøºŸÌG¥õsÑM0÷þ}¢–Mêµg‹AÒ†é1ˤQ¬¨ûûYfŸ >øÏú |8ݨ„Øóü¸¿/†‰�áDµ%_Dªš;Ù€ž, C@eYnnzšFxÛïúÃÛ1¿åFæF–3äÆäÆ$ôð ­« Nñ”›QD8&q"±ú¿J•Ö2$2$¦Í›«\Íï¾ :Ã,eË'Ú!½•"¯'¶@¸#Ü7þ‡½û§ºÿ8~ì‘=’•HGFÈ(3»!2"3{¯ddEöV$'”‘¬éÝYYÙ‡Â!+"E¶»¾}®sî8 ]×ïwÝwu�ÿžç�×ùã¼Þç¼Ï K)KÉzú@0¨e&D(Dˆ@Ÿ@_2×þÏoó’õ’Í0“®ü¾ò£)AD€ŒT4>Jç”™håsV"½c6ÿÀ­&ÿ…ƒ >€ëGX*Y*%DBXç�¾úíÐv¨ÊÃC,‡XRº1å_b�g�71D½F½ÞØ¢¾p+É €È˪ʪJ̳+7Û>T½g´�JƒÌu¡açíή0ï¦S»”'Ó‡ôxØgÉ´î1¤§$2ÏŽÛ%*¢òn0çø\s ì+ŸÿúÙUçÊ”•û ¯Ò׳Hñäîífûȧ‡�Ùê± ­/&Éc›±6�T‚Úg@”!£î£î9éBæ·uSgž§|)O,Oìc¡ª‰ªÉÝ,@~Ѐ à=`*O÷ÍÍbÀà›åR´Z’{P)~5~5ä” CÐ rmЛÇú, µ|f4øíê˜Jí'är,m?Ê å^‰Ð)éõÆSÇS²²$Åò~[úrúr�²Žõ÷}Ð8§m?¥Ž&F8Oåÿ Íû¬ßÓ=Úç-é?«az¨wõ6 �p*f*fñ™ñž[Ñû…„È‘þýáýáõŒ˜˜=º»BB—Õaê°“›"·B¿Êv8Cù¡ü߇ÿ×÷ŽG3K‰�ö{ñ…æqÉïÛîì s¶ÿ‰»O± Û€Öá×�ã(¨¡±kè,ƒ[`ÕXìŸ2ù {ãïB! & ð:v+Ô=BšÛØöó·•ãÅ43ùÔœ«>—[’k%éïð‰²§Ke‹/´ÁÙ—ñ­¼#pÚÛ± Ûþ¯ÍjXâFz$5"Nž3‡¶ �ó 5wðNÑ\ýÅAˆŸRHK Ê­ºÀš&ŸÛ°íWh:²4vm~£‡Q—ú©ÌN(º`4•ªž'¢à»:¶A2ãõ�¥)#z/löŸ­‘71iOÐ(2SÏÎŒË8ìXnr$D鹯Œ = (…wË ß§g¡íÀ6lûÚÁGJY uEF¥¯^V5�$—h ]d2õç§Õ¦°[jÓÔ%NåcîÈøÿnQÒÕv,ª{¨àºì8¡æéÞgU1wEÙZwBµ-ûÞË.æñIn·+’Á�@v§mUùÏ S¢Èf<Ô ¼£TÊ {^C:C:ó˜QÜòFe΀ÐÅ/ñ:ñ:)x®z®âuòû8ÉÏ�œ÷<ª˜þˆé¶B«Ã�½‹ÓÚ­µ»Db„b¢òDDµ± bÜ…‹f±ò¼HAÿà" Ó-ÓíŒ )4)t¸å� ¨€oDDŸçÏÎy•Ãß¶´T‰¢aü¾UÝûÔµ¨ höú9­ÐTßuâýáàãÉÛóYÏkÒÄL@XCÑ' }Ž‘U�ÿ¶=Ö Ö ×ã£ÇGEÉ1¹ãú¶û¶ûkñ¯i>Ó|æ#µÙо­$Üæ„ل٘{PÃI6]íatTƵÝlË~šmÒÃ[=^\JÆD²²1¨Ø¿ß4ç¹üvùí ~}üS³›¶ù)û^|)•&•F¾­Ÿ®ŸnÜÐŽ7çðØ 8*[ó.(zi_Šfu¯öoõž¬�¬�’±F;R˜™g@Ɔ¼O@%¥gÑ*Ldæžïp’q’9hðj𺳄惺»®t]ánän¼iyïÛH]I]9-`eß7"wgÙ8M�f;òj_#Zq�êAÖËûïµý¬©§‡š¼à†|£úFÕ¼ÆõÚ¸Wó�ˆ.Ž.>r@�J�J=<�5†5ÆÏ–ò=W8Wø@ãf:d[qÝdMXOXƒóÔÊ„ž'¸eSß²Öõ%ÛYGßÇ|7š·ÛƒbÎöÏt7ï¯Ø*  �bäk)’LD«¶�V™×ÈpÕ qÔJ¹Óü÷8Phà wþ(Ŷ¯M×JgºhOëf7ÐNáµ;OÁ!q1Ùã@-S‚„†àsˆÚ?Ŷ¦]˜¾îEåµxÉ~ë2CbJ§ÂèÌ|ºô¹S ]qõûu7?HJ8Y¶aÛÏÖVõëá�Ÿ°½‰)b,/²cdåK[ã£a…0|ÉѮϒy¥³Û~ŸF^>¹~ï€âõAV©·GBnu[ÝÐ8È\ÙnÀLÕOPsÉŸ E�c¶ý›m,ñ-y£ð¹êaC¤vÿŽx?7)õø'·ÈQ/¹•vÍ8K„/õؘ`¶ý m×äÑ]Õ*Á”ÄŒÝ^'îÂ[õu—ÂM8Ö÷db1+Ïð‘UáZ»J^†mØöOµØ ÷ÙbJãtfÙ¥²öÝ�½" IÌÒc¹Ÿ.ç$”y®µÜÔú#N²Û° hB;RakýQÃÜþÜ©™Rw*¸F^n÷£øHŸÑðÓ¯É< §”o–˜b¶ýSíLÙÞnÛü?:V=ðJ®)U˜ÂÛ„s•ÇvYÍ8Œ›¶ §ó.»Þ°%ö¯IZ–»RˆupäxT¿ÕJ·v8·Ï¾Ò@¶óUò+}ÕÂ]N÷ï‡â"},±í÷iý¨07�Õ7O–¦&�íÆ °.Æ3nϱ2©«”¾Þ,­dOñ¯Ø j Ïc÷7ÍB̼mÛZ•�:1ÏF4XtUã�ÓÏ—ßF¬ïðÙîlTѯߊ—¯d“òîÍxB@ÕGÙˆA ½Ì½ÌÜ:ìEOå¥Ìá�¾$l"lõ2òXä1zW€�MC4`CðÜ B„ÿ:@bîæZhınŽÆúÊú m>q²¬«È.]îHŸýªš´þÔ{rAQ€z§z§Z)@ J JVEëˆÏt-l-¬Î¨ÎH&ÐãÛŒŒ’ tt¿Ïh´æx� @‰M|”'À¯ �Ût$/�­µ6 å³ ‰‰Ð3ACÄ,÷,wÐ ¢®&LÑîGL3L38%ßN¾í“ˆér³C§CçÓ™\Ý÷ºïߦlæd¼•ô@'Û•Ù•óÜßÕŽ¶�hÝõ·­{9z“¶;÷wßK(¸–}FÜ=¼‘)ï!Å O§KXÜšÓšJA;Ïc0ž d˜îí…ASÇK«©„z£¯|ÿIhë¹59ú¹ìþ£ÀÊ‘{bˆÀ ÿI;évç´˜Ïågz-ÿÎíxÍ´ùà€[8C/i›E¶€4ƒí¼à£³ôe¢opé\O1ó1Øë<üø¶ý÷Z‰µfCÞª•š¡¿i§…öK‘é§ÆÑÚÊ~,�4v—†ö$ë=8ÑÇÖ�mØö+´Ž1›ò:./ f÷)þ¬yS§j„1ב'&džJ‹ÏNnt2–iæ´x“`ÛïÝBâß8§%èÉÎÓv‡¨fÝyÌt´ää•ãªw'TFt¦Ö¯£hR[³-°í¿×tèdáY¡8•i-ª Äx‘ÑXWë†J|('ù8î¹�µ»+_*𬾶 Û°ígkÓô™ž­®C»Úì!–6FFªÅ¾vÏq´7~‚¨“„õÑZœX©»ÂI;­¯aî&æN7øïµ`E<²»€¿Oo»Ý„ü§·†=´[½m+žÄ4)·a>È8'£D&¡Å¨Åx*IòVþâeÃh¤rÖ—ÒÞ¥½cÅÃÍÁͱЄ«!)T ‰"_¨~XŽ­rüîSPƒoøíðÛ…ðû³D˜íAžœ�Ø“Y4vD†I™ü >@ù¥òKOP€¨”¨¤º¯ˆêÛ§?q!q!ÞTËúo³*·*×—Éù>è�…Ò² €ç.4$rõ¥[!Ú"A¾meBy=Åg‡‰F�+ÞT½k½kkâ &¤| Ó„"‡"Çê9 ¨”ƒÓx…]Œ]Ì·æ©ãŽÈ4Ýì}îV÷ðŠTŠT ÌÝDc�Óñó‡^s[¶'�ë» ¿Ýn"®!éªl¼>ni%eb´LÄ>4l|šìÀ*4Ø“.Öíy°3A¬ãÃ�LæKMr:§úg.e7!òõï$Ð8ï%,Ýy±ì•þè•‹úùíf[áÓC«³oe,xÓ“ÅÅÍn:‚î=: šíˆ†EÔ{{:;Ô"+öª5|Éò°åaú+EýEý3%€àÙË„€’&O™z/€Ÿ¥a­hÁ±”X¥´¡´á)i­ƒïÚ Ò ð˜…>CÂþ’ÇÝggá8É}’;Æ@a@aðø¦è]�P¾¹¬¹l¼T¼”·XTÕw¼ˆz'GIò}wjlÝ[ån hͤ­Wk¸Ñ|íF¸žÚó>?¡÷Ù\šÂÀGRŒl†h†h/Š ‘ïtáGð9ó9û¢²>f}ôˆÁô&­4²4²-iw‚eŠe Íf§_låx€ {>ý|úïÙþën–ٹΖ󳚇.»Ã§BNn·ëœíŸéÞ®ÿZ7c {�$ÞíêóJ°w¬½a»v8õdJ÷4ªÀwÚ ¢ÉOigˆ‡mÿ½f¤EQg—ë°hÚžÖíí&ñº‰GCJ«€d&i–´ø‚8Ï!G'lû¹šïF2éÑŠæ�¢„iÓ{È÷Í*�dàZ¤U.Í'ÑΑվÜç÷�m?W«3ظÐù܆zåÉšVר`™º•‡5G$´óÅYüûBÇU÷Žz‰£°í÷iy=sÖ+BN8^ù�g4#®‹\ÝÝn­õ)ÊU¨R—áWÍs>{Ûþ{í�úØU –´p•þ І ˜pOxŠÞ\c  ¾Ï‹‚E2| å�x�\löŸ­Å„ÇIægp�(°Ôª�PPÚ¹?[€·Ó›]ˆMVB�6¶Oý„Üù°ÆÛ~¼¹³t�HsÄI7u-Ò%ãÍ-~ÄÜíä öŒÖú³uF‹jnШ—l·ÛQÄ�@*¶º��ÉRb³¥&P}Bnh�Å�âw v’ºqÝz±ô%IcIc =D¢lZ 0Ê6oHs�ÛÇò=eœ.»�BÃ+žºÖlmom¿³ºyǨ^ÖPéF‰èÙ}üX´ ]©ôžµ(^€Ë;—wI>£t£t ¾pP¨�y¡yaWIW‰ÈšÇ·‰@D �Wâ�}ß“TQå£Ú€�h�k ÷9ìÑþT³ ¡>÷F6÷³‡°ÚèÃÕÉ%�%�ôVi™5{Þ�ü€ü@öÔå©‹äGLJ{¤àRðÎì° Ò^Ò^JöÍŒl«”·Ôú¨…¹·ÌÌ>�4’Ö€Ë�-c˜nÛno3Ä“FlÁ¬xfC&!1ÓYÞTÅèÅÈÒ%n)BСS~ñT†>ä2Ç“ƒ��ªk¥žï¿²·<ôõ½%¿ýÔé—#V� Ì× ·›m%àNé[[ÑíN Æäuy³;­ }ÙW_�Tò‹¸Š¸ø…¦ÞB›ž SŸ×ÏûÒúäúdå„@¢@"�q›ž� 4 ›©¼öÆ�Cƒ%*3ƒZ9HÆIÆ—C/ªÁ]ûAE‚¸S 1ÒóGÐ`õÔ‰DmýX#¬±0 – – ”d@ºA§§¬Ù ÙÐÝWÙþm(e”²8Û‘²ïS½n§Å’8—ŽfÏ&ùZ‚�‡¢�]¡Ûà¤â•ÏÆý_ŽÂÖ„„sù‡ô9| Œ~ĈõˆµIS³l³ì &›#q§âN�[{.“<$yh.¿™ÛV€z•3•38O7iÑótI×`½Â'd�Išv%vðÒv{KÌÙ&´½EPÅ�Zw©O…Ë]CÉõÿÎmdÙFÔì– 1Þ!qÛèÂ{'ëÏÚUž»ÕËD¢‘#Óãü"`!Â7—8Žm¿f‹‚î3HA’²£´þÇÞ}‡SÝÿ·²²r’ݱwöÞRöŠ“ìŽ™UFi‘RèÝÉÈN$²Ç±¡��‘¾}¾§Ï/NC×uÿ¾÷Ý÷þ�ÿž—ë\þx»®ózÆ[’6ËÊtC³¿9nì¾­šZ½à©1‰çx¯Ý1äÚC˜ö¿×ä+»ÃØÆûblÖ HÇr˜Y7«Ð)IÑ¿^ŠÆÖ­ ÂQ?½Ò�Ïí€i˜´–K½wU«é¼VÌãé†dúB•Ø#>hŸ°AX&š+J Ç^Ú…i˜öŸhÊ,Gv¿»¹Ö¨ßK÷ö1ÓÅy“¬~<© ¥ƒ½|ï™uçH+H)£‡1íŸÝûH²)Þõ�ÃˆŽ‘B>Ýyy»Ó5u=‹)YR‚«œ+IÒb¥Òº�i˜ößÚÞŽ&Ÿ‘÷ué¡!¦H}›¢¦Jªë ²[‘øV¼vûʆpütîÀy.Bl#ÐÞdWíëYy}¯—|>ÂüT IrðØuŽâœ¨�özU°±°Ž×nGß.‚޳p+Š÷ ÛÚ@�¯ak«^­È*¥e×LjxãÊ·bµbµÌJpÄpÄŠOJp¤B¸�.zêóUú4RôP Üq[×ÅÔÅ|д–tºTê6žÆõbBáËž ÅÒaááÔ*r9K—ûu Ñ«II]ŸeµüDqq=‘>ëÏÙ½ã'N¬g¡XâÆš ëPVÊ8Õ«g2�ޝj„åKLn ËØŽØŽtoÛjè¸Ê'~Å3·gn-a�ˆFDx5ºfgW)W)µêÍ�™�™2ã­Úm¶k؈T/¥+¥C¿Žqâà@Ûœ£Žè@ QÃ\zØN×1ä—¦N_1u�EØòJñ¿kDÇ‹’'73#›t ‰¹Ý>ÊÑ ÔÍôƒ¸¹V 2M'7¢Ÿ1�~úsŽèß»ÑçŠy–ÅY–sPýРý¦óNs¡Úç¹°wi;w3‹0tc­[¡ÞùðêêŒuˆ&G$GX"„(í6Z2 ë$¾%.Þ1>Ð=ЭxЗ‡ë¸ п¤áy¸°®ßŒÂÖ™ :ò0È>Èþ”6kðl¤(³ÇDÄýøÊRŠú±Ž­2€CªCêƒH€üœ�ï§CCk”bhþl)-J†–¯¢zvbð+¯6噹:@sDÂXÂØ�D¿“å'ÿŠEÎEÎxÚ0�0�7zèRì†ò†ò`x©�Ås‹çr¶ª¦Ùn}0vëÁ«\O\_ö<&ÆxûIä°ž#ò‡•)}ö.í´ç�¾¶÷—ÐõµÜIaÉ l\Ѐw¿-k?Ži˜ößÐ>Š¿O}#kò:º"ýˆ€“úæ Åšãº}Ôud’J¡1Ç÷J" ‹»0í÷o‹ô,tæ©i»j²ÖY0]:|Uâ} Q1´“é2Ù>¬ËaÏ®u¥EÜ÷ Ä{ušuš1nøÕ–©PÌ*AHhÙŠ¥0¡àÙåÇò€iîiîÚ(”b×Ë�Sh?s?3¬Ö×o´ºïǂ݃Ýk¦’s.ÔÊ•ÒãßìPúYxd+P:Fo$¾Î¥€}Õ~pj7-5`I¥Ò¡Òá4�ÂØ ­œ¥_AØDØt\wÅeÅ%5�ò'†R†RIøÍ,Í,<Í­ünnGÆ è°ÎàÈàדì—÷¸¹?—Ò›‹h Î�³Në½´ÓL�¾¶ÿ®çâ�wËÜo§! ÷:6šãóQ±=:Ã’·ÂÀý"_x`.Lø¹ÂIs2CiWLô?Ûðõ¸¶Ù87Ëåzš3Kòèü�™†IÚÐ(éõaBèk»þgJk‡--0 ÓþÎfãWJGs¨’ñ–dë諞×Vø�( ¯Ðwe µ‰½|êÐU܃-æoXŒi¿WûTžvA;í~Fï±,«Y%`6;Ê’C:üHE«Y|ÕG}«9é‚i¿Wëoñ1ø‹0ö,¥ŸÎºÑ€µ�68æ•–7q+“Q™ªØ‡díÅ?´d°1 Óþl»ÚΣ6ÇXx¯ÂÞ¬ˆÕáEL Õ�”¿¶‹"³0Ïù|ÒòÈaËLô߭5Rœuàôx˜4C­H}F­Ê¿G˜œæwzÇÍ÷Ú1�¾:�¦³Œ‡u°k f3ˆKz¡ïÅÐ’?4umFrð›p°3Îì´£…�…5Ò³]¹¢ä:#ï­òA±UO9ACÈ%ÿ%ÿ7==V×N�¼¿Ä?ô-ZNZNñ@UQUQñQaȳ^@9àÈ’þ©w&h숊>�î(èžÎóÍç›×:³O´IŒ�4ÔÛ@·ogù©%±úHÂ:03 rrh)¤�@þ‚a®g®ÇêQÚžÓ]Ô]”½§¬ûs� øª{ fÿX%•#Š7žOˆ•örÅ�¯®@ÉÉV-x¬¬‹In³FU[~…¢•¢•WPŒ×PöÛÛ]�Aa*8;XËmp¶ç«é²°0Ò÷€Þð€gϪqS 3WNwþŠ ¹ ¹ÔüqüñÄè6íØ„Ù„U6ì%‚$‚öÍlu‡|»‹Tu3x<\O¾_îÝQÔÉ]•‰¤S.ÚÈÑŸ))cÜiŸ}mÿ?�ÀÛ-½v×"TbÔ7�ñÆYž£ pÎbqŠãö÷îeká–2“»êŒi˜´i©©'}MûÔ<{UÎÙÔÚèþÁiœ@PÒœs+BðµvuÁéR1òi]|LûßkÙcÈ�ܤ’]¶Tv4׿üB°‡Éô£š ®Ï¿¨ê4Uh³ ˆáÍÇ´¿¯yÖ¸'ùÞXà2õ›Ö¸ÛdMÐE¬ Â!�ß¼g[ó8øF/GteÓ~¯¶ø¤õÆu…3Y¹µ»Å"yFò=Õ ·OÌ׉98ñÓC ãw±«rÆ`Úïßxø\4/ͦ”TëÀÔºO �0Iý™gœ !²¯ ÚÌÔÖsJï¤Ç§xŠàãèsÌòu(m¡x�,vbŒûšP«ìNsŒÎç9†gi»Þ!*t½Î[9É€?ÞtÕÑ8ó;óWj^Ù{Ù…`ẟ׷jÅjÅžûê3é3]­èvÛ�þ�Ôõ/Ù…¤dÕž¡ñ^WFU<ྭ@“AÒÚ3¢+… ¡ðÓ“¾9ĺž`+f+&VôMöM*†ƒÒ;nðÜài¶k¶#³ªÿ±þ”þ”šˆ‡Ÿ»Þz#L]@%�bG¯wùþm”ƒz‘,ÖGÆC‡ø¾ÂbWÐD�F¹:Á¿Î¿þá8dŒATçõ¯€NB'°Ù*Û*×¾EÇ ã—â— —ÕÁ}ý6óV rÛåöøX³Ä²ÄÐgtÇ[yi‚mL” ±d§^í¯ÙiFG~,õP–÷JÚZ]†aòŠhY3v%�Qž«hL�ž�صÇ,3B¼8ßÎè"Ûgôh*ÔßaÞßßÃÝ-§¼¿`Å[iØN3úßò½sR1íŸÓò¨“YVþÅÞ�GSµ÷?H™3Ï2eN’ W IÉ’)³L!c™�ŒQB”!ež2…ƒ¨ŒqŒe3‹�L ÏÝ¿s÷§Ak=¿u¯ºû¼þ{ÿq–?¾kYëó9û»'C$ÓzÅß~z/È<ÜÙºb¸'¢yRSCô"¥Ç©<™a§R¨ýšMø>\}ý™ ]‘{˜r9¶wd‡U÷©ñb’ô$M§øÞ„sÝ3W‡š öû´özoÜë´Q¼Œv¼Ið;gö¼Lî�Äö¡¬,)¸?-žgÝ,<ùÜjPÛií–|Q¤bГ^Ió#ÕÓ‰É&ÂQlHß.›7ÂV}ÛT‰\„±¦ð¡µï5Õ¡–'XëîÄ=ý HÎKƒÈøJ6‰à*¯ƒNA�ç»§×›¡ök6†=kI5‹Ä>EŸöÝ“ zN ¯¾É,Öõ9N?ÐéøàôY�ðò×+�K µÿµ‘Œ›Pâ2²Kä-½g¿Û#5Š{aþQìÄ�#áz–#$©ü×"ÄcgËñ ¶³Zï}C\õ“ª?óPHYŒÜSŠÈM› @Nê‹…¶»ùÓe`:%.ÑCmg5#º"¡ylÓ‚e+Ò=ê]�Bã¢í�Ö×¹Xh°Q¸7 †; ö÷´RRJçY‚œ`zcRKªëÖëÄý¾­ì×^®ô�–ÅÑÛ°–ÔʇšP~L aëgª•ìyÎàpIÃÌ‹$Qì軆J|ik¡ë5ƒ-äÁù—1÷´l·k�Ç€ÁR¶Z2Ï AWå¿Ù‹AÐxZ È?Áiˆ”O¢%Ý�w¨c¬!øZw·y0ooŽ)@ìºZ5 º€Ó÷á� ÌCl…ŸÌð6H#+ômèÛãÉSvÒ‘± c$ Ù )Ñ(j|â—rò-®-®kpÀ´ð´ð…]Žä dCuµÑn£Ý}sÊß·´¤ˆU-ûc'ò¥8jÝd�P\g†‚é¤Q$g\›H»‡_nÞÚˆ,!G‡:3\3\{×ËEs³~†r‚r‚Û~Ýýº”Vè㎎k¬8æärÎf¹[a*X�ññÐw v¦�•Ž�üçJ¨Ä#øû­·Û5 ßM'ï–*ÔÑìPØaH»îЧ!%0ÇŒÙrTàÜro’Ìì«2Üðoüðø·¸/Èë¥jÕk<\}y¯á™3‘Û�m…?¿šc+Ê×¹­è>él†h5[ŽJ‚⤯È\‘¡»cïµ0_ÈÑv]á�¯aÉbÉÊânŒoŒ×nňN6J÷{…è—æ…­+Q|ô2@|r}Ñ}Ñ$=îå)UêØ by=5PŒÃ•(9ŠNx­€R±R±ØÀGç�Îç&Õe@©ÈZÑZÑö»íw±o\þ¾\­\-·rüÒƒÓ[{K ý„’O=Î<†R¸Gœbe²p­7닯™ÈtùFÊ/Ÿ½|v)†r:yQû3ÒõÓõUù?¼øð¢•Ý i?|?|é �‹7o0+7ÒߊL�JCx€ðÀï/ÿë¹ãÁÇEž8yÏ:qÁ“½ØOØnw…~¶ÿŽ»*¡5 µú¹6bXð)*R÷iQÙy– …,‰§Q¶‡¦³ÁNé†åV0u>ÙMúj;¿-Êd³�N§‘ì_u¹UõB„"…ë(sœhâñšÈ\Fš…]žFÎ~ PƒÚÿÚŒú…ïÇù“äÝ>¹?‰,#l-É!oÊ£Éç{a®R>už�våƤiäPƒÚ¯ÐÔN�š!]�uºu_>#iÇM£'Z>·‡ˆëÎÐÅÙøg$)'´)œ µ�ÖkhUGI%éHf¦‡Å­Ã�<°„hì¹¶8Ô÷”¨(·U¢?‡‚ž¬jPûÚágšR §*°³´‹ÆGÊ^ Då+ö]§Õsç!S%2ûX/¤¤ŽÃE×ÿÿÝÄ<ÊÍèå6˜ˆsÕ™1àúqÎZrè³¢„4Q’£o/gmz¼ëþníõífEŠ0X çVWgc4ÐÉñnV°2!s^]Z6Ö1Ö£*ÍKø”–�-äœð5º,º,째Oq± 'óÆÁ¤ëSB•nWyVñ(£çÉŽƒœÚÊlËl[^*„Q]KTE¶4��lèDP�=RÁ’2g¬y¯y[ÚdRdR\|ë�úqòÙòÙ0lõh‰ñ÷­,¯, ¿}ÕùcBœÏ&^×pP¬}k™{2QôlŽV}l«‘ çÿb@”¥É¨´·y`óÀµÀ¢‰bÁŒég¼rå^°ñç§g +áÂ;dÅ1xÔÍÔÍ& ›e|Ü ;°ÑÐØˆ>½t8Òį¥á&91‡ÊÅó¯ôçÙÞÿ`«ÛøÙ½èR› Üef걃n„ˆž=›/GXºÍ4·ËCDçkVkVk–uܪܪ¡U€<ïD6P_wìjœ/–›)ŽbYfà"¥’i•iŵífNoų½–S*!ÕgQÏç"*ZLxöxö.ý€™”™”p/ùU<�³ž³¾\«\‹Ød¿æ÷•>*}E~éÇÆèx[¹¦„(ÇS™N{ tq^�¸MÀ•Ôò¶ÿ’ PºF`K`{u¬z\*J�÷g¸;¹;ÑFgDg Ž¡»0øâ዇‡†‚—\–\&™6ókÛª™Ð¨¼¢üß÷¿ÔÓ¢ÎS®aMÇ‚JÄGÓ‹/¹î¿ÚnŠ~¶wÒݼ¿b+Ñd«"4_‹¡Ý³ê`Údôø.¦|&†|Ñ¡{±îLæ{»UÃa)EPûçÚÔ 1ïÇ6ªSê‰UdXõ§¯±Ëk3'Ïo†y÷úzìb9žyå5Ôþžf?áDìÀf0ÂüðUjÞ„8F‰ö…¹8±nBËçäÙå+ëv®°h_‚6¨Am§µÕ‹ó¹ÕKýgLhгÌh¸b׸(`´‡GX.Ò?n*†ÚïÓ‹ÇαvKFôb0ˆ¾ÿÃça«Ñ}ÅÃt¥ štÄ]Ø•×aá6i3𘿲weïÆC€= ÆMÀêÿ}’½&*UnøƒI:PÔé{B@¾¸ffNSù‡xR Õ@LVQ¬ %C¯#(<ïóäC§ƒRìDìD•ýx<¡odß4(¯uŠcŠ#›5›•+;@øûò{ó{5©d* ª­©Dö pêd;±>Ey“ë!'9÷ûâM¿´6@·túõôk�,lwY.—¢Ÿ��ˆ�ðìðìáYntûý 43  Ò!Ó! ÌÝLyy«Á@լׂ×úÞßÖŒ ¹ç`EÄûúÏí,m÷¾û̸÷÷½Æº›o-ñÂñk¾Õ´©…D½mûmnÞ^³ä&-å3s<ÎQÒ|Sýч^= ·Õ˜Ý0 ío<ÿÄÿí½¿Ôráàé€ôµ4K)zúÅØíζʟ_m3¼Õk1ntŸº6ó:š‡k�€Ä%% •.M´t” s!y÷µì'ÙOyJJ’zYÁŽ¢ì7ÁÊÆ:sn€™çèŠáH7(ýþäƒÉ¡¾v³˜±A JÒ ¶}&(oX<ÔÞ-ÁøÕøÕ1·¯ž¾zê�%–ZMo�n�¶;kw¶tt(øû2©3©Ÿ7wÍýe7�” &@” E)?áEŠ_íÃS¬²ŽÈ/±Rý`ƒ€Þf›1›±~¡ÏüÄF9?£_¯_/&�y�y]… �V(V¨�ÐÔÈÄÈsÊfÒü[ñQâÅ,ß[¾ÏS9á_ÏÓdYíÃÖôÙUÛ@€·ÝÞýlï¤ÿ ¿s“y>¥ßÛ-ÊèKÕŽ‡4Hä£2�ã{¦E�8ú“Üö<-7«uÿËgPû÷µ|c¥ª2¬U#ùKîBxMª#S¯uUe]í šIÍÜú˜¢4žžé`l…Ô~…Ö8dâGXÁîDDwm‚'aNÏÆ²eXä«èËwÙ;ÆÅòÄNË,ýdï›Ê-PƒÚNkS�ëýlû¨‘W`†&ŸÊ…¾uov ó®°£–ÂÆÒ/0BDÓ�DRzßEŸT_Eª h,%0ù�7+!�Øn ŠƒÍÝÚê"y«-º÷o6£5[‡ƒ=þåd‘V²Œ PÇgGK�÷†J ¥¿SÐÜeÀhÒh’ª= 8º8ÚCç#h…•ˆ�ˆO}V}vBðbÑ÷¹aºaú š ~L�Ó,Ã’@,�b­zD÷�Š\óÏ›5>_|À�_Ú/ �4{Žõ«ÊâÉj|"µáÏè±è±�âXX^XfìFçJ�ŒCÆ%Kl<ö¢ñ¢9TºÙ9•­ŽùRÂÈÓÉÓÑg]Õm–2W'Ù³ "­:ìOn7ëº]—'r.«³>lh$ª«½°‡¹¯_G™€{•ÍÛ‘<Ä®ÇÛ;ÄÿÒÆc:· µó]Ó·¾1ëØ:ë üën–°³MuWg”o]˽7ásv»Ùúß²“îíú·µáËô7'›qöÙºŒóµ÷wz«n˜®‹9�zhª3ãæÔe˜Ï^³KXPû÷5mB¿ ³dóOxCl«³�ðd ‡¢¨Jîtä ^¶ýqZA wK¨í¬fǹ…']òŠòèîØ)&B&í©�xLƒn¸lQ®RÒ Õ[®#yPÛY­Bsþ˿DŽd±vM¥åB�ŸØÁ½œÅŸ­é­Ö®~9ÖA§ã�Pû}ZjÛ¬ñ"¿‡%ƆÓu�i%¿�;û.J±¹ ø“O•)ˆóÈ¥ZkYAíß× *CVéc}ÏuyU�†ió�ÖÆš­öäÛåò6cžàÜ.EÙîPL¨Am§µ ßÛ"iñìg2 U^Œž’¢<˜ÈËÙäÌÌÏxBXž,¤CáŒy®õ1ÅQÔ~¾]£o;Ô}[¬Z»ežÔ+ kvþóW﯌8«ùÞŸŠQé$©�fñîíæL€{w· s,EWà³Ù‘h¥wf2©mGkG›cþ.F࣠ÞÞgC´_sÇtÇ´cȌ̌ü8®âQ˜ïÌ Fê³Rž30ßGiSÌHUR^ÿósÔ®. N+âôø{÷Nõß?p\(#«�qH$ùÊÊÊÈ^Ù#²WèI’Èž™‘Heg„p !+2²IFÙ ‰Ì¸{OŸ;NC×uÿîïÝ÷û;çñßóêú\ýñþ\—÷볘} fᄄ}¿žÏ1÷¨/¬/Ìtl9m9‰£Ó@ÞêF3F3nXoX?oYú1¸0\xi7NñÏÕ ·Ö"Îê]_oøÏ´!ÝÃ1è•�³HÛÿMÿ¸5§�y®| |àPÿ¬FÛÄí²_  +Ç(¶.¶7Gu/ùÂ?7Üsø3Ç3ÇGB7ë³ÚJ^ð�ýûC�3¥Ü•e3VCHÈÌSL5n7g é§a‰Ç5ƒI¹F[ ¾k)yVNu™Š¦UÀœgg³V‰«r’.F(CÝÑŒò§pé8§åïÌ™ø¾OÕÎá‹Â<¯Ôq©o»Óž�·ãÜnmk}>ô¼ÔV a u¨Ø:6ã „ÈΪÇ@ÂÖI*H*FªRÊ[½ø#¿ÅÛÉÛ™<˜k•k%[¸ÍHOAÚ@IôúŠ7ðf\GÉæÚø$d¡ Ü/4O³äç;K9§ëe Yv2»ƒDùá=…r7à>è>ør °ô°ôèªh¦€ÈÀ«>ÿüiüiD‘sÜï«á¯á—Ägø9ú{ukå@E7’ FÝžœv$)/3^Fصd¼Ú¯¹Etj+OÌãÍãy<†vÉ­VªýŠ"—"ÛÃffêD¨ÞWf�g�ËÄí·4R0R0èߌÛy+]Và°³˜ž˜´žn‘"ד‡¶Þz©‹ßµ0S|Xø+�íæ–¨k{—eâÎröC\ëjî Ä£z$|zÿÉmpÁ‚÷t¢1.Ÿ€epN®B��ÅýǶ‰]Ôxji¢�ç_{ͺ¥ãF ÐíïÙ®2Ò»ýŸ¾GƒŸ*ÍXoM¡·!êu¾Ù ×ÄN‡×Çj­¯ÛïŽ VêG·ÿMäqg 㛞ˆÓ«yl‚טôMd`¾â° ¿…ð*¥ä˜r΋½»þ°@7t­éJwV�Œe9µý¢Áuê~¡žoñÚCÁ4KJçN§Åh=Lô}³ca'º¡Û£I2¨íž‹_©“�“QO?Á9à3«›Ö‹m!°&.ÑÍ:O£2CXJ¸7|ÝþÙíUA:É\1üž!éFæpJ»Í�Õ´qüǘK˜oª’6�!å!WÌG7tû»¶é¡8§óÃvò¼b)$eÕOû:Åð®+µ.®q]ŸÌ~éAÃŒ�nèößh°xÏÂ'9·,íN]Š;ÒÍå´Aq«ˆh-uІNS'õE°öQÚ3e2°yKtC7Ðøg­—ö–¨áŸæh­7¯wºð8uÖËÝ¿’Åkp+Ìrµ|jö.Þv³^í$Ò[=èC•�±®„×> ²qîÕ¹Wá»'¸ñT¢GC.�~ëèäÑÉÛÊ®U®U<ÒÀþË⸀*0·ù@ `FOx!a'@Fç3ç3Kžàhy=á�Ìä3ZC´´çÊ‘n°­NfŸþ“ ‡ Ǿ Àw¿ï~‹öÁ(ˆ>Wi]i]ÌPÌP·³TÁ�=ð|àù’ûsÍÅ.¹’�6’¾ý™ý>H—ùn:Â'lÞE~µÎ,r Ï ¸uPà €Ú¥kùpøÙ€_q¦âLE˜ÞPßP,U•É�Ç�Ï' <ÃdÃdæ¹Í6Nler8<$$‡zãœÄË–A8S5›7^íLRàv×1DÆ�c½¥öž%³ª/á®_>(oKÐÅ4k2”£0(ÝgßÕA·žXAiB)ðò©¦‘XT3éw®cðÿ:«7Ï«±:|vª·žMÈÈvk[çó¡»„·« ÓA•B½Yþ$íFœCœSe¹S€"Ò%òÒý[·Ûo·Û�ñbòbºËØ™˜>bü€²@í+¤€lQÜi¤cåB�;IˆNDgQÔäõB]•ë7Ç&ÈÞ§Y‘ðF(-"¦½��… ##Ÿªê\ˆÜ:Ñç_ƒZƒÚ� ¶¥ =zêµ±éÏÅæé¾%º,;!‘ÙRâ´å#[Ôïëå2mÿêÓhõtí'@Vp~x~X%¬‹õ �Aɯ˜ãžã¦Z«ÒªÒÂÃ@[ÅLÀLÐ9sµÏ¼Ì¼lÌf3Ù¶­ç�‹ˆüØüØÿË5º_ñ®lBO¿áazöí®c ®íR–C<;\„>àu\¤³;ê~@Ù Ýþ9mIOð"ã]ã«´Vúhá°[S"°º 'ì03{R}†Ál!µk×jxÿ`éC7tû_6u]Gã’©VÄ0†jHß›$¾B™å^²½Áx1;Œ™#c3Ùï[�°ÌC7tû«ÚQŸ¸aÞñ{ªsORööíY53{í&Ùà;—rs—?¢ƒÉ« 7Ó ÝÐíïÚö°g�$yOýòÅ�iß-~së¿â;Ù]=¦O�Kè9-¥„ËcºI¹REF¿yG\<ž8e#¦ÝD{D�%u»½’îç½CïVOV#›QdmÖïQÔ1‘ c cZóâ[=xO|„ Þ‘é[¢Ù¢Ù ,,á^@ôÛ�;À«zàãCAO zë,Íq¤xÝàCåÈìÈì'x¦ùÊÑF�1Ë] ÿFÚÿ…«Ò b5\:R|ºK}høÐðÁ|­IBù,'4'Tþ™ îO¬j®j:� ÿ\÷FáÛ†(@E é¡ÑEuY|¤ÕÔôy¸³Bò+bØPY‘) ál·×nïøfÿîÌÁõ_‘U•UÅïxQñ"Qª‚6767­Ý2•þTþTÍ6›åæleO7‹º�C=w®ÊÞ+ªk‹â)`Xyöò™íνÏçΉÇ[¾Ý>†ÊNy3ŸXˆ€ÝT ¤êMÎdÎänª½˜„mN11'C¾µJ¿J_ä9ï9?+„³o˜¤À õ¡§žÜ1nH—.±ùCúDf½g½•Ë:,×9r* Š�ƒÄ�w�h�Ìze^Ã*<7<7Eìiìé´åÃlÑCbCâh»h»«z×~Ì^Ö^6„æHòÏ=êÖa©:0ú -íC8˜/!9Û âàÌ| ©‰ùêƒzðŒJnè€í€"/ίuìý¯`öcö[³/ï[€£ÂŒJHJH’a[UPˆƒo­¸UŸ<Àr‘³�³u†Ö �c¤l»šNû©½)ñÄv34Ôó[¼ø¬o�/æ+Å©KWôDW�×ønúk‡ò¼ßk=Κ+rzÇæÚQä �së �ùËÌcäõ‘^aŒÆÔÜɽŽd ÛÍxÿàýݯV=éÙéÙ#}7³åß*øOSÚ!Î!Ψ{ ÉàCc·÷à=ÆÈ• PÜn„ºçÏ4š» ú>R6‰`KŠ[s™§ï|†c,üu~çѲ•sW¾sï÷ï#ð¬ÐÝ…%…›´�5õ­ËävkÛàó¡gmUÎ3–€ŠlÇfÌ!Í2ú]çˆô�ô�2•KÃþi‡m’_$ˆ}ËOÕOÕ�¼Ä¥ÄåÏbŽYÖv�;1;‚€ŠxëGHk†NØä)�S//5ùØ iBî“°@âé‘ÞÓ¾Nìv)·®\ ˆ æ`s°|¦€Iµ ÛÛÄ\ö\öõÀQ±¬¬ lö8ñsîb³rÁÀ­¤“\œÙIÇ�è$ʲŠÕrm©¾jT]Ù0špºw2î,ž6Ožº¥�ö+²g²g¼*gjfj®ó¡ªU“~*ýÔgk?Ó~&ì}›](Ú*xí@ìJì ­§ã_Þãv¾Q@u&ìe­¿_n”Ib÷•íöÔ¨kûõ\¼õn?¡üVJ˜½ÖP†ã'±Öðd£#¥'Ïû°y·aip5Š^4 :%hƒnèöŸ¶]ªÌ�ZN[›êg3?˘"¨ô`{[;F&¸:€K7aÞû\|ÅKÚÈð%º¡Ûÿ²�Џ\DM)õ˜6�¿yh´kÂxW% "Ö‘~´…wø™EGA×^Wmïtû½ÚFIbd*Õ8]çs˜ÝÇã eúýš „•2Š |ËŽrS©�×ÆÎ¢ÛïÕz›O.ië\(‚M¦e×bì£ò‹U¼„ß|@»X–w)SéÃ=E¡è†nÿi‹ìu·«ÊÐá"O=£ÿð Å‹ò~Ja:öª’»ˆk�›¥� Ñ Ý~·VGâfqØîÑÍ·b.'Ê\»¸ˆ)§wÜ|¯iÉ÷,)WN>axØvHþU: ¿=ê,ÆÃ(vònJ±G+Û¼+öØÛÍbÀ§/¶ f�Dp~3ªû�×Ô«õ†„» wïÔ*SÞfelÛE“/ú-9O9O¡µ¿¿«¹À(Ž© g0KÞßÛ> ð¹Ë-!E4KDAÒ´$öIì;pE5àèž¾lƒÜuȃÀ°h¤ÂÙò¤ge€·wP¯‡{M-@b•¢¢æ†ç†cƒïÿ˜/ž/Þ1Ò ÆŸcýä(§ƒZg�ÔY{EaH܇‹žO)g”2~…õÞº±±ÅLL—\Tèßa@àò+úlûl{ ê êv¡Ô'š"šªZ¼­£Q­Qýâãf ˆ­ö¥“v22¨sF¾ ½`x‹•/,jÜšïzþvsFÔ{�>ÌÔÕp&ÒåÝï¶#R³|¸#rDù…¯ã*Y*ü»hÌ ÜïÌ�}ÎÈ릊õ\ÛEf8Ô>%cZQi»µmôùÐõw¶z™)‡Šûêfß ÕÃluíw­ïZq ²'ž{Ÿík¦â4ý–{¼{|²Ó%ÑK¢CSÀrõ) €¤¨×²ÁžÕį¤F:ÏZ=^7'±?„#„c´Ô,þ#md„2ÉädIÏ#‰7׸·UŒ�w’w²Ì˜û˜ûL éœ!§}Ò|Òè?ÿnØ “ÿØ|á|áa›+?÷·´î è]F²]œn:�‹„ Ç" 0hñºðÕÛãÃ!:)ÀäJfKfKú³™'"&Ör¿‚‡‹‡ËõšÑ;£wM’¨â¥Ç�Ç�«Ÿ»Æ„Ç„3Ùl¦Ñ¾Õ)Àõ8µµ´žœ¾Ü»#¦œ½,B-ùp-Cýma1ívsFÔµýý<ª×‘NÁ•,ÀcCNI´·ÝX4™åaºaþ{÷Nuÿ?pü !ÙÙÜ2B¶�½²¥H‘‘™�•HœR2#;„H9FVfF6‘½ÊŒdde…dö»?ßóý|ã4t]÷ïºïêþœÇO×å:¼®ë\ï÷û|Þç(F_Ïz�¶#šÃâa 5 M OÔö6�):ôÈ»W«¦±hGb4>Š¿Í3y¢Œ<ÛµP€ _Du/Ôþ}-eø•OFt¦ ©)EÄœK¤Úâkü:õ †ÓQóíe/t%Û Ýƒùس öÏ5‡ ûè+�ù¹Xu]¦”Ó ‚±^î“ä£%Á ßz|úÌÚÅc3j�øW ösµÅÚÖØ(IxrF®@ÛP–ƒ" 7Âv¾FÀŠ‹R›N3\ ó�K(Ô~þ†ÅfÁa}Üûݽ‚ò“g»l‡ ÿ•gœsIÄÞ’œ '7š“~/22Á–oî>‚ºŽô0ôfɳôs¿!}Ýatm·uŒáŸë˜æ€�"˜ØãP)SlçrdªŸ‡ ’é…‡Âý?&뉕±r9y½cø’"…"…§|ÜDÜÄa @_DÁ*· àVÉJ…ˆ(ªö uDN½½ÚÐ�Õ�u­UÒŠ~òèjBh“€7©QXVAæª*!`éùÒs‰~€õKë—ÎYhµ %� �  î[ºðoÛƒ»W”„FøûО1_ÍHÔ,"%úÖ¿"C27´“YKbÍ/þ _“Wvp²H+K+ëÙXÚô pÄîF1G1»e`0‹µTï„9E9E îS¼�vŒv4TÝ®©d'=@ú]<]<êÝ2>óOÛAâºPw|§·Tì¶FG}Þ'N6ùòʃµš͘þâF´R*­LnFþ�5c�ˆj†i^vô/×è|__£óÝ”³p¥±¡>Éç_yíª�õn³môçlã¿Ù)¿;¬ÕbóvžŒ êd=�± �^؆aBïeD½ðÓ3_ZZJUßë¼×Yì<À»MM ìhèä/ã_ˆÝ¬àE2 »q´œä5í5Í&È‚ÃÞšv4�¬u6Qh#¥žŠaÛìü¡¡†¢Â¢Â¨ù "AüƒÖ›Ö›¢#¢#÷3IB¾�P…PÅ}Uää÷ õ*´Ú"ev�*S?Fª�~%@÷q ó³O/V=7Øù¦×h¯ÑŽYZMKÛŽ«ýˆóºçué45'5''æQå¾ð°õ°e?4>/8.8^θ]ÓN qFFpž‚I‘ót[¯¯¯ûp—¸ÌÙD„³"gv[££Îö×~'j¿OË$�¶dX™ –M?:¼6{”~´·sÕ+²}JW[L‡Ìý¥\žâ¨K)Ô~Í&ã­µUæ@]äÂ~ºÓ3ªÇ®_fâ©Qz²®ËÃ�D•~›¹‹#‰mPû}Zw“ƒ'ÎUªhwn:GîdïP%¬ê”YL/²g%1C±’yöí"S•fPƒÚÏÖU‹¢Nd ÈZóÕÍ$íO±©‰Öt þhÝ [÷íÒÀ‡ }À˜¡Å…Ô¾Õ4F:²0´·n8�ˆrg?÷¦ùá3fQé ZÖbö£Ú•{g¶®´Cí×l´X›ÉÏý?z­ýqW9 ’̻·^¼o#Ê›f¨÷Ê=…ãî/V%PƒÚ_mDd8t,Òy+³,w^‰G¿ÅÑ\L¸?Êad;F”zÄ)Ròþ|Å>¨ý\-ƒ;ÆG+΢V‚—‹TÎfìîY¡ÈÜ´IÒæ©óâaÝ×ý¨3Ð]’VhÌ¡ös5 3ê"¡ELEË‚åÓvÄXZ} a[b/»úom¾á` Ä(ŽÆ¹f2Úµ¿§•“¹Îï�Ä¢1'¶%¿j¿EøÚ·“Å©z�Õ7SÛè“í¨ìy¡|¨ åÇÅáun�¯f/²EÈšfÞû@Í‚º¿O°&BÆ@i•nŒ+vªîù7ï^÷÷�Ñ`°#+;½‹ê¡úv´u Ä¬Ç" )?ünüîƒÇââ?yM/±w}ih~h~�•GŸG¿kPE="@ÞЖXÆÃ?ô€åw¸ií¦2H�²„²DbZx–¨'Ñ d—Ä~ 4ò4AImÂ_@$!nXX˜K �­—­÷¶ªEq:«¼Ry¥j­j-ìý>éÛ4<4±Ñ,Aä»¶NB:Úp’¶Jæ¿e«=hb&'9?»Ë)Þ1Ù ¨grèvè.°PÑOScûå£å£Í¡ZÓZÓ!d¨Œ} ' '&”ž;tNwNŸ+ßîbËNj§%%QÏ®-{zŸ]¹}D¥„\2òÈkûÝήPï¦S½ž*ÐÓî\ØcJµå<¨-Ç¿@�Þ!À¯òq Yq¾¡'â+ß/Þyvõê¿Ï¿AÝÄÎ+cuáðNñ`9vh·³Ô÷òwÜU 5¨­ó–[+š Ï©SƒzäŽ7ËG‚W$ÓÈ »ÃÒ™a2†á¹5ôf½Y{‰ öó·ŠÙ Ä3iDLëðÀÆè*QÒGôñbIÂïu›sé(—÷Ü4s½…ÖÒ5¨ýÕföZ$&Þ�(/äS2IF8S=ÑaO2��Ř›œWãÍ^ÇŠ sâ´PƒÚ¯ÐÎJ[5»½ì½ÞGh¬$ëÈIi$V±€…Ï:ò‰ôøÃ2¢GK“ú¤Î.PƒÚÏÖðžSi¼%–¥&𛕴�0£u¿Çî¯�åôadð ~Qn§ôëR’V¨AíWh¼eºr‰25˜�õ‹&ÆÊ†¢óO ^¥2ºÁE¢�oµÔ$¤®…ÇAÝúðÿ»ù‹»WXÑœøt�0W‹Íû|¼«Þ Ô}« DÚp¥{‘]Í8¾ƒÝnûVçÑ`°}Ô;Ív¼¡GeÙ³ÝÙ÷ AéµJ‚r¢j¢*ˆFt!fÿ±y—ñ/…ÁÃà\ÝÙ9Ù9Zþ€@J €y餧ƿqä,¦¬!ÿï¥D‹ˆ¨ù¢OÐç1«!ˆAϵ äVT7„T¦áÓ¶al’ˆíŠíJòØÀmàJYòX «À¿?wbwbz÷ìño«?Wîœz5Ã÷­‹#lZr{¤ãÚ*m±Hz�¤�„kJ²á[Ÿ}ÔȽØW ˆ¯QoQo¹›¬>ÅÙù#äÉåÉs*È=�‹Žú§�?‘¯vóÈñÈá›ÜŽÔz§{ €°¶.ß._Ô}«s¼Q·:Z|²�ÑÉsóÛmß õ7Ze‹ƒin]H1IÀ1€«{º^²­½· GÚqL÷¦¶5YÞW¾sÍûõï\³&$yQˆ›…tæê¼Õ"qÜm¶Mþœí*¦�ôR±ðP"¶›:º¥ññ1Èï?["£Ú— ÃÔŽ.â1ü%''"Ühûhû£X€÷Qéž¹6ÀXÐìžSgÏ�öå"-Áó5AF‹XŠXúöGÓ?‰{ÚÛñ¿WŒë.éi³¢î…:b1lW ¼Gyo2é´ÊRRòdóÉfen?Þ·¥ä¤äTo|Ôü>¥ã쀒sœ³´©SÇ`@û´qlæguÝö9ÀÚÁ%‚KÉXò…w.+þù2ù2FlÆÆ™¢YTD£÷xïñÊÛ]­†ÇÁã*_m'æ¶Ó¾M€éèã¸Çqà<5Q!ç)×ôyÏò™È%Ë9›kÕ1 »íƒ¢ÎöÏt7ï¯ØJt™ë„ð¬7cE©°Ö�-ÛÌwö£«f¢©¾{ÿÆAk‚~�Ø£‚"¨ýsí]•¸'ÂAã�VR-É$F“ÂE|Á¼ñ.k"Éüv˜ç€¯ûáÌ / ö÷´Ëï"]�™MÆè’§æMJ¢•èk.Ä‹÷ãÙVÈ®XÝrtƒÅúîï‚Ô~¶¶®S³h“[·òZÉò,à1åÓÇV”´÷79H‡haT¼c -:4ˆ ¶§Pû}ÞÓqÖÆ~ÙÈ4Z±Y ¯�f1§x©K[t© û0Ÿ]…E8¤ÍyçáA jÿd¹;K‡WÇg×Hôú\»Fn˜›£˜ZXý¼Þ±Ãr3ö"ÞK]î†PƒÚ¯Ð(Æå)*T< °);]”Òs›t´–| Ü·>wþS §„”75!ÍŠ@’[Y �TÆ·’þ,ë\r dvùþåûS{7üù»|~[0[pz¬�¡�áS TåÅ«#«#Ú‚�§Ôn©Ý WÜ®xt§°LÀ–Ùž=<¨çþ—¬Hš±Xk"g›6ººîFívîïëĸ—g3ISØÉ·Ž*µ€­‹ÉÁ'dÓ–“¸”ÇêŠB[I»�VÂû#›ëëq{a¤ú_y^åÈ×ÏýEznûÌíIÇ.d‰•Ox¹Ûl›ýù¯½w)Ë›Dµ¨»�?È'ö€è(ÙG¿�~E®Ô3Î^´2)æúz*zê~¾#ËG– ÏÊOYŠÒ$åÌ›¼]€GgS©‘Œüä AÖùsãsãR:& ! 9 2 — '§óÁH²8´®äk<à \î6€A™A™×ÝF¤Z¬yEó ''ö^>¬o»¦pMaåRbè÷Ñ”*ùXb¢œ�îȽÅ4F:4|¡Áb í¸àgfþ‘T >æBæB9‚hwg~~Öêê´A&ü^øýšªÞ£¤V¤VoØL2¯�¼v’+c»L”—t8 ë´”‚”8OxÈyú£ ÃÌæðÛAL]¯=õ-û÷ívî�:Û?ÓgÃïÜ+ß�è£ó%ïÞ×l’Ä-Nn¹ÀS¦GZ,0�~àÒIj*NFû×ÕePû÷µ|sõÚrŒu3Õs7„öµ™hŒñ¿{ap[CÙí²I;±ÕõÁƒÑÚO”zè:¡µ_¡µŽXÜ«aqÁ§všäJ\0r°­È3`‘¨7T,ÊÖÿÔFY¬žÜ芵߻y…MÛß×Ö—Z é0ð:‘ø¨šJ>ÿx�—AùG%•¡³“[‘½ÄqMI&Pû÷µ³¤r½ÑJï7ž¨ÅÆð»ý„öOÍ`>œ`œƒ!ËQÏ*ýX÷ËgUPƒÚÏÖÞ‘"®4ݺ4HÑ|fša±64T!ôµ{Žo»î °1—¯B Kç‹"»i~u?À$ÃÍÄl$.d:¡ûP ;r·ýs4lrx'‘ÊÛR¨$–¶kä‘”¾�ó#t$tD¤¢©k)Jߦ£ ÿR>O>O% '!'¡I/à¥î&@90Ñáµb5 8;z)þâfÈfj™i™éœl ÁÄðAPahû È9ƒ© IYûÝ[|»ŽÕ<Õ¼`. 2±2ÑÏéD!hÕ··BaAaabŠáÅ·ÅSÆSR�Ãû¾¥²�VØ0�ꌗ˸‘¦µÑmï´è|æ'áä7å2æ2þ?öî;œêþà¸q[áPÖmUö(3#’½÷JöÈ*{“YEJ7‘-+'ÊÌ&#‘-„œÒ)�ùÝŸßésÇi躾×÷þvß÷ñøïy¹>×ùãýùãýú¬ùÞ r!¹‡¯²ÙNÀ§€SÀà˜Vã ïÞ]ãc jYhY¸¥»KÆv°1À…¸è´è4ÌYWÇði%wÑEÎ ›¾+®£^r;ͺ’ºá�‘ÊŸæml%-Í×v±LM[è@y>rDøÐ$ž™Œp#HtÙmº™ÃÜ)k >¾ÿ�Y—ð·g]…íï¦Rã¬Èw*ü°ÓÚ¶ÿãЙ�Û½_‰áÄD{p+È!Ð~øÚnP‘m¼ î"In¤µ¥ßKž©ÿ5MM±´V¼V¼àRÀÒu·e¹zpåÁæ.€m_0šûf?ˆ¯¥{¡{!Œ§±Ç»,Ùô0Ðtýº9Z=¬KöžëÝ<ÀuãëÆ´~€�Á�A¿X8h^ Å�â°K·KW-w·ø¾}¡ûBeÙïßú±—ú<„£H´Üg+ìÐ84Ï{ûù“<-6Î7]uëø3â™q·q·…k¨ß‡÷Ÿa f &އ7ò S»°ßc¿Çï£Ùž%>KìVݪ¶�Ø%råjñÕâ?×öçwý¤È¬öw»¿Ô�?[™öüœÊN³.̵ý+½·ëßÖæ­£í÷ôÆ?2=¡·é°q8Cå÷"’@¼%+m^rGS|lû÷5s]Ò˜VÇçµ0ëȾÌA¿3â‹�´$uKˆ—¯¼$©ðƒ8 êrÛ~­væàæUźû{E3—˜I™Í_*ÌdãYgðD*ß-&֞Ηы z Ƕ_«µšlz�ŸŸ´§|Ûµ¡; ÏÁ_£)Hár�õ9,Cr=Emàݺ`ÊbÉD0#Û°í¿Ñ2Cª[J¯9¸ë{¥ôÙ¤½v‡l=w‰‘IÏ(÷aœ¡À>ÛE†7؆m@;²êôžª®J‹ÄŠoà¾Mk¢�Gý-̹sq b÷ʾ<(ª»Ó¿Tm§¹³#.ÎÊävév;aªÈÞÊŒ ¤ãúå¡ã�ø²Ce‡Ž/ÆÆjð­ \øZiki+ ÿ¹†s ùN€&¡Zk@<=¤Ö“ˆª­õBƒ“ξe¶áöáö1r´²W9ÐS€\4�ò ·Âò.häî—W¼H8„Ÿ?±t‹t‹(½ÔIÞ0e5e�MšMZÁþ}wzïôŽd[ÑüØQÕbÁ• €Ð´ìŠ®¹h�Šœk¿½%ª�4|*¹¸Ï —ÏÏ#¶HWVã–dÿ3ˆ{cÖó¬ç™?brë·p²p‚£´òµóµy�·ª Ün°p6Ö:Íú«ûeOËMôÏØq´ó„w¼ÌŽÙiî,½öÌïJØ1*gÇûµB÷?°)»BG8VO>)U™Q˜t·#bú”u�î$�ØD»ž…Ì¥Ôߘ;ùöý²/–”t"�%ß<Ýé+E¢½ÓÚvúãдÛyqŸIÁ„£¶U.t ³¿tÇ8Ë0ËpV{äQÜ �ò§Ê ó_«.­.µ)‹(�(Çy @ÎRÿÿŸsà¶wæˆ,€ÒÄ–éƒï ÚUƒ×‚×43}¡™B ê¾úÊçVKDÃcò”)\s ÌPf6C€É¹É¹°�£! [ûeûe”êíªË÷11014—Nœü±¡©01€ö,ÑT›uÔ4n‚IøzÄ»êGU_(á“s4”+Ö*Öðôœó~J¤ b\<§7§7n� ßiõìêYóeæŒéŒ)M슷tŽÃ¹ÇÕjò_SWUW�#I¡K¡£³\«ŽµȽ,øŒNØ|H:ö¡y¼Ý r$$$lÔs-s‡zÕƒô²&6@úªËѲu|á‡éŒy~º€õ õ 3ÿz�sŸ²¶²¶(T8}—êûò|ò|F«®jÿØ£Œ!&m@4!}›0Ûk´òf|ÉJ³R†æ/Ž95×á¨6Cuà:p¯È#i™Ü+'†�†�†c‘Ÿ¤Ÿä-¦a¶Ëõ—ëç,št «�U!×­ i¶3JܦrÔvÔÆœ¡u+”ºŸWw¹ò±`߯£¾,¥�fh˜çD¶Æ9¢-ï±ê’W¤ÉQÔ;¿uÑ«Q†ñ¯¨œž*—¶ÂÝ:C@ÏÐø¿=Cû ƒ0P#Dúö&Äd6‘!ÂwZÛ§ÿ8´Õâv7(xïcZ›ØJz?èpÿ†ˆÙÔ@Å@åãï×»çÍQÜ"t°¯  ¶Û»èºèšNìîìe,�E�éOÚê}µ¢mæV¦‚ÔÞ à àνz½BOW Z¾¥[Ê«ÓUCs刮nxÇ€øCü©Ïª ª $<²)@=I/ξ8[WXW)é)þ}‰‰¥ã ¶?Vëc*¢Ù 0¨DñV}CEˆ&HVý4ßÙª"ù…ƒô €“»ž¸ž¸ŽÄ1RlùƒƒÅ,SS¬1•™°Ò°Ò¸Lxk„†…†}Ø¿ÇvdÖ€M�t�tp=q}ž¡=�=8•ÂéÍ-Ÿ–§ò¦YÛi††¹¶÷WÃÆún ]cÍëz¥l7¼R3p Û°íïÐ6DD/G/K?O¬ËÖâs§1FÛJvD6:éÍ‘Üʪ!lûõÛkV˜YFÁ½|¹Vs>æH…‹‡ßTW1=bŽ%Û‹ÓË—:t îxÛþš¶*¿º:(8×Ô�b5Þ“mÓYs™‹ë†{e£‘üÉó+æ� úpq�|r+löïµubȰ�ï kºûvô.D}—œ.»ýJßDþ§4�¥ºŒÖtþæ™i”çJëYõbî;ú¦r–ÙnÛIªœÚKz9¾Ó¾ÃØwàm×ìz““›éV^6O±Ó+^è9æ:æ²{Õ9¬=izïí÷5 jOYRHRÈ]8`Œô$à˜ "¸ò˜ °»$õÚ¬' ÔÈYËY{:*ÇÖ"6×D ËЕÄÏ䢙(“å7×ðØñØcÏ:P¨ˆª9PØŠ¯¯X¨X(òôûlFmFñS_{ýØ cè>àuÚuË=F\/Ð�JˆLž{_Ÿ‚*ÇéŠ ««ò˜.²êfÿ RgRgîWø¯ð 0I†„°…°yÜ"�OG¤#è ·Z¤Ý.°Pª•ן×�¹§–�cOBüNI\O]~,fZu§=5æ ©Èé¡ùêâñlè4þ1!Y¼“n…ÞWìf'I†q�6 NG~㾑í{jÉÏïÝrëÓ|™0Ñu®üÒɬÑÈ�ö@˜¿åõ³Óîs·èv1x<)ôÞ�H¼aq°NÇ-üÐù°A|]ÁÞ£gÌÈôÅ]° ÛþÓF¨Éu·ßÊé”i Wgá´)˜çE‚>:Aüã4Ós›ñYT¨‚…ù¶aÛÿ²é'ùÞ�Ñ«ßwýȃ' #Ï- ›(*ㆠúEæ;퇪FpE ê°í×j›µYséŸ1 ÷0¸¿•Tià3�ÒÕc-$�nRTíýà}b)7&YáŒm¿VïóÖy¯gäq‡a1ÿf\Î^úsI ª^$˜ kŽ‹¼OÇS{]¬*�‹mØöŸ¶‹ãAîÍ…F‚4²¹¶¦·Ùì&EA÷LÑI1ñ6QäU–:_};£`Q�mØö«µ.Š@{N÷»W_ÐÊÐú+5Œ’ÓýJï¸ùV3P{¯Þ´ØÂ:3È®ü¸€Qôˆ'æ\(¶Ïõ‘‰ÂÀ#ÔzÜ#Ô—i§¹�ÛÛòÒœíø¥ˆ ˜ºË·–UËý{weÛ?p|�(Ѳ˒-kHö�µ$"î"ÛX Ù ·­"c—ȾfI¶²…dWÖdkaRdºþó\OL‹ŽãyŽû®ûÍçÝ÷Åóâ|sþÎë¼Fœ„ÐÎÎWNQ±§Êûsɨe�ê×ø’ù’›j©s?‹ FÁý²"€ Úï6À|Htã]ûhDŸ4š4º`N…µ}QØ“íútÎ ªã�ˆ¿tT½W)`ØxØX¾ÀÌÆÌæQÁoÒdè6î6î_í_õtVþ>vöðn‘ÁÛÙ•æWñÇødpwUã•a6§]‡Únß/hQ£ÈêQuŠž±žñ{‰ÈEÿÞŸa†2C-? =zì\/¶U;MrMòXTyµSµ“b3O–­²Ás¢½¢½Øs¡#¢º×ÍÚ-|io�[‰(Øn.„ý¬Ñü̓LJî0ÜËë½´W|ä4²'üõ©_§ò³^©¨HÂoÌ…„¿ý¬ÅmõSêš;OÒ™ÞŸI_Ë]^Ûnm_úüÕ"c[Uû«;bSòÜŒgôʇ¢tê¹rœr\Å~´•yeŸ#®ã×:è:èRR‡2‡2[ pµ3)€j^€�6ê>̰A£{ƒS›]t¹e�²àsªU^Yo{‰eËá­Ž=Ç(o¡”aŽ¢yˆµŒµ$^h 4dŒlS §AáOŸäëäë´—™Í¾ïrÏåžþ„Oˆ#EDÏ2Qî‘aXÛÀY&Àº™sÍy)sÀ¼î‹™£F;6 ÊÈ¥©¥)Qj5I¢Œ‘Ÿ1Î3ΣY°Ô³ÔƒN¶[siciƒÉ�q¥óTç)ã7›¥ mµ°àW¨R¨ד󿟵�>•³$~ƒF¶x5C}²¤Œ~»9#öÚþ_ßGõæê[ÎÖqN¢�÷àÔd+½‡ëc?‚×ßKÎ$ÔÊ) ª5*n 5¨ -:^ß×D¡d׫àiTc¤šÅ®IPò4#ñú¡ •‡”÷\íSÝ µÿ-}ôE@NL ¾ñ>*ÔŒKdÎüIƒzH“FôlÇÃgºRíç½C¹ò¡ö÷5»ª‹1Îy‡ùæ8t]Ð'²› B žï–¤'#ŽXÏÓ8³|騴ZÆáÅA¨ýZm¾¾->ZÊ--§†Hèçp¾�ß]›Ù:!s ^jm­i|VEö0¨ýú�€ÓœÛJÙ*®äÑ©3JÝ6/‡Eÿ›;Î…doÈT˜( gdÞ‹��s›y�aïc²C4åÏ-Ø,îíº©`µÝ>Æîó>æ±ØVw˜±Õ/læ¼ ¢‘Î]!ñ ñ yåDîU=s^‰¨þµàCÁ‡¼e�e�n›Ô‡¹€4Á,'ÅEÊÙ�!Ãåb"æ«DU¢|œËK'‡ïë‚x­c˜@ó>Pa0Ý�»3Ϫ h n nx@"ψ×ú€l_Û4]+‹ïƒÀ 8”–ÞýØìMUu/4à|"¿6s ê9F²Ò� zÑ•W¾›*®Ô¸ Ðq®ÙY³S�WQ\£øÚÏ ¡ùH9M2Mb–Žíéй¡sìFž×ß^‹œÝìTüV‰€›ÝLLØ{tdbî�C팈†0o’ËoöWm·GÇ¾ï“ —æ¸xg¹.Y+vñpÙSœJš³¹|߬S3BÕ2Oòsá~½GüöÝ©¢ËI“*šµÖûJžq˜ìµíÖ¶ýçµÝuv+rZ¼"l-S›ÝHìÜ ÊYÑÁÑÁ¹ù¢à3G]3[ª$Û¯¹®º®ÚÚiÖhÖpå ŽF`tuG_  HЉAñ¬K´¡æPãP“ôgõãLZ�­_ èvNæ,Æ‘‹&>èÑ”D€œŸœŸì€2�2�5£m9Hw¼�£�Æņeí©—ÿ÷Q¶Q¶ùe6ÔþG(qÑÓ(€!F±kKjnF›m$'·EBÜÕ;_µmK"ÌøË-Ë-S´9ª/7›ÝüüìüìH©9á9a™WØšTëë<èŠéÃ2Â2ؼ7Ó2ÝŠÖœ85÷Ÿ÷å„îì§ëzýý=»%e÷ß#…¿;³Ý{mëR¡öÏi¹”1HæEt¨\Ö ä‘ÑåwG˜^õu-™Dv uµ%t(¼ŸË)½r©„ÚïÙÄbýÏ®?´£-ua�ШÂ÷�îµ�/W#ÍNÓuIL99`=si,¥jÿœÖÓlç»Ë�&Æ›�ÁAŒ/Í?ì8Amz¯¾Å㊒Øáx©¢‹bèjS¨AíWkÁª¥Ñ§oäÊY 6L§îI7«‹Ñ²CŒ~²jƒ­vk’¸‰,àMÓA jßkšc�ùxÚë^Nð2à 7¢½¹Î�´$=f7� ©ÿ“£ŒëˆvõÎéuç¨ýž�ž`-­1hîWº¼?êÄ�j ÿ†&ÉþÕhºá>ç8EeoTÕ³¥»PƒÚÛHÇÍ)v1°Ë-¾C±ßz!óf—Ö|òí‰0A”¡ÍkÒL�Ë‘R·g«vCí×j9|±&»Î&˜×åçÝ'oý:ê‘Ȭ‰}-è ’á=W®Ñæàº¤.Ò™Aí×j榴¥"óøJÈ’�¶‚³ýÉáI­ñŽ®Aëk#ÜÌÔxe1»<Œ_õBí¯i• R×Ù=‘„!tfJ÷‹ëð¡À.ö˵+�1ø' 7l^É])†šHqBq×*åÒ½y®”œInÜi ;ö|߃Þ×”±øÑ›·*– T{l7ßwÀ�Á õ¶Z¡rÅ ÙÌ·4É›ªº",%,%—Íi­�4¸Cõøkx€y’yRÀà.é.YIÞ’n÷ðHeLed9ú2æû´<µMõR�ÒÁçÑXè¢T僞ðl6˜ìùˆÂ:&Ó¾ü�ˆd¨ýúmAé3b:‹”eÅ-øiL�ø¾ n!¦D‰TÑ÷º-… Ôwø˜º^Åim…ÔþÛf:$›x�´èæ1–4²œ–'¤})„Òuæažò~O}úªrÌYäPƒÚïÐþ�FX´xŽ÷]釗sà¡6”¨š# áÛØ§œô�4ãÄþ>'¨AíWkÄ�4šor´¤3Ó¯¤.¢Lé½ã˜#‚´ ./Œ½¼ORZØ%3T°�ެ jPûÿC]ùÙ:ü<ýÒñ×�š†cŠO¿t§1ôâ%Ó$±øÐ,¢~–0�›¶-éÝ‚$½«,èT6á…g™pü/$ºê©`ÏŠÂS‚â#ïisí¥¯F3ï[ßnV䈃Edm¥ —ö�³…ˆ>Àý¨=óàþƒûÜB$.´k #_=ð5iWiWæçÖÖdu€Ö�-&_ÀG4kŽèu@Ð,E ÆK·* øÐÜÐ\ߊ b©÷A-â§©@—¯b4p«¸¡å“2£¹£¹‘qË(Ë(¡ÄÜAÐaŽ$¥$¥Ô…Ô:´‰ñ÷qìçØÿ(ÓhäÇ |.•Y¼CcÔå_ê?†ñzM,™—!™7ÎA±ÿã£M®,”îªeºqò.7u_W{›ú¸9=Ò°Îcº>j‡ïYQ}ã~þ­sÐfÌo)4iìýx&òrÆÚ£–;¶i»¹öoù•Þ¥ú;¶ ]¶b«µxq‚'d»éÝ[{pUsqTKFÝöb´Ú; ‰‚e””BíïkS5’¾wí4§Î¦Ö“Mà5+^"a.zÛmE*UÜó ôÞÁ,škù jMsœŠt�;±¿fºL™Y4!…S¡¯5—(9@lSM~¯jiÝÁ¸§jPûÕÚŠNݼuaÃâÐqä-Ø�<êò< jzîÛkÜû†éa4ü¯™[uè—CíŸÓˆËßrÌ�‹Ä¡—xwÔïN—iìi~ÚÊV]Zx?þcwÊ.kÆ¿ˆjPû;ÛXÔ;âAÛ§¤Cç:4û‰Â=$ÔŸÜ!î{}Pžjú¢˜¿Á‡noóóPƒÚïШÞ*PU�ôÝKHÝår<»°Yçì‡ÀóÌÞëŒIGèŒÊ“ܤO²¯‰„—A jU u,`¸QzSö�&‰Öì‘ÐIXTŠ6]A¢Œ�À]ÛærC³UœˆŽ¨A hD ¨µ~Ý ¡ƒ<‹êñu§|«�ÉìçÑ¿æ6¨�öÙãœ;q"®ØjPû«šV}†TO2«¤mÅ ¯ø–|…aa‹`ú‰1*Ói«W†­‚‰\íc‘{ ö÷5q“r{‘6æ4§ªwgͬlY-+paõ{(ÆcÆuTr©l üq;ÜL öÏiý}‡O¯L>ù80ñö¢Åª“ºÍè óXj·½„Ž<Þ ™xwáïØ(ÙT�)#^„r4ÎÀŒ\‘-Í'lÚ±Ïi?hnd‡÷ ø[¹ð$^#ܳÝ9­ &ıU¨±ùclD›E»�ÄÅ\ç@+ Á Áƒõ| 9’kƒWe‡¿¶üvùíÇ# 6 6/¼l :/*Á§%®I6§jÒŒ&™´r�ŠÕ¤ñ¤ñ„2úù‰gö '†“F çI%k𪷠eç‡ê9ò9ò;ÿïCÅGŧa�“²UàHâHJ I ¹µŒ¯ú}7«oVÛ㽡þ±w2±nñÉ|CŒ\¥�¦N+Œ¾hg!x"•Þõ/NŸÑI¦S$'Û?µj õ*í¤lãÏPÌTÌÔGOåOåü°æ° XPév{áS÷¦î•Hm%²•i> ‰(@|u_ÅÞ‚¬…€£.ò]ójswTôvç´�—ì<´–ª%z9°�&óÉ g7‹]ÀÍ5Då! gEgEGÀÙä÷ƒ†ÖWVvÂöé㾊À·ï«L¦ ìXÛi²‡}Ìvþy·-ÁvkÛùóWK:nÅ@âÕŒmþõf¨"�¯üH±Ã×·SFÞ­Ù\#ö¥±÷×véíÒ»¤;W9WébØÝO- ¨LP¿0ë1ó°~8NޱÒ�«*ÿ(vQ¬ñ꾈ƒ+h¢Æø8¨±Ò…C7ìÖ}o{t6ÀlÅl%ã àDð‰`6»ø2ÐqK]]œ“¹ÿbï¾ã©ìÿŽ#„HFÙ!##ÙdFd„H2Ž�ƒcÙd…$’½n²*3ÙÉ&!›8ö�‘QRß®ßéúÆ)éŸïýë®ãùßëáqþx|Þ×¥œ“¿Ñ­½3ÓÓ;•Ãå–9NÅ à“Gâ¶^ì…·#™LáuÓdrgEì’Gy¼ðlÏÄüÄ<�xX¹c‘5ýÏÀÓÃÓKIÄ…âB r“R P èÆ—YmÊjÊR�ߊ¢q»Âx¥Æ”Ô”8OÕDÈy:\œmjÅ>5Œ£ë‡ÝÔFH°ÛuÔÙþ•~6üÎMáÉœñËAqúŠ^‚g&é<')Ì—x+õ– Ìb‘Û©Ò£æ:yZ‰n^+„jÔWíùhzVÏK˜ ÝDk’® ¬uÆÃѤƒÔÂs˜!V§H±�þº¡Û¿¡=7 $ª=꼟ÆáwÚÒ¥+ÖÕ� G%š O?ÎןÞl§*ÕÈhqÁG·ß»ù…Ï“"t ¤–È:!~*i÷žRË*ÝòƒT½WTFh¿Úˆê'MlM7A·?¯i“K¤ùcV$µ¨Ôãí .¢{Ç[;\èJ<}Œ)Ï^ß"Kæ1Ow]M'º¡Û¯Öæ¦:µÚ S>ƒa\Î6[C ª…¿wŸã`ìkQ¨| f¨xÖ‰˜CÞÐ;¨û»Ä ¬5'ך[¹ˆÿç;žßÀ}€3&†ûvÆû˜QUnåà �>w�;;æ;æW\•Î�² ’éyÿî[Éw“ïh?9ñ¹bgÀÜ-$Éz"ïDÎ¥oi�t’ùN9ˆ6Áù³±ò,jÇ,ÿlÄ>иi®²ú:‘‡ÚùÂqB­öém¦Òx6Jk«̇|g×Åÿý]×\tHE0”V+9Áý•n„ôn³íòù¥3?mWë¼7•ßV„'@Ñú³ �Ú£ÙÔƒdÙpœÙ÷­ááOñ*/TFº¦˜ËmïüqR3æGY*¢בòØå&A0ÎtÎôeÙi}˜=(~|ª´Æ,óéîK϶xMqV@õáêÃÌ:€ÃÃ^ ;+Pt¨­˜­œNŠÅÚ Ùáá\±äÇŽjÇ>1Þ”`#eJwŸ¢@j-¯º�âÒpÉÿ«ñ}‡·ÒÜèDéD%ÚS[>Œ,@F¤^¤^)[ȱ�cÍ ¨Â䛈Í�V.4GÂŽ„ ¼Þêiëvm€3!b1Ègû˽Y"¤Û[l4C ¢_ù)í¶ëB�í_é¾]Z›0¢½>Ó�wØÎõoÞÞ‘~_­MóOB‰J ÷Ùçú³Ý±æŒ04¸‰-ôö ÛŸ× 4‰k-2-W¼MüÛ’^¸Ø‹Î4r¨‹kfãÏÇ,ä;ŠPspZyY£Û¯Õì97c äË› à&Í11,È!R°L¹üÏ<~€¯1’!¥Òç1ùÝ~­V«»é84dFò®é“fçyVÞR5¾W½ª™‚XÛÇô±ò)¨uéG·ß§ÝïY„¾ã»f�¹éìÆ ™×Œâ¿}¸M/XŽÕµ”/S¶JM’[å>\ßÝþ¼V\úQ�6)@yÀgýT䉞€ƒ=‹ ޼خcÙo•±ÕÏ †_½†…nèö«µ›abRŽ*f_Ö¬™’•;Ä–ÎÃÙîÂÈG/%z–,´OMѲ.¤>…�n?ßh_ N²†�l0è|Cê»gñÍ:ênGþ¦šÚ¤ß¡è5õª�˜¢k7vÛí¸bb`\(Üî^ÐDªNÆ­€šº„MA†ŠÄ$Ä$¼üª¯¥ñ•Ó•T8¿ÕæÔæ„9|µæj�m#À�» è Æ¢v©öd–�°¡‚èiÁÁ H‚�8 ÒÉ•Sñkê$!‰Å• KÉ[ë<5=5 bÕbÕ5m¢ ‡8bâyÄ|go)øý½å[û£žžƒO Ñ,ÐVÍäÝfÛíóK³tl'TZ9ŠJ’a+!k�º}mè9>â³jõE}JC×'uiøêß2ƒ™Áð^··ÚÍ’“¥¬`€ñ ºe·IÓ mU$Ñnš@Ð!�uÈ:m„“2«š "�–)É)Mü…ÄjÁé§»´ x}ýõõNNNåììG�#]ZdZ${,{lÍÍ'¬;[pXpÈ}'ˆóc�Ñä·ã÷t� ÝËx`ö iS) µg¥ Pã«ùkOŽs<ùØ|Ù|—fá¦X±N·F”r”rìæBæÂ¨·zŠÀl��hä[Œ[�¬@ˆ·>¼�¾À&á<Ûy6pžâÉ�óäyAw£ÜÕo™ú$kҭЗž»í-Qg×<§ŠûÑ(߯•ºÄé;ý2>¿sC¬˜ %âí1ÎÉSªÓ7Ë­°Iî¥ÆWÏ�ì��][tÏÄ +@·g»ÁÊ¢›ÐAÀد)L•a¨»®4Ðrg졉‚[r¯Ã˜P,Ân_±Ê0ºýyM¢¢'�y¼?Ìèc>—èmV½K-ò4¾Ò"4¯üVB1Ï–ÄRtYÀe7C7tZ›_V“¼yµÝª~õ°X€·tK0í{k£4H´¾va²ï8æ º¡Ûÿ¢É2©ï[NZk’‡’S¿~º—Ágñbƶ™Èº´Lß±·ŒÑgˆÊ‰HCGÐí÷n/û 3,÷C£ðµ‰È6ïO¤vY%~Ì`ˆb+c‹U#k3%ã?¨üÝÐíßÚ^�ƹJ8Á'lÏHQ¤¨®©Å¨ê‘"ø+B¥su�/b&{Г– ÝÐíÑh’¼ŠŸæÄ›ÛžwŒãìãsÚ¤ˆ/Ù¿ž6GK¯¥“Ö|á8�i¥<Í[stC7  /ÂÞ“–©ñt6_® uºRñu×Û9týñ eó g8¦â²®Ýv½î˜kLÛÈZ&¢ê�oU½²n[y  ˜�×[¸xX¾pݰî[ìì:+pc¸±‹ ÀfÜåÀ¦ v�ÿ‘óCÀý,F.$߈ÝÖÇÇ£VC³ý)%ˆ5—©›>B¯×Õ{í U:`µiµ©é<ÀÃÑÃñ óa",787˜¢‚¢B›tsxgäžäž°ÞJ›Ãò-¸â* ¸ŽÔòô‰­--R­³Ú|·½¡àï°ÍDZ+}©¼£ˆQ„³@nèË}UÖ?X G•¤$´Ú�R�%;]4]ãÙj&v»K7ë󹦹¦¨×1¬eÛPÖZ|.oü†…”ÀÝ®cH¬üíã}ŠÔ’Ü¢¹ìDó‡#gl{Y/�æ(!ä†l¡¸ÝôÉÕ”—(Eëµ Rwž“}ç:†ðöëC_®©ÔùJ÷fyù)„ÞÒí.àÞmïŒúµ”s°ð㬸Š}*Âï¶§·=îÁ j�n¿O{¯+jÏœnØo‘ÑÉyòVüœMÓ¦ö-;2=&D¶˜úíÛuìCè†nÿŸMãâUò¹Î‚ µ›Cã)‚ÅòÈIƒñ£1G ÙÂcîsçZLr¿ËG7tû§ÚñAiƒ|ñjËO™RIЇH>Jš˜Œ¹Ë¶ø.§Â±p¯t³^«Á»ï„nèöom#$ÜYç,Qv¬Ðë’ÕÆ _†ýÏ5îí7®7D”1òšŸ:YÝGÆ—&1…zn“”§�¸DÖqÕ�d&L{·s›Çç_›“—·“×|xUï•­8tAÝ>uJ +ŒUÒURÿ17gòá{·O›~ºù­ð»áwõÌåäòîàj7È÷|™Þ`x ÈFÚ“øF4Gß!Ù!i¨kÛåJßíR/É1�ž”0Bò-ûKâ­î-Kâ³UÀû½ï÷âør€„¤O<ž0‡›Ã—‚ëw–Þ‘ÞAeßÇðcNf¦qZÏ·¦‘¨ØÊzÓ�<Ëc’r÷˜@è¿"@u$�ó‰ó‰³TTãîN›üî†î†äð·žo=ÅôQѾ�\š\z!,Þ5Î5ÎÕœ¸Uï…ít©yGÀyšûrn 1ô祟~1ò(ë ÿi§�æIå’¹5ðù„_æ�à;÷ÔR-M>(0-}kÃíù½snJ ¨ÏÚú˜G@ákønµè‘s$¾qaÜôFúÍfÕ|^ö'©Z¬MšÞg3^º �ÙXUñ2ÌÄ5¡>cõïƒPÿÏõ‡úÞaáÁiZõµ/ßKbÓ'7•t·÷Žçç÷NIív±R¼Q)Emeg Z…§N€Æ=ï{ÞwÕh”j2+6x+î]þÖ Ë K‚ÕR×R×e©yV/ ]@-¹ÂE ˜œJ AâoT;R| Ó�鬶1 I\>òvéá�ÈŨAJIRš)š)½v,.X#X#…`«+‰ÛM½(ÔÖ›Ô› îfÒ}êjKVØmç�úþÀ–.µô­óÅz©<çè¯+¹¶ê².{ýBÿ)ìïcyF˜[wÇ‘;ÞïÿífÚ´‰–<-/ì˜ÛkzŽÊÝfÛëóKßk·Š«ržCty+zU�{Õ¤8ˆG¬e£eã8gv®? ó~÷FâìoÕí­ÛëͲ„µ„5d pÌè0Ø•jE-r¼ÁA¯”‘®\Ux ª®m6k6 fžH¿~w/¨q‰§4Ì©e†4ž=0š["ùžž 9hlil 焆�ØØN•Ÿ*o§j§¢¨ŽµÙ™Ô¨Ô¨ä¢û�Ù]¡�ÔtÁÓ�¤ßŒdÿncá|Å؆ÖW¸"w×,ï¸tû8ú8>Úc=; »ü345G` 0ËHTôªê÷ÔïI-YS–¥•¥y´l5i¿Ýü0À&d�c�œ'¶/;´É1ΓÏÒòFdI¯’¯ì¶CC�íÃÅÔýmY'â™2¼›–Î@{^—v£ºýÚ'Á)Á¨€yñ‹¯BËSÔy,I½Š” ÆÏöSÔî–3&N+(êF·_¿½¡a¢ÖOLÆ©Î�©5àað— z[Œ_DßÅpcÿ!Œ�Ïx"»ãY” Û?Óe_ð�7x´¯1]<˜r¹±4Š�í®mA•Žì¥ ×ØT>¢W2ˆ�Ð ÝvjëøØ=PçYÊf(ÕY+¼¶;°(ø¯ôLäߥ��û IkBéj�Íù×¹?ß8%]×ý½îÛýý�ÿž¸üñúÃûu>Ÿ÷Éšÿtµ”àøIín<�_fÜ ˆù¡áøÖ!çê.¬`Àìðì°m ÀÙï«»Öÿ‘¬…¿‰¿iXiX)6‹Ù›ƒ¹ƒyïï¶?×Þª]4í(_DHQGß<ƒ°ÈhzŠŠÕA'¹ò¢€b™â@ †ªžªÞŒ‰—aÀ[ØÔ¯hklk´–oçlçä÷FÑŸ¤™¤92�AÛSÛçüNêwc= hJnokoC>SËŸ¼÷&‰÷^@$pTq¿35òé¡á{•å¹TüQLÈiiŒuþa«lÇ8ã‰a¼^tɪ K¿©0;*(l‹¼‹)>�ˆÅp§¤iP]éKö§#ûíb¼ÑÑÐày»É7BÄ‘Úi „q3û(¸4è]л0µŒçlA=¡)yx‚ß+³)³Á¹JiKiË$xÈ(CH\°?ôÀ`\«˜�0�z�d$–H—HóUÄŠ‹eêœ@ͪºÑ S3l)„åã¾�ê´õ!«!«¸Q€5«5«+•‚ ˜^}i})K2K²B-uÌÞr¢r¢\ iÉ?'÷Y¡åNÇAú½aè‡ç1ƒ!RªÛ¼ßÄŸPLÊ È‘ÒIÑIQó¿Áw‘‰éù~6~6ÁŒUU“ŽÈĘ˕ʕˆ1råï¾ÿù7Ì�LÍwãù`WXI]IEÞ3 f‹èwšúÐFΘ Fí·gD~vmeñ�FžúÂü~k"±qU“Rôˆ© ]>Ž›dÆ]\’±1‡~°gÚ½gtúóY © ¹ëb!42¥Ÿ³ÕÞ–UÐí·Bþ[þÛïzrôŠnä�;¥Ò%¹±k2—b¸¡±bö“1 ´³ó‰hMHD˜¡ªmNd¦ià9Å9›þ³îWë®*?bÑ�Á)kÍNæ™Uª¢,¼õD€hHTÕþÿ5ØÄ°n|ÖuòTÑ‹Î1þè+£„Íj¡ÏÕã–ºª^éIv^ö ;ÍQ€jÿ\³©±ŠwÊçç^fÕsžSÈyn†Óƒ'yšîAÔV¾ºÆ†õ™•lþµT;Xm¥©#)NÒ%+·î°@ûX�͹#Üé–K PS.j]z­()¬“r,á8¨vð;”Óü¼ß|bYõ�s½–¯ÇDþÊ;ÎÅGħ�(1R^Y”~/ Ÿa/5ö„#Ÿ©â¯W[<­È«/¶O&¿¿ß™Êçë¿´­ÝØik·‘•Øîd$B«[YGpÂ8at†L-ÄœNkWø-¿çßäßua›|›|®à 6ÂÕ�GF³‰òë¬$"r¶�ƒXLûåûåiB$¦ {ƒûAç/ ƒè~g§GhίAåª@t=Ó[^ŒïÏT§üìFþÔ•jÕ ¥óšâ�SúÊ$|ö›m߯³ýòãn§°F�‘�ï”é:.|OTnáơæ5¢ë&Z7�}‚á{-q-qþD ‚ €ÃöÁ±€}”äXVß@!EŒa ±µdn0565V9©dÇLž±„‚XÿȵBàoyg—§c¹ €Ÿ„Ÿ¬äÌ+Ì+ØL¹ƒ:º5¬4¬(;(;¼­>õî-^.^ŽÌ@úþÏßñr£WxÄ!`ñ,¼ÆD#—ùƒæ Jæ“{öZO@s½Ç¼Çü鮇[¶íã_1Þ6ÞÆìÜÜÛÜûé,²×ö-ïZޑ̼Y͹šs5½a§*ÛݶÜk))à<…‘#æ)Xp°�­WBæX! ñ;Q�ýÎèȳý£ïIEµÿ�–Go´6y4"!8±ñN�qr {ýNLלž®øE ÏÙ’s“ÎÏPíßÙDüt¶ªlhË�Y¢Ôk°|âúoÉÌFòÁR ª¬–Ë�pWç>´éw^.rY‹©Xmá˜âG³ä/æ®IDôyÑæb8g®5FµƒÕ F´åÂ+Xç MÊ>ªß$ÅÑL‹HmOr¸ugëË8'5fE<®ÛõÉ~Tû{Ú3R ’[Kø1‡B�“ZRºZm�t³Ø×o²Äc)º²m9 ¹&\ŠjÂ¥÷ït¦\/\á�†ÜÈK\%‰gAÞï¿XÔ¤¨Qð4n*•×>¶çý4à~xíÓæÔn×Ç'�m»í¤Å¢0¦­IáKáçª^¢oߢv¿Ã•Ö÷=ˆDI¡Û–Ü–Ü£ ÊcGHŸø°sý1Vð,Y9„€[I ZùúcÕUçóD©th2vô�ª<AŒ…XX¤– ÁªÁ:˜€HB$³_Ùã�肨h©h? }:[ž+´·­†­h7ßÏåÓø¦F¶è¸I½#ØGñäBi‹2 ¸ß¼¸ÝJð> p¡!k>óvêÆ™Ëñ¿"Ë4Ë”8©Ð¸ÐX=Ù-j¾A¾A6±!¥ùÅùÅNã�„‚w«È$°˜h›h#vegÒ?Ðȩ̀XI)Ã7jµßgWÈwÓ){< éïr|ÒƒfËñµ®,ÿ2#ÆK~ÅO#Yç–žWãFÿày@‘v…—:œì;+%ÒÂUÍß©_¿ßlûýÕÒ껳C–ß¶v!èMGõ�:¤Òr¶¿åE||X…ŠÏ]¹ï%‰&‰nÞ³i²iŠØˆ}6ÈDeLÊ=ˆ&åÖ#|z™`’‰l�lÏàe´P’3™òáÀ@k$òmí®,Tì¹<s&s¦'¶¸Ü�Y2 ´Eõ[ÝouQ‰Q‰5ò™{ ÷÷h½BHüs94µÒjÏPVyÖ Oæéf¼4x`ì7Í\+ôÜ#€Ÿ%£%£º`¢Ñ",¢Ð_¡yAó‚ìÔBøBxH,²ÚÈà¢à¢Lmfñ`ñàYª�ü vó øãùãýç>ü?ß;O/÷:TRÅêÌéóf9sr¿Ï®�gûï¸ûÕP hÝ�îè<ªªT¯õ)í¼ªáak’�(ŸôEä0£É\Ž*n`4(À&MCµƒßVÏ2‘.<"9±ér·5¾NŒ<›S€1Y'mGê»Ý‘ð¬1=ª´Í@\¬Ãˆîw-ù–¾ò®HóÄòvEsws9ùdÐ~»¢t44г»5ÅR?B6U¶S­4ÓÙ×­sˆuˆ]u‘‰‘wJËÓòžù^¦n¦®Žì¤Á¤�ÉIÀƒ( å ðn#íœ: 9 ¿A(rQ”ĈMŒM¬’¸©taÜÔÙ³ôÔyI§¡¢å1™ìöª1À Í MªPÏ^Ï÷U0Ým‚Á‡llÐVgHös…¹6¾Òäþ¹1œ:7z7û¹™ /xÞ›F0Tã´0¼ø¦ÜsHJØpOQå–Ê­yÜ…ó‘—Ÿ8ÿаܰ\—Ü›Ø7±)Ü�¥ÂJÇJLjRY9]?º~éØ)Yw7>À'8œ yz‰7ø²ÝŸŒ˜]ãb‰ûžóîA‘¿ã£Rv4Ð v= ×ÐEÍç–­eSâ²>IøË3z^*ü…æ%?x†Ÿ÷Ç{Ð^?u2´îÏÑ ¯ß^6�ßo¶¿ÎöåºÝF‹]7�¹ ìt=¤>bXâ«3]2]zOï´fa\·üðcÃ÷¨œ¨œ²Šª7«7¡£§qÙh@Æ ÀÌDƒ2Ö `cIÈa‚9,TÔ¦‰®‰Îl1„I¨qÄná¿ ÐzOˆ@‹Eás!™? €ÅƒÅsì, §¦§ÆÙõöˆª§:®:N?V?6Ý,%aoÃÝÃÝ3›~?'ú%¥º© yApܯÊLá I{nM Õt±Ñ7ëùÛËup€÷ðzøz¸úD�µz¬�Ó¯ÀPÃPóà=E|Šø• ²ž³IýIýOºx³/²/’ôíTöq·|'€Ì‡�’�pžÚhþ¼CâFKÿG�˜&‹nõœ Ï÷Ûƒ"ÏöAº›÷ߨ*õ˜›… Ì¿$‰Ñàl:št¥Gâc(ç¡+—³Å>¸Í`N4¤�–]VŽjÿ\›¯“ðI·Ñœ×Él:2‹Ù&gMÈ$*Tò¦×œD²´ Íg$Àó7&‘<³W¨ö÷4‡ùgbGæëSŒ)w)–ÌJ¢Wh-'K XÖ’Ö¬oÙ¹£%à÷¢ª´¶y±aÅ¢¸ymTÞ$-$Ÿúi¾)5çƒ/œäcth4¼SLí�¦‡v>Eµÿ�Fðô ëòñ!HÌ:�ø»ßÿ¯½»Šjí8N H£’¢ -] *HJJwww‚H(HI—ÒRÒÒ)¨„”^ïá½ç]Ï+¬�ÿ¼÷ç÷ùƒ™ï0;»33»ÏÞãŸÜo'ÇFVÝ­F†7ŠÚäŽm›³z£jPû7Ûlì %v ‡Uþ”z¯âèáHO{Ùȶdì‘—ôbÄËÖü7´Þ úkC j?C#ž'®½â‡‹NÒïr9·¨óšÊ»@mjŸªnrÝÊ7á+§?ðÞÆ®€Ôþ©îXHZq^yõ„@Mîóð[‚±iªä…I"–ì©V�•:FÛˆQ½CPƒÐØ'DU»9EϼyLþ~£´_�¨³fd°ÛóÀ«‹¾XÎù ñ%:PƒÚ?Õ”š³Î õ›ä”=ÝrB.¹#V¥SÔÅ‘)1Kl¸lþB§[‹#‰qÝ.Î jÿ^;kPi‡Ãû”:évE!ÉÈ܊Ƭ ¡ëØü½ùkRùÄ–……7�zÝ  öë´Ñ‘{N¹­×mëc sÖ¦³´g¢ûHžêÒ;ÏVDcÚ \C^%<;˜�þ36"Z}¢¨ñpºÖU]W“®N Ëø³Q»¨�³Îdw'†oÝd²stk=èl4Ço¿w©¥¯àe¶î¥IºøÄñ ¿)C/CïDŽSiçÕ…5í |ªÏYÈ[È«oûnùn=&܉ъX»”ܦʣ&´â /a$¹}®‚œÃ^Œ½ë 2–¿ÇSzd%„ÊE�€q²x|ž&su Ä§ÄG&8ÆvŒ-ÖѤÛ#¼#¼#W W�H“Ÿñu²²Doæ¿-‰`Å+ʀƓj¾ý@” i¢91—�†»+ò9oÎB.MÅËå—ËíS*KHî3-ߣ­�ðE±q±ñD¼%"j‡ÀÒìÇ8 ƒ§l">X2T³š:_Œf¨ê PyðvBÇÂk+ á¨æ¾ÿľÿÜ¿ö\(Êò -è_M¢ªù£´ucatN ÿ\~¤¿å_¹]ª[Ò›  $ÂìÒO?#Hdò†õ‰ÆÑ ®×HGì¤É˜H™OZO5<�Úï×JŒä›k�· eÔ½y1{ô_r.=Ó Q”ðtÔï%0õš¤º§Zzy˜²jPûÚÓYã ìÆÓ.8d ,iotl-k‹µN µi_œ,/ИÛí!©�ÏèpÅ€Ú¯Ýü#_['F©j ¿!ìÓò—JËj /‘¼å¯Uóþò•iå…�˜‚„Ît}¨ý~MùˆpQÚ ÄêÄ©ftäà�Òã¬�“%n¸sLÔ�ì5LsEËÏ 4Õ÷A j?Z[:šêÜd7IÜe†`�gü×ôt-ï—®sâŠÅeÉo$^�.�Ëq÷˜¯Ñø½ ŠúG%i©ªýñdqŠæíMÜüû£aó~›ö UðÞ<Ø« ä¶½Ý :ê¡gªgC7Õø¬–©“"8ýs>Ò>Òaï““2_Ngy Hɘ¼«»@¬~|¦òÔ_gAÍÄžeže\ä•8Â@Bˆ ºÌ³£0­˜Y}ìñ¹#€˜ô˜ô.€dŽdÒó' ©1k#k#‘“"'�(=ý¾Îì¶ÙmL¾‹<ßF¦¦/Â* P͂ɢ&`ÎÉ€)QéïaSV³äý$êñk®VÀëÖ~‘~‘�þ ƒŒ·µßÃlÛl«Ãɉ^ô£ˆÝˆ]"ܺ·µ}µ}E{lîw� ˜Bè@è¿7Ñ2hyɆ{ñt�A÷]«aGуö&":ŠÏzÜ�ÐÚya`( ­¹~èÄä”ÖU,æ-Z?ç#áöã~Ö¨á‡ÕwSɼZE”¥G—þ°7Áùåï$�¯ Z±&\Ï?gVŦ{)ü µò÷CSîgbòjÞNø^¨+ ;÷sñ@"ç·ç·ÃôÆüwµ›�"#c>§ì¡ì!�#‡#W�  ¨;²à�0�\ÊDú/Ü´��ÄAez‰Ó‰Óš”ƒMdM ë �0[VЖûù‘�¼e-•ÅÛ::2¨I©I©¤¡JÈ ‡;©8©8U%ZÖ Yv<'ïZê`Úž ”BöKR'Ÿ»ð�@í×iÙƒkFì>–ˆ».î,ZËòA1œ·)ºÕCÄhÝ*Ø3Ï×Èžc‘ʶְ‚Úï×ʚ·äȯŒ^Çi~Í1x_y­Å—Åm&ï¬+(rc‘N>HPƒÚ�ÖB#Îæ¤œ¾œg Pÿê¼Ø1ºô3Œ=®'Ø)…ùeÇe/›YóȽB€Ú÷7òþiAú±Á;?®ßC^ûc~o'1ðe’bî_ê¨[œÜÙïÚÛ î‡:¸ß™ãëBð´·ö’]]¡RV­^DsCs»ìÖþÄu­È­X´úsGŽÞìØ(Ý(�Íà  µôßÎH$^ís�麰šÏâuæu¾�̬bùZ: Ä7�§!u?3çS;ü�¿ ]¦]V@¨k¯kgS[Ém0™0™”·•·9h¤ýñuódódÍ=6BßV0sê„@F©”<ÐýŒŠ|½×Ã%Š�O”˯^^OHj¸h¸ R[¤ ]ü*ä*ä‚Éܸ/Ô)Á;©ÐØ×ا•! ŠÈƒÈcÔ°—Sþ~Qwx¹÷fïÍÂï[¦¦_¤�Ó”+_­ Zê:hß2t’œ!]Ÿì‚{´1?ÿrOek ‰ yŸ'êSåJwé”kaÔml=5ÍFbqÎ~aß’ûËû–ŒùemM¾3Isuä"J­m`K4J{?ªky!ðóöš=ݪõ=AÕ�Ò�:Ÿ(ORA´RÇÕëþ¹ü|r>ëëb@ «˜À‹ð0À†zmÐÜØAøÎIô¡¢U¨UÈûAÂx£¯ ¨¶f^ ´l¤›C—Ì‚)³±ЫЫ}è?ÓÆè½í#P9ÞaÅÊϪžUMvt*|]h}h=_.ìª#_—š¥zŽB°�sª|ÂS`fêÉü¶“³óá‘«Ÿ$­Ì•óݸoÆÞ޽"…ÈjPìö=z0{0)ÌFF¶ὓ5@7@`´¬”›{Ým¯^ûýÂcÁÝ»/‚ë)ž¶ž¼TÔvªÜüß’ Ò&Þ Ÿð:hß~m£™$£Ö°?gß±mJ(¹3"z}ôWnÓëÆ\ºÉÚèÈÜ|&!ù�$›4ŒV[%‘bÈeœ´žñy䑉QµŸ³Ý¤¥Q»ß‹ybD�—$C[m[r´ãÎL¡þ%÷ä&V‡ž³(»Ã¸R“PûýšPõ`ЩّÝ­fþÛ´ê:âd~"|d þëáˆ2UG‘.»nŽ¢ÑC j@ë¾1œÛ&nRCj·©E:yv$ÐW¤…&„ü½”¥nšV¬†rI²ß,â:*Ô öÿhç©å¿Mü«MÜèéJÃ!ªëk×2FQŒù¶ED‡™Þ�ˆ•YÅ®Â&Ÿ‚Ú¯Ý&F°2ñÞáÅ`(cîf¿H}f‘°•AÇËCWIwO–°Û��óè•B¨Aígm+ÏãÜ„œ­_ØHp ¥âÕ>ákDhÆLŠ’êÛÜf�ZÌó"§C�Ôþ�,Ñ»¬!?ÞÄFÉ1Žq˜Ýy—(þ1ÎvÚ9¥¢jZoˆ ÛqÃ'âdïL 5 ñ®™½'¨*•ÃÔ=Ó×nÐîl[]¿×‹;>eìöL6é®hÕõÉãw´Úë½…ˆ€ 3¹ßýÔC•ðÐIö㱡ZÙ�Ú+*Îa)\õd¥sáÊùœ#»#ûNSàNàŽ8@Î;”ÀP娳™`”õpXÀt¢ááƒj&&£¨¬‚s¬ÂlAˆ†õ¥ O”à])Ù?Þ o<t t ä èè”õv@\Ñ®*®*æâæâ$^QË_—“Ÿ“�nqkóÛ”‰s#«kþ‹†K»Ã×Ó†ôi}W—ïz×÷�ùÓöJŽö?OJXa Ñ®é<Ï—œ·1B ÜI®%Ö!ækVÔ¾ó”ð ç¼_>ÇHu‹G9>À–Ç<�²ãÌvÐÚÿû¡Éõ÷Ë檂'A¿×Œ2(‡¼ „1Ã�Í�}CXW‡þ:uC1Úç\Š]Š« qÙpÙ$§Ì=�˜€Ó™Ø¤T“Ì+[‚06W:­@]ܽzÕÒ\ÖÂñòRé;ª"€ÆÑ /ÂT{ÎXS‡± pÔqÔ™ °Ñ°Ñ$wJs€®yÓåÓå§É¤É({{Ú|ݲò²²�oãà·¥7«êwÉÇa0k‘\`6ü¹ÔcSÊ“Ûz?É^H5d*¸çĿĶõÏÝéfÌÿ5¾5¾÷jŽE‹î¥€'q֥ɥéÅʨ©€©€ã!{Éjï·.˜’.>W|î÷ÆÄüxF×ä'2”‡íí)ü–Ú@ËAçðk»Š�†uÝíì‡RŒ{J6O*iS¨ý:í½¿ý©tíÓŒ¾Ñ‚·â—„ÈÚv�QnéÛªSOç�•»}»‰‹žajPû7›ü5'íÊ¥¾¢²¡ã³)ÜeâŽ!ÁˆEœÒ¦‹¼›ÍòÐô%ËFÔ öO5¶"nÍ�Ù· Ô©øeãø[çôõg<Îwø½MµFB ( õ©GÏv†Ô~Ö6…Ï’{ï éXï:¥a=w<¯�Ù?qŸì¡½fíéʬ&kb‡ ÙÓ„^�ïm—>~n Óö`¥œëŸ*Î=ªÎyÑùkïm¥tL,�ßÇúø ó ×Ô’®H>Ê5'rkÇýiÖUwÉKð÷FÚz„Iä§´±YZì�¡W7·“Ú.]„ÁJ_—ªHÛ¦à+“1áÎEheQÃJµ×�yøÿ‚ÿž#üûnðµ|­¯d¸HÅÒ’ÉwÖ�Jn¬ë[}íµž·5б·²…ý4ЧÒu¡²Ö±e׳Ð77±4 r4°µ3±²¤beáfá`A€h �h �h �h �h �h �h �h �h �æW›ÿx¸Ä !par2cmdline-turbo-1.5.0/tests/smallsubdirdata.tar.gz000066400000000000000000000040201524160147200225100ustar00rootroot00000000000000‹íÛY�ãÖPfqö}söÐY�¥IÞËÍNâ8Nbçw°¡~è'äÕÿG3é�"%1å¥s€ÆGÜ*  (@o]”Óî~ó8†2;›jÖ·í>g¯çþ;ÄØÅ*´±™ßCˆm“åíùVze7¥aÌólÜnÓ±¾Sõ•*^Þ?=Lé®*6CžñâÀ]Ó¾¬ª¶‰óýCÛ×]×÷/î_Ç6fyµðÝøý?ðºOpí>À |–ó—!»hE9íî7�c,Ï7£šõm»ÏÙë¹ÿ1v± mlæ÷âÜž·ç[é•Ý”†1ϳq»MÇúNÕWêÕýÓÔîÚb3¤aá/Ü5Íáû×UÚn¾hûºë«8÷…:ÎOyµðÝøýß`q¿€uù/ýàœþÀjݧðq•p#2.LQN»ûÍãËô0¥»¾Ø iXxF5ëšfŸ³§«&Æ> 1´}ÝõUœûBÛ>Ë«…÷8h7¥aÌólÜnÓ±¾Sõ•ênÞ;\§wà|þëó'–ðg.Ï{ÀÊødå´»ß<ޱLSº«‹Í�†…gT³®iö9{šMl›.d!†¶¯»¾Šs_¨cWeyµðí¦4Œyž�Ûm:Öwª¾RopNßx?€k÷CàyüX‰ÜŠŸÀºüàêü `=rà¬Þ€5É®KQN»ûÍãËô0¥»w‹Í�†…gT³®iö9{šu¨«²CÛ×]_Ź/Ô± Y^-¼ÇA») cžgãv›Žõ�ª¯ÔÀû°:€sûÀEø®ÙG,äŸK˸EE9íî7�c,ÓÔîB±Ò°ðŒjÖ5Í>gO³­c»,ÄÐöu×Wqî ulc–W ïqÐnJØçٸݦc}§ê+õ|,Ÿà9}€³øü'_þ_¸L_`;\†¯Ü–¯ÀUø:7ç‡|àJe܈¢œv÷›Ç1–éaJw±Ø iXxF5ëšfŸ³§Û~þËB m_w]ßÏ]›åÕÂ{´›Ò0æy6n·éXß©úJ=÷/ Àù| ¸rßX•ï° ïÀmúpÑÞ„£2nEQN»ûÍãËô0¥»¦Ø iXxF5ëšfŸ³§YW}ݶYˆ¡íë®ëûù=Ô±Y^-¼ÇA») cžgãv›Žõ�ª¯Ô[À ø9ü~pN¿X�_Ïç×ðï~ü·Þx)ãuE9íî7�c,ÓÔîºb3¤aáÕ¬kš}ΞfÝ7m_e!†¶¯»®Ÿ¿«PǾËòjá=ÚMió<·Ût¬ïT}¥J€Uª`€^¨¸j «€ÛÓÜ¢€¥e¢(§ÝýæqŒez˜ÒÝ;ÅfHÃÂ3ªY×4ûœ=ÍBú,ÄÐöõ‹m�ßCû�åÕÂ{´›Ò0æy6n·éXß©úJ½À'å/—é}à*ýžÕœSÜ® ´9_@par2cmdline-turbo-1.5.0/tests/subdirdata-filelist.txt000066400000000000000000000003101524160147200227000ustar00rootroot00000000000000subdir1/test-0.data subdir2/test-1.data subdir1/test-2.data subdir2/test-3.data subdir1/test-4.data subdir2/test-5.data subdir1/test-6.data subdir2/test-7.data subdir1/test-8.data subdir2/test-9.data par2cmdline-turbo-1.5.0/tests/subdirdata-folder-filelist.txt000066400000000000000000000001541524160147200241570ustar00rootroot00000000000000subdir1 subdir2/test-1.data subdir2/test-3.data subdir2/test-5.data subdir2/test-7.data subdir2/test-9.data par2cmdline-turbo-1.5.0/tests/subdirdata-par2files-unix.tar.gz000066400000000000000000011430361524160147200243410ustar00rootroot00000000000000‹ìÝw8Õýÿðc�ì½Ê¨ì8Gö($[öÞ{�ìI!™Ž]²2²2’MƱGˆ¹‹¿»»ûú]¿üº~×Õ÷.ÕûýϹÎÃçºÎó�óÇëõz_ç…‹ÛÝÂÍÝÜÄÝ„ËÙÄù7ôÏÃÏÇ÷×ëŸçËW/ …ðÀxà§yOóÀøÿ|î“ñB ÿJš}碛»‰+ÄÕÉÉýÿzî ¿ÿ¤GEò ¢"¯ö÷{îJmQÑ¥ú[ST›Ï>D*’ê·jWi¨T95°Z´xëþù<Œ ‘±±·�²p3SªL#‡ÏKFìúuå¨ùÉË¢KVÚ5¡Ž),yë‰omø|äO¸®}‹o�ÄîçC1S”¿>Çí¢©¹�+Ï_ß¾SP®O_ÀÿΊû9Ë4ªYȨüÅœG.ä¾­ýÔÿ”弌ÚÙOÏïÏr¬œٙϛĄl]“³xSÙk ØÏ`;üsüq!Ë"º ‘ÕéªÜ¶ç‰¯”ÉÎ(#) $C¢ÌÈ2‹Ëú�~[§e¢1HIèCœi4äf–Ž>ýG9Ný †›�›¡ܱýI%¶��}[=»ºÚ›iñïÞbÒ%O·xVÇÊzߥ¸Vç¬É�7†èþÔW…\„¦À€ý“}ÄA°ò~mNõÜŠZÙ»óŽ]œs®Q˜KÀl@0ódD·&�ü½>B`ßfÊKÔéÌ©| Sã9ºf^Ó0íØ_³&/¿�ˆï™m"­˜yþ|ÎuPÍj2f½![È 5–~!)Ö?Æ>pÂõzÔŽã)’'P[¯s±ìÕ=×µï¿3q¸¼�‚ !7üJÍ û²f­ÃÿœåVû³¥m³�Õž^T—gO|ˆ8¨fÝŸ…ºË”Ík¦2×MDWm…Tx� ì?o²õKfc#"ô!”ƒ¸æYÜ¢”6kÐòJøkT27%ZNšSÇ�'žÖûý¬ÔêBs-Ú¶¥²þÜns�Y¾¥Farþæ=$¶—ÇtÊÎÑ÷ö3X׌u(~#‹7íÅ®Ì5WǺ#±VãsãEó{ÝÔ•m>8À~m»ýÚ95FÇPb�´×èšbfÎS™RùˆkFµ›ç&µvã�$)íYæÀ~?Ó"“(Î Fy’ڦ،�v#¬ìè{hãx©/á<'ÓCwÛü3ÜýM ½À€6["Ïðju§ê°ƒXXoMNÖ ”Ç5%@C�XøT#̧ƒ$ý–ŽÕ†ù ÇÀ…¬dP"EòyïRZÝÙßKÞQÔÏ휰^#f«à>¨—´ŸÛ쬧Ãs¿YïþZ«Š´‹q|ÂH ïÔ6s�Y¤ûh�3F¤Ãý½ ÚËÏ$µ”†—o}¥—äû²— #üœ¥unŽ�=?Ó…@Ú¶ŸÐ¨Lû ^r–�>–‹O·YC0ä°Mö_J™ ”û>öÒ”îúbö17ßWÐÁ d�ÆžÍÎéùä\¶%dÁ%Ô%SÈ.B[}4`¿Ÿªã‡6ÚfÛ¿ 4îLíóqZ|Æ®*¢^€³|w·ÈC�†��ßáŠ#°Ãeî{ ¸2ÕÏ)à˜©K ø †+Ò“é¨æ)§‚å*òp.L $4n ùÏ–;\Ö¨·ç1|cÔšø}ëŽz¯&3´RFäy¥Žés÷´ú#˜¬âñ)oA$°_ÇrV­ÞÃQö¼ý¸Œ–/„ÆñÝ>Ö©&Íì[ Ë>[«"Î¥˜ëlàì÷³ò¦ÈmUºÔ…á«Ís±¼!Ɇh«-�Ptßé‚u<tU¹‘hÏT`À›…‡D 祳œ/°Po˜;+MÁšÅÍÑíã—R&�R9o_ì|Zuìÿoéú&EÙF¢D[ {×I®& ­®Ü?ðp'KPßQm;KZfr7@â ¹€¨oUß=2ãM®{9|[­[ÝUÏj©½©éz-ø0º´ªü”Òu!·˜Zyº!µÍVÒ‰^¾2àÿr.�Dú9‹.a-üfÃFYT‹òRÏAs�ýY0mÒ0j¹J¦`»®M)Å’w�g®ÿÊ6ùÎnšfŒ�Æ/hVøP¾ÉÀúÁ§´AU„ø€ótÀÛÐKÙØQÅÀ~N»É|R/¹—©.@�0Öû(?Üvgú‘¹¬_Zôâôé»·#Q„ŠãÀ~?{2zbeº]tJè6³¾I› m�¤ íµw‘(ÊÕä¨ç}6†1Ù¬�ûd�ÁCù­26µ4n14ãÂÈ�@É–“at›ŠŽ¦™FñZ¥iA3(ï0€û7ì,“ê‘·©[­2Vd4ožb1\]ÕE £[ ~”<3Äùc¼ò ~5>Iä°_ÛÆ�xÙDo ­âp´ðI÷r_f¼pHÙF0$ œf­bMP!í´$å#Wx ØÏjo¦}żœ_ºÈÁ%(3ˆêj!Í£¸÷b{7>Âb F.Ó±¢öomê•ò§…I6.š‰C0¯=ʤÇ3—èè5t2{´yŽZÖÈÐþa Ø'XµÛ$©.SÅ5åî}nÑéåúäÑþ9¡ ]³�‰­Eícâ»Ý"ê›Í /ÊåïоrˆGƒeå´!�Ë9á 2¯šLÊOJ�ºXaöÓï¦ÕQ™P Ž4kIÜé"ýÊœPàË9áèß¿Ÿ¶9¢‘RE�ìƒrtŠú9hN¸?K5ûI>Œw¾Â;e8ýîô.<þ J¶À~ÛÔr?‘eŒ´Eô2ÆŠF$-‰Ñ¶îy¡G˜»‘ê3M«Þ¾ÝgcìGÚ]O㪥Þâ—•ðÑ™tþr™Ãd$a8ñ(ƬÑws¹ØÎâq½/ì{O1¿¤a‘HžÊÛ§LÄå£ÄÛâææÓ—Î¶½ÍpFż^ÜÏЀ�ë ØÏjÄ\ùjDk4#=ïèõHø“,ì¬bÒõ*Fº©µOI>³N›Þ&ô ÿOÛ Ò¬Ùx²Šj#%Z?D Ë›Û_g Š˜TËáoM? ÕìÙ ~<P�íÉÈF„EU�ãÙÛ¼Žíbß%UIj—m~ÇÈ÷B��›csÒšñíÞ3z�*|Eö%¨ÿ£Î†}®³y¾¬³Ûi>gÉ.,0¸8¯÷³ÖPßI@|P�½?Ëaú½ýÏhÕzÌ-øö;ÉÂ4XÛž6Ý–wðP• Q”+ØâS¯0ØŽhÄBrÊ+€ý8[j ÊpÕXÒÎj&]@k?çBÀ$tºd~ÀžX¼´4€Î$Xh÷Ø÷1�¥8o"OfóYÆ´[”¹% â(Õ†šk÷DGðëÉŠê>ìºûC’Cð€;l¶­Û¸îPܲ1qÞæ$üuÕ[꣜©;œä“G!4<³L�ºtÝUÀ~ïšg];>"7†rTä�ص´>ËDUÚ'�z´DÃM~�X×¼•à|`À~¤ÍÄ¿¡Çoáuj#žÐïÑ>íï.¢Ýš†�œe“¦Zv 6úc ÀÚ°ŸÁ¨æe¨ê‚±©û¼Ïç·ëjÿb̰Ë�ÎOgZ•î+¡À²#p¿°ïe‘�èÃ+¢Îj­0ŠdžÌŸŠŒ…ÄgêÐ=º'éËpj¯2±úˆÓ3 Ø'ƒI‰ÝÖ»9ÁvjƒâBr£RPýÉc§ £oøN…¨-ây.È%•šö½L³9G|°Ï&¯¼kÛ­ôŽtµIqo¶Ü •å²ýK“N#Þ{ïÜmð€ý8¶¨r#èbBxÖ½Q¿geïtÒ®ÒŒGñ*á•®b!•ã£GÁ¨=¾À~F^wçSÝ~ÝúndaÞÙv†™;¶÷0í­ý£dV6§Œ�d}¶1õ±éh—sìÞ¯–™j gÀŒ‚Ö �]èÃкWSTFŒùÁI�j¡ ‹‰­)R��´­Æûš‰|•m(Oh´ ¹�óE5ª˜ÂcŸ2½æáøÊ½ï—÷j‘䟳ì±[Ïx„:×ÂÉÕlźWÛŸåk;À€ý:VH™`ô±)•7&Ê?½õ†Ÿñ%²ïƒV\Ï¢žŽˆ.E@¿t‰ìKï'À~NJ ÖÞ­q¥­ðf‰Q«Ãº;ä4röU• q>BÏ;},SaÄaÅe&³دcƒí®A8~4 ÜôîB܈àÛ籞fIa\£hª.OœL/qîZ¬·ì°Ù-劻ªáǤìy[–³ð²­…4]I¦7í» Û!¾ïÑ–�ìŸLc¦÷!šÎîO¢J³ð»úSéMÌÂF’ÍWY+9øuê1—w½z€ýœvkñìæ{¢k[ÇâåÂë)‚[®3мL7‰ôJ:'[÷âCF50`ßjį¬)pèY$K6ÞIJÜM˜ÃÑ\¿Ÿºp›7ÖÄq–8v1NËY«¿|êuËžIÉkåX¦XF…íób"­ƒúøí‡¸”A†¡ï7ÊJ¼cqÌJ×WZ› iôE†\…§TmJQ¢g•z‚<·É2­z¸Äãã°¿ÒÇŸþ²�÷ú{G™naƒfn§ Åe¡BB±sõñû³ü§w¼p m农žòJ?š|‰]ƒ¹¢õ„…mxˆŒÞÉÔœ�¶ì“- ¾jF>§�u’ñ7m0UÎcщÃ*o˹]P¬¡,òy 'RÆöûYöôèõ‚„r sr ªØï¸ë(ë-"ž«Ý]í©y¡'ÞmÉËñØ�3×:ç¯|Ük¬zÞ‹rùÏ�"±úqÅy�’âÇì>PSßr9³¬’÷1ìpÙzsWò]q_DAÃx8ûäCWYRî ÇÕF¸µ-µ½fŒÆÉs,·±€~Ãb·æ´—^J*¯UR—pŸdü–½¦Å¤"s¤ŠŒ”&+’o…f^±—ZÌì¯�Ÿ Ú;ÂÆÍ`Qœ-g܇”ª�óKŽ/Ý‘P±:Öí:ÛÒ¡|9W8|¨Çóñ�ͮ縎4ß#j/œOas !»ú¼'ö+5°à¾=½ße e¨±Þ$)OxF8¢Šj‘pP ¼?Ë÷ØÉ Ø'ë õïBq€ªªR�PºÖÎDnˆçQ>ŒÎg†œ5Ž)nd´D>Ä$¹ìðÛ{Ù"&’å<âÛ¾·Ú„És8áŒ÷D²ßêuÓS¿C´ô Eéìì[ÍrB(ñÞ â’¨3'¤1'Z‰Ù‚(àÙºëcékm�H÷º+’<2`ÿÅÞ�@C½þû¾g'K7„ËŒ%k(Ùeß×ÉšeÈ%%²eÉ‘%”lY²”lÙeß !þ)÷þ®¹úùŸÓýÕ¨ïûgœ×|™gÆ™ñ<Ÿgæól?˜–©uÓÅQ�^¯>bÓSÒÎG©MD*±9ÃÆ7Éå“ËI2ÞM’»º²A�Æ$©4-ÉüÜKq‡È3ôÞqÌ:Xç>ŒçuH?$§#k °ý`<åz2©RÕ÷ ‹_MT4ŒÄ¨yÒ˜\â"Ó ´~×(xZ;�“¶%ùß¶QïJk:ÅMFâ^èçãxø ü¼ Fð¿7„o眓³ œ‘··wþoÇíuý>ÍŸÏa•í×4؆lÜVBS•,5«BзžÃ§af.j¶Vf[?C�¼wGþ~ Í_¡¥¥új ÊÏ_8„D»+d[!þž¯�~Ínè?7€ŽñWб¾ós0þ–ã‹Ô_Ùúþä×(Žâ—(måÔß"·ÈV ÿ-[�òì(THøKŽmGXXHHðÏ}¹RhG·�$QQû[[[k›ÿ_¬·b¹ëæ¯Gc烲g„8} |+ˆuvîmQÑÙª£T+uÉ÷ª³#þÏC—,±õyæƒ:¨0ëâ«'¾º|þ4æšö þER›WœÄLQv9xg��mû½&cÐD3¿ùsÉ=ê;©÷ª³#Žå`Mos_sÚåúE9‹®7%íf€¶l: �ò›Ñ�)KVå¶>EÂt©PÞp\¹—²šPPÒ/Ôì€`j^a'`ÈoK´Ì4 I•iÇ« ¹}eÂÞá2¼` ¤ø7qGvÆå[?ìÇØ‚ÔÂBïxíÅÖUf]òdX]IÛǼ )“ëo Ñ/R_†§™Ø·ìz—…ûksª j峨Í7m¢�é[¿Š)Ï~T§3§ò0LŒæhy�zALô qÎ?÷B"ºmâYñxCà „k¯9+b�d�½ëøµÐu»£¤�ÁÖn'#ÙËÚ®ißy;hrÖk-Dn¸Ëœ•w眵’àëXn4ÖÍ®™}*su£òšøãcð^sVı SÿÑ_Ùd«fÍûEü(»q›Ìïr‹RZ-‚Ë ÈK ¯Q8)ÑrÒ=ä0ü´°ßÏ ,N×T ­�QÖ¿$ˆÛj®1Á?ûÂ(PCy©µ×cŒNᩆÀÛÖ2néOPÍêNH{nš+uÑnW™oÄ*Vo|r¨8×`j³•ºätÚóó8€ýÚv5üµCb„Ž¡Ä"Y»ÑUÅÔŒ§4' 䃯U¬œRÑšÞˆê%Mh¼kØïgZ$òR}Q'>W¬ÁF»XHÿ\=TàA4ÅÉüÀÙÀ:ëx1wç³'퀆l6KžâÖèï4DÕd‚e[®ŽŒT îÖ>𣾮ú\ЬÐ$×[b¯ºâ{ý[Kë*¨Ý©éÚ…`ü-Z¥žJɺ Ìõ<­ Š ™X·�»Ô ;ëqd_Ç¢KT d\.Œ"kQ^hÛ«.€8dêö#lä½%Ä4É *d˜ó@þ™�åýÇöIÝ48ªiâ]cÞoý/¤c‡æ¶?-€å°^|.S¯º uš±Þ'ù¾ç7ÇšËz&=Ÿ¨µ‰p %Rì÷3±Ç]þŒ÷†š®åcÑ7y~‚ÖGRˆvúêûå2rÔSç—û0�XØ–5ûödÕŸ°ª qZ6ˆ :ÖëwY²öp ÝŠ¢�iªQ´�VA’Ï8Ê{ Àû_˜³*ÞÛÄÕúhÞ<Åb¼² ›Ö‡n)ôIòxç;¦håy‚2Ò�aÀ~mìÅO'~ÛMd…£E@¶™ù2åÅÙ„µ4ÆXA¶R¶²æ3düä l¿Ú›ÑX17‡—Žr ÊâÊr¡jPÍ@—îíÅöåO¼3Ùý^tlè€ö¿0ÚÄKEOsâ¬5]b9zxÝ6)ãýÛýÉûuLpÁf…´¬P×”»½Vâü±NhBWc£Fj «xDr«UD}e¯:!b�ŽCröøÝ, &£9ò#2Ž˜� I•T&TBý5F7[Èv© "ô)Ýþü´žÆ=¿RÊàÞ0G³èE¼½ê„ˆcùžž®€!¿­è ;ÿq׸×:­�)R48nVŒ¶~Ó =ØÜ‰LŸy$û˜jXØ3ÈöÀû™vZ×Õ¸t¶=ï%H%h`<ZtâcßÒ@œh”ac¶ð[™\÷­'ð¹>äØ�2ž<¨¤a®È=•·O™SHŠHÖÄÍÍÇ.H=÷y›â€Šy-¯“Åû v¦`€íW&áÊR#^¤éo{Ï Gö'³ù=Ë»{ÍjŒGJ™ÀVÒ¢Ñ=d¼©b“ˆól!“29‚Õ±þšm«¾�¦öšg#öâk‘. ¡ó·I7¿ƒcäqÚ缓]MÜ¢IXûq½Ë*ü¹¶ù¨›goŸ€gç<»‘æëXÒs² ÎM©@<-õïW5’ì5ÏF 2}Þ~?Z™K­ �ízü1¬5W«Ö3)7ñQ•sP”‹�D'^b´%ê׈eöólö‰¨O \cVûn Ù4ZãIGBfa�ü©.[ñ‚6�Ï Ÿ7:³PŽÍ À~Œ¹ÌF¹»²˜O0%Ý ÌÌŸG)3Ô\¼-ÚO`Wu ·òã†óEP¼~`€!›­éV/�Í«]>eutŸºô¾55=gâ:'ù=ˆ†g‚¹Y—.%¸µ°_ÇJ§ØõKG ¢Ð‹¼»šÔq&V•‡öq³-qÆ3OP$üÞ¼o>`€ýL�~Ã@PËgÿœdX¿M£/ü¢³ˆJx}AïĪ9a_£w]Þ–Æ€¶ŒjêU¥‚6u‡û©¬¼F]íw~ÆÌÞŒÉP:ÓÒd ÖuÁ0‚ÀûQâò�!¨8TJkžI$õpÖhH°((:U‡îámI;ÞûÆR‹O(mÝ€¶e¼x ‘ë}zÃGŽ.SœŽ¯Vò©:.yð¨aøu�Q?µ™Ëøn9Órq&€ö£L³&C¼»Ãê^QËš+ZÁM™2“¼&¾t¹qª3s¶/Mš�øns¼wеÂìçÙ1X©¡` sškåõÛ¶ö‡mÊPA5ø¯b^é*æPÙ=|è‹Úæì×±¾ÞkÎüªk¯ëß÷OO9X�³pG¶#SßÚï1Jesʈ�¶ºy�éy«¦F9»VÄ}µÔÄ3FÌPpy¯ýeG†@ô½öÕÏQ• �沜´Z}G3v™¿ä9ÊcíîCü¡Õ*¦�ȧ̯y8vÙWãÛ¹¯Bþu,›ìgúÆ]‰ ü* äjÖb{í«!Že·`€ý:–Ccż<"}oP:¶úÊô²·ã# +ªmFOGD—»S&_ö¥ûcÀö§ Çújo”Ãi‹ÝY#Ô*1|nõØ÷K½*U!ÉJÓsOLUè?;ï8žÚ دcÝ�pOšongaî4ß°SXOÓ{¤1®R<++ЉÏwhž©:`Èf7”‹o©=”¶å«�»‹Ÿn)\£ '[±m­ùuiz~@›£Ç °o™Æxû4��K®Ä%&fA·¼9ôG›’Ÿ±3’ ®¹ÂVÂթœÛpkl=ÖzZ]Àâ«Å«£å‚ª(|k¯1‰ö}ºåK7ÒëwRÞ;²òÅÇ”2Àû^#yeI�ÃÀ*™¿ü&’õæ€hÌ$ŽæÒ�Äé0¾H» ’LÞsQ≠•¸€!—esÇÂp´,kÄx¸ÈeÎNDk FåÝ›&oš1 ïöºN›�ê~w™Î0ä2Ë3´Å‚K²FVEïÕìI±´ûî„'7Ç»œØXåd¦F+‰Á¹`þ²°c�I)HÎ/àGaÓY�ÚQz:l#S�xd²„‚ŽO”s—8‚#¥a9qHbXkÃ6eXØô'ÜÙñsËËÙàoïUŽ�Ú¸Ô ”‡>R•¢ÁRŸiô®²~2MšOõ#ÿ€C†ë-‹±Ü.ñòU;_”Ö†!;kÃ"ÛçFˆwJË´obûÃ+(,^}Jv¯Ú0âX~V¯I¼«Ç¶SaÑ:i�f¸®K´‡Ü1â(Ss¸Âyýrš:o“¸³¡¦ðYÀû^ÃTa+n5µ1ÓÏf«Ë˜Å¯ò:úºvŠÚ/Xxm›aÖ×(¹ê-cdØ`?Ó4CÝÑPI?¦¿-Ø2:Ù=mŒYEœwƒ¶3�§ò²Î²³°â©}¹0ä²ÍÒ¤ðTêW ]�´ŽDä˹õ‡Ô5˜3†«N(<‡~t=5›ê&?e rY_³«ÚŠz üíLZV`-ˆ‚új褂 n £vÉIÈJ,ªâÒ=…c(€ö½ÞwÑñI†ïÉÔ3ú‡,ÛB¯á“Q‰2p=é$¾›—cãóaDƨ0À�Íê‰/X²:Ǽ¦” ô�-÷ìæ%¢B¦¾ö»™–\ïŠRÕÌSæqÿŽÃrƒétPA'Äu<³’ÛüÁ8L±”bë†<b­½Öñkp)} ý?,æ»Gâ˜,Í×?'1äÞïq$:6ªjU€>¡Ôæãºv Õ¢�K<: {—u¼ÀÎu¼Ûv�2Ý»„DO43›…(¼„sˆÄNGË¿ÝãÍ›£Kx5ËÐO`Ô-™>þ»Kq.ê+­¯ç¤™�WHsL4Ü0À¶lFèUMo…,¼çÄEÓ'¦Ê÷Xu¢°ŠžgÜO+–Sæž!êVÆì÷³ô±�kÙ1Eæä0ªÈy÷¨k(Kĵ§ƒÔn-´•¿Ðo5öáãxØÏ3x¥CŒÛ}~îE6=÷¹¬£¬N\q>z2‚ˆ�ûj꫎ÇçT2ø—C.[ªi‰¿%î‘–ýÄ>ò.KÆ�b·P ±´æ¢ÖaÐŒ�À8|’5 0ä7,vKN[yßÙ¸¢ %uÙ.»¡F¡ïékšG&2I¦ÈDi2/ùVxü{�…÷8âøqZcSP`Ÿo(gíq祽æÀYùx‡òD×%T,¶Â'j›”½2�õ´¹>ê�Ñl¸éÈð/2¡¶CøVÓd*p"w™ !ôéÝÞËòéIQc -Š©#êWE…Åì5FË�èÉ`[Öá±å,XU•jÈ€ÒùrÅxÈÿ±w×AQ¶ëÀ—�’îR`UZXb)I Dº»SZZAé� %éAº$–�%�µVÔr»´øEtHÆw=tå¾îíç¿ô’oçD´¢MÖ×r»íùü¦ñV¥«¹÷ôÉO¡­YákA¤y¡¿³I×Í� Ò’ `µ›Üg"³\‚Të’”Cß";]¤b¥<}Â~ìi5`ž=6Wj¬AÙ4“׹ƇÕe¢:Í=ÿB?DU檋I7¡•÷KÚxÍ’óƒ4½€v¬sÊ"§�Á—êò,[Æ’¡£mm±>ƒp³Á¹—eº3»]åJ™­˜€ýÞæùÖ>%ZSOt‰¨Gß_.#û)¥ÔcÙPýšõóÆÕgwba„Ém÷MûóL�X´(#©*¥U®åfHɱUHÃËÇžx3¬àGκV¹gËØûžÕ÷¢Ù½IïçFæ<âg$ìÒQ�Ýt*ïçbê‡nc/ɽ/òåsͯ_Ó2çf8àJZõáé—h´—„¯‘æ‹ýiöʈúÆ\7Æq'Ï7��1˜Ÿê®å6o²lÒ¦yXÞäy#�ž• `žé©à5XeÙ|ô5 èHéõp˜{ά(¨’‡¹pç=V� ?%33Ï¥k¶€!–9³ìÆcIU¶�BÑRæiqhõÞKާ!›$Ÿ�)ËÁTËU½=xuº0IJí]—¡›#«ÍÛ*=jô�rN|×kµà›ô]“º¨…œÒr'&Üùa€ý>ö Ñ|•ÓÇi×Ý‹MA)(–;âx‡Nˆ$½g9g–x�‚›Ü{];Àþ<+}¶©H�xaè:nãë®þÀ$=”Å&_ªçdÞ öTE™áHWdÀC4»~&'�á|ž©JýkqIRÆûì,¿j–ñïb—©{Ç…˜†Ã…šôzV¯Ç£,®lÁ÷\œ‰ãU¶[ʼnJ ƒ±|Dê À¿7¿«ây …;u¿)÷‘Nõ ¯‹iZ ÛàfŽ.PM£¹d‚Û§oôxö÷‰>×¢…W ¡]+‰Å‡¨“]é>¨/_ "Í+û6þÑj”j€�ÂÃo’ÿHö™®ÅÃ*»ÔJLÅL‘~ûIŸå +YáE€N ¦?¥�Ô�ESá£È4ÐÞ’j�š,4‘öJ}¹<ÉÛdít4Oî%`ž Wõ�œ‚…mœˆ ×1l•¢òã§šõÿ†$_I‚|Þcm�É0Àö¬#`0·Yʲ†ÒiM7šòåX ¯XÓ©êu9[£ ý8]õÇ©~SH�ØÿÂÄÁŠG—S6š¥Ì‰)ß=E§½¾¨•9„jÁ¿%vv�õ]œü{œJ°1À~o…agá/à™Çbªãí>x•þâRòf&m/cc¼Q‡7É…BÀ;¬ön"ÁSØÍþ•ƒ T”,¿¶š¿Ô8Ò/Šu7Z®gm‹3z.oØ›š0ÀþF•r­ôi~¢¥ƒšKË §Û.Yâ“zž8`¿�ñ-Z¯V–(b±÷´˜6„¹9VÂ÷ ©­• ­LkžÜéTY?¨O?Sㄌöý¢áD¾ì¸äˆƒ9ZÍNj-¹!9ÿp£ª¾hT'Ñ7ú„|psE¿|~Úò¨jN`Y(¬ÂÒ!tõèA}BøZ~d+`ˆoëÚÎ'ïÀ¬2{èb„Bç…©šwÝPCMœˆtÀãyg#"žA™˜GìWš’–«AÅ|OÑ+�­‘©4žR©OCÄ„!˜qHcŒ‘w°=´šÆf[- °ŸeE6 °Ÿej�Ù"½–9¥�›®(�£$+ ‹Ú¹²d¦ÈÍl^vèsÝeùè”`‰ د³3¦N¸|�àL×Úw*wÍmìNYW"ƒ±IßĿђË'·-, @îö4ì÷±!Ø gnÅͷ͇ggì­¦èÙcziní�½¼ YôHãó÷ #Ëö6Û.øsµŒ3(-Z8¤fçë@‚zйü=¥’%2]ÖR7î©%¬q—·"UQj䳟àoP0‚Æ<¿å`ùƹ×þsµ0’ϵì2› M¹âéÙ×@I”­„:Wƒ¯å[3Àû},Ÿ,Þ¼6&‘3*Ä3¹ñއî¬÷“)zl÷œ¶¦ ©OŸd±ô+÷*À§ $hìT;R•¹3D+×ñ»3h7,þ¦B� 7SÛ=m4ãÂð¥÷S]€ý>6Ðæè‡éEïÃNã,ÀžqýiÖ ÄÒg•¥ ãI"ÅöÝsuf€†hv[¾ìŽâ­G£6\M ÷±³,âÕ '×m:A›�ýª¸ž|«( ÇŽØ÷LuªçŠæÎ5WürCã[w|Xt&ÚӞџÑ m¼ÎXΣY‡¶°ãÖ Øá´cèۙσWñýË6ŽÇÉܪ# hºA'4´u'€zæ–xNÖ'¦öŧôJÀûQ#xcAŠIà V¼ö.†!jD(þ5¦Úʽ”Ù®CÛi‚œ—cERk±C,ËcO0ÅÔH¶hæ`#‘¼4§Î[”3KÒ>g,9à}“*Ùýþµ9`ˆefTe|+G¤õ-K?*Û¢k Ý‹LëHrñÞÙž`S ”Çc^1y5ØÏ±*BR�EìXŒPjsB[2/ûü1Dš�H–œŒÓ»Eö©`…%4FÂ4?q• ž¾7l]‰ŽqLÊ�» ºšÑñÝ©ƒzà 3;÷oµ\,„0Õ¥«Ò7?Ð_vTXŠ<—†=†"Á%†ü‰{Ä>ÛõŽùäV?’Hõ†mÒö†¡û{Â_î��ä”ùÀ®�ñ¤÷­ˆ$ÔéƒzÃðµüªY“ÖGýÏö�£S9©Od»n‹ö„ÝÓg©T¶¿ÎzÓ·E…³]ÄYWMà`€ý¨¡)0–uYëä1>ϞǮó>ý¶i†"0T`s ƒfÖt¨MlÃGR_o0À~¥©…»?¡$—¨:v—¯sâõÀ¬Z~Ñmª¾,Ž.è«ç}%HP/ ßÀËv+R#3(ÞÐô·Q9¬ ÊV³ë¼TQgãŒÕI]håùäz~>#(BvÆ0IJ¡Wåu•MÇ'Ts™¹!M R ÿð×\°:i5ÊÏA×�åVr.œA °µÈ¡«õÙšœÄbf:�OXt‡ßÀ&yI.DÃV߇¿(ßÚ;~u\R¿0ÀÍšñ¯X08”Å¿%%ó”®öàÄ#G¤¹öß2uØúź¹§à© ÞS2£YÔ<|NðûxðE·÷ÇÑ„ÓˬZŠ(ñÕÚÇo>Â"óÓ Z]+)v�Á4~¼ò¾ù$•¦àá Þ™ EËÇH‘Ó»ý\7‰3Ì»ÙDâb1¾±�çÝ¿�wû2£Lë>.^½Úƒ~Ro�|<ásíãákù§g¼ù°ô läêòN¸¥KºÂ¬J_V€|ÄÀƒ24HLí`æäW›Š´ °=›ãÓk!•v”ºjTo$ŸÃ ‹^Úš}72+WMVàñŠ7, �ØŸgY“#7òâK�˜�˜’Ǽw�½�´2†Û¤Ú¢|g±»ú…¶H—�OË#À~�9ÖÚÇ»=äþ{÷�ÿþÜÊÊÞ3£BÈ Ù##Y‘½÷–¬ìˆ$"3#3"[é6²G²·Œû¶ E ~Ç©ÎïÛýôüüÎéùÖ]Ïç¼ÿ{ÎùøÃ9×u}îûúp®±èy.É´Eb b‹Ÿ¡%Æ�Ý{¤¦¾ítnE%—wsbÙzsOÊ=qïìÂÆ£|wX§;Ësf:¬6ñYÛrPêÐiÆJ9yž9â«5»½BÐrry�²ºÜ�ÃĽà�ì5…‹Ì+1�›¼•|'4ûеÔʾ®Éîìº3ã‰bo9ç:¢|X \Prô8DtWBÅêX¯ó\K×E¿<á;#}îOG,¨öÜ'tdx×Púùx·Æ³åVÛë°â¾S Âíéýr—8’©ÆJTžØŠ?ªŠb‘xX –Ÿ±“ °ñíA¾Ì¥ªJ1a@îP7¹)žOþt8¦€ IÊ8ÒÄ` }ŒNôâÛ†\1#ÑJ>á‰ïðŽÄFaÒ\v>†û"ßéuAè(? Xz… wwö£f9)”tÿ6aIÔ¹ÙÄ…±'ÚO’ñåè®�#ùÊÜ쀺ÖZå“ö;˜–‘m—ïôY¨ŒÀô‚´ëiJ‘ú5 <öèÙ}R…ŒZÂÜ÷‹†¤îžÀ€!šá¶RiÌIS¾]y)îgIëŸÌªƒqucv¢ ¯2 9ù„”†¸°ßÁ¸kõd²¤šŽ<2¬x5W×>•Xª:áCer�ƒXÏö}§À%mÌTvꞌÚBEýëmi”öé Ú ÈAf÷½ ”¾ööË_æ ©áùÑè3uO·f(cä¹ÿ®·W2±q8øyœÏë�®Ç”+ÓIù$#ö|zrÕ|äà÷†Ã¿ë 7ÿ™Wøýðsûù­î×Ð××ZUă&ãÖ›rEì\F0™’raƒðï}ý[U¾œ9Ü`B8e—yšx2u-‹ñïþÖKfnjö6f¿æ×ümÊR޽‡ÏC¯ÿLÞ¹¯Q²»ñ5‹¤&¤&jö,Œɢ ˜|[þ3U3UÓûóbób}�ë†ÄHñ ¤•ñwÛã¢áqeòs¨::*¿¦T{>|>¼ïi— ‘2Î×x�žýš×ƒ…Ÿ£ëܲâbø.ç õ¯ë_£Ê¤f¹fÙ~–\ùkN¦°°r×p× � Šü}ìÛìÛ’qbNþßá(Kn.»{�pÚωݒò5üœWá�i¬Õ0±ÿÍ#¥OÏ‘`±ÃµÃ½æ3tš›'âÿˆ;Äý*?))ÆÄ"|¶ÐÌÑÌCä£Ê Û Û_ûÏ@n›@�ƒ�ÏóçóçÃÏè8+µEE—§)¶Z?Æà+6£ƒÿA“¬´|ˆ2®¸ì¤'¾½éõ‰?ñ–v8ï‘Ý+öÇb¦ÈßyK‹ëÛË—{êþ4³à1…«¹OœH½Û)›ÑÁŸåX9´»àL2cv@Ûš¼ÕЛÊ~3`À~ÛåŸç�^Ñ]Œ¬ÎPå´½@Èp½LÁpö"”¼ O@28ÊŒD R6 ñm�š‘Ê 5ýH}ö¹&CNú ™˜³ï˱Êè^Їâ‘!…†tqÆ &—Ø>öslUjuu€g¶Å·w›Q—4âµ2ž…å�¤NGÊäöC4_ÊBÎÙø¦À€ý�}ÂB²ò|mNÑnEyñ2f÷]»xGDzŸçO±‹ËÕiÌ)¼ ÓØzg]Ó0킯YSV^H$ôÍ='®˜mo_âã8¬f…ï±ÆY‡N8ߊÚu8MTÃeëq>޵ºï–öƒwã&—ývRÑ‘H ¿S³ò|[³Öã~éÇ:[—wÌ>U»{PøÍ�øqXÍ DÚ]ø'›\Ã²Ùø¨]0ù0v—ùCNQr›5®ZÒJ¾×($.ÊÔìT§�;N>«öï³R«KÍu¨;–õ¯ `÷škÌñ.¿0 Ó�÷u3ï#²õ› OÔ)»0B7 Øï`=³Ö!¸MÌžxÔW9²ÖLœêKŒ˜ÅÚŒÏOT,ì÷RV^ÊîðÂögÛ͘׎i±:†kÄýF7•²rŸQÉ–*DÜ4ªÛº 8¥µ¸%Jí|hìßgZ$�¬ äš´¥fLÔÛae´\M¥Þø ìŒ�] l ÎUp>oì Ñl™4Ó£3Äe‚¢ËÉ¢Ðz{jª^à{»«Ã¼Ðbù„¬d‘#E ÎÜ# °º ßKÞUÒÏíž°Z#£Ü6?OÏZ�å„'c;ˆoT¦}X/ DÚuôo³—¦4·–ú0�¹x¿âž„jìÛìžMUHÉ;µ -¼†²lŠt‰ßVØ¿Ï ÕqCšlsì?˜u§ x¹ -µ²ªŠ¨b­Ü{‹]ì&HÅÊÊùº0Ä2W¶ýDlÙêv2>ô´ez\z÷2S(æ©§ƒä+ò±.MfKh„�øÎ•C,kÒÛwƒÝ³&ÜhÛUï×dâªTá!p¿^Ïx›©wÆí �œÒñiOA(°?Çò†V­6xü�÷=}8ŒV.…ÄóFëÖ“aò®äÉ‘ªSçPÊs4¸ìßgåÏ#wTiÒ‚a7ðšçãÎ §¢®¶p¡yÏ®ã(¢©Ê�Ƹû£†hv'8J8?ƒùB¡…zã¼” ËCN¶_µWõO±«4S¢§F£D[ û׉n$¢®®‚Ÿ ¸¹’$ªïªvH—™„bûK6€ÿœpoUk¥'%M¿ ï‘­*å ]¤pÆ6î^¤ºf+™$��ß™ ð;H&þ²¿¿Ž/4Œ~³,ž€K‹üZßasø³ ÒaS¬ùLÓ�1QùmŠ+<7°~Ts%}˜ K5[|ÈqÆÿ]ȵÌ(°ßÓB™Nê¥ôa3@Õ(³�õ>)À:îÎ<1—óIÎuuæl‹]¬ËÑ(|¥ `ÿ>« 91 �2Ý)>-ͤoÒ!K()H½xóC$òÅjR” ^›0ôSÖÀ€XwÐHA›¬M•˦A,Õ„048@²ådÍ–’ƒi–Q‚�Vizà,ò‡#À€ý7LŠQõè»´í6Y+ª7Ï0èo¬êfÃЬ?IžaÏ�pñ-n5.Qä$°?ÛÆ¡89ï†ñ­â±´p‰÷ó^f¾¸œº“MŸ$p–¥Š%Q…¸Û’˜—Tñ 0`¿«½™Nòóp|é$Ï'AžIP_+Ø„Ô<6$�}?V©óOìRᨠ0`ÿ £N»^þ¬(ÙÆIÓ-‰m„ÇcŸ<ùé?½ÛØŸc«v[DÕeªØ¦œýíM‘Î5Oàç„&4ÍvjD¶uO ïõЍo6'„ÿ~ÿqù+8ÃL«&ÓE S2cNVèƒt{éõ&‚£ÍFw{ˆ¿3'€ÛqøåûÓ6G5òƒ«È# \lÝ¢¾G›ŸåGöAC|ÛÒr=ñÐj›ÝÏ'‘¼,Fݶï�aîB¬Ï8U(¬ýœïë0`¿Ò.éºW-÷C^"©Ü›Íà/—ý#! ÃJ@ž4f‰¹—ÇñÈv‡c£°ŸeÜ~IÃb‘|•wÏ3 ËÇwÄÍÍg®Iu¾ËtDA¿dòoÄÌóìwµIBŽ5‚5ªÑ¾tzÄ�üÉv?cßñ0Ô¬ÙxªŠ�ËFZ´.a„˜'Kl¾Î1©–ÇÝžy¢Ù·ôtá°:~�W�te$Mˆ]Žù,#ïK�^.ÍÉk„ÑýçôTx‹íÉJPþºKœûÛ:»“êóYrŠ ®.¨ðùXë?jèÆ#<¬Î†? "}ßþw´j=¦\ûÝa*Œw›^ËÌ»8(‹�/VœJH»No�?ª‡”[^ì×Ùr£h`¦³Æ²öÃfâEÔÎóNxŒBgK†ì ÅKû�ǃýÑ‹ì^û9æ¶ïIàÎd>Ç�NžW²(Ž\m¨¹v_tס�¤¸þãž«/RJ0Î0`ˆf;ºMë—!-›“lî"ÝyDYõÈ–’–=m—�tЉŠ{ޱ[—&3¢· ØŸc¸U ,kÇG¥ãÇ‘iEÞˆÝL°LR妮éÖ£&€yîƒçœÿ6¨°_i³ oèp[Î\é œÔïÓ€�ñuQ‰iKÇ…Î�’¡Xq 2z?äom Øï` ²õŠ�ø˜”ž �ºÚïƒ�ý÷è3øiL«2¼%™w¢q+�ûYéö„îNE””Ö[‘¬“Ó‘¢H Y:4OîK:ðd^é¬2±ú„Û7 Ø�ñM�Û…é…Nž:½Iv)¥I9°áœä±Ó†1·½§ƒÕ–p<Šå“KM€ûY¦Ùœ+><`“_Þ³ãŽZzW¦ÚÒu&G~–ÂrÅþ¥I·Ñ™ûl\’lp€ý:¶¨rÁèaÌv¯£~ßÊþÊI»j¤f²W‰¯t•Š(ž< Béó¶öç zË•WuçuÛ‡ÑÅGÛY&θ~DÚ[û#FÎtÑœR5[±ÃîÕàÏò½`Àþ+"O´aÜ\Š”ÎåŸÙ~ÃÏð:ðÑ#¾oIOGD—ÌP¦Dî¥g °ßÓ„’‚´÷j�©+<™cÕê�Þ¹2*õªJ…° [Ï3c¡¥K`ÀÍÂ/VÜS½óx\ÚþLËÊCœk¡¦DMg¢™-û¤�à! fVö£FøÊš ‹ŽY²dóMóÝ1ÑÄy,Íõi‹ÑgâLæóx®Æ‹§­ÖcC,+äL²ÀÒNµnãæ •¹<— %É_$íZ2�ö»M]ˆâùp“Æ b™µ%u…Àú9#›òjWˆ0´ab2ºSܼB÷v§Ù)Q+±®™¿ös¬†ˆŒÐk'3‚ÆŠÈ�ÜÇq�`‘vÄ#’¥¦â|"ÿX¼Î'mQ”¼A˜È ?¶«ÆÀ¤•õdÅ)®­eq~sò°Ù0ü[èyFïœUÖbÎgàL¢JŸ‘DùÈ;æ˜ë~Ïjf {Y¼vÛ!ù¯³a¾ogÃ"_ÞFHqÉλÒÅrÂïNtŠ>Ú‚Üa³aø³üª]“vGo ?é§À vÑšÎuß•è�|`ÄV­æxƒývÀª:O—¸«ž¦Ðe`À~ÔÐUX*zMíÌô YZs—qüN¿nY  ŽڙĤ[´€uJnûËŽö+M3Êó)…t í}�žéùáEcôH8õ`w/ßËVëÁ²ad>í€2`ˆeûUé1Y”¯è†:©�6Dj9õ'Ô5sq'd;ø?º_XÎ ‰VX°†XëvWÛRÓq~J½”]Ö‚DFy3j^Ñ »‡^»ò<ßVŠÒz¾¢020`?j10_§Æ\É,KýÒãÖ}Q·pH'(Dé8 BŠìü7¦dŒÊ�C4k#¸fÍìT‘øš\‚Ü[®Ög˜Ÿ‘öÚÏ´ä¡[Ê KÏgCNÊ�çÐð ¸À÷ñŒÊo�%£‹eVضC¨´ëãwc“†ll–•xÆa™•®¿m{ΕNWühÄ _xZÕ¦9fN¹/Ð}‡$˪�CÉßc!ŸË&;¼êu­9þñqð].ó-Ñtá÷ú­…Œ4±ýÌ=ƒ0ÚÚìïšù¨H­«dEÒ‡3(r£7’±ûSÂ2õ‡Aä.7ûõ»ÔäZ�g °½`Ú’äÖ­^ë¿8@Š8%ëÂM­YÀ%抜Ø+¦T‘Ýý0mvó °ÝfDOiµ¦ÈeéÈÞͽ”pˆ1gðMd‰ÖÅ=÷ib¤˜¸´°[jô>˜ž¢0Àö‚ñUéË¥ÉÔâ䕾ž¬n‹ 6âM ÷á¡Ð"¶þÐ"¤®ƒ—ÄEמòO[°˜o�5½ò&i¡3F€é-OCåíµýì—:CÒµìÈæ}ãÕ?�ÓDu+ð}om¯ ·²C=Ÿp«=µ=vºì6öJ*lûý®†·¢ºö‚úóÓå(å�jÑèÿ°¥Êlüëü1‡•f]ô%V–<×ã¯è\ƒ.�Ÿ}ÍU ŽÀøÆ™q�¯kÑl_îÇL6 R¡=ñ@1ì²qõçSJcÚÓ±ýäI-éf€ý~¦}@²0-£2¹Y¹ëjH1Ã'HíÈ/’W\,.†Ö9Ò¥¼=u�»l·Ù,8Õ½%Èy„ºõ,™k¹26V#ô­í!žØÑ0;‹�1ÂEsâ(ý,®£¯%¯+¤‰µM Y,�±—òì´–Dß§Æe5Ö ä^eõw?î2äï€nK`°™Jwñ©”öé�¹kßXKB¿^K†|¹¿qjЉ#'Í‘Xκ‡Ä¸Xg§µ$úXvSO¯ßÍ^"è¯Ìtâtöz y>Úﯵiµ~,IñfûlîyÌYH�‡ÄÚ °ßÏŒ4‰‚j­3m>ú™´%w{ºˆÌ<åPÕÌÅŸ‹{·ÿž«0-‡ ­�`»Ë\87ã÷Ÿ¨h¢„íKže"b2z'7–‚i–Ä Pš�¯>š!©u­ïÂd`»Ëjõ7]®Y’}j\×ì:à )Så'uó©a¹ÊÚ1nˆ}Ÿ_^ùÐ á~À~Ëê�·øÄïk‡±éáÍc<§ �<Øf"ÇêUÆŸ)S­*Á£œå`hØïg%uá«jôÉ�J—ˆë§bzoaÍ7øA°½Æs •°Õ£Ü|1l·Yh`Äñ씣§r‘š�§dä(ÙÒy9Vÿà_ÅÎÑw�‰±Fˆ5u-’_ŠÇš_\C¯ ¸ºˆ×\Wk–¡(†ï÷•Ü©.€~?|GùÓjú.a$§]»ÜûtŠèK#_¨ºÞB.Á}ùuÁ¯ë‰[cÑ#©†‡0-Ç’B´©ÎwîT@Ënêö#lì£% qÛKPØ*$¯@±ÎÐ2¿ÒþösZ|µ ‰^‡qß÷Aç3ñ" Û›ÌzDÿfç~æ~M!š ý5Å�æëã÷Íä½o×AÎ�k8íLA¢<Øïg╽A‡'ú#«÷¸E"Y àÍ'èü¥„é¦/ ÇP©cžò\ØÇn `(k èËiâØÿÃdXÔÞ'¯4ž°8@ûö .Ó¥y½ŒlKá5)é>®Ì7TÞU‘‡�ökÛp?a&éûç$±øÚD›Y/SŸÙ&­f0%c+g‹W¥h3§€‚•îØ^µ·/¼ÄÝ^:*À$©RIkª„kAõC½’ûoE+w-­ñGÏä^¤gà °ÿ‡Ñ%û”<ÉK´r<ãšÀÙÇï¾I•øðŸîá Ø¯cBóg?“W«íGðv5!kÃÝ�*ï£× áôõg5È­‘ÕÉâ:D5?ïT'DïcqHÁžð9ë<üEžâ˜Ü�£Å¾Æ�Û5ÔpjáÁz-cÉëíߨ ¡õòüòýi+­ìÀrª°þng›Ø‚�ê„ècù;}OÛýöY_ÄåpºI¿uFsŒXXâ¬8]ã¦;v˜™3…ËXîqµÈÈ:;Ç`€ýLS×s3)Ÿí*| R šH,9±YœË”u% c7%Š:Ef™Øn³k*¥qj¡ò6 sé„™–"µñgœÈÇ?Û´ƒV{µˆ½„>aÍ1Ø÷Lk¢«KwÃÇ�´ nçËið¢5¥Žõ¸±TXý%¶2NAÝGûæ6Ü;ۛƀ»žñ4øéåÒ•ƒ7BQ4\aX‹  ëwO<©èSól9µ0Àþ®‘½¶¤Äg<*U´ô6æèõ!±ø)ü3‹w’§#bàv“dYüçb%’çkö¶»,—7‰¯“dY/ÎÇ–³�¼¡-[˜= n�1‹z~ñ*].¦Gú½`»Ë,ÍéJ…qä�­J>jØ“ãê ܉Ji»éê¼±þ‚‹…«,ÿ¼ÙË>À~ŒU’S’yÎÆâ…Ñ[�ÛQy;l�Žî¦ñ»É’’ˆº×¨–ï-r†ÅÈ"ó?‘ÅE¯ Ÿ­ÀÅc8áÁAx¯ªŠÍéí‘�jà ¯6ÒC›NâCØ¥j±6f¿wR]ˆ:™B8Š%+ …¹ r¸ëg1>´¿C¢jÅ.㯵aØ×µáísÏõ/âeM+Aœ´ym#}Ÿuítî9ö¯ñ9ôu¸�•áèùpåÏñZÛÁ•OáÛqœÁ-Æ->¸tÄØçÕF±2TÂð¯AÈ d�þì?ØO£BH—4�Н *ï› (Z¥Q‘u¿:¼zûû'¶ã<Ÿ=�=À×$�ÀØNx¦u;YƒåT[Yp‹á�¨“áBEò¼äùx.T&¥'¥;!ªÛ)Õ•]“]SVWV7å®Äù~’î$ÝI‹cúï �z¢�ŒJ©èVއ›¼§/ÛÊkYÚæñ”T5ç×ÿIˆlþ©¶¨ ²OO(Ñ«œa×éø_33´`N§Wšþ‹½ûŽÆúýÿnËÞ›Œ !„ÛÊ,JFÈÞ{KVöˆ�DFFFfD¶ÈÊÙ{dÜdgFHE„ïqªßïÓýíóó;§ï·îê:ÏÿÇ—süq]¯ëíyÁF—3‘9‘ù&…åý½õßcòu®Ûæêƒb¹b¹/OBŸßÚHtÈȾÞÅ|Ò;$"QeA꨻Ø¿íŸÕ]j…uëÜ“~rt*µé,ç=±þ°‡z¬UJ¶±Ýñ@VæêuÔÁU¼ Ø÷šsy¯¡•‘vskÖ v½÷™W- ww'�Ñ.™ŒvŠïøHêéŽö3M5Üõ)%¹D5Íþžéùá%}´zü¢PªÁ̳½�—­æƒ¥ÃˆußR`ðe•)‘é‹´C�Tvï…dj8´'”U²p&ë/Êvð~p¾¼’!³` ¾l´ÛYi[9XÃþ)ÕrFnp )Å­ðyY'Ì:õŠK�íx$¹ÍÙsˆÀ€}¯EŽzÙ5dip‹§›j—œ0ï ¿�M2A.LËÞ0ˆÿ¨(ßÊ;îý”¤^0`ðfmøžæLvåq¯ÈÄÈÜ¥j<†¹ðÈáé�„o™š4tûJýò3†ÙÀ�SÒã™Ô¼ü°s!†+.kÇÐDÒÊ-Û‹(ñÕŽš í`’ùé¾ß*-v�Æ0*Ù\kkâL¡-|¬C‚;¹º|Ó.©4‰ž,*Œå…HžL¼È£#Äô�n.ÕáH+`ÀmY`±ÚN*e?rÑ˰ÁP>‡I#½¬#ëA0ç’\ Y¡ÛSÞ˜ <°?Ï2g^Ü΋+C5&1!�^s�¹�¸9‰Ûrõn»Òýõ¾šçZ¢½ú>aܬÀ~žÙ×ÙÆ¹<æáØ`Ör]–Îm× CÄå¦!‰Ú¬¤¼cw~U!‹gk|ÙfsOâ}Q÷Œ¼,HËT�½GšÍz#ÄÜ’�BƒV5J õÔ%¦t`ðoè,ælÖ2þ+ eµW”¥†l&¦è¾§'·ˆHhžHŽžÌ`Mü�àì"K‰™Ï,ì¸:£³+$xÔˆ+œ­å¼ãÈ•£öÀ¹ÅX'Š„÷ÄÌŽ÷ÚϵtÉ{gŸ és~:bB¹ï<¡!ɳA�Ôá‘ÝÏ�Zo¯ÅˆþÆX¦÷ùó]–ßHšsaY\+Þ˜"’IÜQ{`صüˆŽ?`Àm Ыñ§¢"ù„™£oílØ–hÙÓáÈ\F„ úQE�ô¦Ð4‡ÀàßÞK2®æœÜuíˆk8G’Å¡ ôHà�VW-Å;_S·@Äîn`À¾×L'ãÜ!(?2ƒ(/êdÁi?RH¦ææ8‚—ä­_¨c]ža10`¿‚©‰ZvyMóA½Gñ /K8ž¡0ªÛ@Çe‹˜= ‘I­!Èz»¤Kâì ¼N+¥Ê<¡ÁÚêKQÛhSŸ†¨ ôïg'JqË‹Ä'Ÿ�Põö+ØÙ-Éô �¨�uËçjÛ§âJ'<( n²©àZ¾í俪~,‰�ª'õ?mAÂ>u–ÔrtøEêôˆþFÜtþç;Õ•Ïs†¤Ðœˆ´™Ú§Û3‘Ògÿél/g`asøóØŸ¿—>¼»R‘BY¿»ïÑ“¥ä!#ÛCûN<ìÝì7¯°}°sëùíîzjlÇ zÇWj•Dƒãæ[Rùlœz£’ÏÅ¥‚aß›‚�©pT¨ ¯Ô‡N“o·~ˆÄ“;j¦ûû¡ˆWXû5ù!�Ë®8ùk‰îl¹}ä�»­ʳAhµÈV bˆø�·´8¿ž©0¾WœáM6 x!s#뉉{Û ÅQ3ص/£„vçr'0dø¶mH› ½®è7ìW°=ÞyÞ˜€U!Í¥°ªTEËËô7Ketgå¡d�¸üâáFÄüéE¥ƒÀàß6©(u’RPë2Î7êrÐùKFò½-Ã(¥}N„KŠØÅ=˜PlùØ�±õ ëë\³-^½; š$©&­1ÌÌíŠj5.Üy­‹âEñ— }ž!0`ÿd1P†Ì\_“·›QÈ_;Ö}Ï*ÆžÞçù]L~åƒ2µ1¹»nr,kOAº§ˆŠaìž5qõ¹Xlß\Qùl{û2„ý¨=+ìžxœeè¤ýíð=›3„Õœ–.—¢Yªún«?|3npÍ{7 �D÷{V®¯÷¬u8ŸÖÚÙº²kô±ÊÙ…Ü{î䇻GíYa×OÝ…¿³IÕ¯�� Ñ� cv?â&³Øà¬Ñ!©€¼B"v¸BÅFyæ„íä³`ž•˜]m®EÞ5•×¾É�Ùk¬2dzò\/XEÚËɸ�ÐÒ{‚.N£ôòí0`¿‚õÌšâ42¹âRÝXbOß0°·©+ÖciÓ¿4Q^¨³pÐKQq5£Ã Øïm·"_Ù&GièŠmõëÝ’KÏzFy±Dæî-½Úí˲SjKû1P¤ÎGÆÀþ†|'¸”æ=gãD‰;ÞC�£ŽeîùrŽÁ¦†~`ÀàÍVHÒ\:&È»¬LòÌw¦¦êø¿Õ]솱4»Ø€&”Ë}ŸÔ×ììYòžœvºp÷¿¹ÿÁérÿ£Î’°÷-èô“zJØgvý\ˆÃ_øÙ¢†]ÃÒ>H£ònW»2ºú�³$Ï×gÉàÏß”¶ÍÏÓ±ä¦ÛáJZâ镪u–„] –=´nöžËÇñÀÕƒ]oõj` OÄñní`IF÷ ®Ì µ ¢ìrÙ¶:×�ýyVÖ¶«H� ;únó|4÷P@¢.òz‹/'ŠûLÞ&¶,Š¢ôX¤³0`ðf!áçrR™.ç™(7Ì_�$e~ÄÁú³z0»A=0%|z,\¸E·“ð¯8äõÍ�°s'Gâ8å=ÅŽ D¥A˜>bGÍ`¿ëì­l­¥p¥ î0áAíQ«ô¸’ª‰ÊÐv¶¡¶ÙL2ÞåÃ7æ¼_ψ>÷­àÕB‚‚é¶Jcð9ÕÈ<ûŽš À®žºn~„M½3‡¦èCæ°Î/�iÒ1\}=e˜C1CtÈvÆçM gæ±ð"`¿¦1žÒJìä‡*óSdèk}”í¸7óÄXÊ#¥‰óÆ _‹U”V8žÜ°?ÏDª‡OÎBà w ÏF0jt\¤ò Zºõ. Q¾Šé²ÛÖ(Úis`À­Û$·í¢E-¥Ã–NåÄ9h€¯xË©`êm9Ãt½Xµ’¿YÄw¨À€ý7ìƒ"Ö›ä�¶‹fÄ”¯Ÿ¡Óýµ®™1Šb.ðQüüÛ[úXù5œ*°I`¿·�C±3ñß ã™Å`¨ád¿L{~-i7ƒ.žŸ�¹’9N�¨Û”ˆ‡Dö 0`¿ª½žŽwq±}i' #Kï«hDh~1$†ù J®ë#WÔrÞ˜753 0`ÿ £J¾Yö,?ÁÂNÕ)žu„Ëå€,á麋ØïcüëVÛ„U¥Š˜†ýí&�a.öÕO`ç„ÔÍVJ„–&µO î÷ )o5'„ýìÒ×±‡× ¦óe¦$_Ø™¡ Òî§Ô‘� Œ5«è‰Ýë!úÆœ�¦“îóÿO[`©äT’Ý…p²v {a5'„]Ë÷ô÷ƒÛÖt<ùHj™ÑO-|7aE„ªíÀå®±‘6ÃTÞ9ňˆ&Èi–À€ýL»ªé¬_¹Ò_ôA!äÅl*oÙţĄÁ±ˆ“úÌ‘÷³Ù[Îa³¿/ìGÙÙ"^qÝB¡…7ÏÒÊ^ìŠÏx^èð{“f‹„v»h�ѧáX¶ 0`¿ªM°ç*áoPŽõ½£Õ"jàMà7±úý´ÃP£fý©JzN áÚØ"®t‘yØ·hyùÞ­Gl¿“NȶÕ<ê-ZÔÃn£›_§@¡x 69¾�‡ç—ˆæx~‰+–#–ãËTÞ÷ò=‹ù¶™Œþ=ÚþÚþ'óïHÝ‘JÛ:ŒJÝaöió\W™_L÷0MªÞŸ2’àÙó%R6f6fü;¾eÀg\£Ým�ù0š�š�…܇¡c¥c½xÅöK¢TRÌRÌ$D$D(™«üsº»óÅ_Óüß‘£Y÷;ŒÒµO9­g^7Ÿú)NQþ„�­Š=Jÿ›ŸÐ@�Ã(w0707œBîQõ"ÜøÿDþ�ü›’ØêÑêÑYØLÌóEñEå¡é˜’�DÐý=Sù_'õáaÞ¼ªQ¨Q€=· TIãì̪öíø?]8êÜÛãÕ#QFh•iüCÏýªŸ›ƒMs†ADÿy-_žBkÒb¤ï?ûõ¹­“òÓZ2óótn,(@<̵×wãunƒ] <õ7üŠV¥ÅØÂ�c½—xŽ}×Ù¢×4í6’|>¢|ùéØä›tÖxc*ÑYeåÀ~ž­4û¥Ù«¬¨?j&ZBî¼d‡Ë ÈW¼0dM ZÒ‡à7àƒÂ �oõØ�1§•W|gFã9ú”P²ìâ%QÄ*]Õ�Âc86õÄ…uö½°‡€ƒ7ÛÕlܼVÔ²5yÙâBÈcŠÊÇ–4lÉ{l$S4”gçº5©ÓîöVû} §r�yãĘDÌ8"�Ðk‘[)¦ñŠg©ª»µ¨ðGQ›<¢ísÖü‹q€û™6ûš§…ûzÁ¤vŸÊ(V¤—£�Bd[ tî´$ùª­ ¿ÞÛ!s}`À~#_¸H^'ë‡wŒbÀõrnQ§¦úÛ}Ÿ}ºT^jÃÊTw1Y¦=þœ `À~”…9=¡ )¿ ¶F/”~*w:ì®0Blºõ“â6\i×;+ Ì>"Fõ vh\XIÑ{£ZA“§Ïl‘^Ml¼âW^üøÝÈ;îÓJ˾Ø.ùKÒ %À€ý(SmΰÈ)ëÙuF.¹'YePÔÅ�)=KnºjýÒ [�ûë;‡x l`?ÏΙT:àò÷0d8×½V~`f}ý”UB36ébÜ¢¦\>¹Í“'þH}î&À~…ÞväQÜ}ÕönliÁÖr–‘#ºžz�¿ÇÈå�É¢^„1·®!ºYtuJÛôÂÞ«¥'›BèÐÂ9k ×}íhƒQŽºWƒ}ß&I"Ãi+e§ñ¡jüOEb5¥z>Ç žðFCHô3†WgY¿q¯Æýõ½Zɧµ°˜ŽÎ:ãéÚÖBH”,EŽºWƒ]Ë·:å€ý>–OgÁ°µ&‘3.Ì;³óš—þ%tàƒ zLß²–†�&©Ï d±ÔK×j`¿¦ Æû«ïרS•»2E)Õ¡úݹ>va±R� 7CË5u<]vìÚšÝlz/°ßdž;íý0<(ã|8h92ü#.£?Ë‘@½EÚTU?•(ZlÛ'¸\o ¼Y¨|ù}Å�‚q kî–ÕGØ™æ‚�qªö„3ÛÖ=»C*¸îüï‘Wi°€û'S™í/@ÖØ¿éŒ_a`r߇U{º+µ‰ñœžøÝ濘+Xy5êÑV÷]ú€ýšFƒ¾—ÑôÿVùÎñXé�zRÿ–Ûô£ïûSOA].ÉøD×=ÿ�V Ø÷Á¢9)-“xñÖëh¦{/„ãæ1T7&/EpGØÌds݈M^¯Ã_–Ço‚¡ždÞ,r–�DòÚ\¬LQÎIײ‘pä°÷ª<$×G[ÔfÀàËÌM©Êù7Q¥ô,ÊÞ)]'DW}™Ú�èä´¿7ÍÆ@�\‡áiürؿػïh,üöàVöÞ«Œ !û"„²GöÞ[²ÊL¢È eÙÊÎÉÈ&ã¶Gfd•™ü~Nõû=Ýß¾�眾OÝÕç¼ÿ{ιœã�ës}îûúü«$$%p[ÁŽB¦6'´%ó°ûˆ?OoÀ“ÅÇãô| ÛÎ[g Ž7Í�Ý ˆf„� [W ¡½àÊŒ�WUÅäðöäa³aØ·Ð3õ×WÃ/&c�!‹s‹"mó Ûe8?4ŸÆìC®Ú±õCüëlòõlXðó[qŽi™WÚ˜NÜ ‹ÓA™•K…²Ý-Ö;Þ=È*\mÂNº¸j—�û^CUd*í4²6ÖÉajÊXÄ®½qúMã,…°Àî:ͼé`«èŽ—„¾Þ0`?ÓÔB]ŸQ’‹WMä똘éŸ7@­Å/¸GÕ›ÎÙ yÝdÑ[Ü�ñÐð._¶_žžJ1GÓ×Je¿!(SÅ®3ª¢JŸ�3V{A¶…wÛYj15 LfÖ|Ù`»³ò–J ¦Ã3ª…´ìÀFR ßÐÙk˜´e![1HrëY²g�û^ ô´¯ËÐä"M5Ó):nÑz›d”\ˆ†­®ÿqA®õ�è�q ý`ÀàÍšñ¯[0Ú—F¿!!s—¬òèçÂ#‡§w¾eêÒÐ-ùÚ…çôS='¥GÒ©yùaÏñôò.ËÇbQÏ¥”Z½, ÄW?ì¿û“ÌG/`c³¸Ð5øh}¹ùGMÞ“{¼³J–EˆáÓò]>λĩæ]l¢пqŽ?óõ9ÞåóÎ;­Ç¸xuj™íü¤7rñÎ]<ì[Ë?½3Ћ¥O`'[ÏÿÌ„KòѸë̪ ¥yH×y‘ˆé íÌ\üj“BáÖÀ€Øÿ\ô%©¤ÃÀO£:#…,FÍ(´’–ŒÄ@Žy¹*²<·g¼!T`ž¥OßΉ.9bBbJ¹ìuq} ·ñRðKå‡+]U¯´…; ¼B¸YžûyæPcíò„‡}•IÛuA:û¥~Z/¦0÷Q"œˆ�O”UvìÏ/)fðlŽƒ/[oèˆ{(ìž–S‡ bê IÄžb»R±°b£Ð¤Q‹9rò"c0ø74f V¿ÅØ’jyÉ>ÛÑqZþïÙ“[@$8C$GGf¸,º&05Ç\dî5ÛW¦µ¶s…²6žw�?¬Î.Ä:^ ´'¢h~¬Óaº±MáFæÙ �.çg¦”�G5%xVé�º!<²[#i’+/«1"¿ÑóÃì}þ|—å3�¢Ìt—°$º oH É4ú°¶–±ã°ë ðì@¼Ì¡¤D>ªKæä]=²)œEö¬?<›AÌ ¢ žÎ ú•ð0ø· ɉLrAÆ»y=gW`ÀàÍpš(UgÅ©–—^ ÛEšõŠ¥�¸«‰vucj´·´ Gt,Ÿ„š¨°_Á8«´%RÅê�<Ñ+�›®~9]¤4êAix“�H×ê]+ß% ôxVªŽäÚî yÕXQËíÓâhÐ!ú'ºéÊ}9Û/~ž3ÄßË kA�¬~¶5IÞ#Íùwg{9CKÛƒŸÇþ¼/ÿàzL¾,‰2+üÑ£#CÙCFvo8ì;ñ°wc°Ÿy…Ý�;G°™Ùj¯¥Ævº[ëôF½œ¨×pÄbS2—•CP╨d`/ì{S°3ö2 !¡ÅÚ{ä[MÛáxr‡ÍT`ÿ>Ñ2Ÿ>H#²‹×ü´…w6Ý>ðFßָdzJh=Çúôœâ7ÞÒâøz¦Âôù^q’7ÁØXæjF¾=‰{s/Åa3ØZŽ•PBÛ³¹céÓ¼›W¥ÍûÞ–uö+Øï o”ÿ’ Ö|HE²»•ÝÍb½)(Y=.Ÿ¨¨11_jAq/0ø·u*zJÝø¤#5içëõØiý$Âϼ+Á(¦yE{—án@{dol¡Õ3`?ÆVÄVVz¸¦=;wèµH’M›Ê¢˜˜ÙTkŠÞy«‡âIqKÀ! ϰ¿³(}æ®oLÈ_šS(\Fo¿oeOï©ü.¦°¸­BmBî®—ð€¥ãiêõsªFm°=kÜÒ+‘]Ó/ˆJ§^¾\€°Ö³ÂöÄ#Ì}'n‡îÙž&¬ä°r¹É\Ñu[ãÑÚˆáå»ñ¨$zßèY¹¾îYkp>Õr¯µiq×øC…³ ù�éÛÁ‡õ¬°µÀÓ®¹ßÙ$k�G†iüÉú1ÛL³ ‘Y®rTé’”AÞ ;ÊS±Rž>n7ö¼ ØŸgEæ—ª‘wÍtnòavš¨Nó,¾ÒT•ö¼fÒEhuc”6Z³Xj€¦°_Á:¦,pê]q©®Î³¥®:ØÖê3žk6¸8Zš§;»ßIQv)­Å Øïm¾áoì"4õDV‰ºõ}åR3žS^(’ öÕ¯Þ’’WŸÿ%Œo}lìÏ3ub‘‚T?ÄÊ„¹tä;�ÅG78êG‹ÜñfYéŸ:éZeŸ/eï}Q× ¼Ù"IŠKk€ã(y›5‚iŽÅÎøx ß·v º¡D@lÌ/Ô!†fs?$õ6¿{–¼/§“*Ô>Ígá·Jpª”Ýï°³$ì} Ý蘾2öé]â§a»#!—±töS¨n4‰ªË.ÝûÆY’çë³ä—÷–-ïRÊÓYí¿ª0ÌŸ­;ì½eÔÿý¨Ü׉^+„Mç¿fßíK�­LÓ¿Ä·«y¿y_y›À©bêQô6Žö_Ãú˜õñ“)w¨;t=ã ŒM¾Ééò_’I¦æ§æ·ØÕ0Ë×Ûý¬�žÅ/éê šú”;ž“òx×)bUmUͤv)N)Nš‘WD_">WJVJæ¬å¬%³žtóïãZãZÃbqKêßgI s˜·ì N�>kîXéü§Xr�û2ßrdìþÿlǯrÊ—$ʺBµB5Õ4‰ù–&vÁ¦=¦=A==;=;µeج–®ñ¬ñˆµ·Šv?ï~ž°ó¯Yü:§NdúDâ�Ä;ÿ÷¿ýù3ÊÍ33´ÌÙ©ö¸V½xúŇÍ&`ÿ·ái×ÑŸf¯�¨o/t¡stŸãèƒú¨î[î�‰—‰Ë<µÍ¹Ž´h„p‰ ÏJØŸgz*8õVé6ï½MüÚzÜœš˜•Ur0–.cæ]ã§dfæ½|Ó|™Ë~4æ…Š—¤Ô„EZZ½e‰ñd$“øÓ~Ò¥Y—ÆÒDTï xNƒ/«×Þ¿6xgØ‚`£yO¥[��£L‘ ßùf ý†ÎI]”|.I¹ã®üP`¿�eö­˜opyÙ"î»z°é/] ˆâ ;Ö®(Áà^Æ•.V­(Ì&—i§{ØŸg%/Bv•¨üeoá6ÌDr÷ùÇé!¯4zs ¸Oæ¬cË¢(I…;{!oäz6+™Q*ÇT¥nFL‚”é1;ËÏÚ«ú»ØUêžq¡SC¡B�zÝë„·¢‘WÖ?ÀΙ®9G«ì)µˆÞÅô9lÎû9áÎò¦j W ên~Sž#êåòÉZ÷è›9;ªÌ%b\¶¿1gâýzÎKôy^5än ífq>‡:Ùõ®Ãæ°µÀÓî¤aãï- FIèȼü–�¹Oe^èZ<©¼’ÔO‰¡”&Üg7éµp==´Ø¯iwNjÇuaÒAUø(Ò ´?È ¶ÜŸÌ7‘ôHzÁquòL£u„#V(žÜ(°?ÏÎUöœ˜‚†íæ�cÐ1l¹@å#ÊO5ïû>Q¡‚IÊmsõ”0`Öî7�Ý|Á²šÒqS7‚rô,Ôß[´ñd õ–œ­Qªþ]õ¢$Ÿ)Ä÷G€ûo˜½ÖZÂNósbÊ·ÏÑho­h¥ ¢Xð=?ÀúŽî�Â2NaȰßÛF ØéøkýxæQê8Dû™¯S^]ŽßM£�á;ÃTέHÔnFÄC"› دjo'bÜϹؽ¶—†ˆ�¥à×Tñ×#4 ÷‰`&FÈuo~àŠXȺAÍ„ Øèn–<Ï�µ´W»Ã2Àå²OûìŸÞm ì÷1¾ë-Šb%L#öî—¦õ!.•ù°sBCêkeB+Óêg;U¶›Â~¿ÿ¸ôì~†É\™q‰a{sÔ^š�I5ä†äüC ªú"÷;ˆ¾1'äƒÙqøùûø–XªYþådÁЖv!O¬Ãæ„°µ|Ï>H`ðo[ÚN'@­Òºé"…‚cÏQ5ï» ›8éÐ�çœU {9Å< ØÏ´KZÎå‹Ý¯ƒ†§’yK.lb<@3` ˜ÉöÄj›m#°eœ¼¢zy‚YŠkÏéSJ† v…ML&¯‹µø¬¥Ø!¡Þ.èeðªCÏtìWµ1¶leüUÊ¡®÷4ÚDu¼±|¦Ö?bßq?Ô¸Á`¼œŽÃR\¨úÁWê¹Ø>›_аBggòi€Z׎߳ÙÃúlØ=^âe!ÔÖé&�0ôÝ/ù¸9Ú6Ä®ê„uŸ×öVäɳ!-Dúë.qίûìVÊOµ¤çæè^�U„xXè<©mÇ%8¬Ï†­žö7üŠV¡ÍÐȇc³w–m×Ù²Ó,å>6’B.¢Bé© 7imð†T#2JJ�ý<[¬òIqP]ÔxÜ@4�ÜzÑ—^àLálŸ �pQ‚ψ¿ =®õ+`?Æ®-F¹â;3˜LÓ%Ý#Ë,œF¬ÐS[M±­%ΫÙþèä‰ç�Ý ¼Ù®Výú傯Í1)ËûAO(ÊŸXQeMØc%?Š@É9Mß®E�ÜYì÷1œòY¦ÕãCâQ#ˆGßžóMê1‹Q⤪lצÂ<òÂ!Ò!kÙ¯°ŸiSÞÒà4r_i!ÓéRÄ ÷tT oNÂ�NŸ’ _²ðÓ×çea د`ä³Èkd}ðÐ)z\¥² Zµ4ÞùÐ{}¤Mæ¥6*Ov‘eÜã Ã)ìGYȵ|š ÒP1õe:ÁÔ“Ù!ÁBR5©óEm¹R®´–š@ŒèêìÀ¸°â#÷µïŽ�:½Iz)®^Þ§ö¼è±ÓzáwÜ'ü•¼±]rç¥c‹ �ûQ¦Ö�!Üßc™UÒ±ëŒ\t_¢Â° �;]zŠÜlÉæµa»>w"Ë{ÇKl`?ÏΚ–;âòuЧ9×¼UI4·¹rÒº ¡›t.zNK.—Ü6?ß©ËÝØïcƒÐÛN³Ùà”3žn€]5„DÙêÜa÷j°µ|k§°ßÇrÉ¢-é7BijF„x'wÞòÒ½†öl›¢Eu-hk j‘zõJJ¾v­ökš@ŒŸÆÇ*ªRWÆåš#>® ‰Í•+d§i»&�¤Ê]^¶ŸJíöûX«ƒ†e´;�“{š_˜Úóôñ#¾¤/*JbÆã„ íºjÍ€ƒ7»§PúP)è鈸 wãÒcìt �úh5ÂÉ-›„]ÿ>U\w¾ 䥣XÀ€ý�©Nu?EÖüxÓ¿ÌÐ8è¡‹ÎD[ò †³ú¢Á ·˜ÊXx5kQ—>ºtû5í(Ú^ZÓÝ |ßÒ�c¤ƒjIýoÓ ~xèG=u‰½(ãYój;¥°ï5‚9 R FÑÂÍ·‘Œ÷‡…¢g0ÔÖ%̇qGÚNdr]�NX©Á_–ÃcŠ¡oÑpŽ“íØ»ïhªÿ?à×Ù{fTȼƵ"$’QöÞ{eg�H"„ddFd+Ù#$[vö&D*RÈüu¿r~ßî·¾~ç|¿¿ºÕçóüãsÎýÇûç\ï×ësïëC,qi6V�?¦0g�¸}ÑH8rÀçe¢Ûýu*3ÀàËÌM)ËùWQ¤ô,J?(Ù ©ß‹LíHtvÞÝ™b¥'GªˆÃð2~1Ø÷±Ç$øîËX1èaTf6¤žv»xð4#ž,) »w›ôcÁ*KXôY“ü„5ü8FØÞ°U:µ¤3VAu5“Û‡õ†aï…ž­÷ÎA~%ò\*ÖÒYn1Ä�<£vY.w̦G1ûDª7mþÚ†|Ùú|o„DÇŒlÛv¦ã>¡·µ‘ç¥ë îåGÍš´:ríÔ£24JGµ©,—Ñžð{z,UJvWYoøõ")sµ‹8éਠ^ °j¨òLå]†VFÚyLÍYKXO|Ø^5Í“† nM Ó,˜ ?Ûô•ÐÓ °iªnedgSßåXÐG}‚Wx“²/“³ ò¢Ù¼¯dâ©îW|Ù^eJd:ùKšþg”ökB2ÕÚãÊ*ôYØO$eÛx?ºœ_Jº%3o |Ùp‡‹Ò†rˆ†CåbFnHˆ„üZÄœ¬3f'­zÅ9ÈF<¢ÜjŽì)Àû§9ìm_—¥ÁE$–nª]|̼;â:ñ8™0 {]ÞýÂ|+Ÿ¸µI ½RÀƒ7kÁó2g´/�{E*Jê!Uí9À…KOsí¿fjÒCž,>¥Ÿ ê=!=–IÅËï[ÇÓ_p}{4õtZ¹ek!žÚauüÖCLRÝ µõ’"·h £âÕ·- àš‚ƒö¸§¦,Š"g/tû»l¥›u³‹ÄÆ ¥Žçû²Žwý<£Ló>n�jv‡‰�`>îés‡Õñ°kù·g¼ù²ô næêòM¹¦R'z1«0” z�y‘†‰è Ì\ªÓ‘V€µE�—�C­$Rƒ’Þ†u†s5bÐJ۲äªI ÜË ¸#‚Qûý,szôz^\)Š1± Yô[·˜ë«8MŠa­Jw–»«Ÿk‰téû†s³<ìÇ™C­]œëŽ&-·EéÜV½p´>LnjBì¨ÝJÊ›ög^Ëgñ¬�_¶ÚØ™xGÄ##¯î$”yò¡ƒ!GšÍr=ÄÜ’�\ƒF5JåÄ9Æ[h€Á¿¡1›³ZË,%”Ö\P–ê·Ÿ¤ø'sM …æåèH ÞŠ½œyÉ\læ;»~œñ¬=4d؈+‚µéŒÓà…ÃöÀ¹EGŽ ïˆÊ›ír˜mj¿è“}*t°Û¥lЄb×e\C‚g…±Â#»1–!µÜZƒý•=°ÌœÞÏײüÓ”˜‚ JãšqGMâÛîå{Ìd 0¨õyw"\+(��ë�:ùÕÌ„¯‹ä�– Dæ2€Äõ£ ëéL‡¢Ü þmMª€žàuþñ-�›mqu§ˆ³X!tw…î ¼Ój/¤!ÿ€ìgê„ÐÑ`ÿÔL'ãïÞÀ/Š8s<ƒ0/êx þIH¦æêÈ[âZ›ß�SmžA`€ý ¦&J`Ùî=Å7ä3Œgxþ¬¹�Pí ë­™=b™Ôjü¬÷ ºÄ.n€o†ÝL¡2Gp–ÿíë"vѦԾ ôQÁh—×fÆKpÊ {Å&SvØÏ`œÕZéâõ(tË_ÎÖ´NÆ+Œ{R\a'TÁ±|ÿŒ_Q=‰•²3õß¶`aßZK*¹=Z¼Bu:„£»î:rµýÒç>CÒÍœ[m¨Ó5eÓ䑽Ҝߪíå ,l �ÇÚ�‚^»P‘B ™ ÛõìÌRò”‘‚�{_oØkc°Ÿy…��ÛG°žÛèxB…åüÄé•Z%aŸÁ˜ùºT>+XoX⹘THìý�^«õç×z»œåý búÜM>¯x}¯o½Vq'[‡ý³‰1­¡­��—Ñ%ck ZgG [Z0;„Âfç`Âx?ØÿèpAÛ[ìζÖ`0 ÌÏý³þ{¿üéàåáùãüéøò á‚ðqó€8¹8?�ù8¹x?=Ž“›—�D þ÷–ðíã²£“�--ÈÁÖÖéïwØÏÒãà½@þóû—’uÙnÒUbð‚trƒTÉ7g·(š9+Y[¡}zN@ß—™C⤃MúÍ?§Rá ̨yièL±M±]�¢!F�5 ýkîàßÁçù¸ôjéÕ™‡Ð`¸@#^Í«)Æ«h’ЈÞ_ñÝgaËA6¨3ð2ðº£.ä±ÍD'¿Í)ËýPOÔ�\¥÷”Ø„�œjîµ\üßdœj7šCƒ&¡”1‘1QÊenc×Ï×çIRfR¦ÊK´<´<Ö%Øð̕ӗÓûYŒ®(žU<;q÷χ9âe¡òÑ|§ù¶_ÏQ¡.,¼ôäæÙFóÇH\¹Ãúõ°ÿ;‘Å*¬ýüÇd—œ´D6×Ý·y㮫ßäY!°zÉúð´!ÂWî«þ²_Ïôù3+Ó¼ÉF�£2—³Ù{´ô‘Ö¯‡]ËÑRŠ¡Ž\îú ¿–i³þ7=F€ö3ØïoLàk!Í…ðªTËóøtWJdtg.‘Öãð‹Fñ§–ôÿ¶JIO¡“”‚R›q¦^—ƒ6@"’ï})F ÍsÚ`PpP;Gt_B‘e`ßÇ–Å——{¹fš¼»6é5‰SMš+b˜˜îÙÖhˆÜx£‹ìM~UÐ!×0À¾eÛÈýfn¯ŒÉZÍÈ/^Bï¸mcO÷êúUìâÒGe*c2ÝäX–·é^§U Ûa÷¬‰¯Ÿ‹ÆvÏ6–Ï´¶.BØÛ³Âö[Ƙû�;\�رa#x ¶t=Í\Õ}]ýÞ»1ƒK>[I¨ bݯìY¹¾Ü³Öbï¯åæ³æ¥-£í*W2ŸÙãÃ۳®žæ˜þÊ&õdÉhlDˆ&�t³Ýø>‡0©Å ¸Z‡¸ò ‘Èñ%+Û1»‰§Õ€ý~Vl¦ØXƒ´ezQû ?f—±Ê,ÏÒs½iogãnKŸqÚ8�’óƒ4½€ö3XçŒyv=£ååöô›Ú"=ÆÓ-úçÆË tæ÷ºÈ+3ÚÜ1ûµíZä+»ä( ]ѽkréYO)$‹e®éÕlœ—�T[Ø�"Hzvß°ßÏÔˆD Ó'·É5¢#Ý)¡^×�{àγÒ?tÒ±Ì=SÎÑ×P×`ðfKÄi®Ï‚ÇÉÚ­@&y曓“µü_›c⎱4“¬CÊå¾Câgv¶–¼-§�.Ü1Ëo°‚²œ#à°ZöZ>Ýø„žÛƒ¿+Q¸Ó¨¿Jø¥#Ú{i”>Íbj†_ßüJ-Éóe-òùû -ss´Ì¹éö8–}¸z%ê‡Õ’°k�§¹g¿›½0¤º¾Ø�~ÔÑã%x`bÈ_eÏb‡/I&1ûäÒPžâ’!H‘×R °ßÏt•±ƒê-3­?øt$÷º; .63+)ça¼¾ó³ÀY€‚™™÷ÒÀàËœXöâ0%«ZI ¨ÉK´Ø´ºo%&S�“ؤËs0'2DUnzÏ_V¯µç<|cÔ­eG¹G•\!Ï…çr¥–þC×´ò#.)¹cSnC€ý:–Ý¿l¶Æåkƒ°çæÉ®÷Z1(†çÖÑí � ®Lñyv¹l;[À~?+mßR J”¾ŠÓ8Íݘ¨‹´ÜäFö˜Î[Å’EV�‰tñE 0x³ÐÀˆS9©ŒçóL”ëæÄ%H˜îs°ü¨Ë¿Š]¦ê�>9!ܤ۳Jp5iyu¶/àìD§¼£Ð&NXbŒé+zX_ö;]•Í5änäT=&<(�j•žR5A7é[8»@5�fñ®¿Òàý²/�@¸¿MÜHpízI X�Ô«û°¾ìZàiŽÚ÷°ÉæÃ}t$^‹�ü‡2 :æÛ¦ P`(dˆôÛMû¾ òÊD�(ìç´`†Z‰Ý˜tCÊüäúZÛ2Ãm·§Ky¦4€/Oó5YE9‰À•ì÷³Ó�ûƒŽÏ En° ÞbÐ6h“¤ô \¸ö!áb1ây÷õaÔ“æ€µŽ€ÁÜI‹ Çu�(ŠñSC�~bM'B¨6äl ÓõbuÔŠSüg> ØÿÃÄé޼KÞl‘4#¢xó�öê²fÆ0²¹À¶Ø™AÖ÷t±ßbWa„OökÛØV&Þ»\³ 5l½ìiÏ/%meÐÆóó1U2ÅÉv˜òË> °ŸÕÞLÅ{œvµ{a/ %Më­¨5Žö‹bÞ�’ëYßæŠZÌñ¡bB °ÿ‡Q&_)}šŸ`a¯êÏ2ÈåºGšPöoÏ9ì×1þe« ‚ªLCŽžV“úpW‡Ç�`û„T�VJ–&5eøwº„”7ëÂÎú8&m‹5À°l0•/3)1jo†ÚG³›RKf@&0Ò¨¢'z»“ð+}B~˜y§Ÿ¿?mqD%'°’4l¨ÌÒ!ì}ä°>!ìZþÉlXÀàß6´�ŽßײÌè¡‹KX:MÙ²çŠfìH¨M?™wJáÖ­ÈIæQÀû‘¦¨é¢_¹ÔSø$::“Ê[*ùq˜ˆ #aBŸ)òN6ûËY,öµÀû^ÆYÈ+¦[ ”#ÿî)}~é(þ–ˆ±ñ´—x›ÿ»4;DÔë…} ¾uèÙ®€ö³Ú>{®Þ ÅH÷-Â:Þ~«ï1û|`ȨQ²’lqV¸&v��+ýôìÜ«Î#E}Æ¡äÌØ6åQ›{…þé9„/¿ŒåÀý°§þsHL}Zà šk÷Fï�ºžAÛ.º† Û\)ø×ŒöŽöjŒÌÜž¹�ÆM>4 AˆÏ“Yß…fº }?]B¼GGvnûÜv³[\–‚ðÊAB; Ç’9\“»Ÿ‹*ž ‘¼yШ"©"¡*CS¦U¦Õbyq�†EóóÁaÁáåÀ¥o§"¬"ìéSŠÖ¿�3ÍG¯94Êoö:÷úÃÓýôN·8é7ì�q»ÿ7ÄÊk�‘Ó ‰ GQEQõ´0z×#Òõ¿ä Ë–ìšš�þ°á4-2-â¬% ®®V6þsª…¾Ìü4�±Ì Ì °u›€�A•4öæôà ÕîÍ€²ùÃê6Ø‘�g+©‚¬2�ïaèy(ú»;Ú4&¬èàßê9£å'ÏS`MR„ø§ºíó}*8¿¬ÛžQì¯%3?Oçò¼<ÄÓ\ûÁ“üÃê6صÀÓü†ŸÑª´šø±­wOQ m¹Xt™¦ÝÆB¼˜�p±üdlòZkÜ•hPVi9`?Ζê„ýÓT–Ôï7. =;g�C/ÈW4ßo�/RÜ ò ôE¦È·zØ÷1ç¥7<ãYº”›¤ÙE "Uºª+w…G°mžÔ~Üuò%bõ¼Ù–fýê¥Â¦õ‰ó·A¡È+X’S³&ï°ORƒ(8gé;4©Òº*ûu »ržiåØÈÙ˜1j¡7§¯¥ôšÆ+pR>îТÄFiðE;ä¼ ( °i3±oh°›¸mÛð'´»U†�Dz; ÉG¶¤`Íž” {m' ÷¾ß×\0À~#›—$«•õÇE'ïu;Ÿ[øLSý} >½ï.m*/•aeª‡¨,ãÿ-ì Àû^îüˆ&´Ž)¡£ÙÖ4½9M‡Þû‘p7w“10\D7;f ;Šr6l\Ž„L.fÇ€–[YIo±zî¤ÙpôÂAò£–ù(¬çkh›Ó5ÞYÈl„^M@›€¹$·Ë>j–f©?=ŠÚ+P¹gêû÷Ù0èøl˜÷Ë[±–)é÷Úéi\…Ī",ˆŸ4†¬ågí.5>íÉ“×C„Dj©8•fóI°'è¹c¹œÙ¦‡î½ðòlíVj·¸ïØ÷¢ }I—–±¶j}SÚ Z�Ë…7� Ä>�ÜûÈKºÃmB{n¢ê#€ö3íV°]1 ‘HùSÎΩù�¥;ˆ5Xù¤}©»@³M}…° G%÷BÀ ËËž…&/Rô·‘šoñJV²¨ŽË+P§¡OÔˆ]o娵¹¶’ä"¹`tÙp‡�ÜŽ¼¿²E1érJ¦# ±gðüukÔNJ¥Ò« �h8©ÍŒë<°€ö½:ìl^›¦Ì†'”¤§úò¬Aw°7þ8smVr~¶±KÔÖ¤¨F`€A›5c9Й—D½!$t¯t`Ã$‚¦w¾fŠC;7j–_QÏøöž“K%ãà´„ìã©oØ®�‰AäO,1jÉ'ÁR<©�ßÏA%ôP÷ÝÚ.,° GÑ~¹¹Ö\ÏúŒ"÷Å 9&Ï”¬áKØÐ¹Ý6ûxIúÝÌO"�¿ÒÇ_>ÞÇÛ~Ùyw;³öVz� w6&ÿÕ“úxÈZþé��nŒýÜ{™ê>—§lÈc�hKráœ`è8à‡ñ¨@ l\·¦ùB� lË\‹ C-âƒbÎZµZÒtÊHE­iOýY—¤* sí‹A˜#ÜÒˆ€ýy–:=ê�UtJ_—(|Í.Âvs£ñf`‹\äzwåk�®;nA—sûyfQmeû‚�eƒ^ÅnY"³E#©Uà9.zØÁ 9ù=ó+oeÒØ·Çƒ.ÛlèŒ�pHɪ= zÄ0™c!ŽË’hº^20b&V¦¸&xêÜUº$À ß� ˜L$½VbŠªnÈ‹÷›ŽORr}ÏžÜ|\Þy\)*BÍ5¡wÜ3‹ /õÝf ÏÀ)mí�ü‡µÙ‚™¯X Þ8é œYpúl>ß'Aý3]s�íÒ.é<�»mŠuIlÆ•EÙ7¨àz@ì×wÆRÄ×[ªP¿ræ‚Øûüå.Ëc0QŽÞ§(ª sDN7ê¤30d-?bÇ`€�­××¹ö.«¬,Ѹ¡•{ÕLж@añ@h&-Œð�°ü:*½¡Dœç€A¿m‰çRã¼ÍÀ¦Ùwh�ªåÁOcQ=åMæz§ÒžOAüÁ]ÏÞ¶£0À¾×ô&¸£Ÿ>Ä.¾B“‚›FÓŒ}Þƒ”z{s ÆYÔ³Õ}Ȫ:K'0À~SÄ1jwžº<ä2Œ¥uMÄê±&oõSÈÌ!¾dB%vÚû%u|;Àƒ6Co"Q˜Ç!Å^{;+`®GîCæ§Œtkf¼£$¿Wh"Ÿ ·0À~»X©"š$\wê…zÉâ\UËdÔKÙqGMWf\ £÷mœ7•�ã˜H;þióãs«6"“:¤ÄÊW¢‚õÒ~j¯&uÔÛ¯|™3Äd„´"NWïL‡öJ\üVo/¥ih þ{´/ûòÁ×c7JŸáƒ„;Óä%Å!÷†C¾y7ù�WÈý�s“ù�Ž24+¿«7Še¸}šcÛâÙL¬⯅Äýû ß›‚Üñ¿œ.•“�KJ´"^î$|ÒŽ”& ãxØåU& ãíø×œ':Êš=ÓQhŸ°°M²½¤áô<‹ÇjHò÷ÌrÌrÀÜ÷ôòôÚÃgkÜ…œ;Sàœ‹Z°=T‡œ ,èsDø‹Ž’=070‡¡&&ìw¹é(�´ÑÅGÉ;78ÿ95ÆNÖ%žÆ‚³øpñám3pr¥s¥™îòÌeuûü5xs|süøÉfÿo'‰8‰XÏT–ó¿'„ùžŸZ8Þ?ŽÇ:í•æç¬ÓÌPE„UL*þ'ƒŽ~øüsàøÐü )j߸¿³þ¿ä4çiξ€z‡ziDÈ„…iqiqÙ¿aaÑAÔAtcÿkh_Ï®8® ú ú�3:–R%>¾•š€)¢�¦ÝPL©“ft�ÿ/B¥&õpc×W¬½Tö¶í?rDy+°oà/2åðkÁ~åm6Öã3:ú/÷ÔÓñÚ>£’÷ÓòÌñšûˆOšÑAÖr¦ˆd¨#óR uŠ{ó†„~ÿji�6`€ý ö‰cž#Âç-ïí¥ òY£kØT®…’ê3ÒC„uœB>ÁÚxœIù…}€A¿m’R“¨Å=;U�r¥N�…ÒK4ôòû"”BŠ×”~0~¾í,á}1FÅ€ý[^_ïe›itîÚ£¾�Ÿ ÛTAOÿÜ<¿JYXóáª:‚3ñn‹L-Àû–}DAè×·{£CÔ¢O,}¹ã±q„4½Ïó»˜ôÊ®<™‘ƒzüÆÎœ$'~­vÈ3kìÛׂOºçêqKfZZ–AÌ'�Y!{¬1†~ ïàO¦p*X�l¯†3”w{+=7¦y×e?_ý+gV¶ãgÖjôϵ´5­ìk,·±%r™£Ù <éÌ Y 4í.ü�M¼fE{l„—‡pµ]'™…�ÐpƒµR ¿ôÏò)É…³f¯*ûóì¥þ͆*ø}=iUWNÔ.…9ö•×þ ÎÖ:Ý8F.ã”QÊ…×)zìW°Î_ô::; ÒûKÌIš¦ÕtüÍw®Ž—äª-v—ÞLiµGì÷6ÏÐ7fñaÊꂸ=žRIi¯HÄ^JzjTí\»>©¸t1„×–¬ØŸgŠx‚ùI^°ñ­R Èðý É·XëÆ_:`.0QçX©e^)a髯í 0h³üDÛ6_Ëq¢vcÝ,ƒ½ÉÉjίí®ö·G™rë‹ÕÂñf^Š$p× ÙK>–RMâë˜ã4ðÚÀ>_ÂâuR/ y‡D5>¡!‡vaŸÖÃ/ÈjÔÃìTÐÝÓª‡‰¤.MBŠ7†ß|¥—d?ÞKúùŽróü<%Cf’9†¨Q¦F¡ÒI½$d-дëèO³Y-2ïånä3–‹¬C ‡†Ÿ.ÇIƦŸ_Êr‚[Ñ‚¹ÉŒi¤ ØŸgêòè¾uF©&Üu¼:â{í­¸—›dyå³PÞF®¡æZs‘00pÜu5 ºÌŠñ0 U¬¼…„¿B‰N©¾&:™§wÁK¢$åæDŠ BÀ ó\`Ðeu*‡ÖÃG °·š?É÷Ü¢e-•aòq­¦~HÛ5­†�Ç&.uvÊŽk°ßÇÒû×õ·ØÜLaí™5ÞÞô�`9Ó¡ê/JëPÊ–*\%#À,•n¦v°?ÏŠêƒöeÉâ}®?Àh˜¿Ôï«¿ÞèΊà0�µ‰vAVb$ÔÆ 0À Íùód$Ð]ËÒ•¯�% OfaüY{U»OÖ;Éw~$˜¯Q½gçAüúæGȹ€µ^”ü'ÙVaÜBM?T7Á“æ�ßî*kª"¶#&ëáÒe?Õ©Xæx#á6LuóÅ.˜ª}ÑhÛݯÌ8ŽÏbp¿ìïÁ¬ùùSnF`±*:uŸ4€¬šv'ý›ü`ÒzvžƒËÐ?;G²^ÍàEŽg$(²)ýfÓnï|�R‘ƒóû5Í�öœJl7*Õ�<'qÊ•�’í�§ótÄŸÕ³ÞŸ¾Ühfy:Sj°?Ïø+ú}if†‚µös/p‡Ðªj¶Š‘zq‘.y~‚•.LJ»f¿=ŒxÞ0ÀÀÖá5˜Ù,fXEb¹­F2Î3äã.ÔxΟlGÊT+I㉚âËg3°NØÿÄ©eO¿‹ßkÓÇ#Y}…Dù`ývÊ0‚×G¡+ƒL艹H¯¡—£ãMö{ÛØZ*Ö»LýEtÜÃôÙÄ×wãöS(£9/Ó—ÑGÉàvèá²ã_Ï °_ÕV§¢ømÍfÍ%@‚„‰XÕ•\u0 £ý‚¨Oäz¶?²…-g�¸�Ñ#ØÿÃHã]‹^eÇšß²Žfd³=$Œ)þ§wöûçºñNy¡,ªKO‹n]�­EEäœP“¬ÁXÇH·ª;²‹W~ç¤9!äïûÏJÜC ]לʖœ5×Gì£8xVM¤IÄ5Ò  !ø¸÷+sBNˆ‡_~?mxZ!çŒ0p¨—•±ƒÏùôIsBÈZ¾g$`Ðo;*ÜV4Éw†ŒRz¨ÂùcVøI›mu,qU©'³xdCBêAçFìgÚÍÛ6wÊVzògad�Î$p‰íãáø£<��¸C™ÎüÂh�y+0À~”]ÌçRÏåÍ�y÷Š:»h{_@GgÚI¸Õã]¢¢w~­[-rº-`€ýª6�Íœ)‡µA2Òý�B·–#†S×øGì;Òn¸3YFÅj(ÂWõd—-‰rïÕ�kå)¥ç6ž¥5tÖ™þ}s'í½‰É–ŽÅõ5+dHaÿÞ™£X³–q%ßÊiÕiµºŸ|%Æ'¹Þ}véùß“Q�Q€—Ò·Ú·Z¿Îøvµ8f$àçyû¡1 Ú½ìÇØµ¥8"7&óY†Ô» Ü' ¢ÈU†šk…‡ñíëÈŠk·÷]}�’‚ð ÑlW·aý ¤is\ÖæRØcªÊǶTÇØSöØÉ'Ž!QŸ�eìÔ¥Mï®ì÷1üÊ×,k'†%ãF‘� ½¹•Úg™ z–æy§  ý¥7R¬sÞJà|Àû™6}ÿ-~�Cñ¸~� 7ÚÇUH%º%:{ZŠrÙQ0Ðèý€Ÿµ1`€ý FùZš²V!€‹ªÏC6Ò®«ý>ȘÑoŸ>��Ö´2ÍKL�y�? ¿0À~”E\+¡ +�”ÐZaÊ8•?.Œt?C‡¶ä¡¸=wºC{¥‰ÕG䘞AÀ;4nÜäØ=˜^Èøé3›—’”ê.ˆ?c}Çk2HmÑϽpA.ñ© `€ý(ÓlÌì³É+ëÚuC}zOªÊÒÁ“-7Mi¹|yƤӈç!Û—<À~ž�·¨t!àïbÌr«}«þÐê²Ã)»*¤F<Šùøy]ÅBJû’’@”/ À~ƒAo»òªî¾iù0¼ðÚÑvš‰3¶‘z�¿Ç@LÊæ ˜‘–æ$SO›Žv9ûnø{µŒK0=F$W5ÔÁ߉.í¨{5ø÷’’%³®m¦î4<ÒLØä­hC~N­]Èy‚7²AÅû‚ñÍY¶oÜ«ñ|}¯Aþi-¬–°i7Bƒ`Ç0¹š­ÈQ÷jðkùV§`¿�‚âm7#$óF…ù¦vÞò1Ì@û¶-0ãzõt„t)üú¥žÈÌx<ì×4Á„@íýjgšræµZô€CÃó•*ÄùYzi£ ÃWVœ¦3ºû}l°Ý9Û›:Þ�“ÎU�3+0JóEö�$ú-Š—Ue I¢O{ë, Ñì®rùÕ°¢QÉËF)LÇQßO” )´ó�ߘ�2* 0D³¢ëÖÌNåño@b /™jïAnBJDz'á[¦%ÝRª[|Á8ÜwJn4›–�ßþϨä¾r<C$½Ü¶BM¤uÔ9~·`¼±YúÄ#ÛìéúJËK®TºâÇCN„ç'Umž"GÏ*õ¸í’eXõpˆÞ�ÃúÆ9þÜ×çx÷Ï�wº™„õš¹�¾‚…„"�:Çïå?ÝèÇ6 ¸“otnÒ=íXÒuV ¦òb”ëHÌ|¨°!2p'+·€æ”p´`€Ú¢À|#´•BÆyHÚÇ´ÞT9�Y'³¬-ça(ׂb5¨Øó˜pXP°?ϲ§FnÄ—¡›“[PÆ®xÄÝF^'hºÞªö`µ§ú•žh·±_[`?ÏœkãÝór®±èy,Êå·E`öãˆò#Å�Ù¬¦¾ãtaY%‡ws0IJõÆ®¤¢^Yõ¸à0Ö‰"gRÎtûÕ°µ-•�fŒú©‹ÌQ˜€!¾a²Z³_–\J,«QR—°› øžž\©Ð©"ÈdEü�àô<ëS+¿iø=ðó¬öްP˜w${Ó×!¥£öÀùOpO@„÷ÄT¬Žw;Ï6u(ûæžêq{6dA½ï6¦#Å»Æ€Ò æUØÍ’Ym­ÁŽýÆX®÷ùó]VÀPºKIY|3á°*ŠEüQ{`øµüˆŽ?À;´¾`Ÿ.ä+\ªª”c WÿšéˆMÑ<гÁè|&$ ãHƒ%´ƒä`ˆo2ÅŒ$ËyÄ'w½î¶Åן'Ïa3<Êx§×¡£ú€æoéŒÜÙ `ßk–ã‚ ï?‰¼p2‹´ æd ñé p¶îú(’�Ô­6¨km�I`€ý ¦%FbÛá3yê #2••t=Ce"T»†IÀ5}@.ŸVMœó~Á�ÜÍ0ÀÍð›©5æH$iˆW–gDc-�ù%2Æ„è`^ݘ+%(‡ô‰�—�Ó’vد`g«õ¤2$ЖÏÏÖ´NÄ?Uó¦6¹ÁAªA`û¾�ÿ’6V2;MWÚÚB„ýjmiè‰ Ú È�f= ¿œí—>Ï’ïæEµaLÕ<Ûš¢Šî“;ûog{EûÿÇûÜ—x=¦T‘J~-¾ïÝ•£æ-/ßÿN<üÝüw^áûàç—ç¶:ëhñ\Cê\ßhU’ö›ŒZoʲsÁ¤^‰Ë„öÿ7ßñþ½#åè�lÉDzó…£W7#�êøÇýë3XŽ_GÓÆŸ¼ñ¿‡™ñKx_èæI… d2‡?áxõÆm³÷7æ/ÿ3¦´¦´¨î¤ ¤ M‡¼3>Ì6ÉaêðÑE½iuCø”µ¥�/Ih³öµö»G±J‚zB÷KzV“�¿{‚]úSÞ´uðENöö\ .¶Ï8Œ•UwæÞ›/9ËŸ›’’>–éû÷hRjRbesãÿßÉu£µi»y˜LÚOÅÍlµ¯ÿ”j¢÷ù¡>,> âÿ‰õ«ž–‡Ñ)îBëBk×ík®-†ü2393YÂj8c8SŽ #9e9e?¥(Ü[]ÅèïIªÿ:؇Aå–Ė„ŸÑqVh /ÕÝ�¤ÜjÞŽ&TO"c–ËšœÕÀÛŠ^3Àûl�oŽ/.hYHw!¢*M•ÓV–˜áF©¼á´2Ô@À/iFÆŸ)í ñm�†‘Ú 9½6ëBƒ!'} Tô¹÷eØ¥t¯èC(�B‚;8cûŸØ>ìÇØªÄêj÷t“O÷£.yšEsE Ë#'H�Ž„É�·†h>T7�³Mìßì#6Ú€•ÇsÊV+*å+X�÷ìâé}žßÅ”—¶ÕiÍ)½ Sî³ue\Ñ0í€ß³&-¿»ß3û’´|ºµuÌqÔžþŒ5Ê:pÒùväžý’ç\¶îcY«znk?z7jrÅw7‰Üð{Vî¯÷¬µøŸÖr·½yi×ìc•›;¥ïìÉíð£ö¬ðkA¤îÂßÙdê–ÌF‡…è‚@ƒ8晜 ›5®jò ð2%vê3'Ç_TöçÙS«K�5¨»–Êú7øqºÍ5fy—^…jÈù\3ï!±õ£�×)•¢ë °_Áº¦­ƒñ˜=h®.pd¬™8Û×>1bi1¾8V^lðú ›ªâRV›'6`¿·ÝŠ~㘣c(¶FÚktK1#çµôSùð[F5[² Z ûqP’äöLsÀþ<Ó"ƒd"?OiSlÄB½Zzlƒ«aì©ákvÆ"WÛü åœý/ë{ Ñl‰<ݽ=ØeŒ²ÃÉ¢Àzgb¢–ÿ[ÝÕ¡žh1`{A+ézä¡|žþV÷àÏ’÷õ3„;gù­׈O—su–„¿¿Ãd7RÃ;³ËàNá:àˆqWÿ �Æ·Y\K ¶|÷gIޯϒ¡Ÿ¿£Ü27GÏšŸáD eÛOhTª}ÔY~-ˆÔuô§ÙŒ)ííŬã.^ó\ƒãÐ�›½sÉòI¹§— ×Q–L‘.qÚê£ö癡:~pƒmöåþæ��)}ž®‚‹Í¬ªBêØËVpН P³²ò]¹ab™+ÛA<ŽtU+#e‰ŸÞpEj" Å<ùL \yö¥ñ,1�»C>³OC,kÐ;¸»3bM¼Ñ²§Þ«ÉÄU¡ÂMäv£–ñS÷”Z ·Œâ‰I(`¿�å¬ZmpûÙ#xxs-_ Žã�:Þ©*ÅäUÁ�-Q£"Ê¡˜ëhàØŸge/#vUiS‚`7 çby‚’ QW›ü¹Ð¼¦ ÖñÐT冣ÝüP Ñ,,(ò|^³l�…zýœ„K&'ÛÏêUý]ì*mß„ðéáHá&ÃÞu’›ñ¨«ëáç×\ÉâÕ÷TÛ$HKMBpüÄŽš ÀO¸»²¹†ÊƒŠ¶WÀ‚½K«Ò[)Mé.cËÙn¤šF+©÷íoÌø¾ž $’~îï!¬‡„Òo–Æqi�®÷5€_ "u'ý›ø` 6M5ÆBå° -,’i`ýø¹Cê 5¶j–è€ã”ß»àëÙX‘À~M a:¥—ÔƒÃUç§Ê2Öû(k»7Ub.ã�ú’ëêÔ¹&»ÜHBÅ1Àþ<y>|riº[|F0ŠIߤMš&@\€fáÖ‡då*rYÏMÆikÀ;´ÎÀ¡üi›j—Mƒê±óÐ ñ¦S¡´[Šö¦F÷ ´ž¦L#@ °ÿ†I0ªâ¾KÙi‘¶"£~û“þæªn ÍZà£ø…!ö÷ ÷•Wð«ðI"Æû½mŠ—Môn�Ð*[ Ÿô w&ýÕ•äÝ,úþs,•,ñ*¤�–¤¼ä %€ö«ÚÛÉ/wÇ'9°(�¨¶Z ©qd@ çaŒbïæGî˜Å‚a_Z4ÀûoMÊ�²…‰6Nš×؆¸Ý@‰ÏþÓÝÆ€ý>Æ¿j·ERUªŠcÊÙÛjÑáîü¼~NhBÛh§FbkQóŒøA·�úÖQsBøß÷Ÿ�sÀdZ5™,”Ÿ�q²Âè§ÛO­¥4¡nÔ0»×Eú�9!?\ÇáçßOÛàjäU‚¡}\l�Â>¸GÍ á×ò=}�€!¾mé ºžÌ4†Úfõ2Ä ‡'.‰Ð´¸£…›»�ê3NœW�Šz >Í:`?Ó.éºW.õBf�TÂF¦ÓøÊ¤·ad$¡Ø÷‘Ç�Y¢är<¶�ÅãØ( °eg!|â†ÅBy*ï^0¦—�›O]—h x—qÒÏäW�•ë`¿ª�sä«­Q÷| Ó#­çKä·°û}ǃP³Fã‰J.IášûC¤Ü"sð½Wù—ØïEŸ*»XNµ*OÄ¿#TïÞ_Ÿ}‡TÐEø8/þ=áÊ_"pCö%°N›-›­L[|þ)|!�¨÷¯gþý"ý¢ø ².².ù1‡ùöî<˜ê�ø9v²o‡,e !!B!kÈž-û.[ö!û’P„‡,ÙeÉ–ì»ìÙCdMQ„{ÏTs�Ûïº3Ý[§úÎû¿×83Ï?f>ÏóùÎó¡÷O`AÄÿ5"�¶¼CTw9“Mñ)y))S_2­KNFNv4 ˜^`óÔ…/Qå+Kýíê¹ÞOá½A��“»�ˆc¡c¡F"ShShÖÙ©U_Rì í¤í”x8ñ0“,ô÷™Ü™ÜÙ˜T$úÏ™�Á·àYGä9Þ§Ô3jJ _þ”άöcæÁ¦”ÿŠlq¾¼–("³že‚e‚]oÏíËš8Øþ7y¡ðBÔZGVGVFN&D ¢¥y=P�y›y­í¯1Jÿ:´ûˆÈHñÃùáÈ}›�ˆa•Áöt~�FÏvÀãùƒú6ä½p]’‘´AÖ™&p ²¢¦ãLÞ夘¤Ñœ˜eê¼H›Ñ] Øïc•ólëGF%ãÆÀt"+§ýSúÌTN@Ÿtê@‰G0Ÿy�b³WŠ ìgÚÌ�z‚&¾Ëm$º=ê#‡¢¯9‹(G·¤ Ï“¢Z¶0x;àcq 0À~£š—¦ªUð#¡îs—Í)j¿¨õ6ð“ÏCª­Qeª§¸ë®à-‚ ÀûQéRHVuVs•Q$�9g*2Bt']›¶ð¾„oÚåöJCó�à˜žAÀCØÝ��‰cÇ·(/$6œ÷«;#qø¸~t°çT ê¢/¾[ނܽCÀûQ¦Ñ˜%6Øg™]ÖµãŠ^r[ªÊ°¨ƒ/Sn†ÊlÙæ¥a§ß}ŽwN –ø€ý<;eZéD(ØÅw­]Q»ons™Ùº ÔˆOù*þÕEÅ<*»Â´OSÀ~¾é̯²óºåÝè¼½Õ wl/*íAþƒ°(™@b^D²5¯‚Œ<,;Úå캑ïÕÒ“Í` XQ<Õ×}èC1ºWC~/)I²Ýð@#a‹¿¢ ü„F+�ûTƒ²,ö)Óë߸Wãûú^-’âS-ûìf#3®DzAö50 U«ÓÝ«!×ò­�r€ý>–‰·dÚZŒ”̘Þ^`|9Ü÷Á;®gQG[ä"¥O¿T±ÌK÷'€ýš&œ µWí-wg�Q­Åô»;tyôì«Je’¸Ž{êXºÂ¨íªÃLz7`¿� ¶;úázÑÄûpÓ; sÃnÉb?Í’Äô§|VU–0™(Vlß#¼Xg`¨fáJåwUÂòÇ$møš–3ð3-„â5I§ßÛt�vÔ =7Ñ—éØß™úLo>ºöÞuWâ Cã°»>ºS©ÏXNHD4Þ`«àЮÃZÞsëì×4:ì]xsÈ&±ùöá;rau”M7EG>Þ  �v»wNÞ'¶öù‡´*Àû^#yeA‰KÏ*Q¼µËzû…hü®ÆÆƒä…[|±†v³$y¯Ä‰%¯Õâ†Z–Ë�`Š«•dÑxú…”íìMÁ¸¢ìŠŽEcÑèAï`h.š{Æ­9`¨efÐrÁ L˲wª—I±µFD§v&ºx„ìíNq2Q£WÄã^5y9Ø�±'¤”$køq8´æ¤v/û=â Tzs•,)‰ ï#äCÁGD¬¤iÞ½M’xVäÙ°u6�´;;~Au5›ã óA³á„ù½Œ°ÖóE¸<ÇêÒÔYZ¼qT^�>—Š?�.É'�ö�ÿ…}–ë]óéx`±êm»ð¿Ï†a_φE>¿µ‘èx¹ƒí¨wØ­D]Œy™ƒfÃȵü¬Ý¥Ö‡üOöRaC�4§²\wÅ{#pT©Úßà öíCWãísÖ#Ô¶ °ï5,e¶òn#kcÝ\¶æ¬%ü:ï㯛æ©#„w&pèLGÚ%¶}¤ ôGìgšF”ûc*É't÷»¦æ.aÕ…Cû3OtÃ^6[ô—‚a^Z¾¥€¡–íW¦D§S¿¢h‡:lŠÈWs뎫©3eLÔI+´ |p•]Jº%?ojÙH§«ê{µPmÇÇÐExNhˆ’Ú?jNÁ¯‹A«âì}šâF¶Â)0`€}¯E�\s¨ÏÒæ%—H7Ó-9bÑuŸbœJ”ž«¾Ÿ8£(ÏÚ;~sRÊ  0ÀPÍZˆ¯Z°:”Ç¿†ˆCÂÛ9ú�'§ÜR鯲«³” ]±  � ‘3Â:Ùy…4¦E£­ a‹B¯‡[)e‡¤¯Õ)e³jÇa—µeÝåYP¬†x<†� +aöçYæô‹›¹ñe˜&¦T±«îq7Á„M"ZUï®õT?×ë¾äÉÇ‘ØÏ3ÇZûx·GüÜël:î‹r9­‘Øýxb|td1{�TÕ¶Î,+gño�†Z¶ÑØ•xWÌž[Æ>™ï(CÆ�f·Ö³°â¢Ö¦×ˆÇd>Çz 0Ô7lv Nù€¥{e5çÕdìÆ'„¾gOn™È™"#ÄpUâ�ðÌ+ösŸä3ðx{GXèˆ1ogÓç¡ó��sŠ)ÝW6?Üí8ÛÔ¡äýðTØP�ëã!Sš=×qm)þuF´^¿Âû1¸ÌZk nì7ÎÀBH{Ÿ?ßeù ¥©²…�–Å7�ª ™ÆtF®åGìø 0„õ]ëÛò¨¨P�ëAœ}kf"·Ä²!�£sX@g/Å50š çc‘> õmS¦€‰t9›äèŽgx[|ý)Š,Nã}‘ ¡7:EôÔï0|Í<‚À��€ö½f6!œp?˜¤8êÌQ8YnÌÑ’c~”°Ì‹c kRþm¾Ãε¹æ¤Ùä€ö+˜¦8©Uǵ©“ÃÞ#ÄF²’ÎÇ© Ej×± 9oÍìSȧV“d½]Чpu 0T3‚fõ9RI(ÉêòK1ûX3:Ÿ{L1!ÚØW6gÆK Ë‹ú$& )hɺìW°Õ:Rég0é—¿š­i�Œ/Q÷¢1¼ÎE¦Nhõ¶]ð‚N'´+õm!¢>µV´Šû ÄEZŒàãûzŠ_zû¥Ïs†¤ðì[mXÓ5�ßOSG÷É�ø»Þ^ÑÐÒñ÷øŸ÷å#®ÇÎW¤PÀæ%"ö¼º²T½äe�÷†#¿�|7†üÍ+ò~ä9‚ÍÜûÎ:Z|ç�:çך•dý†c[2yœ<#RÏ%dBû‘ß›BÞñßí"ù.ÞÊÛKöI];%ØÄñ ÿÿüMÖâ×yÊ`›ˆJŠ¿f›èKÚªÓy¾Dãh4$r}…D]�hP³ö�¨¯©¯uL’M’Í"B£�;"$šsÂwMÁÆúÏ’zè—œðŸãšãï^¯2g̼ô%JFôG¾Äã-”äSÖký J’ . .ÉäB$ž—¶`øÿgšPMèâËÅ—&ë}5æ3Ìgr!ÅSÿ9oeÞG]z‹ˆ»Ú§¬NºAC¦>Åø’—ôüÖ4vzí¿RÙIÅ“A‡ç›ÐÁÐÁ±“.î÷Óm9ÿ›€%Á’Mä¥Ì¥ÌÇx�sƒ¦k¦kÆ•\D¬B¬bPû× «|zD yçèÎÑ!Ïè¸+´DE—ꧨÞ7ˆ&R¨ÑšPyê'ßáèÊO¿zZݨùÌš¸ü\üNÏì3²ò™ÖÖE×AgVäkŒ}à¨ãͨ]»ã¤Ox¬ÜÎŲWõÜÔzðfÌÐÖ{' D¡ÿ�3+ï×gÖZ‚Oµ„·7/í¬ru£òž=ú!â 3+r-¨´»ðw6™º%ã±Qú@È ^‡I·(Är�§Z�¢ö�Üé<”“æøû‰§Õ€ýyVb~¡±}ÇLI÷º ^·‰ú,ÿÒsƒPu¹k.&=¤VÞã ñÚ¥²Cô}€ö+X׌EA«;!ôÊWúº¡£]m±ëé–KçÆË ôæ÷»©+.ÀÛ<¶4œ{mÉt�‹ÈJ°?ÏôÕ‚¬2mÞùšt&÷y8 /6³«ˆ¨åâ.ß]Å+p¢ag°½nj™3Ç~<žtU+% +y‰�€AUj2Í$éx€\y6î… ¸¸zøÐµÙbÀPËtö]F‚_X�l¶ìªõj°ðT(ó»^¯e féžÖÃ(ä•Q<2å.4 ØïcÖÌ7y}ìÀûî^\Ë‚âøoîÔ •bñ¬àÍ<[£,Æ¥øÐ^ï2`ž•=‹ÜQ¡MT¹AØ8Ë7˜¨�¾Öä˃á9�»�¯€¡"7íêƒ`¨fa�Q§²SYesMÕêçÎJQ²epsü¬½ª¿‹]¡í›=6%ڤ߻Az#}mã#ò\ÀÅ™<^mW¥í,Y©až�øAsäï„»+›k¨Ý©i{…Lù1»4+½Î§^…3µœèÕ4šK%¸}øÆ\@àë¹À=²Ïû{ˆj`!¡ [¥qÄ<š�«=Í�kA¥ÝI?Â&ßYÀŒR.á  Y†æåË?Ó³xôärÊ ® \lÀ~ÚçMÐÕLœ¨"À~M aaÖIìÁcV¤†_Òù(?Òv{ºÐDÆ+åÏ•é“MÖ1N‡¢ˆÇûóìô“� £3ÃQF;Ç…o±è¶ICý$„  þï"ÁJUh²[#XÇ, a�C9-Ò–54N[z14㧆}%š˜Ciß+Ú¥ÜÑÓ,Iñ›¿Ã °ÿ‡�eR9ô&y»EÚœœfå)6Ã�µ‹ð ¡�g†8ß2ÞQZ%¨" �œì÷¶±aüLâ7ƒDæq¸šdû_¦=·MÚ�3$žd«d‹W&ë4#ã§P( °_ÕV¦!ÂŒÃÏ?mtT!ͳ”Âo°ÌÖ.ètô°>!âZ¾e$`ÈoªüÖ§µ�“ºBý¢/Ò4íÚaøéZ‘ª1Nd\� ¬ƒœa °i7oÙj•.vç¾B‘ñ™Žã-¼òiè‰7N8ê¸KPD*(Ëx´–`ßË8syE4rÒdÞ½`Œ'.!ÞÒÕ�ºw¹Åí]¼–Gn/“KÍ‘T;ÀûYmœ”.G´J=Üõ‘N•´†7ŠOÏä{Ì;îԩך(e‰ V†�r%\œEœ{eêBõnÚ?$ãYÍ�£Î‰/›{EðÇÿ¡—?˜•û®ˆÙÍús¤ ö#ü°b|?Ýn;j;jh)Æù]â�‰P]ð_“Ü�Ü0y5,1,ñc3<.f3ÚðpËÁÓ+­aê OîhMÁ^Ô#lŽíýF F ÀrU]iMfè~ЛL‡÷CXô‰e/ 3BnУüIðl¶l¶Dàƒ{ ÷R^ö¤Á~:óaÏaÏIó�‰¿MoMïp;´ôÿo¹ü3OLáA‹ÙK,ôcÓä^òYdžMr�$:Iþ/ç–¦„Â#ò´üiùf&—f”Åo¶''ùOò¿°}8úpT117O3828r0ö½š�š�zùç(ŠŒ)<®k`„X·�€–IàoNe{)vmºÍV·!Î…ë-ñ§õ2IÖ}†£épÓí®•Y}Ôª:q`÷%UWžSò<´¿Î¦ç|Óíè ÔØ[¶F�úñÁxhÒ™¨ÒÅgÂcïÓ›+„¢¤öãl±FÐ-¦°¨œXO:�ÞzÕ’€‘ÿ\Þ\Ÿ)±P~ŠÛ¨§ ãùL“—€}³Y ³'²eÒ�axêK‘š7/„Z¦¡¸úDp߬úXNÕ§k'”hO¼>ÀC6ÛºUûþvnÃúø5£`Ÿ,ªÒ,cªãì±ÛìdÇQ¨9gÛoÑÆûu–öë~éËêÉaѰQÔão/>xÚ£ÿX–“¦¼]•†h³Î%–¶ìž‡`?Ò¦ÃßÒá7p›·�«u)  r²� jzŠ?8sFŒrÉ‚ß]óCŸ‹¡`€ý F9w…²êºáªûké¹­·”?xj1ºìÐÇñÒj—Æ9_gÞæ Ä/ °ïeþ6Ïé|Š.+-3$œNŸô÷D OP¡}þDÄŒ+Þ¼µjð;jHW?`€Á�ëhLèö�ê£ñ3g×ÉoF×Þp«¾$râ¬FÐC‡IO¹W<»Ìy‰¨|(`€}/S¬Oêï1J+ìØ²EÏ+ƒæ¶q'KLSê/™¾‚¶kr?aûhõذgôJ­ø:“l«ÞÊ?105?mR††R�Gþ:òõ-©LJ³çÏÝѺôûulhÐÚGvëMÓÇáù9 ãi&ŽÐndšƒü-FÁ$­K2âÏÒ¸Œ¢}ר­U¬ñ\-!VB�®4wµ¤óÆ8ì\ ñ¾¤Ñ$›õ§›µÏ¯ó”´ –S+grœä ¨•ц„¾`|ÃÉö…s5îƒçjþd{kÙeÕš¶%T÷²¨„�É_<ì\ q-_š)دc™‘FŒë þ¢i£‚¼S›oy^ ö|ÒÃëZPU¸EîÒ+–'þʾ°ŸÓø»+ïTÀhŠí™Cäª0Ý"̇/¿.•!NORµ�M¸>|{Ùr:¡°_Çú[an8ŽÔ‘.tÖüIî�×°_$ˆb> ¯++|<-”gÑÅ¿P­`Èf¾ÒŲ>Ù£¢¦Ü K‰xɆüµ‘Š0’© Ó”-Ï>¾5ô¥ãGìk¦0Ý��®²sß–¨ªãá¦6ÙWÇtASįþ7–6^•j¬¥».À~N;޽�Ôøh�èAñæ‰p Ÿjr÷Á¡ß#Üi'í¢®Jº„V½ü_`ßjį Éqè˜EòÖ߆2�FÎâ(¾;È 5›!Nåº&»R… rYÇc=åÃú‹œ 2±Û3áJ|a¹iódm :‚AýÎi2Ðì×i C.3Ô§)æ{�)®iTøQΜ[yèYP\{´ÍÝG;Û“ìŒTè%‘8÷t_ ö}¬œ„œøî ^Ø?Z3 G‹¢qdºs™,&¿çwŠO9ïÙüBEõ2£Öˆ#™{Ã&eØGŽ_±gÅË©¨`�½=}XoøñÜN¢Oó�\ð™êx¦¦TÍw0™Õ «qxãè¢Ü"hŸxF,Rl# ¦FpûP…*6ÍÜQÿÚ†ì |¾k#Ú*)Õ¼�唳O`´Æœøa½aĵü¨Ù¥&G\xÞM‰Mc¥4™b»-ÜíÿL“­LÎâ7ö‡®=èò\mBÖêŠü·ì[ K†¥¸SÛDG-ƒ¥1e¯Úù웆9*O?þ­ñ#tózC­"›.bšÀö#M1À¾ˆšR´üø¾ŽÉÙþy-¬j¢\_šÞdÎNÈ«FÃÞ‚~Tˆ£²k`Èe»¥Oƒ¨^ÓõµÒX® HVp¨�É+0¦à�W_¹ÞÂûÉöÚb‚W äœ)`ÈeCí¶ròÞ*°"š…¤tïrª³×mp;è•K®B6£I½O»~0À¾Õ‚†œ,kRT¸Ž‰$è«åŸ4ì ðÀ#£¤Õô%æfš8G®Mˆi²YÑ=CfËâÈ7ÂâŽý\„”ÈtO—LIbpãFõ Æi¯žÓ£É´¼|Vˆu<ã »åQXã‹�›s©‰”«ã·²q)Ü4¼ÖÖ òìCqtòß/7Õ�ŸÒåd X^˜”5ÊG š¹Ñåf»u,Á  $vä uü¹ƒu¼Ýç™w· kSÛÏ“;óg^¼zX�¸–zf  [ÿfº†ç¹I»¸ãÑ÷X˜ŠsÐî¡0ó¢ c€´³r�Wœ 2 0¸-œ]?ØL.¸â¤]£-�Ƭ†]Ø’òÄ�0÷ùóY–Û@¼Ë#’ÂÈFÂaY4½ÈÃöÀˆkù3þ n=^N¨·Á²²”cêÖ®•ÓþëBiEýAéL(—µBrkô³±Hž†ü¶&žÃH²”F|jËÁ·%²æY ;„á‰@âùwªm¹tT1\õïz¡¶·Ø·šþ8ÿã'‰ó.�J"Í9ÕD|Æ�’|ëý(Š“Øƒ×Aëª ’´c€ö3˜’0‰q›Óä¹Aç!"ík¢Ög© U«Øì�Ó»d’qÄ)æ5Èlí Ù ¿‘Za–D”†xyé•�E¨þq—(Æ�G*ØwÖ¦Ç Šs{DÆŸ“Ñ’vØÏ`œªb —k1³4Š_ÏT6ODæËŽ9RCïƒHŒ?´òÝT>ÃNÓ÷OÛ#A—*cZ©]z¢\eTw�'wÕ¥ökûÅÏ}†ß´À¬©Ê¢�)ª  ίÕöRP#3øûñ>Ïˇ�Ý(yJ™ñÛqìH‘s”GœŽxO<âÙâw^ç# öLg7Ú«iñ¬U[¿Q*%í…Ž®‹g²ƒ5‡Ä^Šˆ{÷"Þ7µÿYM?Öàbæ‡ÓdŒé›çî=vÖº÷µÏz¦µ6‡í½êéÒkÛÓ[@a\:·uM�Ìôèmô`VFæfô`9kÓ¡ü½ôß. ¼Å²17sBØÀœ¼ ø�þ›?ào<à?^žÿ¾þñ|åååââ£prqBÎqŸãäâýã}œÜ¼¼`zð?·„¯?w¬¬¡0zz˜¹¹õÿ{ßaÿþ“>ˆwN„eã°œÉeŽVóñº“ uØ�ðvœWàÁ�šúâ!Æà埳ùŸú^ÿ¾ýŸƒŠÓ<Œç߸¹Ú¯/hÞþk¶0·0eˆ•l”l:Wà9¡®ƒÇVžµ]úê‚ð잸(¿—mö^·ýl O¡Oe½Œµ©k÷ÛÏ šfÕ~ltO'íe˞н¡l9ž ð ðþPx*Ú*Ú¶­:ñ÷ƒZTEVEæ3ì3Ì=™Éûõ˜×˜×0øÍýÿ ÕÕj‘¼…Ç�f/íÛÐûå{ñºÖG8Âïá ý_’ëPÃ$šááñmñm FZàœ5®û;©Ý¬Ý\|§Ÿ¥Ÿ#�˜v·`·`•×Yx x oLþœ §ƒÙ[ y¦6‘6bϘ£DYPp±Úw’r£ñS¡Ôa=cÄßß"%¦nunh£×mÜU…6×ïþÎé¡ì˳Jbòš=û¢6êî ì³|þÞÄo¬Žçˆä�”ç–dM½T‡õŒ×r¢�z°=�;Š1ɵiU ïmI·`€ý ¶Í;Ëæ¹$pkÞ¿,N–Ãø1ÃýI�iéAŠZ>Ï�c| ¹½€!¿½§a¤V�yŠY•t©VƒƒÞ],è܇Bœº—ô�ÈQyµq„öFåö}låòÊJ×tƒSç&ã-²8½Æ’0–g–¹•*—¡ßj`8QýÆK"Ô °¯Ùï8}öot)› ¨¤oi6 ³@¦û¢~“^ü$O«Ké ÎÖ‘�pvâž5zé¥px×LiñtsótØž±æeí;óØ6;KR6¶»ÊZÖå¡üìÝ(ô¶óV  ™Æö¬\÷¬Uø{kñmm\ÜÒù½ÌÖŽÒyæÔ'¿Ãö¬ˆkA¦Yš¿²‰W/êŒ ÐyRôã¶é&rR­‚+ÔÉJ oÐŽYÝ a§>{ÒbüE`ÿ>Ë7¸Y_‰¾¥/­vŸ·SWa†gñ¥¦·‚„“�n‰±ó}¤JÁµºÀû¬cÚÐ ¿–Ùž€æÎ<(a 3«ÊÓd¾Ø¤uu¬8G}n·“ªäfRË]À~m{ôÆ"6DECx•´[ó�TBÊ ê+ù’~4+7®]ŸPšß $‰iMÔìßgJÇ„sÜQËc[¤ê� ?ô.8¾®Ëw œcg̶V7N¿TÌÑ[WÓ `Èf‹dñv­^Vc”m&(z†›U|_š¥î}#bÆop¥Õ_ �;‚ÜÕ ±– –RKlŸá3t_%>SÌá~X-‰xžŒÍ06®)‡wv‹ÉÍõˆ›¦ÿí£j»ñ4Î�"J7†–|¿PKò¬%½?g¾iv–ž5=Á’@̸—P³@ù°Zq-È4{ëßf¯´i=ºŽœ°rx îtSØ5Ú>#�zfq0ãÚ¢6ÊM¡±:`ÿ>Ó�Ç÷ª5N6ýèªëÞÛsך¡‘UV@>g)b7Çæ<5++ïíûf€!—Y³íFâ^)k&‡`Å.ÒãÓk,‹MÄ¡éÆœu—(Nù9ž$¬à;à4“rY­ê®ÍÐÃCⵦmùnE&p‰ ‘íý*ƇL�SêϹĥNNÚŸì×±Ô¾ƒ5.3Ô]{G�æÒM¯0žÀíjÞbL%\É—+e„@R©ÿaï¾Ã©îÿŽ›Ìc¯Â)R„¬�=ÊÙdgË.DŠ$²É&#:v%{d“™½ ‘̲éwŸK~wÎ]·ûºº¿¥îÏõüïqu®ëãêüñù¼ßçózkYöß³üêÀMÊ8/é¾;85“al]^±ÚH µî,ÈÎc™ËXÒÈ ’ý!nˆ€vØÌÏ+è|zâI‰LC¥ÊI1búÇÌ ?kÎïïb×(;FøNõñÕj·/ã߉BZXÞ‚ÿ�íݨÚÈ‹ý8´u«EV¡Hdžú�-ÞŸQ«ÚŸEV…%|8)_&]²UJ¿ÿ^Ô�DÑDQ%æ P�¸bqvzì_“™•™-;ÓÓÓ�krÕdÖ% XgÇÁâž°<ÌÏTï6½Îų=ažIªíÚÜ^·#^îuªç¢ên•2¤Pp‹",†u†õ¥ZX tPz=c‰Ø^lô[F[FvÅvÅ�MÖ¯¿�Ù%³KÏIòþ>ƒð§ˆµ°.žÞí´uà ºÂn£ü5ÝÑ9ê7Öÿ,ä%oÛ9XvŽ-[’eW™aj$hù'qrn‰ D D¼‘�OäÓÓ )R†…“…“õÃ/cÉÜ_ôuX¸Ÿ„Õ…Õá×™®ÛF)m+4Š<×ó9â&xÐ:ü{­EuedNd”í܆ì(-ªE.²‰ HýÙVPY�±X´ãúWÖ™8÷¯3Åì^‹n‡�/õêóp<U’›m­3Á_Ëaš ÷#lä£ ‡~‚.:'·©oÖS©j-“'%V Ýä P�.ë1·%ï›)èA¹€ýšæCG«Ûv„¦W‰‹ ª«¹%Õ×ø`,犸KB5˵±sµæ¡v˜A¸2C€ý÷Œ¿¤ËûÄxo�þföž`ºËz�(<„¸)¦ï~ D�+&B”¸±Ú‡zÊ0À`ÖìÙ“QÁ´ŒÜnU+”|è|¯—»P-­/嚌¥~²N„–ê³�q„�(€ö¿0ˆæRÜFýcBò¹—hÔw4 }È&Ü[BÂ=Œh"äæ±‹±ñ‡û½m°+o©×8C›àSÚ›¤×WnB©£¹ÎÑÑGÉ4°Içدjs£ÑÎüŽÖol$9I’ðÊK¹«@5]‚GâCeÚW·XCg2ûoQÒ#ØÿÂ(ânç¿ÌŠ1µQ¹ÍÐÃêø‰$æÅ¿=»°ßǸÌ×ð‹Ÿ+Ñgno0¬ t´-É�_'Ô£¬1WÄ73,{ŽlåUZ;h�~~ÉqI+¬nº½Ñ,©±cÔNª�„rR=RîþeÁ-_Y'ä‚›áúù}|SLåt¯"’€Þ†f>WÌƒÖ á¯å{æÝvømM“ÇþÄcÝ^3h;M_@Ì,?Eý'Gä€+v—!#™ç‚ƒ«9N� °Ÿi—4t‹fÛs߀äýÆ9ó/¬÷âûbD ëÒ‡D¦1=1›ÀbZÉ °egs9…´³yÓå—^B’ÀùàM�+WÆnŠ4z,%Y#¢ÞËí¤s«DOs °_Õ†ÁLŠx‹äým©4 *9c¸ ÍÄ<÷î^ƒÝ‘"SQ¾²ˆÖdþIøûln^½bIì�±§Þ*mž/¦ºÏ†ŸSØ"ZHémžr冎ó%�v–51‹ZààvaMwyöl â<Ä/î³?Ÿ•pvÿ}vùdej]›’çp1¹ü¤¢|Ð}6üµ¦ù ¿¢kÒÕra[lÇž'GÛt0m5Jz€…(—… Wp*"î6µn¿r(5¿°Ÿg³•|I¶Ê³j�k¦‘š.Úà@xÎåMuY€žµ�<½Ü�!ÜYæ¯û1v}6Ü Ï�îÊM‚?IZÞ´B±¶Êb<_?¶eavùú޽+(Ö « 0À›mjT-_Í­]–0}ò{BVôÄŒì(cÜ6#ÑÈQùÙ H³eR@k`¿�aMÑ/ï D8Ê;Ç7¡Ã(Zá,EI³&^Jµ (Ì6}Þ30À~¦�GÌQaײY5‚‡/·)÷a†¸ÚóʇÔ'`÷Nœ#}oÍã©ó¡ËÍD0À~#�º@Z.í�‹NÖá$‘‘Û¤¡öÁKâ¶C�ÈI©_”è,(}r›+»0À~”^Ï¡ò+Q�§áM¦Í àE$«SæÄ Y²&Y5éo!„¶uÌX1†m÷iú Ÿ:³J|)¶JÖ£BXèØí�ûΣ^Š3îXŽYÓ’1ÏôìG™JMª@w‡iz~˦Ò³bÅz¹¯ØR$ÇI�Þ[¼ÑkÖa‹gøhmŠØÏ³ó†Ev8\-¨CùœR¼±…­y1"¨‹ømÔ[ ™,RËœOÄ6gCÀ~ëë½gÏ®°ù®þcÿô”µÙ8sXûašƒü=FB'w…$t �¾n¤ÃôU“¤e+ü¾Zrœ5jKi¯•» •/òAûjðçw=…^_Mبz¤½Ê^؈PB®–Å|œ=¨J^Ÿ#ì%äÝY†¯ì«±íßWÛ{‡»DP‹‘°»U¢äéNZÂPåAïpƒÿøŒ;Ûþäo#ÅÁçvüËœDö’ðÞÚ«tø]ø»ð�5ü‹cVž†ÕÉu�ЗЗµµèª+¬;”L°®šÂ�kj•Ë‚uÜKXp·¨„,ʈʈŒÞ[.Ç8aï¥S“­µzÛµ÷» tål1elÃ*'-' š�Õr½åú E¢µ½Öq¥å¤åò�ó�ñ—˜¿676wB0ÂÚß§s_}©Û„Å•çeìjìÔÉÉÃ4_Eñ5Ùk²[¸i´ì´ìÇC¾ ´¿WaݾûÙû>í~Ÿ>�6êwÀÕò¶.ã R4ã?hŸþ»ýµ…€ý>–Ee Y� MäãÛ˜ã¤yÓÛ±nˆÞ6£©Î«AìÖ)–'þÆ©°_Óx¢=ÕvJm) œN†*–£xDöXõ‹¼-’g@5�“¥û¯ÎÛŒ'·öûXw“­† y”3•=3Ô3XíeJ�(Ê]âêâüè‘X�<ë6ž™ #À;læ/W©à÷tPÔ‚­öýc¬žª([ü±5‹ЦW—2Ž3× Òû£˜€ö-SoФ¾sÛ¯PÏÀ/Ò�áòè«Äjºó:B5wè 8Õ+Pßï8¶ökÚQ´mh�Ï ÞÝ‚�c’~Äžµ÷høú¶"=)Gzc.J¹…•¿^O* °ï5ð[b ª“By«sa' ðEMb¨,?Š›f Ó³œ§±^ ˆ[(?Øá²LæhC µ‡&5üg™ˆÄ®ND¨r…ç¦O½š1à é¾uŸ"Ñéñ*¥1`‡ËLŒ( ¸–QÄuLó?*Zᣩõ= Il޽~Ãgg{”B†T…qóÊ›À~Œ•àƒo,`…£Pã[’¸Xïà ¦3,“=|ˆÝ±E²ž½Ì&j˜³Ž: ¿×`^Œ†~ô‚Ói¬ìÒRzÛ9Úƒö¢§vû5Èæb°œªHR¦«OÓY²•_ ¹˜ˆ5Œ$Ê&„¸Î>`�êi<6p¤ A tÃÒá¯{ û÷x?ŸÝkM³zEâ–_pìeä)ñƒÖ†á¯ågÍÂ5Ǽ{>§��ÂNu4Õa[°=ð‘C±¢õÆûîHJ¬¯ìµpTx®Ø÷ª<}A«¾¹ÁåLúºÔY¬Š[gÞÕN‘yðl£SMö5 m¸‰éh÷ØÏ4• §䤢%Gã¹ZF'»§uQ+ðrý):Sζr¼©3é|Þ�Àá¢æþ°ÃeŸŠB’ÉÞRu5QجðJ•2_RR†¤bW\�nä\w�˜Mö–š²ìpY_³ƒâš’¯ºí Šh†o-ˆ˜ìnФôõ#-Ôj…9Ö¢e–Ó¥Ï#Ø÷ZHŸ«Meª:+¡P²ÑågÇMÚ‚îa ‘òQ1Uvâ=ÎÍ2¿µ2"¦“`‡Íêñnšœ´)ˆzG"Hâ,^êÒÍŠKz˜ÎIøš©Jö®ÉV̼„Œ{wÐJ¦PrrÙÁ?ÇCdç�Å ò'˜5ä’ã©ô¿ùô‰‡¶÷Êêó<§0 ƒgËóõÕ, TÙOzlpÏ�*˜>C™�mópØ$L6ncˆGÿÊsü¹ýÏñŽŸgÞi<ÆÁ­TIkæ&¾Å“…Ëñ çxøkù·gº1tñldh{�uL<{ó´2]A6âMÐIN¤¾BŽæÓ¬Ü*c|!怳î·5½ Äâ¶=\õ+õåÒOª‡£å7¦Æû²LË”’dßxÁ�ÛÏ#‡ ØÏRÆîeFå£\!2$ ›w ¿‡°<ŒS{) A1r¡­ôµ¦@«®[ ÃSÀ~žÙ–[G9>ag^¤×tš‘ÌhÐ Dë<"Àv”;t牢҆�ð{ùTöÕAÀ—-×´ÄF 8C3+19üN�<µ'`N²\¨â01c"S§R D¡½x2 °Ãoh§M-¤WñéÔ…[qKôÞ þŸy⳿FšD øbO~ùä^ Sd{=ÚKK¨l p~}$ò�m›ó_KõOõg5+Pþ x–^C#,\FXUý—l`¡òÝ‚î6¶ ÷d/ï[üµüµ]µ*CUˆŸÚöÂä¡-Ý+o>Ì7Œ–ò´‰2¢c°Ô½Õ½)&a±'³'kòºíÕÓ%A+A y yy×ÀzîÛÝqºã´ön˜ïÁ|g® +}e7á�ûUþF»Ý‹GŸ›—^�ìƒüÙ‡wowˆ–`Ñ6—ø”ø,W˜ö e;dþ“XËXËŽ¨J¨JxÞ…Ïœ~qeq%ÝEPí6ñmâÐ/£ ÚŸŒ¬¨[CÐ!èÿÏÿ¼7êÑ“¤HU‡Û¯€huÐ3üwûGÌŒ 0˜ux»¶ \eQP Ò"±w/\H'yÑ’AÑ Í­¢1ê}ŠŠÿ°Ão+âÙü÷éà›Îþ�Q•ç‰R9hâys/i¾Ê¥"ûˆìntá¹0À¾×Œ†y¢ãïƒó‚„O@ 2COÔƒOys¤h,‚\Åî6º÷Ú—gã§د`ª‚øf¯\GÏõÞêÃÓ—µ?C¦Ç[¾ˆ†Ã<þ‰H*±œúaZ›ÈÁ 0À›aב+Oâ‹R€çß¿°3:ê õQG»¶2>ô§ ·Ch8‡ˆ’ 0À~;[ª)–,R…òD»àíDYÃHÔ3…!r½ÛLÊ8fš¸.©¡?d¤hIü·Í‡Ï­ÜŒRæ5^® ‚§Aü -™½gûÙÏëVýÓƒQÇÊ^¬�‘…tHžýÖ³½Œž©%ìßc}^c‚m·Ê&qL 츴¤*ºH‰ÃŸkÀç\ÔO¨»ÆÔf!‰m¦ê¿× ÿjøyðë“kÍ”Xö>öïT‹:õMVųYtúÄ^ ‰ûvŸ_¿FÇ\¨ÆÇ7[á?JºV·‚+sÐü߇,TháQí�8(={ÝSS`cõÆgÔ=5öE|ó·ŒOùõ¾r6Ëþ5:úÏûÔcœq^R×Rslˆœë;ÉZS�¿–cùä½Íl1¨{ý¢¤q×\a»`€ý ¶Í9ÉîõžWc:°8Q�ÙLLsû¹”ö¸\/I—�W�!WrîóNÀ¿-S@ȵ& ”C…«´™©=ÅBÎ}ÈÇxNõšÚ‡äãýŠ9¬3&Ïì`?ÆD:XÇk][7 D‰†u…áôô�lrËÔEôîÏi#»’Ýá±…âêØ·l ¹ËØéÝÒc2¹«èÍÌíÓyO¿‹ÉÍ®+Q^!uÖŽ‹`ø?öî2ªª´mà8%�4‡RÂ�é’n¤¥äÒ’’ƒ„‚”t Ò¥t§HI# Ò¢€Œ€ ð>g!ïÈf˜µ|EÝëÿí·ÖYëþ°?ìûÞ{_§ëiª+¿ŠAô=küÛ—‚Q=sÏqËgÚÚ–ØNºg…¾'§øÍÆ7d×â2N5“©£xmU�¯úã÷ãú·Üwaðu޹ge9zÏZ‡q°–í-Ë;7>U98ºÏýö1è¤{V赜¦Y˜?³IÔ/ßå%ó ¢v¦1ò�LÖ˜j´ñ+ØßÀáÙÊ‘Ð_¾`5ñ¬°_ÏŠ�¯5ÕÂïÜ”×òàDí6T™c[~© "åfo؃cêþŠ”ÕJåëœãû¬a_*gô9i/ ý¼‰âÕ„®úå*oG¼`»1o«3Á·Ð´öSHÜ[„ÔäFÞ>8f/Évü;ÊZž‹ÑN]ŽÛ‹DM ó['½£ŒûŸßTîÍI‚‘:­K_öGäaÞm+yhyh�ÊÝ»­z5«L´ü5F|Fü Eayaù`SH½Ä"Û�Å!=Ä¥be‰…ÄÕ«×w\�£ëaÅ›´~´~Y–uKêu ÃTν»xØ@[ÙäAÂëKYœp !â"âÒ¸BZ£_£—iI?¬")K.KîJÇ•c¾¿/i i€`j_ˆë†w ’½öA+^AÅ0‘ß{­ÛÒ#©èügo<}§ %€bÛcÛåéÂs\-xþMc´c´Òeþ9þ9F£Ð½}§Ñ¯ÑïBrmxgG…÷ËÜÐ�¦è)�~0s0óÿ¯íÏï(·¾~MN›“j}VÔ´S·Dý¤³ èkû4ÍÎúÕlÖ€Ôw©ù¼­ËÓàݷʾÉî•éø¬KËù®pË0×0MµàûõLGÿÑ4Ãüƒ—¡OgbŸ³÷R ­"¯r.ÊÛèÔ|{.bZZŽ[€�.³£Û�A«j#`GL\&Ç ×Y�L†3L¸ì#Už�rm"]PåÁ�Û\`§Ë5÷íGî��±7Zw•{U©˜*X°<ê(ïQuOk#°HÈ^˜râì籬�Uã O Ø}§; ºo¯ùG²…žïÔ ¥r©`ɸZ« À ›e¥m دg¥ÏƒwIýdF~?Ûô:‚uÀ/^~µÙ‹ Áe:w]AQj4ÌÁ0ÀN›ú…ðd'SKæ)7¼¾*J@“ÆH÷½æôþ,v›´o’ïÒh_³Nï:Îï1ð«ëŸ Ï™ìíðb”w_\Å-Ñ¿�ê)xÒ9ô{ÂÝ•-µDND¤½\FlgºÔ*ïÈ%_‡y@ÙÊÜ SÛd,ëøñ˜s&Ž£çLq¸ŸçAaÖ²ß ß,‰ÄbR¹öœt.½–Ó4‹ë[Øä0»A’2<—I@ÞSéçÚà'Õ–IƒÄ(ŠéVÓžïý]3�C û1í>ÕEÍøTŠaeN¢t=ÍOÒ#/NJÜIzÎt{úJ³Y¸-Z¦ì+À~=ã¯ðÿmf8Ä`'ÿ2w(•–þ 1o!.’Å»‚aå«ðá$�7G/� b�>C9­b&µÄ¶›Úáįx†ý¼„š/�nÉZ¤êFi«'yÏÀ~8`ÿ »J©ˆö>q»UÌ�øÝ3$òßW¯§� €¹> ÑÿA%¿‚Q…�<ØÏmãÃèXï1�#QÔ0p÷³fS^ÞJØI'�å¼BSI£€Ûy— _¦0À~T{7ëÂïh5k-Å.JÁª«áj„iD}.Û»ù‰%|)wÔ�”0ÀþF’èQú,/ÎÄZÕ>–nˆÅqWößž• ØÏcœ«f[8U%ЍŒ½mF�ÁŽ6ÕÐç„ú¤MfJ8¦FµeØÑݼÊûØá9!ô÷ý¤,Ñ©Võ§ò¤'EǬ�ûÉö’êõ ¹F›TtvásNÈyôœpìó÷ø&h*Ù~•  á>&ºN>7´“Î ¡×ò5óE;ý¶¥Ém÷[šÞ°iz/E_PÜ2?Ië¾#B�¡-®åd.�bhèsöK´c€ö=íÚu½ÊåÞÂY…À±™dŽR±�#x8(Q°z4aÑY OLçÐ6òì[s!‡�N>o¶Âûg”)Ø¥cØ;††Ó®W_x¿O±‚Cô-ì§òl@Îr °Õ&°r”°ÖˆG{>�iâ6pÄq™}‹yǃÃ7šô&+)˜LDøj£†pYRù_CßgsñêWIalO?õWíÙö)›?é>zŽW—HE0©¿Y†ác]—kÞζMqkÚØ¡½Âš^ lùæEp�MÏ|üw탮ª2$YS™ã›Ó$(¼¹'}÷�÷ŸßÌø N5Ç:ƒŽ/#“: I+)ó°Ò ââ‰ÝB·g��/ósýµ†¶†¶éÙ6Ô6TeVHj­\.�ˆ7 %ú¯e£¹CÂÄy$}�é”ÛÖa¹ÝÝUÖ4Û·×$ùcÜnÍ=,1ÜCó ù÷» óÎÖj�bdbdÜïAªh¨hГ¹7yÊRhwh·†ÆÖ$¢ïßǚš2Ò„gÿÏá6uN®Þƒ¤Ó|�ýNÔÛª‘87T4_gÉŽú3¸’)ÌÆNH6夤8|} �„ÿ¦�ê�êRk�%�%®@è²3L\L\â—Z-,°-°ß/|Ù퀣ÍEAz‰ÁŒÊŒzx=µ\Oy¹Ú·çØï€µžÔwžÅ>iß}mŸ¦y ?¢UiR5sb˜ïÆó#í8˜tßLyˆ'Ÿ+_~)*уÜsT%&³´°ïgË |Þ)6*ËêiM¸‹ðíâÖg)¹¯Í˜c ÷Àx�ûy"Pr噽ìÛ˜ýr¤–•áEÒPVÑ¢l•ŽêÚ#¾Q ‹z¼üº�{vn0ñ~è€vÚlçzãú­ÂæÍ I“‡0�Oˆ*Ÿ˜�£Oܥǟ<CÌE…ª5K÷½�ÂZ˜x2ú¼«ÜG¶1«L‡hãé1ÔX�šm Ø¿ž ³=æýü_ñ¶éY–4¿¹†Æk!ÌKœt6 ½–ï5»Ô í.OA/!‰­ÚT¦Ã®`oðc]º*%«ßéïyõÁ+³tØiŸUå¾`_kˆ 4åÝf7´riZ2—ÑëÝ/¿iž'ò âÞ™@&[4iÚöÕÕ °ïiª!NeÄ„"ÕçqvM½\ÔC¬Ç*|@ÒŸÁÜÍ>Ûî/„e¿£îUØé²ýʤ°T¢²�vë ^éF­WÊ*”™õb2/8>:H.§ú‡JÏ›vºl¤ÓAiK9@æŒd)=' †€ènÈk{Ô.rõ qö­X8ÙõlXÀûZ q³nÈÔ`ÁJ½©U|Ü⋎ÿŠ��Œ¡¡+­0ÏÌ=fcRT·0ÀN›µb¹‚©­ËcÞ€A.5wY0 OÓÿ$gjRÃ[rõKÏ(güû.J�g�rpÚBïã)åWÎÇ!ò§”›¶c©�´�ßyŠ òÖñߨ,)rŠ@¹Q¼¾Òúœ)‰,ÿÉ�5&Ï”¢I1lØœ\�·Ã^ªqƒ@T$ò1ûø+G÷ñŽŸgÞ]O;‹Ù šÕÉEàÎ�‡É/~Ò>z-ÿí™�žtÜÛ9:~W¦“ÏŻҪP•çùÂPsÀ� áQ°wÒ²p©Nó…™Ä–¸š†Û$l†ÄÜ  䳩5"‘J_d> `Z”­å;—±cŽrË#öëYÆô˜onLéC|#ˆ§H_Øõ‰³Íׂڔ¢W{j^j tëy³Ò=ìû™M�UŒã6Æ5M§%©œ6Ý`¤~TÖs¸á{O””·­…ß*d²mŽvºl½©+>ZÀ%=·�=�vò©�.cŠÅj#;Ø”�HƒL5\ðÌEqêP$ÀN¿!Ñ‚éÍ¥}–ãJkå”%,^M’s}ÍœÜB\Þ׸² ý¡÷Ü3 ´ÅÆž3Ð3àâƒ�EžjÛÒN�J4òIB¥çÑüPC) Ë%û²|£Ã&Ú�÷Cºµ°»°ëú$jµ­ ‹Îü×0}1}Ë. ö ö½ñ€¤%ÞQ ‰ i aRFZ>íAŽI­u‡aÁ’M“M+«mÄl'ùJfl*\w�ûzÃAS¯Ae»ÅÈ�`¼`¼¬Å!�Ä�Ä÷–Û VÊUÊU’�HawlþûV:V:ö…Ÿ#üsÌd›ªöÚ�x2K½\×rP¥ÃæYˆ¥Ú?+^XnÍ–„ô0ÄEÂEb[æ"©àÕéüS"b"bÙË0Ëð‡èâø|Y|Yè1áÀW\}�þ2lµ£µ¸AšXE0G0‡ÞSU§·wŒÜ` ¡o¶’;iO•S„v¡�oWPÁø|·Í\s‡¼{OàP�CÙ�ñžÃ+ Q¶5 ¸^v6™­ñt‰Õ¶Z”ˆcöT\PsÄ??õJQ¢¹�SÓ‚9ªgsÒž z-ßbf$`€A¬Ïß­ ö“¢âÿ±w×AQ¶{À))—X:VET¤$$TB@éZ@`)ii%DAº¤AV@B EB¤»CR��z£ÌyÜÇçpf<¯®zÏ÷¿Ï°33ûÇ}}¯½Å &¹�{ùXÀºPù‹®àtFQíÐÜ*ƒž,L¢'€!¿­]Ɇͧ�Ol9ùÕG¾â'MeæbˆxÊûA½1—Žò#†»�£7jS`€}¯ ñEÅ?ç^:‘Lœz¢|ÚƒŒ+Eme宸ýz÷›Š Q `€ý ¦,LdÜxwäB�K/¡îU1›s”:ËXøÌAc{¤R‰eàÔÕ-R;ÀC6ë¥Rœ$£/Î� Y„кECB}T±n¯� àå¶‹ å�Ò7د`çËÔÅá¢UGžkMO”¿ŽÌ—t¦Òqe!VÄ7^m๮‚ËLÝœø¿6A· c™=zÂ\TÏ›ñŽš2{û¹/=C¬_ZP=æhù‹�QÊàvÉóÿ´·—Ñ12Ûÿ{З¾kÿ¸õZq)×”ˆÿ®ssê g©+ˆsè�JÚãI´7XZM%ñŒ•ýÏZC�8o±G0�Ühª¤ÙøTÚ¼W.!îÐ0\¿’ÉÌí'rÅ·ñþ2ÄN…µXEPp®Òo„b£v3˜@æ°NñÿÃ)6õxã�6 =gë©.ôiÝq›;ò�Šç2‘É4sÖE]ÔoÜÍÆöu§Âôåœz”;î¦W¿ÔíÔKR§ºÊÃ:ĵ+¤êiJ爆$»×-KÂ:ŠÛnد`;Ü“Üá^ój3¥‰ò¬ÆWÁ ®RZc²=äUø<"^�7Ixเ!¿­PC¨4cŽT$_ªÒb¥÷¾°ZˆS@÷ŽÞŸ ÅÇ»‘5¬#:Ïø`?Æ–D—–ÚÙÇjî¶|‚¨‘&êׇ31=±Ì-WÕy¸ …q—òŸU2�.`€ý“mã`tÂÞëQ¼…QÊÞÂn 1 ·@¦ûy~“�ÛT Ñ£pÒŠ‹8Ûœ¿sQQ·ñ™5fþ�pDëÄ⢱·og¹X{fE|&8ÓyÂêAàŽÙ9¢—lÆö—ÃΔ¶>Pyòa@ç–ËV,& ©Ö7žYÙ¿}ÏGŵ0˜}ž*‰Â$x:ÈÞõ°3n²}ÆûÁ×ñdÙ±EÌIþ¿F$å ÷uj !½t¤úHµF'È£qK4¿­uýï¹ ½ íui^m^­¹°ŸÍð­ÚýÄÌïçöц®ÞÒý¸(BV?çÝz⃃¼ðÈ:–uL66ÊÞh¤}�˦³bi§ ù© |ÛÓªùðýØÊØÊ€röC§ƒ»°|d5å$÷IîÄÍÄMÏë3ÿ¥¥IŸÿ 6Þ û‰µøœ€‘ÕÈœçŸS>ã’°jW§ÖVøïDpBt9º÷sòúÚ kç”>Õr÷¿Énün<7T6E6E11ùm;ö;ö´VÄÝÅ:Å:× ÿš®á¯³d½Ÿ§—ó½ó½¾OxŸ¿O~ µs[7·Kíì)\&Nlú¶Bün#Ó,ÌßÙ®TÎÝè ó"ïÂmÔ{Ê*Hn´ÌV¦IZÌõ�Äú53Õ¹ãC¯Ëûó,v½º}Ë@VÕ·EOq‚sîÔWQò®­^+‘±Ë }¤jÁÕnºvÀû¬yÌЯê”>õíø²Ž•YEôÔÅ:í˃EÙšS{-”Åדëqû½í~ð{‹¸PU-áeâ6è}xêk*‰|)ÿûÐò�«ÒÃÊ3»á=D± OõûóL™D8î‰ú2®^¦ý¡oí[Õ`¾Á3$ËFÓ8ýRkÇ›Wm€†l6Gšdßàm=HÑh‚¢Ÿaøix¸‚ç[³Ð}1B¹Ìø`¯PÒ9“¹ÃB»‰ ¸`Ó�¡ç2øt«çaÝâùÃàôèÜ£‡=I€M¿‡Å‘€[G5ö’¨]jE”¯õÎû}£›àüº›ðýòåºÉIú3épK|qãh�Êa{Iĵ Óì¬?ÍÆui̶b³všfëêñPÜ3Ú¹+óìô\OÆ´9]”ë,Æè€ýy¦¥€ç]eœbúÑ]ϳ)®Ýцo¶öŒ¼€BÎüãEÜl[^ª3g¸o¹š†\fsv/W¢ô-fÜ=½Ö¢øp"š^ì9OÉ¢4œëCÉŠ~Ýw'òC.«Rß³í}Øo^«ÛQhSbd+–c'´s­€¬@ü�pKIm9¥%M¯>ç‘fåçk‰j(~�ºó-(åÕ0ñ(ûÍoôÜ_÷ÑÄ_æA”sùøÒ¯„²)“ßi=¬@\ 2Íâú6üÑ�K7A�›×È73Kê�¦áó—æ ]T8òÉB�£n¼ï¤`æökšãIõ˜V\†Êdmõm©Þú�ѽ+Î oØn�^¨1 µ>H 3ØŸg_vzŸë ÔÝÊ>ÇĨ¡S/Aí!ÂK=sÿcªl))ÚUÇõ^ÌÓ†€¶oMžÝéuFåTÖëš¡Tƒü=^î"5'}i6dÌtáÐMåü�1Ô�GìÿÃD!òG?Ä}ª“€‘P-¼Æ¢¿·¤–Ü‹aÈ»-r©›y•!Bv¯�(`°ßÛz@)„º`á8ÊxÄ{ÏÆ“ÞÝŠÝJ¦�â¹ÀTÂ)GÜd@ÌI*�`¿ª-ŒD9]´··”ä&O"¬(ã­B©îïÆ�•i[ßf�Íès¡a °ÿ£Žs-|�md©du¶›Ý~�<úÅÿzV6`¿�ñ,™l•Èãê²¶½Õ¯ °·z™ƒØêÐT›Ü 2Ö/~Ü" °qXOˆø~ÿqIsPã’ÎH¦Ô°x¿% ³ƒn7¡‚B‡‚·¯Z*ÒLü�ž�aÆá—÷ñ�Ž*¦y•�û÷´³�m¼{ô°žq-ß3_0ä· u>›Oµ{Œ“ÛÂý£ç.R×íÙcøëYk@†3øåƒ‚Þp�>Ó`?Ó®«Ùi—̵厣È=êKä.”Øì%!òʼn@Òf ~üŒå¹ñˆe-0À~”�ÏåÑÊH“ûð’.ìo éé�Þ­÷ø�d�†ù ·ƒÑíö3{ÀûUmÌ’~ƒp™ª¯õ#�:ñ+îh}“1︫çfµöp ›‘˜`yD71;üâ$â{û¡æ¸ÓEóžáwª4>—>ì½}ò}Æ’øëX‹W!†�è¯YV=ÈôÆÊAmu‰t‰´›�Nc� Ü+ɉù{2›2›¬ÔìÕì9]öã´ ä¸Âùý0·¨·õííGð5#ÍçxÌ—f$e�¶Š¶* ¶¦Þ–4C|Óê£ÞIË úœ–Š…“òM.»û!u%uÕŸÝggFØq‚ƒÄð‚@ exex!oÙJþ9pW¸+.jfïN –F¢KÎ~ÒÆ?‡Æa!ÏSàs“a%ãOšu)ý; M­lã¥ý$iKLKLÃîa®*PÏü7)U)Ui®Ÿ©ŸY½„˜�{�™�™¤æò‹ù2ù2$!MKÄ×Ñ,ÜO¥WYLY â¾�W@§TïÓh–·Rë'ÏS‡íÛçÂ5‹Ðx›¤è=Á�:]÷p´6«Ž^Öµ]Rw—ãÌ6%ËCûûlúó_ïÛ¨>¯%%3Cóö”—³¡ÆóÊ&|ðaû6ĵ Ó<�_ÑJÕkxðLwbø©°¶ìŒZ ’B@h²™¨²E§#â\éM úÃPR ‹ûy6÷JÐ#ÉJqNåi5ñ zÃeK|ß…¼©NS°P~+ŠÇ€—„7Óä`?ÆlçÂíõ&üÈŸåÍ¡–j)-Ç öá™U’dWlîÚÜE‰ñu²Ù–ZÕÊ­Üšõ¡«F!(�žS–<7¦¤eŽÛa&¦E¡:?iR£Iòo)ì÷1¼’)¦åã}bᨴ ï'´DÉŸ§~Ù¤NMØ{ä�3J˜UÚ¢g`€ýL‹X Ã«á0¯i´*ö ¾k# \—€×3qZœbނϺÚéf¨ `¿‚QLIPTH{`S¶;\MÏmPSYõÒ†¸íÒ'rÓè–$: KŸÚá Â+ °e¶9t�ŠE•à'ÓGüQ"àª49ñ"fìIæ %:°mÔÐÖ.ÀÛ7ö£±a;½ê>C§Ï­“]�©ºæQyIäØ9­à‡N#^7fÝAö™3’Ñù:€ö£L©:U¨«Ý(­°yË=?D¼T'·‘#ErŒÂ`Þt\§ Êö£u”°Ÿgüú%Öø<Í�d»Š…x˜©ùI“R4”jÙtä´šL&…YNŽ'Z«“>`¿�õö<°á”ßz_÷±ofÊÂxŒ‘5¬ ™æ �‘3Êꑇö0Õ.¢è:56Hšµ ž«Áã ¸è1ÙÊzÌÝ-é|1;WC¼/)V,Ùv=áSÕ¥¨uÎâzÔ—T*™¬Ç9«ät¹Â^CÞŸ?û�s5ޝÏÕH?¯eïŒAï˜�¦·E9é ㋇�«!®å[3åû},“<Ò²> –6 È=úi�›a¼§}S+¼uV]U@�Ì­C<ïʸÃKÀ~Mã‹òTÙ-³¢.r8z£âˆÇãnó>Ñé9pz²ºCâ\ºï֢弰ßǺ¬O{0ÀþÉÇÚ²ÐUw]í‹un>zìvVc¤1ñ #?TÄ¿úSñYnÕJÌù]ûVÀ~M£ÅÚI®õY#¼_ôéX„ä£J2Ïš ‚½Û�=i†{ì£/K¹…U¼ÛL* °ï5ð´!Ý)‘¼õ…°S!ý‚‘“8J+Oâf‚8ÂtÌ&ÀÏØo‡ Å-Uà†\–Á¥�£kX}ñ< ©ø­‰ežðÜ´ÒÆÙ›‚Á].©3О®ÓÀC.34 .âY9rjTøñ†9–Jï“àĦ[GŸÝ�f%zq$νñnÀ~Œ½$";.�±ýi`Dfäλ„CÈtç2Yl,^û6ùföÊYÿ01ýÌè5pä)Änؤ ›VÂá (»¬ŒÉjáäaÝpÔÔîÓGo¯åâ°�®LRd¬{ý`%·|94„.Æ!‚¶ÉÙo‘j÷6Ú�Û‰*TöÉÌõïÝ0××ݰÀ—»6b¬“Ÿ™72�py£�1uå°nq-?kv©ÉÑûü9mXÔÖÊ#©v;ÂmO gKoXÜc~èÞŽ®ÀÞ(d£‰¯Äw 0À¾×0嘊ZtMnjd0Õ¦Î�*]ν¯™¢ôòçÛ¦›Ñïmùä&Õê °ŸiJ�/¨(Ä^ÒÆó4�LvÍhcVæúQw¤œoá¯5ì(èBårVq/ ¹l¯$!N9M×Ù@m¹& Uƪ1¨ IŪ”�®çÞ´»:÷’š2 ¹¬·ÉîÆ†‚¯ªÕ êÙätß2Êû�“Ò¶¸Íô*Å—¹6¢ÐdVÒ¤ùQì{-¸÷®å«TUv¸�FþqÃÖÀ ÒA A:–W„Os3M\"׆š…€†lVGxÇð”eQä{rar§+eÎ]ìÈtO·LY²gãZåìkȘwûIÉ�nkÄ}<äšýâ±hÌ‹IEÆos©•ÛÇoeá’{hy¯­ä9„áÜÌ_Y¬{Ö@—ý¼Û’€DÞ(5xâZ«‡Ý ÖÊ"Žý�}ü…¯÷ñsA\ÀÛÜB6�›üÿÇÞ�GC½ÿKd_Æ:ÈR!”u„¬¡¬Ù÷}_“PHÉY³dÉ�²¤lYÊT ²™±EmDò»s4¿›¹uÝsîýúœç�cÎy;gþð~¿?^Ÿ3õ,?œã€™ ÂðÇgrF×—ÎY‡]oÛ·­ÐcÒ{…Ú‰)�h®f®æñ‹Æåaê¼r¡×oüµtP:( Œ_˜_Xæ5:/ÊôAtUŠèl’ë§Ñ1^T™^ëó-×FL‘xpÆñ<غÛ6T“p} ¦(±þéµÄÓ8ÉxEVÐáµáµ�0FW�]� †â�`ò&1%4% ò ò©¼íwðÇMªNªš 3bþ>Žvþå±RtNdkUÁêί‰rÌ`3Û-ý4òÏhiŽ­¢[4æ�ã�3àIdUš ÿ'‰‡Š‡ª²° 4ÇNòz ,ÖšuAŸMŸ- òmÖSë3óEl¨wDïæûäóu†¢ñ rŠGú·ÚÄé$Š(¤�nt.„ýÝþ¯gPòöJ,˜‡õÉfI?Ç£ÇYy÷ˆKÕGÃmãדŠw 0´M‹¿D ŸÐ)yôñ·~d­‘Ïe”DXÑ|33R`Jýý�3÷ ý€ý~–76Z˜R±Ã–ÖŽ!ñ�oR(λaòíè':Wç:<5‘é° Œæ-ì×™Ü=Åç¶ÿ<·‰ï´JÁ‹Âba0Y—Û:ºK'ÏjÞYlsÙ;D{úU?Xá#èež‘b%0ŽÛ\ÔÑù£«~‚쎽G¹âÛüFÈãÈçª2“VQ{LW©×mh„MüßÌ].KN‚ÕÙé­ÞȽ•ÉSæ8޽§ºki½‰²Šåk8ìÕwl£=UA)Éî©YM‡] ­·]îëô¾×gùâ=d¤(2ÏŽÛQ[„)Í=©%JüΞJkŽø×»Ñà¾îꊔFŠ~-\»”�þÆ^ËϘ `hë÷oÇ9. ¥Å0dFïT;³ “OïY|'HÞ2¡¤ŽÝYL@}°Ío•îpPÏæSíYö‹jNytˆö&”=Sò†ø[“ÖVÆøAögÂqÚÚìßšý°Djæ%ªÒØÃ{`à„=MTû‚é yÆïAþŠ›ƒ�^ðBê|ÀÛ f KíÜê?z€¢´VVðÚÏh% Ÿ'$ç‹_¥UÍ~@uóý”9­·/`€m6#k„èMR+0Q½™}.ãžhϘƑaDxêãøP9yeI·Üð]Zfp;`€m|`¢˜+_·ã¶yåˉÚ'#)eZCg!Vç€õÈ�ß·ˆiî¼ÆÇÔžý_[„T Ü™Y}•�²Ä�'Ä&óŒ™:fo?óõœáZT~\3ÁXí½Å1ÆønÁííÕ­œÜÐ?Oúõž}=v¬*‹úB.úËÙö›:gU•°çÐKùUwgÒX.ètU!s6ˆÂ¾Ã~†{Þö9‚ëäbÛCfR¯ˆ‡^¯ ªÁ=VƒŽ JE|(ŧrJ‘=Øï/Ã>Sá¯2”’šy5Ê°Øø)žB}£3ìß_®Ê5¸>wPmætˆ‰ÌÒ™Ϣ)¡†Q"óÔ./ùŠ¥­q¾ón6�õg*Ü_ïÇD3lÂTOݼ{’Ö¯©‡q£3ìµìª€ Û „Ó8`AMó*½¯«ºll+ØŠè¤hRج¤ñTLM¶¿³2ûùrUóq $}¹˜\X¬ �XnIy`›ßÞ1q@Ì®eí€Ã×™ó³…(Æ|_ATÎú”-‚œÞÊŸØ“Vê|°ŸcsòssÝBã þKÆ´Ùv�UIÜÜ×O–ÔÉ[]zmŽïÏxAÂFa `?²ÏDø½¾¯lž80jßÙvÅ%É}3½Ÿg»˜ÆÌ']f[?óŒdÞöâÜsÒzÖ­ØÏ3*³<É~¡!íeMI°df±ÑóŒŒ|†L|]ñ°ººÉ½èT¹pÊøÐQ'Y+RNЉˆ¨9½9ýöA„±”L<¦ƒ�/ý0•ìû¿Ö(™ucEgðMtQòQòuSèvjíÔ[äiÅ”¦Ç%È%h[m[ý r–íǥΧÎw«„—þ}•õ—„ºÑµ ¬U˜N/ò\kÎ…¼ÙnסŸûgÉ.üñÔ*è¦èÕðÕð íf{4›íÒþIE{ŠörŸtŸdhÄŽÚµ„Z‚1x‰w@: '$¾íµÛúGЉ]ÆÆÃÞ¥Ï>•MWŽ?y2 =°Ñ{�5ÈÓ»Ç#4vÅm?õ}gŸ£‰<5�¡†×ßZX¾F¢5ÿÎHhýN¶¶–¨–Æ™e›Ï5Þ> {>Eo´Â^Ëfš…¹�MéáŒÍ`¿$ký3âVÛüRôNóÌh« ¯pi<�1ñAöïv~ü°ßÏÊ´µxËö¦çň;lõ&DfžZDê©øŸ¶í¤vbK1*Wîcí °­`íãŽádu\¾äL§¦äÎ[y¸ÁK-¸¤›,�UÞ1{±ÚÁX¥ k>CØö¶‹ñ¯Ü3ŒÌeçÁ]Õso>†)S�¾hQ»¨¬6b0õ% I}­å†-`¿ŸÐÈ–ä†àÜÏhVGìÄ»YÎòQ n¨Ì�âG±—™sÁáJþžúG]€¶Ùl†6ǧ%Üsˆ¡ÕdWè¸42ûÞ,ôÈ3ø P7 ‡#�pb$ „¯Ò9\ÁÞK^Q7Í•j›s ™§ÚWɲÑ^ûþŽ�}hØB‡tÿ2g°MŒ×@°ûŽ˜ã$¦«9L�rÇP³QßÙKЬßKF~}F¹ir’�§ ÷$¹¢s…E¹áF{Iìµl¦ÙY¿›=·f�îܹËÓï¥À³ad°ÞªÓÊÁkªé·öÍ ÏáÎXƒ´P8›âöû™¹.Yx�sžë‡ Û�¶Œî3^Ó�îÏOª@eés(áÄë@ˆ�^YâÌõ®…ÏB Ó…ýÌÜø€ö¿0¦Œó�‹ÒœNêŸNåíòY¥O»÷_Ï6lû˜ØœË"uM¹±5×»º�ûw±Ï ­˜.:ÔÎvµ÷¨®vHê.ntNˆýÿý»UN�>㜳-RQ8é@ÐÃú% Î`Å Þ�г�½ÒþÎ9¡Ø÷çÆ; ï±–�ß§¾lEc÷ÈBï‡ÏaþÏ òÇg(§×§dꯋ]§Í·]}‡ésê &x1J%luT»ÁùЋ‰’“&þí~Ñý"…Ùy–yÏAtsúÓ®èÊCÐ¥�&Ï?æB¦ù2}-x€4&9H¤ãýÀôÝb&LAžäL>|\k‘�µû�@ðØ “(‘(Ù„ŽÑˆÑˆ|lÄ��æ=Í{ © ©hdì�£‹¤‹ÕÂ¥úûÞÇW^4G7…XK4°‹­ôãZ$¾é$zÚ³þÆÓíÜ­ŽÎ›9Ždç~~)�àŸ„PF(�ÍBg¡—V°;G×ÀÖÀöaºßæsT°ø¶áÂõÑy£SŸjÐiÐùÿ™™_ç;8‘èå‡UÓG#»xÛ¤üI6:wÆþnÿ›ù¢€m~[4‘ðÚsÃé ëbO”ŠN›‘fjZõÁ�¶õ›rŒÒŠ‹«‡îã °_iÚÆÞ–Õ3]%ÏAš—ƳE+Ž|BÑPG%ã [rÇ_½uà¶óé��wìg™`‰¨œùÉ|Í·�9r¨*¨–elmÇÎÉ7¿ÍqÇ%-éá |´ó–`€mU¦:P C9éïüÀj~$š&fçò3æg?CÚ ,GªÙœ¤j“ûÀB¹Ò“Øû6qI«²¥±âpýÎ¥�{?|Çf߆=®]¡*†9Ü%Ïö:‘…ŸvðO7DÚ¼U\×a“ M‘;®t¥¸�M/¸~ßÖY[K^Q¡Ù©šÐ³Ž¦·¶‘Smôw6öZ6Ó<�­h5&œ bd®+é‡ „ËÞNö9WHq5Šp4*÷%gœgs¥è×Kݬ¨ì×ÙÌ#©à½Ãð^ËÑ“äK_ôºRÉ”u‚‚Ãñ9Ä‹\žösìôL’/¥7§í{Vý­Ò)œsýùL©~2·‡4wàŸ¾xùƒÒÃH{l³Ù²qÝ»ã% ÃÊNW@—o3VßvfdáËXá£aA'8ÚŒ™s¢;ªÛ>FVý‚{~w¿BÒ ‹äké‹YÝö©Z‚L÷ÛL˜(Q;êÏ‚=òß„”’د´ñä׬d Â'š©†M;õP$ñþ^’šñMYdȉ}Š ³î!ï{-l+Ë# pµ`Š�ŒÝ¾Ê%-ƆïÃ,9¿°e‹2[Wgûɪq­ˆÅ‘UØÏ²˜ÓwY/WÆÊ¼a—ÌÝ[0-JÎ5b¾›)ç&”s¢¥ÚÊá3NBç3ÀC›ɵÄ”IÄð¾ý tÚéuÇ‚–Ûµß<þ’ßh˜Ît©OÑ”JZ™`€ý,ÓGÜ”yÖí”_Ѿì�WvE±Æª¤U8OeœÁ~Öõ¹U›…p&ïÏT'RÀ~�²«ö$kç€yÃ_ëf:¸žØëRƒ B�Ò½Lyi¬^Äàv÷nn§Ÿ`ÛÇPÈP/­åWMú§^¸;�sò'vm¦9ÈÿÆè95léb¸߀¬Ï8µ¶¨¸u`ß«åfØCÙb O�d�Äßè^ û}I×`§²–ê®ë§.ˆT5ã܇ñӴ†&>æx%Èû�{5áõ÷j1´kkYå±G�{S˜…»×Biuœ¥7ºWÃ^Ë÷fʶ}¬ˆ>ʼnca:F!PJtléµ(ûsd÷';¤Îi#IcºÀÅR¥ç¾÷Ûš&‘bøå�S¥/W‚|GðÕ¾ýò/«5© `&¾Ùƒ¹jýÇßœÏílûس�`¢³�”@~V/ ~XHœ2áã¼>…éêk*RGÒeJÝ;%¦ÚØf³(�Ê«Z—‹\…fo�æ9JÔ¥è{P�-º¶ƒ–ÃzõÈýÄ>âͲ�Ø�Lo¼«ÏèËyoÊ*+›ËWyMG[³ë9YÈE#.pWñŠ=$˜ýâÓ ØÖ4ÂXcÄGÊ‹•K»’U.?¤ ie—B}¾Â<‚ôI;ª˜ú)§0Àþ­Q½t¤#bå’+]x�Èue@*åÿØ»ïhªÿ?€ã×Þãºdg$ !\Ù£’••UöÌLV™IDfFö–�dËJ„ìì™™’Yfø}ï‘ß·n¾_ßs¾¿_Ýêsžÿ=NÎùtÎç�÷ûýùÜ×g Ku9)n&˜+LÏrœÁy-\$n¡ 0IJlö(#¬‹±&uÂ'ÙHįLF¨ñ†çgÎ�4¿5 éq»K™�옺Je b™ÉeÊÞe4IÓ¢�JW‰0.ö'…$¶Ä\wòÝÞzÍJOŽR‰uÃp¢°ïcO‰��pÃ1¨Œ‰,I]¬¶ G雈d±±x�ŸH×ó–YÂÎåD¯€#�ÁŸ ›—c`RŸsdÆÍ«¨`²™;zÐÙpÔôvê½F¹|,ŽãÕÉ*Œ :K6 ‹!‰¸#(g¹Ä�×¹­Òí� bw#‰TlXz!}{6 Ýÿ·ò$Xê¸SóW6‘>5�Ž?ÃRyÐoå)ÿøÏÞ¯{&‹a_Ô½/¾º—¥øŽÕ^÷Ž\%¾J¬wKÎ$”ë0¯ßäÖo[³Z³rHO¦K¦#�†…ü1Y¹,ß[–³…¢°$n/Ôí¦üX©b/°F 4�IÔjVª°—…üíʽ$¼CFw36Vòq»‰$K/A/án,Õ%Õ¥¹GLD{ÕE¿[x·P9Q9ÑDÛÊú׉{ˆ{¤3¢›þ}ΗLy_*ÁÊ Ü�v¦q#›{·qœ Z»LöÔ?ki@}ìÝ +R•x‘xñ8^©°4 ÿŸ$!+!KÌ<~düÈÖ{øèé…¥„¥ÒÜ”ñ­÷­Çù2Š¢¯{£kÍ�i“isï~üüí–Û´Œ«ÍL n÷‚c4Q§%zÖoÿ¨Y¸æ8·w�aPÚª½N·ßíLÒa)W²ºÅz×£E™³YÄN _•ÿ `€ý[CW`*iÓ77ÐÌfz‘>‹[ívâ]ý4¹wÿæ&ÍŒQÿK± wqíÀû‘¦äXLAvö)uo¤úÜù&žu{©ÙŸ`™i ÀËú[ì•Ö”ý.ÙS¾MËò«"¿4uþ:v+íÅR èZ²ìræy$Àû·Òïj]“~‰“X,å²fÁ“ö ;¸$ÃdB4l5]„©ù9æn‘+£â:E€†hÖ@xÃä˜uIä;RQRgÉ —N2DúîÆ~¦&Ý·&Wýöý¸OçQ顇T<¼¶ðçBôró‡£Ñ…“KÌó)Õ:Ú|„Mê©í³²ZøÄ1 Ë `y¾á9GM^n¯5�ÀkEÓ¤�I¹vOûMâãv6‘ˆpÌ}Î…N}}.äðyæ�z*>A�jF ß!7þa‰ƒöñð×ò¿žAéÎÒÍ¿‘¥í}êµC"uÌ fÆ’<ä c<(ý½ÄtÐfN>Õ1¡sÀƒÙ[¾7u}�‡$mzϹê×èËg»ŽQÔ”ïÇ1#[AšçT %à—Gì÷³‡cƒw²#‹Ð IŒÈÂæÃï -�à×_hTz°Ð^ñJC¤M×=�‹å`?Îlª¬"r¹Ù™4ßJg5êbta‹pQCðB·s•”7¬O¿WHç^ ±l¹®5æ�ˆsZv ôóè#I{²åB-ÔÄŒ�ü�j¨(ÚQ‰cÁ€!¾a0›°ZÈxÍFUÊ)Kv[�Òòý›9¹ùÁ)ˆ,©Þ¼Øÿøæc÷qø5ðÓ´—Í÷üú 8ƒXëOÛõÊ´Îz‚s$_hKTÁøp›Íd}³¼[†À½Þvûâ^#ŠmûáKâÜ‹tÈPîókCi’ �•Xaû¬�ù¾^~~–åÙ›¬ÄäKTù‚`@Ù(ò 50üµ|�€³N×V¤+ŠŠdÃZ¤v•ã�«"™¤Å=!YŒ 3º¡ùµt—û¡%†ø¶"™GOô>̰éìßY#@’Î ¥‹Lå[ÒhΧ!ÿˆêqÙÉ©¥0Àþ­]á�Š¿ ~tš! ’ÊÐ>îyúP}yä*~»É£Ï®*Û˜(“0À~S%2kv}}ªÏ­ŸP_ê¬Ý r=ÁªE |Öàñ™Ä pú‡m{GÀC4Ã{A¡2Et–<ÿ~BÄ*ì2µ{4}¨ï%Œk+ãÃ…ø%ù�b#�I¨ ­€ö3ØÉ ñ”3µh¹Ú%o&+G# ‡](ôn²ATðÍ>¼ä½p3–•²5ñm¾BîUfT²;´„ùé�¼ â�´d÷öö³ŸÏbý3ƒ›ÐÇ*‹×ÆÈC:¥OþÕÞ^VÏÔöïq?¿/ {<&Wš@� ØviMWr‘‘„ŸC/ä\ÖO¬»ÆÖn!�g¦æÿl þ�WøyðçSk-ÕT¸v¾ÕvïÔÊ ]zC&«’9¬:ýâ¯Ä$ýºà¿7¦Â^zQHh¶Úÿ5ÙÚ‹õÙƒÎTàÿ¨b¥žÏ=‘‡ÎÏ^÷ÒÙXuúÄyç¢?÷"‘ùÖGÂúHû|›�cÿ÷ÍKÛ¼9jêúI¥ ñ¦uZ¹½oNûþ–ê×ÕÚ¶ëÁ§@ñe%Ý{9˜ñ£íeKÁÐÁÐñRª;d,i¾²ÐÍÜôÛæNÏ�Î)S°W°w+Ò™–›¬¡Œ¨ðå°têjPwëÑAúoÖ÷å%ä%Ú#³“ZÒùö2fÈÝ‹PH|k7 q,* fP/,eOeÏu?XªªvY–{uGvEvM$M$ ‡Zðýu­s­sç›-þ¾; �ˆï`¡aî&`ȯâÿ[kp®BááÙõ?›f9ˆëÁ‡Þ½aÏbøÕ‘CÎü“O9žZÚd±a±Ù| »  ƒiðöcÃîü/›œþ:?XD© 8PÜÞýÄôù9õOœ�÷ ÌµôÇÖ$Î ]ä�ÑÁßÛ‡‹(úZ²¸¢éÓ<¥�»çJ; ìg°-ž)žpï÷‚ê3�削ìfR`º›…2Úãò}¤µø¼bÞAļ)ù…]€!¾-SÒShÅ& U¥�®Õf§õ9õ¡«�æ­/þ!�¯O3{XWô³bÀ¾�-œYXèä¯wmÛ W'I4zQÎÄ”d�_yéŒÞÝ9mTWò[ü6iú€öWö µÛØñ�!Y£1¹üÌ–ûæáVˆô½§_Åägו© Éœµã"XZ¥ÜVÑo†ßż%Ñ>ùR2ÞØøÊvÐ~�5ÄÜÍ`s'hËòÑS3‰0æòö;“–†ô®¸mÆ¢ƒH´÷Ùq~½ªÂÛ½ÿ—/f7 >•Û;�¹M2¬´f…¿Dš…ù+›dõ¬ÁЀ �7iv³a*»©é"G…I)ô2±­%+ʼn#V#Ï*ûý¬ÀøB]%ÊæeyÍ›¼Øm†*“ܳ¯tüT¤]¯¶™¹ ÓF^*”ê¥é °ŸÁZÇM|ðj�9âS^›aKYÔ³±¬z¢sL¸AWb¸$Okz§�¼ôBZ“`¿¶ÝygzI[tÒ¡s[6%ýŹ™€Û:•kRçGÕf¶Ãûˆb_¦öû™±h~ŠÒÓ¸&Ù:L”»~…Ô+µÃÎÓ¬ô�ì´Ì²N—°w=¯é 0D³Y’d‡—>¶ÃdÍæ £l“�ÑÑ*Þýf¡û9¡†B-ù�ÏÕ  fq=8äa|~/y_V3E¨e’×Äk|¼„Ýë ½$üó; ºá%Ü›ŒžÄ�vƒžVh�Wp4w’)Ý^ˆ©Éõ¿÷ßg/Éýõ^Òïó;Ê SS´ÌY)Öøâf]:…ÚKÂ_ "ÍÎúÝlBŸêÎÛvÌöÎo8zFúµf->zzµÄu:Ùñ¿}Á¬(¨œ�õþÁ ffž+7-C,³cÙ‰Ä>WÞxŠ7K‹G«=/>šˆl{ÂKº$ëÂHš¨Š¯ëäÀËj5v®÷ß4¯4l)w¨2r”*pÚ߬¢¿ËØ6¦…ú˜SRöÈkG¾>À~Ëè^0^át·DÚqtaÓyÁ'œ;øp‹¦Ÿ8£s)çÃ3• "l²VZWûý¬èyà¦"Uœ÷ùþ[øuSa\ÝÞ1Ú( õ¨ÎcÙ˸çQ¥BìÝ‘ Ñìžw�@fâ1©l#åš©3⇘RÙY~Ô\Õ_Å®QuŽ ª×îX&º‰²°ü þ\àºq¤ò–bÓH¡ž/¶»èAçðï ·•½¨$w$§êà3âFkU+s‘KTùÓ7œlUÖ‹G9¬ïs.À³ÿ{¶ìÉϦL™Ô•y$J,¯y<8è=[ê?þÆFãë8PüÇááú2d‡½R«§™÷êÓ#8Jpt€»ËÛp…{×åÛ|]}]7,âÒâÒ޳¹zõ,O5Xô. º5�°0ïÐkîÆ¶JG°#´ZÀ.TÝ5¢½0¿:÷zô^,g!»•Ú�šj œÀ…¥HªHªE ,|CÉ÷n¯ç¨æ\æ\ Ý Ý"îÅ1]�i�éµK�Ëù€:›,�æn휽#ö\»Íö(–_'>Þòg©&dzÝÚa±Õ�°Œ°l«%¸MaNìü“¦Š§ŠA e›e›XÔßdâòG+jé¢IIiØ_Vêôuº'`µºf{í¿³©¢!ŸçATB}ýhW à 9ÔHo´tÎo#Ò,®ïa£M ú º˜(<|¦~9�džk™ä>½šÐC�¥˜&Òm5æ¾äsã!fP>`?§ù2ÕˆiǦëSæ%OÓÕø$Óßt챡¤KÂsŽkc§êÍCmq‚d‡ûýLøi·Ãx_�þfÞ þ`FM½¦s”žb|”3·?"É—“ K9­ö£7 0˜µxõf5œ3­¤°]Õ ¥èóö«?êGµ&k©Ÿ¢¡¥V�à9Žô 0Àþv†^g)n£áœ11ÅÜ3 Ú[ êiý¨&|ŸÄN÷²~ ‹�ŸÇ+Ç# ì×¶¡>܇„K=ÆáXjx��Œ‰äWWb7Óh£xO1•1E*@Z.C¸IÎ? °ŸÕæ^G9 ;XMXKCEI“ «*øjAuƒÝ¢Øñ¡²«Ÿ8Cßf¸Q1¡ØÿÃ(ãn=ˉ6µV½ÅÒËé°C]ü¿ž• دc¼ ækDå…ŠØúì�Fµ�6Oß;ëQÕ™+™Uƒ´ *¯tî ?/âˆôUÜÆ½×92£âƒÖÆè]4Û Udzd|u*:¢÷[!ûœ;óÂÍÌüü{|S•Lï2Ò€¾N–!WœƒÎ á¯åßÌ ñmMƒßŽ!U·Ï,­ƒ.L( zV˜²aÇ5ÀТI?š- üzœy0À~¤]P·×-›íÈŸ)ÜOä):·ÞOLä‡�4¢Ëò ƒ-×l—m%0À¾—�ÌçÓÎÌTXzFŸ .oŠŽÝ8Óä¹”l…Œ~'¿‹Ñ½3Ã0À~V³e).R ´¤Ñ€ÔðDó™�ùÙ=}uº£et¦g…*#z!œ)ÂSðël>A½ri¼�±G>ªí^ÅÓ­³á絞- ¤ò1h˜„¥ã|ÁÓÉÖ².zQ ÜqZÃC�;ÏâÐäogÓŸüz�ý’b÷Zædk]›V€º˜hæV·àƒZgÃ_ "Íoø­\ƒ±žÏb+F€cÓÞ´írò}\dù$ù’ãq7i-TÂ@éE%€ý8›­òL¶Q™½˜Z™Ay)a�OÏêÉt·X¤ ä9äíŽJÏ—cþ °ïc×gà í 'éüI3žÌˆ •k«.Æ àYVçU­oÛ¹‚b¼q» ÑlS½vùJ~ýꈔé}н\ò²\3rjÖ¸-V’QjÅÉIúuªä€¶2À~Ã+›fZ<2p6|‰ZpNøvBçå(Å“”O[4( ûÑž»€Âl2罞àØ�´ñˆ9¼z®«MàÍv•~œW;A…�†¼¾ÉãâdÿaïΣ¡ÜŽÛE²ï;•}ÃØ…¬ÙJÙ²¯Y†, ‘,I¶Bc+Å�¥"D²Bv‘%{vB\Bø5_Íïfn]÷œî骞çýÇœójæxæ4‡çù|žù<³ÎâA&K�þ6gìg0êqEê µ@¢}4í^DzóNë-…œaõßdN¦7{’ê-£Æ¾!} 0À~”Eºç1…GÉéαH¦ÎŠŒ�B‹OÓ§Ï»%ë¾ëÔðÄÔú#ú�Ö×€†0ðþäØ�ƒ°NÞÊ“IU�•Gey�c®x…hMxæNª$˜Ø�²S5™Ò¯Ûm³Šš×=0 ®+”šæ7 f¨ŒP[Í:¼5m2¼Åý‡k‚-`ÿ�IX>q%mf…{T¼Ó¾eíàtؾ­†€r6qZ=—Ú1//£ÕÛ°_ÇzºƒÝ„4×§ëþè�w¶aã�mÛKë �Q±· ºñ&’£vÍì¼mcƒŠc ê¼ZZŠ„' TÖíàÂtk·y5Ôû%%ËÃÝWn¯UÝ9•°"Tòý)­^.ÿA¡¨ªf�Øç¬ÓÜ_™WÜ9¯I±½/[\V=#DF¡Îå -»#»Í«¡îË×Ö”ì×±\*˜-ëÊT¤|VŸ”ððÚ;a–·Ýí«–¸q­Sú’§)ý;)¿õz ØÏiâ Az›ePºb/öZØ�7»œzå&žœ Ɇx¥ö¥©õž�sIkì×±× Ð@¼ ´0~&7q~xPô1Üç]òØ—)«K‹“¤9·ŠOUZØ^³kÇ‹oj†?è“w|1›N�a#^;%þàÐŒ¶Ò©Cè-ºŒ9˰0À¾e:#m0õ7/z—˜š‡ßôç6jL­f“0‘�¨¹ÄQÂ-¬_‰3»éÙ ØÏi ¸ðÚ°eâËÅkŒñ*á•”A/‚Y¤z>Þ ¢ìöLTRõ�­xµz·0À¾×H&l(ñ˜Øe­¼‹e¿þF 6†wjñNÊd´`¬©ã(É=ð¹8é”ù |Àö–åð'Xâé%ÛÔà£P8;¯+—Ÿ5IÑ8e.óÚï ]†Wú ½5`{Ël¬èŠE±•Ml‹þÐr"ÅÕ빓ڔä~>lscˆ‡•³†çcñ¶ °cOI)IÎÏÄí‹ ·&u¤ºà¼I<°—î9°—,9ù@ûGªÕ‡‹Ü±ò–¹‰Ë$0vÔu,5î\ö²ÔW•yŸ{¹H$É?x·u,?½´³Û|¢ë¨Õº�8²°¸�ÿokÉpÙp¹:âY¬X;¸CœW¹ó¯5n8ÜoAAÊ ˆ*í«›1ç"òðJw“ŠEweÖu;.2*d“Í“î“î"Ág P¯Vd5bSËÈ ¥Û¶[b;•˜Î?¾„¨Ó·Ó·eÑtðtð ë–%dç.°°8Ø9ØáÕ2ð~;Ž-Ž-Æ®œ�»¤› ÔBäé½]¯Ò™µ˜Ôí¢†®Úk¼K"ÿ³xŽ�´ÖýˆÀö>]>]o2|ƒ¯˜7ùþ“HeHe¦¦ßD ^µøxñññpIwÉ ’ªý¾ {~g—rצ֦¢Î5Ø—âîcPôâ"xXVÆ}wx·¹†„ñÍôðz�|<gå]¶º{&ï¡'b”R 0åe1V…Þ8gzÜ´~ƒß‰.]¶æ„þ×¹ÈιÉÏ÷nIr…ßsjä8ä�dˆ5®¼Û\ê¾üWkáÚï¿,‘×F�Kçª;”é±!ÓyÇ„»TËùÏ•€vLmp£´›á)ñ³€ö½†s‚£¸ÅÌÞÜ0‡£6s† Ò�wúÅ8MH„øúÀ>¦IËžÙ5ã^Àû/íT”×cZjù§ ·D›‡Æ^OžÁ©$οFב!Ðy[kÓQørA/ °½e[OnǤÑL0u6й,Kª–ñökë°f¨TT{)¼êql&-4Zuܰ½e=MZ´¯êCÓMÁ³¯¾@£¤¹5¦æŽß̬W¢ù�€¡¾˜¥&�`ßk1=¾.Ï2õÁä²iV†mZ£‚ (ú©¥˜øžu§ççÚûÁ–LŠl¯Y±� »K1lšJ†Ê[¹ìÂk0õ^ºOÂ×LW¥ûƒFåÔsÖ‘ÐöÃ*}ô¢®¨çñ¬žsŒ‰8GîÛÕçÓëîv¿þŸ*Ð8ty¥ð‘W,žyÁâ\]5è6ÓÃû].DCš¶è1£­�ëäiÖ­|Òñqû¾r/²ó<Þóóšw§Ó ‰ž�º×$Fé'žKtDi·óxÔ}ù·× ôçî_Ë6òLeHòáÒa+~ˆáƒÆ.ŒÙÓEÎiâ‹�–б 0„M‰MÔt×S*C»}Íž™Ïb×�Ã-z™yë*hR½ŒêáùÇ¢^ñã8€ý~–1ü&8V„mAaI;猾8@øâdD½ÖÍùÖ²WÒ-gü#¹öß´Âæy_ˆ�ÃÀkJ%»Þ$·_Z��ìÀ�ÍûZÚk.GgOd ­ô¶·l±¦9馴7<çÙ~H8×à¨2ÿ]Çù*ˆ��>Ó©2؇•Ø£qÛû†ËeÃã 4“XT®¡­ÜéØ?È,ö=ëäæ“IŽ‘©³P™Îɾ™à*°öA=~ oh ¿ÚcŽâyqÔ­Kc·càìGûæKmÈœ°fl�޾h<îwO"¼«Õãq—%í¦G¿¾‚Ð FDHíC\y¾¾/ö+ÇÀb(ë>žË 캫ÅFZ«%êÕİ„ív Œº/?b�?ÀCX{¨o3úY�¦&u¿•[@ùHäŠtÕã×1ÙlhrgnäW±Xu?À!½ØÞ·e凬¤³Y$‡Ö½¯½„=“ Èä�°Ü’L{oИÏDóV€ÕùPô¦&Àû^³O¸u…äQÔÑCp²œ‡êH8)!§ûÐ|.¿ èv«È±&Í" °ŸÁteHí}‡DºýzˆÍŽÉ»ñÒ˜JV,àòD�lQ¨¦–‘d.MSxxØ^³µ´:c¤òt$s³o¥�c­üYo„éãž[é/$,Îo—È£ 'k °ŸÁÊ Ò䪰ïOŒ–× 4û/К^ä#Ó!´[j=©·/™‡®9õß¶0)ÿ ;zõ-fâ|=ô ó[ç�Ô‘çö3ŸÇ’¯eE¿Ä.üa˜&¦]Eà[çöê¦¶Žˆç|¾v1=¦Qr›2.±y¡9S낪2ê:ô¨÷‰G�C½æu½ Ôq‡±M•ôna•nÓºOÈ:LûlV”sy@&= ¯d•¯v Þo ù^>¿×ëÅ|ØK‡)X³×D|üÎø|ë½ÊA-MÝœ Û�–Ìf^ÌΦP°ùY [GKfwK¨«­“#3ˆÂáu†Zò¡Û�Úøþ7R…¦âswr pƒÁ|ˆÿžïg€>mÂBBÿ{ü´íx�EDÀBh`ˆˆ ˆXøÓó……AhÌ o¾½�su3…23£A�œÜþîy»ýûOº¡~‡Ä:ÂG1sfM"9†fÖM´w·ï�0}zM¯ñÎæÀòïQã(ü²L:d>uÃg�…<øôk?”¸'yëI‰j¡Kï_SµRµJª¤¦~xQ'gØ ¢¾4D¢ê�®ˆ¦·Ã¡ØHAvV××ÖÁÂYiÿq2¹§ö¦Èø©c·KXRô×|†h“t“tò>¢~x?âauZ{M[P×[Ó?»¯éº}œó^º‡Û¯bÇgVµé-¨½�Sâ¹›¤ùÑ1kD=fMš}%ß:ZMVÓ³~ëÉ8hÆ_9fïYS޹nuÜð¢(~‹…ΨÐÌ+“«:*¾î­¤v~ýÌ0ýÂc]Lí€ö3XóˆMè�*v/Bºs“|i ¦PÇŠG&ìGêÎ(õ?4ßj¡)9 y°_Û.ÇL;§ÜÐ7–Y k3¹¬ž–ùœV±@5â²Iù‡cjƒº“›qÝ¤É é€ý~¦K.“Ÿ„þ4å¥zÍ>Ì+W –AUýÞDã<¬ÜŒì²�ówT?k °½f3w=B]û©íÑ,slÖ+D¿v¿Œ«ç±n@Å­Ÿ¡GJf Þ¤ °¾Ž:6q]Ý0MªiTÔ&h�„³˜?h·± Ôk%D­çaÍX¬`gH’1æü‹–÷pÎ"�–¦JoŒ‡?`€í5 ‰’ÈJe?–c©ýlLN�’#�Ÿû¿Z{ûW±sôíƒRœ½QR/ŒÛI/Á0ç?¢Ž ¸»‘ô74_Ê‘š†áûËì6.€ú]’–'µå4^4ômb–BØÍºO.h¤žF»ÆZ'ЂV^c­�à¹ú•qá¯_³�"â'=o"o¡]ýü¸Än×,°|z�nöΗí˜P“�ø²Hod$ì8lÈ.ZÆ�â@™ï'ÖòNßΚ•¾ÿ×zØ{Økń̄ÌÒ–œû€(lQ4Ië• "IÇx�í† ì/!3[†}„}ôfyMÁÅÌŠŒ)wË™½_Y÷vûÂI›é%Ýõ¿ë¯^�håÝÊ»†¤{ØÈ4òxóx±È°È²J;¾�ï¼ïü«ŒÒ¥¿OÞ…ˆz¼Œp»³˜¬J«íø˜ª{þ�½;�†²ï8ŽB²Œ}¬a*K)ëȾ„Ù²“5;ÉVÖI„lÙÉÞØ·‘=["{ÈN–Q"¢�-úÝs4¿»¦zÜçt?¥žËû¿×1ç\ιþ¸®Ïw|¿8­�Éý'þnJŽœ7ì²EAP%¨Ò¢ìÃx·S:èŸDO�¥uë–ûuôfé® ® ˆ1:5¤”¤”žŽ}å³/³‚ ŸSXWXGÝOqdÛ÷“6¨êÀ¸RIÌ©¾Ú¹Óœ ýÞÞMû5þ [6‡%ìÛÃ'`�›/÷X×<ïᥤ>fN¦>»xoÆË‚µ‚5F‰¬Ý”Œ—âl!`€ý®öf<ÖMÔÙvÒN*N%®©¨Çhîߟ.ßµò�;|&gȃŽu/`€ý7Œ6ázÉ£Ü8 ;õ+±Gû¹�?‚ãJÿíóûsŒÁj•´²Xy¿GW³I}°³ýÃBô¹³!]ƒ• ©¥Iu)IôSaÕÕ�æÎè{ ”½DÐǼ`8ž+7&=lg†Óð•TCeH%0Ô ¦/~·ƒìsg~´}•?íï`�¯–å[èæ<Ú.r §9!úµüÈÔ€í~[Õt‰¡8ŒHæ+9µ6HN€…9jÀ�y<ÏòÁñ÷€ö³Œ Î'¡W œ¥ôî$•¤d˜dCÌØxâªd‹÷»T[,œ[ðfϺ}™Î€ö»Ú(Éñlâ·4C�Ë :du|qü&V?㌅¾� cLœR"ÕQýdÜi¢/ÑŸ³„ +e ×'òýÔ;×}J§vzÎFß;´Cª<˜ÎÏ*Ý8Oß휷«ƒMCÜ[]’Ю“:^J¼Ö”EXŸ=g:¿„ëÛßïh.Þ/r1ì ¹o Krt¸%ñNßï€üõU´æ«ÅóЃ2ž^4*ºKÎ’¨H"/{_öVy}M‚G=áVFÆݯsÛtÛÄ®BCs˜A–­ÒÀ�,ü2"WßQdEœT’Û¹×·.£:$ÎÒÈÒèØ·ôßÃcÕ€»Ç%T©ËôÛMjªäål©"ËqÈq˜ÉD6„5„ÅÖŒ+„ê@žó²órCUñaŠï—o�oÀw[î?ÇØÊ•a†¬cq»ýôÞ$SÛ)Þà<÷zMBQÿw J4ÙÈâ,,LVK´k¶ý“NÃOÃ=Ø q qx^¢Ç]BÉFÉ–`ÉÚqç0HáóLE¾ì¬ 2v}K}KÔýÔJ³}?¥çæè^žR‚º›ŸÏ«m'"Ùé½ ýÞÞMûËüŽV©ÃÜÈOh½/Dƒ»ádñÔ4õ.–b.¦b[TÂuFkÐ�ZFFI`¿ÎfëD¼SíÕf5ï7�Mïi=mGúK½žæ€ö;ÕÔ)ªš³Þ }ÔÝ.g²á­ÚšK¾Ï-Æd>:£Šd7ñ³,›ü¡„å€ö³,øJ!C`Yˆ¤Æ<“pÚáìñà Œ¨4-ºÂD îÔK­†f0Ã;û iÜø÷"6uüGÙŽ­Pž‹¯Wð®=)qà˜^Øm·q_•/çÜiÙ¸†€ö³L½!C¬¯Û"«¤cÃiσ»Ò•†ð6žtY•éœõ¤a»>OâÑe‡X À~� ™T8ñw@`N5oTͬ/¶ªÄÂh  |óJ[>—ʦ°Ð«ÓͰ?Çn9ò*o¼nZšž²µD0sDtí¦}µÄÀÌŠÆàðá`Ö'óF®m­²6OÑ×iÓL¡Œ8!œU—¼ìöî´N‹~Fã=)Ø••¤õúõØÞò̇4š¹yCꕌ � ¯¹Ž~c�–çËuÚ`ŠíkùxÄtáÒõ³­†R¨XŠî´®†~-ßÚ£°?ÇrÁ1�•™`©¬¾‰õ7|L“Ýk&¸‘�3:ZÂÚ”ž=ÒE2“.û=M0ÖGs«Êž¶Ì…%\¥Û;ºÿÒ�ä« %’l˜ŽKòHÚÙ¡‹óvˆ´§€ý9Ö×jï�çNãÉÁà(Èó =ƒû(½_ û&åãʒرx±"ÛNÁ™ZSÀÛmvG±,Z90DÊš§qî>Aº¹`}Œº=éĪuƆo¯‘ÿû=sôø€ö=SCtåïÑÚºîD\nx!0Úóèùñ¶äÇÌBúA 7XË�òiÕâÌm9wö{=î&ì‰ÿ{â›eë¢dk)}o1‰ ~ˆö¡pŽ;-çQól-µ0À~ÔH^™Sâ1°H­¼‰`¹;,óO}1%a:”'ÂÐæI&÷åH±„…šý€í.Ëáˆ5ÁÓ¼gÞ ÊuœBúâ‹( þHxÖ4EÛÌ‘°>�Û´9X.÷WèÌÛ]fnJ[Æ¿ˆ-£oQ²¬r‰Ws0%,¹=þŠ«ÿÖæ8;„zOy ÞUãÉ~À~Ž=$¥$q] ˆÜDgFjv·Ý"ÝMgXì&»w�°ûx­`ñhP„”InÜ{’ôÙ°U%î>úS.G ªªXíßÞi6;µu?°YŽÇÉV›ªÆÜ”©ÿÎ^émØéd‚Ñ=R<Xk¼Ã¶NÑfÃû{1ŪÖm|0¿ž C¿ý?<[n Ájá¦æb'ðN”Æz;ýÏÁ¿>ãeüey°ZÐëüy´Q¨*Ün�Q�I’K’{fÞD¥2Hñ3—=ñëše›eÛÌŠŠôç�éQ�ÞBV�Œ‹¥w¢É™äýÉ‚íúõK?¢ÚªQ•V•V>9~³^%ÅÕs2ªD񽐅kËÍ£9ï!}4úhû|ÜÜÐÜÐn*sTxê¤3¤3ÊDÊDÉk ߯.¹.™ÍVJh‡ˆôK›‘%n·Ä$*‡1²%nµ–ƒR„åß•èÍh�3‘á¤(:+:¯\_é'Wðý'ÕÌÔÌ”2.5,5œFÖ@”E”Å4V¥. , ¡þy¡™_&CÖ*O\@\€ºŸ„?�ïË¼ÔÆzÈ#04þüÞ)™�ÖÐïí_µ·²þM¡Â.*\Z�ñ §Mñ®àý£•*¶7Øo{uïQånsÔ%R¼`?j8J¬eO�¬.œÏa}’1KPëqìuãµo�àÆè>†i“ÁV‰uOi}½!Àû•¦âRJC%õ�>‘¿cüeß´N-1ümO:×Sèäóžâ>L¨»¦W1`»Ë>V$…¥Q¿bèm¥µ{/,WÅqþ¹ª$ƒp´öÔÙ¾5§3³i~¡rSÖ€í.lwRYU в/¥��e4bPRß yyöÊþFÍòÓÐÕX,ùŬ³B˜€ö£6xÍ®.C‹›\"Íôüƒƒæ�!·(žS‰0¯ë!¾ϵòˆy?&­_`»Íšˆ¯š³Ø•ż‹ƒÝdªÜû¸AT»éÜ�o™†ìÀªBíÌ#¯û°ìH:¿ú\¢à< G4µÌ²NC¬±Ó\h#?Ø[ÏïýJq‘KÞ…‹óM�9“ òúí@BãÊ0Ã^(tz;m�§™u‹ŠÜ÷�¹Ð‰/çBΟöPÔ¾OªSÏl ổžÞé=ýZþí=(=�ö ®gëùžwN¦�¿zD�¹¬ë* ßžÁ~r&hûnõ ‘0+ÀCÚŒÀ«†�fJûþS׌ꌳX´"qKZ28§å«À®¥PÐ� "`ÿ{–>1|+'¦ۘ„*bÞ%òæâ(Qã¹ f•è…Ϊg:bO <ƒyŽæöë̾Æ6Æ9�—ã-«ŽËŒlv³~0nÏ~1z2Âð­<Õu»“sJ¼+#€í.[lèˆ�sƒåÔáC�ŒåÛË�q¤Ú,ÔCÍ-�Sk1¨‡‹c>ÍŠ Øî7Ü#æìÖr>³q%Õ ª2½6ÏÇ~dße8™ðK2y&°á¼Ä;AÄ«#Ì<èÏÀa­m�ƒ¸CØO:ö+ìô œ]„.²)®dvà©ý‹Æ6E�L¡ÀþN§Ò~š-§çZÒ¼o™°º ¼gWG`2 ÍÕxßxøöÚh x±]IŃ«9¾]Jù­5ÞNk£‡þúÌžÎ/³ƒ/4£wUçóº|P¹³'P£šXçç˜5U.ù˜K}Ît?çë*A• ïШҨRïd*L«kÈn!ÛÃóä•s²â¥+Ÿ~„$^DEv‘¹‰¹é26�Éã9ª|¿¹S¨,¸ömçl’dÑOœl�,§0§ă,4!4¡Ã‘¬U‰%L ¦Æf » WH¿—^¯^/�Ê£ÿœN(ý�@:² ÛÛ=¤ n…m7 Ç¡G(h6Ööý�*óF-²\¦ÓL§/'GOZñ7@ÿI\[\[j—�–�N, §Kÿ,ñYâ,Ï5f?f“ÜçQ|Y³²C÷ ï ïþ_úOk£Þý©*¬þ¤%1O@CÊX&1;½S¡ßÛ?cRÀCZ·ßµÌ‹œÊÊTÏuÁŽ^Õˆà±,pi_X63†¤A8¼žÉt ‡4°Ýoïe ¤sY$‡6Üî´ÄÔ Qd°C™…ï ¼Óiƒ3P/ïõ2uõÃlo °5ÓQÁØÄÛ$E!'ÁÈrÂ5‘°ySBÓµG0®Ißlñp¬É1#Í" °ßÁ4ÄI-Û®�Ÿð$6:#åxŒÚP¸æ-.{(â#…\rIÆÒ´…“ `€í6#|B£ö’TŠ–d~nRÌ6”Þ3{ù=ây1Q¼[b´�‚ެ0À~ãªÒ‘N“¬ÇÎÓ+{õ¢ºy,æ�òswÃëÇÉÔˆ,—ZùÏiî»ÇNÛ‘üo›¿ˆg�%�üGFb¸&¦Ï…DW]yÔ»ýì§¹Õ½;Y¡-8Õ¥«Ôaݲ\ß{·—7´°Aþ>Á§r¹U¡<‰:%´åÞ‘¡â.'ƒ~®�ˆ[Ew"¹ÁêñNkYBK�;èk­èß¡Fß¿}Ž`ýrµ½–ŽÀÑ¿ÖñµFY�áˆùŠL.;§þ ô3 ™€ôóðÐgtåš""³µwÆ©VŸ¬…�äwšÑ¡ÿ}{%Ê­½{c�œ�½â£#¶¾âú�/æ–æÞ·¤V¯ØóE�0¿qÖç—3:ÖOëÔ| |‡å.gÚQ¸5õPï4SA¿–%4íÙâÝ`¸«t£˜°6 å?Âì¼ìá�&ÇuÒuR€íÑY†éæ?i6{«…Z�Z-¦‚˜º-„’IÙâDãFãæ{úË ÷WÆ ï£›XŒX â =ÿZ8¬s²Ž°h¼©i†›í qÆzÃÒ{Âæ~À–åi‚23Ç‹!,¥�÷UŸ~x£wÝm3 D¬ý•ˆsÿ T Þ=Ëã–Ws›×>—:8’¹MžX÷;hB<ËaÚ­ú3Û¥ª¹koøi¼Iû°Z ’ÙHMßs”ksÏ"Ù^¥Õý™NŒc¶.ï8ú†¡žJ;¦[çb.G§3ÏA³n#ÏéƒäÙpÍ4QûõL[ìSk–jñÉÃÀ«-¶ÛÙŽoæ‹¿bæ|ø"V®=/ Ïõ;–€.³c݉À’(m"áF‹�£Ój/Š�$ Äœö’*ÊÀ”NVzÜï:™Øá²Z�{؃Aü•Æ-Å.eŽbYN<‡;•t:Æ´PŸs^’¦uâ…öóXzï’ñ §»%ÒŽÓ-6�yyŸP®Àcmš¾â .Åœ©¢²BlÒéVZ7ûõ¬°ÎSŽ*Öû ìîÑú·!g{½£µQ–<8P]Ʋ–q® ÊI 9¸#Øa³GÞç3%³ «ßŠŠ“0%³³~¯=½?‹Ý¤ê`hÐîZ&¸�²´üñ��œ>ú»¬ { &ã¬n¡²ôÎÃo¿9ÿvD#õʈ9…ÖǽÄe…Cöª¥¯Ú¨Úp�=�øŒ„ƒ¼‚ÿ•WIŸPÇQÇ…ÛÃC»òn£<<…ç••,×àç5‡ì†¬ÜÚ¾Ýõ¨é¨é‡%¾Œ|î“{ùïhKîÅX­S¼[-Ÿs ëë„rxŸ¨>QÅ�áá"ã"7¦‰†íÕ«­­ãã¿ötúã_ç\ê\š)é×ö÷…<˜.ZX„G¿›Ï¹xkL”ݺæ¶pUš,Æ+þhdJ—ç¼2Z}#}£îíá6cÁ–9¹XŠ_ŠWbø¦JÂJµ4ï\§¡ÓÐ;š_&1º¿4xžL~y~yˆÏ™ìíˆ"·äšE _è=Är>è9â{ç%¯*È�È©ºx ¹Ž´«”ܺš zL×x¦TQo,é¸þ•çL<ûŸ3Eþ¾_ ·‚û¡/íê‹P<ÒÛ�=gB<ËaÚíö-lä“ ·~¼. ¯©ovÎå:-“ge7âû(0åR„z­ÆÜ?øÜNÅÈìÇ´‡ '5¢;±ŽC!ä)ºŸ/ÚŸŒ=7¸t+¾ŽãæØ¹ó`[ì\é!À~=,ëõ91 ÐßÌ=ÍÈ ©×,Aé)ÂK9}ï“?’L)1²¤ó* �Ù0ÀàÖæÕŸÙ(aZAa»ªL1têí!ÒpÒ—jMÚR?I'LK¥ ÞséÓÀû˜(�ö‡Ø�F c"Š…tÚ»Kê)0TÞÏ"úO}<&³.øösÛ(N*Þ‡>\ãPL0áNúDâëë1›)´‘�sL%L²„mF„\ÄWžØ�j £‘.‚ŽVÖRܤ‰x•å¼µ úÁ^a¬¸`é®ÕÏœÁ3YnTL¨€öÿ0ÊØ;…5ÙQ¦ÖÊö‘¬ýœŽ;¤Q/ÿëÝë€ý<Y2_#(}!‡¥ÏÞÕdXëïhSöñ9¡U½¹�™aÅKüð~ŵƒž"î‹ —º�Óǰ¤7š}yD|ÐÚ­‡f;¾’L�Œw ^IGøI;áWžBö?'ü}¿ƒ)¶R†w ©´›ƒµMÀû ç„ˆgù7ûj;ü¶¦Ágw"Yj–ÒuOà)”X‡øb†! ë2…§³=3›Äa[É °oegòxD´sù3d?ÔÐ%ââo ŒÝmöü�h…Œv?¯‡Á½#Ý0À~TÆgËTÀ{O1Ðù‰Fƒ°š' bhþ-ög÷A¯Õ뎔ç0¨ë'äL|‹ø~§ ú«ûÅÝ)òù¯yDOQô~ão¿!(Û?3&bm³_ÆÏ°_,óÎ^S�““z[ã­ã”dâÚ‘¢Jÿœ8‡8Ç€¥ ¥ÉExáFAðHῬ»ä†òéÝ­ŠÃxb/þcM­M­/e ~¶æB<óS»Í�“Fív㾂'gÛç˃�$†á¬ªâ�¦V]}Ä’ƒ5'¸yûŸDèNèÞta]s]C1{´ÇÁ�ƒåR+jÚ@m Ò�/˰ݟ¶5æ©O1u\ä=�m-ë£Þkáv]Ðð�åʵ ÉGþó·3ÎìŸÛZ(vÏ’š�¥usJ–û–‰æ³ª¶£øÍmˆg9Lûe~D+Õ`h€€-¶¢ÏS o:˜v%>ÁA–ÉF’)b‹½Ck�; J+,ìûÙ\µ€g¢�Òœjr=á4JËEë£t|çò§z-ð… :Ažo¼ÝQéx³Í_ömÌ~.Ô Ï�Á`òxücÒôüi!¤Rmå÷q`Ë*¢ÜÊõm;WP´7N/`€6ÛT¯]¾ž×°:,iúôèyÉ33rêS±[§ˆG¨Ag&éÚÔ©ý:Jûy \2Åôž~@,ô 5ÿ‚à½øn£H¹3”em”x°#u·@!6‹^ù`Àûž6¶@n8{£X³S †äjÇ/Ô†N2‹“Í[ñyé|ìu7Ñ °ÁȦ$È*¯xâb�w;If浨«~ôÖ¥sߦMà¡Ò/Ip¾Â¸ Ø·2ûç4�ŠDU�ó'�Ìõ÷…%©Q=�±äL¼ÑR¢gü)¸³0ÀàÆ‰²Óx8Ì|z•D>ºöªgÕ‘c§µƒ¸Œz+Ìxà8fOKEèØ·2åú4¡¾nÓŒÂöM”‚'â¥zy­gS¥ÆÉŒæ-&ôÚtÎÆ±~²�4ÅìûÙyÃÛ£�vº‡ÊÅ8c‹'ÍK‘Aõ8$ï"Þ©Kg“Y>î…ÜébØÏc0è};.¹ÍÙÆOÓSVfã ì!]‡i¯ö¿1RÒàA¦W‹ }gÓÖ)ËÄ{µ¤X#nZ´Žrè k_ÔƒîÕ¿¿#–b¿¿QûT9r•«¸©ŒB5›�ž+ VVŸ;¤†nö ëWîÕÎî¿Wó'Þ=Ë‹lÜWËǪ‚›XÁLð {5ij|mG!`?�e“F˜Ò­Îø‹e¼àÛXà9>í^7DíœÑPãW'qïÏ¿4áTØ�i|‘^ªÛå6”ENŒÁ •G<Ãûo ˆ¾+‘ÅÏLÑpJx“teàú¢õxR`?�õµØxbÞ¢ˆpg§±ãcOñ ”D¯Ií;r�¤®´0r$Z(ߪ“o¦Ê0À›=–) —{”óFÌâlÃ|2Nª _m„² ÁØšE;hÓ»Wé¨ dež0ÀþʔƻrPÔ¶ï8àë]{îΪ9ÚšPÇp^Gįþ.S1+�ZÚü¶c'`?¦Q£o¥¼z¸‚w¯hãX˜Ô£*¯†ûÇ`ŸÃ½¨F ŽQ/»‡T¾^O, °køïLH0iEòWBŸ D¼ÅT^~;x6DÏr?�óf¨PìR%`‡Ë²Ø# 1UcLêϰ‹_Ÿ S�„æeL·Î\ês{@™…씼Je Øá2#Ê"Èò‘K:¦…Ÿn «Âž%´EÛ;?ÜÞ=EGŽR�yÛ`¢°oce$øÎK8¡~TÆ–¤·¬¶ñ†Ó7,“ÅÄ€»?“®ç.³ú…ˆfG­àG0"þ‡‡(0ÿXxêdCgwöGa*�ƒþÃÃôÛoΉîo»õn"b‹Ð/»èº×TÖü^S”­àV°¾q÷™Ç]Ö~tE²/þœçEÏ‹ZK  ZaðoJLÂSÓ‚§_°žãïÄÇùݲ<ù6öªOIêHêPZ±cUĶ™Ü+:�_w¯fíD“Ýj#¥‡†‚Ëá5¢7¢[¬Ã©�ÔŠâ–÷?��}Mÿš>uö„â_7ê2ê"{»BëïKð|gß�o72‰DBqùÝJ’ˆ dÆÒ©¦¬ÿhëœÚ3x£O††j#vä—í#ŠþISS²þÉfÉfZ ˆá*†Õ„Õ0O9šLôOôÏ~dtc‘ðnJ¬É¯É#Þ5˜—¢cPK8±àä–—3Ù,œ<è®!rj;ùQÓÕŠ[­œÞÆKâÆ—�+xñ 9ñ,ÿõJwÖ^¾�Lmïs£Ž ÔÑ·Y”Šr‘oƒyP`ýDǹÛX8y•Ç‚Ì n3¼ïê¡M$—lú%\õ«õe2ÕBÑ ›Óâ|9¦¥ËIs�_rãðÉ öëYêØàý¬ˆÂ#Ćd!‹N¡÷‘–‡�6Èû5)„/u–¿ÖêÐu÷?ËšØ÷3›J«Çg\ìï™4œf¤2›tüÑ{°„ÎR‚ƒ·Ÿ)(nX_˜—MãZ}ØÿØ»óhªÖ>€ãH$ŽpÌN’ÌáÈ<$ó\Dæá˜‡ˆ�©H†’y ™§L…J¡È,óì˜K†DQÉTyۯν9Õu׺ïÛUmŸÿ¾Ë^k[kÿáyž½~{{µ7umׯ‰¹gåWáﲌÝ:# åL·›¯�[XqP�¢;%¾ó€ÌÁp\°mÿ†ËbÁf£à7›PR¡¬.Ûk72F/ðOæ.C…'¡J F¯$^ ŽO³Ü1÷G?�6iyXÝ=©3uQ…2‰Øà»³»Qg£‡>]ãз™|•¼6:$ôKÇQ|½ä¥PB÷òTóT§Ú7O[ÌÏh·»1| §§„©?¨?8G xÔ¢Ú ìØÍ,ÌÀ•–Mq4ZPôáÐzh}ãëXýä�Œy�½ä8(iDXubÞ¡X½b~à¹ê¹JÅ P�R�ÂZA+€Ëʦz�@¿/232SˆØŸï¯µË_7NNTmx-s޽BrÃòLö�"D7ùù??:´�u`8£øé'a¥´4fµJüï(Y)Yi]òò¿)ƒB]¤Z¤PãQ53³–ó¥¬µÍØ#kô¶f¶fèkªYÍ-WƒL¸ÃØê�:õ+oµ¦Ê»�¿¿X䃸ªù¾ö3õ-*çs„®öw¸Üë7¥þè2rJŠw�«Ϋ¸<œ%;ÿ¸/úk*´¹ôŸÏF}ûÓO0_!)‰kØ3¨†e·Õš ý^~Ä R°� h]�^m˜¶\jj”#zN>ã¡Kb¹÷ú"ò˜0$ £ŠkÌ�·pHÒÀ¶ýÛ;ÙBÉ\.1ãš{pS\•Ù 68C²p¦Àk�–b:ªEl3·@ÌÖV°�íŸ6³QÁøäËÄ·ÃŽ2fAó£‰ù’óµß cxI]jòA:U曓䒂 l?CÓ'±jñzry~€ÈXî˜;•‘på.![øø:™BêCâoŸë“¹œض[ƒ4PkL’£!~5÷LÌ>Úl¯w,êÊ)ܳïÆGîÞ/î’-"£…¶� l?C;üPG*C²fçMýûÓ�Çâî¨�xP]à€jZ½mæ?®µ+‘�¦-õÝ®ˆxWZÑ*­Ók1`ú™$»é)¡Öö³Ÿ÷ƒsÛpžVÜ[~JÑ%ø{k{%#K;à÷ >ïwÇ­Ê¥)dð)‰��m7Nx(È¢×@Ľ¬+™Ôp™£ÃFb¥Œ~ÖŠþ5úüô}›ÉåÖG´NW9½Ð,ƒö [,ɰq HuKÈõ }O…³TKDdöQðÊ冕ˆ=J[í© ÿ}Ø¥6¾µ¾XʳÎ~:b«Knïùâüµ‚yH¬§Ùn‰c~ã[\›÷TPû…7ª´+vìz$ßd�$W^L¾Õ~!˧köÉo�%ÎŽ.¸ïKGëP˜8WQ�s@8 ¯³ó+�T?†Ð~MhPhP¢àâ"[ 0–w PmØÿàÕþ5þã)Š ïžÝD¹Q:!9!¬cá 1@IMÂD¡ÅË~²Afú:~U' P…¬B>°$°$¬¸k£(Dyx¸ ¹ �-cß1ücø7hã¼þšvkáÇ䀺ãºÜEa.� Zmszé �}þ”÷‚�ÏWp2-‡=‡�h¡w|Ä~Œñï}#úF™9Æ3ÆSÓ�‹ÇéðÓáå±û©ÆkÇkáC_êIÜlä9À_¥ÙýdzÍüù½‡§|I&C go9�¹7öPmµG‡þlï+¡F¶æñ$À²|äÍ{_–vš€ l?CûÀ7É0'¬ý<´'½ŸTÄ‘·%xwéºé¯’c\ láŒîI¸mul?¦ÍKÎÏwq�×{µ¯Â´ÉRMJc˜™ÓŠ+NI]~©�íEuQðLÖc°�í{í=v¯ù¹ÊÇæT*¶»Z#­cì·Ó÷Ã~•¦2»¢N‹ t×OŠem»•á)ªaÜ‚¾º>×-Û1Q ½?þøñ œc«5úk˜¥—ñŒØ;v’\V®2Ñ,åþZi¯‡�lϯ%â`�éc Ľy T Ù¸—àæ†Ù5“÷å.®”ç'WB¶úŸý^¶ÓlÕ_¹É>š5¦  èÛÝ‚Èä¡°\àz¨GV �Eê¨LÃF;ß~´ú!Ø~¿vÇüx]ÅŽ53Ý ü»Û¼³ÝAò^Έ«ó#ôq§îÊõÓu� l?Ck·„ÔtŸÓo«µ$úù.ÃȨÁ ö5&_WÒP§!_û�¡¶øºëé4ç$4•æ‚¿±–äýöyÚ0Lz  7½7çE…X¼µ¿ÚVçi¬Ÿ®ÁlÝŒã¨ó[t«i_z°‚2—ß„ÂÑ©8¬8Ì»ãå[kÇ2jBY.º¯Q<¤xHÄÑ[Û[[Ð (åò߸zàAŠ%6í¨�õ0mˆçÉ@ám÷nðnà{d)$uNÆå²^¼-ŠÂÅô[Î"ŸDà(—=ddè·`ƒ°AV |/D("tØdؤé¼âûî¸ÝqÓm&KÛB„HH€;¶A*Ηùéù Ñä…$4ºó5§ÿÔtôEËeÀ.ç%ç%|ó™t™ÂcG‘O‘O&Ñ¢è¢h®0ºË¤ˆD?µæ‘éÇÓ�‘Ý_Š¥ÛŒ]PžÂ[É[ùdzýù�÷ÆÉIz–¼ B)«ž=wµ¶Ú›@¶·Ól¿ß­=3¦õŸéصÏÑ}š«o髱nùáH¢ÂõœC³È|O¬YcŒã{¬tw€í÷kúê�À«l›E„_kR—›“àL‹š°z>ÞܵW» �¨YXøl/Ø�m{5'Öõ¸ÝÒå�Éá8I³ôzýWRc©XˆDv?ùû¹xÇG³Ä5‚û½&nƒm{µ�uç�ËCÄï?¨wždâ*Uå&r¹P »ÌÔþT»ˆ[Viÿ“sH°ý:-§wÞü··æú9ƒ¹ã�1¼áûZuƒ¤˜ÜK¹³%+TÅ8”rìõNƒí÷k%µ¡kj´IŠ ë&£yz®ë÷áÂvšÿ†@[M~0ÂÅ l`Ûníj@˜PnêA¹|SõªII)ræLNÖkîó¯ÒÎÒv�‰ ©×ï|Cr1nÇü›÷èûLÎN¤qêÔš$¡w�®ìößjŸ ý½óö²† ªsT´�¦¼;Û4Ë<”Sµ1‚a�‡Û1*êÌ¥â]W¾±ÏÄ·yŸ)úy¾Øž ø• ú¥»1D\šž[í  ßËvšíö#ÚØ¢Ü8Åp×>Ë ‚[ µz7œN飯SËëµêý:Ð3{WX1Ø~Îv…é€ÎõŽÝ Hu~ª,C�÷ M‘O‹²)µ\gŸ©·ŽrÄÛ£4¶ß¯‰>è dG†¯² †3é5IÓøJÐ<¿´Š©RN†%ç¶4€sÈl`Z«_^£´eµã’^õˆ2ÀG¢þ@í²’�q†A¬žæ�ßqÌÅ�`Ûÿ£IÂÔð_'­6J›“R¿¬Æ¥¿8¯�5€m!ð^âh?Û[†X•W�rIè(Ø~í6Œ$È&zÝ·Ç<O]Ïy–Þm›¸–EÏ„¹Œ9NÚjå%S,Ø~ÖöòI¼»¨«ý3y¸8E:QåC�Œº¡^ñÝÉQJ�Kï¹£fòÏÓ2cƒ lÿ�F“t¡¤º ÁÒá¤s!ÿ·ßGÓ"òl-ÁõZvY™-–µÕûhlŸ®‰Ùlb¾)_þ—ì.¡DÈ8…â.,'+' ­„B'ÝÏøÐ&Ÿ7ÿã Æ"K]ù]ù!nA›øR€`˜ 1¸hæ¹Ð¹áðDxŠïŒP¬P¬Ä„§vf&?Š ·ýA”P¸_Ò õðž¢ræÿþ,N.NŠÕRß§¾‡‹#ÕQä9ӌӌOÂêCHñ}Ú Ú œÙÆímœ-®»  Khc9Æ�8– ªøã®kÆ<™~JRgz¾¦ ˜ž«‰¬‰üÀ¼slJ—8øïP¾¦|Mz%U>UÞÁÝ�R³A³A, õ )©!ôK&›ùÖsþ˜Áúy¾ƒ%¾Fn@E²‹‹µUÄë»ó…QûÎèÏö?™ ¶íß–u�3 ‘VY� Ñ"! ³¢4�ë®Ø!G¨.l,_H-<¼~ˆel`û7ÛqmòÙÎâgªW‡ÆSùJ¤WHI‚ðb1G ™#®åpÜ´š àxW6°ý¨v¸˜OB¿P8Wõu5,�¸dˆxM �xê)Ùäû:Ý Ç¿¸‡É»jWŽ+ØÀö³¶Qb޼D Ôƒ‹t:Ð*¾~Së1�½iRg8VÆÀeyL¤"¶Ê�!:‰¾n6*—‡¬>½x²cÕïÞÔVë6ô9ƒmÇJCi­³ixîÇ}ÝíêôˆÃ;�êø¨òÚ�߯úú[‡7¯Ûš©7î%» _ïì”*ÜÃB÷æ£VBâ­þÏF¿—í4äglå:Lõü›×…¨q×\,ÛÍÒ# °T 0UîŠMº@o³gP#ãFÉ}°ý{m¶JÄ7ýŒÆ¬VfôùŽfB˜à‘ÛS½6Äbw:0|‡¼±aÖÝ`û1Íy6æ‘ b‚!%˜"çös1Ìrý“ É"ƒ»G¤…•+�¼0®ô‚ lÛ­­i×¼±-®_•³ŒÄ¸z“ªì¦Õ^¶¤ldc{1¨OÀZµiÓCÚËÀöë4HÙóÂþÁc1Ø{…_Š^Jé2‹W;Ló U‡†h`g­Fô™ÜW~·!`Û¿ÙÆc_ÒAêyN7�êvh àGx9 «F4¦@�‡¤(çìý Þöz[‚ l?C£œ’¦¬Tôݳ‹ªëœ\^q³¶ÖÛC˜÷GúT>Zã²TwqŃøÃ!¥`Û�j¡ÎEtWï‡Ij¾bÎ8�÷$4D#6ãmQ²„wúéæ2#ó÷˜Q}`иñ£? è\=ľD~üz�²ï££ûØõ#.»? 81ãCàZð\>áŽØÀö£Úɺb}]–¹%mk.;îDJ•·ðdË�SšÍÙ<3j5àIf]tŒ·$ۿׄLË ùÛ`Y.•/Õ“ÍmN°.Ǩ# ŸŽ›ÖV* ´+*òÃêp7Û¯Ó�þN¼jk/ŸOÙ[�3qFwn§¹Úÿ¤Q0© (¢†B™^a»Y¶4ËÛµ£Ÿ«e$™Áéq¸"Oû8Ðaou®†þý­ÄcYÎK)«5i'ã—xK›0Pkpîç «Q5†GWÃ^fýƹϷ߇<®-•çû0:‰åè@e€Î©­Þ‡dÿt Ì{³©I¸)ºáÄ/AO¢¸-$E¹ddÕþjZuGuˆô)w³“ûl¾–âšâªÈʼȼ˜í0pY“ £AÓYEÜ£€´>º=SJQµ#ý"ý^Úë]>§Š‚»†g�"�R`C‘ ” âfj‰�ÄnÐ4ö7öÇîãBy‹‹„#Ẻ¢GŸsó¹ºî9÷û»Wõ>Ïÿ§÷éóÇË9ï×8¯÷ß)..:n5{5Ûl²™Úéi”ÍÒÒvÒvÙ߇Ht´«* Ä†h6h6Àã)ÿp<0Üœ´ÅÔôµ¬àÀW08iŸrlwç%`¿Ž½$Œ1¢ÞX¹úb˜Ÿsbû'ÕÔ@×–>bTÇ‚º*Ÿ�{�h¾ø”ýÀ~Nã‰õVÙ/·&-¶§‹P¨„÷Šî·™+•ÃÎLU·ON‘2ûh5™Òدc}﬽��HbÜY(lxXR½Ã®#Ö¤õ_…@PWV;'˜oÙÁ³Pu0ÀN›ÉGËf_5½Ô°ü-Í�§6æ¦5ÎĦiÔŽO¯†#×:ì29*`€ýÈ”&;³aU÷Ýl±JtnF»3jŒ·$ÕÑòj ×{Ò—0rªV!,ïÛuös9â^j£ÿ:Öƒâí3�%«¼RñîF{“� Ø=¹&éYÙ½•\`ÿÔ°ç �)è„ó7>DÒ=zÏ3ƒ|síYÂ|Ø¥Hóiì ¶{Q‚ +•(€�.Ëb‰ÕGV‰7¬¸ÈŒ/j6ýX™+*ïÅ<~ËÂmþð>W?Ò,ûçd€�.3¼CZ̵/®mTôEÁQeðYxRkÜ}ÿý½q&jbØ’dg½©~Àþ{ƒC€í°‚…Lf€cNèd¹�5zš¾aqš,>½k—p+g�18òªþË'ëØ1t�{ &eˆHäbö h9ååôÖÎ�´×;»ÿ<°Y&™õ|U²mS†ö'k¹ÕðkIh£°W/ Ãl±¿·L·�6˜x�Ò -X¾mî ý罎£{ |ß¾Ýw75â…žÆ50,NnVü¤µaÈßò_Ý…k‚ú€7·“‘ô®òxºížPgÈ3mÆ2KO&?�.XE¶AMŒ›DÃ!â§`®îÁzž÷ÒÄ5f}LT»0ÀN›5a9ÒYÇ, :Š—;õ±a�¦ïngÊ›2U 5Ô“¾]ç$†ÓÈ8¹îBÎã©eì>žy‚ �\lÜœG‚¥|Ò<~'…ÐKËw}£0ß>ùvÁÚǦ:ÖDŠœWýV˜¼ãòFÐáÓ2^¶;x)Ì‚�£�Ž™Ç_>þÌ`K§û§w3Ydø‹Ø¦âD9'�dþú ZßÑw©Üƒ¬ªçûCÀé17‚ó ODMD•€ÎÎqãM+D�íøsËÝËÝØs¦£¦£�pAí^T ª Ômƒ›í¨ºj”ƒÃÎÈ2‚ûô¬;ª;êl5Ýç5ÒQ+pKíïwÀ5;˜Ø¦ î>(ËT: Jèëˆ{—Ê<Ñ<ÑÀLMœ`'éeÒË{ä{äÁ Ô ?î�Õ«ç2_>ýuм«) p…“áóê¨á:ìŠ3˹ñ B$ДP×¢�ÅêíT°^°^3ãçåàëº' 5 µ|7×\×\µaÈäk´«µ«µ4ók|µ}µ=5¿¯¿êhŸ‰@E>oLkL�'»ow(ª=ÇÀ¬¾™ÑÊMàÊóSàÚIëB�cû}§©;c/Ïv¦–Ïåq»$ò8g%Úâg(:NØÁ~<*ŽV6î›üá&€²î¹ú�fqë~1Ýj]ÙtªQˆEoÓŸ°ÎK—æ8¼æÀâ‘Eì÷³´‰÷³bŠàõðõ‰"?ÚG=„^Åh¸ܬ½ÒQÞ­.Ø~Ë=äc6`ÿ�YWZÆØ½bgY¥W·_�ÈlÖAìA¼DŽ‹±ÿJAqÛêʲ\:ûÆ0`§ËÖêÛâ¢S³ªQ9Ʋ­ÅqY’ÍWj9 �™‰U)nFÁŸ»F†Øé7DC&SIï¥'E2Šâ½æ#c”ÜÿäÞå<\¾\i*B��Ÿx&ç Ü'!çToRßµ Þf ej¸bÓ/sÒœ*3õlÿž�œÁ™vëé†Y× ÞÀþÛ×ýú$û¶#ª¢ì«T0�ìR›Ã©â+ÍÈ‘ÇÌ©¸�ΩÞÛõêOV ÷Ç)ŠiÄ’‡Ñ�9éò·üwFȺ|]Ú ÍXåå‰F4 m<*&C6_¾î Ϥ…¹‘WKug ç`§ßÖÅs¨q–_`Óì8½�©æÅOgâ zÊ÷œû“zKñ8�;¾Ð­­€öOíÎ(OìS?ìüÐ+4©¸Y4MØç½8ÒÔÖ†¡\D¼õ°©Ì2Ày�`?ƒ) á·¸Œ_pÄÒ½~Õæ±_å*"SØä¾dR9vúçy-|[{À;m†ÞH¢4ƒs•ûãò” eär÷'Ôþªˆ÷Ö'G 1Šóº„GsñÉpÛìg°‹åê¢)"µð¯´Šç¦+šÇb äGœHtܘq•0Œ?¿ãº¡‚ÏDÚ–ô¿6~÷Jc2éJ¬<*hïÛO4¥Ásû¥oë ñA/ÂÞ"LT¼Þœ ï’¸ø£¹½´Ž‘9èߣ}Ûgm�É”$âsÌ ï;µ¥+8IŠC~׀߱´ë)Þ­MæS tcå Ƚ1È3Ô�÷m@®#˜Îl¶V‘¡ÙøWÙ,*—âöè nˆ¿dbÕíè�ü~äÞpê�‰S�\ �êƒs+Pé'í ³|}Ƶãh=¥W ['ù¾?.Z¹!‡s܈.o.onX­Ã—¹R{Aû:¢?'Ÿ-Ÿ]T««'ÔJ׫Q Ôó öw„i)Ý@Ñ �ÿ‡QÔÚ"póþRŽRŽˆ®x¹Ì‹„ËàÎÉ;O�Ó|Äèp˜ÔJ8Ž£eg.¨I‹I‹3d ää�·²À•/ „¡„!Ã"Ã:êõþ¸©Ž©,Ù¤º¿Ž¢¦9_ÍÔÝÃÚ„²ýà&›ô@·ÙËòàlâý#š�¡%8Pœr!r!RÚšk*—2ÿN::¬;èüèü.÷ Ó ¯Â¨Â@h Ó ÛÛG¨þ>x˜£I‚âàŸš‚\£c)Qáç_ª 'ÚlÜ Ç”>i�òïN¸ÄÔ«Î fXjé¾·ºàö†Ã.gÌC• öU“9¦l]èc¾Ézt�ŽþÛ>õgÂmŸ÷’÷Òs­ð›zˆOZ£ƒü-gŠHZ3/=¡NõhZ•0èýPÒy0À~ÛãœáŒòYæS›)K’g1¾ŽMåV(©5);@X‹Á%ìz�+%¯°°Óok¤Ô$šñ‰ð•©WjµX(½EÃ/.B.¤è¦ôÇ €ò÷ma‰ìy’oü°ÇVDVVºØ&\Ú·©Õð“ôK¢èéŸYåU¨Šèø}Ђs!öä±NÅÔ °Ù.2\¯�ý¢Q³±¬Rë#“(ËÓôý°_Åd—¶Éôˆµ3¶e§8 (é¶@¾³Æ-w =Ã-žln^à`>é�rŽ5ÌÐKcý0tÏüÎVc»k‘ eUž}Ö1s݉G€Â×:æ�•íø³º†èå=åc7rzÍïSÖÔS�4cýú̕ȣù@Û Böãû,:ÁM2;N�3*�ˆ“ˆY⣂j°bã»oôçlæmæiù 33ŠªA1—¥šƒzÓ ŠÆ\Ú o‚MÅaÂŽ6ÆàôZ½[½'›cä jVž�Ûÿ‚y Ü®/Òaá h´pÌe@ee­…ƒº‹t)bQžœ£±ñÈ×܆gŸþ8ç/Î_^z7±ÿu!²Élp� 8#ŠDÄ� = Ó0ÐËB%øü¶çéT:û‚ª¿ÉÈÎÈn)—ùÊO vóï´X½X}ÝÖÙÖ¶²ì×׿ÊülýlýÑß×µ}4¶*Pü�»~»~àñT‰~8ž‚Þ5.íÜÞ-³µ#r�¦Ù >i9¶OÓ]½¿²‰W-Ýâ£ð!ìCiÑ{ÎÂOh´ÊZ®‰_±ƒwW†”‰äÂYËÑšrÀ~?+0¸Q_»sGVÃ� ¥]Oiš}©[;@IÂå¾^ޱëeŒjáõ~Š.Àû¬mÒн–΃ôÞ`§ËjÕîú½7Ä^oÚSì¼IËZ"džeëVIíGÛ>¡ —Ë&.}vÜž{°_Ç2zW ÖÙÜÍ¡ì�˜µ—oøF±‡�iÕ¥u,aK©�d–ΰԴì÷³¢º�y²©AOŒú™ÈK½>qZ°+ ¬pŽYkhRpòCá¶î0€vÚ,Ð'”÷EÝõ,}ÅêQúç,ŒÿսϿŠÝ#ëã??Êß Õ¹†ã»²¶ ¹.pß/FqOþ­n¡Ž?Š»ÐIë�çÎÛK+ˆí‰É:¹õÙáÛ”K�d’Ô ‚¨›.¶CUÔˆÆÚm³.Àyü™\v Í+i ³.Ü>³äƵN:³pñë3g¸Ž¦ôáÑYÈZÔ¿oF‚üep:P:Pus:�È[ïD|þsÐJÐJ=ܹܹÛõ åJ¦A¤ƒ2wÏœ2du�%$ú°Ü§C‚à"x¹¶¸¶¢H“ÏE ’ ƒ³›y6®ºpå0äHÍê>äK® b¤c¤…@éézz¦ˆ€›wZuZ}õ Êýõã�ÇSÍS-€Ñæ¯w˜v¹êìa.Vâ9V‡Í¦˜ò— iÇûyÿѲO¸Î¤¨ ¡ì‚ì‚LEUÖ¿¿;¿;uæˆçˆg‚dÐ×|¯ù®²š(ʪʪFS|ŸÈþш»Aµ{Ü[¼·OOp¿Ý/†YÁá@¹Q…ŪLèÜqÒ:äØ>Mwþ6öÅ�C7ñ,'·QÀËlÉ:MÃWo,ûH�åS{-'Ü?ù:§!…æösš?í9õ¸ªE.âÔ[ê»’ƒoMäê‰;%Ö±Þ›¸Ü`q5Sz°ßÏÞôúÒL„êîä\à £ÕÐy+Fê%ÌM:ÿàK´l>Ìu‡�A„󆀲VïþÌ&1£ ’»š$#¼> çÈ6¥ÍuS´k*$zMB� °ÿ¡–Gý”°Ý$f€Gò¡‘ÒsE-uÎ�{WøJ?ÓgªÇ²ÑËÐqBFûµmx- ëS¦A²2:îAÆTr·YüN*e,×eúRú9ÜÖ;¸ìøR¹€ö³Ú‡ñXG;Ë)+ !Âd¬ÊrîZ¨ú÷½B(O#¤;7vÙ"²†\ÉèáìÿÃHÜŠj^>1²ºy?–ñÿØ»ïpªûÿ�ãÇ&óØ3‘"dÙRÈÊHvöY)«™w¶Ì(!#:²³’½ÙNV²Wº#¢ß}.�ß�SÝîëê¾J}?×ó¿Ç×§ëúüqÞï÷ñz÷ó¹}¤J,ù¯g¯öû˜Ð²í:iE‘Úî®fóºp7ç§�Q÷��éëmÕImÌ«JÀñ�bç×÷ÚwF�?rXÁ� ïè²ñXžâ¨Ì°“%vãöýjjcjá¡z Ó·;Ⱦ²ï,„2ƒõÓ|k|�ìÀrª°�nŽvq/ü½ö QŸå{æÕ¶ÿm]OÄ…å�Ñ€MFSŒxXâ¼]ÓG7Ì0³Kd˜GsEÕ"#ŸCޱØÏ´sº®Fåó]ÐW Õ�á‰ÁbÙ÷ƒä¤Áxqh#FlQñ¹ÙLp½+ °e¼PA)ƒ±lÕ7ϘÓÀÅÃàMI3³ñk§[|ߤ9¢c@{Žz×â>t °_ÕFÀ\9ê$+´C°?õÈj…ÌmÄ<ö¾Óz£Ñr&kiñª¸~2¾t‰×¨Ÿ³…ÅŒ+7Æóƒ4aþ%S{}ÎF�3Ø!]Nd›i–ŠgèyÎ×ã’}}âŠ>8²ë”ž�ª@�e!ú—wð~ýû÷Ôde4�¢3ÖÈÒJã[f÷ú~ß_?Ó¬·» ý;×P{lôyÜÈžGŒ !ëc/¼\xYĽ -ôŽr»ùešøšø‘”*ø*ø×1:¤#jXBÔ5 âx«…¨êžèNp’ dÇå°°Tç]R©‘õ“VË"ƒÉg&ïtv_s ‘9­9m=‘û˜ûX 2ÒîË©—Sã*ã*ñV áß®� �€.Ö6矋‰ˆ‡h“#ššÝ)B*?´¹Žü«úȺãL´V7ü®µ…‘ÖÓÞÞÍq†ÊpÅS1U1ÕúÆÆ}Ô �øñ)ê�‡BCu>¯�swâôˆ0çp q ‘ïS+íÎû”™—«yJrÕ꣚v"ð^ë6Ôw{?Í—ù­Bïhƒ¡ÝV’(-Φ«u§EÚmt•<4•Òcq÷n²#Òˆe—öól¾VÜ7ÍYc^ûA=Ù Fë'"f‘…S½v`É'0�/<ГY8Ïö`?Æ®ÌǺ“¸5›dºJõ°pF­Â@s%Y|ˆÐ¾†¼ úý¶‹()� 0Àö›mêÖ­^„6¬�È[ß…<¢)dCÃÀyo‹“b”DË;ÉÜ®KŸÖYØïc„åSl+‡‡¤cáh b‹~÷»-î¨ñÒ=m×£#Äz~㜽ä_H`?Ó&â øZÀ#`ƒøQ^.bªQM÷ &�ÉP/8Šø¾íõ¶2 °_Á¨§d©«•|‰qiºÝås ­ºÚo�˜½·¥Ò›”§xžTbÝŠ$, °eáW3†”FœÖZbK?’3&ŠKסœ,eÏ—æÐZnlù-Ö`ãÿ³5¨wkäØñ5ÊsIuʾ5§¤7ˆúÃs,P}Ö‡À-oF!ñ‰1`€ý(Ӭϒìë¶Î.îØtÅxr[¦ÂÚÆŸ©0Am±`÷ʸÝ�?™ãÏKw¬ ûy&j^~‰H¨ƒ9õzñ|²¥�ÃÛ tP=åt´îÙ68à" ¶9×ôçÐÌ”£ÍÄQý4Wû{Œê¨ŠUôp8[ãÈÄú­UÁ¾õœ6ýžävO倃�c0æ^ç´¨÷¹Ý•θ²v£.UóΚ@Y ÚSZí<îÃuª&�˜gÌs¼_9§åß}NN±ó,Ù-'\‰õƒ« ê6{�«¡>Ë×föûXU‚5óÚl¸t6\\p|cQ�éÕ@÷{sœXجžŽ˜.¥w�L¡Ü+÷§€ýš&rÇ_{»Ò™®Ô�5Z½Ë7¾ßaèôt¹*8'CÏ=ž®4tqÉi"½°ßÇúZ�}ñ®Ò&xs3ºˆpgøGÊã<Ëì—Æò£|^Q|g4I²Ð&2[c`ûÍBUJãÕBòáÒvü 2­Dê4�IÇ×í:@›�½DžBï0ðì[¦1Ñ•�¡³}Õ¤ÌØ4$Þ›ãÂX[Ê󣢆Raõ7ÙÊ8uj°¶Ý`€ý𯀳•Ñxë‰_éÆÁ8…�Jÿ†&ñÁñþô£n‰g½cª_¼O« °ï5ð´%#«TáÚb ëíañ„×xš«©÷f"ùcŒí'Áù.ÇJÞ[®>Øþ²\î;æxÚw­ê%x¹(d.NÆi ÅB³g(ÚfMÅ£ú®ÿA—‹îþ`�Þ°ýeVt¥B«Xr†ÖŪ;�âh¦F¥´']ñ¸µ½5ÆÉLƒQ–€wÍìU?`?Æž’R‚=– bqÃè-Ií©®:n“Œì§;,ö“ݽKØý�ê}Á*GXŒ´y^â;p+êÞ°m.ƒ¬;;AAe%›ó⑽ö†ïLm?iV†âñ«IÓ8ÚôÐð�³êJÔ™‚ i~)ô÷ÃŽY®ñ–ãÃzÑ$+7ìýѾ܆|ýoxž ̘s–†˜ÌÓ‘*³Šïõ7<üˆß Þ�Ó‚] j¼îŸʆ¬›eð2kráháè§hoÖO¯w´¯\pÿ2  •W\}}Jˆ²HO§ Ê Dt:¯Üæü"s�Üs;&"ÛX‚;Âý�wÄES—#;õBiYe¶áND'k£/U–­ â–å–-%ADãLã,ª<ŒŒ\† c±g±Oœ¾«ðí2,3,Ñèþs…½ýeÐmDÒe;]Ôpö>Ûéút£(«£z¼Gôß¡;i§Ï…!:ø�l˜l8kòþY×;¬GÿM&!&!¦§ûáýð1Ô’°)¹)¹C–ôÀ²Á²Áã»J<¶»¡"DDIfIf‘ï“Ø§»€’.eE€í/ûX~?*�fš±·•Îé�˜b%÷…—ç5˜³Gjd•Zß»ÊϧE*NÙ¶¿l°ÝU}ý|°Žs ÝlFNpˆ’Æ/âµÒ•‡´ËÎ@Öï Ÿ]ÍVE °ïµ¨A/§Ú,>r©t‹ O[Á"(^R‹3rÕö�<€æÙ^Ox7*cX `ûÍšH®Y±:•&ÌQ�¤ò”«¼ÚÇGL½ŸîÝøši) ¬+×Ì>cžê>¢Ï¤º„º/Ĭì¶t0["­Ô¦JK¢µ×¾Ðfþ*_ƒ wkE…î1x¦OV—šžóÜg,xÔïD,:¦fý-jRæëºIžn ã’Œ‹ÅýʾЉÝûBnŸf(ê> "®Õ|Ø.Ly]$�XâÌ^ëxÔgù¯gPzsôŠläžsKaHºÆ®q´´ýˆUc°Ÿœ ÒÎÎ'¬9.e `›ž®h¦”sî—õ2©5QÉfÕ‰Å)nÉJæ™9[IUàQ!QÁìÏ2LJrбÌ(Ì©c–ÜcÐVGˆÎ…5«Ç/Ã*_èIvy‡ósäöó̹Ú1Áí‘÷ ›žû¬BN³a8NÏI~2ÂèíGêç7œN-¨f ¬ÁÛ_¶Zß‘/陑[‹ aÍw–#ãN³_®ƒXÙpÑè0jFŸÄ:r†5°ýo8ìVœvŠþó‰ÅUÊçåzí_Žþž¹ËP2±×dg™¨Œ—¤ÞˆLL³?±ôž@ý ü4£µ-$xД/‚³á”K¿ò^Ÿ�s ñCÅ·NªZìtžlhS¹þP4¤æZÒoN»íúRGF`… ½ " ´Ï�[n®Â‹ùÊg`ᯟ�.~¤R:?£}Ä”°zop¯³Q�¿~&Ëywo³¨-Pë…ž™2í·²¸ÈfÔœÔ�Ô­›¹}Ža½·¶Í–ü²Ê¼Ê<\Õ�¦"DĦžŠˆŽ�#bŠzý䑔ʱ�nò_–Gv�QÚNÚîruVC [v)2#ã‡,ÈRnøðï”¶È«¶9ª'Œè¤×I¯�<ˆ4Ò4ÒÎøù¾D¶f÷ƒû�ÿÕð Ï‘ogÚaÚñÒN€îŸ“ÅùàF¢‡H‡l'ü­^ #��<ÀKxI2г´æéækæàF$¡¡g¢g’K[–Ñ1ÌGòo 6 6bI³t²t“Bíê­› › 2Ý|�d�dÅ#Ÿ'¾;'jD'(æÌùÿ¹ôŸÎF}ûÓÔÙn‘'4©¡›'쵦B}·Ä RÀCXw�WÚE55ê—úT.>Uák’ÙT%}Q9GA§�¢¡uLùؤ©€í{'WÀLº� fÙô mI¨¥Èâ„0%‹=~£×e¤ùÓÇÂ#­½0À¾×,FDî$ÿ.Œ8Å’A–ÍÒ>æK ÉÔ]…ƒ¼düZ|\ªs-I³ÉìW0­“¤6m^c'®’˜ÈK»§1«^Á!⌜øH¡˜R Îz;c@áê`ûÍi5^“JÓ�—^I:ÆX0x'2GßÒÁ¹ünâeQ)´[jä1=Y`€ý Æ[©'“~ºë‘AéôdUóhµ—Wi�op‘iÙ¼m:§�{—“®#å¿¶[âÞÕ6ôg?"�j3¡ù›&{èŸE®íç?í[Ý ÍŽlÁ¯*Y§‰êVàýÖÚþ¬±µ=âß|ÚcB·*—ݧ€LI…m_íÈR¿ª(‡z¯�¸gyw2¹Ñ:ÌN�ÐF+õ¬õ;Ô¨ó[P÷ì^¯·×иܪq™Ó*'ë1†[­Éåqòʼ�’ îA½u�Ž»L[\|¾&tŒz½ñ}ñÙ½öèPÿ˜Rev¾Ï}ÑáJóWüõ$7Ö<>&h‡ ¬�ÚNsæK˜ }å®?žÝ{tlŸÎ©Çï™+^ÎzìDáÙÔC³×ž ê³,¦hÏáOdÎðiZQ°ì],ë2 °_Á¶_ Æ.ˆé΄W¤¨qÛȃ™n)L¨ PÕ IF˜’ ¥C‹zÛÿ¶JÇL«÷>VuÆ©:îCþ2Q'Þã1¾8t‹ˆt+¨�;¦'±Ð¦°c˧——»ù&¼:7˜u)RÌËbÙØR� U:§�ÿX4Àô¢¹)âœAl`ß²x˜½–îsfÔÍ–4*qÛoÛÆ:î§ûž~S™žÞŒÚÓà^GG~ú5 “6Ô³Ü+øy3hÕ´ò°ï™KNÙë,‚¸k¯|wnK¨af}Þ262V+Led–w½½1*®Ô¾=!¢O×àú2ö\öÜ *Ž9Ž9>-Dz16ñˆj’Å�ÙÆ=5@¤Öá¶ Óa ÙrÀ¨Û¨Û:zM&¼‹ÙÜÀøEd8=%;ákS—ÃHnBˆˆ¦$ˆ¨³s•¹Ø Y¥’¼’|GPGÐô‹IØ·‹LŠLÒxm•ùÏé¿*gêÄB´}f§K[ÏnŒ—í$$y®†BŽ1>ûïª"3Rû6UåUåu�~Üðp7|ôoj|ÖøŒÏ>¯etw¬ŠˆdZ™k™kQ×@I /NÆÁ&Ÿ“•N47ÏB¸öZ¡®±àì½,Î[öÇIŸòظ�‰a¯€h§¾�_¼¾yDað•5ßî5P5áγ„¶6Îoš~¨pu£¾>Éò>l¯5ê³ì§Ùª¿³ÉỠ‡Ä©ú´™=à§²^á©Ô§(ƒÌ¡“_R¦ã¤=~ØqäY%`ÿ{öÄò\}Ʀ…Ê…B:Í4&æ_k(x]1ƒ‘Ú\y(A§H¾Ÿ±0À~똰 "¬cu'¢»<Õ¾bìl_]hÈ*Ñdtæei�þÔÇNš²s-x€ýÞæ5çx/úÿػˠªÖ¶�ã¤tK7JH·¤Ò!%ÝÝqhD$)éöP""% „HÈF© ’ÂA@P@ò}öËÙsdë9œŸGQ×ü¿ýföÌúzÝ÷Ú×Ò6GÐo¬˜{ï ™tµ|T°aÓ–¬Â¤ÖÂ~â~Fwž`¿ži�¯Ì �oÌìRlGE¼ñ€rƒ£u¼Úgž•®ÌMߦèb-û@Ûã~À;i¶D˜ãÙæ:NÒc g^lµ=9Ù,ð¥ÝúÞHñ¼B–Ò�ᣅ‹¸“‰nXÞ��%ï(êåŠôÎ X…¼Ã;WËrÜ, {‡B;>a¨†y~‡!Èót´ÛX�r´=†ÞA¹ÿS -%ðÛÛ_˜%yŽÎ’¾£Ü97GÃ\”ëŒ-e3€cøàêq³$쳜¤]l¿š½6¡¸¹B¥rõyÃ141¤q`½ÇŸ!Ÿ^xni¤ØaÉî Ž�"`¿ž¨c…µÚØ}¸aÒ›ùÂÛMhñ)³ª°z1ÚÛäôrwA2ff>ûë€�,sc9HA—nxFÄ{*s‰‹Æ`Ejò.‚YÆù¹ÚûhW&òÅ5n_›­ìdY«î�;øÖ˜ÞFçžz¿&G� ®Çõfº[ }ÓúH\2Šg¦¼Gûy¬ppÕrƒ+ÀþÀË—Íðí•°DžXª^½)Ÿ:®‚KM*blŠ…NúŽ€ýzVÓ½£J‘ªÄnŸKà M7@\í¸Á�ä3]¼Ž©€¤*7ç€`'Í"Cc.Ü¿Ë([l®þxî’S;Ë÷ÚÓû³Øo/&EÎ�ƈtô¯ã¦ ®®ï¾³`)^wŒmº´ÄÏ É6'Âë¸wøþóÛ£ñyΤÀÖÛðiTNÐL5®éBKµ™+›+ã÷) LÐ$A*¶ôïû<‡›7‹Èú]ú].óBZSM‚´WéÕÚpפ’‡7éŒò=”Ï¡ …"n#n_Áïâ— ´¯…¦VþqšÂÚüÙÃô‘tËk] yPxP ±@’è•è}ÈQÖ ÍÔTcZcÚÑÄÑDÅùNÙߧίÎßš1¹ðÏÅJÑÈUÊC¢Ò:ÌËÏkÍ&à°T‹‡1ìpY©ÞþU�{ âúmHi»�±�±,NûLkì$ÿ&Ñ8Ñ8T„¦å¦åØNØ"ݦt§toË+rVrWrû~Ú²æÑª¯@zC˜NÞ3¹»�NQßSíºDðÀ8=@ü¸s&Ø÷ÎûêŸ6‘z‘Rô šó ?ת÷Uº«w›®“³®©ÝR*ÕóãΙøŽž3¥ü¹_ §‰7<‚fóA".‡±è¸s&Øg9I»Ý¾…M~°â5É6BEä´Ž()“oÓ·*mtÌ"CSÍtšX ó+@�©ìÇ´pzÝt:툺i¾‘î®<¸ëÎt…™ŒovÇoÓü¶ñ®18Šã€ýz&Ú8vvf$Æd§ü¼P,ƒžq—4y�„ ùBð‡hxåBYïMð©sV€±Þ�á¢Nië&2×Mýx²ñ #¡7$:è#(¶Lr “ôµª³ƒfà? ØÿÂ.Ñ©b¬enwJ[ž&[~‚B¸ª“F²Ü•¸8Ìúž6Iy« ?z°ŸÛ^�`à® áX&¢ia¾ÎyiŸ±“O“*ÀÏTÏ”¢BÐkAÀC¨P`?ª-O¥úˆz:½v–ã'ÎÁm~$Ø ×>6(Žž¯Ø¿¹Ë¿X<êOÁ„`ÿ #ϼ^ó¤$ÍÚYÓ=•e˜Ëó€8íá{÷:`?� ¬Úná7Pë<æK0·ýû³‡FLÛ�&ëi9¬%Eš’† ¸rEç`ßïówÛ|^\pët&užÏ팅ãÞïàÿÏoöL�ÆWña64¶O›‡¦t cZÒ˜b¿b¿(†üÔ¶œt•Kùèç­ì¬ìDÙ‘*‘*9ŽCÒQµÄ�» CþEqP$¦ ³¨‡ùRÉìB· ··H¬Ad~ÚÊmõÍ>4gT'ðazÈç³–°!y‚zÿ}/¹_roíÿsu®Ò‘ \�P·ËOÁžÎ¦>Ì>nBm0Ù”×s毼iƒ‘ Åw47'm›’4Ò‘»ý›dEdE6æ÷KöKÚé`Ke˚ʚ²l#¶ašbš¢)û4Ï£��ƒtgžž’žvn6n�ÃÚž. Óm‡<œ?nnƒÝ3ø\².š"̶Àìw4CŸ+AÞ®íiïôñbû/êÞPá)·#ªBøüÛœGç¶n²Ãg)()Öÿm^…××J¯´¥︹ öYNÒ~™Ñt:°ìöÒ/�¡ìxX÷YäÜÁDP.�W®=—”y�ÆgT#î^M-`ßÏ–‹å¸h,]Ík'X@ì¾ìŒM'Ä_5?h‡'V ‚ z€D'Xbû°ocîK‰^¸ f³´Ù·‰ «Äà 4ße‰Œb9´œ.oþ¸ïv .=s0ÀNšíè´®ÛWvlNÈZß�‹,%­/µ!¥dÍÜc%œ¤„#㜥ëաȉê«ìç1¬úy¦wgF%_ÁS /‹g¿°HUå$oìÕ%Ç#·ùÂ%¸Ü_ ©Â °ïi3IËÔXÜŽ]xz 0FÜ57a•¸Îl¬‘ÙsR$o�„B ßXØ�`$óÒ$Í A8¨¤/¼d‹*»u®¾5¢ ا¹ËGaR×G\�qO «0À¾•E»WPGÖÆ\ÒZ¡Î¥/šŠŽ�KÊÕ¦¨È’pàÊqì®7¶Ü…� ĸ02öÀºáçÎo]IoU j¹(AuÞ î–ÏT¨Úâ LÏ’¹´jcÀûV¦Ù~Olè…õýšç;ˆÕw¤Œ+{¸ äfH,ÞÚ½6î5äÎbùàšj� Ø÷³ æõ®ØÏéò=š—Õ³,íémàÚ1‰Þ¤¼ÑQ,!q¨¨Aù˜öóxä¦�êÎ�Fæ�lfØúOÒ^í¯1be3âø±h¦§+p&ÞÖ=Ýr}°÷j¹™¼4§b8�8Þp¦Ž@:î^ öû[’ùî›ÙÛ­¿k¦nòÔuÁ7’]-a?ÃÓªb›ð„îN–/Ü«q½W‹&<|–f ðŒŽ~˜S/¡š�èq÷j°Ïò¥…€ýˆo)1ìïLc¦¿ Q{ÿºn�±idr‹ÞTÏÝ6† †Qí�Lu,|Ú-§Þî{‚û1�e/ÿiønpí6U’\d QHÇMZðnrÅäˆgÚeù€„æ—sìk ï�5£DÕærã�1‘”94Íõß3b¹Œfñ ¹~KË\mFìdY1{ª9ÚÕ «vQN6B)ûÙ$-�ÄÊû „=‹¦"qCþ·È‹¼ò6),;YfeA^+°Ž,ch]óAÍå*ø÷¸»½éîÞáû{S¬t¤ˆu)h~f¯‡û6ÖˆO„罊™ˆEa‰ï@ìë´�;q’¾aq’,#ëÅ.ñÇòu–¨Ió’´ ¼FØÿðоt0eÚ)¥V¸<ðfRwÏð¸ÿðüç7ùG \íÇ�M§ôÓªâ  »­Bó‰ñó#Ða½Â´bÜáD¨üyÉîÉî ºŒ¶Œ6T~H¯Q.CJ)ƒ$Óp‹³–ÒŒä„ÑaæË»¡)³X³X¯&ᆞ ²‚ÆÃä&-ž¤�õ°1ƶ3ɬ\�RÓSÓßÿôô,Y- EË+J*Jê ë óâàÿ}(œ(œÁâÅÿœô&}Ú´$ðÞaS7» ¦/¶ÎV\Œ °Vîk÷W¼ç÷Ò”!�=/�)�‰'{{é W׿ ÒÌi@e@%x¶—¦BÒBÒôcdÕdÕ‘âŸöÄÿh7å!u=òOòO‚½k°m@A¥”öbÆ,ôˆÉe™þ¸»†Ôùý¼ÈgJ•hçZr4: ×\TÞÅ]¾‹9�(É-�ð‘gÌéžG²åôú ¼Ø£m‡øÏïx�Þ5ÿù- t×üBǦ³þ‘±ézHó2ÇÝ5À>Ë÷Ú­l‹|¡¢Ÿ…ÜUkêžÇžxôï†, jN�¬·n¼@TçêsÓÇÖ² °¯µS*Lµ}&¶¦zÅLOï-a¶øŸÿ£cž44Jhg•zÁÜ-± eh0 `ßÓ4c¼’‘H6Rf <ŸšZ0:Õ‚[y›| €³�÷õS«�Cð¼¾Wo<ìdÙA}v\.éêÁnrç aùGìzãêt÷°&Z¤ºø>zÈ.å†ÅÊÏÛv² Üë¡¶¥¡íò�|1¿(¢Žˆ48fNÁý9Íպ˼[©Šë÷.ÀØ×Zøšóã{Ú\§%r-ôªÏX�bnbŽ“ˆP³=ÀÍ«,±õOÙ˜”2¬ °“f�¸~VŒÎµ)‹ûÈ<òâÂ!9IßÝø’iÉ�l)µ,>¡› {A/÷ª€‚OÀvާSò\¡J;%šSkó¬’ Wë¸9~§ �8È lcóA•WšiõúJgG6uyé°3Î…)Uëjø¸Y%P�ÇÎé\K›XR"êæxþ£s¼çŸ;uò°qkö ù •àˆ^>nއ}–ÿöÊ–A¡í"ƒPþ)Ï»”é~Ì µå~pŒ|ˆàáÓ´¼½Ì\‚šÓ"q¶€±EÁ7í#ψd\†¥¯™<6Q¾Ï¨�ˆRÓu/+‚cAñq¹÷C^œQ!åS€ýzV0=v³8¥ٌМ$aÅ+ñ&üúvÇ•¨gjÉ« G/uÅúŒ¢¹YÊû~æÒì”âYÊÃþŽI×kQ®è™a4ʺ7%Vü~©šú¶óÅ·*÷x6_v²l½ýyz²˜O~ñc ÞHæÉ2ö‡ÕV^+6RmjÍxqdúËŒ±(€�|Ca¶bµ“YJ«iRR—tŸ¤üš½Ë•ÂsŠ´ÄÆ+kB3o˜«-f`ïFÕwS±iæL£\%Ôôx*"�»„|£°ühè8«e°á%}Z´´Q=ò:h½b¸ƒ¸ƒ8~®÷í”øãíÃíé?OY¹}kBoBϾÒ ¤˜ H¬ã�êl¶�Ë íL=Û8¬[ÉsÜ$äÏ'ø}ÅŒÞÕfhà Ô+ÐŒXSC’ǬfzzÝ Ò¬È¬ˆ½6¤¨€¨€kQÝÐ<@ ß<ß¼�&Å¿oâÉÄ0\1Õ?—ôT",¯:ÿa4-¹Øà„𲪓rCàÖ ü•¨)ØÔÐ ’öå¢ð¢ð^šÉw²Õaÿ¦µ÷kï“Úz<{<¥†a óv|éøÒÜ´f7/�"äÓd Žv«Rž­¤£¤#ìLÕ˜ßÝ6åŠaí¸è6¬tÜLUT…q¦RdO\Å’ªÏe¶£GÙ¿ðBä0Èãá°9پǸ¶Ï;Z„~^…­Wù2«ÿÇÞ�GC¹ÿÙ�}ëZ’l![cK–¬!d_cOHÖR„ÙwÑT– )K¡dß…Æž­Èš„ˆß�£ùÝÌÕuϹ¿_Wõœ÷¯ã9çqÎóÇ|?ßç|Ÿúrü¸mÖT¢çÒÙõ•©ÅBþ(©–´Wž´Óš ó^¾Ç¤€†²Ž`Ÿ¬Óüšš´Æ4®~å#KRÙ4�»£sØA²f±U,VÈû¸ä7ÛýöQñ+ùt6˜mÕûZCÒ3qª;<Â,7$n‰¾7l*`¢[Äñ³ò Æjn °jVƒbÉ7®‚ #�±!(rcÙêÀœþÔ· úA>ò ~H׊\kòlJÀûLWšÜ®ÉçõQäÅ2s%9×Ãt0‰Šy<ž¨‘ *•Œ§à;&L¨Ü=l·q-½Î8¹xvzTÊ)Îj¿o klˆ>Þ¹�#E$Å2ƒùTŒ-€ö#Ø‘§†òY²U{+¯Jz¨9pžv‰—B‡ÄîC#ä¤Þ¾T†–Œÿµ…@}+ìÕ6˜É ôX°-nx«¡×öS_æ ©×²£p‡Ë/ÓEw(ùÖÚ^ fëˆú{¢/ó.Ôv뉒t*á72áëç[îh�WQÄü®Ô»´ã¥Ù2o›ƒ2±�î5̽VÌw¨1ÏoÁœ#8Œ/7W2¹†Tº¾Ó-¥è„õÛ,)æñð›öÈ¿”Q íÄüæL…¯D �ª¼öšv¹v%šTm§™ æÿ‡#Sâàÿ»_uÊ-ÐPêӒךHÒ½kBóäöoyîKšcmó­?þ­3ô¼°à,d|rå’jÐã™–<š ì�æ…b¿_£ºµ»WFj0ƒ¨|º&ëÕCèVÊDJDJ2ä'ÅÙ®Îfà)p†ý¹‡8qšcÕ*Õ*9ÃQó»]AÕ0„Š÷u-ÒPÕ¹YPÍf2ãÊóèÆ�bbˆiè²öiB÷üê£Yt… ·7›˜ ½y³,¸.î^lT”a”a -GеÆf•d•ì¿´ÿÂûÆ·#t!té�R“ýë8n5¼lID%…Ø ´Öf‚ǾYN§"�[Ù‰xÎ?”>þ��jÐð�ó!g)óÅ‚^hÃßIò äÁA�Ø Îƒ™=îxÅx…œ†=A A ÒäëŒ8·FîƒÊçæ¨ý¨=úyâøòÞðHšEPŸÊ¹;ùÎTÞu�t;Íè0ŸíßÑ#›sSX~uóÊÖ]3%í€ö#Øg‘q‘ø i ƒ‰ˆ² M>;%0Ë¥"“u$M D&(Ò‚’UPÔ Øî·VzãÔô½ˆcU&|Ì�òÑG?<Â/bzÉBB nâ‹ëL)´{ Ø÷±9Ù¹¹�‘ŸÖO¬TðÚ’xŽ›Îåú²°«3&8>t—Å\¤æ€ö-[ÃÇé²ö|gI[oM§~z_sŒ}¼Ónú~ØÏbêS+ÚŒ–´Þ&i Ü-÷³.Hê˜7a®�®O¿”Nh{AQ§½§ �62.ÖÊèžè™¾¶ÍZRhûý´·³²ŠÉ¡J!� É@¢W;í§‰ÿ~ ´nke’â˜Ð]m1º<-uet œaéaé1ð4½ŽÉE¾Ü}eÎPÏPš¿8¶8†'„*ZL?Õ•eÐ]®.T¹ƒKe›i,¹4 SȆ¿†¿~X쥬0ƉnUëà0:èõú›)‡žl¹3°D‹Šyœy|½•…¥…ey· ºªãññì ßήÀ®`*R©æ¯Ó‚yž?… °™¨öûþrÝÍÌ®°øWûä¸ÍüQòûÉQÙ T� ‡ ‡ _=Î ½gðìêßi)x)8ƒ»@·@ž‡Y'B!0]ÆJJ´˜òu=—·vž Uqü‡øÿ}¶¿¼ó^7>ÎÌ•“åL"o×IjZ¤·ÓlóÙÞMgûýj6jÎxe²mßog½ßòw"ýu6l?MU¹~—s ™{{Êt’—ÔÎh`¿ž™hWÙÝvXô³ lNëðr›¬åÒ”ÐÎÅŸNœ%xà&JÏÅ%rú’#`»Ë\¹7’Êê©…qÓ¦˜‰™Mfå‡2°-S*gãŸDHë\{å3VØî²*à ·ž«}6à�uŸµÛO±ó—h�¹_ª`½ÊÞ:lŒ“/ ¨v൧(°ŸÇîvÍYðuÄÚð<Ïk:}28^(ê·f£Pyvï�Û²åR¼jw�ŒÏöëÙ£«šŒiAª=—IªÇ㻂®›ì™«ñãÇñÎ] RÅÑTî�v÷Å °ÝfaA‘âÙ‡”ráÚÏÆeå©9nñqÿ[ç>ÿ,vޱcÊÙ ­1i_ ¿œ´gna sÎäæJ™¤ýY³A–¢Bà+½Óœ ó½óÖÒÚr:O:ÆvQ¸ÐÞÝÒó'2 @×X뎴‚Ê«­å“=V¶™3‰l�3¥P|9_Œ´\8$”y©(žŒ_—æBÛNsÌ{ÙMg»}Z´6O7Û·GDÔ64ï¾Ê c›{OΤwÓãk"¤ºœ†}ß_¸½/²°ÓBØ^o#`AjCèf†k*= 1Ãù–ŠçÓ_ðŸ>Zc{–0’Tm°_Ï$Ÿt³� #ÍW‹b7‚5(0øËˆ2L,F`©—Qa+y-õàrÚÊš_åÔ)Ø–ÓŸ]2Ž¥GùÉÔ e\Vs4Ï2M0Ö}˜î?‚µ¸0Àþ&˪Iø>íS�‚5%ýÌs<æËsˆÑ5™c¯x>°$¨Ï—“G ös[?’è6ÙûnRëx|]bŠ�»£™/O§®"˜“!G9J9’4(š­(„¨TóìGµ™×ÉÞ’N£ÎÊÂÒ4™dOE«@Õ}]Ò7bÕÚ—Öb's{/2ràØÿÃÒ.=zž—bë|Ê-™û•€ÇMÊãÿõÙë€ý<™³_&/+Ò$0çk¯‡WEx¸<Éǜ«íµÈíàå�Á‰­ÚË;Í 1Ï‹8 |†¨›}ö:OeH¾ÏÙ·“i=½‚F+Ú[­c*ÓB±Íœ²ýûh¸�…ïQùBi«ò(ûë¢ÉvzMâ÷kæM·63[‚™ þ×M꣋pê'E—ÏÌÀÅÀ5½8/�U�'wÜìÏ¥¦§¦¯Û ) )¾ÌAåN«ÝˆjÖ•:Ò&1§;n4x³dlßtšðjxµß¡#VÁ×?J¡; S�.ûÃ1áÍÚyòö_`Þ‡*ÑÔB¥š¨šXù²„³47373›6›v ‰ÌÑoÇ4Æ4¶”:Gõ×Ý'5ˆqpGµn³YÂò@p÷�Íòì¼’u."Úf™ÿèiÝå¢Ó4¨ú#ÕÄÕÄ/^™O­§‚ý�T9T9”ÙàšpÍ`NÌN,UéUéedx-B4!š£_÷�qkÚÓ¨¨ê¥¤ÿû­Ì¾/ç;Øêd•Ò„#;ø¹›¡>„;Í�1Ÿírþ1`»ß– Å\Ùn™!íí,qÐð”)I†º œp˳F¬C¹âšQQ/„9¹úìß´“îf¥Sí£ �°¾‘ ‘G +=”䡸 XƒfщwyïÙ�ñ~|`ßËŽˆÈ˜<�ÈÖxÿœ5ü¨¼*ei9|A¶Áÿ}¦6î•‚NvßgûîzØ�jƒ`Þ-²yúÞ¶E&CŠg")¸ý÷8�½iQm6TÊÂo+-OxE!�%9޹n•€•)¾|ªíSàã7;­Û0Ïl‘+‰` ¶¿myßÔû¤¿×YÇê”ycpTû1C? ¡Ô…ØþÖÁ‘­ë¶FúÍ{¹�—k|î�†ðy£{•Í$à�~gcÞËn:äG´2Cö±Ãçëâôx«î¶­V™1DØêyXêÅœ i—˜H{uâ@wöïÙÔ3¨¦‹Î”Þ­jЉ=�Ç�IXÅŽ¾érK=lù÷ùâ°ŠæÙ¿ìû˜ÛT¼'™;»åKú5š»…RXe&§æo@{‰+)T¬¬»ú€®uØn³Uƒª…Ó5KƒJ¶1 °{t¥÷ìèöó¤}æ¡Ú¢?2ÆÚlÀ˜ÞZ ØÏcÄ¥o8æôÊÅ÷cí—˜‘ Hï°JÖ<Âð¤Ù��¬gï‹ó 8—ìÙÀBbÀû7m$a†‰¸FðLxШM§‡0ÚÇUB#º.�9Æ)O;í$hú¡Ëׯ 0À~£}£@[¡êOº�®ÃS)§ Ñ@ïC�«ï:s†£yi†·´ê¡Ï�(âÀû^á–ÏV)«;Ë"‘u0çuD8”�¥Ï˜CÆQ óLc)Ìz +¶­0ÀP&@˜÷¹Ç0d�óðõÉëU'ü+�ÉüvØ$úª÷ë ­I?"�¼ 唇0Àû^vªúŽTw‡mö£–U÷=cäË`M‚·•Gh­¦Faͦ‚7¸Ï&Ûöï™8¼ô, ¤…á^1£}ÃÚáÌAû2lP5õÛ¤·jy´Žùù�ØmÞpÀ~ëA^qÒ\}W·Ø;ñÆÉn„�/®}7�«ýOŒ†]Ý’&¶/‚£vdîeÛÔ¨ìØŠ¹¯–•f%ÌŒÉÿyÆÏ™)g§}5Ìïo¥Ê!Ü–Ò?UÝ<•¼$TÒ€õ„^/�ï€Pd•†¹pÜsÖwG¸·ÙWÜþ}H~Qý2,…oQÒãù§ê�Þ‡„þ~ÍßÖÄ”ÅÇ1“³ýº2è¸é£¨Ñ…Öð ð ÈŸé;s¸øøÍ˜èÂ?—¿–¿¦&¨[¤[G‰êèL)5ª<[T¼ðåJ*+‹±ÍÚbð�Ñ�4±°ØÏ×gxv'¸¢[0nðA—<¼G³X—Tn쎧OP­8¯8ßrAµÂ¹ÂÉŽ@—.KKïrÌå;(cøÛii‰]ý뮃n6š¤¡:°±Lí%³ûfá$÷söJŸ±9ÐùGž…ÞG$¡òrUQ‰ ¿°�nn ùïÔ=ß=_  ­-ˆYc~ËzËz!ÜX•X•8 çë> l�¯U]óxŒ~ž"¨6Ÿ§ .«žwRã`§ra*-;É�öi1Ÿííμìç±<š$[֥ɹì~¨Èð§–QdÇ /¾mÒP_€ڷS¾PqÔó `?¦‰%ê­?ua(ö<«U±×?ñÕ™^Ù·¥à„¡gF–jïéY瑬VÀ~ëntñÇ?OŸäËÇä*ƇŒRÂ{~û•ÜÞêe�’‡®K:µ‰MVZØn³kêʼnša÷ûåk¦oݶ«J:åB>¼ìÐZ êÒ!ñ†|Ü3½Ÿ0À¾e:#í÷÷è¯_r'+�Y„%úr½nÊxÁ.n*^}™£„[D¿wzÝ£ °Óöã}FÔ†|$ (þô[‚rX%u`ÍhÏZb ãÒ#帊o\ÅË•Ì2Àû§~kC�ÏtH¦pi&îPL4iÿÔÂÍ´‰(Á8˜ãø®À¹x©´¹ Àv—åò%ÃñõRmª%�ðRÉŸKÐ…ÄdOP5MZ@£»/^eÈÅö¼µôöî<ªþà¸5K¶Œ±—¡,‰1†±•J–¤e_²ï²G$Y’,•5‰�]”5Ùw²+¥)d›_÷Ñœ'Óâù�ç÷{Õ½¯?æœwsuçÇñýÜë^f°m®fzš©Hd–PN׬ðÃqj"�Þ¤ðÄæ›Nn�«+à öÙ¦:G›Œô‘váJ”.Zûá~}®µþ\þÏÏn¹é�’fÓĵËëò•›Z/å6š cË¿u/\‹­öæ´Ó19¨§:¯H¶‡&éîyxÜö<Ï%Ÿ|Ud“„£6Å 1+°�íï¶-G¹ŠZ , µ2¸jS'È*¼xßÔ¼dð[$f7îm”Zô–ÕÕy6°ý›íD˜ë}Fz™’íñ"-ÃcOÇõ¶TPå3uÞáoE=¯5í,xŠ‹òÐð)Ûæjè áÉ ¯Xº™ìæö)”òi ¨ª±¥’VTlúè|x"9àŠÂKK°m®ÖÛì||A5HÓþ>Óë”ô Z† acŠN¤-0�âC¨…ëxJ³w÷â‚ l·…÷zÚU¦j"i¤’Okåï4m »H g�WvRÝÎÍ´ðŠ™’Õ-Ø6[«£:kÊiWó†N’Î]®Ôã)’’~3=wã[M]¾gáHÅëGl£ìòýw˜…D°×ñlG\¦vÜØ²ÿV‘y}.#•úFëø¥,R:_�€¹ù‚<×k$†ù³Su� ,Ù÷ºí(÷«˜åㆿ8Òæë¼D“lÒ—ˆŠ$þÆ:^øÛ× ÒO$Ñ\7læo]ÔhZaêßèšÁýŸö™Ü±^­“¶œä/E1`„^?f‹15‚AXi† K‹È]:wæÄ×JZKZ“é_÷½î[4„ö+éT¢'�F䃭 ‰´>k–c´FB ÙÜn;³£0$Ñy¶•mÔkä=¦8Ü3ðO›ë€�°�°¦v6†¬hQIQ‰x†xF|ù‚Â÷¹[¹[]WSxÿcŒN5q¼ÎKk˜é_¼ ZsnÑêº`^˜cÿ'ŠÆˆ•ÆÕ”¦´¦4ôr”N0%R÷¯xÒõ¤KøÅÕ•«+õJ_Îú¤p• ZUUɱŽäzŒ¦€nc!r!rÌ÷“Ëç{(ž¼MAYy"­Y”ÖK,“rÿ¡�æBØßÛÿë{šzïé[L×ñvIÜ~ó,·GQ6ÞYN!üÞnVT37RôĈx¸ØÀ´×¢¯ª{êiåì»zT(ßåÔŒ$*lH�BŒ+•Òe»ÝGQ>S޶߯Ý默SHh5¦¿6åywv�¢æXHýñèé¶Ò'§$Zõ¼Cöd�íßköå¶1.÷ùf¸N¹¾–O¯× %ê$•Ø!�X½w\uÑîÀäÑTÁù~°m®6[Ýr3ZÂ=%£r+ê2÷P–½„ï–õtÊÔΠÉr"B’�ýç"°mþFÄmÊc©à7q£°ìˆª\—õÀLôïÜw9²o ¢ÄJ§?%õNlôw¾‰÷(öšª$¥±érP¯!2Œ§æ€c÷‘�ÖTéy[w抯H5ÙÑjÿ¢¦IÙ+mïåî6çûÝÆŒ«Îš²‚3¬xí(AÅ…þ¹éú2’kßXS‰®_Sõ}>7êÛ}ë8W uaL-å3<ã˜�~Æ>–âž‘`Ð:<[p­**ôÚtŽ>e£¡ówéî? OçÀ‘Ö‹È­b=Ý“µ…: l›¿ÍÉe³QOÞݶkÉ=¸!¦r/4•Å¿ï¶è»SM¹, |N»à67ƒ l·�»i[^Ø�])�Œˆ]uÛvûҢíÇñ”½ÐàÓãXžaB}—l`ûšº$µy“ç°p�W/•ÁaG^ý}å3DÏ œ;RœE½” YõhI=î¡ ‡ý\q÷ñ4z ð6Kyrsõ`ìscØ×Pcßo{Ž`9¶Ð\ÁLæXáøFý¤S¿ßt^.“¡Û+ûDJ.¨ûùe˜Ïjùù³^-‚¾g‡²¥/ Ÿ½î¥wö{ŸUÚÞXßÑÆ~íÕØfà ³Õ·GZYšYÜŒíÌl¬a8 Žâµµ7†ãüwü�i 0j�;ÙX"„ö „áÀñ_~¡lˆO›� à¯Ÿ¶u¯üH$�Dàð#ùQÂÂüH¡OïãB!q`ˆÿÝ!|;ãà¨oƒáØÛØ8þè}ýûOºa_³ÀC)Û|÷ñž¼GJg&ÇŽìß蚉OûðÙ­ÇlzLäKÞù>µ^²ª;u u ÍZ8gW˜�.½:÷lç×´â´â²ñ«ð«ŒãŽc2”€>7Àý ³Š†a=Uõ5I£-ÉåÃKÃK tòÏØNr4`°¤Šc\È>œ¿¹KÎFFa7`:n:no<À¬Ö¬6Ε´ ƒ³Øæ {£ÿF¿?ÿÌ÷ùÎûÎwž’�ü˜ëy*<‡À®È5‡##ùuxׄ;ßöÇ»“^xõO!—øNÅX‰äˆä”Üwu] �þ3Ofž¼dââä)¦UªùFó�âVú¸í¸í¸_¢ð[¯e0F¾Ú¼ÚŒ=;æ+ÖŸ¨¦_¨ýN©´Ñìûç8�T±¥ïc_¼~Å '¿S‹ónËB15‚g¨-^ñdí7ÀýÆ3MëgÇ\Ÿ¯ŸŠ3ôïS8“šcu¯ëdØhvŒ},; {šÓn°¥øÔÍÈ›t½-n7Ø~†¶"4&é?¹ïäxèÃD>óÃÛXÏ(èŒ*÷ÐUQˆHù‡Òˆ$çt‚mó·Y&6FíØÂò”U:|0?Ùpá÷…$,O`�´8�M|×:oä™ßÛ?Ó¦¥§§;�£5ž­‹l'¡‰ÆµÅ‘\\Iv¹ešÒú—Þêx2œ³O¡4ؾזIºL\ßÑ×›0([7_µˆ´ÝLϵûUšòÄGUf#zw�¸¨=-YÉg÷«4a¯�| e*pF‚.göŽ¿½ÑHòÓ>³Fë…º0¼ÂvOíKñ0¨3{^aÉ;{:{¶"™ûfUd å ­³_³�²�Êá — —åê(šŠAÉÕù„2E9Ï š�k`oIã0äôŒŒÏùÎÇ>í–À€Ó±•a”'‰²¯ñ“Þ*Y½?¦àèh“p�v�¦¤‹ƈ˜Bg£³‰^½J !Ìú¾.¼.¼ŠÂí•?_€àùý�} ½ìðùð�5µWŸR’ÇW“ý‰øZ/î  Ìq.s.“×Þ{»š%ãοbUzUÚÖb‘}‘½í¶ò‘¥­K[eâÅÇg+f+2ò¿Ä¾e½F @{O•i•)öèæäɨ¶�!E£õõ¯Qð�Ö@س¤~î®]öÃV¬y©Kæ.‡®q?l»¨‘ô®_ßÊk)v Tçk äú5P9ùÚ±7ÖN,.?tv¡÷z±ëcÈFk ìcÙL÷�þ•›\Å„aÿ³},þtOI›Œnó‰Ó™Í Jµ¡Å¨7x4G˜xywÚ>*Ûï×òMŽU—á/�VÖ:'BÚj¤öBpâ‰n�š¼§“Qµ¹×,F³àp7KØÀö3´–QÓò*NW ¦3ãðä}{ëò<]Îýuz‡вµ_¢[Š�¥4¸‘€í×nÂߨÆEhêHÎ@Úu/(%§>b<˜¯rA·lá°â�úøjdulãm#°ý~M�F27Ù·$®A©šÿRPÁö9DÕ@¾;åK¶,GmóôE|��+ÛÁ¶ÍÖ& ·\è›,pŒ3L‡†ÊE¾õ̇ 7‚”µ˜ÉÁJÜÐ}éÑ´>&W±g“�ŽC^ÑÍB‰ÆIÒ±:«Í&¤>í#x=ïçû°©$~‰ŸÊ7€1O¿�~ûùçýB1šCÖ®q¬&_ µµ÷¹PP.¸£b7Ðó°S’%*ý›×tF ¯`gææe¨À‹Œ‚1¶öÌa¬h;¬ô¹á¶§‹Ü�Ø’ØÒT€³ÂYßÒ>;†An …CáèZtí>|ýßGIHI8Fÿ–ùÇœmu¬X2>㸹@ºö,œÒqKˆSÄú«¥Ò¶hR¬Be? - !òƒ…:…:…‚ŠJ£JãA~lf”5”5†÷õ3õ3Kv|)Àn½ˆE; Í�æÇžM\UÒJo~!bê7³mwŸßF³ ìë^ˆXu�“ñ.qøºÐ„:öùÚ†ZmÕBßbòª•R?Ò;ü�Ù„àúÙDÐç¿í©ƒq§'ÛQÈšwRêhl4›À>–ÍtÏÉß­=7`¾øº�x‡ƒû+ÄÓÁ_5´ÙŠp¬ÂÍ´Ý=gñ& pŽÁ)͵ðÁöû5Uò€*ó;–|Œüšã:ÜÅ^×r«ìSÍ ™Œž"Íveäæ²:g ¶ÍÕ÷ cH>¬§Em‰›€‘Ãt¦d‡ñŒbyýä‹î’L‘T îö|‘¶ÍÕªN¡�z/õ™n›«[Qm?Á�(>Фr>WÎv‰£uD› )§´sØU´l¿NKëš6™Cz[ã¢]=ຓÇ"¯ìhÖ ’åp/FÞ‘.;*WJ³Õ¶Ûï× ‡.©0Çù+öž§¨»&ÐåSºÆAà>’1K¦H "ÿ,ÜÙl`Ûlí²ØÞ»‰œ‡3ŒU+Ǥei¹nóíù·îoÿ«´3ÌC⻟…‰×è´ÏRŸ�ÁŸž]Æž3á¾$?G¢=ÝâÀ³lx°òÂFs¦ŸöaÚ¾^[‹ ¶j¢/)Ã1Vm¬ê0ÚH‚Ý‚Ýl¶½€³-5 £�¿V›X›Dö2úet{%à€du g�òH8�û@ÍŒÁh�Y ‘ƨ�a–aÖñDæ“-¤ $5Kg0r lïÖ\*&ãhÊ»ÐòÐò˜eȤȤp–Þ…c°vUUx[z[F\(¹û}MÙMÙËF,Ö?¦¤Uµ:58NûÙ|ÒLÁšD á‰ÝPɳšÚ™�¤}ਘ†NC7|T�‹ìÝñW´ · ? ƒ¸@\}±‘ë=\~¸Lý8ÄXÏBÏ�ú%ëªõhÕ‘yþyþØs&'GšÕ•iH�~ ©·äFs&ì¿×j}P[ÆàÊÀÜ.j,HØ¢þÀãHâIœ`¶:þVœ²jÙë.¿1gZ?gºY;–“”e¨À Ø|A$B�îlÛFs&ìcÙL÷Dý'ÚÐS”A‚1¾�¨YPf–ÂcmÓ{%6 OITR$ºlG¼ßœ½C– ¶Ÿ³r°ŸºÙFÊÚ£*Â�¢wjY¡·áêHŽ‘œGÂcę዇­a”J`ûýÚþ’®€]£=aKÙ¼bW8´ô2ùJ‰2�_øŠ«üŠwØm¾wËnS°� hÍ~ÝéuÍÊæµ#ööøûHÕ°1/(Y$ëFi«ç'øŽâ~ ØþMšMe뻸źƒ&4ŒoÁÎOŸLé%0]–:ÐÍóž5JyŠü!9uè Ø~íÖßCv‡êÝSJ“Hur:íù­'V±K)°ë"Â\¸bŽBšOC¡Š9`ÛÏÚÞ_wßïbûÜN%Iw‹ª¼T´ §º¯K’4>B©}~ñ:ã™3ØÀöÿhLqç eÞ0³;át}O7ÒM÷öî;ëöqฑ}Û{eŠÈ¸=fRDwˆ„Œì=3ê6B<²JVfŠdË&[(„ìÇ&+‘QF‰~}ÎÝýÄÝÐ9}Oéù}>¯ÿÞÇçœÏ×®ëºÏuÅÿ¯ï˜Û§ /X®‘•?PÆ7àíh4~ìd_‘‡ºN¨ÏPg©Bfaü°˜4ºMüìÚN넨ç,±Ál!=ì ú£Y§FdíL±»˜6ïVÑèÓˆ Ô©ê½ÙJþ•uBá¯ßßéö^"ýà`ö æ�á º�ÖÀ�ÅB�í¬Ì˜“P�l•Z‰Ô‘kAj %s's·î2xS‹ÆœÃËüRBiB©Æ%¯t¯tÞ½~¸¥#à®!à¹L›ü^Wõ=\l�ÖHxÍiiÁmŒ¹z�#µ½}Còè4B°&©Þ¼×t〪�ªýe@%X%8àÈ?ÌH3]c]c|¾|¾ýÆÜ-ß&Þ Þ@8®ëò}ÁºS²�#ñÛó~„ž¥¬³ñ YPµÏÞ÷´fíÐ�²Ú³ÚC9DóÎ:®ý×d×ähêæ�æ�‹š¨JÊéÉèÉ­Þƒ/™/™{ìÛj¯Þv�¡¨ÍÍÏ.ÿtþŒ9�j†_uP_ça® w‚�Ö�QÇöÏœó¶ÝßÖ´D÷%ëõY¤t°DHÅΡoøà´'ÈÈ�\›u$SL94´zàà ØÀö;ÛM¸^ÙlGþs4¥ÀÁñ¡¢oû)È®ãE¡ëq†E§ód[L@xVrÁ¶_Õøò…¤trÅ3”–±&’ ’®K�¹oò^J¼€�í›ßÅîYƒ›î6°ý©m˜”ç¾ É"Ý@û2“y�P¬°±å¯¸Ç¤§Ï°No¤Œå°¹´Äè^rþ¤#/Pçm"âúå0Âwc9þjíï|Š'wš·¡žÏÛ*]Ìào™jtO×õŒ·‹ƒM]ìâyÒÐŽcZ^J‚¹VT[æmŸîâûú¼íº ·U$=ߘ÷ùìU²eœ�æmÒ߉­Ý.ޏº•õÀV H�ÄI'‘Þ/w.w6ˆÀ`©>x³ t=æ_zRó¤fó¶¯�¯ÝT@ô¸®6€žpÌiãL€Ó0? ¡ŠX‘É+GKkµƒ¤jiF ɗ>üß§õFa:‚ ßL�J«´À™Å™s C"C’cèàŒôáR>E>Å—+.‘+Š߯y•ó*MÁ÷ù,𠏄#`[úŠ-z’~¬ÚËhöó>„`ÛïlãQ¯˜ël›H‡µÛUû ÂÜÅ•ÂîöM�¡™» ê£û¦ÛÓLl`ûÍä š*yob\ÚNç“÷óŸjž{ã§Çê¹Éœ Ä`P–àzTžcC8”°l`ûU-øRS`IÈqõyñ¤ý÷Gƒƒ$Т’4òâ¥lømŸ–雾GoïØ€ÆOp'b£_ëÚð�C«Tgn?Vô®>&µ÷�NX€ë¨ŸÊŒÄ)k[¨6°ýª¦V—&ÙÓižQÔºÇ,¼)S®Ÿß,� §1™³z®ß¢+ϵìp˶ß×Čˈ„[YSàU¯ÎÆ›ZÙî·,Ç@«ƒPMÅLi*dÑØäåù`´»ƒí¿Óúû|•×_6,LO^°gç�èØMçþÿL£f?mD>ÌùdÍÀżù)̦ uŸ6)ÎÊŒr¸²ÏÖËŽéúž�öiQïA½#�riõî»Ç÷Ôn­ –6¡WÐ�Ëâe y¬d�xÄú’�ë+û´_ß§åíªP3Léð�d›òÎ�ØiŸVæã;ªÄÛ TÜ›Ausd+9c¤> »¤ŠgÃãÃã̇ú…pÜ„Ïh~i"c"ãw;g;çJ€àJ€»>àŽe [m@z>ŠPôÆFÉÙшψï¼íêÀZƒp’¿ õ2RÕFÜ~„7S†õ4äh|€»ŸˆnÀ³úgõ|Š6åH¼,UU<�yëEņ~,0P‚ýúû†˜Nß|”F]�«ò^Cð÷ mdp«0ùŒ`7œÑÀéáîán± �cÊcýw÷ežÑ�Ñ™0T3n]Ç»ŽÓǘÒh[k[³EnŽ´]ÞCÀQ¬9¬9äx ¦DŒ§MúÇáÄçý/<„RªXÙiŸulíL^°ýwZuŒ9ëêL°tÆ�„ÐØ»WB,Ïû:ßãD¶ÏhiˆkRyvÉÈ=w®ÛŸÙDoùœÛ¬´§/qæW©ÂòŽîµ8>U¦Dz?EË9a(I~ÀzÞn<© lÿ�ÖóÔÞï2]Œ'/“£(oŠOèIœG©½ÒXW©jË‹n�Ü–,¸Ð.:Sm6°í¶vãtI´r`Î�´•@ý\2$ÕLôqŒš=ÙØšU+Úº_·*‘«ð æ#ØÀö­¦:Þ‘ƒ©±yNRªoíÉ¥=ÚœPË.¦+T÷7g)—�F5öܦS;ØþÌÆˆ³‘òäÚ ÉÕ’w{£`�ÕT>õ¾,ýï£}FúœbeOyFTýó6±l`ûÙF:eF…ÇÄ!U°ú*‚ãæ DÌ <µ×÷â¦C"ôm&HÓù/FJÆ-TáƒmwµLÞ[Æxçî˜Õáã¡”±žˆRŽÌϘ¦lž1”ëñ ÏÄpN^e0Ûîjf&ô%¯±ätÍ‹–UlÉpÎõß Kh¹}ÉåÚæÆ(7+-fi ž›Ñó^°ýšVAFEê²‰Ä b0%³¡¾|a“dx7ݱ³›Ú�;„�ï©ßæ¾æ Š�6Ί]!�á@Ýk°,ÇÁe<á|’[YÉiÿjÿN{ ·&7“óñ¨NTeoH×]²WZ “M€ cJ Ha¼¼��6ÄïF—¬|gãƒþå^tû^ƒø§»¥n;¤¤Û6sîó ½­½gRn§µaÔoù]gu[\Ëë Á¡wPMƒoí¾§ËU®ráoî¯N̳üÍ’Žç‰ÔD­Á¶ŸmØJœ%m–†Ú™œOÒf!Õ‡^ÖOÒú‰®ã2M÷?•zç)£«36°ýΦâ\LG#]Á/Ü:ú¢gZ»š$ÿ}W*_ôù³®=èÐËç¼€mwµewÃ’h§˜ºŸÒÛ­ˆŸªäÕ~vV•5�p¸ú„|“Ð[øÉÙ$ÿÐS“V`Û]­¿®²vöº†}1ýLÊýëõhT´WC^È_Âoe>W* ]»…¡ð:C^ l`ûÙÖïnW“¦ÁO!•d¢]ÈfÖâ ¡|F#ÁÄSÓE’œŸeé³2"£[6°í¶Ö@âfÆaWó’ú(µ«\åå~bšÝt�Ëך:¬oM±zæë¸ç~ØP*ƒ�°êïô>ìQÄ\aš0� ‰µÝéwz'>¾“Fµ�LJ‚Tãœ[ea#âj A**°e´eäÖPs7€]r;#“ø%ÏxÏxºQ&¦l£÷™€Aw@ó\KÆ GÀÍää„'©ûñ‘ äŠ6‹6«1X?/Ç#]è)ŒBú "›Š ­d@0fæ ЧЧXáàwãwšØ`!Õþ­ô\é¹µ¾µþ8‘Þ·™¡™¡µ)”N}ßÅÀn{n€ú§gü®Õ&?B± Y|´f�á•Ïæ½Ü«u–›Pr%r¥¸×y^–O‹þˆúÄúDÙ,9v9vªpG¸#ÜI‡º 3.3ŽòìV>Û-J›2¢2¢P×…X�æ÷ÆbI,±ḩ#Qßi]h=ŸÚ[ÇeõA�sžaáëù†ÚÃw™r³{íˆÅF•Í ÑÃ&Û½áëI¦í<’Q‘¸_Yúkûº�Ó§395“‰ˆkÔÒ[D¨u°ÐÔsuN¥ufÜôwjÞá‹jÍM~;Í©d?¾ófs;æ¥ù(TO,¶jÿ÷q+¨B:ê‹åƒåÃàëÐPmÀ®Û³Q}ìK¬j¬jó µnµnŠ5“ÈÜFÀÚ€‚»ÞI£g€•¿å•ðî|ÀF Â(€@þ2nÕµ‘E{ˆ´tr¬)§•õ¨`»ÊDÍ&@2U25„àÝçÝ——³¡��Kä@äÀ—Í—}(ZgÏ·yA¼ –J‡Ù¾ÏÕ€§¶ î„à[x>ÁHÁгv‘§Z¢ø³eìLï¾d€.''¶`Ö™Myè€å�0Å7ŧÙ;H>HÞ3ŠÊÍ$6.6îå“©K}ê}êæë[½ÖÚnZ@IÅÀÂÀ‚:§ªHyÚx½ß�?„»þ˜c¯âNsªûlùG•L÷¶ÙOÔ7ŸöH ìm‡÷ÓmŸiÈ.²`t@å׆RäâE|eN%²}N5øi¯Ý»7Q…óYQÌâe ã˜�æT¨ßò+δØ€ÖéïÞŠn}XY™æÙyjG¯‡ãÁ«’ÔÅ=a÷ÙÑŽë…ç?f1éËÁ&»¶ÝßVärYÉæ2H÷­»ÞhŠ©£Lㆲċ'‹,i5ç3Ñ.ïñ2qñGoiØ~¶™ ‹ÞŠ -9¶/…<3|_éo*hªæë!4w™«M^}ŽU™¦d`ÛŸÐÔ�’Y4»�þÕçÑObpRÚñ­¾xÕ"wèøÊS •¤io>þë wØv[#|B§ú‚Lšžt~î¹ä…FÏXÖðk8WÆŸ= *Éï”Σd oØþ„ÆW©%“tü1V¶NÉÔÄÃÆ‘˜Båg—éô¯ð�«Y¼y*|æînúÖ„ÿu»&áYeÁ ð�™$ÿ º�a¼ËyÔu++9tüMÏ\åY Le†ó7vZ·’ûøŽ‹Àvó†DZ¨0ê·Ú Eb»ìmŽ„c¤ê ê dw�®üâ4[a;½ß—RÓSÓã¯a c �ZÈ¥úrqxf‘~y* ‚À2=ŽïR+IB~B¾Ê¥çÐýg ~H78 ‘þ®å‡PŸ˜–çã© ¬¤¬äàÚâÚS<ÂBxÑ#Ö#f!l!<Ú„sìÛäåyÞòÞÿ¾NUÃ=þé#„·h µ7»æÄi— ¢ßßIOýlîØ¼”¨€±^ªBªÂ‰€ß_DKðü�`�±ÀûØØÂ âr¿æ~íI¾ÁÁ‚¬ÂV]•ÛÏf76�ãiöÓºÕ�¡MØc‹×ÆhÃ:a|ßO úæ6ÀßC>�C`û^±ô.%tR*hórkšÊåSr¨÷®H¸–uÆSè­ñ´[Á-Ôÿ�½»ªjí8N*Hƒ4B¥D@¤%%”’–îî”TØ’ÒÝq�nQ$$¤»[P@îYw»¯° œyïëA]|þûά™ÅÌbf¯ßÃ~ž øµ{øïxÀï?—²œÙh{@�éxû�ã¢J5A·Þ°éúÅ|&V�±ÂºáÏ넟ѱT©òó/='Ùxú> Gf¿üï‡"\eéýØiXzÉ ¢!øaýêgì-Õ ö×øsLúˆ_9Û–õë{oáJ~P¥žËïxï"祼Q»¼ßß±Ä?ל:¹—´¶n¼ƒÝÐË` §­ó`>MfMfI{Kfµ}ŒX•¨‹Îø’’’Ü §gNÏÖZ—'ê¦í5 H©ãg½Ø-Ÿ@<Ã`Û¨¨"ð®çÖÇŠÃP‡ÌzÁ(¸R܃ ž“^navXÚYÚÅN¦œL¶—G‡±F-m(m” ”Âí¨Sÿ¶9¥9¥W3È®ß'‡Ö¿³ªE„"™;î~ªxÃÉ8óX¶»uÕgŒ²h³½5ûüѵѵd‚³­²?B¼Y¼™™ðŠ÷oàlÞ½Ô‚º)»)¥åK�š‘šýyv Ûëfà‘X±X1ìy¢ÿô4œI¾CRWþ.²#tkê&Ýoæ ÿlÿUNÖß–{6ž&ëFÓkI“ž—U�`ۯж9g8£|—ùÔçCjRåYÌ%ð¨½Ê¤´'eû‰°¹…}C Žrg—uƒíà·7ä4dZ‰)¨õYç´Y¨ ba\oËÑË(_PÝÆ&B¸í×ÊÙ_b^¶ŸÓVDVVºØ&Ÿx´ Q'L5zZEOŸfW\§&¢çÿRŃô&¯}Ž>ØÀö­¶…ŽÒcâºhHòÌ„TÖ ­-Ü"Êö �oø»4Ù¥÷J†$nÚIѧžd\PÖo…JX~!Ý1ý˜ ròÙ³æýÞ�àß±†{NØß ݶ>�_Ëjîr!’±¦ã–jÚê°ž•çfâ!Bí¯¼±í}ªÇ‚ÞKPËÓ¥Mƒ­gÏéïƒ÷ûÌ /iïçß¹]|°d0<ÈGéKÜ{¤Õ0“…ŸØì5ë}-Â*ŽE¤£—È™ÈN·}tl^+5Qh¬CÞ4–Õôâ>Òn¨<;ôB'@YÒÃɰßÜs„*V­L¢�² l`ûÚóIS?¬:Wlò+ó̯õì­ëKtèšt/ŒTjÍî´“V)d5_EÛïÝ|Âm“"Ô´…^têøÈdüýˆL¼T*ØG§nCBzLeþcT?~bK¦!Øþ¼¦rT¨8‚X›Ô,Óˆ†ìPvl�µa¤Ô g–‰¦ÀQË<÷|%K÷ã‡�`ÛAkK„é.-~#$­Fy¦ÆÆê¹¿vVCÀU”k^ñ‡ˆ!|¹gcˆn˜„ïa˜�kÍ2[y8K?¸$ôŒVi¿5,É®iÏØëœZ×*¼¦¾ÝT¢a7hþßO(׬֬–ƒ`»j’Œâ”13Që—¤OHŸhgHàKà›ßxg� øŒl†Z#n Uó_A]TG ‡aÁ£ ¥ õOõ+(ÁៀaMpŸ‡9׫´E‰¹ðЄIC °è´èÄŒ°žµž%Ö×#ƒA9u³íf[ÅhŨ—¾ñ·…a„a6âú¾¿î˜ ^ ô@)¿¾œ0p ÊÇ“�â$×�- »Ï|*J-ò¢•‡(Q<;”™\HPPö#ŒU�U±jjݞû&ˆ.ˆ®²Îd ‘†HûõîVQµW¯%›,› ~6.£™Áß6Ím y�ÇPÉÙo6¿|˜zdTGóô&­·ËÑÇ!o[Ô+ Í�trϧÂ*—–ƒ¾2›`ß;›øôЦ™*ÆÜ ;l1ón�2Õýfð÷r�öŠüÓÚ”>Å­…´¿ÜæX{Gû½•w̶¹¥r–úó®!-é#(0ã˜k"ƒíÏkÚJX~ æÙ–ïnBÚ’º®:ò.ïBek‘$®®b0Ø€ÖéËm7«#sX׊ 9×ï{CøÉÉŠ ký �h-•ÒïIÄw¨`Û£‰ÐÈc¬&}h79JöòÑaª›+êY(¦<[Âçû˜ÞRG˾ªÁÂÛï݆û1³qW{qL¢ÐU°vr¦Ò_X%nfQÅqsÑWÓÇÊ´°J� l¿j{9ç&àb;e'É!DœŽ[Ÿ§¡q¨GèHr„Lçú[ÄBÞ '= ØÀößhäI^å�òãÍì.;Å�êcsÙ!ޝøÿ>l¿Oã^±ØÀ¯)“?¢ÏÒų̀!Äž¶~î̤àU/v*öôˆ¸)šðy¼ÊýæÎÒÀlÑf¯óè“MðHWv*…ÑTt§ƒ‘¬£ § ?O>£˜j…¦ødç—¢¯D_YC¡£“y°«�iˆ*ÎogjtÕý¯•øO†l4ë`æL':&:f�¦R©Åa˜(�oÁdÿ=GõÎ,¸8S…À�Ã�C‡èŠèŠÈâ~fU)¥2¥2�5�õí¼gå·ùXúXÉŸyö}5#þ¥~€c�PÊ¡1¾µåPt›Tíó�‰Ÿõ�zª*ÞTpŸ>15¥™ÛR/Ïù#.z_ô~°vAñ‚"Û-xÎÇ´ˆ´ˆú‡»1ññfwCªØ ý!`lƒÅ“Å~î¬GÑh¡ˆonTW�ÓΧ´±ßÜ~?›ã’6˜½´+zãùRcbCv&‡º)?¦Ô“è‘ð 6*ë…?'øÊÜ™n�èOû…˜a(ßõ­&îïb=ÕÆï�±ßÜþ^þ“ýÙÁvðÛ†¯ã‰LÝ~ó¬NêHþàø%ò¦”`CMš±¼sòwî<æ``Øþͦ î¬[½ÔY<… 84™ÊY.þ~à(~z4â¨.}XLó=óiLæµB°�ígµ3ÅœÂÚ…|wåVѤã•ám N\iö^M·E:t«¸›öúC´°�íWm£xÌ¹Š¸¯É;ÞQj<äŒç6²øçEôö4êŽUS³š‰ò×E÷°eÌÀÎæáÓ«‘Äú0Qàw¹ã¤bv¿ÏÙðûV>­ ¡ð³È6LC×qSð¾ê`ÝÿZ ïNçy�rì…–D%H_žÅræëû<Ö d­Q¹4±"k?tæ[Õ‰ÚïRæŸk"-÷š_¼?/óÎnõ-0ški40|]äÉäÉu‡§uïLÕ®£ ɤǤ‡3££îj8€Nwê§D44§Mjó�'5Œþ”¹¹@à+1ÖP®0ÉèÈÇ`6 E¬ $\^"–l0®7®ç�¸³º³:´jFÀ¼×†ì@vªõªõÂP¯¨~[JkJkj®®ç÷u'CQÅ\k€*êyûfªœ÷.NœjÈ-ÈgjMJ ä2F)B)‘zûÚÕr²ªqUùªrDf�R�Ò£nxíRýAýAy¾Þöí/§ífu~/&%Àšvôjô*ìyj!ƒ>OÙùyZWfå8ÜM5ï=hÃÆÛï½ þÙ>HûýŠ­Fƒö 7–åvÂ9²Ã›ÎfíÆéá˜H²ùˆ²• ÑI^T–8ƒÊ‘—W‚íßkKù½Óí•—T3 æ‘[.ØaÓðr•ÌöXâ –v xû^G¡áÉ·x¶ŸÓœ–¢\q�i §©S‚ˆsJæk´/¿NæIJ~p´°þýGG„_̰�í µMõ†7VÅOÖG%ÌÂï‘Vß3'=Æ”´ÍD8v �ìÌ4M›:Ezp{5Ø~Ÿ†U=Kÿúø hÔ0â1¾—>)]ÆqògÈkÛ4ÈqP»#DÚß})ÁØþÍ6ý’ëÉY›f¼QÍåŒ0G>¹°¦¬þi1’e[^ˆÎ۞릺`Û¯ÐHfÅI꥽qÐH»\%r‹[ÔUßúêÒ\ÿH•ÊI¡_�ê&$M·Í}« l`ûY-Ä©ˆ2°2TDå5_ÆÉÜñ�`~„è 5Š¢dak¶t›–j=“-ĈŽ^°� hl‰‘Û·GN¯)$4\ò~p^ø¯ÓÚaþn㾊 70]òç%ãKõÀ¶ŸÕ.7þ-ØÛev·üù¦3ri¸X�^qëÙlÉIãeË)½6�³É§Þ9Ä™a‚íßk猪°¹ŸÓd9׿TJ6±´9iQƒ„ЈI4;§.“Ob]TAêp3ÛïÓúo9²Ëo.6½œŸµ5Ÿ¤e‰ì¢Y+ �†8€,2õ­EŸ3P}ÙrVžkrf䣟jôWJ ŸÔÏÑÏyÁËÕ܇Oö#Ãã�[X sÃ+n”é•éõÍb@]D]LÇÜ-ðå^¥¬€n?«»VwaÏS!ôyÚa4˜tÆÑò³­ã T4Øo�þÙþÚž¼`û}Z>q¬ÍúBˆèÝa~Ή/9©§ú»ÞŽêXÐPãS'ºÞ-Vrqʵl¿fã�ƒ¨~¼oO^éJ¡X�êÓg3(2W-‡—›¥áš:œ!=hõÊn2£l¿Oëm±÷Fw'‹½ÎBéÈË’¹#qøQvŸ(ªÑãšò¸±ÁÛÞ…Æ`ÛAkA²•1ò�â–gŸ,gbf›ò6Ä^¶ÇŸØ°|ްéÛ£Œíƽ†¼| l`ûVSžì,@VûèåŒ[¥÷?ìÝw8ÕýÿÀq#3{¯pTvèØÊJ²7Y‘�uÛ#²·Ê&#EÆÉ®ddggG E²’üú\§ó‹ÓÐuõ½îÛ}÷éñßóês]§ëz÷Çûõ>çý1�HðåÐoM{Ì|ÌH2ªá2+ŒC@·sþ“k'Øþ�íÖfvcØ Q@Åúëòu�O‚ ¢ƒéÆ\“d|ãjŸ­gT‚ l¿Ûˆ_YRà0°H–¬¾‰c¹ú\4qçôRúÍ™+¼qƶSÄ·¡Å‹ß\¨ÅÛÞjÜ7ÌqtR,ÄŽr‘KÛL]׊/Λ!o}m*ÛçJ[€æ–µJg¶½Õ,ÏÑV-aÈ�/[Ö¸H‚¥3˜›Ö–ììöisœ“‰–ˆãeö¢lO«"¡ v_À‹ÇŽ¢³ ±¥ô´ûD4º—Þ±³—ZJ ~÷GÊõ»KQq'Í “VˆY�Ï.Tba8åÆŽw·ºšÕáÍáÝÎn¼ü”Ѭ\ŒÃÃV—¡ÅÜtÛè�ƒêb¬LÞ(úI^I´u¾çv¹. Ïq{QÅ«?Ø¢~{ÖÀÿý³±ÕÊÙ±Úa yåMûÎ#»�5¨|~¦óáN³—‘Ún†™ÁÙ‡�F°þfý�n£ÄÈÈ ñ Gbüoøøå×¼€¼€8ò¼¯¾& ­·ñb‹zÙp)†0cëêòêòJìùCÄ‘*†HÐM $Pr8‡~¾3ÕG£ŸÔ[Õ[çÔôÙôÙhè“)¤>ËiËioõßê³aë ÿÕÕþ-³Ÿ{©<ï­hé…K÷”‹L=Ç\?f{ñãÃ2¢¯r*O:ô’ÌqÐEÐEünÉ`ž×„@E´^´ž³¤|Š|Jàd6ÎÉÃÉÃj³ëˆd‰d½T·ƒàì”õà]Q.\.ŒXOÇ¿¼«,Ù1ûöÅVÖC>W’õ÷½”Ýí¬ymÿSw¿_Øpì^­£öx®Ë¦DWtºG¥†ÝeÎP¿ntMh«¸“Ái°�íw¦*kE‡ÉSýÖÆÜ9¼:Ÿ#³O^RG‰lŒb3̘>•üà+md86°ý“ítŒ[9 Õɪ·„ÚǧûfÎbÖGÒöäíàÑhÙSÚ‡Êï©ãW ¶½Õ¶¤ÆfR¿bè}Jk¿r\¡š[DS‹)´î”b‹Àº‹Ü\fÈ…—Ö`Û[m°ÍEcM3\סœöuv~ø ꀘiEgÜvF˜ ÿÚ 4¥¥<Åc¨`Ûï¶ØAoûú\](™dæ9ýû-;c‚ðÈG¨D¸ê{ˆ²Š /ø$®ŒI•� l{­5yY²ØW$ÎRJPzÈV{öA ©öÒ{�¾×´åÖ”ë^?dš é>,?œC' äˆ<bRv}KŸ„)–QaÕ\LC¤½Û\h£—Òß0deµ´Ä-ÇôþÒÛ¦Ç<© wïôÛW;5vJ¹Óßeƒ,Ó¢“Küz<öwæB‚;çB®_îäÔË" ¬?}»M˜ÂG¤�PLf·}<ògù_ß‘ëËÑ+ò!ß0XpÜ5í@²»sÅ]4/ôÁ~2;Tøô„hì°� h¯…_5 4SÈ:ôŸò6©7QÉcÑ�Ç*kɽÎ3£TMy×½œŸpHDl^Ë™xT�X†aFnN÷Ö->ui”à‰zT³FÂBgõ³3âg}£y9ŠÀöÏ5‡Z»D×;|Ü‹¬gÜ^Ëç7EcõàŠó Å¿ö鎆æûóª¹|«Ã`Û[m©¡=9AÜ#» ~?ûX‘ƒ,)w†íÂ#~K+.j]†Ó×$0˰\ÁÛÞoXì–œÖ �sIe5Êš²½¶#cŒÂ¿s�w1éñiR%¥ñ[Éw"“¯Øï[øN"ŸG:>|Ó`r�+Ꙅ³[°ãê¥ÝÎ#U??ÃP¾“Й0Cd2zÛEë"<‹»Ž°|l{[ŠG—û0gŠbÚáo±CÙ¡w8ÑMÑM™§¸A—,E€þ—TK“–5óòpçNbè!`Òö˜ô˜ä ìW~í«ya-O Á&tí\R¥Uˆ¹u2 =«=+>@/C/#6‘Œ‡€>w¢çDO´\´\ÞÛ©«¢«¢‹ˆ›/ù9 {ˆNÆ8`Ÿ¡Å§{˜pSYÃÕ¯íÑÎ&|u[áÝ�Àã{b9b9‹B±£_ŒõýŠô¨ô¨>ŠHšHšªd¦[e¸e¸y�uU3U3¡g·³ß)¼pØÄ‰Í‰ yOU•ý´5"|ÐÃùä„S¿òn{ªü’ý‹E7%T-è;¦ž´ªøÜ>ÑßéRÞoNóÉeDWšo‚ÖÅϧ¸6œ-»Ð\ƒ÷�=•0Ò{¾œ�ú÷gh°†‘”%6©¡™'î¶§Bþ,Ç�¶`кC¼ÛQmxÔÔ¨F (�üj&£WÅó(Ëûbó™Q¤Î^+~97P„I’¶½ßVdï2‘ÌçÚðˆlI¬?FžËɹu^»ˆEÀyer‹\!­š8÷ýŒ!¹‹ØÀ¶×~#�Ö4ÉIZâ·ó/ÄíâÎðMbº¦‹õ×ÊäH)AEq·äè=r:Òv°�íßÐŽVŸ‘Δz„qǰâÕTMóXâ}µOãK\¤ZVïŸ ©ë`§pÒ¶§ý¯[˜¨o­�Ò#Q±5Ðô–»�òܪ4šùÅ&o¿·=KlËûÄÊÝæVjŸŸ93¾£¯z²›­ÛåDàw¬GP N­J­Š¡ºv!o"¬ÓœRPÿ[wF\’ — ‡¬´�ݧ¨FPÕŸ¿ǽ߀3W‘¬F¨ƒ%Á’ζhXÈÐlð!P×�@HÐ^y‡eÄ€R–œG {Höp•à›â›B⛊P÷)šebcb£L"ªÿ±"å"eYÿý?çÙÐRÖh> ·ßBð‚þ,\H—‹§^YŪ×W¡reV-À§³Ö³Ö OE®­®ý {ˆ=$#²Ê½Êý¹ ²Õ E|E|gAΣz±z±~AÛwÛ‰ y‚I™I±žæ¾Ì­R"ó®´`NÔ”¯MPÇvËýÑzR2>o ü}¼/ë8¾W†¥’󿔌úäÙž«á© ‹üÞQ�Ý·ÈήquZËã[iG"ŸÝ#'ù> ä¹”õôZ[žSX�Ó¬öÒãaËUÙBN£Aég’²á=ÈïëDžÑqÃtDEçê"Ç©Ö×c •v›Ñ!ÿûöI¬ýû£ +Î9žÿ°êþQ 1H'’o‘äÂ+Î"1Ô+”çû¿‡I=úFøn±Ó«öÚOä¯îöÿXøÍƒíNÕC AÈFs¶ VG�½~—+k•o•Ïç©•ë¥%……'ß*Ç+Ç{«3ƒ=ƒM<¨õ`î8óêV7É$JúÙùpü7 (ü;3 ÊeíÓï»§±2ŸÏ§!ô¨T˜Ãå¶êŽn®¨d e aXKXKz"ú!·ËÍÉÍ¡z¡zqôMdý˜Í˜Í˜Ú�­Ÿ³(/ZÜo(¦‡C£q¤ ƒsH»jYvø뽯–/‹$1CÆ…›á›á:u�!KË´¿‚ŸÿˆL¦�ò™fc { {ê&óš°³°3Övš¾;ÕX¹ª×«×#Öë—ïÑLÜ4 ~®ðWî={r�¦êÝf¾Èk›¾Œf -Ÿ7‰)Û¯iQÞ¢÷ ¬Ël`û7´M�i�øàùãz3Ñ•ijÜVrÄ�K¥ †“*”�„$ƒcLÉ„2‹K{À¶÷Û-�AJ*Fmö‰G†ÜŒ�Ò±‚ïËpJž1†P „…´rÇõ$•X•ƒíïi R ÝÐÉ'Þ˜ôÈÓÌañ¬¬éöÅ5ºRÆ¡o ÷yS_qÈ&4Ø~Ô>âìëµp›5£j¶ V±Án»z!Þn/½ßð¿ÒTæÖ5ę́< o^çh/ÊôÓ2iEÞ%Ï?“¸Þ9õ˜´b²¹ù5?×n{ ä=Ö0{ï!‡ ˜MÛ#$UTŠÊ]•“¼ô­VÏVO¶w÷IM€yD¢Àï(@¬[ê™J3 #A[ Î" ´�OOYåü¥#GÂÂ\a1㌜Sàb°A@ h)hi« …â¸uK!P÷O¡O¡ÃT`*iÑ?v®õ\k8)ÓúÏ™ÃJ²›npj×¹"½5áäõˆM ‹ê)5Y¾*ÄÒd« ÈŒb8`8Ô ÖΟ‘Öÿ*N*NÁI|¼|¼çß"£F_=½zZ /Þ¼‹¥‹å Ùvì~;áŸ,O6N6"ÖS->|=E>mœÛ0ýXéâJå3uh=j·=òÚÞKw‰ÿ—›lÝœéðÐq†`Ê>ÜV³,nQÊó‹<Õä0þY42GeZNš#íFVƒíÏk÷-ÔjÐ7Ωè_Âí0Óšâ›{f®%ïílÖIbå3˜¨[*×ÏÐ 6°ýZû¤eþ#7Ú¿f¸2�lkKŒXÄšÎÊŒTÜ5x¹ÕA SÏnqÇÛ»ÄÎÚݼ¦k(±HÚe ”™û�æÔ}…¨£š59Å1í™Oñ$)O³ÌÀöç5m2‰âÌ@Ôª›-J Øè¡á¥Vx�Ü÷ |ÉÉTäd`•¢‚»çq}ØÀ¶×Úy†ëÓÇªÖ (æ–ÆÆj…¾÷î�p÷}×ømE,NÕ£FÏçM ð³¸Š<›¸ª¤Ÿ)Ú6%d¸HÌVÁ¸Ûlù< 22j¤�wdƒÙß•,Ú鹿F´Í~ý­ ZŸFImåÁùÈïÌ&øvÎ&¿ü†¢izš‘=?Óž@Úª‡Ð¨Tg·½$ògÙKwEþií… ]ÐëNlzG�W<}£þZ[ç7S’o³Í x¡Í™ ¨sZ飃íÏk†šø!�¬r¬—ýÌÛnv»;‰¼ndW;®Y€3Ÿð÷®³0 ;»€Í%[°í­æÄ±•ˆ{ª²™‚óæ#>£á[é±44³”#�òy8ê£ÙZ‘ýÞS%`Û[íÑ™-çÁÐç–Ä+M›š]§™y`ªP"—KµL¡ÌûîAe•Ž» €í¿Ón÷.X¬@}mQ·Ü<¹ŒæÕCâù®Ð·é‡K3{À 9R5ªâ\J·í .‚íÏke�£7Ôèn+^&h˜Žãí N6D_xâdzÏc¢` OqŸšüP¬‹/ØÀ¶×ZDp̱¼4¹sÍúi)i Ö,nŽêñÿJû‹®{L”m(Fô‰a×ÉåDô…¥�Èß(47ÔEÃ5Pèa” ýñ÷¶ßÐüüŒ_îNoÊËí�™áo'~ái¶ËÂËŽ"é"éñ£Ã™° ‘yѳèÅßÒ Ò "f448”Ðo¢Ž.Z+öÛ% Ûr¦áJð5bãlâl ÌåÔìA—ì,› Ô"Pêà^~\–^¢æ8¯8¯(`dŸqü?¶¹¼¹¼š¦š&u Xã�I§K§_¸Lóñç–9}•K¤Í÷áb0ó–�Á¡Ž“×QeœŒüЍ!¯Ú`DÖìÞì4\ŒÎ¤Úºü+zz$—»Æ»Æ‹5‘A�L>ÿñgkXjX Ün$q§]m;Y;òœÉÙ‰,QsS­EŠ´Ô8 ×Wb·9òï:4ÖP»QÓu ›óa´k?ðTNÓC‰dj:Ú�RÓ`!}Ãuý;s&��s¦$Ò/÷Öð‡…3®–ÆñhSzuî6gBþ,{éîÉ¿£�-[ò›¤žÅF>^X¤ðØÀòNÕÅÔ>µlñ^» ßw!^9ÿÇÞ}GcÝÿ·GF.²É̈2rÉLB¡„dggì‘=2"™Ù]öY¡ìì7IBýúüÜ×÷ÎUÝîsº¿¥¾ŸóøïyÎçœë�÷×ûý:çýÆ …�í×lLGԺР\æ#O×Vÿp~ðIÄÄë’.÷sÚOœl2�´Å =(3¶ÿ½vªª×�qr Tw³à˜@Ó�'g)=Eù)ç¼VC�e+‰Q¤®¯b°� l@ëðîÏn9k\Ca»®I1"8àë!Út$�ê�Œ…nªVŒ†rÑ=ÏIäUt°�í¿ÑÄèåqÞ$n´œ5G3gožË÷Ú‡v’vÒÈ‘ÅÏ¢ÌÈÅ—°ÑþK”o(ß 15É5ÉÙ“"ÿ0À¸ œ2\€a~ëÇH×jáPñ§š§šéŸÑLcøÇ=ý�Íüÿ¸w+ÏdGs�#Ùüë1ÀÝ#º6«e«e7ÒJ¸¡ÄJ®J.1˜ ’6ÎõmÞ5Þ5Yêϵÿ^ûv¢×¹ɦ ÷ÚÁ²wˆÕZ(I’ºåtÿ¥ó€ßÝb<€w ²²opi¸ÈØ?QŸ\ŸBB@ÊÒí6&@Ô{ë)�T8Ü×››"*¥ž³Ÿf€{OÉÉ G¡#B°#0qĘüUe$€!�!Ï’�›»uΩ kĊ؊ؔޔ~æñIþoîîâòÒ\û{–‹m“‚΀9ßÁ¹þ³r; x߈:LS¿µý kw†B àé¾>W®ŽH¹ûÈÿÄD÷D·.~…w…÷ÈQD²u}I}Iü3ÃþUäUäxÝŸ»ƒ½[� :)EÜ·ñ éTJãmLäû)umx—ÎîµoC¼µS¼<„ÊÏ4ãê}l-çKž×m-ã—5 aÝgÔ=äx ÌH Q¾|Û‡k÷¾­�bç·däæhØÏÊA]Œ®äÕuàCöÚ·!þ–ýt_ѯØ*Õ™šøð̶)07ŒŸ¤Dà¢Èæ"Ë–±Æ$ºÑšRŒBÊ,)ÛÏk �„=SlTÒ‰æPÛÎYãÓ œ,œí5ƒˆu!y¾ðuG£çÏ5}¶Ó®-D;80]�¦»w›ôAáœr¥¦Òr’ðžEÝ¡‚Ú÷Ûv7‘|q{Á¶ýÖ6ÕVÌaMë£RÆHAyäy&äÔì‰[ìÄcÔH\ÓôjT)ÁO+Àöû4¼ŠY–e†!ñèÈÔB¯NyÝë1ˆ“碬êP§$Dì‚e“µä]ˆ6°ýÌ6óНé„åÈè•.ÅAœð›vBrá-÷ð¦Y%È­¼µÞöºiƒ l¿B#›=KV{Áó y�“T6¬MMå­¯6½û6m2/•nE²óé Ì[|axå`Û�j!×Ò•…Š)/Ñ ¥É FŠIU¥z˜$jÁ�bÙV¡cø9²«l`7Îݨ­Aõ€QÖcë$—.zÖ�=|L3ÜßyÜWaÞ×1wN:¾Hl`ûQM©1S¤¯Ç8«¤sÓµ(B¢RÖ~"Cz’Ì`ÑlJ§CëDÛªmœ1.Ø~^Ô¯°Åçë¤Ow¨}u9ÉÐÌòˆi% R#.ÉËØ—j2¹dz£t9ëƒí÷iƒ>v<ò›´¬ÍÍZ™L2qDuï§{Ú¿§‘2É^%�ai^BÒ½nÜÞ&mñq®–šh¥Å嬰ô°¦ DÛk®†ø>à]ñôkë÷6î+Å­ó”?A®¢PÉå`à m�Ó…FÕÓÿÁÅö•¹Ú‰¯¿EAe˜­gÿh>Åæ}ë³énɽfÆÊŸ¾1�ÛMï‰,."ÅáÏ1ž„kñN2�»Å9ã?ã�K7Eñ)o5ÍúRUqUq¬ ££†ÒaGáµ6@š8ÀŸ`ôíÀæðn÷ K¸è+™W2Ítîåq×…Ãà µ>†»qYHrÇH3žiy¶`��ßå`®a®¡wó”Ü"�^’^ÒÛÒ·¥Ò\Wg¾m² i{ƒæÿ÷8x» 8mš˜vøGÙò5v4Æ xñ›[fàüå…K{Ša€xèÕ ªÃKBr-{ÿ >V>ÖôâȤ±–‘Qš¬GUÕôáÏ!Íí6…Ð ,]*]‚¯§â�õôñ¨Áà¤ÃA ?«(±‚É©½æ´ˆkûkw¨‚í÷i¹¤±Æôëó!âY/„y'6^ñÒM ô¼×ÇŒîšWWR#q.Q(9åT¶_³ Äy«lWÛP–91G*Ô¢{Þé·{Y!ÉNWwJ~‘zaÈ|Éz2õ)Ø~ŸÖ×fã‰íBëÎAc'À‘î&…YŸÑ/ŽîEò¸²$n,A¤ÐªK`¾Îl`Ûoí¶lÙù üâf'šÓp3Œb•l'Þ™u"múö*â;ó­¡.R〠lßjŠ“Ýù¨ªÛnå:zAwÜÙ®Œ·'?fÔ n¼ÅRÎÆ«Z‡±¸íض_³Qcn¥7¬x•mŽ‘ª#ñnò¡üpÇ›jlÀ1þÜy÷¨ÚgïS*Á¶ïm�—F$Ø4Ì¢…믢˜#†…cg°•Vî'Î…�ˆÒ±˜†<à¶�I|]{lû«åpÄéc«Ü5j<ÅuœXÂ|:F™/–5GÜ>¯'ÞçêO™ƒâ”¶Ne¶ýÕŒ (ËøVÐ%µŒKV, 1Uï‡'w$\»°½5ÎNOŽZ‹}ãêT?Ø~L«"$�\��LeHhAêbµM0ºŸÞØÙOíî]¼ž¤ï VØ‚£Äõsã× ±Ìˆ³ÓJL,ê³NGq ª«Yl^ÙkÖ7»�Ôz†ÍÉZ—¢ÈÔò@ë��Ürø¹dÜQTñ¢(ïy†­2îN èE©Þ°ðFþrÖýú¬�ZÙLÛG<¹Md&”B„¾×¬AåÓ7Ïí–Âz ‘„ñçºPá¼í?dÃ…4‰ˆ,[¹P²S´«¢öµy|)r!r!¼|¦s¦óX@&ï!à‚. [6»’@Ì0i´CÚõY%\ý!àÌþÃÿÇçP(\³¹þ&œÀÒ;Üç³N§rÍß¼ûþíÍ€@�@�ƇsP¸Ï�¥�¥è¹è¹béoÃaÅa½Žcð÷2Yª™Ïjüîîð�%OU÷Ú1!o€sm¥â<·ó_È-‹"Ðyn‹&å&åטíôQo´îì…'¼ï¤RýÂÎÏš�mµÁ…w—UmJ)çÓ³›�HȽBg.\;ÐI«R~ú.Ef%ë‚ 2ØÀö½-|ð¦õ£LUîC¢©WŠŒºB}p‰GÈ„iŽ?zN�Ë5u�]“Ð*Øö[k!¸aÄl]ûéiRgÉj—>îƒdûé] ¯5eé�wëæëé'ýzŽH¿È âå³E<¢¿è¸t8ãTJ™I+Œ‚@y¯s¡Íü¤žš~këÅ…NQØzE+K-�9ïÑäõ[—7.BŸ¾Øåé°y(Õ°ë¸HL4ÖWÎ…N~ý\È2hûþ†ý¿½Kµ“Õ^çBªŸ¾ÁÌßm“›‘²üçœSá*œ5áÊFjj�ˆê½ÃÑBVªY˾$ˆ'ˆç�îÌïÌ_óÿŒHš;—Ä:ç*µ”- žÖì@}7“WWggÙ¤Ìã�gÚŠ® '-VÙ·cëØ}õ3®6§ÐRzÐÁOâ*�{ðÔ¹½Î…×ö¿}ç²;[¯ÀF¶¦ïÉqÇdê„G™Ê Pn 1ó¢ö¢ƒvåæWš7Ø€6Ïÿ²q •DÒ¦ÿìMÝGº²Y̪ј%O2“9çdªI ®—B Èb€í¯eL ûäÄ– _%Ö'‹ZrŠöA^ÅoºܪpçuWõ3u‘§Úî!'ØòÁöóšM­U¬cÇ2‹ºÓ¼tv«Væó"'¨‰ð"·ó.oXŸY”ËäY¶ýÕV;îˆ8§ç<Â�Ë·‘$âH±xÝ529N®J£yýÈ9æ0L°íÿ†yÔˆÝì¼÷B|IÍÅË’½#c´üßs/<ŒHh†H†ŽTgIô�ÀäË£E†î“ˆ{ªªô¶ö ÀA=îPö¦3vý÷ÚSeâ0À„·NË~j3ÝÔ.ëú@0¨¿Ë¡´_ŸbÛaDU‚g™¥ÊsáÝ‹tÉ×­5ØQ_ÙSñ#¼sðçlÔ³?E�%€°$¶ùà�<Š~ì^ÿ�Ë�¸Ól`Z�ßÍNdsNyy² R;�šÉ�u‘,ÒÒ¾ðl&$1íHX�Á@>á}°íÿ¶&Y@O¸˜aÜt¾ý$ö‘ q&;”.I(�ÿ�z;Œ†|ÍÃàºrGØÀö½Í`T .ÉRz†1�('’±ÂêIÍP[y�tSÂë‰Ç€]mŽ!aÖ!°�íWhʧ MÚoŽŸp$Е·;F®#T»Œ‰Ï6ù‘ø|r5$óíœ&±ƒØÀ¶ß^3…â ¡8%diqJÄ*Ê€Ú=ž>2@Ó~mr¤¿ Ö#:ú�˜Š¨l`ûWµºDªXzžfÙËéšÖ±Ø"ù ·ãDŠø&oÛø.©`Ýe§ìLþ·[€°{­ •ÌGZ˜ ²·^Òu ™/æ¥ÞMzX3œLlI¢’]Ö\{ÍKÕ>}S‹½›Æ‰K¥ˆ‚í>×|.åøªÇ¢ÙªÙêÒÿ±wßáTþÿÇ­do™e$#{戬ÈLÊʱ;ö,² ¥c$dWö‡ÈÌJVÙBÙëP‘BãQ„òëþ�Î/NC×õý}û¨n�ÿž—ûºŽëzûãýºïó¾w/L¦¾o6"þZ_X_Øc#ûûï€ DýZAÀ™€‚X `[°W ãBŸ9šzŤ㤣{QÞagÒr´ÑåShða_^>VWŽ*ÑÛ€`ª`*K@§^§}v‘ ‡ŒƒŠA±ßíÊþ¾Kk—Örû™®ÿØÒÃQgßX€Àn”â!øx# ”¦wDÑk\*û‹RÞµsv@ÏÜr ‹…˜*¾.4ÿ“:“:î|½½m5˜ÂÊRIRIdÉŸg;s8&d±žZÌFˆÃ€Å#*ž*žèõ„ü<·JÏ�jÇ¿{{iœ!ºWí»ëIÓÜÖ ø}’Ïë¸Ýz¸2�V|J>â£oç�c¾ê*˜ï]‘ñ©êM¥1[èvP#µÓǼ׊ùL>æy@˜s)‡É¥Ž:f·‹un¯ô«¨ûÍÙ,ªð ™+õÉ«„õc¾¯sF'Xi #ƒ¬ B¿tï}4¹æf3:Ì¿O¾Ò!°)ç‘Ò•]^ô^•¸d.6Geÿœïæ ìo¼‹TèÛÏ=è[3>hÙÏ«b¦KVðh;ŸâfÿÇÐO×üÓ¶QVζyLÜ×cG#mÈ@+åm‹h‹ ,:íhwZ4�@ïkÑÌÑÌ¡lJ>J>š: ÙW9©mO¶Äö~€•!B噸zÚr9òòÐ5õ†·AŠ hRã¹fhÍCá(F;Ïç—ØitˆtˆjÊ”T”Tqˆr´yi&M&M''5Æãuß¹ ¹iÂ<~üÇZ�l8B’€A*” ErMcQÎ[=÷Ç{õÁÎýÅŽÅ›ayP€>c Q QœùYËnþšŸÁÏ�´ëöèö ÐÄôÑ F£§NháHLJÄOK¾ˆ¬N×´S¥dó¿¥nòT A×H&)|ù�dfÉ­~°mý6ÏÄÎhœœ¶­6K¡ÑD�®½o¡œðKëE²XCÆõ'–ÚÝÛ¯i³Š³³½"O[Îv-³Ò¦[Þ«ŒçæþçdÉÝãŠæ¡¯MðÎ2œ—:•En6°}¯­â X{½‚Ñ·Y3h9tÄØÇ»l¥÷þ)M ù^‡Fïc’’ÀÛy3óÌ]‹˜{ ¤é>¹„î‰&ꊧmm/Å6Ûaî±íà8tùƒ?U���硸½ÕÝAÿ¼ydîè·’Œ�Ekò�=�È·÷@pzzHSÑD?KÒÀãcË^›í�Œ€ùGÓFM£r˜˜'×{ºˆ&¾ˆ6å �Èœw…•±"|ÇI|¾†WŠW:½`àjàŠ=^À Ø÷¿?»Ó¦=§sÊSôþ(Æ;® ÐvÖ”%•%=“cØûÞIí(|ô-Ú|ÂãD”YZR喙ªr'‚A„ØÐÚК•ÄGkq�Ö“Ö{îûÜ÷¾ní÷©æ¨æŒfÔ ÿØ%–9�-‹;Êy=K±tO¾)W6&AЏи/¨X%mÊ8Ïû®&_M¾<׃HðºÅϨçªç²Õ#&^܃ ÂSSˆ/á9!T#T3´Þ�Á�°¥Ì»EYEYÑë©–µžÂïßC®œX­öð¤÷›àx±Ùsmo¥³Äÿä¦R‡<ñhDš%˜n�è캠 �íœÐcÚJñW84®‡™øùw»Œ6ÜÛß×ʬ�6ßÅ]±Ò2ò—$ê‚éNˆ!ûLÃtÕκú©ìü³^=~Kuˆ¥l`ûZçS›ÒF./2¦Ó/2çÌO9Õ–šrh5;ô¸¢Èxj­‹¡òhV»7!Øþìv!ú•KJìq¹9êÓ š™7•ËÔ#.˜Þ]RÕÓñ1A•|ÿ: l_Ó§‘+É„cפ´k6à††ÝÚùN¨ñq™ùûM7c»<… Áþ¦ú°�m«5$m†çý×Çôì±,óm–ÇÆj%¿õî�0o¼Xq')kåzìHé<Ñ+;ÎYÇ`Î&b4�2e:&$màs”<‚ðÍf˜÷ƒ·³=5=F¿ÂèIéö0Ðe[¤#±ÑZ“ß=yýÃÃÓáߘMˆ}{6!&çÇGÑ�Œ·ò„Ó’�Ýl6aüéú7Õ¬n7Æ$¤°Þ1 ´œ&ïhâ¾ssI§Þβ´Fr™¨Â¾a8j8J ¿�§�g À¤>ÐÀ ¨pyffkbBIÞ£tàq¢U?�”’”*Ãoe5åE{¡šÍ�&s‡ŽÒæ,=o% ;,;:02bÿ˜æˆ¶HVR[R[HRHÂNGþêû——»YÜ5L…ºGDÀ0w…øÉœók”�òíîÞçÙí%¿8 ÞA‹ Ì5M0M=aTB^þ3^[¿¶†b#ÓÉK· nœi%ãŠäŠÔž_/Ìj#Ù+?¢WͯšÿomþNNëä$ë޼̓dJvý䦷 6›M`®í­töèßÖžY0½ì&Øåêó\hp¨»fûa_²zR‘i�uT€ÜÎl_3Ñ! i´Ëvx{ïHéõv“zyo¯¶´N>áô•¢"wãÞ½ŽþN`ÛZÍ�wí*‘ruÛqü$+)«ÉŒÒX:,™®V‘Kxt4KN7|èìD)ضVk„®¹‡>´¡|×úA§G�S¨òˆ…‡-{(g׸1^±ˆŠæî'^Øþœ–30kýN$À {ÍËWÀtúhH¼XÔ®£0%NŸJ‘lÅ»Gd4s\Œ�Áö÷µò¦Èmæ”`�áódÍ“q¢ÁI&¸³-ç„ð|ÆóçI4ð´ÕF¢=pÀ¶­Ö._ÞŸ›Î¥šo©S?©¨´ƒûº ï¿u.ýŸÒN3÷ŽÉðŒ\–i1é™§:wv~sÎäîFsUçƒv»"õ-ó‹Dr›Í™0¿ÇÐUuï.ƒsÄRl[§~•ïátC¬pöVá.¬»ÍÖJ×<ßcÎ$±qΔHýù¼:ò»âÃXoÅSéÓ�éÞl.€ùY¶ÒÙ“¿¢�½µ·H3#À•€Ø†ÜTo2¶)¬qNd$ÔÎ’pxr&›àr Ø~Ïv‘s4©›ˆ ¡#É�e]Un�/†©ø¦5 �ß×bëJ|™\ó1Øþ¾v f „ã)â²ÅJ¿T§‘y»2S <„éÅ…·‘ØZÕ´8ªÞ‹Ãø<6`Ð:àCy­Ê¶w]�cïGŸ“oÙƼ¤éd‘iš`¬_–øûí6°�í¿ÑÙµ‰ß¤,·*[Ó0¾nØÎz~Ö0kϲ*¯0Ä·À– 5CZMJ9 ¶?»=B�dS¼$·Ž'Ô'¥^Ëy–Ñ瘼’ÅzMrw÷Õ#ÔVÔb´Å`ÛïÚ^?¹æsÀÓåÙI5q9º ŠÚ;�F¬æ‡rD©±š=‹«"±/óGü˜¹ñÀ¶ÿFcJñ/o(H´=©ç~�wHÄs�.ñöÿ÷Yþ`ûsšä¬ýUõ-m" Áž6ËÆHÏS5Řπ�ž·¿¢áÔÀa,Ë=~–˰r³gÀL>]3¸¸ÑôÜÅELN××[z‰Ö4.T�ÖU- , Ì¢v8“Ìû]òþº¯)Ï+Ïß–Ë…æB•f¦#T¢M@Ðᮡ#¾¬ñ«ÇQ&Y\Ð8ޱ²ú—&ô9-ç£R …¼VOGÙN³ËÉÊÄVà0í0�T(y)y]zˆúN€‘á¥öKm[¨-T/ÈXùûˆp‰p«NQ3ýXSsûùüÊH�ƒ—>…ÕjW mFï)Å/ôNr0gÝ oßµ}—Þ�2>ߥ€?%" bm‘ÆÃîÅ4 ±‚X…®r™.˜.\\/àÊFMoÖ‚––˜sgsæfûcTv–woS^é’ÖYÚlîŒyžÍn5g’AÎYó'êcJOZã÷³|L«¥7§‡Œ4ëšÊÅtRcî,‰qFôçóBl‰usƒ«è"½B¼2g‰7›;c~–ÿäM—(W~?LCF˜€=jÆ}%G Ðn‚Dà]ØÀö«šp‰„¼I‘tî‘7 ì”å)Wda°ñ3Ší�o2\pðƒJú9ê r<Á¶ßµ�R 䣘cé~Ë¥®—H”´´ÿï‹Dœh6«b²=(s7aˆZ$óÀ$æ¾ÍÖ?!°ŠÜ¯DK•×nù£äfû6ÓO×(”mt©Oú¦‹RëÅ´£Ùœyç†6´ß1Ê1ŠTàLÂÉÏ}zá× Ðbè¹±scĸvXqÀ» 0n±( �°–Fë‹¥A»fçWáW‘mÏ_ò¾€«í ›XZG#Ž¢X%(µ¬!éËËe ˆT‰TíÊÖÌCKÉð¨ò¨ªªª¾4”÷}F3F3³XåS?Vo תLj¡´Ù¯¤ZìFiP戾O'ºü6^ã+€ˆÅ5ŠkåÑ<鉅Ÿ‘Á“Á“6Û¹¯s_“&Wî]»4ˆÚ5&ð>ýär¯÷Òy#.@!™™æ¾ "m^­Fº<~3D¯{~{j³}æ9¨�+#™Cì³aÿšú ôvujNœ3¦ŒêQ€ž;"Vä°£çëwûoÜ·ÝgD}–ì‚|ãÓSGÄ}mŒ ë:È(7Û·a~–­t^ÑïØª¡œ-’¤’ö3n_ñ°í²Êˆ!ÁÑ*ÀÖªàIHñgu Ñ�úQ^¶¯!ëe3Né" ®7S¿À½è$»Ô¾Ò©JÙ²n¬ÀGÁxì�û>°ýšæŽŒ÷¢ðà„M°¥…Ó唾�Å®6Ñ›K•!uª£)ª}ÿÑí,VR0ÉØÀ¶ÕÚŠaã¼cIË⨪m Ö¥B†ªB;†�|)øhÇvb1 O°w2gDtU�íÏi¤USÜs»GÆ?ÂÞ)ýúÀ…´^«kÚÂL5P&ŠámM¾Xq§rg।`Û¿Ùž&¼f!mun§5êÖ&Ž>ë&}$º5�1Á£D?í"7]°1Ø~‡F?¥L_«HNÀÐ륚WrßÐ`!ØŒ=à#kº³EUº�œ×É(ÒJ°�íWµH÷b–K—õgؤ3÷ä=‰Œ�ÁJÈ<Î\œ*ï$’á|¿ÊÜz;¶{l`šqr܇aèÅQþÅG“Ö)Èïâ7‰õy|ìå9Ï‚j‰eæ`Û¯jzÍ7d{msË;W7Ô, w*.†ãtûX‚íÏiÈ 71í•W­oG^L¹Ø=åŒëÙJç´ÿ'�ŽS Fû0’ûÞ –…·íƒûjN]˜÷i�çJ�¡ëåÿØ]»ZÖ€Üì>­Ù§kÚÖÅÖÅÉkÉkSÎ�tßÇ&Â&½Y’ôcZ/�%ÿQû£¼Ìiš F¹¿=ý˜téŸZž/B÷¹ú"DRúcÏÆžùÌæõx,²ý Š�;[ž8@ Î~˜ÎÍÍ_N‚,,,Ÿ\oïþ�ÿ‡½û§ºÿ8ne%{�Œº‘‘yl¡ÈÊJVŠŒ�'™eed¯ ᡌÌdË&ÉÞ‰Ì�;DøÝŸßéÜå¤t]÷÷ºoÝ÷Çã¿çÕq�?Þ]×y¿ÞÇç}ÐÅ.ä'ä‡|N K0�0`†q—÷]õ´¥ÄØëœù¾Éxé4ûÕëµÉš÷VùK›QŸQk?â:ÂV«j‰ªašåaß圖oç9m(ü½l³™ô�;\ô³©€�©›ŸØëœù½ìö U°ý{Ú#ŠØ+L«3¡Ò™Câ¯×ß 0¾éëüx+ºcFWGì<¹G—̹7NÏÀök6‘{>Ú[åPš'–HõÊ^1½WNM=U%ÊJÓuJ‚�°Z°‡½Û¿§õ´@½pnPÇzpÑÛ‰p¥ù„ËcÕ¤÷Jð&¯++º7z_â‰M‡ÈL• ØÀ¶ßZ°JIŒZPÎ�´%_ý|*^º™Hm¬&”øõše;ÊÆín |¡ôyºƒ`Û÷šÆøËt�-wÂR£ ö c­IuÌ¢úR!Ïo±–² èTaÎo9v€í×ltX›i +„Þ%ë‡ï*U‘ûÔû2Š÷Šñ¡ísŒ“Uôˆª|õ1¥ l`û«�hÊŒ‡žEêÉê»(–;ƒâ±“8šËÉ Óá|QÖDy¯GK$,Vâ‚mµl®{—q´ãÍžŸà9N&c5qWK(:?sš¬uÆH<¢ÇÍŸ&Í)u•Ölû«™™Ð”-�Ó¿RôAý*1–vrDRÛ}{瀭Í1&*ôÒXœ›ÆozÁö÷´gÄäD΋xÑØ!´¦ÄÖ7l¶GöÓ�(û©ÅÇêüDñ1w™=$Júò£¸¢XäÙ°E6Ýi'6¼ÜòrVè»ßöš ß{»•Ô¤œ�Ã}¬*Eƒ¹ñ¡þ{¨êR„lÞº4ŸÚGþA› ‡Ó׃¸Ý¨åëÖ>¨ßΆ!»ß-u“»Z>'�«[uòÄ@HÉ}œ½Î= €ß[½“³÷9dÛ‰_»žŽ�k?x !6‚™ùƒÂ£ô†uj¾Óa1ߊ_Ž_ap…ºB÷<]ª¥Gƒ�Ì"¥°ïQ¯&ÁaªŒY \m¿!rCä“uö$®sÍ*ÂÌœaê éc¸u*y Êß:ɂɂdÑà¯È.PF½9&1&1_7_7ÅY4ó}Vï¬ÞU%7éüØ[ÅÔ±Þ~ÀáZ¸…m­HA#8ëÞcïk0¼1E¾Èéi‘hÂØxØx’šEr ¤†L°L°®Ã(Ã(ô2O Ó&Ó¦ó¯ Âb›b›ZÊ_Ãþ¸SG;ÀÑIŒWŒ±žÄ>ß-uÿZÚë­¬GÝ‚Âï_Àx+·×YòÚþ§žÕmqÐ[4ï%%Í5­± ‡MÉ—¡Éúìeê6·8ü=;ÑÏñ¶JØ]Ä×±ØþjÃTe-yahat!›µ!c¯Ê�s¶þ-Õí‘�lúéËý-Rë2úz`Û?Ù4ÃœŠ©)¥ŸÑ% µ�MöL_¬"̦éJçyyÓ`ÖU؃ ¹¡íY¶ýÕ¶Ÿ>ˆ€QMÑw·ÐØ®ˆ)–s]>§Á”qh¤êô™f��òs0¿pÅ·–`Û_­¿ÍA}í\ ´˜f&-+°…œÊ;lòŒ=n;ƒv©,díšÒræQT°�í¯¶ˆ~WÛê ^R)˜É…‚#fa¾xdÔâôÇ«»SóY¸Å®ŒÊè� lû­5Þ4c±-‰�¥�¤p‘+¿ÑÃK@¹ŸîÚ­i)ô­)WÍÔ0�ûuþ¦0”N+ t y.Ĥì¸p8óDJ‰yS>5¡Ö^s¡�\ /=¿•ÕÂ'NQ8FË �uÜès÷ÚˆŽ©])@�˜PîðrØ …™v—¸�½Ë\Hp÷¹ÐòÆUÇÔÆµZµÇÍ)××{Í… �»¬Xvº¾Â-�¬Ìîk„äØÙ.%ô(Ì(Ìõšœ<è˜yš hß’,“,ÓýÅÅóz8àÁ*ÖýÿW °Îµ8Ù}`€§¼‡›AH‹Ì÷Ï÷—%÷$¯Sû󇓊œp³9+·ÈXÅ:ŽuS8à,à,8›ù!ˆÁû�÷›iÑiQŠÖŠïk^o^¿ÓO­ñc …Åj€ 2¸„ i}fE¸‡‚ïçéŽrD½ ûBùúÐ)%@A…`Œ`Œø¡1)ôøVÒŸ�â‹â;ãXXð¨Yª¹{Ÿ{_{Š)·Ÿ³Ÿ3$ók‚¬;åiˆ<ª=ªëÉñó3^ϧâTk>l&wyDpBv¯¹òÚþ_?sÙƒ½[d=Kï¶à˜cÝý›lÌ%¹h7QXÐû{I!ml¼Âš¯Å#,À6 ÍO=ïk"—ƒöžv5¬6TÉdщÆ*jÎH äžV*§Èu.† ˆ¨`‚í¿×Ò_úfÇ0&»Lµà틺<‚_6¤I=f±£ü•®Ä‹K¡|ì9`ûç´Ò&Öñ1?׫®ÓŒBV“~(V®ɡȭÇêçÖmOΫfð¯�mµåçí÷c$\Ò²«B‚ØFs r$\)Ö‹µ3óãT:ôš‘’~“e ÇÛþoXlf–Š>sqEÊç亭‡G„ÿÊsáóIÄ&I”) ¤Þ‹ŒO±˜zŒ#艹¥µ´öñ†qÔŸ´ëUÞkO•õäà‘|ñMIUÓÃ/ õ­*nEƒz;Š{/So9 ëÈð/1¢½„ðŸYJ“[lªÀ‰ÚeO%¼ûžŠùQ� çøÇ“0Ñ�ôâ�W{í©ŒþxÍÐÀNÂgÌ*�±º~íFÂÓB×+(s~/Ý8ÝfUbÇa9Ç¿¥Ð­Ð}�ç’÷%oÏ<€,æio€…(€ñÚÉ.)~cYz<\“ 9#‚ÞõŮŮì;ºt'#\ ÖÏ"Ty>ÂÝëË8,,ݘÃÃãY œ8›¦¼½„àkííaI`I@yó¡í÷Y¥Z¥ÊLLÿºkx¹d1àn9\�þjÁ!t8mÊËÏí·ž Å|aÍã×€poÌ3Ï3WXˆW~eXü3jÎÔœ¡0[D[DÃ5B¦gçç]ÌÝè+T$Tôó×êPvjÌWôÂõÂýóÞŒÏgí^½)ê¬ÄE± jh—c÷ÚS!¯í¿ãÉ`Ð:ý\ÛQ­¸ÕÔ(‡/RØyVŒ‡®JdR÷Dd1£œº™_ËhÒ—ƒIœ ¶ýßVär™ˆç3‰Žn¸7ÇV‹’ep@ÅR…ßë¶æÓS}Àð4qöCmkØþj3¹—èOô$ìäÑ4’ìÈ£�DǼÈ!éç—‡P\e¼›=ûì*³M‰3IÁ¶_¡iI›·ºŽ ö¹õÊKÛqRˆU.aás„�o“)&•eü>­Gæà6°í·v¨�Zc’Xš†haþ�„M” �GSd€Öõ•ñáBü’üN©‘<2Z’v°�íWh<åº2°Sµë•LMT4�ƨ ß 6p?N¢�oþ{‹ÐYmìxšö¤ÿu ÷¨4§UÚf Ì×fDõ1Jt¾¨„ØÛÏ}ž[Åg†7c¾®(^{MÑ©Àó½½½’Ákàßã}ž1Ç­Ê¥È o¥B¶n´g¨ßP”C¾wEÜåig"饵ã– ‡Ìµ‚‘ÏZ‘¿“�ü< ä9‚åäZ[-ž]@•ݬÖS’.ƒ!³U¹GÜúý2¯¤ä»�ïëDž‹u[>ÅðO<¬|ÇÑàÅšã^s1ã?^Só~§\f}dü¶_c�@( 4žEØJM|˜ø�“#Šâà-ò"ú ÕoÙçÙçõ´Œð�ð§+èí®6âF'îÇ È4Uô­à*ø .ŠQˆQl­|ŠO˜„Ú# øI"l¬øÂÉqmi·1lŲ'³'¥B؊؊°<ËD„Ò®ùˆùˆ>ö>vX¸6ç÷‘ª’ª¦~’[ÿ±uE†`š;œ¡åà-U\ölÏ:©cÛió/(W6zP7ÕiÐ<8¡}¶@B£AægXØZØžð#ò#Ò²@ÅÈâÌâÆx ¦‘¤‘T`ýµÉº�:¯ êõêõ�g¾\¥ÚââsUÁc”k #”öšù"ÿÁ�*µôªóB:3gï£+±¾êüI ÖW;˜‰ØbŠ#ç„!ê.wÛrïœù²~þÞÃk�£ÛƒŠ×3òlÉ\»¨öšÑ!¿—ÃEÔ}mY|qLiž�K ¦ÝïJ_� l¿BÛ˜ˆ¾=/v~:´,I�Ë\žˆÑ½PQo\¥�¢_Hêv˜©,¿° lû¿-Ó0Q_Œp 2íd­ƒ�L„àïE8…ô¯ðÉQüZ¹¢ºâž˜ƒíïi‹§;yÇë]_¬3�'KºÜPÍÊšl›_¡sÊÀÿ�†+Õ-h�!ØÀö½ö £ÛÔiÖ˜²É”JÅ »íŽE´Í~ºßðßÒTæ>ž£5¦tÑK¸ËÞž»yBðù3ëýùW’w;&êHJÆ›šf Ç÷úÌŠ¼Çbë> õ Û´æ$~Æmî(ÅVÖá«�ü~ÈÀÊm#…Lo—Ϭ¼»O×gU&wV2#ûíêó;nÍ{íÇ.ÿñjû�,èÊ�9=ýZ©$~ߌ!Bº|†C†ÃlÈd_È’°~�±±Ø·ÇÇG^¯½^kÎÈ:ˆChFÚ˜›/ݪ’pùtÎ\œBÓnÓnÍ T·ýðÌ!¼ÌB{‚€²”2§D‘Ö‡�Ë(Sþ¦ö)Àï’ß%çǽœPW¨«m•mÕfoZé÷µÜl¹é=Å”õcâîºï4}ZpïéF >MÂuæ·äø{�¹ñ|‘’'FC pPßôˆé‘§�œ&,›Ã?��öö)ÂpÂð1Vd·INÑž¢=,m`/j/ ÿž=ÂåN žÙ‚�Äzª<_OÁ- sFŸÊ)Ý&Ž~ Ùk„¼¶÷Ó³ÄÿÍM®jÎhh@Œþ6En«q*—8Å•%îò‹d¥�Y4ÒkÊ4ÔœGlFjÊÁößk¦gŸW o˜¨\pÂ}a¬1Á?÷J?PCÁÕÞ¸ƒØÜm˜!V§P¾—¾l`ûZû¸™ß¡Z'|šëÓÇaKPëÊ'ú,'/É—ä^|»ý‚ªôlZ³3ØþÝÍ;bÖ&!RGOr‰ä¥¾·,£†út�bˆ·~Åšü™Q­é­è>âø–Tc°ý÷š©d>ÌõYB³ÒsltÿÀBºîÚá‚·L9vͳN–puÕU¿Øö[›#Kqlñ»6LÙj�r9Ûl}t´Rh·»?�1"!Ö"¦§«QCŲøbÈ=Mï Ï&î(]€‰·M™ù,+áòÙk6�|ŒÅ8<¢¯ŽÇ¹ÁìåHj7èes Ôêà…í·)-åþùà]fü»Ï&šiÃN„�ˆ3H]jþ�Øl¯Ù„ɯIwßé¤Û ²âÓ_»¨‰SšD(!yOòžhÂ({ª»e“ìZEá·`ò0yh³W³…)¿„iàØLM¯¹§`ˆüä ×Z¯O… %©È£ÈsÞÂÞóvf‚­ãÌs„ÖæÐ6¸8Yßïp||-Qàé„uqIì)X™ÐLèc¯Ç^-h#áß—&˜&(L ýcÄw;�Vh«¼p!U ì pƒ/t¦N�2xlnõzòð€p @"& N†IeO\PúAÊAÊùÁü¸' [fªªt‰Aó§Y¡Y½øµY›�=²låå®íÏCÑ89ÉÀ–³Å—1ï"Ð/ÔÞk6�¼¶÷Ó³Gÿkí�!­ïLöák.SÜ=#}^ÛW6ãï?<6×—}mÎåìqó è`ûï5½s‡üjÍÓ-?xû´%t:Û‰Ì4°©‰�ËÆ™�YÀ͵¦fc°r·ÛþjvìÛ±¸§ËšÈ!˜ s ‡ôdF“ÐŒã9}J2qÎŽ¤Ij÷ºN<ÛþjµºÛöýþƒfD+�›ç^j2s—ªòþ{÷Nuÿ?püÙ²7át‡P2sdf&Ù#{“YÙ•’îÌcÏ̬�$#d–­Œc"ETVøõù¹ÏuçÔ�ûºú~K}?ÿ=¯ës]Ÿ?>ÿ¼ßïãõv¹Z ½ÉÒ1~³ˆGîÌÁ17X?Ø~Ÿv§gÁâ�·Ú–›çQƒ×g¢øÂ´éI³x<äÉ’|¤,vô̇sö`ûßk¥õ!ë*ôIþ ˆëû¦à¼=þ ú �׎azŒç-(`ªÈ„»x£ƒ l{­û‡žÈIe=•g¦V;%)MÉ–ÁÅñ³æÒÿ.í"}÷¨Èá�P‘Fý®%Òë± KQ÷™.] �UÛPy*Ivß(Ï[|·}&Ôÿcè(ozDãFCß3ãÛ×®YªùÚÌÝyÔ`!çºú•}&�¯ï3‰&Ö:ßž}e~Æ,ÿ£uënûLŸžioÜiAµ8 •®ÿçžÃ‘t ´HM•ítítSžOgÕ褰â`îA_Ò_Ò_Ò¥—W%S¬ÇaÜ{1À+ '´l¿f d9¤›Ð‰Çܯ&H“i¨ûñ4âiÄx‘©œgJý±‹ãÇm"�ñC‰Î ƒí¯‰Vöü1Ñj¼^xD(ŒEÏè© ��ŒnæÆû4¥ ôSîˬÖ`ÐÚ|ûr›e¬Ñ:/Ÿ‹¤>ÑïM¢ñPýÊ;ãtƒèsš%)>hï÷� lÿ�& UÁ_LZk–± §}ó›éú‚N&ÓöQâdç;æh¥y BÒ�°ýÞm¨Ÿ ‹x±—È" W“�lë΋´gç×3™â�³•³Å*“µ™“ñQ(� l¿j{3ç!êêðÂQž_œ*�¸º ViìÇKŽ<Óµü‘'r6oà =&ØÀößhtIWKçÇ[9j\ŠãèãqÝ¢ŠðŸ¾l¿O\°Y!­¸¯‚gÌÕõĬ.ÄÕ©²ußÙˆ¾ÁF•ÔÚìÑ’˜aµ•Ýö�QçÙ”·'èeY0Ë?=*=èh�õœq3¥šÚˆ6Рn ÑNö•}gÁ�û΃Í ±ÂWÏñ/§ºÕß}Œ£Mä2þnû„¨ïò=ó´Á¶÷ÛŠ®Ð…?2 û­3»˜á"·âçDéš·\1o™:“éAGóN¨„…ÕófØ~f;«ãbX>×Uü¢<8‘*P*³Š ' Â�F1d �¹s´Àz’àè‡B°�íG5îb ýBáåÅÇÐ4’ÒA’u1SÓq/ɧ>‹ièX~ÅÏY¼kq l¿j!9š«Jü–v ó=£.Y­@¼ ™Í�˜ïßÛoÒ`8ZÎ|ÌJJäQtOºèêo*Òï:ã.¾-ÅLA\^Ø07Úí7–ŸžQ ߉oØõ#*¼cŸksFj*O˜C²q3575_MÖrdìwVÂ9ø%-;-;7g* *Œ^M€Cj 3ÀÞãfÚ `|XºÍ¼#ƒ =ދ‹¢µ­‰IÁ�Ä©k¼„”~„ëÚ¶û�ø©K†±lgôÏèk¶´eµe¯l�›" ¿¤d dØØ¨²Hàÿgn´n´Á‚S׿­I¹{5 ÐμMîœës‹ˆm|äíYvÆ”%³nç�Ý<8þÇ5�k:ÒîþcRµ¯þžøžøÊvÌvÌ=¨Ž=�À‹À³S:EH#ƒe»®�t§ÎB¤ ßßuÝ6ª�'\¿ Ñ¹æû`z·uêÔv©‡!ô6Y¦·q <Îú¸;Û5Ä¿=GÖuR÷š2_¡-å=ô/ïöáÞ¹nk¡Ý~—¬ü¼s§•ù=-õ jÚö“ì¶nC}—½4¯èWlº,�‚„¶ 'h±×]¬:ÌÓ"ЕòÑ”ÊG']e²%P‡C²KËÀöóÚ\­ˆOš“úœVFÙ F‹¬ã~¨Ðñ{Ó=¶$b%�Ÿ!oL(,ßæØ~L»4åFìÂb:Éœò'Õ�{3bhúo“EíjÈ «W7/\†$øô€ l{­­ëÔ-�/n\9e . )/°¦aàLÚà¤e€ÐrOBÛtèÓnu”ƒí÷i„åÓloHE ¡1¿½‘Òm§ÂMWÙ¦KGŒØWï �;åÌûÞ#Ø~f›ˆ~ÃHØÈkÿ”dD¯S�~ù‚°rxs aÿäaiê×B¾ïz¼- Á¶_¡QOËPW+øáÐt»�Ê-nÑÑzçoõÞdJ 7.OõW`Ý #|6°ý¨r©ˆ1¸,TRsžY8ýPîXÈ-Htº6}Q²„Oš}K¹‘ÅG´ÈÎ^°� h<ø‰ð „nàÈá#Ë”gê}jNJ8¢~ÓcÌ_uö�kþŒ||‰ØÀö£šFC¶Xo·UNiûº FI„t…Qq+o–üµùkÛFm¼Éï�ã¬ÀöóÚ ³rçý‚íÐL—ê7jɶö‡l*Ð! ”/c_êœÉ§¶+*òEïô0ÛïÓý~øTÖ_5¿˜™v°ž`á‚wí¥9íßÓ¨X”L©"CØšæ!ÆîV­-òv¨ç´U"Nø™„ýÕø"Òþ\õaö»�ÓZ}zFE`§�ü+PñK|Œ´/¿�Ió ú0úð‡Aúªõ’¾'A§±/ù%ù%q&ЮЮVJ̵ímx«2O>E­÷iêhºmv ÍþH“ª‘’‘’–üìñæ ,åH$N�¤zlcÂmGÆqi;�¨)=ˆÞ¥@ÎtÎôË%û`¤uòŒ¢Œ"ç 牷÷ÅIÿYhshsBÔ܉o눓…CÒE϶i L•ùÒlK¡˜Yh&½ÒÛý·�™5�ˆHðþ§?OþJLm è¿Á±É±©~”©’©’]•¼'¡>¡¾¼_mr]@]@öÜçÎìt=ÐÒ§¦ ¦€zN›ždÎÏ„z¬ªßþš#cænç´¨÷M&Je^ZNY«»­·Ì÷ð)Z%­V>×A¾Ð:ec~øcè+nޝœÓòî<§ ¡Ø~—-vsÄ„ ѹ‡GüªÖ¢»�Ó¢¾Ë×f¨‚í÷iùT±VÐåÙ©œ!�ñµ7Ì/ú»WͰ£:guµ…u(½ŸKß“{áV ¶_³ ÅùjmV9Ñ•¹±FªVïó‰é³�|Y®L’›©ë–:”®0p~Þq"½l¿OëmqòÁõ¤�õæb¼ Ä•év ûqVŸÔ¾”õ¥q£ b÷:…fkÌÁ¶½ÖþT*‹Q ¾;$eËÛø:ƒ ËR¨.VÉt|Ŷ²îߣ¾ßCðÆk|°�ퟚúD×] íÍ«.Ä�L‚c¼9ôÆZSëYNHÜj¸Îö�C@»ëõ¦k'Ø~ÍÆ€½‘Ùø�øFÙÚ�hùàJßF?fÄÇ_úÑ~×xÙÓÞðêg«i`Û÷6’—–”¸Œ¬÷–ßÀY#Eb§p5–n'Í„ñÂ�ì&Iîð\ŒKZ¨ÆÛÞjy\qf¸Z‰– ¢ÜG)¤ÏOFk FçÌP´Îšˆ„÷^¹I—‡î–±Lo¶½Õ,ÍéÊ—öÉX•¾Wµ'ÅÖBÜOmK¸ä¸¹1Æ ¥Áx‹ëeú¢l?¦U’R’¸/DáÜ¢· µ£òtØ$ÙKw¢ì¥–˜HØý‘jµp‰ã\Ê,?þI,+êYCáµMhŽ�³ŽA쪗¡]Çng ÖŸž¹*¿Ó¢&ÁQTOc>·ÀŒ”4Iéª'{:{º–ßuÜAk“üå/‘’”Ê�’;µàL>4PtZ| àã\ï9¸Í0£X)5¸pŠöbT[. ©ï"ÑM¤)î¬ûÛ,È«§-Ô½Í&Í&›“™A™A<…k$*î îŒf…OÈàßåå5ß”¾ômþɪÁy’Hæ6Þ-vÅœmç•.+>©v�ýMמÇ@¹±~rýdm.š”¬à‘ƒÌ‰ÌéPF¯|¯¼S!*¦ÖÖÕžª7€QÄfíŸËÌÞi‚ÐOYJ\JŒzÖ`S��à ãÆNPXUÅæôæÐng qÓ›ÁO‹q�®ISgi¾c°è¤ü6\6•`CŠW}•oÐ!Û%Æb|¯M¬jÍÎí˳þ�g ÂÝ-•àœyǾ•í�+Áa z˜Ór»�5 ¾ËÏšÕmƒãDQ56�³æX¶Ë†xWÈmŽ U‡ëœ7¯uc¨ñ´Š]8·_Cè<ØÀö½ K™­¬ÃØÆD/�­){Ž æÊ‘W�Ó4þ·„ÖGpgÌ-kÞÒú`ÛÏl¡nh©¥*’ÛǦzg ±jˆ‹ÿ¤{žÅÝÁÿ¢Éòùý^4~O­k÷Á¶·ÚVyJx:ÍKÆž:ǧ«¸ô†ÕÔ¡Ù„#52 OV]NÍ¥„�ž¶ÛÞjˆ6Õµ m§t³™¹A�Jš¡S —ðÚ™´Êò¯Ä¡ŸYÊQ8�6°}o G\v¬ÍÖæ!—H7×+9hÙêG@1L-Âx´ö9qFq¾Í•Ø£Ò¥`Û^kÍÄ^–¬Že±¯¨Ä©<äª<{yˆ¨÷Ò=._kšòý+Š5³�¡݇䇲è�Q×ñPE×ùñX¢ieÖOŠi‰5w[ǯßÅ£òÑø°|ÿžפdi¾¹þX caAŸ#щ1«´ðIÅN—uòt‹Î£bÑQ8_YÇÿú]PM¥F/á·ÇZU•W<ÜÙUwÛ£²ùô ×ÈNÅ2Öª¨Â+>WwI.Ë�©58j#jƒMþ6a³&9"Z|ëé—ÞAßAJ�À�ÀÃBñæ-ɹxÀœÓ¾Ž²1@�öqÝm¯…Ér‘Z-�©�©»„¯Öý‘ì�„Džž”€ÔÌ¡5¹-ôIO^e/`#q#ñOO��T€ÅC$÷®!ø??à-šö?ÃAÇAÇ]k*ù6m¡¼×R£�m™ð›!³=ÛBfJ0Æ8gâÙÿí…F¸ný €áƒðÞ$ N=ríõ¿ÑÑÐÑ ‰A®H®hÎŠŠŽšFkJÐGˆ:ˆ:Lj|®æÔN·WU2}2}ÈïÉõ¯¯:û‰j5î´Á(¯å‰Êî¶/„úmÿ§gäzsô­åêûsMeHðbWg)+D÷‚° ` úÈ™ùÛØy`ã"á6`Ðfa/úŸPÊ9õÉ\6®5VÊaÕŽÂ.}š�tlæLU¡û~¢!%,°ýﵬñA¿¼ØÒ}¦fÔðy·(?´¥‘ý�go=Q�Yè¬z¦+ÖaèÂËql?¯9U;ĺðq½eÓu›•Ï}b‚ýOŒ—�Œ0r³@UmÍñäkål¾å!°í­¶ÔО#æ‘™W‹ÏÌ>z×IŽŒ+Ín¡ŽßÒú(�6£F¤ø¾C²¬aØ`Ûû ›Ý’Óö´ï\|é#E5¹»áQ&Ø÷Ì…/&ž";ÃLe4/±(4ñ’½ÄÂ{uMU™ÙÒ„0á ål÷ït>å4t]ßï·�ê¾ÿ=¯ÎuÝÜ®«÷ë>çýî$œÁFHHúçJŽïåìålžxÚ =š‚ä×á�‹Tu+*AØ�Ó¯Ð�œ—œWÄX]:™¨‚¸q(äPÈ>Õ}ªgle•¾íƒÇ�‹bPø÷¡id«Õ¦†°æa} ¤ž!|l‰Ùb~<áŸhd랪'ÈÐ1U2U¦R¹•À�G¡ÿ ‹j]aGaÇáIT2OeMdMÞð5ÔÔ&Õ&%’~ކg« ÅwÀ –gMšC6°ý MWšÒêýLhàâ ±¹¢œ�™8l~7!ûõÉMŠiH²ßÍSœ=6°í´FÐD«=E*GGòæõs)§èÓ{}o„œÚ}æýäháýân™±" z²v°�íWh< ä3dë°ó�ï¿|Qóx<®T}Ô‹Öì'™6!äÝa ½=Iìtíiÿí"áƒÐ«l2ë@´H9o¤‚\ÛÃ?έ’Bs®·ìš¨¹·Rè]9NÙþ§ !„”h!Á­\Ñ= %�{`û9mNvn®›w²Ñ»c•QŸ"ͪ©"†…å–sqÍ)Y³+³ÆXÞ4~¢.YDæ`Û·Ú:V¯õ¹W–Ô�­iÔö´EÙÅ8í¤ó —¦_Ñ¢·¤ö4NŽ=Ò^�qARÛ¼u Äd0¦³v™ÍÇi%�=P:kÛ֭–õ=µQ…Ù~θ )í(4I‹2)3)³“8O•�—ÔmVëKmCmCÇ#™¡ÌPÒ3€‡êN£”¹¾ÿ2>ÀkÊGAYÕ I[êõò%Uð»Šã~£Š”‹ëé†p¸?Ò8RI0U7UgœÈåËå?IðÎB:„SSyç Ž#A¿é·�mŽm ËvÏ}ŸÞ™Îl‚@jï¬g[æÇkÑG9÷Ô©^ŸØ¹YQñ`9S{R{¾UÜ?gá>Þõ#öºîuõK™¿9³¨Ìêý%úãëœx0z½à¹Ï¥÷mµ� +&†ºJ|ýT:¶óE=ÙýÉÇ�ÿàÜn „ºfaëer¹±å ­æ†x‹f«ê¼¬wë툙Ãŵ¤]hÆ_Yñn]Á÷ú¤ ¾f±^uÖƒúâ ¦•°íÖ@¨÷²“öÿ�Ûñ‡p‹‘!ñýAT}¸­–™\T¶óÜŒ(*^a�»ªÒ±Órt«}¶?¯•Zk4Ô`®�V3¼$ŒÛa©ý‚þÔ䪶’·»e')äâ(CÜ©2ÅþýÝ`Û¯ÐÚ'm‚ êŸ#¤;3Ù1oæ…•˜–l6=6z¿Ðhz³ƒ¦B#«å<Ø~ïùÊ)ùÆ)céy².“•ŒìZZ…Òa&5ËŠÊãº3bH“ždZ‚íÏkºäÒÅ�èÕÉ-* {0¯\-Ûûž»n´Ô“hš�±ÀÍ’{ô>WOý£.°�m§58EºÇ“`×QêV;4«<›Õñq˜ð×Îþ¸zë†TÔZáz¸x.ßMJ_ë(Ôµd”Ša†DÛ a›ÀyÖû\�Û­%Qßï>0:f¢‰Ï±ÆìïAî6ìï„î€g¸™Nw±IFWuðuèWÖ’ü_ÿ ÅHD£‹Â¸éîxbêÓ–¦‚ÛÍI�ßGlÕÜ ±@%§ø9Jz$ ý{dHR�Ñ7£oÆ4‰|X»ì”ìno:ÿ¥[l·ØÐã4;4;r%N³ÓBE@‰žUéäÀ‘¼ÞÁTråÒ`ÑLÜL܆Ê+‹¥§ØŠH\¥uHpS„™gÔ#>Ž u€üñüñGQ€:®:®;zžUHËx£<£<ÂÂÒ3¾Éßæ>å>u çøûzÄÂÙ®xøHFt ŒËp„öK5$Áý®&:Ÿ„ œ= 0x±³óØ®�W‘¶ÝêGDôFô®ñz†y†å¤£jQ`±d±t½Ì­£¬£,tísë’[E-ŠzJUKUÿy¶?þ†¢yjŠ�-7ÙPÒCdR¦·ÝlõÙÞI{�þií¹9ýå¿:÷ìsõ|ÉÝ76௽i»!”t"ñ+| ïÜMƒ“bˆ ¶?¯k×AnÛ/úZ¶%wŸwý«‰M]\+çõÍ7¸…î"´ll‚— `ÛYÍíÈf®BÕcJ�]Épã7òãi–I�J÷sp4Ʋ¤µCû½_”€mgµ:ƒM÷Á+Ã6$ï›7´ºt˜¹+NòŸ½c¼ÂÜ1a„UÄ{\åà³s"`û}Ú�Þ9ë÷¼>PôÍs^œ&¯5‚cø¯ïk3¼*ÏìYÁ{[¶æ¤§Ê'#G°ýy­¼>|M�>9HyÐ�°a*š¯7(Ñs®Ñ—Ës"o_K]i(ò¬ØÀ¶ÓÚµ ±œ´ÃŠyVZ�¦då)Y2¹Žü[ûÒÿ.í }÷¸ëP„D£qש_æÜÂ:êœÉÝ�·Ù¿Uw5 œb:üÏ^ d÷?$ª¹Ê°TCÌ­Ku¡s»9ê³½“ö2ým|ÑFÀ<Õt¦ ˆíÕ»'ê�lò«SûhqÔ³¤z�&|Þ_¸½'¢l¿f a>d�؉{`@K˜&ËÔ`ýÄ`KÔD‘åq¯Ôzî3B�v7\ñ"ˆTFÁöç5ÉêÞ`¦É�óµBÑë̆f- tþ2"t3‹áèjUŠç—w±Ú€ l@k ìÏmV°­¡u]2ºA;*6ä+Óxè*ý² Ô<Ã$ÖH·4Õ}l`û_4YFu¼·É«Í Öä´³µ»üæô³±lDÖeŽö³¿;«ö† Š€4| l¿wÀ¿Mü¶�È:G—€lóÎóô§IkY ñÂB,•,q'ÉÚN“ñS(� l¿j›}ï)éáôÜYI@š*�ö@¤­a¸W7å†J×Ò:ï�¿ò†.Ò³`� lÿ‹F—|©¼ön‚­³Ž{ü‘~^�Mª„{ÿí³!Àöû4á9»eÒª2u\s®®ÇVuá.Õ_ìbFß`§I ±ª¹Gr³C\ky»¹3ê~6•ñû˜çÌžÝ=1.?ìl½«gÿ‡TµµÈPƒ¶‰tT;ÙWæÎÂ_Ÿ;ã ØŠqÀÑÇ.\<œ�o#¹ÝÜÙùïÏÜ Øªì¥!;*RËÏõ=C:"Jb�ÔPa¸Ïp©E¸¡PqYÍø—0]0]Æ«k2j24­Ç"]ªÝï3½‡›nRÂ÷øôH“‘ò¹¹ÕJ=¯+09"íÒ‰@’³W}€ ã°‡[�¨ÚÐü÷Eî0Ìò_»ðêG¨«·?� ÂçSQM9™ÃÍáÂÙôׇ‡ý¼>·ª¶•ø @u—ÆE�‹ÿìýqÿ[<휠Jª°�nî#mÞxÛÍ�QŸíÿdv°íü¶l êÆ”i:Éê:-–—¤kÞôÀ ³t%3dÏS¿~½^€•ml`û7›†þYÓJxWñs´“׆'ÓËVÉI¯âÄ¢�™²D޼Ùy�Ïù¾l`ûY�§XPƸP<çäÛZÆt’òa’5)Kˉ ²-þoÓ�0v].îaöy´çŽØÀö«¶1Î\MâyÚ¡ÎÅýd�„­ì~Æy} ¦ã•¸må$jbûÉx3$§P×m"âfUJ«Á:�«�÷¦·[·¡îƒÚ.WNlwÛòމ§†ÿyWhC¼Éõ®£¾'ù í)K0¾<Û‡gëºí -â^nßÍ3:3}RÀËÆ0ÿa!ÉvÿÏF½—�´_ѯت ˜… ì7Åhw¯�µí8�…�¡v]í>klò%{¢!íh´ìòû`û÷ü‘„º‹6\/³�lóÉ1gBFQ¡’é^{©ÒN4ÿ‘ ,F‘»vOÁösš;<æñYfËRC©î”ÌH¡Wȩ̈H @’ÂV>¸y£%á÷‚ l;­­é×-87.�)ÚF¡]˧©Ì‡ÐìeOÞ`§ß‹FËó‚±MŸ>=¬£l¿O#¨œf™?8$3‚¾W|V2 µût¼:]u›ñ v½Z´KΛÀ°�íßl“±³û ù[HÆ ;µñ"½ÝÄOF6§ ¼`•§~í$hò®×ÇÆl`ûõ´5LÙŸhM÷9ÅÜâ'úzï‚L}>0¤ Ò›W¦yJ+Þ¾NP6°ý¬î^´ÿÚýYÝ7Ä3å> “@‹Í8E_”"åMw|Rif½Ž~£³l`/^RôÆ AÈ+Ç¥Fb�ªÿã2û8Œ#¯x> ÒüËßãîŒRB©ØÀö³šNC¶T_·mNyûÚYÌÒ(ù*³âV¾ÛJ“Ô§_Û?7k3áK9²èo‹¶¯‰YUº ·3f�…Íj¥XÛ;²«Â@kÀ§|÷R_å.5´¨(£ÓÓ l¿O¸ìƯ¾öªyqhfÚ 2ÉÌݵ“öiÿO³š%Õ�áp–¦7hæÿÇÞ}‡SÝÿ7’™}ìˆ7BêX™!2*É8„ì-DvâFd²÷Ê&³ÌdoÉÈVV”QféÛçw:¿8%]×ý½î[÷÷ãñßóò¹®Ï\×y¿ÞŸóyÛ¶¶H™u ?ƒ˜ÁÁ§Br?;CgL�ÏÖ}¯g-¿\ãÞ°ºa29ÒíÒìÒ³Nú ›3˜ÑÞ?è{ÉóÉó|�A\A\É–€.ä`M¢ë…Ä~o�í£�Á)ÍÉß@˜SΪ˪Ëp€âßÊ”èB º–ŒÀ*}4.~QÝöHÏÐåßåßc˜Ã˜Ã�%A©êOìOdQbQ’~Y·¾;ææ\¢°ŠŸ[ä_\Êt•À© ð$…s©ֹ èáÎ$`|£*ÇWX" PP¨‚TAî�—ô[SŠéþŠ<­<-r�S6§l迳¡ZoXoظùQ@°S°ó(l»@þ�ƒ§ØýŒýŒ‘÷i“cõ GrTôßpµ ó9°×>-òy“1b©·Vã7j#WÏ”5£–S)g³=X{Y ú”áÍ)–ìÓžÞ¹O�ßËgf½� 5/óJ(DÞh×çkû´È÷ò£w¨‚íßÓ²É# VgÄ2†¸Æ7ÞrÑ¿êï^×Å ëœU…ñ«�¹ôˆ?’|eW¶ß³ñEz(oUXR—Ú1†ÈWa¸…÷Ýx):ýø2Qfªª]ÂP²ÌKÓwÉ`û÷´ÞK7lGªv:+>öT�  ˜OÓúÄ0ÜÉž=)Ž�zdÞÉ7[­6°í·æw©4\Î7wHÌätý| ^š_m„¢%ñøšI;ʦç |žôùø`ÛnMa¢+¶udž°LSÛ7Ü…åÚXk³g5Düëþd*cá‚Uœß²íÛïÙc~Jmð^!t/Ý } å[MæQ—^`àc¸Íh¿m”„´KhÕóõ¤'`Û_mDÓdØtŒ"�V߆2Þˆ˜ÄV\NŒ� :ªiöšè!§u˜PìBØöWËb�ÔÅVŽ1¨<Å7}ý@‰'¬ cÒ:«-Üë|�: Í.e•Flû«èQ—ò,cHj�¿AŒ©<�œÐ}ËÞ{ëÓ+%zY¶“Ϋ>°ý=­œ˜ŒÈ~/ ËŸFŸØŒÜÑ|‹pd?�‰²ŸZLÌ¡î�äëyË,þ¡bºÙQ+DŒÈ{ ãÖÂä± ]Î)0.ª·ò{í5ܾkÓµS˜ÉV²xÕíºº¤8y Þ¦•W•WýQœª8¤\ÐR,à{ÚÚ¶¸NNÙ’€˜'L/Œž´ÌÜ€|)q ¸ð÷ ‰3Æ/&_LºvÞ<™s·¡å*o8%íƒ8îüLù3¾íŒZŒÚSÀ‘G>¤ÚÙR!$ÔRP`auIpZï.~"~â8:ÎÑŸq™Sg°nÁ¡x«þé—¤98CS3æ”ûͦ_[(- �t�t!5YôÚÖ&÷¯˜dšdzØC¶L¶\ˆƒìÊ9ItIô›87‚()x· *ÚÉP€+7¨1¨�¼×`üëðy;f¼¼Š &Ë·Ç÷ÚkˆœÚJñmºX€ÍñGu’‰ƇK–—ƒ%ðFÐÅN‹ ­Ÿ4O· ×Äy�*T±aæ�úý^tç^ÿ׳¥¢o¦>¼ÑÊtÌÙ7(úÚ�)ɽö�ïåŸzW·1®ûÙü. Lê›Jcé6Ÿ„»5XžÈ›ÿÉzϵý*g«�•¾"Ÿ)ØÀöWÛÁËL¥ZÆÚײ˜Òçðª�O¾©Ÿ¢ôôçÛÁ¢›ÑhÙp×P 6°ý“M1Ю„ŠB¬üpOûØdïÌõƒÕ„~Ô=i§: ¯ zŠzQ¡ŽÊ®E`Û_íóãøàdÊiº-Ô+üÒì׆¯*0¤©>/Ó̵nsa.Ù+HzÊlû« ´Ùȯ]õ�Y–PϦfúÔ£�QºNÊÜÂi?¢\&]‹D“]Î�9‹ 6°ýÕ­šø¯°üò“‚/ƒ/C~™;¿ò;åw¼¯Î+Ÿ/<_HZ°#×N<Ó+áh½h=ä¹ÃEÛw´Q“J�𠍕öš mæâ�»©{­¬=² ÅÖ.\~×øŒ#ž./§Ï‚à옜a!jðë‹�n6›¤Éú�lB°~0âÞ9²ýúNN•|‚Ňm¼dÎ|Ù‚{Í…�ïå¿ýŽ\–|™êžÜc¶ ‡£�˜N”æ¡9¡0r¡ô‘ÒCÛ˜9yÇ‚�Á6 ÍòN×õ7‘IZö�¿­U£u)ƒ†YÜœçÃ1#[Ažg_%xÉwé Øþ÷ZÚøàݬˆb ˆ.Eè;»°»¨Ë#øõWü›äÃ:+ž« u\w 8Í’ ¶®YV™GØæœa_dRµ›•ÊlÒÀìÁ:}˜äPÈVŽüÕ ‹só—ÓϬ�mµåºöèp!‡Ô¬\¨/óh®¥$ {’ÙB-ÔÀˆ�F§"Œq\‚1lû¿a2°šH{ÌEW^¼*ùÂlxôï_y�w ÿ$‰,=¹æ;‘%¾‰iæB}— äÏÀå©-­¾>Úœ�¬õç¬ú.îõ8óîÑ�O—õi;,_×·^r~xÖ·¯Ó¦¤O—jËf&~f‘­ zFfm(Ur¡©;ôŸ�y|ÎAÛÉ?±YÓÇŠ(-_E ª•ïµ¾³¾GÖ¸Óí»ô…Ȳ¶‹•FPXº­ŽÐ}§§åz6ª§€ì…?¼'Þ7|O ] =KŠ­�­�Û@åóœ ÀU °ÃÀý´d hjžƒK/Y*Dè7S1U1E7Yݰð¡·@@ÖF8xߊ.6†Ñ(d• Æ¤ÆÔf¨g­gå]�GØšªw­wM«I«�¥\z½;99H‰èÖÏÍ, §Oc�árhâŸ^Z‡«®�2 ? 9�ïñ 5ÇÇ"»—€²²†ÎO+Rai¿‚ã=ÇûP*eleììUdÅέÇ[�7•¢\ÕÕL[ߎ§~§[€AAÐÿŸsðu¯Ý­/IžÉ›¸8¢�ग़nÄ^k*ä¿í¿ã�¶`к½n·£šrÈÉQ «‘[¹VN¬ e�—ôgž@½RPK¯×Ÿ{�8lû¿­Hæ1ÏgÛtðkލ9 Ig…ÒÇñ§ð.©¶ÐQ~8àªgï…ÚÖ6°ýÕ¦7Âw�èQà¹c©$Y!ljþp#ƒ¦©,¡Üwoví·ªÊÒ'Î Ø~‡¦$LlÔz{Œ»ßy€P나ÕIJMþªEL|Ö ‰Ïé„ ¢ô÷3ê;°�m¿µC T “ÄbÔDïæ_ ™‡êv‰bñ†aZ¯L á—t‹ŒäChHÚÁ¶ß¡�ªPO­ÅÈQ/�~]Ù4Q(7ìH¥y‡�Dßè} Ïe¬Vêö„ÿvóp©2¢‘ý|„°@™ÕC;Î^M±¶Ÿû:·ŠñËj>8^Y²6NÜ-uj·µ½¬¦¡ðûx_gLÀvëŲxtJÄ˱=]ÞQZù܇ÇÝq¤×ר:M¤)ù!ïµ"?“�ü> ä9‚ÉäZ[5 ž•wµÕ¥Ç$=šC«’Ù¬âÏE$}z�ÏWDž‹¥¹‹›.²,Þ1Õ»W©ÿÐr¯¹Ø­/רŸß‰À8lÙ¨ïvƒqT3 ³ãÖ®k®kç¸Ý–¶¸ÖB.¿³}ö½4ƒ4ƒ·Ø¹¹øÿ—ü­š°ÿãOD.� hTüÔ'°$�»Ùz³µ'+¤‚oÍ¡2­ÖA]ñœ4eèk¡û×ããÇ I IöÒQ„“ÊÅ–Å–Y�Y�Q™^»k¶n¶Ö£Ãø¹y–0þ€›œãâ°L4œÓ +”£¼:;¾ù\(J(¹0²ñPôPl™t,çîŽZÿdÈ´ k k¼œFF-Ønßn¯µS(i*iš,Þ®{s§1€LÄÏ'žÈ3_ö2e�¹j¿1е†õ`Ù½f¾Èÿ/DÊLÜž¹¡ ÉÌÝòPÚXµÿÈqWÙïÌ"±ñ4k® êζåØ9óeúúÜÃ8W¬¶ç ´uz¾Ä¡±‡r¯ò½ÐSõ·ežŽbHum\”Òñ¶¬Kl`ûÚ'®I®0Ïy~•™€' rìFˆèïI«O\ê'¯Åçñ Ô&åI.(êÛþoËÔ Tj1ñU©çjÕÙ�xˆs¿/Æ.¢{~ÄŸ ÅÛ«•=´'ê‘Q Øþž¶ º°ÐÍ9Q»cƒA’ ÛPÆÄ”hQP Õ¼÷VýÀmÊ?ù,S ´À¶ÝÚGì/ôíÞèP4éS^2Åj»of¾ŸÎ7ü·´KsëWit(Ôc°´ç&; *hµ"¯�rä„­_ªßXˆ”aû`[»×ÈæË56;©¹òD ÃæÚ΋!iÓ˜Áºéý›÷o– ZpQ¡Î½[¡X~ßKÊIÊÑiÖnÖ†´¸¸`€Æšù�1€JoÜD¸3Z¹STö�´�´4^�ùŒ °m¨!Žö(Ãál{`-OpLqL‰ÄçÇçS°˜“#ØùÇÇMøMø�NEïŽd”dTlù2äçìH^ùjŒÅàâó‹å1À%%ûJëé8™èQ})rÂ{ (j�<†<¿V[ô¦ÂòWô¦ô¦ÜfÀ2Ä2DFæèâAìA,ºBlM(B(2˜º”c')6À0„¾€¾y =ÿ\øAçëg$¥MM³Ð]¿K€X!¯Ù‡˜_³¼øÉì$q9‡‘­D(ó“λʉKCš¦Î›1Q ê?Xqî\U‚ß‹_KÃܦöÇ'6¶ί�­ûïµB¾—ýô.ñs“¬žÓzÉOçIÞ‹Óª“Â.@n¸ÈQ¡)ƒ¾A#½y‘š•êäQó‘§`ûßk…úWê*Ñ7õ.]»ÃƒÓ¡£ðúÌÜs ©Û·t:‰�œ‡�DÀŠ.ôÑuƒ l¿CkŸ0ð:TËh‡Om=Ö¼¨iiVõHƒQ°ñºÄpižÚÔçʲ+©ÍöØ`ûw7÷à7æ±!0uáE’. wÙäô§Tç ¥ýÝ5*×.ÈŒ*Íl…õÇ´¤è€í¯)‘ ${ –Ç6ËÖa¡ßó):¼ÂQ;\è@0ÅÊ�k¥f”y®”½çYMØÀ¶ßÚ$ɶÅëæ0E«1Šn–ÁÆèhÏ�Îþð±?5ãÓ?_ƒÀŸy:œÌUÿ>òlâlm+ã‚)ncl+–ÑSÝ`Õ½f¶_®©SÙ‰ �¼™ßçíº’¶ Rf„°XX¬á'¡š¢òük©sÙ‚ßËrÌrœŠÒm×mg©Ð* a¬×÷%?[Ü÷È^t¸ WȈžƒú™\˜\Øg‚÷0Ûý%,„±©p,ô³pŒ>TP ÍO:.v\l¦¬Š®ŠÞtµ–Gpc¿grÏ…AeSi½vWÙSÙcNóH÷çòìHÑ4pkN´w}„á.‹bB…p1xŸ}s«¼À¾`Ú0f>fŽ›)·álÌõöî2¨ªu à8ݵéRB¤K$QJR i¤QZ@‘P‘î¤Kº[¢�Ò¥ (i¸®Á}�lõà̹Wѳø}ûϬ™õa}YÏË~VË÷¨áªáâeLL:jë¸>ÏÏFP°7½&½f¦ÜçäXöësÄh6ûÿ¨4¯Ft”±Ø6é½ 퇽¬‘-0µv“)ÜŸH¨Ë.ÜÿÊl‚gÿlâÞ§ßP<�ž¦fÎN±Á‘2ëÁÕ)Ñ8h6{/‡i÷è¿­MêSú¼îD;jç2ËÙ72ॺkºÍ..“i~ Ç a^î;®™"Øþ}í² ¶_£YúÕ•›Þm ÝÎöB¯Ÿ0+ «ä /D-bä_$gfæ³ð°Ûájö,»ÑÒUψyQ橱©//J�&!ijyË–g¡_IW½ßcªl‡«5jî^¼3lùðt[¥K�ž³B‘ ÏÁ£Žö}Ǹ6R—ŒÜ±1'Á°ý>-³wÉø—§%ü®“+»Î¿žà£mZ÷¤è]*¸ÒO×*бËeZk[�íß×J›7•(|ÏÞÂižçîõ�»Œ¸Ôr“ÉeéÜ}Ú§':àj›�¥b׿2àûú®ŽðA»„³pTxU½Š»7^(�>hæåôñc…ýøI̳aÙÓ3 J ]íÔ|w|÷|õÔkB‘b3lÁ� _ Ð Ð=^++Í`p㕃 ´€Î+V»·Ôò¨ìü{Ò’-¡ˆw\Œ\ŒDÛ蛦œÚ Œ�Ð ¡:<°÷¤7—„‡kuHI ï´°´°ÌߌDA9b•y–y¶Ä¶Äú/ÝzømÁSÁSÞŒ›UKKI]Ö ¦½GR¯ÅãZåžGG©±ù²Û‡i—é�h£+&¼ú‰ºhˆ|‚¦÷róÎ5i›<ª¶Jì#GWJëµ÷|ïç–ŽT¶_³Ý¥?®׉A3 "@–¦«¹unðyèx��Œkbçµqþó0;Ì \¹W`û÷5Ñê^?º‰� ýÍ|6¡`z-½çÒ^‚s·W᪈Î:¯¢0™€ l@kóîÏ~*mZKn·ªFþêä€ïM‰–ã÷(×ä,õSt"µÕ‹½&àW�Á¶ÿG;M«„ù>aã©´1!ùÛǨԷ–.¥ "™nIœêgý“&Ra» ?pl¿w{9€•Ž÷¾×8]›`7s2ù‹øÍ4ê~ÆJÆhE‚6#¢ó`Û¯ÚގŸˆ:ZOÚÈòŠ“$ãÕÕ6Â5÷Šc<“ëZÝâ {�3äNɈ6°ý?E‚GéãÜXSµë1,ý\Ž»$±eÿëoC€í÷iKækøU%Jú]Ï m« `çÎz”ÍæÊøf†µe�¨a•µƒæÎ°ûlŽÉZaõÑ/é�åž•¶1Fé¡ÚI¬#Õ#jVÕm'øÊÜYàësçÅAÞé’�äõ«Ì�DvhNÍ��?^£Ö¾Ÿ�B¢,,¹Ï�@ ‡Ø»B±�;avÂÌþÿù©Ûõ­UeF_"�"�"ôÊ=•{Šb0¤lJ˜³$ÐÐñJ®­4î11­„²€/„+„;Ñ@bÄ3IWe%îáu=@‘aÏV;ß[Â@€å¶åv@™\™üf­2>Tž­¸™¸Ùñ'â�ôÒ¿M"© òmý{º¢ÇoÒÖ‰öèã]Ë®Ý Z.š�6÷Øú‹åÙf-Ò»€ ºeeÙ$ünCÖãg¾GÐjЪ“™����t,[&Ö9Ö9Á‘J«ÄžÄž7·>WÜ´_d3%»5¬5ì¿;¢?íŸ1ÅTÍò­$ èædi¹�yÐÜöÙþ'ûÙÁvøÛš¦�=]ªî€YZM¸H@ì¼(ÅÓ]G¤;-ÚÑœ“JÁÁM¼LÌÃ`ÛÏl.9èVÎwNÂ)úO$ñ•J¯âßC�„Ñe ‰Êdd6…Åþ!l`ûQíD!ŸÄå|á,Å÷�i“!¥Ã�M1ƒq·ÓϽÞ'[# øöÐ{6 e:‚ l¿j�°g+ã½#ê\¡Ò$hà‹04ÿß‹è¸Ò¬;ZIÃi*)RÙOÀ•": ûÞ&(¬W%‹½1žç§Ö¹á]6sÐ{ìÔvÉŠ@J?ótƒ‡è:.¼œí,›cßiC‚»NiÞTäÉ¿J\„ðå·}N|ý½ÍÁnwƒ%lÝ­n½,¦·Ùø ÷6—�×tÄï§*ËJësçÔ¡–¹w¡\­Âï‡ß_Œ;�JšA쫜Ý(ù¥`û`ûÜccÿ€ôMývÀcr³ôZTA+€eg‘uO¹ZÄ,”Èv|üÄýüôX7ÔC,¹cP¤œeç÷dŒ*²SŸXQXQh (ð)ð£,R¡4h,Ü-܇Î��œ fú6jj‡R‡;­�‹�í‘­ À‡c�e/†Ù\øžÑ!ôH6eÔŒ¿È¡niÔ;"üèXèXh˵wßé³¢�Ô­Ô-9ú[þ·ü¹laÑÈÞ¸°Þ6oMt‘è"ÙÜçUö³qø=/I)I�>O/È?íÄÍÍѾ6£Èëj¢õ¨¾ rÐ{ì³}˜ö_ýŠ­J“¾EûêvÜIrÔMÓ£äP,…\x…r¦È꫸Cªáp¥å`ûym¾AÄ+ÙVu^#µ™`ñÅZ!þ¢™Þ«±âN8¯—¾žH´‚¹æ€íÇ´ëóNxôS4‰÷I2‹æÄà«.«½{ 2„mYO˜_·¾c.Ϋl`;lmóRã²EaËêÈYÓP8ÿGd•�ÌÈŽ°&l³��#?1EÛv‰29 £l¿Oîœa|wlH2â%üá·¢·»�b”NPT·iRà "7¹Â…Ûf-zaƒ l?³MD¾¥Âná¶zÑêTÄ ¹a/¬ò4{`ŠIŠtÁZÈ[çÏ^O]°�íWh¤3Ò¤uç½pÑȺ�Îf¾¸¤ñ§¯.­çu¥~e’‹øy†m�`ì °�íGµÀëTþåA§Õi„SŽg�ˆÀE¦\¤,x aÉ•lõ¢RÏx >¬³l`f|øö æÝ&¶Uâ q�ò^õ§$޲]¹ã2æ«üú&–cîœll±ØÀö£šZs†X_·iViû¦bq¨T•^a+wºì©ÑÂÕI½6î,+v1¦X`ûyí¤a¥Ž@;mšCÝ[•ÆW­Ž›W!À5cÏFÏ^’Ë%µ,(ðFèt1ÛïÓ|ìy”6ß<]š›±6› çï:L{ÿÿI#¡W0 d|²§ïlÚúBÖ²öœ6%Áˆ—%ˆ³fÀê¦ Õ=¤ƒÎia¿7/™v}5q£ñ¡ZÌ*OÅsøjr�\Žc»{‹d=™% \Ò07ö$šöw3zð·pW šf-ÝD7™¥úÝŒëÇk˜Öö£Ð¾4 ËâÙçŠã þ”2”„JtÏÏBÌÓá²k{i¯Ãñ¥z·z·T‚„Á„A/ š³)À& +ÓÂ0s`À3Œ³çôó11¨#²Ü.¸¥È·8";OâC½t–hƒbŸî‰ÝcÊ”ì ¡Ó ÅÅS¶PÂQÂo#z BåRhähä[p!ꢬß&þ·p‹âßkÅé~×0ç߉|z“©gánÖ†øZ[Äø_ŽP±:’ý ÈÐóñöñ®&lcör¶ùÀ¾ƒÖùÐêÐê’,X‘· Y�¬÷hõx ³ ³˜ûþ–¶÷“Õô«ðûðûÀž5˜W¡¢‘vbÆÊ¯©a´}{ü ³†˜™�Tÿgò…èœLõɪôO3uÞÛ*¾ 9“„5‚(É-�°Î3l�áe<>ŒÑ /V³aé ÿåYïþ³áOߖгKË´je¤s÷ŽÓBš‘9è¬ö^~Ö®nsÌÛ' ºHQ)ìÔÇ2¶Å»ê°T)[ßb½s³Q…«UÌ^GMÈl`û§ E‘±¼CßüŠV㓌y¬zw¶7-3d¾B›#hTs†ƒ/$6<¥t.� l?³©9•‘“JVy Ð>6Ý7§‹R�WxŸ¢'ýDï䓞’>x^W�›%`;\m·21$…l–ª÷…Íás5Z¯TTi3°Gê¥Ï?ç[w8;Ÿâ|næ*ØWlsP^S¹wѶŒâuZö½8b²ÛAÓç¯c´SkTœá]‹A�[Î:l`û§-dð†MCÆE.B‰#­âc&�A>XD¯HE¨ØzðR sÍÝ£?ŒJ锂 l‡­=Ås3a°)�~C"Nâ"SãÚÇ…Kz˜¾ãòµ¦.;°&_ÿú1í„_÷qÙ—é”|v°s!$®] É? doè\ñ¨C?h.äöñ]ÁýÂVŒaÁw~.�êïa�#�#�“«T²ÎûÃ"YË/qRrR®MùàûàçUª|Z,Øj<õ<Ã÷HŸ‘9¹=G›CÕGLÏOÏ?zsã‰TR;+¹¦ ”û"œÆ^:Ý.ÎÇ,€T…Tź@Ìâ#Cþÿʳxƒó§øUñ«Î4óáo[â\âĵ¢Óþ{‹Í&z”Ôð=ž†ðAnÒ{Öä{Õ%ß¡xêýÅ_ݘ> –[(_(ï¸uía°Xî÷`›g›§Ï7Ï3Ï«= ë4&2&ò)§'‘„s„sE7?gg±Ÿ0. `s²x²v.D+ï¸x4E4¹ÜìY!9žúAs¡Í< ¯Ë~VKŠœÂѯ//>mâL¤ÊÔoƒ{rLÉ´>dJ¾ÓËa“0Ÿ“],2í+s!þýs!ÇO;9/¥âà6¨e¶ » å⊞9h.{/ÿ빞,½BÙ—}ùÇ“ŽÄ¹1«Ò—ç#¸Á1ð!öÒð¶1s ª�‹„˜ƒ l@{-8Û<ðŒXƶ_ú†~ƒ¾BÃÅÔÒçîqÎÉÕ�ä;—ñâ ) €íß×ÒLJ}r¢K‘ ˆ IÃ�"|à—GpZ.âáxǨéôöî<ªÿà¸5ä3d #K²Œ} M„BDȾ/Ù²E–$[ÖøŒ,I©,%»!*K’%²ïD…d_¾îwº'¦¤s¾Ÿßç§šûøcÎy6÷0ç¼Ïé¼_wÜûN)ã™a8QËviF*HÌò½ãó§Ž»#8Óƒm[«}ªjHø[Ú3-ó1©P(gÿ}'*ÞTûñ !+z¦12„{ï�$¶­ßˆ8­¸m�Œ^+(SÑPhµï퇉ý/÷ñΡ’¡Rf¦5þ(;)>ô†3ÏÒgsO5/¡Ã1Ñ"Œ¯Ž?ñ¾Uze³=•×ê9Ýëí®(ËÀäty-—Ó åû”Ps+t:yž¸pÉä9žŸŽÍ3¯o [[�±²†³†Ï½°ªL(rNºñ¾¸€•eþ>´xüBqPÈ‹ÛT·©ž¨…;IÎ~rñie�,ˆB£_õï´ÝYXvXv@9$àpå€ö[ €|¡Z¡Ú··xõY䯍¹©¹ï÷KáýXY¿ { ¯ͱþ©ô~´f¢�»så7š¾º{Ò’¼ç0Àzñü\•°ál®AògÀ›àMˆ"N"ÎY~L.}¥¥-òVòÕòÕƒäk¹D¬÷10x±b¢bsOUšö¼.4¤ÓÁ]}Ð¥]e³=UF.)kŽÔ’Ì1ËÝ�NÃÕuªÞw%BÛ_¸¶›C—Ý{uä'˜ñš„�Îö¤)Œ?+#¹ú�=•Øú=U÷—kíþí©Ç9‚) �OÉ»ÔðÌ‘›í©0—㞶؆m@k¾ìÕ€kǧ¦F׫Oëâ[6>#�N[Ø•ÁŽƒ0ŠÉ©`¶è¸¿�ò¶mý6­�ÍB9–NÁ¶àV‹|,As‡[ˆ9Yò–ؤn]ýg_ �˸õõ؆mÿk³è�O¢È�8È–F•ÃVC±Ï§Ð퓟zp¼ä.Öúv¸”gZR¦Sc¶ý MK†Ò¦Îk@¤Ã»s‡‰â!—ýôÆ’åDdÜ‘C+4GRRÜ™zk@ã~Û°m«5ÈS¨æå!Š�c¯¤¯Z0ú\c‰ Ö!r�êÍ'+Êi–í{@³‹ªÛ°íWhüuån"*ï½.{Ö�ÌSë=5¾ÀC¥If3õ\T]›8‘›¡!åŸnÁR>å6»”W`;r´™qL“=ô•Á½ýè—9CbXzdí¶Á²ÂÙAú¨f%þ�ööÊÆÖöÀûÿú2ï.·ª_§z-{eù\Ã�ãçŽ(`>'CÊÕœLm4ËóÂV b£†y­ó;ù˜÷œ#ØŽÌÖ?Úõ—Kð#—÷Z(ªã«…,n>ÃN¹—² !-˜ÏW?«í—Ï]ÄC8µ‡†%c^ä|¼·Ñù�>+ÂÉÜØÅÁ ýjn39 s4v‚›Ú™ÙZÛ›ÃÜÌ�œ­ìa|‚\Ó„êzÄÿ <9<¹  ŠìŠì€ Lç컹»¹}ñɼ¸-¸-¤ûÖ2Ð^o#àÒ1ä!ä!Ìù?o±¶”Ô裰ºÙ§sQäÊ›Íÿ1ÿ/&�-¶õ¯ôÇë9:ê +=?ã±(Œ¼¤&8Ayê ÷ý&¸ßyn6ß÷Ÿ¿†¸ä´-JØ-«�'Hq ©w³µ}aõ1üõêÍfÕ1u¨®¢ñûü7(xY‰¬Ty¿TÌíÈÅÉÅü-¿Z¿Zó‚V¬êV÷öÆîäzüåÝv¥éÌÆäИœ^‡€Š"t t]õcS¹ì›AE¼PRyδ&gõ�mÞ(@hUh•Ï@tZtšo¹D”üêèÙ£gg f Tu 6æ`ê`JÑè“ðcDÛ¶OJ|¼±BóI t(Eã,F�NÙ‰rKù~uÔ­åú=E@—!«-«-Š;&+GqÿøÏÈx”ñ:NMÝ-ƒé}¥T�TiÈN£G'�¼Å¼V«ÝzìžÎ+qæqæàzâøò½Aá$ÓÀî#®wœ¦ñ¬i¡ßìzæÚÞ]í¨Ï¸Æ’æ[3¡dÙú¡¸ÉÛ°íWhKÂ#±�c’'߆—¤¨ñÚ(R0_È?b0¤ÚA[A&*aJ-z3'¿Û¶~ûÄÀÕO¼NXžv°Â€ %2U@’ÏôL¶'ørïÕ–k¹6…Øöï´qÄøx3|¨Ú«qžå$MŠùÓâXާsÊtÆA ¼èýÄ�ÒÈM° Û6j‹$­–gß›Ñ=³¤Wµ#®�>븕ž�ú»4ÕÑ9�]ftžIq\ ÷ož? iR‡¹ïˆ4u«#��¤tÞ­Çš�°´Ù¾Ãgõœ·ë™&à 0eG¯%¹Úž=âŠ4V9®r¼Z?ŠŒM>lßê[blblÊ‹šãšãÛ^Ò–f ŸÍY"Kõ€®®]¤h3�eªAÇwëìÖ�|æ{y/kȺàènbOš[x”²©Éœ& ëTשLMMÆ´è$ Ä«mÎdÎô¹ôs)cDvàÆ’I“I§Z¼~LçÚrV@ ó4š·Š½ÜšÃuœënvI ¿bCá… ”Ím!¶»äA²ý§Þþ IwIwéb b bj?L64::¯^åùùùIÅ®õ®z=ñf@ä ? ? æž:aì¥LÜ‹áJª¢¡gÏÞ ñl¶§Æœ/÷p¶²9]ŠX²ßOYÊgsæðUÎ’—´oLöÛy/$ná1øÎžþý=õƒþ¬æêœ—gÚº*}N\ÉÚlmûçÔ®7y3ÞSȺ#ÑdîP jê%#;AóZ¥ª%qk~ò[zfzfPë ë 8@eÅnR€‚2Àí"“J&à1+ZÈ(a'(¡’˜�˜° êSgª…’0Z3à2NÉåD“wD®Ð ìPPOQO¥f„r„rT¼Ã¹@KR§:N-æ,æØ.îÁߨœøœøË}ÆW~L{®aæ �Fн/J-­í/I~qá'c½Í_�>\~£o/`÷P¡e¡e Ä^Û¼È)�Ÿ1Ç<Çœ@aoco㥃‰ñ˜O¹O¹â«÷T÷î Xû¯õ¡o½Ï\€Ñýtîtîàz*‡ ×SØó§£ ¦‹%îgè¼‡Ùæ®l¶§Æ\Û[鹿sSx4jÚÓ%ÉHÛ¶½Î쯭õßC}šb¡÷xÔÎ* ÜÐý¬Ž}ObÛŸ×ò,Õ«Êð,Tõ.ˆno4Ó}i¢©äåfö‚ÒÆ»†ÔÉWlgjÆ6lûZÃ�ÕeHÅÞ³d ®oynN;Ù—çî=Pct¸·([ÿõJ#}±zZ­ ¶ýÞíbÔ{Ǥ™ ª&ËÊ7ï<�Êç¹rѰlVñh¿ÖÛåØÊÄç·Ì°íÏkZÔ297pK“j•«ˆñƒBò§ù*zó<É_s³ÜwÑ·É8XÄÛRù¸ Û°m«µQšÔ3Ï/;÷ÒÕ�Â1Ï´šïï/ýÞsÏB<b„ìÅ-åã†Kfü½Ó×2s6­¬wSª~XÔ*`‚b_oÀf³ ÌïÂ1÷öÿkÿ»ÿêp—nGÂp;R½•Tï§²Z*�caß™M~6‘{¢ÿZÇ{uSj^×7<2L6›Mø­žÃ¦½ÞkÜ^LwõÖ*�!ÞÀ@½|À5æ`S‹s¶ÑÑz1xa;¾å­ä­¤µ·Ð£ÐcÁ ¶¤h ìk†SnÕZ¡ÚÒ;€ ŸËï‘ß3qs¯!òÁ¡6 lÆäШt �‹K?<ýŽÑÀ<ã<ãP OO4Ào^äž–«›«+‘ƒð  ®oÌNÇNç†û„Ø�ÅÙŒ… 4bÑ$þFÁ¬zѤnŸã7èŸOwŒþжÖ®o �Õå@p ²Ï5º‰ ÝƇرj÷P#¨‘Þ~LYAU}U}NwŸï^U¸–~ÞzŠŒ€ãú®y®_ïôåïGkFF`œ7O“ÉÙ´�æko6›À\Û[é¾ëZ{e²ëһĻ�=ßðµõuøk®X/‰$I¸»o´#ó<Þ¨ Ž:¹�>¶ýyÍ@r¹Âæ¶íg_³€ú¤fñwO9Õ$52IÆþþ¸=ÛM ÊÉ)lwÁÛ¶VsáZAn—/y¶Sh[Ò( 3ø(ן‚g–¸?@©(�D½/MF3¬Ýk8Û¶V«Ð]që ê¶¢˜®YÒh:ÁÎW| ¾ÃýB9K{ã >Á¸‚2ëÀY±lû}ÚÝÖqËi¸�=îÊÙs<†cê—c#w×ë…ȱ{Ão#ÊŽIó(ßuÔwÀ¶?¯T†/¨íJ <ÚéGV5rU 50Á¼Ú—�Às0óÓ_G Ô”º¢Ü}ð° Û¶Z Œ�HOÙ«˜i®ñx!·“ã/×ÿ×3y~—溫¹_j_W„TµAÓ'J?$þø§EÌÙεiÔÂD‡cO©?U¥Òôf³ÿÕsð,ÖûÐÆ‹é˜éZÞ È6–tP×IjIj«ïˆ�ó½#oܾ5ˆD=éiÍlÍlñDr†ZÏ4ì^öŠ’£Оwq2€ÔÎø¤ú¤’D>¼S KŽÝÓÉÇ!h‡!hŒsÆ<— æ‡o¾…þ{¥÷J—çìž)—…ç‡çÛgÙgÉ„Øl G G‰ûRÑ›Cj‘äz\„㢕ì̽#•ЦPË6µ§Œ.¦å«ÜXƒwÛÂLìWÙ¯&e=Ã�÷Š}ð3îFÞ�Q{Ôù¨sÙ “L$‘‘\Jþ0íkª×TJ\kQú®·C`Æ—.™.‰9·ts¡Fj,©Õ"¨ò�ƒ·ûÈl6·Äü›àFÔÓ2ú³ô»šÄÌ ´PçTRNℱÔð7â”UYÊÅŸ™ûÎÜRøûsKÈc­Ê¥ÆOê|2½Cé^xÞ3 \ÛWÏ!*YïM¿,¦Åɵ ÃAdª%;@¼(ÝU¥c>à:K{IôT|«;¥;EE�ˆÏ¶¤¢ªHžôúv¦Ë—楌Khþy“å @ޥĥėÆÝ)t¤§w‚XÍr?�š:;BÑèt¹Í$EtôtôpF F •„oSAÜ(B¡ › R[NpczzDUð3�;d&u Ö†–ä&uØu­�ã…‚à¢î‚ÍWtãt¨ïä›”›”™Z¡vAø´~ÆÀøÀxDujdj$}(&æØâÒâÒ¸çddóúóú£}kùZ¯7å8Q=: ®§kTèõt’¼L(86“»ƒO‹öü‹Íæ–˜k{+=àßhýŸ­„L®ã ‹Y‡dÝ?R©ou¯Ôáz”D-MºÕqÐgòòùÛÄ9Øök¶`ö=º /¶3whˆÒ§é.é¬�|`¦pîz%Ÿë Hõ©gÒrå^lûóÚ�ÒÖËlC& ÙûÅ#ÙõŒkåüeÅÞ^üŽ«ZBƒ§è1Ó¹mŸ¶aÐêÚ3jä­Ë Î3ú1Ð^‰Ž@_Ùê=!»f•íMnÆékå]÷ÂýLˆmØöÑ,j¤“Ió5ò–ÔÐOˆ`~ã'Ó: ¬Äe¶sO1Ç©~„”@(Ãû°í÷n=ÝÞ1ÙFnK¢¡Z¹û*õ¥]âB,^T„Å�<ööî;ë÷à¸-3«ÛÎ*„ÌHrÙTÈ(‘U¶¬Ì(‰�²7‘ì½²“½GöÙ>J%#¢oïsîoÜ �Ó÷WúüÞÿ=ϹþpÎõÏûu�ûºˆÛõ‰O:›6°ý©íÕD”£�½Å”¥,¯iAeÅ©Z¤ú‘>ì¸�s]k¸C2‡�©˜ÑÀ¶ÿ‹F{§¨&+ÚÈRÕ6Šu€Ûþ#itñÿú�5°ý{ÿk“u¢òBEl]Ž®f½Z{«'yˆsgªz%"c½§Å„Ï•×÷š;#Þ É kŽÛÏøZg"Kn\bÄÒ£—fûa%™Ù©áz-‘àâ¯Ì�ù¿>w~ßhV%Åg;WLÁ£�…û:h¯¹³û§5Ÿµ S?ÓÀˆÈe×_{ œù帒ŠP­P­úJ‹F9R±�ÂNë_"e'eçÖn“i“a È…£+l=K!þí³n‘;Eý pf[ölölJüŠý…#K1pH•ÞÜpÕÔ”`ÐÎÏà¾;vÈ b"bb—x}•¸˜q .G?m3m3Ï#Ï£ÁÇáð·A@è ­.}:ß„i�0 @æøÖ]ƒzTttj\œÒ˜âÏ”R ¼«Q›fñËñËü›ä¸¤g~4~tÇÛ>æ>æ+QˆÜ© 99Çëorá>òi'Ÿg»ENf熚†šþûÞÊ?÷cᨤ{–‘ú vs²¶Coãì5wFÜÛ?óÖØö[W°>’¤=hœÜE õ‹^¢lúh�æwí±ýxæiÅÀÀ:Þc,#`Ûïl.Ûi—-våO!)øŽLÆóI¾"!òÁ GÓfŠHcÏ6žÆe_ÍØ~UãÊçÕÌLWx[CŸ@X4B¸)|íÚ‹[b-no,P0<ò{]ª¤Ùƒ lj#dÏP"xC1ܹB£N\Íͯgò+Þ^ë¼Z¯=^FÇi$}>@Ì�(4ƒø­TˆÚ‰“B-/»ÿzVo#‘À^ßJŸÖôç솱tü "5®�îGýЪ wH˜¢‘¢ñðÚêßÙŠºs½7ã#¿„²‰²ÉáeHlHì  ð¦d^ô¥Ð�êÆ~Àx@Œ` “–Òp¸-aEaEí úN.> mp‰£A´p«\Š=0=Z^¬6Œ“ì˜ì˜®]€ûô÷é‹–î«Ã�Ô&)%)ˆˆ°ù|›D·DwG!Åú÷ÍÔú¦qbØaÐT›,;`Ä>ôÌ4=™Q~ñÙ-²ÎU¼>•;7·ÐaÛä19~Ö‰‚8jž|wòÝ‹WˆfTbqcqŸ.KRCÅ boÑv’ÎÛ­³P šš‹88%¨S.‹·ñ"ÇKµsýxv¯9ââ¥þT^&)×ai9^p»yì>úÍÂÀ®3êwNäšB PvÌþy'“ëës?“•#ÑF$½"îWöÚÛžŸÖ�(ï†IÚÝ…H�t'd8Mëx8×;òcòcê5Çúݨ‰œ£)zÿ¥×ü¯ùo×ÒÞ£½Ç �ö1pä z:«€*.ô‹0jtñÑp³¶½ã½ãå�B1)©% pwÓsÃU½íŠ€é{«™¤eà 쨨³ÆÙÆÙ“¡ì½ÀÉ‚Ù>SBáÇ�Hn£ž.hô§²LzÀökšíb˜�ãµiº‡÷IÓ æ…‘Ë5UßÄA‡ñ̪Hr+ßo[ßFŠñÄíØö[Û¼\»|=¿amLÆ(É7›¼,Û˜œš-v‹íÐ85×4}ûeª¿ge`û÷4¼²Yæ7 Ãâa£ÈÔ‚¯„þzØ­¥ÈEù¤]�’`½Î )Ô*}ɽl`û�m2ü ^�y á˜F§ÊNÐmkA… ¦‡xƒÓÇ$È^Z¸k½ës1ÔØþ„F6+IVyÖíàòn™ŒüÖË—ÞyjÓ»lÓÆóQé–Å;ŠœeÚâÄ+Ø~Uó·Í£ñ- »¸D'˜x4cÂߊž¨F•'jÆ�`ÞZ¦cð9¤³l`7΃Э!uï±cÇ× bjÏ»U�=|\3èžã„§ÒÂ]\û¬yÙèÇ:`Û¯jªõ©ÂýÝFéE›v¨�ƒ%ÊuòÛxRd'Éô_šNé´kñı®Üˆ2ÂÛïk§õÊnàówÐ'ÛU¾RŽ305?jRŽ‚T� ™‹œ»|.‹Ì,/Ï¥ÓQlÿž64èa}Bqó秊áùY ãIFŽÐ®ýô.ÉÏ4RFùk¤!#þÌ�KHº7�ÚZeÍž!žÓ&ÆêóÒbpV šßµ¤ñAÛëœVù®|ò¨/±ùõ§œ´ QMÄ“m×nÔ>R�Z;QÚ‚ü„âRÉ€Z]ÞÐú¿¹X¿rNËóõsÚžû£æXçµêZº˜žÇìuNëõiÍ íný6zEˆâ²vÂ{¡ì&€«Ò~]úÉà2ž«ýT÷V’[Ê—h½i½ÙS P è[æ#úeGŽ\füðøl\Ød0÷)2LááxÇñ®‹¯ðiÞe?8žñŒ%¸.¶‚§0AGŽaú„ÜyÜy¤$à à ÍqÅ2pÂáO6ŸlFEv›ÇCC€­Uû÷�|kS!ʈ†±y.¶†s F­_¦ê0½`²¦Þg†ú¸•€ÄEÎ[œ·Œîqk6xŒÒüˆ°”°$ª©S4×Y´ÏÎÌΔ)Ë¡«‘«‘ôîtÍ{·mn€™ W0×ïîö?ÛOYô‡&í^ñ²xÊ{HÉXh¯sZĽýµ;ÃÁöïiY¤‘Fôk þâé£P¾¯øè¦»ßëa†u.¨« ^†¸ôJHO9<ÛŸÙ¢Ü/mWXQ–80…(U¢»E ˜‹Í•)f$«;Ä�&ž¾¾d9™ø lÿžÖßjå†åDéÂAc-À‘ì(ƒY“2 Žþ¤®¼(jí\QúYzÆ—îÖ‚ÇKföšïßû´†úàn-ƒÂ±ˆª,vr„À%Þê›�»S“džd®ìÔ‚í‹á¾nö¥1¯1¯Å W WyIÀí´™€L@F/ÉVà†ìe4´<8œgÐBháFN ͩƘT8cWÂÇpï$Š˜aÄi�IÐ+ÎP$Q$»Ò󞟼ñÿ/R›JH%$2 2 ø#ôÛjòjòž9ØO~ãæòÆ" ÞFeùÄñ!˜œ”áçI\ º�ŸyÏŠ‰ÜŸ�Åy¬*A…±)M뭕› ©xÜ1TqQ”÷'F,Rí" ^Œ`÷! Wl˜¹#yvÅûõ³«±#ø:'9Ú„²z¹6¹æ÷ÚÛÞŸÖ¸`í&þœñ ¢ªø�̬ál IVpÌŠBׄ®ñŠ*G[ôÓÚ¥L¡®É�Ì�,ð„3…3[= ;])𜠡®ßÂ�0ì|¹ ÃmAN÷Ú9!-!M³ìø{SûX¸hCÙ!8ÂM0}K¾³SldÀú½õ{å�iW¸G–6�6�kÁkÁœ²¥ÓßV&S&#ÅÊ—ó}üs\2[™SU3†•èS™0o]Â$dÞeéÓ}vóŒzëàÂCkk‚Q~¢’IÞ­êq}åúÊ‘ ««ˆXD÷u·· ��„8R9Rm<ØiÁd·Ãu›ÕUø~üçmΘÉiæmÌGœ}c4Ðf¥÷:»BÜÛ¿ë­œ¿Nçu‘aRÞ¸8‘j·%ÒåÿH‹µ\É•íÞÝnTeî6aë+øª×Á¶Ÿm Ì%ÏtM®jd27¦.âV9ÿ»a–ÜÓO`sìͼÞP«è†‹„–æ0ØÀö;›j€C1™øê8þމ™þymŒ*‚üû”½)\Ïx§ { û‘y�.Ý-ÛþjË%’ÏÑôµRZ® ÊUph¾åLËü$ƒ’�…â„â ›ÿØQFé¤ÔZë0œŠGVBqÜæZa ºõþx�Ô¯2òc{�aR]…d…ä ÛJ.kŒ„©?#O'O¦ÃÃ&Ë‹zéÝÆ»�ü= ~TÎTÎφ¶â~²W  Äõê'Ľ0±¾ÁÇ»[‹ÕŸ±JмSz·=%kß‘LÞ þËz‡šÍFªdìŸðøt¾º�Û©CñévŸ’Û-Z ;›äÇÞD±ÙÚbœ�ïÌèÜߟÑGaf¾œn+ÂK娗\Tw;Û¾À{IªÛÕ ÇŒ#ºá²•tè�lG!¨5ä˜î1Ýûo(æ* ®�xžøÖTýT}ðÐ¥ðKáÀâCñ,€µ À|)²ú25@‹d•®Ñö©8¨¾´ÿBÿ…âqh�›Ý°7ˆtlÆôÐŧ£HxW4P:V:6Äгճµ±²õ]­é¯é·Ì±Ì�>¸²³îöîvÉ×ÚÕ?Vd*Ugs øÇ[±K?n^ô䛉”’;íWÄÉêv3P@„…Ѕе5«ÏVãg`&c&£öe»e»U=BÄ CZHZˆEÖ6',#,Ã×±Õ=®í²±*Óí�í�ÿÜõåÝ —Îø+ ^„9aÕx=²h:a»Íèˆgû߸Ù� h­vM¨F,²²d}ª¤æNÅC~Ë’Is;SèQ„4‚3Ëiu»Ò°ã�í×oKbét„ÓÉG×`¾ua¥<$�ÙižÄ=½!ó0ù"†“®�jc#²!Ûÿ·éöŸ èI�å/x4‘(5øh Á —ƒìIÊ ½(v"w뜺ÌKRõ“‰‘ Ù~‡¦ÀOhÐ`÷–³Ë¾rIØœ‰\ó|ÉÜžŒC›$±E�?Œ«‘ܶF6dûÕn5…ü(¡0%ÁÌôðÓ]jǺ`/¥=KC}Ùò2[ú3H¨ˆš� Ù~‡v¦èºH‚P9æ3µ¼w#ŵaÏeûl)4˜‰ä|¨ç’SÄŽb¤lŠýO7/^Ç*©MüLEZTW­‡6ªRàl?õeoå›P‡5Xœûq�<°UüÌN³½”¦¾1ðï÷Ù1¾—Î�!a¸÷ɶéñ[ 1Ä{¡xa­‰5>2¿2Ç5PðEüÛ=âo<¿W†¸G0ýØø’j¿¹×KóI…¢6Í^è²ØSFõn‘×bÞmˆ÷S#îÅh²*Xä� kth† oÝm/vïó3uÛµŽðFD»U’ˆÀ½°ý–™Ÿ™?l9¼p4^­û™ôÈ·t+t+‚˜ô?è¯ã æ ClÝkõƒ>ÝV€ª‹ÕÂp槤M@q  ("¥�3ÂçA{íƒî;s´ÁIãç[„–)¦ŒŒ®/Ê$Ë$;Ïd_¥ø è è$$ÕnÞYŒNŒŠsr÷�5ÈŸ-ÊÙD@áö4qnS‡“ºc6zS€‚Qï+^Â�>ù,@ò\¨y¨yº{ê±Z••Ÿ‘¡œ¡lDz�ô ±%¢YŸ'YO²&gJ �G�Gõg¶ª0ÙNPÉF@€¸ó=�¯ÈË;õÒ÷-ÙÇê•@<©Ýv¾ˆÿ_0ò ]*\Ðz%§,]¯_X]¶YçsSôe›#¼ñŽ1�‚ºuç{¾óeÙáN@\ƈöˆ¢´Õ¤‹ “ü»�m?à[™ÛAÕÐ�%¾ÛÊ­t¾?î,hpÙSÎSŽÒ�ïù½þàNéoÅÅÙÝçïçï3ŠZøzbZÏßíŸÜ.„Û“ü.T i€4�àG<�£F±:é±�^ ‡��Ãé!Hjõ¼y/ò$ðÿþ‚`;н[ÃáÃáÄöÄöF^ ;£j¢jªmo©û1ý÷‚¢+¨L}¸—Fgµ¬àt®ÍܘÿUÿ= ’©jÀ„ØË‹¾N¾té(FöÏX0\0¼[‹6�6¡@Œ(Õ:–'–G¯‚Q´Ü¡Ü!‹i+FÏír—”©íÖíÖàybøò^Ö G´–û ‹Ç7I`5mä»í|Ïö¡Š®Æ”³t‰N5sâzíïó[´� Ù~‡¶Á1Êê>}^yÜïE¬ìiƒK´ÙjC2]¤å¸Üýµˆ¹2³Û�í×o ”tªQ1˜%‰‚åj§i\E9?äàd~Mãuà Š—GÃé�¶ˆ,ƒ\dûwÚ¬Ðìl+ëP•]ó*�2I¬Nu~(CÜÍÌb%!MÏ÷jväÎçÌñ Ȇl;µuŒv=ëIm²Z=r#ìÆ ¡¦¿Ò}¾J“™Z¹J¥MS‹¾ª)-áŸ<¤qîH»Ð�]¨”(½7ºìÌ¡"ßÝæ`V‘ÝÎŽ@RÇ­ú{@ÑÑW(@9ªöFöFK“صrfÃ¥r«˜ß’‘—‘'O.Ñ)ѱ@¸ëö4FÈÔ ûG(Kf¯ƒzàÖš"Ì@ËT&T&OÄž2ž} ºÈy6 ¤hŸ¢wÔN§ [eÝ ,),9b`a!žéVÉÞ2Y5YU«S«›)œbÝ™h’h’*̶ãÇÄW´ø8ã'à¼Ei'gáBkÃ'ÌÃ-¦‹¾:þVúÊ5K@EnUuUµ~°P!S½À£Ÿ‚ YKC‚!þ“ˆ•¾I{“¦pñy#Ž4Žt ÞV ÒÛ]±„.¿™x3�8SGN¿æ¿ÿj¤‚(o¨¶v‚�y·™qÔ{²ý¨™›ÿ†1a!‹�ÕÅ�“/^¹)ÆÍ÷jÙ¯Ea¡�¨}g¦fýþL�H–SÄMvõ¦N0§ö¡àâ}»�í€ÏÏà+lg˜ÔAŠH©o«ÇAJÎû}@¯•£(£([.Äñä=JÉ y�ò­�±�1“Ç•6•6ºÈÅ=‡þ«€È 3KvÇ‘ØtøpóSh Ϧõæõæj¡ç013^®× W#�œJÅ]Ø-¾”“v v ¿^¿'¿'»£ˆ{¤g¤§Þ¦ÞÆñF|ëÎræs櫯æ¬ýN}éCg€¯ œôP÷4\8§g¯°Ø�V§„g¿:t« ˆ ‚�ÀFæa~¾Ã?ƒ?–?–fͪ˪˶‘2�C�C*ÍÇýÈû‘„ü[I6mçݰhq¥s¥ÏS .ü<ùÖWO­i­¿¸mEf?rtåÞn35âÙþ•îbù“›ØË)­Þžó‡ÝI;ö6h?:ÍKª?ÇR¤J’Ï>‰F|Kš’‘‚éˆiY²ý}í¹ž\e1úš®ŒŠ×Þfmù¶©×êÞòâv–Ú¯ ìûh”²/unE6dûZÓÔ·ü¸õJ‹qæ„9M3ã’,õã|5ûòÒUÇ6›Éóåëlp�íÏnw'M£ƒ•ÔøçˆZÔïJ%<.£}.qï®zñÇK’ ãŸB»£êi#Ûß׈ù3\Q £ë¤*±Ñ=½³©—XÊûžÃðÆéÒÌU RóN·U”¶ ²ýjmŠ$ÞªÞãVYà �TèêÀ@ ×÷îNó¶Áf7>§'ZŠêw>å샃NzAˆ»‰ )•ÞÆ.¨ëÁ‰¼Ó®»í&ßWÙCÛׯ~e?Ó½‹±ŸùSL?£}*›ñ”öÕ ÒÝÓ¾ßÙM°}7Ýå2µRcVw=Â�ó ù¸øn»‰ÀÏÏijnçLþ‘ Q ÚV1 JGA+Õ•ˆ+¬øïÐópê|hòþVÑ`Ñ`}'I IÌ)1ÀYOKiÀÀ+@àF÷U:“A!æ'¢› Æt¿¿–5êc|›ŽG™@§t3ø@j«�ùp{äQÜ–Û}퀚´š´¤¾ È?T¼?»€õ™Káˆd‹d+êØuÿ/m«èb Ø.ÄD1cÞî˜sÊf Ä_ã+s ¬fÿ@‡ˆêªê*Ä–nRM³ ãg@•¡Ê�”ϰŸa ßE”g¢W©WI �ë0Ì2ÌbŽÛj3u;ÓyÀeÃj§j§Îö—ßxÕŒŽÒœLI¸y@Ä  O=[q·ÝâÙþ•¾Ýþ·µa•ÛÄ+ìC·`ïX:ú»\ä7õ78£$"Ÿœ˜êJ½ƒ6A‘cÆ3PAG¶¿¯©]Åõ(7H2\tÒvmŒnµ1?7Q}RöüÕTœé3{Ó-¹)Nžä0r0F¶_«™ŸÚ Û+ú¢ö ;Vô .�ÚŒÈ@,šv“«x^2Ž\"¿¼o§ÝH²ýZ­üú¦e·ç(ÁRÍÆÕ–kô,ù—Yño;”ÐyÒ7ªbd°ŠIykÍÝ…lN{Ò>«·ÄêhŒºimˬ>-çÊp¨QÅ[„–Ïš$T|ù³ÔSUdûûZN…ßš,U´»d·ó�ÊÑ�³íî‘jè³UN,°ÁÔ…ý’²â=�·Ñ� Ù~µæãîÏ“{üRªÎÕÒQ!‘ƒ �NŸú_ÝÃò§4 ªÖÞ=þ¼Uj- „Îaè³ ëˆ»�«‡¢¨%Ú!ÁVг%»ív‚>?“Ÿ¹ÝêT, ¢pÌ­ŽÑ€‰SÌA†(0˜M±MƒIü&&u¾‹iÉ·P:P:|¡�ô�ô)Øš•€p€è €áí�´ur@¢~Y+\ýðÍuuµ™ ™ ë¼¾žØ²)èqLÏ�"ôŽ\ê>Ö~C!h$ G»Gþ®VYqYñ ´ENPÓ3ÎÇœ�ígìgxÈp|væÉàÉp>\ëÇ´ý_BOˆràD©¹åÒ_ÃÅåŽE¯ kÒs¤~%7uƒ»í jZW73SÈÓh²vßϸŽvm)N/]/}Α#]ãíÆÛ©Ó±wt„t„ŒÂ·ª?º�ÁÀ “"“"âÞÒÒœ8ìê†l�Q¶¦×^Çî-·×\P]LnMNÕ­Æ٤P`+«ŒâKWs¦¥¸RO$Üjå;{KŽïï-¥r:gÒk�!îÎÍDõBš»�íàÏÏâØÎC=MQÉVeI ÛþñÔ ‹ËeeݧëZÔ9>[»÷­úÊúJµùytu€‘`û#ÀÓÀtŸõg×ô®Q¦©pa|*( Ã‚mLmLœ‘JQÈZh*£�Ä–,ÇPnyZiŒ+ €+€;0û1û�àK‚^×$×$ϱͱ9Ï%¸ïL@K@«R%wèÇÜV¨ÇŒ08ZÁåçóp0Ê:û\Zi%¹¯Î¥_<#fH29bqÄB¹ä.—…cßÏ��ÀŒÊmÈmz€¨]4×.×îFôáCõë/nŠmåBµ] Ày - - JCÔï«*<�qB]ÄD6dûo4!:Ù}óÑ«5¢zÄïËöÐ8Ï*'vc@¹×;?ÐÞ—™Á}�Kè×�lvëíÚŸ„?ß�§Š£€K´ùd8þµQÔZ"M8'CCØe¢F]"6É dC¶ßµ½ã³2¾)ÎÎO�_RÄ]ŽRù¦�ïÃ`©–åuÖà‰Ô{* dC¶ÿF£ŒvÈ){¡óšeø©NV«ÍÿcïNéÜúŽÛd*c†ÍF¦C†"ÖY ’Y!ó�ùd(IG†“Y™%2ÏóœB6É,2$ÉE!’§û¿ÏýÄnÐuõ\åœÿíóî{]ëÝzsÿ–½<®üý¶Ôþ=Mø•õÊÞêRµÝçx»šM„¸:Þ-Äœ;Ñ£¬Õ÷Z™Þ+'�î?½²ÝÜóþ6V;¢'쯌ÆrGe‡Ìñz?$Þ§1¢Di¹ÑNñ…¹³ð—çÎoDá™üšŒíB×çó+«lR¶›;G|\ƒ,ßÊ!5S“¦àfAe ­#wÞ‚è/È·Ë·GÆFlË`c Žsÿܬú¬ºL)»1»±N5 °&™ `ôàÑÛtWP©3[ˆ&°:* ‚_—å—å¯�”Ô±™oeG W*ythTÇößvåTõUõ‘Ѭ›¬›ÈÊ Çq‰ ‰Œ×j¯ÕzÄ/]ÿº.Û.[µÛ²+ß6ÉØ¼ÿ1€D�¿æaÒ‘\´úµR%åz3IZãOtÛ8,< ÏÜ^º½lû]jš¯+¯ÿ{„ô†ôF²ñ·ñ·Í)b�Ö¾¢}¥|rð$?¿Oìf}‹[u§Þæö!û�ÿ}áïû±,÷hdùUÁƒû»q·I\þêoÃÁ¹3æÞþ‘÷m ¶óÛŠž¨óo©†ýVi]ÌÁq³’t7\w›8Q賌戩……5 9¹† µ_ÙNéºVÍv=ÃR O*“{7@¹7€0 6bÈ�É“g5AijT5¨ý¬ÆW$$}¶@/e‰G�ßÛïQš^šžÔŠ7Ž7ŽÊÇTÎ�”e¹.èyÜóø¹üÍîöJKì%%ÅœˆˆU+¯>Í÷×ì\õ)ŸÜn€y�|»Le½¿uºÉBƒ‹§¼Ý�lQq¯Ï�‡uÕ»ª*X`C]Œ½ið÷Ûˆ|_ždÒªýI†pÂþCÏ÷iÔv{;êãš÷î[=÷𽉩¨s³Ò ÖìX_PmÂ|.‘æU»â”@¨IAìsê8ê8 G**Ù»Fÿ節Ö÷€réxDÌi3¹3 m6“ �=Ôu¨+PDCß|‰óÈ‹PiD„"ß�6pYkCr¯? AªAJº d§dGTôÄtAŸ5™5¹¼¾¼žúÌ�õ¯ rrX·OB|ÛÙ²d“¥? xh¸ÕÑCnhãÙþˆ‹×­†?ÙÛ]wŠ!0bJ›C›ÓÓ-?‘‡œû8r8r¦ Š Š ©.˜P“Z Z ÇRž^ø¨Íb³‚´­æBó½CòCòà~jA ÷SznΙß'U‘—,ôójÛHÈ·›`îí�tßã?±Uë±7 ۬Nj!ð×\,;Ì’oa«äÂT*8£®0Ù�jD`e”U@í×µÙ: ïdG�YíTÅNËqÑÃÅ“½6äR%�XÞÃ~^»XDr­Cíç´ ³‘nd.ì&̉AðÌâ))XõYÍ×·%‰mk) î¿ûà|+Þ�¨jPÛimM÷Áâù¢Æå‘–7°óh«ò¬h$¬ eÀBðM°´éÒ'wTAíßÓˆ«&9^³ÊDÃÄç$¯%v›ÅªñÑÝmÓ£#Àm¸„á˜5ïSL 5¨ýÊ65ÇHÜ(`÷ˆ|D¿Sc`OøegqÕð‡‰Äýœ²4/íE} ÞôzYB jÿ„F3)Gs_É›”€¶ÛíDvQ‹®ö?C¯LIBô窒.QÚ¿.F\ 5¨ý¬r¡�1°"ô˜Ö<³x [öXH°VTŠ}ámi[þd»–*#ó÷°›�O 5 ñï¹±> w}„óà2õ©øÊÞµG¥÷<þçÅ1?õé«D®¹S q%FPƒÚÏjš¨ ©'Ý–Yeík.8%7d«�ŠZÒÆiÌ^Ú<3j3¸ÍýÖ)Ö’j¿®‰™V9‘·³¤¹ÜŸ;}ÛÜÆŽÍº EDý"æ…îÉ\ÛÂBì΋¦Pû÷´�~_gAµµ™‡o§&í­ÆÙy#ºvÒ»$?Òàì*&ð›C!MóXçÜ-[[l;0ÏiSÌ�Lx¡‡júí®:0ìÚîœó½î[2i–WÜÑŒ]¬|»‹ÐÎåe } zQÏ2ÃÇý…sZ�/ŸÓîî “™¿`Ýz}ßÙÕ#ÈÒíÎi£?®±~³Uàø]qL´­›9Q‚T¬¸ôA¨¶B¶Â¢÷Ø¼Ý ÅæÌº7‚>‡ÔAê¢"L"LˆÒëâ€cH�·—B© BA††£h×bÌãÃ㟠2°æÌ•�³ÜÓÒ£ÊA㢷j÷: £xVxV0›,ª,ªº%d‚,&#="=ÖkÖkp×êo~ÝbÆbÆI‰oÃ:‰H/l”   kU¨x¿GC4ôÅ÷Uxó)~R‡èÂ:S�Iafö´™r¾EÕô=øù+p È0ùuòÐñбß<À®uYë²¥ÿf×%·º#ˆ<ÎáËá î§*ô~Úà2w!=ãoI¥n%¹Ý9-æÞþÒ�áPû÷´\xŒ%ËòtˆLÖ°„ÐÓÕ9!ægýÝïLñ#;§õtÄu©½zd‹åŸ¹Ý…Ú?³‰Æúh¨q¤«pÛSý>®wtŸÝà±UªäÙiznIÃ)JƒççÆS: öïiOZ½ /!b¼x�EyÓ|ÂNà×§÷Éà^£n¨.‹�—*¶ï�®5ƒÔvZ R©ˆV Ì–±h|™J”n!ú FÓqïÓ›v¬5¿^ ’‹ÂK8/ö@ j_kã]ù8:®¸�UF{që�µ&5°‹H£þà¨äÒ©Å{ùÁµjÿÌÆ€¿žÖt}‰ìZÅê¾(…ÀZjŸF_f‰�÷Ñ>ô£ý®qǽ"î?~—\ 5¨ýh#aAMȸ_ºxy.bÿ�!‰˜ç„š‹w¦Â"Œl'È3ù�”Jxu7ÔvVËá�5%Ô¾e�’äã¡’=?¥%Y”5EÕ:m,þÄóOºl·Ôezs¨í¬faFW!¼ˆ+o`YöVÝn/¾öÀ�ð¤¶ø î×?¬�`¡Å©Œ!ô0yÖµŸÓîî¥&wEILo¾×~ÉþÙÈNzl'µ[·ˆ»ßÃß,rGȘæÆ-‘ÇìÇœïËX™4á»fàãŽÛNyO°Ý|?øí ÉV÷_þÇ4S¸YÁ,辟� hBŸ´™´Ù½[_âÐÏžJ5¡Ïe0g0¿à u u=.pMW±ðX±d–µbL]6hþ´c fr?r¿ç¿+cÒ9û Å~ „34ó�͈/KLó’ ^/^�ö*À?Â?‚|a¹t�n¶l¶ŒF‡FçKö‘¯S^P^°5©fþ6ªû85  m>‹ÿáE4é6©qÅüù*6ïOêç„Ó¯¶°Ÿ=ê~Ôí¼¤K“øæîÓï!™ ™àùÚøŽñeLµ#¥<¥<·OŽ«è²ê²:3mF„¿Õñw€nT*óìʺŸ€AÎ�‹¨ ¦†ÃqŽm»³«ØÉ©�ÍÊE„‡8k“5Øf,8ª¾?žD4‚## �ýNpÈ>Ã%ÚüéÐî^˜Tͪ­ìó³+ä—Ï®X» øøóHÞ,Ì4âÿËØ»½ûq�ËVô’昮älvªÔg=òûS{F{æzJÊZÁ#+î£!eŸKåMåEpèuëuoŒ꽟-à»Õøeià€©)'4¾*¯« nD¬ fk‡C8mã>:ÌU ¦G&£ýµìŽÛ—âà€9Â_[Š(‹(9vñ¬‚Ä'š$š¬R¬RÜ·”û:7 7 ‚Œº‚o ¡°¡O4'¡1­ü±rº íçÊDZ·î±ÓŸ0Ù½ÂÛ°ÐÛžºrꊬ«tRhy`å÷ˆÍŠÍ2S*™(™(/ÃÔgN(K({Ï>ƒ²3¯3Õ¶YpëVå¡€PµÔ°Ô0p?‰ÿý6g¼SZ¦]+Çož�añú»&å·;»ÂÜÛ¿ê­ë=×Ä »hð霴Æ2\Ö�t…Ü1à®V·ÿãÀŸW»qNó·J9Ÿ!Ñ=5¨ýhÃSå¨è8gm¬ŸÃÑ”1KTëyp¦q’Ö/Xtm„€qÊt EzÕKÖàì Ô ö+›f¨[9‚Fæ.Ãmáö±çO¦ ñjÉŠ‚èzÒù:�Ïš,zJŸÀ�—´¯–Bmgµ�ªÄðÚŒ½-tKâŠ5¼ú�Ö`É ©•Sz$ôÎåÄlŠ˜â¤ ÔvVhsQ_9 ãXN7�–ЈEM{-ô¹Ò…ÝíLÚ•Ç‘+±Ø'³”Ä`PƒÚ�¶ð�Ëu:ü”Ò)fú%¬�¡¾DTÑH0òÔõ�¥åZ{Æ,�Ê”A j;­=$ó°ØïP3?¿(_sé ?)ÍNz·ìKMK¡E¹vºžeÜ¿›Ma8�^HØ s.Ä¢ì:¿/O2¹Âª¹A¦µÝ\h-7Üû¬ÿÒri±[¡qÉâüÆC‰Œy}¤bcj–%°ð åNo—5ÊóN©¨H‚/Ì…y.$ãùLR™ÕfœÇ›W´3–Øq»¹Pð^ÝÌV “9˜D…6Ë=¢MG�p‡ñ†ñhÜr ¼•D Mt†½>‡SˆSxŦ]³]“E�¨�´„1žðŸ:ox  —Bÿ«í�õ^J ÐÊIW×8¡ßÇ–ô†�@n%ƒ*ùådÐbàIڴȣƀ\ç\g9*@áÉ“ ƒâÒ ì  ¢\¥\…óíè�¯ÉÉÌãŠÆû¶Å¬òÓX*2hN»zœ¢n 1&‰LDWç‡p~‚“/f)yðF^MQMQ.²HMÙÃý{ÔVÔVÄê <�L˜6Zž‡=çØW’ŒJF (nvîàV’€+ç±ð°ðÀýäú÷Ôº©$¤uš™m"Ôž¢¹¤’Ç·› aîíÿõ�ð^ܽ¢«Ùgý�¹&1Ä{pi°W`{`íÂè£dF¶qñ‹h>•·†Ô€6-òÕßL-ïØ'wù\Ý9•¬ý:‘øe�2nš:Y/p/G’ŠªàAíÿ_K:ä›S†kBeJ1ïé [!i<ܬýª³æ±žT‡¡Wˆw>Ô~]s¼oãš'ÈûšCÏmZ!»Ù ¿g·”ñÍyê§W޾TÍ\†ÚÎj‹¨öøh©‹i9u{��\£ùŽò¼É¶¯ -¬xhu5oÁe;¾? j;¿ásY°Qô™�+»§|Z¾×ö¯Q&‘y·¢ˆBü9ÅIf¸Ñ¼ô‚èø ®s¯qÌï˜[ Zñû˜6$OàK‘rZ´æo÷ÿqMÚÒVÕ9o1Ý»¹ÙµS —yÔ@B½Ø½Ø5Ýë¸êÏëÍæ¤?7í0í�5èäïäŸ} ¸aZh0^¾}žI p¸õ†ÚŸºT4 Kº"º"îf-u_÷¼ &WT:ˆîc?Ú¾ì¦ð¹¤ƒ8AÁ)8À°Ë°kßj¸%(×0404PŠUŠuoQç×iÖ<| Åí?ìÝy8ToÿÀq"Ù"c�¥le‹¬#вDJÒˆPö}O–ìk’-_Û¤�-KYJvÂ(“-»,c�R)ŠˆI–_ç7�'&¥ëú=Ïók™ëuùç}9ÿÝþ¸?ιïò³»yg�à5àý¬ŒÑ67úXãB}z\ÑÌEZ_y–ê—Üð9ÍpšA-‘z:Ù‹ñgÈUËUç¶:I;I[ÔàÚ/͞Şõ2jùæÍ7oˆò¯vIt-T" %qqw�^™ÙÔ|%¬ÏX$’¿NΩ÷ÄF{ôœB Îé%™“æ;ÛÆêšU}²\émw)í5eZvÒV›fßÔ;ŽÌTšjD’]]g�.¹þ½Û‚«>ZÑo¼[1¡�Ȳ$y£µ�øù™À[k5m»‹k¤qµ¡�]‡È’á"ßE>[§D}­W´nwg~ëâ‚΀]Ÿ]¿’`ñ@ˆ‘ìº(&»E€ò´Ázžº»TÕ L«L+§…qvaŸ�u-䆀dÕ¡Xq ûZЪ$NÎZÀýÆû�\»–î‚vÂí�Ú•Ô’Ô®Üaô}ÎùÎù&üíY?Vsžcf’ °¹ ËŽÁÑTsVç[£ ñ%7j�|Uh©å@b¼œ­œÍÞJc¦©ø¸èÏpôtôl{9 : J#†ë½gŽgÎ3¸ ´5ÚÚîùj•¢ka¿6°˜±˜ù×=Q_ÞÝèM;Å )‰«§î‡o2�Ûh�Ž»¶ÿwྭ3Ø»•ÐVß>¤Ëàä�|1(›¡´':‡‹@ÞQ€b7Cç‘@nâÛ¯ßæ”îq@&³iv}ò÷ðÝm~{²T†äû³Í¬ŒˆýÍ܃ [Zð ßþ¯Ílx|rMa¤Ü®LÚ\Ä®ÞzØ­33ƒÞ —û£�ªsÍ!ÙP|÷ߡiÊ@¬š½Gö¡}ú¶=ì$Àh(U=½…Š?êÙ �rjÍíÙq=:7|÷_­m­gÒx9ÌLónòù!û«f;ü8¡Ú[œçž S•tÊçӱжâ¾ýM¸ê¬Bº%x¶ÝçŸå)t°—²ÿ,{¶Þ>婬„{/”´ÇýÎd¨fo»Í±­Všá¸ÿ»ÇýÆ÷¼2Ü9‚Í LËJ§ÐNo4ïÓvZÌ+ÝáÒïSx"«Ö…{?5î\L–‰K!0>­î©ôᦫWüô6š‹%}~†µf­ª¦:1\noV“D€6Á]@4ÛÌ·™K<á/êT`e^V‹ÿVvRv’°S´ v°LclȆ Hݘ0 $ó‹Y½8Tù¦êMªÑÄóª çHcTé!è¥Î-#¬²½ê!,ç••Î €"÷"÷ ¶4  ‡‚�‚�éÝ¥�¾¯f®fîrÞ2ß�=èWl$ôÌÅae;7fù`u”°謱ԿôU]׊¡™:€ÔÙkÖk–v�öá!ëÉŸQaPa°¨USÓ·WáR/c/ãÙñÞþƒþƒÈºÕ¨}Öò@þ¯ü ŸáÎ|˵¤¥'„�lÇÔŒ¦VÙhæ‹û÷B,[nð(`Óàñ‰ �g-Ì»/ŠÇ]Ö ›†X¿âÏ;hD¸zæ+Œ�ù ­?ó%+™dBÖÆÀ½å¬Fén·n´¶“??£�X‹Tà).‰S«Œ�H$nÕ}ôð˜©Q$ J�—¯ž×üEEOž �9�¹M-`àõÔ'œð†ù"ʯ°Ÿæ !–ÉŠÓ%PYw¹m¹­­ ëü)û‡I £fÑl�åå]7±D¸Êîx¹ð1çcN x9ÌÁì ˆJûÚýk÷�ÙŒÙr™E¯Ÿ7Ä ÝÒÿcÓâF†‰K€ËEX÷cˆò°"L¨ÑöÓ¹ÅP~ÕÅ9ÐQ&è3.ë-ëµu<°½e±ªégõ:êuVlêÜÔ9h$.�sÜýÜýÎfÓ³•³•;ØV+wYK Ð�u 븞x¾¼—5*žd4 ì|;ÿ<�GCãF3_ܵ½³„ Ý’#šÀ‘éß0}̼ûmy‡1¾áÛïЖÄ_ˆÇMJ��¨H… Z¥a÷-VÖ{¦Šf@QIÈEC%Ò Š»ðí×o3ÌLº‰)›«3åPz‚l� ÑûfKÈŠYŸ°…RÑ„7 ^íJ(´*Å·ÿN›’ŸšêyVçݶÀq†.Õ´¾<–‡çæù¤¶¼aÈ[=boÆ‹û2©�ð ß¾×Ɉ»ÍÝÞ˜lo4gTµ%m‰±Žµÿ•îóýSšêÄGu“ízI×ö´æ¥{Ô0jÆÝw¨" w9Ë>›ß#Q÷²oÛFûŽ”ÏÏÄD®5ïü—ZÚjŽ¥ ªÄ‘r�‹@‘¹Ö>öˆ¶ìYcãkØÞ�öÔ¸3 A¾î]—#—ì •BV®G®òU´_Öºù~ÐÐÖçS" �Þ:{j‘õ÷Ôèýï­÷ñÅ·œ=©F:�¦:»ÑÚNÎÀ9·Ö$É/\ù�Õêó@<)WEA´¬ô¬ô=nV†v˜�è,+ºËßRíSí#2_‘]‘-†ú7WžðêÝÆ »XÖ#ÂâXèÁ�  è–²-eœ’æáP�“÷Aaù­A¥B'°{(2·Ýv¡‚P šŒF§wgÂh±¦e¤eÄ剚´ÝGù}B„><�7ŠýXj³ú¸3 ß«Æ\JÙ÷ã„õJ~Úfß>üêÑd„MY€ê#ƒ<ƒ¼ãÉV¶•°Ÿ‘1ž1îÇÁÄÍÄÝs —ï]Ì f…Õ»éE)E©LÙj¡¾kiòü´;Y;YÁõT½»žÂ›ê'>/V¸¸n÷ÛõñŸ�öÔ¸kûWº‹åOnJ&Œû¥XƒzÈ›M2¥,§…ªtéÊao6AO0ó3 pÚ×TáÛß׊ÌÕj‘DŸÌTu|%ÈÛL4ÆÄ&žè‡ió¾`Ò±òb‹Ó.>ÚËÚ‰oøö;´ÖgÁ[QÜnTÌÎã{Ó§ ìª õ¹6*»§ûr¥�±\-ó±;¾ýÙíRôû$„¶žÌ4m‡þ%•ôÛ5LŠEÊÿ\ÒGbŽª9¾‹†$6e˜àÛß×4¡2é�„•I�UjI‰BŠwÌ ¡†Š<¨_òsä9éZåÈ• v=zØ�oøö«µ º4צ`Ç¡íÍÖ¦¹ OŸVK¬wwZ˜;1f·ß\ñ!a„TŽèuzóÜÙDŒŠNºt˘„Eà4 o™`àF³ Ü÷U¶° 럢øÄà �p°ßaK¡³’ÆìS/«y¢o2|�Ù„Øú³ ¿|‚öª-ײ›Óx²|æY6šMÜÞÙI^ë”�W'÷j àØÛƒ Î"??�(–r?Sn½ñ׌o! èÉÙÍ.›]ŒïÞ’tÞ\61m­èä«_�ÂzÕj*š“7’5’½vQâA­x¤¨mw– HŸÑ�Kn^°—ºE“pFêŒÔQz=±I¢ŽÄ™+§'§))ƒ¾[Ôö}é/Ò_< ´@ÿ�îsŒ/`· ÖTpÉ;8½¶“\�0…aûWLަŀ…dYwY÷Ùù’ó$µÍã?ƒªŸªß×,‰'‰gó\ma‡]»"¹æêÆêÆ.­¦[«ÜP!8tfèÌ¿Öö—o¼^¼`ãËI?O¥`ÕE­_¬µÑlwmÿJg·ÿmí¹Ëå×í¤;=^ õ £4V,—ö%*ßÈâ�@çzmš0"PÛKm¥C„o_ÓSߌ²ºeóÁß$°%©ÓÝiÿëz>¸”z.Ùäõwä÷.H2ññ‰ÛúÚáÛ¯Õœö¬Ä‘+V4ÒÃH’&ض²é½SxšºÉ$Q ðXY6™Úp¦ŒFx¯÷X!¾ýZ uvåB_È€Í\Ã’zÇi.¡ò“"Û\|«9B¸ÚFu‰óE”T8GÜ$Ñøöç´¬î)ó9?;Â7Ͻú“jÁ±bQ;[t¸<ÊEnÉ#OÚ«’e¯{ßþ¾Vò(âœ%)èxßEªÚWE»ƒnèMÕù {ŒæÎP'†ë�vñÛ„oøö«µ+A‘²S¹�暪?|!¯@Ï“!¸çÿë–?¥9³t>•æí�”®Óë˜�\Œ#ššYÄ�í0‘ßQÊ=~ŒÉö†ÜUc�˜�f;iŸŸy{i­BR-~\ûlWËÚBòƒ ÕlÕl0ÂÖHÞK„«L‚ �ÚÞÈTÈTLYMÒo­{ïR³4¤4¤¸sË NÐ8õ%øcyÚbÃPr?™�æ–¸ßíµÝ¯G2º1²tHšŠmnÕ¼ïy"õ A8Gƒp²Ö\!Þõã:sKñõç–oæ§´`»ÎúQ¡=áË:�6ZÛ韟QÛµ–ƒ),י˫ÝBƒšÞÿ³:÷ü%ëKV/ÒÔúÉÏ|”{fß…ŽB Œ£Æ¢ÆÌÉý›#—œ'×éúDļݴ°FDr³@Ç»55ù†4;ÿ‘|Z˜…£@ŽËw¤°¬Glx‰k¢w¼Þ9#�‘Hˆ™y:ÁììmÙcÙ³“!äö÷‘$‘$yBy{ìÄdøÔcz€\ –œÊšˆÅ®c/'/R3±Ýä+Øí~�=L?× ×À dOšiŒpÑϰAÙ Îûûû¿:Ž+özTLT DîAãd ’£¸Ú°ûZüy¢. ¸žh¿œM�„…†±ÍÇnÒdðjßhn‰»¶¥³àÿíé ˜QŠ)‘¸¤eØ�<åGºw+Ï¥ô0‘Á3uÛ�ú½öºEY€o¿g åÚ}öF;9;Z]‚1Óàì¢rßã˜Ñ|%Ï”GBΣûꬎ‘Ô*Cøö÷µƒ•ÝÁ»ž¡#�>ÝØÅ¥cøX‘9@V’yüÒ‡BÕ ºMGÝçûHx-ð ߀Ö؛Ӡh‰drœ×E0 @ùËÖícÁ¨Ø¥ë_ÓÕ,J xFøa3¾áÛ¢ÉsÀ)Þ'-4(šC™ÞÖla»8u&³�ØBrQV®—–ýšê»­[!Ãøög·A4å­mï{¨ÍcÉ4·Ò®d=O{b›ø)“-^bÏ}ž¸“´-f´btÇóñ ß~×öv$Þã «ýóóÇ`2 iÛª«$QµÝ2äÉ•ŽùEÄëÜ~b|÷ÿDcNò-©¹“`yþô…ø=½"®+ ¥ÿðíÏiSÖHE1œÜH°£ÑáêPùÍùX†,µÖ§ V¦ÈRšëmRê˜�æÎ¸ç·q;GÙÃ5e8rGù©ÂÀys’.Öå”êí†Û%ûk5ôebZi×™;K¬?w�ûöî;Ëöà8·ŒÊVö®=ÊL¶²¢�qÛEV²#T72Ьl²÷^Éž‘Bvæ×&;éADß®ã~®oÜ G¿£<Ïïº_ÿ½�ãüïüç:OÎaIÑ„–b‚IHª:×ènçÎIŸÖtïÃçìF囵�h+žÊûx;úv´ûÉ“$þ7ü%Ç +¿¤ªJ5ê4ê´5_9h`ëðÁXJZkE×T‘«�%�^;ûSøSPÞ�‚•K~L5Ù¹h�üKGn!¹“ó™ºZó¶¶Ô6¾Þ¾Þþ&ý ÍDFFÛ:ÛºÞ-Ϊo+k+k³T ¼ô}òh¹Oÿ È»"éç¸tDjg¹™°Ï2ÎïŠëgCp,ŠV€W/‡yLç@c:.ø#2j3j¯È + +>Ù@£A"IîŽÂss�¶«1ÚiØðúµ<µüÿf"üý>–ñA•tÏR2ßÞŽSl-B·îv·f¾ Ôö~[Óä·9š¤Ûk’ÜÎ,ä9'LÕøÑ~ŸïUk-ÆáL�KOy޳@ j¿³)jØé–εç�£)ø ŒÅñI¾ï;Dì½?}H—%0,�=Ûd—}%jPûU�#ŸWìr®`ºÂÛZÆ¢¢¢ ‘«WG�Ͻp{›`ÃòÈïbBÔà¤ÙC jÿÔ6DÄž¡D¸DÙßö�&I o$Ÿ�鯘�ôª÷J½îp)Ã)cq¡ÊÐÎDáIÔo¥yòbŸÇèZwB.Ïæ‰.]Ýí[)ùÓš|¢�Æ�¹ü‰J¢w;oPºh°SKKÓîNw6¥%+“£÷—ˆ½ˆ½fÖ)R>äk´^|© �ޏIÍØµýÎhLG*?k*r²¶žµž�©ÔfN ¥/Zå“ú:"…ºáfzÆË.²f?ÔPe;Ê–J�2 ºñH‚C‚ƒh˜h8í�ܾoã­å­=bŒñ}•±ý¹2éo$˜q¥•<’ÎÕ¦”�t>c!o°Ô2dž+{^ö\|)Ï…Ò„¬óGMMåw„„‰ÃQ½ht¥p¥`޼K]¿]VöN´wUún!n!¨çgõÊdðÖGs¼àmëîO¦v;@}Gþ¥x‰µ—iÊÕøý:ŽŠn7­Íë#—´‰ÚÏjº(pçš‘À¶�ü=‘ãëç5În²yÒ£ËÃoøÄ1%æ¾ù÷BàÞNù´†Èq§#[TÆÛ�c�.l{ ÊXˆsˆsˆ’¢¶Û|Ã.e™,ý¥1½1½ñâ&lX—Ë$‰‚âÙñÄ}TÛ9ý $¼¢âJPÖ½;Òw¤�Lè´WÕ­EA†5� ž"¤·X-n”x&×p×pF3ÀŘ‹1’v[Ð�þ<Å̧NhÁVé‹îxPƒÚïlc¡ tx \7^ iµ©ô ¼e#¨Ø‹×;q\‚|Þ‚ß]ç]7ÂHjPû'4ò)Iòª n8ç3ò›4ÔÞyê2"¶èãx©õKãE/0oòà•@ j¿ªùÙæÑùûŸS]dL<–1âç+„š¨N�#fΙp£©TïÚô ¶WPƒÐ8> ÞìÓ¼?tü�URŨ:9·ê³b´\¼ç8â©4ã‚kŸ5-Y¨5¨ýª¯OyÕaœ^ôrãð¡D™^~3WŠÌ¹á¼Ù¸^‹W Û_ÖƸPû}MÀ ÔŸï%c²]Õ‚rÌ5³ÇLË`hõ¸¤¯Ã_k\Ì"7ÏËs‡µ9@íßÓúz=l¸/mÌ6þÕ?=ea2Æt2¸}/Í%ù™FÆ$•,hÀ�åÙ"šþMãæ&óVÔ{ÚÄhCz,ÿS½7\,é¼÷ívO‹:¯û‘x²íjìz]<ë䯔â˜ô ;Ó‰cçÍäÍØLht^êíµˆxX‚6ÞŸ–D:Ô£ÅÐr~ ´&´vd`Ú`ÚpÚ�±äŸ4�4í)ï)?…†GñmÚ&Ú&³å}_.Bª*Fp!ÉÑ\çè;g¤ýaD�mÔÑYP~¦¤d#˜Ž¨K«K;¶Â”åAîø#¢k£k¹8€9äT"¨Äp>ýTÝ ¢¢hI·cáÞÉÑÀÝ!)%)î'¿ÃÈýô‘Õ°oÌŽ@ÛË¢’ç°’‰ðn÷´¨{ûko†CíßÓ²ÈÂ�WgüÄÓ…xG×xÆ{;Þ`‡´Íhª j�"º$ ¤ÇÊ¡öÏlüîj[VTÅÌAJU˜na=7úϽ.U ÊHÖtˆL¼Ð}Ñr,±jÿžöªÉÊm¿e8â$� ÿÉd÷€óص)=â˜wIŸ–E G‰X´ñÏTB j{­=�/»ä“3(nÆÕ0Ÿ„›bÄ_·"]3{‰¶áÙ­‚ïÈ·‚1OsjPûVSkÏÁPߺcGX¢wÅ' Á¦5Ò÷”I@GÌ·Þ•¥„�W½k~˾ jÿÌFƒ½™üìþ áÝâuÚPŸjR÷¡¾aîÔýö‘R²ˆàªÎ÷ ePƒÚÏ6¢×F¤ûé˜Å V‚™…Oî‡/ÇGOpë™O¥qþ"ý¦êÔöVË<a°_í‘Q½0ûa‰ë¡ª|!ùéÓ‡›g®¾º}�*æ�´J} j{«Ró-cJëý¥tƒ[­/>0®%Êöæý­Í‘Œ%áû�¯Ž÷@í×´rbR¢›opCp|©¯›“9Ylí¥`{©=z„×ñ�ì}î2›o°¸AVä Q83êù>‘S_ÞüEX }U¡šØ¢‘þnçûiŸÖ¸ªït¤HUÁèv¬@¼�– ¹F~þ¤Z3†„:Þiޱ/™³›³_“e”e´a„©·zTœ�2E ü€Ñ$ :¤³2HA‘"ƒôƒôRr2ì‹saA:̇HA]ÆÜéÜéV€AßA_"u×U·/埔ïö‹¿Ê1ü¶·o=¼hò�~ÁV’Lx(À  Iš¯ÞëŒ4dé°é/|„²ë³H �j†‡€n¥ä{É÷^0£Ùxþˆ­7[o(ã}|¼P=é8Œ~=‡”¤ˆ��’o;¹é�ž5´ùhÐhþ·ŸÿžÍe�œv£™åèmŸ€(­}SÒ»Ý]¡îíß5ëÄôà]�¼vrl*kÕ‘T»MÑv¿x¶2% ×÷\:0”9›El´ñáüסµŸmX ,Å­ú¦W´2Yž¥ÎáVßþc¶aŠÂÓ—c‡nÚ ¯Il!¡s¹jPû� îïð„’\¼œ&†ïåÈä«i]¬jÂüT])­<ãÏŒº¿BçqRsy µ½Õ>–Æ&R¼¦ën¢²\”­8©õeÆT¼¡jÉ /xßÛ�ŸKô ��2ƒÚÞj}-vJkÊÞêVO¨f’3¼ÐH)îúO^°=ð’^­DŠg-vq9ý‚:Ô ö³-°ï–eMª:ç!±DC­Â#Fmþ¸‡ÿC.DÇ^ÓE˜”Ÿez;|eXB§jPÛk­‘Ðوٲ8|–L”ÌQºÂé'ù^š[öµ¦*Ó»&W=SË8æÕqLf0…š—Ïõ\ˆQÎ~‘6K8¡Øäy>%¡ênçB9ÈÜ.{­¬>.pÞ¥py±ñé©XºÜìK�‘KÆ…è�rmnv‡¯µ±‹„†à|å\èô×Ï…>t.ñv�«ªañ0qs·s¡ŒOkVUw’Ð ÔFEß·Ýê]Pó:ñè+ë=Ö{Ë�¶JOµLnéŒ`ÝùÒuêëÔÎþ˓˓´Y]5®¬ @²wÄš?-€Nz )=^W ´ö8ùqò$ÿmD«/A.hJÙå"hmŸ‰°þ1·^›æ €E…EÁ Ð Ö fñ뱡7HõJõ6ð6ð®õTS|[¿A�ç÷µ7_«Ùlô$!=€1Ö9[# ¥¿sÿÑ’è¶_Œ!~½T Öö=þ{| Š`et2Ú¼Q^Y^©cl¶h¶(Z‹jJòô‹Ó/hÿ XP²U²…‰o7±Sb`¦@–^–ÜOö¿A­‘„OPOk9Cz›?‹@Xj·s!Ô½ýý&<‚­›=ã²çéû8š(gV¦â\˜33/F_Ï!žVÎ3ðQ¡@S¨A h3g^×÷>'•¶ê‘¼¥_£/ŸÎ¬‚]ô"5ÆûÔôÅ ²Ü›Oxúùå± öÿ¯¥Œxd†a^=l@¼èâ�¾<„ß èû\)ìM[E§¦H«.Â�‹-j¿¯YUY„ÛgsŸ\bÑt˜‘Éx®ã‡Ýu@„‹†/h+[IyÝòì¼B*÷ê ÔöV[®&☜Ys�LJu8ÇJšäd‚ù›:#v u:x�(æ1)æl¨íý†ÍjtÂLÖ}.²¨RNYºÛü?Ãôg~fnE>‰à$ÉE2½E±·üc¯Y ¯!ÆP¿cæòºŽ‡X5%èŠÜššDvûŽÉü´f%p'æM^T÷Ô¶ËÌ%,d—‚æó++ŠGöE ¢ÛµãÇ´K}Ɍnj'ÊU½J½*€°ÞùXð÷ë¼¢iã[ë€Ô†ú¤TBšiЃD`Ü9öãVz^ïr%PšÈçÿE÷¨QFºfåL‚×z÷ •2•r@0�1�1Ÿæ¾ òº¼‚µ‚õ8éq’Yñ·YY h…�û¾H˜Í9'N@rRÇÒå�¬sHœJw(Ìñ¯ŸjpùìÇ‚ó[e“±eše‰zчیÁ‘?"ïAÞÍaÌaÌ~1T87“6’6NóßÕ¤¤aÙÎzÿNeK€øyóóÔoôòä¦fïÿ²wßñTþýÇ­�‘=²¾¢AFÈB‘H"’¬lŽYEÉÎNˆl!BÖ!ddfï=¢EŽ"dÝ]�Óuljôxüîûþ©Žç¯‡ë¿�?>o×õùôêñrVKZwŸÝn�žþ”ðŸÑñsFŒÍVãÕ/œS�ùu·ØtÐ­Ú ªIñϰ`µ ðŸYH–AÔ•îÛd�Ý|�ŽóHò¦�žRŸ²Ô }ƒMúÅíÖvÆ×g$š6 x�ǃê]ÞzÏ@2ØJ0QÈHóHó"™ ÍB[㘰;Dé€t,X–>, Y\f“ѨÒp §âCpìt}H÷ax¶ �èêêÏB¢™¹{=ØA¥Æ»úA˜Ÿ&S‘²$qÆáÕEúEú”-€Ò©Ò©‘Pá7 pàsd»]v»”._ÛšU„UD�hÍÏÙöx§ªÂ™�º^ààÍCÊîËìPç!rþîS…Cöª e9ëTÖ)ž&�½”³¿¢›¸›¸ÕE˜I˜é¬9*óì§O5`ˆûīū}¶_Ûz#ÊQÑ9h4äß÷D}{wý;áü~òüˆ’>E,ƒˆíöè¨kûq'º¡ÐÚ¼œš0Íxi5i¬]KÇæ�§Ñt§³cœ¸šSÉbØó—<Ýv~û,“ÅJ>•Fƶäà_Q~Œê§ËC‘$èGõ—9L�9WÃ^˜��è†nÿ×f8$ùЛìi $[2ÅãP¶Z²îÔ)—> `8IÝ®wí±.{lDžF‰nèö;4UqrØK§‘£=ν¤º§OZsAtDÊfðöp�­QÉÅ•�=š}«EewÝÐm§5â:• ò“ôdÓS¯Ž[„î½Å꣆góyl0oOaN›ÄP6Eº¡ÛïÐxKÔ¥OTîÊÔ*|3^Z7‘«8èH§ãr˜Bel¶AHé"~4'}SܺùˆÞ*ƒ1ȯ1“æ\dÁôÐ{xCSÜÛO~›[Eû§Õ㎖,ŒB‚Ûdy·ÚÛË똘¿OômÆüûþ,<–JàµÄÝUǦGçådPï…u(j{HyyápËYb˜ª?êÿîQ¿ñ@=¯ uŽpeb¡ñ9‘µÏsë÷ªE:Æó2œ<Ú½Rí2¾¨÷S£ÎÅØÚœÞÜœÁ¡'ѧœ�Ün.– ¼Ÿ ±÷ÁÉTÃZëEÙ€ªâ¨A’çÛgÛg™¯ß‡ä&ÝÕgšb þ‘³´³´l•C¤C¤yà†×H2 P`4›nYÿÓšCZ…ò¾ ¶¤´¤Lïy¯H6uăBt5¹:)±‘¸⊙0á�ðÀP88”k·ë�$ l l—›–›*´Ý£·Öp¦áL§;"çç,—«Ê-!¤ª´Á¦H¤KÞv%ò’SÔp‹ïÂãißœ°aÊÌËÌ$Šýø´ÒàW\é¼Ò™ Z[W[q@uO‰áë§Êå†�•�רõ­6J­Ìžl‡¶CQg¾Üð‹¢¢“ÏýGhjƒIä·›ù¢þ½àHÀ¯¸W¹c œ™´õP?þeþƲ`Ä�‹þü3ä¦o8Ÿˆéb®Ÿùò"g¾<›Ï|½¢²IË®žs[)íü¸ÝÚ~òõ–çuu�;£ÂUYO44^·;$¸lƒmƒí«‘&íNs´F­þ£ ³ ³Àž²³egcŒcÞ†šîŒ44Š#*é50¤5fÑÃrÂrBáÑs¾w)*ìAî¹´A ¬Ç‘ˆm–Ôw'-gpÙpÙ®VNKœ–`ÏÚU¢g„eÂ2ÛÛy“®0o­0¡0�Wl(âç:æ¸L)‡‘|`ÏÖDHªˆ˜U×iöÔïîÇŠI tZ��s3ñ4b“™ðIý RR:åå’�*T øšøšÂky1É1É߇­ç³ºÞ €ö#p{ ¸žö{/kT0Fϳ_ÎæQ¶%•Cmd»™/êÚf̧ëiL?ÅšìZ;#kÔùÞª‡nèö;´Á Á{žS"—ÞÇ)rÃN“±¸äÉi�)ôÐTî’ð Ô£JÌÉë@·�ß>ѳÒiFÇî*K–¬Ôâfö� >:›¿;�©�Ùg5†�×Kî°Ž¨§°tûß4Ä ¢�o¬Ú©ù ë%ª8ƒø½ýûã-sJÕNèxÐÂq‚¸ [%“袺mÕ–wãt]¯O[gQ0Ão 1½g±“îóýSšÂä¢2ƒ>­ƒVLø¡¦'‰7ÅTt_¢î;Žâ_ŽnŸæ÷àÆ1¬Õj`Ùnß‘õõ™wÔ•aäZ¢:7¾ÞB"(}`^T›c�c�æÍ˜�ýн<ù#›iÍÍ‘ûÅ‹36õ»/€Z†°³ùk€Â}•cHµ‚"¦ ZFKFËø>áÏ0�WÄ`.(Ñý‰+7¨áXt@wˆîP¨ °9°™²#>) '…“úñøñxpzsmíÅ1 ÞàDùŸÛÇ}®¼|`È‹T©QÅìð‰©Üû�<ÉûHãwQªÍê•A¢ ××ÊS)Ìýt¯…ì„ì„S›/…/…5ª4ÿŠ€ŠŠHHJA¥ØzF÷6²�¤S¨Ü¨ÜP÷Ô¦ÚÅÃ[Æ«( ÇêêÞ ÞnO�:8ØÉfu'pÅœ‹üÌþTØÁâ–;ã?è˜9/EãbPim²§æÛ|Oý°!ü1›½�iI˃½¶[ÛÙ_Ÿé2Þ¨îØ#!Tcxëu"@‚醠ºú¢²¢²Jq‡ª…éÞÕûì/dßeßÅÎTÏTï=ÄOú`K„1|Ž›õðŽ¿5Dj]�Ûš_ѧѧ±|#|±¿Ê�„÷áŽßt¢é“Þ?�Ö/†ssâG}å}åÖ'Ðý"Õ/ª_ÌFÍFó“îlMMLMŒ•õýíŸÓ9Gp§–01�Ô˧¼Œ43}-î”ITBù»ªð¼`r†˜½„½Ä°X"§PÎ/é5ï5÷¾��ˆ r¸è•á•a9Vêw­àZ�¥âzÇ”7ª©`5˜Ñ˜Ñ€ë©Œ¹žüj&—ô–‹íìi�ÇÙïn·§F]Û;é.–?¹É<ŸÔèaò¤é"x©ŸÄ-Jc2ÃS¢Ix�Eyí,='×?C%èö÷µ\#¥¥ØK† .BÍú*ãü“íÚ¾*²N¶ú-ä0çAæµ¼ÓÝLmè†n¿Ck3ö"®ä¸¾‡ÞæíáÄ+ó²§Úbµ—O fi¾^k†À•’ëoìF·?»Ý~oª¦%>CѪ}[>ñQ�t®ÜÝÛÚ¥ §Ï «¾]½×CÝ�¤�n_S¥ÏIôÀ|S/ÿÛÛ7oïgžÊÁ\’ל¬O¬5aé’…ÜUå­è†n;­MR%Ø7x]¤}iŠaðØøËðp™Ðfw§ùÞÀ 06’.Ç I?rŸÚÕ(u6"¯‘(Ú8.dì1Cv �Ûc»Ùêû*x,ƒCÚ牸–ØÝí)¬ûÝ-v˜j¬%Ð;×H¨ží�òßd6Á¿ùlb(î¢OZÿþóG_†&Ódknù½8›ÈùúLwéFño&ŠQÕK¯—mŠàŒÌõs!b±} ÆËG“Z²6ùáŒæŒÆÃò›ò›ªˆ¬ÜtaT.Ò0¸±0FŽ—; ]®Ui ¼ºúê*´—ùI�!7è@ÌB=¶Äy$n®ÞÈbÎWÙè"t1ƒ Ÿ"Ÿ‚ÉZ‡²{ŸæŸæ?202yÊÐokY\Y\á9ãŸkÒñöL†äV‘FÉN“éÊ MÆöíô¤‰�ûκèÄÕ 8d£æ©æyË­BÈóPlͯ˜�›�k<É$É$¹;Õ! ÖlÖìî†Jÿç”Ï)óyÖSÕÛ/ ž q�¸ü{mûÆ«vb‚ù`z¢å)X‰vÞ–ß ‚³ Ôµ½“ÎnÿÛÚ+]†;ïZð¯9¼áéêqWY3Y9-÷ õÀdÏã›X“ºJ‡I`Øèö÷5-eb¯JXÊ•9W}�Ƙ¶ÖÂïj*Š(?Þ=uš ËJwð  ™‹9ºí¬f}h-‚@º¸ŽZ7f’™˜YkZj8K?šËC¶0m·ÒP²¸Š·ÓøStÛY­R}Ͷ׻ߘìsíŠrëvø9>R;—2VoöæQMœl>ùF®C{ÐíÏi©�£Ï|·Ì1×®;ÖžRòºÇÄØ¨á+ÅîçK9QzîøaùT Í«èö÷µüª€%E†Ï3½n{^L„éô| …�¨våÁq}ü‰è Ž¢l_°Ý-,tC·�Öü<�¥Åqœ~l \>qBŠz÷¡ÿ¯{Xþ”fÃÐ6,z /P´Z«õ¹[6âÓ2êl‡H!•Ô¤ßX=?ㄪÎg»ÙÎSà]•·eb†ª¡ &\¯¶ÄZß¶t2�‘”‘Ôé®Ýݪ¡sr‘ìV?Š ‰ ©2ª˜©˜9I HÈ Ãhãt:™öûiV‚x«‘°%#9Èl‘9®\Ì´ÝÚÎýúŒÌêFwÓüqPA׫P)Ü|mÊ󇿂¿rÏÖÂç³09ð–¿ãG‘D‘Di¬.E.E+�€»ðS€'W‹)ƒrÜ&¥„'HAi×n€ €“ü€fæ–wµ§¤6­¦HZ×ÂAT™ïcÞÇÈ:÷ß IêŇý‹½ûާºý8nfïl%Bdf£È!EÉ^ÉÉÊIDºÍ"+#Ù*Ù²e…2O*Ç™É�‘›¾}¾çþ|ã4ôxô{”ûþ}<ÿ{=Îç¿ëŸë}y\ןV =¶ÀGh‹”j•�x€ŠÌŠL�ÀZåZå%*_'�åîÜ ÓžÓžo`ë/¿íìÕ³WqÎŒ.~n•ÇÂÇÀ%4Í\’2 CqÎQꦫ-W„?ëÑ`z3/�;ÄÏÞ“ÁÉà õ#nôÝè;&›$›$¨Ž‰B©Q©‘X´%X˜D˜·a#)ýÍÌd¦4 Ë Ëÿ{áïû±¬I4ï”Ó‡twämƒy’l5wÆ\Û?ó¾ Ô¶[Ö—tÙ›~¦Û&ã{,$nZ†ùÉÇ‹x!fÎ4C¤N†‡?ÝÏÓ5¨ýÎvJq¦|úYÁk,õྑd±â£+=;©ƒˆb°ÏpGܺǟc3JÊ¿˜5¨ýª&X &o”'}_ý]G*UqÕª¬™Ùðå#Í>ïRpvø¼Øç]Kxï"Ô öOmƒTüY”óL½È÷lú4µbqâæ¶¿â}¤®nÓ†3Cåì­`�bP4Bi2c˜{%9jGQG�ð%Wηx«�/·Ú+úfeb3�jN?L¹.“€ÂáÎó çpe5eµ=p’+’3Jpé~‰9˜98;w¯Å^ .:@°ra. +€��<Æ8¤!;�¦‘§(*bz¸òp…:îaÊеY�Ùõæ8�‘=«š!ÞM…µ¨€§›§›‹= )ª)ê´õPLvŸrŸrdGdJãü›o“ � Ep¿û¾Fº§ì€Z´±Œ©$24畇wƒñι0|v„·6 hI¶#·#×Ë.Ù½»„ûÃ�x;÷vîY™_™_ÿ;L¦IѮѮ™eNººì¡ofúLÉ ñz/b/s !mR¡Böa87P ùÁ¯d|«9æ=òí e¡,�¶™f)DÆî§|.9Û7ÄÍR…?;¬U]$ÏŽ®gÃàï·¿>N™;N®oôŽqÚÓû�­Övɧo*ê7[ª"Âäâ¹�=È@!Ò ¤ßa¤h¤X¬^[‰·¶ó’_3ÏÈ—‚QÁ¨D²L­L-Ï‹€ÜâQ@dÀHeXEä¿§Ð°R�ÈAKº6¹6¹m©?æŸ{ JíµÊ}$¤eA“Z—Hì¸S°Q´QNTÒTÒ(k7u‚¨Î;;‡ÂCáçtáo¿Í•ß•ñ4ÿÒ÷MLÃë&®Ú÷¡#œk‹EËñBâ×,QìÂýl‚"Ë®§€²•-“-‹=‚]¥Oyÿ#tktkž9"–ËÂï1í=~0ü4ª?%Œ(Œèý¹�F›7£? °ÃÙ¥µK \O-Lèõ”™ýÀ𸺨‡•ANM9ÕVs̵½�î{ü'¶ ý}�âdvkñRL«ë‹Ô›¤8jÙØj¥ûc¯ì¶£èՌº[\ µßצka>©NšÓ:é 4“¸-JŽä’‡ Ç_ÚQÉ!±|ú¼ñ8$²mŸCí×4×éh7JÄ>³Qö¤ô÷ 'e±+Œ´æïÀzÉìkvæU¯¬»xbÅ�¾„Ô¶[[Õ«_8Wи4¨l}+8‡±<dž‘•/q��vˆ‹Ip”£M�%5¤£jÿžFV>Î=¿§W!º›UzVÆ7©ÓâöIAæÊ6}fÊüÇXQN÷çü É µßÙFbfÙÈ…Ï7S  5{H"<]¤Õ#ž$‘u�îWd˜q�ô3þó¥·Õ¨AíŸÐÆ�2T«úP2vº)g´èéüp†Ã{}w²ËÙòdw9U®5ñp²2¨AíWµP×|¶àÒ°#ÚsìÒiœY¯BC`X1iº,ùwäí…RÏ·”›Xþ…‰ì‚Ô€&D’µÖ£}pÿ�%ºSñõ'|jËï:`qÍýU€ÆÔUÒ‹Ù“*qE&PƒÚ¯jZ we»:­ï·¯"p‹n*V˜´ gªŒ0XÌØ½6i3¾ÃûÞù¶5)Ô~_“2/w&oçÈ@TÏž¾ciwžÓ¶«�”n"vBïx6ƒ}~¾ÒÝjÿžÖÓíï"rrõÍ“÷½“ã6#û¢žm§wI~¦ÑïS3£�ì ånšÃ:{ɺµEžóœ6-ÑBt÷ްƒUÝç¯:²}óÞðœó½î… ×¥¤õ)Z·—DÊš±+™t²öˆ„Õ«Ÿ�ªãx#Èû•sZᯟÓ"•oIfºŒÐÖ Ó/muN[úé›dîÍ�bºHLðÈ�Þ�†aÉœ éÔóËç—íÖã°�qðs˜È…~Éf 3G ’ðD…Î> •›2ÞJ|�µZÑ4 èA"%„Rø³ÂGG/þÿr>â29¨Ñ‚fƒ ¼`ÒÚÏ #›Xäàçàw=Màâââî×Þ¯-jvdåۀבêmÍh¾/VDøšö<`wš·<½ï½T´›“¯»rD½êô™¼ªF¯¶&À 6v|ìøŸ�1—OùRþˆ;6wlJÈtžè<9äŒéT³5³µÄ€5Ë`ä`dúÙ�ÚLR 0'Ä×À×®§PZôzúÈcÑ3‚ 0 tx$J«a#³Õ9-æÚþÚ�áPû÷´lúXkŽ¥©P…ûý0±á³b쯻;WÌ ¢‘SúºÒztÞ/ á¯Ý*¡öÏl’·ýtÖ«œ˜Kݸ"5ªñ}n¡Î÷™(W§ÊÊÐwKîOSí=7ç8’ÖµOëjqò!ò`Šõ`s‘Èð W&¨ËD)àûÒ=®(¾=/[耔œª±€Ô¶[»¡Vzëdpn¿‚�pãL:i¦•d}¬–õð²];ÖjÀKMrwñEÜV¨Aí[MsäY.®îúe™‰ið-o^ƒW­É�÷Iˇ4üÁ]Æ+¦[³cfý"jÿÌÆJ°–Ñt}‘Ò·ôî•à:¿FvXÏ_·üX†º/Æ)óŽª~¾’Z5¨ýl£š°¢#bã’/\š�âºÙ‹#ÒZHIœ Ž2±¥º't!Z6ñm51Ô¶W{ pÛœH'ÁªAF�ŸVñÜhŒ¶xtÁýIÚÖ)SXD—×5æ8néK,–PÛ^ÍÊ‚¹T|nl]ü^ã<5�NOJDr[¼ë¥ëëk¯ø8qËb‰.›½FAí×´Jj:ªKoI£ CX,©íé=Ö)·Ó`Û©%$�uþE¿’·À¥`ž·HË…9ß·³LÞa«h4R\GóØn1d«ù~Ù§o®qnFÀ!6€ÉæÒFåê z†¥ZP…Ø\ã\#-e¤%¼²9a(®þ¥Å‹79ͺ̺øX-¤Ýéì¿EŠ ßT(ïò\4=5Ó¤'Ì„€ÍÍ÷í€„Ç �+;ƒ–õƋNj]Å]Åo�‡Ò~›™”™Tœ �Ì÷a?gðIŒÐ£ÉáÎöO• %R\ž§Õ7“vYúŒF� e5xÇ ˜¨˜h‰"î:’Ð<û#à8¢DÕ'Ì'L(“|Ú‹Ã/'“–ä�-Œ-´¬læ½E`yp}r}óìʶ‚€�õ¨i^U·Ó,çVgW·Ç×ÓƒŸž( :¸¿&Usß“{ÆïœÔç#”’Iq„åqVDúî"nY÷¿Ä–­ú`ï‡ýåÙ•è×Ï®–w‹rKWóq.�(ÊúRlµ¶Ë?}¥·ñÂȦt›�$9A|ÕZô ˆuuAÕ—,ö¶;òHêS¾d*i*I´®°®€¸¢“ô€ÙPvBJ=„ 0g'�†úØéR\oorŒÁ£žëq¾–}jiuKFC,öòÎ^FÑXYyª¡�B�z…΀°%ÒuÒuvRí¤ê2�ø6aa ·ãÑß÷t§³�üi€ó,O ×ó¤t´»§Zõ0¶ç>ÃúìEâÉÔ"À.e?Œ?äÊÊâ*ìvÛ�¨ÏªÏ*o#ª#ªS.Ç´ž”¯Ÿ¯_àúfB|I|É3z£‹Ív[Vþjøß{ Ò¿Íïœqï|+÷^¯àðx¼qøVgW˜kûw½ubKâ+•ÿŒ�€ÙYûÕ]ĚܳÐcÞ ‡?ø®]íÄ=-Ô*ëbH®%yjPûÙ¶C�»´ã¬­©ÁӤ5^Þ4Ž3„H®²Mš÷´ÈðV46ê…Ô~gÓ s+abP¨d½#Þþj¬kòÌŽÊ‚Ì/2;D_7Y½xØ…-ê¡sõ!Ô¶WûXž‘Æ8Áö²…ÙqQúX•€ÁÀiMŽ»dƒ5GU›ÅVÊÓi�áÇÆí ¶½ZOBcùt�®S óTFVP#£oؘª+qûn�2%ÑåÛ8Çî«JaC j?Û"z<kïê í”O³0(Úc… ó'¥`€±ñ×¾ L/ȶõŠ]R4.†Ô¶[{Byي˱4ö ½½;¼Ê£Kˆ‚a;½[öµ¦­Ò½|¢fªŽc$°“S¥?“ELÜs.ÄqââÜ®¸2©¥6O ˜(µ·š ­æÓû..=,t‹"2-Z˜{òø`[^Ê‘BêÕIë"ìˆÑHÄêÎ4K$¿lL4áWæB‡¾>Ò: Ú|� ž£`t¯‹�ýVs¡ŠOß^Ûl1(u¦S¦á‚(”F@Yð¹¹5¶áP«Š£~‡³¿TgYgYÍoÈoØþàt 0TèÓr»ù>8·Ÿ´DsWI�dñ=à{`º—n4AqóÝ;A'�WÑç]*¥è•TÛµÿ-s¸ÏÿAl1¾­9CÔœ[´?ö yã©�§·Þ"«žëËvœñæÍ…ÚïkNÕ±sDæ¹õݦT²ž‡¼ –f¥!‹\ÏÑ8ýÁñðŒú]‘¥~¨m¯¶ÐÐKÖ=ãA-‰h0ÏP®œF Õþm½¨• ?£.›V¤>§W8Ô¶#à±â³;æ7WüèÄiøKû�¡Ý?ónE�ôÍqvz“9ùw’#=â­¾m´æ‡]ö0›I#>l æ¿Ö·Ä¨ž\LwjØ„ÑÍßðíWkT,zôЬtc£o:]·ÞváGt¨Á†sÓ}�¹ÔùY r]OÙjð ß~‡&\l¤”ª€$}l’?ÔGwÇåhwžg1ó`У¶›z%qô8y5î\,Y¨ÝìÃ&��DiÏ'ªÉk¾åÎÅà_Ö„¿XIR¯Œkƒ×r$… ‰EyЃòòšJŠ·>��­Ík-¾wèú¡ën̆ʆÊqäTLY< š��b‰bÖ¨LË…b}N‘ ´\º64y¿ŒÑGñá(T[  ¶/:†emÁmó\Ï Ì"ÌJw ÐÉ  i b bcScS©±^ÌQæjO<·ü˜¿‘¯š1 ~Ö†ð66gn¬žMÛƒÕ¨*À¾�hR¿ PdÖbÖ*áå Šïqˆûô:ô:ïgIjHj péíD× kÚ{ý6Â-á–»H—+³XI° IA�;ó,8.#ƒyÖ³u¶b.’Fs½™/îß ‰\�¬FÔ¡�q 4:øiÆsA,.èxؾôöCüO˜.Ÿù cg¾B«Ï|­Äߌ\°mŒˆQHö�Óƒ­··_Ö`,V"è~‘ˆ+µœÊ¨žjÎSSÓêkµÐ\„:*æn§ÿ=ö÷ìï=æ1“˜ÉdW€Ó©@ì&€öÙU9@Ã1Ò,g¤e5èx-ÜîWÌi[Ô7SèšHuñyOf`ù“Ù1¢é»Œ¡1¡1#¢�vözÐÙ)ä"r13%3¥B·’m**VQåÐò–Mé‚ê<(uËÊ�ä}ç.T"«ô7¥£N;Ûéœ;kwÖ$°äù‡«9ÿŒœÁœA;O.:.:k7\¾-þþ»ü®©ÄæÇæ×.-‡ XÉ%�d�N@'€û‰çëç²zÅ,‚ߨŸ»ÿô £ª‰y½™/îÞÞþŒ¥µ:}ï-Ž4Ô5›×ï ê-ð ß~‡¶(6 <*m8^˜¬-hwˆŽÝ/WݤO«u ’ZB.8Âb³DjVn¾ýúm’•ƒÅ8>‰‘&�4„*EŠO=£ÈÝÑ ¥f" ©¼Þt+Û.ßþ7m\a|¼A¤¯Ü§ö‡!c²UEA Ï�3Yp³KïMH|˜/J�M£1Ç7|[«-P�¼¶ñ±ÜжaÖr$¯Ž²�qú•ÞóýSšfN—Ír«—IBìîš'©ÞôÌ«pÏ|Éo¯œçmÍ皹Ŏ¬/^ïÜñâËtÐJqˆV/\¯$–»+òRÚ rœ†ô@z6IÊèå‘êÊw8~O-�Ž®@Ð"h‡Å¦ÈiµíX�¤ÄX@3,A KÅÃEDá`LfL¶ÿ¼Ålf�F sˆ/4"kWniâÁ‹[€‘m#Û¬ndÞȬì;ï’ÏãäŒ�Œ�¤ˆãy½¶ÆøÆøl[Ëë?f—Ö)({ŒUð4¯-lÖX7ÕP5çÙë¿q�yõ¹ `ëÞÃèfÒâÅè}^?ø˜™s?}<}¼6®‚ayù‘Ïôg>q-ÇO¸‹ãˆ(E”âž©o�6ÊÆÖõ—2ä÷¡ÑïDÖ;Sã΀:ø^s� ŠX<µ‡¾HÈÎ]å:_a]Ðñ;f޾óñdŒ&«œ©EV?S+Œ�»B­¦üIì~�+Dex½½ýòËšÒÓ+qvñÄõ™x¹Ù; µ%J$6‹‡%Þ𪼠Ùqñ³ÙÐ÷ÂHÂH0Î^Þ^Þ.ƒW;1€ðÉGe‰•0ü Äè+òìó ø‹d d Ó:=a˜îÌ(ÓÉâ· ñQ´*VdúnÝámS€�ë!׋íó¶ó¶Ítì Æ› ›Š…®…®ÏÊ�vk‹„FBmSçÔlD6Ÿ³©Ð%…UGúö9`©ŸL»,lûh¢[ï›»ý¢ªò¿…ŽàŽà›}ƒ Óò¹?c8~8> Z¦W¦Ç@„뀿¨¿è¢®†Artr´¤Ûr�+ñž4JeGfG‚û A…ÝOa¯*0ó …nî[}û¹æÖ¼/ Û*ä.jÖséÌΞBdCw@™ªtæg.Õ2M«ô¤À·?»DŽ8%D˜È~`¨‡h¦Þ/aQÎQ¿…ÏÒèÖþÓJÿê®%¾ý}M³lVj aQB¥f9ñ¥Ë¹Û¦…��9^4ƒüO\ŒíÒåó›J_Öã¾ýj Øâþ*Ĺsk•=�U†í§în„Äjo§]ö$‰=%e£ü’0\:}ï &›(ÜÙD”æ‰T™ê~ ÛÀt¼ù‚�ëÍ&p?¯²�½³ ª³iÏ<7Ì}s¸Ë˜i¸ãÆK)¬¾rú‡ÛFÃV™Mì[}6ñô¹NzS©�¸RN.ËtyÏz³‰’/kÄëV*²8í‚˺\l=h®x¸ ´%x²xZ/ébÞ™€±‹ÜǾÇ0Ì0üùŒöcíÇþý#ù6‡иÐ 5Óè@@ ±¤¢)Ÿý£œ½—½W'÷mMžš/+h¤báH(2DË £´)HÌm  Û¤Ûë ØV¹­r»¸k=1O1O!ï&ïö�‹êÎÚ®F_�¾«uïÇ&濾ÍÍ:v`]×n\ÂÊ_z$;}rœîôÍÝ›L”‚r)S'I'I …·çhŒâÊFò•ä+NwŠ ‹ mnãš{êêêz};9ªUÇÓ½\2b¥…DÀHUƒvƒö?{ûëw¼P¾ôÔ3ÔJvM4ÐÜãëÍ&p÷ö¯twûßÖÞš³½«#ßîì5$ÔÜÕ Ó[:¹(¯~û/¦5ÛcNpT€Æî1¾ý}ÍD—*iwÏ᣿e`uBƒ§‹Ô» >miÝ ŠÑc”™®’,||bŽ~§ðí×j.»—â(• ÑL¢d ÄdL©;™È2~O ZþCŠ£]i²za->ýÙøök5¤Ñ’kÛ¥7¶tÓ¨EÝúcÜBGDhÝü—¸k{�IžŠ¨jröxH¶âÛŸÓ¼·™¹pŠpÉã¼tôhH̾kÛ«O\Vâö*¹§?rP@ó�“ñi|ûûÚ³Òðym¶„`�¶‹Ôe×÷¾¾mB<^î/DâÕ›1¹IƒD[­=Òí¾áÛ¯Ö®G옼ëP†•îË%&ž»‚»ÿ¿ÞaùSÚ9¶†nÞö™r“úIú‹qÄã“ ¸³� SÝÞ…1”ÐöÜf·o¬7ÛA~Ys‰m%Ø›>\ìË‘6‚ÔöƒnÃ89÷H˜m?g°³œ+ñ´ð÷‚ûƒû…|::ÞøÚîLíLDé“W¹Qœ X)†-A£ƒ)c)cn²š/¸^6W�¶‹1AAVÍ^BXTlŠÏf(äÀ“RÓHÀì‘Ù#Û¢ígAû䌒�’‰‰›‡ªØÖvÎýœû¼b¤Ð�‰’^†ÝØåaé[²^SÆRU,Áì У2üFäx@¶jàô¡zßzß�¥‡mòŽü™?òвP+EN]N=Gµˆ=‡=‡®Öû°wfï̶Ú.—á°R�œésÓç&îÜÒÕesœî¢v¥C®Y(åÙõæ–¸ßÛ«}^gö`f«—´ÚGZ£ÿüüádC‚0”p-¼ÌFé¦ûÜ*sK±Õç–wQ³¶us\>¤-öši9Ö~ëííÒ/kºÊV’ÔˆŠÄÕP´\óÐ-[]ÏUr9Œ F. ßýrÚÆiJþ{Í7›o¶2MÖNÖÞ¼�Vʨ4H—xIÓªÖý’±ÒKH$@JÒ“Þ“ÞG‚dtÄ\‰Ý@�/·ƒ‚´ÄXL'œK�Ž¿„ù…ù¡Ÿü[8:ÒJŽÝŸ.¥.¥V©U©ÝÆF¶¶šâšb‰àNÒÓmáR¡”m6³¼/Ù¹8n˜ÖFb+¹ 'ßÂ?Å«5FUHEÞ…ovëhÝt�v¢™Æ&†BŸŠaéÁÛ”FÇøù4ÈM qžçvx&Ò–óNšÞè«ïÝñºã• óøàñ�d7€àH>`~ �WäåßÒ €´'å`9 >Ú ݧ‘¦‘ù4ɨ®óÞ¤zJé³€ÕÀ»Aµ§îU! ’ é ¡Hècºq�áóùùŒèŒèz—>�µ1Á˜`�Œ� ÿ‰Çóü}€{¤X‚%¡}ÓXWÕZ[²ÐÔ3VßÐj¾CîÒìþ{÷Že7pÜÌ^ÙÜÖMF”-îŒJe•¬d”Œ�BÙô�•²EöÈ !#²"ä&ÙQFV$Ù¥÷¹Žû¹Þ¸:ŽÞ£<Ï{ùü÷=ŽË_ç?çïä<«�´…s§H�‰EëüŒ æ fÄÇ Ì ÌJgt6£R+R+ó5p½U½Õ#‰›Í‡nõé0àRa´R´Òÿ¾‰ðÏýX‰4²}Ëiƒ{;xۤ܈¶›;£¯í_yßj;¿­è"®r¤öš§w°EHÇÍH36}vÀ ¾`Ky>œsðdhh½(ÏÞ¨AíO¶Sgì Ëg: G1ÔF’ÄJäVû¨vDar‡EgíÏ3#Þ¿T5¨ý®&X(vX¿@2[í}-<…¢d€b]æÂ…×®²O=ß§\ÁÚåSØÅéþ?ËjPû·¶!Šý÷ÔÉçú‘‹,º”�ÅâÄ�-~ÇûHݽF †Ãål�J=Šê¡J•ÿêmD™JrÉ}�E—o¿öÎ_*{°Ý^©ñïoX_n•dü©]´Ðf³$ h;8-È¥}Á~Á^¡Œ¼W£ÆÆ_/Oeðk.Â.Âm7ªªT>˜^¦w,�Ö%¦òiø½ïÜCù ]0 â?ÉÆÃÆs{>¸,© �”ˆ§Û’Y­õ@ñxPZtSÑÉpUõª* Á/Á�.vt�ÙÑÜÑ|-|-|¾¹Ñ÷å æ w ÿ±x¦óØÓ7Çw£¬JÍ{b¡œl:9~H|Ušë‹™.Å¢�D€ÄµSX§°8¦éüŸ=Ëyô3ppØÃÃÔn¢KΠh¤hÔò•Ô«Ò«B¼Ý¬§x«1.@�€a‡aú@Bò\Åq’µ×ù75‘kÞ¥o¶› ß#ÿìèÃØM‹Œ ÉΧ<�l­âæõ(B;Žèz¨‰XÒamšüó6¢à·çOxn-v¤ Lë7¤å-rZl·¶Ÿ÷ÕQoUºX€Î›o3'nÑ97GPíý}úû°,2Ùôгr²¦‰¾†”CÊ%vËÁä`ZÞòSå&@nÉàÜ"`½Ø)E7…Jä»>ï7ïGW�.b±¼D>ibž%®@Q…ù šZÎÒÒáÅ€>Ž>:m�ÓT¸l¸,ÞÞ€ÂUÑáï£BP!Ôƒô,$„úÀK;À´ Šœs�R) åsÎhYµ±ŸÚ öoGN gÖ*Éž­?[/9ò¤ µ×(ògd9f9VÀV™W™©¡kH?Áy‚S­-»ôŒß¿qÛÍ´�mõF0áå?è?®§ÔzÊÈÍÑ»öFMÔÅìl^M)Åvsôµ½“î{ü7¶ ]ÎFqËOñðÖí/¶›¤„c©æbª–ñD%üÅjIÖ¯�‘YRµ?×fKy¦ØhÌh§5PNb·È[“Š޼°¤�)FbxúºãÀ%r-žCí÷4»™HGr{Î clwƒh³Š&e0+ô5ç¥úI¬j¨ ªW7®ºaÄû¿€ÔvZ[?S·p©°qyHñb8F`}yž9=_Â'>êa& Á1xÛXJp{9Ôþ;�¤ü ÷<{ÿÑÈAL&ÉYi¯»�&±'+ÛtÉûpë]0"l²ç¼‹H µ?ÙF¢fYH…/?¥:‹Ôè# s»*©Öt—¤wŒçÝÛ+oƒ/ÜÍ ¡µC£{#GW­äI†Oßé¨x¯°åŒö_C¸ûk’ì|y’ó!%®Oâ¡$¡µßÕBìî³–Ý’Õšc“LÝsïUH°FTªì~âa+¡”Ë-åçL?bÞFvC j@"ºñ©O׈gß2Í©ø:Ïš#‡™÷é‡ù9¿òUŸò vÈ�<W|jPû]M³!S¦»óbvɳu{ìâðcç […3Ž�Й¼µ=×f œÈ»h{‘j®4.·%O·¯ž=�hjyy�EF1ÍDÌÄå\:«û÷½±�ÎÆPûï´¾^Ÿ«"'×§›û'ß\1áä�èØIï’üJ£åT½@{{ „ûÉÆy§‹­-Ç­ÚÑÏiSLDYwݨê½ìaÍ€³Ý9-ú{ÝwަÛ-ß]«KÖŒ]yø³’A;—Ÿ]äV�ÚyшZø´ ï7Îi…¿}Nûˆ/›S™¾4ìå©‚4YÜéïoœÐ~¼™“yÐUéoÖj j ‘ë=­ž¦žæ¥¿¨Ì9ÿÃ1³ž¯…-‡-kï‰2Œ2<‘p=ŸèíXȉž¬†( < úîÕ†Õ†ÏÉʼnÉó ¹>³ …Áa”ëŸCüyô‘ÆÏŒŸ+ëö£ö£²7'AšŠžž4i4i�U7}Ž&ަ%±?Ý�Uh¯ N•¢¢4°Ò% @�1Ÿøìg6­üpþ ¯ç™ƒ�Ü€4eå"ÂF=²Ð˜Ÿ‘ÀŸÀoϺ"±"‘å‚ÎÖ6àRÀ¥lÉ, ?a?a;Õ͘ ¶bÑôï59`r\O!Ô¨õôy¯I߈=™ÞÍ+�D©ÕÍ¥·;§E_Ûߺ3jÿ�–Ks¾<r4{PJìõÚ¬Ûhoçª1^$rJWGò �{×±"…QÇJ¨ý;"Ö[{£Ê†±Ì‘ë¶z5®gtÏå~Ù‰r5Š{麎Iƒ©Jý—æ¬GRÛ¡ößiÝ-6ž. 1îü,WüéÞ¡Šxµ=Gq½hê+Jb‡ãeŠ® S5&PƒÚNkAªeÑ'ó�Z 7¾M#Î0CÔÅhÚì~½bù cÝ÷…©³øö[&"¨Aí{Mc¤#[gã/{ò‡çŒ£ÝyϾjMªç 3N ¹�œ0*qÎjŒ"KèZ¤L»jB¨í¬–ÃkL }ǬAZp?õ±KcQZâ‘…Ù“Ô­SFRaÝ×ýs°Ó–a¦PÛYÍÌ„±L|WÁàbÉ¢úåÝxÚ}ÉaImñvNþŸ^ñÁ鱯¸^í�Úïi•»i(œÞGâÃLw[Ѻ\Ù ÚIo€í¤vçIçGÚÕ‚Þàˆ£Æ¹qK1\èó}§ÁѸ¸�yöÏ 0öˤ­ÉÛÍ÷›�ÿÝÚjøeÐ tþœ›aðƒ÷Y'�Hhùiù±L¥ý–IýÔVÞw¾6¾8¾X"ŒAƒAƒË€‰Ô[¥#é%ƒO—aUg Èg7€˜™ }}¦<²[é³AŠ¡ ~ GTY(ƳÍñ-Y 6 66­­[Ulf;HXoPjPJ-^-þv�£ü÷ñ×ó×g=ÇYù1±ÌìSj€Ñ –›ï’5QR&¹ˆßj'G|1plqÀ!3_,_,fbE{€ÙLïgHëJë^{ÕÃ×ÃÇ4ƒÎË!L$LDö$×ùχ>BÈoÖ!²•É€Öh2c2ýìÊ¢ŸIÎq/qAU·Íìžíήbßl¤6«ðÔ¤hp6e¼·Q›“O"Â>*|kUdàJ¦}´éë˜2UkVÞ˜_Ÿ]‰~ûì 1—Ì0]5×:_úr¯Í̲íÖöÓ¿¿1}°Õºødt6˜›Q•€–8u` H£æžæ' ÍÒ™0žnÍÎYø×JJœËøTùT§Â‰6ìl€i€@¶�En@ãÚ¼*Ê®¥û~ !¯Œ°Œ°ÂÛi#kíþî ×"K(_³2eÏ•©X»qV€ìˆìH¶€ ˆÊÓÕÂç§æ§š÷7ïYâéø¾®']O^:Æ”þ˜§lŸj? � …õE £&Êõ^¸IH°Ç-·æ/9"FqÉnq¾ý¾ý�-Ê}%Ê8?Ô̔,Ãç]ì»XÝtoMͰͰ³ñ„ã„ãœâØÌ%~+Šy@¸mŠdŠ$¸ž$ÿy›3Þ6=ër+7ÇõÀÐø³8o¶;»B_Ûê­ "¯ƒ÷;èðmµ^eÚ:Ô’lÀ[¡~域G'öi¡V™«z¤šˆKPƒÚ¯¶]jÜeíç-ŒÎæp?Éœ!®¹¾oºñ ½o0b}ŸeÒ¸¯åðšû1ý~¨AíO6Í[Ž¥ tG+™ÅŸ½ïž4ÜUC^ÄØ•!Ø.:úĬëA7¦¨‹¶Ç¨í¬ö¹ünX*ýË‹Fë%ÉUüg_žÖ€g’ ÕÈ)=[µWœI½zâ�%ÔvVëk³W_9 cSÊ8•~/ ƒ†ÞëÖ¸’á3Ví‡ò¢+±XÊ ÙJ1¡µ_ma}nÖ�3u„¨§šœ-f7CÞò!¦~I'ŲÿqyZa®Åõ˜¥ác%PƒÚNkMä®f\Öe1Ó´‡h�ª\º…ÈèvÒ»eßjZÇ{WTj¦já#7;÷Ì€‰‰Û¢Ï…à*sÌq»¤SÊÌ› ȵ¶› ­çÒzêß\Z~PäA`T¼0×T/p—¥ ¯Çšìà«“‹1ÃÆT�žöëT©¦Èý2Q‘øß˜ øö\ÈwoRsmoÒímº)Nø±íæB-ÀïõÞjÁ™hÝ;üÍ2VA:ìCO@½q½qG�é<›ß~º=MÏzçk & &ïš–š–:F£4k€{´€ò^�«Èq€í\T*ÊŒ²m)HbàtôéèY?ýñ�Ø" b¼T#µÇ‡0o˜ãÊJR`0s0SkÀŽ`GTFä‚(OPaRa’2�2<5'�ü¾ ª ª=°¤ŠëOw%þ^;Ê�lÅê¦]Z0=Šâ=÷Œ¥Õøw^�_ù›÷À�5k±k±÷.-Fñ¼{ù3ÒüÓüÝ¢&è&èÒXÑ]/„åÀrxˆs¨p¨˜ Ûlpj+w+ÀÝh5û¿ý³žþ¹ƒúL)Ùcͬ6 šëˆ\2iùíæBèkûÿúNxwÞˆµ{ú¾^9$1Å»îÕà,+ÀrÅàÃîë¡bmÛ+$¡ùZ*ÌjPÚ”ÄDCo3�‚M�œÛùÇçU³¹t"ñJžf&L*WÑ8•Š’õ#TwAíÿ_Ëx=à“S‚{�Ú˜.bÎ1Òsaˆ´ñTp³zô;dÕs]™vC÷aÞ|¨ý¹fS}%Æ!O„ž[×qêø½fƒ¼.Ba&J’Ûyê§×¬�¼UËY„ÚÎj Ïâ£eœÓs‰îηQ äO±zW'jf¾Ÿ^‡Eóö!Ü=ò\¡xPÛù o¯Ÿå ’G*§^X½f•ø•w+ )%Ç)•ÙhÏÍ~�™Ø[lê>‚¾�‰õ º†ŒêÙÝÜ/²/i¸ºÝ>¦õïoòý·ê÷¨½‹Îdh³†× C¢ «eded�n¶¾‘„¯kÉ ¬¾†ËƒËƒ¡Óx§ñÎ]^@]å¨6`sº7mø) × lÅÙh5 TW*?!?QŠéé‰OÐ`Ф—YÓL8£rv0l¥ü¾…¶ëÙïÌÕ¿•’Õp%ÂÎ�Bùdâˆ Ûø R§õ…sv¢bàѼùGó� ßßåpÆögÀ©áÔJËø”ø” èDrc­b­´CLææ¦•7«z±U-€²³>¢>}�^™ÞÒÐg$t‹¯ñÈÕ•íöè÷ŠˆØ ¥>R3en·klU½žu0°i_Úc̰aÿRç˜È<V‡¨ˆÒÊ`ºÂ»æGߨ£K|{�ÞSÉû>„S«9gíNS¤Évk» ˜1Øn…8…ÎHv3þZP¹C"HT»+¤+$Ÿ®9žÆhþ bÜ5ùk‰õ‰õ°ÀÝv»í†“êT*€jE€Rs�°ÀǹL¥Õ…# Ä?v`ì@ä_µ«A$*Å —ȇpÁìIe)Ïÿaï¾ã©nÿŽ;ö–=Ë! •ÂMVv*!e“‘n )ûØ#‘QF¶„Œ:èÙ{$3IfdTÆ·Ïïô¹ã”ôx|ÇOu<ÿ{=\ÿ]þ¸Þι®T$ô–7@�D�„¥ æ$椘"&êJ‰‰×ƒéÁ”/�=Ý\nEnͱV—;Eï�[ÞðYCélTì+GÙ]óôˆdKv ›ùW¾E“»rRso¼ÞxU-˜+‰QŸ±ù§vžÚ¹ü^þ½|º…R�R�;FWøTùT�o®×ؾQû$ ؾĹÄùŸw¢¾|vóëžWUat5Å uìsÑ[�ÑÑ÷öÿâMLÃ4 µú¹4B¬øÕÕúôémáˆáàE©túG�¡œXrFáyH6³î|ª»˜¶ýÛ‚R.;Õd:%Ç'Ç Ú芿hïïf»#‘,6«[ŸÇÊ8� 7»æihÀ4Lûw›Y¿øí;þ”Cd9R¨3Ã9j(¹=é„Suæ^b¹È{Õ»mË2aTé4˜†i¿BÓ–¦²¨w<ÔíÚ³ÃDùˆíFc‰²wäûo¯Ñª&>¡¼ÿ~Ì€öÊULôíÖȪ™´^Sa¦œž|%ea¶Ó=†=<à �ÝÂp_yQ^«LÿZêFLô_¡ <Ñ•O’Câe½A<ˆÎWïsb2vã¥Ö"·x_'zò4aÜ~æÆÄÿt �t/³`Q[ƒîÈ;Íñ>{çš¾x¶Ÿø2·Š J¿Y‹?„x´4ÄÚª"°ÙÙ^ÍøüEà÷I¿Ì˜€ß+N •¹±êÔx_ÃIU ý](IÇ’Ö;4FK¼ÍTÈ,´ƒÐÿw�þôûÊÐç^/5”³�Ú”ÛŽk—P·¿4_TÊÚÏoØ#ß&£ØŽþ>5ú\,3wû±J«.I®*«·ëVs±ÆÏk$6"]2]Cg¾áGÇ$NI!*#%×$×ÜwŠÖ#…Œ˜¼è©Éw~'N ÷WóWk“DÇ G*‚Ī{Ì�LÝÔÃP ¢Oõ@=uƒ ƒ )"47Æìöö‚†造$sŠ(°Èƒ¤Z�º/ÉÉ� oμ9s­þëet#åŠåŠ—/._¤»åž¹9®t®ô'Õ/m~¬¤—ÍòC;àè1fj'lˆ,JœÓ‡/«Ëª6Ã_­žtÙUYÈ _¢_ Ÿ‘„{§Ý”ÿãªãªˆ‘N‚N7ºzärGýÕê0Þ0õêz7I7ºa@FÑhÒh¢Ï|ùŠOKJN” 2,U¥PÛjæ‹þ÷‚+S|Á³ÒûåÑ {o]©�‹×–E¢}N ½£²|³?ç° dýÌW5óåÿþÌ×s²WÏȆ©<ô€÷½‚n<±­övÓç5Ó¦½ßj†®Ýs=îf��Úlˆ;ïVÞ­ú$ÿUg®†ˆ‚ ë·ØpØpRw;y;y{�²yjx Ýÿ‡èm:) @±Þ %›RçH0…x€x€ah©èr=Õ�"g„ˆw™Ô…�ÌZÿˆë€Cå³W€Ý»5ÂxJš@7Ý„å„å3>f\ŒÙѸ¹¶œ¶œ,²•Ó¢äðÇ�i¡Ð0{×D´¢ôžêöø;þ]îøWš¾ÏQ¢ºe..Î…£¥Xuí³?Ã}Õ}õxˆµµéte÷‘Ȉil«É„ˆ„&üõRwn4©ÐêÔ±Ó±÷×—Ïe ‰ÄŸõíUµ»ÿÀ†Ö±¦�q«™/úÞÞUÈÔÝ�q0†=^óNÖ1UÜrÓ0íWh+"¯E"}'%tÆ‚KÕù,”)ÙÜ T †�wÓ#ÉEe|CÎÒˆ&å´cÚöosÌìLúq xe)²H>¨·|è¡÷…D¬mÐr:¬¿z¾ˆö˜‡�0íÓfäffZ‡Ÿ¹4}dסMh²˜28ÄßÚט“ä|XˤýÜ‘W}QÔ„“•X³'z`Ó;KÀsGóç5¢£Í<Ü#‡. ±žën�›ÍaÐŽ*×y×ùºÔÈûRãpÊ>µ‹ß"zAôâFe¡h¡¨�1À]eg @?0þQ¤?ï*à° ÿc"¯H,6ˆ0ˆ°|ß!ù1’� ß]+ Ý›õî(µ×¥bV£<6<6^WüúŸÑ:üCÓî÷%%íåŸOÝk2k2 QöÂ�iïraœ~ ˜‚¢dîîɾ‡"<#jkj‰„ÕB¾š&×4½ ÷¸Bx…p�õ+ÿ@² +?++Ç»H¨Hh´ÝÁÚ©„©„�̶‡âÅY¤×‹Jß(2�eç[î[Ž~¦Ž�l“¾Õ,Ù-ÙýÏ•ªƒ8áCCtËtË¡˜ÔÍyìòØuèÞ¡‹#:kàE¡Dæë¬Ä4 ìçšF&)„3|UPøW5C7÷VDWDע䣬¬?c"z"ºó4VV™ :ãÌyÙyY²w’ñM‡ëzè7ÂSìtLA¤ ÀýTF†ÚOAuÕŸÎ.—^q`páøpc«35úÞÞNo±üÎM©|âìˬ¾ô�Äõ¦É|’ôçßñ?ѧ-Ǧ¹|Œy?Ó�ÝÖýOŸ`ÚŸ×òa'«8ŸÌŽë¹‰7™j�M´j©¸Ø›6SY¸öA£Ï(w±¶b¦ý ­qØÜ� ¹÷*9³ÝoÒ;ãKËî=\c¤ØW”«?ºÖÄX|2¥ö¦ýÞÍ+tÜ:>üŒ�ô;êC/µ¤ûO™òUox"–”�h�­FvSÅÕ%›bڟ״i¤ó’¼!�ãkÕªqü v.ð#ûò)F÷³çØê[dÈñµWV´`¦m·6A{Ï¡ÎïrC½%Ö¹Ló�e¢ß{;-ðn¸ðEq˜B$X"ã`†>›SÓK’l5÷~GÉ]Äç½Õlýó*l}ý†¤>qz:ÐÛözZã[‘è­Ýcv­–Ñ>Ö3ô�Ù„Ð÷gç öŸÒü4|iߨâäÞЧ[Í&Z?¯©�ØHÖ�ͱõ^Ý 6«S€N̦ù¥ùÑÆÞ’N£÷²ÒÝi"ü­v«v«™¼øèøè²b@ 3±.`� �?ÓÚ^`]V–�bÈ¡ŠºR+e'eGHÁæ<‡gÉr =ô”Ikf‡r9ÀË_”�øÀkÁkáÈ#€ – V‹Gk#ˆZÎgÀ3Æ3¾nA ¾¹¬ ¬ Ý\Þó=ò—¼. Å©ö ñ„$Êl]ÕŽþŒñNmú¯,ÏGÓ†ü\llòŒäÚz�ú³i³iâUMMt#èªöíú(kÈv#솄Þzsá,ã;â;þÙÛ_¾ãUóú5”'#Ɇ\Þ¢�°àôV³ ô½½�înÿÓÚ+Ÿ·Í„».;¾áïìïöÔZ;¿r(N56�{¢;Ó{Âë$/……¦ýyÍ@“Ìi‘zanêÝßzÍVüm5�º„f&ÑdÔ4q®½�ˆ•ÛELÛ^ÍvßZ4±Bés:aüø (Ô`Z~ Û4JQ:ÑÉþi­ .—‘‡˜¶½Rw;ǿלr¡fE³å'ñ ÁWÜÊØý9›†ôq*©í¼*Ö�i¿OKë˜�-º_„¬]uâ5œ<é)tsWƒ^ <§c±`ªâ„¯ZšµþߘöçµÂÊàOê,ñ¾G{<È«^Gìð�5À™yçÇuÊœ#=Š«®ò"ôŠ;6¦aÚvk×}CþJOÜ«œyN³âµœ<W2ß¾ÿ¯wX~—fÇÒ: Éý"Dò™AË•G4ÎÌÜ2úlB(»×cˆ·m 9MG%o«ÙNÛç5„ÎѼXT@×l±^‚HŸah7]þTþÔ%?ÛÑÊð�;ÈÒnßz�ÿ¿KP 8»2ê à‚Z»¹#¯ft/E1Ì?t$ù÷üñùãjx•Ëc*.‚ a$ó ×3m¼(‹šrÉUT­;�YÈ,ê-Æ`Æ`õ®è;i6i¶Q°Q0‘†¸Þæ~?3…ºª{eÿì?#àN9Jö.÷£=(‰'bÂBê5ô¡Â_í ¬MØC¨´M J ÊüKb™À±ìþÏ0­6­î¿{/ï^c:›…,XÌp0=‘I‘IñãÊz‘ Q&š�¨8¨8Ðç–ö¶4Ñš+êµrÔÆÄîÒ[Í-Ñ¿·×TR�`¼ÊÈÒ"vN¯Q»ÄéX¢V{�@¢ &ÛáÃwæ–"ߟ[>¼¶VqÿÐÂZW-XÎBÔV{»ýóeÈFËRvcèDX×Ó> J‚c€¸Ê%5%5ŸôÃáÉÐÂ^õ¡¨o¥;JG/ÄÄT¡ Ȱàà7¦ƒ;°Õ�jIQ ¯Ž¼Ñáî5Ük¸¯uP,ù�S8ÈeêU螸îŠ`öȵ©ë*î€vÒvRËÀs�ç;¡bK š•Zh-4¶2¶Òg¢ws/«_Vë“ÆüØ-ºëúwÚŠ(Lò¯Ëk Pšó>óñÇÕb¾"7c¿d€8ðXòXòCõ/L úgÎZQšRš:1ˆN°c¤k¤‹W)ƒlõÒꥺóë�æÙˆ”ÐtéYú³tp?ÅP¹?š!],ˆÜÁ¯MïܼÕÜ}oo§»àÿm`Þ\Ø$ÁˆGDì|`VŽj¥¾yöã¿:™ˆÔS¤:¬‡ÜgýœS Cò0í×lœ{tc›‰Ùº5ESŒt—U{jƘ*9%TòÛ zf~™$„B­Óþ¼vøq‡ÇpwˆÉ§Üâ79õŒk˜=eĘǼæƒ!ÇKi±•¯-öàs›c¦­Á»+£Fá<‚éò¢~8Sß_ݾp™g{Y–Ô.š$ÞÒ×ÎOð†Ìãa¦ý7š»:ÉlüÇ ÓÔS¨ÇŒNJ®¹Ø²Œl×þ÷l·ŽO“•’Q÷cÚïÝ^v“¦î˜í¤€Ei“Q¯¥½º×f÷)z[ôW Wô ê3j!Ú£0 Ó~Õ65xÛñ°ƒõ+aiú{;Êžˆ!±ªz;¤‰ï„«µ,. †¿Í|áÊÂ…‹i˜ößhÌñn…O³bÎÛœ²¿½¯KÐa�>æÑúm-Lû}šèŒåUi�:± _ËósÈ`‡K� Ï��Yª,5¨,Î!QF5Ih.m5wF¿¿m·Êߤ�œ3ƃYªò½60üvÖÕ„2c±UZ†Òa�Ôß™;‹~î,“,ëÆ&g_e¶ oþ|h«¹sÇç5ã¥}”»œ†.·s=AfPÖ¬¤gá[ê[:%ÐÜ¿¯¹÷¨DØÌ¹o – –œRX)])]Òä¸M¯ Q‘VžeÎ^À�;2 (Ð+ǤAosEEÌ–n}â_‘§F™ƒàÒE"(…6Éo�×ʦÈdN. noÜ^‚7Râ d©q©qKuKõš_õæàÜpnŸyrÅ e”åäÌX]A)r÷iA1�°sÊñgéÌy~¥påÂõ×ç§m« UêõôD§¸~F8<^Ê9=2=b̃NÐ�È—Èw ÑCk7€÷�®7¯±çs@w¡*¡ê?o"|¹ë<‰Vºo ý�îVþ} ’.$[Í�Ñ÷ö¿ó¾ ¦mÿ¶¤+nË‘lÔý/öî;ëþà¸Ëž!ÙdD’²÷%Ù.”}Û{»”]"Ñ 3+$Ù³²2’­�È�qÙ;RÈ!|ûœëþœ¸:çþ�rß¿ÏõøïyÎçŸë¼ÿy¿Þç¼ßv™/Yb¤Âg�Ñ?Ýôijp£0dΗЈŒlâ<Ü5¨ýΦ©ïaR9û²hÚ?–*\&¿‚Ü·7„ 6dr(*>‡»Ðn‚˜{é>Ô ö«_‘°¬Ñ}É\øûzÖ4ò²~ò5i ‹Ñó'ž¾OsÁÄ .zuп?ÇjPû·¶!rî<-²º¾ŽLu‰¢–ö¿â}¤î^ó&“áJ^[9©Çq=üéÇ&Ñ÷Jú”‹m<Ù1Fy¶´Ìî´WêîB.ÝŽ 1ø�Öíœ<@Š#õî \¯‹† )àš%ädF >¶¿fMiM›ÇéÊéú¡ ÆÔpÇ�wGëàµä‰X”¦Ü‹I Ú0W˜ëG ¿yÁa�£  ‘/7Ukˆé d8L_–XôNÀ`wH ¤…žÖ¦-hãLÙó²ç$"$"ì= —¿/ò}äûu ì[?¦%›¶t p� eÊü¬bh;Ê9ŒòÉ Y…˜G_ ?‰ 'Ðгg d Ì�w?�4?ü3:#;# ž,,Œ±¡ ›ge� dYõVóVûh»UAñvÅŠ€ÀKÊtÊtès1IÓ*%’ÕÑ{Wµ;VƒNí4@¿Gþ…\E8ÃUû,‹»Æ>š�ÞnNM‰ �G¾§÷Q¤œüÀ,ÐÂãÙt}§sÚÞÏßy°�ãCÊt�·Â\©ÆœÉWUVU*EÝì cϟˤnûÚÒæÒfÇlätäô›h€µâ  Å ”Ø7îPâ{�‚‹_Ë*­X¹¾rÝ€•̆Ñþ(è*‰>?¨D‘¦e­xcéŒï0363|AŒ dœ¹bAÊU¦É¦É×<¯yV„)P}ß'³Of¢Òqž?v—þ(sµ3<‡�¸� E¾B¹$£©Ÿûj°Eû‹SVÝ‚•£€×fœf#çÌ3¥t]?C‰O‰/ĸީÞ)K]ž-œÎ{ìøLE,E¬vçVÖg·ƒ'žßhsis×S8%j=m¶BŽy�þqÕå±¥–ݱ�ÎiÑ×ö·î ‡Ú§P'ز.Ï„ËåH �®¾fïí\±Ä‹í˜1Гԧòu²XaÜëÔþ�MüV�îF5‚¾Ü‹ã¦V N`|�s߉וpò¼L¯Ô�t•>Ç9×±ôv¨ýwZw "�À—.ÁŸ‡é¬8OfP¤"^}V�ÎeªÆª²[ÃIÒÅ.â3µVPƒÚnk7ÔËã5Bï È94¿Í βoHÐFìýèðcíJ×™=>¢KXo‰ µïµ3c/ïaém\ô «05�÷ç2iMm<(a,ÖtéP—°^-îÛ Ï¨ý;#Þzæ“ëKd—ËW÷Ç)…ÖR5³H!?Å1 ÷z&žRö�©ùs%­ jPû§�üµ ‡lñò»Žè~©„IíÅ»·§#bL�&ÈsøÏÅJßž¯!„Úîjù<·, t“mšŽñqSžtœˆÓ�-Ê�¦l�1—Šêö»FŸ�镱Ì` µÝÕl¬èËEqŒmË>h9ïÅÓEÞ�JmKr÷¾¾±>r„•«"�à¼ÅxÔ~M{´—ŠÜ{ž8?ŒÁz¯µ¯ËÙÐnzl7µäd’ÎOÔ+÷¹Âbä, —È8ÐçûÊÝ«Ì^Ç÷•q2û¶ÚÄËí4ßG~þ¦`~»WgÌ`èJØ·â/�(M±Plðoð—È; nšKá�HY}mefe®Šƒ‹ƒ1à3KÁˆˆ‡ß`˜BoÌ¢4Ô°9ƒ*ݬ¬jÃ*O=}ʹz�„Kgƒr9>îÓÈ�?"„càçîç®ï3© J5ÓYÖY†uÀ:*Lè]¾¯4º4ºóؤÜ�icбò|ôQzºT‰óQØK.ž¤&"`úâ|aãK~v€‚žü¼üü)¥“zn¹ÍŽ?cŒoŒs0q&qÆ �#Ï’ó’3m¡n½P½�QÎVdÛI_Xíà À @?»²¯ÂÃg”÷:L|¿ºúâûNgW·¦62BŸ©ðrÖ¦�9ø4Çø=¾u*•xKN@sE°ß%Û#Þz´Ÿ° &]½êûúìJèÛgW=!—Š\®¹Þa¼ãiá�½&°ÓÚîûü cÔv2Ì s蜶ýœÍA]DÃ@ªGÃùÂùÔ†t/`§ô:—*‰~MÄHĈDÛn Zˆ¦vï�ÕJÞZ= 0§Zj@q&0Îɨàèàè(œ3jå¿ú„ÄÏ��ä=Ï‹¢�ÉüÅÙY•r @EE[ `ÉaÉ™q’ä!qÛ{Û{55I®Ï#¿OÍWÍwO\éÇ’ší�Ò(É¥!T.”’$ÛSTË¡_´hâ_ƒ×ô æÖçÖSã�CVÅ£‰?£áYÃ32muIuÉÐ t©ýdvdva®2]¬t¬t%„[y­lÇ&0ËíÚÛµ\O’¿Í™ä–™ãÜzˆÍ/42É{Ja§³+ôµý»Þ:±'º,ñà% ½›ÎH¶ÇºÌËð»Æ\UZ.—Ž\ èÄ:Íß*}ö�=ÚâŽPƒÚ?m¸ðCåíföæ†ù‡ždÏ×ú}ÓÚM2T+¯ò\xÅCq6ýj¤ò”ÔvWC¶yh}<¢‡xH?“™ÒŒAE{9bRÅ�ð³nÅ)¡�·0UsU$`PƒÚ?mQÈ ®uÙzüûdÓ­ KØtDSÒH1q×½"Ë(*°÷KX>i\5¨í¶ö”ì¼ ‡kyÂjj…jßn~RšÝônÙ·šŽRïGµÚ™zÖ±«�ìJY ¢nès!V5Ϲý‰¸ÇÒÊížÑ‘éì4Z»GHhtui¹´Ø+†À¼dqîi#ï¦û…=®¤#¶%°¨ µŽ@�µ}éÖÜÒq±øß˜ ‰|{.DÝc}-8Üþ¢Žµ-h°Xæ5à5à��טíHû3ænÍÝšmf;ÇvN; �ôŸ�û÷Eá�À¨Â©Â»Ù·Š5Ü.ø ìž~\{¿ö\OžßA­Ÿ±‡´N;§MŒÊO¼€ôØ©�æBèkûÿúNx®.ñÕ<£+"#ž©ŒIçŸ9X~ó<‡0²g‹PÛa~1íQ©({¨A h3b¯›zŸQ) zä/˜Õ™©çrèÅâ•=ÏN á�V­¦¾ïýPˆ´O\jÿÿZÖhp~BŽ¥%MÌœWl0lqhO³fØ3­øùŽê? ¤ÛMüøîAí÷5D�K‚g¡ ÏÂ!¯¥¼gÆáx¯¥)Hnnj�^u=þž-¸<µÝÕ›^$ÅKûdæ× …¾‡P àIsšo²±ã¦ÕcÒ¾)ƒÃ~Š#j»¿á¶9â 4›XöXí´B—Óà0³Ø?y·¢ˆBr’B•…ÚtNö½øØëÃ%ÖþcèûÁð¨ÊÍè¾Ëum‹º¯bì´�øüÍ~ÞíöXA×Û¼•p7HÅ1" tÏdk‹óÝË~Oš×ûcø)Ù¿–Á–ÁêÝx³ñ& `¿$¡" È€± ¡r¾ š­É‹’™”¼ºž)?$?ô¨¨É9e”´´©ŒÒ!¬àAá-_øƒ0¹� €/Š/j™à®ç®/›²aâí…ï…¯I¯Ió1¹7|Öm¬Û›Z§OüW=•ï“R€@Ê«�K³rOP‚0 ®]؃_õ…Á9Dg@a^h^ÈöxðÝÎJÛŸ‘8™8I…µµÄ(@×$r÷®¢�,E:EúÑ•­¢p·£¶´J®‡¯‡£ïÑe¶´†† Íù#Ž4?Û£¶Ó=¯˜è@‘Ôº Üz;b¢¹UÝ/G"´§Ããa�%݆ǠÞIÁÌ—B‚*2æŸ=&ˆùÆ]ìÛ{ô‘�`Ùn|´5ש)-bwZÛƒŸ¿�nçÑ›Ú�Î-v+é�Ã%2^c··ß2/âÙ_î“ÎwÝ4;¾æw„3[0÷3÷‹¿LÝ+[œ'÷©#. ê(Tx³ én i iU¦6³³ÞÁ  ìédPˆpd'ÊÊÓ¦s"ØgÕ½z½z¨«Ô§Ú¦ÚVÕ•U@ÆÄƒ¬ƒ¬% % ïRëh¾Ï Ê ª8üãæ�•h9ÎÜeXµ ô|²ÇàŠB!9Àétm$(þ¡ÛDU”IGãCÏuÿÇÞ}ÇSùö·*{ïQœ„d‡ERf™QÙ›"騲7!›ì’ÌÙ¡ì½éØ•l…D÷ët?qz½žçù=ªãýßçuîÿ.\ßsîëjTcÌ JRÂî�ød£d£&ƒDºDº‹bˆ´+--Ó+ݯ]|xñ¡œìV]EÛ�jdÜçeàeø÷=Q_~»áñâž‹?qALA¿šAÌN{tĵýOÜ €lÈ´N_§VT3.Ê! ¨[ùËàå“…½¡™L(âÚá¹U †°G{‰ï"ÛîoK’9âé "ÆO��1Ï�“¥±ñ1$ ß\¸Üœ{€ê†›¡½/jK ²!ÛÚ ‡…î$úåÝ>ŘJ’ÎXOt؃œïÁ¥ÅA' ÏF7´"ˈ8ƒÙ�íwhª¢Ä¦ÍN£Ç`Î}„ºR§¡ìT:ÂóûðÙB^n�É$—¥½«Ifc‡lȶÛ^µÊñi¢ÙéW'-" é\c!áþ÷Y-½ÊÇ/Êí~LFKÒŠlÈö;4î²Ë)âU{j½/o‰y¢0äH­ãÂA¢‚oú¾I@Q 3ž�¦5ù¿ÝüE\+Liå6è sÕP½ôí5äÀ½ýÔ—¹U|`FHãÞ±ò•1ªÐNiîííåtLÌ�Ïã~™1_ߟ+N"ã{-ôÙ±5MÉQFñ^(‡’ÎDRíŽö«Òx¦ª�ˆßÝ#¾ã�x^âáêÄJË3Z\¨ÿ3è;Õ’n�AãeÉl6.­>‰.1É€nÄû©çb4kçÍãæ¦™ChŠgpŸ/ï4Þ|fýìvw þˆð—·âHÙ@(‚AfVdVdÉê’s4�žW5§¿ggš }~ãù 5BÀ³È ÀmeÀ´Rªâg@y¿”?\ÔR¦2( 6ønð]VÁâØy ø½ë7ù{AK ËVp&A*´9]§-ä-äÐ\€�·�7wQ@ (¿¶÷Yï³Z¬Z,ïr¥3Ó3Ó£ÖóËû9*y´n¸ì6Ílú“p�œÇñõÙ±+Ä¿:¤r’>ÿ€ÅÂá»*á~»1ôίX]}“Gµ‡jÏ[rDS jjçÑ|��¡m…&°Ý¼àÂÇhh4qæËY¬&"2õ,p”r¥îc(�ÜN3_Äÿ ±â«Õhƒ²SÖ^—O®.Û¯ñÇx«òÎ_yÃöè„.êÖ™/7|æËõý™/]¬v$i #Ɠ܃tyU;­í‘Íg|l%‹�ÈÀg+W:ÐÑô›Á ;
€©�vËö:/ ƒ˜¡oñ&ð&¼³&&±p@Û^ûÖ6ÒÁ-~ €†Ú¸Lœ‰c %ªòÏåŸýéCF±ù Aq¯¢¸AOÐGÃÑ\näó 6ŠÕ ÕÅŒÜŒÜØ¡EÌ #'º§»§ûƒúƒ.ŸÌý±ÕÉÕI~5òèŸ(ñxz`yŽ–RJ?‚.¤Å�»Ö4±Z ÷«ØãÕï2ex‡œ9%×›ø²7_óÿõá›Ö7yá"R⬬¨áa>-'—qj+AÑíÑŒügfÎÌ€ë‰åËï²Æøô|d¬Ò_'s¨ï¦Úi拸¶÷PÃZ2�ÆBRÝêç¥�zfŠ;ô� Ù~‡¶Î?Áé3-|émpi²§©ƒK¾ŒæËó0Š*|1ŸÛz¤)¹ùÝȶûÛ" „Z#>iOEê©*MNz/‰Ðcï °òtÑûã“£øû6sFtÇæ™"Û?ÓæÄçæ:y^Ö:µ­B.‘%ÔG²°Ü½ž[~Q\ÇoFÉÊ]È2•@Ù�íGm £ÇÈî�>eƒÕy3Ì–°+‘»é>ß?¥�Ÿú¨L«Oé ™u¤õQÊÍ*ºÍˆûÜì·låÞ ¯î›—Ë–V¢ì´ïÝ|†iïvƒò±ˆÞ6n¥Ü:—T *ËÕ Ñ 9f|ÝX¥j”vüSú·¸Â¹ÂÉ0zV§`Ý€›>Æ9Ä,€c¤Å"pÝ$V@ŸFFÛš¨ñŸ,ÇÕƒÞª*ƒHBkßá|šëL�„†´°´°ÞîLùMù‰bz{€˜.¸e»eii°WYèþØdÄd§ÛjöÏø]+0|Hу;(_6ŒîQzL^ dUµ‰ñ+6Qæ×Ç«Eå†R†R.,ÜîçÉ~³ ³‹g5$äq‘5Otete0ÞCz­9­9oã­ì¶KOÄø<"zD„¸§Ž›î�j¯&)zÙÐ0ÉDZӞq4ÈÚÃhé}{Ýœ�ø)—©íÙÖÒvoµ» ƒ:fΟâ÷¢�i~gOÍóý=µ±g3Ë‘¨­�òÂôáY¾�ÖöØæ3 ½Ûe+š #zÞ³UD (ÈØO ä:""µW©ž`<8ݺõ·bb*®ûÐûÐÛà$ð’  íìñ¾YÀ‹™.8= 9Q�v�6^ßý7O]R@¦Vý¢ (1ì“pòyQäœ\o­(Ê(Ê q––•Á"¶» £*¤ö¤öU°*؃‘–{ { ûØ‘Püs/šƒ.Ñ\ÖáЃŽKdžÃ-.”yJXQTœUýªuàî›Àr@Ó˜k³ksKˆÍ÷Ì£+¿¢<¯æb¾Ô‹�Ȇl¿Ck}iì‹WÅl‡Ocõ–#e^ÇÒ¼"O‹ùD½öÙ¡¢�×mTÅŠ©�öXÈög7ÏÐw á5EçI:´<åRÒ*©Ï<‘ òÔ*_‘’Q}û9Fßt_Ùþ¾¦J*š›â…ú4¡Q®Ý/ Ÿn‰«jè‰Ák6È#¨†iæ©"ÎîêçȆl»­M‘ݳmò½1DÙ|Å Ëxud¤Bà{w§Øc„ó™ �yŽ,œy4šÜÍ( q6&§ž"Ò2.`ì5Ot¸ˆÓk§ÙâïUö1 k)á²bò°% †xXì 6ÃQ߸Gã\'¦z®o:ð;³ ÞïÏ&”Í·ÆÄ• kì—æßi6ñró™5ËíOßz�¨¼i«84Iz’(ÈîôÈÈÞä6¶#–š.×n0W|‹[˜[x¾�,ž,~Ú0€ܨX»§‹€2Ù·'€ˆ¾ w0{JäX}‘ú"u¿×]ˆõ, Û£òÈHhqֳƹ'Üý€jújúõ\À-Þ[¼J·åõAw]ºf»fòòE½xY~ìî ܪ›)?§/-ˆãOð¾·$»ö¡¤Ž^ýƒî¢‹è1½°¯>V¢k�øJµµõÀmHÙ¦Ê~…—º—zþ…¢Ö¢VÑCˆQž;wüš‰ˆ£=>qšèsµn\cY‹¸² Òý¡6®hȆl»­Ýò¹}<#™Y*Ë@ùù„¸9Ë}Î#ÿ¯{Xþ”fEÛ9"r¸ÿ¶H­fÇ"±{ úÜââlÇ€-d…ÇIKö„…+fÀFþÄN³�W›Ïœº´]–³æ-DŽ®[RƒÆ˜ïžAUZ[“8Ä®`W�éö]#ûó&ü0[U[UO€€Ù>L@ï EßSÚU@6a/ g�8òn2/3/Óï¼*›ƒ[)ª0´ëõ¤Û…Á]…¥¥œM>»Pâ_âϺÈÜT»ô¢tËËlÕlU¸K¸ËŒuŒàÇÊæËæ1wsÿ,ZáS ÁŽðIÈ‹Á0¸“Ã…3+ì#BŸ¿z]ª0ÙÑ èc]�Y�ÉÈuT‡MÈÿ ¹F¹Æ6JþÐMKˆ: 9º9º têˆr,s,±%¶*“ßÎü9àƒk¢s¢3âÜÒJ£¼®Ð(N’¯ã�í*ºÓÜñ½½¶’ºr*;*ÚAÞ=­ª%Žç’/¡Bê¹ÛPÊkŒ$îØ~üÎÜ’ÿûsËêë—\ˆóÞãqJÞGŽÛim�gSíÝÎv”®oÿViæ R½È5P‹IšIšŸ½,³ªDƒjbµ8Û·„6ÿL®>4xh` Ø' (™„[Ö?-a,‹õÁå$ŽŸeL….†.’Q¾wÎ2]Œ7¢¥ê÷Óé³JdôÔ\˜`ö`ö&èEèE Ÿž…çÇ¿‹·d¿d?YbÎôcîfîfcLuÌ?—ÖÖ@Wjà€k|‡>t©.Ä,’ ¦0Á1{ò+н†rµRTU÷Gù¥]Æ`¨üØØ½ I†I†M¯éÉÐYÑYÍÔ?»/É/Éo�µ•ˆùv…î€Xou.u.p=Å’|9?š œÏ?€~9?’�K•âfûNsKĵ½›Î‚ÿ'ÚÈc>Ý$mLt~A“€ìG2ÕÆŸ^Kê¥ÆRH=Ùc1æºà{óæí\dû=›?Ó¡ËqíØ 0eªTíËk2}�ac�õ%“ª¹¬ÆŽÕ^ ¿�s›@nÙþ¾vâi�/ãKØmÝO9ìB!Lê:�gh<ÄiÞz~F=_J†&e¿Ü·÷°1²!ÐZ¼^dÖŸ1)§¾±¬N=tæã&V{(€vEÎ\7E+JCõI’ÇKÔ{� ÙþM¢€³�°Zƈ”z¦r½ûÜ¥Ô> cÁ5±S/ØÞ3D�ŸÅ+Å#F¶?» Âp.ôEb©â‘l¤¿º×eÿ)•þŽÀ1––y’C^2ÙÇȆl¿k›½ãpÂÖâÕui>QŠ{„e‚U(5=¢Ø‰árËk<á“Yýδ,Ȇlÿ‹F“àRP™krý‚õ�#/xl7(b ÿÛwk!ÛŸÓ殬—æ+`ërv4TÛZ>}Œ8wÖ¡­¹¢DljP^HÝ&¬¼²ÓÜñü¶ƒÒ×p{™ætF³eF$®íí>ð9©‚R‡R°¿FEK4¬•ä;sg�ïÏ�E°lDNU(QÔâÀ¾›»ÓÜyxÿwûkÌÞ¤gƒW½Šßê^$êp­ Ô¤7ä9ä©ÌY('b6X)p ²þ-ÚyÚùðB:º°÷€˜¥“\˜;àó$ 7þe€{®Æy8]“EãY++QžŠ«*0…QP¢Íi^P¦øúõ1b‰ÙÖŠÉF@j*a,àzÖõ¬Ìõ–b�uU€a€áݳwϲ‰®ÿ3óÑSЕŸëZåv4*¡ê}æTŸƒÓ$°®yÂa©ÎñÕ*6¶•$@BcVzVš(·fúÁЯ8púÀéˆöeè2TAÑú,©©^Òaõ�fÇfÇC[]SÜn¨À ‹‹ù÷�_ÎÇ2ÁQÉð)¡‚uriqÂÙi¶ÿ“ûm�m÷·•ËBPÆûÚ0ÓÔ†‘ Ø©4õ¶Aú7HÔ!#YÇBBªù³ ²ý?›â%í’©ŽÜW(ò·^&óœùØGJ€…:¬Í�ÎñÐt—c)Ù�íŸjܹübš9Âò ÿbï¾£±nãŽÙ›²%&Ú``ßÊzÃêQŽ›æ5¨ý[ÛÙ‘'ª¤s´=ÍŸµ)Êc„�ÌÇûH]Õzƒ…L]T3Z[�Tƒ²ö Ö@>lŪŪ¬å†�U×diciõ¿Õ^ß^_·ÆÝÊÝzP îVˆ ÀÜÎ2 ·¬»™Í"±4 I½Û¬Þ¬f¤/Ë¡, v·�=`íDÊKÆjnSRpçwç)xÂyã;í Þ#ÿZ² ˜ÞÏ<Õ0O÷ºŠ×5{«ê˜¹ d¡-ÚžJü™”Œ-û¿�xôûû]Ò�•Êý‡ŸláÞi¶'¾¬ ÊÚîJ$¬•iùVR% ž ¦9�».& & û¾¢–¶E7sßi�ïØ|¿ùž: }}Ôà +^ÀÊС`­Þ$âûøcÑÑL¡ÇW~Î%%1Í�銤ÛÃB3Arû+•¬²¡Äkù+‰bSÇÓ#€Êa“Y“Ùy~ï §Ú|O… » ;Ã#Y˜,,Þ•[Úˆýˆ½gêá½8¬8¬¥u[¥ßn³À)B¦D¦ÎS-ržRÓŸ^¸2®$àbª“QöŠ˜l§}ÔÙÞM÷=þ[‘6k�0‘ÅzìqZœUG³&ãÄ»„ŠéèŠù‡î=¸qÀ‚¤GŽö(7j®Í”üíÔg4“«)&1¤m‰™E„ãíd¢ÙÍh^}¾{˜�¥›·Aí÷´«3Î¤Ž¬†o™Þ¡JCLŠ¢]Ô˜‹ƒõY•íÍ|±¼áà†ëKØ5¨í¶¶ªU9o™U³8 kv-0ƒ¦0ã2 ׃u®}ƒ h´Gß2¿Ò¢O j*„Ú§Ž³Ï±ôHFô¡3œxÒûa«q´òQºâWÚt¤ÝXU.hp»Ç³>"¨AíO¶‘{ï‰jø¬ëÉtšÕ» ÂÜN(…Õ=$êz{HŠú��ˆ�î§vS=¨AíßШÇOS¿Pð"Á¥iu–}’Õ ¥ùÉW�Ùcã@¼ ý¥Âøëb lë¡DPƒÚïjÁWŸ3懜:7Ët"éà“¡à Ú½¤óôÏãÄ­x­ õMÖÐÛ; 5 ñ܇¯wkû:¼H©[yÖ«LB|ÿá‹a·¯ùªNy:¥OÊÅdëC j¿«iT?íh5{œûzÕ3û®T‘~V#_ªÜµñ;‹QýWº|qœŸí£Í¡öçÚq£B{bá×Ì)Ž/Þ«Å™XX4/Â@«&¤œˆšÐ:“Nmõü¹Fóu#¨ýwZw×-~åÕéºÏ=“ã6—GX¹á-»é]’Ò¨X ©Â{ƒÙkgÑ.]3kl�³jB=§Mz`,p;„§¤ËÚÓ–1`ÏNç´¨ïuß—L¹ºøp¥2A#z‘¿ ½˜V3�›…?¤Ré’¼‚yú(çwÎiù¾N«¨ÝBÑd+mï|Tb¾bôNç´“_Öh?Ünæ²m0*ÿ+[IÓ€n^ 1$ì·ÞoÝÿÊ„åvžeE©ÕBâ·ÄŒÅŒÿ*‚ÕÀj}qÌÂn+À(Qö•;Ñì¾²1¤î6ÿ 1~oüÞ¹–u :Ý Ð;ó Ðp¹Ò´� ¦o+`�àAšp@“D“„µz=è@ï�úõÞ:Þ:ãQewL¡Œ¸<™Fùs ¶7‰#™¸H§¹HYö�C3³å€qE–笥;äùÊ@}ÎãœÇ’©‚eªéMį(`)`oOÀOÀïQDµfêoéoÙ$3ôqP~Pž.c«Å„í’�®33à<ïCÎÓ&‡q÷ˆ#É?›R�}ª—OîtN‹:Ûß»3jÿ�–NeƼ8,ù¸&8¼ò^�i´«uÙ'¢yJûü -J�7R™Qçb¨ý;›H´�æF‰]¾3[¸ê ,¯ÈNëžS…JdOR´�ãû’z,gmG’š ößi v^x.´QÜŒ"Ü)>¡²8©�’XÞ”UE¹Ñƒ±¢›f‘©2c¨Am·µ;Šù‘Ê�Ïú$-øjÞ%¦šŠTFiØ‘/Y¼F[õmW'¾.¼€ùŽ�jPûQSiy†y~ã†#i�¾A`¤§ÎPc|ëq]ñ ê›ìœ‚ç˰ßm85CíßÙpÖSjýH½óWöß“ ,£ô©¹Åë^‹ô¡ìrŠ‘–÷€¿h[N,‚Ôþi#›0¥ÄcdG,¾‡³Ýí…E�áiÌ'<˜ åƒë[½%Kã½!úàà |¨í®ö”;ÚOó¾iõÉ£GöIY¾½wN8"ëñ侯)XX‡ûmº§ÎÉ‹ô&PÛ]ÍÔ˜._xKF×,÷³ª59ŽfwBXü«Ø«×ü7Ö‡¸˜i0 ¢ð\ G;¡ö{Z19%Ùµ„¸Aô&äVT.6¤»é °ÝÔîß'j]£ZÎœç ‚K¥Ç,�E±¡îï‡\:A”6„ÛÓzözIÈ¥È�ö÷§¾¬¹F³�‹­ÐToV·*PÅ�儃¦†);(;bè ¦ƒ0ìËI(�¸~+«>«¾\™;Š;ŠšÐNê  tÈcŠˆÖÖÉ*�‘X¹Xi@õã\Ô\ÔŠò~=×1$çAî êj û À½HÞ4ÎÍ)ËUäõäõ%�ïLïLúà— ÖK’Ì’Ì̃̃ŠiBk?†>ˆ>hÖ¶û¹d²õþ}¦WO$Å5®:¤@ŽÓT.Ÿ$UþêIÉf3^`à-]/]¯a /ÝtÄü¯ˆ^Ž^î—x#ûFvñ ªÏ±•™•™˜ÙøÎsÎs†\[­èogÜ@N˜K˜C=»2/ÂÁe8íÌA˜YRÂn÷þàNgWÑãÉ�/Ïfáñ*KTg­KÓýh§4&O8€)É'ޱÌßkóÈ1Òd¸¿]´dÅÊýÛ³+�ïŸ]WƉl`š(f ŸÛ²²Dì4ÛÓ_Ö0¢ür8môPiønîBÓ:¨ m¨¨]«!Ïê}ãë4&§Cð­T²T²ìOz‹z‹¬C…fj ò¯¬$Ô$tˆàÛŒwÉUr¥´·~~ôœ…k΢¦³"ˆÓŸÔ#Št¯&U;{C @ÙOÙ¿’¨vªv²˜»‰ zm1%7%g;i;é«^žôcœ'9Oú;?ÿ9•‹·E¬o–¥‘îò&ä–#az¬­YXI¨m|pº4PU°à+å+…m´„çáâØÿ+–áËð¨ZeMeÍbwT©^ãüãü§UÏ=fDgD'9¹ÕRçváûјUUà<�øûmÎXû”4ëFö¿ÜCcuöŒËìtv…:Ûê­sïãÏ[¨qèìÏ =r\k NÐå,Rµ¹ÉuÛ³S�·QÔ᱆ˆ%Ô öO¶{~Ó%s�§ìµ�fËÜO×ŒÓø‰¬à2Nu7ˆ¯xHé^ì�ÔþdÓqΣ¥–,fˆ~=4Ö1©‡]Fšu‡îMêÑ&�ÑZÓ79è.šž9PÛ]m³ðaXÍc{�í ùn�~5uæGDe§ê—eg’üBåÇ- ¶»Z÷+GÕ%µ€óvytS)OjÐ(i¼CÆ®â¿> Y -°�qfþ±Âqt¨Aퟶ°n7ÛòGçy÷Š'ëd³˜6‡Ü"Ü×O c¨í®6_ý:6RôzÊÓr�@ŽÁgv2܉V*L/¡9Ϩ.†uPš-j»¿áp˜rYÈûÌÄä–žU“i·êÙ#ÇN¶œTVfFÈÓý;Ý¿8 ½^¿çù=ªû¼ÿû¼^××ùãúžsß—½{)2`^:…öIGp*'†¼QHV«yg:.eÔ6›;œÁF9žBÁ¾äì_Q¶Ÿæ!�0kŒD¢Ø´nC3ý{lws'oLjPû§Í¼_ünŒEv {UZ{-Å.�­Âtfz1®(\¯wï´‡§YP¦PC j¿BÓ–¡„5\y¹¯ój¹‰â{^zc ø)Or•F9¶„âáì°ÍÅKPƒÚfk$5 Z¯)0RLŒ¿’¶ 5ßæÉró$Þ…9d_.i~V«l& U#Ô ö+4Á]…ù œÇùo‡Jë"rÔû.3»òQi‘ÂfŸ‰;�ÅÃØûßn7%Ýà0&ÕUò¬¬˜7NÅ8é«‚gû±Ïs«(ÿ” zÜÁÒ' ƒôÁ­J‚ß;Û«[�þë^½Ï3&àç{µ‚û4Âodo}¼ÜøPã²òaô{¡$� [c¨�øšm”H`Úþè¿Ý£?ã�þ¾2ô9‚ÍëÄS&bû›OíGµ ©Ú�{-ç?â0ìRh“=ìÛŽ~?5ú\Œ?rßTš�¹"ÙÖT>;{ñÍÅ&>­¡#\ï¨Kütú]kõf‚BÄcAÙ|œ²œ²­]«mZóùö~m ±„'òjöjöHXÏ aª"]çùWyQ¸gA¥§ƒ‰‚‰RZØàdî/m3úšµãC¹¶=8ŸÂè=àøâñÅa.@ždžäìÙýDÆDÆ<Ý<]‹&¿Ë÷ . .)míñcÃæÄ,Ý€’j†»¬ƒLG?cŸª¢™^V3ú¢=)ÿ†`»”­•­y<1/Ð àg˜Œ˜ŒÈõeõe56¡›y„èEôÞq±æÕÒJÐZKÙ|½(Àˆ Ìf„>óå/8!)9öÔÿ%ÝBÍb0™êF3_ôï ¶l��G¥Ç–^•1‡ºÒæ�–E"ÿ/kP$ú”W�ò…‡™giœkÛé7šù¢ïííy �ˆÔ=‘lIîµSJÏß´œ‚Ô~…¶"òZ$Ìk\Bg8 (V�¦HÁêš«l€<ÒI[A**ëxŠZ4!+·j›¿Í0²1èGÝÇ�'ÉUð³ÜPÞ7›G�ËÜÆr“t+ÆMïþÐöÈlبý;mR~r²UY}¥é›M¬YMAWÜÙ¬Ò“òÆ>ï °¯Ð_?—Df5¨}¯-`?·¸4jJWgAÄqÛ:Ìn3Ýçû»´#c‹šL¦tÎÑá»Ó\¤´LÐÏCO|/$+‘J}|Õ6ëz�¨`£sÇð_Ûõ¶øì+G‡W¶VüaÐå[QÆ fÌxÌøüQ�éüÉÎ\6;÷¯ÕÖž˜6 6 †™Ï¥8Ô´È�'%€ëå>áH ë°,›,IÄlQÃîGÑ —Â�q6 ¹¨oY•ãNi@á\á\û_Ÿ(Ü(\F—!б"±"  •Ãw×¾ÏÔÏÔ�ÁI`ï�yÓñ³º¼'Qæ«<Ë„¸P’Ǩ*ãd²G”ÖÐ<ÂM�`¾�ySnÀ£‘u`ègì¬ÞYí·Ü„Ó„“î…N‡?’!’aK4g"U9U9ýÐZÚ=ë…».ÛjEiE¡Ÿ©ï�·É„7URå#ëêF„ù6:S£Ï€z¹Ÿ³Ÿó \9ÍKY,s<Ê]Ôìy"nº×ØöêR.�Á7ÎÔBß>S›àisSÉ(‡ÎR�Ó}ðÝç®À½=ýiM‰ëz´É�/ÑÙµ¬u�D¶C„ ´‹�`�`�´Ã‘%m’…‡|ûŠË×ô‘úH>ŸfÛf[²XÀäÃq½G††Ì«€þìþì»Ùõ üˆîwÝïÒÒ‚­äD¾�f™fYÆKÓïÇJ{«R05ì×Phãt’*UPëÌ£=ÍŠ]*�¿èIÅ|Ò €¥§&¦&NÏ÷¤å°pVü ÷1÷±%š)Û)[2%tøååauI\ÒƒÒƒ¡kɸ®'h èþÀÛÈÛî'8 j?ù?«[:µ\tÑ‘îêûâ­�ÎÔè{{3ÝÅò;·ÃOÇNõvK0{Ñv6˜&òKÒZM ”èÓ�n¡>¯ÆÈÃÀ»Ã®¿¼j^˱8VUеd~DÏU”°ÉTkhïX›¡¯–ÒÓfJØÕ>–ˆ“¹Š/˜[¡µ_¡5"-½I*v^"e¼0Ì—0e|î4<Ûp§T­Ñ¡¾ü ý7«MôÇ’ê� ö{·ëÁ£vÑ!' d¦¨Z ¯«&<,g8˜£|ëºa邢ʀöðǰNʨg‰¦Pûóš6µLV ÌâèzÕ*|,ßÜms}9ÎdoxØÒíõa©rùüí•e-PƒÚfkc4ñŽÏ¼Ï÷Ñ5Xc˜¥Y~€‹~ëî4_'ìáÓâË0$R÷ÜÙênq}6q[U/A1$jycŠbW>ÿ��fèÿWÁcíë7Ô æ]âôp¤°ïñ°Ã °%Ò[�g¼Z#«­Ö5îÿ�ÙÄÞoÏ&°}ÍÉãn·È7€ÓãcQo4›˜ù´ÆéÁz~7W‹ÑÂXëìNPf—u ¨nb^l^LŠLow¶<ãVž*ÙÝ_ A† …î˜î˜ ž|rc^6 X†æ¦î <á€J‚43)ˆçûv_RÊ’$¡ÈW f÷kâ ÛÛ^»¡x–kÊŸÑît‰w‰ÃϤ¶Jm…_Á7y†Ä(Ä(´íiÛsÆAÜüû²…³…Ýõd‚~,|Q5ü <åv&R{Ï" ë ú(³Pný;_\˜²«ßÐÎȤΤ¾¨øŽÔÛª.óg`À1àñ£jmjm1ûÑÙŸš ˜ �M“%±ü`ù�¤{-²‹ëÇÂÞä…æ…þ½·??ãUûú5 wjÂYRX;™aî‰�fè{{3½»ýOk¯L˜Õd;ý3PûóZ^eÀ’:S´—J×5Ҫס{ž{Ý3Àš¬vÀvL›!VÁVWê¾è¶jPÛlÍÏ+pJìNÅ43Ͳ×ò [¹ùwÿ¿îaù]Ú¦ÖÉ]Ý�’Õ-3”×"°&g–Ñg;opfâƒ�òËX;;Rõq6šíÌ~Zƒ›·›ÉžvtÑ�ÖZ¶Iy^$•ØÕuÕua�¤[VÐæ˜N)8|�Ø„Øä©aÙ†3g%-ÎX�#r»À»¯O VôQª9.�ƒb ÄÄåÄ—ˆ ¬ �Í`f8ˆ3³†%>Yïþ¼jŽ w(wHW@PBP¢à#� âkîjîzÊö”Má\KÜ÷éhéh±‰eWþ˜ùñôÌÎÍ>”'c8�%çPåG§½ù"ÙÙná|!¢Ø> P}Éâ­ÅÛ#u® ú®é?C-O-ošŒx–xV$Ý«‡‚¹‚¹ÆŒ5188Ê/ÖZv[ï@®+/-/ }né`O¡¹¢^/O•k|“ÐMf£¹%ús{M…5¥ô—è™ZÄÌöâ4j^V‹ÕÁðg«lÂ(­²P¸ë¸ø�¹¥È·ç–Óï X,òØUŽo“hØ _ÄÜho¿ÿ´F©|½™{otOÖZ�1¬¼ˆ©~Xص° ?Û>ÓYR¾5Â8'ükãã\}Wõ¯êkãD‚ÛøÒî­×çÓ‹w⊉Qvž[6©“¸ˆ¹ˆYÙéÜ‘«\¨ÃêràB¢l¿ÄÂZHʦ (3(3h1$U$U<+Œ  MötôtÀ£áÑ´j�¡ß¿ ¿Ý‚Øúcλš=.3þ¥ å�AνEV”’Ì£d>DÜ'œ¤¾˜y0‹«ˆÔÆ?…=…µŒûÌŸe…éý Í:Í:¾šîšn±‡è¬´Ÿ>^j8Ã~~§D×"Ã]�” O8Š5ú÷{×"©>¿?š¬Tø¦/Ë|n¹€6­KóFsKô½½™Þÿo´�÷–Â&÷�ð±DĬ|¥+Wê[>.>s¿ƒ�@=Iú¹Ý Û´·ËüÀ,¨ýší&'‡î½fBÖNMQú$#Ýeå®úÛƒ™¦‡/߯¸0¸¯Ú:äw6fª²Ö „™•>¡¸Ó$¡¹°ÑÜýým;”ÎwpN¿|¤< ÐsÖ·�ùã}8�1�Xw•–¡ÌíFªoÌ�E¿=wÞˆ «Ó âÕk1Ç Ñßhî<÷iMÀÅõZJV Бů•p„€«´€F)Óž§=´+›³Ï¨näöØËõ5FF�¸ºku×8<aF�úu€+é•Wnš€ ”j§g© 2ÁI¬I¬…þüÈ«Š ¾l-�Xº»#ŠHvÒéžšQÀ~¼ýx>0ÀGß�¾5«÷¨@o/íÝ7*#à£ò}X¤X¤s%6¥?fÄ}ÃëÌc@#;Š\-¦fôÊñQîòÝÏ'sÜ=¿; ñB`]:Š1Š‘FH×舕sýgð­ð­„( ééÈ?D·3¼ÙŽl”ÃOîgíg-¢[«¢m=Ý@ÙöÂg…Ïþ¾áóû±¬ˆ´R¼ iou¶ ìFH^!Úh·ÿÉý6PÛümAWÜž=Ѩ–ÔÂ*y+rLбvÕû–éy*=¶�´ýêAA•»¸{ µÿg;¦sѨp¬%ëÆQ¿d¬HÞÁÅ.jJ_‚pÌ~#®à;É|�aCÄ|sPƒÚ¿Õ³Dd 2$RŽN—³ÅSäõP,I›šºÈ×{LÇÛmÁõÌjçt+ÃOv„Ô~ÕÖOÁ—ªA>ÅÐÝüžY—ªL$RÔÌú߸©£óT•Ñ@!«€ÕÉÒðTB R¯ÑÏJêÇxän­ÈÔúþ‡½;‡²k8nÉn¬1Öd’­ÅeMŠH²d_"„Q’­Æ’Ф„ˆ�Aö}Í“½,e—d-{R"Ù²öëþÍs¿1-º®ÞëÉó¼÷|þû^×¹ÆçŸsÎ8'(A´›~½µÒÜ—1åšku’Öà²Þ½ÚõZP«OD+¨LÇÞÊÞjê8aqRÊÐ!¥•àoÝÕ¿«oY¨&­&m d_•ª¸ÄÎúc’¤óS”g±%ÎÍÒDŽńe„½s˜jë-Î\x J _ Ä¢k%‡_„yêŒëŒ:F»�v[J¹ß�H^°¾`MÑ8e"×=ƒdΩé<…O²ëî|ú2&³c­çÅíp)¸­¦ ÑÉ…ë‚–‘R3R3Ò .ûfK¨È§ ~ ݉î ÒÒA±ìùß^�.2µ¥ì„1«ìÀ"¾ì_꺢¡â|\±ç¢’0ˆ²©íȈ|ßU¬œ÷Á¥÷½ fk  �´�´DS;Ôë)Å)Å…ñµ‘ü1¾¾•+|rˆŸ“Ê1%pãÀ.7Ú;�•àý 9<ÊI qì«v†w@içÈ�/$· E—¯ü õ)õ©%¼]x»ªËq¹Ú/Àà�í>>:í:í�RWSd]ËR 0ôe:X[�ó©ž;Ÿ’33NœQ½ˆ4̪h¤¢]owno¤ûÿ‰­Ø€»F f½)ÉB²ˆ²j¶ˆ¿CI š‰¯Šá»ue«5u·V^Jj®�=’öŒ·×ÓM¬¦%¬W°£BHìËyaM+“ß‚çùò†û&„xæ™çPû{Ú…±Pg÷©aΘ[ðÔ¼Qüb#íÉhén˜MÅæûåó+Ž—ð"oP¾€Ô6Z[Ô¯œ:›[3×{Äêž_sQÖifö�QË;úØñX„†�úlñþÍEPû÷4XÑïä¶n¹Ð—øìRãû¯Å´Z„« ±–4°ÒtU]Ä ±O›ðʃA j² Þç€Õì9WGÛkØ¢ÕEtÉQJ-èi ¬s˜Ožé½­„—ñô wäI¨AíŸÐ˜F3•+{R“2·:IÏ­××�¾qá¾²5v/›iQ¬ëeže±@ØC¨Aíïjr8ü0·éLpJ%lOïð—Æ»› Ç–-k#®¾ÈÄr ?¸¥jPš0Ž�å.Ÿ^¾]sŒÇ#+U<+ÊnÙetÓµÿ†Æ[J§ÌQ¥ˆ|¨AíïjÚÕ)2í­ViM‹(Âü;òÅ&¹ {’•™,Þ[™4ï‰Þ1ãnE µ?×$Í‹¨ÄšI¨òqÍhKësÛÏàUS2¾A¿Ñ?–Éd““ãEÐâjµOëê¼î(¢¾øîéL÷èˆíéAn��gé]’ßipnÕSðàžÞ'x¦.V õJ6Í¸ç´ Q¢[‰o –vžó°ãðÝ´Þ9-î{Ý÷ä’.ÌÅ,TÆi‡Ï‰<¬Ã/aÑÍØ&r»RÍT4ä1â�ÐŽïœÓîùþ9m@Ú-ÿÃK>ñ.n[N鹎­wN;ÿe í¶µ®V»3à"[óÉýÏçdÌ (¾g{åöÊíGè}ªÔÛr¶Tk—×.¯p[~[~Q@Þk3@rÀ %è›Ó€Á„å°È#&üAYD“¹�ê€ÚßÓJèi]>P†’ú³YÒÙÀ/Ú®Ðôn¤7À6R»wÖºŸ¿?µÃ?DÎ<3b–̓»¿Ÿ±h“#[øè±/ÍÙM¯BÖÛß_ø2&T|­äÃx×qE©¯V 궠ǀjݸœ¹œ�¹d̲]³ïù\¿¥] ] ¨ÿöæí @Zá$²’ ‰È±7Û›rôa ¨ú¡@†29N9NÍ2(¡{ðc ©ÍÍ�AlƒNǰBó¼©÷÷ŸÏ ÅÐb»¯ìÜíÜ3yº•A·Æ""¤oJß,Ñ1ïý1ƒ§Oa}æœ?wj{…ä“<€” V~®†é`VÛ^Å-ƒcqÛ´¾rIðO#Têó¹ò¹.YÀ¢ó¹rÕ~Eg\gÜòG¤XG§7xTÏ‘VŒ/è[Ú3Ú3ŸÇT-<þG·rYcÏðEéÅ©bX*ŸÛÉA™ŒBBåAžÈ3Â;@{<&Ø@ýåhb¬›'Yò Ê›uf f ¶z€“³'go�}€‚éÊ)Ê)Ö#ê-¹¶Ù?ö€í›ü.Ç7?GŠ ]¼£ ø Œ•LZôX§Ë¨‰|B‰¹g¨õÕÜ竆…€�YŒa蟙u=©øS÷¦î Rï›ß7߉«-S‡©ÛYplq`q %q5Ï¡µLƒ­¤U¤Uà|’úëmÎH‡¤Ôs ¼\—ý# 7�(®wv…;·ÿÔ['g(®IæÔ ö»-¨ë’Ý£=áͲ †ùÛ�-·¯S2¼b’æØý¨�&17óÌeôlŸ¼qÔ ¶ÑÚS7$�ý~îªXz±]˜ši#½[ö½¦£ÔùI¥âícÄ wëv¥—Él{Åp÷…*N["ˆ÷ÇcN׿²Ð謷/´˜M÷4òž�{�çBf–?5ñ´J0†ã~V‡µd¿ºU>~аJ‹'jqs‚eËn™»¡¤ßÙÚ÷ý}!Û³¦iKÂG”:s"ªŒLvW­·/´ôeL�ÞZùC/p½d\�h$›"À:?aRnRî†g¦Öûló¹óÈo©ªÂEÅDÅÎ_¾©Ü¸dè7¤ŠhÔtñZc]â@Lƒ\—Ó–Óòv†+~èóÙ¨3r€¼Fœ˜°&©ç¯§¶8£8£r휙œ™Š1™ ÂÏ#Œ#ŒSªgL~,É>ɾ€DÊôç¶´oPp6añÖé8øhcñ†uû‘¾ Yàyü&ˆE=ðå^*[*£QÚ�F; *þЧnOÝ\L'+&+ip•ÝQ6V6‹Û”åªåªuin5C•µDùª0ÊÊp>9ýuµ~"õ#íÔFqÆË™ÔûÖÛÂ�Ûÿí;áÝw¼�XH7º±¯ß)–=Ò�_‹sŸÀ �g/aWÇfNÑF~aqíé 3PƒÐÞŠ¿©î¬eT´ï8|Éô‘©j�^(IA]J´¯àè±Rø}—BQên Ub¨ýïµä�žëè¢S æL!Ρ×ñ§z©jŽû×j„}h)}n Ó|Ò=`ÏŽl¨ý¹f_n‹vʘä5p~«”^k@ÒF.³‡�¼’¥¡¹`wð½ZŠÈÜK¨m¬6UÝ&ãš”ñˆBÔ�¿/Û^‘^ ÞæC¥(òônf=íàDÛxI ¶ñ ?r§õQ¯±ˆ‚2MÅ6¯ú¶Šÿλ¹ôR¯é�qÂM&d?J ¾áÏ·tÄ]ǰóÏØù¹tÒhóÅ5ÄÏ­·ŽYþ2FîþZ·ô Üq96®vþ!¦š½ââ²màÖµÙv¿­æ·ûŸK:C:ÃHX3V3–„°Iu~@¢ zØ‘ÑH¿¹Ëw¦‡t_¸D¢Db‘~6•us`-H¸…¿dRìf‡Åé1þÑ©£pÜä¸IÀ…Å…¥¹Ýu7¨N)Ë ËÀdÙdùNÒ¥’3®3®£¹•ÒðsU}ÓÌçXÈ«¡l`y†íK3ÄcзÿjËž��‡‘DÁiÁi»ñªŒsÂ~…'ÂÑK2^2^’pWZ~§C§CÇ%òº²º2ÔõՎ묥ÕPœ³™¶™Æ]£—$Õ7øùv™ ßÞYsбCe½5zzŶ\éåj–[ší‡kT/§Júu´  ;ÌYVP¯ôäE&9 ž‰Š(z™¤ø¡¶Œ,ä;ktñï¯Ñ%,š©sИ¨iËr3’PôÛõæöÊ—1YW×BÆl¡ÂÅÔ¹Z{ èå8è¡cTHTꬴl4Ô†—ìÿ· 3 3›Òt_ë¾¶&(Œ.>Œ÷Äz¾«/;‰z“& ¤´•JŒJ,?K¸ŒÂl[;ÈBá°2ˆ"µ“«Ÿ|¹A±âô4@×K׫†ÀHËH[þš!Ô°«*£*c`n`®Û.¥êÇr r ò]Œ®D%Õ�%Ðç‚¥ë=ŠÐà —:¿5gŒ€)ý« ³sC.Z€¬ÍFìFì=Å?Í<Îûø+2Ë3ËG—<»=»Ýp™m%L$Lü¤Îä·‰ys-õjþk©K8jUÊUÊÿóNÔ_¿Ýðìˆ×àõ¡+@?¡îV'0G¯·FÇ�ÛÇ›PƒÐZ½/5áŸTWgzuîèQ60'“/lJçÆ;t28·’Ó¢3›˜.j¿Í*ÞGнO£åZt½U‡~$É�²S”3Z*Qü£AC.óÌ& oüÆF¨Aíw›E¯DxôMÚ¼Û¹’è3‚¹žÒòy2Š&ëOý{w eß?p|,!k¶ì²¥¬Ãd_B’ ’˜(û–uƾ¯ÉIÚìJd—ˆRŠÊ¾G&dKÔMÊR"ë¯ëžûzbJúã~ž_Ë\¯?æœwsÆÌéë8×çš™o?$@%´)¸Ç­ªÀš&�×píWhzŠ4v-/${{·™«íwb2“«š&¦Œ{¹J¯žþ€:çØ1½§7®áÚÏÖ(꙯hö³PO¾Qpºt‚íd2×ŨcÄî_”Q–—t* Ó³Ò¶á®ý Mô��J¦rõ–Æå�V6%–jø1› Ó"(í>4KÑ'IdiKÿ·[”üÉ*;VÍUŽm%úœxaW|Œ4Ásû‰æV©1yqMDÕw懙ÎwÂE7:·×4³E÷'ÿgÆ\¾?t÷*½øk¥³+~m9:~ê±÷…’÷½×y…Ît^ø‰œÂN/ûÚ=ög<°¿¯ {Žàðj¾õ!+¹[ÔC·7z÷h»Ìúmæ Š˜ôªS鋨��¨Z1À>ÇP�P’çw¤r“ëã�,�ìdýn³ÝfȇØîâ ÷ ÷²P8AG #GÙÖrx¼žÝ`äÈë+ö5!è]}yù‰‡1/çë?�§ÒÜìšößSB¥»!5!øýa s>K‰áú1bÓ4ö í5Ç[{MHsMHäÛׄ΄�ç#t‹âuIª§ n-"7[Û�Ï�X\o0@Æ›µ÷Zõ¢ S�¾Ð'ör›r›¦RÇÖƒ½ûˆ‰i¾ÖaÚaêòj.h.h¦ ÕhD ˜Á«©õ(s_�c˜=È9â3NLüôÁ݇,Ó…²x‚8”’0ˆé?”…}` üþ­á€ÂÂf‘3… É­³á³áÄPb¨<ÇÞ�¥I§I‡7—O}ßãycJ¯ À¹\Œ |mí1øj¶«¹>†" ¿xÑ­Ìu�·SÎBÎÂ8ï¨j¶WYì�@ ¢;ñå­å­ bsª~«þV�Ò)Ó¦Ö°ÖpöÑZ)ÑëQ‡¬„È9É9Áõ´ûŸ÷mK¤YDô©»ç;Óû6t1mvM{m³ßfîiÍߓ̕Ü0 ·F¿»Ûa�k¸ö+´e‰W—#ÞÊ‹­H׆کQs•©¿Ôêa¨¦”RŠ8gA'•YRÖ…k?{ÏÂÅl”zuKUÖ¾jc(G˜ÊyÉ··–íxÊE¹Ù½Ô•|Ëî®ýoÚ”òÔT'ìe]@û×qút«ú»—wï¾æ\RyLÙìô;c¦S2.YT渆kµ¥­„hkï7–Œ�ÖLZH’Ö ö—�~¦ý¾—¦5ñI—Õ’Ñ×8-^ ­(Ó/¼û¼CK57\·Ï*o†’éõË–ùÂÍÎ;€Sš™²õˆv¹†M­>9Ð�›ô™ û0)V)VÁgK‚ñãÙ7{® )‹”•H æ æœ°(Ó÷ˆÙïM®Õ(¶†­`\�²O‚>–ð(ò(ÊÈŒD�\5]I*ñÙÞ¬fÃx#(æÚ¨i¬i”èPí¢ÚE~‰�Të ŸªŸºR±R±Ç§¾1ôzÊ›ó}• WuÞT¤0âÑŽò©ÖDla¯Ë𼫺¿¸®‘x€¸×õ¦ëÍЩ†§â½Ó?¤J½Jý0Ök×[ÆvŽ.—èòÒD "‚�Ö Z/ŠÐg‚¦BSaŸS§¼}ªÿd´†¶üec㸸ðfçÔØ3â~~4�Kø¹e”Í};/ÕKüOÂõ¯Íô›!S‰ ôÆß8§†}ûœZ™ÈYÓF`”ìñQá÷eì=›~ÿþç‡ _�Pôv9¶>Ƶô—AšÜãÓ ýÊèÀèÀ–Šñ‰Nj$¿d …àךáÍð�ÔÄÔDï@7>æ3•˜ß”Œb  Á[vÄÐ(h§]÷²[°[`uÌÖ 8�Ð Rj|úä‰Á)MDô°Q¨ÐïÖïV*PÉWÉÿÈûW(È/!C!C¡<¢<Âáñ9É�  ³¿þ>ÊRÅòë3–4 Û»ä—w]Ã0òˆsu8"ȯóê :I—O¼âdàg“EvNû þRYRY1Ü|ª|ªýËØfO’õ‘õeòfKaKY¦YK0u½F%@fÿxÖx¸žª(0ë)¦¹~bÑb©ÂÓ‹1p”çÓÙÍΩ±×öÏ´WÓïÜ>œ°è.·#‚ái‹åu¨<ƒí´È#ú»âoðé\±2 q; >~€k^+µ>R[I°xBË0HŠ´Ý1*6ñÔ$ð°|Bc8À‘x¬L­{G'®áÚ¯ÐÚ^ÚDRTïò¦dqΜ6sAUÝ2Ùµ·ÁTu ü¦ÑëÕv¦»G²š|¶âÚïÝBÏ¿qJ»xÌXqš¶Ã$T33ç1ó�Rõ³¡&•ójCzc+—{hR›¯[âÚŸ×ôèK2Ãðî§5iÖ’œŽ.cû(R=PêKõZ�«ÈÍÈ._9´«æQ®áÚÏÖ&è3¼š#][ì!V6 CCURßÚ[1Ú‡ð¢8JÆúÀ#¼X¹ü= Ûƒ­/`Ï:ñ�BP –§îÑìT€Wm6 Àƒ@:–ÖË¢]>‰mjn-KÐÞxí3 gÞ’S’SÁ—͸–rŸúŽ~CYNY¼¸¦«| @‘~/`sðBÛöÕ€#À¿#Öƒyô"©9·9WÂ4•«×MíèAÈéb•¡-Fq‰;ïG˜$xÄqM@îjîê8B5dbÅs•çªòå3“ 7ÿYxª�Ã÷åïÝ�b™ Ø_ˆ¡*4Ò�áè*pº´´›Šé §½Û©Ž¡BÐŒ°Œ0±ÀÌ„äçôÝ?��´~¬;¨;hA ›MØÍ°›MM¡®¤GI�Ê‘¬ÅDz7@Ün@|@{ÖuAÓ0S¾uTÊ&lšš¯¶Ù¬ ûý‘Äœƒ&:äB‹¼!^t±n}!N[b‘d†«,�õJz‡z߯|cÖ%öíY'RMâ9�‚—àG¢ÛÊÙ~¸¶ ??tä‹õRtÇ|°É_[«n¤éºJ”�¦@ST·9«ÔÛÇö·©|-;/;ï”…Q´Qô.QÀiîlQÀŽÀû3é.$€Ë{it0<�¦‘ƒnr{MyMÙ6îä^ui .@w‚öX‹-`оFìÞ§Tˆ2Š2 t8v8~pè˜M3Fï�Þïs„U­ôWmL·M·�•0ìûx&’´¤Æ¥ï0’ ÃU'1>0u§ú;Ö"&T¾Xò­ãn:  ¶²ZáWPPænýqNqNeö¶}¶}ֳبHݓܓ(‰ƒt&Í'ÍÙ×âtX�A `p+áVÂÖö?Ÿ)nxõŠƒ??Ó™RÅ®‹Ê¤L³YöÚþ™ö ùÓÚˆ9køøvWß¿Dž ö„ Vm—%SÕSrù&z üñ'Ì!G„©ì píÏkƺ‘ÕvÙ³Á–a­i�>n2ãõüÚrº[ß&L’Þô�fæç—@¡píçjn«‰¤*·‹¥MpPpOª ¥ã[¦ …ÁËó¶ÌRDÄtŒÞµŸ«U¬zôžî³¡þذ¬Ûq”WäîaØ6Ï *®Ó¼íÃF„ŰƒšÜ/¼¥{pí÷i¹è)ë�°“(¼Uo?a“·G"/‹Å±·F«ðúÞ…e+WVÖÌu2rĵ?¯Ý®‰]ÔfM‹Ðè=EYûêÒtDŠ1ÁT]°¡ïpÁ{r Bmøóóž'ñq ×~¶v&âœl^ú.µ+ÝG¯”U¶ï¾øÿÚ÷ëwiî¬�Cò|ÏÏÉ×w¼§9•H0õ~ {¶³Q¬N&›6þ¨/îù,t³ÙÎ<ÄÖ{=E‘•÷ØjÃ׊UE1šë‚Îú�:ÁDRª%jYw{fuúk ž ž–-ã–ã–~€‡Y€L(àìå‡Ëö5‰y9I Ù^ü{ ¼xx›€¹ë/çòÄúÿélélŠ…x™x”¶Æ#P$ÉeÅD]Zøt­*Úõв�N‘.�.`Ï-=Üèu—µ›”iËÌ¢HO*n6·Äþœxû½úJ&o&Öi+±-mz÷ü¥‡Äp5ˆ¶C*k­U’¼>}cn)±~n™L‹y.Ç©*Å£¢9æÊ.oÑcð²Ùœ û¹üL{Eü/ÚЬ�¸ùUS iÛèÂ"õ#›÷¯>cÞª�¥€v>9éŸMr®×~ÍÅ»Ó å )g�®S–©Á’zoÓ…áb˃~WkD܇%ëì/º’�£ÒÀµ?¯í½�ŽäyÙsÎ|ñ¦�L¯¡YÓ–%i–±ÐÙX<­ z|5Ÿ¹^">\Ã5 µ†uç7°­dv�3ºÈ< Û¬T·3šu^ežio¤Wz5ä%Þì\õÿFSæÒ&›I[h8`MÇüî11Ç©©ãY½„6ÒKJûº?pÆkMRTPÐÄâÚïÝú{ȳ·Í<£²¾¼U�‚v5w$ã)2u1‹#IJr÷½Ý‰‡i[OЊÑkã®ýªíÝ‹$ß½^N#ÎpqE†ŒmU¤«!µ}hEÒ+5;æ–`Ç ž²î&Ä5\ûo4–´ Û� “m��z$ tüV’ïüÛ{ïáÚïÓ¤¦ìçi*Ê´IÍ¡�VÕ±^.÷‹±çÎok](Éϼ#:^’ÍмÙÜ™q\�¿qŒ Û…µ Ù ¹ÇSAÕc®c®Ö;Û»÷­ÜhÞJïÇÿµp­p--ŽëÏ®?“Æ0¢ÙWêÄeŠéãÎ(sŒrí&PMN�v�v÷5æ+¼.·ñ@Ìp3}ÐëSÌE¯ý† n„x™{™?¨ð£ùÑuE—P ?‡û÷Ùáìp.jó�éCô!ÃwU}Ÿ5éé•8`»T­K cÎ%‚ó4Ê4c‹÷G­ˆ¿pAP7ᨠT†Õn7t\5Wä�€“ÂI§I^2¾d¼Ç„Mº‹Ú™Ú¹îpõöd Y¸Ö.ôzi�CJÕKÕ±çÎf¬µö:4vV•w¨Úåtç7›;c_(7Ü‘üï”Ù‹Bõ!•>gk¢®+W«Í¥Ÿ×"L/´Ñ~cî,õí÷Ë >ñ<(T¦p’Í �k¬Àß}³µMüù¡—§×›Ú"éŒ-_u-îý ¿åóS Ï”T É&Î�I5]*7æ.ö52 2�’ˆ÷üïù]O’k)ÄÑ䥴 ÓUFf¬öФl¿l¿…_%å^U”4t‰¥€1pÿ˜˜|¶³`=‰Î/tòV¬þ'DÛóÚó ä äòícf7¦l©lI—¯ª÷}><"ÿÇÞ}ÇSÙÿ?öÞ3r›¡N!+Ù;!„ìB²gÈȈ"+YwöÞœ¢(2£DÊLö¦¬ŒÊ�}»ç¾î8 =ýå¾×yþ÷úÃÃ\Ÿ·s½IšÖâÕHÉ+â\HÍU%-†ROÐh?3u Ü (ô",?ñä�;&˜±ö#òøóø%Õ;:;:‰#P00{0{t«úÃ1á˜:¬[!|¶;ª àÅóÄõÄýgÏßï[³$8…¬  ëíà�·ˆyì4Ç@=Û?³O j»¿­è ;³eõZå/~ S O,•_í£$¿†‹6lÄ—ÏUhõŠ�kéÔ ö«ÚábA©3wDjï±d’•�­Kœ;7æ%óÌï]¦:v@q'»ïCÜ|7¨Aíßچɸnj�¾¥ëoϨOñP0QÈÔúWìãëî5©7©`æ±”{ÛCÁ›%>�ú¬ÄlÒ�%þ€·ÿiu'ùNÏJ¸À÷f‡¶‹ÇmuE…1¿•åA�ƒúÁ„æ5/7/û(.v\ §-U›ÛþRÖdÖd¼Ä�Í› Ó€77'†|½€}gJösÚ2oj"Í-~TÍʸj»jÓ 'ohWOvƒ×Ó AÁÒ¯‘ÔÚáø·1j«á½á½� € £ #u}H7™×ž×žéÓ•7™ovÖb-(4}ŸÏš„4‡1À�Éa¿2)ÒýÜž –W†ã?KW Íz#ˆ’g›g›·òß¿q±‚èGÔˆÖˆ~lèÀîÀ6«Duvf©x©øîéʪB„®él%˜µ»€G�W‘Wõਨq¥"ÑÚØí ­öµ«÷'wº@Ý[Ò*[¾7È:÷\ž¡‡ºßE'»úÄ·§É"ŸKë_Vã¿cC}}Ë=Àß»xý Zˆ« ïý9²GiâŠG{=¾ùÜžm¼Og£o;²[~K¨^ÄlåÔÊT ¹Bk»ÌB¡ÛÀôB¼äKòbòb g§œ§œcßLŒGª„rYí:Æ#€ö'!ŠHÜñx¥ Æ°7Ÿàéáéï'.á(ƒN5¹Õ!5z+]©v1ïÈÈ0ò\²\²ž2ðO€\žUÁ«àtqtqilj|â5â5“Š˜Æ÷�–mÈe¾�Tîp!c=Iz”…m!Ô£,„ñ³à›na €¦Ó×{¯÷Š´y¥ñ9ØDü½½¯8x"<±á*óÕZÕÚ4•P–à°à°~´­Fßlw²  ò>çý?ïˆk¢Cž§Ü‚[§/Lª xZÖ¶“ít€z¶wÓûCÿ�­RŸ½AˆÈf#I„gÝÕ²Í,óOBtÕ4Õ²ý±)>L6$ý§¢ay¥ePû}mö¡˜_¦ã©Y�ìzŠiŒ¦cç‰Y„�Ü�ì²!“¸×ó ôÅd9Z`ýj¿¦¹ÌƸ“º²Ÿ{Åœv�&ÿî´Zå­·©býDvµ”wjV7�½aI�„]PƒÚnkëzu‹¶Å ËÃÇ-ÿ„…î©(´ÚÃp0eã ÕŒîð+–½½™amPûï4¢ŠIη¬ý²1ƒh ¢óâþif 'ÓWµèÓ“öa=ö„E;"®Þ%‚Ô~g��g$jà³F6lÐ~ª� ÊÛYT-ª1�¨÷Õ~9Ú9᫆uùZA jÿ†F;)O[£ìG‚»§ÃýøÍâ&=�¿�X|7™Ò÷ž­H÷�TæØŠ$*‡Ô~U w)b -‹�Ñ^`ÍÚws4®¤åÆ&¡q¾pƒÑæôÇì"†RaõW8ËႺµØs›níPûw6œ�œ'!K¤þekÄ*†ÖR_m`ëûwuïH¯[â1%ßèš«™•PƒÚÏ6²) j¶ã»«Ñ`0ÙÀíÆ5l‡PÍn•A"VB€ôZXP ' ÓQni1uþRV'í<í¼_ÀÖÛ~T ÷|»Pg8Õ| i¹ÃBôºNaHah¹“+ÑU‚9ÄÐ*T rY�x‹4•ÐáùôJå @\üò À¨Í¨M7v+ÈÆ4½'½»»„ã9Oú·™$›$Gð%¿ü>Š X‚'xacHáVàÕ!e=(ØË'Í—ß¿…¼.¬SàsÉ÷ŒïN…E/¿8Ê+?& “fóz6ôì47*®Gšlšl.ØÅu¾¾õÉ[-in§¤à‰“Œ“D�]YWâà2È» ¼S]Íé8¿o§ÙUÂäfvèS•b<žýµ™§Øó ß9ª½�:–N8Œ!Ë'…¾Ê?à�çg>6€ß…&Q½fwíËÙ•ÀöÙ•èß»9“œròí›9Ù.…F&`N*ì4k@ý]~×®k‘¢ç´8ôNÚ£y®’ÏÃ3 á•W_îÀÐäm–p>M¬%l 5¨ýlÃVã,k;kmbp‹óIÞ,aí¥C¯&÷† ¯ã2N›ö5I­ùÊžé‡Ô~gÓŠp¿OG+[Å�*Ô::Ñ=m„]KZ|�¾3÷p›ÀË'�%Ýhž:—K ¶»ÚÇŠ´¨¬=SŒ]Môç—D•ª¹ †4O±ä ×Ê+?\u=>›©4iµÝÕúZ\5V4¯é:Þ§ŸÉ¹y­F½Ç?bBÙ¿•I§ü˜ÀJú‰E„²Ô ö³-ªÏûüÃ<]^J©,3ƒ{¬í„TC´bŒ\;I³‹ ¬/Å/�È–B j»­5’zYpœ/‹M#Iã¡PíÙÍKB»›öà}­i+ö®¨ÔÎÚŽ2Áhhž'·¿ßi®—MLòP+¿å(õ%áñc;Ý3¢žíÿë�¾ð.áµ›g�Œº¥3$y8Å^vÝ Æ!ˆÑ×CÉ,Ðr€÷¨Ö˜X”5Ô ´™£Sõ½O©{ä½Ï><«ŠàÐ�Á)}–—z�gúD5Í�‹÷Hú…U±¡öÿ¯åŽ ÜŠ/Å:GeJ½à€¶8LÜ öT#îM{õ }‰6#ßp>øm¨ý¾æXãïVÈÏý–Sß}FñæSÃpœN| > ¢›…škç¥çÔòø—¡¶»Úb}kRœ„Gέ‡¡Fn;*PpgÚ½©°°âڣ˨uCkß1ŽH¨íþ†sÀâ �ÒÕÙÄÒ*š ]vC#LGfJ1…èÅ fã©wÂãSî™ûŽ£>ÇàtØJ£/P±çr<>¢°ã÷ŽI>=ÇdÜÚN,6/ Õ éV%æ Âdà»�H‘EnEnDmÓÞº*¤xmŸ~ ��U¬† C°µ‘Àˆ€¶ädI@2 ‡„g©¹Êwä"és×ç.ùz9gi¤ø¨þÐuÂÛIWoNm1Êâ@yTyô²!@�S�³4Dþ)ˆûZÜ•¸+Ÿ0Âf~ÛÿØ»ïp*ÿÿ�ã ²÷:‰Œ�]È.[DTFV8È:FÈ^'##”2"›OÙ#«²÷<!%»!¥øu_§û§¡ëú}¯Ï·Ï§s=þ{^®ûòÇû¾.ï×}ßÞ¶œ¶œ®.Sé?§5ßÎ7¸˜zŠ&áS¢ííˆ&<¿A½ÓÜBxPü+Õ¢vm‡)€EA�>Ó¾Äëc…9¿â‘ê#U8“ý3ûg¯Ø1ízCjOj_É?£;ðnàݨðfô³[1RVùdd1÷èÕ™íáaæQiÁÔí8ÕÔ¡á�#>ÔãZ>dN·î:vFAh™·WXHuu4Sq©µ– î;{ô#ßߣ‹¦uõ®Þ5'‰Ö-Òð�ËÚnmïû|iõ­¸= é1• 7{—âjzb Rbôô„­Z·*Ýñ?ͼ0ô-{ {��)FFÝä€gLj×q^€Aåž”;­Úx´k�¸Á oéÃ�Ã�6ªZm¨ƒÀ½(ëеa¢½h7.ªï^¸!a`\c\›à ¼Þâ$9  9F9Æ[�·‹²ñ™ Å�âx9vCþçzØ÷²¸®ÞD£™Óº!(†Ö 8˜QÂ@ú�ê«eÇ,QT>`°�º™ºY}ƒún8g¯à¯——LP PxˆéáËyÑyQ;ûöþëÁ׃OLlf³'`wdâTâÔÎûò.PÀÐ�SCÉÊšIkâš'l·GÇ\ÛÇ؆m@ëCxuáØòkjÒŒPÃýj'#ßIåR—Æä±CäÎÇÕ³^@ÝÛE–†m¿[Q,€’Íç’²­yD´%<§ÌæfM‘È8òê\G3íÛ~Ü8��؆mÿßváÉÑ›)WH‹£dÙ2ÉócÙZH9¨„³Î¾…x)¶ù¡àuùd¹؆mÿ„¦+Mëðz*ŠòÞg¢$?Dk,Q·¼›˜'zrƒR%µ†4ûÍŒ!¥ë%lö߭5ÓéL“ÉÓ“.Î?“²�»Àè{ zf·óÊäX)qEQŸÌ“BJò.löB;\sN!]®~ç]ÊSµ­ã %šcžtÆ>¼ä:İ7íbZzøI<ô]©ÿí*é[cPÛ`ÙW¤ÇŠdšân †9+JjÄ£½.µÒ¶×êbî¤!%Óv³"RdçV’-œ—1AY·x "�@í@�bŸÆ?�7K'‰LÞ“a°LlþÖ2Ý2]¦Æ€ï€/Q ÀÝe´°'ðB<ä­M€½Vo­ÖÉ›${nˆtˆ´Ü¤UúÚ-=еdÇ¿@mãð´�•—é*c99cF€?Ž?‡N! Tš՚Õ§§TåOùêÇ ÄPbª>ŠŸ£LŸ p@�  í/rñXE“½ ÝÓä}1óUô| @~W–j–ªÉm;˜bŸñįcc]�TéWégõÅÄ9ۤפç+ØyEAHAÈŽf³=É[yf¹s×ÓÜ—9hRDntÛ®‰ÚòÕ Ú˜>åÃ?ZOjÆV�Ÿßûe¯ƒ¨WÞ¦~.suݳ+û”§Š"æ¹u’÷ûR(ίòöØ(Át#0ßÁü óÿßaÎ¥l¦W;0ì…‡>€ÏêÞ'0µ|§ø¿Ñ°B¿ŒbØ€³rÞÆ_’/l‘×ñ2²ÛP˜÷Žóa×ua2‡hž’²§ÔÚÛÝ;dŸï�äVŒNÜ ˜ÂË6C^áõsÙ‚è�öóîç [¬�Ë UdÏü-Ô8j¼QºÌ®Ìn#¡�PtäðµÝ½âHí Œ@‹ ¬~ jŸÎiÏi[£i0;,âä@)‚ >ññ ¹u¢¸ÇE\à€ºŒº ÑRÀ Û ÛF£d=Hß�B ”e”eT!¼Î?¶B¿BßqÇ2ã猜´J´]Ã5h7™¹ÜmãѼBÚõ* 3²|ƒ¿RϪ»‘ è²±:huPî†éQÚ�%¼_��ìGð!øFç1�ëÚTÚTRWLààO’nf¤¼Õ„%€œ“ÆÃ|†ÀW©')9÷ â)Íjóûµíž!`Þ/;d*mpGUç\‚ÎI}xçþQ$!X/Bh™ÌúϽc&8›Ÿ!F?Càßú áà—÷²&D’MCFTœ³ (=Zh·›ùbþ.Let¨Î<Á[ÐL¿–ee äBe¯)¶aÛ?¡}™‰™—8;Y•ªÉS"eõ)U1œÔ@Q׋ɄD™Rˆ¥•`Ûïß^ÓCé ’nï¬Ë”­7äc Rˆ}SFPÊÜÏJL EtðÅ Ü*†•cÛßÓ–ä––ú&›¼º?@ÏR¦š7WÆ<˜æPT{FÎøÊ‚á/Zÿ£Ž™$&؆m?j v -.͚ѴZÐjØâw^³Ž·ÿ�·þ·4�¹÷Ú f4†É×¹»î¥_>¦cÒ�¹Zl_ì/Ç•K&ó”Õi´"ÜnDþùOÐ+µ[ \ÄD¶‡0H¦°É „¸zjîÔÜ›™áÕ]>ð^‡o-ÞY¼³¦ÜoÖofdD—šN+ên6\Ë0äp‹  Nqõ€22 Ê Ês‚‚—îIŸ--¥³�x�aÑö»V Rá&‰>q~â”Ëœ€Ÿ€›¹o’]�b’b:Ôx¨Q‚9fåÇd7d7˜Ý:NÿœüI"ß³€Vw4ùcõZhGò=ì>O’‰(~ÕÛÕ,6ä¨Yá¦å¦}¼ÈÐâ°>ÿ+ e�2ÄÙe²Ë ý˜à»�8HYë¹£2£²†ŠÍ ïo…“ à‰†âCñ1÷@‰óýÒ×{¦È+&[[_ ón·Âܳ�r!Ùƒ£>]ÿæ¦ø`Îtô±sõ a‡YŸ$µÕ2�e¥ð,.…“:=Ý¡ýöOÕ`ÛŸ×J,´kñÖ.hèûˆv›éL Íõ…é({¹˜õ�Á¼ÇXΔ* 1÷a¶ýZפ%‚¨žã1½ó oú²±ãźb#Žc-çOŒU<ß覭ÔÊls'À¶w Œ™µOŽ=c(½LÞk¨–žýˆîx‰ÊÕ@£ÚU%ÕqÝ™õxYR{†¶ýyM—Bº(=§:¹M­ïJX)ã ýX‰Ésè=¸,O¶‚o áa/¶aÛïÖæ(︵#œÆh:¬!æù–ÆÇëľwvZ˜ûŽXá‹G-Ž?ĉ”ȼAågq s äuòfñH³Ä±n¤réB@ïvóJ$—}«Æ̘vÂ7KMÉÌ&�žw±t±\M&:nv©ÍFNPüñ·Œ�{M'ë&ëòÖûÙ£ÉÆ€ìµuê—UóùII´nz�AÐiV33›¼S”w¢ã_½µ©øl€ð%”w£E$£f=ï±ðµóµ{¤Y¥Y¹"´'AáƒJ-J--„V~ÊMê£Õ¥Õ ¯ò°ú9}¥¿Ê,NˆMÐFÌÝ2¹óÑÌœnª¾m•3âþj7�Æý}*€£/.I]’ʹ÷r¡dé¹è¯ ¨"¨?p<òx¤”"&¯á¤�¤�B5Q%d9²¼·q3šõ­VD)·÷Ùí³Ãœu]SÓO—윳 Z&å¬à ÚnÖ…ù¾ÊnÖ±'F§öZcp£ˆ„�ØïŒ´Ý£¿q‡Þ»YFW}x>â;³.¡ïϺè‚ÝJ§d¥>Òç³Kík»¶[ÛTŸ/-ظ•MõCLe76Ó�¢›.]¸9¹<¹lÈh\‰Õ¨[nÒ©ò[¦Ö¦Ö�â$—$—ÎÑ8 [‰Ïg°YÇH€e -Ö‹� 4žÂ§Ì§\ÜÉίzœä:Ü0 º{�ͱ,$n5%°bºbºˆ  Î¦Îž-¿4jAÍOÍO� G8Í^sÿ±|Ü|\ëùB¹ŸËlxSsà@+­µÇùÔ" mã¸oLù3ñ“_e×D­¸/¦‘À‡€»ˆ`vkyªE¹S¹Sm§öíT­˜2übb{¸Ú&Ø&ôTl&±Õ£X@^Ø…• +ÿYÛ_¾l™žfáÊKw V€ �•êm7ëÂ\Û¿ÓYZ{fÂü²ŸÉÉãÿàT€Î†Õ'Ñ$•ÄÎ9TþeÜ9ˆ/ LÛþ¼f¨M„¨‡eÙ¼õ3 êLîs‡}ÙÌ¥)¡�O0c‘°Àå—ˆ­ÏElû½œ{#�ðxU+•ð®ä9"ÃE…ñT\³¤CAʹZO2¥u"†¼¦Š±í÷jõç6\†¯ŒX’®´|Òî=ÍÎ_yR`Ÿ«Oô {÷„ÁŽBEµýO/AaÛ¿§å —,V|/âl\òä5š×BÄ E3uê‡)°{T dÉÕž”âU˱7°Ã¶?¯•5D®i2$‡¨û7NÇ "C ñ–šüøwxLä¿Þ«ºCSùqŒ«/.¶aÛïÖÂC¢ÄsS9”ò͵NË)PÌàãþ_�õoiÎ }ã’œ�£$› {_“ù'à-½þˆ9Û¹^+R”Ô]Z¦v%ÿ¼ðâ Ëíf;Ô8HíV{ºò0M?Ü,·DÿzQv^u§êΫá ϬVDñV®[!¿ªª6³K__†`ënï ¯D2J˜Ð”÷´9£ÑZ³â�N³G_޾ü^¾Çbmç*H³Àš”ÿ܉ÆÃ�»¿ò#� àÉã'�;!€šK5—®QÞ4¥¦FRER%&fî:0ûcÜ1Ü1Q¦R ?wDºÆÿ¬À/-5ï½É# ´s9ri-øîÓ_±�nòn(L " ‘±QQ3ö¿"-*-*‹˜ƒ„ƒdä$¦�OUHTHÒ ˜ LÐñÎÍ–µ¶²Ï8*x[y[aÎ-]à ÚŸ4ÛäÈK�C }¥·›[b~·×}¿¹–ö-Cïs¡�]º÷=ÕSÏB" -‡»!µ� 7ÝÞgn)òý¹eâù¸ŠÈ¾rˆ¾ÎÉI…ãõíÖ6ÍçK�1nÅÔPï‹iéÄf(e�—Ã1�ßt®S®Óâ”×ZˆVUq®ÊÔ·ccžJ§¥åÃ’ž‡üÍNM6B¦·Œkw&Цw~´‰8ããØ] Õ}ðž Ôß˪R|³c m/M Éé¸3ý€eÃeó¯٥٥†�„ ÍÎÇœ� ä äoøŽ�ü˜]Š]Ê�§%m?we£êA à„ =AŒU±¡!ücõï&¦ùá~uVÀâ¹'ÀìöâÉÅ“ÅÕm7³Ù¬~EˆAˆ�yT’F’Fy ¦G/*_TÎè®ä°W²WÙÌpr+ 6®Ð=ë{ÖàzºEþåÿ‘“Ô ‡†±¼+�ßǯK}¹g»¹%æÚþ�Ϊø;Úø[Ka“ÛçññDŽX…ýuO¥ÁÀònµÝíA:ÍL)¤ý„ï+Äå,ü¨"lûg¶Pöç{YQÚb´™çÏ}Tn»6Qh¦èy»�ßyB´É:ÖiO‰Ú¶ýyíX5Á6‰Š2Y+8t4š]ßøÿØ»ïx*ßÿ�ãŽYY…RdË&Y•(Žc…²É.3+#²²gd$Y%Q!¡l2Ž’Œ"%[úuÿÎçþÆièñø|¿¥÷ýüïõÇyøãúÃ}½Ï¹®z9:éƒtã¾³a°ã唨Š.ó=[÷˜B j@kòëÎy"gö�Ö~^7Šö¹(ê’·tíî ú…cV§3ôbu5n_ó†ÍâB jÿ‹vˆE•ð}òÒ9“í´S�ð˜.Nkeöà˜\‘–éÞ÷�9öø[ârbò°¨ýÝ­Etþ¾‹Ô$†@ƒ˜âÓÍ—éÏÎ^]ÎdJâ(ãˆW¡h2¦à§Ý{«Q›WþM'¨AíOmd\9'áïh{[gµ)ª…�,~Å}[]¨35úƒeÌÌdÅÆvSðfH¼Â|oS_Î’ÓÓÙž'q‹=׺w£÷6ÚÏÿ6k­çQ2ÓYÁµÈÏ�Ná°Ë�öëz“x“P´äÈïQ3xKmˆý¤Ѿ¼¦¼¦w1•ÏЏ€ð�-Me€!Ê„44AÛ …ˆ»»¶šG‚„k_ˆê{ðH ­?߉³Ã*‹ I(I¨¾t&í7y ”ŒóçýÔÔÒ Âàû€óß/xЭþXa~ªè 6ªíÈ«R<_´œgÙ»‚¸{Îä~�´¾±mgÀÚkšqšqäýrd‹‹~þÏ0‘1‘± ÂÃ#~ˆ‰æ0b1;;qABh¯Ð^åÇk™Í­çæˆÊ¹Ëy—ó½í ˜A¹ñÒ‹üDë’ßÝïžË¾·až#ß,{/Œ>Àâ†a�žë {«šÄwºdám2ÚÞ*ü–TÅØkÞÛþ¹k“çÛß?s…›éâyÝו QM›G,n´¶é>¯mê²õXz§}1®eDb8Aóª|²ídBÕ,>‚"ìâ‘ÕûZÛPÛP²¨íEÛ‹Ná´T!À°1 ¢ áW HWD¡y–›ƒ�Y[²¶´T‰Ø+öb$"OR ZÂYñD«Ó³ÇÙ�@)£”{îdîd'ró²@ñÊ÷Bî…LäNä¦8F~Ÿ¡œ¡\i”òÓ{þlq ö)šS©Òþ4W´€#§ö"\ ¶ø"ú�æ•O€­%B%BÏN˜u]Þçû>?šuÉuÉœ˜˜.¸¯èɼ}ööY¼ïZvRë½-dteùdù€ë©�½žnäåêžUp3Õ¹UÙDB¶Ñ>æÚÞLç‡þ‰­\›­V˜Øòc’(-Þ²£Y‹qz$öñ<ØñÒ=±ÉžL–¤½êÑXY%¥Pû}íM•¸Oº�úäõŠñ- ò¶$,"BÅ£�–d’·[±|ú/yá°̳xµ_Óο‰q†;²Ž0_ ¡¾Y<. +?…x—"ÞKlU¹½ bqÕÁ+éQ'Ô ¶ÙÚ²VõÌÙ¢ÚùE³H¬à[;Ên™ï`Ø—üqå -ÏK“}zhKÔþžF\6Êñ޵W6¦Æ 6%á{­Ý8A•‡î~“6¼÷±V´]ö[¿bb¨Aíw¶áØ)FâZ>ëz²�VõÂw1•ˆ'׈Q#{ÓLÚˆøé}èô2Õ‡Ôþ„F3*GSqÔ‡G»³bNQƒòÃ%}¯U¦TAúÓe©®RGÙ? ‡߃Ô~U ;_È\zå�Æ[f±ŒÝ9Ca¡âX±šô…)ÒV¼éÖ e&+°¨Ö.¨A h¼„W£?öh_سžêDRµ²O¥ŒôÎý§"]‡.�œð&rÊWJ¼m5¨ýª†¨É’ìj7Ë.i^vÜr;òp¹AQ#ß ¥aãIË—Mz|)œ³ö fDPû}MԨ̞D¸™%Ó±bJ-ÅÄÒz·E96V ÕXü˜Ö±<«ÂB?ìVW#¨ý=­åïÀ¯ºüúÉlïø¨�ù0wtÛfºçæß4j¶ã†ÔQ}auo±N»˜56(Yµ`ÎF‘xáÙéðÒcûH½È‰6š�Òð°$)Ök“|2„)Åe­�l�ß�¬IªIJò(ëÝŒI/gãÇíU_ÓYÔYdþDõœê9 7€9ôœ( +@A•‘ÿ€íb(�æÃ€Ø wÛg·ÏÎpW�¶ºm©7¨8 è#ˆ»5­Sfþ~UógÀEó‹æn3€VÉVÉ�Q† °¬sûÏí·ž²ž’yȶûû‚;ƒ;‰WlwþX7ï¾ÖÁ›E´;„™¼ùѸÅ&íÚPˆÓ;q»º_ô À³¾‰®‰®žÛ-bªÇ�íg8§;§GŸ»âÅ¿¼ ÓåÓ08 ~;i©#ˆäv_KñÌzd×Ëg�$sl,À´õÊ�(ko[Æ œ�æþ˜÷¿_•Íí5îv$Õ °y(@yÒ\b£¹?æÚþÖ�Pû{Zu¼ËüD˜lv¿¸à‹¥)Aæ—¨öE#¼˜Ö mM1-*¯ŽÃÅ /�ïCíÏl" ~ÈÕvt¥ÎìQ'+p}⺭{�•©�ådj;§ögí=ûÖv8£jOëj°ó!p£�÷âftáÎô WÄ{t£[×—êqyIÂ`’d±M«ÈD¥1Ô ¶ÙZÈñÒ8Õàü~YK¾ÚÉëD7LEªãvä/,›±–/uª“¸ Ïm™d „Ô¾×Ô‡Ûò·h®z:Âïœ ŽóâÔjL}Ì&ª'Zs‘ã§ fåÖÉU§V¨ý™�ïcfÝå9¸oéÒÎX¥àJ*¿Zfñž•8?úA”S¢ü¯èŠg‹éåPƒÚ¿mdc¦TŒìÒÅóSÑì‘}âñ¯3iÉãá|ÑV#d7yÏÅH&OWlƒÚæj¹Ü FÈ«¦5<\”‡ÏŽÄjÇe�S6Nœ�èò¤ËÅv¾>OoµÍÕL�éJ…gpôÌJfOZ“ã!{Ò"R›’λ\^ý8´�eÇ–{ñ _vCí×´ûäTd.ÓD1ø¡ô&äVÔn6«ð�Ít§ÜfjW¯·¯P/Ìp†FËå%Αųcîï£Þ‡öì,VXý˜s¾¤@ÿ^€y,ZðeÂZ 4g¢9d`]BÓkö/¤Ïvæà¼Û˜‹˜‹ðí¢üD”F8n8nAË\Ð\ýWÏAóÕC«‡8cå, X Xç߬å[²ã$Àöé4×4æìÊ¢ŸAÎy/QÁƒvS»7š]%Œ®^~ª\Dp`Oeº:Û“›zïíTÞEȧ l‘哯^äï³ÉrŒ3yÑ·­&ù`ÉÊöõìJàÛ³+6açíöÌ»JKÜg‰‰~÷÷³àÚfüüÑ\šë‰æº2`¢D¬µ}Ôl‚þ%5YCCqVW�/'…û=ŸgPéׄ̄ÌF-‡õ†õ².üÌò!©/l‡”V€™>'òµÉ!Pñ„s¤sd›&‘Deö Èâ8‡¨™}ÉÍÁBÄ­é–Õy€«ë@¯M¯�U�5$*Ä*ÄÚmÚmª:¶ûØ÷EÇ„ãñcj;(-c�ôÑ¢¬r›ež¡YЙŽH]¨ZNÑûÂ&íÄÌ‹X@ý}ësÖçøÇ³»äÙpü _-_­¬«ûã÷Ç+xaš8ô”à)A‰'é5ã‡ÆϤ¬å@º^õ ˜ÎNÙN\ObÿÜõšdŸyÓº‘c—Gpx’ΨÂF³+̵ý»îα ô-l£Á£³×Êrü(Õ–¦ÇY~Òæâ¾@ïö-j¼�’º$‘³PƒÚ¿m[U8J[N[œÑÉå¨ËzCTé±ÿuíèŽK¡"ËøŒãF= ÒK^‡õNõB j¿³!®8ߥ¥‘½Ï�"Ü<ôªk\k%¼(„®ãO‹ÀË:ÓŽ;]07¤÷¨m®ö©ìZDÆŽ1ÆÎ:Û9±#¸už«©³dTÊ­\tT|“~dÔj›«õ49ž\P Ò´»K7‘™T‹EµÃ÷Ê«£ç·53!ïÉ ,$`›É>* ƒÔþm‹èq·­ÊÒäÝ.�a¬s›Õ´õŠ?åsqF®ªøõ¢< �ø¹ÁÃz%PƒÚfkOàLÙmKã_SKQ»*VÒÿy�¼ö–æcíÅ0Á°°š>¬—¹¨5‡éúàZÿóx ßÅF› Z[›iËÝ×,’L^‘Aü5X ¬&¿†¯†o¼ 0ADXå\^"­h‹ŸÖ@sz¯Íb“y‘y½aq½œA™4ºÕhìJlÆC“ñö=þ‰?é>€K‰KI&55Öç\ ÂëÅfÂf ä ärr0ú¾œúœz¡âº#?"A¶|.€�ƒ¶Ó`¿²nÒá*=«æ“)Ÿ/P«Êý(€‰A[U[Uk Ó�kûn7üŒìúìúqqGV¦ Ñq+q+͇4‚å¦ä¦ü×*K^¯6àC”†¹ÏÈ¢ìôvgâV‰ôRó§E´p��ö—ó·Qûœ ˜›¿SìMpæöÌÛ'�\c,¸ÕmK*:¤jöìÝy4ÔmÿÀq„È2v²†n[v†�ÈRv‘%·}×wö5²d¥¡TÖlY*k(dß—lÙEd« ŠH~}Ïô½cJ:çyÎósßÍyý÷>Μùãšs\Ÿï5sbFOªu¸®S¤ZwòJÝŒÅûÁœQtûœÑíëošÿ™F ©Ò¹ß&Få#ž 9~j·¹ê{ùoß1à{¤W|-Û(Xô¥[2ÃÝK\Úl%�°.a°‹ìxAÁ mãÓ—Œ>�nè´Y±éºþ&*‡'½ÍªÌÔ³Øõb÷7g&†óϨ–S?òx … Š«ã¢Ûï×2Ƈ‚râŠq,(-ibÞ¹Ça.�×kF6�¹µÐYÞ­/Õaâ%tä!ºýÿ5‡Ê‹qn„ùúî³JÙMÆQû{H 1�Á??8£µf/óæt¦ðÊ0ºí­¶T×~÷–”gzNô*רCr¾{v 5PïA=&¸4ΧدïG·½ßösÙp_Pœ¿S\¡¦¥Ðk72vHì?¹%Ÿüع*3µé»‹âÓ\…Ö¾¨{*•kÆ�®~‰2=!Òªð ÒÝöTÌ_þ¥-uÜîqdj *qÿ­(Ý@Ô±Ýõ ^úFýFýÑ“aï†_ÚÉå�ò ~�!™!ù¯�å”åç×€k•ë‡æÏÄØ >Ÿ‘lxMA tb b ñNêY#ÉN� çT¬@R5¬HDéµó펀‰Ð‰Ð¼A@88ÿdY|¨z½L¸L8¶"¶âü�âÜÎİŰ?ZºðüÜ�ˆœ§¦2à)_P`ýWìW«ãí µ]¿që®w|Yðdª7®7îÜ|º~{p`éW<„>„N6ee)\E…?F•G•÷ñµ¥½¹½yÞé­ª¶‹» àË-r+rCÝS=Moi½>`.x�»^Æé…Ún{ªìÖ|É éÓÖŒ“õ­ê>÷%®¾èt}üÂ’ö³ëˆž¼0‚ë9TXeu8]a¡©?æ{*±ŸÝ±¾w®¥)7w¼hp|æ#înk›åËK�‰oã…0@Õ”ºÕ6hÙ8Ÿ Dð!ˆ$ˆÄ¶jÇqï-œýõ÷âHãHéƒSœSœâÞÇé0a‰œ»x«ì¸=‚‰­+ T�ƒ`@0èY¥æOÇ#Ø@'7š÷ƒ( íH÷æOEÑñ<ÐpÊpÊÜ`ˆf‰fù73ûƒà�šmšmqqC/ÓwFÞCÞóù•ØÏ½ (@N“"ÝsM8‡”Y ó�Jš|NðÍJ3¯ ëS€MX$gYá'çïúWhôkôÛ©óEðEt r¥²¹ms{:¡5¤53ØêÅv0B@�—+Ôú÷½c_Ïn¼¸w†#Œ¬8®2¨�e·Ûumÿ/î˜@7tZWˆw;¦-¿†͈!µ“_ÅDÔŠTõã¾èl6 Yx~ ³UÿC\²tÛûíƒÂ#²7Y¤‡×=#šãª$(3¹¡Ì‰ÇÒÄõ[ó™¾Çö³òÁlkC7tûO›Õ¨øíÄPÒ‚k2‡ÓÉsà‡I9¨ . cxË_iöëwªÌ±&Ë¢@7tû'4]i2X«÷KÑ~Ÿ3E9'žƒ¦Ç*û‰¹¯OlR*'—“f.ÏQºº£ºíµFÔ@«=E&GGúîÍ+©‹1V ¾wXàazû�?LŒ—äw�Í£¤'oG7tû'4�r}ùTÙœF%Ó“Mcq…#^´¦—yɵ‰aË-G5ÏâÅsÓµ'ÿ·[˜¤o%Œ^uóIþYfÌ@óDCUÔYÑ>3øÊIÃ+ÞÏdE5‘»ÍŠX110ôM¶ó'�FE9½Õ´¨C'* äqÞ9Ö9VÜ¡wÕջUÛ÷?(^ãìÓîÓÞÀ˜ �ø´ .”ù€„>­.¤×+£MOINI>ZÉSZ¡î êS<‡òÅÅbú*—Ǩ,OœÜ?7Þ I¢Ié|ýTM9—<—Ì£À£ÀVØ\°³„–„–6Î…Û?§ÓJ½*É h?€ÄÌ~°AîÒÊ3eüÎF¬Üo,¤’º$–Œ‹ X X¬ÇÙñ½~ �!�¡ÜÅ"Å¢©*�ÕUÓUS îõXÑXÑä[]|²�óÀ¾tmbíï¹úü×9h|DÖõfÜñŠÇ«ã£»”vZOª¦ç쀿'üº�ã j¥I”Ð×'"?{µgžñRV@½·NÒ³¬+‘Âd•·ó‚L7õ,êw†Pÿu.uajµí=¡SØ3§9Ý2òÓa›…\n~ãùî á=ÎJÙ›¹’Ó¶½7÷ ¦e6÷£~v¦?’ÀÚæœBØ âT̲swûìþòÙy–µ�‡M¦ªuÆ­‚^™ÌH�’Ïšš¸\€¼[sÅ`´X=û=þþœŽËK À™á«$€%À¡Ä0->`ìñø=$¯Û¸Y ‰€ö€vËwƒ'[ò A¼*±z …l¤H‰ŽÂ쌨ýú+& €‚‚Þȇݠ†%%{3{³\ßøÙ�hhÙ�Óý¹Ü$•kš€£nH¥œó4ÖH7M üžæÂë®}³He#{ë ?ISS""›pŒùõÛ_�·†·Öz´´¬´,/U©l×Bצ»�/ïBÞV�o·ëM ¦Æ'Æ'PŸ!𕞕”œñ’fµác4dÇs~à3ÔÏ ö‰Ò µXÃ*ó.�úRk+ŸDâ‚ÎF#ÈÎOs?¿BOÖ4ô­¶÷Aq‡tˆº¡ÛNí>v¯µûœM“õAu[¼¶çc/î¥ûÆÿ-M}þ£½�§QÂÍ#íS/×6kEÝwXöSTè á]Š™�ðÉÛmßÁöeßQp~; Cf TÕЭ(ö�:ž( �n.>}6Ê!¿´<;ˆoð‡ÿ÷,â-â{xI’H’ ¦^¾ÎïÏ&xEDS=€ªö =¯¥½ hˆ²ò\å9!Ëì·ä,iA¹ãré Y£ùB$çˆø‘z\H$ m±m1/°0µ0)÷“Y5œ‘8#œö»Ûjº¸3;-žŠŸ a¼¾0îF’‘§yv©éæé’%�.�fµ-¤ÙsþÚç f!.#.›à¬?K*—^ù+H,I,ý}ß·¼oaM@eÇ8˜6˜v@9zjÆ`Æ`êìV5„Ûí_¼Zt˜u˜EÝSß}Ó-}³s²–¼d¢©iʻ۞u4ÌÕ{Ø!èÚ†ÙS~˜Û©®'�AgS‡Mm}Öãq1(�~°§ܾ§®$B¾—ˆ–†ùuóOO\Ýh|&ÜqÖ î�PßË^ºÛçßܞ͛c ¦î;Ðj‘Æ'I}Á_nHY �âpT£ã¦åa½8Z]Žn¿_+´Ö¬«Ø·n¥npùè� íIáùnãpm%o‹N2˜ÏÈ¡8½"ÅL]è†nÿ„Ö>aBTÃîNLç<ÛŠ0u°«,0f?Þhrj¤ä‘áëÍŽƒ¥šéÍøèöïnW¢ç.&ÀõŒ¤äÏ�¯¨¦fVÓž,T޼b\±ª¨2¦;ó9¶Ÿ,¾%ÍÝ~¿¦K!�Ÿˆù4¡Yµo_hxÃþš‘BOÈkn–‡N†°l™¾žÚªçè†n{­ÍSÞsk q¡i=�a™c³66VyôGw§…{`ávâÖ'«0£Že Ý¢ò³¾�:›P»qü†Ž»«�ë4ó‰a;yÓÝfì_¶†eòÛ½ª{ô*‰S[]égÈ!@YÚG:ްÃ?½=镨uÑÕó{¢‘¢‘wm“l“BT¡VÂÝ€9€»Þ´qk À'æQÒšÆD+ˆ¿¶›»›»êÃÑå´y¦Ð$†¦ è¬Á‹`‰ðúÑÃI··™Mq"‘qÅ5Î$#VVì›ê›:ÔÏ´³Zh-´¹@aúç Í.�¼ªL@‘¼»¦. #aWãžI™ò¡hjý¦ùÉ8æü)•ôüôüV÷Qg±¶ú„_1í2íbÄ@åNåŠkx%f%F¹ÆXÊQÑQñ^æVo"·KàhMF$F$¢Î&n¨¤J¶Mµ D�r–ðî6›@=¯²ŸydÔø !Ï:[€E”ÓPÀEœ([ƒÍ{t> 'tÕÞDü`6!üãçý¦#De-�gf?©Ö?aáÞmms|yéû¯·ËÆ‚¹¢zš½;Hϯ”dOd@`@€Õ*JØ7£›æËÃTò=‡y‡ùæ³`³à @_4ë]@w àª��ÿM{@ªø‹>¤ãùðLPò²·£·#3ìm#cD5ˆ¸–H$\¼Ž¤SúQÌD<Í 0C`.m.Í~M[>J>jBu«5†íܨÐîª Uþ^Û_¿3Ø85uˆ+;ÕžXÖ1.:»Û¬ um糧~·öÊŒ>h¶�ÑÑsš¿o´?@{ó܆h¼òÝûœóý9—°æÍ04y!0ƒ}èöû5#-¢�XÆ…÷~�m ]Nâ³ \Ç´rðßÜzwà‘‹-—ˆíe;tÛ[ÍéÈfÜ�“Oš¨ ¸ 󇈽“KƲˆç T*ÉÂ×M—ÖŽxá=Y€n{«Õèoº „Ù�~hÜÐz®ÃÆ_zZ�Äõr%K([Ǹ!vž ‚*ëKw±~tû÷´û½ Ö}í07ݽx�ßh†Ä _gl3—gó,Ì�­8-Å«zÿ¢á_èöûµâÚ¨u ú„`•⺩¡Þà»Fûêýø±=Çs–U°5”£]}±Ð ÝöZ»|M"+™]1ÇR«jJVžŠ#�ïÈÿ×½>ÿ–æLß5&É9xM²Þèù™ܾ…¥O¨³ ÑÓk®7\ß›ýEý"úÍ®ßSâÄÄÀèÂßÎŒO •Úí­‚•A%›1 ë¬ý�~ˆ¯=Uº?±<¿½Ã÷šò›òm‚Ê[Ë[5WQæÓ€ˆeÀ¥Áú(a@©zòq¤GÙcm Ñ«ååR„Æ;a˜ƒœ¡1é Œ7ÒyH×oÇFÔ?Ù$äšäšø'¸­¹­�JMÀ«¶ª³§ZZÇÇÓgŸï¬+¬+Œ)ö¯ºŸ;Q1+IÄ çE*²f¥pGzÒ'—QR£=»ðM}Ï­à¼"Àz¦«ž«žVóBŽÃØÅk¿"k>k†³<º<*`€*Æ—‘�‘Pˆšáê,|îür+oêí‚õlå֌֌ÿÇÞ}ÇSùÿ ?ö<d#:eE!#¤DEE¢8deKö.™™ÙDGDȈ�™EVÉ&•$£ áîºÏ÷úÅièñøÞ¿Ö}yþ÷úã<Îï®Ïû¸>¸ç–Žöâ�-©6í¥+Ò"÷ܽ޹%îÿíµ•5ÞAº Y;$ŒDˆZ�—¹NÑ‚… î µÁîÔ›ìKpžÿʹ¥Ø×Ï-ËèvFrtž ËÑ8%‚!}±ÞloýôÑ�[×òJÔhÅ•.¹šÔr2X ôämfBfєµ9 Š3+›Ù²¿”ý&û�{‘”¯”¯`3þ «ø8µ9+?<³„ÕòòÆ è%eeˆjÝ6òTî³^ e‚) P½¬)Ö– ©ž\Þ!ÀÑ+¢·àb$1òôýÜ1�XÍ8Í'Èq¤Â$öÛÐMè&ÿsaÖß7HŦyl0ËåªæÉy+¨´ÇûÝÔ4áéøÏ:Æ«'¢w’=’=¤ïéFðó#„ر 9=ÃQÃQæ…¸ð^*7)7µ³ Fš2›2K²¯veßZºÀÛÍ]Þ]Þà<%Òýó>rê;¢A9æŠb‚Ç϶¯wn‰;Û¿ÓÝ?£=™55À葈I˜]ÌÉSªÓ1Í­8ƒéb&SM—}lýÔs:àlixÔþÌÄʼn¾ÜN¾©ç˜82]ýQ©·)òéÍSûÝ1u‚Ow6XDÙQ„S„Úÿ¿&Sñ8`˳žpƒÅüm’\ÚúM ,>r,c¾³axGÊéñ¸ÎõóšB j@kñëξ§`v‡ÙnN'ŠyPªÇßK®�ó"ë‡CViº±:Çoa|žáÍA jÿ�¶¥J1�¼pOÁdóT ‡÷­ô^BS‰�r{ºùg6Åy /‡Ó† Aíïn=”ˆé.j“²ãpº•Ìç©�N'-¦s$ˆïä)ã‰W¡k1¦¡W¾ 5¨ý©mj8ÁMÆÙú¹ÍAÑÝŒ©ˆªJ‰ZX}ÿãÝäW¢uÌ}Žzu£Ïƒ•‡jPûo4–äóÅ59‰f6Ž |ÝÂÎ+Œ‰%ÿ×wµAíïiâo,>Ж©’tÜ7ª s¶­¸‰{Ö{Ÿ¹ö5 ¥‡ì¹$q¿‚åÄõÎzùð`°%·µrñwD᪙Z툈§¡û?–Â(<Þ›~_ãÑ“ýÃv¿Üq©LˆœFNÛ»ªZòüÇ6¶4ì7ØB¡mˆõèfb;ȇŠ!‹!Ë/ã Ùowä'W‡ÕHzÁ*©õ-ß´ç2%€è=Ñ{;+@¦Z¦šdcúNKҌьyy\ÅvíGߦ!¡!±|ÌŒüûr E¶[’ §°æ#ÞF³«cuÉ5 My|.â³{ic¯¶—説r¬râjá2¹c2?âUý«z½dMMÿ9\•!Y!Y e[‹¹-¹-aê«ÝÑX #¸ê„‡ÆCãî1ôYë-ÔhÍ�î”Ðĵí:öa½=îû7“D_½ºîîÈVº¯ì1Ä¿¾Ç0ܸ¥Ÿ|c{Â]¢x?5þíõf›ÿÓGצ­åÀOŒ«óÄj3 ´Á~Ð`ÆcÞ§¤zú¤¯±ÔÇå�׿ÄìÇì÷N²´¢´Â{À1“È`Ÿ N TvŒ“7tañï†�‚x:hKiKáƒ%o5ꪯƒò²êô@WÜ�9°íŸv4kp‰ Œ¦È•3{çÌ€YïYiÛ§g¥ÏoÿÇÒ:Qó×äùÕÚÊA®F@OîNMåÅgh¿ï,¢Ú(ynæKŒ{÷P§Ÿ6Š>Sö² ±½(”�…›…ÛLm²á·)�+�Çrø½þ¾“‰�å3òP]�—�Ä¿—ÐrJQ¦¿öÃgm˺…´5ª6TáÍÉÍŠpj2ÿˆ@ý@ýZ$++]®*®pNEWEWÃQI•–ΖNÚ©Õˆ¨×Úàhé ï Ç=�Ø¥_~¾ð4/@£}Á¯dt½sÜ{ ZåKÃX,2N]%Óu;êãjgUŸøV‡&¢cÚKE$ß’¡Õ9À?w· ­=hfÆ~—Œœ:£*¢î¦Ú¹Õ-T4ë=·á~—ßé}�b+Gs5ˆÃ-—.K1“,:™µ§FRâÉÁ;r›76ù<‡%uŸz4ìzñm¨ýº6qWÚ'ÕV}âĵzº1‚fE*”äÎÂÑÇ–4²·Úa>þž„(‰‹GPû9Íq"ÆáÄujd&„1³pL¯ü¤ÆÛ+Ò}p«ê ùUóËöç`—ý)C j¿[[Ôª}wº anè€Y$,8Y–kŽdãO^â§ÂcAµh±¦†¶•Aíïið²Qž·›ûäcðØvMÉøb'¨ ±T´ Y½Duî°hÛ¬×~…p¨AíW¶g±Sìð†gšh†´ÛÕ{).�³ß¥réÞ3»�iÒZÒOwæ±§©Ô ö'4¦Q¦*ejRäC—ÙÍZ'füõPžË)b¬e)n»•¹—Ä#à¥PƒÚÏjaŽ7Ùƒo‡ï=þzÓ®4Îìá°PiXlš&ëÍ+rV©gšËôM>âEµwA j@¦HŠ^êE ñn›c8z¹ö°Oõ¹�ÛN^ töW{åEéœ3v0ñ–>Ô ö³šFýuÙ®‡fYÅ­‹N·"÷•ë<Ø‘qð“ñ¤åsýÝWøfíÌ(¡öëš”Q™•x+*Ý©jêØË3œåø°zJ†—ñ/µå0Yݼé‡ßîfµ¿§õö\°Q]¿7Û76jmþŒK ºãwºçæß4F®#§£úÃx_à \Í4´jÃÝÓ¦ø �¨T!ìRçuKÕX÷.¯íx0"u­Iw¼N\T–«muäŒ9€t"à®p×§‘;bú–[xH,i̾äâàâJ؛ݛ}²`º­¬0BHñ+ çTjöË`M�?> "ðÉÏ7°XÉ7œ?"£×h9*®\ÇbÀ `/8è �Ü"¹åI< ™�,?;NzQhZeZUo\ol7¥,þmò!ò!%]­üßg?ÿà#� œ+e[·o­OëÙ(|–…¡ŠüÏFäñ¯Q;ð»Ñ¢qªhD·Þú2ûdö�|©óRG¿Wƒ8’ɧÿ„ŸXwIw©kf5ÎMkM.‹5+7+ãîiÓ’�E9ˆÃ+{ÎxÙ°_$\oO‹{ÿ{’|ºãf¡öªFœHi^ó‰�Í"áµ*¢Ñ5¨q!¾¯ìiw|ý÷ÚB-B�Sº”,‹°°7+;Ö›mà½3ækM_E§á2?ºš"tê�9ÈšfFpFP!õ¨‘íS÷RþÒkøk¸£• •Jc ÎÿÍG€U8à£ڕÅ0@ÅS"¬ºñ÷W@ÔñôAôAI ‡NÌ GZ] ´~ì V“ðæžrépÀ bQ; ðŠòŠâcDkƒ´÷æìÍ™Ù;³7ˆK†ïÛÆ>œp9û}·‹Rž%f ±D4…;/ñ`ÁCÃÇsƒj t8>Û²°’Lhø ñ0ïažŽåH¢åQÛ¥1ž<žì�DBMBÍ@‹K1¾òNå|%ÍlÍì4ÖÕ†ÖBuHa•6•6à<…Ñcçie«qï3'j�ë;¢ôjæ2ëíýqgûkw@íïi9Œñf¨¹WaòYÒbO¦Ä6=ïy8oDÓþ ­¹K‹Á³s_áþç.Pû3›d‚߉åJ[–Û.ÜQjUD>qÝgúö¾,S¡ÉNG»¤ ¤)÷�~mó,­ jOëj¶õ!sgŽ÷`·—H÷‹8@R“Ñ-OäËPW^œðä²l¡u»ä«jc¨Aíwk!GnÇ©ç È[îh˜¼F™a*Y¯aKûôƒe+lÑÿ±:•›ø{‚I6 ¨Aí[MýYG�æòy'D©¾apœ'Ÿöðƒ”:.)]¹ÐzožR>1ÍjâÉeçv¨ý™��d)½1è=Â÷öÂÆØƒÁÕ ~ 6I÷~Œóc}Ò㜨¨ä]õh>µjPû·�æ¥);·\áÜT4wd¿tü 2�wW“Ç"vDë[�Ðd ;ÄÈ&¿©"‡ÚïÕn$‘�H2­—ÚN¿ïôHìqñ˜‚¬1ú¯ ¥/uy²ÜÀw¹6Çjµß«™³ÜG´_׬xVí -ɉޫ—RZ.;º-/ ó£�¥ñdgO=ï†ÚÏi´ 4®o(cHCYMh­Ý­—C¿Ó�r¿SKJ‚?üÈ8ŸÿŽ/4ZÞ('ñ=M<7îù~½´OÓaõÑ4§éôuȽë�ï çû˜µ.,�YáÒB¬Ö( ª?Ú$"+"ëuhÅBj_ØŽ°åä—Ï ž3- îî¿W�§é›´û.]Œdqâ `Å�Ÿaùõì4ÚiäÌ8ä� `åÁ�QW€6Œ©%c Ôz /Ö°˜Æ˜ÆŒ–Ü­Ü­í·Ð�´ÑŽè‡1cÞ4ÉÄ|[[^[ž­ãÅŽïƒscÞomÔ1a‘¶ä£L±v*ÍÖtݱ¯ñ3‚ÍMhI@Á.å2å2žìÎåÉû«7ßf³ßf¿âÒ#šG4hqi1× Õ ©|¨¯’^–^.¿¶šròZ÷»„‡¤Z¥ZqwWå$¤l .[)ó++yl§8×Û]%Œ._ ¾¸€L�·:U�ë^¦î´­ÊÛKŠ)”Cò;äðçEú­¯;Å™<í'Œ'[¹`å‡÷åîJô뻫ÈfF3öÝm,gíc†+íª×›m!`¶=ÖdŒ¦ÇÕü~µÊ PTp‚È2;-(-h€æ@Ëfb:€Ç9÷¥ŽG÷•ù•y¿€ô¥b€�Àeèä-ó@ñ¹[EX»Go—€ôii™+«'|â@ª >T Êt' Öñ• ¶&»Þ!MM–± ^ ^J‰³l 9Ã1û1{4� �àòú6RgRçâñ1ÍïS2/c®bH›b•í„Í·bé•Q[îç7åµhø,>Á²2TІô¦ö¦F××i^ûB–B–'ûö½^ˆËŽ,3í“„ÈURUÒÉÈÕìøÖòm¨L÷÷ƒó´ëŸ»^/Û¥gžyÀ³Å#8â²6áèþõvW¸³ý«îα ð•ºÙÁDÂbw|øºÓÒ«º|åjÖÞü�^ Ž ?�µ×¡Ò�< 5¨ýÛF¬Âs»ÍÀÂPûOãõ Êj�mã £HÿPÉÅ!Rö1£Þf¹Ï}º'û µ_Ù4Â]J˜™ä+Ø®ˆ·¿èÓ#®F„°tfµ‰>o4í,êÂu?áUµß«­”a.¥!_²?nf±y¿K©R@{ð˜:ê:|¨ZA¹IlÞéÀDZ@Äÿ°wçÑPöýÇEÈNÖŠnc IÈ–-kc �cÊRYÊ6Y"·”P‘}‰ìdIÙƾDÈ’´ˆðt�éúÅ”tÎýœçç¾ïñúï}œ9óÇ÷úãû™ëº¾j¯ÏàÛÖjÝM.º zAFÈBÖɤô g�]̾acêÈš9 ‹•¡ w5æÓÔ¥ ð ßþj ïöpªL1¥WH°1Íã¶k óßÉÐÏ$Ë!Tù’:1'ÓÞ3êã ’Y¾áÛVkuÔ—íx�Š¢Þ0Ê3^T)»Ô)JÅ´•ÎÁûY38†YÐ|2ù”kݾ÷X_2›¸„3î,æ{ºölíXòj‹`0u 'd³YŒ(»¿òÚ„7.tçZ‡J@ùÂûiAe+»íwÛ32§xè?-®¦4Kyö#*+*«ñx÷a÷á#Í¡Yì�É£Ú€I”×3¸:ÀÉéÖ3,nkO�JÖ™Á3ƒA9=ÌÙȲfó64¨¾¾‰õÇ.;q÷ ¿yÀÅŠÅ9€Ke—Ê\¢Oƒ®¸Âê`u…¬…¬f”mŽŽ‹Ú¯“ùkäÏ4Þ'b9ŵÝÙiŠ•þ0æZÊq’Zi»ïF:=mÎÊJ{{a5Ÿþ¡_ý;"8#8ÛoD܈ˆÒÁw)A” ŽgŲvfwf�)®…^Z¯g €ÖŸÐŸÀ�3riºÎ²GzP„¨Ïa¡6Ølθ”EÆèGü”Ÿëv“Ô*o~¶®Zä>GöÃ.'*é!íÓyᣚ­>.Kô ¶­Br·"wüdÎûùœ‘eŒ/ø„uŒßYÙ_'áMß×ðëG3¶¬·½ýU.­¾µæ˜@>BŸJ@à ètÇõ©½|½ñäNÁcW�~4c:c*|üíøÛYMÀA"Énò( ìÒ€ôkz@ø|î*–Þ)Ò@�rZ¨a¨!ÆŠþÊ�c4+ G{Wæ@°#N°¦/3Ãf¤ æÞæÞOTl{Ùör|6P‘ ¤P§P§w¥wÅ0àØ˜ÆC‰héþ5(ñ¤Æk@-«}#OzV°1{t#Ñ‹ùŽ”ï>º¤>û Æ——žôöUUë0âwh<Öx5›2›zŒëË$››õ«hÊÔ™Ô™ë1k ¯§â   דë·wš'RRUžHm’Üå)•IuHy³9#îÚþoŸYá-Ð!µ˜€ ¹ÆíŽ¹Ì¯¿¯(›ð2„Wœ¨»‹~´‰_Tòİl¸=¾áÐ&%Çk0õ»T�]G=,+-µÒx�"I ž§Ü ™Ð(cÌv/„RõHiãÛ¿¯%÷úgDl·f8ÅtsÖ-ÒŸ`~€ò™ÎõzÝÛo[Ë^˜Èµ˜{‡È·ÿ¿†¬pŒr}(&<Çgâ6y,½Þ,”ä%™ÜÁÝt+uõ�OOûÔ‡o[«Í×4ÇÜ–»˜”QI æÌBªÐ ?px[µC1qœˆ�ß¾W™÷ ¾mýFÂo'xFÍo*º \SO¥Ã¡�Sò¯œƒ’C'3F§±‡ÑbVá�ÔÈ8ž­÷î>Æž³«Ã«{9¹½û02x&ûÕfû±¯û˜j³õÂ^Mãê<·ð¦k¬<��Î nÂqÒqR§þ.Çê�ZT‹Oý”É•É%•áDîDþ¥Ö/P7¸=²�¼|ðzÀ†UdáÚ „ÔFj�XÈË:²Xùú»Š¾§ q™Žœû9÷3I"ßèí¯ù;%wJ–ïóó­;�+€8U/UoYø…g†~†~&d­•õ"YhaæXæXÜ=ziRCcpP·•h˜à³Ã¨.ÍÍöèé¹äÜ9²ËòÇmÙ[�£Ïµ¿‚AUdØÒ¦Ñã¾ýš�<-¢Ñc†ñ즶T=‚:Àl!S1GB)xcd•A-®Œ&åýœÁÅ ßðm«5ŠZý1Ú#¬4³Ó¯äoÚìöŽæŠ4"9ÿq¤?Ÿ²(§]aà]3¾áÛß¡ýQf¢” Xµý!¼h|´¼~0*O»ÿ‹…—�>%â}ƒ„ŽáŽXAÖæ¸ÿv ”õ®@°i¬rRçî!ð³ºç~RwnuïC'á;—î�ŠŸ0mÜò«›Í­ ˆóz¡˜°1\ɵ:ö�úŽMɃbÒ ê ê«¿ðŸfà›m>çÅ6ñ£•ò•ò¾ÂÂ'¼€âº£18 PB³_½@gj´a-¢éÁKƒÇ‚ÇDß¿+íèt5Õ„\7¥QJaA¿ôÊNÝOôï9ÞSP,T,Œ?çX ʼ`Á>Ž1ŽqÊ\±1‘S"§†ûÊÏÿšÂÃÚ8�;{¬¦�dTêU¬Qõs¯O0e ´ ¾«Ö58�}0pÌќۜÛR|úNˆ~'Ãï ™'™?ìŒtEºÖjàêܦ% %�ç%''D­Å [/ó€3úMÛ›6p=M}›[ņ¤ÝxN<\^¸0ÌÞ~ì��Ö“†Åiàÿw~[‡ÀÏ÷šÅ÷ ¯®¯\jNѽ¤¦‚{n�ìÅ’ö{ôæ B­gŽQ Bp»Ç}f÷ýw¸s©3c MOØv¢Ÿ Þ”н´è³û¤’)(bÖ­ôBA%è%îyç¸×’-'•yg·aDÔ¸²ô†Ïë�׎ø×kÇ»`=…År\ɽk�Ê‚”\ݲTTwW¾µWª‘óCÝâ�5„7„KiÓÎ Ù€ ìÓ‡¾—XAqŸ.€wšÒ¬?P¤“Š’ŠÒ²ŠèCʹ Âl;1Ð(ÉàVîá°GdЫÓiÓé~8 ‚·‚7Põ�Hº%º(ºh¾r¾òÚ(ãSíCا>uÁÏDnñ“ûñ(ñ9ZûqÁ¬C–kg¾`g¾"?¿/ëBÔ‘íãŠ;ˆ|k?z”qm¶¶a_?ú�Èz5Ž6¸ZçÖa¹1Eû€È“,-,-nÜ+‰S\ 9·)ú#5Z5Ú—3Ù3Ù£%€Rç'á€Ç(�„W…÷W…±šC N€šD§•§•KHzë–I5Ý@ÊaðÇ }Ù*,{нG”?>”|(YV¤†¤†Äë£]A·ŒrrbDcD�Ó5+6FwšîôX¥÷¯lÜ»Ÿ�à�Âzá!.ÖvkÅ‹ Óê£+=Úò;ñsµÆ»ÃåMMg1Y±ÏÑ¿#–c—õŠõеÓÁÅj��Eöì¶ÕÍé›ÓïfÖ:.µž{ ñ æó×ß·û²†ÅïZôª�OyäÄp±î%óf¿!à®möLSúÁh®¤+usÇl;fŠÛ¬ð ßþmY|L<2`ZÆx"ôqœ¶0B•f�W¾|D ÃXE)¡fE/‘�“ÿß¶~›gåb9{{EÒá*¸0§ŸR8ì}i>Ç Î@Ê]�@t£ð͗ѹˆB|ûß´·Šoß¶‹Ž<óhYä2fˆ;U[ÉÇï”Sn¤hqm¾Íƒùª2‰Êßðm£ö…t[‡­Ûk¦z[f­³;šþ´�tÜJç�ÿSšÖÔg=6k¦‹ð»·š³.Ò·lÄÝw´ qÖOPžDè$eÊìhjØlß!ñußA«»Þ¶ªœ\iìk©ð€(Œ@jEÜ>Ü>ÉéY£üÅUÁ£×8~töéÙ§agUϪ&wØÁ” €Ín'¡*%CÖóKYÏšäáÀ�ä@ò¾€¬L{ßIš<Åøç›bé!�Ê!€ÛÕ·«á急ö¥öÚL_�I ¯Ÿ¯_’o’/¹èç²�ÁŽÀŽ4WþÚ“…aé=<ç^,›gl/Äý±F�—¯z.ÝZª/þ®Ç!‡Ü°pjù¤ÒI¥6ê¦ø¶;‹¿£æiÍÓtv†x†øq¸ a"—D.U¤Q_x{âí‰OìkiU®§w@Låå�»§Ž™~!«u´š®h¤¾~*´ÙžwÔÇßÁƒô[v8@[*‚pU¾Éÿ¸Õß0þ]ŸÅYÏ¥Xbü'{jÑŸï©™§ Éì-´Õ‡õnŸ Ö ÝlmK~ýèIÎõ†wh–ü`n­Áÿsþ¯&h!QÞMÞ-ƒw7wv¸¦XÁxœÅ�–ۖێС„QÂ{¬—´Ì½“B€8jû¨€c�UÖa;Ìèhm}w}w«‚, Ï$ÓF�ï×zaU ÑÍ¡…d d îðdd¨TdAìtŒ}_33½·Nßý*ýªÆ´õ�_»ÜxqÕÎ`rË`áIÝ@'Vð*…�çÍö®.½ïܘzìÛx%¹“!“!¡�‘¦ŽF¿ƒ‡Ÿ‡ß‚eˆfˆʃ‹½cQrQòTŸ¾{b_b‘ùZ½×›€RÕ�P$\OØõÒP;µdõ屋+“ç(Ïçë›í©q×öV:+êŸÜTžLYõõÈp0v’5Z' Ë2žž);ÉP }CHï¬É*Èr€Ûqài¾ýûZž­NM9Ñ’�–©—Y‹µþ¨ØÔ ³ ýc¬[ižýœQFùª]íø†o‡Ö/Ê„ÕÓ™}™}|#‡‘»IXX]Xí!-×!ü¨�THø|`?á½ÇKýœú™L ™ò×b„ª GKNX†ù5·Rš°®5hR>”s uùîØK¾»z!"%"%åAʨù‡_‡±ƒ±Qœ”˜”¤—�{;{{òtºC¢CB]mÎõ”s \­ZàκþÔ0M�m•°ó›£Ù_$ì·Ù¬ ÷þ'’=ýfº;,íóq¥Eõú8n=Knºú€Õ³VÁ@³{:ä'³.±õ³® oÏ Ö��qò§'8Q*!^R™ån6›Àý.[é,€[{eÉæ?ÙºƒÝùâ¸HçÆGõô2,V-&uÿ&ã2á”%DGˆ aJ„oÿ¾×£@W!’Ï|¸bí×t·Ý%5Y˯-£—A:}{–,û‚$ ?¿øY/|ÛZ %°Evôqý.(ñÝ)N Nø¬Ò`¡uì¿cEi¤:Iòú!]£¹ø¶µÚØ»ïpªÿþ�ãÇ&NÙ*)'efo�¢"…�=3#;+#Bfö^Ù²EÉ(då«Ì’cdEHˆ Ý}~çû¹ã4t]÷ïî[Ý�ÿžœëüñ¾\×çõâó®×øhßëßoBö¾yM©ó‚«Bž›ÔáJ “?¢}D ÷÷ÉÓû†�„PPûsZN÷œñ{n ¬�N.:¯ÏúEó†ínÕ ”B\®àÎ>V-/Áq:ÇJËjÿ{­¬!dE�!ÙW¶÷êöÆñ(žnßDmœ¹&O.ÜË#ù $²¸ 2}áØPƒÚ¯Ö‚|CErSHç*=?&EÅ’ÉÉúOÝëó§´K ]CbûBÅš´;ȯÆáÌ-¬bΙR[FÆ[Õà ÚíøN¡[Í™D>=æû¼Øìú2µ &­¤�âúA¡VV„ ééÏÏÆW¤êj„þ:Ím—r¾ôØ÷±ïÞÌÓã§Ç齄Bx„àpÛÕƒC€§düRh#ÕÓÆ ��ÈDdârÉ %8}”Ù£ê“n�E‹#o•Ìwܵ¹k3â0„Â+4$¸@s/WWŠË‹Ëã¬%“¾Í�Ù�™U®{üû’“×}|R1h‡öS%.É¢1�pU …+h‚ë?s{Ûö‘ ô—¢•¢-‰e@•RžýÞÞ0‰n«n«eVLDÜԳԳĕ%þ%þnu-ßlŽpǃQ�QsÎdo·3NiM¡åŽ€mG¶š3aþß^{åÃjZ'Z†N!C^¼6•J—3©ê°ëL͇ÛaÕ�ÆRñŽË_™3ñýoªX{ï&�ãg”�zv=2&÷ÀVg[ôÓG϶m†Ý A�‰¢f#wkмª…;Õ×x­ñšîuD˜=ŸK¨ŠÕ—� È„;­·—n/E­p®µTp[ö9"�ßuÄÏR£e¹Íx€´Z$§%§ƒ^9y"Ïítµ8bƒì “¥ÐDæPc»LÙÕëÕë4ÀնÕ6?Ô¡S Ô–´¹´¹Z¬Z¬xºañoË#Ì#”Y�ü¾‡ –¶ë€ M´'sƶKih-] •òÒ%\ê,Ÿ¥ª11šêžæ¼Hr1i%‹1^P€¥’%Nž¢Õˆ‚—RöÔ ö»¶™áøËâŽV/¬eøŽP§“Öܪ‡5öwÙv#òtçâ*wäT~Ÿ; .Ô ößhôÉWÊê L­ÏÙdzöp;~¤N¸ûÿ}·Ôþœ&8g¶D^uGa›>gç_†õ!Ž6÷naÎzglLžï¹èÇPC_•ª5}i«Y¯ Fvd3ý.c^L+w6Zâ�ÅÜ\éúKŸ”>É–ÛAx­Ù{«g%‰OÏJO&6;9(ñ¦CüÅP€ê‡”AžV¨TŒqµÈó$®„AþÛ_ù‰àŠà •UP0eLiGxüf ï`€'ä·õÑDoÜW¹t¼êx•ýб¨~¹tâŠÏ(º£S�ÁÒA»4`h0m6m¦e8y&2†L\´˜³\·\Ǔœ2qRôÛT/©^ ø>ŠÁQoë•hä]²ëAöh×§‚.f›ÇLïºôÙ­Øðûmûõ²×®%®ßsâ¹~BÑ�¯¯ºtN§÷Ca:z´… … æeÝ.†] #±�n–•Ø/Ăƒ9Õ«’�)ò;×ñÁçîË­æ˜÷´IV„0ø™e¤é\>ëålkјðF‹,¬ó¨†§¼ÿð^MM/H/È{P‰¼¿@ÖØ>?iÎ> ™¹S„fß~=8¬$­$½í5q¯i*ëG 8QœîNDˆ. �a2  'Ûþt~n~/z#åÍ2§ž]NNàyzD‡>OÙùZ—^Êó¹˜hÖ¶n'Ûj€y¶¥÷‡þŽ­JÑ$7_K¡#Xq0m7J� Á–+À’+?“|…Ñ|GŸrìfY9Ôþ¹6ý@Ì+ÝFyZ5³‘bçÑ ëíLÂ¥/»ÍÉ$nwÀ¼|=p™„ Ìž@íç4ûéh'R„ÁØÞ”ëÔ9¥“XUÚçÞÜëƒ[Ôî,®Y^·sƒ%ú’tC j¿Z[Q¯_¸XÒ´8(m *¤­,¼@»‹-y��rhŒîðS«:Czp{%Ôþœ¯|Éòf_ŸdôÖ.Ñqï”.£x…Ãô÷Z5èI{ñ\`Q6¹³>¥p¨AíŸl£13{àM<–-dƒšʽÄánv¢òáÍ)pÔØA)š×VÂ>:o»=Lt¡µß¡Ñ¼ì®�VodW’æ¼ã{Ç7U¾Ò­{E/Ô¡Í$Š3lAsÑŒœ½.ìv@¥M¥íŸ ²²—°Ä£!²ñßâ¿•`—`t’íý¶Ñ–ÑNW•âï;8¿‹ÒWEÃ:nåYØ„¶_ÔÒszŸ àÐÙÏTÝ_¨=™èèg#³‘÷&ØíöËÝ2þ2Ë2˪“^`êº[ «„ 2 iëxëx«çm$¡¹™ø€êµG‘GæÞ?#Ùˆ�?”ë>ÊÒÓzO îV{%O¹¬> Ë‹Õ\ŒSñÍI’Yö‹)êÓÎÅ/òV´`Ý£S-àÜÇZ/¯ÏUÇôê0ëWöþ<›÷þ!”èïòñ�Qï¨Ã-?«j>JÅ â[íi1¿Ë×ÞAµ?§PÇ™2-N…Hæˆñ�|˜áßûÕµlHÝ1¥¡&ªNåñTªôä §{Pû=›p¼�êú}úr§‘Š5x^±=–}Ç&*åÉò²4œR2dû.ÎZ�f´CíÏiÏÙx¹ÐÅypî±æÌò “&¨Ëî‘Äó¦j¨*‹J”(µêžª5‚Ô~µv]®@cãÃC€ÈùÈù1.fCíÈ@è@èJÕJUýË“ˆoË Î v�ó¸÷} ï«É½ÓzÑnP¿þ°@€ö®Œ5ߊrÛp,ëgùqðÞ€Ûkÿ ÿ Gߎéxâ?‚­–­6 îæåæ5¢‹)‚} ¾×ÑRow‹p‹xj¼Ñ ëÍöðؤkôkô1w fU„»Ž;")¾ŸÅf†y«]CüËõÌ ¿Î”q¬MWF4çèÌÛÈ¿ ?‘J2ˆ#ɃÄ^æí·ºék<ò/öî;œê¾à¸QFÆ‘‘MTV²rpìÙÅ Ù›c”RfVf4„D‘r#+$3{eo¡² Ç)Dãéw�~NI×u?×s»ïûxý÷¾º~}ûãó9¿s¾¯ö<Ç–*[u Äþñ³èÏ¿cH#{¦ËúI`n¶ÎéõÕÂíζܷG#¾nV"ªï‰®ýéFi D•¥XÉl/O/ÏÑðÛîK¿ºv„™ô£ðÒðÒGÍ Í fOˆ¡xu  ÿKßYZÀt¡m ÊhmpˆO–~–~ðŒ˜|¯m!'È—ëbKwÞH4>\¢uö2÷¿.\m�)gCÒS¢˜†i¶áirµ›Ù™drÔ§ÎWz™~6A|]tmˆ€iù¢YfÕWÁØè%¦aÚ_ÙN…»ÒÑÈ—2&ˆ´�Œ÷"Mð*Ér¯Ñ÷<äo‡¾®·éÉïņzêúåcÚÎj_ŸÞ�H¢�d~ÞLï´$®RÆk0¨ gM%ª<¦Ú$ôÑåøLRÈM• {LÛYíE«‹ÖŠv˜Þ¹Bú©”Œ°gXûhÂÇU/îiÛ¯[¬]¹ƒ£¶˜®*†�i˜ög[Ä /§ªT=J™$+ƒ¼6áAÄTƒ4ÌQ€8 ÿ�ò…6B”r8not±$údœ²î±Ý€’vH$àô‘½æ¶»‹¬GîHîäÎq]Ú“0²02Ÿ1(¡%ÜÞôu£ëF›Í_|¢é~×ý}ÏȪî:ÇtOò�"Dc.Ù–ïȃ{Ƶì=ÔþF!KËùOÜnšç-Î5ÔòÝgÎÉês‚ˆ�œ°ÍÃŽx£Þáï²F™dÝÁ#u;šà'{FáŸï9Ÿd3Ý “—2¢+ �8¿Ýîl+|{tÿ‹ÍbÎ •¡{Ù¿ÑqØ\HÁ]�D�÷µ•Ïô)EŸÊØ©™ª™^`- ( p 4‚ü*|‚o×îà›¡$�Ü15¶A!„j vœ„�{j@âøýÓ '/ót”6.Z‚ɯ••ï ÀÜêܪ±C½'èeLªAª¢Ñ>äY“¶5non﨧“/~ +D÷š %Qú¸º*1JTÒê*¬©…Þy�‰Wº«ýG@f54 %îþˆÓ¨¿Šèw¨0©0DøCü!dèî¶ùùí‹3auaué¼¾Ñ~¦ÍTâЫ>L>Làyrýþ›æ§“I!U§ÒZaû¼EA$·Û3¢Ÿíÿõ�¾‡Ÿ‹®f �¸>`Œ»Äg+ÊÁ¹„Å.„û¢�’ÚÊ%;5*a‡i˜´)Ød]ã>¥s}Ǽ̪Ì4ÒÙõ¢ñ šRÂø�jeÔ9î…PÈKQ £—¦4·\ {a.ÎýLÖ¹O}»=ã Ñ�\‰ÏÒšÖLíçÞæ/FÂ{¢×ie™ñgŒa£§GOÒdºJoäw¤¥ÍRÖ*Ö*NÒ ƒÝª« Φ¼DcJcêÀ¿Qä¡Í¦¯3?~øï½cßßòïûC‹#”¼ ¶òòŽeìv3:úÙþÜ1�i˜´®¯6l¾'h ©�ýÊÇn,K¥SöFd°aÉ™DåÖ°Xõgã‘'bÚÎoKJ9¬ä³é{®y\kŠ­£J冲$ˆ'ÃÞé·ä2Ó~Øågå‚ÝÚŠi˜ög›Õ�è�„+{Ÿ„ËL¡ÈŒ:ذ—ÓôáéÅ,/…€&¿~çŠLkòtJLô¿CÓ‘&G´x�÷{¿ 3;.ï|„ÖT¼bŸ”ûæØW*•e{Sß#�¨\Ü0 ÓvZ#©§ƒ�“ËÓï�›}-uö–£ï]Ö¨P=ü Kcƒù¤E¹]2C�©(Ú0 Óþ�¿L_!I®fw–QÑä›òÆáؼƒžt¦><pRÄûf‘“ºñÜômþ×-T·Á öu?Y®. v y‚»¡8ÛÏ|ß[Å_K¿Ù„7Z^¸2Jѥ̿Õl¯fjëü{âï;&àã{õâûTÐ ™ë_<ÛRµ›å ËùV­ÃRå3. É“c þä^ê$¹qÁˆ@_B_s=ÀªÉªIF-Z ”5RRë¤è¤X¬YNµ5×D×ÄËÉž¿Æu»'©ðÀiE§Ü` �2ï°òÙÙœ‰MêÎ:jÖË=]ÅåÃE‡‹ÊñtÏûOØfýŽ^ª^*oDPyPù< ]­»àAÁƒÌ·ó\åÊ7ÀÚõغ÷€Ögƒ•ƒ•è;_Þb] ‰™Êk#4+õ# jÛí|Ñÿ¿ì’)¶÷¯õÇP�¹¨/µºìþI(6H÷šà¹Ý$w¶¤öÆ�/?jçË÷ó�ï‹P¯ÔrˆMû5!üC¯Þow¶�{t�òfŸàfÞèf—6ÖñÇJƒ*`ÁƒiŒ‹¨Ãf&ñCq÷þh‘l‘L›M8]8=ê  f—6 î"@åHaˆh< ïäB7J£<d*�ß›ßÄG&¼t¢à(§µó)(�vt …íKé wƒø k kJ| V{{u- t4¨.¨.Ô)ÔéÀMÅ_üÙ{Û{KÃ�hÿÚÚ©$"B)@ìS”3dÚÇ£ÍQRøZbK‘ñÉr«ëÌ]Þ7¿>€³ò#ù‘Nçs>g&j0ýŽåøåxW�:�ºHº½À{”ÆÇ2.qÅsÅžÜh9q3\WÀˆ¬d�d xž8¾¿—5*tÏ<ø•Ê…ÔÇNT =´Ûí|ÑÏ6S]kÆÑ»¬)~ ÊÖÏßwšc¦ýÚg¡q¡èàYñÓÈ%Nð"ŽïeñÉW1Óè§®!‘ 7§IÊÍïÁ´�ßéYé ãïï®H‘­1âݨ!ü¾€0Ÿ¹{(é>¬Ð�Þ[=wŸ 1íÿÓæåæç»Æžyµ¯²ž¦z`Y_ÍÁ‘è”[®'gzå­Ñ./ÚË¢çR f˜†i[µO„»ž[»M[Ð4ZÓj8´FÚEŸÝI÷CÿSšÆÌGm £{··e']’„›µ Ï–wY¿Ä!šd´‹ò…GÄ·›;”¿Í¸d›ie!ÑÍnÄܨ>) º¿û¹Às_º®\ÜyÂL]›Ù>±}bÏg¼l¼Ì0¸4Iª è3$TǵúG¦�øê Øëj�÷9÷9—éç?to!-<`è}¾[ùåéIÑœ{  €˜¹˜¹Çþ€œ‡9¹Î�‡�8:Ï:ÏÖzÖzF³rçmm2y÷ná×Î÷~ºQÌD9v—¸Á‚¢›myI¬¦­_mÝ!»vé/>€×¸5¸5�7>ȾÞEa÷; ‘ÐHžWÒ.¤ÕÝG7/®Ò®Ò®(O¯ç çðˆv#É›¡¾ãÏÚÃÙÉ>SÇÍvKßîxSKQ4ÖØ8åÙn¦Fß p=?x.(ü³ãòR>„«â-®’Ž ÝÄw¦ÞkñxXTF?™©~>S>6s;z?1Ð)ýDÛæ…âíζʷG»ëoæ¥ÿãï÷̦o$ Ê7C ‚Ž EFÖ¼”€83óT Á$æ#æãª{”í(“>àBlR â À�WOV³`-\¤€"9—¹šçÈhÎhÔ‡U¦ 4€*;�—‚D¸'P<ëT2|�l‹Q‹ÑòÀðÜðÜ^ûa^PûUJÊ�3g˜8‚m·&Ç.Ç~–¸ˆå×ø�=cìK¾r(”i+r”ÓŠdô—”ïQˆZ§1–øÚ(€pWŸSŸ+±òy'.|ÅçwÀîÀîÜ¿Ðk�Y;£ÛŸ•œ|̇¸â©úSuYý�8ê7K¦<•ÊÏÏS ê<]k®ŸY3ÿTââJãýæàÇëÛÍÔèg{'ÝíóOnJ•3æ/Å™ƒ©{÷´X$óJPÛ.ð•RC§q(Ï«ÓsÓ9pv¨º Óþ}-Ïúd]9îš•†��Èžv øÁ™nã0¸²×E‹r„÷àþX½üã}Ì]˜†i‡Ö6fBRÃîFJÉ“´`zαâ‰1»dƒ‰â`QŽáÄ×vÚâ“)MöÏnÓgïEéI/Pt¨%¥VÓËS¹`\¾r\uXù%ºŸ<¾9ÙÓþ}M‡R:7)»ô^“Zî•°|Æ%¾šÁ<È7k¶³!"C¶ˆ·§¶ªÓ0m§µª?\›CÎÒ´ØaYfÚ¬Wˆüì.¾0÷]QPGQëcUØ7Ä3ŽÆìó³ŽD߈ŗÿ‡½;�‡rý8>– cMö%„lY‡¬EQˆlbì„d)²d)K˜"’BÈrȾ+…Ù²e-{ö}ßBI~çþϹOL‹^¯ßÿ×étæ~?û<šדù^÷}]rÒcûõ(&üØÜ¨vš(aA ñÛI6G¥¡;æºÕ¥g g�: u™™\Mƒx…(�”eÆ’‰Âç‹?‡>)|Sø&RpWî˜7à¦"`¿–Ö¨, ™^•…ª`´D£àúÎõÝ…SQ¼êˆÄòœ3(퉎?еÛ"+’é!9`ÃuÃÕö€Ü�Ü�£?ÎÒ··0%>%®ËàFøuæHsdê”ô‰o{–™T¢1(*@aWŽH¾1�bÙÚØÙf_†%ñ }ëauv)ÀþzI I ·±a"jûïQ¾Y¾é`TY)º„®÷ÃÊ�•ñr�ú�úë¶·�¿3€|I€$@Ÿu…*#¥FD-|È8Ÿòùî4ëBÿisoŸ�á¡uvç}Á=>v»‚­¡ˆÍº«Õ2Z§»fn}aÖûò¬+÷@¾«sÜà )£Ël¬«ÌNk[x7êÎv­L Pt‰“[õvƒŽ`Á@]û€¤„™ ¾�g‡ÍË=­ùÜÉæ“Í|”Ö~Ö~sƒN@>@J7Þ´$p?ƒÝåÐr¥hY²\±\±Ö‚FÎSòЍz¤¸T枘oKÙ_çÅb8 (±-±íh̻ϻ'�mÆ ó½îyÝ“õ[Öo0ŠÐ©¯ËÍ5(ºòüÛö:¿\(* Îo¦µ²¢\�$ä÷íñ¶Ìý„¼Ìÿ„æQÏXϸ)ú¢Ržòðw=­W[¯âñkbkbÏ„¢sÈ(¼ZxÕÐÚãNíN½‡w«y¡í! Uµ&µ&­í?¿¬eâJO¼H,wþ5‰Ácí�f]èkûgº[âßÖ†�éý&›ñí]ÇùÛû:}ÎlZn~p*:•sº3Ã{Ú¢ÎKr�ƒiÿ¾¦'BVœO¾ðÖËÔ·!¦õŠƒød5—š$<&bŽ ÇQŒ–‹KÄúš ¦ý\Í�{ó>Á‰âZJáÝ1ÓLDLúsrýñئù*>MÃWïK’>s«Ãc$Ó~®V¡»éØu£Ç‚l¥fÞ¢ÉÎ_¨*Hêt­”å{Ó n® ¼ò�±NLûuZjÛ¼ùŠ § Ö¦‹¯ÁŒ:2 ÂØ€�cw-L>^¢z”W9ÕNÏÓþ}­ 2x]�>Æ_©Ë›¸jôžP›´>Îü /~\×ÁŒ%B%\5Åî;NžØ˜†i?[ ô¿-‘P!à ^6z\Ž’ã!÷ßuOÔ¯Ò.Ó·öKqvß–z¡ß²´×û>ÎüÒôÙé倇]ž¾½îdãjZ‚/ všíœÆ‚@( ¶;Y•5„®Ôu«KÜ ʆdÐqÕ2Õ²¾ëƒý< ªa2øÃŸ[�]�­O¡’¥’eZ”�ð›l/‚7£D´+þÜõ(A:O<@f´°$X’±]Èï×R./‚2gbû@™,ËÃ(8VF­È€  ')8‰ªò—æû"‡E::Ù]Qüº Ê Jû§§ë¾ÍNZdv€�X�‚Šˆ@Ùõô�wò&ñGø'›Ët3Ó“{œ¦Œ¦ ñ­šYˆåÄ÷`äaä¹èܨ¿„Nß1Ô1ôMöd{±w±w[ÄVá�ÛõO£Ï-ö݇o¨Õ'lt“ÀSz§¹%úw MEÕ%4.4ô-bf°]�ZEn§ãu ·Xjš %Uær‘Îï¾0·Ù>·Œ"ÿóüh’á›L«�ÃHùµ¨Ü›wš3¡ÿ–Ÿén�ÑúßZÇâለYdfŸªÔ³Èzf×N‹¯–t´ÍnÐs鞌w;Óþ™í&;›nt3s'\”&ÉP÷鮺ÐÁ\Sy·¸Jþ˃‡_Xݵ‡Þ&QîÅ´_;ò¬ É:ÔyÛx=ç�x;¨î��ŒÝÄõ·ÁX*ÅØ WV»vsZ`¦­Á·#½æ„e ­ýªÞ]Ú^‰N/™lôkÊ6ƉázZ�â|†°ÞîÂ4Lû_´ã,jÐŘ÷5'Ì÷ÑΖïaòž×Iêµû s¬ƒg™9\eލ˜hop¦ýÚíM'a2éb;‰y¾ùfêpÂ+ëëIL‘¢‡9Š8î«’7œ#‡Q(åb¦ýSÛì@¤ëg»á‹ŠÂÒT ¤¥¿‹U@ªzÚ¤ bï*·¬~¼;™Ñ}•žÓ0íÑèb®”gFY^ÔtŒäîtÞ¤Šzòÿ}·¦ý:MtÞjmoñc5c¾–Z³Š`çKÏrÑçÎ ‰évˆÿ°WθÅ1÷�æÎ*XTi;…Y"btÖY[YV€¢HƒŸ‚‚RRì|G2I¤ÅcƒK�¾ÿ�1�qÅdŒgŒ§' ôýau@ÊÿQ[p¼¥H�ŽçBQ7�}üvýízÙ Øí±‹^ ú ÅIPs‹ë-”@²³ì~2î!¢D7UܸԠ�tÖÖd‘g‘÷éªÿº´¬´,Ü 9íoÓ,6XIö_A±WqJO|‰Âó@-æ¶Ð+˜ÉÑO6.?eÙMˆ;¢�Ð@Tµ—2ŽóÃþðcðcÆŠJ•nÜBnþÂë…Wù‘gænp7øƒÀ­Êq¶k8 Ð�Ï×Ë×CŸ;ÑWYiì=oVò„,¢I¾¶ÓÜý<Àж„íìóF™§úåz.šï~½ÿc\)µµXwÕéÐFò/Ì�E¿ü¾ìC¢dì[™÷�®®J¼ëÃrßñÛpUà̫ۑü¶0‚.ea« Шºz2H’Þïj¯u#l«X»/,ÿ¹ËÚ—µ�Sq­s­³HˆÄû‡Œ¯ÛnèÞ¿p@!enu!`°{?u•‰KŒ µ~©bï.{®¦jxŽÕ+N€JžJž‚. ¤³¤óAFÄ�í±ècÑa„ðfâÚů[§^§NùÀómä7¬» "òf(ðô›uPüoM,âQ3)ÙÿI"µ5�™ €7/W7W·2‹Yyßõ{²²X(�jŒjdV£jeÐfО¡K©"d&dö–Ûª\x;µƒ²ôhÃhÃ¿îØøó¼5Kè™4ÿ"ª ÎV~î)èNûèkû¿¹/ Ó~þ¶¦+îÀúаó|R ó=© ¨é#t5›Î¸A¦öä–þ µ��JaN®Lô¿³©ë8M·ä CT{†âE N¼ëÚ·7?«Ï�ãND*oÖùBÞ•LôÕòDdôs$ÓTËYÈ zÈÖ�ššº¯óYL°ÃÞí—÷šÝ³ /ÕÓ0íŸÚúÈxÓ5Hh»›ßî×%/‰5³ú÷mµwšTö1ó[ÊJ•„w� &Eÿ¯4ãeåtzÅîÉAh’OêÒ›�þ+©ýñ_‰Ôk»d“—ÏÑ¥;o¥™šbÏgîÒ>§}Î3Ÿs©áºE{rm%âsucuc=«Å«Å©›ªã„B€ ŸSõÐl€º�| Š$ŽH:ˆ9ŒlŒÌ^ue¥6¹½$1*ût/JÉÅï ÂO¤ �M“M3µ`µ‚¦ÕY�ò¯ØKÙK¹Ñ¹ÑU!Ãþ:VNVÎ~¢ö°o#’G^' ìb@ñ£vœPUG‰KÍuy�Ç3Êô ßHÅë!é,,{êß¹l™…ª¿ÇÄÐÄÐFŽMŒML:üAä Ò{ÍWJ¥©¬ßŠnv;`ü¬éú@LÒ¨X‘èý`6R³ù½ï“±�æè÷4ÊÓ#­’MÃ7pU÷¹boSµ GÒrL×K–s�2{ËàÏ»6¾< *寗 sºðИ)PNlz§µ­þÇÚöØŽá£1:nÕ­»‚Âä’H@�Mð"ð"ª�¡½$¥ƒjYUÏ>7�8�ø;áó¹çss´[Ác…€ÎIÀ«§ÍY‰íçxðQ¼›×’@›í‰ä‰ä0 Iü3›ó åÑM-ölÐI”n_ˆŸ_;À;Ä;¤`›c›»ÔFã  66î]ê]ÒDfä~] M ÍC…œoã£ÍòñZˆi£\—u±ÉCù:{*¯bIçü½O¼<7ü­ofÔ�Ô�Å7ñÚ‡O?oýÀ©…QÖ.Š.Š!PtGB‡©‡©S/:§?O7Ù I²Ý©HÇ|›aÛ_s€zZÔzJÎÌл<¦*ìf�ÈzÞ@L¶Ó}mÿLç‡þ[±.û Q¢ Ñ´{Ö�,›Î%„b«db©<å �¹Æt�¤ûÌ=HJÁSLûûÚt™”OÂ¥3ÓÚ«È'pêO^$f?œ?Öv�ìè£fˆÏO\±L«W˜öcšãt˜ ©»ésÜ-ªÔü‰£XÅúš ±RÝD6Ï÷唾ûèà‰ö'lÃ4LûÙÚºNÅ’uÞ‹Õ>ËPH`MQÖyž˜ Š~­ÀKƒ}BPS¦ý:�¨hŒcá@·lØ,ÉÙ#×ãZÏEª Ð=kÐ¥#íÚUé¹w)mÎ7ŸÓ0íïlCá³û‰^ÙÖ‘õ!šÏtAïx8HªÞ©‰#êᔣž±÷5Xnó´0Ä4Lû'4ê±Ô¥J>$x4­. éyõ:ÚËþ†,ž™âEè�‹â]¥•nˆ†b¦ý¨옻?ðéíãZsÌ’‰léÁAR�ðijô¹±26‚ ¶õEFæ°î6·c¦MúàÞF—îÍ>ÎC«”êѧ}ž“a<¤ç†ë€¿Æ¤¡sæ„bÔ##LôÕ4«R޶·Z¦4®;á< •+6Ê{)”¬8D}næÂ°Qƒ�P,÷[ûHKBLûûš„Y‘=±h#K’Sé,<Öü‚-›U16¤Š�rüþ¸Žr&µMn®/v³«¦ý:­«ÓϦ¶>Uó¶{bÌîü;ß½–Ÿéž›ÿ¦Q±«˜RÝí æ¨žƒ_±|Y¯hÓ„¾7êqƒ•s#gÙg-?l—AwkÇN{£XH ÷v¯¸†¡èöLnU‰ Î%!±¹NYOYN«ÒDÕ�­tÈÒTø\Ùµ²kp™ìºìº>Ä9;  ¿˜«Çéøˆ•ÎDé ¿ó�ì(â(b­¤éÁÀŠ>g�©¥™ ÈŸ¬½…ðÄÚH±Ã@ k «ï F#Ù  •ù%U$U¼ù‡Ž¹oà·æ·Ž±³²ù¶ž7ŽÀP Œê8ξ<‰³ô9ÙS‚‡3?É:ÛaR˜˜U–P–hš=¼†Œü®‡òå«Ýˆ@î@îbVtq±”±”{Ä= 4à»¶•‹úvdK€ëþâ¼â¼èûþ‰1ç„™vßæÿ½ÓÖëâþÜ�öýá^*IoÜ„Ém­Kø™&#kÈ&9®Æ½¯øM3rVX‡õŒV;“ïìv…ª±ð½r–)î/ìû }yß¿(bþn‡ºIÕ–^Z X‘éNkþÇÚ¾{i;öd (:|ã­ìÖ@sµ“àã•*•*ÒkT²!w“q^žú\„}„}UG‘D‘Ä5?@o†V ÖpºÈ*0‚�%–ø¥XÝï:Hq�p…pe¿9M|¹¨T(hÊPŠ„œöL@IëäТ`+33™y&“ˆñŽÀePsÐxïx¯ ž ^ˆôøž¯ X X<'7ù¶ÕèÊ€–[}”ʰ‹ÙB”8y½¡G“�O½ý¤�Ís`Ö P«´w×Þ]Nˆ)Û{¡k‹ß#€1€1­úÐËC/‡#ÑU�é±é±=Z·R²RêŠÚªœw»³Ë€@»ZÚZZp=S ÖÓ&×¹®!'=¤]‰0…Æù#;íû£¯í/Ýi€i¿Nˤºoɲ:,›öFJdðý¬ópgë;³=aÍ“ºg%u(=_ËåËÿ‡½ûj2Û8No"%z_¤/H•"R¤Š‚ôŽ´¥i¤ b¤(J�*¢”*ˆT‘é(MéR¥ .Òy}n|®TœÙ;{Ùû†Ïßa2üq2Ãïœ'9~aÛ?³I'À ÖËÜK¼¸£uË ƒã:ÿx«4öäuN†‘WjOšÆ[ç·¡´flûßiõîÁ¤¾ ñ�B¬žÒBpÄqâ™�Ê„—i^>-JèO’{ìÚ"=Qa‹mضÛZ„vIœÎµÜe'Ñš©tòL{éªx}wÈà¢SÎJH»…�äþólö5½¡Ö\|Ãõ‹0ªR «kq�üÆ ©/¹dÌ®W_â)å—0¬ šZ¿Ð‚mÿÌÆL¼–Q¾@u¹d™å–Úµ xÍvÙîÕ88S×…DõÀ˜ò×K÷žb¶ýÕF=fOCÊÊ­ðøót ÷Íw²ñ#¤úówo�#Dc,\†©³DÎÅÊÝž-'öÝÕî %Ø�$ÛW„u¾uZ26?{Ú0a%ÕÆxÏ+ý3“¶í®foËX"9O¨jv¶èOÝ? ÄÝw£R“Î{‡¯¯ pÐã—Æ“úY¿ïĶ¿§=ƒÐP{Ï’Ç’\g²ƒ¸Ðúº®Sõí¦;åvSKNÞÛ¶J»”7Ï=FÙæAâu<7æþþ‚úÕ¥_ ùÝÓ¬Äô»Ÿ.ˆ¹=îÊSw2÷ 66×gˆÈ ]™Avˆ ­ -d2¢ÇbÎùǸ"¹"?Ú À~Ž)ä¼i° á74�Zá,Ö½híe™ø½Æd5'ïsIp-‰V0¡›€M¨y˜Ž_jÚ{èWè¥ê¥ò;[:¶öSFà"ã"㨓‚R44*/¶Ù£–­Æã>©\©\˜gWŽO‰I˜�yñ‘ç••ñ¸OØéì*at=ýJ+Ÿô oÅ==®º,³9÷£TRÉûð•Eð–ÄÞ¹"aqvƒïÈÚqåÊ–]à¸ÛϮķž]þz7g’GFÖ <œ×IÆ£ª;�5`þ-ÿ­»N÷\–yÔJGÌèqz [“o½q׌ÿ©®ë%�° 6üS" rž&úÒÎØ†mµ�à)i¶t´2¾ÏS‹œ$¯øýCÍ(}Èué•>Öq›îz…åÀ£f¦o± Ûþ›M?Ò«˜�NùsŠdÓÀHǸ9QU~ã›Láfñ÷µöo ;pÅ} ‚ ±mwµ�'w¢ÒèÇXÛëÝ«— ÷žÒã@îí«8¦ñJb v|2-¡>ê„m»«u7ÂtO]5t/fœÈȹZƒCC9rDãªe¾"”t»é¼ïµÓj]‹Z/8†BÛ¨õd2IHz`î 5LžXyÅëÐÖè5Á›WòÝNûBú_Æò„þ­x*“-0ÕNn¦ñ IJd %ÉTtWtßøí¶˜P|�o›ªáúveiei« œ>œ>ÿú*3º¨‹SæÖ5‘�@¨ÿY€š{Ì#4ó߯5A¦Ä.ˆYU»ùÌh‚ ô¯A£ÏÓѺV%•*­Eä3k3k*üÚó´ç©Æ»ð@xξf¾fP*(•¤–îë“Ó—Ó÷SW—ü9v§,³dY€Mû•˜£ZÊãñ©ÀÙ#²ßÐ+”ÓD�Ì¿|øàÎG:>�Ë¿B‹E‹Eqp‘d‘ÄS“�{¸{¸º�n§ § Th3*™­`F€ƒyá1á1˜ûBZfX‰ŽÜ+q@å3P�Þi_h%—Œ6Ø4tásác¯R«‚ù™º—ï°æ=ìt£”Ð9[€5¬Õ [ÙŸf×"(w+–ä;ûB‡¾ÿL³n¾H¾óÙ@½•LÁóó;­íÓ_^šNu«´ ãQL³›}ûNó»ñªò õš�Ò"_=�9v—ÅíØ¸Ø¸¼C r r¨Ÿ²u8û£„a ¸W8 ñ"çZ ñ™Ç óé°ØÙ,9Š¥˜Ä›9Q2ŒŠ=ˆf¿òðJ¸‚í[@aGa‡„€Œ‹ŒË9¡ê…›¦˜¦0ú3úsÎ8ýX@m@íhUöÏÝ…U¶ø‹nS ]Ò]•Q®@cTã Òò“w{üÍÒ¹ ”ߟݎ“v'íVåøKÕ^¥ÿŠf½f½R½½P;&Q°Ï«$ÑÖh’k’ë"¿YâË­<æ|ÂÌÌàzºðõ;ÍϤSPVêg5JÑH? <¢²Ó>#æÚþOßYÈß.½œcrhàB*s’ŸWIž·~wç~vñF>)ýAÙ(GlÃ6 MH�Uw¡hTÝ;�ù[VZjgsƽB¦\=8®YF›ç],NùVZ›ÛþÿµÌÁwWîÇZCmèbf¼b¯àÎ÷QÔœ¼ŽÒ�›m){m$×lxC”?Ûþ{ͽÜ5þÂC1¡�{'uødbÑs­Sªí.½ýlRå”ü}‡Göi²ÓZÌ(ÌI�ñØaÎ1µy(gîÈärvGg—èÑ�æƒ/sLåVÖ“Eë˜Ò¯löíÒ*;I).<"šå¶,‰{€˜*<~óÅ™í*+(¦)¦©¡ÄüE`Ò\$ñ`31=°Ï-6F«5[$Ñì'¨#¨›C½± {h"«éÍrÙœB[ÿd~¬©ÒÒ°gcÏF! `Äþˆ?§2hxøó fOqOq‰6 Ñë×èט}¿ì÷sŒå4nK­€««hƒœïÿ<Â�öÞ/ð¶Ó`Úó=íßx% ‡+žØððÎ¥›UÅ 9àýŠjºj:þŽ6Ò6ÒV;L–ã“‹“‹9ðÎä‚ä‚û§6ÞØêÅ¿~Vgˆ‰·}îøYF}õ«ÝV"‘5Šž�Z;Íè9�÷ü–/»&ÂŽ¥Ù}¸¦A; KæZg ¬¸Ó†aÖkxTì#;^«¸˜ÆbO†ê,ê9iÌwft©ïÏè�ßXO¥u~Œ¾5ƒP�/;-ï´¶ ¿¼´râV ø!G0½ôÛ¬ ª&“3]EÀÕáê““Oæ…Q!ÙÉ9UÑÛImÔ0Ô0ôT4Ž=çÈ–>9¿ªaÌ—1£-˜–Œ‚<½T{©ÖË-U4tåô~]™ èôíâhV ¯£jÙG:Mš�!“Ú“Ú2ó% ‹÷ö(íQjdjdZÉ/þ1|^|^Õ›�.ýœÎRœÕ< YÍ0™ërMñÅÝrhEEÊ7Íø*Ëœ<õkŽkŽÈ—¢æ ‘Ä¿¢Þ²ÞòLV[›Ñ#LDÓÎìÎìŠî/«àöpûåà͈Ïnõ¸ ­ÇÊÈÊøï{Ǿ> ÜyO—'R_KùVÏ&~§smÿwL`¶­-Ô¿ ×ù Ž]¯ ­gÐó¡Ÿå²i‹;¢r¸p”Ì£ó«Øm»r‰ w±m÷·Õ<ÈT65çŠOÄ«øJ(R@œ=åpºÔœQC>+ýŸA¶Þ¡¸��؆mµÙöI'¤„Q?ŽTäÌØw?š³Žš7˜F<óÌ|ŽÿÑ˯‚º<ËïÛA²÷c¶ýÚiyˆCƒÿÀ¡®€n*ËãÊž¿Ó[.ÿHL!€Ú€ª§–Q#?�›Ba^؆m»­í­eÐ�(3RÏL½—s�±eLäˆ7$>·0Ô[HQ’ߦÐ÷Ê´¯ Û°íŸÐ„ËŒŽ¦)U>4-~Žê�/Ðéõe°¸(¸O�ÂáS½äI’dƦÔÿt — ,w`ÒÜ`£Ê7`Ç…[¥x›hbîU…MËCðìˆ2rÒôéGv¼wñ .NÿV¨›˜²¥7ã…q‰‚ê:S˾ Q­”*¹SÓÑQ[¼�kˆk¡6¬ÖÓ"Ðéz¢p°¾î˜&^\ViBóP.åù<,Ô(ÔX:#Ý8 Õh)òàOƒrF=»Ð¬­Ô“ÇÔQ€ê/ðSPu-Ûeô|­åDË ¾¾¥á™‰>X'¼‡Gøçœ+?µ¨«Dk£Ón“E;P¨@rv�þé™ñoæsÚüƺ  ÊÝ®éøÁ7¥~E|b|b�¡9ƒiO/‹‹�_Öië{Ö÷ƺ7#7Øjt`Zµµ ®§É¯û ÉÙˆWDƒÏ‹é£ÚÔ„´ž4-κ¿Oþu�ƒh•Þ�Š�*\_÷mBêúª«bÞ['ëó¤-e¿ù¢`‹“Ú^‡Ó˜Ï‚`~ óûï0÷¥œF+˜È=Ã+óé_a?e?¹ÂªÉªI0Žé¢\ätät±EyjÒRÒRÃáÍö{oņ0#! !År2„„SÞƒ~D?Â|”ê�{é÷Òk«7SãÜêm€†pM|MsJšz-«eøå¾’!jB\p§sfïákçt¿¹æò;äÙA‡ *1|O[®Ü�ë±pXI&Â�š~gùþsT“ï ýýž ÈÏ$§¸÷î´¶M¾¼´iÖVóÙ•%˜öãmæn ºÛš¦²šÿàñÁƒÜS>QOWÐ,ÄDw»øÆ›)—)G`È)> HèŒÖY(pLÄ¥þ�½;�‡ªÿ8>–Æ’5d  !k¶ìd‰TÆ2Rö%&Kd‰DÙ!{—-;“S–ÙUö�H)K)R¹¯sÏu^ÿûßÕr^ïgŸ^óàûÀùž™ß¯4kØhà"hþ0f3)¯™ç]ïšß 23ã-éÌ©HbýUôŽ#4O>�¦Ÿ¦ß#ˆæ‰æ™%k7•OZ[ßb»Å&ïœÇúu���Òˆ‚oS’ÉL vxu`�CÈ¥Â_a]êR;]æ/q£Ïòm -•@M@¿URdRäŽÙ}…ªMc›¾‡b‘bQæ…£žG=Å8qá—ñ•ñ©ä½ŒvŠvÚl¸V2Åz!nqÞrd9œ§*8vžÂ›fVŽ½Ç¸{0ú>áZŽØè™w¶¦»}~ç¦V=sl°_†-˜¡›´Å2s·,ƒÍ¼Ð]ºr±çø´®˜˜vmw¾wj^+µÒ¯¯$X9¡ƒð“ m·4|":óÈ,ÔPÃÇͲc‹­ïûÕ#7Õ{ØB j¿Bk·�×îð¤`>5-˜1�tq¬ºa¶c_£¹êÐíb“©Õö­åúYM§7Cí÷nç.?wN‰9b*?OÓivN;ãú=&•R͈sf•KêZ#FÓc{·$7gZBíÏkF´òèŒ ¼;)MÚõ$Bon{#T;TêE9%ÀY„2±ÍS¼½ûq]M'Ô ö³µºt�æ×!Æ;Øñ|ëw##U_º;-ô4aŒ˜£”•J ^¤LÞžxú³VѸû€-* ¶A„§5Ú=H�´¶Ûh¬HåÖ›îK¬ÁÅÚ¿V!¨+ö‚&¨hw–A–ÁtŽ+Úúˆ‚¤”¯Æ®Ï±w²wÞqá]æ]æ¨;Ó@ ˜ë¥ó¨&˶¾ ˆÁšŒI°…3ÙÛ[’lÓyÐøäÍKñtŠ!\ «�9Ö”›Å`|Êø´Ñ00ñv‰ÿ5¨ýn˜E˜Åó#Ï� ¢©Í¾á€ph{v)úÛh0øÓúŠ%¬qÍv,wÞíî½çN]�#ú$ƒñ®A@»žÏ9²5¯¸è�nã÷ˆ÷Š÷*X9r&¤¡—7/—9—ùUaûIô2z™8i­[ëÝ“,]UÃWÃÇÝuEk#2d[ŸHXÍSóÝÞ´Ñ® ÷û*ÄCÃfÉw­ðzÐF¢�7E:�!VÓ™}Œô½ÿ®KôË». §‡4ÙE3Q®ÓˎزÑl›w•Ž­ÇÀ.ˆË]a­Ô½ ™Jæ3 Á…ÁñÁñÀçû¼‘ÅêÍtòsätätÍ òÃòýSÞÊy@�'À¯&®þ�í«¦‰%dn2j��màÝt¹¼D}äA¾JŠ3ºœŒ…$¬E�‰ÿï@7Rì£ØÇ¢ ¢½Û29‚+b¦1Ó¬N¬NQáB3_—c�c­÷†ómÎወzÀjÈÏ .VÃÚìQÑV.©A†ÿÉ…AÏð<€XõIû“ö»�«ÜcŠ[þúú/I«æ«æÇ{q‰-J£¥ÑÕ½� À!ñw¯µëÙzñ$€X®>®¾ÿ›í~3Ø89ɾ3/ã$…²ícJ³›‡7ÚuáÎöÏtÀŸÖ&,XÎ?ë auõz*Ô=Üh¸jóao²fRßLoþü ˜¾ ¥-‚j^35€‡ÔÚfÛ/žµ jMyx%õ¬a§žŒAþæñ³¤Ån’L;wŠ;ø9Bíçj(þÕ«¤*˜ôbD)3ìpvÓYå‘kø–É»‚4nçnÖÎ’7 ïñyrj?W«5^uë»0`Mý¦ñƒAç!¡r]*w¿*Î <íc&„%"jÚÛG=%{¡öû´œ®9«7"þŽx«žÞ‚f/ôCbE£X[¡Ê<^å"ÙJ•ºr‚Ú9Î&NPûóZY]äŠKJ°V_Eýä•=]ÁI¦s÷Ï z�å¿"×"ÔÓè¿ìî�5¨ýl-,ø’tîµêùÇ j&•”éy3wóÿ[÷Dý.íËÃY¾þK²÷M;_m ¸J0÷ê=înÇ/% ?U;Zq©-ÓÎ�v;æÀ×Û={ð .'žµ W¯OûŸIî$¼$¼—{ŠñÞÀ« |s•>×õ¦ë ÷)1&1¦ˆJ€@mð%9ªðÍG„ï;>-ÍGV¬Éó�Ñl{x{ø2õ¥Î¨•Ýê &DÿXDëúÞŽóƒ³n½€†â†bt`ÀaÀ!Ž–ËdÀÚ¨Ù¨iãjãzíÔM¡¯³³QD?:ömY´þGú°4¬ .榙Xïò‡ [³’\z¼>T”vÛ^hW%W WЭ^>as�$�¤À0šÃ ïÔ2jyûÔö)ßx¥†¯tt·‰§ƒ¡ÃW?ý¶�ˆÏjPZkPO^£ŠM%“ë[“¦!éÞà³ ÷¹CY–´-2ÌâLŒJÓÇñ7A jÿ�¦Ä©G¶�ò®QÅŠ–éå=bö€¹£Y}„Ö’ï{^sÄéÌÂ1ð-‘ÃPû½Û`/y6ÕB7¥Uìf#8ÍjÎDú#‡ä•,ö‰½¼¼WuiZOЈÒi•@ j¿j{9šàµÏÃy⤆˜æÆUÂKWçH¾´^TT�ßΨAíßlúGÝÍ+f:Ñ0ݰ�ñkâe*Ë}´[B7Çá ›ó^ŽÏ,´}B.ø¦jPûQM-®`Z,“«»p�3�ºl€zEÎÒrìŒRSàBº3>Ñyôcÿ’¨AíWmÃÔ‚y©æ™ú;ÙŒijÄ%ŽÛýˆû¶º{�Õ›�TpÙì—­Œë¡ÉØ7‰ûÜ6~å£ñª§«î¬2Ë~MÄ«�žÛŽýýoó�õúˆæ/âò \K…䨧¯Âó:‡:‡’ߣÝÌ2˜þ‘H…´êsÜ9Ü9+&9Ù9Ùžm€UM“›€ºÀ¢£[NáV@W|#Vêñ‘)ТqiCi'K&‰� jtzl D7qÇ‹Ü!äÊæºàRàR ŸN—Ò©cÏQJªG¨GØ1Ø1¨!.Á¾-�–ào±ü6MZ�èI@h –s®_’†V(ÕÄ)£2ò MÓOº¬—î¼Èõ—Ä”ÄT8œ±Þ›þ=x?ò~ä³o]h]ˆ÷ÄäitÈèP‡[÷EÌ}Ìý;òk-p¯—Û (Ø1=2=‚ûÜ&)ƒÄhÀß�…êxtkj£ç6ÜsäÛö—G²„Øe[þµÙÌK?ð´«c}â¼ uT§¢ñY]Ñb{úøkžÛþ¹kSøËß?ëRé’v­U‹KÀë<Ë{âòF³mù÷lOF­÷�è´3®×kù¨‚Ä­ß�ƒ&úQ(¡“…uö«=sFÍ;î~îýÀûÕ\ö ö t•@' àO\Ý?*ß(ð¨}¢‰åª~0d…ªt­t½Õ¢Ëã#[KjOŠGƒ´‡Æo`5˜=eÓòI~¸ewËÏ0]1]ÑåS[ ªâHôHô¨�¬�Ì*Gîø:âNâÎëñyÆßfæ.eé¼@úbI9Ìí Ä"W“v»+ÕVåÿ‰,"`µ¿g% †ïO©¦rQÞó=J”J”\¸é‘ôH=1\BæÔÔKz~]hb4qoÑZ·4×{Ó8ÆHÌNÌÎS3vž² òMNMéŠy[# «[)¨7ÚàÎöÏt~è¯Ø0Æ<÷%àö’¤™ˆWÜmÚO¤G“ãëàéÜæ‹Kñc·§ì7¼»^vjÿ^›©‘ Lw1œ9œYO3MЬz’‚Sjï�©.{j¹ÒXà`°?!§d�Ý#¨ý˜æ6ëIåÎcù„#-œ!çÆ´ÆôÐ|ªl?ܱš¶¸jù#Ê–LÞ5¨ýlmåhí+ôý·Ãê6Ѱ°Â­…¶[· ¤| Ùc~ÂÙz”%=¢½j¿OƒWLñÎoïß;ˆ·Mæå¾siO$è 3ßi5f¦êÛTç »â’;t5¨ý›m<î%üþ§&êaD‡aÙe”ŒîåÆ4xï>eÆÎRAf¯»ü­Í¡µ_¡1N©0ViR’l}詞‡n>zøu°9§ÿGökâ,×¼äµv|�ˆ‚—C j?ªEº•°…ݾ¤d4Ë!“Á�7! ‹Ë8ÂR’ªà(’îÔ\�´z�ÓÑ 5¨M„,ùʇ>ã‹Ã|»ÞÒë'Õ¬VT`Ýezù‚×hðÁggÉ= ¦5K‘PƒÚ�j‡ê¯Ëu?´É-k[q'(�VÆ Ñ-{²5ÆO¼°Ÿ@¶šíIå_tM°!‡Ú¿×¤�W¸RH´qf¹W½4Hµ²wâ¶ÃàÃêÉéŸ^}zT»€Ñ±¤$¿Ãë8Ô~ŸÖ×{%ª·ò¼q±zÊÙvœg÷•Ο鞛ÿ¤1ðèX2Ä Dò6ÌÂ,NÛ´4k8¶ã¾•e}ñ®: 1xê_"Kêè…�Þ�ǃÁÔX× âaNÇeÒ¼–‘(hÈdÖTž�<˜<(�´WêÍŒ;À¡1@ý¹)¶)¶lýý:p k¯/ M¢ŠÒ.[È\VfÂ*zb |KÜAÜ�<ÒDA6Ü“²7²`¹*›åaé'¿|ðÜ›ÑðHÿ‘¾s8`žxžøX—á&г՚›57—c—cIæ¶¡¿ÎMÌMŒÌüÞò·iÊ’ŸoŽĈbõÀ¶R’au Jªý{÷ÔÔº.pœ"Uz MªŠ€ÒÙ!T)"R”"J•&EA6½ ˆiÒ"½#EPJUªtEš" ˆ›.\×�ë QÄ™}æö¹ÉïÛ˜ Þ5“õ>+y}åç,q|7`ʠ˶ `šÅ¿‹÷ÖŒ”!±öXÂï¸\r¹D§Û!Ë!+‰ŽR¤–½–]š~¶lÜÜÿãÔVú· ÏÌ©è/é/¡ÏýsÒ,EÙð£j—YÃ÷í6÷G?ÿ=U1Ïe)cõI–îí%x;öcFý~N‘è'šf¢ñ�Ó‚¼?™û ÿ| ç�7 Ÿ{â—}x?"íànkÛòëÚ¢Únš`p]5d«c® €CÐêË¥¥£Š–%t‚Ì Oq~4Q3QóœAˆ ¤LÐäÇ_¬hª�}Q\Ä7­BÉá u™ Ž™�™cW«fÕ½ý×' ºåÒ=€’ÊNJü¾1#нؽx#P·Q·¡çd ’UíoëoóOóO³=ÝÙœûœ»éÑlá_›¿Î×6ØêC‘>[yUåæ{’ÕJz¨5Ñͱðóo£åxûðö¹ë§‡R™�þŽÇ™�3Y+ß}z÷)T�¬_’a’aR[`äÓÈ'¶–­p�oÇÚ¨– Å Å×S-j=mòX"Ç]É/ܸR+J«sIf·¹?úÚþÙ™˜ößÓJèa6KSQŠ…CÒbc«ÅØß úV,z¦ ŽŸ£ó®T®òÆý1¦ý3›äí`ý�'¦*÷Ãq:ux�Iƒ—_*LVkRåºg娿´ŸuÏ鯴ÿž6ðÌ)�È‹æÏÏê,ÉŸ£JИ?¨ˆD÷ôÑÃÛ#)Ðò+=’Sõ–˜†i{­Ý<]•¤qoHÑN¸ùC.I¾µä˜®Õز]ÖZÈ‹³džâ‹¸Xöc¦íÔÎŽ÷ÞÃ5Øðs¥€›šG$ùóžíÈ|zHÊX.²é7œWÌ ÿÆ[¦ý3 Á—¼–°EŠ ªÕ‰jõtÁÍ×Ù¥‘ëIÁÌ#·då“þñuý+Ù�0 Óþn£œ´¦#b=,W¾ô1þð­WÒ° "Ý…¬´÷1Âñ¦o)ïý™M›«#Æ´½ÕŠùo[é§Z7É£U²›¨'žPVøž¶cÊ\:vÀ7”©Ç=w‰Ù ÓöV³¶dª_ÀS1¶yø—Îe*}dVlfgŠ‹GØÆ—Q>\8ŒÈûâ›ALû÷´ÇTt”s$ „‘ÌVTô^W6(†÷Ò™r{©¥¦’ö­Ó¯”.ðFÆ+Z”$/RÂÿ0»R7SФ¿ÇÈíCUç¾Ûþ¾6Ö_qÛ‘1Ä=E÷¬g+ B�UØ/�r¹ðˆðȲEʼ¼~<,7<˜øGðøÀ3-[G[GD%€CHsxñ³éºÞœôyEŠbAÖ "üÅÅy?bíô…̨R�Áâ‡4P[GË·×¼¢4‰FMð鯧¬B¥V¥Vë=P)£®®€�€PÎñô�)Ð(Ð<Âóü5¼³õN€Ô-.XA‘X þþ4Õ¬°ùËsËßAô&©-Ýù ¡Â¡Â“õ±+uUÈïH`M`=‹£ˆ£Èp]E…�„�„çÈ’WïÇÞ�j�[1Öm7òS½ríÊ5ôÙ•í#B–î<$¥55ÜNwœ�³«Ûï6r#Ú4ʈŽÔgŸ=ÔzÇø““æ|¬r&É0®¢°Ίȫ+®IVc¯ˆ_`CkV‚±œ]‰þ|vE MnïQ­+¦ÿ ·µmýõ­U_m¿a‡nûQv^ ûye£N³N³ÑÊ"e­¢¸õ�Àæ C…¡"u)¼)¼lÿû*TFt«�•pýs(™û@©ùØ�8&Ƕۃâ¥ç?�H¹ãYQ¢�£ ´%´%4ž.>.>¿c ” Nc;o;ïùºù:5Sü�Ͷζ¾Msôÿ56\“\Ô­[½Qȳsz|Q„¸&’d›=�ñ¿Óðs÷‘ìHk!C‘¡ÍÃìïR+Ê~GõLõÌQ拉¤% tç; M�&êTôD¼D<¶{[ÝRÙNV �‰�{÷:¸žŽ;ë5åjÞ�ËÜ\¾1)ç÷½SÙmv…¾¶ÿSgçØî’ºß !`ºª7ZàúE¶7*˘÷‘Εk|¡}¸g„: ÎÈt%í1 ÓþnÃ×ä®ê6³5?_ÌÝR0CRï{tºùCH¤äÚ0!ë{ ä3¹U%c£—˜†iÿɦí^ÉQ|Ì’.Þ5:1ðÞ¿ž¢ì&Óó|ÁnÑ7-ÖÏ `‹zé<À´½Õ6«3bs&Y_ìX›¦—¥÷T©ñ"‡ì¥sð~ÖôÔËõS�ã7úª å3‹‰_Eß‹�º9™Ýê²síÅ1ˆÛ4¥Øm/Æ «8`;©žS†èºG¶‚¾q!&îƒtä{«z«��)0x„ì¥}niò£õÄõÄEÝ ­ZÓ„g‰{ù-N![ºØÛ€�ÆÆ ‡ÍâS ìî5¡5! ëT-RzÄ9Ðk®Å.?·¸ ÞÌL„N F#D9ð ð ›íˆ:}U»T»TÖJÖJó}ôΊ‹eÎ$ÔüZçBe/5`!e’9ù}Å1¼fDˆè é¬gßÍWµºÔ¬6ë³¾d}iŸ½d—ÍÎú;Ô&Õ&ï¬ÃuáºfèlnXXµŠ¦´a¿Ã~§Ýʾd;Ï€—fquq5ú>#‡†Ûì�d|™ìªKmeŒz»í3®Ý#¦4º±¸ô Ü=žÈ¼ba¶õ©@kéÝAGr©Q-› ìØ·=�®k49V=Ç ‰ „?Ùgücû>£Û·ß4?—KFÞ {§S‚ÎW²„\Fy·}!ôÿå_}Æ€?ï ÉÕ"£�?FÝ2YR¼yΪ*ÅñÆ:,†‹¤aíä’Г޵Å4LÚ”Äd¢�NÅið„�YƒÙéÂÃ Û ÒÃÞŸª¡/õ¨%)yÓþÿµü±W׋añ.ÒZ@âgÝ®c/ “5kG¶é$ÍõÔôB»Mü£„yïaÚ®9Õ]�¹ÝáŸç6tŸR+j3Ž"xN f¡&�Û¸«sfÕQþƒf�ÈÒ¦í­¶ÐÔ•’õÌ+nØ/Á3rÏI…š?Ûaõ¥c ¬ºq²x•Ç`ÚÞo<Ö|v'ƒg’ÖjœQyáðz„MâRF}|‚ú;½é¬Ü'ÉñIž +ÿqô{ªõ€tú‘l:×)« žùë,v»§ºôõ#mé¡íxBb\Ð%Ånõ'ÈHy!ÙäÛä{¥žâÑj¡#³$ÞQ«)Ï)Ï�N"Ök¥€KUâ†õ'böAöâíµ9Q¨yU�‚L6’7’SeÌ AÉ’ zBÐlˆè8Ê-C7§Šìn€ñŒñ GFr 9ÖäÅ2 ¢–°Û´ÛìUïUŸöäîÚYØpØð�@I•_ó¯‡àzßœíB¡;¨íâƒr%Ioîåd¶v§ñwZ3‡òŸ oºr»r=H\x¨m«W‡ï‚ï‚æ¢¿¬¿¬B'º9“¶Æ¶ÆÊeÿ8—8‚¾­(%·  ç0ƒ˜AÐï©ç=ëˆGš Eó5Ë;jìvOUT¾Ÿ³Lú‹¬¦Õ�n§·Í§}ïHE ö¸VZ0n¸¾6P™gÇéQ_ÊS™k«%ŠÿÉ=•ÄÏŸÝ ”ñʳ �Ò_ Ã]‘-ÞmmÛ~}ë¢sÛ¥'¼ŠŽk«âÐ#+x=h@Z£Z£Ú쥀B3gƒé|Wì�ú•û•Šheke[qÍHÞ„­JìÎB&ëþ[1X(ÓóIX H$Ë"Ë¢ý¨[¹óű› #zU¶§9Êý6¦Ô&Ê{‹â âŒÀM€™™ž°ô*ÈÔ0€8€8‘%‘å6-AÞÎŒk�k Üu­·÷h^h@0ÅÍùKÀÌ [9×C¾×Œ¾k nVhѼn%%}rÍF¬¨ZÅéw4F5F’h�h¸ E÷‡w \ Ü’�êM§§Ž8֭裶kœCú!ýþïܱoÏnfëp‡Q=„µ�¿Ô±€ív�޾¶ÿgL`¦­ï†O¶½€–äõzç€Úñ¨%h!}å@lÑ!,“¸²'ì–ˆ{øTY˜¶÷Û¢J)Õ‡BJ®5Ï›í°)Ú>Qöô㹟 ;ÊXþÚ`éq»³Ó0íï6ËaÉÛé¡”åÑò\yÔÅq\­”GéDóÏ- aù(µ œëŠ­¨ i0 Óþ MO–êR‡Ïè_$…™ª¢óQÓãuód|1ã›´'3k( >¿7¢uuÇ4LÛk�´…ñì•"åì‡7Ð+ñ–,þÉqa.Ž¿~@VUÖ'7|Ÿ–™º Ó0íŸÐk •ržàÝ5ªš|[Û6«ÐzíÅhêwŒú,Ù¥ÏÏĵõ Sù˜º2ÿÕ-LÚ¿îó©M6Š2}vì`ót� §Ð÷ŠŒ×‡ Tï ¶3Ÿ'iäÞm¯È öçvÓ<�£èµ¶:jò<ûQt4S²[²®‡ëªÒlتlfþ£|ß|ßy‘Ó™§3Å��sLå—@€èº=³U-À¼*oE û2-HÔ½#¾#þ:£�ª¶t0è Ë®ÅŠK·{¾v¤f(À›Ú›Zë9àã¡�‡"ªƒxA:nÝ.^¹(bªWµ³uä:2öÙ´ï¯évG„ʨ·¢$÷KkT¨ �Œ�k¿½Å¨ÆûÑGM‡0€FËCË#ö‚e‰É¦‡úwhùhùœ†óïçßo©‡ÎÐä\Ĺˆ“%”ÕWÕW]·¢ŽÞN<�ŽuMýš:¸žf¾íƒ¦Þ,ŒiÇ«­\cˆíSÜi=�2µqþžäÛ:Ñ€gЊ¾“‹Üðê*Ðñ:©‚~n�´gu_:�Éò±;5ÒKz7ÑŸAÿÎúïß¡ïKÙM,wÖ3“8‡Õ;OëUS?7²^R)á0F*õË©„?ÿS­h³DzÒþE"®PnA;ýÚñ|ÿ¸Î5¿'�¬{»¡¢yÓn׎ý×kçÈííˆï- Ã–Ü šº­š�bø|cåÆÊšQÝÊ]âe?‡ùWE?rîwîçù’î—îw¢ð2¬ �ØX¼“Ä0ÿ$Û�ÂÀŸ¬ šk‰aùªM©�á£o-H^ öd�= �"¢äTž]R˜èœèüÜh�j�Â×NYÉc1c1{É{É÷ÚO‹íD¦T¦” QÌýkŸ¡o"Û°ÚߨU|+ˆâ:È©Še§É úÝT�@q£9àô¬ Ö¶òêÉã¾ÖïÐPÒPrb;£sF§Å� )"íÿ—ÅU UŠ>¦­†Z·cœ+ êêFŸ!ðÃõ¥¥gêoŽB–[VbÉOí6C@¿^öÉÁíŸ⠩ϸBW—<ÖÅ`×õoŠÌSÙNòÝ“1ÃÞ:CDÍ~>Cp¾Æp!²œÖþEN%¼q×ß.uøúÖì#Ûq{Êë¢KÛØêŒhºpYäèìxÑñb6éUf;�T–…üGp5¸Z�P†PG!@F|20êø¬¢+N ˆ™''Dy‰\dzzÚ' –Oç‚øÄ&“@w](µPèÜñŽâx_¼ˆ&Ž&Æûøº�±(?¿ð‘ÃðaøÈäéýwwö?ìÝy4”íÿÀñ±ÙwY“dKdÏšD²d)ÆÚC¶ìŠH¢¨‘5‘%[„ì²ï’%$²ÙzBÙy|»ÏtcZtÎï÷}Õœ×ï?æÜ\gι>×Ì}©S«S'ÄI´ýØG‚å«:C€žH”÷ Pv”% ]±ôtÊÐÔC_à/ý]X� X¿'K!KÑeíòXŠêíúÏ`ÂeÂ�Âm4o4ÿú;Df6 -ëý0çç¾ãåÅfÆBW_55p=q}þ�ßСØ3þý*N÷sì©=ŸÓou†€¾¶wB{ZŒfKñiœQ6ïš*î8ƒi˜ö+´µCc‡"ü'%õÆ‘¥ üˆc䬗 T ‡ÕzhkIDeýƒÏP‰&å<Ç´íß>0°A îÆãU¦ÈÕò³ø ùXHPÀÜÉr�„r= …?üyt¢Óþ™6-?=ýLp¸Á³m™M�:Áìqq×=ûÜŠÓò&צ q=é/‹;¤�šb¦}¯­àv™»½ƒÓ=1§W;‡ßja·�îÿ]šÚÄ’#œÎÃ06rÿÓ‡Ik›¶ ï;Ýø‘4©{øT˜L\�bÐ�[í;l?í;îÐl^€W�N:g#˜hh„¼ôŒøˆ×¯ ~w�ÂO®y‘ |�GŒG,ŸWg]g]� ÷ ˜Å^ö¼¢oLÜ%ñEqZ3­¶ÓÐÒÐ*ž"~f<Â�|o :¡H[Ž2ྨ1þ&5`#`# Ñàâåâ•g1ÂÑ ¤¨¥¨u v r{}Tú>!¤R¹húè�YWÿåžè=ŠB°W92KE‹•�˜ñ©ý‚Gü³qGWÊE{99õûˆÆjÉ–!?ã ØA±ÉºB�B _t]vÇvǶ;®ÿLêƒÔÃÙ�ÒÇ6ÃÖÄÕôô ï©c&;e"ÛGë( ?yòV˜o«=5ú è%w‡ÃÕà5^Š2„ëÑpîÒö«§î;49çµrw„Úð{jÁÍ{êJbÔ³Üh~<±rfµÔÅ•Îk”céæV{ ôgÙNwûüÎM©jâÌË>IfÚî]-ðd~)ZË�rêbáwØTçO0ð@yÙíjÊ1íÏkùæšõ8+gÕ`—DwµÁµG…&:�µ•=�áí¯W,Q§ ޽`~†i˜ö+´§Ãĵ{ÝHœÆù’fLl*óŒön4>úêQ¶Á›õ6úbÍ”&wLû½Û•�wv±a§ ef(;Œ®¨&ݯ�*æ«Ü¼bT±xìø îøß=w›“á˜öç5]*™Ü$?¬²Ø&Õz|œk�Lóµ¯ò=Hßð°=t4@<�{Äÿ¼®ºÓ0m»µ êD׿€ó¯èZ¬ f˃ƒ•¢ßº;-Ð7LØFÜ\± )ùààmóPôÙD°=™]Ä•ÝÖa-2´î1D§·šMØ}Ú6¾Û¬e?Ýa��د�ðÕÆËAUr¦SHÕ`ANb.)ï¦þ�¯)j(j0>_šYšyÔ­{ 0 ˆ±æñxv^®A ÕÉ5ñ¯ˆˆzÇç¶NQ %Dƒ¢Ý_ìA1é4"×r±l8±;±GÁ\-\-E&wAÊ·ê£ê£ž`?Áæ'¿yáû¬‘Öȇ¡Î‡Ln…ˆÉùÀ åñ$;ä ”ßûîžh:¡/æéhµcĦ«f«f²SvœóY”r?#¦'¦‡Á%äZȵäèHÁ¬Á¬RØú7à9ðœá±�Žwm6÷Ð�çŠåŠ…>›U…%IµŽŠZøÍ�ï{Äï·Õlý÷*;Y_ �$â]áôu¥B:öûÚá!ÏÂÖ¼Ëêžè�¼ñ�لзÏûƒDjr_Æ1>›¸‡;e}tÇVkÛþÓG§¼ÝÌu¾0vËFæz svng@ËM¬é¬éØO¯Û&7]d»$û5EEØ} }Š‹Œ€§´@ƒ0@—?%Ïû#ึ Êi÷µ!Pës^7^·¼"„Á}ÕjPb½¶,¨«¥i%\Ä�–‹x0à3ï3¯pæsæ+ÍÔw¥ÛOÚOâ´ã´k¥]\þ¾&þ&þ ‚²Ë?Váé÷‚R °2�2¢¥­ ?‡¢Nˆ *™=Ÿ–aðEY¶\ @ÞcÚcZ‹q=9‚ÉZçgxòxò,Èڌ،üý�b}3¼~"PŽKWAW!)`£ÚŠÍJ3¤±i’i’ÿ]ÛŸÿ3Ø86ÆÂý Éžäâ9©QÁ©­f]èk{;Ýð§µSÆ«oÛñwŸ÷øK { ÇW{ÝrMä®JLÚ¾‰žŒ‹Ø¦M>R Óþ¼f¨EP‹Hµžó�ûµÆ>swû˜[CR+ƒ`òöû]ÙÎbPnîCç.Ù`ÚöjŽû×£v)–>¡Þ;ÁBÌbøþÈ`6ü.¯Ÿò£tÍ�í/51mHÜ"y4ÜëÑŽ²órFZصÖ@ßû¾÷ÌóPóP²b.haˆÃ’ÃRIQIQ‡15ãû. / �°RÙüXŒ&¼Pê8€æ(ʃC%TÅ4œb�Çû¨ÄÝ<}ô<¶©sg]]š1½Q¨`âÏXÓ^Ó^æhh™7D'rÖµÔµÔiˆ.|,n,.Äe£ë�›ºVѵӵ£Ï-�©¢´Ö4šä) L®ïò–Ùjn‰þ¿½¶’ÇônôŒbfBxOuK.œHЃÜ`k<Щ¨7?rÇuésËCßž[F�¤š•Ùf´©ešµ=è›ÚjmŸÿôÑ J›ù�ŒJ£¹¿QPȇڌ4Ù��ÎÎ Ï‘U¼ å-óþ –5ì u†²õLº×ïÄ‹9é^îò·8gWÒPZw{,�¢µih|ˬ§«µª?‚‚DîÜåE�£ì™8ËóÐ)@ŠGŠ·tP¥T¥´Âð˜ T8|{êö”è�èÐS-.Óïë.ê.º¦Ô¼ÿÇú¡ ‹€y ”{ñ‰ž).(fkZ½vrøÇ¿ k#0‰QÍpÈp�MVQà55Jù"ò"ò9”ê0u˜ÝntåŽöóöóCÝŒ�a�adª…˜n¶rÀ¸ÒUÜU ®§hÊÏï#'­¾ȲPA& K{±}«¹%úÚÞNw ümpÎBØ4Þç�˜e`æC•:‹¬2Ûøn(�FŠt—Ý�÷lÀÅTüà\Lû5ÛuÎ=ú1í»X{´DéSŒõWUz›B‡ràJâ뜆D¬ÂΓª¾Â´?¯.ë àî 6]Éæ¿Å 3iRdð•c¿2‡ÄR+¥Æ>æ¾Ð»cŸ¦aÐZý^/F.\LôÿEcˆ½TX“mi¯ã|gÿ A×uÚè¢ÿï»Ú0í÷i¢ÓV‹¥»Lù;ž˜Õ"]ÊrÐg½vᦧæd¸ÏÇÆ•;!–¶šõ:bA DA›éu°1¢SæØ¨Õçíe÷í\ݹ/»z–”]‡û¾l�Æ×tžè< ŽE îináåc4Ü­¥zJ%;dÆð�(w:û@âÊo•ßr³ Cx8{ÅA-+À��(5¬c²(¾& Òé š†Q†QIf@æ|æüåŒIPŸL¿L?“o“–Ð÷!•‘ÊÕ2á?†]({JÀ3F!¦J\ík@9¿Ou_æEZì¹/,į1ô­ŽI“`ä'”6onÒüÝ Ý Óžuuº÷Јˆ`DŠ‹�dmÅmÅn,]ÞŒ¨``  ƒ~ŽaÂXou’aVQD~»MRkq«s ô÷²+ÛusN›¼ÎT<Òoo¾ã9óßñ•t&tb}õÚF2¡O)¿qŽ!úís ï…¬Óžþå½–'|;Ût\]¶ZÛNŸ>ZâÊf¡¦ 0tÜÝ…O‚vPÉÙ‚¨ à ïö«çG±„gÌë´@¾6R?R¯³Û–Ý–]ý€0¢žP°�UXNòÐ Î�b±Og7ÈœV"½š=q5uT´Äûü!Èß÷º Š`T8ùi,e%ÀéˆÓk3k3Ó&'©AE¢Þ!Þ! Þ ÞYAÈ¥ïS:¦tLEÄïÔ�í|�ì9U€X¡ ž¿6®ˆ²¨xc¦mƼOú i¯¼—8Å€W¯—}–}.N?¥�~gó3j k y:9[8[ÖÑñ '˜&˜âøJ‡ªWg7âðߌå= o`gç¿w¶|~ßš%¡vº íÍžgû[¥< ·:Ç@_Ûÿ—û·0mû·E}qGŽdãDJk¸ÔÍè‰Ã �뮸7áç)alƒ·nÕ ïãîÇ4Lû7›¦ž‹qÉDGîD=¨8áP¡âR/E A$Ö€1WÈí4¾,Ä(ß|6¦aÚ?Õä’5Ì–LWŸ­aK$/ì'_‘†Ã‡.Ê7ùÎ&Úa︚ûœÓ»?ÍÓ0íWmä|N’Í@ûÚç˜õ)«E‹šYý÷·u÷œ©7,a°T�ªˆ|A)˜tx }¯äw¢’÷¡f‘ómºÛj9oæ¶Ú+9Ú+E®nv0͹Ý]þMÚA hç@6lùˆ|½ÚPôÜ®õÛRoö_øÚÛ†· ²ZU«†vZ� <9(_€©®æ²›Qjî'qƒ.�ŒÌ‰ÌI�¾Œ÷n&ÊD´C-äÍ þ»¶Ê¶äì£öü§€êáêa®S‹wïLÊëB@#{ÙuÙu÷Žï_°r<õ}æ3æ3#£ït~l¡?¡ïã¶\8ׯ¾ò6LÈ­7éæ!hgSžMnäÈ÷È÷0¹nÀoÀ«.EàƒÞÈ2œf8 <øåV²¹À�‘à‘à¸ä=ÿ¹)’;CÀP‚àù:ôA„‹dþ$>Ší _ÅQr®‘ßX\Å\Â\Ê¥A5Ã6æêúg6ÏlúZlâlâèD¦Û2•7•×5lhí¹í¹ísy§�ÆÝ–©^$|Wù®"ŸÓ¦Ü7ç=†ÎQÙgëcOr`¯sZäûßïI¥9­=ø\óP3~�§¢ ö”\;‡ý8Ox�Š)oô ºwœ'¿sNËýýïk»†Ô}óÆÊ6ª š¾™Ôþy¯Ùvù2Û¾M»I£Ù!#ÞÞéJ.ˆ¿×n¤Ÿ"ª,ª¬¤#!·[%³’üñ‘oÓÓˆVk‘h‘È%(¥ÆƒE¹€J,ÛV8À*+æB;aâ Pûr.r.,£å8=[æ _KØhºK‡Á»ø:#¾©'`PhPÈ pOäžGŸ�+¨Ç&j.ÊðÜ n¤o¤çœðÂ�áOqý2’2’ÕÚ›)›)§›�Yg} úøvB fadaô(t'>ÎÝn)„  �óF„˜§?YÌûÇ�q ížñ©Y‹îuî�<Ûß»Ójÿ=-‡$Ίnm6L*kP„oìó{>Ú·}�ŸÌ0b:fõt„u‰½»¤‹dߺ>…Ú¿³ ÆûkoW:P”»2F©Uô�íµ�œ~¬‚—�¦çš<˜¢0pyÁ~<¥jÿ=­§ÙÁ˃<Λ�ÆQ�=Í?â,Æ‹ô^©ƒ~ĵOJãGÅŠì:g«Í¡µýÖn)—Ǫ†æ J]â®›OÅN·¬‰ÓtÀ[¿Ô†²q³[ã¨;ÿ*Ú<Õa¨AíGMcüUšÎöugÜ “ó¡±Þ'õG[’k„Œ$n¿¼ÁTq’O§}~Û¥jÿÎF…±•V¼ŠëWþ™ú®\h5±]­Hÿf¬?åHŸK‚Œ¼wtÕëO�ž@ j¿Ûð¦-‰±h%ŠÖÞG3Þy#7‰¥¹üðþLw´‰Í^&×Õ±û‹U‡ ¶¿œ=Þ KûžåKQN6"éËwµøc ³fˆZfÏ‹DöxQÀQ]S×(- ¶¿š¥9E9ÿòAY#«Ò5[| íþ‡‘É­‰NnÁÛ[£¬tdhqX×.¼í…ÚßÓžâã¹-bÇ`Þ¦´À·!ñ°ÛÆÞOwÊí§vïÞ‘ÎM’OùË'oGK™å$¬âÅ1"ïïwNÅ{ÀŒ\ÕÅSñ|ß×â쵿ï CAѶÛMð•ËdÌ‘;‘¼UI/.�ÂÖó×óµ…L�]Ï8èˆõÅ}‹p’p’xjµiµ©nà"âàPd�–XÖ®5Z–¢¦Òo2�VZþxÞs˜E[q TåïíŠpÆ,@0Ô;¹pû�¨@ºTºTW@1C1S¾}ä˜Ê™Ï™<{]ã¹ÃëCBj:kæòsn�Ÿæ¸Ý‘ò (SÑŽÒÜ^Åë٥ϱ5¿Ê­f΀\Çü˜ü˜îGÌ? >Ǩù+„ë…ë%±µ`Z0 d3u¾|¾|/ SÔ  Â?ìòn·â7_ø]ø]䳫‹O00©Î¸²`çWV29¼§ßëì*~j;5´Q©‹ƒ¹ú‘CC¦Ñ•¥H™dìa4)n ÔO„Š �m'v�æ AjÐÆ5©RŽ .§¨ñ ól>ÿVízíú*[þÁüƒf~€ñ¹l<­`i…V#*à×[›‹ÀÊ*) : <®êœÈÂ1Ø…ILP¥ü5I�7Å]V"*i\²HbÀ«µWkØÓ€X†X†›±v …¼`Ü`Ü � üË?&"¢Q¤ösæðµ:a é„¥ÓT† Ô,èõ�^Ã'¦ ü*•>Ê��P´}…ö mæ}’Êç×m~IO{O»7®ù�ùPª&2� –.–®$vA~jZjÚ(œ�îÜß� P¼WæQæΓð_w½&^IË´ma:ᑨ`Jv¯³+äÙþ§îιxØO¨à)Å­Ñ ç-ñWa�N>Q³»ÁäÓ‰¦ÎÕ"æhpTSð2Ô ö» ]…©¼Ýôây}8S}Ævµ×©wuSd7o n cÒ̘õ7K|ö–62€ÔþɦîZFN*õ”*‰¿mt²gƽ·ðEW:g;ïÛzË®’¯‡¶O ÔöWûóñƒÈ²išîf ûUaùJvý!u ºŒ#ÃÕgšø>9Ÿ�K Œ�ŸºµýÕú[�ÕÖÕCtÊ(fÓ²CêPˆÉüÂ'œµÓ®�á]�GU\ÎR‚A j¿Û"û=íŸgèpJ¤˜ë·ìÀ&"¡a{Þ…›Z˜sÑ+nuDÚ¨jPÛo­÷š%£}yÜ;qwÙJ�.ÒýtÞ÷š–\ߺRõì ºñÀNz¹ÁtJ>þ+È{1¬Ì¡c·&ùj>Â9V‹V]³×^Œ; Åeb·q%Ãê5F>´þ^BZÞV.Í1‘È‹PƒÐf¦_ö5Ë:ôžñ4}nªœÅ¨ƒQÚ”‘Â1£XI’ïVÆ‹3 ¨Œµÿ-}ìM<®ôà"3ÒèטØòðѺs·Õb;*_뉵{‡qŸÌƒÚ?תìâ\ryØ—˜ô\gå²�Â0º‰qS‰ÚÎUSÿlz^%ƒgmjû«-¿lKŒsOƒ??ÌÊ2’ç KÀþÈf±†×Òš�L‡F3Jü ½ cÔöÃ`±d½$ï?—PúLI]¶Ûfhä˜Àï܃RH Ü­EˆC÷Nš û¹·ADR¥¥—ÎxZ¤=PL�¶úŽ+Žk![rWrWô*€ðó¦! – `uqA/`àDS¥�ÀVNy4z5–‹ó듾ûèð*èÕ ­D�<}I‚ð³?.L¿¿„ ¨õ©õi8 0W6W®$» ’§~`ö�éúêúÚ«vÕÿÜëJ.gZSGBobüHpB‚{³lÍ}Ç Õ¬¯zMëk©—G*â+âd<1Uoºý øø“�ÙìÆìF¼2dÇä*^(²%®bAÝî0Q×¢ì•)ÚÛá\ÖkF¾í<¤#ͳD‹úŠ—Ga}0Mv±ñVôwÖè»×èoþúî†oï#5¦`üÒ¸zœUT³¸½ÖTÈÿËßq'Ô ´Î@Ï6ØeUUÒ!GŸgãakbY$e=‘Ù (’ÆQ…5´æ}yèø¡¶ÿÛªl>þ|Þ‰ ÷[MqÏ…ˆ2Xyi“„S>èµÒ�­ð1w „µ¶B j¿Û̇ã“‚ðŠÂOŸH#€G�hÀcö%æM×]Dñ”ökòés¬‚[àgB jÿ†¦%ŽoÝâ9úGŸW?®éY)ÇSd&ÂUKGY#Æÿ$’O®ÄËø8cHäì 5¨í·v¤ž\c_Šoaþ­˜]´9•w]T°ÆÕÕñ¡’£å…�ÃD”mPƒÚ¿¡qVêI§HÖÌ5,ŸžxÖ8W¬:äAnr��@ã¨õÇfþsÚ˜÷X)Ú’ÿÓ-XĻʚRñÏc¸…Ú´0ÿóInŠÈûVAÃâF™ùÜzškâÔà{þ†Í†‚2‘´[÷(z#2G½�@<+N t�<š<fž’‡táÚ¯#Qy)¾EHÈWH®O®_2�Ægºhn�Oôuc©¨S*NT{üŸ�¥—/;( ×>è””ƒ¢ð;ˆA‡¨pÙºÍB-¬Uó7V^V^ð[õhõhƒJßHP‹}_X_Ö¬-æ¶î?æ“ã“ÃÌ~Jíçˆ ³J¼ŽR¬º��ßŰBðž·£ ô újnÎ+\tÀQ;Š;Š[^œ€¥ViÇø+®â]ÅS¿^²X²¨ÉŠ,÷æ–Ë–KÊZæŸ× ¯¾¿µÓ¢ånúN3îׯÀyšûkßêÞ­¬ˆ&ô±geëcd‘�rœ?š'E+àï±ÿšCàø^©âï”Äím�¶ 5yYä{ëDÜw&¯³u\’;b­u ùìù7CÈÏ¿CÞ—º4¹ÞZM‰í\íøNë1A—É åšl+‡Q¿ôk Ù�.äûΑ?;üC«C§vZ¤%+L•MÇìõÙñúòÙÑ!Ù-à8Q7²Fû�>Ä€þ‡½;�‡jÿ8nËž0YÊš5kÖìÉZ¶lY²Ž‹±”D²’=CCdMaˆ"ŠKÖì¹ YšIdËN~�ïÜó‹iÑãñý~ï·Û�óüïõÇyøãã�Ïûœ9ŸÑ4EÐ�1ž1‘dcQ ©8ž„Oø—ÄÅ+D&É'É'XD•P€¿�~œB2ï`ï­/Æ ¹4¯€}/ûÞC–I(Ýw‚rR�ܮȈ`ì…"ijÿuA C¢€ÓÓõ“¥‚  ui1i±Ü®Ü®3¥ïQßvdòÈdÔ5þ¬ï£#BÕFÄ91Îd}=χ¡aVÄ5ïÀ«¤–ðÙ‘Vº`¿€(¢àÓ…D‰lt=ÿœTœTý{ó-ó-›±ÁGöÇî�(Dà_¤¼HI³{3–ì­n͒aÏ|…ÊNÈÉMÔD½b\jZFîÒÚnæ‹ýÿB¤TæTDðòØ„g°™ÂÊ¢÷šDbȉ(±Z§±ò6ø›g¾"˜™¯ð×ßË"OG”ÖN¶;Цr”yÞÞnmûºµsÇV9oxaØ>¶oæ´Z®u6ÍÄ“Ä�Äè=:Pú\NÏcàõ…¢/]­»ZÇ\Ø´Ö´6à xàßC8A ˜ã«3g,Q‹a8öFL‚:柛<7q©V¦÷æxB“fƒ ß+ah'´F¤P80°0°�–2–2æÎˆ»ƒ4g™6˜6¦Ó@xÀ¾o3 7 §ðlæû>®g=iÇ²æ ±‘-”ù³1zL 5¹OÑŸy¥Õ½¾Øé33¾~ÁoÒ;½?ÂDÀD ldh}h=)[©MÆ�ŒZû\:=:=êoFðn+X#€EnÑqÑ\O<¾—5$‘fÚwÔ#§Ð�Χ¹kÏvϰ×ö¾(º5ï`2;*°yFÓ¾û}Y‡-®áÚß¡­KŒJćNÊš¾�.¿©'× aó/>j1¬ƒf¨£’R �±Ý-•YTÜ…k?›cb‡žLMßQ�:\g!Ĭ‚”üPBVÌÒÉAE�öDèZWò}øï¸ö×´iåéég¢Ã�ÚVØMénÚ5•ÅóðÜr+ª2Q¶oAtaÏ¥CgP»lp ×¾ÕÖȈºíÏ¿ƒ1>¶ß£ãBÚëúg:oüWi:ËÌ0F‹´þ§™~ò†6O°÷CN즾ëaùF âst²Ûí;>í;’ ¶B—„—c#}´YRH½š™ÄÅÆQÂQ2)4¦yÇ®¹å§É—:ù:ùô;°9°1ä`TÆoÖä‹§¼×ï$ô�1(¯d�òèòmómU;‰ôÏ7wŒ�.j¿5ÉwË`Prz{÷{R#�FÌo˜ßˆÌ ½Ukkxð"à^ÍàзEÌGÌ›^X®ÿ>[W˜ M+=ŠQ÷'Ã0ÆB5r´#Vò|ò³Ã2þMjžOÕáˆáˆ B×8 þ#¸â¹âóü¸à\𧱡^LL”œ«¹˜œlݵٰÚVï©“zRÃRÃØ{ê”ÉNÅ„ö‘zHéðãÇãâ‚Ûí©±g@/ùº9τĬ» ÐVýԮñ•·‡œ¸5ûÒÚåâj*1�ÅWöÔ¢_ßS›©ÈJ† ˜,.VNOé ¶[Û�À¬²mcü 6çöÍêÍ@Z^¾ô š¥Ù¥Y²ú½TÌã•ôÕ¿4X2XR¡äåÿ6ã©D€ÙÀ” Ss¡¯§´ WÞ€�Ú s sè@)™' 3 …)¦`Ðe•7¾Fgn®d0WWG L9L9¶/cd@{aøÄøÄË6Ë6>œhÿo³‹¶‹ÆæWþ>§S‡hî”1[‘¯Z!�áGG[ëî™/ë}æ€Òó×óøcJdJœ,² ÕdQþݓݓïn'ª%ªá'a3`²ÿtM¤â1@3 #77³ ØŠ³PÐõ„z‚ë©z'f=EýÑ4±j»V~΋ñâçò7׸§Æ^Û?ÓYQ¿rS¯™°}Ù+ËÊÐCþ–%$Çà8#\y’®LüÁnwm¦PŽÓµ•¸öÏkì�7T®þ¦cî/EÞ3›è´Œ4Ô¼à k§…_ìgM4)ÖxÎò ×píïО;„í¬ã>OÅäñV0sÆúŒkõ}Knùf+µþÒ{'ßl´í);Žjñ&õ_»]F¾;�gb¡8é°¼¬•™S U}pqÙ²jIãØ ñÛ�ñhÚÔ?²`¸öÏkÆ»‹2ƒñ+ÒZ´H Ã#‹÷.×õ?ðÙõæ{ÁÙ“ð¼Ã¥B]õ�:p ×~¶6A—áõG˜{?ã'<»;+ƒƒÕR_;‹/Ò›(NÜõ�½ê#ühÙ¼ƒ×éíc¿˜uQ\¶ä&É `óAÔÑöºÇn7¸„�‡‡¤Þªm½Ž�$a³jj�ïŸzË D–D–ÍoÔu¶­†cê,_JÙ™²“LññÖ°ÐC‰È$¥ôãDì=¹ú¯8›0º�^ŸÙ|hïmïmhò7�Öz té|§%ï©~&ÆzÝ{ö8 zõõ€™"À¢Ù¢¹ÏCôvÖã�Çà«Ú:l$¿­ˆ¼ˆ<„]GÿûnÈd’ÀH‹.ºr]OÁ€«ÖúI×ö_"ûLïJr¹â"B¤§ª§:¼Ò!ÎÀ_~åGœ;1Få^XQX‘І�‡j�e�…o(ZF…_…ßQi3î¹­ˆ_ÄÞ£ºG…=ëŠÕ2Ï”k‘rž¡á- ÞnÖ…ýþ [ÿ€¥>¥À*W�×îè³}A§wD»P˜od0]lR2Ö~1õ•Y—ØÖYW䟿leåËËt£R�wí²,>±Ýlûoù™Îø§µ×6Ì!ãí¤ûÜ}Æ„{ÐA†Žë’©GSnóN ïøLØàÜ7'ĵ^³0ØVÏvž„·¦=ó>{h¼‰OOÖàÙäõ)ò{žÒP>> W\û¹ÚYþ�DrÕòÇôâÄi¬;Y-¦ToÀR‚5KsÉŽ  £ž_¹�k?W«3Ûð|Þç@³Ð¼nÐaÄ%\¦+J}οš=œ«mè$Q¡¨ºÇ«óÒh\ûuÚíîiûÑWü�󾂖“ÇÃâÅ®îk5�Táò)ÍV®ÒUÔº}úä)\ûçµ’úèU=æ´Ðc/.Q5Œ^;ØšbA8Ý(Lä3tgŽò‘žf/ò\®áÚÏÖ®„ÆÈäÞäÖ¸cgðhTY…ž'Kˆÿu®Ï¯Ò<˜Ÿ ÊñöÆÈ5ZtÌÑ^J$œž[Þ3Eœb”9UòZ}àÀ̵ݜ)èÓ6Ÿµw«"ÇUl%‰›Ùå€ÚÇ߃…kAµ bœ³Á4…ƒf+M_RG¨#*Ut'u'eç¯hE …¬€u&³€î�€;3à§ ì`M ¨6·9·9¡áäÔF7ÙPõrQ+(१†«ãí¡qyU€»›»[P# -ª-Šè÷™P>�>�þŒÿŒ?méÃôo³’±’™÷$Êü>ÞôÅæú.À ƒ\å•ÊY â¦Ò‘‚©ßÌ—?£ d\ú¨@”Ú˜Û˜{Xðf1¯ÿЂ9Y%LþXU„m^ÉŽÖŽÖ@�LŠN¸´Yîë­ÆID±ˆXì9“çÙ݉ëz-Ê�bëòÅíæLØ¿Ûk{ØTµçüæi;±O�újß4Å‹boiëj°WIòZþÊœIâëïTUL �%‚u:›W Rüdm·[Û—?Ý:\w+~3£[Øò­7Û»²=è" âëÄëÄ´^µÚÈê`¾þ>óKp¸Ì‰V  ¥ €³VNàe ñ&/_6@òš�¿–Ã(($ŽŠŸŠÿUV™Aßý}à ÙÒPÞä®s´­³û xmƒƒt�àw¨¤²+ü : >_·R·’ja$âÛðƒñƒóîˆþ>¼¼ ågó€œ5 š JH&†[/¹:çþ´ÃcÇ?[òµkÌé<áÈÜ‘¹#•`»ê÷#´‘ÚÈ\þª7Tõ ±Y.VˆTˆäÉ‹†‰†±¥o¶X¸”€ºÉÜÈÜ®§dÈŸß�ÞU%ɺXO-lÌà×¾ÝÜ{mÿLg ümpÞAÜ&ÝŠ”PBÚ1ònÁÑú“ù§Ò{ dz(…îÓC³a~Ù¤1E¸ö÷l\ûÍRÚÉÙÐR{PVfkG_´ÄÂÔ}Óë…=†$�âÜ)bviõãÚ?¯ÉWt‡q£clVï ºÊenݢʤ$Íôöò|4¾N9�†÷â b^\Ã5 µ?ÏkVu¬‚º/žŒƒöË C•÷G2/i¹ÚdZ&œ4~�4Œ?¿×pí¿Ñ”Ùõ(fÓVšUíwCß×’°^š6E½ r�^S:üüÀ¶�©�å;i£pí×n/Ñ”ÙÔ³=»ìãÉŒwB6n¿ÎètI]E±&IIò<äIÔ…´þ£;Vˆk¸öwmï_%ùÈ{�~í¦)®È�A]])]‡×Ð×­H~#N«cqM4nüNïEf"\õÿFcJó/©½›ìèfä™Äÿ\Ôkƒ!ù÷ÿôÙZ¸öë4©i§%Úòb=r¡ŽÇvuÑ^g* ±g½Ãô)÷]­eãMNÒqèÀ¶›õããáuÌmå/Ÿ�ƒÍox³ÎÐr/È—²Õ¹Õù�w|\Æ­Üšâä”_SS[«hD6"åZš·<÷Ž ÑF»ÝHHùxCHù™HkF™[™›ÓõÊeÃ>4õzÿ_RÀc41>y¥ö:@¡V¡¶o o‡·+I A«—е‹µ�Û·Aß âý6o)o)3Ù¡ï[.J#xB ˜Ù…‘ô‘†à@+†Æ;Îø½‘B×Ú9>Cs…ä8<ô6!ŒFåg¡ºP‘ä1à0à�XÐÐ4}[-••ÐéirÛìÄìD1ÅÍ‚-¶Š; (©yEøŠû9†5sƒ“>-Ü®êwšëm²KÛ=ÇÀþ ‡æ)Ê®iëWw�ªô¹Ùw±|L¯f´f”îm0´TŒ} ùÊs ©¯?ÇhQiLZ8œßR~ô°Štì´Ôvk;äÓ­Íú¶ÚPºuñîÍòA­Nï@Œ::Æ:Æ×84"/Ÿ »#QÏó%ä!ä¡|xùžò= ®ë´ßNÞXÔ è›ÛÔ’#�øþPµ„®mN‚Ìå7B�FJOAAy3í$£©OzJW 3 Þ Þ9¤  ^5ÐÕgw¹ïr+œW8ÏY²\óm~Š~ŠeDÓÙß'¹Æ�Ÿo ˆxŒR®Ïž‹áîÁk•ãméèPóÙÛE.çJ@Ó‡Ô©î�šÚó\K„äšäšË"É3’g�SØÖÇøFøFΑÜlR¹«rwäÑfã—·*$”!ï²Þeýÿ3[þüÞš#…anèCú™0«ÜŠížc`¯íç¼$\ûùÛ’Ù¡³œYVh8ªƒíš"yBž©yËs‡˜³Þ‘Ñ»zµ^œ—¯×píÙŽ›ž³z8ÑQôO÷JßðM‰Õå»i#Éð¬x�×o æÃG(îá®ýUM¤HBÉâžl®îl-{MIͪ 6ä§Ü4›qš€8¤¨‹+àém/\õ¿k ÌÓ§ž�ö¶Ï³˜AI$KÙ9ýç·õ m¬² ;‘«JxÍ”ÅÞ+ÑùðNW4ç©kGÉùºPm·W ý´WšßÊ7SÜ5t3± ÐÌ‘S;@éS,(TŠBs½Ú�v¦=»~‰O“OÓYN!H!ȇð;”gð,å|Îu`àÖ8l�ÑŸwÏ kÙXÙXAÃ�gJÂðA>çúN€®¦,ÆcìÊI¿ÁåuªÀËÁË¡S ÓÓ�îF ƒþ�½; §jý8¾·1e–yV!™2‹"ɘ!$ì ‘y(cÉï¾/Öµ_ÜoîûǺ•‘P^(o„G„G+åäöV®®\Õ‰¶·ø¹;Tô_ªÌ\(r¢tǺ²QNrdØ"M®¦™Æƒyó¬ÆpŸ5–%–Å®NªZÇ2™âW\,½Xj—ª#õÕ#t4µîÄîÄzŽšØ\I\IY›y|ÙjB  Óvpöà,ú9€¨¬B‘hu8?H»cÕ¿dl§sô{ ^ž* g²Ì0yH`è~Î×ÍѦ!aî"Ù�NÙ Þj‚VT…X›Îþ{׿±Ÿ0åêí+–PUèë¯-*ÎVßim}]Ûû·º2([Œ®üìfÉPÏÉ\OPB¢B¢bb=¶ÇO=¿‹æSè÷øù/Âúéûé›�½ò y€ÅÀû9<ÕÎ�èëå(±™¹g@…S,,¾Ž7'å¥È€¦ç»@CÁV¢Ä{Ù.˜‘TÞõ¼ë)5$ òý\Πê"ã›Æ7½¾>Yµðíé(é(=ÐWü9uQZÖ:/@X$ Y%߯!:mÃO®d\ÔLß4­MÃ¥ Ñ�Ÿ¯|¾r–Z2ÑœzÅýW  PrÁà y‡Ñi1Aô!úggfØÚ Û »õ6k3Ùê €±" ×S+j=eäæ\¼:¦&äa®ŸWÓNL¶Ó9úÚÞMßý'¶Š ì�"DVë‰âtøkίÌRïb©æBUKÇ<¸ÉbEÒ¯É,.Å´ß×&k%}S´&u5PŒc·ž¶'f;^8ÖmE&]ÔñôÂa͵üÓþžvm2Ú•Ô™Ýäkòmê¬Âqih…�ö\’d?‘MÍþ‚ê• §�Ä@ÂnLôÝÖÖôêç­á�Kƒg,îBBóhËó®Ð2ò�qÊ%½Š“ú¾�g¼äYXÎ¶ßæg£ÁPѸÕÜ…àXt£}›‘cƒ*6ž™€f÷@�¡Î—*e_™ÈU�T×|oÝvÝÖ°‰Î›ÎÛ©pfLq/àÔ]gßdó @µVž J²Pê3�viËdËäkÝóG`ýÖ ¹yBoÐxð¹1” §Ó—Lû°XÊüY@Q[Q[ùˆvÂø„±:�:�`¶ÂöB[B[ÎJáÏÿ·ë§r£a@o!Êþä+.Ê9kþ 5â!Nç7 þA+ õU©T©j”kKd´,~…Ìf¶piêÒ”d2ºþØzùzùpG㈓y'óðžoæ5²ÕX YÕ}Ñ}}îŸöÀLˆ/‚¯ªÏÖÛž9g§¹¿¦·jú€‡…­õ3>–‰øæû§Ò¯-%¯Ö?ÔŽ_,{­¤ÓÉå= Q¯vI(ªŽíã1îÌý¶ÎýÃ)Q¿åO.3äˆ3ÉÅ »gB”W¤všÓ¢ÿ–}ƒÓþ=-—:΂mi"üÔãIááÕiaÖÑ>ÄŠ)~tÇÄ] =*¯.¹B…Q×JLûg6±x��*úRWŽ{Õ¸¾±½¶ý'?”«‘e§_pMHSê·ž±I{…iÿžÖÓêàKàAçÅËì$Æ›îç ~]Fï)\?ªçÅño¥ í:Ä&jÌ0 Óv[»­Z«š?pÊJ qêa†¹X}œ¶ùð²ÕKÈZ`·±»È"öã>LôíšÖHg>¶îÆMgÒ2˜qh¬·þP[ÊsvqC™°Î2naݼ© —Lûg6Füõô¦[‹¤~¥«L1Š¡5Tþ�¬’È/±þ oû\NŸõŠªþc%µÓ0í¯6²æTÌ2…KÓQw_Kƽ'Оø`üŽ@ÌæYÿÕhé³Õ{1mwµÞxS�ûæ RÇŽRÊY¿‹9/ kpz_×Û‹ \úpßžG!�Mv§YÃ-(2ƒµ!W!?ºú-¼AfÏA—£�QÈÇ“65ä¯ö9†�ÿ^4š¡Ê¿Â¿r;0çƒw€4¨h•ЏÊ ˆLPJÃ)ç@-ŒOžóÝ„ãr5=P©ùßg½¼¾ %fDƒ»dñ0Àã‰Ç“'€Û·9Nù’‚Z[#á‘𔥔¥Çå¶'"."δ@üsù®”zÚ€×v(ÈýúŒ³9(£ÓK¼Gîu§|“¶fk˜ð¾É{“÷�éèªüÆñ_‘¬�¬-Ô�Õ�µWÝT‡X¸XxøËLae*eªQáÍì_lUàMÖÒBŸ5XVàïa”wå",¨ªât˜>´Ó¬!~lãQh‹ œ€ïpMª{s–á'µ¹ÈÓ)„ƒØ§d°V_Ûe:Ç^~½·*]µjãý~Ö ôãÿ1ŒX1f×çc�½+ Cj ï´¶C€W/oeæ'Ú‰Nâàf�z ŠÈ=œ ì%l&l&^®@«=aÑ“³œùW¿·"²"âê ¼*¼š" 0҉圽xávº,HÐw¥D¨0$÷‡õyëó�jŽä"|2A!<ýN ÇïÅá(çž‹��ñ¦‹øåûå»dˆ;‰;K®I“ƒÃ]ιœ3²4²äV¡õÙ^OyOy³“ÿÔϱj�zç&L©PX�_9�¨ ˆk¤ ?¨»�¼ñ�µÊÝéÌ8À$M ] "=ð¹éÓ¨_QÔTÔÄ_ÄÐÍÐ]p ]f΂ł…¤·ÚU"<"<ÜÀÍÈo5Žè…æâåâ�ëIâ¿w½&:¦gÙ¶qô ½“¨�3¦°Óì }mÿ®»s,÷ù‰?é¤Á§w‚çZzÆ-¾•3,Æ4LÛm­™ôº9‡}iÜGêÔî U=ü$4»é¼µóŠ}Ë*5ul#AˆCŠ Â"Žèg1+lSÓÉL jk¸YÞš;þMs(aŠØjrÜ��ý2D â97�‹yóLóLȳÉi5‰lF+.‘ïÉÔËÔo x x˜FèöË4îò=² Š#ŸÎ øøÖn€\ò2ndÜ8>ì)W/˜v„X8Щ<ù%¶ù�Aûs@Ÿ^Ÿ>è@ßX߸/È«TŽÅŒÃŒœœÚÿåSßö” J+á蘟;Ö¤C¶ì8|Eaʺ>ˆâì ­O�çÜ:�ø&{xÂH{p¤&©%©å�×ôÏ]Þo›"›"=??2]•5Ÿ5ŸPíé–G9�r‚Ä7ûüb«gÞ;=yyôsF6—¦<©ÔÒ+-p:Òó;�3®åï¥ö5Z\zZèE`\4?Óüœ/™¹ ¯×žD|HÝ¢ùN¥Ã×ymÚ厣Ò1Ñ{~pÎxüÇçŒÉr*µù«üm46J I¦m;®íÛ__-pf«ãƃbè4ë63z šAØÁ@Ž×?4~8ø$4OÔün „¤ý{ÅfÅf~ë« « íÿóˆQ°EÞß)Œ^e³àOr=G9ÌÒ‡ŠÂ{èýлt)‹ùf+_%H և׭¯Fñgb–óñÑXXTÆ&Í&ÍÞ«¶ƒ¨9Îsœ_®Z®Z»+Ǿ=’’˜nv7¬ŸËæðÑhÂPÌ«yïèE£Ét˜gøÈU©}ãgÕ›@°�ShPhô¤IúKÑv#~E1²¹GYGç€7:E�}û$`çm&|*}*ß4nv«|+ø +†«–«\O.ÿý¦¹Þ#b’Zí¬vQ*O±\©Ó;�3¢¯íÿë;+¼¸»ÅV³ �¹¤0&^çÒb/-ÀºáÆFöîgjçâÕ–Œ´Ä4Lڄ臆¾*‡^ù—j/©>æÐ�Æ/~‘™Â7®\E]àV"DÒ/¦Š‡iÿÿZÆð뀜¸b\JSš¨×èèü qã¹°�ØÙŽª?.H¿2ò àÎÇ´ßתíâ\òyç8/¸N(f·†ãwí•`¤ º·‘§¡¹j/;¥–)¸4€i»«Í7¼LŒ•vOÏ©Ý'Êõ6ßA�‚7Õf¶^ÈüÊQZ]fí{'p�渃�i»¿ás™óX�õŸL(~¦¢©Ðmóæ-‹è_¹N!ñžB™•6#óIläWÑe¯‘ïîfâŒï ¤.1ò¨ûìeнÓ>&ìë>Æ‚~+FºGR›]e®:®òÜC\G\—H~[7¸�^ �üÞk¯×^1ÞÔÔË“8Š@,Më»e€õG”`–�[ÊËë/¯»ŽÖÝ̉'õQ“µ A¹U·wÿ\ª, z¹z™"�e”eŸÄ�zÊM’D’D[E[õçbøáí5h5hõ�Pðü¹bíP�ò“€G(ͯï©d\E!79€{âÓ:ç77&(›B†Þì´x´x†÷ð’ÖWSæ…:BáÓâÖåÖuæ9:—­Z*{Ýjæªçªåïo`¶•‹Ÿq�qEߣW¦·¶…† �ù#xe�zUvÚ£gî;—\?¡v™é•ûÆ6UÏ,ñÐÞç’^Sº ç7ºr‚s¬X�B‚JËé ³-Ï¢~°GýñK–Mš±ômâ1åõ‰µ…+î;­íð¯¯ÖŽÝêÓgƒèÌ6k/[á�f±õ°õàžÓƒ^9iFbs±ý{°XL¢ î5Ük<³€?í&æçH¹ýQÊÝv[ên”èY¯Pë›ÜèÜh�]Ð Ú~=~/h�j` ¥ŒÍõBqµÀÉÏÉï+Æ c®(ã^­RUUMN •i‰m/™=™‘.ÿsëDëJ€L*”róÕš9w”û½jѵ'î}qÏþ·Jï¡f Ç=-(-Èdn-¨‚šsâWà+à+ÐB  ¨Ñ 6 Kÿgöib{Ó÷¤ïùˆ —\F…åÑ ÈoòìÒ³Kð{Ç k�Zn, ÖèÚ>ëÿí@¦ÔY„úèèi›wLŒŠ�Š�Ä.wÖ�gÌ5 ”¸+^Ò´ÿñ„ïö«Åw\Ÿ¼F�Á9aêæ#Ši77° -übß<6* ½]-¨ò»ºïô¬CÖ¢+uLØ,³ü}v³¼äW–¦´ªNÆsçFÅFÅ(K»o5{A—à–‰N*Ë…×NU9)¨Ù"fº"êó]†:×ÖÓM7K¬MZ-2*6*6Ä„²ÎÖ=4¿YK ÉÓ¥DW2ÑæÀGv>�I�ÿ‹z/Ú'¸òËË8ÑòÊQ±Q±Á&Æ{B*ô™�‹´àû·Oì ¦¥É6ÎQšÚÉ^úíñ½m|;7_v¼¿ITFøü¨Ø¨ØP3ÜíºÔùëú¸�/žî?õ`ÖÖÀ{5R‰ z¡|Y_ÎXEpÌÓ‘>¿ˆÚbݶ�²d|ÿ+lŽPdlK^Pë ëÛ¿�Ž[Íë[=é4Û£ý;~<’œ|ÙËWßÞ713¤ž:Æš¾÷ÛµPÔô¹cÿ¿šó+ƒk¼=Ðï³­Þ}y�H½‹9^¼Yá}ès÷è{†ÐÏ¿CGÈyöãÜAž’îƒ%¯Ãw _M¼›ñÝc�ŽAü-×+Ž=WÑï;‡ù5ê×);õX¿¨Š*­ùe^;»>¡—_�‹RKò‹ tjŠBR¥BAb‘QrnJNf^ªBYjQqf~ž‚�ž©ž©nAQªÃ(£`Œ‚Q0 FÁ(£`Œ‚Q0 FÁ(£`Œ‚Q0 FÁ(£`Œ‚Q0 FÁ(£`Œ‚áA¯l !par2cmdline-turbo-1.5.0/tests/subdirdata-par2files-win.tar.gz000066400000000000000000011527651524160147200241640ustar00rootroot00000000000000‹ìÝeT”k»ð¤»[B¥s¤‘”�N�¡¤¥EADPT$E@JZºAIéQ@RP”<Û×ýžuä¸ïZûlE½ï/³æ7ÏZó_³æÃu]÷\Ü®.®æpW8—#Ü ù'ÏKû×ëëëW^(ô�Ïx¡P˜ Ê'È/ùl|P=Ï?’æÀºäâ w¦§‡8;8¸þ_ÇöùOºÔ¥4¡ue­�¿‡,†&èŽønС®ð1•Œ_•vÁ›.A5 ~9öÇñôP.ˆ¼µ�…¬…Ë…·Jú±ýÙÉOúŒQ°=Ç /=2}笾q&gE–O ùlÔ1Ëýbz«I¢fË>é_ßãrÉÌÜÚjôùßÇÉÏõùøßYÄð¿déu«KóÉÆäߘgáâê7ÿ«,Šòçd>0K—”NRD�8tP]Ñ®ÈQPã5ä{˜-öuÑ tjÝ©,÷]ÉžÐ4SöªsŽ×8nú÷¢hA_H¸ãéˆ\ìïš:Ky—™í£\–§Y‹8õW8ß¶¾¡ º+²=�A7o1Ü.µå'gj2 Ø�4�0Ï'T²Õ´ÉB�S¯æÏ£ÕÝ¡îËäíâõÔª¯t‰ßGÏ¿ØÑ²ýÊ”ˆtÊ9ºþvj§bÊ5ÜFãZÚŒY¸õò*mŸÜÓƒÃ•ßØ;Z6Üá~î£Vˆ¾óê…Œœ�Våõ°×*nX�ôzgø?Æ#«®g«ˆ"öw-bØ×©!KJ"•niTrª;ìé8…8WCÁâ<Û+q&åLË€;jöŒà²³SyÜ[rIro…Ÿ(>šu j-WñtϹ9±H*rHúÚðQ2]¥¡�gëg‚{O)�eÒ¹ìãçÎ’Î'_€�/ß@ )¥Âëãφç ñi¾íUÀnuZ�©]_yÖÌ“BW�?è„/:¥a]‚1{¶;À}›$ÑÍ%ƒñ�>^ðë>ÞëK‡j¢ 댒Æ�¢�IüÌÃúøƒYðvÒiè´õÓ»Côxi-kä©7¬ÿŽù±÷‹lå˜ Ny¤Ò޿̦ÍT^€|Â,€2?woµ»æ¥¡D×y¿P>öÇÀ~œ9×9Æyäø×X =”rž›†¢÷aIðÑãFíåŸÓÚr’^RÏ‚mŽ;Z¶ÞÒyÿž„wFn6ÿm¶ÉÇÎ ÄÜìW›ø­l¸(õét¢$QO�aGvô �ÍŠÃN9p1¡¬ö¬–B¿ýø$½pÛ)ê{oÑÝRÌ>W:'^_ú³6ÿ©‹½&Ve ‡¯H½™™c+AøÍ¬�9oY­U--3[(l>ŒY² ?¬†õahæ*æG¥Ý©‡æ=I”ÍpÛLÙjJӉ߄U´!USéåqŸ€…5©›ñG72¾åeGþß50ß×5p(é—,kÁg‚� áxu½'-«�f)‹iŽã 6e†iÜ5Ÿ�òYl8^ ì×±<ò8kÆÍ…PÙì1q�é­e†WC½Ÿ,Ðcº õÅ ÈüúäŠ^yVû9M$>Po¯Æ™ºÜ“9ê\jÀ½A‡™¹Juœ CÏÔ±t•‘‹+N3é]À~hwÀô¡Šóã¦sáÎ WDoÌ”E½NÖ\U?y_¢Ø±[d¡Þ°£fwÔÊïiÜ~<&kÇ׺ô'ÓJ¤)NÇ™hú£]'d;¨_Ï[èÊ-60`eÚ3=�Qô÷®ºTÀ/ܾçÇn4õ"µ™IÔTênË5– výz´¥=�n`?§Ñ¢ïf<½õ�àzùÖñX¥Ûõd�­7ćwîÒLy$œQö‹®{ùéA0`×ç¬È0阥Š7—£™#GÅã^c꬧%͇óEÃíg A/ÅH$­Öa;Z–Ëo�©—hÕrš—‹Tîâl¬®PLQö<é‹… âWnRç"{>ܤA;ZfeI].´Žª`j]öþœºÞpZDjÇ}7¯[{»SŒ”(q˜—Í_ û>VMDF赊ƒq—AdOîã¸G0ÔË|©q›%(U ¾oÿJö‚P 0¡’ÄDÜÞòOëìw£e-ò>Æ1œ ï�fl89X0ŸêÊߟT#:l6lEò$BÀ€ufb¹ñÚ¨}NíÊ#ÑÛƒÝîO-¨öÜÇõå`k È=ü0•�c «Ïk1£¿q~„ð׳áÑ?¯s8ÁÖeUß JÚ[Ûâx¹}Ølø`DTªaùH¥§Tãi«”ém|7R`Àþ ë öíDºÈ£¡A1nLîê_;º)‘Mþd "‡ "s>ª¨‰Árè1Q°£o ‰–² On{ßi‹k%ÍâàgH{(üÎðEåûcþ–^ÁHÀ€ý]³œ‰O¾IX&}2ƒ87êä3BÖ2þLƒõ1ˆ¯Üõ6ÿ!׺\Q6 0`?ƒéJÙ¼ð�º2L`¦(ëÊI «[CÇãŸÙ'UN­!ÌÚ˜7!u÷ì¨îS*í×D²Ô„+K¯$£-iý£né£_ú03^ŠW^Ô+5QHJCÜ ØÏ`¼5†ré2M¨ù&ås³µÏ'ãJ4Æ}¨àW¹ˆµñl6Ú…4õ09¨;Sÿ¿í–¸_� �ê>=A‘Rà…d/cÕƒs†~+¯ÈíÆARo$V¯%g’Ãæ -ņ¦Qô¢eƒž‰‡.�²¡4Á¶™æi˜¦Þš^.ö- kÆ„á=Ò†þê°;²âoœƒÆûõœ¡�êK8©LÛÇ×r§nŸhZÓ`ƒ6g8˜å‘Aˆ“߬_ ÓäÝn*åä^|`ÿ¹U2µ áÚíÞ¥Bßv·î²|‰ƒ¬–‡¤VΛt•ÞD;’UVìÇÙbƒxÀgíE½‡-Äó(ígœðE‹ßôÛJ”tCÆ‚üŽ1 çÙ¾ö}Ìm1Æ“À�É|–!åù£ây ¤*�µdñ\ûz’‚ºO{®¾�ûA8ýÀ€5Û6hZ¿XÔº9¡h ¹�OY™oCIË‘´ËA:I ¡â�eì0 yp·«دc¸•oXÖNŒÈÆŒ!ÑŠ-Ÿ¾žÒk¯ÁK]ÝaHM0ŒÚì‰vÎ^ ,ÆìGÚLì2n+ŸCá„Q·ö0v„¯«˜zijÜ¡YV9Š%G‘@Ó�~?«óÀ€ý FñFž¢N%ƒ²×S1§¨Ý@o#è<£ß}ª�Yeª·¤ ó®P8n0`ßËBÝ én—‡Éè®0ˆ¥ŸÊ™ ½+‰M×§)L–²‡>ph¯„#v�¢º€ûlPìÄèÝaÃ[¬œ›dš÷›ÎÔKKç4‰¸é=tnÁÇ#o^)¡ Ø÷2�–,‰�^ëì²Îmw”’H¹*xÑ ¾L¥ Ë%»WðS¾dö÷.ñÖ8À~œ‰ZTºà u2f¸×-k%#ìNÙV!CZpÈæâæ Tó(ì ‘»½-€ý:6r4vöûYYsè¶MR�Êð5¼–×Ñ|ýA÷MPV[ýyŽyOç®ã¨ÓP‰p÷Cì¨Ùí 0ÑìTfÅ\ ­†×2rd,¹ÙÔ³�»DÓ;)Î:&ÞjÒ³Nt-eu}çà\à�NÎì|E³{ vtÊìæÄ_öâÿž „§‰‡§®yèŠäXÇx­ö“ª° h@SYt 4”ØÚôÚˆ»¡w¶Fd;Çñø´Ò7æ<_ÏXþ|†ÖsóX\ËeµÚ4�&)ÍÃæ³/£êÈáK`Ì𶦄è_®è¹ ØÏ`»¯b‚–Ä æC«R5¸m ®–*›Ì¨ ‘7á I…] J/*ívôm�š‘Ê81µ.CºÉ„›>P.Bp£ ³”î%ý-<2È­àÜÑ} Å6O€}[•Y]í…δúvm1�¦Z<­ˆaaIs*ªÕ—�ß\69æKyMÄ9ß °¿²ÌcýÏ·æÏ”j1:"mc�Ò}~S[ü¤EcNám’ËÞù8ýòim³kÖ cþR±i|øâ<®¶hÙ™ÃjÖ ö`AJo¯í‚,¼ík]•Ok)=)iz„-`¨�º•>gS wŸñvAj[rñŸ¾Q³ |]³&ÉRÓêb6Nu1…Z&³-ÐôTÈa5ëÁ,Gé™»ßÃ&ß[ñ›¥œÇ@¶É{¬Üll•_í�2@…©‘!Ñï8í÷.ør&FX°ŸÓn1�2¼ß�Å0¤%D™qÞpGy¸-rºÐ\Á'¥™çÒ´`«m” v¾ê8°ßÏNW÷Ÿœ 3Û.à g2‚·ÉSH SÏ_ФVEЬèµ9ŒÆj ØgëÌy&o]Kå²iE5.:ä/Õz*„棪½Yºi¬±nIJÀ Ò{T`Àþ “aÔÀ~—´õLABµÜˆNmÕ cø˜•ðŽ”ô ÇC¬Ú n.Qè°_ÛÆ†p2 Þ à#b0uq‰÷½zðòbâv}¼� K%Kœ:q‡%1ŒT¥°ŸÕ–§â½O{8¾rRâ—$@PW#Üií—ÄJŽRíÙÜ�F-äŽ\¡a9 Ø?aÔIWËó¬�tÜâÙ¡ûä OðvÒiè´õÓ»Côxi-kä©7¬�ûlB«¶‰ªJ5°Ì¸{ž[4…z8Wœ¶Ü8?Ì+£6Ø�¾F{Øœ°~ibÉøm)ï½ñ%ÇJ8L«ð©<åI¹Q'ZÝ^JœBx¤EÛT2²“øsB¡Ï?úso›}‹ž‡»„�±B"±×Sô=×asƒYªØNÁPßÿ{÷OõþÿüØ#{ÏkTÙçØI(d�ì½÷Ì,E¥22B¶’¬ŒŒ‰ÌìM22#ŠðÏ­{×¹úù?÷þê¨Ïëñð8Ïs8Ÿs<ðù¼¿Ÿá-¼Q„ÕáJçÄíC¯` ìç±:B®‡îöX§·1DŠÞŒ›9F]¿å�zÓÔ…X—q8GX9,ìôk?0`?ÒT´Ý ËfÚò_C”®÷�%ÊO~ì%! ÆŠF2d ¿}�#×z‡c%°ïeÜù0qý<‘,¥wOS ‹û ×ÅLMGÏK4ø¿KuDF¿’ßÁäûóž0`ûÕ†9²U ©úZßÓé?�Å ˜Ù|�³»zLj ‡Ë¸¬$E+£»‰yÒŽ½ù£o;óµŸÍ^äR}5k2,å|iã‰ÚÐoõmå�¬ì·�óå8ö.ý\øó8ÞÊjEwf%>êÐC9à9ðð,üõsøµ¡ÝL•Ün™Üˆ”Õ<÷)„å ðª¼m—ƪsZˆª„Ÿ3 ¿Oü¹£¼V˯¯Õ¬#äÑJA_y¸Cƒ&¤¦è[¯UÂÙÌÈÕÁùË­™)½±'½£‘3�‰�©­•½½›™³‹•ƒ==Œƒ‹ò¿ çöÈl{XÆáæ`ËÅÅÅÆÅÅͱýãø÷žãówå‚ññý~û9;o¹yøxa|n>/?”ÂÅÍ ƒrCè¹þ½&|;g]\�œéé!ήÿíq{Ý¿OóÇï°Ò׿;R¹dKµ:}äŒHf[z¦ßúV13qSµµ2ÙþZøø{°wä¯÷PýjjŠÏ¡$###ÿü�…‡¿Kp¶C¼‚/áþØ—üç‰þó¨hã÷ Ú_râ/‘ø3ÛŸŸúÅÏ‘ÿ= Û‘ùKd·Ýì¿…;0 ýá¯ø#‚¿ß)¸#_I¨¤ú9¶¶¶6Ö6ÿ¿XoÇr;ÖÏŸïÆÎ7e;®pqùçíÀ×™” 3!q}>Ët:ó¼L{Õ™àÿ§Ý3x笴~*gE’Wù#_¿c¦ûm‹Ñ~ìN$±Š5û€]ÎÙ†î¬3‰|Ý[¡Ý­*å\tyŠ…S€£Ót¯:|[~ÔZ›—…¶Q`P»hŒdºoo I1`+Wu¼Ä~Õ¯E�祘«Þ!;`Àþ©¡+±”´Û˜èæ°<ÏœÁ©¾pômÝeàM¡õ!Lº)³ÞFñ5_)ý>`À~¤� õ|DE!ù˜6Q yäM×”!z5Aþ êŽ îèëç–E]HÐsš~EÀ˶ʒÂÓ('é:©�VDNWpꪩ3fâUŸ”k€}t—™I ;=a ±¬·É]õƒZ°–ó#êéôìà:ååÐ7rnØÍô𥧠b‘嗲䄑€û§Þëãô$S‹‡D<Í\·ð ekèÒA Q:Ž'wóïÛ\ˆY–2( Ѭžà¼%³SIÌ[òãäÞÒçºxð)i�Ñn¦!ÛóA¡zú)ãXPûaÙ� ˜€ ü8~R�t*фϰdf�.›l´×8¾¶¼4_ÿŒ+‰./·Û _xDÙª)|\¡Õß}�$Í¢•C,: s—q<ÿÎq¼Ç×ù"�‰–­j1ûHž~Êÿ4ŒŸ±×8¾-ÿö|_¶N¡µlý@þ�dÚ;çYÕ™Jò�ÏC˜a(½Ý$ Ð&VÁ3£¢á6À€mÛ´àdmÏ 2içî“>ÆOŒ³˜µ¢0Š2ƒ¹¦ä+Èó¼Añû„Ñ�ýz–1Ú%'¦͔Ԍ"rÞ3ê ÒÒ^�Êͪ·Z+^鈵ú†ð²=öã̹Ê1Æ#—�s‘EÇsZ6û…AF¶/-1nÄf®ªÚšÓ‰Y¥L¾Õ`ˆeKµÍwn‹y§ç<9½Î:üÀYš˜3Õ~¡jiÍA©Ew&â8ÚáSÌaÀß0X-ÙmOÌÄW*¨IwÚÓ þ“9¦ùÄ"oˆåÈ�æÅß �M²ZøŽÁ÷��^³\,Ÿ�c6“^½5k¶W~¾E¼dºÛjÒZMÊ™ØU¾Ò¤ÇTš÷9ò…Ö(C#Ÿ2¾åfCþ{˜wg8„ôK[(ƒN9ÍXL‡áUy´2ß« ß–ÝöJöóØ}ò+ÆÕéɬQØèÚŒáuOûG3Œ¨Öi-m2ß©éמ��íOŠ Ðܬp¦.ñdŽP­Bó¿ÝíÐ'1Y¦D˜�®ã™<�&×g7ï4–Öìç±®Fg¬sT1¾œt®Bœéa2O3º%Ñ.“=+/޾#VàØ*4]m ¢Ù Å’ÛÊ× HÚòÖÍÞÅɰª‰9ãL4úÁ¶²Ø©Žç-°‚2K{°o™úXÛ­Í‹î¥F&×oû²é޼L~Æ$l ~³öK)L«}vÓ£Øþ4ZŒ�ôç×V.—¬ý-{½š, î ƒhï§Û4Ã=q§NûFV½ú˜Z Ø?5ÂIK2,:fñ‚Õ¹Hæ[ý¢1o°Î,¥$L…ñFÙ�Þã9%–°P… ±,‡3Ö K3Þ²ö7©”Ýx´†@T~ÖéËiÑð® W©s�=ï®ÒXC,³4§.XB“6°*~¯ê@„¡Ù›žÜtÇÍëÚæÆ;#%Ji ÖyÓ×ÝÀ¾�=&"#ôZÀ‰Â¼IcAdO~Îq“`‘ÎÒC$‹�ÇmÿDþ1o‰íf¤¤Ùý¸ÂføÚðfzÞ²“ƒóá–Ü­aE¢½jÃðké/ܾÞÝêþ¨ÛŒjÓ}PKŠo‘¹ Ê'÷a ]záE%Vä.ó#áöÓøºÎá k‹eIl3¤'asq�ýÕú^µaø¶|�µ“À€m[{�O3’—²2Å ¹«_åXȪXù£®ðl&ˆ„aD~ ƒyÏt¢`ˆo+ÒyŒD³Y„‡Ö½o4Ä<&Íd‡2$ŠÜ|§ó2ŸŽò=ªŸ¹WRS0`ÿÔ̇„b¯„ž8”Nœq¨žðˆ?4C{iâ#u¹Á¯Çµ*Ç‚(‹°ý`lj¬_úŒð÷\è%0–‘t=Ji$Rµˆ�Ç6¶Ez:¹‚0syJŸÔÝ0D3ÜçTêoˆ$© çg_‹9FšÓúÆ1F\ÓÂ8»26X„W’ß.>ô�”†¸°ý`Ü:Ri5h¹ú%“ã•/†c •ÏQ]ä Vdz^nPÑÄŒg§nNþ·íš¨o•5�ü=A¾&R€I¢—ž<|�¡ÓÒëÖúÓnRmo¤#^³Î${Õà÷ j–, ¡ ²É0MÁ2ðVñ÷r±¯�[Ô# k;¡ã§Ä—gKV°Ë4î�u†Fª/m1"•høðFêðõƒ5‹Ê¬F{ÕàÛ‚Hg+íG+×aªÀµÝ¸#L…±înÕbžz Yñ>’bɑ脋ô¶ø}ê‘�Ìâ`?Îfžˆú§:«ÏhÞ­%žBi<å„Ç(Ä_0ÑiK(VØ ñôEe¼oó Ø÷1·™(Ow&Óq†¤ä÷ ¦Ä�ÊõÏ,&ŠöáÚW“äU}Ütõ�Ü Äé Ñl]»fÉ.¿nuHÆêäz.eY®5%-{Â;é0-„Š{œ±I›&õfK°ŸÇpË&XöIF ÑŠÌ»œÔn«ÌMý¸I‡š íÙ9H¤sÖ|@.0`?ÒÆ¢çèpëx‡t[Õ{„û¸Š(…×'áöŒ‘¢˜u 0Xîôµ4l?ÅÄIŠ*9|LÊvO™ìüFmÍå@CFßMúd�qY²÷q9æ �0ÜR`À¾—…¸=¤»^*¡1Ï ’v8{$ä¦($:M‹æa¢¸=OªCc™‘Å'¤ˆÖ.`À¶�ç@|äF¯Îµ¡#GWÉTîÔ(øWŸÿí¨~øUï‘@Õi?�ûS²q…FÀ€}/;S›)ÖÕn•UܼîŽRxKªÜ(ÿ%o†ì…ù¬ík£&ÞD¶÷.±V8À~œ ›•¹à 43¦»WÍ©%ZØ:¶)G†Ôâ�MÆLjËß§°ø0¹ÕÛ ØÏc½=W\ù”×ßֿp´câŒl£l6>â1V‰í"¢-…2O,ܙ޹�œIÑ”<¢?„åù<ÄØËêe£¬} üu5ÿ4²ÛæÂj‡ÚE¤("ÞëºüÙ¬�‡œ¯„nØ%zÌeíq*’µ¼õŠfÊ»#» ëñèRý]ÎÃãÙy]­ ÷ëüÝWAr£�ë[W;\'Ä=÷º®ßDzïf“®ž1è¡ $ïÂ~iz—S”Üj‘«B�´ú™ÄE�š�êèAÇ¡§À~=+´P©­DY7WÔ½(€Ýbª>Î7óÊ X]ÖÇÍ´•Èú }ŒV‘L7];0`ûÁšÇ,ƒpk˜=ñ¨ÏNq¤-9ÛW0«7<5X’§7±ÕBYª’Þà…ìç¶Ëáo"´ô�/·\–OË|Ju²ðôÍË•dä†5¦6£zˆâïšûõLƒäx~ZÒã„ùZL”«ÁE´+\5ƒ…ÞøìŒ\õ¬³O”pv<{Ò ¢Ù iªGc�Ë ÅKˆYŽåÚðp•Ànûª{¡F@í…,N>A Éæ½Mægq ~,™¨-=Ú›HÏvzÃO†’}¯±$ü9� ƒCª8G×™ü=HB\ûýÑBìèn¥R_x.®¡Ð;{c—±$ßαdð×µ ˜¹3'Ž„[a«[ྣ̚¨Ýk, ßDZ‡û«Ùkcš+Ó­˜¿¹xOru õø«oYmðÇŸ¾sïÈLOÎyäcˆ ¾µ. °_ÏôÕpƒj¬3lßû™4%´{¹ M?gUQËÁš½=��ç&HÅÊ ³»h ±Ì•m+ûdù 2(z =.½þ¼Ôp2²iüÑÙ’,,•¡ôãê7º}Æ €!–Õèl¹õ^í·$\©ßPk;ÃÄUªÄCà~±Šñ*S˨êCiùƒ#ž‚=À~»×¹`±Âãk�´åyŽÃ`V%(Š/ì·&Ý`)&ïRž ‰J%1ù{ŽzÀ~=+~²®L“(×{ ¯öM$ogà}”…:?.TïÑœ%9TeÙ¾pw_d`ÀÍ®† g%3Ë䘩=y#!EÆr—“íG�mü³ØYšöaÑ#}¡¢uúmKD—bP–>Á×RÏd�O•>s/<™4¾:ôͱøu�� ѰäE ¡l«(¯…NTñR[ÿgþÈr3n:bk«^Ÿ`1W4oð-ÙL²?8fŒ´K]€kg]€åëZ/L£ÏášÏ)V¦(Ï3‰3¨ìU€oËoÅT=MÙ¼qŒé~õ‹²�s¥m&À€íÛ€½�EΊhO…”'+sZË2\,:­?¦ØC^ƒ' jB"�–_Ô ñm‰š‘J/> ­*ýD�>'}€T8ÿr1VÝ+úkxd�kA/9#;â ¬û>¶ ±°ÐÎ3VçӲƨMšlö¼4Š…%Å)¿RKÂèêœ>ªå%!çt|c`À¾eŸ°P;-<ßšR¼° T´ÃlºeåˆHû.ü,¦8óQ�Æ”Â[?!š­ùAÚùcêÆ/áû¬ézÐ"‘Q|£™)\uáâéS{õY—Ù‚ø)½½Ö6idâ­_j){^IéIIÓ&hƇ֬QvN!Yrƒ±ž»RYk!ëñq—>+lgŸ5ŽøK[*ê\Œ©ì’¨%2 ïÕg…o "�¹û=lø½%Ô8É&h|ÿÁégz–¹�’º¨°”ÓÅ:G}ß�ÏÀ Ͷ?íÓa�;­Ø =j”é†:ŸN÷6Ü}h*}.é×ÙQþ:›—¡øòƒÀ~=;ö¸3èÐXO¨ñzÞQ¡0&]£†“Ôþâ‚ÔS—߇ )–“"Ëx­ö¢±lÛšº³ëOZUR¹¬êEP ÷ú‰×¦ù ooœf­§Q˜ä?†ô °ÿ…I0*x—°VÒ‚„jî)ý¥íô^TKÁOâ'ºÙ—¢çqËq‰B†€ýÜ6Ѓ“Að® ß" K—xëÞëÔWvñëéô±ü,e,1JÄMæÄ|¤r�Û¯67ë}ÌÃñµ“,ô8y*AU…` ¤¶¿ó8vb„|Ûê'žˆéœ¾ 4,¨ÿÇÞ}‡Sýþ?VFöžBöI(¤Œì}ì½3KHF©ŒÌd YÉÊÈJ$›ìu$e!¢¿�Ouý>�¯¾~×ÕçW§ºßÏ?Žëá\׹Ϲ®Ã}¿Þ÷ìÿÃh’|Ëç'X9i¸ÝfàõئHxˆÿ1NK¯®�ѪÅCg^}’fÅ °^´yO\Uª‚cÌÕý̬!ÌÃùÑÄ:ac@�ÑБXi¥�ú̈%’ؽê„uÓ(ãóúsedfJ'*!Ú�45}qQº%àmº#ê¾ ¢^f¿z¬{À€ýª6NÄ™{Žp‰z¸ë½.I½`‚°™Í�8 ±ФÑVÉÈm%#Q;@›qìÕ—¾-üs?›£Ô¥îjÎtD6ÚÅŠÖ�áßêÛž�ZÙï<÷Óqœ]ú¹ˆçqÌ)hÇöå$?ìÕGÛï9úà<âýsĵ¡½^,Õ‚ù‚¨´u¼ùÏFó©ÎõÈ„49-ÆÔ ÎEܧñÜÑ/ïÕòó{5ë {¸Z<\©ÍØ¢i(ýÖ{•v6ƒº:8z43e0ödp„:óšØ™ÚZÙ›1¸™9»X9Ø3ps rrsBÀõÏ‹“kg$µ3Œâts°åææaçææåÜùøþ½×àþëäçÿûñ¯ëëG^nÁ¿~æáååäçå‚póðí<��ûßk·¯ó.®Pgˆ³ƒƒë{Þ^¿ÿE¯/ß9åÏ'9lœ8Lœ7Lä—>_?tï[ß9U3·s¶V&;£r••¯“¶¥D€˜ùèæmü—LzMó}É�°%Ç%G tofIè¸ÐðFÏf´´_.54>4~ÿï÷„�øÓ~;ÂÃÂÜóswÿ{ÆS¬p…ní¤ËâS ìGx>Eê¦Ôv�› ŸËÿ¦ÒE‡U g'š'ÄÄD_Ú8 ÑZ’þ_â0ë0Ûb¶kïBŒ+ô˜Åº |Ì{Õ…ÿÝ3|물y*wM†O õÿˆc¶{œÅ‹œ>ÉêuûÀ]ÎÅøº.$þy/„·Ú´ 9Ø+3¬\œ}¦{Õ…Ûò³Ö–Øì¿"ö ›“ÆEs"Û}óxwXš!{Õ9ÇËWý{ÐÔxÛ$]õñ5Dí€û^Û§ÌZÞilc¢—Çú4Ž[wéè\Ókªà›¢ãXô3fC­Rë~²†ÃÀ€ýLÓ÷|HM)óˆ.Y¸câUÿŒÑ¾:¢4½Y<�/ŸZö–ö£\Ðò/†\¶]™™A5Mß×Jã´*~ºšKoLM�)o¼î¤b‹àwyxFHÄé×¶À�ˆÚÝϽW Õv~H3›™Ú!§ºþJÑ §ƒA«â”ÀûÛ¨g–sÅP€û^‹òqªÏÖæ%•Ê0×+9hÙ„K6F)AÏYßKx·(ßæRü*LÖ° 0d³f‹–,NåñsÇ)¼åª/ôóP"Óš ÝLSaðýÙºÙÇL“!=‡F³h…]ÇñÓgÉf’Mø�ÊW-ö)¤B÷Ç#Ö‚—šŸp§Ð 8ˆM¨X• DN�í pß Í°è┌�ÁÚe/ôõ8Þãóü‡GÄ+V�Xä�?}„dí5ŽGlË¿=?Æ�½Ot=× XhÂ#•îÎE6uæòBÔ‹A´¡RF�v6^�‘6À€íجÈtãà3r9ç�“>ÆõÆJ9,Ú1˜e-ÙÉ¡Ü3gª) ½  ‹*íöçYÖ‹‘ ¼ø2 S23ÊèϘ ”åqü&Õ›ÏÎÅ-vU?וì4ò ãc¿ìç™s­c¼G?׫®ç¬Bî3Ã0Ì^I>:¼¨­‚sjëN'敳ù×F�!—-7v܉“ôÎÌ«ß/p� vßYŽ„+Ý~±AÀÒš“J›^#ê8ÆáS,˜À�ß0Ù,9lOÂÊjΪÉõÙ�ÁD¾gNh‰ø+’3ŒÐ©·¢“Ól%~“ˆ}à£×,—ªæß°˜É­Ý�™·�Ø«Œ8?"Q&Óm-e½!MãöE Ê#j­|®ƒüá ÊÆÑ�™æxØQÿ³Ì÷u8ŒìS[(—BN…8Á-f#ðk=z™ïÕFlËn{›û},Ÿ"ÞŠim6L&gTBðÅúAÆ—ƒ=Ì0cºfuµÅuÈýze‹å^z>ökšèí@­­jgšrO–¨sµqÃÒÓ•ÊD¹™ºž©£ŠÃv N“�À~ëouÀ¾@ïÇEï*Ê•!�ù8k@ã ù“ª²Û°;’ÅŽ]¢³uæÀ€!›ÝP*�S¹~TÆ–¯iþ.n–¥hC¼†3ñ‹÷¶��à>u|oáU´yºýÀ€}ËÔ'»ï£ioùºV@M®Çù±ëM´¥>a3”ºÙx™µ‚]P»nßü–G°_Óè073Ÿ^[%¼R¾~ Vázy`S£ÄÐǸ@ZØ G©Ó~ѵÏ?¤Wö½F4mIŽMÏ"U¼ö&šåÖˆDü+l�å´¤™¾h¨ýÑ=Þó1’I‹µ8À�Ëò¸n›ak%Z6ãá$“µ›ŠÕŽ)Ê™!k›5‘ˆì¿t•&Õóî­0ä2Ksšráe 9C«²wçˆ1µ†Ò"SÛï¸y]ÛÚœà`¢B«ˆÇ¾húrØ�±GÄäD^‹¸1X7i-ˆí).8nŽ#ÓÙwÈd‰‰x=)>.³ßŒ–1ËOX%ŠgA¬ o�d®89˜±î,؆)ïUF\û¦téžØõ�.÷‡fÔ[îcÚ²üKŒ¨ÝüŠïG3åŸÕ`Gï2?Baÿ‹Ïë²uZ–ßî€ &m-­s<ߨ«6ŒØ–±Ö°ë ñé@±ãVQ¡Ó§põ¯™ [“Ì¡xØ™Ë ‘6Š*j`4¼¿�8 òÛª\!ñ|Ñ¡ ï-ñõbdÙŒÉâwEÞê¶ÑS½C÷7÷ Aioì{Í|\ôvòU¢âð‡2Iò¢5 ÈÒY…øÈ^iñt­Í³ Î!ìW0ÍãÄÖm>Bƒ—†�åe\�RAÅk—0ñ9"&·ÉN§Ve¯Ì�¹{†l†÷”Zý± ÑÂüKIÇhs:¿¦¨kÚ˜çW'ÇJñË‹z¤Æ�Ñ’tö+Oµ®l†tF�AùôTÍ3X|‰ÊØj¨/'‰:¾õJ«°ªV"MGê¿m×$üj­iÏl3i1¢š${éŸA¬3ôYzÝÚx<@¦ã�rÄkÞ™t¯:â?2a´!6Y¦i؆ު^.ö� KúDÝ'tý•ù mÉ‹w™ƒÆóu�¡•úS[ dÒ-ï_ɾ~°aI… J¸W�±-ÈtÒ¯hUºÌMÂx¶›wĨ17Ü­:ÍÓoá¢*å£(•‰Mòe°%V�†d—•ûy¯—HwV‡kÝm$™Ak=å„Ï$*TüºÏ–H²¤ 0ì‡Î$’oóØ�17xŒ'¡;³écÊ Š{Å3’(UKÉÃxöu¤…µ¶\} w‚qû€C6ÛÐiX¶+jZ—·º¹^@UY`MEÇ‘´ÉA£ƒPóL1µëЦßì¬öû^åkÖ¥ƒÃ21£(tâoŽ]Ié1¿­ÂCó¨]—†pãÉH´sÎB`10`?Ó&cßÐã5ñ9´�ëu©í�ôqWŽlNÁœ:"K9ï(h¸Òçgi د`”¯ORÖ*`QõxÊçµêh­1ùm1¤ ÒW¦zWdÙŽÀ«ìGY˜ÛúëåáÒš Œâ‡s'ÂnJ@b3´i$KÙó¦;´VB->¢Duõ¶c¼û£7‡t¯�9ºF®z§ál@Ý ©G "¯zOŸ›õÇõÈŸQH(�ö£L£1[²¿Ç*§¬cíä–l´¨�/Ka’Ò|Þö%´Ý�/™ý�Ëm+\`?ÏÄÌ*]ð…;˜2Ýkߨ%[Ø:¶©B…4â’OÇOëœÉ§´ð µËÛ ØïcCƒA®ü*sÍï†g^;ZO2sEwSuñ˜¬ˆÆqבE[ ëËÄú�‚YÉ”"j$ŒõéÄØËª­UÁ¾ñ¾Z@yœ¹˜šïx�¸Ü£÷¥${ÝWC<Ëb”­ï�sPø¦ýQâGÜÖ§¢Ùªº‚´ÒÞŽBí.m$îƒ�ìr~ï×÷Õjñ>Ïß}¢ø"øõ†ÃöÕ^××Rž{ÝWCl 2}ö¿³ÉÕÁMF‡Åéƒ)úqÚLïrIPX-qWë“UÌ¡’ºœ¥á >zÐqüq5°?ÏJ,TkÐ6Ì•ô|…q:MÕ§øáÏ CÕ|ÜL»ˆ­/�1Äk—ÊÐ÷ö+XǤe^‹'>ÍùÎŒ%¨³}m±!˱f£Scå…ú¯·;©*T3[¼°�ýÞv%rÎ1)JÛàøI·á•3Ù�©O–œ¾yŰ潼"Lsf+f�8±õ®)°?Ï4I�e¢Hëÿ±Í4ÇýcÆ(»Ô¸¿® °~>Cë™iì<ó7J5i* ÌRŒª{ÕÛr Œz°=—/�)Ó¿yIÁ¢ïME· 0`¿‚m ¾Œ ž×™ «JUá²–'bô-=m0©4HÑ€/,nB*œQTÚ ùm™†‰Z?1£6óDƒC l¤ÐJv)ýs†køä�k!m\ѽ ÅÖ�ý[”^\ìá�lòé\gÒ!K5{ZÃÊšæTT£- ½úÆÝ‡ê²¨s&�10`ß²�Øè}žs¦”Ï,¨”ì°ÚoÙÄ8"Ó¾ ¿‹)Á?¨ÑšRz$ŲwÜϸxLݸ ±Ïš©/P*þ‚ ŸÁS+›=µWŸu…=DˆÊÛkãA»a6þÆåÎʧ5TžT´Ý"füš•Φê@n05ótBj-do{|Ø¥Ï*øuŸ5�äS[ª›\ŒÇ¨íRh¤³Z ‡îÕgEl 2�¹û# öÎRÀ8Å MPÄ*4ÿþÿ°w×AUwëÀ÷¤¤;_B¥¥ARI éî)IEAR i¤7H‰” -!‚¤tƒHH Š’wuîqÞË�yÏQÐ5ßÿ>³™Y{Ï0³žgýÖï‘oзʯ¼’ÚG†¦éu˜ôù|=5¼Øñ´;tgtt¢Ó ¨ñ‘ÂŒt·å[îO>5“¹–ÚÀ~uò\“m”óÉplÅQ`ž�¯ì >=5n²UpV ‚NϸEšÜOŒŸ|ÎÿcT©‚AÖsc™Ñ °}k èÏi–¶®&sÞÐ�"òk:s—â³¢½I†a¬¾fqªßôã `Àþ&A«ròCòf³´%ÙÒ ê[+:°A$+þm1ñ~–ušX¥eÌ L¼°1`¿·� `dâ|èöŒAÓÄÄß{ü6ýÍå¤-uß9†ç ñÊømøÜ„ O�;®¶4‘àuÞÝá­£�(q:NM=¤q¸W=%J±kc›3j>wè0`ÿ #O¾Yú"/ÑÚQÃ5�¹ŸÓ}�8ñÖvÆ•ºvFç]-J‹*iòuk`Àö�oÅö3^E‰ º [×+óú0w§Ê§ð}ÂF¿@£AÆX ¥þ:XÄ*~ìa}ÂÚYèØ¢þûRBޏÑ>9 ‡SrW0úèVŒ'òäÇ¥†-‘{¨vSkHŒIø‡Õ Eï·ãÐ'䃛ôíl›y“š�­˜†¶\$©ÛCð#ëa}BøµT0�á>ñÑKp§­Ç…ʑÛú¢ °ßÇ>ë ¸œ~d4`뢉¾—¸pž¼yÏéž™3¾íx® JDD#Ó00`¿ÒTuÜŒž/t¾…(‡ O¥ñ–J$À»‹ 3bˆŒ{Ìšo3�Áú©°Ÿe…¼bBÙÊ^Цã–ãn‰˜™M^—hñû�XØCçS‡úذãjc¸¬9—pVɆ:?Réâ×ñ&ò™ÛþŒYˆ}¦�FãÏiØ­%…«cûñ93οû¾·]ø¶Ïf)q®½�=‘…x½¼U¼1üïö¶ŠÆÖöûŸÇø:΂~À>~Ç{9íØÞì”g=úˆ'=Fž^…??‡¿ ÑëAUÍï—Í�zZË™÷ìbD>—êûnìà&Ç•˜jøgFáßS?wôûwUþ¶fŸÙšœ!cDäu4ÉÓiIþš›º^²³6Ýÿ3Ï÷?&[+>â[ÿšÍ«ßc»+õ=�”ss3ÑS�ìHA†úoÄÿ=E¡E¡Ùè®Ó]whßOïNýÒ~Úz÷#«ƒrÎSc?ï´³¾æ4âíï!'bgÏ|U°¢ç1 û‹GKßã½ðÅîk¦NQ…6·¶Mï'É>ÉþÍÅý0h0høùã¡}n%66O8Ox¨¸¢ê߇"ƒ"c«]YéÿŽçN5ªç~L¿¦çíÐtwû×0ä ËO¾˜¿ÑÕú¿‰‚8ÌðB÷“Ö|*àT@HwOX•( þÿ'tþtþŒÏÇÇ¡.ðaw’¾*}•·Þ?ü²êeUÇÐ��ï�I,ÛOÐM‡<‡<øU²–¨9ä½N…R¤»ÌEwX� ÿÿðØðƒ“òjä…4Œ1DI.1„/ÜÃYnq–“Ãè½P‘ªMû€fôòüX£ }»—ÝíZóðZ6Ïúk¯Ùa5*üZ~Õsî¶'ýŸv‘ �;kNd¹íˆv…=4d®¸äp‹å¶o7¢çk}, �ËÀ€ýSCVf(ë0±5ÕËex™µ€Q{ãìû¦Ò {[c¨Ts惭b›>R†CÀ€ýJÓ÷xFF"YI™Â×>ñ®oι§0”¼'“£ƒçíK«ž’>(Ï5-ß`GËöž§Ff�ÎRõ¶’;~’¯bÓUS§Í«•Vháýâ&»�!?cìhÙ`›Û¥Ïjwµ�ž‘ÏÃrî6AˆHýÃß)¸¢·Sk•_àùœ€ ¸–­ ìŸZä ·c]–6'�X†…^ñ)«Îð@ ÂQa*ÖºœG…y¶7â?�K–vԬ纽cYü{bQb/™ªk}œØ$Gé~ÂA¦)7ðùbíü Ú©àî3r#™¼|ÎðuüìE¹Sn£²u^Kd¹4ãÃêxø¾ÔÚrs{*UA~¿#¶à„Šu14rúb§ŸÛA†e'«Hl êuü¹ëx÷ogÍW*ñÖ­Q‡^ln�cgVÇïå?}VïÃÜ+°™ctnÂ=�òÁu&uº²„ëz^ÄÁ~ž6&N~�IáH[`Àömž¶qà‘ŒS¿´·I�‰R6½v JiKVÊ]ö9Å*âÏg<ØCJÈÀþ<ËœÌ�/=aFhN½ì]ÃjR½÷êRÜJgÕ]‘#Ÿ0.æ'À~�9Õ8Ä»çs³­2èzÌËå¼2 CéAá¢ÄÇŒÚÍ¿¤¶é(¾¨œÅ½1ìhÙZcûƒ8/XnÝIž¦ñ'N2øléö+õ`!±´ú¢šL¯ýè85ÿ?y>­_è¾" ±ñ²Ø�©Y¦bKŸ)ø=ðÙ;V«‹Kôæ2�bí"ÛßÕ&IÂ\7R7ëj$lp—·@+É´òØNq‡×+›ðD¿ }ÏÁŒðï{`®÷Àa„_×B²|!ØqÁr>«Æ½û´Åa{`øµôže`¿�åÇ[ÓṅIf�óNn.ñÒ¼èþbŽÓ9¯«-¤CäÓ#U$óÖ£Øñ4�„­Ý*'ò2ú¨K5'üâú¯ IÌ>WÆÍ�éz¤�d( ]^vœÊèöûX_«“Ú5²x6*6X@„,Ê‹Ì~ÉþD ¥ ãDŠ:æk-€;jªT§òdDÒŽ«iñF¦•@}¼†Þäg»vÈVP¯:–ß'ÄEÊ“À€ý�©Ou=AÔÞ½é†Snlçì7ñ:­�NÐPì^ã-†rf^íZäÅ]÷N`ÇÓ(Qv`/ï|Âñ/Ûü+V.¤–( )�Fxp;.€b|À=ñ‚¼OtÍ›/éÀ€ýSÃ�µ"B£¢+ÚXЦ¿?,ÿMcíaò\W´±ý4îcΫ1"É+5èÀŽ–å²%˜£i%Y5žç`%”º<«ÉS˜=GøzÞT8²ïÆmò\�G–ÀŽ–YY�—ñ­��1´.ýxé ŠÖàÃÈ´¶®žwvw&XhIËãÑ®›½íös¬�×s#õ…%ž=ñ5‡]œ±£4‡ë(YRf÷6ñ—‚5æ{Ñ’æy‰Ÿpãéá{ûð‚uÇ+æôg:ò÷Æ•ðë ÃßÃQºñX0¤¿ÓíY¿9Ù®Û¨¶÷* B·Âç˜ÌÊ«j´èž�à‡»‹ÿížÃ)¦«²„vÈ@òîê&Ë›­ÃzÃðkù÷®€Û·î`ïvèev’Q}bßê©° ‘lâg}‘9t £¨Âz‹�'Èx�}û$S@‹·˜�{zË+´%¾N�0‹…‡&EèÿÝ×…T¤‘|-<ƒ¡mmÀ€ýS³HH¹�[.~†Ÿuº—Ñ�ˆ'Sgmâ-åßâ;àR“k‰—M Øq0MQ<›×Þçn â˜ÈJºœ%5ªYEÁb‰˜Ú#”O«ÂÍZŸ3 tóì¨æK2õwx’ä¸Ë‹oE¢-(}i£îh£\ý45Z‚UVØ-6ö”�¿°ã`UºRõ'ò Êf§«_�Ç«Œ^#3¾ÉНŽe³Þʧª…šÄBÞžöŸ¶;Â>56Š{Ô8…Z4ÐÓO}Eø>C¯•çý­ý„:^PFÏE'‚Ãú ðïi—,£¶Í4{ˆfè¥êçélߘ¸ª�Ñ%®ë«Ì]`GTtÀ3h?öZɾ®Å˜P¢åó;©3!§êWU˜Œqë3À¯å(Íe9ŽV¡K×ći·ó@� eËͺÃ"ý>‚RT©Œ16ù&µö�z4$«´ د³…:a¿t'õ­G�øsˆ­±hÎÍôÚáŠwBüF‚|�hùólßû9æºã�ãFg6M“Jü¸hNZa ±š"<„i_KPPóe×Åò £°£f[:õk— ›6Æd­ïCBòIŸçÛ�R²$ï°ŽSBÈ8¦iÛt(Òïu<öûæó†ÕSC’1#PJ¡¥óþ©Ý *ä•mºä8ƒ'®A¢�²—Š0�û•6»D…ÙÄu¥wL¯S}ðd¤·‹�rds*æÀ4£É¢ƒ@€áz¯�•0`ÇÁHf¤Ijü°QI»=ds [u´ÖƒŒh}v©Óx)Lž§y‰*ÐïðE`–ö³,Ìõ)UHY¸„æ2�PÆ™œ‰°{Â�Ø mЧ)böœéWZŸC£:û€Û7ΓIÑ;ƒºwÆÏn©>¨¿èW+.ö×YƒÈÛ^A—æ}1Üóæä‹��ûY¦Ñ˜%Ò×m�]Ú¾å†X|_ªÂ¸ð5W¦Ü‰Å¢Ý[ã6C®æ�Î ÖÀ~� š?wÆâk§…¹Õ,©¥XÚ]9c[�iÄ š�ŸÕQÌ#±ú4¡ÓËØïcƒ�.Ü*[ï›?ÍÍ8ØLѱEw‘¶›0ºO•G£; éH!.ã öÂP�£Ó)™G ‡1¼\†˜xZ¿n•³ï€?WóË Š³T»9Ö-$Sù¹ÿ°s5ø÷ê�0õžv ß±?‹WÉnã~!š©¢3Pëá‡ãË7¶’�!„ÌÒâüñ\­óÛó»o‚&ƒf¶®ìÝîq™ó8ì\ ~-Gé·ÿ�M¦vÁtdHˆ*ˆ¸ýµÙ#6abëUö*}Ârž÷ÎÉYÈΞr{QìϳbKÕÆjÄ- %½›|èfêÓÜ o ïªËy»šuâÙÜ¥Ž×.‘í§êì8Xû”U0f=½ùÕ9ÖŒUc'ûš"CúóÍFFË ôgö:HËUa-žhÀ~oó�|ï�¥m ºŠße诘‘õ‚LºXþž¿aõgY…q͹ݘ¼¤ÖGfÀþ<Ó$-Ì€V&·(6¢"Þ¾[Bù‰½~´Ø {†…ö‰‹¾MŽx[OC]0`GÍÓÝ[ƒ�GI^ÛBÌs­6ÇÇkøz¯Ú]O¤({Ké:h˜PW‘¯å}øZ2EGfr0…šY~ÇW–”ù°Z~Æ Íè˜á%Œ³[t~îa.Ã~'Â.ŸÔÛK'¿ñRLóâàbèµ$÷�µäÝowAQóÄ#­ÑÕ-1?�fÏ4VK¯å(ÝÃýÓì­ Eà|'ê_Î^³ì}c~ê{Ö;ç’ä�:½1ö·µø÷¾ü,w$±r;¿?„…×]‘Í ÏmÞø@­PîU<ÛY–'çM ôØì 0|›¡õÊ,ö¦Å’RõC•e:1ÕÃúðkù«”l -‡+‘æÛ¼*gÙ»TÞe Øq°Þw¼1A‹B:sai*l6²¸47Kä ¦”ˆë±øÄ‚ÂM ø2 Kz€}[#§%ÓOJ=Q¯7`£�Š<·^ŠVBõ†úäNðk¶èžÄ"›gÀ~Ž­H¬¬tsN5ywlÒꦙ¿,�a`xèXX­-a|{ÉÉ›ô–€ Û°¿³m4¤^K�÷f$¯,I•þ‡½;�†ºíÿ>CÙ²ïëm©ÈcYC–Y²ïcß÷¬QÜ¥²d—-²“=;Ù·lc'…È’¨„ßíW�ßÓ©s¿‡qX•Ÿ*ÝPçÓDÛ½éB™+ÉO!—§Ï4[G8 %Pì÷³³ÕA'f†C�¶ N †1ëÂÛ¤iüÅh毿 +V‘¡Ézn"0X-lÏ:†rZ¤-k©�7õ"¨Ç…†ýÄ›OÓ¾W°3J3ˆÖÓ(IöŸ¿; `ÿ “`R>¶–ø±EÚœ”úM&ß+Úéˆ#ŸÄÏ q¬3F+.ãUá‡LökÛØ0náÚ �y¶ÉnÖ‹Ôç¶ [é qügNUžŠU"é4#á!“/ °Ãjo¦â¼Îº;¼p”ã£H%¬«h5�ˆá$E(ôn~‚F,äŽ\¥=u0ÀþF“x­¬!/ÞÒQÝ5Ž}ê¾KÿÿSÚ"-½šVZO°&7�Y�4ͺ%`€íÿŠõ{âªRe#®ÞVÓÆw§êBä:a“ÿ Ck´„âГô°U’èƒê„õsà‰%½×edÜ1ãƒrÇåìq™WàSy&¥FÍ1úéw’ë(á”#Mjb÷ºHö©ò#�ôåÙ6ûGW #S…hBŸ‡Ð;΃ê„Èm©b;Ésô�—Ðv)v¿ ½#·ÃE+À~{¯#èrâ¡á°Uz/c¤ÈÝøÅ³4-»îGîš8“è2Mæ )‡…=åee °Ÿi*Ún†•‹½E/@J·GgRøÊ¤? H‰ƒ±£Á†§Âc²8ó­fq97 ìGwŸ¸~�p¶ÒZS*QÙ(Ñ–¨‰É´·D›ÿZªÆ�¢~fß'XYî€vXm‚ˆ3çá*õHÏ;z’'|ñü¦Ö?â,ÄÁaã&ÃÉJFˆ¥¤Hmô 4íì˯}ÛÅ/ýlŽRçú›Ùsa™èÞíçšB¿×·U€[Úí½÷óq œ}ú¹Èçq¼–ÓŠÈNzܯ‡~Ìc¬ð2òós䵡 Ý~,•ü!Ùüˆwê¡y�/†åóÃT^÷É5;®DÕ"ÏEÞ§ùÜѯ÷jñå^MûCo�T…k1¶i‚K¿w¯N¦p{§Ï¯¦& F p'¨±­‰�¥�)ƒ«©“³¥½„“� úù'×ÞèeoèÂéjo�ÀØ!ν&ÿs?ò×ÅÇÃó¿¯]ß¾ÂÎðqÃx@ÜP(v†÷  ããƒ� ÿ\¾]vv�;10€œìí]þÓûúú!½¾~Ε¾ümVÛ’@ìH±Ø2ÎMÝÄmô¾ó½Ï¹Š©±ë%Kcô¿¾GÁàÛxB¤Ï!G¹ý_aø56ìÌ_ƒ>{{ôÐT3ñ^½¬²­þï)`-`…nzwxw¸¶í%ü†ÍÂ^º“öáï@1°ûJßσ3;¾¦•*Û8Ûwa»m—ø¦hü×ì:0‰}NnŽOƒŒÌ{/y¥y¥Ì{Ap#¸é-×¾ÆâºÉ¬Él?ã^Â÷SÐWЇ#xIì?ç |³SJ~/ׯ?ç2†µ)÷ç|j-ÔðÇ c¹ù™–ñ�¯ÂÝ  ËËÄKÞpAîVÙÿOÐ[Ñ[ǃ³Ú²ÚÊ ÈÁÚ!-#-[{^zl&x&8ú�Íq´oÓ¡´!ÂMÂMäZŒh1$^cÄg�³XgÆ|P-ùÿ~–Áš“ÒjøùÜ tI˜8ÚžQ‡L·óéQœ°hÍG»€}΢æý¶#üeÿ�>׺W²±y×çOqñs˜T‹AnËÏZÏa}ìºPa/%&�³ÆT¦Û¶XoÈöªKrÜôëCW…vˆºèá« ÚØß5 ¥SåÝFÖÆº¹§že.âÖ_=ýºùUà]Á­ ,úySD»øG_)ýÀû™¦êñ˜šR²š.‰¿kêåà¼!F=aÑšþ înÞÏ,úKÁ¼W4ýJC-Û­LO£š£h§qܾPÃ¥;®ªÆ”‰7Q/-߯÷ÁMv1-(ìÂ+ÀPË�n—Þ«k9=¦YHÏ n‘S]})ïŠÓÅ Yqž÷}šÂÛly!0`€ý] Gø8>ÉÔ‚’Ч™é–·è ½�K6N)BÏù¤ŸðaQžõÕØ�I)ƒ2ÀC5k!ô¶`q,�}M!Fá%SseJ@‰Jëpö3 ¹á÷ë˜f‚úNÊ�eÐòñ;#�ãç.’Í'ó–¯ó™cÈ¥ÀÇ#×_ß.·<…$Óä9M)[–€Ãg/öø»m‘¦™÷pŠFGaí3Ž?óí8ÞýËœ ûjâuË&¬Ò†OEŸ& 2Ç#·åŸž“âË> ø1G?ðÌ”{ Ý}o65æò4o :bˆ”‘·“ * >-n `{¶ 0×4ÜJ.ã4$ícôÄH1›E+ ³¬-3)2¯PCQàù˜—`DP°ßÏ2¦Go䯖5!3¥Œ\öˆº~;�߬r·õRÌJOÍsÑnCßû#À~ž9Õ9ĺçóp­žÒñX�Ëi5ÁìÇ…Ñ‘àEìä_RýèxnI)“gs 0Ô²·M]÷cD½ÒsŸã½Í6ùÈI†„+Õn¥‘׊“J‹^=BìèÉó,a˜€¡¾a²YpØ\XŒ/«½¨*3`7>É ðwæa‘¿$Q`¤€/‹¯ Î̱•˜ûÎ ÷�Oß²X­ZzÃb*³ù0jÉ&ì >0òœ„Ét×Íä��Ôã6y*ÚÀÕÔšy\ÇyB•Œx#˜^s³£ý{öm8„ìs[(WƒÎ9.š/„á×¹÷�0;¨ŒÜ–ýöì×±<ŠXK¦Í…Éì1¾é�oø_ ÷}0ÅŒêYÐÑÖ&÷í—*–yáQ Øá4Á¸Í�'šr–ˆKuGýc†ìG$æ*•ˆrÒu  ·›%Ê‚^ŽM\©Ã µ,—+Î[3Á¢é,7'™”íl´TQöSg†¯"�d%]NSÁ…ëV1ñ9ÂfvÉ.¤Ôe®Ï듹yªÞ3jµ—Ä’4DËK/D"Íè|ã™"nia^Þ˜/Å//êŸ($£%é °Ã`Ü5:Ri�GóõËçfk['cK”ǯPïq’¨á[­·ó«hb%pÐt¥üÓvKķΊVa—�°H“`œä©§€\g°ð¼·Õ0D¦ífõ\r"=¨Î€¼¯N—dEm�u†Él/Og»¦øU=¢°Þs:~J<6äÅûÌAãþ¶ÎÐNý¹-p2‰¶÷/¥NÞ>Þ¸ªÌ'<¨Î€ÜT:è0Z•s3?žÍö}!jÌ-7Ën³Ô{¸hŠy`ÅrÖèÄk 6#j‘ Ì²rÀ~ž->ñOuR[Ô|ØD2�Þ~ÞŸIðLñ«"Ñ’�ÿX ï&�<ëç€ýs]Œò tc6™eL¾C‘UÙœ¢vmÍõ@C&߆>Z£Ê/1y–mþ0¼ ÀûQâZH»;§­�GiWX€Öãe دcˆá.<Ê[¯[Þ�Ì¿r°šaæŠì¥ê2buŸ©ˆÄqÖ–B_&HÇ:ŒFÁ¬hB1rêÙ2ÈÈÓ²£]ήù¹šyŒ™�굉>a™ê÷¥$=WC>?bŒmà„Ó�Ðm»ÓÄÕ+÷ó‘lU=74¬�Ám¯n%`€Èô÷93úísµ:¼/ówŸÉO¾Ú²ß½ÙïòJÜã çjÈmA¥ßý¯l2õ‹Æc#Âô�ƒ8&¹D(,W!5zd¼¯ÑH�/ÒpPŸ>î0ÑPØïg%æ*Mµè[fŠº×øqºMÔfyŸ«Éù¸šô[]gˆÕ*•¢ï °Ã`]3Ax�,ø4—ç9ÓVáNvuÅ,g[ Ï�—è½Úí¦ªPIoóÄì×¶ëá¯#´ôÅVIz ®+¤e6PK—\¸{Ý ö½¬ü¤ÆüNÔ0qBûCÀ~?Ó +J W'¶)4a¡ß .¥Û€4Ž—x¼â`zä¢g•s®œ«ÿé“^ÀC5[$Kuor§ì°™æZ|œœ¬ãßo_µ`Ï#¼v‚æÒOÀ!Â9°r?ó{ÈcÉ$m™iDû…m?Y*LŒƒÆ’Ègb2ŽO\Â=½ÅìïNâ2êïp4Äö˜în*ÍÕgâKwöKò|;– þ²+ñk¸%Žš9ÞUö«¦ƒÆ’ÈmA¥u¸¿›½0¢½±Ðƒõ‡³×dpbØ_m×rûLÂ…ûY¬‹Ã¹Þh‹F N+]tÀ~?ÓWÅ j´Ê°yçgЙØçé"¸ðŒMYX5{)f§ÀU€š��Ïöš`¨e.ì»±8ÒU­ä¼‰‹ x úËR“)h& §äʳ±U&ÒÅÔî ù̆ZÖ¨³ëЏ9jA´Ñ²­Ú«Î ©P‚º]«cºÉÜ=­w¤*£p|ÊC`°_DzVÌ7 ¾và]�+œK*AQpÎg|¿ß�™zÝ;)2–Ç\l¿ênãßÅnÐôŒ‹� k2è^#º‡¶¼¶ƒ¼/�v%{j¦ì…sщ¨ä©�±®Å÷÷BRÅÂSV\4…³¡ÑnË}Ç$ˬ}^ø Ž(Ì;ùêŠom¸íÄùiÝç[!²šfvÎå;ûg¾ÝØ¿ç½Ã4ÐS]grTË"ôžþ(÷A÷¼ûç蘭ú¶Ë±¯¸‘ßþsÚ´û�>DÝÏ岨¦¨æ©WË'Ú¼.@¦j<þ=sfsæ­namaí¼³ˆ¨d�¸â"æŠE× êæ büÒ*{(Û~p¢gvÏì² oÕÕslîçóÒ¯b¿.Çse_’´ ¡[ÂSC‚1!â æ fËl[Þo\ ‡ÀõÃõÃëµ3�~ܨæ¨fæš Ïƒ }„†H�çKº÷S•:¾VI0b6 †iQ´ý«9O,³ÙD•YÁÁþ¼ù¶òy$ÿMm�6Hà$««ŽG,r ЉЉÁL.à2pKП£¤þ6ý D.>¹OsŸîÿ=±|½“í•iÌM\È¢ruªê“$ƒÚAûLÈÛ”PÁÛ³yÀ0ïæ9ó¾Å²î«€vì³À;�hÿQ�™ÐŠU.ËK„ ·‹å &•áä x‚’þaWIÓ Š{;ü¶F ¦ÒOLF¯��o0à¢÷•‰8»^‚UL÷š>� ÐÆÕ›Phù°ŸcËRËË=<“M�[`Ò³—eÑ,,©vÕÚRÆ÷ ŽyPÞ¶‡á›Ø�lëXŸ¹ëœ)Å+sJåk˜í¬¢mÓw<~Sžÿ¤NcJánð(†­ãYú­s&mÈk ˜>±è¾ñü ®†HÉìŃÖ@ëlg)ÝݶóÛu2ñ¶ït–¿¬¦t¥¤é2ãCïÐ,¿©”¢ºnæîU7šËÄ»|úÎHàÛ5Pñ—±T59˜ŒR]K¦–Êhñ5d :hΊ<–Ãt‡óϰñü&ÉF˜hBРœgò/ô-r+¯'÷Sa©ÂÄûl'¼Vne`†v4-�‰Q÷a6\]�f¤»#?Øò`"ßTöfò‹37&Î6YE:œÃWìïgç*ûNMÂÃL¶ó8„ÙôŒ[.PûH QÏÜýŠ¢\AŠzÉmcðøi ÀCX»ï@vóh5•Æ~$Õ¨Üß[²‰1ˆfSÑÆ$Ý0F_³(Ùgå:`€ý?L ¬zbõÑVósªÅz ú;Ë:°ÁcB;’çØ×b”—p+p‰BÇû½mŽ“A°Ú�o�¥‰K¼÷ämÚëk‰Û0úxÁ³,å,q*Äíb>R…|À;ª¶ø&Þýœ‹í[;9~ ò4‚š*¡PãpŸvR¤b÷ÆOäìÓ!O–c€öÿ0êG·Kês vWœâÙx\öÈžãí¤ÏÓÐih§wiqÓBª.P¯C a‚ËV›DŪØ&\ݯÌB]ì+ó‘÷ }üŒOÇH)ÔÁÂWˆcÚ'¬�F[П+!åŽí—“²=)w§ŸiÙøMŽü¸Ì°�ùñ^ºÝä c ¡¡F C‰ÄßÙ'DºOëëÙ6Ûý®"p™xb�«È΃ö ‘ÇRÁÊȇþÁ]äs1V¯#�·½’%`¿�mê ;žzl·„u3D‰…$ÌŸ£nÞs9bê@¬*¢þ‚ÿ4ë0`€ýJSÓq6*Ÿï.x R žL(¹ði�„(+ë%"ö g®åçÇ<ÀûYÆ] i�'š¥²ZN#,&Ü75�¸%ÕⳚf‹zܯ —É«ó‰ `€U#ä̾L°B5Ôõ�N—¸N AÐÌêgÜ­Ù¿Úh4^Îp*-V3@Ì“~îÝþÜvþë<›½Ø¡ö^Ötx&Ú­²Öó�a?šÛ*Cm?�óõùaìïÌs‘ïw™“ÓŽéËJzÞ«�vÂu$ÿòù9ò»Æ ½^LµÜ�K¹‘©÷kyrž+…ç òªÍõÈâ4Ù-GW#?3ŠüÝ+ä{l‘×* ùÐÍ!�u:ŒBÝ%^¦ƒÖÈãb¸j¯²q1g MšWõß°m¦s¬ùÄ0vŠxÕ–�ïwîèåÿvM!úõ½ì§šÔ›YXüë3,\‚œ}¦­)�Çò«žs·:qW$¿›ƒÚAóM¦óg‰îÐTC¶ŠË¶wØïy÷ ©ó´‰;êã]¾`ÕŽ«°”všX]Õ{Êò2s§Ö“c®é=¥ˆðö&ÝŒÙ`«ä–—Œ¡Á`€ýJ»æúœŠBº’6I°ãÍ»þ£ãµ÷©{3¸;ùß¾´è-îGá¿©å] Øá²½òäˆtÊiº¾Vj»�¢òU\z£êàLÜ±Ú -Ÿœ/ͧ„Ë¿·ìpÙ`»óåMõ mûçÔ³°ì &åݰw NØôZeù7ãQײDPì¯ZÄ ‡]]¦6‰d:D¯è¤EW˜é(…g]/Áã‚+ϸ�ã2†%€vج™à–³]iܹ¹»lÕÍ~|ŠÃô<ù÷LS¾©T;[ž èa”É t@^ÇO+‘Î$]å3*]0?.—b|Ð:yam©ùÅ™dº¼Ü;|‘7ªÐ"”ˆ)¥.çm’tó.Nñ˜hÌï¬ãÏ~»Žwùz6x½’hÚˆ9DR¿S°3ŽŸqÐ:y,ÿë³U/¶>á­lÿ³o\RhÞbÕ`*ÍC½b@ aàogåº2!a`›šn„¿"“µ¸àaRg¢œÅ¬�QÒ’™tfF±Š<Ïí9?þ�°òqÀþ~–11ì÷4®ݔԌ"jÉ5Úem ¯I-äÕåØå®ª×ºâ�F^¡¼lÏûuf_cç’Ëǵ¢ë:+—ýÊ0£[œ—–7r7÷²ú–Ýù•L¾�À—­5v<Œw‡=­;ÁÌ:þÌ^–˜+Íf¹�ßÂ’“R›îJ¤:ãEæp À¿a°Z°[ËûÎ'”T+©ËöÙŒŽÓ ý•ç‰ ˆEß+2�/I® ON³™{M"Ï�9-V*™Íd7G/X‡4F>[K”†9m$o5¤^‰ßà+kA©¤ÒÊá:ÉÖ bÂUžãfCý÷90ï·sàPÒ/c¡X ¸`7o>ŽWãÒs rÐy,ßûÎ2`¿�å�ÇAÁ³¡ÒY#b[‹ oá=ŸÌ0¢»fuµEuȼze eߺVv4M8ÞWk·ÊžºÔ•9òr ºOìÀõ!©érÂl˜®kÊHºÂе%»ÉôNÀ~ëoµ÷ÁºIçÅEç(Ìó ¿„QŸ1 �~—ìEEIüøCñBÛ.áÙZ`€6»¯\«ülDÚš·iá1N†…pCÜ{¢‰MëжŸž»àG´Ú€ö#Ó˜ì~†¦½{Û™ Ìøjp¬›Þ›¶”L"†’!�wXÊØ´k�/ìºtv4�ã3ìeàG‚»¥[ÄÈ×’ù6ù1ˆ îÄúÒŒÃ].Ê{EÕ¼þ”V`Õ§-Ȱè˜% 7£˜ ‹Å½Ãº²–úh&œ7ÊØfŠð Ï�hñGË5Ø€.{Êo†¥•hÑxŽ›“TæÚTŒ¦`tAÖ iÛìU±ˆ~Ï{ÔOQ]oИv¸ÌB]*¸†.k-ùpù:†Ö`jDJûC'·ÀÝÏoØÁ”heqX·Lßös¬’ˆŒÐm'3„ƜȆü¦í.ÁØaº‡ë0Yb"nÏù§¼5¶�(i³œ„�„qÌÈ{ûð¼u»ëfÌŒ�¹{ãÊDí #¿7¡ìùD$x Ëùù€Õ®ó¨¶ ß j7?ŸÂæLvùU5VÔwž�Bzwúë{'Y;-Jã;@ðG»+[쯷ÚFËÏxO0ÀÖàÑ�r팪*Ũ>¹£wõdè†xùóþˆl&�”QdAþì8Q*`‡ß>Êæ�‰²Om»ßo‰«!ÍdçgH},´ªÛV@Gùá˜7Ä-¥½0ÀþªAÆ„ã“î†�?#~yª™ð´†ÎÚÈCæn‹7ܱæ©9Q `€Ó” ²lóxsî9H`rIÚ‘ƒÒX´f�=|r�T>¥Š0s}Æ€ÔÙ0À›á¾¤ÒxG$MM¸´ðVÜ6 B땎 ÔÆ¸ñqr´¯´ Gr,Ÿ”†¸0ÀŽ‚qWéʤK5 ç”NOU¿�+R½Ie|›“XÏr½UPM 3‘�º#åm�b^5–4Š{ôZ (¾W“Üô‘÷ú,Ül×�긣œv[°'9hŸùûÒe¡4V¦©X†îj>n6� +ú„áÝçu½Uøò¬É ¿ó ÷·û ­T_ÆbL*Õ²ùN†1ødÊ*«1ÁAû Èc9L÷hE«ÐejĵþüP„ cÛÚ I{€ƒªœƒ¢\z:æÑmzkü!�(PfI)`¿ÎæëÄ|Òì5æµ7Ï µ^´Ã Ÿ-|ßgM(^Ôòñ÷:ʱz ØÏ1§ùhWg&Ó)†äûäO gÄQ* ®¬$‰ áÚÔ’äÕ|Úuô=ôÇé °ÃfÛ: k× š6Æ.A€‚s)Ës-)iÙ}f'§QqO�ÛuhÒB:Ëû} ·ü=ËÊÉ!éèZÑÅsw“{ ñªÜÔ•íºÔƒè/n‚¢ì³–| qìWÚdÌ"nïõÂ1½.�ÁŽ¢*Íɸð©Ó2 ¶Â¾†ë}^F€vŒâýŠ|LÊ×KÙ­:ZëþF`¯]ú“òw æÏ‚á¸e€ö³,Ô)Ÿ.¸4LJs‰A4�1ûMhˆ(&]›&?IÒ†'ízk¹±ùJdW?`€!ŒçDbÔçAÝÀ±Ódj”|jÏKþÁaqÏý�ÿåYo—œ¹„"cÀûYv¥1S¼¿šUÒ±íŒVô@¦Â¸ �7Cn’²`ýÖ¸Ý�7‰íƒC<°_g"fåx‚`˜sÍ¢z’¹õuF« TP#ÙtÜ´Žb…M~¾/j—»`¿� ÂýùT·çš? ͼ·µœdâŠê¦ì09í2Y…í ª#ƒ¶D,ÒÃ<ŠFΤlJ9Êòr dâmk•³éÜ?ËRùúmuZBød€•³:|Cé­Y³ã?:ËR3»êtÙzýŸ¿“Ìöm½bhÜÈ­&þ¹…¹ýd‡°ö;^°t~éüM%"úW½‹dÝ5ÿÞméÛÒQ˜[Ø[Øü*ˆ†æêýé) rz?b�¿ƒHï–á—ÖfÊõ÷‹¬ØƒîAÙ¶ÜC906ïwÒ˜½x¿†®†/½Ð”€ÁÆ=k­î­îñR#ƒ�Á”,V±ö#\„|„|Ô�Ñ�IÓ©ûqËË‹æ[ïþsÞ÷(=È"½”ü� vüvò—XÎÄ„ºT­€íÿ•ülLØŽ"°,z×ltq´4Oÿý^'e™¬Å °ßÛîFÌÙ>ŠÔ6�X!î6¼«˜žYOu¡H>ä®aõæ%…qÍ™Ýh8QbëcSÀþ~¦I"Q�î‹RùèìÝePÕÝÚàM‡t—¡Ò]’"¥HHH—4ˆ”´(ˆ H¸i)Á RÒÒ * Ò  H JžÃ¨ó÷á9¼3ž£[]óûv�̬qö‡ußk­ÿÝ¢Ô„‰r'¨øè:wÃX‘'þ[v†'ÎúÖYR¥\½�uÝÀ€!šÍ“¦ºµ:�Q´Ù@̲-7'&j„úN_�*TÀNÄâLR¨X_ ™¯Å}øZ2IGnj(‰ŽMaÇ÷%úaµ$üŒ7 ú±qà 8[Œ~n$¡Î#~öh¡—�èí¥R_&yñüÐBȵ$ÿ·µdЗ·Å˜¹óR,Vظ+”™o›«%áׂHïºÿ4{eBs{® ó/'ÏîþñA?�=«�“ ³Ìf_Cž7�¨qâ[ë¡ûóÌ@7°Á:Ýöƒ¯©{b�‡³ÈÜ3VU1õl¬…˜Eì<a*VVÁË7ì€!–9³íÅbŸ©xA&€ž8O‡Kg°(;‘‚lšÀá/_š‰¥6;­2àýºbYƒîžËÐ�KÂõç;êÝšŒÜe*¼®7jî0vN飿óÊ)›töûØã¾%‹u^;¤=w/NõÀ(þð¿Úõ‚d=ËxÓ¥«U$8•Ûë_öçYIcè–*Mb€âÐM¼¦7‘|} P–š}¹Q=§²WqQUå‡#\}��C4 ÍLa:—m¦^÷FZ–ŒùÛÏš•ý»ØUšž q–á0ñfƒîU¢›±(K«Ûð}�Tͬ׳e�®EG"“_oŒÿm-þµ/?ËU²ÌÖ¯ÑyTqÞÅ_WbsÃc[0ö¶Vÿ2‘Í û“S&Hô¸¿í 0™ÉöÂ4Ú ×ü½rõCÕEFIzµÃúðkù«„j°=‹/žæû|YÞ¢ï}Y÷%`À~Û|#° ¦3Z‘¢Êe}Ž�þF±‚Á´ò yž�d@Ø%¡´‚â^`ˆo«Ô Tú Éh50©.:Ùˆ“k%XÅ´/éîâ‘Aî¶qEöÆZ?öclIzi©‡wºÙ»s“A‡4ÅìYY3óC‡‚jmiã;ï P½)oŠ8ÂðM€û;ÛÆBí³pgJñ‚Rù2fû}›({DúŽÇïbÊóŸÔiL)< £Ù:ž¤];¥aÒ¿g…é ‹MáÏÏâjˆ–Ì�=lϺÆx’ÒÓc+¿]‡ oëfgù³jJwJšna3~´Ž‹å^çSt ! Ïy:!ÕM²qnŸس ~»g�'þ¼–ªf'“1ªËÉÔÒé-þ†'‚۳¯‘f8ÿ›ø`)`’l„‰"(l”óD¡Qß2·òJr?–*L¢Ï~Êg%ðZ:fX°_Óî2žÐ}Ð…M?¨.D 3ÒÝVj¹?•o*ç•ÜÈ}uêd³ ÔéH¾Ò°?ÏNUöŸ 3ÙÊã gÔ3n9Cí')L={ëC(’r)ò9��!tK`Àö­Ý ëù«j*§ }(Õ˜è`€¯dó‰ š�Jv&i†Ñú‹’ý¦‘> ö¿0iÕ#+‰›ÏÏX�P½¯Ç »¹¤BµÞ–”`_£�V^Ä­À% ö{Ûè N:ÁJ?¾EÖE\â½Ç¯R_^NØ‚ÑÅ �d.gŽU!n7'æ'UÌìWµ÷“qž§Üì_9È œ&O%¨©n€4�ô�ÆN‚*uolóB粇¯Ó0£ö¿0êÄ%õ9ñVš.ql¼n{äñOñ¶Óæih5´Óº‚´xŽšW�¡^³lß„–l>U«b›pu¿0kus¬Ì‡ï6ùÝ6b‰–V¨ƒ…/GÖ'¬�A_ÐWBÊ3Ö//mLþ N?ã’ñdŽÂ„숃z/ínr …1…ðp“†áéûÄô …àæi}9ÛfÛ¤ãæ*¢g(“HèqýÀyXŸ~-¬'øÑ>xŠîcõ:Ó:ðxÓ�·öûØG]çã�Œ­aÝô‘â÷âçOQ?ßsC½gêD¬Ç0‘-ªÞ(ÀÂ: ØÏ45W£òùî‚W•à‘éÁ’3Ÿ†Hˆ‚°¢‘Æ�˜#bsæZ¿Æá\ÏìGO� ¤AžX¦ÊJ=C*aÉá–„©éÔ5é¿•T{dôÛ½Œ>u˜�Ý€ûUmœ�3ëÁ2Õp×Z]â:Áx!3›1[³ðR“ÑD9=·•Œxuô1oÚ©7_÷¶ó_öÙìÅNµw2gÂ3P®•µJ5…ýÝÞVÉØÊnÿßã|ù^öû\øù.ïäµ£û2“žöê£qÍ¿ ~ÿ6¢×‹©–;p.ú0¤–7çéùð\!>µw=rø�ÍKQÕðwFá¿S?Ǿ¦P�̇Æ_ö^£Å(Ô]äc<¬¦€_ÿcÃG•刳)8ã(2|’ÈŸøGì3\c,¦F°û�$ª6íü˜Ñ+ðmM!öåm�KÍC¯L,�µYf.!Î>ÓÃj øµü¬{É6Gn‰æwS`P;]œÌpÝ9ÝúÐ�­â‚ýMö;¾=(ê¼mÎúxš"—�û^CWa.í4±¹¤—Íü,c§ö:ǻ淔÷D¶Æ1ig͆Z%7}d †�û™¦æþ”ŠB¦òh’PÇä›þY#ôZ‚‚êÞtžN�WÏ,{‹û‘¼´|‹�!–í•'G¤QÎÐöµR;¬‹)Tqé�©k0dàŽ×žQlüäzn>-0\á­-0IJ¡v× Õƒ´ŸRÏÁ²‚š!d”·ÂÞ(º`wÐi•�ø‡¬´š©(Š Ø÷ZÄ�·C]†6/‰dš¹^Ñ1Ë®°Û8¤câ´œu½� rl®Ç®OÈ–†höœàš%“Ciì;òÓäžrU^ý¼øˆtŸü »(?øñ|í\=Ãt`Ï ùÑtA!'ø:~æ<élÒ%~£Ò5A tùãÃêxø>ÂêâóFîdÚ¼Ü|ÑIU«"¤ˆ×ç»ü\·HÒ,º8%¢£0¨ãO~[Ç»}9¼RI´fÕ„9LR¿]°=�Ÿ~X¿–ÿöÙª[ŸÈf–AÀÉI·”£®±j0–æ!_ƒ0 ¢ �Ð ´³ò kN‰GضosÂ3Mƒ/ÈäÎx›Ô™(g2iGa”´d$qÏ*U‘çy<ÀQFöçYúÔÈíìØ4SR3ŠÈE÷¨ÛH«ãxÍj÷^\ˆYêªz©+ÑiäÊÇöØÏ3ÇûX·\~®ef]÷9ù¬†¡½Ø|G‰q¡»¹Ô7¤T2ø7F�!–­6u<ˆ‘ð„e×f�xâ(GÌ•j·Ô `iÍI©M« =�vâ,S80Ä7 VKv[ÿùø’êóêr}vctÂßsŸ¨€Xì ±=¹ñ¢äŠÈô k‘…Ï4ü˜ã®årÅÂ{&3¹�GQ ¶á‡í�áÏÖd`.É› 5ã6øËZ�*©´r¸Žñ‡5¨˜DÖ3¼ãaCþ÷=0ß·{௳s x�ÄÎSZÓ^…’Â8FO›�ƒþÏ?õû6!ôåÌð‘òþ׸×M¨tÇ׬à[Æ[ÆwYªÌM¬iÁ:Ý•÷ï�þ3V8PQ¨h�Ò~‚9¡û9þl?ÑD7é)¤ös³‰ùsX.<øšâuu¹±Mé^É¢¯Y(ƒ ~ÍŽêÖÕÏqRPßê®w ÞOÇÙŽ³æ�û�ƒ#mÛ•ýšõÆ——µ53)ãÙÿbcâE…‹�ÿ9¸â �®î§²âs`Õ*ŸãäE{®~øî¼DÄÿå<;QE0Õ~¶&–[–[4Éûæ‚iƒûþ?iñhñ·Á—Å— ‚Â'ÒÊÙÊÙ®¡î¾{j÷TêÙ TøÛ—ÜÏüxüø¯¿§PÒÏ?'ŠåÀ³�ósáx5n=ÇÍ«©àÛ}gØïc9ä±V s¡2™£â‚S›ïé_ ö|2ÈêšÓÕÓ!óé•-”{å^ ì×4‘8­Ý*GêRw&è…4¿˜�+ÃÒ3å*„Y0]÷”Ñ4ÅáË‹Ói�À~ëouôÃò¢Šõá¢uá‚ù‡ŸÃ¨O�A»EÖXQ7ñ@¢Ð¾Kd®Ö0D³åÒÕà'£2¶|Í �pÒ-Eb5‰¦>Úv@¶ú4ð<…ÖQŽìïLcºû Šöî W‚2ãKÁ1>lz“m)�Œ¢†’÷šn2—± j×¢/ìºuû5í(ÆìÙÝu‚[¥›EË×’ù7ߦÚŽñ§™t‹?«àYóòSj0`ßk„3–dX´L’…ï#™î�ˆÇ¾ÁÒ\}˜8Îil÷šð1ïÕ(‰Ä¥l`ˆeÙ\qfXZ –M§x8Ie/¿Ž¾(U�9KÚ6wI<¢ÿúêld÷G4ÀË,Í©K…VÑä ­J>\¸B„¡5ô0"¥ý�‹ÇÝÝ�IvJ”²X¬k¦¯€ý«$"#ôX‰¼GcAdGîe¿K0ŽHs¸Ép{¶É?孲݋”1ˉ_'Œe‚?kØ�å­9\1c:Ñ™»7¡LtØYü;åë�Eƒº\Ÿ˜QíºŽiËò/Ó#w ð+~…É-½¨ÆŠ<à¾�0Ü[ü/ïfޱvZ–Æu@w—7Ù_nÖ†_Ë�xw ؾõzw ]æVU¥Ó'wö­žÝ�È$Ú‘Å‘6‚4Л>A'z ñm].��h!“ðø–gHKl�(i»}’Ø#áݶZʨ¾æ�HííÀ€}¯™�‹Ä%Ý!, “:#ΆNÈâG&�®³: ñ–½Õâ;è\“mA”I د`OY·yOž¼>D`rNÆ™ƒÒX¬f�=|z�T!¥Š0cmÖ€ÔÕ0D3ÜgToˆd¨ ^IØGšõ‰g€ÞÕÆ¸º>=VŒWZÐ#9žOJCÜ د`K�û[õ¤:žH, Ž$‡õà¿7Ò!SJh“núËÐSÍÏÃÉ®)~YŸ0¼[J×W…?Ï–¬ð€;�<ßöZ©>¯Å˜TºåãÙÁÇ–UY� ë3À¯‘æ²üŠV¡ËØ,„k»ó@” cËÕªÓ<õ>²r’r)Ktâ :[üa�HHFI)°Ÿgóuâ~©ŽóZ�šˆgQZÏ:à1ˆœ,|ÛgK(QÔñ ðAeαy ìǘË|”;�+£ékúäòÇ…³HšËIâøvµ$y5Ÿv�½!pú€C4ÛÒiX½\м1~Îê>$8—²<ךò({â;éÄQÏk†všÔ{�åÀ~Ã-˼|lX&j鍨ûS·’{ÌãTy¨+Ûu© †Ð½ ‘Ž™‹þ…¸À€ýL›Ž~O‹ÛÌw¥…p\¯KcèH„·³˜JÄódÜÁ×,² ö"þ†k}>–FÀ€ý Fñö E�¢>&e�û¹¬‚V­µ#Ÿ]ºA“òÏÓŠL;Bá¸eÀ€ý( uɧ . “¾¸H/–v"k2ôž8$:M›&?IÒŽ7õJk¹±Å6´«°}ã=’¹3¤{wœ…cƒLíAÃy¿Z)É¿8 "îxN\˜óÅqË™•�/2ìG™fS†D�UfIÇ–+JÑ}Ù ã‚6¾tùi óÛWÆí†|Ilœâ¬p€ý<5+wÂê`€¹Ö¼WO²°½r¦Ò„C6;££”Ca—Ÿï�Üåiì÷±¡ÁÛÎüª[ïžž}ko=ÍÈÙMÙaÂâ6]‰í$¦#‹²H,ÚÃü�œQÙ”:ÊülbâaÕÖ*o× ®æ—Fc.ª~c¼GL®òc1ñaçjðßÕeí;îx;lÇŽƒ¨’ÛÚíl$kE×m­‡+£Æ—¯o% CH ˜¥Åûí¹Z î—û»/§Þn]Ù»ÓëüVÒý°s5øµ Òÿýïlrµó—F‡ÅhÈû±ÛLq‰“[-sWé“– ¼C&q:OÍNÅqÌ~¼¾ ØŸgEjMÕ([æÊzÿ`ï¾£©ðÿ?€_+#{¯2*„Ìk“ddfdËÌÞ+³!¤2²eEÙd”‘ÈÈÌÞDÑ"dþ>~Õù}»_}ýÎù|¾uÕûýüãžóp�û¾Ç9×ûýºïq�«ÝXm {­¬&ëåbÜAhym„6V«D¦�¦ °ƒ`m“æ�8uŒî¸T—gØÒ m«‹ôO7œ)Ë×}»ÓNQ®’Þì� ì÷6¿ð÷ö‰Zzg‰:õýÒ2ŸSJËÝõÓ¯Z“‘Ó˜ÙŽê'Lhyh ìÏ3 â3…iþHO›ê1P‚‚KެpÔ�{â½e¥ÏsÖµÌ>[ÆÞý¢¶0D3Iª[K Óù++ˆIŽùúØX5ÿ^çª{ FðØ šIÕ"…gsÇ�ú˜ÝƒŸK&iKO $ѲÈmùÈP0¢Úo. Ç:ÝȨþìS ¾nÄ!ÎC¾öh!6‡/î¤R]{)¦q~`îÎsIè÷sÉà¯{A1ragO†[`©™á|¤Èz[¿ß\¾/ˆ´÷O³7FÔ7g;0Ž:y¾ãèí÷UÛ±ØâK�»ÿè$¬?ç*2̢†gyØŸgzª8�u–ÖŸ|Œý[»<œg_2+ «æ`ÎÅÌcå»P23óÚ\·†XæÌ²‹%UÙDÊs(F‹C«7/9–‚lœpÊ_¶, Se4ýŒÚ�>¯©"`ˆeu:;.ACæ+�[ª�ê åJ\ø®×«éƒÚ'tQ ¸¤Ž�» ôû}ìQς٠—·-ÒŽû6ý9•À(hØÑÖ‹Á’ žå\âUJ¢l �ìuí€ýyVú"dC™:1@~ànýt$wOÀ}=”…Tωœ%lyTeÙÁpWod`ÀÍn„ e¥0Ê䘨ÖN‹K’2=dgùUweÿ.v™ºkLää`¨Hƒ^çá�X”…¥Møº@ªzöÔLù ×âÑÉS«£?œ‹« ÀßåŽ*VníûÂyXæâ¯#º¾ê±É{Sót‘ÐêkÞi#¤=êßט¾ÞÉÖd}ÇôƒbÕåy1:•ýêð}9ZJÙßšÍOŸîÓ¸(kÖó¡¼ó0`Á¶x§y£愵gB*S”Ù-eè®—ÈéM*ö“Õáò‹„^"æO+,醸¶DEO©›�ŒV�~¶N��Ö_2œo¹³„æ5í-\RÈ­ÀWì‘ÝñE–O€ý[_Xèâšlðj_§×&I1yYÅÄôÀ¡°JKÜ0胪ŠAÇt<#`À~d›˜¨=fîï�É›Ì(m0ZïYEÙ#Ò¹ ¿‹)Â>«R“{ê%F³´å¥]=­fô ~Ìš®ËS"<�g›ÁQ*�=·ß˜u™%��ÂÓc£ U?wãF{ÅË* w êN(Z›FÅ•ó)Ú�;ô�œí�ªz3É8·Ï{ŒYy¿³Æ}é˳'£J›d*ñŒfýÁû�Yáû‚Hw8ÿ ûdÎc”l€�Â+`ü8Oî…®yîS»ä^JLåtÑû ï��W30B �L»ÅpBç~]¿*?Eº�ΦÜ@ó½‰cé+É/8.Oð5XE8ÅSöçÙé§=�Ç'ûC�6òO †1\4l–¢ò šñû‚¤XI‚,ã±:pè¤90`»Öêß—Ý(eQEé´ªA9"Ôà#Öp"˜zMÁÖ(M?ZW£8Ùwé0`ÿ §W>ü1q½QÊŒ˜òÃstÚ Ú鍿›bgûX—é¢çq*qCF�ýÞ6Ü���ÿ±Ï, S‡hçÑ›Ô×6 é´qü|LL±JD­¦DPù`Àª}�ó<ífÿÆA–ç Y*~õ3�:HýPϬ¤…ÎÕM®ˆÙœÁkÔL¨À€ý7Œ*ñzéóÇñê.q,}\n;dñOp7Ó`Ô4jZiÁšœGLŸIQ-[¶kü Vk„•%ÊXFì�M&u!nŽO àë„õ¾7 NF‹+öÕ¦‡-EïW'¬y‡4:§û¾”„3f¤WVÜþ˜¬v/Âáøc¹1É!³CÝ4ÛÉÕä†äƒõjúgîµíQ'䇻ÿèëwÛ,ë´ìÅtôå¢ ]îBŸØö«Â÷¥’ùí“§ÐV f·3�§íyK`¿�­é:hÐo™ÞI)r7všªqÇ õ®±ÑEú±!å°°<'™‡€û•¦¢íjPë,|Qº=4™Â[*õy€˜03iÔ€)<æ[®å6ÛJ>0`?Ë8 yÅôò…³”>>§O%("Ø56ž¸*Þìû1ÕùÐÍÂnïZŒGnÀ€T%`˾€¿H9Øñ‰F‡¨–7žßÄêgÜ…ØÛ©Þ`¬‚ŽÃBB¤*º�ˆ+íôô·±-ìë8›µÄ©&(ë]X&ÊÕò–³õ¡?Û*ZØî>ûËu¬=ƹð÷q¼—ÕŠîÉJzÒ­‹rØ}¸à2ü÷çð{C!»1Trûdr#Ü©ázüä|X.?·Êû.i¼À‡…¨*ø5£ðçÁß;úí½š}¯&Ý!OVŠ+õèš5!u%?z¯âŽ&†ÎvŽ_MŒi�Üií ¹.Ù[[ؚк˜8:YØÙÒr°ñ²q°A@;��}w†·;½cs±³æààcáààgÛý³þs¯ÁñWã…Bÿ÷ñ¯öý#7„“‹ Ê åâæãáƒppróòqBh9þ¹.ü¸]vr6t¤¥…8ÚÙ9ÿ§çí÷óÚ¾}(}ýüjá,áÎUk/ZÅd®É+›2ýÑg�ŠÉ%— Ö—Ðÿú±Ìïc½ƒgÇñÍôùoðR¹ü-˜�|�|�8ñR÷Þ(1�O%yü{”ƒ”ƒM¾}- ;·rÏÍÝ|ìÜ�Êíþ}»±?*õ%󧘾%ǾZ�?�9MÜMÖó-yÞØßr·¢ù%vÖŠLŸç^Cwó6ömlqÁnÿj¯ý2ü¿%òp™j™jSOSO´PHö�³f´f„[“þð?§í(Éu6ÙÝL{|I¼¹˜Tì— oÆÀòX³l>Sý_N䤥Û�K­ñ’ñRP­¯-ãó¦ÿO$·$·™£<¢[·õßã¾nžïëUÂ_Ïhèr©~p% “gy†‰�Ÿ­Çx¿z|_~Õž«Ã~B�äèTNã™®[g:Cè³T^°¿ÁäÓ…¢ÊõJÔYW]а¿k‡”˜ÊÚ�¬.]Ìaz™ î¹vê}Ã[Š€»‚£43&-bëÞ’úzƒÀ€ýJSuBI.ñôHÛøtïŒÁ¡üÂ;TÝœí¡šMÏn€�Rø…NË»`µÑj–ŸãY‹CVXÊ’BìïZø€—Cm¦±XšéÅâcæ¡7±IFÈEhØj»ñ>¶º»2&©_ ¢Y#þUsF‡²Ø÷dgÈ<¥Ÿ]éåÂ#G¤½J{™†lÿÚùšÙçô“�]'d‡3¨yù�àçñïΓÌ$]‚”-óš’M1Üo_£^šo|Á‘L“ŸÛç€'4®lQŒ>u¾Ã×uƒ8ͬƒM4: c�y<ß÷óx·¯ëNìž.[Ôc ?ß,ÜÃËØoß—zÝŽ7K�àz¶^߸[Ê‘ûW™ÕÊò‘¯ByQúˆéxZ™¹Ô'D­€ÛµY�wõýM¤ÒŽ}R^FµFŠYŒZQè¥Í™IÁ3 ÏÈò=žðà *öçYÆÄÐÍœØR4còÈy÷¨›HK£¸ *w›.Ä,t<{­#ÚnàÂÍ’ì×™cµ}¬[.”}‘IÇ}V6»I?½K”ûNÄvîÕu‡³sJ™ÐÕa`ˆeKõm÷cD=ÓsjóÜfËs”&bOµ]¨ã1·d£Ð¢Q�8ƒvâc:0Ä7tfsVk9X|iÕyUéÛ‘1Z�¿³Vµ�HxšH�ŽÌp^ì£àä;æb3ïIø1ð©[æ‹•sM¤WFÍY‡í7†_·‘ ‘¼^÷@=nZÞŒô”Ró1û1hh�’Oäsú÷œ,Èÿ>æþ~ Bò¥/ä‹�ç`f³a¸Õn]Çø=í·10|_ö:sØïc�Éb-èWgC$²†Ex'Ö?ðÒ½éïúl‚Õ1«£%¬MêÝ-Y$ýÆý)°ƒi‚qþšÛÏ©ÊÜ#.T£ùÆôÙ Š¿«P"ÈN×qON“´™w˜LköûXo‹£/æÊXovgAötÿ0ôç}h~¤/*KãÆî‹ÙwÎÖ˜†hvG±,FùvÞ°„5wÃÜCì sÁºXuG‰5ë6ÈF@�®'ÿ ÊÜ‘ÃÀ€ýÈÔ&;óP´¶¯»â—^ºãÍrqüUÊ !}±»õ7˜ÊYxµjÍm»u;˜v}+ýå­|¿²õ£Ñ²·kHýnÒ‰ lÆøS�õ»ÅŸ“óެ~ý9µ°¿kïÌI1iÅŠV?D2Þ‰�ÆT_z�8Æih;Eðˆër”hâB50IJö8LÍóúÓœl$’6SÑüQ…Y3$¯f/‰„÷^ ¢ÊAv¸Jm ±ÌÜ”ªŒ MZߢôÓ;BtÍ�á)­÷]D²„œ®M²ÏùK,w#%LǯÄ2Â׆·‡Òó—ìLO´çîŒ)îW†ß“§xí‘Ðí¾×'}&”Û®#Z’ÐE:äN¨üÚpºôBSfäë#àÎåøºÏás»yY\¤?q{q�õõÆ~µaø¾üŒ=˜À€íZW W’ ‡²2ùˆ.™³OÕdȪhÙ“Þðlˆ¸ADa�iÞ!ÂÀßV¤óé 粎oxÞiŽ­"Édå¡K~(ðQçU! Å'TS�@¤ÖV`Àþ®™Ž Æ%…ž=žN”q¼‘à¤/)O†öÒ0ÄKÒ¯Ù§ß¹:ÇŒ0‹°ƒ`g-_y�óõ_À7’‘p>Ea(\½ˆŽË6¹C"—òŒ syF�ÄÕ0D3œ—”jÓ„TósoDí#M�xÇÓGÜÒB¿¼29R‚[VØ%6Z@BMÔ ØA0Îg:’iâuh¹ze寧šÆb‹•G®P^g#Rõ\náWÑÄH`¥jKù§í–ˆwµ%µÂ-~¡&’ÿ¥$]ø:C�¹Ç½�ç}$ÚžH'=æ‰÷«3ÀŸ=Ô&QBh•aüSßSÅ×Ãɶ>~Q— ¬ó¬Ž�4ßš´h�5hœß×Z(¿ôÅ�D¼ymZòÄícu‹Ê̆øûÕàû‚Hw4D«ÔahàDZ޺/D‰¾ájÑnšzYñ1’bÙÉèÄë´Öxƒj‘�ÌÒ2`¿Î`µ"¾©Žj0͇õD3(-çpéùŠÞöXˆw@|‡¼Qé[½ösÌåŽïÊ`9ZÛ@|™j ˜‘ÕH)Sªp/À°vSîâ„Öìð aÒËG¦€ý~¦E,^œˆP�ܦ،Žt;¬ìÄ:gÓX©'Þ;6úÇÎúÖ¹ç+8zŸ5@ì¸Ù<ÉC·—!Ncäí6 ³<Ë­‰‰:�Ãîé ó@Žæ³²�i@Éå‰#õ³¸ßK¦èÈN¥Ð²*|ö“£`BC=ª—„?�nlÜðö™mF7âpç{”ð«Xz»©|žKh) -Ü=¤—ä=ØK†}=[Œ^0þt”¦†Î Eλæ£zIøµ§sÝ¿›½1¡šëFÿÃÉs†³|Ð_c×êóÙ$…Ù§çón Λ€ÔØñ¬õ�ûýÌ@'¤É:Óö£Ÿi`Gr�‡³ÐÜsUõ<Œ…¸EÌBAJþ«7í;^æÌº�)Sõ‚”5yž‡Ö`Qz" Ñ4éL |E†Ú8D\ãî€÷ÛÀŽ—5éîº Ý±$Xoý¬Õdä¬TáÆw½YG›±kR¹ˆ[VñäkwÁAÀ~Ëî[²XçöµCØu÷b7\P óFþÑ¡&ÍèYÉ�)Y«"Æ®˜m¯ °ßÏÊŸ…o«R'_º…Û<ÃÓüÀi©Å�Ùs2oû"²ªüp”«/"`€7»!œ“Æ$—g¦Þ0-)MÊüˆƒõG½•ý«Øuêž ÑÓâ-ÐUÂ[ñHK«;ðs�‡š¹og+Ÿ¹–bŤ¾Ýÿf/¾?I�L[vÓʵ{,õ!KTÚú?óG½8ï¨+¶µá±Ãtù.ï2¡Í Ûãs&‡Ì8Θ¿¾ÉöÂ4Ö Çüƒrmºê"£�ÚQsøµüQN9ؑ˓Hñk]–·èûP ½`?ƒ}æŸæ/ˆè̆W¥©rXËÐÝ,S0˜R$kÂ�ޏB,�Q\Ö Øñ·U*zJý¤T”:Èù&Ú@騳kåe4¯hCqIA¡!í1½‰%ÖOû>¶$¹´ÔÃ=ÕâݵE¯C’fö¼ÌÌœîP\«-i|ûƒ²7Å-!Gž `€}Ëv0�û,Üß›’¿° P¾ŠÞqßlœîñøULyþ“:µ)¹§Ar,kçãŒç4LÚákVˆ>_™È$žñü,ކpùÜ…£jÖ5Ö�³žÛE:øY¸Û·ºž>¯¥p§ † šñ¢tj=õRJÓÝ¥oåêÕ6[H'¸}:¤få?X³&í­¥¦ÅÉdŒòj*•df[ !CØQ5+üZŽÓÎßÃ&>Zò™¤¡#ñ Z…å?Vx¦oYP}-µŸC"Ög?é»r#=¢°ŸÓBttcÒ ª P@Œtw†ÚîO™Êz¥>ã¼>y¶Å&Ú +Oq °ßÏÎU÷…œšŒ0Ù.<#ɨgÜ&Cå/!H5ð1A¹ŠQÎccõ´%`€Á¬#p ·Uƪ–ÒiC?šrLx0ØO¢…!ŒzSÑÎ$Ã0V_«4Õ á# `€ý?L’^k%y«UÆ‚˜òC#í­%Ȳ¥àŽÄù¶5ºXåEœ*ÂðqÀ~mÄÎÄ_édzcháíf¿yøêjÒ6„6Aà,óSæx¢s"^’‹E€ö³Ú‡× žçÜìß8Èó‰“=į«l5�ô‰c¦D+B7v¸£çò†}¨™‘ìÿaTÉ7Ëó­4]X¸ÝvÉŸàîdÌSÓhhgt‡]æ:a^#Cµf`0X²Ù$¬*SÅ4ှ0k ws¬.‚Ÿ6û �Ž•Th€D.Å5'¬ŸA_Ð_NÂ7Ö//iRþv?ã’ñë|… é Ô^š/©uäÆä‚Ã͆â÷;‰™ À½§õuo›u‹–“£”޾R,©Ç]ø#ûQsBøµT±0ð¢|ôþ\†ÑëLãÀåM«d دc›ºBΧ ZC t1¢÷çÏQµîº!ß3u"Ò£ŸÈV�Œ|Æwše0À~¤©é¸=�‡¿©Ü™Jã/—ù4DL†‹0nÄ—Í^`ý›}½0À¾—qóKŠä¨¬4Ò?$(!Ø35�¼!Ùæ¿òÐ5¨¸—Ñ·=Û 0À~V'`Ͻ„¿L9Üý‘F—¨�?QÀÌæ{¼­Ù?x¥Ùhâ)§•”hmìwƹÝS4ÿµÎf+sª¿�3™…t£òåùæˆoÕ¶ŠÆVv°ŸÇþz_æ!u.üû.ïåµcûrRžôê#a¹�]‡ß?‡? ÒëEW+�+ˆN¿[Ï�ÿD)²@€Gí}�,^H‹Ã¸þ›Qø{Šàß±…¿ãë]*¦£‰‹!—vdV"‡ÅQw|aüówè-¨<>4þœFÅýDPyŒì'›ËÕÈÕˆ±$òšf¹MC,8&ù¯ ŒŒæˆë†vC±ŸÀbŒ|–[Xæ5éÁˆÞ°Ä¥«éï…¢©v?öêYÃYÃ!‘Í^)8«:ûÓ|÷r?IU'šöâò¹qRL!Oòzòú»° ”¡”3ïÔïÇC§Òi€6@Ï­i7~;2š2šë×ÿsôdÇ5â`Y'ÛK u3ø¼ü^òã³çj�®ŠAiÿ¹ŠÄ�DXúÛe«e«}×–wÿpþo"6.6îxalwl÷&>¤¾ X XlNÁ°¿«|ÛŸÃnz0Dñ°p†•t•tÁ÷¨* ùðD­aï5´ÝEÆ£zTøÿ‡lÃG•å¨ iØãHR<ˆŸxGì³\ã,&G0ûÄj¶ìyó™ï`�*òõ\v�K]ºWßÚ,3‡{ŸéQ=*üZ~Ôwî6XÂEPr4*'­×Y®ŸÅ¡á醬U—ìo±ÝöëARçnsÖÇÕº `×PU˜+ºLl®èå1?ϚǮ÷9ó¾åEð=¡íqtšY³¡—[¾Ò†Àö#M3Âý %¹Tõ‰�Î×Óý³F¨õøÅw©z3¹ºøÞ<·ì-ëGàóºìWØñ²Ý§©Q34}/©ÖEj8ôÆÔ5è³pÆëe.¶ñr•›Ï‰Txg Øñ²¡×K›êaÚŽO¨æ ¹a- RŠ€ˆé‹.˜�´—+/ðm& *®æ\F °¿kQCÞ YÚÜÄæz¥'-»#‚°IÆÈEiØzñçÛøÄ¯OH–Øq³Vü–LñïÉÄÉþìÁ>Þíë^óµjÂ5«fôaâÆ�â� ¼Ì£úxøµü¯÷ê}Yû„¶r ‚ϾvK;ñà‹cE!â ?ÒÐ1_ · æ¤h” `€ÁlNp¦yð©¬ã€Œ·Iƒ‰r“6­¼-+%ŒsV±†¬Ðã Þ°�2*`¿ŸeNŽåÅ—£˜’˜‘Ç,ºƒƒVÇq[Ô·Ô]óJW¬ËÈ7œ‡õ1`?ÎëìãÝ x9–™uÝçäs_†£õbŠñœ ‰þRpI}Ëáü‚JïÆ(`ÇËV›;ĉyBò°øî°LðÓ½ìùd†îžÓÕÑ!õí•.‘}ã^ ØÏiB �—¿Ô8RU¸3E_ªCñ�¸6,9óT… ¢ëž6šqqøê¢ÃTF`¿Žõ¿tôÇð¢Œ÷å qâ€FÊ¡5fH¡�>«*O˜x Vbß-4Wo`ÇÍî*WÄ©Þy<*eËÓ²ð;ÓR¨)^Ó‘prÓ¶´ܧ�ë)°Ž´p 0À¾eSÐÇHÚ_nºâW_¹ç˪÷º=í£°¡Ä½æ[Ì•¬üÚõ¨ _ܺû9íÚgÈóÐuü€Š­?båïÔ“¶щíÄRO º%^Pð�©{õéa`€ý]#˜±$Å a’(ÙøÃtD4~Cs5=y6’'ÆØî-A6÷u°XòR&`ÇËò8Ì0.'Y6Ÿãb'‘¾ú6VK\œ3KÒ>wE4ªßç6U¢û£ j ÀŽ—YšSU¬¢ÈZ•¼t�íòPzTZÇ�Ð/Ÿ_³ÑS UÆcÜ0}3Ø÷±jBR�%l0ú=j B;2/û/øãÇé®ãdII8=;dŸ WYïÅH™å'®Ä3Áφ¿Œ@ ×®™11tìN(5†?‡£ì“-|g ÛõÉ€å×1miÞe:D(ïÅÍQˆìÒ‹ZŒ˜C¾�„;‹ÿõœÃI–.ËŠ„NÐ`ò—å-¶WÛG͆á×ò=Î]ÌzB¼;®rªª’�é“9ûÕN…oˆå�=é�ÊeIE7Ñ™>F%LìøÛºl!=áBÁ©mÏ»mñ Â$Yl|t)"�WtÛ‹i(>"û™{„ ttØß5óq¡„”Û%çOAˆò¢Oµœö'åËÔYyK´ù :×åYæØÏ`Zâ„ÖíÞ¯Ïú á›ÈI9Ÿ¡0©[FÃe‹œÚ%QH«!ÈZ›5 qu °ãf8Ï)5¦ ¥¨ÞˆÙǘŸðM¤�ÕF»¾>5V†[QÜ#1^DBMÔ `?ƒqÕèJgH6¡T̼­}1_ª:æEi|“�H×zí¥€Úeô$6ªÎ´ÿµ…ŠúÖYS+îÒâ_¦C¼’⡯?gè³ô¸¿Ý8@¢ã‰pÚcÁ‘ø¨9ü}#�R•áÔ!6™¦é†žjþNv͉Ëú‘Ðóº~*¼…¶¤%‡|ƒÆupÎð’ro-Æ$’m›ÓÒÿ`ï.ƒªÜŽÓÝ�‡P)I$¥»‘éC* "¡ „tÇvƒ´H‡¢HJl:%ÜH)yß=ÊÜÃ>z¹3罊úÌÿÛo`f}€™µÖóæ�ó&ðd¶˜eȸGþèÉ‚b�±öjºø0®c#IIç}w?„”œ~À;i¶£ß¼vµ´uk\ÞöBxeu‘%-gÚ'é-ÕÙYÆ}šìû]Õ€ý:†[=ǺzjøbÜ("­Øûó·3z­’ÔÎR×vP ¡>¿†ëš·ô0À~¤MÇ¿§ÃmåszE8nØ­5„íç.¦Ý–� ™e“¡Xr 2Yï÷·1 °ŸÁ(æd)”ñ1({½åóKÛõu×CLý÷é3iÌ«3}%•Xö„¢p«ì{Y„ÇcºðÊHi�e1SþdÄ}q„x�Íãt)GÞl§öj3ë]ĘîÀƒ/vjìÞ�ÁÝq¶3[dê)Í—/HýqÆ8úŽïdˆÆbŽWá‚Br™`€}/ÓnÉ•èµÍ«èÜñD.{ ScVúš/GašÂjÉaƬÄ/�cÃ-ɰg¢–ÕnxB�Œ`φ÷šéÖNLö5H-8dó‰óúÊ…Ž�!uûZöëØ$Ø�_mç]ÛÆðœ³Ý43wle§9›×tU,–›˜¾ ò2±h?ãg4rf ò˜‘ÖËæ>¶¯Û»àϽO~´¦¡Gp<’Àö”¿¤à¸sïaG‘!QmÕ‹>Ò¿¶}ú°þJ»�‡)¨›©›Ñ“‚ÛX—‘Uè³ÿ‡‡xB'@'`3–‡MЬ7ã°èóerÕXaq‡rP}Ž”¾sò°1ÒÓ8§q"9Ѷ‰Î  m(‚f�àJû9”qBœÊZçbXdYdY²º°ÄÄ.^M¼{Ø;QÎΕ}²}2šnÙogãkã¢@þŸË¼=¨°ëbÌçº;ͽjÐ?WíC§¨8“ûïJL„%Úa�Nɽ�{цiu?½Ï¦å¿)Ü>ÜžayâÊÄ• løÐOwôuôåËŒ(ooV&þµ@ÈÑ0%aÙÈP~¢üÿœ6D–`%ªys¼WL®öc9ñqÏiáïieï?í¹çx†¨–ÇÎëR,{Mw°nÖ‡Q³«7vRÑH�¿r7ïÑç´ ¸_Þª42·ãtp§Ï}NÊû¸ç´ðc9IÿË¿²É5B¯Œ‹Ñ…�`½¶xÈ-Nn»ÊSgDZ%ð‰Äí25'Õ™SÎãÏêûý¬ÌZ½¥yÇJÅð¦V—…Ö,?ô�I˜–‚Ÿ‡E7‘Ý�1úD½rùAº^Àû¬sÚ&·™Å�úÏ.Ъ™«cÖóm¦—Æ*KŒæº(«ÔÁ¯|0ûµívô;ç´=cÉUâ“ÛÊ ÜgT²eŠ÷o›Ô”WšÐYØ�ƒ¥¶?´ì÷3ÉRPbmÚ+å ä;aå´›<Íce¾øsœŒÅîFvù*¹ûž7õØI3(i¶W{¨ÛÅk{˛퉉¡¯�Óæƒ#à(b-Û„!–Ï—@`ý~-™®/75”NÏ¡¸ OÉ‚ŽvÜZþÎ@t†±q œ3;Ì�^$î#�ΨW± ²©o¼�Ò¹<´tï+kIþ£kɰ/ßcA/°EÛbiYã~ Ì›k9n- ?–“ô]÷ïf3æ4Á‹Ý¸ùÎó ŒCµl÷Î¥*¦–Ôº7è7û°“eÍCwFl7Ûö4{´™yªTy äæøQweÿ*ö'Mï„8Ûp¤x«qÏÑ­D䕵]ø}�líüÙ…ªçžeر³[ãß\‹î D„f‰Ge®zéˆäÛÆù¬ô£HU9>DU‚zHloùì &ëÞã_%²Ÿç,>oŽø•}ž£û¬_îd{i ×ê½J}–Ú2³ƒúqûðcù£‚ Ò‘Ï—Ìh[U°î_Õs0À~Û|+²$¦¿Q“©Æm'OÈp³\ÑxZBÞŒ'$y…DTZÞØÉ·5jF*£Ô Ôð…fcnú ™èsë˜åtoèïâ‘!Ü }ÍÛ—üÄî)`ßÇV¤WVzy§[ýº¶õI3-_Tű²f¹”ÖëI›ÝyoŒâGyKÄŒo`ß²]L”~kïw/­)U®bt<°�s>Içxü*¦ý¤IcAákœÏÑY º~^Ëü5üœl$P.6…o]ÀÕ­X¼tÜœu�#ô¥¯ÏÎã}‚\¼�[]Õ/ê)½)iz„-ùQ;uª¯]ÎÔG¸ÇØv¶ ¡¾ÅZ&ÉëÓW欂Gç¬ÉÄŸÇR×êf>Fu5ƒZ:çU� SØqsVø±œ¤;œ¿‡Mlؘg˜b Û†+>7²)ªuÊ ÂTKô;Où½žƒY ØÏiw™™ Rº± šB”`Sƒ]Å¡W¦[È]ËxÎóçÔ¹Vû7ìH|å1À~?;_Ûzzi¾SrF$ŠÙÐì•,u ”0õÂí�D•R$yŸ­!46ÀƒYGÐ`~›¬m=•Û–Q Õ˜($$@ª•)Œæ£²£9È$ÞH§,#pq0Àþ&ͨ†ý!m»MÖš„êý3tú[+úà!á]© ƒœë ñ*˸5¸Dã€ýÚ6 ÁÉ!ø0€o‡©ƒK|ðh&ûÍÕÔ0}’Ð9ÖjÖDUâ+b~R¥Ç€ö³ÚûÉ$ßó^Î3. ’äÙ uÂÍ-#ý’Xé1Ê=[»¼1‹Ã7hXQìaÔi7+ž&Ûºh{$q òz�'?ÅÛAiè´ô@Ýaºgi­êd©×m fB+ö‰jÊհ̹{^Z6Gx¹Ö>†ß'l 6b‹—VlG­Ç·OØ8�8¾dô®‚ôlÂØ€‚´ó)'œæ³ÉBÅ ™k´>ºýŒ 3 áá-É�Ä_Ù'‚»Oë˳mŽmzî2Æ*‰Ô^oÑ ®ãö áÇRÃÎÄ�ºá+ºWŽÙçNçrÖ�þ²`¿Ž}4q?ýÐbîaˆ¿Ÿ =OÝvà…rßÂ�Ø�q¢@T-*ê¹û`€ýHS×÷4­†ö”Î ¨†�Lg VÈ~"! ÃŒG7e�NxÄUd7‹ÃµY`ßËΖ J—ˆå©~xƘMX1B¸#aa1u]úUà‡lg$´àÒ>fÿ&ŒG^€ö³Ú8!W¾Á*Õp÷�q“`²�¥ý÷¸[sr¥Åt¢š�Çö¢x}ü 1/èüÛù-ôË<›³Ü­ñNÞ|T.òõªö -‘ßšÛ*›Ù:Â~çËyYX_™çÂßïòNA/¾?/ýiŸ2¶÷èã?៟Ê`؇¡^4(_“u¯‘·ðéå¨"!>õw½rø¡­.+qõðïŒÂŸS�-ü_ÍLtøs›1g¶|䊞*3wÆöÿýŽ_ðÑ‚ºÔëà³\úk$‡‘ W¯f2^H^HN‡õ B/Ç!”Émqìïml¤ÅcÄaÄ¡VÀ²Ð^]„Uá놭Q�,F‹”Ï©ú5Ç6 òšñšñóy†/i÷Dõ°H;*éÃÚ;ÍC?‡O½UNêÉ‚µÖ»ÖíkV}V}�grØ,Zxcxã�; Ûu¿]ýVý–ܵ&ÆÿÜÇ8Åy3rX�§ŸóR’ ùܾxõÀø¹–ò2è¿sÞ`6Ó8‹yROð‡ETÐûý,gj$¸ ±Õ‚Ô’"vÙ;.qm¯UýþK�„•îº7]¦þ|Å€ý8smpNô*âç^e5ð^TÈi�Þ‡%ÁGKŒ³_¤¡¹íraI5—k°“ek-�) ¾à‚&l�pö‰bW9bîlÇ•f;.J=:íIT¦K,Qè€�|Cg·átP ‚&WÔ_Ö”ëw› þ'ï§•‹½%Vf 7[–ú 2=Ï^fí? ?>s×fµfé=‹¥ÜÖø%‡¨ãæÀðÏjS/‚=¶2¶›³´“¶ø«^!ÖRérŸâ�lV5ˆ}Æøî,ÒßçÀ|GçÀ¤ŸÇB±z)Ôj½…×àÕ{Úê¸90üX¾vÎ2`¿Ž’'Ú2n-F\ÌœÚ~/È0éýd‰×½h '¦Oæß'óDnÆ»°ŸÓD’‚t÷ë\©+½Yb4P�†¥ç«U óÁÞ™£ ¥á«Ë.Ó .À~hw ļF•èÏMç. Š’G–3xõ6Ù󚊤‰‰'ÎÝ"‹�V€vÒìžJe‚ZxñèE¾Ö¥‡896"͉ڮDS:vBúµð|…6‘—h±ì[¦5ÝSŒ¬·Ó“ ÊìJx‚?‡áäëÌçÌ¢&R÷[n±Vqê5¢-í{uös-úøÅÝM‚Û•ÛÄ+„7’µ3ˆí&ÑL@¼’/)úÇ6¼ù”]`ÿÔçmÈ0éX¤žl½�ey0"žøS{-+m!Š/ÖÌq–ðïŸqi+ X€�,+àN²ÄÔMµi9–‹Tæêl¼ŽP\iÞéëÅ+âÑ7îP y?Ü¢±ìd™�u¥Ðªœ‰mņ†ºîPVtfGЇÏÝý½INFJäªDÌë3ƒ€}«%"#ôYÁ‰Ã¸OcMäH~ÍyŸ`ü$ÝÃu’,5·w—üSÉÇýØ‹–…É›„‰,ð{Ãû#à’u'K¦®¢ƒ •±wßÑX¿}ÀïÛ&{¯~Feon™!‘½eÏl’UVÉJHe“d YÙ{„ŒÈÌΈì[Ü("yžû”óüÜ�ßã9ç÷<¥úž÷¯Ã9×?÷9ŸÏçú^×ExÔlñŽò­§Â÷†z\ˇÌ)¿¸ŽëHñÁè�z!| [c2«/ë0£ù>Bá,þ·s§Xº­*u�†¿À¶Ù^ï5F\Ë÷8w`pë òê_áRU%7 sñ­›ÝË&+ŒÈaIG5ÑY ?C#LìøÛG™zÂål‚Ó;ž÷Ûã„I²Ø tI"O×ô^ÑP|@ñµðwvØß5‹ ¡GIÁÅaçOgåF�n#`ö'…dê®��¼¤n·û»ÔçZfØÏ`Zâ„6¯¼Þž¾5‚o*{Á…�ÂD¤†ŽË>½G"ŸRK�µ±`Hâê`ÇÍpZ)5g /P¬,¿sˆ¶8éOuWýÚÇéñRÜŠ¢>‰‰Bj¢.ÀûŒ»VO*]² 5ß°b~¦îåd\‰êø Jo"M\›�5mŒ6ª®”ÿµÝõ©·¡VÜ£Å/Ò¦\Nò0PDœ3 XyDî4‘èz‚™=–�ˆ�š3 Þ7Òu¡2”:È6Ó,ÓÈSÍßÃÙ¾9f@Þ{^ÏW…¯ÀŽ´ø�oиÎ:(¿®Å„D²}kVê̽SM0Uü£æ ˆk9Nï²üŒV­ÇÐ"€c·ûX˜}ÇÕºÛ"-I9¬\Á›èMk‡7ª Ê*«ìÇ´AÔ?ÍIªý¤™h¹ã¢#.½ÐÙâ¹;±’�ÿX  ½`žíkÀ¾�]‡Æ¸ã»2˜ÍÐ%ß'{Z¼ ®6¼KűN\Pÿé‹‹èq ö`€7ÛÑmZ¿RÔ²9!k º—OQ•oCq’-q—�dò$ˆ’{†¾S—:íAw`¿ŽáTÍ1ÁN�^ˆŸyîvrŸÅ#UnªšN=*üÔ7@ÑNÙ+Å8€ö#m:ö= N ïÕv‚ ýÍ‘^."*mÉ8Ã3ÌRäËBF>VÆ€ö3ùœ4y½‚?EŸ»lNQ‡®öF 1½ÏÚ~jÓªOqÆ]�pœJÀû^z½�æ^E˜¤Ö �Hú™œ·¡DA±é:Ô…Iöõþ½F’¥ÝÕ3¶ÕH flÒù¸y]Å$õµŒDì%“te¦F’hYåw}e)ÑÑŽê%ß D§Ÿ0RÇfßaðw#uyãï€zå„þ^Õ­V -¥‘åû‡ô’|{É�og‹1ò¡ç™#¬±4-qÖ(²çš�ê%×rœÎuÿnöΔúÎbÆΞó\ƒÃþš{Ö»gä?e†çÞD‚š‚Ô8ðlô‘ûýÌP'¨É&ÓY@gbŸ‡‹Ðb+‹ªˆF.æòì‚ë‚”,,üW¼í;^æÂº‡%]ý’‚–¥Å¡5\‘šLA2K`�«ÈÆT›È×¼?ä5S Øñ²&½½ë#Áo¬>¶íjô^bàªTáÁwõ®§fèž2@)ä‘Q<õÖ]p°_Çž¬Z~äñ±ï¹ßà0ZV Šá ÿ£S?DŠÁ³’'S²NEŒCñ©ƒÁUÀ~?+{º£J�¨0â‡Û<Í;øØyµÅ— Ås*w[EUn4ÂÕ 0ÀŽ›Ý ÎNa”Í5×h˜•”"ezÂÉú£ÞÊþUìuߤ(óh˜h‹aï:¡_òêúgĹ@Ú¥œ™…Ê®%'¢“g6'þ²ߟ „¥Š†§ÀÜ´„r¬cã|“!'m€TÄÙ�2ÌRš×´wqIAwƒ^qF÷ÇÛ”ö}lUruµ�gºÅ«{›^—$żµ2†‰)Õ±¨NGÒ$ø½!Š…Ÿ�Sž)`€ý•}ÆD°t_2#iI¡|£3Ò6Æá8Ýãñ«˜2ô“µ¹§ab,k׳ô›ç4M_!Ö¬�R‘)<èަpÙâÅ£jÖ Ö ³ž;…�ºøY¸;~ÝU­uîÔ½‚æ|¨]ZU7”RtA÷éÛ¸»AuÍ–R�Ü>R³ò¬Y㉾®¥¶ÅÙtœòJ2•df{€Ñ™�£jVĵ§7œ¿‡M~°‚˜&c ó Z‡ä=“a`•_s5y�S5ClÀaÊg-èf&FX`?§Ýe8£÷¸‹nXC€"ÃXï³üH{äT¡™Ì�ä\צζØF9ŸÃSì÷³s5A§§‡ÃLw Ø…ÂôMÚ¥©ü%©n+W“ ÉzlŽ 1[Ü:†rÚ¤­ë(�7 ¢(Ç…‡}%Z΄Po)Ú›¦Åh•$ûOƒ? ØÿÃ$éUO¬%n·I[S¾oD§õ[ÕÍA±ü,q~ˆmƒ.Vy§‡0t°_ÛÆ†±3ñ×ñ,c0µpˆöž¾K{}%a'ƒö‘ÀY¦*¦8¢N ">…BÀûYíýÛGžçÜÞ9ÊAÄÉÒðëk›@Íoı’¢{7?óD-æŽÞ¢fB °ÿ‡Q%z—5æÅ[;^ºþˆuˆÇm�,¾÷s:”šFS'½'D›û¤E­4Õ†5`€ÁM`Õv‹°ºTË”³÷¥yS¨›SM!✰ÙÿŽñs¬¤òPCF8Œ(ö¨9áóyðIJÁR ÷ÃñA9I‡SrW±VMÞæÉOJ½q´Dë§ù’\OnB.8Ú¬i$ÙEtÈœPá=­o{Û¬Û´\œ%tô•b }îÂ8Žš"®¥šå êOáÝRÌ~Gn/Z%À~ÛÒr9ýÄxØ&£—.ZôA<ôUÛžÊ3g"}úÉ\aÕððf–7€ö#MM×Õ¸ Ú[ô¤rïÍt ™ô§bÂÌXð„1SÄçù63Ø ì{w¿„a�H¶ÊZ#}AÙ‚13³©›’íþkiHhwŠú|0žºØÏj9êø0ÊÑž4zD üñæ¶ßãmÍÁáËÍÆ“Ut\ÖDëb‡ˆxÒÏÍî×¶Ðou6[©óóàìùð,䛕ç›Ãþª¶U4±¶‡ÿ=ö·û²°©sßwY’Ó‰ÈN*ï7@>á>Vx qÿñl(H¿C-H6?*õþsž¼r¥ð|^µ¥>¼ ÇÕ˜:ÄoFï)B|ÇñŽ/h$ƒ=2,üz.ù‚§¶lNáQw|Á¯OÊÒ>˜ ðÀ b^kþ9ùcû±�Ͻ¼î½üòüò¼¦YOóâF$3Ú¾Ï#ë†ôÝ?S´Ïµ± <Þ¡ð”µk�7Âc˜`šý5ñòúï÷ƒ­â§ä§4ž ¨º}C"x?³ê6ãûA­oÿgá»Ìébxüü8ÛáñÔöÔ.ô‰�ߦp–n–. ”ºÖ¨-ùב�’�*™çþϹÁAÎ�χ?¾¦]³õ‚ºï×МW¢®Ï/ý+»àÆá·Ëð<Øœ�œ�Äæé ѳ®Yøo˜ʘz³é!ÒCábÄ õ°·±·=ã½UnSbSb½üçì LfõF6&dc�‰S€cÀì¨q-?ê;wÛ·… {ÉÑ©œµÞf¹îŠ÷†¦±V«;ø±ûö!kð¼s1À½$t0Àþ®¡©0Ut›Ú^ÖÏejÍ‚b?¿Å¾Ô2Gø@hgƒfÁ|¤CbÛGÊÈp0À~¤] s/§$¿Ps2I ëíìà‚1Úsü¢ûTý™ÜÝ�w­Vý¥ƒ`È mßRÀŽ—íU%G¤SÌÓ tP9~‘¯åÔ×ФÏ™x.­ÐÎÿÉUš.?gØñ²‘NWõ-�§rªÅŒœ�)Åí°Y…ëX]´Ú•![��׳„Á€öw-bÄ˱!K‡‡X"ÝB¿ä”UOØl’qrQކ~ü'Ey¶·â>NJ•Øq³6ü›VŒŽqKdâdž2µ7yðÈ�Óù„ÃLKnxKéùb#ýtPß¹±Lj~gÄ>~^‰d!é2ŸqÅ¿%š\ŠÉQ}<â\j}¥íW2MAþ�#žð[UëpÄŒR�¿ëqºe‡Xl Æ!}üÙƒ}¼Û·½æ«5„ÖÍ£Ä�Ÿ‹>OâeÕÇ#®å½WïÃ: ´�cxö­[ÊÉÇ7Y4* �n‚ù‘G†ˆé �,<‚—¦D#l n‹‚óÍÃ/Ieœ†¤½LL•³ubÐËÚ³’B¸kÉ <Ê!x£BÊh€ý~–9õæNn\ª‰9yôŠ{Ìðún‹Úƒ—êW{j_ë‰uû„ò²>ìÇ™S½Cœ[>'ŒIÏ}Q.ç¥Q(z?–ïI"œ¨/ùêÛŽç—U²ø6Ç;^¶ÞÜõø¡˜gFnà È=–ÉgN2Dœiö«M+ šKQâ¨g.2†£vü �ÅŠÍN>_V§¤!3`?>I+øw¾O+"™%R¤#3Y‘Xšžg)±ô™F¬�ÙïZÁª—ß3šËl>‰Y¶ ?ªFÜ«M¸�q}3y»)õÒ£M¾Êvp ¥vç)¾°&SHt#ý7+Ò¿×À¼kàP’¯k!‡] r„Z.†ãÖ»õ�¶8ªF\Ëa÷,öëXYœ5ýæbè…ì1Qþ©í÷ütï†û>™£Çô,êéˆè’úôK˼sÿ{wTå¶÷|Ó! ! ²AE$6!�H(‚tJwI*% *!!  ‘n¥¤Cº$�÷ì£Ì=ûιWAŸõ�á™ù°gÏzþ€Yë÷·%/q>vµ ÅûQŸÕ ð\™^&TÝ9q8EjÐbÉf2¥°_Çz›m½1n’Ey2SÙó0C}CÄÑ^¦õ‰ øÕ–E�=Ì·îàySm`‡ÍîË–<’¿÷lXÄœ­~1+͘§&êš-þÄ–yhÛ¯G Ç•ki‘ò`€}Ï”&;Ÿ!©îz8â–ê^¿÷È“Ac¼%±––W[èAÝmºRNÕjÔÅ]§ÀަQ¢í@6p}J>žŒ”¸WMä[‡šàÓ#_б~§˜Ë’žáU¯?$—Ø?5¼9c" ª³Bù›ïÂÏ>â�šÁ¸¶š7®k9�—¹!·\… Øá²,æh •Xã:V&BQ‹éHe®ˆ¼Œy–7×ùC{Ýï’g!:§nRv¸ÌØ�¼„k劶IÑúU+|4•�¤ÐÄÖÇ.»;ãŒ4¤H¥Q·ô§úû1V�O„粌�þ€Âß’ø¦õ.îèa:‡ë0Yl,v×'â9« ÂE žÆlàE�…¯ ïAsÖl¬ ΞiÏÞ“Å?¨6 ¿GÖ=�÷^_‡cqŸٮ㈪(û 5b'»ÔÖ0ôÊrc%Fø7Þ�à†[‹ÿe�ésíÆ%Ñm þ¸Ý•�Œ¯·ª Ã÷åG¬» 0˜uù»µ!X°ÈË“ŒhÛ{UNm f÷†fÒ‚„uÂòj¨ ûŸ¡â'vømãJ þbÞém×ûMQ/x Ÿ0rPÇó¥r¿WoÉ£"]Gö2tñGhm °j†£<Ññwñòƒ/�†d…�~…GïMÄ‘¦¶: rõiòê·¯Ê2ÂÏ8`GÁ”/â›¶¸�_èwÀÕ±?OªËWµ‚†Ã2¹G(™øïÉÚ¼¡£3`€6Ãn SšÁ!Ç[Zœ´7¤ôŒ¡ PE»±19RˆS’×%4šKHAÐ`GÁXŸ«‹¦× dk•ÌMW6ŽEÈ�Ü$Óõ`"PÂ1]kæRPA�e$oKüo[¿g•)…ô7O…Á÷z¼‹¦4|�¡ÇØåáöË>B5Wz—EÛÕà÷i) ¢ð7KÓOÂÐvUðv±³¬‹YÑÄ é¼¤î%ÇžcN”ÿ�wÐX¿®34“}î‹.¡pÓÖŒè™{§jVäÏéâTg€ïËa:—å(Z¹:m=¶ùÎc^2´mG“vÃä‡Xˆ²OdKè#ã<ÀæÇ•ÂAOŠJûy¶ð‚ß;ÙViA%µŽ`©ù²  Ï…üÙs<Á‚�÷°Ÿ'2 ÷S³×€ýsXˆpÆu¤ÕŸ¦N¸Oœž?/ˆP®um%žÛ²úDNÕ‡]{7Ðc?¬À;l¶­V³j‘W¿9*nòt/›´,Û””’1n‡‘pŒDÆ:MÓªF‘ü ½ °_ǰËféVN ŠD #Pò½ðIè2Œ–g%¯hU'Ç@©½ ·ÍXòÍÇ °Ÿi“‘侮ëÙ¬šðF5:”Ž…ºÙóÉ…¾JÀ%Y´æñÕ^ëñ4Ö °£`$³b$URÞÇÑI»œÅ3óšÕTÖüth8?km:IËÞIÚ¦Gï4YŽiǧ&Š´DÀÛE?ŠFL+«O6D×°Òs1ii–°l‡ß÷>^�g=О&g©±vÞ_ö }ïq`{0\ú:oÚc©ác”ú×�ìÇ$cðÝ~�ŠŠuég‰ ÂVO‰“þ=3é3éz•¶”¶|[`A˜KÃ'XjT<½}`)'Kdùœ�·¦W÷#má¸å¸…YæUP�á³½ÜÔÁý�fUL}_ýbéÖ6,z×ô®þÙìÊíÊÙª®`í'KC†U†EEá±:ñ÷ƒÆŽÆ~•2~÷ïã×ÙÒr©r©ˆµÞ AAuoÿš½ð¯“Ëý ˆD þ9­w Ñ#C^E�Ñ.¾+[…=§…?§aø\ÏiÛ;Á;–çñ+XL�.‡Ÿ+︣’ô~X×Â};D¨õ�³Ù _?§­Âþò>øk© ¿Ùm«½»Ýö³BÎ=§…ïËaú[þ•íJõÂõáA>*?â^ÌýTf~b“–çš„¥oOØÉ�3’�?e=úò9`¿Ÿ)ÔU"mÊjxpa¶ë+M³/¼ÖT’psÐïÀ7uG©Š÷QuØQ°¶Icìš³Î8ä7æ™RVtm-«òµÏ ¼Ò¹ËHóÌ^Ó4óR swí‹NÀ;l¶@˜ìÔìo7BÒb2È2þ86VÅõ­}ú]�Ã8,yŒÄ^ ñe²="ò2z?—ŒW»21f�Üñ'=‹†zÐ\þÌ@4ê‘Qí«Xç·i½�NÙy[£YÓØK&woR–X¼ÿ�¹$û×sÉÀ/k‹Ñ³.чš`*a¿'͘­;h. ߗô®ûw³)=Š;o:ÐOڹαôŽö{+í™ì\ˆ•|œN¿ÐŸu qA¤ÀtÜT °ßÏ´±ýkLÓÌ×½ô}[ãº\ìyÞ4œ“çSÌÂX|´„™ãÀMvî§…‡%`‡Ëìö¢0Åʉ8PãÀØ`­%ѱDDýØó¾% £Ð‹J÷ûܦó;\V£¾ç0pwÈoãÕŽbç5Z–R9®£GÍ]Úö Mä\ÈéSãÎÜý€ý:–Þ³l´ñ´DØs¾É¤½¨àÁr²U#P”Öµ’&\)'È$�n­iØïgEµAÛòq~R·qêfÂÙzük!-×{± »Nd­bI!ËK †:z"Øa³{~Á¼‰gų _̋ѥ23ü¬³²»AÑ5ÆO?Ì_¯Õ¹Š; iyõ|] ùZæô|i­cÁ±ð„éÍÑïÎÅ÷ëAþIü!‰+NÊ<™&.Ë=ÈB¥æÞµÞˆÃR ¾ê‚7]>qFÝQ¹Ï¾‚o6ÇøL@áu–¯ët_ÎdkÔ�¼‰møN¶2I~‰VˆZá º|_N‘õ·f²ÅÐ@½^­Hõ¼+í¼`GÁv8g8#üùÔæƒÊå™MÅñ¨= %µ&eû‰kp¸„ü‚¯ŸàJÉ+ììðÛ*9 ™flJôR�3ØW4ôÂZF!Õkp(À¿…9¼;&ß´°cËÂËË]�Éz·ö�4j„‰ ¥ttI6y•ªÂºwßi!»‘Þæ±…× °ïÙ' ä#ç·ú$�F¤²è­Í"¬Ó>¿ŠÉ.|P¤Ð'qÕŠ‹dh{–rK@I¯~Ì Õä(ä›8®»0�­Ä[ôæòAcÖ5ÿ ¤®.Û¹­j¸Op¶o·—5T’:“Rtr°£´)—Ý”ITݧyÅÚª¬3�vúð�1+ç×cÖ‚Ï}y^o§7Bf‘@.œÖä«}&ð 1+|_ÓÎ?ÂÆÖ�9ôtБ8¹MŸ>“¬Õ4ή°Jè%Ã�‡ öXOx¾÷¿•†œØÑ´Ú3ê�;0©û¹H¡:êŸ$šNäê_¹™PËrcâB½Y˜Ý±àãÒ#€ý~&PÑãz²?Xo;ç•üÚ"v Žæº@WF%GÐjHÀN(• `GÕÞ�G» 8YOÙHp\$NÆ­zÎ]ª깈&ݹù ö&kÐ�‚0ÀþFçQôòiŒ‰Í5‡h†>ˆÓqL1Χ” *%Õ”Ž@VJÃçbäk&€3®e³-üòByL=æÎFƒš 'ÛŠ\ø:a�÷�úHaÙ¾Ð�‚ȃê„Õs£‹šo‹Y�ôJ[Ÿ’°Âê¥]Ö*9&:dc„ÚMµ›PE¢KÂ=X§¤}ñaÁ7ê„\pçi}y¶ÍðÌÂ\@MS*ÛåÌ»ÎtP�¾/åç࣬»òîbtÛSÙ°º�eLûulK�ÇþtªN¿)´“:œÿAÌ‚ù«='äúv4cY¼ò!!µôç†ìgš‚š£NÙBgÞHîÞÐd"g‘؇�ø�‘£:t¡�Ò™²M§±˜6rìGk§�V_†Üû—4ÉxECxÛ‚úú·„›¼ß'[#¢ÞÉë¦õ|�žî`GÕFñ˜2¯â®� v¬S©¼àŒá20ûgköö_¯Ó+£f1ᯌì#€¤Ìì�m¾Œ³ íªïfÌ…jFfFƽ�€£Ø{?!3ûQÙrþœž«ÐFÅWYXÎHŸ‘žÊ‚e®v®ö±TÂÈ~bMw2v2ºQ»QÇ—Ú˜¿Ü8ܸ=´Òø¿�MN² ´ÔŸÁýœ~b»³æÈŸc 2ŸA)†óÌêÆ¿Â3�­o‚åS‘L‘Ìr«ަwØ’RëRëY””Æ”FÈ#ø”%Ý@½�š"õν<´<ÔìÜ_sëÂשz‹;"ž$ž$|ÍD´£<è¶F…–¯¾ÄF{PÍþÿsºö{[¹•ÐˉX£H"lBˆ؇¬Ÿ8>2šÂìA|þÑÒ÷g�s|]3áû²O@—CUÒÍ Žµy:f.¦ýƒj&ð}ùYë.ÌŽùðæv’ ‘Û)�?qܹØ”¤ÍP~Õú6ã]¯.$EH‹ ½&Î5 Àû§†*GWÒ®gv]#‹®áÉVµûù·õ³¤~x¶GÑ©æ š…>zŠjk ØÏ´kÁÎÅd$"”ñ\mã3½ó:¨Õ¸y÷É»ÓXÛ9¦Œ» {8nªxv¸l¯,!4…tŽª§™ÜfƒOò9³Æˆ¢ÍìÑj1©&ÎŽâ )þ!’³æ€.hu¼º¥¨j[LþšX""õ ž‘rÀl«”^æØŠF”^Í�âE °j¡ÿÇÞ�GS¹57fžÃA8•Y†�1S$’TdÓ1Ï×X¢Ž)*ó˜1eH†D¦ŒÉLá�9…Œ™ïY®ß{�«ë]ë¾oWõ¬ïŸµ¬µ—uþØ{?Ï~v¯§}Õ#mAjÙ4Ó«…GÌÚCüˆAtRÌǫޒ§ççXÞŒ]R0( °ƒf ä7ÌØí‹c?ÑÊÐz(•_ï$£;Hçeö²+Êȯç_NVCF:�)÷g0Šˆ:¢¯ãÇσ&’Œ„®/ŠÀ)§@÷[Ç£ï“.Ì6Ôò'3?}ÒcO&1¬n^ˆ6v¾î²F�k?.…¿Ç:þäîu¼ëïï>Ø–Q.š×á÷QW¯ç¯‘eì·ŽGËûÝoî.ñÕ,}ÿ“î)Lñ7¸4ØŠŸbÝÀ`Áîí¡fnáÓ‘ ³ 0”MŠ�×!_Ó(9ô(zVªe²kGá5>J âŸP-§}êþ\˜¬O\í`¿žeŒ¼óËŽ-Â5™ÐEκEùa. ’Ö_¼ÿúRÌ\{ù]é¶kÞÁ'¸sûçÌ¡Ò.Öõ‰ß<‡®Û¤rÖkƒ`¼·„Ò'˜¨H"6Ÿ\º¼j/7}á‘Ðr?`ËêZãc¤=ÙUDÂw¹†r”¨øRmæj„Í,ŽÓk3kFÈà;ÊØÁ7<.3+ß©Eç/+uÙ ±ˆý�÷%ó©$?P©²ÒBge?‹�Žs¼GÑçÀ¼�fó¥Ó3ì&JËéQÓV¡ûÍ�ÑßH8�p^N^­y¨·,TÒˆYÖÊá;"RsÁP8²òI€ëÏsà»çÀÁ í±ÐÍœ °Ÿ‚M†’Vºv5ÝoŒ>–½¾û ØÏc9´±æ�åÉàÓ™ýR"#«3"¬ï‘�+&xQ퓺ڒ:4Þo ”Þ»•öcšxœ¯Öf¹C±{Ä¥J\xL�mŸüø‹ Y]·”þ´s}Ö³ö£im€ý<ÖÝä'¸ŽõæcvçCø†žÅ«Îè9�ëCS[Z7/]`×.>ùÒ0ÀšÝS+ŽQ¿›ÛÚêDýt:q†™xM¬¦åÈW«VŒ5ÿ. RÑ%ìi&"Àû–iŒväbkoz¹�—@�îÆxs_nN©e“0�½_w›£„[Dûå¡éM×vÀ~LcÂÛ@¼ \"÷)^=­|÷%�o½«TïzŒ/ãÒõÁïÈÊ7+©¥€öw�bÜŒ†€™]¶`y&’=ü�TìÍ…‡‰¡'"¡6c�‹’Nœ«$ì`Y6_œ �V‚YÝ)�ã ë±è+¢Qù™ æI#©°î›w²±ÜÒ—a€,33e(]ÀU20/úrÉ–O«÷aXJK¼³{àæÆ0„»$–à†ñûÀ¾�•QÒP¸ÏGáßg„QÚÐ^·Û$ > VRÙ™f#4v ÿs¡ÐPhu7ÎgœÏK¨âmΡ‚É¡j¶³PáDå«»¨¼ÝżÞN©ÎÝÝ+·Ù2- Vvº¦Š´S›ä—²íäx¤`&/8§QñÊðÊ@• ÊAA ç;Ù,ò'ñ'qbrbž¯ê%úvA�A�¼T^*Ý‚5f*î‚íº&»J¨¶Ëó"$Bl,ÜÕýweGýc¨¿MOß;)é7x¼÷?©Ó³Ó³¬£H¤HD<½gEEÇ)ë¼2›2}ò?Öű»ä6TòŒSŒSèÏ6ß!ž.ÚÛš°k{²5¤F¹ß³ôs†j7KÜíiwyÞcÞtÐVšgÅê:÷µ¡4÷º‚ r�÷mÄо5òû¹™#\mfÅq­ÈÄÍùUž7kû=k@Ë÷8W `(ë ðlÅ´æWW§УuºU1¼,�Iû¼;,‹ CþZD~ «)2÷åCÀ¾-)=…PNgR]ó¸×[%zÄ#Ìš$™.öY·9Ÿ™þ Î-S÷Ì–Àû»f:(—t‡¢ Dî(‚*;âh'œF8Cg¡ÃSÁ§ñÒ©2F™I `?‚]‘¡´hö>‰¼ÙKnxö´/=T²r�”'tt ¤’RNñhqBäâ`ÍH^�5>Pžf ˜�~/miÊäý¨�÷ÛÒèÀ3ÒâüNÙÁ<#U+`€ý&P®«�&_ƒûD¿x|¬âõPl¡úÀu0Ôë8•©Åb“èE-ü†Ö”ÿ¶JyWZ0ªn±�çk±bú%¹ë©¢ï3t™¹‡¯U÷€t<09ݧ¨÷Ûg@ÿžRëé’`ÆË ã‡áîŽ6uæõ(B;äto]zjES°Ç;�»÷šÀÛc�‚ä¿~P8v÷Hͼ:”|¿}ô±¤{§~D+Õe«%±Úˆ—ã­¹˜·™¦†c©å`ªsF'z±X‘õiDb<**쟳©*)xªƒÆ”VzÕvÓ{RˆøÉ‚�]VÒ…íð~oˆXŽåÀ¾�9OE¹‘»°�±&ߣ}\0!�Yª¯9Ÿ$ÕGbó’úiåʦ“'F¼?q`€4[Ó©Y°Î¯_É�¦qê e-º 佸µ×1"2g} H쟴Ñèf’ú¶�ƒWÛ5z‰Â<�$/„5$“ Ç8è¦íÄ} »¼Í®Ø�`té*ÏÁÉðé;ÝÎfå7éh-ú_ƒxo²¤ˆ0¾Hñ�9Ǿ!JR`ßË‚�ó˜ï‡È_™e•L;–5|_ #:M›1/IÖF0Õ¶é¶ŽÑÞ `($JˆÜèÕ ää]¦¹_sþRNö0¯~Ø�aÿK“·ˆ]s&”Bì{™fÝ#éîNóÌ¢Ö5ìÂp…Rh~ó‰ åQ:Ói«÷ЃIÜ_ã̉ûçLÂä…#©h+áR9s9 fe{̲ £Ž˜fʺí÷\ },éÿ3›ÒË)£þ>IfÚnÂfãt>)Zóyþr=P‰ð',jÇó <`Þ#vƒÕå€ýzV»XW�½fªvÕK”°ÍXcLhê�A�†²§³q;¥ÅÍ–Xígg{˜;ìG°ÖQ³’v7R†ß&ާÍCl* ØO5\;3PüTïãV}ÉED£;`?·ù„}²KŒÐÖ—™§ê0ðQM{T V,T¹ïcPñõ칡+›QHÊ„¦tcÀ~=»B-“Ÿæ‹Y–بZ‡�}'èÓÍ@¡ÙGH®“žE–\1ßÛÚªÀ;h6Jum p k¶Ä0É6[ªÝë;}Aî8Â6â0Å*Ì`ɬ14·`áèkÉ$¥‘Þ$n•�[géÙñí·–D¿Ã�u`Ðà1ïÜ•:ØéÜ7ØšèêV*ÃÍW²WÎ÷NßÛc-)´{-¹sΙvjT³ÉÉå½¶èxsŒ—fÝ~çœ)PߎïÜ�q…J?z©þë“�dpMîìÄd»ðná¼,ÎF2b6æ’Â×È?÷Üæ¹Í`ÉUÇ«Ž¸5¨šib†Q)e£ŠØŠ"¬ÅAuUy,z»Sþð�¦¢xtytùÙ îJܯÚ)7ZJ{'³{¦ÛQº4…® £2ê6ê^C%Õ-ÕRS¯´“˜÷…Ø ±Í#Í#QxTG¾]¹G¹‡®ûǸ¿®i¶í#.ª…—Û~:í°]€|Î[­66O­gú‰¯ekUe«RI’ˆ9BNü6é?©O¸OXÁ¶\³\³Õ½-Jë@ëÀ¶!qñçf Ò°;–QTC>ð—ð—ÿÿÛþýl1þ“)9Î0sB ÉgúÌ�ßü=íìM ÿ¶Òw~5{oÈè7ÙŽØÑcœ¿{ ר2ß8™ ÿ˜s ™}kÊãâq2‹«Ø€ýz¦™$ Æ"ÃêË-cß–ÄNw'ñÉW\ê’—³ ¦cf Ÿ:‹�¹¸D¬½l;XæÄ½K¨XúšFøPâ ‹þ¬ÂP –q¯¯rq&ÁÅA„ŒÆ½ϱÀ–Õèn9÷ÞygF±Ô°q¹C“�¿ä‚ ¹‹W%ä[ÛˆNž ’ê‘a71$`?�=- zÛ`n¹]?n0}1 J(ôpËÕ 6�Á ùŠ ÒÇUÛéÙöëYQmðš:c¢ÿ¹ÞÛ¤u"OtùÇëcÏÕßâÇñÉ^ >‡£®Üæâ�`Íîú‡Hd¦°ŸÍ6¹\õA^�†#��ûŸº{ýg±ß;‡¤8ûB¤êõ;(oÇbÏ-¬£ï3¥jf�M”ÔºE&�-~s-¾³ÏðP*4eÞõŠx–y”û\Žl‰¼ŽÕnÊÙWWzuÙ}]$ÖOëžÐ<¥å8Oî)CÌ=ö™øwï3qü~Çßkãèë$¦3jÕgÙdY/î·/€>–ÃE`dK։ĭ†yeX×LI‡`€ý¶!òA$ÊZRg"¸4E�Ïâ,«×3ýQ5$m ©¨¬ˆµhZþ³·€|[`€€õ’q+r5ú|,¾ a'‹ž1¿a $¥Á hæ‹|û Àâ9`ßÇæäçæ:Gë=ÛV!: “W%Qíó+´å¡wfôq<éo‹; È ì[¶N€ÓsûdL÷F¯f�ßnew�¾ãñ³˜ÚÔÊeFc:ýÄhîÖÜ´§4 ›Ñç¬=ág’#dЩ  ‰¢É3ûÍY¹NÒ{¸¯åµè�?"]»ÝöâU½=c‡˜‰në•×ϧè`܃4´aTÔÁâ\Wö˜³Šìž³> ÚKy½£áØ:™A>£Ñ×àXÐ~sVô±¤;Á¿‡ }16L¾†�-"f”“«R«gö¤Ì6¹L Ž�î²ñþp#?$°ÓÙŽéÆ·²"/‹Ò#®é®«ô6†�ä+]O®åÿmäd½e„#Q™ê`¿ž�*ë 8:Š 1\{Ê+Êvڨȗc˜ðùŒ©V Â:ë¾Ü{ˆÓ 0ÀPÖâÛ“Õ h^v\Ö‹H ýoÉÖ büªjc˜f­w¥0>Šù0Àþ&Q'úœ¸Ú £ÏTã±ÜžÓAô☉­ËÊõð,²F«Í’”’Pös[?’8ƒüs7,Šà ÕÖã÷©o¬Ö,q¢'9^pÄ^ j1¥�Ë °Õf†ã¡èÞg(â‰nø‚m ^å�W�-U¶¼Úï å¿þFNtw§ª¼n '=þÇ0"vbêƒ^Ûiþ?˜ì íŒ¥(¬23»ÐÒùçâiâiZ, F£¸ TM¤|ú¨R Py¸™O™Cuo<}u»CD§¤w²âÖåÖ '¤•çŒÔoØ©veo':SÃv �XMð‡—ˆPÁûà}E›¨6474“LRïä[æ|Óùæ%ÇKŽÞÈÆºoû­Þ,ýëŽ@Âq“Qo'üìÝePU[ÃÀñH) Ý^B¥¤DR$ é’.éTD‰C‹€4Ò Ò‡I%H <ïå½×sñáÎÜgô¨{þß~ÙÙ63{­½Ö^çðŒé>g>šµ”œ­[�ðgoK3ù‹Äa­�“AÉ 1-VÝàË—þI5à°H+V+6.¾œòâÆâFŒÖ…å‹eË2ÜþZ8Ê×Í8ÀÒ) %$%üÿóÙ¾¬•`Þ¦fg˧¡-ŽîváÿÈzÔ¼3ü½]Êt– õ£ÿnf�=•Íywêkf€ý:¶©Ág&Ib–ÜE*è¢hÜw>æo`G I;–Á¯TËÍÈ4`?ÒÕ�tK ]¹ï@ò~C“q<…W¶ñŸ`†#�ê2€#^²fšMa±®gØ÷²ó¹<"ÚÙiòÞÐ&àáíLÜmöú�`�Œö0·‡Î£ã¥3`€ý¬6ŠÇš~w…|°ó#•A5O¯¡ù÷8«µr³Nw¬„†ÝTL°"¼Ÿ€#QhúàÙúeÜÆR`Wõ(m6(åNqËåºÀo=ÛÊê™ZÁþëËëø!Ϲðç½—V ïM‹}Ý£…rÂe8Ç~=ü^c�f†bf¿TfHüÓ*ŽW¯¯eòr*¾ï–<é[o³V¿þ;jðç"Ã�QåAЀ¨ƒîkTèyKœtG�Qá¯ÿ¥Î[ù°DÖ(Чò×�uªS„ñÄÐñ^$áòm+ïCÎ|æþzŒ*ðe_v·ceüí4Lîµ96^Ö^ƒ£Æð×ò£Ö¹›ŸxÀŸÓEŠNawc<Õi÷RW@¼séuëû,�<»Q”8Z…íµpTø,ìßš9ýI=ˆ˜ìAà´ŒãñvjÕb îÍgȲ«i2üH€öo <ànS�ªÆA(’h¤™Ú¤3ð!Ñ© kunRî+ó»‘ëcâ:…€†hÖˆ{DŽަ(ò=É%7ÉòÛ}'IiÂavC²y­jþ í¤o÷YéáJ^;øqüì5¢¹Ø›\ºEk<ÆhÒqzG�ãáçV—kÙ_PegöÛœäW0ÍGO]ëôrÚ!L4îdÃ8dáëq¼ó—wƒ·Êð×Lë0 ß|Êý4v2å¨q<üµü¯ßÕ{0÷òm§kû\wŽ;õü“2]Q6ò=Ê@?! wÇE• A°9`€Álþâl¤‰XÒ¶ÿŠ»~µ¾\½Zzasjìö9Ùr’l××Ü'ùäÐûý,ebèaFd!ª‘!iè’KØC¤ÕQœzEÿ¦ëË�åo5„;t=8™³ûqf[iéœÉŶ á2/�Þ¤€Þs\˜óvÈ^æu¥m›Ë ò©\À!–­Öµ?�vKΨ>ÁíÇ4–e+IÀ–`µ\ÃmbÆJ¦F¥r õ¬}:`ˆoèL&,W½¡Q…×”${­Fƨ/þ›õD¹Ó²4$zK"ø&g™ò�=&áŸ�Ï=6Y)]X¤7”ÜH [°:êþÝZ´X²ãÆ‹íšx•g\ÅÍHe䪯ØNsÖÈës‡¾¡}žùïÏÀœ‡¯·´îÌ ÞJZ]�ØïQéZûæ¾ìƒõ–°íÜÓЯ ÂÊÁ§àþ×h�"I!¼{Pj-ffÚôÝä¾®�‹¾ÞíÒºÝëžÅgÄgä-ƒ•Mz ‹;VàõÜ{‹©°ÔF]Î~îG}ðAš�<ä<äÌÍ+OIÛ·sBµ'^9()øÍƒÏÍÇ‚L…`iÝ׺oAË&Á&™&è B]%!%¡.Ž.gA¼šo'š(š81b5óßcþ°YœEËûñç n`Ÿ½Ï5yç>£ xÍvýÏÞ]‹ðXÞ„õ¡‹±–±–:a²$‰ùOjêmê�SÚÂØÂà8 _Ëë�ø�xÎûÝÑ¡¡¯lþÚ[ò¯Sq†ÅqÂÓÚÓúà~ ú|?‘®øJøÚ@�çƒp*�»Ï5¦‚¿·û<`¿Ž½"‰4¥Ý˜K䙨^ä¡yéÞ2Dëœ×PP'öèÏ“|çRØÏi|ϼU÷Êm)Š\èC®W¢zEôß�-‘ÇKOÖp‰N”´\²™Lìì×±¾[/ÌÛä‘lTö|lÉÞARèoRúÅP×–>{.œgÝÉ7_e`ˆfOåŠ"ü²†Å,8ë’°RLøj"Ulñ'6-ÚA;>½Ê8n¼ë( §NØ·Ly²+ Emïžn±ÞM¿fÍñÖ¸Z:~ÿºû ÅÌó4rõEjk °kF£|Ïbáå^>“L�r¦�Ñ‹˜;E}uä.þ Ùb_™aŒŸF`?ƒÝ¸„oÖê>~rwW_JÌþ™ž@å :KÐä>ÑÕ¸r¼Ôµ9m"'ÀC4Ãn WžÆ£À[Zx'ljtÊ#Š6䱺ÃúäHNQn·Èh%A;`€ý v¾\Co�µ^]ÀûŒtæ i¥Œ×I ²n©ôÜuÕ5]Z�=ê8Jý’8·K2ô»¼AØÅ€ö½,À1‡Ê¯(PôÆ�@âÙôñAPx¢eN¬ˆG­–=ãOH!�}€3ŽÑ¡»�GÏm+>¯¹æUuYä�sÚàGnã>×ç=±œ_ÍIGåëØ÷2•ºTá¾nÓ´Âö'”ü`ñR½ÜVÎéIR£‹wzm:œ±Ìíž™böãŒß°Ä‡·�6Ù©rQ)ÖØâÖYóRdPñl䬺ì+R«œoäN7CÀ~€<´çRØyßøqpnÆÚl’Ž-´‹¬]ŸÑy²8ô¸�€º8Êo2ÆÏh$tr$!C K }WÓÖi«ø÷j^‰ÄFüJ÷F»$Ë6 Žz¯ÿ]ýa¦Þ3¶w­Îá—±›9K„2•v>T�ÿ0¬gyw' D¤}ÈÙl‡+ÄtZ kbJ¹¦êòW ¢É£¾Bø¿ÉÀþºv6øöÏüµó�ªa«9HŸ²+ª+ŠK¢2·‰i¥ÝtâïåWæW’êúØúØÞ¡�EÇȆÕ~ Ö]­ÝR}X™÷!W>§�fùò ÛWý²ü²‚Èæy¨U?4jFˆyÅ�²³ŸÒâ¼JmjË!Ï!oø ,y y HW‚ÓA‚XÙ#Ù#ôôz^—¿]CaC!4+Àñ¿W¾•À;«èòç¤8,k5F>׈œ}¡F ?jjàÏÌ•ö|£òa…e0g0—«”¨¢fC^þ“pp0»ÅxÅx´á{Ÿ$æ.æîà€c F#²ÿ5ÿ¯CÁ‡¥ÿ<‚&‚æà~ªÄþ²ü­¯Ì„ÏÌέýG=ö3".G½§…¿·éùW6É*èÍáA*’¾ã­Il‚$¦+ìåZDÅÜï‘ í®Q°�Ÿ;m=ú¦°ßÏò�ë*PvŒä4ïñï0Pžâ‚¾Õy¢,íîhЉovw„:R­@ªŸª0À~kŸ4ñÅ®¡wÁ¡p˜cM\ѳµªÌÓ¡jÔ•)ÊÖšÙï +VLnvÅì×¶à÷Ö1!jÚ—VºtÈ&¦¾!¿’Õÿ�NŦ”ÌØ�¹½0~tK’`¿ŸÝ ¼”›è�TÓ,[‡�òèIÁ©uöš‘|·“3,´YöZfé—‹Øzj«» Ñ J”àÜâk7BÚj2Ì0Ù«ä=ì;}O\�…p[ñ_©F HçŒ ö4†Ÿ›ˆU—œˆ¥f¾ºë)EF�ŽvÔÜü™�è4#£:×±ÎíÐy9ØyY£XžÐÜO ¸Û rãÚÀÂÓCæ&¸¾ž›xòeo1F&ô2#Øô¸²1ö²´™º£Æ’ðׂHûº7{§Oùp¾ã;·Yö¾Qˆ—ò¾éî…è«Ï_2B!w�¡ú EÖ“fš(€ý~¦­„í[c–bñÑÓÀ»-¦ÛÕžo¾�IA@)s!béx¶ãEr&&Ë{V€!–Ù3ïG¿RÚDÌ�¥Æ¦Ö^‹C6ˆ>ç-]”†©8š|Iùi¿ûT`ˆe5ûŽ�†LðÖw•ºTèØ‹å9p�îUÒ>¢ë˜Ð:–Ã!){zÜå"°_Ç^ö.¯sxX!í»ÜfÕYPô ã ú£Mó‰8�[1GŠh…¼0«ìKk­[€ý~VX°£@ã#3p§n:”³×ç¹6Êr½'û1·‰ŒU,™c Òƒ`'dÀC4óó äO‹£—Ê0Tªž'fHbcþQg¯ÿ*æ@Ù=&È8(X¯ÝµŠ?eyõü¼@‚JúÔ\q­Sþ‰ÐS£ß‹Ì øÆ Å­8ßàK7 s]î=&RláUë…<,uôÖÞÞpýÄùPõ)× ¾ù,K–�>Ò!óì_Ï 0|9ã¯É ü6¶Ñ¢\E¼Â��âQóð×òG!9¤-�3Š6Ù³qEÚ¸w±¸ë&`€ý ¶Ë3Íæ³  >P§Àf&…Gs¯àªö¤„¤‡WÄ'ð&!obnA`ˆo«´äZÑ/P+“/×h³Q{‹ƒ/¬bP½¥~ŒC zìÛÊÚ•gö°ïcË¢ËËÝ“õîÛ´êDq† Åa ñ6¹j¢z�µ�¹“Ýç³M>©`ß²O˜Çz�]Þ�6“ÉYb´›‡Y#Òw<~“ƒn)Q�ºiÇ„3·g%ÞRÖo…fMÖâ.˜8©�ÃVæ/œ—8ê™u�Ù÷™›ëNN›:n*ÎÎýŽ’† 2—ÿ°w§ÑTn Ç’!3Çìd&3SÈ�Ìd– ™Éœ9¥‹(•!³2%dJˆcÊ•ñ�y ™2§ÈAï=KÖ­sõºkÝ÷-uŸõÿö[�µö­õìýìýl*Ú AÌ6Ýr_ÕTÐ-Æ|í § Vr ž÷xfþú™5‘tg,U�®fÃÔRhd2›‚Œ™¿y'ßî3+êXÒ�àßÃFß[ ™¥˜`c‹Ø„æ=Rzfd�_é˜ÒC�£‘!Ùí4æ¿r);¼°ŸÓn°0Þ…ã2ôiA©2L 7•ú›îŒ=6WðMyÆ{qìx£]”ë‘pB•aÀþ}v¢²;„i¼/Ü QpL4‚å¬i“'<�&œ…¤(îUW‰Ôƒ»¥p“£T:Ö6ù£fs.Ó² °ÿ‡Ñ$])©ËK´qÖqOàìå÷üD‘XJ°™>G ÑÖO‡‡êñÑYVÉÓ¬ÚÒ Kvë$O4pÍx:^ZÔ‡yºT>F=ïé¢J»¸nã.aì)Æw*d¿3ðà?~ó©üëœù |Q{ýe2w˳¤»³›f±VœVÜK=±IÕ–br¥÷þš“«Q¸j¸ª~(2SV%|dRÈŒèg)'{�u'$¡ï$,©¨°Û<ÑÒòÒòj¸Îó„îÄnæÔí»UVòî¤f/ÈpD„Ì¢Þ¢^(™p´p4b;µu7~X¬‚‚‰‚I%-ûÚ·³€X@’zNý÷æ·!vÔmÈÚ¹wºTG¼®Ê·»ù}«·ˆ´cþÌÜ[â.2ë¥ÍˆÍ ó2‚;Þ¾¸§u�u¢bòòœÔ¨Õöí;ê£öÓÝÁÝáñ—�3û:Ê`dlù¸Â¸Â¨ëÎ ×LúÙceÔzk3"–Ic÷[w®™F™7z[æ‹îQ”q:ªèˆ×òdú:OiTnÐÙêpd;¥šÒ”Rd AÛXêNéëÎP”ûÙ>ï•àÜ çå)f`,“¼×é%öž{¿ugÔ±Tp0 b¾÷Ûz‚Óåqæó£Wµì×±uCQ7¦&}¶ Ñ·çNмøäyè¶¹+éYÆÑ\1�ˆˆgB샀ö#MÓÀä|®£p¤~sp }=§ÿ|.»Ó½:Í7Ghu†�ÊÝm¾ßœu,?jŸ»Ý‘@±Ç”X4®º¯³<¶¤:ÂÒŒ9+Î8ýÎuýj'†‹¤›�ŽèÀû§vX� Önfwþl.Ûó¬9¼šËÇÞ6NQßEŒ`Cf,ú›¥7üåŒÏ Ø�4�p¯RjJÙJºdhÛëÉž“Ã5D…·hº2ùÚ…&ž[w=éAòÕ»ú°ƒeŸÊS"Ó©¦!ÝÍ4ÎÄ•ªxÎki3fá�ÔÈ+7 ô8=—¡4eØÁ²þV�3ëZ¡ú.¥4³9¡� rªÀðIewÜ6z½²SBë è*ﲕÅÐìŸZd¿Ÿsm–>?™tºåÙâ£ÖððkxàaJ wmуÂ<»ËñFåŒKì Ù ¢K֬ΰø·R> U¾=ü„”é|Â^¦«Ø·®Z3[Ç8Òɬ8”I+ uE�ÇO«‚g’Ï šÀV…­+¦šî7�G]Gx·øâo ¤ ¿×™P쵆M1ZäUx€‚,Ý Î-ƒ½Ç<þøÞß~·*§â&zfo¯²r2X‚#°ß{oò?~Hÿuœü¨]\ÿ²ÜâÝjÕûfvS~c…±¶Ð0Þ}>yâ.z.‰Ï_³„[·¨é'è'$)‘M·W#;6ˆ,²ñ0Bf™¶ ¸“*QwÖnwYj�j�&ôfêxUUÔwcÛä§ÚM•Y8~§¢¹žKÚ7��“�“…1#ãá�)·$íÆùR¬VÓRÓÊ>�Õòíü˜ý˜]#´Æö©Ô⩦.²høNSÑ—\Ø¡;UŸXXˆE/ÿgøÛK.Èð9ñ9Ç…Ì-àü�”û”ûªìVíV•KPsàÏ€gÒ`íC‘¾‘¾ª_fþêëv¾$¯ÄÆ�àFìþ=y~~×ìXI²jÓ€=@V·Y¸9J˜¹ßºêßöÿzï‡?g·èFιàã¯=Séî^âÐf� _± cô÷’1µrð‹èŒIDÚÒfE¦ú^’+¸ôÊû™Õš©e³êÇ`•4e%‡òΨTQx— ˆªìßg™cƒ×rãK0ÍÁ”Ñ‹^1×ÐÞ�4jÞ~y&n ^õÊP²ÝÄ?L€ó`?Î\ª�â=óy–Ù ½fs^‡auáJ БâGmçŸÑÚp>9¯ž%¸6ØÁ²w mwã$}2rk�Ýä}ä¢@Êsßa©^ÈÚ–›J¢%…É|Š5 °ƒoXÖ\öJAs‰%OUµº†GéEþÉþ´BRñIR ÓEéÑñiŽb+ÿqÔ9Õ±ÖËó ¬ kbæí#ö›S¡¾«½'›á¾–²QŸ¦“°&XÖ„VI­—ÇsT0¼^ÝL(ºŽñ-'ú_çT_Ï©ÂÀ;c¡\9â’µhœ€—i-Z¯ãB2¶nßBwkø@?`ÌÓ °o™öxÇ# ýí+De¦çoÆùsž}Ý’úŒEÌXúvÃïleœÂú5‡ç·=á€ýœF‡µ•ñüÆ¢@ØÆo±Š7kȃ¯1HôoÆÑŽöy&žRò�®~õñ~`€ýS#ž¶&Ç�°J­-D³Þ”ˆŸÄÑy—–4!mêð†ø!ÿÅɤ¥j\À–åò$Xàèݳn8ÁÇ –»ð&VS˜=n™=/Ùsù:M.º×ƒ5Z+À–Y[ÒÀ ï0ŒmJÞŸq$ÁÒëO‹Lm½ëî}c{ë5#FY<Î%ó‰^À¾�U’�{/áÅ`ߦµ"q ðuÚ&9H÷º$»w¿s“âcÁ;ÎÛѲy‰ˆãYQ׆·3 V�-X™Ûó?�ª‘ì·6ŒzGíòC±›½p�Ò^ êm�a}9Áeô!Aåõ¡ …¥—Oq¢÷Øo#‚rÿ󹙣íÖ°„6P_Òöò×+Ä~kècùç® i�!~mhx54(‡�(Ü®>[“̦(í‰ÌaɘDÖ3Xö=:L’ØÁ· Œ$óÙÄLŸ[Mñµbà,.!†dñ"+†-…ª÷‡®Zz‡ µ¶Ø?5ËÑ„äëÄEá'™2Hs£˜^³� e¼ùÉ6]ís«Îµ"É& °ŸÁt¥Hl[ü^ï»ÜOdvZÖí•©xõ2WÄø'°RjqÖêÌ9°‡`€4ÃN­=I"KC¼8?!émIçŸÈuCëâ‡ñá'°ÂNé‘Ç`ZÒ6ÀûŒ¯ÊP.]¦3ÿlúÍÓ—£ñÅþԦW¸Iµ lW›¡šzØ÷¸hÚRÿ×vC¿ږVå=Q¡ZÐùdo#Ôu†nkï;ˆº^°�»÷¼ Ù~ë ¨ßi“- £ ±Ë4OÃ1öÑ ðvuhH\6"Žè8ixU]°Àž¼h�=h|_¯34SïŒÅ,Ó´>)Ç|óhý²‡)Ñ~ë ¨c9H÷üüŒVaÈÒŷߺ+F�…ð°i·¼]-M Æ›t…Þžp@;”UìÇÙ\­DÀ}í9½ ¤3ͧœ E�MuÛKÃACÁþ‡Eòì^ö}Ì}.ƋȃÅü CÊ-ЇE3’hçt–“%ðjÈ ª?n»ù�îãuØA3„Aý» …�k#§mî€næS•çÛRÑq%mq�Gé@Ô|o[ hïßn/ì×1üò)¶å£²1Chtâ 'S:-4øh*[ iˆú1Ÿù‚¢]²ƒŠðìGÚxì¿QÀ±‰xä,\»ÿH¤Ÿ›¸zä‹ü¾7ìr”óN¢AÆ«ÝþÖ&€ö3å”’{ÍÌû÷™.™TazZeR“J6ÆõÐ'tx뇋}§¸¹Ù朄ñt=«í °ƒfsàûžÍ!®Ã”-v ‹\ë�ÑÑjè^ßé õ>%ä j%_‹&ž#G~Õêê\2Ù@a¬?™žSiëêi*V¬ÃûÍ%Qï Äb1>ƒw ÁàIööî<šªµà¸c&óqp *sdÌ,¡PB™g2O™2G$‘È�!CfÇ,™)CQÆ Ç<¤™)Âûž%ëÖ¹ºîZ÷}Kݽ¾ÿ}kí?öÏþíýœ'ÄqÀ×#Äú�öv*•×s µ }³Á{‹ež{ uÆå"¡…6`ÿ>ÓUƨ³È°Zñ1òkIètsš~Ϊ$¢œ‹3{·ÀI�’••ßúº `ËÙ¶cpÏT4‘ña&ÌÐáÓéÎI�$£=8î'Wš�sqvJ%¸×s¢°ƒeuZÛN}·̈W_l*w¨2ž(Sä&r¾^Ãp›±mLý·Œü‘QWA8`¿�euÏ›®r{Û€¶]=8ôf/Dñ†nѾ#Íè^Æ�!Y­(Î!Ÿe«s°Ÿ•Ô‡l(Q'øŸï»AÐð6’§Û?^m¾ÑçºûXîÞyt%¹þpgoTÀ;hä*œ�Ì$›k¬üô­¤4s:'ÛÏ:{ýw±«Ô�#¢,ý¡¢�ºK$7bÐæ—>#ÏRUs&¦Êê�ŠLšXþî³øî\ $ E4,yÁEM(Ç<Êm¾]¢ÌÊ·ÞuðüŒ“Ÿ–øúšÛgþ˜[êÁ¼ $–“ìÅ A{ÌN|;`þr&[“Q´¾É…ê¥9F ú‹ûÍ�¯åp %¼%‡'ŽæóbAδûCYÇeÀûl“ÿ-”ÿ¬ˆæTHE²§…,1ýõâsºã pò: ÿÐˤi…Å]€|[¢b Ôy�„Q;]§ËIç'~r¹§˜ö5] J`À+ÎÈ®¸"‹'€ý›—œŸïäoôl[gЄ$?/‹bfN±+¬Ö�4¸ýAÝzCÈFh`ß³Ï8èݦ®ï�(šL¡ ÖØ-÷,£lÒïxü.¦0óI™ÚˆÂ]7!š­õaÚ51ÃWÈkV˜_±È¡Á̾ŠpÉôÙýÖ¬Ël'¡în�Z4‰2 6n´•?¯†ºB©;�y1ZÕÊ=.$k¢3¼àjC©n0•Žuù´Çš•ïs©Óc#Õ‚´ëÄeyj,Åöûæ—â¿ÿc“òmЂÈ-ð~]€Ùn!)N»�Ö¥ñ¦ñŽ \厵=Ê©�ÆòçœÌœÌn¥ ¾|7äƒ(´Ôë8"70¢þ¡`‹4DÄ}Á;±Xùtïzv7ïn;¥–š½¨`7ãõÝòE@;y�™çܪÅVÄVà4!‚tAºôýý)wdÖVÖVæpàpX~}Òåû¥ö§ö'.-;ýu‚¤—:ÖÞ#ªèÛÉH*.õºÁNWN× ¼\îŒúGøž¬³ˆxFÊ�–õ^p¥èâ+˜û;UÚUÚIW T <ÉEn«¸–°–0½RÒñ¹Âs…Eׯk¶û6’Lj à|’|’Ýû)¼s?U5:QZ'QIf4û黳ß3ò½}�Θÿ6²bÆg˜¤��Æ/h~'ïá¹z³üÊ+I=”8J0ñnÛ1ïÅ€kØ¡…€ýšÈxL+¾—®,…ék}>××|oì‘‘ŒGRý‰«c'-#…Êöï3±ÊãðPÃ�‚ãBaŒÚÍg¨|%©¦n®„€* ¨²nk}˜,f€†°¿ÞœgÌ«)Öt"(‡„áþ>�ÇîP”·1LÓ‹ÖQ{œä;ZÁ °ÿ‡I2(ZLXqÆ””òÃ3,ºóš°>t3Áϧ{Ù—é£æð+ðIB†û½mŽ—A´ØCh…£†ÞÎz“úÚúÁŒ.Và$s9sŒ"¸ÅÌ 9ÿ0À~Uû0ë.æbûÆNŽïy*QM•`JÃ@÷)ÜÄù޵ÏÜÓ¹ý^ÔÌè€öÿ0ª„ë%ÏòâÌíT�bÙz¹]¶Éãž|N›¡¦UÑHk¿£ÎEcRu†jÙ0À&0où‘¤¢X ×�³£É¸.ÄžòòܹÁ÷–~K´¤BïSXØ8z¿¹sí$hxVç} „ëþP�œ¤í¹+x=Œó£yçF¤ìL1»h·’j( (ûTôNÝkï1w@:ŸíË·lët'8Ó3”‰?èt^áØoNˆ|-¬Çx1VÜ…7‹qºií¸<é.XöûØG-!Ç£éúp X}¤èݸ1ªÛ.èw�ÀÚ #¹ÂJaaõ|,¬€ö3í¢¦³~ùLGáÅ �ñdþ’3ŸúHIîàDƒ†õ™Ãïgqä[Làq¬Ø�2®B~ Ý‘lÅÅg ©Ä%ÄâFFc×$›}SmQ1ov1z?ÅÎr °_Õ†‰9r.-Pö·¯Ðj�ŸòÇ [þˆ³Z{à—ôGÊéO˜K‰VG÷‚¹ÓÄÞî®mg¾¬³Ù‹jogO†e¢]+{yº!ô{k[ysÄßã}ùw�u.òyAïå4¢»³Ÿté r|tùý9ò^cí.ì‹ù½²ù)ÁµÜyO.„å ð\|ß)CÐh7U�ü 2òï^!Ÿ‹ŒüL¡ˆ2§Öï¹L‹U¤5Çøß3òõgé-Ú+.„ŸMÆF“â‘@ýÄ;`›é|ßtl·$^µnã·Ç™Ï|ß>Sˆ|Ù—ÝéT“â‘�÷<ÅÌ)ÀÑm´ß3òµü¬ïÜ-Ý~ÔA�Eå 6šé¼yª#$E�­â’í öÛ>�hÊܯÄuT…¬ìŸ¦"si›¡åeí\æç™3xµ^Çß7¾ƒúßÚƦ�2î{)±î-­§Û`?ÓTC]ŸPRHUÒ$ ´Ž¾í™ÒǬ%* ¦êÊàjã{óܬ«¸Äç¡îS ØÁ²íò¤ð4è$m÷K*»U‘sUœÚCÊ* ™øÃµgÎ7ór–�I ;÷Î °ƒe}-Η>*ßѰB5 ˹ӈB½úö¼n+�zÙY¾�±¨òKÙç…A€öO-¼ÏÓîi¦7©Dš‰öã#fí¡·ð C¢´O»ˆÒ ó,½bVG¤õJì Ù ¢kfLv¥1ïÉO‘»ËTyôpR¤ïÉ÷259øÇ µÓÏÆ:�É fPó 8 ïÉ£d­‡K¯Í^FÓ“í%Ùoñ¼íýmI1+ÈÝîøºd§Ýꩃw“g Õ ÕÙrEÏ:›~³ð~3ìÏe:g:' m o 7ÝD$Å)‡(÷ˆÏ�DVZY¼;m�fyíÆdŸ(•(åÔ߯³@ê¾�î­ÝHõVžï”ç2q³U4â8¢²É²ÉQ(¢Óq§ãêqvS Á¯Å¯uÀwÀ‡,·¤|?9Y9ÙK’KÉ�¯áHU"ù�*¼à£vboe¸ŸŸ4Ú+ÐñG”'—7ÁòSƒRƒF�°nÇœ±Xü;U{W{ ;ã¦ã¦ç ·”£¢ ¢ Ø`*ƒ•Á¢s¿îRKmˆœèùløl�çB“ S‰—yõK—ùM1å’ ö› !Ï¥–æ^ÔŸH¢-Èïµ#U2 Ÿ¸Ðîë¼AšfÚÎ!…½Ç\èä·s!—/T’,›7`÷“>û\øy„0c¿¹òµü¯ßÕ{³u ­çèúŸuI¦‰¿ÆªÂXZ€z …‰­¯—”ž¯…•[PuL4Ü0À6-8Ùo"“±ï=ãiøÔP!›I# «¤93ñΉ)ù*ò·'|„ýB ˜€ýû,clàVnL †Ę"rÎ5êhi˜ ñâݦK÷çÛ«^k‰·é{‡ð°=ìç™}�mŒK>/ç³–ë´\N“^V®8 ?b+ÿ’òºÝéYÅLÞµAÀ–-5´Æßw‡å>=ÄÄ:òÐ^Ì™j3_ÇgfÁÕ U�8…qì,S`ß°XÍØ­ÎùÍÄ•T_P–é¶¡ü'ß§‚EÞ‚åéÉ æ$…Æ'Y›z�#¯��š-TÌ~`2–YK�šµ Ûo Œü®ö�Ìi-i½.E5v�·¬TI©žÇy„7´NÑ�/òÃ{.6Ô?¯�y¾]‡@v®…b!àl€ÝŒétA�KçQ“ýÖÀÈײ×ïvöûXyŒ9ÃÚtˆTö (ÿØú~ú7ðÎOÆXQíÓZ"šdÞ]ÒE2o\+û5M(ÖO}«ÊžªÔ•)âR †ïýÞ+ý’“åŠÄ90-×äÁ´óýÖsvãim€ý>ÖóÒÞǃ2Æ›“ÖQˆæ&‹õ,£W ã&Y}EIìH¼x‘m»Ðt­ `€4 V(½¯ôpPÊŠ§q6/ÃL¨.FÕždì£U+ʆ· �»À*Ú,Í!Àûž©Œw¯,á Þvç'½Æ”[ÎCÒ¼ ô¨|¼ç?Âd曪q"÷ø>Bi/þ—}3GXÛÌJc[Qà [ ëì¯7ö› #_Ë�Øw`ë ðlYŸPR¢Ò!wô©YÏ&ҞÈ"©QXGoˆI’ØÁ·U™’Ùlâ£îÁÍ1O…!™ì|ô‰"é‚‹Z¯ i¡+è>&n –Àû§f2,›x›¸(ôôQ87âè b_2¾ Í¥AOé›Í>pÇš\S’lRÀûLí‰Å+ÏÑ“p¯>"CY)ÇãP‘š,ö°ñmȹä*âÌå)]ˆ³+`€4ÃN©ò–DŠŠxnö�¸m¤ �wCD ÖÕÕñ¡b‚ÒÂN‰áGjp+`€ý ÆU¥%�&Y‡‘¯[:9QÝ4óXiȃÒà:X…Àbù¥ÀEuììT­Éÿk õ®± –ߦ#*T§ù]NtÓ‘Gž3t›¹ÝÛxÖ Ñt±¸ÍÚ“î7g@þ½‘V©²êË £=÷‹¾n6 q :Äa§µ|y ¬ÈŠöø�kï³fÛ–n+9jÆФ¡ÜšÝo�åÿ‡ÙýÛ¬i‘[bù:íûÉÒ‹¢ïvû¬Œ½Œ}ý9iœøÍ{²Å‡Úoþ¹†ã ÇÉdÜÜZªy‹½ÎBT#‹È‰¤i.|Ñ#~Œ3;�Wÿ8%%ø):.:®€5õá´KÐ+»õ+£‰ìv2á¼Ó‡÷mêÖš üˆÀ˜`Ìò‹ˆ¤Ó¥ÓÇÚjuvƒB^G¼ŽˆÎˆÎ¸0r4ýûQ­S­ËaèvüuºGἈÂçw µLu�*ît N6—F;�¶ÕúG�+t±¶{Ùrâ©â©n{®&ú™¨ý�ŽÄ‰†¡—¯—ŸB„Ü«WÅ,Å,«ra~!$!$-“_Oÿ¶°@Dj 33ŸÝûé%åÎýd‘lþøVúXБº%V¢ýæVÈ÷öA:7êW´ -ÆF|«ÍxaJ¬ gó6“Ô{x¨ y …R–è„ëtV„ý*‘(™%¥€ý<›y*ê›j¯2£žÞžB{yÖŽ€AèdÑ»n+bñÇí(¾ƒþÞè ‚y–¯û1æ4åJäÌh4AŸLžU4%ªÐU]HíÇ·©%-¨ù´åè‰ï�× `Í64ë–¬ ׆eÍï¡åCËó- 4ì ›ì�J® †MêÔ»må€ý>†_þŽyáH¿TÔ ˆFäƒØÍ¤N“X%.ªÊ-*¢>Œz”Hûì9¿"|Àû™6ý�¿‘çJ3ñ°v»Jß¡ðÿ°w—AUm ÇI é.%TRé�î–N�C‰”¤   JH— xh¥¥T@JºA$<´’ïžAæ^ÏÅË›¹ï)êæÿí70³†9ÖZ{¯³<”Â^%aöO1ˆ“ÌÛòù|ìñ27 °ŸÁH¦%Hªå|°QI»\¥³ò[´5?úÒxíR%sQ—%» ËÑíð„b–Ø÷²`§<Ê ’Q�Ej�ÔsYãÁá¢Rµ(ò‹Ø°¥\o)3mÇwôÔØN&Dì èÜe¸°N¤_¯àSsYäôý°{îãþªsÞ.9³2q…F€ö½ìJcºPo—EfqÛ–3bá#ñr£üVö4™I³yëwFo Ø3­9ÄZ`öãŒß´Ì‹§�ì\½ öd}ýœU9\#ÑLÌŒ¶|‰M^ž/B‡»)`¿Ž ôû9r(o}xµ68;mk9IËÑIÚfÌà2Y�î  -ޏˆÏßFý�˜VÑ„8|(˜þå"œ±›Ek‹ŒM;ìsZŸT¢h3~µÛ£]REøG=§…½§a˜±ç¬½_Ȏͼ VKÉÆò?Í'+ÃF×nm%œ€#Ô?än6¶¯ŸÓVc~yüm€Ü„ÿôÖõ½{ÝŽÓ"®G=WƒËqúßÿÊ&U¹:<(@éOÜ‹Þjò”E�Øb™µR�°”ó�ƒùy² glGë*ûý¬¤ÒX…¸e¦¨{›½ÝD}ŠòÖ P]ÆÓɤÏòÖUŒV‘te`€ý Ö6i€YOçŠE~c–9uÙÈÞ¦ºÀ€îÒ+CÉ‘’\½é½vÒRp³`¿¶Ý û`›®¥/¼ŒßipW>5½ŽL¢Pöá]ƒª i¹1�ÙÝÈ~¼„–§&€ý~¦A œŸê _‘Ø,߈Šx/°èÔ'Öú‘Bwìéó4Ïõ,³.—°t7ÔvØq3aŠKK€ÃI«œi¶ùæØX5ÏaßÓè†ÎiÃ’¨…Èb�&ò=‚]K>Ö–šxLÅ$»ã-MJ‡r⨵$ì��(Ô#£ª¶h}\‚‡|l‘ƒ¯�ÔÝK!¿õRDCa`þÁ!kIޝג�_Σ>ƒ\f³@Wa®�fN7µ–„Ëq:×ý»Ù;c ¿¹ÔÓî3¬½£ý>ê{;Ü ²ñ �þlˆ1œ 3¶¥."`¿Ÿé«aÔ[¦Y¯y›ø¾Iìrsä›{ɨ, –�6½ˆžëÄKÆÈÈuí¶ `ÇË™öbÐ%Ê_qžH„PaRé/Š�%#˜$\ð•)ÉDS «?èóœ*ìxY½ÎžÓÀ½!sÜO¯vÔ:¯Ð²–*±á8ß®¦¹GÛ>¡‡”Ç&%fÜ•·°_Ç2z–@ŸØ¼là÷\o2Ì«Dr„ž~£(Në^Ê–&Z¥$Ä,Ÿa«w°ßÏŠ‚·”)ýåî`5¾�`ïñ�×G\jòfErŸÈ^Å�CR– söB °ãfAþ!ü™ÉtÒÙ¦jµïEʼn蟲0ý¨»×»AÑ5&È0"ؤ߹Šw'qiuv_ åJÖÔliƒsáɈ¤©õÑo®Åö‚ž†&/»hðeYDº-õ ‰”Zû4ø ËAœ|u„6×ݶ¹bü4p,ãYÍœ~Éþ�}ÖÃÏ‹ÐÚäŠ;„zÜØc=ê,09ôü°Ð×íIi9ÁÖ>ü×äøÊò8s�¿p‚Á0À öÆ·/ë•„E™Ãº^8Ù¿¿·HÓ¹@Š yãTƒ(=�Â$ŸIø5dÀû˜(�òÉ•ÄÍW ²…:ª;KÚà$sÞm‘Ë}ç?RG).b–câ�ökÛp?FÎJ/6(M/ã]ÊÛk [`ªXnú2ú%ü7fø„ry€ö³ÚÂx¬û%Ûwv2œÂÄ)8Õ•¼õp�C=Âè�Ãå;×·ÙÂç²oQÐ#ØÿÃÈo×åÄYØ]qŠeêcsÙ#Ž{�µ� ¡ T×JíÔ¼xʬR‚ü£`€A�gÉj¯¼Hݘ¥óµi}°‹}Eì>a£�ŸáC”¨b_-8t?ê¨}šøÑy½Å„£GzeDmÏÈ\Çè¥]2Ï‘²�è¦ÜMª&1"álT7~Ô†È>!Ìýl_žm3mR±²RÓ” %t¹ò¯1µO;–rÆsÈkîü;EhÝŽ”v=©,ûulC‡ÏñìSÃ~Kp'u„àÃ8È%òW{.HMðuiƲù•CC8‡ìGšŠ¶³a¤3ÿœRÐÐd2W±Äç¼@´(øQCú°è æg–SÌŸrì{ÙÅ|.ý\�L¥•:šÜâ!Ü-!“ ÑfŸ•[„~ùÝ´^µ¨.€ö³Ú(.s–*Î2Ù`Ç¥~-W�©Õ÷¸«µ·ÿj£áX5«…˜`UT>[ê¥÷s[È—yöù"‡š{™3¡éˆ¥-—C¾5·•7²°�þ>Æ—÷‡Ñ™çÂÞïòAF+ª'óñ‹n=Ä“®Ãy7`ŸŸÃž5†ÓíFUyÖ'ý,üɃ¶œ ¡ÏxØU>tIa4Ù-EVÁ¾3 û½W°÷"î)”à Áqƒž)Q tÙi�ZSÀŽ?Ã`Å^i9L2cQŒ]á3Ç�mºs4hb½^¨rÓÆ÷�;Ÿ9ÿÚ›+ °Á¬Ûë“XÿžåòQï_S@ÿ÷¡_wÆë7lÚSm0á ƒï'ݺÁüÇϽöËS�"óòb)gþÞdëdë.ã?i«Ð†cáРM½€VmƒÅëm TBùv¿ò!�ƒ .�TŽTÂ?˜˜Cg8¨.ó©ÅA-"··÷›ÞŽ[Bâ^ç€æEëE+ÒME¥Õ²ýæAúgS,S,‰X‰X/”åŸùv4Ñ4Ñ‹ÆIÿ\.KøŠ´î‡û�ËÀyéƒ÷cmIÅ¥ µÁˆºñg¸§¯E�zA[Dçç{ΡF𾩠ñß``bÍ**6P[_•a•á–5ÛçZ¥Z%µ”¿‰ðua¦ÐPñ, �ƒÏ“À—sþ]NÕOnf¢q~œ¥gáaî19j� ûÙþQç&¬NÞåÏë$A!wÐOwÞî ~bÀT®j{çü=ï.D5¶V!G=¬+|×ìßÚ %ú’vc««ºÙô/Ó!5·.|hš&õÈ·5ŠJ9k:Ð"²é%n ?`?Ò®„¸¾ #«8õ˜§mü}ï¬á‰œüäÝiÛ9ß½4ï.ê…缩é]Øñ²½²¤°TÒÊžr»O²•,º#jê4阣5rÍ\Ÿ�¥!©¡²ÓÖ€/x㬺¡¨eÿ‚|œØGDz7作z•f©$çF,‚üj¦?<`€ý[ ð´«M×b#I5Ó-á0Ó�éßP¨™«£™ è:'3œFÁÅã»/4£@8ûø*‡aÉG.Ð ™d££ö…`÷¥V_5°&Qæ>ë³ÃæW¶(„›RèðqÞ"Hu0 EE¢²/Äýõ¾�Ë—gÍ×+ð>Z4¢Ômço�a§µŽ‡ËÿúY½Sßf–¾?÷¸Kò©xFuÚ’\8:.Ä�>jÎ7Œl¼W&ì js¼3�ý¯‰¤ìû$<�k�3é´"QЛӲÎÊW纽àÄäS<ØïgiC~Ù1ÅÈ&„¦$‹®‘~ð«£XM*_«F/uT¾Õj7ô fgzØ�3ûjÛ—g,Ëô:®s2Y¯ ‚QºÑ…ØOác†ï>SUÛ´»<¯”α> Øñ²Õƶøh!wpvíIΠƱçöRø,)6Kõœæ–̤Z”WÂ…‘ÏIÒ…¢vü …Ñü¼µ¬/$®¸JAMªÇfdŒŠ÷ß¼Ÿ–�/ð_žšØhQd…or†±ä5 ;¾pß|¹|~�ÎTjýiä¼uèQs`Øgµ b`§õ¤Íú'Wb×9J›á+È4sXÎp„Ô+sFÔÑ|¸È„ð÷90û×sà`Âý±�,HØA@s¡XÕ.]gÍŽšÃŽå°ïíìױ⠚õ¹`±ÌaA®‰Í.êwý]ŸMQ";æt´´‰¼ºÅ ¤Þ¹Vös_¬¯æn¥=y‰+]¸j5²OtßõAÑ™2%Ü,°ŽkòpªÜàµE»ÉÔvÀ~ëm±÷A»IãÅBéÈÇö •F©KëC¾KÔP^;/T`ÛÁ7Wc`ÇÍ(–D+=³fošŠ‘fÎWsÅobú nË¿GË�çâü©“€ö-SŸì|ލµ{Û§ÔèjP´“îxkr-¿�ÈÃÆ;ô¥L\Z5'æw]:û9íÊøåýO8wK6OGÉÕù6ùQ lGûRŒõ»ÄIÊzET¿ýœR`ÿÖpg̉Ð(éD Ö"è ƼG»²ú$q6”=ÂÈf 7ƒíF¤PâR5:`Ç˲YbMÑ4Ì/]d&¿6¥Á™Ÿ9KØ:wU0¬÷Ö=òl×§ë ÀŽ—™›‘—ð¬"KX¯©^ÇCÑx–ü&ÞÉíþîÎøyRÄÒ4“w}€}«À#Âu[ˆD}H³!¾i»‹3zœîu;N–�€ÙµMü9w•éa„˜iNÜ'Ü:ؽáÝ!pîG»ë¦tçÚŸí�)âµ7 {GñVP_‡ó‹>S²]ç-qŽej„NN¹�a°ÔÒë*´ˆCÞ�à=üÜLRi•V¿.Aå¸ÝQçfNýñ7§E¿îÂÀ¹eØFÞþ5¦ƒ¨ü^ޤ“sñÖÅ[ÆÔ¥v1{èÈY¯¯ÔQ-Z-Ú,m5×/Ú]+h^�ˉ ÆÐn¿’Úo 'è ͦ5…5…9ßÕô 4þƒ^<ð\<Èmúyå~7ºƒÄ–…C¡Å7Ç7ß]‡fÀmÀ­ G3wÐÛªTâTâ`Í`M®Œw%ßnÜbÜ" ÁùŸkuˆÝH”†¦/´Ñ��ý„ÅOa–¨>žþ³uŠ;‘mžÐX.ÑfÓfsþ‡½û§òÿ8~²²÷AE”q{e¥AfdϬc¯Ì’„�ÊÈH"›��‘•HdfÏ’�MFòíüt~ŸœO}|®ëóý–꾟œëzàrŸêººï×}îûÍ Áƒ¤×gþ“|Ê|Ê4Z"D#Dñ�¡—LÚMÚMæv7Žõ¦õ¦rÒ—m_Å`¼«†ŒåbåZåÚÿ?Ûáó}3·Z”ÜiõÞû¸ð�ãb§k èÿ¶¿Ç}|€†´Ž@¯° TE…fH�ÚÙ§r4dU"ƒúawx&+HÆ0"¿–ɬ÷l²û€í~[9™ËL6“Azáy£1¦F”2�ƒŸ)^ì�ð¢Îó|È2–�™G ¸¹0Àþ­™ ‹Ü‰"-•>˜Bžq°�”Ý—Š?U{iä%ë×èÓë\•eN–A`?ƒiH’Y>÷z)Ø{©�ÄøÔ1gNˆ‘XÕGØè&¥|biÚ»I}JWwÀÛmFø”Vý Ù1:Ò¹™×ö‘fû.Ç2G\ÓÂ9¿2:TDT’ß!5œGIOÞ`?ƒñTèÈ&ËÔîÉÑ/™«|6S¨2t�ÖÈ›‹\�Èò]“�ª&î]º–Äÿ¶]¿\eI¯°ÉH’¯Éö?ï¡§€>·ê²ð¸…xÜC©í f÷˜q¤Øin…þüš–c¥!ô�V©&÷ñ æ2åNâÊj2Æ”pƒ:½`R\®v!^¼ŸÐ¶š"·êýGg/P\A`€í6Ch×.ÙäׯŸ‚ß]Ï�”åXBöqÜÛà Ù¢åcnÖ¦OºÙZدc„eãl ú�E ‚÷‰ÍõKè0»£ÂC÷¨Y‡Ž¤oÏ“  HÇŒ9ÿBÀû‘6=Ë@XÏk×H:¬Û¦Þ·7ÜËYL9¼!�°wŒ]–fÆ^Äßà]×e CÀûŒfü8MÕi_b\H‡û©Ìü&mÍw†Ì—?2& З%zJž>´!FX `ßËB\ò®—„ÊhÌ1‰%³d¾ ¹)ŠN֢ϋ—²…%Ù5•™¯ƒ#Úº i°½w#7út® ³s®R©ÆÕ*úVKKíçÔò|pæ­�[ö¤\l¡`€}/;[—&ÑÝÏ(nA¸bÞ’-7ÊΛ*7Jc6cýÚ¨Ù€7þȲÓ8`?ÎDMËœˆ„Z˜S\«fÕâÍ­íX¬Ê1@uT1Ú Ù4¶yyþmž¦€ý:Ö×{Õ™O1Õ°Ü?9no9ÊÊÙi1fw-�ÄwÓ–Åœ#íJÁý�šUÉ„:b „íéÈØþ¼Iζýºšo2Õm3Q5ï᱓�ÖŠÈwº®†¾NÃàᮃŽWC7l9ÉA-ÝND.o»ªyqÐÈæâ.6ˆRÿ+k³Á¶_W«"üüùÝ�§_Œ#ì6ƒ:�Ç¥Üwº®†¾/»éÏþW¶“ÕÓçûŨ»ñŸ›<৆/@+ô(Kù§0(œé8h9Ø?®ì÷³BsÕºJL„™’®·~«‰úßô ƒ`u9/“62ËKCŒ1ZE§z:ìg°–Q‹@ÂÚCîDtç'¹’Œm« m0<1T’«7¾Ù )UMiôÀì×6¿ð)û{Zú’ äí~ Éi�i�Êßô3¨\;uzDcòcT/Ùݦ&€ý~¦A!™Ÿì~t¯Q¡3(¸hß ´v¨Ð“xœƒùg=ËLéîÎ'5퀶Ûlš2É­)Ðiˆæ¹È4ËâÃÈH•ÐמÓì�Áo+b~¼"–É{›ÊÇüú¹d¼öÉW}ñŒGä7|NAá`ït.‰¾f ÓаÁN«¯Eˆó€¯ýž›½º›It—žJi(öÍÜøÊ¹$ßösÉàÏ÷‚âæLK³‡ÃñÕÍ !ãu;�K¢ïËnº¯ûw³×ÆôWß¶áîwòœ€v÷úªoÂ7ïÊÇ¥³O÷f]Ę6©r[êböû™¾a`­eªõ²�‰ó½g‘·O«ˆ©eáÍÜžÃÏu¦=|XÀÆÛ°ÝeÎG6cð�—?£âǾ7ÍHȨ?';’ˆar—Ó_®$Ou8ERýF�×X`»Ëju6]ú‚,HW6ÔÚϲBK•a$®ÞUÌA¬­¯ô°ò`'¼tîì×±ô®yóØe[ð¦û.ƒÕÀ(¾°ýͺÁ²¬ž¥°T™Je .…t{=;À~?+~‚P¡¿pºï QÝ›HÞ®€8}Ìùz(–竬%‚ÓX*rýá®—1l·Ùõ€PÑŒÄC§²LÕjÞÈÈR±=à>ò£ÖÊþUì<}Lj8{¨x½~ûÙ•Ìù¥uôç|åA…F«ÛŸÕœûôåæ:®�žóµyÏäÝí5� *£§Š÷e‰¾¨T>è¶ òƒ{rzrÞx %â­†ô1/ëÙ_sÆwÆ_¿¹V°V@�„Ì—Yë~d†{^Õ<&A†ÓCüd+˜G*ZªTªÔ†� çXP5uÎL¡j[ òÞÊÄÌ#xnÖh2䃬(z�-†.†î兩�J"SS7N8N¸ˆ¥üÙ·ãÑü”€÷Øß�%aŠL­`+l© ÛºK[‹x€¥ÁS/ÿÌJÛoâ<²™#ŠEH/;Æ-Š’ŽŒŽÌCñ³,gYFÐsQé‡÷Ãyıpm³m³ü¿líÀö”C‘Ùä˜J›J£Ï™’ÎfŽM–>q-Ü™0¶:üÍÙjÎx_<,qÁMC$å1ß…%UjíûÄcðô´‹¿ŽÄ‡U�u�˜«š7øȬ&8þ8j þÊœ º}ÎÄöy�¿g&ÑÍf•*ï«Ì±J1©î4gBß—ýÅ´½Í™¼±Ì)> ræ]³¥íçìg° �7Q3bÚ“!å‰*Ü–§H™¼‹äõG•z©k‰„¤BÏQ%çu¶ûm‰Ž™VïnžªéZ}nFÙpÁwÅxE /¯Q�®>çŽìŒ-°|Ø÷±y™ùùØh½WëfmÊDÓ§¥Qll÷ò+µdŒ‚fõ±¼ WDSˆ�ì[¶Ž‡Õeî>eBóÌ¢dƒÛ|Ë*Ê~7=ÇãW1¥é÷jô&4žú÷¢�´ü‘|ñ¨ºñsôcÖ=þ"±WÄFÓ“„ê¢ÅoOìtÌúîH  ÄÓ‘׬M’F„¸ÒZö´â¡o6åÛÓ¢QvA1Qtƒ¹�§TYg.{ÇíýWŽY¶³Æ’oíKE½“ñ­M�Lj£¿KðNǬèû²›Öÿ6²lÁoœ`ˆ‹) ÎþCþ‰žEÎ#»„nZ<•‰.ûW—/¦â†æösÚ5V�¸6|¦^5!HŠ¡Îº|_ã­Wy&'/$<�ž%Xoá´7”Xa°ßÏŽ>ê <8ÚjŒÈå cÕ5j³Šãtïà€†4¡y«5²ò"|cîög¦µ!nŽ�òÐç„u¾W ûØ£e”zjRÂÈ£wšVO€‡gô¦Š)ynuËÉØ�³#èf�7z™-?";à`ŽÝÉð1¡ŠÆˆF¸¿NÝ@òV ùWæ„BÛ焟¯mùÀå.db.•¸Ûá.ºüÍÏm æ„èûR~˜…oϲ§èF^§3ƒ�£¢%`¿Ž­éˆ8|`Øk™ÒÎ)~3vú(]æÖM'r]æ‘,Q•°°'üì‡ìGšª¶«aÙt{þk�òõ�ÑD�âãïû(È‚ñ¢ÁÆlá·Ó¹r,ǸVrì{O¾€”~®X†òâcæ$ÒâR„„‰É«‹2�¾‹IöØWó;Y/×঻ØÏjä\™gHhûÛ–tÈkb…L­¾Çښݽçê Gʘ ðcâ•Ñ=ä°ä£oPǶӟ�³9Šœªƒ2&ÂÒ0/–6I×…~ëØVÁn‹ü~‚ÏŸeÆÿÊq.úú.SrZÑ]ñ;õ0÷ºæ�G¿~Ž~¯1H·W5§çTNÄýհ쇊a9B¼ªS'‰ëæ£*Ñ?3ŠþÜ+ôulQïÕâó{5í y¸RÐ_®ÅÔ¨ ª-úÖ{•q45r¶sÜz55a4vg´7r„�³1±†Ûš2º˜::Áíl¡\\P.°}Ï�‹y¦†>¯ ¿ ÊÃ+ 1Bÿ{»ðíí¼“³‘###ÈÑÎÎùï¾o§¯ÿ¤ú=Šª…iŽ­oÓRÛ\C;öïtOçŸÑ<´=fò2ô:+¿¬�J?ÃnÕ¬ggϰ£eEÍÔÆ%ÅGп6[4[4%�ê—ê§WŒ,Y"[Ùª*²÷ψ/ݤBÆúæ`ÖV.‘"�g½g½EIéÇÄ™UQES¥o¢2lä%Ù úôàΚ²Dp"øÊ}dËÉËÉ:É›{PÁ�77É]‘»¾D>óíÇÇd°…Žý}«ÏX�ב5Ymò€A˜p|+WƒHû6n³µ?óˆW*@Þb²U( —„ƒB9/2yü“f*f*^`ÆÇÇסm“w"ïÄÆaيƦƦ•Ä/»½½˜dÆKÍqÍqès'eÐtH¬F¿×;œ�9^Ö�æNèÿÇ¥,:*/„ŸH$Æ<Æ+…ñžoÀ>Íõ¶ù«ü.°DÅ[ÿ/çNŸ×Wãß>wûü쎗ªû2ðøßM²q qu™ì4wBß—u/”Õ^?Ѽv:'�—i®’í!÷ Ž”Ÿ±¿ÂäÓ�©{.á¬GtVÄ0Àþ­a+³•´[�ÓÍb{š6MP}‰sª~pS1ŒË0iÚ×$õᲬ�~?`€ýH;êþ�–æØ£}ñB-/ßtObW“äß ëLåiåýÔ¢³¨ÌAÓ§°Ýe›e áÉ� †®&:‡1ù nÝ!5uæ4Âáêã§Þ»žšN “·lwY_³ë™5µ`-LJtoS2ƒëAT¿Ð7§]ð[5KOð¯ÝÁPXÊ8-  °ká}^5iZ0 ©d3ÝÂm¡W (‡hĸj:Iäg[]ŠY‘5( °Ýf $-9”ÄLQKR{ž¬¸Ð #¦ÙM÷}Í4äz׫ß>f ì`‘L¥rB?�ŸP¤œŒ?ÇgXòNÀ[.Ñh§óxôYóÒ\ÃhCnN�±èKx!8|L±Í×A‘lÞÆ%…û•óxÁíçñ¨Õ^kü‘ÙàxIјç×)­\˜všQ1~úÎ¥íáÄáO£wÆéˤãQÉßá7DÅ2Qs²æäYL¾®¬¨½ÜKÑÍyÎyŽ!Ï+ÏkÞ‚Œ>¾ŽìÚ d!grÇêx‘1¸fÀ·¢ÆWÊAU´¬}]û:–§ 6»ÁJ ªj>T�‡ï™·š«N¦Ï¹ì…LK«�Ì×Ö×6@w½ÕÊÍt’t��.Ùðo'$�½hû÷1jáÞ½rÙSê­D¢âqt·:×–5ïHyÐíÏf×oò "ã2ËË]I¿¯wÁá:ÿ?‰–Š–Š…èmËÛéBôÄy­ŽZíñ[eÍ"É"‰û{wMÕÚpü˜‡™g™Ê,óLÈ,e�L!$C„$4˜g™" e–YÅQæ¡pÈLEÆß{–ë½u®®»Ö}ß®j¯ïŸµÎZû�m-Ïo?{?ú_Æ·ñušˆæŒzÂ{Âwï'·ß÷#9T-AaØý$Ï7 7†gí7B¾·ÿ×û¹|9ºÅÖrŒ…GÜÒhïz±k1—å£z�X„ÐúzI[ÙùDµG%#l aS¢ïaðF2%§^o³gfêÙ,z1X¥MRnñLªU“ç{<<Ü/¦Ž دgY£on䯗b˜“ZPDϹÇÜ@YÂoÐ i<7ßQýÊ@ªÝÔ7”Ÿ#°ÏœjãÝ p/°¸O©ä4š„b½Æ•â§%Gm=>{níâÉ™3V;X¶k»'å™™ûì�àmöá<'%bîtûù:Ak›ã”ztÚQÒÇY±;ø†ÅnÍiw*`:±´æô9¥nûÁazѲ‡¹�Xâ-±9dNæ£ØØ{öb+ß1ä5×Më…Ê™Y ¥•û13váû­©�÷ó$Éeº®¤®ÕÝÓNX(oB©¢Ò}ÄÍ$VwÆL0ú9ã^Ô?¯©ø¿^S…’î\ ÅB�bÐÅi«©püZ·®£–ûýŒ|-{�íØÏc�È㡌+S¡rÙ’B£k³B ãð®ÏX1Szúd¾¯å‹”ÆÝ«û1M,!@w«Ú‰ºÌ�%êl-†\¯C¿ìûŠ3„9™îiªýæ.Že´öóXO³“?Ϊx_n:1îÌ€pe¬çY½r×Éê+K†ïJ9vˆM=µ °ƒfwÔËâ4nç ÈÙñ7ÌÜÇ˲«‹×v"]µk­vká{Š|B›¡=`ß2­±Î<4½-ŸËå�ó·ã|9 GZÒê™ÅMdB`×XË9„ôžbÎl¹uöc-Öfæ‹›Ÿ®—­‰U¹ý”, áƒdßF\Í0Ü-Qñ”otí«Ïé•€öO�ð½5‹LÑÊl4KäÉø·8Ú‹÷’'Ãù£!ö„ù.ÅH%Ï×âv°,—;ÁG7Év‚÷8©ü…‰X‘˜ÂìIÒ–©ó’=Wƒ©sQÝï¯ÐXv°ÌÚ’ºLdCÉZº|Ö�K·ï^DZë]W�›[›#œŒ”håñ8^æã½€}«""#ô˜Ç‹Á¡±"²'¿â¸E0t�Îþr¨“gñÎâºûÅ oo ¤|™ôë(ÓõÊÊý÷û?¿¿‡ÅÄÞn]–Ђ'o-¬q¾ZßïYò½ý=Þõ 0„uy·¡\àÑР4"wñ« ]‘Ê&Ò‘à ’5�*¬c°„çaÝìàÛ'¥|F¢™l£ëžwšâŸ‰“>àdH‘¸/úÑ ¥�ŽrÝÏÒ#¥µ0Àþ©Y‰%¤…�<šIœuô%!›?™`–þâÈ[þz“Ü¥6׊(›0À~Ó‘&²iñ†_í#0S–sᢄHÔ.`ás†�m“žJ«&|°4iLzÙ0Àš�_Pi½%’£&œ›—rŒ¶¤õMdŒº©‡uéÓØ` ~Ya—ÌP) q`€ýÆ[m Ÿ![‡ñظìýDMãp|±Æà*ˆÏqb-|›¥fM]ì$Nê¶´ÿµÝ”ô­µ¡QÛ¦'(Ôe@ 8Ÿâa¤†<·ê¶öˆ\ÞKªï‰Âæ1ãD²ßÜ ùgmrå¡4A¶Yæ÷pL<5ý=œía‰ F„á�' üÎäÛ‘í±§‘÷ë¹U3Õε@He›VßÊ»ÍT· Á!Øo΀|-é,¸Ñ* ˜DÀv›wÅ©°Ö/CÛ-Ó#ñPÕ¡¨—±Å&ûÐÛî׊=(-ìß³ég’þéNZÓº÷aÄ“hÍŠñÅ„‹ÞuÛJw€ü}ÑEÙ¾ìû˜ëtŒ;Áefó †Ô;ä‹&¥P*�µR$ûÁöOIòk?o¹xƒîâuØA³uýºÅ … +CÊÐHÐíÇ”�m(i9“79I‡iAT¼Œ­ú4é!í€ý<®xǺÀÔ/3€B+1{âzj—e‚/uU«5AFýP´Sö\@0ÀþM‹�¥7ð;4vhõŠðv‘8ñ2 Ÿ`“§˜q 0Yêöµ6 °Á(Þ)PÔªúƦìrWÎ)lÖ×] 4eôÝ¢O¢1«Hó”VeÙ —Ø÷²P׺Ûea²:s ÇrFBC$A±z4)2ö|éÍ« ”¨ŽÀCß¡¤èÍ>ƒ›Cl\+dšwëNû?=)s„Ë8"Øs$ð씞ۣI•Äb`€}/Ó†=�êé‚f—¶­_F+Ž”¯„¶ðg©ŒQXÎØ�CZMøS8–� x€ý{&nQáŒ/ÒÆ˜y¹vö\Š•�Ã1ÛJT �ì}ü{}µGö¨ž€ý<Ö¿á" ±þáårÿä;G›1fîèNÊ636·±òh\g }y´9bñîLìÑÈ™ÕÍÉ£Þ„²¾˜™y@[šUìÛ‘Ÿ«ùg�ÅYŠŸóê’PªZ-!Þï¹òY>ìÝG�n„mÚsUñظ)F³WvÜн÷qráêz&ˆÔx�ó;ùöÞÅC®hèËžjï¶*öZj7E&,¬¢iTÅVÚÄ#¬DÞZ.¶(¶(5]ž@ž@lQô†¢HbDGÔÆO#²Ó]?¿SJþ¢ÃnέnLnLà›ó±Ü|ƒ»AUç>ívd˼j'vr«vé\Ü*D¯o¾¾C665Þe-³Û+ÂgSϦ‚§ƒ§ç’8<¿]`c`ãCFÞC�„w¯r Q\ßN[Cé°�Ò Þh•E/ÁC t²<Ý䇈T mm’”œ¡ˆ8Édÿ²Ý³ÝÇÏPÔQÔ-€‘sxZ­ÝkD?Â[Ê[zçËšu¿®”‘£ŽéªéêîýT þ}?ø« ÕÑÀwëÛÁ¯]Þɸï÷œùÞ>HË?³)=�>?Ð/AHÞƒÛb~Ÿ[’ºÀSmDZ.ø•Äù45'“ãÐójÀ~=+¶Ò„Õ ­[ªúˆà¶›kML¿2¹¥¥âíjÞAdsu�>^¯D¹—® 0À~k³×±¸ãS_š<ž±q²¯-2a9ñÒTq°,ßèÝv;e¹ff“`?·]�øà˜¥g,½@Üir]-ãÁs*…âS!×MjV•U‡u&·bàDIÍ÷ÍûõL‡Dº0#¥*¹I †�|«„öOÝ`±çáwœŒy.F69'˸_×?ë °ƒfÓ¤énÍA΃-¶ ‹\ëµááZ‘½¾ûxË=JÐ^ÌJáJ¨D™ŸU$òl"E_i´/…žãÔ¦Ÿ2% æ~³ äsб‡LÎâq­3û»‘„º¼ñwĽpÈp;�úê �Ó}3wö˜M|=›¸õû»ÅØ�§O²E@qµ¬À)³ßÁö[K"_ËAúNÀ¯fãf47¦:°�8{¾çé‚ûkmC7…“NÝ}È6 ÏõB�6i?lcˆدgÆçÀAu6YvË~æ­É].bS/Ø5$ÎåâÌÄÍáæ»ŠR±³ ]ð±ì`™ Çv<®Be#™ fò4=˜ÞxN~8 Õ<‰+@¥,Gs(SZëN¯÷D`Ëê ¶]û‚ßX~z¹y®S›™§ü ÁeŸZÆ`æöQ#ô>%5¦wQ8`?�=ìž·úÄçk�²í~å¸ÉŒfPŒ@ø‘VÃ[òÌžå|Y²5g¤Ž«=t4rì׳ÒúÐu šä@Õ¾kø°·ÑüÝ�w�ÑæüxÐ=GsñTÑ5Tú#.û¢ØA³Û�aâÙi,ʹçž½••'c½ÏÍÑîÁÀG'-¦NÚ{FÙ®ÐQXã-°¿o—hº†%ÙúÃ$Œ;‰®Å£Í/n ÏÒµs&&Ëë/ŠN�XúæZ|w.tO2ø¼ãá�¿SffH‹,Š,J=¹ø`Mܲé+@)@ù²dó¯[ÒCd×ò¹åóîýÄúû™‘�æ±WÀ–³ê5÷4æ˜e4÷›3!ßÛGJ©à­9ü‰Œ™~/T¬ºgË;ÏØ�`›Bo…bg$ô'C+Ó4¸m” |JN�©ÃÉëðEdÃΓˆd–¼ìàÛ"5#•QR*FmæÉ:cnúùá¥RœºWô7ñÉ@7ƒZ¸£_'Ù<ìûؼìü|ßXƒwû£>išÅ‹òVÖ{ kôd!Á³ÆèÞ”×Äœ2›Ø·l½ÛÊýƒ9E£¥úìÖHÛǃô]˜ŸÅÔ§?Ÿ£1§ð4NŽåhËËð:¡eÖ‚¼Ê4,‘= ™žk‰—N)î·Zâ¦ôôX/hÕ'x€¿~­½âE ¥;%M§¨…F›NÅ•Óiú ;Œ/yÛA50+ù·Ï{¬�„¾^%ï\Kuƒ³Ù Õ…TjÙ¬¦“c·öûŸùZ0¡©5Ç‹Fø¶œê“ e"á'¯õýÌ6¼l-h–jŠ�&$ ½õ(ïT½‘õã*‡Ô*�L©nÇQß�A^YØa…€ý˜v“ù˜ÁÝ\ø9ÊLSƒ�S}M‘£æJWRëy.� 7ØF9 ;¬6دg'ªºƒŽŽÁÃÌÖó¹Ä™ !M Ôþ2¢Ô“×—CQÔ+IQ•=Vú0Ù¬ a­½9/ 5TÎ+FQTƒâð@?™†c·hVÕìÍ2Lb�tŠSýÇP–1ìÿa²Œ‡>&¯½T°"¡š}ŽEm^?³ÝZtCæd/çC¬ú¸L:ØÏmp¼,‚�=‡­bptÀÄÛÇÓ_]HZϤOf­`�?CÜjI,@ªZ`?ªÍŽ$xžps¿¨"(MžNP[-Z‚½é–ÆM‰Rë\Ùà‹šÊí¿JÊ`ÿ£Nö)}þ(zQÛ5�£—Ïm›<ñ þFÆ4 �–^FÇ-]^ZËjê%(`€!LdÞv•¨²D׌»³Ñ¢.ÔÍ©ªyNó¿aÚÇ+«Þû,3|�8v¿9áÓ÷(C3FJIyã{Td™Tðz˜ç!#�N Ë¿¹h…ùšn+µ–B!ÚÓ2‘Žl#ÞcN(²÷^‰Æ<ÕÏ›¡‹ÿaïΣ¡ÜŽ�%û6ö­0•±e'keÍEöìB1”ÒµGDv!»„¬[¶¨ìdß“µRˆð»s4¿›©®{ÎýžR÷9ïÿ^§9çó‡Îy>Ëó|“ø$1DiìvVâП¿y|`g„ú¤éè‘Ç~Y*¾ÆP4Ì0Í0á`÷)D°•$ÊN}œξ€Ï:Í:Í †LÝx62)Sd”¦ ‘1W¯Äo—–“kŽªÁ`‚`‚ Ùe­%ø¾¶*Q…}7P½I8»´]–ñhñÛæ*|d«°UØÅJd³Æ³Æñ ‡iPYvÊ È TŒVŒ^¦ÇŸû~›E›EÆž_z�Läk{dc†Û/ËœÙN(G0h^´î+Û¿J&'}y;µâzÂz>$îÓqž‹ÿ$++6棈£7>ô–´ML^Ã7ûµoißš]ú²hÎ�å» KGøéûéÿÿ}ŸÏJp®1óò±@J¥â;aâ¸w[wFÿÛ.ç8,¸ïƒ»øF1~—3Ó%>æS6€ý>¶ª'æ|(͸Ï&½ƒ%B28qŒáù–+v°™…>d4[\#4ô©;Ç `€ýLÓ<çb\†è(x RO~|âc?%y ~ƈ1[Xôî\› "îå<ÀûQÆW ,c˜'‘¥þ®’~<^—23{uM¶Ñë]Š&ŽoA«g ÞWÀûUmÌýð4Ù"ý@û&=Šá8ó ?âîßž>ÓzãÑ2^k9É'Q½ü©Ç&Q϶ˆÏó6®b§ê€¬éÐL¬k¥MÇëï|ïÙVÕÄÚùï‰>ϱ¾ñœ‹~ÿÔ%ݨî¬Ä’.,BØPþeôóèﮃô»ð4s{sÓoWó甜 ÍÐ|Ó©@êßpi!ò údô﨡߳�>GU!BâÎx¼gÂ-Ô›`ÝmŽŠ>þFïÕÃN&�`É È`~tÈt‰¶|5HÐ�!U¹fçó�;é…vÎQ%>¿çßy¥*ùj¾Ðû6în³ÝæècùYïM\ ôÏï Åep:;–é²!Ý’lÄY~Úᮀ›�XZüÍRÎ$gÄ.Ø¿5u6xÛù ¦úÙlÏ2DÕ×�¼i˜¢ó [Ácš1ïo’Yó”72 °ŸigîÀJèiå*ö'Š´ŽMöÌãT“ÜfèÊàkzý̪«¸CèªÎÍbÀö–m•ÝK¥›fênb¸´,¡\É£?¬¥ É$©>¡Ò(üÑE‘ꪓ8&‘”Ð"›Ò 7h³îþuѥѥÎd3-3-ÙÄȺÓìß!SÒA&ÂŽ}è¥2ÞÛÛßõÿt­�ȽU¢Kbib)ô¤ÿ!±@TE¯2¨¬Øê?ngs}™åÄZy>²·›o73^ bbÅ VC~þþüšþšþµÒôß##î„n“ðßÞ–Rx™-áväQb†·ÞoWâ¥XtCI4ñ¯x,âC�]–º,¥ÿœé‰ ë?Éû®÷Ý:YY�+½èA¢SÝSÝ1îpä@õ¡ú¾q;Zß™L²ÆŠŠÐ×…¦OQÍ$š Ãß [â(%™ì¶.„¾.µ4ÿü)ï}¦¼ÜÞK¤âcÖEa§Ú½\Ö)S-Û¹¥¢"ñ¾±.ttçº�ëç½fû ò÷Öõx”µŸ >�’fì¶.„>–ÿõÙOÎn±µ‡†~GÇ\“öß»Æ¡Í Ïü‚ cõ÷R²µpð‹žy%v0À�6+:]ß÷‚ZÁ±÷„ÇùšójYPÝHÜÇ�™‰�¼3ª•4yn%B¤bj8€ý÷,ãÕ ovÌã}fTæ´ó°H_Œ¥’Íà§£Ú+_êIµ{†p>ìç™c•CŒk® Ï"›lVéá £Ü.)�ýÄ᛹§µÖ.ŸSÏ\loÙR}ë½h)÷ôìB¡ ŽÑGŽ <)v uBV6ÜtºLgÂ¥÷> Ålï.‡—­²"îñ“SZ Ývã̢ÿæ|Z…Ä$…* �ɼÌ;±ñiŽ"KÏqôgà#·¬ËçÞBÍVÒ"çlCw{Fß«�—K¿²r­.ùLìŠ`i#F½NÏAÁ;uêç…"j!oø81¿~Øù Bµ=ÚEÿ“þ—–³¡$U®�‡,v{FË·¾Øïc941Ö�•Ù¹¬!IáWko…Y^÷u~4Ç�lŸÕÓ•8GíÙ%_¨ðVدib±>:›•Ž p4ütÕ>¯è^ûÙé2uðÃt=XÒPªÊÀÅùKã©m€ý>ÖÓäè…•>Æ“‡ÉYŒ'Ý'T·6£WnŸ7õÓòDZ£÷¤ ÚÅf«-l¯Ùm5x´FУ!9[�†¹4¢ +±º˜3Žä¯Vm[Aë~ÝÚ$î"ËXsû ì{¦=ÞñKwó† Y©‰iP´'§þXsÒSVq#™àú?ØJ9…u«qæ6]Ûû5m?îFú³[ËdÞðµQJAÕÔ> ¾,’ýŸ¢}Gû\ãN*{FT½ü˜R`ÿÖÀÓVÔøLP™Â•·лƒ’1“øg–’fB"Lì&Àø/GJ%,T¶·,›'Ö_'Þªþ7•üʼn¨³"‘Y3Tͳ¦’a=ײ1ai+Œ–€í-³²`€‹,íS0²~üá´=9®NrXR˽+n·67Ƹ tX¥1ø×Ì^÷öc¬‚œì¶@‰ÌhInGsÕa“ld/ݸ—,>ž¸óÍǼ%Îà9óœ¸ep ý¼ áÒm¨dÅÓ^sEÍ‹7NívÞ†¹†[¸3wùhô.w~Ù FTÜàölTmK#K#ktÌ+�Oý&û74)¾.O!O¡6aereÒÜ™ ±22Ò³ÈJDü¬;ä�=I´^Þ®' Ü„Š3;;ðiõÀҩ TGÁlÖ¨ÖØôŽnÇÊWÕ0Ô÷œ™V‡VÇôedO°Ÿ`7Èa$¡úˆ×fÑf±!»!{‹œäûy*{*sµ�-ÿ¾ÂPã�d�°íÈ�%ŠË„·û`ïÝ8b×PƒÀù+\EH°6²Ê{||bUœ·MŠÿ“À²`YŸx€XLôʮֆֆ–§êeL&O&'~Y¦ÉÎLŽ#›uøòî Ô^Ãæ`zÞûKöæÐÃm¹[£jä»í5 ¿×¥vý�xPo»KI¯9ý¦Ë°®¼à" f‡� ÊêPºÂ‹'øß8o#ºs¯aðó{X9ڬ౭ ¾„ÍÅ5®—ë»í5 �åG¼Ç`Hëô÷hŸȫ¡A;l@ã|óÉxÈŠTMIOØCV�¬qxA‹Eß#òdÀö¾-+äAÈç²À‡ÖÝo7ÆÔˆSer ±$J¤‰¾Ók.`¢û€}ÓÂÍ£¥0Àþ­YŒˆÅ&€ ï?”N‘~è9˜Ý‹Z(ãÜÒÈCÞ»ñfŸsU¶%y%`€ý vVšÜ¦Ùcìhßõ~²óŠrÎGèL$ªqI¸BÇ·¨”“*Á™ïg ©\`€¶×Œø½ö$¹x~îµ”C„Å~Ï8Hø-]ÜËËãÃÅ$ð‚N™‘|*FŠVÀûŒ¯RO>U¶n_®!|zâɋј"�á«ô&7¸)´IlÞ7‰hêàÅs1´&ý¯í–¤g• £ê3Y� †�i¢›�*ú:C·•ÛÝõÚ^ªsîìnsŽ”»­3 ¿¦U®4„ÑÿB†Y2¾‘»¦—›“]}Ü¢8´ã¸ÞMuÁ<[êÂoœiäÛ¹ÎÐD¿=*ÙÆÕIùÃAë58LÈv[g@Ë^º7êW´r=ÖbÛ�{âô¸ë.Öm)w‰0Õr0ÔàìQ 7˜mI´#@™�á€ý,h:§óÞÏâ¹Éœ$Ìx¾,É]Zº!J\ `?ÊB®ä3ÁïÈž�g‘H=üp,$X•ªË˜Ÿ(cÇŸbßTfbù #¼½0À�ÆO±Ñ¯wk„ýÈ µæ½ºS^ÕÇe1 pó;={“È5gF)®È0À~”�©Ï”êé´Îzܺî‚UtW¾Ü¤ Y CiœÖbÎöµI‹‘@"ç§Xk"À~ž‰›—9‘ˆ´BÒ]ªÞj%ZÚÚ¾PŽ ª'¢žŽ™>§šCk—ŸïƒÙînØïcý}¾Î‚ëož˜™r°gå‰è k=Ïî:^Aà$qNkžB¼;ïW4V53šðÁ¶gó ónÖÍMJvmèçÁUýò�²ûZòˆÎju~½Ûyp蟿Á�íì¡|0z¥E_vÍÕ«&T %eyeyÜ�†“Çtõ@TŸ�S¸S¸ØX ¨¤8ЬÙÞ»Y[2l®ð|dþãP÷í( t6PÝôIô“(fºD¹´ÑÔ(ªf]6TÖï¨M¶ËUY=8ŠûÖ !¡¼9²ê?K&àÂFÕO�¨DTú¾ô}ù)7|ýûz*@�%ÍGÇBd#jÛ}¢ÇÖ¢ÞNªk"Tð~ú¯N«�N—”"»æ°`´`´!fÚÌë¹ÜòO"è%è%"›2Ÿ2Wï@oHþ*ü*|îNñ‚ÌKù²Zï�Y˜#{ç í€v ïÓz¥RG[ˆkÝé”P¨X-¦ØmŸýÞ�!ŽîC޾w6ìŽ�WðÚ¸žŒà(o÷ÕI~7drñúz<ˆÊðwGòïܧ­"þ|ü¥¿Ê+¿©uû­€.ç)Ønû´ècÙKÿ—gS¨F˜ H0ùÑô4›¥ñHÒX/òVP• ½Á¤t:ÅÀEä ÃHm%`ÿ=+²Ô¬‚µn¡¦C„ ÍL{BñÒ(P[ÉãŠY;¹ÍõaæÝbÅ^¦NÀû¬uÜÊŸ¸ #a¸<Ã�ºhâhWUh=öÜøä0<Ï`j«�®T3½Ñ °ßÛ¼ÃÞ8$„ëJ/Rty«¦fÖÒŸ(Rö6z²ª¨2zvf3²�<¾)Í °ÿž�¥”.HõÁ¨HhT­Çà ,Þ¿Ì[7\äN:Åyäl`óð8œ§ëiM`€í5CP¥¸6ù; Ó6_™g[­�ŽV‰|ë»��nØáBvb–'j0B$ DSß´¼‹>—L<§ðª?‘™Syã¦"g·¹$ú”¸,Ã#F§‰Ž¬³z¹R†8z9ì ¹H¨¿•Âpý™ÌÙSýs·¿1—Ü9— üün1^.â8{˜5�¶%ñ;º¬©úÝæ’ècÙKß ø¯Ùë󌾳íxœÜ§y{Fú¼´·¬7ŽÆ+ß{ÀŽè˾†‰8Òä&µÑÇì¿g†ZÄþu6¶nšù´$tº9‹Í>ãÐ�ÐÊÆŸ‹ž'È»"JÏÁ!|ñ†`{Ëœ9·bN”¿ ÂI@03ÎË�&ašÅñQ‚gákޤKkßîõ˜(loY�ÞÖ•þ€A+ðòó ­Ž3¬¼¥êüd.7ª ¬m¯ °óùTŽÁDûû}ìA÷‚å2¿§Æì*·Ñœ¦¤`è�ÿcïN£©ZŽ›§�y.œŠBæ!dÌ�Pæ™ÌÄA7cÊ�™2‹L!$N™’)C”9Ã1%c%CzíWgÝœtݵîûÞ«î>¿oÿe¯µ­µ?<ϳŸ½w‹~°,‹GO–t¥ª§ò=˜�Øþ}­¸.lM�!9àtŸ/qýD4owÀmCÌùn,�±¼EÂÓXjŠý‘.Þ`Û^k!á¢9©¬ yæê5Ò²Tл\ìmîÌ<Œ'ETÈÃzUìà0Aµ 4°ýùöCçˆØÑþp±ÃŽE2ßxÌùÅuÔ= 0"õÅsCÆ1³!Ä�T7\wÛ³Ý<†¾ÝÑôáTL‹ß:} F–û )míÙij‰‹K2ÚM&d˜²Bîßs%w%ÏZPªQªé0�JyàQØzú+z ðI"Øb‡— C2ÕàÊâÊ2ˆñ~»/åpdF? ɹ0kËÈSåèØ†Iy!;!;/@TAT¡Q�'é¾%‡‡SžJžÊ˜.¤åÇÎkž×4ãóÕúcø¯“öŸäzoIžf”Ò’Û@”ÎÂbo*Üö»‰Ã6"A€Ñ¨±ÍßÇÆÀÛ*Á/ÿ  ‰ ¨�œ�ÜŒ;ªžsÖ笮¾,,®¼ð-ÒínãHBó�ó�Q×™Ò5s_O•Õ¹<Ú�òzyø‡k;Èu¦°À4±ˆÔW-‘\ë÷ùn,É2;¿:?ŒÁÓ³—üõ$V—Ý×â¯kßä[ ³�äx nоÃ:÷öu&è×oF6™ÅzY¼U©LS{Ç"É|v·u&Ôs9XL‡hÉåM„dú4.(Zv¿-ë86°ý í³À„@LÀÜ Ý©°òT5.Ræ«EJ†ã*êZb!É€ðóBð¢.°íý¶H¡3HJÁ®Ê”ª5äbò—�\*Æ/b|ÉDL…ØÌÝ•øÐ¦lO›—žŸïäoðj[…èR¦š?+‹�BÓá•:Ò&7ÞbyÑúŠ8eî7Ø~ÔÖñ±º-ÝfÌhš,iU.àµÜ²��í¥÷Âü*MevE�ÁŒÆÃ09–½õAÆeq ÓfÔ1k¦щ±ý&³SD¢ÅÓ§v³.± Òz¸¯¶è’d¯ù¶=~VIëFËÐ!l·ݪõØóLª.ÚMHãñ6´ÊzKÙוƬÛǬ‰ä[çRÑàl:Dw!…^:빿ёàÝÆ¬¨ç‚c�‚]Éùp”gé. .y !åÛ÷+·‘Vü¦)Æx˜ÂÖÁ÷(ÕXå?qHé¡ÃWË”è†�y¿¼œ…ÛÏÙ‚XŽèÝn'`F¨ Ñfë­+õ=¿5Vh&ï™RÇýÛ˜`ƒm”ó¾ðýÊC`û÷5ñ'Ý�‡Çá¦kÇD"XôMžËÑûI ÓO]û†®RN‰¡à¾Ü‡sÔ l`Z‹on£œu%�ó²AÝ�("ÀG²áH0Ã'e{Ó £X­G)~ãè°Á¶ÿG“†¨í{Ÿ¼Ú(gIA÷ö).“ï¼nf–•ðº¤T/Çs¬Ê;¢r"²°a°ýÚmA˜Eò¾g¿e ¾ù—{¯Ò_^HZËdJ„>†Æ«’·X�óQž.Ø~Ööv4ÁCÜöÊQ‘ÿ$u:IU…p-Zý@÷I‚;QÊËëIí!_áÙóŸf/=ï²SÓRD|:S=ý2ØyDq0‹A@è»çò'ÏPNÝ9Ïg\º$`‰£˜j²ÛºêºÔâ»Æ:îÆ‚ü^Çý¢£jÖ�Ð#_Ÿi÷sY£È°l甈�ÁÛa]Hpûº�ë×{ÍOÈ–¬ëñú)ž®Ã×Gögí6�G=—ÿõÞoön‘Õ\ÃÁQ×Ô·/³i°”`\FcÀìë¥`æoaãÖ‹´Ø€6-rŠ5l{¿á²YqØ)ùÏ&WžQ—ï¶aþ+ûÓàä'&È•™©MÞI¾Ÿd{dé=Ž:>dµP>÷–Õ\~ùnÌœ]Änc`Ô{µI2™—–SVkÓ4–ùÊž£?¡Ó¾Ïuˆ/¼VÕ”?ú)dæ8;Æ÷c`Þ�ï�²²j¶–²R–›.©7ïvo”}ó˜ë_¶cv 5E€ñ-, $ÄÇ97$3Ë"Î"Îó.™1…‹u/¢}O<\<[ªVªÿ9 éÕè<àe-³t¥ê À±®Ý¢<›­‹D´ÈžÌžÌÄéÍ…{7K錥F û>±Ø-²WÓ\t,¹tÒtÒ<~€®7]o4†­´�8VNÙ�²ÓßdÜ›þcw¸îpuEOJý±.§Ü¼OÀÃ÷[¬õaM®Á[â4™É-럿‹Œ½üc Gk[n[Ž-æðaž›ÿgè8ë8'æ~Áý"ðª¾Ö¬ú¬ú9õV#ž`ž`ÈÆ·¢ì¶;ûÀ £ô¢ôB^Oa”[×ÍBà©@ÇYËéâ*×ÎûͩP¯í�¾+¶_§Ý§Ž·†,O‡Éä Š Œ­¾`~…è\1Ç�iŸÖÓ9¡KåÝ%ûPþ•Û°ýœM$Á_{£Â‰¾Ô�5ê\¶_\¯C¿ôäcUÒÜL=·ÔÁŒÓýÞ9Žg´�í×i=/œüð=éâ½¹/ŠpeúG(à>Íê•Á¾FUW^œ0r[â!¬]dºÚl`Ûkí¦JiœZȃA;Þ†¹»„YV"µñšNdcŸìZÑÖº5ˆ=„>bÎØ6°ý¨iŒw<ÀÔÙ¸êBRfr>$Λ]´9µŽEÔH2´ÞZÆ. S�3·áÚ¶Ÿ³Àýœù,è#ɵÒÕƒ±Š!ÕTþ ×™ÅúÖãüF®‰§”¼£«^®¤—ƒ lµ‘NZQá3²J>\~Ízk@,~_s1-y*‚7ÚÄþ5é=žßb$’ç«À¶·ZW‚9¾v’U½øqNJÙ ¯cµ„bà9S”ÍÓçÅ"{®Ü ÏÃp»»Ì` ¶½Õ¬,èK…±å�¬‹?œs ÃÕîK‹Lm¹}É=hãó(„³,ÿ²Ù«^°ý=í ©û•ãaË9Ô%=‘¹,hÒÆQðZf IJ4°íýöQ¾B6—CzxÍãæóøQÊl~æ;'î ¿×k†3Ò~Àò±pDoiØþj³I¸sƒôa¸ÔáLò¼¨Ã�¤Gý¨ø³tѼd¯=÷A\¬Ê³$Ë¡Ø~†¦u’̦ÙkTq¥�ÄTAæâ1Z“U ¸Äã_(•R+H³—¦ )]ÜÀ¶½ÖˆžÑiL�ÉГ¾›{%‹¶8à�‰ ÒÁýíãøPq)¼Sr¸�’�¼l`ûÚñ =Ù éZì|ÃÒÉוM#ñ�Ô†<éL®r’kÛ,½:«�—ÄAßšú¿nAbÞU6 Ê_˜HàÚÌèþçï¸(£®3t[¹ßZ{ÚK©ë�~Ô}Ήb·uÔ÷×´Ê”…1Úf™¥áyœõsw¶¯O\0 �è�ÒóQå+°£z¸ÃžÆã;ïi4°b=‚M hgß"lmä¹²ÛžFŽÍcÖý·›ž@Uyò[RfHÞsl¡H­†õtõt«S‰j²r—†K Jé¿W�S�CßÁ×ÁgX’#yý—ií2:UCТbey¤¾^³³€�»šÌä)‘‹Ÿ#y÷`\õ¥)2¬=8Óx¦ñe ™§™ç¡ç!$¾úbÎbNGGŽãDÔÕ?æ³â³"ÔŸXðÇî^&+Åp”­n¡4ÂZjÚb:È2YòÌøœWçïªÒOý‡½ûަú8~�„\d¯2úØY™!23"Ù#›deF‘„2“lÙ!{d“™‹kS„k••‘ßçÝï'÷£�Îùþ¾¥z{þ÷8î9÷8/ç¼_¯÷ëý~)°ƒ—p_ë£ÖGJF’Äz6‹o‰®”®”†Ú�Û�Û·¹ê{¡C¡Cq 2œþ¨þ¨‡È¾ìŒØî°ïÂ3M›K›CŒ§Š�ñd@,Ѽ6!IïDÍ¢2‹þ~ëVÈcû �Cö3Z©C=?Øjë±Åá 'óv“¤PTÅlÅ"æÈØ›4Vxýjá ´Â"À~œÁªE¼“ìÔ`—žÔN¡µœ³Å¥<ý|buT4¿ä=èë‰N'�mù°ïcް|'£·´ñ÷IÓŸO‰¢”ê^\Œé[W=«üøÉÁôØ`Í64k>\É«_–1ÝË!/ɱ ?v2vë$ñÈ1Å©·t­šTI�í%€ý:.™dZ<ÑÿgÄ Ê1á¹3·ã»L)Ÿ¢,kբćª½ ·Ë˜÷y °iã‘sÔàzî«ÍG‡µ;Ô GB<„•BãÁ}o™%Éfm}ô– žfú€ö3Ù¤Y¥¼7&y—‹Lf^‹æ¥%_}:ÏO4 |T†% nbòŒ[üÀÅ€ö½,È1—ú^Q°„ú<­p2}æhP (2Yƒ*7NÜš+éjK‰�é&JXG`€Á�ëHLøTëî03Û*‰ÊãšóÞUgÅ�³é†ø»�ú^˜öÂqΞ’�Î7 °ïeëÒD{ºÌ3 Û6œÐòC%K ò^q§ÊŽ“™ÌZ½1hÕãŽc]¶dŽØ�3!ã{\þ6º§Ê9Õ8S««ô–¥¨ :’wQï4²É¬ss}P;ÜŒûu ÚwÇ�Gyc¦q¹jÒÆbœ�#¼“¼Í�Ùy¼8Û^XSmžP’‚ù3)ƒ¢iØ@SÃ<ÈÐÕüU‹¬u;ò}Zïd’‡&Bª7‡»„¥ËÖ ÷»O‹|îÇ ä»;Á[ÖleœÎçÂYJ;î\J|?hpåÆF ˆXw�³þ¸vß§­ÞþÚO~Ìwrã궷ä¸Ë~÷Õ�¿ËAúÛÿÊ&]»<Ø/LíKÚƒýÊè ‡©ù"g¹q1ï *‘ýyÊ“l'l†_–öûY¾©J]Ú†‰¢öM~ìv#µ·<°×zj²ŽF7†h¢4 dz©»ìg°¶q3?p £ .åµ)öäE;ëÊçzŒgõÏ =Ó™Ün'/VIivÅì×¶Û!36±aºb‹„�z·’Ó^RHåËÞÖ«X“‘QŸúÑGÓòİßÏÔ‰Äò’}PÊb›ê0Ñü Ž­pÖ å»áMž¤{ê c‘y¶ˆ£»¶º0ÀšÁˆ“œ[üì‡È^Y‚Œ³ÌÖGF*ù÷zO_€+z¯µ ©T5J�p&÷C/ÓPä¹dœ¦ô4ކUnËK†œñ0Æ~sIä3(Ó ë]ÀaÛ`ðv& rð¶9tåˆövå�qõóÐÙû{Ì%yöÞók²å�ÇtJ”„͇è1?ÏIïýöü²ýõqÕÝÑxzŠ çfúe!ш˜È*µ%¨¯o­o9¶‡§{ZpA�[_òøg®0W˜?¾í+ÛWg©àÉ=%y Ï*^¿VA×¹2xÖ1Å:;V®ü'×> ŠésôØ:"°~D‰gBÒe_²Èß)@yÌg¡V Ï Ó Ó¦ Þó‰ç¶Æç&¡ŠÉÉ]^½¼Z4´d÷õ||¯°Äý{ØcRM¤Ãðæ2vºµ0Åò4g§«ä0¬§ò|ßO7K?eZ絛¾¯þô5uW³›z*ßRVCV�ªª*ý r9Ô ˜ ˜9¾ýlÔYÔY #_f]³»áixIDÒbÒbÿÛŸŸUÇÌ��e1ÇV3¿'Ϙ¬Ûomyl¤÷ünöÆ�êÎtæq{·wœ=Ã}ÞjÛæ[§cä§3Ãú²ÜQa† v< m4À~?ÓUûÕX¤Z-{ù´Æv¹:N7°( «faÍ>œÇ~æ(@ÁÂÂwå¦5`ËX·£°¥J›Hx1ba4`ÝyÉ‘T£6Ù¢ ,•á1µû½oŸv°¬FkÛê?`vt¥qKµó"g±¾ÓÍJ:†ö1ô\.i…£.}€ý:–Y0]áò´FÙv¹Î®7«âÁóàx«v€$ƒ[1WªD…’(»Bº�ÎUÀ~?+¬ ÚP¦Šõ•‡Þ­›ç†ø>ÖE[¨÷âDwËú€#�®,Ûâä‰ `Íîù e$0Êd«VOHH’0=á`mw¥å¢T$ êU’±Ê³9­<ìÛíU׈s°H½nç‚[Qh 6‘×™’.f¾�*®uÊ?ÿvuø«sqÄ:S�_¢Èƒ„EguÁLó׺x±•w­7ê <ÌÑGKt}Õu“/êÎ¥û<‹–ïN>=cˆ²Ç:çîu&¦ÏgF6E^›Ì)V$*Ï3ˆÓªì·.€ü]ŽRôµfrGÓ¥x5.ÊšBæŠ;/ØÏ`[||¾³ÂšSA¥ Ê2GioÈéŽ+ö‘Öàò‹û_&âOÎ+èìàÛJ: �˜øC•)gkt9h|$CN/bP¿¦¹‹Kºë÷Š#¼;ú¹Å À¾�-H,,tq�×{´¯Ói'7G01%ÚæUhHøÏé¢{�ß´KÁ3 °¯Ù&:ÄÔeƈ¬É”\ñ fk¨e„ÍAz�ǯbа�ªTFdnº±‘¬mO“ÝϨ¾B¾fMÑá-Ã3€M�Õ„ §ÏíwͺÄêwšÜÍu#·U? wãV{IC¹ 9U§€1Ï¡6õ’ëç4A÷éOµƒ*êL%9Üãš•oï{£iÍOä°â ÙWŽ*�nÓ½×ÛïÞ(û_ŸÑÛ]mCï r›Ð/3vE©0@”Ûû×�lܘý¨·ò¤‚�KÃ?ü4øéZ°^°^¥.¼8VÓðÖzàå©W^YŒ�‡2$…¶Ó=;"úŽ™¨™¨ü9Ãqh”¢æ‹öˆx»$8wBYÁ c‘&ô�ÇhÉhùp^‹p‹p€Ît0"«£M°&X¥f¥¦‡Ëzö×›·Ÿ·�jà,ø÷°½X.‹bÁ›wØÉíÝrw+d§sËŒP”bÇÕ¿ë\ªg‡ÖÃsˆ­‰­ÉscÒpÖÎïý– ¦ ¦KèñýðýÌŽ#7YiiâÎqçìȵ‘koÓ¾ì…Áî‚ÉàÉŽ$v&v"ÆS4áÎx*¯·7¢¸O)‘Úì£G°ßylc˜Çª`>ÊõÉ®6&O<´ïì-è¯l#Ëf¼†ñú˜h|æÙOåjuÌrÊ®Æ÷P`)§ˆBlÆ<ßû¹§bçösÚ]z­ÇØ´}ªüä)úZ›rÐæÐ±\#éëñµœ×ÆN×[†Ù ÆSì÷³3e¿?Æû‚ 7ž± >`Ð6h–¢ô œº½„¢XJŒ*㺠Å`6 0¸µúôf6J™WPدê„Q õùz‰×ÓP­)X&ëEê¨çÇ{�£, °ÿ…IÐ)y»Þ(eJD1÷ò0Í­Í(º™À¦øÙÞ“K´‘ŠóàR0AÐ0`¿¶ öá¤â¿ïÁ3�ÀRn§¿Iz}%f#…æÿi¦¦(%ÂVBbù\ÀûYmnô‘Ûg›7¶²¼b¤Iø•å5 ºˆv\˜Bçê&WØtVÿ *&tÀû_eìÍ—ÙÑæ¶±ör9o“F¿ÀÝL†QQ«i$w\:ṳ\ŠrÉ0ÀàÆ¿`¹FPZ ŒmÈÑÙd\älW–‹¼î\ç}GÊ)¡Ø[�ò`‘0r¿uçªw(ó:3…ħõÈJØœ�½ŠÓð`0š-7"9`kŠÑMý)¾’Ì€L ¿NMO,´�p�ug~¤óþ>ï•`]§áäȧ¥+�érZfßo�ù»”²ÐóZvÚ*Àêv ¶=åAsÞ°_ÇÖ´þx¢ßg‘ÒI. ;CÙ¸íŒhdO¨M7’%¤üàA-/3Ë`€ýHSÑtÒ/�uæ½)ÝOà+”ú%"ÀŠDÖg y˜Îžcñ‡}å`€}/;•Ç'®ûL8CéýKº¤£…G7D�ŒÆÜ%š½ß'Ù bÜÉëfð¬ÆLw °ŸÕ†�²g^À_¤èïX¦Ö"¬æ‹æ7¶ügÿöô]®Ó)¡å4ÿS¤"²—�+ùÌâÚöù:ûd�}•Æ»ihîÅ-gë‚¿vm«``n ÿ}œÏ{1°÷¸ÎE>/hFV#’÷¢[íˆË`î5äûçÈσ´»1UrzerÂïWqe¿8ÿ ‡Ÿ[e¦KϯÞv!¢y2ò{Ô�ÏÙFÞ?òΣHÒazVç¦ÈF¤œ”Û~ûG8þúL—ãî ��ÛÈ¥·|ÙíPDB (DAœ‚N‚NÅMs«ÉÃyƒ[uýÿl p Pt{xrxÒžÞ)vX+¼éLx7pÁNüÍð ¸O wRÍL¤FdÝSVQV!xdЬ“Úé¢î¨évDB‡#Ówz9¡6x»žžÒ›5x–µ–µÑôl„ˆŒÜÖ£Ö£ÜÀn`™R*¬¯§«¡«Ñ@JÁþï%+t¡kü¯ãâNîÁÕoÌv‚HÏcÐ䄎SdüÁ ú* x3§cècè ñ‹1Œ˜é¿¥×d¯ÉFmmAËÈIú5ø5 Ñùñöí?Ê,ûevU»Ó”„·­saóÂ?öó+�`AÑêýKÔ‡ŸkÍs3ì7GEþH×{o§´r.gíOnqÔ�<6iNMǰ!(¢åëÖ>{œIÏ»{Ž*üù9ÿ.ÇÊÄëX¼KSLüì£ýæ¨ÈßåG=7ayä¶Pn'ÙaJ{õÑ4§-±Î D=ÖÒ 6·Nú{u¡©r½uÐÁ½(x0Àþ[ÃPb*j7´¼¬�ÅÔ�éºÁ6S?Iî(¸1ŒI=e m_÷”ÔÓí °iƒ]^P�ýYv,Ž¿mt¢gJ£ ?ï>ewê©vÞ7 fÝ=(¼×/yv°l»$>$™ü5¤…ÒvEX®œC{HU�. <\%%ßÌ÷ÑI–ì÷@nÒ °ƒeÐV§ kªv/(§S2êA$ä·ƒ'ä±Ûh.Ÿã]{„ªð!C^0Àþ[ �zØV§ip‰'›hçŸ0뾃Câ±D‚—áñÌ éíÔ7$k�ˆ»mÛ}Û½~RHÿô(¢¾#A¦ˆŠrì]åHÿÒ£=ŽŽÔMkx7Êo”‹ˆ\Dd …û÷½@“@Οœ_/ézÒõ»GZÐþ½ÎÚÝ[ÄðèÛvºzñ~/ÍÍ�8ÜYÂÊëC1ÑþN.P[×iÞ29žž„t#ëÆ4GåáoÉOËO‹ª†k“k3h¹»^«K«KÑ*¬¶…®…®�ç¿Ì“}wsÞðbz¶x¶ Æ“óç½ WË–Ìë0û‰^næmŽà¥î·.„<¶ÿ¿÷~x²B×3u}O�:'{ì΢ÆPô ÕÄȇí%¢åmeá¸8&b `p›xW××D"m×+åaXm¨˜Á¨q¸°9-.€sJ¡œô™ë ^¼~AE À~?K¸“UxȈؘ,|Þ%âʇaÜz•À¦ :Ê_k‰¶ë{q³>ìÇ™]¥M”sÇ"“–Ë´lf“Þÿ±wçÑT­}Ç�‰qtp2TdJæyÎIQæ)3!c%ó%Bæ¹cΙU2$s3„2dÌT™Þ{–{Þ[çêºkÝ÷íªöúþ÷Yk¯µÿØ–óüö³÷Á{E ÆEM ß|p^õóeÉ™³Ü«€í-[¬k�‹sCä<9ÀÌ<œg'GÊžj=_Ëcj~ªAs!\÷˜,c(`{ßð˜MY-OûNÇ–TŸQ•벦ø'û I…ß‘*Ñ‘ÌI|�`~÷E_S±Ý4]¨˜™e4–[½9cºÛš ýÞü)„ãjÒçÚ” 1«ÜeM˜•0õ\ö#ÜwjÏòD<¥ÏÁ‚õç5××kªÈö¹P,È\ž†O…Õ8w5Ùí70ú¹ìô]À~Ë%�6£_� 9•5 Â;òy–—n¬·ó“1^dû”–†°&™Ç+é"¹1—JÀ~LŒñU߬²£,ua ?_ƒëÕcÓ/5Q~–$¡å’<�¦Øo5wy4­ °ŸÇº_Øyã_…E{°Ó8²#|Cåñž¦÷œÂõ!{VQ3'VdÛ.8õØ0ÀöšÝR.�R Î8eÉU?sŸ0ÝT°6ú‚xä£e+Æš—‘ÿ ö õÀû–©�väaklÞp".3¸åÁ¢ý¦9ùƒ�žÄí:¯ãe,¼�÷Íl:·öc5Þ¢áæ ±OéçÃ÷‚“ùÖûщô­GùR ÷:ÇÊžöˆ¨yù)µ0Àþ©‘L˜’áÓ0J­ÎF0Þ}-ýÿÂbJÂd(W„�õ[’LÎ+‘b ó5€í-Ëa�1ÆW�7­å8‘¶z{ï"daÖ$¤yê’HX·{ e–ËýU*8`{ËLM(KùqåôÌJ–ÏÛ€ñÔûRÂ’[â]onn¼a¥‡b—Eã_3ëìûX%˜ŒÄuž0rÿm*8Øšüªí&ñÐ^úNà^²øxPç:ù§üE–Û§ŒscWH¢ÑgÛ¯ùK—mŒ�µ=ØVï6F®KÙ=S(¸§ÝéQ�1lÓiPCš{�«ƒ‡[ñãBnþy5~ÄûmvÞo^EàeM¦Ï<š?^Ì¥ºÛ~ŽßŽ©nüº=�Bô°4¾L‹|ŠÊϾ?»?l'êSîXñž¯²öÏéÊëÊ7oML´k ãÍŠ˜BöQ›ßXúá(dýQÖ°íØ.£òóiŠkŠ£ÏcJżٌê!޷Ϩ³”Í€·» �Í-ØŠL *ýÐ�ìª×U/þ /STÁö«ö«�-+_ÙøvÂdÂdÜÖâMfº<¿_22±¼í¨…($¹·[‚¥¬‹÷�h�^ÿ#z[†Ã)bÈ$Sóùù 2ÉGïiÿNää\¦(¦(ÌXÑK'nn´�æ8éBìÄ`ô–.éyfѤf…î……D‘~�õãCù5Ÿ6®cÄùvØ^³5ÍÚE«ÂúÕ!y³»Á å̡Ԭ ¬�aj Ç[úMªÔÛmå€ý<*?¾p¤ÿTä&µð¬¨OR§IŒ ee‹%qvYs¾E Àû7môÞ, ¨žË¦‰dH»]­ï@Øuá³a�I Þ·LÒ3¶‚¾zK]¦ú€ö#Ÿ E�¢÷ÁýÐNùìšêKþúô›´É¼T†åÉn⊌ü¡ 2Àû^âX@\zGêâ�pÚ±ì7!·E0î¥iP$JXs¦Ú¼(7€¯c†·wÒ8ÄGlôiÝbb[%;W{Æû±¤Äa6ݰ@·7þç§< �s'bØ÷² ubÝ�fY%­kNØïJW6s¥+ŒR˜ÌXŽ´èq%²,Ûǘöï™�q¹=+=©fV5nisÌ¢ £Ž�l"zBS)—º À«ÝͰŸÇúzý¸UÖÞ7.÷OŽÛš�2°Gt@[ ™œGË"ì…5¥±çH…ºûD#gP6"r¼aÃÐÕ¬ù…‚uú}5ï4²(!ÕC�Âr•‹Iw»¯†þÝ�殣v~w6¬ÙÀ•'Í�e#˜+ÚýÔS> X¹¯ÅïÀèîð­?Î�÷ƒs$Ï,YT‡Z4`¹fÕºÛ~pÎߎ‘½ÿu^ïõѳvý2Y8*÷ÉT¢õÓÓ^‚XºN⦮Z´Ÿüs­9­9ìøÎøÎáÈXÒ‘‘¾A¦¹8šld…Œ·—u;Þ;†Á¨È¬´«´«X"/0iqÙÉ¢:•| •.È3h»‰ðFJÒ�»ÈÉÉÍÚ‘e¼Ëxwqéí*2V&V¦UËUK«G}=ßîðØá1«çÿ:gLý„^dOé¶+ÆE„æ¥ow.ÁV‚=vòIÄâa¶Ö¨ºË hÉ\Ì\tMŒO{'7¿òwrëtëôâ×׬ºŽž˜…æ5Ík5‘ò«A� Èóü/ ˆùºW,ÈÂë8ë8£®§ÐïûÁ_(Žø�¯Ùl¾r—pÙí>-úµ½—þ–f“{<}i _˜ÆŸ¼› Ùè>»¹ÙÂÉ*HÏ{¬Cög(YalGl‡žVöëÙCø¹ºjì5eíümFjo¹§_ê©)\w4j›»ÒFkË÷ÐtØ�`­£¦ ZF"Ê+“'Ò ì¬kŠôEõeKóuÆ·Ú eçM®ø€ýÜæöÞ6!\CW|�´CÏG)-ã)LæáéÛ>zÕå‡/NnFö‚ã_Ü7ì׳‹‡Ä Ó|1+š”êöcS¯œ¬|èvpœ•>ÏAÇ<[²”ýÕ³'€¶×l’êü"À~�¢ÙÃ8Çôóðp ÿNï} rŠ籄Ë<Á ÎæŠ"ó„ßEŸM$jÊ�ô%Ò²œÞð”‡2âíÛm6�þMS<ºÁ!½ó„lk Þ·B^{Ûâ†XÐÞJ¥to�¸x¦oæÖ³ î¯gA¿?[¼ÿÁ´$S˜�ôš5^·ÛZý\öÒ{~53¤ò›jߨÞmâd÷P¯·Ú–Ù_üé¸L¦éÞœkXÓ†çN4ׯì×3]UP@­yºå²§‘oKB§«ƒàT³Š°jþLÔA¾£Œ™™×ê†5`{ËX¶¢ d*ž“ñìK˜¦ÑêÎI'cųù*”fáŸBˆ«Ýê¹þ¶°½eµZ[Ž}�¯MIV7T;.0œ,;ËIìt£†>�¡mD§€SNéÈ�^À~Ë욇¯pzXcn¹\=¡7s. ’;ôp‹v�4ƒ[gºTõY±J™¶:6€ýzVò,dM…*Á_±Ï‹¨î]W—œ.ö|½çI·‘œEBE…þ0',ÀÛkìG(+™Q>ÇXõÉ;)i²ã÷ÙYÚ\é8iÄ•ICzÎÊ[Úò©¼ÃìïÛªÎa¦þ;"õº‹`¯hìùÅuô¹@ê…ì·“eÏœˆHz»:ô͵8j.�"š¼à|Q0Û,Òu¾ G¢ÌÒû™7րⴣ¯–ØçU×uÞh?õ[Ü `‹ Ö ·!Y«ËNë+Æ·T‚_Ló’ö&ÆÍ€föˆW±Eæ�û>6/5?ßÉ9Z½í3½&$Ù¸¡,òøñ”Ë…ÕR�³º8ס^‚vˆƒ†€ö-[ÇÇé‚»¼7¢x‡*[ío¹ki»—Þ ó³˜òô'U*# 7Ý„{,­yi×DÕ ›Ñ×@žbᑃÓ“ 5¡’)ÙÝÖ@K,|P7×µ‚Mâ ¢5¯¶ò†j¨ ”ªCÀ˜·õbùÕ3Éš·è9Ú0ªëàÒ1ΟvXñ~½Š%Ý>—ªz{ÃA˜U¥Tz“¯Þ± Ý~³¢ŸË>³$ÜêEo87ížÅJÜí•ôêû™mxÙ”Ç0I?6¯€YPnÞég:¦*m’ºaø*±.Û�×Ò÷ß)ìÇ´› Ç´âÚ èzUù¡}­õÓ}MwG Œä®&=;ye„¯Þ"ÜþÀ�ƒJƒ€ýz&ZÙpt´÷ŽáZ>›`(ƒ¶A“ ¥·„å¤Ïr¦rKÞuµo“)`€!­Å·'»QƬf¿ªêõ÷”¨?DõQÉÚ0MïžÎŇIÞ£˜Ë¸€öÿ0)z•>7ÊÀÁfŸâÑzÍk"úpLÖ%${X—èî)Ï�*@à�!À~nè%L'þÐ}‰Dº•9–úÒ*~ AÃÏw¼üxôYÒRnˆb`€ý¨6û&ÆMÔÙvì²�8y*qM•@-FÝë.q‚Äp¥ŽÕuÎð©œ~wªã8€öÿ0Ê„%OscÍ._pŒaéátÞ"�}D´ž6ME£¦‘Ö¤ÎAmR%C¹d`H㟷ø®(V!0dïxn\âlWY€>'¬óöÓïcº'¥Üóº@zo·9áã Ì¡�÷%ލÁn)Û# 6„Ý óorOK¿¾ ß÷Šf3©†Â€B ¿NMOün+ésBþ�÷J4¤Xº^y°äèk×gTöÜm¯÷oÇÌ%}Ý鼘ÛèáYSªsá)ª¨œ.9]Jq „7$h �O*ÿ9jojï¨WqâäÄ" 1ÖóGUD6p&‹䎌%¥ƒÿ÷5]Q­�O«J«âŸxnY›A•…¨2@ÕÕ?©°]•T†öP÷2‚X‚Ø,Ed¶ƒ¶ƒDLÚe¨ðZàp‡Z¾Z¾j\Ùo·\¼\üÆ=3ù¯“�pÁŸ1" MÜîò ”ËPr»ÛŸ >ÿaï¾£©îŽßKÙ{ÏŒŠì½y¤ììÈžÙ{e7®ì’U×ÈÊ]#!!2¯†-²‰7" ¿îO~OîÓóxÎy~§T_ïÿ^Ç=çóç|?ã{?Ôçz«qÿ "—Ç ÂDVFö|âùÄÞt-Ôîøß$Ï&Ïæ©¶º¾º^G†Z� �I8n”­ÄçŸåË_×S¿;:Rd½ŸLXMþï.Ë¡/g%8>2òò”11WJ§vûJ¼çÞkÝõoû!ûQÁƒïý%6îc÷x2¸ñ]`T³ì×±†âžGn›õÛçt1A¥¢’çþ }²ås ÊÒƒÔˆy¬@B36¶Iˆ�}0À~¤ix›UÍu•¼iDMd—˯ �‘\ÅN�š‹K¼Ã]d?‰Ç½R `ßËøJ„eLŠ%aˆË‡ˆ×¥--ÇÏŸ|ô.Ë #´¤‡R�uÇ0À~V%æÎ?M„ ì|Ï`HZ/œ,jåð=îþ}Ñn6VÅÄk'+õ(¡�”?û�©�gÛ¹/ó6Îûu°éØ<ôó•-'à1÷l«jnçŒü}¼/s,œo<ç¢Þ?õFY?¡–þ Ç×wøÞ9Ôó¨ï®ƒŒz°´Šú”Šnd^«ã/| [$* õ¦[‘0¼Ùm1þêdÔïQC½guŽªš‹NÖ¼°Ì€Yj¸ À²×uüwLß¹k â2ðFÑedÐÖ‡\ó¼mƇpzÁÒ5�C¾q'½Ðî9ªä—÷ü»½j3`ØBË3ÇxD¹{-÷šS ŽåG½7á€,q¯‹ “ÖC÷ež÷Æñ®èLSއ§]/sFv£kó·J{œw °ÿjÇ*:,Î{œ7‡Ww‘ëMókê°(ñõQ,†«�™�9S“AÀû‘v&Æ÷ •l5}ºhûË©3fuD%×h{rù:„^=¶í¹ÿ, x°ýe[U·â²©§z[hÝV$OÕð�hë0çá�ÖÉ«<^óVšË�=õÚ°ýemÞ§?h_Õw@;›“µDA3¥â…ÓΨW© ôá&šêLE `ÿÕâ.¸Õçéó“Éd[•¶íŒ Å#¡’bà®ï!º]Rèp1ieLδ0Àö›=!:oËêV‘ô†ò8¥¿bMÀ ~Bªýô~·LW¹ÿƒZÝlóDx÷Qåá\:aQÔý]ËìnjOö†¦7FfJ·ìÍ·öÚßúü™R…Ý™ f¾Eí8ìë`;5�žäÙ) ¾_[¢à×m¬ÿ׬›¬›`Vâ:â:ñ+È´²KY�á‘™ Á{SÔ‘á˜{žÛ®Ï¢a|'�bm&m&ÆpÅàçRœÇv T—YØi¬¾J|»F�Ðx˜Æý\dy|y|[—� Âá!ìW(w"ÙÂçÂç*X+XÂv‹ü}ŘŘGåeNÿsh ¦9“ÈOmG­^阖¼]Ñ8azS¬“õ¡’?;'©©fU‹L›,!¢1�Õp*òü7�B@!w—ë'ë'½èQƒ4ã pEÒ=©§šN5Ù¾ù:çÝ�GC¦9$|Hu]hZ�|&ý¬ YŲ° †r†ù^ëB¨ëRK Ošxo1õ¹J¼Ô´+ÇMªuy¯“eÛtrK'Äc}c]Hd÷º�Ï—½f—j’e;8Ö Yç’Oc„¹{­ ¡Žåÿûì„£Wüc¾I˜ÈKŸ ú”óì:,ÅhçA¬Âè}dLBmìübgÆ¥â i³bÓðþ§Šî}ò,ê-Ôa¬úñ˜åÏòÒ¯òΨÖPû="WÇì÷³Üñ¡Ð‚¤òƒ–äVTÐßøPðÒ(A³VÔÓÓ‰‹�5Ï ¥;Ì Ñwûqæ^ëšäS$ȃ8fè;«œÿÔ4³GZ€žÿÆfÑií�n'æ5òW‡Û_¶oOI”öÏ)¨ÇŠd»ë®HÊ“å¼Ø(dkÏM­ÏpæÆñƒGXc1Ûÿ†ÉnËéx*d.¹ü‘š¶b¯óÈ£Ø9ŸVB*9EªÊDi¾ óN|bš½Ì2�ú ÌuÅñpþ-«•âêíøyÇØ½ž�Q÷jSes¼Vo}lÌ—Á“ÓUÄù9†¾ÃÙ*ƒN nÙ€ý:ö¢Å=;€& ÂÃà)Γ«„Ù�Û'{0˜¢éaùͱéR×NñÙ:kÀÛovM½"Q3òî°¬£@óüm¼\[ñƤ3î$ãÛAëa½:þ¢+èóô¸€öw¦3Ñu]ó’7Q¥ùÙÈD‡ÑËÖŒ& S™(øåc•Âúuó›>�€ýœF�¹‘óøÊ QpÅÇC Ê‘u!Í¡LRŸCèÆú}’NA µÏײØ5âi[ lV™ÒÕ·PÖëCRISØg–2Ófb æÎ“ÄwøÏÅK§-Öâ¶¿¬€ç¦¶^ª-ü>nr9§É]ÑøØ yëìY©¸#h Ð|o¯ÒÙ¶¿ÌÖš¶Bté ¢©]ùûÓ.$˜z™qm)^~W67^r2S£W&aŸ·|ÕØ÷±j b¿E¼x¬(:gÊ×M¢ÑýtOà~²ÔTüîO”kÅKQPY«Âäâ$VÔó6Ž ™‡dU‹CÓõ™÷6fíuÞFøógØIwçF~¶µñü¯k�Ø©�¸@{§ÅqÜÜÒI]´ë•qHfð_s.u.M **—¾‹ì1ˆÙ ud>däÆõÈÎMuWmw¹$pd§™Ù™Ù ÔR³Ì1a5;�†Úgíd»ö¼g»ÅË.n% d„„¡ìÈzz‰Eì´1b×`×` b òIh„åïhhÅö»üsq’•RPodϪ¶[\(Ì6qÚŽ¿Ùê0b þ3²úM|0²杻§_±R¾ó´Gàÿ¦6þ6þ© ®þ®þ“)¨ÍºÌ™=r+‚JAK+3èëz vÇ'…ìP»¨¯¨/ê^ÃæPNñ²›‹ëÑŽ¢­1u’½öPßëR¿xG"²¯ÓûAŸͦ÷ˆ¾œ ‚ ­KHPåÃpŽââÓGØÐoœ·Û½×0ôå=¬Ãì¶7ÛAýi›ˆ�œÏ×÷Úk@Ë÷x�0À�Ö~¡ìÄ«©I5bLéøh"zUFùàE\> è¤Ù�’F&ëþ»$™€í[Q,f&™‡Y÷¿ö,©^‚<�Sˆ)]ò¶Ø;ÃÖê÷­ýÂÁmm€ö_ÍzTüfzqỉ#9¤7ŽAEI·Ìè=r:ÒvÀûŒ¯ÆP.ûdãÁ"“ŠéÉGOÇ’Ê4GhÌ/q“êØ/·ˆjéa¥rÒ¶güÛ)H­=�ê#Q‰8älºŸ±*ê:C¯­ßõõ†>r0›ß¼;Ù^ë ¨ß_Ó.[Mî�k™‰mê¯äçá OFÇv�0 Ô,v¤(ýÆ™F¾Ýë -4Ûc1'?ùìÔÜÑÈÃ�Mvs¢½ÖPDzŸî�úí¡!K³(¾ãFŠ 溷]‡uÖu<4õB°z[BÚ%FGÂA((¯¼°gsõRAYî:sz·á¤3è- nÌâ"¥¯{‰¥Ë:AAÃa�Ìb…Ïû>æ5ïKäÍb9Étëå�ÒiðC“3ˆt©A|ç:²âÚµMÏ  ”0¼^ÀÛo¶nиäTÒ¼:ªdwYD]UdOMÏ™¶ÁI>F¢á›dn3 ËŠê¨ì×1üª×LJeã‡Áô’oÿ¾Õm}S“�¶ºÍ�–hà`Sê[)Å °i oð›\ž�uê àÆ]ð”Ôˆ{r ¿’MŽjÞU<Ät¹bk`?ƒQ½–§ªU "Ä¢îöUÊ/i1Ð[3c†l2fÓYTeøWaÝ�ů °ïeÑ^÷"+bNê.0IfÍ%JÈÖ§»—.ãÌŸåÒRenó |£ó`€!�7º1`xe”�k•B+¥Q-¨î„Ì!.“¸ÿ—a§gñ| g”“ËÌì{Ùxžô‹n;Xyûº7zÙu¹‡æ%­¹ÊTÖóޝÌÛLÒ9Þ{Ü´ÃìÇ™„U•�h;sŽwí[ítG—£Ñ@p<Šé¤iÕB*ç{÷BÐ:ý­ûul ?ÔSPsýÍ“÷ƒ3¯]í'Xx ]Ôíl>•PI9ôR‰Þ¬ŸÑ(YÔ-)o E{¼²ð³kmQvî@=NQ÷ô)42ËœqC8p±ˆïÑ^çÁE>2¼»BªG…¨Á$¿Nwr'¼5·Ñ�±­h­hsBcƒoòûœg“1ükIIºÊÂÊÂ4þ÷‡¤†Æ™«2"[È'4odkc¾’Ûuw¯íä•[ ©†4|¤·Ó|rwa§GñœvjÌ 5ÝŽŠöJ´KÞ— —Lk²„œ„œ$ð0×NVRˆ4Dš½îçd}ÿ!0 x-a¶öŸS¾oIÒ€ÌÍ~;ò”¨Í’í|=:LJßBßZþÙóËT˜9�¹‰“#È‚àÍx 1†SNkN+=u~|~|p2jCRa°0؆ӵ-i iŠ™?¾î¾ÆîŒ4‘ÙzF”F”¢îÓeS$ZKh_í–T¬þpŸt¯}ZÔ{?†Ù{�¸‡Æl8s‘TóÚû(@Ùv†êe¾6wº¸žŠ"7ùÆÝ‘ü»÷ikñ¿œ®2özÝe+¢ÇóµŒï^û´¨cÙOÿË¿²)ÖÍ�”d£|�Ójy›GŠÒÁ[cL^)ô�ÌC�–“†ë°ëhC `¿Ÿ•ÙhÁ¡¯[«]Åé°Ô™œ{nzUGù‚—e'‰ýÅÆ$ýûJ} Ý€ö3Xû„m8~#«/í¹îl„¹»sm©)ëOÌF*Š�_ouPWjå<óÃì×¶à¸7®i7ôMŽ#H»LƒU³óhäËNE›>ú ¤2¦;³ßO’ÚrÛ°ßÏtÉŽ—d‡€«Óž©Â±Ð#®Þ§_ám)ó'|ÍÉ|×ÓØ>ÿDOOS}`€í7›#Ïòi ÷¡juYØ~«ýÖ÷>^õ;pCÈYÜF¾-™/�Hhsu.™n 8>�ÎÈqj#P‰šc¯¹$ꔘL#£¦§ñ¸ÖY‚|È¢=‡‚\F;ámeÑ^|,£«60ísIÁÝsÉ«_Þ-Æ*š;Ág‡£cƒÿŽö¾×\u,ûé{~7{eA:Û‰uÈÚ÷Åh�Ζ݆Hê©”;lsýçÑæ,@ZÜ„öFè€ý~f¢�ÞhŸëø>Ð2¤-­ÛÏS|ö1»¦¤vö|âN±— ;»°Ó%gÀö—yrl%áÈ?|J!„‘6LjÏh² 7–�f™Ê¢\ÃÖÍ9®s­ïÂd)`ûË ·¼"†l‰Wžlhw�aá­Ôà'ò¾TËÁÒ1n|à¿¢êá—¾bý€ý:v§wÑf…â Þò à6�× �Œ=ÔftUŽÅ¿’?÷ä# inÕ;®Æ.€ý~VÞ½®I—¦2p™>è K1A_lä=à?^°„§r@Sy0΂`ûÍ"Ãb$`¬JVÚõS'å(ŽÝæáèðcâg8.®Nݧ¡äXâ*¢9ìßÛ9ºî1)¶Á©f“®%’ËIè‹KŸPÏ,p›K×Í;»ÇáEcpUa¯3 ¢Ÿ?C㺻kÓ]j¨%T|õNšvzK;ÉóQS§¹1„Û�ã—‘0ü{wÕ¶pœ.é¡ÁKˆ€€ ]â�Š4 Hˆt#}…¡D)iDB¤%F�–��”îP©AÅwÏÃyWF”»Ö}Ï‹¾³~ßþkf­óá|Ø{Ÿ}Îþ$ ’õüN>> øå  ¹°)JË$ÖPfÇ-Ú²xG‚ÄC/w^4MÍ…}´‹H“0j ¤Ù%Ü-¯á$‡ˆÅtltl…†E†EÅaCR¡ß!¾CìUìU¤µ'Š¿-Á(Á¨º‡HçûÊZØϤ-½´°jíÏ Â2ýþç ¢7þ$Yæ^jÈÅŒ®Ž®~†oõÂ)çê_aÒbÒ‚eåõƒÊÝGUa¹s¹s|UãH”L”Œžê—ê•·[ÅDë®�¬� ®3ÝÓÎz1SZçV´/2éÅÚè7×v�ëL!�)’aÉ÷3âYÖQK=XÒ¥vþuþÃÊsô¡ëk„c¯êÜD�ÛNsç3Aßa�éÈöu&ŽÏgF6™E{Y,¨U¦h,²I3ŸÚm� õZ~ƒÓõ·f ij¤ù5"-{J;MÁ¶Ÿ¡}~)umþ¨ÞLHY²¯ÍI2æKÅJç&Õú©k‰E¥¯…šRˆ¦wƒmï·7ô,t IØUi2µçx™äÃEVàøÅŒÏ™nS¡Ý|ÆÙ_hól?¦-É.-uñO6ø´¯³èQ&›?-�âàHq*¨Ô•5¾¾pˇö²¸s‰ ØÀö­ö«ÇöÚŒ¦É’Ví<^ëmÛ(ǽô]˜_¥©Í½×d0£ñ¤F8^ÔÜöGœýÛÛoZo4ö˜ùˆµœdet„?õØKäØvîó8›»Ø¥úzætX¦wi‹L}è·Æ¶*ÆÖöÀï ?Ï÷v碞?õZQ7º'3ñQ·æ>ØðÃßQ÷c ¾»Žv¶ïTnßÉ܈”[Õü9�TÃrEN½îR lpZŠªD݃Œú5Ôs¶Qçêhs!ñg}Vq õØv›S ^ÿÃeguDø‰dÂQL9iŒ÷‚CŽn1–C=èЊuû€ÎÚ>§@ΗÀÛÍ­/•e?U"•-§{a³Û|Yü�ÿ`C¶››žp@5Àø%ôp¤zsc$¸T¥j¥*?´ô¹ê¤ Bú5Øli¹8 š�Yœ¢-> XqÀHbú/7ºmO¥nh>‚TááAäAt×T†ø�zß(’,\ò$Ò1Ÿ;-[¸�ØúçÄ<(é,é”ÉŒ)Œ)èà†§"ç�=œ¬–¬†8;÷mq.q.Œ:ß§€ v,Zð´nI$åä™ßRFP|ãDÉŸŽUH?U…f›ª©ª©šì\§5ÞþŽÉŽÉkQ¡+¡+h½¨ ¸š5š5zjŽ�åKåKã†_2¥ÚnªPòÎçGÞOG?7¢ëBUŠW&¾ÐÊ ¯(O�ÙnsTÔ{ûŸzÇv߉‡�4¸ô.gÆ3Ü>Ju†¤r•�v¼Ì}ݯ S“ÿÔÕ€X[ü<ØÀöwŽ:GI»‰­éÙlާs„Õ¿nxE{-X|c�qÆ| EzÝWÞðÜ ØÀöO6íPØ#:¹òý‰¢mã/{gŒpªI nÑw§óµ M=µê.îEòÒñ+ÛÞjŸ'…§ÒN3ö´Ð;½=ªTÁ{vDS‹%ƒh´ú¸r³ð{·“s©�aJ¯ìÀ¶·Ú@«Ûéwš7u�ÑϦeÝl@£¢½úRùA“Né ¡wq*o2•%ÐÁ¶¿ÛÂ|œj2tù)¤S-ΰê½JH9B#ÉÈSÓMz¿ ÇöbìÛ1yC8ØÀ¶×Z#©·»SIìkj)jO… ¯^~š½ô¾ËNíŒbÿ;ÕêÙ',“�]‡Ó„E]P×…¦U)gM�JV„-q“�w[B]—z³ØXw$‰1?·Ï‰Db\ú=ü…j‡¿ÛEªe4: o‡u!‘íëB5;”“¯X×ã R<ùPðaŒ$}·y<êµü·÷~ørõˆ¯g�»&2îž¼ÿŽ7§[I>†7»0æ@³P+'¿˜ö„d¸-ØÀ´Y±éúþ&*ç¾ã>&5&j™ìºQ¸ðæŒÄ›GfT*¨ó= ‘ Š«á€íÿ¯¥O ]ÍŽ…c›QšÓD.¢®¢¿%n8Üt:f©£â¹>´ÝÈ7D€+lÿ\s®rŒuÏäEpèÃf³š Cp»  û!D›¹§5×�dæÕ3׆Á¶·Ú›ú¶;1PÏ´ìš}BAœcyÎ Þ{öKµBV6<´ºŒÚRØO°‡á‚mï7\N+n;¥€¹xx¥ª¦B�ýÈ“ØßÙŸV9ú¢ÂLm¼(½,>9ÍYdé;‰:>|à Q6¿Àn®°v?jÞ.l·10ê³Ú¹´ kIëµ)Úqk‚¥Íèåt:9¼CkÕM„"Ÿ°¼æãÂøz ,°ó³Ñ‰œl�¼ò@9.¹Wƒ‹¯v{6*ñÇê:·ë¾—Ø…jBíK]ÞHÙ‚±¢H««J«JœÔ˜‹2+pÒ{á¯é饑ÂHaeÞ€|ûP:€Ÿà}VôðB?_si ›Žøu¤9,aaísn^¡TC�Hƒ¿é­" Ï„]ßbµ0¨šÑñ qXâ°1 àøúñõ×NQ$j™¾ê¾êÓÓ›—‚¿Í�Ì�lô¡*äû®$5dkŽ mѬótØ¢³R¡‡§Ý�PýS^\¸ŒÀ™‡[—[—þü[m6°íµvK­$F#(oXÎN aþ>aº•xm¬¶3ùÄ;»6´�k=ZÄž¢o1ç÷ïؾմ&;ó0u7/¹‘–›Åør�–\Ç&a(\™£”KX·g~Ó½l?gÛ�û1íé�·¤WJÖ‹V ª¦ h¸Ê,9ð!&€a¬ß=þ„’odÕó÷÷ÊÀ¶¿ÛȦ­¨ðÙ¥ ×"ÙoIƾÄ×~“rw&L ÒØþÙþߣ w—ªÀ¶·Z6oœ9¾N‚Uý1>Jùó/¢ÏˆFdÎP>›5• ï½x�>v�Ál{«YYЗˆ¾ÁV0´†¯žv ÇÕH On½sÁãÆæÇqnZÌÒX|o³©>°ý˜VNNEæ±D…Ì`InOíå¸I:º—Î�ÜK-!�¨ëõûü7\Á‘ræ9ñoÉbÙQŸ5l¥å¯89˜³lÏý4¦F¾Û³Ô÷ºÔ.>�êëp{ÔgN·é6¢+/ˆ`ÆèT~7œ¦°ÔT‰¹Ã~1”o;|~oæg»UI\ZÿÝMÄ:÷ó�ÝÖ†Q¯åG¼Ç6°­+Ч ýü šjW¿ÊÉ�5h&õ£Þð,64Y£ˆ‚Zf‹þ<ò°íýöV!Ÿ…|>“ŒuÃóVsl�e·sâÑûbËúÏ iW±ü,<Ñ[[Á¶¿Û,FÅ㯓†Ê°¦A²#XÉùS ¥ë½Fó‘¿Òì×ïZ•mIžI6°ý 팹Í3Ÿq‘þ‹¤&'å\Ó­Bàs‡M~¢TJ® ËX™9GéØöZ#zJ§õ’\Žžlq~ êi±ß7ž%â†.îïo'GЉK º¤GR2@ÚÀ¶Ÿ¡ñUè˧ÊÖbçž+™~QÙ4[¤1âEg|‰¢El³Ò"zJ/�›¾-ù¿ÝnHúVÙ0¨|b"-ÐaF0Mô0PA]gè±ò¸½ñ¤�RÏý�Ǽ3Ånë ¨ß¯i“+ a´M7KÁ7ô<åïáb_�0 ë”Ñ÷SÌ·£*ÜaO#ßÎ{™r‹)JîƱ×kÜmOãÑ?þCn²÷™Çx¨T¶™|Œä@И‹ôêIOlO¬{¥�]ô…5W#Û¯w“k’k­ì¬îŠ*À�"yª0;@$>Ÿú–1=-f$ö||§•šì-‘Ö§Êe�àbÂ[Ú;oâ-{ÛŒjTkT¹¥¥KL„.HÞŸT>©DÄDļWw‹þ6NVNÖr&½•ï{˜`Z^‰ �MÚdÝ4¸… MÊŒçÑ’lvñŸØÆ]k†‹A-’¥’¥ž¬y0Ýë©EHiH)s˜×~¯ý8ò¨ôÅHß’¾åsiÀ”Õ�Õ°bú’6çvqS€§u°X ò~j¡ÛºŸŒ)e›ß½”?t ¡ÁiLºÛºê½½—Î!û[™>[ƒ(‘ÝÇ;t¸nÖí÷nb¨å «•о{‰ÉŽdP+-^¶®ÍÕHúßsÖšÓ¹_™Ál9áDÌ".RøªÇŽ ZÔ�æ?|Í‹E,Çö9Ø~L»0÷/öàøX³+K–!C%Qv“�IÄÈÉ6ö]ö,‰²d».ƒ,BI¶ìû.KÈž]Ö ¥ì-–ü›WóÞÌ­ëþÿïû¿©Îù>Oó<ŸL�é9OÏ9¿sæœh·½.¬ÆÏ™ChÒòg$°ÊçĆHmj¨rª?|tòÅ�ôØn³5­º¥ y�ïFå,®ƒ~Ï¢+˲¤cœ1Ž Å$k2ä&ÀlxïÚ>.30[ÇŠìì 0”ñÇGm jÿ6zôø»ýªquо5'aŽ#"‚ÜÇξô&q}0�-0 °ÊÎ5¤Jôu[¤µ¯¹à\—.7Èk廟¤5}mýÌ M�/�cÅñ– `ßÏDLÊÉÛYR\ªß¨%˜YÛ¶*Ç5�쟾9­¥ð€Ö&7×»ÓݰŸÇü�øUÖ^5­ ÍLÙYN²rEuѵu�,�"rÕ’Æ™£éM!ø�†Uɘ&rÉöhdxÉ¢õ1ܦó<­oòþ¦"jWG»Ee+ÞRîtžó¹OÙ{9ø‡mا¨à¶t=Å^ÞéþÎâSƒ WÖâñAÔˆ¯<ë�wûyÚjÒÏ׃? <30µf»Ôã4sÛ鼿ºì¦ûŸÙdkf�ž‰2Ðôµß㣱Xà®Ô¥.x…Må¨>Fü ÝèÃJÀ~=+0Sm¨ÂY3UÒ¹*HÔa¬þœö‰^°:ÜÓÙ¸“ÂòÊä¦f¡\?S7`€ýÖ>iHZwÄ� |q†3yÁÀÁ¦:_ïˆx“þ鑒ݩͺRÕ”–K„€ýÜv-â•ÝíHM„äe—Þ5…äÔ‡ô2ò¡×ôªÞË�Ó˜ù=@ÿøž1`¿žiPIæ%ûaUÜnQh À .d|Ë]7RàN>uŒ%ÛI×2ãd WO}m`€í6›¥¾ëú8Ðq„¶Õ d’i¾:6V-øµûô_Â�°6“©ÅBŠfðÝØïmvóX2AKvb0Â!¿á-GwdþNÇ’˜Ï ÜÃ<2ªw–äø«¯+ÒiØ×y�Xgó.øÊ#˜†âàë�¯KòýšßŽE óŠqõªi‡¬�êâè�®ùûô¨îö®ßû}³�/{×�îfÍ‹'è Uukuk û�Ö,é*š:ÿÜü�ùÚ™kÍkÍ&)¨>ŠÛW£R£â!”7!CeT¶Ò¶"[Ó ÝiqM5MµÒ}¶„TWÑÕ®œ7A;5²ºÕ|ê…Ú‹ü®ä¨Þ½5ª�C•Þ›ÞËhíK€ŽçÊBêBjhqh1iÒþ·SÍTÍÄ�Õgýu/C�¢*ÜÊ^|ÀNáéVŒÆn«¹V†�pþˆ? ;(ï *m{ M M±7yŽ9úž§�é�iéR¼M¼M¬×˜M>:¨xPñ(”?µ¸°¸P­îË‚$¶gµ„Ê›­ž­þßÛöçïªdÍž<aA¤nFºH—>Õ°ÓlsÛÞM÷ øÕì™!ƒÿËN‚ŽîÓÜ}£¾ê›'âåãÒŽÎdz`Ï‚T9É-upûõ ¡FXgyßzÅÛØ¯ív÷%'á—�ØUDÕ2 _ߘ#Êq¢gg‡^¸jØî2'ŽÍ›D2åÍûðoÏBH!ˆ9é±$lãøã~ð’tBÕÑIõ�~Ïçù€í.«ÓÞt 6ß÷¶iC­ë+w©2ï^—«Õ,A¬º¸¹¼² ÇÝ„ûy,­wÞì-¯— Ö¦ÛeN½×ª�ÑüáÚt‚¥YÝKyïKU)Kp*¤ÙéÚöëYQ=rM…ávÀ™A²†Q|½qœùFon\÷‰Ì%’3¸*ð¡/lÀÛmö{@˜HzÒ¹LµÚRÒûÙîqqt\bæe’V¢Dö+ËYçÙ�PyìïÛE†î1±£Cab�ˆ®% Ÿ›8óKë˜s¦»ç2žÏ”Ö»G%>7úÍcqôœ xG,æ«…òˆI¥š:2AX@˜•`r^a`»ß–À,ôºñ‰xÕ)'ë\?éˆËE„…LO ¿‘íýØÊÕ›oY Ø?cóRóóݼ“�ž«,ZÔI&�J£ÙØîØçUiJ½AàzÒù;¤�Ø·l�·×Ìí•1m³�Ò‚¶ëVÑv»é>?‹)Í~Pc0¦uGÜŽáhÏNöW7lÅÜgMÑ(� 7˜�!U)zyz§}ÖeŽÀtî—ÖrÛ´ö¦’­ùt”=ª¢s£cè2áÇk×(»¬˜¤ aiâéU5˜Ißrýð•}Vè×Ï�*³nýà`ÑyרÚyQ•�v§s£âŸÞãÖ¸½sç(Ç0›Õþ2étt/Ú[JÐépƒÓÁéqBi±u#ÉB§Cdÿ\ABAÂä£&£¦¡yT¶²Ô TWPÝðއsÆ¡2oepÚ*úhÔ0:gnn�ùFYŸ´–= è‚ôÜAÇàÌ&¿ÕÃ�³ «ôTGìŽØ"Pw9îò@Ô ]Ü^ÏhÏè�–�–’�oWx¯ðÞùC+>�Œ¤8Œõ *†ò­ò;‹às¤[-7ËN†;à„#—þè0�Œù ªûqìÞìÞ×�XKJ6þNû:÷uÒ”!Úm•æ˜ÝY Z$ZõUba¹]ùe̱ÛsÒGETâÌîÌŽÞžb)·¶§ÊFGÃú ‰`©û-~z‡ƒw:Âܶñ-ñª8óÇy?:ÔÇçÁ®œôü™mlÅ\À0QŸ*dü [¾^×<«Â6±�žP%E¢×nÂk1Ðã>AX`?¦ýÆzX;®“ˆy@M�.E_{]~°åúD®±ìåÄzî‹'­"‰ÃÈFûõL¼¢7ðÐä@˜áZÎqápVƒ°/L'á|›`ÿ”ñäAaˆÑtåŇ,w÷ ï[“06žð�jñ]¼k‡�ïŸ×ÃêUK�æ `?ª�îãÌ8»w�~¨s…I›²+hbõO<û·oÀ¨A¬Œ™Ûâ”XUL?%o²ø ô¾íìçýìc…Ž5AéÓá©8¥�O6„}kßVÁÀÂõó$Ÿ¯Å úÊ~.æó‚^Á5czÓŠ{tqˆÝžæ^Ä<Žù]c�N�jV¿\Vä��ÞÅŠáY‚|ª¯ºeÉí磫0¯AƼ�æs¶ÑŸÕüóg5éA¿Í*�Ðdn9ª+üÖg•r01p²uØz51†ºAì x�.[[ؘ@œM-lm ÜœPNnNÐÿ~áäBm 58�m­¹¡|ÜP~NÔ_ñøÃ¾±pZ üüÿzý´l{åáåýô ?èÓ+?”Ÿ—ï„À 7Ê‚pÿ÷VáÛËEG'ä`këôW?·Óïÿ  æuMëP±'X†ôWnTW<¼çúl§ëš$>½Ç_~{¥7N˜¥k}ø0º4æGyµ•¸•˜™rz*ÛÇ…£¬&÷ç` 0…Zq.7"ýˆ¯;*K]TÒ²qᨚ¦ô·â+š @§ž¶[�!Å´úϲ©â¡à”›BÇRa¿²ÜÔ#1†�ÊtÊtêê T“’“’©>ÚèlW| | h¢i¢_e­|;22,B<ß¿.',÷ƒ¡;ªñ­ 6qíƒd[m ŒõGŽÅ iþQS‚uÛqTÓ%))ƒÈüâzXiÂß)]1]‘Cð|öùì—1‹ÐõÍöÍ&%”ÌС֡–íû2çíåþ«Í^++ÌÙ‰2h«1ä¹Ì´'_{Ž�u§Ù æÿÓiz‹Ê §“HFqNñÁ°?ðÛ¥ºÜ0›&êÅ’¨\µñûrvòù†Ûg'¢Ÿï?Ñí\}çr:¡Àò — g¯ñN³Ìuù^ßç±"¾&’ÛE»ì¨1žê²!Ù…¼£ÇQ~ÖÎçX�w7Žo«„“.Ù9á €öŸ¾2[I‡¡•‘N&Û£ÔY’š+Ç_5NÑ„ ¯�0͘ >†­zIë!†ì{Ú¹0·bzÚSŒ ‚íã/úfôñköæ…€{îót<{dÞS؇%pù¼w!`»Ë6Ë#’香zƒíߊÊWr錨©³¤’ŽÖÈœi�~p‘›M —Ÿ²lwÙ`›ËÙ÷jÁšÅà—)Á� ýt×Â^œq&j‡œ/=-ðþ¶ÂRú,ÀûO-bÐÓ¾6U“— –lªSpм3ÌŸ„z„VŒ‰³¶gï½¼VWn¾“Ö+ °ÝfM{=Ì�Ø—Ü|E#Iã.[y¹�—œv7}oæk¦x¯Xóò!Ëd`÷aøÓû PAG̹PIÉ� á¤~-8u‡•\?b§¹�ä§÷Ä�ÚñPŽ fêï¾lŽN(Ñ´Ô. —¼mÅäCÕÝÕºj\÷Ï©&©&yÒûð;@…êý985*¯T5¡ï[}P©w^‹Û*¼ª8ÿ©�¥�%­=kA±X’�Эõ´¢[/ópݪæE•zâ…ªüPù!ZTÃŽÃŽd³öKè¸BççIÜIÜOš}¼ð툢ˆ¢œÓœgþ:øë’· DT#ˆ­Î^®`oÞ*úNrì%Òü»Å¬T3^ÞO,„J<¬Öc¥” b?Å‘öw’.“.Ë'sTpTðÆ,r<`2`2DZ§qÙtÙt%ãËYnÏ V¶]¸]8æ\hZ‘z&Áˆ_¿dj†O2Øi.„9_škªçNdÊÉê·'W±(ÀŠx®Øéë²F•lÖÉ)Mð•¹Ð‰ís!×Ï×ÔØVP,[4 Q=\Ï[#¿¿Ó\s]þÛ×$yqô ¯f NŒ»&1Æy°«³–ä`{€Ž@qû©˜ÚØy…ÎMˆEXÊ^ M7 4ï—uè—ñ4¬5TJ?¢½§¨%5!˜{F¡’&çR±ù�°>`¿žÝŸöϼY„gLmB5çí�µ4JÖ¨Ú|öÆ|gåm‰}/$G6`ßϪínºfñs-°i»½„g4ë!÷ôIð1R’F~Ì:«¶jòµr*ÿ»§€í.[jh�»!áž’ù?ìÝw8•}üÀñc”‘uÈ1Ë([ö™§éÈžÙ#+{42HˆPv¡ˆò#*#e+3«“™MT¯ûwžó+§¡ëz~W�zn¯ÿÞ×u_×ýÇí�ïç{Ÿûûh‡èîÁ7*þ çÙjQ;>:&Ý+òÛØrÄ€më7n;^GµÐÉk%•‡µU:œû™%ÿÉ{¸ET2#T,4æ3 óR¨1î{¶�(ì5UD“J“#¢…íTÂ’Ù«ÆÍÖT Ÿ®1UÜ(|Á…›+ë—˜X0È÷Æ aˆ”1“1s£pD‰¹ÐO�Ù6�™‰™IÇýüÐù! vTQœ ðî@tgÑ_M±€€aÄ ZFMÏŒ‚ÞÅðÅðó‚w;Å"òŒ0Êß1^ˆo0B›õ ×?Akh©o©gÏHzJzÖvŠ`¼=cPaP¡Á¢Á’˜|þ}ÁÈ`$gƒlÖ�%g [Ô2®R¡�Ò¶eÔ©A«Þå˜Á «™ˆ8÷ÙÅdœHÆ^Ày¯ú‡õIñÄdJÒÙ†+�+�ÿ‡°•°•(¶ªeªåˆ‹øÆ|ŸþBÏ}I‡m£È`€¥+�=�=öšj_¤Ý\ùÔ4‡µÊrVü”cÌfk*ìwœR”³½–o|¨N×MZ)}†SA¯›�Htõ ѸǬoyp¿^S o\SEQ£ï…v.ü`ø‰IÛ‰²*Ÿö½6›­©°ïå[ç§€íÏi·iíY—'¢”sûdÅ^}˜cyÝÝþÞš ¾uÂÈ@Æø^¬òÚ·l¿g“J Õ_{àÆ€ôå¸r´j[ðÕ.—^¥±²#мl#ß´¾Lõ^§™¨Ì°ý9­³Á-˜è$}b ?“‡vhŒ*Áãœ.åm!°šò’¤Ád¹b×V©‰‡6`ÛVk5‘W ú”…릲Hr줪uÝ(_½sl†¬„uè�ùK,áMíÚ6°}¯é Ú ð Ö¼)JÍ-/\ ä1jL«a—6S¸T{–³”GÌàáö©5ŸV°ýžmÁjö“È%Šä‡Ý ‡.<„…Ö�c‘íùx5”q°ÛçÚAµÀ¸ªçï3ÊÁ¶Ú cv0"&…âåé8ŽØ—²‰#Dº é©ã1ÂqæÎÃÐ[Bžñr©³UÄ`ÛZ-Ÿ?ÉšH?Å®v¿ 5Üi8AO"¾(wœºqÂRör癆|\߬eF[°m­fgÀ”Xئbf_òö¨ %�~Oúå´¦d/¿ÈµÕ!^V:¼ÒD¢SV¯»ÀökZ% ê7KOx‰Ñ–Ò™æ¤ëÅÀV:u+µ”Òö�4ï x.Å)[ß¾¶MäÀÞk8-Ôí¬*sR¾°¥/�*z!d³½ÅO×âoôî^¥6¶ùÈ/IÀx°Ç5ÃãLÈÑ�£2¡ÏkGFQU´™ò_{ÎõœËO¥r¬rl xÉ0´¯2>6�]�!‘BsœhZÀð @F.s¡·åä<›Œ¡ÖÈŽAÇ} Mž×øIÛP×QÀ8Ë8Kä(@#I#I—wÞC%a6sp Ž1ù>õRõRƒ"Yä�… çÂø~hIžPDÅ 4¾4½÷už �?sº@±m ²#ž`Ð :··ëg¤Ê¤Ê,izÊ{ÊGôaS›"'W”›í˜î˜öèùRÙÈFœä€ê.D"{¯aíeváâ k¶–;냚”›í5`ÿZóÌ-é ]­ÞuYÓ¯y÷ÀEæXpÛDEÔßõe«Ì>­$ŠûÆû[’XßDúûw}{¸[ì�IÍ�îÔµ¹¼ÏW6ÛkÀ¾—_ñûw°� híá§›qœÚ~� JTÔ²\.Í_�—óØ!JÇ®U³Øtl§LÛÖoK*…¬”S¹Ð½+þŸ%>’¦¾É+Êr]&KrÞ¨±ˆ‰î-~��_8NSØÀöO›Í€TÒõhq´âÞlªü+{ë¡\Á0ÑÃ…>Èixȳ n�ª|[ÊÜ�`ÛïÐôä)O‰wŸé¡°PUöØGg.S5G@ƃZ§VK{½¹8nJíí 6°mµFú„^g„R™:3õZÎ5ÎfWà5Ö+‘žK¨þûdÈ¢v…�»ÔŒTÍ`ÛïÐÁ3•ª·Ý1EŽ W>L¼‡è?IoÀG¥Cæ°Ø ¡¥O˜ÂËМöÿÝ"e«5Ö™)ŠôYpB-¯û™h`Ï:ìübWwQúãpùM¹íÜl΀ýÝ·fåÒ(Æðã9VéDfþZÁ~îÎµ×æL 1mŠFAGD aÅßx§QðÛgþZŒ"8~“í ±RQæû’›ÍЀaúÅF>1½sØ Ž_z”‹±ªXòcײ;¯;ïan1Å‚ÙùKõº^_SöQöq¿5ß5ßõ" €{:< `¤0Û¡KnÄÈ#—Dƒ<&ÀÇHÜ ë‡õg‡„£zum0ÎJoÀ°¿ÖU€¶“{ÉÎ�ÄH2I2é.H·J·Ú,yIb˜ß­ä«äs=åzJ-;Xîû¨©£TƒnþXÕ�°4Ž€3m‚…™²• MåŠ>Þá£×êÆº>czÂI¸Î 8PQ¦Y¦© ëûð°ÿîÏ�˜•˜ E ‰‰VÁ¦ŸœŸšŸÊ'E¥¥KÈùRDäF€)5†5†5ÌóÔ@�~žÌ©•ž½�³]ØS=‡à6§Øln…ýlo¥ó;ÇVnÄ^'A긚,MO°âmßb“K‚«yGÉ•�ÀìHÞ«¹Y‚Û¿×&Ég¸éLêgÕR�ã5-öyY}Ü{ÝÎE¯:pð9Ç]ÞzN?}¾ÏÜéÌJÊvµé7ÎÈúö>-´wÄX¯ï1Ç„~Fs~³Ùfû´ÊŸ®‘�Ùȼ—&›ù—–í1XN5+bÇ= xpP÷£ômɃB'Ù¯ ² ²½ÞÃìÇì7H¸.¸ ÀóˆZ4NWæ,ýàhU>o‰0ö¸kzhz¸öÒOR²a4x½£Ç誆p£Á.šË ¬Û@æ!ó¦Fˆ DÅjBòNŒg<•<•¦„¦„êÂï|_ÏËž—¶�µ-?&s«N› PD£ˆ ³ÿšen¦í‰’ý¶Ò Ÿh ˆÕ:�N_à[à#©¨Yï!4¢üÐBh¡-‘2‘rP6‚~T4*Z|»¥cvov¯KØ—^ nd§ÿˆ`B0až§*Ò¿_ð<\ýUØèŠËzÄ �QßÍöi±Ÿí­ô¿ü'7•‡“–}½2La4�Ä�VYü²4ösL¨KEßàît?ÌÀK¿o�ëÀã`ûïµ{¶Zµ•x+6šÆÄ-V:Ã"“ÏÍÎë:íeÕJép¦Ÿ9Ñà¾jS;ØÀö;´f”]8i5‡/ƒç8_朹›sU±Çþúcû‘…&£ë-t¥ZÙÏüˆÀög·�Ëo\S¯˜ÊÏQµ™…hdÞ|LàžÚ¥³ÊwªêƒzãkñÝ”) YV`ûï5½�òE™¡8©Ï4j ñ"Îßßµ$PÝÏŸ|”—µÀÃÄ!OÉÿ¢æQØÀ¶ÕÚ$u†OC¸{?mãqˆu¾Ý‡ÁÁ*‰o}Gô¼þQg)Û�p¢dò„¯Â‚lc±g× U^õ\gæQ[ R¥ã ؾÙlû,p–þ³£$ûV؃}vFy¼ vÝå´Ãx=ƒá̽Ã=S¿1›ùöl‚¬EµÞ¦üž¿ÚÑQ=€L{³ÙüÓ5lQAq°¥ ¿t³C¶´® ÃÉ™‰i,UEî(“Vö^çãZ_KIKI+í\ê\ %Ó‡žPV×?R²œ©ÑÚ¯¥bľê�î�¶~†c§¡mÂèÚ‹½û&m÷¨‹Nº_¹:ànÎÝ…(²Ùm\؃qbQŸKŸëiÍÓµçg¾¯Ÿ¬ŸŒ8.ÊÿÇÄ´ëú×=÷ÑJá¹'Ñ �Ÿ›˜\|™hò™ÐK_ÉS�K˜L)èÃL™åõÏhnΜ,,¬¤ÀÖTëBêBÊý̸Š6’6rÿK]×7:à P{¥ÈªÈúÏößß> ¼3©ÈuÙžXÇ–tž.w´v³Ùö³½•¾cò_k¯-ÏM´îv÷èèÖY·_OQK¾Å5Ù� wÒ¢ÅGî`Œ¶ÿ^3Õ& ¯vÈq|dÚ”Úîç!5ñ„!£�O4uu†¸ÐK’ž›[Ì)Àl[«yð¬'( Ýž:ÉLÊl:LõJÙz™K¤5�-¯s±ëôp1ضV«6Z÷ê‰xi]ª_ÕnÓe(="DáPÅÁÞòÊÿ®�ŠÆž!_Én°ý9íVǬí’P 3κïI>³)­ðx‘˜ÝMÆçáìþ¥B9J•Gäø4n¹š¸€í¿×Jj¢VŒ©aê=gÉjGâ„;Â’Mñfë‚ðý_å/�¨ã#õ^öÄضZ»-�›Æ¡šo­ýhD ãÌâçiñcb’—Ò¤Šê:¢êXä*Ž�€íç›'cû ,Wo´l�iÛåÙD¼Ù…�Øs¦ ݼáñÒï{;ân /|w-Ž™3E…§ËƤÍùèIåÙÇûÍvà+”:×ãö©Oz…É}Xöû(–xNÿ¢Èåñ1Þ‚ý8ߘ3 lœ3qþ}¦íS«„“¤6Óš•éˆv­ÍæØ÷²»„¾»)OøkvPýÜ!ÛŽéÒ6K°�íwh«b#bñaS2†ãQåi~U(KÀ}5S”f7M5™„BX´åN‰Ì¢û/À¶õÛ+½IÊ�mUÙŠÕ¦üÌ¡ðËâ‹%D÷™ž3G’Á ‘á�üq/®;ü¶_Óf•fgÛ…Pu§[>°R§Y?)�çäL?QTi d1mŠšî¬”[6¹ØÀö½ö‘¿ÃÖ÷�íS[:M'¦Øãñ®[é»0JÓœ|¯ÍhEëoššÀÓ\�yj¿ŽE#ö~$UѾ#÷²�âç¡ÃË)J›íGøtM\æF¯×ŒÏa³¹ú%AB û*Žy Oñ^ù^ùTuçúµåcn<n�¾EEôQ;Y;y1*R~ ‰Üœ% DΛÜç@S©²Ù‹á /pRà$…YÄZÈ’>qaZ(†…oª,ZéùG$Sä„ÿKœXœø°x·Z…´ªcû‰‰Ý!Ý¡�½ï³ä³ä{¼/ýÇήéX<;Ñæ² žR�EKäo²‡$Áù¬§ÜJþx%ààîÕ¶Õ6ƒŽ "Yßr?ÃdÞd^ñeÅBÅól⌞ž´¶ùª«ÿ{÷OeßpÜè!#[·�ˆ²�™=’eï½R2²#%%deSöŽì••Ê ‡ÊÎV!ÄÓõœÎ§¡×ë~žûÖý\çýßçåz½~\þø}¯eua;%í�8gCÌyyÈ{ ThÑ©‘ƒ³S¸*ÅÓ§wÛ-1ûð�»º¬çµjâ§ã­ßh/ZEîLNÕÉgÂiS+wSHÐD¹KÛÄÞŽRÕ`&íôñ;{ î�{ "øZ*í (.ÆSЧµxëÑûí¶B^ †E<¤Š¥`˜cÓ¶þ~¾è½>±ýÿä6ôÁj¯¿�›ÏÂ/û‘l½ŽyN…u|/–RªpÏåÏŸ«iûƒòÁö{6ßcôZ±Ø4}ʼä©úZ²ý-÷FòŒ¥ÝâëÙ®Œð4^µ;tP~lÿM¨¢Ççèh_�ázîIþàcÚ-R”^¢|”S7?¢ž}LŒvÆe¥ã¸9ØÀ´VoXV“”E…ÝŠN(Å€@ßíë¢�ô~T«ò— “õ"tÔ ã½FQ?@À¶ÿE§U:°ð`­IÊìÅÛZÌ#7Þk¦öï3çÛƒ�X¢‰8û÷1.aà ØþÙíuNþBïA³p,5\¢­Œ±¤ﯧ‰æåa,gŒR$j5%â"–ËØ~×öv8ÚUÈéò˜� T„4 ¿º’¯¥áU�v\¨|çÊGèô×TŒûÀ¶ÿE£|p­¸6;ÆÂFÕ!šÆá´ES‚·‘¸ |*Âê¶§¶aw?¢` ¶N[Õâ·?š¢ßg™ÚI&3+DÙ´å´/ÀØŽH›vè¡€Rpp=ô8Ó+°�íïlç4õËg;óÇPý_�&pK}ì?Dè‡�:¨Ï™Á’cù‡e9l`û«{>·¨nî©LÅ…ZÚ$‚âWëÂÆÆ#WÅ[¼’.£aÜÊï>æùd†ØÀö»¶A–¬óøó/;>Pk=áŽá5¹ðW|›¼·Ï¨A¨œ†ÍBB°*FÄ‘,4޼o ¾W^%Ùš›6c–îhD½Û¾Múó1äž;…°êð"s!ÛÎÁ ÁT,Êa‘·«K¤'ê.ÙFâ z+ Óo¥x¦x^Ý h%h½e�…¥„WºU˜Bº7¨lÆ]pûyÂ"Êz9¼8¼<ÊíÑaê /{J‚ ”‹jWÀ–¡Õ\ä `áaá‰æè2ê2>âEWFp~8a6a†®ˆ®8Ñ—Æôcd-d-&:7~Î}œ.u-À•ÇìÖÂG^ç Nè'YÒ(÷Uùy[G€¿Ü Å …´3戦«Ù¯ Óìq¢u¢u GVãÓÙyÍ©`VYNYÎHl;ß�.>]‚A‚çÓì—}Û‰"»š;™“ÁéèWËž‰5ýè|’7°¸ü=Ηóû;û&äïãÍÈhDôdÆ•të p~�wùþäw! hwï?—;“šx·†#»D!8‡—óÜL—ôAŸF›÷áUÈÏH ¿çÑüPI·æñY.]Ó¥qíg“È{TE”ÙÀµ—îKÔ˜Zï8�í¶GE^†Þ‚­â|ÈéœAt NQ´�\¯.§;Fš�¼ÂîA®\»ä½}�úå[–ÐᅦDjrª±¤9¥¨²wééɸÀÝþ�Ï|>Ft'ìm߉D¸¤¿]Ò=h(£ÂKËááx²#Ú"|+ЫÚ0…oÉÆÉÆE“Ñ2Ó2wÏ ‡ky0Àœ]1õ)@z½]<\y‘邸kçzçzhÄñÊû6˜¾óOb, š\า¦²Z%‰º–þ–þ}†åVåV�Ö¬QÆ'ìOØ�dH2˜e[-ú¹.IÏhN'€Í—ŸY&Ï Ý0ס ‰¥SÛܳ¯²,b-&‹›’‘£‘£  è­gš~EJTJÔ¬ÓE¦‹ÙFÈÚÏèõëõO¿1äœcŸc¿†¹]ÄâN&â€kVT¨T¨ˆóéÔ—÷�t9T'ºebA—¦YyYzŒw›y ŸÛ×s]ÜÈë$ä´SNwü$Ò˜¨Çüøüå'î\ïBWæx.l¯ƒ§Êl`û³ C‘±´Ýð‚‘öCƧé³85'g'Èoð¯î§ž2é&ºæ)©§ûl`û;›j�s ™DÅá8Þ¶áñÞ)}Œüü»”Ýiìíб§æÝE½¨P7õëE`Û[m«<>$™|’ºç¥Íò)ÙJVíeÚtÜÁ)¹î�Žgf“}‚e'¬À¶·Z«ãùUe? ÛÊéÔ,¿Fò›AãrØmGÔËNCW£Ñä3åPÁ¶?ÛBúÝmž¤kpM6Õ.¤3ﺅC<@&HÍò¤?%?û‚GÔò�¤^1ØÀ¶×ZþUs›Ò¨RRWéJ·^Žƒd{éù©ï55™¾U…šéZÚQŸ.z™×iTܼvÈs¡Iâ©8#.ýÒ%n3 ™ƒÝæBÈs©ÅwMõlñÔ¹90›ƒÃJ…¨!o:¼×%›u°G„ïÿÎ\ˆgç\Èé˽ Ö„K û_ªÝÈß:˜¶Û>y-ÿí{‰<™{ø×²toó ;%Ž½Ê¤r¬4í* 7z?ì ´•‰ƒOuD0äØÀ´i¾É†¾fi[˜”»áó™ á˜Å-éq~lSò•¤¹.%Ѓ/ùÏb€íÿ¯¥�¼ºõ0ªbLlBöÎ9üêâ ^ã¹€æó‘ï;*_h ·ë{r2?Ûß×l«/G9åp±Î3j9OËd5ëbvc s& ÝÌ9¯¼f#6§˜Îµòl{«-6´ÅF »¦>|rêÏ4ôÈVšˆ5éÒû:¨¹% ¹µj¨„þ4C0&Øö~Ãd2?a%ë=S\¥ ,Ýsi`èߟ¹ß1ŸèÔ8‘< ©Á;ÑþÑI¦B3ÏQäë‘L9…ÚÞ‘zM[‘�o—IÕtw»)óù˜´O;ÝV¥/A˵ݭ?§Æb, ëÞÔ½Q!¾Y7Éz_ðI-ºô·ø×ø×rŸy?ó>UP õŠðr–ZT{EL¤*¸}[·©âªÏž#ì™_8B¥]ˆ0S:4†Àu=hNr!?Gö7 ¥#¥ƒNð‘ë#ƒŸ3^lé»Òw(ü(üÍFK%?6Q8QxHêã�ŸS �“É­LàÂA„ækmià´SŽ\)S²^³ÅûÊÙ°»Ãt ç`,a,Á<7o–o‘‡ÿ+ºKºK&Ž>z´P�ŒS±ãNÇ�¹ÌX¶o¶oÕvÊ;á\/Ì]Ï]GÞS�ô5Ÿ<÷–ÁDz%%|Î*x·=òµÿû©+ñku‰ªÑ+\e-¨êÙ¬t\AuŠ†Ð°ZÚvf´o÷Tœ;÷T�Äðµ�Íûœö±™5›Æ«vê:jºÛž y-ßûî Øþ9-›4Ê‚ve:P"óµ ÷ÈÚ[nš±¾®�&˜áÓZ§4I<»% ¤Çœ+Àö{6þhoõÍJ[ÊRg†ÐóÕ¯H˜õKñÉrE‚¬T-ç„×Ér//¾³MnÛ?§õ>³õÂr£ˆòd¥¶çgMõ>ƒY›“€Ü$©\=+\p¹ƒºÆl`ÛkíîÙÒH%ÿG¯%¬8çRpÒÌùë¢Tm GV­ÚPÖo÷¨à¹ò.£Ï>6°ý¨©Œv>Bר¼æˆ_f`äéɬ=ü<¡þ˜€žh@à Æ2fn�Œ¹M§°ýží0æ§Ô§¾Ëø7K×þˆ�ñ¯!ñn¼E#Ø¿éM5ÔçsZÖ3¬úÅǤÇ`ÛŸm“æ$XÔ ¢+oÃÇR]L|0Ìfpé AÇ•pá﫱Á¶·ÚCÖh,õûæ Bì,Ä’ßD¨ñ†çgN?Ÿ6 éõ¸CùÍ9e…Ê l{«™›R–ò.B¤õ,Š?œ·&ÄTïO Ih�upñÝü4|‚–½, ëªñ lM« $!py�¾?€ÊŒð©ÛåMüÁ½ôÓ½ÔîßÇíÚ ý˜»È&a’³LÅ€|­� šG´i}ó-ùØqîØÄa£Ý®5È~>FOj§;ޏ7�}°Ýuak|£AÅ–Ñ–‘£‚²ô†ßÝðU’Jßomeoe××ù£+&Yg}×£…èÕz#þŒpY™{"üííb›y´´ãB°xˆ`QlpAZÔŒ¶¡û2CdCd,‰€^×^WÓÍ0!Ô¦M/@@ï-z+ÿØ:ã:£ª—.úÏ=wKu…Ð�ÂéL–Ù*¼…«°ÞWû"iYaÝï+J>›íXÀ£3¼U¼UWÎe«WØU4þ ViVév#–q–ñ�dr„ „›/úèÍÐÍÐñ‡oW²SXß“Ò�Ò ùZÃæ«ÔÜ%kúöœ­¡³„»]k@~Nð¬G†€?¬Ã±fB±é8 !É5OƒÖ å’[}�*ý¾¹ +ì;÷oñ!½{æËsXtLíæ¥Ñm(}6ç×N¼XßíZòZþŠçŒÁ6 uù¸·¡^dSR"Ð!µ¿^5¸"œIZÒ’u E\?4¿ŽÆ´ïa"Øö~[–Î¥%œË$8ºîz·%ê‰qú (MÜ©¾­çùÔäö]7uñAmmØþl3ä�Ž»CP$v4•èaèÑ&‚ã^$Ð4ÍÅ×(î’7[®÷ÙW?4#Ì<6°ýMM„Ðò¹û0OŸG?¾á û“䧪ç1ñN�nË&T¤/Mé;:ƒ l{­á>¥P'” $x77&|9Ìô°g m¨¯æ•åÑ�"¼Òü.ÑÁ[D@ñ+ãƒÇh×̪c‰é‰é w•ßðYÒÿ J]JÝȳV3V3û Èn&«ä«ä¿¸ã æ ÆÎ°�]ÂNØç¯q»?ÿ�çV=æ.÷ÖkaÄš®¨Ç]ælí6·B~¿V›DY •Ï…4ãD,=×s^.v—bæu‚;Å´®+råZ‘|çYö�s«g𵋷¬ŽKÒûÓÕÍ+1àï6·B^Ë^úîæïØkkäŵú+@�¹îhÑnštíì¿Ø»ïhªÿø�ãf‘‘Hö,²"3{$DÉȨ›qí•YŠd%Ù”½®½2ŠÈU_›\{D’\Ù¥„ß÷sn÷·¡s~ç×·ñ9�ÿžÇçœûÇûžãýú|îç�‡­VÁ›t•Ùz÷€v4VVyØþ»†¬“òMwÔFž¹ §˜ÂmVr e?R2‰°Þ#SÚ�å;à�Ç*–gõ l?§¹ cÜÉ\ÙM'XRB¨²K¦d°« tæ“¥Hlí-¬}¿îì…•@ŒØ~µ¶ y¼hSÜønD‰u3Ÿ¦*ß’†�'i�‡r”‹–‚µBŸ~«½ lN#©šä˜ß?p,f›Aò�ôõ”® qütZÏÑ‘õã7\ŠvÌ™õ+!ØþË6û†‰¤QЮiψ^‡v?Q„—³¤zÄÓ’¾ Nê{q?Ã%„·…ØÀö;4êIEêÚ“¾» hºÜ•aÅÍ�3KF¬ÞëÌ©"ô&U©ž²'®‰†“T‚ l?«…º1ݬ“×�e‘Ì`ƒ=½%…›q–¾(YÎV Ý®¹ÊØü#vTGØÀ4¢Äèµþs7F8½Û§™ðø”rŒ‡ "‚<Ÿœ~íCì–7¥_j 6°ý¬¦Ï’é邿”·­ºâ–F*T·ÞS§¾0cý¸ÕP0™{Ù)J ¶ÿ®I˜U9‘ж±fºÖ¾ÑJ6·¶c³ªÆÁ‚ï{uçD5�Ú¶¨È§ÃÓ lNëïówÒX�~º<05io9ÎÎÝIÓfÂé6^½ËI¢€;K!�È$ø»š)UÔ`(Ç“Y,hK³Šm;æ}5ߌ}·/Hh]é’<þ`¥Œb»ûj˜çÈ q!8ú‡­Ù"pØÒM)š«ºÃÿLÚÂ�±Í•ÕÄX”_9‹Tàëç¼¶žÝŸÝ»|ZöÛpqmÅá‰ßÇÂ^ª�˜<€�³“‰N@yÔ òñãáÙ²Ï$/ $j±-ì»í»q‰©òÎ3u¾ÿæEæE;´"_E¾JqÁ4FÃhÎhN‹[ ÁóÀóÀnÛŒÇm+è2 ÷L­B­z=Õ’|záYàɱ€ÉU»� nçI9÷íîÓb®í_é»ü'·ã��ç‡$™¨zvµ˜Þå“¢‚Î~¨OY)<�³×éí¡ýö#õÁö÷µRsMx îê5½«¢»ÚMµ'„�Ï ƒµU¼\L;È-¯ 3ß9[¦ÜËÔ6°ý­mÜ"�äñAwRº‹S¼óÆŽ¶µ%†¥Ÿ) WêOn´ÓTjf6y‚íÏn×#¦í“¢ÎÈÎSt^WÍȪ§U,=qëºaÍŠòÉQÝ©õ˜>òÄæ»¦`ûûšî^Ùâ ?ìIMªpÜ à2†·‡—zîžäa-pÖ·„­àën¨ëØ~µ†¤Lwkt¦n±Â2˵ø0:Z+úµ÷ˆ{àE ÛŠ›+Öa‡JÂoïó1�ÄœM$CŽ�õ'3sŸXóQ¦9¸sÇv³ Ì3rw² �ž&>´Êîë¶7ÔyÐ×?Ô†Ho#�îÊ9ÝSý3!_™M}}6ñÚ.ã–µ�{ª‚P8¤k»ÙÄ©¯I�ÛJ@xê|«—Ͳ -߇\GëI«FT#¤^ûŽBzòðÈÕS¿d•n•¾Àì½à½ Û’w8È¡ÙÌÁƒöLy”˜‰´\4s�4é4éžþEDwQ$'šãÍyM4¯2Õ (:lŠúsØEÇ&&]W,0Ø©?Ú¾FŒFŒ'‰'IÔJ}ä·é[è[è¶°~Ÿ{­ö  @ÑâÒd)�rÛäº ëCÿRѽŸG Íɰ“°“ŠÇ”Ží•šùmimixñœ}œ}Âz˜úéNL�˜:íªR¼(»({Ôz³�­VmE¬S¬Sÿ»¶?½û€ y”3ºKÛœd�&g¾ÝlsmÿJï1ùÛÚ zÿ׌Nž¯÷Œôùjo@׎$žHÈæDöå^ÆAš`iòî¶ÔÃÛß× ´H[Þ³^ö1õkMêòpý„KCR+—pæöì®B1Z..›«¶`ûµš3÷Æ�]ŠÕÿìÞ‘„d&a6˜UMÅ1M<ä§R‘C¨9’)«Òë5Q¶_«=>·áÒ4h±çíÓ5­NöÕêd®WkYƒØÛÇôñŠŽ«îî.Ö¶?§e#æÌß xÛbo¸_â5œÑ Œ glÕ V`÷¬¸'_£.ëšm¯o¶¿¯•7„®jÐ'œì¿F -ˆH0À�kô9Œç9–»H|OCe ÂÕl`ûÕÚÍ€0‰œÔƒÊ¹fZu/åöqÜåãn÷``’W£íUW¶.¶?¢ñ l?Þ.Òw�Jq„I5t.’_»ƒ;·øsΔ®›˜ªlp-%ŠN™x7òͽ8zΘ&ž:ï¦+ƒÆxÌ!ðä*­}|q†N"]üÎÉ|xçñQäŽÿ™¡yr«W<Ò&Ø_™3þúœé¼<·ÛÎÎßqivœ×èîvs&5`–0°•}Û'¦¬©ÍôKÐBE-3а p­q­—ƒÕ.wÍŠ<×î?Áû%X,ËÂÏ?Î?û žH÷< I O¦M>¢Hw äAYlÀoFë[�ÇÀczÙZ#í½ëtÐÒýt:Ðƺz£Áž3ô¸Æ;Æ;Òà€ú‚ú‚e1H7šŽ~lylyØPØÐþ•ŠoSVƒsÙ}ßü¥'*æ €�r(é65ð#(/b¨*ÄæléÎ~VãÏ(!ŽÌA£\¢\rOy9âLþ#BSBSžë''жcª?}*zá‰/¿,¿¼¾™TÑV—îêˆ <@¯'ŽOg$ÿc{‰äµš4�Yv9ÍíæL˜k›±œ¶¯&Ïšéót^Åñ¦²ó<ØÀö;´5‘—"13’�©ÐêT >Kå=,WËNŒ«õQ=&• ;¿W4£¸¬l¿~[¤c¥ÕOLÁ¯Í<úØ€�ÙO!âÈR9aÓ3æ¤û°n¶ðEwÇ—XÞÛÏisòss]ã�^íX!”©fO*c88ÒŠkÎʽ1Àó¢¹&Ûl`ûVûHˆ‡0wŸ6¥þÇœF͆ 5Ò*ÆþWzÏПÒÔ�ïµèM©= ’b¹Û 2.Kk›´`î�2õ…Ë$Çv#§H´%Ê_+m·ZâØÀöÿÑäY5ˆ’>{ŒDÈîJŽRí|÷Q êuîÀz<°�íÿ£Ñ%]-¯Ï‹‡:è¸Äq÷ ¸mPÅß'ý˜�¤gÒ>›Ñ|†ŸáÂCEº%(ØÀ4Ñ9«òê2�]&|�ÿ˜=us|P„ù|‚Øû£]ŒJö VAš"#¶{>Aýßkröoemz¥ SAÞf—²Ñ )ÇÐÃ÷í!xe§¥qá‘3bþ’—ׄoVkVëCoÀ‹ž®E@É%€M¼^Œø$@)»Å�銚€_�k�«7ôíµŠÜ`4¾ûôh¦öŒ!(3uD C Ä Äª€ê•êѵZe ¶?§­œw>pרÏ2³“%ZêVQøø:WÚ%£äW†â¤à_ò ñ ¡ã¼Èyç `Î2 $ÜÍç§šæôHøGÙ`¥Gã/\ÞXÞ ¶¸_†#à�f~£÷š6™/EJlJxŸC8`ýÅú‹Ti.�Aå†6ÖFÙF9Ý:Ýú¾Žêö·ùGùG k_£ú¾¼®*ã÷€þ”Ah7J°©�í9<ÅêŒÏÚû5áW�c‘�‘��.;T˱‹~DëDë¶—ЉŠÉ¬&"‹�¸�8²a¥¸ÎìÎì›ü›ÕÎlEGèf—K—KG¯'ä§}O™Ó£ œWáY¸—+›�ÂþµžT�¡¶ÀßZ‡»¾²oÂ<oZål,"'ù~·>.‘ûPÑEÌç{0ß…€¥×M ™ß«œ•òH ïþ©ð|QAÍé®ã»æbj0ŸiÇ|Ï£ÅÞû"N¤�Á…¥—zͯ0÷¨êXÈÐxݯ%¦�%çfÙ·Û£b~þlÃGõù¥TâÜc‚r8ï…í³\o›� îB`Ë<ü`ë·y�úéìAá¯ÿ>$ÚÔ]Q½ex ôYÏtZ˜ãvßcͯI¼°•]AÓ"¦ðêÍžE Ù¨r¢M2R5S5tª� I™C^;ò¥dƒdb›·6okåréˆ"€\àlK$=ШÕ€"²se —6ÿhþÑb³Ž•k7(éѨBLSÑö‘žuEY@¼B2¤k‘’é“铨ÐÐÒçlhÍø}I}I·Dn‰ˆÉZø¶††~í%ëï³ÈyaË�hnA98DÙñÁ e-Rv?ä)-×úËϸޯú - �<é<éÇ °�'2 ?¢"º"*؂ՂÕé†IvZHTH”úuÐb!b¡!«Í«·ÊcÌüUU‚^O’ŸÞCÒåR›v)‡PxiŠƒO”aºÝÌsmÿW¿ë²"º.QÔI½“ÎI÷y–ëšlghš!wõiûk]¸Z-2Îú¤:â6`ÛÿµíPç¨h7±:¯—Ëñ$ IüèÊ¡éÆIš€[â«#LSfýÍr¼ Àö?ìÝy4•ùÀñ‹dÉvqíKTd Ù×P„Ù·„Ⱦ…”­É2·k){Y#„ì銒,ɾdÍN–)”ð›gÌ�É­FçÌį̈ž^ÿ½ÏyÎyþ¸�ãûù>ÏóÛÙtÂÜïÓÑÈ•3&‰6¿ìš:³û1Ya0ýóŒÃ-BcO­žß뺤ç{l;«m?¥lšÅéâ}V­a~D°)fžÊçd· ïÚzÅ. É—€ l;­Õ‘ýbÅ}E-Cí©øðR?)ÍNzêKMÞ³ròñôÖÑ€öðþ aÑó˜s¡É“°©¤³‚gPo…-wÃSL¶› aÎ¥çêªù’™ós»�H%†Õ­‹±"ÆO¶"\W)Ó,[y¤oDãa.$òå¹P\n}ÌþÁ %Ó�³>¾GÉ·› i×À¶BQ—`RØÿ)†×hïq_Õ£5ôUvUvy¾½™¾B_N>ØqõÍçÒ`i0„}cãÇÂ1vÀDϲàÞ  åùÕM5HC6´CZµVµVû”ón¤!Ð4 Ÿ¡eå½£Ùt'S°þ>9² 0öÛ¿]áo.o®)2Vf´H–µ¾µ>‚L‚Ló[_—·š·JuE¸ãïɲ¿òB Þ�Ú$4ÆÄô"yÓœVEʆ¶á�–¿Ô¡†+ª_pñŠáÅðû¦¯#ïC¿E²J²Š^BGBG‡&&i-î î è3ËÜúÜúÔÐO Êne@´'F$F On< s®œü­u ~å“�…‡H3¶› aþ¶ÿßϦùpuŠÈ6òvKaŒÿ…S› •�ý „]§·›’E¨‰“_LgD*Âl`Ú´ØdMÏ3*Eçîã—M+MU³Øõ£ñJê3“®ñM©<¤Î÷¸/DÚ'®ºl?_Ëyá—[‚k3§‰šs�öÃZ$©Õy¦3ßú°Ã@ºåŒO¨WØþ»æ\áë–+È»pÐÀ}žýÌ8ï9¡´#qäz®¦Ö§£³j™‚Ëý`ÛYm±¦9>FÚ3=§r�PçPž³"oªÃ|•�• ­>³N¤ îöp<°íü†ÇiÅmw9s³äÑI-ÅN‡�¡½bÿäùÙB É—*,Ô&s²oÄG'9‹-}F1×T‡®Z-”;f7W\¾=k¾Ýš sï?A.ýârò‡ª[:qË‚¥õXåtzwy÷ †U©™ E=a}u˜ ûó5•ÀÖ5U(ló^hœf,§ÃI*ÜÚ÷[l÷70æ½|éܰý8í.u¬5ëòt¨\V¿”ðȇ×Â,c=íïÍñ¢[§ ô%OQù<—/Rs/Û÷ÙÄã�zë�éQî쑚¸ˆ˜îs}Ç&¨A³Ó ÜSúÓ”ûìçœFÓZÀöã´®gÁ%ºX^fqÞtd¸Þ“Œn9Ü+TÕe%qCñÒEŽ­âÓ�-À¶�Ö‚UQ1êAyýrvµ³·‰2¬Ä«buœÉGVìš!«þ�Ú$ž¢K8³Œ{À¶¯5íѶ<ýuoW²R“³A1>\§‡SªÙ$ŒeCj~=XÊ%¬ÿx÷ìº[+Ø¾ÏÆˆ·–þôêÙÔ¦ð ÇTÈZ?©Þ�1H†¡·› '|¢*:Þ§–� lÿ´A'­¨˜Ùe‹–_G±_!û’@gñVâT¸@”‰Ã8ôÿ…héÄù B°í¬–ÃgN —`Usä0LÞ~ü†®htaÖ¬qú¬TD—W }¶ûíeK°í¬feA�]ÄU4¶.y§yŽO¯÷VDJSüE�«ëkÃܬ´8¥±¿˜�uƒíßiåäTP�y¢hüKrêKŽëdƒ;éÓ�ÔˆÛ?R¿Ï_ä ‰’3¿{s ËŽùŒ‹ek1‰Wìu‰LCDÌȸÁvϸhývMìå­¬Šää1U’ŠéÚbÚå4’v]k]ë‡îÃöGHõp©¹�}NdQd±SÔŽÈŽ¡  �Iaì“ÜP ¶Ü»Q]°‰ó�Yšó�º¥º¥ôŽ}|í:WÑhê�ð£i‡MlªË¼gø¢H›N›Â**àØy2¡êÞa<;{vVâöüݯk3i3éEvJý½kä�´€'Z›âêiå_‡lâ½ÃÇ è{ÿ/"°ýG #{™÷2÷U¯¯Ù¾À¢ü11"ccš¤˜F{„ž =] ~M¨Sÿ¦ó§x\·ª �¶Ù�Ú¶×°þ"=ÿ­Ó9sö-¹Cª_}f ½×€ùž ª×‰ îV×ûÝætë®úò‚ ,ØmB‚Ê+ýéŠóÏD}áù-1ŒoÏüñÖ>Î+T\3¤'q}áwÇêv{ ˜÷òo¼g 6°­=àr3–=Ÿº:Í€!µ‹ï£ÑÐeé,êû]Ùl�cg" «X,zòv“ßÛÎoKŠù¬ä³YÐý«žÁõ±•°Ln!–$ÉÛbo  ™ißíòµðÀjjØþi³�K „…ÝŸN‘¹¿Ê� Ê8µØ¹,¥Þ·Ç¥"Ç’<‹l`ûš® ¹Mãåa‘¯^2S%9—C´&’ x$Üᣰ)¡™o§Œ`®î`ÛNkÄOé´_’ËÑCçfǤ£,}n²F^ÕÇ»°4:p�UØ.;Xc hؾ‡vø¡�|Ú±*Ü\#Ôäø£gC±Åê—èL¼y(´IlÞ6ˆjèá'pÓ7§ü¿ÛU)Ÿ •�½d…z,XȳI†*˜s«r<â׉òü¡J¦;ÖõÛÍ­´�ï,×mU8PU‡I¹áSÅhìI¶ÏÐPÑjjn4J(a?Ç(Ãæ³8Ÿënìn|04d(Cñƒ¡€ëFC£ Ç1=Åi›ì9íѲ°c°c ï‘TH'w4äé76h©8Ó�›2gP§ƒÎß~zøi6@ì ØA—¬'heÄÎgˆ�¿�?Oo¬ø×A!PˆhÓÆèßËvÓÏNiä lR+NŸ;>¿)ðf’´2ÂH5ó/x-sÆ&Î6Í6Íêñ©•q+•¾…£ª£j|·Ôn©ÝšT˜ÔQ̑̑òcˆtt&ô>Õ¶Õ“€·v W æÜªÓÊãúê“nØ)O,�YgÊíæV˜ß×j–+ e°Í0»E`ì©�ð8ïPssÁÞvÔÀWM0ߎªè ÏÈÞ:·j Û¼رú•—ò‚öU-¨sš�m7·Â¼—�tNâ÷ØÊ ØjE‰íÖâ%èðV]­[,R¯a«ÞÅREqÜHôÞkGÚ§É,A�í¿k3•RˆTgí½Û5S8 N$¬â"E�vPéâV¢ßßg«Ø]Û°ý;íâL´;™+›Ù8Kr0õ�¢)i¬2#�…$©>b‡Ç”ùï×].Câý‰:Á¶�ÖVOU-ÚÖ.*Y_‡åÒ>ȵ¡eäN\ㆠ1Bè�³6�bH iy¶§?˜8¸°¯O.º‹Qòõ‘+Éíqê‡éË› èÉzq«/A¢œ³æ�EÄ`ÛÙFo¼f&®8W<ݪݻ'ⲋ¤ZD]2qÏ8‡<ͬ£8Òøm§�Õ°�í{h4Çi*”¤ø´íîJÙ… §ôÞúŸaõYß›"Ì`ú ÅSF™}M4œ¸l`û·ZèÅæ TØ1Ý9É´Ùá!R�iú I²ü©ç˜X~ÄŠlí؀ƿ'!j­×àê Ç¡e*�øª“ˆÇGe™EzûkNû¹Ý�‚ß,6Øþ­¦S“)ÝÕn�UÒ¼êŠS|]¾Ì¤°Q >Jc1k7fÒd,�Äõî|œ5Øþ»&aþà<‰h3kºkÅk­$K»sl˰!5DT“±“§TîÒ8 ±[=ÍÁöã´Þ?AõÕWuïú¦&mFÙx£Úh›M9ÜFK£ÏKž’Ç™£�èLÇÿ5›ªuä‹ÐƒOç ¦Ö� p‡Ì}Zõãâ�ÆXFY£)Ÿ�Þ%7!¿Ý>­Îo×àËo5zlaS³î§lkЦd*Þ¡™Ðë$è$4“�ŽsЬ½KÖšþ\Ó‰¦7²áÙð¨€ß]:û;�u@ßSJ^s€ª;˦ýþðu4ü+»Þîzë5sá¾®¦Aš�°`7»Ñè&/¾•Rå¡Ùßññÿ~È­“W¸W8s)š®¶§gÈhÈ(Ÿ¢Ö×ÁÝàn#•Grþ^TWˆ6lmÞÄE'{«xÓÀÁ`Ç{ 8G'ÿ’JßÑ, h>˜˜²6Ѹ{:¯á[]/º.U>D3DË€©׀؀¸·–ÊTËTËÕÿ© "[ÑbB‘‹HÌ}ZDUŒ…„–÷`»¤bùÊ=Šíöi1Ï%êçìÜïì¶æpˆ¼œÏÆM!г¬ÕOïÖ›~{¯Õ„ݘÑζåߺO[AüÇûÊ#þ«ç6Ÿ»LÈ~õü/ô>-æ½ì¤ÿË?rS|¯®lØvZ›�¥º5œ i´…˜çX}ªýÒwD¯yìŠr·<^‰*™-Cåkys-™tJq¤7i/׉5_%Zv¼ÝÛ­%1ÏÈÅc4Ö$:´Ê†p£ uy�pÄ µßsz#•Þ멬îÉÞÙà/¬%¿|ÖˆÂD‹Ðƒ÷å!ÈpÇíæ$º¿]s¾µpÙKLMòŸêˆDk·¸ñ§�ºœ:ζk{Þ,Ûy+}N&W&7зB¿BßQü"¹p’°Gô@W‘€ nS¸©º�ŽmÈûW¿_ýÎÓ¼ªF´Éd �¼=qÍ�µÛo“)>®¸F“Uà1ü1|߀ÀŠÀJqY—,´3}"}¢�©�É4QAúëüœüœÈ³ícÿ^Î>z@³sSÞ)7KešM„FÕÌÄÄÖ¡"¯þ’`:Âà³ PZHŽNŽÎnè»ÆÄÖbû-òròrH`ÐJhe€&k1žž…à;>pU¸jRÀ§Y¶²k�ÝÓ¶§íÏßöß>ÀÏ�9ÊaM¨mIü†6k¢f»Ùæo{'}Çägkc¦ ~Ó­øLç='ùº{ÚÖk" 'âïpÌôäü‚=c Ñà!µ9�¶Ÿ¯iTÙdؽó5C6%¶{¸ˆO?åT—ÔÊ!˜�™#Ì¿(FÇÉ)lïí¶�Õ\¸6b �—=£Ú�8³—x¯ÑœüP ¶YÂ!$•E 1˜.£Ü}y¼l;«Ul\ì |a]ª[ÓjÓaã+Uã'sõ®` dk1ÜUÀ¯¨²oØ]¬l?N»Ó9o¹Äï〵á~‰ÇxV# Z0œ©éô5y6ÏRþŒc�Ô¤yTî8žÛÏ×JªCWÕý•{%©y%Ðéo„3_ëË·Ës$g‘Hy—:¼/ÂÕl`Ûi-È?L"+…])Ç\«òå1yªƒ·y¹Zßë{]êûL<;ï3IíSUf¡=vý Óë=††±Å¼ò�1ð2ð†Ž&Ã~îîTaô�@Î'8oåI¦µp.IR�ÜUVL´ßˆåššñàŸ�èBtazzï^ûgý æiæéç 55läÈŒ‡µ:µ:/ç_®)-�£ÞÊæÖvõ6Çã¤C¤CˆõÄúõ›¶O-â/á[ÍiTgŸg–f8±Û>òÚþ«˜֚ǟ̽ڼ¨lÝ3WÖyl`ûÚ'ÁIÁ¸À·âúÓáǹ픈®©OhÀ(„¥#N“ guƒmï·eFj£ÔtŒ¨Lƒ17½¿|”ÐJ1vÝ úëP®=çŽíN~dW¶¦-È.,tñM<önÿȨOžaù¤,Ž•5Ó¹ ZOÖ,xÎxŸ7•¯¨ ”Ðl`ûQÛÀÞ×cíñÆ‚ò©5•†=Vkô™8§½ôž¡?¥iÌ®�¢µ ô4¾ÏÞö Ë먖ùsäj)'4›�Æ×+ž9¶Û ´Â$Dåyqýa«>QÁºo{ù“j**ÚNKŒ6�òKêú(7›yÛQª›¬å“Ü×v˜�wž�fž( `A½4uÙÖ”1º6;w›�ô¾\s’x;KB£ d§¶ G˜vÀqBXÅa[`[°ŒžÇKpå‚p}�‹ë¯ÞÞòÏ€[÷®0’ƒ!ç?ÑOÚÐîÃuZÅ¿C`Ióô\‘�(4q.G8Œn0†@WŒWƒëEÝE<'À;�wRH N ²¿â�ïóZþµü@ì@lÜ€b3\òêÛ¨58úÖBØÌUãǰ°ol„âîYÒ”6ózóz£l®ÕÜy½Öö+ŠÃŠÃ¤Ó”±”±^W!sÊ…TCª�žéº´ï¶•œÃvѦwM""ÄzJ&…¯§ªÇç̇©íÓid³[üM‡ì6!¯íý¶éÕ\�Æø6]S ¤£a2¾ýr}g1O7ÅB± ¹÷@¥ÑÈæ~¥cz/5öq¨d�Ó¸ÏR�W6VDØ~Ïv�ù°AJì”0ÔÔ`C¥¿%zü¡…â¥ôFžóãB�ÏÄœÃ� TÛÿ_;ZÙÄ4‹0_Ïç�d64kQ ñ“¡™¾ö.U£‚Méâjÿþ#6`ÐZýûòšl«©Ï­ÅP‹Á¯J?>BûAÍÁ<Ë$ÞH§0ÝoõØÀö¿h²ŒÇq—n~lV°&£ž«Ç¤÷]Їöï³Ù�–éãXaˆ×˜Ç¯À' ݆۟`xÙDK½„ÖqØ:ø¤Ÿï¼¼õÂ>uJŸ$,ÄZΚ¨IÚjE*@®úl`û]ÛÜX’çQw§—ÎÊ)Š[D5U" (Mƒ=R8i1j�«|13w.Ó²îØþ�ææ•âú{ɶÎÚ’ØûøÜ?S$—ldÍÒÒiéeu„èò´ªR Y±Ø€&¼pæIEÑqsîΧ– áî.•‘÷�›üLû�ÄËjôÕA#IãwÛw®�Bykô¦˜œ7a¸WYÖé�²#^/ó‚ÙØ=•QùAgëýÝt›é5”f”"MZ&RÑm¤;ì; #}�ôëY ö�ô<Ü… Œe’©]bï¸vÛ'Dþ-l‡0ÞyŠ}*Âîv¥sæõ¦W·ÛŸÓ>ˆº2Ý6…ÙA;b%Â’g�Ò4vßfqŽÔ�qô®ØñÈÈFȶA°�íßl'ôÝLËg; ^¢h†Nd+¬õ“‘„`Ç£Ž˜²F%Üáºo÷ �ë}>ØÀöO5ÞAiã|ñ\Í¥zÆ[ÄŃÄë’ã^²-~K·œÐöt3ûÔaÝqØ~×6BÌ•w’h‘z ã�i�`²°å™âÛä½°ÓM¦£å <¶rÕñ}¤|YG'‘ÏTøNA{Ïc…h¨ë\3ÓÖ­ÜíL…þ—kÐ{¶{ÝÍÈŒ,:j+%„Ia~MSù°Ö°Ör´òþ�&eÇ9+ÅïÙ«Ú«Ž«ð%ñ%m*ò5½BiûTãͨbøjGàéF Ã9Ã9{Ê-Ðn[W#½ÐîD8±X� gäWù>2û$@O/Wà¤ã¤ãÓåŽ@Þ˜Ö’ÖB�G�w�ÛSýǰ+±+§7^ÿ¹•<ééG¶-p)Ü’d\p˜þ¡†uÅF…×I¾‰üp0Ø2p ¿„°„Pm9 ²±$ô+€—4F³nn.; ãílîlƃ•q(p)p•êoÕÙïÄçÅç…XO³_ç6Ž¢sµÁ¹S‘9è^eÏdš"~´žÔÌl€¿Çûºqv˜›�¿�÷FY/¾'7­¤Û×cèáyäóÈïB@1ìÆ:q¿Oé~Læ�Z¾{%ê‘÷…ùO¼éR$ zì¼W�|¦ù=�6d%Q‚úGfŒ­V& ŸM!Ϩš(³áÉ:Þ+t˜� æù™w›Q‘ÿ“%ÍŨcx#èrüÒhkƒN9n Öãƒ8=¨’Uü·Î¨_¿=Ùùl”Ü;®ƒ2J‰y%q—_�îölðåšêí¨r±#‘-o5؆øæ�àp««³¢¼P`c˜¿è‰ƒì{™2/À|U”T”8Éѹýq€Ãျ!ç.}@�¾ÎM¸æˆd)„£¨×ÎÔ3NuVʦ>‡¼/4¥N>�vZÀ´tEÐz¿r†ÙnûBÈûRËóÍ�<étù÷ûœ ÅÆŽÛ¢F½Rïðs['˲îà’Œ�ÃÚa_Hhç}!Ur™;Êe¥dÚërå-wýŽ�á—kÎÝî)j7 2��­ÊôN=±F0~Š‹«ÆöÜKù/ÑVê±–ïEGۈˊËòpÎ%kޤD/R¢ 2�jꛌpþlwiÚCB!¡Þ’KýNœs~kfП¥ÔÁQqZ_z €æ@s¬§¾¾‡t�.+)*)./,/8šWºý˜ž·ž÷b�}÷Ï11ª|ÍðU‡à�íæl�ãt”|óT¼ô+ÚIÛI³o'I%I�òFÖt­_»_[vOœýû³¶†m· ”Pá²;d‡XOî_ÏÂ8V’¬Ø6a �ÕolŒfï¶/„¼¶ÿÛg‰|Ø{D?æ �¹gLñbÓb.ÍGóBaDïï#c€´²ñ‰h�KD�Ø€6#2Õ{z@Ñ¥OÁÛ¼Î\#—E/³¸%'-„gZ­Š"ÿb „p@Tc?ØþÿZöø`ÀÝÄb rKÊØy�¸Ôå‚Ç'žžLXè¨za ÙnêÎÏþlÿ^s©qJt¿/À½Èjà1£œ÷Ô$³G’ÿ )~Ìæý“§>:˼ÕÌXÛÞjËMm) ’žÐ»u¸�P¶Ñ.Фܷ 6v\TztÚ1R‡�±Db‚mï7L6޳*þ³ÉÅÕê§{†GéEþÎùÙRñIR5 ³yé%щ)¶BkŸ 䙊óºÍbÅÛ9KÅÕÛqoÏFî6S!ßûO•ƒ^XMÿØ�©�´*PÖ‚ZI­{�û�@Dƒ¦9$¶žñ /;Ú÷3ÿÎ3UœÛU½T£ç lAo²t¼S%w›©Œ¾\óªx»OY6fÈžmõ  ¡ª‹0QDDÇl]xÕÀ˹6¯¯ç{j!j!³Ýõœõœè©€ˆ>\W4à\‡UŽ¿) �æ‘s©{¾Ž`•`,ÞØ˜œ”Cqr10 ¸åH{ º6ÖlðÖGM€äÉ;Z„B*ƒƒ½Nx�Ða¶û±É´É4ö,ËŸ Øœ»ç ˜é‚±�“^ €£úè$@!{c¾[â›Sù§5<„‘Œ‘Œ/«_8×=ŒýG:�tlï#ê#jG&ÍrMáš‚çK�Ï1çbÎ;Þê Öv£>€ù‹MŒMŒˆõN_O”‹AÇ‚œg­g" jÜ»˜¬v›©�×öNßÑÛŸÓîQ$Ú2®Î„ËåIŽœdx ëZ³ÄŒë˜1Ð×?àÓ-ÿHñ¥G%Ø~Ï&šä¯»YåBSêÁs²Ã/¡Ïq@vª\“8jà‘1”¥:`?ï<‘Õ¶?§õ>sñþD�èÃMç*Ê õ�T¬Ïî“øv ±¢8i4Eò‘S‡èL­ØÀ¶×Ú �҄㡆äÎò?~{/ÛF´!QÛ…düÃÙ6”õÀ-Oá÷èoâ‚ l?jZ�Ðõ6¯¸•™�Mða7{žÑÈ,f"ÖäËZÆ.¨W»ÿí¦{Ø~ÏvóôÉõ÷D×J?þ¯Z{ÀÿqƒDÿF‚?í(Ì=ù˜ŠOlÍ‹µ[`ÛßmÄS6°éX¤­ÎŲDJ$Nbk/gÞœŽä�5sxE|‡ï|œäÍ…°í­v—;É[7Õ¦é(/¹¼ý«xḂÜiòç3§%¢z/ÓÜEó¸½Jk ¶½Õl¬hJ…—1Ml‹ß�t$ÁÔíÏŒÊhM¹pñúæ§1F*ô²Dl/‹—}`ûgZ%Éâ‹ xqXa´Ö$—œ6‰FöÒwq÷RKMÅïÚ XË_f‹•³¼—üž8‘ù^Ãæ 4ÅÙÑ’åpûýÏ£$»Ýk@~NPãò±Ð¾·’>KêM·a=y�E´Nˆ€ê‡!¨âÂÓjìØÎo‰ ½{æësX‡ØÚmJ“ÚP`77?r¼Xßmoù·üσ l@ë ònCµç9~œr؈ÂõjõDøªd.EIoT3ЬiLAƒìÁ~’L°íýö^1Ÿ‘äm.1Óºç�–Ä:1òCšøm‘%ƒçtTïö]µº„ÚÚ 6°ýÝf5"š”Lü(B† Jz7†©™øˆßH¶þòŠ·üµ–«0ך»Ö$¹d`ÛïÐt¤Hìž{� Á.÷™+ɹrR™‰×,bpDN|&Wɨ"ÎY™6&wóØöZÃBýöî;žªÿàø5*dË&Ü"2SöÎ(+#+{e\³�!‰Rö¨ì…¬�QT"™×‘•]F¹ä×yÜîïËmè�߯oãxþ÷z8�ÇùãÜÇã~ÞçÜóÑ#•¡%™›y-ámAï�ºzj—ËòÈ@1aia›Ô`9ÙK°�íwh‡éɦKWïÈ5,�­|1t³Hmà<�‰™&!l±AP]'�ƒöeÊÿº]ó­‚Ñ)o0ê0a˜%y(£?G(UêcFS*Â`cÊ8ž©K°¼Ýs„†ŸŽ‰’Ý*"Áf ]zÇf’þ(‹œ¶7P(ê]Ø]Øù�íUäõ˜÷„~½cvÇLãî¬oSPp5`Žø¾©åw™úm€(^$ ·Gïü¸‘¬ù3+I- –›þ‚ïhb×HX�kÅv¨t!Äd~„2Ÿ2ŸTn¼l¼l¢)ºXúüåüe>®¾| æ7cªÚª{0t"g5g}n·òˆD<í"×õÄ`ó˜9»g»¹úûµ^Ê”…ÒÙdš§âyªû{8Ù×Ä-�„·ÕóS=’oKqÿ+ÏÈÚ:·j Až‹ ¹týû1YækûªÔšo7·B?—_iŸÄß±Uè±Ô خNjÐìB¸Z7[¤EâcªÜÃP)e‹Môa´%êÕŒ†Ü))ۿצŸˆù§�՜ֹ]C6‰Õpì !TXàþ8Ü–D¢¨âßè‹ ºgÓ¶ŸÓÎMǸ»²˜�2%_§¼{R£ÂPk!I¬—Àþñžüª�½!ñ�øp°�íWkÝêwv…µ+ƒòÖ‘�k¹Ôå¹0jzŽÄuò!zÍ¡Qh“.]ZHs9ØþœFP>κ°¯W&¦ƒ^tVüRr›Å-µC´›ôh‰{v<;‰>›5pŸl`û7ÛHì,Aía‡z’AýÍžÝÞ΢ªuÉÝ£l²T3ŽÂF‹p_+c°�íwhTãrTUJþD8ÔmîòÙ… º:‹�ÆPß�Œ)üt¦å)ž’JÖà ÊÀ¶ŸÕBÏ0\+ “ÖžcMgÎ~"‰M?EW�$eÏ›æÐPnb¹†ÕÒ 6°�wwBôz�ÞÕA6Î õøêþ��Jíå4Œ¸âù*ðä?|·{“ qE&`ÛÏjZ5w$:Û¬³J^"\±Š"e+L g*ŒPYÌØ¾6i2:œÄ¾ätËlÿ^9]îD(øšáZ5«‘diëÀlS� ©Á§˜¸9¡«|�ʾ  ³Åó4ØþœÖÓ}Ùùˆbªn©wrÜ6ÂÂÝJýÒ”Ím¤,ÏITWkŽLž�ó;6Jsʨ¾PÖçsSëÆûfôû´âýùÒKšÏÓôÉôçÄ6B¶»Okôélñ­†Þ¾Á@G(¸Yé ”c%å(s�†D†D©Ô³¯b»J$:R¾Ô+Û+»ÒÊg„‹†ü/ÌõØÊˆ½�œ˜Èš|3å\RÊÙÖ�×�Ç™)¶T`oFqÔŸCÁ 5A ú80{e…æ`=}=ÝÕp«ÿV?þ¡le6l6ìªýUû×;[¿Í{Á{¡¦R¨çûN#¹ü˦!HJ7ú¨R@,œûÿñNt衳,@!$Ö.ÖzOw7Ëîò±omßZ4ÓÚÊÚÊ£Óè¬!z]z] 1m=&=&ý.o¶ö|+Ó]€JNJNôû´þé7,D4|ÛD�?|_L¶Ý}Zô}‰úÂ÷Ÿ½¶nÏIú�æv,ú`EËe�Ô·ý&v ;!ä†_ÙÛ–wë}Ú*‚Ï¿/hRG8l\ép—rßî>-ú¹üJŸå?¹Ûß׊,Õk*±*ú>‚xÍæš£G¦Û�‚5¼Ï™·�Â. 0Þ'‚ÅßmO¨sŸ¿ãŽP»Ýúi´žKiŸè™¹þ•ÙÄ‘­³‰àÏï>ÀÉ�>Êa�§iIð–:k¼f»Ùú¹üJï�øÛÚkSºËoZpö:yNðtvûknX¯ $(Æße›îÎñœ6…¨sÁô±Àö÷5C ‚ jX¦í’Ÿy@Sb›‡³ð›çÕD5rpgnÌá埢9x�ßÎÇl¿Vsf߸‰'Wñ‚‚ogâ4#£áœìP ¦yg€Bi®ú`†¤æõ.ïÑû`ûµZµÞƹž+}V$Ëuë­Z,UÐ+,ÍÃØ¼Ç•÷½rêÛŸÓîÂç-—y}í16ÜÏsͨÅ ßÛ¤,ËâYÆ›)]©*Á¥|×ÑÀl_+yŠP£K Tê¹HX3}oˆ5_ëǃí9œó_ [M¡7ÂÕl`ûÕÚµÀ0‘¬”ò9§5žŒIËR°Þæfoö`âe�V! íR•·-tPƒ€íÇ› ]Û�[o˜X­aë;Ò‹7±æß­¡ÏÒ´²G'Ëž¹íŽN]üæZ5 J OYpÓζŽñ˜‡cK•Ùú?óÇìWš> '±ºâ±Æó²Îõ# ¤6yâ¦_™ ð|}ÿ%xg;´z˜Í@sêdèØ}º©íf^&ŸŽ±FlUóŠ`�!ófa-(MíØ—Pj'ú'ú—ž¢¾–gÞ~Xö%ããDM�`�`õ=@�‘1Àv7 ‘P|j ³å<ƒdœU2†¢p1®4®”åÎÉB’Âë(†cO”&¶rHÚž žô÷'ìØ~N›—žŸoã©õn^…ê’§œ~^ÃÊšz¦°ò”´É•YCloê‹Âg3ˆLÁ¶oµ5\l¸¥û”9Õ Kj;œ¦H›Ç_é=CJS™þ AgNåi˜Ëþ2/ÝK\Ó´} ”aÀW,:Ld2=I )RòæØvk Eö jODA“.ñBÄÅæòç•ÔîÔt­B§�ìx©]~þDŠ.ä:´îP3¤²ÆRö–Û‡¯¬�ø¿¾âQ²ÞkLÅVuÖÈ0 1H{»5�é§c.`l•@»Ä�®Qg3)+��Çb(”‡Jw”îHŽ:Oõ6ɦh�]šöK¾¾ú»´$µ$Çxë铊ê€�·ªÇSö )-Hëœó-(¯ïQGSGS…Áˆ¼‰*™PÞ{-é¢Ð˜.†"Ųžq·�¼¯__I (h*hšêÂ9�²o0�'�g¹d¹$o}@æÛÝÝ›‹ ¿¯©ÑØ®§–‚ÄZ×Ù‹”¹½òð킽8ÿ0z"µü† �êLïL?>ñpc†ãÊ� N¥N�jó‚zA_9£;ùÐÓÇÓçJ{vŒ8—8—VÅfâ´[OôDâRãRQ×SòzzTëd:@c—L+�Y`ļÝýÚÞi�¼£’ëþ+Þ�gŸ%JEv½Øó'·¡%+>Ódc,~!ëà{yŠÏ ¬r:$wÒàªeHÀ‡}ßyeâ„‚í÷lWY˜õâ[ð˜º5©3ŒõÖ{ê#‡ Ì�ŸO~Æã2,Pkå´;ŒHyl_Ú?ÒfŠÈçgÑ7©—£õ—¢�¼´Š¡RAŽ)ï±Ò³“Í l`ZS@Wv�œu%�ÓŠAÍ€Hw ŸT-s0Ý{e{Ót£Xí¢dÿŒ¥`Ûÿ£ICÕv¿M\­“³ÜC3ûtãÅyÝŒl+¡5©£]‹L±*s¤¡ƒ`û³[7~&ñÛN"Ë\m²�»¯ÓÚ팷XËYoª’5Y�!W*Ø~×6ûê–§¸›ãë3 |’”iÄU�„ª!5}pI¼¤(åÖ•5Þ¨79½èX±Á¶ÿG£Mô)yz/ÎúŒÖ¹[ì]¼n”q×Ò§é4O¥·ë¢·x$G»h 6°MpÞæ=iE±ž)wë‹ÓÕ¡ng Ï�kü/÷°ÅJ«t=É_ ‹ÝnîüxcpÆ`ª„üÐ��NiÇ} ø�,ó&¯î)Éö�±ÜÙÁð1¹ŠÊ„J¨·FÓH2ò%ÙWæÎ‚_Ÿ;ïïÌ¢ §¸òº’¯âÈ©YÇîíæÎfŸŽÙ9±•JÞ+5t„û6;1ŒR8™È†Ò¿ÂÂ(¼OÖÜÅpB¾×�âK ˆD&U Y ™³`�4ÜÐ츴¶Ç� ð>ÂK‚D„ç�ò–Kë£ÖGJŽo7�ë2('½t„Q¢Kñ!9ØÃ½ š¦—G/�Ö0®a^ùôÄE1Ë…Ð…PÔTÔôºª�Ý·•ä”äÜßõŠèûü±×^Ð1Ï ­‹¦íCš–}AÇÃiå ùDzPxP bé5þk|ïsýœ=�a?‚r�r­®ýÓ1¦ÔqtÄUî«Ü;Xëq/à^`lÞ¬.d«–R@_àÀÚÀŸ+ëûüì û*#w´L"¡Í]d‰k»¹3úµ]q�ùÈŽ%O‘õbÜg†3‡¼OÀÀöç´÷zÂÎûowÃ2Z™¢ÅBâ¦Åië6ܰCÌ�Èô¡C9"jááÏøØö� lÿfS×u5.Ÿn-| Q½Ö7’Â_"÷¡gi0n,Æ 1kÄ�»\¹°Q|®å|°�ígµC…üR†ù¢YªoŸBÓHJúHææÃ^ÒõþoÓ1w^.ì`ñ}‚s× l`û]Û WöIâšÞ–%=²'üq‚§m~Æ^÷�Ýf5ÆCåL<Ö2b•±]d¼éâc¨ï¶ÓŸ×mÅN�¯dM„ßÁò*k8Zö­ï¶Ê&ÖöÀÿã^cá}å{.úþxS §báYI: °v»÷¸ ?��þ.ˆ~Žzn—|nÔØ»ïh®þÇ�ão${K²’U2’""{ïÈ^ed†È,"Bˆ$32²÷¦BöÞd¯¤2Ó¯{Þ½ñnèœÏ÷|RŸû~ü÷<çuÎýã¾ÿx�{ïã;iùRAé<œr³mbx¾u–oÂÊÏ´#¾çш8?ø„ã—–Á» �†)Äy!“‰7$JŠ1ø´M0#»ïnóB½ÏcîŽïô$ºz?¢ˆÚíŽNÁ�>.p îøµcœÇ832WRt*[«VÑe¿ÅiÀiÀÌ:9=9E(»? ˆ’`ƸÉû�3kÎÃý,~îNÉZØZ˜Í‘åÞ~Ô®,8ó¡òpõ5&˜0¯Â»]1† XÇÖû¬÷ GûÏÁJÐIС¿E[pÆ¥éÇ2ã2ãÈ c~®4_–z  ‹†Éq“gŽƒ‰È—A_í?€:Üû‡I‡^P4à–_´r´ò¸± cnů°²:¼5lOžÃ®pe�­›¤ð àÝB§�ÖïmZwÑÖêØ~gSºë�OI.\BÃÓ42Ñ5}i~ÖªŽ$öfî×Ï�:r»�¸¯«¸ç‚moµOE�‚ã)¦h;¨,?ðK”²i *(B“q†*Î_¬?±fwa.Þ7HbÒ l{«õ¾²“_UðSµÊ§šILõ«ƒ�RxÞ�¸h‹ÙtP¥P”{5Yr9å"ØÀöO[p¯‹ee²*±P¼�FÎ!£–»ÞØ$ƒä´Ç*;ð²ÒL]#> ‹hç� l{­½Àw6b°,ˆ˜%;Cæ$Vz½‹�|/=ïò½¦,Þ³*U1Sóm£H¢>Ác�8�Ÿ’"™Ž¹Ìu©àÝ Ãýâ±:»Íã×¥–_ÔD›™Þm‰Ç7"kœƒ<.Õâa·AoØrLð~úwæñ'¿v!0¡ ©E뾉}ˆ*‡·ÂnkTúŸÇ|2ÜéMµÛD žÛw‡Á9Ç(l5g5t®ÒRnýü˜R0tó[úú¾šr‡å åNµöqì°®eMK'‡®OÊÁ[ÒAá¼sññdy*ëÜ}Wà:ÜFšáäkWa®â“ˆ*2yKœôœôF‘÷ìïÙg�í…û”ÆÉÍÉ�‚²¸ßûü�¥„§„´½Nús5�¦�ûéOžÃªoºÛûÃä—…¨ìWï ¦�ùê²>ÕÀò´¯Ÿ¯jGƦ1EÂÑ_Q—Z—ÚÚCdLdÜ�èYÚÑ‘sruß0ßpIüvò;õ}¼©dd‚ßOö_Î.\)!|g\‹ÞG\µ™µ9Œ—´Ûºâ½ý¿>KäÆÜÉ»žªåsrÄ>–&Ê™IñHA&²3„áJo71÷+&ŽSJ£Á¦`ÐfNMÕö¼$³ê>ï¢[©+� †–WŸãw|Z²”,Ó1Ÿ¯�Wz?Øþ{-i´ßûiDª‰>yè¢C˜7Òòn�\ÀKùð7-¥íê‚Í—Ü9™3ÀöûšUùÕût.¶¥£ê3â©/µÑ:09iˆpB¶ÒåÖ-ÏÎË$s­ €moµåÚ¦¨pA§Ä§•XÜþLÃVbDlqoª¹�LŽQ¨Ò*…œA¥eBÛÞohLF,f^sòʤÄ:-‡žú'糈ø'ˆ$éÈt…ÞòŽM1åº�!ΩXo-Ï/0è‹­$„Í›í6§BÜû�N´]y´^ýX)r…«°©„R%�í×Ýj]îÐ*è,;3ò·s*ÎïÏ©X< #µ\J f^.0_ËçÚmNeðy AÏNòSèˆg¶³�€ /Îf€3wÂrÅrÝ×N&ª_g>@Öþüà·ˆS‰SÃó‹„‹„ŸÑªôÑt}€v™çº9œƒj0 œüµpd²D½D½A]‹¶-!pÜPá8òaÓL˜÷>I–*HJ€êÐêР*¹*YÝ{¥N|ЬȬHÒTÒT£h]îÇœ©œ©ê%Bî´É´Ð½@uÌâ¨Ôâx+Ì �\• kg6´Ö¯F-éùÇž“9#9#‘Æ4)ùE[Œ¿Bº^º^ì±­˜­¢°'xExEÝËuÌ è è2YÛqŽì4ˆ0gôôƒßO�$°û‰|ÉWÔ×rÎp&·Ü¾í°Áns*Ä{û{ßÑÛßÓÒÈ"Œ¡+3�Â)'F×Nнîi[ÓG k™QWåW#uëÉ{íP¶?³ñFz©l•ZQ80„È—£z„w_é;7U$C�š¨î;±Ï|Ñr,¾lOëj°òÀ¸NáÆFkÃË–èt­*©[Õ“´¦8/r8J0ûj ïL…ØÀ¶×Úé‚pYÿŒa3κùì$#Þê%+ÂÑU³&ȆO§"®Ï”y,°�íGMq¬5Euë†~¡Îeÿp7f�‘ÆØš#|ÚBµ7�2ŸP­Ø?¿eß¶?³Ñ }L|~û¾gÁú�ûâþ¤^uÞt½›á^ÔÃ=öD%ÜBËÛ×âŠÁ¶Ú¦ŒH1h„²WBîõ DL`(-?~8Īc1Nð„ãZ˜àÃ7å˜`Û[í)[¤>†J´Qíiöc$"æã÷•y²R¦Ig. w¹Þ¢zŠì�°Bm¶½ÕŒ ¨ x–QÅ´�óÞË_!DSé}û*ÊÖñöÖÇ(Ja†³Þën°ý;­„�”Àñ vzµ!¡Ùõ«[øC{黸{©EGã´m’­e.3„ ë§=ø@Á€¸×°ÕŸ˜ùÎòŠ>}sú§aiÂÝöŸ”v}ÂçßÝb—ß­O¹e7¨*µD‡ÜÊÍuqu QìÍË2ŒÐïœß:õý½ÂK¾zþ«7mƒ4²p¦5Ÿì¶×`øyŒCðNk¥-'5�mdz¥Â}ÇvÞ Å ƒ<·2†Æ¢‹³-ç[7Ûo¶§ŒPSßöLkÈØ„s3Æý^0C~gàcVVž*ÙÏоWæ‡%»r N²ŸôL—1£ÃVÇ*À~Ö~6TPTÔ'W6÷fšÍ™Í““î´KBé�±Þg½¿¾â³ùs^Þk'Q Üy0óƒƒÍ¡•0ë�SŽéUƒéÄ_Õ„ò�ú�Ý“.']Îx”fÇÖõ+$j$jXC´+µ+ñ±œ‹;'×,sêuÅë •åí!;aY’ªÈÈþÿÝ3_žë;ÄÔlTÙéy¸µ´ÎÒ¾±Û^â½ýoŒ æâdµ =#¡&jØþ„Æ^ª.®5]«`j¼ìåpDŽìàuJ�LjqMÞ5ðÈ© G³P5Åþ¯Ûm·rjÉOñ³Tè�¼.Ç8jJ"®[u9ÞÛ¨ê&QsBbtœ·"ÞmÝ ñýZMÂ…�Ô¾¦Iz�1´�ä<­-j,iµžUw—áÊ4#ÍþÎYö�ëV ”°kÑ!9W¿:!Bï¨zI–I·uÄkÙKßIü[±ú‘:³�Q|”hvÆÍq÷°‘¥Ó�¤ ï?¼qÐ ¯O1’œW¶ß׿*<â¬çTj‰¦QD-q¡¼'³';ÍsZ >nû §ÒLÛÁöï4Û¹0|»#zãt�î�=ÉžD*ÖRZŠèñ¨ Î,_Û²q�Dù`w‚ l{­m¨U/›gÕ­ ]0¾ñO§(J7¡ ayø‘…d˜BÉ>}¥FÐ\¶¿§áM]:Ô'6€DÿpÚóQ›A¤,;UÉ+u*ü^Ôšë�P«”E¯l°�íw¶±û ´8uœWê †4Z{±‚]løe‚_<Âég!Ÿ¿Êë¥ý®ÓÍèØÀö'4òÉóäå=ðÐ)Ú.¤f5¨©¼ó¹uÛ:{‚Z·(ÖéÌE†�ý"k\ž&h¢]ù‚BŒ¡ÙzÓbdH-6éTÄ”šd¹Å³g^È-Nú`û{Zo�· —ìÆì‹÷}Ó“WMÆŽ°…¶R4é2Ú�†bZ󫉠,ñu&¢ÿ‰�숴YHàÑç‹]GãÆq‹fÄ3Ø=ý¹ÉÑ/Ÿ¤?7é>vxz·3ØFŸÇd¶ìôE öØv.lp±1#ºpIuÄ#Ä#§ E•zuƒN^Kwû»*»jËäÃȇå”%š—Ò¸£€Du!ò9€[³82Œ÷«·LpBÏ¡åÐòÖü§úfN¨�à ¨�8ÜJ˜ìY­lLýv® ® SZ-ª7À‚óHM}˜ú0õI4Sù�M˜O˜gaÜiþ¹R�NB2f€Â3Lj¥ºFk˜Cûȯµy³zDÅ­cï-ª ÐsÒðÖð6wKª©)dbü¨Î¨ÎcõVÄVÄbìˆ^ë¾]x»�+ÝÚ«ƒ¥ƒõ‰z;–º�–d´î  ˆû´ñ¤á| 7†ÚøÅJVs‰vÛ§Eü.ÑSça+ï»-X KŽ›Ø‹†2·x«<~; cB¢õ�oÛrìܧ-Çùr¼Ý÷â¨Ï䯕O·:l&…vÛ§E¼–½ô_þ››XÅÜå�>~Z².ÌF½62ã¥ã¥š$…ܳÈÄÖRT,”¬‡®U•‚í¿×r åjËP6 ¤5nð`6ë)Žs͵kû)Š»Øêµš¸ŒPͽÐMÛ6°ý ­iÌȧšÁ—êÚô±ø%+‹òlm†Ó/.‰djN~j¦(”K¬wÄÛßÝ<ƒg¯> QÕ:³DÔªí)Ÿ\Ey>G"ÀS»lõÂÅaåé­°Âè†=°ý÷š2ñ™¬x/¤’‡õ’µè(·üri>¯Ìq›d�fØhš¤ž-`먩lØöZ›#‰³oðµ$o4…è?5Z.çùÞ{ý÷…p[ðž¯D äOå 'u7¼‡¸6qŸì ¶2TÍÝýžf‹�únkÆŸÇDäíô&æ& ¢Ø‰í¦Úàê*Ñ#Ἂ6l7lŒSÉžlÝ׫d¿ü­çzÏõ4Ô66]•Ä–P9À•J­FùÚÁV�“[ŽpuåŸk6åOÛí×áVæNðÃ�ã}“s™>�ü¥žõ{ªª�W`yryRïå\qwx}x}‡X‡ ••æ�)÷+÷Çir üœ7åð£QÀÊ2Ìd„™c•2ŒgЬ“YJZSÜWX‹ÏÞ¦¿˜”‰†‰†ÅÍJ¸™¥ÛmþŠ�¼�¶»Üœígù襡ê�ˆ ¥S…®Âšã`ûõvæ@B‚½?R¢É´syo`öÂòGô9ÓÄëçÒù¢1«Z³1L9¥ÛÍ™þ8FBv«-Aè<›꣬·ç¬ $Î…Ú†Ú=É]©ŽŠ~úÊ4�ÿ[î!î!ïó©ÎQ�‚‰°YÄ ìs”ĵ€—6|‘óAç€õ~_Óä8ζþ’º–/Ð׬™&‚Eâ#¤3“ĺbÅSǶ[³¾å ¦ò=»þ°Õ�ìÉz`{ùÓj*ª�¢6¸múå~j©†טšyÛ1ªmå½?|gÍ*ôý÷Âû|�Ó8!hí]©»Ëq¸o»ý˜ãǘn…בw'ýf� (°wéf(Õä3ä3žóŒÁ|Y誗vÏ}k,i,©’eùÁòeC@ïªÀe -ÛçÒîp’u`A¢Y±rDéTm{ÞöÜñYö;K&¥÷,y(Uáû‘æUàâ¯h¹ÎY�³bÁŒ`õîÅ07žÇ˜�1)(ÎHñðþ˜"¾"þ£ô눟Ë=ìt °ªŒ4s#ýhæK$"î²%yYy%_¹œ…òçÆ’†A ͟$»ãiÒ~EŽIމDÙ½þ{ýÑ+èôÄ٪٪�»p†×úÖúâlf©°ÕcÀR-‚�ºžnA�×SUÓiËWÔN)4²Yσ͘¯l·B¿¶wÙ§àVs=æûìÞp»PæFïÑÀ¾ß¹!ÞÙ Z¦˜ãc ‰Ú_É{ Ò`b—_é’ÒMM ™)w X óÏÂ�,Û?³]fa6Jê dìÕ¡Ê47ú¨Ò÷üÆÈCkE¿”ž3#ÂMŽ7OïŽ$=þ lÿ¾&Y ;4Úi¹^pÅblñ\�&HF”fòÒ»Lõ ,¥³+}»ØíÀ6 µ÷ä4+ØWSŸ^1¹IýJ¬7ô¢Ló•«Ç�-3ÌâLô§�b¾ÃØþM–Is÷RòZ³‚-9õ\Cà‚afŽ�èG™£=‡ß2Æ©ÏWï�ÛïÝ{‰²È–ºImc ô‰!÷ÇÒ_:Ý^ÏdHf+gKЀ´ž„P¨>Øþ©mn8ÑWÒÛuÌMYPš2�¬¦J´£q.MxçæñΕ�|7§rûÏ`ÃØþ�&ùBq]Þ-{7=ÏDÎ>ï Ê[%$3fÐëdt\9ÁK{²J�æ­=ØÀ4‘ÇÕ½Eš„–Ü�Ïlê#¼Ý+¢Ï�ƒBÌûØãdÕ{ždF-Bâ¶›;×N`ÍšLSðÆ¿êV–u=¨ìBÔͲ`1œ§‚�p³Ý£ÿœR³ßb¿h£®™ô�6ÈwæÎ"ߟ;7Ta¨Ët¾nœ„œÄ¥0)kÞnî|ê�c>=ܪéblº—›és  hÅQ¢ÚTT1“™ê>7rÅÝzó­€§OƒËÓ4Ò4žú m*yï‚bš^1T€ÒK‹üHR¤óô(ã‚üŠüŠùþ}v¢ܲPØ(-PÈÂÖ�T£_Q˜õv´0´0ÂÂ’|5ô(‚ ‚ ëÝëÝÞ­ o¬e¹eyÂÖ”÷ç”0WÙgr³H©ìÄáé]Hˆ‘¹TD×ûŒá¯´*¯ÁÒ½ØöKöK¹F~ ±§]é~„B Üm!c!3O€®®Z°\°\wœ > ' G5z3–¹­.$޽±W´Wüï÷H¿Ü{ùÆÀÃý˜‘©Lêv—�Ø;®íæÎè×v³î;_±OE0z7Þs j`û}ÚªÔãÐ]ó^‡ÌNƉë·f$iš7¼q®[Ÿ†3!rÅ4£¢Ù9À¶¿³iz™—ÏtŽah\M*VøÐG¾÷ Aæ�9[tü}®|‡×D\ï À¶¿ªñ ɘˆgk,Õ1¥ï)س.em=â/û#`zòí¸qËú¾ð½H�‡d%Þ ¸âþè£íö…NsÙf+u’1:ýÍòÄQV¹Ñ¡°ªZ-Y-e$r¶u¶Ú»êËð-I[I[ö©EÏEO!7@Çž@@G-à¶³–Z@ˆ+E©¿ë<ʇ#ssån ªUæP(RxãQ0qâ“�*A«5ÜiòòŠ `‡˜LQÎŒâ ë¼ê¼ê”䔴דÝ÷ÇÒ.§]FŒ‹ü=ö- œI¬eÀû¥0Ò©kMÙ6Œ�¢V_²Éž„ýß�ÕîéúéúúcÃÕÑο"O3Oó6"äÚ‡NÊJ{E{…6o,.'¤ÜLºÕ™D[™äÉ3è3 Œ™ˆ[úýçÞÒã=2šçgÙnæ�þ÷pßlÉ]c1úX*Ѷ¿ Ö�×{^ñ¶#„pL©ª5çàÍ3�/ß²Ü:óÿò’.Ïš4¿lÁ·“lÜ"\pëíö¨èçòw=×å¸û’ØÃÎýx4§õ‡ïy}’îŒH3ã¬Ðv <~± [‡ï…”‡ ‰Ô l`û³m—[i»¥£•q.ÛÓ{3Dµç�L7½¡ ½]§Ÿ´ék‘Y �73íØþΦéSB½_®’öŽHÛðx÷¤ù®Z²Âk4°,ÞvÁ±§v°¢nLA¿‹À¶³ÚFyJtÕ=¼…Æí½¸J·ñ+]¦{ÄCµ ªÏ…>x)Íd„E©¼9¶�ÕúZ½´Wu®¸—ÐLeæ\iÂØGu)r\Õ“°�áDÙ1ÁÕD¬ãËÙªb˜`ÛŸmÑ}çÜžÜ3à#—É8iüø ]GdÅ«ýô\O`dw óÏ'¼GÈ›ƒ l;­5“ùÛ±º•&LSJSú*Vùuó‘îßIÏ»|¯é+÷®ªÕNÕ1�†u1+f9�>šRé—ýxÈzÏ !Ý#™òÃï·› ƒ0²­(Ð%Ã7sœBñ¸&‰Ò²úÂè…ÑTÇà`Ö›iºw]¾·¾•Ï“Ï)x©üRY}`p�ü"à5#`\ul°Ðyü¼R¤W#%åCâ`âàKèxž¶�%.�Ìä¿:“¿€çM7]œ¾P S £€ìîØÝyä"^„²þiLkLË^Ü^<‚Ç¡æÇüü|Ô$~Ž¢æc2K€8‰›ôv�ß(›ÿ‰»£ëü£í_Eu7$L·<þƒŸòÞÖ¼0eÍ_1ë=ëí”UÂP f…N!Êe# 9yìnëÝV&ÞÍX£·Ò†|ÅåÄåÐçBj“w¬ÌKß ÙîRNµØn.„>ç\žonàI¡/Èïq#Ö´ŒýZ­#Èk�<öƒK*.ÿ;s!á­s!ï/÷.¸Tî}k߈ßO^÷±ð#‚4k»¹ú¹üßKÀ ‡®å˜† {§Ò&ùsè²”`ùc° a÷õ�3 ¶rð‰ê�HD;‚ l@›�hì}¶OѽGáœåKõlVƒX¼âç÷î\á™<^EYp¶D�´ª¾ lÿ¾–52’›PŒkMa³?fÞ'6syˆ¤Iëú3íø…Žª—FRíæüœÀö÷5÷×ï|îE6#Ÿ)åœgfx0B)~ZñÍÏùÚ:knGg5î ¬ ‚mgµåƶ¤x)ßÌÜ'»¯r ¸+B¸Ó�êí¸¨ èõnJã2c�ÂÛÎoxv‡O©ÏÜ*®VÓQ„;¿B0ˆþ™û !âã�㌔ó2KÐÑ ŽÇ¶£èkà#—í+fçXmWîÆÎžŠÚn Œþ¿ÿÛr™ž+)kõiz‰+eÏ1+©Oäqˆ¬×°Œ©cšæåÄúv ÌÿýûÁ/ù“^–÷á!ä‚v0¶Òn·¿sÞ ¹²ÕO/t<¸›Ñq£4$b¡ðF2»0»œÚ�yãìÛòJ%mßê·,™-™]JŒJŒÄÞŠÂg=ù—^‘·0=€Æmޤ°èûÁ(\žPO(ùÇ_C&Jb¾4/JÍ öy$Ã]$W´«€¥ô¥ô:Àëˆ×éÙ³P>sWOUO™Æ™Æ•¦vŒþ¤ÒêR %ýsõtÊË{ÊÇ�&UØ×Ô_"…g«¹†ŠÜã%¿êðZ) �éOéO±š&_Ñœ.ºý+4æ5æ•”éÈèÈÆ  ’’÷Ž0ŸŸx£²™…ïV¦†€u,Ê4Ê4ÔõA�¼žö/† s›±�Š"©ñî:tr»=úµý½ïè€í÷iy” öL+SrÙƒB#ksBŒc½]lðb;¦Œ Ä ÷Àä)ŽùT‚íŸÙ ‰Á'>W¹Ó”ú°ÞÔ®Á Šïqé—�(ר““iä“:˜¡Úï4ï6šÑ¶ß§u·¸øQ'pÓ{@¹3ƒ£”ðê²zäp/ík¨(ND$I=rí€NÕžØvZ»¦^¯yõÁ Ü)þ¦Ù»DYvÐú=÷½#«§Ú0ÖCáº$¾"ï±giwƒ l?jº£�° >_ð"+³°ºÀi<ü"µ�EÌLæzc [çØ»ó`ªþÿ�ã¶ì×ÚµW¨lI!$D‰l‘5\;!{DQÙ÷ˆp*DÖܲ§®5\û¾…!Û¯óó¹¿r[4óý}û¨Î}ü÷œ93gÌ3çõ>缟{Ž?±êT¶ß³í X�Wù ¸–ÿqg¤ÜÍç4>•×YÄÚ–£|˜zPN±'Ny†#š“ŠÀ¶ÿ´QŽ˜Ðíb—x2?ÎÚ!=D¤6s/~4øP¸¾Õ å¾KâñSb°m­–q ƈH#ΤâèA¨´å`¤ºPDvÚ(ôõر��Œ8Î)óL0°m­fb̘/4³í¤®éÓ¹³ÖTm÷B‘w\üWWz¹Yéq ¢‰.´‚í×´b*J—)ÒÂÛL0*+Z7›UŠî­´/îVjqq�ÆeÚÅÌ™}·Ã�=Œý@ÍŽ¹Ö°ÚÏœ½hmľ·îÑZ�"Õfk ˜ï *z<¹ÙZï˜×jİêØuNšš§A€_~¡~rêe Qø7ž·þöZÃö®þçPyRÞ©¹¼Q9…›­5Ø|:F›r£^¶ÀNL=Ä_bMGSf+Bã’Xh_h¯n£—©ÝytÆÙ›ôk²²57DVEVoî°3ñî㵜€‰ôœµã‹u�«ëìç管!¹Û5Û5ëï)ˆ"-ÈÕÐ(ÓÐŽ¼~)²NšS•$§R~ c%cuù É­ÉMÚz/Zgu< ÞJÚJúÔ�æûNKœ–`É«ÿ±å`Õ%çbÀ�³ëðfƒ.¸O¬3¡Vª>Ý�ýÙ6]Ÿ¸Y=‘¾>EG骰ô„ÊÏP’P’³1´4´¼­�ÉbôäôÉé† »q—q–qh;¾„·k#v:À{S�;wþïÛ3ÿ¼×·›«Î$?¦ ¿:ý‘»ii³µÌkûW¼g 6°­ÑϽÛ’WI‰®K›ÖÞ«¤?p^<�6¯%$� KJ/,»ŒÅõŸêض~ûp2“•j"�rÏ’ë­šè"ÐTn–»¢)Âïµ^gÃó2vñÃF"Á¶ÿ´w‰¹{ƒòI�ä8uFØžjJNo�ûš3�XîÒ×j¼Pöˆ UÚv°�íwhêǨÌ^»÷ ¢<Ú( d�Ûï§×EL�q÷¯AO%>£L�Õ�::ƒ l[­AªT‡¨Ž3R¾›· 7ÞáËæŽàÒ‡þ®\²üìF‰î,(u-ØÀö;´ƒÏ´¤“¥Ê¶=ÒÉ,yÙ�£Ô寠…‡Z•Ìlö•�²a7cmâÿwóóD˜1)¬1Sdk°`û\¸ë¢­€9·j6q ]*m…jºbsºLØnßln…ù}­Úã�L~æ÷ ïéº*{»ØYUÄNkS7Hjy�áÏ´ yò�gd~{n…GÀ„o;J¡Lìù±òY´éfs«‹ŸŽaè݈ì„éW?’Ë_’@¼ ùmŸªÃ€Ã€² òTŒçÇYhß*ó׆‡Œ[Ž[^} "Sð<Ø·G¬8¨¹÷®ãwß݆F¹gmÏÚ­ì$¹zió4ò(¯>4ö”ÎuU]5TtØt‡t‡f o6o6¯=÷”Ð:Ö:Öz y ‰^æÇý¾eÇeǹªfÜë“R–ÌU¬;xañ¢ÇÓu¶ƒ±™AÓW9>ÛûpBG BKªEªµœb(žP?Õò3Þr¿å¶îЀh@$®ašA�8=0P‚’A¢�¨¼g_*S؈ç2€žÒ’Ò‚¾ž^1¬_OúP©š…!é½7w—M+qéSl6·Â¼¶·Ò¾›¿c+Òb«‚X¬Üa Xr4­3N %ÅQ|ˆ­˜Ï…Ù‚¼]5+õi>Øþ½6þBÌ;ÉVu\#¥‚z÷Õ‰‹d¬GŸ 7[PŠçÔcywúzâ± ?4oÛ¯iãÎŽl†ƒ, ·h<Ç.ÒQ›¾+Ö±z¾=±¸jïŽuÇ—´l`ÛjmI³lÆ2»r¾[Ö4ëæ#úÂGfô;¸ãW¸¡=;°²"5™’nׂíÏi�ÂaŽéÝíÇ#:±wˆN½–Ðh£t�±©ÅHѶ­Ü +Ü6í�ÏØÀöo¶þÈÉ]�ÊCÖ5”ÝçëUÛHBÜíEÏ„T'@PƒœÒt6G|tg›=MôÀ¶ß¡Ñ ËÐ!ä½É é�eÓ³_ijÌúê±z®2'f2(Lt=&Ͼ" )Ø~U tÈÚu3?HJý‹hòÞôÞÀÛbX‘É瘲îJXñ%Y¿*Ô‡-c‡Õ·€ l@ã#‰ _iÓòïæÜ?O£|§ì´÷sI‰�ûuBn¸öúžó"uz8*›£6°ýª¦V‘*ÞÒhšö´vÉ7'TºH?ûõ¡ûrýtÆúHÝCw÷ÍÙŘ’‚íßk"F…vdBµ¬pGĤÊ]˜…õ^ó"¬ Rš‘èM…‡tVYY>8õ®F`ûsZêº=¿ÒÒÛê¹öÑa³~¶á ôµœNýáÄv¢šÒ¸ï¨Ešá„¿c£eS4¤ ëä¨z‡eàbúú•œUæ:­w2M”±ˆÊ•îFѓŠ¹Ô›­ÓbîKÔÉÕ¼ÇözЊÕ~ªb^3§á\Eõ×5î½ïÔ·ôXŠÃÇ‚ê|co[¾�ë´È?σ7ùÉ÷ù/Y¯Ýxc?,á¼Ùºæ¹l¥¿ýŸÜN>¿ÐÙ.ºË—¶…øµaÊ1ZÓiÞgÚÐ�·8ÛíN3r3ìßmÓ]ú l_Ë�)W”à.+ž¿"D\g¨:È?Þ¤ *çî`XOeæÑÅ}.W¶uW#ØÀö;´Ú~?H»3ã¥Qžäi}[+Ä]ö£Õz'ºò3µ‡×êè ”á5.D`û³Ûµ�·6ñaçtŽMS7è^SHN-e�É9uûšnÉ‚¬|�úèjŠ*îUŠ!Øþ¾¦¾ýXv²vq|�B!î�€Üx˺r\ɇ¹YÛk›¥KæxSþ¢l`ÛjmšäôÊÏ®‹îµ9–Q†ÉÇž„з¾ûà‚&`u&ó;P4ýP�,ó9ÛvŽüF­;ô·:⥰ïî·‹~ÎÖöÓ1L å3¯ybÒ»ý% 4¤ I?ÚM4<®û Ù•RVgwUUêkîcîcòÅ<ż…@îªì, 0¸÷¨ýÜ ÖÍ´n&î> î@¸n¸®ï«tzèltAðZI‰‚÷ºªm»áf…×jÈ"dQ3# ¶¸¶˜²ö-ÊÊ å^�[�kêû¾  Â4=éÒ;'/)åc˜![wq4rwLèºdE�zl5¦¼ŽÏÚqü£BÞJšª©ª©"ã�­Hê•F«L«LBGURU’äqLKqäqäNåa û¹ös?ñ¥ò©�FÒº¢º¢0gw5OöµÝeÞwjÅK–ž�³ÙæžË,]ݺgI÷/±y;m´ïð¶ÙhIr~-‰Ñ£JBýtÛÄ­oÌ&ø7Î&þyW�ðѸ$gˆ)±* òž>m¸b³Ùæ¹l¥ïNümmÀ€éúX=áN;×Þ–n”·êšéŠ`Ü©;8ÇQ—qÆ °”yÈÍÎã‚íïk:*¿2³ûs^†>ÈøFû#cU\J¢*DQïˆ3„¸¸[^±ÛÖjöûÖ¢‰eŠ^ÒàÇ�3C˜uÞI÷$âÆí÷‘ËO#Rî†S½Õê>øl[«•i­9´Ýè0¡üP½¢Ò ÆÆ[p†�Âñ ‚õ[]Ÿ6^ßI…ݽÎÂ(°ý9íAó쟧öš³�_ðNäùi6×¾ûR%gÄyØh[ƒíïkOË—”˜â}åÛ®’U …jö½£ƒ;UéÅ‹çÚ—1C*�§$×âè‰6°mµvÓ7H$-‘]6ÃHåÅ�”4 GÊ�}u.,|»ŽQ¤l=#k‘m#¨4„¶Ÿo—˜{Ä8ÛƒÄ*uf¨®FãNÍ,cΙö-ŒBÍyNŸXž¨œÇÃÑëÜlÎdÌ™0~HÄûnLFL_:2†¦LB’Ž%¬Ë§Ëw6dzºÀ&µrÑékBŸ~—ÕS?1x˜¯ `ñÈ\:¸.f„bÍœ|j~j¾-æÍX¯�œ Sz½Ú\L÷:�‡l)­Îpdqd˃™ÐL(9wÐZ|Ìf`ƒõÉ’ÿ`‘`‘¼<3,ôc1cåg‘•žu0¥–¹‚œuÚ¬¡-o‰«Îæë|o§ `�½¸°¸`Q›Mf?ò3ºƒºƒ¦Ÿy„{„Ïñb:ÝX\Z\š—jdå¬â¬r_èK7ßoÄÌðˆ�‰�Áœ3%©¥Ž”;æ�„' Îww¶ƒž3úÝ NœvR?’ná2ÕŒ'Q`á]î�Ó)?îà£%þqÞeùpôu�[üÓTæ#Ü��`cÎÄ»qÎÄñÏž¶/ #Ý Æ“Š%÷”Þ±I°(o6gÂ<—�OPÈôC±¬p¯êi9XódAð�íwhŸþCŽð�Õ ,JT:`&KÉr%÷”N¿"жŒLHÂ7èÂv¡äìÜ7`Ûúm†‘•A;.a.Y¦s€ÙG:Dpö)Qî®&f2,¿×ÂßÄ>1ËÛ¯iSRSS�|ý•îuY5¡‰FU÷.f—œ“Ò¿1©ƒçNõˆ-œÜl`û^[&Âk†9¿5¤{ £W´$D†šGØl¥ïÂü)Mq|Q…É�ÎU'>r_íãäËGU ^cÞeó´uùÌ$ˆ¼ 7ôÌnðßìÈþÓ1±¼íh¸]†IuàK”&hQsÎ4¨Àè¥ÑK&‘35¥ûG`ˆ¢G_c¥e¥í#[”[”;(pÉuø[ý¯g’ñAåÏчqë&½ÐàbTbT¾k œiñ“Ãh\kïûÐ ô†â×¥œí0QáÈÐóÐóÜÄ„U‡U£$(`hcd½ò½òˆRD©V¦¸â÷ÉxÈx(“4GürqVö� 3bB�ûŒ^æº,o*"�˜«Òî,ŸÍòMêiY.„ÉëÈëä¹ÛsäxŠÿ ŽOÎ^"a!aizŒ)ÅÏmÊmJ »ÌF‡_‡¿JùK¶Áe†>$„ø„ø`ÞÁµrEûÈõÇG!ª"OÇNlv4»ÏO�ÞÕe) ©I‘J¶tµ®°ª„Þ™ž©A؈[­z¡ÛéDM¬[¬Õë°J*`Ò1N‹ß¸:¼ñ(–zý\žUÚt1X&0JݯñÑݰÙ=æ¹à›&l+áyÒË·j[—-Š’¼Úö'·ž9ƒ=BÜæŸ*×6yTl�ÐÂ@¤o¶éó|ïwù>aP6Ø~ÏæÏ¶WëN=1 JEˆ®§µ|ª­&´/Ëð¤[B9ï¥>ÁJó0;’ r….°ý}íhq³ßž~T�ÁRæþ#Álçõkd½%„G¯Íb+Aqd]æÛð9MÀ6 !}ZÓ«eLKìæµÃºDP¾^•{˜¬ ’u#µÕs¼û±ç¶� lÿ�&ŪDò>þcµ l;Ãd)óÕ)Mxž‰ð²„d+÷,K¤â;H„*°lvëD‘Þ§xßB‹ R‡P¯=Hj²Œ[‚3Ç rrDŸ¡FSóCå³À¶ßµMöƸu²¸('pŒ6‰ñL¸ «¢£ùñÝ0…†ùe¾°±Œv&<°�í¿Ñã¯<-}kzQÍ!f_+ŸÓmlÙrò8Ó.ÕsÉõw?“aœ5Ø€&4e¾@U”«Dlp á¥QY “mq朰Âûº^g¤”bë xð4uäfsÂç#ØÝÚoŸBFuµÈIÙì–³&ma›Òï}xªGºã" ÿÍ®Õ�>�p{…ªî±ÐZêoÌ …¾½¯CJ ER¡l0çƒT{Ò·R_l6¿|»?c£X28¦¶å/©¾Es»ûA íI.Ñ¢7Ü|Ë®‡Ø%JBíªS¿&¢)¢9³´üöî;š«ÿàøÇŽì½Ç‡ìÈì“I!TR!+£¬¬2ò±"…RÉÞ’=’d•½£BB6Y‘J6ýº¿OŸo|:§ß)}×ã¿çqϹ\çx¿îûÞëó�+1J ØÃ x:­4Y ¸ÀÃd„ä)|« åq öEì‹õéôìÐ| ”Õˆç$(„žF“H‹Û˶ÜÚVV/8 H M Åaæ.A!Øk¹b¹²ïþYs'ñ¾O}Q}Qù¾ªã�Åú»ea –Ç‘¨«räÌ‘Ĩ¥ BÇž Øa[µ£ÌYÀ]Út®é\òpDr;fÍÏ0W4W|«£H¡Hq_Ý2™½¥½e½¨‡|”|Tózç7JNh‰,D,Düó=ÒÏ{oø–Xw æ²A ¤£›á6›;£_ÛE¼;Dq>8ÃW?]v,ÖB®¬Êf`û÷´m ;Ž$ý³ä&¶)ߨ‰½ O?:`ûÚRè@ûÒáÇ‹ñðvƒ l²×BèN4e¿†¨øtƉ?’_ì¤$¿‰†Ñ«Ï~W ÃlˆP`.l`û]M([\F7S2Må]%4�ìQ7Ù²´¡áÀŵïÎcâ^Ínát¯Øv×l`û[[/™À½¤3ô]�X´)*Ä£`Fæ¿ãÛämgªõû Ùv�••* k§NÜ;Œúßvâóº�ÿ¡mùõ´‘€T¬‹uû«¿ûnŽ#g­€ß'ü¼Æ"øÆÿ¹èß3WÒ kM‹Ék9…µÝ±'ëú~ ôw!@tZ¶ÏhWÌŽ¿U.|?O9 &r|¼Y�Ä»Æz:´}O;ú{M)óŵx&Du�g‡uêFÐ×…¦•^—¡†¯‹³Ú'lÍZ6[Ú:f>i£3 ‰˜èh ×Ó'Eá¤OrAI vB8!ÄIž4@ø�½H¸þ5æ%楰µ¬,’ |fòñŽ’ñæ5ã.âê$Øœr-J•üPýP}�c2ƒLÚÝÔ>û‡œ´‰Æ¼ÛÍHj²ð€èQ�*À#Ø#¸"´E÷ç,ç,° k.HçûðÅñÅ÷¸Ï•þ˜¢åK¹9B@¥?’s¥s©O¨}/” «³ðî—MÈé/øKK±G`ü)=Qô?cŒzŒšûŠÙ³íAèmm·.TØTØ0ª¬÷Jl£ì€8œk8×Ðg*� ¿¨“]®³,x9ÚS"œ›Í<Ðÿîê½³Q™ <GØ‹%+"ƒ¹(Ú}>n2ÐMЊ!]²dåµ~æñù[–bg’ŸßCÒl_ï’†/6;Ê-h5Ül�Š~.ê¹.óížð¬&Z<Û“ý©ˆÕ}M~ñz|E'Î_á¿~¹KU¸^Ú„%ØÀö« W…;ÿÅió3:éÜOR'ËÝvŽ×¼¡»æ+±Ü»�eÔ¨³NfÉ]NO· l`û“MÝß1�žV¶˜)ÖÐ?Ü6ª�[Nš}‹¡%Eè…Øë'¦-Û0Ä\4.?ÛÖj céFXZë¬ç$•ê¼RUƒ¦õ–Ë®_D(N$zzc¶­Õ:Ÿ#N,¨ÞÔ´ÉcK¾w³BMçé?|Øž �U£à ØB$æ‘÷i‡á`Û¯¶ÀNWëŠTMaJ™Dc�\vÓFÿ«„T¯h¥X*ZH“²ï›»EÌõÉé=ضZ{JzÑ”Ë:?bœf�³B‰K›0 íVzÞå[í¤RÇ‚rùX%tлy‡RO £8Ì}.49‹¶~<ŸŽWêRúÉÝW›Í…ŸŽðÚHçæŒ6:f²õ‹QÞ$¯‘¡PNvNvrIrW˜hFF&ØìýZhmh­o.î™L€9®F.À†Ð$&Ï;  �^‘Câi4ÐE)à‹¸q]ppFlGŽÉ+”CSã(ÑA¬iH9}ɺAö>€=ù{òþûÓæÝæm_/+†r3-H'H‡Õ‘Õq7�pî÷A?B?†ËO_ù±‰il¿e€ƒRt#þvhW1ô‹Z)EïH€Îˆj»j;[òUb®¤FŸŸq®÷\ïð=||&,t 11c§Ÿ -¨-¨�õ¯çݽ‘ÐÀ~÷é)ú\hD™j4挨~þ¬¸ ®RœÁfs!ô9çû©§�wŲdf´[“Àû��ÍÅRnô@,S&š4 H‡…nûÆ\h÷ƹ�Ãç½ çŠÉgÏVo뢬\É^é#IÙl.„~.ÿë½Dî|­K÷t¯íîwˆcº}‘W�3?ó"„K«³�’Mì9¯ðõ©@s°� hc{Fª;žQ+Ø´Ë»ž®8}4�K3ïQmjÌÍ]£GJh2�òÄHº$Žâ‚íÿ¯¥ t_M�x„cHeD2åzã}/qÍqßg'§K^jK¿Ðw÷á{¶?×lÊÎG8dˆ Îpk;Ž)Ý{¦ç‡×B -ÂDA¼–qBuÉzÿ¤Jªè|ضV{_Ýp;\Ú99½b»˜oß Á«é*1S3:Mõà}8;rà�më7<^S~‹C^Q�J•UZ­^õ±îù•ýŽÙ’ÃGØh ¦dÞI Žð暸¢¯©Œ‡+ïÀìw�avÅõ;uce³5•çc†í7ú y$ �’æzÍ®(ñWUQ\[2m3mᢖžõRÝKºy2¾6Ï5Ï5-œÝ‘Ý�țѾ Xñ%øø¸ZpÜ5¦ Fb#„B>=0:0Êt÷†`h¢ 冊'ÊÛƒ7ü�ZËô�_`à‘ü‰ü‰\¹ÝÝ$ìåq(Ox²°³° í íܹ׾o(u(•éá�µFû›Š-´ã�/�3Ò"1(\ÉMyR„÷Å �ÖHn,ÀðJele,¤–="‘°_ûgff�Lääñt û ÷†{'Éê6@Ê!å·¯G¼¶Ñ3OÀ>¬$Ê$Jô5ÕΦ3E“o¹Œæ“B'-6[S¡ï%‰–M¶Ÿ�]ªŠW�œ-¨Å(¦×¸/È.ê_¥rZ,¤:.ćùõšJdãšÊ� y.´3Þ½­'Lƈ˚9Œ7[S¡ŸË·¾£¶O»Oq:?æ'›Ö#%>°ôVœíuGó¢^h㘶¦¤µ{‹\ŽÂkÇb°ý�M"ÒKc­Ä†!ß‘+øDŽGxû¹®#…*d÷’µãzwYNY&¾Û¿§µÕÙxà»ÐG¸ ²ØI&{(âU¦´ËâxR?.zÙw[:ç|£ÄX¹1ØÀ¶ÕÚ­£ùáÇ|ôÈZˆÔL&¦˜JTE¨Û�,X4@–¯µª;Ãæ°&™¶ƒ lßkjƒM°4×.!H Îø„»óéô×Ç=æ„ëÉøV_á.à×,Ç�\shÛßÙ˜ðV“ŸÜ˜#õÌ_bSò)§öª¹Ê&Õ¹îÅØ×áuð�{HÙËÅ„"°�íWÙˆ)5> —LÎüÛ® n©ˆa|õ÷ñwFDB ¬†Èî _•¾3]F¶­ÕÒ#�ð5¢M«÷ PÉY…�„…f§�RÕ��‘ ls»Î�Žé˜4Ïh¶­ÕL�òaïqôÎ>úpâ9žFg|`ÜóÛöN7ÖVûù¡tXø _·ƒí÷´brj2§iÂÐm¾Œ&äV4.ç×H{·Òwq·R‹Ž&j^¡YÌ|Ïç"kt?jŽ,‚ }6¼Ö�œ9k}ΈkÇ‹Œ�}GÉ7› £?'xÔí.ܧ½‘×nD¿†x¥)':ÆÙ$&zx¡'YaúY)~È7öÛìùö»g¢S.x2Wz¾³‰Gì݇-út³ûŽŸŽ‰©ßHu�Q1ºgåëµBñŸQZEQÄŠÕ‹Õ 7‚í“S” KJ�ìýL¦"�=™9™ÉR¸,&YX´ˆ°2ð[=aGz\G{e£u°u0g@mÂw …ÌóEü–#´è¦Î#ªšW…9…¹ÈÀuÎëœÔ½<(.<ã«ã«éöéö¬¾S¶ßW§^§žžÒöcÓÊýa,’#H®ÞÁÛ+”‘ ™|/]©kz–8õ¢o)ø|$à¤Þ€à€ j~•)}öN¾Ÿîî7‘åÌêÌŠ‡®i*º;º›j…õÂÚñµãÏHÖS0ÞÈ…Hê8à8ðÏ»g>?×ÇÎûÂ4?²Òqgmf‰ÿåòf÷Яíßñœ1ØÀ´fo× Ë]ǎѾ:Ecw¹tÐo^:�&¯-ð'ä€~pv›qÇ\òx°mý6§� %ŸL#ãXv¾UQ§Jåc‹‘LÚóN»>›…îöec'oŒçÏÁ¶_mƽ‘1×Érü÷s$S¤s<%ãñ KÑzßq•ó¬½ÜaW–nBžF 6°ý íä>r³z×þÝn�¤§eívÒH–Íàó ~¤:WB–:;ªK…pضZ#zB¯6L.Ë@65ùZú|ˆ1“{4ø†&Þ…¹ÁW‰ó³›ez³¨)À¶¿¡ •hË%¨ÂÉÐÍ*}Ö‘{ì• ½Á% 5b³Ù:Øq�mÑü qÿëvCʽ̌ñÈGVÒl 6 ¯31N§Ž Ï­ZM�‚–+Û©´œ1xœ&m(7›[¡¿_«A¶À�ÑÛ<Å0_Ïù¸‡“­UuÔÌ)²€¦ýÚ—UD3-¨s¾±§QèÛs«T‹T!<ÌQ­ؽ¶Œ›Í­œ>ãþp£2²ºè.Ä­™ˆbu 6ŽrÀƒ‰ƒ‰ÃŒÐ³c¤üúxØ•ô€¯Í Ï Wˆ¶Í¶Í½”S?0d\„O\Snš´wøÉ#¥È^ƒ£ö"ª"ªRä x:£~ %Û•�% êfŽDt“*ªÐ»m'àÂÐ…¡çï†ß ‹*:¢p ¬Ì¯Ì §ˆTû>—‡.ϘAhÌ“Œ²�€ðF¢í݉_º†d”¾wÅCTÇ-àãXx+pƒÝ€Ûf¸¯q_NßísãвÅÏ`�³À#®øÕùÕ=€¡ëÃn/m/uçí/Z ] ­ãZo)a#¶ÿâR~  G]OuôÈëÉ€ê@í°Üöª™c¼¤›Í­Ð¯í­ôÝÍ¿±isÖÀˆ,VoÃéñ–g_'b½�q4Ÿ'ìÎ%V ’.µHê£|°ý¹6Q!å‘`£6¡‘TM1ŠUwК*±;çM«™tn#Ä£çš;6tÏ}ó—`û=Í~"Ô‘Ái8Ä{‹ænΨ4F‘®úLŒT‘U9efÙâš�+äö5ÂV°�m«µe­ª÷–Ù5ó½Šgƒ >t…ftLüwVù©ú˜ ôBCÐçZŒ ¾/ ÁöïiD…o¸gØ»dC{0˜$ßîõŒm6Ž<&ÄPü\›�´ç± $Ä&mÊ+‡l`û“m0ì- Q�ȹZ²^�FµÎí�®v’*�Oc‰:†xäh'ÏKxéͶº›êƒ lC£}#O[v؃d]³£â½ì:-�ÙkúP÷5Ö8qÆÓ…qÎûs­Âˆ À¶ßÕüì³X|òýœœb“LÜq¯ßÏW –¨É˜#c%œp®®ÐÀd#¸± l`šðöè�ÕNí½<;ç©�ß®Rö(ß/üS7ðºsÿµc— î�*Eå€ l¿«©W§J·5ŸM{Ô°ŒÀÊ ’+2È®IQ¤5ž´xmð\O$†ïƒmäYB°ý¹7*´%†5@“eoUcL,Îí0/„TR�DŒh¹Ok••å…Ùèl¶Oëì¸j'zlyü釮Ñ7çÍ9CšèNó8 „ØJjÉaMQÀ[“·ý��†ó¨!Mp·÷“)Èi§³õuJV/ÐïÓz$R‡ÃU/õ6K*/<¤Øì>-úw‰zx[9l®ú¯Zí$/Þeæp0„·¨ñªFü»K·åh\•î7¾m+üíû´u\½…8z’:—b <Žä¦A6»Oëü阣ÍzÄ¡[½»n ÊÝAïÀ��êü�‡S»­ºp¿ÆQÄQeßô²é娻óh¨þÿ�ã#"e)[BD–1Æ’Š0eß×ì��¥ìû’=Qdk¡dß)² ¡,…|²•}+%£ì‘|üº¿iNÌ'éœï÷ûù¨î}ü1ç˜IŒË–v3ÚBÑDÉXnœB8§Tc�Çg×R†hˆßÀÉŸŠ‰Æ‘ÚÕ²«Qº†FtxæÑ«§£õ£õ"lææ€†¼ú11S+Skl~l~Å_šõMôNôVÁíE¿³»S¢Ù Ë�5h%Èܯ�½Òϳ–˜ˆÒûêl”R…³@4ÌÃÍí!oö2|\õGÐ,Ò,š4-7-_½‡¯]A}Ÿú>�3©f²Î²Î« ¬uapŠq¨f¨w>UQ|ù~A{ˆÂpðë%Û•‹N¯%Ý7ú=-þ¹½™þ-ÿÊíd5æt_�8sðžçdOQé|GöXNñ?0 -ßBã¨ÄÈÃph¿ÝÀÃ`ûýZ±¹Z]%áÒÊú¾"d-(ÍWpL»Q¨¦œ· ê••O?ô†.ZösØÀö3´æ‹ŠGÜw0:�ñ¦M™8ØT8Ú`|¢ÿÞ]ƒ×+-ôejOШ¹b¹,/+› ÓuûÜŒ)D�—ÒJŸl¿_3Ô yd•yvÎÔ”Ðæá$ööñAUq�Û¤±ïÉ2<ˆ°öµÛæjNÜ+7È�î"NÀ@) †ïe“· âÉÝË!UÈ�мüÂûUØ6W{tjÅ¥ûb¯Å®ù†e�V-þ2ØNWß*Ö‹-ÃD°“Šû‡ÜE»Àöë´ìÎIóy˜Ÿ ÁŠ»¯Ñ„ZÈuxÔ¾&ýPÏ2X¦T¥Ê1^Ål;[°ý~­¤6bI•)!X¡;`GÝè5ÁÎà[†„“õþüDžÃ·gȈTåz¢]ý¶€ l›­…GÎI> {ÛL£fTJf7g:w‹ ŒYBL™:â…ŠìÙB;aÕQØ~¼93µ áê‰;4M¿á™À3±’L¦L¦@uÀDù\àþà;I²M,€²Ds;–ŽPã3œË E EjÃTL¤Œ{­qh$[ãP›“hb•ïe@¢¥¹l(6Ôr€á!ÃC"väƒt¯¯Õ,Õ,ûi¦õ…Ó…ÓMUð¿ÿ¾RÓþê= ’i¬FVbäî¬É¢�L‹‰â=Ó:_Ý�—Q;{P“ÐØ¸OcV|xÚÓÆÂ‡?¼‰,rÆç4?W0W`ÛnU4Ú>Ú>ŸµZù¡µæ—÷”Ö—ÖãÏ™Rµr_�•Õºo¿–ôêÃÀº³Üœ)"$åHTò”›¶X®åu�ÉN"ɲ³�µ�[ú0.A§Ž}üàñ qã‚ÎeøÕ™7<ùGM ¾1gâ_;gâüòLÛ?Q1^¼S®LQ}Ï!É¢¶Ñœ ÿXö•0t5å Æ±fø7LÉ™w¾+k= 6°ý m1Џh�L´ðl )š¹ziÇnÈ¥�§|×:⊬JÁöÏ´I©ÉÉ6ØH½wËGV=Úd³Çe×99Sì +u¥L.¾3$ò¦sÈ 4ØÖkŸH‰:ÍÝÇQtšÓ+[“4]9sÝn3ÝæWiʘE &�§aB ws~Ú¹£š¦Oñ×@É¡6W؉ ÆmÑW`�3̈�Ö@ç>ï“]+®kê ¾`åÕ¼q>ÌìÁñãÖ¢Ð¢ÈºÖØÏÂCüšƒ�ïéß\0¸ÐHÍíÀí�u �‘²`ˆ œµ-U±(Tø”ÑbÙ\ŸÊé 1ö7öxu J'ã}6Î ¡¦ÎEU/1,D$ƒF©Èà í ­Ð ÐóÓóË`C„á0\P P  M¡MéËÓÖYß|Ù|™Rd>Ó÷í?z4ÇËYÁâzG·$v«ÝïüiPýýXÖ¯NЧܸp^, + sw¿÷¨½„�âGtÏtÏHH_a»ÂæäŽ/ëOÎ0Î0}ò½�ÅéÅiÊ—«¯•êpsÎÎÁ_e¡Å‡)M0cš‡KÞžØh 4Ë"Lïé±TФ·3kÇR@KùãJzwz¦VQ3øÖfír/¥d=ÈeÖ�He�¹ÌM·Åo¬�k×@qÔØcyPïhÚÏ`�Ä(•ù$Ȉ=t£5þ±[&m­ä-‚ýåP_(y¥ëx@÷¯Üç,„L“ŒI¢–¡wòåk ,òîÛ&=g UÍ8Öi7ì7r.“$²l?g»ÄÁ~êÖ32–. ú ãSŸä»Ÿ\.@�ôJªåw®?sÕq{$¥b?Ø~¿vô~gÛHW¤éÒÝCbQú&O�Œ�’¢Œcçç"”+h·Èz|è&æ²Ø€Öô"·iYÉàøÁà*Cÿá®`ÉzöP¦EÓ4£íâ¤À‚¹­`Ûÿ¢I±ªnŸNøØ€4§ax÷p4`R/£›ÈBô“äñ<³,1Êï)*(¨"Àök·¾.òÌ�ÓÏ)ͯ“jSP¯d¿Lm·Ž_Ê€Þæ,缡BÝô5œV¡l`ûYÛ»¡›žGÝì^ÚË IìIÝYõ@ô¤®·S‚,ñªbë‡O°«oo÷ø0q� lÿ‹Æ˜à[òðNœ¥½–ËMî0·•=q¥;>¥a˜˜5uÓž…êìýã’qÖl`šÈ䙪 ´*™)_ëŸf�"ÜîàÏ�ïg½õÓä"Ò‰ÊRõFÖÚn4wöþ¼Or-#ä¥!|Ó¨ÕŽIâ”5Ïâpð)Q)QñÐSÊ¥ûȆ™Ø·^ú;6'6§³9üíüí2ŠÖ†ýçÀxMI–  �ê‘ V’ÙICœmdìì= þ#ç÷S?Æá³n؇ӧªîƒ¥cYi\Фì„ÁÂ`�ÅïzïzK_O&œí'Ô¨Ô¨†,‡,�Ù—Öw ï@Þ‰„úØïë�ÄÏ ¦å°v�Sæ¦aÍ,˜Q’gl7�åÌD)a8½,A-AMk­3Êà£ñ#¶"·"“*c}c}/ïǧ ¥X X˜]$$mVnVvQ[Mya-z{@©ÖØ�±;øsçºÀ ÆÝ\1RÊ/j2¢¦¨c6š;W¿!˜0/¡ˆí.'e·_Ζü9ǤÉÐùA™^{sâæ¿’ªèLèD{ê4�$®4Scî,²vîÜûåÚî�P~¾bÖ²cñmî‡çx7š;ãKÅAvøÖ9ÏÃËhÒ'f{o¨’Ø~�¶pJ̉-ݸË*£•åÚ‘ð8ÌQƆ7¢p”#µ>ëàíêQQµB\{Á¶³©é¹—cZ _BTÂzG’%ÈÅnªPÒ‚cÎèØlÞ<«Wä¼ówÁ¶ª "$ ïŠç¨L?dMÝUÒ»ké 5|NêIàtªÝâ …~5$Ùn`ÛÏÚvñæªïœbèy6Ç|Šº'bvæŸx6ùó®Óuƃå,ü–ÒG*c^PÃÒŽŽâ>Ûb¾|ÎæA;V_Ìy•Ex®¬ñx]äzŸmM,m€Ÿ'ÿ²Þ#ûÆç\üç™�ËéÆtæ$–vnwï+pÆ¿ÿ^ýµ¼²yWS.WÃî”*E剪�·�¤ ©·Ÿ¼^‰M;þ}ù,hJ£z\¸á³£ú�opïÕâË{5ëˆ(�/ꩈÖey¢y„^ï½J9˜™8Ù:`_ÍPPSw¨�‰ì´5ꬥ�ÔÅÌÁÑÒÖÊÏ‹àåç…€Ûï¸ñò+F`¹Èëb{V&Ì-áN“ÿÞßÁÿyCÀáÿÿúy[ó*à‡À`p&(,$ áDà PþÿÞ!¬¿9;:™8@¡[[§ïýÜFþ“nøó/%ë§ìùÚ‡ˆ’ßíËË„ýµÑüËçó>(ûµrªŸôá«6YíZNnx�3ª.|oøÞöã>á+i,ÃóV²Ç‚dA¦Ö ÖQ¼°Ðåµ(Çš1Žâ ä¸ä K¬¥F¿9œ|cvvuµêZy—œâã)/pœg= °Øþ�?½“× k!k!¢¾ dv¬ GDq"}"=ž+žË!»ðíúnß(6ð’ÿ¾TÌ­"·I“…¤,‹+E?BP Ùïƒ}Z*ÖѸcf>ÂaYOYOÖ—¬¼Ã.ÉÈQâTâ´°]-A-A ß Ùxðx0‚-ó4�Fdí[í½ÙZé3ŸƒZp-8þüK‚‰ˆÓîñžeÞVtê½ ÇFó/üÿk³�¦T¦¢O$“J JnY„÷Úe¹Æš÷’u{ðÑ&hõüëËsr…¾}ÿeŠ­'ø9ÊØì?* ¹OS¼Ñ¹íûyŸ|ôZ±üofðyÁW3à Ÿe­ÆÙuO×X×X]XLo(臫Giõß}`ÿÀ¾; º¤ºd›> …æ 7@Ð `JºlÈÁ8Ic%£|óp²Ñ„hBDR$WnÑ6]™_Ÿç{G§Á‹Ñ5ø’Í`ÙG@€d€¤ÃE@dEd…Îã�$fH…t…´*\>’³¾ÔîÔî(“üùï+rlË/QÔXb¥³¤•zõa Œí•ÙµØm©Ãó•…hs| 0[X^î�Øob�æüHb$±{‹Û.·]ê øÌäªÒ«ÒUÒµtE "Ðk$«A_¯õ¾`îŸ~/ýî|ÿrϬ6—ª¯R¡Ù1N>ÞNÔFóTüsûßúò™íç´ÒmctÔÊr]–h�H1â®P· à¹èßF¨{zÌÉ`‡–˜5ØÀöŸ6bÎ{-¦gNëßæ|œ…!¯ö94^ÿš>8\li€„y̬»Qò£ŸŒ‘aØÀöo6­H÷R:éû{Eš‡FŸ�Wï,¼ÌØ‘)Ð"ôò±Eú9��—Ž?l›«­”'E§Ñ¿aîld´Ÿ—À§ß¯¡ÉšE1P�Tx‚Xt•Ť…DÉ¿> ¶ÍÕº›\Õ4BuJßfä†ÖCvÓŸ�Up!k†ê”�Z¸¹Eq&Gá0ØÀöŸ¶ènoûš,]�dÚúÅû-žE^ §í§;ÂÌ[Ó±3½ðΟóƒ2F%`Ûfk ;ÏY°¿wc|�ÄÏ“¼žÃ(é6Ów3¿Õ´åº”ªß>d ic—ëËdBˆ8âÏb&:¤ÔdŠû¾aï *—¹¿Ñ,Æïó>³µk‰»Oá9¿šq:Ž•Gê3œx`"æù~¥Ð9ÍÓÌýêïì¡öК[4·BSÜŽò®ªJ8‚¯ÁQpTÒ'Ð'ðÊG€‚Ð7àmTø3÷`$гË! u¤æ•ú4õ©ç1˜Fyå ètéD6({~F ¡I«Ý�nð0o7o÷q`•n•¯‹ŽU$d;f;FºEº�ë’­ú¶}„û§Æv†}_øe;Ä@ÏkðÊk“¬@¬j¦‹õ"uõE_ cl\ôÇÇ9C9Cí™Z|ÃÞlÿ±Ë±Ë¬Urr¤¸ô¸¸ó¸ó‚É^ZZž\]kÖw=%A€Õ ÷î;à~rûë¾M»rš÷–µ¤=tÕŸ > Pen6gÄÝÛÿíû¨}ù;$–² ‚¼rKeMôâƒsçxáq‹vwÒ±‹´ðí×”FZA j@SÛÕH¯äÐyÄûìójYܺ±$÷›n¥\Þ;¦ZÁ�çñ@„ªGB�jÿ{-sðå¥;¨ûD&0SƘi÷ØKøsý”uá�šñïÚ*žéË<9㱟ÿ.Ôþ½æ€¶G¹å Îðè»�«d7F�<'“ÙÏJK½’«yréܡɷ„z¡ösµ¹ÚÖÄxÏŒ;·Š„ñ ÜuP¢L³}W#b�س]—M+Z–h—"w$ Ô~þFÂg!`}4p"á~åñ“J¶};Äÿγ´R¯iUÙŒ¦åf%†Þð™ûá^Síµ˜)›œâ6UZ¸;i¹Ù5î}�Iò. ×—jnh][.iÂ/gÒÉÜ)|µæÄY‘˜jŽ·Bü__SíßøšJ!V¥µÔ;íüþS6÷7mvMuñóšÇõŽ=‚û¨š>l­r*�Ù m ¨ é�ðFd�ªS�JU.{kÞ%øµ²©²)Ÿ–¡ò¡òªO€„Ö8<À¥"@±fk’%à±#)Õb³H–ŸÑ�Ñð¾Éi=WQ7E�…ž>H êFVÙ%ûk¢iñ#âGÚr½r½CxåA˱“˓˄u„uˆê¤æoËeËeCóôÍŸ©´þ;@…#Öñ]“\XvÆ2· µjü¹¿`ÔÈ ‰66¥V³‚ò®¹G~„q“qS×õÁÁS]¸&ÐÚ>´‰×X ÜëÜëüO­Å¾e=ÒF5µØQ±£à~Š€a÷ãL°bð¹ óñHJ´[;§Ùf×T¸{{£o¾Aí÷i9 (KŽ…ñù¬^iÑÁ¥)Qöá®öES’ضq}])=zßç …JÃîåPû5›Äµ@�• æbwîhM4‘|§]Ïá7¥'¨³3ôÝS{Ó�õØLŸJµß§½hvðßrž å+Èæ$!˜©LR�Ù)O@ÿ¨ìþµ�D™Bû6‰ñ*3¨AígkWÔŠãÕÃîöÊ[ﯛ¼Iži!QƒÒr ühÝŠ‡ ê€SzŠÍN²n…Ô¾ÕàCOïê®ø¸n+12‹÷å?õêqê#.IC¹ðÚ‹<%ü¢ºUÄ“+nmPû5+ÉrF}èü¶€â¥?ãTªèë.±KwŠdèrKP<êƒ~¶˜V5¨ýÝFýÆ‚~ ·\áÂT wÔKiÔë-Zs7’Ç"÷ÇÙŽPßÞç+“üMµŸ«Ý¼fºE'É¢ö Ð˜‚ÍHœ¶XlAÖìñ¸±4òÅ…æ;î7XÌ¡ös5 3æb±9"%CËû4íhHtºo S[]»òÃûà@œw¨U�d @Ê–af³½ðy òùzŒªÑ5¸¼™Ö*¸ª= Xb­›ß;¿WÉãœäÎJ»ÙÂ<©_sÖtÖ¤¼=²2²R20†og\1µIQ€ Ùz,…PU2ЭÑ*ž*&NzaútiЛ€)¡2k� Ì…2cc-©0J2J2Ehîáň$‹$›všv’+Y+~[¨{¨»‹X É÷´ó¦í"x8b= ¨½ø+CýrÃ0~€s@Ãô¨#Çe±11tú¯J”Î#u uÊDY ¬Æ�ÂU,ë�ôG6ös=OLTjXë-çzØÏ.I�Þ½óÿßãø×sÇ;ùžX_kÅëJ^™Yx†Ùìì woÿïì�Ô€ÖìÝŠo³W]�±ï4ƒ“_åPÄ‚LÃÈl.¼Ãg¢ jØÍºîÓÜ€ÚÏßæ•ò8h&³¨91žWšP%a·DØS¤nŠÏê?.`Ûþá?3�`ü–¨Aíï6³~‰k)!Ô…WqfÐÞ‰æl æõ§ÉÔ›ëÅóVhòërBß1§É¢ƒÔ~…¦-Kƒxìýê@×…îmg•å�vo7’BÏ�P D­ÂަVPßz?fsu‡Ô~¶FQÏM#ÏL==9,ccÆê›ÀªKâEü‡f¼Î{¬zLŸ$üG¬_=^Ë O„'ÄÅ嘕˜•˜ Ì,y¢çD�=áZÔ•ë¥;,ž‰8î§f&ì~2‚núøZaWØÎšu>£m›Í­p÷öÏô û_±•ésÕ‰QX/'J2‘`\-Ÿ˜¥E‘¨åà«óÆ%ûì°¦ê�Çàݺ_ µ¯M<”öOs€Oèܬ¥#lVuRãÒ¿¸–à;PŸähÚ•*’*²�–>!dy ¶KM/ók§ƒN™ÑM_ž¾Lä¨8[âè½ `ßÕ}{'בÖe9&Ћ¾á}Ãû|Õ˜mW>^‰"¯PƒîqãS`�œ°{“ôJB À�äGªÏìmímÿd_xa¡r¢rNNL1I˜ù6ärÄkòŒã÷mQÍORnÒbÉO»‡“�Ú5³å«�÷02>õ,¿¤ip �d­ª©ªY{¯©Aªj¥çG —‘ˤ D DòÔ¸ŠW�µ>‹Ïއ1À¦i×"æYo©°÷æ¯=^¸çþþéôñf’'}úÛ¥”Ê?Þ£ÝìÜ÷›±½|œ—®.Ûî¦)ß‹pSŒá+k»¤sc¶×Èæ&‰f°öy!ì¹ÿ¾�Ïý=ÃY¥Zhœ#1œHŠ*R\Þlo}^“•·^YØsj\çó×ZumíÝÓ r<æzÁõÂk­«ü¨º] !¹_«(¨(Ö¾+{W6Ú`ãG4Èáý�üCcªÚÊa,U”'TÍé=ê=JÚL0Ѻ2Ñò®OfÕQ¨ýE\~ì’ üKq$qdÌ3€æ¬æìn¯(P„O�A�Á!�C:wé˜F¾í ÕA+²­&õßgŠ´Iœ€¿ þE´ññx¬üL„¢Hd¼«8æ‹s¨%‡D/€©¼�ƒ�ÃJÓã6q•ô?Bæ ÌAÑ»R»Ò@U\³«>s>s"Õù04 š¥·c­�jë%6Þ§#n#nƒû Mñ×ó*Ï‚� �bìVCž;�ʹovî�»·¦ÿ†ß¹)UM÷öH±1¼ {lrSPšÁrfoÅiX‰È[:ÇãÌL»wÚ÷WW@í¯™kÔVbÌÔNùˆ‘=1��O<3¼ Wñv1i£A\èÛ�Ò½§ÜÉÖ5¨ý ­uÈ"˜¢†Û�’ÙylOúŒ‘ƒ-ºÐ�û`Þâ¼Ó£«O¶—hd4yl�ÚïÝ�oí“£u dghŸ¨¦ßªf:Rt4<À°ò£ò±í±•Ø.𤿛&PûßkÚt²é�øåÉMªµ¤„!—ï±Îï­é+ò¤à¸ët‘}¨Xðù£‡O¡µŸ­MÀÒÜšƒû[á™Þ±X@‹môžãËD‹ØJ˜yˆ!•½?žÞÏ< w6‘¢§4Ø�²ƒÿ貟òvnâÍf³ÁrBì:¥ÕQ‡Š1¨$ì}ý†šä»1\þntN/ýí‰"l¶žZMc¾P/§}¼{òʳ á�gÓº çUY>à0ñfÝl6üyM•ÿzYw1¸ªí×"¶e¿g YH«O«ß‘Ù ©<?IŽâ•þÚ‡öí‘-�$�$ôÌ3/mÀ‚5àáÿ±wçÑPöýÇí!Ù%KÙ‡†,“}_²¯cM "k)YZ„dËN*e¨(#KöµBö-B‰È–-”§ë7]OLIç<¿ç¹»»çzõ×ûtýÑ9ßΙïçšù^Ëu69šq6b4V$¨Q5Ò:ÒZ=J#b`uwˆe¾©´äÌòõb¸ÆIÕhuS €ç‰çÉô ‚ eT.´ƒ$?4¨6¨jÔ•Éo®Ò¢ÒB¶Âþsä ïüØ9Œh¼önaÙnhÔj¦}vñABaˆo¸Ruê´“ÝåE-E-¬U(¯.ƒ¶_‘›«¢Ñ°½aûž›˜ mP6¨€«}‹i‹iþãë|Þˆ­ ðZ³±®±îßkûëYÄ÷&÷Æ8’Ùï˜eÈz[³ÕlsmÿNç,ýÓÚkkæKï^ïqóìè0Zsü$–¤yãîÞ‰îì³xÖ8úüNæøØöÏk†;‚«œ2�Íû lLnõ>%ù® —6Ì&yuŠô�‡#*êì{Û~¯vŠwí©JqÃN¢ä Ö¬SʯRñŽ$í ÔxœE¢?�!oÞuîÍClû½Z•ÙšGOHŸÕBý'Ãcˆ`¡Œò´o{¤yA� SÓæô’èÆ¶?§Ý혶_€]8Ž»æu†ßò½~ðáè=�æaÊŸBX¦R©ž¿ö]Ä lûç5Tuä œ99H«ÇŸ¼f$~GÐ üéZ?AŸ¡ìdZp�Þ˜Óð° Û~·v9(J*+•[=ÛÖ°bDIy'ÏmÞfo6‹¼¤.Md—žú±<1ø¶ýzsgn}%³·7J¦Ö¢åµÿ5ü高³�z Çmžü£sÇ ÞJÖB[ÍvB¾Ü£Ï¼‘5å~LÜ'ÖëöY…\$Á`åKóª†Ú´s$4^Nß33kÒx}’Xó±:™i¼µæüT€~ü§ýh^™A+ ·Ý¢¢D¸M†skî�‚¡ÝO@øð Oh¹šãþï9ûÓ¯§_†<Æ=ÆuNéY€Î¥r„p„ 3‘™“¬¾e›³´0¸ûs'Xxù  €ñ´âÐw¾TŸÑìl†vÑܤëÓ¸ó͈—p¾9€M?�*�Ê4ôž͈„ç¯(n-ní¢˜ ˜@ecÚígècècÛVتR£RÓ�\oÕ`#ç€tŽt¨t(æÜò–1òÍXaõéGÛãSÞ,l:Ûç–‘Ái2Ñ©3ž&’HÇ+ÞÓ …Ǫð^jMxšÉ-/z¯Š^»t0\x†úè(ß}YkÜÌ-<·l‹ŠèÚÝ7ÇpaWÇÔ¸ÕÚýrÏiÝ�Ftãø1U§®ÇŽ}Ú/VòÀ�¯�¯Õw°CÙÆg͆Š!š¾'K*KÚ01æ0æ U(€µdy]Î�MÜ—T¹£9’Ó[ƒN&NN!^Ê$"?Ü�%¬‚äjˆ uYèZâ ög2ý2ýlQÇ¢Ž�]¼…y‹"*•öjöjfz8›‹(�(g»›ºýçØpY ÐgsŠ¡Ñ®OÉ5B»A,/FÑξ(âü ³¼¬_ñ€Œ^ê‚Ô…&g—;ïýEBJBJ`ÜNÎ�œÙÓ˜ �Ç�Å(�Îì–ß-ÿ™k½Ðû•CJû�ÁÈ`p=ñ�¢×SÑ„3;ì&uKÓàS6ý­æ–˜k{б»¹?‘=ï~Fþc²°ÅÛ°íïÐ>‰Žˆ^ z/}h,²8.à¤NÅæ›¯i1¬ÛM_E.®eC+žž—ߎm¿ûÀÄΈHJ!,ËP¬²` TŽ›C‘ä³´±†’ïÄ ~.ßžøÐ©Ûþ7mZizº6\{®y™ý]ªm]áž´“y¥¦J‡C&-Î1øKºfPXc¶mÖVI:ì½Æ�ìj°gÐu&nŒ=zÅåw:íOiº ™�ìò±HNàmºŸ~VÖÈú9æ(!’/=Dqxbl‡‘ê�êV{ 9Þ`1ï•ÜÆC”wÈWü›‹êJ¼˜[$l… ›LŠÎ褠g¯jÆ)­±W¾îùñ{ Ñï�èÍÇ9ñý‹ª“�+Óí?оÕø7hçlTò²SEóz®ì �ôÈ ’EŠEŠ¥03)!m¿‹c¹Sßkæm楈ð|íùº‘ –Û¦ À�ÔŸ/ݾ xAø¸ÍÚ2^Tûneiei.ÓcZ¹òí(ª—fòkéF;Ê‘é?©�®’®ò} HiNi¾ÕHR�§�§àà°MiÚµ¹ÌŒÌ Ž©Ú?·ÇÜI~@ @MŒÖW|Íå²7Úyoˆ†¾ÚõÁÂo®2*�P]R½¤ZÒÕéÆiÌœù+r¹r¹2(!7!7)c0%¸}Tû¨F_/’®è£èãU½^ÞFŠ£({”=¸žiÐëéI­›u?£s “RæÓ@K®°­ö@˜k›È1…°”ÿá ì³kuRžBl·¢ÏŸÜ^Í;ˆX§Xã‹J8†åÜ׬F8Ü+9‘ÒÉHÏ�ëpº0|6“8*Ûþž-Âevã)[·¡8C†•ÙªfÏÓØ¡Ü#jgRª݇Äj�ƹm�¢ÐîǶ^“-éæ^y°O2b~ø© S€‚ÓØÅùH\Ýb:7>·Sx¢›Oª1@²Ç¨?0<žL„hÀ mÈÒÉÒ�8ˆÆö7v€ÐÍ«‚öÝU†¢]õ¢gº ?,,ÁOؙڙ>y¨¤hƙ̙œG‘Ga—íjº9—%—¥G8³C?W"„ÃMœ8ÇÆ�iDëÇ‚¦e[õ l�§÷º«Š�tp5–Ó’Ó*<˜£ùJ¹ï¤=Q;Ë甲]‡wIôÖYÊÇ6Ñüà9†ø�Ÿcð¤�qÿL?{UžI§ Aô~«µ¼ûèÑF‚Y–ᘢãÖ;¸ÊØ3rZ�ŒŸŒwæyêxÓjºóÖ÷ªE«Eâgâgž<P—šï¤ÿßUƒËÂÎ' Y]@ÅðQµ « «»-Ç<$9Š©Q¼ Šй�fØ)h»�tG ° ¹ ÉÜ‹ ‹ç"�™°eOfOC‡¡\/?Ll.‚r †þ\ßÞÏöjB€By´¶œ’±h°i¤;"g>á€ö7‡‘¸žÍ¥OKŸ¶y9ÊzÖ‚ïû9¤>R?ÀŸŸ´X“ÞõÒÞÒ^.¼d뜡œ¡âœõ TíÌ0úžr:åôï÷¹ý.ï2« À#6öB¹¤V/©yþ­žc`®íb(—0á¼�Ô§|’öS,'…αê8aÛŸÓ–Ì$OqÞ¶êvÊha‹—‰Hœ�eª_ó$ˆ8âFcÎþ*[ ]-²Ú‡mØöW6ýC§­Š&Zò^ãè]îNE©|ì¡¥#IÀ°â‰¹z—ÿžÓ2þ…؆mÿ«&”'ª`ñ@:Ko¶’ýª�jEîÈ‘¡³JOfo¹à]Êk‡\¨ ¾ë‰mØöwmTüHÊÆÞó,f4¢‰â¶GíãRÍ÷63ܧP)ë�2´BáA÷ÿÝ:»mj¬^± :�)Mè¢�¥ËŽ€Ÿm'¾îÛøòÝÊC²F£ïàŸ-|¦XµÙg[íÃŽÇ�¿Oöu�EúƒÏ¹˜ïƒ×0MèȺYÐŽÀßîõ2×óû=˜gµà˜·ëßëR¿—^Ë)Љ¾'¾_¼U�"¸öäô•RÌßH`žCë@[#zhï„°…Ý܈ù³QÌ}¡›˜qðŠ®[dJŸÙ’\_Ômµ/ŒørµñF‰4>LJ™ë™‚Þ‡ÔH�DléFèFöÁȦƈ;.Ò×)|oàãÀG‚y†Z†Zñ·€„¤¡%€D 1Pæ¼ ¿’�–Yu8d4ØÙ9‚Ø}ÿ¬eÌYPøšô*èN©Ù%´´sáÜuQÅÏ·en˨ Þè¾Ñõ¸ kùu…ׇ׳ù²ù~^Ó�Ý\2 )Ã9sùç ’|:Îb€3®hYð®¬hBõËoœ'ûKš¿Iq…ågàa:î:îü3úm­—òÌ~Å›å7˶ՖږÚk#˜hâØÛÙÛßι�^‰\‰$¹ºAöFçˉþº×u¯cÎ<ôp&"MzÏͱl{h6µ²ÕÌóÿÃ]ËYW½™ÕT²üûð> ÷¹Ü9}Õ~¨�´WîÉòñÀõ3�¯ïùñÌCC²3k÷áì…5agZS²|[­íÈ/÷\<¿™BÍkLÛ×KS‘*ƒ"2ooÕä?�0fiHl1úž°§°g¬~‰p‰0<  ø¬�@ÈL“Ð=.4whv£Aªb@ž\æ�Ì1ÆíáC¿ªEDQŒƒVs åhíÙeó”’ÍÊ»d»dÂLÀ í mì<häÒéAB�º¾1›SðWð<ËÚ÷s*2¢Z¨d»ÐÉ–3\F2ZŒ\üòç›’ÕUÅH€ø&¹×ãI|Ju»_á¦â¦™>\2\"NŒiA‡îݳçiÜ:ü:ü ×ÖcöÛG ä@‚þ¸ž¤¿ž»ÕêQ–v&‹DdnŒG@œ¿ãÈV3̵ýWýŽùèö‹R¹-»¶1¹™ Þ9ýI¾%2Í’·ØÀÅŸ/įßö\î‚ÜXÒÛ°í?mDz<�›­�Ú˜góÔÝ™ +?¿o¼ö-CP„äÊ1˘mÏ3…å Ê–½Ø†me3Žò*`Üu d÷Mñ¦Á‘Î1+¢rʼp¦öL¡f‘×uíù�¸"gúåcÛïÕÖŠRbÒFY:ž1�\�Ö|"`ÞohÄ~gÇ@¹ŠÖSÑ�§Õ'Òƒ£5ßö߫õ4ž6X2 3u-`z—� «ÅÙÉp1jD˃´‰õ`¡ªÈÒu<íYZR¸Ø†mÿi‹é9w²âŽ)ŒV!ÝÎü‡Ã‹¨Kdtý»dXø+Ú)oçå=mᕲ% Û°íwkõ”g¸O>¾6N/Oï£öäL'Œb×ïô{¼5�î%�òw•ìÃÁ­\/3™EÅÝ0g1ó3²FgÞvÔw”ƾRÖ4Újõå_Œk6u/¦ÄÅõ–à ½fwÐg‰¦Ž¦ŽÏg ÍPeÂ5g|/›2›’ü"œ .¥Phù 3x¡›nåsÐ!A‹gð0½íatdttYÖ5ë*d5=œ„€t‹Ó Ý¼ðžäN ¨oSßæXàlâlšñž eêÓyÐyç¤O›LMlEAMÍn/qÏ€.€CmÑeÐ,¯�¤,€(ç@×€õÚ7IÔûTü QªQªõÂA—8–~E,w,7$ßø_ìÝy4UëÿÀñ#ÉLŽyº†2“8H†¤È<%ó_¸úÇÁEPütG èØiW6âS×BhëýÌùˆ|K À"Ç"Çe(–TXº;t÷²Ä²ÄCä<÷· :fl 1ò}™A¼îš,,%³!Ž;(±4©=,~Š–†6_¬�3égKr j=k=/O^À¶½ù#¨º©ºõÿÌðÎð²A§B/>*>ÊA´›Q*J*ª×{3ƒ’­0Ä�§ˆOƒëÉí¯»Uöð%›zœ~²Úõüõaâì�æŒèkû}wÖ—«Kd5×0èЈ[*ý� œ¬È».ÀØ„0ûzȘ[9ùkŽŠGž�Ô€6}x²¾÷)…¬cÏ oÓS•;l:±ØÅM9)×N)UR>ð($îQÙµÿ^Ë}x7¡˜܂*fÎ=6cqˆ¨ádØSõø·•Ïõ$Ú�}Ã\yPû÷šcµC‚Û}Þyv=÷iùܧFáØ/ð$ô¤„Ñ÷ÕO­ž;6«š#°2µŸ«-ַ݈—ð̺[ƒ/Â9œç(KÊ›n÷¶NÐúôjÍè£X,2lØPûù6§5·­BÀLRq•ò)Ù.»ÁaÆÃç>v>©Ø+R%&J“9É‘±IÎB+ß1ô=ÏUëùòÙ7l²+™±³¶;í©Ðï&%Ke¹¬ÜZ­KÓL\(m¨ Ñ¾Ç»Oàz�ª©`L-óŸ|\»¾ÞS!¶ßSåÅœ· |‹¥Ø²Ê.Ëž®¶Óž*xÇ%d«~½dtYò›Ý<Zï 8 j`4]7]¿HÈõ„|ÔÍaRÂkåk Ë ËÞìjdjdNR€”Ë »ó/�aGRÝ3Š3Ó(rX%ÇAÙžX–X–ú…3š³ ï@iýÊ) ,³Ž{(È¡ZF¦â­üdüdoVr¹>oÍ ʡĤÄTuUu•º¦þm]]¡6ªòßÔ ï¸°¢4´üÁ÷�b [{}V•41ü‹4ìw°¡f@d5!!×Å6z…éÁìø±’¿’ßÅ‚Ð@hXÜD§”.ž.Þ266ßß>Ó´YDÿVy—ªFÁï‚ß�ë)œµž¨æƒe‚ÏÍXMGU»uî·ÜiO…¾¶·ûB¨ý>íe‚ óÊt¸Ô�q¡ÑÕ7BLã½�,°c;¦õtÄt)|_HÈŽ»W@í×l"‰Ú•Ž´Hw¶hõj,¿øûþã“eª$¹YzýgçÎ�e´Cí÷iÝÍŽ~¸^4 ¾¼ Î"¼YrصÙ=RXþ�Ë‹‡oH8tˆL?²„Ô~¶ª‚ŒW É�²E4Ìfd[‹Ô%h:ÂGßÛ¶ÁÖ‚º4ˆ<…—1géñ¡µo5�±gy˜:]÷–š˜…Äûré�´¤>f5’ «¿Ì^Ê%¤óhÏì†[Ô~ÍF�ý1ëÉÕå½þÈÕ?âäCQ42‰÷­ÇÐ ÷º%É(øÆT?ÿ�^5¨ýÝF2iM�ËÀ&Y°ò&†-ê¥xÂ+\ÍÅ´›Sˆ» ’Ûüçc%n¾­ÆƒÚÏÕîò&Zàj'[×á;@.}v"NK86ÿÎyË´™xd·ÏÚ»»Ü3W謠ös5kKZ¤ð"–¬‘Mñ;u{8¶v_Zdjë �«G¸™©1Kp/˜�÷@íŸip �·±8atVp;J/‡�½CA�lçkרƒ°äqL>Ù�K™ BM¸09™°s�òÃE®°)‹{IË$ lèóýñB.°Þ�á³AÆæYO¾y œïG}~¦un«Ã‹Î�Ñ1~ØŒú%¨ãSˆ…´f¾f~Ü߆§¦«�x{ékG�Ž­p>oÞ=˜¬ˆXxGk2�7,X]A‘ë¡]IWã÷â÷"�Ï"Ùkh/‚èq‹½@Ž*KÍ(m1º!/’ÍyyÁ €¸õ¸õË^{ñ@šættR™R™†4~ ßֵص(…˜Àÿ¾7B$±ZH€ª=Êyyƒµþn”w¦~K×HØý¼Ê¾ÐË “͈¼ÍâÉü,D¦S¡Î÷#ºáÝð* ŽpŽpµtç›ú¼ú¼V„é’J’JÜš6cÜ*�P“‚M‡M‡~vµñ2ëÁÒ9{ 6–öûŸ†Uà;�]¡¿¯âs[4¤§Ãµ¤Ç‚fÃuPGZ`ži×3AÅ÷Y²oŸVáÆlsððögWTBéãæG̃qÞdN<ŠÜimG~f:z+ c�èæÛ6ût¤Ýí)r}uáö…ÛdBË*øûY©ME}MµJµj$1�,�LÅÐár0„=¢:8 ÀPôDiؘïõ¹ª»ªK©vyfü¡ùdïBVÒê{™ŽÂ”Rˇ“k (Ê(ʘ¥Üm¼ÛøÜ ŸäUŠÈDd"‘�LWï7|Ž:Žºrd+ó÷éû,E>[D¥¡X­‡`œLDá½ñ~4U–<1Üä‹ÁzCö)@åìÚäÚäã}XþLÒ¤Ÿ~„B®B®àí˜Ã1‡;aè¤s›Y›YÕÞ—:�´Ž´æ'löÒa«A3GFedeäÿkí¯÷Ž÷q¶[#Û`½77æW¹Ÿ¯ítv…¾¶ÿ‰ïj@ j@ë önÃ8{PM�jЀÒùRÕXøŠÄÊ’îÈ\VØqãèü:&ËÞ¼=ð4¨ýümYö3|öÉþ5ÏЦ„QònA¦±Ìà z-ù Ôïv_²ôÆhm…Ôþn³IL¹BRpýØþ,Ò»ÑûI8ü(³u`ÞÒþM—z�«ïZÁï�A j¿BÓ: ?Ýâ=r¨×§o¯©œ”3µ‰Xõ<6wÄØ'r…ÔJ’œ¥)CrWw¨Aígk„Oh4^Á¥hIæfÇ%b,é}“˜£¯ê`Ÿ_,"BæwJ=$§#mƒÔ~…ÆW©'�q¼ë¾!rr¢êépB¡Ú �ÉŤD§—š…Ojã$sÓ¶¥þ¯ÛUqßêÓtJŸ÷æk3a˜¥x(¡Ï­º¬=¢Öj{Èu=18í-À˜É˜Iû éVÒ-lÄå�PѪñªqš\š\µÑñ¶oãçãçk8ÁpÿûˆÓbZ ¸%Q:pJ¢Ó/ Üþ0‰Ÿ]\û°ûú²ûkk: •qVqV凤GÆVp~5'5ç®ØÜ‘Ü{t�¹ … …i¥7áOáOƒ³7KÞêˆ Ò4É!É\OÍ4¨õdB~¼éý+i–�}uójœ&{wš[¡¯íŸéËÅV®ÇÚ Lhûñ†( öš«M»ezÁ.•{*Hޏ›m‰û5b`9ÅH¨ý{m¦FÜ/ÝQcF;³žt ³Yæ³È¡‚×]¶$…0¿� ßÝ̇ï�yµ¦¹Ìĺïue5Ÿ`ºJy»`J£ÜPs>E¼ŸÐîÙƒêÎÞ°A]PƒÚÏÖÖtëÏæ7¬ ÉÙDÁBîS—Ý?MMÏ}ó#7ù0=Œ†o‚¹U—.=¬½ j¿O#,{Í>¿¯_*vƒ^ìÍÿ[�–‰j|´­z´{û°{ÁbïÌB jÿf‹{Ã@Ø€°o"ÒïÐèÃ�ôvS�l¼EØ;Á!M5ë `´Ôåkm 5¨ý �êõ ªjE?bêNw¹Üüf]í¥ cfß ÆT!:Ó²TÏ£Šl…#K¡µª…»\“2™t¼ÞqÆ�r%åÊž»• ya‡ ‡ ++“úzÊ#ß&sAæ‚ð=â¡ïK_äMªŸà¡ØIˆ¾6SB™±Ûýa�9†‡Üõ/è\ØHæÎ†Â]ä\ä˜/‘P¤¸x<ý�£�£½ �B�B<¢èxŸJ¼’xUBIã̆ÿŒûøf~Ü[E{º‚Š–‹–ÑÏýý2(â-EO]ê“­x_DºÓ¹?úÿ:pvíw ¼þÑŽ^qð´›L gyG vÚ€ÉYŸµä=0rÃÍï«ð¡Îýù·?÷ÏnÆ1�Ï’)�ì%)A\ûc§µ÷ù÷�­$žê;¡[ÐÛ¬ž4ö‰è5È•É�äo)Ûˆ“P×´àGìÝý5ÝÝšˆ:8ްN$¹.öæŠ(Ž2^EKAÐ�¼ ²ÝÐѹØfþ1ö@·$h]éU*Èðȉ$—Ò½ë20>N¶?¶ÿõÇ€åêåj‚ …,Pҵ5UrUò�NÞo«¯®¯vlá’ü>3uMÁ[a€Q(«TñMóu(ã³Ø°O‘8év_x•í##}föö-t›àáÔˆÔÿййêñÅEÅE,èà­ë'ÖO¼i¼á…ï…¯O¾™³×VRï$ô2&2&àzª&üë}•çÁŠ£A¯×ì?]yáüZÒ}§sôµý3ý6üÎMöÑŒÙ@¿Ce7^‹y&¯8¥ÍüÁJòRÁ?w‘9)ÓrÓðìsª­„Ú¯Z�¬¯Â\³TÑ¿(Œ×n®1!0óÜ蚆¼·‹yü´Ï c‚N‘\C'Ô ö+´¶1ë`Â:6w"ÚóS2æMíª ŒØŽ4Ë "¼þÔN]z2«Éj¿wó�üÓáf´ŽáÑyÒgFþJ9µ4' Âü�ªÞË)kMmÄö“›3Í¡ößkZdGó30*n6)Õã`^¹VD¿|°n°Ð“ø57sž³ÁéÜcHÞ�kžA j?[›!Owkv¤j9³¸k½:<\-¼Ýwޝy쎴±:Qƒ.–‹ˆ§¸d…>›HÑ•íKaäRøxIŽš {ÏN³‰…`É“|LþÚeµQÇ�k iØLƒCFê¿ÓçŽSÒu}ßï·û¾�ÇÏ«÷uõÇÛu�÷ëã|Þ*afù—÷›M$÷´_ÝííU?KD%ž;‘„ƒJµ†Å@ä ¥â¥â‚ÂõsKê|%e›¢¿G÷Šî޳#Ä’Ž 0»¡B(Xußòu ^Ÿƒ;a’ªXp*p*èU™p¼øÚ7ä4º’´8Ç W°}9 í¨2 ~¦~æ” ¢¿¢¥* ”Üá&ì&ÌUÍU­Ãšî°·{�÷óV£~ÎlY~sXf…�/NOm Üh`–…ENWË7®¯±oè‘Ò%‰?f˜�y÷T ¯áWØMÙMÉh<Õyªƒ&ˆh1 * •V‘ÈÚ8,qXb�§äÚÝœø§<â<âþÜÛ_ߥ�}ê${ŒÕA üªÜñÆýfˆ{ûwzÏÒ?­½3¥ üø›ÞÑãO× Ì_gÛjK(E9ùû,ß uÊE“‹ÐÚ Ùþy ª�\o}×vÙÏ, %µÝÝIôã³£âÚù8Ó ³:‹P=*xÁç"²ý^͉c;ñ \å rÌÔ)F|Fè¬ìPªY g€Òã\ÍÁl)�ˆnï÷��í÷jõÛÎ=!}–Ä+Ï·´Ûΰò”«ó¹øT3‡°¶Ž¡ò)¨v�!Ûß§Ý뜳Xáó½x`ÛÍ“ËxZ38Ž?š¾Å0L–Õ£œï®L•º$—Ê={#;dûçµÒ†È ÚÔ Ó=W Çnï J†¢Í5ùñ {Œä/â�F×Pê�qñEE6dûÝZxP”XnÆÅ|síÚ1Yr¶;Ü­îL| R¢j¤‘ÝꊶEöBc(Èöëí2mûÐ öÞ¨MжE’«‰hs‹›ˆ³™4v �ëÕbÊ�vÍ7_î7ÛIü²†Ÿ~·-FED'½vêë5àƒ¬§ÇŸŒ?qq"íÓ&5Ë»°0ó½Y¾Y>&ºÜÔÜÔsúg›Å^”�žå�Ž(¡ùÁ‰Ú2‡‚n'•'•C·WãˆÌM=AÓçþ|íiŸ_\kù|æ�ª³@$C$£‰ í­ím­õdžÛt¸épÐdÐ$ã�ÜÞ0µ0µDËŒc~.¤ˆ›Ã` À?‡FÎïÙ×zûôñÐË#³Ðo n|7´ü0N'î@¥Z‚SÓ¯0u3u;ÓÀ‰Á‰1£‹ %+0+�÷A-9IIŽàÒN#µ»Ý ` { azàsKžÏ-y†‰I_tÖIÓ'£ÏHÔïyß ¸·o}Ycuk7_²ëxˆ÷ì”L¢Àùã6è³ìÔý©ûÉ=Úc]Eêž§¬²Æ¿gÆeÆÁ•p•pÕ�ÄeÂÆÉÇG0¸e ÄRp+B4}ôå+Ê”ìœC¡8'©A§†’cA¤.Z"pTò¢èÏLF[G[[šø›ø›Õ>á@wúûùúù0|1|½‹!Ã{ ååx¼Rñs-öÜÛ¶!þM¸b, u5#86»êÛKÈJ‘û7³_O²¦úPŽ iΡìT+txò+V¿`Y€CŠ?; ºöHcHc¨*O½zŒyŒ¹6i'ïÄÝHnš¯;º;ºƒû‰í |?½0‹÷Ä??£V•©1Ë*ͤ¹ßÜqoÓ—RÃZòŽ'1gû=ŸW²èœ)o;‡lÈöWh[‚c‚qAÓâú‘•ÜÖŠÄL>%ÊÐQ5E=�°tPÔ¹CÂYE%Èöû·Efj£”tŒêì“õPnÆÙ¡¥Rœ†·Œ¡ä(¡Á¯¸ov$=².C¶ÿN›“™›kçmòn]gÖ'Ë0VÇÆ–y©¨JOælÈ ݛꪨC6¡)²!Û^m½ÓÂmÒŒò…•Úì–6qö¿Ó{Ðþ.MmjM›ÖŒÒšÏñúA–—„Žé+Ä3P¶‘@‰øáÙ© |±Ò�òû��–8‚…¨<Ü7 [ô‰r6®¶V<«¢r£¢m1çÇx­[ᩚ¡�Áüœ·¥ªÑBö–ëÚÎ@‚?>EFáùêâÜÏt·íÕ¨%|°ß(éËšÞÝpÌðì•wï4/:¤¾2ÒW9£r†ˆ_ÿYHç2NHZí�ïAš!ͧ€³¼l> ®êÓI€PPx¦Ä6@x”­.Óí�8(E?n1nq=àI«ãò¢ (GsÚdŽ�x.’sclœÒ­ ¯¯ªH0N0®WõÕrPPHEIE�ó’Tî-u.u.Ñ™òüϱ¬¶ßd ¨…» 3Æ d‚ë(N;E¥Mü�.æ�?À5-�>�>z_Э´ÿݯHHxÄýë– "ÁÏ’w$ï ØšCªÒ«ÒÅ>ïT¼Û‚<K#]9]ÜOI¤ðýô´ÉÑt€úB:�ÌÝ—Æ,aû��÷6¦U:F×£a¾Ï )EÒ7`'¯öü�Ûв¥€iº 6š ˆUXÁå#ËûOìÒ»¨q4²%;íG|‚½îbG!Û_³…²²$¿9ÈÓ¦Ê61ØTîyyc¤ÐLÁ3½�çòˆP“M¬#n¡Ê²ýóšÄ“Îà?FaQ¦9E£Y Ͼ”£ñ—¡™¸¶y@­’ UÑýS&»%²!ÐZºóžËYUQ;~2Š¥ƒùI7±„Ñ®ª\4Í2Ž7Ò-N÷=°Œ�lÈöŸh2̸ ©ëÏå,QÏÔa1^�ÓÏîA·Ù”>Ù}l‰)^m¿Ÿ$rÙþÞ­†w—h¡‹Ð"GŸtûÞ»Ûo/¤ld3Þb«`KT'm9OÊOvºÙ�í¯Úf†oyH¸Ú¿»¤$ Eq›¨ú©H=Jc_§ÔÁ´X•¶O›|±ó{¯Ð²¡#²ý'MªOi]A’Õ¥3η8ºù\·)’Ê6³¦htô²Þ„AxéÎ?•£Y²B6dšðœÍ*Ie‰ÆASî¶æõ‘®O ¿»;ˆ>îJÛyS¡Âî´ }ʨìûÍz“¿¬±Ý-в¦Ñåø�$:A̱ª¾ ¬­+W­ Õ¸D= ›1j‰ß#Ë&Ë.Æ¡´£´ ÿ¿ŸÅ„“zlM²X…³ÎÐKá¦åŽë€(øÛ¾ü´›_§‡ôâ�ÞÿaçÊLÀ‚k‰{o~ŠÚP‹[‹Û¤ ¸yíæ5zR6Ðì2¬2,Åů ,ù{ Ç ÇT$Õåý¹Y_ÆÆ+Ò€úu8rqG)eJ¸ WÖ¦ŠŒd½îoü0§ñ:­jz"z" «Åú2±~Eg§×IF FŒ£zˆ¦ž®®½p½¸�ʙʸ±ÓöÖnÜ 5mMgMgÄç�þ�&=ìñ2jݵÙÑó¤ñû=Ǩùp`pÚh²”Œ7a KIÆþ°’^ëÜÙáå!Ù¾K˜ ŸÓ«)ÏRŠô6êKÝxMúƒçÂ?~ŽáÐàIèw™|ÅQˆä•~äÅ~{;åËšÿÝîÒE j'Ù‰Ù{·´lóe‹(vŠN$ö÷¨µðg‰úžê¬ê,£D�DMQ€¼ÿž'àü ÀŒÑŠê €O¢µ\Me è¸::ñ\&5ó£Í �àMsPxkäs¸üsP6…ŠC€““V6öÀ›ñ�Üàþìó³ÏÝ]¿°sæñõ.p�Ï<ýr åë§NèRl Mjí··Ó¾¬ñ²ßM Ÿ&ìÓNŒy ´±Ö õ²U²UG¶í 9!˜ô˜¯¾'\#\SXÓÖÙÖ9� P÷¼HdÄ£A6¢h#sap¶©[þ ³1î1îÎGcå±iº@†7T‹@lefá –ÓkV¡£Z`Bèò \nrC>ûŽbƒbƒn–n–ÐÒúøÞ`•°Jb7²õŸ«½Dz1À‡£4¨IÛ §•jVÓ«JB]ìø�eys¤‹#`³Ö›Ï›¯²CzšÃw½ãWS8¦/¥‰­‰=ÈŠèPnèLèÌDŽjöl×lWwÝNv]»iΠ¾V6V6à~ÿúÞ­vçêLÏ\�¥ 6na®N³ýfˆ{ûõ=fÜkb…m”X4ŽºÃ9.[Rm‘™Æ•ZöW�…øµ£ió½’t2"8#zÙ�íßm˜êl�[MmÎæ³=˙«¹Â9Ù4Nt]tc›a¼§YzÝWÖÚ‹lÈö¿lg¢Üʨ)O=¡K~=<Ö5a‚YCTAÓq—·UàÝ3ËŽ’®ž¿dû½ÚvEzLÕ†ÎfšK+âÊO¹ ´u˜sðkäN¿\sQœÊ ŽV·E¶ß«õ´¸h­j‡é9”Ñ|ÌÎ kB!§º5vÚùàkFH¹¼Àê-T•ÅÜÓb� ÙþÝÓã}©6G�ï�tÖyÃâÖo¢ñÈ(O0pÕvÝ)*°¹’¸2$k\ŠlÈö»µçD^–G.=Nœ¤�¢ðPxêÙÅGHù;}ïGMW ¶ªZó±Žy4¸�E©ÿ.­ °#â,†î¤~¬—†°X`+vW`¿YLú—5AC»]Ï‹•G´<»W:ÍéÛ»´4¯S­Se5jn98CÉIŒ?}�ìÙ3’@\[\[åeþà ؀%€“ùôiYV@¢Ç!"8”Эa�¯èU‚«n·š“P0'AX¤!á Ũ&8QÊf]v<@àZàšÎu[ ÈÐvÏlÏì"Ê"Ê ­ ã{ ­ ­û{wMÕú?pÜ!c‘y–13ˉB2&SÈdu§I9 E%j¹»ªOK¬ëª[ /[>Øþ½f[cuÈã;±Â¬å8/›Ý¢ˆÞ�%ÆKE€¶“§rióºÄ¢b&ßús°ý\mµ±36JÌ9=çÉa~Ö‰|[i‚)ÖËõü¦æœdÔ—ÃÄQ�Ÿg FÛÏßÐYMÙ-/x.Ä”TË_’°› ü;Ïcˆ¼$¸HK¢·tæ­Ðô+Öb·iÄ{*_Ó•ŠÅ7LFÒëi‹–ÁÝS!>›'™~k=q³>ùrô:_Y+¤’\=÷=_P½¢>xÝkn6ä/ï©x¿~OUÞ/6VúëN䱆+ÝS%ºææÀ~�ñ"ˆZìöºž WzÜ?Ž÷Xw7ÍTŒåÊÕBÆ~‹/ÉÖÊÖê•Ó–ÓŠ¸��c8_œUZ+œ‡‹Âl0‡:š¹àZÄðñ5™Îp¸ ÁùŸñ…c°ƒ‰¤ +È E™¤�N;}‰ÐJÝJÝ=jÇ G•I{‘ö"YY�’÷Åok‹k‹ã{×1ÿ}%bÒ¥YX"~¥1ÎèX˜]{ˆ€±ö¥ÐÏ:_ò×È}”¸gŽ×ÙÚI�»Õ«ø#.+_VNªt¬ttÛF„Û •¢•r÷nñC׳®g3åöªÞ/#�Ó¥N¢N_O�D°õDºâ}Þûú‚É|0N�C/Ã7ϲ†ßS!®í¯}‡l¿OË%�šÑ­ÏJf==9µùæ$í‹áÞFèÝóZ"šÄnýREÒ/+Áök6¡hOõ�*[ŠRG¦0•T�¨¡k£g_•+âe§k9&=O•µZº>�Ú¶ß§ ¶Ùz`Þ&‡º� ¾!t"Ý3X½.cHõqCEIôD¬X‘M·Ð|­1ØÀö³µ ¥QJþùÏ%-y›ÓŽd˜ ÕC/ÛâOmXv"my ¨â8 ¼GY¤: 6°}«©N÷ä£hìܵÇ-Ó3ð�rc»2ÙžÔÀ(¬{& ñæ2¶“µh‹;Ý`û5úvúSß÷¸÷J7�EÊú×{6ݧùåI91ìsþ‚[xM߇” °�íï6¼W¦Ä˜ÔLgŠÖß„3…>…¾Ä¼¼š?Ì®g=ƒ÷'Ïͱøå,°ý\-çD´¦zœiãinN")«™H5�ˆÂ¬9¢öyÑ�AWŠdÇ´uJ°ý\ÍÔ˜¢T`UZ׬ä�Ê5|tõ‘ä�¤ŽØ[N¾;Û“ìtd(ePÌ;†/†ÀöÏ´J|b<§å#”&øÖ$·mvpǽz™nÖm1{AQe1ôv­_HƒM 8.»÷#ɇ‚U¶€pI£Ü˜÷xP&Äù~ŽÑaü§Ý'uÑ•�Ý]†<>h¾ŸòéI“ý Ið? Â}²—ëpŒ’úXpKõ£Í£Í¦o- ré”9Ä�¿q,âr⑨#Q¾³29ÕxÀ¼0€el3üü2 ÐæýÌ yôp’b]Ê]Ê*&\�߈^‡ƒv (ÂÕjÅ7ÁduFçêép×p×\ÝÊ+Ê+WŸešÁÅɾx# Ž.Ž^0FûmaOžøÐ­Ôßú„G¤ö$+f±ýþ}LGIÃÛQ¡­&$–Ï4( ô¼øP(±Ï›ÞÕ�¢°Á]Ä]t�¾|®|îC¢�Æçç^OËÁSR§¤ž„î%º½_h@Z%Þ'ÞqïjçYzÁÚõkFLÇ»òv'ðÚ»B|/^ÁõOaÿ¡nûÇCFä;öcR|+´È=ü|rÏÓ¥—[ª1ÿò< à×÷®øñß>§Ô9Ø*Ö­Ü�wÐÚNýtM¿ß~þÍÒµˆÊ ö꣆ƒÆó¤À]´^/[/Ss ¢/QoLw£®ýÒ¡�CmÓJ„J„îC\#WÀì@bÚ<ú @Èñæj²¼7Ü""zÅf¡þÂ\mõçÃÜ0‹)>Àx\É!!{rF`ŸmŸÝÄ R R íK!€«�úLúLê|Ðù0˜oNôm&+&+œÁÒn߇Mç å(†áy_P­æ“Å¢-gH¤#4øzþj^1 aºÞ¤Þ$†„òTFÌFê�ÀQÂQº@XE]E­‡‚hkfmf�ü¬CãË–—-$Š{áSíçÙè ¶CµCýÿ³ÖþzµË´4ºi8~ge“½oë ½+ĵýOœ«6°­×Û¥bÅ¥¤D:¦Mrýz:p],‹äñ`H6#ÒÙ«a…õ´ÆÃùhøÉ`ûùÛ{é:üÅ,<†-ç­Ð'ÂD™ìü´ "i‚oµÚ ©ÉÞr7vò†tt€ l·� E'øàI0¤ä„14ã±xógh®>Gr‘º×ê>|£&Ç?‹l`ûšš8¾y»Ëä©a×\}Édz"5+è8ìÁÓ»D’ªð2׿tˆìÁ¶Ÿ­a?%W}‰/I�·´øBÌ&ܘÊ-†.ÌWýæûé±G8¥…½gÆQt‚ l¿Bã®Ò’J=[�š§Súj¦ºeZ¬4v›\ï.'�*ŽùZ›€²:F;EgÒÿºùŠºÕ˜S^Ü¥Á-T§…x$8i_Dœ[ ˜:…nÕ i:CXœm¿ùî(|n…xžd§dY ¥·E†a2¦®³²‡“�ucÌŠ6^p�„–»"_�%qÑWž¹æþúÜê¤:�™Ua†8Ó­a{:C¡#Í­Ò€ÙDç~VªjºˆfÉöÒÔƒmNW�ÃÅtùÃåñz Òú`ž.lþ)†/aû`û¼3†b@1ø‹(OÕ¯Œ×1»ü€”>ãdòr8ƒì4Û4[—Žóòôº+ pW6òçá×ÛÁ¸R²!'LAïâßÅ»”¬»¬»þ´o7‡ó|�-Œ-¼¹Ù9X—òmöRöRÖ®’Kß‡Šš«w×PMcÒsky ûœB�ç­Eƒ9ñÏZ'“wÇMØ�BH¡�{þ†ðÄ£?b¡x¡X°è�øñøSˆ®TKÈHÈxJ7v4vôŒÝ‹im¿LQ€LS‰U‰|=µ‘ÃÖ“ÑÙÖ�—RÇýéëW”Xõpš[!®íŸé»å¿b«ÐblÀ¶ÜŽ&Gß²7ë2N =‚¬� Q(e‰Œ¿KcytT5)³¤lÿ^[x"ê‘b«º žÖH0‡Òvþ:�Щ¢ÙK<±ân$�ç^n‡ès-úÀöÏ´[ ޏöŒ†3´‰Hþ,šƒTè\^IŶ®%,¨ù°sÃ)ÖëÈØÀö³µ-ÍúU«Â¦õq³P$ÿ<²ò »|–y…~T2â9„JäÍé{‰½ÆÑJÜ•Z¸#¨ ·‘Âm³–<‹°Á¶³MG¾¡Ænâ½ÖŠ7~¥[uäpˆË Å�æDìá)ÒE!Oݵ7Ó«`Û¯ÐHgÏ‘ÖÈyÅ ëu”É.lÓT_óºJç¶C“t’R¿<ÉY\Ži[ » l`û§Zà­‡Ôþ¥AgÕ–hER�gOˆ"E¦jP>L8cÍ“r­­\Ïä#$¬{l`Ïá¸ðí-ßqŽubåØzy�Z‰3Ç8tB|œ'½TæÝ�8äÎÉÆë� lÿT»Ü˜)6Øk–UÒ¹e�R*U¡WØÎ›!;Mj¼hùB¯C—7�í�]´Ù°ý{MبÜG “.ݾæÍ¥ËkÇ-*�‘�¿‚¾Ò¼˜Kjýð¡'r·³Ø~Ÿ62|ÿŸÒÖëæw£s³6æÓŒ'Â{È:õY¦Ë±ìD4¥P–„Ò1~ÅF¨`Hö,�ùé’¾“Y{›¬uâÞh9׬§‡ÔñZ%/�+®Œ«|í�¦ºÆÀf?ÔÚð/~Ì÷’i„Ç“÷‡ãNŠ!Œ!¤‰%Ã�´av¹ÐVô%zz?E+E+(€"»È!¼ÜÅNzиY…¡ƒi[R ·4é·ã·3››æß~ îR­Ä¸([Bq˜÷â‘cyÁX¡€ë.×]üœŸ~ÙžD,p÷˜ÝÝŸ©?SG.>ümóhóh"X$ÎßW�®Oì¨} Óˆ7ˆ^'_`»½ê·ù–û33‚ײw¬ô-õ-£ÌºØ›*_¦üˆ´4¾ÅʼÊz'÷)Þžá>íí [ÇS”“sÙ`}ùž034MnbkCLTûç5c-Âàëì‹+¾æ�m©�n—E¦Ÿ²kˆiåãÍ&|À/º"LÃÎ.hëm‡j¿W»Ì±�ˆ/WýŒR'ÆHÈhüAv$Ã<…+Péažæp–”öõ^¯·Pí÷j ÛWúC­HW[¶´:tXy+Õ¡$ÎÞ�™CXÛÇŒ°Š¡ ª‡G]…ûPíïÓr»ç-W¡>vèÛ®Ügg5ƒãø£èÛ ÃdYÝ+¡Ù2µê’ܪ¹öF—PíŸ×Ê#àt©A*ý~DM“±|ÝAÉÆ˜ó;¼XîcùK*XJÑÎ>¨†j¿[ ŠÍK?ª˜o¡õdRF–r—‡£Ý� Ê %rŠ,¢W]ñb‰ýq�I4Tûõö]çˆ8Û@¤x³qÇÒ¿DÌù¥MäÙÎÕ³Çb‚šDbõ:udzD#öšíä~^3̱›­}�*2_ØN>† ìXõb]R8A8Až¾6»¹Úcí‘ÞíÅoå†ä†Ð¡•švpÈåz>àÈca_¸’{.Eò!£ö½¨ Žmˆm¨®_¶þãkÈ 3tò!{ BÕ›éùÞåccÜ\ÀI§“NôDì ñøúøúŒ [Áíú†C?�7ú¹Tú¿Õµ°=ùùô>S³ÅhÍ“Ä/Kоz‘F;X…jækæGh ÙêDÎA~Å£‹�.®g¯‰¯‰«g"M ¬¤¬Ä»H$ÃoËo+ë±S³ÿnÉwW\j]j‘ç–:÷Þ¾¯lt.Ý›ööãðg;àÜ2"øŽxTú‚‹®È½ qnóÝXÒ•ýý1Þ¨À®Hn|tÛL¼væ:ÿ›)Îûfèß™[ò~ny^Zgƒ‘ÈPê0kOsÔ²ˆô^{;ïóšè¦Ýâ<>° «ˆÜi�tо5Ô[­чb7ñ9rIR™äPƒÜ·ôJôJ|¥LMŠtÌÕ€—z€ªù"¹”n³ŸÂ<{3%¨æm}X}/WþšðfHöQ…è€AA:‚o¼'«&¯�À+Æ+†×`×h×(e§$:fOq„âˆS™SYÜ9Ú�ñ…ò…J¼ ÿ¹„sê’³#€æ·¶�lv¤øDõ“Õ´CE"_%÷ÃÓ2#‡¤ÉFÈF¼Ž˜Ë£}Pý+¢Å¢Ån/löoöŸfDã„Z@-(I¶””øFw"#Ú-u ±_‡ƒû ‚�ØOÏÌã=ÏÏ�ª½£ñ�UšIs¯¹%òÞ¦/§ék»Ç—ÄœåÛ² dÙ=WÙqÕPí¯Ð¶'ã‚fÅôßGT§kðX+’2y—)�Ÿê;Ø@$$yŽ\(³¤¬ Õ~ÿ¶DËLc”’†ý8ëDƒ1c lôñår¼2†×Œ¡D”h¡Á/xb»’XW Úÿ§ÍËÌÏwBÇ›½Ú7˜õ)Ò-žVÆA wJjõdLC挱¼¨ýD³ˆÍP Õ~Ô6ñ°º-]gÌ©žYRŸ²Ý×vÓ&ÎþwzÚߥ�‚­kÑ™S¹§Æs¼¼Ÿé)¡möù ”e$P&6Fl {O¨-Z>-¿×h™#ø8µ»¼¸MŸ$‡î×^õ´–Ú•š®CØ‚û¥n•‡Zº>Úuæ–cíhµM–²·\Ö¿süþ¨ÊjŸº”a³¢·á¸þ6k¯3Ð=àݬ» Œ4ð S˜Ú ~ T å|Ên & ^P­Uaš> §4?ü-¸?üp±äçÏ¢`Í£p€£ð¬TfÀ ½v%B8*Ù´ôÞÒÐÒ°W0+C³Ì4›5|”óDw ¡¾ØE{Ž$8àøY«8€|‰|Éãe£1hô¨a„aŽ ŽÍl8ë�‰U‹U?`mMù9Ý� ­©f@�/‚wµ=©f4«Ò7“«u<Ê_ Ó3œ}®ØJ(±-±­µwl=óИøW|šû4·þ:F2Frž™W¦åŒåLt„­¯¾¯Þ•j§Ú×»Y‡´¤ÄÄÀý”D†ØO5ÍNfC4¶i´2Ù­�gYÂö:!ïmœ iصÜF¡ŸSJ¤oö�ðëÿ;·‘+³4“}˜‚ î+7Y>º”ÖCƒ§‘%Ùm?æ³왽/²Õþš-”•Å ù>SŸ–u–‰Á¦rëͱbs�´FÞ?ÆŽ7ÛÄ8í�$VBµ^“xÔ|d¼/Ò ^Ä%ÅjhÚ*Gë/-Lû>`%ýT5†¢ÛÇ~6+TC5 µöÞk‘»PKãôÑ(†fH´/ÈWº™%ŒnMÕÎ,ól¼‘nišÿ8ú 6ª¡Úÿ¢É0kì_LÝh‘³$§™«Çeô›×ÏêDzÞ”>Ñ˹Ìêa5á�ˆaTû{·7}Ù$‹=Ä–qxº„dÛ¹¯mSàYŒ·„ŽCª ‰êdmçÉø)TŠQ Õþªmnô–»„‹ý„ƒ’€ÔÁ ’Ç5 hMƒÝRø·cT;>nBc¦ó®ÒA°P Õþ�6Õ»¼¾ 邃Ε[½P—íƒID›™0:m½ÌWagŽ:_#G»|ÕP hBó6kªË4ðÍx:žY4D¸8>*Fžõê2 µZ[;�ÚÒí´UäÙkÖ›ÿy �ÇnE˜oÌ‘A>í´:=ç̘è¨Âãì³`¥è X¯øÖHêHjœ¯H¯ˆ`cŒ¤ÐëðÒήU =Tüˆ°ª$Œ òfeIfIö ñäÍ‘eà]·«&™.M!TE&'×´Àþ¾þ¾ã³€èÖèÖ§†Ê“ R¶~h?4�'�§"îüÕã ã ó+ºË÷s9òû½ºŽŒ&LE?Ô:Î"t_e¨±¥P9ÊñÖ�Íë÷®,[¸2§<‰¹×óÅß_€££‚p²ªzlKlK¥3·ŸW­T­ÑìT´f€mÎ"Õ"ù:F“ÿ5“~¶x™S½O²¢Èâ÷ºŽQ7…>¯aLÜ­|òÖ"2½†�°O€Rö¿L)g3z3zÛOE>cQ;¦BâlÊõ­Ã™‡3³Â¨—O‰óD$%ý($žù@üO“‚| kÎL6J@JA؉ h X¹#ã ¦Îm·ƒec°4XZý,€'�'-²@Øt  SºS:Z>Z^ñ¨jè�++õÝPø95?F�[d«„(¶ €Ó]ÂÛLÐbÕ+]пJWg0”°p½l—i—a%ˆÅI)=ú+&NNœÔ\žü<ùn2ŽlI-I-My'Rf(3´ÿÆNšûw“‹``œŽ;÷ï÷¹ù-Ç#/O)s¥dJ§«è ÷^×1�÷v5; ?öŠ»èV^×e‡c^ŒjÖ¨ö÷ik"—�Ü5é³Îê`Š¿‘“ mÙvÁºaîDfÈ<’/ªÕ(ÀÆ>ˆj¨ög6M}g“*XGÉšzøàxº`¹Üz?ù�0¼xôaHtB.w¡õ[îÕ"TCµÿW;V"(m\$–§¾XÏœAZ>H —47ó”iõ_̰ÇÀ¹VÒÅêód_® ª¡Ú_µ “rß;M²@3ðj…Á€ì‰`’�…�eLºÁÃ�vê3\ÒõVicpâ+ÿíÖÓw®Éd¤Š‰÷ÂIñÚø^2h¦Ä$øÝöåÜÆYæT’7•ƒéYùüDSä�¾Ûªš^°þžàË ÿ;ßs‘ß;£¤ß�w»¢Ës¿ë›â?�߃ü¬4î}š…½Š…1w®×A *Ô¢ …ø4g:ˆƒ›æãj‘ï‘@~­yE´ >Œßøüò¤áó)äs¡É€Ý3Br‚ä“:ò}. Ê{� ?¯é�ÞÍB Z‰l+o§UÐíñÅ PÈè&ù&ù4¶O¡Fõ¥Œ0¿¥N§N×ms-öZ¬E1`: Óp.ŸÚ %ø,Ãtºcx@ÉÊçfÏÍö„â „~0­6�2ca”Î-þ1i›k83{f¶4ÐâÖâ&^ÈÅ¢H£¥ý ùA²)#ÿÇ*¼*¼ÎÙ}Jø9‹h™ŠQÀ\&‚ƒE’Í)2ß‘ŽO´\n,8 _™{Ó ~U8Î’Â’ÂÌ:F71ú+Þͼ›1#ç1à1(‹GÆö¬Ð¶ÐVÚ~›.Å:Åz˜v§ÂøÝx ²E~E~È3u4XD’î€×2îƒ|¬{Í<�ÿrÏ.:ª/D˧ cžä“ÆXç´ÏqN°ÄïF—¬Ù° Ü9óøò.p�ïÏ<Ú<Ùn§êS¨ÈTY{ /0¡ïµ·ï^Ó�¼½î}8²¡��ÄÛA3ÉV/@ó.&=&=§fKúd½l™˜ü–œŠœŠîJ<]<]w<ò¤£@YˆÜ÷ôŽÜ@½�<‚ò†PÇ{6 ‹÷¼7—(lÓjbñȅÍ#P©Ú¿%åhpXÚXÚ«ø;ø;¢I±“@ÙBbìbì�)ÈT0dèÇr,r,J“Çò~n]Ó´*ü@u«S¢¤+5BæÁ#1ëfËÁœ[_iŽÞÞìlè2 2}”rl9è�ó¯(Z/Z§‡b`P´ ›5„CáÐüE%1ww)Ñ�¦ßíf†À¾³f½f î'±/ÏÝê¼òøŽGžÀò{�w·ù^3ä½ýgÝÇl³?@´¸ƒ —ÖIw4ÇyKª#âÎYŽêÓö~œ!¾�˜ZÐ’—�ˆtDlQ ÕþÓ†£yØnfsÎ0ò4FPw•k¦ùuÐ øð>†÷ýÏ¥7|dÏ ªý™M'Òµ‚†êä£C·…^ŽNö¼7Á©#)¹NÛ•}¬]`â©UWYº€Çß2Tû½ÚvUZt&õC÷sZ‡U1åÃ!-mæÂá:9•VÁugEXfp”ò»‹¨ö{µþ6çÓkZazŽ´ÓY÷šÑ(©"'U®à¿d¯‘Þí]g"2Ž';µé€fý]Aö4�¦MÓžæoÃÅzÝC¾ô­êê` ùrùòä*€ß6àD/€å0w,.-€h¿ãÚ;G�ãê:ǿػóhªÖÿ�ã×ÔE™§dHd*ÊB¡Ì™E2CÆ2V’!”��âÈ�1ÃId̘!c2Ïs†\…¿öïÜ}ã4h­û]÷VwŸ×ïµöÏZgíÏóì½ßs%çfÑ=T ’!�¸£í)ÉéšÃ¢)lðlðÐ DDúú3³A6òC¡C¡aSaS¢lê¾_×ÌÒÌbòŽûmN¹ö'­â|@Lêö£¢C«¦N÷Â9ž§bLóÉu|ƒ@e�~‘~ÑHÇn-Q_I÷œ¸5ÿnéÝRR!¦·ï™ß0¿¹ÚÕâ0©0iûl3š÷[5™èÙä�å�1çŒJ”“±Ægóß6ÇS@m7gÄœ›/Ì=¯ä�cÌÊì°ß):¨j�‚…Ž*5{;¯R$˜7�¸Að…9ã‘/Ï�ÆM\¬à|W,ì}>TϺhm·¶³?^Óv{+ë¾—05joæc¢kä= Jq.+ÓGD3n䯠 ôB?ç«ì«ÜÓͱÁ±¡À»* Èõ—vnekÜM“vGc•ûôº²^-;;$ׇx‰B Ê6}�ñ¹¨x4quÝs¨~› Sõ}ÀÍÚ›µ$‹íj µ£#FGÑ>¢=Ÿ0<ôuC/‡^öøPïù¶òäß�¸ÂÃhIOªK¡-³•ʽèyø »©ÔåÇ4€¹œa±a1e=¤Äýï!* *0ÛõøÀã£Ô˜d—CC¤n’4ðóÏ/nö&k«ÙZ@$3Û}¶¿Î ºüy¶Ê¶ˆì­EA7Eù‡œ;“·›3b®íÿõÙYO®v‘•4¿#ƒ.H†èËœlùYØ—±ØãtuP0 ¾àäÖµ‚Ô€6%çq¶ÐOR­T«ù¦¹¸MO¢é¬g0?×#¨ý{Í¡Ôá’)pp~¿žë”BZ­a0þËü äÄaë™ê§Wì�ͨ<Xê…Ú�Õª£#%ܓҟý.È9ðÈAŽüà›7‚pË´:Œša’¸ûN°ßƇÚ�ßð9áÜÖ'}§£òJ”N˵Ûô 0 ÿ�óØ9äbcäŠÌÔFsRˆ Op¢Ì=‡1ï©xnÀç gfÙMå–#f¬oowO…y6)F&Éi)n¥"^óÞ’@A¬ˆN;ãà^�� •s‚áå,¯qa~OÅÿå{ª©ìÅ[g"âÃ%Ù-«ìQHßîž*çã5w)¶:º´6‚Irçfçß�´ q€�nïo½¿Å—­_ëé0Û“eϼÿss¼s¼Þëz½z½9cã<~o@m1ÿ%Õ±Ä �Cœ?a‚Ê"ˆÐ/Ê0Ê©IH([S9 ÂÅ›;bó¢˜BCÈÂðÏ«ø¦ù¦%i?þÄ‹œž�ª›b c ŢŢawù.~�ǤÇdämÔò·Ñá6‰ öÒðÑÞ�t×Ù`£-o¼n× µV#û¤Æ�ÂXä) \5ýYú3sñÙI ®ï‘§ž§þ®)˜7˜7Ñ“êªWƒWƒ3¾Šu·r³æˆ­txGBùœùœÁõL‰^O4óþ'üí§Í§n“”º´²šmwO…¹¶¿ôB¨ý:-ƒaÁ²4,“Ú+~xheö0óHgë{Süˆæ)=1]*Ï—²¹r#®EPû9›È=_íõbú|Wö0õR\ïÈÛn鉧*¤iIz®ÈÞ„SÝçç쇚 öë´WõÞ„—èž/ˆLò½-�_žÜ!ƒëCUY˜wo Z"×®YdªÌ jPûÑÚ-åüHÕÀG½2ÖüÕ3‰DÉp‘ „¦Ùвu#Öª_»‰»Ð"Î ÃïPƒÚךÆpË#�õ«Î» ŒŒ#=¹ô�•l¢†RAU^û ¸ë”áͬ»4Cíçl økI57wùä¯ì¹«XFå[}�Y¼ëC¤ïî�N—¨'=ÃKÛÞ?(„Ôþn#�€S2²Kå.͆³ßéGŒj.Äߟ¼Índ3JšÂw1Bâþ›ÒPû±ZúÁ{¦„Ú1𪣇PÊž½«%‘“:IÙ0e,úÊ#€>Û5qi·9Ô~¬7£ÏZÀ•3´È{§nK†¯ÝŠ|íävc}m�›…§AxÙd¤jÿL+"£"u{CA´ÛœÌ†ú’Ýú®~¿Vö‹å«ûý¸ F6#2ÆB(¨ ¡bbˆ[?P¿ÏZà —1͈Z$E°cÎ÷_ÝQ¼%G~F=qFtg4^ôvóýÜ�×hrlµ²wÀ4FºÙ€4è†ÎŽRÐ䞞ȞH³«©‡•îíDÏ�·ÊØÈØPâˆòŠòJS8Này�ƒ€Õ6)d@»¬Šæã8� J™" ! 9jf€$(¥u$Ξ•©°�¡ERœ]er¦Bœj�j“ä°`Xð}‹jÐ(\$E$�뤥ÿ:G˜# hïømˆBBG‰ÿ7ƒÆÏß"6�‰†÷þŒ1*uȾ÷“³ìZ«60@]×kÜ׸µ]GX�–¯ù×Û®·Ý&@ Å1%ž´å²åZ蔪OçOçTßL ¹Õ°àÂbÔPÔæÞÕzORÖ[{[Sö}M™ÊdÛí]a>¯ì‘"ØÑìü¤Ã”nݹOGV`ž»EPàÔro’Ü›ÚÂð/œþòÞ•àï¯ÚôùL�ù±ŠÆÛøo·¶Q¯áÄÞêb.¥&{áÍÆö‚Ôû+˜@†wP¤(Ò_WÏwSS½»«É>§‚¥‚µ–d‰²DÑ1ÚêäΫ€ ™D|“¿¥²<´êŒœ} (ähÈhˆÞð-� ¶Ü‹ ™ôRQ�îaM´"IñÅ9gr|€úõ'£™€jÁjÁJi5[ÐÞ„›¸!Ü�ù¹Û×00 j‡¾Í«œm2 °ðZ çôèëJ4&ÅUXµÌe%§OÎ?Ñ7�ãn§ÝG»�œÿŠ’=Cf÷÷°´täÄýøc~‚©ùÚ´á´¡þÑ4¬4,Û„ÍZ· ÀØ߇؇øë]k>w¼—³ ž¯«óþúü wÛêv{W˜kûŸx¯Ô ´Vÿ+�°ó¼ªª4}g¨/\+^’H¥~ò*4� KúlXN³Yç#<²x¨ýømQ.‹…l&•”uÕýVâ™(åCnAæX±Dá?ôrißývÍÌÍöâÔ öw›Y¿È½ØÒÜ�c¬Iäéa¬ÏI9¼©“uz±®ÈúÔ]ë¼PšnN–J5¨ý MK’̲áÊà‘N�®]çäe.ðЉ•Îã“pßÞ <‰,&}øvÒ€ÒÙjPûÑq �Æ™ =éÜ̈„]¸ƒgKØ ü‹‹Ã}�IòsZ¥ú³)w“7B j?C;T¬'› ]�›i�?1ZR;€@©ö]¢3ºz€\ƒÄòm½�š6A 7}#òÝnˆ{–ZîVÜ`Ú•£Í ó5Žu;£ˆ9·j‡»ÝY-ï Ôu‡q¸Í8Pl7·Â|Ÿd£LAðn«d“xBCw5o7G›ª¨ù3¤·[Žé]SȲ¦Êý™ëC_ž[UŒ*WJÓr/ˆh® bºä¶›[=þxÍHÏV|éF¯1oVš ÂÎ=Ï 9p @ÌbŒYçiž5¢FÃêsÙúÙú‰‚$ô•ž)îè*¼Æo oÈ䯥�¡½²Tóifè—ê—¶Ô¹û4�$æÑ4©œ%�8´ hdºûPïEœ„�„�íÀ¼R%ë„+è.ëeÖË3Œ3Œvxú�_×ÂÛ«Ã*ÿÛøkž±Á­Ukh§˜åòâш8;&Žª„”dz~¢˜öÈH^�ù Ò£ÒCG8ìxAv¹Ö÷ðñQÂ2“5“µåÇäíÜÖÓÖ³‹†—Ô–Ôv±êÞVi€×U•®•®àzª§ûó¹hJéºå1Ù}�{+æU9�vm7·Â\Û?ÒwËÆV¨ÇV-Dl½-J‡¿êlÑdöà¶rL9Ÿãîý«LÖ;»5±æåCíßkÓÏĽ8hLk'V‘OâÔŸ°'a9’;ÞnM*�jÆòîõóü�E8ê jÿLsšŽpÝåÌf2Êw‹:%wRVh 9+ÞMlSF‘Uú~ý¬h?¢v¨AíGk«º çsª—úå-î`fÒ>Í´¤e྿ÆM9À€Ewh”å…îîAMO¡öë4â§ãûç÷vËDôÂÄf�úĵšÝS=D_ôB�~Wnå%¬p‡Ô9ß\b¨AíßlÃwg‰«ùmëHûõ›5º~½rAL%ôyqç(‡,ÍŒ�ˆ¯áÛvOøY¨Aígh4ãÇiJOyï$ mu•OË©×Õ~ëw–Ås� yx÷¹§HwÉSìkB·‰  µª;e3æ‡HkÍ1‹%ìK Ǻ› ³;;Vʆï�mýS#ó°°æWPƒÐø~� _ëÒ»ÑÏÁ³D¥]¡ä]vLj�Ah€û ŸúÔ5"—ŒI…(”Ô öO5ͪ‡¯Z-RóW�qPwd �rø“†iÌf¬GŒ^òÇr½s¼gAµ¯‰š>u$jdIr.�=knm»Ïª«Šˆj1¡«˜Ac“�í‹Ýìn µ_§uu^¿  ºúúù»îÉq;Ëa¶ƒá-´�ç8\† Âw8ŠéÊâÌ‘‹¶'üŒ�šMÙ„:¬'xÍÖ97‹†z›&̽Q ½)Åp�hî<�Ô9ò{·ÛÍûxMÓ“­.ˆÆ´óÐfˆrP°½1ÈD&²'²çÉÈŠ(ϯ×TZšðs2J2J¬ª"Ž"Žíº€†i80«(f°cðóh!v eÜr'Yˆú¸ù¸õÚi¹ô¥Áé<¼¾ JÒG¢éÆåT4a Š ŠÏȓ˓wYð±‚ò|“ž'=îôÜIÝf?É×¥§G'kË|ÛS¯ÈáK€¤H4!D‹˜±Ú;U¾Â'#󟸆xáì ¬Y¬Yr¤ttéGü¿GEhEho«­¿­¿ãiL¯¯HóIó1ÚÀ$ÌGÌGµ7«ïÜjv@¬.xRð$澿wU¤™èé«ý­brEË�É·Û÷Çü®c/g;«Ãõ�5²"^K—ᜅÍ×µãÿè5:ﱃ‡Ei°ùy•Cè}¾/ïûT_ýÃØSqƒî7²wâ5G¶[ÛO€o¡íØÊQDRÓÁîÍž¦�š$Ôn�\ø¨”¨”ô�ÝŒIW«Oæ×7ùœs‡sG@Ay¹•€fbt'§ð˜n†û  ¢»Œ�ØÞâ¯ß)SÊ#”G®p:âJÑn€,w΀¤c­ÐT eظÖξ¼!{C&á(.6iôZýÎÓÍÓMvžìüÅ*ÿ�_WcUc%9¸Òþm//žÚXMDÀÐr¬Êˆ:hÑ(Ö½ü¢ä‚$lW>‰Õö†�5ÄX™X™üC8I&â[¾GJAJAúx"Q"Qù&üÂè¸è8Ó¸±Æ2—2±±ÍŽjo•¼`“˜–˜×S)ñŸÏ«´ùŸò_µÝxya\Êu»}̵ý#ý7üÊM®lÚ¸·[ŒÑ�úÕŽ“ăâÔó¼Åg( _cS8*ÑsÓñìµë//†Ú¯¡ÌÕªJpVÍ”õ¯ íh2јn3¼©¡pÅɤ™ÌÒ£� ¡óX¾ƒ±jPûZã0ÜŸ¸‚Ý•„þâä�„y#›Ò\Cö£ÏÏžèËÏ:3¾ÑD[ –TçFµ_»ù„¾¶»¦c 9OÞb裘ð°œî8êd��aɲü©­ÉõˆN²˜úD¨ý÷š…dN‚/¬è~�bNÀÍÇ ‹¼}(÷�ãÜ,�.œ±L;–ðe峨AíGkÓ”\êýûhþ�½ûާ²ÿ8nf%³ÌÌ’(Û1sŒ({d%#{E¤ÛÈH’u»ë ¡ E‘½÷J"㛌Œìòëzœ®;N¤Çãûû~ïîû>žÿ½®ÿ>Îç}�ës½²Å0jõi` Lx§sŽƒ¯á„ Ú‹ZÊU`ÂÄÓù£ùXÞE�M<Ô;;„xÈÄ©¸á#Os oß^³‰ù@) ^æ[º…•w¥ó×¢ñ˜ûú�Îí?¹ÆæëJ »Úãë€ ³#Òß|Dw½NJG1}{‡Ù„Àγ “LéÉìB#¬—)+ƒÕMâ{Í&ò¿\3”»]J•ÙkTR[Ùá‚J3ë“AáÅYÅYŽ…ËŸC ;‡Ú~® ×nžaqbqŠ™¼Kä—œHX‹ç›Ô5Æ>Pé"U ”:‚Žç��eÞæ�§šá¾ :ßÒ3 òìfbEº‘‰LTç# _"_Ú40¨1¨•,0„ƒô$â%â <.3]!Ü]PEP…î3ûŒsWþ¬®¨7DØÜÀuîBêè[Ë ö–”‡S8¬sU`@êÁÈøÇ@Öq­õ×Å?ÃÞÏÞv‹?Ž?nì*3?;?»IÅæŒõŒõ²ì[=/Ø.‰ ;NïBÿç9ðÁ_ÏÒÀϘ’>fM¨eIZ»x:™Ç�~FGƒ÷Ú¡®í}Öñ¸¥\Ùƒ|Ÿ¯TÇeIÝ…KßDü“ÛÀ’• IüE|lˆˆuð³LÅj«ŒâËñ�´ê)Ї¡ó�ž�ñC²ÐíïÙ~g;z!ö !3\S˜&åâ…uEDãÝ¡fg=â«y~ªµ w" !QîC·_“(î<2 1Y{~R4”M߸QŽÎWJ„îý­%¦jÑA,ùkˈ}ǭР݀Öìו^/g]Jë´lNÛ'ð‘ª=L¿¢lo’di ó2Þws ÝÐí¿ÑdXÔ‰æ|ª—³¤¤ýP‰ÇtsV/�c%².%Ýub‘9Ru†¸ˆ˜Ö�nÿìÖ ßÿ˜t¾“Ä2‚@‡˜b3õÝ£·vqk)L÷……Ø Ù£Õ(š-(*½@7tû»¶ƒ÷Ý%\Þ9*JR="-+©Â¨éé�$|®Üº¼Î>ñ´û:=;º¡Û£Ñ=ðέ|cí¨í|Ÿ³‹Ïu“*&ïÀzÒ=£Öù¤7Áº¼‡-Jäè­Ñ Ý€&ÌÖ €|÷�Ö’€¢ƒr"H+AMã üTà`¨žº7÷NÁ%A=gMï€èZ* H5ùgW¸bÄoÈ4É4EqóqóCXÚÅ ÃöðDxâ±Ácƒ¾bõ3»“w�wÈ\™û±suÑëGo¤î! Pѳ#�ð½†ìbÈzݾ)@Ìù<“¤I“³’³F†_´ùCÆö3¬$­$•$¡’ИïÜÓŠjˆjè„úb›c›ß<ºU;Ëv¼³AyRÒ?ßçþõ»\œŸ˜x¸_2³@ãÚÜÄ–¸öº��º¶‹8Ž à.¹‹mä´_etäõbR±A·N[¹ zõHòE¸MJ+ó½Swb¦$èê7]qî˜9Qè³ <S ­<ÎуnèöW6 =—‹…S­Yï0ÔþèN€äÊ­"(Ƀ "1û/²‡E¥reØŒìçúøÝÐíÕx³ R†ÏÅÓÔæ+Y‘åö�­AÍ̆UÙEÁ—$1 ~¶�úºo;‘ãT”6úÛ³ Iº&d·Ï¶ÊÆÖöÀïïÿºÇ"Üás.êû`'ÎGv¤=Ìk7À&rë}ñê÷{PÏjÁÐoÇ×Èè’ÏO¼]Î÷,O%4C˜_c²í,I`­ãlD)ê3¨çÐZQæ…AôŽO Z,Žê7�£î å Úò!©*Ú‡³7|¥ºöÚ–gݾÜÎðùºª3[…N‚l,ˆA">гг«ÓlzE‡Ù«…Þ ëÏ4Ù4ùà‚q›qÛo-€<êvéƒÆ“(Å)Å5”4” ‚ä[wçlïl_t«åÇTó¢Ÿéx¿FÂ6~?�äÏP�ê:¦�•xÿ›µxòƒôZ¬¢ò¢ò̼…ótmž?£Ì£ÌckÙiÙiÄ Õ@ÇÙY¯Rkþåü˪¤[yÕl—] ð’‹‹F�y¨aLÁbtº½ñ²/Ìð³í5ó@ý{H5š¿¢6v&a?öi~)¬U�‡'.Q–C=„˜Ð’Oö~[g_ß.¸óÌCyµ)!j¾¡¢ÍÍŸõyìßöZÛe_®é½¾Ýºu *z‹­dH@°*›MP8¢;º;Úÿó=ÿ™Ä �G�9¾×`Ñ`!ÙUU'™ 8]3è�4¾‘ô¬O´&\BJ{¦Ô²~ÆàŒ�Ï‹.^ц#J ðR P�'O’¬œn1–r+#¤,4á4á„З´�b‡¡¥ÐR k ëçaÏwwÄõˆkÑ•CŠ?Œ÷ŒR ˜9�‹Xž$ÕEêš-!‹‘[áûÇÆÃ§SÀ�@´ Z`kxtäD\?# ' g”JÎVÎV1•[ù‘ò#½äÏîÀba±6Ë[1Çm§” à‘ñ_÷ÿóY_ñ¯çnµ9—%z¤.¾gçæê0Ûkæ�º¶ÿªç˜m‰n‰½h¥Æ£sÒ|â²!Ù K4â,:çpóD�O¶&ß+èUƒÚ¢vè†nÿiÛ§Æžßbbkªÿ”½îÉÔþòë''kÇhõã3¾7G4I}º!kdØ�nèöW6í·Â‡x|q•óVø{~ÿ¤üË5¹QÛñ6ÊBP™A·rôõ®¼bIÿ{wMÕ·pü"I!ó,¡�L.’©„2%dê//Ë2dˆLW eJÈ”]‘Š„H†dΜDÉØë¼û;/®Jk½·~¿ê�óùï»Ö¶ü±×ºkï}†Ë*Ë*ô2D1e$ÛÕSÕ×c?Æ~,m[!²i˜ r¢<®ðZ“.j˜^@aå>³LÉ™‹‹ŸœÅ#?]ßêšðKÈ©¥˜ c-9l 4£c~èÈêȲs”%•% �ø£AV¢ÓãÓãLp&xÐQìûúÓúÓråSþXÍeµ€—ªX½%Ô:¶ XlÇÆ•kG/}Åï–s£Å ðœ>� �€ãb¸·¾ŸÓÏ`tct“   ØÄ‡+ÿ˜y¼y¼p«.c0E0…œõjž‹kÕ½ÜB6 ®{F|äÍh²©È©ÒY¸åfåTÄFûŒ¸ûæ3SO ¦°æçµ;n—ìÓ°*Æ‹:ÖìïºH�fÙÌ/·åûŒbßÞg”„ëL°Û¦Øsò+ëÙ”0o4·|£“¸–Øž4\dÑ«ù��³Sˆ@J‡ÌÌNNl^ø¬“o|Ç3Ö`=ccÖ%ðaÀw7kÞæsR\æ2ëºà£M $f´{´ÛD÷}³`Ò•� M›]”A¹‘XD!ã$OUºJ0õ/Ònh7ôéÎrV�}¥¾Œ¾LºKºKç‘ú÷•'—'ë¿@ìÿ1ñ¡Ç‡'¦=Xq×§ÒõÏ`©uÁ„ Ðç3¾:çÀQ@êðh—S‘SñÒ¹¦ç§»ÍýgH H ´vÎqÏqK-ખϫ݂ͫœªÏ¨ÏHÑZm¾ï[@¸d©c©#8ŸÜþº·Ê¾‚rÖªvKuõRáRïöÌ�öqçöÿúÞYß½m ·Œ‚ÄúÜRY®žãÑæ,ÍÇ?ã‚t¶S³‰>ãÚ¢_:ú4Ô ´±ý#µu´J¨öC^&LÔ²¹ôâˆJê³’/ Ž­¤Ë÷¸+º½KBm3ÔþÿZfÿ« 9èB3súØ)÷¸ x3=d�4#ê´Þ5W¶êË4�ò�Þ{jÿ\CaÐny"ÓÜúîcÊ·êŒ#‰^l•f¡"�YÉÓ:¾à(7©ž%2× µ_«ÍÔ6^M�ñÌÈy°M4Œ§÷6J‰Jà†Ý»Q¤5?ƒ뉘ƒ„»sEAí×oDE>å[‘ü „6—7•7%Æc2ls¾¯ ½ =Gªçô�i!DTá±XžùѰlÏlÕz¿!þâÌWQãê$éð¦æ¦fæ… ¡µÝ§m~†«µ«µj°„;�K&qÚ}Ú)ØÖoœlœlg¶ZùZ(À¢gg8Ÿ"i°ó‰~:øp°ã„åXÆ­e—ÅFk*ܹý­ïBíÏi¹th+ö¹±H…ìnixÿÂ[8Û`G˼9Q\󘾞ÔIZߊEJƒîPû=›Db îJ%Š©Ô�+F CèŸÐnß%?rO�âV†¾{jwšj—í”ã@ZÔþœöò)ÊŸø,#ÚW€ÕYB #0êQuf»aíÃò’ÄÞ«2EÍcUPƒÚ¯ÖÂÕJ4Ânw+Ø?šL'ÉDJÔ O (û?Ù4ƒڴÉ<Å?L²lƒÔ¾×´žß&Ð[ñq%/C˜†%øî5èkH}È)i,Q{ž»l/\¯jóäŠ[3Ô~ÏÆB´œñ8ô#y@éÂŽxå°*ÚÀGؤ;—™{;Ü®Vñ�Å´Îß(‡ÔþÛF1‚¤%få’-š{Ëuù•4ú ñ‰™ë×F£„cvC7…ÎÄÉ\{‡Ù µ_«å$šë&!kìã§Q´Š×�+Ì¥i3•Ž~锃ïž>Çl µ_«!-˜JÅg•Œ­J>hÙSév^�N}vÕÅ#te¹�—��  M|Îl°jO« ¤¥ðxG·%‚Ù’ÒŽî¬Ã yOP ×™êEî 4¡òÄg»ASñb¨‰'%‘¶,ÑÍçÏì�ˆU0Ͻò‘Í…»¿Ì/äõyF¦ôh—�b+ÝFûû5_ÆøÚ¬¥1Øþ×ÂÅÕΔ€ÆÞqƒ˜iñáøpµ‡— Ä?™ì¥#·��™ 7#†£n :Ñ¥ (˜o«úØæ@~.àÆšñ†£@^íí9�ÑJ—cX½@Ñ" @ꂜ±L« ¤ŠOÌëÌëxè€?sjI)äsª*®*xÛò•IÉ÷•Ú–Ú²šùŽýX¶tWXË"À´kZôÙ›P<¬©Ž[�ÇŸYpص92–?£ PE�)Á”XÁnÎD'mû¬M¬M}t�$�$¦!¸‚ÜìZìZV ]Ro:Þt¤o[ÍÜ~-ÆÀL!p0�{vµò*#ÖÑÞœkwSÞç^5Ê�ήpŸ‹Wó¾)ÖÞìz·ÝœqÅõµž¢È4þsQÕOÝJïêîÇ~ã~Àýß>»êå]©·#U[h.Ô£×*Ùhn?ü2†£~-Lj,\�%«U%€îÔdvƒò­RðRðÎìwºs<ñCkÞöÜüõ””/0d6dF¿x/ÔÆì³¥BbÎn€ê<9m¬ ñ+ÿ¹`£||bKdHÖyP˜ýR9h|'{9VåŠß„�;1àÚȵs.œΰØI<ºà~G쎘»ûY#_çï³ç´ç<7t öc9/˜ŒßbQ‘æSlÁz=ã�-™Ë† þÊlëü!cK¾ó!çC]§¦åw Dÿ §sNçxù³²ª×]6¹Ü¹Ü£ÎƒZ˜­˜­ó¨Õ‚—×NïUþ|×Ú_Ïsð4!Ka×V¦x[7:»Â�ÛÇ{5 5 µ{5âÙ jhп6¤sö»?9'“Mw÷eô-N˜ü©˜Â6‹ŽÛ›)¯Cí×o•òÙ)'³)v-z†×£HÒdñв%K¥ï¯ßPÈÊða“Ÿ…G0Þ³gPƒÚÛ,z$“C(Š.ÉíʠʉÙõ„b�?­hæÉ™n˜—b@½_‡3&Ç’2›jPûšÎAJë¯>±ïNr“# Î| )Ì4oÔÀg•ÔJЬÙQ#Ww¨AíWk¤�µßP*0QLMÊ8ÄZ°ø^a� Õ#:óqàõ²ÒÂÙžfªF¨Aíwhû*õÓäkóŒJG†î×õ¢‹5^ŸeDøðSi“YÏ>×ÔÝ’ÄËÔ˜ú¿n¡Ò¾k棟w’ê²áš&{ÅÝ·jCz\^¬n§9鉷ÇcE½Ñ¾îû$Ê"™ƒOgš]'6öÔô÷p²«½2mHõ\NßO]$߆¶è÷\ïûö¾•çS¹‡7µc}üµ­’›¿{ÿ7¸oUûeÌ!—µT\Üðqѯ¹ ^ƒvüçê élïl‡/F�E6Q)ŠŽ¼õ^oaßÂ>bÖ"‡"‡Yn@~IR9àå{MÓÓˆ³*™Vá›X(«ø�¸V’G’GFj(í32 B�`nù)Pí%u}¬ŸHň«ù€­¡[Cg¶` °”±F%Є³·w?m?­g¿›à÷Õ�Ô�†…ªýØ\²¸mÀï‹E°ÐaHa€åœsÆ'a?›jÓÛ¯”®ñtªßŒ”ç—ç?‹*»h5kHÿ3„L…Ls…+9+9ížãÚzáÊÒ•¥ôàÂï ï ÂÕ8 Öò˜ÍŠIˆI€óé)#v>!häë?½QÜÆQ3­Áƒ ßhß wnÿJß-ÿ[¹>ç#qR›å«’ŒD‹®VM7.“à«å⩕æ³Óf{—v,,«¤jÿ\›x í¥=¡›^K5Jðô°#»„XÑp› …Lq3Ì¿;ÈwûþÜÓ­Pû{šËDœ;¹+§Ù[J8ÝÍ¢Q¼r£ÓÉÒ]¤vUÔù˜ùg/ØÕ ’6¨AíWk‹'kfl Íõ±º Ëc¸—gÍÀÂ{m™—¦—ƸoˆýÙIæM÷ öç4Ò{ÃÜÓ] qÝx,Ro¤´X$jìcªx¦ÏDÞIøð,,•=XD 5¨ý“m þ-+é#aûzŠƒfíÎmÑ^ÎRêÑORH;†ö(ÒO:H϶ù"OA j¿C£>D�Qõß¾…¡Åýȭ§'ugƒN±û®ìL…3›ÜKõ<¨Êµ,EZ5¨ý]-Ò¥€5¬ô’¼Î›TÚî[}‘Ò°ø4=æ‚dY;¡öOï!,—ðbš_B j@Ú–»Ü©Ú³‡oŽVójÍ1ÿ*9Ù|FÑ!ž}AZc~$n¹£ÊWŠPƒÚßÕNÔfɼl±Ê.i\t%(¾¬XŽ(lÎT ·˜´D<3NÞûÁ)ÑŠjÿ\“4¿çD&ÞÈžáŠy{<ÙÒÆ~÷ér|X- ízääÑ\z»‚‚@üfOs¨ý9­³ã‚³ˆÆâø“]£ÃÖœ±ÏMö¸ ”Ånu’:©H0E%Ù–±åwltœjft1¯"¹OÁL<¬ž*Û5áž�6 žGMjÚ—jpèµ�vÙèlôÑ—1k©–Ŭàz1¼Z>5ÈIéE HßÿͶ7Û²kXð÷öòU×Oó\^�·‹·‹¥Ó¦Û¦ûQ`S@™àòU@pu­ÔU€±&B+D º8n–o–ÿ¬wž!ã�¾$ˆ.»6 ttAÀ ËoÊ“›§¡÷> ®£®C÷€³‰³‰É,!d{'N(N(Ä1ÄÛ”ý}�š�š¼\,Ö?lC]¾Äª×”.Ýsk¯=ï�ÀϑǙN|¥·§gSõ^!jQeQÅå4žç¾ñ�§~FXUXÕ¹-Q-Ѻ0\/’÷Dì‰Ð�±ìðà÷àE­6Ì´Ö¿ÿaÔ6/m/mÜsÿ4Ú Éã>=-RJŸîPmtî�û]Çnž¶]¨ —–íø(+­ÝÇò”7_нþ¾a뽘´Fc´úy•}Øs¡oŸû�ÍÔU“òz,¡$Iòš_u£¹ýøË¹†µؤÃqÕö¯¶(2j|CbøÀsžç|âi.ßaVRÅÙ¢åõ.í¸´ÃQ\+J+ʃÐe9 ¸ËV�\þ÷±ÿÙ»ÚøXráã êöØ ?î<›ÊV*â%Ù9‘c]}´[T“  ˜%™%i�è6ë6ÇK»¸ƒîs³È²ÈR÷S÷+X?nþ¾>Ï>O/½‹?v`Ÿâøî]€l¬>9ë÷þX÷ïV]ztØÇ Îó«(Á�™%±€Ñ<ƒrƒr8—CUʉO?ƒ$ž$>Ϻ®²®²ä®ó©†&†&G jývûí–m\M{e­øA@€ãNÔN8Ÿ0¤=¯Ò¬Ú4¼hÿ9ä…ó°¬ûFçþ¸sûWúmø“›RÕ„iw—kÝË­ féÒtVÓ‚•†4e¢ãøÔNǘxù8zª+¡öÿ׊-5kï,Z¨øˆom2Ó™h5¾¨­ìåbÖLiíýz'ZïΑvÖ¨Aíwh�È`Ò.w2¦3£üiÓ”¦È˜ëÀ“S‡_—ænb(Ǫ́÷ †ÚŸÝ¢Ç®Å蜦znp4-«šñP±JD€ñýOGT{uFWâ:(“ž¦ÿ‹½;�¦ªß8î2Ï”)E¢ÌdC¦Œ‘ŒÉ<ŸTf2d(É ™eJDf%s†™e,)§’„2tÛ¿Ó¾qJZëþî}zz¶×ïe¯å�¯µÎ÷³÷þs¨ýóš•tqfì^r›ZÖŰÒÝ‹< £%ž¤/°ž1²½%[ÁÝÛX× 5¨ýn I�áÖê2JóÈÃ"ßúÓøøá�sæ�#è(j¥P‹¿Å}§¿ÕUôÙDʉ#“C)Ìœ*kþJ´ûpwl7›˜•Ñâ…_8^UU¶b%>>:f¢Mtp…-Ð�*âÌH 3N„¡áç z߇2zG‡^‡ÿ`6!ðãÙÄÚ~.ö‚¡·j3ƒ¯¼ãËÛöø–/×ÜÁÙL¿“²�Û™�,°@³†& ïÑéùéù¦'&̯måkŽ.õ­Oô¶èí&ANAÎG@óƒr@n7€U¦§ïì,àð™<”So±ƒB)tðu𫦂ÉpÝÆ=ÅV˜ ¬tú£ÀyÆf¸‘’Rww†Ä6@x`x ®¤Rˆ,lžnžë:Öuu¹'[“¸)q“õògšŸöO›c¥„û£Ä>ôpÊF¹›z‰Éc‚6„ô/û ³ú{ì¤  )Æ»�ÑÂæ~…h½h=]©$©¤E(ºF22ž�´ËÓžÓžb% im¶œXÚSàYàùïµýõ, ¼¤ìþh‚cVÄó´y/š¶›M ¯íß霥Z{fÆüê1£‹ç OÿØ`à±Ï6k‡’TnäîGæ{c"Í0´¸Hm ± öÏkÆ:Ä¡ ¶Ùöü̓:’{<Έ¾zÈ¡)®“�ÿúú[‚;çDè88„Î;Bí÷jg8?Ç(T·îÜ‘Œd&f6~+?ž†ižt0H¹"_k,KúXø€Ïó»Pû½ZƒÁçsCG¬É[ÖtºuÙx*5øÈ\Ï?`¹ÈÖ5i„]ÄwDmÏ„»È Ôþœ–Û7gµÈççûìîÅeòZ+ôš@c‡a˜<›g%_¶\�†—Z®³‘Ôþy­¬1bE“!9Du(€¤i:–¿/ä†1Ö\³?¶çdþ{"UlMåáhW?L¨Aíwk—C"ÅòÒö)å[èÔMËÉïd¿ÉÍÙåçc’U§ŒÐP²/v>¤9�µ_ogzÆ%öGJ4w¿§ˆÇš{¿Š>Û9þŠõ¥Å‡+r£=kE/.n7ÛiýrMZôf#4ó—ÐÍ oôÚdý Ù’–¬%«%‹&9´|¦EØ�é`eÒ÷,,gÝìì¢zy> ­U=@ÕCù|J¹V¬Š®a#~|ÿ>þ€«Ïó¸dú°AdAîtfn(«ñÍpó2Q€~•~Œ ¶®¶ÞR`â<æ1ã1“·š·êÛ·ºµ‘ΑN×›’çn.qêêq@îg”ãí8 ‡gQøkN¼=<®ð&§îõØ»ú¬f>1__?û4zY ×_ó�ùàH[[Ù=C'ɪª¯ª_O*;æ'í'íÛ(õýfô"€˜Ì }n™¡{ëùËÊF×ÂØÔçKc[ÎvÀ¹eDhºDTÚ;7=Ñ[6×<æú°e*í1Ÿª"ÏH}ZòXŠ>.ðŽÂnæ@¡¤ìsKžÏ-PZÜlDÀ¢ç• Iº´x‹¶[ÛmÀßO³¿É^t$´MT�ž”r½õrÇHÆH"¼t¯„Ø«f,—P|o·În�ÂÛÕÕ§"�ø^t­fyÍ`Ξ€ aQŒeo ¹Ü”ö”6ù°/GÈv-(Q1ŽD“SG1­ÐyÏ`¨Í«Íƒ,¦/¦—Êi^-NOLO<¿~~ýÁ� Í­9;_ÏI¶ú9dx…Ø~%ÒPs—@&J¶ÙkxCîa©Gß¼ñ:0©„H)j£o£·—‚ß _ˆ“ý”õ”õÑdòqòqÌçÐíN¬EÔ"ü:yóö0Úh'ýf5‹€®ÃÃp=± ÖS«yœ±åõštÍ·l2p­íæ–èk›±Œn°ã"K–Ë;e«¾7•ݧ µ¿C[šºòZüÄˈê4Mn[%røùRã)õÁ] $Â2!‘§¨„3‹K{¡öû·÷ô,tFI©8²dŒ¹™ƒä£-”á—2=a¾D²ãRè#îØÞÄ»¶åPûß´9¹¹¹¾©fŸ®O,'¨Ó,V^cgOG×èË�¼øÆÛ‡6@ôt©Ô ¶U[ÅÇî³rŸ5§iµ¢UwÀë¸jwÍùw:íOiêÈ�: æ4žÆÉqœ�…™Þ’ÇÌ¡ï�²ŒKÅ'IO"_+{¥¸Ýh�3ô­§ÇJQÇ ²’•€®ª‡5´î´ Ý"8�zU^GÓN`„³´ðvaÔ4YÉ'¸}üÁHèÇ{ Â² …+Ãx·õÜ(,+:¶Ûµ¹f7ífígzÑÍÞ߈LÄXu¤„E99Æ&^XQo¸,_Þ»¬þ½dòdr;æäŒä QB@|OÀW ¨<ïR à%”G �{ bÓaa&z‹¸£Ç}üÆE $óXÝåí5Gå¾u›yÀu½ëzží€[K·–úï�ƒ¢WÅTÅTå†å†ÓL­u¶ÆÙÆÙö¾8’ðçØ¦œbRŒìf_9Ìr�z ¸¸¼ÏzîÍäûÍZä‘*9{Àn‘ÂêÂêûl*!ó¸—ê~E u µx®+©+©Àº°ssÑA÷ ]]œ‘¬�\wn&_H`.è-è×S"%j=Ýov1¥sH¥—Ën 2a Ûn„¾¶wؤâÔpÝ�à[?ݘT,suP6`èOnã¬ÍRMñ°„DlÂnª4YÜsJí§Ã×Ì’êsžô›õÎÆ‹,†Úß³]bc5¸ñ˜>¨#L›ej°ª2Ôvu²ÈüˆWj#ÏÙÉCÍv1.„‘¤j£Pûç5É{}¡{§#ÍVî�b3<Ù¦@(#Bÿò‡˜z55¦’ÇÒÐŽýÖPƒÐ:‚nµ(ØÔй,ÅÐ�Š †øË4³†1,«9šešÄ镤NÁ>à@ jÿ�&Ç¢I8Ÿü©EÁŠŠîM=.sÀ܉¬!lk‘UÙ� ð8õ·ÄÕÄcPû³ÛÓA¢l²ù~R«køzÄ”ŸsŸeÄ^ůAÙaI)@­Z5¨ý]Û›‰OI7çgeAé]dî‹4`4�ôI¤Ä¨u/­òżÊöe`džÔþ�>ù|YýíD„î¹Î>·Ï»ËIV3‘ LÇô3‡çÝmy_�~ÁjPšðœÝ2Eu©&�ww«EC„Ûé{Eè³^ìxgg¢ceóËÚΫã§·›õ>úr ±™QØitõµYÖ€ 2ºƒ^ž´—°— ¤öiþÐÛàP¯nú=¤ÒO÷¡‡‚‡Bú@ž›f@Ä`Ieu]ä@´î…3ŠúÑg§@7SML¦R’ „c{/€æ&ÙÚ@ïf.ð j�ŽMgÖÐgÑgQ^°f?¼K¨h ”=ò\เ®¦®æˆm°÷Öb0c0‰ódÊîÙ‰k¤=€A9”Fã—a¬(®�ŒÍ­ ^ßàxz‰âkÛß¾›õ-SÑ6§¼÷+<öxìy�÷1àc¶:¾£ˆQDBh�¿Ð}¡ûQUÚmÆÇ¸tvŸÒ>%ôûM�Á¦CûãäÔê²¢ÞQÆmw£v6öÚh¶Œš÷úh¿²œóe'¢~¶¹“·UÆåGV;z™ÖSМ¤n:f"}µ“ò÷1„|ƒ×‹1é›ûÌ‘:Ô&ßa»µÝñåešÍv½îeA—ð|#[IP>…Ÿ>¨„lÒpÒP�ºä‰ZKÉž#ŠßKâMâ]µU4W4oWd­` >†Nr1ú³Ÿr¸[¢ä2t€hÎ"Ï"Ÿ ¤BM8Öð@” Π;?&á'M ^Sâù²p²pV V ¾S� Hå×8×8<ž­¬Pb±µ½{ tß<]ù¹ú¡Bxü;ð\ E(úÔ6”‡mþ+w´—™d׿ñežßoà<­M¦MWQÖªÄõèñ¯èKèKˆú$ä$äÄá…ÎqRÐUÐõiEtŠa¨a¨“ÚFÅV›¹]HËPÙQÙýûûÜ¿>ËÅù‰™‡»ÎR)•Ôã.öaËwšÁûèk»šƒU烧ØZ)~ï&¯óQ[¨ý9mÙ@ôÌÞ›¦ƒ¶YÝðX‰+‰HIú–ÏnØWÌ]( YÆóÅ4£¢÷sŒ@ jeÓ:ájZ…ì.~†¡qyd*M¨LáãE~lÌ”=úz.W�ís"®Å;PƒÚÿªñ ÉßÏÓ˜¯gÉ /!_‘27Ÿô–k œÏpÆÜ\ÜËæW‡—ë5¨ý]Û9×-m²wtÃ�?0PÖ % [ØYŤT wÑ?(S/i�:¹BzŽúÿ»õžj2¯‚óØ–¨‰ äË”œ?Û"¿îÛ”ºÔ^Ì›‰ÊÁò®l—mŠÜê³­ÚIGà÷‰¾î±~ð9ýû`g•õãúòRÊ{�°ÝŸ�E¾ý¬ Ã^<­‚¥‚˜ôðZ¾ÛåG£ „ùµf{Ž�†6#æ®Õ ¿#�~­5Uy´Ð‰ýHcË…iÃöô}!cK¨µ·é¨ÕÝr±ë57·Ûv~¹†J`³ GqŒèr�6ºÙ zpðNˆ ,—1—‘ó±Ëb¦íZò¹¡ç©ßk`i`Ùé’eŸeOÄP$ñªÔc`jÃW4 㞬(¢˜Ë;A{w•K–K6¾Þ×ÎG¬xD*ã, 2;>�…Ò1®ôœ•"¾�R™R‰»�š�šXS*…ƒ&Ü^±¿bÏæÉæ©ˆttÛšô éžÅÊm?g<3˜¼ÇPÌŽÂ Ã-SD‘îlÜe£@y�éÅ7‚ôkö9âÏ–ƒ-ÝËlh�‰ZY~…ÀÀñÓÖÅÖÅrtÃwr“r“�:˜¯×«×« 7¢tÙ 70æwv†>óÐÀ@F$ê û,0áÞ5xË϶ÝÌýÿ!×dþ´Æ»hÅ4¢1¬Ãü2˜Fœs\¯[MŽôÁ¤îr Ú8óøú]à‚?žyˆ/XÅž#>Â�“}à>ÿ³íÖv0'iÙløê‹Tt¶f8z"Ëù¤h•Y•Y¥M×F’?¤™/Ð]÷½¥¥W^R§¥NýßOЉà¦#`ödfb! d’¾ù)�¤ü‘JŒJì©—Ö£ÙgïApª9P&A&Êõú 8FöT€Ë8—qTæLæL:,öU 'ˆøžøžº{u÷–ØFݶV +…)dïÁý¹³�3¡ŠRDâ¿Z*ˆRîO¤1è¤Yçýñ›Ëb–AY·T8|<|<,:i­,ªäOÅ|Î|ŽŠÂaœ�‡ÎŽè¨ÄQ‰J^Ã"Ã"�7Jïß ÿ Þ”Þ”®'ñ¯çnõœ{�/¸ð’�[˜«Ï|»™úÚþ«Þc¶#¼ VÔMƒKï¢7‘ãº&Ý‘nÂY­íp࢖ß#©3F$º¢PƒÚÚvh°Wt™Ù�2Ìg˜ƒ$ªõ=8Ûü‚6äŠèÊÓK‹¡v™O~ò&ÆÃPƒÚ_Ùt#ÝËéhßÛ�"Ü91ÝÿÒtG-Yq8}o6o—ೇֽ¥ý0A¯ãþ¥Pû½ÚçªÔèLÚ¦¾vzÄ¢¸Ê}nÃQ�c,9Äcµ ªmB]•�™¡Q*/ì¡ö{µ¡Wíe�0ýÓåô¯²n…5c줽9­zŽ “ùx¥¢àr¦Úû•L¦¥aÉëÇ‘ÁDÔ£4L\u½d7‹oÛùÆ/ŽË›”A j¿[k!ó¶Þ‡¨ˆŸÝ%½ËóÈ}¯~>Rš±wçÑPöýÇ!Ù�} eʲd …$%…,!Ù…D²EÈ^"ÊN²4Iv’5²U²Œ-Û¤B–¬e~]ÏtýbJ:ç~Î}×ý\óúï}Î÷¿Ï9s®ï÷Z~§çñ~ÔN)wΫ©äè hÙ©Œ¾Ï,*f�½£`†ŸrJ¶é`YTgU¼h³½Ô—5ò¯×óWW\Äæ6¾Ö2¨¶ÔA tלg™gy\¼?UêrDçΫ9ß+F£¯Ÿ³`°`ÀsÄjY¬qŒéÄ(¶-‹�ÔjŒ-õrÞiÃ+†WÌ”/È<Òò™áO:�qóÒ0jå�‚ïÒÞ01ÑçT’T’ ð»@ð5à*Á,µšïƼ“¼“*ôh~.6HÕïr€¾£5÷Poh9YÁ|ëyiý…ÎoÂDÓrRRƒjxjxWfé†w«[þŠñÃ㇯=}6Z`��ãH¾}¾=ÑËÉ}ÂeÂe2ðµÞ¯wYЗü ïö>ãÐ1šá#á3…Ó¢fʉ†›í3bx^-p—-;³ã¹ä[5‹|œ°�c(oÇ%ê3ԙȈ­?ØgÜ·Áûý)Y’§�Ï�Á+nz1Ï’lø­8p¶›¿¬IÐ^Oŧ¹›náZ• {=WiЃ½K‹K‹®GQZ ,Ìçx¾W­X­XHR�[�«é ð•©$|6ʪa—œ­O!ǰûÌð$ à9é9)�À£Ë{éT¨©¥> ”q´�ÑC”Èx³™X¸µpËŽ`ùÀòATˆÀ*H™ñYÓ³&a]a]¾Ñ¡�m—Ý.»§j÷¾Ÿ UuÃ]Ô¹b´í=K�¼ˆÏ«=›D*¡úͤ·d×0 ¹d7b7Âi£�¾ÃSñ̯wwаÑw×woeÀF’)Ã/ÃODNÞÇÌ,»ÖÞ´õâ#ÉCÅãÅãà<9}½·ê|)Õ´EÍÖnêÊϹŸß�ßßlŸ{¶ÿÛ÷Îzò´K,>Ô÷ß÷Ö)‘%Î�[ƒ«0× †Åëê fiàÞ+®ùN:ìÔ ´ñ¡šÎ´JvŠîgŸžUMChGÔ¥&\>ZF—íòX„¼[B•jÿ{íþ»¿ôè|cúð ç?œO½dµ'‚_œŒšD•µêÊ4�ñ âÉ‚Ú?×ìÊm£�2…ù§vé:�(?|aBضMFˆNz{%ó¤úâ…cÇS…çÐPû½Ú§šÆ¸(WdúSb‘ î7YvJpþd›É*sË= Úlš·eñwB„Bí÷o„Üæ¼VG|Gc žSWj·yýf»ø_¹;.õ~”�ÎpBî£Dßw¾™gö5ß5ó©’±q„‰Òܽˆ1«ÐÍ®©°ïMŠ—G^š»»X•¤3'\T‡Sʨ•ÁÏ)|³êøY‘ðJŽ‚<¸ß_S ýøšJúZ8…tÒ�†&Ø{D"lu³kª–/kn8®wKåy2¶ƒµúA|õ/¶ƒšªi‡i‡kšjuwÓsÕ)âiïCï‡^ËH½z7Tü¯ò–•©üô)¦§5€ºÉ¬†¦-g$h.žkžk^m–X‰hîT7¨m‘üˆ»~Ó;Ìm ÷¢à¸æé[w”\Ø\ØB‰nbnbŠ5Þ ÔÁ̃™a\a\Š­�…L„L|ô°¸ûsÓ»ÌDänr'1xä|Œ—Oc´úy¤~Pe5(Sø'n¾Ùº N¿êµê•x±A®îèÛ_Ÿ�ÏpÔY½´zé�Äv’Þ9Ê9*ÄÙgå…É ?‡µެçm�¶©;Qwœ§Ì<ÑO ¸0j6JVîÔ²Ãt³k*ìÙþÑw¡öïitÑs#!òihiÑw‹ã¢ìý�- &„¨]m)ZÏ6…<¥~çR¨ý™M"ÆWk¥ÌŽ©Ðqûd9¾wTÇùîƒCÅÇ)"u�Ñ)*ÝÖúRš öïi¯^Úy]fŒöäg»(Á�ô =LXy¿C߇¶º¤ æMœLž-Jb¤ÂjPûÝÚ ÕÂ(µ ,´¼•PíØ=’ûæUÑšvTïæ­aKþíd®b³xc,ÄPƒÚFM£¯9 O{ÅÑ¢ÈÐ((Ê“çôÛúÄj.I¹àš«»ŠxDµ+ÆVœPPû3 á2òÙµY ŸÂEÖHå  ZßZ?vé®ÏQ¾Ìo:�bñ /o]H.�Ôþj£2§%bCÈåÍ�‡#nõHG¿'Òü”tg8T(ÜÐf€òÁ^‡™;“åÛ ö{µtþ"­xóšý‚{h¬"O‰Eä¦ ÓÔ�I‡½ºÈ”Žë|oŽÙ j¿W37e*û„¯d`Q0sò<¡VWRXbCÜ%—k+Ëoy9ðŠ¢‰ÜŒû; ö÷´R*ZJ—I’ˆ­ÁÌfT6t—mW(zý[•K»ü£ñ•·®ÚôˉåCM,?>ž´å3ÝBö'žàpy“ŒØYÊhöþ~ƒà‘fÜÃh¸šSjòpì¦ï£jý²F |=º“­šØž,¬Õ2LP=¾Ðt²é¤bã>"sùù�"ã3Ç¿‡�DHZ=ãR¤êܦM–óž!Åû¥¤>Œý¾< žö˜;1wx'i¶Í_ʽj¸Þ�:tG$â,³íì€ÔžÔ~P[V[–�a�¥‘Ë’Ë–é•éyÁƒÏlŒ › ûQ½„àϱ–•zO²R1nôÖßÎcŸ®"qÇÁE@ªfß7]Å»¼Âù¦y¦yv>HAÝXª_qúéé§‘B©{R÷(ņÔÔnÒn’ugÞ1.:.úhu-¬_-àäÑøâøb쳫•döô…ó&ˆ�M™«oT©6;»Â~.^õÊÉ ”ããÆÇ×Ú ÂSì¸Í"Â*óh¤Òä‹'Dá?¸PüÇgW:öÔ—žïÁßÁ„z8o=ø~³Ùnû²æ!ÿzÁñŸb«<±–G2¨dVàˆ'•ˆŽˆî9Rl‰Ìóé²Ðªî¹ïÍëÌëìÛ))î'HŸ>x׈£“ 4uÿ�´Ü¯:H¦Ô@Gî�‰=›³°ï}6—H?pÈ•™Íƒß³ŠÚqÂÖ°?cF 7€×š×º»mo(X™†Ÿ†ŸãÇ)Vßë3ááSÊ" ý9kK†€‘9@à3 ¾ÏŸùv`ìBÔ¦6F8_åúf¸¡*Ûö0@#½lºlÚ_O6�} oׯàÈàÈp7>óTΜ ®·ýòE£R£Ò9�µvå¬÷(ÐL“f“fóÿïZûúÜ1'w“yaL#¬óÎÊÔ"oëÒfgWسýw¼WjPZK€{#޵€šýk=º‹^OúBædÒè¿ {È;xævn»igUÔ~ÿ6«”ÍA5–F¹cÉõF]ôSIšT^ö©{âuësÙf¶x™ºà44@ jµ™öJÄ$RæÝ<° O¿½ã9ånoZ‘û:ŸÐ0wŸ:¯Î‹åéfTiÔPƒÚŸÐNÉRYÖ»¿Ý×y¥‹âìaù‹| †RåS„d¼¡}«4GË(S§‡õi�¡µß­‘>cÔxO%ÏD91Ö/cnÊâËqûš6¡ÃlßëGd…¹-r½94ÌðF¨AíOh‚eº )«ð3õ ‡ž¼x�¯öú2£¡Ç¸™åôK±Z[ãy™ÿÛíš´g¹%óÑÕí¹Zì8¾F .zG±÷­ÚÍ]n-UvÐè¸âìv³£Þlß û}’�òE!Ìçî'¸žðv±·©‰�Ò£ m> ëu\8ÛŠ6ï÷\ þxߊ„‘hGBIÉG¡)WXóʾÍö­Ú¿¬‰é\/Çuð1¶s¦k¥2�ÔZ³X@ züBüB±¯ô‹zž³ŠiìªöúÞôô„l‹s‹3l pM] ˜UÄÓÊiž ÈYæfb<–`MS½A¾A"Q³f^xƒ†Yß]{mo„áÞfìTy¯ÇÀÅEšàCó¡o9Ô…&fÊeʱO°O´´“ 6æ~Õýê„åi⟓s#i¤«™aää�‡n{ƒqãaeÇ¡aj 7†oÈQùÑÓK=u˜:Œ`uw¥ûnËŠ_qÄ÷°Ì° Ùl¦Ý-Ê-ÊcoûËB·†n-1Y˪r½{Ï·Œº�ºƒóô’3O†4ëæß+ì ⬚Rã6¤Ølß {¶§ï–ÿ‰­D—«VŒÔj9N’‘pÉÑ¢É4ù ®jŽjáîÈ;Û­È»5Âa©…PûçÚèSiïd;�Q­{5ða¼—‡.�qHìËl·¢”ÉGÁ¼Ñþž[8Ä3εBíïi—F#œ)¹ŒØïÞ {�7,ƒS¢¯9• ÝMjSA�]¾°rÑçOÒ5¨ýnmI§ê“uní\ïa‹[° L†âLKÞ;˼4oX`Œ‚ :ÌÉÁMÅPû÷4ÒâÁ]SœÝòh©ñý>w[LcÔ™Jt™(ºð«/ÃÂíÒ&|óH¡µ²õE޳‘Ö �¯£ì=�Òè"s¿(u<ìù]ÒÎ�Ý ôc¶¾Óížæg µ?¡Ñ*Ò—«x“oehq>ü0÷¥ŽÖ´ÿϕ퉢Ìg‹]eUËb¡¤EPƒÚßÕB.å°Þu‘  ÷ezàÝ\dÔŸü‰«w³³ÑW_Ö¸¹¯§fÏìˆ�×v­»œ …'«Ž ldUxU¸©çè X™ýT_µý÷LËMË+ŒzŒzHV§‰Ó³âŠ€[’+’%ûÿãËWºµOAËðr¶r¶É8vÉ$6é Rþ Vo]: ATh^¾R ŒFî™ÐêÓêï§ž= Âß3%7%CC©%:\¾1*Jœ3ÏàçV´Ý?�ènbddks¥a¤¸Dù1ŠÕ“§¿ú¥¬È/µ ”++¸3öjÒëÙÊ_ÈÈEÖ+@&@¦*Œ-&luau!Þ3TÁ„`zun­>ªõÌŽ,bÒbÒ°Ïý½Sh£L%Õ=z[¤”JçÁ7;÷Çþ®#š»}‡�ßÍe>ªRK§CáÜ%(?­¤�hCë+Kñ0ýµÏ«bÎý÷þøÜ_L ùZ6=D{°g$æ\Vóf³ÝñeMÎz¾cÎ1Øp ×¢- tÚæ‚Ò ^¼ØEb*g"âcÌ3(6ô=¿l¿ì—sqq¾Ê€ôàQÀcÀõåä¾8@ý±‚ŒEÅ;—A[ŠcVcVðûˆƒ»Ú‚j9›;@øG0ø>K«¶U‡]tw÷ºüþóNš À‰6Ö6Ö-ø[ð�;ößÞSSÙÒµ› ?çFžÝ®ˆSÁx­Ÿ©Bô•´eä›[ìrPí7=±›¸k¢2>x—…Km3X•žƒ`Ïn³‰åy]Ö0£êÆ„ã•ëIé¬#HËS$<ëì¡Þ41ç‡C]ñcÎî5ÛÊ` x,o¨98wý+³ á¯Ï&:4®Ê›©žîC&lv«‰Fì6›ø¸¦Ll'.ïfyt%;þè)@Ö\¬K ßì”ñ•ñ!w—N殞ÖãvçûR–s–sr¥$¥$§: Êš¶PÝ(nhÐ_xÜÃD±”�jÑplÊlÊznI©ó„‡´õd äec×€¢ÿâPr ÙÊ`£|£¼­à_æ_–Ñ é¥ùž;{îìò™å3Uã�¿ –ËapÔ'û¾\lÏgâ€KÂ(3ÀP‡Â§XZxHþðþÌ·fµÛ7àž÷‡û«JáÄÆ�¬úzÎzÎúAO˜Ÿ0?E÷GI””?÷5äŒÒ¦Òf¸ævm—v’v<È«ó­óý÷Þþt—aáìqÎxGb}(é2}ÞË–Ýfè{ûgºgéŸÖžÛ0]~ÕExÐÃoŠ¿9ª¿å¸)–¢ö[.çì@�?ά –./¹“.¦ýóš…iD“SΙ•`»ðö;=¾ç%_=>ª#­W@4wk�øwO †£GEϺ`ÚÏÕÎsm%+Õ<¡Ùsg–…”ÅbáÄhŽ] OøÉÊ<"]d¶œþõþK/J1íçjM¦[žƒW‡(W[7õº Øù«´)¼ëÙ®²wŽ›ã ªhó‘À´_§å"¡«‚A.Ø[>y-çt#n Çl7‹:ÁîW%˜£P§-Ë«‘ëj~Óþy­¢9f]‡éÎõÁ²–ÉBˆ+¿Yà.ƒùñüÆ ^“¨ã霊÷ ÂÁ4LûÙÚµ+±Ryiªöz “ 'è Y|\�¾¬‚Ìr’ZÔ1ýÚªgJ\Åt&±0íÇÛ¦žÑcœC±Çàݯ©B’p_o Ïv†ï·‘jØëUa0 zŸ?|·ÙÎàÇ5™;]·öCwƒc;y\Ðøì�Ë *¦÷wN9ÂScþâwEL²¾”B‘B1ækêeêu*Ð^²  ¡œ f“ÊHøï]GiáP-ü!,%,¥g¿WùÂCNÐAxvèDy:?Ê9šYü­È³à«-nJ# # ‘Í× ÄJˆ Ä×WŠA¤ï۪ɪÉ"¿ïI² }˜€™Åæ ÿC91dPšó‹¶ŸE¿$¹Tà ÜŒaVmàæ:Ääý#:Ö:ÖzÊ˳7ÐÝ$µM°MÀ µ‚ A…JI¶[IßéÑ2àÚ�œ¢œ"ô¹e†Aþ‹éªf¯²½7R_¼E~s¶Î-c"Ò�Å¥-yJæ;Þô]DàÉW� mÅùS}Ö3ÜTöý[ß Ñ¤ËF×…—¨œ§¸‹dl°¿2·äÿúÜ+’Oºù&£ MwV¯cåÓÝööÐÇ%Ça;QÐù¡ƒXo< "T'y2lë¢î¢®Ðkº5L‰4Hù’œ¾œþú´Ú:Z (í¥¬}h]^Ñ Œ×}†Òž çrõÕü(ÈÝØeL]y´¼l|´ªgè„"š‡H°MÉîHIJI.ÁÂ&Â&LxõÆ ®É@�@ ŽyŽyâMnè·Áçàs>émÞß­Äêh! ðUE¡ý~+Ú…’ÌÙ0ély(sàgœ”£Ë'­gý˜#˜#(“&üª‚çÿ%.%.½\±%±¥ ]tjù5¢Ä½ŽG�Tßî=r§Ë3¹u&u&p?AˆQÛé‰ì"ééy­ºt�vyVÝÝæ–è{û`Ã@{¾Ðm¶ìàÖ¥“PÄ|U·-¦aÚß¡mŠNŠÞ¼2'm2S“¦Ãç¤JÉX®f1¡5°¯‰L\þJ¬-�xfIy/¦ýüí5#ƒyJ*~}öñ& >–ðñbo*ˆÊ™ÿ`‰$£ÃŠŒxÆw£÷v©ÓLûß´E…ÅÅÁ ø¥Î÷l&´iö�«nB én%uÆ ÖWç-ð.чHºg“Û`¦}«má! >3vûŸ@éµÎ¶'8ßtý™îAûUšÖìš“Ý~?‹;0®Ž¢L}›gèg ls‘réqrëÙiR}©ŠWÊ»��ÞpEˆÑûù®·›PÜ#[é¬~\GïCÏÔ-a/ŒßaX}Q3Íë:[«@'V] ôD²÷ÚWÎ@¢_?¸ ˆuÝÕ=‚—}víðhØng á�k“ìÔl�Î4|»æÇ ìé�……P˜P¡…­õ�›ð1ÍsÓ_š9¦aÚ£)°éì]¾ó¾U JÃ0ßHÀ²h’=ˆç ±!¼Ÿû +Lk�´†”*‰i¿vûs€$‡b¹�z“È�”z+÷yÆgSÖ³Y’ÅÅ Õ�$mêöÓÔ´ê؆i×6?–ì'ãíúÜí¤ˆÜ¾ Šú‡MX-Ã9⻉Ýo7_ 0Að0 Óþ�ñN`EãýÛŽnžÉ\ý‚Þ[ûn? ÛÈœebÖ7ÎìŠ28pú¡ãGLÃ4 ‰/:¿£ª)×!¶áë~bßãí^[Œ>ë�[Õo(kušòŽvÇŽ~ëð~·YïŸ׌?Øi¤q²�fÛvK, óà@?·ˆ£ˆc†f†a.}H0Aä•ñ/Ù¼´y9BSISi3  pV¤4Si…uÒUlIò¡˜Ì ‚AÒå rДÂE¸Â52íž(7m¥�OlŽÒ3&°ÏyŸsF.ÀkÑk±Áy¾TÖùÔé©ÁQ‚£wöJ+[]p]°Äy²Âï3^•#WŠ;�¢Mc�hÔ‚¢Ì„[¤øV­"õg‡êó.%%^ÐggÑQõۧýo&ßLÖjNNï?Úé„ �!�á©,;E!!•[¬Û}~›=Jõi¡URcR#úsŒ–ÐËVƒœ0­þ†ì¸%jØnÏ1Ma#çÌg*hn�ô�Tp=tòIû¢õØ}µÑÃnÐ=½ÌRë÷[ï—jÑ·”Kè þÊs ñ¯?ÇXkáñ3/¡ƒ4“sñ¾Ùmo�ÏaôwŠÉèEç±CZ H–ÉôX,š<š|òµ÷±õ?�}öÌ;ð%ãã¼H/E/EÑ$¾Š’- Ã S£ÌÆ�hð4Ä¢¬í „ƒÚ/�¬�¬ë•ú¥ÿ6³, ÒtЋ)ôj«¢„¨ ýfü*Œ™™jZ €!` 5ZМ}­g­gĵˆkÂóv‘ß¶h¿hïß¶Gòûl�Œ�2'SûQÞ½ U­âFÁ œr}�•FÔõY&×¾h5™ R™mÞHü0|þGÔEÖEv¸@¤ R,´èŠ™Ì:Ì:`„wh‡ò‡ò˺¶Ë&Ú‰¡cè}Øûðßïsÿô].®÷,ü|e¬lU²)=>R+¼»=Ç@ßÛ5G�ã¯øIm–õžgv¸Ä¢é„i¿N{g*yþp–Õ€Sv7ë�cÑ·ge[·¼ñ¢í<¨ÍØF ¤tââšE8�c¦ý•M×Ä˪z¶»ä9–öµá‰4Ñ ¥µAª("6Ò +—·Ðé ïêiÿ«&P"*oñ»tžör#[eÅ0庬�ݸ¿B[èr†+ΞË%½ìA „¹Þ˜†i׆¤äÍ?E±Ä0ÔµÂlJÝ z[ÜÞš˜fZ9ÔIoÄ#ß(ã�:¾NîIûÿÝúl[¬F«Yù�ÕÁú©3e&Á϶³ŸÎmÜå�®æMÅÝÃõ¯zz¼%ö[Ÿm5¬]þï�ßÎXÄ_ùœ‹þ>Ø™“Æ0DÞݽæ¸{}þ,¾€þýô»Z°Ìz u ûU Ó¯?¼ÿ@3®P\Hw¦G…<î¶x³ý7è÷Ð:Ð<ˆ5᜶8ýfÒìéú¹°ŒÔ*eŒû¶r$Œ£†‰§µf·s!òã'•�2}ŒÐµzl÷‚Kì¹bìâJåJM˜oz¡íÖLÐ~‘ÀòK � �š~š~§çkZÑS€}b€WT|´ÇaH7WŽ|e3P¸á³‘g#P$»�ÿÆ‹¹t((•S" Eˆtk¥÷% .b1—S€€%EN�XX®Ú\µ‘u”u¼PÓ°ðmÖãÖã–’d¾Onéü$? r%÷ˆK�3ŠruSªˆWé²üóÏÖ³ND÷”ÓY¼(¬¢«¢“TžFàÄ<šüœœwñ'ïNÞ¥öEGpÐþ žkV;3;3ÊkÛQ½Þ) 0W¥à¥à…>óÐÆš�¹m8té 3A©é‚ûn3ôÿ‡\Ëewí¥xå4$®¢�<Κð°ë=¯[Ðñab¶ìÃ÷.áÛgŸÞ.òõ™‡òËÓ¸µ5†§ÆÎõÌí_õîÞmo�~\#Gºkcr:ÿ·Ûéù�(½*xAˆÚ¨SQ§JóKcÝq›z-Õ_r´v´Î+ ‡‡Ã»<Ef3£_Žò¹“kZ€Ð‘yìQ*PM¶-�-b½‚Çãv0H�‹ 䲎@Á}X'Û�Ý]P»¢vå  ¯¯’4ª5ô¤ŸÃ‰Ã Q‰¨”Õeíý¶žŒž ÎåÇÐï[t;,mâ`;ˆ¢b ‹¥ÈBàÒêu�\ŽÏÅ 8ÜOÒŸîÝêñ¬O¿˜G$òfÂ'΋°Ûmæ�¾·ÿªß1;ï “*îÞOÀèa8vÏkS®;&Ý’«æ”k÷Õà\=Ág²çÍÉ $Ïb¦ý§m�6¤²ÓÆÙÖ¬òøÞ,É£žøKú+Ñ’ëHBæiûÁ§òïƒNXZ a¦ý•Í ÖçÃ~ÅÚwÅ;Æ&û¦­ö<¢(¹ÎØ›#Ð)òü±Coy¶ÈE£àrLû¹ÚVuj|&ý3â)£Ûª´ÚC>³=}¶{¤ÈGJêm¢k^ª³™qj/Ï`ÚÏÕÛ½N½Ó‹2vÀø*;? ŽEG;©îIÜÁbT¥,ò.Gãužº6¦aÚÚâÿÅÞ}Gcùÿ¿‘lÙ[B Ù#‘!#4ìqÛQÙJ!#%r+²w„d••d¯ì½“™=ûu�ûs}ânèœÏ÷ôÑçw�ÇÏsÞÿ½Ï¹Ïõz¿¯ëv¿Xœ¢ÍK&™`r.‹Ù¬þîM|òn*q®â÷D‰O-®†-ôÊèfC j;­½#r3c½˜ö‘ò¥‹Ü+×Þ=T;é}¼ïµ3 mK§ŠÆJ˜|(t%Ó Û£Îb8 B×¢¦0}ý èÏÏ:ÙnÓ÷eM²åVÃhx¨‚œ69 ê»2LºâÚ•Ó•s¹.¿ÅÙb ƒå�kÛ·Ø^°½8½7¢)¢‰§°\î&`> àŠqìŽ'´‹+>E¢Ñ(=_š'�'m¨“|Ÿ}´„ë jy·ŽÔÔçOùÖ$°kp×à‚'@è²Ðå�ŒÊvP�M‚MöM웞fl¸?¶*¸*˜kóÎãçÃ$“ãHóƒi»¸v#ÙEØ\k­ÇÒ¾ªPÖ?J›½�‘€‘Ї›‡-XÊ'ø+––ÑÏtvæN êΔ®•®Õ‰ "òò_JÞ,ªj«ä&ÀsookokÔ9ãè)òцüz9s‚¦»bõ·›3¢ÎÍg§Þ½9Ã�þ¬õâž#}ªð,´à¡Sõž«d ¦õ\÷C±¿3gúþœñXΤ º{Aa¯‘X‹º=ûï€{»ÿˆ[½NY«E¥,°Ù`/ˆÌöì,È(O¾D¾ÄAà ñµµ.AÆ–ì¸oYž³8 ^jp{°mbû¤ Ü™%+DêŒÜp�?ÅqŠãÒFѵ!ÖÈj•ø(;Ë(é…$szìÌu€)™)YC<€„ä�„�+(06œ5œÕà�ÁƒØæ© «Ì©Ì±{¬}æçLt6†¯DÒ�ˆ;^bCRÃ1-XFµ0Åú•·.¦ L°Áà0ã03¶·^hÝÍBìWdyey¥ÌEÀ#à‡±PY]fËeË¥6ϱ:Éq’£Üy3+´­Fqoîšá™á�ûÉñ¯»U6$sð2ì²’µŒµÞ=ÉÛÍQ÷öÿúî¬G³èÊã >B}ޱôn5XrÒÑÝ`¬‚í­dŒ5yE4ûŃ- 5 �‰Œ–µUPÈÙµžp7(6PNeÕÅÊ®L‰¾uøƒÒ+Êtç—{:D•wCíÿ_Kîï¼ù$,ӈܘ 1åzm¶‡ðíé;j¦ë_5�•¨ÓóäãHƒÚ¿×ì mßñsϰ�uSx\¡ˆõW‚�ž” d㙚úÊE© •þÅ.¨í¬6[Vñ@Â%éI1ž@ÀÁÞ4;9RîxëéR3s.jmÍ�c˜dYƒ° ¶óÖA³C–'½Çf¿>¥.×lÝÝ»OäŸÜÇÎ &Ub¤ÔŸ’ü$:0z0ËÔcõ™ŠÓßl&b’ÕXn11tÂ2h»g*Ô»I‘ÒIWcVJã4Ãùs+Ñ h´žr3óß-U1@”0}äá@ÿö™ŠïûÏTQ�tF>#>8‚‘Ý�zY»Ý3ÕÀ—5ˆ­|•˜QÅqovwHÔ@ø%£b¿ì~YÇ( –€œÒ¦k©˜Aßb®f®Ö*–AÈ –rV©5Á€ׯçZ„ Væ…#‘oÜŽ�ªéÔìÔg MaBB"ˆ±¸ ªµ™RA"ÎHÂh¿]ÀgÁgY38á9á�~tñÍFk…k…WYVY§%U,æLÌ™¨ëu+?Ç'êÂU: и‹T’f|èH Ò¸ks­u¼,>UíWp,˜Õ ¼ä€ÚµTóñ¸�ÚÚ¯ÈóÍó5!/?]~ºê8ªYfé~éþÛêºwÐMÑMÉ6ü¸Õ¹c€á˜L ÜO�äÈýD5ã+ë{qÜt,ˆ°Ð±q¿ÉvÏT¨{û{ÿCµÿN{JgZ ”Níì_™dlk\6Æ ­;«-¦Cáñ^&SnЩjf ÷ÖÚxeG›ãÄ¢Vˆéù Õ¦ãøhž ñ㤳N±] ŠVSê ößi-Uvž8®4aÜ —D¹“¼ƒä±J’[¥1½(Þäg‡÷FHdÚÖ‹Ž™@ j;­ÝVÎy �Ö%mÉ÷v"?ÙL´4LÓŽ¤ɲ¶êÓ¬Aè"¼€1A�5¨ý¨i 4¤aho\s ÊÕ7 xàÁq®¯:ö Ë]É;e7Ør9µ‹vOl8ÖCíÏlôXëIåþ D^9+{ï+Qx¿½É(Þ¾öÀ›®·Íñ¡ìIDaÓr|>Ô öOñ¨«dæâ$‚õ^§xØ0Žæl\Ô‡ >„¾õñ#ÞË¡QÓ…¸PÛYí w¸1ŽV¤YÙQ.r«¡ûg„C3R?�W�Š·\õ£}‚Hg µ�ÕÌLhs„g1åtáÙój6$XZíqÁ±5Wœý7Öû1Qcä†á¸ ¶Bí÷´ bçiüPì;t¦$Ö”®¶D=>�¬—KVÙ|Â0°õ?[J gAM8+2’ q�r9}–ãBÚøéÃâ0VÔù~+¬Ÿ,,­yC–­ëue¸>ÏvóýÁ/kŒ?m5ÉÈ–Œª¡x³é�®¿ 6ÈÀß›Á›�¡tç›Wõ[ï�o!–K5*ÃZÃZþª€8 û /5@´\fN¥5à0îñf$¡·S# nmÜÜš+Â¥7iÙM¤@xrý ` :¤åëE\_ý¬q,_PYp<àxÀ¹A‡|î*ý¯È†g×T×U×õ­Q’ĘŘª¼î±ê±ŠæÛLçÆV¬n€1f/R/RÔ³«�Τô¹‹6Ƭêž}îU&Ùîì õ½xå«�Ž´Ö;¼l5¦ÙpèÖ–áŸaDoàW\êJ’›®x�ƒøÎ}@‘ïŸ]÷Ï—ÛÕ¸ØtÙ0¶fm··‡€ï`muz�9•¬ëfÖ´ Hו&y'ðþ6Ƹc6¿ ö� ¶õ¹oéHëHgÉÉN(úå÷¼5kTIZxŸK#Ý#{” ¯ )¡))нÔÀòê;ï½à¨U§RI³)g&Üj/5@ÐUеÖðpèáÐF¼î#ЂkƒPƒPÚC7ú?ÿ˜ýUû«Ï{ßû9 Y¡�8-€T ž¸k|HRûhû%ÖÙ?a®¯jW"Gˆá2»2»Î�ÅÛ½ëÎê¿"HOyéúë�ÀE‰TÊ—-Á�Y`ÇõB2JMÚÒv“ÄAmç·¹t&’‰Tâý«.·+Ê��§`ŒKùt¶:ƒ�z~×ug_´š¨AíŸ6“Ñðh?âÌ»Rû“HŸ„ìGÌîI!�¬3Ûs—ñª¼Þv©ð‰)I*Ô ö'´3ÇHÌ«Ýû„Ú®¶ÈK_â¤Ö+œÁ"<4ð™üdì+┹Èœ µ�ÖÊi4†I¤i‰§&%l&ô™Büµ±./ t¿ ÌÉh”ìyNNGZ 5¨ý �çÕY™„㥘Ï.䌽®è ËRív¥Ñ¿ÆEªAh>W%|Z ;òmmìÿºù‹{šÓ)}ÞG”¡Åˆæmí|^ unÕlæ|oµ¤•\Ç�ÝyÂŽl»¹ê÷$k¥sé|-’�âpt]N{:Û[—=œ9OÔ uöº º%Eæwî\ó|nUJ©Ö ×Ö–Â6ð¾¤ÎØvs«á/klS¶âJ hBe϶Ö)еOÑå ¼øö£íGÑCÌm—÷T^§/`þÖ@à@ ·Óõ–ë-€Õþ1À£3ÞõÜá[€€öŠe¤]®Ä$ {ýKÌKÌO_Ð9š' ¼@¸éîñ œ@8’š™Èxÿî”bÀ}—û.ókNNC½ö&ÐŒ¼s¢s¢üšüš�Χƒ×Áëa¢â?·Ïne²°Þ€T•µ¯8)Y+Á€uŒrq�õW|Qn8�³˜ê>ê>M'äV—/*.ýŠâüâü[Îc¶c¶�¨0á%Ü%ÜL O‡mómócÅ7³lÜ*X`8]ÃYà î§*ä~Ò'?^¹4,s €¹tFõ >Ñvs+Ô½½“þ·üOlùgYÞ X®G¡ÁZu€×™ÄßÃGW~ЦœÃ~?êÚ>Ë=XJvÔþ½6^,îo§1®•XFú£Jö"!“¨PæH³%±DV=̳ËÇc“ÈS‹&¨ýžve<Ô‰È�Åhˆ1æ6å£Ìhù4g¢Å;¬‹ÈÒ —7.¹Ã"|𛡵�ÖVuJg­2Þ.öÈÃïÁžQç=3§¦?µ~ˆ¼—FÃ3ÄT£C§.jÿ�F�7Â6ÃÜ!Ú…F/6yÔ+¦Ñ$\•‡¶ æ,-Q;æWÂ.uÊ;“jPû7ÛÀýI‚·|6•Ä=çê5Úñ‚Ý/‰©¿‹!hb—¡š°õÖ�kö0ÓƒÔþ„F5r‚ªPÑs6u£“üãŒ*­9=&��}±‚ty±.ÇY×…ƒr¡µßÕ¯µ±ëøŽO?(<ÌÒ‡Ô~WÓ,K‘hi„§f×®:`dÝ“É×ϨæKV 2™°Ô¯Ñ勿˜·‡ãCíßkGŒóì …k™’ 'Õ£M-mXä£ÃÊð)FÃFu”žRY?î�^ïb µÿNko»y‰_uõã»ùŽ#¶æ,܈êZvÇ�\®½˜Ž Æ鑿$ì?±Q²(Q†t²•OÁ œáÕU Öu¨g£ƒÖ®Ë1KXÉ¢c¥×ó­¶;ù²¦+}«Óìô˨¦omVä ò9¬bË  ¤ªm¢ ÆW ï÷úIIœžoÊtÊt:À2ëÝ4àÞ[€b=E™Ý3ÀÑ ©L¤[QŽAdø3Y3Y1ùb.ÝÕA#}d� Ìñ=˜H=Ý /'o¶OBB¬ÜÍÜÍF‹§EAÅz‘Q‘Qjja^q?6±8±È@¤Ëüsq©sê<€V¤å¶g¤¨ÂlÇËÉWå¸_uøaè”�h púqúÅ+,vs+�Mý R2R²ú ނނXr¨Dèk¤j¤<®!ÈÞÈ¿‘ï;¹cûVÉd±ª}æûÌQÏý=(˜Q¿ÖÓ(&W°ô‚t»sÔÿuì:ؼßîæÝukN’‚ÃæŽ²ˆƒùõ7µâ>ué[]]�Ü #¿°ù}ä¹?ï÷Ïýëâo=QÉK1ÖÙ'½”áòÃ;àÞý²æQúVWÇïQ¡ú0¾Yþ<èùš� HJ<ƒ*ƒ*<”Eg@®N�ÔÍLé[ÎNÎNJŠG9ŽJ¤l-Œ?ŸTÕ™ã‡e•g&«‘Rd»1@DšW4¯ìíŠ{¤wîãß*ÜþVw+1©ïá'Þ'ï&�ìäìä–ÀºÔºŒRÿȘ—ÂÃâ„ß ¿ˆ´×Ì\Û\{Î=Þ÷甓O0ˆ„"¥…àL··!Yñ�RŸKÎåÿ*3³«ru7Àß³C¾C>±I@%Ï]ýý¯  �‹)§-§ ¥Ge6¥l®l¾±FoŸq"ã„éM¶"ÆÍξ›}î§B‚¿ÞWiòUì÷Yµùì÷þÒˆ¤Óvçþ¨{{'ý6ü—›\ѸaW‡ƒe nµQ"·8%|æð«óä¹ÑÉìÿ�½û§òÿ8n%;¥|2ÊÊéØ{ïŒB6ÙDdede¤!;Ÿ22S8œ„J!d'#%™ÇÌ8ddtˆ •o÷÷tã4t]¿ß÷ûiÜ=þ{^Þÿ½»®ó~Ýç¼oMnz6·Á•PûóÚ];Ýú*•£ZfgÄÉZl ž OwXF¨�ò¶iÝæxz€9Ù¸Hµ›©jPûÚÓûpÊÚ½¾T ^“¼È9+w—êB˽²�‡÷Ü»c>¾ÚBWª›õØ�j¿w Ž�rK�3¶�Ÿ£i³ Ö@f? W¹«~1زê­êÁ!ÃÉ =Û®6]³�ÚŸ× ·Ë Cð+RkÔ“FDízÍ_;p×Ë87ëmOsÇûîñuÖÕ´A j?[›Þ‘éÓî1°ó‰žíMûå¡¡jñ¯ÝséG'â"i§Rƒ%}C(‰6Ðîîl"Íäº7�™Ký} *ÝÞÍÄÍ&æÃtX‚�Ê\Úwo%9c3ËÀ ¥Ï ,Èg{”g�Û¦(gr³ÕL†Ó 5{g.|e6!üõÙÄk«“ÛªÚÚc¤rºÌ„r/m4›˜ü¸¦Ol=ªžC<¸­5ÆJpcqLŸN9�’92r•ð,O¡�é—èÈéÈeFiõhõØ^e×½#—¦Ñex­ãõc‹�6!Í©í~ž’/rêHëß$�IzIvÇ[‚ž“SÔùŒ Ô~®æÉµšL¦RþˆV„8uš™’Ùâ¥ò‚Àæ*OˆÚ½\RÝÁ,yƒ ݧžBíçjµ¦«Þ½ýö[_7¾×o;ã/Õ¤>q¦š5Ö‚6'Ê< Á6ì+ѵߧå 0v¯Ϻà¯úžäµœÑ OŽÙÝl© ó/¼®X¥-Ç«‘ãfî µ?¯×E­è0¦†ì=GU?/„ »bAˆiä'òGß|Eq�HG­/öÄY¨Aígk‡EKå"öªÞ´Õ¯ST¦…_ããjñcd’—Ô¢‰êÖV=Và&¦3†µo^ŒíC2}Ñ2 m¯¶�K&ļz‡;Û±ú€ Ú}2I‘}. ïI®¼ÑlçÅÇ57sÖ“ˆ©Æ•T¹–¿®Õ•ªàç§á§)l{ö.)”_¹#,ƒìKè+è+ȹDT"*y ¿™wPÏà­ãˆ0PT§ñ`ùæt²‚³gšgš‘²(Uê¦b�ûÃ&P‡ŸºÜ¨b·�~öÁfæs“¬^"{‰w ûº¹Xµ^R–Sn‹„ÚïÝžõP\§žïÚb—@jHI³š3šÙá|u%‹ù²¸¼ ž¬MÓ|”FxÇÁ|¨AíWm³Ã—ýe}ÜF�«‰Èÿ•I]])Q‹Wß�’'K‹Óh{óN0îÅ;ӌp"¨Aí¿ÑRÏ?¸•âpü�÷e®nAŸÕ¿RJ¨Þ!§™ Œ‘­‘F»ŽVª0,8@ j@Ç8½ÝV^¤CfÍ×öȶ6Êǽ"ÿ‹Y¯oÔË–jïË“hšy®TõF³Þ™�kš=×s¸1Ê‚‹£o­ÜtGhö5БŽáÂÎÉ*Çåˆ|I²M²M'CàŒÀ™º\€EðQ@$%@Þ²ß�^ ð—Û[,Ñ­•ý ïãfÉfÉáûÑ6L³hP6?ç_ ÁòÝ>XCŽ î•‡|�vÔvÔéy€LX&laBVä½oTfT†J�J�­&ÔèÛ¢‘ÑÈrd*ìûÎÄ¡84×±` Ó÷!XågãÏµÂØº¥8>c%çâ¾vJÍ8•›VÒiNHîû,ß ÷û=¸wµà™u’èæu«æÅe\¸/x«D3&O\HwªýÀ–ð†ã˜„*ÜßHàÞCk¿½$VÔ„cZØâè˜YÓî¹ÐºiüájEmƒ«´ÛåIµÑ�Î…/�³dþz3a·q½] _”^ù~=׎hG\¸xøÞIÖÝÑ–i†æ_‚9ÜGùMŒLŒ´�ê­-YžF@ˆg|I²+ ÉãM–#-œäݶ¶ µ„0¡}Pªï)lq mº„uòþÓìÝ�±3�tZÕ ä¥ä5£+NÂä?S~¦¼”¶”æI<ºümºœºœ[æ|9¿Ï#"�e"°,ƒu+Ó�i–ëâ‘@¦¸�«ä¦dŸë%cÒ¼»TZVZv )@ýÜ%vƱ‡ví,GÑ|Ѽæ}\¼Ñ§ NTWí~½øbñ…žõZüëÙÀwƒŽpáÀ�yhãMG¥ö�Z`Ú\húR¶ÑÌ÷ÿCŽå¼»ö\ì~Å ¡’�Á’p¿[ö‰$;t? _®rÙ%díÌãÓ»ÀE¾>óh”’½†:a»Ê ½º½a„ü›ßµ÷6æãš‰ëwËÃEpq-?SwM;è´ò}¥ûJ7.it»Ê�Óv�O|)öQì#÷ZJ %Æâ- óïŸ2Ž#S6=¦²1Óô%¬ÊU¡�JÎy�ó:(ñ°7¨c³[A¶ÔÇ“@Hž¶ýXÖWSKX‡^ - -íeN%N%¹FªŒ ÉAWqWq*z*zk2‘šo  9JÊý}µøe倆,¬+6ì ¬¯°:¹WŠçÄG$|Ý~á= EH¿D¿„=‚Õm.<ÀáG ÙÙFDÀ#àKö¸6å„\ ¹2\åÞßoo´Vs×zLú~ŽvŽvp?Iºw«Ý»:ãd.©ÈÂ$œOœe³ÑÌwoÿS¿cv"–ÊoÛ¹™ÁÃp8ûÄ{ù¶¨ K®r=·sÜ�í„ú‚Oä<Í©I:C jÿ×F¬ ¿×bítÄì&üaö4ÅýÓ‚Ñ3…ŽÖôÙÝÎaT£"±œŠ«5_ yjPû«-¡7È£1ßX”V1Çöd%·=:.‚”n€QŽ}ã ÊåÅNgQ†àæUPƒÚNkO(·ç÷¨F½eP`T­;Ó-JÁ¸“þ�÷­f¨þrY»aê×hT'¯z«¤ôiìYLŽ`÷«^ÝsÃG¨�@§áíf1sŸ×XmÕ�¥‰ƒÍ�q3&u ³hÂr¥y¥ù)�—jBƒ}F üÒ×ö&ìµÈll§Jè3ÙR=pÂqíðr3|­ê 3”¥ PrmzmzÊ;lÔšîƒdìµNƒ\³„70\Ðÿ`¿Ø&0»¹ŪŪ©gظ@÷œI?“¾B°BоÛCÿû$É%Éå<‹ÄìH„H‘à€Ã爔ðr4†,�kØ9f=É©ª/T®-²à�D3n—ß.ÿ­O­,†Åpág¬—®—ކ{HyH)ª`sR ¡±:ëX%à"àòVf³D·­â¶qu¹u¹ØsÆ7Út“VâÕ ’vêYˆíæŒØsóùÙ'f²—•ôxPÖu¨ÄI×F‡ú®ÒæØ¡÷Ë''}cÎ(õí9£D¯™ÒBZïà•fâÅ^NŸíööŸŸ×4–lÅí„4ÇV1·I#ÈY ‹ ¤Ý" & 6تúT)‘ADxFùØ×øbøbpßßQ¹£òº P°x] `>8ã­rÈÜl1À ¸êG²†w+t+à0š�g›é‡8¨ƒ†Tx1âÞžc[e¸ˆâŒâüx�‡ÈC¹’€JªQÎ(ç�¤�¤ÚJ5¯ïã©à©�8ãB÷cÁw›Œ½Á‘Ò}+0·¨‘Dâ’ÀP©§*Í�ë®ï›$ì÷3³\QÀçUá�'„ÚÎo„öBÎáÓW«îkë«v¹ qú+÷±Ëid_Óhq2 fÿ”}#Pi<ŠýL%m?W;óŽßFuéFÒŒsüvÏTØw“Ò•s}–2Wš² R—ÄkžáÜc6*>À-×tÌRù€ë­ˆ î×ÏTbß~¦Â7{ÿ¼gì:î¢ÿTeÊðÒvÏTóŸ×Xxn•\5ðQàf¥Í J<Û$Ð!T.O.OCâ¹?”ï§ðþ6Ë‚üZiri2�»Z ½G@ù‰å ‡ ,–¥D¶öHŰHI ™²Ü¯½_+yDîuÚù/—†ÂÌßYó¹‹`œ”Ï‘+º¸0waNY à뫵6®*µ)µ)EÕ¢jéfã俯¿ßßOËb‘3ªÓ ´Á÷eaôõ{�¼^–Lkî_ÜR˜cip=óóºL�Hášè¸ëgìnÛݦÐ!"¢4ŒmdzúÂô� =fJúJúüô›5¹l%¥@ÛvWwWƒû)–³Ÿç¢T¢<¦í¦âÉëý:yl·{¦ÂÞÛßú!Ôþ=­˜åÀµ4«\Ð/'9²òN’sìeçGÂ$ô”©±¬ }ð x…ê˜ÿ=¨ýšM&5Üh£Î“¥ÚŸÿŠ^=~hJ�[ß‘7w�Qæšúgõçhö¹ÌzŒæt@íßÓº[Žþ@V½²'YýR}ø£N¹Þµ”pÖ¡—~WU4‚‘õ|¼^ 5¨ýÕFõÆžž˜�_±bé’?ñ•ê5±Á|öµÉx1$Âuœê¦¨w’üµ÷õ»¡¶³ZÑ�Tb£tûæßDöÓÁ]Æ“ ¥“Ê &éZ§¬äºÏ^`)Âõ¿±Äjµ�ÕìmYª¥çñUͪõܨ �z³²ÚÒ|¢7Ö‡…¸˜ðjPÄ¿[�õ@íïi÷¨é©Þ“&]fµ£ve8ã¾A9ÙÉïý`uo$ _�ñÉuLÙJºjÒ•ééd�k Ëæ/#•mН~ BñcÏ÷O˜w'�È 8ÅÈ5x–R\Ün¾¿¼�Ja«Í”,lúf›-ó‚q®Ò‚L+� h—MËâÝuª<µ¥ëk´´t!!l!l®u ¦€;3=Ƽµ`Z€},:âð/,œ:AM¨­¦Ä ÉÔ ]5x¸Šá�3’T@ZàEð"×øp|8‹Ü£‹  F+´Öë:qÔGæû4§5§³Îs/þؾV×HJ`…ãÔ‡÷1/&1æüÃ�}~ç(F+¿Èuक़<õEµ£Ú½R–‚›‘·‹~FuRu’Ûœ`•`UG¶Îx<<ŽÝ¡DîDîSÒ›mõ\`/å]í]�}vµñ*·lÁÃ͆Ÿ·£äÓ�õvgWØÿ‹×9{óð¥´ï�æ ßc¸ø'îs qÍåþ\Õ÷Oï#¿qðзϮ8Wéf�`„§‹:¹ç÷l··?¯1¶Üª¦ìc>6¢ÜÍ � è(U|P¼ñšZ™…jvfLÞiË|•ëJ´1¡÷‡Ñ�ÛäÕå�Šƒ·èXiÚ¡µ_¡‰Ô™ÂsŽ4á—˜U¿¿ÿtU©;p†qn?Í rÇ…éãFDéB,íYÿí-\ïȪõ‰ƒ²Üˆ'Ü*#à”öܪË> qõA�I ξ€OÚíæVØï“lW®‰e�rʳÎ&6<pÚµùêÜ)ªøçJ¦ç�‰—9ÓW|ãεȷçVÖm¡Õã&ÜH×yXŒÚg·›[}ø¼Æ©a+ç«v¾Øf7cI¢_Á@ô„ádád· ýó¤pvsÕÐ7|�(…(Å1:9,9̧ðÛÆÅ`ÀM*�·"ùñLÀ*Í]# –°Æ z*ƒ&ƒf„xϤa}$'¨?ôÙ2¨¹òN†€¼µ¾Îq×HÀ�ð�°³ Æ©ÆI¼BmôØ[ÊJÊê¨÷Qo‰N|ñïÓçÓç3Ñ�û1Ù°ù 6€††ÚIvö„zŒi!!v½½™ÞÌ¡_¨›„Ôi†eLÍMÍ�&z5ÖàBÂ?CQ‘5€Ÿ�[< " âàe“W3434Ü›ñ?ÛªÑ0�ª+¯+÷S 3f?!èŽ<[~ ç½ÄÝ4§+€ Ünn…½·wÒwËÅVkÊ÷HšÌy=í03᪯C‡íõDR\�b�ê}É×Îq8Sô�@Âò«ª¡öϵéF¹Ðëž'¦�n4ÓL⵨x�sÉHULt9SÉW¢a¡ý‘Á»¸;ýµ¿§ùL'ùSúòY�sfÆ0ܬ˜”Ç©53˜Ë�ë#sm -«ÿ¸áK‹$í‚ÔvZ[5išw)´4¨æ�»TÂt·Ä‘‰Mèں݌Ydœ«Í„õú去Pû÷4²»{ç¸û”“úqØdßý–Ùi›ª+Âr¯Í”…²ÿáÒ³`6¼‚ jPû'Ûhò;v²GbnϨO¢Oô’$yÉKx’Iör|œqÆ]&Ü|¡+ØÞjPûãÄQÆzÍP "¦NµÂò£…H ®à Ž,IVË»Y� šüëÒñd5PƒÚßÕb}n±_ªŽ;b8Ë)›Ã[8{Y–œcÌz+CÑUôº[Ë]„ÝÎt7Ô 4Q’täz¯iôà>á%úãiMÚ¡ JŠ{„Í.GêM�'õ+žT¿Z‰€Ôþ®fМ/ßÝéPPÕ¾ê‹W™¯E”·Šå©�2ÚÎ8�!ÚÌÅ2O§:�BíŸk‡mîž&—nçÊõ­§ŸaçìÆëT‹ k&¥ƒzc¢UÌèzëV8.:ÐjÿžÖû2ÂK\wõí“Å¾É wÇQ¾ÈçLí–ûüFk�»OËšÀñfiwåýŠ��OÇšáʫؽ�ga–­-ê®Øg£'™‡–2œ`ͱæ†?üî÷®Á³Ñ¥Ïk–¨·ò°àMÃÖl¹YV4H#ü²$hd˜œ�œï"kñ0^·J½ü-n¦¯%»%»¥r*&(&”ö¢í¸?.â ^¿p±ðÏØÝÇxÅø‘ô‰˜4“4“0Dâ¼–¥`((¿Ð†´*D‡ÁƸæòZâÜ ß<ß¼C °š¹šIôdþˆñ�2\µµ"¤Ì7þ}êúêú‰Îi?¦)ÃtüŽa.òÆàaäY¬êMŒ"î1}yý·Bs¦h™ý9€G´sœs\«ˆÐ”œ«ÎâÏ(B¡4œQå¨ò5nl�ÛFÈGÈ3tKŠÔŠÔv•mV“»Õ¬=àÖ ƒƒö¹h}Šíaýsƒ�²ª÷–oÓlwî�ý]Ç~�.ψ¸uWaê{ýT�µè£ì?û.gWÓ `tf›ÿ¯"‚9÷ýö¹ÿMªË ++â3-œ«ÊäûË^l··—?¯YeÝêf¬a%¶Ì·›‰ �lµõ5A:­êáêáf4J­9-šò± ÝL_KKS̯k¬k¤M(êKï0Î*­EïÕ´–”ÕÖ0hVˆ@wÕ Ô HÔlYˆ©:œ@ä†A¯ŠGPd Yz¾‹&‹&‡è‘‘å(\�ªTºvºvYAY��±ù÷½nxݰ(Åõcx·Tíoˆê0tÙ"ÆÍ1ž‰”˜¯H;[QO~áígá)9 ?'%,%lþÀÖžÕ4€ægjjQ†FfGfÃd±¡è;}:}êsÃ- — —Û&6“]ÛŠuáØ»ïp*ÿÿ�ãǪȊŽ2ŠBöŠdg“Ù{gœŒƒ”l¥’ʈÒ)+»Œì­$²eGqÌ"¡|Ý¿Óý‰SÒŸï÷×8÷ã�s]Onœ«÷•ó~ÝÜ·K[1¡ ±cÿYÏ7œý]~š«ÖŸââR˜‘]é^ØHˆ;‰�¦ý}Í@ƒ(¸Êæ¾Ý¼�Y@SB«‡³Ðx‹ª°F:þdÌ4A–« 5 ÿo{Lûµš3ëêMéâ ¾m H:":ƒéIØfñlò©øjý1Í«�ç_çbÚ¯ÕªtW]»/õZíZ¨ÿ¤ÑrЉ³P…›ÔÍ»ŒáSó�>n6·¬Ò�AwÁ.LûsZJûŒå÷E{¬U÷s솓jÁQ¼aû›ôBN0yrß—,UeWJqÔwÀ´¿¯=ª]V¥IRìö%®½ÁÓg€3SëÉë9”þŽPWU¾'Üí"6¦aÚ¯Ö®]?–štH.Ý\£bTòÅá{¬ÍôÜ´bB'ÉC;UäìrTG!˜öóÍ…¦uà8sÏõãµ-ïÈ|oâ̼[AŸí´,$·UÀT; Ó? ?i ZÚj¶³´vN›þF¯Ã8v¢›4^ö”êk$ÂJÊÇÍÇ5³%öxØzA8�ì[—]:äølñÚâ5çnÀ˦Êû€qÀð-LàFü¾%$�a7ÈÄ�­ˆ­¨Ïè‰÷™qÎX# „gxåJ4 §FAïØY€Ï{Ÿ÷Ý*f*fªÂŒ„áä7¬ÎÎêà‹˜ßEEœ´ºïǦ|µn*åFHQT 6V,%(8z¬1Pçâe ׯäÒÒºßÜÝëíåíUä7È@XÁgû3VGWGíÉßÀÞÀø+Ñu×……Y‹~FT"*ÕϬw„e£Â×€éý„ úÜòî©´×o «ÝòvÞH|ý¡ÓÙ8· ¾s<,i®%”få1ÓŽ+^hçWí‡ýJé +ºôÁc…ÿf öUÞY2Û7G2EL°¾3·äüþÜRnþµgéå±¶ò&– ì­ÖöòÚ9¢¸MËÝñ@' ¸^L7È3Eþ>¨#ÜÏÞÏ^®³A± *wZKeYð[odÞÈìÓ(Q.QÞû  •Êd °�t[´0g�d¸KžBy|¼,$Ç’˜ØÃ“ ¬²/t=s¶„æM�Òà«1}SŰ €(FËX K Kº$³ZAºÛL¶™ÈÚÈÚLÀíÓ6çïåï•Þ±üc‰L$>‰€½(=:㊔˜$Fº—óR4©Ã_M�Ò-1f¦ÿ?¼Ò¤Â§%ÄùL L Õa‹a‹ûO£SóäÒçÒo¾ +|ìöØ Ol=ü=Åݧ© ®§Ã¨õÔ`}ŽÈbêdéÕi&qzµ­æ–èk{ÿ#ꮦ4žX„Oý¬¼eûTa‹)¦aÚïÐ>ñ�òGM ë¼ -NRå°‘ÛEï�¯`0|²koñQñ ë¦»�&çä·aÚ¯ßÞA¨õãñÊUt'ÂÞ?Âϧ}Iw™˜r9øÇ�¶Ø\›Ç˜ö¿i3’33­Üõ盗tö$™×F>|Ç)§ô´¤ñ¥)ÜóT¾B0‰ ¦aÚfm·ÝÒ}ÂŒ²Á’êä™M¶QŽ¿Ò}Ðþ”vùQƒÆŒÒÓ !šõyf²—ˆ¦É3ô=BŸ/_xˆÄù–HóØ£q™­ö@ïYƒ¨<=–³›tH/û6Õ•R¹SÑ´šóâ=×*:§œ¤¹ÊPÏÕ )­±ê3‰PÉû�†Œ![í�Ð×ö6ëD¼RöÜAîϰêøñˆ. ßî?¹ Ì[ñ™$íÀá´ÉÈT¨Ö·zøÄ!±ƒ_!Úî8tq.ØëþŽë9˜ö{¶ËLŒºq/è»4ŽR!ŒtWº#†²ÍdÏ%Vsº ÔÚFžÝy�D©Óþ¾&ò¤=øàp×u“å,6¡0&=ãFi¨Ÿ¸ ô­ÿ|(ÖÉâ=Ørº·1[a¦­) 3­^Úº”úìýHê¾c]A>ⵌ!4‹Jö&ɆÑúZy‰~ÃXóx˜†iÿ�&É ºs.a©^Úr7õTåv:ßD7®•àŠ¸Dç‘÷ôÑ'§‰Š‰ÈBû1íÏn¯ºï“Îu�XFák‘¯¦ŒÜ}y&~Awë¨Àá¢Ã7UÈ›,Èy÷(fc¦ý®mjð–§ÜqÄIžOlï]Ò²Á*HMo»ÁíH¥–+Ü‘ãé=hãb¦ý74ÁûQeF¬µÓ)×[¬�ÜðÕ½±�‰W’‘4´š§“_„hsí³(‘†¾·Æ4LÚÑÛE²â|UŽ–óªP8ìI6ú¬×’ŒÂñ•¥M¸”çXou¯+|«Yï§µs^÷l¤9`?‹®½ivàÁÓ ûùJøJ,”ª}ù,¾–.½ö­XÖXÖòS'S'À„TŠ>`ŒÀ¦Î1f~Ð|»ÈEi5:Ô’-$&$Æ•ßñ¨È‚-Tàêh^äÂ8 ûÕÌž‚s͹I|I|ÝfÀ`ù`9þ¥ŠpP}Lktk´É¨É¨æ%›ÅÍÑÐvúgüذƈ¿¯A€âˈC©tÅvúL°Rr&û«YwÌú(ŸoÀÅáâ£÷¾ ÛÿD÷g´g¶gN0KUIUYÕ¢ãž1{iö²IåȃQ¢>N­wq#–7RÕz­z-ôë5~�FÝÌÑ’';+a³äÑ[]Ç(ƒÕ?©?ñhWL_‡¼¤ãy¦ãÁ …�½N–ÛÚh?'–QS öÔhŠE<'ÿÎuŒ£ß¿Ž‘þb0M¾ ºÛ6Ï Ö˵a«µýy휦ö�Xà—ѹa¯çÔº³óm(¡ÇÏOYÄɪ¼6Û«ÑF¢ü[pl86¯­2­r™#`d¼PI`¤ Ðå¼½Q0…Bku¼ $ã)N/NOÌÖQ0Yû®Ô“°½T´R¹¥û˜ûáñîƒÇ 8¤8ïãÅj�\TœQœ‘j«j«°[ ýæÆâÇâÚ+¦ÿXåÐ’“üiÀ;UQ®‹“PŠ=w§EùCÕ½¯pˆ>ÞrÓ¥ bbOZ0`¹ž"ÿ.s.s6.Â:Â::eèÔ:›l›lÙiôó§F§FE¬w‹g£)(àº<© ©Ì?ÏýËÏr±.ÑqräÑ3ŠÆ·º›ßô^‚àu ôµ]ÌÂÈ‹7ïyìS>~›3­×y:eLûsÚ¢®�óÁ{F]6ˆúǯÅ"E õ«pÜkfgÉõÒ�©†…Uó1³ôb¦ý657£"dKÎDåJïpÿ#é�Ý»ÉBð£±ú�‡Ç¤°?´yMȾ�…i˜ö¿j\9üâY©*s• ww=êݵ,jf6ä%Ùè7w×{[`NÓÅŠ)pLôߵõïbOS'�¥îy1O«K^Á{ÔÜÖ22I· §™J›M¼RÄ*qh™ÄuÏ¿Ý:ºLkŒŠè9­¥Ž—Fw’s'‹Œ‚¯m‘_ömGòÏ–_J}öÇ«ð©DÍõÍ^Û*[ÛïOøe�Eð�×¹èvBþtt{êíÇmú8;Ý_e» ÿ|ú½Z zm;ÔvÊ=Œ¼sµœ;ã±rØÃ£7ÒEVpBn;«S?O¬ÎÈ_Þjn´ºvNÞèFX—3*Ñ=±žú1б†I Й&d2£¶&�h{Ù²îîñ¤«ß2„Â�‚<7ynŽ'L®O¦¬‚;em³&^9ÆûP¦ÛA �}œ}œîµ=òK×WA%ôn »¶¥3(¹Õ¡“ì±´�‚�‚5€gÂÏ„W�ÕËAÞ µmµm÷2�m.9&9&Œÿc<Æ"Ä©€ ”‡Øûc–”P¶çXØáì<ÒqÐø«}á(ÜY<'‡b†bîÝx©ü˜ÿໟ̓æ9@¨ © ï§¢ÃN1W7W¯ÈudÄcÄC¶®g/²‘úaÀ j-J-Jô™¨ «Õsþ=íö\Ýi¦­f¢èß/S ç`*³á2I„ý8R<âØy{¸ÅXõ´c‰–,Ù¬Ÿ‰r£f¢|ߟ‰~lú°ŸZÔ`@*-‡˜ýY$íVk²ö¡¯~ވΊ¬Ý.ùõu@’²;x@5®IIu.C‹£KÛåBçi¾å ÷„KHÍÍÅð2#˵ªØ¾ÁöÀžäRu”cÚù ×h”pId |B¤sX jc:$ƒR*Ï&Ù¯-ÈäÉäqHLzNz¶¥û‚怛ⱱï$~½9%Q%Q i&�³ÙWVçÒÈ|‹2ƒÝŸ?‚bbzåÜtºwÜÿ«?ü>r@Ë|fpfp·ˆÉ±IÆ™Ÿ¡]­]íu�>¿‚Îþ?ìÝw<•ýÿÀq{”q�½Å9V$#óFI(²edFDr¬I*«Ì¬$3#²BtŒ¨Èè”™=B„¬JøÞ×ïÜ×7NC�Çý}Üéþ]çùßë|þù¼?×õ¹B˜Ý˜Ý Ýx¹SRSR÷n[/>b#‡0@˜:¹¹¸ždÿº—톺ã�E*>?Î+,)Ôf¹ÙL{mÿª{ì·_’¹ÿ‚�˜ùŒÞ@&rEáEØS�‡Ú§/ ^õCãëìy.ïjB¡+} jPû»�H‹·´ÅÂþ„qï“ÌI²ªó»ÞÖ¿a •^î#a·êjTüä«lz¼jPû•M÷ºÇ&¥ Ö$Éæ�Ñöq3¢*XAó« ‘ñá'¶¯ŠÛqŽõýŠ¡¶µÚZùíðTÆ1ö¶FfçEÙC•ÂÆ½:Ǹ2Éûª¨7H|DœL½rãШm­ÖÕ„Ôþ dàò€y"=;¨‡ŽñÒõQu·mÍúe*ââðÏe©ËàB j·…wù8WgìÙ¡˜jm\´Ó¶õúe2Ú^9v¡êW°´‚\ûó±‹ýʦ%PƒÚVkOaçlÎ¥±oéè½T+½Û÷P2l¥÷u¿ÕôÔ:?hTMÔp ]Aó¨õd°HHžÁžÅ �5Я±çø]Íí¸”³Ù,¸ÆìÀðF4r„غ&Ö«iyšæ€îˆˆ½oØå“9¥0êúölÒײ­²­`Õ³R³R‹T€\g €å>å;Ϫ @Ò-rnŒS+F á×ÁlÁlFÅ­3…ÑV. ³=Ñ |ühŒ†XtÀié‘(€f­f­#…ŠB=Šf×%"DDf>Î||ß.·ü}!†!†W\=‚~ìâüÍj6<@‚(F-zÛóàµs ñç\L?KüñE¹}e.!`Ò�íÛ‹g°8žKoÏü =‚>fäAöƒìfIl‹'µzµzi/2v6v.è\�½^ @Á�"†"{Î8¦A;žtB̬t^†H-Ù|³9#ö¹ÚÜôÓÇ»o³çßëp¦”8bW„>¢Ñê�\Þ‘jÓ*$Mò�9ãÞoÏ>üU{Ç>dG–®©|÷;©àÚÆûóOÇëlžš·‚ÍöÁzøŒ ÅŒ�EïðÕá«Ëìáz¥�mq'ÔaŽ_ãpåpm4MeOe¿X¸OJBxmض¤blœ 8ߎ1ÀS)ª…?¨Pÿ–¤÷Lû¬;(Å@‚?z”ãíÉ6kA•&@tgt§ !€Y›Y{ùƒÎQ½Waá²õ²µNχ﫨­¨�ðnùãÇZso3ÅOšM0RöŸ×(Åè·9»Xñ¶¢ü ½«'«àÑ€ëòJ“J“êžMá̱?ƒÎ op'4#4S¶Ç6ãiîiÉ =a¼×xïå�õ|žn$¤8]._'_®'÷¿ž½tª ž·«#éÞQó¹às?eÆfsFìµý¿~¶ÞW MúSöñÀ½îɬ çø�ÁKóñÎá $ð»:vpŠ7ñï‘Ò” ·‡Ô€6!5V×ùŒNÕ¥ã€�Eµ…f š¸¤!3)h÷øáJú|Ïâ”ÝÒšDPûÿ×2__Ή-!´¤µbˆšöˆ¾Œ;×GQ4ô™öÍ™ÖÊ—Fò-f¾a¢yPûuÍu:Öýž˜ð,¯‘Ç„Zö3Ó0âWÛäEYiÈ#Wïië|rÞ7¥•)¶Ôµ­ÕæêšnÊ{¥çToæïÏsQ¥Nqœ©·=)ÄhÀ®©@È£‚¸A µ­ßˆùmLÆ—<ÒÐQmsìíç�ú;ïkÐÈŽÒæ¤7ŸV|/=4Æ_dã;„½�ñç?4wûRod‘„!"ê1¾Öfûü?÷1 ½&¸uÂn=~v�œ©thM£”¼”üC›\9¼RÜeðÚpÏ×B,C,ó.,ö-öÉÚHV äROJo‚ç¦âû$ßa¤(9X€ ‹²È³Èï¯ä¥sÓ-ÙT§Äƒ| û0^ØY !r…ö;ìwàÏDÇDÇøIF‚ö©+Õá/ï½¼·6�Nñ}|h>´�ïgâ{ú�èH˜ÜÆ`dŽh uĈ7zÒ¬ºÔP»ü…#�ã )`MfúÍô›�Ÿ,„=V©îþ …B…B˜/§4§´‚<6ÏégãÏÆ]ÒJ ê÷Ôï\ïzÐF¢¡¼ìÙ7°÷è»®ÙÎ>œz‡°R]J‹žr¸±ÙûYØD¥t·¥ÛŸjïèÆ-‰•5àV0éç ï»^«e!UÃõVDïë=ºè·÷è» ,‹çɤ‰.[jû§l¶¶ þ\ÛÖ³m³{uÛ„Öz\=ÍÜIâuç™ä™Ä1Èò’ò‚½§ôJûš � M­’�‰� Ò@Ìb~ ðÀX·«Ï¢€ä9‰1{{ø.Þ ß OIGuÆþŠ (õÜ„HMŽÜÃ^qЇÓo €9Áœ”–À¼�ñîÃPËX"G"Ç9‘s"ñ.¹¾ßßhWñêÁ»Æ¢³=#Ð8€!c0¨ßsƒÏòdÏËäÑšn_¨®­„± p×ÔÝÔÝ^1lŸš:¢‹ú‘ª‘ª¼Ð#è›[Ø|•½c½ce†hj)é)éù¬Ö›Üe .âUáýïû‘a´˜õÄ0{EåŠó¤ÍÄ ”;šÛz³=:öÚþÖwo¡öïi¹ô±v\KaJY=rƒŸÞIpw¢?ZG·NÈÒù¾R.Tö¨€ÚïÙ¤ãôW+]˜K=‘Ú(Bÿ›NÝûÇʵ¨²Ó�<’{RÕ»OM;¥¶@íßÓÚ]üI½™b}…Ù]¥…Ón$®ÉèP"¼D÷øaI\‚|áéVé‰*k¨Am«µÍÒ›G‚óz”Dë§ÒÈ2l¥kcu]¨?84ã,¶£ð’\ÄŸbÝ5¨}¯z‘‡o°z +3?|ÓWÀxàyòc¸Œ©bhÝEÞ2 ƒ*¢©U÷V¨ýž�•x%ýɵEØ¥ÒOl1jÁUtõ—9åº>ß `éït�W9ä…zù1å!Ô öwÕ˜-);B±pé]"âµ\ì(©îÜ�[ã7D£ÌG¨îî9-kµ j[«åÇY‘ê'ÚÖý!"D«|j$FO2º kœöùÄ ¹ðöóW™sð<Ò–Xl ¶µš­5s©ä¡ª©]É‚¶5±~×�ðä¦7Ïk«+‚\Œøe±¤ç,‡; öÏ´ j:*ϲh’PjGzïÓ«°¾@4âlÍ2o`,¡‰ùšã°Ò É"¨I%&’£?ÓÌŸ�R²Ê�_¤ŠE`Ï÷�ð8.Ô˜8lëŽb\ó�ì ßl¾Oˆ‹ƒc÷r#*mX¶Çõ*™@>‰³ ˆj+j«ÒØ�ÇF6Õ:¿¶ö~íýeÇ„À„@ïO€¡9=ñuÀžëÔ[nÅY3 Áéž:¡è°bZEö(‹Írâ½SÿГ®:óìiÔ7ž/•Úxvõú¯÷Žwò·Ø–Æ5ãtÞZ�ý$øò»w4€g ØÿË?qïÔ 4ôŸfÜS»�aè5¡wõ{4¶$ŸEÿ =<޳ß,² –Óº3�ˆúÔ¶~[TÍ碞ʢâ^ö iˆ­–¡ÍçL’M“zoô¼€�q�ÀÏÚó nSÔ öw›uŸt\ÒUªÂëû¸Óir"¹ŸRñùÓ‰gÎõàø(_jðëtEåØPgí€Ô~‡¦§@}ò¹ÏÀÞÎó]0‹ƒJ®»ÍeQ³Ä‚7†Öh%WReÎ�§Ez@ j[­‘?a:6J­ÄL5=5,:ÊšÕ7ž+òšñÙÅ¡ÞbŠÒ´bß}Zšf¨Aíwh"•FÊ©ûk ï/yô¬?¶èH¯7“ù!šc'ç%�ê“$ 27'ÿ¯Û59_ÔI–Ãk°}NÜ€Iž&‡±çVM~B=¸k-ÚSÓ™«6›[áâàŒ`¹p7^§ýznÿýÍ™Mã€jد_%N“y/fÐð$¼Áì¨Ãמnº½øiJmJmuà‡€ÚpG?jà.€Ø„�É…”ãd”e”¹£aý\áEp’¸È 4ˆ&»ˆQô IÂ+ß§°µ-{€UÀ*bOp»‚ÚpmøbÙbÙKòß§Ë£ËÓÆ²jôcºjçY¥8q ï3Ã…1î"C‹)hìê'(¾P¡¿u8•ÀZ¯sSçf{‹³£"òôÏè ï �·“h'‘º ¶}åøçðÏ×ïæ&5!5y´}=©Ü�òJ·ÙtØt°çVm¶žË5´†^¸|žS.;6›[aß_ܬTÆrÅ>Ãò©©×QÏ3Žuñ³&T7^ì3òÓËw +üÆ3×"ß~æú®Ø… 3ù>Z¬ Ï÷l¶¶‰ÿ\ÛiD©˜:ÙcSÝðCû€”eÍ@Þ Ÿƒ>åÔ; xîõ+‘ ùîîj6K K€ h¡Jk²‡f…G—ÛW¥80ìì\ç@»5[à-ði�¡^¨«­˜”›˜`ˆaŸ\»÷QN6Àáˆ8ÇøèôÑIèQ¦ (‹—�€�`ÁoÁOrÉ»þût(u(Ï:»Ãln­T/� ­Žq­i—L@.†Ò²&É›Sq"C¾`ˆ;MF" °TÉOÏOïXˆ¦°W²’þh^4ï¥�����ýØæ"G†G†#C?w}lþج^µ^íàFÇÂ;£Š ŠÁõÔÈ„YOæ´û>Œ*óï¬�=ÂoÛlн¶ïÊ‚œ}G|àý¡ÑºL‡’ДPûùöÐ^/Iî°’ ÃD¼Œ´k±N‰ ÃÓÌÅÕ,勹u�Ã�²ûXNfI)Ô~]›¬–óOq96©ŸVG3Žß¨âLÁ%½·ðM›•|Q+ŽO /—T®ýK¨ý3Ím2Ú†„[ŽpÞ¡¿[8.�ûð¸îl’\7¹cÕŽ|ÔÇUWœ„@²6¨Am«µeÃÚ¹SõK}í"p‚ï1–ß;ÉÈ*xkE�¶Ÿ‡Id„«É�%%´¥jÿžF^þ†wvg·Rt.«ì»?.ÝF[Ça®h2b†u>öƉrÉš($‡Ô~eŠyÇN^/êÔ@ÕgÜz¬k{¸�«¬VøÓÛä�#|Ê S§¥LçÛ|mÍ µß¡1¼9À€R÷§$aD{Ì.h4ÔŸ4ãò]åH–`±(OöRPG¬HÞ /ƒÔþ©ævŸ=¸ôú~½iNÙTžì�°P9œ˜T–ûIŠŽ{RœËÍm>ãF¶¶C j@Û³=1j¥ËèZß®%º£ µþUûÙv¿ê5¨=áGæž;®_d5¨ýSM·.S¾m—UÒ¼ŒÄ/ŠP~h^ð\4CmˆÁzÊaؼÉT4I`áLœÔ~]“±*?C!ÙÌ•ŽD½ÓI²qpⱈ‡SGF7;fx8—Áñþý¼V/+¨ý{ZWçeW±#ËoŸ.t�¿9}r.õ‚±Ù‚Ï}¨,jÛYCeüi™¶t’ß±ÑÃ5-é#_‡ñ>™Æ±ð´{Þ¨æØ‚}6šþ ÁBIp?�ùQ?Mù+.›��×Q'�بåÔkIl(ÑõÈî‚T(Mq@Š©*t*t÷µåãð4"àT5aß Á&Áv\-´;´;1°­/Áð_œÈÇOCý‡½; ‡²ý8n˾e¨ ·5KvSdÏYY²fÙ"[Ùâ¶g¤BÉ’È2H)e ‰lÙ’Fö�J‹½…ÌÈÓuÌ}=1%½xþÿ§»ÆçÝ÷ÅuÌ‹óÀù;gÎYðEL½ÂyIûá(à®VKäßDyâþ4hþlÖnPgøŽP²GŸÁ± `xÜðø§§Œ ÆépŒÔA7ê4êTÜ_ÜOÙ�{cjCjC;ÅOIýXKôðÂ=ÀL"ÎDº»ÔqYœÛpv¢Ô'5^J<_�p¥7NCË¡ålwjˆW–é_/_¯�† ³5_W û¦!Æ”4”4oí×âû¼¯Àu2ïdþ¹8j[ò1yÃà‘N�ª¥Ò ï Ïýñ¿GxH¨{§ç™¸7Q¦* gß—…î?=s$kaÈÆõoL9‹ÕÚÏ«HâÎýaß?÷·ë™ r¤ý¨y¹MÎ8N}p³µMõåÑYžëÕ¦Xñãc+[K»„…Ûq‚\E2š3š—ð…rØí�NýÎÏtÔtÔâNÅ6Ŷî$@�úõ�q4àÎþ]‘¤÷ò3Sõ8J¡zÅ }^C^Cßî™ã©-_/¯Ï'9÷d&X3‡#ë˨$‘N `œgœ¿º@k 5ò¨Î×�iü`~°›wnÞ?ã}ncü*ü*ý/I~ì@@‚²5#@Š/ ˜_Â�øV9 Ц²:ëã¢êïjØÖtÏíž[r"ëèã‡GÞüŒ"l¶30\~ÇrrµƒµÂ ·ÕŸŠÐ~ïqñ­{z‚©•ò<}4Bu½ª^¢}!âhõ’¦Î¨Éëω}Lim9Bûóš ³r*’¸*½U·‘’4:¦ô¯�õÃ% “"<…Þ–Î7UÊÅ»jÑ„Fh¿Z›bÉömCz ïxìBd_à¸<:Z#ó½{ŽcüɤÜäÔk‰cnîNÞêp À2ª?•àc@ñ@�¤°Êe³y5ñ—=ܽõà¦=ñø¢•×"í�re>…G.Á–`­2|,�zˆÒç�g·|+oÞ~áiH¤§ï9 �Â.ÀI f­�­tFJÌ}p8?ÒÆ€šÞN.O.“gˆ$T ˜îYºwç㜃>ÒÄ™KVÃt¹ }’B’BŠ;éìé슥'± “B¬'Ös0v06+ÖëêÆ^õ¼êñ™ØÁùcµ³“"§ Z¢8B*9—pi‹aÛ¦ª®¿mÿJK»Máã-@m¥p¥0T“‚B*½û3"9#9³ä¥™¤™ÆìðE@¤¥Í[ZS�ë�ëC\×:,¿ÞÇÀÈüNØNþ¬ëš™Æxÿ5.aí•PMV òÍf] H¸�$wđʺK*嘔, îá‘£‡iE1üá¾Ì±Þƒáî[b]i,V³Ùþn‚›ìŸ>ÿ�YמïϺZGj%Ì›FÄûáòýKÍ›­mš/�îWY�ñð±(|¡6k�ƒnÑ~¢�?òÂã…‡…œY8¬íóLÞȽo5`°Y+ÁùÁùµPÀªSE8`±�¡?Æ4{ÀÀl÷‡ë¾åÔ^²]²]þƒ½ó¸ðœhÒ*»T ZD„#§¾"^{µq'@ã•Æ+l$ Ç»Ç%´ã0¨àS¡x¡xIIñ§ÍÆ&«&«Bî2þؽÓ{cêq¦ŸI‡yøàl×@QÚI�<׿üj¯í»ýVÓ€bòL˜:9Y ló~Æõ×o\‚@?C?£öà“bÜ>»}V·‰fªŒ«ŒëÌÀZŒ»× A�Û«³«³ÿwmÿs×åí)•]�¨�èXoL6n6ëÂ_Û¿Ò½]Z{nË~æÍSJ¯€W=#}áF«N+{Ó´¯æïšê+$™²%2cp¶ %´?¯YÒ!ë�óŽED¶§wú{˽iÒW0, šNž¥¾sJ*$$íìFh¿Vó^M¡V¿ß²MŠ<}Š‹ŽËjVm4“‘&©U~ƒÊ`$WÙè|oЋbBûµZ½ùê©þèAÇ­›W ÑÆü‡`Œ>Á5<Ñüã–dwaº¼c~²}„öû´üî9‡�°7âU¿ÓbG§ �‰{â9Ú-bÔø*`yªÕ‡ö‰éæ»[ž ´?¯•5ÄbôÙÓ£túÃè_^ÞÝuÕŠtîQ¨YÀxÁ;Z2}­�‹>!$„Fh¿Z;'#S@³ÀÞ°ö¥ªÚ6Áqán§²œ$¶÷�æñ"÷½ú/‰íçÛIöÎQÅ]qŠ�¬Ðï˜ÂRHçÞañg;ƒÑÛ�bß xå]‘O¡Ãn6Û¡%&"bxº^a«o(>nçµ2�@×»šA6]ÑÑ—-l.`ú§Íßæù²Ùrã±6ƒ6ÃKVÀ±“ +˜9ÀµZ%' @óì!Ç)>Á’2t¬õž<0…ƒ.¶R‚n2Nôá<Õ%“¼m_ 0N0N¸+ˆ*�* Š5²hÙiÙõfõfEÕMùnìM×›. é—?†1?™±eàÏ‚³k‘oÅ,§È49MWDןm ­éË™¸¯r-É Z"ZzÑ~ðÓÁ‹iœ?£ÛŠ¥„ó–ñ–…ÞÇW®î¦îv#&È;‹�=‚^K)g=}6Àƒ±xH<n™m|óÅ늟šË/G6œí€sËXd–b|漯‰ÜM§Dÿ¹n2xÅñð†p’!�©S‘æû–ý±Ò)gŽœß3ÏäòJ¤PÉ–ø;sK‰õsKAjÜkiA$�¦;6£W�¥?Ëç6Øl΄ÿZ8Ê }í7w§òä†6Ïk9tÏT í�Ðþ må˯—Ĩi³×±÷3õÅ�5·r—j[Mèõm¯§—�GÅÙ1Ë ŠJ»í×oïØx –i[jrUê­Ä¹"Õ.î}_FUÊùŒë,ý6¢³ÈÇâ—»R‹�ïÚ§Í©ÎÍuÂ&u,ó˜±dÚ7U$ fyU›ªÚDÏX‘±†Éyæ2Ø¡mÔ°TdÝ~o;ZXõ\)Û/¹$ºÿJ÷ ý.Moê“!;bG€Uz’ð“BT ’‘ícü=ЊM©æ]Á]ÏÉRÊùt¹6ÛÑ}ùôËz;lËCð¡%×R¦å©[ŒƒP[Õ4Ô4¶ ù`â!~t5:òVß"ñ'ñW& ãxÄ($,RFªTÂÖ€PTÉ Nº»îeÐ*>*Úí’ùÐÔEê#ê#ÚbÛb+ÔŠØR)îÌË’òc§n3½0ÜÂA!³Xá˜I¶çïŸvS ÿ*�V,šàr£Ã»Ã»mQ�}Jމág,�.�ÎvQuSuÇãKú0 3 S,Å¡'’-’}8h­Õkëm4\  ÁßåZJ•*Œ3ØL½¦3’/{s`³=Ð{aä^ÖÌÝv3Æëô˜°ŽÊ¦jV?Vv´¬ýž-OL*OÌ4#:ÏÓ,ÙATÝè vÅ÷Ówö@ÒßïFknKIe×EŸ¡aÔÉ”¾ÍÖ6ý—G0¯ÇÆGÇ÷Öx­tG�˜wA=ÈdÜ[Ï[¯­ñeÈ0ŒÞUmÕü­Š”Š”�yç#Îÿóþ#¿ÄJ€ë]ÀCãà4?ే¶©âÅy�»é`æ`¦mìâÊ:Suǵëg@1 à�¼D¯£ÝÃB‚1‚1Ä“€ÚÚç– GAÝÉa“a“2s2s£�È‹KñLñ¤ìØì;£RHB;=yÎ 8ìeµn™C8æáeÃkD¦û*¿ŠíÔá‘zØá¡J¥JµMÝT·Á¥‚çgÄ~ñhk<~|¾ JäJäNÄ ú2:2:5¹kA:ÖSòì�4h1h×S*·ž<ò²†ºf°©æµFå‹ÙlO�¿¶É�2¶T‹�Á>{6¤Á/õ©„õÿÎmôƒ£”m†5%©´¬SÌ­BíKÇÛU'2z Tú¹ûºÝÇC��y”qE„öïlgùù̯>¥æî3”a͵6Çj÷·^¿‹Ð8�Ñ qr|ï#—/š8ÝaBûóšRU7rçD_œ-推\<¿…M«:[8\–íućXb½û,$šþ‹ýä» �ЀÖÙ{³YÝ©êµh™–ï‹ …?â‹a_Òu³EM²4)ÉŸ þ°…Ðí?ÑTyôiÒ—›Õ˜¡3u\asf¹ýd޲X¸J¯È{î$½YºûtL±#„ö{·¡>Ú<Æ…‡D*:Èjþóìg®i˜\®+2{+SAÚ�Aö°èÜ%4Bû·¶™±+J¾îÏ=´¤”·g3Ö<�­'jìV¦¾– ‹^ÄÂÞ üÍ.HFh„öŸhléÁeu·R�<ŒO]î…ù®nO½G�EM±s™¢žÆ‘üëØu¶÷N„Fh@“™sYbº_ªOm+Žn±¯�õõ¬º‹?ëePƒ–$Ú•R?ñz¼[tõÌf³^b"¢˜Ýëy[gÓãs\]Kö ȇ¼/äø øä×b/íM–äªÙl_Éo©£ÕÑÃìñ‡âÙÂÉží·Ëä)%îómåÒŽŠ6œÒ¤�¦†®†N¥Óׇ<ï´<Õ”Ó š[x§€ƒÝÁ‹4‰ث٫¡ûoDÞˆî7| ¢8»ºš„NBO\,|´1žBžBÝ·Ú?¶påÙÅå€ Žßgº U8q•ñ |ì òS_å—<²Ñ$©ÇÇÕä—vœ¥ ü)J%+záÝ»|d—ä‘òÈú< Ñ7¨7¨Yɵv£Ö〨ÌÌðÏ1ÃÏX÷ïJRÕë­Í�Ÿ‡$mvŽñðñÈ´åÛ2Éäá-Uw^­´=üs6c·´GÕ=È»8?gÔì°Ù!;ÐhtTùÒÈwÎ1d¾Ž”jo8÷T«óŠÿ%~b²S›­mÆ/�¦d_Oà`Æ>[óµ†.ƒÞ](t}¦8÷ùÜ线_åF?Tü‹£�æ[$WH®Èe‡Ÿ?ïšè»Oþ ‹D,²dÈ]zm‰£EçJEGÁ¢`>JT÷@$/AÇÄÒDqÊEëd®™TqƈLjÓN&ø&øÜHƒVAW!c4c4„Cð‰ƒ©»Ûr·…w:ßùÇBW­Ra(œ}·®Î¾êÃIÛ}ÍØHGíÙpÖWVJÊZ)e̘T bí ¿¯%UñghÚiÚåUQ )�SMø 'Ɔ³ZÓAÓA×{× ÔYOð ObÅkÅ \Oƒÿ¼7Px™KB¼„›§b_Z§Ÿü±ÍÎ1ð×ö}!¾=[>ȯ”RuyszHqt&´ß§-™Ëyï̱îsÎEs_V¼�:¥ÄÖ¼êKvá±à-�×��o�Ú%4Hh„öÿÙ Ì|¬+§ÐEω�œÈ”.SÿÔÏÌC•D&é×:ìsKŒ=ë¹aL¾ZÉõ†|B�˜Å™oŠ?VÙ1š?––ÑkDܱãdý>#>#Ó+kkü‡‘%¾¸’u%+™^=¿÷nï]VßÝðÔöRëDðâÎãÎ#ÏÐTÐfÃâÏ÷Þ\¦‡>Õ›çfÙo††|=d}²WYŒ�I:8ˆ!É-�¾ÆÓw5Ã1Ær¤·"V±në¿{†Æ…˜¡ñî�¡‰üõÞ­ö•ÉnY8¼ËSG9Ntší7ó@þ-ÿ­ç˜/ãù ?i£„Ò\;?œá¸%Þ–lÄþ\ýªÇmïv ®&1-!TCµ¿Û°TŽ–¶˜\6ÕÏ9ú:cö`•Çñ™ºT·B…6±é§Ì{%Ö½¤Œ {Q Õþ›M+ܹ„šR²œ.Q yxâýÔ¬*¢‚šŽôS-¼c¯­:ŠÞCxÝ´½‹PíÏj;ÏF<¢š¤ïl¤±[Q¨àÔÐÐdÌÀ¬’>×À·æ(7û(®ðÁÕþ¬ÖóÖQý‹Æûšé´ì;uhäT~áçnà6Ö.“áý‡®¸”uN‚j¨öw[DÏM»—:\d�,ô ™¬ZÃÂ(EéO¼ì J-x|Ù#veHʨÕPíOkoˆÜ­XíJcg(Ä)\e+ÜÞsRþIÏãý¨�—ïþ¢T5]Í8Ø~D¾?�–Oàò\ˆïöŽ/÷+ÓUÅro¿hqî7޶4Jí5c ¿ˆ¬Ç~7jWP¡ &5ˆ•fznzÎbS—]×/V§Yñöô÷ÖsÖsrtðpðpdý¶!â0õ< ƒNúc‡.ðÂÑzzl�ã`|ô”°$–£¦ÈÔŸ� Å:¹Ž@b0+ºî‡.àÌÿXÐ õÕ2tôHU Í0Ý0=e)!ÿçF4G4æÂ—­W„ØŽï`ŽaqøÂZå'„+™Å*è×Ã0¡�ß)žºi6êÌéÌa“+ïKžô;ââDV!U�*ù,d;üÃüÃË:gˆÎÅãîÖˆ±—Æ2 øÑ�òåÈs¡I%ØT¢)Ï…Òe>K,ù$ãýæBÈsÎ¥ù7¯N>¤ÏÏí²#V½X‰WjõuÜ {dÙzBì^4öæBü?>[õ\HU+Ýø=·˜¥üIÓäû­m²¯_­lºWxSŒ2ÿÕÝ2Æ@2÷·»A k2)2)‡afwi‰µÒ N³|/éRÒ¥jêºÔºÔûb€|EŠ €P$€BõᧇÄê~„”çz U5*y*ùF• )N·ÚÏ�Bè§[@˜è�\Óã” !-oFFQú??­Êet�iBv`v`–p–°>¹ÀÏÙºÛº×wøüZrg@¡� Š¡ìK{kž!ÂÊܵÇ�<Ü¿1#Mïl§ 3 3‘ŠžæeTÑoÿA�‚ñCÛ7Û7 7��é‰ë‰Ï2ÞóZñZ��ï†�³W&À¼Gð©àSp=9ýu¶êJ9ÉòÅZì^²êÍ‚Í!ÂôýæŒÈkûß}vÖ‹½Sh=Ûðÿ°S]‚û1M–Ò|tw4V>Œž.2޷ǸµFD#.£ªmZp²¶»ž\Ö¾Kú¦ÉKå,V�hhqCFâ�“SŠù.%¼„½BÊX¨öÿ¯¥�ôäÄcšÁÌ)£æ�£ Kƒuj¡õê1 ­ïôÄZ.x…q³ç¡Ú¯ÙW^�uÊåá\<ªç<-Ÿ]oíÀã¦#Å�ÜÎU×X·;3§’Á³Ú�jV[ªmNˆsMËy‰Ç|l(Ï^–”3Åv¡†×êÒ *z­HqÌ#2¬p(ªýù zÌŠÃZÁ6¾ø…’†l§íÀÐaÁ¿s»€Td‚T‘�Âx^â“Ðèä±BK¯Qä}ÌåƒbnŠ?$Mj$Ä?"r¿} ìë>¦·x¯:ïbzd¹É»E½i¨O=¯i=ÒzDæ„.�vÀ"{‚é{;¯v^Øè*è*øßwN½øcBÙ‰f/p‰Ï¿E Ì‘4•å©v«v‹—j©|\šåµÐ>­3¨m#¬dȺ`­¶PÖGÖGê)ttºÃ¼! ñÑ{v÷ì<¡žÐ8µ~柃LA¦Žo°ÿ;W+¦- Ü¡|qøNC;Âðì&G?Î-‘oÒÑ+ÞCØÔìvÅvʼnþQ¹ª²¯~‡¨¥¨åJ>×2×ò'|dT��Œ�ŒÇ6Ì8Y"Y"ß<ØMÒq¯A!ÙTGvG6òýx�Õâó¹�¬æ²«©ÑsÖðýöèÈg“îK¦ÝX}¸^“¬·ÊSÖ)§Ö~ÌÉÄ^£bÂUÍ8sŠýû=:÷�÷è~Ò/Î[B9CÒp“‡èFX÷[Ûä_×vŒÜ^ B9ÈðìæZ Úà^¥ÆoÖmÖéP—VÌSÏuKO;û=x8<üÜœNÛ¯˜�éãp'n?®\ºØjœA0YÁ;ÚÖ¿Àv�-­‰Â$t,(„}AUä¨$Ý��y5³²?ýŒ>`8g8’ °I±I \¡Ã5Eê§ê§»»R0Úœÿ¹r‚r‚ô5Ž‚_Ãþ˜Jj H1F 3#“ë¾€0 ¸âRvÍ!Âð�žI1º–'€_'G*GJM'^šïËïH.I.ñ䎹sEÙ€�/³/ó`·ÅŒÔŒüÙnL±{Eb(èçŸÍ?×S ±ž(eíf-§á•NíÌûíÑ‘×ö�þO*ªýï´Ç±W§Ã$³úEùFÖ?ò1Œu·¯™C£[§õtDtɽ:¤žÊŽ9—£Ú?³ ÅùkoWØÓ”:³FªWbúÆt]é=;ùL…8;MÏ9©ÿѹ^›y»ÑG-¨ö¿ÓÞ7Úûâ¸QÇzqÒ;q¦ùÃå Õé]’˜~䯞Ç %ˆ=½Ú*4]e�j¨ö§µåÒÕà¼~IkԃéVB5±Zö$#_¬›Ñ6nuj¸ ¬`ÌÑᡪý¬i޶åaèl{:•›Çx±ë7%½b6’­õ9ZÆÎ§S…5·íÔŠjÿÌFÝJ{´BäWº~èž|p¹]ƒhÏfŒ?íP·S¼Œ‚WT廵”稆j·OZ‘ãгJ<]ýÅz·O4vGk)ùÁœ;ÊØvœ8“ëz´Øƒ…J\Tû³Zgœ9Žö}«ÚÓ§NÀ¤lÆï�ˆ.Èš‚5M›ŠF¼÷¸M“ƒîœºJk‰jV³² )X”5ºXüYý T»'9"ém — í­aF*Œ²Xw³±.TûÏ´rrb—…ƒÑØ¡´–$¶nW·‰oµ³^¯Þ8z+SÛxÇvLÒT Õ ïßÇoߤXË_b�’4¿BËŠ<ߗꈾs%"bŒ­­/mvÕ|¿ù> - w¯á5idÚ³»Ùyƒ  Ü WWöqÈ´YâºËÛ…£ß++=Ó¾Ô¾¤³0‰$Å”ºʵ£B »“"y>Å1d)d)(·’2*Õ<Àuœº r«¤uB`O,­Åc¾^ ؑۑÃÙhôkô×ça‚:,r?ä~˜¬�¬Í¥<,ösx!x!UÇ-~ ËúA|° "�M¦ †�7¦A¸5­~öã7Ÿ·_5pXYÀ-àÃOÚú·±ÞüŽ$é$iR!êBêBïduèM8M8ÄÉ›.;E;Ee¤»9*ïÕö@R‡áƒáƒ|ïj»/-ÙîŠ9ë‘–Ü�!e’ýî]!?¯ì‘)ÜÕêXÒeN½í8 #Å³È€ÞÆËsîKšìBý œ¨œ/üñ½«¶‹ïå³É;$ï&Ð1D¿£ÛomS~ýjkï½xYÌò� ò톿"Ü¼Î ÚæÎÄÊÄš'š2žÉ ¹ãd6—÷=VVés´ ´ ËM¥3)�êû€¾£Õ®‡Å:D!Ä^Žeù¾ÜÜòlãÒ.(Mñ*\í}�Ÿ•úrýÔ@Û˶—|K_?'R‚ÆÃÂ`ñ°øí ­Ã?Ç烻¿‘ ù5ÞŽk¬€¹w¯éÔ,$Î#tˆ£…¤Ú$SPæcéV ¨î¾¤~I=\Z+37`òwøˆûˆ×cxŒxŒH: sÆ;9qrBIFþ�Z‘Z‘…ðnã¸{±9>?²u³uû×»ûþzŽ�éX‹Ui\3Z÷ƒíÅuŽwûÝ»B^Ûÿ‰÷´ ª­=ðf3Äæ¤ª*倅ƒ÷‹Ñ°U±,Š’÷Ù,hg/DÔ0Xtça‘$£ÚŸßVdóI沈™7\Cb_ Ã28xER?é5ÐS}>àmáyûÕPíï6‹A¡¸ÄÛÄOÃÏ0§‘æD2¿!fó%çM×]êG»)å×àÝíP™cI’E†j¨öOhçÅI.5Ýæïöè!2‘“t8Ne,R¹%à€�îÀ’*ˆ3–§ aŽÎ¨†jZÃM­9A"ICY3Y³×Í!VGGrz·‘འw4P™4™4ä9h§•ËÝ�ê.˜®+„ÍeΞl¿9(òûI›%ËÂh/§›%㹪ùº\³­�_4 †·�ÑóVáÉ·&úƒ3ü§öÎA©¿Åv¶á˄ԑ`¦šEÕcÆDûÍ­�K¦Ñ;¯q/–¡ÐhN-j…ÄvBTûýö\�¥Nßz+A˜úìÝw8•ýÀñcÕ!#Ù#ãÙÙ›(+‘Cvdo%3²GFdÊ );[Ù•-²‹Jd&!<~Ý¿óÜ¿8 ýó{žÆ}¿þ{ÿq_çâ{]çú~¾×¹ïUËv³Ô|LÕ\ ÕRÖ+IÞ 6DÈ8Øí’R¨ý{m꡸êäÔÉô’ ¬'G "‚…ã=6Ä’E0ÿ¡`l„p®u7Ôþ™æ<ï¶Û…ÙäcJEVá„$F…�æ|²ø�ÝÒ¼š•¿œ¼`׃ñ{ µŸ­­êÔ-Ø4.�(XÆÀÂïR•ßµ¢Ú{0iý Ùó½0jžWˆVÚÔKíåPû}Aù8Ëü¾�ÃñC{Åf$RºÌÕxh*[uiv÷ãÔŸ‡Å�Éž ,$€ÔþÍ6ve†ž ‘Ïþ1ñˆ^²W´—“Øñèæ‚¾W¬r”Ó"�†ï{|,NA j¿B£—§¬Qö'‚Su¹)ä<Ñ9ù>øÂç/†›´Æå7=¤”¬ ]&(ƒÔþ©éœO^%«5Ë(–Æ”ó"ò’8ìJš6m~²´oªý“r#ó5ŒØŽ^¨A h¼»nÄ­÷놎°r,‘«_¯;æÿ@FšŽÃ ú¢Ç‹à“¾ø®¹Š×ŠŒ µªi6Ü–ìí²Ì.i[uÁ*Š‘«0*háËT£4›¶yiÔjȗ̾x6Ñjÿ^5-?K(Ô†Èp©™ÑH6·±g²®À„5à“¿Ix££’Ki—ŸˆÙáa µß§õ÷9R[}Û¼801î`5ÆÌ×IÕfÌê:V‡wVLGk–D´'þ+6 fUŠØÁH–¦Y˜±»eËE»vôsÚNO»àûüË/ ò9² ‹L·¦at뜓Gy\Æb³ £#£ƒÛ+ؼ!}=²+,¹J€1$ ÔïútǬÇç@ç@z"ÀÓ¼§yð:U?ÐuáFæFf//Žþ ¼ûßf&b&•Eý}šn~"H{Š=vp#& ûK]Êl—Åý8ÚŸQçš*êê»Or�ärxßËÐJU=ô#ÚÚ¦Ìc�Æ}³ˆn]Ü'Ü'œ_{1--Sàfñ¶ŠLVº×»×£ŸÓú§‘_5Õðé;Z¹\L²Ý9-ú{‡ØzöŸ ŠZ·ãØSÉmåz$Ž­¢#èä­wCF¶Vo쀑lþ½ ꜖÷ë¿W9°ÿãåêAtRìYÆRœ·[Û4ŸnÝ·²UîéSCè ›7CÉ—ª‚ç…„*qf¯JퟡÞkWŸû%¾|„¶Ô¶Ô6�f´±«ïš½{ÂØnîOÓH ´‹K€èl]ü]üõ͇Èk�ØAùM+ ³^µ(º;ü˜°¾šðuñu©/z§z§ê…zƒ0cFyFy¦s§sé螭ذØ0›+ëû62,bÏYPæóÞdL¢hÚsf{yì"ýÌ&‚yoDàý­LöLö©˜•ôm¡?‚¡›¡Û3ŠÈ€È JÝèküü’wãåöFÝ‚ÎT¶›ÐbÀ`Í·*™ ÂF<峇í Ù Y~P詟ÐçS:·Ï?ÙeEUHú%*g*ç_FF„'{¼ü<@ ̃!~ÒÀé‚«…¢¶Nž švß]·»îþ‚}Ž»=A32y‡A÷êätPî®–âäW>h 5�攀Ç�3¬ç$ã@�¡ËÈed€]€]¿M·M¶N¶&‘°²}ŸV¹‹]„œ})/g¥(fÆag&‚�÷³= |ôQvíäþøþøQ¡Y¶LùÀ�p—q—±^̢͢µ¼�.ºjimi�ËJl2 ï”ÝŒ‰`+v$kF¤@¤}Ö•¬st´?™�]iÝW�êÀÎÛͺޅH«ó0œ,¯�‘)]M¸µ“qxÄð>Ç*³¿+i¤Ó ¿N¤í.½�Tš MÒZÇú§#¾2ë:ôõY—Ò‡IÆŽqþypé@¼«6Û­í½À³Y ·r©¶oF׳ùeŒ;12Aµö×@+×�sçtÖ×½$k{ó¦3‰×—àað°pûA†A†ûjÑ5€8R€vÔù2…YÀ%{Ne¿AÐÝ#ïGÞ1kJ><îwî�ÄmÆ£AÞGñ}PN™’KíñB¨G©Gí¤Ó~Ó~×ÇWóAÌSÓÀœÀœû€õo³ª¶ªÏ/Ù÷}¼ç²^åøÃQÌ4×i$zQ�K< ‘eë“IŸµðìoäï¸*n 6§.¶&GºÿˆþäþdßDáháh›tÌCll+/w˜ââÒånöÈo«#z€4æ æŠÿ­í¿ŸÍ¿;%Ãm‰‡4'xG•=ްݬ }mÿLÏíúÓÚKcÚ É8ÝY�7ܽ#}þÈ ËuÁJ׳X§úîxbNÃÔ9‰¬ô° öç5 ‚�:«L›E_“ÀÖ¤.w'‘É&651�;¸ÓWgñòœ…©ÙØl½í ös5'ö�<ùŠGäü;’¦ fåžßÄ4¹Á¨Xš�«>’!…Œxæõªj?W«ÓÝpî¿8hAü¡y]£S“™»ì8ïnïÄEæöQ}ì|Þ£*û^¸ ÷Aí÷iY=sæx}ì06ÜÎsN«‡ÄºLת&ÇìQÆ›)[}\’S%ËAßj^+©�\U£M Vî÷#lxÇ×|Ýk®Ñ—Ûcôξ2¶šâ@´‹&Ô ö³µðà(Ñì›î˜j<|-+GÎ’ÎÅÞîÎÈK/%¢Jù츂M�ƒ ÚkÔ~¼�£íz.Î:%Þhй°Ç/kna }¶³LS¹{Ý o\tÔâÉœÃv³: ¬àÁVz è¯ÜG~c3a%Pcl(&¨�ÕêŠÕ¥d|³0…*+Ï»ðõ/å%å%ñ «ÁÂþÜdïÀ5­Gì $ÿå‡÷·Ú—Ç5@ßgyey…œǦŽÙ *+»ð y�’m'­}¢ÜpŸø>q·=À6Ü6\³‡òáìLêHê(¡é~àÛÒñÓñÝ#K¿ï”ö­ß€¿ ЬSP&Š$UU�T›Ò¢ÑûÏRZŸ‰õ¤ŒËKÊKòßtç2õüƒ»w+y X X}ŒÑM+ûº"ÊX3Y35pmÆI²U¬5 ¥ôÓ¿&}n™ª™ój¢¬Þ¥hW\Ê«¥‘oÎvÀ¹edÈ-ñË7ç]µDr,ãÝçz°¥Ëlüëý1‡”§œu%?.¹¯ $�Œ84¿ÇúÍÁ{Æ_™[r}néZ!gÒy(Èé¾›ÓáµLÂíÖ6ý§[ï ÛÊñY�*:ÃùÍxÊ@–2mA5ù¢HQdJ/Üv¸­s1ÆùK•/+_’Ó|<ÿñ¼û ‡Ä ¨³,ZöŠ.Ð&�("Πj®�¼�¼^&œ6=5ÁF�¦·©hŸ›L J¡ÎÆ¡+ÞR–íJíÊ]Òùpùð;ÍëÆ ™õ×B¯…,,X*�¿�œ—œ÷…nÕ÷U–V„º7TúP–SRn\}�‚9�º¶÷mËlÓàg²êõnZî o•D•Ä“ŠceŒï~D¶W¶×4}fzfúÓ5t±Ë—ãrE„…foVʲ•`ÀßõÓŸv\O,x¨õôÈäÊy³Õê[j³ÌÒŒêÛÍ-Ñ×6] u_kß5D†oó¼¢yÏLYçi¨AíWhë¯⃧Åt&"+nªqY)3z+Œ©öQÔ IG�&J+(~ µŸ¿-Ð ¨õo¤àÔdÈÔp1ÊE ¾/Á-¦ïf%$‡…†´pÅ=½VhujÿL›“�›ëâkôjÿˆÐ!»iÚTÏÂr˱ Z[Öè⌶•ŸÈ™ "c¨Aí[m »ÇÜí­ å#s*U[xkŒu¼ÃÏô\½ß¥©N­hКPz$]ao»—æ)�4nAßwW±ªQ›)¥ö®&õ_äˆÚnßÁðiß1²²¾ÍGtû7Ñ�KÿŠ̓ȓȟ6b£À(Lõ–áKٸٸã6µŠµŠÈ€öΰiÀ°-ଵٓwñ"ø”Óø oA÷]ޏ¹ÈÚîí[}’D°få Ⓡµ£8昵µ›Ï2±2±B¹¢¹¢¹§�âH�4ªûúvJgäþ6'9'¹²¦!³ï“´—<¡PPmG™ñ’—“Oü[cÚmªç1ƒ7>cÓ{dé8œ&6/6Ÿz'U�h�ûô�HK“yjËlËœmŠNt(€8üö#�f•f¯Ëf£Ê[¥î˜„M5M5¡ï©3ôù‹ÅF‰Œ¦&�¢%“G¶ÛS¿g¤òp_ÍoÕÙ}›pÕ¯½¼©šÊ�жSØôN›Vùùc7u`ˆfžvXuƒ¹\¢ëÊWöÔ[÷Ô×HPŸ¥ªñ¬ñ0µm �læã@C¦°íö@èŸe‡e N5gá Þ¿ÎÔß(�Žé“ñëÿ�ÛóE ~ã”Sp,a˰Ü{Jõúw+íSz©qÕ2${F}Þ…xf£  ök¶Pf&ÝëxŒ}BT§t×”úÇŒæ›=ŸRÏ}nT°Ñ:öì®("•a¨ýyM¢²'dÿX_”ñj‡Èef=£Çò4þÒÂ4‹‘ªd˜ îKý;X- 5 µ>Ëi–·¬¦>»¤K=,Úì+ÝÈF»¬bgœfxE_«(Å cjPû4Y„Ú®wI›åÍI©gjw2øÍédôc[¯IË<;øžñŠê,AÁžÈ¨ýÞm¨?s÷»^"óx\-’�¬—©Ý¶7V3…YÊYŽ“´š‘"S·Ô~Õ6ó"ÑCÂÕᥣ"¿Eêîš*á:XÃ`�^r¬JçÒoìä�� ´,ØPƒÚÿ£Ñ$y—Ôæ^³tÔtNdÆëºAqí>áZÚ-=R;­#ì$Ï^³*yš÷–PƒЄ欗÷T«ásu>2­‹t=S™�>w6‹™¿M�E\�y0»úâ£ÔíæÎŒ0XœÄVý]΋èXwoVÌ ºð¨t”1]/]Ïhñ–gÙÓ%Ê«§—¾T$X$xoØ|Ø|uðDXZ €í "=XµÂ  e¨TA!®ðÄ�88 ›„]0º«íröÙ(µ8 ” Oƒ2¸úᘠÎÀp˜á0% †)†‰­ÁŽÔl>ùéºJp•`ùpýò·a'a'I-Ã?~Ÿþ‡©–®«€ÒEÙ�{æ>(°v�¦Qµ@ò½î ÿ³à vòòþMPC�ƒ–ƒ–¹¬%G‘Í|¼Ž›tÖÜ.ô &¨ö¿ÓV¯ ß<ñX«Û$¥�!\,(fú4õ«m»Az7HÔ3D.†„ÔðÿéC5Tû;Û¥«¶Z/¦ÛrGÑ”úF Î}î!%öÇ‹DÐb �z‘iòž€c9ÕPí¯jܹ׳EÓ•>V1&ô­‹ëé ;K¾öø˜d…�í•ÛÁìV‰ûÄÕPíŸÚˆ8ž*.ím]¢»FR)#¤oj–x­¨·…J•]¢ê´QÂðú‘ÛdÿíÖÕ­[«5ø‚�Ë*V 'áI>=†¼Wj!ü˜ŸÀ@Óë¨2æÔçI£¾ß^éø—½RŒÝnâe–¦Èlrvºù ÄrÔ:ô\ ª Õ-�=“oròI%þž³·³w ±-³-si`‰À±°  Xo:u¡x`c5¼Ý‘AµÔÈ„¿n›i›Éu¥T§ã…ˆ¹SA¤ó²ª�ìôCMS�€é+ÓWç¸þ½þ½ÿÂbÀÙàl®‰®‰QÉ;ö¶A°APXGÉósfJƒ‚á¡ü%y]ƒÍtÛRåjÅ!ÅcY;äwœ`ó æK’A’Á¯Y²ž�â�õ+D{D{4‚œx�xïm »½ÌQÀQ€š—b“n“Nus§¥ŒÝJLíÄãÄãàzšþ:8™£Â7}<$ Ó¹¸ñlížç/h[OðuüÁ¾ ù÷ª§dÕ";Óã ;40ñíûsn!ŸC~÷šzî¥L¸LfØ£À žg… !™B¼—¦Ú¥�øÔYÏG”!?sƒüžl#ÒÂP�«Ló]7ø4¦Þ8Ž|íè. _2l NÀÖcèÜïÚ9ñåÚ¹�¹›Èâ¶2JŸ�dç@Æænƒ†!êõH è‘"Œh™‰w-Óß®®$ƒÁŠ*†¶œÑr€í`€±ÊÑXÄäÌIÄyáå}ªrÐ@~, æs‡µüÍHU¤ ä¦m€ðùƒvk´€±›±ÛÚ0§>§îWü¬_-‡—Ã33×Ú/gî­R ‰yäòâçØi?j²xM"ÄHÝ[ Ü@¨=ÔÇE�@øP4æ›aƒ±!Ò €Êš÷Iï“ÏICBÇÜHé~ººÛ�fÃfà ]d›AzDzD´'zÕgÑfѪ1vZ¤ÜÍÎð¦Y#]#y†¦„6s¥×åNÞµ9^æýfhÈ×ÃÍ�6J ¡ç 0¡¼Ÿùú¬Òl£ ‡ûv¢‹—®Yx}ýmyþÏÐHRŒý6 ­�”mÎTì·¶™¾|ôç©ÝÒŽ©&#ó—ßéÍ{�ëM@˜ÕG@œåÛ‡›~|pÐ ¸:—:WìÔcwn‡H и|=èút B¥ç¹ƒ,’ô>…WÖ€¬ô¬ôu3¶ÐV��£�ã´Å´Åù·³¹{Û$Û$ÛŠ±ù¹%ãdƳÁó2Õ2ý§k ÌPŽÌ/^ ¸sÌú›øNŸ¤^CÀ³¸¤³IgU Gܲ+ÿî8î8VÉ  ÊdEf3f3ÌRzæzæãv’fÝM 0°¡Å¡Åדè×÷¸µß.䔎Çÿi‚•Sˆ£So¿òÚþ»ž‹7Å¿+’ÓF‰C}ãÊPšíæ™¶àGšl/•­ÜOúÞiÇTái¿©qø²°9ª¡ÚŸmØJ¬E-:¦ºê¬õiÓ®ìSu¨¼ƒ„×pé&ô{%Öܤ4¯÷¢ªý�íò=û£”ÐÚx¡æ¡±® -ì ÂÜ@êŽTîþÑz£Žü.t~'Õ;ù¨ö{µí ¡ÉTãt��ÔÖË¢r¥œêïT`Œi‡*ÎÉ¿øl+3�ì"÷Á Õ~¯ÖóÆVyUÅ_ͦ�z2å©9ÕÝ{cò·6Ó«Ÿç_}€qa1]^ÕPí϶ÐëÊ45R‰dõçÇ�Zïy�½££ã¨ì |œûÌÔ5zyPJ³ÕPíwk¯��X¬‹¢§(ÎP8J—:uñ¡ü�žïüQ»"Û½ªP1YÅ8âÓÎ$ÛŸJ# tyÝÿ肘XãÊ-úøÓ«ÚåûÍb˜ÑÑдv;.w‚Y*ÑN²t º|ƒÐzmTlT¬<¼!‡ý-Y]\�õ÷à,p–à�µµj3½†[,€ì>€SÄïÿ,vys#\2‰éÛö9ìcð`á`Záƒ,PxðÝQ�M¡k Â<æüæ³ï33'Ç7³ofã÷fw‚ºÙŠŠ©¯R_¥y‘®´·+�W:OÏLðýÜ‹‹úËJ©€i.„ ]O¨)>¡÷ŒFFV['‚ž}cÂtî¼·1®ÏlÆlVÚÊäœK<ó+ðàÝvJ‰O‰7FFéÒèÒõÖ œ…Í®‰ïôúônçGŠ+p(Š»á &Õ“Íy»^)ϧQÝ@g¿µÍúem³«îã)z‹Lßa§œ�´…À4ÿDïÝÞ»«9ùÜŸNq——¯vˆ|/g#gãýRiri2Q1@'ªË@K˜ÌÑ`çc49jû!|­P]ŸÒ<©y²!ëƒ7κÕE�\]½&èÕš3B ß‘N¼c/„¾„¾÷õc°1ó¼[H2£¨¦¨ÆÛÛSÎÉo¢”¢”ã$¤?§Hš]÷AXêóŸÍ[C(¡nP^�Ö¶¿•þMÍõlX¯$@|OOúXC®Eå”÷¯(;_v>,‰¬ƒ¬# †Ì›N§zÑäD ¡…8´î$Vº›I+ \�-™-\OÁdˆõD¹àsÞÇzÚp2äp¹]û ƒýöèÈkûG¿“Šjÿ;íE´1ãÊd04½_L`xmV€a´»ý³>NDëä55Ñ«änRyÒ£ö%¨öÏl±è1¼Ë‹�â&Bxõ-Þ=á¹!7_~Õ~¯–Áù@O5Ö¨ö47™”ùûÈ+B¹édM“ºb¡]®¾Ôö�Wh Qí÷jFÔEB‹XÒšÆKÊ–Ä8ª=�Bß<¼íà·µ9t’‘ ³8ÏYoŽjM+!&'r˜'ˆÀ ¢1$¶ p²Ú"ðng¹UµÎê�%‹«½m1 ÕzŽjBÏccµoP|Î^d ‡ê?‹Y&ŠfAžïÛO8@Ô�šntöeЗ*ï7ßÿ --k·qdpô�R„AM’ „@Á~Á~÷|ÓÓÁw/õkïÖÙ[gMnøªûª“ˆú'ŸnQ|̃ϔõTÝ•+´OŠ3�2!Ž"[ÖŽ�ü^ ¾¤ƒÇA$K‚™ê�ÝôTzé_ßåÀ¦Ñ¦Qö1O!Pj‰˜˜±ƒ±Ã¡4Ú¶½]x}ᵫ'û¥Ÿ;•<Åy) †Ž íÚ/œaˆpÀ°“bê³6,ãì7ý–ýò€ÄÉ6¡6¡êk 9*Åd¿‚Îß<:‡=‡]"�Ìrôøúñu| .^DÚNÉ–»àÒJôHô ß»ÚêKÉþdm©ÏÂÔ’¹=¨H¼ß½+äçâ]ŸˆÀ[m áúG·lß©Iñ-0`´ñóɯö§HÏ7”á…ÿà<à©ß»:£ÂõPçð½ËЏÎ‘ì·¶!_>Z0~7­9ç2d¡h;é,�dŸÿ—B«J«J QN[6\ ‘ˆû|Øß{¹ýrûÀU¦U¦ÕâçôPAwÀ1(À‘ÒªLÒËRÈA€¼|§’Yù`õÁ –s;(ÃJÔ¤ò�Äýx‚PG'hì;«S¸s#æ®5€Ê˜Êø\7ˆcü çÎÎs�çf*�®î-P-P —i‹ÿç–5²2Õêª>¸¾I³aEìoüaïˆè¿Áéx&ss0¬A¥�šZq'èðâ7ÿ ¬r¬rƒÃb±b±DÝÈNõzz½Í‹wrƒºA­[v²ÐÙ­?`*UÊPÊðŸw÷}}îø8¤Å¨èA3ZwÜÖÂÚÉ·ëûÝ»B^ÛÅ{ZP Õ€ÖîãÒŒnÎuñ"å; Š›wÊF‚WÄÓ) »BŸ2£ý›½;�‡ªÿ8>Ê2ömP¢"û‘%I²–¥$ÛH�=K¨l)’½Œ„Pv!kYºìʃ¬YÊ–5kÑBrwþó?wL‹^¯û~]WuïgŸóòàëÁïû›s(œ Ë­â0ëÎ!¡M„Ú¯ßÞ*ßç¤�N§Ù±ìv½!ê±4C¿8GœÌݽ¯ °¹ìÈE¸—™«?ASÔ ömfýRÑq4y!v¤Ðe†í¨§áñfOÕóæ¡xµÁ«Û©"Óœ6�jPûšî~Z+¬Ç D÷¥êS*��&2ó›(ùo ¯2¨%”Ѥ-L .¸@ j¿ZCÔ±èŒÒd¥™�~)gn¶Åó6gX Þ¦so‡_Pæ¶É÷?``£k†Ô~‡&Rf ˜¬PEœ�*)2•¯õÂ�Åä² �¥ÕB£¤ö‰Í1ü¬Í ÿß-PֳŠíðê6êÜ>§ã\�ãïŠÞñ‰Ò“fåiŠçÎfT—ëa6Úñï¨ ]¯«A�oóZM§AãO¦€¤DUU·šYDnBœ¬tä >÷5!N!NæžÜÔÜTþDáèh`XÐ)Fðä(PÁ;nŽÓ4´{ rÏ}Ø}¸7¹ny Ÿè<%÷#P-Ú¬ G>?Ôm™¿ˆ¤�¤�Ï´4¶4 nV¥±¤%Ñ&Ñ 8î’o¨û}„ÂDÀŠÌ�…óµ¢õþ�ƒ³pÛ×-s§š»:w�œëP Þ©âE[‚Œî÷*ì+ìSy|"£GžþŽsŽs–¦Q×¢®©Öâc—ÖTÒTz™T=EÃAÃñå›â€Üë)Ã�»ÎUœ«À߃vZ¸Þ\®|Æ ïFÀã:í@¿Ñÿý¤Í‹0lþÖ©èDRc7moWGÛšÛóF47ZxiŠÝ?Ø÷�ïð‹|{:ÌfIÇ•ñ€YÍjè¹·mùF³Íÿy¶íë�`{ðéu­çŠq@¦‚Z/Q½£zWë{ËÏãE±+Å×ê³ë³;‰3y3yyÔ��å£ê­€�;.Gˆ­æ-8»n_|p_r_r»rÌÂò¤î5Эí£r ubê�8é›]$T?"–l+l+ šÿ\¾»+ ©ãOž*ÉáèüxÒïÛ…Þ…ŽxFîøcþ£û(ÄȲp.›Ý�G—ࡸ[Kjv¼Oá A©aÝ%@’¥v£vãã$u#FÄ?cVqVÑ9›‡Ík—Ä7déé¿r`q¯<›<[WýZÎåë=š´aiÂiÂÁyjdÁÍ“ ƒBÃûQÅ�×¶WÍkñšPo´ÅŸí{2ÔAg=G<}¸‚#„޳¨ÅµQAíç[‰W­$âÌÊi–MË,[Ì’nRjdhòÜŠ½¼í U¯N8,ía!Ôþ¹6õXÖ;ÉAgêÄݺ ¢F¥³”œRyc�ghäòŸÂ¼ŸûyÂ9÷fY·Cíïiç§"\¨/p¡G8â¯3ÝË›�#(AŸ�“íEØ>¢¿_ñá““ìŽE'Ô ö«µeýª76¹µïúU,o®e#‹³­�[øcWø¶ÀXDF8›ôÙ’‚[Š¡öç4DñØ®ùí½#žl‘™Ùw5¾Í,ZK„µ´É€•º‡¸Úî�>듇€ÔþÉ6|k†Q»Û®�¦ßð©Ny¨‡“Œfh}<¢{„G‘yÚ^ÊÇx¡ÓÓâ$Ô ö;4æ±CÌêÞT›‘m.*¹�ú'üNrz~Ú–°‡íTq‚Û~uîɈ"¨Aíïj˜óد†(èÎrÈ$ïÌÄËÂn%ë±=ˆ“·M²k,61ÿHö´ jPš(yLøJ�A`?�À;Fí;UG¼�ß*€ pô;:éEáœ5¡z;ßjPû»Úñš4¹®6Ëô‡Íˈòo*–˜äbw§ª3›MŸyiÒd¼;ŽoÑ1Ú’jÿ\“6-v¤”læL¹P1s,ÎüŒÝNëBX ãxÔ¸þá,fÛ|Ÿº™BíÏi=ݾNbZ˯ê{'Æì­†¹„Â[‘ͧxœ‡‹ÂÉeô‰fé¤;S6ÿŽ�‰KÍÖ‡ÙU7 ;åj‰mTµmÁ¿"šE/]to¯–êrã°ÞènT€#ËYÏ9¬l _®ùZw¨@–e5÷AGPj(5Ížj¹!ê©W›rà�_ËÆfc-” Æ Æ[týçÇYÐA(RkšØN[’Ž£Ù> JTj²o²?M¾ éhŽ|jI‹E_×”Æáu$øFNÄ`.`.© žb ¹^ 2MŠMŠÕ¶Ô¶|}q„õûö ö :˜é›ì¼¯LŽÀ–‚3$Ïf«ŠÓÉ5¬HM¨¨ïõ…Õ_ëj@ûE�±ZõâÞŸ/†Ï!#îDÜYuǧm ¨¢¨Bãßé“蓨á°V¶ýz¨wÇm!E!Eø÷þÞÉŒ‘fÒÇ.÷·É(—¾/øî3Gà½?þÿ }ÎÛ¹ÃÁ7dÅV€¶TØÊY)œ·ä©ï‰Ä×ÏMl.-Ç�ÀPkŸÁÝû‹®¿÷¯@ü÷y•võ!¿±e»Õ€§1y—�îiñ—_éoùOnÊ�¦N?ï•a÷cê"âï É2YÎ —1‰¿"¤w<ÂÊÏ"°Ý¾¿² jÿ¾–o®]SN´l¦axY’¬­3"6Õn¤£êqý”ÖêÒ‹mQz*ÏØÛ µß¡5[ø#ª¸](YÏM&Ï›8ØVäsï«?©ô¢ð¾ÑØj ²H;¥Á•jv»úÊ>6Lµž®Õøêáä´J–CùjÁW�Ëß«¨èN|Šè¦�i¼‹†Ú¿¯éÒïÏMö!(�m8\³™( ¨`Ë[áªùnTcüœ9NFV …:ª·B j¿Z›bHrnôw|ÁŒµ†™fZ, TH~ë=ÇA®ð0q[)óC� 02»#½Ìoâï&Î1jôÇÂ(ÆX™úl¦žM,m´›ü|4”[�Ïéž>>DîZ„d |‚Ü— ýaÍ.Í. ô7^aòR*êtÚ~ ÉŽd×.vvÊÒд¹€sIkÝÝmÝqc8ɘYb�ÛŽÞùÞyé!~eØyP©­Ä-Ð`ÚëYœ•„g�{‚ë&µÞµÞejb 1fôŠi4ˆ\ϮԮ´P»P›‘·œþû&š'šéh°?¶·ÎU˜ˆê‚c4Vš-‚c¿yŽôSžõ˜ÿa"‰=š‡öF±E±5]/i�¤ážø‹m‹mwgÉFÉF³$ñ½"1E˜"ËÂì.œ¼pò,éZ~[×S߈~K!H!ˆ¿›ˆÓWê‰ÛƧ¶â¥‚äÞD²Ñn⵿¼¶ÇÕÅ•7.G%nâxÑo|”B`™ËÛ™ãÔçmOŒ±!7\Mb½T'¯{¤gúú7vbß~&Á;á}ƒòñ¢`Qr!쀠\æF³-ôù£ël× ™uŧܾ–ËvÐÔ³DÐìªàeÁËΣ~†1²–Ìš�Ô2_kàkàC{²—³—ú·éi ñ1¿Q¯º{€Ü­ ª8‡?�÷�’‰r–s–?$WÝ¢ š4 �ñÆ1»ÁN”Ø­®(R,RlŠ`|0>šj±T žÛ‘ï#ß×ðÔðh Ù+}5Š_6SócÒ V/6 àØèÌfÇ—áDôŒ¿š¿‡œ-õ 3‡lêZ6²vòÕä«w,â‘hþ-¯ÆÕ7WßÜ=[ P ð—>ù)m)m¦w¾6æ–æ–× i_o²à¥ØØû¿³ýßw³lΞ:ÀjI¦cŽx�L«Ùh×…?Û¿Ò{»þmíå)6ßɧ›·:º� wõw{ë¬Z®HĨݹÇ3Õ�y‘pêL[�ÊÊ�jÿ¾†:†ð¯²J=³è…öiŠmsu’š¬ãÕ’9–I:9Kvÿü^^Þ=6—m¡ök5'¾Õ(²C%OÅIb§¶!¶¡fÑ1>ª…é¤Úý)ûu®?óɃگժ VÏ÷ôYм­_9ÖzœK¸HS”úÂå ή–!#øQåÃÛ]övCíÏi÷:çÌߊzÚ¬º¸ OkûGˆÝØÚd¤ÈåV$šªP®)'xøž½‘Ôþ}ía5fY‹-ÖO½ç eÍhøîN¿;(¢¹Z/a¸ÛPæ u¸–joèOB¨AíWk×üB¤Ó¸U2M�=UPdÜuWˆ¯Å•C”}¿”晦ʙ\{ ­QÔ~¾�ck�åé ‘­Eµ¾¡½E4÷æ#þn'Ÿ‚šéÄ“i۾üá�‘�v;Â0ØAßõ‹-Yð-寕ÖjQv¿š(®DW¢ÛÉŒ?ÍÔÛ½´"ûÚÇ}÷1º‰=â(›'šˆª%Þ×�&6‰Üǯç÷]IëWéW9¢µS¸ <ý5ˆŸ7EDèëÌ…£åP§�å+ì,J.Jj¤8M8M¹‰@q=O>yh�´@ªJ-}kk‚‘w‘Ð�•mŠØ\1¸N�sêíêk"Cœyîsê� ˜Ä/.-�öœ<À wÜì¸Y»#|Á+yǃŸQl]l�™¡š¥šÅ=Œ�I­¨µ¨5ì6o©s©3EîZÎ}ëp 0óˆyþÞ2éxÆÈDQõ…|òðø‘wýßÝí€{KŒ¢ì�„yg]© Ë×¹N¸|ÑïjoÂçêSç} ä–Þ¹~Üå{âºØ<­õ8ξSߨ[ {oy2«ÄŸä¾}¥´ç] ‰«cúͶÈç�¾H·^Ð Q&¾ŽÔµ‚Õ@zâ” ‘††i¦�·HÔñ2ìgg°úZ€J€ g¥£#™àåò`à á·2àÚØM_Äé"lIô/Š/Š;P0Ûéñ�d6‚†*%uq{ôÛ^M³ôÌ÷ÌS„’Ò“Ò)öŸ ‰ûE/D/Ûyl§ÅÀLè÷™&š&²ËaLV;1.Û0ɇÓW¢Š#Ô/Ì}³Ù-îÔ¡œ"ÖÕA€B¥bÚbÚ‚ü8lå5î§?ƒ&ž&~2é½ó{g'¾¹÷!Š¡ I ØÛ·R2Âý±Bá·ó¬þ‚ÚßÓæææÚD‡k=Z–8õLëŠ"víJ<›[®§`0ƒ‚{ ¯H9¤P�‚Ô¾×>’Â;Í]^¡™Ÿ˜#5l67Ý´Ž°ÿ•Þƒö§4�©ÇØÐÌn¨Ø[|Í9É÷éœÂâŸ;¶’8M Ìž=ñùð-ö¦ë‰ãFçÑÏ矸õìI^gჟ] Í b Å‚ú‚áÞpïú¥A»í¼^ÄKð¯ÿ§i“lôÁèƒÂ/o"MrCªÖ£�©"¬iN8 J{}A) q:q:üûà†ã+䥠º,ƒ bL‰Î#ª©IbKâT€ž¢ž"A  Ï Ï \í%3èã^ýýŽ¿8þº¡~‹è[:†;†w×;9üást«–)àâ#œ¹ë-]%8™œ\žãr¯…¿°é„?ͱ„¿œcžcfn!˜Éµè±ûÌ�˜UZº¸�ÞÄýL˜\˜œ¥;=•ºƒº£Hj-YÌzŒÏb�µ”µ”øgê#ñ™!*“© „ŽôÃI¥�ÎÔ |þH7×åMúÔi”ËWZŠëÊ‘.H¶Ö½¦bÄͺÅîGôa×9ëEZ`å5æŠÑξq¦Þóí3µQ\º�£(~Ò°‚é¯òÑÀ�f{÷ç�.™X¯¢µÜïöµ<σ”m<´@wÿ‡½û§úï8n¯ìY(‘"›Ì#dï‘©8æÉH¨TT23O¶²² •ì=›È8ö,«™¿>¿ÓçŽÓÐu}ïûþÖ÷þœÇÏËu®óÇûs]Þ¯Ï MMžÐ¦ìÖcÓHgsþVù©òS7ü–“–“ö’Æ•3q§UF‘‡–b�–}v§ ièúƒ8Û‚Ú‚:]¦¸‚ož™œÅÊ�ÈOÕ£W‡Ÿ&'¦ €ÉÂdu=uõuõ¯�r @ožt=é¢â¦â®Ÿ#ú=LÁLÁª‚Ë$?÷fZu�I0&�†à_ܯ.ƒFÆiDúÊ$šOµü«{üo§È¸Û¬ü¬ü°[¬EòijÌESySyeékü×ø¤1˜‚y32è_ ç–Ù—Ùgqn4¿}3œ�ÿ—êñ¸žâhÐë©¢ÑÅ|€ñT"“|ú#Ó½�[í©1×6�m"~%ß½a¡5çú„Bٔܕžrú€1O4#•° ̽«^‘W~:±‹‘øpšL§ãˆ×œŸg:Qh!Ôþ̰o¯I|+ +J_|Gš™ÉŠzÏ£ˆ‘K• ‰õ®#b�vH—m¡šPûßkÒå�~죨Póå|^XؾcðGJLWe%˜&¯}ÁÖ.£ÃQ=·ÐC°5¨í©Owv³’m%£ËÂq$ã€$Ê×[¶qo 󢦃yªiÔñ#÷¯ŽbÀ‡ÔþMžíð¶¹[KÍJ6´Œoj w_™=šÖƒ‡�X‘•ëæyÏ¥ý–¬ŒŒ:djÿìÖ�"M§œë¢°‰$>BF³ž9–òâTÂrÚîXq1ÎRΚ§Ö4ÂtPƒÚŸÚÞ Çž—vwsR9Ä�BYU!Q‡ÕÐ×yˆä6R³maE9•Ó{‰™jPûO4¦[—‹jsãl� ÏÆrw ¹¯3Ä=$_I�af10Nm 4Üi]¡ÄôÞjPšø¬Ý"uÙƒÃ$æüm-Vu!îÎ嘳ޘ¨OÓ➯[îÚг—Em5ëÆÆÂJ¿¸™bàe]LZ͹Þ�YQy²Z�ÍÃæµö76”ùES"­| ¸m´¬?[#[CL¼Pg€nhŒ¾Ú¥ Èë?¤‹¶*·ÍÇ�z…z5[izA¹å,9ÈzÊ+d;�Ùˆö¦çV”0Û­«Ÿñžñö‹´ [�ÆV’œ ¹��œˆ´ˆ´¸£ã“?¶·çãÈó` ãE·SE«²h!ZŸÔÆÑnšzp‰9i(ÏÅÍß>*ç�·&g"gÚ“¾$¸v± õ+æðæð¨ h³i³µ³0µîl`o`O¦ç˜_^¾7¸Qè§Í8NV›É­È­0Ïc4\½nÖ³?J^»»&-ìÍ×x£z{ðõñé":Áè�.5yÇ=j§I»ö͇sÕ‡ûœl:XÖ«¶Ã·Kô6˜ŠxFó�óâ›Ïcô}¹–‹{i·ÿ}V¶™„vÉ|[Í�1K×^aüç%Wwœaq¼¸[ë$Ôþ9mÑv†ýŽêdZëM©à¸i¦æuw¼`KšclC9’‡ÃÂêEösõA jgÓ=êfV:ÓV8†¥Ô7š$Z¤ô©‡–:�8 {ÐŒ3<:“/ïä8)ßÇ|¨Aí¿Õ EeOäÌÒ™«eK¡*ê£Z–±´ñ”tu.ŇàzaÇ>¯¢Lw¨AíOmƒT|Ùz”ï{[?°˜ÐԈƉ[ÙÙ “LŠ{Ÿï0â•­•F$Ž,Sœ¥ûw·.”EƒÙP)«€­‚TeT7�PªôKÌ}Û6¥ƒië•�CÌÙ—Èìþá;_Á}›Èç›Ï­oæ®/䎉'v#K½n¥ ˆþâÊ®•]%²š|CiÉæ«£ßŠŠÊ­C=@=àI<9o¬ á¨V2º‡�î»xE{áúÄN½“z'™¯jZ‹eÔ Ð™šLoÐqæ0.4zv2òJ&eà5Ñ:·foÍN0Â]Â]J°ej@ÝNîNîH$�s*âÇ q q^ÈñþœÒ{£ç€Ž´öyú«þh¢&ϨÔÝ]aH«¯dù÷N—‰ÌYÌêÍê_îh}jYÕiõ+ƱƱ’ö÷�÷�KïÁ4úDÆ_ÆúÅÙŠjája3‹�bz7³ë8S*ª)ª�ëiæË¾�ç�KµÖDX®gÉc¹†Ð­'M¸­ð÷¤_Ö!ÉwöM˜ïžV3Žê̺ý°ã8î6�þWÌë{0Ÿýƒu¬ƒH7¯[5™|£Z(÷¡VXžøÝév ¿F§ÙÈJÌ{n0Ÿ“� }.ztÿŒð ë÷/�=žÀvú˜7ãóEb’fÞÈþþ,° ÄœG‘þû.fy¿,Às•þÝŠ?’‰ªÅi¸`“€†¡Â¾‚îK;´Ôa’5P2Gîzîz4Ÿ­g�h)È‚]ÛT�íŒ�&y5G�+ê €&”&4(PcWcY´ø4$ìúÃâÃâgRÅ~,H;H›?ùsOßXT¬¢å²‹FìBKÁÃ÷mñ/d�6þêÅöÛbYù€m¸p¸‹[ø”8®›î¯ ”½ÌeÂe²û1¦¥¤YòYrTvàiÓNÓÎŽÙ�Û6³å|ˆ%¸Aps桃5w¤÷â{Â{&oìÛjæ�yfrúxP½‚ÿØ€¾[Ù`µ’Æ#ÑOnª3©~aê¯ì¡ö{µž§nz‹ú�ÆÎ™¦Ò²±èw\ }©q–äÙn£e‘ÅXÍù, Il¨Aí¯¶ðž‹N5ÆB´²©ÖÇîïA´†^'¥Ø.ÅÂWÓAy§0×îRÌÇ!EÓ"¨AíwkÍ”ž§â˜i†C çU*.t Qlÿ�îÇû^;¢†ZÔªžªeõk߫֟Î,*î‚9‹1M†Q¸’+ïmÇ0õlVØj#Ž�…¥Þ´Þvì@LÞ=Åà€ÂÛyASÊr¬r¬ —”ú„›¦‡?œ\áùÖeæËÌ٪ŚŚ4…€£Ž§CÀºÂ“™Åí€Vœkáh‚9pfL1E1¥ì¹ôît­Ñ:ÐÙ‘á g^MjxÑEY>î-`fzfZЀ¸‚¸Â`ʤ š¢4£4³¡°¡pƒ3Òÿ˜Z“ZÓs7™Ÿ+NKO€ï›¤y5s´‹m”²õý°)?yoàWÍ|Íß&5N’�$Ó¼'•ÝN:–þ+"Œ#Œ+‹U U %îbÚS-¼_x¿\â´—…½…ýõò�Ý6ã—æ!æs˜sÆ -ºÉÛÂfÅïEmÔ’à[Í1çæóo›ëYòóº�($‡ÛÞÇ×j½ê¶L›jÓÊ'Iô�9£Ø÷çŒ#p™BÏU5ý‘ Q»7b·ZÛŸ¿ZUp3Ô%6&^ñMœAg:qð@Õü¤I¤IŠNêt{b•QI·/~«-¹-™1¨à\Á¹ÕaÀt%²ð®wÚ`ï ñv=aŸe'¨*Ÿ¬›¬û\Ž õÔÎm SµÅLЮ|6´§Q±ÒT¥þ÷ýïãâøEøEˆ‡-@z²²ïÖß­ K(—üXÏûž÷A·w^ú¹I¥—ÔžÞ€KõhŒùã,]dh}X™(‹¥gmI'¾2……È(ÆDDâÃ{fÙË~EèDèÄóÕ¢¼¢<<8&Â8>¾Yÿ…x/ðJotHl3ê$€nœ�Ž�¸žÜ¿\«wºœú½mQ/míJáÊEúVsF̵ýï¾vÖ‹»¶”}ÂWlØ=ig¼'—Á¾â|O,QÜžnZV‘§\B†#RávPƒЦ$&P-ô*ÎÝJÍk̵³8Œ# ‹eܘԬ`È?÷P„¢¦Mµÿ½–>Òw='¦ß’ÎjûÍ·‘×±çÉuƒ[ô¢g[+^˜È<7ó 9À}j_s®rŒqÏæÇiâ1¥–ÝbBØA"s`' r-OOÉIîµN†ðB?Ô~¯6ßð,>Zæ|ZNÍ6‘ ®¡»Î*4ü)³u"ˆ“|;ŒY ‘‡ð÷*s„Bí÷o„\{uŸ™¸¢J-}•N‡�¡ÝåúþBšƒ/i4Yàoeç`£\÷m¼F1÷1¥27؉²½mú®­æ&t&oµ��}ÞÇSnF(–HŠ©lÈ›/œ/̪/Üõs׎YäsZ µŠΣÁ“=Ãèw][š/úJ+ó¡@Í]@b { »n¨ä¿ë—>xxOõ›ã›ã9Îa‰׿§OEM¥Ê¦Êöpy#…Í4uºÔµRµR˜{tÞÄ»²×o8¬TîD¾¶Ûj�Žy­[‚BÚÙ…Ä¥ºdÃØá’GØåŒF¹ü{„CëtÌEnÖ²M rã|»G?°y�B‡þ-Ûßù)û9ÍØL…‘W¹·³[oµ§Âü-ß{O*Ôþ9-—!Æ–ma*D!«_Jtdé�(ëªý“ad딉ñÁ£ô^Š÷TÆ<Ê¡ög6X¬�ÑZ…3S±R¯ ÿjt÷é^ù‰Rªì4�¤þT�ÞSo�FSŸCíŸÓº;_%¾ÀãÅÏrÆŸæ¦JX›Þ­€�¾¾¬(v(^æžc+lªÚjPûÝÚ íâèÃAwûì4¾¾CšŽ€ÕÅ:S�,Ú?ÃZöí4 ?/þ÷õÎmPƒÚ�šÁhÛ]\ãµËn”%p‹ h/îcÃO’ê÷IšÊ7\á,á5®&x½æÞ µ?³í$\Mk øHy­xiW”ZP5½OãuV©ž•hæ!”{œ²º×ͪŸRÊ µ¿Ú¨&ôÄ,²÷ÞÜäˆè“ŠyIl8Ÿ|k2ìÀM¸Ã8U¦�k¤Ì­Ù*¨ý^-‡?ÖŠØ(Ñ -ÈG§xj<êˆxdaÖ$Ý“) ©ð®KþL98w˜m ö{5„5S±ø<¾Š©mѽÓÔ„F=ÉáIOãÏž X[æaÛ�[Cìi9Ö µÿN+§¦§:7KIÌlCíÀpÁq�rз�õv™Ó7_�¾î0¦`!~jâ÷ÈÚW>åÏsßT°Ê�ûHÃ�y®Aw(cÉ:6ŒùÉû+W Ô·:× ‰�…õìÝw8ÕýÿÀñseïÌÌÈ–(Ù[FVÙÙ{DFÉʸ:¡²R"Ù’dt£aï­Ž•½²Ê u’_Ÿï¹?¿8%®ëû½î»û¾�ÇÏ?Îå�×Ååõþ|ÞÒ†¶»-*q •åÚV¼, 9.�/–ðºðzoÕtœ‹ ë¯Ûû¾÷&û+Úó_MÎ —ÅÑ�õžÂV²d@íG$>‹CÅ ½\�\��tÂå“aÄ�—qÙˆ~þؤÇÏØ™rTæ€Y½Y=¢}x¼§Î•öÈ\JYXY¸Òáµ[sÛÙá ÃAžÌ5e?WbÓÍy-°�Ô@ÉL>yIªp$ÎJÊ3뛢ãŒ:]1€�ÜnÔr}Ò”ã{‘ ‘ #X$Z$ÊÆCeḶomßÔ)ZWZWŒ­Šª¶«ž¼Ð·¿e õ¬áË›Œüg+öÃíy›Ãꤻ�5 ¾¯î—-z½§Ãã÷+š/ƒúò‚‹L�B‚ªë§_ˆýÁó€'ü<à�ץׯü¢ƒg�ùD‰@w›m±¯-µ�oéT>ªí×M€†ðéAéÇ‡ß ¿Á‚{žƒY57™Oqì{5¸5¸÷ÃF–F–x1C5ö!vl€uÇøëÑv€é@˜'’ª‚3HŠq=|=Æ2Á§Ï 4šgK z3Ô‡dµBïàÍ¥ë ˆ»wƒñ?º7º7X…ü @-Lºtºt4Õ4ÕGj[ÝvÆ ç„ku39ÿœ&‘²¨Æàx6’UØ,ÆÅ$¬™ ´má"Ò񠧯@Ën¯¨¼Ty™eøöîõCª½`ÈgÈ?Nä×ì×LÞ‡ª27n6n–÷’Œò“à'ÁJ[]êÝnAÀ¾YÄ^ôÿ?+ßüñÞ1 g»mÉ�6HoÒ—ÅOܯ»�]¡ÎöŸqO º¡к®´AÏókjR t|9µ&™sð÷î[Ù ²¦1ÕLÖ½�±I Û¯ßVOå3“Îç�°"¼#š*E)²¸…˜’ÅÒO.¶0PÀ ´ö ƒ¶¶¢ºý·ÍzHäNr8Iá Ö ²ÜÖŽ J¡LƒåÈùà¦À^÷ò\ÒrtC·¿CÓ•"µo¹2r¢×¯�Ø\IÎ�‡ÚL¬|‡�ûæØ&…JÊ ’¬•ic OtC·_­ÔÓhO’ÊÑ’¼Ÿ—¼kMp—9æš>ÎÅÕ±ÁbÂ’‚.é¡'tdmè†n‡vô…¡|šlõ¾<ã’·/‡Š4}hÌüyÉ´ íWš…µôößã¦mKù_·kâåöt§7‰ ô˜ !É^F§QwEÕǰ$/X‡+SI´±¾„ì¶+‡B FtÛ¥Oªˆ RÃÚª3DBkô”ù‰¤�¤]­†zÓgÐûš©ôþïÉÛÊÛvs¹­»­G]˜²óhµê/‰9ÿ‡€Öbò_ƒ$J45Çç.ŠÌ½^Á-VɃf�e�µ2fór)««Êdî2î2YO-LÕ@jDjDØW%„bq;S…«Â)• Î,Ý÷ýo¯ÞQH!xu�*ùu_8%y›Çü�môðc"€ºXºTº” �ÍóI¼ó½8!~B<Rû±ö#yª µŽ†Ž†¦òÔ#ÕÕ=G·R½�bp× ÏÏu ·õŠFTõPxC9¼æ]ÉwÛƒ¢ÞOÚ&WEæ�iùà€‰·V�—›SíÝE#’›�2†�‚ùŽ”…?xæúè�÷ ¡4PÕ�©Ñ!våZ®Ýf[âëlßÚ»¶ßUÂÓ­ì“@Ó¦’y Úà‘®‘.lExj‘…¾IéEý±ï½~/|¥v9c9ãa @®³« ð(�ç›gê‡ `±€ ñ‡Æ€ª>)µ(µJ¸ÅÅó �ŒÝ@tOäW�|’ ‹¬ …Z))>®^k^ëÖ(èA<~÷úÝëkd—ùwy òÀâ°FÿÏå«HÕ³¯,3‘tê"ñ=µ‘ԋϨi!DŽ~cÑâ®—! ¨–Ç–Çvθ(ã*íÚ²}gúÎXŸeÏcσ͠jß„o21æQfËeË ŽnÕd»ð@g�Ì ÎS3 ržÌ(d›Ö'å_g©^Ôä4ÛñžgpŠ:ÛÙbÄ0—€‰€¶áÈ8>•ä."tÛ{{fÈV'Lฑ(Jƒƒð°k·N�ÆÇPU/áˆOògt$ê׎…d=-A·¿®ÍUŠ¥ºjÏé¥×’Mc6+º2‹œ(œ‚;’Hu@‚B°˜O>rx…nN»4çIìÁf9Át?â`vá´$ô™±Îb²x?�Sy~ùÇ/îW ‰¡øptC·_­! ª—ÏÔ­ )ÙEC®çQ—åÙSÓs'mpS ÓChŽN0·Ð¥F¶—¡Û?§”MYdé—‹€Ò‹½“¾ße}Gó(íóVCZâ¾}5>�Xל÷!…è†ne‹Ç@Pw̹‰dè\‡vÞ­+îb·îôNpÈSÍ_ 1Y�Øš¢ºýÕ”U¹jÑ~ê.O¥‡Íz+¡¦Ì_SŽÓ™—¥xK©²oß$(E7tû³ZÔ¥' ×KnÈê¾gK;üp$*RŸ¦O÷$YÚI Õ¹¹ÌÌæ34¦£ÝÐ hx÷b7ú ¯ qð¬Qj%V«UÈHâ1¾î=zf&ÿò£iå»Efè†nVÓ©Í’ìî²ËyÚ†ðÀ,Š–fVÐr,SyŒÊzÞqܬÕäX2×·;vøèö×5Q«27Bá6æ �òwg“m�;<ÀÔâS¾Mxkpú•Ó“'!ÞVèöÏi}½WÝ5³ ú§§.Ø�±ñÅvR·™s\+�Åu3�Ç|O& ÏØÿwlÙÔ-Ƽ‰:Rÿbîe×Ò¬ìÔŽz6:£{:ñ¹â,æh,¿ÛÙ¨$9xq»žÞÔTg/l% »Rƒ.᱕²•Z´ûêß1íù½Þ­õÃ÷Dá¢pËìV¥V¥¹“ésäjmeÀ‰�»ügéüù‰Hs6w¸@:Rê¹ê¹<æøø·@µ””á Ž�%E¤yï3*mÕƒPkkÓ�L ¦„w'|”Ó8S:SzÙ鲓o¼˜É΀Y œŸþ\É™�K'@oÉê™f´A$³�´‚}�»¯ü›h\®ÖÓ€�„&™&Ñ@cýá´èÓ{HHJ3<\l†ª™¸ïë×Râ‰róçæÏÇÙ¶bßîc/@ÙΩѩõÜ?(�ò¶µèYÿ¡.±SÏ׋Év;÷Gý?¡œpV׫76œxHŸóÛ_VŒå|ÖqUïÁÒ€Ùy?Ä=l…ñÖ÷ŸŽ"Ïý~|î,Å�塳Á‹gµY^vYèén³-õõ£ï¤mÇx~ÝU|«�Ï@�õ. S «�«�b!ôòÖ®4³™8ß;pãÀ�þ`¾¾„Ñe{YŸ0[Ð ›uçÄŒ‡·ìGƒ/€$ã>§}NsR5MúM©F4"$ŠžV¢Gª¥Z8ï�p•ôÌ÷Ì3Œ†{‡{çíœèA7©»y»y+Ç+ÇÙGnÀvÆwí+,–C?·ù.Õ0‹  V‹¤›ÿ±©ð RFÓù¦£:›ÍÒß”y4Ž^bà6c7cÇÌìo±$Þ‹rŒrŒL?�wï:´Qq T$U$=¬ªŒÑ/Ò/B¨o¸°�ó[Ài¤q¤18Oå¼ÿô*Lu4t á¼þÚ}JÚs·sÔÙþ•~7ü“Û©Š9‹�~1†ÐƒÝ¸-–é|âíù_Q” Íb�»©ÑrÓð°\ªz�nÿ¾Vd£Uûa­~Î_·ÝR{Bpî• L[ùÊ%ËR{¿AÆýb¥†.tC·¿Ck³ #¨f÷$¤½8Í›¶hæêT^hÂ.Ñ`ª8X’o4µÙN]ª•ÑäuÝþÙ-øÖì…¤}c©E²N“àÓiYU4 E*‘Á&/וT‡u§¿Äõ’ÞkN·D·_Ó%—*H �>Oj:]»3VL¿Ê_=XäM4ÅÍüØÝÈþ¡L ßëšÊNtC·_­ÍQ¤^ns¤jq€XåÚ~.þѽÙ0/¬!'…Jh”ØÃc·)m¢Q÷í2ï‚»ñ‚É7 ›-‹d²vÛHC!èv²Ä“ɨ*K·Â’½+IuŸE„" �õ?w[¤[Y¥Jú^ËZËš-±h¾h>b@|Óô$À/°�u"£ô5€"µ( qH§D}››öÄdéþ²xÈgÆíw�Xß55¤e²M©^ž‡ü€¾Ö¾ÖY€Ù°Ùð¢¾Z:(}ÙmÆm!ƒ�áy¼±º3é é k½Ÿ{»Úä>& p/Fê?2K G’'¥!eð<©Fó�"g ©[€…†X€X`ú lL’1>a/Öã×ã­”p•pï>@µ¨ÎGÍG]NM9k µ„b»o…!¿�h2€‹í‘æ#MÔ]W²Á©Ñ¾dF.•�@%jvìÝv]KaÒZG™‚õʪ¢eJ p˜‡LÎàó Ø‚.“G¹¿ º°/ê<Þ¹ÍTZ¿zi]µ¾ùˆìº·ïº`ÜͲ?oN†ã–®¶ ÁuÎTín» ÔïåWº·ëßÖÆÍé®Îtì?äæý–¿{¨7H{ÓnãÄ=•Äl޹Þ\_Œ9sˆ/‘ý9Ltû÷5ã³aÕö™Ž-CZ“º¼ÜEfê95ÅÎæ˜¿ý7ÿÒINÎãçý�Ðí×jî\› ¸ Ï)…°“æ �ß˧`XÞã Q.É9 5”!¥Ñse¢Ý~­Vm¸y©/ü�-ÉjÃÆÙN6þR bÿræp¶öQ#¬'§N³ŒxžìE·Nˆ/ج 8A7=}xMæµÂâoj=“gó.È”}©!É{:û‚‘3ºýûÚÓš(„&]R¨jßo„µ“±ÇࡉƘ u�üXÞ£¹ËøªXšÊý·<0Ð Ý~µv=ô†hN »R®ÕÙÊIYyÊ#é|\í^L R"êdQ=JŽNhNBÐmïí"]×°8Gÿ ñ:ãÎeÒß0–?£î™ˆì ¦ä6]H¥: V»²wÛ3É|ý3³c»J‹T¸“[-Õ�prŒïƒ^Í× Õ qÀ0ÂÄ#DÔ;â+}Ï·Ê·ŠSg{›÷ g6 °B¸½qŸ“p™èq<>Fµ Èë9ó=æ{ÆJ-«1¶×LA¬WIK@5NòÅHPo§«dO=É)É)BÀâÅ/2%`‘ -1ÅņC‡¤ÀwæÂáÂá¯wÀüçtñH>ðe�ÌxVl‘V"L©|ì8TF¿QÂwáå>0m|åñÊ£z¿–í×�½ˆÔ‰Ô©¹¯±¤±„E�Š>ѡΡîµâRTxRxÒÐøVìÛ †˜¢¯²^eEÝ3¥ê<œ˜.­ñ(‹½?±6´ãnÜ3E…=¿™²xYWä¡]œ×KºÔ1¨&c@uîRˆ¡ä§5¯ÏÇ®êE.’:¼å~,aýÁž‰ÿÇÏTõ qŸM¹RU2÷`Œ¹ Ïæín³-ûõ£E¶Ó¬:ĆÊÀ«EÐ'µðdÐ+/++œF{þ®—Nuªý5ßS T ¼mïï£ã²pðâüajØüã][Ø}$=‚ ÐLì|ë|kbÊòš//¶)(¥©~¤5Ë{ )nfôŠÁs ;@¢A[˜íží‚ø{�¼`ïZßµÖF×FûwO9íl&i&©d!Kúçrc$O“5Bƒ‘.®´š\dDRc¬*•]­ê5ø&ÊÈH¿; À�¯Ž¯^ÚBq[Ø8}z/܇܇(VO)ŸR¶;‡ê7ó~æýîÿÇÞ�GC½÷dëŒ]¶Êeû–%²oE¢±$kQ¢T¤TölÝ„„²†ìKRDv#.QökÏÓïL¿'¦EçÜçyn÷>s^ÿ½�óûëëœù|~¿ù�ÕŽ°ªºªºå ÍvËm%º@Ëccjc ž'^2ÌyzfsŽâøÝŠdý)n%Nƒíö–Øg›­ˆ¹§9Sô6WêÅÆMT燒¶c¸†k‡¶.1*ô^Öl<´,I_Øñ ç…B-Ëa݆ZJ„RPØ18"%¯°×~ý6ÇÂÅlq'‘°2U¹ÖR˜#P5Br¾ˆ´�½�#˜’|õ…ð­ŽÛùŽÅ¸ö¿iÓ*ÓÓ¯D†ü^®p™Ñ%Ù=-‰æåMvË«8¢b}íƒå?¦KÒî©T6¸†kßkk¤;:Qg&lŸ¡˜t�Iš#�¢]¥÷ ýSšî䲫-£�eBŒ@KNН¼±Í ì¹c²»¸±Q¢Q\Vt,KÌØg»¹ãÀ§¹#êÁV'™žÕa“SÛì�;È`×E{ÐÔøÄÚÄš�ÝTécè…§««±Ó_ƒ BE šª›ª¥–ÉÁ�&áÑ€Ä;xšç‘€³É”¶!ãŽA\/Îë�×;kQç¾2׊=¯Z *ƒÅc(ŒG„H6õ‹âÚâÚn54ª5ªWmZª@wIJÜKÜ»ÊºÊæëØc¿ORARa¿†Rþ�¹µ*½wŠì6ÆðËÖ]1—ÅðÐ8ß>}<ªð ÍJa:fÀ” ásÂçûέƽ1ê¸û3Ð]è.{Í(‹( ç*lÔD‰D‰©îÐWÀ+à‘Í›‘soµF Ž�U�UÅž©S-Ä eÑTÖ“ãÆ2EïÔ·›©ç®J2ùœ]}ÔlF�N¹zéeéÓ ¦3L¬mRvb„-¦¥çt’Ì 7¹÷¿„TÔ£Tã½—¿1SK|{¦6sì‡è('¾xðåî°ÓÛ�mÕO—>1³•GGà 6ªàÍГ >¸ØHWMÌMÌíÒb,²ŸWƒ³œvWÁ×Èo�ß�—B ¨Z"€Yÿ*à�@†ž&;öw@íꔆê£êLG99ÁÄ4«Y‰Üº¨rTž´kpiƒ¹¬\ OI æÊßò † †Õñe. h·„; wjjœnÜú¾¦ORÊ—,~,G³•ç)@&CÓ.ø²%†_¥sY»ÍL5ò ›Å¬û7Y•ÕÏ�žé¦ ìƒpŸø¹!¹!°¢ÆõÆõùlÖÜP6(Ûä›r³I³‰b³½)[ Áø½G½GÁót†9Oå 6ÌΉ,*iM�V{®o7ScŸm"‡D ¡ü!‘�îuwò”"{”/õþ“Ûà‚½¸M"’„@BÊáúí: ûì'.‰]̤ú© �®hÿÙ«¾i$ay¸ö÷lÁÜ{Ìk%ãì1B0¥"Í×´z›"Ñ�l5Î%Öí;…–lpŠò £ÒÀµÿ¿&ÿ¤óêîáž0›ÕܽÒáÜG­›ÔX.+I±Œ,„âé–Ñá<»ØKÄg�k¸´æÀîÌF5‡ f�E‹(晞 ‹J {®³.iŸ´I±Š±0-H¼<Œ·@ˆk¸ößh*\úä³ +�j(8ó‡bŽKÓf©½;ì¥Ö””»ç9ct§(Ê(hCßàÚ?»½î�¦QÏvQ¡¢IM)`ÞÞkw¾³šÊ��ä-å�Óƒ5‡‰Ñz„k¸öwm†â}ä½]ߺiŠ+2Ü£®,—ª…Ô÷w*’Ý�Òn[\‰z—Õwž•w®áÚ£±$\(ªyxÛÁÍät¼@·ˆ÷Ãíbʵ”IVvã#)­×ïßy¼\�eÞ×p hˆi§%Ú²B}2á¶gvµ¡ÞîOaïzë’Í÷Î’–F /£�$ºi³Ý®W Y£ÛÊÄY#Yöf%AêµYÇAA%ѧ¢O%V§�áQ¬ðŠœ{ó5U U‹0meet+ 2x*€ùU¤Ò&O( ?}öÆÌê(ë�¾�¾�?O?¼³ÚÎTWÊñtðÍY ÑæKî^5Å€uçugû€nx7<@>fän�ƒÊA'''sìú>¶f¶æ>†+$?†& ÷ hc~Œ dŸÁ¸~õ�¹„TŸCYÑ­K¬xyÔ€—Ò ¥^%€{ú‘ÿ „ÂJœEÙEÙE°¬«‰¾‰žHû„ï"Ý"�&ùfÖ~[ñ†F\ø¬ø¬°ïcÔ_¾‚ìå‹QÑí®N Ÿ�Ålw£j ïÍ{‹‰"ºý±]š*®»4] ]ÜÓÖCµUûÝPDì+­¥úê�­#[`߸��øö}Œþž€›Gñèç¦L‹×ŠÅ¢·;ÛêŸ.-óp+].!lÍ›mÔ‚˜¨@ÞÍ4=4=S­¯ëø&¸@%  _kÙÓ²g‚а˜°øÒ-À¤`€ Ðú™Ã¨FL0y ª• ÐÊ}sMsÍŽÑî3ºH�"í©“ Ô§> ßÅ·’èÉ5’k{œ¦¦´Ë® «LèCèC¤œ¤œíɶo¿¯'«'ëÄug—L†z'0®R·èÆ`× rRÉ8d÷áF£oÏÈLTT¤«Ÿœ¡„ýŒV/¬D>ªù¨ù4bëȆåÃò÷ºíóæðæ¨ ÞÌe×V¤¾€Ó‘º±º±àyêÿül À Ç>áN®…;¯ÎÈ,mwûl—ñï#\ð‘Y/$íðdwÛïÇ¡ãˆkÿœ¶d.í¹û>²Ç1µ�ó–\ÈíIy–Æ ï!¶°£\ƒY2úááuâ|üý¸†ke30óB–N¶å½…èÝèN’(R[î…Ó^'�Á{ƒä�ˆ} ”í8ú#×píÕöçI(YæÊfèÍÖpÝ£)ê§YU°µEûª4]ž½çŠOt%¯ƒÛ¿šä�7®áÚßµ½¡Ê4¤žaîk]`7‡UKÜFØ9¡¢’Ì÷½d:¼W©FÞ>½Jušî?ݺzŽÕ#K9÷9�«ˆé†‰¤Èÿû�ÉÏs›`¡GÕµŒ±ðtß’çÊõaßûl«mípø{èç‹ìŸs±_xBóHLgÆÝâ ò3¯�Â~¾ûÝ?�£$Ùݳ£’oV‰<,Ö ÏFˆL¼Ò ºÚà6]�ý�ì÷ÛË#$Ìø&Å,�Ï�}>†=j‘]Z‘¼×H` z­63mçvs¡Æ§¹°Žu« <䂨û7»˜:ÑG²1Ì2̲ÏâQv×ëh¦—þ²Y²ÄÜkÒkb½0›>ù°³{Öã=Zp˜„$Â`ÊÚ/‰8…8%nMKGêsôQS‰4ÿ®P#‡<±…|Q˜W™WáälmAž²hƒ>ðEóE{Å{Å'OÁ¾OKWK÷"§ô…{ ÜxÎ pOCuUë•5s9͸h~>ÑÓ�›®‡é$B™Á™ÁP>áÓ$wMÿŒ¶6užææÊ8l,nC*C*—3zuœÇ�ÇmOn64¹e; L.’ÁÞyèA&Co›öùͳç›O‰ro·óÀþx`5ë®7¡ž}Cp@T Y¬ß5Ý+…î'ëÄS(_9¸yçñù·åÅ¿½ó` ›7È3ªgàˆ¯&êÖöÜîlüti õ­<=•°µPn¦xT±‚Wêe  ‹Íèñ?_7°‘¸ø5$’ëÉŠéÓ'ìæ¼¤£0ÀÌ.Àý[Eå*ÙYŒ�Ìñ[ ÁlŠlŠ,¹§wÔ)‚è<‘»A&bÈnŒË®ø¼=mrT€k„×;ŽHûIû§“¼ @-}ԜԜ…ö…ö´¼ ßÇßÅßõ¢¿äǪŒcSž¿œLÀøxg7:Œ£0ñxªZ[ã ã/â‹o¤úGxSÅÅëù7 N<}ý3Ö5Ö5B_ðÄóÄWªa“D*š(šp©tiÛ´Ù´õŠlvM«6<Àý̦»MwÁó$ûù=n¯NW&ŸË ŸçFuÚn·óÀ>ÛÕ÷â�Èdµ1³x˜¥{­+¶…&[ ”º^¼vñ�‘È O Jig\õ?Ûˆôx¿´q:v4‹÷iú$´êüÞ‰†ß™‚B¤Wß�°�Ûõ>WZñWµ²ìÃ5\û+›IØ™bfÆOvÞE´ �v�#‰ª¨ón²t¤í)þö©}Gažø¹Ã qí×j¥‰)Lcì�ÏYÜþ�Õ*>:`dÌ•Nñ¦JíP“IJ×ÁÉ”«áZ¿ŸÀµ_«õ6{.]?â^Ìò.5óz„ž) lôÐi²ŽÃ%êâKñøÚs‡dðp ×þl‹èõs«N?"WJ9~´`—}kØ(Ý£»Puõý¼‡NçãþTµ*Â5\ûÕZ#µ¯=�Û㸠E�òs]"TŒ¿Ò÷ñ¾ÕL5{–tªÞÕp _}µGóu«Â{SQ§¥·@å]Ööº‹¥^#hÛ÷ûkâA ÏJ·Ú­r^›×ÎÍ$×A6œ1An°‘Å‘ÅR»‹–gG»å(Ó¡A_ðð|íåƒò™æ �ð;Ô÷~û½òìè}€mÃÐ1 w/(èPí|ù|9â¾-‰cM(m/ %¨$ÔÀI(ÛÉ6h xøýá¢%~~ÃxD:´ü–ÓŠÓŠÚ“ÚódÀ7Ö¢ÿ6&4&´“O¢ðÇ ‘õÖZ:LJfrP·Pv ¼¢@!ÙóA9/¾0̲e�Ë\ÌÝá¶Ã-£ ã¿wëgÏépç|ø`­�í¦¸lƒlM™÷‚ó‚szþfò�­BQ€%þ}¥ûJ±÷Œc:tãw�‰!ÏK ˆ4“¬·Û3bïÍç¦ëö%²çfw»QÉ é;àEŒè´^öZ…§ Z…b¢I¾±g”üöžñì¼4R 2Þ6â®®nž~¾ÝÙÖútéÇÄ[E»Xªc[‘Ø,#ôžÖÉÄlRò‰ñ%¥;šs‚ùñZ‰-_ÛˆÚˆrŸá à 0}˜cåønÐ#ö'�àÇr‰1™V@h|`S}ûîí¼|ü+V ;Tñè€W„"­%otZf @MWM·C””ê®±Aº™hàhà(Ú$Ú¤…�ø>qß²+‚�:”&NíÇ8­[ðl×1 ½µ‡µôA§~a)XKe7¸²œM‡šF6¬I5¨þŒë'Ö��YŽYÞ…­ëÈÀë�×|ÌW0`T7ÛŒaf+o|ÀúJQAQxž¼??[åò„vÞ¡ž¤^³–·6H•¶Ýžûlÿ§Ÿ�õè”^É´ ’òNÚù›/¿1÷ã\|_�Ao7œS¼™_DÊ-á„k¸´wRcõ=Ïè5Ü»Õülªmt3xŽD5¥ß½¾o\»œ!÷l±8UŸ´.®ýÿµ4tÿ•¬¸"B[:;Æ[Sg¢¯àͽ¡l0yf;ÝZÞn®ðé**�ƒk]s¯t�óΞá5?óN3ó™U(q™‚èNEÔÇlC£7å÷zéb‹¯qí×jsõ-¿Å*ø¤fU“‹ßàÌq×€ ß;9]+nï(Ät„Ý$J‘p�:O81®ýú�˜ß^ð„Vàäí¢ #�ΓƒRæyì<˜ì(L›“ÁzJiVzxŒ¿å?Œ=ÇÀëû5SôÇFŒÍÝõ�®@z·›c}šc Ķ2tà+Äæ�Ú̪„|/ r9$%$%cíûl æ“%ƒ^œùšW¨W(ýã´Giׯ´he€Kè%R›"S7£F¼€¤'Ñó¾çý�cc³Ò0ЭGÝë 9ñ½½ý7hÛWÑ €õöõö$r@{W{×0ƒ«HÛæ\ȹ�U¾U>çs;ÿø¾Ó¹§s¹éÃÌ�JH³ &…áyþVN¶$F0)oàõú}s_Hü‹½;�¦jï8~L™eÈLeÈx$¡+d !ÂÉ,Dæ9ÉØ5%CÊx2‹”±Œ‘¡ÌS3e–¡S’ž»×¹û§¤µžßº·zöyý÷þã,|Ö²öç»÷>Yâ—ˆâ®á|¶ˆhaC×íGØjÚjJ²õñôñ”c:oçgçw\눗ª…ªE‚Çf—÷n[¨|+.'þÕ{ÜøB,Qåó œf Òcæm#vºFǼ×-Q6ÃåÃ�Oµ)Zq„J›°*trùÙ„nÔª™G×°¾àÅþú]ðÛ×襩Ï&OOüÁ;Éλ´â°Ól«ü5Û‰[=>î2�Ƀx³ƒ³ Å~i ë�øØøØË®±Õ_âvzÚ| ^¯ÀyŸt<é8õ#å{½ò"€ÍÑâ…ôp@e)•šé›FjXªQª1²ä¢Hãé { rmÐç)² ´‡‚ý�2*§Ñ$Ñ$|³€ÅúÅzÑ4È¡{JpJ�£Ž£Žù%…ìöv•î*þ`iõ}r|s´Lž¢shîÖ÷|uÝ»:éê¾h½�l (¸²¦Ü®ÜNú'½îžŸù�@…¢B[òòŸä?QÞ‡ n¦}BûÄü‰«�÷ïSÍl&‰Üªb P—µWu¯*8OáÔèy¢CŸ>?g1AVåÖÅn¾Ó5:ælëwR¡öû´\ÚX+Ö³á²ÙƒÇ޼ú´p„e¼¯ë£~LǬ¾®¸�ï ¹B…q÷ ¨ýšM4.@g½Ò‰±Ä�3êtžÿí^‡�ãÓej9úîɃiÊv‹çÇÒÚ¡öû´žf'ÂK ±¾üûœEù3"ñk2{eñ®ÐÔ•?ŒI�,tì�­6‡Ô~¶v]µä¶zèƒAY[Á§óé$™–¢µ±ZN”¯VlÛ`«AÝšdž"Ë8óÌÄPƒÚvMs¬óŽîº�+y©ñ¹ÐÛ¾¼gF[’ë8ÄŒ¤Ãê/s•òÑ­Þ5¿îÖµ_³1ã¯e< Y&¿Ròiï-¥Ðjš€§�,Çú?ß`és‹?qÒ7ºêùÇÔr¨Aí¿mÓ–4„û8¥ ?,DsÞ|y,v’Pë]JÒL„`´±ýÅÝÃc$“ÞTAíçj÷øãÌu-ë%RËÙMÜÒ‰)Èž¡n™=w,²Çû*ã=l÷ôLPû¹š¥9c‰È;<#«‡ïO;Pâëô§D&·&¸x„¬¯�ÂYéqJc ÿ4ï…Ú?Ó*(i(<Þ�Ä„1YPÚÓ^r\'êâ¼X³Ê‹§D`¼a?.{N¤j"E‰‰¤]Ÿi?æ½ã ‹–5Ë�_¦ˆåÄÜï«|Ê1KØ_ŒÇºo~Ïyí�öû§°`0ç;[µJŸlÃt”k3­ †È:PVÏhñhqåsRÃYñjQ2cé⯩s©s5$¬w¬w¼uÌÌZƸ“g'J j#Å×”Þ£MÏY�$^øwøw„÷ë-=¹"Ъ¹nâ 2u9…ƒÖ«g’¸HNhÚÝ´ûS5++Ôïϱ —–¤g¥g?õô<Ý««Q>Ë©#ßGÚ ©„~î_p ­Œ‡šd‘�æ…uÔѹ­» _¸â[ûe!ƒ±ÝÝkŠe’Ãä~?b±z±Ú ¼Ú·Ú׬“ïKe~eþ®æq›?ýÿô¿-½Ìa«½q€šøå�å̳«õ—yKçÌ8´ßßQ¥Üéì ó= ªÞwÅB{;\õš1¬»éÊ ¡X°;……”W3Þ4>&ŒþÆý¥G·ž]½üû¹c6žvË’¸6X_Ò:êüùêNg ˜Ë?ñ^ ¨A h]Á^mXv‡ÔÕé† h�ý�…�̦}Ô™Ã;~6ª –żïÁ.ʨýümY!�•r>›‚}ÕózSì1ê,¸0 R<ýè[ý–‚}ôïqýÌ=‚±Z[¡µÿ¶™‹Æ!¯RÞ�aÏ ºÅÞ@ÁíO#œ©÷næ%w¥É¯Ï¹êžeö¨AíWhÚR”Ö-^£ôy÷“›(Ê:óÑ‹W¡ðÉàcÔ'“+)²–f ©]Ý¡µŸ­‘>cМ¤”e¤Xœ—tŒ6gö�g� ÑÅ¿¸<6TLVRÐ%=œOÍDÕ5¨ý M R_.íx-Þ}Ã’é‰Ç�#±EêC—Œ}Ri’Y/5‹ táŒmÉÿß-ä˜o•5“ÊÆ~ò¬€sH̽ÕE\6Ñ�"-’Ü]­ÕébùS;í­T±`0â­¤.Ÿ2ÃôÊ}3¿^�†aW:ÈEùzöõl“Q><µôMΦMØAØaÄJ-A-á~)?"óÀ¼@#ÔÁQP8×E2‚–G÷ؤì¯ä¯ÔvHÚ”qå#èÖ胔¾=šˆKÀ|Zâ3à™É3166AÕ!FP¼ÓÅ…«+ÓHsáöv÷ïîïBêü¾õ#®M09@îÚ�3?Z6—7ý)mGµ/ÌÆÇsc¥™•™•“xç�lp±Øÿ+#+£L‡Å¢Å¢7_}"ìÏ-ž³âÂ}ёӑão´|`«—‹Á§-Â-˜{«nK�›«5½ÔzžXÜóNÛ>‹ î­0ßOÚ&[Îl“išBhä‰ð÷¸`_�2 ˆè”Ñ÷Sʳ¥)üÆ=×ß¾ç:¼ÕCúQ’±+|7·*l´Ô}§ÙVûk¶ E¶Jöª½„éáåÍc@¦mn(нwñKñK‚Á“¤Ÿ]¬O%|�$‹$‹q¹ùrs£<`–5¨°Ï P$Ä3µ°¸ÃÇ�Æ>&²>-pZVgÚ,œÌÂ61“9ÑÁüÑf:Zý(òŸ”œ � c“'ÿú4ÖˆݹJN>~qü"±—ÓöTTÈF¾ÏT!uäú*àò-´�È�kŽ¢i=uöéùƒHñ¹v) �^ãêèê(JL+•r�[ëGÐ5Ð5h”Ú•ÚE»`ʶ ð ðIÎQbtLtL$wÝÌ×x«Q%~#’I ÎS3zžŒ©�7­LÊe«E©ó“ï´Åœí»âä×ÎûNøpŒ„Åðk1œDví†Ú�·r}ާ"¤¶k b ø«®Víæ©7I°Us±TK¸o%ùì·Ý=  ËzXµ¯Í=9æŸê¤9§“^O5ƒÓ|â<«è…Sݶ’E0ÿÁ _\Ö£¹6Ï¡öÏ4—¹wrWÓ –;×iïÎHb•j¡�ÇHí«÷äU}\wö‚%‘tC j?[[Õ«}gWðôð¢ÕMXè}ú²ûÖôÌð¤58õ3ŒA`‚µU�)5¬½ j¿O#-›âB± ÈÆ b1‹/H\¹Óe§.ÀXѪÏHÞ�Ww 픽PH 5¨ý›mìÖÂ>Ò§‚MÃg:4û‰#½œÅÕ"î�öMpËÑÍ;Š-uûZž…Ô~…F7%OW¥ì¿›€¾Ë]1§ YOg)è,«ïúþä#L&eÉžRÊœk"¤¥PƒÚ?ÕÂ]ò÷…–Ü8®½È"žv g4<ììVš.S>RÚþpªCs™±Åg¬¨Ž¨A h‡‰£×úõC†¹ù>Ð jOùWËHïå3Œ¼ê9tzÖ�Ä-wF)¾ÈjPû§šV}–dO—UööUWœ¢›råÆ-‚™Jctæó¶ãÆ­F‚HÞ÷â¬H öï51³² d"m¬®U H [‡6娰zšéØi=•\:ûüüìO3¨ý>­¿/ÐYH}õuÃû�™)Gë1þèNú6n·±Òh¢ âzr8‹TbÝ¿b£åP5¥�zÎõlfâaÕÒ¬dߎy6:ù¸¯³÷Òt̬²6þªîÁ•�ÎFÕ±`°|ß­^ÞÄum³%aPW7 Ä»ÖçÕç¥Íò$%›?yKþk¢ÏEŸ'Ÿ( . nCZÆ$ÚE±€0= Ý㤀û쵦h –V† '55Ÿã"®• 1é‚X°Tç@Ô…ðp4�ÝwÈå}´ýðxHp@¿@¿Àúh¸(,¿3¡3Áþ“ý§†ô*ÞíåjæjVÜãú>)M‡ §:pES÷2ÚÇ ¥ÔÃ…prø�/Ú¡Ëêt±ÛLÛLGâ¶óöûþ–ž–ž>&ôžôž£ã˜hk©l©l….9»‡Ê†ÊâÛl–qt+�€+ŠE湿Íms1 Ÿá.q…Š•bª�Îý1't�§›Ý)ðÆš=eÅ!k·Ñ<å�:)o�í¼WwÁ¨ 7?¯"€>÷?üísÿ‘².#•䇜ÒoÜ$ 8=wšmÄ__M¹•}høeLÔ¸›iê�f‘#í ›daYaYòû)y†Õêx^è~�ÅŒª‹æ¤á¤÷ðX2[ý/>ö9†4lË Ð2åOÑ��…ÀBê•8<Éå‰ï‚6ºå  ¼×hpï3—rbz©!©!A¦€„w ï>WÔc�úmߢޢÖ<×<Ù�ÞHoÏÓÍÓ�éíë™ï³˜ëŸ¼Ex]‰öNBÇÍ¢íHóä ?'KÛŸö_ĸsº *4çK˜K˜ƒ'Á_°™–üµGj�$N_xxá¡M¦'‘\½\½ÓïòÅóÄó*7s~¶•ÕÀpžÏ穊ôï矞+¿ šZuظúÂyJzÛûHÀsÌÙþ™þ7üÎM¡zîÜà€ø¾ Ú¢Ótþc´V¨C•ԥ¯±÷\8Ågàcs®©„Úÿ^+²@Ô?ÆY5W=ã#BÔnª9!4÷Ü蚦’—‹i¥µ÷ÐþXÝbÅÞ}]PƒÚ¯ÐÚÆ,ƒIk9ÝÉ/ÎLC;ÙWqJ4œ=1T’g0µÑN_ŠÈhò „ÚïÝ®D¾vLŠÒ5”BQu]QI˪a�/:vÅèñŠ¢òˆöÌzLebsº)Ôþ÷šö©‚´¬Š¤&•zœ«×Š™—Õyîž‚³>p6°Î‘)áQ÷¤jPûÙÚuª[sð…!º˜Ù=ËO##U"ßzÏñ5Ü(a{Q ù'Xáâ9‚·iü,nbî‹Æ©aœd�üb"t%wí´8�ƒ¥¼ß 'E«“àƒÍÚÕA+�õ% ¢UòeòeSB|ÁýÄ”Á·ÖÏó�]…]…æÆAöƒì*n¤x×+Ý:€¹·xœï@6þ ÍÇeÄÄ~§ìÙ½’@z è ®l#($–8MͬœmÍ͹�’�’}ù5 ?;?Ûú¢À{·7{{ð+zLMD‘Ûó"ñ"NÖ—ÿ>™àGÜÂf€OáhIB~Œ Éh*Lø‹È2)Q¾ˆ Á£i�Äòò®F6Dê¬]ýqˆ8„ xÿLÿ ÙyL H\$n)ÛE/!/¡¶ºÍîl¥É¸”Bx–ð,æ® ©§ðª¹Ÿ÷䚟"='þ¶óîºÞK#X®è”ÕÜ”)Y�MÁg6:M·Êáï¶'Üù¥¿#^¸ñ™�TFïgÒÚ§úç¯c×%ôí]—�Ê~ûi"ÛŠ•bÛÆ�f[㯯^±ÙJ¯�á2&ááÍ4ŠA+^© § Ù Ù D'C£a³„ïž]ž^_k‘i‘±ZÀíÀí0^,tïÙ`Ä·Hâ#ìRÕìA“Î+Iå<Ÿ›+’üxä¶@¨Y_ä¿„lE+�|ÇúøœR7 Ù¬ÙÌeàzÀõÀƒûö0Põû‰¦‰&¤ ²³ºHb{5Ì5ÌØ‘ÇH¾ ¿pÏ,ŒöpO(­t;š�”8Í^ع…ò¶/Ÿf 8V:´ÆäeóNüˆÂÞÂ^ªDŒj!S6]]Ûò„w0676·rÎfä[ÈTÓæ#æ#þo¶ÿ~×Áý9îH+"M Ò·ôÙSõ;íº0gûgzo×ÿZ7a œí Øûöî<Êöั“-’µ,•,…„dßËØ÷};Ô�%…d Ù%K²f‰Dö]Ĩвoe©„&¦ˆj”_÷ožûÓ¢s¾ËÓó<ãõßû8sæ�ë>g®ÏuÏ=g/ÌñOŽén8|:–¦|£€ 1Zä‹‹°ÂÑâ¥t4Áö^3Ó!kuÌw~`Ò“ÞÞ]t¡ƒ[S\§ˆäuòé]ÏãŒÜÜÂ.þ§±í÷jî<)¤Šõ]»…Ó¬ä¬fK SY¸Öi‡C 5…$Z“yÒºQ#~/ʱí÷j­Æžcáö;W;?éôéqð×jPyùßcçx4cŠ_*pRuß´÷ñQlûû´‚!¤ÝªÀ¥Ó� o^ó×Za‰‚q{{L"8.Ô äË5iHñªÀLÏ`Û?¯UµÅ 4™ÓCUÆ)à³×Ž…Þ0ÃC¶ðã_˜)Z&SÁׄŽÇ{]ÂÅ6lûÝZdh¬XaÖA¥"�–Y9…Ýœ¹|<�γ °H‹ªÓÄŒh(9—ÁŽiÎâ`Û¯7æþ) ®ñX‰v³¾eêÀ<äòú7Ï/)!’G•r/ œcnI0°|¼ÝlG‚ƒ£a¸ÕÎó§0)@6ƒj�|ã @ב�D�DºÁ÷œÞðЧ=þ–Ça�Ã/�0Ï0ÏôÌ’@u�žšÊ d/ò?ì<(ȦӺÓډ孮ô$Ï ¨–³:•ÂWˆ¦ÜïäÛ%'@2!™˜ö:ø;ø“cNV€(‹ÃÃéüèüŠí%º~Œ«›«;xîÜÐÏÙ’�Þ܈Fä,¨­zíýKÆÓ:*dפ¿ÂŸ�_öª¨â¯â_@ø°_¥~û+Œw_©¾R�~Óa>VjVêâX”ÌÑú£õ;Ý6 MÜÊ� �òîeÊË̹åM½Û/ækÛ¼*v\Ë|±6ùÃÙ8·Œ Ë–ˆËzsN_ô¶Câyä¾L­sP[î„gˆ±ÔǵóëÂ)— ¢ßP;Í*‘´‚|gnÉ¿unÉIŠ~/]ÖI>ä¶‹êMÙšK2lZÛÍ™0ßËÞ*ÆÑžÛGSÙó:ß@í†kûNa¶ýÚ'áYáÄÐ×âFó1õYš|ŽJ;Ùü+•Íž©�ÒµRˆÈ„ÆžÚ%’SV9ˆm¿[fbg4MË$¸—'ÛjÆÇ¢l¥Š¤’e€õ Ånœ+aù® ¦–;VcÛÿ¦!å�È~�gí~�>²ÑfÙtÔ&rrf»–5ÊY†/šáû1ŠºåQZa¶ý¨­“àÙy¿²¦ï²cPw!î¹ê”û�žƒöwiêˆ:ÌÖôÌÒ“xzKr|%u­bî�lB¹D/Æ”ðÂî™w?¬Ün¤÷å#(Ѿ­¦ŸŠA0™wlF¢zÓû‚$ëPÚPÚ –ó�cÉñm\•*û·vxïðÆûüðM®àJ¬ÑÀˆ€ÞÙ©æ"' *D« -™Z¼zwáîB¼Tæ'd (‹šo ôÖG[ Íýª'/<¤o/`¾u¾•û9šMX/δѬ (+”•6R¹ö„iæÇrùsùÂèwÿ\#KÜ1S;@ö{4ïÐ4O”9”ÆEǯðïË_R0pïbb" fšòO6ùÌåÌå'×á{á{ §1q¯\D^Dê°,,p:ovša«.@Ó«h«hÌ=Pž©P¥ø ¥%bž\W¬jáÄv{ ž°c ΣJ{Œ¨nQ Õu41x30÷·$èÕ¯óQË2‰bï<ò§ n§pý܇ïì�„¿ïF¹9W»¡ Ïè#Õ¼´ê»ô¶[Ûú_^ÚÉh+x…¦™C›©Íƒ–å¡ ºCÝCÝ\ïš*nw�“ÒvQ| ¶ [4ê@u ðÄé"�€¡KÿïJ´Âc@�¬@?š¾q] (NCÓ[¬p“5’†ú‚^6У­îé;XåªÓ°éµéWì6Ýml¼s7èÂxŸmŸí¹3rƒ§b^ÿ˜‰‘‰Ñµ¸C?7wÍ÷@\ þ0Zy^•f Z1�Ç¢ò›–eA½¯d)ã�]úK%%®Âé×b¥þŠHT$Jè K°K°­7¦Ole“e“xLí¤.å.å}³›ÕÉnÅ;HÜ{“ý&;¸žRiÐ멱ý¬ÕSF—L&¹üîóÛí©1×6¡C&Aoù´Àg·¶´2™«£²�cç6õÎ^È*Ó‚Oø¸CÄ�å6Sûâ†3™ÃŒ$šyRC°™KoÃ|ó‰c˰í¯Ù®p0¾ñ˜”mTG„!ÏÂx]y¬ûêL©õIŸÌ6~�™cíN gwÄRª>Ŷ^“l Ûÿl4Ö u÷°h‡‰e·"S�Ìq¦ùàw1õzZ\¥ókc„\ö؆m@ë ¹Ý©èÐÄxvÍ4�ñ©Øhh€Lû�æ÷ª§­rÌ“Lõ+2ƒžAÞ`¶ý7š»æŽ·é;ív1.Þ'b Då�áÛ_—‘9´Â–¤¾D^ON3‰mïöd”,Ÿêí0¥]"‰>9ÍFÁó›.i¨<Öë"Ç8ë8S4hzliiUJ± ÛþªmqúúÉs°ç®P!iº›T÷�·âÀ'†¤I3TûÖÖŠÆ/2sâc¶ý7SºÕý;©®zž×yFÎmÐ¥VS¬ç ˜Yt sGÙcۨȴâ€mØ4¤Ó{êúJMR+¾¾.›Ö˜sn ¥˜³^ü™ÏÏîôæØ=£*d]ý°Ý¬×‚ƒÓ±Õ}·æ˜Ré7‹´…/‡ƒV/$$ˆÈñ—ßò±^à›’ýÖåðËáe)ˆ5@fªˆô<Á¡¾xL –f9‹¶ê˜a² ¾�¸�(VF|–?F:]ðժ㺣!ñ\ÒýŸó¸S¹Sïj*ã+㛆I?‚‡�ÜŒÜæ–ç–­‰úm~l1�ð.ü¹9 ÁªFÀJ3ZÌ( 釯óÚkhdß5yMµ¯Ø\镜/k k u0î{,‹å¿Â_Î_Nž¸—¶—6 ÏšÒš’H>IùÈž‘=’›\ÛÊÞ°žÿ€âæ9<è²ÅW’œúHK^Üš¤íÎ1šç “¯M_UÑI~: •ƒíƒž!æ@ZNßQžR˜pµ#dùœy�Þ’þø8\×\új/ÍwÎ1D¾Ž1šÒó(W|~°BZÞ›‹m»µmøå¥�×·ªr¶9„IÍ|3͙ʵÑÎ͎Ϭ8ÅË�·»vŒ¿\;Œ—¶’U#WÄ”J³™9È5UÉ äútLtLT2þlžP+Ô"g(¬ä[ãAãAQ/L’M’+tKùèò €� ¶îWU‡lÌÑÔ+W­@£~««ÇRt»e‹ì@ç£(@*ó'/¡)å7̾è\¼Öz­U�¨ç®ç."þ0 ºš;�œFÎPÍPùiû*þXbpbð›>¢‘ŸóñPå��°»¡Õ88¦2Bó%ï4j¹´Cªô«–šEI} Ä«‘¯‘o ¯º¬L3(ñW,Ý]º«x -ŠÃ¤NÅy�óλé|ZFZF¨Çf³[¹Ñ¨Ÿ®=]Ü¡ià bRõÇýVXˆÊ�—Žrl7Cü Ìߺi¼‰?‘E6‰'T÷ƒàì–W²ÝÌéDªñãé�Í34ô Mhë Mü�çnõ{ÞËö)$Z™çäá²Þnæ�ù^þ¬ï1;í+í£'b:«?}Ëë“t_L¶9O½6,ðPx@?žŽÀC)wS =Qlö·jpÖ<²r:eRÄÙq AÖ|ñð«ö— ¡Ñ¢¨Ib–y›±2/)˜›�c¶ý™M/Ö»š‘^¾aO†Hïôìð¼a3UYÓ`þ‘GBÏ;ì+‡!B>•Øö{µ�ºÌø†9–¡L®«âÊ�|&OutÙo‘O6+ªt ðRBä„Å)¿tƶ߫�õxi¿×‰0t«fZȻю³›!8vVÅ“´—Õ ö„Ðû븪˅*blö·Å�ù¹¶Ü2Ø%“ckR±Ïþqìe2Ú§ô,¼-ƒT¹ewœ.¦¬N)˜Wa¶ýn­“Ê×þ kMÊ+:iº '}†(é§ïã}¯éCGß«5/ÜgÖú$ŸYXä,æ\ȶŠ0� ?�òﯮd$˜Ùn.dòe[þêôV%ìsI˜„Z6s­�²Ž€ðMÜÂÝÂ÷>ß}ƒ4Sù -©ë·N‹ŸïY!ˆ#ˆC´B%çÉv‘±—;3ž!Þh®·l#@{N‘ú“úG>ˆ+®,=CšU3|zÔ€žr¸ÑG½Â]/uã…Ìè=é=¹×ÔeAtžÙ~Ù~§¨NQYië<ü1„4BZ„|¿ÐÏá©� ¨HdÐtLyYÐ^F¡ ÝmÒƒš¿ÊÐu×' ijª°ª ê.”ä˜üŠèÙèÙ Öʶʶ}昨;öwìÏÝÅ�$†C¤Ö7»–¼•Þ@Ö-_-_̹Мí|Æ)A‹ša;Bh–åvs!Ì9çòRg&ËÝâWJ±iM‡ Hü µÇA^¨]9v�y¥’‰¿3:öý{«pô�¥ ‡Éƒ3Å7èçc·[Û¦ÀyÁØVÄ/³q0Á]6£…Ž\—Õ{ |ùs9ËB•>«¨=B£ñ-˜LGäc8c¸›àÎÁ˜ÏóH±e²)Û+Alš¼Ù�y�á ù y©ÔÍkÈ´Âÿ±wßÑTÿ�Çï5BF\++£"³�2?QHdK²gddgÅ ‘B![öìce&eGöÊHd§dÄ·÷ï~Þ¿¸ �óùžÏ§ú¾ß�ÿžÜã¯sîy�÷ë‚4Bï^‰ùu¡˜kâ“ÚMyŸ”Ë•ËIŽŒW�W½3Çm@êÞ“®“®‰²‰²™gZ¿Í^×^·¹yYàûÜbIÊÃ(b$³(×à|×Z� Ú^ú¬ÛÍyy¢ ÈÐs¢çÄ¡p‘î�” ?ÂOÒOÒ«¤ß¥ß…�ÑIö[ì·By3"œ>=ú‡¶bŽÞNòÀ@xoûÞvp<9üu¶Ê²±dR‡ÛGV³ž¿>¼'u§uFô±ýß>;ëÁÞ)°šqÑçÄK‡xº{ר”™‹s1®ÁXŽcöv“1ò6³ãW5ƒÔ€6Åÿº®ç…´u÷)WÝj]ùtõœ‡ iqþG&åQæ:ýÉ»§O@~Ôþ÷ZêHÿ�̨‡Øúä{Ãç#nÀß=Q |v>r¾íQ‡¦Hë%� nö¨ý{ͺòJ”C6Ïá…CšŽSg2žiá¼Ø-ÂMGJ¶‘}^iÕêä̹4žå¨ý\ím]˽Hç”Ìj|Þ¶ákiÒÉ󵼯¦\Têô*a¢Ø¥XBp öó76csäô݇g•¤;-‡øÿÎyì|R¡W¤rŒ”:sb‹£¯Ù �þ¾;'íKìK:zÒT°R€Ý¾#åç^ž+ä½C™6X”õº›ô›ôO“öUIƒìÞ¥%ƒv½¿Q�r1×¶Ú}`šp,çXNS F½FÝúu‘hš±»»>¯>¯ãM½Ý·…I†Iº]„W}_˜I';ë4ŠDú¢j%h0¹’ý alÖgòzYÉ™I•I#Þɤ€Àö{?â1ícÚX›`Õ`Uù^t²ãªª®KlÌoß.Š\ߪDt»Àb@±«ZˆZú�ó¦ñBÙÌ,‹�ôrrÄŒyÈNstô³I1)vË÷WkT¢—yJàåÔjY‡÷óמÓå ¯azs”ãË9:÷×çè«JŒÐg'ŽJà.Ï2÷hì4¶µ?�í%Û¹s\ÕBߺÕ9(ù¼íh.RnTn«E)Ö²©EÙˆúŸmw4æhÌȾåØåX…k€qéa@j2à|cÓTÊ"`Ô]‰e ¤¤tµrÝeÝE86MÒÐÆÝ$2m‘Z`M»…ßs19³þ Ê*ÊÊQ |\ùøÈ±œzP×Uá2á²ñÖñÖ&:OÑoûàòÁ¥�ž§ôûÚ'c¢?¸r¤Q*=‹Ow‘¡ì‰âs¢ÁÛuÊQò³ŽÖÁ×;#uuÚnç(oÝ®ýٌٌ „}}ñ$èè¥�ñ,ä`ÃyÃy�[©œÜŽU @‰¿©´©ާ rÔxÚ»à+åk5m4BTéÐ~Àp§9:úØþÚï¤Bí÷iY”Q&LËSAéÂÇGVg�3Žõ´¯àD´Miª iPx¼�,�s,‡Ú¯Ù¢‘j�¬iŠYÂÎWb{Ev[ö‰¿.=G’‘¢é?�$ÛwyÎj4©j¿Oëj´öÂs¡Žò8Lo+p8r§&µ[Û›âqÙÃèá{"WÚ¦ª ¡µŸ­Ý’/ŽTÈ�0ç~2“L�j,P¥b�ù`Þ[óéT&ræ{�9C‡5¨}«)�>ÏÁTßp·'.ÑÑ ˆô`¿ð²)þ1³ ¶X`ÝõC%ìÇÕ«vÍl8´Aí×lt8Sêo¾'ö.^ÝwçL@òÉ FáÞõH$íp�Ã])�ðÊŽ•Ä2¨Aíï6’ׯxô,b˳á,·û…£^᩼Mˆ� á×±'ypìj„Hì|ån¨ý\-óp´žZŒqÝG¹È%/�ßQå‹ÈOŸ$ošÒíró£ÉÄpL^¦5‚ÚÏÕŒ iŠùÞbKk›<|wÞ�£Ö›ß|ÏÎéæÆÇ—LT˜%Qx×ôǺ¡öÏ´r‰ÓQØgpu6-Æ$ôø ¡ÆWCؾN¹’û–=0\ ëî{’(ôõ}¥ã|™ÎÈ Ž§çåÝbvZß¿‡Á—·£?„®Si«©1Pªp§Š~'óóŸ?†�_ ÷Aéò—¢I£I�¨àœpNås€J €?3à^¶íÜÇÀ´è‰4”d‰êR‰�ÄÎ+¨µ•½0nbw#)9GIŽG4µÚŽ^ìñÛã—,P]V]Æ,Ô,¿/q_¢cµcõ‚WBÅ·µ©´©$f™}ŸTÒQŸ›‹a”ã>š:3(<�⦅^Ÿ¸òÙÕÇ ùü€S /¯¿¼ž00çÛÅW`ö#ÔÔÎ#…©„©|¹ÐýÉ üÈ�ÒYgN+~+~¨g¶‹STÆ�ð<ቾwµÑŸ’»deiÀr°5{sX±ÓÞú{ñònºÛìÿì6 Þ°T—äY`ÄxÎË#ûa EzþY^øWΗò}ïJ:˜¤ŒÅkž•Öø]S×=ßò�ƶΧ�ÎÄߎÖë>ºë­r @žO¹A�A:A:ªZ"²Ì˜Fïæ_õÿR“O“O£ÄÕÞ«½7fŠcýÉMÀùù2â J€ÉÖÞ](ä¶f åéÁòÁrúNL‚kf@dç3x@C쨓À*�4þ7¹Sƒ,—Ü.¹=÷dÅeÅ1VW…æQšPšttY"D<¿mÄfÄ&K›ãû^[âïÎkÜBy¸îð^3ÅXFB�ø�›—çÆg¢C·–nîìª0yfòŒS`ÿȆpõ³ñÔâ©Å ñ;ÿwþîãèZöæöæ³ÏÌç^ν¼ÒºÕBÃvæ€ y¡:¡ºÿ¿»ï¯÷Ø÷³µG·Àzb7V9:ÖvÚ»BÛÿÄ=-PƒÐÚ}][à—�((ìÔ¢´õ¬ ZI§ü³+4ƒ&~),¿–Ѱ'g"j?{/�Ë„˜I'9°æ|«!ªZ�<�ƒ—1N(™Q³)Ÿžê–§¡“/¼¹jPû»ÍpH :Î�¤ øä�Ò̰OIX½(xS5ÞÀ\%½<{l+3�édPƒÚ¯ÐTE¦M®/Oô¸õëž–°å¤Òª\À!âÝ$—‰D’¶4y‘ÜÞjPûÙa=µò+„ ÉÜ̘ȕpC:�»La7Õq®¾,"*ÎoÊ#§%m�Ô~…vô‘¦d’x-vöÅâ×ãφ£ ]¨uܹH•‰L—ùÕpc8hZâÿÛí¦°G¥)­Ü&q¾#©ç¤%‡¾V¤“avÞ8¢y©Öqª>˜Šxr§µ"]8 ¦z`;§¨:ñÜ­X@Ñ„ºæ "¤ôséçÝê\f¦ñçØIýÓsüh€L€Ìˆ'À$Qƒ % �“fŽ­RÔPè  \;‹Ð…n4P7PK_-ŽŽÍÈ­·#�AÜò ‘(ž¾É„×Åç/>i£j jŠ÷H‰€n(^P¼àµäµt"}÷ۂɃÉ%`þ¾ ;5êšU L”I¦ì1MR·þ5f�÷ ‡bD?³fžÂiZØhØçÚç>Å›TUÝüøGMM||‹ŒEV³£Ã8FeGe‡5�5w2üdøm¡­*æ¶K|ØÌ˜§˜§@_í4vº½VÓM®á guš±&Ûiý~Ò‰’ Z_³TýåpXÚÃb¨ý{mºZØ+ÑZyZ-¹Žt³QÊŠˆIàDÁD§9‰HaÌkÀÇ‹‰?ˬjÿL³›Žp$¶gÖg¼‹òAÁ¤¼ì¢ÊBœp¡EYnåʆ­+ìžA'Ô ö³µ5�Ú·—óŸ,�6¹ Ȧ*Í6¥¢ãˆýÈA>L£>:ÎÔ¬A›ØZ µß§–NZØß'1§šýÃû~»a´ÂQšòfMâ^ìÇ.°pëô9d!Ô öo¶Ñ;³ô„O¸-H†.´)÷â‡ºÚ � }zŸ°gœUrï̤öR§‡ñ%¨AíWh{'Ní­”õÚƒKÕîx:#¿QCmÉç“ÇCüqZÝÒxgQY–�|!„%PƒÚ?Õ‚ìò芃ÅUç…’f¼ †ÝIR§Í‹³8–hÙXªc´kë‚Ô€v ?&üc¯æÍ!VÎe Å{µg½ªNŠíã¼êçüÒçü”'�CÖä™»…:PƒÚ?ÕTêÒDºÚMÒ¶¬ÙcÞ–,ÓÉoâN=3º×pÆ|L§Y›;Žý�M´ Ôþ½&hPjCÄ×”b_9«gdnyЬ VG@ñ:굆\Ö^‹¼<$F›³Ô~ŸÖÛsÖGaíÍÓw}“WLG™‡?§jÑeu- ßm#¤!‰9G*Ø™‚û+6Jfy}ʰþ Cõs0]'“¦Æ3­èû´µD–8IÛ$ü8שnwÃîï´O«‡ÁîÈm·Êé´­èVaµ ¼7>i #V+¦ÚF«W–¤¿„=�=¡X¡6§6wç v@Ѐ�ç¬O~“ ÎÔ�E¹$ò”T(ÂåÀå­óv¦kݵ+9†y7¡ø®ZÈé…N­œZ!ÜQ¼£¨m¶bD$ˆ%ˆÕ Õ …ÏÅ9|[Nβ¸³ö÷Ñv¸hª¸Ï¢ Þ—>–‚Â7çQ» ‹ãYÃöÙu¾s70ŠE×––„DyÜÛÙ „€Ÿ€Ÿòɳ|gù°òÑñ饧ßg^,žäšäbwÝjãvÝE€¹=Ø×°¿¸Ý+‰"ÒPPÉ}¨]HºüCéNû´è¿ë8ÀÖyÀúFðG NDùS©p¶²¶j ‹:—ÝÖbvÁÈ/n}_å(jŸöØ×ßWѶ W‡¿ ™žqz§™ÚilëúhQ©íÜåýðÑÑIlÊîª9¦¶:µ:EsWÙÎ¥,mà I_Y_9`¡ß®ß®ñÿ˜éH-` ÄnœÃ Èîó_BQëR8 "mÀCà!VTKýBøºÖ@ZÚ‘Ò LZ%­úÇ”í�Dp@Ћ e"€¾Í¾M~¿4�îèæè&‚ A–W§÷mç>=ûó2Ÿ|Ÿ˜©¯kàÅ Ö"�{b(ŽçÄO÷�+G}6Úåâ¾°'µ-·-Gð5Í" î*þõ—ê/¤¤dDÐ-Ña)a)Í%í&BÎ"g»¶Â¬ÞNcÀ}SSO•„½¯Òá+;â3±f¹é÷ÂvBÌq§}ô±ý3}7üÎMºjZo OˆÞ‡²kw“~òaaJ“…#�´ÈKxß`�Ùœ¥á æÜe¨æÔþ÷Z¡‘b]æš¡üw¾Ý­úÊã<ÓÚþÊg\íôÛ¦nƒ QêE§»éÛ¡µ_¡µŒûÖ²8Ñ\�äJZб¶¨,Ðfùãé%©Áâ\­‰ÍVªÅ”'<¨ýÞÍ;ôÍ•Ø0õ‹¢ ¤Ïµ½å’Òj¨OÊzkW|8-;¬:¹уˆiLÖ‡Úÿ^S%ÍOBÂËcäêp1ýü‹èÞ©,tÞ3ÁÁ”c«ešq²øð‹ÇÕÏ¡µŸ­M“':4úÚ îm2ƒd¯Wò}ížc'¬0^ £SÕð ¡ îH O£Û_¬uõ5·×ñe9'Çý‡½»ŠŠª_8ÎÐR2 Ä$$¤»QÁ ¥AriT:¤DABI)AéTIéP ©ã^ã>Â(âÅÿœ¿ïûÎúÜ}k¯¹xöÅïaÏžÁKТýö44Öòݦ„?6 Ó¼¸Ó:Ûí�Ê^^\ìfú�£¦_"ê:ý~´ôjéÕéCÚšÚš�f:—Nм?Ô´Ï,E$ˆ© 2—$€ŠW«<OVg$Xg¶­/ßIr>QBø„ma¾ o;ˆ‘�‘_‹|û4†¯<î *LÀ.Æ.†²BY—>÷ùîMžQž1âc$ǯmåˇ;Ü'Dhíù,kú a3ÅšœÉt«‰þÐw×§¥›lÌœè¬4¬4 êº~çîùrüŽÈ»‘w‹/s!±9\¸ždõØáÖ†ÖãÜ�^½Û ð¬µZ¡Zyו¦wrb ��óÔ¦¿Íìýv]‹¡²êǯêÔ>Ž“«^OÊÄa5Ö äZg t£ˆº8èˆeG`°�EëÛ&«}vàCÄOv]?ßuï]¯©"Óˈ2¹…W–I»ßl[~½4õünickPdþ;�¿U6ÏŠ�Nöææž“3Jòï®�~bý£ÍÜÍÜ“¹Û>Û>þ3™ûÌ€Zi@ì•�º'“øžD2É] JjtôõôíOÛ£= úÎÚEPÇ’‡ Âû…Z‘™B@ôõèë[“r r‹ê$3P;T1U1µ&°&Ð&»·°ì°ì€ˆ"¶_[H2{¹�P¨BhDóÑm� yiii�x;fê|w8<¸ä`P—N’N29Œ2ÙêÊ¢÷ïàÙäÙlj›2›2ÛjGöœ± ¿ ?%0ªÿ‚ͺ¸�8ÍwS^èPŸ5>ûŸÙþönÜ{p9öXk|-Ñ"MÁLË~».äÙþ“ÞÛõOkoLé‚g»p»x¾å}=Ú¨µm½)|ëTj>;¼¿ÐnЦÎMbc€�jÿ¼f¤IÚd“k»âoÔqû¥ÇE±Ù65 ÍB¼7çñ‹/‹B98„ìüìQíÏj9·“ð�×=¡ľ g b0šWË@7¿Å¤\]€§>š#£Ñç3U†jVkÒß¾<6dEö©}S³û+o�*©«ß#¦0ÖÎ C̾“gþ5î.Ú�jŸ–ß»ûÄwŲíîÅmüA=4A æp‡A¸"«g _®|½ª4÷™|GCTûçµÊæ¨u5ºÛ!§ˆ[¦oð÷†¤a,´úóbzN.žÆTSŒu½‚Žj¨ö§µë!ÑâG” -4§å©Øîðpvz0òÑˈ©�Gõ©*Ù–: «M£¡Úï·Kt/Ç$Ù£%[�º—$a,,m ïv*Ú Tì]àRoe£f�Š#öÛíÀ hhT»}î0�@¦É¶‘HÁY·Dç!'"'"ã§¼áδ8nÕ³üùGS®S®8›VžVž­Ã¥ûA[€¡@Àö‘kic€ºÜÍ5ÑuU�ÂW‚WBLÕáWU=7[@ï—$Ã@YpA)„³žçõµ6m¤¥§(� HPŸTÈO(^6^¶®½®ýÞñó{“’šô¢zÿkò!Ÿ$5‚=ŒWyœŽj´äœS¸¡@ý]v|@ŠI€L2S9Sù 9ÚˆË�1’ß!“�a»=z¢sîI1I1 t§âBâÂl·�Vv{„¨qήʮBÞ[f�»;õ®¦ÙµœàFúÔêèž»poš)“ñÑM[ì®u‚ÇB/¦l�m`s úðiøå }é/«BIÁ:\x{ô¾”)ä'{KÞŸï-ŸpT©4nnMtW$ž³�Ûo¶­¾^šhp·v’áÈT.ï¤�2Ô©)᪓«“㧆Êyv±ð©ÜV§üQ w ·o{t{ô(àºÅ›0€; }Í ¼­ð|CS¡GÕÚ DеÁ¹Áy�B÷ŠÊjÄts7\Ä Ô¢‹>�îÁ(»Xv1)ÐÜ,aÓR:ïbbg|ÄøIl=ÛÞ >P˜œÖ¯ÍØöÑwÖònðF- ^Cø‚_Å8É[fBü]d÷H¶F (†Ö†ÖFèD+ÜlÛIâw¸s¹sÝw£"£"»×€lzNšDš¿ ÞÆÛÆ;ÝIéÓnŸºmü!¶!¶à<±á›'óD/"Ë9•úLµyVYFõýö–ȳ}¸Úßq—?…)Ç¿ý£2¬w®¦Û ÕPí¯Ð6…¦…B>H轋ªËPã±Q"cô«8e4©ÒOÝD,"mF!’]Zуj~[¢e‚ÞJÇz”#×dÄä+¼\‰WAÿŠá1ÚµÐç<7zRÊlªPíÓä^òM¶út~aң̰h«I`cËt*­×•7 ›3Âô¡ sÎ!1E5TÛ«màaöÂÜß›|£Q±Ã툻�àø'½WïïÒTàkštæ=�n'r¾¸Ÿí-¥eúùÜ¡†¾Mɦ)¼%EG¡š$ºß¹Ãúë¹ãNÇn,AuÈθîÔù D �ÀMÏ6ˆ5ˆ)Þ4Â�cä­�Šþ‘þ¶þ¶ŸÄbÈ¥0ÜR¬´b^´W.TÐs#è�YA]} |IÕòC¹Þ�C Ú¤ZP*¥Å´‘Àá¬Ï’|_¸/¼ÙÐQÓQcžÕm-FC¢!G G ™Ákçö–G�G@îÅÎûk¾É$ ÁŽŽb„§™ÁVOãJ%2º|HY&u¿ËŽ5ï¼{À¿´8½8­X�¤7Ÿt¦÷wx‡{‡Óp r Nu £^|ŽñãÐÅ '   =;3ïf0¨ çâàâ@>Sç VHL�˜Àßi‰WΞØïL½Ì*Lãé±^Ò¡GšG¼ÐYÛVOãNC×-j!€õB»Öël†ZSû±N´ú˜b²ÛÚOÎÔB»ÏÔ)äˆÏò°ÕÅtj—N+Ÿû4Ș%|¿3ògÁ¶NǪç.çÛrn¾U*×/0ðwnc+V‚¦éçq1„D­Ã‹îŸj6´º÷À!ý5O-Gº×qâÊb¨w.nt)ªý5Û5VýÔ.|Æ~Mšœóú§žÆM”˜ŸôJoæ½4!Üz!Þ… šä̪ýóšÔƒÞPæÉþhÓõb.±V“§ÇieEiß]]‰‚¨ÔQ¢+y¬`³[¡ª­#¨ïnûqëz¨Ëªa¨«PÃ7åé~bÑåæü yï¼6wµhyãÕˆ¼ey>ñ3Ê´ýöÎ6ÀûÖ†v{_B®…¬7{§av»t,ˆ@/y&yæ‰+™«; ûI5£Ô²A!�¶"YöYöå5>Ž�J'bÀUú g–ó€K·"Y°>¸N€HI±°hÎÙ»3c‹j�:Ny€ÐBDDO4Ô�zŒ xˆû×J€m‚mÒ€»‘zË“I‡(Ï(Ϥ”âÚ[µaµaeÔö¯‰ðгx™"Î!œ%rOÓÒD˜ )„›o›$}Ó?ìaýÀhßâÞâî’'}x†Åò;z�z�ð`ÏŸ>mD¦B¬0ª0úø¹=/=ïl'�ìÝÖgÙËC†"ï�[ƒÏ°'Ê«ô5æÄ|$OÜoïÜð2úÁð}%å±›#¯•åÿ¥ì@øšuÁd¼èÔ˜â� »‡~+ýÑA“ƒ¢ƒ-ZÆ2q/Ȳwùù³\ïœf�Z©[ø‡åk½`eÞo¶/|½´ÄÔnD÷}‘-ÓïÔo j§Š{ŠRc�a�Ñ~VwKMjjœmæG”´”´Ç0gKgK³’–—ØуTØ+)ŒAý¾³6ˆP-]>]¾àøÓþñÞë9 ç𢉠|Š2]„Ck”NÁrñƒ‡*‡*gu@UOUOwt£©¯©ïÚƒk˜�©Mö6¬1¬‘³µnûk*, Ÿôs—ªµSòŠhhõ‰G©�Z=ÂùN]&]&Sþ«G~=jFÏ¥u¤uTTΗϗ‡©Zøf(ìã±’ŽgŽZ€L ãúYïÝAoÂtÃt ·®cP®šÕ‚.çuÒ€†× #*)LYà�䀆ö†öB`åêÊU_»U³úÍ—7_j{j{žÈIìÜN/N¯²YQö¯qœ(°Ü¦(;!¸ÈùÖªë œRÍŒò£¸Ñ|â;_’ÙY¬“ÛÉÌðÌpý3—éýB‡^ÿŽÓ8§q°æi‰i‰óÌ‘½™V7R7:w!�O`U`u.§r®Ýô¹ÃW4½4½Ày‚Û­pi+x“‡á]óL®%z¯y:cbmü=á·9Äÿɹ ù÷ªß+ë&ö¤Uõb¸—\B~^ ùÝ?h=¸ê÷ú”îÅgF4ðU��¹'¯þþåI’ÐV§…„zäïÜ ¿'ÛŠ¢*VH�.`d¹v7´úRƒXƒ˜P•YøUËø{-Õ–..­±Î6Í6½À¼æ :ÍÛëÓG$ô�‰§:Þ©‚TÒæ¿ÌYsVsÜhõìÙöŠ)ƒŠ\ÿ‚ œ¾è“õ ýßìÝw8•ýÀñƒ¬ì½3Š(#»S!B²“‘YÉ–2²÷Þ[F’-+*›duB*#”‡(ó÷Ü×yî_œ†®ëù]Oz~÷yý÷þÃå�Ï?÷ç|¿÷8n:nw*ý¾žk=×ÒžÛüØ¥t‹jy@ ©½ôYž1#Å xÛ“7M _\JL) 0ô>Óu¦+ŽqÓÿõ=»Ÿ‘û:÷õ¾k â â.¨ìFs-r-ˆn+±gŽëïmu¡z;å6€­¬…8Ob½Ç­×¾.Í5W`qŠƒGˆû¹áN;4ÔÙþU÷âÍñ¼DïõPcÓ]UËqX?Ñœ¦ËY­b}‹Ëïf/ÆyÞv¸�¡šÈ¨Aíï6,%ŽŠ.óKîr<ΙÁ¯w?ü®e‚Æ'Hdu‡qÊh¨í䊇”îÅa¨AíW6µ§rZjɆd¡Î±·ýSzXõÄ%�t}ÙG»^?6í{Ð�&àªqóÔvWÛ¬J Ë ™d|ÞFg³$v¦–çÂËóª,9#õÒò­Ç>;ÈÎdø†ž™°€ÚîjC*ŸÎßÑ´-§›Îʿӣ¤ñ y+o¿·“I£ò´À§8t……H�^r%øÓ¦L´ïhßÁ ôïïßO#�[’,CŒ!ð2ð2îÃ뿯R¬Rìžî�=Üûì}Û`èÒ+±$U³ø*ëÂÓšf_¤ýagµ÷4@ô¦è{Ñ÷!� ?•ȸý U U¼Så å ¤¢z'â¡ç¡Gŧ_Qd_dßž¶UÜævc*€k)Øب{ÆÉ³SÉ—øõ*�™`É¥êï´gDÝ›/¼òèH cqဠ‘蘲Y)ZØ›³Ýž«ä&ÝÜðè(œoì·ïÿ:[eUCºhÖŒ3LÞ¸V²6J”½Ó^õù_Ÿ�õà|.²’ÑGpÌ1•!Áí�*[E1ºŒýÆÐ9³@Ç!^aµWâaæPƒЦ…'›ŸRÊØH_7h0PÌc׌Â.kÍI¾sdJ¡–ªØ¹\€hXD jÿ-ûÕ‹ÛwcË0 )Œ¨#ß;EÝF[!l9ôT%æCwí3mx—žG0gÔ~]³­³Žu,äç™çÐvš–˪ŒÝ·ÎÇ@F±Q¨r~ÅæÔ¬Rÿ2j»«-4w&ÄÀ]²î6à -²•!ãI·üÐ$`z™›F“Q-âæ�Óì¡ØPÛý û�)—Åï™ø²‡gÏË<·|9Ê$üwÎc—�‰½%S`¦Òò‘ñÉC¥&ã¨ÏT{ô°>©],îQΞÕÛé™Ê8÷´²�­v=*±€­öJ€”D­ŽƒÊÌ„½…½Õo^gSRæstž—>ñ5#V#Öý– ý ýÄx²!û7€`‚pkV€‰~2#R)oV=(ÝǛݛýà•{*’øðtPU š.HÈ_Î iƒZ×r&Ö¡ ž«žË^ pvwv_½«Yb¾bãoãïè¨Â…Æû}V8V8M —}¬c^T( B²·Š‰ìGZÑÕP>X¦1vû‹†õ…*š Ö bÁ®ÆÚü@Ž÷òÏ(É(Éȼ)À+À«Õ„ª.!A¥y¼cAvAV©v«Úí5s�s�QŸ©û›ÎWÏαÉ,gFÍZ„îôL…z6)Q2Ë~9e¥)M-n™¿²­†V£€g?H“’�@d#Ë»£œè_?Sñ}ûìÆx‹ÊÍ'¸O¯ «g¨ÂWvšm›?gû°Óv «±¨tL¶šI*'´‚Î áåãåGû'_ZŒžSi2ïùšÎ ÎàÒ>''D0 !!¸` p™XŠÚ€ù1)#•ÚLñ‚Ó1¤1¤S†_†¼`÷Ç=KÉ>ÂVk0EútëŠÜp' F§FG¾––âõÙK↧ÂS� €ê˜høß·)½)Í!ú(ùÇùÆdÎÚHÑȳ•¥gK‘dY Û®#dýå?Aè¿2ëÖ Àn¼Qw£Î]¾Ü#l­æóÏÈ�Ì�d óBx!ÖšQ´ÛÚfN1/qQrQ&¨nELµ]•8€›Ó—Ì— œ§` ä½ì×W9|b1åpô7-_K^*…šPib"AïÕçâΠHI£‚ø%’XvÔý¾BÙ¦¸ÀÛ> ÌÇ=GTvÚïÛ¢Á`�t¶s|µx‘ÇV¥! f.mL�몰‹°KÍÂáØYl˜?מ‚¯Y·Z·&ì?µ~j½› 0Àü5¤«ËñŸŸ%"ûQ­ÇðEGÑ~Á®ÎàçÅ�&h)i)á o´£¾ñêg,÷/÷£§5Wü)Õ-Ã6«6«„½¾<™¡™¡1}[q{o’ x$5—5—…úÝÕÆ‹¬âE+#ö]…›£Š¤;}w…z/^Ñ=W4` Û¡|ÀˆvÃᥦÿ<3z�¿ü'D–̇§q#¿qPøÛß]½$Ö�â­fV‰6`JÑQü(´Ól_ýóOŸ}½Ým /WT5’[U÷€nhèÌ‚ŠHÝÝIV½øÜtšæNa}-œ!œ!lŽÇ ŠOð‡V˜h´3Zõ"(�¬oE肚++D—ƒmy|d Êó%ÛÄ;¤3nCC"8l%m%mkl@ä­È[‡h*€fÎIzJz:}tú˜7¥¾ô}‚µ‚µ'XËKL�X¯DpîR˜zÎð '¤bª5ö™Ž¹ü+7¾@p-ÜÈe„%-º.º6Iæ-Œ°ðýŒ¢�¢ ‰¦é¦i ª›Â„g9&CI®‘\£µÚ*m»wûOÏ=fyÌòßw÷ýuïxÿ¡.ÓŠ¸NØ`ÒÆü ׳ïÞc¿»B�íâ=-PƒÐz}¯w¢]9¢¬LýR‡ÊîæÃñàexUyX>LB/¢¤‰Ùx°‹4 j»¿-ɳ�Îæ‘°®º¶Æ6ˆRäp 0'‹e ÿ¡Ý^ÂHóqÏMcg_´Ž¨Aíï6㑸d?’û!§X³ÈîF°>!9èI)�­µ€€]—òj½9hWwׄ4�jPûšú ÒËí×Ç݇ˆ d%íÓè‹ÕÍcr…ŽoRœI­%ÉYœºHáà5¨í¶Fð˜Võ-©$ÉûÙ×pëHc�x–MìkKã/V”ôž¹GAOÖ 5¨ýíh­¶T†DfáÅŠÉ7ŸŽÆ–*¿t¥Õ¿ÁM¦Jxy±MèœN"]gêÿºù‹{Ô]¦WØd".Ñ`Fó¾”쬣€º+ ¼5š€®ýˆÇ7ª÷Ý,‡Ù»�vEvh0üÅvd‰$±¨Êq·ê: ZLL¸ _’`‘`¡Š'P¤ºðÖ’Žê3å×’’¹I¸IŠûý' ¨Åô€A þ’³~ab-$ÒÕÊ|�u<--Þ•r?,7ŸÔZ�r^9H8òƒÉ[²srÜàñr<@ÁFÁfì‚o(Œ’oƒo£Ã¤ÃäXÌ™å»$å3ùc†‰ûϧ²¦�Ü&£�Í�Øî#H¦/cÜÓü…�3€KÎ^Ì^ÌSí Õ0GŒøÏh5o5GK+p,pÔ½ŽªÿÃ@ë@+&á²ãœãœ/· 1ߎi0ºÿˆÉÔ=èsSçðÕÆ -´ƒÎ³¶ä;íAQßOÚ)YLïkžm˜†«ërÎÓùªesü¼IhÏ)í›JüÅ”÷¿q†ÿè·÷ ÃQZ~ ×ûM><›Ï^ßi¶¯¿ÏCº�U@JªAò­”“@FéŒ ß©¹ ¹ %õâúâA\sûªo|Йљ;Xƒü‚ü”Žܘիğ:ô¡œ™€^ÍBA$éxëiÐI�‘´ùwuûdª@=Os@¦q²kH®z‹£e¥ ]AyAùU:1-1-«µo(¤–Ú™Ú¹±£±× ‘ù}ÌVÌVX®óD?Ö-ää¯ ßOyy.²¦g)XtéÀeûºÃ/öž)±Û´›Ä˜Ä¤3]dl�pÇüq†q†á…}…}º¨3QåSåóÎÕ·¨–ª–’o¥Ä¾Ý�0 iylml œ§6Zä<éSH´~z+u `Ó¼ò!}â�ö ¨³�+F|ÇÆã�‡7ÛhP�í™ä^"¨ý|«Öfk"°XO¥Å^u0ë2NÇGW,@S¬8�tƒÉ‚hX5–SVµ_×fÄ=ÓmUg42›É¦0ÚNÛ²ˆÞŸxnA/í†y"|<ö°˜?ƒÚ?Óìg¢œˆØ ß0§RåÞŸ‚£U_T›O&°¬'/®û¼aw–àƒÿjPÛmmU«iáJIËòˆ¬Y8, �¦ªð2 WÒ:Å(Œöè–-úô ®*¨ý{AÕÇüþaÉ(ƒØÜq¯”^ã8å£t5ÚtÄC˜�\a‘¶yï½ï@ j¿²�GÏ1´ðYµ’Œ\èV »n'¦ö$…`ðÍA)êYkoÝÅç¦zPƒÚïШ'¤©ëä=‰phz�dóKÚ´4}ôX<6˜R�ÑT¥ºœ�g_ %¨„Ôþ©l�1 "DBý=³XÆ�ü±à qXt†&ý½ä“–¼éVmUú&khÝýPƒÐxñ#ׇ´ýG^¦<—ÐtÖ³þÔÉ}‡/†ù¹Œù¨LßÄw,˜’‹/Õ‡Ôþ©¦Öœïï5Ë+ë\uÀ( —ªÖ/içË–§6žµx­ß¡Ë—Ìùñjœ>Ô~]5ªºJ(ÔÉ’åP7w>ÙÄÂê€y5:¬Ÿr2vRK¡€ÚòÞ=oôn#¨ý{ÚÐàm;~åÕwO>OMX_gã‰ì¡é48è8^¹÷ª˜–Æ{2ÑçY8¿c£bS4¤Šxüöî;žêþoà8Y™BFfèØ£ÈÊŠˆl²²UfI֢ȩd¯D—Ê:2“ÈæØ»ŒdF wßû\ß+NCÜ¿ßÝUÇó¿×çqþøx<¼ßŸs¾8ž¿Ã2ó´i|©ìÐŒ~7UÕC¤õnóY7Lõà3Ë,†�îF/bca·Ý΂QñV#z C‘£v #¥:�u_6ßÕï¹îÿÜѾåkõõcP��ˆ.mÀ[?C@|@&5)ûµ,@áUùQ†£I  Äk“ؓعa­FYB 7ÊÎ[  E{”v¿˜0Ý@¼¾¶p£öF-k¾\;žg„3žö8íq|“)åûWWfrÚ j+ �ŒòÓPp®ä’ž÷FijhÒÎਹ¡�übïx0ž° ´ä¬85þah×ÏøØö±m愞¼žüÕ—èô½×ÔÖÔÎFž³1°1�bÙêtÚv}5€†µ«„¯îýýS÷Þ9'®í;Ø&¡X¶ZH¹Ó½?úÿ íçêdu Š\wà¡(ã·u?q›«´%H/y¡ßÔþÊZ>µÑÖï?  îý·ßûW@þþ¾J;Lu$øõšãfH‡ÛkY��îiÑß˯ô»ü;7Åg3æý½‚iºˆ-Òø$ilæùË ©‹…§wQ¹ª1¦ç9è4XUŽi^+°ÒªEà¬�S?ë %j¶Ðši7ÕQ¾|Ñ¢…ÂöÊÓÝ3…JÝÚ0 Óþ íÕ¨5 R}ȃ”áÂ$o꼩‹CÅcãCRõ&'žæ¾Þl¦+ÖJoð$Ĵ߻ܚvŠ�>c$3OÙjp2õA½B�Ê�cĪ’ê�îäF ’"îeš¦ýyM—J&?5»,¾ád-NHhá¾÷üÕ^d¯³ä¸ÚfÉ=å먩lÅ4LûÕÚ uŠûK˜ëm£–e¶õÇ¡¡ è·žsê‰-ì f¥P‰!‘uäÎ^?«(ôÝ„º²üÞ'c°§á¹&n}}I);í&.} ©ïogý oåÅ­Â"@ênÁ Dc›[6·´ª–cœãÍ_fÜùŠ€VÐòSóS{Ð|¤àV @dñ'3½€îóº” »ˆL�kXäJäʯ­p8Ž#(qèÕeÑcÁü’Ô ’¯’/¼pÏùžó~½Pñ†¿´¿t;U;Õj»{ó÷…‹‡‹ï»ýúÇú¡ë'ìIWPø3}¸ š(Ç7õ5ø'¯�Ý^ú"^ »&U0Ƴ®½® }:dxè9åËŸa¨g¨×êΖÁ–ÑZˆÖúÁúƒµrv”B”‚0çV›®Ûé.h:Öt }7‘ ¯8Ò“ÀÄ­²î§Dwh7þN»‰˜¬–s€^IU”ÜÓµ»É»™�O‘ð¬±û»SE¸õù;áEØŸÝLa¸ò\VW­çmø7vBßþNܧ%až»iXóa|VáÉNgÛýóKOšmg¡iš�î°ùV¢oAú4ø ^–Ï?õÃa4ÄÉ‹»nŸÿÚ³¨gQÓ¥ � �ó}€¨/ôàÍîkåR'úcsQžTt"A\÷M¥I)N,�Î)ë±Ð±¢¼!jñâ<^´0$5$mŸ4Œ7Œßå`‡€Ú‘áŠáŠÆó7Ï~_a¡;õ3ÓóïÆi»Ò  8�ÂÓ¸ÔÖ€r· ®“Z­j²ïõïœi# #÷Æ9Ç97F6“9ô3QQW¯¯ÕŽ�¶ÍPÆP†{_xÙ4Ù4Í�­nn'M¸œ\8_8ÿÏÙþûÙ,ÍÈqÞ²!Ò±‚,Ð=|]»Ó® ýlÿJÏíúÓÚ˜cÐT Á~W¯7ü]ƒH�M›õ£q*÷39g�Ù>»f̰´xÉlÏâ`ڟ׌´!°jÛŒóË~�MñmžnbSϹ4%´³ ßÞyG”{Q”ž‹KÄÞ×Ó~­æÆ½y—H¡ôÅ^aüø&“Ñ;ù¡¤]q<�ÊOj ¦Ëè„w_Œi¿V«6ؼØÒg½ç}ýºvëivþb AòK¾,!ìÍ#†¸y‚Š'{ˆ"1í÷i™�sVï¯:`ozxó¿Õ‚ÅÝÜßt6TžÝ«X0ãBCš÷d¦“¡#¦ýy­¨&bM“1>XµçiíÄí#�Á÷�pæêüøq½F²ITq5•{o]ºº Ó0íWkaÁ‘â“)e[jWN“ßË‘ÆÇÝìÉ,x@FL�2¢[Cé|¾ÓQÍ ,Lûùv�±mH’³7R²Î¨u‘âÚ]œ¹ÅOè»�‹ôÎ3Ä𞹊›‹#US³ÓnÇ kµa»¾×BèŽmeöä +v¤?°P²PB#Ã2ZÐmù(¬TúkóÅóŇå&ð&ð®›Ö¦]Êj"c(É,6 šð>-ŠÒuV_�@°g¸gxì1“±€þ]�Ž‹#è/‚ª(¶¡O,'c mãmã7#¹m¹mÓ¥ãpPTc!~!>r9ÂÎ Íú>ÎhÎèJ(sÂ�i’£Í‹¡±¦x³7£äÕEê&„ºNøbŒœÿÊÉ€¤9££öŒºÇpæ{q?c½q½qÍÆ›Ñ›QÆÝÇ@oo›FZŸV«V«É­¸V¶[UŒ«´(¶(¢ï-SNg�O×\* ¾�8¾2øÝݸ·Œ€%KÞLšw×˲‰ñœëÄ•->ï_ã¿«_uæb �ôÇÏO"wƒôÂ…æ)ìÞΑ2ÃþÆÞ’ÿÛ{Ë2‘$Hòþó,°tã~ºkÄ;�mÏÏ/�”Ýnçt:ìЭ   š&Psᕎ+–+ã3&äÄê–_«©É«–‹”‹4�°¨P züjÝÓ÷pSJ(§–p»A{WýBüB¬ÏÚœ‚ÍMƒ*´f‚¸ÛR¢è*Ùðî¾»ÊPR¿PIQIYjPòõ¦Ð_¢¿¤,ª,*�Vºð}JÊJÊuËy?¦ÄWZ¡ñ ° EÑ~Ã[rEñv 0„©$måk§XûÝ$s� ¿=fÿˆ9ü3êê&ˆè=é=ÍaèÞ�òôòô2¦P&ÏdÏdËn势Î ÀþIÈd ØXX²¶Ûy?#AÇ‚ÜJZä5S†Š òÑõÑec¬§IO÷'ºœ,ðµÔ’Ô’¾÷(÷(m_@Œó\àÔ2À�Å;È! àù‰e_.覀ъÑÊ~²áª;Oü@Øj. à´¸Y”y/ÙüyaÀ»Ï KœEœÅTV­£ G7ú;ôwVØVØ&_¦ø|�%�å£ÉT¥»a3ÄœÀAƒn¯´��r�,­à¡´ûS;èY•‰b¨O’-åMDOD̉kîVü©4©4F°.�.$º¸hÏ<ϼsqd8ÁŽÁŽÏ¯nå¼]Z'ÀêÈòäò$ú=F­�I'ü˜zweúÍyJøN÷ÏÞ`¾5œ.¢¸3Ð¥|Ìé ²#Iûœéð#•!ù>g+üމ´¦´¢½µ:Æ2Q¯(¿q�Ý~�Ñ÷÷g¹¸?2ñó0³Kǵyˆ/óî´wF/¥\lBxË^âë…„nœ.3©ÙbÚïÓV ÄÜXÓL�¶é­Ì·%oÄÎH1ÔoºãÞ°p¥<Ë2”-®yóf�0'W¦aÚÿgÓÒ¿dR2Óš?†¥Ö7š$R¤ð¡‡Š"”Ž=hÂqëN&ï_¶ã$¼ïs1 Óþ[M _DÖ(Wâ¡ÆBKÊž¢¾=kÒ#>ÇüRœváåw°_­$ÈtÇ4Lû·¶Á=¼Y§Èçé{[–PVŠÄB-í¬¢“ žö6ÓéñÈVIY'ެ‘]¤þ¿n]HóZ“¡f~›ã’x7¥`ªÔúÜïI}0ëZ„BÔ,™hk ëNsÛeàÏf—íøEœÿBÇž¿•6 ÈqZ $�ÜÛcv­ýpm³ü-¶“××^m¾Ú´ÏìêzgH¸N`~pÎrî¢ÈÄžªÛ‡Q`X½ë¬ê¬¿~\§ž=´Dq†ß)œ×ˆr?ã%É“Aæ@mmp ×1×QXf@¡;دR8hz9&í‹ÿaïΣ¡nûŽ�¥‰ÉeIY³�d‰4 eɾ a,‘}'[‘’%{©ÈY¢PÈNÈNd_² Któë{¦ï£Ò9=ç¹»ŸßÌë¿÷q\ãœë3×÷š$�ö]ùÇ×j]ß¹¾ƒš9fgsðÿ '' ¢3Dgr‰Ð5‘ZZù)Ѭ¶¬¶\ßìXÿV"Í€.hªgª'¸ž¦¿îÛ8žÛ–ÞHMÅqQ/Qò£õ$«oj ü<Ñ×u¸ç;û&ôïž’шêH{�ß®ƒCèÜûÔý|úÝ?ív|ÅÌNéÌð„ RÞŒ|¹ÐLA>Å©V©}ÕÖs‘¯ÐŸ¹A¿'A–& É:ͯkŒÕ®ß6ó`QµÛ·ïäÚô œœ�Àè�Þ;ž_Þ;~L[ÉŸä}�ŽGp³÷Ad‘ãE l‡£ï�¾¿ZÊã­Š YnóòôØNcCcƒß*âDĉÛ>€5áÛœ V=µÛ² ˜çõ JMúqÐÇ„ºÅºE¿ѱ¯?ò�Šò‡9@ÍW¯ Ààê~¼–³$€Ú“µ'�ÙŒaŒaa”Q rDvGvG®s®óó‰êÊ+K.Kf¢”’ü9ª�Y®|€‚Š;ñá¾û†(òÓþ!ÜWNE6ksÓožèÈ)À ±h¥håMû^}oîŒ__„/öÜs¹ç’,�N¶#8˜â4t؈̈Ì�`3Síð�G'ÝL¸WdVdÐg �éà»jÝH:¼\­Y¾£;Í<Ðß�õ>Ú(̇��'êÇ�ó�ÂþÄßs%Õ1Úd¨gO–XñªåµÍ3�¯ß-ûþÙÍÞUˆLCF¼¡ºïF…VÖÈNkûê—_í ³¢ã¬ ºþ·›á€¤øYAÏ ÒvÒvR‚Ïé§ÅïZ* ØŽ=œ=œŠ† Ãvkä¬I�>ðŽàÆ6ŽJ`%—Ql"Äþ~qMqÚqÚÙ¾›$ÏžÕSq°V5€äz{FQ*´ )uö×üèýè½>‚ú‚ú8©•�º³&[&[ÜõÝõqÇ=‚Œ‹‚‹Â4΀ìç°Æ;¼éªXË(¶¥„wLEQÚ¯,I àBJ ¾a�'æH0·2F1F]¢¢9€�üŠPÂPBiz[¨-´æ<:)Iøøc^�¹Z¹Z¹=�›MMoÕ³(’°_·_דÈ×{ÜZJÜÒ`È .AÎŽK;ÍÐÐ×ö?õ\¼9¡ŸðÓ*<[µÁTÇ¿Ä[‚ôØ •®øpÜðnÅQæ}#f§C¬*tÓ0íwÛn–‚&sCí',5©ÓD¥žÇ¦ªÇ¨ýo ­õãÓM½«?µê%©§Û�i˜öO6ÕçüTð¢ƒGßN\Ü]J’DÓžÂÓ©A´?‹sS÷~ŽiVÛxù0,‘zœ®£žÆzIä\1—vŸ² cêÞþÒ3çë>9JO'„ž³À´?«½kpTZQ¾©a“O3™œ~³BAí2zÞaO#½ú‹³°•XlÙ…´óÂX˜†i¿ÛÂÞyX—¥jð’�J4Ö~vÑr�ˆ¼�J”޳¬�$)'ÃÜ3fi@R/Ó0íOk¯IÜÌÖ1S”â”®RÅnoy÷QýIÏã}¯©Ét­È•N–3´‘éM¡´Ýv§~ñ�i¢ÑÇ#ŸlÉiâÞ/ì4‹ñ‚@®Fmõ±Z®ݧæÍ\3A=Êz> ›ºÞ‹Þ‹³|ƒ0AÕÂúW–Û]-½ZZÞ,ž)ži¼Œ/¤(ØV„çjÚn®ò¬µ¢ˆ‘°ù€v'%I&IÊÚZu>T jõ8Æ €˜íbCÁ›oŠ…©O¯êúêú¦€–/¯ªJ’)P¡¤Úkµ×vº_`³ü„¾—¾WNêÑŸû€ŒH,‰À,Q ±�RÊQB-{:x¯½ØƒõÍ#qezú`¹o´ êÚ°4Tû1òW(ã)ãñr3›0›h)£«ù´œ»œ[’Ð33Ó¤µ™ r«Ïb& | |ô9ã¸ùÄCþ‹H“Ý2ñú;ÍÑçæ ³¯+¹ÒegvZï¼`ú +ì½\³¯ãY¢I3§XT$þwæŒÇ¿?g$Ýà)'÷jbOhÕñÀÛim{ùÕ©Ç·r ¾k„®¿b3¦Ð; ^:Ð}ëøüøüF;,¯®z›©èà3ÛÁ8aœ8„�1È궯«ñÎQ€Ï5€3Aâ×2Ç÷ä °<Âæéú+.).Í�MØËpÎzEÔ:Tä(�ÒñºRbÁñV ÀõË b� � p€ia•��88¤æ×µþXrcrc��iéÏ)cßhä�Œ?B¹õªzQ(w’.¿a�ï=·÷œèYþ¾Ú‚½ñ \"ÕåþŸs©Bò³µµ–‘NQNÑ´] 2 ÜÖ Ö _ߘŽîìƒ@U� ý_;Oëúy–. ÌÅ-5…ÉÆú¸4‘�Yí­obæ'Z/¶l§–§—§“Óšlr¿b’u’u¹šµ‚µbŠî˜>AA;Ô¤I9V9¯s³‡U[-ÉØssÑ÷èÇó…3˜�¤–“"g,BwÚ££Ÿu‹ƒ';,?\­HP�]æQ‡Ut@=ƒë0H…‚,¢œqЇ{û�oë=˜õ·PÍœ °ž6™ %.qje2ÞiO…þ·|ï{R1í§ePƘ2.OÃÓzE†V?0Œtµ~2‹lžÔÒѤðj—Ì•q.´gн¦¾^lCSàÌ®T²Ë7ºÓªûôøKÒôd-çøÞÄóÝ—g­‡›0í§½­·ñ%p;ãÅEg'Ä•|-T¯<¥¾Ë�¢²0/vàžXî•f¡ÉRcLô?­ÉD_¸•Õ ·à«žI"JAUĨÚ@‡V,!kþ*Ä®‚K83 1 Ó~ÔT†[²p4Ö¯:’¼Ð7¼íÅ®=ø&¾ò¨°Þ©ÛU>,/Ø4JwϬ;5cÚ¿³Äû+¹&p‰Ä¯`õP”Ì­RŠkÕ×Dß}޾F;Ðåt÷ì9¯ˆ’¶O� 1 Ó~·‘Ž#(è˜Oå.ˆ`¾Ó#3J º�p"”/Bßò=éc^ûH±ûs%{0íÏjO¸b�ÔãU'y8É%/¿�RŒÌI› 3i(öÖóÍlç¤eZLû³˜¦@pa—”žiÞ¢’Oý]BX|Ã=—Àõ¿9©q^ĸ_éÄ´ÿN+‚R�ºÌEâߦ5�ZRº]Y'é÷oe¶/_cñ�Ù%ƒ¯¿a97|†i‚Ïââö¶~¦ü”½À~;n”qw‰4†ý³†ÀÙÎ×>Ý|Öö»geâ)êôvú¬Á I'ÞÊKØë!º±ÊÍN<yÔ9®€zz׆ֆJ{j†�eçƒ/LÌ o·Ö²Öò–J‡V‡Ö�®)x`²вvô{tgŠÖPÂÚ’ÇAª]ÈfdóxÀ"”îœ.¨p]¶TúüsÊþ@zGÇÎ"t:ÔX»°váŽëe,Ðm `VÈê�Õ³žû?¦¥Åå ý9º~i¬?Àª8Šƒ¤?¹Ó Šî8û­–SªÎ©)ß|Ïóñ éîBïB/»ÙjhDðä¯ðöV¾Ÿw&ï ä:î˜87p^¼×p£Z¢Zjë߬ht+Àñ†é†iôÏÖ{’³‘ÖVFÌGš27ä¡;}Ö€þ\¼¼çcá[�ÍŽù�FÖû4$ùç°[`üçWz“¥æj_D|ç<à‰ïŸLÙ»gˆ8�úÙ_.É*ûk2wZÛ~ÀY×K[½‹¿Ž.êèfú# 2û”V�M¨¾Š¾J^3’yJ0“’س�g¯g¯PTcXcØË @QK!À~ ðJäô¤X# ~<ËeÆüá"(ùCù½ò{Ö'øqý d@z‡Sœ@×^Õ Ðð×wDz9-êëêët:ø¾ø¾ïa†S ×���OƒŸ›ãî;ðc,,{ïeîû¹^m5@K2J\ ®ÖÕó(C—÷=�{ND.Uõ�÷27´f€³P>^>©p «Ó‹þA‚6½èzÑÕ"Ýš´­Ž­N@½K�[º[ºÒÀfn%[]i0"Ü7Ü7þ¾»ïësLJٚ±��®ûëó«mk;}v…¾¶ÿ÷´`¦­5À£ë2÷… T}:”vÞ¯†ƒ—ÅÒ(ó߆¥…œ¾žSÁ`Ü•µš€i~[’Êf„Τ‘2­¹ÕÅ” “§rÀˆ$�ø¨õ&‡Žz×ÛØ%«¡Ó0íw›q¿P샤¹!LÉûŸ„3½&eõ¥€¥h.ôB<$ýê¼»ìJž˜@ÓÈ0 Óþ MMjöÆcðx—ç;i¸Ý1j}‘’yèu—1pÑ‘EŸùŽßuQaÖ~l•ŽkÈA¸(µÓ¬¸þ®ºp«†ZÔ½q›ÁC7 éµµQ�ªÍàpÁMIl¡ƒŽL#š¶Ó(Ó(£zE9C9SèxbÓ hŠˆ�dÉ¥zܫמ ˆOf°�ÞNÞ½3*aƒäW³ˆÊ­ã^TyOwš¡ #æûN¶¶xöþ¬”` ` ýò/êoq…_´ÑµÑM^aæú±ÎÎgp$öÏ™S#¹Z�æ(ë§g) KQš5>¾´j¢¿`Wù � öÉG™€ðœrœr ©ê”x¿B_?ŠTD*ªÁÑEuµW¶WêTõÿÕÙùÚh³~ü­ÎÄ ÝüÝüÑç —;kå�äš®X¬.36d;ÍAÑï'm„¿¦ 0O¹”@ çªèëbkYuw^‡4´EBË[�?Û‚"÷;g®y¾?½ðòB˜˜ì.{Bû jü�Ööõ/k»Ùw+‹F²Çè^Ùì€<È"Í…äåd6m6]Ýv±"äøÍÛ.ûûŒ·£Î ÎÐÊ,”/”Wá$fˆÚX.”[«3V�qýŒ(H&Ø%Ð5öÞ™Þ™¢¤e_Û >P˜Åªh>»9 ES®È6�­¯ À#Ä#ž 8¦vLÍ=?ÅKŒ$F:Ï:ÏRÝ&âû±3#gF\¬ô~NÁýöÒ%ÀKkøIY=m”fÍx§è¡RfÒß¼±~›ï Éóžôž§ïAp‡&þ{÷OeßpüY%¢de™Ye�e%Ê̈è�½g™áX[ed%¢aäΈÛv'YáØ"Y!�§ë9÷uÇièŸç~—÷Ÿ?ÎËß×Ëë÷ý�ëRñ=")#)Ý×÷¾Üû’ ›ÍP¿}¿}›¬ ­°�°Í ±�ym¦W @±wQtQ€óÔD‹™'ã=rO–ÇäYÃ÷×Ì©s“oµÅží ò0{ßQß@¶¡«ñ¼Z´Ê7ÛÉ öý­ì,[½©Õz’8-᪫EË…Œ˜¸jwqÔq$¤ø0Y‘õjÆÁ²‹Aíÿצª$24§tnÕQNà5·ßÉ"&\8ÞiµKº¨Ðì‹Ï"zײjÿNs™Šw'we3eN�Ø›S8!�Sf¨5wS²—ÔæÏÝ*ßpº K ÞÑ 5¨ýhmU¯æ­uAý»AE‹Xø=šÒ{iöq§¬sïÚ£åei֣ϸÚR µ_§‘–޳Ïíï=ß�³ObZêJjû…êütåÍgéÈ{¶ÕzÁâîÌ’B jÿÏ6’0ÍHZ/hûd× ~«fÏöèËN§¢SIQ£òÔoìÄ�:}ÍÏA j?C£W ®T #¢iwWÌ-hÒÓY>Çâû�)MˆÞ¤4Íó¨ÊÁu‘(Ò¨AíßjH—|ÆðG‘rÚ3Ì™¬¹/�W%a ™ºôù7el2l›J�ák8±­]PƒÐ¶'Ç­÷œ äàyG¥‘Ts2àOYÃèÏÁ§'ýv¸Ý�PJ,2†Ôþ­¦U—-ÝÕnq§øÙª+^QŒ|™qÁSÁÛJ#ÔÞX½4n6¼ÉµèxÃbÔþMܬÔq§È3–,×Êé37áV¶¬–e¸°ºT¯®¿ÒS½Km“ŸˆÛêiµ_§õ ‚œ«¯¾n\ì�·»8ÂÆ×FóÌ„Ãm¤$ŽÄQBOo†R¼3‹ègl{ÙÔL÷Æö!Ùf`&O›”lZ°ïF/F¦—èé35Qµ-6fðou7Œƒá&n&±�P›NæF—FA´Ú$g·µ�µÍþ�« ¡id°®ðŽÏ88d¹÷øöødÜX;„ÅÎ Ê…è‡ú€ì{¡>�·Žƒ¸<¢<¢½šrcž:ׂÆHJ�ƒ¼Ž³¿ÂÀkȦ=¦­8ÅpŠ¡Ö`ïcï3 žáðǹ»�jä1~QQAxßÊä·eÖÏåŸ/tÐbôKº…”�c,E½~}u,Oó}ü'«áqš€ëýùýùÊéÒ 'Pe|ú4ú´“šúUúUŒ Ø.ÕnÓn[©éë B!'ƒ7:w3¾j@^KèÙгØ÷þ™T×.ˆŸñl—8Q¾ü�r«{ìÿÚÏÙyÀ!(r݆‡¢œï¢Ûñ8Î²Ö �ôù~ckïÕdØÃ�Ï?ñcîý¾òü"¾(zßÜŠ8ÿ’ð{Iªš­fññ£Í­6‹Ò­¥Ã–°‘ž¨ /°ôÖn¤o¤�ó’Ñ„ËTtó•ËiŸÛ ß 7ëΣ̣tG’&Íiô&€ìæÅFçiÀSÏ>FWaº>(¥³'ª'ê­åúí\)e:P™?-(öU)Æz|`5y¹àÃåõƒ †CV�"eAÊ´À«ü®(D®}]¶m¶-ß²®ok}Üûß×¹»hKcD�³“ô¼Áº0VYdvŽpè“ŧ-±=ï´ÒÜ6Ü6¹û^æ¬tîaÿ ¸#·‡mc—Àf¨¡�ð%wøHæÂF¤›Ý°¨D/+/+ƒóTIú÷óO•áàñU[tÈs§q÷­îý±gûGúÛð+·N�ïï•` ÞÛEòÔô¯ä^‹9¾Ç{J޼ÆÝíx’Ž›–g¿Ý`õc¨ý~­®QW�·zAMßG„¤ÅTsôðT‡Q˜¦ÒeÓVŠ‹ÞL×u*v3¶C j?C{6bŽ ­9输ÎyâP朱ƒMe¡ÑA©ÆsÇ=0G·Ð”hd=ñ †Ú¯Ý®D¿¶K‰Õ5<:GÙftE53»šV¡Hù꣊eE•!í‰ñ(Šä¦[¦Pûýšö�8å)OTëˆðBÂî[â«(ò$çf¹ïdp1WöïóÚª6¨AíGkS{2ÜšŽÔO-afyæ+CC•"_zov˜~ì1¸BR"Wð•<{@ØF—¢O»”׃Úu—~½w«}@ Fcµ™}—š¶=qyv‚ìoߺêð³–±–q¾póÐ�óÆz¸÷v}®=¶=öD.\®Q4èñºFp‘úÜwõtYÁ.cˆ'¤º�Ú<¤Å¤Å^Žrvy(0ƒˆä@»ÎcüÑäÄTjr§ ÐÐÚÐzo@7F7Öºt‹ä.SÇYÇÙ_Ò_¢=ç5öuç’Î%-DŸ«þ¶«^¬A“.€¼ÇѪfû¬ÿ&Yc×Þí‘§÷IÕeµ¼%I€‚ýéîÓÝû‚4r3óÎs~‚~‚þ†<ÏyžW$a •žFO£W{ùE}E}çl1¶YÕ:ÀJx0{×uSïÄpÏM&.åu?Ešƒ„[íºæ2üÌWtJ«cd­^O'd4:½ƒg•-Àm7Ò©/ÀnÒz»>:ƒÎ»AFûdÏ›ˆ/ìºoÞu…ýýn¢{S²Ñ$špÒyš;ãu[í&°—é½]¿[{iB4ÙJÄàèùНk ‰¶XNVNÊá˜Bå]Â�2�i"»¨�µß¯ž!EÔ\¼mµègØœÒîá$6ÙÀ©.q&�øÍµ’.¢´œœBÖ>6Pû±šú:‰BÙ_TGR¦˜H™ gä‡ÒpM“y•Ý!ÖÌ:ªÑ}y´j?V«9‹vé é3ßµÔ¸~¦M‹�¯ä”¹«O%K[˰~¾À Õý/ÜEQPûuZNç,|IÀ×íîuÈè�"þpC³~˜<›g‰Àm¹ŠSÒ‡Tsì l¡öûµâZäª:}J°J�ÿκ±8ÁÎà$C¼Ùz?>|Ïá¼·;TðÕ•z£]}q¡µ­…GŠßI;¨˜gv¦jLNžŠý/W‹³ãQ15Jd÷)E«;aõ1Ô¾¿9Ó·IrôFJÖ¶½¥ð¿Ž7ûv {Ïä7öì�ç¡ÝrW,îÜ7×5ÝjÏúñ˜æéf3V†^Ø2/oôü³-~z d Û¶‡¥5n o'¹4)Ëxãsü¥ü¥ZiÔ–Ô–þu€h@Ž  �ëô£ª~€é�nŒÀGU A¦®Ø®Ø·9Dûrdvoñû1�êJa„+Šh?[dOc?ÆÎÍ ¨‰«‰K×NtJJ¢CÐ!>‚R_'qMâZeÅv­oë'»oHŠÆ 6� ñz�A±ê pî±ÒÄ'rþ5Œÿý©&€3Á™.5EÈ'ó*Ë�:ö:ö#Óç|Ïùæ¬cÓsêÈîÈ&°˜²Õ´Õä\Þ(Åh³ñ""ƒ½gÊÐÊ�(©u-Ú—:únð«»pÏ„D¤KF¥Í¹i‹åZÄ{ÌvâË”XÔàö«L¹ž•^yç±&t=H'âð…å+îûR&8_Ø3ñ}ù;UN.pËØ,M¾�‘=u Ck`«ÙûøÑC›=i?Ñ�í=ÞFk‹ ´¾ŒˆòAøÇ©¦IT>\`‡�Ïçfg”ôè-ÓÀ­åŒœ“{’ QCE%�Áb¼Z š]_c]cír޼®4/X ªô˜ØRôïŨŠe>$ø¤€°mrÛä*““—°ÿT#¨/´¢"½8½Ø$˜Sãëæ-æ-*®ã¯}›w�H>! ¬ƒié†y3 £Oð^˜n÷¤þ ú&Öž@�_“_Î4’kT‰Lë{´/µ/ /¼%|K¸�MbŒF‘FQ>¼º�È…È¥…#wÙÍü¼Í¸À~œ'vÌ<ýešàEzaZ­"]}†M†Yc«½%öl3Ó¢šsY²üç”à�Ó%m硵Ÿ¡­ � Å¿‘Л@–¥©ó^TÜÅìóPÙpD µ·f§ˆLpäùÝ"™ŸCíÇooéXh ’S·UfÉÖò2ÊG /?dì` ÝI E<å�{žXxñ¨ý;mVnv¶]`¤þrË ‹Þž4³†’xvötû‚ ]9ã�iCüË4þbYd&PƒÚ×Ú1~'Üýµ)õ_p5k¢æËx»é=h¿JS›z†Þ”ÚÓ0%�ëÙýÌKRš&O±Ï‚‡4¬BóðÝõÉFÙKñ[�;Â?ž;ø7 ­B©`cÅ݈í÷>äµ€F”òò§|µòŽ Âtè1Ö>\™�««¶£„(å”@.fŸLk8Ñêƒ�—…Æ­°÷ó¨-¨-оì?²ÿHލF"èR~~þìÕÙ«Ì ‰¯¿n:x:ø­ỂosQŸ½<>�ŽÄhiÛI¦_‚Q54¸ÞÇÒ·muƒ"Å‹ãådžfegp+3 «út³t³ÞË…þ…þuÛ°©æÏˆÏˆ �R¯"ç‘ó¨þ�Á›Qʘ‚=Ó=ÓÁyJ¤ÄÌÓãzG“ZëT:¹ÛO�Xö:ScÏ6�Eê¶ŠC…/>8Ô&ÈÄ dý{~å6´h~Ä$õž�¨EØÝûʵæ÷ÊmS»h‰Õ³¤;í†}ç—nE@íçl¡l¬g“ZI˜QgDh²Î�]Sîy3œozÂ+µ–ÏyX¸Þ2Öq{$™êÔ~¿&UÞ‰80‚Š4Y}À#ŦoüD�.@F”nâÊ"G­l®¢Ç»s¨A hÍ�ݹ� ´Žï biÄQÁ~2õ¬aô˪6&™F ÚE©#8‹Û µÿE“cQß>Ÿ²Ò¨ßM;]MÈä?«—Õƒo.º&#ÛͽÀœ 6CZFJ�„Ú¯ÝúQ;n“Ïw‘Á㉵I)Ñ9/3:¬“W³˜nˆ³—²_?EÙ|�òð•|¨AígmÓ/nxJ¹Ù½´W:rtoyåcÑX]_çQ’›±ªmïÖb'óz½éÙñ¡µÿE£Kñ)®¾›ha¯årƒ«[À ½7ñ��k™SôŒšº™­a:üû.ö®wÖ¿ºBn�3Q:[ا!Ö›s«]ïUl`l3¹Wnç±Q‡läTzq4\ÔʉÈCäEÚ¿HW(væ� )øœQ”QÔ³äZãZc9"€$Oùc@s>`ºíÙMÜ Ò‘ƒÑ”cû 43¾žµžõ¡žÄ¹ZÚC DNÆ“’? U„Aœ8gj�Bðn÷Ýî{ß pæwæ×µÓq�Ûó‰ð‰ uÐ:»km¿ŽH�HðÙ¦w`*~¯âiÅž‚Á%(êϹçD ò8lã:›;›ß=¼ªüv‹‚ ó—É“&Oúº‰Ó“kÍ!b ¿¼¿ü©$V]V]oOtøÛáSà§@±Mú=ú=¦#ÃÕŸQág{¬YfTfT†>�q¬¥=á–æ gÿ‡–Oú(<ƒÐ<ÆÁŒ÷߯¾Þ.j8óÞu/çe¯|žëj®ó~àz§0�íªü¿…$%,o �w˜r^Ë<†öy ×¾W�jNÈyþ˜Þ’H(mO�ˆ ûz¦Ö£Ã5�ᔳ0¨]÷k? Úݱ¾cýh·³Ò_‘#2,�Ž÷0aäþÈýηVÜZÁzíåú$@Ðê1¿ûœä¾;³_½„ÀY7“¦Â`rrlulõ«U¹©I—/ Ë;í_0è!oÑ�Íò*¾Y¬©! È Ì Ìd‚ž>xúÊYó ÆÉž^|z±œ¾œþV½åž¸á�€;ï7žÆ½žM^Ñ‚ùØð~þ‰i®Xq¬R0¦÷CâSù¿‚¥?¥X8FéÁZëÀI“ŽšjjÝH± ¨ò„Ýo.m~ÂÐ{çñ"³ín?o‰õpÎ`¼Ÿ 1yæ*½õYOyô¾m£—˜áf3Ǹ�6«>VZ"¸ýŽàoû””GµÎ§[>-)`bkß|U­ñǪŠQ±Q±¡*v_PoM°ÀG©Û¿ÊG 2›c‘š�>uQôÎÛ$#tÛe,|ô›¿L”Úb×o&Kx°[Ñ ÓÅvÿŒÂFKížÁÚ¶o ý6�mÅ»V¿˜´’¹v×§cqµm}3ó@êy },.,í\ôû…_{Eθ¶zÁŽ«±ÌÜ•w7•¢¯ïA?û‡!æ*GÐúžë§.î;h´n‡ß¤õÆA¯/{ðw/ü0}?úžôs�3DvL6‹Ò|c—öåYÌ™0¿f@ýšzuÂŽo[nx:‚áÈ6\~u.JM,É/‚Щ) I• ‰EFɹ)9™y© e©EÅ™ùy zfzz £`Œ‚Q0 FÁ(£`Œ‚Q0 FÁ(£`Œ‚Q0 FÁ(£`Œ‚Q0 FÁ(£`Œ‚Q0 †ß>´3 !par2cmdline-turbo-1.5.0/tests/subdirdata-partial-filelist.txt000066400000000000000000000001701524160147200243360ustar00rootroot00000000000000subdir1/test-0.data subdir2/test-1.data subdir1/test-2.data subdir2/test-3.data subdir1/test-4.data subdir2/test-5.data par2cmdline-turbo-1.5.0/tests/subdirdata.tar.gz000066400000000000000000000040201524160147200214570ustar00rootroot00000000000000‹íÛY�ãÖPfqöÍÙœ=tVgÉ{¹ÙIœÄ‰�ü6Ôý$€¼úÿáèa&=P$OLyšÒ9@ã#n•PÔså´¿Û>Œ¡Ì.¦šõm{ÈÙËyø16]ë¶ë³*„Ø·YÞ^n¥öSÆ<ÏÆÝ.�ê;W_©âùýÓý”6±ØiXxƳwMsüþ±íç¿ùþ¡íë®ëûù=Ô±k²¼Zx�£nüþo\­oWî;«ò]ô=¸Mßž´·à¤Œ[Q”Óþnû0†2ÝOiÓÛ! Ϩf]Órö8몯Û6 1´}Ýu}?¿‡:ΑW ïqÔ~JØçÙ¸Û¥S}çê+õ6p~ÿ‡_\Ò¯Öã×Àëóøo¿>®wžËxYQNû»íÃÊt?¥MUl‡4,<£šuMsÈÙãŒUÕ61 1´}Ýu}?¿‡:¶1Ë«…÷8j?¥aÌólÜíÒ©¾sõ•ú ÀË> Àµû+ðyXÎ< Ù“V”Óþnû0†2ÝOiÓÛ! Ϩf]Órö8ë¾iû* 1´}Ýuýü]…:öm–W ïqÔ~JØçÙ¸Û¥S}çê+U¬R ܈ðL ÀUkx²Z¸=À-êXZöDå´¿Û>Œ¡L÷SÚ¼[l‡4,<£šuMsÈÙãŒ!ô¡ÏB m_?û×Öù=Ôq޼Zx�£öSÆ<ÏÆÝ.�ê;W_©÷ø´üàiúp•þ¯Õ\RöªŠrÚßmÆX¾òO?¶jÖ·í!g/çá;ÄØtM¬Û®Ïªbßey{¹•^ØOió<w»tªï\}¥^Ü?ÝOiÓÛ! Ïxvà®iŽß¿®êÐvóýCÛ×]_Ź/Ôq~Ê«…÷8êÆïÿ‹û¬Ëïxî—ôGVkœWÀ'UÀ�ÈxbŠrÚßmÆX¦û)múb;¤aáÕ¬kšCÎg¬šû,ÄÐöu×Wqî ulû,¯Þã¨ý”†1ϳq·K§úÎÕWª¸yïp�Þ€Ëù¬ÏŸXÂ_xzÞ®PƧ£(§ýÝöaŒeºŸÒ¦.¶CžQͺ¦9äìq6±mº�…Ú¾îú*Î}¡Ž]•åÕÂ{µŸÒ0æy6îvéTß¹úJ½À%ýà5ø!\»¯Ç�€•ø À­ø)¬ËÏ®ÎÏÖ#.êmX“ìºå´¿Û>Œ±L÷SÚ¼Wl‡4,<£šuMsÈÙã¬C]…�…Ú¾îú*Î}¡ŽmÈòjá=ŽÚOió<w»tªï\}¥>®Ø?€Õù'\Ú‡OÂGpÍþÀBþ °´Œ[T”Óþnû0Æ2ÝOiŠí�†…gT³®i9{œm«Øe!†¶¯»¾Šs_¨c³¼Zx�£öSÆ<ÏÆÝ.�ê;W_©7àù¯Ó¸ˆ/ÀÿòeàU|àiú*kö5àiø:Àmù\…ops¾pÌ›W*`eþXN_M@par2cmdline-turbo-1.5.0/tests/test1000077500000000000000000000022371524160147200172040ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/flatdata.tar.gz" 2>&1 || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 tar -xzf "$TESTDATA/flatdata-par1files.tar.gz" 2>&1 || { echo "ERROR: Could not extract par test files" ; exit 1; } >&2 banner="Verifying using PAR 1.0 data" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes $PARBINARY v testdata.par || { echo "ERROR: Initial PAR 1.0 verification failed" ; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test1.ps1000066400000000000000000000014461524160147200177040ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 1: Verify using PAR 1.0 data $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "flatdata.tar.gz") -Destination "." Expand-TarGz -Archive (Join-Path $TESTDATA "flatdata-par1files.tar.gz") -Destination "." Write-Banner "Verifying using PAR 1.0 data" $exitCode = Invoke-Par2 -Arguments @("v", "testdata.par") if ($exitCode -ne 0) { Exit-TestWithError "Initial PAR 1.0 verification failed" } Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 }par2cmdline-turbo-1.5.0/tests/test10000077500000000000000000000025571524160147200172710ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/smallsubdirdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 tar -xzf "$TESTDATA/smallsubdirdata-par2files.tar.gz" || { echo "ERROR: Could not extract par test files" ; exit 1; } >&2 banner="Repairing deleted subdir using PAR 2.0 data" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes cp subdir1/test-0.data ./test-0.data.orig rm -rf subdir1 $PARBINARY r testdata.par2 || { echo "ERROR: Reconstruction of two files using PAR 2.0 failed" ; exit 1; } >&2 cmp -s subdir1/test-0.data test-0.data.orig || { echo "ERROR: Repaired files do not match originals" ; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test10.ps1000066400000000000000000000021331524160147200177560ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 10: Repair deleted subdir using PAR 2.0 data $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "smallsubdirdata.tar.gz") -Destination "." Expand-TarGz -Archive (Join-Path $TESTDATA "smallsubdirdata-par2files.tar.gz") -Destination "." Write-Banner "Repairing deleted subdir using PAR 2.0 data" Copy-Item "subdir1\test-0.data" "test-0.data.orig" Remove-Item -Recurse -Force "subdir1" $exitCode = Invoke-Par2 -Arguments @("r", "testdata.par2") if ($exitCode -ne 0) { Exit-TestWithError "Reconstruction of deleted subdir using PAR 2.0 failed" } if (-not (Compare-Files "subdir1\test-0.data" "test-0.data.orig")) { Exit-TestWithError "Repaired files do not match originals" } Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 }par2cmdline-turbo-1.5.0/tests/test11000077500000000000000000000031051524160147200172600ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/100blocks.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 banner="create par2files using 100 blocks" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes $PARBINARY c -b100 testdata.par2 * || { echo "ERROR: construction of files using PAR 2.0 failed" ; exit 1; } >&2 banner="repair 5% of 100 blocks par2files removing 3 files" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes rm file file1 file3 $PARBINARY r testdata.par2 * || { echo "ERROR: construction of files using PAR 2.0 failed" ; exit 1; } >&2 banner="repair 5% of 100 blocks par2files removing 1 files" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes rm file5 $PARBINARY r testdata.par2 * || { echo "ERROR: construction of files using PAR 2.0 failed" ; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test11.ps1000066400000000000000000000015041524160147200177600ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 11: Read beyond EOF handling $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "readbeyondeof.tar.gz") -Destination "." Write-Banner "Testing read beyond EOF handling" # The archive contains test.par2, not testdata.par2 # This test should verify without error even with the edge case $exitCode = Invoke-Par2 -Arguments @("v", "test.par2") if ($exitCode -ne 0) { Exit-TestWithError "Read beyond EOF test failed" } Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 } par2cmdline-turbo-1.5.0/tests/test12000077500000000000000000000022101524160147200172550ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/readbeyondeof.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 banner="repair files where the filesize got changed" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes mv test.data test.data-correct dd if=test.data-correct bs=113579 count=1 of=test.data $PARBINARY r test.par2 || { echo "ERROR: repair files using PAR 2.0 failed" ; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test12.ps1000066400000000000000000000013631524160147200177640ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 12: par2-0.6.8 crash test $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "par2-0.6.8-crash.tar.gz") -Destination "." Write-Banner "Testing par2-0.6.8 crash case" # This test should not crash - exit code may vary $exitCode = Invoke-Par2 -Arguments @("v", "crashtest.par2") Write-Host "Crash test completed without crashing (exit code: $exitCode)" Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 }par2cmdline-turbo-1.5.0/tests/test13000077500000000000000000000026001524160147200172610ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 banner="create 5% recovery files" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes $PARBINARY c testdata.par2 *.data || { echo "ERROR: creating repair files using PAR 2.0 failed" ; exit 1; } >&2 banner="repair files where 1 byte got removed at the end of a file" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes mv test-1.data test-1.data-correct dd if=test-1.data-correct bs=177173 count=1 of=test-1.data $PARBINARY r testdata.par2 || { echo "ERROR: repair files using PAR 2.0 failed" ; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test13.ps1000066400000000000000000000026151524160147200177660ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 13: Repair file where 1 byte got removed at the end of a file $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "flatdata.tar.gz") -Destination "." Write-Banner "create 5% recovery files" $exitCode = Invoke-Par2 -Arguments @("c", "testdata.par2", "test-0.data", "test-1.data", "test-2.data", "test-3.data", "test-4.data", "test-5.data", "test-6.data", "test-7.data", "test-8.data", "test-9.data") if ($exitCode -ne 0) { Exit-TestWithError "creating repair files using PAR 2.0 failed" } Write-Banner "repair files where 1 byte got removed at the end of a file" # Save original and truncate by 1 byte Move-Item "test-1.data" "test-1.data-correct" $bytes = [System.IO.File]::ReadAllBytes("test-1.data-correct") $truncatedBytes = $bytes[0..($bytes.Length - 2)] [System.IO.File]::WriteAllBytes("test-1.data", $truncatedBytes) $exitCode = Invoke-Par2 -Arguments @("r", "testdata.par2") if ($exitCode -ne 0) { Exit-TestWithError "repair files using PAR 2.0 failed" } Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 }par2cmdline-turbo-1.5.0/tests/test14000077500000000000000000000025741524160147200172740ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 banner="create 5% recovery files" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes $PARBINARY c testdata.par2 *.data || { echo "ERROR: creating repair files using PAR 2.0 failed" ; exit 1; } >&2 banner="repair files where 1 byte got removed at the beginning of a file" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes mv test-1.data test-1.data-correct tail -c 177173 test-1.data-correct > test-1.data $PARBINARY r testdata.par2 || { echo "ERROR: repair files using PAR 2.0 failed" ; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test14.ps1000066400000000000000000000026301524160147200177640ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 14: Repair file where 1 byte got removed at the beginning of a file $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "flatdata.tar.gz") -Destination "." Write-Banner "create 5% recovery files" $exitCode = Invoke-Par2 -Arguments @("c", "testdata.par2", "test-0.data", "test-1.data", "test-2.data", "test-3.data", "test-4.data", "test-5.data", "test-6.data", "test-7.data", "test-8.data", "test-9.data") if ($exitCode -ne 0) { Exit-TestWithError "creating repair files using PAR 2.0 failed" } Write-Banner "repair files where 1 byte got removed at the beginning of a file" # Save original and remove first byte Move-Item "test-1.data" "test-1.data-correct" $bytes = [System.IO.File]::ReadAllBytes("test-1.data-correct") $truncatedBytes = $bytes[1..($bytes.Length - 1)] [System.IO.File]::WriteAllBytes("test-1.data", $truncatedBytes) $exitCode = Invoke-Par2 -Arguments @("r", "testdata.par2") if ($exitCode -ne 0) { Exit-TestWithError "repair files using PAR 2.0 failed" } Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 }par2cmdline-turbo-1.5.0/tests/test15000077500000000000000000000021561524160147200172710ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/par2-0.6.8-crash.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 banner="repair files should succeed, (issue #35)" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes cd par2-0.6.8-crash $PARBINARY r pack-ea5f7f848340980493ed39f5b7173d956c680e43.par2 || { echo "ERROR: repair files using PAR 2.0 failed" ; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test15.ps1000066400000000000000000000015111524160147200177620ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 15: Repair files should succeed (issue #35) $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "par2-0.6.8-crash.tar.gz") -Destination "." Write-Banner "repair files should succeed, (issue #35)" Set-Location "par2-0.6.8-crash" $exitCode = Invoke-Par2 -Arguments @("r", "pack-ea5f7f848340980493ed39f5b7173d956c680e43.par2") if ($exitCode -ne 0) { Exit-TestWithError "repair files using PAR 2.0 failed" } Set-Location .. Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 }par2cmdline-turbo-1.5.0/tests/test16000077500000000000000000000025661524160147200172770ustar00rootroot00000000000000#!/bin/sh ###### # This test was 'wrong', it should test if there are data files outside the # basepath ###### execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/subdirdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 banner="don't allow files outside par2 basedir, (issue #34, #36)" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes cd subdir1 $PARBINARY c -r2 -a test.par2 *.data ../subdir2/*.data > $testname.log || { echo "ERROR: creating files using PAR 2.0 failed" ; exit 1; } >&2 # check if there were ignored files grep 'Ignoring' "$testname.log" || { echo "ERROR: there were no files ignored"; exit 1; } >&2 rm "$testname.log" cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test16.ps1000066400000000000000000000023371524160147200177720ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 16: Don't allow files outside par2 basedir (issue #34, #36) $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "subdirdata.tar.gz") -Destination "." Write-Banner "don't allow files outside par2 basedir, (issue #34, #36)" Set-Location "subdir1" $result = Invoke-Par2 -Arguments @("c", "-r2", "-a", "test.par2", "test-0.data", "test-1.data", "test-2.data", "test-3.data", "test-4.data", "..\subdir2\test-5.data", "..\subdir2\test-6.data", "..\subdir2\test-7.data", "..\subdir2\test-8.data", "..\subdir2\test-9.data") -ReturnObject if ($result.ExitCode -ne 0) { Exit-TestWithError "creating files using PAR 2.0 failed" } # Check if there were ignored files $output = $result.StdOut + $result.StdErr if ($output -notmatch "Ignoring") { Exit-TestWithError "there were no files ignored" } Set-Location .. Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 } par2cmdline-turbo-1.5.0/tests/test17000077500000000000000000000021041524160147200172640ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/bug44.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 banner="remove subdir structure and repair, see #44" dashes=`echo "$banner" | sed s/./-/g` rm -rf subdir1 echo $dashes echo $banner echo $dashes $PARBINARY r recovery.par2 || { echo "ERROR: reparation of files using PAR 2.0 failed" ; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test17.ps1000066400000000000000000000014321524160147200177660ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 17: Remove subdir structure and repair (see #44) $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "bug44.tar.gz") -Destination "." Write-Banner "remove subdir structure and repair, see #44" Remove-Item -Recurse -Force "subdir1" $exitCode = Invoke-Par2 -Arguments @("r", "recovery.par2") if ($exitCode -ne 0) { Exit-TestWithError "reparation of files using PAR 2.0 failed" } Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 }par2cmdline-turbo-1.5.0/tests/test18000077500000000000000000000025631524160147200172760ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 cp "$TESTDATA/flatdata.tar.gz" ./ || { echo "ERROR: Could not copy data test files" ; exit 1; } >&2 banner="Creating PAR 2.0 recovery data" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes $PARBINARY c recovery flatdata.tar.gz || { echo "ERROR: Creating PAR 2.0 data failed" ; exit 1; } >&2 banner="Verifying using PAR 2.0 data" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes mv flatdata.tar.gz flatdata.tar.gz-orig dd if=flatdata.tar.gz-orig bs=1983 count=1 of=flatdata.tar.gz rm -f flatdata.tar.gz-orig $PARBINARY r recovery.par2 ./* || { echo "ERROR: PAR 2.0 repair failed" ; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test18.ps1000066400000000000000000000024671524160147200200000ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 18: Create PAR 2.0 recovery data and repair truncated file $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Copy-Item (Join-Path $TESTDATA "flatdata.tar.gz") ".\" Write-Banner "Creating PAR 2.0 recovery data" $exitCode = Invoke-Par2 -Arguments @("c", "recovery", "flatdata.tar.gz") if ($exitCode -ne 0) { Exit-TestWithError "Creating PAR 2.0 data failed" } Write-Banner "Verifying using PAR 2.0 data" # Truncate the file Move-Item "flatdata.tar.gz" "flatdata.tar.gz-orig" $bytes = [System.IO.File]::ReadAllBytes("flatdata.tar.gz-orig") $truncatedBytes = $bytes[0..1982] # Keep first 1983 bytes [System.IO.File]::WriteAllBytes("flatdata.tar.gz", $truncatedBytes) Remove-Item "flatdata.tar.gz-orig" $allFiles = Get-ChildItem -File | Select-Object -ExpandProperty Name $exitCode = Invoke-Par2 -Arguments (@("r", "recovery.par2") + $allFiles) if ($exitCode -ne 0) { Exit-TestWithError "PAR 2.0 repair failed" } Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 }par2cmdline-turbo-1.5.0/tests/test19000077500000000000000000000040731524160147200172750ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 banner="Creating 1024 byte test data file" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes dd if=/dev/urandom of=datafile bs=1024 count=1 || { echo "ERROR: Unable to create test data file" ; exit 1; } >&2 ls -l banner="Creating PAR 2.0 recovery data (block size 200)" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes $PARBINARY c -s200 -c1 recovery datafile || { echo "ERROR: Creating PAR 2.0 data failed" ; exit 1; } >&2 ls -l banner="Damaging data file (trim first 100 bytes)" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes mv datafile datafile.orig dd if=datafile.orig of=datafile bs=100 skip=1 || { echo "ERROR: Unable to create damaged data file" ; exit 1; } >&2 rm datafile.orig ls -l banner="Repairing using PAR 2.0 data (with skip leaway 99 - should fail)" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes $PARBINARY r -N -S99 -vv recovery.par2 && { echo "ERROR: Repair should not be possible with skip leaway set to 99" ; exit 1; } >&2 ls -l banner="Repairing using PAR 2.0 data (with skip leaway 100 - should succeed)" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes $PARBINARY r -N -S100 -vv recovery.par2 || { echo "ERROR: Repair should be possible with skip leaway set to 100" ; exit 1; } >&2 ls -l cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test19.ps1000066400000000000000000000031711524160147200177720ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 19: Skip leaway test $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Write-Banner "Creating 1024 byte test data file" New-RandomFile -Path "datafile" -SizeBytes 1024 Write-Banner "Creating PAR 2.0 recovery data (block size 200)" $exitCode = Invoke-Par2 -Arguments @("c", "-s200", "-c1", "recovery", "datafile") if ($exitCode -ne 0) { Exit-TestWithError "Creating PAR 2.0 data failed" } Write-Banner "Damaging data file (trim first 100 bytes)" Move-Item "datafile" "datafile.orig" $bytes = [System.IO.File]::ReadAllBytes("datafile.orig") $damagedBytes = $bytes[100..($bytes.Length - 1)] [System.IO.File]::WriteAllBytes("datafile", $damagedBytes) Remove-Item "datafile.orig" Write-Banner "Repairing using PAR 2.0 data (with skip leaway 99 - should fail)" $exitCode = Invoke-Par2 -Arguments @("r", "-N", "-S99", "-vv", "recovery.par2") if ($exitCode -eq 0) { Exit-TestWithError "Repair should not be possible with skip leaway set to 99" } Write-Banner "Repairing using PAR 2.0 data (with skip leaway 100 - should succeed)" $exitCode = Invoke-Par2 -Arguments @("r", "-N", "-S100", "-vv", "recovery.par2") if ($exitCode -ne 0) { Exit-TestWithError "Repair should be possible with skip leaway set to 100" } Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 }par2cmdline-turbo-1.5.0/tests/test2000077500000000000000000000022311524160147200171770ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 tar -xzf "$TESTDATA/flatdata-par2files.tar.gz" || { echo "ERROR: Could not extract par test files" ; exit 1; } >&2 banner="Verifying using PAR 2.0 data" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes $PARBINARY v -a testdata.par2 || { echo "ERROR: Initial PAR 2.0 verification failed" ; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test2.ps1000066400000000000000000000014561524160147200177060ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 2: Verify using PAR 2.0 data $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "flatdata.tar.gz") -Destination "." Expand-TarGz -Archive (Join-Path $TESTDATA "flatdata-par2files.tar.gz") -Destination "." Write-Banner "Verifying using PAR 2.0 data" $exitCode = Invoke-Par2 -Arguments @("v", "-a", "testdata.par2") if ($exitCode -ne 0) { Exit-TestWithError "Initial PAR 2.0 verification failed" } Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 } par2cmdline-turbo-1.5.0/tests/test20000077500000000000000000000030461524160147200172640ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 banner="generate datafile with 2000 random bytes" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes dd bs=1000 count=2 if=/dev/urandom of=myfile.dat banner="Creating PAR 2.0 recovery data" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes $PARBINARY c -s1000 -c0 recovery myfile.dat || { echo "ERROR: Creating PAR 2.0 data failed" ; exit 1; } >&2 banner="split files" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes dd bs=1000 count=1 if=myfile.dat of=myfile.dat.001 dd bs=1000 count=1 skip=1 if=myfile.dat of=myfile.dat.002 rm myfile.dat banner="Repairing using PAR 2.0 data" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes $PARBINARY r recovery.par2 ./* || { echo "ERROR: PAR 2.0 repair failed" ; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test20.ps1000066400000000000000000000025121524160147200177600ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 20: Generate datafile with 2000 random bytes and repair split file $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Write-Banner "generate datafile with 2000 random bytes" New-RandomFile -Path "myfile.dat" -SizeBytes 2000 Write-Banner "Creating PAR 2.0 recovery data" $exitCode = Invoke-Par2 -Arguments @("c", "-s1000", "-c0", "recovery", "myfile.dat") if ($exitCode -ne 0) { Exit-TestWithError "Creating PAR 2.0 data failed" } Write-Banner "split files" $bytes = [System.IO.File]::ReadAllBytes("myfile.dat") [System.IO.File]::WriteAllBytes("myfile.dat.001", $bytes[0..999]) [System.IO.File]::WriteAllBytes("myfile.dat.002", $bytes[1000..1999]) Remove-Item "myfile.dat" Write-Banner "Repairing using PAR 2.0 data" $allFiles = Get-ChildItem -File | Select-Object -ExpandProperty Name $exitCode = Invoke-Par2 -Arguments (@("r", "recovery.par2") + $allFiles) if ($exitCode -ne 0) { Exit-TestWithError "PAR 2.0 repair failed" } Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 }par2cmdline-turbo-1.5.0/tests/test21000077500000000000000000000027001524160147200172610ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 banner="save parfiles outside of basedirectory" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes mkdir parfiles mkdir datafiles banner="Creating PAR 2.0 recovery data" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes cd datafiles tar -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 $PARBINARY c -B ./ ../parfiles/recovery * || { echo "ERROR: Creating PAR 2.0 data failed" ; exit 1; } >&2 banner="Verifying PAR 2.0 recovery data" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes $PARBINARY v -B ./ ../parfiles/recovery.par2 || { echo "ERROR: Verifying PAR 2.0 data failed" ; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test21.ps1000066400000000000000000000024501524160147200177620ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 21: Save parfiles outside of basedirectory $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Write-Banner "save parfiles outside of basedirectory" New-Item -ItemType Directory -Path "parfiles" -Force | Out-Null New-Item -ItemType Directory -Path "datafiles" -Force | Out-Null Write-Banner "Creating PAR 2.0 recovery data" Set-Location "datafiles" Expand-TarGz -Archive (Join-Path $TESTDATA "flatdata.tar.gz") -Destination "." $dataFiles = Get-ChildItem -Filter "*.data" | Select-Object -ExpandProperty Name $exitCode = Invoke-Par2 -Arguments (@("c", "-B", ".\", "..\parfiles\recovery") + $dataFiles) if ($exitCode -ne 0) { Exit-TestWithError "Creating PAR 2.0 data failed" } Write-Banner "Verifying PAR 2.0 recovery data" $exitCode = Invoke-Par2 -Arguments @("v", "-B", ".\", "..\parfiles\recovery.par2") if ($exitCode -ne 0) { Exit-TestWithError "Verifying PAR 2.0 data failed" } Set-Location .. Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 }par2cmdline-turbo-1.5.0/tests/test22000077500000000000000000000024101524160147200172600ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 faraway="$TESTROOT/run$testname/in/a/folder/far/far/away" mkdir -p "$faraway" || { echo "ERROR: Could not create fancy folder" ; exit 1; } >&2 mkdir rundir tar -xzf "$TESTDATA/flatdata.tar.gz" -C "$faraway" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 banner="par2 can be run from any starting dir" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes cd rundir $PARBINARY c -r2 -B"$faraway" "$faraway"/test.par2 "$faraway"/*.data || { echo "ERROR: create of PAR 2.0 files failed" ; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test22.ps1000066400000000000000000000021661524160147200177670ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 22: par2 can be run from any starting dir (create) $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname $faraway = Join-Path $PWD "in\a\folder\far\far\away" New-Item -ItemType Directory -Path $faraway -Force | Out-Null New-Item -ItemType Directory -Path "rundir" -Force | Out-Null Expand-TarGz -Archive (Join-Path $TESTDATA "flatdata.tar.gz") -Destination $faraway Write-Banner "par2 can be run from any starting dir" Set-Location "rundir" $dataFiles = Get-ChildItem -Path $faraway -Filter "*.data" | Select-Object -ExpandProperty FullName $exitCode = Invoke-Par2 -Arguments (@("c", "-r2", "-B", $faraway, (Join-Path $faraway "test.par2")) + $dataFiles) if ($exitCode -ne 0) { Exit-TestWithError "create of PAR 2.0 files failed" } Set-Location .. Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 }par2cmdline-turbo-1.5.0/tests/test23000077500000000000000000000025721524160147200172720ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 faraway="$TESTROOT/run$testname/in/a/folder/far/far/away" mkdir -p "$faraway" || { echo "ERROR: Could not create fancy folder" ; exit 1; } >&2 mkdir rundir tar -xzf "$TESTDATA/flatdata.tar.gz" -C "$faraway" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 tar -xzf "$TESTDATA/flatdata-par2files.tar.gz" -C "$faraway" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 banner="par2 can be run from any starting dir" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes cd rundir $PARBINARY v -B "$faraway" "$faraway"/testdata.par2 || { echo "ERROR: verify of PAR 2.0 files failed" ; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test23.ps1000066400000000000000000000021361524160147200177650ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 23: par2 can be run from any starting dir (verify) $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname $faraway = Join-Path $PWD "in\a\folder\far\far\away" New-Item -ItemType Directory -Path $faraway -Force | Out-Null New-Item -ItemType Directory -Path "rundir" -Force | Out-Null Expand-TarGz -Archive (Join-Path $TESTDATA "flatdata.tar.gz") -Destination $faraway Expand-TarGz -Archive (Join-Path $TESTDATA "flatdata-par2files.tar.gz") -Destination $faraway Write-Banner "par2 can be run from any starting dir" Set-Location "rundir" $exitCode = Invoke-Par2 -Arguments @("v", "-B", $faraway, (Join-Path $faraway "testdata.par2")) if ($exitCode -ne 0) { Exit-TestWithError "verify of PAR 2.0 files failed" } Set-Location .. Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 }par2cmdline-turbo-1.5.0/tests/test24000077500000000000000000000042121524160147200172640ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 faraway="$TESTROOT/run$testname/in/a/folder/far/far/away" mkdir -p "$faraway" || { echo "ERROR: Could not create fancy folder" ; exit 1; } >&2 mkdir rundir tar -xzf "$TESTDATA/flatdata.tar.gz" -C "$faraway" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 tar -xzf "$TESTDATA/flatdata-par2files.tar.gz" -C "$faraway" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 cp "$faraway"/test-0.data "$faraway"/test-0.data.orig cp "$faraway"/test-1.data "$faraway"/test-1.data.orig cp "$faraway"/test-2.data "$faraway"/test-2.data.orig cp "$faraway"/test-3.data "$faraway"/test-3.data.orig cp "$faraway"/test-4.data "$faraway"/test-4.data.orig cp "$faraway"/test-5.data "$faraway"/test-5.data.orig cp "$faraway"/test-6.data "$faraway"/test-6.data.orig cp "$faraway"/test-7.data "$faraway"/test-7.data.orig cp "$faraway"/test-8.data "$faraway"/test-8.data.orig cp "$faraway"/test-9.data "$faraway"/test-9.data.orig banner="par2 can be run from any starting dir" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes cd rundir rm -f "$faraway"/test-1.data "$faraway"/test-3.data $PARBINARY r -B"$faraway" "$faraway"/testdata.par2 || { echo "ERROR: repair of PAR 2.0 files failed" ; exit 1; } >&2 cmp -s "$faraway"/test-1.data "$faraway"/test-1.data.orig && cmp -s "$faraway"/test-3.data "$faraway"/test-3.data.orig || { echo "ERROR: Repaired files do not match originals" ; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test24.ps1000066400000000000000000000034551524160147200177730ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 24: par2 can be run from any starting dir (repair) $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname $faraway = Join-Path $PWD "in\a\folder\far\far\away" New-Item -ItemType Directory -Path $faraway -Force | Out-Null New-Item -ItemType Directory -Path "rundir" -Force | Out-Null Expand-TarGz -Archive (Join-Path $TESTDATA "flatdata.tar.gz") -Destination $faraway Expand-TarGz -Archive (Join-Path $TESTDATA "flatdata-par2files.tar.gz") -Destination $faraway # Save original files for ($i = 0; $i -le 9; $i++) { Copy-Item (Join-Path $faraway "test-$i.data") (Join-Path $faraway "test-$i.data.orig") } Write-Banner "par2 can be run from any starting dir" Set-Location "rundir" # Delete some files Remove-Item (Join-Path $faraway "test-1.data") Remove-Item (Join-Path $faraway "test-3.data") $exitCode = Invoke-Par2 -Arguments @("r", "-B", $faraway, (Join-Path $faraway "testdata.par2")) if ($exitCode -ne 0) { Exit-TestWithError "repair of PAR 2.0 files failed" } # Verify repaired files match originals if (-not (Compare-Files (Join-Path $faraway "test-1.data") (Join-Path $faraway "test-1.data.orig"))) { Exit-TestWithError "Repaired file test-1.data does not match original" } if (-not (Compare-Files (Join-Path $faraway "test-3.data") (Join-Path $faraway "test-3.data.orig"))) { Exit-TestWithError "Repaired file test-3.data does not match original" } Set-Location .. Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 }par2cmdline-turbo-1.5.0/tests/test25000077500000000000000000000021061524160147200172650ustar00rootroot00000000000000#!/bin/sh -x execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 banner="par2 with full path" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes echo "file contents" > some-file $PARBINARY create "$(pwd)"/some-file || { echo "ERROR: Failed to create parchive"; exit1; } >&2 echo "corrupted contents" > some-file $PARBINARY repair some-file || { echo "ERROR: Failed to repair"; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test25.ps1000066400000000000000000000021101524160147200177570ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 25: par2 with full path $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Write-Banner "par2 with full path" Set-Content -Path "some-file" -Value "file contents" Copy-Item "some-file" "some-file.orig" $fullPath = (Resolve-Path "some-file").Path $exitCode = Invoke-Par2 -Arguments @("create", $fullPath) if ($exitCode -ne 0) { Exit-TestWithError "Failed to create parchive" } Set-Content -Path "some-file" -Value "corrupted contents" $exitCode = Invoke-Par2 -Arguments @("repair", "some-file") if ($exitCode -ne 0) { Exit-TestWithError "Failed to repair" } if (-not (Compare-Files "some-file" "some-file.orig")) { Exit-TestWithError "Repaired file does not match original" } Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 }par2cmdline-turbo-1.5.0/tests/test26000077500000000000000000000022411524160147200172660ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 banner="par2 with full path and creation and repair in subfolder" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes mkdir subfolder echo "file contents" > subfolder/some-file $PARBINARY create "$(pwd)"/subfolder/some-file || { echo "ERROR: Failed to create parchive"; exit1; } >&2 echo "corrupted contents" > subfolder/some-file $PARBINARY repair subfolder/some-file || { echo "ERROR: Failed to repair"; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test26.ps1000066400000000000000000000024501524160147200177670ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 26: par2 with full path and creation and repair in subfolder $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Write-Banner "par2 with full path and creation and repair in subfolder" New-Item -ItemType Directory -Path "subfolder" -Force | Out-Null Set-Content -Path "subfolder\some-file" -Value "file contents" Copy-Item "subfolder\some-file" "subfolder\some-file.orig" $fullPath = (Resolve-Path "subfolder\some-file").Path $exitCode = Invoke-Par2 -Arguments @("create", $fullPath) if ($exitCode -ne 0) { Exit-TestWithError "Failed to create parchive" } Set-Content -Path "subfolder\some-file" -Value "corrupted contents" $exitCode = Invoke-Par2 -Arguments @("repair", "subfolder\some-file") if ($exitCode -ne 0) { Exit-TestWithError "Failed to repair" } if (-not (Compare-Files "subfolder\some-file" "subfolder\some-file.orig")) { Exit-TestWithError "Repaired file does not match original" } Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 }par2cmdline-turbo-1.5.0/tests/test27000077500000000000000000000022011524160147200172630ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 banner="par2 with full path" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes mkdir -p folder/subfolder ln -s folder/subfolder tmp cd tmp echo "file contents" > some-file $PARBINARY create "$(pwd)"/some-file || { echo "ERROR: Failed to create parchive"; exit1; } >&2 echo "corrupted contents" > some-file $PARBINARY repair some-file || { echo "ERROR: Failed to repair"; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test27.ps1000066400000000000000000000007551524160147200177760ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 27: par2 with full path through symlink # DUMMY script on windows, just here for completeness sake $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) Initialize-Test -TestName $testname Write-Banner "par2 with full path through symlink" Write-Host "SKIPPED: no symbolic link testing on Windows" Complete-Test exit 0 par2cmdline-turbo-1.5.0/tests/test28000077500000000000000000000035161524160147200172760ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 banner="Ensuring silent noise level" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes $PARBINARY c -a newtest -qq test-*.data >stdout || { echo "ERROR: create failed" ; exit 1; } >&2 test ! -s stdout || { echo "ERROR: create with -qq produced output to stdout" ; exit 1; } >&2 $PARBINARY v -qq newtest test-*.data >stdout || { echo "ERROR: verify failed" ; exit 1; } >&2 test ! -s stdout || { echo "ERROR: verify with -qq produced output to stdout" ; exit 1; } >&2 $PARBINARY r -qq newtest test-*.data >stdout || { echo "ERROR: repair failed" ; exit 1; } >&2 test ! -s stdout || { echo "ERROR: repair with -qq produced output to stdout" ; exit 1; } >&2 $PARBINARY c -a newtest -qq test-*.data >stdout 2>stderr && { echo "ERROR: second create succeeded but shouldn't have" ; exit 1; } >&2 test ! -s stdout || { echo "ERROR: second create with -qq produced output to stdout" ; exit 1; } >&2 test -s stderr || { echo "ERROR: second create with -qq did not produce output to stderr" ; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test28.ps1000066400000000000000000000046111524160147200177720ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 28: Ensuring silent noise level (-qq flag) $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "flatdata.tar.gz") -Destination "." Write-Banner "Ensuring silent noise level" $dataFiles = @("test-0.data", "test-1.data", "test-2.data", "test-3.data", "test-4.data", "test-5.data", "test-6.data", "test-7.data", "test-8.data", "test-9.data") # Create with -qq should produce no stdout $result = Invoke-Par2 -Arguments (@("c", "-a", "newtest", "-qq") + $dataFiles) -ReturnObject if ($result.ExitCode -ne 0) { Exit-TestWithError "create failed" } if ($result.StdOut -and $result.StdOut.Trim().Length -gt 0) { Exit-TestWithError "create with -qq produced output to stdout" } # Verify with -qq should produce no stdout $result = Invoke-Par2 -Arguments (@("v", "-qq", "newtest") + $dataFiles) -ReturnObject if ($result.ExitCode -ne 0) { Exit-TestWithError "verify failed" } if ($result.StdOut -and $result.StdOut.Trim().Length -gt 0) { Exit-TestWithError "verify with -qq produced output to stdout" } # Repair with -qq should produce no stdout $result = Invoke-Par2 -Arguments (@("r", "-qq", "newtest") + $dataFiles) -ReturnObject if ($result.ExitCode -ne 0) { Exit-TestWithError "repair failed" } if ($result.StdOut -and $result.StdOut.Trim().Length -gt 0) { Exit-TestWithError "repair with -qq produced output to stdout" } # Second create should fail (files already exist) but still be silent on stdout $result = Invoke-Par2 -Arguments (@("c", "-a", "newtest", "-qq") + $dataFiles) -ReturnObject if ($result.ExitCode -eq 0) { Exit-TestWithError "second create succeeded but shouldn't have" } if ($result.StdOut -and $result.StdOut.Trim().Length -gt 0) { Exit-TestWithError "second create with -qq produced output to stdout" } if (-not $result.StdErr -or $result.StdErr.Trim().Length -eq 0) { Exit-TestWithError "second create with -qq did not produce output to stderr" } Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 }par2cmdline-turbo-1.5.0/tests/test29000077500000000000000000000035351524160147200173000ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/bug190.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 banner="Issue 190, 1 bitflip can't be repaired" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes ##### TESTDATA generated with: # # fill with zeros # dd if=/dev/zero bs=1MB count=9 | tr '\000' '\377' > ./9MBones_crc_ok_bad # # replace one bit # printf "\xFF" | dd of=9MBones_crc_ok_bad bs=1 seek=20000 count=1 conv=notrunc # # store original # cp 9MBones_crc_ok_bad 9MBones_crc_ok_orig # # replace 1 bit (1->0) # printf "\xFE" | dd of="9MBones_crc_ok_bad" bs=1 seek=20000 count=1 conv=notrunc ##### END TESTDATA # generate par2 from orig good file, copy that first cp 9MBones_crc_ok_orig 9MBones_crc_ok || { echo "ERROR: good copy failed" ; exit 1; } >&2 # Create PAR2 files $PARBINARY c -m500 -r30 -n1 -v '9MBones_crc_ok' || { echo "ERROR: create failed" ; exit 1; } >&2 # replace with bitflipped bad copy cp 9MBones_crc_ok_bad 9MBones_crc_ok || { echo "ERROR: bad copy failed" ; exit 1; } >&2 # Repair bitflip $PARBINARY repair '9MBones_crc_ok.par2' || { echo "ERROR: bitflip repair failed" ; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test29.ps1000066400000000000000000000022071524160147200177720ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 29: Issue 190, 1 bitflip can't be repaired $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "bug190.tar.gz") -Destination "." Write-Banner "Issue 190, 1 bitflip can't be repaired" # generate par2 from orig good file, copy that first Copy-Item "9MBones_crc_ok_orig" "9MBones_crc_ok" # Create PAR2 files $exitCode = Invoke-Par2 -Arguments @("c", "-m500", "-r30", "-n1", "-v", "9MBones_crc_ok") if ($exitCode -ne 0) { Exit-TestWithError "create failed" } # replace with bitflipped bad copy Copy-Item "9MBones_crc_ok_bad" "9MBones_crc_ok" -Force # Repair bitflip $exitCode = Invoke-Par2 -Arguments @("repair", "9MBones_crc_ok.par2") if ($exitCode -ne 0) { Exit-TestWithError "bitflip repair failed" } Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 }par2cmdline-turbo-1.5.0/tests/test3000077500000000000000000000032371524160147200172070ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 tar -xzf "$TESTDATA/flatdata-par1files.tar.gz" || { echo "ERROR: Could not extract par test files" ; exit 1; } >&2 cp test-0.data test-0.data.orig cp test-1.data test-1.data.orig cp test-2.data test-2.data.orig cp test-3.data test-3.data.orig cp test-4.data test-4.data.orig cp test-5.data test-5.data.orig cp test-6.data test-6.data.orig cp test-7.data test-7.data.orig cp test-8.data test-8.data.orig cp test-9.data test-9.data.orig banner="Repairing two files using PAR 1.0 data" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes rm -f test-1.data test-3.data $PARBINARY r testdata.par || { echo "ERROR: Reconstruction of two files using PAR 1.0 failed" ; exit 1; } >&2 cmp -s test-1.data test-1.data.orig && cmp -s test-3.data test-3.data.orig || { echo "ERROR: Repaired files do not match originals" ; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test3.ps1000066400000000000000000000020561524160147200177040ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 3: Repair one missing file using PAR 2.0 data $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "flatdata.tar.gz") -Destination "." Expand-TarGz -Archive (Join-Path $TESTDATA "flatdata-par2files.tar.gz") -Destination "." Write-Banner "Repairing one missing file using PAR 2.0 data" Copy-Item "test-0.data" "test-0.data.orig" Remove-Item "test-0.data" $exitCode = Invoke-Par2 -Arguments @("r", "testdata.par2") if ($exitCode -ne 0) { Exit-TestWithError "Reconstruction of one file using PAR 2.0 failed" } if (-not (Compare-Files "test-0.data" "test-0.data.orig")) { Exit-TestWithError "Repaired files do not match originals" } Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 }par2cmdline-turbo-1.5.0/tests/test30000077500000000000000000000025541524160147200172700ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 tar -xzf "$TESTDATA/bug128-parfiles.tar.gz" || { echo "ERROR: Could not extract par test files" ; exit 1; } >&2 banner="Issue 128, 0 byte files cause issue" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes # check par2 with one 0 byte file touch test-a.data # Verify with 0 byte file $PARBINARY verify recovery.par2 || { echo "ERROR: 0 byte file verify failed" ; exit 1; } >&2 rm test-a.data # Repair with 0 byte file $PARBINARY repair recovery.par2 || { echo "ERROR: 0 byte file repair failed" ; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test30.ps1000066400000000000000000000022171524160147200177630ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 30: Issue 128, 0 byte files cause issue $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "flatdata.tar.gz") -Destination "." Expand-TarGz -Archive (Join-Path $TESTDATA "bug128-parfiles.tar.gz") -Destination "." Write-Banner "Issue 128, 0 byte files cause issue" # Create a 0 byte file New-Item -ItemType File -Path "test-a.data" -Force | Out-Null # Verify with 0 byte file $exitCode = Invoke-Par2 -Arguments @("verify", "recovery.par2") if ($exitCode -ne 0) { Exit-TestWithError "0 byte file verify failed" } Remove-Item "test-a.data" # Repair with 0 byte file missing $exitCode = Invoke-Par2 -Arguments @("repair", "recovery.par2") if ($exitCode -ne 0) { Exit-TestWithError "0 byte file repair failed" } Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 }par2cmdline-turbo-1.5.0/tests/test31000077500000000000000000000052551524160147200172720ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/smallsubdirdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 banner="Bug 150, Files in rootfolder are not used with recursion" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes # before the subdirs echo "file in rootpath" > aaaa-test.data # after the subdirs echo "another file in rootpath" > test-a.data ###### # BEFORE: # # $ tree # . # ├── aaaa-test.data # ├── subdir1 # │   └── test-0.data # ├── subdir2 # │   ├── test-1.data # │   ├── test-2.data # │   ├── test-3.data # │   ├── test-4.data # │   ├── test-5.data # │   ├── test-6.data # │   ├── test-7.data # │   ├── test-8.data # │   └── test-9.data # └── test-a.data # # 3 directories, 12 files ###### $PARBINARY create -R * || { echo "ERROR: Recursive creation of PAR 2.0 files failed" ; exit 1; } >&2 ###### # AFTER: # # tree # . # ├── aaaa-test.data # ├── aaaa-test.data.par2 # ├── aaaa-test.data.vol000+01.par2 # ├── aaaa-test.data.vol001+02.par2 # ├── aaaa-test.data.vol003+04.par2 # ├── aaaa-test.data.vol007+08.par2 # ├── aaaa-test.data.vol015+16.par2 # ├── aaaa-test.data.vol031+32.par2 # ├── aaaa-test.data.vol063+37.par2 # ├── subdir1 # │   └── test-0.data # ├── subdir2 # │   ├── test-1.data # │   ├── test-2.data # │   ├── test-3.data # │   ├── test-4.data # │   ├── test-5.data # │   ├── test-6.data # │   ├── test-7.data # │   ├── test-8.data # │   └── test-9.data # └── test-a.data # # 3 directories, 20 files ###### # The first file in the wildcard expansion is used ad parfilename so not # covered for repair rm aaaa-test.data $PARBINARY verify aaaa-test.data.par2 || { echo "ERROR: verify of rootpath inclusion failed" ; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test31.ps1000066400000000000000000000032561524160147200177700ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 31: Bug 150, Files in rootfolder are not used with recursion $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "smallsubdirdata.tar.gz") -Destination "." Write-Banner "Bug 150, Files in rootfolder are not used with recursion" # Create files before and after subdirs alphabetically Set-Content -Path "aaaa-test.data" -Value "file in rootpath" Set-Content -Path "test-a.data" -Value "another file in rootpath" # Get all items SORTED ALPHABETICALLY to match Unix shell glob behavior # This ensures aaaa-test.data comes first and becomes the par2 base name $allItems = Get-ChildItem | Select-Object -ExpandProperty Name | Sort-Object $exitCode = Invoke-Par2 -Arguments (@("create", "-R") + $allItems) if ($exitCode -ne 0) { Exit-TestWithError "Recursive creation of PAR 2.0 files failed" } # The first file in the alphabetically sorted list is used as parfilename # so it's not covered for repair - remove it Remove-Item "aaaa-test.data" # With alphabetical sorting, aaaa-test.data comes first, so the par2 file # will be named aaaa-test.data.par2 $mainPar2 = "aaaa-test.data.par2" $exitCode = Invoke-Par2 -Arguments @("verify", $mainPar2) if ($exitCode -ne 0) { Exit-TestWithError "verify of rootpath inclusion failed" } Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 } par2cmdline-turbo-1.5.0/tests/test32000077500000000000000000000023171524160147200172670ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/subdirdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 banner="Bug 205, Files already exist so no par2 is created" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes mkdir par2 $PARBINARY create -vv -a par2/disk1.par2 -b32768 -n31 -R -v -B./ * || { echo "ERROR: Recursive creation of PAR 2.0 files failed" ; exit 1; } >&2 $PARBINARY verify -B./ par2/disk1.par2 || { echo "ERROR: verify failed" ; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test32.ps1000066400000000000000000000022261524160147200177650ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 32: Bug 205, Files already exist so no par2 is created $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "subdirdata.tar.gz") -Destination "." Write-Banner "Bug 205, Files already exist so no par2 is created" New-Item -ItemType Directory -Path "par2" -Force | Out-Null # Get all items for recursive creation $allItems = Get-ChildItem | Select-Object -ExpandProperty Name $exitCode = Invoke-Par2 -Arguments (@("create", "-vv", "-a", "par2\disk1.par2", "-b32768", "-n31", "-R", "-v", "-B.\") + $allItems) if ($exitCode -ne 0) { Exit-TestWithError "Recursive creation of PAR 2.0 files failed" } $exitCode = Invoke-Par2 -Arguments @("verify", "-B.\", "par2\disk1.par2") if ($exitCode -ne 0) { Exit-TestWithError "verify failed" } Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 }par2cmdline-turbo-1.5.0/tests/test33000077500000000000000000000040451524160147200172700ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 tar -xzf "$TESTDATA/flatdata-par2files.tar.gz" || { echo "ERROR: Could not extract par test files" ; exit 1; } >&2 banner="Testing rename-only mode with renamed files" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes # Save original files cp test-0.data test-0.data.orig cp test-1.data test-1.data.orig cp test-2.data test-2.data.orig # Rename some files (simulate accidental renaming) mv test-0.data renamed-file-a.data mv test-1.data renamed-file-b.data mv test-2.data renamed-file-c.data # Verify fails without the renamed files $PARBINARY v testdata.par2 2>&1 | grep -q "missing" if [ $? -ne 0 ]; then echo "ERROR: Verification should report missing files" >&2 exit 1 fi # Repair with rename-only mode, passing the renamed files as extra files $PARBINARY r -O testdata.par2 renamed-file-a.data renamed-file-b.data renamed-file-c.data || { echo "ERROR: Repair with rename-only mode failed" ; exit 1; } >&2 # Check that the original files are restored with correct names cmp -s test-0.data test-0.data.orig && cmp -s test-1.data test-1.data.orig && cmp -s test-2.data test-2.data.orig || { echo "ERROR: Repaired files do not match originals" ; exit 1 ; } >&2 echo "Rename-only mode test passed!" cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test33.ps1000066400000000000000000000042401524160147200177640ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 33: Rename-only mode with renamed files $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "flatdata.tar.gz") -Destination "." Expand-TarGz -Archive (Join-Path $TESTDATA "flatdata-par2files.tar.gz") -Destination "." Write-Banner "Testing rename-only mode with renamed files" # Save original files Copy-Item "test-0.data" "test-0.data.orig" Copy-Item "test-1.data" "test-1.data.orig" Copy-Item "test-2.data" "test-2.data.orig" # Rename some files (simulate accidental renaming) Move-Item "test-0.data" "renamed-file-a.data" Move-Item "test-1.data" "renamed-file-b.data" Move-Item "test-2.data" "renamed-file-c.data" # Verify fails without the renamed files $result = Invoke-Par2 -Arguments @("v", "testdata.par2") -ReturnObject $output = $result.StdOut + $result.StdErr if ($output -notmatch "missing") { Exit-TestWithError "Verification should report missing files" } # Repair with rename-only mode, passing the renamed files as extra files $exitCode = Invoke-Par2 -Arguments @("r", "-O", "testdata.par2", "renamed-file-a.data", "renamed-file-b.data", "renamed-file-c.data") if ($exitCode -ne 0) { Exit-TestWithError "Repair with rename-only mode failed" } # Check that the original files are restored with correct names if (-not (Compare-Files "test-0.data" "test-0.data.orig")) { Exit-TestWithError "Repaired file test-0.data does not match original" } if (-not (Compare-Files "test-1.data" "test-1.data.orig")) { Exit-TestWithError "Repaired file test-1.data does not match original" } if (-not (Compare-Files "test-2.data" "test-2.data.orig")) { Exit-TestWithError "Repaired file test-2.data does not match original" } Write-Host "Rename-only mode test passed!" Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 }par2cmdline-turbo-1.5.0/tests/test34000077500000000000000000000045521524160147200172740ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 tar -xzf "$TESTDATA/flatdata-par2files.tar.gz" || { echo "ERROR: Could not extract par test files" ; exit 1; } >&2 banner="Testing rename-only mode skips damaged files" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes # Save original file cp test-0.data test-0.data.orig # Delete original and create a damaged version with a different name rm test-0.data cp test-0.data.orig renamed-damaged.data # Corrupt the file at the beginning dd if=/dev/zero of=renamed-damaged.data bs=1 count=100 conv=notrunc 2>/dev/null # With rename-only mode, repair should NOT be possible because: # - The damaged file should be skipped in rename-only mode # - There are not enough recovery blocks to repair # This tests that rename-only mode correctly skips non-perfect matches $PARBINARY r -O testdata.par2 renamed-damaged.data 2>&1 result=$? # Should return non-zero (repair not possible) because rename-only skips damaged files if [ $result -eq 0 ]; then # Let's check if it actually found a match for the damaged file # If it did, that would be a bug in rename-only mode echo "Note: Repair succeeded, checking if the file was properly restored..." if cmp -s test-0.data test-0.data.orig; then echo "File was restored from recovery data (not from the damaged file)" else echo "ERROR: Rename-only mode should have skipped the damaged file" >&2 exit 1 fi else echo "Repair not possible (as expected with rename-only mode and damaged file)" fi echo "Rename-only mode correctly handles damaged files!" cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test34.ps1000066400000000000000000000036001524160147200177640ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 34: Rename-only mode skips damaged files $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "flatdata.tar.gz") -Destination "." Expand-TarGz -Archive (Join-Path $TESTDATA "flatdata-par2files.tar.gz") -Destination "." Write-Banner "Testing rename-only mode skips damaged files" # Save original file Copy-Item "test-0.data" "test-0.data.orig" # Delete original and create a damaged version with a different name Remove-Item "test-0.data" Copy-Item "test-0.data.orig" "renamed-damaged.data" # Corrupt the file at the beginning $bytes = [System.IO.File]::ReadAllBytes("renamed-damaged.data") for ($i = 0; $i -lt 100; $i++) { $bytes[$i] = 0 } [System.IO.File]::WriteAllBytes("renamed-damaged.data", $bytes) # With rename-only mode, repair may or may not succeed depending on recovery blocks # The key is that it shouldn't crash and should handle the damaged file appropriately $exitCode = Invoke-Par2 -Arguments @("r", "-O", "testdata.par2", "renamed-damaged.data") if ($exitCode -eq 0) { # If repair succeeded, check if file was properly restored if (Test-Path "test-0.data") { if (Compare-Files "test-0.data" "test-0.data.orig") { Write-Host "File was restored from recovery data (not from the damaged file)" } } } else { Write-Host "Repair not possible (as expected with rename-only mode and damaged file)" } Write-Host "Rename-only mode correctly handles damaged files!" Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 }par2cmdline-turbo-1.5.0/tests/test35000077500000000000000000000047321524160147200172750ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 banner="Verify symbolic link handling" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes # generate test data and links echo -n '01234567890abcdef' > test_file ln -s test_file test_link mkdir test_dir ln -s $(pwd)/test_file test_dir/test_link ln -s test_dir dir_link # links are not followed for non-primary files $PARBINARY c test_primary test_link && { echo "ERROR: followed non-primary link" ; exit 1; } >&2 $PARBINARY c test_primary -R test_dir && { echo "ERROR: followed link in directory" ; exit 1; } >&2 $PARBINARY c test_primary -R dir_link && { echo "ERROR: followed linked directory" ; exit 1; } >&2 # primary file being a link calculates data for the real file cp test_file test_file.bak echo "*** Create ***" $PARBINARY c -r10 test_link || { echo "ERROR: calculating link data failed" ; exit 1; } >&2 echo "*** Verify good file link ***" $PARBINARY v test_link || { echo "ERROR: verifying good link data failed" ; exit 1; } >&2 # "damage" real file echo -n "!" >> test_file echo "*** Verify damaged file link ***" $PARBINARY v test_link && { echo "ERROR: verifying damaged link data succeeded" ; exit 1; } >&2 # repair via link echo "*** Repair ***" $PARBINARY r test_link || { echo "ERROR: repairing linked data failed" ; exit 1; } >&2 # link becomes the repaired file diff test_link test_file.bak || { echo "ERROR: comparison after repairing linked data failed" ; exit 1; } >&2 # dead links fail ln -s NOT_EXISTING dead_link $PARBINARY c dead_link && { echo "ERROR: calculating dead link data succeeded" ; exit 1; } >&2 $PARBINARY v dead_link && { echo "ERROR: verifying dead link data succeeded" ; exit 1; } >&2 $PARBINARY r dead_link && { echo "ERROR: repairing dead link data succeeded" ; exit 1; } >&2 echo "\nLink tests succeeded!" cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test35.ps1000066400000000000000000000007411524160147200177700ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 35: Verify symbolic link handling # DUMMY script on windows, just here for completeness sake $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) Initialize-Test -TestName $testname Write-Banner "Verify symbolic link handling" Write-Host "SKIPPED: no symbolic link testing on Windows" Complete-Test exit 0 par2cmdline-turbo-1.5.0/tests/test36000077500000000000000000000025341524160147200172740ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 banner="Testing flat data par2 creation with filelist form file" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes # get @flatdata-filelist.txt cp "$TESTDATA/flatdata-filelist.txt" ./ $PARBINARY c recovery.par2 @flatdata-filelist.txt || { echo "ERROR: failed to create parchive from filelist" ; exit 1; } >&2 $PARBINARY v recovery.par2 || { echo "ERROR: failed to verify parchive created from filelist" ; exit 1; } >&2 echo "Sucessfully created and verified par2 recovery with filelist from file" cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test36.ps1000066400000000000000000000021221524160147200177640ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 34: Rename-only mode skips damaged files $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "flatdata.tar.gz") -Destination "." Copy-Item (Join-Path $TESTDATA "flatdata-filelist.txt") "." Write-Banner "Testing flat data par2 creation with filelist from file" $exitCode = Invoke-Par2 -Arguments @("c", "recovery.par2", "@flatdata-filelist.txt") if ($exitCode -ne 0) { Exit-TestWithError "failed to create parchive from filelist" } $exitCode = Invoke-Par2 -Arguments @("r", "recovery.par2") if ($exitCode -ne 0) { Exit-TestWithError "failed to verify parchive created from filelist" } Write-Host "Sucessfully created and verified par2 recovery with filelist from file" Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 } par2cmdline-turbo-1.5.0/tests/test37000077500000000000000000000025071524160147200172750ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/subdirdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 banner="Testing subdir data par2 creation with filelist form file" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes cp "$TESTDATA/subdirdata-filelist.txt" ./ $PARBINARY c recovery.par2 @subdirdata-filelist.txt || { echo "ERROR: failed to create parchive from filelist" ; exit 1; } >&2 $PARBINARY v recovery.par2 || { echo "ERROR: failed to verify parchive created from filelist" ; exit 1; } >&2 echo "Sucessfully created and verified par2 recovery with filelist from file" cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test37.ps1000066400000000000000000000021321524160147200177660ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 34: Rename-only mode skips damaged files $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "subdirdata.tar.gz") -Destination "." Copy-Item (Join-Path $TESTDATA "subdirdata-filelist.txt") "." Write-Banner "Testing subdir data par2 creation with filelist form file" $exitCode = Invoke-Par2 -Arguments @("c", "recovery.par2", "@subdirdata-filelist.txt") if ($exitCode -ne 0) { Exit-TestWithError "failed to create parchive from filelist" } $exitCode = Invoke-Par2 -Arguments @("r", "recovery.par2") if ($exitCode -ne 0) { Exit-TestWithError "failed to verify parchive created from filelist" } Write-Host "Sucessfully created and verified par2 recovery with filelist from file" Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 } par2cmdline-turbo-1.5.0/tests/test38000077500000000000000000000026551524160147200173020ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/subdirdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 banner="Testing subdir data par2 creation with mixed files and filelist" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes cp "$TESTDATA/subdirdata-partial-filelist.txt" ./ $PARBINARY c recovery.par2 subdir1/test-6.data subdir2/test-7.data @subdirdata-partial-filelist.txt subdir1/test-8.data subdir2/test-9.data || { echo "ERROR: failed to create parchive from filelist" ; exit 1; } >&2 $PARBINARY v recovery.par2 || { echo "ERROR: failed to verify parchive created from filelist" ; exit 1; } >&2 echo "Sucessfully created and verified par2 recovery with filelist from file" cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test38.ps1000066400000000000000000000023061524160147200177720ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 34: Rename-only mode skips damaged files $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "subdirdata.tar.gz") -Destination "." Copy-Item (Join-Path $TESTDATA "subdirdata-partial-filelist.txt") "." Write-Banner "Testing subdir data par2 creation with filelist form file" $exitCode = Invoke-Par2 -Arguments @("c", "recovery.par2", "subdir1\test-6.data", "subdir2\test-7.data", "@subdirdata-partial-filelist.txt", "subdir1/test-8.data", "subdir2/test-9.data") if ($exitCode -ne 0) { Exit-TestWithError "failed to create parchive from filelist" } $exitCode = Invoke-Par2 -Arguments @("r", "recovery.par2") if ($exitCode -ne 0) { Exit-TestWithError "failed to verify parchive created from filelist" } Write-Host "Sucessfully created and verified par2 recovery with filelist from file" Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 } par2cmdline-turbo-1.5.0/tests/test39000077500000000000000000000025361524160147200173010ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/subdirdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 banner="Testing recursive subdir data par2 creation with mixed filelist" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes cp "$TESTDATA/subdirdata-folder-filelist.txt" ./ $PARBINARY c -R recovery.par2 @subdirdata-folder-filelist.txt || { echo "ERROR: failed to create parchive from filelist" ; exit 1; } >&2 $PARBINARY v recovery.par2 || { echo "ERROR: failed to verify parchive created from filelist" ; exit 1; } >&2 echo "Sucessfully created and verified par2 recovery with filelist from file" cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test39.ps1000066400000000000000000000021641524160147200177750ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 34: Rename-only mode skips damaged files $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "subdirdata.tar.gz") -Destination "." Copy-Item (Join-Path $TESTDATA "subdirdata-folder-filelist.txt") "." Write-Banner "Testing recursive subdir data par2 creation with mixed filelist" $exitCode = Invoke-Par2 -Arguments @("c", "-R", "recovery.par2", "@subdirdata-folder-filelist.txt") if ($exitCode -ne 0) { Exit-TestWithError "failed to create parchive from filelist" } $exitCode = Invoke-Par2 -Arguments @("r", "recovery.par2") if ($exitCode -ne 0) { Exit-TestWithError "failed to verify parchive created from filelist" } Write-Host "Sucessfully created and verified par2 recovery with filelist from file" Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 } par2cmdline-turbo-1.5.0/tests/test4000077500000000000000000000032401524160147200172020ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 tar -xzf "$TESTDATA/flatdata-par2files.tar.gz" || { echo "ERROR: Could not extract par test files" ; exit 1; } >&2 cp test-0.data test-0.data.orig cp test-1.data test-1.data.orig cp test-2.data test-2.data.orig cp test-3.data test-3.data.orig cp test-4.data test-4.data.orig cp test-5.data test-5.data.orig cp test-6.data test-6.data.orig cp test-7.data test-7.data.orig cp test-8.data test-8.data.orig cp test-9.data test-9.data.orig banner="Repairing two files using PAR 2.0 data" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes rm -f test-1.data test-3.data $PARBINARY r testdata.par2 || { echo "ERROR: Reconstruction of two files using PAR 2.0 failed" ; exit 1; } >&2 cmp -s test-1.data test-1.data.orig && cmp -s test-3.data test-3.data.orig || { echo "ERROR: Repaired files do not match originals" ; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test4.ps1000066400000000000000000000024401524160147200177020ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 4: Repair two missing files using PAR 2.0 data $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "flatdata.tar.gz") -Destination "." Expand-TarGz -Archive (Join-Path $TESTDATA "flatdata-par2files.tar.gz") -Destination "." Write-Banner "Repairing two missing files using PAR 2.0 data" Copy-Item "test-0.data" "test-0.data.orig" Copy-Item "test-5.data" "test-5.data.orig" Remove-Item "test-0.data" Remove-Item "test-5.data" $exitCode = Invoke-Par2 -Arguments @("r", "testdata.par2") if ($exitCode -ne 0) { Exit-TestWithError "Reconstruction of two files using PAR 2.0 failed" } if (-not (Compare-Files "test-0.data" "test-0.data.orig")) { Exit-TestWithError "Repaired file test-0.data does not match original" } if (-not (Compare-Files "test-5.data" "test-5.data.orig")) { Exit-TestWithError "Repaired file test-5.data does not match original" } Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 }par2cmdline-turbo-1.5.0/tests/test40000077500000000000000000000024701524160147200172660ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 banner="Testing flat data par2 creation with filelist from stdin" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes cat "$TESTDATA/flatdata-filelist.txt" | $PARBINARY c recovery.par2 @ || { echo "ERROR: failed to create parchive from stdin filelist" ; exit 1; } >&2 $PARBINARY v recovery.par2 || { echo "ERROR: failed to verify parchive created from stdin filelist" ; exit 1; } >&2 echo "Successfully created and verified par2 recovery with filelist from stdin" cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test40.ps1000066400000000000000000000020451524160147200177630ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 40: Take file list on stdin $ErrorActionPreference = "Stop" . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "flatdata.tar.gz") -Destination "." Write-Banner "Testing flat data par2 creation with filelist from stdin" $exitCode = Invoke-Par2 -Arguments @("c", "recovery.par2", "@") -RedirectStandardInput (Join-Path $TESTDATA "flatdata-filelist.txt") if ($exitCode -ne 0) { Exit-TestWithError "failed to create parchive from stdin filelist" } $exitCode = Invoke-Par2 -Arguments @("r", "recovery.par2") if ($exitCode -ne 0) { Exit-TestWithError "failed to verify parchive created from stdin filelist" } Write-Host "Successfully created and verified par2 recovery with filelist from stdin" Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 } par2cmdline-turbo-1.5.0/tests/test41000077500000000000000000000025711524160147200172710ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/subdirdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 banner="Testing subdir data par2 creation with mixed files and stdin filelist" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes cat "$TESTDATA/subdirdata-partial-filelist.txt" | $PARBINARY c recovery.par2 subdir1/test-6.data subdir2/test-7.data @ || { echo "ERROR: failed to create parchive from stdin filelist" ; exit 1; } >&2 $PARBINARY v recovery.par2 || { echo "ERROR: failed to verify parchive created from stdin filelist" ; exit 1; } >&2 echo "Successfully created and verified par2 recovery with filelist from stdin" cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test41.ps1000066400000000000000000000022261524160147200177650ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 41: Take file list on stdin in combination with files on command-line $ErrorActionPreference = "Stop" . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "subdirdata.tar.gz") -Destination "." Write-Banner "Testing subdir data par2 creation with mixed files and stdin filelist" $exitCode = Invoke-Par2 -Arguments @("c", "recovery.par2", "subdir1\test-6.data", "subdir2\test-7.data", "@") -RedirectStandardInput (Join-Path $TESTDATA "subdirdata-partial-filelist.txt") if ($exitCode -ne 0) { Exit-TestWithError "failed to create parchive from stdin filelist" } $exitCode = Invoke-Par2 -Arguments @("r", "recovery.par2") if ($exitCode -ne 0) { Exit-TestWithError "failed to verify parchive created from stdin filelist" } Write-Host "Successfully created and verified par2 recovery with filelist from stdin" Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 } par2cmdline-turbo-1.5.0/tests/test42000077500000000000000000000025131524160147200172660ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 banner="Rejecting oversized PAR2 source block counts" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes tar -xzf "$TESTDATA/block-count-wrap.tar.gz" || { echo "ERROR: Could not extract PAR2 test file" ; exit 1; } >&2 $PARBINARY r -q recovery.par2 >repair.out 2>repair.err result=$? if [ $result -eq 0 ] then echo "ERROR: Repair accepted oversized source block counts" >&2 exit 1 fi if [ $result -gt 128 ] then echo "ERROR: Repair terminated by signal instead of rejecting malformed PAR2 data" >&2 exit 1 fi grep -q "Too many source blocks in recovery set" repair.err || { echo "ERROR: Expected oversized block count rejection" ; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test42.ps1000077500000000000000000000016611524160147200177730ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 42: Reject oversized PAR2 source block counts $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "block-count-wrap.tar.gz") -Destination "." Write-Banner "Rejecting oversized PAR2 source block counts" $result = Invoke-Par2 -Arguments @("r", "-q", "recovery.par2") -ReturnObject if ($result.ExitCode -eq 0) { Exit-TestWithError "Repair accepted oversized source block counts" } if ($result.StdErr -notmatch "Too many source blocks in recovery set") { Exit-TestWithError "Expected oversized block count rejection" } Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 } par2cmdline-turbo-1.5.0/tests/test43000077500000000000000000000032071524160147200172700ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 banner="Reject repair through dangling symlink" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes mkdir -p work/.config/autostart outside printf 'symlink escape file body\n' > work/.config/autostart/poc.desktop ( cd work || exit 1 "$PARBINARY" c -q -r100 recovery.par2 .config/autostart/poc.desktop >/dev/null || exit 1 rm .config/autostart/poc.desktop ln -s "$PWD/../outside/escaped-by-repair" .config/autostart/poc.desktop "$PARBINARY" r -q recovery.par2 >/dev/null && exit 2 exit 0 ) status=$? if [ "$status" -eq 1 ] then echo "ERROR: failed to create test recovery set" >&2 exit 1 fi if [ -f outside/escaped-by-repair ] then echo "ERROR: repair wrote through dangling symlink outside repair tree" >&2 exit 1 fi if [ "$status" -ne 0 ] then echo "ERROR: repair through dangling symlink succeeded unexpectedly" >&2 exit 1 fi echo "Dangling symlink repair target was rejected" cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test44000077500000000000000000000026311524160147200172710ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 banner="par2 create works with more than 2000 input files" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes # Generate 2001 non-empty data files (each 512 bytes). # The old hard-coded blockcount=2000 default would fail here because the # number of source files exceeded the block count. datadir="$TESTROOT/run$testname/manyfiles" mkdir -p "$datadir" || { echo "ERROR: Could not create data directory" ; exit 1; } >&2 i=0 while [ $i -lt 2001 ]; do printf '%0512d' $i > "$datadir/file_$(printf '%04d' $i).data" i=$((i + 1)) done $PARBINARY c -B"$datadir" "$datadir"/test.par2 "$datadir"/*.data || { echo "ERROR: create with >2000 files failed" ; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test5000077500000000000000000000041131524160147200172030ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 banner="Creating 100% PAR 2.0 recovery data" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes $PARBINARY c -r100 -b190 -a newtest test-*.data || { echo "ERROR: Creating PAR 2.0 data failed" ; exit 1; } >&2 cp test-0.data test-0.data.orig cp test-1.data test-1.data.orig cp test-2.data test-2.data.orig cp test-3.data test-3.data.orig cp test-4.data test-4.data.orig cp test-5.data test-5.data.orig cp test-6.data test-6.data.orig cp test-7.data test-7.data.orig cp test-8.data test-8.data.orig cp test-9.data test-9.data.orig rm -f test-*.data banner="Repairing 100% loss using PAR 2.0 data" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes rm -f test-*.data $PARBINARY r newtest.par2 || { echo "ERROR: Full Repair using PAR 2.0 failed" ; exit 1; } >&2 cmp -s test-0.data test-0.data.orig && cmp -s test-1.data test-1.data.orig && cmp -s test-2.data test-2.data.orig && cmp -s test-3.data test-3.data.orig && cmp -s test-4.data test-4.data.orig && cmp -s test-5.data test-5.data.orig && cmp -s test-6.data test-6.data.orig && cmp -s test-7.data test-7.data.orig && cmp -s test-8.data test-8.data.orig && cmp -s test-9.data test-9.data.orig || { echo "ERROR: Repaired files do not match originals" ; exit 1 ; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test5.ps1000066400000000000000000000027651524160147200177150ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 5: Create and repair 100% loss using PAR 2.0 data $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "flatdata.tar.gz") -Destination "." Write-Banner "Creating 100% PAR 2.0 recovery data" $exitCode = Invoke-Par2 -Arguments @("c", "-r100", "-b190", "-a", "newtest", "test-0.data", "test-1.data", "test-2.data", "test-3.data", "test-4.data", "test-5.data", "test-6.data", "test-7.data", "test-8.data", "test-9.data") if ($exitCode -ne 0) { Exit-TestWithError "Creating PAR 2.0 data failed" } # Save originals for ($i = 0; $i -le 9; $i++) { Copy-Item "test-$i.data" "test-$i.data.orig" } # Delete all data files Remove-Item "test-*.data" Write-Banner "Repairing 100% loss using PAR 2.0 data" $exitCode = Invoke-Par2 -Arguments @("r", "newtest.par2") if ($exitCode -ne 0) { Exit-TestWithError "Full Repair using PAR 2.0 failed" } # Verify all files for ($i = 0; $i -le 9; $i++) { if (-not (Compare-Files "test-$i.data" "test-$i.data.orig")) { Exit-TestWithError "Repaired file test-$i.data does not match original" } } Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 }par2cmdline-turbo-1.5.0/tests/test5rk000077500000000000000000000062401524160147200175430ustar00rootroot00000000000000#!/bin/sh # This is a copy of test5 but using "-rk" instead of "-r100". # (This increases redundancy, but I'm missing system knowledge # to refactor the test core). # Couldn't we move the stuff common for all tests and maybe some # helper functions to a utility file and source it? For example: # source testfuncs.sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 banner="Creating 100% PAR 2.0 recovery data" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes # About the "magic -rk1302": # par2 c -r100 creates PAR2 files of in sum 1302436 bytes, so do # we approximately (-rk1302). # To also test ISSUE-80 (https://github.com/Parchive/par2cmdline/issues/80) # we also use "-n2". $PARBINARY c -rk1302 -b190 -n2 -a newtest test-*.data || { echo "ERROR: Creating PAR 2.0 data failed" ; exit 1; } >&2 # Checking whether "-n2" worked by creating two newtest.vol*.par2 files # (and also tolerate newtest.VOL*.PAR2 as seen on Windows) test "$(ls newtest.[Vv][Oo][Ll]*.[Pp][Aa][Rr]2 | wc -l)" -eq 2 || { echo "ERROR: File count option -n2 did not work." ; exit 1; } >&2 # Why not simply "mv"? # for f in test-*.data; do mv "$f" "$f.orig"; done # Would save the cp, the rm and keep file date (may help debug). cp test-0.data test-0.data.orig cp test-1.data test-1.data.orig cp test-2.data test-2.data.orig cp test-3.data test-3.data.orig cp test-4.data test-4.data.orig cp test-5.data test-5.data.orig cp test-6.data test-6.data.orig cp test-7.data test-7.data.orig cp test-8.data test-8.data.orig cp test-9.data test-9.data.orig rm -f test-*.data test -e test-0.data && { echo "ERROR: File deletion did not work." ; exit 1; } >&2 banner="Repairing 100% loss using PAR 2.0 data" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes rm -f test-*.data $PARBINARY r newtest.par2 || { echo "ERROR: Full Repair using PAR 2.0 failed" ; exit 1; } >&2 # for f in test-*.data; do cmp "$f" "$f.orig" || { echo XXX; exit 1; }; done cmp -s test-0.data test-0.data.orig && cmp -s test-1.data test-1.data.orig && cmp -s test-2.data test-2.data.orig && cmp -s test-3.data test-3.data.orig && cmp -s test-4.data test-4.data.orig && cmp -s test-5.data test-5.data.orig && cmp -s test-6.data test-6.data.orig && cmp -s test-7.data test-7.data.orig && cmp -s test-8.data test-8.data.orig && cmp -s test-9.data test-9.data.orig || { echo "ERROR: Repaired files do not match originals" ; exit 1 ; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test5rk.ps1000066400000000000000000000042351524160147200202440ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 5rk: Create 100% PAR 2.0 recovery data using -rk option # This is a copy of test5 but using "-rk" instead of "-r100" $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "flatdata.tar.gz") -Destination "." Write-Banner "Creating 100% PAR 2.0 recovery data" # About the "magic -rk1302": # par2 c -r100 creates PAR2 files of in sum 1302436 bytes, so do # we approximately (-rk1302). # To also test ISSUE-80 we also use "-n2". $exitCode = Invoke-Par2 -Arguments @("c", "-rk1302", "-b190", "-n2", "-a", "newtest", "test-0.data", "test-1.data", "test-2.data", "test-3.data", "test-4.data", "test-5.data", "test-6.data", "test-7.data", "test-8.data", "test-9.data") if ($exitCode -ne 0) { Exit-TestWithError "Creating PAR 2.0 data failed" } # Check that -n2 created exactly 2 vol files (case-insensitive for Windows) $volFiles = Get-ChildItem -Filter "newtest.vol*par2" | Measure-Object if ($volFiles.Count -ne 2) { Exit-TestWithError "File count option -n2 did not work. Expected 2, got $($volFiles.Count)" } # Save originals for ($i = 0; $i -le 9; $i++) { Copy-Item "test-$i.data" "test-$i.data.orig" } # Delete all data files Remove-Item "test-*.data" # Verify deletion worked if (Test-Path "test-0.data") { Exit-TestWithError "File deletion did not work" } Write-Banner "Repairing 100% loss using PAR 2.0 data" $exitCode = Invoke-Par2 -Arguments @("r", "newtest.par2") if ($exitCode -ne 0) { Exit-TestWithError "Full Repair using PAR 2.0 failed" } # Verify all files for ($i = 0; $i -le 9; $i++) { if (-not (Compare-Files "test-$i.data" "test-$i.data.orig")) { Exit-TestWithError "Repaired file test-$i.data does not match original" } } Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 }par2cmdline-turbo-1.5.0/tests/test6000077500000000000000000000030071524160147200172050ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/subdirdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 tar -xzf "$TESTDATA/subdirdata-par2files-unix.tar.gz" || { echo "ERROR: Could not extract par test files" ; exit 1; } >&2 banner="Repairing two files in subdirs using PAR 2.0 data" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes cp subdir1/test-2.data subdir1/test-2.data.orig cp subdir2/test-7.data subdir2/test-7.data.orig rm -f subdir1/test-2.data subdir2/test-7.data $PARBINARY r -a testdata.par2 || { echo "ERROR: Reconstruction of two files using PAR 2.0 failed" ; exit 1; } >&2 cmp -s subdir1/test-2.data subdir1/test-2.data.orig && cmp -s subdir2/test-7.data subdir2/test-7.data.orig || { echo "ERROR: Repaired files do not match originals" ; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test6.ps1000066400000000000000000000026611524160147200177110ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 6: Repair two files in subdirs using PAR 2.0 data (Unix paths) $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "subdirdata.tar.gz") -Destination "." Expand-TarGz -Archive (Join-Path $TESTDATA "subdirdata-par2files-unix.tar.gz") -Destination "." Write-Banner "Repairing two files in subdirs using PAR 2.0 data (Unix paths)" Copy-Item "subdir1\test-2.data" "subdir1\test-2.data.orig" Copy-Item "subdir2\test-7.data" "subdir2\test-7.data.orig" Remove-Item "subdir1\test-2.data" Remove-Item "subdir2\test-7.data" $exitCode = Invoke-Par2 -Arguments @("r", "-a", "testdata.par2") if ($exitCode -ne 0) { Exit-TestWithError "Reconstruction of two files using PAR 2.0 failed" } if (-not (Compare-Files "subdir1\test-2.data" "subdir1\test-2.data.orig")) { Exit-TestWithError "Repaired file subdir1\test-2.data does not match original" } if (-not (Compare-Files "subdir2\test-7.data" "subdir2\test-7.data.orig")) { Exit-TestWithError "Repaired file subdir2\test-7.data does not match original" } Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 } par2cmdline-turbo-1.5.0/tests/test7000077500000000000000000000030301524160147200172020ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/subdirdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 tar -xzf "$TESTDATA/subdirdata-par2files-win.tar.gz" || { echo "ERROR: Could not extract par test files" ; exit 1; } >&2 banner="Repairing two files in subdirs using PAR 2.0 data generated on windows" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes cp subdir1/test-2.data subdir1/test-2.data.orig cp subdir2/test-7.data subdir2/test-7.data.orig rm -f subdir1/test-2.data subdir2/test-7.data $PARBINARY r testdata.par2 || { echo "ERROR: Reconstruction of two files using PAR 2.0 failed" ; exit 1; } >&2 cmp -s subdir1/test-2.data subdir1/test-2.data.orig && cmp -s subdir2/test-7.data subdir2/test-7.data.orig || { echo "ERROR: Repaired files do not match originals" ; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test7.ps1000066400000000000000000000026711524160147200177130ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 7: Repair two files in subdirs using PAR 2.0 data generated on Windows $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "subdirdata.tar.gz") -Destination "." Expand-TarGz -Archive (Join-Path $TESTDATA "subdirdata-par2files-win.tar.gz") -Destination "." Write-Banner "Repairing two files in subdirs using PAR 2.0 data generated on Windows" Copy-Item "subdir1\test-2.data" "subdir1\test-2.data.orig" Copy-Item "subdir2\test-7.data" "subdir2\test-7.data.orig" Remove-Item "subdir1\test-2.data" Remove-Item "subdir2\test-7.data" $exitCode = Invoke-Par2 -Arguments @("r", "testdata.par2") if ($exitCode -ne 0) { Exit-TestWithError "Reconstruction of two files using PAR 2.0 failed" } if (-not (Compare-Files "subdir1\test-2.data" "subdir1\test-2.data.orig")) { Exit-TestWithError "Repaired file subdir1\test-2.data does not match original" } if (-not (Compare-Files "subdir2\test-7.data" "subdir2\test-7.data.orig")) { Exit-TestWithError "Repaired file subdir2\test-7.data does not match original" } Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 }par2cmdline-turbo-1.5.0/tests/test8000077500000000000000000000026001524160147200172050ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/subdirdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 mkdir source1 && mv subdir1 subdir2 source1 cd source1 banner="create par2files on subdir" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes $PARBINARY c -R testdata.par2 * || { echo "ERROR: construction of files using PAR 2.0 failed" ; exit 1; } >&2 cd .. mv source1 source2 cd source2 banner="verify par2files on subdir, moved source folder" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes $PARBINARY v testdata.par2 || { echo "ERROR: verification of files using PAR 2.0 failed" ; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test8.ps1000066400000000000000000000031071524160147200177070ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 8: Create PAR 2.0 data for files in subdirs, verify after moving folder $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "subdirdata.tar.gz") -Destination "." # Create source1 directory and move subdirs into it (matching Unix test) New-Item -ItemType Directory -Path "source1" -Force | Out-Null Move-Item "subdir1" "source1\" Move-Item "subdir2" "source1\" Push-Location "source1" Write-Banner "Create par2files on subdir" # Use wildcard equivalent - get all items in current directory $items = Get-ChildItem | Select-Object -ExpandProperty Name $exitCode = Invoke-Par2 -Arguments (@("c", "-R", "testdata.par2") + $items) if ($exitCode -ne 0) { Pop-Location Exit-TestWithError "Construction of files using PAR 2.0 failed" } Pop-Location # Rename source1 to source2 (simulating moving the source folder) Rename-Item "source1" "source2" Push-Location "source2" Write-Banner "Verify par2files on subdir, moved source folder" $exitCode = Invoke-Par2 -Arguments @("v", "testdata.par2") if ($exitCode -ne 0) { Pop-Location Exit-TestWithError "Verification of files using PAR 2.0 failed" } Pop-Location Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 }par2cmdline-turbo-1.5.0/tests/test9000077500000000000000000000037541524160147200172210ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" # valgrind tests memory usage. # wine allow for windows testing on linux if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $execdir/par2" elif [ "`which wine`" != "" ] && [ -f "$execdir/par2.exe" ] then PARBINARY="wine $execdir/par2.exe" else PARBINARY="$execdir/par2" fi if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT="$PWD" testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 tar -xzf "$TESTDATA/flatdata-par2files.tar.gz" || { echo "ERROR: Could not extract par test files" ; exit 1; } >&2 banner="rename using PAR 2.0 data" dashes=`echo "$banner" | sed s/./-/g` echo $dashes echo $banner echo $dashes mv test-1.data rename4 mv test-2.data rename5 mv test-3.data rename6 mv test-4.data rename7 mv test-5.data rename9 mv test-6.data rename8 mv test-7.data rename3 mv test-8.data rename1 mv test-9.data rename2 $PARBINARY r testdata.par2 rename* || { echo "ERROR: Initial PAR 2.0 verification and rename failed" ; exit 1; } >&2 test -e test-1.data || { echo "ERROR: rename failed" ; exit 1; } >&2 test -e test-2.data || { echo "ERROR: rename failed" ; exit 1; } >&2 test -e test-3.data || { echo "ERROR: rename failed" ; exit 1; } >&2 test -e test-4.data || { echo "ERROR: rename failed" ; exit 1; } >&2 test -e test-5.data || { echo "ERROR: rename failed" ; exit 1; } >&2 test -e test-6.data || { echo "ERROR: rename failed" ; exit 1; } >&2 test -e test-7.data || { echo "ERROR: rename failed" ; exit 1; } >&2 test -e test-8.data || { echo "ERROR: rename failed" ; exit 1; } >&2 test -e test-9.data || { echo "ERROR: rename failed" ; exit 1; } >&2 cd "$TESTROOT" rm -rf "run$testname" exit 0 par2cmdline-turbo-1.5.0/tests/test9.ps1000066400000000000000000000037331524160147200177150ustar00rootroot00000000000000#!/usr/bin/env pwsh # Test 9: Create and repair with 100 blocks $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $testname = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) try { Initialize-Test -TestName $testname Expand-TarGz -Archive (Join-Path $TESTDATA "100blocks.tar.gz") -Destination "." Write-Banner "Create par2files using 100 blocks" # Get all files for par2 creation $files = Get-ChildItem -File | Select-Object -ExpandProperty Name $exitCode = Invoke-Par2 -Arguments (@("c", "-b100", "testdata.par2") + $files) if ($exitCode -ne 0) { Exit-TestWithError "Construction of files using PAR 2.0 failed" } Write-Banner "Repair 5% of 100 blocks par2files removing 3 files" # Remove 3 files Remove-Item "file" -ErrorAction SilentlyContinue Remove-Item "file1" -ErrorAction SilentlyContinue Remove-Item "file3" -ErrorAction SilentlyContinue # Get remaining files to pass as extra args $remainingFiles = Get-ChildItem -File | Where-Object { $_.Extension -ne ".par2" } | Select-Object -ExpandProperty Name $exitCode = Invoke-Par2 -Arguments (@("r", "testdata.par2") + $remainingFiles) if ($exitCode -ne 0) { Exit-TestWithError "Repair of files using PAR 2.0 failed (3 files removed)" } Write-Banner "Repair 5% of 100 blocks par2files removing 1 file" # Remove 1 more file Remove-Item "file5" -ErrorAction SilentlyContinue # Get remaining files to pass as extra args $remainingFiles = Get-ChildItem -File | Where-Object { $_.Extension -ne ".par2" } | Select-Object -ExpandProperty Name $exitCode = Invoke-Par2 -Arguments (@("r", "testdata.par2") + $remainingFiles) if ($exitCode -ne 0) { Exit-TestWithError "Repair of files using PAR 2.0 failed (1 file removed)" } Complete-Test exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red Complete-Test exit 1 } par2cmdline-turbo-1.5.0/tests/testMem000077500000000000000000000014221524160147200175550ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" if [ -z "$srcdir" ] || [ "." = "$srcdir" ]; then srcdir="$PWD" TESTDATA="$srcdir/tests" else srcdir="$PWD/$srcdir" TESTDATA="$srcdir/tests" fi TESTROOT=$PWD testname=$(basename $0) rm -f "$testname.log" rm -rf "run$testname" mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2 tar -xzf $TESTDATA/subdirdata.tar.gz || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2 tar -xzf $TESTDATA/subdirdata-par2files-unix.tar.gz || { echo "ERROR: Could not extract par test files" ; exit 1; } >&2 rm -f subdir1/test-2.data subdir2/test-7.data valgrind --tool=memcheck --leak-check=full --show-leak-kinds=all $execdir/par2 r testdata.par2 cd $TESTROOT rm -rf run$testname exit 0 par2cmdline-turbo-1.5.0/tests/testcollision/000077500000000000000000000000001524160147200211055ustar00rootroot00000000000000par2cmdline-turbo-1.5.0/tests/testcollision/2mb_0s.bin000066400000000000000000100000001524160147200226500ustar00rootroot00000000000000ÿÿ""par2cmdline-turbo-1.5.0/tests/testcollision/2mb_0s.bin.par2000066400000000000000000000007141524160147200235260ustar00rootroot00000000000000PAR2PKT„C«ÆM§1¸wuú¶2–,åõ$ŒãüB›8ÇNÓsL¯üPAR 2.0FileDescß}m…îàØmÖü(PÍÂî\|) é'Ñ©z0†VGû3›GËà³Ï‰´¨Q/N 9 2mb_0s.binPAR2PKT ÑQVLº± Ä”ÒPÛ#S¢Gõ$ŒãüB›8ÇNÓsL¯üPAR 2.0IFSCß}m…îàØmÖü(PÍÜ'p=E ‡ „˜å6sTZz³MY� �!ÝC˜–Y#8¿•¬ fuY� �!ÝC˜–Y#8¿•¬ fuéÒØ1€h"¢ùF‰`-`ªh ´PAR2PKT\¸ÖcøÎà6„€YŒ°õ$ŒãüB›8ÇNÓsL¯üPAR 2.0Mainß}m…îàØmÖü(PÍPAR2PKTLÖí¾" ¶NhOÇmòõ�éõ$ŒãüB›8ÇNÓsL¯üPAR 2.0Creatorpar2j v1.2.5par2cmdline-turbo-1.5.0/tests/testcollision/2mb_col.bin000066400000000000000000100000001524160147200231030ustar00rootroot00000000000000ÿÿAqÛ""par2cmdline-turbo-1.5.0/tests/testcollision/2mb_col.bin.par2000066400000000000000000000007141524160147200237610ustar00rootroot00000000000000PAR2PKT„L¿¡8l<#)%J« ëslS»!Æ8á¢Y‚ÉK–�‘PAR 2.0FileDescÃçê§9à˜XìxñͲ”ü©‚w!ðká0„s,Þ 3›GËà³Ï‰´¨Q/N 9 2mb_col.binPAR2PKT TvÔ/¦@˜fa;RlS»!Æ8á¢Y‚ÉK–�‘PAR 2.0IFSCÃçê§9à˜XìxñͲ”üÜ'p=E ‡ „˜å6sTZz³M÷: ~�÷£óÏ-hÆ+¬ fuY� �!ÝC˜–Y#8¿•¬ fuéÒØ1€h"¢ùF‰`-`ªh ´PAR2PKT\)R­dàó ² t=Ëô\çlS»!Æ8á¢Y‚ÉK–�‘PAR 2.0MainÃçê§9à˜XìxñͲ”üPAR2PKTLï;ÏïôzEꩌ ƒzÅlS»!Æ8á¢Y‚ÉK–�‘PAR 2.0Creatorpar2j v1.2.5par2cmdline-turbo-1.5.0/tests/testcollision/pattern16.bin000066400000000000000000100000001524160147200234120ustar00rootroot00000000000000ÿÿ                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                AsØ                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               AsØ par2cmdline-turbo-1.5.0/tests/testcollision/pattern16.bin.par2000066400000000000000000000007201524160147200242650ustar00rootroot00000000000000PAR2PKTˆ‹Ëc(ÎÈLõsy»•C¸§.YpÆ£Þ³êå9o]Óú4PAR 2.0FileDescß­ÛXš^Aéð•Ø1´ÑË'«Q´£¼â*CE9cnêb–J))@kº_†è€&G pattern16.binPAR2PKT ¸& M$zþÈ¥,Ϭ/UG.YpÆ£Þ³êå9o]Óú4PAR 2.0IFSCß­ÛXš^Aéð•Ø1´ÑË'^c†ƒÕ°¸•SZªi›E,.Æ`É—¨—³Á†6Úð>sv… ‘sžáNô£;Î)rKéĬ9B±r ‘sžÔØ*Ý›3u­M¸k�ŸÉþÊß¼[£PAR2PKT\å¢[xÏþ¥~Ô³Î6N.YpÆ£Þ³êå9o]Óú4PAR 2.0Mainß­ÛXš^Aéð•Ø1´ÑË'PAR2PKTLðç$jý"ÞÄ¥&.;&Ê.YpÆ£Þ³êå9o]Óú4PAR 2.0Creatorpar2j v1.2.5par2cmdline-turbo-1.5.0/tests/testfuncs.ps1000066400000000000000000000160071524160147200206610ustar00rootroot00000000000000# par2cmdline Windows Test Helper Functions # This file is sourced by individual test scripts to provide common functionality $ErrorActionPreference = "Stop" # Determine directories # When dot-sourced, $PSScriptRoot gives the directory of THIS file (testfuncs.ps1) # This is more reliable than $MyInvocation.MyCommand.Path when dot-sourcing if ($PSScriptRoot) { $script:TestScriptDir = $PSScriptRoot } else { # Fallback for older PowerShell or unusual invocation $script:TestScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path if (-not $script:TestScriptDir) { $script:TestScriptDir = $PWD.Path } } $script:RootDir = Split-Path -Parent $script:TestScriptDir $script:TestDataDir = $script:TestScriptDir # Sync .NET current directory with PowerShell - needed for [System.IO.File] methods [System.IO.Directory]::SetCurrentDirectory($PWD.Path) # Find par2.exe binary function Find-Par2Binary { # Check if PARBINARY environment variable is set if ($env:PARBINARY -and (Test-Path $env:PARBINARY)) { return $env:PARBINARY } # Check common build output locations relative to root $candidates = @( (Join-Path $script:RootDir "x64\Release\par2.exe"), (Join-Path $script:RootDir "x64\Debug\par2.exe"), (Join-Path $script:RootDir "Win32\Release\par2.exe"), (Join-Path $script:RootDir "Win32\Debug\par2.exe"), (Join-Path $script:RootDir "ARM64\Release\par2.exe"), (Join-Path $script:RootDir "ARM64\Debug\par2.exe"), (Join-Path $script:RootDir "build\par2.exe"), (Join-Path $script:RootDir "par2.exe") ) foreach ($candidate in $candidates) { if (Test-Path $candidate) { return (Resolve-Path $candidate).Path } } throw "Could not find par2.exe. Please build the project first or set PARBINARY environment variable." } # Get the par2 binary path and store in environment variable for cross-script access if (-not $env:PARBINARY -or -not (Test-Path $env:PARBINARY)) { $env:PARBINARY = Find-Par2Binary } $script:Par2Binary = $env:PARBINARY # Extract a .tar.gz file (requires tar command available on Windows 10+) function Expand-TarGz { param( [Parameter(Mandatory=$true)] [string]$Archive, [Parameter(Mandatory=$true)] [string]$Destination ) if (-not (Test-Path $Archive)) { throw "Archive not found: $Archive" } # Use tar command (available on Windows 10 1803+) $tarResult = & tar -xzf $Archive -C $Destination 2>&1 if ($LASTEXITCODE -ne 0) { throw "Failed to extract $Archive : $tarResult" } } # Create a banner for test output function Write-Banner { param( [Parameter(Mandatory=$true)] [string]$Message ) $dashes = "-" * $Message.Length Write-Host $dashes Write-Host $Message Write-Host $dashes } # Run par2 # Unified function handling both console output and capturing function Invoke-Par2 { param( [Parameter(Mandatory=$true)] [string[]]$Arguments, [Parameter(Mandatory=$false)] [switch]$ReturnObject, [Parameter(Mandatory=$false)] [string]$RedirectStandardInput ) # Get the par2 binary path from environment variable $par2Path = $env:PARBINARY if (-not $par2Path) { throw "PARBINARY environment variable not set" } $tempOut = [System.IO.Path]::GetTempFileName() $tempErr = [System.IO.Path]::GetTempFileName() try { # Use Start-Process with explicit WorkingDirectory for output capture $startProcessParams = @{ FilePath = $par2Path ArgumentList = $Arguments NoNewWindow = $true Wait = $true PassThru = $true WorkingDirectory = $PWD.Path RedirectStandardOutput = $tempOut RedirectStandardError = $tempErr } if ($RedirectStandardInput) { $startProcessParams['RedirectStandardInput'] = $RedirectStandardInput } $process = Start-Process @startProcessParams $stdOutContent = Get-Content $tempOut -Raw if ($null -eq $stdOutContent) { $stdOutContent = "" } $stdErrContent = Get-Content $tempErr -Raw if ($null -eq $stdErrContent) { $stdErrContent = "" } if ($ReturnObject) { return [pscustomobject]@{ ExitCode = $process.ExitCode StdOut = $stdOutContent StdErr = $stdErrContent } } else { # Display output if not returning object if ($stdOutContent) { Write-Host $stdOutContent } if ($stdErrContent) { Write-Host $stdErrContent -ForegroundColor Yellow } return $process.ExitCode } } finally { if (Test-Path $tempOut) { Remove-Item $tempOut -Force -ErrorAction SilentlyContinue } if (Test-Path $tempErr) { Remove-Item $tempErr -Force -ErrorAction SilentlyContinue } } } # Compare two files by hash function Compare-Files { param( [Parameter(Mandatory=$true)] [string]$File1, [Parameter(Mandatory=$true)] [string]$File2 ) if (-not (Test-Path $File1)) { return $false } if (-not (Test-Path $File2)) { return $false } $hash1 = Get-FileHash -Path $File1 -Algorithm SHA256 $hash2 = Get-FileHash -Path $File2 -Algorithm SHA256 return $hash1.Hash -eq $hash2.Hash } # Create random data file function New-RandomFile { param( [Parameter(Mandatory=$true)] [string]$Path, [Parameter(Mandatory=$true)] [int]$SizeBytes ) $bytes = New-Object byte[] $SizeBytes $rng = [System.Security.Cryptography.RandomNumberGenerator]::Create() $rng.GetBytes($bytes) [System.IO.File]::WriteAllBytes($Path, $bytes) $rng.Dispose() } # Setup test environment - creates run directory and changes to it function Initialize-Test { param( [Parameter(Mandatory=$true)] [string]$TestName ) # Use the test script directory as root, not the current working directory $script:TestRoot = $script:TestScriptDir $script:RunDir = Join-Path $script:TestRoot "run$TestName" # Cleanup any previous run if (Test-Path $script:RunDir) { Remove-Item -Recurse -Force $script:RunDir } New-Item -ItemType Directory -Path $script:RunDir -Force | Out-Null Set-Location $script:RunDir # Sync .NET current directory with PowerShell [System.IO.Directory]::SetCurrentDirectory($PWD.Path) } # Cleanup test environment function Complete-Test { Set-Location $script:TestRoot if (Test-Path $script:RunDir) { Remove-Item -Recurse -Force $script:RunDir -ErrorAction SilentlyContinue } } # Exit with error function Exit-TestWithError { param( [Parameter(Mandatory=$true)] [string]$Message ) Write-Host "ERROR: $Message" -ForegroundColor Red Complete-Test exit 1 } # Export commonly needed variables $script:TESTDATA = $script:TestDataDir $script:PARBINARY = $env:PARBINARY par2cmdline-turbo-1.5.0/tests/unit_tests000077500000000000000000000026051524160147200203440ustar00rootroot00000000000000#!/bin/sh execdir="$PWD" for f in $execdir/tests/*_test do # check that the filename exists. If there are no files, # Bourne shell will treat $execdir/tests/*_test like a # literal string! [ -f "$f" ] || continue echo "------------------------------------------------------" echo "Running unit tests from file $f" echo "------------------------------------------------------" if [ -n "${PARVALGRINDOPTS+set}" ] then PARBINARY="valgrind $PARVALGRINDOPTS $f" else PARBINARY="$f" fi $PARBINARY || { echo "ERROR: $f failed." ; exit 1; } >&2 echo "------------------------------------------------------" echo "Unit test complete for file $f" echo "------------------------------------------------------" done for f in $execdir/tests/*_test.exe do # check that the filename exists. If there are no files, # Bourne shell will treat $execdir/tests/*_test like a # literal string! [ -f "$f" ] || continue echo "------------------------------------------------------" echo "Running unit tests from file $f" echo "------------------------------------------------------" wine $f || { echo "ERROR: $f failed." ; exit 1; } >&2 echo "------------------------------------------------------" echo "Unit test complete for file $f" echo "------------------------------------------------------" done exit 0 par2cmdline-turbo-1.5.0/tests/unit_tests.ps1000066400000000000000000000075651524160147200210550ustar00rootroot00000000000000#!/usr/bin/env pwsh # Unit tests runner - runs all compiled unit test executables # Runs all tests inline in the same console for visible output $ErrorActionPreference = "Stop" # Source common test functions . (Join-Path $PSScriptRoot "testfuncs.ps1") $script:RootDir = Split-Path -Parent $PSScriptRoot # Find the directory containing test executables $testDirs = @( (Join-Path $script:RootDir "x64\Release"), (Join-Path $script:RootDir "x64\Debug"), (Join-Path $script:RootDir "Win32\Release"), (Join-Path $script:RootDir "Win32\Debug"), (Join-Path $script:RootDir "ARM64\Release"), (Join-Path $script:RootDir "ARM64\Debug"), (Split-Path -Parent $PARBINARY) ) $testExeDir = $null foreach ($dir in $testDirs) { if (Test-Path $dir) { $testExeDir = $dir break } } if (-not $testExeDir) { Write-Host "ERROR: Could not find test executable directory" -ForegroundColor Red exit 1 } Write-Host "Looking for unit tests in: $testExeDir" -ForegroundColor Cyan Write-Host "" $unitTestExes = @( "letype_test.exe", "crc_test.exe", "md5_test.exe", "diskfile_test.exe", "libpar2_test.exe", "commandline_test.exe", "descriptionpacket_test.exe", "criticalpacket_test.exe", "reedsolomon_test.exe", "galois_test.exe", "utf8_test.exe" ) $passed = 0 $failed = 0 $skipped = 0 $failedTests = @() foreach ($testExe in $unitTestExes) { $testPath = Join-Path $testExeDir $testExe if (Test-Path $testPath) { Write-Host "------------------------------------------------------" Write-Host "Running unit tests from file $testExe" Write-Host "------------------------------------------------------" $startTime = Get-Date try { # Run the executable inline using the call operator # This keeps output visible in the same console & $testPath $exitCode = $LASTEXITCODE $duration = (Get-Date) - $startTime if ($exitCode -eq 0) { Write-Host "------------------------------------------------------" Write-Host "PASSED: $testExe (duration: $($duration.TotalSeconds.ToString('F2'))s)" -ForegroundColor Green Write-Host "------------------------------------------------------" $passed++ } else { Write-Host "------------------------------------------------------" Write-Host "FAILED: $testExe (exit code: $exitCode, duration: $($duration.TotalSeconds.ToString('F2'))s)" -ForegroundColor Red Write-Host "------------------------------------------------------" $failed++ $failedTests += $testExe } } catch { $duration = (Get-Date) - $startTime Write-Host "------------------------------------------------------" Write-Host "FAILED: $testExe - $_ (duration: $($duration.TotalSeconds.ToString('F2'))s)" -ForegroundColor Red Write-Host "------------------------------------------------------" $failed++ $failedTests += $testExe } Write-Host "" } else { Write-Host "SKIPPED: $testExe not found at $testPath" -ForegroundColor Yellow $skipped++ } } Write-Host "" Write-Host "======================================================" Write-Host "Unit Test Summary" Write-Host "======================================================" Write-Host "Passed: $passed" -ForegroundColor Green Write-Host "Failed: $failed" -ForegroundColor $(if ($failed -gt 0) { "Red" } else { "Green" }) Write-Host "Skipped: $skipped" -ForegroundColor Yellow Write-Host "" if ($failed -gt 0) { Write-Host "Failed tests:" -ForegroundColor Red foreach ($failedTest in $failedTests) { Write-Host " - $failedTest" -ForegroundColor Red } Write-Host "" exit 1 } exit 0par2cmdline-turbo-1.5.0/tests/utf8_test.vcxproj000066400000000000000000000044761524160147200215670ustar00rootroot00000000000000 Debug ARM64 Debug Win32 Debug x64 Release ARM64 Release Win32 Release x64 Win32Proj {757a04a3-9f41-42e2-813c-0774d3835afb} 10.0 Application Unicode v145 Console